Файловый менеджер - Редактировать - /var/www/xthruster/html/wp-content/plugins/wpml-string-translation/dist/js/main-ui/app.js
Назад
!function(e){var t={};function n(r){if(t[r])return t[r].exports;var a=t[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,n),a.l=!0,a.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)n.d(r,a,function(t){return e[t]}.bind(null,a));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=270)}([function(e,t,n){"use strict";e.exports=n(274)},function(e,t,n){e.exports=n(343)()},function(e,t,n){(function(e){e.exports=function(){"use strict";var t,r;function a(){return t.apply(null,arguments)}function o(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function i(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function c(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function s(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;var t;for(t in e)if(c(e,t))return!1;return!0}function l(e){return void 0===e}function u(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function d(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function f(e,t){var n,r=[];for(n=0;n<e.length;++n)r.push(t(e[n],n));return r}function h(e,t){for(var n in t)c(t,n)&&(e[n]=t[n]);return c(t,"toString")&&(e.toString=t.toString),c(t,"valueOf")&&(e.valueOf=t.valueOf),e}function m(e,t,n,r){return kt(e,t,n,r,!0).utc()}function p(e){return null==e._pf&&(e._pf={empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidEra:null,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],era:null,meridiem:null,rfc2822:!1,weekdayMismatch:!1}),e._pf}function v(e){if(null==e._isValid){var t=p(e),n=r.call(t.parsedDateParts,(function(e){return null!=e})),a=!isNaN(e._d.getTime())&&t.overflow<0&&!t.empty&&!t.invalidEra&&!t.invalidMonth&&!t.invalidWeekday&&!t.weekdayMismatch&&!t.nullInput&&!t.invalidFormat&&!t.userInvalidated&&(!t.meridiem||t.meridiem&&n);if(e._strict&&(a=a&&0===t.charsLeftOver&&0===t.unusedTokens.length&&void 0===t.bigHour),null!=Object.isFrozen&&Object.isFrozen(e))return a;e._isValid=a}return e._isValid}function _(e){var t=m(NaN);return null!=e?h(p(t),e):p(t).userInvalidated=!0,t}r=Array.prototype.some?Array.prototype.some:function(e){var t,n=Object(this),r=n.length>>>0;for(t=0;t<r;t++)if(t in n&&e.call(this,n[t],t,n))return!0;return!1};var y=a.momentProperties=[],M=!1;function g(e,t){var n,r,a;if(l(t._isAMomentObject)||(e._isAMomentObject=t._isAMomentObject),l(t._i)||(e._i=t._i),l(t._f)||(e._f=t._f),l(t._l)||(e._l=t._l),l(t._strict)||(e._strict=t._strict),l(t._tzm)||(e._tzm=t._tzm),l(t._isUTC)||(e._isUTC=t._isUTC),l(t._offset)||(e._offset=t._offset),l(t._pf)||(e._pf=p(t)),l(t._locale)||(e._locale=t._locale),y.length>0)for(n=0;n<y.length;n++)l(a=t[r=y[n]])||(e[r]=a);return e}function b(e){g(this,e),this._d=new Date(null!=e._d?e._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),!1===M&&(M=!0,a.updateOffset(this),M=!1)}function L(e){return e instanceof b||null!=e&&null!=e._isAMomentObject}function z(e){!1===a.suppressDeprecationWarnings&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+e)}function w(e,t){var n=!0;return h((function(){if(null!=a.deprecationHandler&&a.deprecationHandler(null,e),n){var r,o,i,s=[];for(o=0;o<arguments.length;o++){if(r="","object"==typeof arguments[o]){for(i in r+="\n["+o+"] ",arguments[0])c(arguments[0],i)&&(r+=i+": "+arguments[0][i]+", ");r=r.slice(0,-2)}else r=arguments[o];s.push(r)}z(e+"\nArguments: "+Array.prototype.slice.call(s).join("")+"\n"+(new Error).stack),n=!1}return t.apply(this,arguments)}),t)}var k,H={};function T(e,t){null!=a.deprecationHandler&&a.deprecationHandler(e,t),H[e]||(z(t),H[e]=!0)}function Y(e){return"undefined"!=typeof Function&&e instanceof Function||"[object Function]"===Object.prototype.toString.call(e)}function S(e,t){var n,r=h({},e);for(n in t)c(t,n)&&(i(e[n])&&i(t[n])?(r[n]={},h(r[n],e[n]),h(r[n],t[n])):null!=t[n]?r[n]=t[n]:delete r[n]);for(n in e)c(e,n)&&!c(t,n)&&i(e[n])&&(r[n]=h({},r[n]));return r}function D(e){null!=e&&this.set(e)}function O(e,t,n){var r=""+Math.abs(e),a=t-r.length;return(e>=0?n?"+":"":"-")+Math.pow(10,Math.max(0,a)).toString().substr(1)+r}a.suppressDeprecationWarnings=!1,a.deprecationHandler=null,k=Object.keys?Object.keys:function(e){var t,n=[];for(t in e)c(e,t)&&n.push(t);return n};var x=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,C=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,V={},j={};function E(e,t,n,r){var a=r;"string"==typeof r&&(a=function(){return this[r]()}),e&&(j[e]=a),t&&(j[t[0]]=function(){return O(a.apply(this,arguments),t[1],t[2])}),n&&(j[n]=function(){return this.localeData().ordinal(a.apply(this,arguments),e)})}function P(e,t){return e.isValid()?(t=A(t,e.localeData()),V[t]=V[t]||function(e){var t,n,r,a=e.match(x);for(t=0,n=a.length;t<n;t++)j[a[t]]?a[t]=j[a[t]]:a[t]=(r=a[t]).match(/\[[\s\S]/)?r.replace(/^\[|\]$/g,""):r.replace(/\\/g,"");return function(t){var r,o="";for(r=0;r<n;r++)o+=Y(a[r])?a[r].call(t,e):a[r];return o}}(t),V[t](e)):e.localeData().invalidDate()}function A(e,t){var n=5;function r(e){return t.longDateFormat(e)||e}for(C.lastIndex=0;n>=0&&C.test(e);)e=e.replace(C,r),C.lastIndex=0,n-=1;return e}var N={};function F(e,t){var n=e.toLowerCase();N[n]=N[n+"s"]=N[t]=e}function R(e){return"string"==typeof e?N[e]||N[e.toLowerCase()]:void 0}function W(e){var t,n,r={};for(n in e)c(e,n)&&(t=R(n))&&(r[t]=e[n]);return r}var I={};function q(e,t){I[e]=t}function U(e){return e%4==0&&e%100!=0||e%400==0}function B(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function J(e){var t=+e,n=0;return 0!==t&&isFinite(t)&&(n=B(t)),n}function G(e,t){return function(n){return null!=n?($(this,e,n),a.updateOffset(this,t),this):K(this,e)}}function K(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function $(e,t,n){e.isValid()&&!isNaN(n)&&("FullYear"===t&&U(e.year())&&1===e.month()&&29===e.date()?(n=J(n),e._d["set"+(e._isUTC?"UTC":"")+t](n,e.month(),Le(n,e.month()))):e._d["set"+(e._isUTC?"UTC":"")+t](n))}var Q,X=/\d/,Z=/\d\d/,ee=/\d{3}/,te=/\d{4}/,ne=/[+-]?\d{6}/,re=/\d\d?/,ae=/\d\d\d\d?/,oe=/\d\d\d\d\d\d?/,ie=/\d{1,3}/,ce=/\d{1,4}/,se=/[+-]?\d{1,6}/,le=/\d+/,ue=/[+-]?\d+/,de=/Z|[+-]\d\d:?\d\d/gi,fe=/Z|[+-]\d\d(?::?\d\d)?/gi,he=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i;function me(e,t,n){Q[e]=Y(t)?t:function(e,r){return e&&n?n:t}}function pe(e,t){return c(Q,e)?Q[e](t._strict,t._locale):new RegExp(ve(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,(function(e,t,n,r,a){return t||n||r||a}))))}function ve(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}Q={};var _e,ye={};function Me(e,t){var n,r=t;for("string"==typeof e&&(e=[e]),u(t)&&(r=function(e,n){n[t]=J(e)}),n=0;n<e.length;n++)ye[e[n]]=r}function ge(e,t){Me(e,(function(e,n,r,a){r._w=r._w||{},t(e,r._w,r,a)}))}function be(e,t,n){null!=t&&c(ye,e)&&ye[e](t,n._a,n,e)}function Le(e,t){if(isNaN(e)||isNaN(t))return NaN;var n,r=(t%(n=12)+n)%n;return e+=(t-r)/12,1===r?U(e)?29:28:31-r%7%2}_e=Array.prototype.indexOf?Array.prototype.indexOf:function(e){var t;for(t=0;t<this.length;++t)if(this[t]===e)return t;return-1},E("M",["MM",2],"Mo",(function(){return this.month()+1})),E("MMM",0,0,(function(e){return this.localeData().monthsShort(this,e)})),E("MMMM",0,0,(function(e){return this.localeData().months(this,e)})),F("month","M"),q("month",8),me("M",re),me("MM",re,Z),me("MMM",(function(e,t){return t.monthsShortRegex(e)})),me("MMMM",(function(e,t){return t.monthsRegex(e)})),Me(["M","MM"],(function(e,t){t[1]=J(e)-1})),Me(["MMM","MMMM"],(function(e,t,n,r){var a=n._locale.monthsParse(e,r,n._strict);null!=a?t[1]=a:p(n).invalidMonth=e}));var ze="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),we="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),ke=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,He=he,Te=he;function Ye(e,t,n){var r,a,o,i=e.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],r=0;r<12;++r)o=m([2e3,r]),this._shortMonthsParse[r]=this.monthsShort(o,"").toLocaleLowerCase(),this._longMonthsParse[r]=this.months(o,"").toLocaleLowerCase();return n?"MMM"===t?-1!==(a=_e.call(this._shortMonthsParse,i))?a:null:-1!==(a=_e.call(this._longMonthsParse,i))?a:null:"MMM"===t?-1!==(a=_e.call(this._shortMonthsParse,i))||-1!==(a=_e.call(this._longMonthsParse,i))?a:null:-1!==(a=_e.call(this._longMonthsParse,i))||-1!==(a=_e.call(this._shortMonthsParse,i))?a:null}function Se(e,t){var n;if(!e.isValid())return e;if("string"==typeof t)if(/^\d+$/.test(t))t=J(t);else if(!u(t=e.localeData().monthsParse(t)))return e;return n=Math.min(e.date(),Le(e.year(),t)),e._d["set"+(e._isUTC?"UTC":"")+"Month"](t,n),e}function De(e){return null!=e?(Se(this,e),a.updateOffset(this,!0),this):K(this,"Month")}function Oe(){function e(e,t){return t.length-e.length}var t,n,r=[],a=[],o=[];for(t=0;t<12;t++)n=m([2e3,t]),r.push(this.monthsShort(n,"")),a.push(this.months(n,"")),o.push(this.months(n,"")),o.push(this.monthsShort(n,""));for(r.sort(e),a.sort(e),o.sort(e),t=0;t<12;t++)r[t]=ve(r[t]),a[t]=ve(a[t]);for(t=0;t<24;t++)o[t]=ve(o[t]);this._monthsRegex=new RegExp("^("+o.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+a.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+r.join("|")+")","i")}function xe(e){return U(e)?366:365}E("Y",0,0,(function(){var e=this.year();return e<=9999?O(e,4):"+"+e})),E(0,["YY",2],0,(function(){return this.year()%100})),E(0,["YYYY",4],0,"year"),E(0,["YYYYY",5],0,"year"),E(0,["YYYYYY",6,!0],0,"year"),F("year","y"),q("year",1),me("Y",ue),me("YY",re,Z),me("YYYY",ce,te),me("YYYYY",se,ne),me("YYYYYY",se,ne),Me(["YYYYY","YYYYYY"],0),Me("YYYY",(function(e,t){t[0]=2===e.length?a.parseTwoDigitYear(e):J(e)})),Me("YY",(function(e,t){t[0]=a.parseTwoDigitYear(e)})),Me("Y",(function(e,t){t[0]=parseInt(e,10)})),a.parseTwoDigitYear=function(e){return J(e)+(J(e)>68?1900:2e3)};var Ce=G("FullYear",!0);function Ve(e,t,n,r,a,o,i){var c;return e<100&&e>=0?(c=new Date(e+400,t,n,r,a,o,i),isFinite(c.getFullYear())&&c.setFullYear(e)):c=new Date(e,t,n,r,a,o,i),c}function je(e){var t,n;return e<100&&e>=0?((n=Array.prototype.slice.call(arguments))[0]=e+400,t=new Date(Date.UTC.apply(null,n)),isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e)):t=new Date(Date.UTC.apply(null,arguments)),t}function Ee(e,t,n){var r=7+t-n;return-(7+je(e,0,r).getUTCDay()-t)%7+r-1}function Pe(e,t,n,r,a){var o,i,c=1+7*(t-1)+(7+n-r)%7+Ee(e,r,a);return c<=0?i=xe(o=e-1)+c:c>xe(e)?(o=e+1,i=c-xe(e)):(o=e,i=c),{year:o,dayOfYear:i}}function Ae(e,t,n){var r,a,o=Ee(e.year(),t,n),i=Math.floor((e.dayOfYear()-o-1)/7)+1;return i<1?r=i+Ne(a=e.year()-1,t,n):i>Ne(e.year(),t,n)?(r=i-Ne(e.year(),t,n),a=e.year()+1):(a=e.year(),r=i),{week:r,year:a}}function Ne(e,t,n){var r=Ee(e,t,n),a=Ee(e+1,t,n);return(xe(e)-r+a)/7}function Fe(e,t){return e.slice(t,7).concat(e.slice(0,t))}E("w",["ww",2],"wo","week"),E("W",["WW",2],"Wo","isoWeek"),F("week","w"),F("isoWeek","W"),q("week",5),q("isoWeek",5),me("w",re),me("ww",re,Z),me("W",re),me("WW",re,Z),ge(["w","ww","W","WW"],(function(e,t,n,r){t[r.substr(0,1)]=J(e)})),E("d",0,"do","day"),E("dd",0,0,(function(e){return this.localeData().weekdaysMin(this,e)})),E("ddd",0,0,(function(e){return this.localeData().weekdaysShort(this,e)})),E("dddd",0,0,(function(e){return this.localeData().weekdays(this,e)})),E("e",0,0,"weekday"),E("E",0,0,"isoWeekday"),F("day","d"),F("weekday","e"),F("isoWeekday","E"),q("day",11),q("weekday",11),q("isoWeekday",11),me("d",re),me("e",re),me("E",re),me("dd",(function(e,t){return t.weekdaysMinRegex(e)})),me("ddd",(function(e,t){return t.weekdaysShortRegex(e)})),me("dddd",(function(e,t){return t.weekdaysRegex(e)})),ge(["dd","ddd","dddd"],(function(e,t,n,r){var a=n._locale.weekdaysParse(e,r,n._strict);null!=a?t.d=a:p(n).invalidWeekday=e})),ge(["d","e","E"],(function(e,t,n,r){t[r]=J(e)}));var Re="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),We="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Ie="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),qe=he,Ue=he,Be=he;function Je(e,t,n){var r,a,o,i=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],r=0;r<7;++r)o=m([2e3,1]).day(r),this._minWeekdaysParse[r]=this.weekdaysMin(o,"").toLocaleLowerCase(),this._shortWeekdaysParse[r]=this.weekdaysShort(o,"").toLocaleLowerCase(),this._weekdaysParse[r]=this.weekdays(o,"").toLocaleLowerCase();return n?"dddd"===t?-1!==(a=_e.call(this._weekdaysParse,i))?a:null:"ddd"===t?-1!==(a=_e.call(this._shortWeekdaysParse,i))?a:null:-1!==(a=_e.call(this._minWeekdaysParse,i))?a:null:"dddd"===t?-1!==(a=_e.call(this._weekdaysParse,i))||-1!==(a=_e.call(this._shortWeekdaysParse,i))||-1!==(a=_e.call(this._minWeekdaysParse,i))?a:null:"ddd"===t?-1!==(a=_e.call(this._shortWeekdaysParse,i))||-1!==(a=_e.call(this._weekdaysParse,i))||-1!==(a=_e.call(this._minWeekdaysParse,i))?a:null:-1!==(a=_e.call(this._minWeekdaysParse,i))||-1!==(a=_e.call(this._weekdaysParse,i))||-1!==(a=_e.call(this._shortWeekdaysParse,i))?a:null}function Ge(){function e(e,t){return t.length-e.length}var t,n,r,a,o,i=[],c=[],s=[],l=[];for(t=0;t<7;t++)n=m([2e3,1]).day(t),r=ve(this.weekdaysMin(n,"")),a=ve(this.weekdaysShort(n,"")),o=ve(this.weekdays(n,"")),i.push(r),c.push(a),s.push(o),l.push(r),l.push(a),l.push(o);i.sort(e),c.sort(e),s.sort(e),l.sort(e),this._weekdaysRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+s.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+c.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+i.join("|")+")","i")}function Ke(){return this.hours()%12||12}function $e(e,t){E(e,0,0,(function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)}))}function Qe(e,t){return t._meridiemParse}E("H",["HH",2],0,"hour"),E("h",["hh",2],0,Ke),E("k",["kk",2],0,(function(){return this.hours()||24})),E("hmm",0,0,(function(){return""+Ke.apply(this)+O(this.minutes(),2)})),E("hmmss",0,0,(function(){return""+Ke.apply(this)+O(this.minutes(),2)+O(this.seconds(),2)})),E("Hmm",0,0,(function(){return""+this.hours()+O(this.minutes(),2)})),E("Hmmss",0,0,(function(){return""+this.hours()+O(this.minutes(),2)+O(this.seconds(),2)})),$e("a",!0),$e("A",!1),F("hour","h"),q("hour",13),me("a",Qe),me("A",Qe),me("H",re),me("h",re),me("k",re),me("HH",re,Z),me("hh",re,Z),me("kk",re,Z),me("hmm",ae),me("hmmss",oe),me("Hmm",ae),me("Hmmss",oe),Me(["H","HH"],3),Me(["k","kk"],(function(e,t,n){var r=J(e);t[3]=24===r?0:r})),Me(["a","A"],(function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e})),Me(["h","hh"],(function(e,t,n){t[3]=J(e),p(n).bigHour=!0})),Me("hmm",(function(e,t,n){var r=e.length-2;t[3]=J(e.substr(0,r)),t[4]=J(e.substr(r)),p(n).bigHour=!0})),Me("hmmss",(function(e,t,n){var r=e.length-4,a=e.length-2;t[3]=J(e.substr(0,r)),t[4]=J(e.substr(r,2)),t[5]=J(e.substr(a)),p(n).bigHour=!0})),Me("Hmm",(function(e,t,n){var r=e.length-2;t[3]=J(e.substr(0,r)),t[4]=J(e.substr(r))})),Me("Hmmss",(function(e,t,n){var r=e.length-4,a=e.length-2;t[3]=J(e.substr(0,r)),t[4]=J(e.substr(r,2)),t[5]=J(e.substr(a))}));var Xe,Ze=G("Hours",!0),et={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:ze,monthsShort:we,week:{dow:0,doy:6},weekdays:Re,weekdaysMin:Ie,weekdaysShort:We,meridiemParse:/[ap]\.?m?\.?/i},tt={},nt={};function rt(e,t){var n,r=Math.min(e.length,t.length);for(n=0;n<r;n+=1)if(e[n]!==t[n])return n;return r}function at(e){return e?e.toLowerCase().replace("_","-"):e}function ot(t){var r=null;if(void 0===tt[t]&&void 0!==e&&e&&e.exports)try{r=Xe._abbr,n(352)("./"+t),it(r)}catch(e){tt[t]=null}return tt[t]}function it(e,t){var n;return e&&((n=l(t)?st(e):ct(e,t))?Xe=n:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),Xe._abbr}function ct(e,t){if(null!==t){var n,r=et;if(t.abbr=e,null!=tt[e])T("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),r=tt[e]._config;else if(null!=t.parentLocale)if(null!=tt[t.parentLocale])r=tt[t.parentLocale]._config;else{if(null==(n=ot(t.parentLocale)))return nt[t.parentLocale]||(nt[t.parentLocale]=[]),nt[t.parentLocale].push({name:e,config:t}),null;r=n._config}return tt[e]=new D(S(r,t)),nt[e]&&nt[e].forEach((function(e){ct(e.name,e.config)})),it(e),tt[e]}return delete tt[e],null}function st(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return Xe;if(!o(e)){if(t=ot(e))return t;e=[e]}return function(e){for(var t,n,r,a,o=0;o<e.length;){for(t=(a=at(e[o]).split("-")).length,n=(n=at(e[o+1]))?n.split("-"):null;t>0;){if(r=ot(a.slice(0,t).join("-")))return r;if(n&&n.length>=t&&rt(a,n)>=t-1)break;t--}o++}return Xe}(e)}function lt(e){var t,n=e._a;return n&&-2===p(e).overflow&&(t=n[1]<0||n[1]>11?1:n[2]<1||n[2]>Le(n[0],n[1])?2:n[3]<0||n[3]>24||24===n[3]&&(0!==n[4]||0!==n[5]||0!==n[6])?3:n[4]<0||n[4]>59?4:n[5]<0||n[5]>59?5:n[6]<0||n[6]>999?6:-1,p(e)._overflowDayOfYear&&(t<0||t>2)&&(t=2),p(e)._overflowWeeks&&-1===t&&(t=7),p(e)._overflowWeekday&&-1===t&&(t=8),p(e).overflow=t),e}var ut=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,dt=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,ft=/Z|[+-]\d\d(?::?\d\d)?/,ht=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/],["YYYYMM",/\d{6}/,!1],["YYYY",/\d{4}/,!1]],mt=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],pt=/^\/?Date\((-?\d+)/i,vt=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,_t={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function yt(e){var t,n,r,a,o,i,c=e._i,s=ut.exec(c)||dt.exec(c);if(s){for(p(e).iso=!0,t=0,n=ht.length;t<n;t++)if(ht[t][1].exec(s[1])){a=ht[t][0],r=!1!==ht[t][2];break}if(null==a)return void(e._isValid=!1);if(s[3]){for(t=0,n=mt.length;t<n;t++)if(mt[t][1].exec(s[3])){o=(s[2]||" ")+mt[t][0];break}if(null==o)return void(e._isValid=!1)}if(!r&&null!=o)return void(e._isValid=!1);if(s[4]){if(!ft.exec(s[4]))return void(e._isValid=!1);i="Z"}e._f=a+(o||"")+(i||""),zt(e)}else e._isValid=!1}function Mt(e){var t=parseInt(e,10);return t<=49?2e3+t:t<=999?1900+t:t}function gt(e){var t,n,r,a,o,i,c,s,l=vt.exec(e._i.replace(/\([^)]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").replace(/^\s\s*/,"").replace(/\s\s*$/,""));if(l){if(n=l[4],r=l[3],a=l[2],o=l[5],i=l[6],c=l[7],s=[Mt(n),we.indexOf(r),parseInt(a,10),parseInt(o,10),parseInt(i,10)],c&&s.push(parseInt(c,10)),t=s,!function(e,t,n){return!e||We.indexOf(e)===new Date(t[0],t[1],t[2]).getDay()||(p(n).weekdayMismatch=!0,n._isValid=!1,!1)}(l[1],t,e))return;e._a=t,e._tzm=function(e,t,n){if(e)return _t[e];if(t)return 0;var r=parseInt(n,10),a=r%100;return(r-a)/100*60+a}(l[8],l[9],l[10]),e._d=je.apply(null,e._a),e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),p(e).rfc2822=!0}else e._isValid=!1}function bt(e,t,n){return null!=e?e:null!=t?t:n}function Lt(e){var t,n,r,o,i,c=[];if(!e._d){for(r=function(e){var t=new Date(a.now());return e._useUTC?[t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()]:[t.getFullYear(),t.getMonth(),t.getDate()]}(e),e._w&&null==e._a[2]&&null==e._a[1]&&function(e){var t,n,r,a,o,i,c,s,l;null!=(t=e._w).GG||null!=t.W||null!=t.E?(o=1,i=4,n=bt(t.GG,e._a[0],Ae(Ht(),1,4).year),r=bt(t.W,1),((a=bt(t.E,1))<1||a>7)&&(s=!0)):(o=e._locale._week.dow,i=e._locale._week.doy,l=Ae(Ht(),o,i),n=bt(t.gg,e._a[0],l.year),r=bt(t.w,l.week),null!=t.d?((a=t.d)<0||a>6)&&(s=!0):null!=t.e?(a=t.e+o,(t.e<0||t.e>6)&&(s=!0)):a=o),r<1||r>Ne(n,o,i)?p(e)._overflowWeeks=!0:null!=s?p(e)._overflowWeekday=!0:(c=Pe(n,r,a,o,i),e._a[0]=c.year,e._dayOfYear=c.dayOfYear)}(e),null!=e._dayOfYear&&(i=bt(e._a[0],r[0]),(e._dayOfYear>xe(i)||0===e._dayOfYear)&&(p(e)._overflowDayOfYear=!0),n=je(i,0,e._dayOfYear),e._a[1]=n.getUTCMonth(),e._a[2]=n.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=c[t]=r[t];for(;t<7;t++)e._a[t]=c[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[3]&&0===e._a[4]&&0===e._a[5]&&0===e._a[6]&&(e._nextDay=!0,e._a[3]=0),e._d=(e._useUTC?je:Ve).apply(null,c),o=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[3]=24),e._w&&void 0!==e._w.d&&e._w.d!==o&&(p(e).weekdayMismatch=!0)}}function zt(e){if(e._f!==a.ISO_8601)if(e._f!==a.RFC_2822){e._a=[],p(e).empty=!0;var t,n,r,o,i,c,s=""+e._i,l=s.length,u=0;for(r=A(e._f,e._locale).match(x)||[],t=0;t<r.length;t++)o=r[t],(n=(s.match(pe(o,e))||[])[0])&&((i=s.substr(0,s.indexOf(n))).length>0&&p(e).unusedInput.push(i),s=s.slice(s.indexOf(n)+n.length),u+=n.length),j[o]?(n?p(e).empty=!1:p(e).unusedTokens.push(o),be(o,n,e)):e._strict&&!n&&p(e).unusedTokens.push(o);p(e).charsLeftOver=l-u,s.length>0&&p(e).unusedInput.push(s),e._a[3]<=12&&!0===p(e).bigHour&&e._a[3]>0&&(p(e).bigHour=void 0),p(e).parsedDateParts=e._a.slice(0),p(e).meridiem=e._meridiem,e._a[3]=function(e,t,n){var r;return null==n?t:null!=e.meridiemHour?e.meridiemHour(t,n):null!=e.isPM?((r=e.isPM(n))&&t<12&&(t+=12),r||12!==t||(t=0),t):t}(e._locale,e._a[3],e._meridiem),null!==(c=p(e).era)&&(e._a[0]=e._locale.erasConvertYear(c,e._a[0])),Lt(e),lt(e)}else gt(e);else yt(e)}function wt(e){var t=e._i,n=e._f;return e._locale=e._locale||st(e._l),null===t||void 0===n&&""===t?_({nullInput:!0}):("string"==typeof t&&(e._i=t=e._locale.preparse(t)),L(t)?new b(lt(t)):(d(t)?e._d=t:o(n)?function(e){var t,n,r,a,o,i,c=!1;if(0===e._f.length)return p(e).invalidFormat=!0,void(e._d=new Date(NaN));for(a=0;a<e._f.length;a++)o=0,i=!1,t=g({},e),null!=e._useUTC&&(t._useUTC=e._useUTC),t._f=e._f[a],zt(t),v(t)&&(i=!0),o+=p(t).charsLeftOver,o+=10*p(t).unusedTokens.length,p(t).score=o,c?o<r&&(r=o,n=t):(null==r||o<r||i)&&(r=o,n=t,i&&(c=!0));h(e,n||t)}(e):n?zt(e):function(e){var t=e._i;l(t)?e._d=new Date(a.now()):d(t)?e._d=new Date(t.valueOf()):"string"==typeof t?function(e){var t=pt.exec(e._i);null===t?(yt(e),!1===e._isValid&&(delete e._isValid,gt(e),!1===e._isValid&&(delete e._isValid,e._strict?e._isValid=!1:a.createFromInputFallback(e)))):e._d=new Date(+t[1])}(e):o(t)?(e._a=f(t.slice(0),(function(e){return parseInt(e,10)})),Lt(e)):i(t)?function(e){if(!e._d){var t=W(e._i),n=void 0===t.day?t.date:t.day;e._a=f([t.year,t.month,n,t.hour,t.minute,t.second,t.millisecond],(function(e){return e&&parseInt(e,10)})),Lt(e)}}(e):u(t)?e._d=new Date(t):a.createFromInputFallback(e)}(e),v(e)||(e._d=null),e))}function kt(e,t,n,r,a){var c,l={};return!0!==t&&!1!==t||(r=t,t=void 0),!0!==n&&!1!==n||(r=n,n=void 0),(i(e)&&s(e)||o(e)&&0===e.length)&&(e=void 0),l._isAMomentObject=!0,l._useUTC=l._isUTC=a,l._l=n,l._i=e,l._f=t,l._strict=r,(c=new b(lt(wt(l))))._nextDay&&(c.add(1,"d"),c._nextDay=void 0),c}function Ht(e,t,n,r){return kt(e,t,n,r,!1)}a.createFromInputFallback=w("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",(function(e){e._d=new Date(e._i+(e._useUTC?" UTC":""))})),a.ISO_8601=function(){},a.RFC_2822=function(){};var Tt=w("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",(function(){var e=Ht.apply(null,arguments);return this.isValid()&&e.isValid()?e<this?this:e:_()})),Yt=w("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",(function(){var e=Ht.apply(null,arguments);return this.isValid()&&e.isValid()?e>this?this:e:_()}));function St(e,t){var n,r;if(1===t.length&&o(t[0])&&(t=t[0]),!t.length)return Ht();for(n=t[0],r=1;r<t.length;++r)t[r].isValid()&&!t[r][e](n)||(n=t[r]);return n}var Dt=["year","quarter","month","week","day","hour","minute","second","millisecond"];function Ot(e){var t=W(e),n=t.year||0,r=t.quarter||0,a=t.month||0,o=t.week||t.isoWeek||0,i=t.day||0,s=t.hour||0,l=t.minute||0,u=t.second||0,d=t.millisecond||0;this._isValid=function(e){var t,n,r=!1;for(t in e)if(c(e,t)&&(-1===_e.call(Dt,t)||null!=e[t]&&isNaN(e[t])))return!1;for(n=0;n<Dt.length;++n)if(e[Dt[n]]){if(r)return!1;parseFloat(e[Dt[n]])!==J(e[Dt[n]])&&(r=!0)}return!0}(t),this._milliseconds=+d+1e3*u+6e4*l+1e3*s*60*60,this._days=+i+7*o,this._months=+a+3*r+12*n,this._data={},this._locale=st(),this._bubble()}function xt(e){return e instanceof Ot}function Ct(e){return e<0?-1*Math.round(-1*e):Math.round(e)}function Vt(e,t){E(e,0,0,(function(){var e=this.utcOffset(),n="+";return e<0&&(e=-e,n="-"),n+O(~~(e/60),2)+t+O(~~e%60,2)}))}Vt("Z",":"),Vt("ZZ",""),me("Z",fe),me("ZZ",fe),Me(["Z","ZZ"],(function(e,t,n){n._useUTC=!0,n._tzm=Et(fe,e)}));var jt=/([\+\-]|\d\d)/gi;function Et(e,t){var n,r,a=(t||"").match(e);return null===a?null:0===(r=60*(n=((a[a.length-1]||[])+"").match(jt)||["-",0,0])[1]+J(n[2]))?0:"+"===n[0]?r:-r}function Pt(e,t){var n,r;return t._isUTC?(n=t.clone(),r=(L(e)||d(e)?e.valueOf():Ht(e).valueOf())-n.valueOf(),n._d.setTime(n._d.valueOf()+r),a.updateOffset(n,!1),n):Ht(e).local()}function At(e){return-Math.round(e._d.getTimezoneOffset())}function Nt(){return!!this.isValid()&&this._isUTC&&0===this._offset}a.updateOffset=function(){};var Ft=/^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/,Rt=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function Wt(e,t){var n,r,a,o,i,s,l=e,d=null;return xt(e)?l={ms:e._milliseconds,d:e._days,M:e._months}:u(e)||!isNaN(+e)?(l={},t?l[t]=+e:l.milliseconds=+e):(d=Ft.exec(e))?(n="-"===d[1]?-1:1,l={y:0,d:J(d[2])*n,h:J(d[3])*n,m:J(d[4])*n,s:J(d[5])*n,ms:J(Ct(1e3*d[6]))*n}):(d=Rt.exec(e))?(n="-"===d[1]?-1:1,l={y:It(d[2],n),M:It(d[3],n),w:It(d[4],n),d:It(d[5],n),h:It(d[6],n),m:It(d[7],n),s:It(d[8],n)}):null==l?l={}:"object"==typeof l&&("from"in l||"to"in l)&&(o=Ht(l.from),i=Ht(l.to),a=o.isValid()&&i.isValid()?(i=Pt(i,o),o.isBefore(i)?s=qt(o,i):((s=qt(i,o)).milliseconds=-s.milliseconds,s.months=-s.months),s):{milliseconds:0,months:0},(l={}).ms=a.milliseconds,l.M=a.months),r=new Ot(l),xt(e)&&c(e,"_locale")&&(r._locale=e._locale),xt(e)&&c(e,"_isValid")&&(r._isValid=e._isValid),r}function It(e,t){var n=e&&parseFloat(e.replace(",","."));return(isNaN(n)?0:n)*t}function qt(e,t){var n={};return n.months=t.month()-e.month()+12*(t.year()-e.year()),e.clone().add(n.months,"M").isAfter(t)&&--n.months,n.milliseconds=+t-+e.clone().add(n.months,"M"),n}function Ut(e,t){return function(n,r){var a;return null===r||isNaN(+r)||(T(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),a=n,n=r,r=a),Bt(this,Wt(n,r),e),this}}function Bt(e,t,n,r){var o=t._milliseconds,i=Ct(t._days),c=Ct(t._months);e.isValid()&&(r=null==r||r,c&&Se(e,K(e,"Month")+c*n),i&&$(e,"Date",K(e,"Date")+i*n),o&&e._d.setTime(e._d.valueOf()+o*n),r&&a.updateOffset(e,i||c))}Wt.fn=Ot.prototype,Wt.invalid=function(){return Wt(NaN)};var Jt=Ut(1,"add"),Gt=Ut(-1,"subtract");function Kt(e){return"string"==typeof e||e instanceof String}function $t(e){return L(e)||d(e)||Kt(e)||u(e)||function(e){var t=o(e),n=!1;return t&&(n=0===e.filter((function(t){return!u(t)&&Kt(e)})).length),t&&n}(e)||function(e){var t,n,r=i(e)&&!s(e),a=!1,o=["years","year","y","months","month","M","days","day","d","dates","date","D","hours","hour","h","minutes","minute","m","seconds","second","s","milliseconds","millisecond","ms"];for(t=0;t<o.length;t+=1)n=o[t],a=a||c(e,n);return r&&a}(e)||null==e}function Qt(e){var t,n=i(e)&&!s(e),r=!1,a=["sameDay","nextDay","lastDay","nextWeek","lastWeek","sameElse"];for(t=0;t<a.length;t+=1)r=r||c(e,a[t]);return n&&r}function Xt(e,t){if(e.date()<t.date())return-Xt(t,e);var n=12*(t.year()-e.year())+(t.month()-e.month()),r=e.clone().add(n,"months");return-(n+(t-r<0?(t-r)/(r-e.clone().add(n-1,"months")):(t-r)/(e.clone().add(n+1,"months")-r)))||0}function Zt(e){var t;return void 0===e?this._locale._abbr:(null!=(t=st(e))&&(this._locale=t),this)}a.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",a.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var en=w("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",(function(e){return void 0===e?this.localeData():this.locale(e)}));function tn(){return this._locale}function nn(e,t){return(e%t+t)%t}function rn(e,t,n){return e<100&&e>=0?new Date(e+400,t,n)-126227808e5:new Date(e,t,n).valueOf()}function an(e,t,n){return e<100&&e>=0?Date.UTC(e+400,t,n)-126227808e5:Date.UTC(e,t,n)}function on(e,t){return t.erasAbbrRegex(e)}function cn(){var e,t,n=[],r=[],a=[],o=[],i=this.eras();for(e=0,t=i.length;e<t;++e)r.push(ve(i[e].name)),n.push(ve(i[e].abbr)),a.push(ve(i[e].narrow)),o.push(ve(i[e].name)),o.push(ve(i[e].abbr)),o.push(ve(i[e].narrow));this._erasRegex=new RegExp("^("+o.join("|")+")","i"),this._erasNameRegex=new RegExp("^("+r.join("|")+")","i"),this._erasAbbrRegex=new RegExp("^("+n.join("|")+")","i"),this._erasNarrowRegex=new RegExp("^("+a.join("|")+")","i")}function sn(e,t){E(0,[e,e.length],0,t)}function ln(e,t,n,r,a){var o;return null==e?Ae(this,r,a).year:(t>(o=Ne(e,r,a))&&(t=o),un.call(this,e,t,n,r,a))}function un(e,t,n,r,a){var o=Pe(e,t,n,r,a),i=je(o.year,0,o.dayOfYear);return this.year(i.getUTCFullYear()),this.month(i.getUTCMonth()),this.date(i.getUTCDate()),this}E("N",0,0,"eraAbbr"),E("NN",0,0,"eraAbbr"),E("NNN",0,0,"eraAbbr"),E("NNNN",0,0,"eraName"),E("NNNNN",0,0,"eraNarrow"),E("y",["y",1],"yo","eraYear"),E("y",["yy",2],0,"eraYear"),E("y",["yyy",3],0,"eraYear"),E("y",["yyyy",4],0,"eraYear"),me("N",on),me("NN",on),me("NNN",on),me("NNNN",(function(e,t){return t.erasNameRegex(e)})),me("NNNNN",(function(e,t){return t.erasNarrowRegex(e)})),Me(["N","NN","NNN","NNNN","NNNNN"],(function(e,t,n,r){var a=n._locale.erasParse(e,r,n._strict);a?p(n).era=a:p(n).invalidEra=e})),me("y",le),me("yy",le),me("yyy",le),me("yyyy",le),me("yo",(function(e,t){return t._eraYearOrdinalRegex||le})),Me(["y","yy","yyy","yyyy"],0),Me(["yo"],(function(e,t,n,r){var a;n._locale._eraYearOrdinalRegex&&(a=e.match(n._locale._eraYearOrdinalRegex)),n._locale.eraYearOrdinalParse?t[0]=n._locale.eraYearOrdinalParse(e,a):t[0]=parseInt(e,10)})),E(0,["gg",2],0,(function(){return this.weekYear()%100})),E(0,["GG",2],0,(function(){return this.isoWeekYear()%100})),sn("gggg","weekYear"),sn("ggggg","weekYear"),sn("GGGG","isoWeekYear"),sn("GGGGG","isoWeekYear"),F("weekYear","gg"),F("isoWeekYear","GG"),q("weekYear",1),q("isoWeekYear",1),me("G",ue),me("g",ue),me("GG",re,Z),me("gg",re,Z),me("GGGG",ce,te),me("gggg",ce,te),me("GGGGG",se,ne),me("ggggg",se,ne),ge(["gggg","ggggg","GGGG","GGGGG"],(function(e,t,n,r){t[r.substr(0,2)]=J(e)})),ge(["gg","GG"],(function(e,t,n,r){t[r]=a.parseTwoDigitYear(e)})),E("Q",0,"Qo","quarter"),F("quarter","Q"),q("quarter",7),me("Q",X),Me("Q",(function(e,t){t[1]=3*(J(e)-1)})),E("D",["DD",2],"Do","date"),F("date","D"),q("date",9),me("D",re),me("DD",re,Z),me("Do",(function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient})),Me(["D","DD"],2),Me("Do",(function(e,t){t[2]=J(e.match(re)[0])}));var dn=G("Date",!0);E("DDD",["DDDD",3],"DDDo","dayOfYear"),F("dayOfYear","DDD"),q("dayOfYear",4),me("DDD",ie),me("DDDD",ee),Me(["DDD","DDDD"],(function(e,t,n){n._dayOfYear=J(e)})),E("m",["mm",2],0,"minute"),F("minute","m"),q("minute",14),me("m",re),me("mm",re,Z),Me(["m","mm"],4);var fn=G("Minutes",!1);E("s",["ss",2],0,"second"),F("second","s"),q("second",15),me("s",re),me("ss",re,Z),Me(["s","ss"],5);var hn,mn,pn=G("Seconds",!1);for(E("S",0,0,(function(){return~~(this.millisecond()/100)})),E(0,["SS",2],0,(function(){return~~(this.millisecond()/10)})),E(0,["SSS",3],0,"millisecond"),E(0,["SSSS",4],0,(function(){return 10*this.millisecond()})),E(0,["SSSSS",5],0,(function(){return 100*this.millisecond()})),E(0,["SSSSSS",6],0,(function(){return 1e3*this.millisecond()})),E(0,["SSSSSSS",7],0,(function(){return 1e4*this.millisecond()})),E(0,["SSSSSSSS",8],0,(function(){return 1e5*this.millisecond()})),E(0,["SSSSSSSSS",9],0,(function(){return 1e6*this.millisecond()})),F("millisecond","ms"),q("millisecond",16),me("S",ie,X),me("SS",ie,Z),me("SSS",ie,ee),hn="SSSS";hn.length<=9;hn+="S")me(hn,le);function vn(e,t){t[6]=J(1e3*("0."+e))}for(hn="S";hn.length<=9;hn+="S")Me(hn,vn);mn=G("Milliseconds",!1),E("z",0,0,"zoneAbbr"),E("zz",0,0,"zoneName");var _n=b.prototype;function yn(e){return e}_n.add=Jt,_n.calendar=function(e,t){1===arguments.length&&($t(arguments[0])?(e=arguments[0],t=void 0):Qt(arguments[0])&&(t=arguments[0],e=void 0));var n=e||Ht(),r=Pt(n,this).startOf("day"),o=a.calendarFormat(this,r)||"sameElse",i=t&&(Y(t[o])?t[o].call(this,n):t[o]);return this.format(i||this.localeData().calendar(o,this,Ht(n)))},_n.clone=function(){return new b(this)},_n.diff=function(e,t,n){var r,a,o;if(!this.isValid())return NaN;if(!(r=Pt(e,this)).isValid())return NaN;switch(a=6e4*(r.utcOffset()-this.utcOffset()),t=R(t)){case"year":o=Xt(this,r)/12;break;case"month":o=Xt(this,r);break;case"quarter":o=Xt(this,r)/3;break;case"second":o=(this-r)/1e3;break;case"minute":o=(this-r)/6e4;break;case"hour":o=(this-r)/36e5;break;case"day":o=(this-r-a)/864e5;break;case"week":o=(this-r-a)/6048e5;break;default:o=this-r}return n?o:B(o)},_n.endOf=function(e){var t,n;if(void 0===(e=R(e))||"millisecond"===e||!this.isValid())return this;switch(n=this._isUTC?an:rn,e){case"year":t=n(this.year()+1,0,1)-1;break;case"quarter":t=n(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":t=n(this.year(),this.month()+1,1)-1;break;case"week":t=n(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":t=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":t=n(this.year(),this.month(),this.date()+1)-1;break;case"hour":t=this._d.valueOf(),t+=36e5-nn(t+(this._isUTC?0:6e4*this.utcOffset()),36e5)-1;break;case"minute":t=this._d.valueOf(),t+=6e4-nn(t,6e4)-1;break;case"second":t=this._d.valueOf(),t+=1e3-nn(t,1e3)-1}return this._d.setTime(t),a.updateOffset(this,!0),this},_n.format=function(e){e||(e=this.isUtc()?a.defaultFormatUtc:a.defaultFormat);var t=P(this,e);return this.localeData().postformat(t)},_n.from=function(e,t){return this.isValid()&&(L(e)&&e.isValid()||Ht(e).isValid())?Wt({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},_n.fromNow=function(e){return this.from(Ht(),e)},_n.to=function(e,t){return this.isValid()&&(L(e)&&e.isValid()||Ht(e).isValid())?Wt({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},_n.toNow=function(e){return this.to(Ht(),e)},_n.get=function(e){return Y(this[e=R(e)])?this[e]():this},_n.invalidAt=function(){return p(this).overflow},_n.isAfter=function(e,t){var n=L(e)?e:Ht(e);return!(!this.isValid()||!n.isValid())&&("millisecond"===(t=R(t)||"millisecond")?this.valueOf()>n.valueOf():n.valueOf()<this.clone().startOf(t).valueOf())},_n.isBefore=function(e,t){var n=L(e)?e:Ht(e);return!(!this.isValid()||!n.isValid())&&("millisecond"===(t=R(t)||"millisecond")?this.valueOf()<n.valueOf():this.clone().endOf(t).valueOf()<n.valueOf())},_n.isBetween=function(e,t,n,r){var a=L(e)?e:Ht(e),o=L(t)?t:Ht(t);return!!(this.isValid()&&a.isValid()&&o.isValid())&&(("("===(r=r||"()")[0]?this.isAfter(a,n):!this.isBefore(a,n))&&(")"===r[1]?this.isBefore(o,n):!this.isAfter(o,n)))},_n.isSame=function(e,t){var n,r=L(e)?e:Ht(e);return!(!this.isValid()||!r.isValid())&&("millisecond"===(t=R(t)||"millisecond")?this.valueOf()===r.valueOf():(n=r.valueOf(),this.clone().startOf(t).valueOf()<=n&&n<=this.clone().endOf(t).valueOf()))},_n.isSameOrAfter=function(e,t){return this.isSame(e,t)||this.isAfter(e,t)},_n.isSameOrBefore=function(e,t){return this.isSame(e,t)||this.isBefore(e,t)},_n.isValid=function(){return v(this)},_n.lang=en,_n.locale=Zt,_n.localeData=tn,_n.max=Yt,_n.min=Tt,_n.parsingFlags=function(){return h({},p(this))},_n.set=function(e,t){if("object"==typeof e){var n,r=function(e){var t,n=[];for(t in e)c(e,t)&&n.push({unit:t,priority:I[t]});return n.sort((function(e,t){return e.priority-t.priority})),n}(e=W(e));for(n=0;n<r.length;n++)this[r[n].unit](e[r[n].unit])}else if(Y(this[e=R(e)]))return this[e](t);return this},_n.startOf=function(e){var t,n;if(void 0===(e=R(e))||"millisecond"===e||!this.isValid())return this;switch(n=this._isUTC?an:rn,e){case"year":t=n(this.year(),0,1);break;case"quarter":t=n(this.year(),this.month()-this.month()%3,1);break;case"month":t=n(this.year(),this.month(),1);break;case"week":t=n(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":t=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":t=n(this.year(),this.month(),this.date());break;case"hour":t=this._d.valueOf(),t-=nn(t+(this._isUTC?0:6e4*this.utcOffset()),36e5);break;case"minute":t=this._d.valueOf(),t-=nn(t,6e4);break;case"second":t=this._d.valueOf(),t-=nn(t,1e3)}return this._d.setTime(t),a.updateOffset(this,!0),this},_n.subtract=Gt,_n.toArray=function(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]},_n.toObject=function(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}},_n.toDate=function(){return new Date(this.valueOf())},_n.toISOString=function(e){if(!this.isValid())return null;var t=!0!==e,n=t?this.clone().utc():this;return n.year()<0||n.year()>9999?P(n,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):Y(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",P(n,"Z")):P(n,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},_n.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e,t,n,r="moment",a="";return this.isLocal()||(r=0===this.utcOffset()?"moment.utc":"moment.parseZone",a="Z"),e="["+r+'("]',t=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",n=a+'[")]',this.format(e+t+"-MM-DD[T]HH:mm:ss.SSS"+n)},"undefined"!=typeof Symbol&&null!=Symbol.for&&(_n[Symbol.for("nodejs.util.inspect.custom")]=function(){return"Moment<"+this.format()+">"}),_n.toJSON=function(){return this.isValid()?this.toISOString():null},_n.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},_n.unix=function(){return Math.floor(this.valueOf()/1e3)},_n.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},_n.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},_n.eraName=function(){var e,t,n,r=this.localeData().eras();for(e=0,t=r.length;e<t;++e){if(n=this.startOf("day").valueOf(),r[e].since<=n&&n<=r[e].until)return r[e].name;if(r[e].until<=n&&n<=r[e].since)return r[e].name}return""},_n.eraNarrow=function(){var e,t,n,r=this.localeData().eras();for(e=0,t=r.length;e<t;++e){if(n=this.startOf("day").valueOf(),r[e].since<=n&&n<=r[e].until)return r[e].narrow;if(r[e].until<=n&&n<=r[e].since)return r[e].narrow}return""},_n.eraAbbr=function(){var e,t,n,r=this.localeData().eras();for(e=0,t=r.length;e<t;++e){if(n=this.startOf("day").valueOf(),r[e].since<=n&&n<=r[e].until)return r[e].abbr;if(r[e].until<=n&&n<=r[e].since)return r[e].abbr}return""},_n.eraYear=function(){var e,t,n,r,o=this.localeData().eras();for(e=0,t=o.length;e<t;++e)if(n=o[e].since<=o[e].until?1:-1,r=this.startOf("day").valueOf(),o[e].since<=r&&r<=o[e].until||o[e].until<=r&&r<=o[e].since)return(this.year()-a(o[e].since).year())*n+o[e].offset;return this.year()},_n.year=Ce,_n.isLeapYear=function(){return U(this.year())},_n.weekYear=function(e){return ln.call(this,e,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},_n.isoWeekYear=function(e){return ln.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)},_n.quarter=_n.quarters=function(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)},_n.month=De,_n.daysInMonth=function(){return Le(this.year(),this.month())},_n.week=_n.weeks=function(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")},_n.isoWeek=_n.isoWeeks=function(e){var t=Ae(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")},_n.weeksInYear=function(){var e=this.localeData()._week;return Ne(this.year(),e.dow,e.doy)},_n.weeksInWeekYear=function(){var e=this.localeData()._week;return Ne(this.weekYear(),e.dow,e.doy)},_n.isoWeeksInYear=function(){return Ne(this.year(),1,4)},_n.isoWeeksInISOWeekYear=function(){return Ne(this.isoWeekYear(),1,4)},_n.date=dn,_n.day=_n.days=function(e){if(!this.isValid())return null!=e?this:NaN;var t=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(e=function(e,t){return"string"!=typeof e?e:isNaN(e)?"number"==typeof(e=t.weekdaysParse(e))?e:null:parseInt(e,10)}(e,this.localeData()),this.add(e-t,"d")):t},_n.weekday=function(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")},_n.isoWeekday=function(e){if(!this.isValid())return null!=e?this:NaN;if(null!=e){var t=function(e,t){return"string"==typeof e?t.weekdaysParse(e)%7||7:isNaN(e)?null:e}(e,this.localeData());return this.day(this.day()%7?t:t-7)}return this.day()||7},_n.dayOfYear=function(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")},_n.hour=_n.hours=Ze,_n.minute=_n.minutes=fn,_n.second=_n.seconds=pn,_n.millisecond=_n.milliseconds=mn,_n.utcOffset=function(e,t,n){var r,o=this._offset||0;if(!this.isValid())return null!=e?this:NaN;if(null!=e){if("string"==typeof e){if(null===(e=Et(fe,e)))return this}else Math.abs(e)<16&&!n&&(e*=60);return!this._isUTC&&t&&(r=At(this)),this._offset=e,this._isUTC=!0,null!=r&&this.add(r,"m"),o!==e&&(!t||this._changeInProgress?Bt(this,Wt(e-o,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,a.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?o:At(this)},_n.utc=function(e){return this.utcOffset(0,e)},_n.local=function(e){return this._isUTC&&(this.utcOffset(0,e),this._isUTC=!1,e&&this.subtract(At(this),"m")),this},_n.parseZone=function(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var e=Et(de,this._i);null!=e?this.utcOffset(e):this.utcOffset(0,!0)}return this},_n.hasAlignedHourOffset=function(e){return!!this.isValid()&&(e=e?Ht(e).utcOffset():0,(this.utcOffset()-e)%60==0)},_n.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},_n.isLocal=function(){return!!this.isValid()&&!this._isUTC},_n.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},_n.isUtc=Nt,_n.isUTC=Nt,_n.zoneAbbr=function(){return this._isUTC?"UTC":""},_n.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},_n.dates=w("dates accessor is deprecated. Use date instead.",dn),_n.months=w("months accessor is deprecated. Use month instead",De),_n.years=w("years accessor is deprecated. Use year instead",Ce),_n.zone=w("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",(function(e,t){return null!=e?("string"!=typeof e&&(e=-e),this.utcOffset(e,t),this):-this.utcOffset()})),_n.isDSTShifted=w("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",(function(){if(!l(this._isDSTShifted))return this._isDSTShifted;var e,t={};return g(t,this),(t=wt(t))._a?(e=t._isUTC?m(t._a):Ht(t._a),this._isDSTShifted=this.isValid()&&function(e,t,n){var r,a=Math.min(e.length,t.length),o=Math.abs(e.length-t.length),i=0;for(r=0;r<a;r++)(n&&e[r]!==t[r]||!n&&J(e[r])!==J(t[r]))&&i++;return i+o}(t._a,e.toArray())>0):this._isDSTShifted=!1,this._isDSTShifted}));var Mn=D.prototype;function gn(e,t,n,r){var a=st(),o=m().set(r,t);return a[n](o,e)}function bn(e,t,n){if(u(e)&&(t=e,e=void 0),e=e||"",null!=t)return gn(e,t,n,"month");var r,a=[];for(r=0;r<12;r++)a[r]=gn(e,r,n,"month");return a}function Ln(e,t,n,r){"boolean"==typeof e?(u(t)&&(n=t,t=void 0),t=t||""):(n=t=e,e=!1,u(t)&&(n=t,t=void 0),t=t||"");var a,o=st(),i=e?o._week.dow:0,c=[];if(null!=n)return gn(t,(n+i)%7,r,"day");for(a=0;a<7;a++)c[a]=gn(t,(a+i)%7,r,"day");return c}Mn.calendar=function(e,t,n){var r=this._calendar[e]||this._calendar.sameElse;return Y(r)?r.call(t,n):r},Mn.longDateFormat=function(e){var t=this._longDateFormat[e],n=this._longDateFormat[e.toUpperCase()];return t||!n?t:(this._longDateFormat[e]=n.match(x).map((function(e){return"MMMM"===e||"MM"===e||"DD"===e||"dddd"===e?e.slice(1):e})).join(""),this._longDateFormat[e])},Mn.invalidDate=function(){return this._invalidDate},Mn.ordinal=function(e){return this._ordinal.replace("%d",e)},Mn.preparse=yn,Mn.postformat=yn,Mn.relativeTime=function(e,t,n,r){var a=this._relativeTime[n];return Y(a)?a(e,t,n,r):a.replace(/%d/i,e)},Mn.pastFuture=function(e,t){var n=this._relativeTime[e>0?"future":"past"];return Y(n)?n(t):n.replace(/%s/i,t)},Mn.set=function(e){var t,n;for(n in e)c(e,n)&&(Y(t=e[n])?this[n]=t:this["_"+n]=t);this._config=e,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},Mn.eras=function(e,t){var n,r,o,i=this._eras||st("en")._eras;for(n=0,r=i.length;n<r;++n){switch(typeof i[n].since){case"string":o=a(i[n].since).startOf("day"),i[n].since=o.valueOf()}switch(typeof i[n].until){case"undefined":i[n].until=1/0;break;case"string":o=a(i[n].until).startOf("day").valueOf(),i[n].until=o.valueOf()}}return i},Mn.erasParse=function(e,t,n){var r,a,o,i,c,s=this.eras();for(e=e.toUpperCase(),r=0,a=s.length;r<a;++r)if(o=s[r].name.toUpperCase(),i=s[r].abbr.toUpperCase(),c=s[r].narrow.toUpperCase(),n)switch(t){case"N":case"NN":case"NNN":if(i===e)return s[r];break;case"NNNN":if(o===e)return s[r];break;case"NNNNN":if(c===e)return s[r]}else if([o,i,c].indexOf(e)>=0)return s[r]},Mn.erasConvertYear=function(e,t){var n=e.since<=e.until?1:-1;return void 0===t?a(e.since).year():a(e.since).year()+(t-e.offset)*n},Mn.erasAbbrRegex=function(e){return c(this,"_erasAbbrRegex")||cn.call(this),e?this._erasAbbrRegex:this._erasRegex},Mn.erasNameRegex=function(e){return c(this,"_erasNameRegex")||cn.call(this),e?this._erasNameRegex:this._erasRegex},Mn.erasNarrowRegex=function(e){return c(this,"_erasNarrowRegex")||cn.call(this),e?this._erasNarrowRegex:this._erasRegex},Mn.months=function(e,t){return e?o(this._months)?this._months[e.month()]:this._months[(this._months.isFormat||ke).test(t)?"format":"standalone"][e.month()]:o(this._months)?this._months:this._months.standalone},Mn.monthsShort=function(e,t){return e?o(this._monthsShort)?this._monthsShort[e.month()]:this._monthsShort[ke.test(t)?"format":"standalone"][e.month()]:o(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},Mn.monthsParse=function(e,t,n){var r,a,o;if(this._monthsParseExact)return Ye.call(this,e,t,n);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),r=0;r<12;r++){if(a=m([2e3,r]),n&&!this._longMonthsParse[r]&&(this._longMonthsParse[r]=new RegExp("^"+this.months(a,"").replace(".","")+"$","i"),this._shortMonthsParse[r]=new RegExp("^"+this.monthsShort(a,"").replace(".","")+"$","i")),n||this._monthsParse[r]||(o="^"+this.months(a,"")+"|^"+this.monthsShort(a,""),this._monthsParse[r]=new RegExp(o.replace(".",""),"i")),n&&"MMMM"===t&&this._longMonthsParse[r].test(e))return r;if(n&&"MMM"===t&&this._shortMonthsParse[r].test(e))return r;if(!n&&this._monthsParse[r].test(e))return r}},Mn.monthsRegex=function(e){return this._monthsParseExact?(c(this,"_monthsRegex")||Oe.call(this),e?this._monthsStrictRegex:this._monthsRegex):(c(this,"_monthsRegex")||(this._monthsRegex=Te),this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex)},Mn.monthsShortRegex=function(e){return this._monthsParseExact?(c(this,"_monthsRegex")||Oe.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):(c(this,"_monthsShortRegex")||(this._monthsShortRegex=He),this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex)},Mn.week=function(e){return Ae(e,this._week.dow,this._week.doy).week},Mn.firstDayOfYear=function(){return this._week.doy},Mn.firstDayOfWeek=function(){return this._week.dow},Mn.weekdays=function(e,t){var n=o(this._weekdays)?this._weekdays:this._weekdays[e&&!0!==e&&this._weekdays.isFormat.test(t)?"format":"standalone"];return!0===e?Fe(n,this._week.dow):e?n[e.day()]:n},Mn.weekdaysMin=function(e){return!0===e?Fe(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin},Mn.weekdaysShort=function(e){return!0===e?Fe(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort},Mn.weekdaysParse=function(e,t,n){var r,a,o;if(this._weekdaysParseExact)return Je.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),r=0;r<7;r++){if(a=m([2e3,1]).day(r),n&&!this._fullWeekdaysParse[r]&&(this._fullWeekdaysParse[r]=new RegExp("^"+this.weekdays(a,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[r]=new RegExp("^"+this.weekdaysShort(a,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[r]=new RegExp("^"+this.weekdaysMin(a,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[r]||(o="^"+this.weekdays(a,"")+"|^"+this.weekdaysShort(a,"")+"|^"+this.weekdaysMin(a,""),this._weekdaysParse[r]=new RegExp(o.replace(".",""),"i")),n&&"dddd"===t&&this._fullWeekdaysParse[r].test(e))return r;if(n&&"ddd"===t&&this._shortWeekdaysParse[r].test(e))return r;if(n&&"dd"===t&&this._minWeekdaysParse[r].test(e))return r;if(!n&&this._weekdaysParse[r].test(e))return r}},Mn.weekdaysRegex=function(e){return this._weekdaysParseExact?(c(this,"_weekdaysRegex")||Ge.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(c(this,"_weekdaysRegex")||(this._weekdaysRegex=qe),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)},Mn.weekdaysShortRegex=function(e){return this._weekdaysParseExact?(c(this,"_weekdaysRegex")||Ge.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(c(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Ue),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},Mn.weekdaysMinRegex=function(e){return this._weekdaysParseExact?(c(this,"_weekdaysRegex")||Ge.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(c(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Be),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},Mn.isPM=function(e){return"p"===(e+"").toLowerCase().charAt(0)},Mn.meridiem=function(e,t,n){return e>11?n?"pm":"PM":n?"am":"AM"},it("en",{eras:[{since:"0001-01-01",until:1/0,offset:1,name:"Anno Domini",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-1/0,offset:1,name:"Before Christ",narrow:"BC",abbr:"BC"}],dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1===J(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}}),a.lang=w("moment.lang is deprecated. Use moment.locale instead.",it),a.langData=w("moment.langData is deprecated. Use moment.localeData instead.",st);var zn=Math.abs;function wn(e,t,n,r){var a=Wt(t,n);return e._milliseconds+=r*a._milliseconds,e._days+=r*a._days,e._months+=r*a._months,e._bubble()}function kn(e){return e<0?Math.floor(e):Math.ceil(e)}function Hn(e){return 4800*e/146097}function Tn(e){return 146097*e/4800}function Yn(e){return function(){return this.as(e)}}var Sn=Yn("ms"),Dn=Yn("s"),On=Yn("m"),xn=Yn("h"),Cn=Yn("d"),Vn=Yn("w"),jn=Yn("M"),En=Yn("Q"),Pn=Yn("y");function An(e){return function(){return this.isValid()?this._data[e]:NaN}}var Nn=An("milliseconds"),Fn=An("seconds"),Rn=An("minutes"),Wn=An("hours"),In=An("days"),qn=An("months"),Un=An("years"),Bn=Math.round,Jn={ss:44,s:45,m:45,h:22,d:26,w:null,M:11};function Gn(e,t,n,r,a){return a.relativeTime(t||1,!!n,e,r)}var Kn=Math.abs;function $n(e){return(e>0)-(e<0)||+e}function Qn(){if(!this.isValid())return this.localeData().invalidDate();var e,t,n,r,a,o,i,c,s=Kn(this._milliseconds)/1e3,l=Kn(this._days),u=Kn(this._months),d=this.asSeconds();return d?(e=B(s/60),t=B(e/60),s%=60,e%=60,n=B(u/12),u%=12,r=s?s.toFixed(3).replace(/\.?0+$/,""):"",a=d<0?"-":"",o=$n(this._months)!==$n(d)?"-":"",i=$n(this._days)!==$n(d)?"-":"",c=$n(this._milliseconds)!==$n(d)?"-":"",a+"P"+(n?o+n+"Y":"")+(u?o+u+"M":"")+(l?i+l+"D":"")+(t||e||s?"T":"")+(t?c+t+"H":"")+(e?c+e+"M":"")+(s?c+r+"S":"")):"P0D"}var Xn=Ot.prototype;return Xn.isValid=function(){return this._isValid},Xn.abs=function(){var e=this._data;return this._milliseconds=zn(this._milliseconds),this._days=zn(this._days),this._months=zn(this._months),e.milliseconds=zn(e.milliseconds),e.seconds=zn(e.seconds),e.minutes=zn(e.minutes),e.hours=zn(e.hours),e.months=zn(e.months),e.years=zn(e.years),this},Xn.add=function(e,t){return wn(this,e,t,1)},Xn.subtract=function(e,t){return wn(this,e,t,-1)},Xn.as=function(e){if(!this.isValid())return NaN;var t,n,r=this._milliseconds;if("month"===(e=R(e))||"quarter"===e||"year"===e)switch(t=this._days+r/864e5,n=this._months+Hn(t),e){case"month":return n;case"quarter":return n/3;case"year":return n/12}else switch(t=this._days+Math.round(Tn(this._months)),e){case"week":return t/7+r/6048e5;case"day":return t+r/864e5;case"hour":return 24*t+r/36e5;case"minute":return 1440*t+r/6e4;case"second":return 86400*t+r/1e3;case"millisecond":return Math.floor(864e5*t)+r;default:throw new Error("Unknown unit "+e)}},Xn.asMilliseconds=Sn,Xn.asSeconds=Dn,Xn.asMinutes=On,Xn.asHours=xn,Xn.asDays=Cn,Xn.asWeeks=Vn,Xn.asMonths=jn,Xn.asQuarters=En,Xn.asYears=Pn,Xn.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*J(this._months/12):NaN},Xn._bubble=function(){var e,t,n,r,a,o=this._milliseconds,i=this._days,c=this._months,s=this._data;return o>=0&&i>=0&&c>=0||o<=0&&i<=0&&c<=0||(o+=864e5*kn(Tn(c)+i),i=0,c=0),s.milliseconds=o%1e3,e=B(o/1e3),s.seconds=e%60,t=B(e/60),s.minutes=t%60,n=B(t/60),s.hours=n%24,i+=B(n/24),a=B(Hn(i)),c+=a,i-=kn(Tn(a)),r=B(c/12),c%=12,s.days=i,s.months=c,s.years=r,this},Xn.clone=function(){return Wt(this)},Xn.get=function(e){return e=R(e),this.isValid()?this[e+"s"]():NaN},Xn.milliseconds=Nn,Xn.seconds=Fn,Xn.minutes=Rn,Xn.hours=Wn,Xn.days=In,Xn.weeks=function(){return B(this.days()/7)},Xn.months=qn,Xn.years=Un,Xn.humanize=function(e,t){if(!this.isValid())return this.localeData().invalidDate();var n,r,a=!1,o=Jn;return"object"==typeof e&&(t=e,e=!1),"boolean"==typeof e&&(a=e),"object"==typeof t&&(o=Object.assign({},Jn,t),null!=t.s&&null==t.ss&&(o.ss=t.s-1)),n=this.localeData(),r=function(e,t,n,r){var a=Wt(e).abs(),o=Bn(a.as("s")),i=Bn(a.as("m")),c=Bn(a.as("h")),s=Bn(a.as("d")),l=Bn(a.as("M")),u=Bn(a.as("w")),d=Bn(a.as("y")),f=o<=n.ss&&["s",o]||o<n.s&&["ss",o]||i<=1&&["m"]||i<n.m&&["mm",i]||c<=1&&["h"]||c<n.h&&["hh",c]||s<=1&&["d"]||s<n.d&&["dd",s];return null!=n.w&&(f=f||u<=1&&["w"]||u<n.w&&["ww",u]),(f=f||l<=1&&["M"]||l<n.M&&["MM",l]||d<=1&&["y"]||["yy",d])[2]=t,f[3]=+e>0,f[4]=r,Gn.apply(null,f)}(this,!a,o,n),a&&(r=n.pastFuture(+this,r)),n.postformat(r)},Xn.toISOString=Qn,Xn.toString=Qn,Xn.toJSON=Qn,Xn.locale=Zt,Xn.localeData=tn,Xn.toIsoString=w("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Qn),Xn.lang=en,E("X",0,0,"unix"),E("x",0,0,"valueOf"),me("x",ue),me("X",/[+-]?\d+(\.\d{1,3})?/),Me("X",(function(e,t,n){n._d=new Date(1e3*parseFloat(e))})),Me("x",(function(e,t,n){n._d=new Date(J(e))})), //! moment.js a.version="2.27.0",t=Ht,a.fn=_n,a.min=function(){var e=[].slice.call(arguments,0);return St("isBefore",e)},a.max=function(){var e=[].slice.call(arguments,0);return St("isAfter",e)},a.now=function(){return Date.now?Date.now():+new Date},a.utc=m,a.unix=function(e){return Ht(1e3*e)},a.months=function(e,t){return bn(e,t,"months")},a.isDate=d,a.locale=it,a.invalid=_,a.duration=Wt,a.isMoment=L,a.weekdays=function(e,t,n){return Ln(e,t,n,"weekdays")},a.parseZone=function(){return Ht.apply(null,arguments).parseZone()},a.localeData=st,a.isDuration=xt,a.monthsShort=function(e,t){return bn(e,t,"monthsShort")},a.weekdaysMin=function(e,t,n){return Ln(e,t,n,"weekdaysMin")},a.defineLocale=ct,a.updateLocale=function(e,t){if(null!=t){var n,r,a=et;null!=tt[e]&&null!=tt[e].parentLocale?tt[e].set(S(tt[e]._config,t)):(null!=(r=ot(e))&&(a=r._config),t=S(a,t),null==r&&(t.abbr=e),(n=new D(t)).parentLocale=tt[e],tt[e]=n),it(e)}else null!=tt[e]&&(null!=tt[e].parentLocale?(tt[e]=tt[e].parentLocale,e===it()&&it(e)):null!=tt[e]&&delete tt[e]);return tt[e]},a.locales=function(){return k(tt)},a.weekdaysShort=function(e,t,n){return Ln(e,t,n,"weekdaysShort")},a.normalizeUnits=R,a.relativeTimeRounding=function(e){return void 0===e?Bn:"function"==typeof e&&(Bn=e,!0)},a.relativeTimeThreshold=function(e,t){return void 0!==Jn[e]&&(void 0===t?Jn[e]:(Jn[e]=t,"s"===e&&(Jn.ss=t-1),!0))},a.calendarFormat=function(e,t){var n=e.diff(t,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"},a.prototype=_n,a.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},a}()}).call(this,n(351)(e))},function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var r=n(4),a=n(5);function o(e){return function t(n,o){switch(arguments.length){case 0:return t;case 1:return Object(a.a)(n)?t:Object(r.a)((function(t){return e(n,t)}));default:return Object(a.a)(n)&&Object(a.a)(o)?t:Object(a.a)(n)?Object(r.a)((function(t){return e(t,o)})):Object(a.a)(o)?Object(r.a)((function(t){return e(n,t)})):e(n,o)}}}},function(e,t,n){"use strict";n.d(t,"a",(function(){return a}));var r=n(5);function a(e){return function t(n){return 0===arguments.length||Object(r.a)(n)?t:e.apply(this,arguments)}}},function(e,t,n){"use strict";function r(e){return null!=e&&"object"==typeof e&&!0===e["@@functional/placeholder"]}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";t.__esModule=!0;var r,a=n(55),o=(r=a)&&r.__esModule?r:{default:r};t.default=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==(void 0===t?"undefined":(0,o.default)(t))&&"function"!=typeof t?e:t}},function(e,t,n){"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE){0;try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}}(),e.exports=n(275)},function(e,t,n){"use strict";t.__esModule=!0,t.default=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t,n){"use strict";t.__esModule=!0;var r,a=n(303),o=(r=a)&&r.__esModule?r:{default:r};t.default=o.default||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}},function(e,t,n){"use strict";t.__esModule=!0;var r=i(n(332)),a=i(n(336)),o=i(n(55));function i(e){return e&&e.__esModule?e:{default:e}}t.default=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+(void 0===t?"undefined":(0,o.default)(t)));e.prototype=(0,a.default)(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(r.default?(0,r.default)(e,t):e.__proto__=t)}},function(e,t,n){var r; /*! Copyright (c) 2017 Jed Watson. Licensed under the MIT License (MIT), see http://jedwatson.github.io/classnames */!function(){"use strict";var n={}.hasOwnProperty;function a(){for(var e=[],t=0;t<arguments.length;t++){var r=arguments[t];if(r){var o=typeof r;if("string"===o||"number"===o)e.push(r);else if(Array.isArray(r)&&r.length){var i=a.apply(null,r);i&&e.push(i)}else if("object"===o)for(var c in r)n.call(r,c)&&r[c]&&e.push(c)}}return e.join(" ")}e.exports?(a.default=a,e.exports=a):void 0===(r=function(){return a}.apply(t,[]))||(e.exports=r)}()},function(e,t,n){"use strict";t.__esModule=!0;var r,a=n(96),o=(r=a)&&r.__esModule?r:{default:r};t.default=function(e,t,n){return t in e?(0,o.default)(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},function(e,t){e.exports=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){"use strict";t.__esModule=!0;var r,a=n(96),o=(r=a)&&r.__esModule?r:{default:r};t.default=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),(0,o.default)(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}()},function(e,t,n){"use strict";var r=n(16),a=n(4),o=n(3),i=n(5);var c=Object(o.a)((function(e,t){return 1===e?Object(a.a)(t):Object(r.a)(e,function e(t,n,a){return function(){for(var o=[],c=0,s=t,l=0;l<n.length||c<arguments.length;){var u;l<n.length&&(!Object(i.a)(n[l])||c>=arguments.length)?u=n[l]:(u=arguments[c],c+=1),o[l]=u,Object(i.a)(u)||(s-=1),l+=1}return s<=0?a.apply(this,o):Object(r.a)(s,e(t,o,a))}}(e,[],t))}));t.a=c},function(e,t,n){"use strict";function r(e,t){switch(e){case 0:return function(){return t.apply(this,arguments)};case 1:return function(e){return t.apply(this,arguments)};case 2:return function(e,n){return t.apply(this,arguments)};case 3:return function(e,n,r){return t.apply(this,arguments)};case 4:return function(e,n,r,a){return t.apply(this,arguments)};case 5:return function(e,n,r,a,o){return t.apply(this,arguments)};case 6:return function(e,n,r,a,o,i){return t.apply(this,arguments)};case 7:return function(e,n,r,a,o,i,c){return t.apply(this,arguments)};case 8:return function(e,n,r,a,o,i,c,s){return t.apply(this,arguments)};case 9:return function(e,n,r,a,o,i,c,s,l){return t.apply(this,arguments)};case 10:return function(e,n,r,a,o,i,c,s,l,u){return t.apply(this,arguments)};default:throw new Error("First argument to _arity must be a non-negative integer no greater than ten")}}n.d(t,"a",(function(){return r}))},,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ConfigConsumer",{enumerable:!0,get:function(){return c.ConfigConsumer}}),t.default=t.configConsumerProps=void 0;var r,a=l(n(0)),o=l(n(350)),i=(r=n(77))&&r.__esModule?r:{default:r},c=n(355);function s(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return s=function(){return e},e}function l(e){if(e&&e.__esModule)return e;if(null===e||"object"!==u(e)&&"function"!=typeof e)return{default:e};var t=s();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var o=r?Object.getOwnPropertyDescriptor(e,a):null;o&&(o.get||o.set)?Object.defineProperty(n,a,o):n[a]=e[a]}return n.default=e,t&&t.set(e,n),n}function u(e){return(u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function d(){return(d=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function f(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function h(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function m(e,t){return(m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function p(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=_(e);if(t){var a=_(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return v(this,n)}}function v(e,t){return!t||"object"!==u(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function _(e){return(_=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}t.configConsumerProps=["getPopupContainer","rootPrefixCls","getPrefixCls","renderEmpty","csp","autoInsertSpaceInButton","locale","pageHeader"];var y=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&m(e,t)}(l,e);var t,n,r,s=p(l);function l(){var e;return f(this,l),(e=s.apply(this,arguments)).getPrefixCls=function(t,n){var r=e.props.prefixCls,a=void 0===r?"ant":r;return n||(t?"".concat(a,"-").concat(t):a)},e.renderProvider=function(t,n){var r=e.props,i=r.children,s=r.getPopupContainer,l=r.renderEmpty,u=r.csp,f=r.autoInsertSpaceInButton,h=r.locale,m=r.pageHeader,p=d(d({},t),{getPrefixCls:e.getPrefixCls,csp:u,autoInsertSpaceInButton:f});return s&&(p.getPopupContainer=s),l&&(p.renderEmpty=l),m&&(p.pageHeader=m),a.createElement(c.ConfigContext.Provider,{value:p},a.createElement(o.default,{locale:h||n,_ANT_MARK__:o.ANT_MARK},i))},e}return t=l,(n=[{key:"render",value:function(){var e=this;return a.createElement(i.default,null,(function(t,n,r){return a.createElement(c.ConfigConsumer,null,(function(t){return e.renderProvider(t,r)}))}))}}])&&h(t.prototype,n),r&&h(t,r),l}(a.Component);t.default=y},function(e,t){e.exports= /** @license ISC License (c) copyright 2016 original and current authors */ function(e){return"function"==typeof e}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n(247).Col;t.default=r},function(e,t,n){"use strict";(function(e){var r;n.d(t,"a",(function(){return U})),n.d(t,"b",(function(){return B})),n.d(t,"c",(function(){return c})),n.d(t,"d",(function(){return l})),n.d(t,"e",(function(){return q}));var a="undefined"!=typeof Symbol?Symbol("immer-nothing"):((r={})["immer-nothing"]=!0,r),o="undefined"!=typeof Symbol&&Symbol.for?Symbol.for("immer-draftable"):"__$immer_draftable",i="undefined"!=typeof Symbol&&Symbol.for?Symbol.for("immer-state"):"__$immer_state";function c(e){return!!e&&!!e[i]}function s(e){if(!e||"object"!=typeof e)return!1;if(Array.isArray(e))return!0;var t=Object.getPrototypeOf(e);return!t||t===Object.prototype||(!!e[o]||!!e.constructor[o])}function l(e){if(e&&e[i])return e[i].base}var u=Object.assign||function(e,t){for(var n in t)p(t,n)&&(e[n]=t[n]);return e},d="undefined"!=typeof Reflect&&Reflect.ownKeys?Reflect.ownKeys:void 0!==Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:Object.getOwnPropertyNames;function f(e,t){if(void 0===t&&(t=!1),Array.isArray(e))return e.slice();var n=Object.create(Object.getPrototypeOf(e));return d(e).forEach((function(r){if(r!==i){var a=Object.getOwnPropertyDescriptor(e,r),o=a.value;a.get&&t&&(o=a.get.call(e)),a.enumerable?n[r]=o:t&&Object.defineProperty(n,r,{value:o,writable:!0,configurable:!0})}})),n}function h(e,t){if(Array.isArray(e))for(var n=0;n<e.length;n++)t(n,e[n],e);else d(e).forEach((function(n){return t(n,e[n],e)}))}function m(e,t){var n=Object.getOwnPropertyDescriptor(e,t);return!!n&&n.enumerable}function p(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function v(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}var _=function(e){this.drafts=[],this.parent=e,this.canAutoFreeze=!0,this.patches=null};function y(e){e[i].revoke()}_.prototype.usePatches=function(e){e&&(this.patches=[],this.inversePatches=[],this.patchListener=e)},_.prototype.revoke=function(){this.leave(),this.drafts.forEach(y),this.drafts=null},_.prototype.leave=function(){this===_.current&&(_.current=this.parent)},_.current=null,_.enter=function(){return this.current=new _(this.current)};var M={};function g(e,t){var n=Array.isArray(e),r=H(e);h(r,(function(t){!function(e,t,n){var r=M[t];r?r.enumerable=n:M[t]=r={configurable:!0,enumerable:n,get:function(){return function(e,t){T(e);var n=z(L(e),t);if(e.finalizing)return n;if(n===z(e.base,t)&&s(n))return k(e),e.copy[t]=g(n,e);return n}(this[i],t)},set:function(e){!function(e,t,n){if(T(e),e.assigned[t]=!0,!e.modified){if(v(n,z(L(e),t)))return;w(e),k(e)}e.copy[t]=n}(this[i],t,e)}};Object.defineProperty(e,t,r)}(r,t,n||m(e,t))}));var a,o,c,l=t?t.scope:_.current;return a=r,o=i,c={scope:l,modified:!1,finalizing:!1,finalized:!1,assigned:{},parent:t,base:e,draft:r,copy:null,revoke:b,revoked:!1},Object.defineProperty(a,o,{value:c,enumerable:!1,writable:!0}),l.drafts.push(r),r}function b(){this.revoked=!0}function L(e){return e.copy||e.base}function z(e,t){var n=e[i];if(n&&!n.finalizing){n.finalizing=!0;var r=e[t];return n.finalizing=!1,r}return e[t]}function w(e){e.modified||(e.modified=!0,e.parent&&w(e.parent))}function k(e){e.copy||(e.copy=H(e.base))}function H(e){var t=e&&e[i];if(t){t.finalizing=!0;var n=f(t.draft,!0);return t.finalizing=!1,n}return f(e)}function T(e){if(!0===e.revoked)throw new Error("Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? "+JSON.stringify(L(e)))}function Y(e){for(var t=e.length-1;t>=0;t--){var n=e[t][i];n.modified||(Array.isArray(n.base)?D(n)&&w(n):S(n)&&w(n))}}function S(e){for(var t=e.base,n=e.draft,r=Object.keys(n),a=r.length-1;a>=0;a--){var o=r[a],c=t[o];if(void 0===c&&!p(t,o))return!0;var s=n[o],l=s&&s[i];if(l?l.base!==c:!v(s,c))return!0}return r.length!==Object.keys(t).length}function D(e){var t=e.draft;if(t.length!==e.base.length)return!0;var n=Object.getOwnPropertyDescriptor(t,t.length-1);return!(!n||n.get)}var O=Object.freeze({willFinalize:function(e,t,n){e.drafts.forEach((function(e){e[i].finalizing=!0})),n?c(t)&&t[i].scope===e&&Y(e.drafts):(e.patches&&function e(t){if(!t||"object"!=typeof t)return;var n=t[i];if(!n)return;var r=n.base,a=n.draft,o=n.assigned;if(Array.isArray(t)){if(D(n)){if(w(n),o.length=!0,a.length<r.length)for(var c=a.length;c<r.length;c++)o[c]=!1;else for(var s=r.length;s<a.length;s++)o[s]=!0;for(var l=0;l<a.length;l++)void 0===o[l]&&e(a[l])}}else Object.keys(a).forEach((function(t){void 0!==r[t]||p(r,t)?o[t]||e(a[t]):(o[t]=!0,w(n))})),Object.keys(r).forEach((function(e){void 0!==a[e]||p(a,e)||(o[e]=!1,w(n))}))}(e.drafts[0]),Y(e.drafts))},createProxy:g});function x(e,t){var n=t?t.scope:_.current,r={scope:n,modified:!1,finalized:!1,assigned:{},parent:t,base:e,draft:null,drafts:{},copy:null,revoke:null},a=Array.isArray(e)?Proxy.revocable([r],V):Proxy.revocable(r,C),o=a.revoke,i=a.proxy;return r.draft=i,r.revoke=o,n.drafts.push(i),i}var C={get:function(e,t){if(t===i)return e;var n=e.drafts;if(!e.modified&&p(n,t))return n[t];var r=j(e)[t];if(e.finalized||!s(r))return r;if(e.modified){if(r!==E(e.base,t))return r;n=e.copy}return n[t]=x(r,e)},has:function(e,t){return t in j(e)},ownKeys:function(e){return Reflect.ownKeys(j(e))},set:function(e,t,n){if(!e.modified){var r=E(e.base,t);if(n?v(r,n)||n===e.drafts[t]:v(r,n)&&t in e.base)return!0;P(e)}return e.assigned[t]=!0,e.copy[t]=n,!0},deleteProperty:function(e,t){(void 0!==E(e.base,t)||t in e.base)&&(e.assigned[t]=!1,P(e));e.copy&&delete e.copy[t];return!0},getOwnPropertyDescriptor:function(e,t){var n=j(e),r=Reflect.getOwnPropertyDescriptor(n,t);r&&(r.writable=!0,r.configurable=!Array.isArray(n)||"length"!==t);return r},defineProperty:function(){throw new Error("Object.defineProperty() cannot be used on an Immer draft")},getPrototypeOf:function(e){return Object.getPrototypeOf(e.base)},setPrototypeOf:function(){throw new Error("Object.setPrototypeOf() cannot be used on an Immer draft")}},V={};function j(e){return e.copy||e.base}function E(e,t){var n=e[i],r=Reflect.getOwnPropertyDescriptor(n?j(n):e,t);return r&&r.value}function P(e){e.modified||(e.modified=!0,e.copy=u(f(e.base),e.drafts),e.drafts=null,e.parent&&P(e.parent))}h(C,(function(e,t){V[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}})),V.deleteProperty=function(e,t){if(isNaN(parseInt(t)))throw new Error("Immer only supports deleting array indices");return C.deleteProperty.call(this,e[0],t)},V.set=function(e,t,n){if("length"!==t&&isNaN(parseInt(t)))throw new Error("Immer only supports setting array indices and the 'length' property");return C.set.call(this,e[0],t,n)};var A=Object.freeze({willFinalize:function(){},createProxy:x});function N(e,t,n,r){Array.isArray(e.base)?function(e,t,n,r){var a,o,i=e.base,c=e.copy,s=e.assigned;c.length<i.length&&(i=(a=[c,i])[0],c=a[1],n=(o=[r,n])[0],r=o[1]);var l=c.length-i.length,u=0;for(;i[u]===c[u]&&u<i.length;)++u;var d=i.length;for(;d>u&&i[d-1]===c[d+l-1];)--d;for(var f=u;f<d;++f)if(s[f]&&c[f]!==i[f]){var h=t.concat([f]);n.push({op:"replace",path:h,value:c[f]}),r.push({op:"replace",path:h,value:i[f]})}for(var m=d!=i.length,p=n.length,v=d+l-1;v>=d;--v){var _=t.concat([v]);n[p+v-d]={op:"add",path:_,value:c[v]},m&&r.push({op:"remove",path:_})}m||r.push({op:"replace",path:t.concat(["length"]),value:i.length})}(e,t,n,r):function(e,t,n,r){var a=e.base,o=e.copy;h(e.assigned,(function(e,i){var c=a[e],s=o[e],l=i?e in a?"replace":"add":"remove";if(c!==s||"replace"!==l){var u=t.concat(e);n.push("remove"===l?{op:l,path:u}:{op:l,path:u,value:s}),r.push("add"===l?{op:"remove",path:u}:"remove"===l?{op:"add",path:u,value:c}:{op:"replace",path:u,value:c})}}))}(e,t,n,r)}function F(e,t){for(var n=0;n<t.length;n++){var r=t[n],a=r.path;if(0===a.length&&"replace"===r.op)e=r.value;else{for(var o=e,i=0;i<a.length-1;i++)if(!(o=o[a[i]])||"object"!=typeof o)throw new Error("Cannot apply patch, path doesn't resolve: "+a.join("/"));var c=a[a.length-1];switch(r.op){case"replace":o[c]=r.value;break;case"add":Array.isArray(o)?o.splice(c,0,r.value):o[c]=r.value;break;case"remove":Array.isArray(o)?o.splice(c,1):delete o[c];break;default:throw new Error("Unsupported patch operation: "+r.op)}}}return e}var R={useProxies:"undefined"!=typeof Proxy&&"undefined"!=typeof Reflect,autoFreeze:void 0===e&&"verifyMinified"===function(){}.name,onAssign:null,onDelete:null,onCopy:null},W=function(e){u(this,R,e),this.setUseProxies(this.useProxies),this.produce=this.produce.bind(this)};W.prototype.produce=function(e,t,n){var r,o=this;if("function"==typeof e&&"function"!=typeof t){var i=t;t=e;var c=this;return function(e){var n=this;void 0===e&&(e=i);for(var r=[],a=arguments.length-1;a-- >0;)r[a]=arguments[a+1];return c.produce(e,(function(e){return t.call.apply(t,[n,e].concat(r))}))}}if("function"!=typeof t)throw new Error("The first or second argument to `produce` must be a function");if(void 0!==n&&"function"!=typeof n)throw new Error("The third argument to `produce` must be a function or undefined");if(s(e)){var l=_.enter(),u=this.createProxy(e),d=!0;try{r=t(u),d=!1}finally{d?l.revoke():l.leave()}return r instanceof Promise?r.then((function(e){return l.usePatches(n),o.processResult(e,l)}),(function(e){throw l.revoke(),e})):(l.usePatches(n),this.processResult(r,l))}return void 0===(r=t(e))?e:r!==a?r:void 0},W.prototype.createDraft=function(e){if(!s(e))throw new Error("First argument to `createDraft` must be a plain object, an array, or an immerable object");var t=_.enter(),n=this.createProxy(e);return n[i].isManual=!0,t.leave(),n},W.prototype.finishDraft=function(e,t){var n=e&&e[i];if(!n||!n.isManual)throw new Error("First argument to `finishDraft` must be a draft returned by `createDraft`");if(n.finalized)throw new Error("The given draft is already finalized");var r=n.scope;return r.usePatches(t),this.processResult(void 0,r)},W.prototype.setAutoFreeze=function(e){this.autoFreeze=e},W.prototype.setUseProxies=function(e){this.useProxies=e,u(this,e?A:O)},W.prototype.applyPatches=function(e,t){return c(e)?F(e,t):this.produce(e,(function(e){return F(e,t)}))},W.prototype.processResult=function(e,t){var n=t.drafts[0],r=void 0!==e&&e!==n;if(this.willFinalize(t,e,r),r){if(n[i].modified)throw t.revoke(),new Error("An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.");s(e)&&(e=this.finalize(e,null,t)),t.patches&&(t.patches.push({op:"replace",path:[],value:e}),t.inversePatches.push({op:"replace",path:[],value:n[i].base}))}else e=this.finalize(n,[],t);return t.revoke(),t.patches&&t.patchListener(t.patches,t.inversePatches),e!==a?e:void 0},W.prototype.finalize=function(e,t,n){var r=this,a=e[i];if(!a)return Object.isFrozen(e)?e:this.finalizeTree(e,null,n);if(a.scope!==n)return e;if(!a.modified)return a.base;if(!a.finalized){if(a.finalized=!0,this.finalizeTree(a.draft,t,n),this.onDelete)if(this.useProxies){var o=a.assigned;for(var c in o)o[c]||this.onDelete(a,c)}else{var s=a.base,l=a.copy;h(s,(function(e){p(l,e)||r.onDelete(a,e)}))}this.onCopy&&this.onCopy(a),this.autoFreeze&&n.canAutoFreeze&&Object.freeze(a.copy),t&&n.patches&&N(a,t,n.patches,n.inversePatches)}return a.copy},W.prototype.finalizeTree=function(e,t,n){var r=this,a=e[i];a&&(this.useProxies||(a.copy=f(a.draft,!0)),e=a.copy);var o=!!t&&!!n.patches,l=function(i,u,d){if(u===d)throw Error("Immer forbids circular references");var f=!!a&&d===e;if(c(u)){var p=f&&o&&!a.assigned[i]?t.concat(i):null;if(c(u=r.finalize(u,p,n))&&(n.canAutoFreeze=!1),Array.isArray(d)||m(d,i)?d[i]=u:Object.defineProperty(d,i,{value:u}),f&&u===a.base[i])return}else{if(f&&v(u,a.base[i]))return;s(u)&&!Object.isFrozen(u)&&h(u,l)}f&&r.onAssign&&r.onAssign(a,i,u)};return h(e,l),e};var I=new W,q=(I.produce,I.setAutoFreeze.bind(I)),U=(I.setUseProxies.bind(I),I.applyPatches.bind(I),I.createDraft.bind(I)),B=I.finishDraft.bind(I)}).call(this,n(63))},function(e,t){var n=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(e,t){var n=e.exports={version:"2.6.12"};"number"==typeof __e&&(__e=n)},function(e,t,n){e.exports=!n(42)((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},function(e,t,n){"use strict";function r(){var e=this.constructor.getDerivedStateFromProps(this.props,this.state);null!=e&&this.setState(e)}function a(e){this.setState(function(t){var n=this.constructor.getDerivedStateFromProps(e,t);return null!=n?n:null}.bind(this))}function o(e,t){try{var n=this.props,r=this.state;this.props=e,this.state=t,this.__reactInternalSnapshotFlag=!0,this.__reactInternalSnapshot=this.getSnapshotBeforeUpdate(n,r)}finally{this.props=n,this.state=r}}function i(e){var t=e.prototype;if(!t||!t.isReactComponent)throw new Error("Can only polyfill class components");if("function"!=typeof e.getDerivedStateFromProps&&"function"!=typeof t.getSnapshotBeforeUpdate)return e;var n=null,i=null,c=null;if("function"==typeof t.componentWillMount?n="componentWillMount":"function"==typeof t.UNSAFE_componentWillMount&&(n="UNSAFE_componentWillMount"),"function"==typeof t.componentWillReceiveProps?i="componentWillReceiveProps":"function"==typeof t.UNSAFE_componentWillReceiveProps&&(i="UNSAFE_componentWillReceiveProps"),"function"==typeof t.componentWillUpdate?c="componentWillUpdate":"function"==typeof t.UNSAFE_componentWillUpdate&&(c="UNSAFE_componentWillUpdate"),null!==n||null!==i||null!==c){var s=e.displayName||e.name,l="function"==typeof e.getDerivedStateFromProps?"getDerivedStateFromProps()":"getSnapshotBeforeUpdate()";throw Error("Unsafe legacy lifecycles will not be called for components using new component APIs.\n\n"+s+" uses "+l+" but also contains the following legacy lifecycles:"+(null!==n?"\n "+n:"")+(null!==i?"\n "+i:"")+(null!==c?"\n "+c:"")+"\n\nThe above lifecycles should be removed. Learn more about this warning here:\nhttps://fb.me/react-async-component-lifecycle-hooks")}if("function"==typeof e.getDerivedStateFromProps&&(t.componentWillMount=r,t.componentWillReceiveProps=a),"function"==typeof t.getSnapshotBeforeUpdate){if("function"!=typeof t.componentDidUpdate)throw new Error("Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype");t.componentWillUpdate=o;var u=t.componentDidUpdate;t.componentDidUpdate=function(e,t,n){var r=this.__reactInternalSnapshotFlag?this.__reactInternalSnapshot:n;u.call(this,e,t,r)}}return e}n.r(t),n.d(t,"polyfill",(function(){return i})),r.__suppressDeprecationWarning=!0,a.__suppressDeprecationWarning=!0,o.__suppressDeprecationWarning=!0},function(e,t,n){"use strict";t.__esModule=!0,t.default=function(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}},function(e,t,n){"use strict";(function(e){n.d(t,"c",(function(){return v})),n.d(t,"b",(function(){return _})),n.d(t,"a",(function(){return g}));var r=n(261),a=n.n(r),o=n(262),i=n.n(o),c=n(83),s=n.n(c),l=n(269),u=n(15),d=n(405),f=n(263),h=n.n(f);function m(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function p(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?m(Object(n),!0).forEach((function(t){a()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):m(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}e.WPML_core=e.WPML_core||{},WPML_core.ajaxInProgress=0;var v=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.method,n=void 0===t?"POST":t,r=e.contentType,a=void 0===r?"application/x-www-form-urlencoded; charset=utf-8":r;return Object(l.a)({url:ajaxurl,method:n,init:{headers:{"Content-Type":a}}})},_=Object(u.a)(2,(function(e,t){var n=e.nonce,r=e.endpoint;return function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.method,r=void 0===n?"POST":n,a=t.contentType,o=void 0===a?"application/x-www-form-urlencoded; charset=utf-8":a;return WPML_core.ajaxInProgress++,fetch(ajaxurl,{method:r,headers:{"Content-Type":o},credentials:"same-origin",body:M(e)}).then(function(){var e=i()(s.a.mark((function e(t){var n;return s.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!t.ok){e.next=5;break}return e.next=3,t.json();case 3:return n=e.sent,e.abrupt("return",p(p({},t),{},{data:n}));case 5:return e.abrupt("return",p(p({},t),{},{data:{success:!1,data:{type:"ajaxError",message:t.statusText}}}));case 6:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()).finally((function(){WPML_core.ajaxInProgress--}))}(y(n,r,t))})),y=function(e,t,n){return{action:"wpml_action",nonce:e,endpoint:t,data:JSON.stringify(n)}},M=Object(d.a)(h.a.stringify)({arrayFormat:"bracket"}),g=Object(u.a)(3,(function(e,t,n){return{body:M({action:"wpml_action",nonce:e,endpoint:t,data:JSON.stringify(n)})}}))}).call(this,n(40))},function(e,t,n){"use strict";(function(e){n.d(t,"e",(function(){return d})),n.d(t,"d",(function(){return f})),n.d(t,"a",(function(){return m})),n.d(t,"b",(function(){return p})),n.d(t,"c",(function(){return v})),n.d(t,"f",(function(){return _}));var r=n(9),a=n.n(r),o=n(8),i=n.n(o),c=n(14),s=n.n(c),l=n(259),u=n(0);function d(t){e&&e.env||console.error("[@ant-design/icons-react]: "+t+".")}function f(e){return"object"==typeof e&&"string"==typeof e.name&&"string"==typeof e.theme&&("object"==typeof e.icon||"function"==typeof e.icon)}function h(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Object.keys(e).reduce((function(t,n){var r=e[n];switch(n){case"class":t.className=r,delete t.class;break;default:t[n]=r}return t}),{})}var m=function(){function e(){i()(this,e),this.collection={}}return s()(e,[{key:"clear",value:function(){this.collection={}}},{key:"delete",value:function(e){return delete this.collection[e]}},{key:"get",value:function(e){return this.collection[e]}},{key:"has",value:function(e){return Boolean(this.collection[e])}},{key:"set",value:function(e,t){return this.collection[e]=t,this}},{key:"size",get:function(){return Object.keys(this.collection).length}}]),e}();function p(e,t,n){return n?u.createElement(e.tag,a()({key:t},h(e.attrs),n),(e.children||[]).map((function(n,r){return p(n,t+"-"+e.tag+"-"+r)}))):u.createElement(e.tag,a()({key:t},h(e.attrs)),(e.children||[]).map((function(n,r){return p(n,t+"-"+e.tag+"-"+r)})))}function v(e){return Object(l.generate)(e)[0]}function _(e,t){switch(t){case"fill":return e+"-fill";case"outline":return e+"-o";case"twotone":return e+"-twotone";default:throw new TypeError("Unknown theme type: "+t+", name: "+e)}}}).call(this,n(63))},function(e,t,n){var r=n(41),a=n(98),o=n(64),i=Object.defineProperty;t.f=n(24)?Object.defineProperty:function(e,t,n){if(r(e),t=o(t,!0),r(n),a)try{return i(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},function(e,t,n){ /** @license ISC License (c) copyright 2017 original and current authors */ var r=n(19),a=n(46);e.exports=function(e,t){return!!t&&(function(e,t){return r(t[a[e]])||r(t[e])}(e,t)||function(e,t){return r(t["@@implements"])&&!!t["@@implements"](e)}(e,t))}},function(e,t,n){var r=n(22),a=n(23),o=n(97),i=n(33),c=n(30),s=function(e,t,n){var l,u,d,f=e&s.F,h=e&s.G,m=e&s.S,p=e&s.P,v=e&s.B,_=e&s.W,y=h?a:a[t]||(a[t]={}),M=y.prototype,g=h?r:m?r[t]:(r[t]||{}).prototype;for(l in h&&(n=t),n)(u=!f&&g&&void 0!==g[l])&&c(y,l)||(d=u?g[l]:n[l],y[l]=h&&"function"!=typeof g[l]?n[l]:v&&u?o(d,r):_&&g[l]==d?function(e){var t=function(t,n,r){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,r)}return e.apply(this,arguments)};return t.prototype=e.prototype,t}(d):p&&"function"==typeof d?o(Function.call,d):d,p&&((y.virtual||(y.virtual={}))[l]=d,e&s.R&&M&&!M[l]&&i(M,l,d)))};s.F=1,s.G=2,s.S=4,s.P=8,s.B=16,s.W=32,s.U=64,s.R=128,e.exports=s},function(e,t,n){var r=n(29),a=n(49);e.exports=n(24)?function(e,t,n){return r.f(e,t,a(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t,n){var r=n(101),a=n(65);e.exports=function(e){return r(a(e))}},function(e,t,n){var r=n(68)("wks"),a=n(52),o=n(22).Symbol,i="function"==typeof o;(e.exports=function(e){return r[e]||(r[e]=i&&o[e]||(i?o:a)("Symbol."+e))}).store=r},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"resetWarned",{enumerable:!0,get:function(){return a.resetWarned}}),t.default=void 0;var a=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var t=o();if(t&&t.has(e))return t.get(e);var n={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)){var c=a?Object.getOwnPropertyDescriptor(e,i):null;c&&(c.get||c.set)?Object.defineProperty(n,i,c):n[i]=e[i]}n.default=e,t&&t.set(e,n);return n}(n(107));function o(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return o=function(){return e},e}t.default=function(e,t,n){(0,a.default)(e,"[antd: ".concat(t,"] ").concat(n))}},function(e,t,n){var r=n(293),a=n(294),o=n(85),i=n(295);e.exports=function(e,t){return r(e)||a(e,t)||o(e,t)||i()},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){"use strict";var r=n(9),a=n.n(r),o=n(12),i=n.n(o),c=n(8),s=n.n(c),l=n(14),u=n.n(l),d=n(6),f=n.n(d),h=n(10),m=n.n(h),p=n(0),v=n.n(p),_=n(1),y=n.n(_);function M(e){var t=[];return v.a.Children.forEach(e,(function(e){t.push(e)})),t}function g(e,t){var n=null;return e&&e.forEach((function(e){n||e&&e.key===t&&(n=e)})),n}function b(e,t,n){var r=null;return e&&e.forEach((function(e){if(e&&e.key===t&&e.props[n]){if(r)throw new Error("two child with same key for <rc-animate> children");r=e}})),r}var L=n(7),z=n.n(L),w=n(55),k=n.n(w),H={transitionstart:{transition:"transitionstart",WebkitTransition:"webkitTransitionStart",MozTransition:"mozTransitionStart",OTransition:"oTransitionStart",msTransition:"MSTransitionStart"},animationstart:{animation:"animationstart",WebkitAnimation:"webkitAnimationStart",MozAnimation:"mozAnimationStart",OAnimation:"oAnimationStart",msAnimation:"MSAnimationStart"}},T={transitionend:{transition:"transitionend",WebkitTransition:"webkitTransitionEnd",MozTransition:"mozTransitionEnd",OTransition:"oTransitionEnd",msTransition:"MSTransitionEnd"},animationend:{animation:"animationend",WebkitAnimation:"webkitAnimationEnd",MozAnimation:"mozAnimationEnd",OAnimation:"oAnimationEnd",msAnimation:"MSAnimationEnd"}},Y=[],S=[];function D(e,t,n){e.addEventListener(t,n,!1)}function O(e,t,n){e.removeEventListener(t,n,!1)}"undefined"!=typeof window&&"undefined"!=typeof document&&function(){var e=document.createElement("div").style;function t(t,n){for(var r in t)if(t.hasOwnProperty(r)){var a=t[r];for(var o in a)if(o in e){n.push(a[o]);break}}}"AnimationEvent"in window||(delete H.animationstart.animation,delete T.animationend.animation),"TransitionEvent"in window||(delete H.transitionstart.transition,delete T.transitionend.transition),t(H,Y),t(T,S)}();var x={startEvents:Y,addStartEventListener:function(e,t){0!==Y.length?Y.forEach((function(n){D(e,n,t)})):window.setTimeout(t,0)},removeStartEventListener:function(e,t){0!==Y.length&&Y.forEach((function(n){O(e,n,t)}))},endEvents:S,addEndEventListener:function(e,t){0!==S.length?S.forEach((function(n){D(e,n,t)})):window.setTimeout(t,0)},removeEndEventListener:function(e,t){0!==S.length&&S.forEach((function(n){O(e,n,t)}))}},C=n(264),V=n.n(C),j=0!==x.endEvents.length,E=["Webkit","Moz","O","ms"],P=["-webkit-","-moz-","-o-","ms-",""];function A(e,t){for(var n=window.getComputedStyle(e,null),r="",a=0;a<P.length&&!(r=n.getPropertyValue(P[a]+t));a++);return r}function N(e){if(j){var t=parseFloat(A(e,"transition-delay"))||0,n=parseFloat(A(e,"transition-duration"))||0,r=parseFloat(A(e,"animation-delay"))||0,a=parseFloat(A(e,"animation-duration"))||0,o=Math.max(n+t,a+r);e.rcEndAnimTimeout=setTimeout((function(){e.rcEndAnimTimeout=null,e.rcEndListener&&e.rcEndListener()}),1e3*o+200)}}function F(e){e.rcEndAnimTimeout&&(clearTimeout(e.rcEndAnimTimeout),e.rcEndAnimTimeout=null)}var R=function(e,t,n){var r="object"===(void 0===t?"undefined":k()(t)),a=r?t.name:t,o=r?t.active:t+"-active",i=n,c=void 0,s=void 0,l=V()(e);return n&&"[object Object]"===Object.prototype.toString.call(n)&&(i=n.end,c=n.start,s=n.active),e.rcEndListener&&e.rcEndListener(),e.rcEndListener=function(t){t&&t.target!==e||(e.rcAnimTimeout&&(clearTimeout(e.rcAnimTimeout),e.rcAnimTimeout=null),F(e),l.remove(a),l.remove(o),x.removeEndEventListener(e,e.rcEndListener),e.rcEndListener=null,i&&i())},x.addEndEventListener(e,e.rcEndListener),c&&c(),l.add(a),e.rcAnimTimeout=setTimeout((function(){e.rcAnimTimeout=null,l.add(o),s&&setTimeout(s,0),N(e)}),30),{stop:function(){e.rcEndListener&&e.rcEndListener()}}};R.style=function(e,t,n){e.rcEndListener&&e.rcEndListener(),e.rcEndListener=function(t){t&&t.target!==e||(e.rcAnimTimeout&&(clearTimeout(e.rcAnimTimeout),e.rcAnimTimeout=null),F(e),x.removeEndEventListener(e,e.rcEndListener),e.rcEndListener=null,n&&n())},x.addEndEventListener(e,e.rcEndListener),e.rcAnimTimeout=setTimeout((function(){for(var n in t)t.hasOwnProperty(n)&&(e.style[n]=t[n]);e.rcAnimTimeout=null,N(e)}),0)},R.setTransition=function(e,t,n){var r=t,a=n;void 0===n&&(a=r,r=""),r=r||"",E.forEach((function(t){e.style[t+"Transition"+r]=a}))},R.isCssAnimationSupported=j;var W=R,I={isAppearSupported:function(e){return e.transitionName&&e.transitionAppear||e.animation.appear},isEnterSupported:function(e){return e.transitionName&&e.transitionEnter||e.animation.enter},isLeaveSupported:function(e){return e.transitionName&&e.transitionLeave||e.animation.leave},allowAppearCallback:function(e){return e.transitionAppear||e.animation.appear},allowEnterCallback:function(e){return e.transitionEnter||e.animation.enter},allowLeaveCallback:function(e){return e.transitionLeave||e.animation.leave}},q={enter:"transitionEnter",appear:"transitionAppear",leave:"transitionLeave"},U=function(e){function t(){return s()(this,t),f()(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return m()(t,e),u()(t,[{key:"componentWillUnmount",value:function(){this.stop()}},{key:"componentWillEnter",value:function(e){I.isEnterSupported(this.props)?this.transition("enter",e):e()}},{key:"componentWillAppear",value:function(e){I.isAppearSupported(this.props)?this.transition("appear",e):e()}},{key:"componentWillLeave",value:function(e){I.isLeaveSupported(this.props)?this.transition("leave",e):e()}},{key:"transition",value:function(e,t){var n=this,r=z.a.findDOMNode(this),a=this.props,o=a.transitionName,i="object"==typeof o;this.stop();var c=function(){n.stopper=null,t()};if((j||!a.animation[e])&&o&&a[q[e]]){var s=i?o[e]:o+"-"+e,l=s+"-active";i&&o[e+"Active"]&&(l=o[e+"Active"]),this.stopper=W(r,{name:s,active:l},c)}else this.stopper=a.animation[e](r,c)}},{key:"stop",value:function(){var e=this.stopper;e&&(this.stopper=null,e.stop())}},{key:"render",value:function(){return this.props.children}}]),t}(v.a.Component);U.propTypes={children:y.a.any};var B=U,J="rc_animate_"+Date.now();function G(e){var t=e.children;return v.a.isValidElement(t)&&!t.key?v.a.cloneElement(t,{key:J}):t}function K(){}var $=function(e){function t(e){s()(this,t);var n=f()(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return Q.call(n),n.currentlyAnimatingKeys={},n.keysToEnter=[],n.keysToLeave=[],n.state={children:M(G(e))},n.childrenRefs={},n}return m()(t,e),u()(t,[{key:"componentDidMount",value:function(){var e=this,t=this.props.showProp,n=this.state.children;t&&(n=n.filter((function(e){return!!e.props[t]}))),n.forEach((function(t){t&&e.performAppear(t.key)}))}},{key:"componentWillReceiveProps",value:function(e){var t=this;this.nextProps=e;var n=M(G(e)),r=this.props;r.exclusive&&Object.keys(this.currentlyAnimatingKeys).forEach((function(e){t.stop(e)}));var a,o,c,s,l=r.showProp,u=this.currentlyAnimatingKeys,d=r.exclusive?M(G(r)):this.state.children,f=[];l?(d.forEach((function(e){var t=e&&g(n,e.key),r=void 0;(r=t&&t.props[l]||!e.props[l]?t:v.a.cloneElement(t||e,i()({},l,!0)))&&f.push(r)})),n.forEach((function(e){e&&g(d,e.key)||f.push(e)}))):(a=n,o=[],c={},s=[],d.forEach((function(e){e&&g(a,e.key)?s.length&&(c[e.key]=s,s=[]):s.push(e)})),a.forEach((function(e){e&&Object.prototype.hasOwnProperty.call(c,e.key)&&(o=o.concat(c[e.key])),o.push(e)})),f=o=o.concat(s)),this.setState({children:f}),n.forEach((function(e){var n=e&&e.key;if(!e||!u[n]){var r=e&&g(d,n);if(l){var a=e.props[l];if(r)!b(d,n,l)&&a&&t.keysToEnter.push(n);else a&&t.keysToEnter.push(n)}else r||t.keysToEnter.push(n)}})),d.forEach((function(e){var r=e&&e.key;if(!e||!u[r]){var a=e&&g(n,r);if(l){var o=e.props[l];if(a)!b(n,r,l)&&o&&t.keysToLeave.push(r);else o&&t.keysToLeave.push(r)}else a||t.keysToLeave.push(r)}}))}},{key:"componentDidUpdate",value:function(){var e=this.keysToEnter;this.keysToEnter=[],e.forEach(this.performEnter);var t=this.keysToLeave;this.keysToLeave=[],t.forEach(this.performLeave)}},{key:"isValidChildByKey",value:function(e,t){var n=this.props.showProp;return n?b(e,t,n):g(e,t)}},{key:"stop",value:function(e){delete this.currentlyAnimatingKeys[e];var t=this.childrenRefs[e];t&&t.stop()}},{key:"render",value:function(){var e=this,t=this.props;this.nextProps=t;var n=this.state.children,r=null;n&&(r=n.map((function(n){if(null==n)return n;if(!n.key)throw new Error("must set key for <rc-animate> children");return v.a.createElement(B,{key:n.key,ref:function(t){e.childrenRefs[n.key]=t},animation:t.animation,transitionName:t.transitionName,transitionEnter:t.transitionEnter,transitionAppear:t.transitionAppear,transitionLeave:t.transitionLeave},n)})));var o=t.component;if(o){var i=t;return"string"==typeof o&&(i=a()({className:t.className,style:t.style},t.componentProps)),v.a.createElement(o,i,r)}return r[0]||null}}]),t}(v.a.Component);$.isAnimate=!0,$.propTypes={component:y.a.any,componentProps:y.a.object,animation:y.a.object,transitionName:y.a.oneOfType([y.a.string,y.a.object]),transitionEnter:y.a.bool,transitionAppear:y.a.bool,exclusive:y.a.bool,transitionLeave:y.a.bool,onEnd:y.a.func,onEnter:y.a.func,onLeave:y.a.func,onAppear:y.a.func,showProp:y.a.string,children:y.a.node},$.defaultProps={animation:{},component:"span",componentProps:{},transitionEnter:!0,transitionLeave:!0,transitionAppear:!1,onEnd:K,onEnter:K,onLeave:K,onAppear:K};var Q=function(){var e=this;this.performEnter=function(t){e.childrenRefs[t]&&(e.currentlyAnimatingKeys[t]=!0,e.childrenRefs[t].componentWillEnter(e.handleDoneAdding.bind(e,t,"enter")))},this.performAppear=function(t){e.childrenRefs[t]&&(e.currentlyAnimatingKeys[t]=!0,e.childrenRefs[t].componentWillAppear(e.handleDoneAdding.bind(e,t,"appear")))},this.handleDoneAdding=function(t,n){var r=e.props;if(delete e.currentlyAnimatingKeys[t],!r.exclusive||r===e.nextProps){var a=M(G(r));e.isValidChildByKey(a,t)?"appear"===n?I.allowAppearCallback(r)&&(r.onAppear(t),r.onEnd(t,!0)):I.allowEnterCallback(r)&&(r.onEnter(t),r.onEnd(t,!0)):e.performLeave(t)}},this.performLeave=function(t){e.childrenRefs[t]&&(e.currentlyAnimatingKeys[t]=!0,e.childrenRefs[t].componentWillLeave(e.handleDoneLeaving.bind(e,t)))},this.handleDoneLeaving=function(t){var n=e.props;if(delete e.currentlyAnimatingKeys[t],!n.exclusive||n===e.nextProps){var r,a,o,i,c=M(G(n));if(e.isValidChildByKey(c,t))e.performEnter(t);else{var s=function(){I.allowLeaveCallback(n)&&(n.onLeave(t),n.onEnd(t,!1))};r=e.state.children,a=c,o=n.showProp,(i=r.length===a.length)&&r.forEach((function(e,t){var n=a[t];e&&n&&(e&&!n||!e&&n||e.key!==n.key||o&&e.props[o]!==n.props[o])&&(i=!1)})),i?s():e.setState({children:c},s)}}}};t.a=$},function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t,n){var r=n(34);e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t,n){ /** @license ISC License (c) copyright 2016 original and current authors */ var r=n(87),a=r.Nothing,o=r.Just,i=n(291),c=n(58),s=n(292);e.exports=c((function(e,t){if(!s(e))throw new TypeError("safe: Pred or predicate function required for first argument");return i(e,t)?o(t):a()}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n(247).Row;t.default=r},function(e,t,n){"use strict"; /* object-assign (c) Sindre Sorhus @license MIT */var r=Object.getOwnPropertySymbols,a=Object.prototype.hasOwnProperty,o=Object.prototype.propertyIsEnumerable;function i(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,c,s=i(e),l=1;l<arguments.length;l++){for(var u in n=Object(arguments[l]))a.call(n,u)&&(s[u]=n[u]);if(r){c=r(n);for(var d=0;d<c.length;d++)o.call(n,c[d])&&(s[c[d]]=n[c[d]])}}return s}},function(e,t){ /** @license ISC License (c) copyright 2018 original and current authors */ e.exports={alt:"fantasy-land/alt",bimap:"fantasy-land/bimap",chain:"fantasy-land/chain",compose:"fantasy-land/compose",concat:"fantasy-land/concat",contramap:"fantasy-land/contramap",empty:"fantasy-land/empty",equals:"fantasy-land/equals",extend:"fantasy-land/extend",filter:"fantasy-land/filter",id:"fantasy-land/id",map:"fantasy-land/map",of:"fantasy-land/of",promap:"fantasy-land/promap",reduce:"fantasy-land/reduce",zero:"fantasy-land/zero"}},function(e,t,n){ /** @license ISC License (c) copyright 2016 original and current authors */ var r=n(58),a=n(19),o=n(90);e.exports=r((function(e,t){var n=o(e),r=o(t);return n===r||a(e)&&e.name===r||a(t)&&t.name===n}))},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=p(n(0)),o=h(n(11)),i=p(n(299)),c=h(n(252)),s=h(n(341)),l=n(342),u=h(n(37)),d=h(n(77)),f=n(349);function h(e){return e&&e.__esModule?e:{default:e}}function m(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return m=function(){return e},e}function p(e){if(e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var t=m();if(t&&t.has(e))return t.get(e);var n={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,t&&t.set(e,n),n}function v(){return(v=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function _(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function y(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var M,g=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n};c.default.add.apply(c.default,function(e){if(Array.isArray(e))return y(e)}(M=Object.keys(i).map((function(e){return i[e]})))||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(M)||function(e,t){if(e){if("string"==typeof e)return y(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?y(e,t):void 0}}(M)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),(0,f.setTwoToneColor)("#1890ff");var b,L="outlined";var z=function(e){var t,n=e.className,r=e.type,i=e.component,s=e.viewBox,f=e.spin,h=e.rotate,m=e.tabIndex,p=e.onClick,y=e.children,M=e.theme,z=e.twoToneColor,w=g(e,["className","type","component","viewBox","spin","rotate","tabIndex","onClick","children","theme","twoToneColor"]);(0,u.default)(Boolean(r||i||y),"Icon","Should have `type` prop or `component` prop or `children`.");var k=(0,o.default)((_(t={},"anticon",!0),_(t,"anticon-".concat(r),Boolean(r)),t),n),H=(0,o.default)(_({},"anticon-spin",!!f||"loading"===r)),T=h?{msTransform:"rotate(".concat(h,"deg)"),transform:"rotate(".concat(h,"deg)")}:void 0,Y=v(v({},l.svgBaseProps),{className:H,style:T,viewBox:s});s||delete Y.viewBox;var S=m;return void 0===S&&p&&(S=-1),a.createElement(d.default,{componentName:"Icon"},(function(e){return a.createElement("i",v({"aria-label":r&&"".concat(e.icon,": ").concat(r)},w,{tabIndex:S,onClick:p,className:k}),function(){if(i)return a.createElement(i,Y,y);if(y)return(0,u.default)(Boolean(s)||1===a.Children.count(y)&&a.isValidElement(y)&&"use"===a.Children.only(y).type,"Icon","Make sure that you provide correct `viewBox` prop (default `0 0 1024 1024`) to the icon."),a.createElement("svg",v({},Y,{viewBox:s}),y);if("string"==typeof r){var e=r;if(M){var t=(0,l.getThemeFromTypeName)(r);(0,u.default)(!t||M===t,"Icon","The icon name '".concat(r,"' already specify a theme '").concat(t,"',")+" the 'theme' prop '".concat(M,"' will be ignored."))}return e=(0,l.withThemeSuffix)((0,l.removeTypeTheme)((0,l.alias)(e)),b||M||L),a.createElement(c.default,{className:H,type:e,primaryColor:z,style:T})}}())}))};z.createFromIconfontCN=s.default,z.getTwoToneColor=f.getTwoToneColor,z.setTwoToneColor=f.setTwoToneColor;var w=z;t.default=w},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,n){var r=n(100),a=n(69);e.exports=Object.keys||function(e){return r(e,a)}},function(e,t){e.exports=!0},function(e,t){var n=0,r=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+r).toString(36))}},function(e,t){t.f={}.propertyIsEnumerable},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.tupleNum=t.tuple=void 0;t.tuple=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t};t.tupleNum=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t}},function(e,t,n){"use strict";t.__esModule=!0;var r=i(n(310)),a=i(n(322)),o="function"==typeof a.default&&"symbol"==typeof r.default?function(e){return typeof e}:function(e){return e&&"function"==typeof a.default&&e.constructor===a.default&&e!==a.default.prototype?"symbol":typeof e};function i(e){return e&&e.__esModule?e:{default:e}}t.default="function"==typeof a.default&&"symbol"===o(r.default)?function(e){return void 0===e?"undefined":o(e)}:function(e){return e&&"function"==typeof a.default&&e.constructor===a.default&&e!==a.default.prototype?"symbol":void 0===e?"undefined":o(e)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==d(e)&&"function"!=typeof e)return{default:e};var t=u();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var o=r?Object.getOwnPropertyDescriptor(e,a):null;o&&(o.get||o.set)?Object.defineProperty(n,a,o):n[a]=e[a]}n.default=e,t&&t.set(e,n);return n}(n(0)),a=n(25),o=l(n(95)),i=l(n(363)),c=n(18),s=n(111);function l(e){return e&&e.__esModule?e:{default:e}}function u(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return u=function(){return e},e}function d(e){return(d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function f(){return(f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function h(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function m(e,t){return(m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function p(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=_(e);if(t){var a=_(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return v(this,n)}}function v(e,t){return!t||"object"!==d(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function _(e){return(_=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var y=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&m(e,t)}(u,e);var t,n,a,l=p(u);function u(e){var t;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,u),(t=l.call(this,e)).saveTextArea=function(e){t.resizableTextArea=e},t.saveClearableInput=function(e){t.clearableInput=e},t.handleChange=function(e){t.setValue(e.target.value,(function(){t.resizableTextArea.resizeTextarea()})),(0,s.resolveOnChange)(t.resizableTextArea.textArea,e,t.props.onChange)},t.handleKeyDown=function(e){var n=t.props,r=n.onPressEnter,a=n.onKeyDown;13===e.keyCode&&r&&r(e),a&&a(e)},t.handleReset=function(e){t.setValue("",(function(){t.resizableTextArea.renderTextArea(),t.focus()})),(0,s.resolveOnChange)(t.resizableTextArea.textArea,e,t.props.onChange)},t.renderTextArea=function(e){return r.createElement(i.default,f({},t.props,{prefixCls:e,onKeyDown:t.handleKeyDown,onChange:t.handleChange,ref:t.saveTextArea}))},t.renderComponent=function(e){var n=e.getPrefixCls,a=t.state.value,i=n("input",t.props.prefixCls);return r.createElement(o.default,f({},t.props,{prefixCls:i,inputType:"text",value:(0,s.fixControlledValue)(a),element:t.renderTextArea(i),handleReset:t.handleReset,ref:t.saveClearableInput}))};var n=void 0===e.value?e.defaultValue:e.value;return t.state={value:n},t}return t=u,a=[{key:"getDerivedStateFromProps",value:function(e){return"value"in e?{value:e.value}:null}}],(n=[{key:"setValue",value:function(e,t){"value"in this.props||this.setState({value:e},t)}},{key:"focus",value:function(){this.resizableTextArea.textArea.focus()}},{key:"blur",value:function(){this.resizableTextArea.textArea.blur()}},{key:"render",value:function(){return r.createElement(c.ConfigConsumer,null,this.renderComponent)}}])&&h(t.prototype,n),a&&h(t,a),u}(r.Component);(0,a.polyfill)(y);var M=y;t.default=M},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var t=s();if(t&&t.has(e))return t.get(e);var n={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}n.default=e,t&&t.set(e,n);return n}(n(0)),o=c(n(404)),i=c(n(48));function c(e){return e&&e.__esModule?e:{default:e}}function s(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return s=function(){return e},e}function l(){return(l=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var u,d,f={},h=4.5,m=24,p=24,v="topRight";function _(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:m,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:p;switch(e){case"topLeft":t={left:0,top:n,bottom:"auto"};break;case"topRight":t={right:0,top:n,bottom:"auto"};break;case"bottomLeft":t={left:0,top:"auto",bottom:r};break;default:t={right:0,top:"auto",bottom:r}}return t}var y={success:"check-circle-o",info:"info-circle-o",error:"close-circle-o",warning:"exclamation-circle-o"};var M={open:function(e){var t=e.prefixCls||"ant-notification",n="".concat(t,"-notice"),r=void 0===e.duration?h:e.duration,c=null;if(e.icon)c=a.createElement("span",{className:"".concat(n,"-icon")},e.icon);else if(e.type){var s=y[e.type];c=a.createElement(i.default,{className:"".concat(n,"-icon ").concat(n,"-icon-").concat(e.type),type:s})}var l=!e.description&&c?a.createElement("span",{className:"".concat(n,"-message-single-line-auto-margin")}):null;!function(e,t){var n=e.prefixCls,r=e.placement,c=void 0===r?v:r,s=e.getContainer,l=void 0===s?u:s,h=e.top,m=e.bottom,p=e.closeIcon,y=void 0===p?d:p,M="".concat(n,"-").concat(c);if(f[M])t(f[M]);else{var g=a.createElement("span",{className:"".concat(n,"-close-x")},y||a.createElement(i.default,{className:"".concat(n,"-close-icon"),type:"close"}));o.default.newInstance({prefixCls:n,className:"".concat(n,"-").concat(c),style:_(c,h,m),getContainer:l,closeIcon:g},(function(e){f[M]=e,t(e)}))}}({prefixCls:t,placement:e.placement,top:e.top,bottom:e.bottom,getContainer:e.getContainer,closeIcon:e.closeIcon},(function(t){t.notice({content:a.createElement("div",{className:c?"".concat(n,"-with-icon"):""},c,a.createElement("div",{className:"".concat(n,"-message")},l,e.message),a.createElement("div",{className:"".concat(n,"-description")},e.description),e.btn?a.createElement("span",{className:"".concat(n,"-btn")},e.btn):null),duration:r,closable:!0,onClose:e.onClose,onClick:e.onClick,key:e.key,style:e.style||{},className:e.className})}))},close:function(e){Object.keys(f).forEach((function(t){return f[t].removeNotice(e)}))},config:function(e){var t=e.duration,n=e.placement,r=e.bottom,a=e.top,o=e.getContainer,i=e.closeIcon;void 0!==t&&(h=t),void 0!==n&&(v=n),void 0!==r&&(p=r),void 0!==a&&(m=a),void 0!==o&&(u=o),void 0!==i&&(d=i)},destroy:function(){Object.keys(f).forEach((function(e){f[e].destroy(),delete f[e]}))}};["success","info","warning","error"].forEach((function(e){M[e]=function(t){return M.open(l(l({},t),{type:e}))}})),M.warn=M.warning;var g=M;t.default=g},function(e,t,n){ /** @license ISC License (c) copyright 2016 original and current authors */ var r=n(19);function a(e,t){return r(e)?e.length>1?e.bind(null,t):e.call(null,t):e}e.exports=function e(t){if(t["@@crocks/curried"])return t;function n(){for(var n=[],o=arguments.length;o--;)n[o]=arguments[o];var i=n.length?n:[void 0];if(i.length<t.length)return e(Function.bind.apply(t,[null].concat(i)));var c=i.length===t.length?t.apply(null,i):i.reduce(a,t);return r(c)?e(c):c}return Object.defineProperty(n,"@@crocks/curried",{enumerable:!1,writable:!1,value:!0}),n}},function(e,t){e.exports= /** @license ISC License (c) copyright 2016 original and current authors */ function(e){return Array.isArray(e)}},function(e,t){ /** @license ISC License (c) copyright 2016 original and current authors */ var n=Object.prototype.toString;e.exports=function(e){return!!e&&"[object Object]"===n.call(e)}},function(e,t){e.exports= /** @license ISC License (c) copyright 2016 original and current authors */ function(e){return"string"==typeof e}},function(e,t){ /** @license ISC License (c) copyright 2017 original and current authors */ var n={unk:function(){return"unknown"},All:function(){return"All"},Any:function(){return"Any"},Arrow:function(){return"Arrow"},Assign:function(){return"Assign"},Async:function(){return"Async"},Const:function(e){return"Const("+e+")"},Either:function(){return"Either"},Endo:function(){return"Endo"},Equiv:function(){return"Equiv"},First:function(){return"First"},Identity:function(){return"Identity"},IO:function(){return"IO"},Last:function(){return"Last"},List:function(){return"List"},Max:function(){return"Max"},Maybe:function(){return"Maybe"},Min:function(){return"Min"},Pair:function(){return"Pair"},Pred:function(){return"Pred"},Prod:function(){return"Prod"},Reader:function(){return"Reader"},Result:function(){return"Result"},Star:function(){return"Star"},State:function(){return"State"},Sum:function(){return"Sum"},Tuple:function(e){return e+"-Tuple"},Unit:function(){return"Unit"},Writer:function(){return"Writer"}},r=function(e){return n[e]||n.unk};e.exports={proxy:function(e,t){return{type:function(){return r(e)(t)}}},type:r,typeFn:function(e,t,n){return"crocks/"+r(e)(n)+"@"+(t||0)}}},function(e,t){var n,r,a=e.exports={};function o(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}function c(e){if(n===setTimeout)return setTimeout(e,0);if((n===o||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:o}catch(e){n=o}try{r="function"==typeof clearTimeout?clearTimeout:i}catch(e){r=i}}();var s,l=[],u=!1,d=-1;function f(){u&&s&&(u=!1,s.length?l=s.concat(l):d=-1,l.length&&h())}function h(){if(!u){var e=c(f);u=!0;for(var t=l.length;t;){for(s=l,l=[];++d<t;)s&&s[d].run();d=-1,t=l.length}s=null,u=!1,function(e){if(r===clearTimeout)return clearTimeout(e);if((r===i||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(e);try{r(e)}catch(t){try{return r.call(null,e)}catch(t){return r.call(this,e)}}}(e)}}function m(e,t){this.fun=e,this.array=t}function p(){}a.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];l.push(new m(e,t)),1!==l.length||u||c(h)},m.prototype.run=function(){this.fun.apply(null,this.array)},a.title="browser",a.browser=!0,a.env={},a.argv=[],a.version="",a.versions={},a.on=p,a.addListener=p,a.once=p,a.off=p,a.removeListener=p,a.removeAllListeners=p,a.emit=p,a.prependListener=p,a.prependOnceListener=p,a.listeners=function(e){return[]},a.binding=function(e){throw new Error("process.binding is not supported")},a.cwd=function(){return"/"},a.chdir=function(e){throw new Error("process.chdir is not supported")},a.umask=function(){return 0}},function(e,t,n){var r=n(34);e.exports=function(e,t){if(!r(e))return e;var n,a;if(t&&"function"==typeof(n=e.toString)&&!r(a=n.call(e)))return a;if("function"==typeof(n=e.valueOf)&&!r(a=n.call(e)))return a;if(!t&&"function"==typeof(n=e.toString)&&!r(a=n.call(e)))return a;throw TypeError("Can't convert object to primitive value")}},function(e,t){e.exports=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e}},function(e,t){var n=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:n)(e)}},function(e,t,n){var r=n(68)("keys"),a=n(52);e.exports=function(e){return r[e]||(r[e]=a(e))}},function(e,t,n){var r=n(23),a=n(22),o=a["__core-js_shared__"]||(a["__core-js_shared__"]={});(e.exports=function(e,t){return o[e]||(o[e]=void 0!==t?t:{})})("versions",[]).push({version:r.version,mode:n(51)?"pure":"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})},function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t,n){var r=n(65);e.exports=function(e){return Object(r(e))}},function(e,t){e.exports={}},function(e,t,n){var r=n(41),a=n(315),o=n(69),i=n(67)("IE_PROTO"),c=function(){},s=function(){var e,t=n(99)("iframe"),r=o.length;for(t.style.display="none",n(316).appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write("<script>document.F=Object<\/script>"),e.close(),s=e.F;r--;)delete s.prototype[o[r]];return s()};e.exports=Object.create||function(e,t){var n;return null!==e?(c.prototype=r(e),n=new c,c.prototype=null,n[i]=e):n=s(),void 0===t?n:a(n,t)}},function(e,t,n){var r=n(29).f,a=n(30),o=n(36)("toStringTag");e.exports=function(e,t,n){e&&!a(e=n?e:e.prototype,o)&&r(e,o,{configurable:!0,value:t})}},function(e,t,n){t.f=n(36)},function(e,t,n){var r=n(22),a=n(23),o=n(51),i=n(75),c=n(29).f;e.exports=function(e){var t=a.Symbol||(a.Symbol=o?{}:r.Symbol||{});"_"==e.charAt(0)||e in t||c(t,e,{value:i.f(e)})}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,a=s(n(0)),o=s(n(1)),i=(r=n(345))&&r.__esModule?r:{default:r};function c(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return c=function(){return e},e}function s(e){if(e&&e.__esModule)return e;if(null===e||"object"!==l(e)&&"function"!=typeof e)return{default:e};var t=c();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var o=r?Object.getOwnPropertyDescriptor(e,a):null;o&&(o.get||o.set)?Object.defineProperty(n,a,o):n[a]=e[a]}return n.default=e,t&&t.set(e,n),n}function l(e){return(l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function u(){return(u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function d(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function f(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function h(e,t){return(h=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function m(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=v(e);if(t){var a=v(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return p(this,n)}}function p(e,t){return!t||"object"!==l(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function v(e){return(v=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var _=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&h(e,t)}(o,e);var t,n,r,a=m(o);function o(){return d(this,o),a.apply(this,arguments)}return t=o,(n=[{key:"getLocale",value:function(){var e=this.props,t=e.componentName,n=e.defaultLocale||i.default[t||"global"],r=this.context.antLocale,a=t&&r?r[t]:{};return u(u({},"function"==typeof n?n():n),a||{})}},{key:"getLocaleCode",value:function(){var e=this.context.antLocale,t=e&&e.locale;return e&&e.exist&&!t?i.default.locale:t}},{key:"render",value:function(){return this.props.children(this.getLocale(),this.getLocaleCode(),this.context.antLocale)}}])&&f(t.prototype,n),r&&f(t,r),o}(a.Component);t.default=_,_.defaultProps={componentName:"global"},_.contextTypes={antLocale:o.object}},function(e,t,n){"use strict";n.r(t);var r=n(9),a=n.n(r);t.default=function(e,t){for(var n=a()({},e),r=0;r<t.length;r++){delete n[t[r]]}return n}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==d(e)&&"function"!=typeof e)return{default:e};var t=u();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var o=r?Object.getOwnPropertyDescriptor(e,a):null;o&&(o.get||o.set)?Object.defineProperty(n,a,o):n[a]=e[a]}n.default=e,t&&t.set(e,n);return n}(n(0)),a=n(25),o=l(n(403)),i=l(n(11)),c=l(n(396)),s=n(18);function l(e){return e&&e.__esModule?e:{default:e}}function u(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return u=function(){return e},e}function d(e){return(d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function f(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function h(e,t){return(h=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function m(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=_(e);if(t){var a=_(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return p(this,n)}}function p(e,t){return!t||"object"!==d(t)&&"function"!=typeof t?v(e):t}function v(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _(e){return(_=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function y(){return(y=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function M(e){var t=e.type;if((!0===t.__ANT_BUTTON||!0===t.__ANT_SWITCH||!0===t.__ANT_CHECKBOX||"button"===e.type)&&e.props.disabled){var n=function(e,t){var n={},r=y({},e);return t.forEach((function(t){e&&t in e&&(n[t]=e[t],delete r[t])})),{picked:n,omitted:r}}(e.props.style,["position","left","right","top","bottom","float","display","zIndex"]),a=n.picked,o=n.omitted,i=y(y({display:"inline-block"},a),{cursor:"not-allowed",width:e.props.block?"100%":null}),c=y(y({},o),{pointerEvents:"none"}),s=r.cloneElement(e,{style:c,className:null});return r.createElement("span",{style:i,className:e.props.className},s)}return e}var g=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&h(e,t)}(u,e);var t,n,a,l=m(u);function u(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,u),(t=l.call(this,e)).onVisibleChange=function(e){var n=t.props.onVisibleChange;"visible"in t.props||t.setState({visible:!t.isNoTitle()&&e}),n&&!t.isNoTitle()&&n(e)},t.saveTooltip=function(e){t.tooltip=e},t.onPopupAlign=function(e,n){var r=t.getPlacements(),a=Object.keys(r).filter((function(e){return r[e].points[0]===n.points[0]&&r[e].points[1]===n.points[1]}))[0];if(a){var o=e.getBoundingClientRect(),i={top:"50%",left:"50%"};a.indexOf("top")>=0||a.indexOf("Bottom")>=0?i.top="".concat(o.height-n.offset[1],"px"):(a.indexOf("Top")>=0||a.indexOf("bottom")>=0)&&(i.top="".concat(-n.offset[1],"px")),a.indexOf("left")>=0||a.indexOf("Right")>=0?i.left="".concat(o.width-n.offset[0],"px"):(a.indexOf("right")>=0||a.indexOf("Left")>=0)&&(i.left="".concat(-n.offset[0],"px")),e.style.transformOrigin="".concat(i.left," ").concat(i.top)}},t.renderTooltip=function(e){var n=e.getPopupContainer,a=e.getPrefixCls,c=v(t),s=c.props,l=c.state,u=s.prefixCls,d=s.openClassName,f=s.getPopupContainer,h=s.getTooltipContainer,m=s.children,p=a("tooltip",u),_=l.visible;!("visible"in s)&&t.isNoTitle()&&(_=!1);var g,b,L,z=M(r.isValidElement(m)?m:r.createElement("span",null,m)),w=z.props,k=(0,i.default)(w.className,(g={},b=d||"".concat(p,"-open"),L=!0,b in g?Object.defineProperty(g,b,{value:L,enumerable:!0,configurable:!0,writable:!0}):g[b]=L,g));return r.createElement(o.default,y({},t.props,{prefixCls:p,getTooltipContainer:f||h||n,ref:t.saveTooltip,builtinPlacements:t.getPlacements(),overlay:t.getOverlay(),visible:_,onVisibleChange:t.onVisibleChange,onPopupAlign:t.onPopupAlign}),_?r.cloneElement(z,{className:k}):z)},t.state={visible:!!e.visible||!!e.defaultVisible},t}return t=u,a=[{key:"getDerivedStateFromProps",value:function(e){return"visible"in e?{visible:e.visible}:null}}],(n=[{key:"getPopupDomNode",value:function(){return this.tooltip.getPopupDomNode()}},{key:"getPlacements",value:function(){var e=this.props,t=e.builtinPlacements,n=e.arrowPointAtCenter,r=e.autoAdjustOverflow;return t||(0,c.default)({arrowPointAtCenter:n,verticalArrowShift:8,autoAdjustOverflow:r})}},{key:"isNoTitle",value:function(){var e=this.props,t=e.title,n=e.overlay;return!t&&!n&&0!==t}},{key:"getOverlay",value:function(){var e=this.props,t=e.title,n=e.overlay;return 0===t?t:n||t||""}},{key:"render",value:function(){return r.createElement(s.ConfigConsumer,null,this.renderTooltip)}}])&&f(t.prototype,n),a&&f(t,a),u}(r.Component);g.defaultProps={placement:"top",transitionName:"zoom-big-fast",mouseEnterDelay:.1,mouseLeaveDelay:.1,arrowPointAtCenter:!1,autoAdjustOverflow:!0},(0,a.polyfill)(g);var b=g;t.default=b},function(e,t,n){e.exports=n(86)},function(e,t,n){e.exports=function e(t,n,r){function a(i,c){if(!n[i]){if(!t[i]){if(o)return o(i,!0);var s=new Error("Cannot find module '"+i+"'");throw s.code="MODULE_NOT_FOUND",s}var l=n[i]={exports:{}};t[i][0].call(l.exports,(function(e){var n=t[i][1][e];return a(n||e)}),l,l.exports,e,t,n,r)}return n[i].exports}for(var o=!1,i=0;i<r.length;i++)a(r[i]);return a}({1:[function(e,t,n){t.exports=function(t){return"function"!=typeof Map||t?new(e("./similar")):new Map}},{"./similar":2}],2:[function(e,t,n){function r(){return this.list=[],this.lastItem=void 0,this.size=0,this}r.prototype.get=function(e){var t;return this.lastItem&&this.isEqual(this.lastItem.key,e)?this.lastItem.val:(t=this.indexOf(e))>=0?(this.lastItem=this.list[t],this.list[t].val):void 0},r.prototype.set=function(e,t){var n;return this.lastItem&&this.isEqual(this.lastItem.key,e)?(this.lastItem.val=t,this):(n=this.indexOf(e))>=0?(this.lastItem=this.list[n],this.list[n].val=t,this):(this.lastItem={key:e,val:t},this.list.push(this.lastItem),this.size++,this)},r.prototype.delete=function(e){var t;if(this.lastItem&&this.isEqual(this.lastItem.key,e)&&(this.lastItem=void 0),(t=this.indexOf(e))>=0)return this.size--,this.list.splice(t,1)[0]},r.prototype.has=function(e){var t;return!(!this.lastItem||!this.isEqual(this.lastItem.key,e))||(t=this.indexOf(e))>=0&&(this.lastItem=this.list[t],!0)},r.prototype.forEach=function(e,t){var n;for(n=0;n<this.size;n++)e.call(t||this,this.list[n].val,this.list[n].key,this)},r.prototype.indexOf=function(e){var t;for(t=0;t<this.size;t++)if(this.isEqual(this.list[t].key,e))return t;return-1},r.prototype.isEqual=function(e,t){return e===t||e!=e&&t!=t},t.exports=r},{}],3:[function(e,t,n){var r=e("map-or-similar");function a(e,t){var n,r,a,o,i,c=e.length,s=t.length;for(r=0;r<c;r++){for(n=!0,a=0;a<s;a++)if(o=e[r][a].arg,i=t[a].arg,o!==i&&(o==o||i==i)){n=!1;break}if(n)break}e.push(e.splice(r,1)[0])}function o(e){var t,n,r=e.length,a=e[r-1];for(a.cacheItem.delete(a.arg),n=r-2;n>=0&&(!(t=(a=e[n]).cacheItem.get(a.arg))||!t.size);n--)a.cacheItem.delete(a.arg)}t.exports=function(e){var t=new r(!1),n=[];return function(i){var c=function(){var s,l,u,d=t,f=arguments.length-1,h=Array(f+1),m=!0;if((c.numArgs||0===c.numArgs)&&c.numArgs!==f+1)throw new Error("Memoizerific functions should always be called with the same number of arguments");for(u=0;u<f;u++)h[u]={cacheItem:d,arg:arguments[u]},d.has(arguments[u])?d=d.get(arguments[u]):(m=!1,s=new r(!1),d.set(arguments[u],s),d=s);return m&&(d.has(arguments[f])?l=d.get(arguments[f]):m=!1),m||(l=i.apply(null,arguments),d.set(arguments[f],l)),e>0&&(h[f]={cacheItem:d,arg:arguments[f]},m?a(n,h):n.push(h),n.length>e&&o(n.shift())),c.wasMemoized=m,c.numArgs=f+1,l};return c.limit=e,c.wasMemoized=!1,c.cache=t,c.lru=n,c}}},{"map-or-similar":1}]},{},[3])(3)},function(e,t,n){"use strict";(function(e,r){var a,o=n(258);a="undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==e?e:r;var i=Object(o.a)(a);t.a=i}).call(this,n(40),n(298)(e))},function(e,t,n){e.exports=n(86)},function(e,t){e.exports=function(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){var r=n(84);e.exports=function(e,t){if(e){if("string"==typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(e,t):void 0}},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){var r=function(e){"use strict";var t=Object.prototype,n=t.hasOwnProperty,r="function"==typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",o=r.asyncIterator||"@@asyncIterator",i=r.toStringTag||"@@toStringTag";function c(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,n){return e[t]=n}}function s(e,t,n,r){var a=t&&t.prototype instanceof d?t:d,o=Object.create(a.prototype),i=new z(r||[]);return o._invoke=function(e,t,n){var r="suspendedStart";return function(a,o){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===a)throw o;return k()}for(n.method=a,n.arg=o;;){var i=n.delegate;if(i){var c=g(i,n);if(c){if(c===u)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var s=l(e,t,n);if("normal"===s.type){if(r=n.done?"completed":"suspendedYield",s.arg===u)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(r="completed",n.method="throw",n.arg=s.arg)}}}(e,n,i),o}function l(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=s;var u={};function d(){}function f(){}function h(){}var m={};m[a]=function(){return this};var p=Object.getPrototypeOf,v=p&&p(p(w([])));v&&v!==t&&n.call(v,a)&&(m=v);var _=h.prototype=d.prototype=Object.create(m);function y(e){["next","throw","return"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function M(e,t){var r;this._invoke=function(a,o){function i(){return new t((function(r,i){!function r(a,o,i,c){var s=l(e[a],e,o);if("throw"!==s.type){var u=s.arg,d=u.value;return d&&"object"==typeof d&&n.call(d,"__await")?t.resolve(d.__await).then((function(e){r("next",e,i,c)}),(function(e){r("throw",e,i,c)})):t.resolve(d).then((function(e){u.value=e,i(u)}),(function(e){return r("throw",e,i,c)}))}c(s.arg)}(a,o,r,i)}))}return r=r?r.then(i,i):i()}}function g(e,t){var n=e.iterator[t.method];if(void 0===n){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=void 0,g(e,t),"throw"===t.method))return u;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return u}var r=l(n,e.iterator,t.arg);if("throw"===r.type)return t.method="throw",t.arg=r.arg,t.delegate=null,u;var a=r.arg;return a?a.done?(t[e.resultName]=a.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,u):a:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,u)}function b(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function L(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function z(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(b,this),this.reset(!0)}function w(e){if(e){var t=e[a];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,o=function t(){for(;++r<e.length;)if(n.call(e,r))return t.value=e[r],t.done=!1,t;return t.value=void 0,t.done=!0,t};return o.next=o}}return{next:k}}function k(){return{value:void 0,done:!0}}return f.prototype=_.constructor=h,h.constructor=f,f.displayName=c(h,i,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===f||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,h):(e.__proto__=h,c(e,i,"GeneratorFunction")),e.prototype=Object.create(_),e},e.awrap=function(e){return{__await:e}},y(M.prototype),M.prototype[o]=function(){return this},e.AsyncIterator=M,e.async=function(t,n,r,a,o){void 0===o&&(o=Promise);var i=new M(s(t,n,r,a),o);return e.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},y(_),c(_,i,"Generator"),_[a]=function(){return this},_.toString=function(){return"[object Generator]"},e.keys=function(e){var t=[];for(var n in e)t.push(n);return t.reverse(),function n(){for(;t.length;){var r=t.pop();if(r in e)return n.value=r,n.done=!1,n}return n.done=!0,n}},e.values=w,z.prototype={constructor:z,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(L),!e)for(var t in this)"t"===t.charAt(0)&&n.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function r(n,r){return i.type="throw",i.arg=e,t.next=n,r&&(t.method="next",t.arg=void 0),!!r}for(var a=this.tryEntries.length-1;a>=0;--a){var o=this.tryEntries[a],i=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var c=n.call(o,"catchLoc"),s=n.call(o,"finallyLoc");if(c&&s){if(this.prev<o.catchLoc)return r(o.catchLoc,!0);if(this.prev<o.finallyLoc)return r(o.finallyLoc)}else if(c){if(this.prev<o.catchLoc)return r(o.catchLoc,!0)}else{if(!s)throw new Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return r(o.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var a=this.tryEntries[r];if(a.tryLoc<=this.prev&&n.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var o=a;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var i=o?o.completion:{};return i.type=e,i.arg=t,o?(this.method="next",this.next=o.finallyLoc,u):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),u},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),L(n),u}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;L(n)}return a}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:w(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),u}},e}(e.exports);try{regeneratorRuntime=r}catch(e){Function("r","regeneratorRuntime = r")(r)}},function(e,t,n){ /** @license ISC License (c) copyright 2016 original and current authors */ var r=n(278),a=n(89),o=n(282),i=n(283),c=n(284),s=n(62).type("Maybe"),l=n(62).typeFn(s(),4),u=n(46),d=n(287),f=n(290),h=n(91),m=n(92),p=n(59),v=n(19),_=n(47),y=function(e){return function(){return e}},M=function(e){return e},g=r({Nothing:[],Just:["a"]}),b=g.Nothing,L=g.Just;H.Nothing=f(H,b),H.Just=f(H,L);var z=f(H,L),w=f(H,b);function k(e){if(!m(e)&&!p(e))throw new TypeError("Maybe.sequence: Must wrap an Apply");return e.map(z)}function H(e){var t;if(!arguments.length)throw new TypeError("Maybe: Must wrap something, try using Nothing or Just constructors");var n=g.includes(e)?e:L(e),r=z,o=w,b=function(e){return S(y(e),M)},T=function(e){return _(H,e)&&S(y(e.either(y(!0),y(!1))),(function(t){return e.either(y(!1),(function(e){return a(e,t)}))}))},Y=function(){return S(y("Nothing"),(function(e){return"Just"+c(e)}))};function S(e,t){if(!v(e)||!v(t))throw new TypeError("Maybe.either: Requires both left and right functions");return g.caseOf({Nothing:e,Just:t},n)}function D(e){return function(t){if(!_(H,t))throw new TypeError("Maybe."+e+": Maybe of Semigroup required");return S(H.Nothing,i("Maybe."+e,t))}}function O(e,t){if(!v(e)||!v(t))throw new TypeError("Maybe.coalesce: Requires both left and right functions");return H.Just(S(e,t))}function x(e,t){var n="Maybe.bichain: Both arguments must be Maybe returning functions";if(!v(e)||!v(t))throw new TypeError(n);var r=S(e,t);if(!_(H,r))throw new TypeError(n);return r}function C(e){return function(t){if(!v(t))throw new TypeError("Maybe."+e+": Function required");return S(H.Nothing,f(H.Just,t))}}function V(e){return function(t){if(!_(H,t))throw new TypeError("Maybe."+e+": Maybe required");return S(y(t),H.Just)}}function j(e){var t=b(y(void 0));if(!v(t))throw new TypeError("Maybe.ap: Wrapped value must be a function");if(!_(H,e))throw new TypeError("Maybe.ap: Maybe required");return S(H.Nothing,e.map)}function E(e){return function(t){if(!v(t))throw new TypeError("Maybe."+e+": Function required");var n=S(H.Nothing,t);if(!_(H,n))throw new TypeError("Maybe."+e+": Function must return a Maybe");return n}}function P(e){if(!h(e)&&!v(e))throw new TypeError("Maybe.sequence: Applicative TypeRep or Apply returning function required");var t=d(e);return S(f(t,H.Nothing),k)}function A(e,t){if(!h(e)&&!v(e))throw new TypeError("Maybe.traverse: Applicative TypeRep or Apply returning function required for first argument");if(!v(t))throw new TypeError("Maybe.traverse: Apply returning function required for second argument");var n=d(e),r=S(f(n,H.Nothing),t);if(!m(r)&&!p(r))throw new TypeError("Maybe.traverse: Both functions must return an Apply of the same type");return S(y(r),y(r.map(z)))}return(t={inspect:Y,toString:Y,either:S,option:b,type:s,equals:T,bichain:x,coalesce:O,zero:o,ap:j,of:r,sequence:P,traverse:A,alt:V("alt"),chain:E("chain"),concat:D("concat"),map:C("map")})[u.zero]=o,t[u.of]=r,t[u.equals]=T,t[u.alt]=V(u.alt),t[u.concat]=D(u.concat),t[u.map]=C(u.map),t[u.chain]=E(u.chain),t["@@type"]=l,t.constructor=H,t}H.of=z,H.zero=w,H.type=s,H[u.of]=z,H[u.zero]=w,H["@@type"]=l,H["@@implements"]=o(["alt","ap","chain","concat","equals","map","of","traverse","zero"]),e.exports=H},function(e,t,n){ /** @license ISC License (c) copyright 2016 original and current authors */ var r=n(61),a=n(31);e.exports=function(e){return r(e)||!!e&&a("concat",e)}},function(e,t,n){ /** @license ISC License (c) copyright 2017 original and current authors */ var r=n(47),a=n(281),o=n(31),i=n(90),c=n(46),s=function(e,t){return e.valueOf()===t.valueOf()},l={Array:function(e,t){return e.length===t.length&&u(e,t)},Date:function(e,t){return a(e.valueOf(),t.valueOf())},Error:function(e,t){return e.name===t.name&&e.message===t.message},Object:function(e,t){return Object.keys(e).length===Object.keys(t).length&&u(e,t)},RegExp:function(e,t){return e.source===t.source&&e.ignoreCase===t.ignoreCase&&e.global===t.global&&e.multiline===t.multiline&&e.unicode===t.unicode}};function u(e,t){for(var n in e)if(!d(e[n],t[n]))return!1;return!0}function d(e,t){return!!a(e,t)||!!r(e,t)&&(o("equals",e)?(t[c.equals]||t.equals).call(t,e):(l[i(e)]||s)(e,t))}e.exports=d},function(e,t,n){ /** @license ISC License (c) copyright 2017 original and current authors */ var r=n(19);e.exports=function(e){return e&&r(e.type)?e.type():{}.toString.call(e).slice(8,-1)}},function(e,t,n){ /** @license ISC License (c) copyright 2016 original and current authors */ var r=n(31),a=n(92);e.exports=function(e){return a(e)&&(r("of",e)||r("of",e.constructor))}},function(e,t,n){ /** @license ISC License (c) copyright 2016 original and current authors */ var r=n(31),a=n(288);e.exports=function(e){return a(e)&&r("ap",e)}},function(e,t,n){},function(e,t,n){},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.hasPrefixSuffix=g,t.default=void 0;var r=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==d(e)&&"function"!=typeof e)return{default:e};var t=u();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var o=r?Object.getOwnPropertyDescriptor(e,a):null;o&&(o.get||o.set)?Object.defineProperty(n,a,o):n[a]=e[a]}n.default=e,t&&t.set(e,n);return n}(n(0)),a=n(25),o=l(n(11)),i=l(n(48)),c=n(54),s=n(111);function l(e){return e&&e.__esModule?e:{default:e}}function u(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return u=function(){return e},e}function d(e){return(d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function f(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function h(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function m(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function p(e,t){return(p=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function v(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=y(e);if(t){var a=y(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return _(this,n)}}function _(e,t){return!t||"object"!==d(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function y(e){return(y=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var M=(0,c.tuple)("text","input");function g(e){return!!(e.prefix||e.suffix||e.allowClear)}var b=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&p(e,t)}(l,e);var t,n,a,c=v(l);function l(){return h(this,l),c.apply(this,arguments)}return t=l,(n=[{key:"renderClearIcon",value:function(e){var t=this.props,n=t.allowClear,a=t.value,o=t.disabled,c=t.readOnly,s=t.inputType,l=t.handleReset;if(!n||o||c||null==a||""===a)return null;var u=s===M[0]?"".concat(e,"-textarea-clear-icon"):"".concat(e,"-clear-icon");return r.createElement(i.default,{type:"close-circle",theme:"filled",onClick:l,className:u,role:"button"})}},{key:"renderSuffix",value:function(e){var t=this.props,n=t.suffix,a=t.allowClear;return n||a?r.createElement("span",{className:"".concat(e,"-suffix")},this.renderClearIcon(e),n):null}},{key:"renderLabeledIcon",value:function(e,t){var n,a=this.props,i=this.renderSuffix(e);if(!g(a))return r.cloneElement(t,{value:a.value});var c=a.prefix?r.createElement("span",{className:"".concat(e,"-prefix")},a.prefix):null,l=(0,o.default)(a.className,"".concat(e,"-affix-wrapper"),(f(n={},"".concat(e,"-affix-wrapper-sm"),"small"===a.size),f(n,"".concat(e,"-affix-wrapper-lg"),"large"===a.size),f(n,"".concat(e,"-affix-wrapper-input-with-clear-btn"),a.suffix&&a.allowClear&&this.props.value),n));return r.createElement("span",{className:l,style:a.style},c,r.cloneElement(t,{style:null,value:a.value,className:(0,s.getInputClassName)(e,a.size,a.disabled)}),i)}},{key:"renderInputWithLabel",value:function(e,t){var n,a=this.props,i=a.addonBefore,c=a.addonAfter,s=a.style,l=a.size,u=a.className;if(!i&&!c)return t;var d="".concat(e,"-group"),h="".concat(d,"-addon"),m=i?r.createElement("span",{className:h},i):null,p=c?r.createElement("span",{className:h},c):null,v=(0,o.default)("".concat(e,"-wrapper"),f({},d,i||c)),_=(0,o.default)(u,"".concat(e,"-group-wrapper"),(f(n={},"".concat(e,"-group-wrapper-sm"),"small"===l),f(n,"".concat(e,"-group-wrapper-lg"),"large"===l),n));return r.createElement("span",{className:_,style:s},r.createElement("span",{className:v},m,r.cloneElement(t,{style:null}),p))}},{key:"renderTextAreaWithClearIcon",value:function(e,t){var n=this.props,a=n.value,i=n.allowClear,c=n.className,s=n.style;if(!i)return r.cloneElement(t,{value:a});var l=(0,o.default)(c,"".concat(e,"-affix-wrapper"),"".concat(e,"-affix-wrapper-textarea-with-clear-btn"));return r.createElement("span",{className:l,style:s},r.cloneElement(t,{style:null,value:a}),this.renderClearIcon(e))}},{key:"renderClearableLabeledInput",value:function(){var e=this.props,t=e.prefixCls,n=e.inputType,r=e.element;return n===M[0]?this.renderTextAreaWithClearIcon(t,r):this.renderInputWithLabel(t,this.renderLabeledIcon(t,r))}},{key:"render",value:function(){return this.renderClearableLabeledInput()}}])&&m(t.prototype,n),a&&m(t,a),l}(r.Component);(0,a.polyfill)(b);var L=b;t.default=L},function(e,t,n){e.exports={default:n(300),__esModule:!0}},function(e,t,n){var r=n(302);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,a){return e.call(t,n,r,a)}}return function(){return e.apply(t,arguments)}}},function(e,t,n){e.exports=!n(24)&&!n(42)((function(){return 7!=Object.defineProperty(n(99)("div"),"a",{get:function(){return 7}}).a}))},function(e,t,n){var r=n(34),a=n(22).document,o=r(a)&&r(a.createElement);e.exports=function(e){return o?a.createElement(e):{}}},function(e,t,n){var r=n(30),a=n(35),o=n(307)(!1),i=n(67)("IE_PROTO");e.exports=function(e,t){var n,c=a(e),s=0,l=[];for(n in c)n!=i&&r(c,n)&&l.push(n);for(;t.length>s;)r(c,n=t[s++])&&(~o(l,n)||l.push(n));return l}},function(e,t,n){var r=n(102);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==r(e)?e.split(""):Object(e)}},function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},function(e,t,n){"use strict";var r=n(51),a=n(32),o=n(104),i=n(33),c=n(72),s=n(314),l=n(74),u=n(317),d=n(36)("iterator"),f=!([].keys&&"next"in[].keys()),h=function(){return this};e.exports=function(e,t,n,m,p,v,_){s(n,t,m);var y,M,g,b=function(e){if(!f&&e in k)return k[e];switch(e){case"keys":case"values":return function(){return new n(this,e)}}return function(){return new n(this,e)}},L=t+" Iterator",z="values"==p,w=!1,k=e.prototype,H=k[d]||k["@@iterator"]||p&&k[p],T=H||b(p),Y=p?z?b("entries"):T:void 0,S="Array"==t&&k.entries||H;if(S&&(g=u(S.call(new e)))!==Object.prototype&&g.next&&(l(g,L,!0),r||"function"==typeof g[d]||i(g,d,h)),z&&H&&"values"!==H.name&&(w=!0,T=function(){return H.call(this)}),r&&!_||!f&&!w&&k[d]||i(k,d,T),c[t]=T,c[L]=h,p)if(y={values:z?T:b("values"),keys:v?T:b("keys"),entries:Y},_)for(M in y)M in k||o(k,M,y[M]);else a(a.P+a.F*(f||w),t,y);return y}},function(e,t,n){e.exports=n(33)},function(e,t,n){var r=n(100),a=n(69).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return r(e,a)}},function(e,t,n){var r=n(53),a=n(49),o=n(35),i=n(64),c=n(30),s=n(98),l=Object.getOwnPropertyDescriptor;t.f=n(24)?l:function(e,t){if(e=o(e),t=i(t,!0),s)try{return l(e,t)}catch(e){}if(c(e,t))return a(!r.f.call(e,t),e[t])}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.warning=a,t.note=o,t.resetWarned=function(){r={}},t.call=i,t.warningOnce=c,t.noteOnce=function(e,t){i(o,e,t)},t.default=void 0;var r={};function a(e,t){0}function o(e,t){0}function i(e,t,n){t||r[n]||(e(!1,n),r[n]=!0)}function c(e,t){i(a,e,t)}var s=c;t.default=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=c(n(346)),a=c(n(109)),o=c(n(110)),i=c(n(348));function c(e){return e&&e.__esModule?e:{default:e}}var s={locale:"en",Pagination:r.default,DatePicker:a.default,TimePicker:o.default,Calendar:i.default,global:{placeholder:"Please select"},Table:{filterTitle:"Filter menu",filterConfirm:"OK",filterReset:"Reset",selectAll:"Select current page",selectInvert:"Invert current page",sortTitle:"Sort",expand:"Expand row",collapse:"Collapse row"},Modal:{okText:"OK",cancelText:"Cancel",justOkText:"OK"},Popconfirm:{okText:"OK",cancelText:"Cancel"},Transfer:{titles:["",""],searchPlaceholder:"Search here",itemUnit:"item",itemsUnit:"items"},Upload:{uploading:"Uploading...",removeFile:"Remove file",uploadError:"Upload error",previewFile:"Preview file",downloadFile:"Download file"},Empty:{description:"No Data"},Icon:{icon:"icon"},Text:{edit:"Edit",copy:"Copy",copied:"Copied",expand:"Expand"},PageHeader:{back:"Back"}};t.default=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=o(n(347)),a=o(n(110));function o(e){return e&&e.__esModule?e:{default:e}}function i(){return(i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var c={lang:i({placeholder:"Select date",rangePlaceholder:["Start date","End date"]},r.default),timePickerLocale:i({},a.default)};t.default=c},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r={placeholder:"Select time"};t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.fixControlledValue=w,t.resolveOnChange=k,t.getInputClassName=H,t.default=t.InputSizes=void 0;var r=m(n(0)),a=m(n(1)),o=n(25),i=f(n(11)),c=f(n(78)),s=n(54),l=m(n(95)),u=n(18),d=f(n(37));function f(e){return e&&e.__esModule?e:{default:e}}function h(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return h=function(){return e},e}function m(e){if(e&&e.__esModule)return e;if(null===e||"object"!==p(e)&&"function"!=typeof e)return{default:e};var t=h();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var o=r?Object.getOwnPropertyDescriptor(e,a):null;o&&(o.get||o.set)?Object.defineProperty(n,a,o):n[a]=e[a]}return n.default=e,t&&t.set(e,n),n}function p(e){return(p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function v(){return(v=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function _(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function y(e,t){return(y=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function M(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=b(e);if(t){var a=b(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return g(this,n)}}function g(e,t){return!t||"object"!==p(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function b(e){return(b=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function L(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var z=(0,s.tuple)("small","default","large");function w(e){return null==e?"":e}function k(e,t,n){if(n){var r=t;if("click"===t.type){(r=Object.create(t)).target=e,r.currentTarget=e;var a=e.value;return e.value="",n(r),void(e.value=a)}n(r)}}function H(e,t,n){var r;return(0,i.default)(e,(L(r={},"".concat(e,"-sm"),"small"===t),L(r,"".concat(e,"-lg"),"large"===t),L(r,"".concat(e,"-disabled"),n),r))}t.InputSizes=z;var T=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&y(e,t)}(s,e);var t,n,a,o=M(s);function s(e){var t;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,s),(t=o.call(this,e)).saveClearableInput=function(e){t.clearableInput=e},t.saveInput=function(e){t.input=e},t.handleReset=function(e){t.setValue("",(function(){t.focus()})),k(t.input,e,t.props.onChange)},t.renderInput=function(e){var n=t.props,a=n.className,o=n.addonBefore,s=n.addonAfter,l=n.size,u=n.disabled,d=(0,c.default)(t.props,["prefixCls","onPressEnter","addonBefore","addonAfter","prefix","suffix","allowClear","defaultValue","size","inputType"]);return r.createElement("input",v({},d,{onChange:t.handleChange,onKeyDown:t.handleKeyDown,className:(0,i.default)(H(e,l,u),L({},a,a&&!o&&!s)),ref:t.saveInput}))},t.clearPasswordValueAttribute=function(){t.removePasswordTimeout=setTimeout((function(){t.input&&"password"===t.input.getAttribute("type")&&t.input.hasAttribute("value")&&t.input.removeAttribute("value")}))},t.handleChange=function(e){t.setValue(e.target.value,t.clearPasswordValueAttribute),k(t.input,e,t.props.onChange)},t.handleKeyDown=function(e){var n=t.props,r=n.onPressEnter,a=n.onKeyDown;13===e.keyCode&&r&&r(e),a&&a(e)},t.renderComponent=function(e){var n=e.getPrefixCls,a=t.state.value,o=n("input",t.props.prefixCls);return r.createElement(l.default,v({},t.props,{prefixCls:o,inputType:"input",value:w(a),element:t.renderInput(o),handleReset:t.handleReset,ref:t.saveClearableInput}))};var n=void 0===e.value?e.defaultValue:e.value;return t.state={value:n},t}return t=s,a=[{key:"getDerivedStateFromProps",value:function(e){return"value"in e?{value:e.value}:null}}],(n=[{key:"componentDidMount",value:function(){this.clearPasswordValueAttribute()}},{key:"componentDidUpdate",value:function(){}},{key:"getSnapshotBeforeUpdate",value:function(e){return(0,l.hasPrefixSuffix)(e)!==(0,l.hasPrefixSuffix)(this.props)&&(0,d.default)(this.input!==document.activeElement,"Input","When Input is focused, dynamic add or remove prefix / suffix will make it lose focus caused by dom structure change. Read more: https://ant.design/components/input/#FAQ"),null}},{key:"componentWillUnmount",value:function(){this.removePasswordTimeout&&clearTimeout(this.removePasswordTimeout)}},{key:"focus",value:function(){this.input.focus()}},{key:"blur",value:function(){this.input.blur()}},{key:"select",value:function(){this.input.select()}},{key:"setValue",value:function(e,t){"value"in this.props||this.setState({value:e},t)}},{key:"render",value:function(){return r.createElement(u.ConfigConsumer,null,this.renderComponent)}}])&&_(t.prototype,n),a&&_(t,a),s}(r.Component);T.defaultProps={type:"text"},T.propTypes={type:a.string,id:a.string,size:a.oneOf(z),maxLength:a.number,disabled:a.bool,value:a.any,defaultValue:a.any,className:a.string,addonBefore:a.node,addonAfter:a.node,prefixCls:a.string,onPressEnter:a.func,onKeyDown:a.func,onKeyUp:a.func,onFocus:a.func,onBlur:a.func,prefix:a.node,suffix:a.node,allowClear:a.bool},(0,o.polyfill)(T);var Y=T;t.default=Y},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("af",{months:"Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"),weekdays:"Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag".split("_"),weekdaysShort:"Son_Maa_Din_Woe_Don_Vry_Sat".split("_"),weekdaysMin:"So_Ma_Di_Wo_Do_Vr_Sa".split("_"),meridiemParse:/vm|nm/i,isPM:function(e){return/^nm$/i.test(e)},meridiem:function(e,t,n){return e<12?n?"vm":"VM":n?"nm":"NM"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Vandag om] LT",nextDay:"[Môre om] LT",nextWeek:"dddd [om] LT",lastDay:"[Gister om] LT",lastWeek:"[Laas] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oor %s",past:"%s gelede",s:"'n paar sekondes",ss:"%d sekondes",m:"'n minuut",mm:"%d minute",h:"'n uur",hh:"%d ure",d:"'n dag",dd:"%d dae",M:"'n maand",MM:"%d maande",y:"'n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},n={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},r=function(e){return 0===e?0:1===e?1:2===e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5},a={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},o=function(e){return function(t,n,o,i){var c=r(t),s=a[e][r(t)];return 2===c&&(s=s[n?0:1]),s.replace(/%d/i,t)}},i=["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"];e.defineLocale("ar",{months:i,monthsShort:i,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/M/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:o("s"),ss:o("s"),m:o("m"),mm:o("m"),h:o("h"),hh:o("h"),d:o("d"),dd:o("d"),M:o("M"),MM:o("M"),y:o("y"),yy:o("y")},preparse:function(e){return e.replace(/[١٢٣٤٥٦٧٨٩٠]/g,(function(e){return n[e]})).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]})).replace(/,/g,"،")},week:{dow:6,doy:12}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t=function(e){return 0===e?0:1===e?1:2===e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5},n={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},r=function(e){return function(r,a,o,i){var c=t(r),s=n[e][t(r)];return 2===c&&(s=s[a?0:1]),s.replace(/%d/i,r)}},a=["جانفي","فيفري","مارس","أفريل","ماي","جوان","جويلية","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر"];e.defineLocale("ar-dz",{months:a,monthsShort:a,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/M/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:r("s"),ss:r("s"),m:r("m"),mm:r("m"),h:r("h"),hh:r("h"),d:r("d"),dd:r("d"),M:r("M"),MM:r("M"),y:r("y"),yy:r("y")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:0,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("ar-kw",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:0,doy:12}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",0:"0"},n=function(e){return 0===e?0:1===e?1:2===e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5},r={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},a=function(e){return function(t,a,o,i){var c=n(t),s=r[e][n(t)];return 2===c&&(s=s[a?0:1]),s.replace(/%d/i,t)}},o=["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"];e.defineLocale("ar-ly",{months:o,monthsShort:o,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/M/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:a("s"),ss:a("s"),m:a("m"),mm:a("m"),h:a("h"),hh:a("h"),d:a("d"),dd:a("d"),M:a("M"),MM:a("M"),y:a("y"),yy:a("y")},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]})).replace(/,/g,"،")},week:{dow:6,doy:12}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("ar-ma",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:6,doy:12}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},n={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"};e.defineLocale("ar-sa",{months:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},preparse:function(e){return e.replace(/[١٢٣٤٥٦٧٨٩٠]/g,(function(e){return n[e]})).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]})).replace(/,/g,"،")},week:{dow:0,doy:6}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("ar-tn",{months:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"-inci",5:"-inci",8:"-inci",70:"-inci",80:"-inci",2:"-nci",7:"-nci",20:"-nci",50:"-nci",3:"-üncü",4:"-üncü",100:"-üncü",6:"-ncı",9:"-uncu",10:"-uncu",30:"-uncu",60:"-ıncı",90:"-ıncı"};e.defineLocale("az",{months:"yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr".split("_"),monthsShort:"yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek".split("_"),weekdays:"Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə".split("_"),weekdaysShort:"Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən".split("_"),weekdaysMin:"Bz_BE_ÇA_Çə_CA_Cü_Şə".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[sabah saat] LT",nextWeek:"[gələn həftə] dddd [saat] LT",lastDay:"[dünən] LT",lastWeek:"[keçən həftə] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s əvvəl",s:"birneçə saniyə",ss:"%d saniyə",m:"bir dəqiqə",mm:"%d dəqiqə",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir il",yy:"%d il"},meridiemParse:/gecə|səhər|gündüz|axşam/,isPM:function(e){return/^(gündüz|axşam)$/.test(e)},meridiem:function(e,t,n){return e<4?"gecə":e<12?"səhər":e<17?"gündüz":"axşam"},dayOfMonthOrdinalParse:/\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,ordinal:function(e){if(0===e)return e+"-ıncı";var n=e%10;return e+(t[n]||t[e%100-n]||t[e>=100?100:null])},week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration function t(e,t,n){var r,a;return"m"===n?t?"хвіліна":"хвіліну":"h"===n?t?"гадзіна":"гадзіну":e+" "+(r=+e,a={ss:t?"секунда_секунды_секунд":"секунду_секунды_секунд",mm:t?"хвіліна_хвіліны_хвілін":"хвіліну_хвіліны_хвілін",hh:t?"гадзіна_гадзіны_гадзін":"гадзіну_гадзіны_гадзін",dd:"дзень_дні_дзён",MM:"месяц_месяцы_месяцаў",yy:"год_гады_гадоў"}[n].split("_"),r%10==1&&r%100!=11?a[0]:r%10>=2&&r%10<=4&&(r%100<10||r%100>=20)?a[1]:a[2])}e.defineLocale("be",{months:{format:"студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня".split("_"),standalone:"студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань".split("_")},monthsShort:"студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж".split("_"),weekdays:{format:"нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу".split("_"),standalone:"нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота".split("_"),isFormat:/\[ ?[Ууў] ?(?:мінулую|наступную)? ?\] ?dddd/},weekdaysShort:"нд_пн_ат_ср_чц_пт_сб".split("_"),weekdaysMin:"нд_пн_ат_ср_чц_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., HH:mm",LLLL:"dddd, D MMMM YYYY г., HH:mm"},calendar:{sameDay:"[Сёння ў] LT",nextDay:"[Заўтра ў] LT",lastDay:"[Учора ў] LT",nextWeek:function(){return"[У] dddd [ў] LT"},lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return"[У мінулую] dddd [ў] LT";case 1:case 2:case 4:return"[У мінулы] dddd [ў] LT"}},sameElse:"L"},relativeTime:{future:"праз %s",past:"%s таму",s:"некалькі секунд",m:t,mm:t,h:t,hh:t,d:"дзень",dd:t,M:"месяц",MM:t,y:"год",yy:t},meridiemParse:/ночы|раніцы|дня|вечара/,isPM:function(e){return/^(дня|вечара)$/.test(e)},meridiem:function(e,t,n){return e<4?"ночы":e<12?"раніцы":e<17?"дня":"вечара"},dayOfMonthOrdinalParse:/\d{1,2}-(і|ы|га)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":case"w":case"W":return e%10!=2&&e%10!=3||e%100==12||e%100==13?e+"-ы":e+"-і";case"D":return e+"-га";default:return e}},week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("bg",{months:"януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември".split("_"),monthsShort:"яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек".split("_"),weekdays:"неделя_понеделник_вторник_сряда_четвъртък_петък_събота".split("_"),weekdaysShort:"нед_пон_вто_сря_чет_пет_съб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[Днес в] LT",nextDay:"[Утре в] LT",nextWeek:"dddd [в] LT",lastDay:"[Вчера в] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[Миналата] dddd [в] LT";case 1:case 2:case 4:case 5:return"[Миналия] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"след %s",past:"преди %s",s:"няколко секунди",ss:"%d секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дена",M:"месец",MM:"%d месеца",y:"година",yy:"%d години"},dayOfMonthOrdinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(e){var t=e%10,n=e%100;return 0===e?e+"-ев":0===n?e+"-ен":n>10&&n<20?e+"-ти":1===t?e+"-ви":2===t?e+"-ри":7===t||8===t?e+"-ми":e+"-ти"},week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("bm",{months:"Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo".split("_"),monthsShort:"Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des".split("_"),weekdays:"Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri".split("_"),weekdaysShort:"Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib".split("_"),weekdaysMin:"Ka_Nt_Ta_Ar_Al_Ju_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"MMMM [tile] D [san] YYYY",LLL:"MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm",LLLL:"dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm"},calendar:{sameDay:"[Bi lɛrɛ] LT",nextDay:"[Sini lɛrɛ] LT",nextWeek:"dddd [don lɛrɛ] LT",lastDay:"[Kunu lɛrɛ] LT",lastWeek:"dddd [tɛmɛnen lɛrɛ] LT",sameElse:"L"},relativeTime:{future:"%s kɔnɔ",past:"a bɛ %s bɔ",s:"sanga dama dama",ss:"sekondi %d",m:"miniti kelen",mm:"miniti %d",h:"lɛrɛ kelen",hh:"lɛrɛ %d",d:"tile kelen",dd:"tile %d",M:"kalo kelen",MM:"kalo %d",y:"san kelen",yy:"san %d"},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"১",2:"২",3:"৩",4:"৪",5:"৫",6:"৬",7:"৭",8:"৮",9:"৯",0:"০"},n={"১":"1","২":"2","৩":"3","৪":"4","৫":"5","৬":"6","৭":"7","৮":"8","৯":"9","০":"0"};e.defineLocale("bn",{months:"জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর".split("_"),monthsShort:"জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে".split("_"),weekdays:"রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার".split("_"),weekdaysShort:"রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি".split("_"),weekdaysMin:"রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি".split("_"),longDateFormat:{LT:"A h:mm সময়",LTS:"A h:mm:ss সময়",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm সময়",LLLL:"dddd, D MMMM YYYY, A h:mm সময়"},calendar:{sameDay:"[আজ] LT",nextDay:"[আগামীকাল] LT",nextWeek:"dddd, LT",lastDay:"[গতকাল] LT",lastWeek:"[গত] dddd, LT",sameElse:"L"},relativeTime:{future:"%s পরে",past:"%s আগে",s:"কয়েক সেকেন্ড",ss:"%d সেকেন্ড",m:"এক মিনিট",mm:"%d মিনিট",h:"এক ঘন্টা",hh:"%d ঘন্টা",d:"এক দিন",dd:"%d দিন",M:"এক মাস",MM:"%d মাস",y:"এক বছর",yy:"%d বছর"},preparse:function(e){return e.replace(/[১২৩৪৫৬৭৮৯০]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/রাত|সকাল|দুপুর|বিকাল|রাত/,meridiemHour:function(e,t){return 12===e&&(e=0),"রাত"===t&&e>=4||"দুপুর"===t&&e<5||"বিকাল"===t?e+12:e},meridiem:function(e,t,n){return e<4?"রাত":e<10?"সকাল":e<17?"দুপুর":e<20?"বিকাল":"রাত"},week:{dow:0,doy:6}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"༡",2:"༢",3:"༣",4:"༤",5:"༥",6:"༦",7:"༧",8:"༨",9:"༩",0:"༠"},n={"༡":"1","༢":"2","༣":"3","༤":"4","༥":"5","༦":"6","༧":"7","༨":"8","༩":"9","༠":"0"};e.defineLocale("bo",{months:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),monthsShort:"ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12".split("_"),monthsShortRegex:/^(ཟླ་\d{1,2})/,monthsParseExact:!0,weekdays:"གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་".split("_"),weekdaysShort:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),weekdaysMin:"ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[དི་རིང] LT",nextDay:"[སང་ཉིན] LT",nextWeek:"[བདུན་ཕྲག་རྗེས་མ], LT",lastDay:"[ཁ་སང] LT",lastWeek:"[བདུན་ཕྲག་མཐའ་མ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ལ་",past:"%s སྔན་ལ",s:"ལམ་སང",ss:"%d སྐར་ཆ།",m:"སྐར་མ་གཅིག",mm:"%d སྐར་མ",h:"ཆུ་ཚོད་གཅིག",hh:"%d ཆུ་ཚོད",d:"ཉིན་གཅིག",dd:"%d ཉིན་",M:"ཟླ་བ་གཅིག",MM:"%d ཟླ་བ",y:"ལོ་གཅིག",yy:"%d ལོ"},preparse:function(e){return e.replace(/[༡༢༣༤༥༦༧༨༩༠]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,meridiemHour:function(e,t){return 12===e&&(e=0),"མཚན་མོ"===t&&e>=4||"ཉིན་གུང"===t&&e<5||"དགོང་དག"===t?e+12:e},meridiem:function(e,t,n){return e<4?"མཚན་མོ":e<10?"ཞོགས་ཀས":e<17?"ཉིན་གུང":e<20?"དགོང་དག":"མཚན་མོ"},week:{dow:0,doy:6}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration function t(e,t,n){return e+" "+function(e,t){return 2===t?function(e){var t={m:"v",b:"v",d:"z"};return void 0===t[e.charAt(0)]?e:t[e.charAt(0)]+e.substring(1)}(e):e}({mm:"munutenn",MM:"miz",dd:"devezh"}[n],e)}var n=[/^gen/i,/^c[ʼ\']hwe/i,/^meu/i,/^ebr/i,/^mae/i,/^(mez|eve)/i,/^gou/i,/^eos/i,/^gwe/i,/^her/i,/^du/i,/^ker/i],r=/^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,a=[/^Su/i,/^Lu/i,/^Me([^r]|$)/i,/^Mer/i,/^Ya/i,/^Gw/i,/^Sa/i];e.defineLocale("br",{months:"Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu".split("_"),monthsShort:"Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker".split("_"),weekdays:"Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn".split("_"),weekdaysShort:"Sul_Lun_Meu_Mer_Yao_Gwe_Sad".split("_"),weekdaysMin:"Su_Lu_Me_Mer_Ya_Gw_Sa".split("_"),weekdaysParse:a,fullWeekdaysParse:[/^sul/i,/^lun/i,/^meurzh/i,/^merc[ʼ\']her/i,/^yaou/i,/^gwener/i,/^sadorn/i],shortWeekdaysParse:[/^Sul/i,/^Lun/i,/^Meu/i,/^Mer/i,/^Yao/i,/^Gwe/i,/^Sad/i],minWeekdaysParse:a,monthsRegex:r,monthsShortRegex:r,monthsStrictRegex:/^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,monthsShortStrictRegex:/^(gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,monthsParse:n,longMonthsParse:n,shortMonthsParse:n,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [a viz] MMMM YYYY",LLL:"D [a viz] MMMM YYYY HH:mm",LLLL:"dddd, D [a viz] MMMM YYYY HH:mm"},calendar:{sameDay:"[Hiziv da] LT",nextDay:"[Warcʼhoazh da] LT",nextWeek:"dddd [da] LT",lastDay:"[Decʼh da] LT",lastWeek:"dddd [paset da] LT",sameElse:"L"},relativeTime:{future:"a-benn %s",past:"%s ʼzo",s:"un nebeud segondennoù",ss:"%d eilenn",m:"ur vunutenn",mm:t,h:"un eur",hh:"%d eur",d:"un devezh",dd:t,M:"ur miz",MM:t,y:"ur bloaz",yy:function(e){switch(function e(t){return t>9?e(t%10):t}(e)){case 1:case 3:case 4:case 5:case 9:return e+" bloaz";default:return e+" vloaz"}}},dayOfMonthOrdinalParse:/\d{1,2}(añ|vet)/,ordinal:function(e){return e+(1===e?"añ":"vet")},week:{dow:1,doy:4},meridiemParse:/a.m.|g.m./,isPM:function(e){return"g.m."===e},meridiem:function(e,t,n){return e<12?"a.m.":"g.m."}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration function t(e,t,n){var r=e+" ";switch(n){case"ss":return r+=1===e?"sekunda":2===e||3===e||4===e?"sekunde":"sekundi";case"m":return t?"jedna minuta":"jedne minute";case"mm":return r+=1===e?"minuta":2===e||3===e||4===e?"minute":"minuta";case"h":return t?"jedan sat":"jednog sata";case"hh":return r+=1===e?"sat":2===e||3===e||4===e?"sata":"sati";case"dd":return r+=1===e?"dan":"dana";case"MM":return r+=1===e?"mjesec":2===e||3===e||4===e?"mjeseca":"mjeseci";case"yy":return r+=1===e?"godina":2===e||3===e||4===e?"godine":"godina"}}e.defineLocale("bs",{months:"januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:t,m:t,mm:t,h:t,hh:t,d:"dan",dd:t,M:"mjesec",MM:t,y:"godinu",yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("ca",{months:{standalone:"gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"),format:"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split("_"),isFormat:/D[oD]?(\s)+MMMM/},monthsShort:"gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.".split("_"),monthsParseExact:!0,weekdays:"diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dt._dc._dj._dv._ds.".split("_"),weekdaysMin:"dg_dl_dt_dc_dj_dv_ds".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [de] YYYY",ll:"D MMM YYYY",LLL:"D MMMM [de] YYYY [a les] H:mm",lll:"D MMM YYYY, H:mm",LLLL:"dddd D MMMM [de] YYYY [a les] H:mm",llll:"ddd D MMM YYYY, H:mm"},calendar:{sameDay:function(){return"[avui a "+(1!==this.hours()?"les":"la")+"] LT"},nextDay:function(){return"[demà a "+(1!==this.hours()?"les":"la")+"] LT"},nextWeek:function(){return"dddd [a "+(1!==this.hours()?"les":"la")+"] LT"},lastDay:function(){return"[ahir a "+(1!==this.hours()?"les":"la")+"] LT"},lastWeek:function(){return"[el] dddd [passat a "+(1!==this.hours()?"les":"la")+"] LT"},sameElse:"L"},relativeTime:{future:"d'aquí %s",past:"fa %s",s:"uns segons",ss:"%d segons",m:"un minut",mm:"%d minuts",h:"una hora",hh:"%d hores",d:"un dia",dd:"%d dies",M:"un mes",MM:"%d mesos",y:"un any",yy:"%d anys"},dayOfMonthOrdinalParse:/\d{1,2}(r|n|t|è|a)/,ordinal:function(e,t){var n=1===e?"r":2===e?"n":3===e?"r":4===e?"t":"è";return"w"!==t&&"W"!==t||(n="a"),e+n},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t="leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec".split("_"),n="led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro".split("_"),r=[/^led/i,/^úno/i,/^bře/i,/^dub/i,/^kvě/i,/^(čvn|červen$|června)/i,/^(čvc|červenec|července)/i,/^srp/i,/^zář/i,/^říj/i,/^lis/i,/^pro/i],a=/^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i;function o(e){return e>1&&e<5&&1!=~~(e/10)}function i(e,t,n,r){var a=e+" ";switch(n){case"s":return t||r?"pár sekund":"pár sekundami";case"ss":return t||r?a+(o(e)?"sekundy":"sekund"):a+"sekundami";case"m":return t?"minuta":r?"minutu":"minutou";case"mm":return t||r?a+(o(e)?"minuty":"minut"):a+"minutami";case"h":return t?"hodina":r?"hodinu":"hodinou";case"hh":return t||r?a+(o(e)?"hodiny":"hodin"):a+"hodinami";case"d":return t||r?"den":"dnem";case"dd":return t||r?a+(o(e)?"dny":"dní"):a+"dny";case"M":return t||r?"měsíc":"měsícem";case"MM":return t||r?a+(o(e)?"měsíce":"měsíců"):a+"měsíci";case"y":return t||r?"rok":"rokem";case"yy":return t||r?a+(o(e)?"roky":"let"):a+"lety"}}e.defineLocale("cs",{months:t,monthsShort:n,monthsRegex:a,monthsShortRegex:a,monthsStrictRegex:/^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,monthsShortStrictRegex:/^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota".split("_"),weekdaysShort:"ne_po_út_st_čt_pá_so".split("_"),weekdaysMin:"ne_po_út_st_čt_pá_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm",l:"D. M. YYYY"},calendar:{sameDay:"[dnes v] LT",nextDay:"[zítra v] LT",nextWeek:function(){switch(this.day()){case 0:return"[v neděli v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve středu v] LT";case 4:return"[ve čtvrtek v] LT";case 5:return"[v pátek v] LT";case 6:return"[v sobotu v] LT"}},lastDay:"[včera v] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulou neděli v] LT";case 1:case 2:return"[minulé] dddd [v] LT";case 3:return"[minulou středu v] LT";case 4:case 5:return"[minulý] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"před %s",s:i,ss:i,m:i,mm:i,h:i,hh:i,d:i,dd:i,M:i,MM:i,y:i,yy:i},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("cv",{months:"кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав".split("_"),monthsShort:"кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш".split("_"),weekdays:"вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун".split("_"),weekdaysShort:"выр_тун_ытл_юн_кӗҫ_эрн_шӑм".split("_"),weekdaysMin:"вр_тн_ыт_юн_кҫ_эр_шм".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]",LLL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm",LLLL:"dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm"},calendar:{sameDay:"[Паян] LT [сехетре]",nextDay:"[Ыран] LT [сехетре]",lastDay:"[Ӗнер] LT [сехетре]",nextWeek:"[Ҫитес] dddd LT [сехетре]",lastWeek:"[Иртнӗ] dddd LT [сехетре]",sameElse:"L"},relativeTime:{future:function(e){return e+(/сехет$/i.exec(e)?"рен":/ҫул$/i.exec(e)?"тан":"ран")},past:"%s каялла",s:"пӗр-ик ҫеккунт",ss:"%d ҫеккунт",m:"пӗр минут",mm:"%d минут",h:"пӗр сехет",hh:"%d сехет",d:"пӗр кун",dd:"%d кун",M:"пӗр уйӑх",MM:"%d уйӑх",y:"пӗр ҫул",yy:"%d ҫул"},dayOfMonthOrdinalParse:/\d{1,2}-мӗш/,ordinal:"%d-мӗш",week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("cy",{months:"Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr".split("_"),monthsShort:"Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag".split("_"),weekdays:"Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn".split("_"),weekdaysShort:"Sul_Llun_Maw_Mer_Iau_Gwe_Sad".split("_"),weekdaysMin:"Su_Ll_Ma_Me_Ia_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Heddiw am] LT",nextDay:"[Yfory am] LT",nextWeek:"dddd [am] LT",lastDay:"[Ddoe am] LT",lastWeek:"dddd [diwethaf am] LT",sameElse:"L"},relativeTime:{future:"mewn %s",past:"%s yn ôl",s:"ychydig eiliadau",ss:"%d eiliad",m:"munud",mm:"%d munud",h:"awr",hh:"%d awr",d:"diwrnod",dd:"%d diwrnod",M:"mis",MM:"%d mis",y:"blwyddyn",yy:"%d flynedd"},dayOfMonthOrdinalParse:/\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,ordinal:function(e){var t="";return e>20?t=40===e||50===e||60===e||80===e||100===e?"fed":"ain":e>0&&(t=["","af","il","ydd","ydd","ed","ed","ed","fed","fed","fed","eg","fed","eg","eg","fed","eg","eg","fed","eg","fed"][e]),e+t},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("da",{months:"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"søn_man_tir_ons_tor_fre_lør".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd [d.] D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"på dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[i] dddd[s kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"få sekunder",ss:"%d sekunder",m:"et minut",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dage",M:"en måned",MM:"%d måneder",y:"et år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration function t(e,t,n,r){var a={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],w:["eine Woche","einer Woche"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return t?a[n][0]:a[n][1]}e.defineLocale("de",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:t,mm:"%d Minuten",h:t,hh:"%d Stunden",d:t,dd:t,w:t,ww:"%d Wochen",M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration function t(e,t,n,r){var a={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],w:["eine Woche","einer Woche"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return t?a[n][0]:a[n][1]}e.defineLocale("de-at",{months:"Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:t,mm:"%d Minuten",h:t,hh:"%d Stunden",d:t,dd:t,w:t,ww:"%d Wochen",M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration function t(e,t,n,r){var a={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],w:["eine Woche","einer Woche"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return t?a[n][0]:a[n][1]}e.defineLocale("de-ch",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:t,mm:"%d Minuten",h:t,hh:"%d Stunden",d:t,dd:t,w:t,ww:"%d Wochen",M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t=["ޖެނުއަރީ","ފެބްރުއަރީ","މާރިޗު","އޭޕްރީލު","މޭ","ޖޫން","ޖުލައި","އޯގަސްޓު","ސެޕްޓެމްބަރު","އޮކްޓޯބަރު","ނޮވެމްބަރު","ޑިސެމްބަރު"],n=["އާދިއްތަ","ހޯމަ","އަންގާރަ","ބުދަ","ބުރާސްފަތި","ހުކުރު","ހޮނިހިރު"];e.defineLocale("dv",{months:t,monthsShort:t,weekdays:n,weekdaysShort:n,weekdaysMin:"އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/M/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/މކ|މފ/,isPM:function(e){return"މފ"===e},meridiem:function(e,t,n){return e<12?"މކ":"މފ"},calendar:{sameDay:"[މިއަދު] LT",nextDay:"[މާދަމާ] LT",nextWeek:"dddd LT",lastDay:"[އިއްޔެ] LT",lastWeek:"[ފާއިތުވި] dddd LT",sameElse:"L"},relativeTime:{future:"ތެރޭގައި %s",past:"ކުރިން %s",s:"ސިކުންތުކޮޅެއް",ss:"d% ސިކުންތު",m:"މިނިޓެއް",mm:"މިނިޓު %d",h:"ގަޑިއިރެއް",hh:"ގަޑިއިރު %d",d:"ދުވަހެއް",dd:"ދުވަސް %d",M:"މަހެއް",MM:"މަސް %d",y:"އަހަރެއް",yy:"އަހަރު %d"},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:7,doy:12}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("el",{monthsNominativeEl:"Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος".split("_"),monthsGenitiveEl:"Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου".split("_"),months:function(e,t){return e?"string"==typeof t&&/D/.test(t.substring(0,t.indexOf("MMMM")))?this._monthsGenitiveEl[e.month()]:this._monthsNominativeEl[e.month()]:this._monthsNominativeEl},monthsShort:"Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ".split("_"),weekdays:"Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο".split("_"),weekdaysShort:"Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ".split("_"),weekdaysMin:"Κυ_Δε_Τρ_Τε_Πε_Πα_Σα".split("_"),meridiem:function(e,t,n){return e>11?n?"μμ":"ΜΜ":n?"πμ":"ΠΜ"},isPM:function(e){return"μ"===(e+"").toLowerCase()[0]},meridiemParse:/[ΠΜ]\.?Μ?\.?/i,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendarEl:{sameDay:"[Σήμερα {}] LT",nextDay:"[Αύριο {}] LT",nextWeek:"dddd [{}] LT",lastDay:"[Χθες {}] LT",lastWeek:function(){switch(this.day()){case 6:return"[το προηγούμενο] dddd [{}] LT";default:return"[την προηγούμενη] dddd [{}] LT"}},sameElse:"L"},calendar:function(e,t){var n,r=this._calendarEl[e],a=t&&t.hours();return n=r,("undefined"!=typeof Function&&n instanceof Function||"[object Function]"===Object.prototype.toString.call(n))&&(r=r.apply(t)),r.replace("{}",a%12==1?"στη":"στις")},relativeTime:{future:"σε %s",past:"%s πριν",s:"λίγα δευτερόλεπτα",ss:"%d δευτερόλεπτα",m:"ένα λεπτό",mm:"%d λεπτά",h:"μία ώρα",hh:"%d ώρες",d:"μία μέρα",dd:"%d μέρες",M:"ένας μήνας",MM:"%d μήνες",y:"ένας χρόνος",yy:"%d χρόνια"},dayOfMonthOrdinalParse:/\d{1,2}η/,ordinal:"%dη",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("en-au",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:0,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("en-ca",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"YYYY-MM-DD",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("en-gb",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("en-ie",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("en-il",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("en-in",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:0,doy:6}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("en-nz",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("en-sg",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("eo",{months:"januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro".split("_"),monthsShort:"jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec".split("_"),weekdays:"dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato".split("_"),weekdaysShort:"dim_lun_mard_merk_ĵaŭ_ven_sab".split("_"),weekdaysMin:"di_lu_ma_me_ĵa_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"[la] D[-an de] MMMM, YYYY",LLL:"[la] D[-an de] MMMM, YYYY HH:mm",LLLL:"dddd[n], [la] D[-an de] MMMM, YYYY HH:mm",llll:"ddd, [la] D[-an de] MMM, YYYY HH:mm"},meridiemParse:/[ap]\.t\.m/i,isPM:function(e){return"p"===e.charAt(0).toLowerCase()},meridiem:function(e,t,n){return e>11?n?"p.t.m.":"P.T.M.":n?"a.t.m.":"A.T.M."},calendar:{sameDay:"[Hodiaŭ je] LT",nextDay:"[Morgaŭ je] LT",nextWeek:"dddd[n je] LT",lastDay:"[Hieraŭ je] LT",lastWeek:"[pasintan] dddd[n je] LT",sameElse:"L"},relativeTime:{future:"post %s",past:"antaŭ %s",s:"kelkaj sekundoj",ss:"%d sekundoj",m:"unu minuto",mm:"%d minutoj",h:"unu horo",hh:"%d horoj",d:"unu tago",dd:"%d tagoj",M:"unu monato",MM:"%d monatoj",y:"unu jaro",yy:"%d jaroj"},dayOfMonthOrdinalParse:/\d{1,2}a/,ordinal:"%da",week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),n="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),r=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],a=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;e.defineLocale("es",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,r){return e?/-MMM-/.test(r)?n[e.month()]:t[e.month()]:t},monthsRegex:a,monthsShortRegex:a,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4},invalidDate:"Fecha invalida"})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),n="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),r=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],a=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;e.defineLocale("es-do",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,r){return e?/-MMM-/.test(r)?n[e.month()]:t[e.month()]:t},monthsRegex:a,monthsShortRegex:a,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),n="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),r=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],a=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;e.defineLocale("es-us",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,r){return e?/-MMM-/.test(r)?n[e.month()]:t[e.month()]:t},monthsRegex:a,monthsShortRegex:a,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"MM/DD/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:0,doy:6}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration function t(e,t,n,r){var a={s:["mõne sekundi","mõni sekund","paar sekundit"],ss:[e+"sekundi",e+"sekundit"],m:["ühe minuti","üks minut"],mm:[e+" minuti",e+" minutit"],h:["ühe tunni","tund aega","üks tund"],hh:[e+" tunni",e+" tundi"],d:["ühe päeva","üks päev"],M:["kuu aja","kuu aega","üks kuu"],MM:[e+" kuu",e+" kuud"],y:["ühe aasta","aasta","üks aasta"],yy:[e+" aasta",e+" aastat"]};return t?a[n][2]?a[n][2]:a[n][1]:r?a[n][0]:a[n][1]}e.defineLocale("et",{months:"jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember".split("_"),monthsShort:"jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets".split("_"),weekdays:"pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev".split("_"),weekdaysShort:"P_E_T_K_N_R_L".split("_"),weekdaysMin:"P_E_T_K_N_R_L".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[Täna,] LT",nextDay:"[Homme,] LT",nextWeek:"[Järgmine] dddd LT",lastDay:"[Eile,] LT",lastWeek:"[Eelmine] dddd LT",sameElse:"L"},relativeTime:{future:"%s pärast",past:"%s tagasi",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:"%d päeva",M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("eu",{months:"urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua".split("_"),monthsShort:"urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.".split("_"),monthsParseExact:!0,weekdays:"igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata".split("_"),weekdaysShort:"ig._al._ar._az._og._ol._lr.".split("_"),weekdaysMin:"ig_al_ar_az_og_ol_lr".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY[ko] MMMM[ren] D[a]",LLL:"YYYY[ko] MMMM[ren] D[a] HH:mm",LLLL:"dddd, YYYY[ko] MMMM[ren] D[a] HH:mm",l:"YYYY-M-D",ll:"YYYY[ko] MMM D[a]",lll:"YYYY[ko] MMM D[a] HH:mm",llll:"ddd, YYYY[ko] MMM D[a] HH:mm"},calendar:{sameDay:"[gaur] LT[etan]",nextDay:"[bihar] LT[etan]",nextWeek:"dddd LT[etan]",lastDay:"[atzo] LT[etan]",lastWeek:"[aurreko] dddd LT[etan]",sameElse:"L"},relativeTime:{future:"%s barru",past:"duela %s",s:"segundo batzuk",ss:"%d segundo",m:"minutu bat",mm:"%d minutu",h:"ordu bat",hh:"%d ordu",d:"egun bat",dd:"%d egun",M:"hilabete bat",MM:"%d hilabete",y:"urte bat",yy:"%d urte"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"۱",2:"۲",3:"۳",4:"۴",5:"۵",6:"۶",7:"۷",8:"۸",9:"۹",0:"۰"},n={"۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9","۰":"0"};e.defineLocale("fa",{months:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),monthsShort:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),weekdays:"یکشنبه_دوشنبه_سهشنبه_چهارشنبه_پنجشنبه_جمعه_شنبه".split("_"),weekdaysShort:"یکشنبه_دوشنبه_سهشنبه_چهارشنبه_پنجشنبه_جمعه_شنبه".split("_"),weekdaysMin:"ی_د_س_چ_پ_ج_ش".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/قبل از ظهر|بعد از ظهر/,isPM:function(e){return/بعد از ظهر/.test(e)},meridiem:function(e,t,n){return e<12?"قبل از ظهر":"بعد از ظهر"},calendar:{sameDay:"[امروز ساعت] LT",nextDay:"[فردا ساعت] LT",nextWeek:"dddd [ساعت] LT",lastDay:"[دیروز ساعت] LT",lastWeek:"dddd [پیش] [ساعت] LT",sameElse:"L"},relativeTime:{future:"در %s",past:"%s پیش",s:"چند ثانیه",ss:"%d ثانیه",m:"یک دقیقه",mm:"%d دقیقه",h:"یک ساعت",hh:"%d ساعت",d:"یک روز",dd:"%d روز",M:"یک ماه",MM:"%d ماه",y:"یک سال",yy:"%d سال"},preparse:function(e){return e.replace(/[۰-۹]/g,(function(e){return n[e]})).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]})).replace(/,/g,"،")},dayOfMonthOrdinalParse:/\d{1,2}م/,ordinal:"%dم",week:{dow:6,doy:12}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t="nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän".split(" "),n=["nolla","yhden","kahden","kolmen","neljän","viiden","kuuden",t[7],t[8],t[9]];function r(e,r,a,o){var i="";switch(a){case"s":return o?"muutaman sekunnin":"muutama sekunti";case"ss":i=o?"sekunnin":"sekuntia";break;case"m":return o?"minuutin":"minuutti";case"mm":i=o?"minuutin":"minuuttia";break;case"h":return o?"tunnin":"tunti";case"hh":i=o?"tunnin":"tuntia";break;case"d":return o?"päivän":"päivä";case"dd":i=o?"päivän":"päivää";break;case"M":return o?"kuukauden":"kuukausi";case"MM":i=o?"kuukauden":"kuukautta";break;case"y":return o?"vuoden":"vuosi";case"yy":i=o?"vuoden":"vuotta"}return i=function(e,r){return e<10?r?n[e]:t[e]:e}(e,o)+" "+i}e.defineLocale("fi",{months:"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),monthsShort:"tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu".split("_"),weekdays:"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),weekdaysShort:"su_ma_ti_ke_to_pe_la".split("_"),weekdaysMin:"su_ma_ti_ke_to_pe_la".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"Do MMMM[ta] YYYY",LLL:"Do MMMM[ta] YYYY, [klo] HH.mm",LLLL:"dddd, Do MMMM[ta] YYYY, [klo] HH.mm",l:"D.M.YYYY",ll:"Do MMM YYYY",lll:"Do MMM YYYY, [klo] HH.mm",llll:"ddd, Do MMM YYYY, [klo] HH.mm"},calendar:{sameDay:"[tänään] [klo] LT",nextDay:"[huomenna] [klo] LT",nextWeek:"dddd [klo] LT",lastDay:"[eilen] [klo] LT",lastWeek:"[viime] dddd[na] [klo] LT",sameElse:"L"},relativeTime:{future:"%s päästä",past:"%s sitten",s:r,ss:r,m:r,mm:r,h:r,hh:r,d:r,dd:r,M:r,MM:r,y:r,yy:r},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("fil",{months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY HH:mm",LLLL:"dddd, MMMM DD, YYYY HH:mm"},calendar:{sameDay:"LT [ngayong araw]",nextDay:"[Bukas ng] LT",nextWeek:"LT [sa susunod na] dddd",lastDay:"LT [kahapon]",lastWeek:"LT [noong nakaraang] dddd",sameElse:"L"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",ss:"%d segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("fo",{months:"januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur".split("_"),weekdaysShort:"sun_mán_týs_mik_hós_frí_ley".split("_"),weekdaysMin:"su_má_tý_mi_hó_fr_le".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D. MMMM, YYYY HH:mm"},calendar:{sameDay:"[Í dag kl.] LT",nextDay:"[Í morgin kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[Í gjár kl.] LT",lastWeek:"[síðstu] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"um %s",past:"%s síðani",s:"fá sekund",ss:"%d sekundir",m:"ein minuttur",mm:"%d minuttir",h:"ein tími",hh:"%d tímar",d:"ein dagur",dd:"%d dagar",M:"ein mánaður",MM:"%d mánaðir",y:"eitt ár",yy:"%d ár"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t=/(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,n=[/^janv/i,/^févr/i,/^mars/i,/^avr/i,/^mai/i,/^juin/i,/^juil/i,/^août/i,/^sept/i,/^oct/i,/^nov/i,/^déc/i];e.defineLocale("fr",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsRegex:t,monthsShortRegex:t,monthsStrictRegex:/^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,monthsShortStrictRegex:/(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?)/i,monthsParse:n,longMonthsParse:n,shortMonthsParse:n,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|)/,ordinal:function(e,t){switch(t){case"D":return e+(1===e?"er":"");default:case"M":case"Q":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("fr-ca",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(e,t){switch(t){default:case"M":case"Q":case"D":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("fr-ch",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(e,t){switch(t){default:case"M":case"Q":case"D":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t="jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.".split("_"),n="jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_");e.defineLocale("fy",{months:"jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber".split("_"),monthsShort:function(e,r){return e?/-MMM-/.test(r)?n[e.month()]:t[e.month()]:t},monthsParseExact:!0,weekdays:"snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon".split("_"),weekdaysShort:"si._mo._ti._wo._to._fr._so.".split("_"),weekdaysMin:"Si_Mo_Ti_Wo_To_Fr_So".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[hjoed om] LT",nextDay:"[moarn om] LT",nextWeek:"dddd [om] LT",lastDay:"[juster om] LT",lastWeek:"[ôfrûne] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oer %s",past:"%s lyn",s:"in pear sekonden",ss:"%d sekonden",m:"ien minút",mm:"%d minuten",h:"ien oere",hh:"%d oeren",d:"ien dei",dd:"%d dagen",M:"ien moanne",MM:"%d moannen",y:"ien jier",yy:"%d jierren"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("ga",{months:["Eanáir","Feabhra","Márta","Aibreán","Bealtaine","Meitheamh","Iúil","Lúnasa","Meán Fómhair","Deireadh Fómhair","Samhain","Nollaig"],monthsShort:["Ean","Feabh","Márt","Aib","Beal","Meith","Iúil","Lún","M.F.","D.F.","Samh","Noll"],monthsParseExact:!0,weekdays:["Dé Domhnaigh","Dé Luain","Dé Máirt","Dé Céadaoin","Déardaoin","Dé hAoine","Dé Sathairn"],weekdaysShort:["Domh","Luan","Máirt","Céad","Déar","Aoine","Sath"],weekdaysMin:["Do","Lu","Má","Cé","Dé","A","Sa"],longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Inniu ag] LT",nextDay:"[Amárach ag] LT",nextWeek:"dddd [ag] LT",lastDay:"[Inné ag] LT",lastWeek:"dddd [seo caite] [ag] LT",sameElse:"L"},relativeTime:{future:"i %s",past:"%s ó shin",s:"cúpla soicind",ss:"%d soicind",m:"nóiméad",mm:"%d nóiméad",h:"uair an chloig",hh:"%d uair an chloig",d:"lá",dd:"%d lá",M:"mí",MM:"%d míonna",y:"bliain",yy:"%d bliain"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(e){return e+(1===e?"d":e%10==2?"na":"mh")},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("gd",{months:["Am Faoilleach","An Gearran","Am Màrt","An Giblean","An Cèitean","An t-Ògmhios","An t-Iuchar","An Lùnastal","An t-Sultain","An Dàmhair","An t-Samhain","An Dùbhlachd"],monthsShort:["Faoi","Gear","Màrt","Gibl","Cèit","Ògmh","Iuch","Lùn","Sult","Dàmh","Samh","Dùbh"],monthsParseExact:!0,weekdays:["Didòmhnaich","Diluain","Dimàirt","Diciadain","Diardaoin","Dihaoine","Disathairne"],weekdaysShort:["Did","Dil","Dim","Dic","Dia","Dih","Dis"],weekdaysMin:["Dò","Lu","Mà","Ci","Ar","Ha","Sa"],longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[An-diugh aig] LT",nextDay:"[A-màireach aig] LT",nextWeek:"dddd [aig] LT",lastDay:"[An-dè aig] LT",lastWeek:"dddd [seo chaidh] [aig] LT",sameElse:"L"},relativeTime:{future:"ann an %s",past:"bho chionn %s",s:"beagan diogan",ss:"%d diogan",m:"mionaid",mm:"%d mionaidean",h:"uair",hh:"%d uairean",d:"latha",dd:"%d latha",M:"mìos",MM:"%d mìosan",y:"bliadhna",yy:"%d bliadhna"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(e){return e+(1===e?"d":e%10==2?"na":"mh")},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("gl",{months:"xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro".split("_"),monthsShort:"xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"domingo_luns_martes_mércores_xoves_venres_sábado".split("_"),weekdaysShort:"dom._lun._mar._mér._xov._ven._sáb.".split("_"),weekdaysMin:"do_lu_ma_mé_xo_ve_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoxe "+(1!==this.hours()?"ás":"á")+"] LT"},nextDay:function(){return"[mañá "+(1!==this.hours()?"ás":"á")+"] LT"},nextWeek:function(){return"dddd ["+(1!==this.hours()?"ás":"a")+"] LT"},lastDay:function(){return"[onte "+(1!==this.hours()?"á":"a")+"] LT"},lastWeek:function(){return"[o] dddd [pasado "+(1!==this.hours()?"ás":"a")+"] LT"},sameElse:"L"},relativeTime:{future:function(e){return 0===e.indexOf("un")?"n"+e:"en "+e},past:"hai %s",s:"uns segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"unha hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration function t(e,t,n,r){var a={s:["थोडया सॅकंडांनी","थोडे सॅकंड"],ss:[e+" सॅकंडांनी",e+" सॅकंड"],m:["एका मिणटान","एक मिनूट"],mm:[e+" मिणटांनी",e+" मिणटां"],h:["एका वरान","एक वर"],hh:[e+" वरांनी",e+" वरां"],d:["एका दिसान","एक दीस"],dd:[e+" दिसांनी",e+" दीस"],M:["एका म्हयन्यान","एक म्हयनो"],MM:[e+" म्हयन्यानी",e+" म्हयने"],y:["एका वर्सान","एक वर्स"],yy:[e+" वर्सांनी",e+" वर्सां"]};return r?a[n][0]:a[n][1]}e.defineLocale("gom-deva",{months:{standalone:"जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर".split("_"),format:"जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या".split("_"),isFormat:/MMMM(\s)+D[oD]?/},monthsShort:"जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.".split("_"),monthsParseExact:!0,weekdays:"आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार".split("_"),weekdaysShort:"आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.".split("_"),weekdaysMin:"आ_सो_मं_बु_ब्रे_सु_शे".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A h:mm [वाजतां]",LTS:"A h:mm:ss [वाजतां]",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY A h:mm [वाजतां]",LLLL:"dddd, MMMM Do, YYYY, A h:mm [वाजतां]",llll:"ddd, D MMM YYYY, A h:mm [वाजतां]"},calendar:{sameDay:"[आयज] LT",nextDay:"[फाल्यां] LT",nextWeek:"[फुडलो] dddd[,] LT",lastDay:"[काल] LT",lastWeek:"[फाटलो] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s",past:"%s आदीं",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}(वेर)/,ordinal:function(e,t){switch(t){case"D":return e+"वेर";default:case"M":case"Q":case"DDD":case"d":case"w":case"W":return e}},week:{dow:1,doy:4},meridiemParse:/राती|सकाळीं|दनपारां|सांजे/,meridiemHour:function(e,t){return 12===e&&(e=0),"राती"===t?e<4?e:e+12:"सकाळीं"===t?e:"दनपारां"===t?e>12?e:e+12:"सांजे"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"राती":e<12?"सकाळीं":e<16?"दनपारां":e<20?"सांजे":"राती"}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration function t(e,t,n,r){var a={s:["thoddea sekondamni","thodde sekond"],ss:[e+" sekondamni",e+" sekond"],m:["eka mintan","ek minut"],mm:[e+" mintamni",e+" mintam"],h:["eka voran","ek vor"],hh:[e+" voramni",e+" voram"],d:["eka disan","ek dis"],dd:[e+" disamni",e+" dis"],M:["eka mhoinean","ek mhoino"],MM:[e+" mhoineamni",e+" mhoine"],y:["eka vorsan","ek voros"],yy:[e+" vorsamni",e+" vorsam"]};return r?a[n][0]:a[n][1]}e.defineLocale("gom-latn",{months:{standalone:"Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr".split("_"),format:"Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea".split("_"),isFormat:/MMMM(\s)+D[oD]?/},monthsShort:"Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var".split("_"),weekdaysShort:"Ait._Som._Mon._Bud._Bre._Suk._Son.".split("_"),weekdaysMin:"Ai_Sm_Mo_Bu_Br_Su_Sn".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A h:mm [vazta]",LTS:"A h:mm:ss [vazta]",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY A h:mm [vazta]",LLLL:"dddd, MMMM Do, YYYY, A h:mm [vazta]",llll:"ddd, D MMM YYYY, A h:mm [vazta]"},calendar:{sameDay:"[Aiz] LT",nextDay:"[Faleam] LT",nextWeek:"[Fuddlo] dddd[,] LT",lastDay:"[Kal] LT",lastWeek:"[Fattlo] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s",past:"%s adim",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}(er)/,ordinal:function(e,t){switch(t){case"D":return e+"er";default:case"M":case"Q":case"DDD":case"d":case"w":case"W":return e}},week:{dow:1,doy:4},meridiemParse:/rati|sokallim|donparam|sanje/,meridiemHour:function(e,t){return 12===e&&(e=0),"rati"===t?e<4?e:e+12:"sokallim"===t?e:"donparam"===t?e>12?e:e+12:"sanje"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"rati":e<12?"sokallim":e<16?"donparam":e<20?"sanje":"rati"}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"૧",2:"૨",3:"૩",4:"૪",5:"૫",6:"૬",7:"૭",8:"૮",9:"૯",0:"૦"},n={"૧":"1","૨":"2","૩":"3","૪":"4","૫":"5","૬":"6","૭":"7","૮":"8","૯":"9","૦":"0"};e.defineLocale("gu",{months:"જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર".split("_"),monthsShort:"જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.".split("_"),monthsParseExact:!0,weekdays:"રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર".split("_"),weekdaysShort:"રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ".split("_"),weekdaysMin:"ર_સો_મં_બુ_ગુ_શુ_શ".split("_"),longDateFormat:{LT:"A h:mm વાગ્યે",LTS:"A h:mm:ss વાગ્યે",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm વાગ્યે",LLLL:"dddd, D MMMM YYYY, A h:mm વાગ્યે"},calendar:{sameDay:"[આજ] LT",nextDay:"[કાલે] LT",nextWeek:"dddd, LT",lastDay:"[ગઇકાલે] LT",lastWeek:"[પાછલા] dddd, LT",sameElse:"L"},relativeTime:{future:"%s મા",past:"%s પહેલા",s:"અમુક પળો",ss:"%d સેકંડ",m:"એક મિનિટ",mm:"%d મિનિટ",h:"એક કલાક",hh:"%d કલાક",d:"એક દિવસ",dd:"%d દિવસ",M:"એક મહિનો",MM:"%d મહિનો",y:"એક વર્ષ",yy:"%d વર્ષ"},preparse:function(e){return e.replace(/[૧૨૩૪૫૬૭૮૯૦]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/રાત|બપોર|સવાર|સાંજ/,meridiemHour:function(e,t){return 12===e&&(e=0),"રાત"===t?e<4?e:e+12:"સવાર"===t?e:"બપોર"===t?e>=10?e:e+12:"સાંજ"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"રાત":e<10?"સવાર":e<17?"બપોર":e<20?"સાંજ":"રાત"},week:{dow:0,doy:6}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("he",{months:"ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר".split("_"),monthsShort:"ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳".split("_"),weekdays:"ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת".split("_"),weekdaysShort:"א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳".split("_"),weekdaysMin:"א_ב_ג_ד_ה_ו_ש".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [ב]MMMM YYYY",LLL:"D [ב]MMMM YYYY HH:mm",LLLL:"dddd, D [ב]MMMM YYYY HH:mm",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[היום ב־]LT",nextDay:"[מחר ב־]LT",nextWeek:"dddd [בשעה] LT",lastDay:"[אתמול ב־]LT",lastWeek:"[ביום] dddd [האחרון בשעה] LT",sameElse:"L"},relativeTime:{future:"בעוד %s",past:"לפני %s",s:"מספר שניות",ss:"%d שניות",m:"דקה",mm:"%d דקות",h:"שעה",hh:function(e){return 2===e?"שעתיים":e+" שעות"},d:"יום",dd:function(e){return 2===e?"יומיים":e+" ימים"},M:"חודש",MM:function(e){return 2===e?"חודשיים":e+" חודשים"},y:"שנה",yy:function(e){return 2===e?"שנתיים":e%10==0&&10!==e?e+" שנה":e+" שנים"}},meridiemParse:/אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,isPM:function(e){return/^(אחה"צ|אחרי הצהריים|בערב)$/.test(e)},meridiem:function(e,t,n){return e<5?"לפנות בוקר":e<10?"בבוקר":e<12?n?'לפנה"צ':"לפני הצהריים":e<18?n?'אחה"צ':"אחרי הצהריים":"בערב"}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},n={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};e.defineLocale("hi",{months:"जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर".split("_"),monthsShort:"जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.".split("_"),monthsParseExact:!0,weekdays:"रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm बजे",LTS:"A h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm बजे",LLLL:"dddd, D MMMM YYYY, A h:mm बजे"},calendar:{sameDay:"[आज] LT",nextDay:"[कल] LT",nextWeek:"dddd, LT",lastDay:"[कल] LT",lastWeek:"[पिछले] dddd, LT",sameElse:"L"},relativeTime:{future:"%s में",past:"%s पहले",s:"कुछ ही क्षण",ss:"%d सेकंड",m:"एक मिनट",mm:"%d मिनट",h:"एक घंटा",hh:"%d घंटे",d:"एक दिन",dd:"%d दिन",M:"एक महीने",MM:"%d महीने",y:"एक वर्ष",yy:"%d वर्ष"},preparse:function(e){return e.replace(/[१२३४५६७८९०]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/रात|सुबह|दोपहर|शाम/,meridiemHour:function(e,t){return 12===e&&(e=0),"रात"===t?e<4?e:e+12:"सुबह"===t?e:"दोपहर"===t?e>=10?e:e+12:"शाम"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"रात":e<10?"सुबह":e<17?"दोपहर":e<20?"शाम":"रात"},week:{dow:0,doy:6}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration function t(e,t,n){var r=e+" ";switch(n){case"ss":return r+=1===e?"sekunda":2===e||3===e||4===e?"sekunde":"sekundi";case"m":return t?"jedna minuta":"jedne minute";case"mm":return r+=1===e?"minuta":2===e||3===e||4===e?"minute":"minuta";case"h":return t?"jedan sat":"jednog sata";case"hh":return r+=1===e?"sat":2===e||3===e||4===e?"sata":"sati";case"dd":return r+=1===e?"dan":"dana";case"MM":return r+=1===e?"mjesec":2===e||3===e||4===e?"mjeseca":"mjeseci";case"yy":return r+=1===e?"godina":2===e||3===e||4===e?"godine":"godina"}}e.defineLocale("hr",{months:{format:"siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca".split("_"),standalone:"siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_")},monthsShort:"sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"Do MMMM YYYY",LLL:"Do MMMM YYYY H:mm",LLLL:"dddd, Do MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:return"[prošlu] [nedjelju] [u] LT";case 3:return"[prošlu] [srijedu] [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:t,m:t,mm:t,h:t,hh:t,d:"dan",dd:t,M:"mjesec",MM:t,y:"godinu",yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t="vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton".split(" ");function n(e,t,n,r){var a=e;switch(n){case"s":return r||t?"néhány másodperc":"néhány másodperce";case"ss":return a+(r||t)?" másodperc":" másodperce";case"m":return"egy"+(r||t?" perc":" perce");case"mm":return a+(r||t?" perc":" perce");case"h":return"egy"+(r||t?" óra":" órája");case"hh":return a+(r||t?" óra":" órája");case"d":return"egy"+(r||t?" nap":" napja");case"dd":return a+(r||t?" nap":" napja");case"M":return"egy"+(r||t?" hónap":" hónapja");case"MM":return a+(r||t?" hónap":" hónapja");case"y":return"egy"+(r||t?" év":" éve");case"yy":return a+(r||t?" év":" éve")}return""}function r(e){return(e?"":"[múlt] ")+"["+t[this.day()]+"] LT[-kor]"}e.defineLocale("hu",{months:"január_február_március_április_május_június_július_augusztus_szeptember_október_november_december".split("_"),monthsShort:"jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec".split("_"),weekdays:"vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat".split("_"),weekdaysShort:"vas_hét_kedd_sze_csüt_pén_szo".split("_"),weekdaysMin:"v_h_k_sze_cs_p_szo".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D. H:mm",LLLL:"YYYY. MMMM D., dddd H:mm"},meridiemParse:/de|du/i,isPM:function(e){return"u"===e.charAt(1).toLowerCase()},meridiem:function(e,t,n){return e<12?!0===n?"de":"DE":!0===n?"du":"DU"},calendar:{sameDay:"[ma] LT[-kor]",nextDay:"[holnap] LT[-kor]",nextWeek:function(){return r.call(this,!0)},lastDay:"[tegnap] LT[-kor]",lastWeek:function(){return r.call(this,!1)},sameElse:"L"},relativeTime:{future:"%s múlva",past:"%s",s:n,ss:n,m:n,mm:n,h:n,hh:n,d:n,dd:n,M:n,MM:n,y:n,yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("hy-am",{months:{format:"հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի".split("_"),standalone:"հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր".split("_")},monthsShort:"հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ".split("_"),weekdays:"կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ".split("_"),weekdaysShort:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),weekdaysMin:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY թ.",LLL:"D MMMM YYYY թ., HH:mm",LLLL:"dddd, D MMMM YYYY թ., HH:mm"},calendar:{sameDay:"[այսօր] LT",nextDay:"[վաղը] LT",lastDay:"[երեկ] LT",nextWeek:function(){return"dddd [օրը ժամը] LT"},lastWeek:function(){return"[անցած] dddd [օրը ժամը] LT"},sameElse:"L"},relativeTime:{future:"%s հետո",past:"%s առաջ",s:"մի քանի վայրկյան",ss:"%d վայրկյան",m:"րոպե",mm:"%d րոպե",h:"ժամ",hh:"%d ժամ",d:"օր",dd:"%d օր",M:"ամիս",MM:"%d ամիս",y:"տարի",yy:"%d տարի"},meridiemParse:/գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,isPM:function(e){return/^(ցերեկվա|երեկոյան)$/.test(e)},meridiem:function(e){return e<4?"գիշերվա":e<12?"առավոտվա":e<17?"ցերեկվա":"երեկոյան"},dayOfMonthOrdinalParse:/\d{1,2}|\d{1,2}-(ին|րդ)/,ordinal:function(e,t){switch(t){case"DDD":case"w":case"W":case"DDDo":return 1===e?e+"-ին":e+"-րդ";default:return e}},week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("id",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des".split("_"),weekdays:"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),weekdaysShort:"Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(e,t){return 12===e&&(e=0),"pagi"===t?e:"siang"===t?e>=11?e:e+12:"sore"===t||"malam"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"pagi":e<15?"siang":e<19?"sore":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Besok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kemarin pukul] LT",lastWeek:"dddd [lalu pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",ss:"%d detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:0,doy:6}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration function t(e){return e%100==11||e%10!=1}function n(e,n,r,a){var o=e+" ";switch(r){case"s":return n||a?"nokkrar sekúndur":"nokkrum sekúndum";case"ss":return t(e)?o+(n||a?"sekúndur":"sekúndum"):o+"sekúnda";case"m":return n?"mínúta":"mínútu";case"mm":return t(e)?o+(n||a?"mínútur":"mínútum"):n?o+"mínúta":o+"mínútu";case"hh":return t(e)?o+(n||a?"klukkustundir":"klukkustundum"):o+"klukkustund";case"d":return n?"dagur":a?"dag":"degi";case"dd":return t(e)?n?o+"dagar":o+(a?"daga":"dögum"):n?o+"dagur":o+(a?"dag":"degi");case"M":return n?"mánuður":a?"mánuð":"mánuði";case"MM":return t(e)?n?o+"mánuðir":o+(a?"mánuði":"mánuðum"):n?o+"mánuður":o+(a?"mánuð":"mánuði");case"y":return n||a?"ár":"ári";case"yy":return t(e)?o+(n||a?"ár":"árum"):o+(n||a?"ár":"ári")}}e.defineLocale("is",{months:"janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember".split("_"),monthsShort:"jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des".split("_"),weekdays:"sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur".split("_"),weekdaysShort:"sun_mán_þri_mið_fim_fös_lau".split("_"),weekdaysMin:"Su_Má_Þr_Mi_Fi_Fö_La".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd, D. MMMM YYYY [kl.] H:mm"},calendar:{sameDay:"[í dag kl.] LT",nextDay:"[á morgun kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[í gær kl.] LT",lastWeek:"[síðasta] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"eftir %s",past:"fyrir %s síðan",s:n,ss:n,m:n,mm:n,h:"klukkustund",hh:n,d:n,dd:n,M:n,MM:n,y:n,yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("it",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:function(){return"[Oggi a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT"},nextDay:function(){return"[Domani a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT"},nextWeek:function(){return"dddd [a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT"},lastDay:function(){return"[Ieri a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT"},lastWeek:function(){switch(this.day()){case 0:return"[La scorsa] dddd [a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT";default:return"[Lo scorso] dddd [a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT"}},sameElse:"L"},relativeTime:{future:"tra %s",past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("it-ch",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){switch(this.day()){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:function(e){return(/^[0-9].+$/.test(e)?"tra":"in")+" "+e},past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("ja",{eras:[{since:"2019-05-01",offset:1,name:"令和",narrow:"㋿",abbr:"R"},{since:"1989-01-08",until:"2019-04-30",offset:1,name:"平成",narrow:"㍻",abbr:"H"},{since:"1926-12-25",until:"1989-01-07",offset:1,name:"昭和",narrow:"㍼",abbr:"S"},{since:"1912-07-30",until:"1926-12-24",offset:1,name:"大正",narrow:"㍽",abbr:"T"},{since:"1873-01-01",until:"1912-07-29",offset:6,name:"明治",narrow:"㍾",abbr:"M"},{since:"0001-01-01",until:"1873-12-31",offset:1,name:"西暦",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-1/0,offset:1,name:"紀元前",narrow:"BC",abbr:"BC"}],eraYearOrdinalRegex:/(元|\d+)年/,eraYearOrdinalParse:function(e,t){return"元"===t[1]?1:parseInt(t[1]||e,10)},months:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日".split("_"),weekdaysShort:"日_月_火_水_木_金_土".split("_"),weekdaysMin:"日_月_火_水_木_金_土".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日 dddd HH:mm",l:"YYYY/MM/DD",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日(ddd) HH:mm"},meridiemParse:/午前|午後/i,isPM:function(e){return"午後"===e},meridiem:function(e,t,n){return e<12?"午前":"午後"},calendar:{sameDay:"[今日] LT",nextDay:"[明日] LT",nextWeek:function(e){return e.week()!==this.week()?"[来週]dddd LT":"dddd LT"},lastDay:"[昨日] LT",lastWeek:function(e){return this.week()!==e.week()?"[先週]dddd LT":"dddd LT"},sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}日/,ordinal:function(e,t){switch(t){case"y":return 1===e?"元年":e+"年";case"d":case"D":case"DDD":return e+"日";default:return e}},relativeTime:{future:"%s後",past:"%s前",s:"数秒",ss:"%d秒",m:"1分",mm:"%d分",h:"1時間",hh:"%d時間",d:"1日",dd:"%d日",M:"1ヶ月",MM:"%dヶ月",y:"1年",yy:"%d年"}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("jv",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des".split("_"),weekdays:"Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu".split("_"),weekdaysShort:"Min_Sen_Sel_Reb_Kem_Jem_Sep".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sp".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/enjing|siyang|sonten|ndalu/,meridiemHour:function(e,t){return 12===e&&(e=0),"enjing"===t?e:"siyang"===t?e>=11?e:e+12:"sonten"===t||"ndalu"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"enjing":e<15?"siyang":e<19?"sonten":"ndalu"},calendar:{sameDay:"[Dinten puniko pukul] LT",nextDay:"[Mbenjang pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kala wingi pukul] LT",lastWeek:"dddd [kepengker pukul] LT",sameElse:"L"},relativeTime:{future:"wonten ing %s",past:"%s ingkang kepengker",s:"sawetawis detik",ss:"%d detik",m:"setunggal menit",mm:"%d menit",h:"setunggal jam",hh:"%d jam",d:"sedinten",dd:"%d dinten",M:"sewulan",MM:"%d wulan",y:"setaun",yy:"%d taun"},week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("ka",{months:"იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი".split("_"),monthsShort:"იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ".split("_"),weekdays:{standalone:"კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი".split("_"),format:"კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს".split("_"),isFormat:/(წინა|შემდეგ)/},weekdaysShort:"კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ".split("_"),weekdaysMin:"კვ_ორ_სა_ოთ_ხუ_პა_შა".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[დღეს] LT[-ზე]",nextDay:"[ხვალ] LT[-ზე]",lastDay:"[გუშინ] LT[-ზე]",nextWeek:"[შემდეგ] dddd LT[-ზე]",lastWeek:"[წინა] dddd LT-ზე",sameElse:"L"},relativeTime:{future:function(e){return e.replace(/(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/,(function(e,t,n){return"ი"===n?t+"ში":t+n+"ში"}))},past:function(e){return/(წამი|წუთი|საათი|დღე|თვე)/.test(e)?e.replace(/(ი|ე)$/,"ის წინ"):/წელი/.test(e)?e.replace(/წელი$/,"წლის წინ"):e},s:"რამდენიმე წამი",ss:"%d წამი",m:"წუთი",mm:"%d წუთი",h:"საათი",hh:"%d საათი",d:"დღე",dd:"%d დღე",M:"თვე",MM:"%d თვე",y:"წელი",yy:"%d წელი"},dayOfMonthOrdinalParse:/0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/,ordinal:function(e){return 0===e?e:1===e?e+"-ლი":e<20||e<=100&&e%20==0||e%100==0?"მე-"+e:e+"-ე"},week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={0:"-ші",1:"-ші",2:"-ші",3:"-ші",4:"-ші",5:"-ші",6:"-шы",7:"-ші",8:"-ші",9:"-шы",10:"-шы",20:"-шы",30:"-шы",40:"-шы",50:"-ші",60:"-шы",70:"-ші",80:"-ші",90:"-шы",100:"-ші"};e.defineLocale("kk",{months:"қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан".split("_"),monthsShort:"қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел".split("_"),weekdays:"жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі".split("_"),weekdaysShort:"жек_дүй_сей_сәр_бей_жұм_сен".split("_"),weekdaysMin:"жк_дй_сй_ср_бй_жм_сн".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Бүгін сағат] LT",nextDay:"[Ертең сағат] LT",nextWeek:"dddd [сағат] LT",lastDay:"[Кеше сағат] LT",lastWeek:"[Өткен аптаның] dddd [сағат] LT",sameElse:"L"},relativeTime:{future:"%s ішінде",past:"%s бұрын",s:"бірнеше секунд",ss:"%d секунд",m:"бір минут",mm:"%d минут",h:"бір сағат",hh:"%d сағат",d:"бір күн",dd:"%d күн",M:"бір ай",MM:"%d ай",y:"бір жыл",yy:"%d жыл"},dayOfMonthOrdinalParse:/\d{1,2}-(ші|шы)/,ordinal:function(e){return e+(t[e]||t[e%10]||t[e>=100?100:null])},week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"១",2:"២",3:"៣",4:"៤",5:"៥",6:"៦",7:"៧",8:"៨",9:"៩",0:"០"},n={"១":"1","២":"2","៣":"3","៤":"4","៥":"5","៦":"6","៧":"7","៨":"8","៩":"9","០":"0"};e.defineLocale("km",{months:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),monthsShort:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),weekdays:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),weekdaysShort:"អា_ច_អ_ព_ព្រ_សុ_ស".split("_"),weekdaysMin:"អា_ច_អ_ព_ព្រ_សុ_ស".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/ព្រឹក|ល្ងាច/,isPM:function(e){return"ល្ងាច"===e},meridiem:function(e,t,n){return e<12?"ព្រឹក":"ល្ងាច"},calendar:{sameDay:"[ថ្ងៃនេះ ម៉ោង] LT",nextDay:"[ស្អែក ម៉ោង] LT",nextWeek:"dddd [ម៉ោង] LT",lastDay:"[ម្សិលមិញ ម៉ោង] LT",lastWeek:"dddd [សប្តាហ៍មុន] [ម៉ោង] LT",sameElse:"L"},relativeTime:{future:"%sទៀត",past:"%sមុន",s:"ប៉ុន្មានវិនាទី",ss:"%d វិនាទី",m:"មួយនាទី",mm:"%d នាទី",h:"មួយម៉ោង",hh:"%d ម៉ោង",d:"មួយថ្ងៃ",dd:"%d ថ្ងៃ",M:"មួយខែ",MM:"%d ខែ",y:"មួយឆ្នាំ",yy:"%d ឆ្នាំ"},dayOfMonthOrdinalParse:/ទី\d{1,2}/,ordinal:"ទី%d",preparse:function(e){return e.replace(/[១២៣៤៥៦៧៨៩០]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"೧",2:"೨",3:"೩",4:"೪",5:"೫",6:"೬",7:"೭",8:"೮",9:"೯",0:"೦"},n={"೧":"1","೨":"2","೩":"3","೪":"4","೫":"5","೬":"6","೭":"7","೮":"8","೯":"9","೦":"0"};e.defineLocale("kn",{months:"ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್".split("_"),monthsShort:"ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ".split("_"),monthsParseExact:!0,weekdays:"ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ".split("_"),weekdaysShort:"ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ".split("_"),weekdaysMin:"ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[ಇಂದು] LT",nextDay:"[ನಾಳೆ] LT",nextWeek:"dddd, LT",lastDay:"[ನಿನ್ನೆ] LT",lastWeek:"[ಕೊನೆಯ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ನಂತರ",past:"%s ಹಿಂದೆ",s:"ಕೆಲವು ಕ್ಷಣಗಳು",ss:"%d ಸೆಕೆಂಡುಗಳು",m:"ಒಂದು ನಿಮಿಷ",mm:"%d ನಿಮಿಷ",h:"ಒಂದು ಗಂಟೆ",hh:"%d ಗಂಟೆ",d:"ಒಂದು ದಿನ",dd:"%d ದಿನ",M:"ಒಂದು ತಿಂಗಳು",MM:"%d ತಿಂಗಳು",y:"ಒಂದು ವರ್ಷ",yy:"%d ವರ್ಷ"},preparse:function(e){return e.replace(/[೧೨೩೪೫೬೭೮೯೦]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,meridiemHour:function(e,t){return 12===e&&(e=0),"ರಾತ್ರಿ"===t?e<4?e:e+12:"ಬೆಳಿಗ್ಗೆ"===t?e:"ಮಧ್ಯಾಹ್ನ"===t?e>=10?e:e+12:"ಸಂಜೆ"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"ರಾತ್ರಿ":e<10?"ಬೆಳಿಗ್ಗೆ":e<17?"ಮಧ್ಯಾಹ್ನ":e<20?"ಸಂಜೆ":"ರಾತ್ರಿ"},dayOfMonthOrdinalParse:/\d{1,2}(ನೇ)/,ordinal:function(e){return e+"ನೇ"},week:{dow:0,doy:6}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("ko",{months:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),monthsShort:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),weekdays:"일요일_월요일_화요일_수요일_목요일_금요일_토요일".split("_"),weekdaysShort:"일_월_화_수_목_금_토".split("_"),weekdaysMin:"일_월_화_수_목_금_토".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY년 MMMM D일",LLL:"YYYY년 MMMM D일 A h:mm",LLLL:"YYYY년 MMMM D일 dddd A h:mm",l:"YYYY.MM.DD.",ll:"YYYY년 MMMM D일",lll:"YYYY년 MMMM D일 A h:mm",llll:"YYYY년 MMMM D일 dddd A h:mm"},calendar:{sameDay:"오늘 LT",nextDay:"내일 LT",nextWeek:"dddd LT",lastDay:"어제 LT",lastWeek:"지난주 dddd LT",sameElse:"L"},relativeTime:{future:"%s 후",past:"%s 전",s:"몇 초",ss:"%d초",m:"1분",mm:"%d분",h:"한 시간",hh:"%d시간",d:"하루",dd:"%d일",M:"한 달",MM:"%d달",y:"일 년",yy:"%d년"},dayOfMonthOrdinalParse:/\d{1,2}(일|월|주)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"일";case"M":return e+"월";case"w":case"W":return e+"주";default:return e}},meridiemParse:/오전|오후/,isPM:function(e){return"오후"===e},meridiem:function(e,t,n){return e<12?"오전":"오후"}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},n={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},r=["کانونی دووەم","شوبات","ئازار","نیسان","ئایار","حوزەیران","تەمموز","ئاب","ئەیلوول","تشرینی یەكەم","تشرینی دووەم","كانونی یەکەم"];e.defineLocale("ku",{months:r,monthsShort:r,weekdays:"یهكشهممه_دووشهممه_سێشهممه_چوارشهممه_پێنجشهممه_ههینی_شهممه".split("_"),weekdaysShort:"یهكشهم_دووشهم_سێشهم_چوارشهم_پێنجشهم_ههینی_شهممه".split("_"),weekdaysMin:"ی_د_س_چ_پ_ه_ش".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/ئێواره|بهیانی/,isPM:function(e){return/ئێواره/.test(e)},meridiem:function(e,t,n){return e<12?"بهیانی":"ئێواره"},calendar:{sameDay:"[ئهمرۆ كاتژمێر] LT",nextDay:"[بهیانی كاتژمێر] LT",nextWeek:"dddd [كاتژمێر] LT",lastDay:"[دوێنێ كاتژمێر] LT",lastWeek:"dddd [كاتژمێر] LT",sameElse:"L"},relativeTime:{future:"له %s",past:"%s",s:"چهند چركهیهك",ss:"چركه %d",m:"یهك خولهك",mm:"%d خولهك",h:"یهك كاتژمێر",hh:"%d كاتژمێر",d:"یهك ڕۆژ",dd:"%d ڕۆژ",M:"یهك مانگ",MM:"%d مانگ",y:"یهك ساڵ",yy:"%d ساڵ"},preparse:function(e){return e.replace(/[١٢٣٤٥٦٧٨٩٠]/g,(function(e){return n[e]})).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]})).replace(/,/g,"،")},week:{dow:6,doy:12}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={0:"-чү",1:"-чи",2:"-чи",3:"-чү",4:"-чү",5:"-чи",6:"-чы",7:"-чи",8:"-чи",9:"-чу",10:"-чу",20:"-чы",30:"-чу",40:"-чы",50:"-чү",60:"-чы",70:"-чи",80:"-чи",90:"-чу",100:"-чү"};e.defineLocale("ky",{months:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_"),monthsShort:"янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек".split("_"),weekdays:"Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби".split("_"),weekdaysShort:"Жек_Дүй_Шей_Шар_Бей_Жум_Ише".split("_"),weekdaysMin:"Жк_Дй_Шй_Шр_Бй_Жм_Иш".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Бүгүн саат] LT",nextDay:"[Эртең саат] LT",nextWeek:"dddd [саат] LT",lastDay:"[Кечээ саат] LT",lastWeek:"[Өткөн аптанын] dddd [күнү] [саат] LT",sameElse:"L"},relativeTime:{future:"%s ичинде",past:"%s мурун",s:"бирнече секунд",ss:"%d секунд",m:"бир мүнөт",mm:"%d мүнөт",h:"бир саат",hh:"%d саат",d:"бир күн",dd:"%d күн",M:"бир ай",MM:"%d ай",y:"бир жыл",yy:"%d жыл"},dayOfMonthOrdinalParse:/\d{1,2}-(чи|чы|чү|чу)/,ordinal:function(e){return e+(t[e]||t[e%10]||t[e>=100?100:null])},week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration function t(e,t,n,r){var a={m:["eng Minutt","enger Minutt"],h:["eng Stonn","enger Stonn"],d:["een Dag","engem Dag"],M:["ee Mount","engem Mount"],y:["ee Joer","engem Joer"]};return t?a[n][0]:a[n][1]}function n(e){if(e=parseInt(e,10),isNaN(e))return!1;if(e<0)return!0;if(e<10)return 4<=e&&e<=7;if(e<100){var t=e%10;return n(0===t?e/10:t)}if(e<1e4){for(;e>=10;)e/=10;return n(e)}return n(e/=1e3)}e.defineLocale("lb",{months:"Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg".split("_"),weekdaysShort:"So._Mé._Dë._Më._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mé_Dë_Më_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm [Auer]",LTS:"H:mm:ss [Auer]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm [Auer]",LLLL:"dddd, D. MMMM YYYY H:mm [Auer]"},calendar:{sameDay:"[Haut um] LT",sameElse:"L",nextDay:"[Muer um] LT",nextWeek:"dddd [um] LT",lastDay:"[Gëschter um] LT",lastWeek:function(){switch(this.day()){case 2:case 4:return"[Leschten] dddd [um] LT";default:return"[Leschte] dddd [um] LT"}}},relativeTime:{future:function(e){return n(e.substr(0,e.indexOf(" ")))?"a "+e:"an "+e},past:function(e){return n(e.substr(0,e.indexOf(" ")))?"viru "+e:"virun "+e},s:"e puer Sekonnen",ss:"%d Sekonnen",m:t,mm:"%d Minutten",h:t,hh:"%d Stonnen",d:t,dd:"%d Deeg",M:t,MM:"%d Méint",y:t,yy:"%d Joer"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("lo",{months:"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ".split("_"),monthsShort:"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ".split("_"),weekdays:"ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ".split("_"),weekdaysShort:"ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ".split("_"),weekdaysMin:"ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"ວັນdddd D MMMM YYYY HH:mm"},meridiemParse:/ຕອນເຊົ້າ|ຕອນແລງ/,isPM:function(e){return"ຕອນແລງ"===e},meridiem:function(e,t,n){return e<12?"ຕອນເຊົ້າ":"ຕອນແລງ"},calendar:{sameDay:"[ມື້ນີ້ເວລາ] LT",nextDay:"[ມື້ອື່ນເວລາ] LT",nextWeek:"[ວັນ]dddd[ໜ້າເວລາ] LT",lastDay:"[ມື້ວານນີ້ເວລາ] LT",lastWeek:"[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT",sameElse:"L"},relativeTime:{future:"ອີກ %s",past:"%sຜ່ານມາ",s:"ບໍ່ເທົ່າໃດວິນາທີ",ss:"%d ວິນາທີ",m:"1 ນາທີ",mm:"%d ນາທີ",h:"1 ຊົ່ວໂມງ",hh:"%d ຊົ່ວໂມງ",d:"1 ມື້",dd:"%d ມື້",M:"1 ເດືອນ",MM:"%d ເດືອນ",y:"1 ປີ",yy:"%d ປີ"},dayOfMonthOrdinalParse:/(ທີ່)\d{1,2}/,ordinal:function(e){return"ທີ່"+e}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={ss:"sekundė_sekundžių_sekundes",m:"minutė_minutės_minutę",mm:"minutės_minučių_minutes",h:"valanda_valandos_valandą",hh:"valandos_valandų_valandas",d:"diena_dienos_dieną",dd:"dienos_dienų_dienas",M:"mėnuo_mėnesio_mėnesį",MM:"mėnesiai_mėnesių_mėnesius",y:"metai_metų_metus",yy:"metai_metų_metus"};function n(e,t,n,r){return t?a(n)[0]:r?a(n)[1]:a(n)[2]}function r(e){return e%10==0||e>10&&e<20}function a(e){return t[e].split("_")}function o(e,t,o,i){var c=e+" ";return 1===e?c+n(0,t,o[0],i):t?c+(r(e)?a(o)[1]:a(o)[0]):i?c+a(o)[1]:c+(r(e)?a(o)[1]:a(o)[2])}e.defineLocale("lt",{months:{format:"sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio".split("_"),standalone:"sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis".split("_"),isFormat:/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/},monthsShort:"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),weekdays:{format:"sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį".split("_"),standalone:"sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis".split("_"),isFormat:/dddd HH:mm/},weekdaysShort:"Sek_Pir_Ant_Tre_Ket_Pen_Šeš".split("_"),weekdaysMin:"S_P_A_T_K_Pn_Š".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], HH:mm [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], HH:mm [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]"},calendar:{sameDay:"[Šiandien] LT",nextDay:"[Rytoj] LT",nextWeek:"dddd LT",lastDay:"[Vakar] LT",lastWeek:"[Praėjusį] dddd LT",sameElse:"L"},relativeTime:{future:"po %s",past:"prieš %s",s:function(e,t,n,r){return t?"kelios sekundės":r?"kelių sekundžių":"kelias sekundes"},ss:o,m:n,mm:o,h:n,hh:o,d:n,dd:o,M:n,MM:o,y:n,yy:o},dayOfMonthOrdinalParse:/\d{1,2}-oji/,ordinal:function(e){return e+"-oji"},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={ss:"sekundes_sekundēm_sekunde_sekundes".split("_"),m:"minūtes_minūtēm_minūte_minūtes".split("_"),mm:"minūtes_minūtēm_minūte_minūtes".split("_"),h:"stundas_stundām_stunda_stundas".split("_"),hh:"stundas_stundām_stunda_stundas".split("_"),d:"dienas_dienām_diena_dienas".split("_"),dd:"dienas_dienām_diena_dienas".split("_"),M:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),MM:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),y:"gada_gadiem_gads_gadi".split("_"),yy:"gada_gadiem_gads_gadi".split("_")};function n(e,t,n){return n?t%10==1&&t%100!=11?e[2]:e[3]:t%10==1&&t%100!=11?e[0]:e[1]}function r(e,r,a){return e+" "+n(t[a],e,r)}function a(e,r,a){return n(t[a],e,r)}e.defineLocale("lv",{months:"janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris".split("_"),monthsShort:"jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec".split("_"),weekdays:"svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena".split("_"),weekdaysShort:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysMin:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY.",LL:"YYYY. [gada] D. MMMM",LLL:"YYYY. [gada] D. MMMM, HH:mm",LLLL:"YYYY. [gada] D. MMMM, dddd, HH:mm"},calendar:{sameDay:"[Šodien pulksten] LT",nextDay:"[Rīt pulksten] LT",nextWeek:"dddd [pulksten] LT",lastDay:"[Vakar pulksten] LT",lastWeek:"[Pagājušā] dddd [pulksten] LT",sameElse:"L"},relativeTime:{future:"pēc %s",past:"pirms %s",s:function(e,t){return t?"dažas sekundes":"dažām sekundēm"},ss:r,m:a,mm:r,h:a,hh:r,d:a,dd:r,M:a,MM:r,y:a,yy:r},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={words:{ss:["sekund","sekunda","sekundi"],m:["jedan minut","jednog minuta"],mm:["minut","minuta","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mjesec","mjeseca","mjeseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(e,t){return 1===e?t[0]:e>=2&&e<=4?t[1]:t[2]},translate:function(e,n,r){var a=t.words[r];return 1===r.length?n?a[0]:a[1]:e+" "+t.correctGrammaticalCase(e,a)}};e.defineLocale("me",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sjutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){return["[prošle] [nedjelje] [u] LT","[prošlog] [ponedjeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srijede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"nekoliko sekundi",ss:t.translate,m:t.translate,mm:t.translate,h:t.translate,hh:t.translate,d:"dan",dd:t.translate,M:"mjesec",MM:t.translate,y:"godinu",yy:t.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("mi",{months:"Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea".split("_"),monthsShort:"Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki".split("_"),monthsRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i,weekdays:"Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei".split("_"),weekdaysShort:"Ta_Ma_Tū_We_Tāi_Pa_Hā".split("_"),weekdaysMin:"Ta_Ma_Tū_We_Tāi_Pa_Hā".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [i] HH:mm",LLLL:"dddd, D MMMM YYYY [i] HH:mm"},calendar:{sameDay:"[i teie mahana, i] LT",nextDay:"[apopo i] LT",nextWeek:"dddd [i] LT",lastDay:"[inanahi i] LT",lastWeek:"dddd [whakamutunga i] LT",sameElse:"L"},relativeTime:{future:"i roto i %s",past:"%s i mua",s:"te hēkona ruarua",ss:"%d hēkona",m:"he meneti",mm:"%d meneti",h:"te haora",hh:"%d haora",d:"he ra",dd:"%d ra",M:"he marama",MM:"%d marama",y:"he tau",yy:"%d tau"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("mk",{months:"јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември".split("_"),monthsShort:"јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек".split("_"),weekdays:"недела_понеделник_вторник_среда_четврток_петок_сабота".split("_"),weekdaysShort:"нед_пон_вто_сре_чет_пет_саб".split("_"),weekdaysMin:"нe_пo_вт_ср_че_пе_сa".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[Денес во] LT",nextDay:"[Утре во] LT",nextWeek:"[Во] dddd [во] LT",lastDay:"[Вчера во] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[Изминатата] dddd [во] LT";case 1:case 2:case 4:case 5:return"[Изминатиот] dddd [во] LT"}},sameElse:"L"},relativeTime:{future:"за %s",past:"пред %s",s:"неколку секунди",ss:"%d секунди",m:"една минута",mm:"%d минути",h:"еден час",hh:"%d часа",d:"еден ден",dd:"%d дена",M:"еден месец",MM:"%d месеци",y:"една година",yy:"%d години"},dayOfMonthOrdinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(e){var t=e%10,n=e%100;return 0===e?e+"-ев":0===n?e+"-ен":n>10&&n<20?e+"-ти":1===t?e+"-ви":2===t?e+"-ри":7===t||8===t?e+"-ми":e+"-ти"},week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("ml",{months:"ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ".split("_"),monthsShort:"ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.".split("_"),monthsParseExact:!0,weekdays:"ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച".split("_"),weekdaysShort:"ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി".split("_"),weekdaysMin:"ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ".split("_"),longDateFormat:{LT:"A h:mm -നു",LTS:"A h:mm:ss -നു",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm -നു",LLLL:"dddd, D MMMM YYYY, A h:mm -നു"},calendar:{sameDay:"[ഇന്ന്] LT",nextDay:"[നാളെ] LT",nextWeek:"dddd, LT",lastDay:"[ഇന്നലെ] LT",lastWeek:"[കഴിഞ്ഞ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s കഴിഞ്ഞ്",past:"%s മുൻപ്",s:"അൽപ നിമിഷങ്ങൾ",ss:"%d സെക്കൻഡ്",m:"ഒരു മിനിറ്റ്",mm:"%d മിനിറ്റ്",h:"ഒരു മണിക്കൂർ",hh:"%d മണിക്കൂർ",d:"ഒരു ദിവസം",dd:"%d ദിവസം",M:"ഒരു മാസം",MM:"%d മാസം",y:"ഒരു വർഷം",yy:"%d വർഷം"},meridiemParse:/രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,meridiemHour:function(e,t){return 12===e&&(e=0),"രാത്രി"===t&&e>=4||"ഉച്ച കഴിഞ്ഞ്"===t||"വൈകുന്നേരം"===t?e+12:e},meridiem:function(e,t,n){return e<4?"രാത്രി":e<12?"രാവിലെ":e<17?"ഉച്ച കഴിഞ്ഞ്":e<20?"വൈകുന്നേരം":"രാത്രി"}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration function t(e,t,n,r){switch(n){case"s":return t?"хэдхэн секунд":"хэдхэн секундын";case"ss":return e+(t?" секунд":" секундын");case"m":case"mm":return e+(t?" минут":" минутын");case"h":case"hh":return e+(t?" цаг":" цагийн");case"d":case"dd":return e+(t?" өдөр":" өдрийн");case"M":case"MM":return e+(t?" сар":" сарын");case"y":case"yy":return e+(t?" жил":" жилийн");default:return e}}e.defineLocale("mn",{months:"Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар".split("_"),monthsShort:"1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар".split("_"),monthsParseExact:!0,weekdays:"Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба".split("_"),weekdaysShort:"Ням_Дав_Мяг_Лха_Пүр_Баа_Бям".split("_"),weekdaysMin:"Ня_Да_Мя_Лх_Пү_Ба_Бя".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY оны MMMMын D",LLL:"YYYY оны MMMMын D HH:mm",LLLL:"dddd, YYYY оны MMMMын D HH:mm"},meridiemParse:/ҮӨ|ҮХ/i,isPM:function(e){return"ҮХ"===e},meridiem:function(e,t,n){return e<12?"ҮӨ":"ҮХ"},calendar:{sameDay:"[Өнөөдөр] LT",nextDay:"[Маргааш] LT",nextWeek:"[Ирэх] dddd LT",lastDay:"[Өчигдөр] LT",lastWeek:"[Өнгөрсөн] dddd LT",sameElse:"L"},relativeTime:{future:"%s дараа",past:"%s өмнө",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2} өдөр/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+" өдөр";default:return e}}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},n={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};function r(e,t,n,r){var a="";if(t)switch(n){case"s":a="काही सेकंद";break;case"ss":a="%d सेकंद";break;case"m":a="एक मिनिट";break;case"mm":a="%d मिनिटे";break;case"h":a="एक तास";break;case"hh":a="%d तास";break;case"d":a="एक दिवस";break;case"dd":a="%d दिवस";break;case"M":a="एक महिना";break;case"MM":a="%d महिने";break;case"y":a="एक वर्ष";break;case"yy":a="%d वर्षे"}else switch(n){case"s":a="काही सेकंदां";break;case"ss":a="%d सेकंदां";break;case"m":a="एका मिनिटा";break;case"mm":a="%d मिनिटां";break;case"h":a="एका तासा";break;case"hh":a="%d तासां";break;case"d":a="एका दिवसा";break;case"dd":a="%d दिवसां";break;case"M":a="एका महिन्या";break;case"MM":a="%d महिन्यां";break;case"y":a="एका वर्षा";break;case"yy":a="%d वर्षां"}return a.replace(/%d/i,e)}e.defineLocale("mr",{months:"जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर".split("_"),monthsShort:"जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.".split("_"),monthsParseExact:!0,weekdays:"रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm वाजता",LTS:"A h:mm:ss वाजता",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm वाजता",LLLL:"dddd, D MMMM YYYY, A h:mm वाजता"},calendar:{sameDay:"[आज] LT",nextDay:"[उद्या] LT",nextWeek:"dddd, LT",lastDay:"[काल] LT",lastWeek:"[मागील] dddd, LT",sameElse:"L"},relativeTime:{future:"%sमध्ये",past:"%sपूर्वी",s:r,ss:r,m:r,mm:r,h:r,hh:r,d:r,dd:r,M:r,MM:r,y:r,yy:r},preparse:function(e){return e.replace(/[१२३४५६७८९०]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/,meridiemHour:function(e,t){return 12===e&&(e=0),"पहाटे"===t||"सकाळी"===t?e:"दुपारी"===t||"सायंकाळी"===t||"रात्री"===t?e>=12?e:e+12:void 0},meridiem:function(e,t,n){return e>=0&&e<6?"पहाटे":e<12?"सकाळी":e<17?"दुपारी":e<20?"सायंकाळी":"रात्री"},week:{dow:0,doy:6}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("ms",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(e,t){return 12===e&&(e=0),"pagi"===t?e:"tengahari"===t?e>=11?e:e+12:"petang"===t||"malam"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"pagi":e<15?"tengahari":e<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("ms-my",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(e,t){return 12===e&&(e=0),"pagi"===t?e:"tengahari"===t?e>=11?e:e+12:"petang"===t||"malam"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"pagi":e<15?"tengahari":e<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("mt",{months:"Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru".split("_"),monthsShort:"Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ".split("_"),weekdays:"Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt".split("_"),weekdaysShort:"Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib".split("_"),weekdaysMin:"Ħa_Tn_Tl_Er_Ħa_Ġi_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Illum fil-]LT",nextDay:"[Għada fil-]LT",nextWeek:"dddd [fil-]LT",lastDay:"[Il-bieraħ fil-]LT",lastWeek:"dddd [li għadda] [fil-]LT",sameElse:"L"},relativeTime:{future:"f’ %s",past:"%s ilu",s:"ftit sekondi",ss:"%d sekondi",m:"minuta",mm:"%d minuti",h:"siegħa",hh:"%d siegħat",d:"ġurnata",dd:"%d ġranet",M:"xahar",MM:"%d xhur",y:"sena",yy:"%d sni"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"၁",2:"၂",3:"၃",4:"၄",5:"၅",6:"၆",7:"၇",8:"၈",9:"၉",0:"၀"},n={"၁":"1","၂":"2","၃":"3","၄":"4","၅":"5","၆":"6","၇":"7","၈":"8","၉":"9","၀":"0"};e.defineLocale("my",{months:"ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ".split("_"),monthsShort:"ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ".split("_"),weekdays:"တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ".split("_"),weekdaysShort:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),weekdaysMin:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[ယနေ.] LT [မှာ]",nextDay:"[မနက်ဖြန်] LT [မှာ]",nextWeek:"dddd LT [မှာ]",lastDay:"[မနေ.က] LT [မှာ]",lastWeek:"[ပြီးခဲ့သော] dddd LT [မှာ]",sameElse:"L"},relativeTime:{future:"လာမည့် %s မှာ",past:"လွန်ခဲ့သော %s က",s:"စက္ကန်.အနည်းငယ်",ss:"%d စက္ကန့်",m:"တစ်မိနစ်",mm:"%d မိနစ်",h:"တစ်နာရီ",hh:"%d နာရီ",d:"တစ်ရက်",dd:"%d ရက်",M:"တစ်လ",MM:"%d လ",y:"တစ်နှစ်",yy:"%d နှစ်"},preparse:function(e){return e.replace(/[၁၂၃၄၅၆၇၈၉၀]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("nb",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.".split("_"),monthsParseExact:!0,weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"sø._ma._ti._on._to._fr._lø.".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] HH:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[forrige] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"noen sekunder",ss:"%d sekunder",m:"ett minutt",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dager",M:"en måned",MM:"%d måneder",y:"ett år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},n={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};e.defineLocale("ne",{months:"जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर".split("_"),monthsShort:"जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.".split("_"),monthsParseExact:!0,weekdays:"आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार".split("_"),weekdaysShort:"आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.".split("_"),weekdaysMin:"आ._सो._मं._बु._बि._शु._श.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"Aको h:mm बजे",LTS:"Aको h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, Aको h:mm बजे",LLLL:"dddd, D MMMM YYYY, Aको h:mm बजे"},preparse:function(e){return e.replace(/[१२३४५६७८९०]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/राति|बिहान|दिउँसो|साँझ/,meridiemHour:function(e,t){return 12===e&&(e=0),"राति"===t?e<4?e:e+12:"बिहान"===t?e:"दिउँसो"===t?e>=10?e:e+12:"साँझ"===t?e+12:void 0},meridiem:function(e,t,n){return e<3?"राति":e<12?"बिहान":e<16?"दिउँसो":e<20?"साँझ":"राति"},calendar:{sameDay:"[आज] LT",nextDay:"[भोलि] LT",nextWeek:"[आउँदो] dddd[,] LT",lastDay:"[हिजो] LT",lastWeek:"[गएको] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%sमा",past:"%s अगाडि",s:"केही क्षण",ss:"%d सेकेण्ड",m:"एक मिनेट",mm:"%d मिनेट",h:"एक घण्टा",hh:"%d घण्टा",d:"एक दिन",dd:"%d दिन",M:"एक महिना",MM:"%d महिना",y:"एक बर्ष",yy:"%d बर्ष"},week:{dow:0,doy:6}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),n="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),r=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],a=/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;e.defineLocale("nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(e,r){return e?/-MMM-/.test(r)?n[e.month()]:t[e.month()]:t},monthsRegex:a,monthsShortRegex:a,monthsStrictRegex:/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),n="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),r=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],a=/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;e.defineLocale("nl-be",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(e,r){return e?/-MMM-/.test(r)?n[e.month()]:t[e.month()]:t},monthsRegex:a,monthsShortRegex:a,monthsStrictRegex:/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("nn",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.".split("_"),monthsParseExact:!0,weekdays:"sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag".split("_"),weekdaysShort:"su._må._ty._on._to._fr._lau.".split("_"),weekdaysMin:"su_må_ty_on_to_fr_la".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[I dag klokka] LT",nextDay:"[I morgon klokka] LT",nextWeek:"dddd [klokka] LT",lastDay:"[I går klokka] LT",lastWeek:"[Føregåande] dddd [klokka] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s sidan",s:"nokre sekund",ss:"%d sekund",m:"eit minutt",mm:"%d minutt",h:"ein time",hh:"%d timar",d:"ein dag",dd:"%d dagar",M:"ein månad",MM:"%d månader",y:"eit år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("oc-lnc",{months:{standalone:"genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre".split("_"),format:"de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre".split("_"),isFormat:/D[oD]?(\s)+MMMM/},monthsShort:"gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dm._dc._dj._dv._ds.".split("_"),weekdaysMin:"dg_dl_dm_dc_dj_dv_ds".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [de] YYYY",ll:"D MMM YYYY",LLL:"D MMMM [de] YYYY [a] H:mm",lll:"D MMM YYYY, H:mm",LLLL:"dddd D MMMM [de] YYYY [a] H:mm",llll:"ddd D MMM YYYY, H:mm"},calendar:{sameDay:"[uèi a] LT",nextDay:"[deman a] LT",nextWeek:"dddd [a] LT",lastDay:"[ièr a] LT",lastWeek:"dddd [passat a] LT",sameElse:"L"},relativeTime:{future:"d'aquí %s",past:"fa %s",s:"unas segondas",ss:"%d segondas",m:"una minuta",mm:"%d minutas",h:"una ora",hh:"%d oras",d:"un jorn",dd:"%d jorns",M:"un mes",MM:"%d meses",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(r|n|t|è|a)/,ordinal:function(e,t){var n=1===e?"r":2===e?"n":3===e?"r":4===e?"t":"è";return"w"!==t&&"W"!==t||(n="a"),e+n},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"੧",2:"੨",3:"੩",4:"੪",5:"੫",6:"੬",7:"੭",8:"੮",9:"੯",0:"੦"},n={"੧":"1","੨":"2","੩":"3","੪":"4","੫":"5","੬":"6","੭":"7","੮":"8","੯":"9","੦":"0"};e.defineLocale("pa-in",{months:"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ".split("_"),monthsShort:"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ".split("_"),weekdays:"ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ".split("_"),weekdaysShort:"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ".split("_"),weekdaysMin:"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ".split("_"),longDateFormat:{LT:"A h:mm ਵਜੇ",LTS:"A h:mm:ss ਵਜੇ",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm ਵਜੇ",LLLL:"dddd, D MMMM YYYY, A h:mm ਵਜੇ"},calendar:{sameDay:"[ਅਜ] LT",nextDay:"[ਕਲ] LT",nextWeek:"[ਅਗਲਾ] dddd, LT",lastDay:"[ਕਲ] LT",lastWeek:"[ਪਿਛਲੇ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ਵਿੱਚ",past:"%s ਪਿਛਲੇ",s:"ਕੁਝ ਸਕਿੰਟ",ss:"%d ਸਕਿੰਟ",m:"ਇਕ ਮਿੰਟ",mm:"%d ਮਿੰਟ",h:"ਇੱਕ ਘੰਟਾ",hh:"%d ਘੰਟੇ",d:"ਇੱਕ ਦਿਨ",dd:"%d ਦਿਨ",M:"ਇੱਕ ਮਹੀਨਾ",MM:"%d ਮਹੀਨੇ",y:"ਇੱਕ ਸਾਲ",yy:"%d ਸਾਲ"},preparse:function(e){return e.replace(/[੧੨੩੪੫੬੭੮੯੦]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,meridiemHour:function(e,t){return 12===e&&(e=0),"ਰਾਤ"===t?e<4?e:e+12:"ਸਵੇਰ"===t?e:"ਦੁਪਹਿਰ"===t?e>=10?e:e+12:"ਸ਼ਾਮ"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"ਰਾਤ":e<10?"ਸਵੇਰ":e<17?"ਦੁਪਹਿਰ":e<20?"ਸ਼ਾਮ":"ਰਾਤ"},week:{dow:0,doy:6}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t="styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień".split("_"),n="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia".split("_");function r(e){return e%10<5&&e%10>1&&~~(e/10)%10!=1}function a(e,t,n){var a=e+" ";switch(n){case"ss":return a+(r(e)?"sekundy":"sekund");case"m":return t?"minuta":"minutę";case"mm":return a+(r(e)?"minuty":"minut");case"h":return t?"godzina":"godzinę";case"hh":return a+(r(e)?"godziny":"godzin");case"MM":return a+(r(e)?"miesiące":"miesięcy");case"yy":return a+(r(e)?"lata":"lat")}}e.defineLocale("pl",{months:function(e,r){return e?""===r?"("+n[e.month()]+"|"+t[e.month()]+")":/D MMMM/.test(r)?n[e.month()]:t[e.month()]:t},monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru".split("_"),weekdays:"niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota".split("_"),weekdaysShort:"ndz_pon_wt_śr_czw_pt_sob".split("_"),weekdaysMin:"Nd_Pn_Wt_Śr_Cz_Pt_So".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Dziś o] LT",nextDay:"[Jutro o] LT",nextWeek:function(){switch(this.day()){case 0:return"[W niedzielę o] LT";case 2:return"[We wtorek o] LT";case 3:return"[W środę o] LT";case 6:return"[W sobotę o] LT";default:return"[W] dddd [o] LT"}},lastDay:"[Wczoraj o] LT",lastWeek:function(){switch(this.day()){case 0:return"[W zeszłą niedzielę o] LT";case 3:return"[W zeszłą środę o] LT";case 6:return"[W zeszłą sobotę o] LT";default:return"[W zeszły] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",ss:a,m:a,mm:a,h:a,hh:a,d:"1 dzień",dd:"%d dni",M:"miesiąc",MM:a,y:"rok",yy:a},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("pt",{months:"janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Do_2ª_3ª_4ª_5ª_6ª_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("pt-br",{months:"janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado".split("_"),weekdaysShort:"dom_seg_ter_qua_qui_sex_sáb".split("_"),weekdaysMin:"do_2ª_3ª_4ª_5ª_6ª_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [às] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [às] HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"poucos segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº"})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration function t(e,t,n){var r=" ";return(e%100>=20||e>=100&&e%100==0)&&(r=" de "),e+r+{ss:"secunde",mm:"minute",hh:"ore",dd:"zile",MM:"luni",yy:"ani"}[n]}e.defineLocale("ro",{months:"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie".split("_"),monthsShort:"ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"duminică_luni_marți_miercuri_joi_vineri_sâmbătă".split("_"),weekdaysShort:"Dum_Lun_Mar_Mie_Joi_Vin_Sâm".split("_"),weekdaysMin:"Du_Lu_Ma_Mi_Jo_Vi_Sâ".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[azi la] LT",nextDay:"[mâine la] LT",nextWeek:"dddd [la] LT",lastDay:"[ieri la] LT",lastWeek:"[fosta] dddd [la] LT",sameElse:"L"},relativeTime:{future:"peste %s",past:"%s în urmă",s:"câteva secunde",ss:t,m:"un minut",mm:t,h:"o oră",hh:t,d:"o zi",dd:t,M:"o lună",MM:t,y:"un an",yy:t},week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration function t(e,t,n){var r,a;return"m"===n?t?"минута":"минуту":e+" "+(r=+e,a={ss:t?"секунда_секунды_секунд":"секунду_секунды_секунд",mm:t?"минута_минуты_минут":"минуту_минуты_минут",hh:"час_часа_часов",dd:"день_дня_дней",MM:"месяц_месяца_месяцев",yy:"год_года_лет"}[n].split("_"),r%10==1&&r%100!=11?a[0]:r%10>=2&&r%10<=4&&(r%100<10||r%100>=20)?a[1]:a[2])}var n=[/^янв/i,/^фев/i,/^мар/i,/^апр/i,/^ма[йя]/i,/^июн/i,/^июл/i,/^авг/i,/^сен/i,/^окт/i,/^ноя/i,/^дек/i];e.defineLocale("ru",{months:{format:"января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря".split("_"),standalone:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_")},monthsShort:{format:"янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.".split("_"),standalone:"янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.".split("_")},weekdays:{standalone:"воскресенье_понедельник_вторник_среда_четверг_пятница_суббота".split("_"),format:"воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу".split("_"),isFormat:/\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/},weekdaysShort:"вс_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"вс_пн_вт_ср_чт_пт_сб".split("_"),monthsParse:n,longMonthsParse:n,shortMonthsParse:n,monthsRegex:/^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,monthsShortRegex:/^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,monthsStrictRegex:/^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,monthsShortStrictRegex:/^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., H:mm",LLLL:"dddd, D MMMM YYYY г., H:mm"},calendar:{sameDay:"[Сегодня, в] LT",nextDay:"[Завтра, в] LT",lastDay:"[Вчера, в] LT",nextWeek:function(e){if(e.week()===this.week())return 2===this.day()?"[Во] dddd, [в] LT":"[В] dddd, [в] LT";switch(this.day()){case 0:return"[В следующее] dddd, [в] LT";case 1:case 2:case 4:return"[В следующий] dddd, [в] LT";case 3:case 5:case 6:return"[В следующую] dddd, [в] LT"}},lastWeek:function(e){if(e.week()===this.week())return 2===this.day()?"[Во] dddd, [в] LT":"[В] dddd, [в] LT";switch(this.day()){case 0:return"[В прошлое] dddd, [в] LT";case 1:case 2:case 4:return"[В прошлый] dddd, [в] LT";case 3:case 5:case 6:return"[В прошлую] dddd, [в] LT"}},sameElse:"L"},relativeTime:{future:"через %s",past:"%s назад",s:"несколько секунд",ss:t,m:t,mm:t,h:"час",hh:t,d:"день",dd:t,M:"месяц",MM:t,y:"год",yy:t},meridiemParse:/ночи|утра|дня|вечера/i,isPM:function(e){return/^(дня|вечера)$/.test(e)},meridiem:function(e,t,n){return e<4?"ночи":e<12?"утра":e<17?"дня":"вечера"},dayOfMonthOrdinalParse:/\d{1,2}-(й|го|я)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":return e+"-й";case"D":return e+"-го";case"w":case"W":return e+"-я";default:return e}},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t=["جنوري","فيبروري","مارچ","اپريل","مئي","جون","جولاءِ","آگسٽ","سيپٽمبر","آڪٽوبر","نومبر","ڊسمبر"],n=["آچر","سومر","اڱارو","اربع","خميس","جمع","ڇنڇر"];e.defineLocale("sd",{months:t,monthsShort:t,weekdays:n,weekdaysShort:n,weekdaysMin:n,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd، D MMMM YYYY HH:mm"},meridiemParse:/صبح|شام/,isPM:function(e){return"شام"===e},meridiem:function(e,t,n){return e<12?"صبح":"شام"},calendar:{sameDay:"[اڄ] LT",nextDay:"[سڀاڻي] LT",nextWeek:"dddd [اڳين هفتي تي] LT",lastDay:"[ڪالهه] LT",lastWeek:"[گزريل هفتي] dddd [تي] LT",sameElse:"L"},relativeTime:{future:"%s پوء",past:"%s اڳ",s:"چند سيڪنڊ",ss:"%d سيڪنڊ",m:"هڪ منٽ",mm:"%d منٽ",h:"هڪ ڪلاڪ",hh:"%d ڪلاڪ",d:"هڪ ڏينهن",dd:"%d ڏينهن",M:"هڪ مهينو",MM:"%d مهينا",y:"هڪ سال",yy:"%d سال"},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("se",{months:"ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu".split("_"),monthsShort:"ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov".split("_"),weekdays:"sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat".split("_"),weekdaysShort:"sotn_vuos_maŋ_gask_duor_bear_láv".split("_"),weekdaysMin:"s_v_m_g_d_b_L".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"MMMM D. [b.] YYYY",LLL:"MMMM D. [b.] YYYY [ti.] HH:mm",LLLL:"dddd, MMMM D. [b.] YYYY [ti.] HH:mm"},calendar:{sameDay:"[otne ti] LT",nextDay:"[ihttin ti] LT",nextWeek:"dddd [ti] LT",lastDay:"[ikte ti] LT",lastWeek:"[ovddit] dddd [ti] LT",sameElse:"L"},relativeTime:{future:"%s geažes",past:"maŋit %s",s:"moadde sekunddat",ss:"%d sekunddat",m:"okta minuhta",mm:"%d minuhtat",h:"okta diimmu",hh:"%d diimmut",d:"okta beaivi",dd:"%d beaivvit",M:"okta mánnu",MM:"%d mánut",y:"okta jahki",yy:"%d jagit"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("si",{months:"ජනවාරි_පෙබරවාරි_මාර්තු_අප්රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්".split("_"),monthsShort:"ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ".split("_"),weekdays:"ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා".split("_"),weekdaysShort:"ඉරි_සඳු_අඟ_බදා_බ්රහ_සිකු_සෙන".split("_"),weekdaysMin:"ඉ_ස_අ_බ_බ්ර_සි_සෙ".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"a h:mm",LTS:"a h:mm:ss",L:"YYYY/MM/DD",LL:"YYYY MMMM D",LLL:"YYYY MMMM D, a h:mm",LLLL:"YYYY MMMM D [වැනි] dddd, a h:mm:ss"},calendar:{sameDay:"[අද] LT[ට]",nextDay:"[හෙට] LT[ට]",nextWeek:"dddd LT[ට]",lastDay:"[ඊයේ] LT[ට]",lastWeek:"[පසුගිය] dddd LT[ට]",sameElse:"L"},relativeTime:{future:"%sකින්",past:"%sකට පෙර",s:"තත්පර කිහිපය",ss:"තත්පර %d",m:"මිනිත්තුව",mm:"මිනිත්තු %d",h:"පැය",hh:"පැය %d",d:"දිනය",dd:"දින %d",M:"මාසය",MM:"මාස %d",y:"වසර",yy:"වසර %d"},dayOfMonthOrdinalParse:/\d{1,2} වැනි/,ordinal:function(e){return e+" වැනි"},meridiemParse:/පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,isPM:function(e){return"ප.ව."===e||"පස් වරු"===e},meridiem:function(e,t,n){return e>11?n?"ප.ව.":"පස් වරු":n?"පෙ.ව.":"පෙර වරු"}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t="január_február_marec_apríl_máj_jún_júl_august_september_október_november_december".split("_"),n="jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec".split("_");function r(e){return e>1&&e<5}function a(e,t,n,a){var o=e+" ";switch(n){case"s":return t||a?"pár sekúnd":"pár sekundami";case"ss":return t||a?o+(r(e)?"sekundy":"sekúnd"):o+"sekundami";case"m":return t?"minúta":a?"minútu":"minútou";case"mm":return t||a?o+(r(e)?"minúty":"minút"):o+"minútami";case"h":return t?"hodina":a?"hodinu":"hodinou";case"hh":return t||a?o+(r(e)?"hodiny":"hodín"):o+"hodinami";case"d":return t||a?"deň":"dňom";case"dd":return t||a?o+(r(e)?"dni":"dní"):o+"dňami";case"M":return t||a?"mesiac":"mesiacom";case"MM":return t||a?o+(r(e)?"mesiace":"mesiacov"):o+"mesiacmi";case"y":return t||a?"rok":"rokom";case"yy":return t||a?o+(r(e)?"roky":"rokov"):o+"rokmi"}}e.defineLocale("sk",{months:t,monthsShort:n,weekdays:"nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota".split("_"),weekdaysShort:"ne_po_ut_st_št_pi_so".split("_"),weekdaysMin:"ne_po_ut_st_št_pi_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm"},calendar:{sameDay:"[dnes o] LT",nextDay:"[zajtra o] LT",nextWeek:function(){switch(this.day()){case 0:return"[v nedeľu o] LT";case 1:case 2:return"[v] dddd [o] LT";case 3:return"[v stredu o] LT";case 4:return"[vo štvrtok o] LT";case 5:return"[v piatok o] LT";case 6:return"[v sobotu o] LT"}},lastDay:"[včera o] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulú nedeľu o] LT";case 1:case 2:return"[minulý] dddd [o] LT";case 3:return"[minulú stredu o] LT";case 4:case 5:return"[minulý] dddd [o] LT";case 6:return"[minulú sobotu o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"pred %s",s:a,ss:a,m:a,mm:a,h:a,hh:a,d:a,dd:a,M:a,MM:a,y:a,yy:a},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration function t(e,t,n,r){var a=e+" ";switch(n){case"s":return t||r?"nekaj sekund":"nekaj sekundami";case"ss":return a+=1===e?t?"sekundo":"sekundi":2===e?t||r?"sekundi":"sekundah":e<5?t||r?"sekunde":"sekundah":"sekund";case"m":return t?"ena minuta":"eno minuto";case"mm":return a+=1===e?t?"minuta":"minuto":2===e?t||r?"minuti":"minutama":e<5?t||r?"minute":"minutami":t||r?"minut":"minutami";case"h":return t?"ena ura":"eno uro";case"hh":return a+=1===e?t?"ura":"uro":2===e?t||r?"uri":"urama":e<5?t||r?"ure":"urami":t||r?"ur":"urami";case"d":return t||r?"en dan":"enim dnem";case"dd":return a+=1===e?t||r?"dan":"dnem":2===e?t||r?"dni":"dnevoma":t||r?"dni":"dnevi";case"M":return t||r?"en mesec":"enim mesecem";case"MM":return a+=1===e?t||r?"mesec":"mesecem":2===e?t||r?"meseca":"mesecema":e<5?t||r?"mesece":"meseci":t||r?"mesecev":"meseci";case"y":return t||r?"eno leto":"enim letom";case"yy":return a+=1===e?t||r?"leto":"letom":2===e?t||r?"leti":"letoma":e<5?t||r?"leta":"leti":t||r?"let":"leti"}}e.defineLocale("sl",{months:"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota".split("_"),weekdaysShort:"ned._pon._tor._sre._čet._pet._sob.".split("_"),weekdaysMin:"ne_po_to_sr_če_pe_so".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danes ob] LT",nextDay:"[jutri ob] LT",nextWeek:function(){switch(this.day()){case 0:return"[v] [nedeljo] [ob] LT";case 3:return"[v] [sredo] [ob] LT";case 6:return"[v] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[v] dddd [ob] LT"}},lastDay:"[včeraj ob] LT",lastWeek:function(){switch(this.day()){case 0:return"[prejšnjo] [nedeljo] [ob] LT";case 3:return"[prejšnjo] [sredo] [ob] LT";case 6:return"[prejšnjo] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[prejšnji] dddd [ob] LT"}},sameElse:"L"},relativeTime:{future:"čez %s",past:"pred %s",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("sq",{months:"Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor".split("_"),monthsShort:"Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj".split("_"),weekdays:"E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë".split("_"),weekdaysShort:"Die_Hën_Mar_Mër_Enj_Pre_Sht".split("_"),weekdaysMin:"D_H_Ma_Më_E_P_Sh".split("_"),weekdaysParseExact:!0,meridiemParse:/PD|MD/,isPM:function(e){return"M"===e.charAt(0)},meridiem:function(e,t,n){return e<12?"PD":"MD"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Sot në] LT",nextDay:"[Nesër në] LT",nextWeek:"dddd [në] LT",lastDay:"[Dje në] LT",lastWeek:"dddd [e kaluar në] LT",sameElse:"L"},relativeTime:{future:"në %s",past:"%s më parë",s:"disa sekonda",ss:"%d sekonda",m:"një minutë",mm:"%d minuta",h:"një orë",hh:"%d orë",d:"një ditë",dd:"%d ditë",M:"një muaj",MM:"%d muaj",y:"një vit",yy:"%d vite"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={words:{ss:["sekunda","sekunde","sekundi"],m:["jedan minut","jedne minute"],mm:["minut","minute","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mesec","meseca","meseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(e,t){return 1===e?t[0]:e>=2&&e<=4?t[1]:t[2]},translate:function(e,n,r){var a=t.words[r];return 1===r.length?n?a[0]:a[1]:e+" "+t.correctGrammaticalCase(e,a)}};e.defineLocale("sr",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sre._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedelju] [u] LT";case 3:return"[u] [sredu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){return["[prošle] [nedelje] [u] LT","[prošlog] [ponedeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"pre %s",s:"nekoliko sekundi",ss:t.translate,m:t.translate,mm:t.translate,h:t.translate,hh:t.translate,d:"dan",dd:t.translate,M:"mesec",MM:t.translate,y:"godinu",yy:t.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={words:{ss:["секунда","секунде","секунди"],m:["један минут","једне минуте"],mm:["минут","минуте","минута"],h:["један сат","једног сата"],hh:["сат","сата","сати"],dd:["дан","дана","дана"],MM:["месец","месеца","месеци"],yy:["година","године","година"]},correctGrammaticalCase:function(e,t){return 1===e?t[0]:e>=2&&e<=4?t[1]:t[2]},translate:function(e,n,r){var a=t.words[r];return 1===r.length?n?a[0]:a[1]:e+" "+t.correctGrammaticalCase(e,a)}};e.defineLocale("sr-cyrl",{months:"јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар".split("_"),monthsShort:"јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.".split("_"),monthsParseExact:!0,weekdays:"недеља_понедељак_уторак_среда_четвртак_петак_субота".split("_"),weekdaysShort:"нед._пон._уто._сре._чет._пет._суб.".split("_"),weekdaysMin:"не_по_ут_ср_че_пе_су".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[данас у] LT",nextDay:"[сутра у] LT",nextWeek:function(){switch(this.day()){case 0:return"[у] [недељу] [у] LT";case 3:return"[у] [среду] [у] LT";case 6:return"[у] [суботу] [у] LT";case 1:case 2:case 4:case 5:return"[у] dddd [у] LT"}},lastDay:"[јуче у] LT",lastWeek:function(){return["[прошле] [недеље] [у] LT","[прошлог] [понедељка] [у] LT","[прошлог] [уторка] [у] LT","[прошле] [среде] [у] LT","[прошлог] [четвртка] [у] LT","[прошлог] [петка] [у] LT","[прошле] [суботе] [у] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"за %s",past:"пре %s",s:"неколико секунди",ss:t.translate,m:t.translate,mm:t.translate,h:t.translate,hh:t.translate,d:"дан",dd:t.translate,M:"месец",MM:t.translate,y:"годину",yy:t.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("ss",{months:"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split("_"),monthsShort:"Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo".split("_"),weekdays:"Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo".split("_"),weekdaysShort:"Lis_Umb_Lsb_Les_Lsi_Lsh_Umg".split("_"),weekdaysMin:"Li_Us_Lb_Lt_Ls_Lh_Ug".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Namuhla nga] LT",nextDay:"[Kusasa nga] LT",nextWeek:"dddd [nga] LT",lastDay:"[Itolo nga] LT",lastWeek:"dddd [leliphelile] [nga] LT",sameElse:"L"},relativeTime:{future:"nga %s",past:"wenteka nga %s",s:"emizuzwana lomcane",ss:"%d mzuzwana",m:"umzuzu",mm:"%d emizuzu",h:"lihora",hh:"%d emahora",d:"lilanga",dd:"%d emalanga",M:"inyanga",MM:"%d tinyanga",y:"umnyaka",yy:"%d iminyaka"},meridiemParse:/ekuseni|emini|entsambama|ebusuku/,meridiem:function(e,t,n){return e<11?"ekuseni":e<15?"emini":e<19?"entsambama":"ebusuku"},meridiemHour:function(e,t){return 12===e&&(e=0),"ekuseni"===t?e:"emini"===t?e>=11?e:e+12:"entsambama"===t||"ebusuku"===t?0===e?0:e+12:void 0},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:"%d",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("sv",{months:"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag".split("_"),weekdaysShort:"sön_mån_tis_ons_tor_fre_lör".split("_"),weekdaysMin:"sö_må_ti_on_to_fr_lö".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [kl.] HH:mm",LLLL:"dddd D MMMM YYYY [kl.] HH:mm",lll:"D MMM YYYY HH:mm",llll:"ddd D MMM YYYY HH:mm"},calendar:{sameDay:"[Idag] LT",nextDay:"[Imorgon] LT",lastDay:"[Igår] LT",nextWeek:"[På] dddd LT",lastWeek:"[I] dddd[s] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"för %s sedan",s:"några sekunder",ss:"%d sekunder",m:"en minut",mm:"%d minuter",h:"en timme",hh:"%d timmar",d:"en dag",dd:"%d dagar",M:"en månad",MM:"%d månader",y:"ett år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}(\:e|\:a)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?":e":1===t||2===t?":a":":e")},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("sw",{months:"Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des".split("_"),weekdays:"Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi".split("_"),weekdaysShort:"Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos".split("_"),weekdaysMin:"J2_J3_J4_J5_Al_Ij_J1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"hh:mm A",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[leo saa] LT",nextDay:"[kesho saa] LT",nextWeek:"[wiki ijayo] dddd [saat] LT",lastDay:"[jana] LT",lastWeek:"[wiki iliyopita] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s baadaye",past:"tokea %s",s:"hivi punde",ss:"sekunde %d",m:"dakika moja",mm:"dakika %d",h:"saa limoja",hh:"masaa %d",d:"siku moja",dd:"siku %d",M:"mwezi mmoja",MM:"miezi %d",y:"mwaka mmoja",yy:"miaka %d"},week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"௧",2:"௨",3:"௩",4:"௪",5:"௫",6:"௬",7:"௭",8:"௮",9:"௯",0:"௦"},n={"௧":"1","௨":"2","௩":"3","௪":"4","௫":"5","௬":"6","௭":"7","௮":"8","௯":"9","௦":"0"};e.defineLocale("ta",{months:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),monthsShort:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),weekdays:"ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை".split("_"),weekdaysShort:"ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி".split("_"),weekdaysMin:"ஞா_தி_செ_பு_வி_வெ_ச".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, HH:mm",LLLL:"dddd, D MMMM YYYY, HH:mm"},calendar:{sameDay:"[இன்று] LT",nextDay:"[நாளை] LT",nextWeek:"dddd, LT",lastDay:"[நேற்று] LT",lastWeek:"[கடந்த வாரம்] dddd, LT",sameElse:"L"},relativeTime:{future:"%s இல்",past:"%s முன்",s:"ஒரு சில விநாடிகள்",ss:"%d விநாடிகள்",m:"ஒரு நிமிடம்",mm:"%d நிமிடங்கள்",h:"ஒரு மணி நேரம்",hh:"%d மணி நேரம்",d:"ஒரு நாள்",dd:"%d நாட்கள்",M:"ஒரு மாதம்",MM:"%d மாதங்கள்",y:"ஒரு வருடம்",yy:"%d ஆண்டுகள்"},dayOfMonthOrdinalParse:/\d{1,2}வது/,ordinal:function(e){return e+"வது"},preparse:function(e){return e.replace(/[௧௨௩௪௫௬௭௮௯௦]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,meridiem:function(e,t,n){return e<2?" யாமம்":e<6?" வைகறை":e<10?" காலை":e<14?" நண்பகல்":e<18?" எற்பாடு":e<22?" மாலை":" யாமம்"},meridiemHour:function(e,t){return 12===e&&(e=0),"யாமம்"===t?e<2?e:e+12:"வைகறை"===t||"காலை"===t||"நண்பகல்"===t&&e>=10?e:e+12},week:{dow:0,doy:6}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("te",{months:"జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్".split("_"),monthsShort:"జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.".split("_"),monthsParseExact:!0,weekdays:"ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం".split("_"),weekdaysShort:"ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని".split("_"),weekdaysMin:"ఆ_సో_మం_బు_గు_శు_శ".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[నేడు] LT",nextDay:"[రేపు] LT",nextWeek:"dddd, LT",lastDay:"[నిన్న] LT",lastWeek:"[గత] dddd, LT",sameElse:"L"},relativeTime:{future:"%s లో",past:"%s క్రితం",s:"కొన్ని క్షణాలు",ss:"%d సెకన్లు",m:"ఒక నిమిషం",mm:"%d నిమిషాలు",h:"ఒక గంట",hh:"%d గంటలు",d:"ఒక రోజు",dd:"%d రోజులు",M:"ఒక నెల",MM:"%d నెలలు",y:"ఒక సంవత్సరం",yy:"%d సంవత్సరాలు"},dayOfMonthOrdinalParse:/\d{1,2}వ/,ordinal:"%dవ",meridiemParse:/రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,meridiemHour:function(e,t){return 12===e&&(e=0),"రాత్రి"===t?e<4?e:e+12:"ఉదయం"===t?e:"మధ్యాహ్నం"===t?e>=10?e:e+12:"సాయంత్రం"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"రాత్రి":e<10?"ఉదయం":e<17?"మధ్యాహ్నం":e<20?"సాయంత్రం":"రాత్రి"},week:{dow:0,doy:6}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("tet",{months:"Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu".split("_"),weekdaysShort:"Dom_Seg_Ters_Kua_Kint_Sest_Sab".split("_"),weekdaysMin:"Do_Seg_Te_Ku_Ki_Ses_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Ohin iha] LT",nextDay:"[Aban iha] LT",nextWeek:"dddd [iha] LT",lastDay:"[Horiseik iha] LT",lastWeek:"dddd [semana kotuk] [iha] LT",sameElse:"L"},relativeTime:{future:"iha %s",past:"%s liuba",s:"segundu balun",ss:"segundu %d",m:"minutu ida",mm:"minutu %d",h:"oras ida",hh:"oras %d",d:"loron ida",dd:"loron %d",M:"fulan ida",MM:"fulan %d",y:"tinan ida",yy:"tinan %d"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={0:"-ум",1:"-ум",2:"-юм",3:"-юм",4:"-ум",5:"-ум",6:"-ум",7:"-ум",8:"-ум",9:"-ум",10:"-ум",12:"-ум",13:"-ум",20:"-ум",30:"-юм",40:"-ум",50:"-ум",60:"-ум",70:"-ум",80:"-ум",90:"-ум",100:"-ум"};e.defineLocale("tg",{months:"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_"),monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе".split("_"),weekdaysShort:"яшб_дшб_сшб_чшб_пшб_ҷум_шнб".split("_"),weekdaysMin:"яш_дш_сш_чш_пш_ҷм_шб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Имрӯз соати] LT",nextDay:"[Пагоҳ соати] LT",lastDay:"[Дирӯз соати] LT",nextWeek:"dddd[и] [ҳафтаи оянда соати] LT",lastWeek:"dddd[и] [ҳафтаи гузашта соати] LT",sameElse:"L"},relativeTime:{future:"баъди %s",past:"%s пеш",s:"якчанд сония",m:"як дақиқа",mm:"%d дақиқа",h:"як соат",hh:"%d соат",d:"як рӯз",dd:"%d рӯз",M:"як моҳ",MM:"%d моҳ",y:"як сол",yy:"%d сол"},meridiemParse:/шаб|субҳ|рӯз|бегоҳ/,meridiemHour:function(e,t){return 12===e&&(e=0),"шаб"===t?e<4?e:e+12:"субҳ"===t?e:"рӯз"===t?e>=11?e:e+12:"бегоҳ"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"шаб":e<11?"субҳ":e<16?"рӯз":e<19?"бегоҳ":"шаб"},dayOfMonthOrdinalParse:/\d{1,2}-(ум|юм)/,ordinal:function(e){return e+(t[e]||t[e%10]||t[e>=100?100:null])},week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("th",{months:"มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม".split("_"),monthsShort:"ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.".split("_"),monthsParseExact:!0,weekdays:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์".split("_"),weekdaysShort:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์".split("_"),weekdaysMin:"อา._จ._อ._พ._พฤ._ศ._ส.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY เวลา H:mm",LLLL:"วันddddที่ D MMMM YYYY เวลา H:mm"},meridiemParse:/ก่อนเที่ยง|หลังเที่ยง/,isPM:function(e){return"หลังเที่ยง"===e},meridiem:function(e,t,n){return e<12?"ก่อนเที่ยง":"หลังเที่ยง"},calendar:{sameDay:"[วันนี้ เวลา] LT",nextDay:"[พรุ่งนี้ เวลา] LT",nextWeek:"dddd[หน้า เวลา] LT",lastDay:"[เมื่อวานนี้ เวลา] LT",lastWeek:"[วัน]dddd[ที่แล้ว เวลา] LT",sameElse:"L"},relativeTime:{future:"อีก %s",past:"%sที่แล้ว",s:"ไม่กี่วินาที",ss:"%d วินาที",m:"1 นาที",mm:"%d นาที",h:"1 ชั่วโมง",hh:"%d ชั่วโมง",d:"1 วัน",dd:"%d วัน",M:"1 เดือน",MM:"%d เดือน",y:"1 ปี",yy:"%d ปี"}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"'inji",5:"'inji",8:"'inji",70:"'inji",80:"'inji",2:"'nji",7:"'nji",20:"'nji",50:"'nji",3:"'ünji",4:"'ünji",100:"'ünji",6:"'njy",9:"'unjy",10:"'unjy",30:"'unjy",60:"'ynjy",90:"'ynjy"};e.defineLocale("tk",{months:"Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr".split("_"),monthsShort:"Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek".split("_"),weekdays:"Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe".split("_"),weekdaysShort:"Ýek_Duş_Siş_Çar_Pen_Ann_Şen".split("_"),weekdaysMin:"Ýk_Dş_Sş_Çr_Pn_An_Şn".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün sagat] LT",nextDay:"[ertir sagat] LT",nextWeek:"[indiki] dddd [sagat] LT",lastDay:"[düýn] LT",lastWeek:"[geçen] dddd [sagat] LT",sameElse:"L"},relativeTime:{future:"%s soň",past:"%s öň",s:"birnäçe sekunt",m:"bir minut",mm:"%d minut",h:"bir sagat",hh:"%d sagat",d:"bir gün",dd:"%d gün",M:"bir aý",MM:"%d aý",y:"bir ýyl",yy:"%d ýyl"},ordinal:function(e,n){switch(n){case"d":case"D":case"Do":case"DD":return e;default:if(0===e)return e+"'unjy";var r=e%10;return e+(t[r]||t[e%100-r]||t[e>=100?100:null])}},week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("tl-ph",{months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY HH:mm",LLLL:"dddd, MMMM DD, YYYY HH:mm"},calendar:{sameDay:"LT [ngayong araw]",nextDay:"[Bukas ng] LT",nextWeek:"LT [sa susunod na] dddd",lastDay:"LT [kahapon]",lastWeek:"LT [noong nakaraang] dddd",sameElse:"L"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",ss:"%d segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t="pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut".split("_");function n(e,n,r,a){var o=function(e){var n=Math.floor(e%1e3/100),r=Math.floor(e%100/10),a=e%10,o="";return n>0&&(o+=t[n]+"vatlh"),r>0&&(o+=(""!==o?" ":"")+t[r]+"maH"),a>0&&(o+=(""!==o?" ":"")+t[a]),""===o?"pagh":o}(e);switch(r){case"ss":return o+" lup";case"mm":return o+" tup";case"hh":return o+" rep";case"dd":return o+" jaj";case"MM":return o+" jar";case"yy":return o+" DIS"}}e.defineLocale("tlh",{months:"tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’".split("_"),monthsShort:"jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’".split("_"),monthsParseExact:!0,weekdays:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysShort:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysMin:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[DaHjaj] LT",nextDay:"[wa’leS] LT",nextWeek:"LLL",lastDay:"[wa’Hu’] LT",lastWeek:"LLL",sameElse:"L"},relativeTime:{future:function(e){var t=e;return t=-1!==e.indexOf("jaj")?t.slice(0,-3)+"leS":-1!==e.indexOf("jar")?t.slice(0,-3)+"waQ":-1!==e.indexOf("DIS")?t.slice(0,-3)+"nem":t+" pIq"},past:function(e){var t=e;return t=-1!==e.indexOf("jaj")?t.slice(0,-3)+"Hu’":-1!==e.indexOf("jar")?t.slice(0,-3)+"wen":-1!==e.indexOf("DIS")?t.slice(0,-3)+"ben":t+" ret"},s:"puS lup",ss:n,m:"wa’ tup",mm:n,h:"wa’ rep",hh:n,d:"wa’ jaj",dd:n,M:"wa’ jar",MM:n,y:"wa’ DIS",yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"'inci",5:"'inci",8:"'inci",70:"'inci",80:"'inci",2:"'nci",7:"'nci",20:"'nci",50:"'nci",3:"'üncü",4:"'üncü",100:"'üncü",6:"'ncı",9:"'uncu",10:"'uncu",30:"'uncu",60:"'ıncı",90:"'ıncı"};e.defineLocale("tr",{months:"Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık".split("_"),monthsShort:"Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara".split("_"),weekdays:"Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi".split("_"),weekdaysShort:"Paz_Pts_Sal_Çar_Per_Cum_Cts".split("_"),weekdaysMin:"Pz_Pt_Sa_Ça_Pe_Cu_Ct".split("_"),meridiem:function(e,t,n){return e<12?n?"öö":"ÖÖ":n?"ös":"ÖS"},meridiemParse:/öö|ÖÖ|ös|ÖS/,isPM:function(e){return"ös"===e||"ÖS"===e},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[yarın saat] LT",nextWeek:"[gelecek] dddd [saat] LT",lastDay:"[dün] LT",lastWeek:"[geçen] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s önce",s:"birkaç saniye",ss:"%d saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir yıl",yy:"%d yıl"},ordinal:function(e,n){switch(n){case"d":case"D":case"Do":case"DD":return e;default:if(0===e)return e+"'ıncı";var r=e%10;return e+(t[r]||t[e%100-r]||t[e>=100?100:null])}},week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration function t(e,t,n,r){var a={s:["viensas secunds","'iensas secunds"],ss:[e+" secunds",e+" secunds"],m:["'n míut","'iens míut"],mm:[e+" míuts",e+" míuts"],h:["'n þora","'iensa þora"],hh:[e+" þoras",e+" þoras"],d:["'n ziua","'iensa ziua"],dd:[e+" ziuas",e+" ziuas"],M:["'n mes","'iens mes"],MM:[e+" mesen",e+" mesen"],y:["'n ar","'iens ar"],yy:[e+" ars",e+" ars"]};return r||t?a[n][0]:a[n][1]}e.defineLocale("tzl",{months:"Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar".split("_"),monthsShort:"Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec".split("_"),weekdays:"Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi".split("_"),weekdaysShort:"Súl_Lún_Mai_Már_Xhú_Vié_Sát".split("_"),weekdaysMin:"Sú_Lú_Ma_Má_Xh_Vi_Sá".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"D. MMMM [dallas] YYYY",LLL:"D. MMMM [dallas] YYYY HH.mm",LLLL:"dddd, [li] D. MMMM [dallas] YYYY HH.mm"},meridiemParse:/d\'o|d\'a/i,isPM:function(e){return"d'o"===e.toLowerCase()},meridiem:function(e,t,n){return e>11?n?"d'o":"D'O":n?"d'a":"D'A"},calendar:{sameDay:"[oxhi à] LT",nextDay:"[demà à] LT",nextWeek:"dddd [à] LT",lastDay:"[ieiri à] LT",lastWeek:"[sür el] dddd [lasteu à] LT",sameElse:"L"},relativeTime:{future:"osprei %s",past:"ja%s",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("tzm",{months:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),monthsShort:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),weekdays:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysShort:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysMin:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[ⴰⵙⴷⵅ ⴴ] LT",nextDay:"[ⴰⵙⴽⴰ ⴴ] LT",nextWeek:"dddd [ⴴ] LT",lastDay:"[ⴰⵚⴰⵏⵜ ⴴ] LT",lastWeek:"dddd [ⴴ] LT",sameElse:"L"},relativeTime:{future:"ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s",past:"ⵢⴰⵏ %s",s:"ⵉⵎⵉⴽ",ss:"%d ⵉⵎⵉⴽ",m:"ⵎⵉⵏⵓⴺ",mm:"%d ⵎⵉⵏⵓⴺ",h:"ⵙⴰⵄⴰ",hh:"%d ⵜⴰⵙⵙⴰⵄⵉⵏ",d:"ⴰⵙⵙ",dd:"%d oⵙⵙⴰⵏ",M:"ⴰⵢoⵓⵔ",MM:"%d ⵉⵢⵢⵉⵔⵏ",y:"ⴰⵙⴳⴰⵙ",yy:"%d ⵉⵙⴳⴰⵙⵏ"},week:{dow:6,doy:12}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("tzm-latn",{months:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),monthsShort:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),weekdays:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysShort:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysMin:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[asdkh g] LT",nextDay:"[aska g] LT",nextWeek:"dddd [g] LT",lastDay:"[assant g] LT",lastWeek:"dddd [g] LT",sameElse:"L"},relativeTime:{future:"dadkh s yan %s",past:"yan %s",s:"imik",ss:"%d imik",m:"minuḍ",mm:"%d minuḍ",h:"saɛa",hh:"%d tassaɛin",d:"ass",dd:"%d ossan",M:"ayowr",MM:"%d iyyirn",y:"asgas",yy:"%d isgasn"},week:{dow:6,doy:12}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js language configuration e.defineLocale("ug-cn",{months:"يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر".split("_"),monthsShort:"يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر".split("_"),weekdays:"يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە".split("_"),weekdaysShort:"يە_دۈ_سە_چا_پە_جۈ_شە".split("_"),weekdaysMin:"يە_دۈ_سە_چا_پە_جۈ_شە".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY-يىلىM-ئاينىڭD-كۈنى",LLL:"YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm",LLLL:"dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm"},meridiemParse:/يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,meridiemHour:function(e,t){return 12===e&&(e=0),"يېرىم كېچە"===t||"سەھەر"===t||"چۈشتىن بۇرۇن"===t?e:"چۈشتىن كېيىن"===t||"كەچ"===t?e+12:e>=11?e:e+12},meridiem:function(e,t,n){var r=100*e+t;return r<600?"يېرىم كېچە":r<900?"سەھەر":r<1130?"چۈشتىن بۇرۇن":r<1230?"چۈش":r<1800?"چۈشتىن كېيىن":"كەچ"},calendar:{sameDay:"[بۈگۈن سائەت] LT",nextDay:"[ئەتە سائەت] LT",nextWeek:"[كېلەركى] dddd [سائەت] LT",lastDay:"[تۆنۈگۈن] LT",lastWeek:"[ئالدىنقى] dddd [سائەت] LT",sameElse:"L"},relativeTime:{future:"%s كېيىن",past:"%s بۇرۇن",s:"نەچچە سېكونت",ss:"%d سېكونت",m:"بىر مىنۇت",mm:"%d مىنۇت",h:"بىر سائەت",hh:"%d سائەت",d:"بىر كۈن",dd:"%d كۈن",M:"بىر ئاي",MM:"%d ئاي",y:"بىر يىل",yy:"%d يىل"},dayOfMonthOrdinalParse:/\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"-كۈنى";case"w":case"W":return e+"-ھەپتە";default:return e}},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration function t(e,t,n){var r,a;return"m"===n?t?"хвилина":"хвилину":"h"===n?t?"година":"годину":e+" "+(r=+e,a={ss:t?"секунда_секунди_секунд":"секунду_секунди_секунд",mm:t?"хвилина_хвилини_хвилин":"хвилину_хвилини_хвилин",hh:t?"година_години_годин":"годину_години_годин",dd:"день_дні_днів",MM:"місяць_місяці_місяців",yy:"рік_роки_років"}[n].split("_"),r%10==1&&r%100!=11?a[0]:r%10>=2&&r%10<=4&&(r%100<10||r%100>=20)?a[1]:a[2])}function n(e){return function(){return e+"о"+(11===this.hours()?"б":"")+"] LT"}}e.defineLocale("uk",{months:{format:"січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня".split("_"),standalone:"січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень".split("_")},monthsShort:"січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд".split("_"),weekdays:function(e,t){var n={nominative:"неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота".split("_"),accusative:"неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу".split("_"),genitive:"неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи".split("_")};return!0===e?n.nominative.slice(1,7).concat(n.nominative.slice(0,1)):e?n[/(\[[ВвУу]\]) ?dddd/.test(t)?"accusative":/\[?(?:минулої|наступної)? ?\] ?dddd/.test(t)?"genitive":"nominative"][e.day()]:n.nominative},weekdaysShort:"нд_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY р.",LLL:"D MMMM YYYY р., HH:mm",LLLL:"dddd, D MMMM YYYY р., HH:mm"},calendar:{sameDay:n("[Сьогодні "),nextDay:n("[Завтра "),lastDay:n("[Вчора "),nextWeek:n("[У] dddd ["),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return n("[Минулої] dddd [").call(this);case 1:case 2:case 4:return n("[Минулого] dddd [").call(this)}},sameElse:"L"},relativeTime:{future:"за %s",past:"%s тому",s:"декілька секунд",ss:t,m:t,mm:t,h:"годину",hh:t,d:"день",dd:t,M:"місяць",MM:t,y:"рік",yy:t},meridiemParse:/ночі|ранку|дня|вечора/,isPM:function(e){return/^(дня|вечора)$/.test(e)},meridiem:function(e,t,n){return e<4?"ночі":e<12?"ранку":e<17?"дня":"вечора"},dayOfMonthOrdinalParse:/\d{1,2}-(й|го)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":case"w":case"W":return e+"-й";case"D":return e+"-го";default:return e}},week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t=["جنوری","فروری","مارچ","اپریل","مئی","جون","جولائی","اگست","ستمبر","اکتوبر","نومبر","دسمبر"],n=["اتوار","پیر","منگل","بدھ","جمعرات","جمعہ","ہفتہ"];e.defineLocale("ur",{months:t,monthsShort:t,weekdays:n,weekdaysShort:n,weekdaysMin:n,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd، D MMMM YYYY HH:mm"},meridiemParse:/صبح|شام/,isPM:function(e){return"شام"===e},meridiem:function(e,t,n){return e<12?"صبح":"شام"},calendar:{sameDay:"[آج بوقت] LT",nextDay:"[کل بوقت] LT",nextWeek:"dddd [بوقت] LT",lastDay:"[گذشتہ روز بوقت] LT",lastWeek:"[گذشتہ] dddd [بوقت] LT",sameElse:"L"},relativeTime:{future:"%s بعد",past:"%s قبل",s:"چند سیکنڈ",ss:"%d سیکنڈ",m:"ایک منٹ",mm:"%d منٹ",h:"ایک گھنٹہ",hh:"%d گھنٹے",d:"ایک دن",dd:"%d دن",M:"ایک ماہ",MM:"%d ماہ",y:"ایک سال",yy:"%d سال"},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("uz",{months:"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_"),monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба".split("_"),weekdaysShort:"Якш_Душ_Сеш_Чор_Пай_Жум_Шан".split("_"),weekdaysMin:"Як_Ду_Се_Чо_Па_Жу_Ша".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Бугун соат] LT [да]",nextDay:"[Эртага] LT [да]",nextWeek:"dddd [куни соат] LT [да]",lastDay:"[Кеча соат] LT [да]",lastWeek:"[Утган] dddd [куни соат] LT [да]",sameElse:"L"},relativeTime:{future:"Якин %s ичида",past:"Бир неча %s олдин",s:"фурсат",ss:"%d фурсат",m:"бир дакика",mm:"%d дакика",h:"бир соат",hh:"%d соат",d:"бир кун",dd:"%d кун",M:"бир ой",MM:"%d ой",y:"бир йил",yy:"%d йил"},week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("uz-latn",{months:"Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr".split("_"),monthsShort:"Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek".split("_"),weekdays:"Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba".split("_"),weekdaysShort:"Yak_Dush_Sesh_Chor_Pay_Jum_Shan".split("_"),weekdaysMin:"Ya_Du_Se_Cho_Pa_Ju_Sha".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Bugun soat] LT [da]",nextDay:"[Ertaga] LT [da]",nextWeek:"dddd [kuni soat] LT [da]",lastDay:"[Kecha soat] LT [da]",lastWeek:"[O'tgan] dddd [kuni soat] LT [da]",sameElse:"L"},relativeTime:{future:"Yaqin %s ichida",past:"Bir necha %s oldin",s:"soniya",ss:"%d soniya",m:"bir daqiqa",mm:"%d daqiqa",h:"bir soat",hh:"%d soat",d:"bir kun",dd:"%d kun",M:"bir oy",MM:"%d oy",y:"bir yil",yy:"%d yil"},week:{dow:1,doy:7}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("vi",{months:"tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12".split("_"),monthsShort:"Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12".split("_"),monthsParseExact:!0,weekdays:"chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy".split("_"),weekdaysShort:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysMin:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysParseExact:!0,meridiemParse:/sa|ch/i,isPM:function(e){return/^ch$/i.test(e)},meridiem:function(e,t,n){return e<12?n?"sa":"SA":n?"ch":"CH"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [năm] YYYY",LLL:"D MMMM [năm] YYYY HH:mm",LLLL:"dddd, D MMMM [năm] YYYY HH:mm",l:"DD/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[Hôm nay lúc] LT",nextDay:"[Ngày mai lúc] LT",nextWeek:"dddd [tuần tới lúc] LT",lastDay:"[Hôm qua lúc] LT",lastWeek:"dddd [tuần trước lúc] LT",sameElse:"L"},relativeTime:{future:"%s tới",past:"%s trước",s:"vài giây",ss:"%d giây",m:"một phút",mm:"%d phút",h:"một giờ",hh:"%d giờ",d:"một ngày",dd:"%d ngày",M:"một tháng",MM:"%d tháng",y:"một năm",yy:"%d năm"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("x-pseudo",{months:"J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér".split("_"),monthsShort:"J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc".split("_"),monthsParseExact:!0,weekdays:"S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý".split("_"),weekdaysShort:"S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát".split("_"),weekdaysMin:"S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[T~ódá~ý át] LT",nextDay:"[T~ómó~rró~w át] LT",nextWeek:"dddd [át] LT",lastDay:"[Ý~ést~érdá~ý át] LT",lastWeek:"[L~ást] dddd [át] LT",sameElse:"L"},relativeTime:{future:"í~ñ %s",past:"%s á~gó",s:"á ~féw ~sécó~ñds",ss:"%d s~écóñ~ds",m:"á ~míñ~úté",mm:"%d m~íñú~tés",h:"á~ñ hó~úr",hh:"%d h~óúrs",d:"á ~dáý",dd:"%d d~áýs",M:"á ~móñ~th",MM:"%d m~óñt~hs",y:"á ~ýéár",yy:"%d ý~éárs"},dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("yo",{months:"Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀".split("_"),monthsShort:"Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀".split("_"),weekdays:"Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta".split("_"),weekdaysShort:"Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá".split("_"),weekdaysMin:"Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Ònì ni] LT",nextDay:"[Ọ̀la ni] LT",nextWeek:"dddd [Ọsẹ̀ tón'bọ] [ni] LT",lastDay:"[Àna ni] LT",lastWeek:"dddd [Ọsẹ̀ tólọ́] [ni] LT",sameElse:"L"},relativeTime:{future:"ní %s",past:"%s kọjá",s:"ìsẹjú aayá die",ss:"aayá %d",m:"ìsẹjú kan",mm:"ìsẹjú %d",h:"wákati kan",hh:"wákati %d",d:"ọjọ́ kan",dd:"ọjọ́ %d",M:"osù kan",MM:"osù %d",y:"ọdún kan",yy:"ọdún %d"},dayOfMonthOrdinalParse:/ọjọ́\s\d{1,2}/,ordinal:"ọjọ́ %d",week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("zh-cn",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah点mm分",LLLL:"YYYY年M月D日ddddAh点mm分",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"下午"===t||"晚上"===t?e+12:e>=11?e:e+12},meridiem:function(e,t,n){var r=100*e+t;return r<600?"凌晨":r<900?"早上":r<1130?"上午":r<1230?"中午":r<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:function(e){return e.week()!==this.week()?"[下]dddLT":"[本]dddLT"},lastDay:"[昨天]LT",lastWeek:function(e){return this.week()!==e.week()?"[上]dddLT":"[本]dddLT"},sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|周)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"周";default:return e}},relativeTime:{future:"%s后",past:"%s前",s:"几秒",ss:"%d 秒",m:"1 分钟",mm:"%d 分钟",h:"1 小时",hh:"%d 小时",d:"1 天",dd:"%d 天",M:"1 个月",MM:"%d 个月",y:"1 年",yy:"%d 年"},week:{dow:1,doy:4}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("zh-hk",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"中午"===t?e>=11?e:e+12:"下午"===t||"晚上"===t?e+12:void 0},meridiem:function(e,t,n){var r=100*e+t;return r<600?"凌晨":r<900?"早上":r<1200?"上午":1200===r?"中午":r<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"週";default:return e}},relativeTime:{future:"%s後",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("zh-mo",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"D/M/YYYY",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"中午"===t?e>=11?e:e+12:"下午"===t||"晚上"===t?e+12:void 0},meridiem:function(e,t,n){var r=100*e+t;return r<600?"凌晨":r<900?"早上":r<1130?"上午":r<1230?"中午":r<1800?"下午":"晚上"},calendar:{sameDay:"[今天] LT",nextDay:"[明天] LT",nextWeek:"[下]dddd LT",lastDay:"[昨天] LT",lastWeek:"[上]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"週";default:return e}},relativeTime:{future:"%s內",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}})}(n(2))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("zh-tw",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"中午"===t?e>=11?e:e+12:"下午"===t||"晚上"===t?e+12:void 0},meridiem:function(e,t,n){var r=100*e+t;return r<600?"凌晨":r<900?"早上":r<1130?"上午":r<1230?"中午":r<1800?"下午":"晚上"},calendar:{sameDay:"[今天] LT",nextDay:"[明天] LT",nextWeek:"[下]dddd LT",lastDay:"[昨天] LT",lastWeek:"[上]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"週";default:return e}},relativeTime:{future:"%s後",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}})}(n(2))},function(e,t,n){"use strict";t.__esModule=!0;var r=o(n(0)),a=o(n(356));function o(e){return e&&e.__esModule?e:{default:e}}t.default=r.default.createContext||a.default,e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=c;var r,a=(r=n(373))&&r.__esModule?r:{default:r};var o=0,i={};function c(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=o++,r=t;function c(){(r-=1)<=0?(e(),delete i[n]):i[n]=(0,a.default)(c)}return i[n]=(0,a.default)(c),n}c.cancel=function(e){void 0!==e&&(a.default.cancel(i[e]),delete i[e])},c.ids=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"Row",{enumerable:!0,get:function(){return r.default}}),Object.defineProperty(t,"Col",{enumerable:!0,get:function(){return a.default}});var r=o(n(380)),a=o(n(386));function o(e){return e&&e.__esModule?e:{default:e}}},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=(0,((r=n(245))&&r.__esModule?r:{default:r}).default)({});t.default=a},function(e,t){e.exports={isFunction:function(e){return"function"==typeof e},isArray:function(e){return"[object Array]"===Object.prototype.toString.apply(e)},each:function(e,t){for(var n=0,r=e.length;n<r&&!1!==t(e[n],n);n++);}}},function(e,t){e.exports=function(e,t){if(e.indexOf)return e.indexOf(t);for(var n=0;n<e.length;++n)if(e[n]===t)return n;return-1}},function(e,t){e.exports=function(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){"use strict";n.r(t),n.d(t,"default",(function(){return b}));var r=n(12),a=n.n(r),o=n(9),i=n.n(o),c=n(26),s=n.n(c),l=n(8),u=n.n(l),d=n(14),f=n.n(d),h=n(6),m=n.n(h),p=n(10),v=n.n(p),_=n(0),y=n(28),M={primaryColor:"#333",secondaryColor:"#E6E6E6"},g=function(e){function t(){return u()(this,t),m()(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return v()(t,e),f()(t,[{key:"render",value:function(){var e,n=this.props,r=n.type,o=n.className,c=n.onClick,l=n.style,u=n.primaryColor,d=n.secondaryColor,f=s()(n,["type","className","onClick","style","primaryColor","secondaryColor"]),h=void 0,m=M;if(u&&(m={primaryColor:u,secondaryColor:d||Object(y.c)(u)}),Object(y.d)(r))h=r;else if("string"==typeof r&&!(h=t.get(r,m)))return null;return h?(h&&"function"==typeof h.icon&&(h=i()({},h,{icon:h.icon(m.primaryColor,m.secondaryColor)})),Object(y.b)(h.icon,"svg-"+h.name,i()((e={className:o,onClick:c,style:l},a()(e,"data-icon",h.name),a()(e,"width","1em"),a()(e,"height","1em"),a()(e,"fill","currentColor"),a()(e,"aria-hidden","true"),a()(e,"focusable","false"),e),f))):(Object(y.e)("type should be string or icon definiton, but got "+r),null)}}],[{key:"add",value:function(){for(var e=this,t=arguments.length,n=Array(t),r=0;r<t;r++)n[r]=arguments[r];n.forEach((function(t){e.definitions.set(Object(y.f)(t.name,t.theme),t)}))}},{key:"clear",value:function(){this.definitions.clear()}},{key:"get",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:M;if(e){var n=this.definitions.get(e);return n&&"function"==typeof n.icon&&(n=i()({},n,{icon:n.icon(t.primaryColor,t.secondaryColor)})),n}}},{key:"setTwoToneColors",value:function(e){var t=e.primaryColor,n=e.secondaryColor;M.primaryColor=t,M.secondaryColor=n||Object(y.c)(t)}},{key:"getTwoToneColors",value:function(){return i()({},M)}}]),t}(_.Component);g.displayName="IconReact",g.definitions=new y.a;var b=g},function(e,t){function n(e,t,n,r,a,o,i){try{var c=e[o](i),s=c.value}catch(e){return void n(e)}c.done?t(s):Promise.resolve(s).then(r,a)}e.exports=function(e){return function(){var t=this,r=arguments;return new Promise((function(a,o){var i=e.apply(t,r);function c(e){n(i,a,o,c,s,"next",e)}function s(e){n(i,a,o,c,s,"throw",e)}c(void 0)}))}},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){var r=n(271),a=n(272),o=n(85),i=n(273);e.exports=function(e){return r(e)||a(e)||o(e)||i()},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){var r;!function(){"use strict";var a={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function o(e){return c(l(e),arguments)}function i(e,t){return o.apply(null,[e].concat(t||[]))}function c(e,t){var n,r,i,c,s,l,u,d,f,h=1,m=e.length,p="";for(r=0;r<m;r++)if("string"==typeof e[r])p+=e[r];else if("object"==typeof e[r]){if((c=e[r]).keys)for(n=t[h],i=0;i<c.keys.length;i++){if(null==n)throw new Error(o('[sprintf] Cannot access property "%s" of undefined value "%s"',c.keys[i],c.keys[i-1]));n=n[c.keys[i]]}else n=c.param_no?t[c.param_no]:t[h++];if(a.not_type.test(c.type)&&a.not_primitive.test(c.type)&&n instanceof Function&&(n=n()),a.numeric_arg.test(c.type)&&"number"!=typeof n&&isNaN(n))throw new TypeError(o("[sprintf] expecting number but found %T",n));switch(a.number.test(c.type)&&(d=n>=0),c.type){case"b":n=parseInt(n,10).toString(2);break;case"c":n=String.fromCharCode(parseInt(n,10));break;case"d":case"i":n=parseInt(n,10);break;case"j":n=JSON.stringify(n,null,c.width?parseInt(c.width):0);break;case"e":n=c.precision?parseFloat(n).toExponential(c.precision):parseFloat(n).toExponential();break;case"f":n=c.precision?parseFloat(n).toFixed(c.precision):parseFloat(n);break;case"g":n=c.precision?String(Number(n.toPrecision(c.precision))):parseFloat(n);break;case"o":n=(parseInt(n,10)>>>0).toString(8);break;case"s":n=String(n),n=c.precision?n.substring(0,c.precision):n;break;case"t":n=String(!!n),n=c.precision?n.substring(0,c.precision):n;break;case"T":n=Object.prototype.toString.call(n).slice(8,-1).toLowerCase(),n=c.precision?n.substring(0,c.precision):n;break;case"u":n=parseInt(n,10)>>>0;break;case"v":n=n.valueOf(),n=c.precision?n.substring(0,c.precision):n;break;case"x":n=(parseInt(n,10)>>>0).toString(16);break;case"X":n=(parseInt(n,10)>>>0).toString(16).toUpperCase()}a.json.test(c.type)?p+=n:(!a.number.test(c.type)||d&&!c.sign?f="":(f=d?"+":"-",n=n.toString().replace(a.sign,"")),l=c.pad_char?"0"===c.pad_char?"0":c.pad_char.charAt(1):" ",u=c.width-(f+n).length,s=c.width&&u>0?l.repeat(u):"",p+=c.align?f+n+s:"0"===l?f+s+n:s+f+n)}return p}var s=Object.create(null);function l(e){if(s[e])return s[e];for(var t,n=e,r=[],o=0;n;){if(null!==(t=a.text.exec(n)))r.push(t[0]);else if(null!==(t=a.modulo.exec(n)))r.push("%");else{if(null===(t=a.placeholder.exec(n)))throw new SyntaxError("[sprintf] unexpected placeholder");if(t[2]){o|=1;var i=[],c=t[2],l=[];if(null===(l=a.key.exec(c)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(i.push(l[1]);""!==(c=c.substring(l[0].length));)if(null!==(l=a.key_access.exec(c)))i.push(l[1]);else{if(null===(l=a.index_access.exec(c)))throw new SyntaxError("[sprintf] failed to parse named argument key");i.push(l[1])}t[2]=i}else o|=2;if(3===o)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");r.push({placeholder:t[0],param_no:t[1],keys:t[2],sign:t[3],pad_char:t[4],align:t[5],width:t[6],precision:t[7],type:t[8]})}n=n.substring(t[0].length)}return s[e]=r}t.sprintf=o,t.vsprintf=i,"undefined"!=typeof window&&(window.sprintf=o,window.vsprintf=i,void 0===(r=function(){return{sprintf:o,vsprintf:i}}.call(t,n,t,e))||(e.exports=r))}()},function(e,t,n){ /** @license ISC License (c) copyright 2016 original and current authors */ e.exports=n(87)},function(e,t){function n(e,t,n){var r,a,o,i,c;function s(){var l=Date.now()-i;l<t&&l>=0?r=setTimeout(s,t-l):(r=null,n||(c=e.apply(o,a),o=a=null))}null==t&&(t=100);var l=function(){o=this,a=arguments,i=Date.now();var l=n&&!r;return r||(r=setTimeout(s,t)),l&&(c=e.apply(o,a),o=a=null),c};return l.clear=function(){r&&(clearTimeout(r),r=null)},l.flush=function(){r&&(c=e.apply(o,a),o=a=null,clearTimeout(r),r=null)},l}n.debounce=n,e.exports=n},function(e,t,n){"use strict";function r(e){var t,n=e.Symbol;return"function"==typeof n?n.observable?t=n.observable:(t=n("observable"),n.observable=t):t="@@observable",t}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(339));t.generate=a.default;var o={red:"#F5222D",volcano:"#FA541C",orange:"#FA8C16",gold:"#FAAD14",yellow:"#FADB14",lime:"#A0D911",green:"#52C41A",cyan:"#13C2C2",blue:"#1890FF",geekblue:"#2F54EB",purple:"#722ED1",magenta:"#EB2F96",grey:"#666666"};t.presetPrimaryColors=o;var i={};t.presetPalettes=i,Object.keys(o).forEach((function(e){i[e]=a.default(o[e]),i[e].primary=i[e][6]}));var c=i.red;t.red=c;var s=i.volcano;t.volcano=s;var l=i.gold;t.gold=l;var u=i.yellow;t.yellow=u;var d=i.lime;t.lime=d;var f=i.green;t.green=f;var h=i.cyan;t.cyan=h;var m=i.blue;t.blue=m;var p=i.geekblue;t.geekblue=p;var v=i.purple;t.purple=v;var _=i.magenta;t.magenta=_;var y=i.grey;t.grey=y},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=o(n(376)),a=o(n(379));function o(e){return e&&e.__esModule?e:{default:e}}r.default.Group=a.default;var i=r.default;t.default=i},function(e,t){e.exports=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){function n(e,t,n,r,a,o,i){try{var c=e[o](i),s=c.value}catch(e){return void n(e)}c.done?t(s):Promise.resolve(s).then(r,a)}e.exports=function(e){return function(){var t=this,r=arguments;return new Promise((function(a,o){var i=e.apply(t,r);function c(e){n(i,a,o,c,s,"next",e)}function s(e){n(i,a,o,c,s,"throw",e)}c(void 0)}))}},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){"use strict";var r=n(387),a=n(45),o=n(388);function i(e,t){return t.encode?t.strict?r(e):encodeURIComponent(e):e}function c(e){var t=e.indexOf("?");return-1===t?"":e.slice(t+1)}function s(e,t){var n=function(e){var t;switch(e.arrayFormat){case"index":return function(e,n,r){t=/\[(\d*)\]$/.exec(e),e=e.replace(/\[\d*\]$/,""),t?(void 0===r[e]&&(r[e]={}),r[e][t[1]]=n):r[e]=n};case"bracket":return function(e,n,r){t=/(\[\])$/.exec(e),e=e.replace(/\[\]$/,""),t?void 0!==r[e]?r[e]=[].concat(r[e],n):r[e]=[n]:r[e]=n};default:return function(e,t,n){void 0!==n[e]?n[e]=[].concat(n[e],t):n[e]=t}}}(t=a({arrayFormat:"none"},t)),r=Object.create(null);return"string"!=typeof e?r:(e=e.trim().replace(/^[?#&]/,""))?(e.split("&").forEach((function(e){var t=e.replace(/\+/g," ").split("="),a=t.shift(),i=t.length>0?t.join("="):void 0;i=void 0===i?null:o(i),n(o(a),i,r)})),Object.keys(r).sort().reduce((function(e,t){var n=r[t];return Boolean(n)&&"object"==typeof n&&!Array.isArray(n)?e[t]=function e(t){return Array.isArray(t)?t.sort():"object"==typeof t?e(Object.keys(t)).sort((function(e,t){return Number(e)-Number(t)})).map((function(e){return t[e]})):t}(n):e[t]=n,e}),Object.create(null))):r}t.extract=c,t.parse=s,t.stringify=function(e,t){!1===(t=a({encode:!0,strict:!0,arrayFormat:"none"},t)).sort&&(t.sort=function(){});var n=function(e){switch(e.arrayFormat){case"index":return function(t,n,r){return null===n?[i(t,e),"[",r,"]"].join(""):[i(t,e),"[",i(r,e),"]=",i(n,e)].join("")};case"bracket":return function(t,n){return null===n?i(t,e):[i(t,e),"[]=",i(n,e)].join("")};default:return function(t,n){return null===n?i(t,e):[i(t,e),"=",i(n,e)].join("")}}}(t);return e?Object.keys(e).sort(t.sort).map((function(r){var a=e[r];if(void 0===a)return"";if(null===a)return i(r,t);if(Array.isArray(a)){var o=[];return a.slice().forEach((function(e){void 0!==e&&o.push(n(r,e,o.length))})),o.join("&")}return i(r,t)+"="+i(a,t)})).filter((function(e){return e.length>0})).join("&"):""},t.parseUrl=function(e,t){return{url:e.split("?")[0]||"",query:s(c(e),t)}}},function(e,t,n){try{var r=n(250)}catch(e){r=n(250)}var a=/\s+/,o=Object.prototype.toString;function i(e){if(!e||!e.nodeType)throw new Error("A DOM element reference is required");this.el=e,this.list=e.classList}e.exports=function(e){return new i(e)},i.prototype.add=function(e){if(this.list)return this.list.add(e),this;var t=this.array();return~r(t,e)||t.push(e),this.el.className=t.join(" "),this},i.prototype.remove=function(e){if("[object RegExp]"==o.call(e))return this.removeMatching(e);if(this.list)return this.list.remove(e),this;var t=this.array(),n=r(t,e);return~n&&t.splice(n,1),this.el.className=t.join(" "),this},i.prototype.removeMatching=function(e){for(var t=this.array(),n=0;n<t.length;n++)e.test(t[n])&&this.remove(t[n]);return this},i.prototype.toggle=function(e,t){return this.list?(void 0!==t?t!==this.list.toggle(e,t)&&this.list.toggle(e):this.list.toggle(e),this):(void 0!==t?t?this.add(e):this.remove(e):this.has(e)?this.remove(e):this.add(e),this)},i.prototype.array=function(){var e=(this.el.getAttribute("class")||"").replace(/^\s+|\s+$/g,"").split(a);return""===e[0]&&e.shift(),e},i.prototype.has=i.prototype.contains=function(e){return this.list?this.list.contains(e):!!~r(this.array(),e)}},function(e,t,n){var r=n(390),a=n(391),o=n(392),i=n(393);e.exports=function(e){return r(e)||a(e)||o(e)||i()},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,n,r){function a(t){var r=new o.default(t);n.call(e,r)}if(e.addEventListener){var i=(c=!1,"object"==typeof r?c=r.capture||!1:"boolean"==typeof r&&(c=r),e.addEventListener(t,a,r||!1),{v:{remove:function(){e.removeEventListener(t,a,c)}}});if("object"==typeof i)return i.v}else if(e.attachEvent)return e.attachEvent("on"+t,a),{remove:function(){e.detachEvent("on"+t,a)}};var c};var r,a=n(394),o=(r=a)&&r.__esModule?r:{default:r};e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==l(e)&&"function"!=typeof e)return{default:e};var t=s();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var o=r?Object.getOwnPropertyDescriptor(e,a):null;o&&(o.get||o.set)?Object.defineProperty(n,a,o):n[a]=e[a]}n.default=e,t&&t.set(e,n);return n}(n(0)),a=c(n(79)),o=n(18),i=c(n(37));function c(e){return e&&e.__esModule?e:{default:e}}function s(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return s=function(){return e},e}function l(e){return(l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function u(){return(u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function d(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function f(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function h(e,t){return(h=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function m(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=v(e);if(t){var a=v(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return p(this,n)}}function p(e,t){return!t||"object"!==l(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function v(e){return(v=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var _=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n},y=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&h(e,t)}(l,e);var t,n,c,s=m(l);function l(){var e;return d(this,l),(e=s.apply(this,arguments)).saveTooltip=function(t){e.tooltip=t},e.renderPopover=function(t){var n=t.getPrefixCls,o=e.props,i=o.prefixCls,c=_(o,["prefixCls"]);delete c.title;var s=n("popover",i);return r.createElement(a.default,u({},c,{prefixCls:s,ref:e.saveTooltip,overlay:e.getOverlay(s)}))},e}return t=l,(n=[{key:"getPopupDomNode",value:function(){return this.tooltip.getPopupDomNode()}},{key:"getOverlay",value:function(e){var t=this.props,n=t.title,a=t.content;return(0,i.default)(!("overlay"in this.props),"Popover","`overlay` is removed, please use `content` instead, see: https://u.ant.design/popover-content"),r.createElement("div",null,n&&r.createElement("div",{className:"".concat(e,"-title")},n),r.createElement("div",{className:"".concat(e,"-inner-content")},a))}},{key:"render",value:function(){return r.createElement(o.ConfigConsumer,null,this.renderPopover)}}])&&f(t.prototype,n),c&&f(t,c),l}(r.Component);t.default=y,y.defaultProps={placement:"top",transitionName:"zoom-big",trigger:"hover",mouseEnterDelay:.1,mouseLeaveDelay:.1,overlayStyle:{}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(399);t.XmlEntities=r.XmlEntities;var a=n(400);t.Html4Entities=a.Html4Entities;var o=n(401);t.Html5Entities=o.Html5Entities,t.AllHtmlEntities=o.Html5Entities},function(e,t,n){"use strict";n.d(t,"a",(function(){return b}));var r=n(0),a=n.n(r),o={};function i(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.url,n=void 0===t?"":t,r=e.method,a=void 0===r?"":r,o=e.responseType,i=void 0===o?"":o,c=e.body,s=void 0===c?"":c;return[n,a.toUpperCase(),i,s].join("||")}function c(e){var t=e.requestKey,n=e.res,r=e.err;(o[t]||[]).forEach((function(e){n?e.resolve(n):e.reject(r)})),o[t]=null}function s(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments[2],r=void 0,a=void 0;n?(r=n,a=t):t.responseType?(r=t,a={}):(r={},a=t);var s=r,l=s.requestKey,u=s.responseType,d=void 0===u?"":u,f=s.dedupe,h=void 0===f||f,m=l||i({url:e.url||e,method:a.method||e.method||"",body:a.body||e.body||""}),p=void 0;if(h){o[m]||(o[m]=[]);var v=o[m],_=Boolean(v.length),y={};if(p=new Promise((function(e,t){y.resolve=e,y.reject=t})),v.push(y),_)return p}var M=fetch(e,a).then((function(e){var t=void 0;return t=d instanceof Function?d(e):d||(204===e.status?"text":"json"),e[t]().then((function(t){if(e.data=t,!h)return e;c({requestKey:m,res:e})}),(function(){if(e.data=null,!h)return e;c({requestKey:m,res:e})}))}),(function(e){if(!h)return Promise.reject(e);c({requestKey:m,err:e})}));return h?p:M}var l=a.a.createContext(null);var u=function(e){var t=function(e,t){if(!e)return null;if(e instanceof Headers)return e.get(t);var n=t.toLowerCase(),r=Object.keys(e).find((function(e){return e.toLowerCase()===n}));return r?e[r]:null}(e.headers,"Content-Type");return t&&-1!==t.indexOf("application/json")?JSON.stringify(e.body):e.body},d=function(e){return"GET"===(e=e.toUpperCase())||"HEAD"===e||"OPTIONS"===e},f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},h="network-only",m="cache-and-network",p="exact-cache-and-network",v="cache-first",_=function(e){return console.error(e)},y=function(){return null};function M(e,t){switch(t.type){case"in-flight":return!0===e.fetching?e:f({},e,{fetching:!0});case"response":return f({},e,{error:null,fetching:t.payload.fetching,response:t.payload.response});case"error":return f({},e,{fetching:!1,error:t.payload.error});default:return e}}var g=function(e){return e};function b(e){var t=e.url,n=e.method,a=void 0===n?"GET":n,o=e.lazy,c=void 0===o?null:o,b=e.requestKey,L=void 0===b?null:b,z=e.init,w=void 0===z?{}:z,k=e.dedupeOptions,H=void 0===k?{}:k,T=e.cachePolicy,Y=void 0===T?null:T,S=e.cacheResponse,D=void 0===S?null:S,O=e.onError,x=void 0===O?_:O,C=e.onSuccess,V=void 0===C?y:C,j=e.refreshDoFetch,E=void 0===j?g:j,P=Object(r.useContext)(l),A=Object(r.useRef)(),N=null==c?!d(a):c,F=null===Y?function(e){return"GET"===(e=e.toUpperCase())||"HEAD"===e||"OPTIONS"===e?v:h}(a):Y,R=Object(r.useReducer)(M,{response:null,fetching:!N,error:null}),W=R[0],I=R[1],q=L||i(f({url:t,method:a.toUpperCase()},w));function U(){I({type:"in-flight"})}function B(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];I({type:"response",payload:{response:e,fetching:t}})}function J(e){I({type:"error",payload:{error:e}})}function G(){A.current&&A.current.abort()}function K(){return null!==D?D:d(a)}var $=Object(r.useCallback)((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};G(),A.current=new AbortController,U();var r=f({},w,e),o=f({},H,n);return s(r.url||t,f({},r,{method:a,signal:A.current.signal,body:r.body?u(r):void 0}),o).then((function(e){return e.ok?(K()&&P.set(q,e),B(e),V(e)):(J(e),x(e)),e})).catch((function(e){return A.current.signal.aborted||J(e),x(e),e})).finally((function(){A.current=null}))}),[E(q)]);return Object(r.useEffect)((function(){if(!0!==N){var e=P.get(q);if(F===v&&e)return V(e),B(e);F===m&&e&&(V(e),B(e,!0)),F===p&&(e?(V(e),B(e,!0)):B(null)),F===h&&B(null),$(w)}}),[q,N]),Object(r.useEffect)((function(){return function(){G()}}),[]),{response:W.response,data:W.response?W.response.data:null,fetching:W.fetching,error:W.error,requestKey:q,doFetch:$}}},function(e,t,n){e.exports=n(402)},function(e,t,n){var r=n(84);e.exports=function(e){if(Array.isArray(e))return r(e)},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){e.exports=function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){e.exports=function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){"use strict"; /** @license React v16.9.0 * react.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */var r=n(45),a="function"==typeof Symbol&&Symbol.for,o=a?Symbol.for("react.element"):60103,i=a?Symbol.for("react.portal"):60106,c=a?Symbol.for("react.fragment"):60107,s=a?Symbol.for("react.strict_mode"):60108,l=a?Symbol.for("react.profiler"):60114,u=a?Symbol.for("react.provider"):60109,d=a?Symbol.for("react.context"):60110,f=a?Symbol.for("react.forward_ref"):60112,h=a?Symbol.for("react.suspense"):60113,m=a?Symbol.for("react.suspense_list"):60120,p=a?Symbol.for("react.memo"):60115,v=a?Symbol.for("react.lazy"):60116;a&&Symbol.for("react.fundamental"),a&&Symbol.for("react.responder");var _="function"==typeof Symbol&&Symbol.iterator;function y(e){for(var t=e.message,n="https://reactjs.org/docs/error-decoder.html?invariant="+t,r=1;r<arguments.length;r++)n+="&args[]="+encodeURIComponent(arguments[r]);return e.message="Minified React error #"+t+"; visit "+n+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings. ",e}var M={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g={};function b(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||M}function L(){}function z(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||M}b.prototype.isReactComponent={},b.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw y(Error(85));this.updater.enqueueSetState(this,e,t,"setState")},b.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},L.prototype=b.prototype;var w=z.prototype=new L;w.constructor=z,r(w,b.prototype),w.isPureReactComponent=!0;var k={current:null},H={suspense:null},T={current:null},Y=Object.prototype.hasOwnProperty,S={key:!0,ref:!0,__self:!0,__source:!0};function D(e,t,n){var r=void 0,a={},i=null,c=null;if(null!=t)for(r in void 0!==t.ref&&(c=t.ref),void 0!==t.key&&(i=""+t.key),t)Y.call(t,r)&&!S.hasOwnProperty(r)&&(a[r]=t[r]);var s=arguments.length-2;if(1===s)a.children=n;else if(1<s){for(var l=Array(s),u=0;u<s;u++)l[u]=arguments[u+2];a.children=l}if(e&&e.defaultProps)for(r in s=e.defaultProps)void 0===a[r]&&(a[r]=s[r]);return{$$typeof:o,type:e,key:i,ref:c,props:a,_owner:T.current}}function O(e){return"object"==typeof e&&null!==e&&e.$$typeof===o}var x=/\/+/g,C=[];function V(e,t,n,r){if(C.length){var a=C.pop();return a.result=e,a.keyPrefix=t,a.func=n,a.context=r,a.count=0,a}return{result:e,keyPrefix:t,func:n,context:r,count:0}}function j(e){e.result=null,e.keyPrefix=null,e.func=null,e.context=null,e.count=0,10>C.length&&C.push(e)}function E(e,t,n){return null==e?0:function e(t,n,r,a){var c=typeof t;"undefined"!==c&&"boolean"!==c||(t=null);var s=!1;if(null===t)s=!0;else switch(c){case"string":case"number":s=!0;break;case"object":switch(t.$$typeof){case o:case i:s=!0}}if(s)return r(a,t,""===n?"."+P(t,0):n),1;if(s=0,n=""===n?".":n+":",Array.isArray(t))for(var l=0;l<t.length;l++){var u=n+P(c=t[l],l);s+=e(c,u,r,a)}else if(null===t||"object"!=typeof t?u=null:u="function"==typeof(u=_&&t[_]||t["@@iterator"])?u:null,"function"==typeof u)for(t=u.call(t),l=0;!(c=t.next()).done;)s+=e(c=c.value,u=n+P(c,l++),r,a);else if("object"===c)throw r=""+t,y(Error(31),"[object Object]"===r?"object with keys {"+Object.keys(t).join(", ")+"}":r,"");return s}(e,"",t,n)}function P(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+(""+e).replace(/[=:]/g,(function(e){return t[e]}))}(e.key):t.toString(36)}function A(e,t){e.func.call(e.context,t,e.count++)}function N(e,t,n){var r=e.result,a=e.keyPrefix;e=e.func.call(e.context,t,e.count++),Array.isArray(e)?F(e,r,n,(function(e){return e})):null!=e&&(O(e)&&(e=function(e,t){return{$$typeof:o,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(e,a+(!e.key||t&&t.key===e.key?"":(""+e.key).replace(x,"$&/")+"/")+n)),r.push(e))}function F(e,t,n,r,a){var o="";null!=n&&(o=(""+n).replace(x,"$&/")+"/"),E(e,N,t=V(t,o,r,a)),j(t)}function R(){var e=k.current;if(null===e)throw y(Error(321));return e}var W={Children:{map:function(e,t,n){if(null==e)return e;var r=[];return F(e,r,null,t,n),r},forEach:function(e,t,n){if(null==e)return e;E(e,A,t=V(null,null,t,n)),j(t)},count:function(e){return E(e,(function(){return null}),null)},toArray:function(e){var t=[];return F(e,t,null,(function(e){return e})),t},only:function(e){if(!O(e))throw y(Error(143));return e}},createRef:function(){return{current:null}},Component:b,PureComponent:z,createContext:function(e,t){return void 0===t&&(t=null),(e={$$typeof:d,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:u,_context:e},e.Consumer=e},forwardRef:function(e){return{$$typeof:f,render:e}},lazy:function(e){return{$$typeof:v,_ctor:e,_status:-1,_result:null}},memo:function(e,t){return{$$typeof:p,type:e,compare:void 0===t?null:t}},useCallback:function(e,t){return R().useCallback(e,t)},useContext:function(e,t){return R().useContext(e,t)},useEffect:function(e,t){return R().useEffect(e,t)},useImperativeHandle:function(e,t,n){return R().useImperativeHandle(e,t,n)},useDebugValue:function(){},useLayoutEffect:function(e,t){return R().useLayoutEffect(e,t)},useMemo:function(e,t){return R().useMemo(e,t)},useReducer:function(e,t,n){return R().useReducer(e,t,n)},useRef:function(e){return R().useRef(e)},useState:function(e){return R().useState(e)},Fragment:c,Profiler:l,StrictMode:s,Suspense:h,unstable_SuspenseList:m,createElement:D,cloneElement:function(e,t,n){if(null==e)throw y(Error(267),e);var a=void 0,i=r({},e.props),c=e.key,s=e.ref,l=e._owner;if(null!=t){void 0!==t.ref&&(s=t.ref,l=T.current),void 0!==t.key&&(c=""+t.key);var u=void 0;for(a in e.type&&e.type.defaultProps&&(u=e.type.defaultProps),t)Y.call(t,a)&&!S.hasOwnProperty(a)&&(i[a]=void 0===t[a]&&void 0!==u?u[a]:t[a])}if(1===(a=arguments.length-2))i.children=n;else if(1<a){u=Array(a);for(var d=0;d<a;d++)u[d]=arguments[d+2];i.children=u}return{$$typeof:o,type:e.type,key:c,ref:s,props:i,_owner:l}},createFactory:function(e){var t=D.bind(null,e);return t.type=e,t},isValidElement:O,version:"16.9.0",unstable_withSuspenseConfig:function(e,t){var n=H.suspense;H.suspense=void 0===t?null:t;try{e()}finally{H.suspense=n}},__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{ReactCurrentDispatcher:k,ReactCurrentBatchConfig:H,ReactCurrentOwner:T,IsSomeRendererActing:{current:!1},assign:r}},I={default:W},q=I&&W||I;e.exports=q.default||q},function(e,t,n){"use strict"; /** @license React v16.9.0 * react-dom.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */var r=n(0),a=n(45),o=n(276);function i(e){for(var t=e.message,n="https://reactjs.org/docs/error-decoder.html?invariant="+t,r=1;r<arguments.length;r++)n+="&args[]="+encodeURIComponent(arguments[r]);return e.message="Minified React error #"+t+"; visit "+n+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings. ",e}if(!r)throw i(Error(227));var c=null,s={};function l(){if(c)for(var e in s){var t=s[e],n=c.indexOf(e);if(!(-1<n))throw i(Error(96),e);if(!d[n]){if(!t.extractEvents)throw i(Error(97),e);for(var r in d[n]=t,n=t.eventTypes){var a=void 0,o=n[r],l=t,h=r;if(f.hasOwnProperty(h))throw i(Error(99),h);f[h]=o;var m=o.phasedRegistrationNames;if(m){for(a in m)m.hasOwnProperty(a)&&u(m[a],l,h);a=!0}else o.registrationName?(u(o.registrationName,l,h),a=!0):a=!1;if(!a)throw i(Error(98),r,e)}}}}function u(e,t,n){if(h[e])throw i(Error(100),e);h[e]=t,m[e]=t.eventTypes[n].dependencies}var d=[],f={},h={},m={};function p(e,t,n,r,a,o,i,c,s){var l=Array.prototype.slice.call(arguments,3);try{t.apply(n,l)}catch(e){this.onError(e)}}var v=!1,_=null,y=!1,M=null,g={onError:function(e){v=!0,_=e}};function b(e,t,n,r,a,o,i,c,s){v=!1,_=null,p.apply(g,arguments)}var L=null,z=null,w=null;function k(e,t,n){var r=e.type||"unknown-event";e.currentTarget=w(n),function(e,t,n,r,a,o,c,s,l){if(b.apply(this,arguments),v){if(!v)throw i(Error(198));var u=_;v=!1,_=null,y||(y=!0,M=u)}}(r,t,void 0,e),e.currentTarget=null}function H(e,t){if(null==t)throw i(Error(30));return null==e?t:Array.isArray(e)?Array.isArray(t)?(e.push.apply(e,t),e):(e.push(t),e):Array.isArray(t)?[e].concat(t):[e,t]}function T(e,t,n){Array.isArray(e)?e.forEach(t,n):e&&t.call(n,e)}var Y=null;function S(e){if(e){var t=e._dispatchListeners,n=e._dispatchInstances;if(Array.isArray(t))for(var r=0;r<t.length&&!e.isPropagationStopped();r++)k(e,t[r],n[r]);else t&&k(e,t,n);e._dispatchListeners=null,e._dispatchInstances=null,e.isPersistent()||e.constructor.release(e)}}function D(e){if(null!==e&&(Y=H(Y,e)),e=Y,Y=null,e){if(T(e,S),Y)throw i(Error(95));if(y)throw e=M,y=!1,M=null,e}}var O={injectEventPluginOrder:function(e){if(c)throw i(Error(101));c=Array.prototype.slice.call(e),l()},injectEventPluginsByName:function(e){var t,n=!1;for(t in e)if(e.hasOwnProperty(t)){var r=e[t];if(!s.hasOwnProperty(t)||s[t]!==r){if(s[t])throw i(Error(102),t);s[t]=r,n=!0}}n&&l()}};function x(e,t){var n=e.stateNode;if(!n)return null;var r=L(n);if(!r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw i(Error(231),t,typeof n);return n}var C=Math.random().toString(36).slice(2),V="__reactInternalInstance$"+C,j="__reactEventHandlers$"+C;function E(e){if(e[V])return e[V];for(;!e[V];){if(!e.parentNode)return null;e=e.parentNode}return 5===(e=e[V]).tag||6===e.tag?e:null}function P(e){return!(e=e[V])||5!==e.tag&&6!==e.tag?null:e}function A(e){if(5===e.tag||6===e.tag)return e.stateNode;throw i(Error(33))}function N(e){return e[j]||null}function F(e){do{e=e.return}while(e&&5!==e.tag);return e||null}function R(e,t,n){(t=x(e,n.dispatchConfig.phasedRegistrationNames[t]))&&(n._dispatchListeners=H(n._dispatchListeners,t),n._dispatchInstances=H(n._dispatchInstances,e))}function W(e){if(e&&e.dispatchConfig.phasedRegistrationNames){for(var t=e._targetInst,n=[];t;)n.push(t),t=F(t);for(t=n.length;0<t--;)R(n[t],"captured",e);for(t=0;t<n.length;t++)R(n[t],"bubbled",e)}}function I(e,t,n){e&&n&&n.dispatchConfig.registrationName&&(t=x(e,n.dispatchConfig.registrationName))&&(n._dispatchListeners=H(n._dispatchListeners,t),n._dispatchInstances=H(n._dispatchInstances,e))}function q(e){e&&e.dispatchConfig.registrationName&&I(e._targetInst,null,e)}function U(e){T(e,W)}var B=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement);function J(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var G={animationend:J("Animation","AnimationEnd"),animationiteration:J("Animation","AnimationIteration"),animationstart:J("Animation","AnimationStart"),transitionend:J("Transition","TransitionEnd")},K={},$={};function Q(e){if(K[e])return K[e];if(!G[e])return e;var t,n=G[e];for(t in n)if(n.hasOwnProperty(t)&&t in $)return K[e]=n[t];return e}B&&($=document.createElement("div").style,"AnimationEvent"in window||(delete G.animationend.animation,delete G.animationiteration.animation,delete G.animationstart.animation),"TransitionEvent"in window||delete G.transitionend.transition);var X=Q("animationend"),Z=Q("animationiteration"),ee=Q("animationstart"),te=Q("transitionend"),ne="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),re=null,ae=null,oe=null;function ie(){if(oe)return oe;var e,t,n=ae,r=n.length,a="value"in re?re.value:re.textContent,o=a.length;for(e=0;e<r&&n[e]===a[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===a[o-t];t++);return oe=a.slice(e,1<t?1-t:void 0)}function ce(){return!0}function se(){return!1}function le(e,t,n,r){for(var a in this.dispatchConfig=e,this._targetInst=t,this.nativeEvent=n,e=this.constructor.Interface)e.hasOwnProperty(a)&&((t=e[a])?this[a]=t(n):"target"===a?this.target=r:this[a]=n[a]);return this.isDefaultPrevented=(null!=n.defaultPrevented?n.defaultPrevented:!1===n.returnValue)?ce:se,this.isPropagationStopped=se,this}function ue(e,t,n,r){if(this.eventPool.length){var a=this.eventPool.pop();return this.call(a,e,t,n,r),a}return new this(e,t,n,r)}function de(e){if(!(e instanceof this))throw i(Error(279));e.destructor(),10>this.eventPool.length&&this.eventPool.push(e)}function fe(e){e.eventPool=[],e.getPooled=ue,e.release=de}a(le.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=ce)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=ce)},persist:function(){this.isPersistent=ce},isPersistent:se,destructor:function(){var e,t=this.constructor.Interface;for(e in t)this[e]=null;this.nativeEvent=this._targetInst=this.dispatchConfig=null,this.isPropagationStopped=this.isDefaultPrevented=se,this._dispatchInstances=this._dispatchListeners=null}}),le.Interface={type:null,target:null,currentTarget:function(){return null},eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null},le.extend=function(e){function t(){}function n(){return r.apply(this,arguments)}var r=this;t.prototype=r.prototype;var o=new t;return a(o,n.prototype),n.prototype=o,n.prototype.constructor=n,n.Interface=a({},r.Interface,e),n.extend=r.extend,fe(n),n},fe(le);var he=le.extend({data:null}),me=le.extend({data:null}),pe=[9,13,27,32],ve=B&&"CompositionEvent"in window,_e=null;B&&"documentMode"in document&&(_e=document.documentMode);var ye=B&&"TextEvent"in window&&!_e,Me=B&&(!ve||_e&&8<_e&&11>=_e),ge=String.fromCharCode(32),be={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["compositionend","keypress","textInput","paste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:"blur compositionend keydown keypress keyup mousedown".split(" ")},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:"blur compositionstart keydown keypress keyup mousedown".split(" ")},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:"blur compositionupdate keydown keypress keyup mousedown".split(" ")}},Le=!1;function ze(e,t){switch(e){case"keyup":return-1!==pe.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"blur":return!0;default:return!1}}function we(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var ke=!1;var He={eventTypes:be,extractEvents:function(e,t,n,r){var a=void 0,o=void 0;if(ve)e:{switch(e){case"compositionstart":a=be.compositionStart;break e;case"compositionend":a=be.compositionEnd;break e;case"compositionupdate":a=be.compositionUpdate;break e}a=void 0}else ke?ze(e,n)&&(a=be.compositionEnd):"keydown"===e&&229===n.keyCode&&(a=be.compositionStart);return a?(Me&&"ko"!==n.locale&&(ke||a!==be.compositionStart?a===be.compositionEnd&&ke&&(o=ie()):(ae="value"in(re=r)?re.value:re.textContent,ke=!0)),a=he.getPooled(a,t,n,r),o?a.data=o:null!==(o=we(n))&&(a.data=o),U(a),o=a):o=null,(e=ye?function(e,t){switch(e){case"compositionend":return we(t);case"keypress":return 32!==t.which?null:(Le=!0,ge);case"textInput":return(e=t.data)===ge&&Le?null:e;default:return null}}(e,n):function(e,t){if(ke)return"compositionend"===e||!ve&&ze(e,t)?(e=ie(),oe=ae=re=null,ke=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return Me&&"ko"!==t.locale?null:t.data;default:return null}}(e,n))?((t=me.getPooled(be.beforeInput,t,n,r)).data=e,U(t)):t=null,null===o?t:null===t?o:[o,t]}},Te=null,Ye=null,Se=null;function De(e){if(e=z(e)){if("function"!=typeof Te)throw i(Error(280));var t=L(e.stateNode);Te(e.stateNode,e.type,t)}}function Oe(e){Ye?Se?Se.push(e):Se=[e]:Ye=e}function xe(){if(Ye){var e=Ye,t=Se;if(Se=Ye=null,De(e),t)for(e=0;e<t.length;e++)De(t[e])}}function Ce(e,t){return e(t)}function Ve(e,t,n,r){return e(t,n,r)}function je(){}var Ee=Ce,Pe=!1;function Ae(){null===Ye&&null===Se||(je(),xe())}var Ne={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Fe(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Ne[e.type]:"textarea"===t}function Re(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}function We(e){if(!B)return!1;var t=(e="on"+e)in document;return t||((t=document.createElement("div")).setAttribute(e,"return;"),t="function"==typeof t[e]),t}function Ie(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function qe(e){e._valueTracker||(e._valueTracker=function(e){var t=Ie(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var a=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(e){r=""+e,o.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function Ue(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=Ie(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}var Be=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;Be.hasOwnProperty("ReactCurrentDispatcher")||(Be.ReactCurrentDispatcher={current:null}),Be.hasOwnProperty("ReactCurrentBatchConfig")||(Be.ReactCurrentBatchConfig={suspense:null});var Je=/^(.*)[\\\/]/,Ge="function"==typeof Symbol&&Symbol.for,Ke=Ge?Symbol.for("react.element"):60103,$e=Ge?Symbol.for("react.portal"):60106,Qe=Ge?Symbol.for("react.fragment"):60107,Xe=Ge?Symbol.for("react.strict_mode"):60108,Ze=Ge?Symbol.for("react.profiler"):60114,et=Ge?Symbol.for("react.provider"):60109,tt=Ge?Symbol.for("react.context"):60110,nt=Ge?Symbol.for("react.concurrent_mode"):60111,rt=Ge?Symbol.for("react.forward_ref"):60112,at=Ge?Symbol.for("react.suspense"):60113,ot=Ge?Symbol.for("react.suspense_list"):60120,it=Ge?Symbol.for("react.memo"):60115,ct=Ge?Symbol.for("react.lazy"):60116;Ge&&Symbol.for("react.fundamental"),Ge&&Symbol.for("react.responder");var st="function"==typeof Symbol&&Symbol.iterator;function lt(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=st&&e[st]||e["@@iterator"])?e:null}function ut(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case Qe:return"Fragment";case $e:return"Portal";case Ze:return"Profiler";case Xe:return"StrictMode";case at:return"Suspense";case ot:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case tt:return"Context.Consumer";case et:return"Context.Provider";case rt:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case it:return ut(e.type);case ct:if(e=1===e._status?e._result:null)return ut(e)}return null}function dt(e){var t="";do{e:switch(e.tag){case 3:case 4:case 6:case 7:case 10:case 9:var n="";break e;default:var r=e._debugOwner,a=e._debugSource,o=ut(e.type);n=null,r&&(n=ut(r.type)),r=o,o="",a?o=" (at "+a.fileName.replace(Je,"")+":"+a.lineNumber+")":n&&(o=" (created by "+n+")"),n="\n in "+(r||"Unknown")+o}t+=n,e=e.return}while(e);return t}var ft=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,ht=Object.prototype.hasOwnProperty,mt={},pt={};function vt(e,t,n,r,a,o){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o}var _t={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){_t[e]=new vt(e,0,!1,e,null,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];_t[t]=new vt(t,1,!1,e[1],null,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){_t[e]=new vt(e,2,!1,e.toLowerCase(),null,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){_t[e]=new vt(e,2,!1,e,null,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){_t[e]=new vt(e,3,!1,e.toLowerCase(),null,!1)})),["checked","multiple","muted","selected"].forEach((function(e){_t[e]=new vt(e,3,!0,e,null,!1)})),["capture","download"].forEach((function(e){_t[e]=new vt(e,4,!1,e,null,!1)})),["cols","rows","size","span"].forEach((function(e){_t[e]=new vt(e,6,!1,e,null,!1)})),["rowSpan","start"].forEach((function(e){_t[e]=new vt(e,5,!1,e.toLowerCase(),null,!1)}));var yt=/[\-:]([a-z])/g;function Mt(e){return e[1].toUpperCase()}function gt(e,t,n,r){var a=_t.hasOwnProperty(t)?_t[t]:null;(null!==a?0===a.type:!r&&(2<t.length&&("o"===t[0]||"O"===t[0])&&("n"===t[1]||"N"===t[1])))||(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,a,r)&&(n=null),r||null===a?function(e){return!!ht.call(pt,e)||!ht.call(mt,e)&&(ft.test(e)?pt[e]=!0:(mt[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):a.mustUseProperty?e[a.propertyName]=null===n?3!==a.type&&"":n:(t=a.attributeName,r=a.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(a=a.type)||4===a&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}function bt(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function Lt(e,t){var n=t.checked;return a({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function zt(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=bt(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function wt(e,t){null!=(t=t.checked)&>(e,"checked",t,!1)}function kt(e,t){wt(e,t);var n=bt(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?Tt(e,t.type,n):t.hasOwnProperty("defaultValue")&&Tt(e,t.type,bt(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function Ht(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!e.defaultChecked,e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function Tt(e,t,n){"number"===t&&e.ownerDocument.activeElement===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(yt,Mt);_t[t]=new vt(t,1,!1,e,null,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(yt,Mt);_t[t]=new vt(t,1,!1,e,"http://www.w3.org/1999/xlink",!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(yt,Mt);_t[t]=new vt(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1)})),["tabIndex","crossOrigin"].forEach((function(e){_t[e]=new vt(e,1,!1,e.toLowerCase(),null,!1)})),_t.xlinkHref=new vt("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0),["src","href","action","formAction"].forEach((function(e){_t[e]=new vt(e,1,!1,e.toLowerCase(),null,!0)}));var Yt={change:{phasedRegistrationNames:{bubbled:"onChange",captured:"onChangeCapture"},dependencies:"blur change click focus input keydown keyup selectionchange".split(" ")}};function St(e,t,n){return(e=le.getPooled(Yt.change,e,t,n)).type="change",Oe(n),U(e),e}var Dt=null,Ot=null;function xt(e){D(e)}function Ct(e){if(Ue(A(e)))return e}function Vt(e,t){if("change"===e)return t}var jt=!1;function Et(){Dt&&(Dt.detachEvent("onpropertychange",Pt),Ot=Dt=null)}function Pt(e){if("value"===e.propertyName&&Ct(Ot))if(e=St(Ot,e,Re(e)),Pe)D(e);else{Pe=!0;try{Ce(xt,e)}finally{Pe=!1,Ae()}}}function At(e,t,n){"focus"===e?(Et(),Ot=n,(Dt=t).attachEvent("onpropertychange",Pt)):"blur"===e&&Et()}function Nt(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Ct(Ot)}function Ft(e,t){if("click"===e)return Ct(t)}function Rt(e,t){if("input"===e||"change"===e)return Ct(t)}B&&(jt=We("input")&&(!document.documentMode||9<document.documentMode));var Wt={eventTypes:Yt,_isInputEventSupported:jt,extractEvents:function(e,t,n,r){var a=t?A(t):window,o=void 0,i=void 0,c=a.nodeName&&a.nodeName.toLowerCase();if("select"===c||"input"===c&&"file"===a.type?o=Vt:Fe(a)?jt?o=Rt:(o=Nt,i=At):(c=a.nodeName)&&"input"===c.toLowerCase()&&("checkbox"===a.type||"radio"===a.type)&&(o=Ft),o&&(o=o(e,t)))return St(o,n,r);i&&i(e,a,t),"blur"===e&&(e=a._wrapperState)&&e.controlled&&"number"===a.type&&Tt(a,"number",a.value)}},It=le.extend({view:null,detail:null}),qt={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Ut(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=qt[e])&&!!t[e]}function Bt(){return Ut}var Jt=0,Gt=0,Kt=!1,$t=!1,Qt=It.extend({screenX:null,screenY:null,clientX:null,clientY:null,pageX:null,pageY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:Bt,button:null,buttons:null,relatedTarget:function(e){return e.relatedTarget||(e.fromElement===e.srcElement?e.toElement:e.fromElement)},movementX:function(e){if("movementX"in e)return e.movementX;var t=Jt;return Jt=e.screenX,Kt?"mousemove"===e.type?e.screenX-t:0:(Kt=!0,0)},movementY:function(e){if("movementY"in e)return e.movementY;var t=Gt;return Gt=e.screenY,$t?"mousemove"===e.type?e.screenY-t:0:($t=!0,0)}}),Xt=Qt.extend({pointerId:null,width:null,height:null,pressure:null,tangentialPressure:null,tiltX:null,tiltY:null,twist:null,pointerType:null,isPrimary:null}),Zt={mouseEnter:{registrationName:"onMouseEnter",dependencies:["mouseout","mouseover"]},mouseLeave:{registrationName:"onMouseLeave",dependencies:["mouseout","mouseover"]},pointerEnter:{registrationName:"onPointerEnter",dependencies:["pointerout","pointerover"]},pointerLeave:{registrationName:"onPointerLeave",dependencies:["pointerout","pointerover"]}},en={eventTypes:Zt,extractEvents:function(e,t,n,r){var a="mouseover"===e||"pointerover"===e,o="mouseout"===e||"pointerout"===e;if(a&&(n.relatedTarget||n.fromElement)||!o&&!a)return null;if(a=r.window===r?r:(a=r.ownerDocument)?a.defaultView||a.parentWindow:window,o?(o=t,t=(t=n.relatedTarget||n.toElement)?E(t):null):o=null,o===t)return null;var i=void 0,c=void 0,s=void 0,l=void 0;"mouseout"===e||"mouseover"===e?(i=Qt,c=Zt.mouseLeave,s=Zt.mouseEnter,l="mouse"):"pointerout"!==e&&"pointerover"!==e||(i=Xt,c=Zt.pointerLeave,s=Zt.pointerEnter,l="pointer");var u=null==o?a:A(o);if(a=null==t?a:A(t),(e=i.getPooled(c,o,n,r)).type=l+"leave",e.target=u,e.relatedTarget=a,(n=i.getPooled(s,t,n,r)).type=l+"enter",n.target=a,n.relatedTarget=u,r=t,o&&r)e:{for(a=r,l=0,i=t=o;i;i=F(i))l++;for(i=0,s=a;s;s=F(s))i++;for(;0<l-i;)t=F(t),l--;for(;0<i-l;)a=F(a),i--;for(;l--;){if(t===a||t===a.alternate)break e;t=F(t),a=F(a)}t=null}else t=null;for(a=t,t=[];o&&o!==a&&(null===(l=o.alternate)||l!==a);)t.push(o),o=F(o);for(o=[];r&&r!==a&&(null===(l=r.alternate)||l!==a);)o.push(r),r=F(r);for(r=0;r<t.length;r++)I(t[r],"bubbled",e);for(r=o.length;0<r--;)I(o[r],"captured",n);return[e,n]}};function tn(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t}var nn=Object.prototype.hasOwnProperty;function rn(e,t){if(tn(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++)if(!nn.call(t,n[r])||!tn(e[n[r]],t[n[r]]))return!1;return!0}function an(e,t){return{responder:e,props:t}}function on(e){var t=e;if(e.alternate)for(;t.return;)t=t.return;else{if(0!=(2&t.effectTag))return 1;for(;t.return;)if(0!=(2&(t=t.return).effectTag))return 1}return 3===t.tag?2:3}function cn(e){if(2!==on(e))throw i(Error(188))}function sn(e){if(!(e=function(e){var t=e.alternate;if(!t){if(3===(t=on(e)))throw i(Error(188));return 1===t?null:e}for(var n=e,r=t;;){var a=n.return;if(null===a)break;var o=a.alternate;if(null===o){if(null!==(r=a.return)){n=r;continue}break}if(a.child===o.child){for(o=a.child;o;){if(o===n)return cn(a),e;if(o===r)return cn(a),t;o=o.sibling}throw i(Error(188))}if(n.return!==r.return)n=a,r=o;else{for(var c=!1,s=a.child;s;){if(s===n){c=!0,n=a,r=o;break}if(s===r){c=!0,r=a,n=o;break}s=s.sibling}if(!c){for(s=o.child;s;){if(s===n){c=!0,n=o,r=a;break}if(s===r){c=!0,r=o,n=a;break}s=s.sibling}if(!c)throw i(Error(189))}}if(n.alternate!==r)throw i(Error(190))}if(3!==n.tag)throw i(Error(188));return n.stateNode.current===n?e:t}(e)))return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}new Map,new Map,new Set,new Map;var ln=le.extend({animationName:null,elapsedTime:null,pseudoElement:null}),un=le.extend({clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),dn=It.extend({relatedTarget:null});function fn(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}for(var hn={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},mn={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},pn=It.extend({key:function(e){if(e.key){var t=hn[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=fn(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?mn[e.keyCode]||"Unidentified":""},location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:Bt,charCode:function(e){return"keypress"===e.type?fn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?fn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),vn=Qt.extend({dataTransfer:null}),_n=It.extend({touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:Bt}),yn=le.extend({propertyName:null,elapsedTime:null,pseudoElement:null}),Mn=Qt.extend({deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:null,deltaMode:null}),gn=[["blur","blur",0],["cancel","cancel",0],["click","click",0],["close","close",0],["contextmenu","contextMenu",0],["copy","copy",0],["cut","cut",0],["auxclick","auxClick",0],["dblclick","doubleClick",0],["dragend","dragEnd",0],["dragstart","dragStart",0],["drop","drop",0],["focus","focus",0],["input","input",0],["invalid","invalid",0],["keydown","keyDown",0],["keypress","keyPress",0],["keyup","keyUp",0],["mousedown","mouseDown",0],["mouseup","mouseUp",0],["paste","paste",0],["pause","pause",0],["play","play",0],["pointercancel","pointerCancel",0],["pointerdown","pointerDown",0],["pointerup","pointerUp",0],["ratechange","rateChange",0],["reset","reset",0],["seeked","seeked",0],["submit","submit",0],["touchcancel","touchCancel",0],["touchend","touchEnd",0],["touchstart","touchStart",0],["volumechange","volumeChange",0],["drag","drag",1],["dragenter","dragEnter",1],["dragexit","dragExit",1],["dragleave","dragLeave",1],["dragover","dragOver",1],["mousemove","mouseMove",1],["mouseout","mouseOut",1],["mouseover","mouseOver",1],["pointermove","pointerMove",1],["pointerout","pointerOut",1],["pointerover","pointerOver",1],["scroll","scroll",1],["toggle","toggle",1],["touchmove","touchMove",1],["wheel","wheel",1],["abort","abort",2],[X,"animationEnd",2],[Z,"animationIteration",2],[ee,"animationStart",2],["canplay","canPlay",2],["canplaythrough","canPlayThrough",2],["durationchange","durationChange",2],["emptied","emptied",2],["encrypted","encrypted",2],["ended","ended",2],["error","error",2],["gotpointercapture","gotPointerCapture",2],["load","load",2],["loadeddata","loadedData",2],["loadedmetadata","loadedMetadata",2],["loadstart","loadStart",2],["lostpointercapture","lostPointerCapture",2],["playing","playing",2],["progress","progress",2],["seeking","seeking",2],["stalled","stalled",2],["suspend","suspend",2],["timeupdate","timeUpdate",2],[te,"transitionEnd",2],["waiting","waiting",2]],bn={},Ln={},zn=0;zn<gn.length;zn++){var wn=gn[zn],kn=wn[0],Hn=wn[1],Tn=wn[2],Yn="on"+(Hn[0].toUpperCase()+Hn.slice(1)),Sn={phasedRegistrationNames:{bubbled:Yn,captured:Yn+"Capture"},dependencies:[kn],eventPriority:Tn};bn[Hn]=Sn,Ln[kn]=Sn}var Dn={eventTypes:bn,getEventPriority:function(e){return void 0!==(e=Ln[e])?e.eventPriority:2},extractEvents:function(e,t,n,r){var a=Ln[e];if(!a)return null;switch(e){case"keypress":if(0===fn(n))return null;case"keydown":case"keyup":e=pn;break;case"blur":case"focus":e=dn;break;case"click":if(2===n.button)return null;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":e=Qt;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":e=vn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":e=_n;break;case X:case Z:case ee:e=ln;break;case te:e=yn;break;case"scroll":e=It;break;case"wheel":e=Mn;break;case"copy":case"cut":case"paste":e=un;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":e=Xt;break;default:e=le}return U(t=e.getPooled(a,t,n,r)),t}},On=Dn.getEventPriority,xn=[];function Cn(e){var t=e.targetInst,n=t;do{if(!n){e.ancestors.push(n);break}var r;for(r=n;r.return;)r=r.return;if(!(r=3!==r.tag?null:r.stateNode.containerInfo))break;e.ancestors.push(n),n=E(r)}while(n);for(n=0;n<e.ancestors.length;n++){t=e.ancestors[n];var a=Re(e.nativeEvent);r=e.topLevelType;for(var o=e.nativeEvent,i=null,c=0;c<d.length;c++){var s=d[c];s&&(s=s.extractEvents(r,t,o,a))&&(i=H(i,s))}D(i)}}var Vn=!0;function jn(e,t){En(t,e,!1)}function En(e,t,n){switch(On(t)){case 0:var r=Pn.bind(null,t,1);break;case 1:r=An.bind(null,t,1);break;default:r=Nn.bind(null,t,1)}n?e.addEventListener(t,r,!0):e.addEventListener(t,r,!1)}function Pn(e,t,n){Pe||je();var r=Nn,a=Pe;Pe=!0;try{Ve(r,e,t,n)}finally{(Pe=a)||Ae()}}function An(e,t,n){Nn(e,t,n)}function Nn(e,t,n){if(Vn){if(null===(t=E(t=Re(n)))||"number"!=typeof t.tag||2===on(t)||(t=null),xn.length){var r=xn.pop();r.topLevelType=e,r.nativeEvent=n,r.targetInst=t,e=r}else e={topLevelType:e,nativeEvent:n,targetInst:t,ancestors:[]};try{if(n=e,Pe)Cn(n);else{Pe=!0;try{Ee(Cn,n,void 0)}finally{Pe=!1,Ae()}}}finally{e.topLevelType=null,e.nativeEvent=null,e.targetInst=null,e.ancestors.length=0,10>xn.length&&xn.push(e)}}}var Fn=new("function"==typeof WeakMap?WeakMap:Map);function Rn(e){var t=Fn.get(e);return void 0===t&&(t=new Set,Fn.set(e,t)),t}function Wn(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function In(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function qn(e,t){var n,r=In(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=In(r)}}function Un(){for(var e=window,t=Wn();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(e){n=!1}if(!n)break;t=Wn((e=t.contentWindow).document)}return t}function Bn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var Jn=B&&"documentMode"in document&&11>=document.documentMode,Gn={select:{phasedRegistrationNames:{bubbled:"onSelect",captured:"onSelectCapture"},dependencies:"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange".split(" ")}},Kn=null,$n=null,Qn=null,Xn=!1;function Zn(e,t){var n=t.window===t?t.document:9===t.nodeType?t:t.ownerDocument;return Xn||null==Kn||Kn!==Wn(n)?null:("selectionStart"in(n=Kn)&&Bn(n)?n={start:n.selectionStart,end:n.selectionEnd}:n={anchorNode:(n=(n.ownerDocument&&n.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset},Qn&&rn(Qn,n)?null:(Qn=n,(e=le.getPooled(Gn.select,$n,e,t)).type="select",e.target=Kn,U(e),e))}var er={eventTypes:Gn,extractEvents:function(e,t,n,r){var a,o=r.window===r?r.document:9===r.nodeType?r:r.ownerDocument;if(!(a=!o)){e:{o=Rn(o),a=m.onSelect;for(var i=0;i<a.length;i++)if(!o.has(a[i])){o=!1;break e}o=!0}a=!o}if(a)return null;switch(o=t?A(t):window,e){case"focus":(Fe(o)||"true"===o.contentEditable)&&(Kn=o,$n=t,Qn=null);break;case"blur":Qn=$n=Kn=null;break;case"mousedown":Xn=!0;break;case"contextmenu":case"mouseup":case"dragend":return Xn=!1,Zn(n,r);case"selectionchange":if(Jn)break;case"keydown":case"keyup":return Zn(n,r)}return null}};function tr(e,t){return e=a({children:void 0},t),(t=function(e){var t="";return r.Children.forEach(e,(function(e){null!=e&&(t+=e)})),t}(t.children))&&(e.children=t),e}function nr(e,t,n,r){if(e=e.options,t){t={};for(var a=0;a<n.length;a++)t["$"+n[a]]=!0;for(n=0;n<e.length;n++)a=t.hasOwnProperty("$"+e[n].value),e[n].selected!==a&&(e[n].selected=a),a&&r&&(e[n].defaultSelected=!0)}else{for(n=""+bt(n),t=null,a=0;a<e.length;a++){if(e[a].value===n)return e[a].selected=!0,void(r&&(e[a].defaultSelected=!0));null!==t||e[a].disabled||(t=e[a])}null!==t&&(t.selected=!0)}}function rr(e,t){if(null!=t.dangerouslySetInnerHTML)throw i(Error(91));return a({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function ar(e,t){var n=t.value;if(null==n){if(n=t.defaultValue,null!=(t=t.children)){if(null!=n)throw i(Error(92));if(Array.isArray(t)){if(!(1>=t.length))throw i(Error(93));t=t[0]}n=t}null==n&&(n="")}e._wrapperState={initialValue:bt(n)}}function or(e,t){var n=bt(t.value),r=bt(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function ir(e){var t=e.textContent;t===e._wrapperState.initialValue&&(e.value=t)}O.injectEventPluginOrder("ResponderEventPlugin SimpleEventPlugin EnterLeaveEventPlugin ChangeEventPlugin SelectEventPlugin BeforeInputEventPlugin".split(" ")),L=N,z=P,w=A,O.injectEventPluginsByName({SimpleEventPlugin:Dn,EnterLeaveEventPlugin:en,ChangeEventPlugin:Wt,SelectEventPlugin:er,BeforeInputEventPlugin:He});var cr="http://www.w3.org/1999/xhtml",sr="http://www.w3.org/2000/svg";function lr(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function ur(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?lr(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var dr=void 0,fr=function(e){return"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(t,n,r,a){MSApp.execUnsafeLocalFunction((function(){return e(t,n)}))}:e}((function(e,t){if(e.namespaceURI!==sr||"innerHTML"in e)e.innerHTML=t;else{for((dr=dr||document.createElement("div")).innerHTML="<svg>"+t+"</svg>",t=dr.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}}));function hr(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var mr={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},pr=["Webkit","ms","Moz","O"];function vr(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||mr.hasOwnProperty(e)&&mr[e]?(""+t).trim():t+"px"}function _r(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),a=vr(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,a):e[n]=a}}Object.keys(mr).forEach((function(e){pr.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),mr[t]=mr[e]}))}));var yr=a({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Mr(e,t){if(t){if(yr[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw i(Error(137),e,"");if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw i(Error(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw i(Error(61))}if(null!=t.style&&"object"!=typeof t.style)throw i(Error(62),"")}}function gr(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function br(e,t){var n=Rn(e=9===e.nodeType||11===e.nodeType?e:e.ownerDocument);t=m[t];for(var r=0;r<t.length;r++){var a=t[r];if(!n.has(a)){switch(a){case"scroll":En(e,"scroll",!0);break;case"focus":case"blur":En(e,"focus",!0),En(e,"blur",!0),n.add("blur"),n.add("focus");break;case"cancel":case"close":We(a)&&En(e,a,!0);break;case"invalid":case"submit":case"reset":break;default:-1===ne.indexOf(a)&&jn(a,e)}n.add(a)}}}function Lr(){}var zr=null,wr=null;function kr(e,t){switch(e){case"button":case"input":case"select":case"textarea":return!!t.autoFocus}return!1}function Hr(e,t){return"textarea"===e||"option"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var Tr="function"==typeof setTimeout?setTimeout:void 0,Yr="function"==typeof clearTimeout?clearTimeout:void 0;function Sr(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break}return e}new Set;var Dr=[],Or=-1;function xr(e){0>Or||(e.current=Dr[Or],Dr[Or]=null,Or--)}function Cr(e,t){Or++,Dr[Or]=e.current,e.current=t}var Vr={},jr={current:Vr},Er={current:!1},Pr=Vr;function Ar(e,t){var n=e.type.contextTypes;if(!n)return Vr;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var a,o={};for(a in n)o[a]=t[a];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function Nr(e){return null!=(e=e.childContextTypes)}function Fr(e){xr(Er),xr(jr)}function Rr(e){xr(Er),xr(jr)}function Wr(e,t,n){if(jr.current!==Vr)throw i(Error(168));Cr(jr,t),Cr(Er,n)}function Ir(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var o in r=r.getChildContext())if(!(o in e))throw i(Error(108),ut(t)||"Unknown",o);return a({},n,r)}function qr(e){var t=e.stateNode;return t=t&&t.__reactInternalMemoizedMergedChildContext||Vr,Pr=jr.current,Cr(jr,t),Cr(Er,Er.current),!0}function Ur(e,t,n){var r=e.stateNode;if(!r)throw i(Error(169));n?(t=Ir(e,t,Pr),r.__reactInternalMemoizedMergedChildContext=t,xr(Er),xr(jr),Cr(jr,t)):xr(Er),Cr(Er,n)}var Br=o.unstable_runWithPriority,Jr=o.unstable_scheduleCallback,Gr=o.unstable_cancelCallback,Kr=o.unstable_shouldYield,$r=o.unstable_requestPaint,Qr=o.unstable_now,Xr=o.unstable_getCurrentPriorityLevel,Zr=o.unstable_ImmediatePriority,ea=o.unstable_UserBlockingPriority,ta=o.unstable_NormalPriority,na=o.unstable_LowPriority,ra=o.unstable_IdlePriority,aa={},oa=void 0!==$r?$r:function(){},ia=null,ca=null,sa=!1,la=Qr(),ua=1e4>la?Qr:function(){return Qr()-la};function da(){switch(Xr()){case Zr:return 99;case ea:return 98;case ta:return 97;case na:return 96;case ra:return 95;default:throw i(Error(332))}}function fa(e){switch(e){case 99:return Zr;case 98:return ea;case 97:return ta;case 96:return na;case 95:return ra;default:throw i(Error(332))}}function ha(e,t){return e=fa(e),Br(e,t)}function ma(e,t,n){return e=fa(e),Jr(e,t,n)}function pa(e){return null===ia?(ia=[e],ca=Jr(Zr,_a)):ia.push(e),aa}function va(){null!==ca&&Gr(ca),_a()}function _a(){if(!sa&&null!==ia){sa=!0;var e=0;try{var t=ia;ha(99,(function(){for(;e<t.length;e++){var n=t[e];do{n=n(!0)}while(null!==n)}})),ia=null}catch(t){throw null!==ia&&(ia=ia.slice(e+1)),Jr(Zr,va),t}finally{sa=!1}}}function ya(e,t){return 1073741823===t?99:1===t?95:0>=(e=10*(1073741821-t)-10*(1073741821-e))?99:250>=e?98:5250>=e?97:95}function Ma(e,t){if(e&&e.defaultProps)for(var n in t=a({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}var ga={current:null},ba=null,La=null,za=null;function wa(){za=La=ba=null}function ka(e,t){var n=e.type._context;Cr(ga,n._currentValue),n._currentValue=t}function Ha(e){var t=ga.current;xr(ga),e.type._context._currentValue=t}function Ta(e,t){for(;null!==e;){var n=e.alternate;if(e.childExpirationTime<t)e.childExpirationTime=t,null!==n&&n.childExpirationTime<t&&(n.childExpirationTime=t);else{if(!(null!==n&&n.childExpirationTime<t))break;n.childExpirationTime=t}e=e.return}}function Ya(e,t){ba=e,za=La=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(e.expirationTime>=t&&(ti=!0),e.firstContext=null)}function Sa(e,t){if(za!==e&&!1!==t&&0!==t)if("number"==typeof t&&1073741823!==t||(za=e,t=1073741823),t={context:e,observedBits:t,next:null},null===La){if(null===ba)throw i(Error(308));La=t,ba.dependencies={expirationTime:0,firstContext:t,responders:null}}else La=La.next=t;return e._currentValue}var Da=!1;function Oa(e){return{baseState:e,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function xa(e){return{baseState:e.baseState,firstUpdate:e.firstUpdate,lastUpdate:e.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function Ca(e,t){return{expirationTime:e,suspenseConfig:t,tag:0,payload:null,callback:null,next:null,nextEffect:null}}function Va(e,t){null===e.lastUpdate?e.firstUpdate=e.lastUpdate=t:(e.lastUpdate.next=t,e.lastUpdate=t)}function ja(e,t){var n=e.alternate;if(null===n){var r=e.updateQueue,a=null;null===r&&(r=e.updateQueue=Oa(e.memoizedState))}else r=e.updateQueue,a=n.updateQueue,null===r?null===a?(r=e.updateQueue=Oa(e.memoizedState),a=n.updateQueue=Oa(n.memoizedState)):r=e.updateQueue=xa(a):null===a&&(a=n.updateQueue=xa(r));null===a||r===a?Va(r,t):null===r.lastUpdate||null===a.lastUpdate?(Va(r,t),Va(a,t)):(Va(r,t),a.lastUpdate=t)}function Ea(e,t){var n=e.updateQueue;null===(n=null===n?e.updateQueue=Oa(e.memoizedState):Pa(e,n)).lastCapturedUpdate?n.firstCapturedUpdate=n.lastCapturedUpdate=t:(n.lastCapturedUpdate.next=t,n.lastCapturedUpdate=t)}function Pa(e,t){var n=e.alternate;return null!==n&&t===n.updateQueue&&(t=e.updateQueue=xa(t)),t}function Aa(e,t,n,r,o,i){switch(n.tag){case 1:return"function"==typeof(e=n.payload)?e.call(i,r,o):e;case 3:e.effectTag=-2049&e.effectTag|64;case 0:if(null==(o="function"==typeof(e=n.payload)?e.call(i,r,o):e))break;return a({},r,o);case 2:Da=!0}return r}function Na(e,t,n,r,a){Da=!1;for(var o=(t=Pa(e,t)).baseState,i=null,c=0,s=t.firstUpdate,l=o;null!==s;){var u=s.expirationTime;u<a?(null===i&&(i=s,o=l),c<u&&(c=u)):(bc(u,s.suspenseConfig),l=Aa(e,0,s,l,n,r),null!==s.callback&&(e.effectTag|=32,s.nextEffect=null,null===t.lastEffect?t.firstEffect=t.lastEffect=s:(t.lastEffect.nextEffect=s,t.lastEffect=s))),s=s.next}for(u=null,s=t.firstCapturedUpdate;null!==s;){var d=s.expirationTime;d<a?(null===u&&(u=s,null===i&&(o=l)),c<d&&(c=d)):(l=Aa(e,0,s,l,n,r),null!==s.callback&&(e.effectTag|=32,s.nextEffect=null,null===t.lastCapturedEffect?t.firstCapturedEffect=t.lastCapturedEffect=s:(t.lastCapturedEffect.nextEffect=s,t.lastCapturedEffect=s))),s=s.next}null===i&&(t.lastUpdate=null),null===u?t.lastCapturedUpdate=null:e.effectTag|=32,null===i&&null===u&&(o=l),t.baseState=o,t.firstUpdate=i,t.firstCapturedUpdate=u,e.expirationTime=c,e.memoizedState=l}function Fa(e,t,n){null!==t.firstCapturedUpdate&&(null!==t.lastUpdate&&(t.lastUpdate.next=t.firstCapturedUpdate,t.lastUpdate=t.lastCapturedUpdate),t.firstCapturedUpdate=t.lastCapturedUpdate=null),Ra(t.firstEffect,n),t.firstEffect=t.lastEffect=null,Ra(t.firstCapturedEffect,n),t.firstCapturedEffect=t.lastCapturedEffect=null}function Ra(e,t){for(;null!==e;){var n=e.callback;if(null!==n){e.callback=null;var r=t;if("function"!=typeof n)throw i(Error(191),n);n.call(r)}e=e.nextEffect}}var Wa=Be.ReactCurrentBatchConfig,Ia=(new r.Component).refs;function qa(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:a({},t,n),e.memoizedState=n,null!==(r=e.updateQueue)&&0===e.expirationTime&&(r.baseState=n)}var Ua={isMounted:function(e){return!!(e=e._reactInternalFiber)&&2===on(e)},enqueueSetState:function(e,t,n){e=e._reactInternalFiber;var r=sc(),a=Wa.suspense;(a=Ca(r=lc(r,e,a),a)).payload=t,null!=n&&(a.callback=n),ja(e,a),dc(e,r)},enqueueReplaceState:function(e,t,n){e=e._reactInternalFiber;var r=sc(),a=Wa.suspense;(a=Ca(r=lc(r,e,a),a)).tag=1,a.payload=t,null!=n&&(a.callback=n),ja(e,a),dc(e,r)},enqueueForceUpdate:function(e,t){e=e._reactInternalFiber;var n=sc(),r=Wa.suspense;(r=Ca(n=lc(n,e,r),r)).tag=2,null!=t&&(r.callback=t),ja(e,r),dc(e,n)}};function Ba(e,t,n,r,a,o,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,o,i):!t.prototype||!t.prototype.isPureReactComponent||(!rn(n,r)||!rn(a,o))}function Ja(e,t,n){var r=!1,a=Vr,o=t.contextType;return"object"==typeof o&&null!==o?o=Sa(o):(a=Nr(t)?Pr:jr.current,o=(r=null!=(r=t.contextTypes))?Ar(e,a):Vr),t=new t(n,o),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=Ua,e.stateNode=t,t._reactInternalFiber=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=a,e.__reactInternalMemoizedMaskedChildContext=o),t}function Ga(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&Ua.enqueueReplaceState(t,t.state,null)}function Ka(e,t,n,r){var a=e.stateNode;a.props=n,a.state=e.memoizedState,a.refs=Ia;var o=t.contextType;"object"==typeof o&&null!==o?a.context=Sa(o):(o=Nr(t)?Pr:jr.current,a.context=Ar(e,o)),null!==(o=e.updateQueue)&&(Na(e,o,n,a,r),a.state=e.memoizedState),"function"==typeof(o=t.getDerivedStateFromProps)&&(qa(e,t,o,n),a.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof a.getSnapshotBeforeUpdate||"function"!=typeof a.UNSAFE_componentWillMount&&"function"!=typeof a.componentWillMount||(t=a.state,"function"==typeof a.componentWillMount&&a.componentWillMount(),"function"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount(),t!==a.state&&Ua.enqueueReplaceState(a,a.state,null),null!==(o=e.updateQueue)&&(Na(e,o,n,a,r),a.state=e.memoizedState)),"function"==typeof a.componentDidMount&&(e.effectTag|=4)}var $a=Array.isArray;function Qa(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){n=n._owner;var r=void 0;if(n){if(1!==n.tag)throw i(Error(309));r=n.stateNode}if(!r)throw i(Error(147),e);var a=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===a?t.ref:((t=function(e){var t=r.refs;t===Ia&&(t=r.refs={}),null===e?delete t[a]:t[a]=e})._stringRef=a,t)}if("string"!=typeof e)throw i(Error(284));if(!n._owner)throw i(Error(290),e)}return e}function Xa(e,t){if("textarea"!==e.type)throw i(Error(31),"[object Object]"===Object.prototype.toString.call(t)?"object with keys {"+Object.keys(t).join(", ")+"}":t,"")}function Za(e){function t(t,n){if(e){var r=t.lastEffect;null!==r?(r.nextEffect=n,t.lastEffect=n):t.firstEffect=t.lastEffect=n,n.nextEffect=null,n.effectTag=8}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function a(e,t,n){return(e=Ac(e,t)).index=0,e.sibling=null,e}function o(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.effectTag=2,n):r:(t.effectTag=2,n):n}function c(t){return e&&null===t.alternate&&(t.effectTag=2),t}function s(e,t,n,r){return null===t||6!==t.tag?((t=Rc(n,e.mode,r)).return=e,t):((t=a(t,n)).return=e,t)}function l(e,t,n,r){return null!==t&&t.elementType===n.type?((r=a(t,n.props)).ref=Qa(e,t,n),r.return=e,r):((r=Nc(n.type,n.key,n.props,null,e.mode,r)).ref=Qa(e,t,n),r.return=e,r)}function u(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Wc(n,e.mode,r)).return=e,t):((t=a(t,n.children||[])).return=e,t)}function d(e,t,n,r,o){return null===t||7!==t.tag?((t=Fc(n,e.mode,r,o)).return=e,t):((t=a(t,n)).return=e,t)}function f(e,t,n){if("string"==typeof t||"number"==typeof t)return(t=Rc(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case Ke:return(n=Nc(t.type,t.key,t.props,null,e.mode,n)).ref=Qa(e,null,t),n.return=e,n;case $e:return(t=Wc(t,e.mode,n)).return=e,t}if($a(t)||lt(t))return(t=Fc(t,e.mode,n,null)).return=e,t;Xa(e,t)}return null}function h(e,t,n,r){var a=null!==t?t.key:null;if("string"==typeof n||"number"==typeof n)return null!==a?null:s(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case Ke:return n.key===a?n.type===Qe?d(e,t,n.props.children,r,a):l(e,t,n,r):null;case $e:return n.key===a?u(e,t,n,r):null}if($a(n)||lt(n))return null!==a?null:d(e,t,n,r,null);Xa(e,n)}return null}function m(e,t,n,r,a){if("string"==typeof r||"number"==typeof r)return s(t,e=e.get(n)||null,""+r,a);if("object"==typeof r&&null!==r){switch(r.$$typeof){case Ke:return e=e.get(null===r.key?n:r.key)||null,r.type===Qe?d(t,e,r.props.children,a,r.key):l(t,e,r,a);case $e:return u(t,e=e.get(null===r.key?n:r.key)||null,r,a)}if($a(r)||lt(r))return d(t,e=e.get(n)||null,r,a,null);Xa(t,r)}return null}function p(a,i,c,s){for(var l=null,u=null,d=i,p=i=0,v=null;null!==d&&p<c.length;p++){d.index>p?(v=d,d=null):v=d.sibling;var _=h(a,d,c[p],s);if(null===_){null===d&&(d=v);break}e&&d&&null===_.alternate&&t(a,d),i=o(_,i,p),null===u?l=_:u.sibling=_,u=_,d=v}if(p===c.length)return n(a,d),l;if(null===d){for(;p<c.length;p++)null!==(d=f(a,c[p],s))&&(i=o(d,i,p),null===u?l=d:u.sibling=d,u=d);return l}for(d=r(a,d);p<c.length;p++)null!==(v=m(d,a,p,c[p],s))&&(e&&null!==v.alternate&&d.delete(null===v.key?p:v.key),i=o(v,i,p),null===u?l=v:u.sibling=v,u=v);return e&&d.forEach((function(e){return t(a,e)})),l}function v(a,c,s,l){var u=lt(s);if("function"!=typeof u)throw i(Error(150));if(null==(s=u.call(s)))throw i(Error(151));for(var d=u=null,p=c,v=c=0,_=null,y=s.next();null!==p&&!y.done;v++,y=s.next()){p.index>v?(_=p,p=null):_=p.sibling;var M=h(a,p,y.value,l);if(null===M){null===p&&(p=_);break}e&&p&&null===M.alternate&&t(a,p),c=o(M,c,v),null===d?u=M:d.sibling=M,d=M,p=_}if(y.done)return n(a,p),u;if(null===p){for(;!y.done;v++,y=s.next())null!==(y=f(a,y.value,l))&&(c=o(y,c,v),null===d?u=y:d.sibling=y,d=y);return u}for(p=r(a,p);!y.done;v++,y=s.next())null!==(y=m(p,a,v,y.value,l))&&(e&&null!==y.alternate&&p.delete(null===y.key?v:y.key),c=o(y,c,v),null===d?u=y:d.sibling=y,d=y);return e&&p.forEach((function(e){return t(a,e)})),u}return function(e,r,o,s){var l="object"==typeof o&&null!==o&&o.type===Qe&&null===o.key;l&&(o=o.props.children);var u="object"==typeof o&&null!==o;if(u)switch(o.$$typeof){case Ke:e:{for(u=o.key,l=r;null!==l;){if(l.key===u){if(7===l.tag?o.type===Qe:l.elementType===o.type){n(e,l.sibling),(r=a(l,o.type===Qe?o.props.children:o.props)).ref=Qa(e,l,o),r.return=e,e=r;break e}n(e,l);break}t(e,l),l=l.sibling}o.type===Qe?((r=Fc(o.props.children,e.mode,s,o.key)).return=e,e=r):((s=Nc(o.type,o.key,o.props,null,e.mode,s)).ref=Qa(e,r,o),s.return=e,e=s)}return c(e);case $e:e:{for(l=o.key;null!==r;){if(r.key===l){if(4===r.tag&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),(r=a(r,o.children||[])).return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}(r=Wc(o,e.mode,s)).return=e,e=r}return c(e)}if("string"==typeof o||"number"==typeof o)return o=""+o,null!==r&&6===r.tag?(n(e,r.sibling),(r=a(r,o)).return=e,e=r):(n(e,r),(r=Rc(o,e.mode,s)).return=e,e=r),c(e);if($a(o))return p(e,r,o,s);if(lt(o))return v(e,r,o,s);if(u&&Xa(e,o),void 0===o&&!l)switch(e.tag){case 1:case 0:throw e=e.type,i(Error(152),e.displayName||e.name||"Component")}return n(e,r)}}var eo=Za(!0),to=Za(!1),no={},ro={current:no},ao={current:no},oo={current:no};function io(e){if(e===no)throw i(Error(174));return e}function co(e,t){Cr(oo,t),Cr(ao,e),Cr(ro,no);var n=t.nodeType;switch(n){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:ur(null,"");break;default:t=ur(t=(n=8===n?t.parentNode:t).namespaceURI||null,n=n.tagName)}xr(ro),Cr(ro,t)}function so(e){xr(ro),xr(ao),xr(oo)}function lo(e){io(oo.current);var t=io(ro.current),n=ur(t,e.type);t!==n&&(Cr(ao,e),Cr(ro,n))}function uo(e){ao.current===e&&(xr(ro),xr(ao))}var fo={current:0};function ho(e){for(var t=e;null!==t;){if(13===t.tag){if(null!==t.memoizedState)return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(64&t.effectTag))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var mo=Be.ReactCurrentDispatcher,po=0,vo=null,_o=null,yo=null,Mo=null,go=null,bo=null,Lo=0,zo=null,wo=0,ko=!1,Ho=null,To=0;function Yo(){throw i(Error(321))}function So(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!tn(e[n],t[n]))return!1;return!0}function Do(e,t,n,r,a,o){if(po=o,vo=t,yo=null!==e?e.memoizedState:null,mo.current=null===yo?Io:qo,t=n(r,a),ko){do{ko=!1,To+=1,yo=null!==e?e.memoizedState:null,bo=Mo,zo=go=_o=null,mo.current=qo,t=n(r,a)}while(ko);Ho=null,To=0}if(mo.current=Wo,(e=vo).memoizedState=Mo,e.expirationTime=Lo,e.updateQueue=zo,e.effectTag|=wo,e=null!==_o&&null!==_o.next,po=0,bo=go=Mo=yo=_o=vo=null,Lo=0,zo=null,wo=0,e)throw i(Error(300));return t}function Oo(){mo.current=Wo,po=0,bo=go=Mo=yo=_o=vo=null,Lo=0,zo=null,wo=0,ko=!1,Ho=null,To=0}function xo(){var e={memoizedState:null,baseState:null,queue:null,baseUpdate:null,next:null};return null===go?Mo=go=e:go=go.next=e,go}function Co(){if(null!==bo)bo=(go=bo).next,yo=null!==(_o=yo)?_o.next:null;else{if(null===yo)throw i(Error(310));var e={memoizedState:(_o=yo).memoizedState,baseState:_o.baseState,queue:_o.queue,baseUpdate:_o.baseUpdate,next:null};go=null===go?Mo=e:go.next=e,yo=_o.next}return go}function Vo(e,t){return"function"==typeof t?t(e):t}function jo(e){var t=Co(),n=t.queue;if(null===n)throw i(Error(311));if(n.lastRenderedReducer=e,0<To){var r=n.dispatch;if(null!==Ho){var a=Ho.get(n);if(void 0!==a){Ho.delete(n);var o=t.memoizedState;do{o=e(o,a.action),a=a.next}while(null!==a);return tn(o,t.memoizedState)||(ti=!0),t.memoizedState=o,t.baseUpdate===n.last&&(t.baseState=o),n.lastRenderedState=o,[o,r]}}return[t.memoizedState,r]}r=n.last;var c=t.baseUpdate;if(o=t.baseState,null!==c?(null!==r&&(r.next=null),r=c.next):r=null!==r?r.next:null,null!==r){var s=a=null,l=r,u=!1;do{var d=l.expirationTime;d<po?(u||(u=!0,s=c,a=o),d>Lo&&(Lo=d)):(bc(d,l.suspenseConfig),o=l.eagerReducer===e?l.eagerState:e(o,l.action)),c=l,l=l.next}while(null!==l&&l!==r);u||(s=c,a=o),tn(o,t.memoizedState)||(ti=!0),t.memoizedState=o,t.baseUpdate=s,t.baseState=a,n.lastRenderedState=o}return[t.memoizedState,n.dispatch]}function Eo(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===zo?(zo={lastEffect:null}).lastEffect=e.next=e:null===(t=zo.lastEffect)?zo.lastEffect=e.next=e:(n=t.next,t.next=e,e.next=n,zo.lastEffect=e),e}function Po(e,t,n,r){var a=xo();wo|=e,a.memoizedState=Eo(t,n,void 0,void 0===r?null:r)}function Ao(e,t,n,r){var a=Co();r=void 0===r?null:r;var o=void 0;if(null!==_o){var i=_o.memoizedState;if(o=i.destroy,null!==r&&So(r,i.deps))return void Eo(0,n,o,r)}wo|=e,a.memoizedState=Eo(t,n,o,r)}function No(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function Fo(){}function Ro(e,t,n){if(!(25>To))throw i(Error(301));var r=e.alternate;if(e===vo||null!==r&&r===vo)if(ko=!0,e={expirationTime:po,suspenseConfig:null,action:n,eagerReducer:null,eagerState:null,next:null},null===Ho&&(Ho=new Map),void 0===(n=Ho.get(t)))Ho.set(t,e);else{for(t=n;null!==t.next;)t=t.next;t.next=e}else{var a=sc(),o=Wa.suspense;o={expirationTime:a=lc(a,e,o),suspenseConfig:o,action:n,eagerReducer:null,eagerState:null,next:null};var c=t.last;if(null===c)o.next=o;else{var s=c.next;null!==s&&(o.next=s),c.next=o}if(t.last=o,0===e.expirationTime&&(null===r||0===r.expirationTime)&&null!==(r=t.lastRenderedReducer))try{var l=t.lastRenderedState,u=r(l,n);if(o.eagerReducer=r,o.eagerState=u,tn(u,l))return}catch(e){}dc(e,a)}}var Wo={readContext:Sa,useCallback:Yo,useContext:Yo,useEffect:Yo,useImperativeHandle:Yo,useLayoutEffect:Yo,useMemo:Yo,useReducer:Yo,useRef:Yo,useState:Yo,useDebugValue:Yo,useResponder:Yo},Io={readContext:Sa,useCallback:function(e,t){return xo().memoizedState=[e,void 0===t?null:t],e},useContext:Sa,useEffect:function(e,t){return Po(516,192,e,t)},useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,Po(4,36,No.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Po(4,36,e,t)},useMemo:function(e,t){var n=xo();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=xo();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e=(e=r.queue={last:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:t}).dispatch=Ro.bind(null,vo,e),[r.memoizedState,e]},useRef:function(e){return e={current:e},xo().memoizedState=e},useState:function(e){var t=xo();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={last:null,dispatch:null,lastRenderedReducer:Vo,lastRenderedState:e}).dispatch=Ro.bind(null,vo,e),[t.memoizedState,e]},useDebugValue:Fo,useResponder:an},qo={readContext:Sa,useCallback:function(e,t){var n=Co();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&So(t,r[1])?r[0]:(n.memoizedState=[e,t],e)},useContext:Sa,useEffect:function(e,t){return Ao(516,192,e,t)},useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,Ao(4,36,No.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Ao(4,36,e,t)},useMemo:function(e,t){var n=Co();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&So(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)},useReducer:jo,useRef:function(){return Co().memoizedState},useState:function(e){return jo(Vo)},useDebugValue:Fo,useResponder:an},Uo=null,Bo=null,Jo=!1;function Go(e,t){var n=Ec(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.effectTag=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function Ko(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,!0);case 13:default:return!1}}function $o(e){if(Jo){var t=Bo;if(t){var n=t;if(!Ko(e,t)){if(!(t=Sr(n.nextSibling))||!Ko(e,t))return e.effectTag|=2,Jo=!1,void(Uo=e);Go(Uo,n)}Uo=e,Bo=Sr(t.firstChild)}else e.effectTag|=2,Jo=!1,Uo=e}}function Qo(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&18!==e.tag;)e=e.return;Uo=e}function Xo(e){if(e!==Uo)return!1;if(!Jo)return Qo(e),Jo=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!Hr(t,e.memoizedProps))for(t=Bo;t;)Go(e,t),t=Sr(t.nextSibling);return Qo(e),Bo=Uo?Sr(e.stateNode.nextSibling):null,!0}function Zo(){Bo=Uo=null,Jo=!1}var ei=Be.ReactCurrentOwner,ti=!1;function ni(e,t,n,r){t.child=null===e?to(t,null,n,r):eo(t,e.child,n,r)}function ri(e,t,n,r,a){n=n.render;var o=t.ref;return Ya(t,a),r=Do(e,t,n,r,o,a),null===e||ti?(t.effectTag|=1,ni(e,t,r,a),t.child):(t.updateQueue=e.updateQueue,t.effectTag&=-517,e.expirationTime<=a&&(e.expirationTime=0),pi(e,t,a))}function ai(e,t,n,r,a,o){if(null===e){var i=n.type;return"function"!=typeof i||Pc(i)||void 0!==i.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Nc(n.type,null,r,null,t.mode,o)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=i,oi(e,t,i,r,a,o))}return i=e.child,a<o&&(a=i.memoizedProps,(n=null!==(n=n.compare)?n:rn)(a,r)&&e.ref===t.ref)?pi(e,t,o):(t.effectTag|=1,(e=Ac(i,r)).ref=t.ref,e.return=t,t.child=e)}function oi(e,t,n,r,a,o){return null!==e&&rn(e.memoizedProps,r)&&e.ref===t.ref&&(ti=!1,a<o)?pi(e,t,o):ci(e,t,n,r,o)}function ii(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.effectTag|=128)}function ci(e,t,n,r,a){var o=Nr(n)?Pr:jr.current;return o=Ar(t,o),Ya(t,a),n=Do(e,t,n,r,o,a),null===e||ti?(t.effectTag|=1,ni(e,t,n,a),t.child):(t.updateQueue=e.updateQueue,t.effectTag&=-517,e.expirationTime<=a&&(e.expirationTime=0),pi(e,t,a))}function si(e,t,n,r,a){if(Nr(n)){var o=!0;qr(t)}else o=!1;if(Ya(t,a),null===t.stateNode)null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),Ja(t,n,r),Ka(t,n,r,a),r=!0;else if(null===e){var i=t.stateNode,c=t.memoizedProps;i.props=c;var s=i.context,l=n.contextType;"object"==typeof l&&null!==l?l=Sa(l):l=Ar(t,l=Nr(n)?Pr:jr.current);var u=n.getDerivedStateFromProps,d="function"==typeof u||"function"==typeof i.getSnapshotBeforeUpdate;d||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(c!==r||s!==l)&&Ga(t,i,r,l),Da=!1;var f=t.memoizedState;s=i.state=f;var h=t.updateQueue;null!==h&&(Na(t,h,r,i,a),s=t.memoizedState),c!==r||f!==s||Er.current||Da?("function"==typeof u&&(qa(t,n,u,r),s=t.memoizedState),(c=Da||Ba(t,n,c,r,f,s,l))?(d||"function"!=typeof i.UNSAFE_componentWillMount&&"function"!=typeof i.componentWillMount||("function"==typeof i.componentWillMount&&i.componentWillMount(),"function"==typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount()),"function"==typeof i.componentDidMount&&(t.effectTag|=4)):("function"==typeof i.componentDidMount&&(t.effectTag|=4),t.memoizedProps=r,t.memoizedState=s),i.props=r,i.state=s,i.context=l,r=c):("function"==typeof i.componentDidMount&&(t.effectTag|=4),r=!1)}else i=t.stateNode,c=t.memoizedProps,i.props=t.type===t.elementType?c:Ma(t.type,c),s=i.context,"object"==typeof(l=n.contextType)&&null!==l?l=Sa(l):l=Ar(t,l=Nr(n)?Pr:jr.current),(d="function"==typeof(u=n.getDerivedStateFromProps)||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(c!==r||s!==l)&&Ga(t,i,r,l),Da=!1,s=t.memoizedState,f=i.state=s,null!==(h=t.updateQueue)&&(Na(t,h,r,i,a),f=t.memoizedState),c!==r||s!==f||Er.current||Da?("function"==typeof u&&(qa(t,n,u,r),f=t.memoizedState),(u=Da||Ba(t,n,c,r,s,f,l))?(d||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,f,l),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,f,l)),"function"==typeof i.componentDidUpdate&&(t.effectTag|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.effectTag|=256)):("function"!=typeof i.componentDidUpdate||c===e.memoizedProps&&s===e.memoizedState||(t.effectTag|=4),"function"!=typeof i.getSnapshotBeforeUpdate||c===e.memoizedProps&&s===e.memoizedState||(t.effectTag|=256),t.memoizedProps=r,t.memoizedState=f),i.props=r,i.state=f,i.context=l,r=u):("function"!=typeof i.componentDidUpdate||c===e.memoizedProps&&s===e.memoizedState||(t.effectTag|=4),"function"!=typeof i.getSnapshotBeforeUpdate||c===e.memoizedProps&&s===e.memoizedState||(t.effectTag|=256),r=!1);return li(e,t,n,r,o,a)}function li(e,t,n,r,a,o){ii(e,t);var i=0!=(64&t.effectTag);if(!r&&!i)return a&&Ur(t,n,!1),pi(e,t,o);r=t.stateNode,ei.current=t;var c=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.effectTag|=1,null!==e&&i?(t.child=eo(t,e.child,null,o),t.child=eo(t,null,c,o)):ni(e,t,c,o),t.memoizedState=r.state,a&&Ur(t,n,!0),t.child}function ui(e){var t=e.stateNode;t.pendingContext?Wr(0,t.pendingContext,t.pendingContext!==t.context):t.context&&Wr(0,t.context,!1),co(e,t.containerInfo)}var di={};function fi(e,t,n){var r,a=t.mode,o=t.pendingProps,i=fo.current,c=null,s=!1;if((r=0!=(64&t.effectTag))||(r=0!=(2&i)&&(null===e||null!==e.memoizedState)),r?(c=di,s=!0,t.effectTag&=-65):null!==e&&null===e.memoizedState||void 0===o.fallback||!0===o.unstable_avoidThisFallback||(i|=1),Cr(fo,i&=1),null===e)if(s){if(o=o.fallback,(e=Fc(null,a,0,null)).return=t,0==(2&t.mode))for(s=null!==t.memoizedState?t.child.child:t.child,e.child=s;null!==s;)s.return=e,s=s.sibling;(n=Fc(o,a,n,null)).return=t,e.sibling=n,a=e}else a=n=to(t,null,o.children,n);else{if(null!==e.memoizedState)if(a=(i=e.child).sibling,s){if(o=o.fallback,(n=Ac(i,i.pendingProps)).return=t,0==(2&t.mode)&&(s=null!==t.memoizedState?t.child.child:t.child)!==i.child)for(n.child=s;null!==s;)s.return=n,s=s.sibling;(o=Ac(a,o,a.expirationTime)).return=t,n.sibling=o,a=n,n.childExpirationTime=0,n=o}else a=n=eo(t,i.child,o.children,n);else if(i=e.child,s){if(s=o.fallback,(o=Fc(null,a,0,null)).return=t,o.child=i,null!==i&&(i.return=o),0==(2&t.mode))for(i=null!==t.memoizedState?t.child.child:t.child,o.child=i;null!==i;)i.return=o,i=i.sibling;(n=Fc(s,a,n,null)).return=t,o.sibling=n,n.effectTag|=2,a=o,o.childExpirationTime=0}else n=a=eo(t,i,o.children,n);t.stateNode=e.stateNode}return t.memoizedState=c,t.child=a,n}function hi(e,t,n,r,a){var o=e.memoizedState;null===o?e.memoizedState={isBackwards:t,rendering:null,last:r,tail:n,tailExpiration:0,tailMode:a}:(o.isBackwards=t,o.rendering=null,o.last=r,o.tail=n,o.tailExpiration=0,o.tailMode=a)}function mi(e,t,n){var r=t.pendingProps,a=r.revealOrder,o=r.tail;if(ni(e,t,r.children,n),0!=(2&(r=fo.current)))r=1&r|2,t.effectTag|=64;else{if(null!==e&&0!=(64&e.effectTag))e:for(e=t.child;null!==e;){if(13===e.tag){if(null!==e.memoizedState){e.expirationTime<n&&(e.expirationTime=n);var i=e.alternate;null!==i&&i.expirationTime<n&&(i.expirationTime=n),Ta(e.return,n)}}else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(Cr(fo,r),0==(2&t.mode))t.memoizedState=null;else switch(a){case"forwards":for(n=t.child,a=null;null!==n;)null!==(r=n.alternate)&&null===ho(r)&&(a=n),n=n.sibling;null===(n=a)?(a=t.child,t.child=null):(a=n.sibling,n.sibling=null),hi(t,!1,a,n,o);break;case"backwards":for(n=null,a=t.child,t.child=null;null!==a;){if(null!==(r=a.alternate)&&null===ho(r)){t.child=a;break}r=a.sibling,a.sibling=n,n=a,a=r}hi(t,!0,n,null,o);break;case"together":hi(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function pi(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),t.childExpirationTime<n)return null;if(null!==e&&t.child!==e.child)throw i(Error(153));if(null!==t.child){for(n=Ac(e=t.child,e.pendingProps,e.expirationTime),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Ac(e,e.pendingProps,e.expirationTime)).return=t;n.sibling=null}return t.child}function vi(e){e.effectTag|=4}var _i,yi,Mi;function gi(e,t){switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function bi(e){switch(e.tag){case 1:Nr(e.type)&&Fr();var t=e.effectTag;return 2048&t?(e.effectTag=-2049&t|64,e):null;case 3:if(so(),Rr(),0!=(64&(t=e.effectTag)))throw i(Error(285));return e.effectTag=-2049&t|64,e;case 5:return uo(e),null;case 13:return xr(fo),2048&(t=e.effectTag)?(e.effectTag=-2049&t|64,e):null;case 18:return null;case 19:return xr(fo),null;case 4:return so(),null;case 10:return Ha(e),null;default:return null}}function Li(e,t){return{value:e,source:t,stack:dt(t)}}_i=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(20===n.tag)e.appendChild(n.stateNode.instance);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},yi=function(e,t,n,r,o){var i=e.memoizedProps;if(i!==r){var c=t.stateNode;switch(io(ro.current),e=null,n){case"input":i=Lt(c,i),r=Lt(c,r),e=[];break;case"option":i=tr(c,i),r=tr(c,r),e=[];break;case"select":i=a({},i,{value:void 0}),r=a({},r,{value:void 0}),e=[];break;case"textarea":i=rr(c,i),r=rr(c,r),e=[];break;default:"function"!=typeof i.onClick&&"function"==typeof r.onClick&&(c.onclick=Lr)}Mr(n,r),c=n=void 0;var s=null;for(n in i)if(!r.hasOwnProperty(n)&&i.hasOwnProperty(n)&&null!=i[n])if("style"===n){var l=i[n];for(c in l)l.hasOwnProperty(c)&&(s||(s={}),s[c]="")}else"dangerouslySetInnerHTML"!==n&&"children"!==n&&"suppressContentEditableWarning"!==n&&"suppressHydrationWarning"!==n&&"autoFocus"!==n&&(h.hasOwnProperty(n)?e||(e=[]):(e=e||[]).push(n,null));for(n in r){var u=r[n];if(l=null!=i?i[n]:void 0,r.hasOwnProperty(n)&&u!==l&&(null!=u||null!=l))if("style"===n)if(l){for(c in l)!l.hasOwnProperty(c)||u&&u.hasOwnProperty(c)||(s||(s={}),s[c]="");for(c in u)u.hasOwnProperty(c)&&l[c]!==u[c]&&(s||(s={}),s[c]=u[c])}else s||(e||(e=[]),e.push(n,s)),s=u;else"dangerouslySetInnerHTML"===n?(u=u?u.__html:void 0,l=l?l.__html:void 0,null!=u&&l!==u&&(e=e||[]).push(n,""+u)):"children"===n?l===u||"string"!=typeof u&&"number"!=typeof u||(e=e||[]).push(n,""+u):"suppressContentEditableWarning"!==n&&"suppressHydrationWarning"!==n&&(h.hasOwnProperty(n)?(null!=u&&br(o,n),e||l===u||(e=[])):(e=e||[]).push(n,u))}s&&(e=e||[]).push("style",s),o=e,(t.updateQueue=o)&&vi(t)}},Mi=function(e,t,n,r){n!==r&&vi(t)};var zi="function"==typeof WeakSet?WeakSet:Set;function wi(e,t){var n=t.source,r=t.stack;null===r&&null!==n&&(r=dt(n)),null!==n&&ut(n.type),t=t.value,null!==e&&1===e.tag&&ut(e.type);try{console.error(t)}catch(e){setTimeout((function(){throw e}))}}function ki(e){var t=e.ref;if(null!==t)if("function"==typeof t)try{t(null)}catch(t){Sc(e,t)}else t.current=null}function Hi(e,t,n){if(null!==(n=null!==(n=n.updateQueue)?n.lastEffect:null)){var r=n=n.next;do{if(0!=(r.tag&e)){var a=r.destroy;r.destroy=void 0,void 0!==a&&a()}0!=(r.tag&t)&&(a=r.create,r.destroy=a()),r=r.next}while(r!==n)}}function Ti(e,t){switch("function"==typeof Vc&&Vc(e),e.tag){case 0:case 11:case 14:case 15:var n=e.updateQueue;if(null!==n&&null!==(n=n.lastEffect)){var r=n.next;ha(97<t?97:t,(function(){var t=r;do{var n=t.destroy;if(void 0!==n){var a=e;try{n()}catch(e){Sc(a,e)}}t=t.next}while(t!==r)}))}break;case 1:ki(e),"function"==typeof(t=e.stateNode).componentWillUnmount&&function(e,t){try{t.props=e.memoizedProps,t.state=e.memoizedState,t.componentWillUnmount()}catch(t){Sc(e,t)}}(e,t);break;case 5:ki(e);break;case 4:Oi(e,t)}}function Yi(e,t){for(var n=e;;)if(Ti(n,t),null!==n.child&&4!==n.tag)n.child.return=n,n=n.child;else{if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return;n=n.return}n.sibling.return=n.return,n=n.sibling}}function Si(e){return 5===e.tag||3===e.tag||4===e.tag}function Di(e){e:{for(var t=e.return;null!==t;){if(Si(t)){var n=t;break e}t=t.return}throw i(Error(160))}switch(t=n.stateNode,n.tag){case 5:var r=!1;break;case 3:case 4:t=t.containerInfo,r=!0;break;default:throw i(Error(161))}16&n.effectTag&&(hr(t,""),n.effectTag&=-17);e:t:for(n=e;;){for(;null===n.sibling;){if(null===n.return||Si(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;5!==n.tag&&6!==n.tag&&18!==n.tag;){if(2&n.effectTag)continue t;if(null===n.child||4===n.tag)continue t;n.child.return=n,n=n.child}if(!(2&n.effectTag)){n=n.stateNode;break e}}for(var a=e;;){var o=5===a.tag||6===a.tag;if(o||20===a.tag){var c=o?a.stateNode:a.stateNode.instance;if(n)if(r){var s=c;c=n,8===(o=t).nodeType?o.parentNode.insertBefore(s,c):o.insertBefore(s,c)}else t.insertBefore(c,n);else r?(8===(s=t).nodeType?(o=s.parentNode).insertBefore(c,s):(o=s).appendChild(c),null!=(s=s._reactRootContainer)||null!==o.onclick||(o.onclick=Lr)):t.appendChild(c)}else if(4!==a.tag&&null!==a.child){a.child.return=a,a=a.child;continue}if(a===e)break;for(;null===a.sibling;){if(null===a.return||a.return===e)return;a=a.return}a.sibling.return=a.return,a=a.sibling}}function Oi(e,t){for(var n=e,r=!1,a=void 0,o=void 0;;){if(!r){r=n.return;e:for(;;){if(null===r)throw i(Error(160));switch(a=r.stateNode,r.tag){case 5:o=!1;break e;case 3:case 4:a=a.containerInfo,o=!0;break e}r=r.return}r=!0}if(5===n.tag||6===n.tag)if(Yi(n,t),o){var c=a,s=n.stateNode;8===c.nodeType?c.parentNode.removeChild(s):c.removeChild(s)}else a.removeChild(n.stateNode);else if(20===n.tag)s=n.stateNode.instance,Yi(n,t),o?8===(c=a).nodeType?c.parentNode.removeChild(s):c.removeChild(s):a.removeChild(s);else if(4===n.tag){if(null!==n.child){a=n.stateNode.containerInfo,o=!0,n.child.return=n,n=n.child;continue}}else if(Ti(n,t),null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return;4===(n=n.return).tag&&(r=!1)}n.sibling.return=n.return,n=n.sibling}}function xi(e,t){switch(t.tag){case 0:case 11:case 14:case 15:Hi(4,8,t);break;case 1:break;case 5:var n=t.stateNode;if(null!=n){var r=t.memoizedProps,a=null!==e?e.memoizedProps:r;e=t.type;var o=t.updateQueue;if(t.updateQueue=null,null!==o){for(n[j]=r,"input"===e&&"radio"===r.type&&null!=r.name&&wt(n,r),gr(e,a),t=gr(e,r),a=0;a<o.length;a+=2){var c=o[a],s=o[a+1];"style"===c?_r(n,s):"dangerouslySetInnerHTML"===c?fr(n,s):"children"===c?hr(n,s):gt(n,c,s,t)}switch(e){case"input":kt(n,r);break;case"textarea":or(n,r);break;case"select":t=n._wrapperState.wasMultiple,n._wrapperState.wasMultiple=!!r.multiple,null!=(e=r.value)?nr(n,!!r.multiple,e,!1):t!==!!r.multiple&&(null!=r.defaultValue?nr(n,!!r.multiple,r.defaultValue,!0):nr(n,!!r.multiple,r.multiple?[]:"",!1))}}}break;case 6:if(null===t.stateNode)throw i(Error(162));t.stateNode.nodeValue=t.memoizedProps;break;case 3:case 12:break;case 13:if(n=t,null===t.memoizedState?r=!1:(r=!0,n=t.child,Ki=ua()),null!==n)e:for(e=n;;){if(5===e.tag)o=e.stateNode,r?"function"==typeof(o=o.style).setProperty?o.setProperty("display","none","important"):o.display="none":(o=e.stateNode,a=null!=(a=e.memoizedProps.style)&&a.hasOwnProperty("display")?a.display:null,o.style.display=vr("display",a));else if(6===e.tag)e.stateNode.nodeValue=r?"":e.memoizedProps;else{if(13===e.tag&&null!==e.memoizedState){(o=e.child.sibling).return=e,e=o;continue}if(null!==e.child){e.child.return=e,e=e.child;continue}}if(e===n)break e;for(;null===e.sibling;){if(null===e.return||e.return===n)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}Ci(t);break;case 19:Ci(t);break;case 17:case 20:break;default:throw i(Error(163))}}function Ci(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new zi),t.forEach((function(t){var r=Oc.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}var Vi="function"==typeof WeakMap?WeakMap:Map;function ji(e,t,n){(n=Ca(n,null)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Qi||(Qi=!0,Xi=r),wi(e,t)},n}function Ei(e,t,n){(n=Ca(n,null)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var a=t.value;n.payload=function(){return wi(e,t),r(a)}}var o=e.stateNode;return null!==o&&"function"==typeof o.componentDidCatch&&(n.callback=function(){"function"!=typeof r&&(null===Zi?Zi=new Set([this]):Zi.add(this),wi(e,t));var n=t.stack;this.componentDidCatch(t.value,{componentStack:null!==n?n:""})}),n}var Pi=Math.ceil,Ai=Be.ReactCurrentDispatcher,Ni=Be.ReactCurrentOwner,Fi=0,Ri=null,Wi=null,Ii=0,qi=0,Ui=1073741823,Bi=1073741823,Ji=null,Gi=!1,Ki=0,$i=null,Qi=!1,Xi=null,Zi=null,ec=!1,tc=null,nc=90,rc=0,ac=null,oc=0,ic=null,cc=0;function sc(){return 0!=(48&Fi)?1073741821-(ua()/10|0):0!==cc?cc:cc=1073741821-(ua()/10|0)}function lc(e,t,n){if(0==(2&(t=t.mode)))return 1073741823;var r=da();if(0==(4&t))return 99===r?1073741823:1073741822;if(0!=(16&Fi))return Ii;if(null!==n)e=1073741821-25*(1+((1073741821-e+(0|n.timeoutMs||5e3)/10)/25|0));else switch(r){case 99:e=1073741823;break;case 98:e=1073741821-10*(1+((1073741821-e+15)/10|0));break;case 97:case 96:e=1073741821-25*(1+((1073741821-e+500)/25|0));break;case 95:e=1;break;default:throw i(Error(326))}return null!==Ri&&e===Ii&&--e,e}var uc=0;function dc(e,t){if(50<oc)throw oc=0,ic=null,i(Error(185));if(null!==(e=fc(e,t))){e.pingTime=0;var n=da();if(1073741823===t)if(0!=(8&Fi)&&0==(48&Fi))for(var r=gc(e,1073741823,!0);null!==r;)r=r(!0);else hc(e,99,1073741823),0===Fi&&va();else hc(e,n,t);0==(4&Fi)||98!==n&&99!==n||(null===ac?ac=new Map([[e,t]]):(void 0===(n=ac.get(e))||n>t)&&ac.set(e,t))}}function fc(e,t){e.expirationTime<t&&(e.expirationTime=t);var n=e.alternate;null!==n&&n.expirationTime<t&&(n.expirationTime=t);var r=e.return,a=null;if(null===r&&3===e.tag)a=e.stateNode;else for(;null!==r;){if(n=r.alternate,r.childExpirationTime<t&&(r.childExpirationTime=t),null!==n&&n.childExpirationTime<t&&(n.childExpirationTime=t),null===r.return&&3===r.tag){a=r.stateNode;break}r=r.return}return null!==a&&(t>a.firstPendingTime&&(a.firstPendingTime=t),0===(e=a.lastPendingTime)||t<e)&&(a.lastPendingTime=t),a}function hc(e,t,n){if(e.callbackExpirationTime<n){var r=e.callbackNode;null!==r&&r!==aa&&Gr(r),e.callbackExpirationTime=n,1073741823===n?e.callbackNode=pa(mc.bind(null,e,gc.bind(null,e,n))):(r=null,1!==n&&(r={timeout:10*(1073741821-n)-ua()}),e.callbackNode=ma(t,mc.bind(null,e,gc.bind(null,e,n)),r))}}function mc(e,t,n){var r=e.callbackNode,a=null;try{return null!==(a=t(n))?mc.bind(null,e,a):null}finally{null===a&&r===e.callbackNode&&(e.callbackNode=null,e.callbackExpirationTime=0)}}function pc(){0==(49&Fi)&&(function(){if(null!==ac){var e=ac;ac=null,e.forEach((function(e,t){pa(gc.bind(null,t,e))})),va()}}(),Hc())}function vc(e,t){var n=Fi;Fi|=1;try{return e(t)}finally{0===(Fi=n)&&va()}}function _c(e,t,n,r){var a=Fi;Fi|=4;try{return ha(98,e.bind(null,t,n,r))}finally{0===(Fi=a)&&va()}}function yc(e,t){var n=Fi;Fi&=-2,Fi|=8;try{return e(t)}finally{0===(Fi=n)&&va()}}function Mc(e,t){e.finishedWork=null,e.finishedExpirationTime=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,Yr(n)),null!==Wi)for(n=Wi.return;null!==n;){var r=n;switch(r.tag){case 1:var a=r.type.childContextTypes;null!=a&&Fr();break;case 3:so(),Rr();break;case 5:uo(r);break;case 4:so();break;case 13:case 19:xr(fo);break;case 10:Ha(r)}n=n.return}Ri=e,Wi=Ac(e.current,null),Ii=t,qi=0,Bi=Ui=1073741823,Ji=null,Gi=!1}function gc(e,t,n){if(0!=(48&Fi))throw i(Error(327));if(e.firstPendingTime<t)return null;if(n&&e.finishedExpirationTime===t)return wc.bind(null,e);if(Hc(),e!==Ri||t!==Ii)Mc(e,t);else if(3===qi)if(Gi)Mc(e,t);else{var r=e.lastPendingTime;if(r<t)return gc.bind(null,e,r)}if(null!==Wi){r=Fi,Fi|=16;var a=Ai.current;if(null===a&&(a=Wo),Ai.current=Wo,n){if(1073741823!==t){var o=sc();if(o<t)return Fi=r,wa(),Ai.current=a,gc.bind(null,e,o)}}else cc=0;for(;;)try{if(n)for(;null!==Wi;)Wi=Lc(Wi);else for(;null!==Wi&&!Kr();)Wi=Lc(Wi);break}catch(n){if(wa(),Oo(),null===(o=Wi)||null===o.return)throw Mc(e,t),Fi=r,n;e:{var c=e,s=o.return,l=o,u=n,d=Ii;if(l.effectTag|=1024,l.firstEffect=l.lastEffect=null,null!==u&&"object"==typeof u&&"function"==typeof u.then){var f=u,h=0!=(1&fo.current);u=s;do{var m;if((m=13===u.tag)&&(null!==u.memoizedState?m=!1:m=void 0!==(m=u.memoizedProps).fallback&&(!0!==m.unstable_avoidThisFallback||!h)),m){if(null===(s=u.updateQueue)?((s=new Set).add(f),u.updateQueue=s):s.add(f),0==(2&u.mode)){u.effectTag|=64,l.effectTag&=-1957,1===l.tag&&(null===l.alternate?l.tag=17:((d=Ca(1073741823,null)).tag=2,ja(l,d))),l.expirationTime=1073741823;break e}l=c,c=d,null===(h=l.pingCache)?(h=l.pingCache=new Vi,s=new Set,h.set(f,s)):void 0===(s=h.get(f))&&(s=new Set,h.set(f,s)),s.has(c)||(s.add(c),l=Dc.bind(null,l,f,c),f.then(l,l)),u.effectTag|=2048,u.expirationTime=d;break e}u=u.return}while(null!==u);u=Error((ut(l.type)||"A React component")+" suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display."+dt(l))}4!==qi&&(qi=1),u=Li(u,l),l=s;do{switch(l.tag){case 3:l.effectTag|=2048,l.expirationTime=d,Ea(l,d=ji(l,u,d));break e;case 1:if(f=u,c=l.type,s=l.stateNode,0==(64&l.effectTag)&&("function"==typeof c.getDerivedStateFromError||null!==s&&"function"==typeof s.componentDidCatch&&(null===Zi||!Zi.has(s)))){l.effectTag|=2048,l.expirationTime=d,Ea(l,d=Ei(l,f,d));break e}}l=l.return}while(null!==l)}Wi=zc(o)}if(Fi=r,wa(),Ai.current=a,null!==Wi)return gc.bind(null,e,t)}if(e.finishedWork=e.current.alternate,e.finishedExpirationTime=t,function(e,t){var n=e.firstBatch;return!!(null!==n&&n._defer&&n._expirationTime>=t)&&(ma(97,(function(){return n._onComplete(),null})),!0)}(e,t))return null;switch(Ri=null,qi){case 0:throw i(Error(328));case 1:return(r=e.lastPendingTime)<t?gc.bind(null,e,r):n?wc.bind(null,e):(Mc(e,t),pa(gc.bind(null,e,t)),null);case 2:return 1073741823===Ui&&!n&&10<(n=Ki+500-ua())?Gi?(Mc(e,t),gc.bind(null,e,t)):(r=e.lastPendingTime)<t?gc.bind(null,e,r):(e.timeoutHandle=Tr(wc.bind(null,e),n),null):wc.bind(null,e);case 3:if(!n){if(Gi)return Mc(e,t),gc.bind(null,e,t);if((n=e.lastPendingTime)<t)return gc.bind(null,e,n);if(1073741823!==Bi?n=10*(1073741821-Bi)-ua():1073741823===Ui?n=0:(n=10*(1073741821-Ui)-5e3,0>(n=(r=ua())-n)&&(n=0),(t=10*(1073741821-t)-r)<(n=(120>n?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*Pi(n/1960))-n)&&(n=t)),10<n)return e.timeoutHandle=Tr(wc.bind(null,e),n),null}return wc.bind(null,e);case 4:return!n&&1073741823!==Ui&&null!==Ji&&(r=Ui,0>=(t=0|(a=Ji).busyMinDurationMs)?t=0:(n=0|a.busyDelayMs,t=(r=ua()-(10*(1073741821-r)-(0|a.timeoutMs||5e3)))<=n?0:n+t-r),10<t)?(e.timeoutHandle=Tr(wc.bind(null,e),t),null):wc.bind(null,e);default:throw i(Error(329))}}function bc(e,t){e<Ui&&1<e&&(Ui=e),null!==t&&e<Bi&&1<e&&(Bi=e,Ji=t)}function Lc(e){var t=xc(e.alternate,e,Ii);return e.memoizedProps=e.pendingProps,null===t&&(t=zc(e)),Ni.current=null,t}function zc(e){Wi=e;do{var t=Wi.alternate;if(e=Wi.return,0==(1024&Wi.effectTag)){e:{var n=t,r=Ii,o=(t=Wi).pendingProps;switch(t.tag){case 2:case 16:break;case 15:case 0:break;case 1:Nr(t.type)&&Fr();break;case 3:so(),Rr(),(r=t.stateNode).pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==n&&null!==n.child||(Xo(t),t.effectTag&=-3);break;case 5:uo(t),r=io(oo.current);var c=t.type;if(null!==n&&null!=t.stateNode)yi(n,t,c,o,r),n.ref!==t.ref&&(t.effectTag|=128);else if(o){var s=io(ro.current);if(Xo(t)){o=void 0,c=(n=t).stateNode;var l=n.type,u=n.memoizedProps;switch(c[V]=n,c[j]=u,l){case"iframe":case"object":case"embed":jn("load",c);break;case"video":case"audio":for(var d=0;d<ne.length;d++)jn(ne[d],c);break;case"source":jn("error",c);break;case"img":case"image":case"link":jn("error",c),jn("load",c);break;case"form":jn("reset",c),jn("submit",c);break;case"details":jn("toggle",c);break;case"input":zt(c,u),jn("invalid",c),br(r,"onChange");break;case"select":c._wrapperState={wasMultiple:!!u.multiple},jn("invalid",c),br(r,"onChange");break;case"textarea":ar(c,u),jn("invalid",c),br(r,"onChange")}for(o in Mr(l,u),d=null,u)u.hasOwnProperty(o)&&(s=u[o],"children"===o?"string"==typeof s?c.textContent!==s&&(d=["children",s]):"number"==typeof s&&c.textContent!==""+s&&(d=["children",""+s]):h.hasOwnProperty(o)&&null!=s&&br(r,o));switch(l){case"input":qe(c),Ht(c,u,!0);break;case"textarea":qe(c),ir(c);break;case"select":case"option":break;default:"function"==typeof u.onClick&&(c.onclick=Lr)}r=d,n.updateQueue=r,null!==r&&vi(t)}else{u=c,n=o,l=t,d=9===r.nodeType?r:r.ownerDocument,s===cr&&(s=lr(u)),s===cr?"script"===u?((u=d.createElement("div")).innerHTML="<script><\/script>",d=u.removeChild(u.firstChild)):"string"==typeof n.is?d=d.createElement(u,{is:n.is}):(d=d.createElement(u),"select"===u&&(u=d,n.multiple?u.multiple=!0:n.size&&(u.size=n.size))):d=d.createElementNS(s,u),(u=d)[V]=l,u[j]=n,_i(n=u,t),l=n;var f=r,m=gr(c,o);switch(c){case"iframe":case"object":case"embed":jn("load",l),r=o;break;case"video":case"audio":for(r=0;r<ne.length;r++)jn(ne[r],l);r=o;break;case"source":jn("error",l),r=o;break;case"img":case"image":case"link":jn("error",l),jn("load",l),r=o;break;case"form":jn("reset",l),jn("submit",l),r=o;break;case"details":jn("toggle",l),r=o;break;case"input":zt(l,o),r=Lt(l,o),jn("invalid",l),br(f,"onChange");break;case"option":r=tr(l,o);break;case"select":l._wrapperState={wasMultiple:!!o.multiple},r=a({},o,{value:void 0}),jn("invalid",l),br(f,"onChange");break;case"textarea":ar(l,o),r=rr(l,o),jn("invalid",l),br(f,"onChange");break;default:r=o}Mr(c,r),u=void 0,d=c,s=l;var p=r;for(u in p)if(p.hasOwnProperty(u)){var v=p[u];"style"===u?_r(s,v):"dangerouslySetInnerHTML"===u?null!=(v=v?v.__html:void 0)&&fr(s,v):"children"===u?"string"==typeof v?("textarea"!==d||""!==v)&&hr(s,v):"number"==typeof v&&hr(s,""+v):"suppressContentEditableWarning"!==u&&"suppressHydrationWarning"!==u&&"autoFocus"!==u&&(h.hasOwnProperty(u)?null!=v&&br(f,u):null!=v&>(s,u,v,m))}switch(c){case"input":qe(l),Ht(l,o,!1);break;case"textarea":qe(l),ir(l);break;case"option":null!=o.value&&l.setAttribute("value",""+bt(o.value));break;case"select":r=l,l=o,r.multiple=!!l.multiple,null!=(u=l.value)?nr(r,!!l.multiple,u,!1):null!=l.defaultValue&&nr(r,!!l.multiple,l.defaultValue,!0);break;default:"function"==typeof r.onClick&&(l.onclick=Lr)}kr(c,o)&&vi(t),t.stateNode=n}null!==t.ref&&(t.effectTag|=128)}else if(null===t.stateNode)throw i(Error(166));break;case 6:if(n&&null!=t.stateNode)Mi(0,t,n.memoizedProps,o);else{if("string"!=typeof o&&null===t.stateNode)throw i(Error(166));n=io(oo.current),io(ro.current),Xo(t)?(r=t.stateNode,n=t.memoizedProps,r[V]=t,r.nodeValue!==n&&vi(t)):(r=t,(n=(9===n.nodeType?n:n.ownerDocument).createTextNode(o))[V]=t,r.stateNode=n)}break;case 11:break;case 13:if(xr(fo),o=t.memoizedState,0!=(64&t.effectTag)){t.expirationTime=r;break e}r=null!==o,o=!1,null===n?Xo(t):(o=null!==(c=n.memoizedState),r||null===c||null!==(c=n.child.sibling)&&(null!==(l=t.firstEffect)?(t.firstEffect=c,c.nextEffect=l):(t.firstEffect=t.lastEffect=c,c.nextEffect=null),c.effectTag=8)),r&&!o&&0!=(2&t.mode)&&(null===n&&!0!==t.memoizedProps.unstable_avoidThisFallback||0!=(1&fo.current)?0===qi&&(qi=2):0!==qi&&2!==qi||(qi=3)),(r||o)&&(t.effectTag|=4);break;case 7:case 8:case 12:break;case 4:so();break;case 10:Ha(t);break;case 9:case 14:break;case 17:Nr(t.type)&&Fr();break;case 18:break;case 19:if(xr(fo),null===(o=t.memoizedState))break;if(c=0!=(64&t.effectTag),null===(l=o.rendering)){if(c)gi(o,!1);else if(0!==qi||null!==n&&0!=(64&n.effectTag))for(n=t.child;null!==n;){if(null!==(l=ho(n))){for(t.effectTag|=64,gi(o,!1),null!==(n=l.updateQueue)&&(t.updateQueue=n,t.effectTag|=4),t.firstEffect=t.lastEffect=null,n=t.child;null!==n;)c=r,(o=n).effectTag&=2,o.nextEffect=null,o.firstEffect=null,o.lastEffect=null,null===(l=o.alternate)?(o.childExpirationTime=0,o.expirationTime=c,o.child=null,o.memoizedProps=null,o.memoizedState=null,o.updateQueue=null,o.dependencies=null):(o.childExpirationTime=l.childExpirationTime,o.expirationTime=l.expirationTime,o.child=l.child,o.memoizedProps=l.memoizedProps,o.memoizedState=l.memoizedState,o.updateQueue=l.updateQueue,c=l.dependencies,o.dependencies=null===c?null:{expirationTime:c.expirationTime,firstContext:c.firstContext,responders:c.responders}),n=n.sibling;Cr(fo,1&fo.current|2),t=t.child;break e}n=n.sibling}}else{if(!c)if(null!==(n=ho(l))){if(t.effectTag|=64,c=!0,gi(o,!0),null===o.tail&&"hidden"===o.tailMode){null!==(r=n.updateQueue)&&(t.updateQueue=r,t.effectTag|=4),null!==(t=t.lastEffect=o.lastEffect)&&(t.nextEffect=null);break}}else ua()>o.tailExpiration&&1<r&&(t.effectTag|=64,c=!0,gi(o,!1),t.expirationTime=t.childExpirationTime=r-1);o.isBackwards?(l.sibling=t.child,t.child=l):(null!==(r=o.last)?r.sibling=l:t.child=l,o.last=l)}if(null!==o.tail){0===o.tailExpiration&&(o.tailExpiration=ua()+500),r=o.tail,o.rendering=r,o.tail=r.sibling,o.lastEffect=t.lastEffect,r.sibling=null,n=fo.current,Cr(fo,n=c?1&n|2:1&n),t=r;break e}break;case 20:break;default:throw i(Error(156))}t=null}if(r=Wi,1===Ii||1!==r.childExpirationTime){for(n=0,o=r.child;null!==o;)(c=o.expirationTime)>n&&(n=c),(l=o.childExpirationTime)>n&&(n=l),o=o.sibling;r.childExpirationTime=n}if(null!==t)return t;null!==e&&0==(1024&e.effectTag)&&(null===e.firstEffect&&(e.firstEffect=Wi.firstEffect),null!==Wi.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=Wi.firstEffect),e.lastEffect=Wi.lastEffect),1<Wi.effectTag&&(null!==e.lastEffect?e.lastEffect.nextEffect=Wi:e.firstEffect=Wi,e.lastEffect=Wi))}else{if(null!==(t=bi(Wi)))return t.effectTag&=1023,t;null!==e&&(e.firstEffect=e.lastEffect=null,e.effectTag|=1024)}if(null!==(t=Wi.sibling))return t;Wi=e}while(null!==Wi);return 0===qi&&(qi=4),null}function wc(e){var t=da();return ha(99,kc.bind(null,e,t)),null!==tc&&ma(97,(function(){return Hc(),null})),null}function kc(e,t){if(Hc(),0!=(48&Fi))throw i(Error(327));var n=e.finishedWork,r=e.finishedExpirationTime;if(null===n)return null;if(e.finishedWork=null,e.finishedExpirationTime=0,n===e.current)throw i(Error(177));e.callbackNode=null,e.callbackExpirationTime=0;var a=n.expirationTime,o=n.childExpirationTime;if(a=o>a?o:a,e.firstPendingTime=a,a<e.lastPendingTime&&(e.lastPendingTime=a),e===Ri&&(Wi=Ri=null,Ii=0),1<n.effectTag?null!==n.lastEffect?(n.lastEffect.nextEffect=n,a=n.firstEffect):a=n:a=n.firstEffect,null!==a){o=Fi,Fi|=32,Ni.current=null,zr=Vn;var c=Un();if(Bn(c)){if("selectionStart"in c)var s={start:c.selectionStart,end:c.selectionEnd};else e:{var l=(s=(s=c.ownerDocument)&&s.defaultView||window).getSelection&&s.getSelection();if(l&&0!==l.rangeCount){s=l.anchorNode;var u=l.anchorOffset,d=l.focusNode;l=l.focusOffset;try{s.nodeType,d.nodeType}catch(e){s=null;break e}var f=0,h=-1,m=-1,p=0,v=0,_=c,y=null;t:for(;;){for(var M;_!==s||0!==u&&3!==_.nodeType||(h=f+u),_!==d||0!==l&&3!==_.nodeType||(m=f+l),3===_.nodeType&&(f+=_.nodeValue.length),null!==(M=_.firstChild);)y=_,_=M;for(;;){if(_===c)break t;if(y===s&&++p===u&&(h=f),y===d&&++v===l&&(m=f),null!==(M=_.nextSibling))break;y=(_=y).parentNode}_=M}s=-1===h||-1===m?null:{start:h,end:m}}else s=null}s=s||{start:0,end:0}}else s=null;wr={focusedElem:c,selectionRange:s},Vn=!1,$i=a;do{try{for(;null!==$i;){if(0!=(256&$i.effectTag)){var g=$i.alternate;switch((c=$i).tag){case 0:case 11:case 15:Hi(2,0,c);break;case 1:if(256&c.effectTag&&null!==g){var b=g.memoizedProps,L=g.memoizedState,z=c.stateNode,w=z.getSnapshotBeforeUpdate(c.elementType===c.type?b:Ma(c.type,b),L);z.__reactInternalSnapshotBeforeUpdate=w}break;case 3:case 5:case 6:case 4:case 17:break;default:throw i(Error(163))}}$i=$i.nextEffect}}catch(e){if(null===$i)throw i(Error(330));Sc($i,e),$i=$i.nextEffect}}while(null!==$i);$i=a;do{try{for(g=t;null!==$i;){var k=$i.effectTag;if(16&k&&hr($i.stateNode,""),128&k){var H=$i.alternate;if(null!==H){var T=H.ref;null!==T&&("function"==typeof T?T(null):T.current=null)}}switch(14&k){case 2:Di($i),$i.effectTag&=-3;break;case 6:Di($i),$i.effectTag&=-3,xi($i.alternate,$i);break;case 4:xi($i.alternate,$i);break;case 8:Oi(b=$i,g),b.return=null,b.child=null,b.memoizedState=null,b.updateQueue=null,b.dependencies=null;var Y=b.alternate;null!==Y&&(Y.return=null,Y.child=null,Y.memoizedState=null,Y.updateQueue=null,Y.dependencies=null)}$i=$i.nextEffect}}catch(e){if(null===$i)throw i(Error(330));Sc($i,e),$i=$i.nextEffect}}while(null!==$i);if(T=wr,H=Un(),k=T.focusedElem,g=T.selectionRange,H!==k&&k&&k.ownerDocument&&function e(t,n){return!(!t||!n)&&(t===n||(!t||3!==t.nodeType)&&(n&&3===n.nodeType?e(t,n.parentNode):"contains"in t?t.contains(n):!!t.compareDocumentPosition&&!!(16&t.compareDocumentPosition(n))))}(k.ownerDocument.documentElement,k)){null!==g&&Bn(k)&&(H=g.start,void 0===(T=g.end)&&(T=H),"selectionStart"in k?(k.selectionStart=H,k.selectionEnd=Math.min(T,k.value.length)):(T=(H=k.ownerDocument||document)&&H.defaultView||window).getSelection&&(T=T.getSelection(),b=k.textContent.length,Y=Math.min(g.start,b),g=void 0===g.end?Y:Math.min(g.end,b),!T.extend&&Y>g&&(b=g,g=Y,Y=b),b=qn(k,Y),L=qn(k,g),b&&L&&(1!==T.rangeCount||T.anchorNode!==b.node||T.anchorOffset!==b.offset||T.focusNode!==L.node||T.focusOffset!==L.offset)&&((H=H.createRange()).setStart(b.node,b.offset),T.removeAllRanges(),Y>g?(T.addRange(H),T.extend(L.node,L.offset)):(H.setEnd(L.node,L.offset),T.addRange(H))))),H=[];for(T=k;T=T.parentNode;)1===T.nodeType&&H.push({element:T,left:T.scrollLeft,top:T.scrollTop});for("function"==typeof k.focus&&k.focus(),k=0;k<H.length;k++)(T=H[k]).element.scrollLeft=T.left,T.element.scrollTop=T.top}wr=null,Vn=!!zr,zr=null,e.current=n,$i=a;do{try{for(k=r;null!==$i;){var S=$i.effectTag;if(36&S){var D=$i.alternate;switch(T=k,(H=$i).tag){case 0:case 11:case 15:Hi(16,32,H);break;case 1:var O=H.stateNode;if(4&H.effectTag)if(null===D)O.componentDidMount();else{var x=H.elementType===H.type?D.memoizedProps:Ma(H.type,D.memoizedProps);O.componentDidUpdate(x,D.memoizedState,O.__reactInternalSnapshotBeforeUpdate)}var C=H.updateQueue;null!==C&&Fa(0,C,O);break;case 3:var V=H.updateQueue;if(null!==V){if(Y=null,null!==H.child)switch(H.child.tag){case 5:Y=H.child.stateNode;break;case 1:Y=H.child.stateNode}Fa(0,V,Y)}break;case 5:var j=H.stateNode;null===D&&4&H.effectTag&&(T=j,kr(H.type,H.memoizedProps)&&T.focus());break;case 6:case 4:case 12:break;case 13:case 19:case 17:case 20:break;default:throw i(Error(163))}}if(128&S){var E=$i.ref;if(null!==E){var P=$i.stateNode;switch($i.tag){case 5:var A=P;break;default:A=P}"function"==typeof E?E(A):E.current=A}}512&S&&(ec=!0),$i=$i.nextEffect}}catch(e){if(null===$i)throw i(Error(330));Sc($i,e),$i=$i.nextEffect}}while(null!==$i);$i=null,oa(),Fi=o}else e.current=n;if(ec)ec=!1,tc=e,rc=r,nc=t;else for($i=a;null!==$i;)t=$i.nextEffect,$i.nextEffect=null,$i=t;if(0!==(t=e.firstPendingTime)?hc(e,S=ya(S=sc(),t),t):Zi=null,"function"==typeof Cc&&Cc(n.stateNode,r),1073741823===t?e===ic?oc++:(oc=0,ic=e):oc=0,Qi)throw Qi=!1,e=Xi,Xi=null,e;return 0!=(8&Fi)||va(),null}function Hc(){if(null===tc)return!1;var e=tc,t=rc,n=nc;return tc=null,rc=0,nc=90,ha(97<n?97:n,Tc.bind(null,e,t))}function Tc(e){if(0!=(48&Fi))throw i(Error(331));var t=Fi;for(Fi|=32,e=e.current.firstEffect;null!==e;){try{var n=e;if(0!=(512&n.effectTag))switch(n.tag){case 0:case 11:case 15:Hi(128,0,n),Hi(0,64,n)}}catch(t){if(null===e)throw i(Error(330));Sc(e,t)}n=e.nextEffect,e.nextEffect=null,e=n}return Fi=t,va(),!0}function Yc(e,t,n){ja(e,t=ji(e,t=Li(n,t),1073741823)),null!==(e=fc(e,1073741823))&&hc(e,99,1073741823)}function Sc(e,t){if(3===e.tag)Yc(e,e,t);else for(var n=e.return;null!==n;){if(3===n.tag){Yc(n,e,t);break}if(1===n.tag){var r=n.stateNode;if("function"==typeof n.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Zi||!Zi.has(r))){ja(n,e=Ei(n,e=Li(t,e),1073741823)),null!==(n=fc(n,1073741823))&&hc(n,99,1073741823);break}}n=n.return}}function Dc(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),Ri===e&&Ii===n?3===qi||2===qi&&1073741823===Ui&&ua()-Ki<500?Mc(e,Ii):Gi=!0:e.lastPendingTime<n||(0!==(t=e.pingTime)&&t<n||(e.pingTime=n,e.finishedExpirationTime===n&&(e.finishedExpirationTime=0,e.finishedWork=null),hc(e,t=ya(t=sc(),n),n)))}function Oc(e,t){var n=e.stateNode;null!==n&&n.delete(t),n=ya(n=sc(),t=lc(n,e,null)),null!==(e=fc(e,t))&&hc(e,n,t)}var xc=void 0;xc=function(e,t,n){var r=t.expirationTime;if(null!==e){var a=t.pendingProps;if(e.memoizedProps!==a||Er.current)ti=!0;else if(r<n){switch(ti=!1,t.tag){case 3:ui(t),Zo();break;case 5:if(lo(t),4&t.mode&&1!==n&&a.hidden)return t.expirationTime=t.childExpirationTime=1,null;break;case 1:Nr(t.type)&&qr(t);break;case 4:co(t,t.stateNode.containerInfo);break;case 10:ka(t,t.memoizedProps.value);break;case 13:if(null!==t.memoizedState)return 0!==(r=t.child.childExpirationTime)&&r>=n?fi(e,t,n):(Cr(fo,1&fo.current),null!==(t=pi(e,t,n))?t.sibling:null);Cr(fo,1&fo.current);break;case 19:if(r=t.childExpirationTime>=n,0!=(64&e.effectTag)){if(r)return mi(e,t,n);t.effectTag|=64}if(null!==(a=t.memoizedState)&&(a.rendering=null,a.tail=null),Cr(fo,fo.current),!r)return null}return pi(e,t,n)}}else ti=!1;switch(t.expirationTime=0,t.tag){case 2:if(r=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),e=t.pendingProps,a=Ar(t,jr.current),Ya(t,n),a=Do(null,t,r,e,a,n),t.effectTag|=1,"object"==typeof a&&null!==a&&"function"==typeof a.render&&void 0===a.$$typeof){if(t.tag=1,Oo(),Nr(r)){var o=!0;qr(t)}else o=!1;t.memoizedState=null!==a.state&&void 0!==a.state?a.state:null;var c=r.getDerivedStateFromProps;"function"==typeof c&&qa(t,r,c,e),a.updater=Ua,t.stateNode=a,a._reactInternalFiber=t,Ka(t,r,e,n),t=li(null,t,r,!0,o,n)}else t.tag=0,ni(null,t,a,n),t=t.child;return t;case 16:switch(a=t.elementType,null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),e=t.pendingProps,a=function(e){var t=e._result;switch(e._status){case 1:return t;case 2:case 0:throw t;default:switch(e._status=0,(t=(t=e._ctor)()).then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)})),e._status){case 1:return e._result;case 2:throw e._result}throw e._result=t,t}}(a),t.type=a,o=t.tag=function(e){if("function"==typeof e)return Pc(e)?1:0;if(null!=e){if((e=e.$$typeof)===rt)return 11;if(e===it)return 14}return 2}(a),e=Ma(a,e),o){case 0:t=ci(null,t,a,e,n);break;case 1:t=si(null,t,a,e,n);break;case 11:t=ri(null,t,a,e,n);break;case 14:t=ai(null,t,a,Ma(a.type,e),r,n);break;default:throw i(Error(306),a,"")}return t;case 0:return r=t.type,a=t.pendingProps,ci(e,t,r,a=t.elementType===r?a:Ma(r,a),n);case 1:return r=t.type,a=t.pendingProps,si(e,t,r,a=t.elementType===r?a:Ma(r,a),n);case 3:if(ui(t),null===(r=t.updateQueue))throw i(Error(282));return a=null!==(a=t.memoizedState)?a.element:null,Na(t,r,t.pendingProps,null,n),(r=t.memoizedState.element)===a?(Zo(),t=pi(e,t,n)):(a=t.stateNode,(a=(null===e||null===e.child)&&a.hydrate)&&(Bo=Sr(t.stateNode.containerInfo.firstChild),Uo=t,a=Jo=!0),a?(t.effectTag|=2,t.child=to(t,null,r,n)):(ni(e,t,r,n),Zo()),t=t.child),t;case 5:return lo(t),null===e&&$o(t),r=t.type,a=t.pendingProps,o=null!==e?e.memoizedProps:null,c=a.children,Hr(r,a)?c=null:null!==o&&Hr(r,o)&&(t.effectTag|=16),ii(e,t),4&t.mode&&1!==n&&a.hidden?(t.expirationTime=t.childExpirationTime=1,t=null):(ni(e,t,c,n),t=t.child),t;case 6:return null===e&&$o(t),null;case 13:return fi(e,t,n);case 4:return co(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=eo(t,null,r,n):ni(e,t,r,n),t.child;case 11:return r=t.type,a=t.pendingProps,ri(e,t,r,a=t.elementType===r?a:Ma(r,a),n);case 7:return ni(e,t,t.pendingProps,n),t.child;case 8:case 12:return ni(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,a=t.pendingProps,c=t.memoizedProps,ka(t,o=a.value),null!==c){var s=c.value;if(0===(o=tn(s,o)?0:0|("function"==typeof r._calculateChangedBits?r._calculateChangedBits(s,o):1073741823))){if(c.children===a.children&&!Er.current){t=pi(e,t,n);break e}}else for(null!==(s=t.child)&&(s.return=t);null!==s;){var l=s.dependencies;if(null!==l){c=s.child;for(var u=l.firstContext;null!==u;){if(u.context===r&&0!=(u.observedBits&o)){1===s.tag&&((u=Ca(n,null)).tag=2,ja(s,u)),s.expirationTime<n&&(s.expirationTime=n),null!==(u=s.alternate)&&u.expirationTime<n&&(u.expirationTime=n),Ta(s.return,n),l.expirationTime<n&&(l.expirationTime=n);break}u=u.next}}else c=10===s.tag&&s.type===t.type?null:s.child;if(null!==c)c.return=s;else for(c=s;null!==c;){if(c===t){c=null;break}if(null!==(s=c.sibling)){s.return=c.return,c=s;break}c=c.return}s=c}}ni(e,t,a.children,n),t=t.child}return t;case 9:return a=t.type,r=(o=t.pendingProps).children,Ya(t,n),r=r(a=Sa(a,o.unstable_observedBits)),t.effectTag|=1,ni(e,t,r,n),t.child;case 14:return o=Ma(a=t.type,t.pendingProps),ai(e,t,a,o=Ma(a.type,o),r,n);case 15:return oi(e,t,t.type,t.pendingProps,r,n);case 17:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:Ma(r,a),null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),t.tag=1,Nr(r)?(e=!0,qr(t)):e=!1,Ya(t,n),Ja(t,r,a),Ka(t,r,a,n),li(null,t,r,!0,e,n);case 19:return mi(e,t,n)}throw i(Error(156))};var Cc=null,Vc=null;function jc(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.effectTag=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childExpirationTime=this.expirationTime=0,this.alternate=null}function Ec(e,t,n,r){return new jc(e,t,n,r)}function Pc(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Ac(e,t){var n=e.alternate;return null===n?((n=Ec(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.effectTag=0,n.nextEffect=null,n.firstEffect=null,n.lastEffect=null),n.childExpirationTime=e.childExpirationTime,n.expirationTime=e.expirationTime,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{expirationTime:t.expirationTime,firstContext:t.firstContext,responders:t.responders},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Nc(e,t,n,r,a,o){var c=2;if(r=e,"function"==typeof e)Pc(e)&&(c=1);else if("string"==typeof e)c=5;else e:switch(e){case Qe:return Fc(n.children,a,o,t);case nt:c=8,a|=7;break;case Xe:c=8,a|=1;break;case Ze:return(e=Ec(12,n,t,8|a)).elementType=Ze,e.type=Ze,e.expirationTime=o,e;case at:return(e=Ec(13,n,t,a)).type=at,e.elementType=at,e.expirationTime=o,e;case ot:return(e=Ec(19,n,t,a)).elementType=ot,e.expirationTime=o,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case et:c=10;break e;case tt:c=9;break e;case rt:c=11;break e;case it:c=14;break e;case ct:c=16,r=null;break e}throw i(Error(130),null==e?e:typeof e,"")}return(t=Ec(c,n,t,a)).elementType=e,t.type=r,t.expirationTime=o,t}function Fc(e,t,n,r){return(e=Ec(7,e,r,t)).expirationTime=n,e}function Rc(e,t,n){return(e=Ec(6,e,null,t)).expirationTime=n,e}function Wc(e,t,n){return(t=Ec(4,null!==e.children?e.children:[],e.key,t)).expirationTime=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Ic(e,t,n){this.tag=t,this.current=null,this.containerInfo=e,this.pingCache=this.pendingChildren=null,this.finishedExpirationTime=0,this.finishedWork=null,this.timeoutHandle=-1,this.pendingContext=this.context=null,this.hydrate=n,this.callbackNode=this.firstBatch=null,this.pingTime=this.lastPendingTime=this.firstPendingTime=this.callbackExpirationTime=0}function qc(e,t,n){return e=new Ic(e,t,n),t=Ec(3,null,null,2===t?7:1===t?3:0),e.current=t,t.stateNode=e}function Uc(e,t,n,r,a,o){var c=t.current;e:if(n){t:{if(2!==on(n=n._reactInternalFiber)||1!==n.tag)throw i(Error(170));var s=n;do{switch(s.tag){case 3:s=s.stateNode.context;break t;case 1:if(Nr(s.type)){s=s.stateNode.__reactInternalMemoizedMergedChildContext;break t}}s=s.return}while(null!==s);throw i(Error(171))}if(1===n.tag){var l=n.type;if(Nr(l)){n=Ir(n,l,s);break e}}n=s}else n=Vr;return null===t.context?t.context=n:t.pendingContext=n,t=o,(a=Ca(r,a)).payload={element:e},null!==(t=void 0===t?null:t)&&(a.callback=t),ja(c,a),dc(c,r),r}function Bc(e,t,n,r){var a=t.current,o=sc(),i=Wa.suspense;return Uc(e,t,n,a=lc(o,a,i),i,r)}function Jc(e){if(!(e=e.current).child)return null;switch(e.child.tag){case 5:default:return e.child.stateNode}}function Gc(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:$e,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}function Kc(e){var t=1073741821-25*(1+((1073741821-sc()+500)/25|0));t<=uc&&--t,this._expirationTime=uc=t,this._root=e,this._callbacks=this._next=null,this._hasChildren=this._didComplete=!1,this._children=null,this._defer=!0}function $c(){this._callbacks=null,this._didCommit=!1,this._onCommit=this._onCommit.bind(this)}function Qc(e,t,n){this._internalRoot=qc(e,t,n)}function Xc(e,t){this._internalRoot=qc(e,2,t)}function Zc(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function es(e,t,n,r,a){var o=n._reactRootContainer,i=void 0;if(o){if(i=o._internalRoot,"function"==typeof a){var c=a;a=function(){var e=Jc(i);c.call(e)}}Bc(t,i,e,a)}else{if(o=n._reactRootContainer=function(e,t){if(t||(t=!(!(t=e?9===e.nodeType?e.documentElement:e.firstChild:null)||1!==t.nodeType||!t.hasAttribute("data-reactroot"))),!t)for(var n;n=e.lastChild;)e.removeChild(n);return new Qc(e,0,t)}(n,r),i=o._internalRoot,"function"==typeof a){var s=a;a=function(){var e=Jc(i);s.call(e)}}yc((function(){Bc(t,i,e,a)}))}return Jc(i)}function ts(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!Zc(t))throw i(Error(200));return Gc(e,t,null,n)}Te=function(e,t,n){switch(t){case"input":if(kt(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=N(r);if(!a)throw i(Error(90));Ue(r),kt(r,a)}}}break;case"textarea":or(e,n);break;case"select":null!=(t=n.value)&&nr(e,!!n.multiple,t,!1)}},Kc.prototype.render=function(e){if(!this._defer)throw i(Error(250));this._hasChildren=!0,this._children=e;var t=this._root._internalRoot,n=this._expirationTime,r=new $c;return Uc(e,t,null,n,null,r._onCommit),r},Kc.prototype.then=function(e){if(this._didComplete)e();else{var t=this._callbacks;null===t&&(t=this._callbacks=[]),t.push(e)}},Kc.prototype.commit=function(){var e=this._root._internalRoot,t=e.firstBatch;if(!this._defer||null===t)throw i(Error(251));if(this._hasChildren){var n=this._expirationTime;if(t!==this){this._hasChildren&&(n=this._expirationTime=t._expirationTime,this.render(this._children));for(var r=null,a=t;a!==this;)r=a,a=a._next;if(null===r)throw i(Error(251));r._next=a._next,this._next=t,e.firstBatch=this}if(this._defer=!1,t=n,0!=(48&Fi))throw i(Error(253));pa(gc.bind(null,e,t)),va(),t=this._next,this._next=null,null!==(t=e.firstBatch=t)&&t._hasChildren&&t.render(t._children)}else this._next=null,this._defer=!1},Kc.prototype._onComplete=function(){if(!this._didComplete){this._didComplete=!0;var e=this._callbacks;if(null!==e)for(var t=0;t<e.length;t++)(0,e[t])()}},$c.prototype.then=function(e){if(this._didCommit)e();else{var t=this._callbacks;null===t&&(t=this._callbacks=[]),t.push(e)}},$c.prototype._onCommit=function(){if(!this._didCommit){this._didCommit=!0;var e=this._callbacks;if(null!==e)for(var t=0;t<e.length;t++){var n=e[t];if("function"!=typeof n)throw i(Error(191),n);n()}}},Xc.prototype.render=Qc.prototype.render=function(e,t){var n=this._internalRoot,r=new $c;return null!==(t=void 0===t?null:t)&&r.then(t),Bc(e,n,null,r._onCommit),r},Xc.prototype.unmount=Qc.prototype.unmount=function(e){var t=this._internalRoot,n=new $c;return null!==(e=void 0===e?null:e)&&n.then(e),Bc(null,t,null,n._onCommit),n},Xc.prototype.createBatch=function(){var e=new Kc(this),t=e._expirationTime,n=this._internalRoot,r=n.firstBatch;if(null===r)n.firstBatch=e,e._next=null;else{for(n=null;null!==r&&r._expirationTime>=t;)n=r,r=r._next;e._next=r,null!==n&&(n._next=e)}return e},Ce=vc,Ve=_c,je=pc,Ee=function(e,t){var n=Fi;Fi|=2;try{return e(t)}finally{0===(Fi=n)&&va()}};var ns,rs,as={createPortal:ts,findDOMNode:function(e){if(null==e)e=null;else if(1!==e.nodeType){var t=e._reactInternalFiber;if(void 0===t){if("function"==typeof e.render)throw i(Error(188));throw i(Error(268),Object.keys(e))}e=null===(e=sn(t))?null:e.stateNode}return e},hydrate:function(e,t,n){if(!Zc(t))throw i(Error(200));return es(null,e,t,!0,n)},render:function(e,t,n){if(!Zc(t))throw i(Error(200));return es(null,e,t,!1,n)},unstable_renderSubtreeIntoContainer:function(e,t,n,r){if(!Zc(n))throw i(Error(200));if(null==e||void 0===e._reactInternalFiber)throw i(Error(38));return es(e,t,n,!1,r)},unmountComponentAtNode:function(e){if(!Zc(e))throw i(Error(40));return!!e._reactRootContainer&&(yc((function(){es(null,null,e,!1,(function(){e._reactRootContainer=null}))})),!0)},unstable_createPortal:function(){return ts.apply(void 0,arguments)},unstable_batchedUpdates:vc,unstable_interactiveUpdates:function(e,t,n,r){return pc(),_c(e,t,n,r)},unstable_discreteUpdates:_c,unstable_flushDiscreteUpdates:pc,flushSync:function(e,t){if(0!=(48&Fi))throw i(Error(187));var n=Fi;Fi|=1;try{return ha(99,e.bind(null,t))}finally{Fi=n,va()}},unstable_createRoot:function(e,t){if(!Zc(e))throw i(Error(299),"unstable_createRoot");return new Xc(e,null!=t&&!0===t.hydrate)},unstable_createSyncRoot:function(e,t){if(!Zc(e))throw i(Error(299),"unstable_createRoot");return new Qc(e,1,null!=t&&!0===t.hydrate)},unstable_flushControlled:function(e){var t=Fi;Fi|=1;try{ha(99,e)}finally{0===(Fi=t)&&va()}},__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{Events:[P,A,N,O.injectEventPluginsByName,f,U,function(e){T(e,q)},Oe,xe,Nn,D,Hc,{current:!1}]}};rs=(ns={findFiberByHostInstance:E,bundleType:0,version:"16.9.0",rendererPackageName:"react-dom"}).findFiberByHostInstance,function(e){if("undefined"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)return!1;var t=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(t.isDisabled||!t.supportsFiber)return!0;try{var n=t.inject(e);Cc=function(e){try{t.onCommitFiberRoot(n,e,void 0,64==(64&e.current.effectTag))}catch(e){}},Vc=function(e){try{t.onCommitFiberUnmount(n,e)}catch(e){}}}catch(e){}}(a({},ns,{overrideHookState:null,overrideProps:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:Be.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=sn(e))?null:e.stateNode},findFiberByHostInstance:function(e){return rs?rs(e):null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null}));var os={default:as},is=os&&as||os;e.exports=is.default||is},function(e,t,n){"use strict";e.exports=n(277)},function(e,t,n){"use strict"; /** @license React v0.15.0 * scheduler.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */Object.defineProperty(t,"__esModule",{value:!0});var r=void 0,a=void 0,o=void 0,i=void 0,c=void 0;if(t.unstable_now=void 0,t.unstable_forceFrameRate=void 0,"undefined"==typeof window||"function"!=typeof MessageChannel){var s=null,l=null,u=function(){if(null!==s)try{var e=t.unstable_now();s(!0,e),s=null}catch(e){throw setTimeout(u,0),e}};t.unstable_now=function(){return Date.now()},r=function(e){null!==s?setTimeout(r,0,e):(s=e,setTimeout(u,0))},a=function(e,t){l=setTimeout(e,t)},o=function(){clearTimeout(l)},i=function(){return!1},c=t.unstable_forceFrameRate=function(){}}else{var d=window.performance,f=window.Date,h=window.setTimeout,m=window.clearTimeout,p=window.requestAnimationFrame,v=window.cancelAnimationFrame;"undefined"!=typeof console&&("function"!=typeof p&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),"function"!=typeof v&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills")),t.unstable_now="object"==typeof d&&"function"==typeof d.now?function(){return d.now()}:function(){return f.now()};var _=!1,y=null,M=-1,g=-1,b=33.33,L=-1,z=-1,w=0,k=!1;i=function(){return t.unstable_now()>=w},c=function(){},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing framerates higher than 125 fps is not unsupported"):0<e?(b=Math.floor(1e3/e),k=!0):(b=33.33,k=!1)};var H=function(){if(null!==y){var e=t.unstable_now(),n=0<w-e;try{y(n,e)||(y=null)}catch(e){throw Y.postMessage(null),e}}},T=new MessageChannel,Y=T.port2;T.port1.onmessage=H;var S=function(e){if(null===y)z=L=-1,_=!1;else{_=!0,p((function(e){m(M),S(e)}));var n=function(){w=t.unstable_now()+b/2,H(),M=h(n,3*b)};if(M=h(n,3*b),-1!==L&&.1<e-L){var r=e-L;!k&&-1!==z&&r<b&&z<b&&(8.33>(b=r<z?z:r)&&(b=8.33)),z=r}L=e,w=e+b,Y.postMessage(null)}};r=function(e){y=e,_||(_=!0,p((function(e){S(e)})))},a=function(e,n){g=h((function(){e(t.unstable_now())}),n)},o=function(){m(g),g=-1}}var D=null,O=null,x=null,C=3,V=!1,j=!1,E=!1;function P(e,t){var n=e.next;if(n===e)D=null;else{e===D&&(D=n);var r=e.previous;r.next=n,n.previous=r}e.next=e.previous=null,n=e.callback,r=C;var a=x;C=e.priorityLevel,x=e;try{var o=e.expirationTime<=t;switch(C){case 1:var i=n(o);break;case 2:case 3:case 4:i=n(o);break;case 5:i=n(o)}}catch(e){throw e}finally{C=r,x=a}if("function"==typeof i)if(t=e.expirationTime,e.callback=i,null===D)D=e.next=e.previous=e;else{i=null,o=D;do{if(t<=o.expirationTime){i=o;break}o=o.next}while(o!==D);null===i?i=D:i===D&&(D=e),(t=i.previous).next=i.previous=e,e.next=i,e.previous=t}}function A(e){if(null!==O&&O.startTime<=e)do{var t=O,n=t.next;if(t===n)O=null;else{O=n;var r=t.previous;r.next=n,n.previous=r}t.next=t.previous=null,W(t,t.expirationTime)}while(null!==O&&O.startTime<=e)}function N(e){E=!1,A(e),j||(null!==D?(j=!0,r(F)):null!==O&&a(N,O.startTime-e))}function F(e,n){j=!1,E&&(E=!1,o()),A(n),V=!0;try{if(e){if(null!==D)do{P(D,n),A(n=t.unstable_now())}while(null!==D&&!i())}else for(;null!==D&&D.expirationTime<=n;)P(D,n),A(n=t.unstable_now());return null!==D||(null!==O&&a(N,O.startTime-n),!1)}finally{V=!1}}function R(e){switch(e){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1e4;default:return 5e3}}function W(e,t){if(null===D)D=e.next=e.previous=e;else{var n=null,r=D;do{if(t<r.expirationTime){n=r;break}r=r.next}while(r!==D);null===n?n=D:n===D&&(D=e),(t=n.previous).next=n.previous=e,e.next=n,e.previous=t}}var I=c;t.unstable_ImmediatePriority=1,t.unstable_UserBlockingPriority=2,t.unstable_NormalPriority=3,t.unstable_IdlePriority=5,t.unstable_LowPriority=4,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=C;C=e;try{return t()}finally{C=n}},t.unstable_next=function(e){switch(C){case 1:case 2:case 3:var t=3;break;default:t=C}var n=C;C=t;try{return e()}finally{C=n}},t.unstable_scheduleCallback=function(e,n,i){var c=t.unstable_now();if("object"==typeof i&&null!==i){var s=i.delay;s="number"==typeof s&&0<s?c+s:c,i="number"==typeof i.timeout?i.timeout:R(e)}else i=R(e),s=c;if(e={callback:n,priorityLevel:e,startTime:s,expirationTime:i=s+i,next:null,previous:null},s>c){if(i=s,null===O)O=e.next=e.previous=e;else{n=null;var l=O;do{if(i<l.startTime){n=l;break}l=l.next}while(l!==O);null===n?n=O:n===O&&(O=e),(i=n.previous).next=n.previous=e,e.next=n,e.previous=i}null===D&&O===e&&(E?o():E=!0,a(N,s-c))}else W(e,i),j||V||(j=!0,r(F));return e},t.unstable_cancelCallback=function(e){var t=e.next;if(null!==t){if(e===t)e===D?D=null:e===O&&(O=null);else{e===D?D=t:e===O&&(O=t);var n=e.previous;n.next=t,t.previous=n}e.next=e.previous=null}},t.unstable_wrapCallback=function(e){var t=C;return function(){var n=C;C=t;try{return e.apply(this,arguments)}finally{C=n}}},t.unstable_getCurrentPriorityLevel=function(){return C},t.unstable_shouldYield=function(){var e=t.unstable_now();return A(e),null!==x&&null!==D&&D.startTime<=e&&D.expirationTime<x.expirationTime||i()},t.unstable_requestPaint=I,t.unstable_continueExecution=function(){j||V||(j=!0,r(F))},t.unstable_pauseExecution=function(){},t.unstable_getFirstCallbackNode=function(){return D}},function(e,t,n){ /** @license ISC License (c) copyright 2016 original and current authors */ var r=n(58),a=n(59),o=n(279),i=n(19),c=n(60),s=n(61),l=function(e){return function(){return e}};function u(e){return function(t,n){var r=n.tag,a=e[r()].reduce((function(e,t){return e.concat([n[t].value()])}),[]);return t[r()].apply(null,a)}}var d=function(e){return function(t){return!!t&&i(t.tag)&&-1!==Object.keys(e).indexOf(t.tag())}};e.exports=function(e){if(!c(e)||o(e))throw new TypeError("defineUnion: Argument must be an Object containing definition lists");return Object.keys(e).reduce((function(t,n){var r=e[n];if(!a(r)||!r.reduce((function(e,t){return e&&function(e){return s(e)&&e.length}(t)}),!0))throw new TypeError("defineUnion: Definitions must be a list of non-empty string identifiers");return t[n]=function(e,t){return function(){for(var n=[],r=arguments.length;r--;)n[r]=arguments[r];return e.reduce((function(e,t,r){return e[t]={value:l(n[r])},e}),{tag:l(t)})}}(r,n),t}),{caseOf:r(u(e)),includes:r(d(e))})}},function(e,t,n){ /** @license ISC License (c) copyright 2016 original and current authors */ var r=n(60),a=n(280),o=n(89),i=n(46);e.exports=function(e){if(a(e)){var t=e.constructor[i.empty]||e.constructor.empty||e.empty;return o(e,t())}return r(e)?!Object.keys(e).length:!e||void 0===e.length||!e.length}},function(e,t,n){ /** @license ISC License (c) copyright 2016 original and current authors */ var r=n(31),a=n(88);e.exports=function(e){return a(e)&&(r("empty",e)||r("empty",e.constructor))}},function(e,t){e.exports= /** @license ISC License (c) copyright 2017 original and current authors */ function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}},function(e,t){e.exports=function(e){return function(t){return-1!==e.indexOf(t)}}},function(e,t,n){ /** @license ISC License (c) copyright 2017 original and current authors */ var r=n(47),a=n(88);e.exports=function(e,t){return function(n){if(!a(n))throw new TypeError(e+": Both containers must contain Semigroups of the same type");return t.map((function(t){if(!r(n,t))throw new TypeError(e+": Both containers must contain Semigroups of the same type");return n.concat(t)}))}}},function(e,t,n){ /** @license ISC License (c) copyright 2016 original and current authors */ var r=n(59),a=n(19),o=n(60),i=n(61),c=n(285),s=n(286);function l(e){return e&&a(e.inspect)?" "+e.inspect():a(e)?" Function":r(e)?" ["+(((t=e).length?t.map(l).reduce((function(e,t){return e+","+t})):t)+" ]"):o(e)?" { "+Object.keys(e).reduce((function(t,n){return t.concat([n+":"+l(e[n])])}),[]).join(", ")+" }":i(e)?' "'+e+'"':c(e)||s(e)?" "+e.toString():" "+e;var t}e.exports=l},function(e,t){e.exports= /** @license ISC License (c) copyright 2018 original and current authors */ function(e){return"symbol"==typeof e}},function(e,t){e.exports= /** @license ISC License (c) copyright 2018 original and current authors */ function(e){return"[object Date]"===Object.prototype.toString.apply(e)&&!isNaN(e.valueOf())}},function(e,t,n){ /** @license ISC License (c) copyright 2018 original and current authors */ var r=n(91),a=n(289);e.exports=function(e){return function(t){return r(e)?e.of(t):a(Array,e)?[t]:e(t)}}},function(e,t,n){ /** @license ISC License (c) copyright 2016 original and current authors */ var r=n(31);e.exports=function(e){return!!e&&r("map",e)}},function(e,t,n){ /** @license ISC License (c) copyright 2018 original and current authors */ var r=n(19);e.exports=function(e,t){return r(t)&&(e===t||e.name===t.name)}},function(e,t){e.exports= /** @license ISC License (c) copyright 2016 original and current authors */ function(e,t){return function(n){return e(t(n))}}},function(e,t,n){ /** @license ISC License (c) copyright 2017 original and current authors */ var r=n(19);e.exports=function(e,t){return r(e)?e(t):e.runWith(t)}},function(e,t,n){ /** @license ISC License (c) copyright 2018 original and current authors */ var r=n(62).proxy("Pred"),a=n(19),o=n(47);e.exports=function(e){return a(e)||o(r,e)}},function(e,t){e.exports=function(e){if(Array.isArray(e))return e},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){e.exports=function(e,t){var n=e&&("undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"]);if(null!=n){var r,a,o=[],i=!0,c=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);i=!0);}catch(e){c=!0,a=e}finally{try{i||null==n.return||n.return()}finally{if(c)throw a}}return o}},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){},function(e,t,n){},function(e,t){e.exports=function(e){if(!e.webpackPolyfill){var t=Object.create(e);t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),Object.defineProperty(t,"exports",{enumerable:!0}),t.webpackPolyfill=1}return t}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r="0 0 1024 1024",a="64 64 896 896",o="fill",i="outline",c="twotone";function s(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];return{tag:"svg",attrs:{viewBox:e,focusable:!1},children:t.map((function(e){return Array.isArray(e)?{tag:"path",attrs:{fill:e[0],d:e[1]}}:{tag:"path",attrs:{d:e}}}))}}function l(e,t,n){return{name:e,theme:t,icon:n}}t.AccountBookFill=l("account-book",o,s(a,"M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zM648.3 426.8l-87.7 161.1h45.7c5.5 0 10 4.5 10 10v21.3c0 5.5-4.5 10-10 10h-63.4v29.7h63.4c5.5 0 10 4.5 10 10v21.3c0 5.5-4.5 10-10 10h-63.4V752c0 5.5-4.5 10-10 10h-41.3c-5.5 0-10-4.5-10-10v-51.8h-63.1c-5.5 0-10-4.5-10-10v-21.3c0-5.5 4.5-10 10-10h63.1v-29.7h-63.1c-5.5 0-10-4.5-10-10v-21.3c0-5.5 4.5-10 10-10h45.2l-88-161.1c-2.6-4.8-.9-10.9 4-13.6 1.5-.8 3.1-1.2 4.8-1.2h46c3.8 0 7.2 2.1 8.9 5.5l72.9 144.3 73.2-144.3a10 10 0 0 1 8.9-5.5h45c5.5 0 10 4.5 10 10 .1 1.7-.3 3.3-1.1 4.8z")),t.AlertFill=l("alert",o,s(a,"M512 244c176.18 0 319 142.82 319 319v233a32 32 0 0 1-32 32H225a32 32 0 0 1-32-32V563c0-176.18 142.82-319 319-319zM484 68h56a8 8 0 0 1 8 8v96a8 8 0 0 1-8 8h-56a8 8 0 0 1-8-8V76a8 8 0 0 1 8-8zM177.25 191.66a8 8 0 0 1 11.32 0l67.88 67.88a8 8 0 0 1 0 11.31l-39.6 39.6a8 8 0 0 1-11.31 0l-67.88-67.88a8 8 0 0 1 0-11.31l39.6-39.6zm669.6 0l39.6 39.6a8 8 0 0 1 0 11.3l-67.88 67.9a8 8 0 0 1-11.32 0l-39.6-39.6a8 8 0 0 1 0-11.32l67.89-67.88a8 8 0 0 1 11.31 0zM192 892h640a32 32 0 0 1 32 32v24a8 8 0 0 1-8 8H168a8 8 0 0 1-8-8v-24a32 32 0 0 1 32-32zm148-317v253h64V575h-64z")),t.AlipaySquareFill=l("alipay-square",o,s(a,"M308.6 545.7c-19.8 2-57.1 10.7-77.4 28.6-61 53-24.5 150 99 150 71.8 0 143.5-45.7 199.8-119-80.2-38.9-148.1-66.8-221.4-59.6zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm29.4 663.2S703 689.4 598.7 639.5C528.8 725.2 438.6 777.3 345 777.3c-158.4 0-212.1-138.1-137.2-229 16.3-19.8 44.2-38.7 87.3-49.4 67.5-16.5 175 10.3 275.7 43.4 18.1-33.3 33.4-69.9 44.7-108.9H305.1V402h160v-56.2H271.3v-31.3h193.8v-80.1s0-13.5 13.7-13.5H557v93.6h191.7v31.3H557.1V402h156.4c-15 61.1-37.7 117.4-66.2 166.8 47.5 17.1 90.1 33.3 121.8 43.9 114.3 38.2 140.2 40.2 140.2 40.2v122.3z")),t.AliwangwangFill=l("aliwangwang",o,s(a,"M868.2 377.4c-18.9-45.1-46.3-85.6-81.2-120.6a377.26 377.26 0 0 0-120.5-81.2A375.65 375.65 0 0 0 519 145.8c-41.9 0-82.9 6.7-121.9 20C306 123.3 200.8 120 170.6 120c-2.2 0-7.4 0-9.4.2-11.9.4-22.8 6.5-29.2 16.4-6.5 9.9-7.7 22.4-3.4 33.5l64.3 161.6a378.59 378.59 0 0 0-52.8 193.2c0 51.4 10 101 29.8 147.6 18.9 45 46.2 85.6 81.2 120.5 34.7 34.8 75.4 62.1 120.5 81.2C418.3 894 467.9 904 519 904c51.3 0 100.9-10 147.7-29.8 44.9-18.9 85.5-46.3 120.4-81.2 34.7-34.8 62.1-75.4 81.2-120.6a376.5 376.5 0 0 0 29.8-147.6c-.2-51.2-10.1-100.8-29.9-147.4zm-325.2 79c0 20.4-16.6 37.1-37.1 37.1-20.4 0-37.1-16.7-37.1-37.1v-55.1c0-20.4 16.6-37.1 37.1-37.1 20.4 0 37.1 16.6 37.1 37.1v55.1zm175.2 0c0 20.4-16.6 37.1-37.1 37.1S644 476.8 644 456.4v-55.1c0-20.4 16.7-37.1 37.1-37.1 20.4 0 37.1 16.6 37.1 37.1v55.1z")),t.AlipayCircleFill=l("alipay-circle",o,s(a,"M308.6 545.7c-19.8 2-57.1 10.7-77.4 28.6-61 53-24.5 150 99 150 71.8 0 143.5-45.7 199.8-119-80.2-38.9-148.1-66.8-221.4-59.6zm460.5 67c100.1 33.4 154.7 43 166.7 44.8A445.9 445.9 0 0 0 960 512c0-247.4-200.6-448-448-448S64 264.6 64 512s200.6 448 448 448c155.9 0 293.2-79.7 373.5-200.5-75.6-29.8-213.6-85-286.8-120.1-69.9 85.7-160.1 137.8-253.7 137.8-158.4 0-212.1-138.1-137.2-229 16.3-19.8 44.2-38.7 87.3-49.4 67.5-16.5 175 10.3 275.7 43.4 18.1-33.3 33.4-69.9 44.7-108.9H305.1V402h160v-56.2H271.3v-31.3h193.8v-80.1s0-13.5 13.7-13.5H557v93.6h191.7v31.3H557.1V402h156.4c-15 61.1-37.7 117.4-66.2 166.8 47.5 17.1 90.1 33.3 121.8 43.9z")),t.AmazonCircleFill=l("amazon-circle",o,s(a,"M485 467.5c-11.6 4.9-20.9 12.2-27.8 22-6.9 9.8-10.4 21.6-10.4 35.5 0 17.8 7.5 31.5 22.4 41.2 14.1 9.1 28.9 11.4 44.4 6.8 17.9-5.2 30-17.9 36.4-38.1 3-9.3 4.5-19.7 4.5-31.3v-50.2c-12.6.4-24.4 1.6-35.5 3.7-11.1 2.1-22.4 5.6-34 10.4zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm35.8 262.7c-7.2-10.9-20.1-16.4-38.7-16.4-1.3 0-3 .1-5.3.3-2.2.2-6.6 1.5-12.9 3.7a79.4 79.4 0 0 0-17.9 9.1c-5.5 3.8-11.5 10-18 18.4-6.4 8.5-11.5 18.4-15.3 29.8l-94-8.4c0-12.4 2.4-24.7 7-36.9 4.7-12.2 11.8-23.9 21.4-35 9.6-11.2 21.1-21 34.5-29.4 13.4-8.5 29.6-15.2 48.4-20.3 18.9-5.1 39.1-7.6 60.9-7.6 21.3 0 40.6 2.6 57.8 7.7 17.2 5.2 31.1 11.5 41.4 19.1a117 117 0 0 1 25.9 25.7c6.9 9.6 11.7 18.5 14.4 26.7 2.7 8.2 4 15.7 4 22.8v182.5c0 6.4 1.4 13 4.3 19.8 2.9 6.8 6.3 12.8 10.2 18 3.9 5.2 7.9 9.9 12 14.3 4.1 4.3 7.6 7.7 10.6 9.9l4.1 3.4-72.5 69.4c-8.5-7.7-16.9-15.4-25.2-23.4-8.3-8-14.5-14-18.5-18.1l-6.1-6.2c-2.4-2.3-5-5.7-8-10.2-8.1 12.2-18.5 22.8-31.1 31.8-12.7 9-26.3 15.6-40.7 19.7-14.5 4.1-29.4 6.5-44.7 7.1-15.3.6-30-1.5-43.9-6.5-13.9-5-26.5-11.7-37.6-20.3-11.1-8.6-19.9-20.2-26.5-35-6.6-14.8-9.9-31.5-9.9-50.4 0-17.4 3-33.3 8.9-47.7 6-14.5 13.6-26.5 23-36.1 9.4-9.6 20.7-18.2 34-25.7s26.4-13.4 39.2-17.7c12.8-4.2 26.6-7.8 41.5-10.7 14.9-2.9 27.6-4.8 38.2-5.7 10.6-.9 21.2-1.6 31.8-2v-39.4c0-13.5-2.3-23.5-6.7-30.1zm180.5 379.6c-2.8 3.3-7.5 7.8-14.1 13.5s-16.8 12.7-30.5 21.1c-13.7 8.4-28.8 16-45 22.9-16.3 6.9-36.3 12.9-60.1 18-23.7 5.1-48.2 7.6-73.3 7.6-25.4 0-50.7-3.2-76.1-9.6-25.4-6.4-47.6-14.3-66.8-23.7-19.1-9.4-37.6-20.2-55.1-32.2-17.6-12.1-31.7-22.9-42.4-32.5-10.6-9.6-19.6-18.7-26.8-27.1-1.7-1.9-2.8-3.6-3.2-5.1-.4-1.5-.3-2.8.3-3.7.6-.9 1.5-1.6 2.6-2.2a7.42 7.42 0 0 1 7.4.8c40.9 24.2 72.9 41.3 95.9 51.4 82.9 36.4 168 45.7 255.3 27.9 40.5-8.3 82.1-22.2 124.9-41.8 3.2-1.2 6-1.5 8.3-.9 2.3.6 3.5 2.4 3.5 5.4 0 2.8-1.6 6.3-4.8 10.2zm59.9-29c-1.8 11.1-4.9 21.6-9.1 31.8-7.2 17.1-16.3 30-27.1 38.4-3.6 2.9-6.4 3.8-8.3 2.8-1.9-1-1.9-3.5 0-7.4 4.5-9.3 9.2-21.8 14.2-37.7 5-15.8 5.7-26 2.1-30.5-1.1-1.5-2.7-2.6-5-3.6-2.2-.9-5.1-1.5-8.6-1.9s-6.7-.6-9.4-.8c-2.8-.2-6.5-.2-11.2 0-4.7.2-8 .4-10.1.6a874.4 874.4 0 0 1-17.1 1.5c-1.3.2-2.7.4-4.1.5-1.5.1-2.7.2-3.5.3l-2.7.3c-1 .1-1.7.2-2.2.2h-3.2l-1-.2-.6-.5-.5-.9c-1.3-3.3 3.7-7.4 15-12.4s22.3-8.1 32.9-9.3c9.8-1.5 21.3-1.5 34.5-.3s21.3 3.7 24.3 7.4c2.3 3.5 2.5 10.7.7 21.7z")),t.AndroidFill=l("android",o,s(a,"M270.1 741.7c0 23.4 19.1 42.5 42.6 42.5h48.7v120.4c0 30.5 24.5 55.4 54.6 55.4 30.2 0 54.6-24.8 54.6-55.4V784.1h85v120.4c0 30.5 24.5 55.4 54.6 55.4 30.2 0 54.6-24.8 54.6-55.4V784.1h48.7c23.5 0 42.6-19.1 42.6-42.5V346.4h-486v395.3zm357.1-600.1l44.9-65c2.6-3.8 2-8.9-1.5-11.4-3.5-2.4-8.5-1.2-11.1 2.6l-46.6 67.6c-30.7-12.1-64.9-18.8-100.8-18.8-35.9 0-70.1 6.7-100.8 18.8l-46.6-67.5c-2.6-3.8-7.6-5.1-11.1-2.6-3.5 2.4-4.1 7.4-1.5 11.4l44.9 65c-71.4 33.2-121.4 96.1-127.8 169.6h486c-6.6-73.6-56.7-136.5-128-169.7zM409.5 244.1a26.9 26.9 0 1 1 26.9-26.9 26.97 26.97 0 0 1-26.9 26.9zm208.4 0a26.9 26.9 0 1 1 26.9-26.9 26.97 26.97 0 0 1-26.9 26.9zm223.4 100.7c-30.2 0-54.6 24.8-54.6 55.4v216.4c0 30.5 24.5 55.4 54.6 55.4 30.2 0 54.6-24.8 54.6-55.4V400.1c.1-30.6-24.3-55.3-54.6-55.3zm-658.6 0c-30.2 0-54.6 24.8-54.6 55.4v216.4c0 30.5 24.5 55.4 54.6 55.4 30.2 0 54.6-24.8 54.6-55.4V400.1c0-30.6-24.5-55.3-54.6-55.3z")),t.AmazonSquareFill=l("amazon-square",o,s(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM547.8 326.7c-7.2-10.9-20.1-16.4-38.7-16.4-1.3 0-3 .1-5.3.3-2.2.2-6.6 1.5-12.9 3.7a79.4 79.4 0 0 0-17.9 9.1c-5.5 3.8-11.5 10-18 18.4-6.4 8.5-11.5 18.4-15.3 29.8l-94-8.4c0-12.4 2.4-24.7 7-36.9s11.8-23.9 21.4-35c9.6-11.2 21.1-21 34.5-29.4 13.4-8.5 29.6-15.2 48.4-20.3 18.9-5.1 39.1-7.6 60.9-7.6 21.3 0 40.6 2.6 57.8 7.7 17.2 5.2 31.1 11.5 41.4 19.1a117 117 0 0 1 25.9 25.7c6.9 9.6 11.7 18.5 14.4 26.7 2.7 8.2 4 15.7 4 22.8v182.5c0 6.4 1.4 13 4.3 19.8 2.9 6.8 6.3 12.8 10.2 18 3.9 5.2 7.9 9.9 12 14.3 4.1 4.3 7.6 7.7 10.6 9.9l4.1 3.4-72.5 69.4c-8.5-7.7-16.9-15.4-25.2-23.4-8.3-8-14.5-14-18.5-18.1l-6.1-6.2c-2.4-2.3-5-5.7-8-10.2-8.1 12.2-18.5 22.8-31.1 31.8-12.7 9-26.3 15.6-40.7 19.7-14.5 4.1-29.4 6.5-44.7 7.1-15.3.6-30-1.5-43.9-6.5-13.9-5-26.5-11.7-37.6-20.3-11.1-8.6-19.9-20.2-26.5-35-6.6-14.8-9.9-31.5-9.9-50.4 0-17.4 3-33.3 8.9-47.7 6-14.5 13.6-26.5 23-36.1 9.4-9.6 20.7-18.2 34-25.7s26.4-13.4 39.2-17.7c12.8-4.2 26.6-7.8 41.5-10.7 14.9-2.9 27.6-4.8 38.2-5.7 10.6-.9 21.2-1.6 31.8-2v-39.4c0-13.5-2.3-23.5-6.7-30.1zm180.5 379.6c-2.8 3.3-7.5 7.8-14.1 13.5s-16.8 12.7-30.5 21.1c-13.7 8.4-28.8 16-45 22.9-16.3 6.9-36.3 12.9-60.1 18-23.7 5.1-48.2 7.6-73.3 7.6-25.4 0-50.7-3.2-76.1-9.6-25.4-6.4-47.6-14.3-66.8-23.7-19.1-9.4-37.6-20.2-55.1-32.2-17.6-12.1-31.7-22.9-42.4-32.5-10.6-9.6-19.6-18.7-26.8-27.1-1.7-1.9-2.8-3.6-3.2-5.1-.4-1.5-.3-2.8.3-3.7.6-.9 1.5-1.6 2.6-2.2a7.42 7.42 0 0 1 7.4.8c40.9 24.2 72.9 41.3 95.9 51.4 82.9 36.4 168 45.7 255.3 27.9 40.5-8.3 82.1-22.2 124.9-41.8 3.2-1.2 6-1.5 8.3-.9 2.3.6 3.5 2.4 3.5 5.4 0 2.8-1.6 6.3-4.8 10.2zm59.9-29c-1.8 11.1-4.9 21.6-9.1 31.8-7.2 17.1-16.3 30-27.1 38.4-3.6 2.9-6.4 3.8-8.3 2.8-1.9-1-1.9-3.5 0-7.4 4.5-9.3 9.2-21.8 14.2-37.7 5-15.8 5.7-26 2.1-30.5-1.1-1.5-2.7-2.6-5-3.6-2.2-.9-5.1-1.5-8.6-1.9s-6.7-.6-9.4-.8c-2.8-.2-6.5-.2-11.2 0-4.7.2-8 .4-10.1.6a874.4 874.4 0 0 1-17.1 1.5c-1.3.2-2.7.4-4.1.5-1.5.1-2.7.2-3.5.3l-2.7.3c-1 .1-1.7.2-2.2.2h-3.2l-1-.2-.6-.5-.5-.9c-1.3-3.3 3.7-7.4 15-12.4s22.3-8.1 32.9-9.3c9.8-1.5 21.3-1.5 34.5-.3s21.3 3.7 24.3 7.4c2.3 3.5 2.5 10.7.7 21.7zM485 467.5c-11.6 4.9-20.9 12.2-27.8 22-6.9 9.8-10.4 21.6-10.4 35.5 0 17.8 7.5 31.5 22.4 41.2 14.1 9.1 28.9 11.4 44.4 6.8 17.9-5.2 30-17.9 36.4-38.1 3-9.3 4.5-19.7 4.5-31.3v-50.2c-12.6.4-24.4 1.6-35.5 3.7-11.1 2.1-22.4 5.6-34 10.4z")),t.ApiFill=l("api",o,s(a,"M917.7 148.8l-42.4-42.4c-1.6-1.6-3.6-2.3-5.7-2.3s-4.1.8-5.7 2.3l-76.1 76.1a199.27 199.27 0 0 0-112.1-34.3c-51.2 0-102.4 19.5-141.5 58.6L432.3 308.7a8.03 8.03 0 0 0 0 11.3L704 591.7c1.6 1.6 3.6 2.3 5.7 2.3 2 0 4.1-.8 5.7-2.3l101.9-101.9c68.9-69 77-175.7 24.3-253.5l76.1-76.1c3.1-3.2 3.1-8.3 0-11.4zM578.9 546.7a8.03 8.03 0 0 0-11.3 0L501 613.3 410.7 523l66.7-66.7c3.1-3.1 3.1-8.2 0-11.3L441 408.6a8.03 8.03 0 0 0-11.3 0L363 475.3l-43-43a7.85 7.85 0 0 0-5.7-2.3c-2 0-4.1.8-5.7 2.3L206.8 534.2c-68.9 68.9-77 175.7-24.3 253.5l-76.1 76.1a8.03 8.03 0 0 0 0 11.3l42.4 42.4c1.6 1.6 3.6 2.3 5.7 2.3s4.1-.8 5.7-2.3l76.1-76.1c33.7 22.9 72.9 34.3 112.1 34.3 51.2 0 102.4-19.5 141.5-58.6l101.9-101.9c3.1-3.1 3.1-8.2 0-11.3l-43-43 66.7-66.7c3.1-3.1 3.1-8.2 0-11.3l-36.6-36.2z")),t.AppstoreFill=l("appstore",o,s(a,"M864 144H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm0 400H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zM464 144H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm0 400H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16z")),t.AudioFill=l("audio",o,s(a,"M512 624c93.9 0 170-75.2 170-168V232c0-92.8-76.1-168-170-168s-170 75.2-170 168v224c0 92.8 76.1 168 170 168zm330-170c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 140.3-113.7 254-254 254S258 594.3 258 454c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 168.7 126.6 307.9 290 327.6V884H326.7c-13.7 0-24.7 14.3-24.7 32v36c0 4.4 2.8 8 6.2 8h407.6c3.4 0 6.2-3.6 6.2-8v-36c0-17.7-11-32-24.7-32H548V782.1c165.3-18 294-158 294-328.1z")),t.AppleFill=l("apple",o,s(a,"M747.4 535.7c-.4-68.2 30.5-119.6 92.9-157.5-34.9-50-87.7-77.5-157.3-82.8-65.9-5.2-138 38.4-164.4 38.4-27.9 0-91.7-36.6-141.9-36.6C273.1 298.8 163 379.8 163 544.6c0 48.7 8.9 99 26.7 150.8 23.8 68.2 109.6 235.3 199.1 232.6 46.8-1.1 79.9-33.2 140.8-33.2 59.1 0 89.7 33.2 141.9 33.2 90.3-1.3 167.9-153.2 190.5-221.6-121.1-57.1-114.6-167.2-114.6-170.7zm-105.1-305c50.7-60.2 46.1-115 44.6-134.7-44.8 2.6-96.6 30.5-126.1 64.8-32.5 36.8-51.6 82.3-47.5 133.6 48.4 3.7 92.6-21.2 129-63.7z")),t.BackwardFill=l("backward",o,s(r,"M485.6 249.9L198.2 498c-8.3 7.1-8.3 20.8 0 27.9l287.4 248.2c10.7 9.2 26.4.9 26.4-14V263.8c0-14.8-15.7-23.2-26.4-13.9zm320 0L518.2 498a18.6 18.6 0 0 0-6.2 14c0 5.2 2.1 10.4 6.2 14l287.4 248.2c10.7 9.2 26.4.9 26.4-14V263.8c0-14.8-15.7-23.2-26.4-13.9z")),t.BankFill=l("bank",o,s(a,"M894 462c30.9 0 43.8-39.7 18.7-58L530.8 126.2a31.81 31.81 0 0 0-37.6 0L111.3 404c-25.1 18.2-12.2 58 18.8 58H192v374h-72c-4.4 0-8 3.6-8 8v52c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-52c0-4.4-3.6-8-8-8h-72V462h62zM381 836H264V462h117v374zm189 0H453V462h117v374zm190 0H642V462h118v374z")),t.BehanceCircleFill=l("behance-circle",o,s(a,"M420.3 470.3c8.7-6.3 12.9-16.7 12.9-31 .3-6.8-1.1-13.5-4.1-19.6-2.7-4.9-6.7-9-11.6-11.9a44.8 44.8 0 0 0-16.6-6c-6.4-1.2-12.9-1.8-19.3-1.7h-70.3v79.7h76.1c13.1.1 24.2-3.1 32.9-9.5zm11.8 72c-9.8-7.5-22.9-11.2-39.2-11.2h-81.8v94h80.2c7.5 0 14.4-.7 21.1-2.1a50.5 50.5 0 0 0 17.8-7.2c5.1-3.3 9.2-7.8 12.3-13.6 3-5.8 4.5-13.2 4.5-22.1 0-17.7-5-30.2-14.9-37.8zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm86.5 286.9h138.4v33.7H598.5v-33.7zM512 628.8a89.52 89.52 0 0 1-27 31c-11.8 8.2-24.9 14.2-38.8 17.7a167.4 167.4 0 0 1-44.6 5.7H236V342.1h161c16.3 0 31.1 1.5 44.6 4.3 13.4 2.8 24.8 7.6 34.4 14.1 9.5 6.5 17 15.2 22.3 26 5.2 10.7 7.9 24.1 7.9 40 0 17.2-3.9 31.4-11.7 42.9-7.9 11.5-19.3 20.8-34.8 28.1 21.1 6 36.6 16.7 46.8 31.7 10.4 15.2 15.5 33.4 15.5 54.8 0 17.4-3.3 32.3-10 44.8zM790.8 576H612.4c0 19.4 6.7 38 16.8 48 10.2 9.9 24.8 14.9 43.9 14.9 13.8 0 25.5-3.5 35.5-10.4 9.9-6.9 15.9-14.2 18.1-21.8h59.8c-9.6 29.7-24.2 50.9-44 63.7-19.6 12.8-43.6 19.2-71.5 19.2-19.5 0-37-3.2-52.7-9.3-15.1-5.9-28.7-14.9-39.9-26.5a121.2 121.2 0 0 1-25.1-41.2c-6.1-16.9-9.1-34.7-8.9-52.6 0-18.5 3.1-35.7 9.1-51.7 11.5-31.1 35.4-56 65.9-68.9 16.3-6.8 33.8-10.2 51.5-10 21 0 39.2 4 55 12.2a111.6 111.6 0 0 1 38.6 32.8c10.1 13.7 17.2 29.3 21.7 46.9 4.3 17.3 5.8 35.5 4.6 54.7zm-122-95.6c-10.8 0-19.9 1.9-26.9 5.6-7 3.7-12.8 8.3-17.2 13.6a48.4 48.4 0 0 0-9.1 17.4c-1.6 5.3-2.7 10.7-3.1 16.2H723c-1.6-17.3-7.6-30.1-15.6-39.1-8.4-8.9-21.9-13.7-38.6-13.7z")),t.BellFill=l("bell",o,s(a,"M816 768h-24V428c0-141.1-104.3-257.8-240-277.2V112c0-22.1-17.9-40-40-40s-40 17.9-40 40v38.8C336.3 170.2 232 286.9 232 428v340h-24c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h216c0 61.8 50.2 112 112 112s112-50.2 112-112h216c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM512 888c-26.5 0-48-21.5-48-48h96c0 26.5-21.5 48-48 48z")),t.BehanceSquareFill=l("behance-square",o,s(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM598.5 350.9h138.4v33.7H598.5v-33.7zM512 628.8a89.52 89.52 0 0 1-27 31c-11.8 8.2-24.9 14.2-38.8 17.7a167.4 167.4 0 0 1-44.6 5.7H236V342.1h161c16.3 0 31.1 1.5 44.6 4.3 13.4 2.8 24.8 7.6 34.4 14.1 9.5 6.5 17 15.2 22.3 26 5.2 10.7 7.9 24.1 7.9 40 0 17.2-3.9 31.4-11.7 42.9-7.9 11.5-19.3 20.8-34.8 28.1 21.1 6 36.6 16.7 46.8 31.7 10.4 15.2 15.5 33.4 15.5 54.8 0 17.4-3.3 32.3-10 44.8zM790.8 576H612.4c0 19.4 6.7 38 16.8 48 10.2 9.9 24.8 14.9 43.9 14.9 13.8 0 25.5-3.5 35.5-10.4 9.9-6.9 15.9-14.2 18.1-21.8h59.8c-9.6 29.7-24.2 50.9-44 63.7-19.6 12.8-43.6 19.2-71.5 19.2-19.5 0-37-3.2-52.7-9.3-15.1-5.9-28.7-14.9-39.9-26.5a121.2 121.2 0 0 1-25.1-41.2c-6.1-16.9-9.1-34.7-8.9-52.6 0-18.5 3.1-35.7 9.1-51.7 11.5-31.1 35.4-56 65.9-68.9 16.3-6.8 33.8-10.2 51.5-10 21 0 39.2 4 55 12.2a111.6 111.6 0 0 1 38.6 32.8c10.1 13.7 17.2 29.3 21.7 46.9 4.3 17.3 5.8 35.5 4.6 54.7zm-122-95.6c-10.8 0-19.9 1.9-26.9 5.6-7 3.7-12.8 8.3-17.2 13.6a48.4 48.4 0 0 0-9.1 17.4c-1.6 5.3-2.7 10.7-3.1 16.2H723c-1.6-17.3-7.6-30.1-15.6-39.1-8.4-8.9-21.9-13.7-38.6-13.7zm-248.5-10.1c8.7-6.3 12.9-16.7 12.9-31 .3-6.8-1.1-13.5-4.1-19.6-2.7-4.9-6.7-9-11.6-11.9a44.8 44.8 0 0 0-16.6-6c-6.4-1.2-12.9-1.8-19.3-1.7h-70.3v79.7h76.1c13.1.1 24.2-3.1 32.9-9.5zm11.8 72c-9.8-7.5-22.9-11.2-39.2-11.2h-81.8v94h80.2c7.5 0 14.4-.7 21.1-2.1s12.7-3.8 17.8-7.2c5.1-3.3 9.2-7.8 12.3-13.6 3-5.8 4.5-13.2 4.5-22.1 0-17.7-5-30.2-14.9-37.8z")),t.BookFill=l("book",o,s(a,"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zM668 345.9L621.5 312 572 347.4V124h96v221.9z")),t.BoxPlotFill=l("box-plot",o,s(a,"M952 224h-52c-4.4 0-8 3.6-8 8v248h-92V304c0-4.4-3.6-8-8-8H448v432h344c4.4 0 8-3.6 8-8V548h92v244c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V232c0-4.4-3.6-8-8-8zm-728 80v176h-92V232c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V548h92v172c0 4.4 3.6 8 8 8h152V296H232c-4.4 0-8 3.6-8 8z")),t.BugFill=l("bug",o,s(a,"M304 280h416c4.4 0 8-3.6 8-8 0-40-8.8-76.7-25.9-108.1a184.31 184.31 0 0 0-74-74C596.7 72.8 560 64 520 64h-16c-40 0-76.7 8.8-108.1 25.9a184.31 184.31 0 0 0-74 74C304.8 195.3 296 232 296 272c0 4.4 3.6 8 8 8z","M940 512H792V412c76.8 0 139-62.2 139-139 0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8a63 63 0 0 1-63 63H232a63 63 0 0 1-63-63c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 76.8 62.2 139 139 139v100H84c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h148v96c0 6.5.2 13 .7 19.3C164.1 728.6 116 796.7 116 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-44.2 23.9-82.9 59.6-103.7a273 273 0 0 0 22.7 49c24.3 41.5 59 76.2 100.5 100.5 28.9 16.9 61 28.8 95.3 34.5 4.4 0 8-3.6 8-8V484c0-4.4 3.6-8 8-8h60c4.4 0 8 3.6 8 8v464.2c0 4.4 3.6 8 8 8 34.3-5.7 66.4-17.6 95.3-34.5a281.38 281.38 0 0 0 123.2-149.5A120.4 120.4 0 0 1 836 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-79.3-48.1-147.4-116.7-176.7.4-6.4.7-12.8.7-19.3v-96h148c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.CalculatorFill=l("calculator",o,s(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM440.2 765h-50.8c-2.2 0-4.5-1.1-5.9-2.9L348 718.6l-35.5 43.5a7.38 7.38 0 0 1-5.9 2.9h-50.8c-6.6 0-10.2-7.9-5.8-13.1l62.7-76.8-61.2-74.9c-4.3-5.2-.7-13.1 5.9-13.1h50.9c2.2 0 4.5 1.1 5.9 2.9l34 41.6 34-41.6c1.5-1.9 3.6-2.9 5.9-2.9h50.8c6.6 0 10.2 7.9 5.9 13.1L383.5 675l62.7 76.8c4.2 5.3.6 13.2-6 13.2zm7.8-382c0 2.2-1.4 4-3.2 4H376v68.7c0 1.9-1.8 3.3-4 3.3h-48c-2.2 0-4-1.4-4-3.2V387h-68.8c-1.8 0-3.2-1.8-3.2-4v-48c0-2.2 1.4-4 3.2-4H320v-68.8c0-1.8 1.8-3.2 4-3.2h48c2.2 0 4 1.4 4 3.2V331h68.7c1.9 0 3.3 1.8 3.3 4v48zm328 369c0 2.2-1.4 4-3.2 4H579.2c-1.8 0-3.2-1.8-3.2-4v-48c0-2.2 1.4-4 3.2-4h193.5c1.9 0 3.3 1.8 3.3 4v48zm0-104c0 2.2-1.4 4-3.2 4H579.2c-1.8 0-3.2-1.8-3.2-4v-48c0-2.2 1.4-4 3.2-4h193.5c1.9 0 3.3 1.8 3.3 4v48zm0-265c0 2.2-1.4 4-3.2 4H579.2c-1.8 0-3.2-1.8-3.2-4v-48c0-2.2 1.4-4 3.2-4h193.5c1.9 0 3.3 1.8 3.3 4v48z")),t.BulbFill=l("bulb",o,s(a,"M348 676.1C250 619.4 184 513.4 184 392c0-181.1 146.9-328 328-328s328 146.9 328 328c0 121.4-66 227.4-164 284.1V792c0 17.7-14.3 32-32 32H380c-17.7 0-32-14.3-32-32V676.1zM392 888h240c4.4 0 8 3.6 8 8v32c0 17.7-14.3 32-32 32H416c-17.7 0-32-14.3-32-32v-32c0-4.4 3.6-8 8-8z")),t.BuildFill=l("build",o,s(a,"M916 210H376c-17.7 0-32 14.3-32 32v236H108c-17.7 0-32 14.3-32 32v272c0 17.7 14.3 32 32 32h540c17.7 0 32-14.3 32-32V546h236c17.7 0 32-14.3 32-32V242c0-17.7-14.3-32-32-32zM612 746H412V546h200v200zm268-268H680V278h200v200z")),t.CalendarFill=l("calendar",o,s(a,"M112 880c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V460H112v420zm768-696H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v176h800V216c0-17.7-14.3-32-32-32z")),t.CameraFill=l("camera",o,s(a,"M864 260H728l-32.4-90.8a32.07 32.07 0 0 0-30.2-21.2H358.6c-13.5 0-25.6 8.5-30.1 21.2L296 260H160c-44.2 0-80 35.8-80 80v456c0 44.2 35.8 80 80 80h704c44.2 0 80-35.8 80-80V340c0-44.2-35.8-80-80-80zM512 716c-88.4 0-160-71.6-160-160s71.6-160 160-160 160 71.6 160 160-71.6 160-160 160zm-96-160a96 96 0 1 0 192 0 96 96 0 1 0-192 0z")),t.CarFill=l("car",o,s(a,"M959 413.4L935.3 372a8 8 0 0 0-10.9-2.9l-50.7 29.6-78.3-216.2a63.9 63.9 0 0 0-60.9-44.4H301.2c-34.7 0-65.5 22.4-76.2 55.5l-74.6 205.2-50.8-29.6a8 8 0 0 0-10.9 2.9L65 413.4c-2.2 3.8-.9 8.6 2.9 10.8l60.4 35.2-14.5 40c-1.2 3.2-1.8 6.6-1.8 10v348.2c0 15.7 11.8 28.4 26.3 28.4h67.6c12.3 0 23-9.3 25.6-22.3l7.7-37.7h545.6l7.7 37.7c2.7 13 13.3 22.3 25.6 22.3h67.6c14.5 0 26.3-12.7 26.3-28.4V509.4c0-3.4-.6-6.8-1.8-10l-14.5-40 60.3-35.2a8 8 0 0 0 3-10.8zM264 621c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm388 75c0 4.4-3.6 8-8 8H380c-4.4 0-8-3.6-8-8v-84c0-4.4 3.6-8 8-8h40c4.4 0 8 3.6 8 8v36h168v-36c0-4.4 3.6-8 8-8h40c4.4 0 8 3.6 8 8v84zm108-75c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zM220 418l72.7-199.9.5-1.3.4-1.3c1.1-3.3 4.1-5.5 7.6-5.5h427.6l75.4 208H220z")),t.CaretDownFill=l("caret-down",o,s(r,"M840.4 300H183.6c-19.7 0-30.7 20.8-18.5 35l328.4 380.8c9.4 10.9 27.5 10.9 37 0L858.9 335c12.2-14.2 1.2-35-18.5-35z")),t.CaretLeftFill=l("caret-left",o,s(r,"M689 165.1L308.2 493.5c-10.9 9.4-10.9 27.5 0 37L689 858.9c14.2 12.2 35 1.2 35-18.5V183.6c0-19.7-20.8-30.7-35-18.5z")),t.CaretRightFill=l("caret-right",o,s(r,"M715.8 493.5L335 165.1c-14.2-12.2-35-1.2-35 18.5v656.8c0 19.7 20.8 30.7 35 18.5l380.8-328.4c10.9-9.4 10.9-27.6 0-37z")),t.CarryOutFill=l("carry-out",o,s(a,"M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zM694.5 432.7L481.9 725.4a16.1 16.1 0 0 1-26 0l-126.4-174c-3.8-5.3 0-12.7 6.5-12.7h55.2c5.1 0 10 2.5 13 6.6l64.7 89 150.9-207.8c3-4.1 7.8-6.6 13-6.6H688c6.5.1 10.3 7.5 6.5 12.8z")),t.CaretUpFill=l("caret-up",o,s(r,"M858.9 689L530.5 308.2c-9.4-10.9-27.5-10.9-37 0L165.1 689c-12.2 14.2-1.2 35 18.5 35h656.8c19.7 0 30.7-20.8 18.5-35z")),t.CheckCircleFill=l("check-circle",o,s(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm193.5 301.7l-210.6 292a31.8 31.8 0 0 1-51.7 0L318.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.2 0 19.9 4.9 25.9 13.3l71.2 98.8 157.2-218c6-8.3 15.6-13.3 25.9-13.3H699c6.5 0 10.3 7.4 6.5 12.7z")),t.CheckSquareFill=l("check-square",o,s(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM695.5 365.7l-210.6 292a31.8 31.8 0 0 1-51.7 0L308.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.2 0 19.9 4.9 25.9 13.3l71.2 98.8 157.2-218c6-8.3 15.6-13.3 25.9-13.3H689c6.5 0 10.3 7.4 6.5 12.7z")),t.ChromeFill=l("chrome",o,s(a,"M371.8 512c0 77.5 62.7 140.2 140.2 140.2S652.2 589.5 652.2 512 589.5 371.8 512 371.8 371.8 434.4 371.8 512zM900 362.4l-234.3 12.1c63.6 74.3 64.6 181.5 11.1 263.7l-188 289.2c78 4.2 158.4-12.9 231.2-55.2 180-104 253-322.1 180-509.8zM320.3 591.9L163.8 284.1A415.35 415.35 0 0 0 96 512c0 208 152.3 380.3 351.4 410.8l106.9-209.4c-96.6 18.2-189.9-34.8-234-121.5zm218.5-285.5l344.4 18.1C848 254.7 792.6 194 719.8 151.7 653.9 113.6 581.5 95.5 510.5 96c-122.5.5-242.2 55.2-322.1 154.5l128.2 196.9c32-91.9 124.8-146.7 222.2-141z")),t.CiCircleFill=l("ci-circle",o,s(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-63.6 656c-103 0-162.4-68.6-162.4-182.6v-49C286 373.5 345.4 304 448.3 304c88.3 0 152.3 56.9 152.3 138.1 0 2.4-2 4.4-4.4 4.4h-52.6c-4.2 0-7.6-3.2-8-7.4-4-46.1-37.6-77.6-87-77.6-61.1 0-95.6 45.4-95.6 126.9v49.3c0 80.3 34.5 125.1 95.6 125.1 49.3 0 82.8-29.5 87-72.4.4-4.1 3.8-7.3 8-7.3h52.7c2.4 0 4.4 2 4.4 4.4 0 77.4-64.3 132.5-152.3 132.5zM738 704.1c0 4.4-3.6 8-8 8h-50.4c-4.4 0-8-3.6-8-8V319.9c0-4.4 3.6-8 8-8H730c4.4 0 8 3.6 8 8v384.2z")),t.ClockCircleFill=l("clock-circle",o,s(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm176.5 585.7l-28.6 39a7.99 7.99 0 0 1-11.2 1.7L483.3 569.8a7.92 7.92 0 0 1-3.3-6.5V288c0-4.4 3.6-8 8-8h48.1c4.4 0 8 3.6 8 8v247.5l142.6 103.1c3.6 2.5 4.4 7.5 1.8 11.1z")),t.CloseCircleFill=l("close-circle",o,s(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 0 1-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z")),t.CloudFill=l("cloud",o,s(a,"M811.4 418.7C765.6 297.9 648.9 212 512.2 212S258.8 297.8 213 418.6C127.3 441.1 64 519.1 64 612c0 110.5 89.5 200 199.9 200h496.2C870.5 812 960 722.5 960 612c0-92.7-63.1-170.7-148.6-193.3z")),t.CloseSquareFill=l("close-square",o,s(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM676.1 657.9c4.4 5.2.7 13.1-6.1 13.1h-58.9c-4.7 0-9.2-2.1-12.3-5.7L512 561.8l-86.8 103.5c-3 3.6-7.5 5.7-12.3 5.7H354c-6.8 0-10.5-7.9-6.1-13.1L470.2 512 347.9 366.1A7.95 7.95 0 0 1 354 353h58.9c4.7 0 9.2 2.1 12.3 5.7L512 462.2l86.8-103.5c3-3.6 7.5-5.7 12.3-5.7H670c6.8 0 10.5 7.9 6.1 13.1L553.8 512l122.3 145.9z")),t.CodeSandboxSquareFill=l("code-sandbox-square",o,s(a,"M307.9 536.7l87.6 49.9V681l96.7 55.9V524.8L307.9 418.4zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM755.7 653.2L512 794 268.3 653.2V371.8l110-63.6-.4-.2h.2L512 231l134 77h-.2l-.3.2 110.1 63.6v281.4zm-223.9 83.7l97.3-56.2v-94.1l87-49.5V418.5L531.8 525zm-20-352L418 331l-91.1 52.6 185.2 107 185.2-106.9-91.4-52.8z")),t.CodeSandboxCircleFill=l("code-sandbox-circle",o,s(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm243.7 589.2L512 794 268.3 653.2V371.8l110-63.6-.4-.2h.2L512 231l134 77h-.2l-.3.2 110.1 63.6v281.4zM307.9 536.7l87.6 49.9V681l96.7 55.9V524.8L307.9 418.4zm203.9-151.8L418 331l-91.1 52.6 185.2 107 185.2-106.9-91.4-52.8zm20 352l97.3-56.2v-94.1l87-49.5V418.5L531.8 525z")),t.CodeFill=l("code",o,s(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM513.1 518.1l-192 161c-5.2 4.4-13.1.7-13.1-6.1v-62.7c0-2.3 1.1-4.6 2.9-6.1L420.7 512l-109.8-92.2a7.63 7.63 0 0 1-2.9-6.1V351c0-6.8 7.9-10.5 13.1-6.1l192 160.9c3.9 3.2 3.9 9.1 0 12.3zM716 673c0 4.4-3.4 8-7.5 8h-185c-4.1 0-7.5-3.6-7.5-8v-48c0-4.4 3.4-8 7.5-8h185c4.1 0 7.5 3.6 7.5 8v48z")),t.CompassFill=l("compass",o,s(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zM327.3 702.4c-2 .9-4.4 0-5.3-2.1-.4-1-.4-2.2 0-3.2l98.7-225.5 132.1 132.1-225.5 98.7zm375.1-375.1l-98.7 225.5-132.1-132.1L697.1 322c2-.9 4.4 0 5.3 2.1.4 1 .4 2.1 0 3.2z")),t.CodepenCircleFill=l("codepen-circle",o,s(a,"M488.1 414.7V303.4L300.9 428l83.6 55.8zm254.1 137.7v-79.8l-59.8 39.9zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm278 533c0 1.1-.1 2.1-.2 3.1 0 .4-.1.7-.2 1a14.16 14.16 0 0 1-.8 3.2c-.2.6-.4 1.2-.6 1.7-.2.4-.4.8-.5 1.2-.3.5-.5 1.1-.8 1.6-.2.4-.4.7-.7 1.1-.3.5-.7 1-1 1.5-.3.4-.5.7-.8 1-.4.4-.8.9-1.2 1.3-.3.3-.6.6-1 .9-.4.4-.9.8-1.4 1.1-.4.3-.7.6-1.1.8-.1.1-.3.2-.4.3L525.2 786c-4 2.7-8.6 4-13.2 4-4.7 0-9.3-1.4-13.3-4L244.6 616.9c-.1-.1-.3-.2-.4-.3l-1.1-.8c-.5-.4-.9-.7-1.3-1.1-.3-.3-.6-.6-1-.9-.4-.4-.8-.8-1.2-1.3a7 7 0 0 1-.8-1c-.4-.5-.7-1-1-1.5-.2-.4-.5-.7-.7-1.1-.3-.5-.6-1.1-.8-1.6-.2-.4-.4-.8-.5-1.2-.2-.6-.4-1.2-.6-1.7-.1-.4-.3-.8-.4-1.2-.2-.7-.3-1.3-.4-2-.1-.3-.1-.7-.2-1-.1-1-.2-2.1-.2-3.1V427.9c0-1 .1-2.1.2-3.1.1-.3.1-.7.2-1a14.16 14.16 0 0 1 .8-3.2c.2-.6.4-1.2.6-1.7.2-.4.4-.8.5-1.2.2-.5.5-1.1.8-1.6.2-.4.4-.7.7-1.1.6-.9 1.2-1.7 1.8-2.5.4-.4.8-.9 1.2-1.3.3-.3.6-.6 1-.9.4-.4.9-.8 1.3-1.1.4-.3.7-.6 1.1-.8.1-.1.3-.2.4-.3L498.7 239c8-5.3 18.5-5.3 26.5 0l254.1 169.1c.1.1.3.2.4.3l1.1.8 1.4 1.1c.3.3.6.6 1 .9.4.4.8.8 1.2 1.3.7.8 1.3 1.6 1.8 2.5.2.4.5.7.7 1.1.3.5.6 1 .8 1.6.2.4.4.8.5 1.2.2.6.4 1.2.6 1.7.1.4.3.8.4 1.2.2.7.3 1.3.4 2 .1.3.1.7.2 1 .1 1 .2 2.1.2 3.1V597zm-254.1 13.3v111.3L723.1 597l-83.6-55.8zM281.8 472.6v79.8l59.8-39.9zM512 456.1l-84.5 56.4 84.5 56.4 84.5-56.4zM723.1 428L535.9 303.4v111.3l103.6 69.1zM384.5 541.2L300.9 597l187.2 124.6V610.3l-103.6-69.1z")),t.CodepenSquareFill=l("codepen-square",o,s(a,"M723.1 428L535.9 303.4v111.3l103.6 69.1zM512 456.1l-84.5 56.4 84.5 56.4 84.5-56.4zm23.9 154.2v111.3L723.1 597l-83.6-55.8zm-151.4-69.1L300.9 597l187.2 124.6V610.3l-103.6-69.1zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-90 485c0 1.1-.1 2.1-.2 3.1 0 .4-.1.7-.2 1a14.16 14.16 0 0 1-.8 3.2c-.2.6-.4 1.2-.6 1.7-.2.4-.4.8-.5 1.2-.3.5-.5 1.1-.8 1.6-.2.4-.4.7-.7 1.1-.3.5-.7 1-1 1.5-.3.4-.5.7-.8 1-.4.4-.8.9-1.2 1.3-.3.3-.6.6-1 .9-.4.4-.9.8-1.4 1.1-.4.3-.7.6-1.1.8-.1.1-.3.2-.4.3L525.2 786c-4 2.7-8.6 4-13.2 4-4.7 0-9.3-1.4-13.3-4L244.6 616.9c-.1-.1-.3-.2-.4-.3l-1.1-.8c-.5-.4-.9-.7-1.3-1.1-.3-.3-.6-.6-1-.9-.4-.4-.8-.8-1.2-1.3a7 7 0 0 1-.8-1c-.4-.5-.7-1-1-1.5-.2-.4-.5-.7-.7-1.1-.3-.5-.6-1.1-.8-1.6-.2-.4-.4-.8-.5-1.2-.2-.6-.4-1.2-.6-1.7-.1-.4-.3-.8-.4-1.2-.2-.7-.3-1.3-.4-2-.1-.3-.1-.7-.2-1-.1-1-.2-2.1-.2-3.1V427.9c0-1 .1-2.1.2-3.1.1-.3.1-.7.2-1a14.16 14.16 0 0 1 .8-3.2c.2-.6.4-1.2.6-1.7.2-.4.4-.8.5-1.2.2-.5.5-1.1.8-1.6.2-.4.4-.7.7-1.1.6-.9 1.2-1.7 1.8-2.5.4-.4.8-.9 1.2-1.3.3-.3.6-.6 1-.9.4-.4.9-.8 1.3-1.1.4-.3.7-.6 1.1-.8.1-.1.3-.2.4-.3L498.7 239c8-5.3 18.5-5.3 26.5 0l254.1 169.1c.1.1.3.2.4.3l1.1.8 1.4 1.1c.3.3.6.6 1 .9.4.4.8.8 1.2 1.3.7.8 1.3 1.6 1.8 2.5.2.4.5.7.7 1.1.3.5.6 1 .8 1.6.2.4.4.8.5 1.2.2.6.4 1.2.6 1.7.1.4.3.8.4 1.2.2.7.3 1.3.4 2 .1.3.1.7.2 1 .1 1 .2 2.1.2 3.1V597zm-47.8-44.6v-79.8l-59.8 39.9zm-460.4-79.8v79.8l59.8-39.9zm206.3-57.9V303.4L300.9 428l83.6 55.8z")),t.ContactsFill=l("contacts",o,s(a,"M928 224H768v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H548v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H328v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H96c-17.7 0-32 14.3-32 32v576c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32zM661 736h-43.9c-4.2 0-7.6-3.3-7.9-7.5-3.8-50.6-46-90.5-97.2-90.5s-93.4 40-97.2 90.5c-.3 4.2-3.7 7.5-7.9 7.5H363a8 8 0 0 1-8-8.4c2.8-53.3 32-99.7 74.6-126.1a111.8 111.8 0 0 1-29.1-75.5c0-61.9 49.9-112 111.4-112 61.5 0 111.4 50.1 111.4 112 0 29.1-11 55.5-29.1 75.5 42.7 26.5 71.8 72.8 74.6 126.1.4 4.6-3.2 8.4-7.8 8.4zM512 474c-28.5 0-51.7 23.3-51.7 52s23.2 52 51.7 52c28.5 0 51.7-23.3 51.7-52s-23.2-52-51.7-52z")),t.ControlFill=l("control",o,s(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM404 683v77c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-77c-41.7-13.6-72-52.8-72-99s30.3-85.5 72-99V264c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v221c41.7 13.6 72 52.8 72 99s-30.3 85.5-72 99zm279.6-143.9c.2 0 .3-.1.4-.1v221c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V539c.2 0 .3.1.4.1-42-13.4-72.4-52.7-72.4-99.1 0-46.4 30.4-85.7 72.4-99.1-.2 0-.3.1-.4.1v-77c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v77c-.2 0-.3-.1-.4-.1 42 13.4 72.4 52.7 72.4 99.1 0 46.4-30.4 85.7-72.4 99.1zM616 440a36 36 0 1 0 72 0 36 36 0 1 0-72 0zM403.4 566.5l-1.5-2.4c0-.1-.1-.1-.1-.2l-.9-1.2c-.1-.1-.2-.2-.2-.3-1-1.3-2-2.5-3.2-3.6l-.2-.2c-.4-.4-.8-.8-1.2-1.1-.8-.8-1.7-1.5-2.6-2.1h-.1l-1.2-.9c-.1-.1-.3-.2-.4-.3-1.2-.8-2.5-1.6-3.9-2.2-.2-.1-.5-.2-.7-.4-.4-.2-.7-.3-1.1-.5-.3-.1-.7-.3-1-.4-.5-.2-1-.4-1.5-.5-.4-.1-.9-.3-1.3-.4l-.9-.3-1.4-.3c-.2-.1-.5-.1-.7-.2-.7-.1-1.4-.3-2.1-.4-.2 0-.4 0-.6-.1-.6-.1-1.1-.1-1.7-.2-.2 0-.4 0-.7-.1-.8 0-1.5-.1-2.3-.1s-1.5 0-2.3.1c-.2 0-.4 0-.7.1-.6 0-1.2.1-1.7.2-.2 0-.4 0-.6.1-.7.1-1.4.2-2.1.4-.2.1-.5.1-.7.2l-1.4.3-.9.3c-.4.1-.9.3-1.3.4-.5.2-1 .4-1.5.5-.3.1-.7.3-1 .4-.4.2-.7.3-1.1.5-.2.1-.5.2-.7.4-1.3.7-2.6 1.4-3.9 2.2-.1.1-.3.2-.4.3l-1.2.9h-.1c-.9.7-1.8 1.4-2.6 2.1-.4.4-.8.7-1.2 1.1l-.2.2a54.8 54.8 0 0 0-3.2 3.6c-.1.1-.2.2-.2.3l-.9 1.2c0 .1-.1.1-.1.2l-1.5 2.4c-.1.2-.2.3-.3.5-2.7 5.1-4.3 10.9-4.3 17s1.6 12 4.3 17c.1.2.2.3.3.5l1.5 2.4c0 .1.1.1.1.2l.9 1.2c.1.1.2.2.2.3 1 1.3 2 2.5 3.2 3.6l.2.2c.4.4.8.8 1.2 1.1.8.8 1.7 1.5 2.6 2.1h.1l1.2.9c.1.1.3.2.4.3 1.2.8 2.5 1.6 3.9 2.2.2.1.5.2.7.4.4.2.7.3 1.1.5.3.1.7.3 1 .4.5.2 1 .4 1.5.5.4.1.9.3 1.3.4l.9.3 1.4.3c.2.1.5.1.7.2.7.1 1.4.3 2.1.4.2 0 .4 0 .6.1.6.1 1.1.1 1.7.2.2 0 .4 0 .7.1.8 0 1.5.1 2.3.1s1.5 0 2.3-.1c.2 0 .4 0 .7-.1.6 0 1.2-.1 1.7-.2.2 0 .4 0 .6-.1.7-.1 1.4-.2 2.1-.4.2-.1.5-.1.7-.2l1.4-.3.9-.3c.4-.1.9-.3 1.3-.4.5-.2 1-.4 1.5-.5.3-.1.7-.3 1-.4.4-.2.7-.3 1.1-.5.2-.1.5-.2.7-.4 1.3-.7 2.6-1.4 3.9-2.2.1-.1.3-.2.4-.3l1.2-.9h.1c.9-.7 1.8-1.4 2.6-2.1.4-.4.8-.7 1.2-1.1l.2-.2c1.1-1.1 2.2-2.4 3.2-3.6.1-.1.2-.2.2-.3l.9-1.2c0-.1.1-.1.1-.2l1.5-2.4c.1-.2.2-.3.3-.5 2.7-5.1 4.3-10.9 4.3-17s-1.6-12-4.3-17c-.1-.2-.2-.4-.3-.5z")),t.ContainerFill=l("container",o,s(a,"M832 64H192c-17.7 0-32 14.3-32 32v529c0-.6.4-1 1-1h219.3l5.2 24.7C397.6 708.5 450.8 752 512 752s114.4-43.5 126.4-103.3l5.2-24.7H863c.6 0 1 .4 1 1V96c0-17.7-14.3-32-32-32zM712 493c0 4.4-3.6 8-8 8H320c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h384c4.4 0 8 3.6 8 8v48zm0-160c0 4.4-3.6 8-8 8H320c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h384c4.4 0 8 3.6 8 8v48zm151 354H694.1c-11.6 32.8-32 62.3-59.1 84.7-34.5 28.6-78.2 44.3-123 44.3s-88.5-15.8-123-44.3a194.02 194.02 0 0 1-59.1-84.7H161c-.6 0-1-.4-1-1v242c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V686c0 .6-.4 1-1 1z")),t.CopyFill=l("copy",o,s(a,"M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM382 896h-.2L232 746.2v-.2h150v150z")),t.CopyrightCircleFill=l("copyright-circle",o,s(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm5.4 670c-110 0-173.4-73.2-173.4-194.9v-52.3C344 364.2 407.4 290 517.3 290c94.3 0 162.7 60.7 162.7 147.4 0 2.6-2.1 4.7-4.7 4.7h-56.7c-4.2 0-7.6-3.2-8-7.4-4-49.5-40-83.4-93-83.4-65.3 0-102.1 48.5-102.1 135.5v52.6c0 85.7 36.9 133.6 102.1 133.6 52.8 0 88.7-31.7 93-77.8.4-4.1 3.8-7.3 8-7.3h56.8c2.6 0 4.7 2.1 4.7 4.7 0 82.6-68.7 141.4-162.7 141.4z")),t.CreditCardFill=l("credit-card",o,s(a,"M928 160H96c-17.7 0-32 14.3-32 32v160h896V192c0-17.7-14.3-32-32-32zM64 832c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V440H64v392zm579-184c0-4.4 3.6-8 8-8h165c4.4 0 8 3.6 8 8v72c0 4.4-3.6 8-8 8H651c-4.4 0-8-3.6-8-8v-72z")),t.CrownFill=l("crown",o,s(a,"M899.6 276.5L705 396.4 518.4 147.5a8.06 8.06 0 0 0-12.9 0L319 396.4 124.3 276.5c-5.7-3.5-13.1 1.2-12.2 7.9L188.5 865c1.1 7.9 7.9 14 16 14h615.1c8 0 14.9-6 15.9-14l76.4-580.6c.8-6.7-6.5-11.4-12.3-7.9zM512 734.2c-62.1 0-112.6-50.5-112.6-112.6S449.9 509 512 509s112.6 50.5 112.6 112.6S574.1 734.2 512 734.2zm0-160.9c-26.6 0-48.2 21.6-48.2 48.3 0 26.6 21.6 48.3 48.2 48.3s48.2-21.6 48.2-48.3c0-26.6-21.6-48.3-48.2-48.3z")),t.CustomerServiceFill=l("customer-service",o,s(a,"M512 128c-212.1 0-384 171.9-384 384v360c0 13.3 10.7 24 24 24h184c35.3 0 64-28.7 64-64V624c0-35.3-28.7-64-64-64H200v-48c0-172.3 139.7-312 312-312s312 139.7 312 312v48H688c-35.3 0-64 28.7-64 64v208c0 35.3 28.7 64 64 64h184c13.3 0 24-10.7 24-24V512c0-212.1-171.9-384-384-384z")),t.DashboardFill=l("dashboard",o,s(a,"M924.8 385.6a446.7 446.7 0 0 0-96-142.4 446.7 446.7 0 0 0-142.4-96C631.1 123.8 572.5 112 512 112s-119.1 11.8-174.4 35.2a446.7 446.7 0 0 0-142.4 96 446.7 446.7 0 0 0-96 142.4C75.8 440.9 64 499.5 64 560c0 132.7 58.3 257.7 159.9 343.1l1.7 1.4c5.8 4.8 13.1 7.5 20.6 7.5h531.7c7.5 0 14.8-2.7 20.6-7.5l1.7-1.4C901.7 817.7 960 692.7 960 560c0-60.5-11.9-119.1-35.2-174.4zM482 232c0-4.4 3.6-8 8-8h44c4.4 0 8 3.6 8 8v80c0 4.4-3.6 8-8 8h-44c-4.4 0-8-3.6-8-8v-80zM270 582c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8v-44c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v44zm90.7-204.5l-31.1 31.1a8.03 8.03 0 0 1-11.3 0L261.7 352a8.03 8.03 0 0 1 0-11.3l31.1-31.1c3.1-3.1 8.2-3.1 11.3 0l56.6 56.6c3.1 3.1 3.1 8.2 0 11.3zm291.1 83.6l-84.5 84.5c5 18.7.2 39.4-14.5 54.1a55.95 55.95 0 0 1-79.2 0 55.95 55.95 0 0 1 0-79.2 55.87 55.87 0 0 1 54.1-14.5l84.5-84.5c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3c3.1 3.1 3.1 8.1 0 11.3zm43-52.4l-31.1-31.1a8.03 8.03 0 0 1 0-11.3l56.6-56.6c3.1-3.1 8.2-3.1 11.3 0l31.1 31.1c3.1 3.1 3.1 8.2 0 11.3l-56.6 56.6a8.03 8.03 0 0 1-11.3 0zM846 582c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8v-44c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v44z")),t.DeleteFill=l("delete",o,s(a,"M864 256H736v-80c0-35.3-28.7-64-64-64H352c-35.3 0-64 28.7-64 64v80H160c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h60.4l24.7 523c1.6 34.1 29.8 61 63.9 61h454c34.2 0 62.3-26.8 63.9-61l24.7-523H888c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zm-200 0H360v-72h304v72z")),t.DiffFill=l("diff",o,s(a,"M854.2 306.6L611.3 72.9c-6-5.7-13.9-8.9-22.2-8.9H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h277l219 210.6V824c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V329.6c0-8.7-3.5-17-9.8-23zM553.4 201.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v704c0 17.7 14.3 32 32 32h512c17.7 0 32-14.3 32-32V397.3c0-8.5-3.4-16.6-9.4-22.6L553.4 201.4zM568 753c0 3.8-3.4 7-7.5 7h-225c-4.1 0-7.5-3.2-7.5-7v-42c0-3.8 3.4-7 7.5-7h225c4.1 0 7.5 3.2 7.5 7v42zm0-220c0 3.8-3.4 7-7.5 7H476v84.9c0 3.9-3.1 7.1-7 7.1h-42c-3.8 0-7-3.2-7-7.1V540h-84.5c-4.1 0-7.5-3.2-7.5-7v-42c0-3.9 3.4-7 7.5-7H420v-84.9c0-3.9 3.2-7.1 7-7.1h42c3.9 0 7 3.2 7 7.1V484h84.5c4.1 0 7.5 3.1 7.5 7v42z")),t.DingtalkCircleFill=l("dingtalk-circle",o,s(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm227 385.3c-1 4.2-3.5 10.4-7 17.8h.1l-.4.7c-20.3 43.1-73.1 127.7-73.1 127.7s-.1-.2-.3-.5l-15.5 26.8h74.5L575.1 810l32.3-128h-58.6l20.4-84.7c-16.5 3.9-35.9 9.4-59 16.8 0 0-31.2 18.2-89.9-35 0 0-39.6-34.7-16.6-43.4 9.8-3.7 47.4-8.4 77-12.3 40-5.4 64.6-8.2 64.6-8.2S422 517 392.7 512.5c-29.3-4.6-66.4-53.1-74.3-95.8 0 0-12.2-23.4 26.3-12.3 38.5 11.1 197.9 43.2 197.9 43.2s-207.4-63.3-221.2-78.7c-13.8-15.4-40.6-84.2-37.1-126.5 0 0 1.5-10.5 12.4-7.7 0 0 153.3 69.7 258.1 107.9 104.8 37.9 195.9 57.3 184.2 106.7z")),t.DatabaseFill=l("database",o,s(a,"M832 64H192c-17.7 0-32 14.3-32 32v224h704V96c0-17.7-14.3-32-32-32zM288 232c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zM160 928c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V704H160v224zm128-136c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zM160 640h704V384H160v256zm128-168c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40z")),t.DingtalkSquareFill=l("dingtalk-square",o,s(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM739 449.3c-1 4.2-3.5 10.4-7 17.8h.1l-.4.7c-20.3 43.1-73.1 127.7-73.1 127.7s-.1-.2-.3-.5l-15.5 26.8h74.5L575.1 810l32.3-128h-58.6l20.4-84.7c-16.5 3.9-35.9 9.4-59 16.8 0 0-31.2 18.2-89.9-35 0 0-39.6-34.7-16.6-43.4 9.8-3.7 47.4-8.4 77-12.3 40-5.4 64.6-8.2 64.6-8.2S422 517 392.7 512.5c-29.3-4.6-66.4-53.1-74.3-95.8 0 0-12.2-23.4 26.3-12.3 38.5 11.1 197.9 43.2 197.9 43.2s-207.4-63.3-221.2-78.7c-13.8-15.4-40.6-84.2-37.1-126.5 0 0 1.5-10.5 12.4-7.7 0 0 153.3 69.7 258.1 107.9 104.8 37.9 195.9 57.3 184.2 106.7z")),t.DislikeFill=l("dislike",o,s(a,"M885.9 490.3c3.6-12 5.4-24.4 5.4-37 0-28.3-9.3-55.5-26.1-77.7 3.6-12 5.4-24.4 5.4-37 0-28.3-9.3-55.5-26.1-77.7 3.6-12 5.4-24.4 5.4-37 0-51.6-30.7-98.1-78.3-118.4a66.1 66.1 0 0 0-26.5-5.4H273v428h.3l85.8 310.8C372.9 889 418.9 924 470.9 924c29.7 0 57.4-11.8 77.9-33.4 20.5-21.5 31-49.7 29.5-79.4l-6-122.9h239.9c12.1 0 23.9-3.2 34.3-9.3 40.4-23.5 65.5-66.1 65.5-111 0-28.3-9.3-55.5-26.1-77.7zM112 132v364c0 17.7 14.3 32 32 32h65V100h-65c-17.7 0-32 14.3-32 32z")),t.DollarCircleFill=l("dollar-circle",o,s(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm22.3 665.2l.2 31.7c0 4.4-3.6 8.1-8 8.1h-28.4c-4.4 0-8-3.6-8-8v-31.4C401.3 723 359.5 672.4 355 617.4c-.4-4.7 3.3-8.7 8-8.7h46.2c3.9 0 7.3 2.8 7.9 6.6 5.1 31.7 29.8 55.4 74.1 61.3V533.9l-24.7-6.3c-52.3-12.5-102.1-45.1-102.1-112.7 0-72.9 55.4-112.1 126.2-119v-33c0-4.4 3.6-8 8-8h28.1c4.4 0 8 3.6 8 8v32.7c68.5 6.9 119.9 46.9 125.9 109.2.5 4.7-3.2 8.8-8 8.8h-44.9c-4 0-7.4-3-7.9-6.9-4-29.2-27.4-53-65.5-58.2v134.3l25.4 5.9c64.8 16 108.9 47 108.9 116.4 0 75.3-56 117.3-134.3 124.1zM426.6 410.3c0 25.4 15.7 45.1 49.5 57.3 4.7 1.9 9.4 3.4 15 5v-124c-36.9 4.7-64.5 25.4-64.5 61.7zm116.5 135.2c-2.8-.6-5.6-1.3-8.8-2.2V677c42.6-3.8 72-27.2 72-66.4 0-30.7-15.9-50.7-63.2-65.1z")),t.DownCircleFill=l("down-circle",o,s(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm184.5 353.7l-178 246a7.95 7.95 0 0 1-12.9 0l-178-246c-3.8-5.3 0-12.7 6.5-12.7H381c10.2 0 19.9 4.9 25.9 13.2L512 563.6l105.2-145.4c6-8.3 15.6-13.2 25.9-13.2H690c6.5 0 10.3 7.4 6.5 12.7z")),t.DownSquareFill=l("down-square",o,s(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM696.5 412.7l-178 246a7.95 7.95 0 0 1-12.9 0l-178-246c-3.8-5.3 0-12.7 6.5-12.7H381c10.2 0 19.9 4.9 25.9 13.2L512 558.6l105.2-145.4c6-8.3 15.6-13.2 25.9-13.2H690c6.5 0 10.3 7.4 6.5 12.7z")),t.DribbbleCircleFill=l("dribbble-circle",o,s(a,"M675.1 328.3a245.2 245.2 0 0 0-220.8-55.1c6.8 9.1 51.5 69.9 91.8 144 87.5-32.8 124.5-82.6 129-88.9zM554 552.8c-138.7 48.3-188.6 144.6-193 153.6 41.7 32.5 94.1 51.9 151 51.9 34.1 0 66.6-6.9 96.1-19.5-3.7-21.6-17.9-96.8-52.5-186.6l-1.6.6zm47.7-11.9c32.2 88.4 45.3 160.4 47.8 175.4 55.2-37.3 94.5-96.4 105.4-164.9-8.4-2.6-76.1-22.8-153.2-10.5zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 736c-158.8 0-288-129.2-288-288s129.2-288 288-288 288 129.2 288 288-129.2 288-288 288zm53.1-346.2c5.7 11.7 11.2 23.6 16.3 35.6 1.8 4.2 3.6 8.4 5.3 12.7 81.8-10.3 163.2 6.2 171.3 7.9-.5-58.1-21.3-111.4-55.5-153.3-5.3 7.1-46.5 60-137.4 97.1zM498.6 432c-40.8-72.5-84.7-133.4-91.2-142.3-68.8 32.5-120.3 95.9-136.2 172.2 11 .2 112.4.7 227.4-29.9zm30.6 82.5c3.2-1 6.4-2 9.7-2.9-6.2-14-12.9-28-19.9-41.7-122.8 36.8-242.1 35.2-252.8 35-.1 2.5-.1 5-.1 7.5 0 63.2 23.9 120.9 63.2 164.5 5.5-9.6 73-121.4 199.9-162.4z")),t.DribbbleSquareFill=l("dribbble-square",o,s(a,"M498.6 432c-40.8-72.5-84.7-133.4-91.2-142.3-68.8 32.5-120.3 95.9-136.2 172.2 11 .2 112.4.7 227.4-29.9zm66.5 21.8c5.7 11.7 11.2 23.6 16.3 35.6 1.8 4.2 3.6 8.4 5.3 12.7 81.8-10.3 163.2 6.2 171.3 7.9-.5-58.1-21.3-111.4-55.5-153.3-5.3 7.1-46.5 60-137.4 97.1zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM512 800c-158.8 0-288-129.2-288-288s129.2-288 288-288 288 129.2 288 288-129.2 288-288 288zm89.7-259.1c32.2 88.4 45.3 160.4 47.8 175.4 55.2-37.3 94.5-96.4 105.4-164.9-8.4-2.6-76.1-22.8-153.2-10.5zm-72.5-26.4c3.2-1 6.4-2 9.7-2.9-6.2-14-12.9-28-19.9-41.7-122.8 36.8-242.1 35.2-252.8 35-.1 2.5-.1 5-.1 7.5 0 63.2 23.9 120.9 63.2 164.5 5.5-9.6 73-121.4 199.9-162.4zm145.9-186.2a245.2 245.2 0 0 0-220.8-55.1c6.8 9.1 51.5 69.9 91.8 144 87.5-32.8 124.5-82.6 129-88.9zM554 552.8c-138.7 48.3-188.6 144.6-193 153.6 41.7 32.5 94.1 51.9 151 51.9 34.1 0 66.6-6.9 96.1-19.5-3.7-21.6-17.9-96.8-52.5-186.6l-1.6.6z")),t.DropboxCircleFill=l("dropbox-circle",o,s(a,"M663.8 455.5zm-151.5-93.8l-151.8 93.8 151.8 93.9 151.5-93.9zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm151.2 595.5L512.6 750l-151-90.5v-33.1l45.4 29.4 105.6-87.7 105.6 87.7 45.1-29.4v33.1zm-45.6-22.4l-105.3-87.7L407 637.1l-151-99.2 104.5-82.4L256 371.2 407 274l105.3 87.7L617.6 274 768 372.1l-104.2 83.5L768 539l-150.4 98.1z")),t.DropboxSquareFill=l("dropbox-square",o,s(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM663.2 659.5L512.6 750l-151-90.5v-33.1l45.4 29.4 105.6-87.7 105.6 87.7 45.1-29.4v33.1zm-45.6-22.4l-105.3-87.7L407 637.1l-151-99.2 104.5-82.4L256 371.2 407 274l105.3 87.7L617.6 274 768 372.1l-104.2 83.5L768 539l-150.4 98.1zM512.3 361.7l-151.8 93.8 151.8 93.9 151.5-93.9zm151.5 93.8z")),t.EnvironmentFill=l("environment",o,s(a,"M512 327c-29.9 0-58 11.6-79.2 32.8A111.6 111.6 0 0 0 400 439c0 29.9 11.7 58 32.8 79.2A111.6 111.6 0 0 0 512 551c29.9 0 58-11.7 79.2-32.8C612.4 497 624 468.9 624 439c0-29.9-11.6-58-32.8-79.2S541.9 327 512 327zm342.6-37.9a362.49 362.49 0 0 0-79.9-115.7 370.83 370.83 0 0 0-118.2-77.8C610.7 76.6 562.1 67 512 67c-50.1 0-98.7 9.6-144.5 28.5-44.3 18.3-84 44.5-118.2 77.8A363.6 363.6 0 0 0 169.4 289c-19.5 45-29.4 92.8-29.4 142 0 70.6 16.9 140.9 50.1 208.7 26.7 54.5 64 107.6 111 158.1 80.3 86.2 164.5 138.9 188.4 153a43.9 43.9 0 0 0 22.4 6.1c7.8 0 15.5-2 22.4-6.1 23.9-14.1 108.1-66.8 188.4-153 47-50.4 84.3-103.6 111-158.1C867.1 572 884 501.8 884 431.1c0-49.2-9.9-97-29.4-142zM512 615c-97.2 0-176-78.8-176-176s78.8-176 176-176 176 78.8 176 176-78.8 176-176 176z")),t.EditFill=l("edit",o,s(a,"M880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32zm-622.3-84c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 0 0 0-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 0 0 9.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9z")),t.ExclamationCircleFill=l("exclamation-circle",o,s(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-32 232c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V296zm32 440a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z")),t.EuroCircleFill=l("euro-circle",o,s(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm63.5 375.8c4.4 0 8 3.6 8 8V475c0 4.4-3.6 8-8 8h-136c-.3 4.4-.3 9.1-.3 13.8v36h136.2c4.4 0 8 3.6 8 8V568c0 4.4-3.6 8-8 8H444.9c15.3 62 61.3 98.6 129.8 98.6 19.9 0 37.1-1.2 51.8-4.1 4.9-1 9.5 2.8 9.5 7.8v42.8c0 3.8-2.7 7-6.4 7.8-15.9 3.4-34.3 5.1-55.3 5.1-109.8 0-183-58.8-200.2-158H344c-4.4 0-8-3.6-8-8v-27.2c0-4.4 3.6-8 8-8h26.1v-36.9c0-4.4 0-8.8.3-12.8H344c-4.4 0-8-3.6-8-8v-27.2c0-4.4 3.6-8 8-8h31.7c19.7-94.2 92-149.9 198.6-149.9 20.9 0 39.4 1.9 55.3 5.4 3.7.8 6.3 4 6.3 7.8V346h.1c0 5.1-4.6 8.8-9.6 7.8-14.7-2.9-31.8-4.4-51.7-4.4-65.4 0-110.4 33.5-127.6 90.4h128.4z")),t.ExperimentFill=l("experiment",o,s(a,"M218.9 636.3l42.6 26.6c.1.1.3.2.4.3l12.7 8 .3.3a186.9 186.9 0 0 0 94.1 25.1c44.9 0 87.2-15.7 121-43.8a256.27 256.27 0 0 1 164.9-59.9c52.3 0 102.2 15.7 144.6 44.5l7.9 5-111.6-289V179.8h63.5c4.4 0 8-3.6 8-8V120c0-4.4-3.6-8-8-8H264.7c-4.4 0-8 3.6-8 8v51.9c0 4.4 3.6 8 8 8h63.5v173.6L218.9 636.3zm333-203.1c22 0 39.9 17.9 39.9 39.9S573.9 513 551.9 513 512 495.1 512 473.1s17.9-39.9 39.9-39.9zM878 825.1l-29.9-77.4-85.7-53.5-.1.1c-.7-.5-1.5-1-2.2-1.5l-8.1-5-.3-.3c-29-17.5-62.3-26.8-97-26.8-44.9 0-87.2 15.7-121 43.8a256.27 256.27 0 0 1-164.9 59.9c-53 0-103.5-16.1-146.2-45.6l-28.9-18.1L146 825.1c-2.8 7.4-4.3 15.2-4.3 23 0 35.2 28.6 63.8 63.8 63.8h612.9c7.9 0 15.7-1.5 23-4.3a63.6 63.6 0 0 0 36.6-82.5z")),t.EyeInvisibleFill=l("eye-invisible",o,s(a,"M508 624a112 112 0 0 0 112-112c0-3.28-.15-6.53-.43-9.74L498.26 623.57c3.21.28 6.45.43 9.74.43zm370.72-458.44L836 122.88a8 8 0 0 0-11.31 0L715.37 232.23Q624.91 186 512 186q-288.3 0-430.2 300.3a60.3 60.3 0 0 0 0 51.5q56.7 119.43 136.55 191.45L112.56 835a8 8 0 0 0 0 11.31L155.25 889a8 8 0 0 0 11.31 0l712.16-712.12a8 8 0 0 0 0-11.32zM332 512a176 176 0 0 1 258.88-155.28l-48.62 48.62a112.08 112.08 0 0 0-140.92 140.92l-48.62 48.62A175.09 175.09 0 0 1 332 512z","M942.2 486.2Q889.4 375 816.51 304.85L672.37 449A176.08 176.08 0 0 1 445 676.37L322.74 798.63Q407.82 838 512 838q288.3 0 430.2-300.3a60.29 60.29 0 0 0 0-51.5z")),t.EyeFill=l("eye",o,s(a,"M396 512a112 112 0 1 0 224 0 112 112 0 1 0-224 0zm546.2-25.8C847.4 286.5 704.1 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 0 0 0 51.5C176.6 737.5 319.9 838 512 838c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0-51.5zM508 688c-97.2 0-176-78.8-176-176s78.8-176 176-176 176 78.8 176 176-78.8 176-176 176z")),t.FacebookFill=l("facebook",o,s(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-92.4 233.5h-63.9c-50.1 0-59.8 23.8-59.8 58.8v77.1h119.6l-15.6 120.7h-104V912H539.2V602.2H434.9V481.4h104.3v-89c0-103.3 63.1-159.6 155.3-159.6 44.2 0 82.1 3.3 93.2 4.8v107.9z")),t.FastBackwardFill=l("fast-backward",o,s(r,"M517.6 273.5L230.2 499.3a16.14 16.14 0 0 0 0 25.4l287.4 225.8c10.7 8.4 26.4.8 26.4-12.7V286.2c0-13.5-15.7-21.1-26.4-12.7zm320 0L550.2 499.3a16.14 16.14 0 0 0 0 25.4l287.4 225.8c10.7 8.4 26.4.8 26.4-12.7V286.2c0-13.5-15.7-21.1-26.4-12.7zm-620-25.5h-51.2c-3.5 0-6.4 2.7-6.4 6v516c0 3.3 2.9 6 6.4 6h51.2c3.5 0 6.4-2.7 6.4-6V254c0-3.3-2.9-6-6.4-6z")),t.FastForwardFill=l("fast-forward",o,s(r,"M793.8 499.3L506.4 273.5c-10.7-8.4-26.4-.8-26.4 12.7v451.6c0 13.5 15.7 21.1 26.4 12.7l287.4-225.8a16.14 16.14 0 0 0 0-25.4zm-320 0L186.4 273.5c-10.7-8.4-26.4-.8-26.4 12.7v451.5c0 13.5 15.7 21.1 26.4 12.7l287.4-225.8c4.1-3.2 6.2-8 6.2-12.7 0-4.6-2.1-9.4-6.2-12.6zM857.6 248h-51.2c-3.5 0-6.4 2.7-6.4 6v516c0 3.3 2.9 6 6.4 6h51.2c3.5 0 6.4-2.7 6.4-6V254c0-3.3-2.9-6-6.4-6z")),t.FileAddFill=l("file-add",o,s(a,"M480 580H372a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h108v108a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8V644h108a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8H544V472a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v108zm374.6-291.3c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2z")),t.FileExcelFill=l("file-excel",o,s(a,"M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM575.34 477.84l-61.22 102.3L452.3 477.8a12 12 0 0 0-10.27-5.79h-38.44a12 12 0 0 0-6.4 1.85 12 12 0 0 0-3.75 16.56l82.34 130.42-83.45 132.78a12 12 0 0 0-1.84 6.39 12 12 0 0 0 12 12h34.46a12 12 0 0 0 10.21-5.7l62.7-101.47 62.3 101.45a12 12 0 0 0 10.23 5.72h37.48a12 12 0 0 0 6.48-1.9 12 12 0 0 0 3.62-16.58l-83.83-130.55 85.3-132.47a12 12 0 0 0 1.9-6.5 12 12 0 0 0-12-12h-35.7a12 12 0 0 0-10.29 5.84z")),t.FileExclamationFill=l("file-exclamation",o,s(a,"M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM512 784a40 40 0 1 0 0-80 40 40 0 0 0 0 80zm32-152V448a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v184a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8z")),t.FileImageFill=l("file-image",o,s(a,"M854.6 288.7L639.4 73.4c-6-6-14.2-9.4-22.7-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.6-9.4-22.6zM400 402c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zm296 294H328c-6.7 0-10.4-7.7-6.3-12.9l99.8-127.2a8 8 0 0 1 12.6 0l41.1 52.4 77.8-99.2a8 8 0 0 1 12.6 0l136.5 174c4.3 5.2.5 12.9-6.1 12.9zm-94-370V137.8L790.2 326H602z")),t.FileMarkdownFill=l("file-markdown",o,s(a,"M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM426.13 600.93l59.11 132.97a16 16 0 0 0 14.62 9.5h24.06a16 16 0 0 0 14.63-9.51l59.1-133.35V758a16 16 0 0 0 16.01 16H641a16 16 0 0 0 16-16V486a16 16 0 0 0-16-16h-34.75a16 16 0 0 0-14.67 9.62L512.1 662.2l-79.48-182.59a16 16 0 0 0-14.67-9.61H383a16 16 0 0 0-16 16v272a16 16 0 0 0 16 16h27.13a16 16 0 0 0 16-16V600.93z")),t.FilePdfFill=l("file-pdf",o,s(a,"M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM633.22 637.26c-15.18-.5-31.32.67-49.65 2.96-24.3-14.99-40.66-35.58-52.28-65.83l1.07-4.38 1.24-5.18c4.3-18.13 6.61-31.36 7.3-44.7.52-10.07-.04-19.36-1.83-27.97-3.3-18.59-16.45-29.46-33.02-30.13-15.45-.63-29.65 8-33.28 21.37-5.91 21.62-2.45 50.07 10.08 98.59-15.96 38.05-37.05 82.66-51.2 107.54-18.89 9.74-33.6 18.6-45.96 28.42-16.3 12.97-26.48 26.3-29.28 40.3-1.36 6.49.69 14.97 5.36 21.92 5.3 7.88 13.28 13 22.85 13.74 24.15 1.87 53.83-23.03 86.6-79.26 3.29-1.1 6.77-2.26 11.02-3.7l11.9-4.02c7.53-2.54 12.99-4.36 18.39-6.11 23.4-7.62 41.1-12.43 57.2-15.17 27.98 14.98 60.32 24.8 82.1 24.8 17.98 0 30.13-9.32 34.52-23.99 3.85-12.88.8-27.82-7.48-36.08-8.56-8.41-24.3-12.43-45.65-13.12zM385.23 765.68v-.36l.13-.34a54.86 54.86 0 0 1 5.6-10.76c4.28-6.58 10.17-13.5 17.47-20.87 3.92-3.95 8-7.8 12.79-12.12 1.07-.96 7.91-7.05 9.19-8.25l11.17-10.4-8.12 12.93c-12.32 19.64-23.46 33.78-33 43-3.51 3.4-6.6 5.9-9.1 7.51a16.43 16.43 0 0 1-2.61 1.42c-.41.17-.77.27-1.13.3a2.2 2.2 0 0 1-1.12-.15 2.07 2.07 0 0 1-1.27-1.91zM511.17 547.4l-2.26 4-1.4-4.38c-3.1-9.83-5.38-24.64-6.01-38-.72-15.2.49-24.32 5.29-24.32 6.74 0 9.83 10.8 10.07 27.05.22 14.28-2.03 29.14-5.7 35.65zm-5.81 58.46l1.53-4.05 2.09 3.8c11.69 21.24 26.86 38.96 43.54 51.31l3.6 2.66-4.39.9c-16.33 3.38-31.54 8.46-52.34 16.85 2.17-.88-21.62 8.86-27.64 11.17l-5.25 2.01 2.8-4.88c12.35-21.5 23.76-47.32 36.05-79.77zm157.62 76.26c-7.86 3.1-24.78.33-54.57-12.39l-7.56-3.22 8.2-.6c23.3-1.73 39.8-.45 49.42 3.07 4.1 1.5 6.83 3.39 8.04 5.55a4.64 4.64 0 0 1-1.36 6.31 6.7 6.7 0 0 1-2.17 1.28z")),t.FilePptFill=l("file-ppt",o,s(a,"M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM468.53 760v-91.54h59.27c60.57 0 100.2-39.65 100.2-98.12 0-58.22-39.58-98.34-99.98-98.34H424a12 12 0 0 0-12 12v276a12 12 0 0 0 12 12h32.53a12 12 0 0 0 12-12zm0-139.33h34.9c47.82 0 67.19-12.93 67.19-50.33 0-32.05-18.12-50.12-49.87-50.12h-52.22v100.45z")),t.FileTextFill=l("file-text",o,s(a,"M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM320 482a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h384a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8H320zm0 136a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h184a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8H320z")),t.FileWordFill=l("file-word",o,s(a,"M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM512 566.1l52.81 197a12 12 0 0 0 11.6 8.9h31.77a12 12 0 0 0 11.6-8.88l74.37-276a12 12 0 0 0 .4-3.12 12 12 0 0 0-12-12h-35.57a12 12 0 0 0-11.7 9.31l-45.78 199.1-49.76-199.32A12 12 0 0 0 528.1 472h-32.2a12 12 0 0 0-11.64 9.1L434.6 680.01 388.5 481.3a12 12 0 0 0-11.68-9.29h-35.39a12 12 0 0 0-3.11.41 12 12 0 0 0-8.47 14.7l74.17 276A12 12 0 0 0 415.6 772h31.99a12 12 0 0 0 11.59-8.9l52.81-197z")),t.FileUnknownFill=l("file-unknown",o,s(a,"M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM402 549c0 5.4 4.4 9.5 9.8 9.5h32.4c5.4 0 9.8-4.2 9.8-9.4 0-28.2 25.8-51.6 58-51.6s58 23.4 58 51.5c0 25.3-21 47.2-49.3 50.9-19.3 2.8-34.5 20.3-34.7 40.1v32c0 5.5 4.5 10 10 10h32c5.5 0 10-4.5 10-10v-12.2c0-6 4-11.5 9.7-13.3 44.6-14.4 75-54 74.3-98.9-.8-55.5-49.2-100.8-108.5-101.6-61.4-.7-111.5 45.6-111.5 103zm110 227a32 32 0 1 0 0-64 32 32 0 0 0 0 64z")),t.FileZipFill=l("file-zip",o,s(a,"M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM296 136v64h64v-64h-64zm64 64v64h64v-64h-64zm-64 64v64h64v-64h-64zm64 64v64h64v-64h-64zm-64 64v64h64v-64h-64zm64 64v64h64v-64h-64zm-64 64v64h64v-64h-64zm0 64v160h128V584H296zm48 48h32v64h-32v-64z")),t.FileFill=l("file",o,s(a,"M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2z")),t.FilterFill=l("filter",o,s(a,"M349 838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V642H349v196zm531.1-684H143.9c-24.5 0-39.8 26.7-27.5 48l221.3 376h348.8l221.3-376c12.1-21.3-3.2-48-27.7-48z")),t.FireFill=l("fire",o,s(a,"M834.1 469.2A347.49 347.49 0 0 0 751.2 354l-29.1-26.7a8.09 8.09 0 0 0-13 3.3l-13 37.3c-8.1 23.4-23 47.3-44.1 70.8-1.4 1.5-3 1.9-4.1 2-1.1.1-2.8-.1-4.3-1.5-1.4-1.2-2.1-3-2-4.8 3.7-60.2-14.3-128.1-53.7-202C555.3 171 510 123.1 453.4 89.7l-41.3-24.3c-5.4-3.2-12.3 1-12 7.3l2.2 48c1.5 32.8-2.3 61.8-11.3 85.9-11 29.5-26.8 56.9-47 81.5a295.64 295.64 0 0 1-47.5 46.1 352.6 352.6 0 0 0-100.3 121.5A347.75 347.75 0 0 0 160 610c0 47.2 9.3 92.9 27.7 136a349.4 349.4 0 0 0 75.5 110.9c32.4 32 70 57.2 111.9 74.7C418.5 949.8 464.5 959 512 959s93.5-9.2 136.9-27.3A348.6 348.6 0 0 0 760.8 857c32.4-32 57.8-69.4 75.5-110.9a344.2 344.2 0 0 0 27.7-136c0-48.8-10-96.2-29.9-140.9z")),t.FlagFill=l("flag",o,s(a,"M880 305H624V192c0-17.7-14.3-32-32-32H184v-40c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v784c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V640h248v113c0 17.7 14.3 32 32 32h416c17.7 0 32-14.3 32-32V337c0-17.7-14.3-32-32-32z")),t.FolderAddFill=l("folder-add",o,s(a,"M880 298.4H521L403.7 186.2a8.15 8.15 0 0 0-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM632 577c0 3.8-3.4 7-7.5 7H540v84.9c0 3.9-3.2 7.1-7 7.1h-42c-3.8 0-7-3.2-7-7.1V584h-84.5c-4.1 0-7.5-3.2-7.5-7v-42c0-3.8 3.4-7 7.5-7H484v-84.9c0-3.9 3.2-7.1 7-7.1h42c3.8 0 7 3.2 7 7.1V528h84.5c4.1 0 7.5 3.2 7.5 7v42z")),t.FolderFill=l("folder",o,s(a,"M880 298.4H521L403.7 186.2a8.15 8.15 0 0 0-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32z")),t.FolderOpenFill=l("folder-open",o,s(a,"M928 444H820V330.4c0-17.7-14.3-32-32-32H473L355.7 186.2a8.15 8.15 0 0 0-5.5-2.2H96c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h698c13 0 24.8-7.9 29.7-20l134-332c1.5-3.8 2.3-7.9 2.3-12 0-17.7-14.3-32-32-32zm-180 0H238c-13 0-24.8 7.9-29.7 20L136 643.2V256h188.5l119.6 114.4H748V444z")),t.ForwardFill=l("forward",o,s(r,"M825.8 498L538.4 249.9c-10.7-9.2-26.4-.9-26.4 14v496.3c0 14.9 15.7 23.2 26.4 14L825.8 526c8.3-7.2 8.3-20.8 0-28zm-320 0L218.4 249.9c-10.7-9.2-26.4-.9-26.4 14v496.3c0 14.9 15.7 23.2 26.4 14L505.8 526c4.1-3.6 6.2-8.8 6.2-14 0-5.2-2.1-10.4-6.2-14z")),t.FrownFill=l("frown",o,s(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zM288 421a48.01 48.01 0 0 1 96 0 48.01 48.01 0 0 1-96 0zm376 272h-48.1c-4.2 0-7.8-3.2-8.1-7.4C604 636.1 562.5 597 512 597s-92.1 39.1-95.8 88.6c-.3 4.2-3.9 7.4-8.1 7.4H360a8 8 0 0 1-8-8.4c4.4-84.3 74.5-151.6 160-151.6s155.6 67.3 160 151.6a8 8 0 0 1-8 8.4zm24-224a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z")),t.FundFill=l("fund",o,s(a,"M926 164H94c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V196c0-17.7-14.3-32-32-32zm-92.3 194.4l-297 297.2a8.03 8.03 0 0 1-11.3 0L410.9 541.1 238.4 713.7a8.03 8.03 0 0 1-11.3 0l-36.8-36.8a8.03 8.03 0 0 1 0-11.3l214.9-215c3.1-3.1 8.2-3.1 11.3 0L531 565l254.5-254.6c3.1-3.1 8.2-3.1 11.3 0l36.8 36.8c3.2 3 3.2 8.1.1 11.2z")),t.FunnelPlotFill=l("funnel-plot",o,s(a,"M336.7 586h350.6l84.9-148H251.8zm543.4-432H143.9c-24.5 0-39.8 26.7-27.5 48L215 374h594l98.7-172c12.2-21.3-3.1-48-27.6-48zM349 838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V650H349v188z")),t.GiftFill=l("gift",o,s(a,"M160 894c0 17.7 14.3 32 32 32h286V550H160v344zm386 32h286c17.7 0 32-14.3 32-32V550H546v376zm334-616H732.4c13.6-21.4 21.6-46.8 21.6-74 0-76.1-61.9-138-138-138-41.4 0-78.7 18.4-104 47.4-25.3-29-62.6-47.4-104-47.4-76.1 0-138 61.9-138 138 0 27.2 7.9 52.6 21.6 74H144c-17.7 0-32 14.3-32 32v140h366V310h68v172h366V342c0-17.7-14.3-32-32-32zm-402-4h-70c-38.6 0-70-31.4-70-70s31.4-70 70-70 70 31.4 70 70v70zm138 0h-70v-70c0-38.6 31.4-70 70-70s70 31.4 70 70-31.4 70-70 70z")),t.GithubFill=l("github",o,s(a,"M511.6 76.3C264.3 76.2 64 276.4 64 523.5 64 718.9 189.3 885 363.8 946c23.5 5.9 19.9-10.8 19.9-22.2v-77.5c-135.7 15.9-141.2-73.9-150.3-88.9C215 726 171.5 718 184.5 703c30.9-15.9 62.4 4 98.9 57.9 26.4 39.1 77.9 32.5 104 26 5.7-23.5 17.9-44.5 34.7-60.8-140.6-25.2-199.2-111-199.2-213 0-49.5 16.3-95 48.3-131.7-20.4-60.5 1.9-112.3 4.9-120 58.1-5.2 118.5 41.6 123.2 45.3 33-8.9 70.7-13.6 112.9-13.6 42.4 0 80.2 4.9 113.5 13.9 11.3-8.6 67.3-48.8 121.3-43.9 2.9 7.7 24.7 58.3 5.5 118 32.4 36.8 48.9 82.7 48.9 132.3 0 102.2-59 188.1-200 212.9a127.5 127.5 0 0 1 38.1 91v112.5c.8 9 0 17.9 15 17.9 177.1-59.7 304.6-227 304.6-424.1 0-247.2-200.4-447.3-447.5-447.3z")),t.GitlabFill=l("gitlab",o,s(a,"M910.5 553.2l-109-370.8c-6.8-20.4-23.1-34.1-44.9-34.1s-39.5 12.3-46.3 32.7l-72.2 215.4H386.2L314 181.1c-6.8-20.4-24.5-32.7-46.3-32.7s-39.5 13.6-44.9 34.1L113.9 553.2c-4.1 13.6 1.4 28.6 12.3 36.8l385.4 289 386.7-289c10.8-8.1 16.3-23.1 12.2-36.8z")),t.GoldenFill=l("golden",o,s(a,"M905.9 806.7l-40.2-248c-.6-3.9-4-6.7-7.9-6.7H596.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8h342c.4 0 .9 0 1.3-.1 4.3-.7 7.3-4.8 6.6-9.2zm-470.2-248c-.6-3.9-4-6.7-7.9-6.7H166.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8h342c.4 0 .9 0 1.3-.1 4.4-.7 7.3-4.8 6.6-9.2l-40.2-248zM342 472h342c.4 0 .9 0 1.3-.1 4.4-.7 7.3-4.8 6.6-9.2l-40.2-248c-.6-3.9-4-6.7-7.9-6.7H382.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8z")),t.GoogleCircleFill=l("google-circle",o,s(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm167 633.6C638.4 735 583 757 516.9 757c-95.7 0-178.5-54.9-218.8-134.9C281.5 589 272 551.6 272 512s9.5-77 26.1-110.1c40.3-80.1 123.1-135 218.8-135 66 0 121.4 24.3 163.9 63.8L610.6 401c-25.4-24.3-57.7-36.6-93.6-36.6-63.8 0-117.8 43.1-137.1 101-4.9 14.7-7.7 30.4-7.7 46.6s2.8 31.9 7.7 46.6c19.3 57.9 73.3 101 137 101 33 0 61-8.7 82.9-23.4 26-17.4 43.2-43.3 48.9-74H516.9v-94.8h230.7c2.9 16.1 4.4 32.8 4.4 50.1 0 74.7-26.7 137.4-73 180.1z")),t.GooglePlusCircleFill=l("google-plus-circle",o,s(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm36.5 558.8c-43.9 61.8-132.1 79.8-200.9 53.3-69-26.3-118-99.2-112.1-173.5 1.5-90.9 85.2-170.6 176.1-167.5 43.6-2 84.6 16.9 118 43.6-14.3 16.2-29 31.8-44.8 46.3-40.1-27.7-97.2-35.6-137.3-3.6-57.4 39.7-60 133.4-4.8 176.1 53.7 48.7 155.2 24.5 170.1-50.1-33.6-.5-67.4 0-101-1.1-.1-20.1-.2-40.1-.1-60.2 56.2-.2 112.5-.3 168.8.2 3.3 47.3-3 97.5-32 136.5zM791 536.5c-16.8.2-33.6.3-50.4.4-.2 16.8-.3 33.6-.3 50.4H690c-.2-16.8-.2-33.5-.3-50.3-16.8-.2-33.6-.3-50.4-.5v-50.1c16.8-.2 33.6-.3 50.4-.3.1-16.8.3-33.6.4-50.4h50.2l.3 50.4c16.8.2 33.6.2 50.4.3v50.1z")),t.GooglePlusSquareFill=l("google-plus-square",o,s(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM548.5 622.8c-43.9 61.8-132.1 79.8-200.9 53.3-69-26.3-118-99.2-112.1-173.5 1.5-90.9 85.2-170.6 176.1-167.5 43.6-2 84.6 16.9 118 43.6-14.3 16.2-29 31.8-44.8 46.3-40.1-27.7-97.2-35.6-137.3-3.6-57.4 39.7-60 133.4-4.8 176.1 53.7 48.7 155.2 24.5 170.1-50.1-33.6-.5-67.4 0-101-1.1-.1-20.1-.2-40.1-.1-60.2 56.2-.2 112.5-.3 168.8.2 3.3 47.3-3 97.5-32 136.5zM791 536.5c-16.8.2-33.6.3-50.4.4-.2 16.8-.3 33.6-.3 50.4H690c-.2-16.8-.2-33.5-.3-50.3-16.8-.2-33.6-.3-50.4-.5v-50.1c16.8-.2 33.6-.3 50.4-.3.1-16.8.3-33.6.4-50.4h50.2l.3 50.4c16.8.2 33.6.2 50.4.3v50.1z")),t.GoogleSquareFill=l("google-square",o,s(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM679 697.6C638.4 735 583 757 516.9 757c-95.7 0-178.5-54.9-218.8-134.9A245.02 245.02 0 0 1 272 512c0-39.6 9.5-77 26.1-110.1 40.3-80.1 123.1-135 218.8-135 66 0 121.4 24.3 163.9 63.8L610.6 401c-25.4-24.3-57.7-36.6-93.6-36.6-63.8 0-117.8 43.1-137.1 101-4.9 14.7-7.7 30.4-7.7 46.6s2.8 31.9 7.7 46.6c19.3 57.9 73.3 101 137 101 33 0 61-8.7 82.9-23.4 26-17.4 43.2-43.3 48.9-74H516.9v-94.8h230.7c2.9 16.1 4.4 32.8 4.4 50.1 0 74.7-26.7 137.4-73 180.1z")),t.HddFill=l("hdd",o,s(a,"M832 64H192c-17.7 0-32 14.3-32 32v224h704V96c0-17.7-14.3-32-32-32zM456 216c0 4.4-3.6 8-8 8H264c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zM160 928c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V704H160v224zm576-136c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zM160 640h704V384H160v256zm96-152c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H264c-4.4 0-8-3.6-8-8v-48z")),t.HeartFill=l("heart",o,s(a,"M923 283.6a260.04 260.04 0 0 0-56.9-82.8 264.4 264.4 0 0 0-84-55.5A265.34 265.34 0 0 0 679.7 125c-49.3 0-97.4 13.5-139.2 39-10 6.1-19.5 12.8-28.5 20.1-9-7.3-18.5-14-28.5-20.1-41.8-25.5-89.9-39-139.2-39-35.5 0-69.9 6.8-102.4 20.3-31.4 13-59.7 31.7-84 55.5a258.44 258.44 0 0 0-56.9 82.8c-13.9 32.3-21 66.6-21 101.9 0 33.3 6.8 68 20.3 103.3 11.3 29.5 27.5 60.1 48.2 91 32.8 48.9 77.9 99.9 133.9 151.6 92.8 85.7 184.7 144.9 188.6 147.3l23.7 15.2c10.5 6.7 24 6.7 34.5 0l23.7-15.2c3.9-2.5 95.7-61.6 188.6-147.3 56-51.7 101.1-102.7 133.9-151.6 20.7-30.9 37-61.5 48.2-91 13.5-35.3 20.3-70 20.3-103.3.1-35.3-7-69.6-20.9-101.9z")),t.HighlightFill=l("highlight",o,s(a,"M957.6 507.4L603.2 158.2a7.9 7.9 0 0 0-11.2 0L353.3 393.4a8.03 8.03 0 0 0-.1 11.3l.1.1 40 39.4-117.2 115.3a8.03 8.03 0 0 0-.1 11.3l.1.1 39.5 38.9-189.1 187H72.1c-4.4 0-8.1 3.6-8.1 8V860c0 4.4 3.6 8 8 8h344.9c2.1 0 4.1-.8 5.6-2.3l76.1-75.6 40.4 39.8a7.9 7.9 0 0 0 11.2 0l117.1-115.6 40.1 39.5a7.9 7.9 0 0 0 11.2 0l238.7-235.2c3.4-3 3.4-8 .3-11.2z")),t.HomeFill=l("home",o,s(a,"M946.5 505L534.6 93.4a31.93 31.93 0 0 0-45.2 0L77.5 505c-12 12-18.8 28.3-18.8 45.3 0 35.3 28.7 64 64 64h43.4V908c0 17.7 14.3 32 32 32H448V716h112v224h265.9c17.7 0 32-14.3 32-32V614.3h43.4c17 0 33.3-6.7 45.3-18.8 24.9-25 24.9-65.5-.1-90.5z")),t.HourglassFill=l("hourglass",o,s(a,"M742 318V184h86c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H196c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h86v134c0 81.5 42.4 153.2 106.4 194-64 40.8-106.4 112.5-106.4 194v134h-86c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h632c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-86V706c0-81.5-42.4-153.2-106.4-194 64-40.8 106.4-112.5 106.4-194z")),t.Html5Fill=l("html5",o,s(a,"M145.2 96l66 746.6L512 928l299.6-85.4L878.9 96H145.2zm595 177.1l-4.8 47.2-1.7 19.5H382.3l8.2 94.2h335.1l-3.3 24.3-21.2 242.2-1.7 16.2-187 51.6v.3h-1.2l-.3.1v-.1h-.1l-188.6-52L310.8 572h91.1l6.5 73.2 102.4 27.7h.4l102-27.6 11.4-118.6H510.9v-.1H306l-22.8-253.5-1.7-24.3h460.3l-1.6 24.3z")),t.IdcardFill=l("idcard",o,s(a,"M373 411c-28.5 0-51.7 23.3-51.7 52s23.2 52 51.7 52 51.7-23.3 51.7-52-23.2-52-51.7-52zm555-251H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zM608 420c0-4.4 1-8 2.3-8h123.4c1.3 0 2.3 3.6 2.3 8v48c0 4.4-1 8-2.3 8H610.3c-1.3 0-2.3-3.6-2.3-8v-48zm-86 253h-43.9c-4.2 0-7.6-3.3-7.9-7.5-3.8-50.5-46-90.5-97.2-90.5s-93.4 40-97.2 90.5c-.3 4.2-3.7 7.5-7.9 7.5H224a8 8 0 0 1-8-8.4c2.8-53.3 32-99.7 74.6-126.1a111.8 111.8 0 0 1-29.1-75.5c0-61.9 49.9-112 111.4-112s111.4 50.1 111.4 112c0 29.1-11 55.5-29.1 75.5 42.7 26.5 71.8 72.8 74.6 126.1.4 4.6-3.2 8.4-7.8 8.4zm278.9-53H615.1c-3.9 0-7.1-3.6-7.1-8v-48c0-4.4 3.2-8 7.1-8h185.7c3.9 0 7.1 3.6 7.1 8v48h.1c0 4.4-3.2 8-7.1 8z")),t.IeCircleFill=l("ie-circle",o,s(a,"M693.6 284.4c-24 0-51.1 11.7-72.6 22 46.3 18 86 57.3 112.3 99.6 7.1-18.9 14.6-47.9 14.6-67.9 0-32-22.8-53.7-54.3-53.7zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm253.9 492.9H437.1c0 100.4 144.3 136 196.8 47.4h120.8c-32.6 91.7-119.7 146-216.8 146-35.1 0-70.3-.1-101.7-15.6-87.4 44.5-180.3 56.6-180.3-42 0-45.8 23.2-107.1 44-145C335 484 381.3 422.8 435.6 374.5c-43.7 18.9-91.1 66.3-122 101.2 25.9-112.8 129.5-193.6 237.1-186.5 130-59.8 209.7-34.1 209.7 38.6 0 27.4-10.6 63.3-21.4 87.9 25.2 45.5 33.3 97.6 26.9 141.2zM540.5 399.1c-53.7 0-102 39.7-104 94.9h208c-2-55.1-50.6-94.9-104-94.9zM320.6 602.9c-73 152.4 11.5 172.2 100.3 123.3-46.6-27.5-82.6-72.2-100.3-123.3z")),t.IeSquareFill=l("ie-square",o,s(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM765.9 556.9H437.1c0 100.4 144.3 136 196.8 47.4h120.8c-32.6 91.7-119.7 146-216.8 146-35.1 0-70.3-.1-101.7-15.6-87.4 44.5-180.3 56.6-180.3-42 0-45.8 23.2-107.1 44-145C335 484 381.3 422.8 435.6 374.5c-43.7 18.9-91.1 66.3-122 101.2 25.9-112.8 129.5-193.6 237.1-186.5 130-59.8 209.7-34.1 209.7 38.6 0 27.4-10.6 63.3-21.4 87.9 25.2 45.5 33.3 97.6 26.9 141.2zm-72.3-272.5c-24 0-51.1 11.7-72.6 22 46.3 18 86 57.3 112.3 99.6 7.1-18.9 14.6-47.9 14.6-67.9 0-32-22.8-53.7-54.3-53.7zM540.5 399.1c-53.7 0-102 39.7-104 94.9h208c-2-55.1-50.6-94.9-104-94.9zM320.6 602.9c-73 152.4 11.5 172.2 100.3 123.3-46.6-27.5-82.6-72.2-100.3-123.3z")),t.InfoCircleFill=l("info-circle",o,s(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm32 664c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V456c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272zm-32-344a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z")),t.InstagramFill=l("instagram",o,s(a,"M512 378.7c-73.4 0-133.3 59.9-133.3 133.3S438.6 645.3 512 645.3 645.3 585.4 645.3 512 585.4 378.7 512 378.7zM911.8 512c0-55.2.5-109.9-2.6-165-3.1-64-17.7-120.8-64.5-167.6-46.9-46.9-103.6-61.4-167.6-64.5-55.2-3.1-109.9-2.6-165-2.6-55.2 0-109.9-.5-165 2.6-64 3.1-120.8 17.7-167.6 64.5C132.6 226.3 118.1 283 115 347c-3.1 55.2-2.6 109.9-2.6 165s-.5 109.9 2.6 165c3.1 64 17.7 120.8 64.5 167.6 46.9 46.9 103.6 61.4 167.6 64.5 55.2 3.1 109.9 2.6 165 2.6 55.2 0 109.9.5 165-2.6 64-3.1 120.8-17.7 167.6-64.5 46.9-46.9 61.4-103.6 64.5-167.6 3.2-55.1 2.6-109.8 2.6-165zM512 717.1c-113.5 0-205.1-91.6-205.1-205.1S398.5 306.9 512 306.9 717.1 398.5 717.1 512 625.5 717.1 512 717.1zm213.5-370.7c-26.5 0-47.9-21.4-47.9-47.9s21.4-47.9 47.9-47.9 47.9 21.4 47.9 47.9a47.84 47.84 0 0 1-47.9 47.9z")),t.InsuranceFill=l("insurance",o,s(a,"M519.9 358.8h97.9v41.6h-97.9zm347-188.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM411.3 656h-.2c0 4.4-3.6 8-8 8h-37.3c-4.4 0-8-3.6-8-8V471.4c-7.7 9.2-15.4 17.9-23.1 26a6.04 6.04 0 0 1-10.2-2.4l-13.2-43.5c-.6-2-.2-4.1 1.2-5.6 37-43.4 64.7-95.1 82.2-153.6 1.1-3.5 5-5.3 8.4-3.7l38.6 18.3c2.7 1.3 4.1 4.4 3.2 7.2a429.2 429.2 0 0 1-33.6 79V656zm296.5-49.2l-26.3 35.3a5.92 5.92 0 0 1-8.9.7c-30.6-29.3-56.8-65.2-78.1-106.9V656c0 4.4-3.6 8-8 8h-36.2c-4.4 0-8-3.6-8-8V536c-22 44.7-49 80.8-80.6 107.6a5.9 5.9 0 0 1-8.9-1.4L430 605.7a6 6 0 0 1 1.6-8.1c28.6-20.3 51.9-45.2 71-76h-55.1c-4.4 0-8-3.6-8-8V478c0-4.4 3.6-8 8-8h94.9v-18.6h-65.9c-4.4 0-8-3.6-8-8V316c0-4.4 3.6-8 8-8h184.7c4.4 0 8 3.6 8 8v127.2c0 4.4-3.6 8-8 8h-66.7v18.6h98.8c4.4 0 8 3.6 8 8v35.6c0 4.4-3.6 8-8 8h-59c18.1 29.1 41.8 54.3 72.3 76.9 2.6 2.1 3.2 5.9 1.2 8.5z")),t.InteractionFill=l("interaction",o,s(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM726 585.7c0 55.3-44.7 100.1-99.7 100.1H420.6v53.4c0 5.7-6.5 8.8-10.9 5.3l-109.1-85.7c-3.5-2.7-3.5-8 0-10.7l109.1-85.7c4.4-3.5 10.9-.3 10.9 5.3v53.4h205.7c19.6 0 35.5-16 35.5-35.6v-78.9c0-3.7 3-6.8 6.8-6.8h50.7c3.7 0 6.8 3 6.8 6.8v79.1zm-2.6-209.9l-109.1 85.7c-4.4 3.5-10.9.3-10.9-5.3v-53.4H397.7c-19.6 0-35.5 16-35.5 35.6v78.9c0 3.7-3 6.8-6.8 6.8h-50.7c-3.7 0-6.8-3-6.8-6.8v-78.9c0-55.3 44.7-100.1 99.7-100.1h205.7v-53.4c0-5.7 6.5-8.8 10.9-5.3l109.1 85.7c3.6 2.5 3.6 7.8.1 10.5z")),t.InterationFill=l("interation",o,s(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM726 585.7c0 55.3-44.7 100.1-99.7 100.1H420.6v53.4c0 5.7-6.5 8.8-10.9 5.3l-109.1-85.7c-3.5-2.7-3.5-8 0-10.7l109.1-85.7c4.4-3.5 10.9-.3 10.9 5.3v53.4h205.7c19.6 0 35.5-16 35.5-35.6v-78.9c0-3.7 3-6.8 6.8-6.8h50.7c3.7 0 6.8 3 6.8 6.8v79.1zm-2.6-209.9l-109.1 85.7c-4.4 3.5-10.9.3-10.9-5.3v-53.4H397.7c-19.6 0-35.5 16-35.5 35.6v78.9c0 3.7-3 6.8-6.8 6.8h-50.7c-3.7 0-6.8-3-6.8-6.8v-78.9c0-55.3 44.7-100.1 99.7-100.1h205.7v-53.4c0-5.7 6.5-8.8 10.9-5.3l109.1 85.7c3.6 2.5 3.6 7.8.1 10.5z")),t.LayoutFill=l("layout",o,s(a,"M384 912h496c17.7 0 32-14.3 32-32V340H384v572zm496-800H384v164h528V144c0-17.7-14.3-32-32-32zm-768 32v736c0 17.7 14.3 32 32 32h176V112H144c-17.7 0-32 14.3-32 32z")),t.LeftCircleFill=l("left-circle",o,s(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm104 316.9c0 10.2-4.9 19.9-13.2 25.9L457.4 512l145.4 105.2c8.3 6 13.2 15.6 13.2 25.9V690c0 6.5-7.4 10.3-12.7 6.5l-246-178a7.95 7.95 0 0 1 0-12.9l246-178a8 8 0 0 1 12.7 6.5v46.8z")),t.LeftSquareFill=l("left-square",o,s(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM624 380.9c0 10.2-4.9 19.9-13.2 25.9L465.4 512l145.4 105.2c8.3 6 13.2 15.6 13.2 25.9V690c0 6.5-7.4 10.3-12.7 6.5l-246-178a7.95 7.95 0 0 1 0-12.9l246-178c5.3-3.8 12.7 0 12.7 6.5v46.8z")),t.LikeFill=l("like",o,s(a,"M885.9 533.7c16.8-22.2 26.1-49.4 26.1-77.7 0-44.9-25.1-87.4-65.5-111.1a67.67 67.67 0 0 0-34.3-9.3H572.4l6-122.9c1.4-29.7-9.1-57.9-29.5-79.4A106.62 106.62 0 0 0 471 99.9c-52 0-98 35-111.8 85.1l-85.9 311h-.3v428h472.3c9.2 0 18.2-1.8 26.5-5.4 47.6-20.3 78.3-66.8 78.3-118.4 0-12.6-1.8-25-5.4-37 16.8-22.2 26.1-49.4 26.1-77.7 0-12.6-1.8-25-5.4-37 16.8-22.2 26.1-49.4 26.1-77.7-.2-12.6-2-25.1-5.6-37.1zM112 528v364c0 17.7 14.3 32 32 32h65V496h-65c-17.7 0-32 14.3-32 32z")),t.LockFill=l("lock",o,s(a,"M832 464h-68V240c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zM540 701v53c0 4.4-3.6 8-8 8h-40c-4.4 0-8-3.6-8-8v-53a48.01 48.01 0 1 1 56 0zm152-237H332V240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v224z")),t.LinkedinFill=l("linkedin",o,s(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM349.3 793.7H230.6V411.9h118.7v381.8zm-59.3-434a68.8 68.8 0 1 1 68.8-68.8c-.1 38-30.9 68.8-68.8 68.8zm503.7 434H675.1V608c0-44.3-.8-101.2-61.7-101.2-61.7 0-71.2 48.2-71.2 98v188.9H423.7V411.9h113.8v52.2h1.6c15.8-30 54.5-61.7 112.3-61.7 120.2 0 142.3 79.1 142.3 181.9v209.4z")),t.MailFill=l("mail",o,s(a,"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-80.8 108.9L531.7 514.4c-7.8 6.1-18.7 6.1-26.5 0L189.6 268.9A7.2 7.2 0 0 1 194 256h648.8a7.2 7.2 0 0 1 4.4 12.9z")),t.MedicineBoxFill=l("medicine-box",o,s(a,"M839.2 278.1a32 32 0 0 0-30.4-22.1H736V144c0-17.7-14.3-32-32-32H320c-17.7 0-32 14.3-32 32v112h-72.8a31.9 31.9 0 0 0-30.4 22.1L112 502v378c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V502l-72.8-223.9zM660 628c0 4.4-3.6 8-8 8H544v108c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V636H372c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h108V464c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v108h108c4.4 0 8 3.6 8 8v48zm4-372H360v-72h304v72z")),t.MediumCircleFill=l("medium-circle",o,s(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm256 253.7l-40.8 39.1c-3.6 2.7-5.3 7.1-4.6 11.4v287.7c-.7 4.4 1 8.8 4.6 11.4l40 39.1v8.7H566.4v-8.3l41.3-40.1c4.1-4.1 4.1-5.3 4.1-11.4V422.5l-115 291.6h-15.5L347.5 422.5V618c-1.2 8.2 1.7 16.5 7.5 22.4l53.8 65.1v8.7H256v-8.7l53.8-65.1a26.1 26.1 0 0 0 7-22.4V392c.7-6.3-1.7-12.4-6.5-16.7l-47.8-57.6V309H411l114.6 251.5 100.9-251.3H768v8.5z")),t.MediumSquareFill=l("medium-square",o,s(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM768 317.7l-40.8 39.1c-3.6 2.7-5.3 7.1-4.6 11.4v287.7c-.7 4.4 1 8.8 4.6 11.4l40 39.1v8.7H566.4v-8.3l41.3-40.1c4.1-4.1 4.1-5.3 4.1-11.4V422.5l-115 291.6h-15.5L347.5 422.5V618c-1.2 8.2 1.7 16.5 7.5 22.4l53.8 65.1v8.7H256v-8.7l53.8-65.1a26.1 26.1 0 0 0 7-22.4V392c.7-6.3-1.7-12.4-6.5-16.7l-47.8-57.6V309H411l114.6 251.5 100.9-251.3H768v8.5z")),t.MehFill=l("meh",o,s(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zM288 421a48.01 48.01 0 0 1 96 0 48.01 48.01 0 0 1-96 0zm384 200c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h304c4.4 0 8 3.6 8 8v48zm16-152a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z")),t.MessageFill=l("message",o,s(a,"M924.3 338.4a447.57 447.57 0 0 0-96.1-143.3 443.09 443.09 0 0 0-143-96.3A443.91 443.91 0 0 0 512 64h-2c-60.5.3-119 12.3-174.1 35.9a444.08 444.08 0 0 0-141.7 96.5 445 445 0 0 0-95 142.8A449.89 449.89 0 0 0 65 514.1c.3 69.4 16.9 138.3 47.9 199.9v152c0 25.4 20.6 46 45.9 46h151.8a447.72 447.72 0 0 0 199.5 48h2.1c59.8 0 117.7-11.6 172.3-34.3A443.2 443.2 0 0 0 827 830.5c41.2-40.9 73.6-88.7 96.3-142 23.5-55.2 35.5-113.9 35.8-174.5.2-60.9-11.6-120-34.8-175.6zM312.4 560c-26.4 0-47.9-21.5-47.9-48s21.5-48 47.9-48 47.9 21.5 47.9 48-21.4 48-47.9 48zm199.6 0c-26.4 0-47.9-21.5-47.9-48s21.5-48 47.9-48 47.9 21.5 47.9 48-21.5 48-47.9 48zm199.6 0c-26.4 0-47.9-21.5-47.9-48s21.5-48 47.9-48 47.9 21.5 47.9 48-21.5 48-47.9 48z")),t.MinusCircleFill=l("minus-circle",o,s(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm192 472c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z")),t.MinusSquareFill=l("minus-square",o,s(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM704 536c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z")),t.MobileFill=l("mobile",o,s(a,"M744 62H280c-35.3 0-64 28.7-64 64v768c0 35.3 28.7 64 64 64h464c35.3 0 64-28.7 64-64V126c0-35.3-28.7-64-64-64zM512 824c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40z")),t.MoneyCollectFill=l("money-collect",o,s(a,"M911.5 699.7a8 8 0 0 0-10.3-4.8L840 717.2V179c0-37.6-30.4-68-68-68H252c-37.6 0-68 30.4-68 68v538.2l-61.3-22.3c-.9-.3-1.8-.5-2.7-.5-4.4 0-8 3.6-8 8V762c0 3.3 2.1 6.3 5.3 7.5L501 909.1c7.1 2.6 14.8 2.6 21.9 0l383.8-139.5c3.2-1.2 5.3-4.2 5.3-7.5v-59.6c0-1-.2-1.9-.5-2.8zm-243.8-377L564 514.3h57.6c4.4 0 8 3.6 8 8v27.1c0 4.4-3.6 8-8 8h-76.3v39h76.3c4.4 0 8 3.6 8 8v27.1c0 4.4-3.6 8-8 8h-76.3V703c0 4.4-3.6 8-8 8h-49.9c-4.4 0-8-3.6-8-8v-63.4h-76c-4.4 0-8-3.6-8-8v-27.1c0-4.4 3.6-8 8-8h76v-39h-76c-4.4 0-8-3.6-8-8v-27.1c0-4.4 3.6-8 8-8h57L356.5 322.8c-2.1-3.8-.7-8.7 3.2-10.8 1.2-.7 2.5-1 3.8-1h55.7a8 8 0 0 1 7.1 4.4L511 484.2h3.3L599 315.4c1.3-2.7 4.1-4.4 7.1-4.4h54.5c4.4 0 8 3.6 8.1 7.9 0 1.3-.4 2.6-1 3.8z")),t.PauseCircleFill=l("pause-circle",o,s(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-80 600c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V360c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v304zm224 0c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V360c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v304z")),t.PayCircleFill=l("pay-circle",o,s(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm166.6 246.8L567.5 515.6h62c4.4 0 8 3.6 8 8v29.9c0 4.4-3.6 8-8 8h-82V603h82c4.4 0 8 3.6 8 8v29.9c0 4.4-3.6 8-8 8h-82V717c0 4.4-3.6 8-8 8h-54.3c-4.4 0-8-3.6-8-8v-68.1h-81.7c-4.4 0-8-3.6-8-8V611c0-4.4 3.6-8 8-8h81.7v-41.5h-81.7c-4.4 0-8-3.6-8-8v-29.9c0-4.4 3.6-8 8-8h61.4L345.4 310.8a8.07 8.07 0 0 1 7-11.9h60.7c3 0 5.8 1.7 7.1 4.4l90.6 180h3.4l90.6-180a8 8 0 0 1 7.1-4.4h59.5c4.4 0 8 3.6 8 8 .2 1.4-.2 2.7-.8 3.9z")),t.NotificationFill=l("notification",o,s(a,"M880 112c-3.8 0-7.7.7-11.6 2.3L292 345.9H128c-8.8 0-16 7.4-16 16.6v299c0 9.2 7.2 16.6 16 16.6h101.6c-3.7 11.6-5.6 23.9-5.6 36.4 0 65.9 53.8 119.5 120 119.5 55.4 0 102.1-37.6 115.9-88.4l408.6 164.2c3.9 1.5 7.8 2.3 11.6 2.3 16.9 0 32-14.2 32-33.2V145.2C912 126.2 897 112 880 112zM344 762.3c-26.5 0-48-21.4-48-47.8 0-11.2 3.9-21.9 11-30.4l84.9 34.1c-2 24.6-22.7 44.1-47.9 44.1z")),t.PhoneFill=l("phone",o,s(a,"M885.6 230.2L779.1 123.8a80.83 80.83 0 0 0-57.3-23.8c-21.7 0-42.1 8.5-57.4 23.8L549.8 238.4a80.83 80.83 0 0 0-23.8 57.3c0 21.7 8.5 42.1 23.8 57.4l83.8 83.8A393.82 393.82 0 0 1 553.1 553 395.34 395.34 0 0 1 437 633.8L353.2 550a80.83 80.83 0 0 0-57.3-23.8c-21.7 0-42.1 8.5-57.4 23.8L123.8 664.5a80.89 80.89 0 0 0-23.8 57.4c0 21.7 8.5 42.1 23.8 57.4l106.3 106.3c24.4 24.5 58.1 38.4 92.7 38.4 7.3 0 14.3-.6 21.2-1.8 134.8-22.2 268.5-93.9 376.4-201.7C828.2 612.8 899.8 479.2 922.3 344c6.8-41.3-6.9-83.8-36.7-113.8z")),t.PictureFill=l("picture",o,s(a,"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zM338 304c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm513.9 437.1a8.11 8.11 0 0 1-5.2 1.9H177.2c-4.4 0-8-3.6-8-8 0-1.9.7-3.7 1.9-5.2l170.3-202c2.8-3.4 7.9-3.8 11.3-1 .3.3.7.6 1 1l99.4 118 158.1-187.5c2.8-3.4 7.9-3.8 11.3-1 .3.3.7.6 1 1l229.6 271.6c2.6 3.3 2.2 8.4-1.2 11.2z")),t.PieChartFill=l("pie-chart",o,s(a,"M863.1 518.5H505.5V160.9c0-4.4-3.6-8-8-8h-26a398.57 398.57 0 0 0-282.5 117 397.47 397.47 0 0 0-85.6 127C82.6 446.2 72 498.5 72 552.5S82.6 658.7 103.4 708c20.1 47.5 48.9 90.3 85.6 127 36.7 36.7 79.4 65.5 127 85.6a396.64 396.64 0 0 0 155.6 31.5 398.57 398.57 0 0 0 282.5-117c36.7-36.7 65.5-79.4 85.6-127a396.64 396.64 0 0 0 31.5-155.6v-26c-.1-4.4-3.7-8-8.1-8zM951 463l-2.6-28.2c-8.5-92-49.3-178.8-115.1-244.3A398.5 398.5 0 0 0 588.4 75.6L560.1 73c-4.7-.4-8.7 3.2-8.7 7.9v383.7c0 4.4 3.6 8 8 8l383.6-1c4.7-.1 8.4-4 8-8.6z")),t.PlayCircleFill=l("play-circle",o,s(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm144.1 454.9L437.7 677.8a8.02 8.02 0 0 1-12.7-6.5V353.7a8 8 0 0 1 12.7-6.5L656.1 506a7.9 7.9 0 0 1 0 12.9z")),t.PlaySquareFill=l("play-square",o,s(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM641.7 520.8L442.3 677.6c-7.4 5.8-18.3.6-18.3-8.8V355.3c0-9.4 10.9-14.7 18.3-8.8l199.4 156.7a11.2 11.2 0 0 1 0 17.6z")),t.PlusCircleFill=l("plus-circle",o,s(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm192 472c0 4.4-3.6 8-8 8H544v152c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V544H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h152V328c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v152h152c4.4 0 8 3.6 8 8v48z")),t.PlusSquareFill=l("plus-square",o,s(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM704 536c0 4.4-3.6 8-8 8H544v152c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V544H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h152V328c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v152h152c4.4 0 8 3.6 8 8v48z")),t.PoundCircleFill=l("pound-circle",o,s(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm146 658c0 4.4-3.6 8-8 8H376.2c-4.4 0-8-3.6-8-8v-38.5c0-3.7 2.5-6.9 6.1-7.8 44-10.9 72.8-49 72.8-94.2 0-14.7-2.5-29.4-5.9-44.2H374c-4.4 0-8-3.6-8-8v-30c0-4.4 3.6-8 8-8h53.7c-7.8-25.1-14.6-50.7-14.6-77.1 0-75.8 58.6-120.3 151.5-120.3 26.5 0 51.4 5.5 70.3 12.7 3.1 1.2 5.2 4.2 5.2 7.5v39.5a8 8 0 0 1-10.6 7.6c-17.9-6.4-39-10.5-60.4-10.5-53.3 0-87.3 26.6-87.3 70.2 0 24.7 6.2 47.9 13.4 70.5h112c4.4 0 8 3.6 8 8v30c0 4.4-3.6 8-8 8h-98.6c3.1 13.2 5.3 26.9 5.3 41 0 40.7-16.5 73.9-43.9 91.1v4.7h180c4.4 0 8 3.6 8 8V722z")),t.PrinterFill=l("printer",o,s(a,"M732 120c0-4.4-3.6-8-8-8H300c-4.4 0-8 3.6-8 8v148h440V120zm120 212H172c-44.2 0-80 35.8-80 80v328c0 17.7 14.3 32 32 32h168v132c0 4.4 3.6 8 8 8h424c4.4 0 8-3.6 8-8V772h168c17.7 0 32-14.3 32-32V412c0-44.2-35.8-80-80-80zM664 844H360V568h304v276zm164-360c0 4.4-3.6 8-8 8h-40c-4.4 0-8-3.6-8-8v-40c0-4.4 3.6-8 8-8h40c4.4 0 8 3.6 8 8v40z")),t.ProfileFill=l("profile",o,s(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM380 696c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm0-144c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm0-144c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm304 272c0 4.4-3.6 8-8 8H492c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zm0-144c0 4.4-3.6 8-8 8H492c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zm0-144c0 4.4-3.6 8-8 8H492c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48z")),t.ProjectFill=l("project",o,s(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM368 744c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8V280c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v464zm192-280c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8V280c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v184zm192 72c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8V280c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v256z")),t.PushpinFill=l("pushpin",o,s(a,"M878.3 392.1L631.9 145.7c-6.5-6.5-15-9.7-23.5-9.7s-17 3.2-23.5 9.7L423.8 306.9c-12.2-1.4-24.5-2-36.8-2-73.2 0-146.4 24.1-206.5 72.3-15.4 12.3-16.6 35.4-2.7 49.4l181.7 181.7-215.4 215.2a15.8 15.8 0 0 0-4.6 9.8l-3.4 37.2c-.9 9.4 6.6 17.4 15.9 17.4.5 0 1 0 1.5-.1l37.2-3.4c3.7-.3 7.2-2 9.8-4.6l215.4-215.4 181.7 181.7c6.5 6.5 15 9.7 23.5 9.7 9.7 0 19.3-4.2 25.9-12.4 56.3-70.3 79.7-158.3 70.2-243.4l161.1-161.1c12.9-12.8 12.9-33.8 0-46.8z")),t.PropertySafetyFill=l("property-safety",o,s(a,"M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM648.3 332.8l-87.7 161.1h45.7c5.5 0 10 4.5 10 10v21.3c0 5.5-4.5 10-10 10h-63.4v29.7h63.4c5.5 0 10 4.5 10 10v21.3c0 5.5-4.5 10-10 10h-63.4V658c0 5.5-4.5 10-10 10h-41.3c-5.5 0-10-4.5-10-10v-51.8h-63.1c-5.5 0-10-4.5-10-10v-21.3c0-5.5 4.5-10 10-10h63.1v-29.7h-63.1c-5.5 0-10-4.5-10-10v-21.3c0-5.5 4.5-10 10-10h45.2l-88-161.1c-2.6-4.8-.9-10.9 4-13.6 1.5-.8 3.1-1.2 4.8-1.2h46c3.8 0 7.2 2.1 8.9 5.5l72.9 144.3 73.2-144.3a10 10 0 0 1 8.9-5.5h45c5.5 0 10 4.5 10 10 .1 1.7-.3 3.3-1.1 4.8z")),t.QqCircleFill=l("qq-circle",o,s(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm210.5 612.4c-11.5 1.4-44.9-52.7-44.9-52.7 0 31.3-16.2 72.2-51.1 101.8 16.9 5.2 54.9 19.2 45.9 34.4-7.3 12.3-125.6 7.9-159.8 4-34.2 3.8-152.5 8.3-159.8-4-9.1-15.2 28.9-29.2 45.8-34.4-35-29.5-51.1-70.4-51.1-101.8 0 0-33.4 54.1-44.9 52.7-5.4-.7-12.4-29.6 9.4-99.7 10.3-33 22-60.5 40.2-105.8-3.1-116.9 45.3-215 160.4-215 113.9 0 163.3 96.1 160.4 215 18.1 45.2 29.9 72.8 40.2 105.8 21.7 70.1 14.6 99.1 9.3 99.7z")),t.QqSquareFill=l("qq-square",o,s(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM722.5 676.4c-11.5 1.4-44.9-52.7-44.9-52.7 0 31.3-16.2 72.2-51.1 101.8 16.9 5.2 54.9 19.2 45.9 34.4-7.3 12.3-125.6 7.9-159.8 4-34.2 3.8-152.5 8.3-159.8-4-9.1-15.2 28.9-29.2 45.8-34.4-35-29.5-51.1-70.4-51.1-101.8 0 0-33.4 54.1-44.9 52.7-5.4-.7-12.4-29.6 9.4-99.7 10.3-33 22-60.5 40.2-105.8-3.1-116.9 45.3-215 160.4-215 113.9 0 163.3 96.1 160.4 215 18.1 45.2 29.9 72.8 40.2 105.8 21.7 70.1 14.6 99.1 9.3 99.7z")),t.QuestionCircleFill=l("question-circle",o,s(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 708c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm62.9-219.5a48.3 48.3 0 0 0-30.9 44.8V620c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-21.5c0-23.1 6.7-45.9 19.9-64.9 12.9-18.6 30.9-32.8 52.1-40.9 34-13.1 56-41.6 56-72.7 0-44.1-43.1-80-96-80s-96 35.9-96 80v7.6c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V420c0-39.3 17.2-76 48.4-103.3C430.4 290.4 470 276 512 276s81.6 14.5 111.6 40.7C654.8 344 672 380.7 672 420c0 57.8-38.1 109.8-97.1 132.5z")),t.ReadFill=l("read",o,s(a,"M928 161H699.2c-49.1 0-97.1 14.1-138.4 40.7L512 233l-48.8-31.3A255.2 255.2 0 0 0 324.8 161H96c-17.7 0-32 14.3-32 32v568c0 17.7 14.3 32 32 32h228.8c49.1 0 97.1 14.1 138.4 40.7l44.4 28.6c1.3.8 2.8 1.3 4.3 1.3s3-.4 4.3-1.3l44.4-28.6C602 807.1 650.1 793 699.2 793H928c17.7 0 32-14.3 32-32V193c0-17.7-14.3-32-32-32zM404 553.5c0 4.1-3.2 7.5-7.1 7.5H211.1c-3.9 0-7.1-3.4-7.1-7.5v-45c0-4.1 3.2-7.5 7.1-7.5h185.7c3.9 0 7.1 3.4 7.1 7.5v45zm0-140c0 4.1-3.2 7.5-7.1 7.5H211.1c-3.9 0-7.1-3.4-7.1-7.5v-45c0-4.1 3.2-7.5 7.1-7.5h185.7c3.9 0 7.1 3.4 7.1 7.5v45zm416 140c0 4.1-3.2 7.5-7.1 7.5H627.1c-3.9 0-7.1-3.4-7.1-7.5v-45c0-4.1 3.2-7.5 7.1-7.5h185.7c3.9 0 7.1 3.4 7.1 7.5v45zm0-140c0 4.1-3.2 7.5-7.1 7.5H627.1c-3.9 0-7.1-3.4-7.1-7.5v-45c0-4.1 3.2-7.5 7.1-7.5h185.7c3.9 0 7.1 3.4 7.1 7.5v45z")),t.ReconciliationFill=l("reconciliation",o,s(a,"M676 623c-18.8 0-34 15.2-34 34s15.2 34 34 34 34-15.2 34-34-15.2-34-34-34zm204-455H668c0-30.9-25.1-56-56-56h-80c-30.9 0-56 25.1-56 56H264c-17.7 0-32 14.3-32 32v200h-88c-17.7 0-32 14.3-32 32v448c0 17.7 14.3 32 32 32h336c17.7 0 32-14.3 32-32v-16h368c17.7 0 32-14.3 32-32V200c0-17.7-14.3-32-32-32zM448 848H176V616h272v232zm0-296H176v-88h272v88zm20-272v-48h72v-56h64v56h72v48H468zm180 168v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8zm28 301c-50.8 0-92-41.2-92-92s41.2-92 92-92 92 41.2 92 92-41.2 92-92 92zm92-245c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-96c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v96zm-92 61c-50.8 0-92 41.2-92 92s41.2 92 92 92 92-41.2 92-92-41.2-92-92-92zm0 126c-18.8 0-34-15.2-34-34s15.2-34 34-34 34 15.2 34 34-15.2 34-34 34z")),t.RedEnvelopeFill=l("red-envelope",o,s(a,"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zM647 470.4l-87.2 161h45.9c4.6 0 8.4 3.8 8.4 8.4v25.1c0 4.6-3.8 8.4-8.4 8.4h-63.3v28.6h63.3c4.6 0 8.4 3.8 8.4 8.4v25c.2 4.6-3.6 8.5-8.2 8.5h-63.3v49.9c0 4.6-3.8 8.4-8.4 8.4h-43.7c-4.6 0-8.4-3.8-8.4-8.4v-49.9h-63c-4.6 0-8.4-3.8-8.4-8.4v-25.1c0-4.6 3.8-8.4 8.4-8.4h63v-28.6h-63c-4.6 0-8.4-3.8-8.4-8.4v-25.1c0-4.6 3.8-8.4 8.4-8.4h45.4l-87.5-161c-2.2-4.1-.7-9.1 3.4-11.4 1.3-.6 2.6-1 3.9-1h48.8c3.2 0 6.1 1.8 7.5 4.6l71.9 141.8 71.9-141.9a8.5 8.5 0 0 1 7.5-4.6h47.8c4.6 0 8.4 3.8 8.4 8.4-.1 1.5-.5 2.9-1.1 4.1zM512.6 323L289 148h446L512.6 323z")),t.RedditCircleFill=l("reddit-circle",o,s(a,"M584 548a36 36 0 1 0 72 0 36 36 0 1 0-72 0zm144-108a35.9 35.9 0 0 0-32.5 20.6c18.8 14.3 34.4 30.7 45.9 48.8A35.98 35.98 0 0 0 728 440zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm245 477.9c4.6 13.5 7 27.6 7 42.1 0 99.4-112.8 180-252 180s-252-80.6-252-180c0-14.5 2.4-28.6 7-42.1A72.01 72.01 0 0 1 296 404c27.1 0 50.6 14.9 62.9 37 36.2-19.8 80.2-32.8 128.1-36.1l58.4-131.1c4.3-9.8 15.2-14.8 25.5-11.8l91.6 26.5a54.03 54.03 0 0 1 101.6 25.6c0 29.8-24.2 54-54 54-23.5 0-43.5-15.1-50.9-36.1L577 308.3l-43 96.5c49.1 3 94.2 16.1 131.2 36.3 12.3-22.1 35.8-37 62.9-37 39.8 0 72 32.2 72 72-.1 29.3-17.8 54.6-43.1 65.8zm-171.3 83c-14.9 11.7-44.3 24.3-73.7 24.3s-58.9-12.6-73.7-24.3c-9.3-7.3-22.7-5.7-30 3.6-7.3 9.3-5.7 22.7 3.6 30 25.7 20.4 65 33.5 100.1 33.5 35.1 0 74.4-13.1 100.2-33.5 9.3-7.3 10.9-20.8 3.6-30a21.46 21.46 0 0 0-30.1-3.6zM296 440a35.98 35.98 0 0 0-13.4 69.4c11.5-18.1 27.1-34.5 45.9-48.8A35.9 35.9 0 0 0 296 440zm72 108a36 36 0 1 0 72 0 36 36 0 1 0-72 0z")),t.RedditSquareFill=l("reddit-square",o,s(a,"M296 440a35.98 35.98 0 0 0-13.4 69.4c11.5-18.1 27.1-34.5 45.9-48.8A35.9 35.9 0 0 0 296 440zm289.7 184.9c-14.9 11.7-44.3 24.3-73.7 24.3s-58.9-12.6-73.7-24.3c-9.3-7.3-22.7-5.7-30 3.6-7.3 9.3-5.7 22.7 3.6 30 25.7 20.4 65 33.5 100.1 33.5 35.1 0 74.4-13.1 100.2-33.5 9.3-7.3 10.9-20.8 3.6-30a21.46 21.46 0 0 0-30.1-3.6zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM757 541.9c4.6 13.5 7 27.6 7 42.1 0 99.4-112.8 180-252 180s-252-80.6-252-180c0-14.5 2.4-28.6 7-42.1A72.01 72.01 0 0 1 296 404c27.1 0 50.6 14.9 62.9 37 36.2-19.8 80.2-32.8 128.1-36.1l58.4-131.1c4.3-9.8 15.2-14.8 25.5-11.8l91.6 26.5a54.03 54.03 0 0 1 101.6 25.6c0 29.8-24.2 54-54 54-23.5 0-43.5-15.1-50.9-36.1L577 308.3l-43 96.5c49.1 3 94.2 16.1 131.2 36.3 12.3-22.1 35.8-37 62.9-37 39.8 0 72 32.2 72 72-.1 29.3-17.8 54.6-43.1 65.8zM584 548a36 36 0 1 0 72 0 36 36 0 1 0-72 0zm144-108a35.9 35.9 0 0 0-32.5 20.6c18.8 14.3 34.4 30.7 45.9 48.8A35.98 35.98 0 0 0 728 440zM368 548a36 36 0 1 0 72 0 36 36 0 1 0-72 0z")),t.RestFill=l("rest",o,s(a,"M832 256h-28.1l-35.7-120.9c-4-13.7-16.5-23.1-30.7-23.1h-451c-14.3 0-26.8 9.4-30.7 23.1L220.1 256H192c-17.7 0-32 14.3-32 32v28c0 4.4 3.6 8 8 8h45.8l47.7 558.7a32 32 0 0 0 31.9 29.3h429.2a32 32 0 0 0 31.9-29.3L802.2 324H856c4.4 0 8-3.6 8-8v-28c0-17.7-14.3-32-32-32zM508 704c-79.5 0-144-64.5-144-144s64.5-144 144-144 144 64.5 144 144-64.5 144-144 144zM291 256l22.4-76h397.2l22.4 76H291zm137 304a80 80 0 1 0 160 0 80 80 0 1 0-160 0z")),t.RightCircleFill=l("right-circle",o,s(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm154.7 454.5l-246 178c-5.3 3.8-12.7 0-12.7-6.5v-46.9c0-10.2 4.9-19.9 13.2-25.9L566.6 512 421.2 406.8c-8.3-6-13.2-15.6-13.2-25.9V334c0-6.5 7.4-10.3 12.7-6.5l246 178c4.4 3.2 4.4 9.8 0 13z")),t.RocketFill=l("rocket",o,s(a,"M864 736c0-111.6-65.4-208-160-252.9V317.3c0-15.1-5.3-29.7-15.1-41.2L536.5 95.4C530.1 87.8 521 84 512 84s-18.1 3.8-24.5 11.4L335.1 276.1a63.97 63.97 0 0 0-15.1 41.2v165.8C225.4 528 160 624.4 160 736h156.5c-2.3 7.2-3.5 15-3.5 23.8 0 22.1 7.6 43.7 21.4 60.8a97.2 97.2 0 0 0 43.1 30.6c23.1 54 75.6 88.8 134.5 88.8 29.1 0 57.3-8.6 81.4-24.8 23.6-15.8 41.9-37.9 53-64a97 97 0 0 0 43.1-30.5 97.52 97.52 0 0 0 21.4-60.8c0-8.4-1.1-16.4-3.1-23.8L864 736zM512 352a48.01 48.01 0 0 1 0 96 48.01 48.01 0 0 1 0-96zm116.1 432.2c-5.2 3-11.2 4.2-17.1 3.4l-19.5-2.4-2.8 19.4c-5.4 37.9-38.4 66.5-76.7 66.5s-71.3-28.6-76.7-66.5l-2.8-19.5-19.5 2.5a27.7 27.7 0 0 1-17.1-3.5c-8.7-5-14.1-14.3-14.1-24.4 0-10.6 5.9-19.4 14.6-23.8h231.3c8.8 4.5 14.6 13.3 14.6 23.8-.1 10.2-5.5 19.6-14.2 24.5z")),t.RightSquareFill=l("right-square",o,s(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM658.7 518.5l-246 178c-5.3 3.8-12.7 0-12.7-6.5v-46.9c0-10.2 4.9-19.9 13.2-25.9L558.6 512 413.2 406.8c-8.3-6-13.2-15.6-13.2-25.9V334c0-6.5 7.4-10.3 12.7-6.5l246 178c4.4 3.2 4.4 9.8 0 13z")),t.SafetyCertificateFill=l("safety-certificate",o,s(a,"M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM694.5 340.7L481.9 633.4a16.1 16.1 0 0 1-26 0l-126.4-174c-3.8-5.3 0-12.7 6.5-12.7h55.2c5.1 0 10 2.5 13 6.6l64.7 89 150.9-207.8c3-4.1 7.8-6.6 13-6.6H688c6.5.1 10.3 7.5 6.5 12.8z")),t.SaveFill=l("save",o,s(a,"M893.3 293.3L730.7 130.7c-12-12-28.3-18.7-45.3-18.7H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V338.5c0-17-6.7-33.2-18.7-45.2zM384 176h256v112H384V176zm128 554c-79.5 0-144-64.5-144-144s64.5-144 144-144 144 64.5 144 144-64.5 144-144 144zm0-224c-44.2 0-80 35.8-80 80s35.8 80 80 80 80-35.8 80-80-35.8-80-80-80z")),t.ScheduleFill=l("schedule",o,s(a,"M928 224H768v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H548v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H328v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H96c-17.7 0-32 14.3-32 32v576c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32zM424 688c0 4.4-3.6 8-8 8H232c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zm0-136c0 4.4-3.6 8-8 8H232c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zm374.5-91.3l-165 228.7a15.9 15.9 0 0 1-25.8 0L493.5 531.2c-3.8-5.3 0-12.7 6.5-12.7h54.9c5.1 0 9.9 2.5 12.9 6.6l52.8 73.1 103.7-143.7c3-4.2 7.8-6.6 12.9-6.6H792c6.5.1 10.3 7.5 6.5 12.8z")),t.SecurityScanFill=l("security-scan",o,s(a,"M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM626.8 554c-48.5 48.5-123 55.2-178.6 20.1l-77.5 77.5a8.03 8.03 0 0 1-11.3 0l-34-34a8.03 8.03 0 0 1 0-11.3l77.5-77.5c-35.1-55.7-28.4-130.1 20.1-178.6 56.3-56.3 147.5-56.3 203.8 0 56.3 56.3 56.3 147.5 0 203.8zm-158.54-45.27a80.1 80.1 0 1 0 113.27-113.28 80.1 80.1 0 1 0-113.27 113.28z")),t.SettingFill=l("setting",o,s(a,"M512.5 390.6c-29.9 0-57.9 11.6-79.1 32.8-21.1 21.2-32.8 49.2-32.8 79.1 0 29.9 11.7 57.9 32.8 79.1 21.2 21.1 49.2 32.8 79.1 32.8 29.9 0 57.9-11.7 79.1-32.8 21.1-21.2 32.8-49.2 32.8-79.1 0-29.9-11.7-57.9-32.8-79.1a110.96 110.96 0 0 0-79.1-32.8zm412.3 235.5l-65.4-55.9c3.1-19 4.7-38.4 4.7-57.7s-1.6-38.8-4.7-57.7l65.4-55.9a32.03 32.03 0 0 0 9.3-35.2l-.9-2.6a442.5 442.5 0 0 0-79.6-137.7l-1.8-2.1a32.12 32.12 0 0 0-35.1-9.5l-81.2 28.9c-30-24.6-63.4-44-99.6-57.5l-15.7-84.9a32.05 32.05 0 0 0-25.8-25.7l-2.7-.5c-52-9.4-106.8-9.4-158.8 0l-2.7.5a32.05 32.05 0 0 0-25.8 25.7l-15.8 85.3a353.44 353.44 0 0 0-98.9 57.3l-81.8-29.1a32 32 0 0 0-35.1 9.5l-1.8 2.1a445.93 445.93 0 0 0-79.6 137.7l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.2 56.5c-3.1 18.8-4.6 38-4.6 57 0 19.2 1.5 38.4 4.6 57l-66 56.5a32.03 32.03 0 0 0-9.3 35.2l.9 2.6c18.1 50.3 44.8 96.8 79.6 137.7l1.8 2.1a32.12 32.12 0 0 0 35.1 9.5l81.8-29.1c29.8 24.5 63 43.9 98.9 57.3l15.8 85.3a32.05 32.05 0 0 0 25.8 25.7l2.7.5a448.27 448.27 0 0 0 158.8 0l2.7-.5a32.05 32.05 0 0 0 25.8-25.7l15.7-84.9c36.2-13.6 69.6-32.9 99.6-57.5l81.2 28.9a32 32 0 0 0 35.1-9.5l1.8-2.1c34.8-41.1 61.5-87.4 79.6-137.7l.9-2.6c4.3-12.4.6-26.3-9.5-35zm-412.3 52.2c-97.1 0-175.8-78.7-175.8-175.8s78.7-175.8 175.8-175.8 175.8 78.7 175.8 175.8-78.7 175.8-175.8 175.8z")),t.ShopFill=l("shop",o,s(a,"M882 272.1V144c0-17.7-14.3-32-32-32H174c-17.7 0-32 14.3-32 32v128.1c-16.7 1-30 14.9-30 31.9v131.7a177 177 0 0 0 14.4 70.4c4.3 10.2 9.6 19.8 15.6 28.9v345c0 17.6 14.3 32 32 32h274V736h128v176h274c17.7 0 32-14.3 32-32V535a175 175 0 0 0 15.6-28.9c9.5-22.3 14.4-46 14.4-70.4V304c0-17-13.3-30.9-30-31.9zm-72 568H640V704c0-17.7-14.3-32-32-32H416c-17.7 0-32 14.3-32 32v136.1H214V597.9c2.9 1.4 5.9 2.8 9 4 22.3 9.4 46 14.1 70.4 14.1s48-4.7 70.4-14.1c13.8-5.8 26.8-13.2 38.7-22.1.2-.1.4-.1.6 0a180.4 180.4 0 0 0 38.7 22.1c22.3 9.4 46 14.1 70.4 14.1 24.4 0 48-4.7 70.4-14.1 13.8-5.8 26.8-13.2 38.7-22.1.2-.1.4-.1.6 0a180.4 180.4 0 0 0 38.7 22.1c22.3 9.4 46 14.1 70.4 14.1 24.4 0 48-4.7 70.4-14.1 3-1.3 6-2.6 9-4v242.2zm0-568.1H214v-88h596v88z")),t.ShoppingFill=l("shopping",o,s(a,"M832 312H696v-16c0-101.6-82.4-184-184-184s-184 82.4-184 184v16H192c-17.7 0-32 14.3-32 32v536c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V344c0-17.7-14.3-32-32-32zm-208 0H400v-16c0-61.9 50.1-112 112-112s112 50.1 112 112v16z")),t.SketchCircleFill=l("sketch-circle",o,s(a,"M582.3 625.6l147.9-166.3h-63.4zm90-202.3h62.5l-92.1-115.1zm-274.7 36L512 684.5l114.4-225.2zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm286.7 380.2L515.8 762.3c-1 1.1-2.4 1.7-3.8 1.7s-2.8-.6-3.8-1.7L225.3 444.2a5.14 5.14 0 0 1-.2-6.6L365.6 262c1-1.2 2.4-1.9 4-1.9h284.6c1.6 0 3 .7 4 1.9l140.5 175.6a4.9 4.9 0 0 1 0 6.6zm-190.5-20.9L512 326.1l-96.2 97.2zM420.3 301.1l-23.1 89.8 88.8-89.8zm183.4 0H538l88.8 89.8zm-222.4 7.1l-92.1 115.1h62.5zm-87.5 151.1l147.9 166.3-84.5-166.3z")),t.SketchSquareFill=l("sketch-square",o,s(a,"M608.2 423.3L512 326.1l-96.2 97.2zm-25.9 202.3l147.9-166.3h-63.4zm90-202.3h62.5l-92.1-115.1zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-81.3 332.2L515.8 762.3c-1 1.1-2.4 1.7-3.8 1.7s-2.8-.6-3.8-1.7L225.3 444.2a5.14 5.14 0 0 1-.2-6.6L365.6 262c1-1.2 2.4-1.9 4-1.9h284.6c1.6 0 3 .7 4 1.9l140.5 175.6a4.9 4.9 0 0 1 0 6.6zm-401.1 15.1L512 684.5l114.4-225.2zm-16.3-151.1l-92.1 115.1h62.5zm-87.5 151.1l147.9 166.3-84.5-166.3zm126.5-158.2l-23.1 89.8 88.8-89.8zm183.4 0H538l88.8 89.8z")),t.SkinFill=l("skin",o,s(a,"M870 126H663.8c-17.4 0-32.9 11.9-37 29.3C614.3 208.1 567 246 512 246s-102.3-37.9-114.8-90.7a37.93 37.93 0 0 0-37-29.3H154a44 44 0 0 0-44 44v252a44 44 0 0 0 44 44h75v388a44 44 0 0 0 44 44h478a44 44 0 0 0 44-44V466h75a44 44 0 0 0 44-44V170a44 44 0 0 0-44-44z")),t.SlackCircleFill=l("slack-circle",o,s(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zM361.5 580.2c0 27.8-22.5 50.4-50.3 50.4a50.35 50.35 0 0 1-50.3-50.4c0-27.8 22.5-50.4 50.3-50.4h50.3v50.4zm134 134.4c0 27.8-22.5 50.4-50.3 50.4-27.8 0-50.3-22.6-50.3-50.4V580.2c0-27.8 22.5-50.4 50.3-50.4a50.35 50.35 0 0 1 50.3 50.4v134.4zm-50.2-218.4h-134c-27.8 0-50.3-22.6-50.3-50.4 0-27.8 22.5-50.4 50.3-50.4h134c27.8 0 50.3 22.6 50.3 50.4-.1 27.9-22.6 50.4-50.3 50.4zm0-134.4c-13.3 0-26.1-5.3-35.6-14.8S395 324.8 395 311.4c0-27.8 22.5-50.4 50.3-50.4 27.8 0 50.3 22.6 50.3 50.4v50.4h-50.3zm83.7-50.4c0-27.8 22.5-50.4 50.3-50.4 27.8 0 50.3 22.6 50.3 50.4v134.4c0 27.8-22.5 50.4-50.3 50.4-27.8 0-50.3-22.6-50.3-50.4V311.4zM579.3 765c-27.8 0-50.3-22.6-50.3-50.4v-50.4h50.3c27.8 0 50.3 22.6 50.3 50.4 0 27.8-22.5 50.4-50.3 50.4zm134-134.4h-134c-13.3 0-26.1-5.3-35.6-14.8S529 593.6 529 580.2c0-27.8 22.5-50.4 50.3-50.4h134c27.8 0 50.3 22.6 50.3 50.4 0 27.8-22.5 50.4-50.3 50.4zm0-134.4H663v-50.4c0-27.8 22.5-50.4 50.3-50.4s50.3 22.6 50.3 50.4c0 27.8-22.5 50.4-50.3 50.4z")),t.SlackSquareFill=l("slack-square",o,s(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM529 311.4c0-27.8 22.5-50.4 50.3-50.4 27.8 0 50.3 22.6 50.3 50.4v134.4c0 27.8-22.5 50.4-50.3 50.4-27.8 0-50.3-22.6-50.3-50.4V311.4zM361.5 580.2c0 27.8-22.5 50.4-50.3 50.4a50.35 50.35 0 0 1-50.3-50.4c0-27.8 22.5-50.4 50.3-50.4h50.3v50.4zm134 134.4c0 27.8-22.5 50.4-50.3 50.4-27.8 0-50.3-22.6-50.3-50.4V580.2c0-27.8 22.5-50.4 50.3-50.4a50.35 50.35 0 0 1 50.3 50.4v134.4zm-50.2-218.4h-134c-27.8 0-50.3-22.6-50.3-50.4 0-27.8 22.5-50.4 50.3-50.4h134c27.8 0 50.3 22.6 50.3 50.4-.1 27.9-22.6 50.4-50.3 50.4zm0-134.4c-13.3 0-26.1-5.3-35.6-14.8S395 324.8 395 311.4c0-27.8 22.5-50.4 50.3-50.4 27.8 0 50.3 22.6 50.3 50.4v50.4h-50.3zm134 403.2c-27.8 0-50.3-22.6-50.3-50.4v-50.4h50.3c27.8 0 50.3 22.6 50.3 50.4 0 27.8-22.5 50.4-50.3 50.4zm134-134.4h-134a50.35 50.35 0 0 1-50.3-50.4c0-27.8 22.5-50.4 50.3-50.4h134c27.8 0 50.3 22.6 50.3 50.4 0 27.8-22.5 50.4-50.3 50.4zm0-134.4H663v-50.4c0-27.8 22.5-50.4 50.3-50.4s50.3 22.6 50.3 50.4c0 27.8-22.5 50.4-50.3 50.4z")),t.SkypeFill=l("skype",o,s(a,"M883.7 578.6c4.1-22.5 6.3-45.5 6.3-68.5 0-51-10-100.5-29.7-147-19-45-46.3-85.4-81-120.1a375.79 375.79 0 0 0-120.1-80.9c-46.6-19.7-96-29.7-147-29.7-24 0-48.1 2.3-71.5 6.8A225.1 225.1 0 0 0 335.6 113c-59.7 0-115.9 23.3-158.1 65.5A222.25 222.25 0 0 0 112 336.6c0 38 9.8 75.4 28.1 108.4-3.7 21.4-5.7 43.3-5.7 65.1 0 51 10 100.5 29.7 147 19 45 46.2 85.4 80.9 120.1 34.7 34.7 75.1 61.9 120.1 80.9 46.6 19.7 96 29.7 147 29.7 22.2 0 44.4-2 66.2-5.9 33.5 18.9 71.3 29 110 29 59.7 0 115.9-23.2 158.1-65.5 42.3-42.2 65.5-98.4 65.5-158.1.1-38-9.7-75.5-28.2-108.7zm-370 162.9c-134.2 0-194.2-66-194.2-115.4 0-25.4 18.7-43.1 44.5-43.1 57.4 0 42.6 82.5 149.7 82.5 54.9 0 85.2-29.8 85.2-60.3 0-18.3-9-38.7-45.2-47.6l-119.4-29.8c-96.1-24.1-113.6-76.1-113.6-124.9 0-101.4 95.5-139.5 185.2-139.5 82.6 0 180 45.7 180 106.5 0 26.1-22.6 41.2-48.4 41.2-49 0-40-67.8-138.7-67.8-49 0-76.1 22.2-76.1 53.9s38.7 41.8 72.3 49.5l88.4 19.6c96.8 21.6 121.3 78.1 121.3 131.3 0 82.3-63.3 143.9-191 143.9z")),t.SlidersFill=l("sliders",o,s(a,"M904 296h-66v-96c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v96h-66c-4.4 0-8 3.6-8 8v416c0 4.4 3.6 8 8 8h66v96c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8v-96h66c4.4 0 8-3.6 8-8V304c0-4.4-3.6-8-8-8zm-584-72h-66v-56c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v56h-66c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8h66v56c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8v-56h66c4.4 0 8-3.6 8-8V232c0-4.4-3.6-8-8-8zm292 180h-66V232c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v172h-66c-4.4 0-8 3.6-8 8v200c0 4.4 3.6 8 8 8h66v172c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V620h66c4.4 0 8-3.6 8-8V412c0-4.4-3.6-8-8-8z")),t.SmileFill=l("smile",o,s(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zM288 421a48.01 48.01 0 0 1 96 0 48.01 48.01 0 0 1-96 0zm224 272c-85.5 0-155.6-67.3-160-151.6a8 8 0 0 1 8-8.4h48.1c4.2 0 7.8 3.2 8.1 7.4C420 589.9 461.5 629 512 629s92.1-39.1 95.8-88.6c.3-4.2 3.9-7.4 8.1-7.4H664a8 8 0 0 1 8 8.4C667.6 625.7 597.5 693 512 693zm176-224a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z")),t.SnippetsFill=l("snippets",o,s(a,"M832 112H724V72c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v40H500V72c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v40H320c-17.7 0-32 14.3-32 32v120h-96c-17.7 0-32 14.3-32 32v632c0 17.7 14.3 32 32 32h512c17.7 0 32-14.3 32-32v-96h96c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM664 486H514V336h.2L664 485.8v.2zm128 274h-56V456L544 264H360v-80h68v32c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-32h152v32c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-32h68v576z")),t.SoundFill=l("sound",o,s(a,"M892.1 737.8l-110.3-63.7a15.9 15.9 0 0 0-21.7 5.9l-19.9 34.5c-4.4 7.6-1.8 17.4 5.8 21.8L856.3 800a15.9 15.9 0 0 0 21.7-5.9l19.9-34.5c4.4-7.6 1.7-17.4-5.8-21.8zM760 344a15.9 15.9 0 0 0 21.7 5.9L892 286.2c7.6-4.4 10.2-14.2 5.8-21.8L878 230a15.9 15.9 0 0 0-21.7-5.9L746 287.8a15.99 15.99 0 0 0-5.8 21.8L760 344zm174 132H806c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16h128c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16zM625.9 115c-5.9 0-11.9 1.6-17.4 5.3L254 352H90c-8.8 0-16 7.2-16 16v288c0 8.8 7.2 16 16 16h164l354.5 231.7c5.5 3.6 11.6 5.3 17.4 5.3 16.7 0 32.1-13.3 32.1-32.1V147.1c0-18.8-15.4-32.1-32.1-32.1z")),t.StarFill=l("star",o,s(a,"M908.1 353.1l-253.9-36.9L540.7 86.1c-3.1-6.3-8.2-11.4-14.5-14.5-15.8-7.8-35-1.3-42.9 14.5L369.8 316.2l-253.9 36.9c-7 1-13.4 4.3-18.3 9.3a32.05 32.05 0 0 0 .6 45.3l183.7 179.1-43.4 252.9a31.95 31.95 0 0 0 46.4 33.7L512 754l227.1 119.4c6.2 3.3 13.4 4.4 20.3 3.2 17.4-3 29.1-19.5 26.1-36.9l-43.4-252.9 183.7-179.1c5-4.9 8.3-11.3 9.3-18.3 2.7-17.5-9.5-33.7-27-36.3z")),t.StepBackwardFill=l("step-backward",o,s(r,"M347.6 528.95l383.2 301.02c14.25 11.2 35.2 1.1 35.2-16.95V210.97c0-18.05-20.95-28.14-35.2-16.94L347.6 495.05a21.53 21.53 0 0 0 0 33.9M330 864h-64a8 8 0 0 1-8-8V168a8 8 0 0 1 8-8h64a8 8 0 0 1 8 8v688a8 8 0 0 1-8 8")),t.StepForwardFill=l("step-forward",o,s(r,"M676.4 528.95L293.2 829.97c-14.25 11.2-35.2 1.1-35.2-16.95V210.97c0-18.05 20.95-28.14 35.2-16.94l383.2 301.02a21.53 21.53 0 0 1 0 33.9M694 864h64a8 8 0 0 0 8-8V168a8 8 0 0 0-8-8h-64a8 8 0 0 0-8 8v688a8 8 0 0 0 8 8")),t.StopFill=l("stop",o,s(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm234.8 736.5L223.5 277.2c16-19.7 34-37.7 53.7-53.7l523.3 523.3c-16 19.6-34 37.7-53.7 53.7z")),t.SwitcherFill=l("switcher",o,s(a,"M752 240H144c-17.7 0-32 14.3-32 32v608c0 17.7 14.3 32 32 32h608c17.7 0 32-14.3 32-32V272c0-17.7-14.3-32-32-32zM596 606c0 4.4-3.6 8-8 8H308c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h280c4.4 0 8 3.6 8 8v48zm284-494H264c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h576v576c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V144c0-17.7-14.3-32-32-32z")),t.TabletFill=l("tablet",o,s(a,"M800 64H224c-35.3 0-64 28.7-64 64v768c0 35.3 28.7 64 64 64h576c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64zM512 824c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40z")),t.TagFill=l("tag",o,s(a,"M938 458.8l-29.6-312.6c-1.5-16.2-14.4-29-30.6-30.6L565.2 86h-.4c-3.2 0-5.7 1-7.6 2.9L88.9 557.2a9.96 9.96 0 0 0 0 14.1l363.8 363.8c1.9 1.9 4.4 2.9 7.1 2.9s5.2-1 7.1-2.9l468.3-468.3c2-2.1 3-5 2.8-8zM699 387c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z")),t.TagsFill=l("tags",o,s(a,"M483.2 790.3L861.4 412c1.7-1.7 2.5-4 2.3-6.3l-25.5-301.4c-.7-7.8-6.8-13.9-14.6-14.6L522.2 64.3c-2.3-.2-4.7.6-6.3 2.3L137.7 444.8a8.03 8.03 0 0 0 0 11.3l334.2 334.2c3.1 3.2 8.2 3.2 11.3 0zm122.7-533.4c18.7-18.7 49.1-18.7 67.9 0 18.7 18.7 18.7 49.1 0 67.9-18.7 18.7-49.1 18.7-67.9 0-18.7-18.7-18.7-49.1 0-67.9zm283.8 282.9l-39.6-39.5a8.03 8.03 0 0 0-11.3 0l-362 361.3-237.6-237a8.03 8.03 0 0 0-11.3 0l-39.6 39.5a8.03 8.03 0 0 0 0 11.3l243.2 242.8 39.6 39.5c3.1 3.1 8.2 3.1 11.3 0l407.3-406.6c3.1-3.1 3.1-8.2 0-11.3z")),t.TaobaoCircleFill=l("taobao-circle",o,s(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zM315.7 291.5c27.3 0 49.5 22.1 49.5 49.4s-22.1 49.4-49.5 49.4a49.4 49.4 0 1 1 0-98.8zM366.9 578c-13.6 42.3-10.2 26.7-64.4 144.5l-78.5-49s87.7-79.8 105.6-116.2c19.2-38.4-21.1-58.9-21.1-58.9l-60.2-37.5 32.7-50.2c45.4 33.7 48.7 36.6 79.2 67.2 23.8 23.9 20.7 56.8 6.7 100.1zm427.2 55c-15.3 143.8-202.4 90.3-202.4 90.3l10.2-41.1 43.3 9.3c80 5 72.3-64.9 72.3-64.9V423c.6-77.3-72.6-85.4-204.2-38.3l30.6 8.3c-2.5 9-12.5 23.2-25.2 38.6h176v35.6h-99.1v44.5h98.7v35.7h-98.7V622c14.9-4.8 28.6-11.5 40.5-20.5l-8.7-32.5 46.5-14.4 38.8 94.9-57.3 23.9-10.2-37.8c-25.6 19.5-78.8 48-171.8 45.4-99.2 2.6-73.7-112-73.7-112l2.5-1.3H472c-.5 14.7-6.6 38.7 1.7 51.8 6.8 10.8 24.2 12.6 35.3 13.1 1.3.1 2.6.1 3.9.1v-85.3h-101v-35.7h101v-44.5H487c-22.7 24.1-43.5 44.1-43.5 44.1l-30.6-26.7c21.7-22.9 43.3-59.1 56.8-83.2-10.9 4.4-22 9.2-33.6 14.2-11.2 14.3-24.2 29-38.7 43.5.5.8-50-28.4-50-28.4 52.2-44.4 81.4-139.9 81.4-139.9l72.5 20.4s-5.9 14-18.4 35.6c290.3-82.3 307.4 50.5 307.4 50.5s19.1 91.8 3.8 235.7z")),t.TaobaoSquareFill=l("taobao-square",o,s(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM315.7 291.5c27.3 0 49.5 22.1 49.5 49.4s-22.1 49.4-49.5 49.4a49.4 49.4 0 1 1 0-98.8zM366.9 578c-13.6 42.3-10.2 26.7-64.4 144.5l-78.5-49s87.7-79.8 105.6-116.2c19.2-38.4-21.1-58.9-21.1-58.9l-60.2-37.5 32.7-50.2c45.4 33.7 48.7 36.6 79.2 67.2 23.8 23.9 20.7 56.8 6.7 100.1zm427.2 55c-15.3 143.8-202.4 90.3-202.4 90.3l10.2-41.1 43.3 9.3c80 5 72.3-64.9 72.3-64.9V423c.6-77.3-72.6-85.4-204.2-38.3l30.6 8.3c-2.5 9-12.5 23.2-25.2 38.6h176v35.6h-99.1v44.5h98.7v35.7h-98.7V622c14.9-4.8 28.6-11.5 40.5-20.5l-8.7-32.5 46.5-14.4 38.8 94.9-57.3 23.9-10.2-37.8c-25.6 19.5-78.8 48-171.8 45.4-99.2 2.6-73.7-112-73.7-112l2.5-1.3H472c-.5 14.7-6.6 38.7 1.7 51.8 6.8 10.8 24.2 12.6 35.3 13.1 1.3.1 2.6.1 3.9.1v-85.3h-101v-35.7h101v-44.5H487c-22.7 24.1-43.5 44.1-43.5 44.1l-30.6-26.7c21.7-22.9 43.3-59.1 56.8-83.2-10.9 4.4-22 9.2-33.6 14.2-11.2 14.3-24.2 29-38.7 43.5.5.8-50-28.4-50-28.4 52.2-44.4 81.4-139.9 81.4-139.9l72.5 20.4s-5.9 14-18.4 35.6c290.3-82.3 307.4 50.5 307.4 50.5s19.1 91.8 3.8 235.7z")),t.ToolFill=l("tool",o,s(a,"M865.3 244.7c-.3-.3-61.1 59.8-182.1 180.6l-84.9-84.9 180.9-180.9c-95.2-57.3-217.5-42.6-296.8 36.7A244.42 244.42 0 0 0 419 432l1.8 6.7-283.5 283.4c-6.2 6.2-6.2 16.4 0 22.6l141.4 141.4c6.2 6.2 16.4 6.2 22.6 0l283.3-283.3 6.7 1.8c83.7 22.3 173.6-.9 236-63.3 79.4-79.3 94.1-201.6 38-296.6z")),t.ThunderboltFill=l("thunderbolt",o,s(a,"M848 359.3H627.7L825.8 109c4.1-5.3.4-13-6.3-13H436c-2.8 0-5.5 1.5-6.9 4L170 547.5c-3.1 5.3.7 12 6.9 12h174.4l-89.4 357.6c-1.9 7.8 7.5 13.3 13.3 7.7L853.5 373c5.2-4.9 1.7-13.7-5.5-13.7z")),t.TrademarkCircleFill=l("trademark-circle",o,s(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm164.7 660.2c-1.1.5-2.3.8-3.5.8h-62c-3.1 0-5.9-1.8-7.2-4.6l-74.6-159.2h-88.7V717c0 4.4-3.6 8-8 8H378c-4.4 0-8-3.6-8-8V307c0-4.4 3.6-8 8-8h155.6c98.8 0 144.2 59.9 144.2 131.1 0 70.2-43.6 106.4-78.4 119.2l80.8 164.2c2.1 3.9.4 8.7-3.5 10.7zM523.9 357h-83.4v148H522c53 0 82.8-25.6 82.8-72.4 0-50.3-32.9-75.6-80.9-75.6z")),t.TwitterCircleFill=l("twitter-circle",o,s(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm215.3 337.7c.3 4.7.3 9.6.3 14.4 0 146.8-111.8 315.9-316.1 315.9-63 0-121.4-18.3-170.6-49.8 9 1 17.6 1.4 26.8 1.4 52 0 99.8-17.6 137.9-47.4-48.8-1-89.8-33-103.8-77 17.1 2.5 32.5 2.5 50.1-2a111 111 0 0 1-88.9-109v-1.4c14.7 8.3 32 13.4 50.1 14.1a111.13 111.13 0 0 1-49.5-92.4c0-20.7 5.4-39.6 15.1-56a315.28 315.28 0 0 0 229 116.1C492 353.1 548.4 292 616.2 292c32 0 60.8 13.4 81.1 35 25.1-4.7 49.1-14.1 70.5-26.7-8.3 25.7-25.7 47.4-48.8 61.1 22.4-2.4 44-8.6 64-17.3-15.1 22.2-34 41.9-55.7 57.6z")),t.TrophyFill=l("trophy",o,s(a,"M868 160h-92v-40c0-4.4-3.6-8-8-8H256c-4.4 0-8 3.6-8 8v40h-92a44 44 0 0 0-44 44v148c0 81.7 60 149.6 138.2 162C265.6 630.2 359 721.8 476 734.5v105.2H280c-17.7 0-32 14.3-32 32V904c0 4.4 3.6 8 8 8h512c4.4 0 8-3.6 8-8v-32.3c0-17.7-14.3-32-32-32H548V734.5C665 721.8 758.4 630.2 773.8 514 852 501.6 912 433.7 912 352V204a44 44 0 0 0-44-44zM248 439.6c-37.1-11.9-64-46.7-64-87.6V232h64v207.6zM840 352c0 41-26.9 75.8-64 87.6V232h64v120z")),t.TwitterSquareFill=l("twitter-square",o,s(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM727.3 401.7c.3 4.7.3 9.6.3 14.4 0 146.8-111.8 315.9-316.1 315.9-63 0-121.4-18.3-170.6-49.8 9 1 17.6 1.4 26.8 1.4 52 0 99.8-17.6 137.9-47.4-48.8-1-89.8-33-103.8-77 17.1 2.5 32.5 2.5 50.1-2a111 111 0 0 1-88.9-109v-1.4c14.7 8.3 32 13.4 50.1 14.1a111.13 111.13 0 0 1-49.5-92.4c0-20.7 5.4-39.6 15.1-56a315.28 315.28 0 0 0 229 116.1C492 353.1 548.4 292 616.2 292c32 0 60.8 13.4 81.1 35 25.1-4.7 49.1-14.1 70.5-26.7-8.3 25.7-25.7 47.4-48.8 61.1 22.4-2.4 44-8.6 64-17.3-15.1 22.2-34 41.9-55.7 57.6z")),t.UnlockFill=l("unlock",o,s(a,"M832 464H332V240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v68c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-68c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zM540 701v53c0 4.4-3.6 8-8 8h-40c-4.4 0-8-3.6-8-8v-53a48.01 48.01 0 1 1 56 0z")),t.UpCircleFill=l("up-circle",o,s(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm178 555h-46.9c-10.2 0-19.9-4.9-25.9-13.2L512 460.4 406.8 605.8c-6 8.3-15.6 13.2-25.9 13.2H334c-6.5 0-10.3-7.4-6.5-12.7l178-246c3.2-4.4 9.7-4.4 12.9 0l178 246c3.9 5.3.1 12.7-6.4 12.7z")),t.UpSquareFill=l("up-square",o,s(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM690 624h-46.9c-10.2 0-19.9-4.9-25.9-13.2L512 465.4 406.8 610.8c-6 8.3-15.6 13.2-25.9 13.2H334c-6.5 0-10.3-7.4-6.5-12.7l178-246c3.2-4.4 9.7-4.4 12.9 0l178 246c3.9 5.3.1 12.7-6.4 12.7z")),t.UsbFill=l("usb",o,s(a,"M408 312h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm352 120V144c0-17.7-14.3-32-32-32H296c-17.7 0-32 14.3-32 32v288c-66.2 0-120 52.1-120 116v356c0 4.4 3.6 8 8 8h720c4.4 0 8-3.6 8-8V548c0-63.9-53.8-116-120-116zm-72 0H336V184h352v248zM568 312h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z")),t.WalletFill=l("wallet",o,s(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-32 464H528V448h320v128zm-268-64a40 40 0 1 0 80 0 40 40 0 1 0-80 0z")),t.VideoCameraFill=l("video-camera",o,s(a,"M912 302.3L784 376V224c0-35.3-28.7-64-64-64H128c-35.3 0-64 28.7-64 64v576c0 35.3 28.7 64 64 64h592c35.3 0 64-28.7 64-64V648l128 73.7c21.3 12.3 48-3.1 48-27.6V330c0-24.6-26.7-40-48-27.7zM328 352c0 4.4-3.6 8-8 8H208c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h112c4.4 0 8 3.6 8 8v48zm560 273l-104-59.8V458.9L888 399v226z")),t.WarningFill=l("warning",o,s(a,"M955.7 856l-416-720c-6.2-10.7-16.9-16-27.7-16s-21.6 5.3-27.7 16l-416 720C56 877.4 71.4 904 96 904h832c24.6 0 40-26.6 27.7-48zM480 416c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v184c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V416zm32 352a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z")),t.WeiboCircleFill=l("weibo-circle",o,s(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-44.4 672C353.1 736 236 680.4 236 588.9c0-47.8 30.2-103.1 82.3-155.3 69.5-69.6 150.6-101.4 181.1-70.8 13.5 13.5 14.8 36.8 6.1 64.6-4.5 14 13.1 6.3 13.1 6.3 56.2-23.6 105.2-25 123.1.7 9.6 13.7 8.6 32.8-.2 55.1-4.1 10.2 1.3 11.8 9 14.1 31.7 9.8 66.9 33.6 66.9 75.5.2 69.5-99.7 156.9-249.8 156.9zm207.3-290.8a34.9 34.9 0 0 0-7.2-34.1 34.68 34.68 0 0 0-33.1-10.7 18.24 18.24 0 0 1-7.6-35.7c24.1-5.1 50.1 2.3 67.7 21.9 17.7 19.6 22.4 46.3 14.9 69.8a18.13 18.13 0 0 1-22.9 11.7 18.18 18.18 0 0 1-11.8-22.9zm106 34.3s0 .1 0 0a21.1 21.1 0 0 1-26.6 13.7 21.19 21.19 0 0 1-13.6-26.7c11-34.2 4-73.2-21.7-101.8a104.04 104.04 0 0 0-98.9-32.1 21.14 21.14 0 0 1-25.1-16.3 21.07 21.07 0 0 1 16.2-25.1c49.4-10.5 102.8 4.8 139.1 45.1 36.3 40.2 46.1 95.1 30.6 143.2zm-334.5 6.1c-91.4 9-160.7 65.1-154.7 125.2 5.9 60.1 84.8 101.5 176.2 92.5 91.4-9.1 160.7-65.1 154.7-125.3-5.9-60.1-84.8-101.5-176.2-92.4zm80.2 141.7c-18.7 42.3-72.3 64.8-117.8 50.1-43.9-14.2-62.5-57.7-43.3-96.8 18.9-38.4 68-60.1 111.5-48.8 45 11.7 68 54.2 49.6 95.5zm-93-32.2c-14.2-5.9-32.4.2-41.2 13.9-8.8 13.8-4.7 30.2 9.3 36.6 14.3 6.5 33.2.3 42-13.8 8.8-14.3 4.2-30.6-10.1-36.7zm34.9-14.5c-5.4-2.2-12.2.5-15.4 5.8-3.1 5.4-1.4 11.5 4.1 13.8 5.5 2.3 12.6-.3 15.8-5.8 3-5.6 1-11.8-4.5-13.8z")),t.WechatFill=l("wechat",o,s(a,"M690.1 377.4c5.9 0 11.8.2 17.6.5-24.4-128.7-158.3-227.1-319.9-227.1C209 150.8 64 271.4 64 420.2c0 81.1 43.6 154.2 111.9 203.6a21.5 21.5 0 0 1 9.1 17.6c0 2.4-.5 4.6-1.1 6.9-5.5 20.3-14.2 52.8-14.6 54.3-.7 2.6-1.7 5.2-1.7 7.9 0 5.9 4.8 10.8 10.8 10.8 2.3 0 4.2-.9 6.2-2l70.9-40.9c5.3-3.1 11-5 17.2-5 3.2 0 6.4.5 9.5 1.4 33.1 9.5 68.8 14.8 105.7 14.8 6 0 11.9-.1 17.8-.4-7.1-21-10.9-43.1-10.9-66 0-135.8 132.2-245.8 295.3-245.8zm-194.3-86.5c23.8 0 43.2 19.3 43.2 43.1s-19.3 43.1-43.2 43.1c-23.8 0-43.2-19.3-43.2-43.1s19.4-43.1 43.2-43.1zm-215.9 86.2c-23.8 0-43.2-19.3-43.2-43.1s19.3-43.1 43.2-43.1 43.2 19.3 43.2 43.1-19.4 43.1-43.2 43.1zm586.8 415.6c56.9-41.2 93.2-102 93.2-169.7 0-124-120.8-224.5-269.9-224.5-149 0-269.9 100.5-269.9 224.5S540.9 847.5 690 847.5c30.8 0 60.6-4.4 88.1-12.3 2.6-.8 5.2-1.2 7.9-1.2 5.2 0 9.9 1.6 14.3 4.1l59.1 34c1.7 1 3.3 1.7 5.2 1.7a9 9 0 0 0 6.4-2.6 9 9 0 0 0 2.6-6.4c0-2.2-.9-4.4-1.4-6.6-.3-1.2-7.6-28.3-12.2-45.3-.5-1.9-.9-3.8-.9-5.7.1-5.9 3.1-11.2 7.6-14.5zM600.2 587.2c-19.9 0-36-16.1-36-35.9 0-19.8 16.1-35.9 36-35.9s36 16.1 36 35.9c0 19.8-16.2 35.9-36 35.9zm179.9 0c-19.9 0-36-16.1-36-35.9 0-19.8 16.1-35.9 36-35.9s36 16.1 36 35.9a36.08 36.08 0 0 1-36 35.9z")),t.WindowsFill=l("windows",o,s(a,"M523.8 191.4v288.9h382V128.1zm0 642.2l382 62.2v-352h-382zM120.1 480.2H443V201.9l-322.9 53.5zm0 290.4L443 823.2V543.8H120.1z")),t.YahooFill=l("yahoo",o,s(a,"M937.3 231H824.7c-15.5 0-27.7 12.6-27.1 28.1l13.1 366h84.4l65.4-366.4c2.7-15.2-7.8-27.7-23.2-27.7zm-77.4 450.4h-14.1c-27.1 0-49.2 22.2-49.2 49.3v14.1c0 27.1 22.2 49.3 49.2 49.3h14.1c27.1 0 49.2-22.2 49.2-49.3v-14.1c0-27.1-22.2-49.3-49.2-49.3zM402.6 231C216.2 231 65 357 65 512.5S216.2 794 402.6 794s337.6-126 337.6-281.5S589.1 231 402.6 231zm225.2 225.2h-65.3L458.9 559.8v65.3h84.4v56.3H318.2v-56.3h84.4v-65.3L242.9 399.9h-37v-56.3h168.5v56.3h-37l93.4 93.5 28.1-28.1V400h168.8v56.2z")),t.WeiboSquareFill=l("weibo-square",o,s(a,"M433.6 595.1c-14.2-5.9-32.4.2-41.2 13.9-8.8 13.8-4.7 30.2 9.3 36.6 14.3 6.5 33.2.3 42-13.8 8.8-14.3 4.2-30.6-10.1-36.7zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM467.6 736C353.1 736 236 680.4 236 588.9c0-47.8 30.2-103.1 82.3-155.3 69.5-69.6 150.6-101.4 181.1-70.8 13.5 13.5 14.8 36.8 6.1 64.6-4.5 14 13.1 6.3 13.1 6.3 56.2-23.6 105.2-25 123.1.7 9.6 13.7 8.6 32.8-.2 55.1-4.1 10.2 1.3 11.8 9 14.1 31.7 9.8 66.9 33.6 66.9 75.5.2 69.5-99.7 156.9-249.8 156.9zm207.3-290.8a34.9 34.9 0 0 0-7.2-34.1 34.68 34.68 0 0 0-33.1-10.7 18.24 18.24 0 0 1-7.6-35.7c24.1-5.1 50.1 2.3 67.7 21.9 17.7 19.6 22.4 46.3 14.9 69.8a18.13 18.13 0 0 1-22.9 11.7 18.18 18.18 0 0 1-11.8-22.9zm106 34.3s0 .1 0 0a21.1 21.1 0 0 1-26.6 13.7 21.19 21.19 0 0 1-13.6-26.7c11-34.2 4-73.2-21.7-101.8a104.04 104.04 0 0 0-98.9-32.1 21.14 21.14 0 0 1-25.1-16.3 21.07 21.07 0 0 1 16.2-25.1c49.4-10.5 102.8 4.8 139.1 45.1 36.3 40.2 46.1 95.1 30.6 143.2zm-334.5 6.1c-91.4 9-160.7 65.1-154.7 125.2 5.9 60.1 84.8 101.5 176.2 92.5 91.4-9.1 160.7-65.1 154.7-125.3-5.9-60.1-84.8-101.5-176.2-92.4zm80.2 141.7c-18.7 42.3-72.3 64.8-117.8 50.1-43.9-14.2-62.5-57.7-43.3-96.8 18.9-38.4 68-60.1 111.5-48.8 45 11.7 68 54.2 49.6 95.5zm-58.1-46.7c-5.4-2.2-12.2.5-15.4 5.8-3.1 5.4-1.4 11.5 4.1 13.8 5.5 2.3 12.6-.3 15.8-5.8 3-5.6 1-11.8-4.5-13.8z")),t.YuqueFill=l("yuque",o,s(a,"M854.6 370.6c-9.9-39.4 9.9-102.2 73.4-124.4l-67.9-3.6s-25.7-90-143.6-98c-117.9-8.1-195-3-195-3s87.4 55.6 52.4 154.7c-25.6 52.5-65.8 95.6-108.8 144.7-1.3 1.3-2.5 2.6-3.5 3.7C319.4 605 96 860 96 860c245.9 64.4 410.7-6.3 508.2-91.1 20.5-.2 35.9-.3 46.3-.3 135.8 0 250.6-117.6 245.9-248.4-3.2-89.9-31.9-110.2-41.8-149.6z")),t.YoutubeFill=l("youtube",o,s(a,"M941.3 296.1a112.3 112.3 0 0 0-79.2-79.3C792.2 198 512 198 512 198s-280.2 0-350.1 18.7A112.12 112.12 0 0 0 82.7 296C64 366 64 512 64 512s0 146 18.7 215.9c10.3 38.6 40.7 69 79.2 79.3C231.8 826 512 826 512 826s280.2 0 350.1-18.8c38.6-10.3 68.9-40.7 79.2-79.3C960 658 960 512 960 512s0-146-18.7-215.9zM423 646V378l232 133-232 135z")),t.ZhihuSquareFill=l("zhihu-square",o,s(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM432.3 592.8l71 80.7c9.2 33-3.3 63.1-3.3 63.1l-95.7-111.9v-.1c-8.9 29-20.1 57.3-33.3 84.7-22.6 45.7-55.2 54.7-89.5 57.7-34.4 3-23.3-5.3-23.3-5.3 68-55.5 78-87.8 96.8-123.1 11.9-22.3 20.4-64.3 25.3-96.8H264.1s4.8-31.2 19.2-41.7h101.6c.6-15.3-1.3-102.8-2-131.4h-49.4c-9.2 45-41 56.7-48.1 60.1-7 3.4-23.6 7.1-21.1 0 2.6-7.1 27-46.2 43.2-110.7 16.3-64.6 63.9-62 63.9-62-12.8 22.5-22.4 73.6-22.4 73.6h159.7c10.1 0 10.6 39 10.6 39h-90.8c-.7 22.7-2.8 83.8-5 131.4H519s12.2 15.4 12.2 41.7h-110l-.1 1.5c-1.5 20.4-6.3 43.9-12.9 67.6l24.1-18.1zm335.5 116h-87.6l-69.5 46.6-16.4-46.6h-40.1V321.5h213.6v387.3zM408.2 611s0-.1 0 0zm216 94.3l56.8-38.1h45.6-.1V364.7H596.7v302.5h14.1z")),t.ZhihuCircleFill=l("zhihu-circle",o,s(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-90.7 477.8l-.1 1.5c-1.5 20.4-6.3 43.9-12.9 67.6l24-18.1 71 80.7c9.2 33-3.3 63.1-3.3 63.1l-95.7-111.9v-.1c-8.9 29-20.1 57.3-33.3 84.7-22.6 45.7-55.2 54.7-89.5 57.7-34.4 3-23.3-5.3-23.3-5.3 68-55.5 78-87.8 96.8-123.1 11.9-22.3 20.4-64.3 25.3-96.8H264.1s4.8-31.2 19.2-41.7h101.6c.6-15.3-1.3-102.8-2-131.4h-49.4c-9.2 45-41 56.7-48.1 60.1-7 3.4-23.6 7.1-21.1 0 2.6-7.1 27-46.2 43.2-110.7 16.3-64.6 63.9-62 63.9-62-12.8 22.5-22.4 73.6-22.4 73.6h159.7c10.1 0 10.6 39 10.6 39h-90.8c-.7 22.7-2.8 83.8-5 131.4H519s12.2 15.4 12.2 41.7H421.3zm346.5 167h-87.6l-69.5 46.6-16.4-46.6h-40.1V321.5h213.6v387.3zM408.2 611s0-.1 0 0zm216 94.3l56.8-38.1h45.6-.1V364.7H596.7v302.5h14.1z")),t.AccountBookOutline=l("account-book",i,s(a,"M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v584zM639.5 414h-45c-3 0-5.8 1.7-7.1 4.4L514 563.8h-2.8l-73.4-145.4a8 8 0 0 0-7.1-4.4h-46c-1.3 0-2.7.3-3.8 1-3.9 2.1-5.3 7-3.2 10.9l89.3 164h-48.6c-4.4 0-8 3.6-8 8v21.3c0 4.4 3.6 8 8 8h65.1v33.7h-65.1c-4.4 0-8 3.6-8 8v21.3c0 4.4 3.6 8 8 8h65.1V752c0 4.4 3.6 8 8 8h41.3c4.4 0 8-3.6 8-8v-53.8h65.4c4.4 0 8-3.6 8-8v-21.3c0-4.4-3.6-8-8-8h-65.4v-33.7h65.4c4.4 0 8-3.6 8-8v-21.3c0-4.4-3.6-8-8-8h-49.1l89.3-164.1c.6-1.2 1-2.5 1-3.8.1-4.4-3.4-8-7.9-8z")),t.AlertOutline=l("alert",i,s(a,"M193 796c0 17.7 14.3 32 32 32h574c17.7 0 32-14.3 32-32V563c0-176.2-142.8-319-319-319S193 386.8 193 563v233zm72-233c0-136.4 110.6-247 247-247s247 110.6 247 247v193H404V585c0-5.5-4.5-10-10-10h-44c-5.5 0-10 4.5-10 10v171h-75V563zm-48.1-252.5l39.6-39.6c3.1-3.1 3.1-8.2 0-11.3l-67.9-67.9a8.03 8.03 0 0 0-11.3 0l-39.6 39.6a8.03 8.03 0 0 0 0 11.3l67.9 67.9c3.1 3.1 8.1 3.1 11.3 0zm669.6-79.2l-39.6-39.6a8.03 8.03 0 0 0-11.3 0l-67.9 67.9a8.03 8.03 0 0 0 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l67.9-67.9c3.1-3.2 3.1-8.2 0-11.3zM832 892H192c-17.7 0-32 14.3-32 32v24c0 4.4 3.6 8 8 8h688c4.4 0 8-3.6 8-8v-24c0-17.7-14.3-32-32-32zM484 180h56c4.4 0 8-3.6 8-8V76c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v96c0 4.4 3.6 8 8 8z")),t.AlipayCircleOutline=l("alipay-circle",i,s(a,"M308.6 545.7c-19.8 2-57.1 10.7-77.4 28.6-61 53-24.5 150 99 150 71.8 0 143.5-45.7 199.8-119-80.2-38.9-148.1-66.8-221.4-59.6zm460.5 67c100.1 33.4 154.7 43 166.7 44.8A445.9 445.9 0 0 0 960 512c0-247.4-200.6-448-448-448S64 264.6 64 512s200.6 448 448 448c155.9 0 293.2-79.7 373.5-200.5-75.6-29.8-213.6-85-286.8-120.1-69.9 85.7-160.1 137.8-253.7 137.8-158.4 0-212.1-138.1-137.2-229 16.3-19.8 44.2-38.7 87.3-49.4 67.5-16.5 175 10.3 275.7 43.4 18.1-33.3 33.4-69.9 44.7-108.9H305.1V402h160v-56.2H271.3v-31.3h193.8v-80.1s0-13.5 13.7-13.5H557v93.6h191.7v31.3H557.1V402h156.4c-15 61.1-37.7 117.4-66.2 166.8 47.5 17.1 90.1 33.3 121.8 43.9z")),t.AliwangwangOutline=l("aliwangwang",i,s(a,"M868.2 377.4c-18.9-45.1-46.3-85.6-81.2-120.6a377.26 377.26 0 0 0-120.5-81.2A375.65 375.65 0 0 0 519 145.8c-41.9 0-82.9 6.7-121.9 20C306 123.3 200.8 120 170.6 120c-2.2 0-7.4 0-9.4.2-11.9.4-22.8 6.5-29.2 16.4-6.5 9.9-7.7 22.4-3.4 33.5l64.3 161.6a378.59 378.59 0 0 0-52.8 193.2c0 51.4 10 101 29.8 147.6 18.9 45 46.2 85.6 81.2 120.5 34.7 34.8 75.4 62.1 120.5 81.2C418.3 894 467.9 904 519 904c51.3 0 100.9-10.1 147.7-29.8 44.9-18.9 85.5-46.3 120.4-81.2 34.7-34.8 62.1-75.4 81.2-120.6a376.5 376.5 0 0 0 29.8-147.6c-.2-51.2-10.1-100.8-29.9-147.4zm-66.4 266.5a307.08 307.08 0 0 1-65.9 98c-28.4 28.5-61.3 50.7-97.7 65.9h-.1c-38 16-78.3 24.2-119.9 24.2a306.51 306.51 0 0 1-217.5-90.2c-28.4-28.5-50.6-61.4-65.8-97.8v-.1c-16-37.8-24.1-78.2-24.1-119.9 0-55.4 14.8-109.7 42.8-157l13.2-22.1-9.5-23.9L206 192c14.9.6 35.9 2.1 59.7 5.6 43.8 6.5 82.5 17.5 114.9 32.6l19 8.9 19.9-6.8c31.5-10.8 64.8-16.2 98.9-16.2a306.51 306.51 0 0 1 217.5 90.2c28.4 28.5 50.6 61.4 65.8 97.8l.1.1.1.1c16 37.6 24.1 78 24.2 119.8-.1 41.7-8.3 82-24.3 119.8zM681.1 364.2c-20.4 0-37.1 16.7-37.1 37.1v55.1c0 20.4 16.6 37.1 37.1 37.1s37.1-16.7 37.1-37.1v-55.1c0-20.5-16.7-37.1-37.1-37.1zm-175.2 0c-20.5 0-37.1 16.7-37.1 37.1v55.1c0 20.4 16.7 37.1 37.1 37.1 20.5 0 37.1-16.7 37.1-37.1v-55.1c0-20.5-16.7-37.1-37.1-37.1z")),t.AndroidOutline=l("android",i,s(a,"M448.3 225.2c-18.6 0-32 13.4-32 31.9s13.5 31.9 32 31.9c18.6 0 32-13.4 32-31.9.1-18.4-13.4-31.9-32-31.9zm393.9 96.4c-13.8-13.8-32.7-21.5-53.2-21.5-3.9 0-7.4.4-10.7 1v-1h-3.6c-5.5-30.6-18.6-60.5-38.1-87.4-18.7-25.7-43-47.9-70.8-64.9l25.1-35.8v-3.3c0-.8.4-2.3.7-3.8.6-2.4 1.4-5.5 1.4-8.9 0-18.5-13.5-31.9-32-31.9-9.8 0-19.5 5.7-25.9 15.4l-29.3 42.1c-30-9.8-62.4-15-93.8-15-31.3 0-63.7 5.2-93.8 15L389 79.4c-6.6-9.6-16.1-15.4-26-15.4-18.6 0-32 13.4-32 31.9 0 6.2 2.5 12.8 6.7 17.4l22.6 32.3c-28.7 17-53.5 39.4-72.2 65.1-19.4 26.9-32 56.8-36.7 87.4h-5.5v1c-3.2-.6-6.7-1-10.7-1-20.3 0-39.2 7.5-53.1 21.3-13.8 13.8-21.5 32.6-21.5 53v235c0 20.3 7.5 39.1 21.4 52.9 13.8 13.8 32.8 21.5 53.2 21.5 3.9 0 7.4-.4 10.7-1v93.5c0 29.2 23.9 53.1 53.2 53.1H331v58.3c0 20.3 7.5 39.1 21.4 52.9 13.8 13.8 32.8 21.5 53.2 21.5 20.3 0 39.2-7.5 53.1-21.3 13.8-13.8 21.5-32.6 21.5-53v-58.2H544v58.1c0 20.3 7.5 39.1 21.4 52.9 13.8 13.8 32.8 21.5 53.2 21.5 20.4 0 39.2-7.5 53.1-21.6 13.8-13.8 21.5-32.6 21.5-53v-58.2h31.9c29.3 0 53.2-23.8 53.2-53.1v-91.4c3.2.6 6.7 1 10.7 1 20.3 0 39.2-7.5 53.1-21.3 13.8-13.8 21.5-32.6 21.5-53v-235c-.1-20.3-7.6-39-21.4-52.9zM246 609.6c0 6.8-3.9 10.6-10.7 10.6-6.8 0-10.7-3.8-10.7-10.6V374.5c0-6.8 3.9-10.6 10.7-10.6 6.8 0 10.7 3.8 10.7 10.6v235.1zm131.1-396.8c37.5-27.3 85.3-42.3 135-42.3s97.5 15.1 135 42.5c32.4 23.7 54.2 54.2 62.7 87.5H314.4c8.5-33.4 30.5-64 62.7-87.7zm39.3 674.7c-.6 5.6-4.4 8.7-10.5 8.7-6.8 0-10.7-3.8-10.7-10.6v-58.2h21.2v60.1zm202.3 8.7c-6.8 0-10.7-3.8-10.7-10.6v-58.2h21.2v60.1c-.6 5.6-4.3 8.7-10.5 8.7zm95.8-132.6H309.9V364h404.6v399.6zm85.2-154c0 6.8-3.9 10.6-10.7 10.6-6.8 0-10.7-3.8-10.7-10.6V374.5c0-6.8 3.9-10.6 10.7-10.6 6.8 0 10.7 3.8 10.7 10.6v235.1zM576.1 225.2c-18.6 0-32 13.4-32 31.9s13.5 31.9 32 31.9c18.6 0 32.1-13.4 32.1-32-.1-18.6-13.4-31.8-32.1-31.8z")),t.ApiOutline=l("api",i,s(a,"M917.7 148.8l-42.4-42.4c-1.6-1.6-3.6-2.3-5.7-2.3s-4.1.8-5.7 2.3l-76.1 76.1a199.27 199.27 0 0 0-112.1-34.3c-51.2 0-102.4 19.5-141.5 58.6L432.3 308.7a8.03 8.03 0 0 0 0 11.3L704 591.7c1.6 1.6 3.6 2.3 5.7 2.3 2 0 4.1-.8 5.7-2.3l101.9-101.9c68.9-69 77-175.7 24.3-253.5l76.1-76.1c3.1-3.2 3.1-8.3 0-11.4zM769.1 441.7l-59.4 59.4-186.8-186.8 59.4-59.4c24.9-24.9 58.1-38.7 93.4-38.7 35.3 0 68.4 13.7 93.4 38.7 24.9 24.9 38.7 58.1 38.7 93.4 0 35.3-13.8 68.4-38.7 93.4zm-190.2 105a8.03 8.03 0 0 0-11.3 0L501 613.3 410.7 523l66.7-66.7c3.1-3.1 3.1-8.2 0-11.3L441 408.6a8.03 8.03 0 0 0-11.3 0L363 475.3l-43-43a7.85 7.85 0 0 0-5.7-2.3c-2 0-4.1.8-5.7 2.3L206.8 534.2c-68.9 69-77 175.7-24.3 253.5l-76.1 76.1a8.03 8.03 0 0 0 0 11.3l42.4 42.4c1.6 1.6 3.6 2.3 5.7 2.3s4.1-.8 5.7-2.3l76.1-76.1c33.7 22.9 72.9 34.3 112.1 34.3 51.2 0 102.4-19.5 141.5-58.6l101.9-101.9c3.1-3.1 3.1-8.2 0-11.3l-43-43 66.7-66.7c3.1-3.1 3.1-8.2 0-11.3l-36.6-36.2zM441.7 769.1a131.32 131.32 0 0 1-93.4 38.7c-35.3 0-68.4-13.7-93.4-38.7a131.32 131.32 0 0 1-38.7-93.4c0-35.3 13.7-68.4 38.7-93.4l59.4-59.4 186.8 186.8-59.4 59.4z")),t.AppstoreOutline=l("appstore",i,s(a,"M464 144H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H212V212h200v200zm452-268H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H612V212h200v200zM464 544H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H212V612h200v200zm452-268H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H612V612h200v200z")),t.AudioOutline=l("audio",i,s(a,"M842 454c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 140.3-113.7 254-254 254S258 594.3 258 454c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 168.7 126.6 307.9 290 327.6V884H326.7c-13.7 0-24.7 14.3-24.7 32v36c0 4.4 2.8 8 6.2 8h407.6c3.4 0 6.2-3.6 6.2-8v-36c0-17.7-11-32-24.7-32H548V782.1c165.3-18 294-158 294-328.1zM512 624c93.9 0 170-75.2 170-168V232c0-92.8-76.1-168-170-168s-170 75.2-170 168v224c0 92.8 76.1 168 170 168zm-94-392c0-50.6 41.9-92 94-92s94 41.4 94 92v224c0 50.6-41.9 92-94 92s-94-41.4-94-92V232z")),t.AppleOutline=l("apple",i,s(a,"M747.4 535.7c-.4-68.2 30.5-119.6 92.9-157.5-34.9-50-87.7-77.5-157.3-82.8-65.9-5.2-138 38.4-164.4 38.4-27.9 0-91.7-36.6-141.9-36.6C273.1 298.8 163 379.8 163 544.6c0 48.7 8.9 99 26.7 150.8 23.8 68.2 109.6 235.3 199.1 232.6 46.8-1.1 79.9-33.2 140.8-33.2 59.1 0 89.7 33.2 141.9 33.2 90.3-1.3 167.9-153.2 190.5-221.6-121.1-57.1-114.6-167.2-114.6-170.7zm-10.6 267c-14.3 19.9-28.7 35.6-41.9 45.7-10.5 8-18.6 11.4-24 11.6-9-.1-17.7-2.3-34.7-8.8-1.2-.5-2.5-1-4.2-1.6l-4.4-1.7c-17.4-6.7-27.8-10.3-41.1-13.8-18.6-4.8-37.1-7.4-56.9-7.4-20.2 0-39.2 2.5-58.1 7.2-13.9 3.5-25.6 7.4-42.7 13.8-.7.3-8.1 3.1-10.2 3.9-3.5 1.3-6.2 2.3-8.7 3.2-10.4 3.6-17 5.1-22.9 5.2-.7 0-1.3-.1-1.8-.2-1.1-.2-2.5-.6-4.1-1.3-4.5-1.8-9.9-5.1-16-9.8-14-10.9-29.4-28-45.1-49.9-27.5-38.6-53.5-89.8-66-125.7-15.4-44.8-23-87.7-23-128.6 0-60.2 17.8-106 48.4-137.1 26.3-26.6 61.7-41.5 97.8-42.3 5.9.1 14.5 1.5 25.4 4.5 8.6 2.3 18 5.4 30.7 9.9 3.8 1.4 16.9 6.1 18.5 6.7 7.7 2.8 13.5 4.8 19.2 6.6 18.2 5.8 32.3 9 47.6 9 15.5 0 28.8-3.3 47.7-9.8 7.1-2.4 32.9-12 37.5-13.6 25.6-9.1 44.5-14 60.8-15.2 4.8-.4 9.1-.4 13.2-.1 22.7 1.8 42.1 6.3 58.6 13.8-37.6 43.4-57 96.5-56.9 158.4-.3 14.7.9 31.7 5.1 51.8 6.4 30.5 18.6 60.7 37.9 89 14.7 21.5 32.9 40.9 54.7 57.8-11.5 23.7-25.6 48.2-40.4 68.8zm-94.5-572c50.7-60.2 46.1-115 44.6-134.7-44.8 2.6-96.6 30.5-126.1 64.8-32.5 36.8-51.6 82.3-47.5 133.6 48.4 3.7 92.6-21.2 129-63.7z")),t.BackwardOutline=l("backward",i,s(r,"M485.6 249.9L198.2 498c-8.3 7.1-8.3 20.8 0 27.9l287.4 248.2c10.7 9.2 26.4.9 26.4-14V263.8c0-14.8-15.7-23.2-26.4-13.9zm320 0L518.2 498a18.6 18.6 0 0 0-6.2 14c0 5.2 2.1 10.4 6.2 14l287.4 248.2c10.7 9.2 26.4.9 26.4-14V263.8c0-14.8-15.7-23.2-26.4-13.9z")),t.BankOutline=l("bank",i,s(a,"M894 462c30.9 0 43.8-39.7 18.7-58L530.8 126.2a31.81 31.81 0 0 0-37.6 0L111.3 404c-25.1 18.2-12.2 58 18.8 58H192v374h-72c-4.4 0-8 3.6-8 8v52c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-52c0-4.4-3.6-8-8-8h-72V462h62zM512 196.7l271.1 197.2H240.9L512 196.7zM264 462h117v374H264V462zm189 0h117v374H453V462zm307 374H642V462h118v374z")),t.BellOutline=l("bell",i,s(a,"M816 768h-24V428c0-141.1-104.3-257.7-240-277.1V112c0-22.1-17.9-40-40-40s-40 17.9-40 40v38.9c-135.7 19.4-240 136-240 277.1v340h-24c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h216c0 61.8 50.2 112 112 112s112-50.2 112-112h216c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM512 888c-26.5 0-48-21.5-48-48h96c0 26.5-21.5 48-48 48zM304 768V428c0-55.6 21.6-107.8 60.9-147.1S456.4 220 512 220c55.6 0 107.8 21.6 147.1 60.9S720 372.4 720 428v340H304z")),t.BehanceSquareOutline=l("behance-square",i,s(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM598.5 350.9h138.4v33.7H598.5v-33.7zM512 628.8a89.52 89.52 0 0 1-27 31c-11.8 8.2-24.9 14.2-38.8 17.7a167.4 167.4 0 0 1-44.6 5.7H236V342.1h161c16.3 0 31.1 1.5 44.6 4.3 13.4 2.8 24.8 7.6 34.4 14.1 9.5 6.5 17 15.2 22.3 26 5.2 10.7 7.9 24.1 7.9 40 0 17.2-3.9 31.4-11.7 42.9-7.9 11.5-19.3 20.8-34.8 28.1 21.1 6 36.6 16.7 46.8 31.7 10.4 15.2 15.5 33.4 15.5 54.8 0 17.4-3.3 32.3-10 44.8zM790.8 576H612.4c0 19.4 6.7 38 16.8 48 10.2 9.9 24.8 14.9 43.9 14.9 13.8 0 25.5-3.5 35.5-10.4 9.9-6.9 15.9-14.2 18.1-21.8h59.8c-9.6 29.7-24.2 50.9-44 63.7-19.6 12.8-43.6 19.2-71.5 19.2-19.5 0-37-3.2-52.7-9.3-15.1-5.9-28.7-14.9-39.9-26.5a121.2 121.2 0 0 1-25.1-41.2c-6.1-16.9-9.1-34.7-8.9-52.6 0-18.5 3.1-35.7 9.1-51.7 11.5-31.1 35.4-56 65.9-68.9 16.3-6.8 33.8-10.2 51.5-10 21 0 39.2 4 55 12.2a111.6 111.6 0 0 1 38.6 32.8c10.1 13.7 17.2 29.3 21.7 46.9 4.3 17.3 5.8 35.5 4.6 54.7zm-122-95.6c-10.8 0-19.9 1.9-26.9 5.6-7 3.7-12.8 8.3-17.2 13.6a48.4 48.4 0 0 0-9.1 17.4c-1.6 5.3-2.7 10.7-3.1 16.2H723c-1.6-17.3-7.6-30.1-15.6-39.1-8.4-8.9-21.9-13.7-38.6-13.7zm-248.5-10.1c8.7-6.3 12.9-16.7 12.9-31 .3-6.8-1.1-13.5-4.1-19.6-2.7-4.9-6.7-9-11.6-11.9a44.8 44.8 0 0 0-16.6-6c-6.4-1.2-12.9-1.8-19.3-1.7h-70.3v79.7h76.1c13.1.1 24.2-3.1 32.9-9.5zm11.8 72c-9.8-7.5-22.9-11.2-39.2-11.2h-81.8v94h80.2c7.5 0 14.4-.7 21.1-2.1s12.7-3.8 17.8-7.2c5.1-3.3 9.2-7.8 12.3-13.6 3-5.8 4.5-13.2 4.5-22.1 0-17.7-5-30.2-14.9-37.8z")),t.BookOutline=l("book",i,s(a,"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-260 72h96v209.9L621.5 312 572 347.4V136zm220 752H232V136h280v296.9c0 3.3 1 6.6 3 9.3a15.9 15.9 0 0 0 22.3 3.7l83.8-59.9 81.4 59.4c2.7 2 6 3.1 9.4 3.1 8.8 0 16-7.2 16-16V136h64v752z")),t.BoxPlotOutline=l("box-plot",i,s(a,"M952 224h-52c-4.4 0-8 3.6-8 8v248h-92V304c0-4.4-3.6-8-8-8H232c-4.4 0-8 3.6-8 8v176h-92V232c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V548h92v172c0 4.4 3.6 8 8 8h560c4.4 0 8-3.6 8-8V548h92v244c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V232c0-4.4-3.6-8-8-8zM296 368h88v288h-88V368zm432 288H448V368h280v288z")),t.BulbOutline=l("bulb",i,s(a,"M632 888H392c-4.4 0-8 3.6-8 8v32c0 17.7 14.3 32 32 32h192c17.7 0 32-14.3 32-32v-32c0-4.4-3.6-8-8-8zM512 64c-181.1 0-328 146.9-328 328 0 121.4 66 227.4 164 284.1V792c0 17.7 14.3 32 32 32h264c17.7 0 32-14.3 32-32V676.1c98-56.7 164-162.7 164-284.1 0-181.1-146.9-328-328-328zm127.9 549.8L604 634.6V752H420V634.6l-35.9-20.8C305.4 568.3 256 484.5 256 392c0-141.4 114.6-256 256-256s256 114.6 256 256c0 92.5-49.4 176.3-128.1 221.8z")),t.BugOutline=l("bug",i,s(a,"M304 280h56c4.4 0 8-3.6 8-8 0-28.3 5.9-53.2 17.1-73.5 10.6-19.4 26-34.8 45.4-45.4C450.9 142 475.7 136 504 136h16c28.3 0 53.2 5.9 73.5 17.1 19.4 10.6 34.8 26 45.4 45.4C650 218.9 656 243.7 656 272c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-40-8.8-76.7-25.9-108.1a184.31 184.31 0 0 0-74-74C596.7 72.8 560 64 520 64h-16c-40 0-76.7 8.8-108.1 25.9a184.31 184.31 0 0 0-74 74C304.8 195.3 296 232 296 272c0 4.4 3.6 8 8 8z","M940 512H792V412c76.8 0 139-62.2 139-139 0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8a63 63 0 0 1-63 63H232a63 63 0 0 1-63-63c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 76.8 62.2 139 139 139v100H84c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h148v96c0 6.5.2 13 .7 19.3C164.1 728.6 116 796.7 116 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-44.2 23.9-82.9 59.6-103.7a273 273 0 0 0 22.7 49c24.3 41.5 59 76.2 100.5 100.5S460.5 960 512 960s99.8-13.9 141.3-38.2a281.38 281.38 0 0 0 123.2-149.5A120 120 0 0 1 836 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-79.3-48.1-147.4-116.7-176.7.4-6.4.7-12.8.7-19.3v-96h148c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM716 680c0 36.8-9.7 72-27.8 102.9-17.7 30.3-43 55.6-73.3 73.3C584 874.3 548.8 884 512 884s-72-9.7-102.9-27.8c-30.3-17.7-55.6-43-73.3-73.3A202.75 202.75 0 0 1 308 680V412h408v268z")),t.CalculatorOutline=l("calculator",i,s(a,"M251.2 387H320v68.8c0 1.8 1.8 3.2 4 3.2h48c2.2 0 4-1.4 4-3.3V387h68.8c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H376v-68.8c0-1.8-1.8-3.2-4-3.2h-48c-2.2 0-4 1.4-4 3.2V331h-68.8c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4zm328 0h193.6c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H579.2c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4zm0 265h193.6c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H579.2c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4zm0 104h193.6c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H579.2c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4zm-195.7-81l61.2-74.9c4.3-5.2.7-13.1-5.9-13.1H388c-2.3 0-4.5 1-5.9 2.9l-34 41.6-34-41.6a7.85 7.85 0 0 0-5.9-2.9h-50.9c-6.6 0-10.2 7.9-5.9 13.1l61.2 74.9-62.7 76.8c-4.4 5.2-.8 13.1 5.8 13.1h50.8c2.3 0 4.5-1 5.9-2.9l35.5-43.5 35.5 43.5c1.5 1.8 3.7 2.9 5.9 2.9h50.8c6.6 0 10.2-7.9 5.9-13.1L383.5 675zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-36 732H180V180h664v664z")),t.BuildOutline=l("build",i,s(a,"M916 210H376c-17.7 0-32 14.3-32 32v236H108c-17.7 0-32 14.3-32 32v272c0 17.7 14.3 32 32 32h540c17.7 0 32-14.3 32-32V546h236c17.7 0 32-14.3 32-32V242c0-17.7-14.3-32-32-32zm-504 68h200v200H412V278zm-68 468H144V546h200v200zm268 0H412V546h200v200zm268-268H680V278h200v200z")),t.CalendarOutline=l("calendar",i,s(a,"M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V460h656v380zM184 392V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v136H184z")),t.CameraOutline=l("camera",i,s(a,"M864 248H728l-32.4-90.8a32.07 32.07 0 0 0-30.2-21.2H358.6c-13.5 0-25.6 8.5-30.1 21.2L296 248H160c-44.2 0-80 35.8-80 80v456c0 44.2 35.8 80 80 80h704c44.2 0 80-35.8 80-80V328c0-44.2-35.8-80-80-80zm8 536c0 4.4-3.6 8-8 8H160c-4.4 0-8-3.6-8-8V328c0-4.4 3.6-8 8-8h186.7l17.1-47.8 22.9-64.2h250.5l22.9 64.2 17.1 47.8H864c4.4 0 8 3.6 8 8v456zM512 384c-88.4 0-160 71.6-160 160s71.6 160 160 160 160-71.6 160-160-71.6-160-160-160zm0 256c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96z")),t.CarOutline=l("car",i,s(a,"M380 704h264c4.4 0 8-3.6 8-8v-84c0-4.4-3.6-8-8-8h-40c-4.4 0-8 3.6-8 8v36H428v-36c0-4.4-3.6-8-8-8h-40c-4.4 0-8 3.6-8 8v84c0 4.4 3.6 8 8 8zm340-123a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm239-167.6L935.3 372a8 8 0 0 0-10.9-2.9l-50.7 29.6-78.3-216.2a63.9 63.9 0 0 0-60.9-44.4H301.2c-34.7 0-65.5 22.4-76.2 55.5l-74.6 205.2-50.8-29.6a8 8 0 0 0-10.9 2.9L65 413.4c-2.2 3.8-.9 8.6 2.9 10.8l60.4 35.2-14.5 40c-1.2 3.2-1.8 6.6-1.8 10v348.2c0 15.7 11.8 28.4 26.3 28.4h67.6c12.3 0 23-9.3 25.6-22.3l7.7-37.7h545.6l7.7 37.7c2.7 13 13.3 22.3 25.6 22.3h67.6c14.5 0 26.3-12.7 26.3-28.4V509.4c0-3.4-.6-6.8-1.8-10l-14.5-40 60.3-35.2a8 8 0 0 0 3-10.8zM840 517v237H184V517l15.6-43h624.8l15.6 43zM292.7 218.1l.5-1.3.4-1.3c1.1-3.3 4.1-5.5 7.6-5.5h427.6l75.4 208H220l72.7-199.9zM224 581a40 40 0 1 0 80 0 40 40 0 1 0-80 0z")),t.CaretDownOutline=l("caret-down",i,s(r,"M840.4 300H183.6c-19.7 0-30.7 20.8-18.5 35l328.4 380.8c9.4 10.9 27.5 10.9 37 0L858.9 335c12.2-14.2 1.2-35-18.5-35z")),t.CaretLeftOutline=l("caret-left",i,s(r,"M689 165.1L308.2 493.5c-10.9 9.4-10.9 27.5 0 37L689 858.9c14.2 12.2 35 1.2 35-18.5V183.6c0-19.7-20.8-30.7-35-18.5z")),t.CaretRightOutline=l("caret-right",i,s(r,"M715.8 493.5L335 165.1c-14.2-12.2-35-1.2-35 18.5v656.8c0 19.7 20.8 30.7 35 18.5l380.8-328.4c10.9-9.4 10.9-27.6 0-37z")),t.CarryOutOutline=l("carry-out",i,s(a,"M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v584zM688 420h-55.2c-5.1 0-10 2.5-13 6.6L468.9 634.4l-64.7-89c-3-4.1-7.8-6.6-13-6.6H336c-6.5 0-10.3 7.4-6.5 12.7l126.4 174a16.1 16.1 0 0 0 26 0l212.6-292.7c3.8-5.4 0-12.8-6.5-12.8z")),t.CheckCircleOutline=l("check-circle",i,s(a,"M699 353h-46.9c-10.2 0-19.9 4.9-25.9 13.3L469 584.3l-71.2-98.8c-6-8.3-15.6-13.3-25.9-13.3H325c-6.5 0-10.3 7.4-6.5 12.7l124.6 172.8a31.8 31.8 0 0 0 51.7 0l210.6-292c3.9-5.3.1-12.7-6.4-12.7z","M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z")),t.CaretUpOutline=l("caret-up",i,s(r,"M858.9 689L530.5 308.2c-9.4-10.9-27.5-10.9-37 0L165.1 689c-12.2 14.2-1.2 35 18.5 35h656.8c19.7 0 30.7-20.8 18.5-35z")),t.CheckSquareOutline=l("check-square",i,s(a,"M433.1 657.7a31.8 31.8 0 0 0 51.7 0l210.6-292c3.8-5.3 0-12.7-6.5-12.7H642c-10.2 0-19.9 4.9-25.9 13.3L459 584.3l-71.2-98.8c-6-8.3-15.6-13.3-25.9-13.3H315c-6.5 0-10.3 7.4-6.5 12.7l124.6 172.8z","M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z")),t.ChromeOutline=l("chrome",i,s(a,"M928 512.3v-.3c0-229.8-186.2-416-416-416S96 282.2 96 512v.4c0 229.8 186.2 416 416 416s416-186.2 416-416v-.3.2zm-6.7-74.6l.6 3.3-.6-3.3zM676.7 638.2c53.5-82.2 52.5-189.4-11.1-263.7l162.4-8.4c20.5 44.4 32 93.8 32 145.9 0 185.2-144.6 336.6-327.1 347.4l143.8-221.2zM512 652.3c-77.5 0-140.2-62.7-140.2-140.2 0-77.7 62.7-140.2 140.2-140.2S652.2 434.5 652.2 512 589.5 652.3 512 652.3zm369.2-331.7l-3-5.7 3 5.7zM512 164c121.3 0 228.2 62.1 290.4 156.2l-263.6-13.9c-97.5-5.7-190.2 49.2-222.3 141.1L227.8 311c63.1-88.9 166.9-147 284.2-147zM102.5 585.8c26 145 127.1 264 261.6 315.1C229.6 850 128.5 731 102.5 585.8zM164 512c0-55.9 13.2-108.7 36.6-155.5l119.7 235.4c44.1 86.7 137.4 139.7 234 121.6l-74 145.1C302.9 842.5 164 693.5 164 512zm324.7 415.4c4 .2 8 .4 12 .5-4-.2-8-.3-12-.5z")),t.ClockCircleOutline=l("clock-circle",i,s(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z","M686.7 638.6L544.1 535.5V288c0-4.4-3.6-8-8-8H488c-4.4 0-8 3.6-8 8v275.4c0 2.6 1.2 5 3.3 6.5l165.4 120.6c3.6 2.6 8.6 1.8 11.2-1.7l28.6-39c2.6-3.7 1.8-8.7-1.8-11.2z")),t.CloseCircleOutline=l("close-circle",i,s(a,"M685.4 354.8c0-4.4-3.6-8-8-8l-66 .3L512 465.6l-99.3-118.4-66.1-.3c-4.4 0-8 3.5-8 8 0 1.9.7 3.7 1.9 5.2l130.1 155L340.5 670a8.32 8.32 0 0 0-1.9 5.2c0 4.4 3.6 8 8 8l66.1-.3L512 564.4l99.3 118.4 66 .3c4.4 0 8-3.5 8-8 0-1.9-.7-3.7-1.9-5.2L553.5 515l130.1-155c1.2-1.4 1.8-3.3 1.8-5.2z","M512 65C264.6 65 64 265.6 64 513s200.6 448 448 448 448-200.6 448-448S759.4 65 512 65zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z")),t.CloudOutline=l("cloud",i,s(a,"M811.4 418.7C765.6 297.9 648.9 212 512.2 212S258.8 297.8 213 418.6C127.3 441.1 64 519.1 64 612c0 110.5 89.5 200 199.9 200h496.2C870.5 812 960 722.5 960 612c0-92.7-63.1-170.7-148.6-193.3zm36.3 281a123.07 123.07 0 0 1-87.6 36.3H263.9c-33.1 0-64.2-12.9-87.6-36.3A123.3 123.3 0 0 1 140 612c0-28 9.1-54.3 26.2-76.3a125.7 125.7 0 0 1 66.1-43.7l37.9-9.9 13.9-36.6c8.6-22.8 20.6-44.1 35.7-63.4a245.6 245.6 0 0 1 52.4-49.9c41.1-28.9 89.5-44.2 140-44.2s98.9 15.3 140 44.2c19.9 14 37.5 30.8 52.4 49.9 15.1 19.3 27.1 40.7 35.7 63.4l13.8 36.5 37.8 10c54.3 14.5 92.1 63.8 92.1 120 0 33.1-12.9 64.3-36.3 87.7z")),t.CloseSquareOutline=l("close-square",i,s(a,"M354 671h58.9c4.7 0 9.2-2.1 12.3-5.7L512 561.8l86.8 103.5c3 3.6 7.5 5.7 12.3 5.7H670c6.8 0 10.5-7.9 6.1-13.1L553.8 512l122.4-145.9c4.4-5.2.7-13.1-6.1-13.1h-58.9c-4.7 0-9.2 2.1-12.3 5.7L512 462.2l-86.8-103.5c-3-3.6-7.5-5.7-12.3-5.7H354c-6.8 0-10.5 7.9-6.1 13.1L470.2 512 347.9 657.9A7.95 7.95 0 0 0 354 671z","M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z")),t.CodeOutline=l("code",i,s(a,"M516 673c0 4.4 3.4 8 7.5 8h185c4.1 0 7.5-3.6 7.5-8v-48c0-4.4-3.4-8-7.5-8h-185c-4.1 0-7.5 3.6-7.5 8v48zm-194.9 6.1l192-161c3.8-3.2 3.8-9.1 0-12.3l-192-160.9A7.95 7.95 0 0 0 308 351v62.7c0 2.4 1 4.6 2.9 6.1L420.7 512l-109.8 92.2a8.1 8.1 0 0 0-2.9 6.1V673c0 6.8 7.9 10.5 13.1 6.1zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z")),t.CodepenCircleOutline=l("codepen-circle",i,s(a,"M488.1 414.7V303.4L300.9 428l83.6 55.8zm254.1 137.7v-79.8l-59.8 39.9zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm278 533c0 1.1-.1 2.1-.2 3.1 0 .4-.1.7-.2 1a14.16 14.16 0 0 1-.8 3.2c-.2.6-.4 1.2-.6 1.7-.2.4-.4.8-.5 1.2-.3.5-.5 1.1-.8 1.6-.2.4-.4.7-.7 1.1-.3.5-.7 1-1 1.5-.3.4-.5.7-.8 1-.4.4-.8.9-1.2 1.3-.3.3-.6.6-1 .9-.4.4-.9.8-1.4 1.1-.4.3-.7.6-1.1.8-.1.1-.3.2-.4.3L525.2 786c-4 2.7-8.6 4-13.2 4-4.7 0-9.3-1.4-13.3-4L244.6 616.9c-.1-.1-.3-.2-.4-.3l-1.1-.8c-.5-.4-.9-.7-1.3-1.1-.3-.3-.6-.6-1-.9-.4-.4-.8-.8-1.2-1.3a7 7 0 0 1-.8-1c-.4-.5-.7-1-1-1.5-.2-.4-.5-.7-.7-1.1-.3-.5-.6-1.1-.8-1.6-.2-.4-.4-.8-.5-1.2-.2-.6-.4-1.2-.6-1.7-.1-.4-.3-.8-.4-1.2-.2-.7-.3-1.3-.4-2-.1-.3-.1-.7-.2-1-.1-1-.2-2.1-.2-3.1V427.9c0-1 .1-2.1.2-3.1.1-.3.1-.7.2-1a14.16 14.16 0 0 1 .8-3.2c.2-.6.4-1.2.6-1.7.2-.4.4-.8.5-1.2.2-.5.5-1.1.8-1.6.2-.4.4-.7.7-1.1.6-.9 1.2-1.7 1.8-2.5.4-.4.8-.9 1.2-1.3.3-.3.6-.6 1-.9.4-.4.9-.8 1.3-1.1.4-.3.7-.6 1.1-.8.1-.1.3-.2.4-.3L498.7 239c8-5.3 18.5-5.3 26.5 0l254.1 169.1c.1.1.3.2.4.3l1.1.8 1.4 1.1c.3.3.6.6 1 .9.4.4.8.8 1.2 1.3.7.8 1.3 1.6 1.8 2.5.2.4.5.7.7 1.1.3.5.6 1 .8 1.6.2.4.4.8.5 1.2.2.6.4 1.2.6 1.7.1.4.3.8.4 1.2.2.7.3 1.3.4 2 .1.3.1.7.2 1 .1 1 .2 2.1.2 3.1V597zm-254.1 13.3v111.3L723.1 597l-83.6-55.8zM281.8 472.6v79.8l59.8-39.9zM512 456.1l-84.5 56.4 84.5 56.4 84.5-56.4zM723.1 428L535.9 303.4v111.3l103.6 69.1zM384.5 541.2L300.9 597l187.2 124.6V610.3l-103.6-69.1z")),t.CompassOutline=l("compass",i,s(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm198.4-588.1a32 32 0 0 0-24.5.5L414.9 415 296.4 686c-3.6 8.2-3.6 17.5 0 25.7 3.4 7.8 9.7 13.9 17.7 17 3.8 1.5 7.7 2.2 11.7 2.2 4.4 0 8.7-.9 12.8-2.7l271-118.6 118.5-271a32.06 32.06 0 0 0-17.7-42.7zM576.8 534.4l26.2 26.2-42.4 42.4-26.2-26.2L380 644.4 447.5 490 422 464.4l42.4-42.4 25.5 25.5L644.4 380l-67.6 154.4zM464.4 422L422 464.4l25.5 25.6 86.9 86.8 26.2 26.2 42.4-42.4-26.2-26.2-86.8-86.9z")),t.ContactsOutline=l("contacts",i,s(a,"M594.3 601.5a111.8 111.8 0 0 0 29.1-75.5c0-61.9-49.9-112-111.4-112s-111.4 50.1-111.4 112c0 29.1 11 55.5 29.1 75.5a158.09 158.09 0 0 0-74.6 126.1 8 8 0 0 0 8 8.4H407c4.2 0 7.6-3.3 7.9-7.5 3.8-50.6 46-90.5 97.2-90.5s93.4 40 97.2 90.5c.3 4.2 3.7 7.5 7.9 7.5H661a8 8 0 0 0 8-8.4c-2.8-53.3-32-99.7-74.7-126.1zM512 578c-28.5 0-51.7-23.3-51.7-52s23.2-52 51.7-52 51.7 23.3 51.7 52-23.2 52-51.7 52zm416-354H768v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H548v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H328v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H96c-17.7 0-32 14.3-32 32v576c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32zm-40 568H136V296h120v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h148v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h148v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h120v496z")),t.ContainerOutline=l("container",i,s(a,"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-40 824H232V687h97.9c11.6 32.8 32 62.3 59.1 84.7 34.5 28.5 78.2 44.3 123 44.3s88.5-15.7 123-44.3c27.1-22.4 47.5-51.9 59.1-84.7H792v-63H643.6l-5.2 24.7C626.4 708.5 573.2 752 512 752s-114.4-43.5-126.5-103.3l-5.2-24.7H232V136h560v752zM320 341h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm0 160h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z")),t.ControlOutline=l("control",i,s(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656zM340 683v77c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-77c-10.1 3.3-20.8 5-32 5s-21.9-1.8-32-5zm64-198V264c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v221c10.1-3.3 20.8-5 32-5s21.9 1.8 32 5zm-64 198c10.1 3.3 20.8 5 32 5s21.9-1.8 32-5c41.8-13.5 72-52.7 72-99s-30.2-85.5-72-99c-10.1-3.3-20.8-5-32-5s-21.9 1.8-32 5c-41.8 13.5-72 52.7-72 99s30.2 85.5 72 99zm.1-115.7c.3-.6.7-1.2 1-1.8v-.1l1.2-1.8c.1-.2.2-.3.3-.5.3-.5.7-.9 1-1.4.1-.1.2-.3.3-.4.5-.6.9-1.1 1.4-1.6l.3-.3 1.2-1.2.4-.4c.5-.5 1-.9 1.6-1.4.6-.5 1.1-.9 1.7-1.3.2-.1.3-.2.5-.3.5-.3.9-.7 1.4-1 .1-.1.3-.2.4-.3.6-.4 1.2-.7 1.9-1.1.1-.1.3-.1.4-.2.5-.3 1-.5 1.6-.8l.6-.3c.7-.3 1.3-.6 2-.8.7-.3 1.4-.5 2.1-.7.2-.1.4-.1.6-.2.6-.2 1.1-.3 1.7-.4.2 0 .3-.1.5-.1.7-.2 1.5-.3 2.2-.4.2 0 .3 0 .5-.1.6-.1 1.2-.1 1.8-.2h.6c.8 0 1.5-.1 2.3-.1s1.5 0 2.3.1h.6c.6 0 1.2.1 1.8.2.2 0 .3 0 .5.1.7.1 1.5.2 2.2.4.2 0 .3.1.5.1.6.1 1.2.3 1.7.4.2.1.4.1.6.2.7.2 1.4.4 2.1.7.7.2 1.3.5 2 .8l.6.3c.5.2 1.1.5 1.6.8.1.1.3.1.4.2.6.3 1.3.7 1.9 1.1.1.1.3.2.4.3.5.3 1 .6 1.4 1 .2.1.3.2.5.3.6.4 1.2.9 1.7 1.3s1.1.9 1.6 1.4l.4.4 1.2 1.2.3.3c.5.5 1 1.1 1.4 1.6.1.1.2.3.3.4.4.4.7.9 1 1.4.1.2.2.3.3.5l1.2 1.8s0 .1.1.1a36.18 36.18 0 0 1 5.1 18.5c0 6-1.5 11.7-4.1 16.7-.3.6-.7 1.2-1 1.8 0 0 0 .1-.1.1l-1.2 1.8c-.1.2-.2.3-.3.5-.3.5-.7.9-1 1.4-.1.1-.2.3-.3.4-.5.6-.9 1.1-1.4 1.6l-.3.3-1.2 1.2-.4.4c-.5.5-1 .9-1.6 1.4-.6.5-1.1.9-1.7 1.3-.2.1-.3.2-.5.3-.5.3-.9.7-1.4 1-.1.1-.3.2-.4.3-.6.4-1.2.7-1.9 1.1-.1.1-.3.1-.4.2-.5.3-1 .5-1.6.8l-.6.3c-.7.3-1.3.6-2 .8-.7.3-1.4.5-2.1.7-.2.1-.4.1-.6.2-.6.2-1.1.3-1.7.4-.2 0-.3.1-.5.1-.7.2-1.5.3-2.2.4-.2 0-.3 0-.5.1-.6.1-1.2.1-1.8.2h-.6c-.8 0-1.5.1-2.3.1s-1.5 0-2.3-.1h-.6c-.6 0-1.2-.1-1.8-.2-.2 0-.3 0-.5-.1-.7-.1-1.5-.2-2.2-.4-.2 0-.3-.1-.5-.1-.6-.1-1.2-.3-1.7-.4-.2-.1-.4-.1-.6-.2-.7-.2-1.4-.4-2.1-.7-.7-.2-1.3-.5-2-.8l-.6-.3c-.5-.2-1.1-.5-1.6-.8-.1-.1-.3-.1-.4-.2-.6-.3-1.3-.7-1.9-1.1-.1-.1-.3-.2-.4-.3-.5-.3-1-.6-1.4-1-.2-.1-.3-.2-.5-.3-.6-.4-1.2-.9-1.7-1.3s-1.1-.9-1.6-1.4l-.4-.4-1.2-1.2-.3-.3c-.5-.5-1-1.1-1.4-1.6-.1-.1-.2-.3-.3-.4-.4-.4-.7-.9-1-1.4-.1-.2-.2-.3-.3-.5l-1.2-1.8v-.1c-.4-.6-.7-1.2-1-1.8-2.6-5-4.1-10.7-4.1-16.7s1.5-11.7 4.1-16.7zM620 539v221c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V539c-10.1 3.3-20.8 5-32 5s-21.9-1.8-32-5zm64-198v-77c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v77c10.1-3.3 20.8-5 32-5s21.9 1.8 32 5zm-64 198c10.1 3.3 20.8 5 32 5s21.9-1.8 32-5c41.8-13.5 72-52.7 72-99s-30.2-85.5-72-99c-10.1-3.3-20.8-5-32-5s-21.9 1.8-32 5c-41.8 13.5-72 52.7-72 99s30.2 85.5 72 99zm.1-115.7c.3-.6.7-1.2 1-1.8v-.1l1.2-1.8c.1-.2.2-.3.3-.5.3-.5.7-.9 1-1.4.1-.1.2-.3.3-.4.5-.6.9-1.1 1.4-1.6l.3-.3 1.2-1.2.4-.4c.5-.5 1-.9 1.6-1.4.6-.5 1.1-.9 1.7-1.3.2-.1.3-.2.5-.3.5-.3.9-.7 1.4-1 .1-.1.3-.2.4-.3.6-.4 1.2-.7 1.9-1.1.1-.1.3-.1.4-.2.5-.3 1-.5 1.6-.8l.6-.3c.7-.3 1.3-.6 2-.8.7-.3 1.4-.5 2.1-.7.2-.1.4-.1.6-.2.6-.2 1.1-.3 1.7-.4.2 0 .3-.1.5-.1.7-.2 1.5-.3 2.2-.4.2 0 .3 0 .5-.1.6-.1 1.2-.1 1.8-.2h.6c.8 0 1.5-.1 2.3-.1s1.5 0 2.3.1h.6c.6 0 1.2.1 1.8.2.2 0 .3 0 .5.1.7.1 1.5.2 2.2.4.2 0 .3.1.5.1.6.1 1.2.3 1.7.4.2.1.4.1.6.2.7.2 1.4.4 2.1.7.7.2 1.3.5 2 .8l.6.3c.5.2 1.1.5 1.6.8.1.1.3.1.4.2.6.3 1.3.7 1.9 1.1.1.1.3.2.4.3.5.3 1 .6 1.4 1 .2.1.3.2.5.3.6.4 1.2.9 1.7 1.3s1.1.9 1.6 1.4l.4.4 1.2 1.2.3.3c.5.5 1 1.1 1.4 1.6.1.1.2.3.3.4.4.4.7.9 1 1.4.1.2.2.3.3.5l1.2 1.8v.1a36.18 36.18 0 0 1 5.1 18.5c0 6-1.5 11.7-4.1 16.7-.3.6-.7 1.2-1 1.8v.1l-1.2 1.8c-.1.2-.2.3-.3.5-.3.5-.7.9-1 1.4-.1.1-.2.3-.3.4-.5.6-.9 1.1-1.4 1.6l-.3.3-1.2 1.2-.4.4c-.5.5-1 .9-1.6 1.4-.6.5-1.1.9-1.7 1.3-.2.1-.3.2-.5.3-.5.3-.9.7-1.4 1-.1.1-.3.2-.4.3-.6.4-1.2.7-1.9 1.1-.1.1-.3.1-.4.2-.5.3-1 .5-1.6.8l-.6.3c-.7.3-1.3.6-2 .8-.7.3-1.4.5-2.1.7-.2.1-.4.1-.6.2-.6.2-1.1.3-1.7.4-.2 0-.3.1-.5.1-.7.2-1.5.3-2.2.4-.2 0-.3 0-.5.1-.6.1-1.2.1-1.8.2h-.6c-.8 0-1.5.1-2.3.1s-1.5 0-2.3-.1h-.6c-.6 0-1.2-.1-1.8-.2-.2 0-.3 0-.5-.1-.7-.1-1.5-.2-2.2-.4-.2 0-.3-.1-.5-.1-.6-.1-1.2-.3-1.7-.4-.2-.1-.4-.1-.6-.2-.7-.2-1.4-.4-2.1-.7-.7-.2-1.3-.5-2-.8l-.6-.3c-.5-.2-1.1-.5-1.6-.8-.1-.1-.3-.1-.4-.2-.6-.3-1.3-.7-1.9-1.1-.1-.1-.3-.2-.4-.3-.5-.3-1-.6-1.4-1-.2-.1-.3-.2-.5-.3-.6-.4-1.2-.9-1.7-1.3s-1.1-.9-1.6-1.4l-.4-.4-1.2-1.2-.3-.3c-.5-.5-1-1.1-1.4-1.6-.1-.1-.2-.3-.3-.4-.4-.4-.7-.9-1-1.4-.1-.2-.2-.3-.3-.5l-1.2-1.8v-.1c-.4-.6-.7-1.2-1-1.8-2.6-5-4.1-10.7-4.1-16.7s1.5-11.7 4.1-16.7z")),t.CopyOutline=l("copy",i,s(a,"M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z")),t.CreditCardOutline=l("credit-card",i,s(a,"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-792 72h752v120H136V232zm752 560H136V440h752v352zm-237-64h165c4.4 0 8-3.6 8-8v-72c0-4.4-3.6-8-8-8H651c-4.4 0-8 3.6-8 8v72c0 4.4 3.6 8 8 8z")),t.CrownOutline=l("crown",i,s(a,"M899.6 276.5L705 396.4 518.4 147.5a8.06 8.06 0 0 0-12.9 0L319 396.4 124.3 276.5c-5.7-3.5-13.1 1.2-12.2 7.9L188.5 865c1.1 7.9 7.9 14 16 14h615.1c8 0 14.9-6 15.9-14l76.4-580.6c.8-6.7-6.5-11.4-12.3-7.9zm-126 534.1H250.3l-53.8-409.4 139.8 86.1L512 252.9l175.7 234.4 139.8-86.1-53.9 409.4zM512 509c-62.1 0-112.6 50.5-112.6 112.6S449.9 734.2 512 734.2s112.6-50.5 112.6-112.6S574.1 509 512 509zm0 160.9c-26.6 0-48.2-21.6-48.2-48.3 0-26.6 21.6-48.3 48.2-48.3s48.2 21.6 48.2 48.3c0 26.6-21.6 48.3-48.2 48.3z")),t.CustomerServiceOutline=l("customer-service",i,s(a,"M512 128c-212.1 0-384 171.9-384 384v360c0 13.3 10.7 24 24 24h184c35.3 0 64-28.7 64-64V624c0-35.3-28.7-64-64-64H200v-48c0-172.3 139.7-312 312-312s312 139.7 312 312v48H688c-35.3 0-64 28.7-64 64v208c0 35.3 28.7 64 64 64h184c13.3 0 24-10.7 24-24V512c0-212.1-171.9-384-384-384zM328 632v192H200V632h128zm496 192H696V632h128v192z")),t.DashboardOutline=l("dashboard",i,s(a,"M924.8 385.6a446.7 446.7 0 0 0-96-142.4 446.7 446.7 0 0 0-142.4-96C631.1 123.8 572.5 112 512 112s-119.1 11.8-174.4 35.2a446.7 446.7 0 0 0-142.4 96 446.7 446.7 0 0 0-96 142.4C75.8 440.9 64 499.5 64 560c0 132.7 58.3 257.7 159.9 343.1l1.7 1.4c5.8 4.8 13.1 7.5 20.6 7.5h531.7c7.5 0 14.8-2.7 20.6-7.5l1.7-1.4C901.7 817.7 960 692.7 960 560c0-60.5-11.9-119.1-35.2-174.4zM761.4 836H262.6A371.12 371.12 0 0 1 140 560c0-99.4 38.7-192.8 109-263 70.3-70.3 163.7-109 263-109 99.4 0 192.8 38.7 263 109 70.3 70.3 109 163.7 109 263 0 105.6-44.5 205.5-122.6 276zM623.5 421.5a8.03 8.03 0 0 0-11.3 0L527.7 506c-18.7-5-39.4-.2-54.1 14.5a55.95 55.95 0 0 0 0 79.2 55.95 55.95 0 0 0 79.2 0 55.87 55.87 0 0 0 14.5-54.1l84.5-84.5c3.1-3.1 3.1-8.2 0-11.3l-28.3-28.3zM490 320h44c4.4 0 8-3.6 8-8v-80c0-4.4-3.6-8-8-8h-44c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8zm260 218v44c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8v-44c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8zm12.7-197.2l-31.1-31.1a8.03 8.03 0 0 0-11.3 0l-56.6 56.6a8.03 8.03 0 0 0 0 11.3l31.1 31.1c3.1 3.1 8.2 3.1 11.3 0l56.6-56.6c3.1-3.1 3.1-8.2 0-11.3zm-458.6-31.1a8.03 8.03 0 0 0-11.3 0l-31.1 31.1a8.03 8.03 0 0 0 0 11.3l56.6 56.6c3.1 3.1 8.2 3.1 11.3 0l31.1-31.1c3.1-3.1 3.1-8.2 0-11.3l-56.6-56.6zM262 530h-80c-4.4 0-8 3.6-8 8v44c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8v-44c0-4.4-3.6-8-8-8z")),t.DeleteOutline=l("delete",i,s(a,"M360 184h-8c4.4 0 8-3.6 8-8v8h304v-8c0 4.4 3.6 8 8 8h-8v72h72v-80c0-35.3-28.7-64-64-64H352c-35.3 0-64 28.7-64 64v80h72v-72zm504 72H160c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h60.4l24.7 523c1.6 34.1 29.8 61 63.9 61h454c34.2 0 62.3-26.8 63.9-61l24.7-523H888c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM731.3 840H292.7l-24.2-512h487l-24.2 512z")),t.DiffOutline=l("diff",i,s(a,"M476 399.1c0-3.9-3.1-7.1-7-7.1h-42c-3.8 0-7 3.2-7 7.1V484h-84.5c-4.1 0-7.5 3.1-7.5 7v42c0 3.8 3.4 7 7.5 7H420v84.9c0 3.9 3.2 7.1 7 7.1h42c3.9 0 7-3.2 7-7.1V540h84.5c4.1 0 7.5-3.2 7.5-7v-42c0-3.9-3.4-7-7.5-7H476v-84.9zM560.5 704h-225c-4.1 0-7.5 3.2-7.5 7v42c0 3.8 3.4 7 7.5 7h225c4.1 0 7.5-3.2 7.5-7v-42c0-3.8-3.4-7-7.5-7zm-7.1-502.6c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v704c0 17.7 14.3 32 32 32h512c17.7 0 32-14.3 32-32V397.3c0-8.5-3.4-16.6-9.4-22.6L553.4 201.4zM664 888H232V264h282.2L664 413.8V888zm190.2-581.4L611.3 72.9c-6-5.7-13.9-8.9-22.2-8.9H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h277l219 210.6V824c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V329.6c0-8.7-3.5-17-9.8-23z")),t.DatabaseOutline=l("database",i,s(a,"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-600 72h560v208H232V136zm560 480H232V408h560v208zm0 272H232V680h560v208zM304 240a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm0 272a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm0 272a40 40 0 1 0 80 0 40 40 0 1 0-80 0z")),t.DislikeOutline=l("dislike",i,s(a,"M885.9 490.3c3.6-12 5.4-24.4 5.4-37 0-28.3-9.3-55.5-26.1-77.7 3.6-12 5.4-24.4 5.4-37 0-28.3-9.3-55.5-26.1-77.7 3.6-12 5.4-24.4 5.4-37 0-51.6-30.7-98.1-78.3-118.4a66.1 66.1 0 0 0-26.5-5.4H144c-17.7 0-32 14.3-32 32v364c0 17.7 14.3 32 32 32h129.3l85.8 310.8C372.9 889 418.9 924 470.9 924c29.7 0 57.4-11.8 77.9-33.4 20.5-21.5 31-49.7 29.5-79.4l-6-122.9h239.9c12.1 0 23.9-3.2 34.3-9.3 40.4-23.5 65.5-66.1 65.5-111 0-28.3-9.3-55.5-26.1-77.7zM184 456V172h81v284h-81zm627.2 160.4H496.8l9.6 198.4c.6 11.9-4.7 23.1-14.6 30.5-6.1 4.5-13.6 6.8-21.1 6.7a44.28 44.28 0 0 1-42.2-32.3L329 459.2V172h415.4a56.85 56.85 0 0 1 33.6 51.8c0 9.7-2.3 18.9-6.9 27.3l-13.9 25.4 21.9 19a56.76 56.76 0 0 1 19.6 43c0 9.7-2.3 18.9-6.9 27.3l-13.9 25.4 21.9 19a56.76 56.76 0 0 1 19.6 43c0 9.7-2.3 18.9-6.9 27.3l-14 25.5 21.9 19a56.76 56.76 0 0 1 19.6 43c0 19.1-11 37.5-28.8 48.4z")),t.DownCircleOutline=l("down-circle",i,s(a,"M690 405h-46.9c-10.2 0-19.9 4.9-25.9 13.2L512 563.6 406.8 418.2c-6-8.3-15.6-13.2-25.9-13.2H334c-6.5 0-10.3 7.4-6.5 12.7l178 246c3.2 4.4 9.7 4.4 12.9 0l178-246c3.9-5.3.1-12.7-6.4-12.7z","M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z")),t.DownSquareOutline=l("down-square",i,s(a,"M505.5 658.7c3.2 4.4 9.7 4.4 12.9 0l178-246c3.8-5.3 0-12.7-6.5-12.7H643c-10.2 0-19.9 4.9-25.9 13.2L512 558.6 406.8 413.2c-6-8.3-15.6-13.2-25.9-13.2H334c-6.5 0-10.3 7.4-6.5 12.7l178 246z","M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z")),t.DribbbleSquareOutline=l("dribbble-square",i,s(a,"M498.6 432c-40.8-72.5-84.7-133.4-91.2-142.3-68.8 32.5-120.3 95.9-136.2 172.2 11 .2 112.4.7 227.4-29.9zm66.5 21.8c5.7 11.7 11.2 23.6 16.3 35.6 1.8 4.2 3.6 8.4 5.3 12.7 81.8-10.3 163.2 6.2 171.3 7.9-.5-58.1-21.3-111.4-55.5-153.3-5.3 7.1-46.5 60-137.4 97.1zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM512 800c-158.8 0-288-129.2-288-288s129.2-288 288-288 288 129.2 288 288-129.2 288-288 288zm89.7-259.1c32.2 88.4 45.3 160.4 47.8 175.4 55.2-37.3 94.5-96.4 105.4-164.9-8.4-2.6-76.1-22.8-153.2-10.5zm-72.5-26.4c3.2-1 6.4-2 9.7-2.9-6.2-14-12.9-28-19.9-41.7-122.8 36.8-242.1 35.2-252.8 35-.1 2.5-.1 5-.1 7.5 0 63.2 23.9 120.9 63.2 164.5 5.5-9.6 73-121.4 199.9-162.4zm145.9-186.2a245.2 245.2 0 0 0-220.8-55.1c6.8 9.1 51.5 69.9 91.8 144 87.5-32.8 124.5-82.6 129-88.9zM554 552.8c-138.7 48.3-188.6 144.6-193 153.6 41.7 32.5 94.1 51.9 151 51.9 34.1 0 66.6-6.9 96.1-19.5-3.7-21.6-17.9-96.8-52.5-186.6l-1.6.6z")),t.EnvironmentOutline=l("environment",i,s(a,"M854.6 289.1a362.49 362.49 0 0 0-79.9-115.7 370.83 370.83 0 0 0-118.2-77.8C610.7 76.6 562.1 67 512 67c-50.1 0-98.7 9.6-144.5 28.5-44.3 18.3-84 44.5-118.2 77.8A363.6 363.6 0 0 0 169.4 289c-19.5 45-29.4 92.8-29.4 142 0 70.6 16.9 140.9 50.1 208.7 26.7 54.5 64 107.6 111 158.1 80.3 86.2 164.5 138.9 188.4 153a43.9 43.9 0 0 0 22.4 6.1c7.8 0 15.5-2 22.4-6.1 23.9-14.1 108.1-66.8 188.4-153 47-50.4 84.3-103.6 111-158.1C867.1 572 884 501.8 884 431.1c0-49.2-9.9-97-29.4-142zM512 880.2c-65.9-41.9-300-207.8-300-449.1 0-77.9 31.1-151.1 87.6-206.3C356.3 169.5 431.7 139 512 139s155.7 30.5 212.4 85.9C780.9 280 812 353.2 812 431.1c0 241.3-234.1 407.2-300 449.1zm0-617.2c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 0 1 512 551c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 0 1 400 439c0-29.9 11.7-58 32.8-79.2C454 338.6 482.1 327 512 327c29.9 0 58 11.6 79.2 32.8C612.4 381 624 409.1 624 439c0 29.9-11.6 58-32.8 79.2z")),t.EditOutline=l("edit",i,s(a,"M257.7 752c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 0 0 0-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 0 0 9.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89zM880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32z")),t.ExclamationCircleOutline=l("exclamation-circle",i,s(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z","M464 688a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm24-112h48c4.4 0 8-3.6 8-8V296c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8z")),t.ExperimentOutline=l("experiment",i,s(a,"M512 472a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm367 352.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 0 1-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.7-107.8c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1L813.5 844h-603z")),t.EyeInvisibleOutline=l("eye-invisible",i,s(a,"M942.2 486.2Q889.47 375.11 816.7 305l-50.88 50.88C807.31 395.53 843.45 447.4 874.7 512 791.5 684.2 673.4 766 512 766q-72.67 0-133.87-22.38L323 798.75Q408 838 512 838q288.3 0 430.2-300.3a60.29 60.29 0 0 0 0-51.5zm-63.57-320.64L836 122.88a8 8 0 0 0-11.32 0L715.31 232.2Q624.86 186 512 186q-288.3 0-430.2 300.3a60.3 60.3 0 0 0 0 51.5q56.69 119.4 136.5 191.41L112.48 835a8 8 0 0 0 0 11.31L155.17 889a8 8 0 0 0 11.31 0l712.15-712.12a8 8 0 0 0 0-11.32zM149.3 512C232.6 339.8 350.7 258 512 258c54.54 0 104.13 9.36 149.12 28.39l-70.3 70.3a176 176 0 0 0-238.13 238.13l-83.42 83.42C223.1 637.49 183.3 582.28 149.3 512zm246.7 0a112.11 112.11 0 0 1 146.2-106.69L401.31 546.2A112 112 0 0 1 396 512z","M508 624c-3.46 0-6.87-.16-10.25-.47l-52.82 52.82a176.09 176.09 0 0 0 227.42-227.42l-52.82 52.82c.31 3.38.47 6.79.47 10.25a111.94 111.94 0 0 1-112 112z")),t.EyeOutline=l("eye",i,s(a,"M942.2 486.2C847.4 286.5 704.1 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 0 0 0 51.5C176.6 737.5 319.9 838 512 838c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0-51.5zM512 766c-161.3 0-279.4-81.8-362.7-254C232.6 339.8 350.7 258 512 258c161.3 0 279.4 81.8 362.7 254C791.5 684.2 673.4 766 512 766zm-4-430c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm0 288c-61.9 0-112-50.1-112-112s50.1-112 112-112 112 50.1 112 112-50.1 112-112 112z")),t.FacebookOutline=l("facebook",i,s(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-32 736H663.9V602.2h104l15.6-120.7H663.9v-77.1c0-35 9.7-58.8 59.8-58.8h63.9v-108c-11.1-1.5-49-4.8-93.2-4.8-92.2 0-155.3 56.3-155.3 159.6v89H434.9v120.7h104.3V848H176V176h672v672z")),t.FastBackwardOutline=l("fast-backward",i,s(r,"M517.6 273.5L230.2 499.3a16.14 16.14 0 0 0 0 25.4l287.4 225.8c10.7 8.4 26.4.8 26.4-12.7V286.2c0-13.5-15.7-21.1-26.4-12.7zm320 0L550.2 499.3a16.14 16.14 0 0 0 0 25.4l287.4 225.8c10.7 8.4 26.4.8 26.4-12.7V286.2c0-13.5-15.7-21.1-26.4-12.7zm-620-25.5h-51.2c-3.5 0-6.4 2.7-6.4 6v516c0 3.3 2.9 6 6.4 6h51.2c3.5 0 6.4-2.7 6.4-6V254c0-3.3-2.9-6-6.4-6z")),t.FastForwardOutline=l("fast-forward",i,s(r,"M793.8 499.3L506.4 273.5c-10.7-8.4-26.4-.8-26.4 12.7v451.6c0 13.5 15.7 21.1 26.4 12.7l287.4-225.8a16.14 16.14 0 0 0 0-25.4zm-320 0L186.4 273.5c-10.7-8.4-26.4-.8-26.4 12.7v451.5c0 13.5 15.7 21.1 26.4 12.7l287.4-225.8c4.1-3.2 6.2-8 6.2-12.7 0-4.6-2.1-9.4-6.2-12.6zM857.6 248h-51.2c-3.5 0-6.4 2.7-6.4 6v516c0 3.3 2.9 6 6.4 6h51.2c3.5 0 6.4-2.7 6.4-6V254c0-3.3-2.9-6-6.4-6z")),t.FileAddOutline=l("file-add",i,s(a,"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0 0 42 42h216v494zM544 472c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v108H372c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h108v108c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V644h108c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H544V472z")),t.FileExcelOutline=l("file-excel",i,s(a,"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0 0 42 42h216v494zM514.1 580.1l-61.8-102.4c-2.2-3.6-6.1-5.8-10.3-5.8h-38.4c-2.3 0-4.5.6-6.4 1.9-5.6 3.5-7.3 10.9-3.7 16.6l82.3 130.4-83.4 132.8a12.04 12.04 0 0 0 10.2 18.4h34.5c4.2 0 8-2.2 10.2-5.7L510 664.8l62.3 101.4c2.2 3.6 6.1 5.7 10.2 5.7H620c2.3 0 4.5-.7 6.5-1.9 5.6-3.6 7.2-11 3.6-16.6l-84-130.4 85.3-132.5a12.04 12.04 0 0 0-10.1-18.5h-35.7c-4.2 0-8.1 2.2-10.3 5.8l-61.2 102.3z")),t.FileExclamationOutline=l("file-exclamation",i,s(a,"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0 0 42 42h216v494zM472 744a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm16-104h48c4.4 0 8-3.6 8-8V448c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v184c0 4.4 3.6 8 8 8z")),t.FileImageOutline=l("file-image",i,s(a,"M553.1 509.1l-77.8 99.2-41.1-52.4a8 8 0 0 0-12.6 0l-99.8 127.2a7.98 7.98 0 0 0 6.3 12.9H696c6.7 0 10.4-7.7 6.3-12.9l-136.5-174a8.1 8.1 0 0 0-12.7 0zM360 442a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm494.6-153.4L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0 0 42 42h216v494z")),t.FileMarkdownOutline=l("file-markdown",i,s(a,"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0 0 42 42h216v494zM429 481.2c-1.9-4.4-6.2-7.2-11-7.2h-35c-6.6 0-12 5.4-12 12v272c0 6.6 5.4 12 12 12h27.1c6.6 0 12-5.4 12-12V582.1l66.8 150.2a12 12 0 0 0 11 7.1H524c4.7 0 9-2.8 11-7.1l66.8-150.6V758c0 6.6 5.4 12 12 12H641c6.6 0 12-5.4 12-12V486c0-6.6-5.4-12-12-12h-34.7c-4.8 0-9.1 2.8-11 7.2l-83.1 191-83.2-191z")),t.FilePptOutline=l("file-ppt",i,s(a,"M424 476c-4.4 0-8 3.6-8 8v276c0 4.4 3.6 8 8 8h32.5c4.4 0 8-3.6 8-8v-95.5h63.3c59.4 0 96.2-38.9 96.2-94.1 0-54.5-36.3-94.3-96-94.3H424zm150.6 94.3c0 43.4-26.5 54.3-71.2 54.3h-38.9V516.2h56.2c33.8 0 53.9 19.7 53.9 54.1zm280-281.7L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0 0 42 42h216v494z")),t.FileTextOutline=l("file-text",i,s(a,"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0 0 42 42h216v494zM504 618H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM312 490v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8z")),t.FilePdfOutline=l("file-pdf",i,s(a,"M531.3 574.4l.3-1.4c5.8-23.9 13.1-53.7 7.4-80.7-3.8-21.3-19.5-29.6-32.9-30.2-15.8-.7-29.9 8.3-33.4 21.4-6.6 24-.7 56.8 10.1 98.6-13.6 32.4-35.3 79.5-51.2 107.5-29.6 15.3-69.3 38.9-75.2 68.7-1.2 5.5.2 12.5 3.5 18.8 3.7 7 9.6 12.4 16.5 15 3 1.1 6.6 2 10.8 2 17.6 0 46.1-14.2 84.1-79.4 5.8-1.9 11.8-3.9 17.6-5.9 27.2-9.2 55.4-18.8 80.9-23.1 28.2 15.1 60.3 24.8 82.1 24.8 21.6 0 30.1-12.8 33.3-20.5 5.6-13.5 2.9-30.5-6.2-39.6-13.2-13-45.3-16.4-95.3-10.2-24.6-15-40.7-35.4-52.4-65.8zM421.6 726.3c-13.9 20.2-24.4 30.3-30.1 34.7 6.7-12.3 19.8-25.3 30.1-34.7zm87.6-235.5c5.2 8.9 4.5 35.8.5 49.4-4.9-19.9-5.6-48.1-2.7-51.4.8.1 1.5.7 2.2 2zm-1.6 120.5c10.7 18.5 24.2 34.4 39.1 46.2-21.6 4.9-41.3 13-58.9 20.2-4.2 1.7-8.3 3.4-12.3 5 13.3-24.1 24.4-51.4 32.1-71.4zm155.6 65.5c.1.2.2.5-.4.9h-.2l-.2.3c-.8.5-9 5.3-44.3-8.6 40.6-1.9 45 7.3 45.1 7.4zm191.4-388.2L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0 0 42 42h216v494z")),t.FileZipOutline=l("file-zip",i,s(a,"M296 392h64v64h-64zm0 190v160h128V582h-64v-62h-64v62zm80 48v64h-32v-64h32zm-16-302h64v64h-64zm-64-64h64v64h-64zm64 192h64v64h-64zm0-256h64v64h-64zm494.6 88.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h64v64h64v-64h174v216a42 42 0 0 0 42 42h216v494z")),t.FileOutline=l("file",i,s(a,"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0 0 42 42h216v494z")),t.FilterOutline=l("filter",i,s(a,"M880.1 154H143.9c-24.5 0-39.8 26.7-27.5 48L349 597.4V838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V597.4L907.7 202c12.2-21.3-3.1-48-27.6-48zM603.4 798H420.6V642h182.9v156zm9.6-236.6l-9.5 16.6h-183l-9.5-16.6L212.7 226h598.6L613 561.4z")),t.FileWordOutline=l("file-word",i,s(a,"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0 0 42 42h216v494zM528.1 472h-32.2c-5.5 0-10.3 3.7-11.6 9.1L434.6 680l-46.1-198.7c-1.3-5.4-6.1-9.3-11.7-9.3h-35.4a12.02 12.02 0 0 0-11.6 15.1l74.2 276c1.4 5.2 6.2 8.9 11.6 8.9h32c5.4 0 10.2-3.6 11.6-8.9l52.8-197 52.8 197c1.4 5.2 6.2 8.9 11.6 8.9h31.8c5.4 0 10.2-3.6 11.6-8.9l74.4-276a12.04 12.04 0 0 0-11.6-15.1H647c-5.6 0-10.4 3.9-11.7 9.3l-45.8 199.1-49.8-199.3c-1.3-5.4-6.1-9.1-11.6-9.1z")),t.FireOutline=l("fire",i,s(a,"M834.1 469.2A347.49 347.49 0 0 0 751.2 354l-29.1-26.7a8.09 8.09 0 0 0-13 3.3l-13 37.3c-8.1 23.4-23 47.3-44.1 70.8-1.4 1.5-3 1.9-4.1 2-1.1.1-2.8-.1-4.3-1.5-1.4-1.2-2.1-3-2-4.8 3.7-60.2-14.3-128.1-53.7-202C555.3 171 510 123.1 453.4 89.7l-41.3-24.3c-5.4-3.2-12.3 1-12 7.3l2.2 48c1.5 32.8-2.3 61.8-11.3 85.9-11 29.5-26.8 56.9-47 81.5a295.64 295.64 0 0 1-47.5 46.1 352.6 352.6 0 0 0-100.3 121.5A347.75 347.75 0 0 0 160 610c0 47.2 9.3 92.9 27.7 136a349.4 349.4 0 0 0 75.5 110.9c32.4 32 70 57.2 111.9 74.7C418.5 949.8 464.5 959 512 959s93.5-9.2 136.9-27.3A348.6 348.6 0 0 0 760.8 857c32.4-32 57.8-69.4 75.5-110.9a344.2 344.2 0 0 0 27.7-136c0-48.8-10-96.2-29.9-140.9zM713 808.5c-53.7 53.2-125 82.4-201 82.4s-147.3-29.2-201-82.4c-53.5-53.1-83-123.5-83-198.4 0-43.5 9.8-85.2 29.1-124 18.8-37.9 46.8-71.8 80.8-97.9a349.6 349.6 0 0 0 58.6-56.8c25-30.5 44.6-64.5 58.2-101a240 240 0 0 0 12.1-46.5c24.1 22.2 44.3 49 61.2 80.4 33.4 62.6 48.8 118.3 45.8 165.7a74.01 74.01 0 0 0 24.4 59.8 73.36 73.36 0 0 0 53.4 18.8c19.7-1 37.8-9.7 51-24.4 13.3-14.9 24.8-30.1 34.4-45.6 14 17.9 25.7 37.4 35 58.4 15.9 35.8 24 73.9 24 113.1 0 74.9-29.5 145.4-83 198.4z")),t.FileUnknownOutline=l("file-unknown",i,s(a,"M854.6 288.7L639.4 73.4c-6-6-14.2-9.4-22.7-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.6-9.4-22.6zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0 0 42 42h216v494zM402 549c0 5.4 4.4 9.5 9.8 9.5h32.4c5.4 0 9.8-4.2 9.8-9.4 0-28.2 25.8-51.6 58-51.6s58 23.4 58 51.5c0 25.3-21 47.2-49.3 50.9-19.3 2.8-34.5 20.3-34.7 40.1v32c0 5.5 4.5 10 10 10h32c5.5 0 10-4.5 10-10v-12.2c0-6 4-11.5 9.7-13.3 44.6-14.4 75-54 74.3-98.9-.8-55.5-49.2-100.8-108.5-101.6-61.4-.7-111.5 45.6-111.5 103zm78 195a32 32 0 1 0 64 0 32 32 0 1 0-64 0z")),t.FlagOutline=l("flag",i,s(a,"M880 305H624V192c0-17.7-14.3-32-32-32H184v-40c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v784c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V640h248v113c0 17.7 14.3 32 32 32h416c17.7 0 32-14.3 32-32V337c0-17.7-14.3-32-32-32zM184 568V232h368v336H184zm656 145H504v-73h112c4.4 0 8-3.6 8-8V377h216v336z")),t.FolderAddOutline=l("folder-add",i,s(a,"M484 443.1V528h-84.5c-4.1 0-7.5 3.1-7.5 7v42c0 3.8 3.4 7 7.5 7H484v84.9c0 3.9 3.2 7.1 7 7.1h42c3.9 0 7-3.2 7-7.1V584h84.5c4.1 0 7.5-3.2 7.5-7v-42c0-3.9-3.4-7-7.5-7H540v-84.9c0-3.9-3.1-7.1-7-7.1h-42c-3.8 0-7 3.2-7 7.1zm396-144.7H521L403.7 186.2a8.15 8.15 0 0 0-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM840 768H184V256h188.5l119.6 114.4H840V768z")),t.FolderOutline=l("folder",i,s(a,"M880 298.4H521L403.7 186.2a8.15 8.15 0 0 0-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM840 768H184V256h188.5l119.6 114.4H840V768z")),t.FolderOpenOutline=l("folder-open",i,s(a,"M928 444H820V330.4c0-17.7-14.3-32-32-32H473L355.7 186.2a8.15 8.15 0 0 0-5.5-2.2H96c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h698c13 0 24.8-7.9 29.7-20l134-332c1.5-3.8 2.3-7.9 2.3-12 0-17.7-14.3-32-32-32zM136 256h188.5l119.6 114.4H748V444H238c-13 0-24.8 7.9-29.7 20L136 643.2V256zm635.3 512H159l103.3-256h612.4L771.3 768z")),t.ForwardOutline=l("forward",i,s(r,"M825.8 498L538.4 249.9c-10.7-9.2-26.4-.9-26.4 14v496.3c0 14.9 15.7 23.2 26.4 14L825.8 526c8.3-7.2 8.3-20.8 0-28zm-320 0L218.4 249.9c-10.7-9.2-26.4-.9-26.4 14v496.3c0 14.9 15.7 23.2 26.4 14L505.8 526c4.1-3.6 6.2-8.8 6.2-14 0-5.2-2.1-10.4-6.2-14z")),t.FrownOutline=l("frown",i,s(a,"M288 421a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm352 0a48 48 0 1 0 96 0 48 48 0 1 0-96 0zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm263 711c-34.2 34.2-74 61-118.3 79.8C611 874.2 562.3 884 512 884c-50.3 0-99-9.8-144.8-29.2A370.4 370.4 0 0 1 248.9 775c-34.2-34.2-61-74-79.8-118.3C149.8 611 140 562.3 140 512s9.8-99 29.2-144.8A370.4 370.4 0 0 1 249 248.9c34.2-34.2 74-61 118.3-79.8C413 149.8 461.7 140 512 140c50.3 0 99 9.8 144.8 29.2A370.4 370.4 0 0 1 775.1 249c34.2 34.2 61 74 79.8 118.3C874.2 413 884 461.7 884 512s-9.8 99-29.2 144.8A368.89 368.89 0 0 1 775 775zM512 533c-85.5 0-155.6 67.3-160 151.6a8 8 0 0 0 8 8.4h48.1c4.2 0 7.8-3.2 8.1-7.4C420 636.1 461.5 597 512 597s92.1 39.1 95.8 88.6c.3 4.2 3.9 7.4 8.1 7.4H664a8 8 0 0 0 8-8.4C667.6 600.3 597.5 533 512 533z")),t.FundOutline=l("fund",i,s(a,"M926 164H94c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V196c0-17.7-14.3-32-32-32zm-40 632H134V236h752v560zm-658.9-82.3c3.1 3.1 8.2 3.1 11.3 0l172.5-172.5 114.4 114.5c3.1 3.1 8.2 3.1 11.3 0l297-297.2c3.1-3.1 3.1-8.2 0-11.3l-36.8-36.8a8.03 8.03 0 0 0-11.3 0L531 565 416.6 450.5a8.03 8.03 0 0 0-11.3 0l-214.9 215a8.03 8.03 0 0 0 0 11.3l36.7 36.9z")),t.FunnelPlotOutline=l("funnel-plot",i,s(a,"M880.1 154H143.9c-24.5 0-39.8 26.7-27.5 48L349 607.4V838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V607.4L907.7 202c12.2-21.3-3.1-48-27.6-48zM603.4 798H420.6V650h182.9v148zm9.6-226.6l-8.4 14.6H419.3l-8.4-14.6L334.4 438h355.2L613 571.4zM726.3 374H297.7l-85-148h598.6l-85 148z")),t.GiftOutline=l("gift",i,s(a,"M880 310H732.4c13.6-21.4 21.6-46.8 21.6-74 0-76.1-61.9-138-138-138-41.4 0-78.7 18.4-104 47.4-25.3-29-62.6-47.4-104-47.4-76.1 0-138 61.9-138 138 0 27.2 7.9 52.6 21.6 74H144c-17.7 0-32 14.3-32 32v200c0 4.4 3.6 8 8 8h40v344c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V550h40c4.4 0 8-3.6 8-8V342c0-17.7-14.3-32-32-32zm-334-74c0-38.6 31.4-70 70-70s70 31.4 70 70-31.4 70-70 70h-70v-70zm-138-70c38.6 0 70 31.4 70 70v70h-70c-38.6 0-70-31.4-70-70s31.4-70 70-70zM180 482V378h298v104H180zm48 68h250v308H228V550zm568 308H546V550h250v308zm48-376H546V378h298v104z")),t.GithubOutline=l("github",i,s(a,"M511.6 76.3C264.3 76.2 64 276.4 64 523.5 64 718.9 189.3 885 363.8 946c23.5 5.9 19.9-10.8 19.9-22.2v-77.5c-135.7 15.9-141.2-73.9-150.3-88.9C215 726 171.5 718 184.5 703c30.9-15.9 62.4 4 98.9 57.9 26.4 39.1 77.9 32.5 104 26 5.7-23.5 17.9-44.5 34.7-60.8-140.6-25.2-199.2-111-199.2-213 0-49.5 16.3-95 48.3-131.7-20.4-60.5 1.9-112.3 4.9-120 58.1-5.2 118.5 41.6 123.2 45.3 33-8.9 70.7-13.6 112.9-13.6 42.4 0 80.2 4.9 113.5 13.9 11.3-8.6 67.3-48.8 121.3-43.9 2.9 7.7 24.7 58.3 5.5 118 32.4 36.8 48.9 82.7 48.9 132.3 0 102.2-59 188.1-200 212.9a127.5 127.5 0 0 1 38.1 91v112.5c.8 9 0 17.9 15 17.9 177.1-59.7 304.6-227 304.6-424.1 0-247.2-200.4-447.3-447.5-447.3z")),t.GitlabOutline=l("gitlab",i,s(a,"M913.9 552.2L805 181.4v-.1c-7.6-22.9-25.7-36.5-48.3-36.5-23.4 0-42.5 13.5-49.7 35.2l-71.4 213H388.8l-71.4-213c-7.2-21.7-26.3-35.2-49.7-35.2-23.1 0-42.5 14.8-48.4 36.6L110.5 552.2c-4.4 14.7 1.2 31.4 13.5 40.7l368.5 276.4c2.6 3.6 6.2 6.3 10.4 7.8l8.6 6.4 8.5-6.4c4.9-1.7 9-4.7 11.9-8.9l368.4-275.4c12.4-9.2 18-25.9 13.6-40.6zM751.7 193.4c1-1.8 2.9-1.9 3.5-1.9 1.1 0 2.5.3 3.4 3L818 394.3H684.5l67.2-200.9zm-487.4 1c.9-2.6 2.3-2.9 3.4-2.9 2.7 0 2.9.1 3.4 1.7l67.3 201.2H206.5l57.8-200zM158.8 558.7l28.2-97.3 202.4 270.2-230.6-172.9zm73.9-116.4h122.1l90.8 284.3-212.9-284.3zM512.9 776L405.7 442.3H620L512.9 776zm157.9-333.7h119.5L580 723.1l90.8-280.8zm-40.7 293.9l207.3-276.7 29.5 99.2-236.8 177.5z")),t.HeartOutline=l("heart",i,s(a,"M923 283.6a260.04 260.04 0 0 0-56.9-82.8 264.4 264.4 0 0 0-84-55.5A265.34 265.34 0 0 0 679.7 125c-49.3 0-97.4 13.5-139.2 39-10 6.1-19.5 12.8-28.5 20.1-9-7.3-18.5-14-28.5-20.1-41.8-25.5-89.9-39-139.2-39-35.5 0-69.9 6.8-102.4 20.3-31.4 13-59.7 31.7-84 55.5a258.44 258.44 0 0 0-56.9 82.8c-13.9 32.3-21 66.6-21 101.9 0 33.3 6.8 68 20.3 103.3 11.3 29.5 27.5 60.1 48.2 91 32.8 48.9 77.9 99.9 133.9 151.6 92.8 85.7 184.7 144.9 188.6 147.3l23.7 15.2c10.5 6.7 24 6.7 34.5 0l23.7-15.2c3.9-2.5 95.7-61.6 188.6-147.3 56-51.7 101.1-102.7 133.9-151.6 20.7-30.9 37-61.5 48.2-91 13.5-35.3 20.3-70 20.3-103.3.1-35.3-7-69.6-20.9-101.9zM512 814.8S156 586.7 156 385.5C156 283.6 240.3 201 344.3 201c73.1 0 136.5 40.8 167.7 100.4C543.2 241.8 606.6 201 679.7 201c104 0 188.3 82.6 188.3 184.5 0 201.2-356 429.3-356 429.3z")),t.HddOutline=l("hdd",i,s(a,"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-600 72h560v208H232V136zm560 480H232V408h560v208zm0 272H232V680h560v208zM496 208H312c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM312 544h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H312c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm328 244a40 40 0 1 0 80 0 40 40 0 1 0-80 0z")),t.HighlightOutline=l("highlight",i,s(a,"M957.6 507.4L603.2 158.2a7.9 7.9 0 0 0-11.2 0L353.3 393.4a8.03 8.03 0 0 0-.1 11.3l.1.1 40 39.4-117.2 115.3a8.03 8.03 0 0 0-.1 11.3l.1.1 39.5 38.9-189.1 187H72.1c-4.4 0-8.1 3.6-8.1 8V860c0 4.4 3.6 8 8 8h344.9c2.1 0 4.1-.8 5.6-2.3l76.1-75.6 40.4 39.8a7.9 7.9 0 0 0 11.2 0l117.1-115.6 40.1 39.5a7.9 7.9 0 0 0 11.2 0l238.7-235.2c3.4-3 3.4-8 .3-11.2zM389.8 796.2H229.6l134.4-133 80.1 78.9-54.3 54.1zm154.8-62.1L373.2 565.2l68.6-67.6 171.4 168.9-68.6 67.6zM713.1 658L450.3 399.1 597.6 254l262.8 259-147.3 145z")),t.HomeOutline=l("home",i,s(a,"M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 0 0-44.4 0L77.5 505a63.9 63.9 0 0 0-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0 0 18.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z")),t.HourglassOutline=l("hourglass",i,s(a,"M742 318V184h86c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H196c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h86v134c0 81.5 42.4 153.2 106.4 194-64 40.8-106.4 112.5-106.4 194v134h-86c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h632c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-86V706c0-81.5-42.4-153.2-106.4-194 64-40.8 106.4-112.5 106.4-194zm-72 388v134H354V706c0-42.2 16.4-81.9 46.3-111.7C430.1 564.4 469.8 548 512 548s81.9 16.4 111.7 46.3C653.6 624.1 670 663.8 670 706zm0-388c0 42.2-16.4 81.9-46.3 111.7C593.9 459.6 554.2 476 512 476s-81.9-16.4-111.7-46.3A156.63 156.63 0 0 1 354 318V184h316v134z")),t.Html5Outline=l("html5",i,s(a,"M145 96l66 746.6L511.8 928l299.6-85.4L878.7 96H145zm610.9 700.6l-244.1 69.6-245.2-69.6-56.7-641.2h603.8l-57.8 641.2zM281 249l1.7 24.3 22.7 253.5h206.5v-.1h112.9l-11.4 118.5L511 672.9v.2h-.8l-102.4-27.7-6.5-73.2h-91l11.3 144.7 188.6 52h1.7v-.4l187.7-51.7 1.7-16.3 21.2-242.2 3.2-24.3H511v.2H389.9l-8.2-94.2h352.1l1.7-19.5 4.8-47.2L742 249H511z")),t.IdcardOutline=l("idcard",i,s(a,"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 632H136V232h752v560zM610.3 476h123.4c1.3 0 2.3-3.6 2.3-8v-48c0-4.4-1-8-2.3-8H610.3c-1.3 0-2.3 3.6-2.3 8v48c0 4.4 1 8 2.3 8zm4.8 144h185.7c3.9 0 7.1-3.6 7.1-8v-48c0-4.4-3.2-8-7.1-8H615.1c-3.9 0-7.1 3.6-7.1 8v48c0 4.4 3.2 8 7.1 8zM224 673h43.9c4.2 0 7.6-3.3 7.9-7.5 3.8-50.5 46-90.5 97.2-90.5s93.4 40 97.2 90.5c.3 4.2 3.7 7.5 7.9 7.5H522a8 8 0 0 0 8-8.4c-2.8-53.3-32-99.7-74.6-126.1a111.8 111.8 0 0 0 29.1-75.5c0-61.9-49.9-112-111.4-112s-111.4 50.1-111.4 112c0 29.1 11 55.5 29.1 75.5a158.09 158.09 0 0 0-74.6 126.1c-.4 4.6 3.2 8.4 7.8 8.4zm149-262c28.5 0 51.7 23.3 51.7 52s-23.2 52-51.7 52-51.7-23.3-51.7-52 23.2-52 51.7-52z")),t.InfoCircleOutline=l("info-circle",i,s(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z","M464 336a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm72 112h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V456c0-4.4-3.6-8-8-8z")),t.InstagramOutline=l("instagram",i,s(a,"M512 306.9c-113.5 0-205.1 91.6-205.1 205.1S398.5 717.1 512 717.1 717.1 625.5 717.1 512 625.5 306.9 512 306.9zm0 338.4c-73.4 0-133.3-59.9-133.3-133.3S438.6 378.7 512 378.7 645.3 438.6 645.3 512 585.4 645.3 512 645.3zm213.5-394.6c-26.5 0-47.9 21.4-47.9 47.9s21.4 47.9 47.9 47.9 47.9-21.3 47.9-47.9a47.84 47.84 0 0 0-47.9-47.9zM911.8 512c0-55.2.5-109.9-2.6-165-3.1-64-17.7-120.8-64.5-167.6-46.9-46.9-103.6-61.4-167.6-64.5-55.2-3.1-109.9-2.6-165-2.6-55.2 0-109.9-.5-165 2.6-64 3.1-120.8 17.7-167.6 64.5C132.6 226.3 118.1 283 115 347c-3.1 55.2-2.6 109.9-2.6 165s-.5 109.9 2.6 165c3.1 64 17.7 120.8 64.5 167.6 46.9 46.9 103.6 61.4 167.6 64.5 55.2 3.1 109.9 2.6 165 2.6 55.2 0 109.9.5 165-2.6 64-3.1 120.8-17.7 167.6-64.5 46.9-46.9 61.4-103.6 64.5-167.6 3.2-55.1 2.6-109.8 2.6-165zm-88 235.8c-7.3 18.2-16.1 31.8-30.2 45.8-14.1 14.1-27.6 22.9-45.8 30.2C695.2 844.7 570.3 840 512 840c-58.3 0-183.3 4.7-235.9-16.1-18.2-7.3-31.8-16.1-45.8-30.2-14.1-14.1-22.9-27.6-30.2-45.8C179.3 695.2 184 570.3 184 512c0-58.3-4.7-183.3 16.1-235.9 7.3-18.2 16.1-31.8 30.2-45.8s27.6-22.9 45.8-30.2C328.7 179.3 453.7 184 512 184s183.3-4.7 235.9 16.1c18.2 7.3 31.8 16.1 45.8 30.2 14.1 14.1 22.9 27.6 30.2 45.8C844.7 328.7 840 453.7 840 512c0 58.3 4.7 183.2-16.2 235.8z")),t.InsuranceOutline=l("insurance",i,s(a,"M441.6 306.8L403 288.6a6.1 6.1 0 0 0-8.4 3.7c-17.5 58.5-45.2 110.1-82.2 153.6a6.05 6.05 0 0 0-1.2 5.6l13.2 43.5c1.3 4.4 7 5.7 10.2 2.4 7.7-8.1 15.4-16.9 23.1-26V656c0 4.4 3.6 8 8 8H403c4.4 0 8-3.6 8-8V393.1a429.2 429.2 0 0 0 33.6-79c1-2.9-.3-6-3-7.3zm26.8 9.2v127.2c0 4.4 3.6 8 8 8h65.9v18.6h-94.9c-4.4 0-8 3.6-8 8v35.6c0 4.4 3.6 8 8 8h55.1c-19.1 30.8-42.4 55.7-71 76a6 6 0 0 0-1.6 8.1l22.8 36.5c1.9 3.1 6.2 3.8 8.9 1.4 31.6-26.8 58.7-62.9 80.6-107.6v120c0 4.4 3.6 8 8 8h36.2c4.4 0 8-3.6 8-8V536c21.3 41.7 47.5 77.5 78.1 106.9 2.6 2.5 6.8 2.1 8.9-.7l26.3-35.3c2-2.7 1.4-6.5-1.2-8.4-30.5-22.6-54.2-47.8-72.3-76.9h59c4.4 0 8-3.6 8-8V478c0-4.4-3.6-8-8-8h-98.8v-18.6h66.7c4.4 0 8-3.6 8-8V316c0-4.4-3.6-8-8-8H476.4c-4.4 0-8 3.6-8 8zm51.5 42.8h97.9v41.6h-97.9v-41.6zm347-188.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6z")),t.InteractionOutline=l("interaction",i,s(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656zM304.8 524h50.7c3.7 0 6.8-3 6.8-6.8v-78.9c0-19.7 15.9-35.6 35.5-35.6h205.7v53.4c0 5.7 6.5 8.8 10.9 5.3l109.1-85.7c3.5-2.7 3.5-8 0-10.7l-109.1-85.7c-4.4-3.5-10.9-.3-10.9 5.3V338H397.7c-55.1 0-99.7 44.8-99.7 100.1V517c0 4 3 7 6.8 7zm-4.2 134.9l109.1 85.7c4.4 3.5 10.9.3 10.9-5.3v-53.4h205.7c55.1 0 99.7-44.8 99.7-100.1v-78.9c0-3.7-3-6.8-6.8-6.8h-50.7c-3.7 0-6.8 3-6.8 6.8v78.9c0 19.7-15.9 35.6-35.5 35.6H420.6V568c0-5.7-6.5-8.8-10.9-5.3l-109.1 85.7c-3.5 2.5-3.5 7.8 0 10.5z")),t.InterationOutline=l("interation",i,s(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656zM304.8 524h50.7c3.7 0 6.8-3 6.8-6.8v-78.9c0-19.7 15.9-35.6 35.5-35.6h205.7v53.4c0 5.7 6.5 8.8 10.9 5.3l109.1-85.7c3.5-2.7 3.5-8 0-10.7l-109.1-85.7c-4.4-3.5-10.9-.3-10.9 5.3V338H397.7c-55.1 0-99.7 44.8-99.7 100.1V517c0 4 3 7 6.8 7zm-4.2 134.9l109.1 85.7c4.4 3.5 10.9.3 10.9-5.3v-53.4h205.7c55.1 0 99.7-44.8 99.7-100.1v-78.9c0-3.7-3-6.8-6.8-6.8h-50.7c-3.7 0-6.8 3-6.8 6.8v78.9c0 19.7-15.9 35.6-35.5 35.6H420.6V568c0-5.7-6.5-8.8-10.9-5.3l-109.1 85.7c-3.5 2.5-3.5 7.8 0 10.5z")),t.LayoutOutline=l("layout",i,s(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-696 72h136v656H184V184zm656 656H384V384h456v456zM384 320V184h456v136H384z")),t.LeftCircleOutline=l("left-circle",i,s(a,"M603.3 327.5l-246 178a7.95 7.95 0 0 0 0 12.9l246 178c5.3 3.8 12.7 0 12.7-6.5V643c0-10.2-4.9-19.9-13.2-25.9L457.4 512l145.4-105.2c8.3-6 13.2-15.6 13.2-25.9V334c0-6.5-7.4-10.3-12.7-6.5z","M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z")),t.LeftSquareOutline=l("left-square",i,s(a,"M365.3 518.5l246 178c5.3 3.8 12.7 0 12.7-6.5v-46.9c0-10.2-4.9-19.9-13.2-25.9L465.4 512l145.4-105.2c8.3-6 13.2-15.6 13.2-25.9V334c0-6.5-7.4-10.3-12.7-6.5l-246 178a8.05 8.05 0 0 0 0 13z","M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z")),t.LikeOutline=l("like",i,s(a,"M885.9 533.7c16.8-22.2 26.1-49.4 26.1-77.7 0-44.9-25.1-87.4-65.5-111.1a67.67 67.67 0 0 0-34.3-9.3H572.4l6-122.9c1.4-29.7-9.1-57.9-29.5-79.4A106.62 106.62 0 0 0 471 99.9c-52 0-98 35-111.8 85.1l-85.9 311H144c-17.7 0-32 14.3-32 32v364c0 17.7 14.3 32 32 32h601.3c9.2 0 18.2-1.8 26.5-5.4 47.6-20.3 78.3-66.8 78.3-118.4 0-12.6-1.8-25-5.4-37 16.8-22.2 26.1-49.4 26.1-77.7 0-12.6-1.8-25-5.4-37 16.8-22.2 26.1-49.4 26.1-77.7-.2-12.6-2-25.1-5.6-37.1zM184 852V568h81v284h-81zm636.4-353l-21.9 19 13.9 25.4a56.2 56.2 0 0 1 6.9 27.3c0 16.5-7.2 32.2-19.6 43l-21.9 19 13.9 25.4a56.2 56.2 0 0 1 6.9 27.3c0 16.5-7.2 32.2-19.6 43l-21.9 19 13.9 25.4a56.2 56.2 0 0 1 6.9 27.3c0 22.4-13.2 42.6-33.6 51.8H329V564.8l99.5-360.5a44.1 44.1 0 0 1 42.2-32.3c7.6 0 15.1 2.2 21.1 6.7 9.9 7.4 15.2 18.6 14.6 30.5l-9.6 198.4h314.4C829 418.5 840 436.9 840 456c0 16.5-7.2 32.1-19.6 43z")),t.LinkedinOutline=l("linkedin",i,s(a,"M847.7 112H176.3c-35.5 0-64.3 28.8-64.3 64.3v671.4c0 35.5 28.8 64.3 64.3 64.3h671.4c35.5 0 64.3-28.8 64.3-64.3V176.3c0-35.5-28.8-64.3-64.3-64.3zm0 736c-447.8-.1-671.7-.2-671.7-.3.1-447.8.2-671.7.3-671.7 447.8.1 671.7.2 671.7.3-.1 447.8-.2 671.7-.3 671.7zM230.6 411.9h118.7v381.8H230.6zm59.4-52.2c37.9 0 68.8-30.8 68.8-68.8a68.8 68.8 0 1 0-137.6 0c-.1 38 30.7 68.8 68.8 68.8zm252.3 245.1c0-49.8 9.5-98 71.2-98 60.8 0 61.7 56.9 61.7 101.2v185.7h118.6V584.3c0-102.8-22.2-181.9-142.3-181.9-57.7 0-96.4 31.7-112.3 61.7h-1.6v-52.2H423.7v381.8h118.6V604.8z")),t.LockOutline=l("lock",i,s(a,"M832 464h-68V240c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zM332 240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v224H332V240zm460 600H232V536h560v304zM484 701v53c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-53a48.01 48.01 0 1 0-56 0z")),t.MedicineBoxOutline=l("medicine-box",i,s(a,"M839.2 278.1a32 32 0 0 0-30.4-22.1H736V144c0-17.7-14.3-32-32-32H320c-17.7 0-32 14.3-32 32v112h-72.8a31.9 31.9 0 0 0-30.4 22.1L112 502v378c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V502l-72.8-223.9zM360 184h304v72H360v-72zm480 656H184V513.4L244.3 328h535.4L840 513.4V840zM652 572H544V464c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v108H372c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h108v108c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V636h108c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z")),t.MehOutline=l("meh",i,s(a,"M288 421a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm352 0a48 48 0 1 0 96 0 48 48 0 1 0-96 0zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm263 711c-34.2 34.2-74 61-118.3 79.8C611 874.2 562.3 884 512 884c-50.3 0-99-9.8-144.8-29.2A370.4 370.4 0 0 1 248.9 775c-34.2-34.2-61-74-79.8-118.3C149.8 611 140 562.3 140 512s9.8-99 29.2-144.8A370.4 370.4 0 0 1 249 248.9c34.2-34.2 74-61 118.3-79.8C413 149.8 461.7 140 512 140c50.3 0 99 9.8 144.8 29.2A370.4 370.4 0 0 1 775.1 249c34.2 34.2 61 74 79.8 118.3C874.2 413 884 461.7 884 512s-9.8 99-29.2 144.8A368.89 368.89 0 0 1 775 775zM664 565H360c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h304c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z")),t.MailOutline=l("mail",i,s(a,"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 110.8V792H136V270.8l-27.6-21.5 39.3-50.5 42.8 33.3h643.1l42.8-33.3 39.3 50.5-27.7 21.5zM833.6 232L512 482 190.4 232l-42.8-33.3-39.3 50.5 27.6 21.5 341.6 265.6a55.99 55.99 0 0 0 68.7 0L888 270.8l27.6-21.5-39.3-50.5-42.7 33.2z")),t.MessageOutline=l("message",i,s(a,"M464 512a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm200 0a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm-400 0a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 0 0-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 0 0-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 0 0 112 714v152a46 46 0 0 0 46 46h152.1A449.4 449.4 0 0 0 510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 0 0 142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z")),t.MinusCircleOutline=l("minus-circle",i,s(a,"M696 480H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z","M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z")),t.MinusSquareOutline=l("minus-square",i,s(a,"M328 544h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z","M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z")),t.MobileOutline=l("mobile",i,s(a,"M744 62H280c-35.3 0-64 28.7-64 64v768c0 35.3 28.7 64 64 64h464c35.3 0 64-28.7 64-64V126c0-35.3-28.7-64-64-64zm-8 824H288V134h448v752zM472 784a40 40 0 1 0 80 0 40 40 0 1 0-80 0z")),t.MoneyCollectOutline=l("money-collect",i,s(a,"M911.5 700.7a8 8 0 0 0-10.3-4.8L840 718.2V180c0-37.6-30.4-68-68-68H252c-37.6 0-68 30.4-68 68v538.2l-61.3-22.3c-.9-.3-1.8-.5-2.7-.5-4.4 0-8 3.6-8 8V763c0 3.3 2.1 6.3 5.3 7.5L501 910.1c7.1 2.6 14.8 2.6 21.9 0l383.8-139.5c3.2-1.2 5.3-4.2 5.3-7.5v-59.6c0-1-.2-1.9-.5-2.8zM512 837.5l-256-93.1V184h512v560.4l-256 93.1zM660.6 312h-54.5c-3 0-5.8 1.7-7.1 4.4l-84.7 168.8H511l-84.7-168.8a8 8 0 0 0-7.1-4.4h-55.7c-1.3 0-2.6.3-3.8 1-3.9 2.1-5.3 7-3.2 10.8l103.9 191.6h-57c-4.4 0-8 3.6-8 8v27.1c0 4.4 3.6 8 8 8h76v39h-76c-4.4 0-8 3.6-8 8v27.1c0 4.4 3.6 8 8 8h76V704c0 4.4 3.6 8 8 8h49.9c4.4 0 8-3.6 8-8v-63.5h76.3c4.4 0 8-3.6 8-8v-27.1c0-4.4-3.6-8-8-8h-76.3v-39h76.3c4.4 0 8-3.6 8-8v-27.1c0-4.4-3.6-8-8-8H564l103.7-191.6c.6-1.2 1-2.5 1-3.8-.1-4.3-3.7-7.9-8.1-7.9z")),t.PauseCircleOutline=l("pause-circle",i,s(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm-88-532h-48c-4.4 0-8 3.6-8 8v304c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8zm224 0h-48c-4.4 0-8 3.6-8 8v304c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8z")),t.PayCircleOutline=l("pay-circle",i,s(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm159.6-585h-59.5c-3 0-5.8 1.7-7.1 4.4l-90.6 180H511l-90.6-180a8 8 0 0 0-7.1-4.4h-60.7c-1.3 0-2.6.3-3.8 1-3.9 2.1-5.3 7-3.2 10.9L457 515.7h-61.4c-4.4 0-8 3.6-8 8v29.9c0 4.4 3.6 8 8 8h81.7V603h-81.7c-4.4 0-8 3.6-8 8v29.9c0 4.4 3.6 8 8 8h81.7V717c0 4.4 3.6 8 8 8h54.3c4.4 0 8-3.6 8-8v-68.1h82c4.4 0 8-3.6 8-8V611c0-4.4-3.6-8-8-8h-82v-41.5h82c4.4 0 8-3.6 8-8v-29.9c0-4.4-3.6-8-8-8h-62l111.1-204.8c.6-1.2 1-2.5 1-3.8-.1-4.4-3.7-8-8.1-8z")),t.NotificationOutline=l("notification",i,s(a,"M880 112c-3.8 0-7.7.7-11.6 2.3L292 345.9H128c-8.8 0-16 7.4-16 16.6v299c0 9.2 7.2 16.6 16 16.6h101.7c-3.7 11.6-5.7 23.9-5.7 36.4 0 65.9 53.8 119.5 120 119.5 55.4 0 102.1-37.6 115.9-88.4l408.6 164.2c3.9 1.5 7.8 2.3 11.6 2.3 16.9 0 32-14.2 32-33.2V145.2C912 126.2 897 112 880 112zM344 762.3c-26.5 0-48-21.4-48-47.8 0-11.2 3.9-21.9 11-30.4l84.9 34.1c-2 24.6-22.7 44.1-47.9 44.1zm496 58.4L318.8 611.3l-12.9-5.2H184V417.9h121.9l12.9-5.2L840 203.3v617.4z")),t.PhoneOutline=l("phone",i,s(a,"M877.1 238.7L770.6 132.3c-13-13-30.4-20.3-48.8-20.3s-35.8 7.2-48.8 20.3L558.3 246.8c-13 13-20.3 30.5-20.3 48.9 0 18.5 7.2 35.8 20.3 48.9l89.6 89.7a405.46 405.46 0 0 1-86.4 127.3c-36.7 36.9-79.6 66-127.2 86.6l-89.6-89.7c-13-13-30.4-20.3-48.8-20.3a68.2 68.2 0 0 0-48.8 20.3L132.3 673c-13 13-20.3 30.5-20.3 48.9 0 18.5 7.2 35.8 20.3 48.9l106.4 106.4c22.2 22.2 52.8 34.9 84.2 34.9 6.5 0 12.8-.5 19.2-1.6 132.4-21.8 263.8-92.3 369.9-198.3C818 606 888.4 474.6 910.4 342.1c6.3-37.6-6.3-76.3-33.3-103.4zm-37.6 91.5c-19.5 117.9-82.9 235.5-178.4 331s-213 158.9-330.9 178.4c-14.8 2.5-30-2.5-40.8-13.2L184.9 721.9 295.7 611l119.8 120 .9.9 21.6-8a481.29 481.29 0 0 0 285.7-285.8l8-21.6-120.8-120.7 110.8-110.9 104.5 104.5c10.8 10.8 15.8 26 13.3 40.8z")),t.PictureOutline=l("picture",i,s(a,"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 632H136v-39.9l138.5-164.3 150.1 178L658.1 489 888 761.6V792zm0-129.8L664.2 396.8c-3.2-3.8-9-3.8-12.2 0L424.6 666.4l-144-170.7c-3.2-3.8-9-3.8-12.2 0L136 652.7V232h752v430.2zM304 456a88 88 0 1 0 0-176 88 88 0 0 0 0 176zm0-116c15.5 0 28 12.5 28 28s-12.5 28-28 28-28-12.5-28-28 12.5-28 28-28z")),t.PieChartOutline=l("pie-chart",i,s(a,"M864 518H506V160c0-4.4-3.6-8-8-8h-26a398.46 398.46 0 0 0-282.8 117.1 398.19 398.19 0 0 0-85.7 127.1A397.61 397.61 0 0 0 72 552a398.46 398.46 0 0 0 117.1 282.8c36.7 36.7 79.5 65.6 127.1 85.7A397.61 397.61 0 0 0 472 952a398.46 398.46 0 0 0 282.8-117.1c36.7-36.7 65.6-79.5 85.7-127.1A397.61 397.61 0 0 0 872 552v-26c0-4.4-3.6-8-8-8zM705.7 787.8A331.59 331.59 0 0 1 470.4 884c-88.1-.4-170.9-34.9-233.2-97.2C174.5 724.1 140 640.7 140 552c0-88.7 34.5-172.1 97.2-234.8 54.6-54.6 124.9-87.9 200.8-95.5V586h364.3c-7.7 76.3-41.3 147-96.6 201.8zM952 462.4l-2.6-28.2c-8.5-92.1-49.4-179-115.2-244.6A399.4 399.4 0 0 0 589 74.6L560.7 72c-4.7-.4-8.7 3.2-8.7 7.9V464c0 4.4 3.6 8 8 8l384-1c4.7 0 8.4-4 8-8.6zm-332.2-58.2V147.6a332.24 332.24 0 0 1 166.4 89.8c45.7 45.6 77 103.6 90 166.1l-256.4.7z")),t.PlaySquareOutline=l("play-square",i,s(a,"M442.3 677.6l199.4-156.7a11.3 11.3 0 0 0 0-17.7L442.3 346.4c-7.4-5.8-18.3-.6-18.3 8.8v313.5c0 9.4 10.9 14.7 18.3 8.9z","M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z")),t.PlayCircleOutline=l("play-circle",i,s(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z","M719.4 499.1l-296.1-215A15.9 15.9 0 0 0 398 297v430c0 13.1 14.8 20.5 25.3 12.9l296.1-215a15.9 15.9 0 0 0 0-25.8zm-257.6 134V390.9L628.5 512 461.8 633.1z")),t.PlusCircleOutline=l("plus-circle",i,s(a,"M696 480H544V328c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v152H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h152v152c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V544h152c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z","M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z")),t.PrinterOutline=l("printer",i,s(a,"M820 436h-40c-4.4 0-8 3.6-8 8v40c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-40c0-4.4-3.6-8-8-8zm32-104H732V120c0-4.4-3.6-8-8-8H300c-4.4 0-8 3.6-8 8v212H172c-44.2 0-80 35.8-80 80v328c0 17.7 14.3 32 32 32h168v132c0 4.4 3.6 8 8 8h424c4.4 0 8-3.6 8-8V772h168c17.7 0 32-14.3 32-32V412c0-44.2-35.8-80-80-80zM360 180h304v152H360V180zm304 664H360V568h304v276zm200-140H732V500H292v204H160V412c0-6.6 5.4-12 12-12h680c6.6 0 12 5.4 12 12v292z")),t.PlusSquareOutline=l("plus-square",i,s(a,"M328 544h152v152c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V544h152c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H544V328c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v152H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z","M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z")),t.ProfileOutline=l("profile",i,s(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656zM492 400h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H492c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm0 144h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H492c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm0 144h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H492c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zM340 368a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm0 144a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm0 144a40 40 0 1 0 80 0 40 40 0 1 0-80 0z")),t.ProjectOutline=l("project",i,s(a,"M280 752h80c4.4 0 8-3.6 8-8V280c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8v464c0 4.4 3.6 8 8 8zm192-280h80c4.4 0 8-3.6 8-8V280c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8v184c0 4.4 3.6 8 8 8zm192 72h80c4.4 0 8-3.6 8-8V280c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8v256c0 4.4 3.6 8 8 8zm216-432H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z")),t.PushpinOutline=l("pushpin",i,s(a,"M878.3 392.1L631.9 145.7c-6.5-6.5-15-9.7-23.5-9.7s-17 3.2-23.5 9.7L423.8 306.9c-12.2-1.4-24.5-2-36.8-2-73.2 0-146.4 24.1-206.5 72.3a33.23 33.23 0 0 0-2.7 49.4l181.7 181.7-215.4 215.2a15.8 15.8 0 0 0-4.6 9.8l-3.4 37.2c-.9 9.4 6.6 17.4 15.9 17.4.5 0 1 0 1.5-.1l37.2-3.4c3.7-.3 7.2-2 9.8-4.6l215.4-215.4 181.7 181.7c6.5 6.5 15 9.7 23.5 9.7 9.7 0 19.3-4.2 25.9-12.4 56.3-70.3 79.7-158.3 70.2-243.4l161.1-161.1c12.9-12.8 12.9-33.8 0-46.8zM666.2 549.3l-24.5 24.5 3.8 34.4a259.92 259.92 0 0 1-30.4 153.9L262 408.8c12.9-7.1 26.3-13.1 40.3-17.9 27.2-9.4 55.7-14.1 84.7-14.1 9.6 0 19.3.5 28.9 1.6l34.4 3.8 24.5-24.5L608.5 224 800 415.5 666.2 549.3z")),t.PropertySafetyOutline=l("property-safety",i,s(a,"M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6zM430.5 318h-46c-1.7 0-3.3.4-4.8 1.2a10.1 10.1 0 0 0-4 13.6l88 161.1h-45.2c-5.5 0-10 4.5-10 10v21.3c0 5.5 4.5 10 10 10h63.1v29.7h-63.1c-5.5 0-10 4.5-10 10v21.3c0 5.5 4.5 10 10 10h63.1V658c0 5.5 4.5 10 10 10h41.3c5.5 0 10-4.5 10-10v-51.8h63.4c5.5 0 10-4.5 10-10v-21.3c0-5.5-4.5-10-10-10h-63.4v-29.7h63.4c5.5 0 10-4.5 10-10v-21.3c0-5.5-4.5-10-10-10h-45.7l87.7-161.1a10.05 10.05 0 0 0-8.8-14.8h-45c-3.8 0-7.2 2.1-8.9 5.5l-73.2 144.3-72.9-144.3c-1.7-3.4-5.2-5.5-9-5.5z")),t.QuestionCircleOutline=l("question-circle",i,s(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z","M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0 1 30.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1 0 80 0 40 40 0 1 0-80 0z")),t.ReadOutline=l("read",i,s(a,"M928 161H699.2c-49.1 0-97.1 14.1-138.4 40.7L512 233l-48.8-31.3A255.2 255.2 0 0 0 324.8 161H96c-17.7 0-32 14.3-32 32v568c0 17.7 14.3 32 32 32h228.8c49.1 0 97.1 14.1 138.4 40.7l44.4 28.6c1.3.8 2.8 1.3 4.3 1.3s3-.4 4.3-1.3l44.4-28.6C602 807.1 650.1 793 699.2 793H928c17.7 0 32-14.3 32-32V193c0-17.7-14.3-32-32-32zM324.8 721H136V233h188.8c35.4 0 69.8 10.1 99.5 29.2l48.8 31.3 6.9 4.5v462c-47.6-25.6-100.8-39-155.2-39zm563.2 0H699.2c-54.4 0-107.6 13.4-155.2 39V298l6.9-4.5 48.8-31.3c29.7-19.1 64.1-29.2 99.5-29.2H888v488zM396.9 361H211.1c-3.9 0-7.1 3.4-7.1 7.5v45c0 4.1 3.2 7.5 7.1 7.5h185.7c3.9 0 7.1-3.4 7.1-7.5v-45c.1-4.1-3.1-7.5-7-7.5zm223.1 7.5v45c0 4.1 3.2 7.5 7.1 7.5h185.7c3.9 0 7.1-3.4 7.1-7.5v-45c0-4.1-3.2-7.5-7.1-7.5H627.1c-3.9 0-7.1 3.4-7.1 7.5zM396.9 501H211.1c-3.9 0-7.1 3.4-7.1 7.5v45c0 4.1 3.2 7.5 7.1 7.5h185.7c3.9 0 7.1-3.4 7.1-7.5v-45c.1-4.1-3.1-7.5-7-7.5zm416 0H627.1c-3.9 0-7.1 3.4-7.1 7.5v45c0 4.1 3.2 7.5 7.1 7.5h185.7c3.9 0 7.1-3.4 7.1-7.5v-45c.1-4.1-3.1-7.5-7-7.5z")),t.ReconciliationOutline=l("reconciliation",i,s(a,"M676 565c-50.8 0-92 41.2-92 92s41.2 92 92 92 92-41.2 92-92-41.2-92-92-92zm0 126c-18.8 0-34-15.2-34-34s15.2-34 34-34 34 15.2 34 34-15.2 34-34 34zm204-523H668c0-30.9-25.1-56-56-56h-80c-30.9 0-56 25.1-56 56H264c-17.7 0-32 14.3-32 32v200h-88c-17.7 0-32 14.3-32 32v448c0 17.7 14.3 32 32 32h336c17.7 0 32-14.3 32-32v-16h368c17.7 0 32-14.3 32-32V200c0-17.7-14.3-32-32-32zm-412 64h72v-56h64v56h72v48H468v-48zm-20 616H176V616h272v232zm0-296H176v-88h272v88zm392 240H512V432c0-17.7-14.3-32-32-32H304V240h100v104h336V240h100v552zM704 408v96c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-96c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8zM592 512h48c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8z")),t.RedEnvelopeOutline=l("red-envelope",i,s(a,"M440.6 462.6a8.38 8.38 0 0 0-7.5-4.6h-48.8c-1.3 0-2.6.4-3.9 1a8.4 8.4 0 0 0-3.4 11.4l87.4 161.1H419c-4.6 0-8.4 3.8-8.4 8.4V665c0 4.6 3.8 8.4 8.4 8.4h63V702h-63c-4.6 0-8.4 3.8-8.4 8.4v25.1c0 4.6 3.8 8.4 8.4 8.4h63v49.9c0 4.6 3.8 8.4 8.4 8.4h43.7c4.6 0 8.4-3.8 8.4-8.4v-49.9h63.3c4.7 0 8.4-3.8 8.2-8.5v-25c0-4.6-3.8-8.4-8.4-8.4h-63.3v-28.6h63.3c4.6 0 8.4-3.8 8.4-8.4v-25.1c0-4.6-3.8-8.4-8.4-8.4h-45.9l87.2-161a8.45 8.45 0 0 0-7.4-12.4h-47.8c-3.1 0-6 1.8-7.5 4.6l-71.9 141.9-71.7-142zM832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-40 824H232V193.1l260.3 204.1c11.6 9.1 27.9 9.1 39.5 0L792 193.1V888zm0-751.3h-31.7L512 331.3 263.7 136.7H232v-.7h560v.7z")),t.RestOutline=l("rest",i,s(a,"M508 704c79.5 0 144-64.5 144-144s-64.5-144-144-144-144 64.5-144 144 64.5 144 144 144zm0-224c44.2 0 80 35.8 80 80s-35.8 80-80 80-80-35.8-80-80 35.8-80 80-80z","M832 256h-28.1l-35.7-120.9c-4-13.7-16.5-23.1-30.7-23.1h-451c-14.3 0-26.8 9.4-30.7 23.1L220.1 256H192c-17.7 0-32 14.3-32 32v28c0 4.4 3.6 8 8 8h45.8l47.7 558.7a32 32 0 0 0 31.9 29.3h429.2a32 32 0 0 0 31.9-29.3L802.2 324H856c4.4 0 8-3.6 8-8v-28c0-17.7-14.3-32-32-32zm-518.6-76h397.2l22.4 76H291l22.4-76zm376.2 664H326.4L282 324h451.9l-44.3 520z")),t.RightCircleOutline=l("right-circle",i,s(a,"M666.7 505.5l-246-178A8 8 0 0 0 408 334v46.9c0 10.2 4.9 19.9 13.2 25.9L566.6 512 421.2 617.2c-8.3 6-13.2 15.6-13.2 25.9V690c0 6.5 7.4 10.3 12.7 6.5l246-178c4.4-3.2 4.4-9.8 0-13z","M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z")),t.RocketOutline=l("rocket",i,s(a,"M864 736c0-111.6-65.4-208-160-252.9V317.3c0-15.1-5.3-29.7-15.1-41.2L536.5 95.4C530.1 87.8 521 84 512 84s-18.1 3.8-24.5 11.4L335.1 276.1a63.97 63.97 0 0 0-15.1 41.2v165.8C225.4 528 160 624.4 160 736h156.5c-2.3 7.2-3.5 15-3.5 23.8 0 22.1 7.6 43.7 21.4 60.8a97.2 97.2 0 0 0 43.1 30.6c23.1 54 75.6 88.8 134.5 88.8 29.1 0 57.3-8.6 81.4-24.8 23.6-15.8 41.9-37.9 53-64a97 97 0 0 0 43.1-30.5 97.52 97.52 0 0 0 21.4-60.8c0-8.4-1.1-16.4-3.1-23.8H864zM762.3 621.4c9.4 14.6 17 30.3 22.5 46.6H700V558.7a211.6 211.6 0 0 1 62.3 62.7zM388 483.1V318.8l124-147 124 147V668H388V483.1zM239.2 668c5.5-16.3 13.1-32 22.5-46.6 16.3-25.2 37.5-46.5 62.3-62.7V668h-84.8zm388.9 116.2c-5.2 3-11.2 4.2-17.1 3.4l-19.5-2.4-2.8 19.4c-5.4 37.9-38.4 66.5-76.7 66.5-38.3 0-71.3-28.6-76.7-66.5l-2.8-19.5-19.5 2.5a27.7 27.7 0 0 1-17.1-3.5c-8.7-5-14.1-14.3-14.1-24.4 0-10.6 5.9-19.4 14.6-23.8h231.3c8.8 4.5 14.6 13.3 14.6 23.8-.1 10.2-5.5 19.6-14.2 24.5zM464 400a48 48 0 1 0 96 0 48 48 0 1 0-96 0z")),t.RightSquareOutline=l("right-square",i,s(a,"M412.7 696.5l246-178c4.4-3.2 4.4-9.7 0-12.9l-246-178c-5.3-3.8-12.7 0-12.7 6.5V381c0 10.2 4.9 19.9 13.2 25.9L558.6 512 413.2 617.2c-8.3 6-13.2 15.6-13.2 25.9V690c0 6.5 7.4 10.3 12.7 6.5z","M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z")),t.SafetyCertificateOutline=l("safety-certificate",i,s(a,"M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6zm-405.8-201c-3-4.1-7.8-6.6-13-6.6H336c-6.5 0-10.3 7.4-6.5 12.7l126.4 174a16.1 16.1 0 0 0 26 0l212.6-292.7c3.8-5.3 0-12.7-6.5-12.7h-55.2c-5.1 0-10 2.5-13 6.6L468.9 542.4l-64.7-89.1z")),t.ScheduleOutline=l("schedule",i,s(a,"M928 224H768v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H548v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H328v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H96c-17.7 0-32 14.3-32 32v576c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32zm-40 568H136V296h120v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h148v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h148v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h120v496zM416 496H232c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0 136H232c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm308.2-177.4L620.6 598.3l-52.8-73.1c-3-4.2-7.8-6.6-12.9-6.6H500c-6.5 0-10.3 7.4-6.5 12.7l114.1 158.2a15.9 15.9 0 0 0 25.8 0l165-228.7c3.8-5.3 0-12.7-6.5-12.7H737c-5-.1-9.8 2.4-12.8 6.5z")),t.SaveOutline=l("save",i,s(a,"M893.3 293.3L730.7 130.7c-7.5-7.5-16.7-13-26.7-16V112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V338.5c0-17-6.7-33.2-18.7-45.2zM384 184h256v104H384V184zm456 656H184V184h136v136c0 17.7 14.3 32 32 32h320c17.7 0 32-14.3 32-32V205.8l136 136V840zM512 442c-79.5 0-144 64.5-144 144s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144zm0 224c-44.2 0-80-35.8-80-80s35.8-80 80-80 80 35.8 80 80-35.8 80-80 80z")),t.SecurityScanOutline=l("security-scan",i,s(a,"M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6zM402.9 528.8l-77.5 77.5a8.03 8.03 0 0 0 0 11.3l34 34c3.1 3.1 8.2 3.1 11.3 0l77.5-77.5c55.7 35.1 130.1 28.4 178.6-20.1 56.3-56.3 56.3-147.5 0-203.8-56.3-56.3-147.5-56.3-203.8 0-48.5 48.5-55.2 123-20.1 178.6zm65.4-133.3c31.3-31.3 82-31.3 113.2 0 31.3 31.3 31.3 82 0 113.2-31.3 31.3-82 31.3-113.2 0s-31.3-81.9 0-113.2z")),t.SettingOutline=l("setting",i,s(a,"M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 0 0 9.3-35.2l-.9-2.6a443.74 443.74 0 0 0-79.7-137.9l-1.8-2.1a32.12 32.12 0 0 0-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 0 0-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 0 0-25.8 25.7l-15.8 85.4a351.86 351.86 0 0 0-99 57.4l-81.9-29.1a32 32 0 0 0-35.1 9.5l-1.8 2.1a446.02 446.02 0 0 0-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 0 0-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0 0 35.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0 0 25.8 25.7l2.7.5a449.4 449.4 0 0 0 159 0l2.7-.5a32.05 32.05 0 0 0 25.8-25.7l15.7-85a350 350 0 0 0 99.7-57.6l81.3 28.9a32 32 0 0 0 35.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 0 1-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 0 1-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 0 1 512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 0 1 400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 0 1 624 502c0 29.9-11.7 58-32.8 79.2z")),t.ShoppingOutline=l("shopping",i,s(a,"M832 312H696v-16c0-101.6-82.4-184-184-184s-184 82.4-184 184v16H192c-17.7 0-32 14.3-32 32v536c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V344c0-17.7-14.3-32-32-32zm-432-16c0-61.9 50.1-112 112-112s112 50.1 112 112v16H400v-16zm392 544H232V384h96v88c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-88h224v88c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-88h96v456z")),t.SkinOutline=l("skin",i,s(a,"M870 126H663.8c-17.4 0-32.9 11.9-37 29.3C614.3 208.1 567 246 512 246s-102.3-37.9-114.8-90.7a37.93 37.93 0 0 0-37-29.3H154a44 44 0 0 0-44 44v252a44 44 0 0 0 44 44h75v388a44 44 0 0 0 44 44h478a44 44 0 0 0 44-44V466h75a44 44 0 0 0 44-44V170a44 44 0 0 0-44-44zm-28 268H723v432H301V394H182V198h153.3c28.2 71.2 97.5 120 176.7 120s148.5-48.8 176.7-120H842v196z")),t.SkypeOutline=l("skype",i,s(a,"M883.7 578.6c4.1-22.5 6.3-45.5 6.3-68.5 0-51-10-100.5-29.7-147-19-45-46.3-85.4-81-120.1a375.79 375.79 0 0 0-120.1-80.9c-46.6-19.7-96-29.7-147-29.7-24 0-48.1 2.3-71.5 6.8A225.1 225.1 0 0 0 335.6 113c-59.7 0-115.9 23.3-158.1 65.5A222.25 222.25 0 0 0 112 336.6c0 38 9.8 75.4 28.1 108.4-3.7 21.4-5.7 43.3-5.7 65.1 0 51 10 100.5 29.7 147 19 45 46.2 85.4 80.9 120.1 34.7 34.7 75.1 61.9 120.1 80.9 46.6 19.7 96 29.7 147 29.7 22.2 0 44.4-2 66.2-5.9 33.5 18.9 71.3 29 110 29 59.7 0 115.9-23.2 158.1-65.5 42.3-42.2 65.5-98.4 65.5-158.1.1-38-9.7-75.5-28.2-108.7zm-88.1 216C766.9 823.4 729 839 688.4 839c-26.1 0-51.8-6.8-74.6-19.7l-22.5-12.7-25.5 4.5c-17.8 3.2-35.8 4.8-53.6 4.8-41.4 0-81.3-8.1-119.1-24.1-36.3-15.3-69-37.3-97.2-65.5a304.29 304.29 0 0 1-65.5-97.1c-16-37.7-24-77.6-24-119 0-17.4 1.6-35.2 4.6-52.8l4.4-25.1L203 410a151.02 151.02 0 0 1-19.1-73.4c0-40.6 15.7-78.5 44.4-107.2C257.1 200.7 295 185 335.6 185a153 153 0 0 1 71.4 17.9l22.4 11.8 24.8-4.8c18.9-3.6 38.4-5.5 58-5.5 41.4 0 81.3 8.1 119 24 36.5 15.4 69.1 37.4 97.2 65.5 28.2 28.1 50.2 60.8 65.6 97.2 16 37.7 24 77.6 24 119 0 18.4-1.7 37-5.1 55.5l-4.7 25.5 12.6 22.6c12.6 22.5 19.2 48 19.2 73.7 0 40.7-15.7 78.5-44.4 107.2zM583.4 466.2L495 446.6c-33.6-7.7-72.3-17.8-72.3-49.5s27.1-53.9 76.1-53.9c98.7 0 89.7 67.8 138.7 67.8 25.8 0 48.4-15.2 48.4-41.2 0-60.8-97.4-106.5-180-106.5-89.7 0-185.2 38.1-185.2 139.5 0 48.8 17.4 100.8 113.6 124.9l119.4 29.8c36.1 8.9 45.2 29.2 45.2 47.6 0 30.5-30.3 60.3-85.2 60.3-107.2 0-92.3-82.5-149.7-82.5-25.8 0-44.5 17.8-44.5 43.1 0 49.4 60 115.4 194.2 115.4 127.7 0 191-61.5 191-144 0-53.1-24.5-109.6-121.3-131.2z")),t.SlackSquareOutline=l("slack-square",i,s(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM529 311.4c0-27.8 22.5-50.4 50.3-50.4 27.8 0 50.3 22.6 50.3 50.4v134.4c0 27.8-22.5 50.4-50.3 50.4-27.8 0-50.3-22.6-50.3-50.4V311.4zM361.5 580.2c0 27.8-22.5 50.4-50.3 50.4a50.35 50.35 0 0 1-50.3-50.4c0-27.8 22.5-50.4 50.3-50.4h50.3v50.4zm134 134.4c0 27.8-22.5 50.4-50.3 50.4-27.8 0-50.3-22.6-50.3-50.4V580.2c0-27.8 22.5-50.4 50.3-50.4a50.35 50.35 0 0 1 50.3 50.4v134.4zm-50.2-218.4h-134c-27.8 0-50.3-22.6-50.3-50.4 0-27.8 22.5-50.4 50.3-50.4h134c27.8 0 50.3 22.6 50.3 50.4-.1 27.9-22.6 50.4-50.3 50.4zm0-134.4c-13.3 0-26.1-5.3-35.6-14.8S395 324.8 395 311.4c0-27.8 22.5-50.4 50.3-50.4 27.8 0 50.3 22.6 50.3 50.4v50.4h-50.3zm134 403.2c-27.8 0-50.3-22.6-50.3-50.4v-50.4h50.3c27.8 0 50.3 22.6 50.3 50.4 0 27.8-22.5 50.4-50.3 50.4zm134-134.4h-134a50.35 50.35 0 0 1-50.3-50.4c0-27.8 22.5-50.4 50.3-50.4h134c27.8 0 50.3 22.6 50.3 50.4 0 27.8-22.5 50.4-50.3 50.4zm0-134.4H663v-50.4c0-27.8 22.5-50.4 50.3-50.4s50.3 22.6 50.3 50.4c0 27.8-22.5 50.4-50.3 50.4z")),t.SlidersOutline=l("sliders",i,s(a,"M320 224h-66v-56c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v56h-66c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8h66v56c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8v-56h66c4.4 0 8-3.6 8-8V232c0-4.4-3.6-8-8-8zm-60 508h-80V292h80v440zm644-436h-66v-96c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v96h-66c-4.4 0-8 3.6-8 8v416c0 4.4 3.6 8 8 8h66v96c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8v-96h66c4.4 0 8-3.6 8-8V304c0-4.4-3.6-8-8-8zm-60 364h-80V364h80v296zM612 404h-66V232c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v172h-66c-4.4 0-8 3.6-8 8v200c0 4.4 3.6 8 8 8h66v172c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V620h66c4.4 0 8-3.6 8-8V412c0-4.4-3.6-8-8-8zm-60 145a3 3 0 0 1-3 3h-74a3 3 0 0 1-3-3v-74a3 3 0 0 1 3-3h74a3 3 0 0 1 3 3v74z")),t.SmileOutline=l("smile",i,s(a,"M288 421a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm352 0a48 48 0 1 0 96 0 48 48 0 1 0-96 0zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm263 711c-34.2 34.2-74 61-118.3 79.8C611 874.2 562.3 884 512 884c-50.3 0-99-9.8-144.8-29.2A370.4 370.4 0 0 1 248.9 775c-34.2-34.2-61-74-79.8-118.3C149.8 611 140 562.3 140 512s9.8-99 29.2-144.8A370.4 370.4 0 0 1 249 248.9c34.2-34.2 74-61 118.3-79.8C413 149.8 461.7 140 512 140c50.3 0 99 9.8 144.8 29.2A370.4 370.4 0 0 1 775.1 249c34.2 34.2 61 74 79.8 118.3C874.2 413 884 461.7 884 512s-9.8 99-29.2 144.8A368.89 368.89 0 0 1 775 775zM664 533h-48.1c-4.2 0-7.8 3.2-8.1 7.4C604 589.9 562.5 629 512 629s-92.1-39.1-95.8-88.6c-.3-4.2-3.9-7.4-8.1-7.4H360a8 8 0 0 0-8 8.4c4.4 84.3 74.5 151.6 160 151.6s155.6-67.3 160-151.6a8 8 0 0 0-8-8.4z")),t.SnippetsOutline=l("snippets",i,s(a,"M832 112H724V72c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v40H500V72c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v40H320c-17.7 0-32 14.3-32 32v120h-96c-17.7 0-32 14.3-32 32v632c0 17.7 14.3 32 32 32h512c17.7 0 32-14.3 32-32v-96h96c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM664 888H232V336h218v174c0 22.1 17.9 40 40 40h174v338zm0-402H514V336h.2L664 485.8v.2zm128 274h-56V456L544 264H360v-80h68v32c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-32h152v32c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-32h68v576z")),t.SoundOutline=l("sound",i,s(a,"M625.9 115c-5.9 0-11.9 1.6-17.4 5.3L254 352H90c-8.8 0-16 7.2-16 16v288c0 8.8 7.2 16 16 16h164l354.5 231.7c5.5 3.6 11.6 5.3 17.4 5.3 16.7 0 32.1-13.3 32.1-32.1V147.1c0-18.8-15.4-32.1-32.1-32.1zM586 803L293.4 611.7l-18-11.7H146V424h129.4l17.9-11.7L586 221v582zm348-327H806c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16h128c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16zm-41.9 261.8l-110.3-63.7a15.9 15.9 0 0 0-21.7 5.9l-19.9 34.5c-4.4 7.6-1.8 17.4 5.8 21.8L856.3 800a15.9 15.9 0 0 0 21.7-5.9l19.9-34.5c4.4-7.6 1.7-17.4-5.8-21.8zM760 344a15.9 15.9 0 0 0 21.7 5.9L892 286.2c7.6-4.4 10.2-14.2 5.8-21.8L878 230a15.9 15.9 0 0 0-21.7-5.9L746 287.8a15.99 15.99 0 0 0-5.8 21.8L760 344z")),t.StarOutline=l("star",i,s(a,"M908.1 353.1l-253.9-36.9L540.7 86.1c-3.1-6.3-8.2-11.4-14.5-14.5-15.8-7.8-35-1.3-42.9 14.5L369.8 316.2l-253.9 36.9c-7 1-13.4 4.3-18.3 9.3a32.05 32.05 0 0 0 .6 45.3l183.7 179.1-43.4 252.9a31.95 31.95 0 0 0 46.4 33.7L512 754l227.1 119.4c6.2 3.3 13.4 4.4 20.3 3.2 17.4-3 29.1-19.5 26.1-36.9l-43.4-252.9 183.7-179.1c5-4.9 8.3-11.3 9.3-18.3 2.7-17.5-9.5-33.7-27-36.3zM664.8 561.6l36.1 210.3L512 672.7 323.1 772l36.1-210.3-152.8-149L417.6 382 512 190.7 606.4 382l211.2 30.7-152.8 148.9z")),t.StepBackwardOutline=l("step-backward",i,s(r,"M347.6 528.95l383.2 301.02c14.25 11.2 35.2 1.1 35.2-16.95V210.97c0-18.05-20.95-28.14-35.2-16.94L347.6 495.05a21.53 21.53 0 0 0 0 33.9M330 864h-64a8 8 0 0 1-8-8V168a8 8 0 0 1 8-8h64a8 8 0 0 1 8 8v688a8 8 0 0 1-8 8")),t.StepForwardOutline=l("step-forward",i,s(r,"M676.4 528.95L293.2 829.97c-14.25 11.2-35.2 1.1-35.2-16.95V210.97c0-18.05 20.95-28.14 35.2-16.94l383.2 301.02a21.53 21.53 0 0 1 0 33.9M694 864h64a8 8 0 0 0 8-8V168a8 8 0 0 0-8-8h-64a8 8 0 0 0-8 8v688a8 8 0 0 0 8 8")),t.StopOutline=l("stop",i,s(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372 0-89 31.3-170.8 83.5-234.8l523.3 523.3C682.8 852.7 601 884 512 884zm288.5-137.2L277.2 223.5C341.2 171.3 423 140 512 140c205.4 0 372 166.6 372 372 0 89-31.3 170.8-83.5 234.8z")),t.SwitcherOutline=l("switcher",i,s(a,"M752 240H144c-17.7 0-32 14.3-32 32v608c0 17.7 14.3 32 32 32h608c17.7 0 32-14.3 32-32V272c0-17.7-14.3-32-32-32zm-40 600H184V312h528v528zm168-728H264c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h576v576c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V144c0-17.7-14.3-32-32-32zM300 550h296v64H300z")),t.TagOutline=l("tag",i,s(a,"M938 458.8l-29.6-312.6c-1.5-16.2-14.4-29-30.6-30.6L565.2 86h-.4c-3.2 0-5.7 1-7.6 2.9L88.9 557.2a9.96 9.96 0 0 0 0 14.1l363.8 363.8c1.9 1.9 4.4 2.9 7.1 2.9s5.2-1 7.1-2.9l468.3-468.3c2-2.1 3-5 2.8-8zM459.7 834.7L189.3 564.3 589 164.6 836 188l23.4 247-399.7 399.7zM680 256c-48.5 0-88 39.5-88 88s39.5 88 88 88 88-39.5 88-88-39.5-88-88-88zm0 120c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z")),t.TabletOutline=l("tablet",i,s(a,"M800 64H224c-35.3 0-64 28.7-64 64v768c0 35.3 28.7 64 64 64h576c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64zm-8 824H232V136h560v752zM472 784a40 40 0 1 0 80 0 40 40 0 1 0-80 0z")),t.ShopOutline=l("shop",i,s(a,"M882 272.1V144c0-17.7-14.3-32-32-32H174c-17.7 0-32 14.3-32 32v128.1c-16.7 1-30 14.9-30 31.9v131.7a177 177 0 0 0 14.4 70.4c4.3 10.2 9.6 19.8 15.6 28.9v345c0 17.6 14.3 32 32 32h676c17.7 0 32-14.3 32-32V535a175 175 0 0 0 15.6-28.9c9.5-22.3 14.4-46 14.4-70.4V304c0-17-13.3-30.9-30-31.9zM214 184h596v88H214v-88zm362 656.1H448V736h128v104.1zm234 0H640V704c0-17.7-14.3-32-32-32H416c-17.7 0-32 14.3-32 32v136.1H214V597.9c2.9 1.4 5.9 2.8 9 4 22.3 9.4 46 14.1 70.4 14.1s48-4.7 70.4-14.1c13.8-5.8 26.8-13.2 38.7-22.1.2-.1.4-.1.6 0a180.4 180.4 0 0 0 38.7 22.1c22.3 9.4 46 14.1 70.4 14.1 24.4 0 48-4.7 70.4-14.1 13.8-5.8 26.8-13.2 38.7-22.1.2-.1.4-.1.6 0a180.4 180.4 0 0 0 38.7 22.1c22.3 9.4 46 14.1 70.4 14.1 24.4 0 48-4.7 70.4-14.1 3-1.3 6-2.6 9-4v242.2zm30-404.4c0 59.8-49 108.3-109.3 108.3-40.8 0-76.4-22.1-95.2-54.9-2.9-5-8.1-8.1-13.9-8.1h-.6c-5.7 0-11 3.1-13.9 8.1A109.24 109.24 0 0 1 512 544c-40.7 0-76.2-22-95-54.7-3-5.1-8.4-8.3-14.3-8.3s-11.4 3.2-14.3 8.3a109.63 109.63 0 0 1-95.1 54.7C233 544 184 495.5 184 435.7v-91.2c0-.3.2-.5.5-.5h655c.3 0 .5.2.5.5v91.2z")),t.TagsOutline=l("tags",i,s(a,"M483.2 790.3L861.4 412c1.7-1.7 2.5-4 2.3-6.3l-25.5-301.4c-.7-7.8-6.8-13.9-14.6-14.6L522.2 64.3c-2.3-.2-4.7.6-6.3 2.3L137.7 444.8a8.03 8.03 0 0 0 0 11.3l334.2 334.2c3.1 3.2 8.2 3.2 11.3 0zm62.6-651.7l224.6 19 19 224.6L477.5 694 233.9 450.5l311.9-311.9zm60.16 186.23a48 48 0 1 0 67.88-67.89 48 48 0 1 0-67.88 67.89zM889.7 539.8l-39.6-39.5a8.03 8.03 0 0 0-11.3 0l-362 361.3-237.6-237a8.03 8.03 0 0 0-11.3 0l-39.6 39.5a8.03 8.03 0 0 0 0 11.3l243.2 242.8 39.6 39.5c3.1 3.1 8.2 3.1 11.3 0l407.3-406.6c3.1-3.1 3.1-8.2 0-11.3z")),t.TaobaoCircleOutline=l("taobao-circle",i,s(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zM315.7 291.5c27.3 0 49.5 22.1 49.5 49.4s-22.1 49.4-49.5 49.4a49.4 49.4 0 1 1 0-98.8zM366.9 578c-13.6 42.3-10.2 26.7-64.4 144.5l-78.5-49s87.7-79.8 105.6-116.2c19.2-38.4-21.1-58.9-21.1-58.9l-60.2-37.5 32.7-50.2c45.4 33.7 48.7 36.6 79.2 67.2 23.8 23.9 20.7 56.8 6.7 100.1zm427.2 55c-15.3 143.8-202.4 90.3-202.4 90.3l10.2-41.1 43.3 9.3c80 5 72.3-64.9 72.3-64.9V423c.6-77.3-72.6-85.4-204.2-38.3l30.6 8.3c-2.5 9-12.5 23.2-25.2 38.6h176v35.6h-99.1v44.5h98.7v35.7h-98.7V622c14.9-4.8 28.6-11.5 40.5-20.5l-8.7-32.5 46.5-14.4 38.8 94.9-57.3 23.9-10.2-37.8c-25.6 19.5-78.8 48-171.8 45.4-99.2 2.6-73.7-112-73.7-112l2.5-1.3H472c-.5 14.7-6.6 38.7 1.7 51.8 6.8 10.8 24.2 12.6 35.3 13.1 1.3.1 2.6.1 3.9.1v-85.3h-101v-35.7h101v-44.5H487c-22.7 24.1-43.5 44.1-43.5 44.1l-30.6-26.7c21.7-22.9 43.3-59.1 56.8-83.2-10.9 4.4-22 9.2-33.6 14.2-11.2 14.3-24.2 29-38.7 43.5.5.8-50-28.4-50-28.4 52.2-44.4 81.4-139.9 81.4-139.9l72.5 20.4s-5.9 14-18.4 35.6c290.3-82.3 307.4 50.5 307.4 50.5s19.1 91.8 3.8 235.7z")),t.ToolOutline=l("tool",i,s(a,"M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 0 1 144-53.5L537 318.9a32.05 32.05 0 0 0 0 45.3l124.5 124.5a32.05 32.05 0 0 0 45.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z")),t.ThunderboltOutline=l("thunderbolt",i,s(a,"M848 359.3H627.7L825.8 109c4.1-5.3.4-13-6.3-13H436c-2.8 0-5.5 1.5-6.9 4L170 547.5c-3.1 5.3.7 12 6.9 12h174.4l-89.4 357.6c-1.9 7.8 7.5 13.3 13.3 7.7L853.5 373c5.2-4.9 1.7-13.7-5.5-13.7zM378.2 732.5l60.3-241H281.1l189.6-327.4h224.6L487 427.4h211L378.2 732.5z")),t.TrophyOutline=l("trophy",i,s(a,"M868 160h-92v-40c0-4.4-3.6-8-8-8H256c-4.4 0-8 3.6-8 8v40h-92a44 44 0 0 0-44 44v148c0 81.7 60 149.6 138.2 162C265.7 630.2 359 721.7 476 734.5v105.2H280c-17.7 0-32 14.3-32 32V904c0 4.4 3.6 8 8 8h512c4.4 0 8-3.6 8-8v-32.3c0-17.7-14.3-32-32-32H548V734.5C665 721.7 758.3 630.2 773.8 514 852 501.6 912 433.7 912 352V204a44 44 0 0 0-44-44zM184 352V232h64v207.6a91.99 91.99 0 0 1-64-87.6zm520 128c0 49.1-19.1 95.4-53.9 130.1-34.8 34.8-81 53.9-130.1 53.9h-16c-49.1 0-95.4-19.1-130.1-53.9-34.8-34.8-53.9-81-53.9-130.1V184h384v296zm136-128c0 41-26.9 75.8-64 87.6V232h64v120z")),t.UnlockOutline=l("unlock",i,s(a,"M832 464H332V240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v68c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-68c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zm-40 376H232V536h560v304zM484 701v53c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-53a48.01 48.01 0 1 0-56 0z")),t.UpCircleOutline=l("up-circle",i,s(a,"M518.5 360.3a7.95 7.95 0 0 0-12.9 0l-178 246c-3.8 5.3 0 12.7 6.5 12.7H381c10.2 0 19.9-4.9 25.9-13.2L512 460.4l105.2 145.4c6 8.3 15.6 13.2 25.9 13.2H690c6.5 0 10.3-7.4 6.5-12.7l-178-246z","M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z")),t.UpSquareOutline=l("up-square",i,s(a,"M334 624h46.9c10.2 0 19.9-4.9 25.9-13.2L512 465.4l105.2 145.4c6 8.3 15.6 13.2 25.9 13.2H690c6.5 0 10.3-7.4 6.5-12.7l-178-246a7.95 7.95 0 0 0-12.9 0l-178 246A7.96 7.96 0 0 0 334 624z","M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z")),t.UsbOutline=l("usb",i,s(a,"M760 432V144c0-17.7-14.3-32-32-32H296c-17.7 0-32 14.3-32 32v288c-66.2 0-120 52.1-120 116v356c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V548c0-24.3 21.6-44 48.1-44h495.8c26.5 0 48.1 19.7 48.1 44v356c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V548c0-63.9-53.8-116-120-116zm-424 0V184h352v248H336zm120-184h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm160 0h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z")),t.VideoCameraOutline=l("video-camera",i,s(a,"M912 302.3L784 376V224c0-35.3-28.7-64-64-64H128c-35.3 0-64 28.7-64 64v576c0 35.3 28.7 64 64 64h592c35.3 0 64-28.7 64-64V648l128 73.7c21.3 12.3 48-3.1 48-27.6V330c0-24.6-26.7-40-48-27.7zM712 792H136V232h576v560zm176-167l-104-59.8V458.9L888 399v226zM208 360h112c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H208c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z")),t.WalletOutline=l("wallet",i,s(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 464H528V448h312v128zm0 264H184V184h656v200H496c-17.7 0-32 14.3-32 32v192c0 17.7 14.3 32 32 32h344v200zM580 512a40 40 0 1 0 80 0 40 40 0 1 0-80 0z")),t.WarningOutline=l("warning",i,s(a,"M464 720a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm16-304v184c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V416c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8zm475.7 440l-416-720c-6.2-10.7-16.9-16-27.7-16s-21.6 5.3-27.7 16l-416 720C56 877.4 71.4 904 96 904h832c24.6 0 40-26.6 27.7-48zm-783.5-27.9L512 239.9l339.8 588.2H172.2z")),t.WechatOutline=l("wechat",i,s(a,"M690.1 377.4c5.9 0 11.8.2 17.6.5-24.4-128.7-158.3-227.1-319.9-227.1C209 150.8 64 271.4 64 420.2c0 81.1 43.6 154.2 111.9 203.6a21.5 21.5 0 0 1 9.1 17.6c0 2.4-.5 4.6-1.1 6.9-5.5 20.3-14.2 52.8-14.6 54.3-.7 2.6-1.7 5.2-1.7 7.9 0 5.9 4.8 10.8 10.8 10.8 2.3 0 4.2-.9 6.2-2l70.9-40.9c5.3-3.1 11-5 17.2-5 3.2 0 6.4.5 9.5 1.4 33.1 9.5 68.8 14.8 105.7 14.8 6 0 11.9-.1 17.8-.4-7.1-21-10.9-43.1-10.9-66 0-135.8 132.2-245.8 295.3-245.8zm-194.3-86.5c23.8 0 43.2 19.3 43.2 43.1s-19.3 43.1-43.2 43.1c-23.8 0-43.2-19.3-43.2-43.1s19.4-43.1 43.2-43.1zm-215.9 86.2c-23.8 0-43.2-19.3-43.2-43.1s19.3-43.1 43.2-43.1 43.2 19.3 43.2 43.1-19.4 43.1-43.2 43.1zm586.8 415.6c56.9-41.2 93.2-102 93.2-169.7 0-124-120.8-224.5-269.9-224.5-149 0-269.9 100.5-269.9 224.5S540.9 847.5 690 847.5c30.8 0 60.6-4.4 88.1-12.3 2.6-.8 5.2-1.2 7.9-1.2 5.2 0 9.9 1.6 14.3 4.1l59.1 34c1.7 1 3.3 1.7 5.2 1.7a9 9 0 0 0 6.4-2.6 9 9 0 0 0 2.6-6.4c0-2.2-.9-4.4-1.4-6.6-.3-1.2-7.6-28.3-12.2-45.3-.5-1.9-.9-3.8-.9-5.7.1-5.9 3.1-11.2 7.6-14.5zM600.2 587.2c-19.9 0-36-16.1-36-35.9 0-19.8 16.1-35.9 36-35.9s36 16.1 36 35.9c0 19.8-16.2 35.9-36 35.9zm179.9 0c-19.9 0-36-16.1-36-35.9 0-19.8 16.1-35.9 36-35.9s36 16.1 36 35.9a36.08 36.08 0 0 1-36 35.9z")),t.WeiboCircleOutline=l("weibo-circle",i,s(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-44.4 672C353.1 736 236 680.4 236 588.9c0-47.8 30.2-103.1 82.3-155.3 69.5-69.6 150.6-101.4 181.1-70.8 13.5 13.5 14.8 36.8 6.1 64.6-4.5 14 13.1 6.3 13.1 6.3 56.2-23.6 105.2-25 123.1.7 9.6 13.7 8.6 32.8-.2 55.1-4.1 10.2 1.3 11.8 9 14.1 31.7 9.8 66.9 33.6 66.9 75.5.2 69.5-99.7 156.9-249.8 156.9zm207.3-290.8a34.9 34.9 0 0 0-7.2-34.1 34.68 34.68 0 0 0-33.1-10.7 18.24 18.24 0 0 1-7.6-35.7c24.1-5.1 50.1 2.3 67.7 21.9 17.7 19.6 22.4 46.3 14.9 69.8a18.13 18.13 0 0 1-22.9 11.7 18.18 18.18 0 0 1-11.8-22.9zm106 34.3s0 .1 0 0a21.1 21.1 0 0 1-26.6 13.7 21.19 21.19 0 0 1-13.6-26.7c11-34.2 4-73.2-21.7-101.8a104.04 104.04 0 0 0-98.9-32.1 21.14 21.14 0 0 1-25.1-16.3 21.07 21.07 0 0 1 16.2-25.1c49.4-10.5 102.8 4.8 139.1 45.1 36.3 40.2 46.1 95.1 30.6 143.2zm-334.5 6.1c-91.4 9-160.7 65.1-154.7 125.2 5.9 60.1 84.8 101.5 176.2 92.5 91.4-9.1 160.7-65.1 154.7-125.3-5.9-60.1-84.8-101.5-176.2-92.4zm80.2 141.7c-18.7 42.3-72.3 64.8-117.8 50.1-43.9-14.2-62.5-57.7-43.3-96.8 18.9-38.4 68-60.1 111.5-48.8 45 11.7 68 54.2 49.6 95.5zm-93-32.2c-14.2-5.9-32.4.2-41.2 13.9-8.8 13.8-4.7 30.2 9.3 36.6 14.3 6.5 33.2.3 42-13.8 8.8-14.3 4.2-30.6-10.1-36.7zm34.9-14.5c-5.4-2.2-12.2.5-15.4 5.8-3.1 5.4-1.4 11.5 4.1 13.8 5.5 2.3 12.6-.3 15.8-5.8 3-5.6 1-11.8-4.5-13.8z")),t.WindowsOutline=l("windows",i,s(a,"M120.1 770.6L443 823.2V543.8H120.1v226.8zm63.4-163.5h196.2v141.6l-196.2-31.9V607.1zm340.3 226.5l382 62.2v-352h-382v289.8zm63.4-226.5h255.3v214.4l-255.3-41.6V607.1zm-63.4-415.7v288.8h382V128.1l-382 63.3zm318.7 225.5H587.3V245l255.3-42.3v214.2zm-722.4 63.3H443V201.9l-322.9 53.5v224.8zM183.5 309l196.2-32.5v140.4H183.5V309z")),t.YahooOutline=l("yahoo",i,s(a,"M859.9 681.4h-14.1c-27.1 0-49.2 22.2-49.2 49.3v14.1c0 27.1 22.2 49.3 49.2 49.3h14.1c27.1 0 49.2-22.2 49.2-49.3v-14.1c0-27.1-22.2-49.3-49.2-49.3zM402.6 231C216.2 231 65 357 65 512.5S216.2 794 402.6 794s337.6-126 337.6-281.5S589.1 231 402.6 231zm0 507C245.1 738 121 634.6 121 512.5c0-62.3 32.3-119.7 84.9-161v48.4h37l159.8 159.9v65.3h-84.4v56.3h225.1v-56.3H459v-65.3l103.5-103.6h65.3v-56.3H459v65.3l-28.1 28.1-93.4-93.5h37v-56.3H216.4c49.4-35 114.3-56.6 186.2-56.6 157.6 0 281.6 103.4 281.6 225.5S560.2 738 402.6 738zm534.7-507H824.7c-15.5 0-27.7 12.6-27.1 28.1l13.1 366h84.4l65.4-366.4c2.7-15.2-7.8-27.7-23.2-27.7z")),t.WeiboSquareOutline=l("weibo-square",i,s(a,"M433.6 595.1c-14.2-5.9-32.4.2-41.2 13.9-8.8 13.8-4.7 30.2 9.3 36.6 14.3 6.5 33.2.3 42-13.8 8.8-14.3 4.2-30.6-10.1-36.7zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM467.6 736C353.1 736 236 680.4 236 588.9c0-47.8 30.2-103.1 82.3-155.3 69.5-69.6 150.6-101.4 181.1-70.8 13.5 13.5 14.8 36.8 6.1 64.6-4.5 14 13.1 6.3 13.1 6.3 56.2-23.6 105.2-25 123.1.7 9.6 13.7 8.6 32.8-.2 55.1-4.1 10.2 1.3 11.8 9 14.1 31.7 9.8 66.9 33.6 66.9 75.5.2 69.5-99.7 156.9-249.8 156.9zm207.3-290.8a34.9 34.9 0 0 0-7.2-34.1 34.68 34.68 0 0 0-33.1-10.7 18.24 18.24 0 0 1-7.6-35.7c24.1-5.1 50.1 2.3 67.7 21.9 17.7 19.6 22.4 46.3 14.9 69.8a18.13 18.13 0 0 1-22.9 11.7 18.18 18.18 0 0 1-11.8-22.9zm106 34.3s0 .1 0 0a21.1 21.1 0 0 1-26.6 13.7 21.19 21.19 0 0 1-13.6-26.7c11-34.2 4-73.2-21.7-101.8a104.04 104.04 0 0 0-98.9-32.1 21.14 21.14 0 0 1-25.1-16.3 21.07 21.07 0 0 1 16.2-25.1c49.4-10.5 102.8 4.8 139.1 45.1 36.3 40.2 46.1 95.1 30.6 143.2zm-334.5 6.1c-91.4 9-160.7 65.1-154.7 125.2 5.9 60.1 84.8 101.5 176.2 92.5 91.4-9.1 160.7-65.1 154.7-125.3-5.9-60.1-84.8-101.5-176.2-92.4zm80.2 141.7c-18.7 42.3-72.3 64.8-117.8 50.1-43.9-14.2-62.5-57.7-43.3-96.8 18.9-38.4 68-60.1 111.5-48.8 45 11.7 68 54.2 49.6 95.5zm-58.1-46.7c-5.4-2.2-12.2.5-15.4 5.8-3.1 5.4-1.4 11.5 4.1 13.8 5.5 2.3 12.6-.3 15.8-5.8 3-5.6 1-11.8-4.5-13.8z")),t.YuqueOutline=l("yuque",i,s(a,"M854.6 370.6c-9.9-39.4 9.9-102.2 73.4-124.4l-67.9-3.6s-25.7-90-143.6-98c-117.8-8.1-194.9-3-195-3 .1 0 87.4 55.6 52.4 154.7-25.6 52.5-65.8 95.6-108.8 144.7-1.3 1.3-2.5 2.6-3.5 3.7C319.4 605 96 860 96 860c245.9 64.4 410.7-6.3 508.2-91.1 20.5-.2 35.9-.3 46.3-.3 135.8 0 250.6-117.6 245.9-248.4-3.2-89.9-31.9-110.2-41.8-149.6zm-204.1 334c-10.6 0-26.2.1-46.8.3l-23.6.2-17.8 15.5c-47.1 41-104.4 71.5-171.4 87.6-52.5 12.6-110 16.2-172.7 9.6 18-20.5 36.5-41.6 55.4-63.1 92-104.6 173.8-197.5 236.9-268.5l1.4-1.4 1.3-1.5c4.1-4.6 20.6-23.3 24.7-28.1 9.7-11.1 17.3-19.9 24.5-28.6 30.7-36.7 52.2-67.8 69-102.2l1.6-3.3 1.2-3.4c13.7-38.8 15.4-76.9 6.2-112.8 22.5.7 46.5 1.9 71.7 3.6 33.3 2.3 55.5 12.9 71.1 29.2 5.8 6 10.2 12.5 13.4 18.7 1 2 1.7 3.6 2.3 5l5 17.7c-15.7 34.5-19.9 73.3-11.4 107.2 3 11.8 6.9 22.4 12.3 34.4 2.1 4.7 9.5 20.1 11 23.3 10.3 22.7 15.4 43 16.7 78.7 3.3 94.6-82.7 181.9-182 181.9z")),t.YoutubeOutline=l("youtube",i,s(a,"M960 509.2c0-2.2 0-4.7-.1-7.6-.1-8.1-.3-17.2-.5-26.9-.8-27.9-2.2-55.7-4.4-81.9-3-36.1-7.4-66.2-13.4-88.8a139.52 139.52 0 0 0-98.3-98.5c-28.3-7.6-83.7-12.3-161.7-15.2-37.1-1.4-76.8-2.3-116.5-2.8-13.9-.2-26.8-.3-38.4-.4h-29.4c-11.6.1-24.5.2-38.4.4-39.7.5-79.4 1.4-116.5 2.8-78 3-133.5 7.7-161.7 15.2A139.35 139.35 0 0 0 82.4 304C76.3 326.6 72 356.7 69 392.8c-2.2 26.2-3.6 54-4.4 81.9-.3 9.7-.4 18.8-.5 26.9 0 2.9-.1 5.4-.1 7.6v5.6c0 2.2 0 4.7.1 7.6.1 8.1.3 17.2.5 26.9.8 27.9 2.2 55.7 4.4 81.9 3 36.1 7.4 66.2 13.4 88.8 12.8 47.9 50.4 85.7 98.3 98.5 28.2 7.6 83.7 12.3 161.7 15.2 37.1 1.4 76.8 2.3 116.5 2.8 13.9.2 26.8.3 38.4.4h29.4c11.6-.1 24.5-.2 38.4-.4 39.7-.5 79.4-1.4 116.5-2.8 78-3 133.5-7.7 161.7-15.2 47.9-12.8 85.5-50.5 98.3-98.5 6.1-22.6 10.4-52.7 13.4-88.8 2.2-26.2 3.6-54 4.4-81.9.3-9.7.4-18.8.5-26.9 0-2.9.1-5.4.1-7.6v-5.6zm-72 5.2c0 2.1 0 4.4-.1 7.1-.1 7.8-.3 16.4-.5 25.7-.7 26.6-2.1 53.2-4.2 77.9-2.7 32.2-6.5 58.6-11.2 76.3-6.2 23.1-24.4 41.4-47.4 47.5-21 5.6-73.9 10.1-145.8 12.8-36.4 1.4-75.6 2.3-114.7 2.8-13.7.2-26.4.3-37.8.3h-28.6l-37.8-.3c-39.1-.5-78.2-1.4-114.7-2.8-71.9-2.8-124.9-7.2-145.8-12.8-23-6.2-41.2-24.4-47.4-47.5-4.7-17.7-8.5-44.1-11.2-76.3-2.1-24.7-3.4-51.3-4.2-77.9-.3-9.3-.4-18-.5-25.7 0-2.7-.1-5.1-.1-7.1v-4.8c0-2.1 0-4.4.1-7.1.1-7.8.3-16.4.5-25.7.7-26.6 2.1-53.2 4.2-77.9 2.7-32.2 6.5-58.6 11.2-76.3 6.2-23.1 24.4-41.4 47.4-47.5 21-5.6 73.9-10.1 145.8-12.8 36.4-1.4 75.6-2.3 114.7-2.8 13.7-.2 26.4-.3 37.8-.3h28.6l37.8.3c39.1.5 78.2 1.4 114.7 2.8 71.9 2.8 124.9 7.2 145.8 12.8 23 6.2 41.2 24.4 47.4 47.5 4.7 17.7 8.5 44.1 11.2 76.3 2.1 24.7 3.4 51.3 4.2 77.9.3 9.3.4 18 .5 25.7 0 2.7.1 5.1.1 7.1v4.8zM423 646l232-135-232-133z")),t.AlibabaOutline=l("alibaba",i,s(a,"M602.9 669.8c-37.2 2.6-33.6-17.3-11.5-46.2 50.4-67.2 143.7-158.5 147.9-225.2 5.8-86.6-81.3-113.4-171-113.4-62.4 1.6-127 18.9-171 34.6-151.6 53.5-246.6 137.5-306.9 232-62.4 93.4-43 183.2 91.8 185.8 101.8-4.2 170.5-32.5 239.7-68.2.5 0-192.5 55.1-263.9 14.7-7.9-4.2-15.7-10-17.8-26.2 0-33.1 54.6-67.7 86.6-78.7v-56.7c64.5 22.6 140.6 16.3 205.7-32 2.1 5.8 4.2 13.1 3.7 21h11c2.6-22.6-12.6-44.6-37.8-46.2 7.3 5.8 12.6 10.5 15.2 14.7l-1 1-.5.5c-83.9 58.8-165.3 31.5-173.1 29.9l46.7-45.7-13.1-33.1c92.9-32.5 169.5-56.2 296.9-78.7l-28.5-23 14.7-8.9c75.5 21 126.4 36.7 123.8 76.6-1 6.8-3.7 14.7-7.9 23.1C660.1 466.1 594 538 567.2 569c-17.3 20.5-34.6 39.4-46.7 58.3-13.6 19.4-20.5 37.3-21 53.5 2.6 131.8 391.4-61.9 468-112.9-111.7 47.8-232.9 93.5-364.6 101.9zm85-302.9c2.8 5.2 4.1 11.6 4.1 19.1-.1-6.8-1.4-13.3-4.1-19.1z")),t.AlignCenterOutline=l("align-center",i,s(a,"M264 230h496c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H264c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm496 424c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H264c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496zm144 140H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-424H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.AlignLeftOutline=l("align-left",i,s(a,"M120 230h496c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0 424h496c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm784 140H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-424H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.AlignRightOutline=l("align-right",i,s(a,"M904 158H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 424H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 212H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-424H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.AlipayOutline=l("alipay",i,s(a,"M789 610.3c-38.7-12.9-90.7-32.7-148.5-53.6 34.8-60.3 62.5-129 80.7-203.6H530.5v-68.6h233.6v-38.3H530.5V132h-95.4c-16.7 0-16.7 16.5-16.7 16.5v97.8H182.2v38.3h236.3v68.6H223.4v38.3h378.4a667.18 667.18 0 0 1-54.5 132.9c-122.8-40.4-253.8-73.2-336.1-53-52.6 13-86.5 36.1-106.5 60.3-91.4 111-25.9 279.6 167.2 279.6C386 811.2 496 747.6 581.2 643 708.3 704 960 808.7 960 808.7V659.4s-31.6-2.5-171-49.1zM253.9 746.6c-150.5 0-195-118.3-120.6-183.1 24.8-21.9 70.2-32.6 94.4-35 89.4-8.8 172.2 25.2 269.9 72.8-68.8 89.5-156.3 145.3-243.7 145.3z")),t.AliyunOutline=l("aliyun",i,s(a,"M959.2 383.9c-.3-82.1-66.9-148.6-149.1-148.6H575.9l21.6 85.2 201 43.7a42.58 42.58 0 0 1 32.9 39.7c.1.5.1 216.1 0 216.6a42.58 42.58 0 0 1-32.9 39.7l-201 43.7-21.6 85.3h234.2c82.1 0 148.8-66.5 149.1-148.6V383.9zM225.5 660.4a42.58 42.58 0 0 1-32.9-39.7c-.1-.6-.1-216.1 0-216.6.8-19.4 14.6-35.5 32.9-39.7l201-43.7 21.6-85.2H213.8c-82.1 0-148.8 66.4-149.1 148.6V641c.3 82.1 67 148.6 149.1 148.6H448l-21.6-85.3-200.9-43.9zm200.9-158.8h171v21.3h-171z")),t.AmazonOutline=l("amazon",i,s(a,"M825 768.9c-3.3-.9-7.3-.4-11.9 1.3-61.6 28.2-121.5 48.3-179.7 60.2C507.7 856 385.2 842.6 266 790.3c-33.1-14.6-79.1-39.2-138-74a9.36 9.36 0 0 0-5.3-2c-2-.1-3.7.1-5.3.9-1.6.8-2.8 1.8-3.7 3.1-.9 1.3-1.1 3.1-.4 5.4.6 2.2 2.1 4.7 4.6 7.4 10.4 12.2 23.3 25.2 38.6 39s35.6 29.4 60.9 46.8c25.3 17.4 51.8 32.9 79.3 46.4 27.6 13.5 59.6 24.9 96.1 34.1s73 13.8 109.4 13.8c36.2 0 71.4-3.7 105.5-10.9 34.2-7.3 63-15.9 86.5-25.9 23.4-9.9 45-21 64.8-33 19.8-12 34.4-22.2 43.9-30.3 9.5-8.2 16.3-14.6 20.2-19.4 4.6-5.7 6.9-10.6 6.9-14.9.1-4.5-1.7-7.1-5-7.9zM527.4 348.1c-15.2 1.3-33.5 4.1-55 8.3-21.5 4.1-41.4 9.3-59.8 15.4s-37.2 14.6-56.3 25.4c-19.2 10.8-35.5 23.2-49 37s-24.5 31.1-33.1 52c-8.6 20.8-12.9 43.7-12.9 68.7 0 27.1 4.7 51.2 14.3 72.5 9.5 21.3 22.2 38 38.2 50.4 15.9 12.4 34 22.1 54 29.2 20 7.1 41.2 10.3 63.2 9.4 22-.9 43.5-4.3 64.4-10.3 20.8-5.9 40.4-15.4 58.6-28.3 18.2-12.9 33.1-28.2 44.8-45.7 4.3 6.6 8.1 11.5 11.5 14.7l8.7 8.9c5.8 5.9 14.7 14.6 26.7 26.1 11.9 11.5 24.1 22.7 36.3 33.7l104.4-99.9-6-4.9c-4.3-3.3-9.4-8-15.2-14.3-5.8-6.2-11.6-13.1-17.2-20.5-5.7-7.4-10.6-16.1-14.7-25.9-4.1-9.8-6.2-19.3-6.2-28.5V258.7c0-10.1-1.9-21-5.7-32.8-3.9-11.7-10.7-24.5-20.7-38.3-10-13.8-22.4-26.2-37.2-37-14.9-10.8-34.7-20-59.6-27.4-24.8-7.4-52.6-11.1-83.2-11.1-31.3 0-60.4 3.7-87.6 10.9-27.1 7.3-50.3 17-69.7 29.2-19.3 12.2-35.9 26.3-49.7 42.4-13.8 16.1-24.1 32.9-30.8 50.4-6.7 17.5-10.1 35.2-10.1 53.1L408 310c5.5-16.4 12.9-30.6 22-42.8 9.2-12.2 17.9-21 25.8-26.5 8-5.5 16.6-9.9 25.7-13.2 9.2-3.3 15.4-5 18.6-5.4 3.2-.3 5.7-.4 7.6-.4 26.7 0 45.2 7.9 55.6 23.6 6.5 9.5 9.7 23.9 9.7 43.3v56.6c-15.2.6-30.4 1.6-45.6 2.9zM573.1 500c0 16.6-2.2 31.7-6.5 45-9.2 29.1-26.7 47.4-52.4 54.8-22.4 6.6-43.7 3.3-63.9-9.8-21.5-14-32.2-33.8-32.2-59.3 0-19.9 5-36.9 15-51.1 10-14.1 23.3-24.7 40-31.7s33-12 49-14.9c15.9-3 33-4.8 51-5.4V500zm335.2 218.9c-4.3-5.4-15.9-8.9-34.9-10.7-19-1.8-35.5-1.7-49.7.4-15.3 1.8-31.1 6.2-47.3 13.4-16.3 7.1-23.4 13.1-21.6 17.8l.7 1.3.9.7 1.4.2h4.6c.8 0 1.8-.1 3.2-.2 1.4-.1 2.7-.3 3.9-.4 1.2-.1 2.9-.3 5.1-.4 2.1-.1 4.1-.4 6-.7.3 0 3.7-.3 10.3-.9 6.6-.6 11.4-1 14.3-1.3 2.9-.3 7.8-.6 14.5-.9 6.7-.3 12.1-.3 16.1 0 4 .3 8.5.7 13.6 1.1 5.1.4 9.2 1.3 12.4 2.7 3.2 1.3 5.6 3 7.1 5.1 5.2 6.6 4.2 21.2-3 43.9s-14 40.8-20.4 54.2c-2.8 5.7-2.8 9.2 0 10.7s6.7.1 11.9-4c15.6-12.2 28.6-30.6 39.1-55.3 6.1-14.6 10.5-29.8 13.1-45.7 2.4-15.9 2-26.2-1.3-31z")),t.AntCloudOutline=l("ant-cloud",i,s(a,"M378.9 738c-3.1 0-6.1-.5-8.8-1.5l4.4 30.7h26.3l-15.5-29.9c-2.1.5-4.2.7-6.4.7zm421-291.2c-12.6 0-24.8 1.5-36.5 4.2-21.4-38.4-62.3-64.3-109.3-64.3-6.9 0-13.6.6-20.2 1.6-35.4-77.4-113.4-131.1-203.9-131.1-112.3 0-205.3 82.6-221.6 190.4C127.3 455.5 64 523.8 64 607c0 88.4 71.6 160.1 160 160.2h50l13.2-27.6c-26.2-8.3-43.3-29-39.1-48.8 4.6-21.6 32.8-33.9 63.1-27.5 22.9 4.9 40.4 19.1 45.5 35.1a26.1 26.1 0 0 1 22.1-12.4h.2c-.8-3.2-1.2-6.5-1.2-9.9 0-20.1 14.8-36.7 34.1-39.6v-25.4c0-4.4 3.6-8 8-8s8 3.6 8 8v26.3c4.6 1.2 8.8 3.2 12.6 5.8l19.5-21.4c3-3.3 8-3.5 11.3-.5 3.3 3 3.5 8 .5 11.3l-20 22-.2.2a40 40 0 0 1-46.9 59.2c-.4 5.6-2.6 10.7-6 14.8l20 38.4H804v-.1c86.5-2.2 156-73 156-160.1 0-88.5-71.7-160.2-160.1-160.2zM338.2 737.2l-4.3 30h24.4l-5.9-41.5c-3.5 4.6-8.3 8.5-14.2 11.5zM797.5 305a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm-65.7 61.3a24 24 0 1 0 48 0 24 24 0 1 0-48 0zM303.4 742.9l-11.6 24.3h26l3.5-24.7c-5.7.8-11.7 1-17.9.4z")),t.ApartmentOutline=l("apartment",i,s(a,"M908 640H804V488c0-4.4-3.6-8-8-8H548v-96h108c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16v288c0 8.8 7.2 16 16 16h108v96H228c-4.4 0-8 3.6-8 8v152H116c-8.8 0-16 7.2-16 16v288c0 8.8 7.2 16 16 16h288c8.8 0 16-7.2 16-16V656c0-8.8-7.2-16-16-16H292v-88h440v88H620c-8.8 0-16 7.2-16 16v288c0 8.8 7.2 16 16 16h288c8.8 0 16-7.2 16-16V656c0-8.8-7.2-16-16-16zm-564 76v168H176V716h168zm84-408V140h168v168H428zm420 576H680V716h168v168z")),t.AntDesignOutline=l("ant-design",i,s(a,"M716.3 313.8c19-18.9 19-49.7 0-68.6l-69.9-69.9.1.1c-18.5-18.5-50.3-50.3-95.3-95.2-21.2-20.7-55.5-20.5-76.5.5L80.9 474.2a53.84 53.84 0 0 0 0 76.4L474.6 944a54.14 54.14 0 0 0 76.5 0l165.1-165c19-18.9 19-49.7 0-68.6a48.7 48.7 0 0 0-68.7 0l-125 125.2c-5.2 5.2-13.3 5.2-18.5 0L189.5 521.4c-5.2-5.2-5.2-13.3 0-18.5l314.4-314.2c.4-.4.9-.7 1.3-1.1 5.2-4.1 12.4-3.7 17.2 1.1l125.2 125.1c19 19 49.8 19 68.7 0zM408.6 514.4a106.3 106.2 0 1 0 212.6 0 106.3 106.2 0 1 0-212.6 0zm536.2-38.6L821.9 353.5c-19-18.9-49.8-18.9-68.7.1a48.4 48.4 0 0 0 0 68.6l83 82.9c5.2 5.2 5.2 13.3 0 18.5l-81.8 81.7a48.4 48.4 0 0 0 0 68.6 48.7 48.7 0 0 0 68.7 0l121.8-121.7a53.93 53.93 0 0 0-.1-76.4z")),t.AreaChartOutline=l("area-chart",i,s(a,"M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-616-64h536c4.4 0 8-3.6 8-8V284c0-7.2-8.7-10.7-13.7-5.7L592 488.6l-125.4-124a8.03 8.03 0 0 0-11.3 0l-189 189.6a7.87 7.87 0 0 0-2.3 5.6V720c0 4.4 3.6 8 8 8z")),t.ArrowLeftOutline=l("arrow-left",i,s(a,"M872 474H286.9l350.2-304c5.6-4.9 2.2-14-5.2-14h-88.5c-3.9 0-7.6 1.4-10.5 3.9L155 487.8a31.96 31.96 0 0 0 0 48.3L535.1 866c1.5 1.3 3.3 2 5.2 2h91.5c7.4 0 10.8-9.2 5.2-14L286.9 550H872c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z")),t.ArrowDownOutline=l("arrow-down",i,s(a,"M862 465.3h-81c-4.6 0-9 2-12.1 5.5L550 723.1V160c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v563.1L255.1 470.8c-3-3.5-7.4-5.5-12.1-5.5h-81c-6.8 0-10.5 8.1-6 13.2L487.9 861a31.96 31.96 0 0 0 48.3 0L868 478.5c4.5-5.2.8-13.2-6-13.2z")),t.ArrowUpOutline=l("arrow-up",i,s(a,"M868 545.5L536.1 163a31.96 31.96 0 0 0-48.3 0L156 545.5a7.97 7.97 0 0 0 6 13.2h81c4.6 0 9-2 12.1-5.5L474 300.9V864c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V300.9l218.9 252.3c3 3.5 7.4 5.5 12.1 5.5h81c6.8 0 10.5-8 6-13.2z")),t.ArrowsAltOutline=l("arrows-alt",i,s(a,"M855 160.1l-189.2 23.5c-6.6.8-9.3 8.8-4.7 13.5l54.7 54.7-153.5 153.5a8.03 8.03 0 0 0 0 11.3l45.1 45.1c3.1 3.1 8.2 3.1 11.3 0l153.6-153.6 54.7 54.7a7.94 7.94 0 0 0 13.5-4.7L863.9 169a7.9 7.9 0 0 0-8.9-8.9zM416.6 562.3a8.03 8.03 0 0 0-11.3 0L251.8 715.9l-54.7-54.7a7.94 7.94 0 0 0-13.5 4.7L160.1 855c-.6 5.2 3.7 9.5 8.9 8.9l189.2-23.5c6.6-.8 9.3-8.8 4.7-13.5l-54.7-54.7 153.6-153.6c3.1-3.1 3.1-8.2 0-11.3l-45.2-45z")),t.ArrowRightOutline=l("arrow-right",i,s(a,"M869 487.8L491.2 159.9c-2.9-2.5-6.6-3.9-10.5-3.9h-88.5c-7.4 0-10.8 9.2-5.2 14l350.2 304H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h585.1L386.9 854c-5.6 4.9-2.2 14 5.2 14h91.5c1.9 0 3.8-.7 5.2-2L869 536.2a32.07 32.07 0 0 0 0-48.4z")),t.AuditOutline=l("audit",i,s(a,"M296 250c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H296zm184 144H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm-48 458H208V148h560v320c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h264c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm440-88H728v-36.6c46.3-13.8 80-56.6 80-107.4 0-61.9-50.1-112-112-112s-112 50.1-112 112c0 50.7 33.7 93.6 80 107.4V764H520c-8.8 0-16 7.2-16 16v152c0 8.8 7.2 16 16 16h352c8.8 0 16-7.2 16-16V780c0-8.8-7.2-16-16-16zM646 620c0-27.6 22.4-50 50-50s50 22.4 50 50-22.4 50-50 50-50-22.4-50-50zm180 266H566v-60h260v60z")),t.BarChartOutline=l("bar-chart",i,s(a,"M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-600-80h56c4.4 0 8-3.6 8-8V560c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8zm152 0h56c4.4 0 8-3.6 8-8V384c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v320c0 4.4 3.6 8 8 8zm152 0h56c4.4 0 8-3.6 8-8V462c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v242c0 4.4 3.6 8 8 8zm152 0h56c4.4 0 8-3.6 8-8V304c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v400c0 4.4 3.6 8 8 8z")),t.BarcodeOutline=l("barcode",i,s(a,"M120 160H72c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V168c0-4.4-3.6-8-8-8zm833 0h-48c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V168c0-4.4-3.6-8-8-8zM200 736h112c4.4 0 8-3.6 8-8V168c0-4.4-3.6-8-8-8H200c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8zm321 0h48c4.4 0 8-3.6 8-8V168c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8zm126 0h178c4.4 0 8-3.6 8-8V168c0-4.4-3.6-8-8-8H647c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8zm-255 0h48c4.4 0 8-3.6 8-8V168c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8zm-79 64H201c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h112c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm257 0h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm256 0H648c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h178c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm-385 0h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z")),t.BarsOutline=l("bars",i,s(r,"M912 192H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM104 228a56 56 0 1 0 112 0 56 56 0 1 0-112 0zm0 284a56 56 0 1 0 112 0 56 56 0 1 0-112 0zm0 284a56 56 0 1 0 112 0 56 56 0 1 0-112 0z")),t.BgColorsOutline=l("bg-colors",i,s(a,"M766.4 744.3c43.7 0 79.4-36.2 79.4-80.5 0-53.5-79.4-140.8-79.4-140.8S687 610.3 687 663.8c0 44.3 35.7 80.5 79.4 80.5zm-377.1-44.1c7.1 7.1 18.6 7.1 25.6 0l256.1-256c7.1-7.1 7.1-18.6 0-25.6l-256-256c-.6-.6-1.3-1.2-2-1.7l-78.2-78.2a9.11 9.11 0 0 0-12.8 0l-48 48a9.11 9.11 0 0 0 0 12.8l67.2 67.2-207.8 207.9c-7.1 7.1-7.1 18.6 0 25.6l255.9 256zm12.9-448.6l178.9 178.9H223.4l178.8-178.9zM904 816H120c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-80c0-4.4-3.6-8-8-8z")),t.BehanceOutline=l("behance",i,s(a,"M634 294.3h199.5v48.4H634zM434.1 485.8c44.1-21.1 67.2-53.2 67.2-102.8 0-98.1-73-121.9-157.3-121.9H112v492.4h238.5c89.4 0 173.3-43 173.3-143 0-61.8-29.2-107.5-89.7-124.7zM220.2 345.1h101.5c39.1 0 74.2 10.9 74.2 56.3 0 41.8-27.3 58.6-66 58.6H220.2V345.1zm115.5 324.8H220.1V534.3H338c47.6 0 77.7 19.9 77.7 70.3 0 49.6-35.9 65.3-80 65.3zm575.8-89.5c0-105.5-61.7-193.4-173.3-193.4-108.5 0-182.3 81.7-182.3 188.8 0 111 69.9 187.2 182.3 187.2 85.1 0 140.2-38.3 166.7-120h-86.3c-9.4 30.5-47.6 46.5-77.3 46.5-57.4 0-87.4-33.6-87.4-90.7h256.9c.3-5.9.7-12.1.7-18.4zM653.9 537c3.1-46.9 34.4-76.2 81.2-76.2 49.2 0 73.8 28.9 78.1 76.2H653.9z")),t.BlockOutline=l("block",i,s(a,"M856 376H648V168c0-8.8-7.2-16-16-16H168c-8.8 0-16 7.2-16 16v464c0 8.8 7.2 16 16 16h208v208c0 8.8 7.2 16 16 16h464c8.8 0 16-7.2 16-16V392c0-8.8-7.2-16-16-16zm-480 16v188H220V220h360v156H392c-8.8 0-16 7.2-16 16zm204 52v136H444V444h136zm224 360H444V648h188c8.8 0 16-7.2 16-16V444h156v360z")),t.BoldOutline=l("bold",i,s(a,"M697.8 481.4c33.6-35 54.2-82.3 54.2-134.3v-10.2C752 229.3 663.9 142 555.3 142H259.4c-15.1 0-27.4 12.3-27.4 27.4v679.1c0 16.3 13.2 29.5 29.5 29.5h318.7c117 0 211.8-94.2 211.8-210.5v-11c0-73-37.4-137.3-94.2-175.1zM328 238h224.7c57.1 0 103.3 44.4 103.3 99.3v9.5c0 54.8-46.3 99.3-103.3 99.3H328V238zm366.6 429.4c0 62.9-51.7 113.9-115.5 113.9H328V542.7h251.1c63.8 0 115.5 51 115.5 113.9v10.8z")),t.BorderBottomOutline=l("border-bottom",i,s(a,"M872 808H152c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h720c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-720-94h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0-498h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0 332h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0-166h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm166 166h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0-332h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm332 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0 332h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm222-72h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-388 72h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm388-404h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-388 72h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm388 426h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-388 72h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm388-404h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-388 72h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8z")),t.BorderLeftOutline=l("border-left",i,s(a,"M208 144h-56c-4.4 0-8 3.6-8 8v720c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V152c0-4.4-3.6-8-8-8zm166 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm498 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm166 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM540 310h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM374 808h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.BorderOuterOutline=l("border-outer",i,s(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656zM484 366h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zM302 548h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm364 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-182 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0 182h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8z")),t.BorderInnerOutline=l("border-inner",i,s(a,"M872 476H548V144h-72v332H152c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h324v332h72V548h324c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 498h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-664h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 498h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM650 216h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm56 592h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-56-592h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-166 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm56 592h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-56-426h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm56 260h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.BorderRightOutline=l("border-right",i,s(a,"M872 144h-56c-4.4 0-8 3.6-8 8v720c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V152c0-4.4-3.6-8-8-8zm-166 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-498 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-166 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm166 166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM208 808h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm498 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM374 808h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.BorderHorizontalOutline=l("border-horizontal",i,s(a,"M540 144h-56c-4.4 0-8 3.6-8 8v720c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V152c0-4.4-3.6-8-8-8zm-166 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm498 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-664 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm498 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM208 310h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm664 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-664 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm664 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM374 808h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.BorderTopOutline=l("border-top",i,s(a,"M872 144H152c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h720c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM208 310h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 498h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm166-166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm166 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332-498h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.BorderVerticleOutline=l("border-verticle",i,s(a,"M872 476H152c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h720c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 498h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-664h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 498h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM650 216h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm56 592h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-56-592h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-166 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm332 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zM208 808h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM152 382h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm332 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zM208 642h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.BorderOutline=l("border",i,s(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z")),t.BranchesOutline=l("branches",i,s(a,"M740 161c-61.8 0-112 50.2-112 112 0 50.1 33.1 92.6 78.5 106.9v95.9L320 602.4V318.1c44.2-15 76-56.9 76-106.1 0-61.8-50.2-112-112-112s-112 50.2-112 112c0 49.2 31.8 91 76 106.1V706c-44.2 15-76 56.9-76 106.1 0 61.8 50.2 112 112 112s112-50.2 112-112c0-49.2-31.8-91-76-106.1v-27.8l423.5-138.7a50.52 50.52 0 0 0 34.9-48.2V378.2c42.9-15.8 73.6-57 73.6-105.2 0-61.8-50.2-112-112-112zm-504 51a48.01 48.01 0 0 1 96 0 48.01 48.01 0 0 1-96 0zm96 600a48.01 48.01 0 0 1-96 0 48.01 48.01 0 0 1 96 0zm408-491a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z")),t.CheckOutline=l("check",i,s(a,"M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 0 0-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z")),t.CiOutline=l("ci",i,s(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm218-572.1h-50.4c-4.4 0-8 3.6-8 8v384.2c0 4.4 3.6 8 8 8H730c4.4 0 8-3.6 8-8V319.9c0-4.4-3.6-8-8-8zm-281.4 49.6c49.5 0 83.1 31.5 87 77.6.4 4.2 3.8 7.4 8 7.4h52.6c2.4 0 4.4-2 4.4-4.4 0-81.2-64-138.1-152.3-138.1C345.4 304 286 373.5 286 488.4v49c0 114 59.4 182.6 162.3 182.6 88 0 152.3-55.1 152.3-132.5 0-2.4-2-4.4-4.4-4.4h-52.7c-4.2 0-7.6 3.2-8 7.3-4.2 43-37.7 72.4-87 72.4-61.1 0-95.6-44.9-95.6-125.2v-49.3c.1-81.4 34.6-126.8 95.7-126.8z")),t.CloseOutline=l("close",i,s(a,"M563.8 512l262.5-312.9c4.4-5.2.7-13.1-6.1-13.1h-79.8c-4.7 0-9.2 2.1-12.3 5.7L511.6 449.8 295.1 191.7c-3-3.6-7.5-5.7-12.3-5.7H203c-6.8 0-10.5 7.9-6.1 13.1L459.4 512 196.9 824.9A7.95 7.95 0 0 0 203 838h79.8c4.7 0 9.2-2.1 12.3-5.7l216.5-258.1 216.5 258.1c3 3.6 7.5 5.7 12.3 5.7h79.8c6.8 0 10.5-7.9 6.1-13.1L563.8 512z")),t.CloudDownloadOutline=l("cloud-download",i,s(a,"M624 706.3h-74.1V464c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v242.3H400c-6.7 0-10.4 7.7-6.3 12.9l112 141.7a8 8 0 0 0 12.6 0l112-141.7c4.1-5.2.4-12.9-6.3-12.9z","M811.4 366.7C765.6 245.9 648.9 160 512.2 160S258.8 245.8 213 366.6C127.3 389.1 64 467.2 64 560c0 110.5 89.5 200 199.9 200H304c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8h-40.1c-33.7 0-65.4-13.4-89-37.7-23.5-24.2-36-56.8-34.9-90.6.9-26.4 9.9-51.2 26.2-72.1 16.7-21.3 40.1-36.8 66.1-43.7l37.9-9.9 13.9-36.6c8.6-22.8 20.6-44.1 35.7-63.4a245.6 245.6 0 0 1 52.4-49.9c41.1-28.9 89.5-44.2 140-44.2s98.9 15.3 140 44.2c19.9 14 37.5 30.8 52.4 49.9 15.1 19.3 27.1 40.7 35.7 63.4l13.8 36.5 37.8 10C846.1 454.5 884 503.8 884 560c0 33.1-12.9 64.3-36.3 87.7a123.07 123.07 0 0 1-87.6 36.3H720c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h40.1C870.5 760 960 670.5 960 560c0-92.7-63.1-170.7-148.6-193.3z")),t.CloudServerOutline=l("cloud-server",i,s(a,"M704 446H320c-4.4 0-8 3.6-8 8v402c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8V454c0-4.4-3.6-8-8-8zm-328 64h272v117H376V510zm272 290H376V683h272v117z","M424 748a32 32 0 1 0 64 0 32 32 0 1 0-64 0zm0-178a32 32 0 1 0 64 0 32 32 0 1 0-64 0z","M811.4 368.9C765.6 248 648.9 162 512.2 162S258.8 247.9 213 368.8C126.9 391.5 63.5 470.2 64 563.6 64.6 668 145.6 752.9 247.6 762c4.7.4 8.7-3.3 8.7-8v-60.4c0-4-3-7.4-7-7.9-27-3.4-52.5-15.2-72.1-34.5-24-23.5-37.2-55.1-37.2-88.6 0-28 9.1-54.4 26.2-76.4 16.7-21.4 40.2-36.9 66.1-43.7l37.9-10 13.9-36.7c8.6-22.8 20.6-44.2 35.7-63.5 14.9-19.2 32.6-36 52.4-50 41.1-28.9 89.5-44.2 140-44.2s98.9 15.3 140 44.3c19.9 14 37.5 30.8 52.4 50 15.1 19.3 27.1 40.7 35.7 63.5l13.8 36.6 37.8 10c54.2 14.4 92.1 63.7 92.1 120 0 33.6-13.2 65.1-37.2 88.6-19.5 19.2-44.9 31.1-71.9 34.5-4 .5-6.9 3.9-6.9 7.9V754c0 4.7 4.1 8.4 8.8 8 101.7-9.2 182.5-94 183.2-198.2.6-93.4-62.7-172.1-148.6-194.9z")),t.CloudSyncOutline=l("cloud-sync",i,s(a,"M811.4 368.9C765.6 248 648.9 162 512.2 162S258.8 247.9 213 368.8C126.9 391.5 63.5 470.2 64 563.6 64.6 668 145.6 752.9 247.6 762c4.7.4 8.7-3.3 8.7-8v-60.4c0-4-3-7.4-7-7.9-27-3.4-52.5-15.2-72.1-34.5-24-23.5-37.2-55.1-37.2-88.6 0-28 9.1-54.4 26.2-76.4 16.7-21.4 40.2-36.9 66.1-43.7l37.9-10 13.9-36.7c8.6-22.8 20.6-44.2 35.7-63.5 14.9-19.2 32.6-36 52.4-50 41.1-28.9 89.5-44.2 140-44.2s98.9 15.3 140 44.3c19.9 14 37.5 30.8 52.4 50 15.1 19.3 27.1 40.7 35.7 63.5l13.8 36.6 37.8 10c54.2 14.4 92.1 63.7 92.1 120 0 33.6-13.2 65.1-37.2 88.6-19.5 19.2-44.9 31.1-71.9 34.5-4 .5-6.9 3.9-6.9 7.9V754c0 4.7 4.1 8.4 8.8 8 101.7-9.2 182.5-94 183.2-198.2.6-93.4-62.7-172.1-148.6-194.9z","M376.9 656.4c1.8-33.5 15.7-64.7 39.5-88.6 25.4-25.5 60-39.8 96-39.8 36.2 0 70.3 14.1 96 39.8 1.4 1.4 2.7 2.8 4.1 4.3l-25 19.6a8 8 0 0 0 3 14.1l98.2 24c5 1.2 9.9-2.6 9.9-7.7l.5-101.3c0-6.7-7.6-10.5-12.9-6.3L663 532.7c-36.6-42-90.4-68.6-150.5-68.6-107.4 0-195 85.1-199.4 191.7-.2 4.5 3.4 8.3 8 8.3H369c4.2-.1 7.7-3.4 7.9-7.7zM703 664h-47.9c-4.2 0-7.7 3.3-8 7.6-1.8 33.5-15.7 64.7-39.5 88.6-25.4 25.5-60 39.8-96 39.8-36.2 0-70.3-14.1-96-39.8-1.4-1.4-2.7-2.8-4.1-4.3l25-19.6a8 8 0 0 0-3-14.1l-98.2-24c-5-1.2-9.9 2.6-9.9 7.7l-.4 101.4c0 6.7 7.6 10.5 12.9 6.3l23.2-18.2c36.6 42 90.4 68.6 150.5 68.6 107.4 0 195-85.1 199.4-191.7.2-4.5-3.4-8.3-8-8.3z")),t.CloudUploadOutline=l("cloud-upload",i,s(a,"M518.3 459a8 8 0 0 0-12.6 0l-112 141.7a7.98 7.98 0 0 0 6.3 12.9h73.9V856c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V613.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 459z","M811.4 366.7C765.6 245.9 648.9 160 512.2 160S258.8 245.8 213 366.6C127.3 389.1 64 467.2 64 560c0 110.5 89.5 200 199.9 200H304c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8h-40.1c-33.7 0-65.4-13.4-89-37.7-23.5-24.2-36-56.8-34.9-90.6.9-26.4 9.9-51.2 26.2-72.1 16.7-21.3 40.1-36.8 66.1-43.7l37.9-9.9 13.9-36.6c8.6-22.8 20.6-44.1 35.7-63.4a245.6 245.6 0 0 1 52.4-49.9c41.1-28.9 89.5-44.2 140-44.2s98.9 15.3 140 44.2c19.9 14 37.5 30.8 52.4 49.9 15.1 19.3 27.1 40.7 35.7 63.4l13.8 36.5 37.8 10C846.1 454.5 884 503.8 884 560c0 33.1-12.9 64.3-36.3 87.7a123.07 123.07 0 0 1-87.6 36.3H720c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h40.1C870.5 760 960 670.5 960 560c0-92.7-63.1-170.7-148.6-193.3z")),t.ClusterOutline=l("cluster",i,s(a,"M888 680h-54V540H546v-92h238c8.8 0 16-7.2 16-16V168c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16v264c0 8.8 7.2 16 16 16h238v92H190v140h-54c-4.4 0-8 3.6-8 8v176c0 4.4 3.6 8 8 8h176c4.4 0 8-3.6 8-8V688c0-4.4-3.6-8-8-8h-54v-72h220v72h-54c-4.4 0-8 3.6-8 8v176c0 4.4 3.6 8 8 8h176c4.4 0 8-3.6 8-8V688c0-4.4-3.6-8-8-8h-54v-72h220v72h-54c-4.4 0-8 3.6-8 8v176c0 4.4 3.6 8 8 8h176c4.4 0 8-3.6 8-8V688c0-4.4-3.6-8-8-8zM256 805.3c0 1.5-1.2 2.7-2.7 2.7h-58.7c-1.5 0-2.7-1.2-2.7-2.7v-58.7c0-1.5 1.2-2.7 2.7-2.7h58.7c1.5 0 2.7 1.2 2.7 2.7v58.7zm288 0c0 1.5-1.2 2.7-2.7 2.7h-58.7c-1.5 0-2.7-1.2-2.7-2.7v-58.7c0-1.5 1.2-2.7 2.7-2.7h58.7c1.5 0 2.7 1.2 2.7 2.7v58.7zM288 384V216h448v168H288zm544 421.3c0 1.5-1.2 2.7-2.7 2.7h-58.7c-1.5 0-2.7-1.2-2.7-2.7v-58.7c0-1.5 1.2-2.7 2.7-2.7h58.7c1.5 0 2.7 1.2 2.7 2.7v58.7zM360 300a40 40 0 1 0 80 0 40 40 0 1 0-80 0z")),t.CodepenOutline=l("codepen",i,s(a,"M911.7 385.3l-.3-1.5c-.2-1-.3-1.9-.6-2.9-.2-.6-.4-1.1-.5-1.7-.3-.8-.5-1.7-.9-2.5-.2-.6-.5-1.1-.8-1.7-.4-.8-.8-1.5-1.2-2.3-.3-.5-.6-1.1-1-1.6-.8-1.2-1.7-2.4-2.6-3.6-.5-.6-1.1-1.3-1.7-1.9-.4-.5-.9-.9-1.4-1.3-.6-.6-1.3-1.1-1.9-1.6-.5-.4-1-.8-1.6-1.2-.2-.1-.4-.3-.6-.4L531.1 117.8a34.3 34.3 0 0 0-38.1 0L127.3 361.3c-.2.1-.4.3-.6.4-.5.4-1 .8-1.6 1.2-.7.5-1.3 1.1-1.9 1.6-.5.4-.9.9-1.4 1.3-.6.6-1.2 1.2-1.7 1.9-1 1.1-1.8 2.3-2.6 3.6-.3.5-.7 1-1 1.6-.4.7-.8 1.5-1.2 2.3-.3.5-.5 1.1-.8 1.7-.3.8-.6 1.7-.9 2.5-.2.6-.4 1.1-.5 1.7-.2.9-.4 1.9-.6 2.9l-.3 1.5c-.2 1.5-.3 3-.3 4.5v243.5c0 1.5.1 3 .3 4.5l.3 1.5.6 2.9c.2.6.3 1.1.5 1.7.3.9.6 1.7.9 2.5.2.6.5 1.1.8 1.7.4.8.7 1.5 1.2 2.3.3.5.6 1.1 1 1.6.5.7.9 1.4 1.5 2.1l1.2 1.5c.5.6 1.1 1.3 1.7 1.9.4.5.9.9 1.4 1.3.6.6 1.3 1.1 1.9 1.6.5.4 1 .8 1.6 1.2.2.1.4.3.6.4L493 905.7c5.6 3.8 12.3 5.8 19.1 5.8 6.6 0 13.3-1.9 19.1-5.8l365.6-243.5c.2-.1.4-.3.6-.4.5-.4 1-.8 1.6-1.2.7-.5 1.3-1.1 1.9-1.6.5-.4.9-.9 1.4-1.3.6-.6 1.2-1.2 1.7-1.9l1.2-1.5 1.5-2.1c.3-.5.7-1 1-1.6.4-.8.8-1.5 1.2-2.3.3-.5.5-1.1.8-1.7.3-.8.6-1.7.9-2.5.2-.5.4-1.1.5-1.7.3-.9.4-1.9.6-2.9l.3-1.5c.2-1.5.3-3 .3-4.5V389.8c-.3-1.5-.4-3-.6-4.5zM546.4 210.5l269.4 179.4-120.3 80.4-149-99.6V210.5zm-68.8 0v160.2l-149 99.6-120.3-80.4 269.3-179.4zM180.7 454.1l86 57.5-86 57.5v-115zm296.9 358.5L208.3 633.2l120.3-80.4 149 99.6v160.2zM512 592.8l-121.6-81.2L512 430.3l121.6 81.2L512 592.8zm34.4 219.8V652.4l149-99.6 120.3 80.4-269.3 179.4zM843.3 569l-86-57.5 86-57.5v115z")),t.CodeSandboxOutline=l("code-sandbox",i,s(a,"M709.6 210l.4-.2h.2L512 96 313.9 209.8h-.2l.7.3L151.5 304v416L512 928l360.5-208V304l-162.9-94zM482.7 843.6L339.6 761V621.4L210 547.8V372.9l272.7 157.3v313.4zM238.2 321.5l134.7-77.8 138.9 79.7 139.1-79.9 135.2 78-273.9 158-274-158zM814 548.3l-128.8 73.1v139.1l-143.9 83V530.4L814 373.1v175.2z")),t.ColumHeightOutline=l("colum-height",i,s(a,"M840 836H184c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h656c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zm0-724H184c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h656c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zM610.8 378c6 0 9.4-7 5.7-11.7L515.7 238.7a7.14 7.14 0 0 0-11.3 0L403.6 366.3a7.23 7.23 0 0 0 5.7 11.7H476v268h-62.8c-6 0-9.4 7-5.7 11.7l100.8 127.5c2.9 3.7 8.5 3.7 11.3 0l100.8-127.5c3.7-4.7.4-11.7-5.7-11.7H548V378h62.8z")),t.ColumnWidthOutline=l("column-width",i,s(a,"M180 176h-60c-4.4 0-8 3.6-8 8v656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V184c0-4.4-3.6-8-8-8zm724 0h-60c-4.4 0-8 3.6-8 8v656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V184c0-4.4-3.6-8-8-8zM785.3 504.3L657.7 403.6a7.23 7.23 0 0 0-11.7 5.7V476H378v-62.8c0-6-7-9.4-11.7-5.7L238.7 508.3a7.14 7.14 0 0 0 0 11.3l127.5 100.8c4.7 3.7 11.7.4 11.7-5.7V548h268v62.8c0 6 7 9.4 11.7 5.7l127.5-100.8c3.8-2.9 3.8-8.5.2-11.4z")),t.ColumnHeightOutline=l("column-height",i,s(a,"M840 836H184c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h656c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zm0-724H184c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h656c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zM610.8 378c6 0 9.4-7 5.7-11.7L515.7 238.7a7.14 7.14 0 0 0-11.3 0L403.6 366.3a7.23 7.23 0 0 0 5.7 11.7H476v268h-62.8c-6 0-9.4 7-5.7 11.7l100.8 127.5c2.9 3.7 8.5 3.7 11.3 0l100.8-127.5c3.7-4.7.4-11.7-5.7-11.7H548V378h62.8z")),t.CoffeeOutline=l("coffee",i,s(r,"M275 281c19.9 0 36-16.1 36-36V36c0-19.9-16.1-36-36-36s-36 16.1-36 36v209c0 19.9 16.1 36 36 36zm613 144H768c0-39.8-32.2-72-72-72H200c-39.8 0-72 32.2-72 72v248c0 3.4.2 6.7.7 9.9-.5 7-.7 14-.7 21.1 0 176.7 143.3 320 320 320 160.1 0 292.7-117.5 316.3-271H888c39.8 0 72-32.2 72-72V497c0-39.8-32.2-72-72-72zM696 681h-1.1c.7 7.6 1.1 15.2 1.1 23 0 137-111 248-248 248S200 841 200 704c0-7.8.4-15.4 1.1-23H200V425h496v256zm192-8H776V497h112v176zM613 281c19.9 0 36-16.1 36-36V36c0-19.9-16.1-36-36-36s-36 16.1-36 36v209c0 19.9 16.1 36 36 36zm-170 0c19.9 0 36-16.1 36-36V36c0-19.9-16.1-36-36-36s-36 16.1-36 36v209c0 19.9 16.1 36 36 36z")),t.CopyrightOutline=l("copyright",i,s(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm5.6-532.7c53 0 89 33.8 93 83.4.3 4.2 3.8 7.4 8 7.4h56.7c2.6 0 4.7-2.1 4.7-4.7 0-86.7-68.4-147.4-162.7-147.4C407.4 290 344 364.2 344 486.8v52.3C344 660.8 407.4 734 517.3 734c94 0 162.7-58.8 162.7-141.4 0-2.6-2.1-4.7-4.7-4.7h-56.8c-4.2 0-7.6 3.2-8 7.3-4.2 46.1-40.1 77.8-93 77.8-65.3 0-102.1-47.9-102.1-133.6v-52.6c.1-87 37-135.5 102.2-135.5z")),t.DashOutline=l("dash",i,s(a,"M112 476h160v72H112zm320 0h160v72H432zm320 0h160v72H752z")),t.DeploymentUnitOutline=l("deployment-unit",i,s(a,"M888.3 693.2c-42.5-24.6-94.3-18-129.2 12.8l-53-30.7V523.6c0-15.7-8.4-30.3-22-38.1l-136-78.3v-67.1c44.2-15 76-56.8 76-106.1 0-61.9-50.1-112-112-112s-112 50.1-112 112c0 49.3 31.8 91.1 76 106.1v67.1l-136 78.3c-13.6 7.8-22 22.4-22 38.1v151.6l-53 30.7c-34.9-30.8-86.8-37.4-129.2-12.8-53.5 31-71.7 99.4-41 152.9 30.8 53.5 98.9 71.9 152.2 41 42.5-24.6 62.7-73 53.6-118.8l48.7-28.3 140.6 81c6.8 3.9 14.4 5.9 22 5.9s15.2-2 22-5.9L674.5 740l48.7 28.3c-9.1 45.7 11.2 94.2 53.6 118.8 53.3 30.9 121.5 12.6 152.2-41 30.8-53.6 12.6-122-40.7-152.9zm-673 138.4a47.6 47.6 0 0 1-65.2-17.6c-13.2-22.9-5.4-52.3 17.5-65.5a47.6 47.6 0 0 1 65.2 17.6c13.2 22.9 5.4 52.3-17.5 65.5zM522 463.8zM464 234a48.01 48.01 0 0 1 96 0 48.01 48.01 0 0 1-96 0zm170 446.2l-122 70.3-122-70.3V539.8l122-70.3 122 70.3v140.4zm239.9 133.9c-13.2 22.9-42.4 30.8-65.2 17.6-22.8-13.2-30.7-42.6-17.5-65.5s42.4-30.8 65.2-17.6c22.9 13.2 30.7 42.5 17.5 65.5z")),t.DesktopOutline=l("desktop",i,s(a,"M928 140H96c-17.7 0-32 14.3-32 32v496c0 17.7 14.3 32 32 32h380v112H304c-8.8 0-16 7.2-16 16v48c0 4.4 3.6 8 8 8h432c4.4 0 8-3.6 8-8v-48c0-8.8-7.2-16-16-16H548V700h380c17.7 0 32-14.3 32-32V172c0-17.7-14.3-32-32-32zm-40 488H136V212h752v416z")),t.DingdingOutline=l("dingding",i,s(a,"M573.7 252.5C422.5 197.4 201.3 96.7 201.3 96.7c-15.7-4.1-17.9 11.1-17.9 11.1-5 61.1 33.6 160.5 53.6 182.8 19.9 22.3 319.1 113.7 319.1 113.7S326 357.9 270.5 341.9c-55.6-16-37.9 17.8-37.9 17.8 11.4 61.7 64.9 131.8 107.2 138.4 42.2 6.6 220.1 4 220.1 4s-35.5 4.1-93.2 11.9c-42.7 5.8-97 12.5-111.1 17.8-33.1 12.5 24 62.6 24 62.6 84.7 76.8 129.7 50.5 129.7 50.5 33.3-10.7 61.4-18.5 85.2-24.2L565 743.1h84.6L603 928l205.3-271.9H700.8l22.3-38.7c.3.5.4.8.4.8S799.8 496.1 829 433.8l.6-1h-.1c5-10.8 8.6-19.7 10-25.8 17-71.3-114.5-99.4-265.8-154.5z")),t.DisconnectOutline=l("disconnect",i,s(a,"M832.6 191.4c-84.6-84.6-221.5-84.6-306 0l-96.9 96.9 51 51 96.9-96.9c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204l-96.9 96.9 51.1 51.1 96.9-96.9c84.4-84.6 84.4-221.5-.1-306.1zM446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l96.9-96.9-51.1-51.1-96.9 96.9c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l96.9-96.9-51-51-96.8 97zM260.3 209.4a8.03 8.03 0 0 0-11.3 0L209.4 249a8.03 8.03 0 0 0 0 11.3l554.4 554.4c3.1 3.1 8.2 3.1 11.3 0l39.6-39.6c3.1-3.1 3.1-8.2 0-11.3L260.3 209.4z")),t.DollarOutline=l("dollar",i,s(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm47.7-395.2l-25.4-5.9V348.6c38 5.2 61.5 29 65.5 58.2.5 4 3.9 6.9 7.9 6.9h44.9c4.7 0 8.4-4.1 8-8.8-6.1-62.3-57.4-102.3-125.9-109.2V263c0-4.4-3.6-8-8-8h-28.1c-4.4 0-8 3.6-8 8v33c-70.8 6.9-126.2 46-126.2 119 0 67.6 49.8 100.2 102.1 112.7l24.7 6.3v142.7c-44.2-5.9-69-29.5-74.1-61.3-.6-3.8-4-6.6-7.9-6.6H363c-4.7 0-8.4 4-8 8.7 4.5 55 46.2 105.6 135.2 112.1V761c0 4.4 3.6 8 8 8h28.4c4.4 0 8-3.6 8-8.1l-.2-31.7c78.3-6.9 134.3-48.8 134.3-124-.1-69.4-44.2-100.4-109-116.4zm-68.6-16.2c-5.6-1.6-10.3-3.1-15-5-33.8-12.2-49.5-31.9-49.5-57.3 0-36.3 27.5-57 64.5-61.7v124zM534.3 677V543.3c3.1.9 5.9 1.6 8.8 2.2 47.3 14.4 63.2 34.4 63.2 65.1 0 39.1-29.4 62.6-72 66.4z")),t.DoubleRightOutline=l("double-right",i,s(a,"M533.2 492.3L277.9 166.1c-3-3.9-7.7-6.1-12.6-6.1H188c-6.7 0-10.4 7.7-6.3 12.9L447.1 512 181.7 851.1A7.98 7.98 0 0 0 188 864h77.3c4.9 0 9.6-2.3 12.6-6.1l255.3-326.1c9.1-11.7 9.1-27.9 0-39.5zm304 0L581.9 166.1c-3-3.9-7.7-6.1-12.6-6.1H492c-6.7 0-10.4 7.7-6.3 12.9L751.1 512 485.7 851.1A7.98 7.98 0 0 0 492 864h77.3c4.9 0 9.6-2.3 12.6-6.1l255.3-326.1c9.1-11.7 9.1-27.9 0-39.5z")),t.DotChartOutline=l("dot-chart",i,s(a,"M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM288 604a64 64 0 1 0 128 0 64 64 0 1 0-128 0zm118-224a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm158 228a96 96 0 1 0 192 0 96 96 0 1 0-192 0zm148-314a56 56 0 1 0 112 0 56 56 0 1 0-112 0z")),t.DoubleLeftOutline=l("double-left",i,s(a,"M272.9 512l265.4-339.1c4.1-5.2.4-12.9-6.3-12.9h-77.3c-4.9 0-9.6 2.3-12.6 6.1L186.8 492.3a31.99 31.99 0 0 0 0 39.5l255.3 326.1c3 3.9 7.7 6.1 12.6 6.1H532c6.7 0 10.4-7.7 6.3-12.9L272.9 512zm304 0l265.4-339.1c4.1-5.2.4-12.9-6.3-12.9h-77.3c-4.9 0-9.6 2.3-12.6 6.1L490.8 492.3a31.99 31.99 0 0 0 0 39.5l255.3 326.1c3 3.9 7.7 6.1 12.6 6.1H836c6.7 0 10.4-7.7 6.3-12.9L576.9 512z")),t.DownloadOutline=l("download",i,s(a,"M505.7 661a8 8 0 0 0 12.6 0l112-141.7c4.1-5.2.4-12.9-6.3-12.9h-74.1V168c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v338.3H400c-6.7 0-10.4 7.7-6.3 12.9l112 141.8zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z")),t.DribbbleOutline=l("dribbble",i,s(a,"M512 96C282.6 96 96 282.6 96 512s186.6 416 416 416 416-186.6 416-416S741.4 96 512 96zm275.1 191.8c49.5 60.5 79.5 137.5 80.2 221.4-11.7-2.5-129.2-26.3-247.4-11.4-2.5-6.1-5-12.2-7.6-18.3-7.4-17.3-15.3-34.6-23.6-51.5C720 374.3 779.6 298 787.1 287.8zM512 157.2c90.3 0 172.8 33.9 235.5 89.5-6.4 9.1-59.9 81-186.2 128.4-58.2-107-122.7-194.8-132.6-208 27.3-6.6 55.2-9.9 83.3-9.9zM360.9 191c9.4 12.8 72.9 100.9 131.7 205.5C326.4 440.6 180 440 164.1 439.8c23.1-110.3 97.4-201.9 196.8-248.8zM156.7 512.5c0-3.6.1-7.3.2-10.9 15.5.3 187.7 2.5 365.2-50.6 10.2 19.9 19.9 40.1 28.8 60.3-4.7 1.3-9.4 2.7-14 4.2C353.6 574.9 256.1 736.4 248 750.1c-56.7-63-91.3-146.3-91.3-237.6zM512 867.8c-82.2 0-157.9-28-218.1-75 6.4-13.1 78.3-152 278.7-221.9l2.3-.8c49.9 129.6 70.5 238.3 75.8 269.5A350.46 350.46 0 0 1 512 867.8zm198.5-60.7c-3.6-21.6-22.5-125.6-69-253.3C752.9 536 850.7 565.2 862.8 569c-15.8 98.8-72.5 184.2-152.3 238.1z")),t.DropboxOutline=l("dropbox",i,s(a,"M64 556.9l264.2 173.5L512.5 577 246.8 412.7zm896-290.3zm0 0L696.8 95 512.5 248.5l265.2 164.2L512.5 577l184.3 153.4L960 558.8 777.7 412.7zM513 609.8L328.2 763.3l-79.4-51.5v57.8L513 928l263.7-158.4v-57.8l-78.9 51.5zM328.2 95L64 265.1l182.8 147.6 265.7-164.2zM64 556.9z")),t.EllipsisOutline=l("ellipsis",i,s(a,"M176 511a56 56 0 1 0 112 0 56 56 0 1 0-112 0zm280 0a56 56 0 1 0 112 0 56 56 0 1 0-112 0zm280 0a56 56 0 1 0 112 0 56 56 0 1 0-112 0z")),t.EnterOutline=l("enter",i,s(a,"M864 170h-60c-4.4 0-8 3.6-8 8v518H310v-73c0-6.7-7.8-10.5-13-6.3l-141.9 112a8 8 0 0 0 0 12.6l141.9 112c5.3 4.2 13 .4 13-6.3v-75h498c35.3 0 64-28.7 64-64V178c0-4.4-3.6-8-8-8z")),t.EuroOutline=l("euro",i,s(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm117.7-588.6c-15.9-3.5-34.4-5.4-55.3-5.4-106.7 0-178.9 55.7-198.6 149.9H344c-4.4 0-8 3.6-8 8v27.2c0 4.4 3.6 8 8 8h26.4c-.3 4.1-.3 8.4-.3 12.8v36.9H344c-4.4 0-8 3.6-8 8V568c0 4.4 3.6 8 8 8h30.2c17.2 99.2 90.4 158 200.2 158 20.9 0 39.4-1.7 55.3-5.1 3.7-.8 6.4-4 6.4-7.8v-42.8c0-5-4.6-8.8-9.5-7.8-14.7 2.8-31.9 4.1-51.8 4.1-68.5 0-114.5-36.6-129.8-98.6h130.6c4.4 0 8-3.6 8-8v-27.2c0-4.4-3.6-8-8-8H439.2v-36c0-4.7 0-9.4.3-13.8h135.9c4.4 0 8-3.6 8-8v-27.2c0-4.4-3.6-8-8-8H447.1c17.2-56.9 62.3-90.4 127.6-90.4 19.9 0 37.1 1.5 51.7 4.4a8 8 0 0 0 9.6-7.8v-42.8c0-3.8-2.6-7-6.3-7.8z")),t.ExceptionOutline=l("exception",i,s(a,"M688 312v-48c0-4.4-3.6-8-8-8H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8zm-392 88c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H296zm376 116c-119.3 0-216 96.7-216 216s96.7 216 216 216 216-96.7 216-216-96.7-216-216-216zm107.5 323.5C750.8 868.2 712.6 884 672 884s-78.8-15.8-107.5-44.5C535.8 810.8 520 772.6 520 732s15.8-78.8 44.5-107.5C593.2 595.8 631.4 580 672 580s78.8 15.8 107.5 44.5C808.2 653.2 824 691.4 824 732s-15.8 78.8-44.5 107.5zM640 812a32 32 0 1 0 64 0 32 32 0 1 0-64 0zm12-64h40c4.4 0 8-3.6 8-8V628c0-4.4-3.6-8-8-8h-40c-4.4 0-8 3.6-8 8v112c0 4.4 3.6 8 8 8zM440 852H208V148h560v344c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h272c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.ExclamationOutline=l("exclamation",i,s(a,"M448 804a64 64 0 1 0 128 0 64 64 0 1 0-128 0zm32-168h64c4.4 0 8-3.6 8-8V164c0-4.4-3.6-8-8-8h-64c-4.4 0-8 3.6-8 8v464c0 4.4 3.6 8 8 8z")),t.ExportOutline=l("export",i,s(a,"M888.3 757.4h-53.8c-4.2 0-7.7 3.5-7.7 7.7v61.8H197.1V197.1h629.8v61.8c0 4.2 3.5 7.7 7.7 7.7h53.8c4.2 0 7.7-3.4 7.7-7.7V158.7c0-17-13.7-30.7-30.7-30.7H158.7c-17 0-30.7 13.7-30.7 30.7v706.6c0 17 13.7 30.7 30.7 30.7h706.6c17 0 30.7-13.7 30.7-30.7V765.1c0-4.3-3.5-7.7-7.7-7.7zm18.6-251.7L765 393.7c-5.3-4.2-13-.4-13 6.3v76H438c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h314v76c0 6.7 7.8 10.5 13 6.3l141.9-112a8 8 0 0 0 0-12.6z")),t.FallOutline=l("fall",i,s(a,"M925.9 804l-24-199.2c-.8-6.6-8.9-9.4-13.6-4.7L829 659.5 557.7 388.3c-6.3-6.2-16.4-6.2-22.6 0L433.3 490 156.6 213.3a8.03 8.03 0 0 0-11.3 0l-45 45.2a8.03 8.03 0 0 0 0 11.3L422 591.7c6.2 6.3 16.4 6.3 22.6 0L546.4 490l226.1 226-59.3 59.3a8.01 8.01 0 0 0 4.7 13.6l199.2 24c5.1.7 9.5-3.7 8.8-8.9z")),t.FileDoneOutline=l("file-done",i,s(a,"M688 312v-48c0-4.4-3.6-8-8-8H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8zm-392 88c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H296zm376 116c-119.3 0-216 96.7-216 216s96.7 216 216 216 216-96.7 216-216-96.7-216-216-216zm107.5 323.5C750.8 868.2 712.6 884 672 884s-78.8-15.8-107.5-44.5C535.8 810.8 520 772.6 520 732s15.8-78.8 44.5-107.5C593.2 595.8 631.4 580 672 580s78.8 15.8 107.5 44.5C808.2 653.2 824 691.4 824 732s-15.8 78.8-44.5 107.5zM761 656h-44.3c-2.6 0-5 1.2-6.5 3.3l-63.5 87.8-23.1-31.9a7.92 7.92 0 0 0-6.5-3.3H573c-6.5 0-10.3 7.4-6.5 12.7l73.8 102.1c3.2 4.4 9.7 4.4 12.9 0l114.2-158c3.9-5.3.1-12.7-6.4-12.7zM440 852H208V148h560v344c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h272c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.FileSyncOutline=l("file-sync",i,s(a,"M296 256c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H296zm192 200v-48c0-4.4-3.6-8-8-8H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8zm-48 396H208V148h560v344c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h272c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm104.1-115.6c1.8-34.5 16.2-66.8 40.8-91.4 26.2-26.2 62-41 99.1-41 37.4 0 72.6 14.6 99.1 41 3.2 3.2 6.3 6.6 9.2 10.1L769.2 673a8 8 0 0 0 3 14.1l93.3 22.5c5 1.2 9.8-2.6 9.9-7.7l.6-95.4a8 8 0 0 0-12.9-6.4l-20.3 15.8C805.4 569.6 748.1 540 684 540c-109.9 0-199.6 86.9-204 195.7-.2 4.5 3.5 8.3 8 8.3h48.1c4.3 0 7.8-3.3 8-7.6zM880 744h-48.1c-4.3 0-7.8 3.3-8 7.6-1.8 34.5-16.2 66.8-40.8 91.4-26.2 26.2-62 41-99.1 41-37.4 0-72.6-14.6-99.1-41-3.2-3.2-6.3-6.6-9.2-10.1l23.1-17.9a8 8 0 0 0-3-14.1l-93.3-22.5c-5-1.2-9.8 2.6-9.9 7.7l-.6 95.4a8 8 0 0 0 12.9 6.4l20.3-15.8C562.6 918.4 619.9 948 684 948c109.9 0 199.6-86.9 204-195.7.2-4.5-3.5-8.3-8-8.3z")),t.FileProtectOutline=l("file-protect",i,s(a,"M644.7 669.2a7.92 7.92 0 0 0-6.5-3.3H594c-6.5 0-10.3 7.4-6.5 12.7l73.8 102.1c3.2 4.4 9.7 4.4 12.9 0l114.2-158c3.8-5.3 0-12.7-6.5-12.7h-44.3c-2.6 0-5 1.2-6.5 3.3l-63.5 87.8-22.9-31.9zM688 306v-48c0-4.4-3.6-8-8-8H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8zm-392 88c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H296zm184 458H208V148h560v296c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h312c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm402.6-320.8l-192-66.7c-.9-.3-1.7-.4-2.6-.4s-1.8.1-2.6.4l-192 66.7a7.96 7.96 0 0 0-5.4 7.5v251.1c0 2.5 1.1 4.8 3.1 6.3l192 150.2c1.4 1.1 3.2 1.7 4.9 1.7s3.5-.6 4.9-1.7l192-150.2c1.9-1.5 3.1-3.8 3.1-6.3V538.7c0-3.4-2.2-6.4-5.4-7.5zM826 763.7L688 871.6 550 763.7V577l138-48 138 48v186.7z")),t.FileSearchOutline=l("file-search",i,s(a,"M688 312v-48c0-4.4-3.6-8-8-8H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8zm-392 88c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H296zm144 452H208V148h560v344c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h272c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm445.7 51.5l-93.3-93.3C814.7 780.7 828 743.9 828 704c0-97.2-78.8-176-176-176s-176 78.8-176 176 78.8 176 176 176c35.8 0 69-10.7 96.8-29l94.7 94.7c1.6 1.6 3.6 2.3 5.6 2.3s4.1-.8 5.6-2.3l31-31a7.9 7.9 0 0 0 0-11.2zM652 816c-61.9 0-112-50.1-112-112s50.1-112 112-112 112 50.1 112 112-50.1 112-112 112z")),t.FileJpgOutline=l("file-jpg",i,s(r,"M874.6 301.8L596.8 21.3c-4.5-4.5-9.4-8.3-14.7-11.5-1.4-.8-2.8-1.6-4.3-2.3-.9-.5-1.9-.9-2.8-1.3-9-4-18.9-6.2-29-6.2H201c-39.8 0-73 32.2-73 72v880c0 39.8 33.2 72 73 72h623c39.8 0 71-32.2 71-72V352.5c0-19-7-37.2-20.4-50.7zM583 110.4L783.8 312H583V110.4zM823 952H200V72h311v240c0 39.8 33.2 72 73 72h239v568zM350 696.5c0 24.2-7.5 31.4-21.9 31.4-9 0-18.4-5.8-24.8-18.5L272.9 732c13.4 22.9 32.3 34.2 61.3 34.2 41.6 0 60.8-29.9 60.8-66.2V577h-45v119.5zM501.3 577H437v186h44v-62h21.6c39.1 0 73.1-19.6 73.1-63.6 0-45.8-33.5-60.4-74.4-60.4zm-.8 89H481v-53h18.2c21.5 0 33.4 6.2 33.4 24.9 0 18.1-10.5 28.1-32.1 28.1zm182.5-9v36h30v30.1c-4 2.9-11 4.7-17.7 4.7-34.3 0-50.7-21.4-50.7-58.2 0-36.1 19.7-57.4 47.1-57.4 15.3 0 25 6.2 34 14.4l23.7-28.3c-12.7-12.8-32.1-24.2-59.2-24.2-49.6 0-91.1 35.3-91.1 97 0 62.7 40 95.1 91.5 95.1 25.9 0 49.2-10.2 61.5-22.6V657H683z")),t.FontColorsOutline=l("font-colors",i,s(a,"M904 816H120c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-80c0-4.4-3.6-8-8-8zm-650.3-80h85c4.2 0 8-2.7 9.3-6.8l53.7-166h219.2l53.2 166c1.3 4 5 6.8 9.3 6.8h89.1c1.1 0 2.2-.2 3.2-.5a9.7 9.7 0 0 0 6-12.4L573.6 118.6a9.9 9.9 0 0 0-9.2-6.6H462.1c-4.2 0-7.9 2.6-9.2 6.6L244.5 723.1c-.4 1-.5 2.1-.5 3.2-.1 5.3 4.3 9.7 9.7 9.7zm255.9-516.1h4.1l83.8 263.8H424.9l84.7-263.8z")),t.FontSizeOutline=l("font-size",i,s(a,"M920 416H616c-4.4 0-8 3.6-8 8v112c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-56h60v320h-46c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h164c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8h-46V480h60v56c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V424c0-4.4-3.6-8-8-8zM656 296V168c0-4.4-3.6-8-8-8H104c-4.4 0-8 3.6-8 8v128c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-64h168v560h-92c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h264c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-92V232h168v64c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8z")),t.ForkOutline=l("fork",i,s(a,"M752 100c-61.8 0-112 50.2-112 112 0 47.7 29.9 88.5 72 104.6v27.6L512 601.4 312 344.2v-27.6c42.1-16.1 72-56.9 72-104.6 0-61.8-50.2-112-112-112s-112 50.2-112 112c0 50.6 33.8 93.5 80 107.3v34.4c0 9.7 3.3 19.3 9.3 27L476 672.3v33.6c-44.2 15-76 56.9-76 106.1 0 61.8 50.2 112 112 112s112-50.2 112-112c0-49.2-31.8-91-76-106.1v-33.6l226.7-291.6c6-7.7 9.3-17.3 9.3-27v-34.4c46.2-13.8 80-56.7 80-107.3 0-61.8-50.2-112-112-112zM224 212a48.01 48.01 0 0 1 96 0 48.01 48.01 0 0 1-96 0zm336 600a48.01 48.01 0 0 1-96 0 48.01 48.01 0 0 1 96 0zm192-552a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z")),t.FormOutline=l("form",i,s(a,"M904 512h-56c-4.4 0-8 3.6-8 8v320H184V184h320c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V520c0-4.4-3.6-8-8-8z","M355.9 534.9L354 653.8c-.1 8.9 7.1 16.2 16 16.2h.4l118-2.9c2-.1 4-.9 5.4-2.3l415.9-415c3.1-3.1 3.1-8.2 0-11.3L785.4 114.3c-1.6-1.6-3.6-2.3-5.7-2.3s-4.1.8-5.7 2.3l-415.8 415a8.3 8.3 0 0 0-2.3 5.6zm63.5 23.6L779.7 199l45.2 45.1-360.5 359.7-45.7 1.1.7-46.4z")),t.FullscreenExitOutline=l("fullscreen-exit",i,s(a,"M391 240.9c-.8-6.6-8.9-9.4-13.6-4.7l-43.7 43.7L200 146.3a8.03 8.03 0 0 0-11.3 0l-42.4 42.3a8.03 8.03 0 0 0 0 11.3L280 333.6l-43.9 43.9a8.01 8.01 0 0 0 4.7 13.6L401 410c5.1.6 9.5-3.7 8.9-8.9L391 240.9zm10.1 373.2L240.8 633c-6.6.8-9.4 8.9-4.7 13.6l43.9 43.9L146.3 824a8.03 8.03 0 0 0 0 11.3l42.4 42.3c3.1 3.1 8.2 3.1 11.3 0L333.7 744l43.7 43.7A8.01 8.01 0 0 0 391 783l18.9-160.1c.6-5.1-3.7-9.4-8.8-8.8zm221.8-204.2L783.2 391c6.6-.8 9.4-8.9 4.7-13.6L744 333.6 877.7 200c3.1-3.1 3.1-8.2 0-11.3l-42.4-42.3a8.03 8.03 0 0 0-11.3 0L690.3 279.9l-43.7-43.7a8.01 8.01 0 0 0-13.6 4.7L614.1 401c-.6 5.2 3.7 9.5 8.8 8.9zM744 690.4l43.9-43.9a8.01 8.01 0 0 0-4.7-13.6L623 614c-5.1-.6-9.5 3.7-8.9 8.9L633 783.1c.8 6.6 8.9 9.4 13.6 4.7l43.7-43.7L824 877.7c3.1 3.1 8.2 3.1 11.3 0l42.4-42.3c3.1-3.1 3.1-8.2 0-11.3L744 690.4z")),t.FullscreenOutline=l("fullscreen",i,s(a,"M290 236.4l43.9-43.9a8.01 8.01 0 0 0-4.7-13.6L169 160c-5.1-.6-9.5 3.7-8.9 8.9L179 329.1c.8 6.6 8.9 9.4 13.6 4.7l43.7-43.7L370 423.7c3.1 3.1 8.2 3.1 11.3 0l42.4-42.3c3.1-3.1 3.1-8.2 0-11.3L290 236.4zm352.7 187.3c3.1 3.1 8.2 3.1 11.3 0l133.7-133.6 43.7 43.7a8.01 8.01 0 0 0 13.6-4.7L863.9 169c.6-5.1-3.7-9.5-8.9-8.9L694.8 179c-6.6.8-9.4 8.9-4.7 13.6l43.9 43.9L600.3 370a8.03 8.03 0 0 0 0 11.3l42.4 42.4zM845 694.9c-.8-6.6-8.9-9.4-13.6-4.7l-43.7 43.7L654 600.3a8.03 8.03 0 0 0-11.3 0l-42.4 42.3a8.03 8.03 0 0 0 0 11.3L734 787.6l-43.9 43.9a8.01 8.01 0 0 0 4.7 13.6L855 864c5.1.6 9.5-3.7 8.9-8.9L845 694.9zm-463.7-94.6a8.03 8.03 0 0 0-11.3 0L236.3 733.9l-43.7-43.7a8.01 8.01 0 0 0-13.6 4.7L160.1 855c-.6 5.1 3.7 9.5 8.9 8.9L329.2 845c6.6-.8 9.4-8.9 4.7-13.6L290 787.6 423.7 654c3.1-3.1 3.1-8.2 0-11.3l-42.4-42.4z")),t.GatewayOutline=l("gateway",i,s(a,"M928 392c8.8 0 16-7.2 16-16V192c0-8.8-7.2-16-16-16H744c-8.8 0-16 7.2-16 16v56H296v-56c0-8.8-7.2-16-16-16H96c-8.8 0-16 7.2-16 16v184c0 8.8 7.2 16 16 16h56v240H96c-8.8 0-16 7.2-16 16v184c0 8.8 7.2 16 16 16h184c8.8 0 16-7.2 16-16v-56h432v56c0 8.8 7.2 16 16 16h184c8.8 0 16-7.2 16-16V648c0-8.8-7.2-16-16-16h-56V392h56zM792 240h88v88h-88v-88zm-648 88v-88h88v88h-88zm88 456h-88v-88h88v88zm648-88v88h-88v-88h88zm-80-64h-56c-8.8 0-16 7.2-16 16v56H296v-56c0-8.8-7.2-16-16-16h-56V392h56c8.8 0 16-7.2 16-16v-56h432v56c0 8.8 7.2 16 16 16h56v240z")),t.DownOutline=l("down",i,s(a,"M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z")),t.DragOutline=l("drag",i,s(a,"M909.3 506.3L781.7 405.6a7.23 7.23 0 0 0-11.7 5.7V476H548V254h64.8c6 0 9.4-7 5.7-11.7L517.7 114.7a7.14 7.14 0 0 0-11.3 0L405.6 242.3a7.23 7.23 0 0 0 5.7 11.7H476v222H254v-64.8c0-6-7-9.4-11.7-5.7L114.7 506.3a7.14 7.14 0 0 0 0 11.3l127.5 100.8c4.7 3.7 11.7.4 11.7-5.7V548h222v222h-64.8c-6 0-9.4 7-5.7 11.7l100.8 127.5c2.9 3.7 8.5 3.7 11.3 0l100.8-127.5c3.7-4.7.4-11.7-5.7-11.7H548V548h222v64.8c0 6 7 9.4 11.7 5.7l127.5-100.8a7.3 7.3 0 0 0 .1-11.4z")),t.GlobalOutline=l("global",i,s(a,"M854.4 800.9c.2-.3.5-.6.7-.9C920.6 722.1 960 621.7 960 512s-39.4-210.1-104.8-288c-.2-.3-.5-.5-.7-.8-1.1-1.3-2.1-2.5-3.2-3.7-.4-.5-.8-.9-1.2-1.4l-4.1-4.7-.1-.1c-1.5-1.7-3.1-3.4-4.6-5.1l-.1-.1c-3.2-3.4-6.4-6.8-9.7-10.1l-.1-.1-4.8-4.8-.3-.3c-1.5-1.5-3-2.9-4.5-4.3-.5-.5-1-1-1.6-1.5-1-1-2-1.9-3-2.8-.3-.3-.7-.6-1-1C736.4 109.2 629.5 64 512 64s-224.4 45.2-304.3 119.2c-.3.3-.7.6-1 1-1 .9-2 1.9-3 2.9-.5.5-1 1-1.6 1.5-1.5 1.4-3 2.9-4.5 4.3l-.3.3-4.8 4.8-.1.1c-3.3 3.3-6.5 6.7-9.7 10.1l-.1.1c-1.6 1.7-3.1 3.4-4.6 5.1l-.1.1c-1.4 1.5-2.8 3.1-4.1 4.7-.4.5-.8.9-1.2 1.4-1.1 1.2-2.1 2.5-3.2 3.7-.2.3-.5.5-.7.8C103.4 301.9 64 402.3 64 512s39.4 210.1 104.8 288c.2.3.5.6.7.9l3.1 3.7c.4.5.8.9 1.2 1.4l4.1 4.7c0 .1.1.1.1.2 1.5 1.7 3 3.4 4.6 5l.1.1c3.2 3.4 6.4 6.8 9.6 10.1l.1.1c1.6 1.6 3.1 3.2 4.7 4.7l.3.3c3.3 3.3 6.7 6.5 10.1 9.6 80.1 74 187 119.2 304.5 119.2s224.4-45.2 304.3-119.2a300 300 0 0 0 10-9.6l.3-.3c1.6-1.6 3.2-3.1 4.7-4.7l.1-.1c3.3-3.3 6.5-6.7 9.6-10.1l.1-.1c1.5-1.7 3.1-3.3 4.6-5 0-.1.1-.1.1-.2 1.4-1.5 2.8-3.1 4.1-4.7.4-.5.8-.9 1.2-1.4a99 99 0 0 0 3.3-3.7zm4.1-142.6c-13.8 32.6-32 62.8-54.2 90.2a444.07 444.07 0 0 0-81.5-55.9c11.6-46.9 18.8-98.4 20.7-152.6H887c-3 40.9-12.6 80.6-28.5 118.3zM887 484H743.5c-1.9-54.2-9.1-105.7-20.7-152.6 29.3-15.6 56.6-34.4 81.5-55.9A373.86 373.86 0 0 1 887 484zM658.3 165.5c39.7 16.8 75.8 40 107.6 69.2a394.72 394.72 0 0 1-59.4 41.8c-15.7-45-35.8-84.1-59.2-115.4 3.7 1.4 7.4 2.9 11 4.4zm-90.6 700.6c-9.2 7.2-18.4 12.7-27.7 16.4V697a389.1 389.1 0 0 1 115.7 26.2c-8.3 24.6-17.9 47.3-29 67.8-17.4 32.4-37.8 58.3-59 75.1zm59-633.1c11 20.6 20.7 43.3 29 67.8A389.1 389.1 0 0 1 540 327V141.6c9.2 3.7 18.5 9.1 27.7 16.4 21.2 16.7 41.6 42.6 59 75zM540 640.9V540h147.5c-1.6 44.2-7.1 87.1-16.3 127.8l-.3 1.2A445.02 445.02 0 0 0 540 640.9zm0-156.9V383.1c45.8-2.8 89.8-12.5 130.9-28.1l.3 1.2c9.2 40.7 14.7 83.5 16.3 127.8H540zm-56 56v100.9c-45.8 2.8-89.8 12.5-130.9 28.1l-.3-1.2c-9.2-40.7-14.7-83.5-16.3-127.8H484zm-147.5-56c1.6-44.2 7.1-87.1 16.3-127.8l.3-1.2c41.1 15.6 85 25.3 130.9 28.1V484H336.5zM484 697v185.4c-9.2-3.7-18.5-9.1-27.7-16.4-21.2-16.7-41.7-42.7-59.1-75.1-11-20.6-20.7-43.3-29-67.8 37.2-14.6 75.9-23.3 115.8-26.1zm0-370a389.1 389.1 0 0 1-115.7-26.2c8.3-24.6 17.9-47.3 29-67.8 17.4-32.4 37.8-58.4 59.1-75.1 9.2-7.2 18.4-12.7 27.7-16.4V327zM365.7 165.5c3.7-1.5 7.3-3 11-4.4-23.4 31.3-43.5 70.4-59.2 115.4-21-12-40.9-26-59.4-41.8 31.8-29.2 67.9-52.4 107.6-69.2zM165.5 365.7c13.8-32.6 32-62.8 54.2-90.2 24.9 21.5 52.2 40.3 81.5 55.9-11.6 46.9-18.8 98.4-20.7 152.6H137c3-40.9 12.6-80.6 28.5-118.3zM137 540h143.5c1.9 54.2 9.1 105.7 20.7 152.6a444.07 444.07 0 0 0-81.5 55.9A373.86 373.86 0 0 1 137 540zm228.7 318.5c-39.7-16.8-75.8-40-107.6-69.2 18.5-15.8 38.4-29.7 59.4-41.8 15.7 45 35.8 84.1 59.2 115.4-3.7-1.4-7.4-2.9-11-4.4zm292.6 0c-3.7 1.5-7.3 3-11 4.4 23.4-31.3 43.5-70.4 59.2-115.4 21 12 40.9 26 59.4 41.8a373.81 373.81 0 0 1-107.6 69.2z")),t.GooglePlusOutline=l("google-plus",i,s(a,"M879.5 470.4c-.3-27-.4-54.2-.5-81.3h-80.8c-.3 27-.5 54.1-.7 81.3-27.2.1-54.2.3-81.2.6v80.9c27 .3 54.2.5 81.2.8.3 27 .3 54.1.5 81.1h80.9c.1-27 .3-54.1.5-81.3 27.2-.3 54.2-.4 81.2-.7v-80.9c-26.9-.2-54.1-.2-81.1-.5zm-530 .4c-.1 32.3 0 64.7.1 97 54.2 1.8 108.5 1 162.7 1.8-23.9 120.3-187.4 159.3-273.9 80.7-89-68.9-84.8-220 7.7-284 64.7-51.6 156.6-38.9 221.3 5.8 25.4-23.5 49.2-48.7 72.1-74.7-53.8-42.9-119.8-73.5-190-70.3-146.6-4.9-281.3 123.5-283.7 270.2-9.4 119.9 69.4 237.4 180.6 279.8 110.8 42.7 252.9 13.6 323.7-86 46.7-62.9 56.8-143.9 51.3-220-90.7-.7-181.3-.6-271.9-.3z")),t.GoogleOutline=l("google",i,s(a,"M881 442.4H519.7v148.5h206.4c-8.9 48-35.9 88.6-76.6 115.8-34.4 23-78.3 36.6-129.9 36.6-99.9 0-184.4-67.5-214.6-158.2-7.6-23-12-47.6-12-72.9s4.4-49.9 12-72.9c30.3-90.6 114.8-158.1 214.7-158.1 56.3 0 106.8 19.4 146.6 57.4l110-110.1c-66.5-62-153.2-100-256.6-100-149.9 0-279.6 86-342.7 211.4-26 51.8-40.8 110.4-40.8 172.4S151 632.8 177 684.6C240.1 810 369.8 896 519.7 896c103.6 0 190.4-34.4 253.8-93 72.5-66.8 114.4-165.2 114.4-282.1 0-27.2-2.4-53.3-6.9-78.5z")),t.HeatMapOutline=l("heat-map",i,s(a,"M955.7 856l-416-720c-6.2-10.7-16.9-16-27.7-16s-21.6 5.3-27.7 16l-416 720C56 877.4 71.4 904 96 904h832c24.6 0 40-26.6 27.7-48zm-790.4-23.9L512 231.9 858.7 832H165.3zm319-474.1l-228 394c-12.3 21.3 3.1 48 27.7 48h455.8c24.7 0 40.1-26.7 27.7-48L539.7 358c-6.2-10.7-17-16-27.7-16-10.8 0-21.6 5.3-27.7 16zm214 386H325.7L512 422l186.3 322zm-214-194.1l-57 98.4C415 669.5 430.4 696 455 696h114c24.6 0 39.9-26.5 27.7-47.7l-57-98.4c-6.1-10.6-16.9-15.9-27.7-15.9s-21.5 5.3-27.7 15.9zm57.1 98.4h-58.7l29.4-50.7 29.3 50.7z")),t.GoldOutline=l("gold",i,s(a,"M342 472h342c.4 0 .9 0 1.3-.1 4.4-.7 7.3-4.8 6.6-9.2l-40.2-248c-.6-3.9-4-6.7-7.9-6.7H382.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8zm91.2-196h159.5l20.7 128h-201l20.8-128zm2.5 282.7c-.6-3.9-4-6.7-7.9-6.7H166.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8h342c.4 0 .9 0 1.3-.1 4.4-.7 7.3-4.8 6.6-9.2l-40.2-248zM196.5 748l20.7-128h159.5l20.7 128H196.5zm709.4 58.7l-40.2-248c-.6-3.9-4-6.7-7.9-6.7H596.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8h342c.4 0 .9 0 1.3-.1 4.3-.7 7.3-4.8 6.6-9.2zM626.5 748l20.7-128h159.5l20.7 128H626.5z")),t.HistoryOutline=l("history",i,s(a,"M536.1 273H488c-4.4 0-8 3.6-8 8v275.3c0 2.6 1.2 5 3.3 6.5l165.3 120.7c3.6 2.6 8.6 1.9 11.2-1.7l28.6-39c2.7-3.7 1.9-8.7-1.7-11.2L544.1 528.5V281c0-4.4-3.6-8-8-8zm219.8 75.2l156.8 38.3c5 1.2 9.9-2.6 9.9-7.7l.8-161.5c0-6.7-7.7-10.5-12.9-6.3L752.9 334.1a8 8 0 0 0 3 14.1zm167.7 301.1l-56.7-19.5a8 8 0 0 0-10.1 4.8c-1.9 5.1-3.9 10.1-6 15.1-17.8 42.1-43.3 80-75.9 112.5a353 353 0 0 1-112.5 75.9 352.18 352.18 0 0 1-137.7 27.8c-47.8 0-94.1-9.3-137.7-27.8a353 353 0 0 1-112.5-75.9c-32.5-32.5-58-70.4-75.9-112.5A353.44 353.44 0 0 1 171 512c0-47.8 9.3-94.2 27.8-137.8 17.8-42.1 43.3-80 75.9-112.5a353 353 0 0 1 112.5-75.9C430.6 167.3 477 158 524.8 158s94.1 9.3 137.7 27.8A353 353 0 0 1 775 261.7c10.2 10.3 19.8 21 28.6 32.3l59.8-46.8C784.7 146.6 662.2 81.9 524.6 82 285 82.1 92.6 276.7 95 516.4 97.4 751.9 288.9 942 524.8 942c185.5 0 343.5-117.6 403.7-282.3 1.5-4.2-.7-8.9-4.9-10.4z")),t.IeOutline=l("ie",i,s(a,"M852.6 367.6c16.3-36.9 32.1-90.7 32.1-131.8 0-109.1-119.5-147.6-314.5-57.9-161.4-10.8-316.8 110.5-355.6 279.7 46.3-52.3 117.4-123.4 183-151.7C316.1 378.3 246.7 470 194 565.6c-31.1 56.9-66 148.8-66 217.5 0 147.9 139.3 129.8 270.4 63 47.1 23.1 99.8 23.4 152.5 23.4 145.7 0 276.4-81.4 325.2-219H694.9c-78.8 132.9-295.2 79.5-295.2-71.2h493.2c9.6-65.4-2.5-143.6-40.3-211.7zM224.8 648.3c26.6 76.7 80.6 143.8 150.4 185-133.1 73.4-259.9 43.6-150.4-185zm174-163.3c3-82.7 75.4-142.3 156-142.3 80.1 0 153 59.6 156 142.3h-312zm276.8-281.4c32.1-15.4 72.8-33 108.8-33 47.1 0 81.4 32.6 81.4 80.6 0 30-11.1 73.5-21.9 101.8-39.3-63.5-98.9-122.4-168.3-149.4z")),t.InboxOutline=l("inbox",i,s(r,"M885.2 446.3l-.2-.8-112.2-285.1c-5-16.1-19.9-27.2-36.8-27.2H281.2c-17 0-32.1 11.3-36.9 27.6L139.4 443l-.3.7-.2.8c-1.3 4.9-1.7 9.9-1 14.8-.1 1.6-.2 3.2-.2 4.8V830a60.9 60.9 0 0 0 60.8 60.8h627.2c33.5 0 60.8-27.3 60.9-60.8V464.1c0-1.3 0-2.6-.1-3.7.4-4.9 0-9.6-1.3-14.1zm-295.8-43l-.3 15.7c-.8 44.9-31.8 75.1-77.1 75.1-22.1 0-41.1-7.1-54.8-20.6S436 441.2 435.6 419l-.3-15.7H229.5L309 210h399.2l81.7 193.3H589.4zm-375 76.8h157.3c24.3 57.1 76 90.8 140.4 90.8 33.7 0 65-9.4 90.3-27.2 22.2-15.6 39.5-37.4 50.7-63.6h156.5V814H214.4V480.1z")),t.ImportOutline=l("import",i,s(a,"M888.3 757.4h-53.8c-4.2 0-7.7 3.5-7.7 7.7v61.8H197.1V197.1h629.8v61.8c0 4.2 3.5 7.7 7.7 7.7h53.8c4.2 0 7.7-3.4 7.7-7.7V158.7c0-17-13.7-30.7-30.7-30.7H158.7c-17 0-30.7 13.7-30.7 30.7v706.6c0 17 13.7 30.7 30.7 30.7h706.6c17 0 30.7-13.7 30.7-30.7V765.1c0-4.3-3.5-7.7-7.7-7.7zM902 476H588v-76c0-6.7-7.8-10.5-13-6.3l-141.9 112a8 8 0 0 0 0 12.6l141.9 112c5.3 4.2 13 .4 13-6.3v-76h314c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.InfoOutline=l("info",i,s(a,"M448 224a64 64 0 1 0 128 0 64 64 0 1 0-128 0zm96 168h-64c-4.4 0-8 3.6-8 8v464c0 4.4 3.6 8 8 8h64c4.4 0 8-3.6 8-8V400c0-4.4-3.6-8-8-8z")),t.ItalicOutline=l("italic",i,s(a,"M798 160H366c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h181.2l-156 544H229c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h432c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8H474.4l156-544H798c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8z")),t.IssuesCloseOutline=l("issues-close",i,s(a,"M464 688a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm72-112c4.4 0 8-3.6 8-8V296c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48zm400-188h-59.3c-2.6 0-5 1.2-6.5 3.3L763.7 538.1l-49.9-68.8a7.92 7.92 0 0 0-6.5-3.3H648c-6.5 0-10.3 7.4-6.5 12.7l109.2 150.7a16.1 16.1 0 0 0 26 0l165.8-228.7c3.8-5.3 0-12.7-6.5-12.7zm-44 306h-64.2c-5.5 0-10.6 2.9-13.6 7.5a352.2 352.2 0 0 1-49.8 62.2A355.92 355.92 0 0 1 651.1 840a355 355 0 0 1-138.7 27.9c-48.1 0-94.8-9.4-138.7-27.9a355.92 355.92 0 0 1-113.3-76.3A353.06 353.06 0 0 1 184 650.5c-18.6-43.8-28-90.5-28-138.5s9.4-94.7 28-138.5c17.9-42.4 43.6-80.5 76.4-113.2 32.8-32.7 70.9-58.4 113.3-76.3a355 355 0 0 1 138.7-27.9c48.1 0 94.8 9.4 138.7 27.9 42.4 17.9 80.5 43.6 113.3 76.3 19 19 35.6 39.8 49.8 62.2 2.9 4.7 8.1 7.5 13.6 7.5H892c6 0 9.8-6.3 7.2-11.6C828.8 178.5 684.7 82 517.7 80 278.9 77.2 80.5 272.5 80 511.2 79.5 750.1 273.3 944 512.4 944c169.2 0 315.6-97 386.7-238.4A8 8 0 0 0 892 694z")),t.KeyOutline=l("key",i,s(a,"M608 112c-167.9 0-304 136.1-304 304 0 70.3 23.9 135 63.9 186.5l-41.1 41.1-62.3-62.3a8.15 8.15 0 0 0-11.4 0l-39.8 39.8a8.15 8.15 0 0 0 0 11.4l62.3 62.3-44.9 44.9-62.3-62.3a8.15 8.15 0 0 0-11.4 0l-39.8 39.8a8.15 8.15 0 0 0 0 11.4l62.3 62.3-65.3 65.3a8.03 8.03 0 0 0 0 11.3l42.3 42.3c3.1 3.1 8.2 3.1 11.3 0l253.6-253.6A304.06 304.06 0 0 0 608 720c167.9 0 304-136.1 304-304S775.9 112 608 112zm161.2 465.2C726.2 620.3 668.9 644 608 644c-60.9 0-118.2-23.7-161.2-66.8-43.1-43-66.8-100.3-66.8-161.2 0-60.9 23.7-118.2 66.8-161.2 43-43.1 100.3-66.8 161.2-66.8 60.9 0 118.2 23.7 161.2 66.8 43.1 43 66.8 100.3 66.8 161.2 0 60.9-23.7 118.2-66.8 161.2z")),t.LaptopOutline=l("laptop",i,s(a,"M956.9 845.1L896.4 632V168c0-17.7-14.3-32-32-32h-704c-17.7 0-32 14.3-32 32v464L67.9 845.1C60.4 866 75.8 888 98 888h828.8c22.2 0 37.6-22 30.1-42.9zM200.4 208h624v395h-624V208zm228.3 608l8.1-37h150.3l8.1 37H428.7zm224 0l-19.1-86.7c-.8-3.7-4.1-6.3-7.8-6.3H398.2c-3.8 0-7 2.6-7.8 6.3L371.3 816H151l42.3-149h638.2l42.3 149H652.7z")),t.LeftOutline=l("left",i,s(a,"M724 218.3V141c0-6.7-7.7-10.4-12.9-6.3L260.3 486.8a31.86 31.86 0 0 0 0 50.3l450.8 352.1c5.3 4.1 12.9.4 12.9-6.3v-77.3c0-4.9-2.3-9.6-6.1-12.6l-360-281 360-281.1c3.8-3 6.1-7.7 6.1-12.6z")),t.LinkOutline=l("link",i,s(a,"M574 665.4a8.03 8.03 0 0 0-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8a8.03 8.03 0 0 0-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6a8.03 8.03 0 0 0 0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6a8.03 8.03 0 0 0 0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1zM610.1 372.3a8.03 8.03 0 0 0-11.3 0L372.3 598.7a8.03 8.03 0 0 0 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z")),t.LineChartOutline=l("line-chart",i,s(a,"M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 0 0-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 0 0-11.3 0L266.3 586.7a8.03 8.03 0 0 0 0 11.3l39.5 39.7z")),t.LineHeightOutline=l("line-height",i,s(a,"M648 160H104c-4.4 0-8 3.6-8 8v128c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-64h168v560h-92c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h264c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-92V232h168v64c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V168c0-4.4-3.6-8-8-8zm272.8 546H856V318h64.8c6 0 9.4-7 5.7-11.7L825.7 178.7a7.14 7.14 0 0 0-11.3 0L713.6 306.3a7.23 7.23 0 0 0 5.7 11.7H784v388h-64.8c-6 0-9.4 7-5.7 11.7l100.8 127.5c2.9 3.7 8.5 3.7 11.3 0l100.8-127.5a7.2 7.2 0 0 0-5.6-11.7z")),t.LineOutline=l("line",i,s(a,"M904 476H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.Loading3QuartersOutline=l("loading-3-quarters",i,s(r,"M512 1024c-69.1 0-136.2-13.5-199.3-40.2C251.7 958 197 921 150 874c-47-47-84-101.7-109.8-162.7C13.5 648.2 0 581.1 0 512c0-19.9 16.1-36 36-36s36 16.1 36 36c0 59.4 11.6 117 34.6 171.3 22.2 52.4 53.9 99.5 94.3 139.9 40.4 40.4 87.5 72.2 139.9 94.3C395 940.4 452.6 952 512 952c59.4 0 117-11.6 171.3-34.6 52.4-22.2 99.5-53.9 139.9-94.3 40.4-40.4 72.2-87.5 94.3-139.9C940.4 629 952 571.4 952 512c0-59.4-11.6-117-34.6-171.3a440.45 440.45 0 0 0-94.3-139.9 437.71 437.71 0 0 0-139.9-94.3C629 83.6 571.4 72 512 72c-19.9 0-36-16.1-36-36s16.1-36 36-36c69.1 0 136.2 13.5 199.3 40.2C772.3 66 827 103 874 150c47 47 83.9 101.8 109.7 162.7 26.7 63.1 40.2 130.2 40.2 199.3s-13.5 136.2-40.2 199.3C958 772.3 921 827 874 874c-47 47-101.8 83.9-162.7 109.7-63.1 26.8-130.2 40.3-199.3 40.3z")),t.LoadingOutline=l("loading",i,s(r,"M988 548c-19.9 0-36-16.1-36-36 0-59.4-11.6-117-34.6-171.3a440.45 440.45 0 0 0-94.3-139.9 437.71 437.71 0 0 0-139.9-94.3C629 83.6 571.4 72 512 72c-19.9 0-36-16.1-36-36s16.1-36 36-36c69.1 0 136.2 13.5 199.3 40.3C772.3 66 827 103 874 150c47 47 83.9 101.8 109.7 162.7 26.7 63.1 40.2 130.2 40.2 199.3.1 19.9-16 36-35.9 36z")),t.LoginOutline=l("login",i,s(a,"M521.7 82c-152.5-.4-286.7 78.5-363.4 197.7-3.4 5.3.4 12.3 6.7 12.3h70.3c4.8 0 9.3-2.1 12.3-5.8 7-8.5 14.5-16.7 22.4-24.5 32.6-32.5 70.5-58.1 112.7-75.9 43.6-18.4 90-27.8 137.9-27.8 47.9 0 94.3 9.3 137.9 27.8 42.2 17.8 80.1 43.4 112.7 75.9 32.6 32.5 58.1 70.4 76 112.5C865.7 417.8 875 464.1 875 512c0 47.9-9.4 94.2-27.8 137.8-17.8 42.1-43.4 80-76 112.5s-70.5 58.1-112.7 75.9A352.8 352.8 0 0 1 520.6 866c-47.9 0-94.3-9.4-137.9-27.8A353.84 353.84 0 0 1 270 762.3c-7.9-7.9-15.3-16.1-22.4-24.5-3-3.7-7.6-5.8-12.3-5.8H165c-6.3 0-10.2 7-6.7 12.3C234.9 863.2 368.5 942 520.6 942c236.2 0 428-190.1 430.4-425.6C953.4 277.1 761.3 82.6 521.7 82zM395.02 624v-76h-314c-4.4 0-8-3.6-8-8v-56c0-4.4 3.6-8 8-8h314v-76c0-6.7 7.8-10.5 13-6.3l141.9 112a8 8 0 0 1 0 12.6l-141.9 112c-5.2 4.1-13 .4-13-6.3z")),t.LogoutOutline=l("logout",i,s(a,"M868 732h-70.3c-4.8 0-9.3 2.1-12.3 5.8-7 8.5-14.5 16.7-22.4 24.5a353.84 353.84 0 0 1-112.7 75.9A352.8 352.8 0 0 1 512.4 866c-47.9 0-94.3-9.4-137.9-27.8a353.84 353.84 0 0 1-112.7-75.9 353.28 353.28 0 0 1-76-112.5C167.3 606.2 158 559.9 158 512s9.4-94.2 27.8-137.8c17.8-42.1 43.4-80 76-112.5s70.5-58.1 112.7-75.9c43.6-18.4 90-27.8 137.9-27.8 47.9 0 94.3 9.3 137.9 27.8 42.2 17.8 80.1 43.4 112.7 75.9 7.9 7.9 15.3 16.1 22.4 24.5 3 3.7 7.6 5.8 12.3 5.8H868c6.3 0 10.2-7 6.7-12.3C798 160.5 663.8 81.6 511.3 82 271.7 82.6 79.6 277.1 82 516.4 84.4 751.9 276.2 942 512.4 942c152.1 0 285.7-78.8 362.3-197.7 3.4-5.3-.4-12.3-6.7-12.3zm88.9-226.3L815 393.7c-5.3-4.2-13-.4-13 6.3v76H488c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h314v76c0 6.7 7.8 10.5 13 6.3l141.9-112a8 8 0 0 0 0-12.6z")),t.ManOutline=l("man",i,s(a,"M874 120H622c-3.3 0-6 2.7-6 6v56c0 3.3 2.7 6 6 6h160.4L583.1 387.3c-50-38.5-111-59.3-175.1-59.3-76.9 0-149.3 30-203.6 84.4S120 539.1 120 616s30 149.3 84.4 203.6C258.7 874 331.1 904 408 904s149.3-30 203.6-84.4C666 765.3 696 692.9 696 616c0-64.1-20.8-124.9-59.2-174.9L836 241.9V402c0 3.3 2.7 6 6 6h56c3.3 0 6-2.7 6-6V150c0-16.5-13.5-30-30-30zM408 828c-116.9 0-212-95.1-212-212s95.1-212 212-212 212 95.1 212 212-95.1 212-212 212z")),t.MediumOutline=l("medium",i,s(a,"M834.7 279.8l61.3-58.9V208H683.7L532.4 586.4 360.3 208H137.7v12.9l71.6 86.6c7 6.4 10.6 15.8 9.7 25.2V673c2.2 12.3-1.7 24.8-10.3 33.7L128 805v12.7h228.6v-12.9l-80.6-98a39.99 39.99 0 0 1-11.1-33.7V378.7l200.7 439.2h23.3l172.6-439.2v349.9c0 9.2 0 11.1-6 17.2l-62.1 60.3V819h301.2v-12.9l-59.9-58.9c-5.2-4-7.9-10.7-6.8-17.2V297a18.1 18.1 0 0 1 6.8-17.2z")),t.MediumWorkmarkOutline=l("medium-workmark",i,s(r,"M517.2 590.55c0 3.55 0 4.36 2.4 6.55l13.43 13.25v.57h-59.57v-25.47a41.44 41.44 0 0 1-39.5 27.65c-30.61 0-52.84-24.25-52.84-68.87 0-41.8 23.99-69.69 57.65-69.69a35.15 35.15 0 0 1 34.61 21.67v-56.19a6.99 6.99 0 0 0-2.71-6.79l-12.8-12.45v-.56l59.33-7.04v177.37zm-43.74-8.09v-83.83a22.2 22.2 0 0 0-17.74-8.4c-14.48 0-28.47 13.25-28.47 52.62 0 36.86 12.07 49.88 27.1 49.88a23.91 23.91 0 0 0 19.11-10.27zm83.23 28.46V497.74a7.65 7.65 0 0 0-2.4-6.79l-13.19-13.74v-.57h59.56v114.8c0 3.55 0 4.36 2.4 6.54l13.12 12.45v.57l-59.49-.08zm-2.16-175.67c0-13.4 10.74-24.25 23.99-24.25 13.25 0 23.98 10.86 23.98 24.25 0 13.4-10.73 24.25-23.98 24.25s-23.99-10.85-23.99-24.25zm206.83 155.06c0 3.55 0 4.6 2.4 6.79l13.43 13.25v.57h-59.88V581.9a43.4 43.4 0 0 1-41.01 31.2c-26.55 0-40.78-19.56-40.78-56.59 0-17.86 0-37.43.56-59.41a6.91 6.91 0 0 0-2.4-6.55L620.5 477.2v-.57h59.09v73.81c0 24.25 3.51 40.42 18.54 40.42a23.96 23.96 0 0 0 19.35-12.2v-80.85a7.65 7.65 0 0 0-2.4-6.79l-13.27-13.82v-.57h59.56V590.3zm202.76 20.6c0-4.36.8-59.97.8-72.75 0-24.25-3.76-40.98-20.63-40.98a26.7 26.7 0 0 0-21.19 11.64 99.68 99.68 0 0 1 2.4 23.04c0 16.81-.56 38.23-.8 59.66a6.91 6.91 0 0 0 2.4 6.55l13.43 12.45v.56h-60.12c0-4.04.8-59.98.8-72.76 0-24.65-3.76-40.98-20.39-40.98-8.2.3-15.68 4.8-19.83 11.96v82.46c0 3.56 0 4.37 2.4 6.55l13.11 12.45v.56h-59.48V498.15a7.65 7.65 0 0 0-2.4-6.8l-13.19-14.14v-.57H841v28.78c5.53-19 23.13-31.76 42.7-30.96 19.82 0 33.26 11.16 38.93 32.34a46.41 46.41 0 0 1 44.77-32.34c26.55 0 41.58 19.8 41.58 57.23 0 17.87-.56 38.24-.8 59.66a6.5 6.5 0 0 0 2.72 6.55l13.11 12.45v.57h-59.88zM215.87 593.3l17.66 17.05v.57h-89.62v-.57l17.99-17.05a6.91 6.91 0 0 0 2.4-6.55V477.69c0-4.6 0-10.83.8-16.16L104.66 613.1h-.72l-62.6-139.45c-1.37-3.47-1.77-3.72-2.65-6.06v91.43a32.08 32.08 0 0 0 2.96 17.87l25.19 33.46v.57H0v-.57l25.18-33.55a32.16 32.16 0 0 0 2.96-17.78V457.97A19.71 19.71 0 0 0 24 444.15L6.16 420.78v-.56h63.96l53.56 118.1 47.17-118.1h62.6v.56l-17.58 19.8a6.99 6.99 0 0 0-2.72 6.8v139.37a6.5 6.5 0 0 0 2.72 6.55zm70.11-54.65v.56c0 34.6 17.67 48.5 38.38 48.5a43.5 43.5 0 0 0 40.77-24.97h.56c-7.2 34.2-28.14 50.36-59.48 50.36-33.82 0-65.72-20.61-65.72-68.39 0-50.2 31.98-70.25 67.32-70.25 28.46 0 58.76 13.58 58.76 57.24v6.95h-80.59zm0-6.95h39.42v-7.04c0-35.57-7.28-45.03-18.23-45.03-13.27 0-21.35 14.15-21.35 52.07h.16z")),t.MenuUnfoldOutline=l("menu-unfold",i,s(a,"M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM142.4 642.1L298.7 519a8.84 8.84 0 0 0 0-13.9L142.4 381.9c-5.8-4.6-14.4-.5-14.4 6.9v246.3a8.9 8.9 0 0 0 14.4 7z")),t.MenuFoldOutline=l("menu-fold",i,s(a,"M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM115.4 518.9L271.7 642c5.8 4.6 14.4.5 14.4-6.9V388.9c0-7.4-8.5-11.5-14.4-6.9L115.4 505.1a8.74 8.74 0 0 0 0 13.8z")),t.MenuOutline=l("menu",i,s(a,"M904 160H120c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8zm0 624H120c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8zm0-312H120c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8z")),t.MinusOutline=l("minus",i,s(a,"M872 474H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h720c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z")),t.MonitorOutline=l("monitor",i,s(a,"M692.8 412.7l.2-.2-34.6-44.3a7.97 7.97 0 0 0-11.2-1.4l-50.4 39.3-70.5-90.1a7.97 7.97 0 0 0-11.2-1.4l-37.9 29.7a7.97 7.97 0 0 0-1.4 11.2l70.5 90.2-.2.1 34.6 44.3c2.7 3.5 7.7 4.1 11.2 1.4l50.4-39.3 64.1 82c2.7 3.5 7.7 4.1 11.2 1.4l37.9-29.6c3.5-2.7 4.1-7.7 1.4-11.2l-64.1-82.1zM608 112c-167.9 0-304 136.1-304 304 0 70.3 23.9 135 63.9 186.5L114.3 856.1a8.03 8.03 0 0 0 0 11.3l42.3 42.3c3.1 3.1 8.2 3.1 11.3 0l253.6-253.6C473 696.1 537.7 720 608 720c167.9 0 304-136.1 304-304S775.9 112 608 112zm161.2 465.2C726.2 620.3 668.9 644 608 644s-118.2-23.7-161.2-66.8C403.7 534.2 380 476.9 380 416s23.7-118.2 66.8-161.2c43-43.1 100.3-66.8 161.2-66.8s118.2 23.7 161.2 66.8c43.1 43 66.8 100.3 66.8 161.2s-23.7 118.2-66.8 161.2z")),t.MoreOutline=l("more",i,s(a,"M456 231a56 56 0 1 0 112 0 56 56 0 1 0-112 0zm0 280a56 56 0 1 0 112 0 56 56 0 1 0-112 0zm0 280a56 56 0 1 0 112 0 56 56 0 1 0-112 0z")),t.OrderedListOutline=l("ordered-list",i,s(a,"M920 760H336c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-568H336c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H336c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM216 712H100c-2.2 0-4 1.8-4 4v34c0 2.2 1.8 4 4 4h72.4v20.5h-35.7c-2.2 0-4 1.8-4 4v34c0 2.2 1.8 4 4 4h35.7V838H100c-2.2 0-4 1.8-4 4v34c0 2.2 1.8 4 4 4h116c2.2 0 4-1.8 4-4V716c0-2.2-1.8-4-4-4zM100 188h38v120c0 2.2 1.8 4 4 4h40c2.2 0 4-1.8 4-4V152c0-4.4-3.6-8-8-8h-78c-2.2 0-4 1.8-4 4v36c0 2.2 1.8 4 4 4zm116 240H100c-2.2 0-4 1.8-4 4v36c0 2.2 1.8 4 4 4h68.4l-70.3 77.7a8.3 8.3 0 0 0-2.1 5.4V592c0 2.2 1.8 4 4 4h116c2.2 0 4-1.8 4-4v-36c0-2.2-1.8-4-4-4h-68.4l70.3-77.7a8.3 8.3 0 0 0 2.1-5.4V432c0-2.2-1.8-4-4-4z")),t.NumberOutline=l("number",i,s(a,"M872 394c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8H708V152c0-4.4-3.6-8-8-8h-64c-4.4 0-8 3.6-8 8v166H400V152c0-4.4-3.6-8-8-8h-64c-4.4 0-8 3.6-8 8v166H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h168v236H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h168v166c0 4.4 3.6 8 8 8h64c4.4 0 8-3.6 8-8V706h228v166c0 4.4 3.6 8 8 8h64c4.4 0 8-3.6 8-8V706h164c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8H708V394h164zM628 630H400V394h228v236z")),t.PauseOutline=l("pause",i,s(a,"M304 176h80v672h-80zm408 0h-64c-4.4 0-8 3.6-8 8v656c0 4.4 3.6 8 8 8h64c4.4 0 8-3.6 8-8V184c0-4.4-3.6-8-8-8z")),t.PercentageOutline=l("percentage",i,s(a,"M855.7 210.8l-42.4-42.4a8.03 8.03 0 0 0-11.3 0L168.3 801.9a8.03 8.03 0 0 0 0 11.3l42.4 42.4c3.1 3.1 8.2 3.1 11.3 0L855.6 222c3.2-3 3.2-8.1.1-11.2zM304 448c79.4 0 144-64.6 144-144s-64.6-144-144-144-144 64.6-144 144 64.6 144 144 144zm0-216c39.7 0 72 32.3 72 72s-32.3 72-72 72-72-32.3-72-72 32.3-72 72-72zm416 344c-79.4 0-144 64.6-144 144s64.6 144 144 144 144-64.6 144-144-64.6-144-144-144zm0 216c-39.7 0-72-32.3-72-72s32.3-72 72-72 72 32.3 72 72-32.3 72-72 72z")),t.PaperClipOutline=l("paper-clip",i,s(a,"M779.3 196.6c-94.2-94.2-247.6-94.2-341.7 0l-261 260.8c-1.7 1.7-2.6 4-2.6 6.4s.9 4.7 2.6 6.4l36.9 36.9a9 9 0 0 0 12.7 0l261-260.8c32.4-32.4 75.5-50.2 121.3-50.2s88.9 17.8 121.2 50.2c32.4 32.4 50.2 75.5 50.2 121.2 0 45.8-17.8 88.8-50.2 121.2l-266 265.9-43.1 43.1c-40.3 40.3-105.8 40.3-146.1 0-19.5-19.5-30.2-45.4-30.2-73s10.7-53.5 30.2-73l263.9-263.8c6.7-6.6 15.5-10.3 24.9-10.3h.1c9.4 0 18.1 3.7 24.7 10.3 6.7 6.7 10.3 15.5 10.3 24.9 0 9.3-3.7 18.1-10.3 24.7L372.4 653c-1.7 1.7-2.6 4-2.6 6.4s.9 4.7 2.6 6.4l36.9 36.9a9 9 0 0 0 12.7 0l215.6-215.6c19.9-19.9 30.8-46.3 30.8-74.4s-11-54.6-30.8-74.4c-41.1-41.1-107.9-41-149 0L463 364 224.8 602.1A172.22 172.22 0 0 0 174 724.8c0 46.3 18.1 89.8 50.8 122.5 33.9 33.8 78.3 50.7 122.7 50.7 44.4 0 88.8-16.9 122.6-50.7l309.2-309C824.8 492.7 850 432 850 367.5c.1-64.6-25.1-125.3-70.7-170.9z")),t.PicCenterOutline=l("pic-center",i,s(a,"M952 792H72c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h880c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-632H72c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h880c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM848 660c8.8 0 16-7.2 16-16V380c0-8.8-7.2-16-16-16H176c-8.8 0-16 7.2-16 16v264c0 8.8 7.2 16 16 16h672zM232 436h560v152H232V436z")),t.PicLeftOutline=l("pic-left",i,s(a,"M952 792H72c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h880c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-632H72c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h880c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM608 660c8.8 0 16-7.2 16-16V380c0-8.8-7.2-16-16-16H96c-8.8 0-16 7.2-16 16v264c0 8.8 7.2 16 16 16h512zM152 436h400v152H152V436zm552 210c0 4.4 3.6 8 8 8h224c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H712c-4.4 0-8 3.6-8 8v56zm8-204h224c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H712c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8z")),t.PlusOutline=l("plus",i,s(a,"M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z","M176 474h672q8 0 8 8v60q0 8-8 8H176q-8 0-8-8v-60q0-8 8-8z")),t.PicRightOutline=l("pic-right",i,s(a,"M952 792H72c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h880c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-632H72c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h880c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-24 500c8.8 0 16-7.2 16-16V380c0-8.8-7.2-16-16-16H416c-8.8 0-16 7.2-16 16v264c0 8.8 7.2 16 16 16h512zM472 436h400v152H472V436zM80 646c0 4.4 3.6 8 8 8h224c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H88c-4.4 0-8 3.6-8 8v56zm8-204h224c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H88c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8z")),t.PoundOutline=l("pound",i,s(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm138-209.8H469.8v-4.7c27.4-17.2 43.9-50.4 43.9-91.1 0-14.1-2.2-27.9-5.3-41H607c4.4 0 8-3.6 8-8v-30c0-4.4-3.6-8-8-8H495c-7.2-22.6-13.4-45.7-13.4-70.5 0-43.5 34-70.2 87.3-70.2 21.5 0 42.5 4.1 60.4 10.5 5.2 1.9 10.6-2 10.6-7.6v-39.5c0-3.3-2.1-6.3-5.2-7.5-18.8-7.2-43.8-12.7-70.3-12.7-92.9 0-151.5 44.5-151.5 120.3 0 26.3 6.9 52 14.6 77.1H374c-4.4 0-8 3.6-8 8v30c0 4.4 3.6 8 8 8h67.1c3.4 14.7 5.9 29.4 5.9 44.2 0 45.2-28.8 83.3-72.8 94.2-3.6.9-6.1 4.1-6.1 7.8V722c0 4.4 3.6 8 8 8H650c4.4 0 8-3.6 8-8v-39.8c0-4.4-3.6-8-8-8z")),t.PoweroffOutline=l("poweroff",i,s(a,"M705.6 124.9a8 8 0 0 0-11.6 7.2v64.2c0 5.5 2.9 10.6 7.5 13.6a352.2 352.2 0 0 1 62.2 49.8c32.7 32.8 58.4 70.9 76.3 113.3a355 355 0 0 1 27.9 138.7c0 48.1-9.4 94.8-27.9 138.7a355.92 355.92 0 0 1-76.3 113.3 353.06 353.06 0 0 1-113.2 76.4c-43.8 18.6-90.5 28-138.5 28s-94.7-9.4-138.5-28a353.06 353.06 0 0 1-113.2-76.4A355.92 355.92 0 0 1 184 650.4a355 355 0 0 1-27.9-138.7c0-48.1 9.4-94.8 27.9-138.7 17.9-42.4 43.6-80.5 76.3-113.3 19-19 39.8-35.6 62.2-49.8 4.7-2.9 7.5-8.1 7.5-13.6V132c0-6-6.3-9.8-11.6-7.2C178.5 195.2 82 339.3 80 506.3 77.2 745.1 272.5 943.5 511.2 944c239 .5 432.8-193.3 432.8-432.4 0-169.2-97-315.7-238.4-386.7zM480 560h64c4.4 0 8-3.6 8-8V88c0-4.4-3.6-8-8-8h-64c-4.4 0-8 3.6-8 8v464c0 4.4 3.6 8 8 8z")),t.PullRequestOutline=l("pull-request",i,s(a,"M788 705.9V192c0-8.8-7.2-16-16-16H602v-68.8c0-6-7-9.4-11.7-5.7L462.7 202.3a7.14 7.14 0 0 0 0 11.3l127.5 100.8c4.7 3.7 11.7.4 11.7-5.7V240h114v465.9c-44.2 15-76 56.9-76 106.1 0 61.8 50.2 112 112 112s112-50.2 112-112c.1-49.2-31.7-91-75.9-106.1zM752 860a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96zM384 212c0-61.8-50.2-112-112-112s-112 50.2-112 112c0 49.2 31.8 91 76 106.1V706c-44.2 15-76 56.9-76 106.1 0 61.8 50.2 112 112 112s112-50.2 112-112c0-49.2-31.8-91-76-106.1V318.1c44.2-15.1 76-56.9 76-106.1zm-160 0a48.01 48.01 0 0 1 96 0 48.01 48.01 0 0 1-96 0zm96 600a48.01 48.01 0 0 1-96 0 48.01 48.01 0 0 1 96 0z")),t.QqOutline=l("qq",i,s(a,"M824.8 613.2c-16-51.4-34.4-94.6-62.7-165.3C766.5 262.2 689.3 112 511.5 112 331.7 112 256.2 265.2 261 447.9c-28.4 70.8-46.7 113.7-62.7 165.3-34 109.5-23 154.8-14.6 155.8 18 2.2 70.1-82.4 70.1-82.4 0 49 25.2 112.9 79.8 159-26.4 8.1-85.7 29.9-71.6 53.8 11.4 19.3 196.2 12.3 249.5 6.3 53.3 6 238.1 13 249.5-6.3 14.1-23.8-45.3-45.7-71.6-53.8 54.6-46.2 79.8-110.1 79.8-159 0 0 52.1 84.6 70.1 82.4 8.5-1.1 19.5-46.4-14.5-155.8z")),t.QuestionOutline=l("question",i,s(a,"M764 280.9c-14-30.6-33.9-58.1-59.3-81.6C653.1 151.4 584.6 125 512 125s-141.1 26.4-192.7 74.2c-25.4 23.6-45.3 51-59.3 81.7-14.6 32-22 65.9-22 100.9v27c0 6.2 5 11.2 11.2 11.2h54c6.2 0 11.2-5 11.2-11.2v-27c0-99.5 88.6-180.4 197.6-180.4s197.6 80.9 197.6 180.4c0 40.8-14.5 79.2-42 111.2-27.2 31.7-65.6 54.4-108.1 64-24.3 5.5-46.2 19.2-61.7 38.8a110.85 110.85 0 0 0-23.9 68.6v31.4c0 6.2 5 11.2 11.2 11.2h54c6.2 0 11.2-5 11.2-11.2v-31.4c0-15.7 10.9-29.5 26-32.9 58.4-13.2 111.4-44.7 149.3-88.7 19.1-22.3 34-47.1 44.3-74 10.7-27.9 16.1-57.2 16.1-87 0-35-7.4-69-22-100.9zM512 787c-30.9 0-56 25.1-56 56s25.1 56 56 56 56-25.1 56-56-25.1-56-56-56z")),t.RadarChartOutline=l("radar-chart",i,s(a,"M926.8 397.1l-396-288a31.81 31.81 0 0 0-37.6 0l-396 288a31.99 31.99 0 0 0-11.6 35.8l151.3 466a32 32 0 0 0 30.4 22.1h489.5c13.9 0 26.1-8.9 30.4-22.1l151.3-466c4.2-13.2-.5-27.6-11.7-35.8zM838.6 417l-98.5 32-200-144.7V199.9L838.6 417zM466 567.2l-89.1 122.3-55.2-169.2L466 567.2zm-116.3-96.8L484 373.3v140.8l-134.3-43.7zM512 599.2l93.9 128.9H418.1L512 599.2zm28.1-225.9l134.2 97.1L540.1 514V373.3zM558 567.2l144.3-46.9-55.2 169.2L558 567.2zm-74-367.3v104.4L283.9 449l-98.5-32L484 199.9zM169.3 470.8l86.5 28.1 80.4 246.4-53.8 73.9-113.1-348.4zM327.1 853l50.3-69h269.3l50.3 69H327.1zm414.5-33.8l-53.8-73.9 80.4-246.4 86.5-28.1-113.1 348.4z")),t.QrcodeOutline=l("qrcode",i,s(a,"M468 128H160c-17.7 0-32 14.3-32 32v308c0 4.4 3.6 8 8 8h332c4.4 0 8-3.6 8-8V136c0-4.4-3.6-8-8-8zm-56 284H192V192h220v220zm-138-74h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm194 210H136c-4.4 0-8 3.6-8 8v308c0 17.7 14.3 32 32 32h308c4.4 0 8-3.6 8-8V556c0-4.4-3.6-8-8-8zm-56 284H192V612h220v220zm-138-74h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm590-630H556c-4.4 0-8 3.6-8 8v332c0 4.4 3.6 8 8 8h332c4.4 0 8-3.6 8-8V160c0-17.7-14.3-32-32-32zm-32 284H612V192h220v220zm-138-74h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm194 210h-48c-4.4 0-8 3.6-8 8v134h-78V556c0-4.4-3.6-8-8-8H556c-4.4 0-8 3.6-8 8v332c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V644h78v102c0 4.4 3.6 8 8 8h190c4.4 0 8-3.6 8-8V556c0-4.4-3.6-8-8-8zM746 832h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm142 0h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z")),t.RadiusBottomleftOutline=l("radius-bottomleft",i,s(a,"M712 824h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm2-696h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM136 374h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0-174h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm752 624h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-348 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-230 72h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm230 624H358c-87.3 0-158-70.7-158-158V484c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v182c0 127 103 230 230 230h182c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.RadiusBottomrightOutline=l("radius-bottomright",i,s(a,"M368 824h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-58-624h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm578 102h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM192 824h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm292 72h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm174 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm230 276h-56c-4.4 0-8 3.6-8 8v182c0 87.3-70.7 158-158 158H484c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h182c127 0 230-103 230-230V484c0-4.4-3.6-8-8-8z")),t.RadiusUpleftOutline=l("radius-upleft",i,s(a,"M656 200h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm58 624h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM192 650h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm696-696h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-348 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-174 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm174-696H358c-127 0-230 103-230 230v182c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V358c0-87.3 70.7-158 158-158h182c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.RadiusUprightOutline=l("radius-upright",i,s(a,"M368 128h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-2 696h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm522-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM192 128h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm348 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm174 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-48-696H484c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h182c87.3 0 158 70.7 158 158v182c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V358c0-127-103-230-230-230z")),t.RadiusSettingOutline=l("radius-setting",i,s(a,"M396 140h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-44 684h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm524-204h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM192 344h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 160h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 160h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 160h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm320 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm160 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm140-284c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V370c0-127-103-230-230-230H484c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h170c87.3 0 158 70.7 158 158v170zM236 96H92c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h144c4.4 0 8-3.6 8-8V104c0-4.4-3.6-8-8-8zm-48 101.6c0 1.3-1.1 2.4-2.4 2.4h-43.2c-1.3 0-2.4-1.1-2.4-2.4v-43.2c0-1.3 1.1-2.4 2.4-2.4h43.2c1.3 0 2.4 1.1 2.4 2.4v43.2zM920 780H776c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h144c4.4 0 8-3.6 8-8V788c0-4.4-3.6-8-8-8zm-48 101.6c0 1.3-1.1 2.4-2.4 2.4h-43.2c-1.3 0-2.4-1.1-2.4-2.4v-43.2c0-1.3 1.1-2.4 2.4-2.4h43.2c1.3 0 2.4 1.1 2.4 2.4v43.2z")),t.RedditOutline=l("reddit",i,s(a,"M288 568a56 56 0 1 0 112 0 56 56 0 1 0-112 0zm338.7 119.7c-23.1 18.2-68.9 37.8-114.7 37.8s-91.6-19.6-114.7-37.8c-14.4-11.3-35.3-8.9-46.7 5.5s-8.9 35.3 5.5 46.7C396.3 771.6 457.5 792 512 792s115.7-20.4 155.9-52.1a33.25 33.25 0 1 0-41.2-52.2zM960 456c0-61.9-50.1-112-112-112-42.1 0-78.7 23.2-97.9 57.6-57.6-31.5-127.7-51.8-204.1-56.5L612.9 195l127.9 36.9c11.5 32.6 42.6 56.1 79.2 56.1 46.4 0 84-37.6 84-84s-37.6-84-84-84c-32 0-59.8 17.9-74 44.2L603.5 123a33.2 33.2 0 0 0-39.6 18.4l-90.8 203.9c-74.5 5.2-142.9 25.4-199.2 56.2A111.94 111.94 0 0 0 176 344c-61.9 0-112 50.1-112 112 0 45.8 27.5 85.1 66.8 102.5-7.1 21-10.8 43-10.8 65.5 0 154.6 175.5 280 392 280s392-125.4 392-280c0-22.6-3.8-44.5-10.8-65.5C932.5 541.1 960 501.8 960 456zM820 172.5a31.5 31.5 0 1 1 0 63 31.5 31.5 0 0 1 0-63zM120 456c0-30.9 25.1-56 56-56a56 56 0 0 1 50.6 32.1c-29.3 22.2-53.5 47.8-71.5 75.9a56.23 56.23 0 0 1-35.1-52zm392 381.5c-179.8 0-325.5-95.6-325.5-213.5S332.2 410.5 512 410.5 837.5 506.1 837.5 624 691.8 837.5 512 837.5zM868.8 508c-17.9-28.1-42.2-53.7-71.5-75.9 9-18.9 28.3-32.1 50.6-32.1 30.9 0 56 25.1 56 56 .1 23.5-14.5 43.7-35.1 52zM624 568a56 56 0 1 0 112 0 56 56 0 1 0-112 0z")),t.RedoOutline=l("redo",i,s(a,"M758.2 839.1C851.8 765.9 912 651.9 912 523.9 912 303 733.5 124.3 512.6 124 291.4 123.7 112 302.8 112 523.9c0 125.2 57.5 236.9 147.6 310.2 3.5 2.8 8.6 2.2 11.4-1.3l39.4-50.5c2.7-3.4 2.1-8.3-1.2-11.1-8.1-6.6-15.9-13.7-23.4-21.2a318.64 318.64 0 0 1-68.6-101.7C200.4 609 192 567.1 192 523.9s8.4-85.1 25.1-124.5c16.1-38.1 39.2-72.3 68.6-101.7 29.4-29.4 63.6-52.5 101.7-68.6C426.9 212.4 468.8 204 512 204s85.1 8.4 124.5 25.1c38.1 16.1 72.3 39.2 101.7 68.6 29.4 29.4 52.5 63.6 68.6 101.7 16.7 39.4 25.1 81.3 25.1 124.5s-8.4 85.1-25.1 124.5a318.64 318.64 0 0 1-68.6 101.7c-9.3 9.3-19.1 18-29.3 26L668.2 724a8 8 0 0 0-14.1 3l-39.6 162.2c-1.2 5 2.6 9.9 7.7 9.9l167 .8c6.7 0 10.5-7.7 6.3-12.9l-37.3-47.9z")),t.ReloadOutline=l("reload",i,s(a,"M909.1 209.3l-56.4 44.1C775.8 155.1 656.2 92 521.9 92 290 92 102.3 279.5 102 511.5 101.7 743.7 289.8 932 521.9 932c181.3 0 335.8-115 394.6-276.1 1.5-4.2-.7-8.9-4.9-10.3l-56.7-19.5a8 8 0 0 0-10.1 4.8c-1.8 5-3.8 10-5.9 14.9-17.3 41-42.1 77.8-73.7 109.4A344.77 344.77 0 0 1 655.9 829c-42.3 17.9-87.4 27-133.8 27-46.5 0-91.5-9.1-133.8-27A341.5 341.5 0 0 1 279 755.2a342.16 342.16 0 0 1-73.7-109.4c-17.9-42.4-27-87.4-27-133.9s9.1-91.5 27-133.9c17.3-41 42.1-77.8 73.7-109.4 31.6-31.6 68.4-56.4 109.3-73.8 42.3-17.9 87.4-27 133.8-27 46.5 0 91.5 9.1 133.8 27a341.5 341.5 0 0 1 109.3 73.8c9.9 9.9 19.2 20.4 27.8 31.4l-60.2 47a8 8 0 0 0 3 14.1l175.6 43c5 1.2 9.9-2.6 9.9-7.7l.8-180.9c-.1-6.6-7.8-10.3-13-6.2z")),t.RetweetOutline=l("retweet",i,s(r,"M136 552h63.6c4.4 0 8-3.6 8-8V288.7h528.6v72.6c0 1.9.6 3.7 1.8 5.2a8.3 8.3 0 0 0 11.7 1.4L893 255.4c4.3-5 3.6-10.3 0-13.2L749.7 129.8a8.22 8.22 0 0 0-5.2-1.8c-4.6 0-8.4 3.8-8.4 8.4V209H199.7c-39.5 0-71.7 32.2-71.7 71.8V544c0 4.4 3.6 8 8 8zm752-80h-63.6c-4.4 0-8 3.6-8 8v255.3H287.8v-72.6c0-1.9-.6-3.7-1.8-5.2a8.3 8.3 0 0 0-11.7-1.4L131 768.6c-4.3 5-3.6 10.3 0 13.2l143.3 112.4c1.5 1.2 3.3 1.8 5.2 1.8 4.6 0 8.4-3.8 8.4-8.4V815h536.6c39.5 0 71.7-32.2 71.7-71.8V480c-.2-4.4-3.8-8-8.2-8z")),t.RightOutline=l("right",i,s(a,"M765.7 486.8L314.9 134.7A7.97 7.97 0 0 0 302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 0 0 0-50.4z")),t.RiseOutline=l("rise",i,s(a,"M917 211.1l-199.2 24c-6.6.8-9.4 8.9-4.7 13.6l59.3 59.3-226 226-101.8-101.7c-6.3-6.3-16.4-6.2-22.6 0L100.3 754.1a8.03 8.03 0 0 0 0 11.3l45 45.2c3.1 3.1 8.2 3.1 11.3 0L433.3 534 535 635.7c6.3 6.2 16.4 6.2 22.6 0L829 364.5l59.3 59.3a8.01 8.01 0 0 0 13.6-4.7l24-199.2c.7-5.1-3.7-9.5-8.9-8.8z")),t.RollbackOutline=l("rollback",i,s(a,"M793 242H366v-74c0-6.7-7.7-10.4-12.9-6.3l-142 112a8 8 0 0 0 0 12.6l142 112c5.2 4.1 12.9.4 12.9-6.3v-74h415v470H175c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h618c35.3 0 64-28.7 64-64V306c0-35.3-28.7-64-64-64z")),t.SafetyOutline=l("safety",i,s(r,"M512 64L128 192v384c0 212.1 171.9 384 384 384s384-171.9 384-384V192L512 64zm312 512c0 172.3-139.7 312-312 312S200 748.3 200 576V246l312-110 312 110v330z","M378.4 475.1a35.91 35.91 0 0 0-50.9 0 35.91 35.91 0 0 0 0 50.9l129.4 129.4 2.1 2.1a33.98 33.98 0 0 0 48.1 0L730.6 434a33.98 33.98 0 0 0 0-48.1l-2.8-2.8a33.98 33.98 0 0 0-48.1 0L483 579.7 378.4 475.1z")),t.RobotOutline=l("robot",i,s(a,"M300 328a60 60 0 1 0 120 0 60 60 0 1 0-120 0zM852 64H172c-17.7 0-32 14.3-32 32v660c0 17.7 14.3 32 32 32h680c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-32 660H204V128h616v596zM604 328a60 60 0 1 0 120 0 60 60 0 1 0-120 0zm250.2 556H169.8c-16.5 0-29.8 14.3-29.8 32v36c0 4.4 3.3 8 7.4 8h729.1c4.1 0 7.4-3.6 7.4-8v-36c.1-17.7-13.2-32-29.7-32zM664 508H360c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h304c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z")),t.SearchOutline=l("search",i,s(a,"M909.6 854.5L649.9 594.8C690.2 542.7 712 479 712 412c0-80.2-31.3-155.4-87.9-212.1-56.6-56.7-132-87.9-212.1-87.9s-155.5 31.3-212.1 87.9C143.2 256.5 112 331.8 112 412c0 80.1 31.3 155.5 87.9 212.1C256.5 680.8 331.8 712 412 712c67 0 130.6-21.8 182.7-62l259.7 259.6a8.2 8.2 0 0 0 11.6 0l43.6-43.5a8.2 8.2 0 0 0 0-11.6zM570.4 570.4C528 612.7 471.8 636 412 636s-116-23.3-158.4-65.6C211.3 528 188 471.8 188 412s23.3-116.1 65.6-158.4C296 211.3 352.2 188 412 188s116.1 23.2 158.4 65.6S636 352.2 636 412s-23.3 116.1-65.6 158.4z")),t.ScanOutline=l("scan",i,s(a,"M136 384h56c4.4 0 8-3.6 8-8V200h176c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H196c-37.6 0-68 30.4-68 68v180c0 4.4 3.6 8 8 8zm512-184h176v176c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V196c0-37.6-30.4-68-68-68H648c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zM376 824H200V648c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v180c0 37.6 30.4 68 68 68h180c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm512-184h-56c-4.4 0-8 3.6-8 8v176H648c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h180c37.6 0 68-30.4 68-68V648c0-4.4-3.6-8-8-8zm16-164H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.ScissorOutline=l("scissor",i,s(a,"M567.1 512l318.5-319.3c5-5 1.5-13.7-5.6-13.7h-90.5c-2.1 0-4.2.8-5.6 2.3l-273.3 274-90.2-90.5c12.5-22.1 19.7-47.6 19.7-74.8 0-83.9-68.1-152-152-152s-152 68.1-152 152 68.1 152 152 152c27.7 0 53.6-7.4 75.9-20.3l90 90.3-90.1 90.3A151.04 151.04 0 0 0 288 582c-83.9 0-152 68.1-152 152s68.1 152 152 152 152-68.1 152-152c0-27.2-7.2-52.7-19.7-74.8l90.2-90.5 273.3 274c1.5 1.5 3.5 2.3 5.6 2.3H880c7.1 0 10.7-8.6 5.6-13.7L567.1 512zM288 370c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80zm0 444c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z")),t.SelectOutline=l("select",i,s(a,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h360c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H184V184h656v320c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V144c0-17.7-14.3-32-32-32zM653.3 599.4l52.2-52.2a8.01 8.01 0 0 0-4.7-13.6l-179.4-21c-5.1-.6-9.5 3.7-8.9 8.9l21 179.4c.8 6.6 8.9 9.4 13.6 4.7l52.4-52.4 256.2 256.2c3.1 3.1 8.2 3.1 11.3 0l42.4-42.4c3.1-3.1 3.1-8.2 0-11.3L653.3 599.4z")),t.ShakeOutline=l("shake",i,s(a,"M324 666a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm616.7-309.6L667.6 83.2C655.2 70.9 638.7 64 621.1 64s-34.1 6.8-46.5 19.2L83.3 574.5a65.85 65.85 0 0 0 0 93.1l273.2 273.2c12.3 12.3 28.9 19.2 46.5 19.2s34.1-6.8 46.5-19.2l491.3-491.3c25.6-25.7 25.6-67.5-.1-93.1zM403 880.1L143.9 621l477.2-477.2 259 259.2L403 880.1zM152.8 373.7a7.9 7.9 0 0 0 11.2 0L373.7 164a7.9 7.9 0 0 0 0-11.2l-38.4-38.4a7.9 7.9 0 0 0-11.2 0L114.3 323.9a7.9 7.9 0 0 0 0 11.2l38.5 38.6zm718.6 276.6a7.9 7.9 0 0 0-11.2 0L650.3 860.1a7.9 7.9 0 0 0 0 11.2l38.4 38.4a7.9 7.9 0 0 0 11.2 0L909.7 700a7.9 7.9 0 0 0 0-11.2l-38.3-38.5z")),t.ShareAltOutline=l("share-alt",i,s(a,"M752 664c-28.5 0-54.8 10-75.4 26.7L469.4 540.8a160.68 160.68 0 0 0 0-57.6l207.2-149.9C697.2 350 723.5 360 752 360c66.2 0 120-53.8 120-120s-53.8-120-120-120-120 53.8-120 120c0 11.6 1.6 22.7 4.7 33.3L439.9 415.8C410.7 377.1 364.3 352 312 352c-88.4 0-160 71.6-160 160s71.6 160 160 160c52.3 0 98.7-25.1 127.9-63.8l196.8 142.5c-3.1 10.6-4.7 21.8-4.7 33.3 0 66.2 53.8 120 120 120s120-53.8 120-120-53.8-120-120-120zm0-476c28.7 0 52 23.3 52 52s-23.3 52-52 52-52-23.3-52-52 23.3-52 52-52zM312 600c-48.5 0-88-39.5-88-88s39.5-88 88-88 88 39.5 88 88-39.5 88-88 88zm440 236c-28.7 0-52-23.3-52-52s23.3-52 52-52 52 23.3 52 52-23.3 52-52 52z")),t.ShoppingCartOutline=l("shopping-cart",i,s(r,"M922.9 701.9H327.4l29.9-60.9 496.8-.9c16.8 0 31.2-12 34.2-28.6l68.8-385.1c1.8-10.1-.9-20.5-7.5-28.4a34.99 34.99 0 0 0-26.6-12.5l-632-2.1-5.4-25.4c-3.4-16.2-18-28-34.6-28H96.5a35.3 35.3 0 1 0 0 70.6h125.9L246 312.8l58.1 281.3-74.8 122.1a34.96 34.96 0 0 0-3 36.8c6 11.9 18.1 19.4 31.5 19.4h62.8a102.43 102.43 0 0 0-20.6 61.7c0 56.6 46 102.6 102.6 102.6s102.6-46 102.6-102.6c0-22.3-7.4-44-20.6-61.7h161.1a102.43 102.43 0 0 0-20.6 61.7c0 56.6 46 102.6 102.6 102.6s102.6-46 102.6-102.6c0-22.3-7.4-44-20.6-61.7H923c19.4 0 35.3-15.8 35.3-35.3a35.42 35.42 0 0 0-35.4-35.2zM305.7 253l575.8 1.9-56.4 315.8-452.3.8L305.7 253zm96.9 612.7c-17.4 0-31.6-14.2-31.6-31.6 0-17.4 14.2-31.6 31.6-31.6s31.6 14.2 31.6 31.6a31.6 31.6 0 0 1-31.6 31.6zm325.1 0c-17.4 0-31.6-14.2-31.6-31.6 0-17.4 14.2-31.6 31.6-31.6s31.6 14.2 31.6 31.6a31.6 31.6 0 0 1-31.6 31.6z")),t.ShrinkOutline=l("shrink",i,s(a,"M881.7 187.4l-45.1-45.1a8.03 8.03 0 0 0-11.3 0L667.8 299.9l-54.7-54.7a7.94 7.94 0 0 0-13.5 4.7L576.1 439c-.6 5.2 3.7 9.5 8.9 8.9l189.2-23.5c6.6-.8 9.3-8.8 4.7-13.5l-54.7-54.7 157.6-157.6c3-3 3-8.1-.1-11.2zM439 576.1l-189.2 23.5c-6.6.8-9.3 8.9-4.7 13.5l54.7 54.7-157.5 157.5a8.03 8.03 0 0 0 0 11.3l45.1 45.1c3.1 3.1 8.2 3.1 11.3 0l157.6-157.6 54.7 54.7a7.94 7.94 0 0 0 13.5-4.7L447.9 585a7.9 7.9 0 0 0-8.9-8.9z")),t.SlackOutline=l("slack",i,s(a,"M409.4 128c-42.4 0-76.7 34.4-76.7 76.8 0 20.3 8.1 39.9 22.4 54.3a76.74 76.74 0 0 0 54.3 22.5h76.7v-76.8c0-42.3-34.3-76.7-76.7-76.8zm0 204.8H204.7c-42.4 0-76.7 34.4-76.7 76.8s34.4 76.8 76.7 76.8h204.6c42.4 0 76.7-34.4 76.7-76.8.1-42.4-34.3-76.8-76.6-76.8zM614 486.4c42.4 0 76.8-34.4 76.7-76.8V204.8c0-42.4-34.3-76.8-76.7-76.8-42.4 0-76.7 34.4-76.7 76.8v204.8c0 42.5 34.3 76.8 76.7 76.8zm281.4-76.8c0-42.4-34.4-76.8-76.7-76.8S742 367.2 742 409.6v76.8h76.7c42.3 0 76.7-34.4 76.7-76.8zm-76.8 128H614c-42.4 0-76.7 34.4-76.7 76.8 0 20.3 8.1 39.9 22.4 54.3a76.74 76.74 0 0 0 54.3 22.5h204.6c42.4 0 76.7-34.4 76.7-76.8.1-42.4-34.3-76.7-76.7-76.8zM614 742.4h-76.7v76.8c0 42.4 34.4 76.8 76.7 76.8 42.4 0 76.8-34.4 76.7-76.8.1-42.4-34.3-76.7-76.7-76.8zM409.4 537.6c-42.4 0-76.7 34.4-76.7 76.8v204.8c0 42.4 34.4 76.8 76.7 76.8 42.4 0 76.8-34.4 76.7-76.8V614.4c0-20.3-8.1-39.9-22.4-54.3a76.92 76.92 0 0 0-54.3-22.5zM128 614.4c0 20.3 8.1 39.9 22.4 54.3a76.74 76.74 0 0 0 54.3 22.5c42.4 0 76.8-34.4 76.7-76.8v-76.8h-76.7c-42.3 0-76.7 34.4-76.7 76.8z")),t.SmallDashOutline=l("small-dash",i,s(a,"M112 476h72v72h-72zm182 0h72v72h-72zm364 0h72v72h-72zm182 0h72v72h-72zm-364 0h72v72h-72z")),t.SolutionOutline=l("solution",i,s(a,"M688 264c0-4.4-3.6-8-8-8H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48zm-8 136H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM480 544H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm-48 308H208V148h560v344c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h264c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm356.8-74.4c29-26.3 47.2-64.3 47.2-106.6 0-79.5-64.5-144-144-144s-144 64.5-144 144c0 42.3 18.2 80.3 47.2 106.6-57 32.5-96.2 92.7-99.2 162.1-.2 4.5 3.5 8.3 8 8.3h48.1c4.2 0 7.7-3.3 8-7.6C564 871.2 621.7 816 692 816s128 55.2 131.9 124.4c.2 4.2 3.7 7.6 8 7.6H880c4.6 0 8.2-3.8 8-8.3-2.9-69.5-42.2-129.6-99.2-162.1zM692 591c44.2 0 80 35.8 80 80s-35.8 80-80 80-80-35.8-80-80 35.8-80 80-80z")),t.SketchOutline=l("sketch",i,s(a,"M925.6 405.1l-203-253.7a6.5 6.5 0 0 0-5-2.4H306.4c-1.9 0-3.8.9-5 2.4l-203 253.7a6.5 6.5 0 0 0 .2 8.3l408.6 459.5c1.2 1.4 3 2.1 4.8 2.1 1.8 0 3.5-.8 4.8-2.1l408.6-459.5a6.5 6.5 0 0 0 .2-8.3zM645.2 206.4l34.4 133.9-132.5-133.9h98.1zm8.2 178.5H370.6L512 242l141.4 142.9zM378.8 206.4h98.1L344.3 340.3l34.5-133.9zm-53.4 7l-44.1 171.5h-93.1l137.2-171.5zM194.6 434.9H289l125.8 247.7-220.2-247.7zM512 763.4L345.1 434.9h333.7L512 763.4zm97.1-80.8L735 434.9h94.4L609.1 682.6zm133.6-297.7l-44.1-171.5 137.2 171.5h-93.1z")),t.SortDescendingOutline=l("sort-descending",i,s(a,"M839.6 433.8L749 150.5a9.24 9.24 0 0 0-8.9-6.5h-77.4c-4.1 0-7.6 2.6-8.9 6.5l-91.3 283.3c-.3.9-.5 1.9-.5 2.9 0 5.1 4.2 9.3 9.3 9.3h56.4c4.2 0 7.8-2.8 9-6.8l17.5-61.6h89l17.3 61.5c1.1 4 4.8 6.8 9 6.8h61.2c1 0 1.9-.1 2.8-.4 2.4-.8 4.3-2.4 5.5-4.6 1.1-2.2 1.3-4.7.6-7.1zM663.3 325.5l32.8-116.9h6.3l32.1 116.9h-71.2zm143.5 492.9H677.2v-.4l132.6-188.9c1.1-1.6 1.7-3.4 1.7-5.4v-36.4c0-5.1-4.2-9.3-9.3-9.3h-204c-5.1 0-9.3 4.2-9.3 9.3v43c0 5.1 4.2 9.3 9.3 9.3h122.6v.4L587.7 828.9a9.35 9.35 0 0 0-1.7 5.4v36.4c0 5.1 4.2 9.3 9.3 9.3h211.4c5.1 0 9.3-4.2 9.3-9.3v-43a9.2 9.2 0 0 0-9.2-9.3zM310.3 167.1a8 8 0 0 0-12.6 0L185.7 309c-4.2 5.3-.4 13 6.3 13h76v530c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V322h76c6.7 0 10.5-7.8 6.3-13l-112-141.9z")),t.SortAscendingOutline=l("sort-ascending",i,s(a,"M839.6 433.8L749 150.5a9.24 9.24 0 0 0-8.9-6.5h-77.4c-4.1 0-7.6 2.6-8.9 6.5l-91.3 283.3c-.3.9-.5 1.9-.5 2.9 0 5.1 4.2 9.3 9.3 9.3h56.4c4.2 0 7.8-2.8 9-6.8l17.5-61.6h89l17.3 61.5c1.1 4 4.8 6.8 9 6.8h61.2c1 0 1.9-.1 2.8-.4 2.4-.8 4.3-2.4 5.5-4.6 1.1-2.2 1.3-4.7.6-7.1zM663.3 325.5l32.8-116.9h6.3l32.1 116.9h-71.2zm143.5 492.9H677.2v-.4l132.6-188.9c1.1-1.6 1.7-3.4 1.7-5.4v-36.4c0-5.1-4.2-9.3-9.3-9.3h-204c-5.1 0-9.3 4.2-9.3 9.3v43c0 5.1 4.2 9.3 9.3 9.3h122.6v.4L587.7 828.9a9.35 9.35 0 0 0-1.7 5.4v36.4c0 5.1 4.2 9.3 9.3 9.3h211.4c5.1 0 9.3-4.2 9.3-9.3v-43a9.2 9.2 0 0 0-9.2-9.3zM416 702h-76V172c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v530h-76c-6.7 0-10.5 7.8-6.3 13l112 141.9a8 8 0 0 0 12.6 0l112-141.9c4.1-5.2.4-13-6.3-13z")),t.StockOutline=l("stock",i,s(a,"M904 747H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM165.7 621.8l39.7 39.5c3.1 3.1 8.2 3.1 11.3 0l234.7-233.9 97.6 97.3a32.11 32.11 0 0 0 45.2 0l264.2-263.2c3.1-3.1 3.1-8.2 0-11.3l-39.7-39.6a8.03 8.03 0 0 0-11.3 0l-235.7 235-97.7-97.3a32.11 32.11 0 0 0-45.2 0L165.7 610.5a7.94 7.94 0 0 0 0 11.3z")),t.SwapLeftOutline=l("swap-left",i,s(r,"M872 572H266.8l144.3-183c4.1-5.2.4-13-6.3-13H340c-9.8 0-19.1 4.5-25.1 12.2l-164 208c-16.5 21-1.6 51.8 25.1 51.8h696c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z")),t.SwapRightOutline=l("swap-right",i,s(r,"M873.1 596.2l-164-208A32 32 0 0 0 684 376h-64.8c-6.7 0-10.4 7.7-6.3 13l144.3 183H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h695.9c26.8 0 41.7-30.8 25.2-51.8z")),t.StrikethroughOutline=l("strikethrough",i,s(a,"M952 474H569.9c-10-2-20.5-4-31.6-6-15.9-2.9-22.2-4.1-30.8-5.8-51.3-10-82.2-20-106.8-34.2-35.1-20.5-52.2-48.3-52.2-85.1 0-37 15.2-67.7 44-89 28.4-21 68.8-32.1 116.8-32.1 54.8 0 97.1 14.4 125.8 42.8 14.6 14.4 25.3 32.1 31.8 52.6 1.3 4.1 2.8 10 4.3 17.8.9 4.8 5.2 8.2 9.9 8.2h72.8c5.6 0 10.1-4.6 10.1-10.1v-1c-.7-6.8-1.3-12.1-2-16-7.3-43.5-28-81.7-59.7-110.3-44.4-40.5-109.7-61.8-188.7-61.8-72.3 0-137.4 18.1-183.3 50.9-25.6 18.4-45.4 41.2-58.6 67.7-13.5 27.1-20.3 58.4-20.3 92.9 0 29.5 5.7 54.5 17.3 76.5 8.3 15.7 19.6 29.5 34.1 42H72c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h433.2c2.1.4 3.9.8 5.9 1.2 30.9 6.2 49.5 10.4 66.6 15.2 23 6.5 40.6 13.3 55.2 21.5 35.8 20.2 53.3 49.2 53.3 89 0 35.3-15.5 66.8-43.6 88.8-30.5 23.9-75.6 36.4-130.5 36.4-43.7 0-80.7-8.5-110.2-25-29.1-16.3-49.1-39.8-59.7-69.5-.8-2.2-1.7-5.2-2.7-9-1.2-4.4-5.3-7.5-9.7-7.5h-79.7c-5.6 0-10.1 4.6-10.1 10.1v1c.2 2.3.4 4.2.6 5.7 6.5 48.8 30.3 88.8 70.7 118.8 47.1 34.8 113.4 53.2 191.8 53.2 84.2 0 154.8-19.8 204.2-57.3 25-18.9 44.2-42.2 57.1-69 13-27.1 19.7-57.9 19.7-91.5 0-31.8-5.8-58.4-17.8-81.4-5.8-11.2-13.1-21.5-21.8-30.8H952c4.4 0 8-3.6 8-8v-60a8 8 0 0 0-8-7.9z")),t.SwapOutline=l("swap",i,s(a,"M847.9 592H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h605.2L612.9 851c-4.1 5.2-.4 13 6.3 13h72.5c4.9 0 9.5-2.2 12.6-6.1l168.8-214.1c16.5-21 1.6-51.8-25.2-51.8zM872 356H266.8l144.3-183c4.1-5.2.4-13-6.3-13h-72.5c-4.9 0-9.5 2.2-12.6 6.1L150.9 380.2c-16.5 21-1.6 51.8 25.1 51.8h696c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z")),t.SyncOutline=l("sync",i,s(a,"M168 504.2c1-43.7 10-86.1 26.9-126 17.3-41 42.1-77.7 73.7-109.4S337 212.3 378 195c42.4-17.9 87.4-27 133.9-27s91.5 9.1 133.8 27A341.5 341.5 0 0 1 755 268.8c9.9 9.9 19.2 20.4 27.8 31.4l-60.2 47a8 8 0 0 0 3 14.1l175.7 43c5 1.2 9.9-2.6 9.9-7.7l.8-180.9c0-6.7-7.7-10.5-12.9-6.3l-56.4 44.1C765.8 155.1 646.2 92 511.8 92 282.7 92 96.3 275.6 92 503.8a8 8 0 0 0 8 8.2h60c4.4 0 7.9-3.5 8-7.8zm756 7.8h-60c-4.4 0-7.9 3.5-8 7.8-1 43.7-10 86.1-26.9 126-17.3 41-42.1 77.8-73.7 109.4A342.45 342.45 0 0 1 512.1 856a342.24 342.24 0 0 1-243.2-100.8c-9.9-9.9-19.2-20.4-27.8-31.4l60.2-47a8 8 0 0 0-3-14.1l-175.7-43c-5-1.2-9.9 2.6-9.9 7.7l-.7 181c0 6.7 7.7 10.5 12.9 6.3l56.4-44.1C258.2 868.9 377.8 932 512.2 932c229.2 0 415.5-183.7 419.8-411.8a8 8 0 0 0-8-8.2z")),t.TableOutline=l("table",i,s(a,"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 208H676V232h212v136zm0 224H676V432h212v160zM412 432h200v160H412V432zm200-64H412V232h200v136zm-476 64h212v160H136V432zm0-200h212v136H136V232zm0 424h212v136H136V656zm276 0h200v136H412V656zm476 136H676V656h212v136z")),t.TeamOutline=l("team",i,s(a,"M824.2 699.9a301.55 301.55 0 0 0-86.4-60.4C783.1 602.8 812 546.8 812 484c0-110.8-92.4-201.7-203.2-200-109.1 1.7-197 90.6-197 200 0 62.8 29 118.8 74.2 155.5a300.95 300.95 0 0 0-86.4 60.4C345 754.6 314 826.8 312 903.8a8 8 0 0 0 8 8.2h56c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5A226.62 226.62 0 0 1 612 684c60.9 0 118.2 23.7 161.3 66.8C814.5 792 838 846.3 840 904.3c.1 4.3 3.7 7.7 8 7.7h56a8 8 0 0 0 8-8.2c-2-77-33-149.2-87.8-203.9zM612 612c-34.2 0-66.4-13.3-90.5-37.5a126.86 126.86 0 0 1-37.5-91.8c.3-32.8 13.4-64.5 36.3-88 24-24.6 56.1-38.3 90.4-38.7 33.9-.3 66.8 12.9 91 36.6 24.8 24.3 38.4 56.8 38.4 91.4 0 34.2-13.3 66.3-37.5 90.5A127.3 127.3 0 0 1 612 612zM361.5 510.4c-.9-8.7-1.4-17.5-1.4-26.4 0-15.9 1.5-31.4 4.3-46.5.7-3.6-1.2-7.3-4.5-8.8-13.6-6.1-26.1-14.5-36.9-25.1a127.54 127.54 0 0 1-38.7-95.4c.9-32.1 13.8-62.6 36.3-85.6 24.7-25.3 57.9-39.1 93.2-38.7 31.9.3 62.7 12.6 86 34.4 7.9 7.4 14.7 15.6 20.4 24.4 2 3.1 5.9 4.4 9.3 3.2 17.6-6.1 36.2-10.4 55.3-12.4 5.6-.6 8.8-6.6 6.3-11.6-32.5-64.3-98.9-108.7-175.7-109.9-110.9-1.7-203.3 89.2-203.3 199.9 0 62.8 28.9 118.8 74.2 155.5-31.8 14.7-61.1 35-86.5 60.4-54.8 54.7-85.8 126.9-87.8 204a8 8 0 0 0 8 8.2h56.1c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5 29.4-29.4 65.4-49.8 104.7-59.7 3.9-1 6.5-4.7 6-8.7z")),t.TaobaoOutline=l("taobao",i,s(a,"M168.5 273.7a68.7 68.7 0 1 0 137.4 0 68.7 68.7 0 1 0-137.4 0zm730 79.2s-23.7-184.4-426.9-70.1c17.3-30 25.6-49.5 25.6-49.5L396.4 205s-40.6 132.6-113 194.4c0 0 70.1 40.6 69.4 39.4 20.1-20.1 38.2-40.6 53.7-60.4 16.1-7 31.5-13.6 46.7-19.8-18.6 33.5-48.7 83.8-78.8 115.6l42.4 37s28.8-27.7 60.4-61.2h36v61.8H372.9v49.5h140.3v118.5c-1.7 0-3.6 0-5.4-.2-15.4-.7-39.5-3.3-49-18.2-11.5-18.1-3-51.5-2.4-71.9h-97l-3.4 1.8s-35.5 159.1 102.3 155.5c129.1 3.6 203-36 238.6-63.1l14.2 52.6 79.6-33.2-53.9-131.9-64.6 20.1 12.1 45.2c-16.6 12.4-35.6 21.7-56.2 28.4V561.3h137.1v-49.5H628.1V450h137.6v-49.5H521.3c17.6-21.4 31.5-41.1 35-53.6l-42.5-11.6c182.8-65.5 284.5-54.2 283.6 53.2v282.8s10.8 97.1-100.4 90.1l-60.2-12.9-14.2 57.1S882.5 880 903.7 680.2c21.3-200-5.2-327.3-5.2-327.3zm-707.4 18.3l-45.4 69.7 83.6 52.1s56 28.5 29.4 81.9C233.8 625.5 112 736.3 112 736.3l109 68.1c75.4-163.7 70.5-142 89.5-200.7 19.5-60.1 23.7-105.9-9.4-139.1-42.4-42.6-47-46.6-110-93.4z")),t.ToTopOutline=l("to-top",i,s(a,"M885 780H165c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h720c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zM400 325.7h73.9V664c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V325.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 171a8 8 0 0 0-12.6 0l-112 141.7c-4.1 5.3-.4 13 6.3 13z")),t.TrademarkOutline=l("trademark",i,s(a,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm87.5-334.7c34.8-12.8 78.4-49 78.4-119.2 0-71.2-45.5-131.1-144.2-131.1H378c-4.4 0-8 3.6-8 8v410c0 4.4 3.6 8 8 8h54.5c4.4 0 8-3.6 8-8V561.2h88.7l74.6 159.2c1.3 2.8 4.1 4.6 7.2 4.6h62a7.9 7.9 0 0 0 7.1-11.5l-80.6-164.2zM522 505h-81.5V357h83.4c48 0 80.9 25.3 80.9 75.5 0 46.9-29.8 72.5-82.8 72.5z")),t.TransactionOutline=l("transaction",i,s(a,"M668.6 320c0-4.4-3.6-8-8-8h-54.5c-3 0-5.8 1.7-7.1 4.4l-84.7 168.8H511l-84.7-168.8a8 8 0 0 0-7.1-4.4h-55.7c-1.3 0-2.6.3-3.8 1-3.9 2.1-5.3 7-3.2 10.8l103.9 191.6h-57c-4.4 0-8 3.6-8 8v27.1c0 4.4 3.6 8 8 8h76v39h-76c-4.4 0-8 3.6-8 8v27.1c0 4.4 3.6 8 8 8h76V704c0 4.4 3.6 8 8 8h49.9c4.4 0 8-3.6 8-8v-63.5h76.3c4.4 0 8-3.6 8-8v-27.1c0-4.4-3.6-8-8-8h-76.3v-39h76.3c4.4 0 8-3.6 8-8v-27.1c0-4.4-3.6-8-8-8H564l103.7-191.6c.5-1.1.9-2.4.9-3.7zM157.9 504.2a352.7 352.7 0 0 1 103.5-242.4c32.5-32.5 70.3-58.1 112.4-75.9 43.6-18.4 89.9-27.8 137.6-27.8 47.8 0 94.1 9.3 137.6 27.8 42.1 17.8 79.9 43.4 112.4 75.9 10 10 19.3 20.5 27.9 31.4l-50 39.1a8 8 0 0 0 3 14.1l156.8 38.3c5 1.2 9.9-2.6 9.9-7.7l.8-161.5c0-6.7-7.7-10.5-12.9-6.3l-47.8 37.4C770.7 146.3 648.6 82 511.5 82 277 82 86.3 270.1 82 503.8a8 8 0 0 0 8 8.2h60c4.3 0 7.8-3.5 7.9-7.8zM934 512h-60c-4.3 0-7.9 3.5-8 7.8a352.7 352.7 0 0 1-103.5 242.4 352.57 352.57 0 0 1-112.4 75.9c-43.6 18.4-89.9 27.8-137.6 27.8s-94.1-9.3-137.6-27.8a352.57 352.57 0 0 1-112.4-75.9c-10-10-19.3-20.5-27.9-31.4l49.9-39.1a8 8 0 0 0-3-14.1l-156.8-38.3c-5-1.2-9.9 2.6-9.9 7.7l-.8 161.7c0 6.7 7.7 10.5 12.9 6.3l47.8-37.4C253.3 877.7 375.4 942 512.5 942 747 942 937.7 753.9 942 520.2a8 8 0 0 0-8-8.2z")),t.TwitterOutline=l("twitter",i,s(a,"M928 254.3c-30.6 13.2-63.9 22.7-98.2 26.4a170.1 170.1 0 0 0 75-94 336.64 336.64 0 0 1-108.2 41.2A170.1 170.1 0 0 0 672 174c-94.5 0-170.5 76.6-170.5 170.6 0 13.2 1.6 26.4 4.2 39.1-141.5-7.4-267.7-75-351.6-178.5a169.32 169.32 0 0 0-23.2 86.1c0 59.2 30.1 111.4 76 142.1a172 172 0 0 1-77.1-21.7v2.1c0 82.9 58.6 151.6 136.7 167.4a180.6 180.6 0 0 1-44.9 5.8c-11.1 0-21.6-1.1-32.2-2.6C211 652 273.9 701.1 348.8 702.7c-58.6 45.9-132 72.9-211.7 72.9-14.3 0-27.5-.5-41.2-2.1C171.5 822 261.2 850 357.8 850 671.4 850 843 590.2 843 364.7c0-7.4 0-14.8-.5-22.2 33.2-24.3 62.3-54.4 85.5-88.2z")),t.UnderlineOutline=l("underline",i,s(a,"M824 804H200c-4.4 0-8 3.4-8 7.6v60.8c0 4.2 3.6 7.6 8 7.6h624c4.4 0 8-3.4 8-7.6v-60.8c0-4.2-3.6-7.6-8-7.6zm-312-76c69.4 0 134.6-27.1 183.8-76.2C745 602.7 772 537.4 772 468V156c0-6.6-5.4-12-12-12h-60c-6.6 0-12 5.4-12 12v312c0 97-79 176-176 176s-176-79-176-176V156c0-6.6-5.4-12-12-12h-60c-6.6 0-12 5.4-12 12v312c0 69.4 27.1 134.6 76.2 183.8C377.3 701 442.6 728 512 728z")),t.UndoOutline=l("undo",i,s(a,"M511.4 124C290.5 124.3 112 303 112 523.9c0 128 60.2 242 153.8 315.2l-37.5 48c-4.1 5.3-.3 13 6.3 12.9l167-.8c5.2 0 9-4.9 7.7-9.9L369.8 727a8 8 0 0 0-14.1-3L315 776.1c-10.2-8-20-16.7-29.3-26a318.64 318.64 0 0 1-68.6-101.7C200.4 609 192 567.1 192 523.9s8.4-85.1 25.1-124.5c16.1-38.1 39.2-72.3 68.6-101.7 29.4-29.4 63.6-52.5 101.7-68.6C426.9 212.4 468.8 204 512 204s85.1 8.4 124.5 25.1c38.1 16.1 72.3 39.2 101.7 68.6 29.4 29.4 52.5 63.6 68.6 101.7 16.7 39.4 25.1 81.3 25.1 124.5s-8.4 85.1-25.1 124.5a318.64 318.64 0 0 1-68.6 101.7c-7.5 7.5-15.3 14.5-23.4 21.2a7.93 7.93 0 0 0-1.2 11.1l39.4 50.5c2.8 3.5 7.9 4.1 11.4 1.3C854.5 760.8 912 649.1 912 523.9c0-221.1-179.4-400.2-400.6-399.9z")),t.UnorderedListOutline=l("unordered-list",i,s(a,"M912 192H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM104 228a56 56 0 1 0 112 0 56 56 0 1 0-112 0zm0 284a56 56 0 1 0 112 0 56 56 0 1 0-112 0zm0 284a56 56 0 1 0 112 0 56 56 0 1 0-112 0z")),t.UpOutline=l("up",i,s(a,"M890.5 755.3L537.9 269.2c-12.8-17.6-39-17.6-51.7 0L133.5 755.3A8 8 0 0 0 140 768h75c5.1 0 9.9-2.5 12.9-6.6L512 369.8l284.1 391.6c3 4.1 7.8 6.6 12.9 6.6h75c6.5 0 10.3-7.4 6.5-12.7z")),t.UploadOutline=l("upload",i,s(a,"M400 317.7h73.9V656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V317.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 163a8 8 0 0 0-12.6 0l-112 141.7c-4.1 5.3-.4 13 6.3 13zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z")),t.UserAddOutline=l("user-add",i,s(a,"M678.3 642.4c24.2-13 51.9-20.4 81.4-20.4h.1c3 0 4.4-3.6 2.2-5.6a371.67 371.67 0 0 0-103.7-65.8c-.4-.2-.8-.3-1.2-.5C719.2 505 759.6 431.7 759.6 349c0-137-110.8-248-247.5-248S264.7 212 264.7 349c0 82.7 40.4 156 102.6 201.1-.4.2-.8.3-1.2.5-44.7 18.9-84.8 46-119.3 80.6a373.42 373.42 0 0 0-80.4 119.5A373.6 373.6 0 0 0 137 888.8a8 8 0 0 0 8 8.2h59.9c4.3 0 7.9-3.5 8-7.8 2-77.2 32.9-149.5 87.6-204.3C357 628.2 432.2 597 512.2 597c56.7 0 111.1 15.7 158 45.1a8.1 8.1 0 0 0 8.1.3zM512.2 521c-45.8 0-88.9-17.9-121.4-50.4A171.2 171.2 0 0 1 340.5 349c0-45.9 17.9-89.1 50.3-121.6S466.3 177 512.2 177s88.9 17.9 121.4 50.4A171.2 171.2 0 0 1 683.9 349c0 45.9-17.9 89.1-50.3 121.6C601.1 503.1 558 521 512.2 521zM880 759h-84v-84c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v84h-84c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h84v84c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-84h84c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.UsergroupAddOutline=l("usergroup-add",i,s(a,"M892 772h-80v-80c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v80h-80c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h80v80c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-80h80c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM373.5 498.4c-.9-8.7-1.4-17.5-1.4-26.4 0-15.9 1.5-31.4 4.3-46.5.7-3.6-1.2-7.3-4.5-8.8-13.6-6.1-26.1-14.5-36.9-25.1a127.54 127.54 0 0 1-38.7-95.4c.9-32.1 13.8-62.6 36.3-85.6 24.7-25.3 57.9-39.1 93.2-38.7 31.9.3 62.7 12.6 86 34.4 7.9 7.4 14.7 15.6 20.4 24.4 2 3.1 5.9 4.4 9.3 3.2 17.6-6.1 36.2-10.4 55.3-12.4 5.6-.6 8.8-6.6 6.3-11.6-32.5-64.3-98.9-108.7-175.7-109.9-110.8-1.7-203.2 89.2-203.2 200 0 62.8 28.9 118.8 74.2 155.5-31.8 14.7-61.1 35-86.5 60.4-54.8 54.7-85.8 126.9-87.8 204a8 8 0 0 0 8 8.2h56.1c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5 29.4-29.4 65.4-49.8 104.7-59.7 3.8-1.1 6.4-4.8 5.9-8.8zM824 472c0-109.4-87.9-198.3-196.9-200C516.3 270.3 424 361.2 424 472c0 62.8 29 118.8 74.2 155.5a300.95 300.95 0 0 0-86.4 60.4C357 742.6 326 814.8 324 891.8a8 8 0 0 0 8 8.2h56c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5C505.8 695.7 563 672 624 672c110.4 0 200-89.5 200-200zm-109.5 90.5C690.3 586.7 658.2 600 624 600s-66.3-13.3-90.5-37.5a127.26 127.26 0 0 1-37.5-91.8c.3-32.8 13.4-64.5 36.3-88 24-24.6 56.1-38.3 90.4-38.7 33.9-.3 66.8 12.9 91 36.6 24.8 24.3 38.4 56.8 38.4 91.4-.1 34.2-13.4 66.3-37.6 90.5z")),t.UserOutline=l("user",i,s(a,"M858.5 763.6a374 374 0 0 0-80.6-119.5 375.63 375.63 0 0 0-119.5-80.6c-.4-.2-.8-.3-1.2-.5C719.5 518 760 444.7 760 362c0-137-111-248-248-248S264 225 264 362c0 82.7 40.5 156 102.8 201.1-.4.2-.8.3-1.2.5-44.8 18.9-85 46-119.5 80.6a375.63 375.63 0 0 0-80.6 119.5A371.7 371.7 0 0 0 136 901.8a8 8 0 0 0 8 8.2h60c4.4 0 7.9-3.5 8-7.8 2-77.2 33-149.5 87.8-204.3 56.7-56.7 132-87.9 212.2-87.9s155.5 31.2 212.2 87.9C779 752.7 810 825 812 902.2c.1 4.4 3.6 7.8 8 7.8h60a8 8 0 0 0 8-8.2c-1-47.8-10.9-94.3-29.5-138.2zM512 534c-45.9 0-89.1-17.9-121.6-50.4S340 407.9 340 362c0-45.9 17.9-89.1 50.4-121.6S466.1 190 512 190s89.1 17.9 121.6 50.4S684 316.1 684 362c0 45.9-17.9 89.1-50.4 121.6S557.9 534 512 534z")),t.UserDeleteOutline=l("user-delete",i,s(a,"M678.3 655.4c24.2-13 51.9-20.4 81.4-20.4h.1c3 0 4.4-3.6 2.2-5.6a371.67 371.67 0 0 0-103.7-65.8c-.4-.2-.8-.3-1.2-.5C719.2 518 759.6 444.7 759.6 362c0-137-110.8-248-247.5-248S264.7 225 264.7 362c0 82.7 40.4 156 102.6 201.1-.4.2-.8.3-1.2.5-44.7 18.9-84.8 46-119.3 80.6a373.42 373.42 0 0 0-80.4 119.5A373.6 373.6 0 0 0 137 901.8a8 8 0 0 0 8 8.2h59.9c4.3 0 7.9-3.5 8-7.8 2-77.2 32.9-149.5 87.6-204.3C357 641.2 432.2 610 512.2 610c56.7 0 111.1 15.7 158 45.1a8.1 8.1 0 0 0 8.1.3zM512.2 534c-45.8 0-88.9-17.9-121.4-50.4A171.2 171.2 0 0 1 340.5 362c0-45.9 17.9-89.1 50.3-121.6S466.3 190 512.2 190s88.9 17.9 121.4 50.4A171.2 171.2 0 0 1 683.9 362c0 45.9-17.9 89.1-50.3 121.6C601.1 516.1 558 534 512.2 534zM880 772H640c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h240c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.UsergroupDeleteOutline=l("usergroup-delete",i,s(a,"M888 784H664c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h224c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM373.5 510.4c-.9-8.7-1.4-17.5-1.4-26.4 0-15.9 1.5-31.4 4.3-46.5.7-3.6-1.2-7.3-4.5-8.8-13.6-6.1-26.1-14.5-36.9-25.1a127.54 127.54 0 0 1-38.7-95.4c.9-32.1 13.8-62.6 36.3-85.6 24.7-25.3 57.9-39.1 93.2-38.7 31.9.3 62.7 12.6 86 34.4 7.9 7.4 14.7 15.6 20.4 24.4 2 3.1 5.9 4.4 9.3 3.2 17.6-6.1 36.2-10.4 55.3-12.4 5.6-.6 8.8-6.6 6.3-11.6-32.5-64.3-98.9-108.7-175.7-109.9-110.9-1.7-203.3 89.2-203.3 199.9 0 62.8 28.9 118.8 74.2 155.5-31.8 14.7-61.1 35-86.5 60.4-54.8 54.7-85.8 126.9-87.8 204a8 8 0 0 0 8 8.2h56.1c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5 29.4-29.4 65.4-49.8 104.7-59.7 3.9-1 6.5-4.7 6-8.7zM824 484c0-109.4-87.9-198.3-196.9-200C516.3 282.3 424 373.2 424 484c0 62.8 29 118.8 74.2 155.5a300.95 300.95 0 0 0-86.4 60.4C357 754.6 326 826.8 324 903.8a8 8 0 0 0 8 8.2h56c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5C505.8 707.7 563 684 624 684c110.4 0 200-89.5 200-200zm-109.5 90.5C690.3 598.7 658.2 612 624 612s-66.3-13.3-90.5-37.5a127.26 127.26 0 0 1-37.5-91.8c.3-32.8 13.4-64.5 36.3-88 24-24.6 56.1-38.3 90.4-38.7 33.9-.3 66.8 12.9 91 36.6 24.8 24.3 38.4 56.8 38.4 91.4-.1 34.2-13.4 66.3-37.6 90.5z")),t.VerticalAlignBottomOutline=l("vertical-align-bottom",i,s(a,"M859.9 780H164.1c-4.5 0-8.1 3.6-8.1 8v60c0 4.4 3.6 8 8.1 8h695.8c4.5 0 8.1-3.6 8.1-8v-60c0-4.4-3.6-8-8.1-8zM505.7 669a8 8 0 0 0 12.6 0l112-141.7c4.1-5.2.4-12.9-6.3-12.9h-74.1V176c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v338.3H400c-6.7 0-10.4 7.7-6.3 12.9l112 141.8z")),t.VerticalAlignMiddleOutline=l("vertical-align-middle",i,s(a,"M859.9 474H164.1c-4.5 0-8.1 3.6-8.1 8v60c0 4.4 3.6 8 8.1 8h695.8c4.5 0 8.1-3.6 8.1-8v-60c0-4.4-3.6-8-8.1-8zm-353.6-74.7c2.9 3.7 8.5 3.7 11.3 0l100.8-127.5c3.7-4.7.4-11.7-5.7-11.7H550V104c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v156h-62.8c-6 0-9.4 7-5.7 11.7l100.8 127.6zm11.4 225.4a7.14 7.14 0 0 0-11.3 0L405.6 752.3a7.23 7.23 0 0 0 5.7 11.7H474v156c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V764h62.8c6 0 9.4-7 5.7-11.7L517.7 624.7z")),t.VerticalAlignTopOutline=l("vertical-align-top",i,s(a,"M859.9 168H164.1c-4.5 0-8.1 3.6-8.1 8v60c0 4.4 3.6 8 8.1 8h695.8c4.5 0 8.1-3.6 8.1-8v-60c0-4.4-3.6-8-8.1-8zM518.3 355a8 8 0 0 0-12.6 0l-112 141.7a7.98 7.98 0 0 0 6.3 12.9h73.9V848c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V509.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 355z")),t.VerticalRightOutline=l("vertical-right",i,s(a,"M326 164h-64c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h64c4.4 0 8-3.6 8-8V172c0-4.4-3.6-8-8-8zm444 72.4V164c0-6.8-7.9-10.5-13.1-6.1L335 512l421.9 354.1c5.2 4.4 13.1.7 13.1-6.1v-72.4c0-9.4-4.2-18.4-11.4-24.5L459.4 512l299.2-251.1c7.2-6.1 11.4-15.1 11.4-24.5z")),t.VerticalLeftOutline=l("vertical-left",i,s(a,"M762 164h-64c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h64c4.4 0 8-3.6 8-8V172c0-4.4-3.6-8-8-8zm-508 0v72.4c0 9.5 4.2 18.4 11.4 24.5L564.6 512 265.4 763.1c-7.2 6.1-11.4 15-11.4 24.5V860c0 6.8 7.9 10.5 13.1 6.1L689 512 267.1 157.9A7.95 7.95 0 0 0 254 164z")),t.WifiOutline=l("wifi",i,s(a,"M723 620.5C666.8 571.6 593.4 542 513 542s-153.8 29.6-210.1 78.6a8.1 8.1 0 0 0-.8 11.2l36 42.9c2.9 3.4 8 3.8 11.4.9C393.1 637.2 450.3 614 513 614s119.9 23.2 163.5 61.5c3.4 2.9 8.5 2.5 11.4-.9l36-42.9c2.8-3.3 2.4-8.3-.9-11.2zm117.4-140.1C751.7 406.5 637.6 362 513 362s-238.7 44.5-327.5 118.4a8.05 8.05 0 0 0-1 11.3l36 42.9c2.8 3.4 7.9 3.8 11.2 1C308 472.2 406.1 434 513 434s205 38.2 281.2 101.6c3.4 2.8 8.4 2.4 11.2-1l36-42.9c2.8-3.4 2.4-8.5-1-11.3zm116.7-139C835.7 241.8 680.3 182 511 182c-168.2 0-322.6 59-443.7 157.4a8 8 0 0 0-1.1 11.4l36 42.9c2.8 3.3 7.8 3.8 11.1 1.1C222 306.7 360.3 254 511 254c151.8 0 291 53.5 400 142.7 3.4 2.8 8.4 2.3 11.2-1.1l36-42.9c2.9-3.4 2.4-8.5-1.1-11.3zM448 778a64 64 0 1 0 128 0 64 64 0 1 0-128 0z")),t.ZhihuOutline=l("zhihu",i,s(a,"M564.7 230.1V803h60l25.2 71.4L756.3 803h131.5V230.1H564.7zm247.7 497h-59.9l-75.1 50.4-17.8-50.4h-18V308.3h170.7v418.8zM526.1 486.9H393.3c2.1-44.9 4.3-104.3 6.6-172.9h130.9l-.1-8.1c0-.6-.2-14.7-2.3-29.1-2.1-15-6.6-34.9-21-34.9H287.8c4.4-20.6 15.7-69.7 29.4-93.8l6.4-11.2-12.9-.7c-.8 0-19.6-.9-41.4 10.6-35.7 19-51.7 56.4-58.7 84.4-18.4 73.1-44.6 123.9-55.7 145.6-3.3 6.4-5.3 10.2-6.2 12.8-1.8 4.9-.8 9.8 2.8 13 10.5 9.5 38.2-2.9 38.5-3 .6-.3 1.3-.6 2.2-1 13.9-6.3 55.1-25 69.8-84.5h56.7c.7 32.2 3.1 138.4 2.9 172.9h-141l-2.1 1.5c-23.1 16.9-30.5 63.2-30.8 65.2l-1.4 9.2h167c-12.3 78.3-26.5 113.4-34 127.4-3.7 7-7.3 14-10.7 20.8-21.3 42.2-43.4 85.8-126.3 153.6-3.6 2.8-7 8-4.8 13.7 2.4 6.3 9.3 9.1 24.6 9.1 5.4 0 11.8-.3 19.4-1 49.9-4.4 100.8-18 135.1-87.6 17-35.1 31.7-71.7 43.9-108.9L497 850l5-12c.8-1.9 19-46.3 5.1-95.9l-.5-1.8-108.1-123-22 16.6c6.4-26.1 10.6-49.9 12.5-71.1h158.7v-8c0-40.1-18.5-63.9-19.2-64.9l-2.4-3z")),t.WeiboOutline=l("weibo",i,s(a,"M457.3 543c-68.1-17.7-145 16.2-174.6 76.2-30.1 61.2-1 129.1 67.8 151.3 71.2 23 155.2-12.2 184.4-78.3 28.7-64.6-7.2-131-77.6-149.2zm-52 156.2c-13.8 22.1-43.5 31.7-65.8 21.6-22-10-28.5-35.7-14.6-57.2 13.7-21.4 42.3-31 64.4-21.7 22.4 9.5 29.6 35 16 57.3zm45.5-58.5c-5 8.6-16.1 12.7-24.7 9.1-8.5-3.5-11.2-13.1-6.4-21.5 5-8.4 15.6-12.4 24.1-9.1 8.7 3.2 11.8 12.9 7 21.5zm334.5-197.2c15 4.8 31-3.4 35.9-18.3 11.8-36.6 4.4-78.4-23.2-109a111.39 111.39 0 0 0-106-34.3 28.45 28.45 0 0 0-21.9 33.8 28.39 28.39 0 0 0 33.8 21.8c18.4-3.9 38.3 1.8 51.9 16.7a54.2 54.2 0 0 1 11.3 53.3 28.45 28.45 0 0 0 18.2 36zm99.8-206c-56.7-62.9-140.4-86.9-217.7-70.5a32.98 32.98 0 0 0-25.4 39.3 33.12 33.12 0 0 0 39.3 25.5c55-11.7 114.4 5.4 154.8 50.1 40.3 44.7 51.2 105.7 34 159.1-5.6 17.4 3.9 36 21.3 41.7 17.4 5.6 36-3.9 41.6-21.2v-.1c24.1-75.4 8.9-161.1-47.9-223.9zM729 499c-12.2-3.6-20.5-6.1-14.1-22.1 13.8-34.7 15.2-64.7.3-86-28-40.1-104.8-37.9-192.8-1.1 0 0-27.6 12.1-20.6-9.8 13.5-43.5 11.5-79.9-9.6-101-47.7-47.8-174.6 1.8-283.5 110.6C127.3 471.1 80 557.5 80 632.2 80 775.1 263.2 862 442.5 862c235 0 391.3-136.5 391.3-245 0-65.5-55.2-102.6-104.8-118zM443 810.8c-143 14.1-266.5-50.5-275.8-144.5-9.3-93.9 99.2-181.5 242.2-195.6 143-14.2 266.5 50.5 275.8 144.4C694.4 709 586 796.6 443 810.8z")),t.WomanOutline=l("woman",i,s(a,"M712.8 548.8c53.6-53.6 83.2-125 83.2-200.8 0-75.9-29.5-147.2-83.2-200.8C659.2 93.6 587.8 64 512 64s-147.2 29.5-200.8 83.2C257.6 200.9 228 272.1 228 348c0 63.8 20.9 124.4 59.4 173.9 7.3 9.4 15.2 18.3 23.7 26.9 8.5 8.5 17.5 16.4 26.8 23.7 39.6 30.8 86.3 50.4 136.1 57V736H360c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h114v140c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V812h114c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8H550V629.5c61.5-8.2 118.2-36.1 162.8-80.7zM512 556c-55.6 0-107.7-21.6-147.1-60.9C325.6 455.8 304 403.6 304 348s21.6-107.7 60.9-147.1C404.2 161.5 456.4 140 512 140s107.7 21.6 147.1 60.9C698.4 240.2 720 292.4 720 348s-21.6 107.7-60.9 147.1C619.7 534.4 567.6 556 512 556z")),t.ZoomInOutline=l("zoom-in",i,s(a,"M637 443H519V309c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v134H325c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h118v134c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V519h118c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zm284 424L775 721c122.1-148.9 113.6-369.5-26-509-148-148.1-388.4-148.1-537 0-148.1 148.6-148.1 389 0 537 139.5 139.6 360.1 148.1 509 26l146 146c3.2 2.8 8.3 2.8 11 0l43-43c2.8-2.7 2.8-7.8 0-11zM696 696c-118.8 118.7-311.2 118.7-430 0-118.7-118.8-118.7-311.2 0-430 118.8-118.7 311.2-118.7 430 0 118.7 118.8 118.7 311.2 0 430z")),t.AccountBookTwoTone=l("account-book",c,(function(e,t){return s(a,[t,"M712 304c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-48H384v48c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-48H184v584h656V256H712v48zm-65.6 121.8l-89.3 164.1h49.1c4.4 0 8 3.6 8 8v21.3c0 4.4-3.6 8-8 8h-65.4v33.7h65.4c4.4 0 8 3.6 8 8v21.3c0 4.4-3.6 8-8 8h-65.4V752c0 4.4-3.6 8-8 8h-41.3c-4.4 0-8-3.6-8-8v-53.8h-65.1c-4.4 0-8-3.6-8-8v-21.3c0-4.4 3.6-8 8-8h65.1v-33.7h-65.1c-4.4 0-8-3.6-8-8v-21.3c0-4.4 3.6-8 8-8H467l-89.3-164c-2.1-3.9-.7-8.8 3.2-10.9 1.1-.7 2.5-1 3.8-1h46a8 8 0 0 1 7.1 4.4l73.4 145.4h2.8l73.4-145.4c1.3-2.7 4.1-4.4 7.1-4.4h45c4.5 0 8 3.6 7.9 8 0 1.3-.4 2.6-1 3.8z"],[e,"M639.5 414h-45c-3 0-5.8 1.7-7.1 4.4L514 563.8h-2.8l-73.4-145.4a8 8 0 0 0-7.1-4.4h-46c-1.3 0-2.7.3-3.8 1-3.9 2.1-5.3 7-3.2 10.9l89.3 164h-48.6c-4.4 0-8 3.6-8 8v21.3c0 4.4 3.6 8 8 8h65.1v33.7h-65.1c-4.4 0-8 3.6-8 8v21.3c0 4.4 3.6 8 8 8h65.1V752c0 4.4 3.6 8 8 8h41.3c4.4 0 8-3.6 8-8v-53.8h65.4c4.4 0 8-3.6 8-8v-21.3c0-4.4-3.6-8-8-8h-65.4v-33.7h65.4c4.4 0 8-3.6 8-8v-21.3c0-4.4-3.6-8-8-8h-49.1l89.3-164.1c.6-1.2 1-2.5 1-3.8.1-4.4-3.4-8-7.9-8z"],[e,"M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v584z"])})),t.ZoomOutOutline=l("zoom-out",i,s(a,"M637 443H325c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h312c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zm284 424L775 721c122.1-148.9 113.6-369.5-26-509-148-148.1-388.4-148.1-537 0-148.1 148.6-148.1 389 0 537 139.5 139.6 360.1 148.1 509 26l146 146c3.2 2.8 8.3 2.8 11 0l43-43c2.8-2.7 2.8-7.8 0-11zM696 696c-118.8 118.7-311.2 118.7-430 0-118.7-118.8-118.7-311.2 0-430 118.8-118.7 311.2-118.7 430 0 118.7 118.8 118.7 311.2 0 430z")),t.AlertTwoTone=l("alert",c,(function(e,t){return s(a,[t,"M340 585c0-5.5 4.5-10 10-10h44c5.5 0 10 4.5 10 10v171h355V563c0-136.4-110.6-247-247-247S265 426.6 265 563v193h75V585z"],[e,"M216.9 310.5l39.6-39.6c3.1-3.1 3.1-8.2 0-11.3l-67.9-67.9a8.03 8.03 0 0 0-11.3 0l-39.6 39.6a8.03 8.03 0 0 0 0 11.3l67.9 67.9c3.1 3.1 8.1 3.1 11.3 0zm669.6-79.2l-39.6-39.6a8.03 8.03 0 0 0-11.3 0l-67.9 67.9a8.03 8.03 0 0 0 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l67.9-67.9c3.1-3.2 3.1-8.2 0-11.3zM484 180h56c4.4 0 8-3.6 8-8V76c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v96c0 4.4 3.6 8 8 8zm348 712H192c-17.7 0-32 14.3-32 32v24c0 4.4 3.6 8 8 8h688c4.4 0 8-3.6 8-8v-24c0-17.7-14.3-32-32-32zm-639-96c0 17.7 14.3 32 32 32h574c17.7 0 32-14.3 32-32V563c0-176.2-142.8-319-319-319S193 386.8 193 563v233zm72-233c0-136.4 110.6-247 247-247s247 110.6 247 247v193H404V585c0-5.5-4.5-10-10-10h-44c-5.5 0-10 4.5-10 10v171h-75V563z"])})),t.ApiTwoTone=l("api",c,(function(e,t){return s(a,[t,"M148.2 674.6zm106.7-92.3c-25 25-38.7 58.1-38.7 93.4s13.8 68.5 38.7 93.4c25 25 58.1 38.7 93.4 38.7 35.3 0 68.5-13.8 93.4-38.7l59.4-59.4-186.8-186.8-59.4 59.4zm420.8-366.1c-35.3 0-68.5 13.8-93.4 38.7l-59.4 59.4 186.8 186.8 59.4-59.4c24.9-25 38.7-58.1 38.7-93.4s-13.8-68.5-38.7-93.4c-25-25-58.1-38.7-93.4-38.7z"],[e,"M578.9 546.7a8.03 8.03 0 0 0-11.3 0L501 613.3 410.7 523l66.7-66.7c3.1-3.1 3.1-8.2 0-11.3L441 408.6a8.03 8.03 0 0 0-11.3 0L363 475.3l-43-43a7.85 7.85 0 0 0-5.7-2.3c-2 0-4.1.8-5.7 2.3L206.8 534.2a199.45 199.45 0 0 0-58.6 140.4c-.2 39.5 11.2 79.1 34.3 113.1l-76.1 76.1a8.03 8.03 0 0 0 0 11.3l42.4 42.4c1.6 1.6 3.6 2.3 5.7 2.3s4.1-.8 5.7-2.3l76.1-76.1c33.7 22.9 72.9 34.3 112.1 34.3 51.2 0 102.4-19.5 141.5-58.6l101.9-101.9c3.1-3.1 3.1-8.2 0-11.3l-43-43 66.7-66.7c3.1-3.1 3.1-8.2 0-11.3l-36.6-36.2zM441.7 769.1a131.32 131.32 0 0 1-93.4 38.7c-35.3 0-68.4-13.7-93.4-38.7-24.9-24.9-38.7-58.1-38.7-93.4s13.7-68.4 38.7-93.4l59.4-59.4 186.8 186.8-59.4 59.4zm476-620.3l-42.4-42.4c-1.6-1.6-3.6-2.3-5.7-2.3s-4.1.8-5.7 2.3l-76.1 76.1a199.27 199.27 0 0 0-112.1-34.3c-51.2 0-102.4 19.5-141.5 58.6L432.3 308.7a8.03 8.03 0 0 0 0 11.3L704 591.7c1.6 1.6 3.6 2.3 5.7 2.3 2 0 4.1-.8 5.7-2.3l101.9-101.9c68.9-69 77-175.7 24.3-253.5l76.1-76.1c3.1-3.2 3.1-8.3 0-11.4zM769.1 441.7l-59.4 59.4-186.8-186.8 59.4-59.4c24.9-24.9 58.1-38.7 93.4-38.7s68.4 13.7 93.4 38.7c24.9 24.9 38.7 58.1 38.7 93.4s-13.8 68.4-38.7 93.4z"])})),t.AppstoreTwoTone=l("appstore",c,(function(e,t){return s(a,[e,"M864 144H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H612V212h200v200zM464 544H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H212V612h200v200zm52-668H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H212V212h200v200zm452 132H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H612V612h200v200z"],[t,"M212 212h200v200H212zm400 0h200v200H612zM212 612h200v200H212zm400 0h200v200H612z"])})),t.BankTwoTone=l("bank",c,(function(e,t){return s(a,[t,"M240.9 393.9h542.2L512 196.7z"],[e,"M894 462c30.9 0 43.8-39.7 18.7-58L530.8 126.2a31.81 31.81 0 0 0-37.6 0L111.3 404c-25.1 18.2-12.2 58 18.8 58H192v374h-72c-4.4 0-8 3.6-8 8v52c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-52c0-4.4-3.6-8-8-8h-72V462h62zM381 836H264V462h117v374zm189 0H453V462h117v374zm190 0H642V462h118v374zM240.9 393.9L512 196.7l271.1 197.2H240.9z"])})),t.AudioTwoTone=l("audio",c,(function(e,t){return s(a,[t,"M512 552c54.3 0 98-43.2 98-96V232c0-52.8-43.7-96-98-96s-98 43.2-98 96v224c0 52.8 43.7 96 98 96z"],[e,"M842 454c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 140.3-113.7 254-254 254S258 594.3 258 454c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 168.7 126.6 307.9 290 327.6V884H326.7c-13.7 0-24.7 14.3-24.7 32v36c0 4.4 2.8 8 6.2 8h407.6c3.4 0 6.2-3.6 6.2-8v-36c0-17.7-11-32-24.7-32H548V782.1c165.3-18 294-158 294-328.1z"],[e,"M512 624c93.9 0 170-75.2 170-168V232c0-92.8-76.1-168-170-168s-170 75.2-170 168v224c0 92.8 76.1 168 170 168zm-98-392c0-52.8 43.7-96 98-96s98 43.2 98 96v224c0 52.8-43.7 96-98 96s-98-43.2-98-96V232z"])})),t.BellTwoTone=l("bell",c,(function(e,t){return s(a,[t,"M512 220c-55.6 0-107.8 21.6-147.1 60.9S304 372.4 304 428v340h416V428c0-55.6-21.6-107.8-60.9-147.1S567.6 220 512 220zm280 208c0-141.1-104.3-257.8-240-277.2v.1c135.7 19.4 240 136 240 277.1zM472 150.9v-.1C336.3 170.2 232 286.9 232 428c0-141.1 104.3-257.7 240-277.1z"],[e,"M816 768h-24V428c0-141.1-104.3-257.7-240-277.1V112c0-22.1-17.9-40-40-40s-40 17.9-40 40v38.9c-135.7 19.4-240 136-240 277.1v340h-24c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h216c0 61.8 50.2 112 112 112s112-50.2 112-112h216c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM512 888c-26.5 0-48-21.5-48-48h96c0 26.5-21.5 48-48 48zm208-120H304V428c0-55.6 21.6-107.8 60.9-147.1S456.4 220 512 220c55.6 0 107.8 21.6 147.1 60.9S720 372.4 720 428v340z"])})),t.BookTwoTone=l("book",c,(function(e,t){return s(a,[e,"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-260 72h96v209.9L621.5 312 572 347.4V136zM232 888V136h280v296.9c0 3.3 1 6.6 3 9.3a15.9 15.9 0 0 0 22.3 3.7l83.8-59.9 81.4 59.4c2.7 2 6 3.1 9.4 3.1 8.8 0 16-7.2 16-16V136h64v752H232z"],[t,"M668 345.9V136h-96v211.4l49.5-35.4z"],[t,"M727.9 136v296.5c0 8.8-7.2 16-16 16-3.4 0-6.7-1.1-9.4-3.1L621.1 386l-83.8 59.9a15.9 15.9 0 0 1-22.3-3.7c-2-2.7-3-6-3-9.3V136H232v752h559.9V136h-64z"])})),t.BoxPlotTwoTone=l("box-plot",c,(function(e,t){return s(a,[t,"M296 368h88v288h-88zm152 0h280v288H448z"],[e,"M952 224h-52c-4.4 0-8 3.6-8 8v248h-92V304c0-4.4-3.6-8-8-8H232c-4.4 0-8 3.6-8 8v176h-92V232c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V548h92v172c0 4.4 3.6 8 8 8h560c4.4 0 8-3.6 8-8V548h92v244c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V232c0-4.4-3.6-8-8-8zM384 656h-88V368h88v288zm344 0H448V368h280v288z"])})),t.BugTwoTone=l("bug",c,(function(e,t){return s(a,[e,"M308 412v268c0 36.78 9.68 71.96 27.8 102.9a205.39 205.39 0 0 0 73.3 73.3A202.68 202.68 0 0 0 512 884c36.78 0 71.96-9.68 102.9-27.8a205.39 205.39 0 0 0 73.3-73.3A202.68 202.68 0 0 0 716 680V412H308zm484 172v96c0 6.5-.22 12.95-.66 19.35C859.94 728.64 908 796.7 908 876a8 8 0 0 1-8 8h-56a8 8 0 0 1-8-8c0-44.24-23.94-82.89-59.57-103.7a278.63 278.63 0 0 1-22.66 49.02 281.39 281.39 0 0 1-100.45 100.45C611.84 946.07 563.55 960 512 960s-99.84-13.93-141.32-38.23a281.39 281.39 0 0 1-100.45-100.45 278.63 278.63 0 0 1-22.66-49.02A119.95 119.95 0 0 0 188 876a8 8 0 0 1-8 8h-56a8 8 0 0 1-8-8c0-79.3 48.07-147.36 116.66-176.65A284.12 284.12 0 0 1 232 680v-96H84a8 8 0 0 1-8-8v-56a8 8 0 0 1 8-8h148V412c-76.77 0-139-62.23-139-139a8 8 0 0 1 8-8h60a8 8 0 0 1 8 8 63 63 0 0 0 63 63h560a63 63 0 0 0 63-63 8 8 0 0 1 8-8h60a8 8 0 0 1 8 8c0 76.77-62.23 139-139 139v100h148a8 8 0 0 1 8 8v56a8 8 0 0 1-8 8H792zM368 272a8 8 0 0 1-8 8h-56a8 8 0 0 1-8-8c0-40.04 8.78-76.75 25.9-108.07a184.57 184.57 0 0 1 74.03-74.03C427.25 72.78 463.96 64 504 64h16c40.04 0 76.75 8.78 108.07 25.9a184.57 184.57 0 0 1 74.03 74.03C719.22 195.25 728 231.96 728 272a8 8 0 0 1-8 8h-56a8 8 0 0 1-8-8c0-28.33-5.94-53.15-17.08-73.53a112.56 112.56 0 0 0-45.39-45.4C573.15 141.95 548.33 136 520 136h-16c-28.33 0-53.15 5.94-73.53 17.08a112.56 112.56 0 0 0-45.4 45.39C373.95 218.85 368 243.67 368 272z"],[t,"M308 412v268c0 36.78 9.68 71.96 27.8 102.9a205.39 205.39 0 0 0 73.3 73.3A202.68 202.68 0 0 0 512 884c36.78 0 71.96-9.68 102.9-27.8a205.39 205.39 0 0 0 73.3-73.3A202.68 202.68 0 0 0 716 680V412H308z"])})),t.BulbTwoTone=l("bulb",c,(function(e,t){return s(a,[t,"M512 136c-141.4 0-256 114.6-256 256 0 92.5 49.4 176.3 128.1 221.8l35.9 20.8V752h184V634.6l35.9-20.8C718.6 568.3 768 484.5 768 392c0-141.4-114.6-256-256-256z"],[e,"M632 888H392c-4.4 0-8 3.6-8 8v32c0 17.7 14.3 32 32 32h192c17.7 0 32-14.3 32-32v-32c0-4.4-3.6-8-8-8zM512 64c-181.1 0-328 146.9-328 328 0 121.4 66 227.4 164 284.1V792c0 17.7 14.3 32 32 32h264c17.7 0 32-14.3 32-32V676.1c98-56.7 164-162.7 164-284.1 0-181.1-146.9-328-328-328zm127.9 549.8L604 634.6V752H420V634.6l-35.9-20.8C305.4 568.3 256 484.5 256 392c0-141.4 114.6-256 256-256s256 114.6 256 256c0 92.5-49.4 176.3-128.1 221.8z"])})),t.CalculatorTwoTone=l("calculator",c,(function(e,t){return s(a,[e,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"],[t,"M184 840h656V184H184v656zm256.2-75h-50.8c-2.2 0-4.5-1.1-5.9-2.9L348 718.6l-35.5 43.5a7.38 7.38 0 0 1-5.9 2.9h-50.8c-6.6 0-10.2-7.9-5.8-13.1l62.7-76.8-61.2-74.9c-4.3-5.2-.7-13.1 5.9-13.1h50.9c2.2 0 4.5 1.1 5.9 2.9l34 41.6 34-41.6c1.5-1.9 3.6-2.9 5.9-2.9h50.8c6.6 0 10.2 7.9 5.9 13.1L383.5 675l62.7 76.8c4.2 5.3.6 13.2-6 13.2zM576 335c0-2.2 1.4-4 3.2-4h193.5c1.9 0 3.3 1.8 3.3 4v48c0 2.2-1.4 4-3.2 4H579.2c-1.8 0-3.2-1.8-3.2-4v-48zm0 265c0-2.2 1.4-4 3.2-4h193.5c1.9 0 3.3 1.8 3.3 4v48c0 2.2-1.4 4-3.2 4H579.2c-1.8 0-3.2-1.8-3.2-4v-48zm0 104c0-2.2 1.4-4 3.2-4h193.5c1.9 0 3.3 1.8 3.3 4v48c0 2.2-1.4 4-3.2 4H579.2c-1.8 0-3.2-1.8-3.2-4v-48zM248 335c0-2.2 1.4-4 3.2-4H320v-68.8c0-1.8 1.8-3.2 4-3.2h48c2.2 0 4 1.4 4 3.2V331h68.7c1.9 0 3.3 1.8 3.3 4v48c0 2.2-1.4 4-3.2 4H376v68.7c0 1.9-1.8 3.3-4 3.3h-48c-2.2 0-4-1.4-4-3.2V387h-68.8c-1.8 0-3.2-1.8-3.2-4v-48z"],[e,"M383.5 675l61.3-74.8c4.3-5.2.7-13.1-5.9-13.1h-50.8c-2.3 0-4.4 1-5.9 2.9l-34 41.6-34-41.6a7.69 7.69 0 0 0-5.9-2.9h-50.9c-6.6 0-10.2 7.9-5.9 13.1l61.2 74.9-62.7 76.8c-4.4 5.2-.8 13.1 5.8 13.1h50.8c2.3 0 4.4-1 5.9-2.9l35.5-43.5 35.5 43.5c1.4 1.8 3.7 2.9 5.9 2.9h50.8c6.6 0 10.2-7.9 6-13.2L383.5 675zM251.2 387H320v68.8c0 1.8 1.8 3.2 4 3.2h48c2.2 0 4-1.4 4-3.3V387h68.8c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H376v-68.8c0-1.8-1.8-3.2-4-3.2h-48c-2.2 0-4 1.4-4 3.2V331h-68.8c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4zm328 369h193.6c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H579.2c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4zm0-104h193.6c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H579.2c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4zm0-265h193.6c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H579.2c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4z"])})),t.BuildTwoTone=l("build",c,(function(e,t){return s(a,[t,"M144 546h200v200H144zm268-268h200v200H412z"],[e,"M916 210H376c-17.7 0-32 14.3-32 32v236H108c-17.7 0-32 14.3-32 32v272c0 17.7 14.3 32 32 32h540c17.7 0 32-14.3 32-32V546h236c17.7 0 32-14.3 32-32V242c0-17.7-14.3-32-32-32zM344 746H144V546h200v200zm268 0H412V546h200v200zm0-268H412V278h200v200zm268 0H680V278h200v200z"])})),t.CalendarTwoTone=l("calendar",c,(function(e,t){return s(a,[t,"M712 304c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-48H384v48c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-48H184v136h656V256H712v48z"],[e,"M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V460h656v380zm0-448H184V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v136z"])})),t.CameraTwoTone=l("camera",c,(function(e,t){return s(a,[t,"M864 320H677.2l-17.1-47.8-22.9-64.2H386.7l-22.9 64.2-17.1 47.8H160c-4.4 0-8 3.6-8 8v456c0 4.4 3.6 8 8 8h704c4.4 0 8-3.6 8-8V328c0-4.4-3.6-8-8-8zM512 704c-88.4 0-160-71.6-160-160s71.6-160 160-160 160 71.6 160 160-71.6 160-160 160z"],[e,"M512 384c-88.4 0-160 71.6-160 160s71.6 160 160 160 160-71.6 160-160-71.6-160-160-160zm0 256c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96z"],[e,"M864 248H728l-32.4-90.8a32.07 32.07 0 0 0-30.2-21.2H358.6c-13.5 0-25.6 8.5-30.1 21.2L296 248H160c-44.2 0-80 35.8-80 80v456c0 44.2 35.8 80 80 80h704c44.2 0 80-35.8 80-80V328c0-44.2-35.8-80-80-80zm8 536c0 4.4-3.6 8-8 8H160c-4.4 0-8-3.6-8-8V328c0-4.4 3.6-8 8-8h186.7l17.1-47.8 22.9-64.2h250.5l22.9 64.2 17.1 47.8H864c4.4 0 8 3.6 8 8v456z"])})),t.CarTwoTone=l("car",c,(function(e,t){return s(a,[t,"M199.6 474L184 517v237h656V517l-15.6-43H199.6zM264 621c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm388 75c0 4.4-3.6 8-8 8H380c-4.4 0-8-3.6-8-8v-84c0-4.4 3.6-8 8-8h40c4.4 0 8 3.6 8 8v36h168v-36c0-4.4 3.6-8 8-8h40c4.4 0 8 3.6 8 8v84zm108-75c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40z"],[e,"M720 581a40 40 0 1 0 80 0 40 40 0 1 0-80 0z"],[e,"M959 413.4L935.3 372a8 8 0 0 0-10.9-2.9l-50.7 29.6-78.3-216.2a63.9 63.9 0 0 0-60.9-44.4H301.2c-34.7 0-65.5 22.4-76.2 55.5l-74.6 205.2-50.8-29.6a8 8 0 0 0-10.9 2.9L65 413.4c-2.2 3.8-.9 8.6 2.9 10.8l60.4 35.2-14.5 40c-1.2 3.2-1.8 6.6-1.8 10v348.2c0 15.7 11.8 28.4 26.3 28.4h67.6c12.3 0 23-9.3 25.6-22.3l7.7-37.7h545.6l7.7 37.7c2.7 13 13.3 22.3 25.6 22.3h67.6c14.5 0 26.3-12.7 26.3-28.4V509.4c0-3.4-.6-6.8-1.8-10l-14.5-40 60.3-35.2a8 8 0 0 0 3-10.8zM292.7 218.1l.5-1.3.4-1.3c1.1-3.3 4.1-5.5 7.6-5.5h427.6l75.4 208H220l72.7-199.9zM840 754H184V517l15.6-43h624.8l15.6 43v237z"],[e,"M224 581a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm420 23h-40c-4.4 0-8 3.6-8 8v36H428v-36c0-4.4-3.6-8-8-8h-40c-4.4 0-8 3.6-8 8v84c0 4.4 3.6 8 8 8h264c4.4 0 8-3.6 8-8v-84c0-4.4-3.6-8-8-8z"])})),t.CarryOutTwoTone=l("carry-out",c,(function(e,t){return s(a,[e,"M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v584z"],[t,"M712 304c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-48H384v48c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-48H184v584h656V256H712v48zm-17.5 128.8L481.9 725.5a16.1 16.1 0 0 1-26 0l-126.4-174c-3.8-5.3 0-12.7 6.5-12.7h55.2c5.2 0 10 2.5 13 6.6l64.7 89 150.9-207.8c3-4.1 7.9-6.6 13-6.6H688c6.5 0 10.3 7.4 6.5 12.8z"],[e,"M688 420h-55.2c-5.1 0-10 2.5-13 6.6L468.9 634.4l-64.7-89c-3-4.1-7.8-6.6-13-6.6H336c-6.5 0-10.3 7.4-6.5 12.7l126.4 174a16.1 16.1 0 0 0 26 0l212.6-292.7c3.8-5.4 0-12.8-6.5-12.8z"])})),t.CheckCircleTwoTone=l("check-circle",c,(function(e,t){return s(a,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm193.4 225.7l-210.6 292a31.8 31.8 0 0 1-51.7 0L318.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.3 0 19.9 5 25.9 13.3l71.2 98.8 157.2-218c6-8.4 15.7-13.3 25.9-13.3H699c6.5 0 10.3 7.4 6.4 12.7z"],[e,"M699 353h-46.9c-10.2 0-19.9 4.9-25.9 13.3L469 584.3l-71.2-98.8c-6-8.3-15.6-13.3-25.9-13.3H325c-6.5 0-10.3 7.4-6.5 12.7l124.6 172.8a31.8 31.8 0 0 0 51.7 0l210.6-292c3.9-5.3.1-12.7-6.4-12.7z"])})),t.CheckSquareTwoTone=l("check-square",c,(function(e,t){return s(a,[e,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"],[t,"M184 840h656V184H184v656zm130-367.8h46.9c10.2 0 19.9 4.9 25.9 13.3l71.2 98.8 157.2-218c6-8.3 15.6-13.3 25.9-13.3H688c6.5 0 10.3 7.4 6.5 12.7l-210.6 292a31.8 31.8 0 0 1-51.7 0L307.5 484.9c-3.8-5.3 0-12.7 6.5-12.7z"],[e,"M432.2 657.7a31.8 31.8 0 0 0 51.7 0l210.6-292c3.8-5.3 0-12.7-6.5-12.7h-46.9c-10.3 0-19.9 5-25.9 13.3L458 584.3l-71.2-98.8c-6-8.4-15.7-13.3-25.9-13.3H314c-6.5 0-10.3 7.4-6.5 12.7l124.7 172.8z"])})),t.ClockCircleTwoTone=l("clock-circle",c,(function(e,t){return s(a,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm176.5 509.7l-28.6 39a7.99 7.99 0 0 1-11.2 1.7L483.3 569.8a7.92 7.92 0 0 1-3.3-6.5V288c0-4.4 3.6-8 8-8h48.1c4.4 0 8 3.6 8 8v247.5l142.6 103.1c3.6 2.5 4.4 7.5 1.8 11.1z"],[e,"M686.7 638.6L544.1 535.5V288c0-4.4-3.6-8-8-8H488c-4.4 0-8 3.6-8 8v275.3c0 2.6 1.2 5 3.3 6.5l165.4 120.6c3.6 2.6 8.6 1.9 11.2-1.7l28.6-39c2.6-3.6 1.8-8.6-1.8-11.1z"])})),t.CloseCircleTwoTone=l("close-circle",c,(function(e,t){return s(a,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm171.8 527.1c1.2 1.5 1.9 3.3 1.9 5.2 0 4.5-3.6 8-8 8l-66-.3-99.3-118.4-99.3 118.5-66.1.3c-4.4 0-8-3.6-8-8 0-1.9.7-3.7 1.9-5.2L471 512.3l-130.1-155a8.32 8.32 0 0 1-1.9-5.2c0-4.5 3.6-8 8-8l66.1.3 99.3 118.4 99.4-118.5 66-.3c4.4 0 8 3.6 8 8 0 1.9-.6 3.8-1.8 5.2l-130.1 155 129.9 154.9z"],[e,"M685.8 352c0-4.4-3.6-8-8-8l-66 .3-99.4 118.5-99.3-118.4-66.1-.3c-4.4 0-8 3.5-8 8 0 1.9.7 3.7 1.9 5.2l130.1 155-130.1 154.9a8.32 8.32 0 0 0-1.9 5.2c0 4.4 3.6 8 8 8l66.1-.3 99.3-118.5L611.7 680l66 .3c4.4 0 8-3.5 8-8 0-1.9-.7-3.7-1.9-5.2L553.9 512.2l130.1-155c1.2-1.4 1.8-3.3 1.8-5.2z"])})),t.CloudTwoTone=l("cloud",c,(function(e,t){return s(a,[t,"M791.9 492l-37.8-10-13.8-36.5c-8.6-22.7-20.6-44.1-35.7-63.4a245.73 245.73 0 0 0-52.4-49.9c-41.1-28.9-89.5-44.2-140-44.2s-98.9 15.3-140 44.2a245.6 245.6 0 0 0-52.4 49.9 240.47 240.47 0 0 0-35.7 63.4l-13.9 36.6-37.9 9.9a125.7 125.7 0 0 0-66.1 43.7A123.1 123.1 0 0 0 140 612c0 33.1 12.9 64.3 36.3 87.7 23.4 23.4 54.5 36.3 87.6 36.3h496.2c33.1 0 64.2-12.9 87.6-36.3A123.3 123.3 0 0 0 884 612c0-56.2-37.8-105.5-92.1-120z"],[e,"M811.4 418.7C765.6 297.9 648.9 212 512.2 212S258.8 297.8 213 418.6C127.3 441.1 64 519.1 64 612c0 110.5 89.5 200 199.9 200h496.2C870.5 812 960 722.5 960 612c0-92.7-63.1-170.7-148.6-193.3zm36.3 281a123.07 123.07 0 0 1-87.6 36.3H263.9c-33.1 0-64.2-12.9-87.6-36.3A123.3 123.3 0 0 1 140 612c0-28 9.1-54.3 26.2-76.3a125.7 125.7 0 0 1 66.1-43.7l37.9-9.9 13.9-36.6c8.6-22.8 20.6-44.1 35.7-63.4a245.6 245.6 0 0 1 52.4-49.9c41.1-28.9 89.5-44.2 140-44.2s98.9 15.3 140 44.2c19.9 14 37.5 30.8 52.4 49.9 15.1 19.3 27.1 40.7 35.7 63.4l13.8 36.5 37.8 10c54.3 14.5 92.1 63.8 92.1 120 0 33.1-12.9 64.3-36.3 87.7z"])})),t.CloseSquareTwoTone=l("close-square",c,(function(e,t){return s(a,[e,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"],[t,"M184 840h656V184H184v656zm163.9-473.9A7.95 7.95 0 0 1 354 353h58.9c4.7 0 9.2 2.1 12.3 5.7L512 462.2l86.8-103.5c3-3.6 7.5-5.7 12.3-5.7H670c6.8 0 10.5 7.9 6.1 13.1L553.8 512l122.3 145.9c4.4 5.2.7 13.1-6.1 13.1h-58.9c-4.7 0-9.2-2.1-12.3-5.7L512 561.8l-86.8 103.5c-3 3.6-7.5 5.7-12.3 5.7H354c-6.8 0-10.5-7.9-6.1-13.1L470.2 512 347.9 366.1z"],[e,"M354 671h58.9c4.8 0 9.3-2.1 12.3-5.7L512 561.8l86.8 103.5c3.1 3.6 7.6 5.7 12.3 5.7H670c6.8 0 10.5-7.9 6.1-13.1L553.8 512l122.3-145.9c4.4-5.2.7-13.1-6.1-13.1h-58.9c-4.8 0-9.3 2.1-12.3 5.7L512 462.2l-86.8-103.5c-3.1-3.6-7.6-5.7-12.3-5.7H354c-6.8 0-10.5 7.9-6.1 13.1L470.2 512 347.9 657.9A7.95 7.95 0 0 0 354 671z"])})),t.CodeTwoTone=l("code",c,(function(e,t){return s(a,[e,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"],[t,"M184 840h656V184H184v656zm339.5-223h185c4.1 0 7.5 3.6 7.5 8v48c0 4.4-3.4 8-7.5 8h-185c-4.1 0-7.5-3.6-7.5-8v-48c0-4.4 3.4-8 7.5-8zM308 610.3c0-2.3 1.1-4.6 2.9-6.1L420.7 512l-109.8-92.2a7.63 7.63 0 0 1-2.9-6.1V351c0-6.8 7.9-10.5 13.1-6.1l192 160.9c3.9 3.2 3.9 9.1 0 12.3l-192 161c-5.2 4.4-13.1.7-13.1-6.1v-62.7z"],[e,"M321.1 679.1l192-161c3.9-3.2 3.9-9.1 0-12.3l-192-160.9A7.95 7.95 0 0 0 308 351v62.7c0 2.4 1 4.6 2.9 6.1L420.7 512l-109.8 92.2a8.1 8.1 0 0 0-2.9 6.1V673c0 6.8 7.9 10.5 13.1 6.1zM516 673c0 4.4 3.4 8 7.5 8h185c4.1 0 7.5-3.6 7.5-8v-48c0-4.4-3.4-8-7.5-8h-185c-4.1 0-7.5 3.6-7.5 8v48z"])})),t.CompassTwoTone=l("compass",c,(function(e,t){return s(a,[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zM327.6 701.7c-2 .9-4.4 0-5.3-2.1-.4-1-.4-2.2 0-3.2L421 470.9 553.1 603l-225.5 98.7zm375.1-375.1L604 552.1 471.9 420l225.5-98.7c2-.9 4.4 0 5.3 2.1.4 1 .4 2.1 0 3.2z"],[e,"M322.3 696.4c-.4 1-.4 2.2 0 3.2.9 2.1 3.3 3 5.3 2.1L553.1 603 421 470.9l-98.7 225.5zm375.1-375.1L471.9 420 604 552.1l98.7-225.5c.4-1.1.4-2.2 0-3.2-.9-2.1-3.3-3-5.3-2.1z"],[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"])})),t.ContactsTwoTone=l("contacts",c,(function(e,t){return s(a,[t,"M460.3 526a51.7 52 0 1 0 103.4 0 51.7 52 0 1 0-103.4 0z"],[t,"M768 352c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-56H548v56c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-56H328v56c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-56H136v496h752V296H768v56zM661 736h-43.8c-4.2 0-7.6-3.3-7.9-7.5-3.8-50.5-46-90.5-97.2-90.5s-93.4 39.9-97.2 90.5c-.3 4.2-3.7 7.5-7.9 7.5h-43.9a8 8 0 0 1-8-8.4c2.8-53.3 31.9-99.6 74.6-126.1-18.1-20-29.1-46.4-29.1-75.5 0-61.9 49.9-112 111.4-112s111.4 50.1 111.4 112c0 29.1-11 55.6-29.1 75.5 42.7 26.4 71.9 72.8 74.7 126.1a8 8 0 0 1-8 8.4z"],[e,"M594.3 601.5a111.8 111.8 0 0 0 29.1-75.5c0-61.9-49.9-112-111.4-112s-111.4 50.1-111.4 112c0 29.1 11 55.5 29.1 75.5a158.09 158.09 0 0 0-74.6 126.1 8 8 0 0 0 8 8.4H407c4.2 0 7.6-3.3 7.9-7.5 3.8-50.6 46-90.5 97.2-90.5s93.4 40 97.2 90.5c.3 4.2 3.7 7.5 7.9 7.5H661a8 8 0 0 0 8-8.4c-2.8-53.3-32-99.7-74.7-126.1zM512 578c-28.5 0-51.7-23.3-51.7-52s23.2-52 51.7-52 51.7 23.3 51.7 52-23.2 52-51.7 52z"],[e,"M928 224H768v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H548v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H328v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H96c-17.7 0-32 14.3-32 32v576c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32zm-40 568H136V296h120v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h148v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h148v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h120v496z"])})),t.ContainerTwoTone=l("container",c,(function(e,t){return s(a,[t,"M635 771.7c-34.5 28.6-78.2 44.3-123 44.3s-88.5-15.8-123-44.3a194.02 194.02 0 0 1-59.1-84.7H232v201h560V687h-97.9c-11.6 32.8-32 62.3-59.1 84.7z"],[e,"M320 501h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z"],[e,"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-40 824H232V687h97.9c11.6 32.8 32 62.3 59.1 84.7 34.5 28.5 78.2 44.3 123 44.3s88.5-15.7 123-44.3c27.1-22.4 47.5-51.9 59.1-84.7H792v201zm0-264H643.6l-5.2 24.7C626.4 708.5 573.2 752 512 752s-114.4-43.5-126.5-103.3l-5.2-24.7H232V136h560v488z"],[e,"M320 341h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z"])})),t.ControlTwoTone=l("control",c,(function(e,t){return s(a,[e,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"],[t,"M616 440a36 36 0 1 0 72 0 36 36 0 1 0-72 0zM340.4 601.5l1.5 2.4c0 .1.1.1.1.2l.9 1.2c.1.1.2.2.2.3 1 1.3 2 2.5 3.2 3.6l.2.2c.4.4.8.8 1.2 1.1.8.8 1.7 1.5 2.6 2.1h.1l1.2.9c.1.1.3.2.4.3 1.2.8 2.5 1.6 3.9 2.2.2.1.5.2.7.4.4.2.7.3 1.1.5.3.1.7.3 1 .4.5.2 1 .4 1.5.5.4.1.9.3 1.3.4l.9.3 1.4.3c.2.1.5.1.7.2.7.1 1.4.3 2.1.4.2 0 .4 0 .6.1.6.1 1.1.1 1.7.2.2 0 .4 0 .7.1.8 0 1.5.1 2.3.1s1.5 0 2.3-.1c.2 0 .4 0 .7-.1.6 0 1.2-.1 1.7-.2.2 0 .4 0 .6-.1.7-.1 1.4-.2 2.1-.4.2-.1.5-.1.7-.2l1.4-.3.9-.3c.4-.1.9-.3 1.3-.4.5-.2 1-.4 1.5-.5.3-.1.7-.3 1-.4.4-.2.7-.3 1.1-.5.2-.1.5-.2.7-.4 1.3-.7 2.6-1.4 3.9-2.2.1-.1.3-.2.4-.3l1.2-.9h.1c.9-.7 1.8-1.4 2.6-2.1.4-.4.8-.7 1.2-1.1l.2-.2c1.1-1.1 2.2-2.4 3.2-3.6.1-.1.2-.2.2-.3l.9-1.2c0-.1.1-.1.1-.2l1.5-2.4c.1-.2.2-.3.3-.5 2.7-5.1 4.3-10.9 4.3-17s-1.6-12-4.3-17c-.1-.2-.2-.4-.3-.5l-1.5-2.4c0-.1-.1-.1-.1-.2l-.9-1.2c-.1-.1-.2-.2-.2-.3-1-1.3-2-2.5-3.2-3.6l-.2-.2c-.4-.4-.8-.8-1.2-1.1-.8-.8-1.7-1.5-2.6-2.1h-.1l-1.2-.9c-.1-.1-.3-.2-.4-.3-1.2-.8-2.5-1.6-3.9-2.2-.2-.1-.5-.2-.7-.4-.4-.2-.7-.3-1.1-.5-.3-.1-.7-.3-1-.4-.5-.2-1-.4-1.5-.5-.4-.1-.9-.3-1.3-.4l-.9-.3-1.4-.3c-.2-.1-.5-.1-.7-.2-.7-.1-1.4-.3-2.1-.4-.2 0-.4 0-.6-.1-.6-.1-1.1-.1-1.7-.2-.2 0-.4 0-.7-.1-.8 0-1.5-.1-2.3-.1s-1.5 0-2.3.1c-.2 0-.4 0-.7.1-.6 0-1.2.1-1.7.2-.2 0-.4 0-.6.1-.7.1-1.4.2-2.1.4-.2.1-.5.1-.7.2l-1.4.3-.9.3c-.4.1-.9.3-1.3.4-.5.2-1 .4-1.5.5-.3.1-.7.3-1 .4-.4.2-.7.3-1.1.5-.2.1-.5.2-.7.4-1.3.7-2.6 1.4-3.9 2.2-.1.1-.3.2-.4.3l-1.2.9h-.1c-.9.7-1.8 1.4-2.6 2.1-.4.4-.8.7-1.2 1.1l-.2.2a54.8 54.8 0 0 0-3.2 3.6c-.1.1-.2.2-.2.3l-.9 1.2c0 .1-.1.1-.1.2l-1.5 2.4c-.1.2-.2.3-.3.5-2.7 5.1-4.3 10.9-4.3 17s1.6 12 4.3 17c.1.2.2.3.3.5z"],[t,"M184 840h656V184H184v656zm436.4-499.1c-.2 0-.3.1-.4.1v-77c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v77c-.2 0-.3-.1-.4-.1 42 13.4 72.4 52.7 72.4 99.1 0 46.4-30.4 85.7-72.4 99.1.2 0 .3-.1.4-.1v221c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V539c.2 0 .3.1.4.1-42-13.4-72.4-52.7-72.4-99.1 0-46.4 30.4-85.7 72.4-99.1zM340 485V264c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v221c41.7 13.6 72 52.8 72 99s-30.3 85.5-72 99v77c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-77c-41.7-13.6-72-52.8-72-99s30.3-85.5 72-99z"],[e,"M340 683v77c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-77c41.7-13.5 72-52.8 72-99s-30.3-85.4-72-99V264c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v221c-41.7 13.5-72 52.8-72 99s30.3 85.4 72 99zm.1-116c.1-.2.2-.3.3-.5l1.5-2.4c0-.1.1-.1.1-.2l.9-1.2c0-.1.1-.2.2-.3 1-1.2 2.1-2.5 3.2-3.6l.2-.2c.4-.4.8-.7 1.2-1.1.8-.7 1.7-1.4 2.6-2.1h.1l1.2-.9c.1-.1.3-.2.4-.3 1.3-.8 2.6-1.5 3.9-2.2.2-.2.5-.3.7-.4.4-.2.7-.3 1.1-.5.3-.1.7-.3 1-.4.5-.1 1-.3 1.5-.5.4-.1.9-.3 1.3-.4l.9-.3 1.4-.3c.2-.1.5-.1.7-.2.7-.2 1.4-.3 2.1-.4.2-.1.4-.1.6-.1.5-.1 1.1-.2 1.7-.2.3-.1.5-.1.7-.1.8-.1 1.5-.1 2.3-.1s1.5.1 2.3.1c.3.1.5.1.7.1.6.1 1.1.1 1.7.2.2.1.4.1.6.1.7.1 1.4.3 2.1.4.2.1.5.1.7.2l1.4.3.9.3c.4.1.9.3 1.3.4.5.1 1 .3 1.5.5.3.1.7.3 1 .4.4.2.7.3 1.1.5.2.2.5.3.7.4 1.4.6 2.7 1.4 3.9 2.2.1.1.3.2.4.3l1.2.9h.1c.9.6 1.8 1.3 2.6 2.1.4.3.8.7 1.2 1.1l.2.2c1.2 1.1 2.2 2.3 3.2 3.6 0 .1.1.2.2.3l.9 1.2c0 .1.1.1.1.2l1.5 2.4A36.03 36.03 0 0 1 408 584c0 6.1-1.6 11.9-4.3 17-.1.2-.2.3-.3.5l-1.5 2.4c0 .1-.1.1-.1.2l-.9 1.2c0 .1-.1.2-.2.3-1 1.2-2.1 2.5-3.2 3.6l-.2.2c-.4.4-.8.7-1.2 1.1-.8.7-1.7 1.4-2.6 2.1h-.1l-1.2.9c-.1.1-.3.2-.4.3-1.3.8-2.6 1.5-3.9 2.2-.2.2-.5.3-.7.4-.4.2-.7.3-1.1.5-.3.1-.7.3-1 .4-.5.1-1 .3-1.5.5-.4.1-.9.3-1.3.4l-.9.3-1.4.3c-.2.1-.5.1-.7.2-.7.2-1.4.3-2.1.4-.2.1-.4.1-.6.1-.5.1-1.1.2-1.7.2-.3.1-.5.1-.7.1-.8.1-1.5.1-2.3.1s-1.5-.1-2.3-.1c-.3-.1-.5-.1-.7-.1-.6-.1-1.1-.1-1.7-.2-.2-.1-.4-.1-.6-.1-.7-.1-1.4-.3-2.1-.4-.2-.1-.5-.1-.7-.2l-1.4-.3-.9-.3c-.4-.1-.9-.3-1.3-.4-.5-.1-1-.3-1.5-.5-.3-.1-.7-.3-1-.4-.4-.2-.7-.3-1.1-.5-.2-.2-.5-.3-.7-.4-1.4-.6-2.7-1.4-3.9-2.2-.1-.1-.3-.2-.4-.3l-1.2-.9h-.1c-.9-.6-1.8-1.3-2.6-2.1-.4-.3-.8-.7-1.2-1.1l-.2-.2c-1.2-1.1-2.2-2.3-3.2-3.6 0-.1-.1-.2-.2-.3l-.9-1.2c0-.1-.1-.1-.1-.2l-1.5-2.4c-.1-.2-.2-.3-.3-.5-2.7-5-4.3-10.9-4.3-17s1.6-11.9 4.3-17zm280.3-27.9c-.1 0-.2-.1-.4-.1v221c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V539c-.1 0-.2.1-.4.1 42-13.4 72.4-52.7 72.4-99.1 0-46.4-30.4-85.7-72.4-99.1.1 0 .2.1.4.1v-77c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v77c.1 0 .2-.1.4-.1-42 13.4-72.4 52.7-72.4 99.1 0 46.4 30.4 85.7 72.4 99.1zM652 404c19.9 0 36 16.1 36 36s-16.1 36-36 36-36-16.1-36-36 16.1-36 36-36z"])})),t.CopyTwoTone=l("copy",c,(function(e,t){return s(a,[t,"M232 706h142c22.1 0 40 17.9 40 40v142h250V264H232v442z"],[e,"M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32z"],[e,"M704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z"])})),t.CreditCardTwoTone=l("credit-card",c,(function(e,t){return s(a,[t,"M136 792h752V440H136v352zm507-144c0-4.4 3.6-8 8-8h165c4.4 0 8 3.6 8 8v72c0 4.4-3.6 8-8 8H651c-4.4 0-8-3.6-8-8v-72zM136 232h752v120H136z"],[e,"M651 728h165c4.4 0 8-3.6 8-8v-72c0-4.4-3.6-8-8-8H651c-4.4 0-8 3.6-8 8v72c0 4.4 3.6 8 8 8z"],[e,"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 632H136V440h752v352zm0-440H136V232h752v120z"])})),t.CrownTwoTone=l("crown",c,(function(e,t){return s(a,[t,"M911.9 283.9v.5L835.5 865c-1 8-7.9 14-15.9 14H204.5c-8.1 0-14.9-6.1-16-14l-76.4-580.6v-.6 1.6L188.5 866c1.1 7.9 7.9 14 16 14h615.1c8 0 14.9-6 15.9-14l76.4-580.6c.1-.5.1-1 0-1.5z"],[t,"M773.6 810.6l53.9-409.4-139.8 86.1L512 252.9 336.3 487.3l-139.8-86.1 53.8 409.4h523.3zm-374.2-189c0-62.1 50.5-112.6 112.6-112.6s112.6 50.5 112.6 112.6v1c0 62.1-50.5 112.6-112.6 112.6s-112.6-50.5-112.6-112.6v-1z"],[e,"M512 734.2c61.9 0 112.3-50.2 112.6-112.1v-.5c0-62.1-50.5-112.6-112.6-112.6s-112.6 50.5-112.6 112.6v.5c.3 61.9 50.7 112.1 112.6 112.1zm0-160.9c26.6 0 48.2 21.6 48.2 48.3 0 26.6-21.6 48.3-48.2 48.3s-48.2-21.6-48.2-48.3c0-26.6 21.6-48.3 48.2-48.3z"],[e,"M188.5 865c1.1 7.9 7.9 14 16 14h615.1c8 0 14.9-6 15.9-14l76.4-580.6v-.5c.3-6.4-6.7-10.8-12.3-7.4L705 396.4 518.4 147.5a8.06 8.06 0 0 0-12.9 0L319 396.4 124.3 276.5c-5.5-3.4-12.6.9-12.2 7.3v.6L188.5 865zm147.8-377.7L512 252.9l175.7 234.4 139.8-86.1-53.9 409.4H250.3l-53.8-409.4 139.8 86.1z"])})),t.CustomerServiceTwoTone=l("customer-service",c,(function(e,t){return s(a,[t,"M696 632h128v192H696zm-496 0h128v192H200z"],[e,"M512 128c-212.1 0-384 171.9-384 384v360c0 13.3 10.7 24 24 24h184c35.3 0 64-28.7 64-64V624c0-35.3-28.7-64-64-64H200v-48c0-172.3 139.7-312 312-312s312 139.7 312 312v48H688c-35.3 0-64 28.7-64 64v208c0 35.3 28.7 64 64 64h184c13.3 0 24-10.7 24-24V512c0-212.1-171.9-384-384-384zM328 632v192H200V632h128zm496 192H696V632h128v192z"])})),t.DashboardTwoTone=l("dashboard",c,(function(e,t){return s(a,[t,"M512 188c-99.3 0-192.7 38.7-263 109-70.3 70.2-109 163.6-109 263 0 105.6 44.5 205.5 122.6 276h498.8A371.12 371.12 0 0 0 884 560c0-99.3-38.7-192.7-109-263-70.2-70.3-163.6-109-263-109zm-30 44c0-4.4 3.6-8 8-8h44c4.4 0 8 3.6 8 8v80c0 4.4-3.6 8-8 8h-44c-4.4 0-8-3.6-8-8v-80zM270 582c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8v-44c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v44zm90.7-204.4l-31.1 31.1a8.03 8.03 0 0 1-11.3 0l-56.6-56.6a8.03 8.03 0 0 1 0-11.3l31.1-31.1c3.1-3.1 8.2-3.1 11.3 0l56.6 56.6c3.1 3.1 3.1 8.2 0 11.3zm291.1 83.5l-84.5 84.5c5 18.7.2 39.4-14.5 54.1a55.95 55.95 0 0 1-79.2 0 55.95 55.95 0 0 1 0-79.2 55.87 55.87 0 0 1 54.1-14.5l84.5-84.5c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3c3.1 3.1 3.1 8.2 0 11.3zm43-52.4l-31.1-31.1a8.03 8.03 0 0 1 0-11.3l56.6-56.6c3.1-3.1 8.2-3.1 11.3 0l31.1 31.1c3.1 3.1 3.1 8.2 0 11.3l-56.6 56.6a8.03 8.03 0 0 1-11.3 0zM846 538v44c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8v-44c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8z"],[e,"M623.5 421.5a8.03 8.03 0 0 0-11.3 0L527.7 506c-18.7-5-39.4-.2-54.1 14.5a55.95 55.95 0 0 0 0 79.2 55.95 55.95 0 0 0 79.2 0 55.87 55.87 0 0 0 14.5-54.1l84.5-84.5c3.1-3.1 3.1-8.2 0-11.3l-28.3-28.3zM490 320h44c4.4 0 8-3.6 8-8v-80c0-4.4-3.6-8-8-8h-44c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8z"],[e,"M924.8 385.6a446.7 446.7 0 0 0-96-142.4 446.7 446.7 0 0 0-142.4-96C631.1 123.8 572.5 112 512 112s-119.1 11.8-174.4 35.2a446.7 446.7 0 0 0-142.4 96 446.7 446.7 0 0 0-96 142.4C75.8 440.9 64 499.5 64 560c0 132.7 58.3 257.7 159.9 343.1l1.7 1.4c5.8 4.8 13.1 7.5 20.6 7.5h531.7c7.5 0 14.8-2.7 20.6-7.5l1.7-1.4C901.7 817.7 960 692.7 960 560c0-60.5-11.9-119.1-35.2-174.4zM761.4 836H262.6A371.12 371.12 0 0 1 140 560c0-99.4 38.7-192.8 109-263 70.3-70.3 163.7-109 263-109 99.4 0 192.8 38.7 263 109 70.3 70.3 109 163.7 109 263 0 105.6-44.5 205.5-122.6 276z"],[e,"M762.7 340.8l-31.1-31.1a8.03 8.03 0 0 0-11.3 0l-56.6 56.6a8.03 8.03 0 0 0 0 11.3l31.1 31.1c3.1 3.1 8.2 3.1 11.3 0l56.6-56.6c3.1-3.1 3.1-8.2 0-11.3zM750 538v44c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8v-44c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8zM304.1 309.7a8.03 8.03 0 0 0-11.3 0l-31.1 31.1a8.03 8.03 0 0 0 0 11.3l56.6 56.6c3.1 3.1 8.2 3.1 11.3 0l31.1-31.1c3.1-3.1 3.1-8.2 0-11.3l-56.6-56.6zM262 530h-80c-4.4 0-8 3.6-8 8v44c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8v-44c0-4.4-3.6-8-8-8z"])})),t.DeleteTwoTone=l("delete",c,(function(e,t){return s(a,[t,"M292.7 840h438.6l24.2-512h-487z"],[e,"M864 256H736v-80c0-35.3-28.7-64-64-64H352c-35.3 0-64 28.7-64 64v80H160c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h60.4l24.7 523c1.6 34.1 29.8 61 63.9 61h454c34.2 0 62.3-26.8 63.9-61l24.7-523H888c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zm-504-72h304v72H360v-72zm371.3 656H292.7l-24.2-512h487l-24.2 512z"])})),t.DiffTwoTone=l("diff",c,(function(e,t){return s(a,[t,"M232 264v624h432V413.8L514.2 264H232zm336 489c0 3.8-3.4 7-7.5 7h-225c-4.1 0-7.5-3.2-7.5-7v-42c0-3.8 3.4-7 7.5-7h225c4.1 0 7.5 3.2 7.5 7v42zm0-262v42c0 3.8-3.4 7-7.5 7H476v84.9c0 3.9-3.1 7.1-7 7.1h-42c-3.8 0-7-3.2-7-7.1V540h-84.5c-4.1 0-7.5-3.2-7.5-7v-42c0-3.9 3.4-7 7.5-7H420v-84.9c0-3.9 3.2-7.1 7-7.1h42c3.9 0 7 3.2 7 7.1V484h84.5c4.1 0 7.5 3.1 7.5 7z"],[e,"M854.2 306.6L611.3 72.9c-6-5.7-13.9-8.9-22.2-8.9H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h277l219 210.6V824c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V329.6c0-8.7-3.5-17-9.8-23z"],[e,"M553.4 201.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v704c0 17.7 14.3 32 32 32h512c17.7 0 32-14.3 32-32V397.3c0-8.5-3.4-16.6-9.4-22.6L553.4 201.4zM664 888H232V264h282.2L664 413.8V888z"],[e,"M476 399.1c0-3.9-3.1-7.1-7-7.1h-42c-3.8 0-7 3.2-7 7.1V484h-84.5c-4.1 0-7.5 3.1-7.5 7v42c0 3.8 3.4 7 7.5 7H420v84.9c0 3.9 3.2 7.1 7 7.1h42c3.9 0 7-3.2 7-7.1V540h84.5c4.1 0 7.5-3.2 7.5-7v-42c0-3.9-3.4-7-7.5-7H476v-84.9zM560.5 704h-225c-4.1 0-7.5 3.2-7.5 7v42c0 3.8 3.4 7 7.5 7h225c4.1 0 7.5-3.2 7.5-7v-42c0-3.8-3.4-7-7.5-7z"])})),t.DatabaseTwoTone=l("database",c,(function(e,t){return s(a,[t,"M232 616h560V408H232v208zm112-144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zM232 888h560V680H232v208zm112-144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zM232 344h560V136H232v208zm112-144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40z"],[e,"M304 512a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm0 272a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm0-544a40 40 0 1 0 80 0 40 40 0 1 0-80 0z"],[e,"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-40 824H232V680h560v208zm0-272H232V408h560v208zm0-272H232V136h560v208z"])})),t.DislikeTwoTone=l("dislike",c,(function(e,t){return s(a,[t,"M273 100.1v428h.3l-.3-428zM820.4 525l-21.9-19 14-25.5a56.2 56.2 0 0 0 6.9-27.3c0-16.5-7.1-32.2-19.6-43l-21.9-19 13.9-25.4a56.2 56.2 0 0 0 6.9-27.3c0-16.5-7.1-32.2-19.6-43l-21.9-19 13.9-25.4a56.2 56.2 0 0 0 6.9-27.3c0-22.4-13.2-42.6-33.6-51.8H345v345.2c18.6 67.2 46.4 168 83.5 302.5a44.28 44.28 0 0 0 42.2 32.3c7.5.1 15-2.2 21.1-6.7 9.9-7.4 15.2-18.6 14.6-30.5l-9.6-198.4h314.4C829 605.5 840 587.1 840 568c0-16.5-7.1-32.2-19.6-43z"],[e,"M112 132v364c0 17.7 14.3 32 32 32h65V100h-65c-17.7 0-32 14.3-32 32zm773.9 358.3c3.6-12 5.4-24.4 5.4-37 0-28.3-9.3-55.5-26.1-77.7 3.6-12 5.4-24.4 5.4-37 0-28.3-9.3-55.5-26.1-77.7 3.6-12 5.4-24.4 5.4-37 0-51.6-30.7-98.1-78.3-118.4a66.1 66.1 0 0 0-26.5-5.4H273l.3 428 85.8 310.8C372.9 889 418.9 924 470.9 924c29.7 0 57.4-11.8 77.9-33.4 20.5-21.5 31-49.7 29.5-79.4l-6-122.9h239.9c12.1 0 23.9-3.2 34.3-9.3 40.4-23.5 65.5-66.1 65.5-111 0-28.3-9.3-55.5-26.1-77.7zm-74.7 126.1H496.8l9.6 198.4c.6 11.9-4.7 23.1-14.6 30.5-6.1 4.5-13.6 6.8-21.1 6.7a44.28 44.28 0 0 1-42.2-32.3c-37.1-134.4-64.9-235.2-83.5-302.5V172h399.4a56.85 56.85 0 0 1 33.6 51.8c0 9.7-2.3 18.9-6.9 27.3l-13.9 25.4 21.9 19a56.76 56.76 0 0 1 19.6 43c0 9.7-2.3 18.9-6.9 27.3l-13.9 25.4 21.9 19a56.76 56.76 0 0 1 19.6 43c0 9.7-2.3 18.9-6.9 27.3l-14 25.5 21.9 19a56.76 56.76 0 0 1 19.6 43c0 19.1-11 37.5-28.8 48.4z"])})),t.DownCircleTwoTone=l("down-circle",c,(function(e,t){return s(a,[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm184.4 277.7l-178 246a7.95 7.95 0 0 1-12.9 0l-178-246c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.3 0 19.9 4.9 25.9 13.2L512 563.6l105.2-145.4c6-8.3 15.7-13.2 25.9-13.2H690c6.5 0 10.3 7.4 6.4 12.7z"],[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[e,"M690 405h-46.9c-10.2 0-19.9 4.9-25.9 13.2L512 563.6 406.8 418.2c-6-8.3-15.6-13.2-25.9-13.2H334c-6.5 0-10.3 7.4-6.5 12.7l178 246c3.2 4.4 9.7 4.4 12.9 0l178-246c3.9-5.3.1-12.7-6.4-12.7z"])})),t.DownSquareTwoTone=l("down-square",c,(function(e,t){return s(a,[e,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"],[t,"M184 840h656V184H184v656zm150-440h46.9c10.3 0 19.9 4.9 25.9 13.2L512 558.6l105.2-145.4c6-8.3 15.7-13.2 25.9-13.2H690c6.5 0 10.3 7.4 6.4 12.7l-178 246a7.95 7.95 0 0 1-12.9 0l-178-246c-3.8-5.3 0-12.7 6.5-12.7z"],[e,"M505.5 658.7c3.2 4.4 9.7 4.4 12.9 0l178-246c3.9-5.3.1-12.7-6.4-12.7h-46.9c-10.2 0-19.9 4.9-25.9 13.2L512 558.6 406.8 413.2c-6-8.3-15.6-13.2-25.9-13.2H334c-6.5 0-10.3 7.4-6.5 12.7l178 246z"])})),t.EnvironmentTwoTone=l("environment",c,(function(e,t){return s(a,[t,"M724.4 224.9C667.7 169.5 592.3 139 512 139s-155.7 30.5-212.4 85.8C243.1 280 212 353.2 212 431.1c0 241.3 234.1 407.2 300 449.1 65.9-41.9 300-207.8 300-449.1 0-77.9-31.1-151.1-87.6-206.2zM512 615c-97.2 0-176-78.8-176-176s78.8-176 176-176 176 78.8 176 176-78.8 176-176 176z"],[e,"M512 263c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 0 1 512 551c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 0 1 400 439c0-29.9 11.7-58 32.8-79.2C454 338.6 482.1 327 512 327c29.9 0 58 11.6 79.2 32.8S624 409.1 624 439c0 29.9-11.6 58-32.8 79.2z"],[e,"M854.6 289.1a362.49 362.49 0 0 0-79.9-115.7 370.83 370.83 0 0 0-118.2-77.8C610.7 76.6 562.1 67 512 67c-50.1 0-98.7 9.6-144.5 28.5-44.3 18.3-84 44.5-118.2 77.8A363.6 363.6 0 0 0 169.4 289c-19.5 45-29.4 92.8-29.4 142 0 70.6 16.9 140.9 50.1 208.7 26.7 54.5 64 107.6 111 158.1 80.3 86.2 164.5 138.9 188.4 153a43.9 43.9 0 0 0 22.4 6.1c7.8 0 15.5-2 22.4-6.1 23.9-14.1 108.1-66.8 188.4-153 47-50.4 84.3-103.6 111-158.1C867.1 572 884 501.8 884 431.1c0-49.2-9.9-97-29.4-142zM512 880.2c-65.9-41.9-300-207.8-300-449.1 0-77.9 31.1-151.1 87.6-206.3C356.3 169.5 431.7 139 512 139s155.7 30.5 212.4 85.9C780.9 280 812 353.2 812 431.1c0 241.3-234.1 407.2-300 449.1z"])})),t.EditTwoTone=l("edit",c,(function(e,t){return s(a,[t,"M761.1 288.3L687.8 215 325.1 577.6l-15.6 89 88.9-15.7z"],[e,"M880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32zm-622.3-84c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 0 0 0-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 0 0 9.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89z"])})),t.ExclamationCircleTwoTone=l("exclamation-circle",c,(function(e,t){return s(a,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm-32 156c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V296zm32 440a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z"],[e,"M488 576h48c4.4 0 8-3.6 8-8V296c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8zm-24 112a48 48 0 1 0 96 0 48 48 0 1 0-96 0z"])})),t.ExperimentTwoTone=l("experiment",c,(function(e,t){return s(a,[t,"M551.9 513c19.6 0 35.9-14.2 39.3-32.8A40.02 40.02 0 0 1 552 512a40 40 0 0 1-40-39.4v.5c0 22 17.9 39.9 39.9 39.9zM752 687.8l-.3-.3c-29-17.5-62.3-26.8-97-26.8-44.9 0-87.2 15.7-121 43.8a256.27 256.27 0 0 1-164.9 59.9c-41.2 0-81-9.8-116.7-28L210.5 844h603l-59.9-155.2-1.6-1z"],[e,"M879 824.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 0 1-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.6-107.6.1-.2c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1l.6 1.6L813.5 844h-603z"],[e,"M552 512c19.3 0 35.4-13.6 39.2-31.8.6-2.7.8-5.4.8-8.2 0-22.1-17.9-40-40-40s-40 17.9-40 40v.6a40 40 0 0 0 40 39.4z"])})),t.EyeInvisibleTwoTone=l("eye-invisible",c,(function(e,t){return s(a,[t,"M254.89 758.85l125.57-125.57a176 176 0 0 1 248.82-248.82L757 256.72Q651.69 186.07 512 186q-288.3 0-430.2 300.3a60.3 60.3 0 0 0 0 51.5q69.27 145.91 173.09 221.05zM942.2 486.2Q889.46 375.11 816.7 305L672.48 449.27a176.09 176.09 0 0 1-227.22 227.21L323 798.75Q408 838 512 838q288.3 0 430.2-300.3a60.29 60.29 0 0 0 0-51.5z"],[e,"M942.2 486.2Q889.47 375.11 816.7 305l-50.88 50.88C807.31 395.53 843.45 447.4 874.7 512 791.5 684.2 673.4 766 512 766q-72.67 0-133.87-22.38L323 798.75Q408 838 512 838q288.3 0 430.2-300.3a60.29 60.29 0 0 0 0-51.5zM878.63 165.56L836 122.88a8 8 0 0 0-11.32 0L715.31 232.2Q624.86 186 512 186q-288.3 0-430.2 300.3a60.3 60.3 0 0 0 0 51.5q56.69 119.4 136.5 191.41L112.48 835a8 8 0 0 0 0 11.31L155.17 889a8 8 0 0 0 11.31 0l712.15-712.12a8 8 0 0 0 0-11.32zM149.3 512C232.6 339.8 350.7 258 512 258c54.54 0 104.13 9.36 149.12 28.39l-70.3 70.3a176 176 0 0 0-238.13 238.13l-83.42 83.42C223.1 637.49 183.3 582.28 149.3 512zm246.7 0a112.11 112.11 0 0 1 146.2-106.69L401.31 546.2A112 112 0 0 1 396 512z"],[e,"M508 624c-3.46 0-6.87-.16-10.25-.47l-52.82 52.82a176.09 176.09 0 0 0 227.42-227.42l-52.82 52.82c.31 3.38.47 6.79.47 10.25a111.94 111.94 0 0 1-112 112z"])})),t.EyeTwoTone=l("eye",c,(function(e,t){return s(a,[t,"M81.8 537.8a60.3 60.3 0 0 1 0-51.5C176.6 286.5 319.8 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 0 0 0 51.5C176.6 737.5 319.9 838 512 838c-192.1 0-335.4-100.5-430.2-300.2z"],[t,"M512 258c-161.3 0-279.4 81.8-362.7 254C232.6 684.2 350.7 766 512 766c161.4 0 279.5-81.8 362.7-254C791.4 339.8 673.3 258 512 258zm-4 430c-97.2 0-176-78.8-176-176s78.8-176 176-176 176 78.8 176 176-78.8 176-176 176z"],[e,"M942.2 486.2C847.4 286.5 704.1 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 0 0 0 51.5C176.6 737.5 319.9 838 512 838c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0-51.5zM512 766c-161.3 0-279.4-81.8-362.7-254C232.6 339.8 350.7 258 512 258s279.4 81.8 362.7 254C791.5 684.2 673.4 766 512 766z"],[e,"M508 336c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm0 288c-61.9 0-112-50.1-112-112s50.1-112 112-112 112 50.1 112 112-50.1 112-112 112z"])})),t.FileAddTwoTone=l("file-add",c,(function(e,t){return s(a,[t,"M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42zm126 236v48c0 4.4-3.6 8-8 8H544v108c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V644H372c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h108V472c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v108h108c4.4 0 8 3.6 8 8z"],[e,"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0 0 42 42h216v494z"],[e,"M544 472c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v108H372c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h108v108c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V644h108c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H544V472z"])})),t.FileExclamationTwoTone=l("file-exclamation",c,(function(e,t){return s(a,[t,"M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42zm-54 96c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v184c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V448zm32 336c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40z"],[e,"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0 0 42 42h216v494z"],[e,"M488 640h48c4.4 0 8-3.6 8-8V448c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v184c0 4.4 3.6 8 8 8zm-16 104a40 40 0 1 0 80 0 40 40 0 1 0-80 0z"])})),t.FileImageTwoTone=l("file-image",c,(function(e,t){return s(a,[t,"M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42zm-134 50c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zm296 294H328.1c-6.7 0-10.4-7.7-6.3-12.9l99.8-127.2a8 8 0 0 1 12.6 0l41.1 52.4 77.8-99.2a8.1 8.1 0 0 1 12.7 0l136.5 174c4.1 5.2.4 12.9-6.3 12.9z"],[e,"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0 0 42 42h216v494z"],[e,"M553.1 509.1l-77.8 99.2-41.1-52.4a8 8 0 0 0-12.6 0l-99.8 127.2a7.98 7.98 0 0 0 6.3 12.9H696c6.7 0 10.4-7.7 6.3-12.9l-136.5-174a8.1 8.1 0 0 0-12.7 0zM360 442a40 40 0 1 0 80 0 40 40 0 1 0-80 0z"])})),t.FileExcelTwoTone=l("file-excel",c,(function(e,t){return s(a,[t,"M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42zm51.6 120h35.7a12.04 12.04 0 0 1 10.1 18.5L546.1 623l84 130.4c3.6 5.6 2 13-3.6 16.6-2 1.2-4.2 1.9-6.5 1.9h-37.5c-4.1 0-8-2.1-10.2-5.7L510 664.8l-62.7 101.5c-2.2 3.5-6 5.7-10.2 5.7h-34.5a12.04 12.04 0 0 1-10.2-18.4l83.4-132.8-82.3-130.4c-3.6-5.7-1.9-13.1 3.7-16.6 1.9-1.3 4.1-1.9 6.4-1.9H442c4.2 0 8.1 2.2 10.3 5.8l61.8 102.4 61.2-102.3c2.2-3.6 6.1-5.8 10.3-5.8z"],[e,"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0 0 42 42h216v494z"],[e,"M514.1 580.1l-61.8-102.4c-2.2-3.6-6.1-5.8-10.3-5.8h-38.4c-2.3 0-4.5.6-6.4 1.9-5.6 3.5-7.3 10.9-3.7 16.6l82.3 130.4-83.4 132.8a12.04 12.04 0 0 0 10.2 18.4h34.5c4.2 0 8-2.2 10.2-5.7L510 664.8l62.3 101.4c2.2 3.6 6.1 5.7 10.2 5.7H620c2.3 0 4.5-.7 6.5-1.9 5.6-3.6 7.2-11 3.6-16.6l-84-130.4 85.3-132.5a12.04 12.04 0 0 0-10.1-18.5h-35.7c-4.2 0-8.1 2.2-10.3 5.8l-61.2 102.3z"])})),t.FileMarkdownTwoTone=l("file-markdown",c,(function(e,t){return s(a,[t,"M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42zm72.3 122H641c6.6 0 12 5.4 12 12v272c0 6.6-5.4 12-12 12h-27.2c-6.6 0-12-5.4-12-12V581.7L535 732.3c-2 4.3-6.3 7.1-11 7.1h-24.1a12 12 0 0 1-11-7.1l-66.8-150.2V758c0 6.6-5.4 12-12 12H383c-6.6 0-12-5.4-12-12V486c0-6.6 5.4-12 12-12h35c4.8 0 9.1 2.8 11 7.2l83.2 191 83.1-191c1.9-4.4 6.2-7.2 11-7.2z"],[e,"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0 0 42 42h216v494z"],[e,"M429 481.2c-1.9-4.4-6.2-7.2-11-7.2h-35c-6.6 0-12 5.4-12 12v272c0 6.6 5.4 12 12 12h27.1c6.6 0 12-5.4 12-12V582.1l66.8 150.2a12 12 0 0 0 11 7.1H524c4.7 0 9-2.8 11-7.1l66.8-150.6V758c0 6.6 5.4 12 12 12H641c6.6 0 12-5.4 12-12V486c0-6.6-5.4-12-12-12h-34.7c-4.8 0-9.1 2.8-11 7.2l-83.1 191-83.2-191z"])})),t.FilePdfTwoTone=l("file-pdf",c,(function(e,t){return s(a,[t,"M509.2 490.8c-.7-1.3-1.4-1.9-2.2-2-2.9 3.3-2.2 31.5 2.7 51.4 4-13.6 4.7-40.5-.5-49.4zm-1.6 120.5c-7.7 20-18.8 47.3-32.1 71.4 4-1.6 8.1-3.3 12.3-5 17.6-7.2 37.3-15.3 58.9-20.2-14.9-11.8-28.4-27.7-39.1-46.2z"],[t,"M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42zm55 287.6c16.1-1.9 30.6-2.8 44.3-2.3 12.8.4 23.6 2 32 5.1.2.1.3.1.5.2.4.2.8.3 1.2.5.5.2 1.1.4 1.6.7.1.1.3.1.4.2 4.1 1.8 7.5 4 10.1 6.6 9.1 9.1 11.8 26.1 6.2 39.6-3.2 7.7-11.7 20.5-33.3 20.5-21.8 0-53.9-9.7-82.1-24.8-25.5 4.3-53.7 13.9-80.9 23.1-5.8 2-11.8 4-17.6 5.9-38 65.2-66.5 79.4-84.1 79.4-4.2 0-7.8-.9-10.8-2-6.9-2.6-12.8-8-16.5-15-.9-1.7-1.6-3.4-2.2-5.2-1.6-4.8-2.1-9.6-1.3-13.6l.6-2.7c.1-.2.1-.4.2-.6.2-.7.4-1.4.7-2.1 0-.1.1-.2.1-.3 4.1-11.9 13.6-23.4 27.7-34.6 12.3-9.8 27.1-18.7 45.9-28.4 15.9-28 37.6-75.1 51.2-107.4-10.8-41.8-16.7-74.6-10.1-98.6.9-3.3 2.5-6.4 4.6-9.1.2-.2.3-.4.5-.6.1-.1.1-.2.2-.2 6.3-7.5 16.9-11.9 28.1-11.5 16.6.7 29.7 11.5 33 30.1 1.7 8 2.2 16.5 1.9 25.7v.7c0 .5 0 1-.1 1.5-.7 13.3-3 26.6-7.3 44.7-.4 1.6-.8 3.2-1.2 5.2l-1 4.1-.1.3c.1.2.1.3.2.5l1.8 4.5c.1.3.3.7.4 1 .7 1.6 1.4 3.3 2.1 4.8v.1c8.7 18.8 19.7 33.4 33.9 45.1 4.3 3.5 8.9 6.7 13.9 9.8 1.8-.5 3.5-.7 5.3-.9z"],[t,"M391.5 761c5.7-4.4 16.2-14.5 30.1-34.7-10.3 9.4-23.4 22.4-30.1 34.7zm270.9-83l.2-.3h.2c.6-.4.5-.7.4-.9-.1-.1-4.5-9.3-45.1-7.4 35.3 13.9 43.5 9.1 44.3 8.6z"],[e,"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0 0 42 42h216v494z"],[e,"M535.9 585.3c-.8-1.7-1.5-3.3-2.2-4.9-.1-.3-.3-.7-.4-1l-1.8-4.5c-.1-.2-.1-.3-.2-.5l.1-.3.2-1.1c4-16.3 8.6-35.3 9.4-54.4v-.7c.3-8.6-.2-17.2-2-25.6-3.8-21.3-19.5-29.6-32.9-30.2-11.3-.5-21.8 4-28.1 11.4-.1.1-.1.2-.2.2-.2.2-.4.4-.5.6-2.1 2.7-3.7 5.8-4.6 9.1-6.6 24-.7 56.8 10.1 98.6-13.6 32.4-35.3 79.4-51.2 107.4v.1c-27.7 14.3-64.1 35.8-73.6 62.9 0 .1-.1.2-.1.3-.2.7-.5 1.4-.7 2.1-.1.2-.1.4-.2.6-.2.9-.5 1.8-.6 2.7-.9 4-.4 8.8 1.3 13.6.6 1.8 1.3 3.5 2.2 5.2 3.7 7 9.6 12.4 16.5 15 3 1.1 6.6 2 10.8 2 17.6 0 46.1-14.2 84.1-79.4 5.8-1.9 11.8-3.9 17.6-5.9 27.2-9.2 55.4-18.8 80.9-23.1 28.2 15.1 60.3 24.8 82.1 24.8 21.6 0 30.1-12.8 33.3-20.5 5.6-13.5 2.9-30.5-6.2-39.6-2.6-2.6-6-4.8-10.1-6.6-.1-.1-.3-.1-.4-.2-.5-.2-1.1-.4-1.6-.7-.4-.2-.8-.3-1.2-.5-.2-.1-.3-.1-.5-.2-16.2-5.8-41.7-6.7-76.3-2.8l-5.3.6c-5-3-9.6-6.3-13.9-9.8-14.2-11.3-25.1-25.8-33.8-44.7zM391.5 761c6.7-12.3 19.8-25.3 30.1-34.7-13.9 20.2-24.4 30.3-30.1 34.7zM507 488.8c.8.1 1.5.7 2.2 2 5.2 8.9 4.5 35.8.5 49.4-4.9-19.9-5.6-48.1-2.7-51.4zm-19.2 188.9c-4.2 1.7-8.3 3.4-12.3 5 13.3-24.1 24.4-51.4 32.1-71.4 10.7 18.5 24.2 34.4 39.1 46.2-21.6 4.9-41.3 13-58.9 20.2zm175.4-.9c.1.2.2.5-.4.9h-.2l-.2.3c-.8.5-9 5.3-44.3-8.6 40.6-1.9 45 7.3 45.1 7.4z"])})),t.FilePptTwoTone=l("file-ppt",c,(function(e,t){return s(a,[t,"M464.5 516.2v108.4h38.9c44.7 0 71.2-10.9 71.2-54.3 0-34.4-20.1-54.1-53.9-54.1h-56.2z"],[t,"M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42zm90 218.4c0 55.2-36.8 94.1-96.2 94.1h-63.3V760c0 4.4-3.6 8-8 8H424c-4.4 0-8-3.6-8-8V484c0-4.4 3.6-8 8-8v.1h104c59.7 0 96 39.8 96 94.3z"],[e,"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0 0 42 42h216v494z"],[e,"M424 476.1c-4.4-.1-8 3.5-8 7.9v276c0 4.4 3.6 8 8 8h32.5c4.4 0 8-3.6 8-8v-95.5h63.3c59.4 0 96.2-38.9 96.2-94.1 0-54.5-36.3-94.3-96-94.3H424zm150.6 94.2c0 43.4-26.5 54.3-71.2 54.3h-38.9V516.2h56.2c33.8 0 53.9 19.7 53.9 54.1z"])})),t.FileTextTwoTone=l("file-text",c,(function(e,t){return s(a,[t,"M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42zm-22 322c0 4.4-3.6 8-8 8H320c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zm200-184v48c0 4.4-3.6 8-8 8H320c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h384c4.4 0 8 3.6 8 8z"],[e,"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0 0 42 42h216v494z"],[e,"M312 490v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8zm192 128H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z"])})),t.FileUnknownTwoTone=l("file-unknown",c,(function(e,t){return s(a,[t,"M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42zm-22 424c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm110-228.4c.7 44.9-29.7 84.5-74.3 98.9-5.7 1.8-9.7 7.3-9.7 13.3V672c0 5.5-4.5 10-10 10h-32c-5.5 0-10-4.5-10-10v-32c.2-19.8 15.4-37.3 34.7-40.1C549 596.2 570 574.3 570 549c0-28.1-25.8-51.5-58-51.5s-58 23.4-58 51.6c0 5.2-4.4 9.4-9.8 9.4h-32.4c-5.4 0-9.8-4.1-9.8-9.5 0-57.4 50.1-103.7 111.5-103 59.3.8 107.7 46.1 108.5 101.6z"],[e,"M854.6 288.7L639.4 73.4c-6-6-14.2-9.4-22.7-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.6-9.4-22.6zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0 0 42 42h216v494z"],[e,"M480 744a32 32 0 1 0 64 0 32 32 0 1 0-64 0zm-78-195c0 5.4 4.4 9.5 9.8 9.5h32.4c5.4 0 9.8-4.2 9.8-9.4 0-28.2 25.8-51.6 58-51.6s58 23.4 58 51.5c0 25.3-21 47.2-49.3 50.9-19.3 2.8-34.5 20.3-34.7 40.1v32c0 5.5 4.5 10 10 10h32c5.5 0 10-4.5 10-10v-12.2c0-6 4-11.5 9.7-13.3 44.6-14.4 75-54 74.3-98.9-.8-55.5-49.2-100.8-108.5-101.6-61.4-.7-111.5 45.6-111.5 103z"])})),t.FileZipTwoTone=l("file-zip",c,(function(e,t){return s(a,[t,"M344 630h32v2h-32z"],[t,"M534 352V136H360v64h64v64h-64v64h64v64h-64v64h64v64h-64v62h64v160H296V520h64v-64h-64v-64h64v-64h-64v-64h64v-64h-64v-64h-64v752h560V394H576a42 42 0 0 1-42-42z"],[e,"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h64v64h64v-64h174v216a42 42 0 0 0 42 42h216v494z"],[e,"M296 392h64v64h-64zm0-128h64v64h-64zm0 318v160h128V582h-64v-62h-64v62zm48 50v-2h32v64h-32v-62zm16-432h64v64h-64zm0 256h64v64h-64zm0-128h64v64h-64z"])})),t.FileWordTwoTone=l("file-word",c,(function(e,t){return s(a,[t,"M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42zm101.3 129.3c1.3-5.4 6.1-9.3 11.7-9.3h35.6a12.04 12.04 0 0 1 11.6 15.1l-74.4 276c-1.4 5.3-6.2 8.9-11.6 8.9h-31.8c-5.4 0-10.2-3.7-11.6-8.9l-52.8-197-52.8 197c-1.4 5.3-6.2 8.9-11.6 8.9h-32c-5.4 0-10.2-3.7-11.6-8.9l-74.2-276a12.02 12.02 0 0 1 11.6-15.1h35.4c5.6 0 10.4 3.9 11.7 9.3L434.6 680l49.7-198.9c1.3-5.4 6.1-9.1 11.6-9.1h32.2c5.5 0 10.3 3.7 11.6 9.1l49.8 199.3 45.8-199.1z"],[e,"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0 0 42 42h216v494z"],[e,"M528.1 472h-32.2c-5.5 0-10.3 3.7-11.6 9.1L434.6 680l-46.1-198.7c-1.3-5.4-6.1-9.3-11.7-9.3h-35.4a12.02 12.02 0 0 0-11.6 15.1l74.2 276c1.4 5.2 6.2 8.9 11.6 8.9h32c5.4 0 10.2-3.6 11.6-8.9l52.8-197 52.8 197c1.4 5.2 6.2 8.9 11.6 8.9h31.8c5.4 0 10.2-3.6 11.6-8.9l74.4-276a12.04 12.04 0 0 0-11.6-15.1H647c-5.6 0-10.4 3.9-11.7 9.3l-45.8 199.1-49.8-199.3c-1.3-5.4-6.1-9.1-11.6-9.1z"])})),t.FileTwoTone=l("file",c,(function(e,t){return s(a,[t,"M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42z"],[e,"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0 0 42 42h216v494z"])})),t.FilterTwoTone=l("filter",c,(function(e,t){return s(a,[t,"M420.6 798h182.9V642H420.6zM411 561.4l9.5 16.6h183l9.5-16.6L811.3 226H212.7z"],[e,"M880.1 154H143.9c-24.5 0-39.8 26.7-27.5 48L349 597.4V838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V597.4L907.7 202c12.2-21.3-3.1-48-27.6-48zM603.5 798H420.6V642h182.9v156zm9.5-236.6l-9.5 16.6h-183l-9.5-16.6L212.7 226h598.6L613 561.4z"])})),t.FireTwoTone=l("fire",c,(function(e,t){return s(a,[t,"M737 438.6c-9.6 15.5-21.1 30.7-34.4 45.6a73.1 73.1 0 0 1-51 24.4 73.36 73.36 0 0 1-53.4-18.8 74.01 74.01 0 0 1-24.4-59.8c3-47.4-12.4-103.1-45.8-165.7-16.9-31.4-37.1-58.2-61.2-80.4a240 240 0 0 1-12.1 46.5 354.26 354.26 0 0 1-58.2 101 349.6 349.6 0 0 1-58.6 56.8c-34 26.1-62 60-80.8 97.9a275.96 275.96 0 0 0-29.1 124c0 74.9 29.5 145.3 83 198.4 53.7 53.2 125 82.4 201 82.4s147.3-29.2 201-82.4c53.5-53 83-123.5 83-198.4 0-39.2-8.1-77.3-24-113.1-9.3-21-21-40.5-35-58.4z"],[e,"M834.1 469.2A347.49 347.49 0 0 0 751.2 354l-29.1-26.7a8.09 8.09 0 0 0-13 3.3l-13 37.3c-8.1 23.4-23 47.3-44.1 70.8-1.4 1.5-3 1.9-4.1 2-1.1.1-2.8-.1-4.3-1.5-1.4-1.2-2.1-3-2-4.8 3.7-60.2-14.3-128.1-53.7-202C555.3 171 510 123.1 453.4 89.7l-41.3-24.3c-5.4-3.2-12.3 1-12 7.3l2.2 48c1.5 32.8-2.3 61.8-11.3 85.9-11 29.5-26.8 56.9-47 81.5a295.64 295.64 0 0 1-47.5 46.1 352.6 352.6 0 0 0-100.3 121.5A347.75 347.75 0 0 0 160 610c0 47.2 9.3 92.9 27.7 136a349.4 349.4 0 0 0 75.5 110.9c32.4 32 70 57.2 111.9 74.7C418.5 949.8 464.5 959 512 959s93.5-9.2 136.9-27.3A348.6 348.6 0 0 0 760.8 857c32.4-32 57.8-69.4 75.5-110.9a344.2 344.2 0 0 0 27.7-136c0-48.8-10-96.2-29.9-140.9zM713 808.5c-53.7 53.2-125 82.4-201 82.4s-147.3-29.2-201-82.4c-53.5-53.1-83-123.5-83-198.4 0-43.5 9.8-85.2 29.1-124 18.8-37.9 46.8-71.8 80.8-97.9a349.6 349.6 0 0 0 58.6-56.8c25-30.5 44.6-64.5 58.2-101a240 240 0 0 0 12.1-46.5c24.1 22.2 44.3 49 61.2 80.4 33.4 62.6 48.8 118.3 45.8 165.7a74.01 74.01 0 0 0 24.4 59.8 73.36 73.36 0 0 0 53.4 18.8c19.7-1 37.8-9.7 51-24.4 13.3-14.9 24.8-30.1 34.4-45.6 14 17.9 25.7 37.4 35 58.4 15.9 35.8 24 73.9 24 113.1 0 74.9-29.5 145.4-83 198.4z"])})),t.FolderAddTwoTone=l("folder-add",c,(function(e,t){return s(a,[t,"M372.5 256H184v512h656V370.4H492.1L372.5 256zM540 443.1V528h84.5c4.1 0 7.5 3.1 7.5 7v42c0 3.8-3.4 7-7.5 7H540v84.9c0 3.9-3.1 7.1-7 7.1h-42c-3.8 0-7-3.2-7-7.1V584h-84.5c-4.1 0-7.5-3.2-7.5-7v-42c0-3.9 3.4-7 7.5-7H484v-84.9c0-3.9 3.2-7.1 7-7.1h42c3.9 0 7 3.2 7 7.1z"],[e,"M880 298.4H521L403.7 186.2a8.15 8.15 0 0 0-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM840 768H184V256h188.5l119.6 114.4H840V768z"],[e,"M484 443.1V528h-84.5c-4.1 0-7.5 3.1-7.5 7v42c0 3.8 3.4 7 7.5 7H484v84.9c0 3.9 3.2 7.1 7 7.1h42c3.9 0 7-3.2 7-7.1V584h84.5c4.1 0 7.5-3.2 7.5-7v-42c0-3.9-3.4-7-7.5-7H540v-84.9c0-3.9-3.1-7.1-7-7.1h-42c-3.8 0-7 3.2-7 7.1z"])})),t.FlagTwoTone=l("flag",c,(function(e,t){return s(a,[t,"M184 232h368v336H184z"],[t,"M624 632c0 4.4-3.6 8-8 8H504v73h336V377H624v255z"],[e,"M880 305H624V192c0-17.7-14.3-32-32-32H184v-40c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v784c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V640h248v113c0 17.7 14.3 32 32 32h416c17.7 0 32-14.3 32-32V337c0-17.7-14.3-32-32-32zM184 568V232h368v336H184zm656 145H504v-73h112c4.4 0 8-3.6 8-8V377h216v336z"])})),t.FolderTwoTone=l("folder",c,(function(e,t){return s(a,[e,"M880 298.4H521L403.7 186.2a8.15 8.15 0 0 0-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM840 768H184V256h188.5l119.6 114.4H840V768z"],[t,"M372.5 256H184v512h656V370.4H492.1z"])})),t.FolderOpenTwoTone=l("folder-open",c,(function(e,t){return s(a,[t,"M159 768h612.3l103.4-256H262.3z"],[e,"M928 444H820V330.4c0-17.7-14.3-32-32-32H473L355.7 186.2a8.15 8.15 0 0 0-5.5-2.2H96c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h698c13 0 24.8-7.9 29.7-20l134-332c1.5-3.8 2.3-7.9 2.3-12 0-17.7-14.3-32-32-32zM136 256h188.5l119.6 114.4H748V444H238c-13 0-24.8 7.9-29.7 20L136 643.2V256zm635.3 512H159l103.3-256h612.4L771.3 768z"])})),t.FrownTwoTone=l("frown",c,(function(e,t){return s(a,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zM288 421a48.01 48.01 0 0 1 96 0 48.01 48.01 0 0 1-96 0zm376 272h-48.1c-4.2 0-7.8-3.2-8.1-7.4C604 636.1 562.5 597 512 597s-92.1 39.1-95.8 88.6c-.3 4.2-3.9 7.4-8.1 7.4H360a8 8 0 0 1-8-8.4c4.4-84.3 74.5-151.6 160-151.6s155.6 67.3 160 151.6a8 8 0 0 1-8 8.4zm24-224a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z"],[e,"M288 421a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm224 112c-85.5 0-155.6 67.3-160 151.6a8 8 0 0 0 8 8.4h48.1c4.2 0 7.8-3.2 8.1-7.4 3.7-49.5 45.3-88.6 95.8-88.6s92 39.1 95.8 88.6c.3 4.2 3.9 7.4 8.1 7.4H664a8 8 0 0 0 8-8.4C667.6 600.3 597.5 533 512 533zm128-112a48 48 0 1 0 96 0 48 48 0 1 0-96 0z"])})),t.FundTwoTone=l("fund",c,(function(e,t){return s(a,[e,"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 632H136V232h752v560z"],[t,"M136 792h752V232H136v560zm56.4-130.5l214.9-215c3.1-3.1 8.2-3.1 11.3 0L533 561l254.5-254.6c3.1-3.1 8.2-3.1 11.3 0l36.8 36.8c3.1 3.1 3.1 8.2 0 11.3l-297 297.2a8.03 8.03 0 0 1-11.3 0L412.9 537.2 240.4 709.7a8.03 8.03 0 0 1-11.3 0l-36.7-36.9a8.03 8.03 0 0 1 0-11.3z"],[e,"M229.1 709.7c3.1 3.1 8.2 3.1 11.3 0l172.5-172.5 114.4 114.5c3.1 3.1 8.2 3.1 11.3 0l297-297.2c3.1-3.1 3.1-8.2 0-11.3l-36.8-36.8a8.03 8.03 0 0 0-11.3 0L533 561 418.6 446.5a8.03 8.03 0 0 0-11.3 0l-214.9 215a8.03 8.03 0 0 0 0 11.3l36.7 36.9z"])})),t.FunnelPlotTwoTone=l("funnel-plot",c,(function(e,t){return s(a,[t,"M420.6 798h182.9V650H420.6zM297.7 374h428.6l85-148H212.7zm113.2 197.4l8.4 14.6h185.3l8.4-14.6L689.6 438H334.4z"],[e,"M880.1 154H143.9c-24.5 0-39.8 26.7-27.5 48L349 607.4V838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V607.4L907.7 202c12.2-21.3-3.1-48-27.6-48zM603.5 798H420.6V650h182.9v148zm9.5-226.6l-8.4 14.6H419.3l-8.4-14.6L334.4 438h355.2L613 571.4zM726.3 374H297.7l-85-148h598.6l-85 148z"])})),t.GiftTwoTone=l("gift",c,(function(e,t){return s(a,[t,"M546 378h298v104H546zM228 550h250v308H228zm-48-172h298v104H180zm366 172h250v308H546z"],[e,"M880 310H732.4c13.6-21.4 21.6-46.8 21.6-74 0-76.1-61.9-138-138-138-41.4 0-78.7 18.4-104 47.4-25.3-29-62.6-47.4-104-47.4-76.1 0-138 61.9-138 138 0 27.2 7.9 52.6 21.6 74H144c-17.7 0-32 14.3-32 32v200c0 4.4 3.6 8 8 8h40v344c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V550h40c4.4 0 8-3.6 8-8V342c0-17.7-14.3-32-32-32zM478 858H228V550h250v308zm0-376H180V378h298v104zm0-176h-70c-38.6 0-70-31.4-70-70s31.4-70 70-70 70 31.4 70 70v70zm68-70c0-38.6 31.4-70 70-70s70 31.4 70 70-31.4 70-70 70h-70v-70zm250 622H546V550h250v308zm48-376H546V378h298v104z"])})),t.HddTwoTone=l("hdd",c,(function(e,t){return s(a,[t,"M232 888h560V680H232v208zm448-140c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zM232 616h560V408H232v208zm72-128c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H312c-4.4 0-8-3.6-8-8v-48zm-72-144h560V136H232v208zm72-128c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H312c-4.4 0-8-3.6-8-8v-48z"],[e,"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-40 824H232V680h560v208zm0-272H232V408h560v208zm0-272H232V136h560v208z"],[e,"M312 544h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H312c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm0-272h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H312c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm328 516a40 40 0 1 0 80 0 40 40 0 1 0-80 0z"])})),t.HeartTwoTone=l("heart",c,(function(e,t){return s(a,[e,"M923 283.6a260.04 260.04 0 0 0-56.9-82.8 264.4 264.4 0 0 0-84-55.5A265.34 265.34 0 0 0 679.7 125c-49.3 0-97.4 13.5-139.2 39-10 6.1-19.5 12.8-28.5 20.1-9-7.3-18.5-14-28.5-20.1-41.8-25.5-89.9-39-139.2-39-35.5 0-69.9 6.8-102.4 20.3-31.4 13-59.7 31.7-84 55.5a258.44 258.44 0 0 0-56.9 82.8c-13.9 32.3-21 66.6-21 101.9 0 33.3 6.8 68 20.3 103.3 11.3 29.5 27.5 60.1 48.2 91 32.8 48.9 77.9 99.9 133.9 151.6 92.8 85.7 184.7 144.9 188.6 147.3l23.7 15.2c10.5 6.7 24 6.7 34.5 0l23.7-15.2c3.9-2.5 95.7-61.6 188.6-147.3 56-51.7 101.1-102.7 133.9-151.6 20.7-30.9 37-61.5 48.2-91 13.5-35.3 20.3-70 20.3-103.3.1-35.3-7-69.6-20.9-101.9zM512 814.8S156 586.7 156 385.5C156 283.6 240.3 201 344.3 201c73.1 0 136.5 40.8 167.7 100.4C543.2 241.8 606.6 201 679.7 201c104 0 188.3 82.6 188.3 184.5 0 201.2-356 429.3-356 429.3z"],[t,"M679.7 201c-73.1 0-136.5 40.8-167.7 100.4C480.8 241.8 417.4 201 344.3 201c-104 0-188.3 82.6-188.3 184.5 0 201.2 356 429.3 356 429.3s356-228.1 356-429.3C868 283.6 783.7 201 679.7 201z"])})),t.HighlightTwoTone=l("highlight",c,(function(e,t){return s(a,[t,"M229.6 796.3h160.2l54.3-54.1-80.1-78.9zm220.7-397.1l262.8 258.9 147.3-145-262.8-259zm-77.1 166.1l171.4 168.9 68.6-67.6-171.4-168.9z"],[e,"M957.6 507.5L603.2 158.3a7.9 7.9 0 0 0-11.2 0L353.3 393.5a8.03 8.03 0 0 0-.1 11.3l.1.1 40 39.4-117.2 115.3a8.03 8.03 0 0 0-.1 11.3l.1.1 39.5 38.9-189.1 187H72.1c-4.4 0-8.1 3.6-8.1 8v55.2c0 4.4 3.6 8 8 8h344.9c2.1 0 4.1-.8 5.6-2.3l76.1-75.6L539 830a7.9 7.9 0 0 0 11.2 0l117.1-115.6 40.1 39.5a7.9 7.9 0 0 0 11.2 0l238.7-235.2c3.4-3 3.4-8 .3-11.2zM389.8 796.3H229.6l134.4-133 80.1 78.9-54.3 54.1zm154.8-62.1L373.2 565.3l68.6-67.6 171.4 168.9-68.6 67.6zm168.5-76.1L450.3 399.2l147.3-145.1 262.8 259-147.3 145z"])})),t.HomeTwoTone=l("home",c,(function(e,t){return s(a,[t,"M512.1 172.6l-370 369.7h96V868H392V640c0-22.1 17.9-40 40-40h160c22.1 0 40 17.9 40 40v228h153.9V542.3H882L535.2 195.7l-23.1-23.1zm434.5 422.9c-6 6-13.1 10.8-20.8 13.9 7.7-3.2 14.8-7.9 20.8-13.9zm-887-34.7c5 30.3 31.4 53.5 63.1 53.5h.9c-31.9 0-58.9-23-64-53.5zm-.9-10.5v-1.9 1.9zm.1-2.6c.1-3.1.5-6.1 1-9.1-.6 2.9-.9 6-1 9.1z"],[e,"M951 510c0-.1-.1-.1-.1-.2l-1.8-2.1c-.1-.1-.2-.3-.4-.4-.7-.8-1.5-1.6-2.2-2.4L560.1 118.8l-25.9-25.9a31.5 31.5 0 0 0-44.4 0L77.5 505a63.6 63.6 0 0 0-16 26.6l-.6 2.1-.3 1.1-.3 1.2c-.2.7-.3 1.4-.4 2.1 0 .1 0 .3-.1.4-.6 3-.9 6-1 9.1v3.3c0 .5 0 1 .1 1.5 0 .5 0 .9.1 1.4 0 .5.1 1 .1 1.5 0 .6.1 1.2.2 1.8 0 .3.1.6.1.9l.3 2.5v.1c5.1 30.5 32.2 53.5 64 53.5h42.5V940h691.7V614.3h43.4c8.6 0 16.9-1.7 24.5-4.9s14.7-7.9 20.8-13.9a63.6 63.6 0 0 0 18.7-45.3c0-14.7-5-28.8-14.3-40.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z"])})),t.HourglassTwoTone=l("hourglass",c,(function(e,t){return s(a,[t,"M512 548c-42.2 0-81.9 16.4-111.7 46.3A156.63 156.63 0 0 0 354 706v134h316V706c0-42.2-16.4-81.9-46.3-111.7A156.63 156.63 0 0 0 512 548zM354 318c0 42.2 16.4 81.9 46.3 111.7C430.1 459.6 469.8 476 512 476s81.9-16.4 111.7-46.3C653.6 399.9 670 360.2 670 318V184H354v134z"],[e,"M742 318V184h86c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H196c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h86v134c0 81.5 42.4 153.2 106.4 194-64 40.8-106.4 112.5-106.4 194v134h-86c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h632c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-86V706c0-81.5-42.4-153.2-106.4-194 64-40.8 106.4-112.5 106.4-194zm-72 388v134H354V706c0-42.2 16.4-81.9 46.3-111.7C430.1 564.4 469.8 548 512 548s81.9 16.4 111.7 46.3C653.6 624.1 670 663.8 670 706zm0-388c0 42.2-16.4 81.9-46.3 111.7C593.9 459.6 554.2 476 512 476s-81.9-16.4-111.7-46.3A156.63 156.63 0 0 1 354 318V184h316v134z"])})),t.Html5TwoTone=l("html5",c,(function(e,t){return s(a,[e,"M145 96l66 746.6L511.8 928l299.6-85.4L878.7 96H145zm610.9 700.6l-244.1 69.6-245.2-69.6-56.7-641.2h603.8l-57.8 641.2z"],[t,"M209.9 155.4l56.7 641.2 245.2 69.6 244.1-69.6 57.8-641.2H209.9zm530.4 117.9l-4.8 47.2-1.7 19.5H381.7l8.2 94.2H511v-.2h214.7l-3.2 24.3-21.2 242.2-1.7 16.3-187.7 51.7v.4h-1.7l-188.6-52-11.3-144.7h91l6.5 73.2 102.4 27.7h.8v-.2l102.4-27.7 11.4-118.5H511.9v.1H305.4l-22.7-253.5L281 249h461l-1.7 24.3z"],[e,"M281 249l1.7 24.3 22.7 253.5h206.5v-.1h112.9l-11.4 118.5L511 672.9v.2h-.8l-102.4-27.7-6.5-73.2h-91l11.3 144.7 188.6 52h1.7v-.4l187.7-51.7 1.7-16.3 21.2-242.2 3.2-24.3H511v.2H389.9l-8.2-94.2h352.1l1.7-19.5 4.8-47.2L742 249H511z"])})),t.IdcardTwoTone=l("idcard",c,(function(e,t){return s(a,[e,"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 632H136V232h752v560z"],[t,"M136 792h752V232H136v560zm472-372c0-4.4 1-8 2.3-8h123.4c1.3 0 2.3 3.6 2.3 8v48c0 4.4-1 8-2.3 8H610.3c-1.3 0-2.3-3.6-2.3-8v-48zm0 144c0-4.4 3.2-8 7.1-8h185.7c3.9 0 7.1 3.6 7.1 8v48c0 4.4-3.2 8-7.1 8H615.1c-3.9 0-7.1-3.6-7.1-8v-48zM216.2 664.6c2.8-53.3 31.9-99.6 74.6-126.1-18.1-20-29.1-46.4-29.1-75.5 0-61.9 49.9-112 111.4-112s111.4 50.1 111.4 112c0 29.1-11 55.6-29.1 75.5 42.6 26.4 71.8 72.8 74.6 126.1a8 8 0 0 1-8 8.4h-43.9c-4.2 0-7.6-3.3-7.9-7.5-3.8-50.5-46-90.5-97.2-90.5s-93.4 40-97.2 90.5c-.3 4.2-3.7 7.5-7.9 7.5H224c-4.6 0-8.2-3.8-7.8-8.4z"],[t,"M321.3 463a51.7 52 0 1 0 103.4 0 51.7 52 0 1 0-103.4 0z"],[e,"M610.3 476h123.4c1.3 0 2.3-3.6 2.3-8v-48c0-4.4-1-8-2.3-8H610.3c-1.3 0-2.3 3.6-2.3 8v48c0 4.4 1 8 2.3 8zm4.8 144h185.7c3.9 0 7.1-3.6 7.1-8v-48c0-4.4-3.2-8-7.1-8H615.1c-3.9 0-7.1 3.6-7.1 8v48c0 4.4 3.2 8 7.1 8zM224 673h43.9c4.2 0 7.6-3.3 7.9-7.5 3.8-50.5 46-90.5 97.2-90.5s93.4 40 97.2 90.5c.3 4.2 3.7 7.5 7.9 7.5H522a8 8 0 0 0 8-8.4c-2.8-53.3-32-99.7-74.6-126.1a111.8 111.8 0 0 0 29.1-75.5c0-61.9-49.9-112-111.4-112s-111.4 50.1-111.4 112c0 29.1 11 55.5 29.1 75.5a158.09 158.09 0 0 0-74.6 126.1c-.4 4.6 3.2 8.4 7.8 8.4zm149-262c28.5 0 51.7 23.3 51.7 52s-23.2 52-51.7 52-51.7-23.3-51.7-52 23.2-52 51.7-52z"])})),t.InfoCircleTwoTone=l("info-circle",c,(function(e,t){return s(a,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm32 588c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V456c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272zm-32-344a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z"],[e,"M464 336a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm72 112h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V456c0-4.4-3.6-8-8-8z"])})),t.InsuranceTwoTone=l("insurance",c,(function(e,t){return s(a,[e,"M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6z"],[t,"M521.9 358.8h97.9v41.6h-97.9z"],[t,"M214 226.7v427.6l298 232.2 298-232.2V226.7L512 125.1 214 226.7zM413.3 656h-.2c0 4.4-3.6 8-8 8h-37.3c-4.4 0-8-3.6-8-8V471.4c-7.7 9.2-15.4 17.9-23.1 26a6.04 6.04 0 0 1-10.2-2.4l-13.2-43.5c-.6-2-.2-4.1 1.2-5.6 37-43.4 64.7-95.1 82.2-153.6 1.1-3.5 5-5.3 8.4-3.7l38.6 18.3c2.7 1.3 4.1 4.4 3.2 7.2a429.2 429.2 0 0 1-33.6 79V656zm257.9-340v127.2c0 4.4-3.6 8-8 8h-66.7v18.6h98.8c4.4 0 8 3.6 8 8v35.6c0 4.4-3.6 8-8 8h-59c18.1 29.1 41.8 54.3 72.3 76.9 2.6 2.1 3.2 5.9 1.2 8.5l-26.3 35.3a5.92 5.92 0 0 1-8.9.7c-30.6-29.3-56.8-65.2-78.1-106.9V656c0 4.4-3.6 8-8 8h-36.2c-4.4 0-8-3.6-8-8V536c-22 44.7-49 80.8-80.6 107.6a6.38 6.38 0 0 1-4.8 1.4c-1.7-.3-3.2-1.3-4.1-2.8L432 605.7a6 6 0 0 1 1.6-8.1c28.6-20.3 51.9-45.2 71-76h-55.1c-4.4 0-8-3.6-8-8V478c0-4.4 3.6-8 8-8h94.9v-18.6h-65.9c-4.4 0-8-3.6-8-8V316c0-4.4 3.6-8 8-8h184.7c4.4 0 8 3.6 8 8z"],[e,"M443.7 306.9l-38.6-18.3c-3.4-1.6-7.3.2-8.4 3.7-17.5 58.5-45.2 110.2-82.2 153.6a5.7 5.7 0 0 0-1.2 5.6l13.2 43.5c1.4 4.5 7 5.8 10.2 2.4 7.7-8.1 15.4-16.8 23.1-26V656c0 4.4 3.6 8 8 8h37.3c4.4 0 8-3.6 8-8h.2V393.1a429.2 429.2 0 0 0 33.6-79c.9-2.8-.5-5.9-3.2-7.2zm26.8 9.1v127.4c0 4.4 3.6 8 8 8h65.9V470h-94.9c-4.4 0-8 3.6-8 8v35.6c0 4.4 3.6 8 8 8h55.1c-19.1 30.8-42.4 55.7-71 76a6 6 0 0 0-1.6 8.1l22.8 36.5c.9 1.5 2.4 2.5 4.1 2.8 1.7.3 3.5-.2 4.8-1.4 31.6-26.8 58.6-62.9 80.6-107.6v120c0 4.4 3.6 8 8 8h36.2c4.4 0 8-3.6 8-8V535.9c21.3 41.7 47.5 77.6 78.1 106.9 2.6 2.5 6.7 2.2 8.9-.7l26.3-35.3c2-2.6 1.4-6.4-1.2-8.5-30.5-22.6-54.2-47.8-72.3-76.9h59c4.4 0 8-3.6 8-8v-35.6c0-4.4-3.6-8-8-8h-98.8v-18.6h66.7c4.4 0 8-3.6 8-8V316c0-4.4-3.6-8-8-8H478.5c-4.4 0-8 3.6-8 8zm51.4 42.8h97.9v41.6h-97.9v-41.6z"])})),t.InteractionTwoTone=l("interaction",c,(function(e,t){return s(a,[e,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"],[t,"M184 840h656V184H184v656zm114-401.9c0-55.3 44.6-100.1 99.7-100.1h205.8v-53.4c0-5.6 6.5-8.8 10.9-5.3L723.5 365c3.5 2.7 3.5 8 0 10.7l-109.1 85.7c-4.4 3.5-10.9.4-10.9-5.3v-53.4H397.8c-19.6 0-35.5 15.9-35.5 35.6v78.9c0 3.8-3.1 6.8-6.8 6.8h-50.7c-3.8 0-6.8-3-6.8-7v-78.9zm2.6 210.3l109.1-85.7c4.4-3.5 10.9-.4 10.9 5.3v53.4h205.6c19.6 0 35.5-15.9 35.5-35.6v-78.9c0-3.8 3.1-6.8 6.8-6.8h50.7c3.8 0 6.8 3.1 6.8 6.8v78.9c0 55.3-44.6 100.1-99.7 100.1H420.6v53.4c0 5.6-6.5 8.8-10.9 5.3l-109.1-85.7c-3.5-2.7-3.5-8 0-10.5z"],[e,"M304.8 524h50.7c3.7 0 6.8-3 6.8-6.8v-78.9c0-19.7 15.9-35.6 35.5-35.6h205.7v53.4c0 5.7 6.5 8.8 10.9 5.3l109.1-85.7c3.5-2.7 3.5-8 0-10.7l-109.1-85.7c-4.4-3.5-10.9-.3-10.9 5.3V338H397.7c-55.1 0-99.7 44.8-99.7 100.1V517c0 4 3 7 6.8 7zm-4.2 134.9l109.1 85.7c4.4 3.5 10.9.3 10.9-5.3v-53.4h205.7c55.1 0 99.7-44.8 99.7-100.1v-78.9c0-3.7-3-6.8-6.8-6.8h-50.7c-3.7 0-6.8 3-6.8 6.8v78.9c0 19.7-15.9 35.6-35.5 35.6H420.6V568c0-5.7-6.5-8.8-10.9-5.3l-109.1 85.7c-3.5 2.5-3.5 7.8 0 10.5z"])})),t.InterationTwoTone=l("interation",c,(function(e,t){return s(a,[e,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"],[t,"M184 840h656V184H184v656zm114-401.9c0-55.3 44.6-100.1 99.7-100.1h205.8v-53.4c0-5.6 6.5-8.8 10.9-5.3L723.5 365c3.5 2.7 3.5 8 0 10.7l-109.1 85.7c-4.4 3.5-10.9.4-10.9-5.3v-53.4H397.8c-19.6 0-35.5 15.9-35.5 35.6v78.9c0 3.8-3.1 6.8-6.8 6.8h-50.7c-3.8 0-6.8-3-6.8-7v-78.9zm2.6 210.3l109.1-85.7c4.4-3.5 10.9-.4 10.9 5.3v53.4h205.6c19.6 0 35.5-15.9 35.5-35.6v-78.9c0-3.8 3.1-6.8 6.8-6.8h50.7c3.8 0 6.8 3.1 6.8 6.8v78.9c0 55.3-44.6 100.1-99.7 100.1H420.6v53.4c0 5.6-6.5 8.8-10.9 5.3l-109.1-85.7c-3.5-2.7-3.5-8 0-10.5z"],[e,"M304.8 524h50.7c3.7 0 6.8-3 6.8-6.8v-78.9c0-19.7 15.9-35.6 35.5-35.6h205.7v53.4c0 5.7 6.5 8.8 10.9 5.3l109.1-85.7c3.5-2.7 3.5-8 0-10.7l-109.1-85.7c-4.4-3.5-10.9-.3-10.9 5.3V338H397.7c-55.1 0-99.7 44.8-99.7 100.1V517c0 4 3 7 6.8 7zm-4.2 134.9l109.1 85.7c4.4 3.5 10.9.3 10.9-5.3v-53.4h205.7c55.1 0 99.7-44.8 99.7-100.1v-78.9c0-3.7-3-6.8-6.8-6.8h-50.7c-3.7 0-6.8 3-6.8 6.8v78.9c0 19.7-15.9 35.6-35.5 35.6H420.6V568c0-5.7-6.5-8.8-10.9-5.3l-109.1 85.7c-3.5 2.5-3.5 7.8 0 10.5z"])})),t.LayoutTwoTone=l("layout",c,(function(e,t){return s(a,[t,"M384 185h456v136H384zm-200 0h136v656H184zm696-73H144c-17.7 0-32 14.3-32 32v1c0-17.7 14.3-32 32-32h736c17.7 0 32 14.3 32 32v-1c0-17.7-14.3-32-32-32zM384 385h456v456H384z"],[e,"M880 113H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V145c0-17.7-14.3-32-32-32zM320 841H184V185h136v656zm520 0H384V385h456v456zm0-520H384V185h456v136z"])})),t.LeftCircleTwoTone=l("left-circle",c,(function(e,t){return s(a,[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm104 240.9c0 10.3-4.9 19.9-13.2 25.9L457.4 512l145.4 105.1c8.3 6 13.2 15.7 13.2 25.9v46.9c0 6.5-7.4 10.3-12.7 6.5l-246-178a7.95 7.95 0 0 1 0-12.9l246-178c5.3-3.8 12.7 0 12.7 6.5v46.9z"],[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[e,"M603.3 327.5l-246 178a7.95 7.95 0 0 0 0 12.9l246 178c5.3 3.8 12.7 0 12.7-6.5V643c0-10.2-4.9-19.9-13.2-25.9L457.4 512l145.4-105.2c8.3-6 13.2-15.6 13.2-25.9V334c0-6.5-7.4-10.3-12.7-6.5z"])})),t.LeftSquareTwoTone=l("left-square",c,(function(e,t){return s(a,[e,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"],[t,"M184 840h656V184H184v656zm181.3-334.5l246-178c5.3-3.8 12.7 0 12.7 6.5v46.9c0 10.3-4.9 19.9-13.2 25.9L465.4 512l145.4 105.2c8.3 6 13.2 15.7 13.2 25.9V690c0 6.5-7.4 10.3-12.7 6.4l-246-178a7.95 7.95 0 0 1 0-12.9z"],[e,"M365.3 518.4l246 178c5.3 3.9 12.7.1 12.7-6.4v-46.9c0-10.2-4.9-19.9-13.2-25.9L465.4 512l145.4-105.2c8.3-6 13.2-15.6 13.2-25.9V334c0-6.5-7.4-10.3-12.7-6.5l-246 178a7.95 7.95 0 0 0 0 12.9z"])})),t.LikeTwoTone=l("like",c,(function(e,t){return s(a,[t,"M273 495.9v428l.3-428zm538.2-88.3H496.8l9.6-198.4c.6-11.9-4.7-23.1-14.6-30.5-6.1-4.5-13.6-6.8-21.1-6.7-19.6.1-36.9 13.4-42.2 32.3-37.1 134.4-64.9 235.2-83.5 302.5V852h399.4a56.85 56.85 0 0 0 33.6-51.8c0-9.7-2.3-18.9-6.9-27.3l-13.9-25.4 21.9-19a56.76 56.76 0 0 0 19.6-43c0-9.7-2.3-18.9-6.9-27.3l-13.9-25.4 21.9-19a56.76 56.76 0 0 0 19.6-43c0-9.7-2.3-18.9-6.9-27.3l-14-25.5 21.9-19a56.76 56.76 0 0 0 19.6-43c0-19.1-11-37.5-28.8-48.4z"],[e,"M112 528v364c0 17.7 14.3 32 32 32h65V496h-65c-17.7 0-32 14.3-32 32zm773.9 5.7c16.8-22.2 26.1-49.4 26.1-77.7 0-44.9-25.1-87.5-65.5-111a67.67 67.67 0 0 0-34.3-9.3H572.3l6-122.9c1.5-29.7-9-57.9-29.5-79.4a106.4 106.4 0 0 0-77.9-33.4c-52 0-98 35-111.8 85.1l-85.8 310.8-.3 428h472.1c9.3 0 18.2-1.8 26.5-5.4 47.6-20.3 78.3-66.8 78.3-118.4 0-12.6-1.8-25-5.4-37 16.8-22.2 26.1-49.4 26.1-77.7 0-12.6-1.8-25-5.4-37 16.8-22.2 26.1-49.4 26.1-77.7 0-12.6-1.8-25-5.4-37zM820.4 499l-21.9 19 14 25.5a56.2 56.2 0 0 1 6.9 27.3c0 16.5-7.1 32.2-19.6 43l-21.9 19 13.9 25.4a56.2 56.2 0 0 1 6.9 27.3c0 16.5-7.1 32.2-19.6 43l-21.9 19 13.9 25.4a56.2 56.2 0 0 1 6.9 27.3c0 22.4-13.2 42.6-33.6 51.8H345V506.8c18.6-67.2 46.4-168 83.5-302.5a44.28 44.28 0 0 1 42.2-32.3c7.5-.1 15 2.2 21.1 6.7 9.9 7.4 15.2 18.6 14.6 30.5l-9.6 198.4h314.4C829 418.5 840 436.9 840 456c0 16.5-7.1 32.2-19.6 43z"])})),t.LockTwoTone=l("lock",c,(function(e,t){return s(a,[e,"M832 464h-68V240c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zM332 240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v224H332V240zm460 600H232V536h560v304z"],[t,"M232 840h560V536H232v304zm280-226a48.01 48.01 0 0 1 28 87v53c0 4.4-3.6 8-8 8h-40c-4.4 0-8-3.6-8-8v-53a48.01 48.01 0 0 1 28-87z"],[e,"M484 701v53c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-53a48.01 48.01 0 1 0-56 0z"])})),t.MailTwoTone=l("mail",c,(function(e,t){return s(a,[t,"M477.5 536.3L135.9 270.7l-27.5-21.4 27.6 21.5V792h752V270.8L546.2 536.3a55.99 55.99 0 0 1-68.7 0z"],[t,"M876.3 198.8l39.3 50.5-27.6 21.5 27.7-21.5-39.3-50.5z"],[e,"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-94.5 72.1L512 482 190.5 232.1h643zm54.5 38.7V792H136V270.8l-27.6-21.5 27.5 21.4 341.6 265.6a55.99 55.99 0 0 0 68.7 0L888 270.8l27.6-21.5-39.3-50.5h.1l39.3 50.5-27.7 21.5z"])})),t.MedicineBoxTwoTone=l("medicine-box",c,(function(e,t){return s(a,[t,"M244.3 328L184 513.4V840h656V513.4L779.7 328H244.3zM660 628c0 4.4-3.6 8-8 8H544v108c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V636H372c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h108V464c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v108h108c4.4 0 8 3.6 8 8v48z"],[e,"M652 572H544V464c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v108H372c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h108v108c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V636h108c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z"],[e,"M839.2 278.1a32 32 0 0 0-30.4-22.1H736V144c0-17.7-14.3-32-32-32H320c-17.7 0-32 14.3-32 32v112h-72.8a31.9 31.9 0 0 0-30.4 22.1L112 502v378c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V502l-72.8-223.9zM360 184h304v72H360v-72zm480 656H184V513.4L244.3 328h535.4L840 513.4V840z"])})),t.MehTwoTone=l("meh",c,(function(e,t){return s(a,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zM288 421a48.01 48.01 0 0 1 96 0 48.01 48.01 0 0 1-96 0zm384 200c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h304c4.4 0 8 3.6 8 8v48zm16-152a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z"],[e,"M288 421a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm376 144H360c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h304c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm-24-144a48 48 0 1 0 96 0 48 48 0 1 0-96 0z"])})),t.MessageTwoTone=l("message",c,(function(e,t){return s(a,[t,"M775.3 248.9a369.62 369.62 0 0 0-119-80A370.2 370.2 0 0 0 512.1 140h-1.7c-99.7.4-193 39.4-262.8 109.9-69.9 70.5-108 164.1-107.6 263.8.3 60.3 15.3 120.2 43.5 173.1l4.5 8.4V836h140.8l8.4 4.5c52.9 28.2 112.8 43.2 173.1 43.5h1.7c99 0 192-38.2 262.1-107.6 70.4-69.8 109.5-163.1 110.1-262.7.2-50.6-9.5-99.6-28.9-145.8a370.15 370.15 0 0 0-80-119zM312 560a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96zm200 0a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96zm200 0a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z"],[e,"M664 512a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm-400 0a48 48 0 1 0 96 0 48 48 0 1 0-96 0z"],[e,"M925.2 338.4c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 0 0-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 0 0-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 0 0 112 714v152a46 46 0 0 0 46 46h152.1A449.4 449.4 0 0 0 510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 0 0 142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z"],[e,"M464 512a48 48 0 1 0 96 0 48 48 0 1 0-96 0z"])})),t.MinusCircleTwoTone=l("minus-circle",c,(function(e,t){return s(a,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm192 396c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z"],[e,"M696 480H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z"])})),t.MinusSquareTwoTone=l("minus-square",c,(function(e,t){return s(a,[e,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"],[t,"M184 840h656V184H184v656zm136-352c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48z"],[e,"M328 544h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z"])})),t.MobileTwoTone=l("mobile",c,(function(e,t){return s(a,[e,"M744 64H280c-35.3 0-64 28.7-64 64v768c0 35.3 28.7 64 64 64h464c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64zm-8 824H288V136h448v752z"],[t,"M288 888h448V136H288v752zm224-142c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40z"],[e,"M472 786a40 40 0 1 0 80 0 40 40 0 1 0-80 0z"])})),t.PauseCircleTwoTone=l("pause-circle",c,(function(e,t){return s(a,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm-80 524c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V360c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v304zm224 0c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V360c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v304z"],[e,"M424 352h-48c-4.4 0-8 3.6-8 8v304c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8zm224 0h-48c-4.4 0-8 3.6-8 8v304c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8z"])})),t.MoneyCollectTwoTone=l("money-collect",c,(function(e,t){return s(a,[t,"M256 744.4l256 93.1 256-93.1V184H256v560.4zM359.7 313c1.2-.7 2.5-1 3.8-1h55.7a8 8 0 0 1 7.1 4.4L511 485.2h3.3L599 316.4c1.3-2.7 4.1-4.4 7.1-4.4h54.5c4.4 0 8 3.6 8.1 7.9 0 1.3-.4 2.6-1 3.8L564 515.3h57.6c4.4 0 8 3.6 8 8v27.1c0 4.4-3.6 8-8 8h-76.3v39h76.3c4.4 0 8 3.6 8 8v27.1c0 4.4-3.6 8-8 8h-76.3V704c0 4.4-3.6 8-8 8h-49.9c-4.4 0-8-3.6-8-8v-63.4h-76c-4.4 0-8-3.6-8-8v-27.1c0-4.4 3.6-8 8-8h76v-39h-76c-4.4 0-8-3.6-8-8v-27.1c0-4.4 3.6-8 8-8h57L356.5 323.8c-2.1-3.8-.7-8.7 3.2-10.8z"],[e,"M911.5 700.7a8 8 0 0 0-10.3-4.8L840 718.2V180c0-37.6-30.4-68-68-68H252c-37.6 0-68 30.4-68 68v538.2l-61.3-22.3c-.9-.3-1.8-.5-2.7-.5-4.4 0-8 3.6-8 8V763c0 3.3 2.1 6.3 5.3 7.5L501 910.1c7.1 2.6 14.8 2.6 21.9 0l383.8-139.5c3.2-1.2 5.3-4.2 5.3-7.5v-59.6c0-1-.2-1.9-.5-2.8zM768 744.4l-256 93.1-256-93.1V184h512v560.4z"],[e,"M460.4 515.4h-57c-4.4 0-8 3.6-8 8v27.1c0 4.4 3.6 8 8 8h76v39h-76c-4.4 0-8 3.6-8 8v27.1c0 4.4 3.6 8 8 8h76V704c0 4.4 3.6 8 8 8h49.9c4.4 0 8-3.6 8-8v-63.5h76.3c4.4 0 8-3.6 8-8v-27.1c0-4.4-3.6-8-8-8h-76.3v-39h76.3c4.4 0 8-3.6 8-8v-27.1c0-4.4-3.6-8-8-8H564l103.7-191.6c.6-1.2 1-2.5 1-3.8-.1-4.3-3.7-7.9-8.1-7.9h-54.5c-3 0-5.8 1.7-7.1 4.4l-84.7 168.8H511l-84.7-168.8a8 8 0 0 0-7.1-4.4h-55.7c-1.3 0-2.6.3-3.8 1-3.9 2.1-5.3 7-3.2 10.8l103.9 191.6z"])})),t.NotificationTwoTone=l("notification",c,(function(e,t){return s(a,[t,"M229.6 678.1c-3.7 11.6-5.6 23.9-5.6 36.4 0-12.5 2-24.8 5.7-36.4h-.1zm76.3-260.2H184v188.2h121.9l12.9 5.2L840 820.7V203.3L318.8 412.7z"],[e,"M880 112c-3.8 0-7.7.7-11.6 2.3L292 345.9H128c-8.8 0-16 7.4-16 16.6v299c0 9.2 7.2 16.6 16 16.6h101.7c-3.7 11.6-5.7 23.9-5.7 36.4 0 65.9 53.8 119.5 120 119.5 55.4 0 102.1-37.6 115.9-88.4l408.6 164.2c3.9 1.5 7.8 2.3 11.6 2.3 16.9 0 32-14.2 32-33.2V145.2C912 126.2 897 112 880 112zM344 762.3c-26.5 0-48-21.4-48-47.8 0-11.2 3.9-21.9 11-30.4l84.9 34.1c-2 24.6-22.7 44.1-47.9 44.1zm496 58.4L318.8 611.3l-12.9-5.2H184V417.9h121.9l12.9-5.2L840 203.3v617.4z"])})),t.PhoneTwoTone=l("phone",c,(function(e,t){return s(a,[t,"M721.7 184.9L610.9 295.8l120.8 120.7-8 21.6A481.29 481.29 0 0 1 438 723.9l-21.6 8-.9-.9-119.8-120-110.8 110.9 104.5 104.5c10.8 10.7 26 15.7 40.8 13.2 117.9-19.5 235.4-82.9 330.9-178.4s158.9-213.1 178.4-331c2.5-14.8-2.5-30-13.3-40.8L721.7 184.9z"],[e,"M877.1 238.7L770.6 132.3c-13-13-30.4-20.3-48.8-20.3s-35.8 7.2-48.8 20.3L558.3 246.8c-13 13-20.3 30.5-20.3 48.9 0 18.5 7.2 35.8 20.3 48.9l89.6 89.7a405.46 405.46 0 0 1-86.4 127.3c-36.7 36.9-79.6 66-127.2 86.6l-89.6-89.7c-13-13-30.4-20.3-48.8-20.3a68.2 68.2 0 0 0-48.8 20.3L132.3 673c-13 13-20.3 30.5-20.3 48.9 0 18.5 7.2 35.8 20.3 48.9l106.4 106.4c22.2 22.2 52.8 34.9 84.2 34.9 6.5 0 12.8-.5 19.2-1.6 132.4-21.8 263.8-92.3 369.9-198.3C818 606 888.4 474.6 910.4 342.1c6.3-37.6-6.3-76.3-33.3-103.4zm-37.6 91.5c-19.5 117.9-82.9 235.5-178.4 331s-213 158.9-330.9 178.4c-14.8 2.5-30-2.5-40.8-13.2L184.9 721.9 295.7 611l119.8 120 .9.9 21.6-8a481.29 481.29 0 0 0 285.7-285.8l8-21.6-120.8-120.7 110.8-110.9 104.5 104.5c10.8 10.8 15.8 26 13.3 40.8z"])})),t.PictureTwoTone=l("picture",c,(function(e,t){return s(a,[e,"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 632H136v-39.9l138.5-164.3 150.1 178L658.1 489 888 761.6V792zm0-129.8L664.2 396.8c-3.2-3.8-9-3.8-12.2 0L424.6 666.4l-144-170.7c-3.2-3.8-9-3.8-12.2 0L136 652.7V232h752v430.2z"],[t,"M424.6 765.8l-150.1-178L136 752.1V792h752v-30.4L658.1 489z"],[t,"M136 652.7l132.4-157c3.2-3.8 9-3.8 12.2 0l144 170.7L652 396.8c3.2-3.8 9-3.8 12.2 0L888 662.2V232H136v420.7zM304 280a88 88 0 1 1 0 176 88 88 0 0 1 0-176z"],[t,"M276 368a28 28 0 1 0 56 0 28 28 0 1 0-56 0z"],[e,"M304 456a88 88 0 1 0 0-176 88 88 0 0 0 0 176zm0-116c15.5 0 28 12.5 28 28s-12.5 28-28 28-28-12.5-28-28 12.5-28 28-28z"])})),t.PlayCircleTwoTone=l("play-circle",c,(function(e,t){return s(a,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm164.1 378.2L457.7 677.1a8.02 8.02 0 0 1-12.7-6.5V353a8 8 0 0 1 12.7-6.5l218.4 158.8a7.9 7.9 0 0 1 0 12.9z"],[e,"M676.1 505.3L457.7 346.5A8 8 0 0 0 445 353v317.6a8.02 8.02 0 0 0 12.7 6.5l218.4-158.9a7.9 7.9 0 0 0 0-12.9z"])})),t.PlaySquareTwoTone=l("play-square",c,(function(e,t){return s(a,[e,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"],[t,"M184 840h656V184H184v656zm240-484.7c0-9.4 10.9-14.7 18.3-8.8l199.4 156.7a11.2 11.2 0 0 1 0 17.6L442.3 677.6c-7.4 5.8-18.3.6-18.3-8.8V355.3z"],[e,"M442.3 677.6l199.4-156.8a11.2 11.2 0 0 0 0-17.6L442.3 346.5c-7.4-5.9-18.3-.6-18.3 8.8v313.5c0 9.4 10.9 14.6 18.3 8.8z"])})),t.PieChartTwoTone=l("pie-chart",c,(function(e,t){return s(a,[t,"M316.2 920.5c-47.6-20.1-90.4-49-127.1-85.7a398.19 398.19 0 0 1-85.7-127.1A397.12 397.12 0 0 1 72 552.2v.2a398.57 398.57 0 0 0 117 282.5c36.7 36.7 79.4 65.5 127 85.6A396.64 396.64 0 0 0 471.6 952c27 0 53.6-2.7 79.7-7.9-25.9 5.2-52.4 7.8-79.3 7.8-54 .1-106.4-10.5-155.8-31.4zM560 472c-4.4 0-8-3.6-8-8V79.9c0-1.3.3-2.5.9-3.6-.9 1.3-1.5 2.9-1.5 4.6v383.7c0 4.4 3.6 8 8 8l383.6-1c1.6 0 3.1-.5 4.4-1.3-1 .5-2.2.7-3.4.7l-384 1z"],[t,"M619.8 147.6v256.6l256.4-.7c-13-62.5-44.3-120.5-90-166.1a332.24 332.24 0 0 0-166.4-89.8z"],[t,"M438 221.7c-75.9 7.6-146.2 40.9-200.8 95.5C174.5 379.9 140 463.3 140 552s34.5 172.1 97.2 234.8c62.3 62.3 145.1 96.8 233.2 97.2 88.2.4 172.7-34.1 235.3-96.2C761 733 794.6 662.3 802.3 586H438V221.7z"],[e,"M864 518H506V160c0-4.4-3.6-8-8-8h-26a398.46 398.46 0 0 0-282.8 117.1 398.19 398.19 0 0 0-85.7 127.1A397.61 397.61 0 0 0 72 552v.2c0 53.9 10.6 106.2 31.4 155.5 20.1 47.6 49 90.4 85.7 127.1 36.7 36.7 79.5 65.6 127.1 85.7A397.61 397.61 0 0 0 472 952c26.9 0 53.4-2.6 79.3-7.8 26.1-5.3 51.7-13.1 76.4-23.6 47.6-20.1 90.4-49 127.1-85.7 36.7-36.7 65.6-79.5 85.7-127.1A397.61 397.61 0 0 0 872 552v-26c0-4.4-3.6-8-8-8zM705.7 787.8A331.59 331.59 0 0 1 470.4 884c-88.1-.4-170.9-34.9-233.2-97.2C174.5 724.1 140 640.7 140 552s34.5-172.1 97.2-234.8c54.6-54.6 124.9-87.9 200.8-95.5V586h364.3c-7.7 76.3-41.3 147-96.6 201.8z"],[e,"M952 462.4l-2.6-28.2c-8.5-92.1-49.4-179-115.2-244.6A399.4 399.4 0 0 0 589 74.6L560.7 72c-3.4-.3-6.4 1.5-7.8 4.3a8.7 8.7 0 0 0-.9 3.6V464c0 4.4 3.6 8 8 8l384-1c1.2 0 2.3-.3 3.4-.7a8.1 8.1 0 0 0 4.6-7.9zm-332.2-58.2V147.6a332.24 332.24 0 0 1 166.4 89.8c45.7 45.6 77 103.6 90 166.1l-256.4.7z"])})),t.PlusCircleTwoTone=l("plus-circle",c,(function(e,t){return s(a,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm192 396c0 4.4-3.6 8-8 8H544v152c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V544H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h152V328c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v152h152c4.4 0 8 3.6 8 8v48z"],[e,"M696 480H544V328c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v152H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h152v152c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V544h152c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z"])})),t.PlusSquareTwoTone=l("plus-square",c,(function(e,t){return s(a,[e,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"],[t,"M184 840h656V184H184v656zm136-352c0-4.4 3.6-8 8-8h152V328c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v152h152c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H544v152c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V544H328c-4.4 0-8-3.6-8-8v-48z"],[e,"M328 544h152v152c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V544h152c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H544V328c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v152H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z"])})),t.PoundCircleTwoTone=l("pound-circle",c,(function(e,t){return s(a,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm146 582.1c0 4.4-3.6 8-8 8H376.2c-4.4 0-8-3.6-8-8v-38.5c0-3.7 2.5-6.9 6.1-7.8 44-10.9 72.8-49 72.8-94.2 0-14.7-2.5-29.4-5.9-44.2H374c-4.4 0-8-3.6-8-8v-30c0-4.4 3.6-8 8-8h53.7c-7.8-25.1-14.6-50.7-14.6-77.1 0-75.8 58.6-120.3 151.5-120.3 26.5 0 51.4 5.5 70.3 12.7 3.1 1.2 5.2 4.2 5.2 7.5v39.5a8 8 0 0 1-10.6 7.6c-17.9-6.4-39-10.5-60.4-10.5-53.3 0-87.3 26.6-87.3 70.2 0 24.7 6.2 47.9 13.4 70.5h112c4.4 0 8 3.6 8 8v30c0 4.4-3.6 8-8 8h-98.6c3.1 13.2 5.3 26.9 5.3 41 0 40.7-16.5 73.9-43.9 91.1v4.7h180c4.4 0 8 3.6 8 8v39.8z"],[e,"M650 674.3H470v-4.7c27.4-17.2 43.9-50.4 43.9-91.1 0-14.1-2.2-27.8-5.3-41h98.6c4.4 0 8-3.6 8-8v-30c0-4.4-3.6-8-8-8h-112c-7.2-22.6-13.4-45.8-13.4-70.5 0-43.6 34-70.2 87.3-70.2 21.4 0 42.5 4.1 60.4 10.5a8 8 0 0 0 10.6-7.6v-39.5c0-3.3-2.1-6.3-5.2-7.5-18.9-7.2-43.8-12.7-70.3-12.7-92.9 0-151.5 44.5-151.5 120.3 0 26.4 6.8 52 14.6 77.1H374c-4.4 0-8 3.6-8 8v30c0 4.4 3.6 8 8 8h67.2c3.4 14.8 5.9 29.5 5.9 44.2 0 45.2-28.8 83.3-72.8 94.2-3.6.9-6.1 4.1-6.1 7.8v38.5c0 4.4 3.6 8 8 8H650c4.4 0 8-3.6 8-8v-39.8c0-4.4-3.6-8-8-8z"])})),t.PrinterTwoTone=l("printer",c,(function(e,t){return s(a,[t,"M360 180h304v152H360zm492 220H172c-6.6 0-12 5.4-12 12v292h132V500h440v204h132V412c0-6.6-5.4-12-12-12zm-24 84c0 4.4-3.6 8-8 8h-40c-4.4 0-8-3.6-8-8v-40c0-4.4 3.6-8 8-8h40c4.4 0 8 3.6 8 8v40z"],[e,"M852 332H732V120c0-4.4-3.6-8-8-8H300c-4.4 0-8 3.6-8 8v212H172c-44.2 0-80 35.8-80 80v328c0 17.7 14.3 32 32 32h168v132c0 4.4 3.6 8 8 8h424c4.4 0 8-3.6 8-8V772h168c17.7 0 32-14.3 32-32V412c0-44.2-35.8-80-80-80zM360 180h304v152H360V180zm304 664H360V568h304v276zm200-140H732V500H292v204H160V412c0-6.6 5.4-12 12-12h680c6.6 0 12 5.4 12 12v292z"],[e,"M820 436h-40c-4.4 0-8 3.6-8 8v40c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-40c0-4.4-3.6-8-8-8z"])})),t.ProfileTwoTone=l("profile",c,(function(e,t){return s(a,[e,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"],[t,"M184 840h656V184H184v656zm300-496c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H492c-4.4 0-8-3.6-8-8v-48zm0 144c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H492c-4.4 0-8-3.6-8-8v-48zm0 144c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H492c-4.4 0-8-3.6-8-8v-48zM380 328c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zm0 144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zm0 144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40z"],[e,"M340 656a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm0-144a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm0-144a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm152 320h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H492c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm0-144h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H492c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm0-144h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H492c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z"])})),t.ProjectTwoTone=l("project",c,(function(e,t){return s(a,[e,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"],[t,"M184 840h656V184H184v656zm472-560c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v256c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8V280zm-192 0c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v184c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8V280zm-192 0c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v464c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8V280z"],[e,"M280 752h80c4.4 0 8-3.6 8-8V280c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8v464c0 4.4 3.6 8 8 8zm192-280h80c4.4 0 8-3.6 8-8V280c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8v184c0 4.4 3.6 8 8 8zm192 72h80c4.4 0 8-3.6 8-8V280c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8v256c0 4.4 3.6 8 8 8z"])})),t.PushpinTwoTone=l("pushpin",c,(function(e,t){return s(a,[t,"M474.8 357.7l-24.5 24.5-34.4-3.8c-9.6-1.1-19.3-1.6-28.9-1.6-29 0-57.5 4.7-84.7 14.1-14 4.8-27.4 10.8-40.3 17.9l353.1 353.3a259.92 259.92 0 0 0 30.4-153.9l-3.8-34.4 24.5-24.5L800 415.5 608.5 224 474.8 357.7z"],[e,"M878.3 392.1L631.9 145.7c-6.5-6.5-15-9.7-23.5-9.7s-17 3.2-23.5 9.7L423.8 306.9c-12.2-1.4-24.5-2-36.8-2-73.2 0-146.4 24.1-206.5 72.3a33.23 33.23 0 0 0-2.7 49.4l181.7 181.7-215.4 215.2a15.8 15.8 0 0 0-4.6 9.8l-3.4 37.2c-.9 9.4 6.6 17.4 15.9 17.4.5 0 1 0 1.5-.1l37.2-3.4c3.7-.3 7.2-2 9.8-4.6l215.4-215.4 181.7 181.7c6.5 6.5 15 9.7 23.5 9.7 9.7 0 19.3-4.2 25.9-12.4 56.3-70.3 79.7-158.3 70.2-243.4l161.1-161.1c12.9-12.8 12.9-33.8 0-46.8zM666.2 549.3l-24.5 24.5 3.8 34.4a259.92 259.92 0 0 1-30.4 153.9L262 408.8c12.9-7.1 26.3-13.1 40.3-17.9 27.2-9.4 55.7-14.1 84.7-14.1 9.6 0 19.3.5 28.9 1.6l34.4 3.8 24.5-24.5L608.5 224 800 415.5 666.2 549.3z"])})),t.PropertySafetyTwoTone=l("property-safety",c,(function(e,t){return s(a,[e,"M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6z"],[t,"M214 226.7v427.6l298 232.2 298-232.2V226.7L512 125.1 214 226.7zM593.9 318h45c5.5 0 10 4.5 10 10 .1 1.7-.3 3.3-1.1 4.8l-87.7 161.1h45.7c5.5 0 10 4.5 10 10v21.3c0 5.5-4.5 10-10 10h-63.4v29.7h63.4c5.5 0 10 4.5 10 10v21.3c0 5.5-4.5 10-10 10h-63.4V658c0 5.5-4.5 10-10 10h-41.3c-5.5 0-10-4.5-10-10v-51.8H418c-5.5 0-10-4.5-10-10v-21.3c0-5.5 4.5-10 10-10h63.1v-29.7H418c-5.5 0-10-4.5-10-10v-21.3c0-5.5 4.5-10 10-10h45.2l-88-161.1c-2.6-4.8-.9-10.9 4-13.6 1.5-.8 3.1-1.2 4.8-1.2h46c3.8 0 7.2 2.1 8.9 5.5l72.9 144.3L585 323.5a10 10 0 0 1 8.9-5.5z"],[e,"M438.9 323.5a9.88 9.88 0 0 0-8.9-5.5h-46c-1.7 0-3.3.4-4.8 1.2-4.9 2.7-6.6 8.8-4 13.6l88 161.1H418c-5.5 0-10 4.5-10 10v21.3c0 5.5 4.5 10 10 10h63.1v29.7H418c-5.5 0-10 4.5-10 10v21.3c0 5.5 4.5 10 10 10h63.1V658c0 5.5 4.5 10 10 10h41.3c5.5 0 10-4.5 10-10v-51.8h63.4c5.5 0 10-4.5 10-10v-21.3c0-5.5-4.5-10-10-10h-63.4v-29.7h63.4c5.5 0 10-4.5 10-10v-21.3c0-5.5-4.5-10-10-10h-45.7l87.7-161.1c.8-1.5 1.2-3.1 1.1-4.8 0-5.5-4.5-10-10-10h-45a10 10 0 0 0-8.9 5.5l-73.2 144.3-72.9-144.3z"])})),t.QuestionCircleTwoTone=l("question-circle",c,(function(e,t){return s(a,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm0 632c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm62.9-219.5a48.3 48.3 0 0 0-30.9 44.8V620c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-21.5c0-23.1 6.7-45.9 19.9-64.9 12.9-18.6 30.9-32.8 52.1-40.9 34-13.1 56-41.6 56-72.7 0-44.1-43.1-80-96-80s-96 35.9-96 80v7.6c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V420c0-39.3 17.2-76 48.4-103.3C430.4 290.4 470 276 512 276s81.6 14.5 111.6 40.7C654.8 344 672 380.7 672 420c0 57.8-38.1 109.8-97.1 132.5z"],[e,"M472 732a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm151.6-415.3C593.6 290.5 554 276 512 276s-81.6 14.4-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.2 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0 1 30.9-44.8c59-22.7 97.1-74.7 97.1-132.5 0-39.3-17.2-76-48.4-103.3z"])})),t.ReconciliationTwoTone=l("reconciliation",c,(function(e,t){return s(a,[t,"M740 344H404V240H304v160h176c17.7 0 32 14.3 32 32v360h328V240H740v104zM584 448c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56zm92 301c-50.8 0-92-41.2-92-92s41.2-92 92-92 92 41.2 92 92-41.2 92-92 92zm92-341v96c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-96c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8z"],[t,"M642 657a34 34 0 1 0 68 0 34 34 0 1 0-68 0z"],[e,"M592 512h48c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm112-104v96c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-96c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8z"],[e,"M880 168H668c0-30.9-25.1-56-56-56h-80c-30.9 0-56 25.1-56 56H264c-17.7 0-32 14.3-32 32v200h-88c-17.7 0-32 14.3-32 32v448c0 17.7 14.3 32 32 32h336c17.7 0 32-14.3 32-32v-16h368c17.7 0 32-14.3 32-32V200c0-17.7-14.3-32-32-32zm-412 64h72v-56h64v56h72v48H468v-48zm-20 616H176V616h272v232zm0-296H176v-88h272v88zm392 240H512V432c0-17.7-14.3-32-32-32H304V240h100v104h336V240h100v552z"],[e,"M676 565c-50.8 0-92 41.2-92 92s41.2 92 92 92 92-41.2 92-92-41.2-92-92-92zm0 126c-18.8 0-34-15.2-34-34s15.2-34 34-34 34 15.2 34 34-15.2 34-34 34z"])})),t.RedEnvelopeTwoTone=l("red-envelope",c,(function(e,t){return s(a,[e,"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-40 824H232V193.1l260.3 204.1c11.6 9.1 27.9 9.1 39.5 0L792 193.1V888zm0-751.3h-31.7L512 331.3 263.7 136.7H232v-.7h560v.7z"],[t,"M492.3 397.2L232 193.1V888h560V193.1L531.8 397.2a31.99 31.99 0 0 1-39.5 0zm99.4 60.9h47.8a8.45 8.45 0 0 1 7.4 12.4l-87.2 161h45.9c4.6 0 8.4 3.8 8.4 8.4V665c0 4.6-3.8 8.4-8.4 8.4h-63.3V702h63.3c4.6 0 8.4 3.8 8.4 8.4v25c.2 4.7-3.5 8.5-8.2 8.5h-63.3v49.9c0 4.6-3.8 8.4-8.4 8.4h-43.7c-4.6 0-8.4-3.8-8.4-8.4v-49.9h-63c-4.6 0-8.4-3.8-8.4-8.4v-25.1c0-4.6 3.8-8.4 8.4-8.4h63v-28.6h-63c-4.6 0-8.4-3.8-8.4-8.4v-25.1c0-4.6 3.8-8.4 8.4-8.4h45.4L377 470.4a8.4 8.4 0 0 1 3.4-11.4c1.3-.6 2.6-1 3.9-1h48.8c3.2 0 6.1 1.8 7.5 4.6l71.7 142 71.9-141.9a8.6 8.6 0 0 1 7.5-4.6z"],[t,"M232 136.7h31.7L512 331.3l248.3-194.6H792v-.7H232z"],[e,"M440.6 462.6a8.38 8.38 0 0 0-7.5-4.6h-48.8c-1.3 0-2.6.4-3.9 1a8.4 8.4 0 0 0-3.4 11.4l87.4 161.1H419c-4.6 0-8.4 3.8-8.4 8.4V665c0 4.6 3.8 8.4 8.4 8.4h63V702h-63c-4.6 0-8.4 3.8-8.4 8.4v25.1c0 4.6 3.8 8.4 8.4 8.4h63v49.9c0 4.6 3.8 8.4 8.4 8.4h43.7c4.6 0 8.4-3.8 8.4-8.4v-49.9h63.3c4.7 0 8.4-3.8 8.2-8.5v-25c0-4.6-3.8-8.4-8.4-8.4h-63.3v-28.6h63.3c4.6 0 8.4-3.8 8.4-8.4v-25.1c0-4.6-3.8-8.4-8.4-8.4h-45.9l87.2-161a8.45 8.45 0 0 0-7.4-12.4h-47.8c-3.1 0-6 1.8-7.5 4.6l-71.9 141.9-71.7-142z"])})),t.RestTwoTone=l("rest",c,(function(e,t){return s(a,[t,"M326.4 844h363.2l44.3-520H282l44.4 520zM508 416c79.5 0 144 64.5 144 144s-64.5 144-144 144-144-64.5-144-144 64.5-144 144-144z"],[e,"M508 704c79.5 0 144-64.5 144-144s-64.5-144-144-144-144 64.5-144 144 64.5 144 144 144zm0-224c44.2 0 80 35.8 80 80s-35.8 80-80 80-80-35.8-80-80 35.8-80 80-80z"],[e,"M832 256h-28.1l-35.7-120.9c-4-13.7-16.5-23.1-30.7-23.1h-451c-14.3 0-26.8 9.4-30.7 23.1L220.1 256H192c-17.7 0-32 14.3-32 32v28c0 4.4 3.6 8 8 8h45.8l47.7 558.7a32 32 0 0 0 31.9 29.3h429.2a32 32 0 0 0 31.9-29.3L802.2 324H856c4.4 0 8-3.6 8-8v-28c0-17.7-14.3-32-32-32zm-518.6-76h397.2l22.4 76H291l22.4-76zm376.2 664H326.4L282 324h451.9l-44.3 520z"])})),t.RightCircleTwoTone=l("right-circle",c,(function(e,t){return s(a,[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm154.7 378.4l-246 178c-5.3 3.8-12.7 0-12.7-6.5V643c0-10.2 4.9-19.9 13.2-25.9L566.6 512 421.2 406.8c-8.3-6-13.2-15.6-13.2-25.9V334c0-6.5 7.4-10.3 12.7-6.5l246 178c4.4 3.2 4.4 9.7 0 12.9z"],[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[e,"M666.7 505.5l-246-178c-5.3-3.8-12.7 0-12.7 6.5v46.9c0 10.3 4.9 19.9 13.2 25.9L566.6 512 421.2 617.1c-8.3 6-13.2 15.7-13.2 25.9v46.9c0 6.5 7.4 10.3 12.7 6.5l246-178c4.4-3.2 4.4-9.7 0-12.9z"])})),t.RocketTwoTone=l("rocket",c,(function(e,t){return s(a,[t,"M261.7 621.4c-9.4 14.6-17 30.3-22.5 46.6H324V558.7c-24.8 16.2-46 37.5-62.3 62.7zM700 558.7V668h84.8c-5.5-16.3-13.1-32-22.5-46.6a211.6 211.6 0 0 0-62.3-62.7zm-64-239.9l-124-147-124 147V668h248V318.8zM512 448a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z"],[e,"M864 736c0-111.6-65.4-208-160-252.9V317.3c0-15.1-5.3-29.7-15.1-41.2L536.5 95.4C530.1 87.8 521 84 512 84s-18.1 3.8-24.5 11.4L335.1 276.1a63.97 63.97 0 0 0-15.1 41.2v165.8C225.4 528 160 624.4 160 736h156.5c-2.3 7.2-3.5 15-3.5 23.8 0 22.1 7.6 43.7 21.4 60.8a97.2 97.2 0 0 0 43.1 30.6c23.1 54 75.6 88.8 134.5 88.8 29.1 0 57.3-8.6 81.4-24.8 23.6-15.8 41.9-37.9 53-64a97 97 0 0 0 43.1-30.5 97.52 97.52 0 0 0 21.4-60.8c0-8.4-1.1-16.4-3.1-23.8L864 736zm-540-68h-84.8c5.5-16.3 13.1-32 22.5-46.6 16.3-25.2 37.5-46.5 62.3-62.7V668zm64-184.9V318.8l124-147 124 147V668H388V483.1zm240.1 301.1c-5.2 3-11.2 4.2-17.1 3.4l-19.5-2.4-2.8 19.4c-5.4 37.9-38.4 66.5-76.7 66.5s-71.3-28.6-76.7-66.5l-2.8-19.5-19.5 2.5a27.7 27.7 0 0 1-17.1-3.5c-8.7-5-14.1-14.3-14.1-24.4 0-10.6 5.9-19.4 14.6-23.8h231.3c8.8 4.5 14.6 13.3 14.6 23.8-.1 10.2-5.5 19.6-14.2 24.5zM700 668V558.7a211.6 211.6 0 0 1 62.3 62.7c9.4 14.6 17 30.3 22.5 46.6H700z"],[e,"M464 400a48 48 0 1 0 96 0 48 48 0 1 0-96 0z"])})),t.RightSquareTwoTone=l("right-square",c,(function(e,t){return s(a,[e,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"],[t,"M184 840h656V184H184v656zm216-196.9c0-10.2 4.9-19.9 13.2-25.9L558.6 512 413.2 406.8c-8.3-6-13.2-15.6-13.2-25.9V334c0-6.5 7.4-10.3 12.7-6.5l246 178c4.4 3.2 4.4 9.7 0 12.9l-246 178c-5.3 3.9-12.7.1-12.7-6.4v-46.9z"],[e,"M412.7 696.4l246-178c4.4-3.2 4.4-9.7 0-12.9l-246-178c-5.3-3.8-12.7 0-12.7 6.5v46.9c0 10.3 4.9 19.9 13.2 25.9L558.6 512 413.2 617.2c-8.3 6-13.2 15.7-13.2 25.9V690c0 6.5 7.4 10.3 12.7 6.4z"])})),t.SafetyCertificateTwoTone=l("safety-certificate",c,(function(e,t){return s(a,[e,"M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6z"],[t,"M214 226.7v427.6l298 232.2 298-232.2V226.7L512 125.1 214 226.7zM632.8 328H688c6.5 0 10.3 7.4 6.5 12.7L481.9 633.4a16.1 16.1 0 0 1-26 0l-126.4-174c-3.8-5.3 0-12.7 6.5-12.7h55.2c5.2 0 10 2.5 13 6.6l64.7 89.1 150.9-207.8c3-4.1 7.9-6.6 13-6.6z"],[e,"M404.2 453.3c-3-4.1-7.8-6.6-13-6.6H336c-6.5 0-10.3 7.4-6.5 12.7l126.4 174a16.1 16.1 0 0 0 26 0l212.6-292.7c3.8-5.3 0-12.7-6.5-12.7h-55.2c-5.1 0-10 2.5-13 6.6L468.9 542.4l-64.7-89.1z"])})),t.SaveTwoTone=l("save",c,(function(e,t){return s(a,[t,"M704 320c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V184H184v656h656V341.8l-136-136V320zM512 730c-79.5 0-144-64.5-144-144s64.5-144 144-144 144 64.5 144 144-64.5 144-144 144z"],[e,"M512 442c-79.5 0-144 64.5-144 144s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144zm0 224c-44.2 0-80-35.8-80-80s35.8-80 80-80 80 35.8 80 80-35.8 80-80 80z"],[e,"M893.3 293.3L730.7 130.7c-.7-.7-1.4-1.3-2.1-2-.1-.1-.3-.2-.4-.3-.7-.7-1.5-1.3-2.2-1.9a64 64 0 0 0-22-11.7V112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V338.5c0-17-6.7-33.2-18.7-45.2zM384 184h256v104H384V184zm456 656H184V184h136v136c0 17.7 14.3 32 32 32h320c17.7 0 32-14.3 32-32V205.8l136 136V840z"])})),t.ScheduleTwoTone=l("schedule",c,(function(e,t){return s(a,[t,"M768 352c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-56H548v56c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-56H328v56c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-56H136v496h752V296H768v56zM424 688c0 4.4-3.6 8-8 8H232c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zm0-136c0 4.4-3.6 8-8 8H232c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zm374.4-91.2l-165 228.7a15.9 15.9 0 0 1-25.8 0L493.5 531.3c-3.8-5.3 0-12.7 6.5-12.7h54.9c5.1 0 9.9 2.4 12.9 6.6l52.8 73.1 103.6-143.7c3-4.1 7.8-6.6 12.8-6.5h54.9c6.5 0 10.3 7.4 6.5 12.7z"],[e,"M724.2 454.6L620.6 598.3l-52.8-73.1c-3-4.2-7.8-6.6-12.9-6.6H500c-6.5 0-10.3 7.4-6.5 12.7l114.1 158.2a15.9 15.9 0 0 0 25.8 0l165-228.7c3.8-5.3 0-12.7-6.5-12.7H737c-5-.1-9.8 2.4-12.8 6.5zM416 496H232c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z"],[e,"M928 224H768v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H548v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H328v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H96c-17.7 0-32 14.3-32 32v576c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32zm-40 568H136V296h120v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h148v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h148v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h120v496z"],[e,"M416 632H232c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z"])})),t.SecurityScanTwoTone=l("security-scan",c,(function(e,t){return s(a,[e,"M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6z"],[t,"M460.7 451.1a80.1 80.1 0 1 0 160.2 0 80.1 80.1 0 1 0-160.2 0z"],[t,"M214 226.7v427.6l298 232.2 298-232.2V226.7L512 125.1 214 226.7zm428.7 122.5c56.3 56.3 56.3 147.5 0 203.8-48.5 48.5-123 55.2-178.6 20.1l-77.5 77.5a8.03 8.03 0 0 1-11.3 0l-34-34a8.03 8.03 0 0 1 0-11.3l77.5-77.5c-35.1-55.7-28.4-130.1 20.1-178.6 56.3-56.3 147.5-56.3 203.8 0z"],[e,"M418.8 527.8l-77.5 77.5a8.03 8.03 0 0 0 0 11.3l34 34c3.1 3.1 8.2 3.1 11.3 0l77.5-77.5c55.6 35.1 130.1 28.4 178.6-20.1 56.3-56.3 56.3-147.5 0-203.8-56.3-56.3-147.5-56.3-203.8 0-48.5 48.5-55.2 122.9-20.1 178.6zm65.4-133.3a80.1 80.1 0 0 1 113.3 0 80.1 80.1 0 0 1 0 113.3c-31.3 31.3-82 31.3-113.3 0s-31.3-82 0-113.3z"])})),t.SettingTwoTone=l("setting",c,(function(e,t){return s(a,[t,"M859.3 569.7l.2.1c3.1-18.9 4.6-38.2 4.6-57.3 0-17.1-1.3-34.3-3.7-51.1 2.4 16.7 3.6 33.6 3.6 50.5 0 19.4-1.6 38.8-4.7 57.8zM99 398.1c-.5-.4-.9-.8-1.4-1.3.7.7 1.4 1.4 2.2 2.1l65.5 55.9v-.1L99 398.1zm536.6-216h.1l-15.5-83.8c-.2-1-.4-1.9-.7-2.8.1.5.3 1.1.4 1.6l15.7 85zm54 546.5l31.4-25.8 92.8 32.9c17-22.9 31.3-47.5 42.6-73.6l-74.7-63.9 6.6-40.1c2.5-15.1 3.8-30.6 3.8-46.1s-1.3-31-3.8-46.1l-6.5-39.9 74.7-63.9c-11.4-26-25.6-50.7-42.6-73.6l-92.8 32.9-31.4-25.8c-23.9-19.6-50.6-35-79.3-45.8l-38.1-14.3-17.9-97a377.5 377.5 0 0 0-85 0l-17.9 97.2-37.9 14.3c-28.5 10.8-55 26.2-78.7 45.7l-31.4 25.9-93.4-33.2c-17 22.9-31.3 47.5-42.6 73.6l75.5 64.5-6.5 40c-2.5 14.9-3.7 30.2-3.7 45.5 0 15.2 1.3 30.6 3.7 45.5l6.5 40-75.5 64.5c11.4 26 25.6 50.7 42.6 73.6l93.4-33.2 31.4 25.9c23.7 19.5 50.2 34.9 78.7 45.7l37.8 14.5 17.9 97.2c28.2 3.2 56.9 3.2 85 0l17.9-97 38.1-14.3c28.8-10.8 55.4-26.2 79.3-45.8zm-177.1-50.3c-30.5 0-59.2-7.8-84.3-21.5C373.3 627 336 568.9 336 502c0-97.2 78.8-176 176-176 66.9 0 125 37.3 154.8 92.2 13.7 25 21.5 53.7 21.5 84.3 0 97.1-78.7 175.8-175.8 175.8zM207.2 812.8c-5.5 1.9-11.2 2.3-16.6 1.2 5.7 1.2 11.7 1 17.5-1l81.4-29c-.1-.1-.3-.2-.4-.3l-81.9 29.1zm717.6-414.7l-65.5 56c0 .2.1.5.1.7l65.4-55.9c7.1-6.1 11.1-14.9 11.2-24-.3 8.8-4.3 17.3-11.2 23.2z"],[t,"M935.8 646.6c.5 4.7 0 9.5-1.7 14.1l-.9 2.6a446.02 446.02 0 0 1-79.7 137.9l-1.8 2.1a32 32 0 0 1-35.1 9.5l-81.3-28.9a350 350 0 0 1-99.7 57.6l-15.7 85a32.05 32.05 0 0 1-25.8 25.7l-2.7.5a445.2 445.2 0 0 1-79.2 7.1h.3c26.7 0 53.4-2.4 79.4-7.1l2.7-.5a32.05 32.05 0 0 0 25.8-25.7l15.7-84.9c36.2-13.6 69.6-32.9 99.6-57.5l81.2 28.9a32 32 0 0 0 35.1-9.5l1.8-2.1c34.8-41.1 61.5-87.4 79.6-137.7l.9-2.6c1.6-4.7 2.1-9.7 1.5-14.5z"],[e,"M688 502c0-30.3-7.7-58.9-21.2-83.8C637 363.3 578.9 326 512 326c-97.2 0-176 78.8-176 176 0 66.9 37.3 125 92.2 154.8 24.9 13.5 53.4 21.2 83.8 21.2 97.2 0 176-78.8 176-176zm-288 0c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 0 1 624 502c0 29.9-11.7 58-32.8 79.2A111.6 111.6 0 0 1 512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 0 1 400 502z"],[e,"M594.1 952.2a32.05 32.05 0 0 0 25.8-25.7l15.7-85a350 350 0 0 0 99.7-57.6l81.3 28.9a32 32 0 0 0 35.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c1.7-4.6 2.2-9.4 1.7-14.1-.9-7.9-4.7-15.4-11-20.9l-65.3-55.9-.2-.1c3.1-19 4.7-38.4 4.7-57.8 0-16.9-1.2-33.9-3.6-50.5-.3-2.2-.7-4.4-1-6.6 0-.2-.1-.5-.1-.7l65.5-56c6.9-5.9 10.9-14.4 11.2-23.2.1-4-.5-8.1-1.9-12l-.9-2.6a443.74 443.74 0 0 0-79.7-137.9l-1.8-2.1a32.12 32.12 0 0 0-35.1-9.5l-81.3 28.9c-30-24.6-63.4-44-99.6-57.6h-.1l-15.7-85c-.1-.5-.2-1.1-.4-1.6a32.08 32.08 0 0 0-25.4-24.1l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 0 0-25.8 25.7l-15.8 85.4a351.86 351.86 0 0 0-99 57.4l-81.9-29.1a32 32 0 0 0-35.1 9.5l-1.8 2.1a446.02 446.02 0 0 0-79.7 137.9l-.9 2.6a32.09 32.09 0 0 0 7.9 33.9c.5.4.9.9 1.4 1.3l66.3 56.6v.1c-3.1 18.8-4.6 37.9-4.6 57 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 0 0-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1c4.9 5.7 11.4 9.4 18.5 10.7 5.4 1 11.1.7 16.6-1.2l81.9-29.1c.1.1.3.2.4.3 29.7 24.3 62.8 43.6 98.6 57.1l15.8 85.4a32.05 32.05 0 0 0 25.8 25.7l2.7.5c26.1 4.7 52.8 7.1 79.5 7.1h.3c26.6 0 53.3-2.4 79.2-7.1l2.7-.5zm-39.8-66.5a377.5 377.5 0 0 1-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 0 1-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97z"])})),t.ShopTwoTone=l("shop",c,(function(e,t){return s(a,[t,"M839.5 344h-655c-.3 0-.5.2-.5.5v91.2c0 59.8 49 108.3 109.3 108.3 40.7 0 76.2-22 95.1-54.7 2.9-5.1 8.4-8.3 14.3-8.3s11.3 3.2 14.3 8.3c18.8 32.7 54.3 54.7 95 54.7 40.8 0 76.4-22.1 95.1-54.9 2.9-5 8.2-8.1 13.9-8.1h.6c5.8 0 11 3.1 13.9 8.1 18.8 32.8 54.4 54.9 95.2 54.9C791 544 840 495.5 840 435.7v-91.2c0-.3-.2-.5-.5-.5z"],[e,"M882 272.1V144c0-17.7-14.3-32-32-32H174c-17.7 0-32 14.3-32 32v128.1c-16.7 1-30 14.9-30 31.9v131.7a177 177 0 0 0 14.4 70.4c4.3 10.2 9.6 19.8 15.6 28.9v345c0 17.6 14.3 32 32 32h676c17.7 0 32-14.3 32-32V535a175 175 0 0 0 15.6-28.9c9.5-22.3 14.4-46 14.4-70.4V304c0-17-13.3-30.9-30-31.9zM214 184h596v88H214v-88zm362 656.1H448V736h128v104.1zm234.4 0H640V704c0-17.7-14.3-32-32-32H416c-17.7 0-32 14.3-32 32v136.1H214V597.9c2.9 1.4 5.9 2.8 9 4 22.3 9.4 46 14.1 70.4 14.1 24.4 0 48-4.7 70.4-14.1 13.8-5.8 26.8-13.2 38.7-22.1.2-.1.4-.1.6 0a180.4 180.4 0 0 0 38.7 22.1c22.3 9.4 46 14.1 70.4 14.1s48-4.7 70.4-14.1c13.8-5.8 26.8-13.2 38.7-22.1.2-.1.4-.1.6 0a180.4 180.4 0 0 0 38.7 22.1c22.3 9.4 46 14.1 70.4 14.1s48-4.7 70.4-14.1c3-1.3 6-2.6 9-4v242.2zM840 435.7c0 59.8-49 108.3-109.3 108.3-40.8 0-76.4-22.1-95.2-54.9-2.9-5-8.1-8.1-13.9-8.1h-.6c-5.7 0-11 3.1-13.9 8.1A109.24 109.24 0 0 1 512 544c-40.7 0-76.2-22-95-54.7-3-5.1-8.4-8.3-14.3-8.3s-11.4 3.2-14.3 8.3a109.63 109.63 0 0 1-95.1 54.7C233 544 184 495.5 184 435.7v-91.2c0-.3.2-.5.5-.5h655c.3 0 .5.2.5.5v91.2z"])})),t.ShoppingTwoTone=l("shopping",c,(function(e,t){return s(a,[t,"M696 472c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-88H400v88c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-88h-96v456h560V384h-96v88z"],[e,"M832 312H696v-16c0-101.6-82.4-184-184-184s-184 82.4-184 184v16H192c-17.7 0-32 14.3-32 32v536c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V344c0-17.7-14.3-32-32-32zm-432-16c0-61.9 50.1-112 112-112s112 50.1 112 112v16H400v-16zm392 544H232V384h96v88c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-88h224v88c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-88h96v456z"])})),t.SkinTwoTone=l("skin",c,(function(e,t){return s(a,[t,"M512 318c-79.2 0-148.5-48.8-176.7-120H182v196h119v432h422V394h119V198H688.7c-28.2 71.2-97.5 120-176.7 120z"],[e,"M870 126H663.8c-17.4 0-32.9 11.9-37 29.3C614.3 208.1 567 246 512 246s-102.3-37.9-114.8-90.7a37.93 37.93 0 0 0-37-29.3H154a44 44 0 0 0-44 44v252a44 44 0 0 0 44 44h75v388a44 44 0 0 0 44 44h478a44 44 0 0 0 44-44V466h75a44 44 0 0 0 44-44V170a44 44 0 0 0-44-44zm-28 268H723v432H301V394H182V198h153.3c28.2 71.2 97.5 120 176.7 120s148.5-48.8 176.7-120H842v196z"])})),t.SlidersTwoTone=l("sliders",c,(function(e,t){return s(a,[t,"M180 292h80v440h-80zm369 180h-74a3 3 0 0 0-3 3v74a3 3 0 0 0 3 3h74a3 3 0 0 0 3-3v-74a3 3 0 0 0-3-3zm215-108h80v296h-80z"],[e,"M904 296h-66v-96c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v96h-66c-4.4 0-8 3.6-8 8v416c0 4.4 3.6 8 8 8h66v96c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8v-96h66c4.4 0 8-3.6 8-8V304c0-4.4-3.6-8-8-8zm-60 364h-80V364h80v296zM612 404h-66V232c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v172h-66c-4.4 0-8 3.6-8 8v200c0 4.4 3.6 8 8 8h66v172c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V620h66c4.4 0 8-3.6 8-8V412c0-4.4-3.6-8-8-8zm-60 145a3 3 0 0 1-3 3h-74a3 3 0 0 1-3-3v-74a3 3 0 0 1 3-3h74a3 3 0 0 1 3 3v74zM320 224h-66v-56c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v56h-66c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8h66v56c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8v-56h66c4.4 0 8-3.6 8-8V232c0-4.4-3.6-8-8-8zm-60 508h-80V292h80v440z"])})),t.SmileTwoTone=l("smile",c,(function(e,t){return s(a,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zM288 421a48.01 48.01 0 0 1 96 0 48.01 48.01 0 0 1-96 0zm224 272c-85.5 0-155.6-67.3-160-151.6a8 8 0 0 1 8-8.4h48.1c4.2 0 7.8 3.2 8.1 7.4C420 589.9 461.5 629 512 629s92.1-39.1 95.8-88.6c.3-4.2 3.9-7.4 8.1-7.4H664a8 8 0 0 1 8 8.4C667.6 625.7 597.5 693 512 693zm176-224a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z"],[e,"M288 421a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm376 112h-48.1c-4.2 0-7.8 3.2-8.1 7.4-3.7 49.5-45.3 88.6-95.8 88.6s-92-39.1-95.8-88.6c-.3-4.2-3.9-7.4-8.1-7.4H360a8 8 0 0 0-8 8.4c4.4 84.3 74.5 151.6 160 151.6s155.6-67.3 160-151.6a8 8 0 0 0-8-8.4zm-24-112a48 48 0 1 0 96 0 48 48 0 1 0-96 0z"])})),t.SnippetsTwoTone=l("snippets",c,(function(e,t){return s(a,[t,"M450 510V336H232v552h432V550H490c-22.1 0-40-17.9-40-40z"],[e,"M832 112H724V72c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v40H500V72c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v40H320c-17.7 0-32 14.3-32 32v120h-96c-17.7 0-32 14.3-32 32v632c0 17.7 14.3 32 32 32h512c17.7 0 32-14.3 32-32v-96h96c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM664 888H232V336h218v174c0 22.1 17.9 40 40 40h174v338zm0-402H514V336h.2L664 485.8v.2zm128 274h-56V456L544 264H360v-80h68v32c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-32h152v32c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-32h68v576z"])})),t.SoundTwoTone=l("sound",c,(function(e,t){return s(a,[t,"M275.4 424H146v176h129.4l18 11.7L586 803V221L293.3 412.3z"],[e,"M892.1 737.8l-110.3-63.7a15.9 15.9 0 0 0-21.7 5.9l-19.9 34.5c-4.4 7.6-1.8 17.4 5.8 21.8L856.3 800a15.9 15.9 0 0 0 21.7-5.9l19.9-34.5c4.4-7.6 1.7-17.4-5.8-21.8zM934 476H806c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16h128c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16zM760 344a15.9 15.9 0 0 0 21.7 5.9L892 286.2c7.6-4.4 10.2-14.2 5.8-21.8L878 230a15.9 15.9 0 0 0-21.7-5.9L746 287.8a15.99 15.99 0 0 0-5.8 21.8L760 344zM625.9 115c-5.9 0-11.9 1.6-17.4 5.3L254 352H90c-8.8 0-16 7.2-16 16v288c0 8.8 7.2 16 16 16h164l354.5 231.7c5.5 3.6 11.6 5.3 17.4 5.3 16.7 0 32.1-13.3 32.1-32.1V147.1c0-18.8-15.4-32.1-32.1-32.1zM586 803L293.4 611.7l-18-11.7H146V424h129.4l17.9-11.7L586 221v582z"])})),t.StarTwoTone=l("star",c,(function(e,t){return s(a,[t,"M512.5 190.4l-94.4 191.3-211.2 30.7 152.8 149-36.1 210.3 188.9-99.3 188.9 99.2-36.1-210.3 152.8-148.9-211.2-30.7z"],[e,"M908.6 352.8l-253.9-36.9L541.2 85.8c-3.1-6.3-8.2-11.4-14.5-14.5-15.8-7.8-35-1.3-42.9 14.5L370.3 315.9l-253.9 36.9c-7 1-13.4 4.3-18.3 9.3a32.05 32.05 0 0 0 .6 45.3l183.7 179.1L239 839.4a31.95 31.95 0 0 0 46.4 33.7l227.1-119.4 227.1 119.4c6.2 3.3 13.4 4.4 20.3 3.2 17.4-3 29.1-19.5 26.1-36.9l-43.4-252.9 183.7-179.1c5-4.9 8.3-11.3 9.3-18.3 2.7-17.5-9.5-33.7-27-36.3zM665.3 561.3l36.1 210.3-188.9-99.2-188.9 99.3 36.1-210.3-152.8-149 211.2-30.7 94.4-191.3 94.4 191.3 211.2 30.7-152.8 148.9z"])})),t.StopTwoTone=l("stop",c,(function(e,t){return s(a,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm288.5 682.8L277.7 224C258 240 240 258 224 277.7l522.8 522.8C682.8 852.7 601 884 512 884c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372c0 89-31.3 170.8-83.5 234.8z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372c89 0 170.8-31.3 234.8-83.5L224 277.7c16-19.7 34-37.7 53.7-53.7l522.8 522.8C852.7 682.8 884 601 884 512c0-205.4-166.6-372-372-372z"])})),t.SwitcherTwoTone=l("switcher",c,(function(e,t){return s(a,[t,"M184 840h528V312H184v528zm116-290h296v64H300v-64z"],[e,"M880 112H264c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h576v576c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V144c0-17.7-14.3-32-32-32z"],[e,"M752 240H144c-17.7 0-32 14.3-32 32v608c0 17.7 14.3 32 32 32h608c17.7 0 32-14.3 32-32V272c0-17.7-14.3-32-32-32zm-40 600H184V312h528v528z"],[e,"M300 550h296v64H300z"])})),t.TabletTwoTone=l("tablet",c,(function(e,t){return s(a,[e,"M800 64H224c-35.3 0-64 28.7-64 64v768c0 35.3 28.7 64 64 64h576c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64zm-8 824H232V136h560v752z"],[t,"M232 888h560V136H232v752zm280-144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40z"],[e,"M472 784a40 40 0 1 0 80 0 40 40 0 1 0-80 0z"])})),t.TagTwoTone=l("tag",c,(function(e,t){return s(a,[t,"M589 164.6L189.3 564.3l270.4 270.4L859.4 435 836 188l-247-23.4zM680 432c-48.5 0-88-39.5-88-88s39.5-88 88-88 88 39.5 88 88-39.5 88-88 88z"],[e,"M680 256c-48.5 0-88 39.5-88 88s39.5 88 88 88 88-39.5 88-88-39.5-88-88-88zm0 120c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"],[e,"M938 458.8l-29.6-312.6c-1.5-16.2-14.4-29-30.6-30.6L565.2 86h-.4c-3.2 0-5.7 1-7.6 2.9L88.9 557.2a9.96 9.96 0 0 0 0 14.1l363.8 363.8a9.9 9.9 0 0 0 7.1 2.9c2.7 0 5.2-1 7.1-2.9l468.3-468.3c2-2.1 3-5 2.8-8zM459.7 834.7L189.3 564.3 589 164.6 836 188l23.4 247-399.7 399.7z"])})),t.TagsTwoTone=l("tags",c,(function(e,t){return s(a,[t,"M477.5 694l311.9-311.8-19-224.6-224.6-19-311.9 311.9L477.5 694zm116-415.5a47.81 47.81 0 0 1 33.9-33.9c16.6-4.4 34.2.3 46.4 12.4a47.93 47.93 0 0 1 12.4 46.4 47.81 47.81 0 0 1-33.9 33.9c-16.6 4.4-34.2-.3-46.4-12.4a48.3 48.3 0 0 1-12.4-46.4z"],[t,"M476.6 792.6c-1.7-.2-3.4-1-4.7-2.3L137.7 456.1a8.03 8.03 0 0 1 0-11.3L515.9 66.6c1.2-1.3 2.9-2.1 4.7-2.3h-.4c-2.3-.2-4.7.6-6.3 2.3L135.7 444.8a8.03 8.03 0 0 0 0 11.3l334.2 334.2c1.8 1.9 4.3 2.6 6.7 2.3z"],[e,"M889.7 539.8l-39.6-39.5a8.03 8.03 0 0 0-11.3 0l-362 361.3-237.6-237a8.03 8.03 0 0 0-11.3 0l-39.6 39.5a8.03 8.03 0 0 0 0 11.3l243.2 242.8 39.6 39.5c3.1 3.1 8.2 3.1 11.3 0l407.3-406.6c3.1-3.1 3.1-8.2 0-11.3zM652.3 337.3a47.81 47.81 0 0 0 33.9-33.9c4.4-16.6-.3-34.2-12.4-46.4a47.93 47.93 0 0 0-46.4-12.4 47.81 47.81 0 0 0-33.9 33.9c-4.4 16.6.3 34.2 12.4 46.4a48.3 48.3 0 0 0 46.4 12.4z"],[e,"M137.7 444.8a8.03 8.03 0 0 0 0 11.3l334.2 334.2c1.3 1.3 2.9 2.1 4.7 2.3 2.4.3 4.8-.5 6.6-2.3L861.4 412c1.7-1.7 2.5-4 2.3-6.3l-25.5-301.4c-.7-7.8-6.8-13.9-14.6-14.6L522.2 64.3h-1.6c-1.8.2-3.4 1-4.7 2.3L137.7 444.8zm408.1-306.2l224.6 19 19 224.6L477.5 694 233.9 450.5l311.9-311.9z"])})),t.ToolTwoTone=l("tool",c,(function(e,t){return s(a,[t,"M706.8 488.7a32.05 32.05 0 0 1-45.3 0L537 364.2a32.05 32.05 0 0 1 0-45.3l132.9-132.8a184.2 184.2 0 0 0-144 53.5c-58.1 58.1-69.3 145.3-33.6 214.6L439.5 507c-.1 0-.1-.1-.1-.1L209.3 737l79.2 79.2 274-274.1.1.1 8.8-8.8c69.3 35.7 156.5 24.5 214.6-33.6 39.2-39.1 57.3-92.1 53.6-143.9L706.8 488.7z"],[e,"M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 0 1 144-53.5L537 318.9a32.05 32.05 0 0 0 0 45.3l124.5 124.5a32.05 32.05 0 0 0 45.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z"])})),t.TrademarkCircleTwoTone=l("trademark-circle",c,(function(e,t){return s(a,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm170.7 584.2c-1.1.5-2.3.8-3.5.8h-62c-3.1 0-5.9-1.8-7.2-4.6l-74.6-159.2h-88.7V717c0 4.4-3.6 8-8 8H384c-4.4 0-8-3.6-8-8V307c0-4.4 3.6-8 8-8h155.6c98.8 0 144.2 59.9 144.2 131.1 0 70.2-43.6 106.4-78.4 119.2l80.8 164.2c2.1 3.9.4 8.7-3.5 10.7z"],[t,"M529.9 357h-83.4v148H528c53 0 82.8-25.6 82.8-72.4 0-50.3-32.9-75.6-80.9-75.6z"],[e,"M605.4 549.3c34.8-12.8 78.4-49 78.4-119.2 0-71.2-45.4-131.1-144.2-131.1H384c-4.4 0-8 3.6-8 8v410c0 4.4 3.6 8 8 8h54.7c4.4 0 8-3.6 8-8V561.2h88.7L610 720.4c1.3 2.8 4.1 4.6 7.2 4.6h62c1.2 0 2.4-.3 3.5-.8 3.9-2 5.6-6.8 3.5-10.7l-80.8-164.2zM528 505h-81.5V357h83.4c48 0 80.9 25.3 80.9 75.6 0 46.8-29.8 72.4-82.8 72.4z"])})),t.UnlockTwoTone=l("unlock",c,(function(e,t){return s(a,[t,"M232 840h560V536H232v304zm280-226a48.01 48.01 0 0 1 28 87v53c0 4.4-3.6 8-8 8h-40c-4.4 0-8-3.6-8-8v-53a48.01 48.01 0 0 1 28-87z"],[e,"M484 701v53c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-53a48.01 48.01 0 1 0-56 0z"],[e,"M832 464H332V240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v68c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-68c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zm-40 376H232V536h560v304z"])})),t.TrophyTwoTone=l("trophy",c,(function(e,t){return s(a,[t,"M320 480c0 49.1 19.1 95.3 53.9 130.1 34.7 34.8 81 53.9 130.1 53.9h16c49.1 0 95.3-19.1 130.1-53.9 34.8-34.7 53.9-81 53.9-130.1V184H320v296zM184 352c0 41 26.9 75.8 64 87.6-37.1-11.9-64-46.7-64-87.6zm364 382.5C665 721.8 758.4 630.2 773.8 514 758.3 630.2 665 721.7 548 734.5zM250.2 514C265.6 630.2 359 721.8 476 734.5 359 721.7 265.7 630.2 250.2 514z"],[e,"M868 160h-92v-40c0-4.4-3.6-8-8-8H256c-4.4 0-8 3.6-8 8v40h-92a44 44 0 0 0-44 44v148c0 81.7 60 149.6 138.2 162C265.7 630.2 359 721.7 476 734.5v105.2H280c-17.7 0-32 14.3-32 32V904c0 4.4 3.6 8 8 8h512c4.4 0 8-3.6 8-8v-32.3c0-17.7-14.3-32-32-32H548V734.5C665 721.7 758.3 630.2 773.8 514 852 501.6 912 433.7 912 352V204a44 44 0 0 0-44-44zM248 439.6a91.99 91.99 0 0 1-64-87.6V232h64v207.6zM704 480c0 49.1-19.1 95.4-53.9 130.1-34.8 34.8-81 53.9-130.1 53.9h-16c-49.1 0-95.4-19.1-130.1-53.9-34.8-34.8-53.9-81-53.9-130.1V184h384v296zm136-128c0 41-26.9 75.8-64 87.6V232h64v120z"])})),t.UpCircleTwoTone=l("up-circle",c,(function(e,t){return s(a,[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm178 479h-46.9c-10.2 0-19.9-4.9-25.9-13.2L512 460.4 406.8 605.8c-6 8.3-15.6 13.2-25.9 13.2H334c-6.5 0-10.3-7.4-6.5-12.7l178-246c3.2-4.4 9.7-4.4 12.9 0l178 246c3.9 5.3.1 12.7-6.4 12.7z"],[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[e,"M518.4 360.3a7.95 7.95 0 0 0-12.9 0l-178 246c-3.8 5.3 0 12.7 6.5 12.7h46.9c10.3 0 19.9-4.9 25.9-13.2L512 460.4l105.2 145.4c6 8.3 15.7 13.2 25.9 13.2H690c6.5 0 10.3-7.4 6.4-12.7l-178-246z"])})),t.ThunderboltTwoTone=l("thunderbolt",c,(function(e,t){return s(a,[t,"M695.4 164.1H470.8L281.2 491.5h157.4l-60.3 241 319.8-305.1h-211z"],[e,"M848.1 359.3H627.8L825.9 109c4.1-5.3.4-13-6.3-13H436.1c-2.8 0-5.5 1.5-6.9 4L170.1 547.5c-3.1 5.3.7 12 6.9 12h174.4L262 917.1c-1.9 7.8 7.5 13.3 13.3 7.7L853.6 373c5.2-4.9 1.7-13.7-5.5-13.7zM378.3 732.5l60.3-241H281.2l189.6-327.4h224.6L487.1 427.4h211L378.3 732.5z"])})),t.UpSquareTwoTone=l("up-square",c,(function(e,t){return s(a,[e,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"],[t,"M184 840h656V184H184v656zm143.5-228.7l178-246c3.2-4.4 9.7-4.4 12.9 0l178 246c3.9 5.3.1 12.7-6.4 12.7h-46.9c-10.2 0-19.9-4.9-25.9-13.2L512 465.4 406.8 610.8c-6 8.3-15.6 13.2-25.9 13.2H334c-6.5 0-10.3-7.4-6.5-12.7z"],[e,"M334 624h46.9c10.3 0 19.9-4.9 25.9-13.2L512 465.4l105.2 145.4c6 8.3 15.7 13.2 25.9 13.2H690c6.5 0 10.3-7.4 6.4-12.7l-178-246a7.95 7.95 0 0 0-12.9 0l-178 246c-3.8 5.3 0 12.7 6.5 12.7z"])})),t.UsbTwoTone=l("usb",c,(function(e,t){return s(a,[t,"M759.9 504H264.1c-26.5 0-48.1 19.7-48.1 44v292h592V548c0-24.3-21.6-44-48.1-44z"],[e,"M456 248h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm160 0h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z"],[e,"M760 432V144c0-17.7-14.3-32-32-32H296c-17.7 0-32 14.3-32 32v288c-66.2 0-120 52.1-120 116v356c0 4.4 3.6 8 8 8h720c4.4 0 8-3.6 8-8V548c0-63.9-53.8-116-120-116zM336 184h352v248H336V184zm472 656H216V548c0-24.3 21.6-44 48.1-44h495.8c26.5 0 48.1 19.7 48.1 44v292z"])})),t.VideoCameraTwoTone=l("video-camera",c,(function(e,t){return s(a,[t,"M136 792h576V232H136v560zm64-488c0-4.4 3.6-8 8-8h112c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H208c-4.4 0-8-3.6-8-8v-48z"],[e,"M912 302.3L784 376V224c0-35.3-28.7-64-64-64H128c-35.3 0-64 28.7-64 64v576c0 35.3 28.7 64 64 64h592c35.3 0 64-28.7 64-64V648l128 73.7c21.3 12.3 48-3.1 48-27.6V330c0-24.6-26.7-40-48-27.7zM712 792H136V232h576v560zm176-167l-104-59.8V458.9L888 399v226z"],[e,"M208 360h112c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H208c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z"])})),t.WalletTwoTone=l("wallet",c,(function(e,t){return s(a,[e,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 464H528V448h312v128zm0-192H496c-17.7 0-32 14.3-32 32v192c0 17.7 14.3 32 32 32h344v200H184V184h656v200z"],[t,"M528 576h312V448H528v128zm92-104c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40z"],[e,"M580 512a40 40 0 1 0 80 0 40 40 0 1 0-80 0z"],[t,"M184 840h656V640H496c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32h344V184H184v656z"])})),t.WarningTwoTone=l("warning",c,(function(e,t){return s(a,[e,"M955.7 856l-416-720c-6.2-10.7-16.9-16-27.7-16s-21.6 5.3-27.7 16l-416 720C56 877.4 71.4 904 96 904h832c24.6 0 40-26.6 27.7-48zm-783.5-27.9L512 239.9l339.8 588.2H172.2z"],[t,"M172.2 828.1h679.6L512 239.9 172.2 828.1zM560 720a48.01 48.01 0 0 1-96 0 48.01 48.01 0 0 1 96 0zm-16-304v184c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V416c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8z"],[e,"M464 720a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm16-304v184c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V416c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8z"])})),t.CiTwoTone=l("ci",c,(function(e,t){return s(a,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm-63.5 522.8c49.3 0 82.8-29.4 87-72.4.4-4.1 3.8-7.3 8-7.3h52.7c2.4 0 4.4 2 4.4 4.4 0 77.4-64.3 132.5-152.3 132.5C345.4 720 286 651.4 286 537.4v-49C286 373.5 345.4 304 448.3 304c88.3 0 152.3 56.9 152.3 138.1 0 2.4-2 4.4-4.4 4.4h-52.6c-4.2 0-7.6-3.2-8-7.4-3.9-46.1-37.5-77.6-87-77.6-61.1 0-95.6 45.4-95.7 126.8v49.3c0 80.3 34.5 125.2 95.6 125.2zM738 704.1c0 4.4-3.6 8-8 8h-50.4c-4.4 0-8-3.6-8-8V319.9c0-4.4 3.6-8 8-8H730c4.4 0 8 3.6 8 8v384.2z"],[e,"M730 311.9h-50.4c-4.4 0-8 3.6-8 8v384.2c0 4.4 3.6 8 8 8H730c4.4 0 8-3.6 8-8V319.9c0-4.4-3.6-8-8-8zm-281.4 49.6c49.5 0 83.1 31.5 87 77.6.4 4.2 3.8 7.4 8 7.4h52.6c2.4 0 4.4-2 4.4-4.4 0-81.2-64-138.1-152.3-138.1C345.4 304 286 373.5 286 488.4v49c0 114 59.4 182.6 162.3 182.6 88 0 152.3-55.1 152.3-132.5 0-2.4-2-4.4-4.4-4.4h-52.7c-4.2 0-7.6 3.2-8 7.3-4.2 43-37.7 72.4-87 72.4-61.1 0-95.6-44.9-95.6-125.2v-49.3c.1-81.4 34.6-126.8 95.7-126.8z"])})),t.CopyrightTwoTone=l("copyright",c,(function(e,t){return s(a,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm5.5 533c52.9 0 88.8-31.7 93-77.8.4-4.1 3.8-7.3 8-7.3h56.8c2.6 0 4.7 2.1 4.7 4.7 0 82.6-68.7 141.4-162.7 141.4C407.4 734 344 660.8 344 539.1v-52.3C344 364.2 407.4 290 517.3 290c94.3 0 162.7 60.7 162.7 147.4 0 2.6-2.1 4.7-4.7 4.7h-56.7c-4.2 0-7.7-3.2-8-7.4-4-49.6-40-83.4-93-83.4-65.2 0-102.1 48.5-102.2 135.5v52.6c0 85.7 36.8 133.6 102.1 133.6z"],[e,"M517.6 351.3c53 0 89 33.8 93 83.4.3 4.2 3.8 7.4 8 7.4h56.7c2.6 0 4.7-2.1 4.7-4.7 0-86.7-68.4-147.4-162.7-147.4C407.4 290 344 364.2 344 486.8v52.3C344 660.8 407.4 734 517.3 734c94 0 162.7-58.8 162.7-141.4 0-2.6-2.1-4.7-4.7-4.7h-56.8c-4.2 0-7.6 3.2-8 7.3-4.2 46.1-40.1 77.8-93 77.8-65.3 0-102.1-47.9-102.1-133.6v-52.6c.1-87 37-135.5 102.2-135.5z"])})),t.DollarTwoTone=l("dollar",c,(function(e,t){return s(a,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M426.6 410.3c0 25.4 15.7 45.1 49.5 57.3 4.7 1.9 9.4 3.4 15 5v-124c-37 4.7-64.5 25.4-64.5 61.7zm116.5 135.2c-2.9-.6-5.7-1.3-8.8-2.2V677c42.6-3.8 72-27.3 72-66.4 0-30.7-15.9-50.7-63.2-65.1z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm22.4 589.2l.2 31.7c0 4.5-3.6 8.1-8 8.1h-28.4c-4.4 0-8-3.6-8-8v-31.4c-89-6.5-130.7-57.1-135.2-112.1-.4-4.7 3.3-8.7 8-8.7h46.2c3.9 0 7.3 2.8 7.9 6.6 5.1 31.8 29.9 55.4 74.1 61.3V534l-24.7-6.3c-52.3-12.5-102.1-45.1-102.1-112.7 0-73 55.4-112.1 126.2-119v-33c0-4.4 3.6-8 8-8h28.1c4.4 0 8 3.6 8 8v32.7c68.5 6.9 119.8 46.9 125.9 109.2a8.1 8.1 0 0 1-8 8.8h-44.9c-4 0-7.4-2.9-7.9-6.9-4-29.2-27.5-53-65.5-58.2v134.3l25.4 5.9c64.8 16 108.9 47 109 116.4 0 75.2-56 117.1-134.3 124z"],[e,"M559.7 488.8l-25.4-5.9V348.6c38 5.2 61.5 29 65.5 58.2.5 4 3.9 6.9 7.9 6.9h44.9c4.7 0 8.4-4.1 8-8.8-6.1-62.3-57.4-102.3-125.9-109.2V263c0-4.4-3.6-8-8-8h-28.1c-4.4 0-8 3.6-8 8v33c-70.8 6.9-126.2 46-126.2 119 0 67.6 49.8 100.2 102.1 112.7l24.7 6.3v142.7c-44.2-5.9-69-29.5-74.1-61.3-.6-3.8-4-6.6-7.9-6.6H363c-4.7 0-8.4 4-8 8.7 4.5 55 46.2 105.6 135.2 112.1V761c0 4.4 3.6 8 8 8h28.4c4.4 0 8-3.6 8-8.1l-.2-31.7c78.3-6.9 134.3-48.8 134.3-124-.1-69.4-44.2-100.4-109-116.4zm-68.6-16.2c-5.6-1.6-10.3-3.1-15-5-33.8-12.2-49.5-31.9-49.5-57.3 0-36.3 27.5-57 64.5-61.7v124zM534.3 677V543.3c3.1.9 5.9 1.6 8.8 2.2 47.3 14.4 63.2 34.4 63.2 65.1 0 39.1-29.4 62.6-72 66.4z"])})),t.EuroTwoTone=l("euro",c,(function(e,t){return s(a,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm117.1 581.1c0 3.8-2.7 7-6.4 7.8-15.9 3.4-34.4 5.1-55.3 5.1-109.8 0-183-58.8-200.2-158H337c-4.4 0-8-3.6-8-8v-27.2c0-4.4 3.6-8 8-8h26.1v-36.9c0-4.4 0-8.7.3-12.8H337c-4.4 0-8-3.6-8-8v-27.2c0-4.4 3.6-8 8-8h31.8C388.5 345.7 460.7 290 567.4 290c20.9 0 39.4 1.9 55.3 5.4 3.7.8 6.3 4 6.3 7.8V346a8 8 0 0 1-9.6 7.8c-14.6-2.9-31.8-4.4-51.7-4.4-65.3 0-110.4 33.5-127.6 90.4h128.3c4.4 0 8 3.6 8 8V475c0 4.4-3.6 8-8 8H432.5c-.3 4.4-.3 9.1-.3 13.8v36h136.4c4.4 0 8 3.6 8 8V568c0 4.4-3.6 8-8 8H438c15.3 62 61.3 98.6 129.8 98.6 19.9 0 37.1-1.3 51.8-4.1 4.9-1 9.5 2.8 9.5 7.8v42.8z"],[e,"M619.6 670.5c-14.7 2.8-31.9 4.1-51.8 4.1-68.5 0-114.5-36.6-129.8-98.6h130.6c4.4 0 8-3.6 8-8v-27.2c0-4.4-3.6-8-8-8H432.2v-36c0-4.7 0-9.4.3-13.8h135.9c4.4 0 8-3.6 8-8v-27.2c0-4.4-3.6-8-8-8H440.1c17.2-56.9 62.3-90.4 127.6-90.4 19.9 0 37.1 1.5 51.7 4.4a8 8 0 0 0 9.6-7.8v-42.8c0-3.8-2.6-7-6.3-7.8-15.9-3.5-34.4-5.4-55.3-5.4-106.7 0-178.9 55.7-198.6 149.9H337c-4.4 0-8 3.6-8 8v27.2c0 4.4 3.6 8 8 8h26.4c-.3 4.1-.3 8.4-.3 12.8v36.9H337c-4.4 0-8 3.6-8 8V568c0 4.4 3.6 8 8 8h30.2c17.2 99.2 90.4 158 200.2 158 20.9 0 39.4-1.7 55.3-5.1 3.7-.8 6.4-4 6.4-7.8v-42.8c0-5-4.6-8.8-9.5-7.8z"])})),t.GoldTwoTone=l("gold",c,(function(e,t){return s(a,[e,"M435.7 558.7c-.6-3.9-4-6.7-7.9-6.7H166.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8h342c.4 0 .9 0 1.3-.1 4.4-.7 7.3-4.8 6.6-9.2l-40.2-248zM196.5 748l20.7-128h159.5l20.7 128H196.5zm709.4 58.7l-40.2-248c-.6-3.9-4-6.7-7.9-6.7H596.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8h342c.4 0 .9 0 1.3-.1 4.3-.7 7.3-4.8 6.6-9.2zM626.5 748l20.7-128h159.5l20.7 128H626.5zM342 472h342c.4 0 .9 0 1.3-.1 4.4-.7 7.3-4.8 6.6-9.2l-40.2-248c-.6-3.9-4-6.7-7.9-6.7H382.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8zm91.2-196h159.5l20.7 128h-201l20.8-128z"],[t,"M592.7 276H433.2l-20.8 128h201zM217.2 620l-20.7 128h200.9l-20.7-128zm430 0l-20.7 128h200.9l-20.7-128z"])})),t.CanlendarTwoTone=l("canlendar",c,(function(e,t){return s(a,[t,"M712 304c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-48H384v48c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-48H184v136h656V256H712v48z"],[e,"M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V460h656v380zm0-448H184V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v136z"])}))},function(e,t,n){n(301);var r=n(23).Object;e.exports=function(e,t,n){return r.defineProperty(e,t,n)}},function(e,t,n){var r=n(32);r(r.S+r.F*!n(24),"Object",{defineProperty:n(29).f})},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,t,n){e.exports={default:n(304),__esModule:!0}},function(e,t,n){n(305),e.exports=n(23).Object.assign},function(e,t,n){var r=n(32);r(r.S+r.F,"Object",{assign:n(306)})},function(e,t,n){"use strict";var r=n(24),a=n(50),o=n(70),i=n(53),c=n(71),s=n(101),l=Object.assign;e.exports=!l||n(42)((function(){var e={},t={},n=Symbol(),r="abcdefghijklmnopqrst";return e[n]=7,r.split("").forEach((function(e){t[e]=e})),7!=l({},e)[n]||Object.keys(l({},t)).join("")!=r}))?function(e,t){for(var n=c(e),l=arguments.length,u=1,d=o.f,f=i.f;l>u;)for(var h,m=s(arguments[u++]),p=d?a(m).concat(d(m)):a(m),v=p.length,_=0;v>_;)h=p[_++],r&&!f.call(m,h)||(n[h]=m[h]);return n}:l},function(e,t,n){var r=n(35),a=n(308),o=n(309);e.exports=function(e){return function(t,n,i){var c,s=r(t),l=a(s.length),u=o(i,l);if(e&&n!=n){for(;l>u;)if((c=s[u++])!=c)return!0}else for(;l>u;u++)if((e||u in s)&&s[u]===n)return e||u||0;return!e&&-1}}},function(e,t,n){var r=n(66),a=Math.min;e.exports=function(e){return e>0?a(r(e),9007199254740991):0}},function(e,t,n){var r=n(66),a=Math.max,o=Math.min;e.exports=function(e,t){return(e=r(e))<0?a(e+t,0):o(e,t)}},function(e,t,n){e.exports={default:n(311),__esModule:!0}},function(e,t,n){n(312),n(318),e.exports=n(75).f("iterator")},function(e,t,n){"use strict";var r=n(313)(!0);n(103)(String,"String",(function(e){this._t=String(e),this._i=0}),(function(){var e,t=this._t,n=this._i;return n>=t.length?{value:void 0,done:!0}:(e=r(t,n),this._i+=e.length,{value:e,done:!1})}))},function(e,t,n){var r=n(66),a=n(65);e.exports=function(e){return function(t,n){var o,i,c=String(a(t)),s=r(n),l=c.length;return s<0||s>=l?e?"":void 0:(o=c.charCodeAt(s))<55296||o>56319||s+1===l||(i=c.charCodeAt(s+1))<56320||i>57343?e?c.charAt(s):o:e?c.slice(s,s+2):i-56320+(o-55296<<10)+65536}}},function(e,t,n){"use strict";var r=n(73),a=n(49),o=n(74),i={};n(33)(i,n(36)("iterator"),(function(){return this})),e.exports=function(e,t,n){e.prototype=r(i,{next:a(1,n)}),o(e,t+" Iterator")}},function(e,t,n){var r=n(29),a=n(41),o=n(50);e.exports=n(24)?Object.defineProperties:function(e,t){a(e);for(var n,i=o(t),c=i.length,s=0;c>s;)r.f(e,n=i[s++],t[n]);return e}},function(e,t,n){var r=n(22).document;e.exports=r&&r.documentElement},function(e,t,n){var r=n(30),a=n(71),o=n(67)("IE_PROTO"),i=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=a(e),r(e,o)?e[o]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?i:null}},function(e,t,n){n(319);for(var r=n(22),a=n(33),o=n(72),i=n(36)("toStringTag"),c="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),s=0;s<c.length;s++){var l=c[s],u=r[l],d=u&&u.prototype;d&&!d[i]&&a(d,i,l),o[l]=o.Array}},function(e,t,n){"use strict";var r=n(320),a=n(321),o=n(72),i=n(35);e.exports=n(103)(Array,"Array",(function(e,t){this._t=i(e),this._i=0,this._k=t}),(function(){var e=this._t,t=this._k,n=this._i++;return!e||n>=e.length?(this._t=void 0,a(1)):a(0,"keys"==t?n:"values"==t?e[n]:[n,e[n]])}),"values"),o.Arguments=o.Array,r("keys"),r("values"),r("entries")},function(e,t){e.exports=function(){}},function(e,t){e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t,n){e.exports={default:n(323),__esModule:!0}},function(e,t,n){n(324),n(329),n(330),n(331),e.exports=n(23).Symbol},function(e,t,n){"use strict";var r=n(22),a=n(30),o=n(24),i=n(32),c=n(104),s=n(325).KEY,l=n(42),u=n(68),d=n(74),f=n(52),h=n(36),m=n(75),p=n(76),v=n(326),_=n(327),y=n(41),M=n(34),g=n(71),b=n(35),L=n(64),z=n(49),w=n(73),k=n(328),H=n(106),T=n(70),Y=n(29),S=n(50),D=H.f,O=Y.f,x=k.f,C=r.Symbol,V=r.JSON,j=V&&V.stringify,E=h("_hidden"),P=h("toPrimitive"),A={}.propertyIsEnumerable,N=u("symbol-registry"),F=u("symbols"),R=u("op-symbols"),W=Object.prototype,I="function"==typeof C&&!!T.f,q=r.QObject,U=!q||!q.prototype||!q.prototype.findChild,B=o&&l((function(){return 7!=w(O({},"a",{get:function(){return O(this,"a",{value:7}).a}})).a}))?function(e,t,n){var r=D(W,t);r&&delete W[t],O(e,t,n),r&&e!==W&&O(W,t,r)}:O,J=function(e){var t=F[e]=w(C.prototype);return t._k=e,t},G=I&&"symbol"==typeof C.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof C},K=function(e,t,n){return e===W&&K(R,t,n),y(e),t=L(t,!0),y(n),a(F,t)?(n.enumerable?(a(e,E)&&e[E][t]&&(e[E][t]=!1),n=w(n,{enumerable:z(0,!1)})):(a(e,E)||O(e,E,z(1,{})),e[E][t]=!0),B(e,t,n)):O(e,t,n)},$=function(e,t){y(e);for(var n,r=v(t=b(t)),a=0,o=r.length;o>a;)K(e,n=r[a++],t[n]);return e},Q=function(e){var t=A.call(this,e=L(e,!0));return!(this===W&&a(F,e)&&!a(R,e))&&(!(t||!a(this,e)||!a(F,e)||a(this,E)&&this[E][e])||t)},X=function(e,t){if(e=b(e),t=L(t,!0),e!==W||!a(F,t)||a(R,t)){var n=D(e,t);return!n||!a(F,t)||a(e,E)&&e[E][t]||(n.enumerable=!0),n}},Z=function(e){for(var t,n=x(b(e)),r=[],o=0;n.length>o;)a(F,t=n[o++])||t==E||t==s||r.push(t);return r},ee=function(e){for(var t,n=e===W,r=x(n?R:b(e)),o=[],i=0;r.length>i;)!a(F,t=r[i++])||n&&!a(W,t)||o.push(F[t]);return o};I||(c((C=function(){if(this instanceof C)throw TypeError("Symbol is not a constructor!");var e=f(arguments.length>0?arguments[0]:void 0),t=function(n){this===W&&t.call(R,n),a(this,E)&&a(this[E],e)&&(this[E][e]=!1),B(this,e,z(1,n))};return o&&U&&B(W,e,{configurable:!0,set:t}),J(e)}).prototype,"toString",(function(){return this._k})),H.f=X,Y.f=K,n(105).f=k.f=Z,n(53).f=Q,T.f=ee,o&&!n(51)&&c(W,"propertyIsEnumerable",Q,!0),m.f=function(e){return J(h(e))}),i(i.G+i.W+i.F*!I,{Symbol:C});for(var te="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),ne=0;te.length>ne;)h(te[ne++]);for(var re=S(h.store),ae=0;re.length>ae;)p(re[ae++]);i(i.S+i.F*!I,"Symbol",{for:function(e){return a(N,e+="")?N[e]:N[e]=C(e)},keyFor:function(e){if(!G(e))throw TypeError(e+" is not a symbol!");for(var t in N)if(N[t]===e)return t},useSetter:function(){U=!0},useSimple:function(){U=!1}}),i(i.S+i.F*!I,"Object",{create:function(e,t){return void 0===t?w(e):$(w(e),t)},defineProperty:K,defineProperties:$,getOwnPropertyDescriptor:X,getOwnPropertyNames:Z,getOwnPropertySymbols:ee});var oe=l((function(){T.f(1)}));i(i.S+i.F*oe,"Object",{getOwnPropertySymbols:function(e){return T.f(g(e))}}),V&&i(i.S+i.F*(!I||l((function(){var e=C();return"[null]"!=j([e])||"{}"!=j({a:e})||"{}"!=j(Object(e))}))),"JSON",{stringify:function(e){for(var t,n,r=[e],a=1;arguments.length>a;)r.push(arguments[a++]);if(n=t=r[1],(M(t)||void 0!==e)&&!G(e))return _(t)||(t=function(e,t){if("function"==typeof n&&(t=n.call(this,e,t)),!G(t))return t}),r[1]=t,j.apply(V,r)}}),C.prototype[P]||n(33)(C.prototype,P,C.prototype.valueOf),d(C,"Symbol"),d(Math,"Math",!0),d(r.JSON,"JSON",!0)},function(e,t,n){var r=n(52)("meta"),a=n(34),o=n(30),i=n(29).f,c=0,s=Object.isExtensible||function(){return!0},l=!n(42)((function(){return s(Object.preventExtensions({}))})),u=function(e){i(e,r,{value:{i:"O"+ ++c,w:{}}})},d=e.exports={KEY:r,NEED:!1,fastKey:function(e,t){if(!a(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!o(e,r)){if(!s(e))return"F";if(!t)return"E";u(e)}return e[r].i},getWeak:function(e,t){if(!o(e,r)){if(!s(e))return!0;if(!t)return!1;u(e)}return e[r].w},onFreeze:function(e){return l&&d.NEED&&s(e)&&!o(e,r)&&u(e),e}}},function(e,t,n){var r=n(50),a=n(70),o=n(53);e.exports=function(e){var t=r(e),n=a.f;if(n)for(var i,c=n(e),s=o.f,l=0;c.length>l;)s.call(e,i=c[l++])&&t.push(i);return t}},function(e,t,n){var r=n(102);e.exports=Array.isArray||function(e){return"Array"==r(e)}},function(e,t,n){var r=n(35),a=n(105).f,o={}.toString,i="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];e.exports.f=function(e){return i&&"[object Window]"==o.call(e)?function(e){try{return a(e)}catch(e){return i.slice()}}(e):a(r(e))}},function(e,t){},function(e,t,n){n(76)("asyncIterator")},function(e,t,n){n(76)("observable")},function(e,t,n){e.exports={default:n(333),__esModule:!0}},function(e,t,n){n(334),e.exports=n(23).Object.setPrototypeOf},function(e,t,n){var r=n(32);r(r.S,"Object",{setPrototypeOf:n(335).set})},function(e,t,n){var r=n(34),a=n(41),o=function(e,t){if(a(e),!r(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,t,r){try{(r=n(97)(Function.call,n(106).f(Object.prototype,"__proto__").set,2))(e,[]),t=!(e instanceof Array)}catch(e){t=!0}return function(e,n){return o(e,n),t?e.__proto__=n:r(e,n),e}}({},!1):void 0),check:o}},function(e,t,n){e.exports={default:n(337),__esModule:!0}},function(e,t,n){n(338);var r=n(23).Object;e.exports=function(e,t){return r.create(e,t)}},function(e,t,n){var r=n(32);r(r.S,"Object",{create:n(73)})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(340));function o(e,t,n){var r;return(r=Math.round(e.h)>=60&&Math.round(e.h)<=240?n?Math.round(e.h)-2*t:Math.round(e.h)+2*t:n?Math.round(e.h)+2*t:Math.round(e.h)-2*t)<0?r+=360:r>=360&&(r-=360),r}function i(e,t,n){return 0===e.h&&0===e.s?e.s:((r=n?Math.round(100*e.s)-16*t:4===t?Math.round(100*e.s)+16:Math.round(100*e.s)+5*t)>100&&(r=100),n&&5===t&&r>10&&(r=10),r<6&&(r=6),r);var r}function c(e,t,n){return n?Math.round(100*e.v)+5*t:Math.round(100*e.v)-15*t}t.default=function(e){for(var t=[],n=a.default(e),r=5;r>0;r-=1){var s=n.toHsv(),l=a.default({h:o(s,r,!0),s:i(s,r,!0),v:c(s,r,!0)}).toHexString();t.push(l)}for(t.push(n.toHexString()),r=1;r<=4;r+=1){s=n.toHsv(),l=a.default({h:o(s,r),s:i(s,r),v:c(s,r)}).toHexString();t.push(l)}return t}},function(e,t,n){var r;!function(a){var o=/^\s+/,i=/\s+$/,c=0,s=a.round,l=a.min,u=a.max,d=a.random;function f(e,t){if(t=t||{},(e=e||"")instanceof f)return e;if(!(this instanceof f))return new f(e,t);var n=function(e){var t={r:0,g:0,b:0},n=1,r=null,c=null,s=null,d=!1,f=!1;"string"==typeof e&&(e=function(e){e=e.replace(o,"").replace(i,"").toLowerCase();var t,n=!1;if(D[e])e=D[e],n=!0;else if("transparent"==e)return{r:0,g:0,b:0,a:0,format:"name"};if(t=I.rgb.exec(e))return{r:t[1],g:t[2],b:t[3]};if(t=I.rgba.exec(e))return{r:t[1],g:t[2],b:t[3],a:t[4]};if(t=I.hsl.exec(e))return{h:t[1],s:t[2],l:t[3]};if(t=I.hsla.exec(e))return{h:t[1],s:t[2],l:t[3],a:t[4]};if(t=I.hsv.exec(e))return{h:t[1],s:t[2],v:t[3]};if(t=I.hsva.exec(e))return{h:t[1],s:t[2],v:t[3],a:t[4]};if(t=I.hex8.exec(e))return{r:j(t[1]),g:j(t[2]),b:j(t[3]),a:N(t[4]),format:n?"name":"hex8"};if(t=I.hex6.exec(e))return{r:j(t[1]),g:j(t[2]),b:j(t[3]),format:n?"name":"hex"};if(t=I.hex4.exec(e))return{r:j(t[1]+""+t[1]),g:j(t[2]+""+t[2]),b:j(t[3]+""+t[3]),a:N(t[4]+""+t[4]),format:n?"name":"hex8"};if(t=I.hex3.exec(e))return{r:j(t[1]+""+t[1]),g:j(t[2]+""+t[2]),b:j(t[3]+""+t[3]),format:n?"name":"hex"};return!1}(e));"object"==typeof e&&(q(e.r)&&q(e.g)&&q(e.b)?(h=e.r,m=e.g,p=e.b,t={r:255*C(h,255),g:255*C(m,255),b:255*C(p,255)},d=!0,f="%"===String(e.r).substr(-1)?"prgb":"rgb"):q(e.h)&&q(e.s)&&q(e.v)?(r=P(e.s),c=P(e.v),t=function(e,t,n){e=6*C(e,360),t=C(t,100),n=C(n,100);var r=a.floor(e),o=e-r,i=n*(1-t),c=n*(1-o*t),s=n*(1-(1-o)*t),l=r%6;return{r:255*[n,c,i,i,s,n][l],g:255*[s,n,n,c,i,i][l],b:255*[i,i,s,n,n,c][l]}}(e.h,r,c),d=!0,f="hsv"):q(e.h)&&q(e.s)&&q(e.l)&&(r=P(e.s),s=P(e.l),t=function(e,t,n){var r,a,o;function i(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+6*(t-e)*n:n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e}if(e=C(e,360),t=C(t,100),n=C(n,100),0===t)r=a=o=n;else{var c=n<.5?n*(1+t):n+t-n*t,s=2*n-c;r=i(s,c,e+1/3),a=i(s,c,e),o=i(s,c,e-1/3)}return{r:255*r,g:255*a,b:255*o}}(e.h,r,s),d=!0,f="hsl"),e.hasOwnProperty("a")&&(n=e.a));var h,m,p;return n=x(n),{ok:d,format:e.format||f,r:l(255,u(t.r,0)),g:l(255,u(t.g,0)),b:l(255,u(t.b,0)),a:n}}(e);this._originalInput=e,this._r=n.r,this._g=n.g,this._b=n.b,this._a=n.a,this._roundA=s(100*this._a)/100,this._format=t.format||n.format,this._gradientType=t.gradientType,this._r<1&&(this._r=s(this._r)),this._g<1&&(this._g=s(this._g)),this._b<1&&(this._b=s(this._b)),this._ok=n.ok,this._tc_id=c++}function h(e,t,n){e=C(e,255),t=C(t,255),n=C(n,255);var r,a,o=u(e,t,n),i=l(e,t,n),c=(o+i)/2;if(o==i)r=a=0;else{var s=o-i;switch(a=c>.5?s/(2-o-i):s/(o+i),o){case e:r=(t-n)/s+(t<n?6:0);break;case t:r=(n-e)/s+2;break;case n:r=(e-t)/s+4}r/=6}return{h:r,s:a,l:c}}function m(e,t,n){e=C(e,255),t=C(t,255),n=C(n,255);var r,a,o=u(e,t,n),i=l(e,t,n),c=o,s=o-i;if(a=0===o?0:s/o,o==i)r=0;else{switch(o){case e:r=(t-n)/s+(t<n?6:0);break;case t:r=(n-e)/s+2;break;case n:r=(e-t)/s+4}r/=6}return{h:r,s:a,v:c}}function p(e,t,n,r){var a=[E(s(e).toString(16)),E(s(t).toString(16)),E(s(n).toString(16))];return r&&a[0].charAt(0)==a[0].charAt(1)&&a[1].charAt(0)==a[1].charAt(1)&&a[2].charAt(0)==a[2].charAt(1)?a[0].charAt(0)+a[1].charAt(0)+a[2].charAt(0):a.join("")}function v(e,t,n,r){return[E(A(r)),E(s(e).toString(16)),E(s(t).toString(16)),E(s(n).toString(16))].join("")}function _(e,t){t=0===t?0:t||10;var n=f(e).toHsl();return n.s-=t/100,n.s=V(n.s),f(n)}function y(e,t){t=0===t?0:t||10;var n=f(e).toHsl();return n.s+=t/100,n.s=V(n.s),f(n)}function M(e){return f(e).desaturate(100)}function g(e,t){t=0===t?0:t||10;var n=f(e).toHsl();return n.l+=t/100,n.l=V(n.l),f(n)}function b(e,t){t=0===t?0:t||10;var n=f(e).toRgb();return n.r=u(0,l(255,n.r-s(-t/100*255))),n.g=u(0,l(255,n.g-s(-t/100*255))),n.b=u(0,l(255,n.b-s(-t/100*255))),f(n)}function L(e,t){t=0===t?0:t||10;var n=f(e).toHsl();return n.l-=t/100,n.l=V(n.l),f(n)}function z(e,t){var n=f(e).toHsl(),r=(n.h+t)%360;return n.h=r<0?360+r:r,f(n)}function w(e){var t=f(e).toHsl();return t.h=(t.h+180)%360,f(t)}function k(e){var t=f(e).toHsl(),n=t.h;return[f(e),f({h:(n+120)%360,s:t.s,l:t.l}),f({h:(n+240)%360,s:t.s,l:t.l})]}function H(e){var t=f(e).toHsl(),n=t.h;return[f(e),f({h:(n+90)%360,s:t.s,l:t.l}),f({h:(n+180)%360,s:t.s,l:t.l}),f({h:(n+270)%360,s:t.s,l:t.l})]}function T(e){var t=f(e).toHsl(),n=t.h;return[f(e),f({h:(n+72)%360,s:t.s,l:t.l}),f({h:(n+216)%360,s:t.s,l:t.l})]}function Y(e,t,n){t=t||6,n=n||30;var r=f(e).toHsl(),a=360/n,o=[f(e)];for(r.h=(r.h-(a*t>>1)+720)%360;--t;)r.h=(r.h+a)%360,o.push(f(r));return o}function S(e,t){t=t||6;for(var n=f(e).toHsv(),r=n.h,a=n.s,o=n.v,i=[],c=1/t;t--;)i.push(f({h:r,s:a,v:o})),o=(o+c)%1;return i}f.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var e=this.toRgb();return(299*e.r+587*e.g+114*e.b)/1e3},getLuminance:function(){var e,t,n,r=this.toRgb();return e=r.r/255,t=r.g/255,n=r.b/255,.2126*(e<=.03928?e/12.92:a.pow((e+.055)/1.055,2.4))+.7152*(t<=.03928?t/12.92:a.pow((t+.055)/1.055,2.4))+.0722*(n<=.03928?n/12.92:a.pow((n+.055)/1.055,2.4))},setAlpha:function(e){return this._a=x(e),this._roundA=s(100*this._a)/100,this},toHsv:function(){var e=m(this._r,this._g,this._b);return{h:360*e.h,s:e.s,v:e.v,a:this._a}},toHsvString:function(){var e=m(this._r,this._g,this._b),t=s(360*e.h),n=s(100*e.s),r=s(100*e.v);return 1==this._a?"hsv("+t+", "+n+"%, "+r+"%)":"hsva("+t+", "+n+"%, "+r+"%, "+this._roundA+")"},toHsl:function(){var e=h(this._r,this._g,this._b);return{h:360*e.h,s:e.s,l:e.l,a:this._a}},toHslString:function(){var e=h(this._r,this._g,this._b),t=s(360*e.h),n=s(100*e.s),r=s(100*e.l);return 1==this._a?"hsl("+t+", "+n+"%, "+r+"%)":"hsla("+t+", "+n+"%, "+r+"%, "+this._roundA+")"},toHex:function(e){return p(this._r,this._g,this._b,e)},toHexString:function(e){return"#"+this.toHex(e)},toHex8:function(e){return function(e,t,n,r,a){var o=[E(s(e).toString(16)),E(s(t).toString(16)),E(s(n).toString(16)),E(A(r))];if(a&&o[0].charAt(0)==o[0].charAt(1)&&o[1].charAt(0)==o[1].charAt(1)&&o[2].charAt(0)==o[2].charAt(1)&&o[3].charAt(0)==o[3].charAt(1))return o[0].charAt(0)+o[1].charAt(0)+o[2].charAt(0)+o[3].charAt(0);return o.join("")}(this._r,this._g,this._b,this._a,e)},toHex8String:function(e){return"#"+this.toHex8(e)},toRgb:function(){return{r:s(this._r),g:s(this._g),b:s(this._b),a:this._a}},toRgbString:function(){return 1==this._a?"rgb("+s(this._r)+", "+s(this._g)+", "+s(this._b)+")":"rgba("+s(this._r)+", "+s(this._g)+", "+s(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:s(100*C(this._r,255))+"%",g:s(100*C(this._g,255))+"%",b:s(100*C(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+s(100*C(this._r,255))+"%, "+s(100*C(this._g,255))+"%, "+s(100*C(this._b,255))+"%)":"rgba("+s(100*C(this._r,255))+"%, "+s(100*C(this._g,255))+"%, "+s(100*C(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":!(this._a<1)&&(O[p(this._r,this._g,this._b,!0)]||!1)},toFilter:function(e){var t="#"+v(this._r,this._g,this._b,this._a),n=t,r=this._gradientType?"GradientType = 1, ":"";if(e){var a=f(e);n="#"+v(a._r,a._g,a._b,a._a)}return"progid:DXImageTransform.Microsoft.gradient("+r+"startColorstr="+t+",endColorstr="+n+")"},toString:function(e){var t=!!e;e=e||this._format;var n=!1,r=this._a<1&&this._a>=0;return t||!r||"hex"!==e&&"hex6"!==e&&"hex3"!==e&&"hex4"!==e&&"hex8"!==e&&"name"!==e?("rgb"===e&&(n=this.toRgbString()),"prgb"===e&&(n=this.toPercentageRgbString()),"hex"!==e&&"hex6"!==e||(n=this.toHexString()),"hex3"===e&&(n=this.toHexString(!0)),"hex4"===e&&(n=this.toHex8String(!0)),"hex8"===e&&(n=this.toHex8String()),"name"===e&&(n=this.toName()),"hsl"===e&&(n=this.toHslString()),"hsv"===e&&(n=this.toHsvString()),n||this.toHexString()):"name"===e&&0===this._a?this.toName():this.toRgbString()},clone:function(){return f(this.toString())},_applyModification:function(e,t){var n=e.apply(null,[this].concat([].slice.call(t)));return this._r=n._r,this._g=n._g,this._b=n._b,this.setAlpha(n._a),this},lighten:function(){return this._applyModification(g,arguments)},brighten:function(){return this._applyModification(b,arguments)},darken:function(){return this._applyModification(L,arguments)},desaturate:function(){return this._applyModification(_,arguments)},saturate:function(){return this._applyModification(y,arguments)},greyscale:function(){return this._applyModification(M,arguments)},spin:function(){return this._applyModification(z,arguments)},_applyCombination:function(e,t){return e.apply(null,[this].concat([].slice.call(t)))},analogous:function(){return this._applyCombination(Y,arguments)},complement:function(){return this._applyCombination(w,arguments)},monochromatic:function(){return this._applyCombination(S,arguments)},splitcomplement:function(){return this._applyCombination(T,arguments)},triad:function(){return this._applyCombination(k,arguments)},tetrad:function(){return this._applyCombination(H,arguments)}},f.fromRatio=function(e,t){if("object"==typeof e){var n={};for(var r in e)e.hasOwnProperty(r)&&(n[r]="a"===r?e[r]:P(e[r]));e=n}return f(e,t)},f.equals=function(e,t){return!(!e||!t)&&f(e).toRgbString()==f(t).toRgbString()},f.random=function(){return f.fromRatio({r:d(),g:d(),b:d()})},f.mix=function(e,t,n){n=0===n?0:n||50;var r=f(e).toRgb(),a=f(t).toRgb(),o=n/100;return f({r:(a.r-r.r)*o+r.r,g:(a.g-r.g)*o+r.g,b:(a.b-r.b)*o+r.b,a:(a.a-r.a)*o+r.a})},f.readability=function(e,t){var n=f(e),r=f(t);return(a.max(n.getLuminance(),r.getLuminance())+.05)/(a.min(n.getLuminance(),r.getLuminance())+.05)},f.isReadable=function(e,t,n){var r,a,o=f.readability(e,t);switch(a=!1,(r=function(e){var t,n;t=((e=e||{level:"AA",size:"small"}).level||"AA").toUpperCase(),n=(e.size||"small").toLowerCase(),"AA"!==t&&"AAA"!==t&&(t="AA");"small"!==n&&"large"!==n&&(n="small");return{level:t,size:n}}(n)).level+r.size){case"AAsmall":case"AAAlarge":a=o>=4.5;break;case"AAlarge":a=o>=3;break;case"AAAsmall":a=o>=7}return a},f.mostReadable=function(e,t,n){var r,a,o,i,c=null,s=0;a=(n=n||{}).includeFallbackColors,o=n.level,i=n.size;for(var l=0;l<t.length;l++)(r=f.readability(e,t[l]))>s&&(s=r,c=f(t[l]));return f.isReadable(e,c,{level:o,size:i})||!a?c:(n.includeFallbackColors=!1,f.mostReadable(e,["#fff","#000"],n))};var D=f.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},O=f.hexNames=function(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[e[n]]=n);return t}(D);function x(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function C(e,t){(function(e){return"string"==typeof e&&-1!=e.indexOf(".")&&1===parseFloat(e)})(e)&&(e="100%");var n=function(e){return"string"==typeof e&&-1!=e.indexOf("%")}(e);return e=l(t,u(0,parseFloat(e))),n&&(e=parseInt(e*t,10)/100),a.abs(e-t)<1e-6?1:e%t/parseFloat(t)}function V(e){return l(1,u(0,e))}function j(e){return parseInt(e,16)}function E(e){return 1==e.length?"0"+e:""+e}function P(e){return e<=1&&(e=100*e+"%"),e}function A(e){return a.round(255*parseFloat(e)).toString(16)}function N(e){return j(e)/255}var F,R,W,I=(R="[\\s|\\(]+("+(F="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)")+")[,|\\s]+("+F+")[,|\\s]+("+F+")\\s*\\)?",W="[\\s|\\(]+("+F+")[,|\\s]+("+F+")[,|\\s]+("+F+")[,|\\s]+("+F+")\\s*\\)?",{CSS_UNIT:new RegExp(F),rgb:new RegExp("rgb"+R),rgba:new RegExp("rgba"+W),hsl:new RegExp("hsl"+R),hsla:new RegExp("hsla"+W),hsv:new RegExp("hsv"+R),hsva:new RegExp("hsva"+W),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/});function q(e){return!!I.CSS_UNIT.exec(e)}e.exports?e.exports=f:void 0===(r=function(){return f}.call(t,n,t,e))||(e.exports=r)}(Math)},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.scriptUrl,n=e.extraCommonProps,r=void 0===n?{}:n;if("undefined"!=typeof document&&"undefined"!=typeof window&&"function"==typeof document.createElement&&"string"==typeof t&&t.length&&!u.has(t)){var a=document.createElement("script");a.setAttribute("src",t),a.setAttribute("data-namespace",t),u.add(t),document.body.appendChild(a)}var c=function(e){var t=e.type,n=e.children,a=l(e,["type","children"]),c=null;return e.type&&(c=o.createElement("use",{xlinkHref:"#".concat(t)})),n&&(c=n),o.createElement(i.default,s({},r,a),c)};return c.displayName="Iconfont",c};var a,o=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var t=c();if(t&&t.has(e))return t.get(e);var n={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}n.default=e,t&&t.set(e,n);return n}(n(0)),i=(a=n(48))&&a.__esModule?a:{default:a};function c(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return c=function(){return e},e}function s(){return(s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var l=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n},u=new Set},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getThemeFromTypeName=function(e){var t=null;o.test(e)?t="filled":i.test(e)?t="outlined":c.test(e)&&(t="twoTone");return t},t.removeTypeTheme=function(e){return e.replace(o,"").replace(i,"").replace(c,"")},t.withThemeSuffix=function(e,t){var n=e;"filled"===t?n+="-fill":"outlined"===t?n+="-o":"twoTone"===t?n+="-twotone":(0,a.default)(!1,"Icon","This icon '".concat(e,"' has unknown theme '").concat(t,"'"));return n},t.alias=function(e){var t=e;switch(e){case"cross":t="close";break;case"interation":t="interaction";break;case"canlendar":t="calendar";break;case"colum-height":t="column-height"}return(0,a.default)(t===e,"Icon","Icon '".concat(e,"' was a typo and is now deprecated, please use '").concat(t,"' instead.")),t},t.svgBaseProps=void 0;var r,a=(r=n(37))&&r.__esModule?r:{default:r};t.svgBaseProps={width:"1em",height:"1em",fill:"currentColor","aria-hidden":!0,focusable:"false"};var o=/-fill$/,i=/-o$/,c=/-twotone$/},function(e,t,n){"use strict";var r=n(344);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==r){var c=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw c.name="Invariant Violation",c}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:a};return n.PropTypes=n,n}},function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=((r=n(108))&&r.__esModule?r:{default:r}).default;t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={items_per_page:"/ page",jump_to:"Go to",jump_to_confirm:"confirm",page:"",prev_page:"Previous Page",next_page:"Next Page",prev_5:"Previous 5 Pages",next_5:"Next 5 Pages",prev_3:"Previous 3 Pages",next_3:"Next 3 Pages"},e.exports=t.default},function(e,t,n){"use strict";t.__esModule=!0,t.default={today:"Today",now:"Now",backToToday:"Back to today",ok:"Ok",clear:"Clear",month:"Month",year:"Year",timeSelect:"select time",dateSelect:"select date",weekSelect:"Choose a week",monthSelect:"Choose a month",yearSelect:"Choose a year",decadeSelect:"Choose a decade",yearFormat:"YYYY",dateFormat:"M/D/YYYY",dayFormat:"D",dateTimeFormat:"M/D/YYYY HH:mm:ss",monthBeforeYear:!0,previousMonth:"Previous month (PageUp)",nextMonth:"Next month (PageDown)",previousYear:"Last year (Control + left)",nextYear:"Next year (Control + right)",previousDecade:"Last decade",nextDecade:"Next decade",previousCentury:"Last century",nextCentury:"Next century"},e.exports=t.default},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=((r=n(109))&&r.__esModule?r:{default:r}).default;t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.setTwoToneColor=function(e){return a.default.setTwoToneColors({primaryColor:e})},t.getTwoToneColor=function(){return a.default.getTwoToneColors().primaryColor};var r,a=(r=n(252))&&r.__esModule?r:{default:r}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.ANT_MARK=void 0;var r=d(n(0)),a=d(n(1)),o=d(n(2)),i=l(n(353)),c=n(354),s=l(n(37));function l(e){return e&&e.__esModule?e:{default:e}}function u(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return u=function(){return e},e}function d(e){if(e&&e.__esModule)return e;if(null===e||"object"!==f(e)&&"function"!=typeof e)return{default:e};var t=u();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var o=r?Object.getOwnPropertyDescriptor(e,a):null;o&&(o.get||o.set)?Object.defineProperty(n,a,o):n[a]=e[a]}return n.default=e,t&&t.set(e,n),n}function f(e){return(f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function h(){return(h=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function m(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function p(e,t){return(p=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function v(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=y(e);if(t){var a=y(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return _(this,n)}}function _(e,t){return!t||"object"!==f(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function y(e){return(y=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function M(e){e&&e.locale?(0,i.default)(o).locale(e.locale):(0,i.default)(o).locale("en")}t.ANT_MARK="internalMark";var g=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&p(e,t)}(o,e);var t,n,r,a=v(o);function o(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,o),t=a.call(this,e),M(e.locale),(0,c.changeConfirmLocale)(e.locale&&e.locale.Modal),(0,s.default)("internalMark"===e._ANT_MARK__,"LocaleProvider","`LocaleProvider` is deprecated. Please use `locale` with `ConfigProvider` instead: http://u.ant.design/locale"),t}return t=o,(n=[{key:"getChildContext",value:function(){return{antLocale:h(h({},this.props.locale),{exist:!0})}}},{key:"componentDidUpdate",value:function(e){var t=this.props.locale;e.locale!==t&&(M(t),(0,c.changeConfirmLocale)(t&&t.Modal))}},{key:"componentWillUnmount",value:function(){(0,c.changeConfirmLocale)()}},{key:"render",value:function(){return this.props.children}}])&&m(t.prototype,n),r&&m(t,r),o}(r.Component);t.default=g,g.propTypes={locale:a.object},g.defaultProps={locale:{}},g.childContextTypes={antLocale:a.object}},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t,n){var r={"./af":112,"./af.js":112,"./ar":113,"./ar-dz":114,"./ar-dz.js":114,"./ar-kw":115,"./ar-kw.js":115,"./ar-ly":116,"./ar-ly.js":116,"./ar-ma":117,"./ar-ma.js":117,"./ar-sa":118,"./ar-sa.js":118,"./ar-tn":119,"./ar-tn.js":119,"./ar.js":113,"./az":120,"./az.js":120,"./be":121,"./be.js":121,"./bg":122,"./bg.js":122,"./bm":123,"./bm.js":123,"./bn":124,"./bn.js":124,"./bo":125,"./bo.js":125,"./br":126,"./br.js":126,"./bs":127,"./bs.js":127,"./ca":128,"./ca.js":128,"./cs":129,"./cs.js":129,"./cv":130,"./cv.js":130,"./cy":131,"./cy.js":131,"./da":132,"./da.js":132,"./de":133,"./de-at":134,"./de-at.js":134,"./de-ch":135,"./de-ch.js":135,"./de.js":133,"./dv":136,"./dv.js":136,"./el":137,"./el.js":137,"./en-au":138,"./en-au.js":138,"./en-ca":139,"./en-ca.js":139,"./en-gb":140,"./en-gb.js":140,"./en-ie":141,"./en-ie.js":141,"./en-il":142,"./en-il.js":142,"./en-in":143,"./en-in.js":143,"./en-nz":144,"./en-nz.js":144,"./en-sg":145,"./en-sg.js":145,"./eo":146,"./eo.js":146,"./es":147,"./es-do":148,"./es-do.js":148,"./es-us":149,"./es-us.js":149,"./es.js":147,"./et":150,"./et.js":150,"./eu":151,"./eu.js":151,"./fa":152,"./fa.js":152,"./fi":153,"./fi.js":153,"./fil":154,"./fil.js":154,"./fo":155,"./fo.js":155,"./fr":156,"./fr-ca":157,"./fr-ca.js":157,"./fr-ch":158,"./fr-ch.js":158,"./fr.js":156,"./fy":159,"./fy.js":159,"./ga":160,"./ga.js":160,"./gd":161,"./gd.js":161,"./gl":162,"./gl.js":162,"./gom-deva":163,"./gom-deva.js":163,"./gom-latn":164,"./gom-latn.js":164,"./gu":165,"./gu.js":165,"./he":166,"./he.js":166,"./hi":167,"./hi.js":167,"./hr":168,"./hr.js":168,"./hu":169,"./hu.js":169,"./hy-am":170,"./hy-am.js":170,"./id":171,"./id.js":171,"./is":172,"./is.js":172,"./it":173,"./it-ch":174,"./it-ch.js":174,"./it.js":173,"./ja":175,"./ja.js":175,"./jv":176,"./jv.js":176,"./ka":177,"./ka.js":177,"./kk":178,"./kk.js":178,"./km":179,"./km.js":179,"./kn":180,"./kn.js":180,"./ko":181,"./ko.js":181,"./ku":182,"./ku.js":182,"./ky":183,"./ky.js":183,"./lb":184,"./lb.js":184,"./lo":185,"./lo.js":185,"./lt":186,"./lt.js":186,"./lv":187,"./lv.js":187,"./me":188,"./me.js":188,"./mi":189,"./mi.js":189,"./mk":190,"./mk.js":190,"./ml":191,"./ml.js":191,"./mn":192,"./mn.js":192,"./mr":193,"./mr.js":193,"./ms":194,"./ms-my":195,"./ms-my.js":195,"./ms.js":194,"./mt":196,"./mt.js":196,"./my":197,"./my.js":197,"./nb":198,"./nb.js":198,"./ne":199,"./ne.js":199,"./nl":200,"./nl-be":201,"./nl-be.js":201,"./nl.js":200,"./nn":202,"./nn.js":202,"./oc-lnc":203,"./oc-lnc.js":203,"./pa-in":204,"./pa-in.js":204,"./pl":205,"./pl.js":205,"./pt":206,"./pt-br":207,"./pt-br.js":207,"./pt.js":206,"./ro":208,"./ro.js":208,"./ru":209,"./ru.js":209,"./sd":210,"./sd.js":210,"./se":211,"./se.js":211,"./si":212,"./si.js":212,"./sk":213,"./sk.js":213,"./sl":214,"./sl.js":214,"./sq":215,"./sq.js":215,"./sr":216,"./sr-cyrl":217,"./sr-cyrl.js":217,"./sr.js":216,"./ss":218,"./ss.js":218,"./sv":219,"./sv.js":219,"./sw":220,"./sw.js":220,"./ta":221,"./ta.js":221,"./te":222,"./te.js":222,"./tet":223,"./tet.js":223,"./tg":224,"./tg.js":224,"./th":225,"./th.js":225,"./tk":226,"./tk.js":226,"./tl-ph":227,"./tl-ph.js":227,"./tlh":228,"./tlh.js":228,"./tr":229,"./tr.js":229,"./tzl":230,"./tzl.js":230,"./tzm":231,"./tzm-latn":232,"./tzm-latn.js":232,"./tzm.js":231,"./ug-cn":233,"./ug-cn.js":233,"./uk":234,"./uk.js":234,"./ur":235,"./ur.js":235,"./uz":236,"./uz-latn":237,"./uz-latn.js":237,"./uz.js":236,"./vi":238,"./vi.js":238,"./x-pseudo":239,"./x-pseudo.js":239,"./yo":240,"./yo.js":240,"./zh-cn":241,"./zh-cn.js":241,"./zh-hk":242,"./zh-hk.js":242,"./zh-mo":243,"./zh-mo.js":243,"./zh-tw":244,"./zh-tw.js":244};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=352},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return e.default||e}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.changeConfirmLocale=function(e){i=e?o(o({},i),e):o({},a.default.Modal)},t.getConfirmLocale=function(){return i};var r,a=(r=n(108))&&r.__esModule?r:{default:r};function o(){return(o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var i=o({},a.default.Modal)},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.withConfigConsumer=function(e){return function(t){var n=function(n){return a.createElement(d,null,(function(r){var o=e.prefixCls,i=(0,r.getPrefixCls)(o,n.prefixCls);return a.createElement(t,l({},r,n,{prefixCls:i}))}))},r=t.constructor,o=r&&r.displayName||t.name||"Component";return n.displayName="withConfigConsumer(".concat(o,")"),n}},t.ConfigConsumer=t.ConfigContext=void 0;var a=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var t=s();if(t&&t.has(e))return t.get(e);var n={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}n.default=e,t&&t.set(e,n);return n}(n(0)),o=c(n(245)),i=c(n(359));function c(e){return e&&e.__esModule?e:{default:e}}function s(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return s=function(){return e},e}function l(){return(l=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var u=(0,o.default)({getPrefixCls:function(e,t){return t||"ant-".concat(e)},renderEmpty:i.default});t.ConfigContext=u;var d=u.Consumer;t.ConfigConsumer=d},function(e,t,n){"use strict";t.__esModule=!0;var r=n(0),a=(i(r),i(n(1))),o=i(n(357));i(n(358));function i(e){return e&&e.__esModule?e:{default:e}}function c(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function u(e){var t=[];return{on:function(e){t.push(e)},off:function(e){t=t.filter((function(t){return t!==e}))},get:function(){return e},set:function(n,r){e=n,t.forEach((function(t){return t(e,r)}))}}}t.default=function(e,t){var n,i,d="__create-react-context-"+(0,o.default)()+"__",f=function(e){function n(){var t,r;c(this,n);for(var a=arguments.length,o=Array(a),i=0;i<a;i++)o[i]=arguments[i];return t=r=s(this,e.call.apply(e,[this].concat(o))),r.emitter=u(r.props.value),s(r,t)}return l(n,e),n.prototype.getChildContext=function(){var e;return(e={})[d]=this.emitter,e},n.prototype.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n=this.props.value,r=e.value,a=void 0;((o=n)===(i=r)?0!==o||1/o==1/i:o!=o&&i!=i)?a=0:(a="function"==typeof t?t(n,r):1073741823,0!==(a|=0)&&this.emitter.set(e.value,a))}var o,i},n.prototype.render=function(){return this.props.children},n}(r.Component);f.childContextTypes=((n={})[d]=a.default.object.isRequired,n);var h=function(t){function n(){var e,r;c(this,n);for(var a=arguments.length,o=Array(a),i=0;i<a;i++)o[i]=arguments[i];return e=r=s(this,t.call.apply(t,[this].concat(o))),r.state={value:r.getValue()},r.onUpdate=function(e,t){0!=((0|r.observedBits)&t)&&r.setState({value:r.getValue()})},s(r,e)}return l(n,t),n.prototype.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?1073741823:t},n.prototype.componentDidMount=function(){this.context[d]&&this.context[d].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?1073741823:e},n.prototype.componentWillUnmount=function(){this.context[d]&&this.context[d].off(this.onUpdate)},n.prototype.getValue=function(){return this.context[d]?this.context[d].get():e},n.prototype.render=function(){return(e=this.props.children,Array.isArray(e)?e[0]:e)(this.state.value);var e},n}(r.Component);return h.contextTypes=((i={})[d]=a.default.object,i),{Provider:f,Consumer:h}},e.exports=t.default},function(e,t,n){"use strict";(function(t){var n="__global_unique_id__";e.exports=function(){return t[n]=(t[n]||0)+1}}).call(this,n(40))},function(e,t,n){"use strict";var r=function(){};e.exports=r},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a,o=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var t=s();if(t&&t.has(e))return t.get(e);var n={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}n.default=e,t&&t.set(e,n);return n}(n(0)),i=(a=n(360))&&a.__esModule?a:{default:a},c=n(18);function s(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return s=function(){return e},e}var l=function(e){return o.createElement(c.ConfigConsumer,null,(function(t){var n=(0,t.getPrefixCls)("empty");switch(e){case"Table":case"List":return o.createElement(i.default,{image:i.default.PRESENTED_IMAGE_SIMPLE});case"Select":case"TreeSelect":case"Cascader":case"Transfer":case"Mentions":return o.createElement(i.default,{image:i.default.PRESENTED_IMAGE_SIMPLE,className:"".concat(n,"-small")});default:return o.createElement(i.default,null)}}))};t.default=l},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var t=d();if(t&&t.has(e))return t.get(e);var n={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}n.default=e,t&&t.set(e,n);return n}(n(0)),o=u(n(11)),i=n(18),c=u(n(77)),s=u(n(361)),l=u(n(362));function u(e){return e&&e.__esModule?e:{default:e}}function d(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return d=function(){return e},e}function f(){return(f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var h=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n},m=a.createElement(s.default,null),p=a.createElement(l.default,null),v=function(e){return a.createElement(i.ConfigConsumer,null,(function(t){var n=t.getPrefixCls,r=e.className,i=e.prefixCls,s=e.image,l=void 0===s?m:s,u=e.description,d=e.children,v=e.imageStyle,_=h(e,["className","prefixCls","image","description","children","imageStyle"]);return a.createElement(c.default,{componentName:"Empty"},(function(e){var t,c,s,h=n("empty",i),m=void 0!==u?u:e.description,y="string"==typeof m?m:"empty",M=null;return M="string"==typeof l?a.createElement("img",{alt:y,src:l}):l,a.createElement("div",f({className:(0,o.default)(h,(t={},c="".concat(h,"-normal"),s=l===p,c in t?Object.defineProperty(t,c,{value:s,enumerable:!0,configurable:!0,writable:!0}):t[c]=s,t),r)},_),a.createElement("div",{className:"".concat(h,"-image"),style:v},M),m&&a.createElement("p",{className:"".concat(h,"-description")},m),d&&a.createElement("div",{className:"".concat(h,"-footer")},d))}))}))};v.PRESENTED_IMAGE_DEFAULT=m,v.PRESENTED_IMAGE_SIMPLE=p;var _=v;t.default=_},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var t=o();if(t&&t.has(e))return t.get(e);var n={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)){var c=a?Object.getOwnPropertyDescriptor(e,i):null;c&&(c.get||c.set)?Object.defineProperty(n,i,c):n[i]=e[i]}n.default=e,t&&t.set(e,n);return n}(n(0));function o(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return o=function(){return e},e}var i=function(){return a.createElement("svg",{width:"184",height:"152",viewBox:"0 0 184 152",xmlns:"http://www.w3.org/2000/svg"},a.createElement("g",{fill:"none",fillRule:"evenodd"},a.createElement("g",{transform:"translate(24 31.67)"},a.createElement("ellipse",{fillOpacity:".8",fill:"#F5F5F7",cx:"67.797",cy:"106.89",rx:"67.797",ry:"12.668"}),a.createElement("path",{d:"M122.034 69.674L98.109 40.229c-1.148-1.386-2.826-2.225-4.593-2.225h-51.44c-1.766 0-3.444.839-4.592 2.225L13.56 69.674v15.383h108.475V69.674z",fill:"#AEB8C2"}),a.createElement("path",{d:"M101.537 86.214L80.63 61.102c-1.001-1.207-2.507-1.867-4.048-1.867H31.724c-1.54 0-3.047.66-4.048 1.867L6.769 86.214v13.792h94.768V86.214z",fill:"url(#linearGradient-1)",transform:"translate(13.56)"}),a.createElement("path",{d:"M33.83 0h67.933a4 4 0 0 1 4 4v93.344a4 4 0 0 1-4 4H33.83a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4z",fill:"#F5F5F7"}),a.createElement("path",{d:"M42.678 9.953h50.237a2 2 0 0 1 2 2V36.91a2 2 0 0 1-2 2H42.678a2 2 0 0 1-2-2V11.953a2 2 0 0 1 2-2zM42.94 49.767h49.713a2.262 2.262 0 1 1 0 4.524H42.94a2.262 2.262 0 0 1 0-4.524zM42.94 61.53h49.713a2.262 2.262 0 1 1 0 4.525H42.94a2.262 2.262 0 0 1 0-4.525zM121.813 105.032c-.775 3.071-3.497 5.36-6.735 5.36H20.515c-3.238 0-5.96-2.29-6.734-5.36a7.309 7.309 0 0 1-.222-1.79V69.675h26.318c2.907 0 5.25 2.448 5.25 5.42v.04c0 2.971 2.37 5.37 5.277 5.37h34.785c2.907 0 5.277-2.421 5.277-5.393V75.1c0-2.972 2.343-5.426 5.25-5.426h26.318v33.569c0 .617-.077 1.216-.221 1.789z",fill:"#DCE0E6"})),a.createElement("path",{d:"M149.121 33.292l-6.83 2.65a1 1 0 0 1-1.317-1.23l1.937-6.207c-2.589-2.944-4.109-6.534-4.109-10.408C138.802 8.102 148.92 0 161.402 0 173.881 0 184 8.102 184 18.097c0 9.995-10.118 18.097-22.599 18.097-4.528 0-8.744-1.066-12.28-2.902z",fill:"#DCE0E6"}),a.createElement("g",{transform:"translate(149.65 15.383)",fill:"#FFF"},a.createElement("ellipse",{cx:"20.654",cy:"3.167",rx:"2.849",ry:"2.815"}),a.createElement("path",{d:"M5.698 5.63H0L2.898.704zM9.259.704h4.985V5.63H9.259z"}))))};t.default=i},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var t=o();if(t&&t.has(e))return t.get(e);var n={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)){var c=a?Object.getOwnPropertyDescriptor(e,i):null;c&&(c.get||c.set)?Object.defineProperty(n,i,c):n[i]=e[i]}n.default=e,t&&t.set(e,n);return n}(n(0));function o(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return o=function(){return e},e}var i=function(){return a.createElement("svg",{width:"64",height:"41",viewBox:"0 0 64 41",xmlns:"http://www.w3.org/2000/svg"},a.createElement("g",{transform:"translate(0 1)",fill:"none",fillRule:"evenodd"},a.createElement("ellipse",{fill:"#F5F5F5",cx:"32",cy:"33",rx:"32",ry:"7"}),a.createElement("g",{fillRule:"nonzero",stroke:"#D9D9D9"},a.createElement("path",{d:"M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z"}),a.createElement("path",{d:"M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z",fill:"#FAFAFA"}))))};t.default=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==h(e)&&"function"!=typeof e)return{default:e};var t=f();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var o=r?Object.getOwnPropertyDescriptor(e,a):null;o&&(o.get||o.set)?Object.defineProperty(n,a,o):n[a]=e[a]}n.default=e,t&&t.set(e,n);return n}(n(0)),a=n(25),o=d(n(364)),i=d(n(78)),c=d(n(11)),s=d(n(372)),l=d(n(246)),u=d(n(37));function d(e){return e&&e.__esModule?e:{default:e}}function f(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return f=function(){return e},e}function h(e){return(h="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function m(){return(m=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function p(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function v(e,t){return(v=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function _(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=M(e);if(t){var a=M(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return y(this,n)}}function y(e,t){return!t||"object"!==h(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function M(e){return(M=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var g=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&v(e,t)}(f,e);var t,n,a,d=_(f);function f(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,f),(t=d.call(this,e)).saveTextArea=function(e){t.textArea=e},t.resizeOnNextFrame=function(){l.default.cancel(t.nextFrameActionId),t.nextFrameActionId=(0,l.default)(t.resizeTextarea)},t.resizeTextarea=function(){var e=t.props.autoSize||t.props.autosize;if(e&&t.textArea){var n=e.minRows,r=e.maxRows,a=(0,s.default)(t.textArea,!1,n,r);t.setState({textareaStyles:a,resizing:!0},(function(){l.default.cancel(t.resizeFrameId),t.resizeFrameId=(0,l.default)((function(){t.setState({resizing:!1}),t.fixFirefoxAutoScroll()}))}))}},t.renderTextArea=function(){var e=t.props,n=e.prefixCls,a=e.autoSize,s=e.autosize,l=e.className,d=e.disabled,f=t.state,h=f.textareaStyles,p=f.resizing;(0,u.default)(void 0===s,"Input.TextArea","autosize is deprecated, please use autoSize instead.");var v,_,y,M=(0,i.default)(t.props,["prefixCls","onPressEnter","autoSize","autosize","defaultValue","allowClear"]),g=(0,c.default)(n,l,(v={},_="".concat(n,"-disabled"),y=d,_ in v?Object.defineProperty(v,_,{value:y,enumerable:!0,configurable:!0,writable:!0}):v[_]=y,v));"value"in M&&(M.value=M.value||"");var b=m(m(m({},t.props.style),h),p?{overflowX:"hidden",overflowY:"hidden"}:null);return r.createElement(o.default,{onResize:t.resizeOnNextFrame,disabled:!(a||s)},r.createElement("textarea",m({},M,{className:g,style:b,ref:t.saveTextArea})))},t.state={textareaStyles:{},resizing:!1},t}return t=f,(n=[{key:"componentDidMount",value:function(){this.resizeTextarea()}},{key:"componentDidUpdate",value:function(e){e.value!==this.props.value&&this.resizeTextarea()}},{key:"componentWillUnmount",value:function(){l.default.cancel(this.nextFrameActionId),l.default.cancel(this.resizeFrameId)}},{key:"fixFirefoxAutoScroll",value:function(){try{if(document.activeElement===this.textArea){var e=this.textArea.selectionStart,t=this.textArea.selectionEnd;this.textArea.setSelectionRange(e,t)}}catch(e){}}},{key:"render",value:function(){return this.renderTextArea()}}])&&p(t.prototype,n),a&&p(t,a),f}(r.Component);(0,a.polyfill)(g);var b=g;t.default=b},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function i(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function c(e){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function s(e,t){return(s=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var l=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t},u=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var d=l(n(0)),f=u(n(365)),h=u(n(366)),m=u(n(107)),p=n(369),v=u(n(370)),_=n(371),y=function(e){function t(){var e;return a(this,t),(e=i(this,c(t).apply(this,arguments))).resizeObserver=null,e.childNode=null,e.currentElement=null,e.state={width:0,height:0},e.onResize=function(t){var n=e.props.onResize,r=t[0].target.getBoundingClientRect(),a=r.width,o=r.height,i=Math.floor(a),c=Math.floor(o);if(e.state.width!==i||e.state.height!==c){var s={width:i,height:c};e.setState(s),n&&n(s)}},e.setChildNode=function(t){e.childNode=t},e}var n,r,l;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&s(e,t)}(t,e),n=t,(r=[{key:"componentDidMount",value:function(){this.onComponentUpdated()}},{key:"componentDidUpdate",value:function(){this.onComponentUpdated()}},{key:"componentWillUnmount",value:function(){this.destroyObserver()}},{key:"onComponentUpdated",value:function(){if(this.props.disabled)this.destroyObserver();else{var e=f.default(this.childNode||this);e!==this.currentElement&&(this.destroyObserver(),this.currentElement=e),!this.resizeObserver&&e&&(this.resizeObserver=new v.default(this.onResize),this.resizeObserver.observe(e))}}},{key:"destroyObserver",value:function(){this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null)}},{key:"render",value:function(){var e=this.props.children,t=h.default(e);if(t.length>1)m.default(!1,"Find more than one child node with `children` in ResizeObserver. Will only observe first one.");else if(0===t.length)return m.default(!1,"`children` of ResizeObserver is empty. Nothing is in observe."),null;var n=t[0];if(d.isValidElement(n)&&_.supportRef(n)){var r=n.ref;t[0]=d.cloneElement(n,{ref:p.composeRef(r,this.setChildNode)})}return 1===t.length?t[0]:t.map((function(e,t){return!d.isValidElement(e)||"key"in e&&null!==e.key?e:d.cloneElement(e,{key:"".concat("rc-observer-key","-").concat(t)})}))}}])&&o(n.prototype,r),l&&o(n,l),t}(d.Component);y.displayName="ResizeObserver",t.default=y},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){if(e instanceof HTMLElement)return e;return a.default.findDOMNode(e)};var r,a=(r=n(7))&&r.__esModule?r:{default:r}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function e(t){var n=[];return a.default.Children.forEach(t,(function(t){null!=t&&(Array.isArray(t)?n=n.concat(e(t)):(0,o.isFragment)(t)&&t.props?n=n.concat(e(t.props.children)):n.push(t))})),n};var r,a=(r=n(0))&&r.__esModule?r:{default:r},o=n(367)},function(e,t,n){"use strict";e.exports=n(368)},function(e,t,n){"use strict"; /** @license React v16.13.1 * react-is.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */var r="function"==typeof Symbol&&Symbol.for,a=r?Symbol.for("react.element"):60103,o=r?Symbol.for("react.portal"):60106,i=r?Symbol.for("react.fragment"):60107,c=r?Symbol.for("react.strict_mode"):60108,s=r?Symbol.for("react.profiler"):60114,l=r?Symbol.for("react.provider"):60109,u=r?Symbol.for("react.context"):60110,d=r?Symbol.for("react.async_mode"):60111,f=r?Symbol.for("react.concurrent_mode"):60111,h=r?Symbol.for("react.forward_ref"):60112,m=r?Symbol.for("react.suspense"):60113,p=r?Symbol.for("react.suspense_list"):60120,v=r?Symbol.for("react.memo"):60115,_=r?Symbol.for("react.lazy"):60116,y=r?Symbol.for("react.block"):60121,M=r?Symbol.for("react.fundamental"):60117,g=r?Symbol.for("react.responder"):60118,b=r?Symbol.for("react.scope"):60119;function L(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case a:switch(e=e.type){case d:case f:case i:case s:case c:case m:return e;default:switch(e=e&&e.$$typeof){case u:case h:case _:case v:case l:return e;default:return t}}case o:return t}}}function z(e){return L(e)===f}t.AsyncMode=d,t.ConcurrentMode=f,t.ContextConsumer=u,t.ContextProvider=l,t.Element=a,t.ForwardRef=h,t.Fragment=i,t.Lazy=_,t.Memo=v,t.Portal=o,t.Profiler=s,t.StrictMode=c,t.Suspense=m,t.isAsyncMode=function(e){return z(e)||L(e)===d},t.isConcurrentMode=z,t.isContextConsumer=function(e){return L(e)===u},t.isContextProvider=function(e){return L(e)===l},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===a},t.isForwardRef=function(e){return L(e)===h},t.isFragment=function(e){return L(e)===i},t.isLazy=function(e){return L(e)===_},t.isMemo=function(e){return L(e)===v},t.isPortal=function(e){return L(e)===o},t.isProfiler=function(e){return L(e)===s},t.isStrictMode=function(e){return L(e)===c},t.isSuspense=function(e){return L(e)===m},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===i||e===f||e===s||e===c||e===m||e===p||"object"==typeof e&&null!==e&&(e.$$typeof===_||e.$$typeof===v||e.$$typeof===l||e.$$typeof===u||e.$$typeof===h||e.$$typeof===M||e.$$typeof===g||e.$$typeof===b||e.$$typeof===y)},t.typeOf=L},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function a(e,t){"function"==typeof e?e(t):"object"===r(e)&&e&&"current"in e&&(e.current=t)}Object.defineProperty(t,"__esModule",{value:!0}),t.fillRef=a,t.composeRef=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(e){t.forEach((function(t){a(t,e)}))}},t.supportRef=function(e){if(e.type&&e.type.prototype&&!e.type.prototype.render)return!1;if("function"==typeof e&&e.prototype&&!e.prototype.render)return!1;return!0}},function(e,t,n){"use strict";n.r(t),function(e){var n=function(){if("undefined"!=typeof Map)return Map;function e(e,t){var n=-1;return e.some((function(e,r){return e[0]===t&&(n=r,!0)})),n}return function(){function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(t){var n=e(this.__entries__,t),r=this.__entries__[n];return r&&r[1]},t.prototype.set=function(t,n){var r=e(this.__entries__,t);~r?this.__entries__[r][1]=n:this.__entries__.push([t,n])},t.prototype.delete=function(t){var n=this.__entries__,r=e(n,t);~r&&n.splice(r,1)},t.prototype.has=function(t){return!!~e(this.__entries__,t)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(e,t){void 0===t&&(t=null);for(var n=0,r=this.__entries__;n<r.length;n++){var a=r[n];e.call(t,a[1],a[0])}},t}()}(),r="undefined"!=typeof window&&"undefined"!=typeof document&&window.document===document,a=void 0!==e&&e.Math===Math?e:"undefined"!=typeof self&&self.Math===Math?self:"undefined"!=typeof window&&window.Math===Math?window:Function("return this")(),o="function"==typeof requestAnimationFrame?requestAnimationFrame.bind(a):function(e){return setTimeout((function(){return e(Date.now())}),1e3/60)};var i=["top","right","bottom","left","width","height","size","weight"],c="undefined"!=typeof MutationObserver,s=function(){function e(){this.connected_=!1,this.mutationEventsAdded_=!1,this.mutationsObserver_=null,this.observers_=[],this.onTransitionEnd_=this.onTransitionEnd_.bind(this),this.refresh=function(e,t){var n=!1,r=!1,a=0;function i(){n&&(n=!1,e()),r&&s()}function c(){o(i)}function s(){var e=Date.now();if(n){if(e-a<2)return;r=!0}else n=!0,r=!1,setTimeout(c,t);a=e}return s}(this.refresh.bind(this),20)}return e.prototype.addObserver=function(e){~this.observers_.indexOf(e)||this.observers_.push(e),this.connected_||this.connect_()},e.prototype.removeObserver=function(e){var t=this.observers_,n=t.indexOf(e);~n&&t.splice(n,1),!t.length&&this.connected_&&this.disconnect_()},e.prototype.refresh=function(){this.updateObservers_()&&this.refresh()},e.prototype.updateObservers_=function(){var e=this.observers_.filter((function(e){return e.gatherActive(),e.hasActive()}));return e.forEach((function(e){return e.broadcastActive()})),e.length>0},e.prototype.connect_=function(){r&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),c?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){r&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(e){var t=e.propertyName,n=void 0===t?"":t;i.some((function(e){return!!~n.indexOf(e)}))&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),l=function(e,t){for(var n=0,r=Object.keys(t);n<r.length;n++){var a=r[n];Object.defineProperty(e,a,{value:t[a],enumerable:!1,writable:!1,configurable:!0})}return e},u=function(e){return e&&e.ownerDocument&&e.ownerDocument.defaultView||a},d=_(0,0,0,0);function f(e){return parseFloat(e)||0}function h(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];return t.reduce((function(t,n){return t+f(e["border-"+n+"-width"])}),0)}function m(e){var t=e.clientWidth,n=e.clientHeight;if(!t&&!n)return d;var r=u(e).getComputedStyle(e),a=function(e){for(var t={},n=0,r=["top","right","bottom","left"];n<r.length;n++){var a=r[n],o=e["padding-"+a];t[a]=f(o)}return t}(r),o=a.left+a.right,i=a.top+a.bottom,c=f(r.width),s=f(r.height);if("border-box"===r.boxSizing&&(Math.round(c+o)!==t&&(c-=h(r,"left","right")+o),Math.round(s+i)!==n&&(s-=h(r,"top","bottom")+i)),!function(e){return e===u(e).document.documentElement}(e)){var l=Math.round(c+o)-t,m=Math.round(s+i)-n;1!==Math.abs(l)&&(c-=l),1!==Math.abs(m)&&(s-=m)}return _(a.left,a.top,c,s)}var p="undefined"!=typeof SVGGraphicsElement?function(e){return e instanceof u(e).SVGGraphicsElement}:function(e){return e instanceof u(e).SVGElement&&"function"==typeof e.getBBox};function v(e){return r?p(e)?function(e){var t=e.getBBox();return _(0,0,t.width,t.height)}(e):m(e):d}function _(e,t,n,r){return{x:e,y:t,width:n,height:r}}var y=function(){function e(e){this.broadcastWidth=0,this.broadcastHeight=0,this.contentRect_=_(0,0,0,0),this.target=e}return e.prototype.isActive=function(){var e=v(this.target);return this.contentRect_=e,e.width!==this.broadcastWidth||e.height!==this.broadcastHeight},e.prototype.broadcastRect=function(){var e=this.contentRect_;return this.broadcastWidth=e.width,this.broadcastHeight=e.height,e},e}(),M=function(e,t){var n,r,a,o,i,c,s,u=(r=(n=t).x,a=n.y,o=n.width,i=n.height,c="undefined"!=typeof DOMRectReadOnly?DOMRectReadOnly:Object,s=Object.create(c.prototype),l(s,{x:r,y:a,width:o,height:i,top:a,right:r+o,bottom:i+a,left:r}),s);l(this,{target:e,contentRect:u})},g=function(){function e(e,t,r){if(this.activeObservations_=[],this.observations_=new n,"function"!=typeof e)throw new TypeError("The callback provided as parameter 1 is not a function.");this.callback_=e,this.controller_=t,this.callbackCtx_=r}return e.prototype.observe=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(e instanceof u(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)||(t.set(e,new y(e)),this.controller_.addObserver(this),this.controller_.refresh())}},e.prototype.unobserve=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(e instanceof u(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)&&(t.delete(e),t.size||this.controller_.removeObserver(this))}},e.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},e.prototype.gatherActive=function(){var e=this;this.clearActive(),this.observations_.forEach((function(t){t.isActive()&&e.activeObservations_.push(t)}))},e.prototype.broadcastActive=function(){if(this.hasActive()){var e=this.callbackCtx_,t=this.activeObservations_.map((function(e){return new M(e.target,e.broadcastRect())}));this.callback_.call(e,t,e),this.clearActive()}},e.prototype.clearActive=function(){this.activeObservations_.splice(0)},e.prototype.hasActive=function(){return this.activeObservations_.length>0},e}(),b="undefined"!=typeof WeakMap?new WeakMap:new n,L=function e(t){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var n=s.getInstance(),r=new g(t,n,this);b.set(this,r)};["observe","unobserve","disconnect"].forEach((function(e){L.prototype[e]=function(){var t;return(t=b.get(this))[e].apply(t,arguments)}}));var z=void 0!==a.ResizeObserver?a.ResizeObserver:L;t.default=z}.call(this,n(40))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.supportRef=function(e){return!(e.type&&e.type.prototype&&!e.type.prototype.render)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.calculateNodeStyling=c,t.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;r||(r=document.createElement("textarea"),document.body.appendChild(r));e.getAttribute("wrap")?r.setAttribute("wrap",e.getAttribute("wrap")):r.removeAttribute("wrap");var i=c(e,t),s=i.paddingSize,l=i.borderSize,u=i.boxSizing,d=i.sizingStyle;r.setAttribute("style","".concat(d,";").concat(a)),r.value=e.value||e.placeholder||"";var f,h=Number.MIN_SAFE_INTEGER,m=Number.MAX_SAFE_INTEGER,p=r.scrollHeight;"border-box"===u?p+=l:"content-box"===u&&(p-=s);if(null!==n||null!==o){r.value=" ";var v=r.scrollHeight-s;null!==n&&(h=v*n,"border-box"===u&&(h=h+s+l),p=Math.max(h,p)),null!==o&&(m=v*o,"border-box"===u&&(m=m+s+l),f=p>m?"":"hidden",p=Math.min(m,p))}return{height:p,minHeight:h,maxHeight:m,overflowY:f}};var r,a="\n min-height:0 !important;\n max-height:none !important;\n height:0 !important;\n visibility:hidden !important;\n overflow:hidden !important;\n position:absolute !important;\n z-index:-1000 !important;\n top:0 !important;\n right:0 !important\n",o=["letter-spacing","line-height","padding-top","padding-bottom","font-family","font-weight","font-size","font-variant","text-rendering","text-transform","width","text-indent","padding-left","padding-right","border-width","box-sizing"],i={};function c(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e.getAttribute("id")||e.getAttribute("data-reactid")||e.getAttribute("name");if(t&&i[n])return i[n];var r=window.getComputedStyle(e),a=r.getPropertyValue("box-sizing")||r.getPropertyValue("-moz-box-sizing")||r.getPropertyValue("-webkit-box-sizing"),c=parseFloat(r.getPropertyValue("padding-bottom"))+parseFloat(r.getPropertyValue("padding-top")),s=parseFloat(r.getPropertyValue("border-bottom-width"))+parseFloat(r.getPropertyValue("border-top-width")),l=o.map((function(e){return"".concat(e,":").concat(r.getPropertyValue(e))})).join(";"),u={sizingStyle:l,paddingSize:c,borderSize:s,boxSizing:a};return t&&n&&(i[n]=u),u}},function(e,t,n){(function(t){for(var r=n(374),a="undefined"==typeof window?t:window,o=["moz","webkit"],i="AnimationFrame",c=a["request"+i],s=a["cancel"+i]||a["cancelRequest"+i],l=0;!c&&l<o.length;l++)c=a[o[l]+"Request"+i],s=a[o[l]+"Cancel"+i]||a[o[l]+"CancelRequest"+i];if(!c||!s){var u=0,d=0,f=[];c=function(e){if(0===f.length){var t=r(),n=Math.max(0,1e3/60-(t-u));u=n+t,setTimeout((function(){var e=f.slice(0);f.length=0;for(var t=0;t<e.length;t++)if(!e[t].cancelled)try{e[t].callback(u)}catch(e){setTimeout((function(){throw e}),0)}}),Math.round(n))}return f.push({handle:++d,callback:e,cancelled:!1}),d},s=function(e){for(var t=0;t<f.length;t++)f[t].handle===e&&(f[t].cancelled=!0)}}e.exports=function(e){return c.call(a,e)},e.exports.cancel=function(){s.apply(a,arguments)},e.exports.polyfill=function(e){e||(e=a),e.requestAnimationFrame=c,e.cancelAnimationFrame=s}}).call(this,n(40))},function(e,t,n){(function(t){(function(){var n,r,a,o,i,c;"undefined"!=typeof performance&&null!==performance&&performance.now?e.exports=function(){return performance.now()}:null!=t&&t.hrtime?(e.exports=function(){return(n()-i)/1e6},r=t.hrtime,o=(n=function(){var e;return 1e9*(e=r())[0]+e[1]})(),c=1e9*t.uptime(),i=o-c):Date.now?(e.exports=function(){return Date.now()-a},a=Date.now()):(e.exports=function(){return(new Date).getTime()-a},a=(new Date).getTime())}).call(this)}).call(this,n(63))},function(e,t,n){},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=m(n(0)),a=m(n(1)),o=f(n(11)),i=n(25),c=f(n(78)),s=f(n(48)),l=n(18),u=f(n(377)),d=n(54);function f(e){return e&&e.__esModule?e:{default:e}}function h(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return h=function(){return e},e}function m(e){if(e&&e.__esModule)return e;if(null===e||"object"!==L(e)&&"function"!=typeof e)return{default:e};var t=h();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var o=r?Object.getOwnPropertyDescriptor(e,a):null;o&&(o.get||o.set)?Object.defineProperty(n,a,o):n[a]=e[a]}return n.default=e,t&&t.set(e,n),n}function p(){return(p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function v(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function y(e,t){return(y=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function M(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=b(e);if(t){var a=b(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return g(this,n)}}function g(e,t){return!t||"object"!==L(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function b(e){return(b=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function L(e){return(L="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var z=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n},w=/^[\u4e00-\u9fa5]{2}$/,k=w.test.bind(w);function H(e,t){var n=!1,a=[];return r.Children.forEach(e,(function(e){var t=L(e),r="string"===t||"number"===t;if(n&&r){var o=a.length-1,i=a[o];a[o]="".concat(i).concat(e)}else a.push(e);n=r})),r.Children.map(a,(function(e){return function(e,t){if(null!=e){var n=t?" ":"";return"string"!=typeof e&&"number"!=typeof e&&"string"==typeof e.type&&k(e.props.children)?r.cloneElement(e,{},e.props.children.split("").join(n)):"string"==typeof e?(k(e)&&(e=e.split("").join(n)),r.createElement("span",null,e)):e}}(e,t)}))}(0,d.tuple)("default","primary","ghost","dashed","danger","link");var T=(0,d.tuple)("circle","circle-outline","round"),Y=(0,d.tuple)("large","default","small"),S=(0,d.tuple)("submit","button","reset"),D=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&y(e,t)}(d,e);var t,n,a,i=M(d);function d(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,d),(t=i.call(this,e)).saveButtonRef=function(e){t.buttonNode=e},t.handleClick=function(e){var n=t.state.loading,r=t.props.onClick;n||r&&r(e)},t.renderButton=function(e){var n,a=e.getPrefixCls,i=e.autoInsertSpaceInButton,l=t.props,d=l.prefixCls,f=l.type,h=l.shape,m=l.size,_=l.className,y=l.children,M=l.icon,g=l.ghost,b=l.block,L=z(l,["prefixCls","type","shape","size","className","children","icon","ghost","block"]),w=t.state,k=w.loading,T=w.hasTwoCNChar,Y=a("btn",d),S=!1!==i,D="";switch(m){case"large":D="lg";break;case"small":D="sm"}var O=k?"loading":M,x=(0,o.default)(Y,_,(v(n={},"".concat(Y,"-").concat(f),f),v(n,"".concat(Y,"-").concat(h),h),v(n,"".concat(Y,"-").concat(D),D),v(n,"".concat(Y,"-icon-only"),!y&&0!==y&&O),v(n,"".concat(Y,"-loading"),!!k),v(n,"".concat(Y,"-background-ghost"),g),v(n,"".concat(Y,"-two-chinese-chars"),T&&S),v(n,"".concat(Y,"-block"),b),n)),C=O?r.createElement(s.default,{type:O}):null,V=y||0===y?H(y,t.isNeedInserted()&&S):null,j=(0,c.default)(L,["htmlType","loading"]);if(void 0!==j.href)return r.createElement("a",p({},j,{className:x,onClick:t.handleClick,ref:t.saveButtonRef}),C,V);var E=L,P=E.htmlType,A=z(E,["htmlType"]),N=r.createElement("button",p({},(0,c.default)(A,["loading"]),{type:P,className:x,onClick:t.handleClick,ref:t.saveButtonRef}),C,V);return"link"===f?N:r.createElement(u.default,null,N)},t.state={loading:e.loading,hasTwoCNChar:!1},t}return t=d,(n=[{key:"componentDidMount",value:function(){this.fixTwoCNChar()}},{key:"componentDidUpdate",value:function(e){var t=this;this.fixTwoCNChar(),e.loading&&"boolean"!=typeof e.loading&&clearTimeout(this.delayTimeout);var n=this.props.loading;n&&"boolean"!=typeof n&&n.delay?this.delayTimeout=window.setTimeout((function(){t.setState({loading:n})}),n.delay):e.loading!==n&&this.setState({loading:n})}},{key:"componentWillUnmount",value:function(){this.delayTimeout&&clearTimeout(this.delayTimeout)}},{key:"fixTwoCNChar",value:function(){if(this.buttonNode){var e=this.buttonNode.textContent;this.isNeedInserted()&&k(e)?this.state.hasTwoCNChar||this.setState({hasTwoCNChar:!0}):this.state.hasTwoCNChar&&this.setState({hasTwoCNChar:!1})}}},{key:"isNeedInserted",value:function(){var e=this.props,t=e.icon,n=e.children,a=e.type;return 1===r.Children.count(n)&&!t&&"link"!==a}},{key:"render",value:function(){return r.createElement(l.ConfigConsumer,null,this.renderButton)}}])&&_(t.prototype,n),a&&_(t,a),d}(r.Component);D.__ANT_BUTTON=!0,D.defaultProps={loading:!1,ghost:!1,block:!1,htmlType:"button"},D.propTypes={type:a.string,shape:a.oneOf(T),size:a.oneOf(Y),htmlType:a.oneOf(S),onClick:a.func,loading:a.oneOfType([a.bool,a.object]),className:a.string,icon:a.string,block:a.bool,title:a.string},(0,i.polyfill)(D);var O=D;t.default=O},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,a=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==d(e)&&"function"!=typeof e)return{default:e};var t=u();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var o=r?Object.getOwnPropertyDescriptor(e,a):null;o&&(o.get||o.set)?Object.defineProperty(n,a,o):n[a]=e[a]}n.default=e,t&&t.set(e,n);return n}(n(0)),o=n(7),i=l(n(378)),c=l(n(246)),s=n(18);function l(e){return e&&e.__esModule?e:{default:e}}function u(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return u=function(){return e},e}function d(e){return(d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function f(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function h(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function m(e,t){return(m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function p(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=y(e);if(t){var a=y(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return v(this,n)}}function v(e,t){return!t||"object"!==d(t)&&"function"!=typeof t?_(e):t}function _(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function y(e){return(y=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function M(e){return!e||null===e.offsetParent}function g(e){var t=(e||"").match(/rgba?\((\d*), (\d*), (\d*)(, [\.\d]*)?\)/);return!(t&&t[1]&&t[2]&&t[3])||!(t[1]===t[2]&&t[2]===t[3])}var b=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&m(e,t)}(d,e);var t,n,l,u=p(d);function d(){var e;return f(this,d),(e=u.apply(this,arguments)).animationStart=!1,e.destroy=!1,e.onClick=function(t,n){if(!(!t||M(t)||t.className.indexOf("-leave")>=0)){var a=e.props.insertExtraNode;e.extraNode=document.createElement("div");var o=_(e).extraNode;o.className="ant-click-animating-node";var c=e.getAttributeName();t.setAttribute(c,"true"),r=r||document.createElement("style"),n&&"#ffffff"!==n&&"rgb(255, 255, 255)"!==n&&g(n)&&!/rgba\(\d*, \d*, \d*, 0\)/.test(n)&&"transparent"!==n&&(e.csp&&e.csp.nonce&&(r.nonce=e.csp.nonce),o.style.borderColor=n,r.innerHTML="\n [ant-click-animating-without-extra-node='true']::after, .ant-click-animating-node {\n --antd-wave-shadow-color: ".concat(n,";\n }"),document.body.contains(r)||document.body.appendChild(r)),a&&t.appendChild(o),i.default.addStartEventListener(t,e.onTransitionStart),i.default.addEndEventListener(t,e.onTransitionEnd)}},e.onTransitionStart=function(t){if(!e.destroy){var n=(0,o.findDOMNode)(_(e));t&&t.target===n&&(e.animationStart||e.resetEffect(n))}},e.onTransitionEnd=function(t){t&&"fadeEffect"===t.animationName&&e.resetEffect(t.target)},e.bindAnimationEvent=function(t){if(t&&t.getAttribute&&!t.getAttribute("disabled")&&!(t.className.indexOf("disabled")>=0)){var n=function(n){if("INPUT"!==n.target.tagName&&!M(n.target)){e.resetEffect(t);var r=getComputedStyle(t).getPropertyValue("border-top-color")||getComputedStyle(t).getPropertyValue("border-color")||getComputedStyle(t).getPropertyValue("background-color");e.clickWaveTimeoutId=window.setTimeout((function(){return e.onClick(t,r)}),0),c.default.cancel(e.animationStartId),e.animationStart=!0,e.animationStartId=(0,c.default)((function(){e.animationStart=!1}),10)}};return t.addEventListener("click",n,!0),{cancel:function(){t.removeEventListener("click",n,!0)}}}},e.renderWave=function(t){var n=t.csp,r=e.props.children;return e.csp=n,r},e}return t=d,(n=[{key:"componentDidMount",value:function(){var e=(0,o.findDOMNode)(this);e&&1===e.nodeType&&(this.instance=this.bindAnimationEvent(e))}},{key:"componentWillUnmount",value:function(){this.instance&&this.instance.cancel(),this.clickWaveTimeoutId&&clearTimeout(this.clickWaveTimeoutId),this.destroy=!0}},{key:"getAttributeName",value:function(){return this.props.insertExtraNode?"ant-click-animating":"ant-click-animating-without-extra-node"}},{key:"resetEffect",value:function(e){if(e&&e!==this.extraNode&&e instanceof Element){var t=this.props.insertExtraNode,n=this.getAttributeName();e.setAttribute(n,"false"),r&&(r.innerHTML=""),t&&this.extraNode&&e.contains(this.extraNode)&&e.removeChild(this.extraNode),i.default.removeStartEventListener(e,this.onTransitionStart),i.default.removeEndEventListener(e,this.onTransitionEnd)}}},{key:"render",value:function(){return a.createElement(s.ConfigConsumer,null,this.renderWave)}}])&&h(t.prototype,n),l&&h(t,l),d}(a.Component);t.default=b},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={transitionstart:{transition:"transitionstart",WebkitTransition:"webkitTransitionStart",MozTransition:"mozTransitionStart",OTransition:"oTransitionStart",msTransition:"MSTransitionStart"},animationstart:{animation:"animationstart",WebkitAnimation:"webkitAnimationStart",MozAnimation:"mozAnimationStart",OAnimation:"oAnimationStart",msAnimation:"MSAnimationStart"}},a={transitionend:{transition:"transitionend",WebkitTransition:"webkitTransitionEnd",MozTransition:"mozTransitionEnd",OTransition:"oTransitionEnd",msTransition:"MSTransitionEnd"},animationend:{animation:"animationend",WebkitAnimation:"webkitAnimationEnd",MozAnimation:"mozAnimationEnd",OAnimation:"oAnimationEnd",msAnimation:"MSAnimationEnd"}},o=[],i=[];function c(e,t,n){e.addEventListener(t,n,!1)}function s(e,t,n){e.removeEventListener(t,n,!1)}"undefined"!=typeof window&&"undefined"!=typeof document&&function(){var e=document.createElement("div").style;function t(t,n){for(var r in t)if(t.hasOwnProperty(r)){var a=t[r];for(var o in a)if(o in e){n.push(a[o]);break}}}"AnimationEvent"in window||(delete r.animationstart.animation,delete a.animationend.animation),"TransitionEvent"in window||(delete r.transitionstart.transition,delete a.transitionend.transition),t(r,o),t(a,i)}();var l={startEvents:o,addStartEventListener:function(e,t){0!==o.length?o.forEach((function(n){c(e,n,t)})):window.setTimeout(t,0)},removeStartEventListener:function(e,t){0!==o.length&&o.forEach((function(n){s(e,n,t)}))},endEvents:i,addEndEventListener:function(e,t){0!==i.length?i.forEach((function(n){c(e,n,t)})):window.setTimeout(t,0)},removeEndEventListener:function(e,t){0!==i.length&&i.forEach((function(n){s(e,n,t)}))}};t.default=l,e.exports=t.default},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a,o=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var t=s();if(t&&t.has(e))return t.get(e);var n={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}n.default=e,t&&t.set(e,n);return n}(n(0)),i=(a=n(11))&&a.__esModule?a:{default:a},c=n(18);function s(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return s=function(){return e},e}function l(){return(l=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var u=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n},d=function(e){return o.createElement(c.ConfigConsumer,null,(function(t){var n=t.getPrefixCls,r=e.prefixCls,a=e.size,c=e.className,s=u(e,["prefixCls","size","className"]),d=n("btn-group",r),f="";switch(a){case"large":f="lg";break;case"small":f="sm"}var h=(0,i.default)(d,function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}({},"".concat(d,"-").concat(f),f),c);return o.createElement("div",l({},s,{className:h}))}))};t.default=d},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=f(n(0)),a=u(n(11)),o=f(n(1)),i=n(18),c=u(n(248)),s=n(54),l=f(n(381));function u(e){return e&&e.__esModule?e:{default:e}}function d(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return d=function(){return e},e}function f(e){if(e&&e.__esModule)return e;if(null===e||"object"!==h(e)&&"function"!=typeof e)return{default:e};var t=d();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var o=r?Object.getOwnPropertyDescriptor(e,a):null;o&&(o.get||o.set)?Object.defineProperty(n,a,o):n[a]=e[a]}return n.default=e,t&&t.set(e,n),n}function h(e){return(h="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function m(){return(m=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function p(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function v(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function y(e,t){return(y=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function M(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=b(e);if(t){var a=b(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return g(this,n)}}function g(e,t){return!t||"object"!==h(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function b(e){return(b=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var L=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n},z=(0,s.tuple)("top","middle","bottom","stretch"),w=(0,s.tuple)("start","end","center","space-around","space-between"),k=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&y(e,t)}(u,e);var t,n,o,s=M(u);function u(){var e;return v(this,u),(e=s.apply(this,arguments)).state={screens:{}},e.renderRow=function(t){var n,o=t.getPrefixCls,i=e.props,s=i.prefixCls,l=i.type,u=i.justify,d=i.align,f=i.className,h=i.style,v=i.children,_=L(i,["prefixCls","type","justify","align","className","style","children"]),y=o("row",s),M=e.getGutter(),g=(0,a.default)((p(n={},y,!l),p(n,"".concat(y,"-").concat(l),l),p(n,"".concat(y,"-").concat(l,"-").concat(u),l&&u),p(n,"".concat(y,"-").concat(l,"-").concat(d),l&&d),n),f),b=m(m(m({},M[0]>0?{marginLeft:M[0]/-2,marginRight:M[0]/-2}:{}),M[1]>0?{marginTop:M[1]/-2,marginBottom:M[1]/-2}:{}),h),z=m({},_);return delete z.gutter,r.createElement(c.default.Provider,{value:{gutter:M}},r.createElement("div",m({},z,{className:g,style:b}),v))},e}return t=u,(n=[{key:"componentDidMount",value:function(){var e=this;this.token=l.default.subscribe((function(t){var n=e.props.gutter;("object"===h(n)||Array.isArray(n)&&("object"===h(n[0])||"object"===h(n[1])))&&e.setState({screens:t})}))}},{key:"componentWillUnmount",value:function(){l.default.unsubscribe(this.token)}},{key:"getGutter",value:function(){var e=[0,0],t=this.props.gutter,n=this.state.screens;return(Array.isArray(t)?t:[t,0]).forEach((function(t,r){if("object"===h(t))for(var a=0;a<l.responsiveArray.length;a++){var o=l.responsiveArray[a];if(n[o]&&void 0!==t[o]){e[r]=t[o];break}}else e[r]=t||0})),e}},{key:"render",value:function(){return r.createElement(i.ConfigConsumer,null,this.renderRow)}}])&&_(t.prototype,n),o&&_(t,o),u}(r.Component);t.default=k,k.defaultProps={gutter:0},k.propTypes={type:o.oneOf(["flex"]),align:o.oneOf(z),justify:o.oneOf(w),className:o.string,children:o.node,gutter:o.oneOfType([o.object,o.number,o.array]),prefixCls:o.string}},function(e,t,n){"use strict";function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(){return(a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var o;if(Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.responsiveMap=t.responsiveArray=void 0,"undefined"!=typeof window){window.matchMedia||(window.matchMedia=function(e){return{media:e,matches:!1,addListener:function(){},removeListener:function(){}}}),o=n(382)}t.responsiveArray=["xxl","xl","lg","md","sm","xs"];var i={xs:"(max-width: 575px)",sm:"(min-width: 576px)",md:"(min-width: 768px)",lg:"(min-width: 992px)",xl:"(min-width: 1200px)",xxl:"(min-width: 1600px)"};t.responsiveMap=i;var c=[],s=-1,l={},u={dispatch:function(e){return l=e,!(c.length<1)&&(c.forEach((function(e){e.func(l)})),!0)},subscribe:function(e){0===c.length&&this.register();var t=(++s).toString();return c.push({token:t,func:e}),e(l),t},unsubscribe:function(e){0===(c=c.filter((function(t){return t.token!==e}))).length&&this.unregister()},unregister:function(){Object.keys(i).map((function(e){return o.unregister(i[e])}))},register:function(){var e=this;Object.keys(i).map((function(t){return o.register(i[t],{match:function(){var n=a(a({},l),r({},t,!0));e.dispatch(n)},unmatch:function(){var n=a(a({},l),r({},t,!1));e.dispatch(n)},destroy:function(){}})}))}};t.default=u},function(e,t,n){var r=n(383);e.exports=new r},function(e,t,n){var r=n(384),a=n(249),o=a.each,i=a.isFunction,c=a.isArray;function s(){if(!window.matchMedia)throw new Error("matchMedia not present, legacy browsers require a polyfill");this.queries={},this.browserIsIncapable=!window.matchMedia("only all").matches}s.prototype={constructor:s,register:function(e,t,n){var a=this.queries,s=n&&this.browserIsIncapable;return a[e]||(a[e]=new r(e,s)),i(t)&&(t={match:t}),c(t)||(t=[t]),o(t,(function(t){i(t)&&(t={match:t}),a[e].addHandler(t)})),this},unregister:function(e,t){var n=this.queries[e];return n&&(t?n.removeHandler(t):(n.clear(),delete this.queries[e])),this}},e.exports=s},function(e,t,n){var r=n(385),a=n(249).each;function o(e,t){this.query=e,this.isUnconditional=t,this.handlers=[],this.mql=window.matchMedia(e);var n=this;this.listener=function(e){n.mql=e.currentTarget||e,n.assess()},this.mql.addListener(this.listener)}o.prototype={constuctor:o,addHandler:function(e){var t=new r(e);this.handlers.push(t),this.matches()&&t.on()},removeHandler:function(e){var t=this.handlers;a(t,(function(n,r){if(n.equals(e))return n.destroy(),!t.splice(r,1)}))},matches:function(){return this.mql.matches||this.isUnconditional},clear:function(){a(this.handlers,(function(e){e.destroy()})),this.mql.removeListener(this.listener),this.handlers.length=0},assess:function(){var e=this.matches()?"on":"off";a(this.handlers,(function(t){t[e]()}))}},e.exports=o},function(e,t){function n(e){this.options=e,!e.deferSetup&&this.setup()}n.prototype={constructor:n,setup:function(){this.options.setup&&this.options.setup(),this.initialised=!0},on:function(){!this.initialised&&this.setup(),this.options.match&&this.options.match()},off:function(){this.options.unmatch&&this.options.unmatch()},destroy:function(){this.options.destroy?this.options.destroy():this.off()},equals:function(e){return this.options===e||this.options.match===e}},e.exports=n},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=u(n(0)),a=u(n(1)),o=s(n(11)),i=s(n(248)),c=n(18);function s(e){return e&&e.__esModule?e:{default:e}}function l(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return l=function(){return e},e}function u(e){if(e&&e.__esModule)return e;if(null===e||"object"!==h(e)&&"function"!=typeof e)return{default:e};var t=l();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var o=r?Object.getOwnPropertyDescriptor(e,a):null;o&&(o.get||o.set)?Object.defineProperty(n,a,o):n[a]=e[a]}return n.default=e,t&&t.set(e,n),n}function d(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function f(){return(f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function h(e){return(h="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function m(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function p(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function v(e,t){return(v=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function _(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=g(e);if(t){var a=g(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return y(this,n)}}function y(e,t){return!t||"object"!==h(t)&&"function"!=typeof t?M(e):t}function M(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function g(e){return(g=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var b=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n},L=a.oneOfType([a.object,a.number]),z=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&v(e,t)}(l,e);var t,n,a,s=_(l);function l(){var e;return m(this,l),(e=s.apply(this,arguments)).renderCol=function(t){var n,a=t.getPrefixCls,c=M(e).props,s=c.prefixCls,l=c.span,u=c.order,m=c.offset,p=c.push,v=c.pull,_=c.className,y=c.children,g=b(c,["prefixCls","span","order","offset","push","pull","className","children"]),L=a("col",s),z={};["xs","sm","md","lg","xl","xxl"].forEach((function(e){var t,n={},r=c[e];"number"==typeof r?n.span=r:"object"===h(r)&&(n=r||{}),delete g[e],z=f(f({},z),(d(t={},"".concat(L,"-").concat(e,"-").concat(n.span),void 0!==n.span),d(t,"".concat(L,"-").concat(e,"-order-").concat(n.order),n.order||0===n.order),d(t,"".concat(L,"-").concat(e,"-offset-").concat(n.offset),n.offset||0===n.offset),d(t,"".concat(L,"-").concat(e,"-push-").concat(n.push),n.push||0===n.push),d(t,"".concat(L,"-").concat(e,"-pull-").concat(n.pull),n.pull||0===n.pull),t))}));var w=(0,o.default)(L,(d(n={},"".concat(L,"-").concat(l),void 0!==l),d(n,"".concat(L,"-order-").concat(u),u),d(n,"".concat(L,"-offset-").concat(m),m),d(n,"".concat(L,"-push-").concat(p),p),d(n,"".concat(L,"-pull-").concat(v),v),n),_,z);return r.createElement(i.default.Consumer,null,(function(e){var t=e.gutter,n=g.style;return t&&(n=f(f(f({},t[0]>0?{paddingLeft:t[0]/2,paddingRight:t[0]/2}:{}),t[1]>0?{paddingTop:t[1]/2,paddingBottom:t[1]/2}:{}),n)),r.createElement("div",f({},g,{style:n,className:w}),y)}))},e}return t=l,(n=[{key:"render",value:function(){return r.createElement(c.ConfigConsumer,null,this.renderCol)}}])&&p(t.prototype,n),a&&p(t,a),l}(r.Component);t.default=z,z.propTypes={span:a.number,order:a.number,offset:a.number,push:a.number,pull:a.number,className:a.string,children:a.node,xs:L,sm:L,md:L,lg:L,xl:L,xxl:L}},function(e,t,n){"use strict";e.exports=function(e){return encodeURIComponent(e).replace(/[!'()*]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}},function(e,t,n){"use strict";var r=new RegExp("%[a-f0-9]{2}","gi"),a=new RegExp("(%[a-f0-9]{2})+","gi");function o(e,t){try{return decodeURIComponent(e.join(""))}catch(e){}if(1===e.length)return e;t=t||1;var n=e.slice(0,t),r=e.slice(t);return Array.prototype.concat.call([],o(n),o(r))}function i(e){try{return decodeURIComponent(e)}catch(a){for(var t=e.match(r),n=1;n<t.length;n++)t=(e=o(t,n).join("")).match(r);return e}}e.exports=function(e){if("string"!=typeof e)throw new TypeError("Expected `encodedURI` to be of type `string`, got `"+typeof e+"`");try{return e=e.replace(/\+/g," "),decodeURIComponent(e)}catch(t){return function(e){for(var t={"%FE%FF":"��","%FF%FE":"��"},n=a.exec(e);n;){try{t[n[0]]=decodeURIComponent(n[0])}catch(e){var r=i(n[0]);r!==n[0]&&(t[n[0]]=r)}n=a.exec(e)}t["%C2"]="�";for(var o=Object.keys(t),c=0;c<o.length;c++){var s=o[c];e=e.replace(new RegExp(s,"g"),t[s])}return e}(e)}}},function(e,t,n){},function(e,t,n){var r=n(251);e.exports=function(e){if(Array.isArray(e))return r(e)},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){e.exports=function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){var r=n(251);e.exports=function(e,t){if(e){if("string"==typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(e,t):void 0}},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){e.exports=function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(395)),o=r(n(45)),i=["altKey","bubbles","cancelable","ctrlKey","currentTarget","eventPhase","metaKey","shiftKey","target","timeStamp","view","type"];function c(e){return null==e}var s=[{reg:/^key/,props:["char","charCode","key","keyCode","which"],fix:function(e,t){c(e.which)&&(e.which=c(t.charCode)?t.keyCode:t.charCode),void 0===e.metaKey&&(e.metaKey=e.ctrlKey)}},{reg:/^touch/,props:["touches","changedTouches","targetTouches"]},{reg:/^hashchange$/,props:["newURL","oldURL"]},{reg:/^gesturechange$/i,props:["rotation","scale"]},{reg:/^(mousewheel|DOMMouseScroll)$/,props:[],fix:function(e,t){var n=void 0,r=void 0,a=void 0,o=t.wheelDelta,i=t.axis,c=t.wheelDeltaY,s=t.wheelDeltaX,l=t.detail;o&&(a=o/120),l&&(a=0-(l%3==0?l/3:l)),void 0!==i&&(i===e.HORIZONTAL_AXIS?(r=0,n=0-a):i===e.VERTICAL_AXIS&&(n=0,r=a)),void 0!==c&&(r=c/120),void 0!==s&&(n=-1*s/120),n||r||(r=a),void 0!==n&&(e.deltaX=n),void 0!==r&&(e.deltaY=r),void 0!==a&&(e.delta=a)}},{reg:/^mouse|contextmenu|click|mspointer|(^DOMMouseScroll$)/i,props:["buttons","clientX","clientY","button","offsetX","relatedTarget","which","fromElement","toElement","offsetY","pageX","pageY","screenX","screenY"],fix:function(e,t){var n=void 0,r=void 0,a=void 0,o=e.target,i=t.button;return o&&c(e.pageX)&&!c(t.clientX)&&(r=(n=o.ownerDocument||document).documentElement,a=n.body,e.pageX=t.clientX+(r&&r.scrollLeft||a&&a.scrollLeft||0)-(r&&r.clientLeft||a&&a.clientLeft||0),e.pageY=t.clientY+(r&&r.scrollTop||a&&a.scrollTop||0)-(r&&r.clientTop||a&&a.clientTop||0)),e.which||void 0===i||(e.which=1&i?1:2&i?3:4&i?2:0),!e.relatedTarget&&e.fromElement&&(e.relatedTarget=e.fromElement===o?e.toElement:e.fromElement),e}}];function l(){return!0}function u(){return!1}function d(e){var t=e.type,n="function"==typeof e.stopPropagation||"boolean"==typeof e.cancelBubble;a.default.call(this),this.nativeEvent=e;var r=u;"defaultPrevented"in e?r=e.defaultPrevented?l:u:"getPreventDefault"in e?r=e.getPreventDefault()?l:u:"returnValue"in e&&(r=!1===e.returnValue?l:u),this.isDefaultPrevented=r;var o=[],c=void 0,d=void 0,f=i.concat();for(s.forEach((function(e){t.match(e.reg)&&(f=f.concat(e.props),e.fix&&o.push(e.fix))})),c=f.length;c;)this[d=f[--c]]=e[d];for(!this.target&&n&&(this.target=e.srcElement||document),this.target&&3===this.target.nodeType&&(this.target=this.target.parentNode),c=o.length;c;)(0,o[--c])(this,e);this.timeStamp=e.timeStamp||Date.now()}var f=a.default.prototype;(0,o.default)(d.prototype,f,{constructor:d,preventDefault:function(){var e=this.nativeEvent;e.preventDefault?e.preventDefault():e.returnValue=!1,f.preventDefault.call(this)},stopPropagation:function(){var e=this.nativeEvent;e.stopPropagation?e.stopPropagation():e.cancelBubble=!0,f.stopPropagation.call(this)}}),t.default=d,e.exports=t.default},function(e,t,n){"use strict";function r(){return!1}function a(){return!0}function o(){this.timeStamp=Date.now(),this.target=void 0,this.currentTarget=void 0}Object.defineProperty(t,"__esModule",{value:!0}),o.prototype={isEventObject:1,constructor:o,isDefaultPrevented:r,isPropagationStopped:r,isImmediatePropagationStopped:r,preventDefault:function(){this.isDefaultPrevented=a},stopPropagation:function(){this.isPropagationStopped=a},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=a,this.stopPropagation()},halt:function(e){e?this.stopImmediatePropagation():this.stopPropagation(),this.preventDefault()}},t.default=o,e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getOverflowOptions=s,t.default=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.arrowWidth,n=void 0===t?5:t,o=e.horizontalArrowShift,i=void 0===o?16:o,l=e.verticalArrowShift,u=void 0===l?12:l,d=e.autoAdjustOverflow,f=void 0===d||d,h={left:{points:["cr","cl"],offset:[-4,0]},right:{points:["cl","cr"],offset:[4,0]},top:{points:["bc","tc"],offset:[0,-4]},bottom:{points:["tc","bc"],offset:[0,4]},topLeft:{points:["bl","tc"],offset:[-(i+n),-4]},leftTop:{points:["tr","cl"],offset:[-4,-(u+n)]},topRight:{points:["br","tc"],offset:[i+n,-4]},rightTop:{points:["tl","cr"],offset:[4,-(u+n)]},bottomRight:{points:["tr","bc"],offset:[i+n,4]},rightBottom:{points:["bl","cr"],offset:[4,u+n]},bottomLeft:{points:["tl","bc"],offset:[-(i+n),4]},leftBottom:{points:["br","cl"],offset:[-4,u+n]}};return Object.keys(h).forEach((function(t){h[t]=e.arrowPointAtCenter?a(a({},h[t]),{overflow:s(f),targetOffset:c}):a(a({},r.placements[t]),{overflow:s(f)}),h[t].ignoreShake=!0})),h};var r=n(397);function a(){return(a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var o={adjustX:1,adjustY:1},i={adjustX:0,adjustY:0},c=[0,0];function s(e){return"boolean"==typeof e?e?o:i:a(a({},i),e)}},function(e,t,n){"use strict";t.__esModule=!0;var r={adjustX:1,adjustY:1},a=[0,0],o=t.placements={left:{points:["cr","cl"],overflow:r,offset:[-4,0],targetOffset:a},right:{points:["cl","cr"],overflow:r,offset:[4,0],targetOffset:a},top:{points:["bc","tc"],overflow:r,offset:[0,-4],targetOffset:a},bottom:{points:["tc","bc"],overflow:r,offset:[0,4],targetOffset:a},topLeft:{points:["bl","tl"],overflow:r,offset:[0,-4],targetOffset:a},leftTop:{points:["tr","tl"],overflow:r,offset:[-4,0],targetOffset:a},topRight:{points:["br","tr"],overflow:r,offset:[0,-4],targetOffset:a},rightTop:{points:["tl","tr"],overflow:r,offset:[4,0],targetOffset:a},bottomRight:{points:["tr","br"],overflow:r,offset:[0,4],targetOffset:a},rightBottom:{points:["bl","br"],overflow:r,offset:[4,0],targetOffset:a},bottomLeft:{points:["tl","bl"],overflow:r,offset:[0,4],targetOffset:a},leftBottom:{points:["br","bl"],overflow:r,offset:[-4,0],targetOffset:a}};t.default=o},function(e,t,n){},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={"<":"<",">":">",""":'"',"&apos":"'","&":"&","<":"<",">":">",""":'"',"'":"'","&":"&"},a={60:"lt",62:"gt",34:"quot",39:"apos",38:"amp"},o={"<":"<",">":">",'"':""","'":"'","&":"&"},i=function(){function e(){}return e.prototype.encode=function(e){return e&&e.length?e.replace(/[<>"'&]/g,(function(e){return o[e]})):""},e.encode=function(t){return(new e).encode(t)},e.prototype.decode=function(e){return e&&e.length?e.replace(/&#?[0-9a-zA-Z]+;?/g,(function(e){if("#"===e.charAt(1)){var t="x"===e.charAt(2).toLowerCase()?parseInt(e.substr(3),16):parseInt(e.substr(2));return isNaN(t)||t<-32768||t>65535?"":String.fromCharCode(t)}return r[e]||e})):""},e.decode=function(t){return(new e).decode(t)},e.prototype.encodeNonUTF=function(e){if(!e||!e.length)return"";for(var t=e.length,n="",r=0;r<t;){var o=e.charCodeAt(r),i=a[o];i?(n+="&"+i+";",r++):(n+=o<32||o>126?"&#"+o+";":e.charAt(r),r++)}return n},e.encodeNonUTF=function(t){return(new e).encodeNonUTF(t)},e.prototype.encodeNonASCII=function(e){if(!e||!e.length)return"";for(var t=e.length,n="",r=0;r<t;){var a=e.charCodeAt(r);a<=255?n+=e[r++]:(n+="&#"+a+";",r++)}return n},e.encodeNonASCII=function(t){return(new e).encodeNonASCII(t)},e}();t.XmlEntities=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=["apos","nbsp","iexcl","cent","pound","curren","yen","brvbar","sect","uml","copy","ordf","laquo","not","shy","reg","macr","deg","plusmn","sup2","sup3","acute","micro","para","middot","cedil","sup1","ordm","raquo","frac14","frac12","frac34","iquest","Agrave","Aacute","Acirc","Atilde","Auml","Aring","Aelig","Ccedil","Egrave","Eacute","Ecirc","Euml","Igrave","Iacute","Icirc","Iuml","ETH","Ntilde","Ograve","Oacute","Ocirc","Otilde","Ouml","times","Oslash","Ugrave","Uacute","Ucirc","Uuml","Yacute","THORN","szlig","agrave","aacute","acirc","atilde","auml","aring","aelig","ccedil","egrave","eacute","ecirc","euml","igrave","iacute","icirc","iuml","eth","ntilde","ograve","oacute","ocirc","otilde","ouml","divide","oslash","ugrave","uacute","ucirc","uuml","yacute","thorn","yuml","quot","amp","lt","gt","OElig","oelig","Scaron","scaron","Yuml","circ","tilde","ensp","emsp","thinsp","zwnj","zwj","lrm","rlm","ndash","mdash","lsquo","rsquo","sbquo","ldquo","rdquo","bdquo","dagger","Dagger","permil","lsaquo","rsaquo","euro","fnof","Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Theta","Iota","Kappa","Lambda","Mu","Nu","Xi","Omicron","Pi","Rho","Sigma","Tau","Upsilon","Phi","Chi","Psi","Omega","alpha","beta","gamma","delta","epsilon","zeta","eta","theta","iota","kappa","lambda","mu","nu","xi","omicron","pi","rho","sigmaf","sigma","tau","upsilon","phi","chi","psi","omega","thetasym","upsih","piv","bull","hellip","prime","Prime","oline","frasl","weierp","image","real","trade","alefsym","larr","uarr","rarr","darr","harr","crarr","lArr","uArr","rArr","dArr","hArr","forall","part","exist","empty","nabla","isin","notin","ni","prod","sum","minus","lowast","radic","prop","infin","ang","and","or","cap","cup","int","there4","sim","cong","asymp","ne","equiv","le","ge","sub","sup","nsub","sube","supe","oplus","otimes","perp","sdot","lceil","rceil","lfloor","rfloor","lang","rang","loz","spades","clubs","hearts","diams"],a=[39,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,34,38,60,62,338,339,352,353,376,710,732,8194,8195,8201,8204,8205,8206,8207,8211,8212,8216,8217,8218,8220,8221,8222,8224,8225,8240,8249,8250,8364,402,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,977,978,982,8226,8230,8242,8243,8254,8260,8472,8465,8476,8482,8501,8592,8593,8594,8595,8596,8629,8656,8657,8658,8659,8660,8704,8706,8707,8709,8711,8712,8713,8715,8719,8721,8722,8727,8730,8733,8734,8736,8743,8744,8745,8746,8747,8756,8764,8773,8776,8800,8801,8804,8805,8834,8835,8836,8838,8839,8853,8855,8869,8901,8968,8969,8970,8971,9001,9002,9674,9824,9827,9829,9830],o={},i={};!function(){for(var e=0,t=r.length;e<t;){var n=r[e],c=a[e];o[n]=String.fromCharCode(c),i[c]=n,e++}}();var c=function(){function e(){}return e.prototype.decode=function(e){return e&&e.length?e.replace(/&(#?[\w\d]+);?/g,(function(e,t){var n;if("#"===t.charAt(0)){var r="x"===t.charAt(1).toLowerCase()?parseInt(t.substr(2),16):parseInt(t.substr(1));isNaN(r)||r<-32768||r>65535||(n=String.fromCharCode(r))}else n=o[t];return n||e})):""},e.decode=function(t){return(new e).decode(t)},e.prototype.encode=function(e){if(!e||!e.length)return"";for(var t=e.length,n="",r=0;r<t;){var a=i[e.charCodeAt(r)];n+=a?"&"+a+";":e.charAt(r),r++}return n},e.encode=function(t){return(new e).encode(t)},e.prototype.encodeNonUTF=function(e){if(!e||!e.length)return"";for(var t=e.length,n="",r=0;r<t;){var a=e.charCodeAt(r),o=i[a];n+=o?"&"+o+";":a<32||a>126?"&#"+a+";":e.charAt(r),r++}return n},e.encodeNonUTF=function(t){return(new e).encodeNonUTF(t)},e.prototype.encodeNonASCII=function(e){if(!e||!e.length)return"";for(var t=e.length,n="",r=0;r<t;){var a=e.charCodeAt(r);a<=255?n+=e[r++]:(n+="&#"+a+";",r++)}return n},e.encodeNonASCII=function(t){return(new e).encodeNonASCII(t)},e}();t.Html4Entities=c},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=[["Aacute",[193]],["aacute",[225]],["Abreve",[258]],["abreve",[259]],["ac",[8766]],["acd",[8767]],["acE",[8766,819]],["Acirc",[194]],["acirc",[226]],["acute",[180]],["Acy",[1040]],["acy",[1072]],["AElig",[198]],["aelig",[230]],["af",[8289]],["Afr",[120068]],["afr",[120094]],["Agrave",[192]],["agrave",[224]],["alefsym",[8501]],["aleph",[8501]],["Alpha",[913]],["alpha",[945]],["Amacr",[256]],["amacr",[257]],["amalg",[10815]],["amp",[38]],["AMP",[38]],["andand",[10837]],["And",[10835]],["and",[8743]],["andd",[10844]],["andslope",[10840]],["andv",[10842]],["ang",[8736]],["ange",[10660]],["angle",[8736]],["angmsdaa",[10664]],["angmsdab",[10665]],["angmsdac",[10666]],["angmsdad",[10667]],["angmsdae",[10668]],["angmsdaf",[10669]],["angmsdag",[10670]],["angmsdah",[10671]],["angmsd",[8737]],["angrt",[8735]],["angrtvb",[8894]],["angrtvbd",[10653]],["angsph",[8738]],["angst",[197]],["angzarr",[9084]],["Aogon",[260]],["aogon",[261]],["Aopf",[120120]],["aopf",[120146]],["apacir",[10863]],["ap",[8776]],["apE",[10864]],["ape",[8778]],["apid",[8779]],["apos",[39]],["ApplyFunction",[8289]],["approx",[8776]],["approxeq",[8778]],["Aring",[197]],["aring",[229]],["Ascr",[119964]],["ascr",[119990]],["Assign",[8788]],["ast",[42]],["asymp",[8776]],["asympeq",[8781]],["Atilde",[195]],["atilde",[227]],["Auml",[196]],["auml",[228]],["awconint",[8755]],["awint",[10769]],["backcong",[8780]],["backepsilon",[1014]],["backprime",[8245]],["backsim",[8765]],["backsimeq",[8909]],["Backslash",[8726]],["Barv",[10983]],["barvee",[8893]],["barwed",[8965]],["Barwed",[8966]],["barwedge",[8965]],["bbrk",[9141]],["bbrktbrk",[9142]],["bcong",[8780]],["Bcy",[1041]],["bcy",[1073]],["bdquo",[8222]],["becaus",[8757]],["because",[8757]],["Because",[8757]],["bemptyv",[10672]],["bepsi",[1014]],["bernou",[8492]],["Bernoullis",[8492]],["Beta",[914]],["beta",[946]],["beth",[8502]],["between",[8812]],["Bfr",[120069]],["bfr",[120095]],["bigcap",[8898]],["bigcirc",[9711]],["bigcup",[8899]],["bigodot",[10752]],["bigoplus",[10753]],["bigotimes",[10754]],["bigsqcup",[10758]],["bigstar",[9733]],["bigtriangledown",[9661]],["bigtriangleup",[9651]],["biguplus",[10756]],["bigvee",[8897]],["bigwedge",[8896]],["bkarow",[10509]],["blacklozenge",[10731]],["blacksquare",[9642]],["blacktriangle",[9652]],["blacktriangledown",[9662]],["blacktriangleleft",[9666]],["blacktriangleright",[9656]],["blank",[9251]],["blk12",[9618]],["blk14",[9617]],["blk34",[9619]],["block",[9608]],["bne",[61,8421]],["bnequiv",[8801,8421]],["bNot",[10989]],["bnot",[8976]],["Bopf",[120121]],["bopf",[120147]],["bot",[8869]],["bottom",[8869]],["bowtie",[8904]],["boxbox",[10697]],["boxdl",[9488]],["boxdL",[9557]],["boxDl",[9558]],["boxDL",[9559]],["boxdr",[9484]],["boxdR",[9554]],["boxDr",[9555]],["boxDR",[9556]],["boxh",[9472]],["boxH",[9552]],["boxhd",[9516]],["boxHd",[9572]],["boxhD",[9573]],["boxHD",[9574]],["boxhu",[9524]],["boxHu",[9575]],["boxhU",[9576]],["boxHU",[9577]],["boxminus",[8863]],["boxplus",[8862]],["boxtimes",[8864]],["boxul",[9496]],["boxuL",[9563]],["boxUl",[9564]],["boxUL",[9565]],["boxur",[9492]],["boxuR",[9560]],["boxUr",[9561]],["boxUR",[9562]],["boxv",[9474]],["boxV",[9553]],["boxvh",[9532]],["boxvH",[9578]],["boxVh",[9579]],["boxVH",[9580]],["boxvl",[9508]],["boxvL",[9569]],["boxVl",[9570]],["boxVL",[9571]],["boxvr",[9500]],["boxvR",[9566]],["boxVr",[9567]],["boxVR",[9568]],["bprime",[8245]],["breve",[728]],["Breve",[728]],["brvbar",[166]],["bscr",[119991]],["Bscr",[8492]],["bsemi",[8271]],["bsim",[8765]],["bsime",[8909]],["bsolb",[10693]],["bsol",[92]],["bsolhsub",[10184]],["bull",[8226]],["bullet",[8226]],["bump",[8782]],["bumpE",[10926]],["bumpe",[8783]],["Bumpeq",[8782]],["bumpeq",[8783]],["Cacute",[262]],["cacute",[263]],["capand",[10820]],["capbrcup",[10825]],["capcap",[10827]],["cap",[8745]],["Cap",[8914]],["capcup",[10823]],["capdot",[10816]],["CapitalDifferentialD",[8517]],["caps",[8745,65024]],["caret",[8257]],["caron",[711]],["Cayleys",[8493]],["ccaps",[10829]],["Ccaron",[268]],["ccaron",[269]],["Ccedil",[199]],["ccedil",[231]],["Ccirc",[264]],["ccirc",[265]],["Cconint",[8752]],["ccups",[10828]],["ccupssm",[10832]],["Cdot",[266]],["cdot",[267]],["cedil",[184]],["Cedilla",[184]],["cemptyv",[10674]],["cent",[162]],["centerdot",[183]],["CenterDot",[183]],["cfr",[120096]],["Cfr",[8493]],["CHcy",[1063]],["chcy",[1095]],["check",[10003]],["checkmark",[10003]],["Chi",[935]],["chi",[967]],["circ",[710]],["circeq",[8791]],["circlearrowleft",[8634]],["circlearrowright",[8635]],["circledast",[8859]],["circledcirc",[8858]],["circleddash",[8861]],["CircleDot",[8857]],["circledR",[174]],["circledS",[9416]],["CircleMinus",[8854]],["CirclePlus",[8853]],["CircleTimes",[8855]],["cir",[9675]],["cirE",[10691]],["cire",[8791]],["cirfnint",[10768]],["cirmid",[10991]],["cirscir",[10690]],["ClockwiseContourIntegral",[8754]],["clubs",[9827]],["clubsuit",[9827]],["colon",[58]],["Colon",[8759]],["Colone",[10868]],["colone",[8788]],["coloneq",[8788]],["comma",[44]],["commat",[64]],["comp",[8705]],["compfn",[8728]],["complement",[8705]],["complexes",[8450]],["cong",[8773]],["congdot",[10861]],["Congruent",[8801]],["conint",[8750]],["Conint",[8751]],["ContourIntegral",[8750]],["copf",[120148]],["Copf",[8450]],["coprod",[8720]],["Coproduct",[8720]],["copy",[169]],["COPY",[169]],["copysr",[8471]],["CounterClockwiseContourIntegral",[8755]],["crarr",[8629]],["cross",[10007]],["Cross",[10799]],["Cscr",[119966]],["cscr",[119992]],["csub",[10959]],["csube",[10961]],["csup",[10960]],["csupe",[10962]],["ctdot",[8943]],["cudarrl",[10552]],["cudarrr",[10549]],["cuepr",[8926]],["cuesc",[8927]],["cularr",[8630]],["cularrp",[10557]],["cupbrcap",[10824]],["cupcap",[10822]],["CupCap",[8781]],["cup",[8746]],["Cup",[8915]],["cupcup",[10826]],["cupdot",[8845]],["cupor",[10821]],["cups",[8746,65024]],["curarr",[8631]],["curarrm",[10556]],["curlyeqprec",[8926]],["curlyeqsucc",[8927]],["curlyvee",[8910]],["curlywedge",[8911]],["curren",[164]],["curvearrowleft",[8630]],["curvearrowright",[8631]],["cuvee",[8910]],["cuwed",[8911]],["cwconint",[8754]],["cwint",[8753]],["cylcty",[9005]],["dagger",[8224]],["Dagger",[8225]],["daleth",[8504]],["darr",[8595]],["Darr",[8609]],["dArr",[8659]],["dash",[8208]],["Dashv",[10980]],["dashv",[8867]],["dbkarow",[10511]],["dblac",[733]],["Dcaron",[270]],["dcaron",[271]],["Dcy",[1044]],["dcy",[1076]],["ddagger",[8225]],["ddarr",[8650]],["DD",[8517]],["dd",[8518]],["DDotrahd",[10513]],["ddotseq",[10871]],["deg",[176]],["Del",[8711]],["Delta",[916]],["delta",[948]],["demptyv",[10673]],["dfisht",[10623]],["Dfr",[120071]],["dfr",[120097]],["dHar",[10597]],["dharl",[8643]],["dharr",[8642]],["DiacriticalAcute",[180]],["DiacriticalDot",[729]],["DiacriticalDoubleAcute",[733]],["DiacriticalGrave",[96]],["DiacriticalTilde",[732]],["diam",[8900]],["diamond",[8900]],["Diamond",[8900]],["diamondsuit",[9830]],["diams",[9830]],["die",[168]],["DifferentialD",[8518]],["digamma",[989]],["disin",[8946]],["div",[247]],["divide",[247]],["divideontimes",[8903]],["divonx",[8903]],["DJcy",[1026]],["djcy",[1106]],["dlcorn",[8990]],["dlcrop",[8973]],["dollar",[36]],["Dopf",[120123]],["dopf",[120149]],["Dot",[168]],["dot",[729]],["DotDot",[8412]],["doteq",[8784]],["doteqdot",[8785]],["DotEqual",[8784]],["dotminus",[8760]],["dotplus",[8724]],["dotsquare",[8865]],["doublebarwedge",[8966]],["DoubleContourIntegral",[8751]],["DoubleDot",[168]],["DoubleDownArrow",[8659]],["DoubleLeftArrow",[8656]],["DoubleLeftRightArrow",[8660]],["DoubleLeftTee",[10980]],["DoubleLongLeftArrow",[10232]],["DoubleLongLeftRightArrow",[10234]],["DoubleLongRightArrow",[10233]],["DoubleRightArrow",[8658]],["DoubleRightTee",[8872]],["DoubleUpArrow",[8657]],["DoubleUpDownArrow",[8661]],["DoubleVerticalBar",[8741]],["DownArrowBar",[10515]],["downarrow",[8595]],["DownArrow",[8595]],["Downarrow",[8659]],["DownArrowUpArrow",[8693]],["DownBreve",[785]],["downdownarrows",[8650]],["downharpoonleft",[8643]],["downharpoonright",[8642]],["DownLeftRightVector",[10576]],["DownLeftTeeVector",[10590]],["DownLeftVectorBar",[10582]],["DownLeftVector",[8637]],["DownRightTeeVector",[10591]],["DownRightVectorBar",[10583]],["DownRightVector",[8641]],["DownTeeArrow",[8615]],["DownTee",[8868]],["drbkarow",[10512]],["drcorn",[8991]],["drcrop",[8972]],["Dscr",[119967]],["dscr",[119993]],["DScy",[1029]],["dscy",[1109]],["dsol",[10742]],["Dstrok",[272]],["dstrok",[273]],["dtdot",[8945]],["dtri",[9663]],["dtrif",[9662]],["duarr",[8693]],["duhar",[10607]],["dwangle",[10662]],["DZcy",[1039]],["dzcy",[1119]],["dzigrarr",[10239]],["Eacute",[201]],["eacute",[233]],["easter",[10862]],["Ecaron",[282]],["ecaron",[283]],["Ecirc",[202]],["ecirc",[234]],["ecir",[8790]],["ecolon",[8789]],["Ecy",[1069]],["ecy",[1101]],["eDDot",[10871]],["Edot",[278]],["edot",[279]],["eDot",[8785]],["ee",[8519]],["efDot",[8786]],["Efr",[120072]],["efr",[120098]],["eg",[10906]],["Egrave",[200]],["egrave",[232]],["egs",[10902]],["egsdot",[10904]],["el",[10905]],["Element",[8712]],["elinters",[9191]],["ell",[8467]],["els",[10901]],["elsdot",[10903]],["Emacr",[274]],["emacr",[275]],["empty",[8709]],["emptyset",[8709]],["EmptySmallSquare",[9723]],["emptyv",[8709]],["EmptyVerySmallSquare",[9643]],["emsp13",[8196]],["emsp14",[8197]],["emsp",[8195]],["ENG",[330]],["eng",[331]],["ensp",[8194]],["Eogon",[280]],["eogon",[281]],["Eopf",[120124]],["eopf",[120150]],["epar",[8917]],["eparsl",[10723]],["eplus",[10865]],["epsi",[949]],["Epsilon",[917]],["epsilon",[949]],["epsiv",[1013]],["eqcirc",[8790]],["eqcolon",[8789]],["eqsim",[8770]],["eqslantgtr",[10902]],["eqslantless",[10901]],["Equal",[10869]],["equals",[61]],["EqualTilde",[8770]],["equest",[8799]],["Equilibrium",[8652]],["equiv",[8801]],["equivDD",[10872]],["eqvparsl",[10725]],["erarr",[10609]],["erDot",[8787]],["escr",[8495]],["Escr",[8496]],["esdot",[8784]],["Esim",[10867]],["esim",[8770]],["Eta",[919]],["eta",[951]],["ETH",[208]],["eth",[240]],["Euml",[203]],["euml",[235]],["euro",[8364]],["excl",[33]],["exist",[8707]],["Exists",[8707]],["expectation",[8496]],["exponentiale",[8519]],["ExponentialE",[8519]],["fallingdotseq",[8786]],["Fcy",[1060]],["fcy",[1092]],["female",[9792]],["ffilig",[64259]],["fflig",[64256]],["ffllig",[64260]],["Ffr",[120073]],["ffr",[120099]],["filig",[64257]],["FilledSmallSquare",[9724]],["FilledVerySmallSquare",[9642]],["fjlig",[102,106]],["flat",[9837]],["fllig",[64258]],["fltns",[9649]],["fnof",[402]],["Fopf",[120125]],["fopf",[120151]],["forall",[8704]],["ForAll",[8704]],["fork",[8916]],["forkv",[10969]],["Fouriertrf",[8497]],["fpartint",[10765]],["frac12",[189]],["frac13",[8531]],["frac14",[188]],["frac15",[8533]],["frac16",[8537]],["frac18",[8539]],["frac23",[8532]],["frac25",[8534]],["frac34",[190]],["frac35",[8535]],["frac38",[8540]],["frac45",[8536]],["frac56",[8538]],["frac58",[8541]],["frac78",[8542]],["frasl",[8260]],["frown",[8994]],["fscr",[119995]],["Fscr",[8497]],["gacute",[501]],["Gamma",[915]],["gamma",[947]],["Gammad",[988]],["gammad",[989]],["gap",[10886]],["Gbreve",[286]],["gbreve",[287]],["Gcedil",[290]],["Gcirc",[284]],["gcirc",[285]],["Gcy",[1043]],["gcy",[1075]],["Gdot",[288]],["gdot",[289]],["ge",[8805]],["gE",[8807]],["gEl",[10892]],["gel",[8923]],["geq",[8805]],["geqq",[8807]],["geqslant",[10878]],["gescc",[10921]],["ges",[10878]],["gesdot",[10880]],["gesdoto",[10882]],["gesdotol",[10884]],["gesl",[8923,65024]],["gesles",[10900]],["Gfr",[120074]],["gfr",[120100]],["gg",[8811]],["Gg",[8921]],["ggg",[8921]],["gimel",[8503]],["GJcy",[1027]],["gjcy",[1107]],["gla",[10917]],["gl",[8823]],["glE",[10898]],["glj",[10916]],["gnap",[10890]],["gnapprox",[10890]],["gne",[10888]],["gnE",[8809]],["gneq",[10888]],["gneqq",[8809]],["gnsim",[8935]],["Gopf",[120126]],["gopf",[120152]],["grave",[96]],["GreaterEqual",[8805]],["GreaterEqualLess",[8923]],["GreaterFullEqual",[8807]],["GreaterGreater",[10914]],["GreaterLess",[8823]],["GreaterSlantEqual",[10878]],["GreaterTilde",[8819]],["Gscr",[119970]],["gscr",[8458]],["gsim",[8819]],["gsime",[10894]],["gsiml",[10896]],["gtcc",[10919]],["gtcir",[10874]],["gt",[62]],["GT",[62]],["Gt",[8811]],["gtdot",[8919]],["gtlPar",[10645]],["gtquest",[10876]],["gtrapprox",[10886]],["gtrarr",[10616]],["gtrdot",[8919]],["gtreqless",[8923]],["gtreqqless",[10892]],["gtrless",[8823]],["gtrsim",[8819]],["gvertneqq",[8809,65024]],["gvnE",[8809,65024]],["Hacek",[711]],["hairsp",[8202]],["half",[189]],["hamilt",[8459]],["HARDcy",[1066]],["hardcy",[1098]],["harrcir",[10568]],["harr",[8596]],["hArr",[8660]],["harrw",[8621]],["Hat",[94]],["hbar",[8463]],["Hcirc",[292]],["hcirc",[293]],["hearts",[9829]],["heartsuit",[9829]],["hellip",[8230]],["hercon",[8889]],["hfr",[120101]],["Hfr",[8460]],["HilbertSpace",[8459]],["hksearow",[10533]],["hkswarow",[10534]],["hoarr",[8703]],["homtht",[8763]],["hookleftarrow",[8617]],["hookrightarrow",[8618]],["hopf",[120153]],["Hopf",[8461]],["horbar",[8213]],["HorizontalLine",[9472]],["hscr",[119997]],["Hscr",[8459]],["hslash",[8463]],["Hstrok",[294]],["hstrok",[295]],["HumpDownHump",[8782]],["HumpEqual",[8783]],["hybull",[8259]],["hyphen",[8208]],["Iacute",[205]],["iacute",[237]],["ic",[8291]],["Icirc",[206]],["icirc",[238]],["Icy",[1048]],["icy",[1080]],["Idot",[304]],["IEcy",[1045]],["iecy",[1077]],["iexcl",[161]],["iff",[8660]],["ifr",[120102]],["Ifr",[8465]],["Igrave",[204]],["igrave",[236]],["ii",[8520]],["iiiint",[10764]],["iiint",[8749]],["iinfin",[10716]],["iiota",[8489]],["IJlig",[306]],["ijlig",[307]],["Imacr",[298]],["imacr",[299]],["image",[8465]],["ImaginaryI",[8520]],["imagline",[8464]],["imagpart",[8465]],["imath",[305]],["Im",[8465]],["imof",[8887]],["imped",[437]],["Implies",[8658]],["incare",[8453]],["in",[8712]],["infin",[8734]],["infintie",[10717]],["inodot",[305]],["intcal",[8890]],["int",[8747]],["Int",[8748]],["integers",[8484]],["Integral",[8747]],["intercal",[8890]],["Intersection",[8898]],["intlarhk",[10775]],["intprod",[10812]],["InvisibleComma",[8291]],["InvisibleTimes",[8290]],["IOcy",[1025]],["iocy",[1105]],["Iogon",[302]],["iogon",[303]],["Iopf",[120128]],["iopf",[120154]],["Iota",[921]],["iota",[953]],["iprod",[10812]],["iquest",[191]],["iscr",[119998]],["Iscr",[8464]],["isin",[8712]],["isindot",[8949]],["isinE",[8953]],["isins",[8948]],["isinsv",[8947]],["isinv",[8712]],["it",[8290]],["Itilde",[296]],["itilde",[297]],["Iukcy",[1030]],["iukcy",[1110]],["Iuml",[207]],["iuml",[239]],["Jcirc",[308]],["jcirc",[309]],["Jcy",[1049]],["jcy",[1081]],["Jfr",[120077]],["jfr",[120103]],["jmath",[567]],["Jopf",[120129]],["jopf",[120155]],["Jscr",[119973]],["jscr",[119999]],["Jsercy",[1032]],["jsercy",[1112]],["Jukcy",[1028]],["jukcy",[1108]],["Kappa",[922]],["kappa",[954]],["kappav",[1008]],["Kcedil",[310]],["kcedil",[311]],["Kcy",[1050]],["kcy",[1082]],["Kfr",[120078]],["kfr",[120104]],["kgreen",[312]],["KHcy",[1061]],["khcy",[1093]],["KJcy",[1036]],["kjcy",[1116]],["Kopf",[120130]],["kopf",[120156]],["Kscr",[119974]],["kscr",[12e4]],["lAarr",[8666]],["Lacute",[313]],["lacute",[314]],["laemptyv",[10676]],["lagran",[8466]],["Lambda",[923]],["lambda",[955]],["lang",[10216]],["Lang",[10218]],["langd",[10641]],["langle",[10216]],["lap",[10885]],["Laplacetrf",[8466]],["laquo",[171]],["larrb",[8676]],["larrbfs",[10527]],["larr",[8592]],["Larr",[8606]],["lArr",[8656]],["larrfs",[10525]],["larrhk",[8617]],["larrlp",[8619]],["larrpl",[10553]],["larrsim",[10611]],["larrtl",[8610]],["latail",[10521]],["lAtail",[10523]],["lat",[10923]],["late",[10925]],["lates",[10925,65024]],["lbarr",[10508]],["lBarr",[10510]],["lbbrk",[10098]],["lbrace",[123]],["lbrack",[91]],["lbrke",[10635]],["lbrksld",[10639]],["lbrkslu",[10637]],["Lcaron",[317]],["lcaron",[318]],["Lcedil",[315]],["lcedil",[316]],["lceil",[8968]],["lcub",[123]],["Lcy",[1051]],["lcy",[1083]],["ldca",[10550]],["ldquo",[8220]],["ldquor",[8222]],["ldrdhar",[10599]],["ldrushar",[10571]],["ldsh",[8626]],["le",[8804]],["lE",[8806]],["LeftAngleBracket",[10216]],["LeftArrowBar",[8676]],["leftarrow",[8592]],["LeftArrow",[8592]],["Leftarrow",[8656]],["LeftArrowRightArrow",[8646]],["leftarrowtail",[8610]],["LeftCeiling",[8968]],["LeftDoubleBracket",[10214]],["LeftDownTeeVector",[10593]],["LeftDownVectorBar",[10585]],["LeftDownVector",[8643]],["LeftFloor",[8970]],["leftharpoondown",[8637]],["leftharpoonup",[8636]],["leftleftarrows",[8647]],["leftrightarrow",[8596]],["LeftRightArrow",[8596]],["Leftrightarrow",[8660]],["leftrightarrows",[8646]],["leftrightharpoons",[8651]],["leftrightsquigarrow",[8621]],["LeftRightVector",[10574]],["LeftTeeArrow",[8612]],["LeftTee",[8867]],["LeftTeeVector",[10586]],["leftthreetimes",[8907]],["LeftTriangleBar",[10703]],["LeftTriangle",[8882]],["LeftTriangleEqual",[8884]],["LeftUpDownVector",[10577]],["LeftUpTeeVector",[10592]],["LeftUpVectorBar",[10584]],["LeftUpVector",[8639]],["LeftVectorBar",[10578]],["LeftVector",[8636]],["lEg",[10891]],["leg",[8922]],["leq",[8804]],["leqq",[8806]],["leqslant",[10877]],["lescc",[10920]],["les",[10877]],["lesdot",[10879]],["lesdoto",[10881]],["lesdotor",[10883]],["lesg",[8922,65024]],["lesges",[10899]],["lessapprox",[10885]],["lessdot",[8918]],["lesseqgtr",[8922]],["lesseqqgtr",[10891]],["LessEqualGreater",[8922]],["LessFullEqual",[8806]],["LessGreater",[8822]],["lessgtr",[8822]],["LessLess",[10913]],["lesssim",[8818]],["LessSlantEqual",[10877]],["LessTilde",[8818]],["lfisht",[10620]],["lfloor",[8970]],["Lfr",[120079]],["lfr",[120105]],["lg",[8822]],["lgE",[10897]],["lHar",[10594]],["lhard",[8637]],["lharu",[8636]],["lharul",[10602]],["lhblk",[9604]],["LJcy",[1033]],["ljcy",[1113]],["llarr",[8647]],["ll",[8810]],["Ll",[8920]],["llcorner",[8990]],["Lleftarrow",[8666]],["llhard",[10603]],["lltri",[9722]],["Lmidot",[319]],["lmidot",[320]],["lmoustache",[9136]],["lmoust",[9136]],["lnap",[10889]],["lnapprox",[10889]],["lne",[10887]],["lnE",[8808]],["lneq",[10887]],["lneqq",[8808]],["lnsim",[8934]],["loang",[10220]],["loarr",[8701]],["lobrk",[10214]],["longleftarrow",[10229]],["LongLeftArrow",[10229]],["Longleftarrow",[10232]],["longleftrightarrow",[10231]],["LongLeftRightArrow",[10231]],["Longleftrightarrow",[10234]],["longmapsto",[10236]],["longrightarrow",[10230]],["LongRightArrow",[10230]],["Longrightarrow",[10233]],["looparrowleft",[8619]],["looparrowright",[8620]],["lopar",[10629]],["Lopf",[120131]],["lopf",[120157]],["loplus",[10797]],["lotimes",[10804]],["lowast",[8727]],["lowbar",[95]],["LowerLeftArrow",[8601]],["LowerRightArrow",[8600]],["loz",[9674]],["lozenge",[9674]],["lozf",[10731]],["lpar",[40]],["lparlt",[10643]],["lrarr",[8646]],["lrcorner",[8991]],["lrhar",[8651]],["lrhard",[10605]],["lrm",[8206]],["lrtri",[8895]],["lsaquo",[8249]],["lscr",[120001]],["Lscr",[8466]],["lsh",[8624]],["Lsh",[8624]],["lsim",[8818]],["lsime",[10893]],["lsimg",[10895]],["lsqb",[91]],["lsquo",[8216]],["lsquor",[8218]],["Lstrok",[321]],["lstrok",[322]],["ltcc",[10918]],["ltcir",[10873]],["lt",[60]],["LT",[60]],["Lt",[8810]],["ltdot",[8918]],["lthree",[8907]],["ltimes",[8905]],["ltlarr",[10614]],["ltquest",[10875]],["ltri",[9667]],["ltrie",[8884]],["ltrif",[9666]],["ltrPar",[10646]],["lurdshar",[10570]],["luruhar",[10598]],["lvertneqq",[8808,65024]],["lvnE",[8808,65024]],["macr",[175]],["male",[9794]],["malt",[10016]],["maltese",[10016]],["Map",[10501]],["map",[8614]],["mapsto",[8614]],["mapstodown",[8615]],["mapstoleft",[8612]],["mapstoup",[8613]],["marker",[9646]],["mcomma",[10793]],["Mcy",[1052]],["mcy",[1084]],["mdash",[8212]],["mDDot",[8762]],["measuredangle",[8737]],["MediumSpace",[8287]],["Mellintrf",[8499]],["Mfr",[120080]],["mfr",[120106]],["mho",[8487]],["micro",[181]],["midast",[42]],["midcir",[10992]],["mid",[8739]],["middot",[183]],["minusb",[8863]],["minus",[8722]],["minusd",[8760]],["minusdu",[10794]],["MinusPlus",[8723]],["mlcp",[10971]],["mldr",[8230]],["mnplus",[8723]],["models",[8871]],["Mopf",[120132]],["mopf",[120158]],["mp",[8723]],["mscr",[120002]],["Mscr",[8499]],["mstpos",[8766]],["Mu",[924]],["mu",[956]],["multimap",[8888]],["mumap",[8888]],["nabla",[8711]],["Nacute",[323]],["nacute",[324]],["nang",[8736,8402]],["nap",[8777]],["napE",[10864,824]],["napid",[8779,824]],["napos",[329]],["napprox",[8777]],["natural",[9838]],["naturals",[8469]],["natur",[9838]],["nbsp",[160]],["nbump",[8782,824]],["nbumpe",[8783,824]],["ncap",[10819]],["Ncaron",[327]],["ncaron",[328]],["Ncedil",[325]],["ncedil",[326]],["ncong",[8775]],["ncongdot",[10861,824]],["ncup",[10818]],["Ncy",[1053]],["ncy",[1085]],["ndash",[8211]],["nearhk",[10532]],["nearr",[8599]],["neArr",[8663]],["nearrow",[8599]],["ne",[8800]],["nedot",[8784,824]],["NegativeMediumSpace",[8203]],["NegativeThickSpace",[8203]],["NegativeThinSpace",[8203]],["NegativeVeryThinSpace",[8203]],["nequiv",[8802]],["nesear",[10536]],["nesim",[8770,824]],["NestedGreaterGreater",[8811]],["NestedLessLess",[8810]],["nexist",[8708]],["nexists",[8708]],["Nfr",[120081]],["nfr",[120107]],["ngE",[8807,824]],["nge",[8817]],["ngeq",[8817]],["ngeqq",[8807,824]],["ngeqslant",[10878,824]],["nges",[10878,824]],["nGg",[8921,824]],["ngsim",[8821]],["nGt",[8811,8402]],["ngt",[8815]],["ngtr",[8815]],["nGtv",[8811,824]],["nharr",[8622]],["nhArr",[8654]],["nhpar",[10994]],["ni",[8715]],["nis",[8956]],["nisd",[8954]],["niv",[8715]],["NJcy",[1034]],["njcy",[1114]],["nlarr",[8602]],["nlArr",[8653]],["nldr",[8229]],["nlE",[8806,824]],["nle",[8816]],["nleftarrow",[8602]],["nLeftarrow",[8653]],["nleftrightarrow",[8622]],["nLeftrightarrow",[8654]],["nleq",[8816]],["nleqq",[8806,824]],["nleqslant",[10877,824]],["nles",[10877,824]],["nless",[8814]],["nLl",[8920,824]],["nlsim",[8820]],["nLt",[8810,8402]],["nlt",[8814]],["nltri",[8938]],["nltrie",[8940]],["nLtv",[8810,824]],["nmid",[8740]],["NoBreak",[8288]],["NonBreakingSpace",[160]],["nopf",[120159]],["Nopf",[8469]],["Not",[10988]],["not",[172]],["NotCongruent",[8802]],["NotCupCap",[8813]],["NotDoubleVerticalBar",[8742]],["NotElement",[8713]],["NotEqual",[8800]],["NotEqualTilde",[8770,824]],["NotExists",[8708]],["NotGreater",[8815]],["NotGreaterEqual",[8817]],["NotGreaterFullEqual",[8807,824]],["NotGreaterGreater",[8811,824]],["NotGreaterLess",[8825]],["NotGreaterSlantEqual",[10878,824]],["NotGreaterTilde",[8821]],["NotHumpDownHump",[8782,824]],["NotHumpEqual",[8783,824]],["notin",[8713]],["notindot",[8949,824]],["notinE",[8953,824]],["notinva",[8713]],["notinvb",[8951]],["notinvc",[8950]],["NotLeftTriangleBar",[10703,824]],["NotLeftTriangle",[8938]],["NotLeftTriangleEqual",[8940]],["NotLess",[8814]],["NotLessEqual",[8816]],["NotLessGreater",[8824]],["NotLessLess",[8810,824]],["NotLessSlantEqual",[10877,824]],["NotLessTilde",[8820]],["NotNestedGreaterGreater",[10914,824]],["NotNestedLessLess",[10913,824]],["notni",[8716]],["notniva",[8716]],["notnivb",[8958]],["notnivc",[8957]],["NotPrecedes",[8832]],["NotPrecedesEqual",[10927,824]],["NotPrecedesSlantEqual",[8928]],["NotReverseElement",[8716]],["NotRightTriangleBar",[10704,824]],["NotRightTriangle",[8939]],["NotRightTriangleEqual",[8941]],["NotSquareSubset",[8847,824]],["NotSquareSubsetEqual",[8930]],["NotSquareSuperset",[8848,824]],["NotSquareSupersetEqual",[8931]],["NotSubset",[8834,8402]],["NotSubsetEqual",[8840]],["NotSucceeds",[8833]],["NotSucceedsEqual",[10928,824]],["NotSucceedsSlantEqual",[8929]],["NotSucceedsTilde",[8831,824]],["NotSuperset",[8835,8402]],["NotSupersetEqual",[8841]],["NotTilde",[8769]],["NotTildeEqual",[8772]],["NotTildeFullEqual",[8775]],["NotTildeTilde",[8777]],["NotVerticalBar",[8740]],["nparallel",[8742]],["npar",[8742]],["nparsl",[11005,8421]],["npart",[8706,824]],["npolint",[10772]],["npr",[8832]],["nprcue",[8928]],["nprec",[8832]],["npreceq",[10927,824]],["npre",[10927,824]],["nrarrc",[10547,824]],["nrarr",[8603]],["nrArr",[8655]],["nrarrw",[8605,824]],["nrightarrow",[8603]],["nRightarrow",[8655]],["nrtri",[8939]],["nrtrie",[8941]],["nsc",[8833]],["nsccue",[8929]],["nsce",[10928,824]],["Nscr",[119977]],["nscr",[120003]],["nshortmid",[8740]],["nshortparallel",[8742]],["nsim",[8769]],["nsime",[8772]],["nsimeq",[8772]],["nsmid",[8740]],["nspar",[8742]],["nsqsube",[8930]],["nsqsupe",[8931]],["nsub",[8836]],["nsubE",[10949,824]],["nsube",[8840]],["nsubset",[8834,8402]],["nsubseteq",[8840]],["nsubseteqq",[10949,824]],["nsucc",[8833]],["nsucceq",[10928,824]],["nsup",[8837]],["nsupE",[10950,824]],["nsupe",[8841]],["nsupset",[8835,8402]],["nsupseteq",[8841]],["nsupseteqq",[10950,824]],["ntgl",[8825]],["Ntilde",[209]],["ntilde",[241]],["ntlg",[8824]],["ntriangleleft",[8938]],["ntrianglelefteq",[8940]],["ntriangleright",[8939]],["ntrianglerighteq",[8941]],["Nu",[925]],["nu",[957]],["num",[35]],["numero",[8470]],["numsp",[8199]],["nvap",[8781,8402]],["nvdash",[8876]],["nvDash",[8877]],["nVdash",[8878]],["nVDash",[8879]],["nvge",[8805,8402]],["nvgt",[62,8402]],["nvHarr",[10500]],["nvinfin",[10718]],["nvlArr",[10498]],["nvle",[8804,8402]],["nvlt",[60,8402]],["nvltrie",[8884,8402]],["nvrArr",[10499]],["nvrtrie",[8885,8402]],["nvsim",[8764,8402]],["nwarhk",[10531]],["nwarr",[8598]],["nwArr",[8662]],["nwarrow",[8598]],["nwnear",[10535]],["Oacute",[211]],["oacute",[243]],["oast",[8859]],["Ocirc",[212]],["ocirc",[244]],["ocir",[8858]],["Ocy",[1054]],["ocy",[1086]],["odash",[8861]],["Odblac",[336]],["odblac",[337]],["odiv",[10808]],["odot",[8857]],["odsold",[10684]],["OElig",[338]],["oelig",[339]],["ofcir",[10687]],["Ofr",[120082]],["ofr",[120108]],["ogon",[731]],["Ograve",[210]],["ograve",[242]],["ogt",[10689]],["ohbar",[10677]],["ohm",[937]],["oint",[8750]],["olarr",[8634]],["olcir",[10686]],["olcross",[10683]],["oline",[8254]],["olt",[10688]],["Omacr",[332]],["omacr",[333]],["Omega",[937]],["omega",[969]],["Omicron",[927]],["omicron",[959]],["omid",[10678]],["ominus",[8854]],["Oopf",[120134]],["oopf",[120160]],["opar",[10679]],["OpenCurlyDoubleQuote",[8220]],["OpenCurlyQuote",[8216]],["operp",[10681]],["oplus",[8853]],["orarr",[8635]],["Or",[10836]],["or",[8744]],["ord",[10845]],["order",[8500]],["orderof",[8500]],["ordf",[170]],["ordm",[186]],["origof",[8886]],["oror",[10838]],["orslope",[10839]],["orv",[10843]],["oS",[9416]],["Oscr",[119978]],["oscr",[8500]],["Oslash",[216]],["oslash",[248]],["osol",[8856]],["Otilde",[213]],["otilde",[245]],["otimesas",[10806]],["Otimes",[10807]],["otimes",[8855]],["Ouml",[214]],["ouml",[246]],["ovbar",[9021]],["OverBar",[8254]],["OverBrace",[9182]],["OverBracket",[9140]],["OverParenthesis",[9180]],["para",[182]],["parallel",[8741]],["par",[8741]],["parsim",[10995]],["parsl",[11005]],["part",[8706]],["PartialD",[8706]],["Pcy",[1055]],["pcy",[1087]],["percnt",[37]],["period",[46]],["permil",[8240]],["perp",[8869]],["pertenk",[8241]],["Pfr",[120083]],["pfr",[120109]],["Phi",[934]],["phi",[966]],["phiv",[981]],["phmmat",[8499]],["phone",[9742]],["Pi",[928]],["pi",[960]],["pitchfork",[8916]],["piv",[982]],["planck",[8463]],["planckh",[8462]],["plankv",[8463]],["plusacir",[10787]],["plusb",[8862]],["pluscir",[10786]],["plus",[43]],["plusdo",[8724]],["plusdu",[10789]],["pluse",[10866]],["PlusMinus",[177]],["plusmn",[177]],["plussim",[10790]],["plustwo",[10791]],["pm",[177]],["Poincareplane",[8460]],["pointint",[10773]],["popf",[120161]],["Popf",[8473]],["pound",[163]],["prap",[10935]],["Pr",[10939]],["pr",[8826]],["prcue",[8828]],["precapprox",[10935]],["prec",[8826]],["preccurlyeq",[8828]],["Precedes",[8826]],["PrecedesEqual",[10927]],["PrecedesSlantEqual",[8828]],["PrecedesTilde",[8830]],["preceq",[10927]],["precnapprox",[10937]],["precneqq",[10933]],["precnsim",[8936]],["pre",[10927]],["prE",[10931]],["precsim",[8830]],["prime",[8242]],["Prime",[8243]],["primes",[8473]],["prnap",[10937]],["prnE",[10933]],["prnsim",[8936]],["prod",[8719]],["Product",[8719]],["profalar",[9006]],["profline",[8978]],["profsurf",[8979]],["prop",[8733]],["Proportional",[8733]],["Proportion",[8759]],["propto",[8733]],["prsim",[8830]],["prurel",[8880]],["Pscr",[119979]],["pscr",[120005]],["Psi",[936]],["psi",[968]],["puncsp",[8200]],["Qfr",[120084]],["qfr",[120110]],["qint",[10764]],["qopf",[120162]],["Qopf",[8474]],["qprime",[8279]],["Qscr",[119980]],["qscr",[120006]],["quaternions",[8461]],["quatint",[10774]],["quest",[63]],["questeq",[8799]],["quot",[34]],["QUOT",[34]],["rAarr",[8667]],["race",[8765,817]],["Racute",[340]],["racute",[341]],["radic",[8730]],["raemptyv",[10675]],["rang",[10217]],["Rang",[10219]],["rangd",[10642]],["range",[10661]],["rangle",[10217]],["raquo",[187]],["rarrap",[10613]],["rarrb",[8677]],["rarrbfs",[10528]],["rarrc",[10547]],["rarr",[8594]],["Rarr",[8608]],["rArr",[8658]],["rarrfs",[10526]],["rarrhk",[8618]],["rarrlp",[8620]],["rarrpl",[10565]],["rarrsim",[10612]],["Rarrtl",[10518]],["rarrtl",[8611]],["rarrw",[8605]],["ratail",[10522]],["rAtail",[10524]],["ratio",[8758]],["rationals",[8474]],["rbarr",[10509]],["rBarr",[10511]],["RBarr",[10512]],["rbbrk",[10099]],["rbrace",[125]],["rbrack",[93]],["rbrke",[10636]],["rbrksld",[10638]],["rbrkslu",[10640]],["Rcaron",[344]],["rcaron",[345]],["Rcedil",[342]],["rcedil",[343]],["rceil",[8969]],["rcub",[125]],["Rcy",[1056]],["rcy",[1088]],["rdca",[10551]],["rdldhar",[10601]],["rdquo",[8221]],["rdquor",[8221]],["CloseCurlyDoubleQuote",[8221]],["rdsh",[8627]],["real",[8476]],["realine",[8475]],["realpart",[8476]],["reals",[8477]],["Re",[8476]],["rect",[9645]],["reg",[174]],["REG",[174]],["ReverseElement",[8715]],["ReverseEquilibrium",[8651]],["ReverseUpEquilibrium",[10607]],["rfisht",[10621]],["rfloor",[8971]],["rfr",[120111]],["Rfr",[8476]],["rHar",[10596]],["rhard",[8641]],["rharu",[8640]],["rharul",[10604]],["Rho",[929]],["rho",[961]],["rhov",[1009]],["RightAngleBracket",[10217]],["RightArrowBar",[8677]],["rightarrow",[8594]],["RightArrow",[8594]],["Rightarrow",[8658]],["RightArrowLeftArrow",[8644]],["rightarrowtail",[8611]],["RightCeiling",[8969]],["RightDoubleBracket",[10215]],["RightDownTeeVector",[10589]],["RightDownVectorBar",[10581]],["RightDownVector",[8642]],["RightFloor",[8971]],["rightharpoondown",[8641]],["rightharpoonup",[8640]],["rightleftarrows",[8644]],["rightleftharpoons",[8652]],["rightrightarrows",[8649]],["rightsquigarrow",[8605]],["RightTeeArrow",[8614]],["RightTee",[8866]],["RightTeeVector",[10587]],["rightthreetimes",[8908]],["RightTriangleBar",[10704]],["RightTriangle",[8883]],["RightTriangleEqual",[8885]],["RightUpDownVector",[10575]],["RightUpTeeVector",[10588]],["RightUpVectorBar",[10580]],["RightUpVector",[8638]],["RightVectorBar",[10579]],["RightVector",[8640]],["ring",[730]],["risingdotseq",[8787]],["rlarr",[8644]],["rlhar",[8652]],["rlm",[8207]],["rmoustache",[9137]],["rmoust",[9137]],["rnmid",[10990]],["roang",[10221]],["roarr",[8702]],["robrk",[10215]],["ropar",[10630]],["ropf",[120163]],["Ropf",[8477]],["roplus",[10798]],["rotimes",[10805]],["RoundImplies",[10608]],["rpar",[41]],["rpargt",[10644]],["rppolint",[10770]],["rrarr",[8649]],["Rrightarrow",[8667]],["rsaquo",[8250]],["rscr",[120007]],["Rscr",[8475]],["rsh",[8625]],["Rsh",[8625]],["rsqb",[93]],["rsquo",[8217]],["rsquor",[8217]],["CloseCurlyQuote",[8217]],["rthree",[8908]],["rtimes",[8906]],["rtri",[9657]],["rtrie",[8885]],["rtrif",[9656]],["rtriltri",[10702]],["RuleDelayed",[10740]],["ruluhar",[10600]],["rx",[8478]],["Sacute",[346]],["sacute",[347]],["sbquo",[8218]],["scap",[10936]],["Scaron",[352]],["scaron",[353]],["Sc",[10940]],["sc",[8827]],["sccue",[8829]],["sce",[10928]],["scE",[10932]],["Scedil",[350]],["scedil",[351]],["Scirc",[348]],["scirc",[349]],["scnap",[10938]],["scnE",[10934]],["scnsim",[8937]],["scpolint",[10771]],["scsim",[8831]],["Scy",[1057]],["scy",[1089]],["sdotb",[8865]],["sdot",[8901]],["sdote",[10854]],["searhk",[10533]],["searr",[8600]],["seArr",[8664]],["searrow",[8600]],["sect",[167]],["semi",[59]],["seswar",[10537]],["setminus",[8726]],["setmn",[8726]],["sext",[10038]],["Sfr",[120086]],["sfr",[120112]],["sfrown",[8994]],["sharp",[9839]],["SHCHcy",[1065]],["shchcy",[1097]],["SHcy",[1064]],["shcy",[1096]],["ShortDownArrow",[8595]],["ShortLeftArrow",[8592]],["shortmid",[8739]],["shortparallel",[8741]],["ShortRightArrow",[8594]],["ShortUpArrow",[8593]],["shy",[173]],["Sigma",[931]],["sigma",[963]],["sigmaf",[962]],["sigmav",[962]],["sim",[8764]],["simdot",[10858]],["sime",[8771]],["simeq",[8771]],["simg",[10910]],["simgE",[10912]],["siml",[10909]],["simlE",[10911]],["simne",[8774]],["simplus",[10788]],["simrarr",[10610]],["slarr",[8592]],["SmallCircle",[8728]],["smallsetminus",[8726]],["smashp",[10803]],["smeparsl",[10724]],["smid",[8739]],["smile",[8995]],["smt",[10922]],["smte",[10924]],["smtes",[10924,65024]],["SOFTcy",[1068]],["softcy",[1100]],["solbar",[9023]],["solb",[10692]],["sol",[47]],["Sopf",[120138]],["sopf",[120164]],["spades",[9824]],["spadesuit",[9824]],["spar",[8741]],["sqcap",[8851]],["sqcaps",[8851,65024]],["sqcup",[8852]],["sqcups",[8852,65024]],["Sqrt",[8730]],["sqsub",[8847]],["sqsube",[8849]],["sqsubset",[8847]],["sqsubseteq",[8849]],["sqsup",[8848]],["sqsupe",[8850]],["sqsupset",[8848]],["sqsupseteq",[8850]],["square",[9633]],["Square",[9633]],["SquareIntersection",[8851]],["SquareSubset",[8847]],["SquareSubsetEqual",[8849]],["SquareSuperset",[8848]],["SquareSupersetEqual",[8850]],["SquareUnion",[8852]],["squarf",[9642]],["squ",[9633]],["squf",[9642]],["srarr",[8594]],["Sscr",[119982]],["sscr",[120008]],["ssetmn",[8726]],["ssmile",[8995]],["sstarf",[8902]],["Star",[8902]],["star",[9734]],["starf",[9733]],["straightepsilon",[1013]],["straightphi",[981]],["strns",[175]],["sub",[8834]],["Sub",[8912]],["subdot",[10941]],["subE",[10949]],["sube",[8838]],["subedot",[10947]],["submult",[10945]],["subnE",[10955]],["subne",[8842]],["subplus",[10943]],["subrarr",[10617]],["subset",[8834]],["Subset",[8912]],["subseteq",[8838]],["subseteqq",[10949]],["SubsetEqual",[8838]],["subsetneq",[8842]],["subsetneqq",[10955]],["subsim",[10951]],["subsub",[10965]],["subsup",[10963]],["succapprox",[10936]],["succ",[8827]],["succcurlyeq",[8829]],["Succeeds",[8827]],["SucceedsEqual",[10928]],["SucceedsSlantEqual",[8829]],["SucceedsTilde",[8831]],["succeq",[10928]],["succnapprox",[10938]],["succneqq",[10934]],["succnsim",[8937]],["succsim",[8831]],["SuchThat",[8715]],["sum",[8721]],["Sum",[8721]],["sung",[9834]],["sup1",[185]],["sup2",[178]],["sup3",[179]],["sup",[8835]],["Sup",[8913]],["supdot",[10942]],["supdsub",[10968]],["supE",[10950]],["supe",[8839]],["supedot",[10948]],["Superset",[8835]],["SupersetEqual",[8839]],["suphsol",[10185]],["suphsub",[10967]],["suplarr",[10619]],["supmult",[10946]],["supnE",[10956]],["supne",[8843]],["supplus",[10944]],["supset",[8835]],["Supset",[8913]],["supseteq",[8839]],["supseteqq",[10950]],["supsetneq",[8843]],["supsetneqq",[10956]],["supsim",[10952]],["supsub",[10964]],["supsup",[10966]],["swarhk",[10534]],["swarr",[8601]],["swArr",[8665]],["swarrow",[8601]],["swnwar",[10538]],["szlig",[223]],["Tab",[9]],["target",[8982]],["Tau",[932]],["tau",[964]],["tbrk",[9140]],["Tcaron",[356]],["tcaron",[357]],["Tcedil",[354]],["tcedil",[355]],["Tcy",[1058]],["tcy",[1090]],["tdot",[8411]],["telrec",[8981]],["Tfr",[120087]],["tfr",[120113]],["there4",[8756]],["therefore",[8756]],["Therefore",[8756]],["Theta",[920]],["theta",[952]],["thetasym",[977]],["thetav",[977]],["thickapprox",[8776]],["thicksim",[8764]],["ThickSpace",[8287,8202]],["ThinSpace",[8201]],["thinsp",[8201]],["thkap",[8776]],["thksim",[8764]],["THORN",[222]],["thorn",[254]],["tilde",[732]],["Tilde",[8764]],["TildeEqual",[8771]],["TildeFullEqual",[8773]],["TildeTilde",[8776]],["timesbar",[10801]],["timesb",[8864]],["times",[215]],["timesd",[10800]],["tint",[8749]],["toea",[10536]],["topbot",[9014]],["topcir",[10993]],["top",[8868]],["Topf",[120139]],["topf",[120165]],["topfork",[10970]],["tosa",[10537]],["tprime",[8244]],["trade",[8482]],["TRADE",[8482]],["triangle",[9653]],["triangledown",[9663]],["triangleleft",[9667]],["trianglelefteq",[8884]],["triangleq",[8796]],["triangleright",[9657]],["trianglerighteq",[8885]],["tridot",[9708]],["trie",[8796]],["triminus",[10810]],["TripleDot",[8411]],["triplus",[10809]],["trisb",[10701]],["tritime",[10811]],["trpezium",[9186]],["Tscr",[119983]],["tscr",[120009]],["TScy",[1062]],["tscy",[1094]],["TSHcy",[1035]],["tshcy",[1115]],["Tstrok",[358]],["tstrok",[359]],["twixt",[8812]],["twoheadleftarrow",[8606]],["twoheadrightarrow",[8608]],["Uacute",[218]],["uacute",[250]],["uarr",[8593]],["Uarr",[8607]],["uArr",[8657]],["Uarrocir",[10569]],["Ubrcy",[1038]],["ubrcy",[1118]],["Ubreve",[364]],["ubreve",[365]],["Ucirc",[219]],["ucirc",[251]],["Ucy",[1059]],["ucy",[1091]],["udarr",[8645]],["Udblac",[368]],["udblac",[369]],["udhar",[10606]],["ufisht",[10622]],["Ufr",[120088]],["ufr",[120114]],["Ugrave",[217]],["ugrave",[249]],["uHar",[10595]],["uharl",[8639]],["uharr",[8638]],["uhblk",[9600]],["ulcorn",[8988]],["ulcorner",[8988]],["ulcrop",[8975]],["ultri",[9720]],["Umacr",[362]],["umacr",[363]],["uml",[168]],["UnderBar",[95]],["UnderBrace",[9183]],["UnderBracket",[9141]],["UnderParenthesis",[9181]],["Union",[8899]],["UnionPlus",[8846]],["Uogon",[370]],["uogon",[371]],["Uopf",[120140]],["uopf",[120166]],["UpArrowBar",[10514]],["uparrow",[8593]],["UpArrow",[8593]],["Uparrow",[8657]],["UpArrowDownArrow",[8645]],["updownarrow",[8597]],["UpDownArrow",[8597]],["Updownarrow",[8661]],["UpEquilibrium",[10606]],["upharpoonleft",[8639]],["upharpoonright",[8638]],["uplus",[8846]],["UpperLeftArrow",[8598]],["UpperRightArrow",[8599]],["upsi",[965]],["Upsi",[978]],["upsih",[978]],["Upsilon",[933]],["upsilon",[965]],["UpTeeArrow",[8613]],["UpTee",[8869]],["upuparrows",[8648]],["urcorn",[8989]],["urcorner",[8989]],["urcrop",[8974]],["Uring",[366]],["uring",[367]],["urtri",[9721]],["Uscr",[119984]],["uscr",[120010]],["utdot",[8944]],["Utilde",[360]],["utilde",[361]],["utri",[9653]],["utrif",[9652]],["uuarr",[8648]],["Uuml",[220]],["uuml",[252]],["uwangle",[10663]],["vangrt",[10652]],["varepsilon",[1013]],["varkappa",[1008]],["varnothing",[8709]],["varphi",[981]],["varpi",[982]],["varpropto",[8733]],["varr",[8597]],["vArr",[8661]],["varrho",[1009]],["varsigma",[962]],["varsubsetneq",[8842,65024]],["varsubsetneqq",[10955,65024]],["varsupsetneq",[8843,65024]],["varsupsetneqq",[10956,65024]],["vartheta",[977]],["vartriangleleft",[8882]],["vartriangleright",[8883]],["vBar",[10984]],["Vbar",[10987]],["vBarv",[10985]],["Vcy",[1042]],["vcy",[1074]],["vdash",[8866]],["vDash",[8872]],["Vdash",[8873]],["VDash",[8875]],["Vdashl",[10982]],["veebar",[8891]],["vee",[8744]],["Vee",[8897]],["veeeq",[8794]],["vellip",[8942]],["verbar",[124]],["Verbar",[8214]],["vert",[124]],["Vert",[8214]],["VerticalBar",[8739]],["VerticalLine",[124]],["VerticalSeparator",[10072]],["VerticalTilde",[8768]],["VeryThinSpace",[8202]],["Vfr",[120089]],["vfr",[120115]],["vltri",[8882]],["vnsub",[8834,8402]],["vnsup",[8835,8402]],["Vopf",[120141]],["vopf",[120167]],["vprop",[8733]],["vrtri",[8883]],["Vscr",[119985]],["vscr",[120011]],["vsubnE",[10955,65024]],["vsubne",[8842,65024]],["vsupnE",[10956,65024]],["vsupne",[8843,65024]],["Vvdash",[8874]],["vzigzag",[10650]],["Wcirc",[372]],["wcirc",[373]],["wedbar",[10847]],["wedge",[8743]],["Wedge",[8896]],["wedgeq",[8793]],["weierp",[8472]],["Wfr",[120090]],["wfr",[120116]],["Wopf",[120142]],["wopf",[120168]],["wp",[8472]],["wr",[8768]],["wreath",[8768]],["Wscr",[119986]],["wscr",[120012]],["xcap",[8898]],["xcirc",[9711]],["xcup",[8899]],["xdtri",[9661]],["Xfr",[120091]],["xfr",[120117]],["xharr",[10231]],["xhArr",[10234]],["Xi",[926]],["xi",[958]],["xlarr",[10229]],["xlArr",[10232]],["xmap",[10236]],["xnis",[8955]],["xodot",[10752]],["Xopf",[120143]],["xopf",[120169]],["xoplus",[10753]],["xotime",[10754]],["xrarr",[10230]],["xrArr",[10233]],["Xscr",[119987]],["xscr",[120013]],["xsqcup",[10758]],["xuplus",[10756]],["xutri",[9651]],["xvee",[8897]],["xwedge",[8896]],["Yacute",[221]],["yacute",[253]],["YAcy",[1071]],["yacy",[1103]],["Ycirc",[374]],["ycirc",[375]],["Ycy",[1067]],["ycy",[1099]],["yen",[165]],["Yfr",[120092]],["yfr",[120118]],["YIcy",[1031]],["yicy",[1111]],["Yopf",[120144]],["yopf",[120170]],["Yscr",[119988]],["yscr",[120014]],["YUcy",[1070]],["yucy",[1102]],["yuml",[255]],["Yuml",[376]],["Zacute",[377]],["zacute",[378]],["Zcaron",[381]],["zcaron",[382]],["Zcy",[1047]],["zcy",[1079]],["Zdot",[379]],["zdot",[380]],["zeetrf",[8488]],["ZeroWidthSpace",[8203]],["Zeta",[918]],["zeta",[950]],["zfr",[120119]],["Zfr",[8488]],["ZHcy",[1046]],["zhcy",[1078]],["zigrarr",[8669]],["zopf",[120171]],["Zopf",[8484]],["Zscr",[119989]],["zscr",[120015]],["zwj",[8205]],["zwnj",[8204]]],a={},o={};!function(e,t){var n=r.length;for(;n--;){var a=r[n],o=a[0],i=a[1],c=i[0],s=c<32||c>126||62===c||60===c||38===c||34===c||39===c,l=void 0;if(s&&(l=t[c]=t[c]||{}),i[1]){var u=i[1];e[o]=String.fromCharCode(c)+String.fromCharCode(u),s&&(l[u]=o)}else e[o]=String.fromCharCode(c),s&&(l[""]=o)}}(a,o);var i=function(){function e(){}return e.prototype.decode=function(e){return e&&e.length?e.replace(/&(#?[\w\d]+);?/g,(function(e,t){var n;if("#"===t.charAt(0)){var r="x"===t.charAt(1)?parseInt(t.substr(2).toLowerCase(),16):parseInt(t.substr(1));isNaN(r)||r<-32768||r>65535||(n=String.fromCharCode(r))}else n=a[t];return n||e})):""},e.decode=function(t){return(new e).decode(t)},e.prototype.encode=function(e){if(!e||!e.length)return"";for(var t=e.length,n="",r=0;r<t;){var a=o[e.charCodeAt(r)];if(a){var i=a[e.charCodeAt(r+1)];if(i?r++:i=a[""],i){n+="&"+i+";",r++;continue}}n+=e.charAt(r),r++}return n},e.encode=function(t){return(new e).encode(t)},e.prototype.encodeNonUTF=function(e){if(!e||!e.length)return"";for(var t=e.length,n="",r=0;r<t;){var a=e.charCodeAt(r),i=o[a];if(i){var c=i[e.charCodeAt(r+1)];if(c?r++:c=i[""],c){n+="&"+c+";",r++;continue}}n+=a<32||a>126?"&#"+a+";":e.charAt(r),r++}return n},e.encodeNonUTF=function(t){return(new e).encodeNonUTF(t)},e.prototype.encodeNonASCII=function(e){if(!e||!e.length)return"";for(var t=e.length,n="",r=0;r<t;){var a=e.charCodeAt(r);a<=255?n+=e[r++]:(n+="&#"+a+";",r++)}return n},e.encodeNonASCII=function(t){return(new e).encodeNonASCII(t)},e}();t.Html5Entities=i},function(e,t,n){"use strict";n.r(t);var r=n(253),a=n.n(r),o=n(254),i=n.n(o),c=n(80),s=n.n(c),l=n(0),u=n.n(l),d=n(7),f=n.n(d),h=n(43),m=n.n(h),p=n(16);function v(e,t){return function(){return t.call(this,e.apply(this,arguments))}}var _=n(4),y=n(3),M=n(5);function g(e){return function t(n,r,a){switch(arguments.length){case 0:return t;case 1:return Object(M.a)(n)?t:Object(y.a)((function(t,r){return e(n,t,r)}));case 2:return Object(M.a)(n)&&Object(M.a)(r)?t:Object(M.a)(n)?Object(y.a)((function(t,n){return e(t,r,n)})):Object(M.a)(r)?Object(y.a)((function(t,r){return e(n,t,r)})):Object(_.a)((function(t){return e(n,r,t)}));default:return Object(M.a)(n)&&Object(M.a)(r)&&Object(M.a)(a)?t:Object(M.a)(n)&&Object(M.a)(r)?Object(y.a)((function(t,n){return e(t,n,a)})):Object(M.a)(n)&&Object(M.a)(a)?Object(y.a)((function(t,n){return e(t,r,n)})):Object(M.a)(r)&&Object(M.a)(a)?Object(y.a)((function(t,r){return e(n,t,r)})):Object(M.a)(n)?Object(_.a)((function(t){return e(t,r,a)})):Object(M.a)(r)?Object(_.a)((function(t){return e(n,t,a)})):Object(M.a)(a)?Object(_.a)((function(t){return e(n,r,t)})):e(n,r,a)}}}var b=Array.isArray||function(e){return null!=e&&e.length>=0&&"[object Array]"===Object.prototype.toString.call(e)};function L(e){return"[object String]"===Object.prototype.toString.call(e)}var z=Object(_.a)((function(e){return!!b(e)||!!e&&("object"==typeof e&&(!L(e)&&(1===e.nodeType?!!e.length:0===e.length||e.length>0&&(e.hasOwnProperty(0)&&e.hasOwnProperty(e.length-1)))))})),w=function(){function e(e){this.f=e}return e.prototype["@@transducer/init"]=function(){throw new Error("init not implemented on XWrap")},e.prototype["@@transducer/result"]=function(e){return e},e.prototype["@@transducer/step"]=function(e,t){return this.f(e,t)},e}();var k=Object(y.a)((function(e,t){return Object(p.a)(e.length,(function(){return e.apply(t,arguments)}))}));function H(e,t,n){for(var r=n.next();!r.done;){if((t=e["@@transducer/step"](t,r.value))&&t["@@transducer/reduced"]){t=t["@@transducer/value"];break}r=n.next()}return e["@@transducer/result"](t)}function T(e,t,n,r){return e["@@transducer/result"](n[r](k(e["@@transducer/step"],e),t))}var Y="undefined"!=typeof Symbol?Symbol.iterator:"@@iterator";function S(e,t,n){if("function"==typeof e&&(e=function(e){return new w(e)}(e)),z(n))return function(e,t,n){for(var r=0,a=n.length;r<a;){if((t=e["@@transducer/step"](t,n[r]))&&t["@@transducer/reduced"]){t=t["@@transducer/value"];break}r+=1}return e["@@transducer/result"](t)}(e,t,n);if("function"==typeof n["fantasy-land/reduce"])return T(e,t,n,"fantasy-land/reduce");if(null!=n[Y])return H(e,t,n[Y]());if("function"==typeof n.next)return H(e,t,n);if("function"==typeof n.reduce)return T(e,t,n,"reduce");throw new TypeError("reduce: list must be array or iterable")}var D=g(S);function O(e,t){return function(){var n=arguments.length;if(0===n)return t();var r=arguments[n-1];return b(r)||"function"!=typeof r[e]?t.apply(this,arguments):r[e].apply(r,Array.prototype.slice.call(arguments,0,n-1))}}var x=g(O("slice",(function(e,t,n){return Array.prototype.slice.call(n,e,t)}))),C=Object(_.a)(O("tail",x(1,1/0)));function V(){if(0===arguments.length)throw new Error("pipe requires at least one argument");return Object(p.a)(arguments[0].length,D(v,arguments[0],C(arguments)))}var j=Number.isInteger||function(e){return e<<0===e},E=Object(y.a)((function(e,t){var n=e<0?t.length+e:e;return L(t)?t.charAt(n):t[n]})),P=Object(y.a)((function(e,t){return e.map((function(e){for(var n,r=t,a=0;a<e.length;){if(null==r)return;n=e[a],r=j(n)?E(n,r):r[n],a+=1}return r}))})),A=Object(y.a)((function(e,t){return P([e],t)[0]}));function N(e){return null!=e&&"function"==typeof e["@@transducer/step"]}function F(e,t,n){return function(){if(0===arguments.length)return n();var r=Array.prototype.slice.call(arguments,0),a=r.pop();if(!b(a)){for(var o=0;o<e.length;){if("function"==typeof a[e[o]])return a[e[o]].apply(a,r);o+=1}if(N(a)){var i=t.apply(null,r);return i(a)}}return n.apply(this,arguments)}}function R(e,t){for(var n=0,r=t.length,a=Array(r);n<r;)a[n]=e(t[n]),n+=1;return a}var W=function(){return this.xf["@@transducer/init"]()},I=function(e){return this.xf["@@transducer/result"](e)},q=function(){function e(e,t){this.xf=t,this.f=e}return e.prototype["@@transducer/init"]=W,e.prototype["@@transducer/result"]=I,e.prototype["@@transducer/step"]=function(e,t){return this.xf["@@transducer/step"](e,this.f(t))},e}(),U=Object(y.a)((function(e,t){return new q(e,t)})),B=n(15);function J(e,t){return Object.prototype.hasOwnProperty.call(t,e)}var G=Object.prototype.toString,K=function(){return"[object Arguments]"===G.call(arguments)?function(e){return"[object Arguments]"===G.call(e)}:function(e){return J("callee",e)}}(),$=!{toString:null}.propertyIsEnumerable("toString"),Q=["constructor","valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],X=function(){return arguments.propertyIsEnumerable("length")}(),Z=function(e,t){for(var n=0;n<e.length;){if(e[n]===t)return!0;n+=1}return!1},ee="function"!=typeof Object.keys||X?Object(_.a)((function(e){if(Object(e)!==e)return[];var t,n,r=[],a=X&&K(e);for(t in e)!J(t,e)||a&&"length"===t||(r[r.length]=t);if($)for(n=Q.length-1;n>=0;)J(t=Q[n],e)&&!Z(r,t)&&(r[r.length]=t),n-=1;return r})):Object(_.a)((function(e){return Object(e)!==e?[]:Object.keys(e)})),te=Object(y.a)(F(["fantasy-land/map","map"],U,(function(e,t){switch(Object.prototype.toString.call(t)){case"[object Function]":return Object(B.a)(t.length,(function(){return e.call(this,t.apply(this,arguments))}));case"[object Object]":return S((function(n,r){return n[r]=e(t[r]),n}),{},ee(t));default:return R(e,t)}}))),ne=Object(y.a)((function(e,t){return A([e],t)})),re=Object(y.a)((function(e,t){return te(ne(e),t)}));function ae(e){return e}var oe=Object(_.a)(ae);function ie(e){for(var t,n=[];!(t=e.next()).done;)n.push(t.value);return n}function ce(e,t,n){for(var r=0,a=n.length;r<a;){if(e(t,n[r]))return!0;r+=1}return!1}var se="function"==typeof Object.is?Object.is:function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t},le=Object(_.a)((function(e){return null===e?"Null":void 0===e?"Undefined":Object.prototype.toString.call(e).slice(8,-1)}));function ue(e,t,n,r){var a=ie(e);function o(e,t){return de(e,t,n.slice(),r.slice())}return!ce((function(e,t){return!ce(o,t,e)}),ie(t),a)}function de(e,t,n,r){if(se(e,t))return!0;var a,o,i=le(e);if(i!==le(t))return!1;if(null==e||null==t)return!1;if("function"==typeof e["fantasy-land/equals"]||"function"==typeof t["fantasy-land/equals"])return"function"==typeof e["fantasy-land/equals"]&&e["fantasy-land/equals"](t)&&"function"==typeof t["fantasy-land/equals"]&&t["fantasy-land/equals"](e);if("function"==typeof e.equals||"function"==typeof t.equals)return"function"==typeof e.equals&&e.equals(t)&&"function"==typeof t.equals&&t.equals(e);switch(i){case"Arguments":case"Array":case"Object":if("function"==typeof e.constructor&&"Promise"===(a=e.constructor,null==(o=String(a).match(/^function (\w*)/))?"":o[1]))return e===t;break;case"Boolean":case"Number":case"String":if(typeof e!=typeof t||!se(e.valueOf(),t.valueOf()))return!1;break;case"Date":if(!se(e.valueOf(),t.valueOf()))return!1;break;case"Error":return e.name===t.name&&e.message===t.message;case"RegExp":if(e.source!==t.source||e.global!==t.global||e.ignoreCase!==t.ignoreCase||e.multiline!==t.multiline||e.sticky!==t.sticky||e.unicode!==t.unicode)return!1}for(var c=n.length-1;c>=0;){if(n[c]===e)return r[c]===t;c-=1}switch(i){case"Map":return e.size===t.size&&ue(e.entries(),t.entries(),n.concat([e]),r.concat([t]));case"Set":return e.size===t.size&&ue(e.values(),t.values(),n.concat([e]),r.concat([t]));case"Arguments":case"Array":case"Object":case"Boolean":case"Number":case"String":case"Date":case"Error":case"RegExp":case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float32Array":case"Float64Array":case"ArrayBuffer":break;default:return!1}var s=ee(e);if(s.length!==ee(t).length)return!1;var l=n.concat([e]),u=r.concat([t]);for(c=s.length-1;c>=0;){var d=s[c];if(!J(d,t)||!de(t[d],e[d],l,u))return!1;c-=1}return!0}var fe=Object(y.a)((function(e,t){return de(e,t,[],[])}));function he(e,t,n){var r,a;if("function"==typeof e.indexOf)switch(typeof t){case"number":if(0===t){for(r=1/t;n<e.length;){if(0===(a=e[n])&&1/a===r)return n;n+=1}return-1}if(t!=t){for(;n<e.length;){if("number"==typeof(a=e[n])&&a!=a)return n;n+=1}return-1}return e.indexOf(t,n);case"string":case"boolean":case"function":case"undefined":return e.indexOf(t,n);case"object":if(null===t)return e.indexOf(t,n)}for(;n<e.length;){if(fe(e[n],t))return n;n+=1}return-1}function me(e,t){return he(t,e,0)>=0}function pe(e,t,n){var r,a=typeof e;switch(a){case"string":case"number":return 0===e&&1/e==-1/0?!!n._items["-0"]||(t&&(n._items["-0"]=!0),!1):null!==n._nativeSet?t?(r=n._nativeSet.size,n._nativeSet.add(e),n._nativeSet.size===r):n._nativeSet.has(e):a in n._items?e in n._items[a]||(t&&(n._items[a][e]=!0),!1):(t&&(n._items[a]={},n._items[a][e]=!0),!1);case"boolean":if(a in n._items){var o=e?1:0;return!!n._items[a][o]||(t&&(n._items[a][o]=!0),!1)}return t&&(n._items[a]=e?[!1,!0]:[!0,!1]),!1;case"function":return null!==n._nativeSet?t?(r=n._nativeSet.size,n._nativeSet.add(e),n._nativeSet.size===r):n._nativeSet.has(e):a in n._items?!!me(e,n._items[a])||(t&&n._items[a].push(e),!1):(t&&(n._items[a]=[e]),!1);case"undefined":return!!n._items[a]||(t&&(n._items[a]=!0),!1);case"object":if(null===e)return!!n._items.null||(t&&(n._items.null=!0),!1);default:return(a=Object.prototype.toString.call(e))in n._items?!!me(e,n._items[a])||(t&&n._items[a].push(e),!1):(t&&(n._items[a]=[e]),!1)}}var ve=function(){function e(){this._nativeSet="function"==typeof Set?new Set:null,this._items={}}return e.prototype.add=function(e){return!pe(e,!0,this)},e.prototype.has=function(e){return pe(e,!1,this)},e}(),_e=Object(y.a)((function(e,t){for(var n,r,a=new ve,o=[],i=0;i<t.length;)n=e(r=t[i]),a.add(n)&&o.push(r),i+=1;return o}))(oe);var ye=function(){function e(e,t){this.xf=t,this.f=e}return e.prototype["@@transducer/init"]=W,e.prototype["@@transducer/result"]=I,e.prototype["@@transducer/step"]=function(e,t){return this.f(t)?this.xf["@@transducer/step"](e,t):e},e}(),Me=Object(y.a)((function(e,t){return new ye(e,t)})),ge=Object(y.a)(F(["filter"],Me,(function(e,t){return n=t,"[object Object]"===Object.prototype.toString.call(n)?S((function(n,r){return e(t[r])&&(n[r]=t[r]),n}),{},ee(t)):function(e,t){for(var n=0,r=t.length,a=[];n<r;)e(t[n])&&(a[a.length]=t[n]),n+=1;return a}(e,t);var n}))),be=Object(y.a)((function(e,t){return ge((n=e,function(){return!n.apply(this,arguments)}),t);var n})),Le=n(13),ze=n.n(Le),we=n(38),ke=n.n(we),He=n(79),Te=n.n(He),Ye=(n(296),n(267)),Se=n.n(Ye),De=(n(297),n(255)),Oe=function(e,t){return"undefined"!=typeof wp&&wp.i18n?wp.i18n.__(e,t):e},xe=Object(y.a)((function(e,t){return null==t||t!=t?e:t})),Ce=g((function(e,t,n){return xe(e,A(t,n))})),Ve=g((function(e,t,n){return Object(B.a)(Math.max(e.length,t.length,n.length),(function(){return e.apply(this,arguments)?t.apply(this,arguments):n.apply(this,arguments)}))})),je=Object(y.a)((function(e,t){return t>e?t:e})),Ee=Object(_.a)((function(e){return Object(B.a)(D(je,0,re("length",e)),(function(){for(var t=0,n=e.length;t<n;){if(!e[t].apply(this,arguments))return!1;t+=1}return!0}))})),Pe=g((function(e,t,n){return fe(t,n[e])})),Ae=Object(y.a)(O("forEach",(function(e,t){for(var n=t.length,r=0;r<n;)e(t[r]),r+=1;return t}))),Ne=n(56),Fe=n.n(Ne),Re=n(44),We=n.n(Re),Ie=n(20),qe=n.n(Ie),Ue=(n(93),n(94),n(21)),Be=n(82),Je=function(){return Math.random().toString(36).substring(7).split("").join(".")},Ge={INIT:"@@redux/INIT"+Je(),REPLACE:"@@redux/REPLACE"+Je(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+Je()}};function Ke(e){if("object"!=typeof e||null===e)return!1;for(var t=e;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function $e(e,t,n){var r;if("function"==typeof t&&"function"==typeof n||"function"==typeof n&&"function"==typeof arguments[3])throw new Error("It looks like you are passing several store enhancers to createStore(). This is not supported. Instead, compose them together to a single function.");if("function"==typeof t&&void 0===n&&(n=t,t=void 0),void 0!==n){if("function"!=typeof n)throw new Error("Expected the enhancer to be a function.");return n($e)(e,t)}if("function"!=typeof e)throw new Error("Expected the reducer to be a function.");var a=e,o=t,i=[],c=i,s=!1;function l(){c===i&&(c=i.slice())}function u(){if(s)throw new Error("You may not call store.getState() while the reducer is executing. The reducer has already received the state as an argument. Pass it down from the top reducer instead of reading it from the store.");return o}function d(e){if("function"!=typeof e)throw new Error("Expected the listener to be a function.");if(s)throw new Error("You may not call store.subscribe() while the reducer is executing. If you would like to be notified after the store has been updated, subscribe from a component and invoke store.getState() in the callback to access the latest state. See https://redux.js.org/api-reference/store#subscribelistener for more details.");var t=!0;return l(),c.push(e),function(){if(t){if(s)throw new Error("You may not unsubscribe from a store listener while the reducer is executing. See https://redux.js.org/api-reference/store#subscribelistener for more details.");t=!1,l();var n=c.indexOf(e);c.splice(n,1),i=null}}}function f(e){if(!Ke(e))throw new Error("Actions must be plain objects. Use custom middleware for async actions.");if(void 0===e.type)throw new Error('Actions may not have an undefined "type" property. Have you misspelled a constant?');if(s)throw new Error("Reducers may not dispatch actions.");try{s=!0,o=a(o,e)}finally{s=!1}for(var t=i=c,n=0;n<t.length;n++){(0,t[n])()}return e}function h(e){if("function"!=typeof e)throw new Error("Expected the nextReducer to be a function.");a=e,f({type:Ge.REPLACE})}function m(){var e,t=d;return(e={subscribe:function(e){if("object"!=typeof e||null===e)throw new TypeError("Expected the observer to be an object.");function n(){e.next&&e.next(u())}return n(),{unsubscribe:t(n)}}})[Be.a]=function(){return this},e}return f({type:Ge.INIT}),(r={dispatch:f,subscribe:d,getState:u,replaceReducer:h})[Be.a]=m,r}function Qe(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Xe(e,t){var n=Object.keys(e);return Object.getOwnPropertySymbols&&n.push.apply(n,Object.getOwnPropertySymbols(e)),t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n}function Ze(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Xe(n,!0).forEach((function(t){Qe(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Xe(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function et(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return 0===t.length?function(e){return e}:1===t.length?t[0]:t.reduce((function(e,t){return function(){return e(t.apply(void 0,arguments))}}))}function tt(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(e){return function(){var n=e.apply(void 0,arguments),r=function(){throw new Error("Dispatching while constructing your middleware is not allowed. Other middleware would not be applied to this dispatch.")},a={getState:n.getState,dispatch:function(){return r.apply(void 0,arguments)}},o=t.map((function(e){return e(a)}));return Ze({},n,{dispatch:r=et.apply(void 0,o)(n.dispatch)})}}}function nt(e){return function(t){var n=t.dispatch,r=t.getState;return function(t){return function(a){return"function"==typeof a?a(n,r,e):t(a)}}}}var rt=nt();rt.withExtraArgument=nt;var at=rt,ot=n(81),it=n.n(ot); /*! * is-plain-object <https://github.com/jonschlinkert/is-plain-object> * * Copyright (c) 2014-2017, Jon Schlinkert. * Released under the MIT License. */ function ct(e){return!0==(null!=(t=e)&&"object"==typeof t&&!1===Array.isArray(t))&&"[object Object]"===Object.prototype.toString.call(e); /*! * isobject <https://github.com/jonschlinkert/isobject> * * Copyright (c) 2014-2017, Jon Schlinkert. * Released under the MIT License. */ var t}function st(e){var t,n;return!1!==ct(e)&&("function"==typeof(t=e.constructor)&&(!1!==ct(n=t.prototype)&&!1!==n.hasOwnProperty("isPrototypeOf")))}var lt=n(257),ut=n.n(lt),dt=Object(l.createContext)(),ft="undefined"!=typeof window?l.useLayoutEffect:l.useEffect;function ht(e){return function(t,n){var r=Object(l.useContext)(e),a=Object(l.useRef)(t),o=Object(l.useRef)(),i=Object(l.useRef)(!0),c=Object(l.useRef)(),s=Object(l.useReducer)((function(e){return e+1}),0)[1];if(c.current||a.current!==t||void 0===o.current)try{o.current=t(r.getState())}catch(e){throw c.current||e}return ft((function(){a.current=t,c.current=void 0})),ft((function(){var e=function(){try{var e=a.current(r.getState());if("function"==typeof n?n(o.current,e):o.current===e)return;o.current=e}catch(e){c.current=e}i.current&&s({})},t=r.subscribe(e);return e(),function(){i.current=!1,t()}}),[]),o.current}}var mt=ht(dt);function pt(e){return function(t){return t(Object(l.useContext)(e).getActions())}}var vt=pt(dt);function _t(e){return function(){return Object(l.useContext)(e).dispatch}}_t(dt);function yt(e){return function(){var t=Object(l.useContext)(e),n=Object(l.useState)(!1),r=n[0],a=n[1];return Object(l.useEffect)((function(){t.persist.resolveRehydration().then((function(){return a(!0)}))}),[]),r}}yt(dt);function Mt(){return(Mt=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var gt=function(e){return e.a={},e},bt=function(e){return function e(t){var n=Object.keys(t).reduce((function(e,n){return null==Object.getOwnPropertyDescriptor(t,n).get&&(e[n]=t[n]),e}),{});return Object.keys(n).forEach((function(t){st(n[t])&&(n[t]=e(n[t]))})),n}(e)},Lt=function(e){return null!=e&&"object"==typeof e&&"function"==typeof e.then};function zt(e,t){return e.reduce((function(e,t){return st(e)?e[t]:void 0}),t)}var wt=function(e,t,n){0!==e.length?e.reduce((function(t,r,a){return a+1===e.length?t[r]=n:t[r]=t[r]||{},t[r]}),t):"object"==typeof n&&(Object.keys(t).forEach((function(e){delete t[e]})),Object.keys(n).forEach((function(e){t[e]=n[e]})))};function kt(e){return void 0===e&&(e=!1),function(t,n,r){if(e){var a=zt(t,n),o=r(a);return a!==o?function e(t,n,r){if(0===t.length)return r;var a=Mt({},n),o=t[0];return 1===t.length?a[o]=r:a[o]=e(t.slice(1),a[o],r),a}(t,n,o):n}if(0===t.length){var i=Object(Ue.a)(n),c=r(i);return c?Object(Ue.c)(c)?Object(Ue.b)(c):c:Object(Ue.b)(i)}var s=t.slice(0,t.length-1),l=Object(Ue.a)(n),u=zt(s,n),d=r(zt(t,l));return d&&(u[t[t.length-1]]=d),Object(Ue.b)(l)}}function Ht(e,t,n,r){var a=kt(e),o=function(e,n){var r=t[n.type];return r?function(e,t,n,r){return a(r,e,(function(e){return n(e,t.payload)}))}(e,n,r,(r.a||r.aO).parent):e};return function(e,t){var i=o(e,t),c=n.length>0?function(e,t){return n.reduce((function(e,n){var r=n.parentPath,o=n.key,i=n.reducer;return a(r,e,(function(e){return e[o]=i(e[o],t),e}))}),e)}(i,t):i;return e!==c&&r.forEach((function(e){var t=e.parentPath;(0,e.bindComputedProperty)(zt(t,c))})),c}}var Tt={getItem:function(){},setItem:function(){},removeItem:function(){}},Yt="undefined"!=typeof window&&void 0!==window.localStorage?window.localStorage:Tt,St="undefined"!=typeof window&&void 0!==window.sessionStorage?window.sessionStorage:Tt;function Dt(e,t){void 0===e&&(e=St),void 0===t&&(t=[]),"string"==typeof e&&(e="localStorage"===e?Yt:"sessionStorage"===e?St:Tt);var n=t.reverse(),r=function(t,r){var a=r.substr(r.indexOf("@")+1),o=e===Yt||e===St?JSON.parse(t).data:t;return n.reduce((function(e,t){return t.out(e,a)}),o)},a=Lt(e.getItem("_"));return{isAsync:a,getItem:function(t){if(a)return e.getItem(t).then((function(e){return null!=e?r(e,t):void 0}));var n=e.getItem(t);return null!=n?r(n,t):void 0},setItem:function(n,r){return e.setItem(n,function(n,r){var a=r.substr(r.indexOf("@")+1),o=t.reduce((function(e,t){return t.in(e,a)}),n);return e===Yt||e===St?JSON.stringify({data:o}):o}(r,n))},removeItem:function(t){return e.removeItem(t)}}}function Ot(e,t,n){var r=Object.keys(e);return t.length>0&&(r=r.reduce((function(e,n){return-1!==t.findIndex((function(e){return e===n}))?[].concat(e,[n]):e}),[])),n.length>0&&(r=r.reduce((function(e,t){return-1!==n.findIndex((function(e){return e===t}))?e:[].concat(e,[t])}),[])),r}function xt(e){return function(){return function(t){return function(n){var r=t(n);if(n&&e.internals.listenerActionMap[n.type]&&e.internals.listenerActionMap[n.type].length>0){var a=e.internals.actionCreatorDict[n.type];e.internals.listenerActionMap[n.type].forEach((function(e){e({type:a?a.type:n.type,payload:n.payload,error:n.error,result:n.result})}))}return r}}}}function Ct(e){return function(t){return function(n){return function(r){return e.internals.computedState.currentState=t.getState(),e.internals.computedState.isInReducer=!0,n(r)}}}}function Vt(e,t,n,r){var a=t,o={},i={},c={},s={},l=[],u=[],d={},f={},h=[],m=[],p={isInReducer:!1,currentState:a};return function e(f,v){return Object.keys(f).forEach((function(_){var y=f[_],M=[].concat(v,[_]),g={parent:v,path:M,key:_},b=function(){var e=zt(v,t);wt(M,a,e&&_ in e?e[_]:y)};if("p"!==_)if("function"==typeof y)if(y.a||y.aO){var L=y,z=function(e,t,n){var r=(e.a?"@action":"@actionOn")+"."+t.path.join("."),a=e.a||e.aO;a.actionName=t.key,a.type=r,a.parent=t.parent,a.path=t.path;var o=function(t){var o={type:r,payload:t};return e.aO&&a.resolvedTargets&&(t.resolvedTargets=[].concat(a.resolvedTargets)),n.dispatch(o)};return o.type=r,o}(y,g,r);o[z.type]=z,c[z.type]=L,"ePRS"!==g.key&&(y.aO?(h.push(y),wt(M,d,z)):wt(M,i,z))}else if(y.t||y.tO){var w=function(e,t,n,r,a){var o=e.t||e.tO;return function(i){var c={dispatch:n.dispatch,getState:function(){return zt(t.parent,n.getState())},getStoreActions:function(){return a},getStoreState:n.getState,injections:r,meta:t};return e.tO&&o.resolvedTargets&&(i.resolvedTargets=[].concat(o.resolvedTargets)),e(zt(t.parent,a),i,c)}}(y,g,r,n,i),k=function(e,t,n,r){var a=(e.t?"@thunk":"@thunkOn")+"."+t.path.join("."),o=a+"(start)",i=a+"(success)",c=a+"(fail)",s=e.t||e.tO;s.type=a,s.actionName=t.key,s.parent=t.parent,s.path=t.path;var l=function(e){var t=function(t){n.dispatch({type:c,payload:e,error:t}),n.dispatch({type:a,payload:e,error:t})},s=function(t){n.dispatch({type:i,payload:e,result:t}),n.dispatch({type:a,payload:e,result:t})};n.dispatch({type:o,payload:e});try{var l=n.dispatch((function(){return r(e)}));return Lt(l)?l.then((function(e){return s(e),e})).catch((function(e){throw t(e),e})):(s(l),l)}catch(e){throw t(e),e}};return l.type=a,l.startType=o,l.successType=i,l.failType=c,l}(y,g,r,w);wt(M,s,w),o[k.type]=k,y.tO?(h.push(y),wt(M,d,k)):wt(M,i,k)}else if(y.c){var H=zt(v,a),T=function(e,t,n,r,a){var o=n.c,i=it()(1)(n);return function(n){Object.defineProperty(n,t,{configurable:!0,enumerable:!0,get:function(){var t;if(r.isInReducer)t=r.currentState;else{if(null==a.getState)return;try{t=a.getState()}catch(e){return void 0}}var n=zt(e,t),c=o.stateResolvers.map((function(e){return e(n,t)}));return i.apply(void 0,c)}})}}(v,_,y,p,r);T(H),l.push({key:_,parentPath:v,bindComputedProperty:T})}else y.r?u.push({key:_,parentPath:v,reducer:y}):b();else if(st(y)){null==zt(M,a)&&wt(M,a,{}),e(y,M)}else b();else m.push(function(e,t){return void 0===t&&(t={}),{path:e,config:{blacklist:t.blacklist||[],mergeStrategy:t.mergeStrategy||"merge",storage:Dt(t.storage,t.transformers),whitelist:t.whitelist||[]}}}(v,y))}))}(e,[]),function(e,t,n,r){e.forEach((function(e){var a=e.aO||e.tO,o=a.targetResolver(zt(a.parent,t),t),i=(Array.isArray(o)?o:[o]).reduce((function(e,t){return"function"==typeof t&&t.type&&n[t.type]?e.push(t.type):"string"==typeof t&&e.push(t),e}),[]);a.resolvedTargets=i,i.forEach((function(e){var t=r[e]||[];t.push(n[a.type]),r[e]=t}))}))}(h,i,o,f),{actionCreatorDict:o,actionCreators:i,actionReducersDict:c,computedProperties:l,customReducers:u,computedState:p,defaultState:a,listenerActionCreators:d,listenerActionMap:f,persistenceConfig:m}}function jt(e,t){void 0===t&&(t={});var n=bt(e),r=t,a=r.compose,o=r.devTools,i=void 0===o||o,c=r.disableImmer,s=void 0!==c&&c,l=r.enhancers,u=void 0===l?[]:l,d=r.initialState,f=void 0===d?{}:d,h=r.injections,m=r.middleware,p=void 0===m?[]:m,v=r.mockActions,_=void 0!==v&&v,y=r.name,M=void 0===y?"EasyPeasyStore":y,g=r.reducerEnhancer,b=void 0===g?function(e){return e}:g,L=function(e){return Mt({},e,{ePRS:gt((function(e,t){return t}))})},z={},w=L(n),k=[],H=function(e){return"["+M+"]@"+e.join(".")},T=function(e,t){return ut()((function(){t.internals.persistenceConfig.forEach((function(n){var r=n.path,a=n.config,o=a.storage,i=a.whitelist,c=a.blacklist,s=t.getState();Ot(bt(zt(r,s)),i,c).forEach((function(t){var n=[].concat(r,[t]);o.setItem(e(n),zt(n,s))}))}))}),1e3)}(H,z),Y=function(e,t){return function(){return function(n){return function(r){var a=n(r);return r&&"@action.ePRS"!==r.type&&t.internals.persistenceConfig.length>0&&e(a),a}}}}(T,z),S=function(e,t){return function(){return new Promise((function(n,r){t.internals.persistenceConfig.forEach((function(a){var o=a.path,i=a.config,c=i.storage,s=i.whitelist,l=i.blacklist,u=Ot(zt(o,t.getState()),s,l);u.length>0?Promise.all(u.map((function(t){var n=[].concat(o,[t]);return c.removeItem(e(n))}))).then((function(){return n()}),r):n()}))}))}}(H,z),D=function(e){return z.internals.actionCreatorDict["@action.ePRS"](e)},O=function(e){void 0===e&&(e={}),z.internals=function(e){var t=e.disableImmer,n=e.initialState,r=e.injections,a=e.model,o=e.reducerEnhancer,i=Vt(a,n,r,e.references),c=i.actionCreatorDict,s=i.actionCreators,l=i.actionReducersDict,u=i.computedState,d=i.computedProperties,f=i.customReducers;return{actionCreatorDict:c,actionCreators:s,computedProperties:d,computedState:u,defaultState:i.defaultState,listenerActionCreators:i.listenerActionCreators,listenerActionMap:i.listenerActionMap,persistenceConfig:i.persistenceConfig,reducer:o(Ht(t,l,f,d))}}({disableImmer:s,initialState:e,injections:h,model:w,reducerEnhancer:b,references:z})},x=a||(i&&"undefined"!=typeof window&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({name:M}):et);O(f);var C=[Ct(z),at].concat(p,[xt(z),Y]);_&&C.push((function(){return function(){return function(e){null!=e&&k.push(e)}}}));var V=$e(z.internals.reducer,z.internals.defaultState,x.apply(void 0,[tt.apply(void 0,C)].concat(u)));V.subscribe((function(){z.internals.computedState.isInReducer=!1})),z.dispatch=V.dispatch,z.getState=V.getState;var j=function(){Object.keys(V.dispatch).forEach((function(e){delete V.dispatch[e]})),Object.keys(z.internals.actionCreators).forEach((function(e){V.dispatch[e]=z.internals.actionCreators[e]}))};j();var E=function(e){var t=V.getState();e&&delete t[e],O(t),V.replaceReducer(z.internals.reducer),D(z.internals.defaultState),j()},P=function(e,t,n){var r=Promise.resolve();return n.internals.persistenceConfig.length>0&&n.internals.persistenceConfig.forEach((function(a){var o=a.path,i=a.config,c=i.blacklist,s=i.mergeStrategy,l=i.storage,u=i.whitelist,d=n.internals.defaultState,f=Ot(bt(zt(o,d)),u,c),h=function(e,t){if("overwrite"===s)wt(o,e,t);else if("merge"===s){var n=zt(o,e);Object.keys(t).forEach((function(e){n[e]=t[e]}))}else if("mergeDeep"===s){!function e(t,n){Object.keys(n).forEach((function(r){var a=n[r];st(a)?(st(t[r])||(t[r]={}),e(t[r],a)):t[r]=a}))}(zt(o,e),t)}};if(l.isAsync){var m=f.reduce((function(t,n){var r=[].concat(o,[n]),a=l.getItem(e(r));return Lt(a)&&t.push({key:n,dataPromise:a}),t}),[]);m.length>0&&(r=Promise.all(m.map((function(e){return e.dataPromise}))).then((function(e){var n=e.reduce((function(e,t,n){var r=m[n].key;return void 0!==t&&(e[r]=t),e}),{});0!==Object.keys(n).length&&(h(d,n),t(d))})))}else{var p=f.reduce((function(t,n){var r=[].concat(o,[n]),a=l.getItem(e(r));return void 0!==a&&(t[n]=a),t}),{});h(d,p),t(d)}})),r}(H,D,z);return Object.assign(V,{addModel:function(e,t){w[e],w[e]=t,E()},clearMockedActions:function(){k=[]},getActions:function(){return z.internals.actionCreators},getListeners:function(){return z.internals.listenerActionCreators},getMockedActions:function(){return[].concat(k)},persist:{clear:S,flush:function(){return T.flush()},resolveRehydration:function(){return P}},reconfigure:function(e){w=L(e),E()},removeModel:function(e){w[e]&&(delete w[e],E(e))}})}function Et(e){var t=e.children,n=e.store;return u.a.createElement(dt.Provider,{value:n},t)}Object(Ue.e)(!1);var Pt=Object(_.a)((function(e){return L(e)?e.split("").reverse().join(""):Array.prototype.slice.call(e,0).reverse()})),At=g((function(e,t,n){return Ce(e,[t],n)})),Nt=Object(_.a)((function(e){return Object(B.a)(D(je,0,re("length",e)),(function(){for(var t=0,n=e.length;t<n;){if(e[t].apply(this,arguments))return!0;t+=1}return!1}))})),Ft=function(){function e(e,t){this.xf=t,this.f=e}return e.prototype["@@transducer/init"]=W,e.prototype["@@transducer/result"]=I,e.prototype["@@transducer/step"]=function(e,t){return this.f(t),this.xf["@@transducer/step"](e,t)},e}(),Rt=Object(y.a)((function(e,t){return new Ft(e,t)})),Wt=Object(y.a)(F([],Rt,(function(e,t){return e(t),t})));function It(e){var t=Object.prototype.toString.call(e);return"[object Function]"===t||"[object AsyncFunction]"===t||"[object GeneratorFunction]"===t||"[object AsyncGeneratorFunction]"===t}function qt(e){return'"'+e.replace(/\\/g,"\\\\").replace(/[\b]/g,"\\b").replace(/\f/g,"\\f").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t").replace(/\v/g,"\\v").replace(/\0/g,"\\0").replace(/"/g,'\\"')+'"'}var Ut=function(e){return(e<10?"0":"")+e},Bt="function"==typeof Date.prototype.toISOString?function(e){return e.toISOString()}:function(e){return e.getUTCFullYear()+"-"+Ut(e.getUTCMonth()+1)+"-"+Ut(e.getUTCDate())+"T"+Ut(e.getUTCHours())+":"+Ut(e.getUTCMinutes())+":"+Ut(e.getUTCSeconds())+"."+(e.getUTCMilliseconds()/1e3).toFixed(3).slice(2,5)+"Z"};var Jt=Object(_.a)((function(e){return function e(t,n){var r=function(r){var a=n.concat([t]);return me(r,a)?"<Circular>":e(r,a)},a=function(e,t){return R((function(t){return qt(t)+": "+r(e[t])}),t.slice().sort())};switch(Object.prototype.toString.call(t)){case"[object Arguments]":return"(function() { return arguments; }("+R(r,t).join(", ")+"))";case"[object Array]":return"["+R(r,t).concat(a(t,be((function(e){return/^\d+$/.test(e)}),ee(t)))).join(", ")+"]";case"[object Boolean]":return"object"==typeof t?"new Boolean("+r(t.valueOf())+")":t.toString();case"[object Date]":return"new Date("+(isNaN(t.valueOf())?r(NaN):qt(Bt(t)))+")";case"[object Null]":return"null";case"[object Number]":return"object"==typeof t?"new Number("+r(t.valueOf())+")":1/t==-1/0?"-0":t.toString(10);case"[object String]":return"object"==typeof t?"new String("+r(t.valueOf())+")":qt(t);case"[object Undefined]":return"undefined";default:if("function"==typeof t.toString){var o=t.toString();if("[object Object]"!==o)return o}return"{"+a(t,ee(t)).join(", ")+"}"}}(e,[])})),Gt=Object(y.a)((function(e,t){return Object(B.a)(e+1,(function(){var n=arguments[e];if(null!=n&&It(n[t]))return n[t].apply(n,Array.prototype.slice.call(arguments,0,e));throw new TypeError(Jt(n)+' does not have a method named "'+t+'"')}))})),Kt=Object(_.a)((function(e){var t=D(je,0,te((function(e){return e[0].length}),e));return Object(p.a)(t,(function(){for(var t=0;t<e.length;){if(e[t][0].apply(this,arguments))return e[t][1].apply(this,arguments);t+=1}}))}));var $t=Object(_.a)((function(e){return null!=e&&(t=e.length,"[object Number]"===Object.prototype.toString.call(t))?e.length:NaN;var t})),Qt=Object(y.a)((function(e,t){return[x(0,e,t),x(e,$t(t),t)]}));function Xt(e){return function t(n){for(var r,a,o,i=[],c=0,s=n.length;c<s;){if(z(n[c]))for(o=0,a=(r=e?t(n[c]):n[c]).length;o<a;)i[i.length]=r[o],o+=1;else i[i.length]=n[c];c+=1}return i}}var Zt=Object(_.a)(Xt(!0)),en=Object(y.a)((function(e,t){return"function"!=typeof t.indexOf||b(t)?he(t,e,0):t.indexOf(e)})),tn=function(){function e(e,t){this.xf=t,this.n=e}return e.prototype["@@transducer/init"]=W,e.prototype["@@transducer/result"]=I,e.prototype["@@transducer/step"]=function(e,t){return this.n>0?(this.n-=1,e):this.xf["@@transducer/step"](e,t)},e}(),nn=Object(y.a)((function(e,t){return new tn(e,t)})),rn=Object(y.a)(F(["drop"],nn,(function(e,t){return x(Math.max(0,e),1/0,t)}))),an=Object(_.a)((function(e){return null==e})),on=Object(_.a)((function(e){return!e})),cn=Object(y.a)(me),sn={"@@functional/placeholder":!0},ln=function(e){return A(["translations",e,"status"])},un=function(e){return Pe("string_language",e)},dn=function(e){return function(t){var n=parseInt(ln(e)(t));return 10===n||0===n&&function(e){return V(A(["translations",e,"mo_string"]),an,on)}(e)(t)}},fn=function(e){return V(ln(e),cn(sn,["1"]))},hn=function(e){return V(ln(e),cn(sn,["2"]))},mn=function(e){return A(["translations",e,"in_basket"])},pn=function(e){return V(ln(e),cn(sn,["3"]))},vn=V(Qt,Pt,Zt),_n=function(e,t,n,r){var a=en(e,n),o=vn(a,n),i=rn(1);return D((function(e,t){var n=Nt([un(t),mn(t),fn(t),hn(t)]);return e||(n(r)?"":t)}),"",t(i(o)))},yn=Pe("keyCode",13),Mn=Ee([ne("shiftKey"),yn]),gn=Pe("keyCode",9),bn=Pe("keyCode",27),Ln=n(256),zn=function(e){var t=e.lang,n=e.value,r=e.onTranslation,a=e.dir,o=e.translationSource,i=mt(ne("languages")),c=mt(ne("string")),s=vt(ne("setVisible")),d=mt(A(["focus",t])),f=vt(ne("setFocus")),h=Object(l.useState)({}),p=ke()(h,2),v=p[0],_=p[1],y=_n(t,oe,i,c),M=_n(t,Pt,i,c),g=M===i[i.length-1],b=y===i[0],L=function(e){e&&(s(ze()({},t,!1)),s(ze()({},e,!0)))};Object(l.useEffect)((function(){var e=At(-1,"pos",v);if(e>=0){var t=ne("target",v);t.selectionStart=t.selectionEnd=e,_({})}}),[v]);var z=Object(l.useRef)(null);Object(l.useEffect)((function(){z.current&&d&&(setTimeout((function(){var e=z.current.resizableTextArea.textArea;e.focus(),e.selectionStart=e.selectionEnd=0}),200),f(ze()({},t,!1)))}),[z,d]);var w=function(){o.current.resizableTextArea.textArea.style.height=z.current.resizableTextArea.textArea.style.height};Object(l.useEffect)((function(){new MutationObserver(w).observe(z.current.resizableTextArea.textArea,{attributes:!0,attributeFilter:["style"]})}),[z]);Object(l.useEffect)((function(){setTimeout((function(){z.current.resizableTextArea.textArea.focus()}),200)}),[z]);var k=function(e){Object(Ln.Just)(e).chain(m()(Nt([yn,gn,bn]))).map(Wt(Gt(0,"preventDefault"))).chain(m()(Pe("type","keyup"))).map(Kt([[Mn,function(){return t=e.target,a=t.selectionStart,r(n.slice(0,a)+"\n"+n.slice(a)),void _({target:t,pos:a+1});var t,a}],[yn,function(){return s(ze()({},t,!1))}],[gn,function(){return e.shiftKey?!g&&L(M):!b&&L(y)}],[bn,function(){return r(null),void s(ze()({},t,!1))}]]))};return u.a.createElement(Fe.a,{className:"translation",value:n,onChange:function(e){return r(e.target.value)},autoSize:{minRows:4,maxRows:8},style:{width:350},dir:a,onKeyUp:k,onKeyDown:k,onKeyPress:k,ref:z,__self:void 0,__source:{fileName:"/builds/wpml/wpml-string-translation/src/js/main-ui/components/TranslationEditor.js",lineNumber:110,columnNumber:3}})},wn=n(260),kn=n.n(wn),Hn=(n(375),"/builds/wpml/wpml-string-translation/src/js/main-ui/components/Flag.js"),Tn=function(e){var t=e.src;return u.a.createElement("span",{className:"wpml-title-flag",__self:void 0,__source:{fileName:Hn,lineNumber:3,columnNumber:27}},u.a.createElement("img",{src:t,__self:void 0,__source:{fileName:Hn,lineNumber:3,columnNumber:61}}))},Yn="/builds/wpml/wpml-string-translation/src/js/main-ui/components/Actions.js",Sn=function(e){var t=e.lang,n=mt(ne("languages")),r=mt(ne("languageDetails")),a=mt(ne("string")),o=vt(ne("setVisible")),i=function(e){return A([e,"flag_url"],r)},c=_n(t,oe,n,a),s=_n(t,Pt,n,a),l=s===n[n.length-1],d=c===n[0],f=function(e){o(ze()({},t,!1)),o(ze()({},e,!0))},h=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return u.a.createElement("i",{className:"otgs-icon otgs-ico-"+e,__self:void 0,__source:{fileName:Yn,lineNumber:33,columnNumber:37}},t)},m=function(e,t){return u.a.createElement(kn.a,{className:"secondary ant-btn__".concat(t),onClick:function(){return f(e)},disabled:"prev"===t?l:d,__self:void 0,__source:{fileName:Yn,lineNumber:39,columnNumber:10}},"prev"===t?h("caret-left"):null,u.a.createElement(Tn,{src:i(e),__self:void 0,__source:{fileName:Yn,lineNumber:45,columnNumber:4}}),Oe("Edit","wpml-string-translation")," ",function(e){return A([e,"display_name"],r)}(e),"next"===t?h("caret-right"):null)};return u.a.createElement("div",{className:"wpml-dialog-translate__actions",__self:void 0,__source:{fileName:Yn,lineNumber:52,columnNumber:3}},u.a.createElement(We.a,{__self:void 0,__source:{fileName:Yn,lineNumber:53,columnNumber:4}},u.a.createElement(qe.a,{span:12,__self:void 0,__source:{fileName:Yn,lineNumber:54,columnNumber:5}},s&&u.a.createElement("div",{__self:void 0,__source:{fileName:Yn,lineNumber:55,columnNumber:15}},m(l?t:s,"prev"),u.a.createElement("small",{__self:void 0,__source:{fileName:Yn,lineNumber:57,columnNumber:7}},Oe("Shift+Tab","wpml-string-translation")))),u.a.createElement(qe.a,{span:12,style:{textAlign:"right"},__self:void 0,__source:{fileName:Yn,lineNumber:60,columnNumber:5}},c&&u.a.createElement("div",{__self:void 0,__source:{fileName:Yn,lineNumber:61,columnNumber:15}},u.a.createElement("small",{__self:void 0,__source:{fileName:Yn,lineNumber:62,columnNumber:7}},Oe("Tab","wpml-string-translation")),m(d?t:c,"next")))))},Dn=n(27),On="/builds/wpml/wpml-string-translation/src/js/main-ui/components/EditTranslationPopup.js",xn=function(e){var t=e.lang,n=e.onNewTranslation,r=mt(ne("string")),a=mt(ne("languageDetails")),o=vt(ne("setFocus")),i=mt(ne("endpoints")),c=Object(Dn.c)(),s=function(e,t){return{name:A([e,"display_name"],t),flag:A([e,"flag_url"],t),dir:A([e,"rtl"],t)?"rtl":"ltr"}},d=s(r.string_language,a),f=s(t,a),h=Ce("",["translations",t,"mo_string"],r),m=Ce(h,["translations",t,"value"],r),p=Object(l.useRef)(null);Object(l.useEffect)((function(){if(!m){var e=Ve(Ce(!1,["data","success"]),oe,(function(){throw new Error("error")}));c.doFetch(Object(Dn.a)(i.translationMemory.nonce,i.translationMemory.endpoint,{string:r.value,source:r.string_language,target:t})).then(e).then(Ce([],["data","data"])).then(Ae((function(e){Ee([Pe("original",r.value),Pe("language",t)])(e)&&g(ne("translation",e))}))).catch((function(){}))}}),[m]);var v=Object(l.useState)(m),_=ke()(v,2),y=_[0],M=_[1],g=function(e){null!==e&&M(e),n(e!==m?e:null)};return u.a.createElement("div",{className:"wpml-dialog-body wpml-dialog-translate",__self:void 0,__source:{fileName:On,lineNumber:91,columnNumber:3}},u.a.createElement(We.a,{className:"wpml-dialog-translate__headers",__self:void 0,__source:{fileName:On,lineNumber:92,columnNumber:4}},u.a.createElement(qe.a,{sm:10,__self:void 0,__source:{fileName:On,lineNumber:93,columnNumber:5}},u.a.createElement("h3",{className:"wpml-dialog-translate__headers-original",__self:void 0,__source:{fileName:On,lineNumber:94,columnNumber:6}},Oe("Original:","wpml-string-translation")," ",u.a.createElement(Tn,{src:d.flag,__self:void 0,__source:{fileName:On,lineNumber:95,columnNumber:52}}),u.a.createElement("strong",{__self:void 0,__source:{fileName:On,lineNumber:96,columnNumber:7}},d.name))),u.a.createElement(qe.a,{sm:2,__self:void 0,__source:{fileName:On,lineNumber:99,columnNumber:5}}),u.a.createElement(qe.a,{sm:12,__self:void 0,__source:{fileName:On,lineNumber:100,columnNumber:5}},u.a.createElement("h3",{className:"wpml-dialog-translate__headers-translation",__self:void 0,__source:{fileName:On,lineNumber:101,columnNumber:6}},Oe("Translation to:","wpml-string-translation")," ",u.a.createElement(Tn,{src:f.flag,__self:void 0,__source:{fileName:On,lineNumber:102,columnNumber:58}}),u.a.createElement("strong",{__self:void 0,__source:{fileName:On,lineNumber:103,columnNumber:7}},f.name)))),u.a.createElement(We.a,{__self:void 0,__source:{fileName:On,lineNumber:107,columnNumber:4}},u.a.createElement(qe.a,{sm:10,__self:void 0,__source:{fileName:On,lineNumber:108,columnNumber:5}},u.a.createElement(Fe.a,{className:"original",value:r.value,disabled:!0,autoSize:{minRows:4,maxRows:8},style:{width:300},dir:d.dir,ref:p,__self:void 0,__source:{fileName:On,lineNumber:109,columnNumber:6}})),u.a.createElement(qe.a,{sm:2,style:{textAlign:"center"},__self:void 0,__source:{fileName:On,lineNumber:119,columnNumber:5}},u.a.createElement("button",{className:"button-copy button-secondary otgs-ico-copy",title:Oe("Copy from original","wpml-string-translation"),onClick:function(){g(r.value),o(ze()({},t,!0))},disabled:!!y,__self:void 0,__source:{fileName:On,lineNumber:120,columnNumber:6}})),u.a.createElement(qe.a,{sm:12,__self:void 0,__source:{fileName:On,lineNumber:127,columnNumber:5}},u.a.createElement(zn,{lang:t,value:y,onTranslation:g,dir:f.dir,translationSource:p,__self:void 0,__source:{fileName:On,lineNumber:128,columnNumber:6}}),u.a.createElement("div",{__self:void 0,__source:{fileName:On,lineNumber:135,columnNumber:6}},u.a.createElement("small",{__self:void 0,__source:{fileName:On,lineNumber:136,columnNumber:7}},Oe("Use Shift+Enter to add a new line.","wpml-string-translation"))))),u.a.createElement(Sn,{lang:t,__self:void 0,__source:{fileName:On,lineNumber:140,columnNumber:4}}))},Cn=n(57),Vn=n.n(Cn);n(389);function jn(e,t){var n;t=t||[];var r=(e=e||[]).length,a=t.length,o=[];for(n=0;n<r;)o[o.length]=e[n],n+=1;for(n=0;n<a;)o[o.length]=t[n],n+=1;return o}function En(e){return Object(y.a)((function(t,n){return Object(p.a)(Math.max(0,t.length-n.length),(function(){return t.apply(this,e(n,arguments))}))}))}var Pn=En(jn),An=function(e,t){Vn.a.destroy(),e({message:t,top:50})},Nn=Pn(An,[Vn.a.success,Oe("Translation saved.","wpml-string-translation")]),Fn=Pn(An,[Vn.a.error,Oe("Translation update failed.","wpml-string-translation")]),Rn=Object(_.a)((function(e){return function(){return e}})),Wn=n(265),In=n.n(Wn),qn=Object(y.a)((function(e,t){if(b(e)){if(b(t))return e.concat(t);throw new TypeError(Jt(t)+" is not an array")}if(L(e)){if(L(t))return e+t;throw new TypeError(Jt(t)+" is not a string")}if(null!=e&&It(e["fantasy-land/concat"]))return e["fantasy-land/concat"](t);if(null!=e&&It(e.concat))return e.concat(t);throw new TypeError(Jt(e)+' does not have a method named "concat" or "fantasy-land/concat"')})),Un=Object(y.a)((function(e,t){return jn(t,[e])})),Bn=qn("WPML-"),Jn=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};document.dispatchEvent(new CustomEvent(Bn(e),{detail:t}))},Gn=function(e){var t=[],n={then:function(e){return t=Un(e,t),this}};return document.addEventListener(Bn(e),(function(e){V.apply(void 0,In()(t))(e.detail)})),n},Kn="/builds/wpml/wpml-string-translation/src/js/main-ui/components/LanguagesCell.js",$n=function(e){var t=e.languages,n=e.string,r=e.languageDetails,a=e.endpoints,o=function(e){var t=e.languages,n=e.string,r=e.languageDetails,a=e.endpoints,o=jt({string:n,updateTranslation:gt((function(e,t){void 0===e.string.translations&&(e.string.translations={}),e.string.translations=Object.assign(e.string.translations,ze()({},t.lang,{value:t.translation,status:"10"}))})),endpoints:a,languageDetails:r,languages:t,visible:{},setVisible:gt((function(e,t){e.visible=Object.assign(e.visible,t)})),focus:{},setFocus:gt((function(e,t){e.focus=Object.assign(e.focus,t)}))});return Gn("string-complete-"+n.string_id).then(ne("string")).then(o.getActions().updateTranslation),o}({languages:t,string:n,languageDetails:r,endpoints:a});return u.a.createElement(u.a.Fragment,{__self:void 0,__source:{fileName:Kn,lineNumber:27,columnNumber:3}},t.map((function(e){return u.a.createElement("span",{key:e,__self:void 0,__source:{fileName:Kn,lineNumber:30,columnNumber:6}},u.a.createElement(Et,{store:o,__self:void 0,__source:{fileName:Kn,lineNumber:31,columnNumber:6}},u.a.createElement(ir,{lang:e,languageDetails:r,__self:void 0,__source:{fileName:Kn,lineNumber:32,columnNumber:7}})))})))},Qn=function(e){var t=e.text,n=e.className,r=e.lang,a=e.onClick,o=mt(ne("languageDetails")),i=mt(ne("string")),c=function(){var e;return"undefined"!=typeof wp&&wp.i18n?(e=wp.i18n).sprintf.apply(e,arguments):De.sprintf.apply(void 0,arguments)}(t,A([r,"display_name"],o));return u.a.createElement(Te.a,{placement:"top",title:c,__self:void 0,__source:{fileName:Kn,lineNumber:48,columnNumber:3}},u.a.createElement("span",{__self:void 0,__source:{fileName:Kn,lineNumber:49,columnNumber:4}},u.a.createElement("a",{href:"#",onClick:function(){return!1},__self:void 0,__source:{fileName:Kn,lineNumber:50,columnNumber:5}},u.a.createElement("i",{id:"".concat(i.string_id,"-").concat(r),className:n,onClick:a,__self:void 0,__source:{fileName:Kn,lineNumber:51,columnNumber:6}}))))},Xn=function(e){var t=e.lang;return u.a.createElement(Qn,{text:Oe("Original language %s","wpml-string-translation"),className:"otgs-ico-original",lang:t,__self:void 0,__source:{fileName:Kn,lineNumber:60,columnNumber:2}})},Zn=function(e){var t=e.lang;return u.a.createElement(Qn,{text:Oe("Waiting for translator to %s","wpml-string-translation"),className:"otgs-ico-waiting",lang:t,__self:void 0,__source:{fileName:Kn,lineNumber:67,columnNumber:2}})},er=function(e){var t=e.lang;return u.a.createElement(Qn,{text:Oe("Translation in progress to %s","wpml-string-translation"),className:"otgs-ico-in-progress",lang:t,__self:void 0,__source:{fileName:Kn,lineNumber:74,columnNumber:2}})},tr=function(e){var t=e.lang;return u.a.createElement(Qn,{text:Oe("In basket for translation to %s","wpml-string-translation"),className:"otgs-ico-basket",lang:t,__self:void 0,__source:{fileName:Kn,lineNumber:81,columnNumber:2}})},nr=function(e){var t=e.lang,n=e.text,r=e.className,a=e.defaultTranslation,o=mt(ne("string")),i=mt(ne("endpoints")),c=vt(ne("updateTranslation")),s=Object(l.useState)(null),d=ke()(s,2),f=d[0],h=d[1],m=mt(ne("visible")),p=vt(ne("setVisible")),v=Object(Dn.c)(),_=Ve(Ce(!1,["data","success"]),oe,(function(){throw new Error("error")})),y=function(e){v.doFetch(Object(Dn.a)(i.saveTranslation.nonce,i.saveTranslation.endpoint,function(e){return{id:o.string_id,translation:e,lang:t}}(e))).then(_).then(Nn).catch(Fn)},M=At(!1,t,m),g=function(e){!e&&f&&(c({lang:t,translation:f}),setTimeout((function(){return y(f)}),200),h(null)),p(ze()({},t,e))};Object(l.useEffect)((function(){M&&a&&f!==a&&h(a),g(M)}),[m]);var b=u.a.createElement(xn,{lang:t,onNewTranslation:h,__self:void 0,__source:{fileName:Kn,lineNumber:138,columnNumber:18}});return u.a.createElement(Se.a,{align:{offset:[16,0]},placement:"bottomRight",content:b,trigger:"click",visible:M,onVisibleChange:g,destroyTooltipOnHide:!0,zIndex:9999,__self:void 0,__source:{fileName:Kn,lineNumber:144,columnNumber:3}},u.a.createElement(Qn,{text:n,className:r,lang:t,__self:void 0,__source:{fileName:Kn,lineNumber:154,columnNumber:4}}))},rr=function(e){var t=e.lang;return u.a.createElement(nr,{lang:t,text:Oe("Add %s translation","wpml-string-translation"),className:"otgs-ico-add",defaultTranslation:null,__self:void 0,__source:{fileName:Kn,lineNumber:164,columnNumber:2}})},ar=function(e){var t=e.lang;return u.a.createElement(nr,{lang:t,text:Oe("Edit %s translation","wpml-string-translation"),className:"otgs-ico-edit",defaultTranslation:null,__self:void 0,__source:{fileName:Kn,lineNumber:172,columnNumber:2}})},or=function(e){var t=e.lang,n=mt(A(["string","translations",t,"value"]));return u.a.createElement(nr,{lang:t,text:Oe("Edit %s translation","wpml-string-translation"),className:"otgs-ico-needs-update",defaultTranslation:n,__self:void 0,__source:{fileName:Kn,lineNumber:183,columnNumber:3}})},ir=function(e){var t=e.lang,n=mt(ne("string")),r=Rn(!0);return Kt([[un(t),function(){return u.a.createElement(Xn,{lang:t,__self:void 0,__source:{fileName:Kn,lineNumber:198,columnNumber:28}})}],[mn(t),function(){return u.a.createElement(tr,{lang:t,__self:void 0,__source:{fileName:Kn,lineNumber:199,columnNumber:26}})}],[dn(t),function(){return u.a.createElement(ar,{lang:t,__self:void 0,__source:{fileName:Kn,lineNumber:200,columnNumber:30}})}],[pn(t),function(){return u.a.createElement(or,{lang:t,__self:void 0,__source:{fileName:Kn,lineNumber:201,columnNumber:29}})}],[fn(t),function(){return u.a.createElement(Zn,{lang:t,__self:void 0,__source:{fileName:Kn,lineNumber:202,columnNumber:40}})}],[hn(t),function(){return u.a.createElement(er,{lang:t,__self:void 0,__source:{fileName:Kn,lineNumber:203,columnNumber:30}})}],[r,function(){return u.a.createElement(rr,{lang:t,__self:void 0,__source:{fileName:Kn,lineNumber:204,columnNumber:21}})}]])(n)},cr=(n(398),n(268));document.addEventListener("DOMContentLoaded",(function(){var e,t=function(e){return i()(document.querySelectorAll(e))},n=V((function(e){return document.querySelector(e)}),m()((function(e){return void 0!==e})))(".wpml-col-languages").map(A(["dataset","langs"])).map(JSON.parse).option([]),r=new cr.AllHtmlEntities,o=function(e){var t=JSON.parse(e.parentNode.dataset.string);return t.value=r.decode(t.value),t},c=t(".languages-status").map((function(e){return{el:e,string:o(e)}})),l=V(re("string"),re("string_language"),_e)(c);1===l.length&&(n=be(fe(l[0]),n),(e=l[0],t(".wpml-col-languages > span[data-code='"+e+"']")).map((function(e){return e.remove()}))),Gn("jobs-downloaded").then(a()(s.a.mark((function e(){var t,n,r,a,o;return s.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=c.map(A(["string","string_id"])),e.next=3,Object(Dn.b)(wpml_st_main_ui.endpoints.fetchStrings,{strings:t});case 3:n=e.sent,r=n.data,a=r.success,o=r.data,a&&o&&o.forEach((function(e){Jn("string-complete-"+e.string_id,{string:e})}));case 8:case"end":return e.stop()}}),e)})))),c.forEach((function(e){f.a.render(u.a.createElement($n,{languages:n,string:e.string,languageDetails:wpml_st_main_ui.languageDetails,endpoints:wpml_st_main_ui.endpoints,__self:void 0,__source:{fileName:"/builds/wpml/wpml-string-translation/src/js/main-ui/main.js",lineNumber:73,columnNumber:4}}),e.el)}))}))},function(e,t,n){"use strict";n.r(t);var r=n(9),a=n.n(r),o=n(26),i=n.n(o),c=n(8),s=n.n(c),l=n(6),u=n.n(l),d=n(10),f=n.n(d),h=n(0),m=n.n(h),p=n(1),v=n.n(p),_=n(7),y=n.n(_),M=n(25);function g(e,t){for(var n=t;n;){if(n===e)return!0;n=n.parentNode}return!1}var b=n(266),L=n.n(b);function z(e,t,n,r){var a=y.a.unstable_batchedUpdates?function(e){y.a.unstable_batchedUpdates(n,e)}:n;return L()(e,t,a,r)}function w(e){return(w="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function k(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function H(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function T(e,t){return(T=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Y(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=D(e);if(t){var a=D(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return S(this,n)}}function S(e,t){return!t||"object"!==w(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function D(e){return(D=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var O=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&T(e,t)}(o,e);var t,n,r,a=Y(o);function o(){var e;k(this,o);for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return(e=a.call.apply(a,[this].concat(n))).removeContainer=function(){e.container&&(y.a.unmountComponentAtNode(e.container),e.container.parentNode.removeChild(e.container),e.container=null)},e.renderComponent=function(t,n){var r=e.props,a=r.visible,o=r.getComponent,i=r.forceRender,c=r.getContainer,s=r.parent;(a||s._component||i)&&(e.container||(e.container=c()),y.a.unstable_renderSubtreeIntoContainer(s,o(t),e.container,(function(){n&&n.call(this)})))},e}return t=o,(n=[{key:"componentDidMount",value:function(){this.props.autoMount&&this.renderComponent()}},{key:"componentDidUpdate",value:function(){this.props.autoMount&&this.renderComponent()}},{key:"componentWillUnmount",value:function(){this.props.autoDestroy&&this.removeContainer()}},{key:"render",value:function(){return this.props.children({renderComponent:this.renderComponent,removeContainer:this.removeContainer})}}])&&H(t.prototype,n),r&&H(t,r),o}(m.a.Component);function x(e){return(x="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function C(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function V(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function j(e,t){return(j=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function E(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=A(e);if(t){var a=A(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return P(this,n)}}function P(e,t){return!t||"object"!==x(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function A(e){return(A=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}O.propTypes={autoMount:v.a.bool,autoDestroy:v.a.bool,visible:v.a.bool,forceRender:v.a.bool,parent:v.a.any,getComponent:v.a.func.isRequired,getContainer:v.a.func.isRequired,children:v.a.func.isRequired},O.defaultProps={autoMount:!0,autoDestroy:!0,forceRender:!1};var N=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&j(e,t)}(o,e);var t,n,r,a=E(o);function o(){return C(this,o),a.apply(this,arguments)}return t=o,(n=[{key:"componentDidMount",value:function(){this.createContainer()}},{key:"componentDidUpdate",value:function(e){var t=this.props.didUpdate;t&&t(e)}},{key:"componentWillUnmount",value:function(){this.removeContainer()}},{key:"createContainer",value:function(){this._container=this.props.getContainer(),this.forceUpdate()}},{key:"removeContainer",value:function(){this._container&&this._container.parentNode.removeChild(this._container)}},{key:"render",value:function(){return this._container?y.a.createPortal(this.props.children,this._container):null}}])&&V(t.prototype,n),r&&V(t,r),o}(m.a.Component);N.propTypes={getContainer:v.a.func.isRequired,children:v.a.node.isRequired,didUpdate:v.a.func};var F=n(11),R=n.n(F);function W(e,t,n){return n?e[0]===t[0]:e[0]===t[0]&&e[1]===t[1]}function I(e,t){this[e]=t}var q=n(14),U=n.n(q),B=void 0,J={Webkit:"-webkit-",Moz:"-moz-",ms:"-ms-",O:"-o-"};function G(){if(void 0!==B)return B;B="";var e=document.createElement("p").style;for(var t in J)t+"Transform"in e&&(B=t);return B}function K(){return G()?G()+"TransitionProperty":"transitionProperty"}function $(){return G()?G()+"Transform":"transform"}function Q(e,t){var n=K();n&&(e.style[n]=t,"transitionProperty"!==n&&(e.style.transitionProperty=t))}function X(e,t){var n=$();n&&(e.style[n]=t,"transform"!==n&&(e.style.transform=t))}var Z=/matrix\((.*)\)/,ee=/matrix3d\((.*)\)/;var te="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ne=void 0;function re(e){var t=e.style.display;e.style.display="none",e.offsetHeight,e.style.display=t}function ae(e,t,n){var r=n;if("object"!==(void 0===t?"undefined":te(t)))return void 0!==r?("number"==typeof r&&(r+="px"),void(e.style[t]=r)):ne(e,t);for(var a in t)t.hasOwnProperty(a)&&ae(e,a,t[a])}function oe(e,t){var n=e["page"+(t?"Y":"X")+"Offset"],r="scroll"+(t?"Top":"Left");if("number"!=typeof n){var a=e.document;"number"!=typeof(n=a.documentElement[r])&&(n=a.body[r])}return n}function ie(e){return oe(e)}function ce(e){return oe(e,!0)}function se(e){var t=function(e){var t,n=void 0,r=void 0,a=e.ownerDocument,o=a.body,i=a&&a.documentElement;return n=(t=e.getBoundingClientRect()).left,r=t.top,{left:n-=i.clientLeft||o.clientLeft||0,top:r-=i.clientTop||o.clientTop||0}}(e),n=e.ownerDocument,r=n.defaultView||n.parentWindow;return t.left+=ie(r),t.top+=ce(r),t}function le(e){return null!=e&&e==e.window}function ue(e){return le(e)?e.document:9===e.nodeType?e:e.ownerDocument}var de=new RegExp("^("+/[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source+")(?!px)[a-z%]+$","i"),fe=/^(top|right|bottom|left)$/,he="left";function me(e,t){return"left"===e?t.useCssRight?"right":e:t.useCssBottom?"bottom":e}function pe(e){return"left"===e?"right":"right"===e?"left":"top"===e?"bottom":"bottom"===e?"top":void 0}function ve(e,t,n){"static"===ae(e,"position")&&(e.style.position="relative");var r=-999,a=-999,o=me("left",n),i=me("top",n),c=pe(o),s=pe(i);"left"!==o&&(r=999),"top"!==i&&(a=999);var l,u="",d=se(e);("left"in t||"top"in t)&&(u=(l=e).style.transitionProperty||l.style[K()]||"",Q(e,"none")),"left"in t&&(e.style[c]="",e.style[o]=r+"px"),"top"in t&&(e.style[s]="",e.style[i]=a+"px"),re(e);var f=se(e),h={};for(var m in t)if(t.hasOwnProperty(m)){var p=me(m,n),v="left"===m?r:a,_=d[m]-f[m];h[p]=p===m?v+_:v-_}ae(e,h),re(e),("left"in t||"top"in t)&&Q(e,u);var y={};for(var M in t)if(t.hasOwnProperty(M)){var g=me(M,n),b=t[M]-d[M];y[g]=M===g?h[g]+b:h[g]-b}ae(e,y)}function _e(e,t){var n=se(e),r=function(e){var t=window.getComputedStyle(e,null),n=t.getPropertyValue("transform")||t.getPropertyValue($());if(n&&"none"!==n){var r=n.replace(/[^0-9\-.,]/g,"").split(",");return{x:parseFloat(r[12]||r[4],0),y:parseFloat(r[13]||r[5],0)}}return{x:0,y:0}}(e),a={x:r.x,y:r.y};"left"in t&&(a.x=r.x+t.left-n.left),"top"in t&&(a.y=r.y+t.top-n.top),function(e,t){var n=window.getComputedStyle(e,null),r=n.getPropertyValue("transform")||n.getPropertyValue($());if(r&&"none"!==r){var a=void 0,o=r.match(Z);if(o)(a=(o=o[1]).split(",").map((function(e){return parseFloat(e,10)})))[4]=t.x,a[5]=t.y,X(e,"matrix("+a.join(",")+")");else(a=r.match(ee)[1].split(",").map((function(e){return parseFloat(e,10)})))[12]=t.x,a[13]=t.y,X(e,"matrix3d("+a.join(",")+")")}else X(e,"translateX("+t.x+"px) translateY("+t.y+"px) translateZ(0)")}(e,a)}function ye(e,t){for(var n=0;n<e.length;n++)t(e[n])}function Me(e){return"border-box"===ne(e,"boxSizing")}"undefined"!=typeof window&&(ne=window.getComputedStyle?function(e,t,n){var r=n,a="",o=ue(e);return(r=r||o.defaultView.getComputedStyle(e,null))&&(a=r.getPropertyValue(t)||r[t]),a}:function(e,t){var n=e.currentStyle&&e.currentStyle[t];if(de.test(n)&&!fe.test(t)){var r=e.style,a=r[he],o=e.runtimeStyle[he];e.runtimeStyle[he]=e.currentStyle[he],r[he]="fontSize"===t?"1em":n||0,n=r.pixelLeft+"px",r[he]=a,e.runtimeStyle[he]=o}return""===n?"auto":n});var ge=["margin","border","padding"];function be(e,t,n){var r={},a=e.style,o=void 0;for(o in t)t.hasOwnProperty(o)&&(r[o]=a[o],a[o]=t[o]);for(o in n.call(e),t)t.hasOwnProperty(o)&&(a[o]=r[o])}function Le(e,t,n){var r=0,a=void 0,o=void 0,i=void 0;for(o=0;o<t.length;o++)if(a=t[o])for(i=0;i<n.length;i++){var c=void 0;c="border"===a?""+a+n[i]+"Width":a+n[i],r+=parseFloat(ne(e,c))||0}return r}var ze={};function we(e,t,n){var r=n;if(le(e))return"width"===t?ze.viewportWidth(e):ze.viewportHeight(e);if(9===e.nodeType)return"width"===t?ze.docWidth(e):ze.docHeight(e);var a="width"===t?["Left","Right"]:["Top","Bottom"],o="width"===t?e.getBoundingClientRect().width:e.getBoundingClientRect().height,i=(ne(e),Me(e)),c=0;(null==o||o<=0)&&(o=void 0,(null==(c=ne(e,t))||Number(c)<0)&&(c=e.style[t]||0),c=parseFloat(c)||0),void 0===r&&(r=i?1:-1);var s=void 0!==o||i,l=o||c;return-1===r?s?l-Le(e,["border","padding"],a):c:s?1===r?l:l+(2===r?-Le(e,["border"],a):Le(e,["margin"],a)):c+Le(e,ge.slice(r),a)}ye(["Width","Height"],(function(e){ze["doc"+e]=function(t){var n=t.document;return Math.max(n.documentElement["scroll"+e],n.body["scroll"+e],ze["viewport"+e](n))},ze["viewport"+e]=function(t){var n="client"+e,r=t.document,a=r.body,o=r.documentElement[n];return"CSS1Compat"===r.compatMode&&o||a&&a[n]||o}}));var ke={position:"absolute",visibility:"hidden",display:"block"};function He(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];var r=void 0,a=t[0];return 0!==a.offsetWidth?r=we.apply(void 0,t):be(a,ke,(function(){r=we.apply(void 0,t)})),r}function Te(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e}ye(["width","height"],(function(e){var t=e.charAt(0).toUpperCase()+e.slice(1);ze["outer"+t]=function(t,n){return t&&He(t,e,n?0:1)};var n="width"===e?["Left","Right"]:["Top","Bottom"];ze[e]=function(t,r){var a=r;if(void 0===a)return t&&He(t,e,-1);if(t){ne(t);return Me(t)&&(a+=Le(t,["padding","border"],n)),ae(t,e,a)}}}));var Ye={getWindow:function(e){if(e&&e.document&&e.setTimeout)return e;var t=e.ownerDocument||e;return t.defaultView||t.parentWindow},getDocument:ue,offset:function(e,t,n){if(void 0===t)return se(e);!function(e,t,n){if(n.ignoreShake){var r=se(e),a=r.left.toFixed(0),o=r.top.toFixed(0),i=t.left.toFixed(0),c=t.top.toFixed(0);if(a===i&&o===c)return}n.useCssRight||n.useCssBottom?ve(e,t,n):n.useCssTransform&&$()in document.body.style?_e(e,t):ve(e,t,n)}(e,t,n||{})},isWindow:le,each:ye,css:ae,clone:function(e){var t=void 0,n={};for(t in e)e.hasOwnProperty(t)&&(n[t]=e[t]);if(e.overflow)for(t in e)e.hasOwnProperty(t)&&(n.overflow[t]=e.overflow[t]);return n},mix:Te,getWindowScrollLeft:function(e){return ie(e)},getWindowScrollTop:function(e){return ce(e)},merge:function(){for(var e={},t=arguments.length,n=Array(t),r=0;r<t;r++)n[r]=arguments[r];for(var a=0;a<n.length;a++)Ye.mix(e,n[a]);return e},viewportWidth:0,viewportHeight:0};Te(Ye,ze);var Se=Ye;var De=function(e){if(Se.isWindow(e)||9===e.nodeType)return null;var t=Se.getDocument(e).body,n=void 0,r=Se.css(e,"position");if(!("fixed"===r||"absolute"===r))return"html"===e.nodeName.toLowerCase()?null:e.parentNode;for(n=e.parentNode;n&&n!==t;n=n.parentNode)if("static"!==(r=Se.css(n,"position")))return n;return null};var Oe=function(e){for(var t={left:0,right:1/0,top:0,bottom:1/0},n=De(e),r=Se.getDocument(e),a=r.defaultView||r.parentWindow,o=r.body,i=r.documentElement;n;){if(-1!==navigator.userAgent.indexOf("MSIE")&&0===n.clientWidth||n===o||n===i||"visible"===Se.css(n,"overflow")){if(n===o||n===i)break}else{var c=Se.offset(n);c.left+=n.clientLeft,c.top+=n.clientTop,t.top=Math.max(t.top,c.top),t.right=Math.min(t.right,c.left+n.clientWidth),t.bottom=Math.min(t.bottom,c.top+n.clientHeight),t.left=Math.max(t.left,c.left)}n=De(n)}var s=null;Se.isWindow(e)||9===e.nodeType||(s=e.style.position,"absolute"===Se.css(e,"position")&&(e.style.position="fixed"));var l=Se.getWindowScrollLeft(a),u=Se.getWindowScrollTop(a),d=Se.viewportWidth(a),f=Se.viewportHeight(a),h=i.scrollWidth,m=i.scrollHeight,p=window.getComputedStyle(o);if("hidden"===p.overflowX&&(h=a.innerWidth),"hidden"===p.overflowY&&(m=a.innerHeight),e.style&&(e.style.position=s),function(e){if(Se.isWindow(e)||9===e.nodeType)return!1;var t=Se.getDocument(e).body,n=null;for(n=e.parentNode;n&&n!==t;n=n.parentNode){if("fixed"===Se.css(n,"position"))return!0}return!1}(e))t.left=Math.max(t.left,l),t.top=Math.max(t.top,u),t.right=Math.min(t.right,l+d),t.bottom=Math.min(t.bottom,u+f);else{var v=Math.max(h,l+d);t.right=Math.min(t.right,v);var _=Math.max(m,u+f);t.bottom=Math.min(t.bottom,_)}return t.top>=0&&t.left>=0&&t.bottom>t.top&&t.right>t.left?t:null};var xe=function(e,t,n,r){var a=Se.clone(e),o={width:t.width,height:t.height};return r.adjustX&&a.left<n.left&&(a.left=n.left),r.resizeWidth&&a.left>=n.left&&a.left+o.width>n.right&&(o.width-=a.left+o.width-n.right),r.adjustX&&a.left+o.width>n.right&&(a.left=Math.max(n.right-o.width,n.left)),r.adjustY&&a.top<n.top&&(a.top=n.top),r.resizeHeight&&a.top>=n.top&&a.top+o.height>n.bottom&&(o.height-=a.top+o.height-n.bottom),r.adjustY&&a.top+o.height>n.bottom&&(a.top=Math.max(n.bottom-o.height,n.top)),Se.mix(a,o)};var Ce=function(e){var t=void 0,n=void 0,r=void 0;if(Se.isWindow(e)||9===e.nodeType){var a=Se.getWindow(e);t={left:Se.getWindowScrollLeft(a),top:Se.getWindowScrollTop(a)},n=Se.viewportWidth(a),r=Se.viewportHeight(a)}else t=Se.offset(e),n=Se.outerWidth(e),r=Se.outerHeight(e);return t.width=n,t.height=r,t};var Ve=function(e,t){var n=t.charAt(0),r=t.charAt(1),a=e.width,o=e.height,i=e.left,c=e.top;return"c"===n?c+=o/2:"b"===n&&(c+=o),"c"===r?i+=a/2:"r"===r&&(i+=a),{left:i,top:c}};var je=function(e,t,n,r,a){var o=Ve(t,n[1]),i=Ve(e,n[0]),c=[i.left-o.left,i.top-o.top];return{left:Math.round(e.left-c[0]+r[0]-a[0]),top:Math.round(e.top-c[1]+r[1]-a[1])}};function Ee(e,t,n){return e.left<n.left||e.left+t.width>n.right}function Pe(e,t,n){return e.top<n.top||e.top+t.height>n.bottom}function Ae(e,t,n){var r=[];return Se.each(e,(function(e){r.push(e.replace(t,(function(e){return n[e]})))})),r}function Ne(e,t){return e[t]=-e[t],e}function Fe(e,t){return(/%$/.test(e)?parseInt(e.substring(0,e.length-1),10)/100*t:parseInt(e,10))||0}function Re(e,t){e[0]=Fe(e[0],t.width),e[1]=Fe(e[1],t.height)}var We=function(e,t,n,r){var a=n.points,o=n.offset||[0,0],i=n.targetOffset||[0,0],c=n.overflow,s=n.source||e;o=[].concat(o),i=[].concat(i),c=c||{};var l={},u=0,d=Oe(s),f=Ce(s);Re(o,f),Re(i,t);var h=je(f,t,a,o,i),m=Se.merge(f,h);if(d&&(c.adjustX||c.adjustY)&&r){if(c.adjustX&&Ee(h,f,d)){var p=Ae(a,/[lr]/gi,{l:"r",r:"l"}),v=Ne(o,0),_=Ne(i,0);(function(e,t,n){return e.left>n.right||e.left+t.width<n.left})(je(f,t,p,v,_),f,d)||(u=1,a=p,o=v,i=_)}if(c.adjustY&&Pe(h,f,d)){var y=Ae(a,/[tb]/gi,{t:"b",b:"t"}),M=Ne(o,1),g=Ne(i,1);(function(e,t,n){return e.top>n.bottom||e.top+t.height<n.top})(je(f,t,y,M,g),f,d)||(u=1,a=y,o=M,i=g)}u&&(h=je(f,t,a,o,i),Se.mix(m,h));var b=Ee(h,f,d),L=Pe(h,f,d);(b||L)&&(a=n.points,o=n.offset||[0,0],i=n.targetOffset||[0,0]),l.adjustX=c.adjustX&&b,l.adjustY=c.adjustY&&L,(l.adjustX||l.adjustY)&&(m=xe(h,f,d,l))}return m.width!==f.width&&Se.css(s,"width",Se.width(s)+m.width-f.width),m.height!==f.height&&Se.css(s,"height",Se.height(s)+m.height-f.height),Se.offset(s,{left:m.left,top:m.top},{useCssRight:n.useCssRight,useCssBottom:n.useCssBottom,useCssTransform:n.useCssTransform,ignoreShake:n.ignoreShake}),{points:a,offset:o,targetOffset:i,overflow:l}};function Ie(e,t,n){var r=n.target||t,a=Ce(r),o=!function(e){var t=Oe(e),n=Ce(e);return!t||n.left+n.width<=t.left||n.top+n.height<=t.top||n.left>=t.right||n.top>=t.bottom}(r);return We(e,a,n,o)}Ie.__getOffsetParent=De,Ie.__getVisibleRectForElement=Oe;var qe=Ie,Ue=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};var Be=function(e,t,n){var r=void 0,a=void 0,o=Se.getDocument(e),i=o.defaultView||o.parentWindow,c=Se.getWindowScrollLeft(i),s=Se.getWindowScrollTop(i),l=Se.viewportWidth(i),u=Se.viewportHeight(i),d={left:r="pageX"in t?t.pageX:c+t.clientX,top:a="pageY"in t?t.pageY:s+t.clientY,width:0,height:0},f=r>=0&&r<=c+l&&a>=0&&a<=s+u,h=[n.points[0],"cc"];return We(e,d,Ue({},n,{points:h}),f)};function Je(e){return e&&"object"==typeof e&&e.window===e}function Ge(e,t){var n=Math.floor(e),r=Math.floor(t);return Math.abs(n-r)<=1}function Ke(e,t){e!==document.activeElement&&g(t,e)&&e.focus()}function $e(e){return"function"==typeof e&&e?e():null}function Qe(e){return"object"==typeof e&&e?e:null}var Xe=function(e){function t(){var e,n,r,a;s()(this,t);for(var o=arguments.length,i=Array(o),c=0;c<o;c++)i[c]=arguments[c];return n=r=u()(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i))),r.forceAlign=function(){var e=r.props,t=e.disabled,n=e.target,a=e.align,o=e.onAlign;if(!t&&n){var i=y.a.findDOMNode(r),c=void 0,s=$e(n),l=Qe(n),u=document.activeElement;s?c=qe(i,s,a):l&&(c=Be(i,l,a)),Ke(u,i),o&&o(i,c)}},a=n,u()(r,a)}return f()(t,e),U()(t,[{key:"componentDidMount",value:function(){var e=this.props;this.forceAlign(),!e.disabled&&e.monitorWindowResize&&this.startMonitorWindowResize()}},{key:"componentDidUpdate",value:function(e){var t,n,r=!1,a=this.props;if(!a.disabled){var o=y.a.findDOMNode(this),i=o?o.getBoundingClientRect():null;if(e.disabled)r=!0;else{var c=$e(e.target),s=$e(a.target),l=Qe(e.target),u=Qe(a.target);Je(c)&&Je(s)?r=!1:(c!==s||c&&!s&&u||l&&u&&s||u&&!((t=l)===(n=u)||t&&n&&("pageX"in n&&"pageY"in n?t.pageX===n.pageX&&t.pageY===n.pageY:"clientX"in n&&"clientY"in n&&t.clientX===n.clientX&&t.clientY===n.clientY)))&&(r=!0);var d=this.sourceRect||{};r||!o||Ge(d.width,i.width)&&Ge(d.height,i.height)||(r=!0)}this.sourceRect=i}r&&this.forceAlign(),a.monitorWindowResize&&!a.disabled?this.startMonitorWindowResize():this.stopMonitorWindowResize()}},{key:"componentWillUnmount",value:function(){this.stopMonitorWindowResize()}},{key:"startMonitorWindowResize",value:function(){this.resizeHandler||(this.bufferMonitor=function(e,t){var n=void 0;function r(){n&&(clearTimeout(n),n=null)}function a(){r(),n=setTimeout(e,t)}return a.clear=r,a}(this.forceAlign,this.props.monitorBufferTime),this.resizeHandler=z(window,"resize",this.bufferMonitor))}},{key:"stopMonitorWindowResize",value:function(){this.resizeHandler&&(this.bufferMonitor.clear(),this.resizeHandler.remove(),this.resizeHandler=null)}},{key:"render",value:function(){var e=this,t=this.props,n=t.childrenProps,r=t.children,a=m.a.Children.only(r);if(n){var o={};return Object.keys(n).forEach((function(t){o[t]=e.props[n[t]]})),m.a.cloneElement(a,o)}return a}}]),t}(h.Component);Xe.propTypes={childrenProps:v.a.object,align:v.a.object.isRequired,target:v.a.oneOfType([v.a.func,v.a.shape({clientX:v.a.number,clientY:v.a.number,pageX:v.a.number,pageY:v.a.number})]),onAlign:v.a.func,monitorBufferTime:v.a.number,monitorWindowResize:v.a.bool,disabled:v.a.bool,children:v.a.any},Xe.defaultProps={target:function(){return window},monitorBufferTime:50,monitorWindowResize:!1,disabled:!1};var Ze=Xe,et=n(39),tt=function(e){function t(){return s()(this,t),u()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.shouldComponentUpdate=function(e){return e.hiddenClassName||e.visible},t.prototype.render=function(){var e=this.props,t=e.hiddenClassName,n=e.visible,r=i()(e,["hiddenClassName","visible"]);return t||m.a.Children.count(r.children)>1?(!n&&t&&(r.className+=" "+t),m.a.createElement("div",r)):m.a.Children.only(r.children)},t}(h.Component);tt.propTypes={children:v.a.any,className:v.a.string,visible:v.a.bool,hiddenClassName:v.a.string};var nt=tt,rt=function(e){function t(){return s()(this,t),u()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.className;return e.visible||(t+=" "+e.hiddenClassName),m.a.createElement("div",{className:t,onMouseEnter:e.onMouseEnter,onMouseLeave:e.onMouseLeave,onMouseDown:e.onMouseDown,onTouchStart:e.onTouchStart,style:e.style},m.a.createElement(nt,{className:e.prefixCls+"-content",visible:e.visible},e.children))},t}(h.Component);rt.propTypes={hiddenClassName:v.a.string,className:v.a.string,prefixCls:v.a.string,onMouseEnter:v.a.func,onMouseLeave:v.a.func,onMouseDown:v.a.func,onTouchStart:v.a.func,children:v.a.any};var at=rt,ot=function(e){function t(n){s()(this,t);var r=u()(this,e.call(this,n));return it.call(r),r.state={stretchChecked:!1,targetWidth:void 0,targetHeight:void 0},r.savePopupRef=I.bind(r,"popupInstance"),r.saveAlignRef=I.bind(r,"alignInstance"),r}return f()(t,e),t.prototype.componentDidMount=function(){this.rootNode=this.getPopupDomNode(),this.setStretchSize()},t.prototype.componentDidUpdate=function(){this.setStretchSize()},t.prototype.getPopupDomNode=function(){return y.a.findDOMNode(this.popupInstance)},t.prototype.getMaskTransitionName=function(){var e=this.props,t=e.maskTransitionName,n=e.maskAnimation;return!t&&n&&(t=e.prefixCls+"-"+n),t},t.prototype.getTransitionName=function(){var e=this.props,t=e.transitionName;return!t&&e.animation&&(t=e.prefixCls+"-"+e.animation),t},t.prototype.getClassName=function(e){return this.props.prefixCls+" "+this.props.className+" "+e},t.prototype.getPopupElement=function(){var e=this,t=this.savePopupRef,n=this.state,r=n.stretchChecked,o=n.targetHeight,i=n.targetWidth,c=this.props,s=c.align,l=c.visible,u=c.prefixCls,d=c.style,f=c.getClassNameFromAlign,h=c.destroyPopupOnHide,p=c.stretch,v=c.children,_=c.onMouseEnter,y=c.onMouseLeave,M=c.onMouseDown,g=c.onTouchStart,b=this.getClassName(this.currentAlignClassName||f(s)),L=u+"-hidden";l||(this.currentAlignClassName=null);var z={};p&&(-1!==p.indexOf("height")?z.height=o:-1!==p.indexOf("minHeight")&&(z.minHeight=o),-1!==p.indexOf("width")?z.width=i:-1!==p.indexOf("minWidth")&&(z.minWidth=i),r||(z.visibility="hidden",setTimeout((function(){e.alignInstance&&e.alignInstance.forceAlign()}),0)));var w={className:b,prefixCls:u,ref:t,onMouseEnter:_,onMouseLeave:y,onMouseDown:M,onTouchStart:g,style:a()({},z,d,this.getZIndexStyle())};return h?m.a.createElement(et.a,{component:"",exclusive:!0,transitionAppear:!0,transitionName:this.getTransitionName()},l?m.a.createElement(Ze,{target:this.getAlignTarget(),key:"popup",ref:this.saveAlignRef,monitorWindowResize:!0,align:s,onAlign:this.onAlign},m.a.createElement(at,a()({visible:!0},w),v)):null):m.a.createElement(et.a,{component:"",exclusive:!0,transitionAppear:!0,transitionName:this.getTransitionName(),showProp:"xVisible"},m.a.createElement(Ze,{target:this.getAlignTarget(),key:"popup",ref:this.saveAlignRef,monitorWindowResize:!0,xVisible:l,childrenProps:{visible:"xVisible"},disabled:!l,align:s,onAlign:this.onAlign},m.a.createElement(at,a()({hiddenClassName:L},w),v)))},t.prototype.getZIndexStyle=function(){var e={},t=this.props;return void 0!==t.zIndex&&(e.zIndex=t.zIndex),e},t.prototype.getMaskElement=function(){var e=this.props,t=void 0;if(e.mask){var n=this.getMaskTransitionName();t=m.a.createElement(nt,{style:this.getZIndexStyle(),key:"mask",className:e.prefixCls+"-mask",hiddenClassName:e.prefixCls+"-mask-hidden",visible:e.visible}),n&&(t=m.a.createElement(et.a,{key:"mask",showProp:"visible",transitionAppear:!0,component:"",transitionName:n},t))}return t},t.prototype.render=function(){return m.a.createElement("div",null,this.getMaskElement(),this.getPopupElement())},t}(h.Component);ot.propTypes={visible:v.a.bool,style:v.a.object,getClassNameFromAlign:v.a.func,onAlign:v.a.func,getRootDomNode:v.a.func,align:v.a.any,destroyPopupOnHide:v.a.bool,className:v.a.string,prefixCls:v.a.string,onMouseEnter:v.a.func,onMouseLeave:v.a.func,onMouseDown:v.a.func,onTouchStart:v.a.func,stretch:v.a.string,children:v.a.node,point:v.a.shape({pageX:v.a.number,pageY:v.a.number})};var it=function(){var e=this;this.onAlign=function(t,n){var r=e.props,a=r.getClassNameFromAlign(n);e.currentAlignClassName!==a&&(e.currentAlignClassName=a,t.className=e.getClassName(a)),r.onAlign(t,n)},this.setStretchSize=function(){var t=e.props,n=t.stretch,r=t.getRootDomNode,a=t.visible,o=e.state,i=o.stretchChecked,c=o.targetHeight,s=o.targetWidth;if(n&&a){var l=r();if(l){var u=l.offsetHeight,d=l.offsetWidth;c===u&&s===d&&i||e.setState({stretchChecked:!0,targetHeight:u,targetWidth:d})}}else i&&e.setState({stretchChecked:!1})},this.getTargetElement=function(){return e.props.getRootDomNode()},this.getAlignTarget=function(){var t=e.props.point;return t||e.getTargetElement}},ct=ot;function st(){}var lt=["onClick","onMouseDown","onTouchStart","onMouseEnter","onMouseLeave","onFocus","onBlur","onContextMenu"],ut=!!_.createPortal,dt={rcTrigger:v.a.shape({onPopupMouseDown:v.a.func})},ft=function(e){function t(n){s()(this,t);var r=u()(this,e.call(this,n));ht.call(r);var a=void 0;return a="popupVisible"in n?!!n.popupVisible:!!n.defaultPopupVisible,r.state={prevPopupVisible:a,popupVisible:a},lt.forEach((function(e){r["fire"+e]=function(t){r.fireEvents(e,t)}})),r}return f()(t,e),t.prototype.getChildContext=function(){return{rcTrigger:{onPopupMouseDown:this.onPopupMouseDown}}},t.prototype.componentDidMount=function(){this.componentDidUpdate({},{popupVisible:this.state.popupVisible})},t.prototype.componentDidUpdate=function(e,t){var n=this.props,r=this.state;if(ut||this.renderComponent(null,(function(){t.popupVisible!==r.popupVisible&&n.afterPopupVisibleChange(r.popupVisible)})),r.popupVisible){var a=void 0;return this.clickOutsideHandler||!this.isClickToHide()&&!this.isContextMenuToShow()||(a=n.getDocument(),this.clickOutsideHandler=z(a,"mousedown",this.onDocumentClick)),this.touchOutsideHandler||(a=a||n.getDocument(),this.touchOutsideHandler=z(a,"touchstart",this.onDocumentClick)),!this.contextMenuOutsideHandler1&&this.isContextMenuToShow()&&(a=a||n.getDocument(),this.contextMenuOutsideHandler1=z(a,"scroll",this.onContextMenuClose)),void(!this.contextMenuOutsideHandler2&&this.isContextMenuToShow()&&(this.contextMenuOutsideHandler2=z(window,"blur",this.onContextMenuClose)))}this.clearOutsideHandler()},t.prototype.componentWillUnmount=function(){this.clearDelayTimer(),this.clearOutsideHandler(),clearTimeout(this.mouseDownTimeout)},t.getDerivedStateFromProps=function(e,t){var n=e.popupVisible,r={};return void 0!==n&&t.popupVisible!==n&&(r.popupVisible=n,r.prevPopupVisible=t.popupVisible),r},t.prototype.getPopupDomNode=function(){return this._component&&this._component.getPopupDomNode?this._component.getPopupDomNode():null},t.prototype.getPopupAlign=function(){var e=this.props,t=e.popupPlacement,n=e.popupAlign,r=e.builtinPlacements;return t&&r?function(e,t,n){var r=e[t]||{};return a()({},r,n)}(r,t,n):n},t.prototype.setPopupVisible=function(e,t){var n=this.props.alignPoint,r=this.state.popupVisible;this.clearDelayTimer(),r!==e&&("popupVisible"in this.props||this.setState({popupVisible:e,prevPopupVisible:r}),this.props.onPopupVisibleChange(e)),n&&t&&this.setPoint(t)},t.prototype.delaySetPopupVisible=function(e,t,n){var r=this,a=1e3*t;if(this.clearDelayTimer(),a){var o=n?{pageX:n.pageX,pageY:n.pageY}:null;this.delayTimer=setTimeout((function(){r.setPopupVisible(e,o),r.clearDelayTimer()}),a)}else this.setPopupVisible(e,n)},t.prototype.clearDelayTimer=function(){this.delayTimer&&(clearTimeout(this.delayTimer),this.delayTimer=null)},t.prototype.clearOutsideHandler=function(){this.clickOutsideHandler&&(this.clickOutsideHandler.remove(),this.clickOutsideHandler=null),this.contextMenuOutsideHandler1&&(this.contextMenuOutsideHandler1.remove(),this.contextMenuOutsideHandler1=null),this.contextMenuOutsideHandler2&&(this.contextMenuOutsideHandler2.remove(),this.contextMenuOutsideHandler2=null),this.touchOutsideHandler&&(this.touchOutsideHandler.remove(),this.touchOutsideHandler=null)},t.prototype.createTwoChains=function(e){var t=this.props.children.props,n=this.props;return t[e]&&n[e]?this["fire"+e]:t[e]||n[e]},t.prototype.isClickToShow=function(){var e=this.props,t=e.action,n=e.showAction;return-1!==t.indexOf("click")||-1!==n.indexOf("click")},t.prototype.isContextMenuToShow=function(){var e=this.props,t=e.action,n=e.showAction;return-1!==t.indexOf("contextMenu")||-1!==n.indexOf("contextMenu")},t.prototype.isClickToHide=function(){var e=this.props,t=e.action,n=e.hideAction;return-1!==t.indexOf("click")||-1!==n.indexOf("click")},t.prototype.isMouseEnterToShow=function(){var e=this.props,t=e.action,n=e.showAction;return-1!==t.indexOf("hover")||-1!==n.indexOf("mouseEnter")},t.prototype.isMouseLeaveToHide=function(){var e=this.props,t=e.action,n=e.hideAction;return-1!==t.indexOf("hover")||-1!==n.indexOf("mouseLeave")},t.prototype.isFocusToShow=function(){var e=this.props,t=e.action,n=e.showAction;return-1!==t.indexOf("focus")||-1!==n.indexOf("focus")},t.prototype.isBlurToHide=function(){var e=this.props,t=e.action,n=e.hideAction;return-1!==t.indexOf("focus")||-1!==n.indexOf("blur")},t.prototype.forcePopupAlign=function(){this.state.popupVisible&&this._component&&this._component.alignInstance&&this._component.alignInstance.forceAlign()},t.prototype.fireEvents=function(e,t){var n=this.props.children.props[e];n&&n(t);var r=this.props[e];r&&r(t)},t.prototype.close=function(){this.setPopupVisible(!1)},t.prototype.render=function(){var e=this,t=this.state.popupVisible,n=this.props,r=n.children,a=n.forceRender,o=n.alignPoint,i=n.className,c=m.a.Children.only(r),s={key:"trigger"};this.isContextMenuToShow()?s.onContextMenu=this.onContextMenu:s.onContextMenu=this.createTwoChains("onContextMenu"),this.isClickToHide()||this.isClickToShow()?(s.onClick=this.onClick,s.onMouseDown=this.onMouseDown,s.onTouchStart=this.onTouchStart):(s.onClick=this.createTwoChains("onClick"),s.onMouseDown=this.createTwoChains("onMouseDown"),s.onTouchStart=this.createTwoChains("onTouchStart")),this.isMouseEnterToShow()?(s.onMouseEnter=this.onMouseEnter,o&&(s.onMouseMove=this.onMouseMove)):s.onMouseEnter=this.createTwoChains("onMouseEnter"),this.isMouseLeaveToHide()?s.onMouseLeave=this.onMouseLeave:s.onMouseLeave=this.createTwoChains("onMouseLeave"),this.isFocusToShow()||this.isBlurToHide()?(s.onFocus=this.onFocus,s.onBlur=this.onBlur):(s.onFocus=this.createTwoChains("onFocus"),s.onBlur=this.createTwoChains("onBlur"));var l=R()(c&&c.props&&c.props.className,i);l&&(s.className=l);var u=m.a.cloneElement(c,s);if(!ut)return m.a.createElement(O,{parent:this,visible:t,autoMount:!1,forceRender:a,getComponent:this.getComponent,getContainer:this.getContainer},(function(t){var n=t.renderComponent;return e.renderComponent=n,u}));var d=void 0;return(t||this._component||a)&&(d=m.a.createElement(N,{key:"portal",getContainer:this.getContainer,didUpdate:this.handlePortalUpdate},this.getComponent())),[u,d]},t}(m.a.Component);ft.propTypes={children:v.a.any,action:v.a.oneOfType([v.a.string,v.a.arrayOf(v.a.string)]),showAction:v.a.any,hideAction:v.a.any,getPopupClassNameFromAlign:v.a.any,onPopupVisibleChange:v.a.func,afterPopupVisibleChange:v.a.func,popup:v.a.oneOfType([v.a.node,v.a.func]).isRequired,popupStyle:v.a.object,prefixCls:v.a.string,popupClassName:v.a.string,className:v.a.string,popupPlacement:v.a.string,builtinPlacements:v.a.object,popupTransitionName:v.a.oneOfType([v.a.string,v.a.object]),popupAnimation:v.a.any,mouseEnterDelay:v.a.number,mouseLeaveDelay:v.a.number,zIndex:v.a.number,focusDelay:v.a.number,blurDelay:v.a.number,getPopupContainer:v.a.func,getDocument:v.a.func,forceRender:v.a.bool,destroyPopupOnHide:v.a.bool,mask:v.a.bool,maskClosable:v.a.bool,onPopupAlign:v.a.func,popupAlign:v.a.object,popupVisible:v.a.bool,defaultPopupVisible:v.a.bool,maskTransitionName:v.a.oneOfType([v.a.string,v.a.object]),maskAnimation:v.a.string,stretch:v.a.string,alignPoint:v.a.bool},ft.contextTypes=dt,ft.childContextTypes=dt,ft.defaultProps={prefixCls:"rc-trigger-popup",getPopupClassNameFromAlign:function(){return""},getDocument:function(){return window.document},onPopupVisibleChange:st,afterPopupVisibleChange:st,onPopupAlign:st,popupClassName:"",mouseEnterDelay:0,mouseLeaveDelay:.1,focusDelay:0,blurDelay:.15,popupStyle:{},destroyPopupOnHide:!1,popupAlign:{},defaultPopupVisible:!1,mask:!1,maskClosable:!0,action:[],showAction:[],hideAction:[]};var ht=function(){var e=this;this.onMouseEnter=function(t){var n=e.props.mouseEnterDelay;e.fireEvents("onMouseEnter",t),e.delaySetPopupVisible(!0,n,n?null:t)},this.onMouseMove=function(t){e.fireEvents("onMouseMove",t),e.setPoint(t)},this.onMouseLeave=function(t){e.fireEvents("onMouseLeave",t),e.delaySetPopupVisible(!1,e.props.mouseLeaveDelay)},this.onPopupMouseEnter=function(){e.clearDelayTimer()},this.onPopupMouseLeave=function(t){t.relatedTarget&&!t.relatedTarget.setTimeout&&e._component&&e._component.getPopupDomNode&&g(e._component.getPopupDomNode(),t.relatedTarget)||e.delaySetPopupVisible(!1,e.props.mouseLeaveDelay)},this.onFocus=function(t){e.fireEvents("onFocus",t),e.clearDelayTimer(),e.isFocusToShow()&&(e.focusTime=Date.now(),e.delaySetPopupVisible(!0,e.props.focusDelay))},this.onMouseDown=function(t){e.fireEvents("onMouseDown",t),e.preClickTime=Date.now()},this.onTouchStart=function(t){e.fireEvents("onTouchStart",t),e.preTouchTime=Date.now()},this.onBlur=function(t){e.fireEvents("onBlur",t),e.clearDelayTimer(),e.isBlurToHide()&&e.delaySetPopupVisible(!1,e.props.blurDelay)},this.onContextMenu=function(t){t.preventDefault(),e.fireEvents("onContextMenu",t),e.setPopupVisible(!0,t)},this.onContextMenuClose=function(){e.isContextMenuToShow()&&e.close()},this.onClick=function(t){if(e.fireEvents("onClick",t),e.focusTime){var n=void 0;if(e.preClickTime&&e.preTouchTime?n=Math.min(e.preClickTime,e.preTouchTime):e.preClickTime?n=e.preClickTime:e.preTouchTime&&(n=e.preTouchTime),Math.abs(n-e.focusTime)<20)return;e.focusTime=0}e.preClickTime=0,e.preTouchTime=0,e.isClickToShow()&&(e.isClickToHide()||e.isBlurToHide())&&t&&t.preventDefault&&t.preventDefault();var r=!e.state.popupVisible;(e.isClickToHide()&&!r||r&&e.isClickToShow())&&e.setPopupVisible(!e.state.popupVisible,t)},this.onPopupMouseDown=function(){var t=e.context.rcTrigger,n=void 0===t?{}:t;e.hasPopupMouseDown=!0,clearTimeout(e.mouseDownTimeout),e.mouseDownTimeout=setTimeout((function(){e.hasPopupMouseDown=!1}),0),n.onPopupMouseDown&&n.onPopupMouseDown.apply(n,arguments)},this.onDocumentClick=function(t){if(!e.props.mask||e.props.maskClosable){var n=t.target;g(Object(_.findDOMNode)(e),n)||e.hasPopupMouseDown||e.close()}},this.getRootDomNode=function(){return Object(_.findDOMNode)(e)},this.getPopupClassNameFromAlign=function(t){var n=[],r=e.props,a=r.popupPlacement,o=r.builtinPlacements,i=r.prefixCls,c=r.alignPoint,s=r.getPopupClassNameFromAlign;return a&&o&&n.push(function(e,t,n,r){var a=n.points;for(var o in e)if(e.hasOwnProperty(o)&&W(e[o].points,a,r))return t+"-placement-"+o;return""}(o,i,t,c)),s&&n.push(s(t)),n.join(" ")},this.getComponent=function(){var t=e.props,n=t.prefixCls,r=t.destroyPopupOnHide,o=t.popupClassName,i=t.action,c=t.onPopupAlign,s=t.popupAnimation,l=t.popupTransitionName,u=t.popupStyle,d=t.mask,f=t.maskAnimation,h=t.maskTransitionName,p=t.zIndex,v=t.popup,_=t.stretch,y=t.alignPoint,M=e.state,g=M.popupVisible,b=M.point,L=e.getPopupAlign(),z={};return e.isMouseEnterToShow()&&(z.onMouseEnter=e.onPopupMouseEnter),e.isMouseLeaveToHide()&&(z.onMouseLeave=e.onPopupMouseLeave),z.onMouseDown=e.onPopupMouseDown,z.onTouchStart=e.onPopupMouseDown,m.a.createElement(ct,a()({prefixCls:n,destroyPopupOnHide:r,visible:g,point:y&&b,className:o,action:i,align:L,onAlign:c,animation:s,getClassNameFromAlign:e.getPopupClassNameFromAlign},z,{stretch:_,getRootDomNode:e.getRootDomNode,style:u,mask:d,zIndex:p,transitionName:l,maskAnimation:f,maskTransitionName:h,ref:e.savePopup}),"function"==typeof v?v():v)},this.getContainer=function(){var t=e.props,n=document.createElement("div");return n.style.position="absolute",n.style.top="0",n.style.left="0",n.style.width="100%",(t.getPopupContainer?t.getPopupContainer(Object(_.findDOMNode)(e)):t.getDocument().body).appendChild(n),n},this.setPoint=function(t){e.props.alignPoint&&t&&e.setState({point:{pageX:t.pageX,pageY:t.pageY}})},this.handlePortalUpdate=function(){e.state.prevPopupVisible!==e.state.popupVisible&&e.props.afterPopupVisibleChange(e.state.popupVisible)},this.savePopup=function(t){e._component=t}};Object(M.polyfill)(ft);var mt=ft,pt={adjustX:1,adjustY:1},vt=[0,0],_t={left:{points:["cr","cl"],overflow:pt,offset:[-4,0],targetOffset:vt},right:{points:["cl","cr"],overflow:pt,offset:[4,0],targetOffset:vt},top:{points:["bc","tc"],overflow:pt,offset:[0,-4],targetOffset:vt},bottom:{points:["tc","bc"],overflow:pt,offset:[0,4],targetOffset:vt},topLeft:{points:["bl","tl"],overflow:pt,offset:[0,-4],targetOffset:vt},leftTop:{points:["tr","tl"],overflow:pt,offset:[-4,0],targetOffset:vt},topRight:{points:["br","tr"],overflow:pt,offset:[0,-4],targetOffset:vt},rightTop:{points:["tl","tr"],overflow:pt,offset:[4,0],targetOffset:vt},bottomRight:{points:["tr","br"],overflow:pt,offset:[0,4],targetOffset:vt},rightBottom:{points:["bl","br"],overflow:pt,offset:[4,0],targetOffset:vt},bottomLeft:{points:["tl","bl"],overflow:pt,offset:[0,4],targetOffset:vt},leftBottom:{points:["br","bl"],overflow:pt,offset:[-4,0],targetOffset:vt}},yt=function(e){function t(){return s()(this,t),u()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.componentDidUpdate=function(){var e=this.props.trigger;e&&e.forcePopupAlign()},t.prototype.render=function(){var e=this.props,t=e.overlay,n=e.prefixCls,r=e.id;return m.a.createElement("div",{className:n+"-inner",id:r,role:"tooltip"},"function"==typeof t?t():t)},t}(m.a.Component);yt.propTypes={prefixCls:v.a.string,overlay:v.a.oneOfType([v.a.node,v.a.func]).isRequired,id:v.a.string,trigger:v.a.any};var Mt=yt,gt=function(e){function t(){var n,r,a;s()(this,t);for(var o=arguments.length,i=Array(o),c=0;c<o;c++)i[c]=arguments[c];return n=r=u()(this,e.call.apply(e,[this].concat(i))),r.getPopupElement=function(){var e=r.props,t=e.arrowContent,n=e.overlay,a=e.prefixCls,o=e.id;return[m.a.createElement("div",{className:a+"-arrow",key:"arrow"},t),m.a.createElement(Mt,{key:"content",trigger:r.trigger,prefixCls:a,id:o,overlay:n})]},r.saveTrigger=function(e){r.trigger=e},a=n,u()(r,a)}return f()(t,e),t.prototype.getPopupDomNode=function(){return this.trigger.getPopupDomNode()},t.prototype.render=function(){var e=this.props,t=e.overlayClassName,n=e.trigger,r=e.mouseEnterDelay,o=e.mouseLeaveDelay,c=e.overlayStyle,s=e.prefixCls,l=e.children,u=e.onVisibleChange,d=e.afterVisibleChange,f=e.transitionName,h=e.animation,p=e.placement,v=e.align,_=e.destroyTooltipOnHide,y=e.defaultVisible,M=e.getTooltipContainer,g=i()(e,["overlayClassName","trigger","mouseEnterDelay","mouseLeaveDelay","overlayStyle","prefixCls","children","onVisibleChange","afterVisibleChange","transitionName","animation","placement","align","destroyTooltipOnHide","defaultVisible","getTooltipContainer"]),b=a()({},g);return"visible"in this.props&&(b.popupVisible=this.props.visible),m.a.createElement(mt,a()({popupClassName:t,ref:this.saveTrigger,prefixCls:s,popup:this.getPopupElement,action:n,builtinPlacements:_t,popupPlacement:p,popupAlign:v,getPopupContainer:M,onPopupVisibleChange:u,afterPopupVisibleChange:d,popupTransitionName:f,popupAnimation:h,defaultPopupVisible:y,destroyPopupOnHide:_,mouseLeaveDelay:o,popupStyle:c,mouseEnterDelay:r},b),l)},t}(h.Component);gt.propTypes={trigger:v.a.any,children:v.a.any,defaultVisible:v.a.bool,visible:v.a.bool,placement:v.a.string,transitionName:v.a.oneOfType([v.a.string,v.a.object]),animation:v.a.any,onVisibleChange:v.a.func,afterVisibleChange:v.a.func,overlay:v.a.oneOfType([v.a.node,v.a.func]).isRequired,overlayStyle:v.a.object,overlayClassName:v.a.string,prefixCls:v.a.string,mouseEnterDelay:v.a.number,mouseLeaveDelay:v.a.number,getTooltipContainer:v.a.func,destroyTooltipOnHide:v.a.bool,align:v.a.object,arrowContent:v.a.any,id:v.a.string},gt.defaultProps={prefixCls:"rc-tooltip",mouseEnterDelay:0,destroyTooltipOnHide:!1,mouseLeaveDelay:.1,align:{},placement:"right",trigger:["hover"],arrowContent:null};var bt=gt;t.default=bt},function(e,t,n){"use strict";n.r(t);var r=n(26),a=n.n(r),o=n(12),i=n.n(o),c=n(9),s=n.n(c),l=n(8),u=n.n(l),d=n(14),f=n.n(d),h=n(6),m=n.n(h),p=n(10),v=n.n(p),_=n(0),y=n.n(_),M=n(1),g=n.n(M),b=n(7),L=n.n(b),z=n(39);var w=n(11),k=n.n(w),H=function(e){function t(){var e,n,r,a;u()(this,t);for(var o=arguments.length,i=Array(o),c=0;c<o;c++)i[c]=arguments[c];return n=r=m()(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i))),r.close=function(e){e&&e.stopPropagation(),r.clearCloseTimer(),r.props.onClose()},r.startCloseTimer=function(){r.props.duration&&(r.closeTimer=setTimeout((function(){r.close()}),1e3*r.props.duration))},r.clearCloseTimer=function(){r.closeTimer&&(clearTimeout(r.closeTimer),r.closeTimer=null)},a=n,m()(r,a)}return v()(t,e),f()(t,[{key:"componentDidMount",value:function(){this.startCloseTimer()}},{key:"componentDidUpdate",value:function(e){(this.props.duration!==e.duration||this.props.update)&&this.restartCloseTimer()}},{key:"componentWillUnmount",value:function(){this.clearCloseTimer()}},{key:"restartCloseTimer",value:function(){this.clearCloseTimer(),this.startCloseTimer()}},{key:"render",value:function(){var e,t=this.props,n=t.prefixCls+"-notice",r=(e={},i()(e,""+n,1),i()(e,n+"-closable",t.closable),i()(e,t.className,!!t.className),e);return y.a.createElement("div",{className:k()(r),style:t.style,onMouseEnter:this.clearCloseTimer,onMouseLeave:this.startCloseTimer,onClick:t.onClick},y.a.createElement("div",{className:n+"-content"},t.children),t.closable?y.a.createElement("a",{tabIndex:"0",onClick:this.close,className:n+"-close"},t.closeIcon||y.a.createElement("span",{className:n+"-close-x"})):null)}}]),t}(_.Component);H.propTypes={duration:g.a.number,onClose:g.a.func,children:g.a.any,update:g.a.bool,closeIcon:g.a.node},H.defaultProps={onEnd:function(){},onClose:function(){},duration:1.5,style:{right:"50%"}};var T=H,Y=0,S=Date.now();function D(){return"rcNotification_"+S+"_"+Y++}var O=function(e){function t(){var e,n,r,a;u()(this,t);for(var o=arguments.length,i=Array(o),c=0;c<o;c++)i[c]=arguments[c];return n=r=m()(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i))),r.state={notices:[]},r.add=function(e){var t=e.key=e.key||D(),n=r.props.maxCount;r.setState((function(r){var a=r.notices,o=a.map((function(e){return e.key})).indexOf(t),i=a.concat();return-1!==o?i.splice(o,1,e):(n&&a.length>=n&&(e.updateKey=i[0].updateKey||i[0].key,i.shift()),i.push(e)),{notices:i}}))},r.remove=function(e){r.setState((function(t){return{notices:t.notices.filter((function(t){return t.key!==e}))}}))},a=n,m()(r,a)}return v()(t,e),f()(t,[{key:"getTransitionName",value:function(){var e=this.props,t=e.transitionName;return!t&&e.animation&&(t=e.prefixCls+"-"+e.animation),t}},{key:"render",value:function(){var e,t=this,n=this.props,r=this.state.notices,a=r.map((function(e,a){var o=Boolean(a===r.length-1&&e.updateKey),i=e.updateKey?e.updateKey:e.key,c=function(){var e=[].slice.call(arguments,0);return 1===e.length?e[0]:function(){for(var t=0;t<e.length;t++)e[t]&&e[t].apply&&e[t].apply(this,arguments)}}(t.remove.bind(t,e.key),e.onClose);return y.a.createElement(T,s()({prefixCls:n.prefixCls},e,{key:i,update:o,onClose:c,onClick:e.onClick,closeIcon:n.closeIcon}),e.content)})),o=(e={},i()(e,n.prefixCls,1),i()(e,n.className,!!n.className),e);return y.a.createElement("div",{className:k()(o),style:n.style},y.a.createElement(z.a,{transitionName:this.getTransitionName()},a))}}]),t}(_.Component);O.propTypes={prefixCls:g.a.string,transitionName:g.a.string,animation:g.a.oneOfType([g.a.string,g.a.object]),style:g.a.object,maxCount:g.a.number,closeIcon:g.a.node},O.defaultProps={prefixCls:"rc-notification",animation:"fade",style:{top:65,left:"50%"}},O.newInstance=function(e,t){var n=e||{},r=n.getContainer,o=a()(n,["getContainer"]),i=document.createElement("div");r?r().appendChild(i):document.body.appendChild(i);var c=!1;L.a.render(y.a.createElement(O,s()({},o,{ref:function(e){c||(c=!0,t({notice:function(t){e.add(t)},removeNotice:function(t){e.remove(t)},component:e,destroy:function(){L.a.unmountComponentAtNode(i),i.parentNode.removeChild(i)}}))}})),i)};var x=O;t.default=x},function(e,t,n){"use strict";var r=n(4),a=n(15),o=Object(r.a)((function(e){return Object(a.a)(e.length,(function(t,n){var r=Array.prototype.slice.call(arguments,0);return r[0]=n,r[1]=t,e.apply(this,r)}))}));t.a=o}]); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0L2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9wcm9wLXR5cGVzL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbW9tZW50LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9fY3VycnkyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9fY3VycnkxLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9faXNQbGFjZWhvbGRlci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9oZWxwZXJzL3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9oZWxwZXJzL2NsYXNzQ2FsbENoZWNrLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL2hlbHBlcnMvZXh0ZW5kcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9oZWxwZXJzL2luaGVyaXRzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jbGFzc25hbWVzL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL2hlbHBlcnMvZGVmaW5lUHJvcGVydHkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZGVmaW5lUHJvcGVydHkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvaGVscGVycy9jcmVhdGVDbGFzcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvY3VycnlOLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9fY3VycnlOLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9fYXJpdHkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbGliL2NvbmZpZy1wcm92aWRlci9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY3JvY2tzL2NvcmUvaXNGdW5jdGlvbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9saWIvY29sL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9pbW1lci1wZWFzeS9kaXN0L2ltbWVyLm1vZHVsZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2dsb2JhbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2NvcmUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19kZXNjcmlwdG9ycy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtbGlmZWN5Y2xlcy1jb21wYXQvcmVhY3QtbGlmZWN5Y2xlcy1jb21wYXQuZXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvaGVscGVycy9vYmplY3RXaXRob3V0UHJvcGVydGllcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL3NyYy9BamF4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AYW50LWRlc2lnbi9pY29ucy1yZWFjdC9lcy91dGlscy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1kcC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2hhcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY3JvY2tzL2NvcmUvaGFzQWxnLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fZXhwb3J0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faGlkZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2lzLW9iamVjdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLWlvYmplY3QuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL193a3MuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbGliL191dGlsL3dhcm5pbmcuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvc2xpY2VkVG9BcnJheS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtYW5pbWF0ZS9lcy9DaGlsZHJlblV0aWxzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jc3MtYW5pbWF0aW9uL2VzL0V2ZW50LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jc3MtYW5pbWF0aW9uL2VzL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1hbmltYXRlL2VzL3V0aWwvYW5pbWF0ZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtYW5pbWF0ZS9lcy9BbmltYXRlQ2hpbGQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLWFuaW1hdGUvZXMvQW5pbWF0ZS5qcyIsIndlYnBhY2s6Ly8vKHdlYnBhY2spL2J1aWxkaW4vZ2xvYmFsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fYW4tb2JqZWN0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fZmFpbHMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Nyb2Nrcy9NYXliZS9zYWZlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9yb3cvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL29iamVjdC1hc3NpZ24vaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Nyb2Nrcy9jb3JlL2ZsTmFtZXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Nyb2Nrcy9jb3JlL2lzU2FtZVR5cGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbGliL2ljb24vaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19wcm9wZXJ0eS1kZXNjLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fb2JqZWN0LWtleXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19saWJyYXJ5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fdWlkLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fb2JqZWN0LXBpZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9saWIvX3V0aWwvdHlwZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9oZWxwZXJzL3R5cGVvZi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9saWIvaW5wdXQvVGV4dEFyZWEuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbGliL25vdGlmaWNhdGlvbi9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY3JvY2tzL2NvcmUvY3VycnkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Nyb2Nrcy9jb3JlL2lzQXJyYXkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Nyb2Nrcy9jb3JlL2lzT2JqZWN0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jcm9ja3MvY29yZS9pc1N0cmluZy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY3JvY2tzL2NvcmUvdHlwZXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3Byb2Nlc3MvYnJvd3Nlci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLXByaW1pdGl2ZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2RlZmluZWQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL190by1pbnRlZ2VyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fc2hhcmVkLWtleS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3NoYXJlZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2VudW0tYnVnLWtleXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3QtZ29wcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLW9iamVjdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2l0ZXJhdG9ycy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1jcmVhdGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19zZXQtdG8tc3RyaW5nLXRhZy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3drcy1leHQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL193a3MtZGVmaW5lLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9sb2NhbGUtcHJvdmlkZXIvTG9jYWxlUmVjZWl2ZXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL29taXQuanMvZXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbGliL3Rvb2x0aXAvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL3JlZ2VuZXJhdG9yL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tZW1vaXplcmlmaWMvbWVtb2l6ZXJpZmljLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9zeW1ib2wtb2JzZXJ2YWJsZS9lcy9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9yZWdlbmVyYXRvci9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9hcnJheUxpa2VUb0FycmF5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yZWdlbmVyYXRvci1ydW50aW1lL3J1bnRpbWUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Nyb2Nrcy9jb3JlL01heWJlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jcm9ja3MvY29yZS9pc1NlbWlncm91cC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY3JvY2tzL2NvcmUvZXF1YWxzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jcm9ja3MvY29yZS90eXBlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jcm9ja3MvY29yZS9pc0FwcGxpY2F0aXZlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jcm9ja3MvY29yZS9pc0FwcGx5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9pbnB1dC9DbGVhcmFibGVMYWJlbGVkSW5wdXQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvY29yZS1qcy9vYmplY3QvZGVmaW5lLXByb3BlcnR5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fY3R4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faWU4LWRvbS1kZWZpbmUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19kb20tY3JlYXRlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fb2JqZWN0LWtleXMtaW50ZXJuYWwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19pb2JqZWN0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fY29mLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faXRlci1kZWZpbmUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19yZWRlZmluZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1nb3BuLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fb2JqZWN0LWdvcGQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLXV0aWwvbGliL3dhcm5pbmcuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbGliL2xvY2FsZS9kZWZhdWx0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9kYXRlLXBpY2tlci9sb2NhbGUvZW5fVVMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbGliL3RpbWUtcGlja2VyL2xvY2FsZS9lbl9VUy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9saWIvaW5wdXQvSW5wdXQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYWYuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYXItZHouanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYXIta3cuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYXItbHkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYXItbWEuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYXItc2EuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYXItdG4uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYXouanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYmUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYmcuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYm0uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYm4uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYm8uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYnIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYnMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvY2EuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvY3MuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvY3YuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvY3kuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZGEuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZGUtYXQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZGUtY2guanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZHYuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZWwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZW4tYXUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZW4tY2EuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZW4tZ2IuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZW4taWUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZW4taWwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZW4taW4uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZW4tbnouanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZW4tc2cuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZW8uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZXMtZG8uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZXMtdXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZXQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZXUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZmEuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZmkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZmlsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2ZvLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2ZyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2ZyLWNhLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2ZyLWNoLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2Z5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2dhLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2dkLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2dsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2dvbS1kZXZhLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2dvbS1sYXRuLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2d1LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2hlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2hpLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2hyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2h1LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2h5LWFtLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2lkLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2lzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2l0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2l0LWNoLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2phLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2p2LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2thLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2trLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2ttLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2tuLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2tvLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2t1LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2t5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2xiLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2xvLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2x0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2x2LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL21lLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL21pLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL21rLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL21sLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL21uLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL21yLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL21zLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL21zLW15LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL210LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL215LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL25iLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL25lLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL25sLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL25sLWJlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL25uLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL29jLWxuYy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9wYS1pbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9wbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9wdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9wdC1ici5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9yby5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9ydS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9zZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9zZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9zaS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9zay5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9zbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9zcS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9zci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9zci1jeXJsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3NzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3N2LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3N3LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3RhLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3RlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3RldC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS90Zy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS90aC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS90ay5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS90bC1waC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS90bGguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdHIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdHpsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3R6bS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS90em0tbGF0bi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS91Zy1jbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS91ay5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS91ci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS91ei5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS91ei1sYXRuLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3ZpLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3gtcHNldWRvLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3lvLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3poLWNuLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3poLWhrLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3poLW1vLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3poLXR3LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AYW50LWRlc2lnbi9jcmVhdGUtcmVhY3QtY29udGV4dC9saWIvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbGliL191dGlsL3JhZi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9saWIvZ3JpZC9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9saWIvZ3JpZC9Sb3dDb250ZXh0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9lbnF1aXJlLmpzL3NyYy9VdGlsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb21wb25lbnQtaW5kZXhvZi9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2FycmF5TGlrZVRvQXJyYXkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BhbnQtZGVzaWduL2ljb25zLXJlYWN0L2VzL2NvbXBvbmVudHMvSWNvbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9hc3luY1RvR2VuZXJhdG9yLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3RvQ29uc3VtYWJsZUFycmF5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9zcHJpbnRmLWpzL3NyYy9zcHJpbnRmLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jcm9ja3MvTWF5YmUvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2RlYm91bmNlL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9zeW1ib2wtb2JzZXJ2YWJsZS9lcy9wb255ZmlsbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vY29sb3JzL2xpYi9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9saWIvYnV0dG9uL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZGVmaW5lUHJvcGVydHkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9hc3luY1RvR2VuZXJhdG9yLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9xdWVyeS1zdHJpbmcvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvbXBvbmVudC1jbGFzc2VzL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvdG9Db25zdW1hYmxlQXJyYXkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FkZC1kb20tZXZlbnQtbGlzdGVuZXIvbGliL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9wb3BvdmVyL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9odG1sLWVudGl0aWVzL2xpYi9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZmV0Y2gtZGVkdXBlL2VzL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AYmpvcm5hZ2gvdXNlLWZldGNoL2VzL0ZldGNoUHJvdmlkZXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Biam9ybmFnaC91c2UtZmV0Y2gvZXMvdXRpbHMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Biam9ybmFnaC91c2UtZmV0Y2gvZXMvdXNlRmV0Y2guanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvYXJyYXlXaXRob3V0SG9sZXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvaXRlcmFibGVUb0FycmF5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL25vbkl0ZXJhYmxlU3ByZWFkLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yZWFjdC9janMvcmVhY3QucHJvZHVjdGlvbi5taW4uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9janMvcmVhY3QtZG9tLnByb2R1Y3Rpb24ubWluLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9zY2hlZHVsZXIvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3NjaGVkdWxlci9janMvc2NoZWR1bGVyLnByb2R1Y3Rpb24ubWluLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jcm9ja3MvY29yZS9kZWZpbmVVbmlvbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY3JvY2tzL2NvcmUvaXNFbXB0eS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY3JvY2tzL2NvcmUvaXNNb25vaWQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Nyb2Nrcy9jb3JlL2lzU2FtZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY3JvY2tzL2NvcmUvaW1wbGVtZW50cy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY3JvY2tzL2NvcmUvaW5uZXJDb25jYXQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Nyb2Nrcy9jb3JlL2luc3BlY3QuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Nyb2Nrcy9jb3JlL2lzU3ltYm9sLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jcm9ja3MvY29yZS9pc0RhdGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Nyb2Nrcy9jb3JlL2FwT3JGdW5jLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jcm9ja3MvY29yZS9pc0Z1bmN0b3IuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Nyb2Nrcy9jb3JlL2lzVHlwZVJlcE9mLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jcm9ja3MvY29yZS9jb21wb3NlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jcm9ja3MvY29yZS9wcmVkT3JGdW5jLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jcm9ja3MvY29yZS9pc1ByZWRPckZ1bmMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvYXJyYXlXaXRoSG9sZXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvaXRlcmFibGVUb0FycmF5TGltaXQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvbm9uSXRlcmFibGVSZXN0LmpzIiwid2VicGFjazovLy8od2VicGFjaykvYnVpbGRpbi9oYXJtb255LW1vZHVsZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vaWNvbnMvbGliL2Rpc3QuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9mbi9vYmplY3QvZGVmaW5lLXByb3BlcnR5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9lczYub2JqZWN0LmRlZmluZS1wcm9wZXJ0eS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2EtZnVuY3Rpb24uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvY29yZS1qcy9vYmplY3QvYXNzaWduLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvZm4vb2JqZWN0L2Fzc2lnbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2Lm9iamVjdC5hc3NpZ24uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3QtYXNzaWduLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fYXJyYXktaW5jbHVkZXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL190by1sZW5ndGguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL190by1hYnNvbHV0ZS1pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9jb3JlLWpzL3N5bWJvbC9pdGVyYXRvci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL3N5bWJvbC9pdGVyYXRvci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2LnN0cmluZy5pdGVyYXRvci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3N0cmluZy1hdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2l0ZXItY3JlYXRlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fb2JqZWN0LWRwcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2h0bWwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3QtZ3BvLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy93ZWIuZG9tLml0ZXJhYmxlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9lczYuYXJyYXkuaXRlcmF0b3IuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19hZGQtdG8tdW5zY29wYWJsZXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19pdGVyLXN0ZXAuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvY29yZS1qcy9zeW1ib2wuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9mbi9zeW1ib2wvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL2VzNi5zeW1ib2wuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19tZXRhLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fZW51bS1rZXlzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faXMtYXJyYXkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3QtZ29wbi1leHQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL2VzNy5zeW1ib2wuYXN5bmMtaXRlcmF0b3IuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL2VzNy5zeW1ib2wub2JzZXJ2YWJsZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9jb3JlLWpzL29iamVjdC9zZXQtcHJvdG90eXBlLW9mLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvZm4vb2JqZWN0L3NldC1wcm90b3R5cGUtb2YuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL2VzNi5vYmplY3Quc2V0LXByb3RvdHlwZS1vZi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3NldC1wcm90by5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9jb3JlLWpzL29iamVjdC9jcmVhdGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9mbi9vYmplY3QvY3JlYXRlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9lczYub2JqZWN0LmNyZWF0ZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vY29sb3JzL2xpYi9nZW5lcmF0ZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvdGlueWNvbG9yMi90aW55Y29sb3IuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbGliL2ljb24vSWNvbkZvbnQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbGliL2ljb24vdXRpbHMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3Byb3AtdHlwZXMvZmFjdG9yeVdpdGhUaHJvd2luZ1NoaW1zLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9wcm9wLXR5cGVzL2xpYi9SZWFjdFByb3BUeXBlc1NlY3JldC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9saWIvbG9jYWxlLXByb3ZpZGVyL2RlZmF1bHQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLXBhZ2luYXRpb24vbGliL2xvY2FsZS9lbl9VUy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtY2FsZW5kYXIvbGliL2xvY2FsZS9lbl9VUy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9saWIvY2FsZW5kYXIvbG9jYWxlL2VuX1VTLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9pY29uL3R3b1RvbmVQcmltYXJ5Q29sb3IuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbGliL2xvY2FsZS1wcm92aWRlci9pbmRleC5qcyIsIndlYnBhY2s6Ly8vKHdlYnBhY2spL2J1aWxkaW4vbW9kdWxlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlIHN5bmMgXlxcLlxcLy4qJCIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9saWIvX3V0aWwvaW50ZXJvcERlZmF1bHQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbGliL21vZGFsL2xvY2FsZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9saWIvY29uZmlnLXByb3ZpZGVyL2NvbnRleHQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BhbnQtZGVzaWduL2NyZWF0ZS1yZWFjdC1jb250ZXh0L2xpYi9pbXBsZW1lbnRhdGlvbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZ3VkL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93YXJuaW5nL3dhcm5pbmcuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbGliL2NvbmZpZy1wcm92aWRlci9yZW5kZXJFbXB0eS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9saWIvZW1wdHkvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbGliL2VtcHR5L2VtcHR5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9lbXB0eS9zaW1wbGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbGliL2lucHV0L1Jlc2l6YWJsZVRleHRBcmVhLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9yYy1yZXNpemUtb2JzZXJ2ZXIvZXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLXV0aWwvbGliL0RvbS9maW5kRE9NTm9kZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtdXRpbC9saWIvQ2hpbGRyZW4vdG9BcnJheS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtdXRpbC9ub2RlX21vZHVsZXMvcmVhY3QtaXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLXV0aWwvbm9kZV9tb2R1bGVzL3JlYWN0LWlzL2Nqcy9yZWFjdC1pcy5wcm9kdWN0aW9uLm1pbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtdXRpbC9saWIvcmVmLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yZXNpemUtb2JzZXJ2ZXItcG9seWZpbGwvZGlzdC9SZXNpemVPYnNlcnZlci5lcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvcmMtcmVzaXplLW9ic2VydmVyL2VzL3V0aWwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbGliL2lucHV0L2NhbGN1bGF0ZU5vZGVIZWlnaHQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhZi9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcGVyZm9ybWFuY2Utbm93L2xpYi9wZXJmb3JtYW5jZS1ub3cuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbGliL2J1dHRvbi9idXR0b24uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbGliL191dGlsL3dhdmUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Nzcy1hbmltYXRpb24vbGliL0V2ZW50LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9idXR0b24vYnV0dG9uLWdyb3VwLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9ncmlkL3Jvdy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9saWIvX3V0aWwvcmVzcG9uc2l2ZU9ic2VydmUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2VucXVpcmUuanMvc3JjL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9lbnF1aXJlLmpzL3NyYy9NZWRpYVF1ZXJ5RGlzcGF0Y2guanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2VucXVpcmUuanMvc3JjL01lZGlhUXVlcnkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2VucXVpcmUuanMvc3JjL1F1ZXJ5SGFuZGxlci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9saWIvZ3JpZC9jb2wuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3N0cmljdC11cmktZW5jb2RlL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9kZWNvZGUtdXJpLWNvbXBvbmVudC9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2FycmF5V2l0aG91dEhvbGVzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvaXRlcmFibGVUb0FycmF5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9ub25JdGVyYWJsZVNwcmVhZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYWRkLWRvbS1ldmVudC1saXN0ZW5lci9saWIvRXZlbnRPYmplY3QuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FkZC1kb20tZXZlbnQtbGlzdGVuZXIvbGliL0V2ZW50QmFzZU9iamVjdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9saWIvdG9vbHRpcC9wbGFjZW1lbnRzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy10b29sdGlwL2xpYi9wbGFjZW1lbnRzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9odG1sLWVudGl0aWVzL2xpYi94bWwtZW50aXRpZXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2h0bWwtZW50aXRpZXMvbGliL2h0bWw0LWVudGl0aWVzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9odG1sLWVudGl0aWVzL2xpYi9odG1sNS1lbnRpdGllcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX3BpcGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19jdXJyeTMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19pc0FycmF5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9faXNTdHJpbmcuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19pc0FycmF5TGlrZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX3h3cmFwLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9iaW5kLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9fcmVkdWNlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9yZWR1Y2UuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19jaGVja0Zvck1ldGhvZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvc2xpY2UuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL3RhaWwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL3BpcGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19pc0ludGVnZXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL250aC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvcGF0aHMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL3BhdGguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19pc1RyYW5zZm9ybWVyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9fZGlzcGF0Y2hhYmxlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9fbWFwLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9feGZCYXNlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9feG1hcC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX2hhcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX2lzQXJndW1lbnRzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9rZXlzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9tYXAuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL3Byb3AuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL3BsdWNrLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9faWRlbnRpdHkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2lkZW50aXR5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9fYXJyYXlGcm9tSXRlcmF0b3IuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19pbmNsdWRlc1dpdGguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19vYmplY3RJcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvdHlwZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX2VxdWFscy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX2Z1bmN0aW9uTmFtZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvZXF1YWxzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9faW5kZXhPZi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX2luY2x1ZGVzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9fU2V0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy91bmlxLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy91bmlxQnkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL194ZmlsdGVyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9maWx0ZXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19pc09iamVjdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX2ZpbHRlci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvcmVqZWN0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9fY29tcGxlbWVudC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL3NyYy9pMThuLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9kZWZhdWx0VG8uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL3BhdGhPci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaWZFbHNlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9tYXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2FsbFBhc3MuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL3Byb3BFcS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvZm9yRWFjaC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZWFzeS1wZWFzeS9ub2RlX21vZHVsZXMvcmVkdXgvZXMvcmVkdXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlZHV4LXRodW5rL2VzL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9lYXN5LXBlYXN5L25vZGVfbW9kdWxlcy9pcy1wbGFpbi1vYmplY3QvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Vhc3ktcGVhc3kvbm9kZV9tb2R1bGVzL2lzb2JqZWN0L2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9lYXN5LXBlYXN5L2Rpc3QvZWFzeS1wZWFzeS5lc20uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL3JldmVyc2UuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL3Byb3BPci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvYW55UGFzcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX3h0YXAuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL3RhcC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX2lzRnVuY3Rpb24uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19xdW90ZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX3RvSVNPU3RyaW5nLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy90b1N0cmluZy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX3RvU3RyaW5nLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnZva2VyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9jb25kLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9sZW5ndGguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19pc051bWJlci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvc3BsaXRBdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX21ha2VGbGF0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9mbGF0dGVuLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbmRleE9mLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9feGRyb3AuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2Ryb3AuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2lzTmlsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9ub3QuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2luY2x1ZGVzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9fXy5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvanMvbWFpbi11aS90cmFuc2xhdGlvblN0YXR1cy5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvanMvbWFpbi11aS9sYW5nTmF2aWdhdGlvbi5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvanMvbWFpbi11aS9rZXlzLmpzIiwid2VicGFjazovLy8uL3NyYy9qcy9tYWluLXVpL2NvbXBvbmVudHMvVHJhbnNsYXRpb25FZGl0b3IuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2pzL21haW4tdWkvY29tcG9uZW50cy9GbGFnLmpzIiwid2VicGFjazovLy8uL3NyYy9qcy9tYWluLXVpL2NvbXBvbmVudHMvQWN0aW9ucy5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvanMvbWFpbi11aS9jb21wb25lbnRzL0VkaXRUcmFuc2xhdGlvblBvcHVwLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9fY29uY2F0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9fY3JlYXRlUGFydGlhbEFwcGxpY2F0b3IuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL3BhcnRpYWwuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2pzL21haW4tdWkvY29tcG9uZW50cy9ub3RpZmljYXRpb24uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2Fsd2F5cy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvY29uY2F0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9hcHBlbmQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9zcmMvZXZlbnQuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2pzL21haW4tdWkvY29tcG9uZW50cy9MYW5ndWFnZXNDZWxsLmpzIiwid2VicGFjazovLy8uL3NyYy9qcy9tYWluLXVpL3N0b3JlLmpzIiwid2VicGFjazovLy8uL3NyYy9qcy9tYWluLXVpL21haW4uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLXV0aWwvZXMvRG9tL2NvbnRhaW5zLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy11dGlsL2VzL0RvbS9hZGRFdmVudExpc3RlbmVyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy11dGlsL2VzL0NvbnRhaW5lclJlbmRlci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtdXRpbC9lcy9Qb3J0YWwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLXRyaWdnZXIvZXMvdXRpbHMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2RvbS1hbGlnbi9lcy9wcm9wZXJ0eVV0aWxzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9kb20tYWxpZ24vZXMvdXRpbHMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2RvbS1hbGlnbi9lcy9nZXRPZmZzZXRQYXJlbnQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2RvbS1hbGlnbi9lcy9nZXRWaXNpYmxlUmVjdEZvckVsZW1lbnQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2RvbS1hbGlnbi9lcy9pc0FuY2VzdG9yRml4ZWQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2RvbS1hbGlnbi9lcy9hZGp1c3RGb3JWaWV3cG9ydC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZG9tLWFsaWduL2VzL2dldFJlZ2lvbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZG9tLWFsaWduL2VzL2dldEFsaWduT2Zmc2V0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9kb20tYWxpZ24vZXMvZ2V0RWxGdXR1cmVQb3MuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2RvbS1hbGlnbi9lcy9hbGlnbi9hbGlnbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZG9tLWFsaWduL2VzL2FsaWduL2FsaWduRWxlbWVudC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZG9tLWFsaWduL2VzL2FsaWduL2FsaWduUG9pbnQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLWFsaWduL2VzL3V0aWwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLWFsaWduL2VzL0FsaWduLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1hbGlnbi9lcy9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtdHJpZ2dlci9lcy9MYXp5UmVuZGVyQm94LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy10cmlnZ2VyL2VzL1BvcHVwSW5uZXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLXRyaWdnZXIvZXMvUG9wdXAuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLXRyaWdnZXIvZXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLXRvb2x0aXAvZXMvcGxhY2VtZW50cy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtdG9vbHRpcC9lcy9Db250ZW50LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy10b29sdGlwL2VzL1Rvb2x0aXAuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLXRvb2x0aXAvZXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLW5vdGlmaWNhdGlvbi9lcy9Ob3RpY2UuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLW5vdGlmaWNhdGlvbi9lcy9Ob3RpZmljYXRpb24uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLXV0aWwvZXMvY3JlYXRlQ2hhaW5lZEZ1bmN0aW9uLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1ub3RpZmljYXRpb24vZXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ZsaXAuanMiXSwibmFtZXMiOlsiaW5zdGFsbGVkTW9kdWxlcyIsIl9fd2VicGFja19yZXF1aXJlX18iLCJtb2R1bGVJZCIsImV4cG9ydHMiLCJtb2R1bGUiLCJpIiwibCIsIm1vZHVsZXMiLCJjYWxsIiwibSIsImMiLCJkIiwibmFtZSIsImdldHRlciIsIm8iLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJnZXQiLCJyIiwiU3ltYm9sIiwidG9TdHJpbmdUYWciLCJ2YWx1ZSIsInQiLCJtb2RlIiwiX19lc01vZHVsZSIsIm5zIiwiY3JlYXRlIiwia2V5IiwiYmluZCIsIm4iLCJvYmplY3QiLCJwcm9wZXJ0eSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwicCIsInMiLCJob29rQ2FsbGJhY2siLCJzb21lIiwiaG9va3MiLCJhcHBseSIsImFyZ3VtZW50cyIsImlzQXJyYXkiLCJpbnB1dCIsIkFycmF5IiwidG9TdHJpbmciLCJpc09iamVjdCIsImhhc093blByb3AiLCJhIiwiYiIsImlzT2JqZWN0RW1wdHkiLCJvYmoiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwibGVuZ3RoIiwiayIsImlzVW5kZWZpbmVkIiwiaXNOdW1iZXIiLCJpc0RhdGUiLCJEYXRlIiwibWFwIiwiYXJyIiwiZm4iLCJyZXMiLCJwdXNoIiwiZXh0ZW5kIiwidmFsdWVPZiIsImNyZWF0ZVVUQyIsImZvcm1hdCIsImxvY2FsZSIsInN0cmljdCIsImNyZWF0ZUxvY2FsT3JVVEMiLCJ1dGMiLCJnZXRQYXJzaW5nRmxhZ3MiLCJfcGYiLCJlbXB0eSIsInVudXNlZFRva2VucyIsInVudXNlZElucHV0Iiwib3ZlcmZsb3ciLCJjaGFyc0xlZnRPdmVyIiwibnVsbElucHV0IiwiaW52YWxpZEVyYSIsImludmFsaWRNb250aCIsImludmFsaWRGb3JtYXQiLCJ1c2VySW52YWxpZGF0ZWQiLCJpc28iLCJwYXJzZWREYXRlUGFydHMiLCJlcmEiLCJtZXJpZGllbSIsInJmYzI4MjIiLCJ3ZWVrZGF5TWlzbWF0Y2giLCJpc1ZhbGlkIiwiX2lzVmFsaWQiLCJmbGFncyIsInBhcnNlZFBhcnRzIiwiaXNOb3dWYWxpZCIsImlzTmFOIiwiX2QiLCJnZXRUaW1lIiwiaW52YWxpZFdlZWtkYXkiLCJfc3RyaWN0IiwidW5kZWZpbmVkIiwiYmlnSG91ciIsImlzRnJvemVuIiwiY3JlYXRlSW52YWxpZCIsIk5hTiIsImZ1biIsInRoaXMiLCJsZW4iLCJtb21lbnRQcm9wZXJ0aWVzIiwidXBkYXRlSW5Qcm9ncmVzcyIsImNvcHlDb25maWciLCJ0byIsImZyb20iLCJwcm9wIiwidmFsIiwiX2lzQU1vbWVudE9iamVjdCIsIl9pIiwiX2YiLCJfbCIsIl90em0iLCJfaXNVVEMiLCJfb2Zmc2V0IiwiX2xvY2FsZSIsIk1vbWVudCIsImNvbmZpZyIsInVwZGF0ZU9mZnNldCIsImlzTW9tZW50Iiwid2FybiIsIm1zZyIsInN1cHByZXNzRGVwcmVjYXRpb25XYXJuaW5ncyIsImNvbnNvbGUiLCJkZXByZWNhdGUiLCJmaXJzdFRpbWUiLCJkZXByZWNhdGlvbkhhbmRsZXIiLCJhcmciLCJhcmdzIiwic2xpY2UiLCJqb2luIiwiRXJyb3IiLCJzdGFjayIsImtleXMiLCJkZXByZWNhdGlvbnMiLCJkZXByZWNhdGVTaW1wbGUiLCJpc0Z1bmN0aW9uIiwiRnVuY3Rpb24iLCJtZXJnZUNvbmZpZ3MiLCJwYXJlbnRDb25maWciLCJjaGlsZENvbmZpZyIsIkxvY2FsZSIsInNldCIsInplcm9GaWxsIiwibnVtYmVyIiwidGFyZ2V0TGVuZ3RoIiwiZm9yY2VTaWduIiwiYWJzTnVtYmVyIiwiTWF0aCIsImFicyIsInplcm9zVG9GaWxsIiwicG93IiwibWF4Iiwic3Vic3RyIiwiZm9ybWF0dGluZ1Rva2VucyIsImxvY2FsRm9ybWF0dGluZ1Rva2VucyIsImZvcm1hdEZ1bmN0aW9ucyIsImZvcm1hdFRva2VuRnVuY3Rpb25zIiwiYWRkRm9ybWF0VG9rZW4iLCJ0b2tlbiIsInBhZGRlZCIsIm9yZGluYWwiLCJjYWxsYmFjayIsImZ1bmMiLCJsb2NhbGVEYXRhIiwiZm9ybWF0TW9tZW50IiwiZXhwYW5kRm9ybWF0IiwiYXJyYXkiLCJtYXRjaCIsInJlcGxhY2UiLCJtb20iLCJvdXRwdXQiLCJtYWtlRm9ybWF0RnVuY3Rpb24iLCJpbnZhbGlkRGF0ZSIsInJlcGxhY2VMb25nRGF0ZUZvcm1hdFRva2VucyIsImxvbmdEYXRlRm9ybWF0IiwibGFzdEluZGV4IiwidGVzdCIsImFsaWFzZXMiLCJhZGRVbml0QWxpYXMiLCJ1bml0Iiwic2hvcnRoYW5kIiwibG93ZXJDYXNlIiwidG9Mb3dlckNhc2UiLCJub3JtYWxpemVVbml0cyIsInVuaXRzIiwibm9ybWFsaXplT2JqZWN0VW5pdHMiLCJpbnB1dE9iamVjdCIsIm5vcm1hbGl6ZWRQcm9wIiwibm9ybWFsaXplZElucHV0IiwicHJpb3JpdGllcyIsImFkZFVuaXRQcmlvcml0eSIsInByaW9yaXR5IiwiaXNMZWFwWWVhciIsInllYXIiLCJhYnNGbG9vciIsImNlaWwiLCJmbG9vciIsInRvSW50IiwiYXJndW1lbnRGb3JDb2VyY2lvbiIsImNvZXJjZWROdW1iZXIiLCJpc0Zpbml0ZSIsIm1ha2VHZXRTZXQiLCJrZWVwVGltZSIsInNldCQxIiwibW9udGgiLCJkYXRlIiwiZGF5c0luTW9udGgiLCJyZWdleGVzIiwibWF0Y2gxIiwibWF0Y2gyIiwibWF0Y2gzIiwibWF0Y2g0IiwibWF0Y2g2IiwibWF0Y2gxdG8yIiwibWF0Y2gzdG80IiwibWF0Y2g1dG82IiwibWF0Y2gxdG8zIiwibWF0Y2gxdG80IiwibWF0Y2gxdG82IiwibWF0Y2hVbnNpZ25lZCIsIm1hdGNoU2lnbmVkIiwibWF0Y2hPZmZzZXQiLCJtYXRjaFNob3J0T2Zmc2V0IiwibWF0Y2hXb3JkIiwiYWRkUmVnZXhUb2tlbiIsInJlZ2V4Iiwic3RyaWN0UmVnZXgiLCJpc1N0cmljdCIsImdldFBhcnNlUmVnZXhGb3JUb2tlbiIsIlJlZ0V4cCIsInJlZ2V4RXNjYXBlIiwibWF0Y2hlZCIsInAxIiwicDIiLCJwMyIsInA0IiwiaW5kZXhPZiIsInRva2VucyIsImFkZFBhcnNlVG9rZW4iLCJhZGRXZWVrUGFyc2VUb2tlbiIsIl93IiwiYWRkVGltZVRvQXJyYXlGcm9tVG9rZW4iLCJfYSIsIngiLCJtb2RNb250aCIsIm1vbnRoc1Nob3J0IiwibW9udGhzIiwibW9udGhzU2hvcnRSZWdleCIsIm1vbnRoc1JlZ2V4IiwibW9udGhzUGFyc2UiLCJkZWZhdWx0TG9jYWxlTW9udGhzIiwic3BsaXQiLCJkZWZhdWx0TG9jYWxlTW9udGhzU2hvcnQiLCJNT05USFNfSU5fRk9STUFUIiwiZGVmYXVsdE1vbnRoc1Nob3J0UmVnZXgiLCJkZWZhdWx0TW9udGhzUmVnZXgiLCJoYW5kbGVTdHJpY3RQYXJzZSIsIm1vbnRoTmFtZSIsImlpIiwibGxjIiwidG9Mb2NhbGVMb3dlckNhc2UiLCJfbW9udGhzUGFyc2UiLCJfbG9uZ01vbnRoc1BhcnNlIiwiX3Nob3J0TW9udGhzUGFyc2UiLCJzZXRNb250aCIsImRheU9mTW9udGgiLCJtaW4iLCJnZXRTZXRNb250aCIsImNvbXB1dGVNb250aHNQYXJzZSIsImNtcExlblJldiIsInNob3J0UGllY2VzIiwibG9uZ1BpZWNlcyIsIm1peGVkUGllY2VzIiwic29ydCIsIl9tb250aHNSZWdleCIsIl9tb250aHNTaG9ydFJlZ2V4IiwiX21vbnRoc1N0cmljdFJlZ2V4IiwiX21vbnRoc1Nob3J0U3RyaWN0UmVnZXgiLCJkYXlzSW5ZZWFyIiwieSIsInBhcnNlVHdvRGlnaXRZZWFyIiwicGFyc2VJbnQiLCJnZXRTZXRZZWFyIiwiY3JlYXRlRGF0ZSIsImgiLCJNIiwibXMiLCJnZXRGdWxsWWVhciIsInNldEZ1bGxZZWFyIiwiY3JlYXRlVVRDRGF0ZSIsIlVUQyIsImdldFVUQ0Z1bGxZZWFyIiwic2V0VVRDRnVsbFllYXIiLCJmaXJzdFdlZWtPZmZzZXQiLCJkb3ciLCJkb3kiLCJmd2QiLCJnZXRVVENEYXkiLCJkYXlPZlllYXJGcm9tV2Vla3MiLCJ3ZWVrIiwid2Vla2RheSIsInJlc1llYXIiLCJyZXNEYXlPZlllYXIiLCJkYXlPZlllYXIiLCJ3ZWVrT2ZZZWFyIiwicmVzV2VlayIsIndlZWtPZmZzZXQiLCJ3ZWVrc0luWWVhciIsIndlZWtPZmZzZXROZXh0Iiwic2hpZnRXZWVrZGF5cyIsIndzIiwiY29uY2F0Iiwid2Vla2RheXNNaW4iLCJ3ZWVrZGF5c1Nob3J0Iiwid2Vla2RheXMiLCJ3ZWVrZGF5c01pblJlZ2V4Iiwid2Vla2RheXNTaG9ydFJlZ2V4Iiwid2Vla2RheXNSZWdleCIsIndlZWtkYXlzUGFyc2UiLCJkZWZhdWx0TG9jYWxlV2Vla2RheXMiLCJkZWZhdWx0TG9jYWxlV2Vla2RheXNTaG9ydCIsImRlZmF1bHRMb2NhbGVXZWVrZGF5c01pbiIsImRlZmF1bHRXZWVrZGF5c1JlZ2V4IiwiZGVmYXVsdFdlZWtkYXlzU2hvcnRSZWdleCIsImRlZmF1bHRXZWVrZGF5c01pblJlZ2V4IiwiaGFuZGxlU3RyaWN0UGFyc2UkMSIsIndlZWtkYXlOYW1lIiwiX3dlZWtkYXlzUGFyc2UiLCJfc2hvcnRXZWVrZGF5c1BhcnNlIiwiX21pbldlZWtkYXlzUGFyc2UiLCJkYXkiLCJjb21wdXRlV2Vla2RheXNQYXJzZSIsIm1pbnAiLCJzaG9ydHAiLCJsb25ncCIsIm1pblBpZWNlcyIsIl93ZWVrZGF5c1JlZ2V4IiwiX3dlZWtkYXlzU2hvcnRSZWdleCIsIl93ZWVrZGF5c01pblJlZ2V4IiwiX3dlZWtkYXlzU3RyaWN0UmVnZXgiLCJfd2Vla2RheXNTaG9ydFN0cmljdFJlZ2V4IiwiX3dlZWtkYXlzTWluU3RyaWN0UmVnZXgiLCJoRm9ybWF0IiwiaG91cnMiLCJsb3dlcmNhc2UiLCJtaW51dGVzIiwibWF0Y2hNZXJpZGllbSIsIl9tZXJpZGllbVBhcnNlIiwic2Vjb25kcyIsImtJbnB1dCIsIl9pc1BtIiwiaXNQTSIsIl9tZXJpZGllbSIsInBvcyIsInBvczEiLCJwb3MyIiwiZ2xvYmFsTG9jYWxlIiwiZ2V0U2V0SG91ciIsImJhc2VDb25maWciLCJjYWxlbmRhciIsInNhbWVEYXkiLCJuZXh0RGF5IiwibmV4dFdlZWsiLCJsYXN0RGF5IiwibGFzdFdlZWsiLCJzYW1lRWxzZSIsIkxUUyIsIkxUIiwiTCIsIkxMIiwiTExMIiwiTExMTCIsImRheU9mTW9udGhPcmRpbmFsUGFyc2UiLCJyZWxhdGl2ZVRpbWUiLCJmdXR1cmUiLCJwYXN0Iiwic3MiLCJtbSIsImhoIiwiZGQiLCJ3Iiwid3ciLCJNTSIsInl5IiwibWVyaWRpZW1QYXJzZSIsImxvY2FsZXMiLCJsb2NhbGVGYW1pbGllcyIsImNvbW1vblByZWZpeCIsImFycjEiLCJhcnIyIiwibWlubCIsIm5vcm1hbGl6ZUxvY2FsZSIsImxvYWRMb2NhbGUiLCJvbGRMb2NhbGUiLCJfYWJiciIsImdldFNldEdsb2JhbExvY2FsZSIsImUiLCJ2YWx1ZXMiLCJkYXRhIiwiZ2V0TG9jYWxlIiwiZGVmaW5lTG9jYWxlIiwiYWJiciIsIl9jb25maWciLCJwYXJlbnRMb2NhbGUiLCJmb3JFYWNoIiwibmFtZXMiLCJqIiwibmV4dCIsImNob29zZUxvY2FsZSIsImNoZWNrT3ZlcmZsb3ciLCJfb3ZlcmZsb3dEYXlPZlllYXIiLCJfb3ZlcmZsb3dXZWVrcyIsIl9vdmVyZmxvd1dlZWtkYXkiLCJleHRlbmRlZElzb1JlZ2V4IiwiYmFzaWNJc29SZWdleCIsInR6UmVnZXgiLCJpc29EYXRlcyIsImlzb1RpbWVzIiwiYXNwTmV0SnNvblJlZ2V4Iiwib2JzT2Zmc2V0cyIsIlVUIiwiR01UIiwiRURUIiwiRVNUIiwiQ0RUIiwiQ1NUIiwiTURUIiwiTVNUIiwiUERUIiwiUFNUIiwiY29uZmlnRnJvbUlTTyIsImFsbG93VGltZSIsImRhdGVGb3JtYXQiLCJ0aW1lRm9ybWF0IiwidHpGb3JtYXQiLCJzdHJpbmciLCJleGVjIiwiY29uZmlnRnJvbVN0cmluZ0FuZEZvcm1hdCIsInVudHJ1bmNhdGVZZWFyIiwieWVhclN0ciIsImNvbmZpZ0Zyb21SRkMyODIyIiwicGFyc2VkQXJyYXkiLCJtb250aFN0ciIsImRheVN0ciIsImhvdXJTdHIiLCJtaW51dGVTdHIiLCJzZWNvbmRTdHIiLCJyZXN1bHQiLCJ3ZWVrZGF5U3RyIiwicGFyc2VkSW5wdXQiLCJnZXREYXkiLCJjaGVja1dlZWtkYXkiLCJvYnNPZmZzZXQiLCJtaWxpdGFyeU9mZnNldCIsIm51bU9mZnNldCIsImhtIiwiY2FsY3VsYXRlT2Zmc2V0Iiwic2V0VVRDTWludXRlcyIsImdldFVUQ01pbnV0ZXMiLCJkZWZhdWx0cyIsImNvbmZpZ0Zyb21BcnJheSIsImN1cnJlbnREYXRlIiwiZXhwZWN0ZWRXZWVrZGF5IiwieWVhclRvVXNlIiwibm93VmFsdWUiLCJub3ciLCJfdXNlVVRDIiwiZ2V0VVRDTW9udGgiLCJnZXRVVENEYXRlIiwiZ2V0TW9udGgiLCJnZXREYXRlIiwiY3VycmVudERhdGVBcnJheSIsIndlZWtZZWFyIiwidGVtcCIsIndlZWtkYXlPdmVyZmxvdyIsImN1cldlZWsiLCJHRyIsIlciLCJFIiwiY3JlYXRlTG9jYWwiLCJfd2VlayIsImdnIiwiX2RheU9mWWVhciIsImRheU9mWWVhckZyb21XZWVrSW5mbyIsIl9uZXh0RGF5IiwiSVNPXzg2MDEiLCJSRkNfMjgyMiIsInNraXBwZWQiLCJzdHJpbmdMZW5ndGgiLCJ0b3RhbFBhcnNlZElucHV0TGVuZ3RoIiwiaG91ciIsImlzUG0iLCJtZXJpZGllbUhvdXIiLCJtZXJpZGllbUZpeFdyYXAiLCJlcmFzQ29udmVydFllYXIiLCJwcmVwYXJlQ29uZmlnIiwicHJlcGFyc2UiLCJ0ZW1wQ29uZmlnIiwiYmVzdE1vbWVudCIsInNjb3JlVG9CZWF0IiwiY3VycmVudFNjb3JlIiwidmFsaWRGb3JtYXRGb3VuZCIsImJlc3RGb3JtYXRJc1ZhbGlkIiwic2NvcmUiLCJjb25maWdGcm9tU3RyaW5nQW5kQXJyYXkiLCJjcmVhdGVGcm9tSW5wdXRGYWxsYmFjayIsImNvbmZpZ0Zyb21TdHJpbmciLCJkYXlPckRhdGUiLCJtaW51dGUiLCJzZWNvbmQiLCJtaWxsaXNlY29uZCIsImNvbmZpZ0Zyb21PYmplY3QiLCJjb25maWdGcm9tSW5wdXQiLCJpc1VUQyIsImFkZCIsInByb3RvdHlwZU1pbiIsIm90aGVyIiwicHJvdG90eXBlTWF4IiwicGlja0J5IiwibW9tZW50cyIsIm9yZGVyaW5nIiwiRHVyYXRpb24iLCJkdXJhdGlvbiIsInllYXJzIiwicXVhcnRlcnMiLCJxdWFydGVyIiwid2Vla3MiLCJpc29XZWVrIiwiZGF5cyIsIm1pbGxpc2Vjb25kcyIsInVuaXRIYXNEZWNpbWFsIiwicGFyc2VGbG9hdCIsImlzRHVyYXRpb25WYWxpZCIsIl9taWxsaXNlY29uZHMiLCJfZGF5cyIsIl9tb250aHMiLCJfZGF0YSIsIl9idWJibGUiLCJpc0R1cmF0aW9uIiwiYWJzUm91bmQiLCJyb3VuZCIsIm9mZnNldCIsInNlcGFyYXRvciIsInV0Y09mZnNldCIsInNpZ24iLCJvZmZzZXRGcm9tU3RyaW5nIiwiY2h1bmtPZmZzZXQiLCJtYXRjaGVyIiwicGFydHMiLCJtYXRjaGVzIiwiY2xvbmVXaXRoT2Zmc2V0IiwibW9kZWwiLCJkaWZmIiwiY2xvbmUiLCJzZXRUaW1lIiwibG9jYWwiLCJnZXREYXRlT2Zmc2V0IiwiZ2V0VGltZXpvbmVPZmZzZXQiLCJpc1V0YyIsImFzcE5ldFJlZ2V4IiwiaXNvUmVnZXgiLCJjcmVhdGVEdXJhdGlvbiIsInJldCIsImRpZmZSZXMiLCJiYXNlIiwicGFyc2VJc28iLCJpc0JlZm9yZSIsInBvc2l0aXZlTW9tZW50c0RpZmZlcmVuY2UiLCJpbnAiLCJpc0FmdGVyIiwiY3JlYXRlQWRkZXIiLCJkaXJlY3Rpb24iLCJwZXJpb2QiLCJ0bXAiLCJhZGRTdWJ0cmFjdCIsImlzQWRkaW5nIiwiaW52YWxpZCIsInN1YnRyYWN0IiwiaXNTdHJpbmciLCJTdHJpbmciLCJpc01vbWVudElucHV0IiwiYXJyYXlUZXN0IiwiZGF0YVR5cGVUZXN0IiwiZmlsdGVyIiwiaXRlbSIsImlzTnVtYmVyT3JTdHJpbmdBcnJheSIsIm9iamVjdFRlc3QiLCJwcm9wZXJ0eVRlc3QiLCJwcm9wZXJ0aWVzIiwiaXNNb21lbnRJbnB1dE9iamVjdCIsImlzQ2FsZW5kYXJTcGVjIiwibW9udGhEaWZmIiwid2hvbGVNb250aERpZmYiLCJhbmNob3IiLCJuZXdMb2NhbGVEYXRhIiwiZGVmYXVsdEZvcm1hdCIsImRlZmF1bHRGb3JtYXRVdGMiLCJsYW5nIiwibW9kJDEiLCJkaXZpZGVuZCIsImRpdmlzb3IiLCJsb2NhbFN0YXJ0T2ZEYXRlIiwidXRjU3RhcnRPZkRhdGUiLCJtYXRjaEVyYUFiYnIiLCJlcmFzQWJiclJlZ2V4IiwiY29tcHV0ZUVyYXNQYXJzZSIsImFiYnJQaWVjZXMiLCJuYW1lUGllY2VzIiwibmFycm93UGllY2VzIiwiZXJhcyIsIm5hcnJvdyIsIl9lcmFzUmVnZXgiLCJfZXJhc05hbWVSZWdleCIsIl9lcmFzQWJiclJlZ2V4IiwiX2VyYXNOYXJyb3dSZWdleCIsImFkZFdlZWtZZWFyRm9ybWF0VG9rZW4iLCJnZXRTZXRXZWVrWWVhckhlbHBlciIsIndlZWtzVGFyZ2V0Iiwic2V0V2Vla0FsbCIsImRheU9mWWVhckRhdGEiLCJlcmFzTmFtZVJlZ2V4IiwiZXJhc05hcnJvd1JlZ2V4IiwiZXJhc1BhcnNlIiwiX2VyYVllYXJPcmRpbmFsUmVnZXgiLCJlcmFZZWFyT3JkaW5hbFBhcnNlIiwiaXNvV2Vla1llYXIiLCJfZGF5T2ZNb250aE9yZGluYWxQYXJzZSIsIl9vcmRpbmFsUGFyc2UiLCJfZGF5T2ZNb250aE9yZGluYWxQYXJzZUxlbmllbnQiLCJnZXRTZXREYXlPZk1vbnRoIiwiZ2V0U2V0TWludXRlIiwiZ2V0U2V0TWlsbGlzZWNvbmQiLCJnZXRTZXRTZWNvbmQiLCJwYXJzZU1zIiwicHJvdG8iLCJwcmVQYXJzZVBvc3RGb3JtYXQiLCJ0aW1lIiwiZm9ybWF0cyIsInNvZCIsInN0YXJ0T2YiLCJjYWxlbmRhckZvcm1hdCIsImFzRmxvYXQiLCJ0aGF0Iiwiem9uZURlbHRhIiwiZW5kT2YiLCJzdGFydE9mRGF0ZSIsImlzb1dlZWtkYXkiLCJpbnB1dFN0cmluZyIsInBvc3Rmb3JtYXQiLCJ3aXRob3V0U3VmZml4IiwiaHVtYW5pemUiLCJmcm9tTm93IiwidG9Ob3ciLCJpbnZhbGlkQXQiLCJsb2NhbElucHV0IiwiaXNCZXR3ZWVuIiwiaW5jbHVzaXZpdHkiLCJsb2NhbEZyb20iLCJsb2NhbFRvIiwiaXNTYW1lIiwiaW5wdXRNcyIsImlzU2FtZU9yQWZ0ZXIiLCJpc1NhbWVPckJlZm9yZSIsInBhcnNpbmdGbGFncyIsInByaW9yaXRpemVkIiwidW5pdHNPYmoiLCJ1IiwiZ2V0UHJpb3JpdGl6ZWRVbml0cyIsInRvQXJyYXkiLCJ0b09iamVjdCIsInRvRGF0ZSIsInRvSVNPU3RyaW5nIiwia2VlcE9mZnNldCIsImluc3BlY3QiLCJwcmVmaXgiLCJzdWZmaXgiLCJ6b25lIiwiaXNMb2NhbCIsImZvciIsInRvSlNPTiIsInVuaXgiLCJjcmVhdGlvbkRhdGEiLCJlcmFOYW1lIiwic2luY2UiLCJ1bnRpbCIsImVyYU5hcnJvdyIsImVyYUFiYnIiLCJlcmFZZWFyIiwiZGlyIiwiaXNvV2Vla3MiLCJ3ZWVrSW5mbyIsIndlZWtzSW5XZWVrWWVhciIsImlzb1dlZWtzSW5ZZWFyIiwiaXNvV2Vla3NJbklTT1dlZWtZZWFyIiwicGFyc2VXZWVrZGF5IiwicGFyc2VJc29XZWVrZGF5Iiwia2VlcExvY2FsVGltZSIsImtlZXBNaW51dGVzIiwibG9jYWxBZGp1c3QiLCJfY2hhbmdlSW5Qcm9ncmVzcyIsInBhcnNlWm9uZSIsInRab25lIiwiaGFzQWxpZ25lZEhvdXJPZmZzZXQiLCJpc0RTVCIsImlzVXRjT2Zmc2V0Iiwiem9uZUFiYnIiLCJ6b25lTmFtZSIsImRhdGVzIiwiaXNEU1RTaGlmdGVkIiwiX2lzRFNUU2hpZnRlZCIsImFycmF5MSIsImFycmF5MiIsImRvbnRDb252ZXJ0IiwibGVuZ3RoRGlmZiIsImRpZmZzIiwiY29tcGFyZUFycmF5cyIsInByb3RvJDEiLCJnZXQkMSIsImluZGV4IiwiZmllbGQiLCJzZXR0ZXIiLCJsaXN0TW9udGhzSW1wbCIsIm91dCIsImxpc3RXZWVrZGF5c0ltcGwiLCJsb2NhbGVTb3J0ZWQiLCJzaGlmdCIsIl9jYWxlbmRhciIsIl9sb25nRGF0ZUZvcm1hdCIsImZvcm1hdFVwcGVyIiwidG9VcHBlckNhc2UiLCJ0b2siLCJfaW52YWxpZERhdGUiLCJfb3JkaW5hbCIsImlzRnV0dXJlIiwiX3JlbGF0aXZlVGltZSIsInBhc3RGdXR1cmUiLCJzb3VyY2UiLCJfZXJhcyIsImlzRm9ybWF0IiwiX21vbnRoc1Nob3J0IiwiX21vbnRoc1BhcnNlRXhhY3QiLCJmaXJzdERheU9mWWVhciIsImZpcnN0RGF5T2ZXZWVrIiwiX3dlZWtkYXlzIiwiX3dlZWtkYXlzTWluIiwiX3dlZWtkYXlzU2hvcnQiLCJfd2Vla2RheXNQYXJzZUV4YWN0IiwiX2Z1bGxXZWVrZGF5c1BhcnNlIiwiY2hhckF0IiwiaXNMb3dlciIsImxhbmdEYXRhIiwibWF0aEFicyIsImFkZFN1YnRyYWN0JDEiLCJhYnNDZWlsIiwiZGF5c1RvTW9udGhzIiwibW9udGhzVG9EYXlzIiwibWFrZUFzIiwiYWxpYXMiLCJhcyIsImFzTWlsbGlzZWNvbmRzIiwiYXNTZWNvbmRzIiwiYXNNaW51dGVzIiwiYXNIb3VycyIsImFzRGF5cyIsImFzV2Vla3MiLCJhc01vbnRocyIsImFzUXVhcnRlcnMiLCJhc1llYXJzIiwibWFrZUdldHRlciIsInRocmVzaG9sZHMiLCJzdWJzdGl0dXRlVGltZUFnbyIsImFicyQxIiwidG9JU09TdHJpbmckMSIsInRvdGFsU2lnbiIsInltU2lnbiIsImRheXNTaWduIiwiaG1zU2lnbiIsInRvdGFsIiwidG9GaXhlZCIsInByb3RvJDIiLCJtb250aHNGcm9tRGF5cyIsImFyZ1dpdGhTdWZmaXgiLCJhcmdUaHJlc2hvbGRzIiwid2l0aFN1ZmZpeCIsInRoIiwiYXNzaWduIiwicG9zTmVnRHVyYXRpb24iLCJyZWxhdGl2ZVRpbWUkMSIsInRvSXNvU3RyaW5nIiwidmVyc2lvbiIsInVwZGF0ZUxvY2FsZSIsInRtcExvY2FsZSIsInJlbGF0aXZlVGltZVJvdW5kaW5nIiwicm91bmRpbmdGdW5jdGlvbiIsInJlbGF0aXZlVGltZVRocmVzaG9sZCIsInRocmVzaG9sZCIsImxpbWl0IiwibXlNb21lbnQiLCJIVE1MNV9GTVQiLCJEQVRFVElNRV9MT0NBTCIsIkRBVEVUSU1FX0xPQ0FMX1NFQ09ORFMiLCJEQVRFVElNRV9MT0NBTF9NUyIsIkRBVEUiLCJUSU1FIiwiVElNRV9TRUNPTkRTIiwiVElNRV9NUyIsIldFRUsiLCJNT05USCIsImZhY3RvcnkiLCJfY3VycnkyIiwiZjIiLCJfYiIsIl9jdXJyeTEiLCJmMSIsIl9pc1BsYWNlaG9sZGVyIiwiX3R5cGVvZjIiLCJfdHlwZW9mMyIsImRlZmF1bHQiLCJzZWxmIiwiUmVmZXJlbmNlRXJyb3IiLCJjaGVja0RDRSIsIl9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyIsImVyciIsImVycm9yIiwiaW5zdGFuY2UiLCJDb25zdHJ1Y3RvciIsIlR5cGVFcnJvciIsIl9hc3NpZ24iLCJfYXNzaWduMiIsInRhcmdldCIsIl9zZXRQcm90b3R5cGVPZjIiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2NyZWF0ZTIiLCJzdWJDbGFzcyIsInN1cGVyQ2xhc3MiLCJjb25zdHJ1Y3RvciIsIndyaXRhYmxlIiwiY29uZmlndXJhYmxlIiwiX19wcm90b19fIiwiaGFzT3duIiwiY2xhc3NOYW1lcyIsImNsYXNzZXMiLCJhcmdUeXBlIiwiaW5uZXIiLCJfZGVmaW5lUHJvcGVydHkiLCJfZGVmaW5lUHJvcGVydHkyIiwiZGVmaW5lUHJvcGVydGllcyIsInByb3BzIiwiZGVzY3JpcHRvciIsInByb3RvUHJvcHMiLCJzdGF0aWNQcm9wcyIsIl9hcml0eSIsIl9jdXJyeU4iLCJyZWNlaXZlZCIsImNvbWJpbmVkIiwiYXJnc0lkeCIsImxlZnQiLCJjb21iaW5lZElkeCIsImEwIiwiYTEiLCJhMiIsImEzIiwiYTQiLCJhNSIsImE2IiwiYTciLCJhOCIsImE5IiwiX2NvbnRleHQiLCJDb25maWdDb25zdW1lciIsImNvbmZpZ0NvbnN1bWVyUHJvcHMiLCJSZWFjdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX2xvY2FsZVByb3ZpZGVyIiwiX0xvY2FsZVJlY2VpdmVyIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiV2Vha01hcCIsImNhY2hlIiwiX3R5cGVvZiIsImhhcyIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImRlc2MiLCJpdGVyYXRvciIsIl9leHRlbmRzIiwiX2NsYXNzQ2FsbENoZWNrIiwiX2RlZmluZVByb3BlcnRpZXMiLCJfc2V0UHJvdG90eXBlT2YiLCJzZXRQcm90b3R5cGVPZiIsIl9jcmVhdGVTdXBlciIsIkRlcml2ZWQiLCJoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiUmVmbGVjdCIsImNvbnN0cnVjdCIsInNoYW0iLCJQcm94eSIsIl9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJTdXBlciIsIl9nZXRQcm90b3R5cGVPZiIsIk5ld1RhcmdldCIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuIiwiX2Fzc2VydFRoaXNJbml0aWFsaXplZCIsImdldFByb3RvdHlwZU9mIiwiX2RlZmF1bHQiLCJfUmVhY3QkQ29tcG9uZW50IiwiX2luaGVyaXRzIiwiQ29uZmlnUHJvdmlkZXIiLCJfc3VwZXIiLCJfdGhpcyIsImdldFByZWZpeENscyIsInN1ZmZpeENscyIsImN1c3RvbWl6ZVByZWZpeENscyIsIl90aGlzJHByb3BzJHByZWZpeENscyIsInByZWZpeENscyIsInJlbmRlclByb3ZpZGVyIiwiY29udGV4dCIsImxlZ2FjeUxvY2FsZSIsIl90aGlzJHByb3BzIiwiY2hpbGRyZW4iLCJnZXRQb3B1cENvbnRhaW5lciIsInJlbmRlckVtcHR5IiwiY3NwIiwiYXV0b0luc2VydFNwYWNlSW5CdXR0b24iLCJwYWdlSGVhZGVyIiwiY3JlYXRlRWxlbWVudCIsIkNvbmZpZ0NvbnRleHQiLCJQcm92aWRlciIsIl9BTlRfTUFSS19fIiwiQU5UX01BUksiLCJfdGhpczIiLCJfIiwiX18iLCJDb21wb25lbnQiLCJDb2wiLCJOT1RISU5HIiwiRFJBRlRBQkxFIiwiRFJBRlRfU1RBVEUiLCJpc0RyYWZ0IiwiaXNEcmFmdGFibGUiLCJvcmlnaW5hbCIsIm93bktleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJzaGFsbG93Q29weSIsImludm9rZUdldHRlcnMiLCJlYWNoIiwiY2IiLCJpc0VudW1lcmFibGUiLCJ0aGluZyIsImlzIiwiSW1tZXJTY29wZSIsInBhcmVudCIsImRyYWZ0cyIsImNhbkF1dG9GcmVlemUiLCJwYXRjaGVzIiwicmV2b2tlIiwiZHJhZnQiLCJ1c2VQYXRjaGVzIiwicGF0Y2hMaXN0ZW5lciIsImludmVyc2VQYXRjaGVzIiwibGVhdmUiLCJjdXJyZW50IiwiZW50ZXIiLCJkZXNjcmlwdG9ycyIsImNyZWF0ZVByb3h5IiwiY2xvbmVQb3RlbnRpYWxEcmFmdCIsInN0YXRlIiwiYXNzZXJ0VW5yZXZva2VkIiwicGVlayIsImZpbmFsaXppbmciLCJwcmVwYXJlQ29weSIsImNvcHkiLCJhc3NpZ25lZCIsIm1vZGlmaWVkIiwibWFya0NoYW5nZWQiLCJwcm94eVByb3BlcnR5Iiwic2NvcGUiLCJmaW5hbGl6ZWQiLCJyZXZva2UkMSIsInJldm9rZWQiLCJKU09OIiwic3RyaW5naWZ5IiwibWFya0NoYW5nZXNTd2VlcCIsImhhc0FycmF5Q2hhbmdlcyIsImhhc09iamVjdENoYW5nZXMiLCJiYXNlVmFsdWUiLCJzdGF0ZSQxIiwibGVnYWN5UHJveHkiLCJmcmVlemUiLCJ3aWxsRmluYWxpemUiLCJpc1JlcGxhY2VkIiwibWFya0NoYW5nZXNSZWN1cnNpdmVseSIsImkkMSIsImkkMiIsImNyZWF0ZVByb3h5JDEiLCJyZWYiLCJyZXZvY2FibGUiLCJhcnJheVRyYXBzIiwib2JqZWN0VHJhcHMiLCJwcm94eSIsInNvdXJjZSQxIiwicGVlayQxIiwibWFya0NoYW5nZWQkMSIsImRlbGV0ZVByb3BlcnR5Iiwib3duZXIiLCJtb2Rlcm5Qcm94eSIsImdlbmVyYXRlUGF0Y2hlcyIsImJhc2VQYXRoIiwiYXNzaWduJDEiLCJkZWx0YSIsInN0YXJ0IiwiZW5kIiwicGF0aCIsIm9wIiwidXNlUmVtb3ZlIiwicmVwbGFjZUNvdW50IiwicGF0aCQxIiwiZ2VuZXJhdGVBcnJheVBhdGNoZXMiLCJhc3NpZ25lZFZhbHVlIiwib3JpZ1ZhbHVlIiwiZ2VuZXJhdGVPYmplY3RQYXRjaGVzIiwiYXBwbHlQYXRjaGVzIiwicGF0Y2giLCJzcGxpY2UiLCJjb25maWdEZWZhdWx0cyIsInVzZVByb3hpZXMiLCJhdXRvRnJlZXplIiwicHJvY2VzcyIsIm9uQXNzaWduIiwib25EZWxldGUiLCJvbkNvcHkiLCJJbW1lciIsInNldFVzZVByb3hpZXMiLCJwcm9kdWNlIiwicmVjaXBlIiwidGhpcyQxIiwiZGVmYXVsdEJhc2UiLCJoYXNFcnJvciIsIlByb21pc2UiLCJ0aGVuIiwicHJvY2Vzc1Jlc3VsdCIsImNyZWF0ZURyYWZ0IiwiaXNNYW51YWwiLCJmaW5pc2hEcmFmdCIsInNldEF1dG9GcmVlemUiLCJiYXNlRHJhZnQiLCJmaW5hbGl6ZSIsImZpbmFsaXplVHJlZSIsInJvb3QiLCJyb290UGF0aCIsIm5lZWRQYXRjaGVzIiwiZmluYWxpemVQcm9wZXJ0eSIsImlzRHJhZnRQcm9wIiwiaW1tZXIiLCJnbG9iYWwiLCJ3aW5kb3ciLCJfX2ciLCJjb3JlIiwiX19lIiwiY29tcG9uZW50V2lsbE1vdW50IiwiZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzIiwic2V0U3RhdGUiLCJjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzIiwibmV4dFByb3BzIiwicHJldlN0YXRlIiwiY29tcG9uZW50V2lsbFVwZGF0ZSIsIm5leHRTdGF0ZSIsInByZXZQcm9wcyIsIl9fcmVhY3RJbnRlcm5hbFNuYXBzaG90RmxhZyIsIl9fcmVhY3RJbnRlcm5hbFNuYXBzaG90IiwiZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUiLCJwb2x5ZmlsbCIsImlzUmVhY3RDb21wb25lbnQiLCJmb3VuZFdpbGxNb3VudE5hbWUiLCJmb3VuZFdpbGxSZWNlaXZlUHJvcHNOYW1lIiwiZm91bmRXaWxsVXBkYXRlTmFtZSIsIlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQiLCJVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyIsIlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlIiwiY29tcG9uZW50TmFtZSIsImRpc3BsYXlOYW1lIiwibmV3QXBpTmFtZSIsImNvbXBvbmVudERpZFVwZGF0ZSIsIm1heWJlU25hcHNob3QiLCJzbmFwc2hvdCIsIl9fc3VwcHJlc3NEZXByZWNhdGlvbldhcm5pbmciLCJXUE1MX2NvcmUiLCJhamF4SW5Qcm9ncmVzcyIsImNyZWF0ZUFqYXgiLCJtZXRob2QiLCJjb250ZW50VHlwZSIsInVzZUZldGNoIiwidXJsIiwiYWpheHVybCIsImluaXQiLCJoZWFkZXJzIiwiY2FsbEVuZHBvaW50IiwiY3VycnlOIiwibm9uY2UiLCJlbmRwb2ludCIsInBheWxvYWQiLCJmZXRjaCIsImNyZWRlbnRpYWxzIiwiYm9keSIsIm9rIiwianNvbiIsInN1Y2Nlc3MiLCJ0eXBlIiwibWVzc2FnZSIsInN0YXR1c1RleHQiLCJkb0FqYXgiLCJidWlsZEFqYXhQYXlsb2FkIiwiYWN0aW9uIiwiZmxpcCIsInF1ZXJ5U3RyaW5nIiwiYXJyYXlGb3JtYXQiLCJidWlsZFBheWxvYWQiLCJsb2ciLCJlbnYiLCJpc0ljb25EZWZpbml0aW9uIiwidGhlbWUiLCJpY29uIiwibm9ybWFsaXplQXR0cnMiLCJhdHRycyIsInJlZHVjZSIsImFjYyIsImNsYXNzTmFtZSIsIk1pbmlNYXAiLCJjb2xsZWN0aW9uIiwiQm9vbGVhbiIsImdlbmVyYXRlIiwibm9kZSIsInJvb3RQcm9wcyIsInRhZyIsImNoaWxkIiwiZ2V0U2Vjb25kYXJ5Q29sb3IiLCJwcmltYXJ5Q29sb3IiLCJhbk9iamVjdCIsIklFOF9ET01fREVGSU5FIiwidG9QcmltaXRpdmUiLCJkUCIsImYiLCJPIiwiUCIsIkF0dHJpYnV0ZXMiLCJpdCIsImZsIiwiYWxnIiwiY2hlY2siLCJjaGVja0ltcGwiLCJjdHgiLCJoaWRlIiwiJGV4cG9ydCIsIm93biIsIklTX0ZPUkNFRCIsIkYiLCJJU19HTE9CQUwiLCJHIiwiSVNfU1RBVElDIiwiUyIsIklTX1BST1RPIiwiSVNfQklORCIsIkIiLCJJU19XUkFQIiwiZXhwUHJvdG8iLCJDIiwidmlydHVhbCIsIlIiLCJVIiwiY3JlYXRlRGVzYyIsIklPYmplY3QiLCJkZWZpbmVkIiwic3RvcmUiLCJ1aWQiLCJVU0VfU1lNQk9MIiwiX3dhcm5pbmciLCJyZXNldFdhcm5lZCIsInZhbGlkIiwiY29tcG9uZW50IiwiYXJyYXlXaXRoSG9sZXMiLCJpdGVyYWJsZVRvQXJyYXlMaW1pdCIsInVuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5Iiwibm9uSXRlcmFibGVSZXN0IiwidG9BcnJheUNoaWxkcmVuIiwiQ2hpbGRyZW4iLCJmaW5kQ2hpbGRJbkNoaWxkcmVuQnlLZXkiLCJmaW5kU2hvd25DaGlsZEluQ2hpbGRyZW5CeUtleSIsInNob3dQcm9wIiwiU1RBUlRfRVZFTlRfTkFNRV9NQVAiLCJ0cmFuc2l0aW9uc3RhcnQiLCJ0cmFuc2l0aW9uIiwiV2Via2l0VHJhbnNpdGlvbiIsIk1velRyYW5zaXRpb24iLCJPVHJhbnNpdGlvbiIsIm1zVHJhbnNpdGlvbiIsImFuaW1hdGlvbnN0YXJ0IiwiYW5pbWF0aW9uIiwiV2Via2l0QW5pbWF0aW9uIiwiTW96QW5pbWF0aW9uIiwiT0FuaW1hdGlvbiIsIm1zQW5pbWF0aW9uIiwiRU5EX0VWRU5UX05BTUVfTUFQIiwidHJhbnNpdGlvbmVuZCIsImFuaW1hdGlvbmVuZCIsInN0YXJ0RXZlbnRzIiwiZW5kRXZlbnRzIiwiYWRkRXZlbnRMaXN0ZW5lciIsImV2ZW50TmFtZSIsImV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiZG9jdW1lbnQiLCJzdHlsZSIsIkVWRU5UX05BTUVfTUFQIiwiZXZlbnRzIiwiYmFzZUV2ZW50TmFtZSIsImJhc2VFdmVudHMiLCJzdHlsZU5hbWUiLCJkZXRlY3RFdmVudHMiLCJhZGRTdGFydEV2ZW50TGlzdGVuZXIiLCJzdGFydEV2ZW50Iiwic2V0VGltZW91dCIsInJlbW92ZVN0YXJ0RXZlbnRMaXN0ZW5lciIsImFkZEVuZEV2ZW50TGlzdGVuZXIiLCJlbmRFdmVudCIsInJlbW92ZUVuZEV2ZW50TGlzdGVuZXIiLCJpc0Nzc0FuaW1hdGlvblN1cHBvcnRlZCIsIkV2ZW50IiwiY2FwaXRhbFByZWZpeGVzIiwicHJlZml4ZXMiLCJnZXRTdHlsZVByb3BlcnR5IiwiZ2V0Q29tcHV0ZWRTdHlsZSIsImdldFByb3BlcnR5VmFsdWUiLCJmaXhCcm93c2VyQnlUaW1lb3V0IiwidHJhbnNpdGlvbkRlbGF5IiwidHJhbnNpdGlvbkR1cmF0aW9uIiwiYW5pbWF0aW9uRGVsYXkiLCJhbmltYXRpb25EdXJhdGlvbiIsInJjRW5kQW5pbVRpbWVvdXQiLCJyY0VuZExpc3RlbmVyIiwiY2xlYXJCcm93c2VyQnVnVGltZW91dCIsImNsZWFyVGltZW91dCIsInRyYW5zaXRpb25OYW1lIiwiZW5kQ2FsbGJhY2siLCJuYW1lSXNPYmoiLCJhY3RpdmVDbGFzc05hbWUiLCJhY3RpdmUiLCJub2RlQ2xhc3NlcyIsInJjQW5pbVRpbWVvdXQiLCJyZW1vdmUiLCJzdG9wIiwic2V0VHJhbnNpdGlvbiIsInYiLCJpc0FwcGVhclN1cHBvcnRlZCIsInRyYW5zaXRpb25BcHBlYXIiLCJhcHBlYXIiLCJpc0VudGVyU3VwcG9ydGVkIiwidHJhbnNpdGlvbkVudGVyIiwiaXNMZWF2ZVN1cHBvcnRlZCIsInRyYW5zaXRpb25MZWF2ZSIsImFsbG93QXBwZWFyQ2FsbGJhY2siLCJhbGxvd0VudGVyQ2FsbGJhY2siLCJhbGxvd0xlYXZlQ2FsbGJhY2siLCJ0cmFuc2l0aW9uTWFwIiwiQW5pbWF0ZUNoaWxkIiwiZG9uZSIsImFuaW1hdGlvblR5cGUiLCJmaW5pc2hDYWxsYmFjayIsImZpbmRET01Ob2RlIiwic3RvcHBlciIsImFjdGl2ZU5hbWUiLCJwcm9wVHlwZXMiLCJhbnkiLCJkZWZhdWx0S2V5IiwiZ2V0Q2hpbGRyZW5Gcm9tUHJvcHMiLCJpc1ZhbGlkRWxlbWVudCIsImNsb25lRWxlbWVudCIsIm5vb3AiLCJBbmltYXRlIiwiY3VycmVudGx5QW5pbWF0aW5nS2V5cyIsImtleXNUb0VudGVyIiwia2V5c1RvTGVhdmUiLCJjaGlsZHJlblJlZnMiLCJwZXJmb3JtQXBwZWFyIiwiX3RoaXMzIiwibmV4dENoaWxkcmVuIiwiZXhjbHVzaXZlIiwibmV4dENoaWxkcmVuUGVuZGluZyIsInBlbmRpbmdDaGlsZHJlbiIsImN1cnJlbnRDaGlsZHJlbiIsIm5ld0NoaWxkcmVuIiwiY3VycmVudENoaWxkIiwibmV4dENoaWxkIiwibmV3Q2hpbGQiLCJoYXNQcmV2Iiwic2hvd0luTmV4dCIsImhhc05leHQiLCJzaG93SW5Ob3ciLCJwZXJmb3JtRW50ZXIiLCJwZXJmb3JtTGVhdmUiLCJfdGhpczQiLCJzdGF0ZUNoaWxkcmVuIiwicGFzc2VkUHJvcHMiLCJjb21wb25lbnRQcm9wcyIsImlzQW5pbWF0ZSIsIm9uZU9mVHlwZSIsImJvb2wiLCJvbkVuZCIsIm9uRW50ZXIiLCJvbkxlYXZlIiwib25BcHBlYXIiLCJkZWZhdWx0UHJvcHMiLCJfdGhpczUiLCJjb21wb25lbnRXaWxsRW50ZXIiLCJoYW5kbGVEb25lQWRkaW5nIiwiY29tcG9uZW50V2lsbEFwcGVhciIsImlzVmFsaWRDaGlsZEJ5S2V5IiwiY29tcG9uZW50V2lsbExlYXZlIiwiaGFuZGxlRG9uZUxlYXZpbmciLCJjMSIsImMyIiwic2FtZSIsImNoaWxkMiIsImciLCJOb3RoaW5nIiwiSnVzdCIsInByZWRPckZ1bmMiLCJjdXJyeSIsImlzUHJlZE9yRnVuYyIsInByZWQiLCJSb3ciLCJwcm9wSXNFbnVtZXJhYmxlIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJ0ZXN0MSIsInRlc3QyIiwiZnJvbUNoYXJDb2RlIiwidGVzdDMiLCJsZXR0ZXIiLCJzaG91bGRVc2VOYXRpdmUiLCJzeW1ib2xzIiwiYWx0IiwiYmltYXAiLCJjaGFpbiIsImNvbXBvc2UiLCJjb250cmFtYXAiLCJlcXVhbHMiLCJpZCIsIm9mIiwicHJvbWFwIiwiemVybyIsInRYIiwidFkiLCJfY2xhc3NuYW1lcyIsImFsbEljb25zIiwiX2ljb25zUmVhY3QiLCJfSWNvbkZvbnQiLCJfdXRpbHMiLCJfdHdvVG9uZVByaW1hcnlDb2xvciIsIl9hcnJheUxpa2VUb0FycmF5IiwiX19yZXN0IiwiX2FycmF5V2l0aG91dEhvbGVzIiwiaXRlciIsIl9pdGVyYWJsZVRvQXJyYXkiLCJtaW5MZW4iLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVTcHJlYWQiLCJzZXRUd29Ub25lQ29sb3IiLCJkYW5nZXJvdXNUaGVtZSIsImRlZmF1bHRUaGVtZSIsIkljb24iLCJfY2xhc3NOYW1lcyIsInZpZXdCb3giLCJzcGluIiwicm90YXRlIiwidGFiSW5kZXgiLCJvbkNsaWNrIiwidHdvVG9uZUNvbG9yIiwicmVzdFByb3BzIiwiY2xhc3NTdHJpbmciLCJzdmdDbGFzc1N0cmluZyIsInN2Z1N0eWxlIiwibXNUcmFuc2Zvcm0iLCJ0cmFuc2Zvcm0iLCJpbm5lclN2Z1Byb3BzIiwic3ZnQmFzZVByb3BzIiwiaWNvblRhYkluZGV4IiwiY291bnQiLCJvbmx5IiwiY29tcHV0ZWRUeXBlIiwidGhlbWVJbk5hbWUiLCJnZXRUaGVtZUZyb21UeXBlTmFtZSIsIndpdGhUaGVtZVN1ZmZpeCIsInJlbW92ZVR5cGVUaGVtZSIsInJlbmRlcklubmVyTm9kZSIsImNyZWF0ZUZyb21JY29uZm9udENOIiwiZ2V0VHdvVG9uZUNvbG9yIiwiYml0bWFwIiwiJGtleXMiLCJlbnVtQnVnS2V5cyIsInB4IiwicmFuZG9tIiwidHVwbGVOdW0iLCJ0dXBsZSIsIl9sZW4iLCJfa2V5IiwiX2xlbjIiLCJfa2V5MiIsIl9pdGVyYXRvcjIiLCJfc3ltYm9sMiIsIl9yZWFjdExpZmVjeWNsZXNDb21wYXQiLCJfQ2xlYXJhYmxlTGFiZWxlZElucHV0IiwiX1Jlc2l6YWJsZVRleHRBcmVhIiwiX2NvbmZpZ1Byb3ZpZGVyIiwiX0lucHV0IiwiVGV4dEFyZWEiLCJzYXZlVGV4dEFyZWEiLCJyZXNpemFibGVUZXh0QXJlYSIsInNhdmVDbGVhcmFibGVJbnB1dCIsImNsZWFyYWJsZUlucHV0IiwiaGFuZGxlQ2hhbmdlIiwic2V0VmFsdWUiLCJyZXNpemVUZXh0YXJlYSIsInJlc29sdmVPbkNoYW5nZSIsInRleHRBcmVhIiwib25DaGFuZ2UiLCJoYW5kbGVLZXlEb3duIiwib25QcmVzc0VudGVyIiwib25LZXlEb3duIiwia2V5Q29kZSIsImhhbmRsZVJlc2V0IiwicmVuZGVyVGV4dEFyZWEiLCJmb2N1cyIsInJlbmRlckNvbXBvbmVudCIsIl9yZWYiLCJpbnB1dFR5cGUiLCJmaXhDb250cm9sbGVkVmFsdWUiLCJlbGVtZW50IiwiZGVmYXVsdFZhbHVlIiwiYmx1ciIsIl9yY05vdGlmaWNhdGlvbiIsIl9pY29uIiwiZGVmYXVsdEdldENvbnRhaW5lciIsImRlZmF1bHRDbG9zZUljb24iLCJub3RpZmljYXRpb25JbnN0YW5jZSIsImRlZmF1bHREdXJhdGlvbiIsImRlZmF1bHRUb3AiLCJkZWZhdWx0Qm90dG9tIiwiZGVmYXVsdFBsYWNlbWVudCIsImdldFBsYWNlbWVudFN0eWxlIiwicGxhY2VtZW50IiwidG9wIiwiYm90dG9tIiwicmlnaHQiLCJ0eXBlVG9JY29uIiwiaW5mbyIsIndhcm5pbmciLCJhcGkiLCJvcGVuIiwib3V0ZXJQcmVmaXhDbHMiLCJpY29uTm9kZSIsImljb25UeXBlIiwiYXV0b01hcmdpblRhZyIsImRlc2NyaXB0aW9uIiwiX3JlZiRwbGFjZW1lbnQiLCJfcmVmJGdldENvbnRhaW5lciIsImdldENvbnRhaW5lciIsIl9yZWYkY2xvc2VJY29uIiwiY2xvc2VJY29uIiwiY2FjaGVLZXkiLCJjbG9zZUljb25Ub1JlbmRlciIsIm5ld0luc3RhbmNlIiwibm90aWZpY2F0aW9uIiwiZ2V0Tm90aWZpY2F0aW9uSW5zdGFuY2UiLCJub3RpY2UiLCJjb250ZW50IiwiYnRuIiwiY2xvc2FibGUiLCJvbkNsb3NlIiwiY2xvc2UiLCJyZW1vdmVOb3RpY2UiLCJvcHRpb25zIiwiZGVzdHJveSIsImFwcGx5Q3VycnkiLCJjdXJyaWVkIiwieHMiLCJfdHlwZXMiLCJ0eXBlRm4iLCJ2ZXIiLCJjYWNoZWRTZXRUaW1lb3V0IiwiY2FjaGVkQ2xlYXJUaW1lb3V0IiwiZGVmYXVsdFNldFRpbW91dCIsImRlZmF1bHRDbGVhclRpbWVvdXQiLCJydW5UaW1lb3V0IiwiY3VycmVudFF1ZXVlIiwicXVldWUiLCJkcmFpbmluZyIsInF1ZXVlSW5kZXgiLCJjbGVhblVwTmV4dFRpY2siLCJkcmFpblF1ZXVlIiwidGltZW91dCIsInJ1biIsIm1hcmtlciIsInJ1bkNsZWFyVGltZW91dCIsIkl0ZW0iLCJuZXh0VGljayIsInRpdGxlIiwiYnJvd3NlciIsImFyZ3YiLCJ2ZXJzaW9ucyIsIm9uIiwiYWRkTGlzdGVuZXIiLCJvbmNlIiwib2ZmIiwicmVtb3ZlTGlzdGVuZXIiLCJyZW1vdmVBbGxMaXN0ZW5lcnMiLCJlbWl0IiwicHJlcGVuZExpc3RlbmVyIiwicHJlcGVuZE9uY2VMaXN0ZW5lciIsImxpc3RlbmVycyIsImJpbmRpbmciLCJjd2QiLCJjaGRpciIsInVtYXNrIiwic2hhcmVkIiwiY29weXJpZ2h0IiwiZFBzIiwiSUVfUFJPVE8iLCJFbXB0eSIsImNyZWF0ZURpY3QiLCJpZnJhbWVEb2N1bWVudCIsImlmcmFtZSIsImRpc3BsYXkiLCJhcHBlbmRDaGlsZCIsInNyYyIsImNvbnRlbnRXaW5kb3ciLCJ3cml0ZSIsImx0IiwiUHJvcGVydGllcyIsImRlZiIsIlRBRyIsInN0YXQiLCJMSUJSQVJZIiwid2tzRXh0IiwiJFN5bWJvbCIsIlByb3BUeXBlcyIsIkxvY2FsZVJlY2VpdmVyIiwiZGVmYXVsdExvY2FsZSIsImFudExvY2FsZSIsImxvY2FsZUZyb21Db250ZXh0IiwibG9jYWxlQ29kZSIsImV4aXN0IiwiZ2V0TG9jYWxlQ29kZSIsImNvbnRleHRUeXBlcyIsImZpZWxkcyIsIl9yY1Rvb2x0aXAiLCJfcGxhY2VtZW50cyIsImdldERpc2FibGVkQ29tcGF0aWJsZUNoaWxkcmVuIiwiZWxlbWVudFR5cGUiLCJfX0FOVF9CVVRUT04iLCJfX0FOVF9TV0lUQ0giLCJfX0FOVF9DSEVDS0JPWCIsImRpc2FibGVkIiwiX3NwbGl0T2JqZWN0IiwicGlja2VkIiwib21pdHRlZCIsInNwbGl0T2JqZWN0Iiwic3BhblN0eWxlIiwiY3Vyc29yIiwid2lkdGgiLCJibG9jayIsImJ1dHRvblN0eWxlIiwicG9pbnRlckV2ZW50cyIsIlRvb2x0aXAiLCJvblZpc2libGVDaGFuZ2UiLCJ2aXNpYmxlIiwiaXNOb1RpdGxlIiwic2F2ZVRvb2x0aXAiLCJ0b29sdGlwIiwib25Qb3B1cEFsaWduIiwiZG9tTm9kZSIsImFsaWduIiwicGxhY2VtZW50cyIsImdldFBsYWNlbWVudHMiLCJwb2ludHMiLCJyZWN0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwidHJhbnNmb3JtT3JpZ2luIiwiaGVpZ2h0IiwicmVuZGVyVG9vbHRpcCIsImdldENvbnRleHRQb3B1cENvbnRhaW5lciIsIl9hc3NlcnRUaGlzSW5pdGlhbGl6ZSIsIm9wZW5DbGFzc05hbWUiLCJnZXRUb29sdGlwQ29udGFpbmVyIiwiY2hpbGRQcm9wcyIsImNoaWxkQ2xzIiwiYnVpbHRpblBsYWNlbWVudHMiLCJvdmVybGF5IiwiZ2V0T3ZlcmxheSIsImRlZmF1bHRWaXNpYmxlIiwiZ2V0UG9wdXBEb21Ob2RlIiwiYXJyb3dQb2ludEF0Q2VudGVyIiwiYXV0b0FkanVzdE92ZXJmbG93IiwidmVydGljYWxBcnJvd1NoaWZ0IiwiX3RoaXMkcHJvcHMyIiwiX3RoaXMkcHJvcHMzIiwibW91c2VFbnRlckRlbGF5IiwibW91c2VMZWF2ZURlbGF5IiwiY29kZSIsIjEiLCJfZGVyZXFfIiwiZm9yY2VTaW1pbGFyIiwiTWFwIiwiMiIsIlNpbWlsYXIiLCJsaXN0IiwibGFzdEl0ZW0iLCJzaXplIiwiaXNFcXVhbCIsImRlbGV0ZSIsInRoaXNBcmciLCJ2YWwxIiwidmFsMiIsIjMiLCJNYXBPclNpbWlsYXIiLCJtb3ZlVG9Nb3N0UmVjZW50THJ1IiwibHJ1IiwibHJ1UGF0aCIsImlzTWF0Y2giLCJscnVMZW4iLCJscnVQYXRoTGVuIiwicmVtb3ZlQ2FjaGVkUmVzdWx0IiwicmVtb3ZlZExydSIsInJlbW92ZWRMcnVMZW4iLCJjdXJyZW50THJ1IiwiY2FjaGVJdGVtIiwibWVtb2l6ZXJpZmljIiwibmV3TWFwIiwiZm5SZXN1bHQiLCJjdXJyZW50Q2FjaGUiLCJhcmdzTGVuZ3RoTWludXNPbmUiLCJpc01lbW9pemVkIiwibnVtQXJncyIsIndhc01lbW9pemVkIiwiYXJyYXlMaWtlVG9BcnJheSIsInJ1bnRpbWUiLCJPcCIsIml0ZXJhdG9yU3ltYm9sIiwiYXN5bmNJdGVyYXRvclN5bWJvbCIsImFzeW5jSXRlcmF0b3IiLCJ0b1N0cmluZ1RhZ1N5bWJvbCIsImRlZmluZSIsIndyYXAiLCJpbm5lckZuIiwib3V0ZXJGbiIsInRyeUxvY3NMaXN0IiwicHJvdG9HZW5lcmF0b3IiLCJHZW5lcmF0b3IiLCJnZW5lcmF0b3IiLCJDb250ZXh0IiwiX2ludm9rZSIsImRvbmVSZXN1bHQiLCJkZWxlZ2F0ZSIsImRlbGVnYXRlUmVzdWx0IiwibWF5YmVJbnZva2VEZWxlZ2F0ZSIsIkNvbnRpbnVlU2VudGluZWwiLCJzZW50IiwiX3NlbnQiLCJkaXNwYXRjaEV4Y2VwdGlvbiIsImFicnVwdCIsInJlY29yZCIsInRyeUNhdGNoIiwibWFrZUludm9rZU1ldGhvZCIsIkdlbmVyYXRvckZ1bmN0aW9uIiwiR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUiLCJJdGVyYXRvclByb3RvdHlwZSIsImdldFByb3RvIiwiTmF0aXZlSXRlcmF0b3JQcm90b3R5cGUiLCJHcCIsImRlZmluZUl0ZXJhdG9yTWV0aG9kcyIsIkFzeW5jSXRlcmF0b3IiLCJQcm9taXNlSW1wbCIsInByZXZpb3VzUHJvbWlzZSIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwicmVzb2x2ZSIsInJlamVjdCIsImludm9rZSIsIl9fYXdhaXQiLCJ1bndyYXBwZWQiLCJyZXN1bHROYW1lIiwibmV4dExvYyIsInB1c2hUcnlFbnRyeSIsImxvY3MiLCJlbnRyeSIsInRyeUxvYyIsImNhdGNoTG9jIiwiZmluYWxseUxvYyIsImFmdGVyTG9jIiwidHJ5RW50cmllcyIsInJlc2V0VHJ5RW50cnkiLCJjb21wbGV0aW9uIiwicmVzZXQiLCJpdGVyYWJsZSIsIml0ZXJhdG9yTWV0aG9kIiwiaXNHZW5lcmF0b3JGdW5jdGlvbiIsImdlbkZ1biIsImN0b3IiLCJtYXJrIiwiYXdyYXAiLCJhc3luYyIsInJldmVyc2UiLCJwb3AiLCJza2lwVGVtcFJlc2V0IiwicHJldiIsInJvb3RSZWNvcmQiLCJydmFsIiwiZXhjZXB0aW9uIiwiaGFuZGxlIiwibG9jIiwiY2F1Z2h0IiwiaGFzQ2F0Y2giLCJoYXNGaW5hbGx5IiwiZmluYWxseUVudHJ5IiwiY29tcGxldGUiLCJmaW5pc2giLCJ0aHJvd24iLCJkZWxlZ2F0ZVlpZWxkIiwicmVnZW5lcmF0b3JSdW50aW1lIiwiYWNjaWRlbnRhbFN0cmljdE1vZGUiLCJfZGVmaW5lVW5pb24iLCJfZXF1YWxzIiwiX2ltcGxlbWVudHMiLCJfaW5uZXJDb25jYXQiLCJfaW5zcGVjdCIsIl90eXBlIiwiYXBPckZ1bmMiLCJpc0FwcGxpY2F0aXZlIiwiaXNBcHBseSIsImlzU2FtZVR5cGUiLCJjb25zdGFudCIsImlkZW50aXR5IiwiX21heWJlIiwiTWF5YmUiLCJfb2YiLCJfemVybyIsInJ1blNlcXVlbmNlIiwiaW5jbHVkZXMiLCJvcHRpb24iLCJlaXRoZXIiLCJjYXNlT2YiLCJjb2FsZXNjZSIsImJpY2hhaW4iLCJiaWNoYWluRXJyIiwiYXAiLCJzZXF1ZW5jZSIsImFmIiwidHJhdmVyc2UiLCJoYXNBbGciLCJjb21wIiwic3RyYXRzIiwiZGVlcEVxdWFscyIsImlnbm9yZUNhc2UiLCJtdWx0aWxpbmUiLCJ1bmljb2RlIiwiaXNGdW5jdG9yIiwiaGFzUHJlZml4U3VmZml4IiwiQ2xlYXJhYmxlSW5wdXRUeXBlIiwiYWxsb3dDbGVhciIsIkNsZWFyYWJsZUxhYmVsZWRJbnB1dCIsInJlYWRPbmx5Iiwicm9sZSIsInJlbmRlckNsZWFySWNvbiIsInJlbmRlclN1ZmZpeCIsImFmZml4V3JhcHBlckNscyIsImdldElucHV0Q2xhc3NOYW1lIiwibGFiZWxlZEVsZW1lbnQiLCJfY2xhc3NOYW1lczMiLCJhZGRvbkJlZm9yZSIsImFkZG9uQWZ0ZXIiLCJ3cmFwcGVyQ2xhc3NOYW1lIiwiYWRkb25DbGFzc05hbWUiLCJhZGRvbkJlZm9yZU5vZGUiLCJhZGRvbkFmdGVyTm9kZSIsIm1lcmdlZFdyYXBwZXJDbGFzc05hbWUiLCJtZXJnZWRHcm91cENsYXNzTmFtZSIsIl90aGlzJHByb3BzNCIsIl90aGlzJHByb3BzNSIsInJlbmRlclRleHRBcmVhV2l0aENsZWFySWNvbiIsInJlbmRlcklucHV0V2l0aExhYmVsIiwicmVuZGVyTGFiZWxlZEljb24iLCJyZW5kZXJDbGVhcmFibGVMYWJlbGVkSW5wdXQiLCJhRnVuY3Rpb24iLCJ0b0lPYmplY3QiLCJhcnJheUluZGV4T2YiLCJjb2YiLCJyZWRlZmluZSIsIkl0ZXJhdG9ycyIsIiRpdGVyQ3JlYXRlIiwic2V0VG9TdHJpbmdUYWciLCJJVEVSQVRPUiIsIkJVR0dZIiwicmV0dXJuVGhpcyIsIkJhc2UiLCJOQU1FIiwiREVGQVVMVCIsIklTX1NFVCIsIkZPUkNFRCIsIm1ldGhvZHMiLCJnZXRNZXRob2QiLCJraW5kIiwiREVGX1ZBTFVFUyIsIlZBTFVFU19CVUciLCIkbmF0aXZlIiwiJGRlZmF1bHQiLCIkZW50cmllcyIsIiRhbnlOYXRpdmUiLCJlbnRyaWVzIiwiaGlkZGVuS2V5cyIsInBJRSIsImdPUEQiLCJub3RlIiwid2FybmVkIiwid2FybmluZ09uY2UiLCJub3RlT25jZSIsIl9lbl9VUyIsIl9lbl9VUzIiLCJfZW5fVVMzIiwiX2VuX1VTNCIsIlBhZ2luYXRpb24iLCJEYXRlUGlja2VyIiwiVGltZVBpY2tlciIsIkNhbGVuZGFyIiwicGxhY2Vob2xkZXIiLCJUYWJsZSIsImZpbHRlclRpdGxlIiwiZmlsdGVyQ29uZmlybSIsImZpbHRlclJlc2V0Iiwic2VsZWN0QWxsIiwic2VsZWN0SW52ZXJ0Iiwic29ydFRpdGxlIiwiZXhwYW5kIiwiY29sbGFwc2UiLCJNb2RhbCIsIm9rVGV4dCIsImNhbmNlbFRleHQiLCJqdXN0T2tUZXh0IiwiUG9wY29uZmlybSIsIlRyYW5zZmVyIiwidGl0bGVzIiwic2VhcmNoUGxhY2Vob2xkZXIiLCJpdGVtVW5pdCIsIml0ZW1zVW5pdCIsIlVwbG9hZCIsInVwbG9hZGluZyIsInJlbW92ZUZpbGUiLCJ1cGxvYWRFcnJvciIsInByZXZpZXdGaWxlIiwiZG93bmxvYWRGaWxlIiwiVGV4dCIsImVkaXQiLCJjb3BpZWQiLCJQYWdlSGVhZGVyIiwiYmFjayIsInJhbmdlUGxhY2Vob2xkZXIiLCJ0aW1lUGlja2VyTG9jYWxlIiwiSW5wdXRTaXplcyIsIl9vbWl0IiwiZXZlbnQiLCJjdXJyZW50VGFyZ2V0Iiwib3JpZ2luYWxJbnB1dFZhbHVlIiwiSW5wdXQiLCJzYXZlSW5wdXQiLCJyZW5kZXJJbnB1dCIsIm90aGVyUHJvcHMiLCJjbGVhclBhc3N3b3JkVmFsdWVBdHRyaWJ1dGUiLCJyZW1vdmVQYXNzd29yZFRpbWVvdXQiLCJnZXRBdHRyaWJ1dGUiLCJoYXNBdHRyaWJ1dGUiLCJyZW1vdmVBdHRyaWJ1dGUiLCJhY3RpdmVFbGVtZW50Iiwic2VsZWN0Iiwib25lT2YiLCJtYXhMZW5ndGgiLCJvbktleVVwIiwib25Gb2N1cyIsIm9uQmx1ciIsIm1vbWVudCIsInN5bWJvbE1hcCIsIm51bWJlck1hcCIsInBsdXJhbEZvcm0iLCJwbHVyYWxzIiwicGx1cmFsaXplIiwic3RyIiwid2Vla2RheXNQYXJzZUV4YWN0Iiwic3VmZml4ZXMiLCI1IiwiOCIsIjcwIiwiODAiLCI3IiwiMjAiLCI1MCIsIjQiLCIxMDAiLCI2IiwiOSIsIjEwIiwiMzAiLCI2MCIsIjkwIiwicmVsYXRpdmVUaW1lV2l0aFBsdXJhbCIsIm51bSIsImZvcm1zIiwic3RhbmRhbG9uZSIsImxhc3REaWdpdCIsImxhc3QyRGlnaXRzIiwibW9udGhzUGFyc2VFeGFjdCIsInJlbGF0aXZlVGltZVdpdGhNdXRhdGlvbiIsInRleHQiLCJtdXRhdGlvblRhYmxlIiwic3Vic3RyaW5nIiwic29mdE11dGF0aW9uIiwibXV0YXRpb24iLCJtaW5XZWVrZGF5c1BhcnNlIiwiZnVsbFdlZWtkYXlzUGFyc2UiLCJzaG9ydFdlZWtkYXlzUGFyc2UiLCJtb250aHNTdHJpY3RSZWdleCIsIm1vbnRoc1Nob3J0U3RyaWN0UmVnZXgiLCJsb25nTW9udGhzUGFyc2UiLCJzaG9ydE1vbnRoc1BhcnNlIiwibGFzdE51bWJlciIsInRyYW5zbGF0ZSIsImxsIiwibGxsIiwibGxsbCIsInBsdXJhbCIsInByb2Nlc3NSZWxhdGl2ZVRpbWUiLCJtb250aHNOb21pbmF0aXZlRWwiLCJtb250aHNHZW5pdGl2ZUVsIiwibW9tZW50VG9Gb3JtYXQiLCJfbW9udGhzR2VuaXRpdmVFbCIsIl9tb250aHNOb21pbmF0aXZlRWwiLCJjYWxlbmRhckVsIiwiX2NhbGVuZGFyRWwiLCJtb250aHNTaG9ydERvdCIsIm51bWJlcnNQYXN0IiwibnVtYmVyc0Z1dHVyZSIsInZlcmJhbE51bWJlciIsIm1vbnRoc1Nob3J0V2l0aERvdHMiLCJtb250aHNTaG9ydFdpdGhvdXREb3RzIiwid2Vla0VuZGluZ3MiLCJlcmFZZWFyT3JkaW5hbFJlZ2V4IiwiJDAiLCIkMSIsIiQyIiwiMCIsIjQwIiwiaXNVcHBlciIsImVpZmVsZXJSZWdlbEFwcGxpZXNUb051bWJlciIsInRyYW5zbGF0ZVNpbmd1bGFyIiwic3BlY2lhbCIsInJlbGF0aXZlVGltZVdpdGhTaW5ndWxhciIsInRyYW5zbGF0b3IiLCJ3b3JkcyIsImNvcnJlY3RHcmFtbWF0aWNhbENhc2UiLCJ3b3JkS2V5IiwicmVsYXRpdmVUaW1lTXIiLCJtb250aHNOb21pbmF0aXZlIiwibW9udGhzU3ViamVjdGl2ZSIsIjEyIiwiMTMiLCJudW1iZXJzTm91bnMiLCJudW1iZXJOb3VuIiwiaHVuZHJlZCIsInRlbiIsIm9uZSIsIndvcmQiLCJudW1iZXJBc05vdW4iLCJwcm9jZXNzSG91cnNGdW5jdGlvbiIsIm5vbWluYXRpdmUiLCJhY2N1c2F0aXZlIiwiZ2VuaXRpdmUiLCJfcmVhY3QyIiwiX2ltcGxlbWVudGF0aW9uMiIsImNyZWF0ZUNvbnRleHQiLCJ3cmFwcGVyUmFmIiwiX3JhZiIsImlkcyIsImRlbGF5RnJhbWVzIiwibXlJZCIsInJlc3RGcmFtZXMiLCJpbnRlcm5hbENhbGxiYWNrIiwiY2FuY2VsIiwicGlkIiwiX3JvdyIsIl9jb2wiLCJ0d29Ub25lQ29sb3JQYWxldHRlIiwic2Vjb25kYXJ5Q29sb3IiLCJfZXh0ZW5kczIiLCJfcHJvcHMiLCJyZXN0IiwiY29sb3JzIiwiaWNvbnMiLCJkZWZpbml0aW9ucyIsImNsZWFyIiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiZ2VuIiwiX25leHQiLCJfdGhyb3ciLCJhcnJheVdpdGhvdXRIb2xlcyIsIml0ZXJhYmxlVG9BcnJheSIsIm5vbkl0ZXJhYmxlU3ByZWFkIiwicmUiLCJub3Rfc3RyaW5nIiwibm90X2Jvb2wiLCJub3RfdHlwZSIsIm5vdF9wcmltaXRpdmUiLCJudW1lcmljX2FyZyIsIm5vdF9qc29uIiwibW9kdWxvIiwia2V5X2FjY2VzcyIsImluZGV4X2FjY2VzcyIsInNwcmludGYiLCJzcHJpbnRmX2Zvcm1hdCIsInNwcmludGZfcGFyc2UiLCJ2c3ByaW50ZiIsImZtdCIsInBhcnNlX3RyZWUiLCJwaCIsInBhZCIsInBhZF9jaGFyYWN0ZXIiLCJwYWRfbGVuZ3RoIiwiaXNfcG9zaXRpdmUiLCJ0cmVlX2xlbmd0aCIsInBhcmFtX25vIiwicHJlY2lzaW9uIiwidG9FeHBvbmVudGlhbCIsIk51bWJlciIsInRvUHJlY2lzaW9uIiwicGFkX2NoYXIiLCJyZXBlYXQiLCJzcHJpbnRmX2NhY2hlIiwiX2ZtdCIsImFyZ19uYW1lcyIsIlN5bnRheEVycm9yIiwiZmllbGRfbGlzdCIsInJlcGxhY2VtZW50X2ZpZWxkIiwiZmllbGRfbWF0Y2giLCJkZWJvdW5jZSIsIndhaXQiLCJpbW1lZGlhdGUiLCJ0aW1lc3RhbXAiLCJsYXRlciIsImxhc3QiLCJkZWJvdW5jZWQiLCJjYWxsTm93IiwiZmx1c2giLCJzeW1ib2xPYnNlcnZhYmxlUG9ueWZpbGwiLCJvYnNlcnZhYmxlIiwiX19pbXBvcnREZWZhdWx0IiwibW9kIiwiZ2VuZXJhdGVfMSIsInByZXNldFByaW1hcnlDb2xvcnMiLCJyZWQiLCJ2b2xjYW5vIiwib3JhbmdlIiwiZ29sZCIsInllbGxvdyIsImxpbWUiLCJncmVlbiIsImN5YW4iLCJibHVlIiwiZ2Vla2JsdWUiLCJwdXJwbGUiLCJtYWdlbnRhIiwiZ3JleSIsInByZXNldFBhbGV0dGVzIiwicHJpbWFyeSIsIl9idXR0b24iLCJfYnV0dG9uR3JvdXAiLCJHcm91cCIsInN0cmljdFVyaUVuY29kZSIsIm9iamVjdEFzc2lnbiIsImRlY29kZUNvbXBvbmVudCIsImVuY29kZSIsIm9wdHMiLCJlbmNvZGVVUklDb21wb25lbnQiLCJleHRyYWN0IiwicXVlcnlTdGFydCIsInBhcnNlIiwiZm9ybWF0dGVyIiwiYWNjdW11bGF0b3IiLCJwYXJzZXJGb3JBcnJheUZvcm1hdCIsInRyaW0iLCJwYXJhbSIsImtleXNTb3J0ZXIiLCJlbmNvZGVyRm9yQXJyYXlGb3JtYXQiLCJwYXJzZVVybCIsInF1ZXJ5IiwiQ2xhc3NMaXN0IiwiZWwiLCJub2RlVHlwZSIsImNsYXNzTGlzdCIsInJlbW92ZU1hdGNoaW5nIiwidG9nZ2xlIiwiZm9yY2UiLCJjb250YWlucyIsImV2ZW50VHlwZSIsIndyYXBDYWxsYmFjayIsIm5lIiwiX0V2ZW50T2JqZWN0MiIsIl9yZXQiLCJ1c2VDYXB0dXJlIiwiY2FwdHVyZSIsImF0dGFjaEV2ZW50IiwiZGV0YWNoRXZlbnQiLCJfRXZlbnRPYmplY3QiLCJfdG9vbHRpcCIsIlBvcG92ZXIiLCJyZW5kZXJQb3BvdmVyIiwidHJpZ2dlciIsIm92ZXJsYXlTdHlsZSIsInhtbF9lbnRpdGllc18xIiwiWG1sRW50aXRpZXMiLCJodG1sNF9lbnRpdGllc18xIiwiSHRtbDRFbnRpdGllcyIsImh0bWw1X2VudGl0aWVzXzEiLCJIdG1sNUVudGl0aWVzIiwiQWxsSHRtbEVudGl0aWVzIiwicmVxdWVzdHMiLCJnZXRSZXF1ZXN0S2V5IiwiX3JlZiR1cmwiLCJfcmVmJG1ldGhvZCIsIl9yZWYkcmVzcG9uc2VUeXBlIiwicmVzcG9uc2VUeXBlIiwiX3JlZiRib2R5IiwicmVzb2x2ZVJlcXVlc3QiLCJfcmVmMiIsInJlcXVlc3RLZXkiLCJoYW5kbGVyIiwiZmV0Y2hEZWR1cGUiLCJkZWR1cGVPcHRpb25zIiwiaW5pdFRvVXNlIiwiX29wdHMiLCJfb3B0cyRyZXNwb25zZVR5cGUiLCJfb3B0cyRkZWR1cGUiLCJkZWR1cGUiLCJyZXF1ZXN0S2V5VG9Vc2UiLCJwcm94eVJlcSIsImhhbmRsZXJzIiwicmVxdWVzdEluRmxpZ2h0IiwicmVxdWVzdEhhbmRsZXIiLCJyZXF1ZXN0IiwicmVzcG9uc2VUeXBlVG9Vc2UiLCJzdGF0dXMiLCJGZXRjaENvbnRleHQiLCJzdHJpbmdpZnlJZkpTT04iLCJmZXRjaE9wdGlvbnMiLCJrZXlUb0ZpbmQiLCJIZWFkZXJzIiwia2V5VG9GaW5kTG93ZXJjYXNlIiwiaGVhZGVyS2V5IiwiZmluZCIsImdldEhlYWRlciIsImlzUmVhZFJlcXVlc3QiLCJDQUNIRV9QT0xJQ0lFUyIsImRlZmF1bHRPbkVycm9yIiwiZGVmYXVsdE9uU3VjY2VzcyIsInJlZHVjZXIiLCJmZXRjaGluZyIsInJlc3BvbnNlIiwiZGVmYXVsdFJlZnJlc2hEb0ZldGNoIiwiX3JlZiRsYXp5IiwibGF6eSIsIl9yZWYkcmVxdWVzdEtleSIsIl9yZWYkaW5pdCIsIl9yZWYkZGVkdXBlT3B0aW9ucyIsIl9yZWYkY2FjaGVQb2xpY3kiLCJjYWNoZVBvbGljeSIsIl9yZWYkY2FjaGVSZXNwb25zZSIsImNhY2hlUmVzcG9uc2UiLCJfcmVmJG9uRXJyb3IiLCJvbkVycm9yIiwiX3JlZiRvblN1Y2Nlc3MiLCJvblN1Y2Nlc3MiLCJfcmVmJHJlZnJlc2hEb0ZldGNoIiwicmVmcmVzaERvRmV0Y2giLCJyZXNwb25zZUNhY2hlIiwiYWJvcnRDb250cm9sbGVyUmVmIiwiaXNMYXp5IiwiY2FjaGVTdHJhdGVneSIsImdldERlZmF1bHRDYWNoZVN0cmF0ZWd5IiwiX3VzZVJlZHVjZXIiLCJkaXNwYXRjaCIsImZpbmFsUmVxdWVzdEtleSIsInNldEZldGNoaW5nIiwic2V0UmVzcG9uc2UiLCJzZXRFcnJvciIsImNhbmNlbFJ1bm5pbmdSZXF1ZXN0IiwiYWJvcnQiLCJzaG91bGRDYWNoZVJlc3BvbnNlIiwiZG9GZXRjaCIsImRvRmV0Y2hJbml0IiwiZG9GZXRjaERlZHVwZU9wdGlvbnMiLCJBYm9ydENvbnRyb2xsZXIiLCJmaW5hbEluaXQiLCJmaW5hbERlZHVwZU9wdGlvbnMiLCJzaWduYWwiLCJjYXRjaCIsImFib3J0ZWQiLCJmaW5hbGx5IiwiY2FjaGVkUmVzcG9uc2UiLCJxIiwiYWEiLCJiYSIsImNhIiwieiIsIkEiLCJpc01vdW50ZWQiLCJlbnF1ZXVlRm9yY2VVcGRhdGUiLCJlbnF1ZXVlUmVwbGFjZVN0YXRlIiwiZW5xdWV1ZVNldFN0YXRlIiwiRCIsInJlZnMiLCJ1cGRhdGVyIiwiZm9yY2VVcGRhdGUiLCJpc1B1cmVSZWFjdENvbXBvbmVudCIsIkgiLCJJIiwic3VzcGVuc2UiLCJKIiwiSyIsIl9fc2VsZiIsIl9fc291cmNlIiwiJCR0eXBlb2YiLCJfb3duZXIiLCJOIiwiUSIsImtleVByZWZpeCIsIlQiLCJlc2NhcGUiLCJlYSIsImZhIiwiViIsImRhIiwiWCIsImNyZWF0ZVJlZiIsIlB1cmVDb21wb25lbnQiLCJfY2FsY3VsYXRlQ2hhbmdlZEJpdHMiLCJfY3VycmVudFZhbHVlIiwiX2N1cnJlbnRWYWx1ZTIiLCJfdGhyZWFkQ291bnQiLCJDb25zdW1lciIsImZvcndhcmRSZWYiLCJyZW5kZXIiLCJfY3RvciIsIl9zdGF0dXMiLCJfcmVzdWx0IiwibWVtbyIsImNvbXBhcmUiLCJ1c2VDYWxsYmFjayIsInVzZUNvbnRleHQiLCJ1c2VFZmZlY3QiLCJ1c2VJbXBlcmF0aXZlSGFuZGxlIiwidXNlRGVidWdWYWx1ZSIsInVzZUxheW91dEVmZmVjdCIsInVzZU1lbW8iLCJ1c2VSZWR1Y2VyIiwidXNlUmVmIiwidXNlU3RhdGUiLCJGcmFnbWVudCIsIlByb2ZpbGVyIiwiU3RyaWN0TW9kZSIsIlN1c3BlbnNlIiwidW5zdGFibGVfU3VzcGVuc2VMaXN0IiwiY3JlYXRlRmFjdG9yeSIsInVuc3RhYmxlX3dpdGhTdXNwZW5zZUNvbmZpZyIsIl9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEIiwiUmVhY3RDdXJyZW50RGlzcGF0Y2hlciIsIlJlYWN0Q3VycmVudEJhdGNoQ29uZmlnIiwiUmVhY3RDdXJyZW50T3duZXIiLCJJc1NvbWVSZW5kZXJlckFjdGluZyIsIlkiLCJaIiwiZXh0cmFjdEV2ZW50cyIsImV2ZW50VHlwZXMiLCJwaGFzZWRSZWdpc3RyYXRpb25OYW1lcyIsImhhIiwicmVnaXN0cmF0aW9uTmFtZSIsImlhIiwiamEiLCJkZXBlbmRlbmNpZXMiLCJrYSIsImxhIiwibWEiLCJuYSIsIm9hIiwicGEiLCJxYSIsInNhIiwidGEiLCJ2YSIsIndhIiwicmEiLCJ4YSIsInlhIiwiemEiLCJBYSIsIl9kaXNwYXRjaExpc3RlbmVycyIsIl9kaXNwYXRjaEluc3RhbmNlcyIsImlzUHJvcGFnYXRpb25TdG9wcGVkIiwiaXNQZXJzaXN0ZW50IiwicmVsZWFzZSIsIkJhIiwiQ2EiLCJpbmplY3RFdmVudFBsdWdpbk9yZGVyIiwiaW5qZWN0RXZlbnRQbHVnaW5zQnlOYW1lIiwiRGEiLCJzdGF0ZU5vZGUiLCJFYSIsIkZhIiwiR2EiLCJIYSIsInBhcmVudE5vZGUiLCJJYSIsIkphIiwiS2EiLCJMYSIsInJldHVybiIsIk1hIiwiZGlzcGF0Y2hDb25maWciLCJOYSIsIl90YXJnZXRJbnN0IiwiT2EiLCJQYSIsIlFhIiwiUmEiLCJTYSIsIlRhIiwiYW5pbWF0aW9uaXRlcmF0aW9uIiwiVWEiLCJWYSIsIldhIiwiWGEiLCJZYSIsIlphIiwiYWIiLCJiYiIsImRiIiwiZWIiLCJmYiIsInRleHRDb250ZW50IiwiZ2IiLCJoYiIsIm5hdGl2ZUV2ZW50IiwiSW50ZXJmYWNlIiwiaXNEZWZhdWx0UHJldmVudGVkIiwiZGVmYXVsdFByZXZlbnRlZCIsInJldHVyblZhbHVlIiwiamIiLCJldmVudFBvb2wiLCJrYiIsImRlc3RydWN0b3IiLCJpYiIsImdldFBvb2xlZCIsInByZXZlbnREZWZhdWx0Iiwic3RvcFByb3BhZ2F0aW9uIiwiY2FuY2VsQnViYmxlIiwicGVyc2lzdCIsImV2ZW50UGhhc2UiLCJidWJibGVzIiwiY2FuY2VsYWJsZSIsInRpbWVTdGFtcCIsImlzVHJ1c3RlZCIsImxiIiwibWIiLCJuYiIsIm9iIiwicGIiLCJkb2N1bWVudE1vZGUiLCJxYiIsInNiIiwidGIiLCJ1YiIsImJlZm9yZUlucHV0IiwiYnViYmxlZCIsImNhcHR1cmVkIiwiY29tcG9zaXRpb25FbmQiLCJjb21wb3NpdGlvblN0YXJ0IiwiY29tcG9zaXRpb25VcGRhdGUiLCJ2YiIsIndiIiwieGIiLCJkZXRhaWwiLCJ5YiIsIkNiIiwid2hpY2giLCJBYiIsImN0cmxLZXkiLCJhbHRLZXkiLCJtZXRhS2V5IiwiY2hhciIsIkJiIiwiRGIiLCJFYiIsIkZiIiwiR2IiLCJIYiIsIkliIiwiSmIiLCJLYiIsIkxiIiwiTWIiLCJOYiIsIk9iIiwiUGIiLCJjb2xvciIsImRhdGV0aW1lIiwiZW1haWwiLCJwYXNzd29yZCIsInJhbmdlIiwic2VhcmNoIiwidGVsIiwiUWIiLCJub2RlTmFtZSIsIlJiIiwic3JjRWxlbWVudCIsImNvcnJlc3BvbmRpbmdVc2VFbGVtZW50IiwiU2IiLCJzZXRBdHRyaWJ1dGUiLCJUYiIsIlZiIiwiX3ZhbHVlVHJhY2tlciIsImdldFZhbHVlIiwic3RvcFRyYWNraW5nIiwiVWIiLCJXYiIsImNoZWNrZWQiLCJYYiIsIlliIiwiWmIiLCIkYiIsImFjIiwiYmMiLCJjYyIsImRjIiwiZWMiLCJmYyIsImdjIiwiaGMiLCJpYyIsImpjIiwia2MiLCJsYyIsIm1jIiwib2MiLCJwYyIsIl9kZWJ1Z093bmVyIiwiX2RlYnVnU291cmNlIiwiZmlsZU5hbWUiLCJsaW5lTnVtYmVyIiwicWMiLCJyYyIsInNjIiwidGMiLCJhY2NlcHRzQm9vbGVhbnMiLCJhdHRyaWJ1dGVOYW1lIiwiYXR0cmlidXRlTmFtZXNwYWNlIiwibXVzdFVzZVByb3BlcnR5IiwicHJvcGVydHlOYW1lIiwic2FuaXRpemVVUkwiLCJ4YyIsInljIiwiemMiLCJ2YyIsIndjIiwidWMiLCJzZXRBdHRyaWJ1dGVOUyIsIkFjIiwiQmMiLCJkZWZhdWx0Q2hlY2tlZCIsIl93cmFwcGVyU3RhdGUiLCJpbml0aWFsQ2hlY2tlZCIsIkNjIiwiaW5pdGlhbFZhbHVlIiwiY29udHJvbGxlZCIsIkRjIiwiRWMiLCJGYyIsIkdjIiwib3duZXJEb2N1bWVudCIsInhsaW5rSHJlZiIsIkhjIiwiY2hhbmdlIiwiSWMiLCJKYyIsIktjIiwiTGMiLCJNYyIsIk5jIiwiT2MiLCJQYyIsIlFjIiwiUmMiLCJTYyIsIlRjIiwiVWMiLCJWYyIsIl9pc0lucHV0RXZlbnRTdXBwb3J0ZWQiLCJXYyIsInZpZXciLCJYYyIsIkFsdCIsIkNvbnRyb2wiLCJNZXRhIiwiU2hpZnQiLCJZYyIsImdldE1vZGlmaWVyU3RhdGUiLCJaYyIsIiRjIiwiYWQiLCJiZCIsImNkIiwic2NyZWVuWCIsInNjcmVlblkiLCJjbGllbnRYIiwiY2xpZW50WSIsInBhZ2VYIiwicGFnZVkiLCJzaGlmdEtleSIsImJ1dHRvbiIsImJ1dHRvbnMiLCJyZWxhdGVkVGFyZ2V0IiwiZnJvbUVsZW1lbnQiLCJ0b0VsZW1lbnQiLCJtb3ZlbWVudFgiLCJtb3ZlbWVudFkiLCJlZCIsInBvaW50ZXJJZCIsInByZXNzdXJlIiwidGFuZ2VudGlhbFByZXNzdXJlIiwidGlsdFgiLCJ0aWx0WSIsInR3aXN0IiwicG9pbnRlclR5cGUiLCJpc1ByaW1hcnkiLCJmZCIsIm1vdXNlRW50ZXIiLCJtb3VzZUxlYXZlIiwicG9pbnRlckVudGVyIiwicG9pbnRlckxlYXZlIiwiZ2QiLCJkZWZhdWx0VmlldyIsInBhcmVudFdpbmRvdyIsImFsdGVybmF0ZSIsImhkIiwiamQiLCJrZCIsInJlc3BvbmRlciIsImxkIiwiZWZmZWN0VGFnIiwib2QiLCJxZCIsInNpYmxpbmciLCJwZCIsIlNldCIsInJkIiwiYW5pbWF0aW9uTmFtZSIsImVsYXBzZWRUaW1lIiwicHNldWRvRWxlbWVudCIsInNkIiwiY2xpcGJvYXJkRGF0YSIsInRkIiwidWQiLCJjaGFyQ29kZSIsInZkIiwiRXNjIiwiU3BhY2ViYXIiLCJMZWZ0IiwiVXAiLCJSaWdodCIsIkRvd24iLCJEZWwiLCJXaW4iLCJNZW51IiwiQXBwcyIsIlNjcm9sbCIsIk1velByaW50YWJsZUtleSIsIndkIiwiMTYiLCIxNyIsIjE4IiwiMTkiLCIyNyIsIjMyIiwiMzMiLCIzNCIsIjM1IiwiMzYiLCIzNyIsIjM4IiwiMzkiLCI0NSIsIjQ2IiwiMTEyIiwiMTEzIiwiMTE0IiwiMTE1IiwiMTE2IiwiMTE3IiwiMTE4IiwiMTE5IiwiMTIwIiwiMTIxIiwiMTIyIiwiMTIzIiwiMTQ0IiwiMTQ1IiwiMjI0IiwieGQiLCJsb2NhdGlvbiIsInlkIiwiZGF0YVRyYW5zZmVyIiwiemQiLCJ0b3VjaGVzIiwidGFyZ2V0VG91Y2hlcyIsImNoYW5nZWRUb3VjaGVzIiwiQWQiLCJCZCIsImRlbHRhWCIsIndoZWVsRGVsdGFYIiwiZGVsdGFZIiwid2hlZWxEZWx0YVkiLCJ3aGVlbERlbHRhIiwiZGVsdGFaIiwiZGVsdGFNb2RlIiwiQ2QiLCJEZCIsIkVkIiwiRmQiLCJHZCIsIkhkIiwiSWQiLCJKZCIsIktkIiwiTGQiLCJldmVudFByaW9yaXR5IiwiTWQiLCJnZXRFdmVudFByaW9yaXR5IiwiTmQiLCJPZCIsIlBkIiwidGFyZ2V0SW5zdCIsImFuY2VzdG9ycyIsImNvbnRhaW5lckluZm8iLCJ0b3BMZXZlbFR5cGUiLCJRZCIsIlJkIiwiU2QiLCJUZCIsIlVkIiwiVmQiLCJXZCIsIlhkIiwiWWQiLCJmaXJzdENoaWxkIiwiWmQiLCJuZXh0U2libGluZyIsImFlIiwiSFRNTElGcmFtZUVsZW1lbnQiLCJocmVmIiwiYmUiLCJjb250ZW50RWRpdGFibGUiLCJjZSIsImRlIiwiZWUiLCJmZSIsImdlIiwiaGUiLCJpZSIsInNlbGVjdGlvblN0YXJ0Iiwic2VsZWN0aW9uRW5kIiwiYW5jaG9yTm9kZSIsImdldFNlbGVjdGlvbiIsImFuY2hvck9mZnNldCIsImZvY3VzTm9kZSIsImZvY3VzT2Zmc2V0IiwiamUiLCJvblNlbGVjdCIsImxlIiwia2UiLCJtZSIsInNlbGVjdGVkIiwiZGVmYXVsdFNlbGVjdGVkIiwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiLCJvZSIsInBlIiwicWUiLCJTaW1wbGVFdmVudFBsdWdpbiIsIkVudGVyTGVhdmVFdmVudFBsdWdpbiIsIkNoYW5nZUV2ZW50UGx1Z2luIiwiU2VsZWN0RXZlbnRQbHVnaW4iLCJCZWZvcmVJbnB1dEV2ZW50UGx1Z2luIiwic2UiLCJ0ZSIsInVlIiwidmUiLCJNU0FwcCIsImV4ZWNVbnNhZmVMb2NhbEZ1bmN0aW9uIiwibmFtZXNwYWNlVVJJIiwiaW5uZXJIVE1MIiwicmVtb3ZlQ2hpbGQiLCJ3ZSIsImxhc3RDaGlsZCIsIm5vZGVWYWx1ZSIsInhlIiwiYW5pbWF0aW9uSXRlcmF0aW9uQ291bnQiLCJib3JkZXJJbWFnZU91dHNldCIsImJvcmRlckltYWdlU2xpY2UiLCJib3JkZXJJbWFnZVdpZHRoIiwiYm94RmxleCIsImJveEZsZXhHcm91cCIsImJveE9yZGluYWxHcm91cCIsImNvbHVtbkNvdW50IiwiY29sdW1ucyIsImZsZXgiLCJmbGV4R3JvdyIsImZsZXhQb3NpdGl2ZSIsImZsZXhTaHJpbmsiLCJmbGV4TmVnYXRpdmUiLCJmbGV4T3JkZXIiLCJncmlkQXJlYSIsImdyaWRSb3ciLCJncmlkUm93RW5kIiwiZ3JpZFJvd1NwYW4iLCJncmlkUm93U3RhcnQiLCJncmlkQ29sdW1uIiwiZ3JpZENvbHVtbkVuZCIsImdyaWRDb2x1bW5TcGFuIiwiZ3JpZENvbHVtblN0YXJ0IiwiZm9udFdlaWdodCIsImxpbmVDbGFtcCIsImxpbmVIZWlnaHQiLCJvcGFjaXR5Iiwib3JkZXIiLCJvcnBoYW5zIiwidGFiU2l6ZSIsIndpZG93cyIsInpJbmRleCIsInpvb20iLCJmaWxsT3BhY2l0eSIsImZsb29kT3BhY2l0eSIsInN0b3BPcGFjaXR5Iiwic3Ryb2tlRGFzaGFycmF5Iiwic3Ryb2tlRGFzaG9mZnNldCIsInN0cm9rZU1pdGVybGltaXQiLCJzdHJva2VPcGFjaXR5Iiwic3Ryb2tlV2lkdGgiLCJ5ZSIsInplIiwiQWUiLCJzZXRQcm9wZXJ0eSIsIkNlIiwibWVudWl0ZW0iLCJhcmVhIiwiYnIiLCJjb2wiLCJlbWJlZCIsImhyIiwiaW1nIiwia2V5Z2VuIiwibGluayIsIm1ldGEiLCJ0cmFjayIsIndiciIsIkRlIiwiRWUiLCJGZSIsIkdlIiwiSGUiLCJJZSIsIkplIiwiYXV0b0ZvY3VzIiwiS2UiLCJfX2h0bWwiLCJMZSIsIk1lIiwiTmUiLCJPZSIsIlBlIiwiUWUiLCJSZSIsIlNlIiwiX19yZWFjdEludGVybmFsTWVtb2l6ZWRVbm1hc2tlZENoaWxkQ29udGV4dCIsIl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWFza2VkQ2hpbGRDb250ZXh0IiwiY2hpbGRDb250ZXh0VHlwZXMiLCJUZSIsIlVlIiwiVmUiLCJXZSIsImdldENoaWxkQ29udGV4dCIsIlhlIiwiX19yZWFjdEludGVybmFsTWVtb2l6ZWRNZXJnZWRDaGlsZENvbnRleHQiLCJZZSIsIlplIiwidW5zdGFibGVfcnVuV2l0aFByaW9yaXR5IiwiJGUiLCJ1bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrIiwidW5zdGFibGVfY2FuY2VsQ2FsbGJhY2siLCJiZiIsInVuc3RhYmxlX3Nob3VsZFlpZWxkIiwiY2YiLCJ1bnN0YWJsZV9yZXF1ZXN0UGFpbnQiLCJkZiIsInVuc3RhYmxlX25vdyIsImVmIiwidW5zdGFibGVfZ2V0Q3VycmVudFByaW9yaXR5TGV2ZWwiLCJmZiIsInVuc3RhYmxlX0ltbWVkaWF0ZVByaW9yaXR5IiwiaGYiLCJ1bnN0YWJsZV9Vc2VyQmxvY2tpbmdQcmlvcml0eSIsImpmIiwidW5zdGFibGVfTm9ybWFsUHJpb3JpdHkiLCJrZiIsInVuc3RhYmxlX0xvd1ByaW9yaXR5IiwibGYiLCJ1bnN0YWJsZV9JZGxlUHJpb3JpdHkiLCJtZiIsIm5mIiwicGYiLCJxZiIsInJmIiwic2YiLCJ0ZiIsInVmIiwidmYiLCJ3ZiIsInhmIiwieWYiLCJ6ZiIsIkFmIiwiQ2YiLCJEZiIsIkVmIiwiRmYiLCJHZiIsIkhmIiwiSWYiLCJKZiIsImNoaWxkRXhwaXJhdGlvblRpbWUiLCJLZiIsImZpcnN0Q29udGV4dCIsImV4cGlyYXRpb25UaW1lIiwiTGYiLCJNZiIsIm9ic2VydmVkQml0cyIsInJlc3BvbmRlcnMiLCJOZiIsIk9mIiwiYmFzZVN0YXRlIiwiZmlyc3RVcGRhdGUiLCJsYXN0VXBkYXRlIiwiZmlyc3RDYXB0dXJlZFVwZGF0ZSIsImxhc3RDYXB0dXJlZFVwZGF0ZSIsImZpcnN0RWZmZWN0IiwibGFzdEVmZmVjdCIsImZpcnN0Q2FwdHVyZWRFZmZlY3QiLCJsYXN0Q2FwdHVyZWRFZmZlY3QiLCJQZiIsIlFmIiwic3VzcGVuc2VDb25maWciLCJuZXh0RWZmZWN0IiwiUmYiLCJTZiIsInVwZGF0ZVF1ZXVlIiwibWVtb2l6ZWRTdGF0ZSIsIlRmIiwiVWYiLCJWZiIsIldmIiwiWGYiLCJZZiIsIlpmIiwiJGYiLCJhZyIsImJnIiwiZmciLCJfcmVhY3RJbnRlcm5hbEZpYmVyIiwiY2ciLCJkZyIsImVnIiwic2hvdWxkQ29tcG9uZW50VXBkYXRlIiwiaGciLCJjb250ZXh0VHlwZSIsImlnIiwiamciLCJjb21wb25lbnREaWRNb3VudCIsImtnIiwibGciLCJfc3RyaW5nUmVmIiwibWciLCJuZyIsIm9nIiwicGciLCJxZyIsImltcGxlbWVudGF0aW9uIiwicmciLCJzZyIsInJiIiwiQmUiLCJ0ZyIsInVnIiwidmciLCJ3ZyIsInhnIiwieWciLCJ6ZyIsIkFnIiwiZG9jdW1lbnRFbGVtZW50IiwidGFnTmFtZSIsIkJnIiwiQ2ciLCJEZyIsIkhnIiwibWVtb2l6ZWRQcm9wcyIsInJldmVhbE9yZGVyIiwiUWciLCJSZyIsIlNnIiwiVGciLCJVZyIsIlZnIiwiV2ciLCJYZyIsIllnIiwiWmciLCIkZyIsImFoIiwiYmgiLCJjaCIsImRoIiwiZWgiLCJmaCIsImloIiwiamgiLCJiYXNlVXBkYXRlIiwia2giLCJsaCIsIm1oIiwibGFzdFJlbmRlcmVkUmVkdWNlciIsImxhc3RSZW5kZXJlZFN0YXRlIiwiZWFnZXJSZWR1Y2VyIiwiZWFnZXJTdGF0ZSIsIm5oIiwiZGVwcyIsIm9oIiwicWgiLCJyaCIsInNoIiwicmVhZENvbnRleHQiLCJ1c2VSZXNwb25kZXIiLCJQZyIsIktnIiwidWgiLCJ2aCIsIndoIiwieGgiLCJ5aCIsInBlbmRpbmdQcm9wcyIsInpoIiwiQWgiLCJCaCIsIkNoIiwiRGgiLCJFaCIsIkZoIiwiR2giLCJIaCIsIkloIiwiSmgiLCJLaCIsIkxoIiwiTWgiLCJnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IiLCJOaCIsInBlbmRpbmdDb250ZXh0IiwiT2giLCJQaCIsImZhbGxiYWNrIiwidW5zdGFibGVfYXZvaWRUaGlzRmFsbGJhY2siLCJRaCIsImlzQmFja3dhcmRzIiwicmVuZGVyaW5nIiwidGFpbCIsInRhaWxFeHBpcmF0aW9uIiwidGFpbE1vZGUiLCJSaCIsIlNoIiwiVGgiLCJWaCIsIldoIiwiJGgiLCJhaSIsImJpIiwib25jbGljayIsImNpIiwiV2Vha1NldCIsImRpIiwiZ2kiLCJmaSIsImhpIiwiamkiLCJjb21wb25lbnRXaWxsVW5tb3VudCIsImVpIiwia2kiLCJsaSIsIm1pIiwibmkiLCJpbnNlcnRCZWZvcmUiLCJfcmVhY3RSb290Q29udGFpbmVyIiwib2kiLCJ3YXNNdWx0aXBsZSIsIm11bHRpcGxlIiwicGkiLCJxaSIsInJpIiwic2kiLCJ0aSIsInVpIiwidmkiLCJ3aSIsImNvbXBvbmVudERpZENhdGNoIiwieGkiLCJjb21wb25lbnRTdGFjayIsInlpIiwiemkiLCJBaSIsIkppIiwiS2kiLCJMaSIsIk1pIiwiTmkiLCJQaSIsIlFpIiwiUmkiLCJTaSIsIlRpIiwiVWkiLCJWaSIsIldpIiwidGltZW91dE1zIiwiWGkiLCJZaSIsInBpbmdUaW1lIiwiWmkiLCJmaXJzdFBlbmRpbmdUaW1lIiwibGFzdFBlbmRpbmdUaW1lIiwiY2FsbGJhY2tFeHBpcmF0aW9uVGltZSIsImNhbGxiYWNrTm9kZSIsIiRpIiwiYWoiLCJiaiIsImNqIiwiZWoiLCJmaiIsImdqIiwiaGoiLCJmaW5pc2hlZFdvcmsiLCJmaW5pc2hlZEV4cGlyYXRpb25UaW1lIiwidGltZW91dEhhbmRsZSIsImlqIiwiamoiLCJwaW5nQ2FjaGUiLCJraiIsImxqIiwiZmlyc3RCYXRjaCIsIl9kZWZlciIsIl9leHBpcmF0aW9uVGltZSIsIl9vbkNvbXBsZXRlIiwiZGoiLCJidXN5TWluRHVyYXRpb25NcyIsImJ1c3lEZWxheU1zIiwibWoiLCJjcmVhdGVFbGVtZW50TlMiLCJjcmVhdGVUZXh0Tm9kZSIsIm5qIiwicmFuZ2VDb3VudCIsInpiIiwiZm9jdXNlZEVsZW0iLCJzZWxlY3Rpb25SYW5nZSIsInVhIiwiZ2giLCJvaiIsIl9fcmVhY3RJbnRlcm5hbFNuYXBzaG90QmVmb3JlVXBkYXRlIiwiJGQiLCJjb21wYXJlRG9jdW1lbnRQb3NpdGlvbiIsImNyZWF0ZVJhbmdlIiwic2V0U3RhcnQiLCJyZW1vdmVBbGxSYW5nZXMiLCJhZGRSYW5nZSIsInNldEVuZCIsInNjcm9sbExlZnQiLCJzY3JvbGxUb3AiLCIkYSIsIm5jIiwibWQiLCJGaiIsIlhoIiwiWWgiLCJHaiIsIm5kIiwiWmgiLCJnZiIsInBqIiwicWoiLCJyaiIsImhpZGRlbiIsIkJmIiwic2oiLCJoeWRyYXRlIiwidW5zdGFibGVfb2JzZXJ2ZWRCaXRzIiwidWoiLCJ2aiIsIndqIiwieGoiLCJ5aiIsInpqIiwiQWoiLCJCaiIsIl9yb290IiwiX2NhbGxiYWNrcyIsIl9oYXNDaGlsZHJlbiIsIl9kaWRDb21wbGV0ZSIsIl9jaGlsZHJlbiIsIkNqIiwiX2RpZENvbW1pdCIsIl9vbkNvbW1pdCIsIkRqIiwiX2ludGVybmFsUm9vdCIsIkVqIiwiSGoiLCJKaiIsIklqIiwiS2oiLCJxdWVyeVNlbGVjdG9yQWxsIiwiZm9ybSIsImNvbW1pdCIsInVubW91bnQiLCJjcmVhdGVCYXRjaCIsIk5qIiwiY3JlYXRlUG9ydGFsIiwidW5zdGFibGVfcmVuZGVyU3VidHJlZUludG9Db250YWluZXIiLCJ1bm1vdW50Q29tcG9uZW50QXROb2RlIiwidW5zdGFibGVfY3JlYXRlUG9ydGFsIiwidW5zdGFibGVfYmF0Y2hlZFVwZGF0ZXMiLCJ1bnN0YWJsZV9pbnRlcmFjdGl2ZVVwZGF0ZXMiLCJ1bnN0YWJsZV9kaXNjcmV0ZVVwZGF0ZXMiLCJ1bnN0YWJsZV9mbHVzaERpc2NyZXRlVXBkYXRlcyIsImZsdXNoU3luYyIsInVuc3RhYmxlX2NyZWF0ZVJvb3QiLCJ1bnN0YWJsZV9jcmVhdGVTeW5jUm9vdCIsInVuc3RhYmxlX2ZsdXNoQ29udHJvbGxlZCIsIkV2ZW50cyIsImZpbmRGaWJlckJ5SG9zdEluc3RhbmNlIiwiYnVuZGxlVHlwZSIsInJlbmRlcmVyUGFja2FnZU5hbWUiLCJpc0Rpc2FibGVkIiwic3VwcG9ydHNGaWJlciIsImluamVjdCIsIm9uQ29tbWl0RmliZXJSb290Iiwib25Db21taXRGaWJlclVubW91bnQiLCJ0aiIsIm92ZXJyaWRlSG9va1N0YXRlIiwib3ZlcnJpZGVQcm9wcyIsInNldFN1c3BlbnNlSGFuZGxlciIsInNjaGVkdWxlVXBkYXRlIiwiY3VycmVudERpc3BhdGNoZXJSZWYiLCJmaW5kSG9zdEluc3RhbmNlQnlGaWJlciIsImZpbmRIb3N0SW5zdGFuY2VzRm9yUmVmcmVzaCIsInNjaGVkdWxlUmVmcmVzaCIsInNjaGVkdWxlUm9vdCIsInNldFJlZnJlc2hIYW5kbGVyIiwiZ2V0Q3VycmVudEZpYmVyIiwiT2oiLCJQaiIsInVuc3RhYmxlX2ZvcmNlRnJhbWVSYXRlIiwiTWVzc2FnZUNoYW5uZWwiLCJwZXJmb3JtYW5jZSIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsImNhbmNlbEFuaW1hdGlvbkZyYW1lIiwicG9zdE1lc3NhZ2UiLCJwb3J0MiIsInBvcnQxIiwib25tZXNzYWdlIiwicHJldmlvdXMiLCJwcmlvcml0eUxldmVsIiwic3RhcnRUaW1lIiwidW5zdGFibGVfbmV4dCIsImRlbGF5IiwidW5zdGFibGVfd3JhcENhbGxiYWNrIiwidW5zdGFibGVfY29udGludWVFeGVjdXRpb24iLCJ1bnN0YWJsZV9wYXVzZUV4ZWN1dGlvbiIsInVuc3RhYmxlX2dldEZpcnN0Q2FsbGJhY2tOb2RlIiwiaXNFbXB0eSIsImRlZnMiLCJjYXNlcyIsImlzRGVmaW5pdGlvbiIsImNvbnN0cnVjdGlvbiIsImlzTW9ub2lkIiwiaXNTZW1pZ3JvdXAiLCJhbGdzIiwiaXNTeW1ib2wiLCJpc1R5cGVSZXBPZiIsInJ1bldpdGgiLCJQcmVkIiwiX3MiLCJfZSIsIl9hcnIiLCJfbiIsIm9yaWdpbmFsTW9kdWxlIiwid2VicGFja1BvbHlmaWxsIiwibm9ybWFsVmlld0JveCIsIm5ld1ZpZXdCb3giLCJmaWxsIiwib3V0bGluZSIsInR3b3RvbmUiLCJnZXROb2RlIiwicGF0aHMiLCJmb2N1c2FibGUiLCJnZXRJY29uIiwiQWNjb3VudEJvb2tGaWxsIiwiQWxlcnRGaWxsIiwiQWxpcGF5U3F1YXJlRmlsbCIsIkFsaXdhbmd3YW5nRmlsbCIsIkFsaXBheUNpcmNsZUZpbGwiLCJBbWF6b25DaXJjbGVGaWxsIiwiQW5kcm9pZEZpbGwiLCJBbWF6b25TcXVhcmVGaWxsIiwiQXBpRmlsbCIsIkFwcHN0b3JlRmlsbCIsIkF1ZGlvRmlsbCIsIkFwcGxlRmlsbCIsIkJhY2t3YXJkRmlsbCIsIkJhbmtGaWxsIiwiQmVoYW5jZUNpcmNsZUZpbGwiLCJCZWxsRmlsbCIsIkJlaGFuY2VTcXVhcmVGaWxsIiwiQm9va0ZpbGwiLCJCb3hQbG90RmlsbCIsIkJ1Z0ZpbGwiLCJDYWxjdWxhdG9yRmlsbCIsIkJ1bGJGaWxsIiwiQnVpbGRGaWxsIiwiQ2FsZW5kYXJGaWxsIiwiQ2FtZXJhRmlsbCIsIkNhckZpbGwiLCJDYXJldERvd25GaWxsIiwiQ2FyZXRMZWZ0RmlsbCIsIkNhcmV0UmlnaHRGaWxsIiwiQ2FycnlPdXRGaWxsIiwiQ2FyZXRVcEZpbGwiLCJDaGVja0NpcmNsZUZpbGwiLCJDaGVja1NxdWFyZUZpbGwiLCJDaHJvbWVGaWxsIiwiQ2lDaXJjbGVGaWxsIiwiQ2xvY2tDaXJjbGVGaWxsIiwiQ2xvc2VDaXJjbGVGaWxsIiwiQ2xvdWRGaWxsIiwiQ2xvc2VTcXVhcmVGaWxsIiwiQ29kZVNhbmRib3hTcXVhcmVGaWxsIiwiQ29kZVNhbmRib3hDaXJjbGVGaWxsIiwiQ29kZUZpbGwiLCJDb21wYXNzRmlsbCIsIkNvZGVwZW5DaXJjbGVGaWxsIiwiQ29kZXBlblNxdWFyZUZpbGwiLCJDb250YWN0c0ZpbGwiLCJDb250cm9sRmlsbCIsIkNvbnRhaW5lckZpbGwiLCJDb3B5RmlsbCIsIkNvcHlyaWdodENpcmNsZUZpbGwiLCJDcmVkaXRDYXJkRmlsbCIsIkNyb3duRmlsbCIsIkN1c3RvbWVyU2VydmljZUZpbGwiLCJEYXNoYm9hcmRGaWxsIiwiRGVsZXRlRmlsbCIsIkRpZmZGaWxsIiwiRGluZ3RhbGtDaXJjbGVGaWxsIiwiRGF0YWJhc2VGaWxsIiwiRGluZ3RhbGtTcXVhcmVGaWxsIiwiRGlzbGlrZUZpbGwiLCJEb2xsYXJDaXJjbGVGaWxsIiwiRG93bkNpcmNsZUZpbGwiLCJEb3duU3F1YXJlRmlsbCIsIkRyaWJiYmxlQ2lyY2xlRmlsbCIsIkRyaWJiYmxlU3F1YXJlRmlsbCIsIkRyb3Bib3hDaXJjbGVGaWxsIiwiRHJvcGJveFNxdWFyZUZpbGwiLCJFbnZpcm9ubWVudEZpbGwiLCJFZGl0RmlsbCIsIkV4Y2xhbWF0aW9uQ2lyY2xlRmlsbCIsIkV1cm9DaXJjbGVGaWxsIiwiRXhwZXJpbWVudEZpbGwiLCJFeWVJbnZpc2libGVGaWxsIiwiRXllRmlsbCIsIkZhY2Vib29rRmlsbCIsIkZhc3RCYWNrd2FyZEZpbGwiLCJGYXN0Rm9yd2FyZEZpbGwiLCJGaWxlQWRkRmlsbCIsIkZpbGVFeGNlbEZpbGwiLCJGaWxlRXhjbGFtYXRpb25GaWxsIiwiRmlsZUltYWdlRmlsbCIsIkZpbGVNYXJrZG93bkZpbGwiLCJGaWxlUGRmRmlsbCIsIkZpbGVQcHRGaWxsIiwiRmlsZVRleHRGaWxsIiwiRmlsZVdvcmRGaWxsIiwiRmlsZVVua25vd25GaWxsIiwiRmlsZVppcEZpbGwiLCJGaWxlRmlsbCIsIkZpbHRlckZpbGwiLCJGaXJlRmlsbCIsIkZsYWdGaWxsIiwiRm9sZGVyQWRkRmlsbCIsIkZvbGRlckZpbGwiLCJGb2xkZXJPcGVuRmlsbCIsIkZvcndhcmRGaWxsIiwiRnJvd25GaWxsIiwiRnVuZEZpbGwiLCJGdW5uZWxQbG90RmlsbCIsIkdpZnRGaWxsIiwiR2l0aHViRmlsbCIsIkdpdGxhYkZpbGwiLCJHb2xkZW5GaWxsIiwiR29vZ2xlQ2lyY2xlRmlsbCIsIkdvb2dsZVBsdXNDaXJjbGVGaWxsIiwiR29vZ2xlUGx1c1NxdWFyZUZpbGwiLCJHb29nbGVTcXVhcmVGaWxsIiwiSGRkRmlsbCIsIkhlYXJ0RmlsbCIsIkhpZ2hsaWdodEZpbGwiLCJIb21lRmlsbCIsIkhvdXJnbGFzc0ZpbGwiLCJIdG1sNUZpbGwiLCJJZGNhcmRGaWxsIiwiSWVDaXJjbGVGaWxsIiwiSWVTcXVhcmVGaWxsIiwiSW5mb0NpcmNsZUZpbGwiLCJJbnN0YWdyYW1GaWxsIiwiSW5zdXJhbmNlRmlsbCIsIkludGVyYWN0aW9uRmlsbCIsIkludGVyYXRpb25GaWxsIiwiTGF5b3V0RmlsbCIsIkxlZnRDaXJjbGVGaWxsIiwiTGVmdFNxdWFyZUZpbGwiLCJMaWtlRmlsbCIsIkxvY2tGaWxsIiwiTGlua2VkaW5GaWxsIiwiTWFpbEZpbGwiLCJNZWRpY2luZUJveEZpbGwiLCJNZWRpdW1DaXJjbGVGaWxsIiwiTWVkaXVtU3F1YXJlRmlsbCIsIk1laEZpbGwiLCJNZXNzYWdlRmlsbCIsIk1pbnVzQ2lyY2xlRmlsbCIsIk1pbnVzU3F1YXJlRmlsbCIsIk1vYmlsZUZpbGwiLCJNb25leUNvbGxlY3RGaWxsIiwiUGF1c2VDaXJjbGVGaWxsIiwiUGF5Q2lyY2xlRmlsbCIsIk5vdGlmaWNhdGlvbkZpbGwiLCJQaG9uZUZpbGwiLCJQaWN0dXJlRmlsbCIsIlBpZUNoYXJ0RmlsbCIsIlBsYXlDaXJjbGVGaWxsIiwiUGxheVNxdWFyZUZpbGwiLCJQbHVzQ2lyY2xlRmlsbCIsIlBsdXNTcXVhcmVGaWxsIiwiUG91bmRDaXJjbGVGaWxsIiwiUHJpbnRlckZpbGwiLCJQcm9maWxlRmlsbCIsIlByb2plY3RGaWxsIiwiUHVzaHBpbkZpbGwiLCJQcm9wZXJ0eVNhZmV0eUZpbGwiLCJRcUNpcmNsZUZpbGwiLCJRcVNxdWFyZUZpbGwiLCJRdWVzdGlvbkNpcmNsZUZpbGwiLCJSZWFkRmlsbCIsIlJlY29uY2lsaWF0aW9uRmlsbCIsIlJlZEVudmVsb3BlRmlsbCIsIlJlZGRpdENpcmNsZUZpbGwiLCJSZWRkaXRTcXVhcmVGaWxsIiwiUmVzdEZpbGwiLCJSaWdodENpcmNsZUZpbGwiLCJSb2NrZXRGaWxsIiwiUmlnaHRTcXVhcmVGaWxsIiwiU2FmZXR5Q2VydGlmaWNhdGVGaWxsIiwiU2F2ZUZpbGwiLCJTY2hlZHVsZUZpbGwiLCJTZWN1cml0eVNjYW5GaWxsIiwiU2V0dGluZ0ZpbGwiLCJTaG9wRmlsbCIsIlNob3BwaW5nRmlsbCIsIlNrZXRjaENpcmNsZUZpbGwiLCJTa2V0Y2hTcXVhcmVGaWxsIiwiU2tpbkZpbGwiLCJTbGFja0NpcmNsZUZpbGwiLCJTbGFja1NxdWFyZUZpbGwiLCJTa3lwZUZpbGwiLCJTbGlkZXJzRmlsbCIsIlNtaWxlRmlsbCIsIlNuaXBwZXRzRmlsbCIsIlNvdW5kRmlsbCIsIlN0YXJGaWxsIiwiU3RlcEJhY2t3YXJkRmlsbCIsIlN0ZXBGb3J3YXJkRmlsbCIsIlN0b3BGaWxsIiwiU3dpdGNoZXJGaWxsIiwiVGFibGV0RmlsbCIsIlRhZ0ZpbGwiLCJUYWdzRmlsbCIsIlRhb2Jhb0NpcmNsZUZpbGwiLCJUYW9iYW9TcXVhcmVGaWxsIiwiVG9vbEZpbGwiLCJUaHVuZGVyYm9sdEZpbGwiLCJUcmFkZW1hcmtDaXJjbGVGaWxsIiwiVHdpdHRlckNpcmNsZUZpbGwiLCJUcm9waHlGaWxsIiwiVHdpdHRlclNxdWFyZUZpbGwiLCJVbmxvY2tGaWxsIiwiVXBDaXJjbGVGaWxsIiwiVXBTcXVhcmVGaWxsIiwiVXNiRmlsbCIsIldhbGxldEZpbGwiLCJWaWRlb0NhbWVyYUZpbGwiLCJXYXJuaW5nRmlsbCIsIldlaWJvQ2lyY2xlRmlsbCIsIldlY2hhdEZpbGwiLCJXaW5kb3dzRmlsbCIsIllhaG9vRmlsbCIsIldlaWJvU3F1YXJlRmlsbCIsIll1cXVlRmlsbCIsIllvdXR1YmVGaWxsIiwiWmhpaHVTcXVhcmVGaWxsIiwiWmhpaHVDaXJjbGVGaWxsIiwiQWNjb3VudEJvb2tPdXRsaW5lIiwiQWxlcnRPdXRsaW5lIiwiQWxpcGF5Q2lyY2xlT3V0bGluZSIsIkFsaXdhbmd3YW5nT3V0bGluZSIsIkFuZHJvaWRPdXRsaW5lIiwiQXBpT3V0bGluZSIsIkFwcHN0b3JlT3V0bGluZSIsIkF1ZGlvT3V0bGluZSIsIkFwcGxlT3V0bGluZSIsIkJhY2t3YXJkT3V0bGluZSIsIkJhbmtPdXRsaW5lIiwiQmVsbE91dGxpbmUiLCJCZWhhbmNlU3F1YXJlT3V0bGluZSIsIkJvb2tPdXRsaW5lIiwiQm94UGxvdE91dGxpbmUiLCJCdWxiT3V0bGluZSIsIkJ1Z091dGxpbmUiLCJDYWxjdWxhdG9yT3V0bGluZSIsIkJ1aWxkT3V0bGluZSIsIkNhbGVuZGFyT3V0bGluZSIsIkNhbWVyYU91dGxpbmUiLCJDYXJPdXRsaW5lIiwiQ2FyZXREb3duT3V0bGluZSIsIkNhcmV0TGVmdE91dGxpbmUiLCJDYXJldFJpZ2h0T3V0bGluZSIsIkNhcnJ5T3V0T3V0bGluZSIsIkNoZWNrQ2lyY2xlT3V0bGluZSIsIkNhcmV0VXBPdXRsaW5lIiwiQ2hlY2tTcXVhcmVPdXRsaW5lIiwiQ2hyb21lT3V0bGluZSIsIkNsb2NrQ2lyY2xlT3V0bGluZSIsIkNsb3NlQ2lyY2xlT3V0bGluZSIsIkNsb3VkT3V0bGluZSIsIkNsb3NlU3F1YXJlT3V0bGluZSIsIkNvZGVPdXRsaW5lIiwiQ29kZXBlbkNpcmNsZU91dGxpbmUiLCJDb21wYXNzT3V0bGluZSIsIkNvbnRhY3RzT3V0bGluZSIsIkNvbnRhaW5lck91dGxpbmUiLCJDb250cm9sT3V0bGluZSIsIkNvcHlPdXRsaW5lIiwiQ3JlZGl0Q2FyZE91dGxpbmUiLCJDcm93bk91dGxpbmUiLCJDdXN0b21lclNlcnZpY2VPdXRsaW5lIiwiRGFzaGJvYXJkT3V0bGluZSIsIkRlbGV0ZU91dGxpbmUiLCJEaWZmT3V0bGluZSIsIkRhdGFiYXNlT3V0bGluZSIsIkRpc2xpa2VPdXRsaW5lIiwiRG93bkNpcmNsZU91dGxpbmUiLCJEb3duU3F1YXJlT3V0bGluZSIsIkRyaWJiYmxlU3F1YXJlT3V0bGluZSIsIkVudmlyb25tZW50T3V0bGluZSIsIkVkaXRPdXRsaW5lIiwiRXhjbGFtYXRpb25DaXJjbGVPdXRsaW5lIiwiRXhwZXJpbWVudE91dGxpbmUiLCJFeWVJbnZpc2libGVPdXRsaW5lIiwiRXllT3V0bGluZSIsIkZhY2Vib29rT3V0bGluZSIsIkZhc3RCYWNrd2FyZE91dGxpbmUiLCJGYXN0Rm9yd2FyZE91dGxpbmUiLCJGaWxlQWRkT3V0bGluZSIsIkZpbGVFeGNlbE91dGxpbmUiLCJGaWxlRXhjbGFtYXRpb25PdXRsaW5lIiwiRmlsZUltYWdlT3V0bGluZSIsIkZpbGVNYXJrZG93bk91dGxpbmUiLCJGaWxlUHB0T3V0bGluZSIsIkZpbGVUZXh0T3V0bGluZSIsIkZpbGVQZGZPdXRsaW5lIiwiRmlsZVppcE91dGxpbmUiLCJGaWxlT3V0bGluZSIsIkZpbHRlck91dGxpbmUiLCJGaWxlV29yZE91dGxpbmUiLCJGaXJlT3V0bGluZSIsIkZpbGVVbmtub3duT3V0bGluZSIsIkZsYWdPdXRsaW5lIiwiRm9sZGVyQWRkT3V0bGluZSIsIkZvbGRlck91dGxpbmUiLCJGb2xkZXJPcGVuT3V0bGluZSIsIkZvcndhcmRPdXRsaW5lIiwiRnJvd25PdXRsaW5lIiwiRnVuZE91dGxpbmUiLCJGdW5uZWxQbG90T3V0bGluZSIsIkdpZnRPdXRsaW5lIiwiR2l0aHViT3V0bGluZSIsIkdpdGxhYk91dGxpbmUiLCJIZWFydE91dGxpbmUiLCJIZGRPdXRsaW5lIiwiSGlnaGxpZ2h0T3V0bGluZSIsIkhvbWVPdXRsaW5lIiwiSG91cmdsYXNzT3V0bGluZSIsIkh0bWw1T3V0bGluZSIsIklkY2FyZE91dGxpbmUiLCJJbmZvQ2lyY2xlT3V0bGluZSIsIkluc3RhZ3JhbU91dGxpbmUiLCJJbnN1cmFuY2VPdXRsaW5lIiwiSW50ZXJhY3Rpb25PdXRsaW5lIiwiSW50ZXJhdGlvbk91dGxpbmUiLCJMYXlvdXRPdXRsaW5lIiwiTGVmdENpcmNsZU91dGxpbmUiLCJMZWZ0U3F1YXJlT3V0bGluZSIsIkxpa2VPdXRsaW5lIiwiTGlua2VkaW5PdXRsaW5lIiwiTG9ja091dGxpbmUiLCJNZWRpY2luZUJveE91dGxpbmUiLCJNZWhPdXRsaW5lIiwiTWFpbE91dGxpbmUiLCJNZXNzYWdlT3V0bGluZSIsIk1pbnVzQ2lyY2xlT3V0bGluZSIsIk1pbnVzU3F1YXJlT3V0bGluZSIsIk1vYmlsZU91dGxpbmUiLCJNb25leUNvbGxlY3RPdXRsaW5lIiwiUGF1c2VDaXJjbGVPdXRsaW5lIiwiUGF5Q2lyY2xlT3V0bGluZSIsIk5vdGlmaWNhdGlvbk91dGxpbmUiLCJQaG9uZU91dGxpbmUiLCJQaWN0dXJlT3V0bGluZSIsIlBpZUNoYXJ0T3V0bGluZSIsIlBsYXlTcXVhcmVPdXRsaW5lIiwiUGxheUNpcmNsZU91dGxpbmUiLCJQbHVzQ2lyY2xlT3V0bGluZSIsIlByaW50ZXJPdXRsaW5lIiwiUGx1c1NxdWFyZU91dGxpbmUiLCJQcm9maWxlT3V0bGluZSIsIlByb2plY3RPdXRsaW5lIiwiUHVzaHBpbk91dGxpbmUiLCJQcm9wZXJ0eVNhZmV0eU91dGxpbmUiLCJRdWVzdGlvbkNpcmNsZU91dGxpbmUiLCJSZWFkT3V0bGluZSIsIlJlY29uY2lsaWF0aW9uT3V0bGluZSIsIlJlZEVudmVsb3BlT3V0bGluZSIsIlJlc3RPdXRsaW5lIiwiUmlnaHRDaXJjbGVPdXRsaW5lIiwiUm9ja2V0T3V0bGluZSIsIlJpZ2h0U3F1YXJlT3V0bGluZSIsIlNhZmV0eUNlcnRpZmljYXRlT3V0bGluZSIsIlNjaGVkdWxlT3V0bGluZSIsIlNhdmVPdXRsaW5lIiwiU2VjdXJpdHlTY2FuT3V0bGluZSIsIlNldHRpbmdPdXRsaW5lIiwiU2hvcHBpbmdPdXRsaW5lIiwiU2tpbk91dGxpbmUiLCJTa3lwZU91dGxpbmUiLCJTbGFja1NxdWFyZU91dGxpbmUiLCJTbGlkZXJzT3V0bGluZSIsIlNtaWxlT3V0bGluZSIsIlNuaXBwZXRzT3V0bGluZSIsIlNvdW5kT3V0bGluZSIsIlN0YXJPdXRsaW5lIiwiU3RlcEJhY2t3YXJkT3V0bGluZSIsIlN0ZXBGb3J3YXJkT3V0bGluZSIsIlN0b3BPdXRsaW5lIiwiU3dpdGNoZXJPdXRsaW5lIiwiVGFnT3V0bGluZSIsIlRhYmxldE91dGxpbmUiLCJTaG9wT3V0bGluZSIsIlRhZ3NPdXRsaW5lIiwiVGFvYmFvQ2lyY2xlT3V0bGluZSIsIlRvb2xPdXRsaW5lIiwiVGh1bmRlcmJvbHRPdXRsaW5lIiwiVHJvcGh5T3V0bGluZSIsIlVubG9ja091dGxpbmUiLCJVcENpcmNsZU91dGxpbmUiLCJVcFNxdWFyZU91dGxpbmUiLCJVc2JPdXRsaW5lIiwiVmlkZW9DYW1lcmFPdXRsaW5lIiwiV2FsbGV0T3V0bGluZSIsIldhcm5pbmdPdXRsaW5lIiwiV2VjaGF0T3V0bGluZSIsIldlaWJvQ2lyY2xlT3V0bGluZSIsIldpbmRvd3NPdXRsaW5lIiwiWWFob29PdXRsaW5lIiwiV2VpYm9TcXVhcmVPdXRsaW5lIiwiWXVxdWVPdXRsaW5lIiwiWW91dHViZU91dGxpbmUiLCJBbGliYWJhT3V0bGluZSIsIkFsaWduQ2VudGVyT3V0bGluZSIsIkFsaWduTGVmdE91dGxpbmUiLCJBbGlnblJpZ2h0T3V0bGluZSIsIkFsaXBheU91dGxpbmUiLCJBbGl5dW5PdXRsaW5lIiwiQW1hem9uT3V0bGluZSIsIkFudENsb3VkT3V0bGluZSIsIkFwYXJ0bWVudE91dGxpbmUiLCJBbnREZXNpZ25PdXRsaW5lIiwiQXJlYUNoYXJ0T3V0bGluZSIsIkFycm93TGVmdE91dGxpbmUiLCJBcnJvd0Rvd25PdXRsaW5lIiwiQXJyb3dVcE91dGxpbmUiLCJBcnJvd3NBbHRPdXRsaW5lIiwiQXJyb3dSaWdodE91dGxpbmUiLCJBdWRpdE91dGxpbmUiLCJCYXJDaGFydE91dGxpbmUiLCJCYXJjb2RlT3V0bGluZSIsIkJhcnNPdXRsaW5lIiwiQmdDb2xvcnNPdXRsaW5lIiwiQmVoYW5jZU91dGxpbmUiLCJCbG9ja091dGxpbmUiLCJCb2xkT3V0bGluZSIsIkJvcmRlckJvdHRvbU91dGxpbmUiLCJCb3JkZXJMZWZ0T3V0bGluZSIsIkJvcmRlck91dGVyT3V0bGluZSIsIkJvcmRlcklubmVyT3V0bGluZSIsIkJvcmRlclJpZ2h0T3V0bGluZSIsIkJvcmRlckhvcml6b250YWxPdXRsaW5lIiwiQm9yZGVyVG9wT3V0bGluZSIsIkJvcmRlclZlcnRpY2xlT3V0bGluZSIsIkJvcmRlck91dGxpbmUiLCJCcmFuY2hlc091dGxpbmUiLCJDaGVja091dGxpbmUiLCJDaU91dGxpbmUiLCJDbG9zZU91dGxpbmUiLCJDbG91ZERvd25sb2FkT3V0bGluZSIsIkNsb3VkU2VydmVyT3V0bGluZSIsIkNsb3VkU3luY091dGxpbmUiLCJDbG91ZFVwbG9hZE91dGxpbmUiLCJDbHVzdGVyT3V0bGluZSIsIkNvZGVwZW5PdXRsaW5lIiwiQ29kZVNhbmRib3hPdXRsaW5lIiwiQ29sdW1IZWlnaHRPdXRsaW5lIiwiQ29sdW1uV2lkdGhPdXRsaW5lIiwiQ29sdW1uSGVpZ2h0T3V0bGluZSIsIkNvZmZlZU91dGxpbmUiLCJDb3B5cmlnaHRPdXRsaW5lIiwiRGFzaE91dGxpbmUiLCJEZXBsb3ltZW50VW5pdE91dGxpbmUiLCJEZXNrdG9wT3V0bGluZSIsIkRpbmdkaW5nT3V0bGluZSIsIkRpc2Nvbm5lY3RPdXRsaW5lIiwiRG9sbGFyT3V0bGluZSIsIkRvdWJsZVJpZ2h0T3V0bGluZSIsIkRvdENoYXJ0T3V0bGluZSIsIkRvdWJsZUxlZnRPdXRsaW5lIiwiRG93bmxvYWRPdXRsaW5lIiwiRHJpYmJibGVPdXRsaW5lIiwiRHJvcGJveE91dGxpbmUiLCJFbGxpcHNpc091dGxpbmUiLCJFbnRlck91dGxpbmUiLCJFdXJvT3V0bGluZSIsIkV4Y2VwdGlvbk91dGxpbmUiLCJFeGNsYW1hdGlvbk91dGxpbmUiLCJFeHBvcnRPdXRsaW5lIiwiRmFsbE91dGxpbmUiLCJGaWxlRG9uZU91dGxpbmUiLCJGaWxlU3luY091dGxpbmUiLCJGaWxlUHJvdGVjdE91dGxpbmUiLCJGaWxlU2VhcmNoT3V0bGluZSIsIkZpbGVKcGdPdXRsaW5lIiwiRm9udENvbG9yc091dGxpbmUiLCJGb250U2l6ZU91dGxpbmUiLCJGb3JrT3V0bGluZSIsIkZvcm1PdXRsaW5lIiwiRnVsbHNjcmVlbkV4aXRPdXRsaW5lIiwiRnVsbHNjcmVlbk91dGxpbmUiLCJHYXRld2F5T3V0bGluZSIsIkRvd25PdXRsaW5lIiwiRHJhZ091dGxpbmUiLCJHbG9iYWxPdXRsaW5lIiwiR29vZ2xlUGx1c091dGxpbmUiLCJHb29nbGVPdXRsaW5lIiwiSGVhdE1hcE91dGxpbmUiLCJHb2xkT3V0bGluZSIsIkhpc3RvcnlPdXRsaW5lIiwiSWVPdXRsaW5lIiwiSW5ib3hPdXRsaW5lIiwiSW1wb3J0T3V0bGluZSIsIkluZm9PdXRsaW5lIiwiSXRhbGljT3V0bGluZSIsIklzc3Vlc0Nsb3NlT3V0bGluZSIsIktleU91dGxpbmUiLCJMYXB0b3BPdXRsaW5lIiwiTGVmdE91dGxpbmUiLCJMaW5rT3V0bGluZSIsIkxpbmVDaGFydE91dGxpbmUiLCJMaW5lSGVpZ2h0T3V0bGluZSIsIkxpbmVPdXRsaW5lIiwiTG9hZGluZzNRdWFydGVyc091dGxpbmUiLCJMb2FkaW5nT3V0bGluZSIsIkxvZ2luT3V0bGluZSIsIkxvZ291dE91dGxpbmUiLCJNYW5PdXRsaW5lIiwiTWVkaXVtT3V0bGluZSIsIk1lZGl1bVdvcmttYXJrT3V0bGluZSIsIk1lbnVVbmZvbGRPdXRsaW5lIiwiTWVudUZvbGRPdXRsaW5lIiwiTWVudU91dGxpbmUiLCJNaW51c091dGxpbmUiLCJNb25pdG9yT3V0bGluZSIsIk1vcmVPdXRsaW5lIiwiT3JkZXJlZExpc3RPdXRsaW5lIiwiTnVtYmVyT3V0bGluZSIsIlBhdXNlT3V0bGluZSIsIlBlcmNlbnRhZ2VPdXRsaW5lIiwiUGFwZXJDbGlwT3V0bGluZSIsIlBpY0NlbnRlck91dGxpbmUiLCJQaWNMZWZ0T3V0bGluZSIsIlBsdXNPdXRsaW5lIiwiUGljUmlnaHRPdXRsaW5lIiwiUG91bmRPdXRsaW5lIiwiUG93ZXJvZmZPdXRsaW5lIiwiUHVsbFJlcXVlc3RPdXRsaW5lIiwiUXFPdXRsaW5lIiwiUXVlc3Rpb25PdXRsaW5lIiwiUmFkYXJDaGFydE91dGxpbmUiLCJRcmNvZGVPdXRsaW5lIiwiUmFkaXVzQm90dG9tbGVmdE91dGxpbmUiLCJSYWRpdXNCb3R0b21yaWdodE91dGxpbmUiLCJSYWRpdXNVcGxlZnRPdXRsaW5lIiwiUmFkaXVzVXByaWdodE91dGxpbmUiLCJSYWRpdXNTZXR0aW5nT3V0bGluZSIsIlJlZGRpdE91dGxpbmUiLCJSZWRvT3V0bGluZSIsIlJlbG9hZE91dGxpbmUiLCJSZXR3ZWV0T3V0bGluZSIsIlJpZ2h0T3V0bGluZSIsIlJpc2VPdXRsaW5lIiwiUm9sbGJhY2tPdXRsaW5lIiwiU2FmZXR5T3V0bGluZSIsIlJvYm90T3V0bGluZSIsIlNlYXJjaE91dGxpbmUiLCJTY2FuT3V0bGluZSIsIlNjaXNzb3JPdXRsaW5lIiwiU2VsZWN0T3V0bGluZSIsIlNoYWtlT3V0bGluZSIsIlNoYXJlQWx0T3V0bGluZSIsIlNob3BwaW5nQ2FydE91dGxpbmUiLCJTaHJpbmtPdXRsaW5lIiwiU2xhY2tPdXRsaW5lIiwiU21hbGxEYXNoT3V0bGluZSIsIlNvbHV0aW9uT3V0bGluZSIsIlNrZXRjaE91dGxpbmUiLCJTb3J0RGVzY2VuZGluZ091dGxpbmUiLCJTb3J0QXNjZW5kaW5nT3V0bGluZSIsIlN0b2NrT3V0bGluZSIsIlN3YXBMZWZ0T3V0bGluZSIsIlN3YXBSaWdodE91dGxpbmUiLCJTdHJpa2V0aHJvdWdoT3V0bGluZSIsIlN3YXBPdXRsaW5lIiwiU3luY091dGxpbmUiLCJUYWJsZU91dGxpbmUiLCJUZWFtT3V0bGluZSIsIlRhb2Jhb091dGxpbmUiLCJUb1RvcE91dGxpbmUiLCJUcmFkZW1hcmtPdXRsaW5lIiwiVHJhbnNhY3Rpb25PdXRsaW5lIiwiVHdpdHRlck91dGxpbmUiLCJVbmRlcmxpbmVPdXRsaW5lIiwiVW5kb091dGxpbmUiLCJVbm9yZGVyZWRMaXN0T3V0bGluZSIsIlVwT3V0bGluZSIsIlVwbG9hZE91dGxpbmUiLCJVc2VyQWRkT3V0bGluZSIsIlVzZXJncm91cEFkZE91dGxpbmUiLCJVc2VyT3V0bGluZSIsIlVzZXJEZWxldGVPdXRsaW5lIiwiVXNlcmdyb3VwRGVsZXRlT3V0bGluZSIsIlZlcnRpY2FsQWxpZ25Cb3R0b21PdXRsaW5lIiwiVmVydGljYWxBbGlnbk1pZGRsZU91dGxpbmUiLCJWZXJ0aWNhbEFsaWduVG9wT3V0bGluZSIsIlZlcnRpY2FsUmlnaHRPdXRsaW5lIiwiVmVydGljYWxMZWZ0T3V0bGluZSIsIldpZmlPdXRsaW5lIiwiWmhpaHVPdXRsaW5lIiwiV2VpYm9PdXRsaW5lIiwiV29tYW5PdXRsaW5lIiwiWm9vbUluT3V0bGluZSIsIkFjY291bnRCb29rVHdvVG9uZSIsIlpvb21PdXRPdXRsaW5lIiwiQWxlcnRUd29Ub25lIiwiQXBpVHdvVG9uZSIsIkFwcHN0b3JlVHdvVG9uZSIsIkJhbmtUd29Ub25lIiwiQXVkaW9Ud29Ub25lIiwiQmVsbFR3b1RvbmUiLCJCb29rVHdvVG9uZSIsIkJveFBsb3RUd29Ub25lIiwiQnVnVHdvVG9uZSIsIkJ1bGJUd29Ub25lIiwiQ2FsY3VsYXRvclR3b1RvbmUiLCJCdWlsZFR3b1RvbmUiLCJDYWxlbmRhclR3b1RvbmUiLCJDYW1lcmFUd29Ub25lIiwiQ2FyVHdvVG9uZSIsIkNhcnJ5T3V0VHdvVG9uZSIsIkNoZWNrQ2lyY2xlVHdvVG9uZSIsIkNoZWNrU3F1YXJlVHdvVG9uZSIsIkNsb2NrQ2lyY2xlVHdvVG9uZSIsIkNsb3NlQ2lyY2xlVHdvVG9uZSIsIkNsb3VkVHdvVG9uZSIsIkNsb3NlU3F1YXJlVHdvVG9uZSIsIkNvZGVUd29Ub25lIiwiQ29tcGFzc1R3b1RvbmUiLCJDb250YWN0c1R3b1RvbmUiLCJDb250YWluZXJUd29Ub25lIiwiQ29udHJvbFR3b1RvbmUiLCJDb3B5VHdvVG9uZSIsIkNyZWRpdENhcmRUd29Ub25lIiwiQ3Jvd25Ud29Ub25lIiwiQ3VzdG9tZXJTZXJ2aWNlVHdvVG9uZSIsIkRhc2hib2FyZFR3b1RvbmUiLCJEZWxldGVUd29Ub25lIiwiRGlmZlR3b1RvbmUiLCJEYXRhYmFzZVR3b1RvbmUiLCJEaXNsaWtlVHdvVG9uZSIsIkRvd25DaXJjbGVUd29Ub25lIiwiRG93blNxdWFyZVR3b1RvbmUiLCJFbnZpcm9ubWVudFR3b1RvbmUiLCJFZGl0VHdvVG9uZSIsIkV4Y2xhbWF0aW9uQ2lyY2xlVHdvVG9uZSIsIkV4cGVyaW1lbnRUd29Ub25lIiwiRXllSW52aXNpYmxlVHdvVG9uZSIsIkV5ZVR3b1RvbmUiLCJGaWxlQWRkVHdvVG9uZSIsIkZpbGVFeGNsYW1hdGlvblR3b1RvbmUiLCJGaWxlSW1hZ2VUd29Ub25lIiwiRmlsZUV4Y2VsVHdvVG9uZSIsIkZpbGVNYXJrZG93blR3b1RvbmUiLCJGaWxlUGRmVHdvVG9uZSIsIkZpbGVQcHRUd29Ub25lIiwiRmlsZVRleHRUd29Ub25lIiwiRmlsZVVua25vd25Ud29Ub25lIiwiRmlsZVppcFR3b1RvbmUiLCJGaWxlV29yZFR3b1RvbmUiLCJGaWxlVHdvVG9uZSIsIkZpbHRlclR3b1RvbmUiLCJGaXJlVHdvVG9uZSIsIkZvbGRlckFkZFR3b1RvbmUiLCJGbGFnVHdvVG9uZSIsIkZvbGRlclR3b1RvbmUiLCJGb2xkZXJPcGVuVHdvVG9uZSIsIkZyb3duVHdvVG9uZSIsIkZ1bmRUd29Ub25lIiwiRnVubmVsUGxvdFR3b1RvbmUiLCJHaWZ0VHdvVG9uZSIsIkhkZFR3b1RvbmUiLCJIZWFydFR3b1RvbmUiLCJIaWdobGlnaHRUd29Ub25lIiwiSG9tZVR3b1RvbmUiLCJIb3VyZ2xhc3NUd29Ub25lIiwiSHRtbDVUd29Ub25lIiwiSWRjYXJkVHdvVG9uZSIsIkluZm9DaXJjbGVUd29Ub25lIiwiSW5zdXJhbmNlVHdvVG9uZSIsIkludGVyYWN0aW9uVHdvVG9uZSIsIkludGVyYXRpb25Ud29Ub25lIiwiTGF5b3V0VHdvVG9uZSIsIkxlZnRDaXJjbGVUd29Ub25lIiwiTGVmdFNxdWFyZVR3b1RvbmUiLCJMaWtlVHdvVG9uZSIsIkxvY2tUd29Ub25lIiwiTWFpbFR3b1RvbmUiLCJNZWRpY2luZUJveFR3b1RvbmUiLCJNZWhUd29Ub25lIiwiTWVzc2FnZVR3b1RvbmUiLCJNaW51c0NpcmNsZVR3b1RvbmUiLCJNaW51c1NxdWFyZVR3b1RvbmUiLCJNb2JpbGVUd29Ub25lIiwiUGF1c2VDaXJjbGVUd29Ub25lIiwiTW9uZXlDb2xsZWN0VHdvVG9uZSIsIk5vdGlmaWNhdGlvblR3b1RvbmUiLCJQaG9uZVR3b1RvbmUiLCJQaWN0dXJlVHdvVG9uZSIsIlBsYXlDaXJjbGVUd29Ub25lIiwiUGxheVNxdWFyZVR3b1RvbmUiLCJQaWVDaGFydFR3b1RvbmUiLCJQbHVzQ2lyY2xlVHdvVG9uZSIsIlBsdXNTcXVhcmVUd29Ub25lIiwiUG91bmRDaXJjbGVUd29Ub25lIiwiUHJpbnRlclR3b1RvbmUiLCJQcm9maWxlVHdvVG9uZSIsIlByb2plY3RUd29Ub25lIiwiUHVzaHBpblR3b1RvbmUiLCJQcm9wZXJ0eVNhZmV0eVR3b1RvbmUiLCJRdWVzdGlvbkNpcmNsZVR3b1RvbmUiLCJSZWNvbmNpbGlhdGlvblR3b1RvbmUiLCJSZWRFbnZlbG9wZVR3b1RvbmUiLCJSZXN0VHdvVG9uZSIsIlJpZ2h0Q2lyY2xlVHdvVG9uZSIsIlJvY2tldFR3b1RvbmUiLCJSaWdodFNxdWFyZVR3b1RvbmUiLCJTYWZldHlDZXJ0aWZpY2F0ZVR3b1RvbmUiLCJTYXZlVHdvVG9uZSIsIlNjaGVkdWxlVHdvVG9uZSIsIlNlY3VyaXR5U2NhblR3b1RvbmUiLCJTZXR0aW5nVHdvVG9uZSIsIlNob3BUd29Ub25lIiwiU2hvcHBpbmdUd29Ub25lIiwiU2tpblR3b1RvbmUiLCJTbGlkZXJzVHdvVG9uZSIsIlNtaWxlVHdvVG9uZSIsIlNuaXBwZXRzVHdvVG9uZSIsIlNvdW5kVHdvVG9uZSIsIlN0YXJUd29Ub25lIiwiU3RvcFR3b1RvbmUiLCJTd2l0Y2hlclR3b1RvbmUiLCJUYWJsZXRUd29Ub25lIiwiVGFnVHdvVG9uZSIsIlRhZ3NUd29Ub25lIiwiVG9vbFR3b1RvbmUiLCJUcmFkZW1hcmtDaXJjbGVUd29Ub25lIiwiVW5sb2NrVHdvVG9uZSIsIlRyb3BoeVR3b1RvbmUiLCJVcENpcmNsZVR3b1RvbmUiLCJUaHVuZGVyYm9sdFR3b1RvbmUiLCJVcFNxdWFyZVR3b1RvbmUiLCJVc2JUd29Ub25lIiwiVmlkZW9DYW1lcmFUd29Ub25lIiwiV2FsbGV0VHdvVG9uZSIsIldhcm5pbmdUd29Ub25lIiwiQ2lUd29Ub25lIiwiQ29weXJpZ2h0VHdvVG9uZSIsIkRvbGxhclR3b1RvbmUiLCJFdXJvVHdvVG9uZSIsIkdvbGRUd29Ub25lIiwiQ2FubGVuZGFyVHdvVG9uZSIsIiRPYmplY3QiLCJERVNDUklQVE9SUyIsImdldEtleXMiLCJnT1BTIiwiJGFzc2lnbiIsImFMZW4iLCJnZXRTeW1ib2xzIiwiaXNFbnVtIiwidG9MZW5ndGgiLCJ0b0Fic29sdXRlSW5kZXgiLCJJU19JTkNMVURFUyIsIiR0aGlzIiwiZnJvbUluZGV4IiwidG9JbnRlZ2VyIiwiJGF0IiwiaXRlcmF0ZWQiLCJfdCIsInBvaW50IiwiVE9fU1RSSU5HIiwiY2hhckNvZGVBdCIsIk9iamVjdFByb3RvIiwiVE9fU1RSSU5HX1RBRyIsIkRPTUl0ZXJhYmxlcyIsIkNvbGxlY3Rpb24iLCJhZGRUb1Vuc2NvcGFibGVzIiwic3RlcCIsIl9rIiwiQXJndW1lbnRzIiwiTUVUQSIsIktFWSIsIiRmYWlscyIsIndrcyIsIndrc0RlZmluZSIsImVudW1LZXlzIiwiX2NyZWF0ZSIsImdPUE5FeHQiLCIkR09QRCIsIiRHT1BTIiwiJERQIiwiZ09QTiIsIiRKU09OIiwiX3N0cmluZ2lmeSIsIkhJRERFTiIsIlRPX1BSSU1JVElWRSIsIlN5bWJvbFJlZ2lzdHJ5IiwiQWxsU3ltYm9scyIsIk9QU3ltYm9scyIsIlVTRV9OQVRJVkUiLCJRT2JqZWN0IiwiZmluZENoaWxkIiwic2V0U3ltYm9sRGVzYyIsInByb3RvRGVzYyIsInN5bSIsIiRkZWZpbmVQcm9wZXJ0eSIsIiRkZWZpbmVQcm9wZXJ0aWVzIiwiJHByb3BlcnR5SXNFbnVtZXJhYmxlIiwiJGdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIiRnZXRPd25Qcm9wZXJ0eU5hbWVzIiwiJGdldE93blByb3BlcnR5U3ltYm9scyIsIklTX09QIiwiJHNldCIsImVzNlN5bWJvbHMiLCJ3ZWxsS25vd25TeW1ib2xzIiwia2V5Rm9yIiwidXNlU2V0dGVyIiwidXNlU2ltcGxlIiwiRkFJTFNfT05fUFJJTUlUSVZFUyIsInJlcGxhY2VyIiwiJHJlcGxhY2VyIiwic2V0RGVzYyIsImlzRXh0ZW5zaWJsZSIsIkZSRUVaRSIsInByZXZlbnRFeHRlbnNpb25zIiwic2V0TWV0YSIsIk5FRUQiLCJmYXN0S2V5IiwiZ2V0V2VhayIsIm9uRnJlZXplIiwid2luZG93TmFtZXMiLCJnZXRXaW5kb3dOYW1lcyIsImJ1Z2d5IiwidGlueWNvbG9yMl8xIiwiZ2V0SHVlIiwiaHN2IiwibGlnaHQiLCJodWUiLCJnZXRTYXR1cmF0aW9uIiwic2F0dXJhdGlvbiIsInBhdHRlcm5zIiwicENvbG9yIiwidG9Ic3YiLCJjb2xvclN0cmluZyIsInRvSGV4U3RyaW5nIiwidHJpbUxlZnQiLCJ0cmltUmlnaHQiLCJ0aW55Q291bnRlciIsIm1hdGhSb3VuZCIsIm1hdGhNaW4iLCJtYXRoTWF4IiwibWF0aFJhbmRvbSIsInRpbnljb2xvciIsInJnYiIsIm5hbWVkIiwibWF0Y2hlcnMiLCJyZ2JhIiwiaHNsIiwiaHNsYSIsImhzdmEiLCJoZXg4IiwicGFyc2VJbnRGcm9tSGV4IiwiY29udmVydEhleFRvRGVjaW1hbCIsImhleDYiLCJoZXg0IiwiaGV4MyIsInN0cmluZ0lucHV0VG9PYmplY3QiLCJpc1ZhbGlkQ1NTVW5pdCIsImJvdW5kMDEiLCJjb252ZXJ0VG9QZXJjZW50YWdlIiwiaHN2VG9SZ2IiLCJodWUycmdiIiwiaHNsVG9SZ2IiLCJib3VuZEFscGhhIiwiaW5wdXRUb1JHQiIsIl9vcmlnaW5hbElucHV0IiwiX3IiLCJfZyIsIl9yb3VuZEEiLCJfZm9ybWF0IiwiX2dyYWRpZW50VHlwZSIsImdyYWRpZW50VHlwZSIsIl9vayIsIl90Y19pZCIsInJnYlRvSHNsIiwicmdiVG9Ic3YiLCJyZ2JUb0hleCIsImFsbG93M0NoYXIiLCJoZXgiLCJwYWQyIiwicmdiYVRvQXJnYkhleCIsImNvbnZlcnREZWNpbWFsVG9IZXgiLCJkZXNhdHVyYXRlIiwiYW1vdW50IiwidG9Ic2wiLCJjbGFtcDAxIiwic2F0dXJhdGUiLCJncmV5c2NhbGUiLCJsaWdodGVuIiwiYnJpZ2h0ZW4iLCJ0b1JnYiIsImRhcmtlbiIsImNvbXBsZW1lbnQiLCJ0cmlhZCIsInRldHJhZCIsInNwbGl0Y29tcGxlbWVudCIsImFuYWxvZ291cyIsInJlc3VsdHMiLCJzbGljZXMiLCJwYXJ0IiwibW9ub2Nocm9tYXRpYyIsIm1vZGlmaWNhdGlvbiIsImlzRGFyayIsImdldEJyaWdodG5lc3MiLCJpc0xpZ2h0IiwiZ2V0T3JpZ2luYWxJbnB1dCIsImdldEZvcm1hdCIsImdldEFscGhhIiwiZ2V0THVtaW5hbmNlIiwiUnNSR0IiLCJHc1JHQiIsIkJzUkdCIiwic2V0QWxwaGEiLCJ0b0hzdlN0cmluZyIsInRvSHNsU3RyaW5nIiwidG9IZXgiLCJ0b0hleDgiLCJhbGxvdzRDaGFyIiwicmdiYVRvSGV4IiwidG9IZXg4U3RyaW5nIiwidG9SZ2JTdHJpbmciLCJ0b1BlcmNlbnRhZ2VSZ2IiLCJ0b1BlcmNlbnRhZ2VSZ2JTdHJpbmciLCJ0b05hbWUiLCJoZXhOYW1lcyIsInRvRmlsdGVyIiwic2Vjb25kQ29sb3IiLCJoZXg4U3RyaW5nIiwic2Vjb25kSGV4OFN0cmluZyIsImZvcm1hdFNldCIsImZvcm1hdHRlZFN0cmluZyIsImhhc0FscGhhIiwiX2FwcGx5TW9kaWZpY2F0aW9uIiwiX2FwcGx5Q29tYmluYXRpb24iLCJmcm9tUmF0aW8iLCJuZXdDb2xvciIsImNvbG9yMSIsImNvbG9yMiIsIm1peCIsInJnYjEiLCJyZ2IyIiwicmVhZGFiaWxpdHkiLCJpc1JlYWRhYmxlIiwid2NhZzIiLCJ3Y2FnMlBhcm1zIiwicGFybXMiLCJsZXZlbCIsInZhbGlkYXRlV0NBRzJQYXJtcyIsIm1vc3RSZWFkYWJsZSIsImJhc2VDb2xvciIsImNvbG9yTGlzdCIsImluY2x1ZGVGYWxsYmFja0NvbG9ycyIsImJlc3RDb2xvciIsImJlc3RTY29yZSIsImFsaWNlYmx1ZSIsImFudGlxdWV3aGl0ZSIsImFxdWEiLCJhcXVhbWFyaW5lIiwiYXp1cmUiLCJiZWlnZSIsImJpc3F1ZSIsImJsYWNrIiwiYmxhbmNoZWRhbG1vbmQiLCJibHVldmlvbGV0IiwiYnJvd24iLCJidXJseXdvb2QiLCJidXJudHNpZW5uYSIsImNhZGV0Ymx1ZSIsImNoYXJ0cmV1c2UiLCJjaG9jb2xhdGUiLCJjb3JhbCIsImNvcm5mbG93ZXJibHVlIiwiY29ybnNpbGsiLCJjcmltc29uIiwiZGFya2JsdWUiLCJkYXJrY3lhbiIsImRhcmtnb2xkZW5yb2QiLCJkYXJrZ3JheSIsImRhcmtncmVlbiIsImRhcmtncmV5IiwiZGFya2toYWtpIiwiZGFya21hZ2VudGEiLCJkYXJrb2xpdmVncmVlbiIsImRhcmtvcmFuZ2UiLCJkYXJrb3JjaGlkIiwiZGFya3JlZCIsImRhcmtzYWxtb24iLCJkYXJrc2VhZ3JlZW4iLCJkYXJrc2xhdGVibHVlIiwiZGFya3NsYXRlZ3JheSIsImRhcmtzbGF0ZWdyZXkiLCJkYXJrdHVycXVvaXNlIiwiZGFya3Zpb2xldCIsImRlZXBwaW5rIiwiZGVlcHNreWJsdWUiLCJkaW1ncmF5IiwiZGltZ3JleSIsImRvZGdlcmJsdWUiLCJmaXJlYnJpY2siLCJmbG9yYWx3aGl0ZSIsImZvcmVzdGdyZWVuIiwiZnVjaHNpYSIsImdhaW5zYm9ybyIsImdob3N0d2hpdGUiLCJnb2xkZW5yb2QiLCJncmF5IiwiZ3JlZW55ZWxsb3ciLCJob25leWRldyIsImhvdHBpbmsiLCJpbmRpYW5yZWQiLCJpbmRpZ28iLCJpdm9yeSIsImtoYWtpIiwibGF2ZW5kZXIiLCJsYXZlbmRlcmJsdXNoIiwibGF3bmdyZWVuIiwibGVtb25jaGlmZm9uIiwibGlnaHRibHVlIiwibGlnaHRjb3JhbCIsImxpZ2h0Y3lhbiIsImxpZ2h0Z29sZGVucm9keWVsbG93IiwibGlnaHRncmF5IiwibGlnaHRncmVlbiIsImxpZ2h0Z3JleSIsImxpZ2h0cGluayIsImxpZ2h0c2FsbW9uIiwibGlnaHRzZWFncmVlbiIsImxpZ2h0c2t5Ymx1ZSIsImxpZ2h0c2xhdGVncmF5IiwibGlnaHRzbGF0ZWdyZXkiLCJsaWdodHN0ZWVsYmx1ZSIsImxpZ2h0eWVsbG93IiwibGltZWdyZWVuIiwibGluZW4iLCJtYXJvb24iLCJtZWRpdW1hcXVhbWFyaW5lIiwibWVkaXVtYmx1ZSIsIm1lZGl1bW9yY2hpZCIsIm1lZGl1bXB1cnBsZSIsIm1lZGl1bXNlYWdyZWVuIiwibWVkaXVtc2xhdGVibHVlIiwibWVkaXVtc3ByaW5nZ3JlZW4iLCJtZWRpdW10dXJxdW9pc2UiLCJtZWRpdW12aW9sZXRyZWQiLCJtaWRuaWdodGJsdWUiLCJtaW50Y3JlYW0iLCJtaXN0eXJvc2UiLCJtb2NjYXNpbiIsIm5hdmFqb3doaXRlIiwibmF2eSIsIm9sZGxhY2UiLCJvbGl2ZSIsIm9saXZlZHJhYiIsIm9yYW5nZXJlZCIsIm9yY2hpZCIsInBhbGVnb2xkZW5yb2QiLCJwYWxlZ3JlZW4iLCJwYWxldHVycXVvaXNlIiwicGFsZXZpb2xldHJlZCIsInBhcGF5YXdoaXAiLCJwZWFjaHB1ZmYiLCJwZXJ1IiwicGluayIsInBsdW0iLCJwb3dkZXJibHVlIiwicmViZWNjYXB1cnBsZSIsInJvc3licm93biIsInJveWFsYmx1ZSIsInNhZGRsZWJyb3duIiwic2FsbW9uIiwic2FuZHlicm93biIsInNlYWdyZWVuIiwic2Vhc2hlbGwiLCJzaWVubmEiLCJzaWx2ZXIiLCJza3libHVlIiwic2xhdGVibHVlIiwic2xhdGVncmF5Iiwic2xhdGVncmV5Iiwic25vdyIsInNwcmluZ2dyZWVuIiwic3RlZWxibHVlIiwidGFuIiwidGVhbCIsInRoaXN0bGUiLCJ0b21hdG8iLCJ0dXJxdW9pc2UiLCJ2aW9sZXQiLCJ3aGVhdCIsIndoaXRlIiwid2hpdGVzbW9rZSIsInllbGxvd2dyZWVuIiwiZmxpcHBlZCIsImlzT25lUG9pbnRaZXJvIiwicHJvY2Vzc1BlcmNlbnQiLCJpc1BlcmNlbnRhZ2UiLCJDU1NfVU5JVCIsIlBFUk1JU1NJVkVfTUFUQ0gzIiwiUEVSTUlTU0lWRV9NQVRDSDQiLCJzY3JpcHRVcmwiLCJfb3B0aW9ucyRleHRyYUNvbW1vblAiLCJleHRyYUNvbW1vblByb3BzIiwiY3VzdG9tQ2FjaGUiLCJzY3JpcHQiLCJJY29uZm9udCIsIl9pbmRleCIsImZpbGxUZXN0ZXIiLCJvdXRsaW5lVGVzdGVyIiwidHdvVG9uZVRlc3RlciIsIm5ld1R5cGUiLCJSZWFjdFByb3BUeXBlc1NlY3JldCIsImVtcHR5RnVuY3Rpb24iLCJlbXB0eUZ1bmN0aW9uV2l0aFJlc2V0IiwicmVzZXRXYXJuaW5nQ2FjaGUiLCJzaGltIiwicHJvcE5hbWUiLCJwcm9wRnVsbE5hbWUiLCJzZWNyZXQiLCJnZXRTaGltIiwiaXNSZXF1aXJlZCIsIlJlYWN0UHJvcFR5cGVzIiwic3ltYm9sIiwiYXJyYXlPZiIsImluc3RhbmNlT2YiLCJvYmplY3RPZiIsInNoYXBlIiwiZXhhY3QiLCJjaGVja1Byb3BUeXBlcyIsIml0ZW1zX3Blcl9wYWdlIiwianVtcF90byIsImp1bXBfdG9fY29uZmlybSIsInBhZ2UiLCJwcmV2X3BhZ2UiLCJuZXh0X3BhZ2UiLCJwcmV2XzUiLCJuZXh0XzUiLCJwcmV2XzMiLCJuZXh0XzMiLCJ0b2RheSIsImJhY2tUb1RvZGF5IiwidGltZVNlbGVjdCIsImRhdGVTZWxlY3QiLCJ3ZWVrU2VsZWN0IiwibW9udGhTZWxlY3QiLCJ5ZWFyU2VsZWN0IiwiZGVjYWRlU2VsZWN0IiwieWVhckZvcm1hdCIsImRheUZvcm1hdCIsImRhdGVUaW1lRm9ybWF0IiwibW9udGhCZWZvcmVZZWFyIiwicHJldmlvdXNNb250aCIsIm5leHRNb250aCIsInByZXZpb3VzWWVhciIsIm5leHRZZWFyIiwicHJldmlvdXNEZWNhZGUiLCJuZXh0RGVjYWRlIiwicHJldmlvdXNDZW50dXJ5IiwibmV4dENlbnR1cnkiLCJzZXRUd29Ub25lQ29sb3JzIiwiZ2V0VHdvVG9uZUNvbG9ycyIsIl9pbnRlcm9wRGVmYXVsdCIsInNldE1vbWVudExvY2FsZSIsIkxvY2FsZVByb3ZpZGVyIiwiY2hhbmdlQ29uZmlybUxvY2FsZSIsIndlYnBhY2tDb250ZXh0IiwicmVxIiwid2VicGFja0NvbnRleHRSZXNvbHZlIiwibmV3TG9jYWxlIiwicnVudGltZUxvY2FsZSIsImdldENvbmZpcm1Mb2NhbGUiLCJ3aXRoQ29uZmlnQ29uc3VtZXIiLCJTRkMiLCJjb25maWdQcm9wcyIsImJhc2ljUHJlZml4Q2xzIiwiY29ucyIsIl9jcmVhdGVSZWFjdENvbnRleHQiLCJfcmVuZGVyRW1wdHkiLCJfcmVhY3QiLCJfcHJvcFR5cGVzMiIsIl9ndWQyIiwiY3JlYXRlRXZlbnRFbWl0dGVyIiwibmV3VmFsdWUiLCJjaGFuZ2VkQml0cyIsImNhbGN1bGF0ZUNoYW5nZWRCaXRzIiwiX1Byb3ZpZGVyJGNoaWxkQ29udGV4IiwiX0NvbnN1bWVyJGNvbnRleHRUeXBlIiwiY29udGV4dFByb3AiLCJfQ29tcG9uZW50IiwiX3RlbXAiLCJlbWl0dGVyIiwib2xkVmFsdWUiLCJfQ29tcG9uZW50MiIsIl90ZW1wMiIsIm9uVXBkYXRlIiwiX2VtcHR5IiwiaW1hZ2UiLCJQUkVTRU5URURfSU1BR0VfU0lNUExFIiwiX3NpbXBsZSIsImRlZmF1bHRFbXB0eUltZyIsInNpbXBsZUVtcHR5SW1nIiwiX3Byb3BzJGltYWdlIiwiaW1hZ2VTdHlsZSIsImRlcyIsImltYWdlTm9kZSIsIlBSRVNFTlRFRF9JTUFHRV9ERUZBVUxUIiwieG1sbnMiLCJmaWxsUnVsZSIsImN4IiwiY3kiLCJyeCIsInJ5Iiwic3Ryb2tlIiwiX3JjUmVzaXplT2JzZXJ2ZXIiLCJfY2FsY3VsYXRlTm9kZUhlaWdodCIsIlJlc2l6YWJsZVRleHRBcmVhIiwicmVzaXplT25OZXh0RnJhbWUiLCJuZXh0RnJhbWVBY3Rpb25JZCIsImF1dG9TaXplIiwiYXV0b3NpemUiLCJtaW5Sb3dzIiwibWF4Um93cyIsInRleHRhcmVhU3R5bGVzIiwicmVzaXppbmciLCJyZXNpemVGcmFtZUlkIiwiZml4RmlyZWZveEF1dG9TY3JvbGwiLCJfdGhpcyRzdGF0ZSIsImNscyIsIm92ZXJmbG93WCIsIm92ZXJmbG93WSIsIm9uUmVzaXplIiwiY3VycmVudFN0YXJ0IiwiY3VycmVudEVuZCIsInNldFNlbGVjdGlvblJhbmdlIiwiX19pbXBvcnRTdGFyIiwiZmluZERPTU5vZGVfMSIsInRvQXJyYXlfMSIsIndhcm5pbmdfMSIsInJlZl8xIiwicmVzaXplX29ic2VydmVyX3BvbHlmaWxsXzEiLCJ1dGlsXzEiLCJSZWFjdFJlc2l6ZU9ic2VydmVyIiwicmVzaXplT2JzZXJ2ZXIiLCJjaGlsZE5vZGUiLCJjdXJyZW50RWxlbWVudCIsIl90YXJnZXQkZ2V0Qm91bmRpbmdDbCIsImZpeGVkV2lkdGgiLCJmaXhlZEhlaWdodCIsInNldENoaWxkTm9kZSIsIm9uQ29tcG9uZW50VXBkYXRlZCIsImRlc3Ryb3lPYnNlcnZlciIsIm9ic2VydmUiLCJkaXNjb25uZWN0IiwiY2hpbGROb2RlcyIsInN1cHBvcnRSZWYiLCJjb21wb3NlUmVmIiwiSFRNTEVsZW1lbnQiLCJfcmVhY3REb20iLCJfcmVhY3RJcyIsImlzRnJhZ21lbnQiLCJBc3luY01vZGUiLCJDb25jdXJyZW50TW9kZSIsIkNvbnRleHRDb25zdW1lciIsIkNvbnRleHRQcm92aWRlciIsIkVsZW1lbnQiLCJGb3J3YXJkUmVmIiwiTGF6eSIsIk1lbW8iLCJQb3J0YWwiLCJpc0FzeW5jTW9kZSIsImlzQ29uY3VycmVudE1vZGUiLCJpc0NvbnRleHRDb25zdW1lciIsImlzQ29udGV4dFByb3ZpZGVyIiwiaXNFbGVtZW50IiwiaXNGb3J3YXJkUmVmIiwiaXNNZW1vIiwiaXNQb3J0YWwiLCJpc1Byb2ZpbGVyIiwiaXNTdHJpY3RNb2RlIiwiaXNTdXNwZW5zZSIsImlzVmFsaWRFbGVtZW50VHlwZSIsInR5cGVPZiIsImZpbGxSZWYiLCJub2RlT3JDb21wb25lbnQiLCJNYXBTaGltIiwiZ2V0SW5kZXgiLCJjbGFzc18xIiwiX19lbnRyaWVzX18iLCJpc0Jyb3dzZXIiLCJnbG9iYWwkMSIsInJlcXVlc3RBbmltYXRpb25GcmFtZSQxIiwidHJhbnNpdGlvbktleXMiLCJtdXRhdGlvbk9ic2VydmVyU3VwcG9ydGVkIiwiTXV0YXRpb25PYnNlcnZlciIsIlJlc2l6ZU9ic2VydmVyQ29udHJvbGxlciIsImNvbm5lY3RlZF8iLCJtdXRhdGlvbkV2ZW50c0FkZGVkXyIsIm11dGF0aW9uc09ic2VydmVyXyIsIm9ic2VydmVyc18iLCJvblRyYW5zaXRpb25FbmRfIiwicmVmcmVzaCIsImxlYWRpbmdDYWxsIiwidHJhaWxpbmdDYWxsIiwibGFzdENhbGxUaW1lIiwicmVzb2x2ZVBlbmRpbmciLCJ0aW1lb3V0Q2FsbGJhY2siLCJ0aHJvdHRsZSIsImFkZE9ic2VydmVyIiwib2JzZXJ2ZXIiLCJjb25uZWN0XyIsInJlbW92ZU9ic2VydmVyIiwib2JzZXJ2ZXJzIiwiZGlzY29ubmVjdF8iLCJ1cGRhdGVPYnNlcnZlcnNfIiwiYWN0aXZlT2JzZXJ2ZXJzIiwiZ2F0aGVyQWN0aXZlIiwiaGFzQWN0aXZlIiwiYnJvYWRjYXN0QWN0aXZlIiwiYXR0cmlidXRlcyIsImNoaWxkTGlzdCIsImNoYXJhY3RlckRhdGEiLCJzdWJ0cmVlIiwiZ2V0SW5zdGFuY2UiLCJpbnN0YW5jZV8iLCJkZWZpbmVDb25maWd1cmFibGUiLCJnZXRXaW5kb3dPZiIsImVtcHR5UmVjdCIsImNyZWF0ZVJlY3RJbml0IiwidG9GbG9hdCIsImdldEJvcmRlcnNTaXplIiwic3R5bGVzIiwicG9zaXRpb25zIiwicG9zaXRpb24iLCJnZXRIVE1MRWxlbWVudENvbnRlbnRSZWN0IiwiY2xpZW50V2lkdGgiLCJjbGllbnRIZWlnaHQiLCJwYWRkaW5ncyIsInBvc2l0aW9uc18xIiwiZ2V0UGFkZGluZ3MiLCJob3JpelBhZCIsInZlcnRQYWQiLCJib3hTaXppbmciLCJpc0RvY3VtZW50RWxlbWVudCIsInZlcnRTY3JvbGxiYXIiLCJob3JpelNjcm9sbGJhciIsImlzU1ZHR3JhcGhpY3NFbGVtZW50IiwiU1ZHR3JhcGhpY3NFbGVtZW50IiwiU1ZHRWxlbWVudCIsImdldEJCb3giLCJnZXRDb250ZW50UmVjdCIsImJib3giLCJnZXRTVkdDb250ZW50UmVjdCIsIlJlc2l6ZU9ic2VydmF0aW9uIiwiYnJvYWRjYXN0V2lkdGgiLCJicm9hZGNhc3RIZWlnaHQiLCJjb250ZW50UmVjdF8iLCJpc0FjdGl2ZSIsImJyb2FkY2FzdFJlY3QiLCJSZXNpemVPYnNlcnZlckVudHJ5IiwicmVjdEluaXQiLCJDb25zdHIiLCJjb250ZW50UmVjdCIsIkRPTVJlY3RSZWFkT25seSIsIlJlc2l6ZU9ic2VydmVyU1BJIiwiY29udHJvbGxlciIsImNhbGxiYWNrQ3R4IiwiYWN0aXZlT2JzZXJ2YXRpb25zXyIsIm9ic2VydmF0aW9uc18iLCJjYWxsYmFja18iLCJjb250cm9sbGVyXyIsImNhbGxiYWNrQ3R4XyIsIm9ic2VydmF0aW9ucyIsInVub2JzZXJ2ZSIsImNsZWFyQWN0aXZlIiwib2JzZXJ2YXRpb24iLCJSZXNpemVPYnNlcnZlciIsImNhbGN1bGF0ZU5vZGVTdHlsaW5nIiwidWlUZXh0Tm9kZSIsInVzZUNhY2hlIiwiaGlkZGVuVGV4dGFyZWEiLCJfY2FsY3VsYXRlTm9kZVN0eWxpbmciLCJwYWRkaW5nU2l6ZSIsImJvcmRlclNpemUiLCJzaXppbmdTdHlsZSIsIkhJRERFTl9URVhUQVJFQV9TVFlMRSIsIm1pbkhlaWdodCIsIk1JTl9TQUZFX0lOVEVHRVIiLCJtYXhIZWlnaHQiLCJNQVhfU0FGRV9JTlRFR0VSIiwic2Nyb2xsSGVpZ2h0Iiwic2luZ2xlUm93SGVpZ2h0IiwiU0laSU5HX1NUWUxFIiwiY29tcHV0ZWRTdHlsZUNhY2hlIiwibm9kZVJlZiIsIm5vZGVJbmZvIiwidmVuZG9ycyIsInJhZiIsImNhZiIsIl9ub3ciLCJjcCIsImNhbmNlbGxlZCIsImdldE5hbm9TZWNvbmRzIiwiaHJ0aW1lIiwibG9hZFRpbWUiLCJtb2R1bGVMb2FkVGltZSIsIm5vZGVMb2FkVGltZSIsInVwVGltZSIsInVwdGltZSIsIl93YXZlIiwicnhUd29DTkNoYXIiLCJpc1R3b0NOQ2hhciIsInNwYWNlQ2hpbGRyZW4iLCJuZWVkSW5zZXJ0ZWQiLCJpc1ByZXZDaGlsZFB1cmUiLCJpc0N1cnJlbnRDaGlsZFB1cmUiLCJTUEFDRSIsImluc2VydFNwYWNlIiwiQnV0dG9uU2hhcGVzIiwiQnV0dG9uU2l6ZXMiLCJCdXR0b25IVE1MVHlwZXMiLCJCdXR0b24iLCJzYXZlQnV0dG9uUmVmIiwiYnV0dG9uTm9kZSIsImhhbmRsZUNsaWNrIiwibG9hZGluZyIsInJlbmRlckJ1dHRvbiIsImdob3N0IiwiaGFzVHdvQ05DaGFyIiwiYXV0b0luc2VydFNwYWNlIiwic2l6ZUNscyIsImtpZHMiLCJpc05lZWRJbnNlcnRlZCIsImxpbmtCdXR0b25SZXN0UHJvcHMiLCJodG1sVHlwZSIsImZpeFR3b0NOQ2hhciIsImRlbGF5VGltZW91dCIsImJ1dHRvblRleHQiLCJzdHlsZUZvclBlc3VkbyIsIl9FdmVudCIsImlzSGlkZGVuIiwib2Zmc2V0UGFyZW50IiwiaXNOb3RHcmV5IiwiV2F2ZSIsImFuaW1hdGlvblN0YXJ0Iiwid2F2ZUNvbG9yIiwiaW5zZXJ0RXh0cmFOb2RlIiwiZXh0cmFOb2RlIiwiZ2V0QXR0cmlidXRlTmFtZSIsImJvcmRlckNvbG9yIiwib25UcmFuc2l0aW9uU3RhcnQiLCJvblRyYW5zaXRpb25FbmQiLCJyZXNldEVmZmVjdCIsImJpbmRBbmltYXRpb25FdmVudCIsImNsaWNrV2F2ZVRpbWVvdXRJZCIsImFuaW1hdGlvblN0YXJ0SWQiLCJyZW5kZXJXYXZlIiwiVHJhbnNpdGlvbkV2ZW50cyIsIm90aGVycyIsIl9Sb3dDb250ZXh0IiwiX3Jlc3BvbnNpdmVPYnNlcnZlIiwiUm93QWxpZ25zIiwiUm93SnVzdGlmeSIsInNjcmVlbnMiLCJyZW5kZXJSb3ciLCJqdXN0aWZ5IiwiZ3V0dGVyIiwiZ2V0R3V0dGVyIiwicm93U3R5bGUiLCJtYXJnaW5MZWZ0IiwibWFyZ2luUmlnaHQiLCJtYXJnaW5Ub3AiLCJtYXJnaW5Cb3R0b20iLCJzdWJzY3JpYmUiLCJ1bnN1YnNjcmliZSIsInJlc3BvbnNpdmVBcnJheSIsImJyZWFrcG9pbnQiLCJlbnF1aXJlIiwicmVzcG9uc2l2ZU1hcCIsIm1hdGNoTWVkaWEiLCJtZWRpYVF1ZXJ5IiwibWVkaWEiLCJzbSIsInhsIiwieHhsIiwic3Vic2NyaWJlcnMiLCJzdWJVaWQiLCJwb2ludE1hcCIsInJlZ2lzdGVyIiwidW5yZWdpc3RlciIsInNjcmVlbiIsInVubWF0Y2giLCJNZWRpYVF1ZXJ5RGlzcGF0Y2giLCJNZWRpYVF1ZXJ5IiwiVXRpbCIsInF1ZXJpZXMiLCJicm93c2VySXNJbmNhcGFibGUiLCJzaG91bGREZWdyYWRlIiwiaXNVbmNvbmRpdGlvbmFsIiwiYWRkSGFuZGxlciIsInJlbW92ZUhhbmRsZXIiLCJRdWVyeUhhbmRsZXIiLCJtcWwiLCJsaXN0ZW5lciIsImFzc2VzcyIsImNvbnN0dWN0b3IiLCJkZWZlclNldHVwIiwic2V0dXAiLCJpbml0aWFsaXNlZCIsIm9iamVjdE9yTnVtYmVyIiwicmVuZGVyQ29sIiwic3BhbiIsInB1bGwiLCJzaXplQ2xhc3NPYmoiLCJzaXplUHJvcHMiLCJwcm9wU2l6ZSIsInBhZGRpbmdMZWZ0IiwicGFkZGluZ1JpZ2h0IiwicGFkZGluZ1RvcCIsInBhZGRpbmdCb3R0b20iLCJzaW5nbGVNYXRjaGVyIiwibXVsdGlNYXRjaGVyIiwiZGVjb2RlQ29tcG9uZW50cyIsImNvbXBvbmVudHMiLCJkZWNvZGVVUklDb21wb25lbnQiLCJkZWNvZGUiLCJlbmNvZGVkVVJJIiwicmVwbGFjZU1hcCIsImN1c3RvbURlY29kZVVSSUNvbXBvbmVudCIsIl9FdmVudEJhc2VPYmplY3QyIiwiX29iamVjdEFzc2lnbjIiLCJjb21tb25Qcm9wcyIsImlzTnVsbE9yVW5kZWZpbmVkIiwiZXZlbnROb3JtYWxpemVycyIsInJlZyIsImZpeCIsImF4aXMiLCJIT1JJWk9OVEFMX0FYSVMiLCJWRVJUSUNBTF9BWElTIiwiZXZlbnREb2MiLCJkb2MiLCJjbGllbnRMZWZ0IiwiY2xpZW50VG9wIiwicmV0VHJ1ZSIsInJldEZhbHNlIiwiRG9tRXZlbnRPYmplY3QiLCJpc05hdGl2ZSIsImdldFByZXZlbnREZWZhdWx0IiwiZml4Rm5zIiwibm9ybWFsaXplciIsImZpeEZuIiwiRXZlbnRCYXNlT2JqZWN0UHJvdG8iLCJyZXR1cm5GYWxzZSIsInJldHVyblRydWUiLCJFdmVudEJhc2VPYmplY3QiLCJpc0V2ZW50T2JqZWN0IiwiaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQiLCJzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24iLCJoYWx0IiwiZ2V0T3ZlcmZsb3dPcHRpb25zIiwiX2NvbmZpZyRhcnJvd1dpZHRoIiwiYXJyb3dXaWR0aCIsIl9jb25maWckaG9yaXpvbnRhbEFyciIsImhvcml6b250YWxBcnJvd1NoaWZ0IiwiX2NvbmZpZyR2ZXJ0aWNhbEFycm93IiwiX2NvbmZpZyRhdXRvQWRqdXN0T3ZlIiwicGxhY2VtZW50TWFwIiwidG9wTGVmdCIsImxlZnRUb3AiLCJ0b3BSaWdodCIsInJpZ2h0VG9wIiwiYm90dG9tUmlnaHQiLCJyaWdodEJvdHRvbSIsImJvdHRvbUxlZnQiLCJsZWZ0Qm90dG9tIiwidGFyZ2V0T2Zmc2V0IiwiaWdub3JlU2hha2UiLCJhdXRvQWRqdXN0T3ZlcmZsb3dFbmFibGVkIiwiYWRqdXN0WCIsImFkanVzdFkiLCJhdXRvQWRqdXN0T3ZlcmZsb3dEaXNhYmxlZCIsIkFMUEhBX0lOREVYIiwiQ0hBUl9JTkRFWCIsIjYyIiwiQ0hBUl9TX0lOREVYIiwiJyIsImVuY29kZU5vblVURiIsInN0ckxlbmd0aCIsImFscGhhIiwiZW5jb2RlTm9uQVNDSUkiLCJzdHJMZW5naHQiLCJIVE1MX0FMUEhBIiwiSFRNTF9DT0RFUyIsImFscGhhSW5kZXgiLCJudW1JbmRleCIsImVudGl0eSIsImNociIsIkVOVElUSUVTIiwiY2hhckluZGV4IiwiY2hhcnMiLCJhZGRDaGFyIiwiY2hhckluZm8iLCJjaHIyIiwiY3JlYXRlSW5kZXhlcyIsIl9waXBlIiwiX2N1cnJ5MyIsImYzIiwiX2MiLCJfaXNTdHJpbmciLCJfaXNBcnJheSIsIlhXcmFwIiwidGhpc09iaiIsIl9pdGVyYWJsZVJlZHVjZSIsIl9tZXRob2RSZWR1Y2UiLCJtZXRob2ROYW1lIiwic3ltSXRlcmF0b3IiLCJfcmVkdWNlIiwiX3h3cmFwIiwiaWR4IiwiX2FycmF5UmVkdWNlIiwiX2NoZWNrRm9yTWV0aG9kIiwibWV0aG9kbmFtZSIsInRvSW5kZXgiLCJJbmZpbml0eSIsInBpcGUiLCJwYXRoc0FycmF5IiwiX2lzSW50ZWdlciIsInBhdGhBciIsIl9pc1RyYW5zZm9ybWVyIiwiX2Rpc3BhdGNoYWJsZSIsIm1ldGhvZE5hbWVzIiwidHJhbnNkdWNlciIsIl9tYXAiLCJmdW5jdG9yIiwiWE1hcCIsIl94ZkJhc2UiLCJfaGFzIiwiaGFzRW51bUJ1ZyIsIm5vbkVudW1lcmFibGVQcm9wcyIsImhhc0FyZ3NFbnVtQnVnIiwibklkeCIsImtzIiwiY2hlY2tBcmdzTGVuZ3RoIiwiX2lkZW50aXR5IiwiX2FycmF5RnJvbUl0ZXJhdG9yIiwiX2luY2x1ZGVzV2l0aCIsIl91bmlxQ29udGVudEVxdWFscyIsImFJdGVyYXRvciIsImJJdGVyYXRvciIsInN0YWNrQSIsInN0YWNrQiIsImVxIiwiYUl0ZW0iLCJ0eXBlQSIsInN0aWNreSIsImtleXNBIiwiZXh0ZW5kZWRTdGFja0EiLCJleHRlbmRlZFN0YWNrQiIsIl9pbmRleE9mIiwiaW5mIiwiX2luY2x1ZGVzIiwiaGFzT3JBZGQiLCJzaG91bGRBZGQiLCJwcmV2U2l6ZSIsIl9pdGVtcyIsIl9uYXRpdmVTZXQiLCJiSWR4IiwiX1NldCIsImFwcGxpZWRJdGVtIiwiWEZpbHRlciIsImZpbHRlcmFibGUiLCJfZmlsdGVyIiwiZG9tYWluIiwid3AiLCJpMThuIiwiY29uZGl0aW9uIiwib25UcnVlIiwib25GYWxzZSIsInByZWRzIiwicmFuZG9tU3RyaW5nIiwiQWN0aW9uVHlwZXMiLCJJTklUIiwiUkVQTEFDRSIsIlBST0JFX1VOS05PV05fQUNUSU9OIiwiaXNQbGFpbk9iamVjdCIsImNyZWF0ZVN0b3JlIiwicHJlbG9hZGVkU3RhdGUiLCJlbmhhbmNlciIsImN1cnJlbnRSZWR1Y2VyIiwiY3VycmVudFN0YXRlIiwiY3VycmVudExpc3RlbmVycyIsIm5leHRMaXN0ZW5lcnMiLCJpc0Rpc3BhdGNoaW5nIiwiZW5zdXJlQ2FuTXV0YXRlTmV4dExpc3RlbmVycyIsImdldFN0YXRlIiwiaXNTdWJzY3JpYmVkIiwicmVwbGFjZVJlZHVjZXIiLCJuZXh0UmVkdWNlciIsIm91dGVyU3Vic2NyaWJlIiwib2JzZXJ2ZVN0YXRlIiwiZW51bWVyYWJsZU9ubHkiLCJfb2JqZWN0U3ByZWFkMiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJmdW5jcyIsImFwcGx5TWlkZGxld2FyZSIsIm1pZGRsZXdhcmVzIiwiX2Rpc3BhdGNoIiwibWlkZGxld2FyZUFQSSIsIm1pZGRsZXdhcmUiLCJjcmVhdGVUaHVua01pZGRsZXdhcmUiLCJleHRyYUFyZ3VtZW50IiwidGh1bmsiLCJ3aXRoRXh0cmFBcmd1bWVudCIsImlzT2JqZWN0T2JqZWN0IiwicHJvdCIsInVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QiLCJjcmVhdGVTdG9yZVN0YXRlSG9vayIsIm1hcFN0YXRlIiwiZXF1YWxpdHlGbiIsIm1hcFN0YXRlUmVmIiwic3RhdGVSZWYiLCJtb3VudGVkUmVmIiwic3Vic2NyaXB0aW9uTWFwU3RhdGVFcnJvciIsImZvcmNlUmVuZGVyIiwiY2hlY2tNYXBTdGF0ZSIsIm5ld1N0YXRlIiwiY3JlYXRlU3RvcmVBY3Rpb25zSG9vayIsIm1hcEFjdGlvbnMiLCJnZXRBY3Rpb25zIiwiY3JlYXRlU3RvcmVEaXNwYXRjaEhvb2siLCJjcmVhdGVTdG9yZVJlaHlkcmF0ZWRIb29rIiwiX3VzZVN0YXRlIiwicmVoeWRyYXRlZCIsInNldFJlaHlkcmF0ZWQiLCJyZXNvbHZlUmVoeWRyYXRpb24iLCJyZWN1cnNpdmVDbG9uZSIsImlzUHJvbWlzZSIsImN1ciIsImNyZWF0ZVNpbXBsZVByb2R1Y2UiLCJkaXNhYmxlSW1tZXIiLCJfY3VycmVudCIsIm5ld2lmeSIsImN1cnJlbnRQYXRoIiwiZmluYWxWYWx1ZSIsIl9kcmFmdCIsInBhcmVudFBhdGgiLCJjcmVhdGVSZWR1Y2VyIiwiYWN0aW9uUmVkdWNlcnNEaWN0IiwiY3VzdG9tUmVkdWNlcnMiLCJjb21wdXRlZFByb3BlcnRpZXMiLCJzaW1wbGVQcm9kdWNlIiwicmVkdWNlckZvckFjdGlvbnMiLCJhY3Rpb25SZWR1Y2VyIiwicnVuQWN0aW9uUmVkdWNlckF0UGF0aCIsInN0YXRlQWZ0ZXJBY3Rpb25zIiwicmVkdWNlckZvckN1c3RvbVJlZHVjZXJzIiwiYmluZENvbXB1dGVkUHJvcGVydHkiLCJub29wU3RvcmFnZSIsImdldEl0ZW0iLCJzZXRJdGVtIiwicmVtb3ZlSXRlbSIsImxvY2FsU3RvcmFnZSIsInNlc3Npb25TdG9yYWdlIiwiY3JlYXRlU3RvcmFnZVdyYXBwZXIiLCJzdG9yYWdlIiwidHJhbnNmb3JtZXJzIiwib3V0VHJhbnNmb3JtZXJzIiwiZGVzZXJpYWxpemUiLCJzaW1wbGVLZXkiLCJpc0FzeW5jIiwid3JhcHBlZCIsInRyYW5zZm9ybWVkIiwiaW4iLCJzZXJpYWxpemUiLCJyZXNvbHZlUGVyc2lzdFRhcmdldHMiLCJ3aGl0ZWxpc3QiLCJibGFja2xpc3QiLCJ0YXJnZXRzIiwiZmluZEluZGV4IiwiY3JlYXRlTGlzdGVuZXJNaWRkbGV3YXJlIiwicmVmZXJlbmNlcyIsImludGVybmFscyIsImxpc3RlbmVyQWN0aW9uTWFwIiwic291cmNlQWN0aW9uIiwiYWN0aW9uQ3JlYXRvckRpY3QiLCJhY3Rpb25DcmVhdG9yIiwiY3JlYXRlQ29tcHV0ZWRQcm9wZXJ0aWVzTWlkZGxld2FyZSIsImNvbXB1dGVkU3RhdGUiLCJpc0luUmVkdWNlciIsImV4dHJhY3REYXRhRnJvbU1vZGVsIiwiaW5pdGlhbFN0YXRlIiwiaW5qZWN0aW9ucyIsImRlZmF1bHRTdGF0ZSIsImFjdGlvbkNyZWF0b3JzIiwiYWN0aW9uVGh1bmtzIiwibGlzdGVuZXJBY3Rpb25DcmVhdG9ycyIsImxpc3RlbmVyRGVmaW5pdGlvbnMiLCJwZXJzaXN0ZW5jZUNvbmZpZyIsInJlY3Vyc2l2ZUV4dHJhY3RGcm9tTW9kZWwiLCJoYW5kbGVWYWx1ZUFzU3RhdGUiLCJpbml0aWFsUGFyZW50UmVmIiwiYWN0aW9uRGVmaW5pdGlvbiIsImFjdGlvbk1ldGEiLCJhY3Rpb25OYW1lIiwicmVzb2x2ZWRUYXJnZXRzIiwiY3JlYXRlQWN0aW9uQ3JlYXRvciIsInRodW5rSGFuZGxlciIsInRodW5rRGVmaW5pdGlvbiIsInRodW5rTWV0YSIsImhlbHBlcnMiLCJnZXRTdG9yZUFjdGlvbnMiLCJnZXRTdG9yZVN0YXRlIiwiY3JlYXRlVGh1bmtIYW5kbGVyIiwiX2FjdGlvbkNyZWF0b3IiLCJzdGFydFR5cGUiLCJzdWNjZXNzVHlwZSIsImZhaWxUeXBlIiwiZGlzcGF0Y2hFcnJvciIsImRpc3BhdGNoU3VjY2VzcyIsInJlc29sdmVkIiwiY3JlYXRlVGh1bmtBY3Rpb25zQ3JlYXRvciIsImRlZmluaXRpb24iLCJjb21wdXRlZE1ldGEiLCJtZW1vaXNlZFJlc3VsdEZuIiwic3RvcmVTdGF0ZSIsImlucHV0cyIsInN0YXRlUmVzb2x2ZXJzIiwicmVzb2x2ZXIiLCJjcmVhdGVDb21wdXRlZFByb3BlcnR5QmluZGVyIiwicGVyc2lzdERlZmluaXRpb24iLCJtZXJnZVN0cmF0ZWd5IiwiZXh0cmFjdFBlcnNpc3RDb25maWciLCJsaXN0ZW5lckFjdGlvbk9yVGh1bmsiLCJsaXN0ZW5lck1ldGEiLCJ0YXJnZXRSZXNvbHZlciIsInRhcmdldFR5cGVzIiwidGFyZ2V0VHlwZSIsImxpc3RlbmVyUmVnIiwiYmluZExpc3RlbmVyRGVmaW5pdGlvbnMiLCJtb2RlbENsb25lIiwiX29wdGlvbnMiLCJjb21wb3NlJDEiLCJfb3B0aW9ucyRkZXZUb29scyIsImRldlRvb2xzIiwiX29wdGlvbnMkZGlzYWJsZUltbWVyIiwiX29wdGlvbnMkZW5oYW5jZXJzIiwiZW5oYW5jZXJzIiwiX29wdGlvbnMkaW5pdGlhbFN0YXRlIiwiX29wdGlvbnMkbWlkZGxld2FyZSIsIl9vcHRpb25zJG1vY2tBY3Rpb25zIiwibW9ja0FjdGlvbnMiLCJfb3B0aW9ucyRuYW1lIiwic3RvcmVOYW1lIiwiX29wdGlvbnMkcmVkdWNlckVuaGFuIiwicmVkdWNlckVuaGFuY2VyIiwicm9vdFJlZHVjZXIiLCJiaW5kUmVwbGFjZVN0YXRlIiwibW9kZWxEZWYiLCJlUFJTIiwibW9kZWxEZWZpbml0aW9uIiwibW9ja2VkQWN0aW9ucyIsInBlcnNpc3RLZXkiLCJ0YXJnZXRQYXRoIiwicGVyc2lzdG9yIiwiY3JlYXRlUGVyc2lzdG9yIiwicGVyc2lzdE1pZGRsZXdhcmUiLCJjcmVhdGVQZXJzaXN0TWlkZGxld2FyZSIsImNsZWFyUGVyc2lzdGFuY2UiLCJhbGwiLCJjcmVhdGVQZXJzaXN0ZW5jZUNsZWFyZXIiLCJyZXBsYWNlU3RhdGUiLCJiaW5kU3RvcmVJbnRlcm5hbHMiLCJfZXh0cmFjdERhdGFGcm9tTW9kZWwiLCJjcmVhdGVTdG9yZUludGVybmFscyIsImNvbXBvc2VFbmhhbmNlcnMiLCJfX1JFRFVYX0RFVlRPT0xTX0VYVEVOU0lPTl9DT01QT1NFX18iLCJlYXN5UGVhc3lNaWRkbGV3YXJlIiwiYmluZEFjdGlvbkNyZWF0b3JzIiwiYWN0aW9uc0tleSIsInJlYmluZFN0b3JlIiwicmVtb3ZlS2V5IiwiX3Jlc29sdmVSZWh5ZHJhdGlvbiIsInBlcnNpc3RJbnN0YW5jZSIsImFwcGx5UmVoeWRyYXRpb25TdHJhdGVneSIsIm9yaWdpbmFsU3RhdGUiLCJyZWh5ZHJhdGVkU3RhdGUiLCJzZXRBdCIsImN1cnJlbnROZXh0IiwiYXN5bmNTdGF0ZVJlc29sdmVycyIsImRhdGFQcm9taXNlIiwicmVzb2x2ZWREYXRhIiwicmVoeWRyYXRlU3RhdGVGcm9tUGVyc2lzdElmTmVlZGVkIiwiYWRkTW9kZWwiLCJtb2RlbEZvcktleSIsImNsZWFyTW9ja2VkQWN0aW9ucyIsImdldExpc3RlbmVycyIsImdldE1vY2tlZEFjdGlvbnMiLCJyZWNvbmZpZ3VyZSIsIm5ld01vZGVsIiwicmVtb3ZlTW9kZWwiLCJTdG9yZVByb3ZpZGVyIiwiWFRhcCIsIl9pc0Z1bmN0aW9uIiwiX3F1b3RlIiwiZ2V0VVRDSG91cnMiLCJnZXRVVENTZWNvbmRzIiwiZ2V0VVRDTWlsbGlzZWNvbmRzIiwiX3RvU3RyaW5nIiwic2VlbiIsInJlY3VyIiwibWFwUGFpcnMiLCJyZXByIiwiYXJpdHkiLCJwYWlycyIsInBhaXIiLCJfbWFrZUZsYXQiLCJyZWN1cnNpdmUiLCJmbGF0dCIsImpsZW4iLCJpbGVuIiwiWERyb3AiLCJnZXRUcmFuc2xhdGlvblN0YXR1cyIsImlzT3JpZ2luYWwiLCJwcm9wRXEiLCJpc1RyYW5zbGF0ZWQiLCJpc05pbCIsIm5vdCIsImhhc01vVmFsdWUiLCJpc1dhaXRpbmdGb3JUcmFuc2xhdG9yIiwiaXNJblByb2dyZXNzIiwiaW5CYXNrZXQiLCJuZWVkc1VwZGF0ZSIsInNwbGl0QXQiLCJmbGF0dGVuIiwibGFuZ3VhZ2VzIiwibGFuZ3VhZ2VzV2l0aEN1cnJlbnRGaXJzdCIsInJlbW92ZUN1cnJlbnRMYW5nIiwiZHJvcCIsImZvdW5kIiwiY2FuTm90VHJhbnNsYXRlIiwiYW55UGFzcyIsImlzRW50ZXIiLCJpc1NoaWZ0RW50ZXIiLCJhbGxQYXNzIiwiaXNUYWIiLCJpc0VzY2FwZSIsIm9uVHJhbnNsYXRpb24iLCJ0cmFuc2xhdGlvblNvdXJjZSIsInVzZVN0b3JlU3RhdGUiLCJzZXRWaXNpYmxlIiwidXNlU3RvcmVBY3Rpb25zIiwic2V0Rm9jdXMiLCJjYXJldCIsInNldENhcmV0IiwibmV4dEF2YWlsYWJsZUxhbmciLCJkaXNhYmxlUHJldiIsImRpc2FibGVOZXh0IiwibW92ZVRvIiwicHJvcE9yIiwidXBkYXRlU2l6ZSIsImF0dHJpYnV0ZUZpbHRlciIsIm9uS2V5IiwiZXZ0Iiwic2FmZSIsInRhcCIsImludm9rZXIiLCJjb25kIiwib25LZXlQcmVzcyIsImxhbmdEZXRhaWxzIiwiZ2V0RmxhZ1VybCIsImdvVG9MYW5nQnV0dG9uIiwiRmxhZyIsImdldExhbmdOYW1lIiwidGV4dEFsaWduIiwib25OZXdUcmFuc2xhdGlvbiIsImVuZHBvaW50cyIsImFqYXgiLCJnZXRMYW5nSW5mbyIsImZsYWciLCJvcmlnaW5hbExhbmciLCJzdHJpbmdfbGFuZ3VhZ2UiLCJ0cmFuc2xhdGVkTGFuZyIsIm1vU3RyaW5nIiwicGF0aE9yIiwidHJhbnNsYXRpb24iLCJzb3VyY2VJbnB1dCIsInZhbGlkYXRlUmVzcG9uc2UiLCJpZkVsc2UiLCJ0cmFuc2xhdGlvbk1lbW9yeSIsIm5ld1RyYW5zbGF0aW9uIiwic2V0TmV3VHJhbnNsYXRpb24iLCJUcmFuc2xhdGlvbkVkaXRvciIsIkFjdGlvbnMiLCJfY29uY2F0Iiwic2V0MSIsInNldDIiLCJsZW4xIiwibGVuMiIsIl9jcmVhdGVQYXJ0aWFsQXBwbGljYXRvciIsInNob3ciLCJzaG93U3VjY2VzcyIsInBhcnRpYWwiLCJzaG93RXJyb3IiLCJ3aXRoTmFtZXNwYWNlIiwiZGlzcGF0Y2hFdmVudCIsIkN1c3RvbUV2ZW50IiwiZm5zIiwiYXBwZW5kIiwibGFuZ3VhZ2VEZXRhaWxzIiwic3RyaW5nU3RvcmUiLCJ0aGVTdG9yZSIsInVwZGF0ZVRyYW5zbGF0aW9uIiwidHJhbnNsYXRpb25zIiwic3RyaW5nX2lkIiwidG9vbHRpcFRleHQiLCJzcHJpbnRmRnJvbU5vZGUiLCJPcmlnaW5hbEljb24iLCJXYWl0SWNvbiIsIkluUHJvZ3Jlc3NJY29uIiwiQmFza2V0SWNvbiIsIkljb25XaXRoRWRpdG9yIiwiZGVmYXVsdFRyYW5zbGF0aW9uIiwic2V0VHJhbnNsYXRpb24iLCJzYXZlVHJhbnNsYXRpb24iLCJnZXRQYXlsb2FkIiwiaXNWaXNpYmxlIiwiRWRpdFRyYW5zbGF0aW9uUG9wdXAiLCJkZXN0cm95VG9vbHRpcE9uSGlkZSIsIkFkZEljb24iLCJFZGl0SWNvbiIsIk5lZWRzVXBkYXRlSWNvbiIsIlN0YXR1c0ljb24iLCJvdGhlcldpc2UiLCJhbHdheXMiLCJmaW5kQWxsIiwic2VsZWN0b3IiLCJsYW5ncyIsInF1ZXJ5U2VsZWN0b3IiLCJzYWZlRmluZCIsImVudGl0aWVzIiwiZ2V0U3RyaW5nIiwiZGF0YXNldCIsInN0YXR1c0VsZW1lbnRzIiwib3JpZ2luYWxMYW5ndWFnZXMiLCJwbHVjayIsInVuaXEiLCJzdHJpbmdzIiwid3BtbF9zdF9tYWluX3VpIiwiZmV0Y2hTdHJpbmdzIiwiUmVhY3RET00iLCJMYW5ndWFnZXNDZWxsIiwiYWRkRXZlbnRMaXN0ZW5lcldyYXAiLCJDb250YWluZXJSZW5kZXIiLCJyZW1vdmVDb250YWluZXIiLCJjb250YWluZXIiLCJyZWFkeSIsImdldENvbXBvbmVudCIsIl9jb21wb25lbnQiLCJhdXRvTW91bnQiLCJhdXRvRGVzdHJveSIsImNyZWF0ZUNvbnRhaW5lciIsImRpZFVwZGF0ZSIsIl9jb250YWluZXIiLCJpc1BvaW50c0VxIiwiaXNBbGlnblBvaW50Iiwic2F2ZVJlZiIsInZlbmRvclByZWZpeCIsImpzQ3NzTWFwIiwiV2Via2l0IiwiTW96IiwiZ2V0VmVuZG9yUHJlZml4IiwiZ2V0VHJhbnNpdGlvbk5hbWUiLCJnZXRUcmFuc2Zvcm1OYW1lIiwic2V0VHJhbnNpdGlvblByb3BlcnR5IiwidHJhbnNpdGlvblByb3BlcnR5Iiwic2V0VHJhbnNmb3JtIiwibWF0cml4MmQiLCJtYXRyaXgzZCIsImdldENvbXB1dGVkU3R5bGVYIiwiZm9yY2VSZWxheW91dCIsImVsZW0iLCJvcmlnaW5hbFN0eWxlIiwib2Zmc2V0SGVpZ2h0IiwiY3NzIiwiZ2V0U2Nyb2xsIiwiZ2V0U2Nyb2xsTGVmdCIsImdldFNjcm9sbFRvcCIsImdldE9mZnNldCIsImJveCIsImRvY0VsZW0iLCJnZXRDbGllbnRQb3NpdGlvbiIsImlzV2luZG93IiwiZ2V0RG9jdW1lbnQiLCJfUkVfTlVNX05PX1BYIiwiUkVfUE9TIiwiTEVGVCIsImdldE9mZnNldERpcmVjdGlvbiIsInVzZUNzc1JpZ2h0IiwidXNlQ3NzQm90dG9tIiwib3Bwb3NpdGVPZmZzZXREaXJlY3Rpb24iLCJzZXRMZWZ0VG9wIiwicHJlc2V0SCIsInByZXNldFYiLCJob3Jpem9udGFsUHJvcGVydHkiLCJ2ZXJ0aWNhbFByb3BlcnR5Iiwib3Bwb3NpdGVIb3Jpem9udGFsUHJvcGVydHkiLCJvcHBvc2l0ZVZlcnRpY2FsUHJvcGVydHkiLCJvcmlnaW5hbFRyYW5zaXRpb24iLCJvcmlnaW5hbE9mZnNldCIsIm9sZCIsInByZXNldCIsIl9kaXIiLCJfb2ZmIiwib3JpZ2luYWxYWSIsIm1hdHJpeCIsImdldFRyYW5zZm9ybVhZIiwicmVzdWx0WFkiLCJ4eSIsIm1hdGNoMmQiLCJzZXRUcmFuc2Zvcm1YWSIsImlzQm9yZGVyQm94Rm4iLCJjcyIsImNvbXB1dGVkU3R5bGUiLCJyc0xlZnQiLCJwaXhlbExlZnQiLCJCT1hfTU9ERUxTIiwic3dhcCIsImdldFBCTVdpZHRoIiwiY3NzUHJvcCIsImRvbVV0aWxzIiwiZ2V0V0giLCJleCIsImV4dHJhIiwidmlld3BvcnRXaWR0aCIsInZpZXdwb3J0SGVpZ2h0IiwiZG9jV2lkdGgiLCJkb2NIZWlnaHQiLCJib3JkZXJCb3hWYWx1ZSIsImlzQm9yZGVyQm94IiwiY3NzQm94VmFsdWUiLCJib3JkZXJCb3hWYWx1ZU9ySXNCb3JkZXJCb3giLCJyZWZXaW4iLCJ3aW4iLCJkb2N1bWVudEVsZW1lbnRQcm9wIiwiY29tcGF0TW9kZSIsImNzc1Nob3ciLCJ2aXNpYmlsaXR5IiwiZ2V0V0hJZ25vcmVEaXNwbGF5Iiwib2Zmc2V0V2lkdGgiLCJmaXJzdCIsImluY2x1ZGVNYXJnaW4iLCJ1dGlscyIsImdldFdpbmRvdyIsIm9yaU9mZnNldCIsIm9MZWZ0Iiwib1RvcCIsInRMZWZ0IiwidFRvcCIsInVzZUNzc1RyYW5zZm9ybSIsInNldE9mZnNldCIsImdldFdpbmRvd1Njcm9sbExlZnQiLCJnZXRXaW5kb3dTY3JvbGxUb3AiLCJtZXJnZSIsIl9rZXkzIiwicG9zaXRpb25TdHlsZSIsInZpc2libGVSZWN0IiwibmF2aWdhdG9yIiwidXNlckFnZW50Iiwib3JpZ2luYWxQb3NpdGlvbiIsInNjcm9sbFgiLCJzY3JvbGxZIiwiZG9jdW1lbnRXaWR0aCIsInNjcm9sbFdpZHRoIiwiZG9jdW1lbnRIZWlnaHQiLCJib2R5U3R5bGUiLCJpbm5lcldpZHRoIiwiaW5uZXJIZWlnaHQiLCJpc0FuY2VzdG9yRml4ZWQiLCJtYXhWaXNpYmxlV2lkdGgiLCJtYXhWaXNpYmxlSGVpZ2h0IiwiZWxGdXR1cmVQb3MiLCJlbFJlZ2lvbiIsInJlc2l6ZVdpZHRoIiwicmVzaXplSGVpZ2h0Iiwib3V0ZXJXaWR0aCIsIm91dGVySGVpZ2h0IiwicmVnaW9uIiwicmVmTm9kZVJlZ2lvbiIsImlzRmFpbFgiLCJpc0ZhaWxZIiwiZmxpcE9mZnNldCIsImNvbnZlcnRPZmZzZXQiLCJvZmZzZXRMZW4iLCJub3JtYWxpemVPZmZzZXQiLCJ0Z3RSZWdpb24iLCJpc1RndFJlZ2lvblZpc2libGUiLCJuZXdPdmVyZmxvd0NmZyIsImZhaWwiLCJuZXdFbFJlZ2lvbiIsIm5ld1BvaW50cyIsIm5ld09mZnNldCIsIm5ld1RhcmdldE9mZnNldCIsImlzQ29tcGxldGVGYWlsWCIsIl9uZXdQb2ludHMiLCJfbmV3T2Zmc2V0IiwiX25ld1RhcmdldE9mZnNldCIsImlzQ29tcGxldGVGYWlsWSIsImlzU3RpbGxGYWlsWCIsImlzU3RpbGxGYWlsWSIsImFsaWduRWxlbWVudCIsInJlZk5vZGUiLCJpc1RhcmdldE5vdE91dE9mVmlzaWJsZSIsInRhcmdldFJlZ2lvbiIsImlzT3V0T2ZWaXNpYmxlUmVjdCIsIl9fZ2V0T2Zmc2V0UGFyZW50IiwiX19nZXRWaXNpYmxlUmVjdEZvckVsZW1lbnQiLCJ0Z3RQb2ludCIsInBvaW50SW5WaWV3IiwiaXNTaW1pbGFyVmFsdWUiLCJpbnQxIiwiaW50MiIsInJlc3RvcmVGb2N1cyIsImdldEVsZW1lbnQiLCJnZXRQb2ludCIsIkFsaWduIiwiZm9yY2VBbGlnbiIsIm9uQWxpZ24iLCJtb25pdG9yV2luZG93UmVzaXplIiwic3RhcnRNb25pdG9yV2luZG93UmVzaXplIiwicmVBbGlnbiIsInNvdXJjZVJlY3QiLCJsYXN0RWxlbWVudCIsImxhc3RQb2ludCIsImN1cnJlbnRQb2ludCIsInByZVJlY3QiLCJzdG9wTW9uaXRvcldpbmRvd1Jlc2l6ZSIsInJlc2l6ZUhhbmRsZXIiLCJidWZmZXJNb25pdG9yIiwidGltZXIiLCJidWZmZXJGbiIsImJ1ZmZlciIsIm1vbml0b3JCdWZmZXJUaW1lIiwiY2hpbGRyZW5Qcm9wcyIsIm5ld1Byb3BzIiwiTGF6eVJlbmRlckJveCIsImhpZGRlbkNsYXNzTmFtZSIsIlBvcHVwSW5uZXIiLCJvbk1vdXNlRW50ZXIiLCJvbk1vdXNlTGVhdmUiLCJvbk1vdXNlRG93biIsIm9uVG91Y2hTdGFydCIsIlBvcHVwIiwic3RyZXRjaENoZWNrZWQiLCJ0YXJnZXRXaWR0aCIsInRhcmdldEhlaWdodCIsInNhdmVQb3B1cFJlZiIsInNhdmVBbGlnblJlZiIsInJvb3ROb2RlIiwic2V0U3RyZXRjaFNpemUiLCJwb3B1cEluc3RhbmNlIiwiZ2V0TWFza1RyYW5zaXRpb25OYW1lIiwibWFza1RyYW5zaXRpb25OYW1lIiwibWFza0FuaW1hdGlvbiIsImdldENsYXNzTmFtZSIsImN1cnJlbnRBbGlnbkNsYXNzTmFtZSIsImdldFBvcHVwRWxlbWVudCIsIl9zdGF0ZSIsImdldENsYXNzTmFtZUZyb21BbGlnbiIsImRlc3Ryb3lQb3B1cE9uSGlkZSIsInN0cmV0Y2giLCJzaXplU3R5bGUiLCJtaW5XaWR0aCIsImFsaWduSW5zdGFuY2UiLCJwb3B1cElubmVyUHJvcHMiLCJnZXRaSW5kZXhTdHlsZSIsImdldEFsaWduVGFyZ2V0IiwieFZpc2libGUiLCJnZXRNYXNrRWxlbWVudCIsIm1hc2tFbGVtZW50IiwibWFzayIsIm1hc2tUcmFuc2l0aW9uIiwiZ2V0Um9vdERvbU5vZGUiLCJwb3B1cERvbU5vZGUiLCJfcHJvcHMyIiwiX3N0YXRlMiIsIiRlbGUiLCJnZXRUYXJnZXRFbGVtZW50IiwiQUxMX0hBTkRMRVJTIiwiSVNfUkVBQ1RfMTYiLCJyY1RyaWdnZXIiLCJvblBvcHVwTW91c2VEb3duIiwiVHJpZ2dlciIsInBvcHVwVmlzaWJsZSIsImRlZmF1bHRQb3B1cFZpc2libGUiLCJwcmV2UG9wdXBWaXNpYmxlIiwiZmlyZUV2ZW50cyIsImFmdGVyUG9wdXBWaXNpYmxlQ2hhbmdlIiwiY3VycmVudERvY3VtZW50IiwiY2xpY2tPdXRzaWRlSGFuZGxlciIsImlzQ2xpY2tUb0hpZGUiLCJpc0NvbnRleHRNZW51VG9TaG93Iiwib25Eb2N1bWVudENsaWNrIiwidG91Y2hPdXRzaWRlSGFuZGxlciIsImNvbnRleHRNZW51T3V0c2lkZUhhbmRsZXIxIiwib25Db250ZXh0TWVudUNsb3NlIiwiY29udGV4dE1lbnVPdXRzaWRlSGFuZGxlcjIiLCJjbGVhck91dHNpZGVIYW5kbGVyIiwiY2xlYXJEZWxheVRpbWVyIiwibW91c2VEb3duVGltZW91dCIsImdldFBvcHVwQWxpZ24iLCJwb3B1cFBsYWNlbWVudCIsInBvcHVwQWxpZ24iLCJwbGFjZW1lbnRTdHIiLCJiYXNlQWxpZ24iLCJnZXRBbGlnbkZyb21QbGFjZW1lbnQiLCJzZXRQb3B1cFZpc2libGUiLCJhbGlnblBvaW50Iiwib25Qb3B1cFZpc2libGVDaGFuZ2UiLCJzZXRQb2ludCIsImRlbGF5U2V0UG9wdXBWaXNpYmxlIiwiZGVsYXlTIiwiZGVsYXlUaW1lciIsImNyZWF0ZVR3b0NoYWlucyIsImNoaWxkUHJvcyIsImlzQ2xpY2tUb1Nob3ciLCJzaG93QWN0aW9uIiwiX3Byb3BzMyIsImhpZGVBY3Rpb24iLCJpc01vdXNlRW50ZXJUb1Nob3ciLCJfcHJvcHM0IiwiaXNNb3VzZUxlYXZlVG9IaWRlIiwiX3Byb3BzNSIsImlzRm9jdXNUb1Nob3ciLCJfcHJvcHM2IiwiaXNCbHVyVG9IaWRlIiwiX3Byb3BzNyIsImZvcmNlUG9wdXBBbGlnbiIsImNoaWxkQ2FsbGJhY2siLCJfcHJvcHM4IiwibmV3Q2hpbGRQcm9wcyIsIm9uQ29udGV4dE1lbnUiLCJvbk1vdXNlTW92ZSIsImNoaWxkcmVuQ2xhc3NOYW1lIiwicG9ydGFsIiwiaGFuZGxlUG9ydGFsVXBkYXRlIiwiZ2V0UG9wdXBDbGFzc05hbWVGcm9tQWxpZ24iLCJwb3B1cCIsInBvcHVwU3R5bGUiLCJwb3B1cENsYXNzTmFtZSIsInBvcHVwVHJhbnNpdGlvbk5hbWUiLCJwb3B1cEFuaW1hdGlvbiIsImZvY3VzRGVsYXkiLCJibHVyRGVsYXkiLCJtYXNrQ2xvc2FibGUiLCJvblBvcHVwTW91c2VFbnRlciIsIm9uUG9wdXBNb3VzZUxlYXZlIiwiZm9jdXNUaW1lIiwicHJlQ2xpY2tUaW1lIiwicHJlVG91Y2hUaW1lIiwicHJlVGltZSIsIm5leHRWaXNpYmxlIiwiX2NvbnRleHQkcmNUcmlnZ2VyIiwiaGFzUG9wdXBNb3VzZURvd24iLCJfcHJvcHM5IiwiZ2V0QWxpZ25Qb3B1cENsYXNzTmFtZSIsIl9wcm9wczEwIiwibW91c2VQcm9wcyIsInNhdmVQb3B1cCIsInBvcHVwQ29udGFpbmVyIiwiQ29udGVudCIsImFycm93Q29udGVudCIsInNhdmVUcmlnZ2VyIiwib3ZlcmxheUNsYXNzTmFtZSIsImFmdGVyVmlzaWJsZUNoYW5nZSIsImV4dHJhUHJvcHMiLCJOb3RpY2UiLCJjbGVhckNsb3NlVGltZXIiLCJzdGFydENsb3NlVGltZXIiLCJjbG9zZVRpbWVyIiwidXBkYXRlIiwicmVzdGFydENsb3NlVGltZXIiLCJfY2xhc3NOYW1lIiwiY29tcG9uZW50Q2xhc3MiLCJzZWVkIiwiZ2V0VXVpZCIsIk5vdGlmaWNhdGlvbiIsIm5vdGljZXMiLCJtYXhDb3VudCIsInByZXZpb3VzU3RhdGUiLCJub3RpY2VJbmRleCIsInVwZGF0ZWROb3RpY2VzIiwidXBkYXRlS2V5Iiwibm90aWNlTm9kZXMiLCJjcmVhdGVDaGFpbmVkRnVuY3Rpb24iLCJkaXYiLCJjYWxsZWQiLCJub3RpY2VQcm9wcyJdLCJtYXBwaW5ncyI6ImFBQ0UsSUFBSUEsRUFBbUIsR0FHdkIsU0FBU0MsRUFBb0JDLEdBRzVCLEdBQUdGLEVBQWlCRSxHQUNuQixPQUFPRixFQUFpQkUsR0FBVUMsUUFHbkMsSUFBSUMsRUFBU0osRUFBaUJFLEdBQVksQ0FDekNHLEVBQUdILEVBQ0hJLEdBQUcsRUFDSEgsUUFBUyxJQVVWLE9BTkFJLEVBQVFMLEdBQVVNLEtBQUtKLEVBQU9ELFFBQVNDLEVBQVFBLEVBQU9ELFFBQVNGLEdBRy9ERyxFQUFPRSxHQUFJLEVB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VUFBVyxJQUNYLE9BQVEsSUFDUixVQUFXLElBQ1gsT0FBUSxJQUNSLFVBQVcsSUFDWCxhQUFjLElBQ2QsVUFBVyxJQUNYLE9BQVEsSUFDUixVQUFXLElBQ1gsT0FBUSxJQUNSLFVBQVcsSUFDWCxPQUFRLElBQ1IsVUFBVyxJQUNYLE9BQVEsSUFDUixVQUFXLElBQ1gsT0FBUSxJQUNSLFVBQVcsSUFDWCxPQUFRLElBQ1IsVUFBVyxJQUNYLE9BQVEsSUFDUixVQUFXLElBQ1gsT0FBUSxJQUNSLFVBQVcsSUFDWCxPQUFRLElBQ1IsVUFBVyxJQUNYLE9BQVEsSUFDUixVQUFXLElBQ1gsT0FBUSxJQUNSLFVBQVcsSUFDWCxPQUFRLElBQ1IsVUFBVyxJQUNYLE9BQVEsSUFDUixVQUFXLElBQ1gsT0FBUSxJQUNSLFVBQVcsSUFDWCxPQUFRLElBQ1IsVUFBVyxJQUNYLE9BQVEsSUFDUixVQUFXLElBQ1gsT0FBUSxJQUNSLFVBQVcsSUFDWCxPQUFRLElBQ1IsVUFBVyxJQUNYLE9BQVEsSUFDUixVQUFXLElBQ1gsT0FBUSxJQUNSLFVBQVcsSUFDWCxhQUFjLElBQ2QsVUFBVyxJQUNYLE9BQVEsSUFDUixVQUFXLElBQ1gsT0FBUSxJQUNSLFVBQVcsSUFDWCxPQUFRLElBQ1IsVUFBVyxJQUNYLE9BQVEsSUFDUixVQUFXLElBQ1gsT0FBUSxJQUNSLFVBQVcsSUFDWCxhQUFjLElBQ2QsVUFBVyxJQUNYLE9BQVEsSUFDUixVQUFXLElBQ1gsV0FBWSxJQUNaLGNBQWUsSUFDZixVQUFXLElBQ1gsYUFBYyxJQUNkLE9BQVEsSUFDUixVQUFXLElBQ1gsT0FBUSxJQUNSLFVBQVcsSUFDWCxhQUFjLElBQ2QsVUFBVyxJQUNYLE9BQVEsSUFDUixVQUFXLElBQ1gsT0FBUSxJQUNSLFVBQVcsSUFDWCxPQUFRLElBQ1IsVUFBVyxJQUNYLE9BQVEsSUFDUixVQUFXLElBQ1gsT0FBUSxJQUNSLFVBQVcsSUFDWCxPQUFRLElBQ1IsVUFBVyxJQUNYLE9BQVEsSUFDUixVQUFXLElBQ1gsT0FBUSxJQUNSLFVBQVcsSUFDWCxPQUFRLElBQ1Is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LE9BQVEsUUFBUyxTQUFVLEtBQU0sS0FBTSxLQUFNLFVBQVcsS0FBTSxNQUFPLFNBQVUsUUFBUyxNQUFPLFVBQVcsTUFBTyxNQUFPLE1BQU8sUUFBUyxXQUFZLFFBQVMsTUFBTyxPQUFRLFNBQVUsUUFBUyxRQUFTLFFBQVMsUUFBUyxTQUFVLFFBQVMsT0FBUSxRQUFTLFVBQVcsT0FBUSxPQUFRLE9BQVEsT0FBUSxPQUFRLFFBQVMsT0FBUSxPQUFRLE9BQVEsT0FBUSxPQUFRLFNBQVUsT0FBUSxRQUFTLFFBQVMsUUFBUyxPQUFRLFFBQVMsS0FBTSxPQUFRLE1BQU8sUUFBUyxTQUFVLFFBQVMsT0FBUSxRQUFTLE1BQU8sTUFBTyxLQUFNLE1BQU8sTUFBTyxNQUFPLFNBQVUsTUFBTyxPQUFRLFFBQVMsS0FBTSxRQUFTLEtBQU0sS0FBTSxNQUFPLE1BQU8sT0FBUSxPQUFRLE9BQVEsUUFBUyxTQUFVLE9BQVEsT0FBUSxRQUFTLFFBQVMsU0FBVSxTQUFVLE9BQVEsT0FBUSxNQUFPLFNBQVUsUUFBUyxTQUFVLFNBQ3pvRUMsRUFBYSxDQUFDLEdBQUksSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssR0FBSSxHQUFJLEdBQUksR0FBSSxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLEtBQU0sS0FBTSxLQUFNLEtBQU0sS0FBTSxLQUFNLEtBQU0sS0FBTSxLQUFNLEtBQU0sS0FBTSxLQUFNLEtBQU0sS0FBTSxLQUFNLEtBQU0sS0FBTSxLQUFNLEtBQU0sS0FBTSxLQUFNLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxJQUFLLElBQUssSUFBSyxLQUFNLEtBQU0sS0FBTSxLQUFNLEtBQU0sS0FBTSxLQUFNLEtBQU0sS0FBTSxLQUFNLEtBQU0sS0FBTSxLQUFNLEtBQU0sS0FBTSxLQUFNLEtBQU0sS0FBTSxLQUFNLEtBQU0sS0FBTSxLQUFNLEtBQU0sS0FBTSxLQUFNLEtBQU0sS0FBTSxLQUFNLEtBQU0sS0FBTSxLQUFNLEtBQU0sS0FBTSxLQUFNLEtBQU0sS0FBTSxLQUFNLEtBQU0sS0FBTSxLQUFNLEtBQU0sS0FBTSxLQUFNLEtBQU0sS0FBTSxLQUFNLEtBQU0sS0FBTSxLQUFNLEtBQU0sS0FBTSxLQUFNLEtBQU0sS0FBTSxLQUFNLEtBQU0sS0FBTSxLQUFNLEtBQU0sS0FBTSxLQUFNLEtBQU0sS0FBTSxLQUFNLEtBQU0sS0FBTSxLQUFNLEtBQU0sS0FBTSxLQUFNLE1BQ2gxQ0MsRUFBYSxHQUNiQyxFQUFXLElBQ2YsV0FHSSxJQUZBLElBQUkxc0osRUFBSSxFQUNKZ0QsRUFBU3VwSixFQUFX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QUFDLFNBQVUsQ0FBQyxNQUFPLENBQUMsU0FBVSxDQUFDLE1BQU8sQ0FBQyxTQUFVLENBQUMsTUFBTyxDQUFDLFNBQVUsQ0FBQyxNQUFPLENBQUMsS0FBTSxDQUFDLE9BQVEsQ0FBQyxNQUFPLENBQUMsT0FBUSxDQUFDLE1BQU8sQ0FBQyxLQUFNLE1BQU8sQ0FBQyxRQUFTLENBQUMsTUFBTyxDQUFDLFFBQVMsQ0FBQyxNQUFPLENBQUMsUUFBUyxDQUFDLE1BQU8sQ0FBQyxNQUFPLENBQUMsT0FBUSxDQUFDLE1BQU8sQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE1BQU8sQ0FBQyxRQUFTLENBQUMsTUFBTyxDQUFDLEtBQU0sQ0FBQyxPQUFRLENBQUMsTUFBTyxDQUFDLFNBQVUsQ0FBQyxNQUFPLENBQUMsU0FBVSxDQUFDLFNBQVUsQ0FBQyxNQUFPLENBQUMsU0FBVSxDQUFDLE1BQU8sQ0FBQyxVQUFXLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE1BQU8sQ0FBQyxRQUFTLENBQUMsTUFBTyxDQUFDLFFBQVMsQ0FBQyxNQUFPLENBQUMsUUFBUyxDQUFDLE1BQU8sQ0FBQyxRQUFTLENBQUMsUUFBUyxDQUFDLE1BQU8sQ0FBQyxLQUFNLENBQUMsTUFBTyxDQUFDLEtBQU0sQ0FBQyxTQUFVLENBQUMsUUFBUyxDQUFDLE1BQU8sQ0FBQyxRQUFTLENBQUMsTUFBTyxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLFdBQVksQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxNQUFPLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxXQUFZLENBQUMsUUFBUyxDQUFDLFdBQVksQ0FBQyxRQUFTLENBQUMsV0FBWSxDQUFDLFFBQVMsQ0FBQyxXQUFZLENBQUMsUUFBUyxDQUFDLFdBQVksQ0FBQyxRQUFTLENBQUMsV0FBWSxDQUFDLFFBQVMsQ0FBQyxXQUFZLENBQUMsUUFBUyxDQUFDLFdBQVksQ0FBQyxRQUFTLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFVBQVcsQ0FBQyxPQUFRLENBQUMsV0FBWSxDQUFDLFFBQVMsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxNQUFPLENBQUMsVUFBVyxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsTUFBTyxDQUFDLFFBQVMsQ0FBQyxNQUFPLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLFNBQVUsQ0FBQyxRQUFTLENBQUMsS0FBTSxDQUFDLE9BQVEsQ0FBQyxNQUFPLENBQUMsUUFBUyxDQUFDLE1BQU8sQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsS0FBTSxDQUFDLGdCQUFpQixDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLFdBQVksQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE1BQU8sQ0FBQyxRQUFTLENBQUMsTUFBTyxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLE1BQU8sQ0FBQyxLQUFNLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxVQUFXLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxNQUFPLENBQUMsU0FBVSxDQUFDLE1BQU8sQ0FBQyxPQUFRLENBQUMsTUFBTyxDQUFDLE9BQVEsQ0FBQyxNQUFPLENBQUMsV0FBWSxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsUUFBUyxDQUFDLFdBQVksQ0FBQyxPQUFRLENBQUMsY0FBZSxDQUFDLE9BQVEsQ0FBQyxZQUFhLENBQUMsT0FBUSxDQUFDLFVBQVcsQ0FBQyxPQUFRLENBQUMsWUFBYSxDQUFDLE9BQVEsQ0FBQyxZQUFhLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsV0FBWSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLFdBQVksQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxNQUFPLENBQUMsT0FBUSxDQUFDLE1BQU8sQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLFVBQVcsQ0FBQyxPQUFRLENBQUMsVUFBVyxDQUFDLE9BQVEsQ0FBQyxVQUFXLENBQUMsUUFBUyxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxhQUFjLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxNQUFPLENBQUMsT0FBUSxDQUFDLE1BQU8sQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLFVBQVcsQ0FBQyxPQUFRLENBQUMsTUFBTyxDQUFDLFNBQVUsQ0FBQyxNQUFPLENBQUMsU0FBVSxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsVUFBVyxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLFVBQVcsQ0FBQyxRQUFTLENBQUMsV0FBWSxDQUFDLFFBQVMsQ0FBQyxZQUFhLENBQUMsUUFBUyxDQUFDLFdBQVksQ0FBQyxRQUFTLENBQUMsVUFBVyxDQUFDLE9BQVEsQ0FBQyxrQkFBbUIsQ0FBQyxPQUFRLENBQUMsZ0JBQWlCLENBQUMsT0FBUSxDQUFDLFdBQVksQ0FBQyxRQUFTLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxXQUFZLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxRQUFTLENBQUMsZUFBZ0IsQ0FBQyxRQUFTLENBQUMsY0FBZSxDQUFDLE9BQVEsQ0FBQyxnQkFBaUIsQ0FBQyxPQUFRLENBQUMsb0JBQXFCLENBQUMsT0FBUSxDQUFDLG9CQUFxQixDQUFDLE9BQVEsQ0FBQyxxQkFBc0IsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLE1BQU8sQ0FBQyxHQUFJLE9BQVEsQ0FBQyxVQUFXLENBQUMsS0FBTSxPQUFRLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxNQUFPLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsUUFBUyxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFdBQVksQ0FBQyxPQUFRLENBQUMsVUFBVyxDQUFDLE9BQVEsQ0FBQyxXQUFZLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsTUFBTyxDQUFDLFFBQVMsQ0FBQyxNQUFPLENBQUMsU0FBVSxDQUFDLE1BQU8sQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsS0FBTSxDQUFDLFdBQVksQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLFFBQVMsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsTUFBTyxDQUFDLFNBQVUsQ0FBQyxNQUFPLENBQUMsU0FBVSxDQUFDLFFBQVMsQ0FBQyxXQUFZLENBQUMsUUFBUyxDQUFDLFNBQVUsQ0FBQyxRQUFTLENBQUMsTUFBTyxDQUFDLE9BQVEsQ0FBQyxNQUFPLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxRQUFTLENBQUMsU0FBVSxDQUFDLFFBQVMsQ0FBQyx1QkFBd0IsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLEtBQU0sUUFBUyxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE1BQU8sQ0FBQyxVQUFXLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxRQUFTLENBQUMsU0FBVSxDQUFDLE1BQU8sQ0FBQyxTQUFVLENBQUMsTUFBTyxDQUFDLFNBQVUsQ0FBQyxNQUFPLENBQUMsU0FBVSxDQUFDLE1BQU8sQ0FBQyxRQUFTLENBQUMsTUFBTyxDQUFDLFFBQVMsQ0FBQyxNQUFPLENBQUMsVUFBVyxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsUUFBUyxDQUFDLFVBQVcsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLE1BQU8sQ0FBQyxPQUFRLENBQUMsTUFBTyxDQUFDLFFBQVMsQ0FBQyxNQUFPLENBQUMsVUFBVyxDQUFDLE1BQU8sQ0FBQyxVQUFXLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxNQUFPLENBQUMsWUFBYSxDQUFDLE1BQU8sQ0FBQyxZQUFhLENBQUMsTUFBTyxDQUFDLE1BQU8sQ0FBQyxTQUFVLENBQUMsTUFBTyxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLFFBQVMsQ0FBQyxZQUFhLENBQUMsUUFBUyxDQUFDLE1BQU8sQ0FBQyxNQUFPLENBQUMsTUFBTyxDQUFDLE1BQU8sQ0FBQyxPQUFRLENBQUMsTUFBTyxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsa0JBQW1CLENBQUMsT0FBUSxDQUFDLG1CQUFvQixDQUFDLE9BQVEsQ0FBQyxhQUFjLENBQUMsT0FBUSxDQUFDLGNBQWUsQ0FBQyxPQUFRLENBQUMsY0FBZSxDQUFDLE9BQVEsQ0FBQyxZQUFhLENBQUMsT0FBUSxDQUFDLFdBQVksQ0FBQyxNQUFPLENBQUMsV0FBWSxDQUFDLE9BQVEsQ0FBQyxjQUFlLENBQUMsT0FBUSxDQUFDLGFBQWMsQ0FBQyxPQUFRLENBQUMsY0FBZSxDQUFDLE9BQVEsQ0FBQyxNQUFPLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxXQUFZLENBQUMsUUFBUyxDQUFDLFNBQVUsQ0FBQyxRQUFTLENBQUMsVUFBVyxDQUFDLFFBQVMsQ0FBQywyQkFBNEIsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxXQUFZLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxLQUFNLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsUUFBUyxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsVUFBVyxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsS0FBTSxDQUFDLFNBQVUsQ0FBQyxLQUFNLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLGFBQWMsQ0FBQyxPQUFRLENBQUMsWUFBYSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLFVBQVcsQ0FBQyxRQUFTLENBQUMsWUFBYSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsa0JBQW1CLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLFlBQWEsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLE1BQU8sQ0FBQyxPQUFRLENBQUMsTUFBTyxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsa0NBQW1DLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLFFBQVMsQ0FBQyxRQUFTLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLFFBQVMsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxRQUFTLENBQUMsUUFBUyxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsVUFBVyxDQUFDLFFBQVMsQ0FBQyxVQUFXLENBQUMsUUFBUyxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLFVBQVcsQ0FBQyxRQUFTLENBQUMsV0FBWSxDQUFDLFFBQVMsQ0FBQyxTQUFVLENBQUMsUUFBUyxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsTUFBTyxDQUFDLE9BQVEsQ0FBQyxNQUFPLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxRQUFTLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxLQUFNLFFBQVMsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLFVBQVcsQ0FBQyxRQUFTLENBQUMsY0FBZSxDQUFDLE9BQVEsQ0FBQyxjQUFlLENBQUMsT0FBUSxDQUFDLFdBQVksQ0FBQyxPQUFRLENBQUMsYUFBYyxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsTUFBTyxDQUFDLGlCQUFrQixDQUFDLE9BQVEsQ0FBQyxrQkFBbUIsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFdBQVksQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLFFBQVMsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFVBQVcsQ0FBQyxRQUFTLENBQUMsUUFBUyxDQUFDLE1BQU8sQ0FBQyxTQUFVLENBQUMsTUFBTyxDQUFDLFNBQVUsQ0FBQyxNQUFPLENBQUMsTUFBTyxDQUFDLE9BQVEsQ0FBQyxNQUFPLENBQUMsT0FBUSxDQUFDLFVBQVcsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxLQUFNLENBQUMsT0FBUSxDQUFDLEtBQU0sQ0FBQyxPQUFRLENBQUMsV0FBWSxDQUFDLFFBQVMsQ0FBQyxVQUFXLENBQUMsUUFBUyxDQUFDLE1BQU8sQ0FBQyxNQUFPLENBQUMsTUFBTyxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsTUFBTyxDQUFDLFFBQVMsQ0FBQyxNQUFPLENBQUMs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LENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsUUFBUyxDQUFDLFVBQVcsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLFdBQVksQ0FBQyxRQUFTLENBQUMsU0FBVSxDQUFDLE1BQU8sQ0FBQyxTQUFVLENBQUMsTUFBTyxDQUFDLFNBQVUsQ0FBQyxRQUFTLENBQUMsU0FBVSxDQUFDLE1BQU8sQ0FBQyxTQUFVLENBQUMsTUFBTyxDQUFDLFFBQVMsQ0FBQyxNQUFPLENBQUMsUUFBUyxDQUFDLE1BQU8sQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsTUFBTyxDQUFDLE9BQVEsQ0FBQyxNQUFPLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLE1BQU8sQ0FBQyxPQUFRLENBQUMsTUFBTyxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsS0FBTSxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLE1BQU8sQ0FBQyxTQUFVLENBQUMsTUFBTyxDQUFDLFNBQVUsQ0FBQyxLQUFNLENBQUMsUUFBUyxDQUFDLFNBQVUsQ0FBQyxNQUFPLENBQUMsU0FBVSxDQUFDLE1BQU8sQ0FBQyxNQUFPLENBQUMsUUFBUyxDQUFDLFNBQVUsQ0FBQyxRQUFTLENBQUMsS0FBTSxDQUFDLFFBQVMsQ0FBQyxVQUFXLENBQUMsT0FBUSxDQUFDLFdBQVksQ0FBQyxPQUFRLENBQUMsTUFBTyxDQUFDLE9BQVEsQ0FBQyxNQUFPLENBQUMsUUFBUyxDQUFDLFNBQVUsQ0FBQyxRQUFTLENBQUMsUUFBUyxDQUFDLE1BQU8sQ0FBQyxRQUFTLENBQUMsTUFBTyxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsV0FBWSxDQUFDLE9BQVEsQ0FBQyxtQkFBb0IsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyx1QkFBd0IsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsTUFBTyxDQUFDLE1BQU8sQ0FBQyxNQUFPLENBQUMsTUFBTyxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE1BQU8sQ0FBQyxRQUFTLENBQUMsTUFBTyxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxRQUFTLENBQUMsUUFBUyxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsTUFBTyxDQUFDLFVBQVcsQ0FBQyxNQUFPLENBQUMsVUFBVyxDQUFDLE1BQU8sQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsVUFBVyxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLGFBQWMsQ0FBQyxRQUFTLENBQUMsY0FBZSxDQUFDLFFBQVMsQ0FBQyxRQUFTLENBQUMsUUFBUyxDQUFDLFNBQVUsQ0FBQyxLQUFNLENBQUMsYUFBYyxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLGNBQWUsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxVQUFXLENBQUMsUUFBUyxDQUFDLFdBQVksQ0FBQyxRQUFTLENBQUMsUUFBUyxDQUFDLFFBQVMsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxNQUFPLENBQUMsTUFBTyxDQUFDLE1BQU8sQ0FBQyxNQUFPLENBQUMsTUFBTyxDQUFDLE1BQU8sQ0FBQyxNQUFPLENBQUMsTUFBTyxDQUFDLE9BQVEsQ0FBQyxNQUFPLENBQUMsT0FBUSxDQUFDLE1BQU8sQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxLQUFNLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLGNBQWUsQ0FBQyxPQUFRLENBQUMsZUFBZ0IsQ0FBQyxPQUFRLENBQUMsZUFBZ0IsQ0FBQyxPQUFRLENBQUMsZ0JBQWlCLENBQUMsT0FBUSxDQUFDLE1BQU8sQ0FBQyxPQUFRLENBQUMsTUFBTyxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxRQUFTLENBQUMsUUFBUyxDQUFDLFFBQVMsQ0FBQyxTQUFVLENBQUMsUUFBUyxDQUFDLE1BQU8sQ0FBQyxTQUFVLENBQUMsTUFBTyxDQUFDLFNBQVUsQ0FBQyxRQUFTLENBQUMsUUFBUyxDQUFDLG9CQUFxQixDQUFDLE9BQVEsQ0FBQyx3QkFBeUIsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLElBQUssTUFBTyxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLFFBQVMsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxNQUFPLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxRQUFTLENBQUMsYUFBYyxDQUFDLE9BQVEsQ0FBQyxXQUFZLENBQUMsUUFBUyxDQUFDLFNBQVUsQ0FBQyxNQUFPLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsTUFBTyxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsTUFBTyxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE1BQU8sQ0FBQyxRQUFTLENBQUMsTUFBTyxDQUFDLFFBQVMsQ0FBQyxNQUFPLENBQUMsU0FBVSxDQUFDLE1BQU8sQ0FBQyxTQUFVLENBQUMsTUFBTyxDQUFDLE1BQU8sQ0FBQyxRQUFTLENBQUMsU0FBVSxDQUFDLE1BQU8sQ0FBQyxTQUFVLENBQUMsTUFBTyxDQUFDLFNBQVUsQ0FBQyxNQUFPLENBQUMsUUFBUyxDQUFDLE1BQU8sQ0FBQyxRQUFTLENBQUMsTUFBTyxDQUFDLE1BQU8sQ0FBQyxPQUFRLENBQUMsTUFBTyxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsTUFBTyxDQUFDLE9BQVEsQ0FBQyxNQUFPLENBQUMsS0FBTSxDQUFDLE9BQVEsQ0FBQyxLQUFNLENBQUMsT0FBUSxDQUFDLE1BQU8sQ0FBQyxRQUFTLENBQUMsTUFBTyxDQUFDLE9BQVEsQ0FBQyxNQUFPLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsV0FBWSxDQUFDLFFBQVMsQ0FBQyxRQUFTLENBQUMsUUFBUyxDQUFDLE1BQU8sQ0FBQyxRQUFTLENBQUMsU0FBVSxDQUFDLFFBQVMsQ0FBQyxVQUFXLENBQUMsUUFBUyxDQUFDLFdBQVksQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLEtBQU0sUUFBUyxDQUFDLFNBQVUsQ0FBQyxRQUFTLENBQUMsTUFBTyxDQUFDLFNBQVUsQ0FBQyxNQUFPLENBQUMsU0FBVSxDQUFDLEtBQU0sQ0FBQyxPQUFRLENBQUMsS0FBTSxDQUFDLE9BQVEsQ0FBQyxNQUFPLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLE1BQU8sQ0FBQyxRQUFTLENBQUMsS0FBTSxDQUFDLE9BQVEsQ0FBQyxNQUFPLENBQUMsUUFBUyxDQUFDLE1BQU8sQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxXQUFZLENBQUMsUUFBUyxDQUFDLE1BQU8sQ0FBQyxRQUFTLENBQUMsTUFBTyxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsUUFBUyxDQUFDLEtBQU0sQ0FBQyxlQUFnQixDQUFDLE9BQVEsQ0FBQyxtQkFBb0IsQ0FBQyxPQUFRLENBQUMsbUJBQW9CLENBQUMsT0FBUSxDQUFDLGlCQUFrQixDQUFDLFFBQVMsQ0FBQyxjQUFlLENBQUMsT0FBUSxDQUFDLG9CQUFxQixDQUFDLFFBQVMsQ0FBQyxlQUFnQixDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsUUFBUyxDQUFDLFFBQVMsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxRQUFTLENBQUMsUUFBUyxDQUFDLEtBQU0sQ0FBQyxLQUFNLENBQUMsS0FBTSxDQUFDLEtBQU0sQ0FBQyxLQUFNLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLFFBQVMsQ0FBQyxVQUFXLENBQUMsUUFBUyxDQUFDLFlBQWEsQ0FBQyxRQUFTLENBQUMsU0FBVSxDQUFDLFFBQVMsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLFlBQWEsQ0FBQyxPQUFRLENBQUMsYUFBYyxDQUFDLFFBQVMsQ0FBQyxVQUFXLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsWUFBYSxDQUFDLEtBQU0sUUFBUyxDQUFDLE9BQVEsQ0FBQyxLQUFNLFFBQVMsQ0FBQyxRQUFTLENBQUMsTUFBTyxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLE1BQU8sQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxVQUFXLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLE1BQU8sQ0FBQyxLQUFNLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsTUFBTyxDQUFDLFFBQVMsQ0FBQyxNQUFPLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxZQUFhLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxNQUFPLENBQUMsU0FBVSxDQUFDLE1BQU8sQ0FBQyxPQUFRLENBQUMsZUFBZ0IsQ0FBQyxPQUFRLENBQUMsV0FBWSxDQUFDLFFBQVMsQ0FBQyxXQUFZLENBQUMsUUFBUyxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxnQkFBaUIsQ0FBQyxPQUFRLENBQUMsaUJBQWtCLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLGlCQUFrQixDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsTUFBTyxDQUFDLFNBQVUsQ0FBQyxNQUFPLENBQUMsZUFBZ0IsQ0FBQyxPQUFRLENBQUMsWUFBYSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE1BQU8sQ0FBQyxTQUFVLENBQUMsTUFBTyxDQUFDLEtBQU0sQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE1BQU8sQ0FBQyxRQUFTLENBQUMsTUFBTyxDQUFDLE1BQU8sQ0FBQyxPQUFRLENBQUMsTUFBTyxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsTUFBTyxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsTUFBTyxDQUFDLE1BQU8sQ0FBQyxPQUFRLENBQUMsTUFBTyxDQUFDLFNBQVUsQ0FBQyxNQUFPLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxNQUFPLENBQUMsU0FBVSxDQUFDLE1BQU8sQ0FBQyxLQUFNLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxRQUFTLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsUUFBUyxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE1BQU8sQ0FBQyxRQUFTLENBQUMsTUFBTyxDQUFDLFFBQVMsQ0FBQyxNQUFPLENBQUMsUUFBUyxDQUFDLE1BQU8sQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLGFBQWMsQ0FBQyxPQUFRLENBQUMsV0FBWSxDQUFDLE9BQVEsQ0FBQyxXQUFZLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxNQUFPLENBQUMsS0FBTSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxNQUFPLENBQUMsVUFBVyxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLEtBQU0sQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxXQUFZLENBQUMsUUFBUyxDQUFDLFNBQVUsQ0FBQyxNQUFPLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxNQUFPLENBQUMsT0FBUSxDQUFDLE1BQU8sQ0FBQyxPQUFRLENBQUMsV0FBWSxDQUFDLE9BQVEsQ0FBQyxXQUFZLENBQUMsT0FBUSxDQUFDLFdBQVksQ0FBQyxPQUFRLENBQUMsZUFBZ0IsQ0FBQyxPQUFRLENBQUMsV0FBWSxDQUFDLFFBQVMsQ0FBQyxVQUFXLENBQUMsUUFBUyxDQUFDLGlCQUFrQixDQUFDLE9BQVEsQ0FBQyxpQkFBa0IsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxNQUFPLENBQUMsUUFBUyxDQUFDLE1BQU8sQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLE1BQU8sQ0FBQyxPQUFRLENBQUMsTUFBTyxDQUFDLFFBQVMsQ0FBQyxRQUFTLENBQUMsU0FBVSxDQUFDLE1BQU8sQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxVQUFXLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsS0FBTSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsTUFBTyxDQUFDLFNBQVUsQ0FBQyxNQUFPLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxNQUFPLENBQUMsT0FBUSxDQUFDLE1BQU8sQ0FBQyxRQUFTLENBQUMsTUFBTyxDQUFDLFFBQVMsQ0FBQyxNQUFPLENBQUMsTUFBTyxDQUFDLE9BQVEsQ0FBQyxNQUFPLENBQUMsT0FBUSxDQUFDLE1BQU8sQ0FBQyxTQUFVLENBQUMsTUFBTyxDQUFDLFNBQVUsQ0FBQyxRQUFTLENBQUMsTUFBTyxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsTUFBTyxDQUFDLFFBQVMsQ0FBQyxNQUFPLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsTUFBTyxDQUFDLFNBQVUsQ0FBQyxNQUFPLENBQUMsTUFBTyxDQUFDLE9BQVEsQ0FBQyxNQUFPLENBQUMsT0FBUSxDQUFDLE1BQU8sQ0FBQyxTQUFVLENBQUMsTUFBTyxDQUFDLFNBQVUsQ0FBQyxTQUFVLENBQUMsTUFBTyxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLE9BQVUsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxNQUFPLENBQUMsU0FBVSxDQUFDLE1BQU8sQ0FBQyxXQUFZLENBQUMsUUFBUyxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE1BQU8sQ0FBQyxTQUFVLENBQUMsTUFBTyxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxRQUFTLENBQUMsUUFBUyxDQUFDLFNBQVUsQ0FBQyxRQUFTLENBQUMsTUFBTyxDQUFDLFFBQVMsQ0FBQyxhQUFjLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxNQUFPLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxVQUFXLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxRQUFTLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxRQUFTLENBQUMsVUFBVyxDQUFDLFFBQVMsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxRQUFTLENBQUMsU0FBVSxDQUFDLFFBQVMsQ0FBQyxNQUFPLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsUUFBUyxDQUFDLE1BQU8sUUFBUyxDQUFDLFFBQVMsQ0FBQyxRQUFTLENBQUMsUUFBUyxDQUFDLFFBQVMsQ0FBQyxRQUFTLENBQUMsUUFBUyxDQUFDLFNBQVUsQ0FBQyxNQUFPLENBQUMsU0FBVSxDQUFDLEtBQU0sQ0FBQyxRQUFTLENBQUMsUUFBUyxDQUFDLFVBQVcsQ0FBQyxRQUFT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Q0FBQyxPQUFRLENBQUMsa0JBQW1CLENBQUMsT0FBUSxDQUFDLE1BQU8sQ0FBQyxPQUFRLENBQUMsVUFBVyxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxLQUFNLENBQUMsU0FBVSxDQUFDLFFBQVMsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFdBQVksQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsUUFBUyxDQUFDLE1BQU8sQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxNQUFPLENBQUMsT0FBUSxDQUFDLE1BQU8sQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsUUFBUyxDQUFDLFFBQVMsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLEtBQU0sQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE1BQU8sQ0FBQyxTQUFVLENBQUMsTUFBTyxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsUUFBUyxDQUFDLFFBQVMsQ0FBQyxLQUFNLENBQUMsS0FBTSxDQUFDLEtBQU0sQ0FBQyxLQUFNLENBQUMsS0FBTSxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsUUFBUyxDQUFDLFVBQVcsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLFFBQVMsQ0FBQyxXQUFZLENBQUMsUUFBUyxDQUFDLFVBQVcsQ0FBQyxRQUFTLENBQUMsWUFBYSxDQUFDLEtBQU0sUUFBUyxDQUFDLE9BQVEsQ0FBQyxLQUFNLFFBQVMsQ0FBQyxPQUFRLENBQUMsTUFBTyxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxVQUFXLENBQUMsUUFBUyxDQUFDLE1BQU8sQ0FBQyxRQUFTLENBQUMsTUFBTyxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLGFBQWMsQ0FBQyxPQUFRLENBQUMsYUFBYyxDQUFDLE9BQVEsQ0FBQyxXQUFZLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLFFBQVMsQ0FBQyxNQUFPLENBQUMsT0FBUSxDQUFDLE1BQU8sQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLGdCQUFpQixDQUFDLE9BQVEsQ0FBQyxjQUFlLENBQUMsT0FBUSxDQUFDLFlBQWEsQ0FBQyxPQUFRLENBQUMsTUFBTyxDQUFDLFNBQVUsQ0FBQyxNQUFPLENBQUMsU0FBVSxDQUFDLE1BQU8sQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE1BQU8sQ0FBQyxTQUFVLENBQUMsS0FBTSxDQUFDLFNBQVUsQ0FBQyxRQUFTLENBQUMsTUFBTyxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsTUFBTyxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLFVBQVcsQ0FBQyxRQUFTLENBQUMsWUFBYSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxLQUFNLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLEtBQU0sQ0FBQyxNQUFPLENBQUMsS0FBTSxDQUFDLE1BQU8sQ0FBQyxXQUFZLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsTUFBTyxDQUFDLFNBQVUsQ0FBQyxNQUFPLENBQUMsT0FBUSxDQUFDLEtBQU0sT0FBUSxDQUFDLE1BQU8sQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLE1BQU8sTUFBTyxDQUFDLFFBQVMsQ0FBQyxLQUFNLE1BQU8sQ0FBQyxRQUFTLENBQUMsTUFBTyxDQUFDLFVBQVcsQ0FBQyxPQUFRLENBQUMsVUFBVyxDQUFDLE9BQVEsQ0FBQyxXQUFZLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLE1BQU8sQ0FBQyxRQUFTLENBQUMsS0FBTSxNQUFPLENBQUMsU0FBVSxDQUFDLEtBQU0sTUFBTyxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsU0FBVSxDQUFDLE1BQU8sQ0FBQyxTQUFVLENBQUMsTUFBTyxDQUFDLFNBQVUsQ0FBQyxNQUFPLENBQUMsU0FBVSxDQUFDLE1BQU8sQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFdBQVksQ0FBQyxNQUFPLE1BQU8sQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE1BQU8sQ0FBQyxPQUFRLENBQUMsTUFBTyxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxRQUFTLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFVBQVcsQ0FBQyxPQUFRLENBQUMsS0FBTSxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsS0FBTSxNQUFPLENBQUMsc0JBQXVCLENBQUMsT0FBUSxDQUFDLHFCQUFzQixDQUFDLE9BQVEsQ0FBQyxvQkFBcUIsQ0FBQyxPQUFRLENBQUMsd0JBQXlCLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLFFBQVMsQ0FBQyxRQUFTLENBQUMsS0FBTSxNQUFPLENBQUMsdUJBQXdCLENBQUMsT0FBUSxDQUFDLGlCQUFrQixDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLFVBQVcsQ0FBQyxPQUFRLENBQUMsTUFBTyxDQUFDLFNBQVUsQ0FBQyxNQUFPLENBQUMsU0FBVSxDQUFDLE1BQU8sQ0FBQyxLQUFNLE1BQU8sQ0FBQyxNQUFPLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLEtBQU0sTUFBTyxDQUFDLFlBQWEsQ0FBQyxNQUFPLE1BQU8sQ0FBQyxPQUFRLENBQUMsTUFBTyxNQUFPLENBQUMsTUFBTyxDQUFDLEtBQU0sTUFBTyxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsTUFBTyxDQUFDLEtBQU0sT0FBUSxDQUFDLE1BQU8sQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsS0FBTSxNQUFPLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxRQUFTLENBQUMsS0FBTSxDQUFDLE9BQVEsQ0FBQyxNQUFPLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsTUFBTyxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsTUFBTyxDQUFDLEtBQU0sTUFBTyxDQUFDLE1BQU8sQ0FBQyxPQUFRLENBQUMsYUFBYyxDQUFDLE9BQVEsQ0FBQyxhQUFjLENBQUMsT0FBUSxDQUFDLGtCQUFtQixDQUFDLE9BQVEsQ0FBQyxrQkFBbUIsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsS0FBTSxNQUFPLENBQUMsWUFBYSxDQUFDLE1BQU8sTUFBTyxDQUFDLE9BQVEsQ0FBQyxNQUFPLE1BQU8sQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLE1BQU8sQ0FBQyxLQUFNLE1BQU8sQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLE1BQU8sQ0FBQyxLQUFNLE9BQVEsQ0FBQyxNQUFPLENBQUMs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LE1BQU8sQ0FBQyxPQUFRLENBQUMsTUFBTyxNQUFPLENBQUMsU0FBVSxDQUFDLE1BQU8sTUFBTyxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsS0FBTSxNQUFPLENBQUMsY0FBZSxDQUFDLE9BQVEsQ0FBQyxjQUFlLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxNQUFPLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLE1BQU8sTUFBTyxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxZQUFhLENBQUMsT0FBUSxDQUFDLGlCQUFrQixDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsVUFBVyxDQUFDLE9BQVEsQ0FBQyxVQUFXLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE1BQU8sTUFBTyxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsVUFBVyxDQUFDLEtBQU0sT0FBUSxDQUFDLFlBQWEsQ0FBQyxPQUFRLENBQUMsYUFBYyxDQUFDLE1BQU8sTUFBTyxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsVUFBVyxDQUFDLE1BQU8sTUFBTyxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE1BQU8sTUFBTyxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsVUFBVyxDQUFDLEtBQU0sT0FBUSxDQUFDLFlBQWEsQ0FBQyxPQUFRLENBQUMsYUFBYyxDQUFDLE1BQU8sTUFBTyxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE1BQU8sQ0FBQyxTQUFVLENBQUMsTUFBTyxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsZ0JBQWlCLENBQUMsT0FBUSxDQUFDLGtCQUFtQixDQUFDLE9BQVEsQ0FBQyxpQkFBa0IsQ0FBQyxPQUFRLENBQUMsbUJBQW9CLENBQUMsT0FBUSxDQUFDLEtBQU0sQ0FBQyxNQUFPLENBQUMsS0FBTSxDQUFDLE1BQU8sQ0FBQyxNQUFPLENBQUMsS0FBTSxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsS0FBTSxPQUFRLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsS0FBTSxPQUFRLENBQUMsT0FBUSxDQUFDLEdBQUksT0FBUSxDQUFDLFNBQVUsQ0FBQyxRQUFTLENBQUMsVUFBVyxDQUFDLFFBQVMsQ0FBQyxTQUFVLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxLQUFNLE9BQVEsQ0FBQyxPQUFRLENBQUMsR0FBSSxPQUFRLENBQUMsVUFBVyxDQUFDLEtBQU0sT0FBUSxDQUFDLFNBQVUsQ0FBQyxRQUFTLENBQUMsVUFBVyxDQUFDLEtBQU0sT0FBUSxDQUFDLFFBQVMsQ0FBQyxLQUFNLE9BQVEsQ0FBQyxTQUFVLENBQUMsUUFBUyxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxVQUFXLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxRQUFTLENBQUMsU0FBVSxDQUFDLE1BQU8sQ0FBQyxTQUFVLENBQUMsTUFBTyxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE1BQU8sQ0FBQyxRQUFTLENBQUMsTUFBTyxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsTUFBTyxDQUFDLE9BQVEsQ0FBQyxNQUFPLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE1BQU8sQ0FBQyxTQUFVLENBQUMsTUFBTyxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsUUFBUyxDQUFDLFFBQVMsQ0FBQyxNQUFPLENBQUMsUUFBUyxDQUFDLE1BQU8sQ0FBQyxRQUFTLENBQUMsUUFBUyxDQUFDLE1BQU8sQ0FBQyxTQUFVLENBQUMsTUFBTyxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsTUFBTyxDQUFDLFNBQVUsQ0FBQyxNQUFPLENBQUMsU0FBVSxDQUFDLE1BQU8sQ0FBQyxNQUFPLENBQUMsUUFBUyxDQUFDLFFBQVMsQ0FBQyxRQUFTLENBQUMsTUFBTyxDQUFDLE1BQU8sQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLFFBQVMsQ0FBQyxVQUFXLENBQUMsUUFBUyxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsTUFBTyxDQUFDLFFBQVMsQ0FBQyxRQUFTLENBQUMsTUFBTyxDQUFDLFFBQVMsQ0FBQyxNQUFPLENBQUMsUUFBUyxDQUFDLE1BQU8sQ0FBQyxRQUFTLENBQUMsTUFBTyxDQUFDLFVBQVcsQ0FBQyxNQUFPLENBQUMsVUFBVyxDQUFDLE1BQU8sQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsdUJBQXdCLENBQUMsT0FBUSxDQUFDLGlCQUFrQixDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsUUFBUyxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxLQUFNLENBQUMsUUFBUyxDQUFDLEtBQU0sQ0FBQyxPQUFRLENBQUMsTUFBTyxDQUFDLFFBQVMsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFVBQVcsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLE1BQU8sQ0FBQyxPQUFRLENBQUMsTUFBTyxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxVQUFXLENBQUMsUUFBUyxDQUFDLE1BQU8sQ0FBQyxRQUFTLENBQUMsS0FBTSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE1BQU8sQ0FBQyxTQUFVLENBQUMsTUFBTyxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE1BQU8sQ0FBQyxTQUFVLENBQUMsTUFBTyxDQUFDLFdBQVksQ0FBQyxRQUFTLENBQUMsU0FBVSxDQUFDLFFBQVMsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxNQUFPLENBQUMsT0FBUSxDQUFDLE1BQU8sQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFVBQVcsQ0FBQyxPQUFRLENBQUMsWUFBYSxDQUFDLE9BQVEsQ0FBQyxjQUFlLENBQUMsT0FBUSxDQUFDLGtCQUFtQixDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsTUFBTyxDQUFDLFdBQVksQ0FBQyxPQUFRLENBQUMsTUFBTyxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsUUFBUyxDQUFDLFFBQVMsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxXQUFZLENBQUMsT0FBUSxDQUFDLE1BQU8sQ0FBQyxPQUFRLENBQUMsTUFBTyxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsS0FBTSxDQUFDLFNBQVUsQ0FBQyxLQUFNLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLFVBQVcsQ0FBQyxPQUFRLENBQUMsTUFBTyxDQUFDLFNBQVUsQ0FBQyxNQUFPLENBQUMsU0FBVSxDQUFDLE1BQU8sQ0FBQyxNQUFPLENBQUMsTUFBTyxDQUFDLE1BQU8sQ0FBQyxPQUFRLENBQUMsTUFBTyxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxLQUFNLENBQUMsTUFBTyxDQUFDLEtBQU0sQ0FBQyxNQUFPLENBQUMsWUFBYSxDQUFDLE9BQVEsQ0FBQyxNQUFPLENBQUMsTUFBTyxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsVUFBVyxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLFdBQVksQ0FBQyxRQUFTLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxVQUFXLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxLQUFNLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsUUFBUyxDQUFDLFFBQVMsQ0FBQyxRQUFTLENBQUMsWUFBYSxDQUFDLE1BQU8sQ0FBQyxTQUFVLENBQUMsTUFBTyxDQUFDLFVBQVcsQ0FBQyxRQUFTLENBQUMsVUFBVyxDQUFDLFFBQVMsQ0FBQyxLQUFNLENBQUMsTUFBTyxDQUFDLGdCQUFpQixDQUFDLE9BQVEsQ0FBQyxXQUFZLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsTUFBTyxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsS0FBTSxDQUFDLFFBQVMsQ0FBQyxLQUFNLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsYUFBYyxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLGNBQWUsQ0FBQyxPQUFRLENBQUMsV0FBWSxDQUFDLE9BQVEsQ0FBQyxnQkFBaUIsQ0FBQyxRQUFTLENBQUMscUJBQXNCLENBQUMsT0FBUSxDQUFDLGdCQUFpQixDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsUUFBUyxDQUFDLGNBQWUsQ0FBQyxRQUFTLENBQUMsV0FBWSxDQUFDLFFBQVMsQ0FBQyxXQUFZLENBQUMsT0FBUSxDQUFDLE1BQU8sQ0FBQyxRQUFTLENBQUMsTUFBTyxDQUFDLFFBQVMsQ0FBQyxVQUFXLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsVUFBVyxDQUFDLE9BQVEsQ0FBQyxXQUFZLENBQUMsT0FBUSxDQUFDLFdBQVksQ0FBQyxPQUFRLENBQUMsV0FBWSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLGVBQWdCLENBQUMsT0FBUSxDQUFDLGFBQWMsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE1BQU8sQ0FBQyxNQUFPLENBQUMsTUFBTyxDQUFDLE1BQU8sQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLE1BQU8sQ0FBQyxTQUFVLENBQUMsTUFBTyxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxjQUFlLENBQUMsT0FBUSxDQUFDLFVBQVcsQ0FBQyxRQUFTLENBQUMsUUFBUyxDQUFDLEtBQU0sQ0FBQyxVQUFXLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxLQUFNLENBQUMsT0FBUSxDQUFDLEtBQU0sQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxLQUFNLE1BQU8sQ0FBQyxTQUFVLENBQUMsTUFBTyxDQUFDLFNBQVUsQ0FBQyxNQUFPLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxXQUFZLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxRQUFTLENBQUMsUUFBUyxDQUFDLFFBQVMsQ0FBQyxRQUFTLENBQUMsU0FBVSxDQUFDLFFBQVMsQ0FBQyxRQUFTLENBQUMsTUFBTyxDQUFDLFNBQVUsQ0FBQyxRQUFTLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxVQUFXLENBQUMsUUFBUyxDQUFDLFFBQVMsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLFFBQVMsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLFFBQVMsQ0FBQyxVQUFXLENBQUMsUUFBUyxDQUFDLFNBQVUsQ0FBQyxRQUFTLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxRQUFTLENBQUMsU0FBVSxDQUFDLFFBQVMsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFlBQWEsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLFFBQVMsQ0FBQyxRQUFTLENBQUMsUUFBUyxDQUFDLFFBQVMsQ0FBQyxRQUFTLENBQUMsUUFBUyxDQUFDLFFBQVMsQ0FBQyxTQUFVLENBQUMsTUFBTyxDQUFDLFNBQVUsQ0FBQyxLQUFNLENBQUMsUUFBUyxDQUFDLFFBQVMsQ0FBQyxVQUFXLENBQUMsUUFBUyxDQUFDLFVBQVcsQ0FBQyxRQUFTLENBQUMsU0FBVSxDQUFDLE1BQU8sQ0FBQyxTQUFVLENBQUMsTUFBTyxDQUFDLFNBQVUsQ0FBQyxNQUFPLENBQUMsU0FBVSxDQUFDLE1BQU8sQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxNQUFPLENBQUMsTUFBTyxDQUFDLE9BQVEsQ0FBQyxNQUFPLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsVUFBVyxDQUFDLFFBQVMsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsd0JBQXlCLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxVQUFXLENBQUMsT0FBUSxDQUFDLFdBQVksQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxLQUFNLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsTUFBTyxDQUFDLE1BQU8sQ0FBQyxNQUFPLENBQUMsTUFBTyxDQUFDLGlC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QUFVLENBQUMsTUFBTyxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxTQUFVLENBQUMsTUFBTyxDQUFDLFNBQVUsQ0FBQyxNQUFPLENBQUMsS0FBTSxDQUFDLFFBQVMsQ0FBQyxLQUFNLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsTUFBTyxDQUFDLFFBQVMsQ0FBQyxNQUFPLENBQUMsUUFBUyxDQUFDLFNBQVUsQ0FBQyxNQUFPLENBQUMsU0FBVSxDQUFDLE1BQU8sQ0FBQyxRQUFTLENBQUMsTUFBTyxDQUFDLFFBQVMsQ0FBQyxNQUFPLENBQUMsUUFBUyxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsV0FBWSxDQUFDLFFBQVMsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLE1BQU8sQ0FBQyxPQUFRLENBQUMsTUFBTyxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLFFBQVMsQ0FBQyxTQUFVLENBQUMsUUFBUyxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxVQUFXLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxNQUFPLENBQUMsT0FBUSxDQUFDLEtBQU0sQ0FBQyxTQUFVLENBQUMsUUFBUyxDQUFDLFdBQVksQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE1BQU8sQ0FBQyxTQUFVLENBQUMsTUFBTyxDQUFDLFNBQVUsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxpQkFBa0IsQ0FBQyxPQUFRLENBQUMsaUJBQWtCLENBQUMsT0FBUSxDQUFDLFdBQVksQ0FBQyxPQUFRLENBQUMsZ0JBQWlCLENBQUMsT0FBUSxDQUFDLGtCQUFtQixDQUFDLE9BQVEsQ0FBQyxlQUFnQixDQUFDLE9BQVEsQ0FBQyxNQUFPLENBQUMsTUFBTyxDQUFDLFFBQVMsQ0FBQyxNQUFPLENBQUMsUUFBUyxDQUFDLE1BQU8sQ0FBQyxTQUFVLENBQUMsTUFBTyxDQUFDLFNBQVUsQ0FBQyxNQUFPLENBQUMsTUFBTyxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLFFBQVMsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxRQUFTLENBQUMsUUFBUyxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsVUFBVyxDQUFDLFFBQVMsQ0FBQyxVQUFXLENBQUMsUUFBUyxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsY0FBZSxDQUFDLE9BQVEsQ0FBQyxnQkFBaUIsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLFFBQVMsQ0FBQyxXQUFZLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxNQUFPLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsUUFBUyxDQUFDLE1BQU8sUUFBUyxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsTUFBTyxDQUFDLEtBQU0sQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxZQUFhLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsS0FBTSxRQUFTLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsS0FBTSxRQUFTLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsV0FBWSxDQUFDLE9BQVEsQ0FBQyxhQUFjLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxXQUFZLENBQUMsT0FBUSxDQUFDLGFBQWMsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLHFCQUFzQixDQUFDLE9BQVEsQ0FBQyxlQUFnQixDQUFDLE9BQVEsQ0FBQyxvQkFBcUIsQ0FBQyxPQUFRLENBQUMsaUJBQWtCLENBQUMsT0FBUSxDQUFDLHNCQUF1QixDQUFDLE9BQVEsQ0FBQyxjQUFlLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsTUFBTyxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLGtCQUFtQixDQUFDLE9BQVEsQ0FBQyxjQUFlLENBQUMsTUFBTyxDQUFDLFFBQVMsQ0FBQyxNQUFPLENBQUMsTUFBTyxDQUFDLE9BQVEsQ0FBQyxNQUFPLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLFVBQVcsQ0FBQyxRQUFTLENBQUMsVUFBVyxDQUFDLFFBQVMsQ0FBQyxRQUFTLENBQUMsUUFBUyxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsVUFBVyxDQUFDLFFBQVMsQ0FBQyxVQUFXLENBQUMsUUFBUyxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxXQUFZLENBQUMsT0FBUSxDQUFDLFlBQWEsQ0FBQyxRQUFTLENBQUMsY0FBZSxDQUFDLE9BQVEsQ0FBQyxZQUFhLENBQUMsT0FBUSxDQUFDLGFBQWMsQ0FBQyxRQUFTLENBQUMsU0FBVSxDQUFDLFFBQVMsQ0FBQyxTQUFVLENBQUMsUUFBUyxDQUFDLFNBQVUsQ0FBQyxRQUFTLENBQUMsYUFBYyxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLGNBQWUsQ0FBQyxPQUFRLENBQUMsV0FBWSxDQUFDLE9BQVEsQ0FBQyxnQkFBaUIsQ0FBQyxRQUFTLENBQUMscUJBQXNCLENBQUMsT0FBUSxDQUFDLGdCQUFpQixDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsUUFBUyxDQUFDLGNBQWUsQ0FBQyxRQUFTLENBQUMsV0FBWSxDQUFDLFFBQVMsQ0FBQyxXQUFZLENBQUMsT0FBUSxDQUFDLFVBQVcsQ0FBQyxPQUFRLENBQUMsV0FBWSxDQUFDLE9BQVEsQ0FBQyxNQUFPLENBQUMsT0FBUSxDQUFDLE1BQU8sQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsTUFBTyxDQUFDLE9BQVEsQ0FBQyxNQUFPLENBQUMsT0FBUSxDQUFDLE1BQU8sQ0FBQyxNQUFPLENBQUMsT0FBUSxDQUFDLE1BQU8sQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLFFBQVMsQ0FBQyxVQUFXLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxVQUFXLENBQUMsUUFBUyxDQUFDLFdBQVksQ0FBQyxPQUFRLENBQUMsZ0JBQWlCLENBQUMsT0FBUSxDQUFDLFVBQVcsQ0FBQyxRQUFTLENBQUMsVUFBVyxDQUFDLFFBQVMsQ0FBQyxVQUFXLENBQUMsUUFBUyxDQUFDLFVBQVcsQ0FBQyxRQUFTLENBQUMsUUFBUyxDQUFDLFFBQVMsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFVBQVcsQ0FBQyxRQUFTLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLFdBQVksQ0FBQyxPQUFRLENBQUMsWUFBYSxDQUFDLFFBQVMsQ0FBQyxZQUFhLENBQUMsT0FBUSxDQUFDLGFBQWMsQ0FBQyxRQUFTLENBQUMsU0FBVSxDQUFDLFFBQVMsQ0FBQyxTQUFVLENBQUMsUUFBUyxDQUFDLFNBQVUsQ0FBQyxRQUFTLENBQUMsU0FBVSxDQUFDLFFBQVMsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsVUFBVyxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsUUFBUyxDQUFDLFFBQVMsQ0FBQyxNQUFPLENBQUMsTUFBTyxDQUFDLElBQUssQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLE1BQU8sQ0FBQyxNQUFPLENBQUMsTUFBTyxDQUFDLE1BQU8sQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxNQUFPLENBQUMsU0FBVSxDQUFDLE1BQU8sQ0FBQyxTQUFVLENBQUMsTUFBTyxDQUFDLFNBQVUsQ0FBQyxNQUFPLENBQUMsTUFBTyxDQUFDLE9BQVEsQ0FBQyxNQUFPLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxNQUFPLENBQUMsU0FBVSxDQUFDLE1BQU8sQ0FBQyxTQUFVLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxZQUFhLENBQUMsT0FBUSxDQUFDLFlBQWEsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE1BQU8sQ0FBQyxRQUFTLENBQUMsTUFBTyxDQUFDLFdBQVksQ0FBQyxNQUFPLENBQUMsU0FBVSxDQUFDLE1BQU8sQ0FBQyxjQUFlLENBQUMsT0FBUSxDQUFDLFdBQVksQ0FBQyxPQUFRLENBQUMsYUFBYyxDQUFDLEtBQU0sT0FBUSxDQUFDLFlBQWEsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE1BQU8sQ0FBQyxRQUFTLENBQUMsTUFBTyxDQUFDLFFBQVMsQ0FBQyxNQUFPLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxhQUFjLENBQUMsT0FBUSxDQUFDLGlCQUFrQixDQUFDLE9BQVEsQ0FBQyxhQUFjLENBQUMsT0FBUSxDQUFDLFdBQVksQ0FBQyxRQUFTLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsTUFBTyxDQUFDLFNBQVUsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLFFBQVMsQ0FBQyxNQUFPLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxVQUFXLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsV0FBWSxDQUFDLE9BQVEsQ0FBQyxlQUFnQixDQUFDLE9BQVEsQ0FBQyxlQUFnQixDQUFDLE9BQVEsQ0FBQyxpQkFBa0IsQ0FBQyxPQUFRLENBQUMsWUFBYSxDQUFDLE9BQVEsQ0FBQyxnQkFBaUIsQ0FBQyxPQUFRLENBQUMsa0JBQW1CLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxXQUFZLENBQUMsUUFBUyxDQUFDLFlBQWEsQ0FBQyxPQUFRLENBQUMsVUFBVyxDQUFDLFFBQVMsQ0FBQyxRQUFTLENBQUMsUUFBUyxDQUFDLFVBQVcsQ0FBQyxRQUFTLENBQUMsV0FBWSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsTUFBTyxDQUFDLFNBQVUsQ0FBQyxNQUFPLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxtQkFBb0IsQ0FBQyxPQUFRLENBQUMsb0JBQXFCLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxNQUFPLENBQUMsU0FBVSxDQUFDLE1BQU8sQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxXQUFZLENBQUMsUUFBUyxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsTUFBTyxDQUFDLFNBQVUsQ0FBQyxNQUFPLENBQUMsUUFBUyxDQUFDLE1BQU8sQ0FBQyxRQUFTLENBQUMsTUFBTyxDQUFDLE1BQU8sQ0FBQyxPQUFRLENBQUMsTUFBTyxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxNQUFPLENBQUMsU0FBVSxDQUFDLE1BQU8sQ0FBQyxRQUFTLENBQUMsUUFBUyxDQUFDLFNBQVUsQ0FBQyxRQUFTLENBQUMsTUFBTyxDQUFDLFNBQVUsQ0FBQyxNQUFPLENBQUMsU0FBVSxDQUFDLFNBQVUsQ0FBQyxNQUFPLENBQUMsU0FBVSxDQUFDLE1BQU8sQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsV0FBWSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE1BQU8sQ0FBQyxRQUFTLENBQUMsTUFBTyxDQUFDLE1BQU8sQ0FBQyxNQUFPLENBQUMsV0FBWSxDQUFDLEtBQU0sQ0FBQyxhQUFjLENBQUMsT0FBUSxDQUFDLGVBQWdCLENBQUMsT0FBUSxDQUFDLG1CQUFvQixDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFlBQWEsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE1BQU8sQ0FBQyxRQUFTLENBQUMsTUFBTyxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxhQUFjLENBQUMsUUFBUyxDQUFDLFVBQVcsQ0FBQyxPQUFRLENBQUMsVUFBVyxDQUFDLE9BQVEsQ0FBQyxVQUFXLENBQUMsT0FBUSxDQUFDLG1CQUFvQixDQUFDLE9BQVEsQ0FBQyxjQUFlLENBQUMsT0FBUSxDQUFDLGNBQWUsQ0FBQyxPQUFRLENBQUMsY0FBZSxDQUFDLE9BQVEsQ0FBQyxnQkFBaUIsQ0FBQyxRQUFTLENBQUMsZ0JBQWlCLENBQUMsT0FBUSxDQUFDLGlCQUFrQixDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLGlCQUFrQixDQUFDLE9BQVEsQ0FBQyxrQkFBbUIsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLE1BQU8sQ0FBQyxPQUFRLENBQUMsTUFBTyxDQUFDLFFBQVMsQ0FBQyxNQUFPLENBQUMsVUFBVyxDQUFDLE1BQU8sQ0FBQyxVQUFXLENBQUMsTUFBTyxDQUFDLGFBQWMsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxhQUFjLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsV0FBWSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxNQUFPLENBQUMsUUFBUyxDQUFDLE1BQU8sQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxNQUFPLENBQUMsU0FBVSxDQUFDLE1BQU8sQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsTUFBTyxDQUFDLE9BQVEsQ0FBQyxNQUFPLENBQUMsVUFBVyxDQUFDLFFBQVMsQ0FBQyxTQUFVLENBQUMsUUFBUyxDQUFDLGFBQWMsQ0FBQyxPQUFRLENBQUMsV0FBWSxDQUFDLE9BQVEsQ0FBQyxhQUFjLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxNQUFPLENBQUMsUUFBUyxDQUFDLE1BQU8sQ0FBQyxZQUFhLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLFdBQVksQ0FBQyxNQUFPLENBQUMsZUFBZ0IsQ0FBQyxLQUFNLFFBQVMsQ0FBQyxnQkFBaUIsQ0FBQyxNQUFPLFFBQVMsQ0FBQyxlQUFnQixDQUFDLEtBQU0sUUFBUyxDQUFDLGdCQUFpQixDQUFDLE1BQU8sUUFBUyxDQUFDLFdBQVksQ0FBQyxNQUFPLENBQUMsa0JBQW1CLENBQUMsT0FBUSxDQUFDLG1CQUFvQixDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsUUFBUyxDQUFDLFFBQVMsQ0FBQyxNQUFPLENBQUMsT0FBUSxDQUFDLE1BQU8sQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsUUFBUyxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsTUFBTyxDQUFDLE9BQVEsQ0FBQyxNQUFPLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsTUFBTyxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLE1BQU8sQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLGNBQWUsQ0FBQyxPQUFRLENBQUMsZUFBZ0IsQ0FBQyxNQUFPLENBQUMsb0JBQXFCLENBQUMsUUFBUyxDQUFDLGdCQUFpQixDQUFDLE9BQVEsQ0FBQyxnQkFBaUIsQ0FBQyxPQUFRLENBQUMsTUFBTyxDQUFDLFNBQVUsQ0FBQyxNQUFPLENBQUMsU0FBVSxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLEtBQU0sT0FBUSxDQUFDLFFBQVMsQ0FBQyxLQUFNLE9BQVEsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxTQUFVLENBQUMsTUFBTyxRQUFTLENBQUMsU0FBVSxDQUFDLEtBQU0sUUFBUyxDQUFDLFNBQVUsQ0FBQyxNQUFPLFFBQVMsQ0FBQyxTQUFVLENBQUMsS0FBTSxRQUFTLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxVQUFXLENBQUMsUUFBUyxDQUFDLFFBQVMsQ0FBQyxNQUFPLENBQUMsUUFBUyxDQUFDLE1BQU8sQ0FBQyxTQUFVLENBQUMsUUFBUyxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsTUFBTyxDQUFDLFNBQVUsQ0FBQyxNQUFPLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxLQUFNLENBQUMsT0FBUSxDQUFDLEtBQU0sQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsUUFBUyxDQUFDLE9BQVEsQ0FBQyxNQUFPLENBQUMsU0FBVSxDQUFDLE1BQU8sQ0FBQyxTQUFVLENBQUMsUUFBUyxDQUFDLFFBQVMsQ0FBQyxRQUFTLENBQUMsUUFBUyxDQUFDLEtBQU0sQ0FBQyxNQUFPLENBQUMsS0FBTSxDQUFDLE1BQU8sQ0FBQyxRQUFTLENBQUMsUUFBUyxDQUFDLFFBQVMsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLFNBQVUsQ0FBQyxRQUFTLENBQUMsU0FBVSxDQUFDLFFBQVMsQ0FBQyxRQUFTLENBQUMsUUFBUyxDQUFDLFFBQVMsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLFNBQVUsQ0FBQyxRQUFTLENBQUMsU0FBVSxDQUFDLFFBQVMsQ0FBQyxRQUFTLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsTUFBTyxDQUFDLFNBQVUsQ0FBQyxNQUFPLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLFFBQVMsQ0FBQyxNQUFPLENBQUMsUUFBUyxDQUFDLE1BQU8sQ0FBQyxNQUFPLENBQUMsT0FBUSxDQUFDLE1BQU8sQ0FBQyxPQUFRLENBQUMsTUFBTyxDQUFDLE1BQU8sQ0FBQyxNQUFPLENBQUMsU0FBVSxDQUFDLE1BQU8sQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxPQUFRLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxTQUFVLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLE9BQVEsQ0FBQyxNQUFPLENBQUMsT0FBUSxDQUFDLE1BQU8sQ0FBQyxTQUFVLENBQUMsTUFBTyxDQUFDLFNBQVUsQ0FBQyxNQUFPLENBQUMsU0FBVSxDQUFDLE1BQU8sQ0FBQyxTQUFVLENBQUMsTUFBTyxDQUFDLE1BQU8sQ0FBQyxPQUFRLENBQUMsTUFBTyxDQUFDLE9BQVEsQ0FBQyxPQUFRLENBQUMsTUFBTyxDQUFDLE9BQVEsQ0FBQyxNQUFPLENBQUMsU0FBVSxDQUFDLE9BQVEsQ0FBQyxpQkFBa0IsQ0FBQyxPQUFRLENBQUMsT0FBUSxDQUFDLE1BQU8sQ0FBQyxPQUFRLENBQUMsTUFB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QVcsR0FHakQsT0FGQThGLEVBQUssR0FBS3RGLEVBQ1ZzRixFQUFLLEdBQUt2RixFQUNIYSxFQUFHckIsTUFBTWtFLEtBQU02QixTQUlYIiwiZmlsZSI6ImpzL21haW4tdWkvYXBwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiIFx0Ly8gVGhlIG1vZHVsZSBjYWNoZVxuIFx0dmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTtcblxuIFx0Ly8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbiBcdGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblxuIFx0XHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcbiBcdFx0aWYoaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0pIHtcbiBcdFx0XHRyZXR1cm4gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0uZXhwb3J0cztcbiBcdFx0fVxuIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuIFx0XHR2YXIgbW9kdWxlID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0gPSB7XG4gXHRcdFx0aTogbW9kdWxlSWQsXG4gXHRcdFx0bDogZmFsc2UsXG4gXHRcdFx0ZXhwb3J0czoge31cbiBcdFx0fTtcblxuIFx0XHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cbiBcdFx0bW9kdWxlc1ttb2R1bGVJZF0uY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cbiBcdFx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuIFx0XHRtb2R1bGUubCA9IHRydWU7XG5cbiBcdFx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcbiBcdFx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xuIFx0fVxuXG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBtb2R1bGVzO1xuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZSBjYWNoZVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5jID0gaW5zdGFsbGVkTW9kdWxlcztcblxuIFx0Ly8gZGVmaW5lIGdldHRlciBmdW5jdGlvbiBmb3IgaGFybW9ueSBleHBvcnRzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSBmdW5jdGlvbihleHBvcnRzLCBuYW1lLCBnZXR0ZXIpIHtcbiBcdFx0aWYoIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBuYW1lKSkge1xuIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBuYW1lLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZ2V0dGVyIH0pO1xuIFx0XHR9XG4gXHR9O1xuXG4gXHQvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSBmdW5jdGlvbihleHBvcnRzKSB7XG4gXHRcdGlmKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykge1xuIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pO1xuIFx0XHR9XG4gXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gXHR9O1xuXG4gXHQvLyBjcmVhdGUgYSBmYWtlIG5hbWVzcGFjZSBvYmplY3RcbiBcdC8vIG1vZGUgJiAxOiB2YWx1ZSBpcyBhIG1vZHVsZSBpZCwgcmVxdWlyZSBpdFxuIFx0Ly8gbW9kZSAmIDI6IG1lcmdlIGFsbCBwcm9wZXJ0aWVzIG9mIHZhbHVlIGludG8gdGhlIG5zXG4gXHQvLyBtb2RlICYgNDogcmV0dXJuIHZhbHVlIHdoZW4gYWxyZWFkeSBucyBvYmplY3RcbiBcdC8vIG1vZGUgJiA4fDE6IGJlaGF2ZSBsaWtlIHJlcXVpcmVcbiBcdF9fd2VicGFja19yZXF1aXJlX18udCA9IGZ1bmN0aW9uKHZhbHVlLCBtb2RlKSB7XG4gXHRcdGlmKG1vZGUgJiAxKSB2YWx1ZSA9IF9fd2VicGFja19yZXF1aXJlX18odmFsdWUpO1xuIFx0XHRpZihtb2RlICYgOCkgcmV0dXJuIHZhbHVlO1xuIFx0XHRpZigobW9kZSAmIDQpICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgJiYgdmFsdWUuX19lc01vZHVsZSkgcmV0dXJuIHZhbHVlO1xuIFx0XHR2YXIgbnMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLnIobnMpO1xuIFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkobnMsICdkZWZhdWx0JywgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdmFsdWUgfSk7XG4gXHRcdGlmKG1vZGUgJiAyICYmIHR5cGVvZiB2YWx1ZSAhPSAnc3RyaW5nJykgZm9yKHZhciBrZXkgaW4gdmFsdWUpIF9fd2VicGFja19yZXF1aXJlX18uZChucywga2V5LCBmdW5jdGlvbihrZXkpIHsgcmV0dXJuIHZhbHVlW2tleV07IH0uYmluZChudWxsLCBrZXkpKTtcbiBcdFx0cmV0dXJuIG5zO1xuIFx0fTtcblxuIFx0Ly8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubiA9IGZ1bmN0aW9uKG1vZHVsZSkge1xuIFx0XHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cbiBcdFx0XHRmdW5jdGlvbiBnZXREZWZhdWx0KCkgeyByZXR1cm4gbW9kdWxlWydkZWZhdWx0J107IH0gOlxuIFx0XHRcdGZ1bmN0aW9uIGdldE1vZHVsZUV4cG9ydHMoKSB7IHJldHVybiBtb2R1bGU7IH07XG4gXHRcdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsICdhJywgZ2V0dGVyKTtcbiBcdFx0cmV0dXJuIGdldHRlcjtcbiBcdH07XG5cbiBcdC8vIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbFxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5vID0gZnVuY3Rpb24ob2JqZWN0LCBwcm9wZXJ0eSkgeyByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwgcHJvcGVydHkpOyB9O1xuXG4gXHQvLyBfX3dlYnBhY2tfcHVibGljX3BhdGhfX1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5wID0gXCJcIjtcblxuXG4gXHQvLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcbiBcdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKF9fd2VicGFja19yZXF1aXJlX18ucyA9IDI3MCk7XG4iLCIndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QuZGV2ZWxvcG1lbnQuanMnKTtcbn1cbiIsIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgdmFyIFJlYWN0SXMgPSByZXF1aXJlKCdyZWFjdC1pcycpO1xuXG4gIC8vIEJ5IGV4cGxpY2l0bHkgdXNpbmcgYHByb3AtdHlwZXNgIHlvdSBhcmUgb3B0aW5nIGludG8gbmV3IGRldmVsb3BtZW50IGJlaGF2aW9yLlxuICAvLyBodHRwOi8vZmIubWUvcHJvcC10eXBlcy1pbi1wcm9kXG4gIHZhciB0aHJvd09uRGlyZWN0QWNjZXNzID0gdHJ1ZTtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2ZhY3RvcnlXaXRoVHlwZUNoZWNrZXJzJykoUmVhY3RJcy5pc0VsZW1lbnQsIHRocm93T25EaXJlY3RBY2Nlc3MpO1xufSBlbHNlIHtcbiAgLy8gQnkgZXhwbGljaXRseSB1c2luZyBgcHJvcC10eXBlc2AgeW91IGFyZSBvcHRpbmcgaW50byBuZXcgcHJvZHVjdGlvbiBiZWhhdmlvci5cbiAgLy8gaHR0cDovL2ZiLm1lL3Byb3AtdHlwZXMtaW4tcHJvZFxuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vZmFjdG9yeVdpdGhUaHJvd2luZ1NoaW1zJykoKTtcbn1cbiIsIi8vISBtb21lbnQuanNcbi8vISB2ZXJzaW9uIDogMi4yNy4wXG4vLyEgYXV0aG9ycyA6IFRpbSBXb29kLCBJc2tyZW4gQ2hlcm5ldiwgTW9tZW50LmpzIGNvbnRyaWJ1dG9yc1xuLy8hIGxpY2Vuc2UgOiBNSVRcbi8vISBtb21lbnRqcy5jb21cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnID8gbW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KCkgOlxuICAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShmYWN0b3J5KSA6XG4gICAgZ2xvYmFsLm1vbWVudCA9IGZhY3RvcnkoKVxufSh0aGlzLCAoZnVuY3Rpb24gKCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICB2YXIgaG9va0NhbGxiYWNrO1xuXG4gICAgZnVuY3Rpb24gaG9va3MoKSB7XG4gICAgICAgIHJldHVybiBob29rQ2FsbGJhY2suYXBwbHkobnVsbCwgYXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICAvLyBUaGlzIGlzIGRvbmUgdG8gcmVnaXN0ZXIgdGhlIG1ldGhvZCBjYWxsZWQgd2l0aCBtb21lbnQoKVxuICAgIC8vIHdpdGhvdXQgY3JlYXRpbmcgY2lyY3VsYXIgZGVwZW5kZW5jaWVzLlxuICAgIGZ1bmN0aW9uIHNldEhvb2tDYWxsYmFjayhjYWxsYmFjaykge1xuICAgICAgICBob29rQ2FsbGJhY2sgPSBjYWxsYmFjaztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc0FycmF5KGlucHV0KSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBpbnB1dCBpbnN0YW5jZW9mIEFycmF5IHx8XG4gICAgICAgICAgICBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoaW5wdXQpID09PSAnW29iamVjdCBBcnJheV0nXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNPYmplY3QoaW5wdXQpIHtcbiAgICAgICAgLy8gSUU4IHdpbGwgdHJlYXQgdW5kZWZpbmVkIGFuZCBudWxsIGFzIG9iamVjdCBpZiBpdCB3YXNuJ3QgZm9yXG4gICAgICAgIC8vIGlucHV0ICE9IG51bGxcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIGlucHV0ICE9IG51bGwgJiZcbiAgICAgICAgICAgIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChpbnB1dCkgPT09ICdbb2JqZWN0IE9iamVjdF0nXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaGFzT3duUHJvcChhLCBiKSB7XG4gICAgICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYSwgYik7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNPYmplY3RFbXB0eShvYmopIHtcbiAgICAgICAgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKSB7XG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMob2JqKS5sZW5ndGggPT09IDA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YXIgaztcbiAgICAgICAgICAgIGZvciAoayBpbiBvYmopIHtcbiAgICAgICAgICAgICAgICBpZiAoaGFzT3duUHJvcChvYmosIGspKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzVW5kZWZpbmVkKGlucHV0KSB7XG4gICAgICAgIHJldHVybiBpbnB1dCA9PT0gdm9pZCAwO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzTnVtYmVyKGlucHV0KSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0eXBlb2YgaW5wdXQgPT09ICdudW1iZXInIHx8XG4gICAgICAgICAgICBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoaW5wdXQpID09PSAnW29iamVjdCBOdW1iZXJdJ1xuICAgICAgICApO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzRGF0ZShpbnB1dCkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgaW5wdXQgaW5zdGFuY2VvZiBEYXRlIHx8XG4gICAgICAgICAgICBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoaW5wdXQpID09PSAnW29iamVjdCBEYXRlXSdcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtYXAoYXJyLCBmbikge1xuICAgICAgICB2YXIgcmVzID0gW10sXG4gICAgICAgICAgICBpO1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgICByZXMucHVzaChmbihhcnJbaV0sIGkpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGV4dGVuZChhLCBiKSB7XG4gICAgICAgIGZvciAodmFyIGkgaW4gYikge1xuICAgICAgICAgICAgaWYgKGhhc093blByb3AoYiwgaSkpIHtcbiAgICAgICAgICAgICAgICBhW2ldID0gYltpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChoYXNPd25Qcm9wKGIsICd0b1N0cmluZycpKSB7XG4gICAgICAgICAgICBhLnRvU3RyaW5nID0gYi50b1N0cmluZztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChoYXNPd25Qcm9wKGIsICd2YWx1ZU9mJykpIHtcbiAgICAgICAgICAgIGEudmFsdWVPZiA9IGIudmFsdWVPZjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBhO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNyZWF0ZVVUQyhpbnB1dCwgZm9ybWF0LCBsb2NhbGUsIHN0cmljdCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlTG9jYWxPclVUQyhpbnB1dCwgZm9ybWF0LCBsb2NhbGUsIHN0cmljdCwgdHJ1ZSkudXRjKCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZGVmYXVsdFBhcnNpbmdGbGFncygpIHtcbiAgICAgICAgLy8gV2UgbmVlZCB0byBkZWVwIGNsb25lIHRoaXMgb2JqZWN0LlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZW1wdHk6IGZhbHNlLFxuICAgICAgICAgICAgdW51c2VkVG9rZW5zOiBbXSxcbiAgICAgICAgICAgIHVudXNlZElucHV0OiBbXSxcbiAgICAgICAgICAgIG92ZXJmbG93OiAtMixcbiAgICAgICAgICAgIGNoYXJzTGVmdE92ZXI6IDAsXG4gICAgICAgICAgICBudWxsSW5wdXQ6IGZhbHNlLFxuICAgICAgICAgICAgaW52YWxpZEVyYTogbnVsbCxcbiAgICAgICAgICAgIGludmFsaWRNb250aDogbnVsbCxcbiAgICAgICAgICAgIGludmFsaWRGb3JtYXQ6IGZhbHNlLFxuICAgICAgICAgICAgdXNlckludmFsaWRhdGVkOiBmYWxzZSxcbiAgICAgICAgICAgIGlzbzogZmFsc2UsXG4gICAgICAgICAgICBwYXJzZWREYXRlUGFydHM6IFtdLFxuICAgICAgICAgICAgZXJhOiBudWxsLFxuICAgICAgICAgICAgbWVyaWRpZW06IG51bGwsXG4gICAgICAgICAgICByZmMyODIyOiBmYWxzZSxcbiAgICAgICAgICAgIHdlZWtkYXlNaXNtYXRjaDogZmFsc2UsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0UGFyc2luZ0ZsYWdzKG0pIHtcbiAgICAgICAgaWYgKG0uX3BmID09IG51bGwpIHtcbiAgICAgICAgICAgIG0uX3BmID0gZGVmYXVsdFBhcnNpbmdGbGFncygpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtLl9wZjtcbiAgICB9XG5cbiAgICB2YXIgc29tZTtcbiAgICBpZiAoQXJyYXkucHJvdG90eXBlLnNvbWUpIHtcbiAgICAgICAgc29tZSA9IEFycmF5LnByb3RvdHlwZS5zb21lO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHNvbWUgPSBmdW5jdGlvbiAoZnVuKSB7XG4gICAgICAgICAgICB2YXIgdCA9IE9iamVjdCh0aGlzKSxcbiAgICAgICAgICAgICAgICBsZW4gPSB0Lmxlbmd0aCA+Pj4gMCxcbiAgICAgICAgICAgICAgICBpO1xuXG4gICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgICAgICAgICBpZiAoaSBpbiB0ICYmIGZ1bi5jYWxsKHRoaXMsIHRbaV0sIGksIHQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzVmFsaWQobSkge1xuICAgICAgICBpZiAobS5faXNWYWxpZCA9PSBudWxsKSB7XG4gICAgICAgICAgICB2YXIgZmxhZ3MgPSBnZXRQYXJzaW5nRmxhZ3MobSksXG4gICAgICAgICAgICAgICAgcGFyc2VkUGFydHMgPSBzb21lLmNhbGwoZmxhZ3MucGFyc2VkRGF0ZVBhcnRzLCBmdW5jdGlvbiAoaSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaSAhPSBudWxsO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGlzTm93VmFsaWQgPVxuICAgICAgICAgICAgICAgICAgICAhaXNOYU4obS5fZC5nZXRUaW1lKCkpICYmXG4gICAgICAgICAgICAgICAgICAgIGZsYWdzLm92ZXJmbG93IDwgMCAmJlxuICAgICAgICAgICAgICAgICAgICAhZmxhZ3MuZW1wdHkgJiZcbiAgICAgICAgICAgICAgICAgICAgIWZsYWdzLmludmFsaWRFcmEgJiZcbiAgICAgICAgICAgICAgICAgICAgIWZsYWdzLmludmFsaWRNb250aCAmJlxuICAgICAgICAgICAgICAgICAgICAhZmxhZ3MuaW52YWxpZFdlZWtkYXkgJiZcbiAgICAgICAgICAgICAgICAgICAgIWZsYWdzLndlZWtkYXlNaXNtYXRjaCAmJlxuICAgICAgICAgICAgICAgICAgICAhZmxhZ3MubnVsbElucHV0ICYmXG4gICAgICAgICAgICAgICAgICAgICFmbGFncy5pbnZhbGlkRm9ybWF0ICYmXG4gICAgICAgICAgICAgICAgICAgICFmbGFncy51c2VySW52YWxpZGF0ZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgKCFmbGFncy5tZXJpZGllbSB8fCAoZmxhZ3MubWVyaWRpZW0gJiYgcGFyc2VkUGFydHMpKTtcblxuICAgICAgICAgICAgaWYgKG0uX3N0cmljdCkge1xuICAgICAgICAgICAgICAgIGlzTm93VmFsaWQgPVxuICAgICAgICAgICAgICAgICAgICBpc05vd1ZhbGlkICYmXG4gICAgICAgICAgICAgICAgICAgIGZsYWdzLmNoYXJzTGVmdE92ZXIgPT09IDAgJiZcbiAgICAgICAgICAgICAgICAgICAgZmxhZ3MudW51c2VkVG9rZW5zLmxlbmd0aCA9PT0gMCAmJlxuICAgICAgICAgICAgICAgICAgICBmbGFncy5iaWdIb3VyID09PSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChPYmplY3QuaXNGcm96ZW4gPT0gbnVsbCB8fCAhT2JqZWN0LmlzRnJvemVuKG0pKSB7XG4gICAgICAgICAgICAgICAgbS5faXNWYWxpZCA9IGlzTm93VmFsaWQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBpc05vd1ZhbGlkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtLl9pc1ZhbGlkO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNyZWF0ZUludmFsaWQoZmxhZ3MpIHtcbiAgICAgICAgdmFyIG0gPSBjcmVhdGVVVEMoTmFOKTtcbiAgICAgICAgaWYgKGZsYWdzICE9IG51bGwpIHtcbiAgICAgICAgICAgIGV4dGVuZChnZXRQYXJzaW5nRmxhZ3MobSksIGZsYWdzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhtKS51c2VySW52YWxpZGF0ZWQgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgLy8gUGx1Z2lucyB0aGF0IGFkZCBwcm9wZXJ0aWVzIHNob3VsZCBhbHNvIGFkZCB0aGUga2V5IGhlcmUgKG51bGwgdmFsdWUpLFxuICAgIC8vIHNvIHdlIGNhbiBwcm9wZXJseSBjbG9uZSBvdXJzZWx2ZXMuXG4gICAgdmFyIG1vbWVudFByb3BlcnRpZXMgPSAoaG9va3MubW9tZW50UHJvcGVydGllcyA9IFtdKSxcbiAgICAgICAgdXBkYXRlSW5Qcm9ncmVzcyA9IGZhbHNlO1xuXG4gICAgZnVuY3Rpb24gY29weUNvbmZpZyh0bywgZnJvbSkge1xuICAgICAgICB2YXIgaSwgcHJvcCwgdmFsO1xuXG4gICAgICAgIGlmICghaXNVbmRlZmluZWQoZnJvbS5faXNBTW9tZW50T2JqZWN0KSkge1xuICAgICAgICAgICAgdG8uX2lzQU1vbWVudE9iamVjdCA9IGZyb20uX2lzQU1vbWVudE9iamVjdDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlzVW5kZWZpbmVkKGZyb20uX2kpKSB7XG4gICAgICAgICAgICB0by5faSA9IGZyb20uX2k7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc1VuZGVmaW5lZChmcm9tLl9mKSkge1xuICAgICAgICAgICAgdG8uX2YgPSBmcm9tLl9mO1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNVbmRlZmluZWQoZnJvbS5fbCkpIHtcbiAgICAgICAgICAgIHRvLl9sID0gZnJvbS5fbDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlzVW5kZWZpbmVkKGZyb20uX3N0cmljdCkpIHtcbiAgICAgICAgICAgIHRvLl9zdHJpY3QgPSBmcm9tLl9zdHJpY3Q7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc1VuZGVmaW5lZChmcm9tLl90em0pKSB7XG4gICAgICAgICAgICB0by5fdHptID0gZnJvbS5fdHptO1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNVbmRlZmluZWQoZnJvbS5faXNVVEMpKSB7XG4gICAgICAgICAgICB0by5faXNVVEMgPSBmcm9tLl9pc1VUQztcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlzVW5kZWZpbmVkKGZyb20uX29mZnNldCkpIHtcbiAgICAgICAgICAgIHRvLl9vZmZzZXQgPSBmcm9tLl9vZmZzZXQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc1VuZGVmaW5lZChmcm9tLl9wZikpIHtcbiAgICAgICAgICAgIHRvLl9wZiA9IGdldFBhcnNpbmdGbGFncyhmcm9tKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlzVW5kZWZpbmVkKGZyb20uX2xvY2FsZSkpIHtcbiAgICAgICAgICAgIHRvLl9sb2NhbGUgPSBmcm9tLl9sb2NhbGU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobW9tZW50UHJvcGVydGllcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbW9tZW50UHJvcGVydGllcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIHByb3AgPSBtb21lbnRQcm9wZXJ0aWVzW2ldO1xuICAgICAgICAgICAgICAgIHZhbCA9IGZyb21bcHJvcF07XG4gICAgICAgICAgICAgICAgaWYgKCFpc1VuZGVmaW5lZCh2YWwpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRvW3Byb3BdID0gdmFsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0bztcbiAgICB9XG5cbiAgICAvLyBNb21lbnQgcHJvdG90eXBlIG9iamVjdFxuICAgIGZ1bmN0aW9uIE1vbWVudChjb25maWcpIHtcbiAgICAgICAgY29weUNvbmZpZyh0aGlzLCBjb25maWcpO1xuICAgICAgICB0aGlzLl9kID0gbmV3IERhdGUoY29uZmlnLl9kICE9IG51bGwgPyBjb25maWcuX2QuZ2V0VGltZSgpIDogTmFOKTtcbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgdGhpcy5fZCA9IG5ldyBEYXRlKE5hTik7XG4gICAgICAgIH1cbiAgICAgICAgLy8gUHJldmVudCBpbmZpbml0ZSBsb29wIGluIGNhc2UgdXBkYXRlT2Zmc2V0IGNyZWF0ZXMgbmV3IG1vbWVudFxuICAgICAgICAvLyBvYmplY3RzLlxuICAgICAgICBpZiAodXBkYXRlSW5Qcm9ncmVzcyA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHVwZGF0ZUluUHJvZ3Jlc3MgPSB0cnVlO1xuICAgICAgICAgICAgaG9va3MudXBkYXRlT2Zmc2V0KHRoaXMpO1xuICAgICAgICAgICAgdXBkYXRlSW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNNb21lbnQob2JqKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBvYmogaW5zdGFuY2VvZiBNb21lbnQgfHwgKG9iaiAhPSBudWxsICYmIG9iai5faXNBTW9tZW50T2JqZWN0ICE9IG51bGwpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gd2Fybihtc2cpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgaG9va3Muc3VwcHJlc3NEZXByZWNhdGlvbldhcm5pbmdzID09PSBmYWxzZSAmJlxuICAgICAgICAgICAgdHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnICYmXG4gICAgICAgICAgICBjb25zb2xlLndhcm5cbiAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ0RlcHJlY2F0aW9uIHdhcm5pbmc6ICcgKyBtc2cpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZGVwcmVjYXRlKG1zZywgZm4pIHtcbiAgICAgICAgdmFyIGZpcnN0VGltZSA9IHRydWU7XG5cbiAgICAgICAgcmV0dXJuIGV4dGVuZChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBpZiAoaG9va3MuZGVwcmVjYXRpb25IYW5kbGVyICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICBob29rcy5kZXByZWNhdGlvbkhhbmRsZXIobnVsbCwgbXNnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChmaXJzdFRpbWUpIHtcbiAgICAgICAgICAgICAgICB2YXIgYXJncyA9IFtdLFxuICAgICAgICAgICAgICAgICAgICBhcmcsXG4gICAgICAgICAgICAgICAgICAgIGksXG4gICAgICAgICAgICAgICAgICAgIGtleTtcbiAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGFyZyA9ICcnO1xuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGFyZ3VtZW50c1tpXSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZyArPSAnXFxuWycgKyBpICsgJ10gJztcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoa2V5IGluIGFyZ3VtZW50c1swXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoYXNPd25Qcm9wKGFyZ3VtZW50c1swXSwga2V5KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmcgKz0ga2V5ICsgJzogJyArIGFyZ3VtZW50c1swXVtrZXldICsgJywgJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmcgPSBhcmcuc2xpY2UoMCwgLTIpOyAvLyBSZW1vdmUgdHJhaWxpbmcgY29tbWEgYW5kIHNwYWNlXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmcgPSBhcmd1bWVudHNbaV07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYXJncy5wdXNoKGFyZyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHdhcm4oXG4gICAgICAgICAgICAgICAgICAgIG1zZyArXG4gICAgICAgICAgICAgICAgICAgICAgICAnXFxuQXJndW1lbnRzOiAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3MpLmpvaW4oJycpICtcbiAgICAgICAgICAgICAgICAgICAgICAgICdcXG4nICtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBFcnJvcigpLnN0YWNrXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBmaXJzdFRpbWUgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgICB9LCBmbik7XG4gICAgfVxuXG4gICAgdmFyIGRlcHJlY2F0aW9ucyA9IHt9O1xuXG4gICAgZnVuY3Rpb24gZGVwcmVjYXRlU2ltcGxlKG5hbWUsIG1zZykge1xuICAgICAgICBpZiAoaG9va3MuZGVwcmVjYXRpb25IYW5kbGVyICE9IG51bGwpIHtcbiAgICAgICAgICAgIGhvb2tzLmRlcHJlY2F0aW9uSGFuZGxlcihuYW1lLCBtc2cpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghZGVwcmVjYXRpb25zW25hbWVdKSB7XG4gICAgICAgICAgICB3YXJuKG1zZyk7XG4gICAgICAgICAgICBkZXByZWNhdGlvbnNbbmFtZV0gPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaG9va3Muc3VwcHJlc3NEZXByZWNhdGlvbldhcm5pbmdzID0gZmFsc2U7XG4gICAgaG9va3MuZGVwcmVjYXRpb25IYW5kbGVyID0gbnVsbDtcblxuICAgIGZ1bmN0aW9uIGlzRnVuY3Rpb24oaW5wdXQpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICh0eXBlb2YgRnVuY3Rpb24gIT09ICd1bmRlZmluZWQnICYmIGlucHV0IGluc3RhbmNlb2YgRnVuY3Rpb24pIHx8XG4gICAgICAgICAgICBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoaW5wdXQpID09PSAnW29iamVjdCBGdW5jdGlvbl0nXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc2V0KGNvbmZpZykge1xuICAgICAgICB2YXIgcHJvcCwgaTtcbiAgICAgICAgZm9yIChpIGluIGNvbmZpZykge1xuICAgICAgICAgICAgaWYgKGhhc093blByb3AoY29uZmlnLCBpKSkge1xuICAgICAgICAgICAgICAgIHByb3AgPSBjb25maWdbaV07XG4gICAgICAgICAgICAgICAgaWYgKGlzRnVuY3Rpb24ocHJvcCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpc1tpXSA9IHByb3A7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpc1snXycgKyBpXSA9IHByb3A7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2NvbmZpZyA9IGNvbmZpZztcbiAgICAgICAgLy8gTGVuaWVudCBvcmRpbmFsIHBhcnNpbmcgYWNjZXB0cyBqdXN0IGEgbnVtYmVyIGluIGFkZGl0aW9uIHRvXG4gICAgICAgIC8vIG51bWJlciArIChwb3NzaWJseSkgc3R1ZmYgY29taW5nIGZyb20gX2RheU9mTW9udGhPcmRpbmFsUGFyc2UuXG4gICAgICAgIC8vIFRPRE86IFJlbW92ZSBcIm9yZGluYWxQYXJzZVwiIGZhbGxiYWNrIGluIG5leHQgbWFqb3IgcmVsZWFzZS5cbiAgICAgICAgdGhpcy5fZGF5T2ZNb250aE9yZGluYWxQYXJzZUxlbmllbnQgPSBuZXcgUmVnRXhwKFxuICAgICAgICAgICAgKHRoaXMuX2RheU9mTW9udGhPcmRpbmFsUGFyc2Uuc291cmNlIHx8IHRoaXMuX29yZGluYWxQYXJzZS5zb3VyY2UpICtcbiAgICAgICAgICAgICAgICAnfCcgK1xuICAgICAgICAgICAgICAgIC9cXGR7MSwyfS8uc291cmNlXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbWVyZ2VDb25maWdzKHBhcmVudENvbmZpZywgY2hpbGRDb25maWcpIHtcbiAgICAgICAgdmFyIHJlcyA9IGV4dGVuZCh7fSwgcGFyZW50Q29uZmlnKSxcbiAgICAgICAgICAgIHByb3A7XG4gICAgICAgIGZvciAocHJvcCBpbiBjaGlsZENvbmZpZykge1xuICAgICAgICAgICAgaWYgKGhhc093blByb3AoY2hpbGRDb25maWcsIHByb3ApKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzT2JqZWN0KHBhcmVudENvbmZpZ1twcm9wXSkgJiYgaXNPYmplY3QoY2hpbGRDb25maWdbcHJvcF0pKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc1twcm9wXSA9IHt9O1xuICAgICAgICAgICAgICAgICAgICBleHRlbmQocmVzW3Byb3BdLCBwYXJlbnRDb25maWdbcHJvcF0pO1xuICAgICAgICAgICAgICAgICAgICBleHRlbmQocmVzW3Byb3BdLCBjaGlsZENvbmZpZ1twcm9wXSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjaGlsZENvbmZpZ1twcm9wXSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc1twcm9wXSA9IGNoaWxkQ29uZmlnW3Byb3BdO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSByZXNbcHJvcF07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZvciAocHJvcCBpbiBwYXJlbnRDb25maWcpIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBoYXNPd25Qcm9wKHBhcmVudENvbmZpZywgcHJvcCkgJiZcbiAgICAgICAgICAgICAgICAhaGFzT3duUHJvcChjaGlsZENvbmZpZywgcHJvcCkgJiZcbiAgICAgICAgICAgICAgICBpc09iamVjdChwYXJlbnRDb25maWdbcHJvcF0pXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAvLyBtYWtlIHN1cmUgY2hhbmdlcyB0byBwcm9wZXJ0aWVzIGRvbid0IG1vZGlmeSBwYXJlbnQgY29uZmlnXG4gICAgICAgICAgICAgICAgcmVzW3Byb3BdID0gZXh0ZW5kKHt9LCByZXNbcHJvcF0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gTG9jYWxlKGNvbmZpZykge1xuICAgICAgICBpZiAoY29uZmlnICE9IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0KGNvbmZpZyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIga2V5cztcblxuICAgIGlmIChPYmplY3Qua2V5cykge1xuICAgICAgICBrZXlzID0gT2JqZWN0LmtleXM7XG4gICAgfSBlbHNlIHtcbiAgICAgICAga2V5cyA9IGZ1bmN0aW9uIChvYmopIHtcbiAgICAgICAgICAgIHZhciBpLFxuICAgICAgICAgICAgICAgIHJlcyA9IFtdO1xuICAgICAgICAgICAgZm9yIChpIGluIG9iaikge1xuICAgICAgICAgICAgICAgIGlmIChoYXNPd25Qcm9wKG9iaiwgaSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzLnB1c2goaSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICB2YXIgZGVmYXVsdENhbGVuZGFyID0ge1xuICAgICAgICBzYW1lRGF5OiAnW1RvZGF5IGF0XSBMVCcsXG4gICAgICAgIG5leHREYXk6ICdbVG9tb3Jyb3cgYXRdIExUJyxcbiAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFthdF0gTFQnLFxuICAgICAgICBsYXN0RGF5OiAnW1llc3RlcmRheSBhdF0gTFQnLFxuICAgICAgICBsYXN0V2VlazogJ1tMYXN0XSBkZGRkIFthdF0gTFQnLFxuICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgIH07XG5cbiAgICBmdW5jdGlvbiBjYWxlbmRhcihrZXksIG1vbSwgbm93KSB7XG4gICAgICAgIHZhciBvdXRwdXQgPSB0aGlzLl9jYWxlbmRhcltrZXldIHx8IHRoaXMuX2NhbGVuZGFyWydzYW1lRWxzZSddO1xuICAgICAgICByZXR1cm4gaXNGdW5jdGlvbihvdXRwdXQpID8gb3V0cHV0LmNhbGwobW9tLCBub3cpIDogb3V0cHV0O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHplcm9GaWxsKG51bWJlciwgdGFyZ2V0TGVuZ3RoLCBmb3JjZVNpZ24pIHtcbiAgICAgICAgdmFyIGFic051bWJlciA9ICcnICsgTWF0aC5hYnMobnVtYmVyKSxcbiAgICAgICAgICAgIHplcm9zVG9GaWxsID0gdGFyZ2V0TGVuZ3RoIC0gYWJzTnVtYmVyLmxlbmd0aCxcbiAgICAgICAgICAgIHNpZ24gPSBudW1iZXIgPj0gMDtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIChzaWduID8gKGZvcmNlU2lnbiA/ICcrJyA6ICcnKSA6ICctJykgK1xuICAgICAgICAgICAgTWF0aC5wb3coMTAsIE1hdGgubWF4KDAsIHplcm9zVG9GaWxsKSkudG9TdHJpbmcoKS5zdWJzdHIoMSkgK1xuICAgICAgICAgICAgYWJzTnVtYmVyXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgdmFyIGZvcm1hdHRpbmdUb2tlbnMgPSAvKFxcW1teXFxbXSpcXF0pfChcXFxcKT8oW0hoXW1tKHNzKT98TW98TU0/TT9NP3xEb3xERERvfEREP0Q/RD98ZGRkP2Q/fGRvP3x3W298d10/fFdbb3xXXT98UW8/fE57MSw1fXxZWVlZWVl8WVlZWVl8WVlZWXxZWXx5ezIsNH18eW8/fGdnKGdnZz8pP3xHRyhHR0c/KT98ZXxFfGF8QXxoaD98SEg/fGtrP3xtbT98c3M/fFN7MSw5fXx4fFh8eno/fFpaP3wuKS9nLFxuICAgICAgICBsb2NhbEZvcm1hdHRpbmdUb2tlbnMgPSAvKFxcW1teXFxbXSpcXF0pfChcXFxcKT8oTFRTfExUfExMP0w/TD98bHsxLDR9KS9nLFxuICAgICAgICBmb3JtYXRGdW5jdGlvbnMgPSB7fSxcbiAgICAgICAgZm9ybWF0VG9rZW5GdW5jdGlvbnMgPSB7fTtcblxuICAgIC8vIHRva2VuOiAgICAnTSdcbiAgICAvLyBwYWRkZWQ6ICAgWydNTScsIDJdXG4gICAgLy8gb3JkaW5hbDogICdNbydcbiAgICAvLyBjYWxsYmFjazogZnVuY3Rpb24gKCkgeyB0aGlzLm1vbnRoKCkgKyAxIH1cbiAgICBmdW5jdGlvbiBhZGRGb3JtYXRUb2tlbih0b2tlbiwgcGFkZGVkLCBvcmRpbmFsLCBjYWxsYmFjaykge1xuICAgICAgICB2YXIgZnVuYyA9IGNhbGxiYWNrO1xuICAgICAgICBpZiAodHlwZW9mIGNhbGxiYWNrID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgZnVuYyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpc1tjYWxsYmFja10oKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRva2VuKSB7XG4gICAgICAgICAgICBmb3JtYXRUb2tlbkZ1bmN0aW9uc1t0b2tlbl0gPSBmdW5jO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYWRkZWQpIHtcbiAgICAgICAgICAgIGZvcm1hdFRva2VuRnVuY3Rpb25zW3BhZGRlZFswXV0gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHplcm9GaWxsKGZ1bmMuYXBwbHkodGhpcywgYXJndW1lbnRzKSwgcGFkZGVkWzFdLCBwYWRkZWRbMl0pO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3JkaW5hbCkge1xuICAgICAgICAgICAgZm9ybWF0VG9rZW5GdW5jdGlvbnNbb3JkaW5hbF0gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLm9yZGluYWwoXG4gICAgICAgICAgICAgICAgICAgIGZ1bmMuYXBwbHkodGhpcywgYXJndW1lbnRzKSxcbiAgICAgICAgICAgICAgICAgICAgdG9rZW5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHJlbW92ZUZvcm1hdHRpbmdUb2tlbnMoaW5wdXQpIHtcbiAgICAgICAgaWYgKGlucHV0Lm1hdGNoKC9cXFtbXFxzXFxTXS8pKSB7XG4gICAgICAgICAgICByZXR1cm4gaW5wdXQucmVwbGFjZSgvXlxcW3xcXF0kL2csICcnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaW5wdXQucmVwbGFjZSgvXFxcXC9nLCAnJyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbWFrZUZvcm1hdEZ1bmN0aW9uKGZvcm1hdCkge1xuICAgICAgICB2YXIgYXJyYXkgPSBmb3JtYXQubWF0Y2goZm9ybWF0dGluZ1Rva2VucyksXG4gICAgICAgICAgICBpLFxuICAgICAgICAgICAgbGVuZ3RoO1xuXG4gICAgICAgIGZvciAoaSA9IDAsIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZm9ybWF0VG9rZW5GdW5jdGlvbnNbYXJyYXlbaV1dKSB7XG4gICAgICAgICAgICAgICAgYXJyYXlbaV0gPSBmb3JtYXRUb2tlbkZ1bmN0aW9uc1thcnJheVtpXV07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGFycmF5W2ldID0gcmVtb3ZlRm9ybWF0dGluZ1Rva2VucyhhcnJheVtpXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKG1vbSkge1xuICAgICAgICAgICAgdmFyIG91dHB1dCA9ICcnLFxuICAgICAgICAgICAgICAgIGk7XG4gICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBvdXRwdXQgKz0gaXNGdW5jdGlvbihhcnJheVtpXSlcbiAgICAgICAgICAgICAgICAgICAgPyBhcnJheVtpXS5jYWxsKG1vbSwgZm9ybWF0KVxuICAgICAgICAgICAgICAgICAgICA6IGFycmF5W2ldO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG91dHB1dDtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBmb3JtYXQgZGF0ZSB1c2luZyBuYXRpdmUgZGF0ZSBvYmplY3RcbiAgICBmdW5jdGlvbiBmb3JtYXRNb21lbnQobSwgZm9ybWF0KSB7XG4gICAgICAgIGlmICghbS5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBtLmxvY2FsZURhdGEoKS5pbnZhbGlkRGF0ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9ybWF0ID0gZXhwYW5kRm9ybWF0KGZvcm1hdCwgbS5sb2NhbGVEYXRhKCkpO1xuICAgICAgICBmb3JtYXRGdW5jdGlvbnNbZm9ybWF0XSA9XG4gICAgICAgICAgICBmb3JtYXRGdW5jdGlvbnNbZm9ybWF0XSB8fCBtYWtlRm9ybWF0RnVuY3Rpb24oZm9ybWF0KTtcblxuICAgICAgICByZXR1cm4gZm9ybWF0RnVuY3Rpb25zW2Zvcm1hdF0obSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZXhwYW5kRm9ybWF0KGZvcm1hdCwgbG9jYWxlKSB7XG4gICAgICAgIHZhciBpID0gNTtcblxuICAgICAgICBmdW5jdGlvbiByZXBsYWNlTG9uZ0RhdGVGb3JtYXRUb2tlbnMoaW5wdXQpIHtcbiAgICAgICAgICAgIHJldHVybiBsb2NhbGUubG9uZ0RhdGVGb3JtYXQoaW5wdXQpIHx8IGlucHV0O1xuICAgICAgICB9XG5cbiAgICAgICAgbG9jYWxGb3JtYXR0aW5nVG9rZW5zLmxhc3RJbmRleCA9IDA7XG4gICAgICAgIHdoaWxlIChpID49IDAgJiYgbG9jYWxGb3JtYXR0aW5nVG9rZW5zLnRlc3QoZm9ybWF0KSkge1xuICAgICAgICAgICAgZm9ybWF0ID0gZm9ybWF0LnJlcGxhY2UoXG4gICAgICAgICAgICAgICAgbG9jYWxGb3JtYXR0aW5nVG9rZW5zLFxuICAgICAgICAgICAgICAgIHJlcGxhY2VMb25nRGF0ZUZvcm1hdFRva2Vuc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGxvY2FsRm9ybWF0dGluZ1Rva2Vucy5sYXN0SW5kZXggPSAwO1xuICAgICAgICAgICAgaSAtPSAxO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZvcm1hdDtcbiAgICB9XG5cbiAgICB2YXIgZGVmYXVsdExvbmdEYXRlRm9ybWF0ID0ge1xuICAgICAgICBMVFM6ICdoOm1tOnNzIEEnLFxuICAgICAgICBMVDogJ2g6bW0gQScsXG4gICAgICAgIEw6ICdNTS9ERC9ZWVlZJyxcbiAgICAgICAgTEw6ICdNTU1NIEQsIFlZWVknLFxuICAgICAgICBMTEw6ICdNTU1NIEQsIFlZWVkgaDptbSBBJyxcbiAgICAgICAgTExMTDogJ2RkZGQsIE1NTU0gRCwgWVlZWSBoOm1tIEEnLFxuICAgIH07XG5cbiAgICBmdW5jdGlvbiBsb25nRGF0ZUZvcm1hdChrZXkpIHtcbiAgICAgICAgdmFyIGZvcm1hdCA9IHRoaXMuX2xvbmdEYXRlRm9ybWF0W2tleV0sXG4gICAgICAgICAgICBmb3JtYXRVcHBlciA9IHRoaXMuX2xvbmdEYXRlRm9ybWF0W2tleS50b1VwcGVyQ2FzZSgpXTtcblxuICAgICAgICBpZiAoZm9ybWF0IHx8ICFmb3JtYXRVcHBlcikge1xuICAgICAgICAgICAgcmV0dXJuIGZvcm1hdDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2xvbmdEYXRlRm9ybWF0W2tleV0gPSBmb3JtYXRVcHBlclxuICAgICAgICAgICAgLm1hdGNoKGZvcm1hdHRpbmdUb2tlbnMpXG4gICAgICAgICAgICAubWFwKGZ1bmN0aW9uICh0b2spIHtcbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgIHRvayA9PT0gJ01NTU0nIHx8XG4gICAgICAgICAgICAgICAgICAgIHRvayA9PT0gJ01NJyB8fFxuICAgICAgICAgICAgICAgICAgICB0b2sgPT09ICdERCcgfHxcbiAgICAgICAgICAgICAgICAgICAgdG9rID09PSAnZGRkZCdcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRvay5zbGljZSgxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRvaztcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuam9pbignJyk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2xvbmdEYXRlRm9ybWF0W2tleV07XG4gICAgfVxuXG4gICAgdmFyIGRlZmF1bHRJbnZhbGlkRGF0ZSA9ICdJbnZhbGlkIGRhdGUnO1xuXG4gICAgZnVuY3Rpb24gaW52YWxpZERhdGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbnZhbGlkRGF0ZTtcbiAgICB9XG5cbiAgICB2YXIgZGVmYXVsdE9yZGluYWwgPSAnJWQnLFxuICAgICAgICBkZWZhdWx0RGF5T2ZNb250aE9yZGluYWxQYXJzZSA9IC9cXGR7MSwyfS87XG5cbiAgICBmdW5jdGlvbiBvcmRpbmFsKG51bWJlcikge1xuICAgICAgICByZXR1cm4gdGhpcy5fb3JkaW5hbC5yZXBsYWNlKCclZCcsIG51bWJlcik7XG4gICAgfVxuXG4gICAgdmFyIGRlZmF1bHRSZWxhdGl2ZVRpbWUgPSB7XG4gICAgICAgIGZ1dHVyZTogJ2luICVzJyxcbiAgICAgICAgcGFzdDogJyVzIGFnbycsXG4gICAgICAgIHM6ICdhIGZldyBzZWNvbmRzJyxcbiAgICAgICAgc3M6ICclZCBzZWNvbmRzJyxcbiAgICAgICAgbTogJ2EgbWludXRlJyxcbiAgICAgICAgbW06ICclZCBtaW51dGVzJyxcbiAgICAgICAgaDogJ2FuIGhvdXInLFxuICAgICAgICBoaDogJyVkIGhvdXJzJyxcbiAgICAgICAgZDogJ2EgZGF5JyxcbiAgICAgICAgZGQ6ICclZCBkYXlzJyxcbiAgICAgICAgdzogJ2Egd2VlaycsXG4gICAgICAgIHd3OiAnJWQgd2Vla3MnLFxuICAgICAgICBNOiAnYSBtb250aCcsXG4gICAgICAgIE1NOiAnJWQgbW9udGhzJyxcbiAgICAgICAgeTogJ2EgeWVhcicsXG4gICAgICAgIHl5OiAnJWQgeWVhcnMnLFxuICAgIH07XG5cbiAgICBmdW5jdGlvbiByZWxhdGl2ZVRpbWUobnVtYmVyLCB3aXRob3V0U3VmZml4LCBzdHJpbmcsIGlzRnV0dXJlKSB7XG4gICAgICAgIHZhciBvdXRwdXQgPSB0aGlzLl9yZWxhdGl2ZVRpbWVbc3RyaW5nXTtcbiAgICAgICAgcmV0dXJuIGlzRnVuY3Rpb24ob3V0cHV0KVxuICAgICAgICAgICAgPyBvdXRwdXQobnVtYmVyLCB3aXRob3V0U3VmZml4LCBzdHJpbmcsIGlzRnV0dXJlKVxuICAgICAgICAgICAgOiBvdXRwdXQucmVwbGFjZSgvJWQvaSwgbnVtYmVyKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXN0RnV0dXJlKGRpZmYsIG91dHB1dCkge1xuICAgICAgICB2YXIgZm9ybWF0ID0gdGhpcy5fcmVsYXRpdmVUaW1lW2RpZmYgPiAwID8gJ2Z1dHVyZScgOiAncGFzdCddO1xuICAgICAgICByZXR1cm4gaXNGdW5jdGlvbihmb3JtYXQpID8gZm9ybWF0KG91dHB1dCkgOiBmb3JtYXQucmVwbGFjZSgvJXMvaSwgb3V0cHV0KTtcbiAgICB9XG5cbiAgICB2YXIgYWxpYXNlcyA9IHt9O1xuXG4gICAgZnVuY3Rpb24gYWRkVW5pdEFsaWFzKHVuaXQsIHNob3J0aGFuZCkge1xuICAgICAgICB2YXIgbG93ZXJDYXNlID0gdW5pdC50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBhbGlhc2VzW2xvd2VyQ2FzZV0gPSBhbGlhc2VzW2xvd2VyQ2FzZSArICdzJ10gPSBhbGlhc2VzW3Nob3J0aGFuZF0gPSB1bml0O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG5vcm1hbGl6ZVVuaXRzKHVuaXRzKSB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgdW5pdHMgPT09ICdzdHJpbmcnXG4gICAgICAgICAgICA/IGFsaWFzZXNbdW5pdHNdIHx8IGFsaWFzZXNbdW5pdHMudG9Mb3dlckNhc2UoKV1cbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG5vcm1hbGl6ZU9iamVjdFVuaXRzKGlucHV0T2JqZWN0KSB7XG4gICAgICAgIHZhciBub3JtYWxpemVkSW5wdXQgPSB7fSxcbiAgICAgICAgICAgIG5vcm1hbGl6ZWRQcm9wLFxuICAgICAgICAgICAgcHJvcDtcblxuICAgICAgICBmb3IgKHByb3AgaW4gaW5wdXRPYmplY3QpIHtcbiAgICAgICAgICAgIGlmIChoYXNPd25Qcm9wKGlucHV0T2JqZWN0LCBwcm9wKSkge1xuICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWRQcm9wID0gbm9ybWFsaXplVW5pdHMocHJvcCk7XG4gICAgICAgICAgICAgICAgaWYgKG5vcm1hbGl6ZWRQcm9wKSB7XG4gICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWRJbnB1dFtub3JtYWxpemVkUHJvcF0gPSBpbnB1dE9iamVjdFtwcm9wXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbm9ybWFsaXplZElucHV0O1xuICAgIH1cblxuICAgIHZhciBwcmlvcml0aWVzID0ge307XG5cbiAgICBmdW5jdGlvbiBhZGRVbml0UHJpb3JpdHkodW5pdCwgcHJpb3JpdHkpIHtcbiAgICAgICAgcHJpb3JpdGllc1t1bml0XSA9IHByaW9yaXR5O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldFByaW9yaXRpemVkVW5pdHModW5pdHNPYmopIHtcbiAgICAgICAgdmFyIHVuaXRzID0gW10sXG4gICAgICAgICAgICB1O1xuICAgICAgICBmb3IgKHUgaW4gdW5pdHNPYmopIHtcbiAgICAgICAgICAgIGlmIChoYXNPd25Qcm9wKHVuaXRzT2JqLCB1KSkge1xuICAgICAgICAgICAgICAgIHVuaXRzLnB1c2goeyB1bml0OiB1LCBwcmlvcml0eTogcHJpb3JpdGllc1t1XSB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB1bml0cy5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICAgICAgICByZXR1cm4gYS5wcmlvcml0eSAtIGIucHJpb3JpdHk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdW5pdHM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNMZWFwWWVhcih5ZWFyKSB7XG4gICAgICAgIHJldHVybiAoeWVhciAlIDQgPT09IDAgJiYgeWVhciAlIDEwMCAhPT0gMCkgfHwgeWVhciAlIDQwMCA9PT0gMDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhYnNGbG9vcihudW1iZXIpIHtcbiAgICAgICAgaWYgKG51bWJlciA8IDApIHtcbiAgICAgICAgICAgIC8vIC0wIC0+IDBcbiAgICAgICAgICAgIHJldHVybiBNYXRoLmNlaWwobnVtYmVyKSB8fCAwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIE1hdGguZmxvb3IobnVtYmVyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRvSW50KGFyZ3VtZW50Rm9yQ29lcmNpb24pIHtcbiAgICAgICAgdmFyIGNvZXJjZWROdW1iZXIgPSArYXJndW1lbnRGb3JDb2VyY2lvbixcbiAgICAgICAgICAgIHZhbHVlID0gMDtcblxuICAgICAgICBpZiAoY29lcmNlZE51bWJlciAhPT0gMCAmJiBpc0Zpbml0ZShjb2VyY2VkTnVtYmVyKSkge1xuICAgICAgICAgICAgdmFsdWUgPSBhYnNGbG9vcihjb2VyY2VkTnVtYmVyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtYWtlR2V0U2V0KHVuaXQsIGtlZXBUaW1lKSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgc2V0JDEodGhpcywgdW5pdCwgdmFsdWUpO1xuICAgICAgICAgICAgICAgIGhvb2tzLnVwZGF0ZU9mZnNldCh0aGlzLCBrZWVwVGltZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBnZXQodGhpcywgdW5pdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0KG1vbSwgdW5pdCkge1xuICAgICAgICByZXR1cm4gbW9tLmlzVmFsaWQoKVxuICAgICAgICAgICAgPyBtb20uX2RbJ2dldCcgKyAobW9tLl9pc1VUQyA/ICdVVEMnIDogJycpICsgdW5pdF0oKVxuICAgICAgICAgICAgOiBOYU47XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc2V0JDEobW9tLCB1bml0LCB2YWx1ZSkge1xuICAgICAgICBpZiAobW9tLmlzVmFsaWQoKSAmJiAhaXNOYU4odmFsdWUpKSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgdW5pdCA9PT0gJ0Z1bGxZZWFyJyAmJlxuICAgICAgICAgICAgICAgIGlzTGVhcFllYXIobW9tLnllYXIoKSkgJiZcbiAgICAgICAgICAgICAgICBtb20ubW9udGgoKSA9PT0gMSAmJlxuICAgICAgICAgICAgICAgIG1vbS5kYXRlKCkgPT09IDI5XG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IHRvSW50KHZhbHVlKTtcbiAgICAgICAgICAgICAgICBtb20uX2RbJ3NldCcgKyAobW9tLl9pc1VUQyA/ICdVVEMnIDogJycpICsgdW5pdF0oXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBtb20ubW9udGgoKSxcbiAgICAgICAgICAgICAgICAgICAgZGF5c0luTW9udGgodmFsdWUsIG1vbS5tb250aCgpKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG1vbS5fZFsnc2V0JyArIChtb20uX2lzVVRDID8gJ1VUQycgOiAnJykgKyB1bml0XSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBNT01FTlRTXG5cbiAgICBmdW5jdGlvbiBzdHJpbmdHZXQodW5pdHMpIHtcbiAgICAgICAgdW5pdHMgPSBub3JtYWxpemVVbml0cyh1bml0cyk7XG4gICAgICAgIGlmIChpc0Z1bmN0aW9uKHRoaXNbdW5pdHNdKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXNbdW5pdHNdKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc3RyaW5nU2V0KHVuaXRzLCB2YWx1ZSkge1xuICAgICAgICBpZiAodHlwZW9mIHVuaXRzID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgdW5pdHMgPSBub3JtYWxpemVPYmplY3RVbml0cyh1bml0cyk7XG4gICAgICAgICAgICB2YXIgcHJpb3JpdGl6ZWQgPSBnZXRQcmlvcml0aXplZFVuaXRzKHVuaXRzKSxcbiAgICAgICAgICAgICAgICBpO1xuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHByaW9yaXRpemVkLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgdGhpc1twcmlvcml0aXplZFtpXS51bml0XSh1bml0c1twcmlvcml0aXplZFtpXS51bml0XSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB1bml0cyA9IG5vcm1hbGl6ZVVuaXRzKHVuaXRzKTtcbiAgICAgICAgICAgIGlmIChpc0Z1bmN0aW9uKHRoaXNbdW5pdHNdKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzW3VuaXRzXSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgdmFyIG1hdGNoMSA9IC9cXGQvLCAvLyAgICAgICAwIC0gOVxuICAgICAgICBtYXRjaDIgPSAvXFxkXFxkLywgLy8gICAgICAwMCAtIDk5XG4gICAgICAgIG1hdGNoMyA9IC9cXGR7M30vLCAvLyAgICAgMDAwIC0gOTk5XG4gICAgICAgIG1hdGNoNCA9IC9cXGR7NH0vLCAvLyAgICAwMDAwIC0gOTk5OVxuICAgICAgICBtYXRjaDYgPSAvWystXT9cXGR7Nn0vLCAvLyAtOTk5OTk5IC0gOTk5OTk5XG4gICAgICAgIG1hdGNoMXRvMiA9IC9cXGRcXGQ/LywgLy8gICAgICAgMCAtIDk5XG4gICAgICAgIG1hdGNoM3RvNCA9IC9cXGRcXGRcXGRcXGQ/LywgLy8gICAgIDk5OSAtIDk5OTlcbiAgICAgICAgbWF0Y2g1dG82ID0gL1xcZFxcZFxcZFxcZFxcZFxcZD8vLCAvLyAgIDk5OTk5IC0gOTk5OTk5XG4gICAgICAgIG1hdGNoMXRvMyA9IC9cXGR7MSwzfS8sIC8vICAgICAgIDAgLSA5OTlcbiAgICAgICAgbWF0Y2gxdG80ID0gL1xcZHsxLDR9LywgLy8gICAgICAgMCAtIDk5OTlcbiAgICAgICAgbWF0Y2gxdG82ID0gL1srLV0/XFxkezEsNn0vLCAvLyAtOTk5OTk5IC0gOTk5OTk5XG4gICAgICAgIG1hdGNoVW5zaWduZWQgPSAvXFxkKy8sIC8vICAgICAgIDAgLSBpbmZcbiAgICAgICAgbWF0Y2hTaWduZWQgPSAvWystXT9cXGQrLywgLy8gICAgLWluZiAtIGluZlxuICAgICAgICBtYXRjaE9mZnNldCA9IC9afFsrLV1cXGRcXGQ6P1xcZFxcZC9naSwgLy8gKzAwOjAwIC0wMDowMCArMDAwMCAtMDAwMCBvciBaXG4gICAgICAgIG1hdGNoU2hvcnRPZmZzZXQgPSAvWnxbKy1dXFxkXFxkKD86Oj9cXGRcXGQpPy9naSwgLy8gKzAwIC0wMCArMDA6MDAgLTAwOjAwICswMDAwIC0wMDAwIG9yIFpcbiAgICAgICAgbWF0Y2hUaW1lc3RhbXAgPSAvWystXT9cXGQrKFxcLlxcZHsxLDN9KT8vLCAvLyAxMjM0NTY3ODkgMTIzNDU2Nzg5LjEyM1xuICAgICAgICAvLyBhbnkgd29yZCAob3IgdHdvKSBjaGFyYWN0ZXJzIG9yIG51bWJlcnMgaW5jbHVkaW5nIHR3by90aHJlZSB3b3JkIG1vbnRoIGluIGFyYWJpYy5cbiAgICAgICAgLy8gaW5jbHVkZXMgc2NvdHRpc2ggZ2FlbGljIHR3byB3b3JkIGFuZCBoeXBoZW5hdGVkIG1vbnRoc1xuICAgICAgICBtYXRjaFdvcmQgPSAvWzAtOV17MCwyNTZ9WydhLXpcXHUwMEEwLVxcdTA1RkZcXHUwNzAwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGMDdcXHVGRjEwLVxcdUZGRUZdezEsMjU2fXxbXFx1MDYwMC1cXHUwNkZGXFwvXXsxLDI1Nn0oXFxzKj9bXFx1MDYwMC1cXHUwNkZGXXsxLDI1Nn0pezEsMn0vaSxcbiAgICAgICAgcmVnZXhlcztcblxuICAgIHJlZ2V4ZXMgPSB7fTtcblxuICAgIGZ1bmN0aW9uIGFkZFJlZ2V4VG9rZW4odG9rZW4sIHJlZ2V4LCBzdHJpY3RSZWdleCkge1xuICAgICAgICByZWdleGVzW3Rva2VuXSA9IGlzRnVuY3Rpb24ocmVnZXgpXG4gICAgICAgICAgICA/IHJlZ2V4XG4gICAgICAgICAgICA6IGZ1bmN0aW9uIChpc1N0cmljdCwgbG9jYWxlRGF0YSkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIGlzU3RyaWN0ICYmIHN0cmljdFJlZ2V4ID8gc3RyaWN0UmVnZXggOiByZWdleDtcbiAgICAgICAgICAgICAgfTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRQYXJzZVJlZ2V4Rm9yVG9rZW4odG9rZW4sIGNvbmZpZykge1xuICAgICAgICBpZiAoIWhhc093blByb3AocmVnZXhlcywgdG9rZW4pKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFJlZ0V4cCh1bmVzY2FwZUZvcm1hdCh0b2tlbikpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlZ2V4ZXNbdG9rZW5dKGNvbmZpZy5fc3RyaWN0LCBjb25maWcuX2xvY2FsZSk7XG4gICAgfVxuXG4gICAgLy8gQ29kZSBmcm9tIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMzU2MTQ5My9pcy10aGVyZS1hLXJlZ2V4cC1lc2NhcGUtZnVuY3Rpb24taW4tamF2YXNjcmlwdFxuICAgIGZ1bmN0aW9uIHVuZXNjYXBlRm9ybWF0KHMpIHtcbiAgICAgICAgcmV0dXJuIHJlZ2V4RXNjYXBlKFxuICAgICAgICAgICAgc1xuICAgICAgICAgICAgICAgIC5yZXBsYWNlKCdcXFxcJywgJycpXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcXFwoXFxbKXxcXFxcKFxcXSl8XFxbKFteXFxdXFxbXSopXFxdfFxcXFwoLikvZywgZnVuY3Rpb24gKFxuICAgICAgICAgICAgICAgICAgICBtYXRjaGVkLFxuICAgICAgICAgICAgICAgICAgICBwMSxcbiAgICAgICAgICAgICAgICAgICAgcDIsXG4gICAgICAgICAgICAgICAgICAgIHAzLFxuICAgICAgICAgICAgICAgICAgICBwNFxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcDEgfHwgcDIgfHwgcDMgfHwgcDQ7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiByZWdleEVzY2FwZShzKSB7XG4gICAgICAgIHJldHVybiBzLnJlcGxhY2UoL1stXFwvXFxcXF4kKis/LigpfFtcXF17fV0vZywgJ1xcXFwkJicpO1xuICAgIH1cblxuICAgIHZhciB0b2tlbnMgPSB7fTtcblxuICAgIGZ1bmN0aW9uIGFkZFBhcnNlVG9rZW4odG9rZW4sIGNhbGxiYWNrKSB7XG4gICAgICAgIHZhciBpLFxuICAgICAgICAgICAgZnVuYyA9IGNhbGxiYWNrO1xuICAgICAgICBpZiAodHlwZW9mIHRva2VuID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgdG9rZW4gPSBbdG9rZW5dO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc051bWJlcihjYWxsYmFjaykpIHtcbiAgICAgICAgICAgIGZ1bmMgPSBmdW5jdGlvbiAoaW5wdXQsIGFycmF5KSB7XG4gICAgICAgICAgICAgICAgYXJyYXlbY2FsbGJhY2tdID0gdG9JbnQoaW5wdXQpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdG9rZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHRva2Vuc1t0b2tlbltpXV0gPSBmdW5jO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYWRkV2Vla1BhcnNlVG9rZW4odG9rZW4sIGNhbGxiYWNrKSB7XG4gICAgICAgIGFkZFBhcnNlVG9rZW4odG9rZW4sIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXksIGNvbmZpZywgdG9rZW4pIHtcbiAgICAgICAgICAgIGNvbmZpZy5fdyA9IGNvbmZpZy5fdyB8fCB7fTtcbiAgICAgICAgICAgIGNhbGxiYWNrKGlucHV0LCBjb25maWcuX3csIGNvbmZpZywgdG9rZW4pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhZGRUaW1lVG9BcnJheUZyb21Ub2tlbih0b2tlbiwgaW5wdXQsIGNvbmZpZykge1xuICAgICAgICBpZiAoaW5wdXQgIT0gbnVsbCAmJiBoYXNPd25Qcm9wKHRva2VucywgdG9rZW4pKSB7XG4gICAgICAgICAgICB0b2tlbnNbdG9rZW5dKGlucHV0LCBjb25maWcuX2EsIGNvbmZpZywgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIFlFQVIgPSAwLFxuICAgICAgICBNT05USCA9IDEsXG4gICAgICAgIERBVEUgPSAyLFxuICAgICAgICBIT1VSID0gMyxcbiAgICAgICAgTUlOVVRFID0gNCxcbiAgICAgICAgU0VDT05EID0gNSxcbiAgICAgICAgTUlMTElTRUNPTkQgPSA2LFxuICAgICAgICBXRUVLID0gNyxcbiAgICAgICAgV0VFS0RBWSA9IDg7XG5cbiAgICBmdW5jdGlvbiBtb2QobiwgeCkge1xuICAgICAgICByZXR1cm4gKChuICUgeCkgKyB4KSAlIHg7XG4gICAgfVxuXG4gICAgdmFyIGluZGV4T2Y7XG5cbiAgICBpZiAoQXJyYXkucHJvdG90eXBlLmluZGV4T2YpIHtcbiAgICAgICAgaW5kZXhPZiA9IEFycmF5LnByb3RvdHlwZS5pbmRleE9mO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGluZGV4T2YgPSBmdW5jdGlvbiAobykge1xuICAgICAgICAgICAgLy8gSSBrbm93XG4gICAgICAgICAgICB2YXIgaTtcbiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCB0aGlzLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXNbaV0gPT09IG8pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGRheXNJbk1vbnRoKHllYXIsIG1vbnRoKSB7XG4gICAgICAgIGlmIChpc05hTih5ZWFyKSB8fCBpc05hTihtb250aCkpIHtcbiAgICAgICAgICAgIHJldHVybiBOYU47XG4gICAgICAgIH1cbiAgICAgICAgdmFyIG1vZE1vbnRoID0gbW9kKG1vbnRoLCAxMik7XG4gICAgICAgIHllYXIgKz0gKG1vbnRoIC0gbW9kTW9udGgpIC8gMTI7XG4gICAgICAgIHJldHVybiBtb2RNb250aCA9PT0gMVxuICAgICAgICAgICAgPyBpc0xlYXBZZWFyKHllYXIpXG4gICAgICAgICAgICAgICAgPyAyOVxuICAgICAgICAgICAgICAgIDogMjhcbiAgICAgICAgICAgIDogMzEgLSAoKG1vZE1vbnRoICUgNykgJSAyKTtcbiAgICB9XG5cbiAgICAvLyBGT1JNQVRUSU5HXG5cbiAgICBhZGRGb3JtYXRUb2tlbignTScsIFsnTU0nLCAyXSwgJ01vJywgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5tb250aCgpICsgMTtcbiAgICB9KTtcblxuICAgIGFkZEZvcm1hdFRva2VuKCdNTU0nLCAwLCAwLCBmdW5jdGlvbiAoZm9ybWF0KSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvY2FsZURhdGEoKS5tb250aHNTaG9ydCh0aGlzLCBmb3JtYXQpO1xuICAgIH0pO1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ01NTU0nLCAwLCAwLCBmdW5jdGlvbiAoZm9ybWF0KSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvY2FsZURhdGEoKS5tb250aHModGhpcywgZm9ybWF0KTtcbiAgICB9KTtcblxuICAgIC8vIEFMSUFTRVNcblxuICAgIGFkZFVuaXRBbGlhcygnbW9udGgnLCAnTScpO1xuXG4gICAgLy8gUFJJT1JJVFlcblxuICAgIGFkZFVuaXRQcmlvcml0eSgnbW9udGgnLCA4KTtcblxuICAgIC8vIFBBUlNJTkdcblxuICAgIGFkZFJlZ2V4VG9rZW4oJ00nLCBtYXRjaDF0bzIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ01NJywgbWF0Y2gxdG8yLCBtYXRjaDIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ01NTScsIGZ1bmN0aW9uIChpc1N0cmljdCwgbG9jYWxlKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGUubW9udGhzU2hvcnRSZWdleChpc1N0cmljdCk7XG4gICAgfSk7XG4gICAgYWRkUmVnZXhUb2tlbignTU1NTScsIGZ1bmN0aW9uIChpc1N0cmljdCwgbG9jYWxlKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGUubW9udGhzUmVnZXgoaXNTdHJpY3QpO1xuICAgIH0pO1xuXG4gICAgYWRkUGFyc2VUb2tlbihbJ00nLCAnTU0nXSwgZnVuY3Rpb24gKGlucHV0LCBhcnJheSkge1xuICAgICAgICBhcnJheVtNT05USF0gPSB0b0ludChpbnB1dCkgLSAxO1xuICAgIH0pO1xuXG4gICAgYWRkUGFyc2VUb2tlbihbJ01NTScsICdNTU1NJ10sIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXksIGNvbmZpZywgdG9rZW4pIHtcbiAgICAgICAgdmFyIG1vbnRoID0gY29uZmlnLl9sb2NhbGUubW9udGhzUGFyc2UoaW5wdXQsIHRva2VuLCBjb25maWcuX3N0cmljdCk7XG4gICAgICAgIC8vIGlmIHdlIGRpZG4ndCBmaW5kIGEgbW9udGggbmFtZSwgbWFyayB0aGUgZGF0ZSBhcyBpbnZhbGlkLlxuICAgICAgICBpZiAobW9udGggIT0gbnVsbCkge1xuICAgICAgICAgICAgYXJyYXlbTU9OVEhdID0gbW9udGg7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5pbnZhbGlkTW9udGggPSBpbnB1dDtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gTE9DQUxFU1xuXG4gICAgdmFyIGRlZmF1bHRMb2NhbGVNb250aHMgPSAnSmFudWFyeV9GZWJydWFyeV9NYXJjaF9BcHJpbF9NYXlfSnVuZV9KdWx5X0F1Z3VzdF9TZXB0ZW1iZXJfT2N0b2Jlcl9Ob3ZlbWJlcl9EZWNlbWJlcicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgZGVmYXVsdExvY2FsZU1vbnRoc1Nob3J0ID0gJ0phbl9GZWJfTWFyX0Fwcl9NYXlfSnVuX0p1bF9BdWdfU2VwX09jdF9Ob3ZfRGVjJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBNT05USFNfSU5fRk9STUFUID0gL0Rbb0RdPyhcXFtbXlxcW1xcXV0qXFxdfFxccykrTU1NTT8vLFxuICAgICAgICBkZWZhdWx0TW9udGhzU2hvcnRSZWdleCA9IG1hdGNoV29yZCxcbiAgICAgICAgZGVmYXVsdE1vbnRoc1JlZ2V4ID0gbWF0Y2hXb3JkO1xuXG4gICAgZnVuY3Rpb24gbG9jYWxlTW9udGhzKG0sIGZvcm1hdCkge1xuICAgICAgICBpZiAoIW0pIHtcbiAgICAgICAgICAgIHJldHVybiBpc0FycmF5KHRoaXMuX21vbnRocylcbiAgICAgICAgICAgICAgICA/IHRoaXMuX21vbnRoc1xuICAgICAgICAgICAgICAgIDogdGhpcy5fbW9udGhzWydzdGFuZGFsb25lJ107XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlzQXJyYXkodGhpcy5fbW9udGhzKVxuICAgICAgICAgICAgPyB0aGlzLl9tb250aHNbbS5tb250aCgpXVxuICAgICAgICAgICAgOiB0aGlzLl9tb250aHNbXG4gICAgICAgICAgICAgICAgICAodGhpcy5fbW9udGhzLmlzRm9ybWF0IHx8IE1PTlRIU19JTl9GT1JNQVQpLnRlc3QoZm9ybWF0KVxuICAgICAgICAgICAgICAgICAgICAgID8gJ2Zvcm1hdCdcbiAgICAgICAgICAgICAgICAgICAgICA6ICdzdGFuZGFsb25lJ1xuICAgICAgICAgICAgICBdW20ubW9udGgoKV07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbG9jYWxlTW9udGhzU2hvcnQobSwgZm9ybWF0KSB7XG4gICAgICAgIGlmICghbSkge1xuICAgICAgICAgICAgcmV0dXJuIGlzQXJyYXkodGhpcy5fbW9udGhzU2hvcnQpXG4gICAgICAgICAgICAgICAgPyB0aGlzLl9tb250aHNTaG9ydFxuICAgICAgICAgICAgICAgIDogdGhpcy5fbW9udGhzU2hvcnRbJ3N0YW5kYWxvbmUnXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXNBcnJheSh0aGlzLl9tb250aHNTaG9ydClcbiAgICAgICAgICAgID8gdGhpcy5fbW9udGhzU2hvcnRbbS5tb250aCgpXVxuICAgICAgICAgICAgOiB0aGlzLl9tb250aHNTaG9ydFtcbiAgICAgICAgICAgICAgICAgIE1PTlRIU19JTl9GT1JNQVQudGVzdChmb3JtYXQpID8gJ2Zvcm1hdCcgOiAnc3RhbmRhbG9uZSdcbiAgICAgICAgICAgICAgXVttLm1vbnRoKCldO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGhhbmRsZVN0cmljdFBhcnNlKG1vbnRoTmFtZSwgZm9ybWF0LCBzdHJpY3QpIHtcbiAgICAgICAgdmFyIGksXG4gICAgICAgICAgICBpaSxcbiAgICAgICAgICAgIG1vbSxcbiAgICAgICAgICAgIGxsYyA9IG1vbnRoTmFtZS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuICAgICAgICBpZiAoIXRoaXMuX21vbnRoc1BhcnNlKSB7XG4gICAgICAgICAgICAvLyB0aGlzIGlzIG5vdCB1c2VkXG4gICAgICAgICAgICB0aGlzLl9tb250aHNQYXJzZSA9IFtdO1xuICAgICAgICAgICAgdGhpcy5fbG9uZ01vbnRoc1BhcnNlID0gW107XG4gICAgICAgICAgICB0aGlzLl9zaG9ydE1vbnRoc1BhcnNlID0gW107XG4gICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMTI7ICsraSkge1xuICAgICAgICAgICAgICAgIG1vbSA9IGNyZWF0ZVVUQyhbMjAwMCwgaV0pO1xuICAgICAgICAgICAgICAgIHRoaXMuX3Nob3J0TW9udGhzUGFyc2VbaV0gPSB0aGlzLm1vbnRoc1Nob3J0KFxuICAgICAgICAgICAgICAgICAgICBtb20sXG4gICAgICAgICAgICAgICAgICAgICcnXG4gICAgICAgICAgICAgICAgKS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2xvbmdNb250aHNQYXJzZVtpXSA9IHRoaXMubW9udGhzKG1vbSwgJycpLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc3RyaWN0KSB7XG4gICAgICAgICAgICBpZiAoZm9ybWF0ID09PSAnTU1NJykge1xuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX3Nob3J0TW9udGhzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlpICE9PSAtMSA/IGlpIDogbnVsbDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fbG9uZ01vbnRoc1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIHJldHVybiBpaSAhPT0gLTEgPyBpaSA6IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoZm9ybWF0ID09PSAnTU1NJykge1xuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX3Nob3J0TW9udGhzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgaWYgKGlpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaWk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX2xvbmdNb250aHNQYXJzZSwgbGxjKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaWkgIT09IC0xID8gaWkgOiBudWxsO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl9sb25nTW9udGhzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgaWYgKGlpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaWk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX3Nob3J0TW9udGhzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlpICE9PSAtMSA/IGlpIDogbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxvY2FsZU1vbnRoc1BhcnNlKG1vbnRoTmFtZSwgZm9ybWF0LCBzdHJpY3QpIHtcbiAgICAgICAgdmFyIGksIG1vbSwgcmVnZXg7XG5cbiAgICAgICAgaWYgKHRoaXMuX21vbnRoc1BhcnNlRXhhY3QpIHtcbiAgICAgICAgICAgIHJldHVybiBoYW5kbGVTdHJpY3RQYXJzZS5jYWxsKHRoaXMsIG1vbnRoTmFtZSwgZm9ybWF0LCBzdHJpY3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLl9tb250aHNQYXJzZSkge1xuICAgICAgICAgICAgdGhpcy5fbW9udGhzUGFyc2UgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuX2xvbmdNb250aHNQYXJzZSA9IFtdO1xuICAgICAgICAgICAgdGhpcy5fc2hvcnRNb250aHNQYXJzZSA9IFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVE9ETzogYWRkIHNvcnRpbmdcbiAgICAgICAgLy8gU29ydGluZyBtYWtlcyBzdXJlIGlmIG9uZSBtb250aCAob3IgYWJicikgaXMgYSBwcmVmaXggb2YgYW5vdGhlclxuICAgICAgICAvLyBzZWUgc29ydGluZyBpbiBjb21wdXRlTW9udGhzUGFyc2VcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IDEyOyBpKyspIHtcbiAgICAgICAgICAgIC8vIG1ha2UgdGhlIHJlZ2V4IGlmIHdlIGRvbid0IGhhdmUgaXQgYWxyZWFkeVxuICAgICAgICAgICAgbW9tID0gY3JlYXRlVVRDKFsyMDAwLCBpXSk7XG4gICAgICAgICAgICBpZiAoc3RyaWN0ICYmICF0aGlzLl9sb25nTW9udGhzUGFyc2VbaV0pIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9sb25nTW9udGhzUGFyc2VbaV0gPSBuZXcgUmVnRXhwKFxuICAgICAgICAgICAgICAgICAgICAnXicgKyB0aGlzLm1vbnRocyhtb20sICcnKS5yZXBsYWNlKCcuJywgJycpICsgJyQnLFxuICAgICAgICAgICAgICAgICAgICAnaSdcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHRoaXMuX3Nob3J0TW9udGhzUGFyc2VbaV0gPSBuZXcgUmVnRXhwKFxuICAgICAgICAgICAgICAgICAgICAnXicgKyB0aGlzLm1vbnRoc1Nob3J0KG1vbSwgJycpLnJlcGxhY2UoJy4nLCAnJykgKyAnJCcsXG4gICAgICAgICAgICAgICAgICAgICdpJ1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXN0cmljdCAmJiAhdGhpcy5fbW9udGhzUGFyc2VbaV0pIHtcbiAgICAgICAgICAgICAgICByZWdleCA9XG4gICAgICAgICAgICAgICAgICAgICdeJyArIHRoaXMubW9udGhzKG1vbSwgJycpICsgJ3xeJyArIHRoaXMubW9udGhzU2hvcnQobW9tLCAnJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5fbW9udGhzUGFyc2VbaV0gPSBuZXcgUmVnRXhwKHJlZ2V4LnJlcGxhY2UoJy4nLCAnJyksICdpJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyB0ZXN0IHRoZSByZWdleFxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIHN0cmljdCAmJlxuICAgICAgICAgICAgICAgIGZvcm1hdCA9PT0gJ01NTU0nICYmXG4gICAgICAgICAgICAgICAgdGhpcy5fbG9uZ01vbnRoc1BhcnNlW2ldLnRlc3QobW9udGhOYW1lKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgICAgIHN0cmljdCAmJlxuICAgICAgICAgICAgICAgIGZvcm1hdCA9PT0gJ01NTScgJiZcbiAgICAgICAgICAgICAgICB0aGlzLl9zaG9ydE1vbnRoc1BhcnNlW2ldLnRlc3QobW9udGhOYW1lKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCFzdHJpY3QgJiYgdGhpcy5fbW9udGhzUGFyc2VbaV0udGVzdChtb250aE5hbWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBNT01FTlRTXG5cbiAgICBmdW5jdGlvbiBzZXRNb250aChtb20sIHZhbHVlKSB7XG4gICAgICAgIHZhciBkYXlPZk1vbnRoO1xuXG4gICAgICAgIGlmICghbW9tLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgLy8gTm8gb3BcbiAgICAgICAgICAgIHJldHVybiBtb207XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgaWYgKC9eXFxkKyQvLnRlc3QodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSB0b0ludCh2YWx1ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHZhbHVlID0gbW9tLmxvY2FsZURhdGEoKS5tb250aHNQYXJzZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgLy8gVE9ETzogQW5vdGhlciBzaWxlbnQgZmFpbHVyZT9cbiAgICAgICAgICAgICAgICBpZiAoIWlzTnVtYmVyKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbW9tO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGRheU9mTW9udGggPSBNYXRoLm1pbihtb20uZGF0ZSgpLCBkYXlzSW5Nb250aChtb20ueWVhcigpLCB2YWx1ZSkpO1xuICAgICAgICBtb20uX2RbJ3NldCcgKyAobW9tLl9pc1VUQyA/ICdVVEMnIDogJycpICsgJ01vbnRoJ10odmFsdWUsIGRheU9mTW9udGgpO1xuICAgICAgICByZXR1cm4gbW9tO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldFNldE1vbnRoKHZhbHVlKSB7XG4gICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICBzZXRNb250aCh0aGlzLCB2YWx1ZSk7XG4gICAgICAgICAgICBob29rcy51cGRhdGVPZmZzZXQodGhpcywgdHJ1ZSk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBnZXQodGhpcywgJ01vbnRoJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXREYXlzSW5Nb250aCgpIHtcbiAgICAgICAgcmV0dXJuIGRheXNJbk1vbnRoKHRoaXMueWVhcigpLCB0aGlzLm1vbnRoKCkpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1vbnRoc1Nob3J0UmVnZXgoaXNTdHJpY3QpIHtcbiAgICAgICAgaWYgKHRoaXMuX21vbnRoc1BhcnNlRXhhY3QpIHtcbiAgICAgICAgICAgIGlmICghaGFzT3duUHJvcCh0aGlzLCAnX21vbnRoc1JlZ2V4JykpIHtcbiAgICAgICAgICAgICAgICBjb21wdXRlTW9udGhzUGFyc2UuY2FsbCh0aGlzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc1N0cmljdCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9tb250aHNTaG9ydFN0cmljdFJlZ2V4O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fbW9udGhzU2hvcnRSZWdleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICghaGFzT3duUHJvcCh0aGlzLCAnX21vbnRoc1Nob3J0UmVnZXgnKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX21vbnRoc1Nob3J0UmVnZXggPSBkZWZhdWx0TW9udGhzU2hvcnRSZWdleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9tb250aHNTaG9ydFN0cmljdFJlZ2V4ICYmIGlzU3RyaWN0XG4gICAgICAgICAgICAgICAgPyB0aGlzLl9tb250aHNTaG9ydFN0cmljdFJlZ2V4XG4gICAgICAgICAgICAgICAgOiB0aGlzLl9tb250aHNTaG9ydFJlZ2V4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbW9udGhzUmVnZXgoaXNTdHJpY3QpIHtcbiAgICAgICAgaWYgKHRoaXMuX21vbnRoc1BhcnNlRXhhY3QpIHtcbiAgICAgICAgICAgIGlmICghaGFzT3duUHJvcCh0aGlzLCAnX21vbnRoc1JlZ2V4JykpIHtcbiAgICAgICAgICAgICAgICBjb21wdXRlTW9udGhzUGFyc2UuY2FsbCh0aGlzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc1N0cmljdCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9tb250aHNTdHJpY3RSZWdleDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21vbnRoc1JlZ2V4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKCFoYXNPd25Qcm9wKHRoaXMsICdfbW9udGhzUmVnZXgnKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX21vbnRoc1JlZ2V4ID0gZGVmYXVsdE1vbnRoc1JlZ2V4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21vbnRoc1N0cmljdFJlZ2V4ICYmIGlzU3RyaWN0XG4gICAgICAgICAgICAgICAgPyB0aGlzLl9tb250aHNTdHJpY3RSZWdleFxuICAgICAgICAgICAgICAgIDogdGhpcy5fbW9udGhzUmVnZXg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjb21wdXRlTW9udGhzUGFyc2UoKSB7XG4gICAgICAgIGZ1bmN0aW9uIGNtcExlblJldihhLCBiKSB7XG4gICAgICAgICAgICByZXR1cm4gYi5sZW5ndGggLSBhLmxlbmd0aDtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBzaG9ydFBpZWNlcyA9IFtdLFxuICAgICAgICAgICAgbG9uZ1BpZWNlcyA9IFtdLFxuICAgICAgICAgICAgbWl4ZWRQaWVjZXMgPSBbXSxcbiAgICAgICAgICAgIGksXG4gICAgICAgICAgICBtb207XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCAxMjsgaSsrKSB7XG4gICAgICAgICAgICAvLyBtYWtlIHRoZSByZWdleCBpZiB3ZSBkb24ndCBoYXZlIGl0IGFscmVhZHlcbiAgICAgICAgICAgIG1vbSA9IGNyZWF0ZVVUQyhbMjAwMCwgaV0pO1xuICAgICAgICAgICAgc2hvcnRQaWVjZXMucHVzaCh0aGlzLm1vbnRoc1Nob3J0KG1vbSwgJycpKTtcbiAgICAgICAgICAgIGxvbmdQaWVjZXMucHVzaCh0aGlzLm1vbnRocyhtb20sICcnKSk7XG4gICAgICAgICAgICBtaXhlZFBpZWNlcy5wdXNoKHRoaXMubW9udGhzKG1vbSwgJycpKTtcbiAgICAgICAgICAgIG1peGVkUGllY2VzLnB1c2godGhpcy5tb250aHNTaG9ydChtb20sICcnKSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gU29ydGluZyBtYWtlcyBzdXJlIGlmIG9uZSBtb250aCAob3IgYWJicikgaXMgYSBwcmVmaXggb2YgYW5vdGhlciBpdFxuICAgICAgICAvLyB3aWxsIG1hdGNoIHRoZSBsb25nZXIgcGllY2UuXG4gICAgICAgIHNob3J0UGllY2VzLnNvcnQoY21wTGVuUmV2KTtcbiAgICAgICAgbG9uZ1BpZWNlcy5zb3J0KGNtcExlblJldik7XG4gICAgICAgIG1peGVkUGllY2VzLnNvcnQoY21wTGVuUmV2KTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IDEyOyBpKyspIHtcbiAgICAgICAgICAgIHNob3J0UGllY2VzW2ldID0gcmVnZXhFc2NhcGUoc2hvcnRQaWVjZXNbaV0pO1xuICAgICAgICAgICAgbG9uZ1BpZWNlc1tpXSA9IHJlZ2V4RXNjYXBlKGxvbmdQaWVjZXNbaV0pO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCAyNDsgaSsrKSB7XG4gICAgICAgICAgICBtaXhlZFBpZWNlc1tpXSA9IHJlZ2V4RXNjYXBlKG1peGVkUGllY2VzW2ldKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX21vbnRoc1JlZ2V4ID0gbmV3IFJlZ0V4cCgnXignICsgbWl4ZWRQaWVjZXMuam9pbignfCcpICsgJyknLCAnaScpO1xuICAgICAgICB0aGlzLl9tb250aHNTaG9ydFJlZ2V4ID0gdGhpcy5fbW9udGhzUmVnZXg7XG4gICAgICAgIHRoaXMuX21vbnRoc1N0cmljdFJlZ2V4ID0gbmV3IFJlZ0V4cChcbiAgICAgICAgICAgICdeKCcgKyBsb25nUGllY2VzLmpvaW4oJ3wnKSArICcpJyxcbiAgICAgICAgICAgICdpJ1xuICAgICAgICApO1xuICAgICAgICB0aGlzLl9tb250aHNTaG9ydFN0cmljdFJlZ2V4ID0gbmV3IFJlZ0V4cChcbiAgICAgICAgICAgICdeKCcgKyBzaG9ydFBpZWNlcy5qb2luKCd8JykgKyAnKScsXG4gICAgICAgICAgICAnaSdcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBGT1JNQVRUSU5HXG5cbiAgICBhZGRGb3JtYXRUb2tlbignWScsIDAsIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHkgPSB0aGlzLnllYXIoKTtcbiAgICAgICAgcmV0dXJuIHkgPD0gOTk5OSA/IHplcm9GaWxsKHksIDQpIDogJysnICsgeTtcbiAgICB9KTtcblxuICAgIGFkZEZvcm1hdFRva2VuKDAsIFsnWVknLCAyXSwgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy55ZWFyKCkgJSAxMDA7XG4gICAgfSk7XG5cbiAgICBhZGRGb3JtYXRUb2tlbigwLCBbJ1lZWVknLCA0XSwgMCwgJ3llYXInKTtcbiAgICBhZGRGb3JtYXRUb2tlbigwLCBbJ1lZWVlZJywgNV0sIDAsICd5ZWFyJyk7XG4gICAgYWRkRm9ybWF0VG9rZW4oMCwgWydZWVlZWVknLCA2LCB0cnVlXSwgMCwgJ3llYXInKTtcblxuICAgIC8vIEFMSUFTRVNcblxuICAgIGFkZFVuaXRBbGlhcygneWVhcicsICd5Jyk7XG5cbiAgICAvLyBQUklPUklUSUVTXG5cbiAgICBhZGRVbml0UHJpb3JpdHkoJ3llYXInLCAxKTtcblxuICAgIC8vIFBBUlNJTkdcblxuICAgIGFkZFJlZ2V4VG9rZW4oJ1knLCBtYXRjaFNpZ25lZCk7XG4gICAgYWRkUmVnZXhUb2tlbignWVknLCBtYXRjaDF0bzIsIG1hdGNoMik7XG4gICAgYWRkUmVnZXhUb2tlbignWVlZWScsIG1hdGNoMXRvNCwgbWF0Y2g0KTtcbiAgICBhZGRSZWdleFRva2VuKCdZWVlZWScsIG1hdGNoMXRvNiwgbWF0Y2g2KTtcbiAgICBhZGRSZWdleFRva2VuKCdZWVlZWVknLCBtYXRjaDF0bzYsIG1hdGNoNik7XG5cbiAgICBhZGRQYXJzZVRva2VuKFsnWVlZWVknLCAnWVlZWVlZJ10sIFlFQVIpO1xuICAgIGFkZFBhcnNlVG9rZW4oJ1lZWVknLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5KSB7XG4gICAgICAgIGFycmF5W1lFQVJdID1cbiAgICAgICAgICAgIGlucHV0Lmxlbmd0aCA9PT0gMiA/IGhvb2tzLnBhcnNlVHdvRGlnaXRZZWFyKGlucHV0KSA6IHRvSW50KGlucHV0KTtcbiAgICB9KTtcbiAgICBhZGRQYXJzZVRva2VuKCdZWScsIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXkpIHtcbiAgICAgICAgYXJyYXlbWUVBUl0gPSBob29rcy5wYXJzZVR3b0RpZ2l0WWVhcihpbnB1dCk7XG4gICAgfSk7XG4gICAgYWRkUGFyc2VUb2tlbignWScsIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXkpIHtcbiAgICAgICAgYXJyYXlbWUVBUl0gPSBwYXJzZUludChpbnB1dCwgMTApO1xuICAgIH0pO1xuXG4gICAgLy8gSEVMUEVSU1xuXG4gICAgZnVuY3Rpb24gZGF5c0luWWVhcih5ZWFyKSB7XG4gICAgICAgIHJldHVybiBpc0xlYXBZZWFyKHllYXIpID8gMzY2IDogMzY1O1xuICAgIH1cblxuICAgIC8vIEhPT0tTXG5cbiAgICBob29rcy5wYXJzZVR3b0RpZ2l0WWVhciA9IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICByZXR1cm4gdG9JbnQoaW5wdXQpICsgKHRvSW50KGlucHV0KSA+IDY4ID8gMTkwMCA6IDIwMDApO1xuICAgIH07XG5cbiAgICAvLyBNT01FTlRTXG5cbiAgICB2YXIgZ2V0U2V0WWVhciA9IG1ha2VHZXRTZXQoJ0Z1bGxZZWFyJywgdHJ1ZSk7XG5cbiAgICBmdW5jdGlvbiBnZXRJc0xlYXBZZWFyKCkge1xuICAgICAgICByZXR1cm4gaXNMZWFwWWVhcih0aGlzLnllYXIoKSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY3JlYXRlRGF0ZSh5LCBtLCBkLCBoLCBNLCBzLCBtcykge1xuICAgICAgICAvLyBjYW4ndCBqdXN0IGFwcGx5KCkgdG8gY3JlYXRlIGEgZGF0ZTpcbiAgICAgICAgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xLzE4MTM0OFxuICAgICAgICB2YXIgZGF0ZTtcbiAgICAgICAgLy8gdGhlIGRhdGUgY29uc3RydWN0b3IgcmVtYXBzIHllYXJzIDAtOTkgdG8gMTkwMC0xOTk5XG4gICAgICAgIGlmICh5IDwgMTAwICYmIHkgPj0gMCkge1xuICAgICAgICAgICAgLy8gcHJlc2VydmUgbGVhcCB5ZWFycyB1c2luZyBhIGZ1bGwgNDAwIHllYXIgY3ljbGUsIHRoZW4gcmVzZXRcbiAgICAgICAgICAgIGRhdGUgPSBuZXcgRGF0ZSh5ICsgNDAwLCBtLCBkLCBoLCBNLCBzLCBtcyk7XG4gICAgICAgICAgICBpZiAoaXNGaW5pdGUoZGF0ZS5nZXRGdWxsWWVhcigpKSkge1xuICAgICAgICAgICAgICAgIGRhdGUuc2V0RnVsbFllYXIoeSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBkYXRlID0gbmV3IERhdGUoeSwgbSwgZCwgaCwgTSwgcywgbXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGRhdGU7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY3JlYXRlVVRDRGF0ZSh5KSB7XG4gICAgICAgIHZhciBkYXRlLCBhcmdzO1xuICAgICAgICAvLyB0aGUgRGF0ZS5VVEMgZnVuY3Rpb24gcmVtYXBzIHllYXJzIDAtOTkgdG8gMTkwMC0xOTk5XG4gICAgICAgIGlmICh5IDwgMTAwICYmIHkgPj0gMCkge1xuICAgICAgICAgICAgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7XG4gICAgICAgICAgICAvLyBwcmVzZXJ2ZSBsZWFwIHllYXJzIHVzaW5nIGEgZnVsbCA0MDAgeWVhciBjeWNsZSwgdGhlbiByZXNldFxuICAgICAgICAgICAgYXJnc1swXSA9IHkgKyA0MDA7XG4gICAgICAgICAgICBkYXRlID0gbmV3IERhdGUoRGF0ZS5VVEMuYXBwbHkobnVsbCwgYXJncykpO1xuICAgICAgICAgICAgaWYgKGlzRmluaXRlKGRhdGUuZ2V0VVRDRnVsbFllYXIoKSkpIHtcbiAgICAgICAgICAgICAgICBkYXRlLnNldFVUQ0Z1bGxZZWFyKHkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGF0ZSA9IG5ldyBEYXRlKERhdGUuVVRDLmFwcGx5KG51bGwsIGFyZ3VtZW50cykpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGRhdGU7XG4gICAgfVxuXG4gICAgLy8gc3RhcnQtb2YtZmlyc3Qtd2VlayAtIHN0YXJ0LW9mLXllYXJcbiAgICBmdW5jdGlvbiBmaXJzdFdlZWtPZmZzZXQoeWVhciwgZG93LCBkb3kpIHtcbiAgICAgICAgdmFyIC8vIGZpcnN0LXdlZWsgZGF5IC0tIHdoaWNoIGphbnVhcnkgaXMgYWx3YXlzIGluIHRoZSBmaXJzdCB3ZWVrICg0IGZvciBpc28sIDEgZm9yIG90aGVyKVxuICAgICAgICAgICAgZndkID0gNyArIGRvdyAtIGRveSxcbiAgICAgICAgICAgIC8vIGZpcnN0LXdlZWsgZGF5IGxvY2FsIHdlZWtkYXkgLS0gd2hpY2ggbG9jYWwgd2Vla2RheSBpcyBmd2RcbiAgICAgICAgICAgIGZ3ZGx3ID0gKDcgKyBjcmVhdGVVVENEYXRlKHllYXIsIDAsIGZ3ZCkuZ2V0VVRDRGF5KCkgLSBkb3cpICUgNztcblxuICAgICAgICByZXR1cm4gLWZ3ZGx3ICsgZndkIC0gMTtcbiAgICB9XG5cbiAgICAvLyBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fd2Vla19kYXRlI0NhbGN1bGF0aW5nX2FfZGF0ZV9naXZlbl90aGVfeWVhci4yQ193ZWVrX251bWJlcl9hbmRfd2Vla2RheVxuICAgIGZ1bmN0aW9uIGRheU9mWWVhckZyb21XZWVrcyh5ZWFyLCB3ZWVrLCB3ZWVrZGF5LCBkb3csIGRveSkge1xuICAgICAgICB2YXIgbG9jYWxXZWVrZGF5ID0gKDcgKyB3ZWVrZGF5IC0gZG93KSAlIDcsXG4gICAgICAgICAgICB3ZWVrT2Zmc2V0ID0gZmlyc3RXZWVrT2Zmc2V0KHllYXIsIGRvdywgZG95KSxcbiAgICAgICAgICAgIGRheU9mWWVhciA9IDEgKyA3ICogKHdlZWsgLSAxKSArIGxvY2FsV2Vla2RheSArIHdlZWtPZmZzZXQsXG4gICAgICAgICAgICByZXNZZWFyLFxuICAgICAgICAgICAgcmVzRGF5T2ZZZWFyO1xuXG4gICAgICAgIGlmIChkYXlPZlllYXIgPD0gMCkge1xuICAgICAgICAgICAgcmVzWWVhciA9IHllYXIgLSAxO1xuICAgICAgICAgICAgcmVzRGF5T2ZZZWFyID0gZGF5c0luWWVhcihyZXNZZWFyKSArIGRheU9mWWVhcjtcbiAgICAgICAgfSBlbHNlIGlmIChkYXlPZlllYXIgPiBkYXlzSW5ZZWFyKHllYXIpKSB7XG4gICAgICAgICAgICByZXNZZWFyID0geWVhciArIDE7XG4gICAgICAgICAgICByZXNEYXlPZlllYXIgPSBkYXlPZlllYXIgLSBkYXlzSW5ZZWFyKHllYXIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzWWVhciA9IHllYXI7XG4gICAgICAgICAgICByZXNEYXlPZlllYXIgPSBkYXlPZlllYXI7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgeWVhcjogcmVzWWVhcixcbiAgICAgICAgICAgIGRheU9mWWVhcjogcmVzRGF5T2ZZZWFyLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHdlZWtPZlllYXIobW9tLCBkb3csIGRveSkge1xuICAgICAgICB2YXIgd2Vla09mZnNldCA9IGZpcnN0V2Vla09mZnNldChtb20ueWVhcigpLCBkb3csIGRveSksXG4gICAgICAgICAgICB3ZWVrID0gTWF0aC5mbG9vcigobW9tLmRheU9mWWVhcigpIC0gd2Vla09mZnNldCAtIDEpIC8gNykgKyAxLFxuICAgICAgICAgICAgcmVzV2VlayxcbiAgICAgICAgICAgIHJlc1llYXI7XG5cbiAgICAgICAgaWYgKHdlZWsgPCAxKSB7XG4gICAgICAgICAgICByZXNZZWFyID0gbW9tLnllYXIoKSAtIDE7XG4gICAgICAgICAgICByZXNXZWVrID0gd2VlayArIHdlZWtzSW5ZZWFyKHJlc1llYXIsIGRvdywgZG95KTtcbiAgICAgICAgfSBlbHNlIGlmICh3ZWVrID4gd2Vla3NJblllYXIobW9tLnllYXIoKSwgZG93LCBkb3kpKSB7XG4gICAgICAgICAgICByZXNXZWVrID0gd2VlayAtIHdlZWtzSW5ZZWFyKG1vbS55ZWFyKCksIGRvdywgZG95KTtcbiAgICAgICAgICAgIHJlc1llYXIgPSBtb20ueWVhcigpICsgMTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc1llYXIgPSBtb20ueWVhcigpO1xuICAgICAgICAgICAgcmVzV2VlayA9IHdlZWs7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgd2VlazogcmVzV2VlayxcbiAgICAgICAgICAgIHllYXI6IHJlc1llYXIsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gd2Vla3NJblllYXIoeWVhciwgZG93LCBkb3kpIHtcbiAgICAgICAgdmFyIHdlZWtPZmZzZXQgPSBmaXJzdFdlZWtPZmZzZXQoeWVhciwgZG93LCBkb3kpLFxuICAgICAgICAgICAgd2Vla09mZnNldE5leHQgPSBmaXJzdFdlZWtPZmZzZXQoeWVhciArIDEsIGRvdywgZG95KTtcbiAgICAgICAgcmV0dXJuIChkYXlzSW5ZZWFyKHllYXIpIC0gd2Vla09mZnNldCArIHdlZWtPZmZzZXROZXh0KSAvIDc7XG4gICAgfVxuXG4gICAgLy8gRk9STUFUVElOR1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ3cnLCBbJ3d3JywgMl0sICd3bycsICd3ZWVrJyk7XG4gICAgYWRkRm9ybWF0VG9rZW4oJ1cnLCBbJ1dXJywgMl0sICdXbycsICdpc29XZWVrJyk7XG5cbiAgICAvLyBBTElBU0VTXG5cbiAgICBhZGRVbml0QWxpYXMoJ3dlZWsnLCAndycpO1xuICAgIGFkZFVuaXRBbGlhcygnaXNvV2VlaycsICdXJyk7XG5cbiAgICAvLyBQUklPUklUSUVTXG5cbiAgICBhZGRVbml0UHJpb3JpdHkoJ3dlZWsnLCA1KTtcbiAgICBhZGRVbml0UHJpb3JpdHkoJ2lzb1dlZWsnLCA1KTtcblxuICAgIC8vIFBBUlNJTkdcblxuICAgIGFkZFJlZ2V4VG9rZW4oJ3cnLCBtYXRjaDF0bzIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ3d3JywgbWF0Y2gxdG8yLCBtYXRjaDIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ1cnLCBtYXRjaDF0bzIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ1dXJywgbWF0Y2gxdG8yLCBtYXRjaDIpO1xuXG4gICAgYWRkV2Vla1BhcnNlVG9rZW4oWyd3JywgJ3d3JywgJ1cnLCAnV1cnXSwgZnVuY3Rpb24gKFxuICAgICAgICBpbnB1dCxcbiAgICAgICAgd2VlayxcbiAgICAgICAgY29uZmlnLFxuICAgICAgICB0b2tlblxuICAgICkge1xuICAgICAgICB3ZWVrW3Rva2VuLnN1YnN0cigwLCAxKV0gPSB0b0ludChpbnB1dCk7XG4gICAgfSk7XG5cbiAgICAvLyBIRUxQRVJTXG5cbiAgICAvLyBMT0NBTEVTXG5cbiAgICBmdW5jdGlvbiBsb2NhbGVXZWVrKG1vbSkge1xuICAgICAgICByZXR1cm4gd2Vla09mWWVhcihtb20sIHRoaXMuX3dlZWsuZG93LCB0aGlzLl93ZWVrLmRveSkud2VlaztcbiAgICB9XG5cbiAgICB2YXIgZGVmYXVsdExvY2FsZVdlZWsgPSB7XG4gICAgICAgIGRvdzogMCwgLy8gU3VuZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgIGRveTogNiwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNnRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgIH07XG5cbiAgICBmdW5jdGlvbiBsb2NhbGVGaXJzdERheU9mV2VlaygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3dlZWsuZG93O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxvY2FsZUZpcnN0RGF5T2ZZZWFyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fd2Vlay5kb3k7XG4gICAgfVxuXG4gICAgLy8gTU9NRU5UU1xuXG4gICAgZnVuY3Rpb24gZ2V0U2V0V2VlayhpbnB1dCkge1xuICAgICAgICB2YXIgd2VlayA9IHRoaXMubG9jYWxlRGF0YSgpLndlZWsodGhpcyk7XG4gICAgICAgIHJldHVybiBpbnB1dCA9PSBudWxsID8gd2VlayA6IHRoaXMuYWRkKChpbnB1dCAtIHdlZWspICogNywgJ2QnKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRTZXRJU09XZWVrKGlucHV0KSB7XG4gICAgICAgIHZhciB3ZWVrID0gd2Vla09mWWVhcih0aGlzLCAxLCA0KS53ZWVrO1xuICAgICAgICByZXR1cm4gaW5wdXQgPT0gbnVsbCA/IHdlZWsgOiB0aGlzLmFkZCgoaW5wdXQgLSB3ZWVrKSAqIDcsICdkJyk7XG4gICAgfVxuXG4gICAgLy8gRk9STUFUVElOR1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ2QnLCAwLCAnZG8nLCAnZGF5Jyk7XG5cbiAgICBhZGRGb3JtYXRUb2tlbignZGQnLCAwLCAwLCBmdW5jdGlvbiAoZm9ybWF0KSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvY2FsZURhdGEoKS53ZWVrZGF5c01pbih0aGlzLCBmb3JtYXQpO1xuICAgIH0pO1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ2RkZCcsIDAsIDAsIGZ1bmN0aW9uIChmb3JtYXQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLndlZWtkYXlzU2hvcnQodGhpcywgZm9ybWF0KTtcbiAgICB9KTtcblxuICAgIGFkZEZvcm1hdFRva2VuKCdkZGRkJywgMCwgMCwgZnVuY3Rpb24gKGZvcm1hdCkge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkud2Vla2RheXModGhpcywgZm9ybWF0KTtcbiAgICB9KTtcblxuICAgIGFkZEZvcm1hdFRva2VuKCdlJywgMCwgMCwgJ3dlZWtkYXknKTtcbiAgICBhZGRGb3JtYXRUb2tlbignRScsIDAsIDAsICdpc29XZWVrZGF5Jyk7XG5cbiAgICAvLyBBTElBU0VTXG5cbiAgICBhZGRVbml0QWxpYXMoJ2RheScsICdkJyk7XG4gICAgYWRkVW5pdEFsaWFzKCd3ZWVrZGF5JywgJ2UnKTtcbiAgICBhZGRVbml0QWxpYXMoJ2lzb1dlZWtkYXknLCAnRScpO1xuXG4gICAgLy8gUFJJT1JJVFlcbiAgICBhZGRVbml0UHJpb3JpdHkoJ2RheScsIDExKTtcbiAgICBhZGRVbml0UHJpb3JpdHkoJ3dlZWtkYXknLCAxMSk7XG4gICAgYWRkVW5pdFByaW9yaXR5KCdpc29XZWVrZGF5JywgMTEpO1xuXG4gICAgLy8gUEFSU0lOR1xuXG4gICAgYWRkUmVnZXhUb2tlbignZCcsIG1hdGNoMXRvMik7XG4gICAgYWRkUmVnZXhUb2tlbignZScsIG1hdGNoMXRvMik7XG4gICAgYWRkUmVnZXhUb2tlbignRScsIG1hdGNoMXRvMik7XG4gICAgYWRkUmVnZXhUb2tlbignZGQnLCBmdW5jdGlvbiAoaXNTdHJpY3QsIGxvY2FsZSkge1xuICAgICAgICByZXR1cm4gbG9jYWxlLndlZWtkYXlzTWluUmVnZXgoaXNTdHJpY3QpO1xuICAgIH0pO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ2RkZCcsIGZ1bmN0aW9uIChpc1N0cmljdCwgbG9jYWxlKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGUud2Vla2RheXNTaG9ydFJlZ2V4KGlzU3RyaWN0KTtcbiAgICB9KTtcbiAgICBhZGRSZWdleFRva2VuKCdkZGRkJywgZnVuY3Rpb24gKGlzU3RyaWN0LCBsb2NhbGUpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZS53ZWVrZGF5c1JlZ2V4KGlzU3RyaWN0KTtcbiAgICB9KTtcblxuICAgIGFkZFdlZWtQYXJzZVRva2VuKFsnZGQnLCAnZGRkJywgJ2RkZGQnXSwgZnVuY3Rpb24gKGlucHV0LCB3ZWVrLCBjb25maWcsIHRva2VuKSB7XG4gICAgICAgIHZhciB3ZWVrZGF5ID0gY29uZmlnLl9sb2NhbGUud2Vla2RheXNQYXJzZShpbnB1dCwgdG9rZW4sIGNvbmZpZy5fc3RyaWN0KTtcbiAgICAgICAgLy8gaWYgd2UgZGlkbid0IGdldCBhIHdlZWtkYXkgbmFtZSwgbWFyayB0aGUgZGF0ZSBhcyBpbnZhbGlkXG4gICAgICAgIGlmICh3ZWVrZGF5ICE9IG51bGwpIHtcbiAgICAgICAgICAgIHdlZWsuZCA9IHdlZWtkYXk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5pbnZhbGlkV2Vla2RheSA9IGlucHV0O1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICBhZGRXZWVrUGFyc2VUb2tlbihbJ2QnLCAnZScsICdFJ10sIGZ1bmN0aW9uIChpbnB1dCwgd2VlaywgY29uZmlnLCB0b2tlbikge1xuICAgICAgICB3ZWVrW3Rva2VuXSA9IHRvSW50KGlucHV0KTtcbiAgICB9KTtcblxuICAgIC8vIEhFTFBFUlNcblxuICAgIGZ1bmN0aW9uIHBhcnNlV2Vla2RheShpbnB1dCwgbG9jYWxlKSB7XG4gICAgICAgIGlmICh0eXBlb2YgaW5wdXQgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gaW5wdXQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWlzTmFOKGlucHV0KSkge1xuICAgICAgICAgICAgcmV0dXJuIHBhcnNlSW50KGlucHV0LCAxMCk7XG4gICAgICAgIH1cblxuICAgICAgICBpbnB1dCA9IGxvY2FsZS53ZWVrZGF5c1BhcnNlKGlucHV0KTtcbiAgICAgICAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnB1dDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlSXNvV2Vla2RheShpbnB1dCwgbG9jYWxlKSB7XG4gICAgICAgIGlmICh0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gbG9jYWxlLndlZWtkYXlzUGFyc2UoaW5wdXQpICUgNyB8fCA3O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpc05hTihpbnB1dCkgPyBudWxsIDogaW5wdXQ7XG4gICAgfVxuXG4gICAgLy8gTE9DQUxFU1xuICAgIGZ1bmN0aW9uIHNoaWZ0V2Vla2RheXMod3MsIG4pIHtcbiAgICAgICAgcmV0dXJuIHdzLnNsaWNlKG4sIDcpLmNvbmNhdCh3cy5zbGljZSgwLCBuKSk7XG4gICAgfVxuXG4gICAgdmFyIGRlZmF1bHRMb2NhbGVXZWVrZGF5cyA9ICdTdW5kYXlfTW9uZGF5X1R1ZXNkYXlfV2VkbmVzZGF5X1RodXJzZGF5X0ZyaWRheV9TYXR1cmRheScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgZGVmYXVsdExvY2FsZVdlZWtkYXlzU2hvcnQgPSAnU3VuX01vbl9UdWVfV2VkX1RodV9GcmlfU2F0Jy5zcGxpdCgnXycpLFxuICAgICAgICBkZWZhdWx0TG9jYWxlV2Vla2RheXNNaW4gPSAnU3VfTW9fVHVfV2VfVGhfRnJfU2EnLnNwbGl0KCdfJyksXG4gICAgICAgIGRlZmF1bHRXZWVrZGF5c1JlZ2V4ID0gbWF0Y2hXb3JkLFxuICAgICAgICBkZWZhdWx0V2Vla2RheXNTaG9ydFJlZ2V4ID0gbWF0Y2hXb3JkLFxuICAgICAgICBkZWZhdWx0V2Vla2RheXNNaW5SZWdleCA9IG1hdGNoV29yZDtcblxuICAgIGZ1bmN0aW9uIGxvY2FsZVdlZWtkYXlzKG0sIGZvcm1hdCkge1xuICAgICAgICB2YXIgd2Vla2RheXMgPSBpc0FycmF5KHRoaXMuX3dlZWtkYXlzKVxuICAgICAgICAgICAgPyB0aGlzLl93ZWVrZGF5c1xuICAgICAgICAgICAgOiB0aGlzLl93ZWVrZGF5c1tcbiAgICAgICAgICAgICAgICAgIG0gJiYgbSAhPT0gdHJ1ZSAmJiB0aGlzLl93ZWVrZGF5cy5pc0Zvcm1hdC50ZXN0KGZvcm1hdClcbiAgICAgICAgICAgICAgICAgICAgICA/ICdmb3JtYXQnXG4gICAgICAgICAgICAgICAgICAgICAgOiAnc3RhbmRhbG9uZSdcbiAgICAgICAgICAgICAgXTtcbiAgICAgICAgcmV0dXJuIG0gPT09IHRydWVcbiAgICAgICAgICAgID8gc2hpZnRXZWVrZGF5cyh3ZWVrZGF5cywgdGhpcy5fd2Vlay5kb3cpXG4gICAgICAgICAgICA6IG1cbiAgICAgICAgICAgID8gd2Vla2RheXNbbS5kYXkoKV1cbiAgICAgICAgICAgIDogd2Vla2RheXM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbG9jYWxlV2Vla2RheXNTaG9ydChtKSB7XG4gICAgICAgIHJldHVybiBtID09PSB0cnVlXG4gICAgICAgICAgICA/IHNoaWZ0V2Vla2RheXModGhpcy5fd2Vla2RheXNTaG9ydCwgdGhpcy5fd2Vlay5kb3cpXG4gICAgICAgICAgICA6IG1cbiAgICAgICAgICAgID8gdGhpcy5fd2Vla2RheXNTaG9ydFttLmRheSgpXVxuICAgICAgICAgICAgOiB0aGlzLl93ZWVrZGF5c1Nob3J0O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxvY2FsZVdlZWtkYXlzTWluKG0pIHtcbiAgICAgICAgcmV0dXJuIG0gPT09IHRydWVcbiAgICAgICAgICAgID8gc2hpZnRXZWVrZGF5cyh0aGlzLl93ZWVrZGF5c01pbiwgdGhpcy5fd2Vlay5kb3cpXG4gICAgICAgICAgICA6IG1cbiAgICAgICAgICAgID8gdGhpcy5fd2Vla2RheXNNaW5bbS5kYXkoKV1cbiAgICAgICAgICAgIDogdGhpcy5fd2Vla2RheXNNaW47XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaGFuZGxlU3RyaWN0UGFyc2UkMSh3ZWVrZGF5TmFtZSwgZm9ybWF0LCBzdHJpY3QpIHtcbiAgICAgICAgdmFyIGksXG4gICAgICAgICAgICBpaSxcbiAgICAgICAgICAgIG1vbSxcbiAgICAgICAgICAgIGxsYyA9IHdlZWtkYXlOYW1lLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG4gICAgICAgIGlmICghdGhpcy5fd2Vla2RheXNQYXJzZSkge1xuICAgICAgICAgICAgdGhpcy5fd2Vla2RheXNQYXJzZSA9IFtdO1xuICAgICAgICAgICAgdGhpcy5fc2hvcnRXZWVrZGF5c1BhcnNlID0gW107XG4gICAgICAgICAgICB0aGlzLl9taW5XZWVrZGF5c1BhcnNlID0gW107XG5cbiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCA3OyArK2kpIHtcbiAgICAgICAgICAgICAgICBtb20gPSBjcmVhdGVVVEMoWzIwMDAsIDFdKS5kYXkoaSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fbWluV2Vla2RheXNQYXJzZVtpXSA9IHRoaXMud2Vla2RheXNNaW4oXG4gICAgICAgICAgICAgICAgICAgIG1vbSxcbiAgICAgICAgICAgICAgICAgICAgJydcbiAgICAgICAgICAgICAgICApLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2hvcnRXZWVrZGF5c1BhcnNlW2ldID0gdGhpcy53ZWVrZGF5c1Nob3J0KFxuICAgICAgICAgICAgICAgICAgICBtb20sXG4gICAgICAgICAgICAgICAgICAgICcnXG4gICAgICAgICAgICAgICAgKS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3dlZWtkYXlzUGFyc2VbaV0gPSB0aGlzLndlZWtkYXlzKG1vbSwgJycpLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc3RyaWN0KSB7XG4gICAgICAgICAgICBpZiAoZm9ybWF0ID09PSAnZGRkZCcpIHtcbiAgICAgICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl93ZWVrZGF5c1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIHJldHVybiBpaSAhPT0gLTEgPyBpaSA6IG51bGw7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdCA9PT0gJ2RkZCcpIHtcbiAgICAgICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl9zaG9ydFdlZWtkYXlzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlpICE9PSAtMSA/IGlpIDogbnVsbDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fbWluV2Vla2RheXNQYXJzZSwgbGxjKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaWkgIT09IC0xID8gaWkgOiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGZvcm1hdCA9PT0gJ2RkZGQnKSB7XG4gICAgICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fd2Vla2RheXNQYXJzZSwgbGxjKTtcbiAgICAgICAgICAgICAgICBpZiAoaWkgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBpaTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fc2hvcnRXZWVrZGF5c1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIGlmIChpaSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGlpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl9taW5XZWVrZGF5c1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIHJldHVybiBpaSAhPT0gLTEgPyBpaSA6IG51bGw7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdCA9PT0gJ2RkZCcpIHtcbiAgICAgICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl9zaG9ydFdlZWtkYXlzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgaWYgKGlpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaWk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX3dlZWtkYXlzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgaWYgKGlpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaWk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX21pbldlZWtkYXlzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlpICE9PSAtMSA/IGlpIDogbnVsbDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fbWluV2Vla2RheXNQYXJzZSwgbGxjKTtcbiAgICAgICAgICAgICAgICBpZiAoaWkgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBpaTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fd2Vla2RheXNQYXJzZSwgbGxjKTtcbiAgICAgICAgICAgICAgICBpZiAoaWkgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBpaTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fc2hvcnRXZWVrZGF5c1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIHJldHVybiBpaSAhPT0gLTEgPyBpaSA6IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsb2NhbGVXZWVrZGF5c1BhcnNlKHdlZWtkYXlOYW1lLCBmb3JtYXQsIHN0cmljdCkge1xuICAgICAgICB2YXIgaSwgbW9tLCByZWdleDtcblxuICAgICAgICBpZiAodGhpcy5fd2Vla2RheXNQYXJzZUV4YWN0KSB7XG4gICAgICAgICAgICByZXR1cm4gaGFuZGxlU3RyaWN0UGFyc2UkMS5jYWxsKHRoaXMsIHdlZWtkYXlOYW1lLCBmb3JtYXQsIHN0cmljdCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuX3dlZWtkYXlzUGFyc2UpIHtcbiAgICAgICAgICAgIHRoaXMuX3dlZWtkYXlzUGFyc2UgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuX21pbldlZWtkYXlzUGFyc2UgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuX3Nob3J0V2Vla2RheXNQYXJzZSA9IFtdO1xuICAgICAgICAgICAgdGhpcy5fZnVsbFdlZWtkYXlzUGFyc2UgPSBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCA3OyBpKyspIHtcbiAgICAgICAgICAgIC8vIG1ha2UgdGhlIHJlZ2V4IGlmIHdlIGRvbid0IGhhdmUgaXQgYWxyZWFkeVxuXG4gICAgICAgICAgICBtb20gPSBjcmVhdGVVVEMoWzIwMDAsIDFdKS5kYXkoaSk7XG4gICAgICAgICAgICBpZiAoc3RyaWN0ICYmICF0aGlzLl9mdWxsV2Vla2RheXNQYXJzZVtpXSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2Z1bGxXZWVrZGF5c1BhcnNlW2ldID0gbmV3IFJlZ0V4cChcbiAgICAgICAgICAgICAgICAgICAgJ14nICsgdGhpcy53ZWVrZGF5cyhtb20sICcnKS5yZXBsYWNlKCcuJywgJ1xcXFwuPycpICsgJyQnLFxuICAgICAgICAgICAgICAgICAgICAnaSdcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHRoaXMuX3Nob3J0V2Vla2RheXNQYXJzZVtpXSA9IG5ldyBSZWdFeHAoXG4gICAgICAgICAgICAgICAgICAgICdeJyArIHRoaXMud2Vla2RheXNTaG9ydChtb20sICcnKS5yZXBsYWNlKCcuJywgJ1xcXFwuPycpICsgJyQnLFxuICAgICAgICAgICAgICAgICAgICAnaSdcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHRoaXMuX21pbldlZWtkYXlzUGFyc2VbaV0gPSBuZXcgUmVnRXhwKFxuICAgICAgICAgICAgICAgICAgICAnXicgKyB0aGlzLndlZWtkYXlzTWluKG1vbSwgJycpLnJlcGxhY2UoJy4nLCAnXFxcXC4/JykgKyAnJCcsXG4gICAgICAgICAgICAgICAgICAgICdpJ1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXRoaXMuX3dlZWtkYXlzUGFyc2VbaV0pIHtcbiAgICAgICAgICAgICAgICByZWdleCA9XG4gICAgICAgICAgICAgICAgICAgICdeJyArXG4gICAgICAgICAgICAgICAgICAgIHRoaXMud2Vla2RheXMobW9tLCAnJykgK1xuICAgICAgICAgICAgICAgICAgICAnfF4nICtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53ZWVrZGF5c1Nob3J0KG1vbSwgJycpICtcbiAgICAgICAgICAgICAgICAgICAgJ3xeJyArXG4gICAgICAgICAgICAgICAgICAgIHRoaXMud2Vla2RheXNNaW4obW9tLCAnJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5fd2Vla2RheXNQYXJzZVtpXSA9IG5ldyBSZWdFeHAocmVnZXgucmVwbGFjZSgnLicsICcnKSwgJ2knKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIHRlc3QgdGhlIHJlZ2V4XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgc3RyaWN0ICYmXG4gICAgICAgICAgICAgICAgZm9ybWF0ID09PSAnZGRkZCcgJiZcbiAgICAgICAgICAgICAgICB0aGlzLl9mdWxsV2Vla2RheXNQYXJzZVtpXS50ZXN0KHdlZWtkYXlOYW1lKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgICAgIHN0cmljdCAmJlxuICAgICAgICAgICAgICAgIGZvcm1hdCA9PT0gJ2RkZCcgJiZcbiAgICAgICAgICAgICAgICB0aGlzLl9zaG9ydFdlZWtkYXlzUGFyc2VbaV0udGVzdCh3ZWVrZGF5TmFtZSlcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgICAgICBzdHJpY3QgJiZcbiAgICAgICAgICAgICAgICBmb3JtYXQgPT09ICdkZCcgJiZcbiAgICAgICAgICAgICAgICB0aGlzLl9taW5XZWVrZGF5c1BhcnNlW2ldLnRlc3Qod2Vla2RheU5hbWUpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIXN0cmljdCAmJiB0aGlzLl93ZWVrZGF5c1BhcnNlW2ldLnRlc3Qod2Vla2RheU5hbWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBNT01FTlRTXG5cbiAgICBmdW5jdGlvbiBnZXRTZXREYXlPZldlZWsoaW5wdXQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIGlucHV0ICE9IG51bGwgPyB0aGlzIDogTmFOO1xuICAgICAgICB9XG4gICAgICAgIHZhciBkYXkgPSB0aGlzLl9pc1VUQyA/IHRoaXMuX2QuZ2V0VVRDRGF5KCkgOiB0aGlzLl9kLmdldERheSgpO1xuICAgICAgICBpZiAoaW5wdXQgIT0gbnVsbCkge1xuICAgICAgICAgICAgaW5wdXQgPSBwYXJzZVdlZWtkYXkoaW5wdXQsIHRoaXMubG9jYWxlRGF0YSgpKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmFkZChpbnB1dCAtIGRheSwgJ2QnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBkYXk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRTZXRMb2NhbGVEYXlPZldlZWsoaW5wdXQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIGlucHV0ICE9IG51bGwgPyB0aGlzIDogTmFOO1xuICAgICAgICB9XG4gICAgICAgIHZhciB3ZWVrZGF5ID0gKHRoaXMuZGF5KCkgKyA3IC0gdGhpcy5sb2NhbGVEYXRhKCkuX3dlZWsuZG93KSAlIDc7XG4gICAgICAgIHJldHVybiBpbnB1dCA9PSBudWxsID8gd2Vla2RheSA6IHRoaXMuYWRkKGlucHV0IC0gd2Vla2RheSwgJ2QnKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRTZXRJU09EYXlPZldlZWsoaW5wdXQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIGlucHV0ICE9IG51bGwgPyB0aGlzIDogTmFOO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gYmVoYXZlcyB0aGUgc2FtZSBhcyBtb21lbnQjZGF5IGV4Y2VwdFxuICAgICAgICAvLyBhcyBhIGdldHRlciwgcmV0dXJucyA3IGluc3RlYWQgb2YgMCAoMS03IHJhbmdlIGluc3RlYWQgb2YgMC02KVxuICAgICAgICAvLyBhcyBhIHNldHRlciwgc3VuZGF5IHNob3VsZCBiZWxvbmcgdG8gdGhlIHByZXZpb3VzIHdlZWsuXG5cbiAgICAgICAgaWYgKGlucHV0ICE9IG51bGwpIHtcbiAgICAgICAgICAgIHZhciB3ZWVrZGF5ID0gcGFyc2VJc29XZWVrZGF5KGlucHV0LCB0aGlzLmxvY2FsZURhdGEoKSk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5kYXkodGhpcy5kYXkoKSAlIDcgPyB3ZWVrZGF5IDogd2Vla2RheSAtIDcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGF5KCkgfHwgNztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHdlZWtkYXlzUmVnZXgoaXNTdHJpY3QpIHtcbiAgICAgICAgaWYgKHRoaXMuX3dlZWtkYXlzUGFyc2VFeGFjdCkge1xuICAgICAgICAgICAgaWYgKCFoYXNPd25Qcm9wKHRoaXMsICdfd2Vla2RheXNSZWdleCcpKSB7XG4gICAgICAgICAgICAgICAgY29tcHV0ZVdlZWtkYXlzUGFyc2UuY2FsbCh0aGlzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc1N0cmljdCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl93ZWVrZGF5c1N0cmljdFJlZ2V4O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fd2Vla2RheXNSZWdleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICghaGFzT3duUHJvcCh0aGlzLCAnX3dlZWtkYXlzUmVnZXgnKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3dlZWtkYXlzUmVnZXggPSBkZWZhdWx0V2Vla2RheXNSZWdleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzLl93ZWVrZGF5c1N0cmljdFJlZ2V4ICYmIGlzU3RyaWN0XG4gICAgICAgICAgICAgICAgPyB0aGlzLl93ZWVrZGF5c1N0cmljdFJlZ2V4XG4gICAgICAgICAgICAgICAgOiB0aGlzLl93ZWVrZGF5c1JlZ2V4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gd2Vla2RheXNTaG9ydFJlZ2V4KGlzU3RyaWN0KSB7XG4gICAgICAgIGlmICh0aGlzLl93ZWVrZGF5c1BhcnNlRXhhY3QpIHtcbiAgICAgICAgICAgIGlmICghaGFzT3duUHJvcCh0aGlzLCAnX3dlZWtkYXlzUmVnZXgnKSkge1xuICAgICAgICAgICAgICAgIGNvbXB1dGVXZWVrZGF5c1BhcnNlLmNhbGwodGhpcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNTdHJpY3QpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fd2Vla2RheXNTaG9ydFN0cmljdFJlZ2V4O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fd2Vla2RheXNTaG9ydFJlZ2V4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKCFoYXNPd25Qcm9wKHRoaXMsICdfd2Vla2RheXNTaG9ydFJlZ2V4JykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl93ZWVrZGF5c1Nob3J0UmVnZXggPSBkZWZhdWx0V2Vla2RheXNTaG9ydFJlZ2V4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dlZWtkYXlzU2hvcnRTdHJpY3RSZWdleCAmJiBpc1N0cmljdFxuICAgICAgICAgICAgICAgID8gdGhpcy5fd2Vla2RheXNTaG9ydFN0cmljdFJlZ2V4XG4gICAgICAgICAgICAgICAgOiB0aGlzLl93ZWVrZGF5c1Nob3J0UmVnZXg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiB3ZWVrZGF5c01pblJlZ2V4KGlzU3RyaWN0KSB7XG4gICAgICAgIGlmICh0aGlzLl93ZWVrZGF5c1BhcnNlRXhhY3QpIHtcbiAgICAgICAgICAgIGlmICghaGFzT3duUHJvcCh0aGlzLCAnX3dlZWtkYXlzUmVnZXgnKSkge1xuICAgICAgICAgICAgICAgIGNvbXB1dGVXZWVrZGF5c1BhcnNlLmNhbGwodGhpcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNTdHJpY3QpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fd2Vla2RheXNNaW5TdHJpY3RSZWdleDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dlZWtkYXlzTWluUmVnZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoIWhhc093blByb3AodGhpcywgJ193ZWVrZGF5c01pblJlZ2V4JykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl93ZWVrZGF5c01pblJlZ2V4ID0gZGVmYXVsdFdlZWtkYXlzTWluUmVnZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fd2Vla2RheXNNaW5TdHJpY3RSZWdleCAmJiBpc1N0cmljdFxuICAgICAgICAgICAgICAgID8gdGhpcy5fd2Vla2RheXNNaW5TdHJpY3RSZWdleFxuICAgICAgICAgICAgICAgIDogdGhpcy5fd2Vla2RheXNNaW5SZWdleDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNvbXB1dGVXZWVrZGF5c1BhcnNlKCkge1xuICAgICAgICBmdW5jdGlvbiBjbXBMZW5SZXYoYSwgYikge1xuICAgICAgICAgICAgcmV0dXJuIGIubGVuZ3RoIC0gYS5sZW5ndGg7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgbWluUGllY2VzID0gW10sXG4gICAgICAgICAgICBzaG9ydFBpZWNlcyA9IFtdLFxuICAgICAgICAgICAgbG9uZ1BpZWNlcyA9IFtdLFxuICAgICAgICAgICAgbWl4ZWRQaWVjZXMgPSBbXSxcbiAgICAgICAgICAgIGksXG4gICAgICAgICAgICBtb20sXG4gICAgICAgICAgICBtaW5wLFxuICAgICAgICAgICAgc2hvcnRwLFxuICAgICAgICAgICAgbG9uZ3A7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCA3OyBpKyspIHtcbiAgICAgICAgICAgIC8vIG1ha2UgdGhlIHJlZ2V4IGlmIHdlIGRvbid0IGhhdmUgaXQgYWxyZWFkeVxuICAgICAgICAgICAgbW9tID0gY3JlYXRlVVRDKFsyMDAwLCAxXSkuZGF5KGkpO1xuICAgICAgICAgICAgbWlucCA9IHJlZ2V4RXNjYXBlKHRoaXMud2Vla2RheXNNaW4obW9tLCAnJykpO1xuICAgICAgICAgICAgc2hvcnRwID0gcmVnZXhFc2NhcGUodGhpcy53ZWVrZGF5c1Nob3J0KG1vbSwgJycpKTtcbiAgICAgICAgICAgIGxvbmdwID0gcmVnZXhFc2NhcGUodGhpcy53ZWVrZGF5cyhtb20sICcnKSk7XG4gICAgICAgICAgICBtaW5QaWVjZXMucHVzaChtaW5wKTtcbiAgICAgICAgICAgIHNob3J0UGllY2VzLnB1c2goc2hvcnRwKTtcbiAgICAgICAgICAgIGxvbmdQaWVjZXMucHVzaChsb25ncCk7XG4gICAgICAgICAgICBtaXhlZFBpZWNlcy5wdXNoKG1pbnApO1xuICAgICAgICAgICAgbWl4ZWRQaWVjZXMucHVzaChzaG9ydHApO1xuICAgICAgICAgICAgbWl4ZWRQaWVjZXMucHVzaChsb25ncCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gU29ydGluZyBtYWtlcyBzdXJlIGlmIG9uZSB3ZWVrZGF5IChvciBhYmJyKSBpcyBhIHByZWZpeCBvZiBhbm90aGVyIGl0XG4gICAgICAgIC8vIHdpbGwgbWF0Y2ggdGhlIGxvbmdlciBwaWVjZS5cbiAgICAgICAgbWluUGllY2VzLnNvcnQoY21wTGVuUmV2KTtcbiAgICAgICAgc2hvcnRQaWVjZXMuc29ydChjbXBMZW5SZXYpO1xuICAgICAgICBsb25nUGllY2VzLnNvcnQoY21wTGVuUmV2KTtcbiAgICAgICAgbWl4ZWRQaWVjZXMuc29ydChjbXBMZW5SZXYpO1xuXG4gICAgICAgIHRoaXMuX3dlZWtkYXlzUmVnZXggPSBuZXcgUmVnRXhwKCdeKCcgKyBtaXhlZFBpZWNlcy5qb2luKCd8JykgKyAnKScsICdpJyk7XG4gICAgICAgIHRoaXMuX3dlZWtkYXlzU2hvcnRSZWdleCA9IHRoaXMuX3dlZWtkYXlzUmVnZXg7XG4gICAgICAgIHRoaXMuX3dlZWtkYXlzTWluUmVnZXggPSB0aGlzLl93ZWVrZGF5c1JlZ2V4O1xuXG4gICAgICAgIHRoaXMuX3dlZWtkYXlzU3RyaWN0UmVnZXggPSBuZXcgUmVnRXhwKFxuICAgICAgICAgICAgJ14oJyArIGxvbmdQaWVjZXMuam9pbignfCcpICsgJyknLFxuICAgICAgICAgICAgJ2knXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuX3dlZWtkYXlzU2hvcnRTdHJpY3RSZWdleCA9IG5ldyBSZWdFeHAoXG4gICAgICAgICAgICAnXignICsgc2hvcnRQaWVjZXMuam9pbignfCcpICsgJyknLFxuICAgICAgICAgICAgJ2knXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuX3dlZWtkYXlzTWluU3RyaWN0UmVnZXggPSBuZXcgUmVnRXhwKFxuICAgICAgICAgICAgJ14oJyArIG1pblBpZWNlcy5qb2luKCd8JykgKyAnKScsXG4gICAgICAgICAgICAnaSdcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBGT1JNQVRUSU5HXG5cbiAgICBmdW5jdGlvbiBoRm9ybWF0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5ob3VycygpICUgMTIgfHwgMTI7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24ga0Zvcm1hdCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaG91cnMoKSB8fCAyNDtcbiAgICB9XG5cbiAgICBhZGRGb3JtYXRUb2tlbignSCcsIFsnSEgnLCAyXSwgMCwgJ2hvdXInKTtcbiAgICBhZGRGb3JtYXRUb2tlbignaCcsIFsnaGgnLCAyXSwgMCwgaEZvcm1hdCk7XG4gICAgYWRkRm9ybWF0VG9rZW4oJ2snLCBbJ2trJywgMl0sIDAsIGtGb3JtYXQpO1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ2htbScsIDAsIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuICcnICsgaEZvcm1hdC5hcHBseSh0aGlzKSArIHplcm9GaWxsKHRoaXMubWludXRlcygpLCAyKTtcbiAgICB9KTtcblxuICAgIGFkZEZvcm1hdFRva2VuKCdobW1zcycsIDAsIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICcnICtcbiAgICAgICAgICAgIGhGb3JtYXQuYXBwbHkodGhpcykgK1xuICAgICAgICAgICAgemVyb0ZpbGwodGhpcy5taW51dGVzKCksIDIpICtcbiAgICAgICAgICAgIHplcm9GaWxsKHRoaXMuc2Vjb25kcygpLCAyKVxuICAgICAgICApO1xuICAgIH0pO1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ0htbScsIDAsIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuICcnICsgdGhpcy5ob3VycygpICsgemVyb0ZpbGwodGhpcy5taW51dGVzKCksIDIpO1xuICAgIH0pO1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ0htbXNzJywgMCwgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgJycgK1xuICAgICAgICAgICAgdGhpcy5ob3VycygpICtcbiAgICAgICAgICAgIHplcm9GaWxsKHRoaXMubWludXRlcygpLCAyKSArXG4gICAgICAgICAgICB6ZXJvRmlsbCh0aGlzLnNlY29uZHMoKSwgMilcbiAgICAgICAgKTtcbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIG1lcmlkaWVtKHRva2VuLCBsb3dlcmNhc2UpIHtcbiAgICAgICAgYWRkRm9ybWF0VG9rZW4odG9rZW4sIDAsIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvY2FsZURhdGEoKS5tZXJpZGllbShcbiAgICAgICAgICAgICAgICB0aGlzLmhvdXJzKCksXG4gICAgICAgICAgICAgICAgdGhpcy5taW51dGVzKCksXG4gICAgICAgICAgICAgICAgbG93ZXJjYXNlXG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBtZXJpZGllbSgnYScsIHRydWUpO1xuICAgIG1lcmlkaWVtKCdBJywgZmFsc2UpO1xuXG4gICAgLy8gQUxJQVNFU1xuXG4gICAgYWRkVW5pdEFsaWFzKCdob3VyJywgJ2gnKTtcblxuICAgIC8vIFBSSU9SSVRZXG4gICAgYWRkVW5pdFByaW9yaXR5KCdob3VyJywgMTMpO1xuXG4gICAgLy8gUEFSU0lOR1xuXG4gICAgZnVuY3Rpb24gbWF0Y2hNZXJpZGllbShpc1N0cmljdCwgbG9jYWxlKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGUuX21lcmlkaWVtUGFyc2U7XG4gICAgfVxuXG4gICAgYWRkUmVnZXhUb2tlbignYScsIG1hdGNoTWVyaWRpZW0pO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ0EnLCBtYXRjaE1lcmlkaWVtKTtcbiAgICBhZGRSZWdleFRva2VuKCdIJywgbWF0Y2gxdG8yKTtcbiAgICBhZGRSZWdleFRva2VuKCdoJywgbWF0Y2gxdG8yKTtcbiAgICBhZGRSZWdleFRva2VuKCdrJywgbWF0Y2gxdG8yKTtcbiAgICBhZGRSZWdleFRva2VuKCdISCcsIG1hdGNoMXRvMiwgbWF0Y2gyKTtcbiAgICBhZGRSZWdleFRva2VuKCdoaCcsIG1hdGNoMXRvMiwgbWF0Y2gyKTtcbiAgICBhZGRSZWdleFRva2VuKCdraycsIG1hdGNoMXRvMiwgbWF0Y2gyKTtcblxuICAgIGFkZFJlZ2V4VG9rZW4oJ2htbScsIG1hdGNoM3RvNCk7XG4gICAgYWRkUmVnZXhUb2tlbignaG1tc3MnLCBtYXRjaDV0bzYpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ0htbScsIG1hdGNoM3RvNCk7XG4gICAgYWRkUmVnZXhUb2tlbignSG1tc3MnLCBtYXRjaDV0bzYpO1xuXG4gICAgYWRkUGFyc2VUb2tlbihbJ0gnLCAnSEgnXSwgSE9VUik7XG4gICAgYWRkUGFyc2VUb2tlbihbJ2snLCAna2snXSwgZnVuY3Rpb24gKGlucHV0LCBhcnJheSwgY29uZmlnKSB7XG4gICAgICAgIHZhciBrSW5wdXQgPSB0b0ludChpbnB1dCk7XG4gICAgICAgIGFycmF5W0hPVVJdID0ga0lucHV0ID09PSAyNCA/IDAgOiBrSW5wdXQ7XG4gICAgfSk7XG4gICAgYWRkUGFyc2VUb2tlbihbJ2EnLCAnQSddLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5LCBjb25maWcpIHtcbiAgICAgICAgY29uZmlnLl9pc1BtID0gY29uZmlnLl9sb2NhbGUuaXNQTShpbnB1dCk7XG4gICAgICAgIGNvbmZpZy5fbWVyaWRpZW0gPSBpbnB1dDtcbiAgICB9KTtcbiAgICBhZGRQYXJzZVRva2VuKFsnaCcsICdoaCddLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5LCBjb25maWcpIHtcbiAgICAgICAgYXJyYXlbSE9VUl0gPSB0b0ludChpbnB1dCk7XG4gICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLmJpZ0hvdXIgPSB0cnVlO1xuICAgIH0pO1xuICAgIGFkZFBhcnNlVG9rZW4oJ2htbScsIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXksIGNvbmZpZykge1xuICAgICAgICB2YXIgcG9zID0gaW5wdXQubGVuZ3RoIC0gMjtcbiAgICAgICAgYXJyYXlbSE9VUl0gPSB0b0ludChpbnB1dC5zdWJzdHIoMCwgcG9zKSk7XG4gICAgICAgIGFycmF5W01JTlVURV0gPSB0b0ludChpbnB1dC5zdWJzdHIocG9zKSk7XG4gICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLmJpZ0hvdXIgPSB0cnVlO1xuICAgIH0pO1xuICAgIGFkZFBhcnNlVG9rZW4oJ2htbXNzJywgZnVuY3Rpb24gKGlucHV0LCBhcnJheSwgY29uZmlnKSB7XG4gICAgICAgIHZhciBwb3MxID0gaW5wdXQubGVuZ3RoIC0gNCxcbiAgICAgICAgICAgIHBvczIgPSBpbnB1dC5sZW5ndGggLSAyO1xuICAgICAgICBhcnJheVtIT1VSXSA9IHRvSW50KGlucHV0LnN1YnN0cigwLCBwb3MxKSk7XG4gICAgICAgIGFycmF5W01JTlVURV0gPSB0b0ludChpbnB1dC5zdWJzdHIocG9zMSwgMikpO1xuICAgICAgICBhcnJheVtTRUNPTkRdID0gdG9JbnQoaW5wdXQuc3Vic3RyKHBvczIpKTtcbiAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuYmlnSG91ciA9IHRydWU7XG4gICAgfSk7XG4gICAgYWRkUGFyc2VUb2tlbignSG1tJywgZnVuY3Rpb24gKGlucHV0LCBhcnJheSwgY29uZmlnKSB7XG4gICAgICAgIHZhciBwb3MgPSBpbnB1dC5sZW5ndGggLSAyO1xuICAgICAgICBhcnJheVtIT1VSXSA9IHRvSW50KGlucHV0LnN1YnN0cigwLCBwb3MpKTtcbiAgICAgICAgYXJyYXlbTUlOVVRFXSA9IHRvSW50KGlucHV0LnN1YnN0cihwb3MpKTtcbiAgICB9KTtcbiAgICBhZGRQYXJzZVRva2VuKCdIbW1zcycsIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXksIGNvbmZpZykge1xuICAgICAgICB2YXIgcG9zMSA9IGlucHV0Lmxlbmd0aCAtIDQsXG4gICAgICAgICAgICBwb3MyID0gaW5wdXQubGVuZ3RoIC0gMjtcbiAgICAgICAgYXJyYXlbSE9VUl0gPSB0b0ludChpbnB1dC5zdWJzdHIoMCwgcG9zMSkpO1xuICAgICAgICBhcnJheVtNSU5VVEVdID0gdG9JbnQoaW5wdXQuc3Vic3RyKHBvczEsIDIpKTtcbiAgICAgICAgYXJyYXlbU0VDT05EXSA9IHRvSW50KGlucHV0LnN1YnN0cihwb3MyKSk7XG4gICAgfSk7XG5cbiAgICAvLyBMT0NBTEVTXG5cbiAgICBmdW5jdGlvbiBsb2NhbGVJc1BNKGlucHV0KSB7XG4gICAgICAgIC8vIElFOCBRdWlya3MgTW9kZSAmIElFNyBTdGFuZGFyZHMgTW9kZSBkbyBub3QgYWxsb3cgYWNjZXNzaW5nIHN0cmluZ3MgbGlrZSBhcnJheXNcbiAgICAgICAgLy8gVXNpbmcgY2hhckF0IHNob3VsZCBiZSBtb3JlIGNvbXBhdGlibGUuXG4gICAgICAgIHJldHVybiAoaW5wdXQgKyAnJykudG9Mb3dlckNhc2UoKS5jaGFyQXQoMCkgPT09ICdwJztcbiAgICB9XG5cbiAgICB2YXIgZGVmYXVsdExvY2FsZU1lcmlkaWVtUGFyc2UgPSAvW2FwXVxcLj9tP1xcLj8vaSxcbiAgICAgICAgLy8gU2V0dGluZyB0aGUgaG91ciBzaG91bGQga2VlcCB0aGUgdGltZSwgYmVjYXVzZSB0aGUgdXNlciBleHBsaWNpdGx5XG4gICAgICAgIC8vIHNwZWNpZmllZCB3aGljaCBob3VyIHRoZXkgd2FudC4gU28gdHJ5aW5nIHRvIG1haW50YWluIHRoZSBzYW1lIGhvdXIgKGluXG4gICAgICAgIC8vIGEgbmV3IHRpbWV6b25lKSBtYWtlcyBzZW5zZS4gQWRkaW5nL3N1YnRyYWN0aW5nIGhvdXJzIGRvZXMgbm90IGZvbGxvd1xuICAgICAgICAvLyB0aGlzIHJ1bGUuXG4gICAgICAgIGdldFNldEhvdXIgPSBtYWtlR2V0U2V0KCdIb3VycycsIHRydWUpO1xuXG4gICAgZnVuY3Rpb24gbG9jYWxlTWVyaWRpZW0oaG91cnMsIG1pbnV0ZXMsIGlzTG93ZXIpIHtcbiAgICAgICAgaWYgKGhvdXJzID4gMTEpIHtcbiAgICAgICAgICAgIHJldHVybiBpc0xvd2VyID8gJ3BtJyA6ICdQTSc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gaXNMb3dlciA/ICdhbScgOiAnQU0nO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGJhc2VDb25maWcgPSB7XG4gICAgICAgIGNhbGVuZGFyOiBkZWZhdWx0Q2FsZW5kYXIsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiBkZWZhdWx0TG9uZ0RhdGVGb3JtYXQsXG4gICAgICAgIGludmFsaWREYXRlOiBkZWZhdWx0SW52YWxpZERhdGUsXG4gICAgICAgIG9yZGluYWw6IGRlZmF1bHRPcmRpbmFsLFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiBkZWZhdWx0RGF5T2ZNb250aE9yZGluYWxQYXJzZSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiBkZWZhdWx0UmVsYXRpdmVUaW1lLFxuXG4gICAgICAgIG1vbnRoczogZGVmYXVsdExvY2FsZU1vbnRocyxcbiAgICAgICAgbW9udGhzU2hvcnQ6IGRlZmF1bHRMb2NhbGVNb250aHNTaG9ydCxcblxuICAgICAgICB3ZWVrOiBkZWZhdWx0TG9jYWxlV2VlayxcblxuICAgICAgICB3ZWVrZGF5czogZGVmYXVsdExvY2FsZVdlZWtkYXlzLFxuICAgICAgICB3ZWVrZGF5c01pbjogZGVmYXVsdExvY2FsZVdlZWtkYXlzTWluLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiBkZWZhdWx0TG9jYWxlV2Vla2RheXNTaG9ydCxcblxuICAgICAgICBtZXJpZGllbVBhcnNlOiBkZWZhdWx0TG9jYWxlTWVyaWRpZW1QYXJzZSxcbiAgICB9O1xuXG4gICAgLy8gaW50ZXJuYWwgc3RvcmFnZSBmb3IgbG9jYWxlIGNvbmZpZyBmaWxlc1xuICAgIHZhciBsb2NhbGVzID0ge30sXG4gICAgICAgIGxvY2FsZUZhbWlsaWVzID0ge30sXG4gICAgICAgIGdsb2JhbExvY2FsZTtcblxuICAgIGZ1bmN0aW9uIGNvbW1vblByZWZpeChhcnIxLCBhcnIyKSB7XG4gICAgICAgIHZhciBpLFxuICAgICAgICAgICAgbWlubCA9IE1hdGgubWluKGFycjEubGVuZ3RoLCBhcnIyLmxlbmd0aCk7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBtaW5sOyBpICs9IDEpIHtcbiAgICAgICAgICAgIGlmIChhcnIxW2ldICE9PSBhcnIyW2ldKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1pbmw7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbm9ybWFsaXplTG9jYWxlKGtleSkge1xuICAgICAgICByZXR1cm4ga2V5ID8ga2V5LnRvTG93ZXJDYXNlKCkucmVwbGFjZSgnXycsICctJykgOiBrZXk7XG4gICAgfVxuXG4gICAgLy8gcGljayB0aGUgbG9jYWxlIGZyb20gdGhlIGFycmF5XG4gICAgLy8gdHJ5IFsnZW4tYXUnLCAnZW4tZ2InXSBhcyAnZW4tYXUnLCAnZW4tZ2InLCAnZW4nLCBhcyBpbiBtb3ZlIHRocm91Z2ggdGhlIGxpc3QgdHJ5aW5nIGVhY2hcbiAgICAvLyBzdWJzdHJpbmcgZnJvbSBtb3N0IHNwZWNpZmljIHRvIGxlYXN0LCBidXQgbW92ZSB0byB0aGUgbmV4dCBhcnJheSBpdGVtIGlmIGl0J3MgYSBtb3JlIHNwZWNpZmljIHZhcmlhbnQgdGhhbiB0aGUgY3VycmVudCByb290XG4gICAgZnVuY3Rpb24gY2hvb3NlTG9jYWxlKG5hbWVzKSB7XG4gICAgICAgIHZhciBpID0gMCxcbiAgICAgICAgICAgIGosXG4gICAgICAgICAgICBuZXh0LFxuICAgICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgICAgc3BsaXQ7XG5cbiAgICAgICAgd2hpbGUgKGkgPCBuYW1lcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHNwbGl0ID0gbm9ybWFsaXplTG9jYWxlKG5hbWVzW2ldKS5zcGxpdCgnLScpO1xuICAgICAgICAgICAgaiA9IHNwbGl0Lmxlbmd0aDtcbiAgICAgICAgICAgIG5leHQgPSBub3JtYWxpemVMb2NhbGUobmFtZXNbaSArIDFdKTtcbiAgICAgICAgICAgIG5leHQgPSBuZXh0ID8gbmV4dC5zcGxpdCgnLScpIDogbnVsbDtcbiAgICAgICAgICAgIHdoaWxlIChqID4gMCkge1xuICAgICAgICAgICAgICAgIGxvY2FsZSA9IGxvYWRMb2NhbGUoc3BsaXQuc2xpY2UoMCwgaikuam9pbignLScpKTtcbiAgICAgICAgICAgICAgICBpZiAobG9jYWxlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBsb2NhbGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgbmV4dCAmJlxuICAgICAgICAgICAgICAgICAgICBuZXh0Lmxlbmd0aCA+PSBqICYmXG4gICAgICAgICAgICAgICAgICAgIGNvbW1vblByZWZpeChzcGxpdCwgbmV4dCkgPj0gaiAtIDFcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgLy90aGUgbmV4dCBhcnJheSBpdGVtIGlzIGJldHRlciB0aGFuIGEgc2hhbGxvd2VyIHN1YnN0cmluZyBvZiB0aGlzIG9uZVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgai0tO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaSsrO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBnbG9iYWxMb2NhbGU7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbG9hZExvY2FsZShuYW1lKSB7XG4gICAgICAgIHZhciBvbGRMb2NhbGUgPSBudWxsLFxuICAgICAgICAgICAgYWxpYXNlZFJlcXVpcmU7XG4gICAgICAgIC8vIFRPRE86IEZpbmQgYSBiZXR0ZXIgd2F5IHRvIHJlZ2lzdGVyIGFuZCBsb2FkIGFsbCB0aGUgbG9jYWxlcyBpbiBOb2RlXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGxvY2FsZXNbbmFtZV0gPT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICAgICAgICAgIG1vZHVsZSAmJlxuICAgICAgICAgICAgbW9kdWxlLmV4cG9ydHNcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIG9sZExvY2FsZSA9IGdsb2JhbExvY2FsZS5fYWJicjtcbiAgICAgICAgICAgICAgICBhbGlhc2VkUmVxdWlyZSA9IHJlcXVpcmU7XG4gICAgICAgICAgICAgICAgYWxpYXNlZFJlcXVpcmUoJy4vbG9jYWxlLycgKyBuYW1lKTtcbiAgICAgICAgICAgICAgICBnZXRTZXRHbG9iYWxMb2NhbGUob2xkTG9jYWxlKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAvLyBtYXJrIGFzIG5vdCBmb3VuZCB0byBhdm9pZCByZXBlYXRpbmcgZXhwZW5zaXZlIGZpbGUgcmVxdWlyZSBjYWxsIGNhdXNpbmcgaGlnaCBDUFVcbiAgICAgICAgICAgICAgICAvLyB3aGVuIHRyeWluZyB0byBmaW5kIGVuLVVTLCBlbl9VUywgZW4tdXMgZm9yIGV2ZXJ5IGZvcm1hdCBjYWxsXG4gICAgICAgICAgICAgICAgbG9jYWxlc1tuYW1lXSA9IG51bGw7IC8vIG51bGwgbWVhbnMgbm90IGZvdW5kXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGxvY2FsZXNbbmFtZV07XG4gICAgfVxuXG4gICAgLy8gVGhpcyBmdW5jdGlvbiB3aWxsIGxvYWQgbG9jYWxlIGFuZCB0aGVuIHNldCB0aGUgZ2xvYmFsIGxvY2FsZS4gIElmXG4gICAgLy8gbm8gYXJndW1lbnRzIGFyZSBwYXNzZWQgaW4sIGl0IHdpbGwgc2ltcGx5IHJldHVybiB0aGUgY3VycmVudCBnbG9iYWxcbiAgICAvLyBsb2NhbGUga2V5LlxuICAgIGZ1bmN0aW9uIGdldFNldEdsb2JhbExvY2FsZShrZXksIHZhbHVlcykge1xuICAgICAgICB2YXIgZGF0YTtcbiAgICAgICAgaWYgKGtleSkge1xuICAgICAgICAgICAgaWYgKGlzVW5kZWZpbmVkKHZhbHVlcykpIHtcbiAgICAgICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxlKGtleSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGRhdGEgPSBkZWZpbmVMb2NhbGUoa2V5LCB2YWx1ZXMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgICAgIC8vIG1vbWVudC5kdXJhdGlvbi5fbG9jYWxlID0gbW9tZW50Ll9sb2NhbGUgPSBkYXRhO1xuICAgICAgICAgICAgICAgIGdsb2JhbExvY2FsZSA9IGRhdGE7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgY29uc29sZSAhPT0gJ3VuZGVmaW5lZCcgJiYgY29uc29sZS53YXJuKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vd2FybiB1c2VyIGlmIGFyZ3VtZW50cyBhcmUgcGFzc2VkIGJ1dCB0aGUgbG9jYWxlIGNvdWxkIG5vdCBiZSBzZXRcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICAgICAgICAgICAgJ0xvY2FsZSAnICsga2V5ICsgJyBub3QgZm91bmQuIERpZCB5b3UgZm9yZ2V0IHRvIGxvYWQgaXQ/J1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBnbG9iYWxMb2NhbGUuX2FiYnI7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZGVmaW5lTG9jYWxlKG5hbWUsIGNvbmZpZykge1xuICAgICAgICBpZiAoY29uZmlnICE9PSBudWxsKSB7XG4gICAgICAgICAgICB2YXIgbG9jYWxlLFxuICAgICAgICAgICAgICAgIHBhcmVudENvbmZpZyA9IGJhc2VDb25maWc7XG4gICAgICAgICAgICBjb25maWcuYWJiciA9IG5hbWU7XG4gICAgICAgICAgICBpZiAobG9jYWxlc1tuYW1lXSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgZGVwcmVjYXRlU2ltcGxlKFxuICAgICAgICAgICAgICAgICAgICAnZGVmaW5lTG9jYWxlT3ZlcnJpZGUnLFxuICAgICAgICAgICAgICAgICAgICAndXNlIG1vbWVudC51cGRhdGVMb2NhbGUobG9jYWxlTmFtZSwgY29uZmlnKSB0byBjaGFuZ2UgJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAnYW4gZXhpc3RpbmcgbG9jYWxlLiBtb21lbnQuZGVmaW5lTG9jYWxlKGxvY2FsZU5hbWUsICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbmZpZykgc2hvdWxkIG9ubHkgYmUgdXNlZCBmb3IgY3JlYXRpbmcgYSBuZXcgbG9jYWxlICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgJ1NlZSBodHRwOi8vbW9tZW50anMuY29tL2d1aWRlcy8jL3dhcm5pbmdzL2RlZmluZS1sb2NhbGUvIGZvciBtb3JlIGluZm8uJ1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgcGFyZW50Q29uZmlnID0gbG9jYWxlc1tuYW1lXS5fY29uZmlnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjb25maWcucGFyZW50TG9jYWxlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICBpZiAobG9jYWxlc1tjb25maWcucGFyZW50TG9jYWxlXSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhcmVudENvbmZpZyA9IGxvY2FsZXNbY29uZmlnLnBhcmVudExvY2FsZV0uX2NvbmZpZztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBsb2NhbGUgPSBsb2FkTG9jYWxlKGNvbmZpZy5wYXJlbnRMb2NhbGUpO1xuICAgICAgICAgICAgICAgICAgICBpZiAobG9jYWxlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudENvbmZpZyA9IGxvY2FsZS5fY29uZmlnO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFsb2NhbGVGYW1pbGllc1tjb25maWcucGFyZW50TG9jYWxlXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsZUZhbWlsaWVzW2NvbmZpZy5wYXJlbnRMb2NhbGVdID0gW107XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NhbGVGYW1pbGllc1tjb25maWcucGFyZW50TG9jYWxlXS5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBuYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZzogY29uZmlnLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxvY2FsZXNbbmFtZV0gPSBuZXcgTG9jYWxlKG1lcmdlQ29uZmlncyhwYXJlbnRDb25maWcsIGNvbmZpZykpO1xuXG4gICAgICAgICAgICBpZiAobG9jYWxlRmFtaWxpZXNbbmFtZV0pIHtcbiAgICAgICAgICAgICAgICBsb2NhbGVGYW1pbGllc1tuYW1lXS5mb3JFYWNoKGZ1bmN0aW9uICh4KSB7XG4gICAgICAgICAgICAgICAgICAgIGRlZmluZUxvY2FsZSh4Lm5hbWUsIHguY29uZmlnKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gYmFja3dhcmRzIGNvbXBhdCBmb3Igbm93OiBhbHNvIHNldCB0aGUgbG9jYWxlXG4gICAgICAgICAgICAvLyBtYWtlIHN1cmUgd2Ugc2V0IHRoZSBsb2NhbGUgQUZURVIgYWxsIGNoaWxkIGxvY2FsZXMgaGF2ZSBiZWVuXG4gICAgICAgICAgICAvLyBjcmVhdGVkLCBzbyB3ZSB3b24ndCBlbmQgdXAgd2l0aCB0aGUgY2hpbGQgbG9jYWxlIHNldC5cbiAgICAgICAgICAgIGdldFNldEdsb2JhbExvY2FsZShuYW1lKTtcblxuICAgICAgICAgICAgcmV0dXJuIGxvY2FsZXNbbmFtZV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyB1c2VmdWwgZm9yIHRlc3RpbmdcbiAgICAgICAgICAgIGRlbGV0ZSBsb2NhbGVzW25hbWVdO1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiB1cGRhdGVMb2NhbGUobmFtZSwgY29uZmlnKSB7XG4gICAgICAgIGlmIChjb25maWcgIT0gbnVsbCkge1xuICAgICAgICAgICAgdmFyIGxvY2FsZSxcbiAgICAgICAgICAgICAgICB0bXBMb2NhbGUsXG4gICAgICAgICAgICAgICAgcGFyZW50Q29uZmlnID0gYmFzZUNvbmZpZztcblxuICAgICAgICAgICAgaWYgKGxvY2FsZXNbbmFtZV0gIT0gbnVsbCAmJiBsb2NhbGVzW25hbWVdLnBhcmVudExvY2FsZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgLy8gVXBkYXRlIGV4aXN0aW5nIGNoaWxkIGxvY2FsZSBpbi1wbGFjZSB0byBhdm9pZCBtZW1vcnktbGVha3NcbiAgICAgICAgICAgICAgICBsb2NhbGVzW25hbWVdLnNldChtZXJnZUNvbmZpZ3MobG9jYWxlc1tuYW1lXS5fY29uZmlnLCBjb25maWcpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gTUVSR0VcbiAgICAgICAgICAgICAgICB0bXBMb2NhbGUgPSBsb2FkTG9jYWxlKG5hbWUpO1xuICAgICAgICAgICAgICAgIGlmICh0bXBMb2NhbGUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBwYXJlbnRDb25maWcgPSB0bXBMb2NhbGUuX2NvbmZpZztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uZmlnID0gbWVyZ2VDb25maWdzKHBhcmVudENvbmZpZywgY29uZmlnKTtcbiAgICAgICAgICAgICAgICBpZiAodG1wTG9jYWxlID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gdXBkYXRlTG9jYWxlIGlzIGNhbGxlZCBmb3IgY3JlYXRpbmcgYSBuZXcgbG9jYWxlXG4gICAgICAgICAgICAgICAgICAgIC8vIFNldCBhYmJyIHNvIGl0IHdpbGwgaGF2ZSBhIG5hbWUgKGdldHRlcnMgcmV0dXJuXG4gICAgICAgICAgICAgICAgICAgIC8vIHVuZGVmaW5lZCBvdGhlcndpc2UpLlxuICAgICAgICAgICAgICAgICAgICBjb25maWcuYWJiciA9IG5hbWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGxvY2FsZSA9IG5ldyBMb2NhbGUoY29uZmlnKTtcbiAgICAgICAgICAgICAgICBsb2NhbGUucGFyZW50TG9jYWxlID0gbG9jYWxlc1tuYW1lXTtcbiAgICAgICAgICAgICAgICBsb2NhbGVzW25hbWVdID0gbG9jYWxlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBiYWNrd2FyZHMgY29tcGF0IGZvciBub3c6IGFsc28gc2V0IHRoZSBsb2NhbGVcbiAgICAgICAgICAgIGdldFNldEdsb2JhbExvY2FsZShuYW1lKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIHBhc3MgbnVsbCBmb3IgY29uZmlnIHRvIHVudXBkYXRlLCB1c2VmdWwgZm9yIHRlc3RzXG4gICAgICAgICAgICBpZiAobG9jYWxlc1tuYW1lXSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgaWYgKGxvY2FsZXNbbmFtZV0ucGFyZW50TG9jYWxlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgbG9jYWxlc1tuYW1lXSA9IGxvY2FsZXNbbmFtZV0ucGFyZW50TG9jYWxlO1xuICAgICAgICAgICAgICAgICAgICBpZiAobmFtZSA9PT0gZ2V0U2V0R2xvYmFsTG9jYWxlKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGdldFNldEdsb2JhbExvY2FsZShuYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobG9jYWxlc1tuYW1lXSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBsb2NhbGVzW25hbWVdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbG9jYWxlc1tuYW1lXTtcbiAgICB9XG5cbiAgICAvLyByZXR1cm5zIGxvY2FsZSBkYXRhXG4gICAgZnVuY3Rpb24gZ2V0TG9jYWxlKGtleSkge1xuICAgICAgICB2YXIgbG9jYWxlO1xuXG4gICAgICAgIGlmIChrZXkgJiYga2V5Ll9sb2NhbGUgJiYga2V5Ll9sb2NhbGUuX2FiYnIpIHtcbiAgICAgICAgICAgIGtleSA9IGtleS5fbG9jYWxlLl9hYmJyO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFrZXkpIHtcbiAgICAgICAgICAgIHJldHVybiBnbG9iYWxMb2NhbGU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWlzQXJyYXkoa2V5KSkge1xuICAgICAgICAgICAgLy9zaG9ydC1jaXJjdWl0IGV2ZXJ5dGhpbmcgZWxzZVxuICAgICAgICAgICAgbG9jYWxlID0gbG9hZExvY2FsZShrZXkpO1xuICAgICAgICAgICAgaWYgKGxvY2FsZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBsb2NhbGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBrZXkgPSBba2V5XTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjaG9vc2VMb2NhbGUoa2V5KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsaXN0TG9jYWxlcygpIHtcbiAgICAgICAgcmV0dXJuIGtleXMobG9jYWxlcyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY2hlY2tPdmVyZmxvdyhtKSB7XG4gICAgICAgIHZhciBvdmVyZmxvdyxcbiAgICAgICAgICAgIGEgPSBtLl9hO1xuXG4gICAgICAgIGlmIChhICYmIGdldFBhcnNpbmdGbGFncyhtKS5vdmVyZmxvdyA9PT0gLTIpIHtcbiAgICAgICAgICAgIG92ZXJmbG93ID1cbiAgICAgICAgICAgICAgICBhW01PTlRIXSA8IDAgfHwgYVtNT05USF0gPiAxMVxuICAgICAgICAgICAgICAgICAgICA/IE1PTlRIXG4gICAgICAgICAgICAgICAgICAgIDogYVtEQVRFXSA8IDEgfHwgYVtEQVRFXSA+IGRheXNJbk1vbnRoKGFbWUVBUl0sIGFbTU9OVEhdKVxuICAgICAgICAgICAgICAgICAgICA/IERBVEVcbiAgICAgICAgICAgICAgICAgICAgOiBhW0hPVVJdIDwgMCB8fFxuICAgICAgICAgICAgICAgICAgICAgIGFbSE9VUl0gPiAyNCB8fFxuICAgICAgICAgICAgICAgICAgICAgIChhW0hPVVJdID09PSAyNCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAoYVtNSU5VVEVdICE9PSAwIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhW1NFQ09ORF0gIT09IDAgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFbTUlMTElTRUNPTkRdICE9PSAwKSlcbiAgICAgICAgICAgICAgICAgICAgPyBIT1VSXG4gICAgICAgICAgICAgICAgICAgIDogYVtNSU5VVEVdIDwgMCB8fCBhW01JTlVURV0gPiA1OVxuICAgICAgICAgICAgICAgICAgICA/IE1JTlVURVxuICAgICAgICAgICAgICAgICAgICA6IGFbU0VDT05EXSA8IDAgfHwgYVtTRUNPTkRdID4gNTlcbiAgICAgICAgICAgICAgICAgICAgPyBTRUNPTkRcbiAgICAgICAgICAgICAgICAgICAgOiBhW01JTExJU0VDT05EXSA8IDAgfHwgYVtNSUxMSVNFQ09ORF0gPiA5OTlcbiAgICAgICAgICAgICAgICAgICAgPyBNSUxMSVNFQ09ORFxuICAgICAgICAgICAgICAgICAgICA6IC0xO1xuXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKG0pLl9vdmVyZmxvd0RheU9mWWVhciAmJlxuICAgICAgICAgICAgICAgIChvdmVyZmxvdyA8IFlFQVIgfHwgb3ZlcmZsb3cgPiBEQVRFKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3cgPSBEQVRFO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGdldFBhcnNpbmdGbGFncyhtKS5fb3ZlcmZsb3dXZWVrcyAmJiBvdmVyZmxvdyA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdyA9IFdFRUs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZ2V0UGFyc2luZ0ZsYWdzKG0pLl9vdmVyZmxvd1dlZWtkYXkgJiYgb3ZlcmZsb3cgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3cgPSBXRUVLREFZO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MobSkub3ZlcmZsb3cgPSBvdmVyZmxvdztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIC8vIGlzbyA4NjAxIHJlZ2V4XG4gICAgLy8gMDAwMC0wMC0wMCAwMDAwLVcwMCBvciAwMDAwLVcwMC0wICsgVCArIDAwIG9yIDAwOjAwIG9yIDAwOjAwOjAwIG9yIDAwOjAwOjAwLjAwMCArICswMDowMCBvciArMDAwMCBvciArMDApXG4gICAgdmFyIGV4dGVuZGVkSXNvUmVnZXggPSAvXlxccyooKD86WystXVxcZHs2fXxcXGR7NH0pLSg/OlxcZFxcZC1cXGRcXGR8V1xcZFxcZC1cXGR8V1xcZFxcZHxcXGRcXGRcXGR8XFxkXFxkKSkoPzooVHwgKShcXGRcXGQoPzo6XFxkXFxkKD86OlxcZFxcZCg/OlsuLF1cXGQrKT8pPyk/KShbKy1dXFxkXFxkKD86Oj9cXGRcXGQpP3xcXHMqWik/KT8kLyxcbiAgICAgICAgYmFzaWNJc29SZWdleCA9IC9eXFxzKigoPzpbKy1dXFxkezZ9fFxcZHs0fSkoPzpcXGRcXGRcXGRcXGR8V1xcZFxcZFxcZHxXXFxkXFxkfFxcZFxcZFxcZHxcXGRcXGR8KSkoPzooVHwgKShcXGRcXGQoPzpcXGRcXGQoPzpcXGRcXGQoPzpbLixdXFxkKyk/KT8pPykoWystXVxcZFxcZCg/Ojo/XFxkXFxkKT98XFxzKlopPyk/JC8sXG4gICAgICAgIHR6UmVnZXggPSAvWnxbKy1dXFxkXFxkKD86Oj9cXGRcXGQpPy8sXG4gICAgICAgIGlzb0RhdGVzID0gW1xuICAgICAgICAgICAgWydZWVlZWVktTU0tREQnLCAvWystXVxcZHs2fS1cXGRcXGQtXFxkXFxkL10sXG4gICAgICAgICAgICBbJ1lZWVktTU0tREQnLCAvXFxkezR9LVxcZFxcZC1cXGRcXGQvXSxcbiAgICAgICAgICAgIFsnR0dHRy1bV11XVy1FJywgL1xcZHs0fS1XXFxkXFxkLVxcZC9dLFxuICAgICAgICAgICAgWydHR0dHLVtXXVdXJywgL1xcZHs0fS1XXFxkXFxkLywgZmFsc2VdLFxuICAgICAgICAgICAgWydZWVlZLURERCcsIC9cXGR7NH0tXFxkezN9L10sXG4gICAgICAgICAgICBbJ1lZWVktTU0nLCAvXFxkezR9LVxcZFxcZC8sIGZhbHNlXSxcbiAgICAgICAgICAgIFsnWVlZWVlZTU1ERCcsIC9bKy1dXFxkezEwfS9dLFxuICAgICAgICAgICAgWydZWVlZTU1ERCcsIC9cXGR7OH0vXSxcbiAgICAgICAgICAgIFsnR0dHR1tXXVdXRScsIC9cXGR7NH1XXFxkezN9L10sXG4gICAgICAgICAgICBbJ0dHR0dbV11XVycsIC9cXGR7NH1XXFxkezJ9LywgZmFsc2VdLFxuICAgICAgICAgICAgWydZWVlZREREJywgL1xcZHs3fS9dLFxuICAgICAgICAgICAgWydZWVlZTU0nLCAvXFxkezZ9LywgZmFsc2VdLFxuICAgICAgICAgICAgWydZWVlZJywgL1xcZHs0fS8sIGZhbHNlXSxcbiAgICAgICAgXSxcbiAgICAgICAgLy8gaXNvIHRpbWUgZm9ybWF0cyBhbmQgcmVnZXhlc1xuICAgICAgICBpc29UaW1lcyA9IFtcbiAgICAgICAgICAgIFsnSEg6bW06c3MuU1NTUycsIC9cXGRcXGQ6XFxkXFxkOlxcZFxcZFxcLlxcZCsvXSxcbiAgICAgICAgICAgIFsnSEg6bW06c3MsU1NTUycsIC9cXGRcXGQ6XFxkXFxkOlxcZFxcZCxcXGQrL10sXG4gICAgICAgICAgICBbJ0hIOm1tOnNzJywgL1xcZFxcZDpcXGRcXGQ6XFxkXFxkL10sXG4gICAgICAgICAgICBbJ0hIOm1tJywgL1xcZFxcZDpcXGRcXGQvXSxcbiAgICAgICAgICAgIFsnSEhtbXNzLlNTU1MnLCAvXFxkXFxkXFxkXFxkXFxkXFxkXFwuXFxkKy9dLFxuICAgICAgICAgICAgWydISG1tc3MsU1NTUycsIC9cXGRcXGRcXGRcXGRcXGRcXGQsXFxkKy9dLFxuICAgICAgICAgICAgWydISG1tc3MnLCAvXFxkXFxkXFxkXFxkXFxkXFxkL10sXG4gICAgICAgICAgICBbJ0hIbW0nLCAvXFxkXFxkXFxkXFxkL10sXG4gICAgICAgICAgICBbJ0hIJywgL1xcZFxcZC9dLFxuICAgICAgICBdLFxuICAgICAgICBhc3BOZXRKc29uUmVnZXggPSAvXlxcLz9EYXRlXFwoKC0/XFxkKykvaSxcbiAgICAgICAgLy8gUkZDIDI4MjIgcmVnZXg6IEZvciBkZXRhaWxzIHNlZSBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMjgyMiNzZWN0aW9uLTMuM1xuICAgICAgICByZmMyODIyID0gL14oPzooTW9ufFR1ZXxXZWR8VGh1fEZyaXxTYXR8U3VuKSw/XFxzKT8oXFxkezEsMn0pXFxzKEphbnxGZWJ8TWFyfEFwcnxNYXl8SnVufEp1bHxBdWd8U2VwfE9jdHxOb3Z8RGVjKVxccyhcXGR7Miw0fSlcXHMoXFxkXFxkKTooXFxkXFxkKSg/OjooXFxkXFxkKSk/XFxzKD86KFVUfEdNVHxbRUNNUF1bU0RdVCl8KFtael0pfChbKy1dXFxkezR9KSkkLyxcbiAgICAgICAgb2JzT2Zmc2V0cyA9IHtcbiAgICAgICAgICAgIFVUOiAwLFxuICAgICAgICAgICAgR01UOiAwLFxuICAgICAgICAgICAgRURUOiAtNCAqIDYwLFxuICAgICAgICAgICAgRVNUOiAtNSAqIDYwLFxuICAgICAgICAgICAgQ0RUOiAtNSAqIDYwLFxuICAgICAgICAgICAgQ1NUOiAtNiAqIDYwLFxuICAgICAgICAgICAgTURUOiAtNiAqIDYwLFxuICAgICAgICAgICAgTVNUOiAtNyAqIDYwLFxuICAgICAgICAgICAgUERUOiAtNyAqIDYwLFxuICAgICAgICAgICAgUFNUOiAtOCAqIDYwLFxuICAgICAgICB9O1xuXG4gICAgLy8gZGF0ZSBmcm9tIGlzbyBmb3JtYXRcbiAgICBmdW5jdGlvbiBjb25maWdGcm9tSVNPKGNvbmZpZykge1xuICAgICAgICB2YXIgaSxcbiAgICAgICAgICAgIGwsXG4gICAgICAgICAgICBzdHJpbmcgPSBjb25maWcuX2ksXG4gICAgICAgICAgICBtYXRjaCA9IGV4dGVuZGVkSXNvUmVnZXguZXhlYyhzdHJpbmcpIHx8IGJhc2ljSXNvUmVnZXguZXhlYyhzdHJpbmcpLFxuICAgICAgICAgICAgYWxsb3dUaW1lLFxuICAgICAgICAgICAgZGF0ZUZvcm1hdCxcbiAgICAgICAgICAgIHRpbWVGb3JtYXQsXG4gICAgICAgICAgICB0ekZvcm1hdDtcblxuICAgICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLmlzbyA9IHRydWU7XG5cbiAgICAgICAgICAgIGZvciAoaSA9IDAsIGwgPSBpc29EYXRlcy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNvRGF0ZXNbaV1bMV0uZXhlYyhtYXRjaFsxXSkpIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0ZUZvcm1hdCA9IGlzb0RhdGVzW2ldWzBdO1xuICAgICAgICAgICAgICAgICAgICBhbGxvd1RpbWUgPSBpc29EYXRlc1tpXVsyXSAhPT0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRlRm9ybWF0ID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBjb25maWcuX2lzVmFsaWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobWF0Y2hbM10pIHtcbiAgICAgICAgICAgICAgICBmb3IgKGkgPSAwLCBsID0gaXNvVGltZXMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc29UaW1lc1tpXVsxXS5leGVjKG1hdGNoWzNdKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWF0Y2hbMl0gc2hvdWxkIGJlICdUJyBvciBzcGFjZVxuICAgICAgICAgICAgICAgICAgICAgICAgdGltZUZvcm1hdCA9IChtYXRjaFsyXSB8fCAnICcpICsgaXNvVGltZXNbaV1bMF07XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodGltZUZvcm1hdCA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZy5faXNWYWxpZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFhbGxvd1RpbWUgJiYgdGltZUZvcm1hdCAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgY29uZmlnLl9pc1ZhbGlkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG1hdGNoWzRdKSB7XG4gICAgICAgICAgICAgICAgaWYgKHR6UmVnZXguZXhlYyhtYXRjaFs0XSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdHpGb3JtYXQgPSAnWic7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uZmlnLl9pc1ZhbGlkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25maWcuX2YgPSBkYXRlRm9ybWF0ICsgKHRpbWVGb3JtYXQgfHwgJycpICsgKHR6Rm9ybWF0IHx8ICcnKTtcbiAgICAgICAgICAgIGNvbmZpZ0Zyb21TdHJpbmdBbmRGb3JtYXQoY29uZmlnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbmZpZy5faXNWYWxpZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZXh0cmFjdEZyb21SRkMyODIyU3RyaW5ncyhcbiAgICAgICAgeWVhclN0cixcbiAgICAgICAgbW9udGhTdHIsXG4gICAgICAgIGRheVN0cixcbiAgICAgICAgaG91clN0cixcbiAgICAgICAgbWludXRlU3RyLFxuICAgICAgICBzZWNvbmRTdHJcbiAgICApIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IFtcbiAgICAgICAgICAgIHVudHJ1bmNhdGVZZWFyKHllYXJTdHIpLFxuICAgICAgICAgICAgZGVmYXVsdExvY2FsZU1vbnRoc1Nob3J0LmluZGV4T2YobW9udGhTdHIpLFxuICAgICAgICAgICAgcGFyc2VJbnQoZGF5U3RyLCAxMCksXG4gICAgICAgICAgICBwYXJzZUludChob3VyU3RyLCAxMCksXG4gICAgICAgICAgICBwYXJzZUludChtaW51dGVTdHIsIDEwKSxcbiAgICAgICAgXTtcblxuICAgICAgICBpZiAoc2Vjb25kU3RyKSB7XG4gICAgICAgICAgICByZXN1bHQucHVzaChwYXJzZUludChzZWNvbmRTdHIsIDEwKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHVudHJ1bmNhdGVZZWFyKHllYXJTdHIpIHtcbiAgICAgICAgdmFyIHllYXIgPSBwYXJzZUludCh5ZWFyU3RyLCAxMCk7XG4gICAgICAgIGlmICh5ZWFyIDw9IDQ5KSB7XG4gICAgICAgICAgICByZXR1cm4gMjAwMCArIHllYXI7XG4gICAgICAgIH0gZWxzZSBpZiAoeWVhciA8PSA5OTkpIHtcbiAgICAgICAgICAgIHJldHVybiAxOTAwICsgeWVhcjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geWVhcjtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwcmVwcm9jZXNzUkZDMjgyMihzKSB7XG4gICAgICAgIC8vIFJlbW92ZSBjb21tZW50cyBhbmQgZm9sZGluZyB3aGl0ZXNwYWNlIGFuZCByZXBsYWNlIG11bHRpcGxlLXNwYWNlcyB3aXRoIGEgc2luZ2xlIHNwYWNlXG4gICAgICAgIHJldHVybiBzXG4gICAgICAgICAgICAucmVwbGFjZSgvXFwoW14pXSpcXCl8W1xcblxcdF0vZywgJyAnKVxuICAgICAgICAgICAgLnJlcGxhY2UoLyhcXHNcXHMrKS9nLCAnICcpXG4gICAgICAgICAgICAucmVwbGFjZSgvXlxcc1xccyovLCAnJylcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXHNcXHMqJC8sICcnKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjaGVja1dlZWtkYXkod2Vla2RheVN0ciwgcGFyc2VkSW5wdXQsIGNvbmZpZykge1xuICAgICAgICBpZiAod2Vla2RheVN0cikge1xuICAgICAgICAgICAgLy8gVE9ETzogUmVwbGFjZSB0aGUgdmFuaWxsYSBKUyBEYXRlIG9iamVjdCB3aXRoIGFuIGluZGVwZW5kZW50IGRheS1vZi13ZWVrIGNoZWNrLlxuICAgICAgICAgICAgdmFyIHdlZWtkYXlQcm92aWRlZCA9IGRlZmF1bHRMb2NhbGVXZWVrZGF5c1Nob3J0LmluZGV4T2Yod2Vla2RheVN0ciksXG4gICAgICAgICAgICAgICAgd2Vla2RheUFjdHVhbCA9IG5ldyBEYXRlKFxuICAgICAgICAgICAgICAgICAgICBwYXJzZWRJbnB1dFswXSxcbiAgICAgICAgICAgICAgICAgICAgcGFyc2VkSW5wdXRbMV0sXG4gICAgICAgICAgICAgICAgICAgIHBhcnNlZElucHV0WzJdXG4gICAgICAgICAgICAgICAgKS5nZXREYXkoKTtcbiAgICAgICAgICAgIGlmICh3ZWVrZGF5UHJvdmlkZWQgIT09IHdlZWtkYXlBY3R1YWwpIHtcbiAgICAgICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS53ZWVrZGF5TWlzbWF0Y2ggPSB0cnVlO1xuICAgICAgICAgICAgICAgIGNvbmZpZy5faXNWYWxpZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjYWxjdWxhdGVPZmZzZXQob2JzT2Zmc2V0LCBtaWxpdGFyeU9mZnNldCwgbnVtT2Zmc2V0KSB7XG4gICAgICAgIGlmIChvYnNPZmZzZXQpIHtcbiAgICAgICAgICAgIHJldHVybiBvYnNPZmZzZXRzW29ic09mZnNldF07XG4gICAgICAgIH0gZWxzZSBpZiAobWlsaXRhcnlPZmZzZXQpIHtcbiAgICAgICAgICAgIC8vIHRoZSBvbmx5IGFsbG93ZWQgbWlsaXRhcnkgdHogaXMgWlxuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YXIgaG0gPSBwYXJzZUludChudW1PZmZzZXQsIDEwKSxcbiAgICAgICAgICAgICAgICBtID0gaG0gJSAxMDAsXG4gICAgICAgICAgICAgICAgaCA9IChobSAtIG0pIC8gMTAwO1xuICAgICAgICAgICAgcmV0dXJuIGggKiA2MCArIG07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBkYXRlIGFuZCB0aW1lIGZyb20gcmVmIDI4MjIgZm9ybWF0XG4gICAgZnVuY3Rpb24gY29uZmlnRnJvbVJGQzI4MjIoY29uZmlnKSB7XG4gICAgICAgIHZhciBtYXRjaCA9IHJmYzI4MjIuZXhlYyhwcmVwcm9jZXNzUkZDMjgyMihjb25maWcuX2kpKSxcbiAgICAgICAgICAgIHBhcnNlZEFycmF5O1xuICAgICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgICAgIHBhcnNlZEFycmF5ID0gZXh0cmFjdEZyb21SRkMyODIyU3RyaW5ncyhcbiAgICAgICAgICAgICAgICBtYXRjaFs0XSxcbiAgICAgICAgICAgICAgICBtYXRjaFszXSxcbiAgICAgICAgICAgICAgICBtYXRjaFsyXSxcbiAgICAgICAgICAgICAgICBtYXRjaFs1XSxcbiAgICAgICAgICAgICAgICBtYXRjaFs2XSxcbiAgICAgICAgICAgICAgICBtYXRjaFs3XVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmICghY2hlY2tXZWVrZGF5KG1hdGNoWzFdLCBwYXJzZWRBcnJheSwgY29uZmlnKSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uZmlnLl9hID0gcGFyc2VkQXJyYXk7XG4gICAgICAgICAgICBjb25maWcuX3R6bSA9IGNhbGN1bGF0ZU9mZnNldChtYXRjaFs4XSwgbWF0Y2hbOV0sIG1hdGNoWzEwXSk7XG5cbiAgICAgICAgICAgIGNvbmZpZy5fZCA9IGNyZWF0ZVVUQ0RhdGUuYXBwbHkobnVsbCwgY29uZmlnLl9hKTtcbiAgICAgICAgICAgIGNvbmZpZy5fZC5zZXRVVENNaW51dGVzKGNvbmZpZy5fZC5nZXRVVENNaW51dGVzKCkgLSBjb25maWcuX3R6bSk7XG5cbiAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLnJmYzI4MjIgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uZmlnLl9pc1ZhbGlkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBkYXRlIGZyb20gMSkgQVNQLk5FVCwgMikgSVNPLCAzKSBSRkMgMjgyMiBmb3JtYXRzLCBvciA0KSBvcHRpb25hbCBmYWxsYmFjayBpZiBwYXJzaW5nIGlzbid0IHN0cmljdFxuICAgIGZ1bmN0aW9uIGNvbmZpZ0Zyb21TdHJpbmcoY29uZmlnKSB7XG4gICAgICAgIHZhciBtYXRjaGVkID0gYXNwTmV0SnNvblJlZ2V4LmV4ZWMoY29uZmlnLl9pKTtcbiAgICAgICAgaWYgKG1hdGNoZWQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGNvbmZpZy5fZCA9IG5ldyBEYXRlKCttYXRjaGVkWzFdKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbmZpZ0Zyb21JU08oY29uZmlnKTtcbiAgICAgICAgaWYgKGNvbmZpZy5faXNWYWxpZCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGRlbGV0ZSBjb25maWcuX2lzVmFsaWQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25maWdGcm9tUkZDMjgyMihjb25maWcpO1xuICAgICAgICBpZiAoY29uZmlnLl9pc1ZhbGlkID09PSBmYWxzZSkge1xuICAgICAgICAgICAgZGVsZXRlIGNvbmZpZy5faXNWYWxpZDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjb25maWcuX3N0cmljdCkge1xuICAgICAgICAgICAgY29uZmlnLl9pc1ZhbGlkID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBGaW5hbCBhdHRlbXB0LCB1c2UgSW5wdXQgRmFsbGJhY2tcbiAgICAgICAgICAgIGhvb2tzLmNyZWF0ZUZyb21JbnB1dEZhbGxiYWNrKGNvbmZpZyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBob29rcy5jcmVhdGVGcm9tSW5wdXRGYWxsYmFjayA9IGRlcHJlY2F0ZShcbiAgICAgICAgJ3ZhbHVlIHByb3ZpZGVkIGlzIG5vdCBpbiBhIHJlY29nbml6ZWQgUkZDMjgyMiBvciBJU08gZm9ybWF0LiBtb21lbnQgY29uc3RydWN0aW9uIGZhbGxzIGJhY2sgdG8ganMgRGF0ZSgpLCAnICtcbiAgICAgICAgICAgICd3aGljaCBpcyBub3QgcmVsaWFibGUgYWNyb3NzIGFsbCBicm93c2VycyBhbmQgdmVyc2lvbnMuIE5vbiBSRkMyODIyL0lTTyBkYXRlIGZvcm1hdHMgYXJlICcgK1xuICAgICAgICAgICAgJ2Rpc2NvdXJhZ2VkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYW4gdXBjb21pbmcgbWFqb3IgcmVsZWFzZS4gUGxlYXNlIHJlZmVyIHRvICcgK1xuICAgICAgICAgICAgJ2h0dHA6Ly9tb21lbnRqcy5jb20vZ3VpZGVzLyMvd2FybmluZ3MvanMtZGF0ZS8gZm9yIG1vcmUgaW5mby4nLFxuICAgICAgICBmdW5jdGlvbiAoY29uZmlnKSB7XG4gICAgICAgICAgICBjb25maWcuX2QgPSBuZXcgRGF0ZShjb25maWcuX2kgKyAoY29uZmlnLl91c2VVVEMgPyAnIFVUQycgOiAnJykpO1xuICAgICAgICB9XG4gICAgKTtcblxuICAgIC8vIFBpY2sgdGhlIGZpcnN0IGRlZmluZWQgb2YgdHdvIG9yIHRocmVlIGFyZ3VtZW50cy5cbiAgICBmdW5jdGlvbiBkZWZhdWx0cyhhLCBiLCBjKSB7XG4gICAgICAgIGlmIChhICE9IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBhO1xuICAgICAgICB9XG4gICAgICAgIGlmIChiICE9IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBiO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGN1cnJlbnREYXRlQXJyYXkoY29uZmlnKSB7XG4gICAgICAgIC8vIGhvb2tzIGlzIGFjdHVhbGx5IHRoZSBleHBvcnRlZCBtb21lbnQgb2JqZWN0XG4gICAgICAgIHZhciBub3dWYWx1ZSA9IG5ldyBEYXRlKGhvb2tzLm5vdygpKTtcbiAgICAgICAgaWYgKGNvbmZpZy5fdXNlVVRDKSB7XG4gICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgIG5vd1ZhbHVlLmdldFVUQ0Z1bGxZZWFyKCksXG4gICAgICAgICAgICAgICAgbm93VmFsdWUuZ2V0VVRDTW9udGgoKSxcbiAgICAgICAgICAgICAgICBub3dWYWx1ZS5nZXRVVENEYXRlKCksXG4gICAgICAgICAgICBdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbbm93VmFsdWUuZ2V0RnVsbFllYXIoKSwgbm93VmFsdWUuZ2V0TW9udGgoKSwgbm93VmFsdWUuZ2V0RGF0ZSgpXTtcbiAgICB9XG5cbiAgICAvLyBjb252ZXJ0IGFuIGFycmF5IHRvIGEgZGF0ZS5cbiAgICAvLyB0aGUgYXJyYXkgc2hvdWxkIG1pcnJvciB0aGUgcGFyYW1ldGVycyBiZWxvd1xuICAgIC8vIG5vdGU6IGFsbCB2YWx1ZXMgcGFzdCB0aGUgeWVhciBhcmUgb3B0aW9uYWwgYW5kIHdpbGwgZGVmYXVsdCB0byB0aGUgbG93ZXN0IHBvc3NpYmxlIHZhbHVlLlxuICAgIC8vIFt5ZWFyLCBtb250aCwgZGF5ICwgaG91ciwgbWludXRlLCBzZWNvbmQsIG1pbGxpc2Vjb25kXVxuICAgIGZ1bmN0aW9uIGNvbmZpZ0Zyb21BcnJheShjb25maWcpIHtcbiAgICAgICAgdmFyIGksXG4gICAgICAgICAgICBkYXRlLFxuICAgICAgICAgICAgaW5wdXQgPSBbXSxcbiAgICAgICAgICAgIGN1cnJlbnREYXRlLFxuICAgICAgICAgICAgZXhwZWN0ZWRXZWVrZGF5LFxuICAgICAgICAgICAgeWVhclRvVXNlO1xuXG4gICAgICAgIGlmIChjb25maWcuX2QpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGN1cnJlbnREYXRlID0gY3VycmVudERhdGVBcnJheShjb25maWcpO1xuXG4gICAgICAgIC8vY29tcHV0ZSBkYXkgb2YgdGhlIHllYXIgZnJvbSB3ZWVrcyBhbmQgd2Vla2RheXNcbiAgICAgICAgaWYgKGNvbmZpZy5fdyAmJiBjb25maWcuX2FbREFURV0gPT0gbnVsbCAmJiBjb25maWcuX2FbTU9OVEhdID09IG51bGwpIHtcbiAgICAgICAgICAgIGRheU9mWWVhckZyb21XZWVrSW5mbyhjb25maWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy9pZiB0aGUgZGF5IG9mIHRoZSB5ZWFyIGlzIHNldCwgZmlndXJlIG91dCB3aGF0IGl0IGlzXG4gICAgICAgIGlmIChjb25maWcuX2RheU9mWWVhciAhPSBudWxsKSB7XG4gICAgICAgICAgICB5ZWFyVG9Vc2UgPSBkZWZhdWx0cyhjb25maWcuX2FbWUVBUl0sIGN1cnJlbnREYXRlW1lFQVJdKTtcblxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIGNvbmZpZy5fZGF5T2ZZZWFyID4gZGF5c0luWWVhcih5ZWFyVG9Vc2UpIHx8XG4gICAgICAgICAgICAgICAgY29uZmlnLl9kYXlPZlllYXIgPT09IDBcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLl9vdmVyZmxvd0RheU9mWWVhciA9IHRydWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGRhdGUgPSBjcmVhdGVVVENEYXRlKHllYXJUb1VzZSwgMCwgY29uZmlnLl9kYXlPZlllYXIpO1xuICAgICAgICAgICAgY29uZmlnLl9hW01PTlRIXSA9IGRhdGUuZ2V0VVRDTW9udGgoKTtcbiAgICAgICAgICAgIGNvbmZpZy5fYVtEQVRFXSA9IGRhdGUuZ2V0VVRDRGF0ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRGVmYXVsdCB0byBjdXJyZW50IGRhdGUuXG4gICAgICAgIC8vICogaWYgbm8geWVhciwgbW9udGgsIGRheSBvZiBtb250aCBhcmUgZ2l2ZW4sIGRlZmF1bHQgdG8gdG9kYXlcbiAgICAgICAgLy8gKiBpZiBkYXkgb2YgbW9udGggaXMgZ2l2ZW4sIGRlZmF1bHQgbW9udGggYW5kIHllYXJcbiAgICAgICAgLy8gKiBpZiBtb250aCBpcyBnaXZlbiwgZGVmYXVsdCBvbmx5IHllYXJcbiAgICAgICAgLy8gKiBpZiB5ZWFyIGlzIGdpdmVuLCBkb24ndCBkZWZhdWx0IGFueXRoaW5nXG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCAzICYmIGNvbmZpZy5fYVtpXSA9PSBudWxsOyArK2kpIHtcbiAgICAgICAgICAgIGNvbmZpZy5fYVtpXSA9IGlucHV0W2ldID0gY3VycmVudERhdGVbaV07XG4gICAgICAgIH1cblxuICAgICAgICAvLyBaZXJvIG91dCB3aGF0ZXZlciB3YXMgbm90IGRlZmF1bHRlZCwgaW5jbHVkaW5nIHRpbWVcbiAgICAgICAgZm9yICg7IGkgPCA3OyBpKyspIHtcbiAgICAgICAgICAgIGNvbmZpZy5fYVtpXSA9IGlucHV0W2ldID1cbiAgICAgICAgICAgICAgICBjb25maWcuX2FbaV0gPT0gbnVsbCA/IChpID09PSAyID8gMSA6IDApIDogY29uZmlnLl9hW2ldO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ2hlY2sgZm9yIDI0OjAwOjAwLjAwMFxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBjb25maWcuX2FbSE9VUl0gPT09IDI0ICYmXG4gICAgICAgICAgICBjb25maWcuX2FbTUlOVVRFXSA9PT0gMCAmJlxuICAgICAgICAgICAgY29uZmlnLl9hW1NFQ09ORF0gPT09IDAgJiZcbiAgICAgICAgICAgIGNvbmZpZy5fYVtNSUxMSVNFQ09ORF0gPT09IDBcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25maWcuX25leHREYXkgPSB0cnVlO1xuICAgICAgICAgICAgY29uZmlnLl9hW0hPVVJdID0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbmZpZy5fZCA9IChjb25maWcuX3VzZVVUQyA/IGNyZWF0ZVVUQ0RhdGUgOiBjcmVhdGVEYXRlKS5hcHBseShcbiAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICBpbnB1dFxuICAgICAgICApO1xuICAgICAgICBleHBlY3RlZFdlZWtkYXkgPSBjb25maWcuX3VzZVVUQ1xuICAgICAgICAgICAgPyBjb25maWcuX2QuZ2V0VVRDRGF5KClcbiAgICAgICAgICAgIDogY29uZmlnLl9kLmdldERheSgpO1xuXG4gICAgICAgIC8vIEFwcGx5IHRpbWV6b25lIG9mZnNldCBmcm9tIGlucHV0LiBUaGUgYWN0dWFsIHV0Y09mZnNldCBjYW4gYmUgY2hhbmdlZFxuICAgICAgICAvLyB3aXRoIHBhcnNlWm9uZS5cbiAgICAgICAgaWYgKGNvbmZpZy5fdHptICE9IG51bGwpIHtcbiAgICAgICAgICAgIGNvbmZpZy5fZC5zZXRVVENNaW51dGVzKGNvbmZpZy5fZC5nZXRVVENNaW51dGVzKCkgLSBjb25maWcuX3R6bSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY29uZmlnLl9uZXh0RGF5KSB7XG4gICAgICAgICAgICBjb25maWcuX2FbSE9VUl0gPSAyNDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGNoZWNrIGZvciBtaXNtYXRjaGluZyBkYXkgb2Ygd2Vla1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICBjb25maWcuX3cgJiZcbiAgICAgICAgICAgIHR5cGVvZiBjb25maWcuX3cuZCAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICAgICAgICAgIGNvbmZpZy5fdy5kICE9PSBleHBlY3RlZFdlZWtkYXlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS53ZWVrZGF5TWlzbWF0Y2ggPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZGF5T2ZZZWFyRnJvbVdlZWtJbmZvKGNvbmZpZykge1xuICAgICAgICB2YXIgdywgd2Vla1llYXIsIHdlZWssIHdlZWtkYXksIGRvdywgZG95LCB0ZW1wLCB3ZWVrZGF5T3ZlcmZsb3csIGN1cldlZWs7XG5cbiAgICAgICAgdyA9IGNvbmZpZy5fdztcbiAgICAgICAgaWYgKHcuR0cgIT0gbnVsbCB8fCB3LlcgIT0gbnVsbCB8fCB3LkUgIT0gbnVsbCkge1xuICAgICAgICAgICAgZG93ID0gMTtcbiAgICAgICAgICAgIGRveSA9IDQ7XG5cbiAgICAgICAgICAgIC8vIFRPRE86IFdlIG5lZWQgdG8gdGFrZSB0aGUgY3VycmVudCBpc29XZWVrWWVhciwgYnV0IHRoYXQgZGVwZW5kcyBvblxuICAgICAgICAgICAgLy8gaG93IHdlIGludGVycHJldCBub3cgKGxvY2FsLCB1dGMsIGZpeGVkIG9mZnNldCkuIFNvIGNyZWF0ZVxuICAgICAgICAgICAgLy8gYSBub3cgdmVyc2lvbiBvZiBjdXJyZW50IGNvbmZpZyAodGFrZSBsb2NhbC91dGMvb2Zmc2V0IGZsYWdzLCBhbmRcbiAgICAgICAgICAgIC8vIGNyZWF0ZSBub3cpLlxuICAgICAgICAgICAgd2Vla1llYXIgPSBkZWZhdWx0cyhcbiAgICAgICAgICAgICAgICB3LkdHLFxuICAgICAgICAgICAgICAgIGNvbmZpZy5fYVtZRUFSXSxcbiAgICAgICAgICAgICAgICB3ZWVrT2ZZZWFyKGNyZWF0ZUxvY2FsKCksIDEsIDQpLnllYXJcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB3ZWVrID0gZGVmYXVsdHMody5XLCAxKTtcbiAgICAgICAgICAgIHdlZWtkYXkgPSBkZWZhdWx0cyh3LkUsIDEpO1xuICAgICAgICAgICAgaWYgKHdlZWtkYXkgPCAxIHx8IHdlZWtkYXkgPiA3KSB7XG4gICAgICAgICAgICAgICAgd2Vla2RheU92ZXJmbG93ID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRvdyA9IGNvbmZpZy5fbG9jYWxlLl93ZWVrLmRvdztcbiAgICAgICAgICAgIGRveSA9IGNvbmZpZy5fbG9jYWxlLl93ZWVrLmRveTtcblxuICAgICAgICAgICAgY3VyV2VlayA9IHdlZWtPZlllYXIoY3JlYXRlTG9jYWwoKSwgZG93LCBkb3kpO1xuXG4gICAgICAgICAgICB3ZWVrWWVhciA9IGRlZmF1bHRzKHcuZ2csIGNvbmZpZy5fYVtZRUFSXSwgY3VyV2Vlay55ZWFyKTtcblxuICAgICAgICAgICAgLy8gRGVmYXVsdCB0byBjdXJyZW50IHdlZWsuXG4gICAgICAgICAgICB3ZWVrID0gZGVmYXVsdHMody53LCBjdXJXZWVrLndlZWspO1xuXG4gICAgICAgICAgICBpZiAody5kICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAvLyB3ZWVrZGF5IC0tIGxvdyBkYXkgbnVtYmVycyBhcmUgY29uc2lkZXJlZCBuZXh0IHdlZWtcbiAgICAgICAgICAgICAgICB3ZWVrZGF5ID0gdy5kO1xuICAgICAgICAgICAgICAgIGlmICh3ZWVrZGF5IDwgMCB8fCB3ZWVrZGF5ID4gNikge1xuICAgICAgICAgICAgICAgICAgICB3ZWVrZGF5T3ZlcmZsb3cgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAody5lICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAvLyBsb2NhbCB3ZWVrZGF5IC0tIGNvdW50aW5nIHN0YXJ0cyBmcm9tIGJlZ2lubmluZyBvZiB3ZWVrXG4gICAgICAgICAgICAgICAgd2Vla2RheSA9IHcuZSArIGRvdztcbiAgICAgICAgICAgICAgICBpZiAody5lIDwgMCB8fCB3LmUgPiA2KSB7XG4gICAgICAgICAgICAgICAgICAgIHdlZWtkYXlPdmVyZmxvdyA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBkZWZhdWx0IHRvIGJlZ2lubmluZyBvZiB3ZWVrXG4gICAgICAgICAgICAgICAgd2Vla2RheSA9IGRvdztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAod2VlayA8IDEgfHwgd2VlayA+IHdlZWtzSW5ZZWFyKHdlZWtZZWFyLCBkb3csIGRveSkpIHtcbiAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLl9vdmVyZmxvd1dlZWtzID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIGlmICh3ZWVrZGF5T3ZlcmZsb3cgIT0gbnVsbCkge1xuICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuX292ZXJmbG93V2Vla2RheSA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0ZW1wID0gZGF5T2ZZZWFyRnJvbVdlZWtzKHdlZWtZZWFyLCB3ZWVrLCB3ZWVrZGF5LCBkb3csIGRveSk7XG4gICAgICAgICAgICBjb25maWcuX2FbWUVBUl0gPSB0ZW1wLnllYXI7XG4gICAgICAgICAgICBjb25maWcuX2RheU9mWWVhciA9IHRlbXAuZGF5T2ZZZWFyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gY29uc3RhbnQgdGhhdCByZWZlcnMgdG8gdGhlIElTTyBzdGFuZGFyZFxuICAgIGhvb2tzLklTT184NjAxID0gZnVuY3Rpb24gKCkge307XG5cbiAgICAvLyBjb25zdGFudCB0aGF0IHJlZmVycyB0byB0aGUgUkZDIDI4MjIgZm9ybVxuICAgIGhvb2tzLlJGQ18yODIyID0gZnVuY3Rpb24gKCkge307XG5cbiAgICAvLyBkYXRlIGZyb20gc3RyaW5nIGFuZCBmb3JtYXQgc3RyaW5nXG4gICAgZnVuY3Rpb24gY29uZmlnRnJvbVN0cmluZ0FuZEZvcm1hdChjb25maWcpIHtcbiAgICAgICAgLy8gVE9ETzogTW92ZSB0aGlzIHRvIGFub3RoZXIgcGFydCBvZiB0aGUgY3JlYXRpb24gZmxvdyB0byBwcmV2ZW50IGNpcmN1bGFyIGRlcHNcbiAgICAgICAgaWYgKGNvbmZpZy5fZiA9PT0gaG9va3MuSVNPXzg2MDEpIHtcbiAgICAgICAgICAgIGNvbmZpZ0Zyb21JU08oY29uZmlnKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY29uZmlnLl9mID09PSBob29rcy5SRkNfMjgyMikge1xuICAgICAgICAgICAgY29uZmlnRnJvbVJGQzI4MjIoY29uZmlnKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25maWcuX2EgPSBbXTtcbiAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuZW1wdHkgPSB0cnVlO1xuXG4gICAgICAgIC8vIFRoaXMgYXJyYXkgaXMgdXNlZCB0byBtYWtlIGEgRGF0ZSwgZWl0aGVyIHdpdGggYG5ldyBEYXRlYCBvciBgRGF0ZS5VVENgXG4gICAgICAgIHZhciBzdHJpbmcgPSAnJyArIGNvbmZpZy5faSxcbiAgICAgICAgICAgIGksXG4gICAgICAgICAgICBwYXJzZWRJbnB1dCxcbiAgICAgICAgICAgIHRva2VucyxcbiAgICAgICAgICAgIHRva2VuLFxuICAgICAgICAgICAgc2tpcHBlZCxcbiAgICAgICAgICAgIHN0cmluZ0xlbmd0aCA9IHN0cmluZy5sZW5ndGgsXG4gICAgICAgICAgICB0b3RhbFBhcnNlZElucHV0TGVuZ3RoID0gMCxcbiAgICAgICAgICAgIGVyYTtcblxuICAgICAgICB0b2tlbnMgPVxuICAgICAgICAgICAgZXhwYW5kRm9ybWF0KGNvbmZpZy5fZiwgY29uZmlnLl9sb2NhbGUpLm1hdGNoKGZvcm1hdHRpbmdUb2tlbnMpIHx8IFtdO1xuXG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCB0b2tlbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHRva2VuID0gdG9rZW5zW2ldO1xuICAgICAgICAgICAgcGFyc2VkSW5wdXQgPSAoc3RyaW5nLm1hdGNoKGdldFBhcnNlUmVnZXhGb3JUb2tlbih0b2tlbiwgY29uZmlnKSkgfHxcbiAgICAgICAgICAgICAgICBbXSlbMF07XG4gICAgICAgICAgICBpZiAocGFyc2VkSW5wdXQpIHtcbiAgICAgICAgICAgICAgICBza2lwcGVkID0gc3RyaW5nLnN1YnN0cigwLCBzdHJpbmcuaW5kZXhPZihwYXJzZWRJbnB1dCkpO1xuICAgICAgICAgICAgICAgIGlmIChza2lwcGVkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykudW51c2VkSW5wdXQucHVzaChza2lwcGVkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc3RyaW5nID0gc3RyaW5nLnNsaWNlKFxuICAgICAgICAgICAgICAgICAgICBzdHJpbmcuaW5kZXhPZihwYXJzZWRJbnB1dCkgKyBwYXJzZWRJbnB1dC5sZW5ndGhcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHRvdGFsUGFyc2VkSW5wdXRMZW5ndGggKz0gcGFyc2VkSW5wdXQubGVuZ3RoO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gZG9uJ3QgcGFyc2UgaWYgaXQncyBub3QgYSBrbm93biB0b2tlblxuICAgICAgICAgICAgaWYgKGZvcm1hdFRva2VuRnVuY3Rpb25zW3Rva2VuXSkge1xuICAgICAgICAgICAgICAgIGlmIChwYXJzZWRJbnB1dCkge1xuICAgICAgICAgICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5lbXB0eSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLnVudXNlZFRva2Vucy5wdXNoKHRva2VuKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYWRkVGltZVRvQXJyYXlGcm9tVG9rZW4odG9rZW4sIHBhcnNlZElucHV0LCBjb25maWcpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjb25maWcuX3N0cmljdCAmJiAhcGFyc2VkSW5wdXQpIHtcbiAgICAgICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS51bnVzZWRUb2tlbnMucHVzaCh0b2tlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBhZGQgcmVtYWluaW5nIHVucGFyc2VkIGlucHV0IGxlbmd0aCB0byB0aGUgc3RyaW5nXG4gICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLmNoYXJzTGVmdE92ZXIgPVxuICAgICAgICAgICAgc3RyaW5nTGVuZ3RoIC0gdG90YWxQYXJzZWRJbnB1dExlbmd0aDtcbiAgICAgICAgaWYgKHN0cmluZy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS51bnVzZWRJbnB1dC5wdXNoKHN0cmluZyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBjbGVhciBfMTJoIGZsYWcgaWYgaG91ciBpcyA8PSAxMlxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBjb25maWcuX2FbSE9VUl0gPD0gMTIgJiZcbiAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLmJpZ0hvdXIgPT09IHRydWUgJiZcbiAgICAgICAgICAgIGNvbmZpZy5fYVtIT1VSXSA+IDBcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5iaWdIb3VyID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykucGFyc2VkRGF0ZVBhcnRzID0gY29uZmlnLl9hLnNsaWNlKDApO1xuICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5tZXJpZGllbSA9IGNvbmZpZy5fbWVyaWRpZW07XG4gICAgICAgIC8vIGhhbmRsZSBtZXJpZGllbVxuICAgICAgICBjb25maWcuX2FbSE9VUl0gPSBtZXJpZGllbUZpeFdyYXAoXG4gICAgICAgICAgICBjb25maWcuX2xvY2FsZSxcbiAgICAgICAgICAgIGNvbmZpZy5fYVtIT1VSXSxcbiAgICAgICAgICAgIGNvbmZpZy5fbWVyaWRpZW1cbiAgICAgICAgKTtcblxuICAgICAgICAvLyBoYW5kbGUgZXJhXG4gICAgICAgIGVyYSA9IGdldFBhcnNpbmdGbGFncyhjb25maWcpLmVyYTtcbiAgICAgICAgaWYgKGVyYSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgY29uZmlnLl9hW1lFQVJdID0gY29uZmlnLl9sb2NhbGUuZXJhc0NvbnZlcnRZZWFyKGVyYSwgY29uZmlnLl9hW1lFQVJdKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbmZpZ0Zyb21BcnJheShjb25maWcpO1xuICAgICAgICBjaGVja092ZXJmbG93KGNvbmZpZyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbWVyaWRpZW1GaXhXcmFwKGxvY2FsZSwgaG91ciwgbWVyaWRpZW0pIHtcbiAgICAgICAgdmFyIGlzUG07XG5cbiAgICAgICAgaWYgKG1lcmlkaWVtID09IG51bGwpIHtcbiAgICAgICAgICAgIC8vIG5vdGhpbmcgdG8gZG9cbiAgICAgICAgICAgIHJldHVybiBob3VyO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsb2NhbGUubWVyaWRpZW1Ib3VyICE9IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBsb2NhbGUubWVyaWRpZW1Ib3VyKGhvdXIsIG1lcmlkaWVtKTtcbiAgICAgICAgfSBlbHNlIGlmIChsb2NhbGUuaXNQTSAhPSBudWxsKSB7XG4gICAgICAgICAgICAvLyBGYWxsYmFja1xuICAgICAgICAgICAgaXNQbSA9IGxvY2FsZS5pc1BNKG1lcmlkaWVtKTtcbiAgICAgICAgICAgIGlmIChpc1BtICYmIGhvdXIgPCAxMikge1xuICAgICAgICAgICAgICAgIGhvdXIgKz0gMTI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWlzUG0gJiYgaG91ciA9PT0gMTIpIHtcbiAgICAgICAgICAgICAgICBob3VyID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBob3VyO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gdGhpcyBpcyBub3Qgc3VwcG9zZWQgdG8gaGFwcGVuXG4gICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGRhdGUgZnJvbSBzdHJpbmcgYW5kIGFycmF5IG9mIGZvcm1hdCBzdHJpbmdzXG4gICAgZnVuY3Rpb24gY29uZmlnRnJvbVN0cmluZ0FuZEFycmF5KGNvbmZpZykge1xuICAgICAgICB2YXIgdGVtcENvbmZpZyxcbiAgICAgICAgICAgIGJlc3RNb21lbnQsXG4gICAgICAgICAgICBzY29yZVRvQmVhdCxcbiAgICAgICAgICAgIGksXG4gICAgICAgICAgICBjdXJyZW50U2NvcmUsXG4gICAgICAgICAgICB2YWxpZEZvcm1hdEZvdW5kLFxuICAgICAgICAgICAgYmVzdEZvcm1hdElzVmFsaWQgPSBmYWxzZTtcblxuICAgICAgICBpZiAoY29uZmlnLl9mLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuaW52YWxpZEZvcm1hdCA9IHRydWU7XG4gICAgICAgICAgICBjb25maWcuX2QgPSBuZXcgRGF0ZShOYU4pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGNvbmZpZy5fZi5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY3VycmVudFNjb3JlID0gMDtcbiAgICAgICAgICAgIHZhbGlkRm9ybWF0Rm91bmQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRlbXBDb25maWcgPSBjb3B5Q29uZmlnKHt9LCBjb25maWcpO1xuICAgICAgICAgICAgaWYgKGNvbmZpZy5fdXNlVVRDICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0ZW1wQ29uZmlnLl91c2VVVEMgPSBjb25maWcuX3VzZVVUQztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRlbXBDb25maWcuX2YgPSBjb25maWcuX2ZbaV07XG4gICAgICAgICAgICBjb25maWdGcm9tU3RyaW5nQW5kRm9ybWF0KHRlbXBDb25maWcpO1xuXG4gICAgICAgICAgICBpZiAoaXNWYWxpZCh0ZW1wQ29uZmlnKSkge1xuICAgICAgICAgICAgICAgIHZhbGlkRm9ybWF0Rm91bmQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBpZiB0aGVyZSBpcyBhbnkgaW5wdXQgdGhhdCB3YXMgbm90IHBhcnNlZCBhZGQgYSBwZW5hbHR5IGZvciB0aGF0IGZvcm1hdFxuICAgICAgICAgICAgY3VycmVudFNjb3JlICs9IGdldFBhcnNpbmdGbGFncyh0ZW1wQ29uZmlnKS5jaGFyc0xlZnRPdmVyO1xuXG4gICAgICAgICAgICAvL29yIHRva2Vuc1xuICAgICAgICAgICAgY3VycmVudFNjb3JlICs9IGdldFBhcnNpbmdGbGFncyh0ZW1wQ29uZmlnKS51bnVzZWRUb2tlbnMubGVuZ3RoICogMTA7XG5cbiAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyh0ZW1wQ29uZmlnKS5zY29yZSA9IGN1cnJlbnRTY29yZTtcblxuICAgICAgICAgICAgaWYgKCFiZXN0Rm9ybWF0SXNWYWxpZCkge1xuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgc2NvcmVUb0JlYXQgPT0gbnVsbCB8fFxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50U2NvcmUgPCBzY29yZVRvQmVhdCB8fFxuICAgICAgICAgICAgICAgICAgICB2YWxpZEZvcm1hdEZvdW5kXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIHNjb3JlVG9CZWF0ID0gY3VycmVudFNjb3JlO1xuICAgICAgICAgICAgICAgICAgICBiZXN0TW9tZW50ID0gdGVtcENvbmZpZztcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbGlkRm9ybWF0Rm91bmQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJlc3RGb3JtYXRJc1ZhbGlkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRTY29yZSA8IHNjb3JlVG9CZWF0KSB7XG4gICAgICAgICAgICAgICAgICAgIHNjb3JlVG9CZWF0ID0gY3VycmVudFNjb3JlO1xuICAgICAgICAgICAgICAgICAgICBiZXN0TW9tZW50ID0gdGVtcENvbmZpZztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBleHRlbmQoY29uZmlnLCBiZXN0TW9tZW50IHx8IHRlbXBDb25maWcpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNvbmZpZ0Zyb21PYmplY3QoY29uZmlnKSB7XG4gICAgICAgIGlmIChjb25maWcuX2QpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBpID0gbm9ybWFsaXplT2JqZWN0VW5pdHMoY29uZmlnLl9pKSxcbiAgICAgICAgICAgIGRheU9yRGF0ZSA9IGkuZGF5ID09PSB1bmRlZmluZWQgPyBpLmRhdGUgOiBpLmRheTtcbiAgICAgICAgY29uZmlnLl9hID0gbWFwKFxuICAgICAgICAgICAgW2kueWVhciwgaS5tb250aCwgZGF5T3JEYXRlLCBpLmhvdXIsIGkubWludXRlLCBpLnNlY29uZCwgaS5taWxsaXNlY29uZF0sXG4gICAgICAgICAgICBmdW5jdGlvbiAob2JqKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9iaiAmJiBwYXJzZUludChvYmosIDEwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcblxuICAgICAgICBjb25maWdGcm9tQXJyYXkoY29uZmlnKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjcmVhdGVGcm9tQ29uZmlnKGNvbmZpZykge1xuICAgICAgICB2YXIgcmVzID0gbmV3IE1vbWVudChjaGVja092ZXJmbG93KHByZXBhcmVDb25maWcoY29uZmlnKSkpO1xuICAgICAgICBpZiAocmVzLl9uZXh0RGF5KSB7XG4gICAgICAgICAgICAvLyBBZGRpbmcgaXMgc21hcnQgZW5vdWdoIGFyb3VuZCBEU1RcbiAgICAgICAgICAgIHJlcy5hZGQoMSwgJ2QnKTtcbiAgICAgICAgICAgIHJlcy5fbmV4dERheSA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcHJlcGFyZUNvbmZpZyhjb25maWcpIHtcbiAgICAgICAgdmFyIGlucHV0ID0gY29uZmlnLl9pLFxuICAgICAgICAgICAgZm9ybWF0ID0gY29uZmlnLl9mO1xuXG4gICAgICAgIGNvbmZpZy5fbG9jYWxlID0gY29uZmlnLl9sb2NhbGUgfHwgZ2V0TG9jYWxlKGNvbmZpZy5fbCk7XG5cbiAgICAgICAgaWYgKGlucHV0ID09PSBudWxsIHx8IChmb3JtYXQgPT09IHVuZGVmaW5lZCAmJiBpbnB1dCA9PT0gJycpKSB7XG4gICAgICAgICAgICByZXR1cm4gY3JlYXRlSW52YWxpZCh7IG51bGxJbnB1dDogdHJ1ZSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBjb25maWcuX2kgPSBpbnB1dCA9IGNvbmZpZy5fbG9jYWxlLnByZXBhcnNlKGlucHV0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc01vbWVudChpbnB1dCkpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgTW9tZW50KGNoZWNrT3ZlcmZsb3coaW5wdXQpKTtcbiAgICAgICAgfSBlbHNlIGlmIChpc0RhdGUoaW5wdXQpKSB7XG4gICAgICAgICAgICBjb25maWcuX2QgPSBpbnB1dDtcbiAgICAgICAgfSBlbHNlIGlmIChpc0FycmF5KGZvcm1hdCkpIHtcbiAgICAgICAgICAgIGNvbmZpZ0Zyb21TdHJpbmdBbmRBcnJheShjb25maWcpO1xuICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdCkge1xuICAgICAgICAgICAgY29uZmlnRnJvbVN0cmluZ0FuZEZvcm1hdChjb25maWcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uZmlnRnJvbUlucHV0KGNvbmZpZyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWlzVmFsaWQoY29uZmlnKSkge1xuICAgICAgICAgICAgY29uZmlnLl9kID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb25maWc7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY29uZmlnRnJvbUlucHV0KGNvbmZpZykge1xuICAgICAgICB2YXIgaW5wdXQgPSBjb25maWcuX2k7XG4gICAgICAgIGlmIChpc1VuZGVmaW5lZChpbnB1dCkpIHtcbiAgICAgICAgICAgIGNvbmZpZy5fZCA9IG5ldyBEYXRlKGhvb2tzLm5vdygpKTtcbiAgICAgICAgfSBlbHNlIGlmIChpc0RhdGUoaW5wdXQpKSB7XG4gICAgICAgICAgICBjb25maWcuX2QgPSBuZXcgRGF0ZShpbnB1dC52YWx1ZU9mKCkpO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBpbnB1dCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGNvbmZpZ0Zyb21TdHJpbmcoY29uZmlnKTtcbiAgICAgICAgfSBlbHNlIGlmIChpc0FycmF5KGlucHV0KSkge1xuICAgICAgICAgICAgY29uZmlnLl9hID0gbWFwKGlucHV0LnNsaWNlKDApLCBmdW5jdGlvbiAob2JqKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlSW50KG9iaiwgMTApO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25maWdGcm9tQXJyYXkoY29uZmlnKTtcbiAgICAgICAgfSBlbHNlIGlmIChpc09iamVjdChpbnB1dCkpIHtcbiAgICAgICAgICAgIGNvbmZpZ0Zyb21PYmplY3QoY29uZmlnKTtcbiAgICAgICAgfSBlbHNlIGlmIChpc051bWJlcihpbnB1dCkpIHtcbiAgICAgICAgICAgIC8vIGZyb20gbWlsbGlzZWNvbmRzXG4gICAgICAgICAgICBjb25maWcuX2QgPSBuZXcgRGF0ZShpbnB1dCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBob29rcy5jcmVhdGVGcm9tSW5wdXRGYWxsYmFjayhjb25maWcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY3JlYXRlTG9jYWxPclVUQyhpbnB1dCwgZm9ybWF0LCBsb2NhbGUsIHN0cmljdCwgaXNVVEMpIHtcbiAgICAgICAgdmFyIGMgPSB7fTtcblxuICAgICAgICBpZiAoZm9ybWF0ID09PSB0cnVlIHx8IGZvcm1hdCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHN0cmljdCA9IGZvcm1hdDtcbiAgICAgICAgICAgIGZvcm1hdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChsb2NhbGUgPT09IHRydWUgfHwgbG9jYWxlID09PSBmYWxzZSkge1xuICAgICAgICAgICAgc3RyaWN0ID0gbG9jYWxlO1xuICAgICAgICAgICAgbG9jYWxlID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgKGlzT2JqZWN0KGlucHV0KSAmJiBpc09iamVjdEVtcHR5KGlucHV0KSkgfHxcbiAgICAgICAgICAgIChpc0FycmF5KGlucHV0KSAmJiBpbnB1dC5sZW5ndGggPT09IDApXG4gICAgICAgICkge1xuICAgICAgICAgICAgaW5wdXQgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgLy8gb2JqZWN0IGNvbnN0cnVjdGlvbiBtdXN0IGJlIGRvbmUgdGhpcyB3YXkuXG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9tb21lbnQvbW9tZW50L2lzc3Vlcy8xNDIzXG4gICAgICAgIGMuX2lzQU1vbWVudE9iamVjdCA9IHRydWU7XG4gICAgICAgIGMuX3VzZVVUQyA9IGMuX2lzVVRDID0gaXNVVEM7XG4gICAgICAgIGMuX2wgPSBsb2NhbGU7XG4gICAgICAgIGMuX2kgPSBpbnB1dDtcbiAgICAgICAgYy5fZiA9IGZvcm1hdDtcbiAgICAgICAgYy5fc3RyaWN0ID0gc3RyaWN0O1xuXG4gICAgICAgIHJldHVybiBjcmVhdGVGcm9tQ29uZmlnKGMpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNyZWF0ZUxvY2FsKGlucHV0LCBmb3JtYXQsIGxvY2FsZSwgc3RyaWN0KSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVMb2NhbE9yVVRDKGlucHV0LCBmb3JtYXQsIGxvY2FsZSwgc3RyaWN0LCBmYWxzZSk7XG4gICAgfVxuXG4gICAgdmFyIHByb3RvdHlwZU1pbiA9IGRlcHJlY2F0ZShcbiAgICAgICAgICAgICdtb21lbnQoKS5taW4gaXMgZGVwcmVjYXRlZCwgdXNlIG1vbWVudC5tYXggaW5zdGVhZC4gaHR0cDovL21vbWVudGpzLmNvbS9ndWlkZXMvIy93YXJuaW5ncy9taW4tbWF4LycsXG4gICAgICAgICAgICBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdmFyIG90aGVyID0gY3JlYXRlTG9jYWwuYXBwbHkobnVsbCwgYXJndW1lbnRzKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc1ZhbGlkKCkgJiYgb3RoZXIuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvdGhlciA8IHRoaXMgPyB0aGlzIDogb3RoZXI7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUludmFsaWQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICksXG4gICAgICAgIHByb3RvdHlwZU1heCA9IGRlcHJlY2F0ZShcbiAgICAgICAgICAgICdtb21lbnQoKS5tYXggaXMgZGVwcmVjYXRlZCwgdXNlIG1vbWVudC5taW4gaW5zdGVhZC4gaHR0cDovL21vbWVudGpzLmNvbS9ndWlkZXMvIy93YXJuaW5ncy9taW4tbWF4LycsXG4gICAgICAgICAgICBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdmFyIG90aGVyID0gY3JlYXRlTG9jYWwuYXBwbHkobnVsbCwgYXJndW1lbnRzKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc1ZhbGlkKCkgJiYgb3RoZXIuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvdGhlciA+IHRoaXMgPyB0aGlzIDogb3RoZXI7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUludmFsaWQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG5cbiAgICAvLyBQaWNrIGEgbW9tZW50IG0gZnJvbSBtb21lbnRzIHNvIHRoYXQgbVtmbl0ob3RoZXIpIGlzIHRydWUgZm9yIGFsbFxuICAgIC8vIG90aGVyLiBUaGlzIHJlbGllcyBvbiB0aGUgZnVuY3Rpb24gZm4gdG8gYmUgdHJhbnNpdGl2ZS5cbiAgICAvL1xuICAgIC8vIG1vbWVudHMgc2hvdWxkIGVpdGhlciBiZSBhbiBhcnJheSBvZiBtb21lbnQgb2JqZWN0cyBvciBhbiBhcnJheSwgd2hvc2VcbiAgICAvLyBmaXJzdCBlbGVtZW50IGlzIGFuIGFycmF5IG9mIG1vbWVudCBvYmplY3RzLlxuICAgIGZ1bmN0aW9uIHBpY2tCeShmbiwgbW9tZW50cykge1xuICAgICAgICB2YXIgcmVzLCBpO1xuICAgICAgICBpZiAobW9tZW50cy5sZW5ndGggPT09IDEgJiYgaXNBcnJheShtb21lbnRzWzBdKSkge1xuICAgICAgICAgICAgbW9tZW50cyA9IG1vbWVudHNbMF07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFtb21lbnRzLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUxvY2FsKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmVzID0gbW9tZW50c1swXTtcbiAgICAgICAgZm9yIChpID0gMTsgaSA8IG1vbWVudHMubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICAgIGlmICghbW9tZW50c1tpXS5pc1ZhbGlkKCkgfHwgbW9tZW50c1tpXVtmbl0ocmVzKSkge1xuICAgICAgICAgICAgICAgIHJlcyA9IG1vbWVudHNbaV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG5cbiAgICAvLyBUT0RPOiBVc2UgW10uc29ydCBpbnN0ZWFkP1xuICAgIGZ1bmN0aW9uIG1pbigpIHtcbiAgICAgICAgdmFyIGFyZ3MgPSBbXS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMCk7XG5cbiAgICAgICAgcmV0dXJuIHBpY2tCeSgnaXNCZWZvcmUnLCBhcmdzKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtYXgoKSB7XG4gICAgICAgIHZhciBhcmdzID0gW10uc2xpY2UuY2FsbChhcmd1bWVudHMsIDApO1xuXG4gICAgICAgIHJldHVybiBwaWNrQnkoJ2lzQWZ0ZXInLCBhcmdzKTtcbiAgICB9XG5cbiAgICB2YXIgbm93ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gRGF0ZS5ub3cgPyBEYXRlLm5vdygpIDogK25ldyBEYXRlKCk7XG4gICAgfTtcblxuICAgIHZhciBvcmRlcmluZyA9IFtcbiAgICAgICAgJ3llYXInLFxuICAgICAgICAncXVhcnRlcicsXG4gICAgICAgICdtb250aCcsXG4gICAgICAgICd3ZWVrJyxcbiAgICAgICAgJ2RheScsXG4gICAgICAgICdob3VyJyxcbiAgICAgICAgJ21pbnV0ZScsXG4gICAgICAgICdzZWNvbmQnLFxuICAgICAgICAnbWlsbGlzZWNvbmQnLFxuICAgIF07XG5cbiAgICBmdW5jdGlvbiBpc0R1cmF0aW9uVmFsaWQobSkge1xuICAgICAgICB2YXIga2V5LFxuICAgICAgICAgICAgdW5pdEhhc0RlY2ltYWwgPSBmYWxzZSxcbiAgICAgICAgICAgIGk7XG4gICAgICAgIGZvciAoa2V5IGluIG0pIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBoYXNPd25Qcm9wKG0sIGtleSkgJiZcbiAgICAgICAgICAgICAgICAhKFxuICAgICAgICAgICAgICAgICAgICBpbmRleE9mLmNhbGwob3JkZXJpbmcsIGtleSkgIT09IC0xICYmXG4gICAgICAgICAgICAgICAgICAgIChtW2tleV0gPT0gbnVsbCB8fCAhaXNOYU4obVtrZXldKSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgb3JkZXJpbmcubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICAgIGlmIChtW29yZGVyaW5nW2ldXSkge1xuICAgICAgICAgICAgICAgIGlmICh1bml0SGFzRGVjaW1hbCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7IC8vIG9ubHkgYWxsb3cgbm9uLWludGVnZXJzIGZvciBzbWFsbGVzdCB1bml0XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChwYXJzZUZsb2F0KG1bb3JkZXJpbmdbaV1dKSAhPT0gdG9JbnQobVtvcmRlcmluZ1tpXV0pKSB7XG4gICAgICAgICAgICAgICAgICAgIHVuaXRIYXNEZWNpbWFsID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc1ZhbGlkJDEoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1ZhbGlkO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNyZWF0ZUludmFsaWQkMSgpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZUR1cmF0aW9uKE5hTik7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gRHVyYXRpb24oZHVyYXRpb24pIHtcbiAgICAgICAgdmFyIG5vcm1hbGl6ZWRJbnB1dCA9IG5vcm1hbGl6ZU9iamVjdFVuaXRzKGR1cmF0aW9uKSxcbiAgICAgICAgICAgIHllYXJzID0gbm9ybWFsaXplZElucHV0LnllYXIgfHwgMCxcbiAgICAgICAgICAgIHF1YXJ0ZXJzID0gbm9ybWFsaXplZElucHV0LnF1YXJ0ZXIgfHwgMCxcbiAgICAgICAgICAgIG1vbnRocyA9IG5vcm1hbGl6ZWRJbnB1dC5tb250aCB8fCAwLFxuICAgICAgICAgICAgd2Vla3MgPSBub3JtYWxpemVkSW5wdXQud2VlayB8fCBub3JtYWxpemVkSW5wdXQuaXNvV2VlayB8fCAwLFxuICAgICAgICAgICAgZGF5cyA9IG5vcm1hbGl6ZWRJbnB1dC5kYXkgfHwgMCxcbiAgICAgICAgICAgIGhvdXJzID0gbm9ybWFsaXplZElucHV0LmhvdXIgfHwgMCxcbiAgICAgICAgICAgIG1pbnV0ZXMgPSBub3JtYWxpemVkSW5wdXQubWludXRlIHx8IDAsXG4gICAgICAgICAgICBzZWNvbmRzID0gbm9ybWFsaXplZElucHV0LnNlY29uZCB8fCAwLFxuICAgICAgICAgICAgbWlsbGlzZWNvbmRzID0gbm9ybWFsaXplZElucHV0Lm1pbGxpc2Vjb25kIHx8IDA7XG5cbiAgICAgICAgdGhpcy5faXNWYWxpZCA9IGlzRHVyYXRpb25WYWxpZChub3JtYWxpemVkSW5wdXQpO1xuXG4gICAgICAgIC8vIHJlcHJlc2VudGF0aW9uIGZvciBkYXRlQWRkUmVtb3ZlXG4gICAgICAgIHRoaXMuX21pbGxpc2Vjb25kcyA9XG4gICAgICAgICAgICArbWlsbGlzZWNvbmRzICtcbiAgICAgICAgICAgIHNlY29uZHMgKiAxZTMgKyAvLyAxMDAwXG4gICAgICAgICAgICBtaW51dGVzICogNmU0ICsgLy8gMTAwMCAqIDYwXG4gICAgICAgICAgICBob3VycyAqIDEwMDAgKiA2MCAqIDYwOyAvL3VzaW5nIDEwMDAgKiA2MCAqIDYwIGluc3RlYWQgb2YgMzZlNSB0byBhdm9pZCBmbG9hdGluZyBwb2ludCByb3VuZGluZyBlcnJvcnMgaHR0cHM6Ly9naXRodWIuY29tL21vbWVudC9tb21lbnQvaXNzdWVzLzI5NzhcbiAgICAgICAgLy8gQmVjYXVzZSBvZiBkYXRlQWRkUmVtb3ZlIHRyZWF0cyAyNCBob3VycyBhcyBkaWZmZXJlbnQgZnJvbSBhXG4gICAgICAgIC8vIGRheSB3aGVuIHdvcmtpbmcgYXJvdW5kIERTVCwgd2UgbmVlZCB0byBzdG9yZSB0aGVtIHNlcGFyYXRlbHlcbiAgICAgICAgdGhpcy5fZGF5cyA9ICtkYXlzICsgd2Vla3MgKiA3O1xuICAgICAgICAvLyBJdCBpcyBpbXBvc3NpYmxlIHRvIHRyYW5zbGF0ZSBtb250aHMgaW50byBkYXlzIHdpdGhvdXQga25vd2luZ1xuICAgICAgICAvLyB3aGljaCBtb250aHMgeW91IGFyZSBhcmUgdGFsa2luZyBhYm91dCwgc28gd2UgaGF2ZSB0byBzdG9yZVxuICAgICAgICAvLyBpdCBzZXBhcmF0ZWx5LlxuICAgICAgICB0aGlzLl9tb250aHMgPSArbW9udGhzICsgcXVhcnRlcnMgKiAzICsgeWVhcnMgKiAxMjtcblxuICAgICAgICB0aGlzLl9kYXRhID0ge307XG5cbiAgICAgICAgdGhpcy5fbG9jYWxlID0gZ2V0TG9jYWxlKCk7XG5cbiAgICAgICAgdGhpcy5fYnViYmxlKCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNEdXJhdGlvbihvYmopIHtcbiAgICAgICAgcmV0dXJuIG9iaiBpbnN0YW5jZW9mIER1cmF0aW9uO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGFic1JvdW5kKG51bWJlcikge1xuICAgICAgICBpZiAobnVtYmVyIDwgMCkge1xuICAgICAgICAgICAgcmV0dXJuIE1hdGgucm91bmQoLTEgKiBudW1iZXIpICogLTE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gTWF0aC5yb3VuZChudW1iZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gY29tcGFyZSB0d28gYXJyYXlzLCByZXR1cm4gdGhlIG51bWJlciBvZiBkaWZmZXJlbmNlc1xuICAgIGZ1bmN0aW9uIGNvbXBhcmVBcnJheXMoYXJyYXkxLCBhcnJheTIsIGRvbnRDb252ZXJ0KSB7XG4gICAgICAgIHZhciBsZW4gPSBNYXRoLm1pbihhcnJheTEubGVuZ3RoLCBhcnJheTIubGVuZ3RoKSxcbiAgICAgICAgICAgIGxlbmd0aERpZmYgPSBNYXRoLmFicyhhcnJheTEubGVuZ3RoIC0gYXJyYXkyLmxlbmd0aCksXG4gICAgICAgICAgICBkaWZmcyA9IDAsXG4gICAgICAgICAgICBpO1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAoZG9udENvbnZlcnQgJiYgYXJyYXkxW2ldICE9PSBhcnJheTJbaV0pIHx8XG4gICAgICAgICAgICAgICAgKCFkb250Q29udmVydCAmJiB0b0ludChhcnJheTFbaV0pICE9PSB0b0ludChhcnJheTJbaV0pKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgZGlmZnMrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGlmZnMgKyBsZW5ndGhEaWZmO1xuICAgIH1cblxuICAgIC8vIEZPUk1BVFRJTkdcblxuICAgIGZ1bmN0aW9uIG9mZnNldCh0b2tlbiwgc2VwYXJhdG9yKSB7XG4gICAgICAgIGFkZEZvcm1hdFRva2VuKHRva2VuLCAwLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgb2Zmc2V0ID0gdGhpcy51dGNPZmZzZXQoKSxcbiAgICAgICAgICAgICAgICBzaWduID0gJysnO1xuICAgICAgICAgICAgaWYgKG9mZnNldCA8IDApIHtcbiAgICAgICAgICAgICAgICBvZmZzZXQgPSAtb2Zmc2V0O1xuICAgICAgICAgICAgICAgIHNpZ24gPSAnLSc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIHNpZ24gK1xuICAgICAgICAgICAgICAgIHplcm9GaWxsKH5+KG9mZnNldCAvIDYwKSwgMikgK1xuICAgICAgICAgICAgICAgIHNlcGFyYXRvciArXG4gICAgICAgICAgICAgICAgemVyb0ZpbGwofn5vZmZzZXQgJSA2MCwgMilcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9mZnNldCgnWicsICc6Jyk7XG4gICAgb2Zmc2V0KCdaWicsICcnKTtcblxuICAgIC8vIFBBUlNJTkdcblxuICAgIGFkZFJlZ2V4VG9rZW4oJ1onLCBtYXRjaFNob3J0T2Zmc2V0KTtcbiAgICBhZGRSZWdleFRva2VuKCdaWicsIG1hdGNoU2hvcnRPZmZzZXQpO1xuICAgIGFkZFBhcnNlVG9rZW4oWydaJywgJ1paJ10sIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXksIGNvbmZpZykge1xuICAgICAgICBjb25maWcuX3VzZVVUQyA9IHRydWU7XG4gICAgICAgIGNvbmZpZy5fdHptID0gb2Zmc2V0RnJvbVN0cmluZyhtYXRjaFNob3J0T2Zmc2V0LCBpbnB1dCk7XG4gICAgfSk7XG5cbiAgICAvLyBIRUxQRVJTXG5cbiAgICAvLyB0aW1lem9uZSBjaHVua2VyXG4gICAgLy8gJysxMDowMCcgPiBbJzEwJywgICcwMCddXG4gICAgLy8gJy0xNTMwJyAgPiBbJy0xNScsICczMCddXG4gICAgdmFyIGNodW5rT2Zmc2V0ID0gLyhbXFwrXFwtXXxcXGRcXGQpL2dpO1xuXG4gICAgZnVuY3Rpb24gb2Zmc2V0RnJvbVN0cmluZyhtYXRjaGVyLCBzdHJpbmcpIHtcbiAgICAgICAgdmFyIG1hdGNoZXMgPSAoc3RyaW5nIHx8ICcnKS5tYXRjaChtYXRjaGVyKSxcbiAgICAgICAgICAgIGNodW5rLFxuICAgICAgICAgICAgcGFydHMsXG4gICAgICAgICAgICBtaW51dGVzO1xuXG4gICAgICAgIGlmIChtYXRjaGVzID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNodW5rID0gbWF0Y2hlc1ttYXRjaGVzLmxlbmd0aCAtIDFdIHx8IFtdO1xuICAgICAgICBwYXJ0cyA9IChjaHVuayArICcnKS5tYXRjaChjaHVua09mZnNldCkgfHwgWyctJywgMCwgMF07XG4gICAgICAgIG1pbnV0ZXMgPSArKHBhcnRzWzFdICogNjApICsgdG9JbnQocGFydHNbMl0pO1xuXG4gICAgICAgIHJldHVybiBtaW51dGVzID09PSAwID8gMCA6IHBhcnRzWzBdID09PSAnKycgPyBtaW51dGVzIDogLW1pbnV0ZXM7XG4gICAgfVxuXG4gICAgLy8gUmV0dXJuIGEgbW9tZW50IGZyb20gaW5wdXQsIHRoYXQgaXMgbG9jYWwvdXRjL3pvbmUgZXF1aXZhbGVudCB0byBtb2RlbC5cbiAgICBmdW5jdGlvbiBjbG9uZVdpdGhPZmZzZXQoaW5wdXQsIG1vZGVsKSB7XG4gICAgICAgIHZhciByZXMsIGRpZmY7XG4gICAgICAgIGlmIChtb2RlbC5faXNVVEMpIHtcbiAgICAgICAgICAgIHJlcyA9IG1vZGVsLmNsb25lKCk7XG4gICAgICAgICAgICBkaWZmID1cbiAgICAgICAgICAgICAgICAoaXNNb21lbnQoaW5wdXQpIHx8IGlzRGF0ZShpbnB1dClcbiAgICAgICAgICAgICAgICAgICAgPyBpbnB1dC52YWx1ZU9mKClcbiAgICAgICAgICAgICAgICAgICAgOiBjcmVhdGVMb2NhbChpbnB1dCkudmFsdWVPZigpKSAtIHJlcy52YWx1ZU9mKCk7XG4gICAgICAgICAgICAvLyBVc2UgbG93LWxldmVsIGFwaSwgYmVjYXVzZSB0aGlzIGZuIGlzIGxvdy1sZXZlbCBhcGkuXG4gICAgICAgICAgICByZXMuX2Quc2V0VGltZShyZXMuX2QudmFsdWVPZigpICsgZGlmZik7XG4gICAgICAgICAgICBob29rcy51cGRhdGVPZmZzZXQocmVzLCBmYWxzZSk7XG4gICAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUxvY2FsKGlucHV0KS5sb2NhbCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0RGF0ZU9mZnNldChtKSB7XG4gICAgICAgIC8vIE9uIEZpcmVmb3guMjQgRGF0ZSNnZXRUaW1lem9uZU9mZnNldCByZXR1cm5zIGEgZmxvYXRpbmcgcG9pbnQuXG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9tb21lbnQvbW9tZW50L3B1bGwvMTg3MVxuICAgICAgICByZXR1cm4gLU1hdGgucm91bmQobS5fZC5nZXRUaW1lem9uZU9mZnNldCgpKTtcbiAgICB9XG5cbiAgICAvLyBIT09LU1xuXG4gICAgLy8gVGhpcyBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZCB3aGVuZXZlciBhIG1vbWVudCBpcyBtdXRhdGVkLlxuICAgIC8vIEl0IGlzIGludGVuZGVkIHRvIGtlZXAgdGhlIG9mZnNldCBpbiBzeW5jIHdpdGggdGhlIHRpbWV6b25lLlxuICAgIGhvb2tzLnVwZGF0ZU9mZnNldCA9IGZ1bmN0aW9uICgpIHt9O1xuXG4gICAgLy8gTU9NRU5UU1xuXG4gICAgLy8ga2VlcExvY2FsVGltZSA9IHRydWUgbWVhbnMgb25seSBjaGFuZ2UgdGhlIHRpbWV6b25lLCB3aXRob3V0XG4gICAgLy8gYWZmZWN0aW5nIHRoZSBsb2NhbCBob3VyLiBTbyA1OjMxOjI2ICswMzAwIC0tW3V0Y09mZnNldCgyLCB0cnVlKV0tLT5cbiAgICAvLyA1OjMxOjI2ICswMjAwIEl0IGlzIHBvc3NpYmxlIHRoYXQgNTozMToyNiBkb2Vzbid0IGV4aXN0IHdpdGggb2Zmc2V0XG4gICAgLy8gKzAyMDAsIHNvIHdlIGFkanVzdCB0aGUgdGltZSBhcyBuZWVkZWQsIHRvIGJlIHZhbGlkLlxuICAgIC8vXG4gICAgLy8gS2VlcGluZyB0aGUgdGltZSBhY3R1YWxseSBhZGRzL3N1YnRyYWN0cyAob25lIGhvdXIpXG4gICAgLy8gZnJvbSB0aGUgYWN0dWFsIHJlcHJlc2VudGVkIHRpbWUuIFRoYXQgaXMgd2h5IHdlIGNhbGwgdXBkYXRlT2Zmc2V0XG4gICAgLy8gYSBzZWNvbmQgdGltZS4gSW4gY2FzZSBpdCB3YW50cyB1cyB0byBjaGFuZ2UgdGhlIG9mZnNldCBhZ2FpblxuICAgIC8vIF9jaGFuZ2VJblByb2dyZXNzID09IHRydWUgY2FzZSwgdGhlbiB3ZSBoYXZlIHRvIGFkanVzdCwgYmVjYXVzZVxuICAgIC8vIHRoZXJlIGlzIG5vIHN1Y2ggdGltZSBpbiB0aGUgZ2l2ZW4gdGltZXpvbmUuXG4gICAgZnVuY3Rpb24gZ2V0U2V0T2Zmc2V0KGlucHV0LCBrZWVwTG9jYWxUaW1lLCBrZWVwTWludXRlcykge1xuICAgICAgICB2YXIgb2Zmc2V0ID0gdGhpcy5fb2Zmc2V0IHx8IDAsXG4gICAgICAgICAgICBsb2NhbEFkanVzdDtcbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIGlucHV0ICE9IG51bGwgPyB0aGlzIDogTmFOO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpbnB1dCAhPSBudWxsKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGlucHV0ID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGlucHV0ID0gb2Zmc2V0RnJvbVN0cmluZyhtYXRjaFNob3J0T2Zmc2V0LCBpbnB1dCk7XG4gICAgICAgICAgICAgICAgaWYgKGlucHV0ID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoTWF0aC5hYnMoaW5wdXQpIDwgMTYgJiYgIWtlZXBNaW51dGVzKSB7XG4gICAgICAgICAgICAgICAgaW5wdXQgPSBpbnB1dCAqIDYwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCF0aGlzLl9pc1VUQyAmJiBrZWVwTG9jYWxUaW1lKSB7XG4gICAgICAgICAgICAgICAgbG9jYWxBZGp1c3QgPSBnZXREYXRlT2Zmc2V0KHRoaXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5fb2Zmc2V0ID0gaW5wdXQ7XG4gICAgICAgICAgICB0aGlzLl9pc1VUQyA9IHRydWU7XG4gICAgICAgICAgICBpZiAobG9jYWxBZGp1c3QgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYWRkKGxvY2FsQWRqdXN0LCAnbScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG9mZnNldCAhPT0gaW5wdXQpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWtlZXBMb2NhbFRpbWUgfHwgdGhpcy5fY2hhbmdlSW5Qcm9ncmVzcykge1xuICAgICAgICAgICAgICAgICAgICBhZGRTdWJ0cmFjdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVEdXJhdGlvbihpbnB1dCAtIG9mZnNldCwgJ20nKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIXRoaXMuX2NoYW5nZUluUHJvZ3Jlc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2hhbmdlSW5Qcm9ncmVzcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIGhvb2tzLnVwZGF0ZU9mZnNldCh0aGlzLCB0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2hhbmdlSW5Qcm9ncmVzcyA9IG51bGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5faXNVVEMgPyBvZmZzZXQgOiBnZXREYXRlT2Zmc2V0KHRoaXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0U2V0Wm9uZShpbnB1dCwga2VlcExvY2FsVGltZSkge1xuICAgICAgICBpZiAoaW5wdXQgIT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBpbnB1dCAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBpbnB1dCA9IC1pbnB1dDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy51dGNPZmZzZXQoaW5wdXQsIGtlZXBMb2NhbFRpbWUpO1xuXG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAtdGhpcy51dGNPZmZzZXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNldE9mZnNldFRvVVRDKGtlZXBMb2NhbFRpbWUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudXRjT2Zmc2V0KDAsIGtlZXBMb2NhbFRpbWUpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNldE9mZnNldFRvTG9jYWwoa2VlcExvY2FsVGltZSkge1xuICAgICAgICBpZiAodGhpcy5faXNVVEMpIHtcbiAgICAgICAgICAgIHRoaXMudXRjT2Zmc2V0KDAsIGtlZXBMb2NhbFRpbWUpO1xuICAgICAgICAgICAgdGhpcy5faXNVVEMgPSBmYWxzZTtcblxuICAgICAgICAgICAgaWYgKGtlZXBMb2NhbFRpbWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN1YnRyYWN0KGdldERhdGVPZmZzZXQodGhpcyksICdtJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc2V0T2Zmc2V0VG9QYXJzZWRPZmZzZXQoKSB7XG4gICAgICAgIGlmICh0aGlzLl90em0gIT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy51dGNPZmZzZXQodGhpcy5fdHptLCBmYWxzZSwgdHJ1ZSk7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHRoaXMuX2kgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICB2YXIgdFpvbmUgPSBvZmZzZXRGcm9tU3RyaW5nKG1hdGNoT2Zmc2V0LCB0aGlzLl9pKTtcbiAgICAgICAgICAgIGlmICh0Wm9uZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy51dGNPZmZzZXQodFpvbmUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnV0Y09mZnNldCgwLCB0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBoYXNBbGlnbmVkSG91ck9mZnNldChpbnB1dCkge1xuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaW5wdXQgPSBpbnB1dCA/IGNyZWF0ZUxvY2FsKGlucHV0KS51dGNPZmZzZXQoKSA6IDA7XG5cbiAgICAgICAgcmV0dXJuICh0aGlzLnV0Y09mZnNldCgpIC0gaW5wdXQpICUgNjAgPT09IDA7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNEYXlsaWdodFNhdmluZ1RpbWUoKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLnV0Y09mZnNldCgpID4gdGhpcy5jbG9uZSgpLm1vbnRoKDApLnV0Y09mZnNldCgpIHx8XG4gICAgICAgICAgICB0aGlzLnV0Y09mZnNldCgpID4gdGhpcy5jbG9uZSgpLm1vbnRoKDUpLnV0Y09mZnNldCgpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNEYXlsaWdodFNhdmluZ1RpbWVTaGlmdGVkKCkge1xuICAgICAgICBpZiAoIWlzVW5kZWZpbmVkKHRoaXMuX2lzRFNUU2hpZnRlZCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9pc0RTVFNoaWZ0ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgYyA9IHt9LFxuICAgICAgICAgICAgb3RoZXI7XG5cbiAgICAgICAgY29weUNvbmZpZyhjLCB0aGlzKTtcbiAgICAgICAgYyA9IHByZXBhcmVDb25maWcoYyk7XG5cbiAgICAgICAgaWYgKGMuX2EpIHtcbiAgICAgICAgICAgIG90aGVyID0gYy5faXNVVEMgPyBjcmVhdGVVVEMoYy5fYSkgOiBjcmVhdGVMb2NhbChjLl9hKTtcbiAgICAgICAgICAgIHRoaXMuX2lzRFNUU2hpZnRlZCA9XG4gICAgICAgICAgICAgICAgdGhpcy5pc1ZhbGlkKCkgJiYgY29tcGFyZUFycmF5cyhjLl9hLCBvdGhlci50b0FycmF5KCkpID4gMDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2lzRFNUU2hpZnRlZCA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzRFNUU2hpZnRlZDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc0xvY2FsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkKCkgPyAhdGhpcy5faXNVVEMgOiBmYWxzZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc1V0Y09mZnNldCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCgpID8gdGhpcy5faXNVVEMgOiBmYWxzZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc1V0YygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCgpID8gdGhpcy5faXNVVEMgJiYgdGhpcy5fb2Zmc2V0ID09PSAwIDogZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gQVNQLk5FVCBqc29uIGRhdGUgZm9ybWF0IHJlZ2V4XG4gICAgdmFyIGFzcE5ldFJlZ2V4ID0gL14oLXxcXCspPyg/OihcXGQqKVsuIF0pPyhcXGQrKTooXFxkKykoPzo6KFxcZCspKFxcLlxcZCopPyk/JC8sXG4gICAgICAgIC8vIGZyb20gaHR0cDovL2RvY3MuY2xvc3VyZS1saWJyYXJ5Lmdvb2dsZWNvZGUuY29tL2dpdC9jbG9zdXJlX2dvb2dfZGF0ZV9kYXRlLmpzLnNvdXJjZS5odG1sXG4gICAgICAgIC8vIHNvbWV3aGF0IG1vcmUgaW4gbGluZSB3aXRoIDQuNC4zLjIgMjAwNCBzcGVjLCBidXQgYWxsb3dzIGRlY2ltYWwgYW55d2hlcmVcbiAgICAgICAgLy8gYW5kIGZ1cnRoZXIgbW9kaWZpZWQgdG8gYWxsb3cgZm9yIHN0cmluZ3MgY29udGFpbmluZyBib3RoIHdlZWsgYW5kIGRheVxuICAgICAgICBpc29SZWdleCA9IC9eKC18XFwrKT9QKD86KFstK10/WzAtOSwuXSopWSk/KD86KFstK10/WzAtOSwuXSopTSk/KD86KFstK10/WzAtOSwuXSopVyk/KD86KFstK10/WzAtOSwuXSopRCk/KD86VCg/OihbLStdP1swLTksLl0qKUgpPyg/OihbLStdP1swLTksLl0qKU0pPyg/OihbLStdP1swLTksLl0qKVMpPyk/JC87XG5cbiAgICBmdW5jdGlvbiBjcmVhdGVEdXJhdGlvbihpbnB1dCwga2V5KSB7XG4gICAgICAgIHZhciBkdXJhdGlvbiA9IGlucHV0LFxuICAgICAgICAgICAgLy8gbWF0Y2hpbmcgYWdhaW5zdCByZWdleHAgaXMgZXhwZW5zaXZlLCBkbyBpdCBvbiBkZW1hbmRcbiAgICAgICAgICAgIG1hdGNoID0gbnVsbCxcbiAgICAgICAgICAgIHNpZ24sXG4gICAgICAgICAgICByZXQsXG4gICAgICAgICAgICBkaWZmUmVzO1xuXG4gICAgICAgIGlmIChpc0R1cmF0aW9uKGlucHV0KSkge1xuICAgICAgICAgICAgZHVyYXRpb24gPSB7XG4gICAgICAgICAgICAgICAgbXM6IGlucHV0Ll9taWxsaXNlY29uZHMsXG4gICAgICAgICAgICAgICAgZDogaW5wdXQuX2RheXMsXG4gICAgICAgICAgICAgICAgTTogaW5wdXQuX21vbnRocyxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSBpZiAoaXNOdW1iZXIoaW5wdXQpIHx8ICFpc05hTigraW5wdXQpKSB7XG4gICAgICAgICAgICBkdXJhdGlvbiA9IHt9O1xuICAgICAgICAgICAgaWYgKGtleSkge1xuICAgICAgICAgICAgICAgIGR1cmF0aW9uW2tleV0gPSAraW5wdXQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGR1cmF0aW9uLm1pbGxpc2Vjb25kcyA9ICtpbnB1dDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICgobWF0Y2ggPSBhc3BOZXRSZWdleC5leGVjKGlucHV0KSkpIHtcbiAgICAgICAgICAgIHNpZ24gPSBtYXRjaFsxXSA9PT0gJy0nID8gLTEgOiAxO1xuICAgICAgICAgICAgZHVyYXRpb24gPSB7XG4gICAgICAgICAgICAgICAgeTogMCxcbiAgICAgICAgICAgICAgICBkOiB0b0ludChtYXRjaFtEQVRFXSkgKiBzaWduLFxuICAgICAgICAgICAgICAgIGg6IHRvSW50KG1hdGNoW0hPVVJdKSAqIHNpZ24sXG4gICAgICAgICAgICAgICAgbTogdG9JbnQobWF0Y2hbTUlOVVRFXSkgKiBzaWduLFxuICAgICAgICAgICAgICAgIHM6IHRvSW50KG1hdGNoW1NFQ09ORF0pICogc2lnbixcbiAgICAgICAgICAgICAgICBtczogdG9JbnQoYWJzUm91bmQobWF0Y2hbTUlMTElTRUNPTkRdICogMTAwMCkpICogc2lnbiwgLy8gdGhlIG1pbGxpc2Vjb25kIGRlY2ltYWwgcG9pbnQgaXMgaW5jbHVkZWQgaW4gdGhlIG1hdGNoXG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2UgaWYgKChtYXRjaCA9IGlzb1JlZ2V4LmV4ZWMoaW5wdXQpKSkge1xuICAgICAgICAgICAgc2lnbiA9IG1hdGNoWzFdID09PSAnLScgPyAtMSA6IDE7XG4gICAgICAgICAgICBkdXJhdGlvbiA9IHtcbiAgICAgICAgICAgICAgICB5OiBwYXJzZUlzbyhtYXRjaFsyXSwgc2lnbiksXG4gICAgICAgICAgICAgICAgTTogcGFyc2VJc28obWF0Y2hbM10sIHNpZ24pLFxuICAgICAgICAgICAgICAgIHc6IHBhcnNlSXNvKG1hdGNoWzRdLCBzaWduKSxcbiAgICAgICAgICAgICAgICBkOiBwYXJzZUlzbyhtYXRjaFs1XSwgc2lnbiksXG4gICAgICAgICAgICAgICAgaDogcGFyc2VJc28obWF0Y2hbNl0sIHNpZ24pLFxuICAgICAgICAgICAgICAgIG06IHBhcnNlSXNvKG1hdGNoWzddLCBzaWduKSxcbiAgICAgICAgICAgICAgICBzOiBwYXJzZUlzbyhtYXRjaFs4XSwgc2lnbiksXG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2UgaWYgKGR1cmF0aW9uID09IG51bGwpIHtcbiAgICAgICAgICAgIC8vIGNoZWNrcyBmb3IgbnVsbCBvciB1bmRlZmluZWRcbiAgICAgICAgICAgIGR1cmF0aW9uID0ge307XG4gICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICB0eXBlb2YgZHVyYXRpb24gPT09ICdvYmplY3QnICYmXG4gICAgICAgICAgICAoJ2Zyb20nIGluIGR1cmF0aW9uIHx8ICd0bycgaW4gZHVyYXRpb24pXG4gICAgICAgICkge1xuICAgICAgICAgICAgZGlmZlJlcyA9IG1vbWVudHNEaWZmZXJlbmNlKFxuICAgICAgICAgICAgICAgIGNyZWF0ZUxvY2FsKGR1cmF0aW9uLmZyb20pLFxuICAgICAgICAgICAgICAgIGNyZWF0ZUxvY2FsKGR1cmF0aW9uLnRvKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgZHVyYXRpb24gPSB7fTtcbiAgICAgICAgICAgIGR1cmF0aW9uLm1zID0gZGlmZlJlcy5taWxsaXNlY29uZHM7XG4gICAgICAgICAgICBkdXJhdGlvbi5NID0gZGlmZlJlcy5tb250aHM7XG4gICAgICAgIH1cblxuICAgICAgICByZXQgPSBuZXcgRHVyYXRpb24oZHVyYXRpb24pO1xuXG4gICAgICAgIGlmIChpc0R1cmF0aW9uKGlucHV0KSAmJiBoYXNPd25Qcm9wKGlucHV0LCAnX2xvY2FsZScpKSB7XG4gICAgICAgICAgICByZXQuX2xvY2FsZSA9IGlucHV0Ll9sb2NhbGU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNEdXJhdGlvbihpbnB1dCkgJiYgaGFzT3duUHJvcChpbnB1dCwgJ19pc1ZhbGlkJykpIHtcbiAgICAgICAgICAgIHJldC5faXNWYWxpZCA9IGlucHV0Ll9pc1ZhbGlkO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJldDtcbiAgICB9XG5cbiAgICBjcmVhdGVEdXJhdGlvbi5mbiA9IER1cmF0aW9uLnByb3RvdHlwZTtcbiAgICBjcmVhdGVEdXJhdGlvbi5pbnZhbGlkID0gY3JlYXRlSW52YWxpZCQxO1xuXG4gICAgZnVuY3Rpb24gcGFyc2VJc28oaW5wLCBzaWduKSB7XG4gICAgICAgIC8vIFdlJ2Qgbm9ybWFsbHkgdXNlIH5+aW5wIGZvciB0aGlzLCBidXQgdW5mb3J0dW5hdGVseSBpdCBhbHNvXG4gICAgICAgIC8vIGNvbnZlcnRzIGZsb2F0cyB0byBpbnRzLlxuICAgICAgICAvLyBpbnAgbWF5IGJlIHVuZGVmaW5lZCwgc28gY2FyZWZ1bCBjYWxsaW5nIHJlcGxhY2Ugb24gaXQuXG4gICAgICAgIHZhciByZXMgPSBpbnAgJiYgcGFyc2VGbG9hdChpbnAucmVwbGFjZSgnLCcsICcuJykpO1xuICAgICAgICAvLyBhcHBseSBzaWduIHdoaWxlIHdlJ3JlIGF0IGl0XG4gICAgICAgIHJldHVybiAoaXNOYU4ocmVzKSA/IDAgOiByZXMpICogc2lnbjtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwb3NpdGl2ZU1vbWVudHNEaWZmZXJlbmNlKGJhc2UsIG90aGVyKSB7XG4gICAgICAgIHZhciByZXMgPSB7fTtcblxuICAgICAgICByZXMubW9udGhzID1cbiAgICAgICAgICAgIG90aGVyLm1vbnRoKCkgLSBiYXNlLm1vbnRoKCkgKyAob3RoZXIueWVhcigpIC0gYmFzZS55ZWFyKCkpICogMTI7XG4gICAgICAgIGlmIChiYXNlLmNsb25lKCkuYWRkKHJlcy5tb250aHMsICdNJykuaXNBZnRlcihvdGhlcikpIHtcbiAgICAgICAgICAgIC0tcmVzLm1vbnRocztcbiAgICAgICAgfVxuXG4gICAgICAgIHJlcy5taWxsaXNlY29uZHMgPSArb3RoZXIgLSArYmFzZS5jbG9uZSgpLmFkZChyZXMubW9udGhzLCAnTScpO1xuXG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbW9tZW50c0RpZmZlcmVuY2UoYmFzZSwgb3RoZXIpIHtcbiAgICAgICAgdmFyIHJlcztcbiAgICAgICAgaWYgKCEoYmFzZS5pc1ZhbGlkKCkgJiYgb3RoZXIuaXNWYWxpZCgpKSkge1xuICAgICAgICAgICAgcmV0dXJuIHsgbWlsbGlzZWNvbmRzOiAwLCBtb250aHM6IDAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIG90aGVyID0gY2xvbmVXaXRoT2Zmc2V0KG90aGVyLCBiYXNlKTtcbiAgICAgICAgaWYgKGJhc2UuaXNCZWZvcmUob3RoZXIpKSB7XG4gICAgICAgICAgICByZXMgPSBwb3NpdGl2ZU1vbWVudHNEaWZmZXJlbmNlKGJhc2UsIG90aGVyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlcyA9IHBvc2l0aXZlTW9tZW50c0RpZmZlcmVuY2Uob3RoZXIsIGJhc2UpO1xuICAgICAgICAgICAgcmVzLm1pbGxpc2Vjb25kcyA9IC1yZXMubWlsbGlzZWNvbmRzO1xuICAgICAgICAgICAgcmVzLm1vbnRocyA9IC1yZXMubW9udGhzO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG5cbiAgICAvLyBUT0RPOiByZW1vdmUgJ25hbWUnIGFyZyBhZnRlciBkZXByZWNhdGlvbiBpcyByZW1vdmVkXG4gICAgZnVuY3Rpb24gY3JlYXRlQWRkZXIoZGlyZWN0aW9uLCBuYW1lKSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAodmFsLCBwZXJpb2QpIHtcbiAgICAgICAgICAgIHZhciBkdXIsIHRtcDtcbiAgICAgICAgICAgIC8vaW52ZXJ0IHRoZSBhcmd1bWVudHMsIGJ1dCBjb21wbGFpbiBhYm91dCBpdFxuICAgICAgICAgICAgaWYgKHBlcmlvZCAhPT0gbnVsbCAmJiAhaXNOYU4oK3BlcmlvZCkpIHtcbiAgICAgICAgICAgICAgICBkZXByZWNhdGVTaW1wbGUoXG4gICAgICAgICAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICAgICAgICAgICdtb21lbnQoKS4nICtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgK1xuICAgICAgICAgICAgICAgICAgICAgICAgJyhwZXJpb2QsIG51bWJlcikgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBtb21lbnQoKS4nICtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgK1xuICAgICAgICAgICAgICAgICAgICAgICAgJyhudW1iZXIsIHBlcmlvZCkuICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgJ1NlZSBodHRwOi8vbW9tZW50anMuY29tL2d1aWRlcy8jL3dhcm5pbmdzL2FkZC1pbnZlcnRlZC1wYXJhbS8gZm9yIG1vcmUgaW5mby4nXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB0bXAgPSB2YWw7XG4gICAgICAgICAgICAgICAgdmFsID0gcGVyaW9kO1xuICAgICAgICAgICAgICAgIHBlcmlvZCA9IHRtcDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZHVyID0gY3JlYXRlRHVyYXRpb24odmFsLCBwZXJpb2QpO1xuICAgICAgICAgICAgYWRkU3VidHJhY3QodGhpcywgZHVyLCBkaXJlY3Rpb24pO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYWRkU3VidHJhY3QobW9tLCBkdXJhdGlvbiwgaXNBZGRpbmcsIHVwZGF0ZU9mZnNldCkge1xuICAgICAgICB2YXIgbWlsbGlzZWNvbmRzID0gZHVyYXRpb24uX21pbGxpc2Vjb25kcyxcbiAgICAgICAgICAgIGRheXMgPSBhYnNSb3VuZChkdXJhdGlvbi5fZGF5cyksXG4gICAgICAgICAgICBtb250aHMgPSBhYnNSb3VuZChkdXJhdGlvbi5fbW9udGhzKTtcblxuICAgICAgICBpZiAoIW1vbS5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIC8vIE5vIG9wXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB1cGRhdGVPZmZzZXQgPSB1cGRhdGVPZmZzZXQgPT0gbnVsbCA/IHRydWUgOiB1cGRhdGVPZmZzZXQ7XG5cbiAgICAgICAgaWYgKG1vbnRocykge1xuICAgICAgICAgICAgc2V0TW9udGgobW9tLCBnZXQobW9tLCAnTW9udGgnKSArIG1vbnRocyAqIGlzQWRkaW5nKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF5cykge1xuICAgICAgICAgICAgc2V0JDEobW9tLCAnRGF0ZScsIGdldChtb20sICdEYXRlJykgKyBkYXlzICogaXNBZGRpbmcpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChtaWxsaXNlY29uZHMpIHtcbiAgICAgICAgICAgIG1vbS5fZC5zZXRUaW1lKG1vbS5fZC52YWx1ZU9mKCkgKyBtaWxsaXNlY29uZHMgKiBpc0FkZGluZyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHVwZGF0ZU9mZnNldCkge1xuICAgICAgICAgICAgaG9va3MudXBkYXRlT2Zmc2V0KG1vbSwgZGF5cyB8fCBtb250aHMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGFkZCA9IGNyZWF0ZUFkZGVyKDEsICdhZGQnKSxcbiAgICAgICAgc3VidHJhY3QgPSBjcmVhdGVBZGRlcigtMSwgJ3N1YnRyYWN0Jyk7XG5cbiAgICBmdW5jdGlvbiBpc1N0cmluZyhpbnB1dCkge1xuICAgICAgICByZXR1cm4gdHlwZW9mIGlucHV0ID09PSAnc3RyaW5nJyB8fCBpbnB1dCBpbnN0YW5jZW9mIFN0cmluZztcbiAgICB9XG5cbiAgICAvLyB0eXBlIE1vbWVudElucHV0ID0gTW9tZW50IHwgRGF0ZSB8IHN0cmluZyB8IG51bWJlciB8IChudW1iZXIgfCBzdHJpbmcpW10gfCBNb21lbnRJbnB1dE9iamVjdCB8IHZvaWQ7IC8vIG51bGwgfCB1bmRlZmluZWRcbiAgICBmdW5jdGlvbiBpc01vbWVudElucHV0KGlucHV0KSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBpc01vbWVudChpbnB1dCkgfHxcbiAgICAgICAgICAgIGlzRGF0ZShpbnB1dCkgfHxcbiAgICAgICAgICAgIGlzU3RyaW5nKGlucHV0KSB8fFxuICAgICAgICAgICAgaXNOdW1iZXIoaW5wdXQpIHx8XG4gICAgICAgICAgICBpc051bWJlck9yU3RyaW5nQXJyYXkoaW5wdXQpIHx8XG4gICAgICAgICAgICBpc01vbWVudElucHV0T2JqZWN0KGlucHV0KSB8fFxuICAgICAgICAgICAgaW5wdXQgPT09IG51bGwgfHxcbiAgICAgICAgICAgIGlucHV0ID09PSB1bmRlZmluZWRcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc01vbWVudElucHV0T2JqZWN0KGlucHV0KSB7XG4gICAgICAgIHZhciBvYmplY3RUZXN0ID0gaXNPYmplY3QoaW5wdXQpICYmICFpc09iamVjdEVtcHR5KGlucHV0KSxcbiAgICAgICAgICAgIHByb3BlcnR5VGVzdCA9IGZhbHNlLFxuICAgICAgICAgICAgcHJvcGVydGllcyA9IFtcbiAgICAgICAgICAgICAgICAneWVhcnMnLFxuICAgICAgICAgICAgICAgICd5ZWFyJyxcbiAgICAgICAgICAgICAgICAneScsXG4gICAgICAgICAgICAgICAgJ21vbnRocycsXG4gICAgICAgICAgICAgICAgJ21vbnRoJyxcbiAgICAgICAgICAgICAgICAnTScsXG4gICAgICAgICAgICAgICAgJ2RheXMnLFxuICAgICAgICAgICAgICAgICdkYXknLFxuICAgICAgICAgICAgICAgICdkJyxcbiAgICAgICAgICAgICAgICAnZGF0ZXMnLFxuICAgICAgICAgICAgICAgICdkYXRlJyxcbiAgICAgICAgICAgICAgICAnRCcsXG4gICAgICAgICAgICAgICAgJ2hvdXJzJyxcbiAgICAgICAgICAgICAgICAnaG91cicsXG4gICAgICAgICAgICAgICAgJ2gnLFxuICAgICAgICAgICAgICAgICdtaW51dGVzJyxcbiAgICAgICAgICAgICAgICAnbWludXRlJyxcbiAgICAgICAgICAgICAgICAnbScsXG4gICAgICAgICAgICAgICAgJ3NlY29uZHMnLFxuICAgICAgICAgICAgICAgICdzZWNvbmQnLFxuICAgICAgICAgICAgICAgICdzJyxcbiAgICAgICAgICAgICAgICAnbWlsbGlzZWNvbmRzJyxcbiAgICAgICAgICAgICAgICAnbWlsbGlzZWNvbmQnLFxuICAgICAgICAgICAgICAgICdtcycsXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgaSxcbiAgICAgICAgICAgIHByb3BlcnR5O1xuXG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBwcm9wZXJ0aWVzLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICAgICAgICBwcm9wZXJ0eSA9IHByb3BlcnRpZXNbaV07XG4gICAgICAgICAgICBwcm9wZXJ0eVRlc3QgPSBwcm9wZXJ0eVRlc3QgfHwgaGFzT3duUHJvcChpbnB1dCwgcHJvcGVydHkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG9iamVjdFRlc3QgJiYgcHJvcGVydHlUZXN0O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzTnVtYmVyT3JTdHJpbmdBcnJheShpbnB1dCkge1xuICAgICAgICB2YXIgYXJyYXlUZXN0ID0gaXNBcnJheShpbnB1dCksXG4gICAgICAgICAgICBkYXRhVHlwZVRlc3QgPSBmYWxzZTtcbiAgICAgICAgaWYgKGFycmF5VGVzdCkge1xuICAgICAgICAgICAgZGF0YVR5cGVUZXN0ID1cbiAgICAgICAgICAgICAgICBpbnB1dC5maWx0ZXIoZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICFpc051bWJlcihpdGVtKSAmJiBpc1N0cmluZyhpbnB1dCk7XG4gICAgICAgICAgICAgICAgfSkubGVuZ3RoID09PSAwO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhcnJheVRlc3QgJiYgZGF0YVR5cGVUZXN0O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzQ2FsZW5kYXJTcGVjKGlucHV0KSB7XG4gICAgICAgIHZhciBvYmplY3RUZXN0ID0gaXNPYmplY3QoaW5wdXQpICYmICFpc09iamVjdEVtcHR5KGlucHV0KSxcbiAgICAgICAgICAgIHByb3BlcnR5VGVzdCA9IGZhbHNlLFxuICAgICAgICAgICAgcHJvcGVydGllcyA9IFtcbiAgICAgICAgICAgICAgICAnc2FtZURheScsXG4gICAgICAgICAgICAgICAgJ25leHREYXknLFxuICAgICAgICAgICAgICAgICdsYXN0RGF5JyxcbiAgICAgICAgICAgICAgICAnbmV4dFdlZWsnLFxuICAgICAgICAgICAgICAgICdsYXN0V2VlaycsXG4gICAgICAgICAgICAgICAgJ3NhbWVFbHNlJyxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBpLFxuICAgICAgICAgICAgcHJvcGVydHk7XG5cbiAgICAgICAgZm9yIChpID0gMDsgaSA8IHByb3BlcnRpZXMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgICAgICAgIHByb3BlcnR5ID0gcHJvcGVydGllc1tpXTtcbiAgICAgICAgICAgIHByb3BlcnR5VGVzdCA9IHByb3BlcnR5VGVzdCB8fCBoYXNPd25Qcm9wKGlucHV0LCBwcm9wZXJ0eSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gb2JqZWN0VGVzdCAmJiBwcm9wZXJ0eVRlc3Q7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0Q2FsZW5kYXJGb3JtYXQobXlNb21lbnQsIG5vdykge1xuICAgICAgICB2YXIgZGlmZiA9IG15TW9tZW50LmRpZmYobm93LCAnZGF5cycsIHRydWUpO1xuICAgICAgICByZXR1cm4gZGlmZiA8IC02XG4gICAgICAgICAgICA/ICdzYW1lRWxzZSdcbiAgICAgICAgICAgIDogZGlmZiA8IC0xXG4gICAgICAgICAgICA/ICdsYXN0V2VlaydcbiAgICAgICAgICAgIDogZGlmZiA8IDBcbiAgICAgICAgICAgID8gJ2xhc3REYXknXG4gICAgICAgICAgICA6IGRpZmYgPCAxXG4gICAgICAgICAgICA/ICdzYW1lRGF5J1xuICAgICAgICAgICAgOiBkaWZmIDwgMlxuICAgICAgICAgICAgPyAnbmV4dERheSdcbiAgICAgICAgICAgIDogZGlmZiA8IDdcbiAgICAgICAgICAgID8gJ25leHRXZWVrJ1xuICAgICAgICAgICAgOiAnc2FtZUVsc2UnO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNhbGVuZGFyJDEodGltZSwgZm9ybWF0cykge1xuICAgICAgICAvLyBTdXBwb3J0IGZvciBzaW5nbGUgcGFyYW1ldGVyLCBmb3JtYXRzIG9ubHkgb3ZlcmxvYWQgdG8gdGhlIGNhbGVuZGFyIGZ1bmN0aW9uXG4gICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICBpZiAoaXNNb21lbnRJbnB1dChhcmd1bWVudHNbMF0pKSB7XG4gICAgICAgICAgICAgICAgdGltZSA9IGFyZ3VtZW50c1swXTtcbiAgICAgICAgICAgICAgICBmb3JtYXRzID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChpc0NhbGVuZGFyU3BlYyhhcmd1bWVudHNbMF0pKSB7XG4gICAgICAgICAgICAgICAgZm9ybWF0cyA9IGFyZ3VtZW50c1swXTtcbiAgICAgICAgICAgICAgICB0aW1lID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIFdlIHdhbnQgdG8gY29tcGFyZSB0aGUgc3RhcnQgb2YgdG9kYXksIHZzIHRoaXMuXG4gICAgICAgIC8vIEdldHRpbmcgc3RhcnQtb2YtdG9kYXkgZGVwZW5kcyBvbiB3aGV0aGVyIHdlJ3JlIGxvY2FsL3V0Yy9vZmZzZXQgb3Igbm90LlxuICAgICAgICB2YXIgbm93ID0gdGltZSB8fCBjcmVhdGVMb2NhbCgpLFxuICAgICAgICAgICAgc29kID0gY2xvbmVXaXRoT2Zmc2V0KG5vdywgdGhpcykuc3RhcnRPZignZGF5JyksXG4gICAgICAgICAgICBmb3JtYXQgPSBob29rcy5jYWxlbmRhckZvcm1hdCh0aGlzLCBzb2QpIHx8ICdzYW1lRWxzZScsXG4gICAgICAgICAgICBvdXRwdXQgPVxuICAgICAgICAgICAgICAgIGZvcm1hdHMgJiZcbiAgICAgICAgICAgICAgICAoaXNGdW5jdGlvbihmb3JtYXRzW2Zvcm1hdF0pXG4gICAgICAgICAgICAgICAgICAgID8gZm9ybWF0c1tmb3JtYXRdLmNhbGwodGhpcywgbm93KVxuICAgICAgICAgICAgICAgICAgICA6IGZvcm1hdHNbZm9ybWF0XSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0KFxuICAgICAgICAgICAgb3V0cHV0IHx8IHRoaXMubG9jYWxlRGF0YSgpLmNhbGVuZGFyKGZvcm1hdCwgdGhpcywgY3JlYXRlTG9jYWwobm93KSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjbG9uZSgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBNb21lbnQodGhpcyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNBZnRlcihpbnB1dCwgdW5pdHMpIHtcbiAgICAgICAgdmFyIGxvY2FsSW5wdXQgPSBpc01vbWVudChpbnB1dCkgPyBpbnB1dCA6IGNyZWF0ZUxvY2FsKGlucHV0KTtcbiAgICAgICAgaWYgKCEodGhpcy5pc1ZhbGlkKCkgJiYgbG9jYWxJbnB1dC5pc1ZhbGlkKCkpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdW5pdHMgPSBub3JtYWxpemVVbml0cyh1bml0cykgfHwgJ21pbGxpc2Vjb25kJztcbiAgICAgICAgaWYgKHVuaXRzID09PSAnbWlsbGlzZWNvbmQnKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy52YWx1ZU9mKCkgPiBsb2NhbElucHV0LnZhbHVlT2YoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBsb2NhbElucHV0LnZhbHVlT2YoKSA8IHRoaXMuY2xvbmUoKS5zdGFydE9mKHVuaXRzKS52YWx1ZU9mKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc0JlZm9yZShpbnB1dCwgdW5pdHMpIHtcbiAgICAgICAgdmFyIGxvY2FsSW5wdXQgPSBpc01vbWVudChpbnB1dCkgPyBpbnB1dCA6IGNyZWF0ZUxvY2FsKGlucHV0KTtcbiAgICAgICAgaWYgKCEodGhpcy5pc1ZhbGlkKCkgJiYgbG9jYWxJbnB1dC5pc1ZhbGlkKCkpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdW5pdHMgPSBub3JtYWxpemVVbml0cyh1bml0cykgfHwgJ21pbGxpc2Vjb25kJztcbiAgICAgICAgaWYgKHVuaXRzID09PSAnbWlsbGlzZWNvbmQnKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy52YWx1ZU9mKCkgPCBsb2NhbElucHV0LnZhbHVlT2YoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNsb25lKCkuZW5kT2YodW5pdHMpLnZhbHVlT2YoKSA8IGxvY2FsSW5wdXQudmFsdWVPZigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNCZXR3ZWVuKGZyb20sIHRvLCB1bml0cywgaW5jbHVzaXZpdHkpIHtcbiAgICAgICAgdmFyIGxvY2FsRnJvbSA9IGlzTW9tZW50KGZyb20pID8gZnJvbSA6IGNyZWF0ZUxvY2FsKGZyb20pLFxuICAgICAgICAgICAgbG9jYWxUbyA9IGlzTW9tZW50KHRvKSA/IHRvIDogY3JlYXRlTG9jYWwodG8pO1xuICAgICAgICBpZiAoISh0aGlzLmlzVmFsaWQoKSAmJiBsb2NhbEZyb20uaXNWYWxpZCgpICYmIGxvY2FsVG8uaXNWYWxpZCgpKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGluY2x1c2l2aXR5ID0gaW5jbHVzaXZpdHkgfHwgJygpJztcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIChpbmNsdXNpdml0eVswXSA9PT0gJygnXG4gICAgICAgICAgICAgICAgPyB0aGlzLmlzQWZ0ZXIobG9jYWxGcm9tLCB1bml0cylcbiAgICAgICAgICAgICAgICA6ICF0aGlzLmlzQmVmb3JlKGxvY2FsRnJvbSwgdW5pdHMpKSAmJlxuICAgICAgICAgICAgKGluY2x1c2l2aXR5WzFdID09PSAnKSdcbiAgICAgICAgICAgICAgICA/IHRoaXMuaXNCZWZvcmUobG9jYWxUbywgdW5pdHMpXG4gICAgICAgICAgICAgICAgOiAhdGhpcy5pc0FmdGVyKGxvY2FsVG8sIHVuaXRzKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc1NhbWUoaW5wdXQsIHVuaXRzKSB7XG4gICAgICAgIHZhciBsb2NhbElucHV0ID0gaXNNb21lbnQoaW5wdXQpID8gaW5wdXQgOiBjcmVhdGVMb2NhbChpbnB1dCksXG4gICAgICAgICAgICBpbnB1dE1zO1xuICAgICAgICBpZiAoISh0aGlzLmlzVmFsaWQoKSAmJiBsb2NhbElucHV0LmlzVmFsaWQoKSkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB1bml0cyA9IG5vcm1hbGl6ZVVuaXRzKHVuaXRzKSB8fCAnbWlsbGlzZWNvbmQnO1xuICAgICAgICBpZiAodW5pdHMgPT09ICdtaWxsaXNlY29uZCcpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnZhbHVlT2YoKSA9PT0gbG9jYWxJbnB1dC52YWx1ZU9mKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpbnB1dE1zID0gbG9jYWxJbnB1dC52YWx1ZU9mKCk7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIHRoaXMuY2xvbmUoKS5zdGFydE9mKHVuaXRzKS52YWx1ZU9mKCkgPD0gaW5wdXRNcyAmJlxuICAgICAgICAgICAgICAgIGlucHV0TXMgPD0gdGhpcy5jbG9uZSgpLmVuZE9mKHVuaXRzKS52YWx1ZU9mKClcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc1NhbWVPckFmdGVyKGlucHV0LCB1bml0cykge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1NhbWUoaW5wdXQsIHVuaXRzKSB8fCB0aGlzLmlzQWZ0ZXIoaW5wdXQsIHVuaXRzKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc1NhbWVPckJlZm9yZShpbnB1dCwgdW5pdHMpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNTYW1lKGlucHV0LCB1bml0cykgfHwgdGhpcy5pc0JlZm9yZShpbnB1dCwgdW5pdHMpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGRpZmYoaW5wdXQsIHVuaXRzLCBhc0Zsb2F0KSB7XG4gICAgICAgIHZhciB0aGF0LCB6b25lRGVsdGEsIG91dHB1dDtcblxuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gTmFOO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhhdCA9IGNsb25lV2l0aE9mZnNldChpbnB1dCwgdGhpcyk7XG5cbiAgICAgICAgaWYgKCF0aGF0LmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIE5hTjtcbiAgICAgICAgfVxuXG4gICAgICAgIHpvbmVEZWx0YSA9ICh0aGF0LnV0Y09mZnNldCgpIC0gdGhpcy51dGNPZmZzZXQoKSkgKiA2ZTQ7XG5cbiAgICAgICAgdW5pdHMgPSBub3JtYWxpemVVbml0cyh1bml0cyk7XG5cbiAgICAgICAgc3dpdGNoICh1bml0cykge1xuICAgICAgICAgICAgY2FzZSAneWVhcic6XG4gICAgICAgICAgICAgICAgb3V0cHV0ID0gbW9udGhEaWZmKHRoaXMsIHRoYXQpIC8gMTI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtb250aCc6XG4gICAgICAgICAgICAgICAgb3V0cHV0ID0gbW9udGhEaWZmKHRoaXMsIHRoYXQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAncXVhcnRlcic6XG4gICAgICAgICAgICAgICAgb3V0cHV0ID0gbW9udGhEaWZmKHRoaXMsIHRoYXQpIC8gMztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3NlY29uZCc6XG4gICAgICAgICAgICAgICAgb3V0cHV0ID0gKHRoaXMgLSB0aGF0KSAvIDFlMztcbiAgICAgICAgICAgICAgICBicmVhazsgLy8gMTAwMFxuICAgICAgICAgICAgY2FzZSAnbWludXRlJzpcbiAgICAgICAgICAgICAgICBvdXRwdXQgPSAodGhpcyAtIHRoYXQpIC8gNmU0O1xuICAgICAgICAgICAgICAgIGJyZWFrOyAvLyAxMDAwICogNjBcbiAgICAgICAgICAgIGNhc2UgJ2hvdXInOlxuICAgICAgICAgICAgICAgIG91dHB1dCA9ICh0aGlzIC0gdGhhdCkgLyAzNmU1O1xuICAgICAgICAgICAgICAgIGJyZWFrOyAvLyAxMDAwICogNjAgKiA2MFxuICAgICAgICAgICAgY2FzZSAnZGF5JzpcbiAgICAgICAgICAgICAgICBvdXRwdXQgPSAodGhpcyAtIHRoYXQgLSB6b25lRGVsdGEpIC8gODY0ZTU7XG4gICAgICAgICAgICAgICAgYnJlYWs7IC8vIDEwMDAgKiA2MCAqIDYwICogMjQsIG5lZ2F0ZSBkc3RcbiAgICAgICAgICAgIGNhc2UgJ3dlZWsnOlxuICAgICAgICAgICAgICAgIG91dHB1dCA9ICh0aGlzIC0gdGhhdCAtIHpvbmVEZWx0YSkgLyA2MDQ4ZTU7XG4gICAgICAgICAgICAgICAgYnJlYWs7IC8vIDEwMDAgKiA2MCAqIDYwICogMjQgKiA3LCBuZWdhdGUgZHN0XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIG91dHB1dCA9IHRoaXMgLSB0aGF0O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFzRmxvYXQgPyBvdXRwdXQgOiBhYnNGbG9vcihvdXRwdXQpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1vbnRoRGlmZihhLCBiKSB7XG4gICAgICAgIGlmIChhLmRhdGUoKSA8IGIuZGF0ZSgpKSB7XG4gICAgICAgICAgICAvLyBlbmQtb2YtbW9udGggY2FsY3VsYXRpb25zIHdvcmsgY29ycmVjdCB3aGVuIHRoZSBzdGFydCBtb250aCBoYXMgbW9yZVxuICAgICAgICAgICAgLy8gZGF5cyB0aGFuIHRoZSBlbmQgbW9udGguXG4gICAgICAgICAgICByZXR1cm4gLW1vbnRoRGlmZihiLCBhKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBkaWZmZXJlbmNlIGluIG1vbnRoc1xuICAgICAgICB2YXIgd2hvbGVNb250aERpZmYgPSAoYi55ZWFyKCkgLSBhLnllYXIoKSkgKiAxMiArIChiLm1vbnRoKCkgLSBhLm1vbnRoKCkpLFxuICAgICAgICAgICAgLy8gYiBpcyBpbiAoYW5jaG9yIC0gMSBtb250aCwgYW5jaG9yICsgMSBtb250aClcbiAgICAgICAgICAgIGFuY2hvciA9IGEuY2xvbmUoKS5hZGQod2hvbGVNb250aERpZmYsICdtb250aHMnKSxcbiAgICAgICAgICAgIGFuY2hvcjIsXG4gICAgICAgICAgICBhZGp1c3Q7XG5cbiAgICAgICAgaWYgKGIgLSBhbmNob3IgPCAwKSB7XG4gICAgICAgICAgICBhbmNob3IyID0gYS5jbG9uZSgpLmFkZCh3aG9sZU1vbnRoRGlmZiAtIDEsICdtb250aHMnKTtcbiAgICAgICAgICAgIC8vIGxpbmVhciBhY3Jvc3MgdGhlIG1vbnRoXG4gICAgICAgICAgICBhZGp1c3QgPSAoYiAtIGFuY2hvcikgLyAoYW5jaG9yIC0gYW5jaG9yMik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhbmNob3IyID0gYS5jbG9uZSgpLmFkZCh3aG9sZU1vbnRoRGlmZiArIDEsICdtb250aHMnKTtcbiAgICAgICAgICAgIC8vIGxpbmVhciBhY3Jvc3MgdGhlIG1vbnRoXG4gICAgICAgICAgICBhZGp1c3QgPSAoYiAtIGFuY2hvcikgLyAoYW5jaG9yMiAtIGFuY2hvcik7XG4gICAgICAgIH1cblxuICAgICAgICAvL2NoZWNrIGZvciBuZWdhdGl2ZSB6ZXJvLCByZXR1cm4gemVybyBpZiBuZWdhdGl2ZSB6ZXJvXG4gICAgICAgIHJldHVybiAtKHdob2xlTW9udGhEaWZmICsgYWRqdXN0KSB8fCAwO1xuICAgIH1cblxuICAgIGhvb2tzLmRlZmF1bHRGb3JtYXQgPSAnWVlZWS1NTS1ERFRISDptbTpzc1onO1xuICAgIGhvb2tzLmRlZmF1bHRGb3JtYXRVdGMgPSAnWVlZWS1NTS1ERFRISDptbTpzc1taXSc7XG5cbiAgICBmdW5jdGlvbiB0b1N0cmluZygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2xvbmUoKS5sb2NhbGUoJ2VuJykuZm9ybWF0KCdkZGQgTU1NIEREIFlZWVkgSEg6bW06c3MgW0dNVF1aWicpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRvSVNPU3RyaW5nKGtlZXBPZmZzZXQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHV0YyA9IGtlZXBPZmZzZXQgIT09IHRydWUsXG4gICAgICAgICAgICBtID0gdXRjID8gdGhpcy5jbG9uZSgpLnV0YygpIDogdGhpcztcbiAgICAgICAgaWYgKG0ueWVhcigpIDwgMCB8fCBtLnllYXIoKSA+IDk5OTkpIHtcbiAgICAgICAgICAgIHJldHVybiBmb3JtYXRNb21lbnQoXG4gICAgICAgICAgICAgICAgbSxcbiAgICAgICAgICAgICAgICB1dGNcbiAgICAgICAgICAgICAgICAgICAgPyAnWVlZWVlZLU1NLUREW1RdSEg6bW06c3MuU1NTW1pdJ1xuICAgICAgICAgICAgICAgICAgICA6ICdZWVlZWVktTU0tRERbVF1ISDptbTpzcy5TU1NaJ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNGdW5jdGlvbihEYXRlLnByb3RvdHlwZS50b0lTT1N0cmluZykpIHtcbiAgICAgICAgICAgIC8vIG5hdGl2ZSBpbXBsZW1lbnRhdGlvbiBpcyB+NTB4IGZhc3RlciwgdXNlIGl0IHdoZW4gd2UgY2FuXG4gICAgICAgICAgICBpZiAodXRjKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudG9EYXRlKCkudG9JU09TdHJpbmcoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHRoaXMudmFsdWVPZigpICsgdGhpcy51dGNPZmZzZXQoKSAqIDYwICogMTAwMClcbiAgICAgICAgICAgICAgICAgICAgLnRvSVNPU3RyaW5nKClcbiAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoJ1onLCBmb3JtYXRNb21lbnQobSwgJ1onKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZvcm1hdE1vbWVudChcbiAgICAgICAgICAgIG0sXG4gICAgICAgICAgICB1dGMgPyAnWVlZWS1NTS1ERFtUXUhIOm1tOnNzLlNTU1taXScgOiAnWVlZWS1NTS1ERFtUXUhIOm1tOnNzLlNTU1onXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJuIGEgaHVtYW4gcmVhZGFibGUgcmVwcmVzZW50YXRpb24gb2YgYSBtb21lbnQgdGhhdCBjYW5cbiAgICAgKiBhbHNvIGJlIGV2YWx1YXRlZCB0byBnZXQgYSBuZXcgbW9tZW50IHdoaWNoIGlzIHRoZSBzYW1lXG4gICAgICpcbiAgICAgKiBAbGluayBodHRwczovL25vZGVqcy5vcmcvZGlzdC9sYXRlc3QvZG9jcy9hcGkvdXRpbC5odG1sI3V0aWxfY3VzdG9tX2luc3BlY3RfZnVuY3Rpb25fb25fb2JqZWN0c1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIGluc3BlY3QoKSB7XG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiAnbW9tZW50LmludmFsaWQoLyogJyArIHRoaXMuX2kgKyAnICovKSc7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGZ1bmMgPSAnbW9tZW50JyxcbiAgICAgICAgICAgIHpvbmUgPSAnJyxcbiAgICAgICAgICAgIHByZWZpeCxcbiAgICAgICAgICAgIHllYXIsXG4gICAgICAgICAgICBkYXRldGltZSxcbiAgICAgICAgICAgIHN1ZmZpeDtcbiAgICAgICAgaWYgKCF0aGlzLmlzTG9jYWwoKSkge1xuICAgICAgICAgICAgZnVuYyA9IHRoaXMudXRjT2Zmc2V0KCkgPT09IDAgPyAnbW9tZW50LnV0YycgOiAnbW9tZW50LnBhcnNlWm9uZSc7XG4gICAgICAgICAgICB6b25lID0gJ1onO1xuICAgICAgICB9XG4gICAgICAgIHByZWZpeCA9ICdbJyArIGZ1bmMgKyAnKFwiXSc7XG4gICAgICAgIHllYXIgPSAwIDw9IHRoaXMueWVhcigpICYmIHRoaXMueWVhcigpIDw9IDk5OTkgPyAnWVlZWScgOiAnWVlZWVlZJztcbiAgICAgICAgZGF0ZXRpbWUgPSAnLU1NLUREW1RdSEg6bW06c3MuU1NTJztcbiAgICAgICAgc3VmZml4ID0gem9uZSArICdbXCIpXSc7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0KHByZWZpeCArIHllYXIgKyBkYXRldGltZSArIHN1ZmZpeCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZm9ybWF0KGlucHV0U3RyaW5nKSB7XG4gICAgICAgIGlmICghaW5wdXRTdHJpbmcpIHtcbiAgICAgICAgICAgIGlucHV0U3RyaW5nID0gdGhpcy5pc1V0YygpXG4gICAgICAgICAgICAgICAgPyBob29rcy5kZWZhdWx0Rm9ybWF0VXRjXG4gICAgICAgICAgICAgICAgOiBob29rcy5kZWZhdWx0Rm9ybWF0O1xuICAgICAgICB9XG4gICAgICAgIHZhciBvdXRwdXQgPSBmb3JtYXRNb21lbnQodGhpcywgaW5wdXRTdHJpbmcpO1xuICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkucG9zdGZvcm1hdChvdXRwdXQpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGZyb20odGltZSwgd2l0aG91dFN1ZmZpeCkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLmlzVmFsaWQoKSAmJlxuICAgICAgICAgICAgKChpc01vbWVudCh0aW1lKSAmJiB0aW1lLmlzVmFsaWQoKSkgfHwgY3JlYXRlTG9jYWwodGltZSkuaXNWYWxpZCgpKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiBjcmVhdGVEdXJhdGlvbih7IHRvOiB0aGlzLCBmcm9tOiB0aW1lIH0pXG4gICAgICAgICAgICAgICAgLmxvY2FsZSh0aGlzLmxvY2FsZSgpKVxuICAgICAgICAgICAgICAgIC5odW1hbml6ZSghd2l0aG91dFN1ZmZpeCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkuaW52YWxpZERhdGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGZyb21Ob3cod2l0aG91dFN1ZmZpeCkge1xuICAgICAgICByZXR1cm4gdGhpcy5mcm9tKGNyZWF0ZUxvY2FsKCksIHdpdGhvdXRTdWZmaXgpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRvKHRpbWUsIHdpdGhvdXRTdWZmaXgpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5pc1ZhbGlkKCkgJiZcbiAgICAgICAgICAgICgoaXNNb21lbnQodGltZSkgJiYgdGltZS5pc1ZhbGlkKCkpIHx8IGNyZWF0ZUxvY2FsKHRpbWUpLmlzVmFsaWQoKSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4gY3JlYXRlRHVyYXRpb24oeyBmcm9tOiB0aGlzLCB0bzogdGltZSB9KVxuICAgICAgICAgICAgICAgIC5sb2NhbGUodGhpcy5sb2NhbGUoKSlcbiAgICAgICAgICAgICAgICAuaHVtYW5pemUoIXdpdGhvdXRTdWZmaXgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLmludmFsaWREYXRlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0b05vdyh3aXRob3V0U3VmZml4KSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRvKGNyZWF0ZUxvY2FsKCksIHdpdGhvdXRTdWZmaXgpO1xuICAgIH1cblxuICAgIC8vIElmIHBhc3NlZCBhIGxvY2FsZSBrZXksIGl0IHdpbGwgc2V0IHRoZSBsb2NhbGUgZm9yIHRoaXNcbiAgICAvLyBpbnN0YW5jZS4gIE90aGVyd2lzZSwgaXQgd2lsbCByZXR1cm4gdGhlIGxvY2FsZSBjb25maWd1cmF0aW9uXG4gICAgLy8gdmFyaWFibGVzIGZvciB0aGlzIGluc3RhbmNlLlxuICAgIGZ1bmN0aW9uIGxvY2FsZShrZXkpIHtcbiAgICAgICAgdmFyIG5ld0xvY2FsZURhdGE7XG5cbiAgICAgICAgaWYgKGtleSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxlLl9hYmJyO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmV3TG9jYWxlRGF0YSA9IGdldExvY2FsZShrZXkpO1xuICAgICAgICAgICAgaWYgKG5ld0xvY2FsZURhdGEgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2xvY2FsZSA9IG5ld0xvY2FsZURhdGE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhciBsYW5nID0gZGVwcmVjYXRlKFxuICAgICAgICAnbW9tZW50KCkubGFuZygpIGlzIGRlcHJlY2F0ZWQuIEluc3RlYWQsIHVzZSBtb21lbnQoKS5sb2NhbGVEYXRhKCkgdG8gZ2V0IHRoZSBsYW5ndWFnZSBjb25maWd1cmF0aW9uLiBVc2UgbW9tZW50KCkubG9jYWxlKCkgdG8gY2hhbmdlIGxhbmd1YWdlcy4nLFxuICAgICAgICBmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgICAgICBpZiAoa2V5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmxvY2FsZShrZXkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgKTtcblxuICAgIGZ1bmN0aW9uIGxvY2FsZURhdGEoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9sb2NhbGU7XG4gICAgfVxuXG4gICAgdmFyIE1TX1BFUl9TRUNPTkQgPSAxMDAwLFxuICAgICAgICBNU19QRVJfTUlOVVRFID0gNjAgKiBNU19QRVJfU0VDT05ELFxuICAgICAgICBNU19QRVJfSE9VUiA9IDYwICogTVNfUEVSX01JTlVURSxcbiAgICAgICAgTVNfUEVSXzQwMF9ZRUFSUyA9ICgzNjUgKiA0MDAgKyA5NykgKiAyNCAqIE1TX1BFUl9IT1VSO1xuXG4gICAgLy8gYWN0dWFsIG1vZHVsbyAtIGhhbmRsZXMgbmVnYXRpdmUgbnVtYmVycyAoZm9yIGRhdGVzIGJlZm9yZSAxOTcwKTpcbiAgICBmdW5jdGlvbiBtb2QkMShkaXZpZGVuZCwgZGl2aXNvcikge1xuICAgICAgICByZXR1cm4gKChkaXZpZGVuZCAlIGRpdmlzb3IpICsgZGl2aXNvcikgJSBkaXZpc29yO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxvY2FsU3RhcnRPZkRhdGUoeSwgbSwgZCkge1xuICAgICAgICAvLyB0aGUgZGF0ZSBjb25zdHJ1Y3RvciByZW1hcHMgeWVhcnMgMC05OSB0byAxOTAwLTE5OTlcbiAgICAgICAgaWYgKHkgPCAxMDAgJiYgeSA+PSAwKSB7XG4gICAgICAgICAgICAvLyBwcmVzZXJ2ZSBsZWFwIHllYXJzIHVzaW5nIGEgZnVsbCA0MDAgeWVhciBjeWNsZSwgdGhlbiByZXNldFxuICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHkgKyA0MDAsIG0sIGQpIC0gTVNfUEVSXzQwMF9ZRUFSUztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZSh5LCBtLCBkKS52YWx1ZU9mKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiB1dGNTdGFydE9mRGF0ZSh5LCBtLCBkKSB7XG4gICAgICAgIC8vIERhdGUuVVRDIHJlbWFwcyB5ZWFycyAwLTk5IHRvIDE5MDAtMTk5OVxuICAgICAgICBpZiAoeSA8IDEwMCAmJiB5ID49IDApIHtcbiAgICAgICAgICAgIC8vIHByZXNlcnZlIGxlYXAgeWVhcnMgdXNpbmcgYSBmdWxsIDQwMCB5ZWFyIGN5Y2xlLCB0aGVuIHJlc2V0XG4gICAgICAgICAgICByZXR1cm4gRGF0ZS5VVEMoeSArIDQwMCwgbSwgZCkgLSBNU19QRVJfNDAwX1lFQVJTO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIERhdGUuVVRDKHksIG0sIGQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc3RhcnRPZih1bml0cykge1xuICAgICAgICB2YXIgdGltZSwgc3RhcnRPZkRhdGU7XG4gICAgICAgIHVuaXRzID0gbm9ybWFsaXplVW5pdHModW5pdHMpO1xuICAgICAgICBpZiAodW5pdHMgPT09IHVuZGVmaW5lZCB8fCB1bml0cyA9PT0gJ21pbGxpc2Vjb25kJyB8fCAhdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG5cbiAgICAgICAgc3RhcnRPZkRhdGUgPSB0aGlzLl9pc1VUQyA/IHV0Y1N0YXJ0T2ZEYXRlIDogbG9jYWxTdGFydE9mRGF0ZTtcblxuICAgICAgICBzd2l0Y2ggKHVuaXRzKSB7XG4gICAgICAgICAgICBjYXNlICd5ZWFyJzpcbiAgICAgICAgICAgICAgICB0aW1lID0gc3RhcnRPZkRhdGUodGhpcy55ZWFyKCksIDAsIDEpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAncXVhcnRlcic6XG4gICAgICAgICAgICAgICAgdGltZSA9IHN0YXJ0T2ZEYXRlKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnllYXIoKSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tb250aCgpIC0gKHRoaXMubW9udGgoKSAlIDMpLFxuICAgICAgICAgICAgICAgICAgICAxXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ21vbnRoJzpcbiAgICAgICAgICAgICAgICB0aW1lID0gc3RhcnRPZkRhdGUodGhpcy55ZWFyKCksIHRoaXMubW9udGgoKSwgMSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd3ZWVrJzpcbiAgICAgICAgICAgICAgICB0aW1lID0gc3RhcnRPZkRhdGUoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMueWVhcigpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1vbnRoKCksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZSgpIC0gdGhpcy53ZWVrZGF5KClcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnaXNvV2Vlayc6XG4gICAgICAgICAgICAgICAgdGltZSA9IHN0YXJ0T2ZEYXRlKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnllYXIoKSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tb250aCgpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGUoKSAtICh0aGlzLmlzb1dlZWtkYXkoKSAtIDEpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2RheSc6XG4gICAgICAgICAgICBjYXNlICdkYXRlJzpcbiAgICAgICAgICAgICAgICB0aW1lID0gc3RhcnRPZkRhdGUodGhpcy55ZWFyKCksIHRoaXMubW9udGgoKSwgdGhpcy5kYXRlKCkpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnaG91cic6XG4gICAgICAgICAgICAgICAgdGltZSA9IHRoaXMuX2QudmFsdWVPZigpO1xuICAgICAgICAgICAgICAgIHRpbWUgLT0gbW9kJDEoXG4gICAgICAgICAgICAgICAgICAgIHRpbWUgKyAodGhpcy5faXNVVEMgPyAwIDogdGhpcy51dGNPZmZzZXQoKSAqIE1TX1BFUl9NSU5VVEUpLFxuICAgICAgICAgICAgICAgICAgICBNU19QRVJfSE9VUlxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtaW51dGUnOlxuICAgICAgICAgICAgICAgIHRpbWUgPSB0aGlzLl9kLnZhbHVlT2YoKTtcbiAgICAgICAgICAgICAgICB0aW1lIC09IG1vZCQxKHRpbWUsIE1TX1BFUl9NSU5VVEUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnc2Vjb25kJzpcbiAgICAgICAgICAgICAgICB0aW1lID0gdGhpcy5fZC52YWx1ZU9mKCk7XG4gICAgICAgICAgICAgICAgdGltZSAtPSBtb2QkMSh0aW1lLCBNU19QRVJfU0VDT05EKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2Quc2V0VGltZSh0aW1lKTtcbiAgICAgICAgaG9va3MudXBkYXRlT2Zmc2V0KHRoaXMsIHRydWUpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBlbmRPZih1bml0cykge1xuICAgICAgICB2YXIgdGltZSwgc3RhcnRPZkRhdGU7XG4gICAgICAgIHVuaXRzID0gbm9ybWFsaXplVW5pdHModW5pdHMpO1xuICAgICAgICBpZiAodW5pdHMgPT09IHVuZGVmaW5lZCB8fCB1bml0cyA9PT0gJ21pbGxpc2Vjb25kJyB8fCAhdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG5cbiAgICAgICAgc3RhcnRPZkRhdGUgPSB0aGlzLl9pc1VUQyA/IHV0Y1N0YXJ0T2ZEYXRlIDogbG9jYWxTdGFydE9mRGF0ZTtcblxuICAgICAgICBzd2l0Y2ggKHVuaXRzKSB7XG4gICAgICAgICAgICBjYXNlICd5ZWFyJzpcbiAgICAgICAgICAgICAgICB0aW1lID0gc3RhcnRPZkRhdGUodGhpcy55ZWFyKCkgKyAxLCAwLCAxKSAtIDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdxdWFydGVyJzpcbiAgICAgICAgICAgICAgICB0aW1lID1cbiAgICAgICAgICAgICAgICAgICAgc3RhcnRPZkRhdGUoXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnllYXIoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubW9udGgoKSAtICh0aGlzLm1vbnRoKCkgJSAzKSArIDMsXG4gICAgICAgICAgICAgICAgICAgICAgICAxXG4gICAgICAgICAgICAgICAgICAgICkgLSAxO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbW9udGgnOlxuICAgICAgICAgICAgICAgIHRpbWUgPSBzdGFydE9mRGF0ZSh0aGlzLnllYXIoKSwgdGhpcy5tb250aCgpICsgMSwgMSkgLSAxO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnd2Vlayc6XG4gICAgICAgICAgICAgICAgdGltZSA9XG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0T2ZEYXRlKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy55ZWFyKCksXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1vbnRoKCksXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGUoKSAtIHRoaXMud2Vla2RheSgpICsgN1xuICAgICAgICAgICAgICAgICAgICApIC0gMTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2lzb1dlZWsnOlxuICAgICAgICAgICAgICAgIHRpbWUgPVxuICAgICAgICAgICAgICAgICAgICBzdGFydE9mRGF0ZShcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMueWVhcigpLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tb250aCgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlKCkgLSAodGhpcy5pc29XZWVrZGF5KCkgLSAxKSArIDdcbiAgICAgICAgICAgICAgICAgICAgKSAtIDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdkYXknOlxuICAgICAgICAgICAgY2FzZSAnZGF0ZSc6XG4gICAgICAgICAgICAgICAgdGltZSA9IHN0YXJ0T2ZEYXRlKHRoaXMueWVhcigpLCB0aGlzLm1vbnRoKCksIHRoaXMuZGF0ZSgpICsgMSkgLSAxO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnaG91cic6XG4gICAgICAgICAgICAgICAgdGltZSA9IHRoaXMuX2QudmFsdWVPZigpO1xuICAgICAgICAgICAgICAgIHRpbWUgKz1cbiAgICAgICAgICAgICAgICAgICAgTVNfUEVSX0hPVVIgLVxuICAgICAgICAgICAgICAgICAgICBtb2QkMShcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpbWUgKyAodGhpcy5faXNVVEMgPyAwIDogdGhpcy51dGNPZmZzZXQoKSAqIE1TX1BFUl9NSU5VVEUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgTVNfUEVSX0hPVVJcbiAgICAgICAgICAgICAgICAgICAgKSAtXG4gICAgICAgICAgICAgICAgICAgIDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtaW51dGUnOlxuICAgICAgICAgICAgICAgIHRpbWUgPSB0aGlzLl9kLnZhbHVlT2YoKTtcbiAgICAgICAgICAgICAgICB0aW1lICs9IE1TX1BFUl9NSU5VVEUgLSBtb2QkMSh0aW1lLCBNU19QRVJfTUlOVVRFKSAtIDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdzZWNvbmQnOlxuICAgICAgICAgICAgICAgIHRpbWUgPSB0aGlzLl9kLnZhbHVlT2YoKTtcbiAgICAgICAgICAgICAgICB0aW1lICs9IE1TX1BFUl9TRUNPTkQgLSBtb2QkMSh0aW1lLCBNU19QRVJfU0VDT05EKSAtIDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9kLnNldFRpbWUodGltZSk7XG4gICAgICAgIGhvb2tzLnVwZGF0ZU9mZnNldCh0aGlzLCB0cnVlKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdmFsdWVPZigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2QudmFsdWVPZigpIC0gKHRoaXMuX29mZnNldCB8fCAwKSAqIDYwMDAwO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHVuaXgoKSB7XG4gICAgICAgIHJldHVybiBNYXRoLmZsb29yKHRoaXMudmFsdWVPZigpIC8gMTAwMCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdG9EYXRlKCkge1xuICAgICAgICByZXR1cm4gbmV3IERhdGUodGhpcy52YWx1ZU9mKCkpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRvQXJyYXkoKSB7XG4gICAgICAgIHZhciBtID0gdGhpcztcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIG0ueWVhcigpLFxuICAgICAgICAgICAgbS5tb250aCgpLFxuICAgICAgICAgICAgbS5kYXRlKCksXG4gICAgICAgICAgICBtLmhvdXIoKSxcbiAgICAgICAgICAgIG0ubWludXRlKCksXG4gICAgICAgICAgICBtLnNlY29uZCgpLFxuICAgICAgICAgICAgbS5taWxsaXNlY29uZCgpLFxuICAgICAgICBdO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRvT2JqZWN0KCkge1xuICAgICAgICB2YXIgbSA9IHRoaXM7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB5ZWFyczogbS55ZWFyKCksXG4gICAgICAgICAgICBtb250aHM6IG0ubW9udGgoKSxcbiAgICAgICAgICAgIGRhdGU6IG0uZGF0ZSgpLFxuICAgICAgICAgICAgaG91cnM6IG0uaG91cnMoKSxcbiAgICAgICAgICAgIG1pbnV0ZXM6IG0ubWludXRlcygpLFxuICAgICAgICAgICAgc2Vjb25kczogbS5zZWNvbmRzKCksXG4gICAgICAgICAgICBtaWxsaXNlY29uZHM6IG0ubWlsbGlzZWNvbmRzKCksXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdG9KU09OKCkge1xuICAgICAgICAvLyBuZXcgRGF0ZShOYU4pLnRvSlNPTigpID09PSBudWxsXG4gICAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQoKSA/IHRoaXMudG9JU09TdHJpbmcoKSA6IG51bGw7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNWYWxpZCQyKCkge1xuICAgICAgICByZXR1cm4gaXNWYWxpZCh0aGlzKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzaW5nRmxhZ3MoKSB7XG4gICAgICAgIHJldHVybiBleHRlbmQoe30sIGdldFBhcnNpbmdGbGFncyh0aGlzKSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaW52YWxpZEF0KCkge1xuICAgICAgICByZXR1cm4gZ2V0UGFyc2luZ0ZsYWdzKHRoaXMpLm92ZXJmbG93O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNyZWF0aW9uRGF0YSgpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGlucHV0OiB0aGlzLl9pLFxuICAgICAgICAgICAgZm9ybWF0OiB0aGlzLl9mLFxuICAgICAgICAgICAgbG9jYWxlOiB0aGlzLl9sb2NhbGUsXG4gICAgICAgICAgICBpc1VUQzogdGhpcy5faXNVVEMsXG4gICAgICAgICAgICBzdHJpY3Q6IHRoaXMuX3N0cmljdCxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBhZGRGb3JtYXRUb2tlbignTicsIDAsIDAsICdlcmFBYmJyJyk7XG4gICAgYWRkRm9ybWF0VG9rZW4oJ05OJywgMCwgMCwgJ2VyYUFiYnInKTtcbiAgICBhZGRGb3JtYXRUb2tlbignTk5OJywgMCwgMCwgJ2VyYUFiYnInKTtcbiAgICBhZGRGb3JtYXRUb2tlbignTk5OTicsIDAsIDAsICdlcmFOYW1lJyk7XG4gICAgYWRkRm9ybWF0VG9rZW4oJ05OTk5OJywgMCwgMCwgJ2VyYU5hcnJvdycpO1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ3knLCBbJ3knLCAxXSwgJ3lvJywgJ2VyYVllYXInKTtcbiAgICBhZGRGb3JtYXRUb2tlbigneScsIFsneXknLCAyXSwgMCwgJ2VyYVllYXInKTtcbiAgICBhZGRGb3JtYXRUb2tlbigneScsIFsneXl5JywgM10sIDAsICdlcmFZZWFyJyk7XG4gICAgYWRkRm9ybWF0VG9rZW4oJ3knLCBbJ3l5eXknLCA0XSwgMCwgJ2VyYVllYXInKTtcblxuICAgIGFkZFJlZ2V4VG9rZW4oJ04nLCBtYXRjaEVyYUFiYnIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ05OJywgbWF0Y2hFcmFBYmJyKTtcbiAgICBhZGRSZWdleFRva2VuKCdOTk4nLCBtYXRjaEVyYUFiYnIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ05OTk4nLCBtYXRjaEVyYU5hbWUpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ05OTk5OJywgbWF0Y2hFcmFOYXJyb3cpO1xuXG4gICAgYWRkUGFyc2VUb2tlbihbJ04nLCAnTk4nLCAnTk5OJywgJ05OTk4nLCAnTk5OTk4nXSwgZnVuY3Rpb24gKFxuICAgICAgICBpbnB1dCxcbiAgICAgICAgYXJyYXksXG4gICAgICAgIGNvbmZpZyxcbiAgICAgICAgdG9rZW5cbiAgICApIHtcbiAgICAgICAgdmFyIGVyYSA9IGNvbmZpZy5fbG9jYWxlLmVyYXNQYXJzZShpbnB1dCwgdG9rZW4sIGNvbmZpZy5fc3RyaWN0KTtcbiAgICAgICAgaWYgKGVyYSkge1xuICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuZXJhID0gZXJhO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuaW52YWxpZEVyYSA9IGlucHV0O1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICBhZGRSZWdleFRva2VuKCd5JywgbWF0Y2hVbnNpZ25lZCk7XG4gICAgYWRkUmVnZXhUb2tlbigneXknLCBtYXRjaFVuc2lnbmVkKTtcbiAgICBhZGRSZWdleFRva2VuKCd5eXknLCBtYXRjaFVuc2lnbmVkKTtcbiAgICBhZGRSZWdleFRva2VuKCd5eXl5JywgbWF0Y2hVbnNpZ25lZCk7XG4gICAgYWRkUmVnZXhUb2tlbigneW8nLCBtYXRjaEVyYVllYXJPcmRpbmFsKTtcblxuICAgIGFkZFBhcnNlVG9rZW4oWyd5JywgJ3l5JywgJ3l5eScsICd5eXl5J10sIFlFQVIpO1xuICAgIGFkZFBhcnNlVG9rZW4oWyd5byddLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5LCBjb25maWcsIHRva2VuKSB7XG4gICAgICAgIHZhciBtYXRjaDtcbiAgICAgICAgaWYgKGNvbmZpZy5fbG9jYWxlLl9lcmFZZWFyT3JkaW5hbFJlZ2V4KSB7XG4gICAgICAgICAgICBtYXRjaCA9IGlucHV0Lm1hdGNoKGNvbmZpZy5fbG9jYWxlLl9lcmFZZWFyT3JkaW5hbFJlZ2V4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjb25maWcuX2xvY2FsZS5lcmFZZWFyT3JkaW5hbFBhcnNlKSB7XG4gICAgICAgICAgICBhcnJheVtZRUFSXSA9IGNvbmZpZy5fbG9jYWxlLmVyYVllYXJPcmRpbmFsUGFyc2UoaW5wdXQsIG1hdGNoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGFycmF5W1lFQVJdID0gcGFyc2VJbnQoaW5wdXQsIDEwKTtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgZnVuY3Rpb24gbG9jYWxlRXJhcyhtLCBmb3JtYXQpIHtcbiAgICAgICAgdmFyIGksXG4gICAgICAgICAgICBsLFxuICAgICAgICAgICAgZGF0ZSxcbiAgICAgICAgICAgIGVyYXMgPSB0aGlzLl9lcmFzIHx8IGdldExvY2FsZSgnZW4nKS5fZXJhcztcbiAgICAgICAgZm9yIChpID0gMCwgbCA9IGVyYXMubGVuZ3RoOyBpIDwgbDsgKytpKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHR5cGVvZiBlcmFzW2ldLnNpbmNlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgICAgICAgICAgICAgICAgLy8gdHJ1bmNhdGUgdGltZVxuICAgICAgICAgICAgICAgICAgICBkYXRlID0gaG9va3MoZXJhc1tpXS5zaW5jZSkuc3RhcnRPZignZGF5Jyk7XG4gICAgICAgICAgICAgICAgICAgIGVyYXNbaV0uc2luY2UgPSBkYXRlLnZhbHVlT2YoKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHN3aXRjaCAodHlwZW9mIGVyYXNbaV0udW50aWwpIHtcbiAgICAgICAgICAgICAgICBjYXNlICd1bmRlZmluZWQnOlxuICAgICAgICAgICAgICAgICAgICBlcmFzW2ldLnVudGlsID0gK0luZmluaXR5O1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgICAgICAgICAgICAgICAvLyB0cnVuY2F0ZSB0aW1lXG4gICAgICAgICAgICAgICAgICAgIGRhdGUgPSBob29rcyhlcmFzW2ldLnVudGlsKS5zdGFydE9mKCdkYXknKS52YWx1ZU9mKCk7XG4gICAgICAgICAgICAgICAgICAgIGVyYXNbaV0udW50aWwgPSBkYXRlLnZhbHVlT2YoKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGVyYXM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbG9jYWxlRXJhc1BhcnNlKGVyYU5hbWUsIGZvcm1hdCwgc3RyaWN0KSB7XG4gICAgICAgIHZhciBpLFxuICAgICAgICAgICAgbCxcbiAgICAgICAgICAgIGVyYXMgPSB0aGlzLmVyYXMoKSxcbiAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICBhYmJyLFxuICAgICAgICAgICAgbmFycm93O1xuICAgICAgICBlcmFOYW1lID0gZXJhTmFtZS50b1VwcGVyQ2FzZSgpO1xuXG4gICAgICAgIGZvciAoaSA9IDAsIGwgPSBlcmFzLmxlbmd0aDsgaSA8IGw7ICsraSkge1xuICAgICAgICAgICAgbmFtZSA9IGVyYXNbaV0ubmFtZS50b1VwcGVyQ2FzZSgpO1xuICAgICAgICAgICAgYWJiciA9IGVyYXNbaV0uYWJici50b1VwcGVyQ2FzZSgpO1xuICAgICAgICAgICAgbmFycm93ID0gZXJhc1tpXS5uYXJyb3cudG9VcHBlckNhc2UoKTtcblxuICAgICAgICAgICAgaWYgKHN0cmljdCkge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAoZm9ybWF0KSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ04nOlxuICAgICAgICAgICAgICAgICAgICBjYXNlICdOTic6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ05OTic6XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWJiciA9PT0gZXJhTmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBlcmFzW2ldO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnTk5OTic6XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobmFtZSA9PT0gZXJhTmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBlcmFzW2ldO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnTk5OTk4nOlxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5hcnJvdyA9PT0gZXJhTmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBlcmFzW2ldO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChbbmFtZSwgYWJiciwgbmFycm93XS5pbmRleE9mKGVyYU5hbWUpID49IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZXJhc1tpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxvY2FsZUVyYXNDb252ZXJ0WWVhcihlcmEsIHllYXIpIHtcbiAgICAgICAgdmFyIGRpciA9IGVyYS5zaW5jZSA8PSBlcmEudW50aWwgPyArMSA6IC0xO1xuICAgICAgICBpZiAoeWVhciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gaG9va3MoZXJhLnNpbmNlKS55ZWFyKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gaG9va3MoZXJhLnNpbmNlKS55ZWFyKCkgKyAoeWVhciAtIGVyYS5vZmZzZXQpICogZGlyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0RXJhTmFtZSgpIHtcbiAgICAgICAgdmFyIGksXG4gICAgICAgICAgICBsLFxuICAgICAgICAgICAgdmFsLFxuICAgICAgICAgICAgZXJhcyA9IHRoaXMubG9jYWxlRGF0YSgpLmVyYXMoKTtcbiAgICAgICAgZm9yIChpID0gMCwgbCA9IGVyYXMubGVuZ3RoOyBpIDwgbDsgKytpKSB7XG4gICAgICAgICAgICAvLyB0cnVuY2F0ZSB0aW1lXG4gICAgICAgICAgICB2YWwgPSB0aGlzLnN0YXJ0T2YoJ2RheScpLnZhbHVlT2YoKTtcblxuICAgICAgICAgICAgaWYgKGVyYXNbaV0uc2luY2UgPD0gdmFsICYmIHZhbCA8PSBlcmFzW2ldLnVudGlsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGVyYXNbaV0ubmFtZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChlcmFzW2ldLnVudGlsIDw9IHZhbCAmJiB2YWwgPD0gZXJhc1tpXS5zaW5jZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBlcmFzW2ldLm5hbWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0RXJhTmFycm93KCkge1xuICAgICAgICB2YXIgaSxcbiAgICAgICAgICAgIGwsXG4gICAgICAgICAgICB2YWwsXG4gICAgICAgICAgICBlcmFzID0gdGhpcy5sb2NhbGVEYXRhKCkuZXJhcygpO1xuICAgICAgICBmb3IgKGkgPSAwLCBsID0gZXJhcy5sZW5ndGg7IGkgPCBsOyArK2kpIHtcbiAgICAgICAgICAgIC8vIHRydW5jYXRlIHRpbWVcbiAgICAgICAgICAgIHZhbCA9IHRoaXMuc3RhcnRPZignZGF5JykudmFsdWVPZigpO1xuXG4gICAgICAgICAgICBpZiAoZXJhc1tpXS5zaW5jZSA8PSB2YWwgJiYgdmFsIDw9IGVyYXNbaV0udW50aWwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZXJhc1tpXS5uYXJyb3c7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZXJhc1tpXS51bnRpbCA8PSB2YWwgJiYgdmFsIDw9IGVyYXNbaV0uc2luY2UpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZXJhc1tpXS5uYXJyb3c7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0RXJhQWJicigpIHtcbiAgICAgICAgdmFyIGksXG4gICAgICAgICAgICBsLFxuICAgICAgICAgICAgdmFsLFxuICAgICAgICAgICAgZXJhcyA9IHRoaXMubG9jYWxlRGF0YSgpLmVyYXMoKTtcbiAgICAgICAgZm9yIChpID0gMCwgbCA9IGVyYXMubGVuZ3RoOyBpIDwgbDsgKytpKSB7XG4gICAgICAgICAgICAvLyB0cnVuY2F0ZSB0aW1lXG4gICAgICAgICAgICB2YWwgPSB0aGlzLnN0YXJ0T2YoJ2RheScpLnZhbHVlT2YoKTtcblxuICAgICAgICAgICAgaWYgKGVyYXNbaV0uc2luY2UgPD0gdmFsICYmIHZhbCA8PSBlcmFzW2ldLnVudGlsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGVyYXNbaV0uYWJicjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChlcmFzW2ldLnVudGlsIDw9IHZhbCAmJiB2YWwgPD0gZXJhc1tpXS5zaW5jZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBlcmFzW2ldLmFiYnI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0RXJhWWVhcigpIHtcbiAgICAgICAgdmFyIGksXG4gICAgICAgICAgICBsLFxuICAgICAgICAgICAgZGlyLFxuICAgICAgICAgICAgdmFsLFxuICAgICAgICAgICAgZXJhcyA9IHRoaXMubG9jYWxlRGF0YSgpLmVyYXMoKTtcbiAgICAgICAgZm9yIChpID0gMCwgbCA9IGVyYXMubGVuZ3RoOyBpIDwgbDsgKytpKSB7XG4gICAgICAgICAgICBkaXIgPSBlcmFzW2ldLnNpbmNlIDw9IGVyYXNbaV0udW50aWwgPyArMSA6IC0xO1xuXG4gICAgICAgICAgICAvLyB0cnVuY2F0ZSB0aW1lXG4gICAgICAgICAgICB2YWwgPSB0aGlzLnN0YXJ0T2YoJ2RheScpLnZhbHVlT2YoKTtcblxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIChlcmFzW2ldLnNpbmNlIDw9IHZhbCAmJiB2YWwgPD0gZXJhc1tpXS51bnRpbCkgfHxcbiAgICAgICAgICAgICAgICAoZXJhc1tpXS51bnRpbCA8PSB2YWwgJiYgdmFsIDw9IGVyYXNbaV0uc2luY2UpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAodGhpcy55ZWFyKCkgLSBob29rcyhlcmFzW2ldLnNpbmNlKS55ZWFyKCkpICogZGlyICtcbiAgICAgICAgICAgICAgICAgICAgZXJhc1tpXS5vZmZzZXRcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMueWVhcigpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGVyYXNOYW1lUmVnZXgoaXNTdHJpY3QpIHtcbiAgICAgICAgaWYgKCFoYXNPd25Qcm9wKHRoaXMsICdfZXJhc05hbWVSZWdleCcpKSB7XG4gICAgICAgICAgICBjb21wdXRlRXJhc1BhcnNlLmNhbGwodGhpcyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlzU3RyaWN0ID8gdGhpcy5fZXJhc05hbWVSZWdleCA6IHRoaXMuX2VyYXNSZWdleDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBlcmFzQWJiclJlZ2V4KGlzU3RyaWN0KSB7XG4gICAgICAgIGlmICghaGFzT3duUHJvcCh0aGlzLCAnX2VyYXNBYmJyUmVnZXgnKSkge1xuICAgICAgICAgICAgY29tcHV0ZUVyYXNQYXJzZS5jYWxsKHRoaXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpc1N0cmljdCA/IHRoaXMuX2VyYXNBYmJyUmVnZXggOiB0aGlzLl9lcmFzUmVnZXg7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZXJhc05hcnJvd1JlZ2V4KGlzU3RyaWN0KSB7XG4gICAgICAgIGlmICghaGFzT3duUHJvcCh0aGlzLCAnX2VyYXNOYXJyb3dSZWdleCcpKSB7XG4gICAgICAgICAgICBjb21wdXRlRXJhc1BhcnNlLmNhbGwodGhpcyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlzU3RyaWN0ID8gdGhpcy5fZXJhc05hcnJvd1JlZ2V4IDogdGhpcy5fZXJhc1JlZ2V4O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1hdGNoRXJhQWJicihpc1N0cmljdCwgbG9jYWxlKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGUuZXJhc0FiYnJSZWdleChpc1N0cmljdCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbWF0Y2hFcmFOYW1lKGlzU3RyaWN0LCBsb2NhbGUpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZS5lcmFzTmFtZVJlZ2V4KGlzU3RyaWN0KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtYXRjaEVyYU5hcnJvdyhpc1N0cmljdCwgbG9jYWxlKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGUuZXJhc05hcnJvd1JlZ2V4KGlzU3RyaWN0KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtYXRjaEVyYVllYXJPcmRpbmFsKGlzU3RyaWN0LCBsb2NhbGUpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZS5fZXJhWWVhck9yZGluYWxSZWdleCB8fCBtYXRjaFVuc2lnbmVkO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNvbXB1dGVFcmFzUGFyc2UoKSB7XG4gICAgICAgIHZhciBhYmJyUGllY2VzID0gW10sXG4gICAgICAgICAgICBuYW1lUGllY2VzID0gW10sXG4gICAgICAgICAgICBuYXJyb3dQaWVjZXMgPSBbXSxcbiAgICAgICAgICAgIG1peGVkUGllY2VzID0gW10sXG4gICAgICAgICAgICBpLFxuICAgICAgICAgICAgbCxcbiAgICAgICAgICAgIGVyYXMgPSB0aGlzLmVyYXMoKTtcblxuICAgICAgICBmb3IgKGkgPSAwLCBsID0gZXJhcy5sZW5ndGg7IGkgPCBsOyArK2kpIHtcbiAgICAgICAgICAgIG5hbWVQaWVjZXMucHVzaChyZWdleEVzY2FwZShlcmFzW2ldLm5hbWUpKTtcbiAgICAgICAgICAgIGFiYnJQaWVjZXMucHVzaChyZWdleEVzY2FwZShlcmFzW2ldLmFiYnIpKTtcbiAgICAgICAgICAgIG5hcnJvd1BpZWNlcy5wdXNoKHJlZ2V4RXNjYXBlKGVyYXNbaV0ubmFycm93KSk7XG5cbiAgICAgICAgICAgIG1peGVkUGllY2VzLnB1c2gocmVnZXhFc2NhcGUoZXJhc1tpXS5uYW1lKSk7XG4gICAgICAgICAgICBtaXhlZFBpZWNlcy5wdXNoKHJlZ2V4RXNjYXBlKGVyYXNbaV0uYWJicikpO1xuICAgICAgICAgICAgbWl4ZWRQaWVjZXMucHVzaChyZWdleEVzY2FwZShlcmFzW2ldLm5hcnJvdykpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fZXJhc1JlZ2V4ID0gbmV3IFJlZ0V4cCgnXignICsgbWl4ZWRQaWVjZXMuam9pbignfCcpICsgJyknLCAnaScpO1xuICAgICAgICB0aGlzLl9lcmFzTmFtZVJlZ2V4ID0gbmV3IFJlZ0V4cCgnXignICsgbmFtZVBpZWNlcy5qb2luKCd8JykgKyAnKScsICdpJyk7XG4gICAgICAgIHRoaXMuX2VyYXNBYmJyUmVnZXggPSBuZXcgUmVnRXhwKCdeKCcgKyBhYmJyUGllY2VzLmpvaW4oJ3wnKSArICcpJywgJ2knKTtcbiAgICAgICAgdGhpcy5fZXJhc05hcnJvd1JlZ2V4ID0gbmV3IFJlZ0V4cChcbiAgICAgICAgICAgICdeKCcgKyBuYXJyb3dQaWVjZXMuam9pbignfCcpICsgJyknLFxuICAgICAgICAgICAgJ2knXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gRk9STUFUVElOR1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oMCwgWydnZycsIDJdLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLndlZWtZZWFyKCkgJSAxMDA7XG4gICAgfSk7XG5cbiAgICBhZGRGb3JtYXRUb2tlbigwLCBbJ0dHJywgMl0sIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNvV2Vla1llYXIoKSAlIDEwMDtcbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIGFkZFdlZWtZZWFyRm9ybWF0VG9rZW4odG9rZW4sIGdldHRlcikge1xuICAgICAgICBhZGRGb3JtYXRUb2tlbigwLCBbdG9rZW4sIHRva2VuLmxlbmd0aF0sIDAsIGdldHRlcik7XG4gICAgfVxuXG4gICAgYWRkV2Vla1llYXJGb3JtYXRUb2tlbignZ2dnZycsICd3ZWVrWWVhcicpO1xuICAgIGFkZFdlZWtZZWFyRm9ybWF0VG9rZW4oJ2dnZ2dnJywgJ3dlZWtZZWFyJyk7XG4gICAgYWRkV2Vla1llYXJGb3JtYXRUb2tlbignR0dHRycsICdpc29XZWVrWWVhcicpO1xuICAgIGFkZFdlZWtZZWFyRm9ybWF0VG9rZW4oJ0dHR0dHJywgJ2lzb1dlZWtZZWFyJyk7XG5cbiAgICAvLyBBTElBU0VTXG5cbiAgICBhZGRVbml0QWxpYXMoJ3dlZWtZZWFyJywgJ2dnJyk7XG4gICAgYWRkVW5pdEFsaWFzKCdpc29XZWVrWWVhcicsICdHRycpO1xuXG4gICAgLy8gUFJJT1JJVFlcblxuICAgIGFkZFVuaXRQcmlvcml0eSgnd2Vla1llYXInLCAxKTtcbiAgICBhZGRVbml0UHJpb3JpdHkoJ2lzb1dlZWtZZWFyJywgMSk7XG5cbiAgICAvLyBQQVJTSU5HXG5cbiAgICBhZGRSZWdleFRva2VuKCdHJywgbWF0Y2hTaWduZWQpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ2cnLCBtYXRjaFNpZ25lZCk7XG4gICAgYWRkUmVnZXhUb2tlbignR0cnLCBtYXRjaDF0bzIsIG1hdGNoMik7XG4gICAgYWRkUmVnZXhUb2tlbignZ2cnLCBtYXRjaDF0bzIsIG1hdGNoMik7XG4gICAgYWRkUmVnZXhUb2tlbignR0dHRycsIG1hdGNoMXRvNCwgbWF0Y2g0KTtcbiAgICBhZGRSZWdleFRva2VuKCdnZ2dnJywgbWF0Y2gxdG80LCBtYXRjaDQpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ0dHR0dHJywgbWF0Y2gxdG82LCBtYXRjaDYpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ2dnZ2dnJywgbWF0Y2gxdG82LCBtYXRjaDYpO1xuXG4gICAgYWRkV2Vla1BhcnNlVG9rZW4oWydnZ2dnJywgJ2dnZ2dnJywgJ0dHR0cnLCAnR0dHR0cnXSwgZnVuY3Rpb24gKFxuICAgICAgICBpbnB1dCxcbiAgICAgICAgd2VlayxcbiAgICAgICAgY29uZmlnLFxuICAgICAgICB0b2tlblxuICAgICkge1xuICAgICAgICB3ZWVrW3Rva2VuLnN1YnN0cigwLCAyKV0gPSB0b0ludChpbnB1dCk7XG4gICAgfSk7XG5cbiAgICBhZGRXZWVrUGFyc2VUb2tlbihbJ2dnJywgJ0dHJ10sIGZ1bmN0aW9uIChpbnB1dCwgd2VlaywgY29uZmlnLCB0b2tlbikge1xuICAgICAgICB3ZWVrW3Rva2VuXSA9IGhvb2tzLnBhcnNlVHdvRGlnaXRZZWFyKGlucHV0KTtcbiAgICB9KTtcblxuICAgIC8vIE1PTUVOVFNcblxuICAgIGZ1bmN0aW9uIGdldFNldFdlZWtZZWFyKGlucHV0KSB7XG4gICAgICAgIHJldHVybiBnZXRTZXRXZWVrWWVhckhlbHBlci5jYWxsKFxuICAgICAgICAgICAgdGhpcyxcbiAgICAgICAgICAgIGlucHV0LFxuICAgICAgICAgICAgdGhpcy53ZWVrKCksXG4gICAgICAgICAgICB0aGlzLndlZWtkYXkoKSxcbiAgICAgICAgICAgIHRoaXMubG9jYWxlRGF0YSgpLl93ZWVrLmRvdyxcbiAgICAgICAgICAgIHRoaXMubG9jYWxlRGF0YSgpLl93ZWVrLmRveVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldFNldElTT1dlZWtZZWFyKGlucHV0KSB7XG4gICAgICAgIHJldHVybiBnZXRTZXRXZWVrWWVhckhlbHBlci5jYWxsKFxuICAgICAgICAgICAgdGhpcyxcbiAgICAgICAgICAgIGlucHV0LFxuICAgICAgICAgICAgdGhpcy5pc29XZWVrKCksXG4gICAgICAgICAgICB0aGlzLmlzb1dlZWtkYXkoKSxcbiAgICAgICAgICAgIDEsXG4gICAgICAgICAgICA0XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0SVNPV2Vla3NJblllYXIoKSB7XG4gICAgICAgIHJldHVybiB3ZWVrc0luWWVhcih0aGlzLnllYXIoKSwgMSwgNCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0SVNPV2Vla3NJbklTT1dlZWtZZWFyKCkge1xuICAgICAgICByZXR1cm4gd2Vla3NJblllYXIodGhpcy5pc29XZWVrWWVhcigpLCAxLCA0KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRXZWVrc0luWWVhcigpIHtcbiAgICAgICAgdmFyIHdlZWtJbmZvID0gdGhpcy5sb2NhbGVEYXRhKCkuX3dlZWs7XG4gICAgICAgIHJldHVybiB3ZWVrc0luWWVhcih0aGlzLnllYXIoKSwgd2Vla0luZm8uZG93LCB3ZWVrSW5mby5kb3kpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldFdlZWtzSW5XZWVrWWVhcigpIHtcbiAgICAgICAgdmFyIHdlZWtJbmZvID0gdGhpcy5sb2NhbGVEYXRhKCkuX3dlZWs7XG4gICAgICAgIHJldHVybiB3ZWVrc0luWWVhcih0aGlzLndlZWtZZWFyKCksIHdlZWtJbmZvLmRvdywgd2Vla0luZm8uZG95KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRTZXRXZWVrWWVhckhlbHBlcihpbnB1dCwgd2Vlaywgd2Vla2RheSwgZG93LCBkb3kpIHtcbiAgICAgICAgdmFyIHdlZWtzVGFyZ2V0O1xuICAgICAgICBpZiAoaW5wdXQgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHdlZWtPZlllYXIodGhpcywgZG93LCBkb3kpLnllYXI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB3ZWVrc1RhcmdldCA9IHdlZWtzSW5ZZWFyKGlucHV0LCBkb3csIGRveSk7XG4gICAgICAgICAgICBpZiAod2VlayA+IHdlZWtzVGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgd2VlayA9IHdlZWtzVGFyZ2V0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHNldFdlZWtBbGwuY2FsbCh0aGlzLCBpbnB1dCwgd2Vlaywgd2Vla2RheSwgZG93LCBkb3kpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc2V0V2Vla0FsbCh3ZWVrWWVhciwgd2Vlaywgd2Vla2RheSwgZG93LCBkb3kpIHtcbiAgICAgICAgdmFyIGRheU9mWWVhckRhdGEgPSBkYXlPZlllYXJGcm9tV2Vla3Mod2Vla1llYXIsIHdlZWssIHdlZWtkYXksIGRvdywgZG95KSxcbiAgICAgICAgICAgIGRhdGUgPSBjcmVhdGVVVENEYXRlKGRheU9mWWVhckRhdGEueWVhciwgMCwgZGF5T2ZZZWFyRGF0YS5kYXlPZlllYXIpO1xuXG4gICAgICAgIHRoaXMueWVhcihkYXRlLmdldFVUQ0Z1bGxZZWFyKCkpO1xuICAgICAgICB0aGlzLm1vbnRoKGRhdGUuZ2V0VVRDTW9udGgoKSk7XG4gICAgICAgIHRoaXMuZGF0ZShkYXRlLmdldFVUQ0RhdGUoKSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8vIEZPUk1BVFRJTkdcblxuICAgIGFkZEZvcm1hdFRva2VuKCdRJywgMCwgJ1FvJywgJ3F1YXJ0ZXInKTtcblxuICAgIC8vIEFMSUFTRVNcblxuICAgIGFkZFVuaXRBbGlhcygncXVhcnRlcicsICdRJyk7XG5cbiAgICAvLyBQUklPUklUWVxuXG4gICAgYWRkVW5pdFByaW9yaXR5KCdxdWFydGVyJywgNyk7XG5cbiAgICAvLyBQQVJTSU5HXG5cbiAgICBhZGRSZWdleFRva2VuKCdRJywgbWF0Y2gxKTtcbiAgICBhZGRQYXJzZVRva2VuKCdRJywgZnVuY3Rpb24gKGlucHV0LCBhcnJheSkge1xuICAgICAgICBhcnJheVtNT05USF0gPSAodG9JbnQoaW5wdXQpIC0gMSkgKiAzO1xuICAgIH0pO1xuXG4gICAgLy8gTU9NRU5UU1xuXG4gICAgZnVuY3Rpb24gZ2V0U2V0UXVhcnRlcihpbnB1dCkge1xuICAgICAgICByZXR1cm4gaW5wdXQgPT0gbnVsbFxuICAgICAgICAgICAgPyBNYXRoLmNlaWwoKHRoaXMubW9udGgoKSArIDEpIC8gMylcbiAgICAgICAgICAgIDogdGhpcy5tb250aCgoaW5wdXQgLSAxKSAqIDMgKyAodGhpcy5tb250aCgpICUgMykpO1xuICAgIH1cblxuICAgIC8vIEZPUk1BVFRJTkdcblxuICAgIGFkZEZvcm1hdFRva2VuKCdEJywgWydERCcsIDJdLCAnRG8nLCAnZGF0ZScpO1xuXG4gICAgLy8gQUxJQVNFU1xuXG4gICAgYWRkVW5pdEFsaWFzKCdkYXRlJywgJ0QnKTtcblxuICAgIC8vIFBSSU9SSVRZXG4gICAgYWRkVW5pdFByaW9yaXR5KCdkYXRlJywgOSk7XG5cbiAgICAvLyBQQVJTSU5HXG5cbiAgICBhZGRSZWdleFRva2VuKCdEJywgbWF0Y2gxdG8yKTtcbiAgICBhZGRSZWdleFRva2VuKCdERCcsIG1hdGNoMXRvMiwgbWF0Y2gyKTtcbiAgICBhZGRSZWdleFRva2VuKCdEbycsIGZ1bmN0aW9uIChpc1N0cmljdCwgbG9jYWxlKSB7XG4gICAgICAgIC8vIFRPRE86IFJlbW92ZSBcIm9yZGluYWxQYXJzZVwiIGZhbGxiYWNrIGluIG5leHQgbWFqb3IgcmVsZWFzZS5cbiAgICAgICAgcmV0dXJuIGlzU3RyaWN0XG4gICAgICAgICAgICA/IGxvY2FsZS5fZGF5T2ZNb250aE9yZGluYWxQYXJzZSB8fCBsb2NhbGUuX29yZGluYWxQYXJzZVxuICAgICAgICAgICAgOiBsb2NhbGUuX2RheU9mTW9udGhPcmRpbmFsUGFyc2VMZW5pZW50O1xuICAgIH0pO1xuXG4gICAgYWRkUGFyc2VUb2tlbihbJ0QnLCAnREQnXSwgREFURSk7XG4gICAgYWRkUGFyc2VUb2tlbignRG8nLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5KSB7XG4gICAgICAgIGFycmF5W0RBVEVdID0gdG9JbnQoaW5wdXQubWF0Y2gobWF0Y2gxdG8yKVswXSk7XG4gICAgfSk7XG5cbiAgICAvLyBNT01FTlRTXG5cbiAgICB2YXIgZ2V0U2V0RGF5T2ZNb250aCA9IG1ha2VHZXRTZXQoJ0RhdGUnLCB0cnVlKTtcblxuICAgIC8vIEZPUk1BVFRJTkdcblxuICAgIGFkZEZvcm1hdFRva2VuKCdEREQnLCBbJ0REREQnLCAzXSwgJ0RERG8nLCAnZGF5T2ZZZWFyJyk7XG5cbiAgICAvLyBBTElBU0VTXG5cbiAgICBhZGRVbml0QWxpYXMoJ2RheU9mWWVhcicsICdEREQnKTtcblxuICAgIC8vIFBSSU9SSVRZXG4gICAgYWRkVW5pdFByaW9yaXR5KCdkYXlPZlllYXInLCA0KTtcblxuICAgIC8vIFBBUlNJTkdcblxuICAgIGFkZFJlZ2V4VG9rZW4oJ0RERCcsIG1hdGNoMXRvMyk7XG4gICAgYWRkUmVnZXhUb2tlbignRERERCcsIG1hdGNoMyk7XG4gICAgYWRkUGFyc2VUb2tlbihbJ0RERCcsICdEREREJ10sIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXksIGNvbmZpZykge1xuICAgICAgICBjb25maWcuX2RheU9mWWVhciA9IHRvSW50KGlucHV0KTtcbiAgICB9KTtcblxuICAgIC8vIEhFTFBFUlNcblxuICAgIC8vIE1PTUVOVFNcblxuICAgIGZ1bmN0aW9uIGdldFNldERheU9mWWVhcihpbnB1dCkge1xuICAgICAgICB2YXIgZGF5T2ZZZWFyID1cbiAgICAgICAgICAgIE1hdGgucm91bmQoXG4gICAgICAgICAgICAgICAgKHRoaXMuY2xvbmUoKS5zdGFydE9mKCdkYXknKSAtIHRoaXMuY2xvbmUoKS5zdGFydE9mKCd5ZWFyJykpIC8gODY0ZTVcbiAgICAgICAgICAgICkgKyAxO1xuICAgICAgICByZXR1cm4gaW5wdXQgPT0gbnVsbCA/IGRheU9mWWVhciA6IHRoaXMuYWRkKGlucHV0IC0gZGF5T2ZZZWFyLCAnZCcpO1xuICAgIH1cblxuICAgIC8vIEZPUk1BVFRJTkdcblxuICAgIGFkZEZvcm1hdFRva2VuKCdtJywgWydtbScsIDJdLCAwLCAnbWludXRlJyk7XG5cbiAgICAvLyBBTElBU0VTXG5cbiAgICBhZGRVbml0QWxpYXMoJ21pbnV0ZScsICdtJyk7XG5cbiAgICAvLyBQUklPUklUWVxuXG4gICAgYWRkVW5pdFByaW9yaXR5KCdtaW51dGUnLCAxNCk7XG5cbiAgICAvLyBQQVJTSU5HXG5cbiAgICBhZGRSZWdleFRva2VuKCdtJywgbWF0Y2gxdG8yKTtcbiAgICBhZGRSZWdleFRva2VuKCdtbScsIG1hdGNoMXRvMiwgbWF0Y2gyKTtcbiAgICBhZGRQYXJzZVRva2VuKFsnbScsICdtbSddLCBNSU5VVEUpO1xuXG4gICAgLy8gTU9NRU5UU1xuXG4gICAgdmFyIGdldFNldE1pbnV0ZSA9IG1ha2VHZXRTZXQoJ01pbnV0ZXMnLCBmYWxzZSk7XG5cbiAgICAvLyBGT1JNQVRUSU5HXG5cbiAgICBhZGRGb3JtYXRUb2tlbigncycsIFsnc3MnLCAyXSwgMCwgJ3NlY29uZCcpO1xuXG4gICAgLy8gQUxJQVNFU1xuXG4gICAgYWRkVW5pdEFsaWFzKCdzZWNvbmQnLCAncycpO1xuXG4gICAgLy8gUFJJT1JJVFlcblxuICAgIGFkZFVuaXRQcmlvcml0eSgnc2Vjb25kJywgMTUpO1xuXG4gICAgLy8gUEFSU0lOR1xuXG4gICAgYWRkUmVnZXhUb2tlbigncycsIG1hdGNoMXRvMik7XG4gICAgYWRkUmVnZXhUb2tlbignc3MnLCBtYXRjaDF0bzIsIG1hdGNoMik7XG4gICAgYWRkUGFyc2VUb2tlbihbJ3MnLCAnc3MnXSwgU0VDT05EKTtcblxuICAgIC8vIE1PTUVOVFNcblxuICAgIHZhciBnZXRTZXRTZWNvbmQgPSBtYWtlR2V0U2V0KCdTZWNvbmRzJywgZmFsc2UpO1xuXG4gICAgLy8gRk9STUFUVElOR1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ1MnLCAwLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB+fih0aGlzLm1pbGxpc2Vjb25kKCkgLyAxMDApO1xuICAgIH0pO1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oMCwgWydTUycsIDJdLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB+fih0aGlzLm1pbGxpc2Vjb25kKCkgLyAxMCk7XG4gICAgfSk7XG5cbiAgICBhZGRGb3JtYXRUb2tlbigwLCBbJ1NTUycsIDNdLCAwLCAnbWlsbGlzZWNvbmQnKTtcbiAgICBhZGRGb3JtYXRUb2tlbigwLCBbJ1NTU1MnLCA0XSwgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5taWxsaXNlY29uZCgpICogMTA7XG4gICAgfSk7XG4gICAgYWRkRm9ybWF0VG9rZW4oMCwgWydTU1NTUycsIDVdLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1pbGxpc2Vjb25kKCkgKiAxMDA7XG4gICAgfSk7XG4gICAgYWRkRm9ybWF0VG9rZW4oMCwgWydTU1NTU1MnLCA2XSwgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5taWxsaXNlY29uZCgpICogMTAwMDtcbiAgICB9KTtcbiAgICBhZGRGb3JtYXRUb2tlbigwLCBbJ1NTU1NTU1MnLCA3XSwgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5taWxsaXNlY29uZCgpICogMTAwMDA7XG4gICAgfSk7XG4gICAgYWRkRm9ybWF0VG9rZW4oMCwgWydTU1NTU1NTUycsIDhdLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1pbGxpc2Vjb25kKCkgKiAxMDAwMDA7XG4gICAgfSk7XG4gICAgYWRkRm9ybWF0VG9rZW4oMCwgWydTU1NTU1NTU1MnLCA5XSwgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5taWxsaXNlY29uZCgpICogMTAwMDAwMDtcbiAgICB9KTtcblxuICAgIC8vIEFMSUFTRVNcblxuICAgIGFkZFVuaXRBbGlhcygnbWlsbGlzZWNvbmQnLCAnbXMnKTtcblxuICAgIC8vIFBSSU9SSVRZXG5cbiAgICBhZGRVbml0UHJpb3JpdHkoJ21pbGxpc2Vjb25kJywgMTYpO1xuXG4gICAgLy8gUEFSU0lOR1xuXG4gICAgYWRkUmVnZXhUb2tlbignUycsIG1hdGNoMXRvMywgbWF0Y2gxKTtcbiAgICBhZGRSZWdleFRva2VuKCdTUycsIG1hdGNoMXRvMywgbWF0Y2gyKTtcbiAgICBhZGRSZWdleFRva2VuKCdTU1MnLCBtYXRjaDF0bzMsIG1hdGNoMyk7XG5cbiAgICB2YXIgdG9rZW4sIGdldFNldE1pbGxpc2Vjb25kO1xuICAgIGZvciAodG9rZW4gPSAnU1NTUyc7IHRva2VuLmxlbmd0aCA8PSA5OyB0b2tlbiArPSAnUycpIHtcbiAgICAgICAgYWRkUmVnZXhUb2tlbih0b2tlbiwgbWF0Y2hVbnNpZ25lZCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VNcyhpbnB1dCwgYXJyYXkpIHtcbiAgICAgICAgYXJyYXlbTUlMTElTRUNPTkRdID0gdG9JbnQoKCcwLicgKyBpbnB1dCkgKiAxMDAwKTtcbiAgICB9XG5cbiAgICBmb3IgKHRva2VuID0gJ1MnOyB0b2tlbi5sZW5ndGggPD0gOTsgdG9rZW4gKz0gJ1MnKSB7XG4gICAgICAgIGFkZFBhcnNlVG9rZW4odG9rZW4sIHBhcnNlTXMpO1xuICAgIH1cblxuICAgIGdldFNldE1pbGxpc2Vjb25kID0gbWFrZUdldFNldCgnTWlsbGlzZWNvbmRzJywgZmFsc2UpO1xuXG4gICAgLy8gRk9STUFUVElOR1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ3onLCAwLCAwLCAnem9uZUFiYnInKTtcbiAgICBhZGRGb3JtYXRUb2tlbignenonLCAwLCAwLCAnem9uZU5hbWUnKTtcblxuICAgIC8vIE1PTUVOVFNcblxuICAgIGZ1bmN0aW9uIGdldFpvbmVBYmJyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNVVEMgPyAnVVRDJyA6ICcnO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldFpvbmVOYW1lKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNVVEMgPyAnQ29vcmRpbmF0ZWQgVW5pdmVyc2FsIFRpbWUnIDogJyc7XG4gICAgfVxuXG4gICAgdmFyIHByb3RvID0gTW9tZW50LnByb3RvdHlwZTtcblxuICAgIHByb3RvLmFkZCA9IGFkZDtcbiAgICBwcm90by5jYWxlbmRhciA9IGNhbGVuZGFyJDE7XG4gICAgcHJvdG8uY2xvbmUgPSBjbG9uZTtcbiAgICBwcm90by5kaWZmID0gZGlmZjtcbiAgICBwcm90by5lbmRPZiA9IGVuZE9mO1xuICAgIHByb3RvLmZvcm1hdCA9IGZvcm1hdDtcbiAgICBwcm90by5mcm9tID0gZnJvbTtcbiAgICBwcm90by5mcm9tTm93ID0gZnJvbU5vdztcbiAgICBwcm90by50byA9IHRvO1xuICAgIHByb3RvLnRvTm93ID0gdG9Ob3c7XG4gICAgcHJvdG8uZ2V0ID0gc3RyaW5nR2V0O1xuICAgIHByb3RvLmludmFsaWRBdCA9IGludmFsaWRBdDtcbiAgICBwcm90by5pc0FmdGVyID0gaXNBZnRlcjtcbiAgICBwcm90by5pc0JlZm9yZSA9IGlzQmVmb3JlO1xuICAgIHByb3RvLmlzQmV0d2VlbiA9IGlzQmV0d2VlbjtcbiAgICBwcm90by5pc1NhbWUgPSBpc1NhbWU7XG4gICAgcHJvdG8uaXNTYW1lT3JBZnRlciA9IGlzU2FtZU9yQWZ0ZXI7XG4gICAgcHJvdG8uaXNTYW1lT3JCZWZvcmUgPSBpc1NhbWVPckJlZm9yZTtcbiAgICBwcm90by5pc1ZhbGlkID0gaXNWYWxpZCQyO1xuICAgIHByb3RvLmxhbmcgPSBsYW5nO1xuICAgIHByb3RvLmxvY2FsZSA9IGxvY2FsZTtcbiAgICBwcm90by5sb2NhbGVEYXRhID0gbG9jYWxlRGF0YTtcbiAgICBwcm90by5tYXggPSBwcm90b3R5cGVNYXg7XG4gICAgcHJvdG8ubWluID0gcHJvdG90eXBlTWluO1xuICAgIHByb3RvLnBhcnNpbmdGbGFncyA9IHBhcnNpbmdGbGFncztcbiAgICBwcm90by5zZXQgPSBzdHJpbmdTZXQ7XG4gICAgcHJvdG8uc3RhcnRPZiA9IHN0YXJ0T2Y7XG4gICAgcHJvdG8uc3VidHJhY3QgPSBzdWJ0cmFjdDtcbiAgICBwcm90by50b0FycmF5ID0gdG9BcnJheTtcbiAgICBwcm90by50b09iamVjdCA9IHRvT2JqZWN0O1xuICAgIHByb3RvLnRvRGF0ZSA9IHRvRGF0ZTtcbiAgICBwcm90by50b0lTT1N0cmluZyA9IHRvSVNPU3RyaW5nO1xuICAgIHByb3RvLmluc3BlY3QgPSBpbnNwZWN0O1xuICAgIGlmICh0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wuZm9yICE9IG51bGwpIHtcbiAgICAgICAgcHJvdG9bU3ltYm9sLmZvcignbm9kZWpzLnV0aWwuaW5zcGVjdC5jdXN0b20nKV0gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gJ01vbWVudDwnICsgdGhpcy5mb3JtYXQoKSArICc+JztcbiAgICAgICAgfTtcbiAgICB9XG4gICAgcHJvdG8udG9KU09OID0gdG9KU09OO1xuICAgIHByb3RvLnRvU3RyaW5nID0gdG9TdHJpbmc7XG4gICAgcHJvdG8udW5peCA9IHVuaXg7XG4gICAgcHJvdG8udmFsdWVPZiA9IHZhbHVlT2Y7XG4gICAgcHJvdG8uY3JlYXRpb25EYXRhID0gY3JlYXRpb25EYXRhO1xuICAgIHByb3RvLmVyYU5hbWUgPSBnZXRFcmFOYW1lO1xuICAgIHByb3RvLmVyYU5hcnJvdyA9IGdldEVyYU5hcnJvdztcbiAgICBwcm90by5lcmFBYmJyID0gZ2V0RXJhQWJicjtcbiAgICBwcm90by5lcmFZZWFyID0gZ2V0RXJhWWVhcjtcbiAgICBwcm90by55ZWFyID0gZ2V0U2V0WWVhcjtcbiAgICBwcm90by5pc0xlYXBZZWFyID0gZ2V0SXNMZWFwWWVhcjtcbiAgICBwcm90by53ZWVrWWVhciA9IGdldFNldFdlZWtZZWFyO1xuICAgIHByb3RvLmlzb1dlZWtZZWFyID0gZ2V0U2V0SVNPV2Vla1llYXI7XG4gICAgcHJvdG8ucXVhcnRlciA9IHByb3RvLnF1YXJ0ZXJzID0gZ2V0U2V0UXVhcnRlcjtcbiAgICBwcm90by5tb250aCA9IGdldFNldE1vbnRoO1xuICAgIHByb3RvLmRheXNJbk1vbnRoID0gZ2V0RGF5c0luTW9udGg7XG4gICAgcHJvdG8ud2VlayA9IHByb3RvLndlZWtzID0gZ2V0U2V0V2VlaztcbiAgICBwcm90by5pc29XZWVrID0gcHJvdG8uaXNvV2Vla3MgPSBnZXRTZXRJU09XZWVrO1xuICAgIHByb3RvLndlZWtzSW5ZZWFyID0gZ2V0V2Vla3NJblllYXI7XG4gICAgcHJvdG8ud2Vla3NJbldlZWtZZWFyID0gZ2V0V2Vla3NJbldlZWtZZWFyO1xuICAgIHByb3RvLmlzb1dlZWtzSW5ZZWFyID0gZ2V0SVNPV2Vla3NJblllYXI7XG4gICAgcHJvdG8uaXNvV2Vla3NJbklTT1dlZWtZZWFyID0gZ2V0SVNPV2Vla3NJbklTT1dlZWtZZWFyO1xuICAgIHByb3RvLmRhdGUgPSBnZXRTZXREYXlPZk1vbnRoO1xuICAgIHByb3RvLmRheSA9IHByb3RvLmRheXMgPSBnZXRTZXREYXlPZldlZWs7XG4gICAgcHJvdG8ud2Vla2RheSA9IGdldFNldExvY2FsZURheU9mV2VlaztcbiAgICBwcm90by5pc29XZWVrZGF5ID0gZ2V0U2V0SVNPRGF5T2ZXZWVrO1xuICAgIHByb3RvLmRheU9mWWVhciA9IGdldFNldERheU9mWWVhcjtcbiAgICBwcm90by5ob3VyID0gcHJvdG8uaG91cnMgPSBnZXRTZXRIb3VyO1xuICAgIHByb3RvLm1pbnV0ZSA9IHByb3RvLm1pbnV0ZXMgPSBnZXRTZXRNaW51dGU7XG4gICAgcHJvdG8uc2Vjb25kID0gcHJvdG8uc2Vjb25kcyA9IGdldFNldFNlY29uZDtcbiAgICBwcm90by5taWxsaXNlY29uZCA9IHByb3RvLm1pbGxpc2Vjb25kcyA9IGdldFNldE1pbGxpc2Vjb25kO1xuICAgIHByb3RvLnV0Y09mZnNldCA9IGdldFNldE9mZnNldDtcbiAgICBwcm90by51dGMgPSBzZXRPZmZzZXRUb1VUQztcbiAgICBwcm90by5sb2NhbCA9IHNldE9mZnNldFRvTG9jYWw7XG4gICAgcHJvdG8ucGFyc2Vab25lID0gc2V0T2Zmc2V0VG9QYXJzZWRPZmZzZXQ7XG4gICAgcHJvdG8uaGFzQWxpZ25lZEhvdXJPZmZzZXQgPSBoYXNBbGlnbmVkSG91ck9mZnNldDtcbiAgICBwcm90by5pc0RTVCA9IGlzRGF5bGlnaHRTYXZpbmdUaW1lO1xuICAgIHByb3RvLmlzTG9jYWwgPSBpc0xvY2FsO1xuICAgIHByb3RvLmlzVXRjT2Zmc2V0ID0gaXNVdGNPZmZzZXQ7XG4gICAgcHJvdG8uaXNVdGMgPSBpc1V0YztcbiAgICBwcm90by5pc1VUQyA9IGlzVXRjO1xuICAgIHByb3RvLnpvbmVBYmJyID0gZ2V0Wm9uZUFiYnI7XG4gICAgcHJvdG8uem9uZU5hbWUgPSBnZXRab25lTmFtZTtcbiAgICBwcm90by5kYXRlcyA9IGRlcHJlY2F0ZShcbiAgICAgICAgJ2RhdGVzIGFjY2Vzc29yIGlzIGRlcHJlY2F0ZWQuIFVzZSBkYXRlIGluc3RlYWQuJyxcbiAgICAgICAgZ2V0U2V0RGF5T2ZNb250aFxuICAgICk7XG4gICAgcHJvdG8ubW9udGhzID0gZGVwcmVjYXRlKFxuICAgICAgICAnbW9udGhzIGFjY2Vzc29yIGlzIGRlcHJlY2F0ZWQuIFVzZSBtb250aCBpbnN0ZWFkJyxcbiAgICAgICAgZ2V0U2V0TW9udGhcbiAgICApO1xuICAgIHByb3RvLnllYXJzID0gZGVwcmVjYXRlKFxuICAgICAgICAneWVhcnMgYWNjZXNzb3IgaXMgZGVwcmVjYXRlZC4gVXNlIHllYXIgaW5zdGVhZCcsXG4gICAgICAgIGdldFNldFllYXJcbiAgICApO1xuICAgIHByb3RvLnpvbmUgPSBkZXByZWNhdGUoXG4gICAgICAgICdtb21lbnQoKS56b25lIGlzIGRlcHJlY2F0ZWQsIHVzZSBtb21lbnQoKS51dGNPZmZzZXQgaW5zdGVhZC4gaHR0cDovL21vbWVudGpzLmNvbS9ndWlkZXMvIy93YXJuaW5ncy96b25lLycsXG4gICAgICAgIGdldFNldFpvbmVcbiAgICApO1xuICAgIHByb3RvLmlzRFNUU2hpZnRlZCA9IGRlcHJlY2F0ZShcbiAgICAgICAgJ2lzRFNUU2hpZnRlZCBpcyBkZXByZWNhdGVkLiBTZWUgaHR0cDovL21vbWVudGpzLmNvbS9ndWlkZXMvIy93YXJuaW5ncy9kc3Qtc2hpZnRlZC8gZm9yIG1vcmUgaW5mb3JtYXRpb24nLFxuICAgICAgICBpc0RheWxpZ2h0U2F2aW5nVGltZVNoaWZ0ZWRcbiAgICApO1xuXG4gICAgZnVuY3Rpb24gY3JlYXRlVW5peChpbnB1dCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlTG9jYWwoaW5wdXQgKiAxMDAwKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjcmVhdGVJblpvbmUoKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVMb2NhbC5hcHBseShudWxsLCBhcmd1bWVudHMpLnBhcnNlWm9uZSgpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHByZVBhcnNlUG9zdEZvcm1hdChzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHN0cmluZztcbiAgICB9XG5cbiAgICB2YXIgcHJvdG8kMSA9IExvY2FsZS5wcm90b3R5cGU7XG5cbiAgICBwcm90byQxLmNhbGVuZGFyID0gY2FsZW5kYXI7XG4gICAgcHJvdG8kMS5sb25nRGF0ZUZvcm1hdCA9IGxvbmdEYXRlRm9ybWF0O1xuICAgIHByb3RvJDEuaW52YWxpZERhdGUgPSBpbnZhbGlkRGF0ZTtcbiAgICBwcm90byQxLm9yZGluYWwgPSBvcmRpbmFsO1xuICAgIHByb3RvJDEucHJlcGFyc2UgPSBwcmVQYXJzZVBvc3RGb3JtYXQ7XG4gICAgcHJvdG8kMS5wb3N0Zm9ybWF0ID0gcHJlUGFyc2VQb3N0Rm9ybWF0O1xuICAgIHByb3RvJDEucmVsYXRpdmVUaW1lID0gcmVsYXRpdmVUaW1lO1xuICAgIHByb3RvJDEucGFzdEZ1dHVyZSA9IHBhc3RGdXR1cmU7XG4gICAgcHJvdG8kMS5zZXQgPSBzZXQ7XG4gICAgcHJvdG8kMS5lcmFzID0gbG9jYWxlRXJhcztcbiAgICBwcm90byQxLmVyYXNQYXJzZSA9IGxvY2FsZUVyYXNQYXJzZTtcbiAgICBwcm90byQxLmVyYXNDb252ZXJ0WWVhciA9IGxvY2FsZUVyYXNDb252ZXJ0WWVhcjtcbiAgICBwcm90byQxLmVyYXNBYmJyUmVnZXggPSBlcmFzQWJiclJlZ2V4O1xuICAgIHByb3RvJDEuZXJhc05hbWVSZWdleCA9IGVyYXNOYW1lUmVnZXg7XG4gICAgcHJvdG8kMS5lcmFzTmFycm93UmVnZXggPSBlcmFzTmFycm93UmVnZXg7XG5cbiAgICBwcm90byQxLm1vbnRocyA9IGxvY2FsZU1vbnRocztcbiAgICBwcm90byQxLm1vbnRoc1Nob3J0ID0gbG9jYWxlTW9udGhzU2hvcnQ7XG4gICAgcHJvdG8kMS5tb250aHNQYXJzZSA9IGxvY2FsZU1vbnRoc1BhcnNlO1xuICAgIHByb3RvJDEubW9udGhzUmVnZXggPSBtb250aHNSZWdleDtcbiAgICBwcm90byQxLm1vbnRoc1Nob3J0UmVnZXggPSBtb250aHNTaG9ydFJlZ2V4O1xuICAgIHByb3RvJDEud2VlayA9IGxvY2FsZVdlZWs7XG4gICAgcHJvdG8kMS5maXJzdERheU9mWWVhciA9IGxvY2FsZUZpcnN0RGF5T2ZZZWFyO1xuICAgIHByb3RvJDEuZmlyc3REYXlPZldlZWsgPSBsb2NhbGVGaXJzdERheU9mV2VlaztcblxuICAgIHByb3RvJDEud2Vla2RheXMgPSBsb2NhbGVXZWVrZGF5cztcbiAgICBwcm90byQxLndlZWtkYXlzTWluID0gbG9jYWxlV2Vla2RheXNNaW47XG4gICAgcHJvdG8kMS53ZWVrZGF5c1Nob3J0ID0gbG9jYWxlV2Vla2RheXNTaG9ydDtcbiAgICBwcm90byQxLndlZWtkYXlzUGFyc2UgPSBsb2NhbGVXZWVrZGF5c1BhcnNlO1xuXG4gICAgcHJvdG8kMS53ZWVrZGF5c1JlZ2V4ID0gd2Vla2RheXNSZWdleDtcbiAgICBwcm90byQxLndlZWtkYXlzU2hvcnRSZWdleCA9IHdlZWtkYXlzU2hvcnRSZWdleDtcbiAgICBwcm90byQxLndlZWtkYXlzTWluUmVnZXggPSB3ZWVrZGF5c01pblJlZ2V4O1xuXG4gICAgcHJvdG8kMS5pc1BNID0gbG9jYWxlSXNQTTtcbiAgICBwcm90byQxLm1lcmlkaWVtID0gbG9jYWxlTWVyaWRpZW07XG5cbiAgICBmdW5jdGlvbiBnZXQkMShmb3JtYXQsIGluZGV4LCBmaWVsZCwgc2V0dGVyKSB7XG4gICAgICAgIHZhciBsb2NhbGUgPSBnZXRMb2NhbGUoKSxcbiAgICAgICAgICAgIHV0YyA9IGNyZWF0ZVVUQygpLnNldChzZXR0ZXIsIGluZGV4KTtcbiAgICAgICAgcmV0dXJuIGxvY2FsZVtmaWVsZF0odXRjLCBmb3JtYXQpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxpc3RNb250aHNJbXBsKGZvcm1hdCwgaW5kZXgsIGZpZWxkKSB7XG4gICAgICAgIGlmIChpc051bWJlcihmb3JtYXQpKSB7XG4gICAgICAgICAgICBpbmRleCA9IGZvcm1hdDtcbiAgICAgICAgICAgIGZvcm1hdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvcm1hdCA9IGZvcm1hdCB8fCAnJztcblxuICAgICAgICBpZiAoaW5kZXggIT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIGdldCQxKGZvcm1hdCwgaW5kZXgsIGZpZWxkLCAnbW9udGgnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBpLFxuICAgICAgICAgICAgb3V0ID0gW107XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCAxMjsgaSsrKSB7XG4gICAgICAgICAgICBvdXRbaV0gPSBnZXQkMShmb3JtYXQsIGksIGZpZWxkLCAnbW9udGgnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb3V0O1xuICAgIH1cblxuICAgIC8vICgpXG4gICAgLy8gKDUpXG4gICAgLy8gKGZtdCwgNSlcbiAgICAvLyAoZm10KVxuICAgIC8vICh0cnVlKVxuICAgIC8vICh0cnVlLCA1KVxuICAgIC8vICh0cnVlLCBmbXQsIDUpXG4gICAgLy8gKHRydWUsIGZtdClcbiAgICBmdW5jdGlvbiBsaXN0V2Vla2RheXNJbXBsKGxvY2FsZVNvcnRlZCwgZm9ybWF0LCBpbmRleCwgZmllbGQpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBsb2NhbGVTb3J0ZWQgPT09ICdib29sZWFuJykge1xuICAgICAgICAgICAgaWYgKGlzTnVtYmVyKGZvcm1hdCkpIHtcbiAgICAgICAgICAgICAgICBpbmRleCA9IGZvcm1hdDtcbiAgICAgICAgICAgICAgICBmb3JtYXQgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGZvcm1hdCA9IGZvcm1hdCB8fCAnJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGZvcm1hdCA9IGxvY2FsZVNvcnRlZDtcbiAgICAgICAgICAgIGluZGV4ID0gZm9ybWF0O1xuICAgICAgICAgICAgbG9jYWxlU29ydGVkID0gZmFsc2U7XG5cbiAgICAgICAgICAgIGlmIChpc051bWJlcihmb3JtYXQpKSB7XG4gICAgICAgICAgICAgICAgaW5kZXggPSBmb3JtYXQ7XG4gICAgICAgICAgICAgICAgZm9ybWF0ID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmb3JtYXQgPSBmb3JtYXQgfHwgJyc7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgbG9jYWxlID0gZ2V0TG9jYWxlKCksXG4gICAgICAgICAgICBzaGlmdCA9IGxvY2FsZVNvcnRlZCA/IGxvY2FsZS5fd2Vlay5kb3cgOiAwLFxuICAgICAgICAgICAgaSxcbiAgICAgICAgICAgIG91dCA9IFtdO1xuXG4gICAgICAgIGlmIChpbmRleCAhPSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0JDEoZm9ybWF0LCAoaW5kZXggKyBzaGlmdCkgJSA3LCBmaWVsZCwgJ2RheScpO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChpID0gMDsgaSA8IDc7IGkrKykge1xuICAgICAgICAgICAgb3V0W2ldID0gZ2V0JDEoZm9ybWF0LCAoaSArIHNoaWZ0KSAlIDcsIGZpZWxkLCAnZGF5Jyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG91dDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsaXN0TW9udGhzKGZvcm1hdCwgaW5kZXgpIHtcbiAgICAgICAgcmV0dXJuIGxpc3RNb250aHNJbXBsKGZvcm1hdCwgaW5kZXgsICdtb250aHMnKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsaXN0TW9udGhzU2hvcnQoZm9ybWF0LCBpbmRleCkge1xuICAgICAgICByZXR1cm4gbGlzdE1vbnRoc0ltcGwoZm9ybWF0LCBpbmRleCwgJ21vbnRoc1Nob3J0Jyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbGlzdFdlZWtkYXlzKGxvY2FsZVNvcnRlZCwgZm9ybWF0LCBpbmRleCkge1xuICAgICAgICByZXR1cm4gbGlzdFdlZWtkYXlzSW1wbChsb2NhbGVTb3J0ZWQsIGZvcm1hdCwgaW5kZXgsICd3ZWVrZGF5cycpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxpc3RXZWVrZGF5c1Nob3J0KGxvY2FsZVNvcnRlZCwgZm9ybWF0LCBpbmRleCkge1xuICAgICAgICByZXR1cm4gbGlzdFdlZWtkYXlzSW1wbChsb2NhbGVTb3J0ZWQsIGZvcm1hdCwgaW5kZXgsICd3ZWVrZGF5c1Nob3J0Jyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbGlzdFdlZWtkYXlzTWluKGxvY2FsZVNvcnRlZCwgZm9ybWF0LCBpbmRleCkge1xuICAgICAgICByZXR1cm4gbGlzdFdlZWtkYXlzSW1wbChsb2NhbGVTb3J0ZWQsIGZvcm1hdCwgaW5kZXgsICd3ZWVrZGF5c01pbicpO1xuICAgIH1cblxuICAgIGdldFNldEdsb2JhbExvY2FsZSgnZW4nLCB7XG4gICAgICAgIGVyYXM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzaW5jZTogJzAwMDEtMDEtMDEnLFxuICAgICAgICAgICAgICAgIHVudGlsOiArSW5maW5pdHksXG4gICAgICAgICAgICAgICAgb2Zmc2V0OiAxLFxuICAgICAgICAgICAgICAgIG5hbWU6ICdBbm5vIERvbWluaScsXG4gICAgICAgICAgICAgICAgbmFycm93OiAnQUQnLFxuICAgICAgICAgICAgICAgIGFiYnI6ICdBRCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNpbmNlOiAnMDAwMC0xMi0zMScsXG4gICAgICAgICAgICAgICAgdW50aWw6IC1JbmZpbml0eSxcbiAgICAgICAgICAgICAgICBvZmZzZXQ6IDEsXG4gICAgICAgICAgICAgICAgbmFtZTogJ0JlZm9yZSBDaHJpc3QnLFxuICAgICAgICAgICAgICAgIG5hcnJvdzogJ0JDJyxcbiAgICAgICAgICAgICAgICBhYmJyOiAnQkMnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9KHRofHN0fG5kfHJkKS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIHZhciBiID0gbnVtYmVyICUgMTAsXG4gICAgICAgICAgICAgICAgb3V0cHV0ID1cbiAgICAgICAgICAgICAgICAgICAgdG9JbnQoKG51bWJlciAlIDEwMCkgLyAxMCkgPT09IDFcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ3RoJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBiID09PSAxXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICdzdCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYiA9PT0gMlxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnbmQnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGIgPT09IDNcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ3JkJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiAndGgnO1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIG91dHB1dDtcbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIFNpZGUgZWZmZWN0IGltcG9ydHNcblxuICAgIGhvb2tzLmxhbmcgPSBkZXByZWNhdGUoXG4gICAgICAgICdtb21lbnQubGFuZyBpcyBkZXByZWNhdGVkLiBVc2UgbW9tZW50LmxvY2FsZSBpbnN0ZWFkLicsXG4gICAgICAgIGdldFNldEdsb2JhbExvY2FsZVxuICAgICk7XG4gICAgaG9va3MubGFuZ0RhdGEgPSBkZXByZWNhdGUoXG4gICAgICAgICdtb21lbnQubGFuZ0RhdGEgaXMgZGVwcmVjYXRlZC4gVXNlIG1vbWVudC5sb2NhbGVEYXRhIGluc3RlYWQuJyxcbiAgICAgICAgZ2V0TG9jYWxlXG4gICAgKTtcblxuICAgIHZhciBtYXRoQWJzID0gTWF0aC5hYnM7XG5cbiAgICBmdW5jdGlvbiBhYnMoKSB7XG4gICAgICAgIHZhciBkYXRhID0gdGhpcy5fZGF0YTtcblxuICAgICAgICB0aGlzLl9taWxsaXNlY29uZHMgPSBtYXRoQWJzKHRoaXMuX21pbGxpc2Vjb25kcyk7XG4gICAgICAgIHRoaXMuX2RheXMgPSBtYXRoQWJzKHRoaXMuX2RheXMpO1xuICAgICAgICB0aGlzLl9tb250aHMgPSBtYXRoQWJzKHRoaXMuX21vbnRocyk7XG5cbiAgICAgICAgZGF0YS5taWxsaXNlY29uZHMgPSBtYXRoQWJzKGRhdGEubWlsbGlzZWNvbmRzKTtcbiAgICAgICAgZGF0YS5zZWNvbmRzID0gbWF0aEFicyhkYXRhLnNlY29uZHMpO1xuICAgICAgICBkYXRhLm1pbnV0ZXMgPSBtYXRoQWJzKGRhdGEubWludXRlcyk7XG4gICAgICAgIGRhdGEuaG91cnMgPSBtYXRoQWJzKGRhdGEuaG91cnMpO1xuICAgICAgICBkYXRhLm1vbnRocyA9IG1hdGhBYnMoZGF0YS5tb250aHMpO1xuICAgICAgICBkYXRhLnllYXJzID0gbWF0aEFicyhkYXRhLnllYXJzKTtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhZGRTdWJ0cmFjdCQxKGR1cmF0aW9uLCBpbnB1dCwgdmFsdWUsIGRpcmVjdGlvbikge1xuICAgICAgICB2YXIgb3RoZXIgPSBjcmVhdGVEdXJhdGlvbihpbnB1dCwgdmFsdWUpO1xuXG4gICAgICAgIGR1cmF0aW9uLl9taWxsaXNlY29uZHMgKz0gZGlyZWN0aW9uICogb3RoZXIuX21pbGxpc2Vjb25kcztcbiAgICAgICAgZHVyYXRpb24uX2RheXMgKz0gZGlyZWN0aW9uICogb3RoZXIuX2RheXM7XG4gICAgICAgIGR1cmF0aW9uLl9tb250aHMgKz0gZGlyZWN0aW9uICogb3RoZXIuX21vbnRocztcblxuICAgICAgICByZXR1cm4gZHVyYXRpb24uX2J1YmJsZSgpO1xuICAgIH1cblxuICAgIC8vIHN1cHBvcnRzIG9ubHkgMi4wLXN0eWxlIGFkZCgxLCAncycpIG9yIGFkZChkdXJhdGlvbilcbiAgICBmdW5jdGlvbiBhZGQkMShpbnB1dCwgdmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIGFkZFN1YnRyYWN0JDEodGhpcywgaW5wdXQsIHZhbHVlLCAxKTtcbiAgICB9XG5cbiAgICAvLyBzdXBwb3J0cyBvbmx5IDIuMC1zdHlsZSBzdWJ0cmFjdCgxLCAncycpIG9yIHN1YnRyYWN0KGR1cmF0aW9uKVxuICAgIGZ1bmN0aW9uIHN1YnRyYWN0JDEoaW5wdXQsIHZhbHVlKSB7XG4gICAgICAgIHJldHVybiBhZGRTdWJ0cmFjdCQxKHRoaXMsIGlucHV0LCB2YWx1ZSwgLTEpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGFic0NlaWwobnVtYmVyKSB7XG4gICAgICAgIGlmIChudW1iZXIgPCAwKSB7XG4gICAgICAgICAgICByZXR1cm4gTWF0aC5mbG9vcihudW1iZXIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIE1hdGguY2VpbChudW1iZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYnViYmxlKCkge1xuICAgICAgICB2YXIgbWlsbGlzZWNvbmRzID0gdGhpcy5fbWlsbGlzZWNvbmRzLFxuICAgICAgICAgICAgZGF5cyA9IHRoaXMuX2RheXMsXG4gICAgICAgICAgICBtb250aHMgPSB0aGlzLl9tb250aHMsXG4gICAgICAgICAgICBkYXRhID0gdGhpcy5fZGF0YSxcbiAgICAgICAgICAgIHNlY29uZHMsXG4gICAgICAgICAgICBtaW51dGVzLFxuICAgICAgICAgICAgaG91cnMsXG4gICAgICAgICAgICB5ZWFycyxcbiAgICAgICAgICAgIG1vbnRoc0Zyb21EYXlzO1xuXG4gICAgICAgIC8vIGlmIHdlIGhhdmUgYSBtaXggb2YgcG9zaXRpdmUgYW5kIG5lZ2F0aXZlIHZhbHVlcywgYnViYmxlIGRvd24gZmlyc3RcbiAgICAgICAgLy8gY2hlY2s6IGh0dHBzOi8vZ2l0aHViLmNvbS9tb21lbnQvbW9tZW50L2lzc3Vlcy8yMTY2XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICEoXG4gICAgICAgICAgICAgICAgKG1pbGxpc2Vjb25kcyA+PSAwICYmIGRheXMgPj0gMCAmJiBtb250aHMgPj0gMCkgfHxcbiAgICAgICAgICAgICAgICAobWlsbGlzZWNvbmRzIDw9IDAgJiYgZGF5cyA8PSAwICYmIG1vbnRocyA8PSAwKVxuICAgICAgICAgICAgKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIG1pbGxpc2Vjb25kcyArPSBhYnNDZWlsKG1vbnRoc1RvRGF5cyhtb250aHMpICsgZGF5cykgKiA4NjRlNTtcbiAgICAgICAgICAgIGRheXMgPSAwO1xuICAgICAgICAgICAgbW9udGhzID0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgY29kZSBidWJibGVzIHVwIHZhbHVlcywgc2VlIHRoZSB0ZXN0cyBmb3JcbiAgICAgICAgLy8gZXhhbXBsZXMgb2Ygd2hhdCB0aGF0IG1lYW5zLlxuICAgICAgICBkYXRhLm1pbGxpc2Vjb25kcyA9IG1pbGxpc2Vjb25kcyAlIDEwMDA7XG5cbiAgICAgICAgc2Vjb25kcyA9IGFic0Zsb29yKG1pbGxpc2Vjb25kcyAvIDEwMDApO1xuICAgICAgICBkYXRhLnNlY29uZHMgPSBzZWNvbmRzICUgNjA7XG5cbiAgICAgICAgbWludXRlcyA9IGFic0Zsb29yKHNlY29uZHMgLyA2MCk7XG4gICAgICAgIGRhdGEubWludXRlcyA9IG1pbnV0ZXMgJSA2MDtcblxuICAgICAgICBob3VycyA9IGFic0Zsb29yKG1pbnV0ZXMgLyA2MCk7XG4gICAgICAgIGRhdGEuaG91cnMgPSBob3VycyAlIDI0O1xuXG4gICAgICAgIGRheXMgKz0gYWJzRmxvb3IoaG91cnMgLyAyNCk7XG5cbiAgICAgICAgLy8gY29udmVydCBkYXlzIHRvIG1vbnRoc1xuICAgICAgICBtb250aHNGcm9tRGF5cyA9IGFic0Zsb29yKGRheXNUb01vbnRocyhkYXlzKSk7XG4gICAgICAgIG1vbnRocyArPSBtb250aHNGcm9tRGF5cztcbiAgICAgICAgZGF5cyAtPSBhYnNDZWlsKG1vbnRoc1RvRGF5cyhtb250aHNGcm9tRGF5cykpO1xuXG4gICAgICAgIC8vIDEyIG1vbnRocyAtPiAxIHllYXJcbiAgICAgICAgeWVhcnMgPSBhYnNGbG9vcihtb250aHMgLyAxMik7XG4gICAgICAgIG1vbnRocyAlPSAxMjtcblxuICAgICAgICBkYXRhLmRheXMgPSBkYXlzO1xuICAgICAgICBkYXRhLm1vbnRocyA9IG1vbnRocztcbiAgICAgICAgZGF0YS55ZWFycyA9IHllYXJzO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGRheXNUb01vbnRocyhkYXlzKSB7XG4gICAgICAgIC8vIDQwMCB5ZWFycyBoYXZlIDE0NjA5NyBkYXlzICh0YWtpbmcgaW50byBhY2NvdW50IGxlYXAgeWVhciBydWxlcylcbiAgICAgICAgLy8gNDAwIHllYXJzIGhhdmUgMTIgbW9udGhzID09PSA0ODAwXG4gICAgICAgIHJldHVybiAoZGF5cyAqIDQ4MDApIC8gMTQ2MDk3O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1vbnRoc1RvRGF5cyhtb250aHMpIHtcbiAgICAgICAgLy8gdGhlIHJldmVyc2Ugb2YgZGF5c1RvTW9udGhzXG4gICAgICAgIHJldHVybiAobW9udGhzICogMTQ2MDk3KSAvIDQ4MDA7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYXModW5pdHMpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIE5hTjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZGF5cyxcbiAgICAgICAgICAgIG1vbnRocyxcbiAgICAgICAgICAgIG1pbGxpc2Vjb25kcyA9IHRoaXMuX21pbGxpc2Vjb25kcztcblxuICAgICAgICB1bml0cyA9IG5vcm1hbGl6ZVVuaXRzKHVuaXRzKTtcblxuICAgICAgICBpZiAodW5pdHMgPT09ICdtb250aCcgfHwgdW5pdHMgPT09ICdxdWFydGVyJyB8fCB1bml0cyA9PT0gJ3llYXInKSB7XG4gICAgICAgICAgICBkYXlzID0gdGhpcy5fZGF5cyArIG1pbGxpc2Vjb25kcyAvIDg2NGU1O1xuICAgICAgICAgICAgbW9udGhzID0gdGhpcy5fbW9udGhzICsgZGF5c1RvTW9udGhzKGRheXMpO1xuICAgICAgICAgICAgc3dpdGNoICh1bml0cykge1xuICAgICAgICAgICAgICAgIGNhc2UgJ21vbnRoJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1vbnRocztcbiAgICAgICAgICAgICAgICBjYXNlICdxdWFydGVyJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1vbnRocyAvIDM7XG4gICAgICAgICAgICAgICAgY2FzZSAneWVhcic6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBtb250aHMgLyAxMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIGhhbmRsZSBtaWxsaXNlY29uZHMgc2VwYXJhdGVseSBiZWNhdXNlIG9mIGZsb2F0aW5nIHBvaW50IG1hdGggZXJyb3JzIChpc3N1ZSAjMTg2NylcbiAgICAgICAgICAgIGRheXMgPSB0aGlzLl9kYXlzICsgTWF0aC5yb3VuZChtb250aHNUb0RheXModGhpcy5fbW9udGhzKSk7XG4gICAgICAgICAgICBzd2l0Y2ggKHVuaXRzKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnd2Vlayc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBkYXlzIC8gNyArIG1pbGxpc2Vjb25kcyAvIDYwNDhlNTtcbiAgICAgICAgICAgICAgICBjYXNlICdkYXknOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZGF5cyArIG1pbGxpc2Vjb25kcyAvIDg2NGU1O1xuICAgICAgICAgICAgICAgIGNhc2UgJ2hvdXInOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZGF5cyAqIDI0ICsgbWlsbGlzZWNvbmRzIC8gMzZlNTtcbiAgICAgICAgICAgICAgICBjYXNlICdtaW51dGUnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZGF5cyAqIDE0NDAgKyBtaWxsaXNlY29uZHMgLyA2ZTQ7XG4gICAgICAgICAgICAgICAgY2FzZSAnc2Vjb25kJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRheXMgKiA4NjQwMCArIG1pbGxpc2Vjb25kcyAvIDEwMDA7XG4gICAgICAgICAgICAgICAgLy8gTWF0aC5mbG9vciBwcmV2ZW50cyBmbG9hdGluZyBwb2ludCBtYXRoIGVycm9ycyBoZXJlXG4gICAgICAgICAgICAgICAgY2FzZSAnbWlsbGlzZWNvbmQnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gTWF0aC5mbG9vcihkYXlzICogODY0ZTUpICsgbWlsbGlzZWNvbmRzO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVW5rbm93biB1bml0ICcgKyB1bml0cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUT0RPOiBVc2UgdGhpcy5hcygnbXMnKT9cbiAgICBmdW5jdGlvbiB2YWx1ZU9mJDEoKSB7XG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBOYU47XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuX21pbGxpc2Vjb25kcyArXG4gICAgICAgICAgICB0aGlzLl9kYXlzICogODY0ZTUgK1xuICAgICAgICAgICAgKHRoaXMuX21vbnRocyAlIDEyKSAqIDI1OTJlNiArXG4gICAgICAgICAgICB0b0ludCh0aGlzLl9tb250aHMgLyAxMikgKiAzMTUzNmU2XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbWFrZUFzKGFsaWFzKSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5hcyhhbGlhcyk7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgdmFyIGFzTWlsbGlzZWNvbmRzID0gbWFrZUFzKCdtcycpLFxuICAgICAgICBhc1NlY29uZHMgPSBtYWtlQXMoJ3MnKSxcbiAgICAgICAgYXNNaW51dGVzID0gbWFrZUFzKCdtJyksXG4gICAgICAgIGFzSG91cnMgPSBtYWtlQXMoJ2gnKSxcbiAgICAgICAgYXNEYXlzID0gbWFrZUFzKCdkJyksXG4gICAgICAgIGFzV2Vla3MgPSBtYWtlQXMoJ3cnKSxcbiAgICAgICAgYXNNb250aHMgPSBtYWtlQXMoJ00nKSxcbiAgICAgICAgYXNRdWFydGVycyA9IG1ha2VBcygnUScpLFxuICAgICAgICBhc1llYXJzID0gbWFrZUFzKCd5Jyk7XG5cbiAgICBmdW5jdGlvbiBjbG9uZSQxKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlRHVyYXRpb24odGhpcyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0JDIodW5pdHMpIHtcbiAgICAgICAgdW5pdHMgPSBub3JtYWxpemVVbml0cyh1bml0cyk7XG4gICAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQoKSA/IHRoaXNbdW5pdHMgKyAncyddKCkgOiBOYU47XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbWFrZUdldHRlcihuYW1lKSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkKCkgPyB0aGlzLl9kYXRhW25hbWVdIDogTmFOO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIHZhciBtaWxsaXNlY29uZHMgPSBtYWtlR2V0dGVyKCdtaWxsaXNlY29uZHMnKSxcbiAgICAgICAgc2Vjb25kcyA9IG1ha2VHZXR0ZXIoJ3NlY29uZHMnKSxcbiAgICAgICAgbWludXRlcyA9IG1ha2VHZXR0ZXIoJ21pbnV0ZXMnKSxcbiAgICAgICAgaG91cnMgPSBtYWtlR2V0dGVyKCdob3VycycpLFxuICAgICAgICBkYXlzID0gbWFrZUdldHRlcignZGF5cycpLFxuICAgICAgICBtb250aHMgPSBtYWtlR2V0dGVyKCdtb250aHMnKSxcbiAgICAgICAgeWVhcnMgPSBtYWtlR2V0dGVyKCd5ZWFycycpO1xuXG4gICAgZnVuY3Rpb24gd2Vla3MoKSB7XG4gICAgICAgIHJldHVybiBhYnNGbG9vcih0aGlzLmRheXMoKSAvIDcpO1xuICAgIH1cblxuICAgIHZhciByb3VuZCA9IE1hdGgucm91bmQsXG4gICAgICAgIHRocmVzaG9sZHMgPSB7XG4gICAgICAgICAgICBzczogNDQsIC8vIGEgZmV3IHNlY29uZHMgdG8gc2Vjb25kc1xuICAgICAgICAgICAgczogNDUsIC8vIHNlY29uZHMgdG8gbWludXRlXG4gICAgICAgICAgICBtOiA0NSwgLy8gbWludXRlcyB0byBob3VyXG4gICAgICAgICAgICBoOiAyMiwgLy8gaG91cnMgdG8gZGF5XG4gICAgICAgICAgICBkOiAyNiwgLy8gZGF5cyB0byBtb250aC93ZWVrXG4gICAgICAgICAgICB3OiBudWxsLCAvLyB3ZWVrcyB0byBtb250aFxuICAgICAgICAgICAgTTogMTEsIC8vIG1vbnRocyB0byB5ZWFyXG4gICAgICAgIH07XG5cbiAgICAvLyBoZWxwZXIgZnVuY3Rpb24gZm9yIG1vbWVudC5mbi5mcm9tLCBtb21lbnQuZm4uZnJvbU5vdywgYW5kIG1vbWVudC5kdXJhdGlvbi5mbi5odW1hbml6ZVxuICAgIGZ1bmN0aW9uIHN1YnN0aXR1dGVUaW1lQWdvKHN0cmluZywgbnVtYmVyLCB3aXRob3V0U3VmZml4LCBpc0Z1dHVyZSwgbG9jYWxlKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGUucmVsYXRpdmVUaW1lKG51bWJlciB8fCAxLCAhIXdpdGhvdXRTdWZmaXgsIHN0cmluZywgaXNGdXR1cmUpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHJlbGF0aXZlVGltZSQxKHBvc05lZ0R1cmF0aW9uLCB3aXRob3V0U3VmZml4LCB0aHJlc2hvbGRzLCBsb2NhbGUpIHtcbiAgICAgICAgdmFyIGR1cmF0aW9uID0gY3JlYXRlRHVyYXRpb24ocG9zTmVnRHVyYXRpb24pLmFicygpLFxuICAgICAgICAgICAgc2Vjb25kcyA9IHJvdW5kKGR1cmF0aW9uLmFzKCdzJykpLFxuICAgICAgICAgICAgbWludXRlcyA9IHJvdW5kKGR1cmF0aW9uLmFzKCdtJykpLFxuICAgICAgICAgICAgaG91cnMgPSByb3VuZChkdXJhdGlvbi5hcygnaCcpKSxcbiAgICAgICAgICAgIGRheXMgPSByb3VuZChkdXJhdGlvbi5hcygnZCcpKSxcbiAgICAgICAgICAgIG1vbnRocyA9IHJvdW5kKGR1cmF0aW9uLmFzKCdNJykpLFxuICAgICAgICAgICAgd2Vla3MgPSByb3VuZChkdXJhdGlvbi5hcygndycpKSxcbiAgICAgICAgICAgIHllYXJzID0gcm91bmQoZHVyYXRpb24uYXMoJ3knKSksXG4gICAgICAgICAgICBhID1cbiAgICAgICAgICAgICAgICAoc2Vjb25kcyA8PSB0aHJlc2hvbGRzLnNzICYmIFsncycsIHNlY29uZHNdKSB8fFxuICAgICAgICAgICAgICAgIChzZWNvbmRzIDwgdGhyZXNob2xkcy5zICYmIFsnc3MnLCBzZWNvbmRzXSkgfHxcbiAgICAgICAgICAgICAgICAobWludXRlcyA8PSAxICYmIFsnbSddKSB8fFxuICAgICAgICAgICAgICAgIChtaW51dGVzIDwgdGhyZXNob2xkcy5tICYmIFsnbW0nLCBtaW51dGVzXSkgfHxcbiAgICAgICAgICAgICAgICAoaG91cnMgPD0gMSAmJiBbJ2gnXSkgfHxcbiAgICAgICAgICAgICAgICAoaG91cnMgPCB0aHJlc2hvbGRzLmggJiYgWydoaCcsIGhvdXJzXSkgfHxcbiAgICAgICAgICAgICAgICAoZGF5cyA8PSAxICYmIFsnZCddKSB8fFxuICAgICAgICAgICAgICAgIChkYXlzIDwgdGhyZXNob2xkcy5kICYmIFsnZGQnLCBkYXlzXSk7XG5cbiAgICAgICAgaWYgKHRocmVzaG9sZHMudyAhPSBudWxsKSB7XG4gICAgICAgICAgICBhID1cbiAgICAgICAgICAgICAgICBhIHx8XG4gICAgICAgICAgICAgICAgKHdlZWtzIDw9IDEgJiYgWyd3J10pIHx8XG4gICAgICAgICAgICAgICAgKHdlZWtzIDwgdGhyZXNob2xkcy53ICYmIFsnd3cnLCB3ZWVrc10pO1xuICAgICAgICB9XG4gICAgICAgIGEgPSBhIHx8XG4gICAgICAgICAgICAobW9udGhzIDw9IDEgJiYgWydNJ10pIHx8XG4gICAgICAgICAgICAobW9udGhzIDwgdGhyZXNob2xkcy5NICYmIFsnTU0nLCBtb250aHNdKSB8fFxuICAgICAgICAgICAgKHllYXJzIDw9IDEgJiYgWyd5J10pIHx8IFsneXknLCB5ZWFyc107XG5cbiAgICAgICAgYVsyXSA9IHdpdGhvdXRTdWZmaXg7XG4gICAgICAgIGFbM10gPSArcG9zTmVnRHVyYXRpb24gPiAwO1xuICAgICAgICBhWzRdID0gbG9jYWxlO1xuICAgICAgICByZXR1cm4gc3Vic3RpdHV0ZVRpbWVBZ28uYXBwbHkobnVsbCwgYSk7XG4gICAgfVxuXG4gICAgLy8gVGhpcyBmdW5jdGlvbiBhbGxvd3MgeW91IHRvIHNldCB0aGUgcm91bmRpbmcgZnVuY3Rpb24gZm9yIHJlbGF0aXZlIHRpbWUgc3RyaW5nc1xuICAgIGZ1bmN0aW9uIGdldFNldFJlbGF0aXZlVGltZVJvdW5kaW5nKHJvdW5kaW5nRnVuY3Rpb24pIHtcbiAgICAgICAgaWYgKHJvdW5kaW5nRnVuY3Rpb24gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHJvdW5kO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2Ygcm91bmRpbmdGdW5jdGlvbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgcm91bmQgPSByb3VuZGluZ0Z1bmN0aW9uO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIFRoaXMgZnVuY3Rpb24gYWxsb3dzIHlvdSB0byBzZXQgYSB0aHJlc2hvbGQgZm9yIHJlbGF0aXZlIHRpbWUgc3RyaW5nc1xuICAgIGZ1bmN0aW9uIGdldFNldFJlbGF0aXZlVGltZVRocmVzaG9sZCh0aHJlc2hvbGQsIGxpbWl0KSB7XG4gICAgICAgIGlmICh0aHJlc2hvbGRzW3RocmVzaG9sZF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsaW1pdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhyZXNob2xkc1t0aHJlc2hvbGRdO1xuICAgICAgICB9XG4gICAgICAgIHRocmVzaG9sZHNbdGhyZXNob2xkXSA9IGxpbWl0O1xuICAgICAgICBpZiAodGhyZXNob2xkID09PSAncycpIHtcbiAgICAgICAgICAgIHRocmVzaG9sZHMuc3MgPSBsaW1pdCAtIDE7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaHVtYW5pemUoYXJnV2l0aFN1ZmZpeCwgYXJnVGhyZXNob2xkcykge1xuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkuaW52YWxpZERhdGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciB3aXRoU3VmZml4ID0gZmFsc2UsXG4gICAgICAgICAgICB0aCA9IHRocmVzaG9sZHMsXG4gICAgICAgICAgICBsb2NhbGUsXG4gICAgICAgICAgICBvdXRwdXQ7XG5cbiAgICAgICAgaWYgKHR5cGVvZiBhcmdXaXRoU3VmZml4ID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgYXJnVGhyZXNob2xkcyA9IGFyZ1dpdGhTdWZmaXg7XG4gICAgICAgICAgICBhcmdXaXRoU3VmZml4ID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBhcmdXaXRoU3VmZml4ID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgIHdpdGhTdWZmaXggPSBhcmdXaXRoU3VmZml4O1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgYXJnVGhyZXNob2xkcyA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIHRoID0gT2JqZWN0LmFzc2lnbih7fSwgdGhyZXNob2xkcywgYXJnVGhyZXNob2xkcyk7XG4gICAgICAgICAgICBpZiAoYXJnVGhyZXNob2xkcy5zICE9IG51bGwgJiYgYXJnVGhyZXNob2xkcy5zcyA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGguc3MgPSBhcmdUaHJlc2hvbGRzLnMgLSAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbG9jYWxlID0gdGhpcy5sb2NhbGVEYXRhKCk7XG4gICAgICAgIG91dHB1dCA9IHJlbGF0aXZlVGltZSQxKHRoaXMsICF3aXRoU3VmZml4LCB0aCwgbG9jYWxlKTtcblxuICAgICAgICBpZiAod2l0aFN1ZmZpeCkge1xuICAgICAgICAgICAgb3V0cHV0ID0gbG9jYWxlLnBhc3RGdXR1cmUoK3RoaXMsIG91dHB1dCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbG9jYWxlLnBvc3Rmb3JtYXQob3V0cHV0KTtcbiAgICB9XG5cbiAgICB2YXIgYWJzJDEgPSBNYXRoLmFicztcblxuICAgIGZ1bmN0aW9uIHNpZ24oeCkge1xuICAgICAgICByZXR1cm4gKHggPiAwKSAtICh4IDwgMCkgfHwgK3g7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdG9JU09TdHJpbmckMSgpIHtcbiAgICAgICAgLy8gZm9yIElTTyBzdHJpbmdzIHdlIGRvIG5vdCB1c2UgdGhlIG5vcm1hbCBidWJibGluZyBydWxlczpcbiAgICAgICAgLy8gICogbWlsbGlzZWNvbmRzIGJ1YmJsZSB1cCB1bnRpbCB0aGV5IGJlY29tZSBob3Vyc1xuICAgICAgICAvLyAgKiBkYXlzIGRvIG5vdCBidWJibGUgYXQgYWxsXG4gICAgICAgIC8vICAqIG1vbnRocyBidWJibGUgdXAgdW50aWwgdGhleSBiZWNvbWUgeWVhcnNcbiAgICAgICAgLy8gVGhpcyBpcyBiZWNhdXNlIHRoZXJlIGlzIG5vIGNvbnRleHQtZnJlZSBjb252ZXJzaW9uIGJldHdlZW4gaG91cnMgYW5kIGRheXNcbiAgICAgICAgLy8gKHRoaW5rIG9mIGNsb2NrIGNoYW5nZXMpXG4gICAgICAgIC8vIGFuZCBhbHNvIG5vdCBiZXR3ZWVuIGRheXMgYW5kIG1vbnRocyAoMjgtMzEgZGF5cyBwZXIgbW9udGgpXG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvY2FsZURhdGEoKS5pbnZhbGlkRGF0ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHNlY29uZHMgPSBhYnMkMSh0aGlzLl9taWxsaXNlY29uZHMpIC8gMTAwMCxcbiAgICAgICAgICAgIGRheXMgPSBhYnMkMSh0aGlzLl9kYXlzKSxcbiAgICAgICAgICAgIG1vbnRocyA9IGFicyQxKHRoaXMuX21vbnRocyksXG4gICAgICAgICAgICBtaW51dGVzLFxuICAgICAgICAgICAgaG91cnMsXG4gICAgICAgICAgICB5ZWFycyxcbiAgICAgICAgICAgIHMsXG4gICAgICAgICAgICB0b3RhbCA9IHRoaXMuYXNTZWNvbmRzKCksXG4gICAgICAgICAgICB0b3RhbFNpZ24sXG4gICAgICAgICAgICB5bVNpZ24sXG4gICAgICAgICAgICBkYXlzU2lnbixcbiAgICAgICAgICAgIGhtc1NpZ247XG5cbiAgICAgICAgaWYgKCF0b3RhbCkge1xuICAgICAgICAgICAgLy8gdGhpcyBpcyB0aGUgc2FtZSBhcyBDIydzIChOb2RhKSBhbmQgcHl0aG9uIChpc29kYXRlKS4uLlxuICAgICAgICAgICAgLy8gYnV0IG5vdCBvdGhlciBKUyAoZ29vZy5kYXRlKVxuICAgICAgICAgICAgcmV0dXJuICdQMEQnO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gMzYwMCBzZWNvbmRzIC0+IDYwIG1pbnV0ZXMgLT4gMSBob3VyXG4gICAgICAgIG1pbnV0ZXMgPSBhYnNGbG9vcihzZWNvbmRzIC8gNjApO1xuICAgICAgICBob3VycyA9IGFic0Zsb29yKG1pbnV0ZXMgLyA2MCk7XG4gICAgICAgIHNlY29uZHMgJT0gNjA7XG4gICAgICAgIG1pbnV0ZXMgJT0gNjA7XG5cbiAgICAgICAgLy8gMTIgbW9udGhzIC0+IDEgeWVhclxuICAgICAgICB5ZWFycyA9IGFic0Zsb29yKG1vbnRocyAvIDEyKTtcbiAgICAgICAgbW9udGhzICU9IDEyO1xuXG4gICAgICAgIC8vIGluc3BpcmVkIGJ5IGh0dHBzOi8vZ2l0aHViLmNvbS9kb3JkaWxsZS9tb21lbnQtaXNvZHVyYXRpb24vYmxvYi9tYXN0ZXIvbW9tZW50Lmlzb2R1cmF0aW9uLmpzXG4gICAgICAgIHMgPSBzZWNvbmRzID8gc2Vjb25kcy50b0ZpeGVkKDMpLnJlcGxhY2UoL1xcLj8wKyQvLCAnJykgOiAnJztcblxuICAgICAgICB0b3RhbFNpZ24gPSB0b3RhbCA8IDAgPyAnLScgOiAnJztcbiAgICAgICAgeW1TaWduID0gc2lnbih0aGlzLl9tb250aHMpICE9PSBzaWduKHRvdGFsKSA/ICctJyA6ICcnO1xuICAgICAgICBkYXlzU2lnbiA9IHNpZ24odGhpcy5fZGF5cykgIT09IHNpZ24odG90YWwpID8gJy0nIDogJyc7XG4gICAgICAgIGhtc1NpZ24gPSBzaWduKHRoaXMuX21pbGxpc2Vjb25kcykgIT09IHNpZ24odG90YWwpID8gJy0nIDogJyc7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRvdGFsU2lnbiArXG4gICAgICAgICAgICAnUCcgK1xuICAgICAgICAgICAgKHllYXJzID8geW1TaWduICsgeWVhcnMgKyAnWScgOiAnJykgK1xuICAgICAgICAgICAgKG1vbnRocyA/IHltU2lnbiArIG1vbnRocyArICdNJyA6ICcnKSArXG4gICAgICAgICAgICAoZGF5cyA/IGRheXNTaWduICsgZGF5cyArICdEJyA6ICcnKSArXG4gICAgICAgICAgICAoaG91cnMgfHwgbWludXRlcyB8fCBzZWNvbmRzID8gJ1QnIDogJycpICtcbiAgICAgICAgICAgIChob3VycyA/IGhtc1NpZ24gKyBob3VycyArICdIJyA6ICcnKSArXG4gICAgICAgICAgICAobWludXRlcyA/IGhtc1NpZ24gKyBtaW51dGVzICsgJ00nIDogJycpICtcbiAgICAgICAgICAgIChzZWNvbmRzID8gaG1zU2lnbiArIHMgKyAnUycgOiAnJylcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICB2YXIgcHJvdG8kMiA9IER1cmF0aW9uLnByb3RvdHlwZTtcblxuICAgIHByb3RvJDIuaXNWYWxpZCA9IGlzVmFsaWQkMTtcbiAgICBwcm90byQyLmFicyA9IGFicztcbiAgICBwcm90byQyLmFkZCA9IGFkZCQxO1xuICAgIHByb3RvJDIuc3VidHJhY3QgPSBzdWJ0cmFjdCQxO1xuICAgIHByb3RvJDIuYXMgPSBhcztcbiAgICBwcm90byQyLmFzTWlsbGlzZWNvbmRzID0gYXNNaWxsaXNlY29uZHM7XG4gICAgcHJvdG8kMi5hc1NlY29uZHMgPSBhc1NlY29uZHM7XG4gICAgcHJvdG8kMi5hc01pbnV0ZXMgPSBhc01pbnV0ZXM7XG4gICAgcHJvdG8kMi5hc0hvdXJzID0gYXNIb3VycztcbiAgICBwcm90byQyLmFzRGF5cyA9IGFzRGF5cztcbiAgICBwcm90byQyLmFzV2Vla3MgPSBhc1dlZWtzO1xuICAgIHByb3RvJDIuYXNNb250aHMgPSBhc01vbnRocztcbiAgICBwcm90byQyLmFzUXVhcnRlcnMgPSBhc1F1YXJ0ZXJzO1xuICAgIHByb3RvJDIuYXNZZWFycyA9IGFzWWVhcnM7XG4gICAgcHJvdG8kMi52YWx1ZU9mID0gdmFsdWVPZiQxO1xuICAgIHByb3RvJDIuX2J1YmJsZSA9IGJ1YmJsZTtcbiAgICBwcm90byQyLmNsb25lID0gY2xvbmUkMTtcbiAgICBwcm90byQyLmdldCA9IGdldCQyO1xuICAgIHByb3RvJDIubWlsbGlzZWNvbmRzID0gbWlsbGlzZWNvbmRzO1xuICAgIHByb3RvJDIuc2Vjb25kcyA9IHNlY29uZHM7XG4gICAgcHJvdG8kMi5taW51dGVzID0gbWludXRlcztcbiAgICBwcm90byQyLmhvdXJzID0gaG91cnM7XG4gICAgcHJvdG8kMi5kYXlzID0gZGF5cztcbiAgICBwcm90byQyLndlZWtzID0gd2Vla3M7XG4gICAgcHJvdG8kMi5tb250aHMgPSBtb250aHM7XG4gICAgcHJvdG8kMi55ZWFycyA9IHllYXJzO1xuICAgIHByb3RvJDIuaHVtYW5pemUgPSBodW1hbml6ZTtcbiAgICBwcm90byQyLnRvSVNPU3RyaW5nID0gdG9JU09TdHJpbmckMTtcbiAgICBwcm90byQyLnRvU3RyaW5nID0gdG9JU09TdHJpbmckMTtcbiAgICBwcm90byQyLnRvSlNPTiA9IHRvSVNPU3RyaW5nJDE7XG4gICAgcHJvdG8kMi5sb2NhbGUgPSBsb2NhbGU7XG4gICAgcHJvdG8kMi5sb2NhbGVEYXRhID0gbG9jYWxlRGF0YTtcblxuICAgIHByb3RvJDIudG9Jc29TdHJpbmcgPSBkZXByZWNhdGUoXG4gICAgICAgICd0b0lzb1N0cmluZygpIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgdG9JU09TdHJpbmcoKSBpbnN0ZWFkIChub3RpY2UgdGhlIGNhcGl0YWxzKScsXG4gICAgICAgIHRvSVNPU3RyaW5nJDFcbiAgICApO1xuICAgIHByb3RvJDIubGFuZyA9IGxhbmc7XG5cbiAgICAvLyBGT1JNQVRUSU5HXG5cbiAgICBhZGRGb3JtYXRUb2tlbignWCcsIDAsIDAsICd1bml4Jyk7XG4gICAgYWRkRm9ybWF0VG9rZW4oJ3gnLCAwLCAwLCAndmFsdWVPZicpO1xuXG4gICAgLy8gUEFSU0lOR1xuXG4gICAgYWRkUmVnZXhUb2tlbigneCcsIG1hdGNoU2lnbmVkKTtcbiAgICBhZGRSZWdleFRva2VuKCdYJywgbWF0Y2hUaW1lc3RhbXApO1xuICAgIGFkZFBhcnNlVG9rZW4oJ1gnLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5LCBjb25maWcpIHtcbiAgICAgICAgY29uZmlnLl9kID0gbmV3IERhdGUocGFyc2VGbG9hdChpbnB1dCkgKiAxMDAwKTtcbiAgICB9KTtcbiAgICBhZGRQYXJzZVRva2VuKCd4JywgZnVuY3Rpb24gKGlucHV0LCBhcnJheSwgY29uZmlnKSB7XG4gICAgICAgIGNvbmZpZy5fZCA9IG5ldyBEYXRlKHRvSW50KGlucHV0KSk7XG4gICAgfSk7XG5cbiAgICAvLyEgbW9tZW50LmpzXG5cbiAgICBob29rcy52ZXJzaW9uID0gJzIuMjcuMCc7XG5cbiAgICBzZXRIb29rQ2FsbGJhY2soY3JlYXRlTG9jYWwpO1xuXG4gICAgaG9va3MuZm4gPSBwcm90bztcbiAgICBob29rcy5taW4gPSBtaW47XG4gICAgaG9va3MubWF4ID0gbWF4O1xuICAgIGhvb2tzLm5vdyA9IG5vdztcbiAgICBob29rcy51dGMgPSBjcmVhdGVVVEM7XG4gICAgaG9va3MudW5peCA9IGNyZWF0ZVVuaXg7XG4gICAgaG9va3MubW9udGhzID0gbGlzdE1vbnRocztcbiAgICBob29rcy5pc0RhdGUgPSBpc0RhdGU7XG4gICAgaG9va3MubG9jYWxlID0gZ2V0U2V0R2xvYmFsTG9jYWxlO1xuICAgIGhvb2tzLmludmFsaWQgPSBjcmVhdGVJbnZhbGlkO1xuICAgIGhvb2tzLmR1cmF0aW9uID0gY3JlYXRlRHVyYXRpb247XG4gICAgaG9va3MuaXNNb21lbnQgPSBpc01vbWVudDtcbiAgICBob29rcy53ZWVrZGF5cyA9IGxpc3RXZWVrZGF5cztcbiAgICBob29rcy5wYXJzZVpvbmUgPSBjcmVhdGVJblpvbmU7XG4gICAgaG9va3MubG9jYWxlRGF0YSA9IGdldExvY2FsZTtcbiAgICBob29rcy5pc0R1cmF0aW9uID0gaXNEdXJhdGlvbjtcbiAgICBob29rcy5tb250aHNTaG9ydCA9IGxpc3RNb250aHNTaG9ydDtcbiAgICBob29rcy53ZWVrZGF5c01pbiA9IGxpc3RXZWVrZGF5c01pbjtcbiAgICBob29rcy5kZWZpbmVMb2NhbGUgPSBkZWZpbmVMb2NhbGU7XG4gICAgaG9va3MudXBkYXRlTG9jYWxlID0gdXBkYXRlTG9jYWxlO1xuICAgIGhvb2tzLmxvY2FsZXMgPSBsaXN0TG9jYWxlcztcbiAgICBob29rcy53ZWVrZGF5c1Nob3J0ID0gbGlzdFdlZWtkYXlzU2hvcnQ7XG4gICAgaG9va3Mubm9ybWFsaXplVW5pdHMgPSBub3JtYWxpemVVbml0cztcbiAgICBob29rcy5yZWxhdGl2ZVRpbWVSb3VuZGluZyA9IGdldFNldFJlbGF0aXZlVGltZVJvdW5kaW5nO1xuICAgIGhvb2tzLnJlbGF0aXZlVGltZVRocmVzaG9sZCA9IGdldFNldFJlbGF0aXZlVGltZVRocmVzaG9sZDtcbiAgICBob29rcy5jYWxlbmRhckZvcm1hdCA9IGdldENhbGVuZGFyRm9ybWF0O1xuICAgIGhvb2tzLnByb3RvdHlwZSA9IHByb3RvO1xuXG4gICAgLy8gY3VycmVudGx5IEhUTUw1IGlucHV0IHR5cGUgb25seSBzdXBwb3J0cyAyNC1ob3VyIGZvcm1hdHNcbiAgICBob29rcy5IVE1MNV9GTVQgPSB7XG4gICAgICAgIERBVEVUSU1FX0xPQ0FMOiAnWVlZWS1NTS1ERFRISDptbScsIC8vIDxpbnB1dCB0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIiAvPlxuICAgICAgICBEQVRFVElNRV9MT0NBTF9TRUNPTkRTOiAnWVlZWS1NTS1ERFRISDptbTpzcycsIC8vIDxpbnB1dCB0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIiBzdGVwPVwiMVwiIC8+XG4gICAgICAgIERBVEVUSU1FX0xPQ0FMX01TOiAnWVlZWS1NTS1ERFRISDptbTpzcy5TU1MnLCAvLyA8aW5wdXQgdHlwZT1cImRhdGV0aW1lLWxvY2FsXCIgc3RlcD1cIjAuMDAxXCIgLz5cbiAgICAgICAgREFURTogJ1lZWVktTU0tREQnLCAvLyA8aW5wdXQgdHlwZT1cImRhdGVcIiAvPlxuICAgICAgICBUSU1FOiAnSEg6bW0nLCAvLyA8aW5wdXQgdHlwZT1cInRpbWVcIiAvPlxuICAgICAgICBUSU1FX1NFQ09ORFM6ICdISDptbTpzcycsIC8vIDxpbnB1dCB0eXBlPVwidGltZVwiIHN0ZXA9XCIxXCIgLz5cbiAgICAgICAgVElNRV9NUzogJ0hIOm1tOnNzLlNTUycsIC8vIDxpbnB1dCB0eXBlPVwidGltZVwiIHN0ZXA9XCIwLjAwMVwiIC8+XG4gICAgICAgIFdFRUs6ICdHR0dHLVtXXVdXJywgLy8gPGlucHV0IHR5cGU9XCJ3ZWVrXCIgLz5cbiAgICAgICAgTU9OVEg6ICdZWVlZLU1NJywgLy8gPGlucHV0IHR5cGU9XCJtb250aFwiIC8+XG4gICAgfTtcblxuICAgIHJldHVybiBob29rcztcblxufSkpKTtcbiIsImltcG9ydCBfY3VycnkxIGZyb20gXCIuL19jdXJyeTEuanNcIjtcbmltcG9ydCBfaXNQbGFjZWhvbGRlciBmcm9tIFwiLi9faXNQbGFjZWhvbGRlci5qc1wiO1xuLyoqXG4gKiBPcHRpbWl6ZWQgaW50ZXJuYWwgdHdvLWFyaXR5IGN1cnJ5IGZ1bmN0aW9uLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuIFRoZSBmdW5jdGlvbiB0byBjdXJyeS5cbiAqIEByZXR1cm4ge0Z1bmN0aW9ufSBUaGUgY3VycmllZCBmdW5jdGlvbi5cbiAqL1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfY3VycnkyKGZuKSB7XG4gIHJldHVybiBmdW5jdGlvbiBmMihhLCBiKSB7XG4gICAgc3dpdGNoIChhcmd1bWVudHMubGVuZ3RoKSB7XG4gICAgICBjYXNlIDA6XG4gICAgICAgIHJldHVybiBmMjtcblxuICAgICAgY2FzZSAxOlxuICAgICAgICByZXR1cm4gX2lzUGxhY2Vob2xkZXIoYSkgPyBmMiA6IF9jdXJyeTEoZnVuY3Rpb24gKF9iKSB7XG4gICAgICAgICAgcmV0dXJuIGZuKGEsIF9iKTtcbiAgICAgICAgfSk7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBfaXNQbGFjZWhvbGRlcihhKSAmJiBfaXNQbGFjZWhvbGRlcihiKSA/IGYyIDogX2lzUGxhY2Vob2xkZXIoYSkgPyBfY3VycnkxKGZ1bmN0aW9uIChfYSkge1xuICAgICAgICAgIHJldHVybiBmbihfYSwgYik7XG4gICAgICAgIH0pIDogX2lzUGxhY2Vob2xkZXIoYikgPyBfY3VycnkxKGZ1bmN0aW9uIChfYikge1xuICAgICAgICAgIHJldHVybiBmbihhLCBfYik7XG4gICAgICAgIH0pIDogZm4oYSwgYik7XG4gICAgfVxuICB9O1xufSIsImltcG9ydCBfaXNQbGFjZWhvbGRlciBmcm9tIFwiLi9faXNQbGFjZWhvbGRlci5qc1wiO1xuLyoqXG4gKiBPcHRpbWl6ZWQgaW50ZXJuYWwgb25lLWFyaXR5IGN1cnJ5IGZ1bmN0aW9uLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuIFRoZSBmdW5jdGlvbiB0byBjdXJyeS5cbiAqIEByZXR1cm4ge0Z1bmN0aW9ufSBUaGUgY3VycmllZCBmdW5jdGlvbi5cbiAqL1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfY3VycnkxKGZuKSB7XG4gIHJldHVybiBmdW5jdGlvbiBmMShhKSB7XG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDAgfHwgX2lzUGxhY2Vob2xkZXIoYSkpIHtcbiAgICAgIHJldHVybiBmMTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZuLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgfVxuICB9O1xufSIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9pc1BsYWNlaG9sZGVyKGEpIHtcbiAgcmV0dXJuIGEgIT0gbnVsbCAmJiB0eXBlb2YgYSA9PT0gJ29iamVjdCcgJiYgYVsnQEBmdW5jdGlvbmFsL3BsYWNlaG9sZGVyJ10gPT09IHRydWU7XG59IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfdHlwZW9mMiA9IHJlcXVpcmUoXCIuLi9oZWxwZXJzL3R5cGVvZlwiKTtcblxudmFyIF90eXBlb2YzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfdHlwZW9mMik7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9OyB9XG5cbmV4cG9ydHMuZGVmYXVsdCA9IGZ1bmN0aW9uIChzZWxmLCBjYWxsKSB7XG4gIGlmICghc2VsZikge1xuICAgIHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTtcbiAgfVxuXG4gIHJldHVybiBjYWxsICYmICgodHlwZW9mIGNhbGwgPT09IFwidW5kZWZpbmVkXCIgPyBcInVuZGVmaW5lZFwiIDogKDAsIF90eXBlb2YzLmRlZmF1bHQpKGNhbGwpKSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSA/IGNhbGwgOiBzZWxmO1xufTsiLCIndXNlIHN0cmljdCc7XG5cbmZ1bmN0aW9uIGNoZWNrRENFKCkge1xuICAvKiBnbG9iYWwgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fICovXG4gIGlmIChcbiAgICB0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fID09PSAndW5kZWZpbmVkJyB8fFxuICAgIHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18uY2hlY2tEQ0UgIT09ICdmdW5jdGlvbidcbiAgKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgLy8gVGhpcyBicmFuY2ggaXMgdW5yZWFjaGFibGUgYmVjYXVzZSB0aGlzIGZ1bmN0aW9uIGlzIG9ubHkgY2FsbGVkXG4gICAgLy8gaW4gcHJvZHVjdGlvbiwgYnV0IHRoZSBjb25kaXRpb24gaXMgdHJ1ZSBvbmx5IGluIGRldmVsb3BtZW50LlxuICAgIC8vIFRoZXJlZm9yZSBpZiB0aGUgYnJhbmNoIGlzIHN0aWxsIGhlcmUsIGRlYWQgY29kZSBlbGltaW5hdGlvbiB3YXNuJ3RcbiAgICAvLyBwcm9wZXJseSBhcHBsaWVkLlxuICAgIC8vIERvbid0IGNoYW5nZSB0aGUgbWVzc2FnZS4gUmVhY3QgRGV2VG9vbHMgcmVsaWVzIG9uIGl0LiBBbHNvIG1ha2Ugc3VyZVxuICAgIC8vIHRoaXMgbWVzc2FnZSBkb2Vzbid0IG9jY3VyIGVsc2V3aGVyZSBpbiB0aGlzIGZ1bmN0aW9uLCBvciBpdCB3aWxsIGNhdXNlXG4gICAgLy8gYSBmYWxzZSBwb3NpdGl2ZS5cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ15fXicpO1xuICB9XG4gIHRyeSB7XG4gICAgLy8gVmVyaWZ5IHRoYXQgdGhlIGNvZGUgYWJvdmUgaGFzIGJlZW4gZGVhZCBjb2RlIGVsaW1pbmF0ZWQgKERDRSdkKS5cbiAgICBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18uY2hlY2tEQ0UoY2hlY2tEQ0UpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICAvLyBEZXZUb29scyBzaG91bGRuJ3QgY3Jhc2ggUmVhY3QsIG5vIG1hdHRlciB3aGF0LlxuICAgIC8vIFdlIHNob3VsZCBzdGlsbCByZXBvcnQgaW4gY2FzZSB3ZSBicmVhayB0aGlzIGNvZGUuXG4gICAgY29uc29sZS5lcnJvcihlcnIpO1xuICB9XG59XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIC8vIERDRSBjaGVjayBzaG91bGQgaGFwcGVuIGJlZm9yZSBSZWFjdERPTSBidW5kbGUgZXhlY3V0ZXMgc28gdGhhdFxuICAvLyBEZXZUb29scyBjYW4gcmVwb3J0IGJhZCBtaW5pZmljYXRpb24gZHVyaW5nIGluamVjdGlvbi5cbiAgY2hlY2tEQ0UoKTtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1kb20ucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtZG9tLmRldmVsb3BtZW50LmpzJyk7XG59XG4iLCJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZXhwb3J0cy5kZWZhdWx0ID0gZnVuY3Rpb24gKGluc3RhbmNlLCBDb25zdHJ1Y3Rvcikge1xuICBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7XG4gIH1cbn07IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfYXNzaWduID0gcmVxdWlyZShcIi4uL2NvcmUtanMvb2JqZWN0L2Fzc2lnblwiKTtcblxudmFyIF9hc3NpZ24yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfYXNzaWduKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxuZXhwb3J0cy5kZWZhdWx0ID0gX2Fzc2lnbjIuZGVmYXVsdCB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7XG4gIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTtcblxuICAgIGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHtcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7XG4gICAgICAgIHRhcmdldFtrZXldID0gc291cmNlW2tleV07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRhcmdldDtcbn07IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfc2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKFwiLi4vY29yZS1qcy9vYmplY3Qvc2V0LXByb3RvdHlwZS1vZlwiKTtcblxudmFyIF9zZXRQcm90b3R5cGVPZjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9zZXRQcm90b3R5cGVPZik7XG5cbnZhciBfY3JlYXRlID0gcmVxdWlyZShcIi4uL2NvcmUtanMvb2JqZWN0L2NyZWF0ZVwiKTtcblxudmFyIF9jcmVhdGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfY3JlYXRlKTtcblxudmFyIF90eXBlb2YyID0gcmVxdWlyZShcIi4uL2hlbHBlcnMvdHlwZW9mXCIpO1xuXG52YXIgX3R5cGVvZjMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF90eXBlb2YyKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxuZXhwb3J0cy5kZWZhdWx0ID0gZnVuY3Rpb24gKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7XG4gIGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCBcIiArICh0eXBlb2Ygc3VwZXJDbGFzcyA9PT0gXCJ1bmRlZmluZWRcIiA/IFwidW5kZWZpbmVkXCIgOiAoMCwgX3R5cGVvZjMuZGVmYXVsdCkoc3VwZXJDbGFzcykpKTtcbiAgfVxuXG4gIHN1YkNsYXNzLnByb3RvdHlwZSA9ICgwLCBfY3JlYXRlMi5kZWZhdWx0KShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7XG4gICAgY29uc3RydWN0b3I6IHtcbiAgICAgIHZhbHVlOiBzdWJDbGFzcyxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9XG4gIH0pO1xuICBpZiAoc3VwZXJDbGFzcykgX3NldFByb3RvdHlwZU9mMi5kZWZhdWx0ID8gKDAsIF9zZXRQcm90b3R5cGVPZjIuZGVmYXVsdCkoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzcztcbn07IiwiLyohXG4gIENvcHlyaWdodCAoYykgMjAxNyBKZWQgV2F0c29uLlxuICBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UgKE1JVCksIHNlZVxuICBodHRwOi8vamVkd2F0c29uLmdpdGh1Yi5pby9jbGFzc25hbWVzXG4qL1xuLyogZ2xvYmFsIGRlZmluZSAqL1xuXG4oZnVuY3Rpb24gKCkge1xuXHQndXNlIHN0cmljdCc7XG5cblx0dmFyIGhhc093biA9IHt9Lmhhc093blByb3BlcnR5O1xuXG5cdGZ1bmN0aW9uIGNsYXNzTmFtZXMgKCkge1xuXHRcdHZhciBjbGFzc2VzID0gW107XG5cblx0XHRmb3IgKHZhciBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuXHRcdFx0dmFyIGFyZyA9IGFyZ3VtZW50c1tpXTtcblx0XHRcdGlmICghYXJnKSBjb250aW51ZTtcblxuXHRcdFx0dmFyIGFyZ1R5cGUgPSB0eXBlb2YgYXJnO1xuXG5cdFx0XHRpZiAoYXJnVHlwZSA9PT0gJ3N0cmluZycgfHwgYXJnVHlwZSA9PT0gJ251bWJlcicpIHtcblx0XHRcdFx0Y2xhc3Nlcy5wdXNoKGFyZyk7XG5cdFx0XHR9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoYXJnKSAmJiBhcmcubGVuZ3RoKSB7XG5cdFx0XHRcdHZhciBpbm5lciA9IGNsYXNzTmFtZXMuYXBwbHkobnVsbCwgYXJnKTtcblx0XHRcdFx0aWYgKGlubmVyKSB7XG5cdFx0XHRcdFx0Y2xhc3Nlcy5wdXNoKGlubmVyKTtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIGlmIChhcmdUeXBlID09PSAnb2JqZWN0Jykge1xuXHRcdFx0XHRmb3IgKHZhciBrZXkgaW4gYXJnKSB7XG5cdFx0XHRcdFx0aWYgKGhhc093bi5jYWxsKGFyZywga2V5KSAmJiBhcmdba2V5XSkge1xuXHRcdFx0XHRcdFx0Y2xhc3Nlcy5wdXNoKGtleSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGNsYXNzZXMuam9pbignICcpO1xuXHR9XG5cblx0aWYgKHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnICYmIG1vZHVsZS5leHBvcnRzKSB7XG5cdFx0Y2xhc3NOYW1lcy5kZWZhdWx0ID0gY2xhc3NOYW1lcztcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGNsYXNzTmFtZXM7XG5cdH0gZWxzZSBpZiAodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgZGVmaW5lLmFtZCA9PT0gJ29iamVjdCcgJiYgZGVmaW5lLmFtZCkge1xuXHRcdC8vIHJlZ2lzdGVyIGFzICdjbGFzc25hbWVzJywgY29uc2lzdGVudCB3aXRoIG5wbSBwYWNrYWdlIG5hbWVcblx0XHRkZWZpbmUoJ2NsYXNzbmFtZXMnLCBbXSwgZnVuY3Rpb24gKCkge1xuXHRcdFx0cmV0dXJuIGNsYXNzTmFtZXM7XG5cdFx0fSk7XG5cdH0gZWxzZSB7XG5cdFx0d2luZG93LmNsYXNzTmFtZXMgPSBjbGFzc05hbWVzO1xuXHR9XG59KCkpO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfZGVmaW5lUHJvcGVydHkgPSByZXF1aXJlKFwiLi4vY29yZS1qcy9vYmplY3QvZGVmaW5lLXByb3BlcnR5XCIpO1xuXG52YXIgX2RlZmluZVByb3BlcnR5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2RlZmluZVByb3BlcnR5KTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxuZXhwb3J0cy5kZWZhdWx0ID0gZnVuY3Rpb24gKG9iaiwga2V5LCB2YWx1ZSkge1xuICBpZiAoa2V5IGluIG9iaikge1xuICAgICgwLCBfZGVmaW5lUHJvcGVydHkyLmRlZmF1bHQpKG9iaiwga2V5LCB7XG4gICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgd3JpdGFibGU6IHRydWVcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBvYmpba2V5XSA9IHZhbHVlO1xuICB9XG5cbiAgcmV0dXJuIG9iajtcbn07IiwiZnVuY3Rpb24gX2RlZmluZVByb3BlcnR5KG9iaiwga2V5LCB2YWx1ZSkge1xuICBpZiAoa2V5IGluIG9iaikge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwge1xuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgb2JqW2tleV0gPSB2YWx1ZTtcbiAgfVxuXG4gIHJldHVybiBvYmo7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX2RlZmluZVByb3BlcnR5O1xubW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlOyIsIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG52YXIgX2RlZmluZVByb3BlcnR5ID0gcmVxdWlyZShcIi4uL2NvcmUtanMvb2JqZWN0L2RlZmluZS1wcm9wZXJ0eVwiKTtcblxudmFyIF9kZWZpbmVQcm9wZXJ0eTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9kZWZpbmVQcm9wZXJ0eSk7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9OyB9XG5cbmV4cG9ydHMuZGVmYXVsdCA9IGZ1bmN0aW9uICgpIHtcbiAgZnVuY3Rpb24gZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTtcbiAgICAgIGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTtcbiAgICAgIGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTtcbiAgICAgIGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7XG4gICAgICAoMCwgX2RlZmluZVByb3BlcnR5Mi5kZWZhdWx0KSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZnVuY3Rpb24gKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykge1xuICAgIGlmIChwcm90b1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7XG4gICAgaWYgKHN0YXRpY1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7XG4gICAgcmV0dXJuIENvbnN0cnVjdG9yO1xuICB9O1xufSgpOyIsImltcG9ydCBfYXJpdHkgZnJvbSBcIi4vaW50ZXJuYWwvX2FyaXR5LmpzXCI7XG5pbXBvcnQgX2N1cnJ5MSBmcm9tIFwiLi9pbnRlcm5hbC9fY3VycnkxLmpzXCI7XG5pbXBvcnQgX2N1cnJ5MiBmcm9tIFwiLi9pbnRlcm5hbC9fY3VycnkyLmpzXCI7XG5pbXBvcnQgX2N1cnJ5TiBmcm9tIFwiLi9pbnRlcm5hbC9fY3VycnlOLmpzXCI7XG4vKipcbiAqIFJldHVybnMgYSBjdXJyaWVkIGVxdWl2YWxlbnQgb2YgdGhlIHByb3ZpZGVkIGZ1bmN0aW9uLCB3aXRoIHRoZSBzcGVjaWZpZWRcbiAqIGFyaXR5LiBUaGUgY3VycmllZCBmdW5jdGlvbiBoYXMgdHdvIHVudXN1YWwgY2FwYWJpbGl0aWVzLiBGaXJzdCwgaXRzXG4gKiBhcmd1bWVudHMgbmVlZG4ndCBiZSBwcm92aWRlZCBvbmUgYXQgYSB0aW1lLiBJZiBgZ2AgaXMgYFIuY3VycnlOKDMsIGYpYCwgdGhlXG4gKiBmb2xsb3dpbmcgYXJlIGVxdWl2YWxlbnQ6XG4gKlxuICogICAtIGBnKDEpKDIpKDMpYFxuICogICAtIGBnKDEpKDIsIDMpYFxuICogICAtIGBnKDEsIDIpKDMpYFxuICogICAtIGBnKDEsIDIsIDMpYFxuICpcbiAqIFNlY29uZGx5LCB0aGUgc3BlY2lhbCBwbGFjZWhvbGRlciB2YWx1ZSBbYFIuX19gXSgjX18pIG1heSBiZSB1c2VkIHRvIHNwZWNpZnlcbiAqIFwiZ2Fwc1wiLCBhbGxvd2luZyBwYXJ0aWFsIGFwcGxpY2F0aW9uIG9mIGFueSBjb21iaW5hdGlvbiBvZiBhcmd1bWVudHMsXG4gKiByZWdhcmRsZXNzIG9mIHRoZWlyIHBvc2l0aW9ucy4gSWYgYGdgIGlzIGFzIGFib3ZlIGFuZCBgX2AgaXMgW2BSLl9fYF0oI19fKSxcbiAqIHRoZSBmb2xsb3dpbmcgYXJlIGVxdWl2YWxlbnQ6XG4gKlxuICogICAtIGBnKDEsIDIsIDMpYFxuICogICAtIGBnKF8sIDIsIDMpKDEpYFxuICogICAtIGBnKF8sIF8sIDMpKDEpKDIpYFxuICogICAtIGBnKF8sIF8sIDMpKDEsIDIpYFxuICogICAtIGBnKF8sIDIpKDEpKDMpYFxuICogICAtIGBnKF8sIDIpKDEsIDMpYFxuICogICAtIGBnKF8sIDIpKF8sIDMpKDEpYFxuICpcbiAqIEBmdW5jXG4gKiBAbWVtYmVyT2YgUlxuICogQHNpbmNlIHYwLjUuMFxuICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gKiBAc2lnIE51bWJlciAtPiAoKiAtPiBhKSAtPiAoKiAtPiBhKVxuICogQHBhcmFtIHtOdW1iZXJ9IGxlbmd0aCBUaGUgYXJpdHkgZm9yIHRoZSByZXR1cm5lZCBmdW5jdGlvbi5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuIFRoZSBmdW5jdGlvbiB0byBjdXJyeS5cbiAqIEByZXR1cm4ge0Z1bmN0aW9ufSBBIG5ldywgY3VycmllZCBmdW5jdGlvbi5cbiAqIEBzZWUgUi5jdXJyeVxuICogQGV4YW1wbGVcbiAqXG4gKiAgICAgIGNvbnN0IHN1bUFyZ3MgPSAoLi4uYXJncykgPT4gUi5zdW0oYXJncyk7XG4gKlxuICogICAgICBjb25zdCBjdXJyaWVkQWRkRm91ck51bWJlcnMgPSBSLmN1cnJ5Tig0LCBzdW1BcmdzKTtcbiAqICAgICAgY29uc3QgZiA9IGN1cnJpZWRBZGRGb3VyTnVtYmVycygxLCAyKTtcbiAqICAgICAgY29uc3QgZyA9IGYoMyk7XG4gKiAgICAgIGcoNCk7IC8vPT4gMTBcbiAqL1xuXG52YXIgY3VycnlOID1cbi8qI19fUFVSRV9fKi9cbl9jdXJyeTIoZnVuY3Rpb24gY3VycnlOKGxlbmd0aCwgZm4pIHtcbiAgaWYgKGxlbmd0aCA9PT0gMSkge1xuICAgIHJldHVybiBfY3VycnkxKGZuKTtcbiAgfVxuXG4gIHJldHVybiBfYXJpdHkobGVuZ3RoLCBfY3VycnlOKGxlbmd0aCwgW10sIGZuKSk7XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgY3VycnlOOyIsImltcG9ydCBfYXJpdHkgZnJvbSBcIi4vX2FyaXR5LmpzXCI7XG5pbXBvcnQgX2lzUGxhY2Vob2xkZXIgZnJvbSBcIi4vX2lzUGxhY2Vob2xkZXIuanNcIjtcbi8qKlxuICogSW50ZXJuYWwgY3VycnlOIGZ1bmN0aW9uLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAqIEBwYXJhbSB7TnVtYmVyfSBsZW5ndGggVGhlIGFyaXR5IG9mIHRoZSBjdXJyaWVkIGZ1bmN0aW9uLlxuICogQHBhcmFtIHtBcnJheX0gcmVjZWl2ZWQgQW4gYXJyYXkgb2YgYXJndW1lbnRzIHJlY2VpdmVkIHRodXMgZmFyLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gZm4gVGhlIGZ1bmN0aW9uIHRvIGN1cnJ5LlxuICogQHJldHVybiB7RnVuY3Rpb259IFRoZSBjdXJyaWVkIGZ1bmN0aW9uLlxuICovXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9jdXJyeU4obGVuZ3RoLCByZWNlaXZlZCwgZm4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgY29tYmluZWQgPSBbXTtcbiAgICB2YXIgYXJnc0lkeCA9IDA7XG4gICAgdmFyIGxlZnQgPSBsZW5ndGg7XG4gICAgdmFyIGNvbWJpbmVkSWR4ID0gMDtcblxuICAgIHdoaWxlIChjb21iaW5lZElkeCA8IHJlY2VpdmVkLmxlbmd0aCB8fCBhcmdzSWR4IDwgYXJndW1lbnRzLmxlbmd0aCkge1xuICAgICAgdmFyIHJlc3VsdDtcblxuICAgICAgaWYgKGNvbWJpbmVkSWR4IDwgcmVjZWl2ZWQubGVuZ3RoICYmICghX2lzUGxhY2Vob2xkZXIocmVjZWl2ZWRbY29tYmluZWRJZHhdKSB8fCBhcmdzSWR4ID49IGFyZ3VtZW50cy5sZW5ndGgpKSB7XG4gICAgICAgIHJlc3VsdCA9IHJlY2VpdmVkW2NvbWJpbmVkSWR4XTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3VsdCA9IGFyZ3VtZW50c1thcmdzSWR4XTtcbiAgICAgICAgYXJnc0lkeCArPSAxO1xuICAgICAgfVxuXG4gICAgICBjb21iaW5lZFtjb21iaW5lZElkeF0gPSByZXN1bHQ7XG5cbiAgICAgIGlmICghX2lzUGxhY2Vob2xkZXIocmVzdWx0KSkge1xuICAgICAgICBsZWZ0IC09IDE7XG4gICAgICB9XG5cbiAgICAgIGNvbWJpbmVkSWR4ICs9IDE7XG4gICAgfVxuXG4gICAgcmV0dXJuIGxlZnQgPD0gMCA/IGZuLmFwcGx5KHRoaXMsIGNvbWJpbmVkKSA6IF9hcml0eShsZWZ0LCBfY3VycnlOKGxlbmd0aCwgY29tYmluZWQsIGZuKSk7XG4gIH07XG59IiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX2FyaXR5KG4sIGZuKSB7XG4gIC8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXG4gIHN3aXRjaCAobikge1xuICAgIGNhc2UgMDpcbiAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBmbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgfTtcblxuICAgIGNhc2UgMTpcbiAgICAgIHJldHVybiBmdW5jdGlvbiAoYTApIHtcbiAgICAgICAgcmV0dXJuIGZuLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICB9O1xuXG4gICAgY2FzZSAyOlxuICAgICAgcmV0dXJuIGZ1bmN0aW9uIChhMCwgYTEpIHtcbiAgICAgICAgcmV0dXJuIGZuLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICB9O1xuXG4gICAgY2FzZSAzOlxuICAgICAgcmV0dXJuIGZ1bmN0aW9uIChhMCwgYTEsIGEyKSB7XG4gICAgICAgIHJldHVybiBmbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgfTtcblxuICAgIGNhc2UgNDpcbiAgICAgIHJldHVybiBmdW5jdGlvbiAoYTAsIGExLCBhMiwgYTMpIHtcbiAgICAgICAgcmV0dXJuIGZuLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICB9O1xuXG4gICAgY2FzZSA1OlxuICAgICAgcmV0dXJuIGZ1bmN0aW9uIChhMCwgYTEsIGEyLCBhMywgYTQpIHtcbiAgICAgICAgcmV0dXJuIGZuLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICB9O1xuXG4gICAgY2FzZSA2OlxuICAgICAgcmV0dXJuIGZ1bmN0aW9uIChhMCwgYTEsIGEyLCBhMywgYTQsIGE1KSB7XG4gICAgICAgIHJldHVybiBmbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgfTtcblxuICAgIGNhc2UgNzpcbiAgICAgIHJldHVybiBmdW5jdGlvbiAoYTAsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYpIHtcbiAgICAgICAgcmV0dXJuIGZuLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICB9O1xuXG4gICAgY2FzZSA4OlxuICAgICAgcmV0dXJuIGZ1bmN0aW9uIChhMCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcpIHtcbiAgICAgICAgcmV0dXJuIGZuLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICB9O1xuXG4gICAgY2FzZSA5OlxuICAgICAgcmV0dXJuIGZ1bmN0aW9uIChhMCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4KSB7XG4gICAgICAgIHJldHVybiBmbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgfTtcblxuICAgIGNhc2UgMTA6XG4gICAgICByZXR1cm4gZnVuY3Rpb24gKGEwLCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5KSB7XG4gICAgICAgIHJldHVybiBmbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgfTtcblxuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZpcnN0IGFyZ3VtZW50IHRvIF9hcml0eSBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIGludGVnZXIgbm8gZ3JlYXRlciB0aGFuIHRlbicpO1xuICB9XG59IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJDb25maWdDb25zdW1lclwiLCB7XG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHJldHVybiBfY29udGV4dC5Db25maWdDb25zdW1lcjtcbiAgfVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IGV4cG9ydHMuY29uZmlnQ29uc3VtZXJQcm9wcyA9IHZvaWQgMDtcblxudmFyIFJlYWN0ID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcblxudmFyIF9sb2NhbGVQcm92aWRlciA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCIuLi9sb2NhbGUtcHJvdmlkZXJcIikpO1xuXG52YXIgX0xvY2FsZVJlY2VpdmVyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vbG9jYWxlLXByb3ZpZGVyL0xvY2FsZVJlY2VpdmVyXCIpKTtcblxudmFyIF9jb250ZXh0ID0gcmVxdWlyZShcIi4vY29udGV4dFwiKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgaWYgKHR5cGVvZiBXZWFrTWFwICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBudWxsOyB2YXIgY2FjaGUgPSBuZXcgV2Vha01hcCgpOyBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUgPSBmdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7IHJldHVybiBjYWNoZTsgfTsgcmV0dXJuIGNhY2hlOyB9XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKG9iaikgeyBpZiAob2JqICYmIG9iai5fX2VzTW9kdWxlKSB7IHJldHVybiBvYmo7IH0gaWYgKG9iaiA9PT0gbnVsbCB8fCBfdHlwZW9mKG9iaikgIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIG9iaiAhPT0gXCJmdW5jdGlvblwiKSB7IHJldHVybiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfSB2YXIgY2FjaGUgPSBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKTsgaWYgKGNhY2hlICYmIGNhY2hlLmhhcyhvYmopKSB7IHJldHVybiBjYWNoZS5nZXQob2JqKTsgfSB2YXIgbmV3T2JqID0ge307IHZhciBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjsgZm9yICh2YXIga2V5IGluIG9iaikgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkgeyB2YXIgZGVzYyA9IGhhc1Byb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDogbnVsbDsgaWYgKGRlc2MgJiYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpOyB9IGVsc2UgeyBuZXdPYmpba2V5XSA9IG9ialtrZXldOyB9IH0gfSBuZXdPYmpbXCJkZWZhdWx0XCJdID0gb2JqOyBpZiAoY2FjaGUpIHsgY2FjaGUuc2V0KG9iaiwgbmV3T2JqKTsgfSByZXR1cm4gbmV3T2JqOyB9XG5cbmZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjsgaWYgKHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09PSBcInN5bWJvbFwiKSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gdHlwZW9mIG9iajsgfTsgfSBlbHNlIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiBvYmogJiYgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG9iaiAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqOyB9OyB9IHJldHVybiBfdHlwZW9mKG9iaik7IH1cblxuZnVuY3Rpb24gX2V4dGVuZHMoKSB7IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTsgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfVxuXG5mdW5jdGlvbiBfY3JlYXRlQ2xhc3MoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7IGlmIChwcm90b1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSBcImZ1bmN0aW9uXCIgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb25cIik7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgX3NldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKTsgfVxuXG5mdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkgeyBfc2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgby5fX3Byb3RvX18gPSBwOyByZXR1cm4gbzsgfTsgcmV0dXJuIF9zZXRQcm90b3R5cGVPZihvLCBwKTsgfVxuXG5mdW5jdGlvbiBfY3JlYXRlU3VwZXIoRGVyaXZlZCkgeyB2YXIgaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCA9IF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKTsgcmV0dXJuIGZ1bmN0aW9uIF9jcmVhdGVTdXBlckludGVybmFsKCkgeyB2YXIgU3VwZXIgPSBfZ2V0UHJvdG90eXBlT2YoRGVyaXZlZCksIHJlc3VsdDsgaWYgKGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QpIHsgdmFyIE5ld1RhcmdldCA9IF9nZXRQcm90b3R5cGVPZih0aGlzKS5jb25zdHJ1Y3RvcjsgcmVzdWx0ID0gUmVmbGVjdC5jb25zdHJ1Y3QoU3VwZXIsIGFyZ3VtZW50cywgTmV3VGFyZ2V0KTsgfSBlbHNlIHsgcmVzdWx0ID0gU3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfSByZXR1cm4gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgcmVzdWx0KTsgfTsgfVxuXG5mdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLCBjYWxsKSB7IGlmIChjYWxsICYmIChfdHlwZW9mKGNhbGwpID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpKSB7IHJldHVybiBjYWxsOyB9IHJldHVybiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpOyB9XG5cbmZ1bmN0aW9uIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZikgeyBpZiAoc2VsZiA9PT0gdm9pZCAwKSB7IHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTsgfSByZXR1cm4gc2VsZjsgfVxuXG5mdW5jdGlvbiBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCkgeyBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwidW5kZWZpbmVkXCIgfHwgIVJlZmxlY3QuY29uc3RydWN0KSByZXR1cm4gZmFsc2U7IGlmIChSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKSByZXR1cm4gZmFsc2U7IGlmICh0eXBlb2YgUHJveHkgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIHRydWU7IHRyeSB7IERhdGUucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoRGF0ZSwgW10sIGZ1bmN0aW9uICgpIHt9KSk7IHJldHVybiB0cnVlOyB9IGNhdGNoIChlKSB7IHJldHVybiBmYWxzZTsgfSB9XG5cbmZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IF9nZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5nZXRQcm90b3R5cGVPZiA6IGZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IHJldHVybiBvLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2Yobyk7IH07IHJldHVybiBfZ2V0UHJvdG90eXBlT2Yobyk7IH1cblxudmFyIGNvbmZpZ0NvbnN1bWVyUHJvcHMgPSBbJ2dldFBvcHVwQ29udGFpbmVyJywgJ3Jvb3RQcmVmaXhDbHMnLCAnZ2V0UHJlZml4Q2xzJywgJ3JlbmRlckVtcHR5JywgJ2NzcCcsICdhdXRvSW5zZXJ0U3BhY2VJbkJ1dHRvbicsICdsb2NhbGUnLCAncGFnZUhlYWRlciddO1xuZXhwb3J0cy5jb25maWdDb25zdW1lclByb3BzID0gY29uZmlnQ29uc3VtZXJQcm9wcztcblxudmFyIENvbmZpZ1Byb3ZpZGVyID0gLyojX19QVVJFX18qL2Z1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhDb25maWdQcm92aWRlciwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgdmFyIF9zdXBlciA9IF9jcmVhdGVTdXBlcihDb25maWdQcm92aWRlcik7XG5cbiAgZnVuY3Rpb24gQ29uZmlnUHJvdmlkZXIoKSB7XG4gICAgdmFyIF90aGlzO1xuXG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIENvbmZpZ1Byb3ZpZGVyKTtcblxuICAgIF90aGlzID0gX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG5cbiAgICBfdGhpcy5nZXRQcmVmaXhDbHMgPSBmdW5jdGlvbiAoc3VmZml4Q2xzLCBjdXN0b21pemVQcmVmaXhDbHMpIHtcbiAgICAgIHZhciBfdGhpcyRwcm9wcyRwcmVmaXhDbHMgPSBfdGhpcy5wcm9wcy5wcmVmaXhDbHMsXG4gICAgICAgICAgcHJlZml4Q2xzID0gX3RoaXMkcHJvcHMkcHJlZml4Q2xzID09PSB2b2lkIDAgPyAnYW50JyA6IF90aGlzJHByb3BzJHByZWZpeENscztcbiAgICAgIGlmIChjdXN0b21pemVQcmVmaXhDbHMpIHJldHVybiBjdXN0b21pemVQcmVmaXhDbHM7XG4gICAgICByZXR1cm4gc3VmZml4Q2xzID8gXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1cIikuY29uY2F0KHN1ZmZpeENscykgOiBwcmVmaXhDbHM7XG4gICAgfTtcblxuICAgIF90aGlzLnJlbmRlclByb3ZpZGVyID0gZnVuY3Rpb24gKGNvbnRleHQsIGxlZ2FjeUxvY2FsZSkge1xuICAgICAgdmFyIF90aGlzJHByb3BzID0gX3RoaXMucHJvcHMsXG4gICAgICAgICAgY2hpbGRyZW4gPSBfdGhpcyRwcm9wcy5jaGlsZHJlbixcbiAgICAgICAgICBnZXRQb3B1cENvbnRhaW5lciA9IF90aGlzJHByb3BzLmdldFBvcHVwQ29udGFpbmVyLFxuICAgICAgICAgIHJlbmRlckVtcHR5ID0gX3RoaXMkcHJvcHMucmVuZGVyRW1wdHksXG4gICAgICAgICAgY3NwID0gX3RoaXMkcHJvcHMuY3NwLFxuICAgICAgICAgIGF1dG9JbnNlcnRTcGFjZUluQnV0dG9uID0gX3RoaXMkcHJvcHMuYXV0b0luc2VydFNwYWNlSW5CdXR0b24sXG4gICAgICAgICAgbG9jYWxlID0gX3RoaXMkcHJvcHMubG9jYWxlLFxuICAgICAgICAgIHBhZ2VIZWFkZXIgPSBfdGhpcyRwcm9wcy5wYWdlSGVhZGVyO1xuXG4gICAgICB2YXIgY29uZmlnID0gX2V4dGVuZHMoX2V4dGVuZHMoe30sIGNvbnRleHQpLCB7XG4gICAgICAgIGdldFByZWZpeENsczogX3RoaXMuZ2V0UHJlZml4Q2xzLFxuICAgICAgICBjc3A6IGNzcCxcbiAgICAgICAgYXV0b0luc2VydFNwYWNlSW5CdXR0b246IGF1dG9JbnNlcnRTcGFjZUluQnV0dG9uXG4gICAgICB9KTtcblxuICAgICAgaWYgKGdldFBvcHVwQ29udGFpbmVyKSB7XG4gICAgICAgIGNvbmZpZy5nZXRQb3B1cENvbnRhaW5lciA9IGdldFBvcHVwQ29udGFpbmVyO1xuICAgICAgfVxuXG4gICAgICBpZiAocmVuZGVyRW1wdHkpIHtcbiAgICAgICAgY29uZmlnLnJlbmRlckVtcHR5ID0gcmVuZGVyRW1wdHk7XG4gICAgICB9XG5cbiAgICAgIGlmIChwYWdlSGVhZGVyKSB7XG4gICAgICAgIGNvbmZpZy5wYWdlSGVhZGVyID0gcGFnZUhlYWRlcjtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9jb250ZXh0LkNvbmZpZ0NvbnRleHQuUHJvdmlkZXIsIHtcbiAgICAgICAgdmFsdWU6IGNvbmZpZ1xuICAgICAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX2xvY2FsZVByb3ZpZGVyW1wiZGVmYXVsdFwiXSwge1xuICAgICAgICBsb2NhbGU6IGxvY2FsZSB8fCBsZWdhY3lMb2NhbGUsXG4gICAgICAgIF9BTlRfTUFSS19fOiBfbG9jYWxlUHJvdmlkZXIuQU5UX01BUktcbiAgICAgIH0sIGNoaWxkcmVuKSk7XG4gICAgfTtcblxuICAgIHJldHVybiBfdGhpcztcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhDb25maWdQcm92aWRlciwgW3tcbiAgICBrZXk6IFwicmVuZGVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX0xvY2FsZVJlY2VpdmVyW1wiZGVmYXVsdFwiXSwgbnVsbCwgZnVuY3Rpb24gKF8sIF9fLCBsZWdhY3lMb2NhbGUpIHtcbiAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9jb250ZXh0LkNvbmZpZ0NvbnN1bWVyLCBudWxsLCBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgICAgICAgIHJldHVybiBfdGhpczIucmVuZGVyUHJvdmlkZXIoY29udGV4dCwgbGVnYWN5TG9jYWxlKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gQ29uZmlnUHJvdmlkZXI7XG59KFJlYWN0LkNvbXBvbmVudCk7XG5cbnZhciBfZGVmYXVsdCA9IENvbmZpZ1Byb3ZpZGVyO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBfZGVmYXVsdDsiLCIvKiogQGxpY2Vuc2UgSVNDIExpY2Vuc2UgKGMpIGNvcHlyaWdodCAyMDE2IG9yaWdpbmFsIGFuZCBjdXJyZW50IGF1dGhvcnMgKi9cbi8qKiBAYXV0aG9yIElhbiBIb2ZtYW5uLUhpY2tzIChldmlsKSAqL1xuXG4vLyBpc0Z1bmN0aW9uIDogYSAtPiBCb29sZWFuXG5mdW5jdGlvbiBpc0Z1bmN0aW9uKGZuKSB7XG4gIHJldHVybiB0eXBlb2YgZm4gPT09ICdmdW5jdGlvbidcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc0Z1bmN0aW9uXG4iLCJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gdm9pZCAwO1xuXG52YXIgX2dyaWQgPSByZXF1aXJlKFwiLi4vZ3JpZFwiKTtcblxudmFyIF9kZWZhdWx0ID0gX2dyaWQuQ29sO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBfZGVmYXVsdDsiLCJ2YXIgb2JqO1xudmFyIE5PVEhJTkcgPSB0eXBlb2YgU3ltYm9sICE9PSBcInVuZGVmaW5lZFwiID8gU3ltYm9sKFwiaW1tZXItbm90aGluZ1wiKSA6ICggb2JqID0ge30sIG9ialtcImltbWVyLW5vdGhpbmdcIl0gPSB0cnVlLCBvYmogKTtcbnZhciBEUkFGVEFCTEUgPSB0eXBlb2YgU3ltYm9sICE9PSBcInVuZGVmaW5lZFwiICYmIFN5bWJvbC5mb3IgPyBTeW1ib2wuZm9yKFwiaW1tZXItZHJhZnRhYmxlXCIpIDogXCJfXyRpbW1lcl9kcmFmdGFibGVcIjtcbnZhciBEUkFGVF9TVEFURSA9IHR5cGVvZiBTeW1ib2wgIT09IFwidW5kZWZpbmVkXCIgJiYgU3ltYm9sLmZvciA/IFN5bWJvbC5mb3IoXCJpbW1lci1zdGF0ZVwiKSA6IFwiX18kaW1tZXJfc3RhdGVcIjtcbmZ1bmN0aW9uIGlzRHJhZnQodmFsdWUpIHtcbiAgcmV0dXJuICEhdmFsdWUgJiYgISF2YWx1ZVtEUkFGVF9TVEFURV07XG59XG5mdW5jdGlvbiBpc0RyYWZ0YWJsZSh2YWx1ZSkge1xuICBpZiAoIXZhbHVlIHx8IHR5cGVvZiB2YWx1ZSAhPT0gXCJvYmplY3RcIikgeyByZXR1cm4gZmFsc2U7IH1cbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7IHJldHVybiB0cnVlOyB9XG4gIHZhciBwcm90byA9IE9iamVjdC5nZXRQcm90b3R5cGVPZih2YWx1ZSk7XG4gIGlmICghcHJvdG8gfHwgcHJvdG8gPT09IE9iamVjdC5wcm90b3R5cGUpIHsgcmV0dXJuIHRydWU7IH1cbiAgcmV0dXJuICEhdmFsdWVbRFJBRlRBQkxFXSB8fCAhIXZhbHVlLmNvbnN0cnVjdG9yW0RSQUZUQUJMRV07XG59XG5mdW5jdGlvbiBvcmlnaW5hbCh2YWx1ZSkge1xuICBpZiAodmFsdWUgJiYgdmFsdWVbRFJBRlRfU1RBVEVdKSB7XG4gICAgcmV0dXJuIHZhbHVlW0RSQUZUX1NUQVRFXS5iYXNlO1xuICB9IC8vIG90aGVyd2lzZSByZXR1cm4gdW5kZWZpbmVkXG5cbn1cbnZhciBhc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uIGFzc2lnbih0YXJnZXQsIHZhbHVlKSB7XG4gIGZvciAodmFyIGtleSBpbiB2YWx1ZSkge1xuICAgIGlmIChoYXModmFsdWUsIGtleSkpIHtcbiAgICAgIHRhcmdldFtrZXldID0gdmFsdWVba2V5XTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGFyZ2V0O1xufTtcbnZhciBvd25LZXlzID0gdHlwZW9mIFJlZmxlY3QgIT09IFwidW5kZWZpbmVkXCIgJiYgUmVmbGVjdC5vd25LZXlzID8gUmVmbGVjdC5vd25LZXlzIDogdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgIT09IFwidW5kZWZpbmVkXCIgPyBmdW5jdGlvbiAob2JqKSB7IHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvYmopLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG9iaikpOyB9IDogT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXM7XG5mdW5jdGlvbiBzaGFsbG93Q29weShiYXNlLCBpbnZva2VHZXR0ZXJzKSB7XG4gIGlmICggaW52b2tlR2V0dGVycyA9PT0gdm9pZCAwICkgaW52b2tlR2V0dGVycyA9IGZhbHNlO1xuXG4gIGlmIChBcnJheS5pc0FycmF5KGJhc2UpKSB7IHJldHVybiBiYXNlLnNsaWNlKCk7IH1cbiAgdmFyIGNsb25lID0gT2JqZWN0LmNyZWF0ZShPYmplY3QuZ2V0UHJvdG90eXBlT2YoYmFzZSkpO1xuICBvd25LZXlzKGJhc2UpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgIGlmIChrZXkgPT09IERSQUZUX1NUQVRFKSB7XG4gICAgICByZXR1cm47IC8vIE5ldmVyIGNvcHkgb3ZlciBkcmFmdCBzdGF0ZS5cbiAgICB9XG5cbiAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYmFzZSwga2V5KTtcbiAgICB2YXIgdmFsdWUgPSBkZXNjLnZhbHVlO1xuXG4gICAgaWYgKGRlc2MuZ2V0KSB7XG4gICAgICBpZiAoaW52b2tlR2V0dGVycykge1xuICAgICAgICB2YWx1ZSA9IGRlc2MuZ2V0LmNhbGwoYmFzZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGRlc2MuZW51bWVyYWJsZSkge1xuICAgICAgY2xvbmVba2V5XSA9IHZhbHVlO1xuICAgIH0gZWxzZSBpZiAoaW52b2tlR2V0dGVycykge1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNsb25lLCBrZXksIHtcbiAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICB9KTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gY2xvbmU7XG59XG5mdW5jdGlvbiBlYWNoKHZhbHVlLCBjYikge1xuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7IGNiKGksIHZhbHVlW2ldLCB2YWx1ZSk7IH1cbiAgfSBlbHNlIHtcbiAgICBvd25LZXlzKHZhbHVlKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHsgcmV0dXJuIGNiKGtleSwgdmFsdWVba2V5XSwgdmFsdWUpOyB9KTtcbiAgfVxufVxuZnVuY3Rpb24gaXNFbnVtZXJhYmxlKGJhc2UsIHByb3ApIHtcbiAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGJhc2UsIHByb3ApO1xuICByZXR1cm4gISFkZXNjICYmIGRlc2MuZW51bWVyYWJsZTtcbn1cbmZ1bmN0aW9uIGhhcyh0aGluZywgcHJvcCkge1xuICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaW5nLCBwcm9wKTtcbn1cbmZ1bmN0aW9uIGlzKHgsIHkpIHtcbiAgLy8gRnJvbTogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL2ZianMvYmxvYi9jNjk5MDRhNTExYjkwMDI2NjkzNTE2ODIyMzA2M2RkODc3MmRmYzQwL3BhY2thZ2VzL2ZianMvc3JjL2NvcmUvc2hhbGxvd0VxdWFsLmpzXG4gIGlmICh4ID09PSB5KSB7XG4gICAgcmV0dXJuIHggIT09IDAgfHwgMSAvIHggPT09IDEgLyB5O1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB4ICE9PSB4ICYmIHkgIT09IHk7XG4gIH1cbn1cblxuLyoqIEVhY2ggc2NvcGUgcmVwcmVzZW50cyBhIGBwcm9kdWNlYCBjYWxsLiAqL1xuXG52YXIgSW1tZXJTY29wZSA9IGZ1bmN0aW9uIEltbWVyU2NvcGUocGFyZW50KSB7XG4gIHRoaXMuZHJhZnRzID0gW107XG4gIHRoaXMucGFyZW50ID0gcGFyZW50OyAvLyBXaGVuZXZlciB0aGUgbW9kaWZpZWQgZHJhZnQgY29udGFpbnMgYSBkcmFmdCBmcm9tIGFub3RoZXIgc2NvcGUsIHdlXG4gIC8vIG5lZWQgdG8gcHJldmVudCBhdXRvLWZyZWV6aW5nIHNvIHRoZSB1bm93bmVkIGRyYWZ0IGNhbiBiZSBmaW5hbGl6ZWQuXG5cbiAgdGhpcy5jYW5BdXRvRnJlZXplID0gdHJ1ZTsgLy8gVG8gYXZvaWQgcHJvdG90eXBlIGxvb2t1cHM6XG5cbiAgdGhpcy5wYXRjaGVzID0gbnVsbDtcbn07XG5cbkltbWVyU2NvcGUucHJvdG90eXBlLnVzZVBhdGNoZXMgPSBmdW5jdGlvbiB1c2VQYXRjaGVzIChwYXRjaExpc3RlbmVyKSB7XG4gIGlmIChwYXRjaExpc3RlbmVyKSB7XG4gICAgdGhpcy5wYXRjaGVzID0gW107XG4gICAgdGhpcy5pbnZlcnNlUGF0Y2hlcyA9IFtdO1xuICAgIHRoaXMucGF0Y2hMaXN0ZW5lciA9IHBhdGNoTGlzdGVuZXI7XG4gIH1cbn07XG5cbkltbWVyU2NvcGUucHJvdG90eXBlLnJldm9rZSA9IGZ1bmN0aW9uIHJldm9rZSQxICgpIHtcbiAgdGhpcy5sZWF2ZSgpO1xuICB0aGlzLmRyYWZ0cy5mb3JFYWNoKHJldm9rZSk7XG4gIHRoaXMuZHJhZnRzID0gbnVsbDsgLy8gTWFrZSBkcmFmdC1yZWxhdGVkIG1ldGhvZHMgdGhyb3cuXG59O1xuXG5JbW1lclNjb3BlLnByb3RvdHlwZS5sZWF2ZSA9IGZ1bmN0aW9uIGxlYXZlICgpIHtcbiAgaWYgKHRoaXMgPT09IEltbWVyU2NvcGUuY3VycmVudCkge1xuICAgIEltbWVyU2NvcGUuY3VycmVudCA9IHRoaXMucGFyZW50O1xuICB9XG59O1xuSW1tZXJTY29wZS5jdXJyZW50ID0gbnVsbDtcblxuSW1tZXJTY29wZS5lbnRlciA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHRoaXMuY3VycmVudCA9IG5ldyBJbW1lclNjb3BlKHRoaXMuY3VycmVudCk7XG59O1xuXG5mdW5jdGlvbiByZXZva2UoZHJhZnQpIHtcbiAgZHJhZnRbRFJBRlRfU1RBVEVdLnJldm9rZSgpO1xufVxuXG4vLyBidXQgc2hhcmUgdGhlbSBhbGwgaW5zdGVhZFxuXG52YXIgZGVzY3JpcHRvcnMgPSB7fTtcbmZ1bmN0aW9uIHdpbGxGaW5hbGl6ZShzY29wZSwgcmVzdWx0LCBpc1JlcGxhY2VkKSB7XG4gIHNjb3BlLmRyYWZ0cy5mb3JFYWNoKGZ1bmN0aW9uIChkcmFmdCkge1xuICAgIGRyYWZ0W0RSQUZUX1NUQVRFXS5maW5hbGl6aW5nID0gdHJ1ZTtcbiAgfSk7XG5cbiAgaWYgKCFpc1JlcGxhY2VkKSB7XG4gICAgaWYgKHNjb3BlLnBhdGNoZXMpIHtcbiAgICAgIG1hcmtDaGFuZ2VzUmVjdXJzaXZlbHkoc2NvcGUuZHJhZnRzWzBdKTtcbiAgICB9IC8vIFRoaXMgaXMgZmFzdGVyIHdoZW4gd2UgZG9uJ3QgY2FyZSBhYm91dCB3aGljaCBhdHRyaWJ1dGVzIGNoYW5nZWQuXG5cblxuICAgIG1hcmtDaGFuZ2VzU3dlZXAoc2NvcGUuZHJhZnRzKTtcbiAgfSAvLyBXaGVuIGEgY2hpbGQgZHJhZnQgaXMgcmV0dXJuZWQsIGxvb2sgZm9yIGNoYW5nZXMuXG4gIGVsc2UgaWYgKGlzRHJhZnQocmVzdWx0KSAmJiByZXN1bHRbRFJBRlRfU1RBVEVdLnNjb3BlID09PSBzY29wZSkge1xuICAgICAgbWFya0NoYW5nZXNTd2VlcChzY29wZS5kcmFmdHMpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGNyZWF0ZVByb3h5KGJhc2UsIHBhcmVudCkge1xuICB2YXIgaXNBcnJheSA9IEFycmF5LmlzQXJyYXkoYmFzZSk7XG4gIHZhciBkcmFmdCA9IGNsb25lUG90ZW50aWFsRHJhZnQoYmFzZSk7XG4gIGVhY2goZHJhZnQsIGZ1bmN0aW9uIChwcm9wKSB7XG4gICAgcHJveHlQcm9wZXJ0eShkcmFmdCwgcHJvcCwgaXNBcnJheSB8fCBpc0VudW1lcmFibGUoYmFzZSwgcHJvcCkpO1xuICB9KTsgLy8gU2VlIFwicHJveHkuanNcIiBmb3IgcHJvcGVydHkgZG9jdW1lbnRhdGlvbi5cblxuICB2YXIgc2NvcGUgPSBwYXJlbnQgPyBwYXJlbnQuc2NvcGUgOiBJbW1lclNjb3BlLmN1cnJlbnQ7XG4gIHZhciBzdGF0ZSA9IHtcbiAgICBzY29wZTogc2NvcGUsXG4gICAgbW9kaWZpZWQ6IGZhbHNlLFxuICAgIGZpbmFsaXppbmc6IGZhbHNlLFxuICAgIC8vIGVzNSBvbmx5XG4gICAgZmluYWxpemVkOiBmYWxzZSxcbiAgICBhc3NpZ25lZDoge30sXG4gICAgcGFyZW50OiBwYXJlbnQsXG4gICAgYmFzZTogYmFzZSxcbiAgICBkcmFmdDogZHJhZnQsXG4gICAgY29weTogbnVsbCxcbiAgICByZXZva2U6IHJldm9rZSQxLFxuICAgIHJldm9rZWQ6IGZhbHNlIC8vIGVzNSBvbmx5XG5cbiAgfTtcbiAgY3JlYXRlSGlkZGVuUHJvcGVydHkoZHJhZnQsIERSQUZUX1NUQVRFLCBzdGF0ZSk7XG4gIHNjb3BlLmRyYWZ0cy5wdXNoKGRyYWZ0KTtcbiAgcmV0dXJuIGRyYWZ0O1xufVxuXG5mdW5jdGlvbiByZXZva2UkMSgpIHtcbiAgdGhpcy5yZXZva2VkID0gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gc291cmNlKHN0YXRlKSB7XG4gIHJldHVybiBzdGF0ZS5jb3B5IHx8IHN0YXRlLmJhc2U7XG59IC8vIEFjY2VzcyBhIHByb3BlcnR5IHdpdGhvdXQgY3JlYXRpbmcgYW4gSW1tZXIgZHJhZnQuXG5cblxuZnVuY3Rpb24gcGVlayhkcmFmdCwgcHJvcCkge1xuICB2YXIgc3RhdGUgPSBkcmFmdFtEUkFGVF9TVEFURV07XG5cbiAgaWYgKHN0YXRlICYmICFzdGF0ZS5maW5hbGl6aW5nKSB7XG4gICAgc3RhdGUuZmluYWxpemluZyA9IHRydWU7XG4gICAgdmFyIHZhbHVlID0gZHJhZnRbcHJvcF07XG4gICAgc3RhdGUuZmluYWxpemluZyA9IGZhbHNlO1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIHJldHVybiBkcmFmdFtwcm9wXTtcbn1cblxuZnVuY3Rpb24gZ2V0KHN0YXRlLCBwcm9wKSB7XG4gIGFzc2VydFVucmV2b2tlZChzdGF0ZSk7XG4gIHZhciB2YWx1ZSA9IHBlZWsoc291cmNlKHN0YXRlKSwgcHJvcCk7XG4gIGlmIChzdGF0ZS5maW5hbGl6aW5nKSB7IHJldHVybiB2YWx1ZTsgfSAvLyBDcmVhdGUgYSBkcmFmdCBpZiB0aGUgdmFsdWUgaXMgdW5tb2RpZmllZC5cblxuICBpZiAodmFsdWUgPT09IHBlZWsoc3RhdGUuYmFzZSwgcHJvcCkgJiYgaXNEcmFmdGFibGUodmFsdWUpKSB7XG4gICAgcHJlcGFyZUNvcHkoc3RhdGUpO1xuICAgIHJldHVybiBzdGF0ZS5jb3B5W3Byb3BdID0gY3JlYXRlUHJveHkodmFsdWUsIHN0YXRlKTtcbiAgfVxuXG4gIHJldHVybiB2YWx1ZTtcbn1cblxuZnVuY3Rpb24gc2V0KHN0YXRlLCBwcm9wLCB2YWx1ZSkge1xuICBhc3NlcnRVbnJldm9rZWQoc3RhdGUpO1xuICBzdGF0ZS5hc3NpZ25lZFtwcm9wXSA9IHRydWU7XG5cbiAgaWYgKCFzdGF0ZS5tb2RpZmllZCkge1xuICAgIGlmIChpcyh2YWx1ZSwgcGVlayhzb3VyY2Uoc3RhdGUpLCBwcm9wKSkpIHsgcmV0dXJuOyB9XG4gICAgbWFya0NoYW5nZWQoc3RhdGUpO1xuICAgIHByZXBhcmVDb3B5KHN0YXRlKTtcbiAgfVxuXG4gIHN0YXRlLmNvcHlbcHJvcF0gPSB2YWx1ZTtcbn1cblxuZnVuY3Rpb24gbWFya0NoYW5nZWQoc3RhdGUpIHtcbiAgaWYgKCFzdGF0ZS5tb2RpZmllZCkge1xuICAgIHN0YXRlLm1vZGlmaWVkID0gdHJ1ZTtcbiAgICBpZiAoc3RhdGUucGFyZW50KSB7IG1hcmtDaGFuZ2VkKHN0YXRlLnBhcmVudCk7IH1cbiAgfVxufVxuXG5mdW5jdGlvbiBwcmVwYXJlQ29weShzdGF0ZSkge1xuICBpZiAoIXN0YXRlLmNvcHkpIHsgc3RhdGUuY29weSA9IGNsb25lUG90ZW50aWFsRHJhZnQoc3RhdGUuYmFzZSk7IH1cbn1cblxuZnVuY3Rpb24gY2xvbmVQb3RlbnRpYWxEcmFmdChiYXNlKSB7XG4gIHZhciBzdGF0ZSA9IGJhc2UgJiYgYmFzZVtEUkFGVF9TVEFURV07XG5cbiAgaWYgKHN0YXRlKSB7XG4gICAgc3RhdGUuZmluYWxpemluZyA9IHRydWU7XG4gICAgdmFyIGRyYWZ0ID0gc2hhbGxvd0NvcHkoc3RhdGUuZHJhZnQsIHRydWUpO1xuICAgIHN0YXRlLmZpbmFsaXppbmcgPSBmYWxzZTtcbiAgICByZXR1cm4gZHJhZnQ7XG4gIH1cblxuICByZXR1cm4gc2hhbGxvd0NvcHkoYmFzZSk7XG59XG5cbmZ1bmN0aW9uIHByb3h5UHJvcGVydHkoZHJhZnQsIHByb3AsIGVudW1lcmFibGUpIHtcbiAgdmFyIGRlc2MgPSBkZXNjcmlwdG9yc1twcm9wXTtcblxuICBpZiAoZGVzYykge1xuICAgIGRlc2MuZW51bWVyYWJsZSA9IGVudW1lcmFibGU7XG4gIH0gZWxzZSB7XG4gICAgZGVzY3JpcHRvcnNbcHJvcF0gPSBkZXNjID0ge1xuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgZW51bWVyYWJsZTogZW51bWVyYWJsZSxcblxuICAgICAgZ2V0OiBmdW5jdGlvbiBnZXQkMSgpIHtcbiAgICAgICAgcmV0dXJuIGdldCh0aGlzW0RSQUZUX1NUQVRFXSwgcHJvcCk7XG4gICAgICB9LFxuXG4gICAgICBzZXQ6IGZ1bmN0aW9uIHNldCQxKHZhbHVlKSB7XG4gICAgICAgIHNldCh0aGlzW0RSQUZUX1NUQVRFXSwgcHJvcCwgdmFsdWUpO1xuICAgICAgfVxuXG4gICAgfTtcbiAgfVxuXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkcmFmdCwgcHJvcCwgZGVzYyk7XG59XG5cbmZ1bmN0aW9uIGFzc2VydFVucmV2b2tlZChzdGF0ZSkge1xuICBpZiAoc3RhdGUucmV2b2tlZCA9PT0gdHJ1ZSkgeyB0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgdXNlIGEgcHJveHkgdGhhdCBoYXMgYmVlbiByZXZva2VkLiBEaWQgeW91IHBhc3MgYW4gb2JqZWN0IGZyb20gaW5zaWRlIGFuIGltbWVyIGZ1bmN0aW9uIHRvIGFuIGFzeW5jIHByb2Nlc3M/IFwiICsgSlNPTi5zdHJpbmdpZnkoc291cmNlKHN0YXRlKSkpOyB9XG59IC8vIFRoaXMgbG9va3MgZXhwZW5zaXZlLCBidXQgb25seSBwcm94aWVzIGFyZSB2aXNpdGVkLCBhbmQgb25seSBvYmplY3RzIHdpdGhvdXQga25vd24gY2hhbmdlcyBhcmUgc2Nhbm5lZC5cblxuXG5mdW5jdGlvbiBtYXJrQ2hhbmdlc1N3ZWVwKGRyYWZ0cykge1xuICAvLyBUaGUgbmF0dXJhbCBvcmRlciBvZiBkcmFmdHMgaW4gdGhlIGBzY29wZWAgYXJyYXkgaXMgYmFzZWQgb24gd2hlbiB0aGV5XG4gIC8vIHdlcmUgYWNjZXNzZWQuIEJ5IHByb2Nlc3NpbmcgZHJhZnRzIGluIHJldmVyc2UgbmF0dXJhbCBvcmRlciwgd2UgaGF2ZSBhXG4gIC8vIGJldHRlciBjaGFuY2Ugb2YgcHJvY2Vzc2luZyBsZWFmIG5vZGVzIGZpcnN0LiBXaGVuIGEgbGVhZiBub2RlIGlzIGtub3duIHRvXG4gIC8vIGhhdmUgY2hhbmdlZCwgd2UgY2FuIGF2b2lkIGFueSB0cmF2ZXJzYWwgb2YgaXRzIGFuY2VzdG9yIG5vZGVzLlxuICBmb3IgKHZhciBpID0gZHJhZnRzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgdmFyIHN0YXRlID0gZHJhZnRzW2ldW0RSQUZUX1NUQVRFXTtcblxuICAgIGlmICghc3RhdGUubW9kaWZpZWQpIHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHN0YXRlLmJhc2UpKSB7XG4gICAgICAgIGlmIChoYXNBcnJheUNoYW5nZXMoc3RhdGUpKSB7IG1hcmtDaGFuZ2VkKHN0YXRlKTsgfVxuICAgICAgfSBlbHNlIGlmIChoYXNPYmplY3RDaGFuZ2VzKHN0YXRlKSkgeyBtYXJrQ2hhbmdlZChzdGF0ZSk7IH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gbWFya0NoYW5nZXNSZWN1cnNpdmVseShvYmplY3QpIHtcbiAgaWYgKCFvYmplY3QgfHwgdHlwZW9mIG9iamVjdCAhPT0gXCJvYmplY3RcIikgeyByZXR1cm47IH1cbiAgdmFyIHN0YXRlID0gb2JqZWN0W0RSQUZUX1NUQVRFXTtcbiAgaWYgKCFzdGF0ZSkgeyByZXR1cm47IH1cbiAgdmFyIGJhc2UgPSBzdGF0ZS5iYXNlO1xuICB2YXIgZHJhZnQgPSBzdGF0ZS5kcmFmdDtcbiAgdmFyIGFzc2lnbmVkID0gc3RhdGUuYXNzaWduZWQ7XG5cbiAgaWYgKCFBcnJheS5pc0FycmF5KG9iamVjdCkpIHtcbiAgICAvLyBMb29rIGZvciBhZGRlZCBrZXlzLlxuICAgIE9iamVjdC5rZXlzKGRyYWZ0KS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgIC8vIFRoZSBgdW5kZWZpbmVkYCBjaGVjayBpcyBhIGZhc3QgcGF0aCBmb3IgcHJlLWV4aXN0aW5nIGtleXMuXG4gICAgICBpZiAoYmFzZVtrZXldID09PSB1bmRlZmluZWQgJiYgIWhhcyhiYXNlLCBrZXkpKSB7XG4gICAgICAgIGFzc2lnbmVkW2tleV0gPSB0cnVlO1xuICAgICAgICBtYXJrQ2hhbmdlZChzdGF0ZSk7XG4gICAgICB9IGVsc2UgaWYgKCFhc3NpZ25lZFtrZXldKSB7XG4gICAgICAgIC8vIE9ubHkgdW50b3VjaGVkIHByb3BlcnRpZXMgdHJpZ2dlciByZWN1cnNpb24uXG4gICAgICAgIG1hcmtDaGFuZ2VzUmVjdXJzaXZlbHkoZHJhZnRba2V5XSk7XG4gICAgICB9XG4gICAgfSk7IC8vIExvb2sgZm9yIHJlbW92ZWQga2V5cy5cblxuICAgIE9iamVjdC5rZXlzKGJhc2UpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgLy8gVGhlIGB1bmRlZmluZWRgIGNoZWNrIGlzIGEgZmFzdCBwYXRoIGZvciBwcmUtZXhpc3Rpbmcga2V5cy5cbiAgICAgIGlmIChkcmFmdFtrZXldID09PSB1bmRlZmluZWQgJiYgIWhhcyhkcmFmdCwga2V5KSkge1xuICAgICAgICBhc3NpZ25lZFtrZXldID0gZmFsc2U7XG4gICAgICAgIG1hcmtDaGFuZ2VkKHN0YXRlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSBlbHNlIGlmIChoYXNBcnJheUNoYW5nZXMoc3RhdGUpKSB7XG4gICAgbWFya0NoYW5nZWQoc3RhdGUpO1xuICAgIGFzc2lnbmVkLmxlbmd0aCA9IHRydWU7XG5cbiAgICBpZiAoZHJhZnQubGVuZ3RoIDwgYmFzZS5sZW5ndGgpIHtcbiAgICAgIGZvciAodmFyIGkgPSBkcmFmdC5sZW5ndGg7IGkgPCBiYXNlLmxlbmd0aDsgaSsrKSB7IGFzc2lnbmVkW2ldID0gZmFsc2U7IH1cbiAgICB9IGVsc2Uge1xuICAgICAgZm9yICh2YXIgaSQxID0gYmFzZS5sZW5ndGg7IGkkMSA8IGRyYWZ0Lmxlbmd0aDsgaSQxKyspIHsgYXNzaWduZWRbaSQxXSA9IHRydWU7IH1cbiAgICB9XG5cbiAgICBmb3IgKHZhciBpJDIgPSAwOyBpJDIgPCBkcmFmdC5sZW5ndGg7IGkkMisrKSB7XG4gICAgICAvLyBPbmx5IHVudG91Y2hlZCBpbmRpY2VzIHRyaWdnZXIgcmVjdXJzaW9uLlxuICAgICAgaWYgKGFzc2lnbmVkW2kkMl0gPT09IHVuZGVmaW5lZCkgeyBtYXJrQ2hhbmdlc1JlY3Vyc2l2ZWx5KGRyYWZ0W2kkMl0pOyB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGhhc09iamVjdENoYW5nZXMoc3RhdGUpIHtcbiAgdmFyIGJhc2UgPSBzdGF0ZS5iYXNlO1xuICB2YXIgZHJhZnQgPSBzdGF0ZS5kcmFmdDsgLy8gU2VhcmNoIGZvciBhZGRlZCBrZXlzIGFuZCBjaGFuZ2VkIGtleXMuIFN0YXJ0IGF0IHRoZSBiYWNrLCBiZWNhdXNlXG4gIC8vIG5vbi1udW1lcmljIGtleXMgYXJlIG9yZGVyZWQgYnkgdGltZSBvZiBkZWZpbml0aW9uIG9uIHRoZSBvYmplY3QuXG5cbiAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhkcmFmdCk7XG5cbiAgZm9yICh2YXIgaSA9IGtleXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICB2YXIga2V5ID0ga2V5c1tpXTtcbiAgICB2YXIgYmFzZVZhbHVlID0gYmFzZVtrZXldOyAvLyBUaGUgYHVuZGVmaW5lZGAgY2hlY2sgaXMgYSBmYXN0IHBhdGggZm9yIHByZS1leGlzdGluZyBrZXlzLlxuXG4gICAgaWYgKGJhc2VWYWx1ZSA9PT0gdW5kZWZpbmVkICYmICFoYXMoYmFzZSwga2V5KSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSAvLyBPbmNlIGEgYmFzZSBrZXkgaXMgZGVsZXRlZCwgZnV0dXJlIGNoYW5nZXMgZ28gdW5kZXRlY3RlZCwgYmVjYXVzZSBpdHNcbiAgICAvLyBkZXNjcmlwdG9yIGlzIGVyYXNlZC4gVGhpcyBicmFuY2ggZGV0ZWN0cyBhbnkgbWlzc2VkIGNoYW5nZXMuXG4gICAgZWxzZSB7XG4gICAgICAgIHZhciB2YWx1ZSA9IGRyYWZ0W2tleV07XG4gICAgICAgIHZhciBzdGF0ZSQxID0gdmFsdWUgJiYgdmFsdWVbRFJBRlRfU1RBVEVdO1xuXG4gICAgICAgIGlmIChzdGF0ZSQxID8gc3RhdGUkMS5iYXNlICE9PSBiYXNlVmFsdWUgOiAhaXModmFsdWUsIGJhc2VWYWx1ZSkpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICB9IC8vIEF0IHRoaXMgcG9pbnQsIG5vIGtleXMgd2VyZSBhZGRlZCBvciBjaGFuZ2VkLlxuICAvLyBDb21wYXJlIGtleSBjb3VudCB0byBkZXRlcm1pbmUgaWYga2V5cyB3ZXJlIGRlbGV0ZWQuXG5cblxuICByZXR1cm4ga2V5cy5sZW5ndGggIT09IE9iamVjdC5rZXlzKGJhc2UpLmxlbmd0aDtcbn1cblxuZnVuY3Rpb24gaGFzQXJyYXlDaGFuZ2VzKHN0YXRlKSB7XG4gIHZhciBkcmFmdCA9IHN0YXRlLmRyYWZ0O1xuICBpZiAoZHJhZnQubGVuZ3RoICE9PSBzdGF0ZS5iYXNlLmxlbmd0aCkgeyByZXR1cm4gdHJ1ZTsgfSAvLyBTZWUgIzExNlxuICAvLyBJZiB3ZSBmaXJzdCBzaG9ydGVuIHRoZSBsZW5ndGgsIG91ciBhcnJheSBpbnRlcmNlcHRvcnMgd2lsbCBiZSByZW1vdmVkLlxuICAvLyBJZiBhZnRlciB0aGF0IG5ldyBpdGVtcyBhcmUgYWRkZWQsIHJlc3VsdCBpbiB0aGUgc2FtZSBvcmlnaW5hbCBsZW5ndGgsXG4gIC8vIHRob3NlIGxhc3QgaXRlbXMgd2lsbCBoYXZlIG5vIGludGVyY2VwdGluZyBwcm9wZXJ0eS5cbiAgLy8gU28gaWYgdGhlcmUgaXMgbm8gb3duIGRlc2NyaXB0b3Igb24gdGhlIGxhc3QgcG9zaXRpb24sIHdlIGtub3cgdGhhdCBpdGVtcyB3ZXJlIHJlbW92ZWQgYW5kIGFkZGVkXG4gIC8vIE4uQi46IHNwbGljZSwgdW5zaGlmdCwgZXRjIG9ubHkgc2hpZnQgdmFsdWVzIGFyb3VuZCwgYnV0IG5vdCBwcm9wIGRlc2NyaXB0b3JzLCBzbyB3ZSBvbmx5IGhhdmUgdG8gY2hlY2tcbiAgLy8gdGhlIGxhc3Qgb25lXG5cbiAgdmFyIGRlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGRyYWZ0LCBkcmFmdC5sZW5ndGggLSAxKTsgLy8gZGVzY3JpcHRvciBjYW4gYmUgbnVsbCwgYnV0IG9ubHkgZm9yIG5ld2x5IGNyZWF0ZWQgc3BhcnNlIGFycmF5cywgZWcuIG5ldyBBcnJheSgxMClcblxuICBpZiAoZGVzY3JpcHRvciAmJiAhZGVzY3JpcHRvci5nZXQpIHsgcmV0dXJuIHRydWU7IH0gLy8gRm9yIGFsbCBvdGhlciBjYXNlcywgd2UgZG9uJ3QgaGF2ZSB0byBjb21wYXJlLCBhcyB0aGV5IHdvdWxkIGhhdmUgYmVlbiBwaWNrZWQgdXAgYnkgdGhlIGluZGV4IHNldHRlcnNcblxuICByZXR1cm4gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUhpZGRlblByb3BlcnR5KHRhcmdldCwgcHJvcCwgdmFsdWUpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgcHJvcCwge1xuICAgIHZhbHVlOiB2YWx1ZSxcbiAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICB3cml0YWJsZTogdHJ1ZVxuICB9KTtcbn1cblxudmFyIGxlZ2FjeVByb3h5ID0gLyojX19QVVJFX18qL09iamVjdC5mcmVlemUoe1xuICAgIHdpbGxGaW5hbGl6ZTogd2lsbEZpbmFsaXplLFxuICAgIGNyZWF0ZVByb3h5OiBjcmVhdGVQcm94eVxufSk7XG5cbmZ1bmN0aW9uIHdpbGxGaW5hbGl6ZSQxKCkge31cbmZ1bmN0aW9uIGNyZWF0ZVByb3h5JDEoYmFzZSwgcGFyZW50KSB7XG4gIHZhciBzY29wZSA9IHBhcmVudCA/IHBhcmVudC5zY29wZSA6IEltbWVyU2NvcGUuY3VycmVudDtcbiAgdmFyIHN0YXRlID0ge1xuICAgIC8vIFRyYWNrIHdoaWNoIHByb2R1Y2UgY2FsbCB0aGlzIGlzIGFzc29jaWF0ZWQgd2l0aC5cbiAgICBzY29wZTogc2NvcGUsXG4gICAgLy8gVHJ1ZSBmb3IgYm90aCBzaGFsbG93IGFuZCBkZWVwIGNoYW5nZXMuXG4gICAgbW9kaWZpZWQ6IGZhbHNlLFxuICAgIC8vIFVzZWQgZHVyaW5nIGZpbmFsaXphdGlvbi5cbiAgICBmaW5hbGl6ZWQ6IGZhbHNlLFxuICAgIC8vIFRyYWNrIHdoaWNoIHByb3BlcnRpZXMgaGF2ZSBiZWVuIGFzc2lnbmVkICh0cnVlKSBvciBkZWxldGVkIChmYWxzZSkuXG4gICAgYXNzaWduZWQ6IHt9LFxuICAgIC8vIFRoZSBwYXJlbnQgZHJhZnQgc3RhdGUuXG4gICAgcGFyZW50OiBwYXJlbnQsXG4gICAgLy8gVGhlIGJhc2Ugc3RhdGUuXG4gICAgYmFzZTogYmFzZSxcbiAgICAvLyBUaGUgYmFzZSBwcm94eS5cbiAgICBkcmFmdDogbnVsbCxcbiAgICAvLyBBbnkgcHJvcGVydHkgcHJveGllcy5cbiAgICBkcmFmdHM6IHt9LFxuICAgIC8vIFRoZSBiYXNlIGNvcHkgd2l0aCBhbnkgdXBkYXRlZCB2YWx1ZXMuXG4gICAgY29weTogbnVsbCxcbiAgICAvLyBDYWxsZWQgYnkgdGhlIGBwcm9kdWNlYCBmdW5jdGlvbi5cbiAgICByZXZva2U6IG51bGxcbiAgfTtcbiAgdmFyIHJlZiA9IEFycmF5LmlzQXJyYXkoYmFzZSkgPyAvLyBbc3RhdGVdIGlzIHVzZWQgZm9yIGFycmF5cywgdG8gbWFrZSBzdXJlIHRoZSBwcm94eSBpcyBhcnJheS1pc2ggYW5kIG5vdCB2aW9sYXRlIGludmFyaWFudHMsXG4gIC8vIGFsdGhvdWdoIHN0YXRlIGl0c2VsZiBpcyBhbiBvYmplY3RcbiAgUHJveHkucmV2b2NhYmxlKFtzdGF0ZV0sIGFycmF5VHJhcHMpIDogUHJveHkucmV2b2NhYmxlKHN0YXRlLCBvYmplY3RUcmFwcyk7XG4gIHZhciByZXZva2UgPSByZWYucmV2b2tlO1xuICB2YXIgcHJveHkgPSByZWYucHJveHk7XG4gIHN0YXRlLmRyYWZ0ID0gcHJveHk7XG4gIHN0YXRlLnJldm9rZSA9IHJldm9rZTtcbiAgc2NvcGUuZHJhZnRzLnB1c2gocHJveHkpO1xuICByZXR1cm4gcHJveHk7XG59XG52YXIgb2JqZWN0VHJhcHMgPSB7XG4gIGdldDogZ2V0JDEsXG5cbiAgaGFzOiBmdW5jdGlvbiBoYXModGFyZ2V0LCBwcm9wKSB7XG4gICAgcmV0dXJuIHByb3AgaW4gc291cmNlJDEodGFyZ2V0KTtcbiAgfSxcblxuICBvd25LZXlzOiBmdW5jdGlvbiBvd25LZXlzKHRhcmdldCkge1xuICAgIHJldHVybiBSZWZsZWN0Lm93bktleXMoc291cmNlJDEodGFyZ2V0KSk7XG4gIH0sXG5cbiAgc2V0OiBzZXQkMSxcbiAgZGVsZXRlUHJvcGVydHk6IGRlbGV0ZVByb3BlcnR5LFxuICBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I6IGdldE93blByb3BlcnR5RGVzY3JpcHRvcixcblxuICBkZWZpbmVQcm9wZXJ0eTogZnVuY3Rpb24gZGVmaW5lUHJvcGVydHkoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiT2JqZWN0LmRlZmluZVByb3BlcnR5KCkgY2Fubm90IGJlIHVzZWQgb24gYW4gSW1tZXIgZHJhZnRcIik7IC8vIHByZXR0aWVyLWlnbm9yZVxuICB9LFxuXG4gIGdldFByb3RvdHlwZU9mOiBmdW5jdGlvbiBnZXRQcm90b3R5cGVPZih0YXJnZXQpIHtcbiAgICByZXR1cm4gT2JqZWN0LmdldFByb3RvdHlwZU9mKHRhcmdldC5iYXNlKTtcbiAgfSxcblxuICBzZXRQcm90b3R5cGVPZjogZnVuY3Rpb24gc2V0UHJvdG90eXBlT2YoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiT2JqZWN0LnNldFByb3RvdHlwZU9mKCkgY2Fubm90IGJlIHVzZWQgb24gYW4gSW1tZXIgZHJhZnRcIik7IC8vIHByZXR0aWVyLWlnbm9yZVxuICB9XG5cbn07XG52YXIgYXJyYXlUcmFwcyA9IHt9O1xuZWFjaChvYmplY3RUcmFwcywgZnVuY3Rpb24gKGtleSwgZm4pIHtcbiAgYXJyYXlUcmFwc1trZXldID0gZnVuY3Rpb24gKCkge1xuICAgIGFyZ3VtZW50c1swXSA9IGFyZ3VtZW50c1swXVswXTtcbiAgICByZXR1cm4gZm4uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfTtcbn0pO1xuXG5hcnJheVRyYXBzLmRlbGV0ZVByb3BlcnR5ID0gZnVuY3Rpb24gKHN0YXRlLCBwcm9wKSB7XG4gIGlmIChpc05hTihwYXJzZUludChwcm9wKSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbW1lciBvbmx5IHN1cHBvcnRzIGRlbGV0aW5nIGFycmF5IGluZGljZXNcIik7IC8vIHByZXR0aWVyLWlnbm9yZVxuICB9XG5cbiAgcmV0dXJuIG9iamVjdFRyYXBzLmRlbGV0ZVByb3BlcnR5LmNhbGwodGhpcywgc3RhdGVbMF0sIHByb3ApO1xufTtcblxuYXJyYXlUcmFwcy5zZXQgPSBmdW5jdGlvbiAoc3RhdGUsIHByb3AsIHZhbHVlKSB7XG4gIGlmIChwcm9wICE9PSBcImxlbmd0aFwiICYmIGlzTmFOKHBhcnNlSW50KHByb3ApKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkltbWVyIG9ubHkgc3VwcG9ydHMgc2V0dGluZyBhcnJheSBpbmRpY2VzIGFuZCB0aGUgJ2xlbmd0aCcgcHJvcGVydHlcIik7IC8vIHByZXR0aWVyLWlnbm9yZVxuICB9XG5cbiAgcmV0dXJuIG9iamVjdFRyYXBzLnNldC5jYWxsKHRoaXMsIHN0YXRlWzBdLCBwcm9wLCB2YWx1ZSk7XG59OyAvLyByZXR1cm5zIHRoZSBvYmplY3Qgd2Ugc2hvdWxkIGJlIHJlYWRpbmcgdGhlIGN1cnJlbnQgdmFsdWUgZnJvbSwgd2hpY2ggaXMgYmFzZSwgdW50aWwgc29tZSBjaGFuZ2UgaGFzIGJlZW4gbWFkZVxuXG5cbmZ1bmN0aW9uIHNvdXJjZSQxKHN0YXRlKSB7XG4gIHJldHVybiBzdGF0ZS5jb3B5IHx8IHN0YXRlLmJhc2U7XG59IC8vIEFjY2VzcyBhIHByb3BlcnR5IHdpdGhvdXQgY3JlYXRpbmcgYW4gSW1tZXIgZHJhZnQuXG5cblxuZnVuY3Rpb24gcGVlayQxKGRyYWZ0LCBwcm9wKSB7XG4gIHZhciBzdGF0ZSA9IGRyYWZ0W0RSQUZUX1NUQVRFXTtcbiAgdmFyIGRlc2MgPSBSZWZsZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzdGF0ZSA/IHNvdXJjZSQxKHN0YXRlKSA6IGRyYWZ0LCBwcm9wKTtcbiAgcmV0dXJuIGRlc2MgJiYgZGVzYy52YWx1ZTtcbn1cblxuZnVuY3Rpb24gZ2V0JDEoc3RhdGUsIHByb3ApIHtcbiAgaWYgKHByb3AgPT09IERSQUZUX1NUQVRFKSB7IHJldHVybiBzdGF0ZTsgfVxuICB2YXIgZHJhZnRzID0gc3RhdGUuZHJhZnRzOyAvLyBDaGVjayBmb3IgZXhpc3RpbmcgZHJhZnQgaW4gdW5tb2RpZmllZCBzdGF0ZS5cblxuICBpZiAoIXN0YXRlLm1vZGlmaWVkICYmIGhhcyhkcmFmdHMsIHByb3ApKSB7XG4gICAgcmV0dXJuIGRyYWZ0c1twcm9wXTtcbiAgfVxuXG4gIHZhciB2YWx1ZSA9IHNvdXJjZSQxKHN0YXRlKVtwcm9wXTtcblxuICBpZiAoc3RhdGUuZmluYWxpemVkIHx8ICFpc0RyYWZ0YWJsZSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH0gLy8gQ2hlY2sgZm9yIGV4aXN0aW5nIGRyYWZ0IGluIG1vZGlmaWVkIHN0YXRlLlxuXG5cbiAgaWYgKHN0YXRlLm1vZGlmaWVkKSB7XG4gICAgLy8gQXNzaWduZWQgdmFsdWVzIGFyZSBuZXZlciBkcmFmdGVkLiBUaGlzIGNhdGNoZXMgYW55IGRyYWZ0cyB3ZSBjcmVhdGVkLCB0b28uXG4gICAgaWYgKHZhbHVlICE9PSBwZWVrJDEoc3RhdGUuYmFzZSwgcHJvcCkpIHsgcmV0dXJuIHZhbHVlOyB9IC8vIFN0b3JlIGRyYWZ0cyBvbiB0aGUgY29weSAod2hlbiBvbmUgZXhpc3RzKS5cblxuICAgIGRyYWZ0cyA9IHN0YXRlLmNvcHk7XG4gIH1cblxuICByZXR1cm4gZHJhZnRzW3Byb3BdID0gY3JlYXRlUHJveHkkMSh2YWx1ZSwgc3RhdGUpO1xufVxuXG5mdW5jdGlvbiBzZXQkMShzdGF0ZSwgcHJvcCwgdmFsdWUpIHtcbiAgaWYgKCFzdGF0ZS5tb2RpZmllZCkge1xuICAgIHZhciBiYXNlVmFsdWUgPSBwZWVrJDEoc3RhdGUuYmFzZSwgcHJvcCk7IC8vIE9wdGltaXplIGJhc2VkIG9uIHZhbHVlJ3MgdHJ1dGhpbmVzcy4gVHJ1dGh5IHZhbHVlcyBhcmUgZ3VhcmFudGVlZCB0b1xuICAgIC8vIG5ldmVyIGJlIHVuZGVmaW5lZCwgc28gd2UgY2FuIGF2b2lkIHRoZSBgaW5gIG9wZXJhdG9yLiBMYXN0bHksIHRydXRoeVxuICAgIC8vIHZhbHVlcyBtYXkgYmUgZHJhZnRzLCBidXQgZmFsc3kgdmFsdWVzIGFyZSBuZXZlciBkcmFmdHMuXG5cbiAgICB2YXIgaXNVbmNoYW5nZWQgPSB2YWx1ZSA/IGlzKGJhc2VWYWx1ZSwgdmFsdWUpIHx8IHZhbHVlID09PSBzdGF0ZS5kcmFmdHNbcHJvcF0gOiBpcyhiYXNlVmFsdWUsIHZhbHVlKSAmJiBwcm9wIGluIHN0YXRlLmJhc2U7XG4gICAgaWYgKGlzVW5jaGFuZ2VkKSB7IHJldHVybiB0cnVlOyB9XG4gICAgbWFya0NoYW5nZWQkMShzdGF0ZSk7XG4gIH1cblxuICBzdGF0ZS5hc3NpZ25lZFtwcm9wXSA9IHRydWU7XG4gIHN0YXRlLmNvcHlbcHJvcF0gPSB2YWx1ZTtcbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIGRlbGV0ZVByb3BlcnR5KHN0YXRlLCBwcm9wKSB7XG4gIC8vIFRoZSBgdW5kZWZpbmVkYCBjaGVjayBpcyBhIGZhc3QgcGF0aCBmb3IgcHJlLWV4aXN0aW5nIGtleXMuXG4gIGlmIChwZWVrJDEoc3RhdGUuYmFzZSwgcHJvcCkgIT09IHVuZGVmaW5lZCB8fCBwcm9wIGluIHN0YXRlLmJhc2UpIHtcbiAgICBzdGF0ZS5hc3NpZ25lZFtwcm9wXSA9IGZhbHNlO1xuICAgIG1hcmtDaGFuZ2VkJDEoc3RhdGUpO1xuICB9XG5cbiAgaWYgKHN0YXRlLmNvcHkpIHsgZGVsZXRlIHN0YXRlLmNvcHlbcHJvcF07IH1cbiAgcmV0dXJuIHRydWU7XG59IC8vIE5vdGU6IFdlIG5ldmVyIGNvZXJjZSBgZGVzYy52YWx1ZWAgaW50byBhbiBJbW1lciBkcmFmdCwgYmVjYXVzZSB3ZSBjYW4ndCBtYWtlXG4vLyB0aGUgc2FtZSBndWFyYW50ZWUgaW4gRVM1IG1vZGUuXG5cblxuZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHN0YXRlLCBwcm9wKSB7XG4gIHZhciBvd25lciA9IHNvdXJjZSQxKHN0YXRlKTtcbiAgdmFyIGRlc2MgPSBSZWZsZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvd25lciwgcHJvcCk7XG5cbiAgaWYgKGRlc2MpIHtcbiAgICBkZXNjLndyaXRhYmxlID0gdHJ1ZTtcbiAgICBkZXNjLmNvbmZpZ3VyYWJsZSA9ICFBcnJheS5pc0FycmF5KG93bmVyKSB8fCBwcm9wICE9PSBcImxlbmd0aFwiO1xuICB9XG5cbiAgcmV0dXJuIGRlc2M7XG59XG5cbmZ1bmN0aW9uIG1hcmtDaGFuZ2VkJDEoc3RhdGUpIHtcbiAgaWYgKCFzdGF0ZS5tb2RpZmllZCkge1xuICAgIHN0YXRlLm1vZGlmaWVkID0gdHJ1ZTtcbiAgICBzdGF0ZS5jb3B5ID0gYXNzaWduKHNoYWxsb3dDb3B5KHN0YXRlLmJhc2UpLCBzdGF0ZS5kcmFmdHMpO1xuICAgIHN0YXRlLmRyYWZ0cyA9IG51bGw7XG4gICAgaWYgKHN0YXRlLnBhcmVudCkgeyBtYXJrQ2hhbmdlZCQxKHN0YXRlLnBhcmVudCk7IH1cbiAgfVxufVxuXG52YXIgbW9kZXJuUHJveHkgPSAvKiNfX1BVUkVfXyovT2JqZWN0LmZyZWV6ZSh7XG4gICAgd2lsbEZpbmFsaXplOiB3aWxsRmluYWxpemUkMSxcbiAgICBjcmVhdGVQcm94eTogY3JlYXRlUHJveHkkMVxufSk7XG5cbmZ1bmN0aW9uIGdlbmVyYXRlUGF0Y2hlcyhzdGF0ZSwgYmFzZVBhdGgsIHBhdGNoZXMsIGludmVyc2VQYXRjaGVzKSB7XG4gIEFycmF5LmlzQXJyYXkoc3RhdGUuYmFzZSkgPyBnZW5lcmF0ZUFycmF5UGF0Y2hlcyhzdGF0ZSwgYmFzZVBhdGgsIHBhdGNoZXMsIGludmVyc2VQYXRjaGVzKSA6IGdlbmVyYXRlT2JqZWN0UGF0Y2hlcyhzdGF0ZSwgYmFzZVBhdGgsIHBhdGNoZXMsIGludmVyc2VQYXRjaGVzKTtcbn1cblxuZnVuY3Rpb24gZ2VuZXJhdGVBcnJheVBhdGNoZXMoc3RhdGUsIGJhc2VQYXRoLCBwYXRjaGVzLCBpbnZlcnNlUGF0Y2hlcykge1xuICB2YXIgYXNzaWduLCBhc3NpZ24kMTtcblxuICB2YXIgYmFzZSA9IHN0YXRlLmJhc2U7XG4gIHZhciBjb3B5ID0gc3RhdGUuY29weTtcbiAgdmFyIGFzc2lnbmVkID0gc3RhdGUuYXNzaWduZWQ7IC8vIFJlZHVjZSBjb21wbGV4aXR5IGJ5IGVuc3VyaW5nIGBiYXNlYCBpcyBuZXZlciBsb25nZXIuXG5cbiAgaWYgKGNvcHkubGVuZ3RoIDwgYmFzZS5sZW5ndGgpIHtcbiAgICAoYXNzaWduID0gW2NvcHksIGJhc2VdLCBiYXNlID0gYXNzaWduWzBdLCBjb3B5ID0gYXNzaWduWzFdKTtcbiAgICAoYXNzaWduJDEgPSBbaW52ZXJzZVBhdGNoZXMsIHBhdGNoZXNdLCBwYXRjaGVzID0gYXNzaWduJDFbMF0sIGludmVyc2VQYXRjaGVzID0gYXNzaWduJDFbMV0pO1xuICB9XG5cbiAgdmFyIGRlbHRhID0gY29weS5sZW5ndGggLSBiYXNlLmxlbmd0aDsgLy8gRmluZCB0aGUgZmlyc3QgcmVwbGFjZWQgaW5kZXguXG5cbiAgdmFyIHN0YXJ0ID0gMDtcblxuICB3aGlsZSAoYmFzZVtzdGFydF0gPT09IGNvcHlbc3RhcnRdICYmIHN0YXJ0IDwgYmFzZS5sZW5ndGgpIHtcbiAgICArK3N0YXJ0O1xuICB9IC8vIEZpbmQgdGhlIGxhc3QgcmVwbGFjZWQgaW5kZXguIFNlYXJjaCBmcm9tIHRoZSBlbmQgdG8gb3B0aW1pemUgc3BsaWNlIHBhdGNoZXMuXG5cblxuICB2YXIgZW5kID0gYmFzZS5sZW5ndGg7XG5cbiAgd2hpbGUgKGVuZCA+IHN0YXJ0ICYmIGJhc2VbZW5kIC0gMV0gPT09IGNvcHlbZW5kICsgZGVsdGEgLSAxXSkge1xuICAgIC0tZW5kO1xuICB9IC8vIFByb2Nlc3MgcmVwbGFjZWQgaW5kaWNlcy5cblxuXG4gIGZvciAodmFyIGkgPSBzdGFydDsgaSA8IGVuZDsgKytpKSB7XG4gICAgaWYgKGFzc2lnbmVkW2ldICYmIGNvcHlbaV0gIT09IGJhc2VbaV0pIHtcbiAgICAgIHZhciBwYXRoID0gYmFzZVBhdGguY29uY2F0KFtpXSk7XG4gICAgICBwYXRjaGVzLnB1c2goe1xuICAgICAgICBvcDogXCJyZXBsYWNlXCIsXG4gICAgICAgIHBhdGg6IHBhdGgsXG4gICAgICAgIHZhbHVlOiBjb3B5W2ldXG4gICAgICB9KTtcbiAgICAgIGludmVyc2VQYXRjaGVzLnB1c2goe1xuICAgICAgICBvcDogXCJyZXBsYWNlXCIsXG4gICAgICAgIHBhdGg6IHBhdGgsXG4gICAgICAgIHZhbHVlOiBiYXNlW2ldXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICB2YXIgdXNlUmVtb3ZlID0gZW5kICE9IGJhc2UubGVuZ3RoO1xuICB2YXIgcmVwbGFjZUNvdW50ID0gcGF0Y2hlcy5sZW5ndGg7IC8vIFByb2Nlc3MgYWRkZWQgaW5kaWNlcy5cblxuICBmb3IgKHZhciBpJDEgPSBlbmQgKyBkZWx0YSAtIDE7IGkkMSA+PSBlbmQ7IC0taSQxKSB7XG4gICAgdmFyIHBhdGgkMSA9IGJhc2VQYXRoLmNvbmNhdChbaSQxXSk7XG4gICAgcGF0Y2hlc1tyZXBsYWNlQ291bnQgKyBpJDEgLSBlbmRdID0ge1xuICAgICAgb3A6IFwiYWRkXCIsXG4gICAgICBwYXRoOiBwYXRoJDEsXG4gICAgICB2YWx1ZTogY29weVtpJDFdXG4gICAgfTtcblxuICAgIGlmICh1c2VSZW1vdmUpIHtcbiAgICAgIGludmVyc2VQYXRjaGVzLnB1c2goe1xuICAgICAgICBvcDogXCJyZW1vdmVcIixcbiAgICAgICAgcGF0aDogcGF0aCQxXG4gICAgICB9KTtcbiAgICB9XG4gIH0gLy8gT25lIFwicmVwbGFjZVwiIHBhdGNoIHJldmVyc2VzIGFsbCBub24tc3BsaWNpbmcgXCJhZGRcIiBwYXRjaGVzLlxuXG5cbiAgaWYgKCF1c2VSZW1vdmUpIHtcbiAgICBpbnZlcnNlUGF0Y2hlcy5wdXNoKHtcbiAgICAgIG9wOiBcInJlcGxhY2VcIixcbiAgICAgIHBhdGg6IGJhc2VQYXRoLmNvbmNhdChbXCJsZW5ndGhcIl0pLFxuICAgICAgdmFsdWU6IGJhc2UubGVuZ3RoXG4gICAgfSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2VuZXJhdGVPYmplY3RQYXRjaGVzKHN0YXRlLCBiYXNlUGF0aCwgcGF0Y2hlcywgaW52ZXJzZVBhdGNoZXMpIHtcbiAgdmFyIGJhc2UgPSBzdGF0ZS5iYXNlO1xuICB2YXIgY29weSA9IHN0YXRlLmNvcHk7XG4gIGVhY2goc3RhdGUuYXNzaWduZWQsIGZ1bmN0aW9uIChrZXksIGFzc2lnbmVkVmFsdWUpIHtcbiAgICB2YXIgb3JpZ1ZhbHVlID0gYmFzZVtrZXldO1xuICAgIHZhciB2YWx1ZSA9IGNvcHlba2V5XTtcbiAgICB2YXIgb3AgPSAhYXNzaWduZWRWYWx1ZSA/IFwicmVtb3ZlXCIgOiBrZXkgaW4gYmFzZSA/IFwicmVwbGFjZVwiIDogXCJhZGRcIjtcbiAgICBpZiAob3JpZ1ZhbHVlID09PSB2YWx1ZSAmJiBvcCA9PT0gXCJyZXBsYWNlXCIpIHsgcmV0dXJuOyB9XG4gICAgdmFyIHBhdGggPSBiYXNlUGF0aC5jb25jYXQoa2V5KTtcbiAgICBwYXRjaGVzLnB1c2gob3AgPT09IFwicmVtb3ZlXCIgPyB7XG4gICAgICBvcDogb3AsXG4gICAgICBwYXRoOiBwYXRoXG4gICAgfSA6IHtcbiAgICAgIG9wOiBvcCxcbiAgICAgIHBhdGg6IHBhdGgsXG4gICAgICB2YWx1ZTogdmFsdWVcbiAgICB9KTtcbiAgICBpbnZlcnNlUGF0Y2hlcy5wdXNoKG9wID09PSBcImFkZFwiID8ge1xuICAgICAgb3A6IFwicmVtb3ZlXCIsXG4gICAgICBwYXRoOiBwYXRoXG4gICAgfSA6IG9wID09PSBcInJlbW92ZVwiID8ge1xuICAgICAgb3A6IFwiYWRkXCIsXG4gICAgICBwYXRoOiBwYXRoLFxuICAgICAgdmFsdWU6IG9yaWdWYWx1ZVxuICAgIH0gOiB7XG4gICAgICBvcDogXCJyZXBsYWNlXCIsXG4gICAgICBwYXRoOiBwYXRoLFxuICAgICAgdmFsdWU6IG9yaWdWYWx1ZVxuICAgIH0pO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gYXBwbHlQYXRjaGVzKGRyYWZ0LCBwYXRjaGVzKSB7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgcGF0Y2hlcy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBwYXRjaCA9IHBhdGNoZXNbaV07XG4gICAgdmFyIHBhdGggPSBwYXRjaC5wYXRoO1xuXG4gICAgaWYgKHBhdGgubGVuZ3RoID09PSAwICYmIHBhdGNoLm9wID09PSBcInJlcGxhY2VcIikge1xuICAgICAgZHJhZnQgPSBwYXRjaC52YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIGJhc2UgPSBkcmFmdDtcblxuICAgICAgZm9yICh2YXIgaSQxID0gMDsgaSQxIDwgcGF0aC5sZW5ndGggLSAxOyBpJDErKykge1xuICAgICAgICBiYXNlID0gYmFzZVtwYXRoW2kkMV1dO1xuICAgICAgICBpZiAoIWJhc2UgfHwgdHlwZW9mIGJhc2UgIT09IFwib2JqZWN0XCIpIHsgdGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IGFwcGx5IHBhdGNoLCBwYXRoIGRvZXNuJ3QgcmVzb2x2ZTogXCIgKyBwYXRoLmpvaW4oXCIvXCIpKTsgfSAvLyBwcmV0dGllci1pZ25vcmVcbiAgICAgIH1cblxuICAgICAgdmFyIGtleSA9IHBhdGhbcGF0aC5sZW5ndGggLSAxXTtcblxuICAgICAgc3dpdGNoIChwYXRjaC5vcCkge1xuICAgICAgICBjYXNlIFwicmVwbGFjZVwiOlxuICAgICAgICAgIGJhc2Vba2V5XSA9IHBhdGNoLnZhbHVlO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgXCJhZGRcIjpcbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShiYXNlKSkge1xuICAgICAgICAgICAgLy8gVE9ETzogc3VwcG9ydCBcImZvby8tXCIgcGF0aHMgZm9yIGFwcGVuZGluZyB0byBhbiBhcnJheVxuICAgICAgICAgICAgYmFzZS5zcGxpY2Uoa2V5LCAwLCBwYXRjaC52YWx1ZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGJhc2Vba2V5XSA9IHBhdGNoLnZhbHVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgXCJyZW1vdmVcIjpcbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShiYXNlKSkge1xuICAgICAgICAgICAgYmFzZS5zcGxpY2Uoa2V5LCAxKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGVsZXRlIGJhc2Vba2V5XTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlVuc3VwcG9ydGVkIHBhdGNoIG9wZXJhdGlvbjogXCIgKyBwYXRjaC5vcCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGRyYWZ0O1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlNaW5pZmllZCgpIHt9XG5cbnZhciBjb25maWdEZWZhdWx0cyA9IHtcbiAgdXNlUHJveGllczogdHlwZW9mIFByb3h5ICE9PSBcInVuZGVmaW5lZFwiICYmIHR5cGVvZiBSZWZsZWN0ICE9PSBcInVuZGVmaW5lZFwiLFxuICBhdXRvRnJlZXplOiB0eXBlb2YgcHJvY2VzcyAhPT0gXCJ1bmRlZmluZWRcIiA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA6IHZlcmlmeU1pbmlmaWVkLm5hbWUgPT09IFwidmVyaWZ5TWluaWZpZWRcIixcbiAgb25Bc3NpZ246IG51bGwsXG4gIG9uRGVsZXRlOiBudWxsLFxuICBvbkNvcHk6IG51bGxcbn07XG52YXIgSW1tZXIgPSBmdW5jdGlvbiBJbW1lcihjb25maWcpIHtcbiAgYXNzaWduKHRoaXMsIGNvbmZpZ0RlZmF1bHRzLCBjb25maWcpO1xuICB0aGlzLnNldFVzZVByb3hpZXModGhpcy51c2VQcm94aWVzKTtcbiAgdGhpcy5wcm9kdWNlID0gdGhpcy5wcm9kdWNlLmJpbmQodGhpcyk7XG59O1xuXG5JbW1lci5wcm90b3R5cGUucHJvZHVjZSA9IGZ1bmN0aW9uIHByb2R1Y2UgKGJhc2UsIHJlY2lwZSwgcGF0Y2hMaXN0ZW5lcikge1xuICAgIHZhciB0aGlzJDEgPSB0aGlzO1xuXG4gIC8vIGN1cnJpZWQgaW52b2NhdGlvblxuICBpZiAodHlwZW9mIGJhc2UgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgcmVjaXBlICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICB2YXIgZGVmYXVsdEJhc2UgPSByZWNpcGU7XG4gICAgcmVjaXBlID0gYmFzZTtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIGN1cnJpZWRQcm9kdWNlKGJhc2UpIHtcbiAgICAgICAgdmFyIHRoaXMkMSA9IHRoaXM7XG4gICAgICAgIGlmICggYmFzZSA9PT0gdm9pZCAwICkgYmFzZSA9IGRlZmF1bHRCYXNlO1xuICAgICAgICB2YXIgYXJncyA9IFtdLCBsZW4gPSBhcmd1bWVudHMubGVuZ3RoIC0gMTtcbiAgICAgICAgd2hpbGUgKCBsZW4tLSA+IDAgKSBhcmdzWyBsZW4gXSA9IGFyZ3VtZW50c1sgbGVuICsgMSBdO1xuXG4gICAgICByZXR1cm4gc2VsZi5wcm9kdWNlKGJhc2UsIGZ1bmN0aW9uIChkcmFmdCkgeyByZXR1cm4gcmVjaXBlLmNhbGwuYXBwbHkocmVjaXBlLCBbIHRoaXMkMSwgZHJhZnQgXS5jb25jYXQoIGFyZ3MgKSk7IH0pOyAvLyBwcmV0dGllci1pZ25vcmVcbiAgICB9O1xuICB9IC8vIHByZXR0aWVyLWlnbm9yZVxuXG5cbiAge1xuICAgIGlmICh0eXBlb2YgcmVjaXBlICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoZSBmaXJzdCBvciBzZWNvbmQgYXJndW1lbnQgdG8gYHByb2R1Y2VgIG11c3QgYmUgYSBmdW5jdGlvblwiKTtcbiAgICB9XG5cbiAgICBpZiAocGF0Y2hMaXN0ZW5lciAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiBwYXRjaExpc3RlbmVyICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoZSB0aGlyZCBhcmd1bWVudCB0byBgcHJvZHVjZWAgbXVzdCBiZSBhIGZ1bmN0aW9uIG9yIHVuZGVmaW5lZFwiKTtcbiAgICB9XG4gIH1cbiAgdmFyIHJlc3VsdDsgLy8gT25seSBwbGFpbiBvYmplY3RzLCBhcnJheXMsIGFuZCBcImltbWVyYWJsZSBjbGFzc2VzXCIgYXJlIGRyYWZ0ZWQuXG5cbiAgaWYgKGlzRHJhZnRhYmxlKGJhc2UpKSB7XG4gICAgdmFyIHNjb3BlID0gSW1tZXJTY29wZS5lbnRlcigpO1xuICAgIHZhciBwcm94eSA9IHRoaXMuY3JlYXRlUHJveHkoYmFzZSk7XG4gICAgdmFyIGhhc0Vycm9yID0gdHJ1ZTtcblxuICAgIHRyeSB7XG4gICAgICByZXN1bHQgPSByZWNpcGUocHJveHkpO1xuICAgICAgaGFzRXJyb3IgPSBmYWxzZTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgLy8gZmluYWxseSBpbnN0ZWFkIG9mIGNhdGNoICsgcmV0aHJvdyBiZXR0ZXIgcHJlc2VydmVzIG9yaWdpbmFsIHN0YWNrXG4gICAgICBpZiAoaGFzRXJyb3IpIHsgc2NvcGUucmV2b2tlKCk7IH1lbHNlIHsgc2NvcGUubGVhdmUoKTsgfVxuICAgIH1cblxuICAgIGlmIChyZXN1bHQgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICByZXR1cm4gcmVzdWx0LnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkge1xuICAgICAgICBzY29wZS51c2VQYXRjaGVzKHBhdGNoTGlzdGVuZXIpO1xuICAgICAgICByZXR1cm4gdGhpcyQxLnByb2Nlc3NSZXN1bHQocmVzdWx0LCBzY29wZSk7XG4gICAgICB9LCBmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgc2NvcGUucmV2b2tlKCk7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2NvcGUudXNlUGF0Y2hlcyhwYXRjaExpc3RlbmVyKTtcbiAgICByZXR1cm4gdGhpcy5wcm9jZXNzUmVzdWx0KHJlc3VsdCwgc2NvcGUpO1xuICB9IGVsc2Uge1xuICAgIHJlc3VsdCA9IHJlY2lwZShiYXNlKTtcbiAgICBpZiAocmVzdWx0ID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIGJhc2U7IH1cbiAgICByZXR1cm4gcmVzdWx0ICE9PSBOT1RISU5HID8gcmVzdWx0IDogdW5kZWZpbmVkO1xuICB9XG59O1xuXG5JbW1lci5wcm90b3R5cGUuY3JlYXRlRHJhZnQgPSBmdW5jdGlvbiBjcmVhdGVEcmFmdCAoYmFzZSkge1xuICBpZiAoIWlzRHJhZnRhYmxlKGJhc2UpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiRmlyc3QgYXJndW1lbnQgdG8gYGNyZWF0ZURyYWZ0YCBtdXN0IGJlIGEgcGxhaW4gb2JqZWN0LCBhbiBhcnJheSwgb3IgYW4gaW1tZXJhYmxlIG9iamVjdFwiKTsgLy8gcHJldHRpZXItaWdub3JlXG4gIH1cblxuICB2YXIgc2NvcGUgPSBJbW1lclNjb3BlLmVudGVyKCk7XG4gIHZhciBwcm94eSA9IHRoaXMuY3JlYXRlUHJveHkoYmFzZSk7XG4gIHByb3h5W0RSQUZUX1NUQVRFXS5pc01hbnVhbCA9IHRydWU7XG4gIHNjb3BlLmxlYXZlKCk7XG4gIHJldHVybiBwcm94eTtcbn07XG5cbkltbWVyLnByb3RvdHlwZS5maW5pc2hEcmFmdCA9IGZ1bmN0aW9uIGZpbmlzaERyYWZ0IChkcmFmdCwgcGF0Y2hMaXN0ZW5lcikge1xuICB2YXIgc3RhdGUgPSBkcmFmdCAmJiBkcmFmdFtEUkFGVF9TVEFURV07XG5cbiAgaWYgKCFzdGF0ZSB8fCAhc3RhdGUuaXNNYW51YWwpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJGaXJzdCBhcmd1bWVudCB0byBgZmluaXNoRHJhZnRgIG11c3QgYmUgYSBkcmFmdCByZXR1cm5lZCBieSBgY3JlYXRlRHJhZnRgXCIpOyAvLyBwcmV0dGllci1pZ25vcmVcbiAgfVxuXG4gIGlmIChzdGF0ZS5maW5hbGl6ZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJUaGUgZ2l2ZW4gZHJhZnQgaXMgYWxyZWFkeSBmaW5hbGl6ZWRcIik7IC8vIHByZXR0aWVyLWlnbm9yZVxuICB9XG5cbiAgdmFyIHNjb3BlID0gc3RhdGUuc2NvcGU7XG4gIHNjb3BlLnVzZVBhdGNoZXMocGF0Y2hMaXN0ZW5lcik7XG4gIHJldHVybiB0aGlzLnByb2Nlc3NSZXN1bHQodW5kZWZpbmVkLCBzY29wZSk7XG59O1xuXG5JbW1lci5wcm90b3R5cGUuc2V0QXV0b0ZyZWV6ZSA9IGZ1bmN0aW9uIHNldEF1dG9GcmVlemUgKHZhbHVlKSB7XG4gIHRoaXMuYXV0b0ZyZWV6ZSA9IHZhbHVlO1xufTtcblxuSW1tZXIucHJvdG90eXBlLnNldFVzZVByb3hpZXMgPSBmdW5jdGlvbiBzZXRVc2VQcm94aWVzICh2YWx1ZSkge1xuICB0aGlzLnVzZVByb3hpZXMgPSB2YWx1ZTtcbiAgYXNzaWduKHRoaXMsIHZhbHVlID8gbW9kZXJuUHJveHkgOiBsZWdhY3lQcm94eSk7XG59O1xuXG5JbW1lci5wcm90b3R5cGUuYXBwbHlQYXRjaGVzID0gZnVuY3Rpb24gYXBwbHlQYXRjaGVzJDEgKGJhc2UsIHBhdGNoZXMpIHtcbiAgLy8gTXV0YXRlIHRoZSBiYXNlIHN0YXRlIHdoZW4gYSBkcmFmdCBpcyBwYXNzZWQuXG4gIGlmIChpc0RyYWZ0KGJhc2UpKSB7XG4gICAgcmV0dXJuIGFwcGx5UGF0Y2hlcyhiYXNlLCBwYXRjaGVzKTtcbiAgfSAvLyBPdGhlcndpc2UsIHByb2R1Y2UgYSBjb3B5IG9mIHRoZSBiYXNlIHN0YXRlLlxuXG5cbiAgcmV0dXJuIHRoaXMucHJvZHVjZShiYXNlLCBmdW5jdGlvbiAoZHJhZnQpIHsgcmV0dXJuIGFwcGx5UGF0Y2hlcyhkcmFmdCwgcGF0Y2hlcyk7IH0pO1xufTtcbi8qKiBAaW50ZXJuYWwgKi9cblxuXG5JbW1lci5wcm90b3R5cGUucHJvY2Vzc1Jlc3VsdCA9IGZ1bmN0aW9uIHByb2Nlc3NSZXN1bHQgKHJlc3VsdCwgc2NvcGUpIHtcbiAgdmFyIGJhc2VEcmFmdCA9IHNjb3BlLmRyYWZ0c1swXTtcbiAgdmFyIGlzUmVwbGFjZWQgPSByZXN1bHQgIT09IHVuZGVmaW5lZCAmJiByZXN1bHQgIT09IGJhc2VEcmFmdDtcbiAgdGhpcy53aWxsRmluYWxpemUoc2NvcGUsIHJlc3VsdCwgaXNSZXBsYWNlZCk7XG5cbiAgaWYgKGlzUmVwbGFjZWQpIHtcbiAgICBpZiAoYmFzZURyYWZ0W0RSQUZUX1NUQVRFXS5tb2RpZmllZCkge1xuICAgICAgc2NvcGUucmV2b2tlKCk7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJBbiBpbW1lciBwcm9kdWNlciByZXR1cm5lZCBhIG5ldyB2YWx1ZSAqYW5kKiBtb2RpZmllZCBpdHMgZHJhZnQuIEVpdGhlciByZXR1cm4gYSBuZXcgdmFsdWUgKm9yKiBtb2RpZnkgdGhlIGRyYWZ0LlwiKTsgLy8gcHJldHRpZXItaWdub3JlXG4gICAgfVxuXG4gICAgaWYgKGlzRHJhZnRhYmxlKHJlc3VsdCkpIHtcbiAgICAgIC8vIEZpbmFsaXplIHRoZSByZXN1bHQgaW4gY2FzZSBpdCBjb250YWlucyAob3IgaXMpIGEgc3Vic2V0IG9mIHRoZSBkcmFmdC5cbiAgICAgIHJlc3VsdCA9IHRoaXMuZmluYWxpemUocmVzdWx0LCBudWxsLCBzY29wZSk7XG4gICAgfVxuXG4gICAgaWYgKHNjb3BlLnBhdGNoZXMpIHtcbiAgICAgIHNjb3BlLnBhdGNoZXMucHVzaCh7XG4gICAgICAgIG9wOiBcInJlcGxhY2VcIixcbiAgICAgICAgcGF0aDogW10sXG4gICAgICAgIHZhbHVlOiByZXN1bHRcbiAgICAgIH0pO1xuICAgICAgc2NvcGUuaW52ZXJzZVBhdGNoZXMucHVzaCh7XG4gICAgICAgIG9wOiBcInJlcGxhY2VcIixcbiAgICAgICAgcGF0aDogW10sXG4gICAgICAgIHZhbHVlOiBiYXNlRHJhZnRbRFJBRlRfU1RBVEVdLmJhc2VcbiAgICAgIH0pO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvLyBGaW5hbGl6ZSB0aGUgYmFzZSBkcmFmdC5cbiAgICByZXN1bHQgPSB0aGlzLmZpbmFsaXplKGJhc2VEcmFmdCwgW10sIHNjb3BlKTtcbiAgfVxuXG4gIHNjb3BlLnJldm9rZSgpO1xuXG4gIGlmIChzY29wZS5wYXRjaGVzKSB7XG4gICAgc2NvcGUucGF0Y2hMaXN0ZW5lcihzY29wZS5wYXRjaGVzLCBzY29wZS5pbnZlcnNlUGF0Y2hlcyk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0ICE9PSBOT1RISU5HID8gcmVzdWx0IDogdW5kZWZpbmVkO1xufTtcbi8qKlxuICogQGludGVybmFsXG4gKiBGaW5hbGl6ZSBhIGRyYWZ0LCByZXR1cm5pbmcgZWl0aGVyIHRoZSB1bm1vZGlmaWVkIGJhc2Ugc3RhdGUgb3IgYSBtb2RpZmllZFxuICogY29weSBvZiB0aGUgYmFzZSBzdGF0ZS5cbiAqL1xuXG5cbkltbWVyLnByb3RvdHlwZS5maW5hbGl6ZSA9IGZ1bmN0aW9uIGZpbmFsaXplIChkcmFmdCwgcGF0aCwgc2NvcGUpIHtcbiAgICB2YXIgdGhpcyQxID0gdGhpcztcblxuICB2YXIgc3RhdGUgPSBkcmFmdFtEUkFGVF9TVEFURV07XG5cbiAgaWYgKCFzdGF0ZSkge1xuICAgIGlmIChPYmplY3QuaXNGcm96ZW4oZHJhZnQpKSB7IHJldHVybiBkcmFmdDsgfVxuICAgIHJldHVybiB0aGlzLmZpbmFsaXplVHJlZShkcmFmdCwgbnVsbCwgc2NvcGUpO1xuICB9IC8vIE5ldmVyIGZpbmFsaXplIGRyYWZ0cyBvd25lZCBieSBhbm90aGVyIHNjb3BlLlxuXG5cbiAgaWYgKHN0YXRlLnNjb3BlICE9PSBzY29wZSkge1xuICAgIHJldHVybiBkcmFmdDtcbiAgfVxuXG4gIGlmICghc3RhdGUubW9kaWZpZWQpIHtcbiAgICByZXR1cm4gc3RhdGUuYmFzZTtcbiAgfVxuXG4gIGlmICghc3RhdGUuZmluYWxpemVkKSB7XG4gICAgc3RhdGUuZmluYWxpemVkID0gdHJ1ZTtcbiAgICB0aGlzLmZpbmFsaXplVHJlZShzdGF0ZS5kcmFmdCwgcGF0aCwgc2NvcGUpO1xuXG4gICAgaWYgKHRoaXMub25EZWxldGUpIHtcbiAgICAgIC8vIFRoZSBgYXNzaWduZWRgIG9iamVjdCBpcyB1bnJlbGlhYmxlIHdpdGggRVM1IGRyYWZ0cy5cbiAgICAgIGlmICh0aGlzLnVzZVByb3hpZXMpIHtcbiAgICAgICAgdmFyIGFzc2lnbmVkID0gc3RhdGUuYXNzaWduZWQ7XG5cbiAgICAgICAgZm9yICh2YXIgcHJvcCBpbiBhc3NpZ25lZCkge1xuICAgICAgICAgIGlmICghYXNzaWduZWRbcHJvcF0pIHsgdGhpcy5vbkRlbGV0ZShzdGF0ZSwgcHJvcCk7IH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIGJhc2UgPSBzdGF0ZS5iYXNlO1xuICAgICAgICAgIHZhciBjb3B5ID0gc3RhdGUuY29weTtcbiAgICAgICAgZWFjaChiYXNlLCBmdW5jdGlvbiAocHJvcCkge1xuICAgICAgICAgIGlmICghaGFzKGNvcHksIHByb3ApKSB7IHRoaXMkMS5vbkRlbGV0ZShzdGF0ZSwgcHJvcCk7IH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMub25Db3B5KSB7XG4gICAgICB0aGlzLm9uQ29weShzdGF0ZSk7XG4gICAgfSAvLyBBdCB0aGlzIHBvaW50LCBhbGwgZGVzY2VuZGFudHMgb2YgYHN0YXRlLmNvcHlgIGhhdmUgYmVlbiBmaW5hbGl6ZWQsXG4gICAgLy8gc28gd2UgY2FuIGJlIHN1cmUgdGhhdCBgc2NvcGUuY2FuQXV0b0ZyZWV6ZWAgaXMgYWNjdXJhdGUuXG5cblxuICAgIGlmICh0aGlzLmF1dG9GcmVlemUgJiYgc2NvcGUuY2FuQXV0b0ZyZWV6ZSkge1xuICAgICAgT2JqZWN0LmZyZWV6ZShzdGF0ZS5jb3B5KTtcbiAgICB9XG5cbiAgICBpZiAocGF0aCAmJiBzY29wZS5wYXRjaGVzKSB7XG4gICAgICBnZW5lcmF0ZVBhdGNoZXMoc3RhdGUsIHBhdGgsIHNjb3BlLnBhdGNoZXMsIHNjb3BlLmludmVyc2VQYXRjaGVzKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3RhdGUuY29weTtcbn07XG4vKipcbiAqIEBpbnRlcm5hbFxuICogRmluYWxpemUgYWxsIGRyYWZ0cyBpbiB0aGUgZ2l2ZW4gc3RhdGUgdHJlZS5cbiAqL1xuXG5cbkltbWVyLnByb3RvdHlwZS5maW5hbGl6ZVRyZWUgPSBmdW5jdGlvbiBmaW5hbGl6ZVRyZWUgKHJvb3QsIHJvb3RQYXRoLCBzY29wZSkge1xuICAgIHZhciB0aGlzJDEgPSB0aGlzO1xuXG4gIHZhciBzdGF0ZSA9IHJvb3RbRFJBRlRfU1RBVEVdO1xuXG4gIGlmIChzdGF0ZSkge1xuICAgIGlmICghdGhpcy51c2VQcm94aWVzKSB7XG4gICAgICAvLyBDcmVhdGUgdGhlIGZpbmFsIGNvcHksIHdpdGggYWRkZWQga2V5cyBhbmQgd2l0aG91dCBkZWxldGVkIGtleXMuXG4gICAgICBzdGF0ZS5jb3B5ID0gc2hhbGxvd0NvcHkoc3RhdGUuZHJhZnQsIHRydWUpO1xuICAgIH1cblxuICAgIHJvb3QgPSBzdGF0ZS5jb3B5O1xuICB9XG5cbiAgdmFyIG5lZWRQYXRjaGVzID0gISFyb290UGF0aCAmJiAhIXNjb3BlLnBhdGNoZXM7XG5cbiAgdmFyIGZpbmFsaXplUHJvcGVydHkgPSBmdW5jdGlvbiAocHJvcCwgdmFsdWUsIHBhcmVudCkge1xuICAgIGlmICh2YWx1ZSA9PT0gcGFyZW50KSB7XG4gICAgICB0aHJvdyBFcnJvcihcIkltbWVyIGZvcmJpZHMgY2lyY3VsYXIgcmVmZXJlbmNlc1wiKTtcbiAgICB9IC8vIEluIHRoZSBgZmluYWxpemVUcmVlYCBtZXRob2QsIG9ubHkgdGhlIGByb290YCBvYmplY3QgbWF5IGJlIGEgZHJhZnQuXG5cblxuICAgIHZhciBpc0RyYWZ0UHJvcCA9ICEhc3RhdGUgJiYgcGFyZW50ID09PSByb290O1xuXG4gICAgaWYgKGlzRHJhZnQodmFsdWUpKSB7XG4gICAgICB2YXIgcGF0aCA9IGlzRHJhZnRQcm9wICYmIG5lZWRQYXRjaGVzICYmICFzdGF0ZS5hc3NpZ25lZFtwcm9wXSA/IHJvb3RQYXRoLmNvbmNhdChwcm9wKSA6IG51bGw7IC8vIERyYWZ0cyBvd25lZCBieSBgc2NvcGVgIGFyZSBmaW5hbGl6ZWQgaGVyZS5cblxuICAgICAgdmFsdWUgPSB0aGlzJDEuZmluYWxpemUodmFsdWUsIHBhdGgsIHNjb3BlKTsgLy8gRHJhZnRzIGZyb20gYW5vdGhlciBzY29wZSBtdXN0IHByZXZlbnQgYXV0by1mcmVlemluZy5cblxuICAgICAgaWYgKGlzRHJhZnQodmFsdWUpKSB7XG4gICAgICAgIHNjb3BlLmNhbkF1dG9GcmVlemUgPSBmYWxzZTtcbiAgICAgIH0gLy8gUHJlc2VydmUgbm9uLWVudW1lcmFibGUgcHJvcGVydGllcy5cblxuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShwYXJlbnQpIHx8IGlzRW51bWVyYWJsZShwYXJlbnQsIHByb3ApKSB7XG4gICAgICAgIHBhcmVudFtwcm9wXSA9IHZhbHVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHBhcmVudCwgcHJvcCwge1xuICAgICAgICAgIHZhbHVlOiB2YWx1ZVxuICAgICAgICB9KTtcbiAgICAgIH0gLy8gVW5jaGFuZ2VkIGRyYWZ0cyBhcmUgbmV2ZXIgcGFzc2VkIHRvIHRoZSBgb25Bc3NpZ25gIGhvb2suXG5cblxuICAgICAgaWYgKGlzRHJhZnRQcm9wICYmIHZhbHVlID09PSBzdGF0ZS5iYXNlW3Byb3BdKSB7IHJldHVybjsgfVxuICAgIH0gLy8gVW5jaGFuZ2VkIGRyYWZ0IHByb3BlcnRpZXMgYXJlIGlnbm9yZWQuXG4gICAgZWxzZSBpZiAoaXNEcmFmdFByb3AgJiYgaXModmFsdWUsIHN0YXRlLmJhc2VbcHJvcF0pKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH0gLy8gU2VhcmNoIG5ldyBvYmplY3RzIGZvciB1bmZpbmFsaXplZCBkcmFmdHMuIEZyb3plbiBvYmplY3RzIHNob3VsZCBuZXZlciBjb250YWluIGRyYWZ0cy5cbiAgICAgIGVsc2UgaWYgKGlzRHJhZnRhYmxlKHZhbHVlKSAmJiAhT2JqZWN0LmlzRnJvemVuKHZhbHVlKSkge1xuICAgICAgICAgIGVhY2godmFsdWUsIGZpbmFsaXplUHJvcGVydHkpO1xuICAgICAgICB9XG5cbiAgICBpZiAoaXNEcmFmdFByb3AgJiYgdGhpcyQxLm9uQXNzaWduKSB7XG4gICAgICB0aGlzJDEub25Bc3NpZ24oc3RhdGUsIHByb3AsIHZhbHVlKTtcbiAgICB9XG4gIH07XG5cbiAgZWFjaChyb290LCBmaW5hbGl6ZVByb3BlcnR5KTtcbiAgcmV0dXJuIHJvb3Q7XG59O1xuXG52YXIgaW1tZXIgPSBuZXcgSW1tZXIoKTtcbi8qKlxuICogVGhlIGBwcm9kdWNlYCBmdW5jdGlvbiB0YWtlcyBhIHZhbHVlIGFuZCBhIFwicmVjaXBlIGZ1bmN0aW9uXCIgKHdob3NlXG4gKiByZXR1cm4gdmFsdWUgb2Z0ZW4gZGVwZW5kcyBvbiB0aGUgYmFzZSBzdGF0ZSkuIFRoZSByZWNpcGUgZnVuY3Rpb24gaXNcbiAqIGZyZWUgdG8gbXV0YXRlIGl0cyBmaXJzdCBhcmd1bWVudCBob3dldmVyIGl0IHdhbnRzLiBBbGwgbXV0YXRpb25zIGFyZVxuICogb25seSBldmVyIGFwcGxpZWQgdG8gYSBfX2NvcHlfXyBvZiB0aGUgYmFzZSBzdGF0ZS5cbiAqXG4gKiBQYXNzIG9ubHkgYSBmdW5jdGlvbiB0byBjcmVhdGUgYSBcImN1cnJpZWQgcHJvZHVjZXJcIiB3aGljaCByZWxpZXZlcyB5b3VcbiAqIGZyb20gcGFzc2luZyB0aGUgcmVjaXBlIGZ1bmN0aW9uIGV2ZXJ5IHRpbWUuXG4gKlxuICogT25seSBwbGFpbiBvYmplY3RzIGFuZCBhcnJheXMgYXJlIG1hZGUgbXV0YWJsZS4gQWxsIG90aGVyIG9iamVjdHMgYXJlXG4gKiBjb25zaWRlcmVkIHVuY29weWFibGUuXG4gKlxuICogTm90ZTogVGhpcyBmdW5jdGlvbiBpcyBfX2JvdW5kX18gdG8gaXRzIGBJbW1lcmAgaW5zdGFuY2UuXG4gKlxuICogQHBhcmFtIHthbnl9IGJhc2UgLSB0aGUgaW5pdGlhbCBzdGF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gcHJvZHVjZXIgLSBmdW5jdGlvbiB0aGF0IHJlY2VpdmVzIGEgcHJveHkgb2YgdGhlIGJhc2Ugc3RhdGUgYXMgZmlyc3QgYXJndW1lbnQgYW5kIHdoaWNoIGNhbiBiZSBmcmVlbHkgbW9kaWZpZWRcbiAqIEBwYXJhbSB7RnVuY3Rpb259IHBhdGNoTGlzdGVuZXIgLSBvcHRpb25hbCBmdW5jdGlvbiB0aGF0IHdpbGwgYmUgY2FsbGVkIHdpdGggYWxsIHRoZSBwYXRjaGVzIHByb2R1Y2VkIGhlcmVcbiAqIEByZXR1cm5zIHthbnl9IGEgbmV3IHN0YXRlLCBvciB0aGUgaW5pdGlhbCBzdGF0ZSBpZiBub3RoaW5nIHdhcyBtb2RpZmllZFxuICovXG5cbnZhciBwcm9kdWNlID0gaW1tZXIucHJvZHVjZTtcbi8qKlxuICogUGFzcyB0cnVlIHRvIGF1dG9tYXRpY2FsbHkgZnJlZXplIGFsbCBjb3BpZXMgY3JlYXRlZCBieSBJbW1lci5cbiAqXG4gKiBCeSBkZWZhdWx0LCBhdXRvLWZyZWV6aW5nIGlzIGRpc2FibGVkIGluIHByb2R1Y3Rpb24uXG4gKi9cblxudmFyIHNldEF1dG9GcmVlemUgPSBpbW1lci5zZXRBdXRvRnJlZXplLmJpbmQoaW1tZXIpO1xuLyoqXG4gKiBQYXNzIHRydWUgdG8gdXNlIHRoZSBFUzIwMTUgYFByb3h5YCBjbGFzcyB3aGVuIGNyZWF0aW5nIGRyYWZ0cywgd2hpY2ggaXNcbiAqIGFsd2F5cyBmYXN0ZXIgdGhhbiB1c2luZyBFUzUgcHJveGllcy5cbiAqXG4gKiBCeSBkZWZhdWx0LCBmZWF0dXJlIGRldGVjdGlvbiBpcyB1c2VkLCBzbyBjYWxsaW5nIHRoaXMgaXMgcmFyZWx5IG5lY2Vzc2FyeS5cbiAqL1xuXG52YXIgc2V0VXNlUHJveGllcyA9IGltbWVyLnNldFVzZVByb3hpZXMuYmluZChpbW1lcik7XG4vKipcbiAqIEFwcGx5IGFuIGFycmF5IG9mIEltbWVyIHBhdGNoZXMgdG8gdGhlIGZpcnN0IGFyZ3VtZW50LlxuICpcbiAqIFRoaXMgZnVuY3Rpb24gaXMgYSBwcm9kdWNlciwgd2hpY2ggbWVhbnMgY29weS1vbi13cml0ZSBpcyBpbiBlZmZlY3QuXG4gKi9cblxudmFyIGFwcGx5UGF0Y2hlcyQxID0gaW1tZXIuYXBwbHlQYXRjaGVzLmJpbmQoaW1tZXIpO1xuLyoqXG4gKiBDcmVhdGUgYW4gSW1tZXIgZHJhZnQgZnJvbSB0aGUgZ2l2ZW4gYmFzZSBzdGF0ZSwgd2hpY2ggbWF5IGJlIGEgZHJhZnQgaXRzZWxmLlxuICogVGhlIGRyYWZ0IGNhbiBiZSBtb2RpZmllZCB1bnRpbCB5b3UgZmluYWxpemUgaXQgd2l0aCB0aGUgYGZpbmlzaERyYWZ0YCBmdW5jdGlvbi5cbiAqL1xuXG52YXIgY3JlYXRlRHJhZnQgPSBpbW1lci5jcmVhdGVEcmFmdC5iaW5kKGltbWVyKTtcbi8qKlxuICogRmluYWxpemUgYW4gSW1tZXIgZHJhZnQgZnJvbSBhIGBjcmVhdGVEcmFmdGAgY2FsbCwgcmV0dXJuaW5nIHRoZSBiYXNlIHN0YXRlXG4gKiAoaWYgbm8gY2hhbmdlcyB3ZXJlIG1hZGUpIG9yIGEgbW9kaWZpZWQgY29weS4gVGhlIGRyYWZ0IG11c3QgKm5vdCogYmVcbiAqIG11dGF0ZWQgYWZ0ZXJ3YXJkcy5cbiAqXG4gKiBQYXNzIGEgZnVuY3Rpb24gYXMgdGhlIDJuZCBhcmd1bWVudCB0byBnZW5lcmF0ZSBJbW1lciBwYXRjaGVzIGJhc2VkIG9uIHRoZVxuICogY2hhbmdlcyB0aGF0IHdlcmUgbWFkZS5cbiAqL1xuXG52YXIgZmluaXNoRHJhZnQgPSBpbW1lci5maW5pc2hEcmFmdC5iaW5kKGltbWVyKTtcblxuZXhwb3J0IGRlZmF1bHQgcHJvZHVjZTtcbmV4cG9ydCB7IEltbWVyLCBhcHBseVBhdGNoZXMkMSBhcyBhcHBseVBhdGNoZXMsIGNyZWF0ZURyYWZ0LCBmaW5pc2hEcmFmdCwgRFJBRlRBQkxFIGFzIGltbWVyYWJsZSwgaXNEcmFmdCwgaXNEcmFmdGFibGUsIE5PVEhJTkcgYXMgbm90aGluZywgb3JpZ2luYWwsIHByb2R1Y2UsIHNldEF1dG9GcmVlemUsIHNldFVzZVByb3hpZXMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWltbWVyLm1vZHVsZS5qcy5tYXBcbiIsIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzL2lzc3Vlcy84NiNpc3N1ZWNvbW1lbnQtMTE1NzU5MDI4XG52YXIgZ2xvYmFsID0gbW9kdWxlLmV4cG9ydHMgPSB0eXBlb2Ygd2luZG93ICE9ICd1bmRlZmluZWQnICYmIHdpbmRvdy5NYXRoID09IE1hdGhcbiAgPyB3aW5kb3cgOiB0eXBlb2Ygc2VsZiAhPSAndW5kZWZpbmVkJyAmJiBzZWxmLk1hdGggPT0gTWF0aCA/IHNlbGZcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLW5ldy1mdW5jXG4gIDogRnVuY3Rpb24oJ3JldHVybiB0aGlzJykoKTtcbmlmICh0eXBlb2YgX19nID09ICdudW1iZXInKSBfX2cgPSBnbG9iYWw7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW5kZWZcbiIsInZhciBjb3JlID0gbW9kdWxlLmV4cG9ydHMgPSB7IHZlcnNpb246ICcyLjYuMTInIH07XG5pZiAodHlwZW9mIF9fZSA9PSAnbnVtYmVyJykgX19lID0gY29yZTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bmRlZlxuIiwiLy8gVGhhbmsncyBJRTggZm9yIGhpcyBmdW5ueSBkZWZpbmVQcm9wZXJ0eVxubW9kdWxlLmV4cG9ydHMgPSAhcmVxdWlyZSgnLi9fZmFpbHMnKShmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdhJywgeyBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDc7IH0gfSkuYSAhPSA3O1xufSk7XG4iLCIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbmZ1bmN0aW9uIGNvbXBvbmVudFdpbGxNb3VudCgpIHtcbiAgLy8gQ2FsbCB0aGlzLmNvbnN0cnVjdG9yLmdEU0ZQIHRvIHN1cHBvcnQgc3ViLWNsYXNzZXMuXG4gIHZhciBzdGF0ZSA9IHRoaXMuY29uc3RydWN0b3IuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKHRoaXMucHJvcHMsIHRoaXMuc3RhdGUpO1xuICBpZiAoc3RhdGUgIT09IG51bGwgJiYgc3RhdGUgIT09IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuc2V0U3RhdGUoc3RhdGUpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobmV4dFByb3BzKSB7XG4gIC8vIENhbGwgdGhpcy5jb25zdHJ1Y3Rvci5nRFNGUCB0byBzdXBwb3J0IHN1Yi1jbGFzc2VzLlxuICAvLyBVc2UgdGhlIHNldFN0YXRlKCkgdXBkYXRlciB0byBlbnN1cmUgc3RhdGUgaXNuJ3Qgc3RhbGUgaW4gY2VydGFpbiBlZGdlIGNhc2VzLlxuICBmdW5jdGlvbiB1cGRhdGVyKHByZXZTdGF0ZSkge1xuICAgIHZhciBzdGF0ZSA9IHRoaXMuY29uc3RydWN0b3IuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKG5leHRQcm9wcywgcHJldlN0YXRlKTtcbiAgICByZXR1cm4gc3RhdGUgIT09IG51bGwgJiYgc3RhdGUgIT09IHVuZGVmaW5lZCA/IHN0YXRlIDogbnVsbDtcbiAgfVxuICAvLyBCaW5kaW5nIFwidGhpc1wiIGlzIGltcG9ydGFudCBmb3Igc2hhbGxvdyByZW5kZXJlciBzdXBwb3J0LlxuICB0aGlzLnNldFN0YXRlKHVwZGF0ZXIuYmluZCh0aGlzKSk7XG59XG5cbmZ1bmN0aW9uIGNvbXBvbmVudFdpbGxVcGRhdGUobmV4dFByb3BzLCBuZXh0U3RhdGUpIHtcbiAgdHJ5IHtcbiAgICB2YXIgcHJldlByb3BzID0gdGhpcy5wcm9wcztcbiAgICB2YXIgcHJldlN0YXRlID0gdGhpcy5zdGF0ZTtcbiAgICB0aGlzLnByb3BzID0gbmV4dFByb3BzO1xuICAgIHRoaXMuc3RhdGUgPSBuZXh0U3RhdGU7XG4gICAgdGhpcy5fX3JlYWN0SW50ZXJuYWxTbmFwc2hvdEZsYWcgPSB0cnVlO1xuICAgIHRoaXMuX19yZWFjdEludGVybmFsU25hcHNob3QgPSB0aGlzLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlKFxuICAgICAgcHJldlByb3BzLFxuICAgICAgcHJldlN0YXRlXG4gICAgKTtcbiAgfSBmaW5hbGx5IHtcbiAgICB0aGlzLnByb3BzID0gcHJldlByb3BzO1xuICAgIHRoaXMuc3RhdGUgPSBwcmV2U3RhdGU7XG4gIH1cbn1cblxuLy8gUmVhY3QgbWF5IHdhcm4gYWJvdXQgY1dNL2NXUlAvY1dVIG1ldGhvZHMgYmVpbmcgZGVwcmVjYXRlZC5cbi8vIEFkZCBhIGZsYWcgdG8gc3VwcHJlc3MgdGhlc2Ugd2FybmluZ3MgZm9yIHRoaXMgc3BlY2lhbCBjYXNlLlxuY29tcG9uZW50V2lsbE1vdW50Ll9fc3VwcHJlc3NEZXByZWNhdGlvbldhcm5pbmcgPSB0cnVlO1xuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcy5fX3N1cHByZXNzRGVwcmVjYXRpb25XYXJuaW5nID0gdHJ1ZTtcbmNvbXBvbmVudFdpbGxVcGRhdGUuX19zdXBwcmVzc0RlcHJlY2F0aW9uV2FybmluZyA9IHRydWU7XG5cbmZ1bmN0aW9uIHBvbHlmaWxsKENvbXBvbmVudCkge1xuICB2YXIgcHJvdG90eXBlID0gQ29tcG9uZW50LnByb3RvdHlwZTtcblxuICBpZiAoIXByb3RvdHlwZSB8fCAhcHJvdG90eXBlLmlzUmVhY3RDb21wb25lbnQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0NhbiBvbmx5IHBvbHlmaWxsIGNsYXNzIGNvbXBvbmVudHMnKTtcbiAgfVxuXG4gIGlmIChcbiAgICB0eXBlb2YgQ29tcG9uZW50LmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyAhPT0gJ2Z1bmN0aW9uJyAmJlxuICAgIHR5cGVvZiBwcm90b3R5cGUuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUgIT09ICdmdW5jdGlvbidcbiAgKSB7XG4gICAgcmV0dXJuIENvbXBvbmVudDtcbiAgfVxuXG4gIC8vIElmIG5ldyBjb21wb25lbnQgQVBJcyBhcmUgZGVmaW5lZCwgXCJ1bnNhZmVcIiBsaWZlY3ljbGVzIHdvbid0IGJlIGNhbGxlZC5cbiAgLy8gRXJyb3IgaWYgYW55IG9mIHRoZXNlIGxpZmVjeWNsZXMgYXJlIHByZXNlbnQsXG4gIC8vIEJlY2F1c2UgdGhleSB3b3VsZCB3b3JrIGRpZmZlcmVudGx5IGJldHdlZW4gb2xkZXIgYW5kIG5ld2VyICgxNi4zKykgdmVyc2lvbnMgb2YgUmVhY3QuXG4gIHZhciBmb3VuZFdpbGxNb3VudE5hbWUgPSBudWxsO1xuICB2YXIgZm91bmRXaWxsUmVjZWl2ZVByb3BzTmFtZSA9IG51bGw7XG4gIHZhciBmb3VuZFdpbGxVcGRhdGVOYW1lID0gbnVsbDtcbiAgaWYgKHR5cGVvZiBwcm90b3R5cGUuY29tcG9uZW50V2lsbE1vdW50ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgZm91bmRXaWxsTW91bnROYW1lID0gJ2NvbXBvbmVudFdpbGxNb3VudCc7XG4gIH0gZWxzZSBpZiAodHlwZW9mIHByb3RvdHlwZS5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgZm91bmRXaWxsTW91bnROYW1lID0gJ1VOU0FGRV9jb21wb25lbnRXaWxsTW91bnQnO1xuICB9XG4gIGlmICh0eXBlb2YgcHJvdG90eXBlLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMgPT09ICdmdW5jdGlvbicpIHtcbiAgICBmb3VuZFdpbGxSZWNlaXZlUHJvcHNOYW1lID0gJ2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMnO1xuICB9IGVsc2UgaWYgKHR5cGVvZiBwcm90b3R5cGUuVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMgPT09ICdmdW5jdGlvbicpIHtcbiAgICBmb3VuZFdpbGxSZWNlaXZlUHJvcHNOYW1lID0gJ1VOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzJztcbiAgfVxuICBpZiAodHlwZW9mIHByb3RvdHlwZS5jb21wb25lbnRXaWxsVXBkYXRlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgZm91bmRXaWxsVXBkYXRlTmFtZSA9ICdjb21wb25lbnRXaWxsVXBkYXRlJztcbiAgfSBlbHNlIGlmICh0eXBlb2YgcHJvdG90eXBlLlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgZm91bmRXaWxsVXBkYXRlTmFtZSA9ICdVTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZSc7XG4gIH1cbiAgaWYgKFxuICAgIGZvdW5kV2lsbE1vdW50TmFtZSAhPT0gbnVsbCB8fFxuICAgIGZvdW5kV2lsbFJlY2VpdmVQcm9wc05hbWUgIT09IG51bGwgfHxcbiAgICBmb3VuZFdpbGxVcGRhdGVOYW1lICE9PSBudWxsXG4gICkge1xuICAgIHZhciBjb21wb25lbnROYW1lID0gQ29tcG9uZW50LmRpc3BsYXlOYW1lIHx8IENvbXBvbmVudC5uYW1lO1xuICAgIHZhciBuZXdBcGlOYW1lID1cbiAgICAgIHR5cGVvZiBDb21wb25lbnQuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzID09PSAnZnVuY3Rpb24nXG4gICAgICAgID8gJ2dldERlcml2ZWRTdGF0ZUZyb21Qcm9wcygpJ1xuICAgICAgICA6ICdnZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSgpJztcblxuICAgIHRocm93IEVycm9yKFxuICAgICAgJ1Vuc2FmZSBsZWdhY3kgbGlmZWN5Y2xlcyB3aWxsIG5vdCBiZSBjYWxsZWQgZm9yIGNvbXBvbmVudHMgdXNpbmcgbmV3IGNvbXBvbmVudCBBUElzLlxcblxcbicgK1xuICAgICAgICBjb21wb25lbnROYW1lICtcbiAgICAgICAgJyB1c2VzICcgK1xuICAgICAgICBuZXdBcGlOYW1lICtcbiAgICAgICAgJyBidXQgYWxzbyBjb250YWlucyB0aGUgZm9sbG93aW5nIGxlZ2FjeSBsaWZlY3ljbGVzOicgK1xuICAgICAgICAoZm91bmRXaWxsTW91bnROYW1lICE9PSBudWxsID8gJ1xcbiAgJyArIGZvdW5kV2lsbE1vdW50TmFtZSA6ICcnKSArXG4gICAgICAgIChmb3VuZFdpbGxSZWNlaXZlUHJvcHNOYW1lICE9PSBudWxsXG4gICAgICAgICAgPyAnXFxuICAnICsgZm91bmRXaWxsUmVjZWl2ZVByb3BzTmFtZVxuICAgICAgICAgIDogJycpICtcbiAgICAgICAgKGZvdW5kV2lsbFVwZGF0ZU5hbWUgIT09IG51bGwgPyAnXFxuICAnICsgZm91bmRXaWxsVXBkYXRlTmFtZSA6ICcnKSArXG4gICAgICAgICdcXG5cXG5UaGUgYWJvdmUgbGlmZWN5Y2xlcyBzaG91bGQgYmUgcmVtb3ZlZC4gTGVhcm4gbW9yZSBhYm91dCB0aGlzIHdhcm5pbmcgaGVyZTpcXG4nICtcbiAgICAgICAgJ2h0dHBzOi8vZmIubWUvcmVhY3QtYXN5bmMtY29tcG9uZW50LWxpZmVjeWNsZS1ob29rcydcbiAgICApO1xuICB9XG5cbiAgLy8gUmVhY3QgPD0gMTYuMiBkb2VzIG5vdCBzdXBwb3J0IHN0YXRpYyBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMuXG4gIC8vIEFzIGEgd29ya2Fyb3VuZCwgdXNlIGNXTSBhbmQgY1dSUCB0byBpbnZva2UgdGhlIG5ldyBzdGF0aWMgbGlmZWN5Y2xlLlxuICAvLyBOZXdlciB2ZXJzaW9ucyBvZiBSZWFjdCB3aWxsIGlnbm9yZSB0aGVzZSBsaWZlY3ljbGVzIGlmIGdEU0ZQIGV4aXN0cy5cbiAgaWYgKHR5cGVvZiBDb21wb25lbnQuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcHJvdG90eXBlLmNvbXBvbmVudFdpbGxNb3VudCA9IGNvbXBvbmVudFdpbGxNb3VudDtcbiAgICBwcm90b3R5cGUuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyA9IGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHM7XG4gIH1cblxuICAvLyBSZWFjdCA8PSAxNi4yIGRvZXMgbm90IHN1cHBvcnQgZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUuXG4gIC8vIEFzIGEgd29ya2Fyb3VuZCwgdXNlIGNXVSB0byBpbnZva2UgdGhlIG5ldyBsaWZlY3ljbGUuXG4gIC8vIE5ld2VyIHZlcnNpb25zIG9mIFJlYWN0IHdpbGwgaWdub3JlIHRoYXQgbGlmZWN5Y2xlIGlmIGdTQlUgZXhpc3RzLlxuICBpZiAodHlwZW9mIHByb3RvdHlwZS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGlmICh0eXBlb2YgcHJvdG90eXBlLmNvbXBvbmVudERpZFVwZGF0ZSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnQ2Fubm90IHBvbHlmaWxsIGdldFNuYXBzaG90QmVmb3JlVXBkYXRlKCkgZm9yIGNvbXBvbmVudHMgdGhhdCBkbyBub3QgZGVmaW5lIGNvbXBvbmVudERpZFVwZGF0ZSgpIG9uIHRoZSBwcm90b3R5cGUnXG4gICAgICApO1xuICAgIH1cblxuICAgIHByb3RvdHlwZS5jb21wb25lbnRXaWxsVXBkYXRlID0gY29tcG9uZW50V2lsbFVwZGF0ZTtcblxuICAgIHZhciBjb21wb25lbnREaWRVcGRhdGUgPSBwcm90b3R5cGUuY29tcG9uZW50RGlkVXBkYXRlO1xuXG4gICAgcHJvdG90eXBlLmNvbXBvbmVudERpZFVwZGF0ZSA9IGZ1bmN0aW9uIGNvbXBvbmVudERpZFVwZGF0ZVBvbHlmaWxsKFxuICAgICAgcHJldlByb3BzLFxuICAgICAgcHJldlN0YXRlLFxuICAgICAgbWF5YmVTbmFwc2hvdFxuICAgICkge1xuICAgICAgLy8gMTYuMysgd2lsbCBub3QgZXhlY3V0ZSBvdXIgd2lsbC11cGRhdGUgbWV0aG9kO1xuICAgICAgLy8gSXQgd2lsbCBwYXNzIGEgc25hcHNob3QgdmFsdWUgdG8gZGlkLXVwZGF0ZSB0aG91Z2guXG4gICAgICAvLyBPbGRlciB2ZXJzaW9ucyB3aWxsIHJlcXVpcmUgb3VyIHBvbHlmaWxsZWQgd2lsbC11cGRhdGUgdmFsdWUuXG4gICAgICAvLyBXZSBuZWVkIHRvIGhhbmRsZSBib3RoIGNhc2VzLCBidXQgY2FuJ3QganVzdCBjaGVjayBmb3IgdGhlIHByZXNlbmNlIG9mIFwibWF5YmVTbmFwc2hvdFwiLFxuICAgICAgLy8gQmVjYXVzZSBmb3IgPD0gMTUueCB2ZXJzaW9ucyB0aGlzIG1pZ2h0IGJlIGEgXCJwcmV2Q29udGV4dFwiIG9iamVjdC5cbiAgICAgIC8vIFdlIGFsc28gY2FuJ3QganVzdCBjaGVjayBcIl9fcmVhY3RJbnRlcm5hbFNuYXBzaG90XCIsXG4gICAgICAvLyBCZWNhdXNlIGdldC1zbmFwc2hvdCBtaWdodCByZXR1cm4gYSBmYWxzeSB2YWx1ZS5cbiAgICAgIC8vIFNvIGNoZWNrIGZvciB0aGUgZXhwbGljaXQgX19yZWFjdEludGVybmFsU25hcHNob3RGbGFnIGZsYWcgdG8gZGV0ZXJtaW5lIGJlaGF2aW9yLlxuICAgICAgdmFyIHNuYXBzaG90ID0gdGhpcy5fX3JlYWN0SW50ZXJuYWxTbmFwc2hvdEZsYWdcbiAgICAgICAgPyB0aGlzLl9fcmVhY3RJbnRlcm5hbFNuYXBzaG90XG4gICAgICAgIDogbWF5YmVTbmFwc2hvdDtcblxuICAgICAgY29tcG9uZW50RGlkVXBkYXRlLmNhbGwodGhpcywgcHJldlByb3BzLCBwcmV2U3RhdGUsIHNuYXBzaG90KTtcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIENvbXBvbmVudDtcbn1cblxuZXhwb3J0IHsgcG9seWZpbGwgfTtcbiIsIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5leHBvcnRzLmRlZmF1bHQgPSBmdW5jdGlvbiAob2JqLCBrZXlzKSB7XG4gIHZhciB0YXJnZXQgPSB7fTtcblxuICBmb3IgKHZhciBpIGluIG9iaikge1xuICAgIGlmIChrZXlzLmluZGV4T2YoaSkgPj0gMCkgY29udGludWU7XG4gICAgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBpKSkgY29udGludWU7XG4gICAgdGFyZ2V0W2ldID0gb2JqW2ldO1xuICB9XG5cbiAgcmV0dXJuIHRhcmdldDtcbn07IiwiLyogZ2xvYmFscyB3cG1sX3dpemFyZCwgV1BNTF9jb3JlICovXG5pbXBvcnQge3VzZUZldGNofSBmcm9tIFwiQGJqb3JuYWdoL3VzZS1mZXRjaFwiO1xuaW1wb3J0IHtjdXJyeU4sIGZsaXB9IGZyb20gXCJyYW1kYVwiO1xuaW1wb3J0IHF1ZXJ5U3RyaW5nIGZyb20gXCJxdWVyeS1zdHJpbmdcIjtcblxuZ2xvYmFsLldQTUxfY29yZSA9IGdsb2JhbC5XUE1MX2NvcmUgfHwge307XG5XUE1MX2NvcmUuYWpheEluUHJvZ3Jlc3MgPSAwO1xuXG5leHBvcnQgY29uc3QgY3JlYXRlQWpheCA9ICh7XG5cdFx0XHRcdFx0XHRcdCAgIG1ldGhvZCA9IFwiUE9TVFwiLFxuXHRcdFx0XHRcdFx0XHQgICBjb250ZW50VHlwZSA9ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7IGNoYXJzZXQ9dXRmLTgnXG5cdFx0XHRcdFx0XHQgICB9ID0ge30pID0+IHVzZUZldGNoKHtcblx0dXJsOiBhamF4dXJsLFxuXHRtZXRob2QsXG5cdGluaXQ6IHtcblx0XHRoZWFkZXJzOiB7XG5cdFx0XHQnQ29udGVudC1UeXBlJzogY29udGVudFR5cGVcblx0XHR9XG5cdH1cbn0pO1xuXG5leHBvcnQgY29uc3QgZG9BamF4ID0gKHBheWxvYWQsIHtcblx0bWV0aG9kID0gXCJQT1NUXCIsXG5cdGNvbnRlbnRUeXBlID0gJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDsgY2hhcnNldD11dGYtOCdcbn0gPSB7fSkgPT4ge1xuXHRXUE1MX2NvcmUuYWpheEluUHJvZ3Jlc3MrKztcblxuXHRyZXR1cm4gZmV0Y2goYWpheHVybCwge1xuXHRcdG1ldGhvZCxcblx0XHRoZWFkZXJzOiB7XG5cdFx0XHQnQ29udGVudC1UeXBlJzogY29udGVudFR5cGVcblx0XHR9LFxuXHRcdGNyZWRlbnRpYWxzOiAnc2FtZS1vcmlnaW4nLFxuXHRcdGJvZHk6IHN0cmluZ2lmeShwYXlsb2FkKSxcblx0fSlcblx0XHQudGhlbihhc3luYyByZXMgPT4ge1xuXHRcdFx0aWYgKHJlcy5vaykge1xuXHRcdFx0XHRjb25zdCBkYXRhID0gYXdhaXQgcmVzLmpzb24oKTtcblx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHQuLi5yZXMsXG5cdFx0XHRcdFx0ZGF0YSxcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHQuLi5yZXMsXG5cdFx0XHRcdGRhdGE6IHtcblx0XHRcdFx0XHRzdWNjZXNzOiBmYWxzZSxcblx0XHRcdFx0XHRkYXRhOiB7XG5cdFx0XHRcdFx0XHR0eXBlOiAnYWpheEVycm9yJyxcblx0XHRcdFx0XHRcdG1lc3NhZ2U6IHJlcy5zdGF0dXNUZXh0LFxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fTtcblx0XHR9KVxuXHRcdC5maW5hbGx5KCgpID0+IHtcblx0XHRcdFdQTUxfY29yZS5hamF4SW5Qcm9ncmVzcy0tO1xuXHRcdH0pO1xufVxuXG5leHBvcnQgY29uc3QgY2FsbEVuZHBvaW50ID0gY3VycnlOKDIsICh7bm9uY2UsIGVuZHBvaW50fSwgZGF0YSkgPT4gZG9BamF4KGJ1aWxkQWpheFBheWxvYWQobm9uY2UsIGVuZHBvaW50LCBkYXRhKSkpO1xuXG5leHBvcnQgY29uc3QgZG9SZXF1ZXN0R0VUID0gKHVybCwgKSA9PiB7XG5cdFdQTUxfY29yZS5hamF4SW5Qcm9ncmVzcysrO1xuXG5cdHJldHVybiBmZXRjaCh1cmwsIHttZXRob2Q6ICdHRVQnIH0pLlxuXHRcdHRoZW4ocmVzID0+IChcblx0XHRcdHtcblx0XHRcdFx0Li4ucmVzLFxuXHRcdFx0XHRzdWNjZXNzOiB0cnVlLFxuXHRcdFx0XHRkYXRhOiBKU09OLnBhcnNlKCByZXMuX2JvZHlUZXh0ICksXG5cdFx0XHR9XG5cdFx0KSkuXG5cdFx0Y2F0Y2goZXJyID0+IChcblx0XHRcdHsgc3VjY2VzczogZmFsc2UsIH1cblx0XHQpKS5cblx0XHRmaW5hbGx5KCgpID0+IHtcblx0XHRcdFdQTUxfY29yZS5hamF4SW5Qcm9ncmVzcyAtLTtcblx0XHR9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBidWlsZEFqYXhQYXlsb2FkID0gKG5vbmNlLCBlbmRwb2ludCwgZGF0YSkgPT4gKHtcblx0YWN0aW9uOiAnd3BtbF9hY3Rpb24nLFxuXHRub25jZSxcblx0ZW5kcG9pbnQsXG5cdGRhdGE6IEpTT04uc3RyaW5naWZ5KGRhdGEpXG59KTtcblxuZXhwb3J0IGNvbnN0IHN0cmluZ2lmeSA9IGZsaXAocXVlcnlTdHJpbmcuc3RyaW5naWZ5KSh7YXJyYXlGb3JtYXQ6ICdicmFja2V0J30pO1xuXG5leHBvcnQgY29uc3QgYnVpbGRQYXlsb2FkID0gY3VycnlOKDMsIChub25jZSwgZW5kcG9pbnQsIGRhdGEpID0+IChcblx0XHR7XG5cdFx0XHRib2R5OiBzdHJpbmdpZnkoe1xuXHRcdFx0XHRhY3Rpb246ICd3cG1sX2FjdGlvbicsXG5cdFx0XHRcdG5vbmNlLFxuXHRcdFx0XHRlbmRwb2ludCxcblx0XHRcdFx0ZGF0YTogSlNPTi5zdHJpbmdpZnkoZGF0YSlcblx0XHRcdH0pXG5cdFx0fVxuXHQpXG4pO1xuIiwiaW1wb3J0IF9leHRlbmRzIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9leHRlbmRzJztcbmltcG9ydCBfY2xhc3NDYWxsQ2hlY2sgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL2NsYXNzQ2FsbENoZWNrJztcbmltcG9ydCBfY3JlYXRlQ2xhc3MgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL2NyZWF0ZUNsYXNzJztcbmltcG9ydCB7IGdlbmVyYXRlIGFzIGdlbmVyYXRlQ29sb3IgfSBmcm9tICdAYW50LWRlc2lnbi9jb2xvcnMnO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuZXhwb3J0IGZ1bmN0aW9uIGxvZyhtZXNzYWdlKSB7XG4gICAgaWYgKCEocHJvY2VzcyAmJiBwcm9jZXNzLmVudiAmJiBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSkge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdbQGFudC1kZXNpZ24vaWNvbnMtcmVhY3RdOiAnICsgbWVzc2FnZSArICcuJyk7XG4gICAgfVxufVxuZXhwb3J0IGZ1bmN0aW9uIGlzSWNvbkRlZmluaXRpb24odGFyZ2V0KSB7XG4gICAgcmV0dXJuIHR5cGVvZiB0YXJnZXQgPT09ICdvYmplY3QnICYmIHR5cGVvZiB0YXJnZXQubmFtZSA9PT0gJ3N0cmluZycgJiYgdHlwZW9mIHRhcmdldC50aGVtZSA9PT0gJ3N0cmluZycgJiYgKHR5cGVvZiB0YXJnZXQuaWNvbiA9PT0gJ29iamVjdCcgfHwgdHlwZW9mIHRhcmdldC5pY29uID09PSAnZnVuY3Rpb24nKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVBdHRycygpIHtcbiAgICB2YXIgYXR0cnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9O1xuXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGF0dHJzKS5yZWR1Y2UoZnVuY3Rpb24gKGFjYywga2V5KSB7XG4gICAgICAgIHZhciB2YWwgPSBhdHRyc1trZXldO1xuICAgICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICAgICAgY2FzZSAnY2xhc3MnOlxuICAgICAgICAgICAgICAgIGFjYy5jbGFzc05hbWUgPSB2YWw7XG4gICAgICAgICAgICAgICAgZGVsZXRlIGFjY1snY2xhc3MnXTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgYWNjW2tleV0gPSB2YWw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCB7fSk7XG59XG5leHBvcnQgdmFyIE1pbmlNYXAgPSBmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gTWluaU1hcCgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIE1pbmlNYXApO1xuXG4gICAgICAgIHRoaXMuY29sbGVjdGlvbiA9IHt9O1xuICAgIH1cblxuICAgIF9jcmVhdGVDbGFzcyhNaW5pTWFwLCBbe1xuICAgICAgICBrZXk6ICdjbGVhcicsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiBjbGVhcigpIHtcbiAgICAgICAgICAgIHRoaXMuY29sbGVjdGlvbiA9IHt9O1xuICAgICAgICB9XG4gICAgfSwge1xuICAgICAgICBrZXk6ICdkZWxldGUnLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gX2RlbGV0ZShrZXkpIHtcbiAgICAgICAgICAgIHJldHVybiBkZWxldGUgdGhpcy5jb2xsZWN0aW9uW2tleV07XG4gICAgICAgIH1cbiAgICB9LCB7XG4gICAgICAgIGtleTogJ2dldCcsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiBnZXQoa2V5KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb2xsZWN0aW9uW2tleV07XG4gICAgICAgIH1cbiAgICB9LCB7XG4gICAgICAgIGtleTogJ2hhcycsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiBoYXMoa2V5KSB7XG4gICAgICAgICAgICByZXR1cm4gQm9vbGVhbih0aGlzLmNvbGxlY3Rpb25ba2V5XSk7XG4gICAgICAgIH1cbiAgICB9LCB7XG4gICAgICAgIGtleTogJ3NldCcsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiBzZXQoa2V5LCB2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5jb2xsZWN0aW9uW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG4gICAgfSwge1xuICAgICAgICBrZXk6ICdzaXplJyxcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5jb2xsZWN0aW9uKS5sZW5ndGg7XG4gICAgICAgIH1cbiAgICB9XSk7XG5cbiAgICByZXR1cm4gTWluaU1hcDtcbn0oKTtcbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZShub2RlLCBrZXksIHJvb3RQcm9wcykge1xuICAgIGlmICghcm9vdFByb3BzKSB7XG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KG5vZGUudGFnLCBfZXh0ZW5kcyh7IGtleToga2V5IH0sIG5vcm1hbGl6ZUF0dHJzKG5vZGUuYXR0cnMpKSwgKG5vZGUuY2hpbGRyZW4gfHwgW10pLm1hcChmdW5jdGlvbiAoY2hpbGQsIGluZGV4KSB7XG4gICAgICAgICAgICByZXR1cm4gZ2VuZXJhdGUoY2hpbGQsIGtleSArICctJyArIG5vZGUudGFnICsgJy0nICsgaW5kZXgpO1xuICAgICAgICB9KSk7XG4gICAgfVxuICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KG5vZGUudGFnLCBfZXh0ZW5kcyh7XG4gICAgICAgIGtleToga2V5XG4gICAgfSwgbm9ybWFsaXplQXR0cnMobm9kZS5hdHRycyksIHJvb3RQcm9wcyksIChub2RlLmNoaWxkcmVuIHx8IFtdKS5tYXAoZnVuY3Rpb24gKGNoaWxkLCBpbmRleCkge1xuICAgICAgICByZXR1cm4gZ2VuZXJhdGUoY2hpbGQsIGtleSArICctJyArIG5vZGUudGFnICsgJy0nICsgaW5kZXgpO1xuICAgIH0pKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZWNvbmRhcnlDb2xvcihwcmltYXJ5Q29sb3IpIHtcbiAgICAvLyBjaG9vc2UgdGhlIHNlY29uZCBjb2xvclxuICAgIHJldHVybiBnZW5lcmF0ZUNvbG9yKHByaW1hcnlDb2xvcilbMF07XG59XG5leHBvcnQgZnVuY3Rpb24gd2l0aFN1ZmZpeChuYW1lLCB0aGVtZSkge1xuICAgIHN3aXRjaCAodGhlbWUpIHtcbiAgICAgICAgY2FzZSAnZmlsbCc6XG4gICAgICAgICAgICByZXR1cm4gbmFtZSArICctZmlsbCc7XG4gICAgICAgIGNhc2UgJ291dGxpbmUnOlxuICAgICAgICAgICAgcmV0dXJuIG5hbWUgKyAnLW8nO1xuICAgICAgICBjYXNlICd0d290b25lJzpcbiAgICAgICAgICAgIHJldHVybiBuYW1lICsgJy10d290b25lJztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1Vua25vd24gdGhlbWUgdHlwZTogJyArIHRoZW1lICsgJywgbmFtZTogJyArIG5hbWUpO1xuICAgIH1cbn0iLCJ2YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuL19hbi1vYmplY3QnKTtcbnZhciBJRThfRE9NX0RFRklORSA9IHJlcXVpcmUoJy4vX2llOC1kb20tZGVmaW5lJyk7XG52YXIgdG9QcmltaXRpdmUgPSByZXF1aXJlKCcuL190by1wcmltaXRpdmUnKTtcbnZhciBkUCA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eTtcblxuZXhwb3J0cy5mID0gcmVxdWlyZSgnLi9fZGVzY3JpcHRvcnMnKSA/IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSA6IGZ1bmN0aW9uIGRlZmluZVByb3BlcnR5KE8sIFAsIEF0dHJpYnV0ZXMpIHtcbiAgYW5PYmplY3QoTyk7XG4gIFAgPSB0b1ByaW1pdGl2ZShQLCB0cnVlKTtcbiAgYW5PYmplY3QoQXR0cmlidXRlcyk7XG4gIGlmIChJRThfRE9NX0RFRklORSkgdHJ5IHtcbiAgICByZXR1cm4gZFAoTywgUCwgQXR0cmlidXRlcyk7XG4gIH0gY2F0Y2ggKGUpIHsgLyogZW1wdHkgKi8gfVxuICBpZiAoJ2dldCcgaW4gQXR0cmlidXRlcyB8fCAnc2V0JyBpbiBBdHRyaWJ1dGVzKSB0aHJvdyBUeXBlRXJyb3IoJ0FjY2Vzc29ycyBub3Qgc3VwcG9ydGVkIScpO1xuICBpZiAoJ3ZhbHVlJyBpbiBBdHRyaWJ1dGVzKSBPW1BdID0gQXR0cmlidXRlcy52YWx1ZTtcbiAgcmV0dXJuIE87XG59O1xuIiwidmFyIGhhc093blByb3BlcnR5ID0ge30uaGFzT3duUHJvcGVydHk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCwga2V5KSB7XG4gIHJldHVybiBoYXNPd25Qcm9wZXJ0eS5jYWxsKGl0LCBrZXkpO1xufTtcbiIsIi8qKiBAbGljZW5zZSBJU0MgTGljZW5zZSAoYykgY29weXJpZ2h0IDIwMTcgb3JpZ2luYWwgYW5kIGN1cnJlbnQgYXV0aG9ycyAqL1xuLyoqIEBhdXRob3IgSWFuIEhvZm1hbm4tSGlja3MgKGV2aWwpICovXG5cbnZhciBpc0Z1bmN0aW9uID0gcmVxdWlyZSgnLi9pc0Z1bmN0aW9uJylcbnZhciBmbCA9IHJlcXVpcmUoJy4vZmxOYW1lcycpXG5cbnZhciBjaGVjayA9IGZ1bmN0aW9uIChhbGcsIG0pIHsgcmV0dXJuIGlzRnVuY3Rpb24obVtmbFthbGddXSkgfHwgaXNGdW5jdGlvbihtW2FsZ10pOyB9XG5cbnZhciBjaGVja0ltcGwgPSBmdW5jdGlvbiAoYWxnLCBtKSB7IHJldHVybiBpc0Z1bmN0aW9uKG1bJ0BAaW1wbGVtZW50cyddKSAmJiAhIW1bJ0BAaW1wbGVtZW50cyddKGFsZyk7IH1cblxudmFyIGhhc0FsZyA9IGZ1bmN0aW9uIChhbGcsIG0pIHsgcmV0dXJuICEhbSAmJiAoY2hlY2soYWxnLCBtKSB8fCBjaGVja0ltcGwoYWxnLCBtKSk7IH1cblxubW9kdWxlLmV4cG9ydHMgPSBoYXNBbGdcbiIsInZhciBnbG9iYWwgPSByZXF1aXJlKCcuL19nbG9iYWwnKTtcbnZhciBjb3JlID0gcmVxdWlyZSgnLi9fY29yZScpO1xudmFyIGN0eCA9IHJlcXVpcmUoJy4vX2N0eCcpO1xudmFyIGhpZGUgPSByZXF1aXJlKCcuL19oaWRlJyk7XG52YXIgaGFzID0gcmVxdWlyZSgnLi9faGFzJyk7XG52YXIgUFJPVE9UWVBFID0gJ3Byb3RvdHlwZSc7XG5cbnZhciAkZXhwb3J0ID0gZnVuY3Rpb24gKHR5cGUsIG5hbWUsIHNvdXJjZSkge1xuICB2YXIgSVNfRk9SQ0VEID0gdHlwZSAmICRleHBvcnQuRjtcbiAgdmFyIElTX0dMT0JBTCA9IHR5cGUgJiAkZXhwb3J0Lkc7XG4gIHZhciBJU19TVEFUSUMgPSB0eXBlICYgJGV4cG9ydC5TO1xuICB2YXIgSVNfUFJPVE8gPSB0eXBlICYgJGV4cG9ydC5QO1xuICB2YXIgSVNfQklORCA9IHR5cGUgJiAkZXhwb3J0LkI7XG4gIHZhciBJU19XUkFQID0gdHlwZSAmICRleHBvcnQuVztcbiAgdmFyIGV4cG9ydHMgPSBJU19HTE9CQUwgPyBjb3JlIDogY29yZVtuYW1lXSB8fCAoY29yZVtuYW1lXSA9IHt9KTtcbiAgdmFyIGV4cFByb3RvID0gZXhwb3J0c1tQUk9UT1RZUEVdO1xuICB2YXIgdGFyZ2V0ID0gSVNfR0xPQkFMID8gZ2xvYmFsIDogSVNfU1RBVElDID8gZ2xvYmFsW25hbWVdIDogKGdsb2JhbFtuYW1lXSB8fCB7fSlbUFJPVE9UWVBFXTtcbiAgdmFyIGtleSwgb3duLCBvdXQ7XG4gIGlmIChJU19HTE9CQUwpIHNvdXJjZSA9IG5hbWU7XG4gIGZvciAoa2V5IGluIHNvdXJjZSkge1xuICAgIC8vIGNvbnRhaW5zIGluIG5hdGl2ZVxuICAgIG93biA9ICFJU19GT1JDRUQgJiYgdGFyZ2V0ICYmIHRhcmdldFtrZXldICE9PSB1bmRlZmluZWQ7XG4gICAgaWYgKG93biAmJiBoYXMoZXhwb3J0cywga2V5KSkgY29udGludWU7XG4gICAgLy8gZXhwb3J0IG5hdGl2ZSBvciBwYXNzZWRcbiAgICBvdXQgPSBvd24gPyB0YXJnZXRba2V5XSA6IHNvdXJjZVtrZXldO1xuICAgIC8vIHByZXZlbnQgZ2xvYmFsIHBvbGx1dGlvbiBmb3IgbmFtZXNwYWNlc1xuICAgIGV4cG9ydHNba2V5XSA9IElTX0dMT0JBTCAmJiB0eXBlb2YgdGFyZ2V0W2tleV0gIT0gJ2Z1bmN0aW9uJyA/IHNvdXJjZVtrZXldXG4gICAgLy8gYmluZCB0aW1lcnMgdG8gZ2xvYmFsIGZvciBjYWxsIGZyb20gZXhwb3J0IGNvbnRleHRcbiAgICA6IElTX0JJTkQgJiYgb3duID8gY3R4KG91dCwgZ2xvYmFsKVxuICAgIC8vIHdyYXAgZ2xvYmFsIGNvbnN0cnVjdG9ycyBmb3IgcHJldmVudCBjaGFuZ2UgdGhlbSBpbiBsaWJyYXJ5XG4gICAgOiBJU19XUkFQICYmIHRhcmdldFtrZXldID09IG91dCA/IChmdW5jdGlvbiAoQykge1xuICAgICAgdmFyIEYgPSBmdW5jdGlvbiAoYSwgYiwgYykge1xuICAgICAgICBpZiAodGhpcyBpbnN0YW5jZW9mIEMpIHtcbiAgICAgICAgICBzd2l0Y2ggKGFyZ3VtZW50cy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNhc2UgMDogcmV0dXJuIG5ldyBDKCk7XG4gICAgICAgICAgICBjYXNlIDE6IHJldHVybiBuZXcgQyhhKTtcbiAgICAgICAgICAgIGNhc2UgMjogcmV0dXJuIG5ldyBDKGEsIGIpO1xuICAgICAgICAgIH0gcmV0dXJuIG5ldyBDKGEsIGIsIGMpO1xuICAgICAgICB9IHJldHVybiBDLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICB9O1xuICAgICAgRltQUk9UT1RZUEVdID0gQ1tQUk9UT1RZUEVdO1xuICAgICAgcmV0dXJuIEY7XG4gICAgLy8gbWFrZSBzdGF0aWMgdmVyc2lvbnMgZm9yIHByb3RvdHlwZSBtZXRob2RzXG4gICAgfSkob3V0KSA6IElTX1BST1RPICYmIHR5cGVvZiBvdXQgPT0gJ2Z1bmN0aW9uJyA/IGN0eChGdW5jdGlvbi5jYWxsLCBvdXQpIDogb3V0O1xuICAgIC8vIGV4cG9ydCBwcm90byBtZXRob2RzIHRvIGNvcmUuJUNPTlNUUlVDVE9SJS5tZXRob2RzLiVOQU1FJVxuICAgIGlmIChJU19QUk9UTykge1xuICAgICAgKGV4cG9ydHMudmlydHVhbCB8fCAoZXhwb3J0cy52aXJ0dWFsID0ge30pKVtrZXldID0gb3V0O1xuICAgICAgLy8gZXhwb3J0IHByb3RvIG1ldGhvZHMgdG8gY29yZS4lQ09OU1RSVUNUT1IlLnByb3RvdHlwZS4lTkFNRSVcbiAgICAgIGlmICh0eXBlICYgJGV4cG9ydC5SICYmIGV4cFByb3RvICYmICFleHBQcm90b1trZXldKSBoaWRlKGV4cFByb3RvLCBrZXksIG91dCk7XG4gICAgfVxuICB9XG59O1xuLy8gdHlwZSBiaXRtYXBcbiRleHBvcnQuRiA9IDE7ICAgLy8gZm9yY2VkXG4kZXhwb3J0LkcgPSAyOyAgIC8vIGdsb2JhbFxuJGV4cG9ydC5TID0gNDsgICAvLyBzdGF0aWNcbiRleHBvcnQuUCA9IDg7ICAgLy8gcHJvdG9cbiRleHBvcnQuQiA9IDE2OyAgLy8gYmluZFxuJGV4cG9ydC5XID0gMzI7ICAvLyB3cmFwXG4kZXhwb3J0LlUgPSA2NDsgIC8vIHNhZmVcbiRleHBvcnQuUiA9IDEyODsgLy8gcmVhbCBwcm90byBtZXRob2QgZm9yIGBsaWJyYXJ5YFxubW9kdWxlLmV4cG9ydHMgPSAkZXhwb3J0O1xuIiwidmFyIGRQID0gcmVxdWlyZSgnLi9fb2JqZWN0LWRwJyk7XG52YXIgY3JlYXRlRGVzYyA9IHJlcXVpcmUoJy4vX3Byb3BlcnR5LWRlc2MnKTtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9fZGVzY3JpcHRvcnMnKSA/IGZ1bmN0aW9uIChvYmplY3QsIGtleSwgdmFsdWUpIHtcbiAgcmV0dXJuIGRQLmYob2JqZWN0LCBrZXksIGNyZWF0ZURlc2MoMSwgdmFsdWUpKTtcbn0gOiBmdW5jdGlvbiAob2JqZWN0LCBrZXksIHZhbHVlKSB7XG4gIG9iamVjdFtrZXldID0gdmFsdWU7XG4gIHJldHVybiBvYmplY3Q7XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIHR5cGVvZiBpdCA9PT0gJ29iamVjdCcgPyBpdCAhPT0gbnVsbCA6IHR5cGVvZiBpdCA9PT0gJ2Z1bmN0aW9uJztcbn07XG4iLCIvLyB0byBpbmRleGVkIG9iamVjdCwgdG9PYmplY3Qgd2l0aCBmYWxsYmFjayBmb3Igbm9uLWFycmF5LWxpa2UgRVMzIHN0cmluZ3NcbnZhciBJT2JqZWN0ID0gcmVxdWlyZSgnLi9faW9iamVjdCcpO1xudmFyIGRlZmluZWQgPSByZXF1aXJlKCcuL19kZWZpbmVkJyk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gSU9iamVjdChkZWZpbmVkKGl0KSk7XG59O1xuIiwidmFyIHN0b3JlID0gcmVxdWlyZSgnLi9fc2hhcmVkJykoJ3drcycpO1xudmFyIHVpZCA9IHJlcXVpcmUoJy4vX3VpZCcpO1xudmFyIFN5bWJvbCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpLlN5bWJvbDtcbnZhciBVU0VfU1lNQk9MID0gdHlwZW9mIFN5bWJvbCA9PSAnZnVuY3Rpb24nO1xuXG52YXIgJGV4cG9ydHMgPSBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gIHJldHVybiBzdG9yZVtuYW1lXSB8fCAoc3RvcmVbbmFtZV0gPVxuICAgIFVTRV9TWU1CT0wgJiYgU3ltYm9sW25hbWVdIHx8IChVU0VfU1lNQk9MID8gU3ltYm9sIDogdWlkKSgnU3ltYm9sLicgKyBuYW1lKSk7XG59O1xuXG4kZXhwb3J0cy5zdG9yZSA9IHN0b3JlO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbmZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjsgaWYgKHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09PSBcInN5bWJvbFwiKSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gdHlwZW9mIG9iajsgfTsgfSBlbHNlIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiBvYmogJiYgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG9iaiAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqOyB9OyB9IHJldHVybiBfdHlwZW9mKG9iaik7IH1cblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcInJlc2V0V2FybmVkXCIsIHtcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgcmV0dXJuIF93YXJuaW5nLnJlc2V0V2FybmVkO1xuICB9XG59KTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gdm9pZCAwO1xuXG52YXIgX3dhcm5pbmcgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicmMtdXRpbC9saWIvd2FybmluZ1wiKSk7XG5cbmZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgaWYgKHR5cGVvZiBXZWFrTWFwICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBudWxsOyB2YXIgY2FjaGUgPSBuZXcgV2Vha01hcCgpOyBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUgPSBmdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7IHJldHVybiBjYWNoZTsgfTsgcmV0dXJuIGNhY2hlOyB9XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKG9iaikgeyBpZiAob2JqICYmIG9iai5fX2VzTW9kdWxlKSB7IHJldHVybiBvYmo7IH0gaWYgKG9iaiA9PT0gbnVsbCB8fCBfdHlwZW9mKG9iaikgIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIG9iaiAhPT0gXCJmdW5jdGlvblwiKSB7IHJldHVybiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfSB2YXIgY2FjaGUgPSBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKTsgaWYgKGNhY2hlICYmIGNhY2hlLmhhcyhvYmopKSB7IHJldHVybiBjYWNoZS5nZXQob2JqKTsgfSB2YXIgbmV3T2JqID0ge307IHZhciBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjsgZm9yICh2YXIga2V5IGluIG9iaikgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkgeyB2YXIgZGVzYyA9IGhhc1Byb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDogbnVsbDsgaWYgKGRlc2MgJiYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpOyB9IGVsc2UgeyBuZXdPYmpba2V5XSA9IG9ialtrZXldOyB9IH0gfSBuZXdPYmpbXCJkZWZhdWx0XCJdID0gb2JqOyBpZiAoY2FjaGUpIHsgY2FjaGUuc2V0KG9iaiwgbmV3T2JqKTsgfSByZXR1cm4gbmV3T2JqOyB9XG5cbnZhciBfZGVmYXVsdCA9IGZ1bmN0aW9uIF9kZWZhdWx0KHZhbGlkLCBjb21wb25lbnQsIG1lc3NhZ2UpIHtcbiAgKDAsIF93YXJuaW5nW1wiZGVmYXVsdFwiXSkodmFsaWQsIFwiW2FudGQ6IFwiLmNvbmNhdChjb21wb25lbnQsIFwiXSBcIikuY29uY2F0KG1lc3NhZ2UpKTtcbn07XG5cbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gX2RlZmF1bHQ7IiwidmFyIGFycmF5V2l0aEhvbGVzID0gcmVxdWlyZShcIi4vYXJyYXlXaXRoSG9sZXMuanNcIik7XG5cbnZhciBpdGVyYWJsZVRvQXJyYXlMaW1pdCA9IHJlcXVpcmUoXCIuL2l0ZXJhYmxlVG9BcnJheUxpbWl0LmpzXCIpO1xuXG52YXIgdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkgPSByZXF1aXJlKFwiLi91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheS5qc1wiKTtcblxudmFyIG5vbkl0ZXJhYmxlUmVzdCA9IHJlcXVpcmUoXCIuL25vbkl0ZXJhYmxlUmVzdC5qc1wiKTtcblxuZnVuY3Rpb24gX3NsaWNlZFRvQXJyYXkoYXJyLCBpKSB7XG4gIHJldHVybiBhcnJheVdpdGhIb2xlcyhhcnIpIHx8IGl0ZXJhYmxlVG9BcnJheUxpbWl0KGFyciwgaSkgfHwgdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkoYXJyLCBpKSB8fCBub25JdGVyYWJsZVJlc3QoKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfc2xpY2VkVG9BcnJheTtcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5leHBvcnQgZnVuY3Rpb24gdG9BcnJheUNoaWxkcmVuKGNoaWxkcmVuKSB7XG4gIHZhciByZXQgPSBbXTtcbiAgUmVhY3QuQ2hpbGRyZW4uZm9yRWFjaChjaGlsZHJlbiwgZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgcmV0LnB1c2goY2hpbGQpO1xuICB9KTtcbiAgcmV0dXJuIHJldDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRDaGlsZEluQ2hpbGRyZW5CeUtleShjaGlsZHJlbiwga2V5KSB7XG4gIHZhciByZXQgPSBudWxsO1xuICBpZiAoY2hpbGRyZW4pIHtcbiAgICBjaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uIChjaGlsZCkge1xuICAgICAgaWYgKHJldCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAoY2hpbGQgJiYgY2hpbGQua2V5ID09PSBrZXkpIHtcbiAgICAgICAgcmV0ID0gY2hpbGQ7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRTaG93bkNoaWxkSW5DaGlsZHJlbkJ5S2V5KGNoaWxkcmVuLCBrZXksIHNob3dQcm9wKSB7XG4gIHZhciByZXQgPSBudWxsO1xuICBpZiAoY2hpbGRyZW4pIHtcbiAgICBjaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uIChjaGlsZCkge1xuICAgICAgaWYgKGNoaWxkICYmIGNoaWxkLmtleSA9PT0ga2V5ICYmIGNoaWxkLnByb3BzW3Nob3dQcm9wXSkge1xuICAgICAgICBpZiAocmV0KSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd0d28gY2hpbGQgd2l0aCBzYW1lIGtleSBmb3IgPHJjLWFuaW1hdGU+IGNoaWxkcmVuJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0ID0gY2hpbGQ7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRIaWRkZW5DaGlsZEluQ2hpbGRyZW5CeUtleShjaGlsZHJlbiwga2V5LCBzaG93UHJvcCkge1xuICB2YXIgZm91bmQgPSAwO1xuICBpZiAoY2hpbGRyZW4pIHtcbiAgICBjaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uIChjaGlsZCkge1xuICAgICAgaWYgKGZvdW5kKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGZvdW5kID0gY2hpbGQgJiYgY2hpbGQua2V5ID09PSBrZXkgJiYgIWNoaWxkLnByb3BzW3Nob3dQcm9wXTtcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gZm91bmQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1NhbWVDaGlsZHJlbihjMSwgYzIsIHNob3dQcm9wKSB7XG4gIHZhciBzYW1lID0gYzEubGVuZ3RoID09PSBjMi5sZW5ndGg7XG4gIGlmIChzYW1lKSB7XG4gICAgYzEuZm9yRWFjaChmdW5jdGlvbiAoY2hpbGQsIGluZGV4KSB7XG4gICAgICB2YXIgY2hpbGQyID0gYzJbaW5kZXhdO1xuICAgICAgaWYgKGNoaWxkICYmIGNoaWxkMikge1xuICAgICAgICBpZiAoY2hpbGQgJiYgIWNoaWxkMiB8fCAhY2hpbGQgJiYgY2hpbGQyKSB7XG4gICAgICAgICAgc2FtZSA9IGZhbHNlO1xuICAgICAgICB9IGVsc2UgaWYgKGNoaWxkLmtleSAhPT0gY2hpbGQyLmtleSkge1xuICAgICAgICAgIHNhbWUgPSBmYWxzZTtcbiAgICAgICAgfSBlbHNlIGlmIChzaG93UHJvcCAmJiBjaGlsZC5wcm9wc1tzaG93UHJvcF0gIT09IGNoaWxkMi5wcm9wc1tzaG93UHJvcF0pIHtcbiAgICAgICAgICBzYW1lID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICByZXR1cm4gc2FtZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlQ2hpbGRyZW4ocHJldiwgbmV4dCkge1xuICB2YXIgcmV0ID0gW107XG5cbiAgLy8gRm9yIGVhY2gga2V5IG9mIGBuZXh0YCwgdGhlIGxpc3Qgb2Yga2V5cyB0byBpbnNlcnQgYmVmb3JlIHRoYXQga2V5IGluXG4gIC8vIHRoZSBjb21iaW5lZCBsaXN0XG4gIHZhciBuZXh0Q2hpbGRyZW5QZW5kaW5nID0ge307XG4gIHZhciBwZW5kaW5nQ2hpbGRyZW4gPSBbXTtcbiAgcHJldi5mb3JFYWNoKGZ1bmN0aW9uIChjaGlsZCkge1xuICAgIGlmIChjaGlsZCAmJiBmaW5kQ2hpbGRJbkNoaWxkcmVuQnlLZXkobmV4dCwgY2hpbGQua2V5KSkge1xuICAgICAgaWYgKHBlbmRpbmdDaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgICAgbmV4dENoaWxkcmVuUGVuZGluZ1tjaGlsZC5rZXldID0gcGVuZGluZ0NoaWxkcmVuO1xuICAgICAgICBwZW5kaW5nQ2hpbGRyZW4gPSBbXTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcGVuZGluZ0NoaWxkcmVuLnB1c2goY2hpbGQpO1xuICAgIH1cbiAgfSk7XG5cbiAgbmV4dC5mb3JFYWNoKGZ1bmN0aW9uIChjaGlsZCkge1xuICAgIGlmIChjaGlsZCAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobmV4dENoaWxkcmVuUGVuZGluZywgY2hpbGQua2V5KSkge1xuICAgICAgcmV0ID0gcmV0LmNvbmNhdChuZXh0Q2hpbGRyZW5QZW5kaW5nW2NoaWxkLmtleV0pO1xuICAgIH1cbiAgICByZXQucHVzaChjaGlsZCk7XG4gIH0pO1xuXG4gIHJldCA9IHJldC5jb25jYXQocGVuZGluZ0NoaWxkcmVuKTtcblxuICByZXR1cm4gcmV0O1xufSIsInZhciBTVEFSVF9FVkVOVF9OQU1FX01BUCA9IHtcbiAgdHJhbnNpdGlvbnN0YXJ0OiB7XG4gICAgdHJhbnNpdGlvbjogJ3RyYW5zaXRpb25zdGFydCcsXG4gICAgV2Via2l0VHJhbnNpdGlvbjogJ3dlYmtpdFRyYW5zaXRpb25TdGFydCcsXG4gICAgTW96VHJhbnNpdGlvbjogJ21velRyYW5zaXRpb25TdGFydCcsXG4gICAgT1RyYW5zaXRpb246ICdvVHJhbnNpdGlvblN0YXJ0JyxcbiAgICBtc1RyYW5zaXRpb246ICdNU1RyYW5zaXRpb25TdGFydCdcbiAgfSxcblxuICBhbmltYXRpb25zdGFydDoge1xuICAgIGFuaW1hdGlvbjogJ2FuaW1hdGlvbnN0YXJ0JyxcbiAgICBXZWJraXRBbmltYXRpb246ICd3ZWJraXRBbmltYXRpb25TdGFydCcsXG4gICAgTW96QW5pbWF0aW9uOiAnbW96QW5pbWF0aW9uU3RhcnQnLFxuICAgIE9BbmltYXRpb246ICdvQW5pbWF0aW9uU3RhcnQnLFxuICAgIG1zQW5pbWF0aW9uOiAnTVNBbmltYXRpb25TdGFydCdcbiAgfVxufTtcblxudmFyIEVORF9FVkVOVF9OQU1FX01BUCA9IHtcbiAgdHJhbnNpdGlvbmVuZDoge1xuICAgIHRyYW5zaXRpb246ICd0cmFuc2l0aW9uZW5kJyxcbiAgICBXZWJraXRUcmFuc2l0aW9uOiAnd2Via2l0VHJhbnNpdGlvbkVuZCcsXG4gICAgTW96VHJhbnNpdGlvbjogJ21velRyYW5zaXRpb25FbmQnLFxuICAgIE9UcmFuc2l0aW9uOiAnb1RyYW5zaXRpb25FbmQnLFxuICAgIG1zVHJhbnNpdGlvbjogJ01TVHJhbnNpdGlvbkVuZCdcbiAgfSxcblxuICBhbmltYXRpb25lbmQ6IHtcbiAgICBhbmltYXRpb246ICdhbmltYXRpb25lbmQnLFxuICAgIFdlYmtpdEFuaW1hdGlvbjogJ3dlYmtpdEFuaW1hdGlvbkVuZCcsXG4gICAgTW96QW5pbWF0aW9uOiAnbW96QW5pbWF0aW9uRW5kJyxcbiAgICBPQW5pbWF0aW9uOiAnb0FuaW1hdGlvbkVuZCcsXG4gICAgbXNBbmltYXRpb246ICdNU0FuaW1hdGlvbkVuZCdcbiAgfVxufTtcblxudmFyIHN0YXJ0RXZlbnRzID0gW107XG52YXIgZW5kRXZlbnRzID0gW107XG5cbmZ1bmN0aW9uIGRldGVjdEV2ZW50cygpIHtcbiAgdmFyIHRlc3RFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICB2YXIgc3R5bGUgPSB0ZXN0RWwuc3R5bGU7XG5cbiAgaWYgKCEoJ0FuaW1hdGlvbkV2ZW50JyBpbiB3aW5kb3cpKSB7XG4gICAgZGVsZXRlIFNUQVJUX0VWRU5UX05BTUVfTUFQLmFuaW1hdGlvbnN0YXJ0LmFuaW1hdGlvbjtcbiAgICBkZWxldGUgRU5EX0VWRU5UX05BTUVfTUFQLmFuaW1hdGlvbmVuZC5hbmltYXRpb247XG4gIH1cblxuICBpZiAoISgnVHJhbnNpdGlvbkV2ZW50JyBpbiB3aW5kb3cpKSB7XG4gICAgZGVsZXRlIFNUQVJUX0VWRU5UX05BTUVfTUFQLnRyYW5zaXRpb25zdGFydC50cmFuc2l0aW9uO1xuICAgIGRlbGV0ZSBFTkRfRVZFTlRfTkFNRV9NQVAudHJhbnNpdGlvbmVuZC50cmFuc2l0aW9uO1xuICB9XG5cbiAgZnVuY3Rpb24gcHJvY2VzcyhFVkVOVF9OQU1FX01BUCwgZXZlbnRzKSB7XG4gICAgZm9yICh2YXIgYmFzZUV2ZW50TmFtZSBpbiBFVkVOVF9OQU1FX01BUCkge1xuICAgICAgaWYgKEVWRU5UX05BTUVfTUFQLmhhc093blByb3BlcnR5KGJhc2VFdmVudE5hbWUpKSB7XG4gICAgICAgIHZhciBiYXNlRXZlbnRzID0gRVZFTlRfTkFNRV9NQVBbYmFzZUV2ZW50TmFtZV07XG4gICAgICAgIGZvciAodmFyIHN0eWxlTmFtZSBpbiBiYXNlRXZlbnRzKSB7XG4gICAgICAgICAgaWYgKHN0eWxlTmFtZSBpbiBzdHlsZSkge1xuICAgICAgICAgICAgZXZlbnRzLnB1c2goYmFzZUV2ZW50c1tzdHlsZU5hbWVdKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByb2Nlc3MoU1RBUlRfRVZFTlRfTkFNRV9NQVAsIHN0YXJ0RXZlbnRzKTtcbiAgcHJvY2VzcyhFTkRfRVZFTlRfTkFNRV9NQVAsIGVuZEV2ZW50cyk7XG59XG5cbmlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnKSB7XG4gIGRldGVjdEV2ZW50cygpO1xufVxuXG5mdW5jdGlvbiBhZGRFdmVudExpc3RlbmVyKG5vZGUsIGV2ZW50TmFtZSwgZXZlbnRMaXN0ZW5lcikge1xuICBub2RlLmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBldmVudExpc3RlbmVyLCBmYWxzZSk7XG59XG5cbmZ1bmN0aW9uIHJlbW92ZUV2ZW50TGlzdGVuZXIobm9kZSwgZXZlbnROYW1lLCBldmVudExpc3RlbmVyKSB7XG4gIG5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIGV2ZW50TGlzdGVuZXIsIGZhbHNlKTtcbn1cblxudmFyIFRyYW5zaXRpb25FdmVudHMgPSB7XG4gIC8vIFN0YXJ0IGV2ZW50c1xuICBzdGFydEV2ZW50czogc3RhcnRFdmVudHMsXG5cbiAgYWRkU3RhcnRFdmVudExpc3RlbmVyOiBmdW5jdGlvbiBhZGRTdGFydEV2ZW50TGlzdGVuZXIobm9kZSwgZXZlbnRMaXN0ZW5lcikge1xuICAgIGlmIChzdGFydEV2ZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGV2ZW50TGlzdGVuZXIsIDApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBzdGFydEV2ZW50cy5mb3JFYWNoKGZ1bmN0aW9uIChzdGFydEV2ZW50KSB7XG4gICAgICBhZGRFdmVudExpc3RlbmVyKG5vZGUsIHN0YXJ0RXZlbnQsIGV2ZW50TGlzdGVuZXIpO1xuICAgIH0pO1xuICB9LFxuICByZW1vdmVTdGFydEV2ZW50TGlzdGVuZXI6IGZ1bmN0aW9uIHJlbW92ZVN0YXJ0RXZlbnRMaXN0ZW5lcihub2RlLCBldmVudExpc3RlbmVyKSB7XG4gICAgaWYgKHN0YXJ0RXZlbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBzdGFydEV2ZW50cy5mb3JFYWNoKGZ1bmN0aW9uIChzdGFydEV2ZW50KSB7XG4gICAgICByZW1vdmVFdmVudExpc3RlbmVyKG5vZGUsIHN0YXJ0RXZlbnQsIGV2ZW50TGlzdGVuZXIpO1xuICAgIH0pO1xuICB9LFxuXG5cbiAgLy8gRW5kIGV2ZW50c1xuICBlbmRFdmVudHM6IGVuZEV2ZW50cyxcblxuICBhZGRFbmRFdmVudExpc3RlbmVyOiBmdW5jdGlvbiBhZGRFbmRFdmVudExpc3RlbmVyKG5vZGUsIGV2ZW50TGlzdGVuZXIpIHtcbiAgICBpZiAoZW5kRXZlbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgd2luZG93LnNldFRpbWVvdXQoZXZlbnRMaXN0ZW5lciwgMCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGVuZEV2ZW50cy5mb3JFYWNoKGZ1bmN0aW9uIChlbmRFdmVudCkge1xuICAgICAgYWRkRXZlbnRMaXN0ZW5lcihub2RlLCBlbmRFdmVudCwgZXZlbnRMaXN0ZW5lcik7XG4gICAgfSk7XG4gIH0sXG4gIHJlbW92ZUVuZEV2ZW50TGlzdGVuZXI6IGZ1bmN0aW9uIHJlbW92ZUVuZEV2ZW50TGlzdGVuZXIobm9kZSwgZXZlbnRMaXN0ZW5lcikge1xuICAgIGlmIChlbmRFdmVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGVuZEV2ZW50cy5mb3JFYWNoKGZ1bmN0aW9uIChlbmRFdmVudCkge1xuICAgICAgcmVtb3ZlRXZlbnRMaXN0ZW5lcihub2RlLCBlbmRFdmVudCwgZXZlbnRMaXN0ZW5lcik7XG4gICAgfSk7XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IFRyYW5zaXRpb25FdmVudHM7IiwiaW1wb3J0IF90eXBlb2YgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL3R5cGVvZic7XG5pbXBvcnQgRXZlbnQgZnJvbSAnLi9FdmVudCc7XG5pbXBvcnQgY2xhc3NlcyBmcm9tICdjb21wb25lbnQtY2xhc3Nlcyc7XG5cbnZhciBpc0Nzc0FuaW1hdGlvblN1cHBvcnRlZCA9IEV2ZW50LmVuZEV2ZW50cy5sZW5ndGggIT09IDA7XG52YXIgY2FwaXRhbFByZWZpeGVzID0gWydXZWJraXQnLCAnTW96JywgJ08nLFxuLy8gbXMgaXMgc3BlY2lhbCAuLi4uICFcbidtcyddO1xudmFyIHByZWZpeGVzID0gWyctd2Via2l0LScsICctbW96LScsICctby0nLCAnbXMtJywgJyddO1xuXG5mdW5jdGlvbiBnZXRTdHlsZVByb3BlcnR5KG5vZGUsIG5hbWUpIHtcbiAgLy8gb2xkIGZmIG5lZWQgbnVsbCwgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL1dpbmRvdy9nZXRDb21wdXRlZFN0eWxlXG4gIHZhciBzdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKG5vZGUsIG51bGwpO1xuICB2YXIgcmV0ID0gJyc7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgcHJlZml4ZXMubGVuZ3RoOyBpKyspIHtcbiAgICByZXQgPSBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKHByZWZpeGVzW2ldICsgbmFtZSk7XG4gICAgaWYgKHJldCkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXQ7XG59XG5cbmZ1bmN0aW9uIGZpeEJyb3dzZXJCeVRpbWVvdXQobm9kZSkge1xuICBpZiAoaXNDc3NBbmltYXRpb25TdXBwb3J0ZWQpIHtcbiAgICB2YXIgdHJhbnNpdGlvbkRlbGF5ID0gcGFyc2VGbG9hdChnZXRTdHlsZVByb3BlcnR5KG5vZGUsICd0cmFuc2l0aW9uLWRlbGF5JykpIHx8IDA7XG4gICAgdmFyIHRyYW5zaXRpb25EdXJhdGlvbiA9IHBhcnNlRmxvYXQoZ2V0U3R5bGVQcm9wZXJ0eShub2RlLCAndHJhbnNpdGlvbi1kdXJhdGlvbicpKSB8fCAwO1xuICAgIHZhciBhbmltYXRpb25EZWxheSA9IHBhcnNlRmxvYXQoZ2V0U3R5bGVQcm9wZXJ0eShub2RlLCAnYW5pbWF0aW9uLWRlbGF5JykpIHx8IDA7XG4gICAgdmFyIGFuaW1hdGlvbkR1cmF0aW9uID0gcGFyc2VGbG9hdChnZXRTdHlsZVByb3BlcnR5KG5vZGUsICdhbmltYXRpb24tZHVyYXRpb24nKSkgfHwgMDtcbiAgICB2YXIgdGltZSA9IE1hdGgubWF4KHRyYW5zaXRpb25EdXJhdGlvbiArIHRyYW5zaXRpb25EZWxheSwgYW5pbWF0aW9uRHVyYXRpb24gKyBhbmltYXRpb25EZWxheSk7XG4gICAgLy8gc29tZXRpbWVzLCBicm93c2VyIGJ1Z1xuICAgIG5vZGUucmNFbmRBbmltVGltZW91dCA9IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgbm9kZS5yY0VuZEFuaW1UaW1lb3V0ID0gbnVsbDtcbiAgICAgIGlmIChub2RlLnJjRW5kTGlzdGVuZXIpIHtcbiAgICAgICAgbm9kZS5yY0VuZExpc3RlbmVyKCk7XG4gICAgICB9XG4gICAgfSwgdGltZSAqIDEwMDAgKyAyMDApO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNsZWFyQnJvd3NlckJ1Z1RpbWVvdXQobm9kZSkge1xuICBpZiAobm9kZS5yY0VuZEFuaW1UaW1lb3V0KSB7XG4gICAgY2xlYXJUaW1lb3V0KG5vZGUucmNFbmRBbmltVGltZW91dCk7XG4gICAgbm9kZS5yY0VuZEFuaW1UaW1lb3V0ID0gbnVsbDtcbiAgfVxufVxuXG52YXIgY3NzQW5pbWF0aW9uID0gZnVuY3Rpb24gY3NzQW5pbWF0aW9uKG5vZGUsIHRyYW5zaXRpb25OYW1lLCBlbmRDYWxsYmFjaykge1xuICB2YXIgbmFtZUlzT2JqID0gKHR5cGVvZiB0cmFuc2l0aW9uTmFtZSA9PT0gJ3VuZGVmaW5lZCcgPyAndW5kZWZpbmVkJyA6IF90eXBlb2YodHJhbnNpdGlvbk5hbWUpKSA9PT0gJ29iamVjdCc7XG4gIHZhciBjbGFzc05hbWUgPSBuYW1lSXNPYmogPyB0cmFuc2l0aW9uTmFtZS5uYW1lIDogdHJhbnNpdGlvbk5hbWU7XG4gIHZhciBhY3RpdmVDbGFzc05hbWUgPSBuYW1lSXNPYmogPyB0cmFuc2l0aW9uTmFtZS5hY3RpdmUgOiB0cmFuc2l0aW9uTmFtZSArICctYWN0aXZlJztcbiAgdmFyIGVuZCA9IGVuZENhbGxiYWNrO1xuICB2YXIgc3RhcnQgPSB2b2lkIDA7XG4gIHZhciBhY3RpdmUgPSB2b2lkIDA7XG4gIHZhciBub2RlQ2xhc3NlcyA9IGNsYXNzZXMobm9kZSk7XG5cbiAgaWYgKGVuZENhbGxiYWNrICYmIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlbmRDYWxsYmFjaykgPT09ICdbb2JqZWN0IE9iamVjdF0nKSB7XG4gICAgZW5kID0gZW5kQ2FsbGJhY2suZW5kO1xuICAgIHN0YXJ0ID0gZW5kQ2FsbGJhY2suc3RhcnQ7XG4gICAgYWN0aXZlID0gZW5kQ2FsbGJhY2suYWN0aXZlO1xuICB9XG5cbiAgaWYgKG5vZGUucmNFbmRMaXN0ZW5lcikge1xuICAgIG5vZGUucmNFbmRMaXN0ZW5lcigpO1xuICB9XG5cbiAgbm9kZS5yY0VuZExpc3RlbmVyID0gZnVuY3Rpb24gKGUpIHtcbiAgICBpZiAoZSAmJiBlLnRhcmdldCAhPT0gbm9kZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChub2RlLnJjQW5pbVRpbWVvdXQpIHtcbiAgICAgIGNsZWFyVGltZW91dChub2RlLnJjQW5pbVRpbWVvdXQpO1xuICAgICAgbm9kZS5yY0FuaW1UaW1lb3V0ID0gbnVsbDtcbiAgICB9XG5cbiAgICBjbGVhckJyb3dzZXJCdWdUaW1lb3V0KG5vZGUpO1xuXG4gICAgbm9kZUNsYXNzZXMucmVtb3ZlKGNsYXNzTmFtZSk7XG4gICAgbm9kZUNsYXNzZXMucmVtb3ZlKGFjdGl2ZUNsYXNzTmFtZSk7XG5cbiAgICBFdmVudC5yZW1vdmVFbmRFdmVudExpc3RlbmVyKG5vZGUsIG5vZGUucmNFbmRMaXN0ZW5lcik7XG4gICAgbm9kZS5yY0VuZExpc3RlbmVyID0gbnVsbDtcblxuICAgIC8vIFVzdWFsbHkgdGhpcyBvcHRpb25hbCBlbmQgaXMgdXNlZCBmb3IgaW5mb3JtaW5nIGFuIG93bmVyIG9mXG4gICAgLy8gYSBsZWF2ZSBhbmltYXRpb24gYW5kIHRlbGxpbmcgaXQgdG8gcmVtb3ZlIHRoZSBjaGlsZC5cbiAgICBpZiAoZW5kKSB7XG4gICAgICBlbmQoKTtcbiAgICB9XG4gIH07XG5cbiAgRXZlbnQuYWRkRW5kRXZlbnRMaXN0ZW5lcihub2RlLCBub2RlLnJjRW5kTGlzdGVuZXIpO1xuXG4gIGlmIChzdGFydCkge1xuICAgIHN0YXJ0KCk7XG4gIH1cbiAgbm9kZUNsYXNzZXMuYWRkKGNsYXNzTmFtZSk7XG5cbiAgbm9kZS5yY0FuaW1UaW1lb3V0ID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgbm9kZS5yY0FuaW1UaW1lb3V0ID0gbnVsbDtcbiAgICBub2RlQ2xhc3Nlcy5hZGQoYWN0aXZlQ2xhc3NOYW1lKTtcbiAgICBpZiAoYWN0aXZlKSB7XG4gICAgICBzZXRUaW1lb3V0KGFjdGl2ZSwgMCk7XG4gICAgfVxuICAgIGZpeEJyb3dzZXJCeVRpbWVvdXQobm9kZSk7XG4gICAgLy8gMzBtcyBmb3IgZmlyZWZveFxuICB9LCAzMCk7XG5cbiAgcmV0dXJuIHtcbiAgICBzdG9wOiBmdW5jdGlvbiBzdG9wKCkge1xuICAgICAgaWYgKG5vZGUucmNFbmRMaXN0ZW5lcikge1xuICAgICAgICBub2RlLnJjRW5kTGlzdGVuZXIoKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG59O1xuXG5jc3NBbmltYXRpb24uc3R5bGUgPSBmdW5jdGlvbiAobm9kZSwgc3R5bGUsIGNhbGxiYWNrKSB7XG4gIGlmIChub2RlLnJjRW5kTGlzdGVuZXIpIHtcbiAgICBub2RlLnJjRW5kTGlzdGVuZXIoKTtcbiAgfVxuXG4gIG5vZGUucmNFbmRMaXN0ZW5lciA9IGZ1bmN0aW9uIChlKSB7XG4gICAgaWYgKGUgJiYgZS50YXJnZXQgIT09IG5vZGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAobm9kZS5yY0FuaW1UaW1lb3V0KSB7XG4gICAgICBjbGVhclRpbWVvdXQobm9kZS5yY0FuaW1UaW1lb3V0KTtcbiAgICAgIG5vZGUucmNBbmltVGltZW91dCA9IG51bGw7XG4gICAgfVxuXG4gICAgY2xlYXJCcm93c2VyQnVnVGltZW91dChub2RlKTtcblxuICAgIEV2ZW50LnJlbW92ZUVuZEV2ZW50TGlzdGVuZXIobm9kZSwgbm9kZS5yY0VuZExpc3RlbmVyKTtcbiAgICBub2RlLnJjRW5kTGlzdGVuZXIgPSBudWxsO1xuXG4gICAgLy8gVXN1YWxseSB0aGlzIG9wdGlvbmFsIGNhbGxiYWNrIGlzIHVzZWQgZm9yIGluZm9ybWluZyBhbiBvd25lciBvZlxuICAgIC8vIGEgbGVhdmUgYW5pbWF0aW9uIGFuZCB0ZWxsaW5nIGl0IHRvIHJlbW92ZSB0aGUgY2hpbGQuXG4gICAgaWYgKGNhbGxiYWNrKSB7XG4gICAgICBjYWxsYmFjaygpO1xuICAgIH1cbiAgfTtcblxuICBFdmVudC5hZGRFbmRFdmVudExpc3RlbmVyKG5vZGUsIG5vZGUucmNFbmRMaXN0ZW5lcik7XG5cbiAgbm9kZS5yY0FuaW1UaW1lb3V0ID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgZm9yICh2YXIgcyBpbiBzdHlsZSkge1xuICAgICAgaWYgKHN0eWxlLmhhc093blByb3BlcnR5KHMpKSB7XG4gICAgICAgIG5vZGUuc3R5bGVbc10gPSBzdHlsZVtzXTtcbiAgICAgIH1cbiAgICB9XG4gICAgbm9kZS5yY0FuaW1UaW1lb3V0ID0gbnVsbDtcbiAgICBmaXhCcm93c2VyQnlUaW1lb3V0KG5vZGUpO1xuICB9LCAwKTtcbn07XG5cbmNzc0FuaW1hdGlvbi5zZXRUcmFuc2l0aW9uID0gZnVuY3Rpb24gKG5vZGUsIHAsIHZhbHVlKSB7XG4gIHZhciBwcm9wZXJ0eSA9IHA7XG4gIHZhciB2ID0gdmFsdWU7XG4gIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdiA9IHByb3BlcnR5O1xuICAgIHByb3BlcnR5ID0gJyc7XG4gIH1cbiAgcHJvcGVydHkgPSBwcm9wZXJ0eSB8fCAnJztcbiAgY2FwaXRhbFByZWZpeGVzLmZvckVhY2goZnVuY3Rpb24gKHByZWZpeCkge1xuICAgIG5vZGUuc3R5bGVbcHJlZml4ICsgJ1RyYW5zaXRpb24nICsgcHJvcGVydHldID0gdjtcbiAgfSk7XG59O1xuXG5jc3NBbmltYXRpb24uaXNDc3NBbmltYXRpb25TdXBwb3J0ZWQgPSBpc0Nzc0FuaW1hdGlvblN1cHBvcnRlZDtcblxuZXhwb3J0IHsgaXNDc3NBbmltYXRpb25TdXBwb3J0ZWQgfTtcblxuZXhwb3J0IGRlZmF1bHQgY3NzQW5pbWF0aW9uOyIsInZhciB1dGlsID0ge1xuICBpc0FwcGVhclN1cHBvcnRlZDogZnVuY3Rpb24gaXNBcHBlYXJTdXBwb3J0ZWQocHJvcHMpIHtcbiAgICByZXR1cm4gcHJvcHMudHJhbnNpdGlvbk5hbWUgJiYgcHJvcHMudHJhbnNpdGlvbkFwcGVhciB8fCBwcm9wcy5hbmltYXRpb24uYXBwZWFyO1xuICB9LFxuICBpc0VudGVyU3VwcG9ydGVkOiBmdW5jdGlvbiBpc0VudGVyU3VwcG9ydGVkKHByb3BzKSB7XG4gICAgcmV0dXJuIHByb3BzLnRyYW5zaXRpb25OYW1lICYmIHByb3BzLnRyYW5zaXRpb25FbnRlciB8fCBwcm9wcy5hbmltYXRpb24uZW50ZXI7XG4gIH0sXG4gIGlzTGVhdmVTdXBwb3J0ZWQ6IGZ1bmN0aW9uIGlzTGVhdmVTdXBwb3J0ZWQocHJvcHMpIHtcbiAgICByZXR1cm4gcHJvcHMudHJhbnNpdGlvbk5hbWUgJiYgcHJvcHMudHJhbnNpdGlvbkxlYXZlIHx8IHByb3BzLmFuaW1hdGlvbi5sZWF2ZTtcbiAgfSxcbiAgYWxsb3dBcHBlYXJDYWxsYmFjazogZnVuY3Rpb24gYWxsb3dBcHBlYXJDYWxsYmFjayhwcm9wcykge1xuICAgIHJldHVybiBwcm9wcy50cmFuc2l0aW9uQXBwZWFyIHx8IHByb3BzLmFuaW1hdGlvbi5hcHBlYXI7XG4gIH0sXG4gIGFsbG93RW50ZXJDYWxsYmFjazogZnVuY3Rpb24gYWxsb3dFbnRlckNhbGxiYWNrKHByb3BzKSB7XG4gICAgcmV0dXJuIHByb3BzLnRyYW5zaXRpb25FbnRlciB8fCBwcm9wcy5hbmltYXRpb24uZW50ZXI7XG4gIH0sXG4gIGFsbG93TGVhdmVDYWxsYmFjazogZnVuY3Rpb24gYWxsb3dMZWF2ZUNhbGxiYWNrKHByb3BzKSB7XG4gICAgcmV0dXJuIHByb3BzLnRyYW5zaXRpb25MZWF2ZSB8fCBwcm9wcy5hbmltYXRpb24ubGVhdmU7XG4gIH1cbn07XG5leHBvcnQgZGVmYXVsdCB1dGlsOyIsImltcG9ydCBfY2xhc3NDYWxsQ2hlY2sgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL2NsYXNzQ2FsbENoZWNrJztcbmltcG9ydCBfY3JlYXRlQ2xhc3MgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL2NyZWF0ZUNsYXNzJztcbmltcG9ydCBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybiBmcm9tICdiYWJlbC1ydW50aW1lL2hlbHBlcnMvcG9zc2libGVDb25zdHJ1Y3RvclJldHVybic7XG5pbXBvcnQgX2luaGVyaXRzIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9pbmhlcml0cyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFJlYWN0RE9NIGZyb20gJ3JlYWN0LWRvbSc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IGNzc0FuaW1hdGUsIHsgaXNDc3NBbmltYXRpb25TdXBwb3J0ZWQgfSBmcm9tICdjc3MtYW5pbWF0aW9uJztcbmltcG9ydCBhbmltVXRpbCBmcm9tICcuL3V0aWwvYW5pbWF0ZSc7XG5cbnZhciB0cmFuc2l0aW9uTWFwID0ge1xuICBlbnRlcjogJ3RyYW5zaXRpb25FbnRlcicsXG4gIGFwcGVhcjogJ3RyYW5zaXRpb25BcHBlYXInLFxuICBsZWF2ZTogJ3RyYW5zaXRpb25MZWF2ZSdcbn07XG5cbnZhciBBbmltYXRlQ2hpbGQgPSBmdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoQW5pbWF0ZUNoaWxkLCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICBmdW5jdGlvbiBBbmltYXRlQ2hpbGQoKSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEFuaW1hdGVDaGlsZCk7XG5cbiAgICByZXR1cm4gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgKEFuaW1hdGVDaGlsZC5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKEFuaW1hdGVDaGlsZCkpLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykpO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKEFuaW1hdGVDaGlsZCwgW3tcbiAgICBrZXk6ICdjb21wb25lbnRXaWxsVW5tb3VudCcsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgdGhpcy5zdG9wKCk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnY29tcG9uZW50V2lsbEVudGVyJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50V2lsbEVudGVyKGRvbmUpIHtcbiAgICAgIGlmIChhbmltVXRpbC5pc0VudGVyU3VwcG9ydGVkKHRoaXMucHJvcHMpKSB7XG4gICAgICAgIHRoaXMudHJhbnNpdGlvbignZW50ZXInLCBkb25lKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRvbmUoKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdjb21wb25lbnRXaWxsQXBwZWFyJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50V2lsbEFwcGVhcihkb25lKSB7XG4gICAgICBpZiAoYW5pbVV0aWwuaXNBcHBlYXJTdXBwb3J0ZWQodGhpcy5wcm9wcykpIHtcbiAgICAgICAgdGhpcy50cmFuc2l0aW9uKCdhcHBlYXInLCBkb25lKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRvbmUoKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdjb21wb25lbnRXaWxsTGVhdmUnLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnRXaWxsTGVhdmUoZG9uZSkge1xuICAgICAgaWYgKGFuaW1VdGlsLmlzTGVhdmVTdXBwb3J0ZWQodGhpcy5wcm9wcykpIHtcbiAgICAgICAgdGhpcy50cmFuc2l0aW9uKCdsZWF2ZScsIGRvbmUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gYWx3YXlzIHN5bmMsIGRvIG5vdCBpbnRlcnVwdCB3aXRoIHJlYWN0IGNvbXBvbmVudCBsaWZlIGN5Y2xlXG4gICAgICAgIC8vIHVwZGF0ZSBoaWRkZW4gLT4gYW5pbWF0ZSBoaWRkZW4gLT5cbiAgICAgICAgLy8gZGlkVXBkYXRlIC0+IGFuaW1hdGUgbGVhdmUgLT4gdW5tb3VudCAoaWYgYW5pbWF0ZSBpcyBub25lKVxuICAgICAgICBkb25lKCk7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAndHJhbnNpdGlvbicsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHRyYW5zaXRpb24oYW5pbWF0aW9uVHlwZSwgZmluaXNoQ2FsbGJhY2spIHtcbiAgICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgICB2YXIgbm9kZSA9IFJlYWN0RE9NLmZpbmRET01Ob2RlKHRoaXMpO1xuICAgICAgdmFyIHByb3BzID0gdGhpcy5wcm9wcztcbiAgICAgIHZhciB0cmFuc2l0aW9uTmFtZSA9IHByb3BzLnRyYW5zaXRpb25OYW1lO1xuICAgICAgdmFyIG5hbWVJc09iaiA9IHR5cGVvZiB0cmFuc2l0aW9uTmFtZSA9PT0gJ29iamVjdCc7XG4gICAgICB0aGlzLnN0b3AoKTtcbiAgICAgIHZhciBlbmQgPSBmdW5jdGlvbiBlbmQoKSB7XG4gICAgICAgIF90aGlzMi5zdG9wcGVyID0gbnVsbDtcbiAgICAgICAgZmluaXNoQ2FsbGJhY2soKTtcbiAgICAgIH07XG4gICAgICBpZiAoKGlzQ3NzQW5pbWF0aW9uU3VwcG9ydGVkIHx8ICFwcm9wcy5hbmltYXRpb25bYW5pbWF0aW9uVHlwZV0pICYmIHRyYW5zaXRpb25OYW1lICYmIHByb3BzW3RyYW5zaXRpb25NYXBbYW5pbWF0aW9uVHlwZV1dKSB7XG4gICAgICAgIHZhciBuYW1lID0gbmFtZUlzT2JqID8gdHJhbnNpdGlvbk5hbWVbYW5pbWF0aW9uVHlwZV0gOiB0cmFuc2l0aW9uTmFtZSArICctJyArIGFuaW1hdGlvblR5cGU7XG4gICAgICAgIHZhciBhY3RpdmVOYW1lID0gbmFtZSArICctYWN0aXZlJztcbiAgICAgICAgaWYgKG5hbWVJc09iaiAmJiB0cmFuc2l0aW9uTmFtZVthbmltYXRpb25UeXBlICsgJ0FjdGl2ZSddKSB7XG4gICAgICAgICAgYWN0aXZlTmFtZSA9IHRyYW5zaXRpb25OYW1lW2FuaW1hdGlvblR5cGUgKyAnQWN0aXZlJ107XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zdG9wcGVyID0gY3NzQW5pbWF0ZShub2RlLCB7XG4gICAgICAgICAgbmFtZTogbmFtZSxcbiAgICAgICAgICBhY3RpdmU6IGFjdGl2ZU5hbWVcbiAgICAgICAgfSwgZW5kKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc3RvcHBlciA9IHByb3BzLmFuaW1hdGlvblthbmltYXRpb25UeXBlXShub2RlLCBlbmQpO1xuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ3N0b3AnLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBzdG9wKCkge1xuICAgICAgdmFyIHN0b3BwZXIgPSB0aGlzLnN0b3BwZXI7XG4gICAgICBpZiAoc3RvcHBlcikge1xuICAgICAgICB0aGlzLnN0b3BwZXIgPSBudWxsO1xuICAgICAgICBzdG9wcGVyLnN0b3AoKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdyZW5kZXInLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICByZXR1cm4gdGhpcy5wcm9wcy5jaGlsZHJlbjtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gQW5pbWF0ZUNoaWxkO1xufShSZWFjdC5Db21wb25lbnQpO1xuXG5BbmltYXRlQ2hpbGQucHJvcFR5cGVzID0ge1xuICBjaGlsZHJlbjogUHJvcFR5cGVzLmFueVxufTtcbmV4cG9ydCBkZWZhdWx0IEFuaW1hdGVDaGlsZDsiLCJpbXBvcnQgX2V4dGVuZHMgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL2V4dGVuZHMnO1xuaW1wb3J0IF9kZWZpbmVQcm9wZXJ0eSBmcm9tICdiYWJlbC1ydW50aW1lL2hlbHBlcnMvZGVmaW5lUHJvcGVydHknO1xuaW1wb3J0IF9jbGFzc0NhbGxDaGVjayBmcm9tICdiYWJlbC1ydW50aW1lL2hlbHBlcnMvY2xhc3NDYWxsQ2hlY2snO1xuaW1wb3J0IF9jcmVhdGVDbGFzcyBmcm9tICdiYWJlbC1ydW50aW1lL2hlbHBlcnMvY3JlYXRlQ2xhc3MnO1xuaW1wb3J0IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuJztcbmltcG9ydCBfaW5oZXJpdHMgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL2luaGVyaXRzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgdG9BcnJheUNoaWxkcmVuLCBtZXJnZUNoaWxkcmVuLCBmaW5kU2hvd25DaGlsZEluQ2hpbGRyZW5CeUtleSwgZmluZENoaWxkSW5DaGlsZHJlbkJ5S2V5LCBpc1NhbWVDaGlsZHJlbiB9IGZyb20gJy4vQ2hpbGRyZW5VdGlscyc7XG5pbXBvcnQgQW5pbWF0ZUNoaWxkIGZyb20gJy4vQW5pbWF0ZUNoaWxkJztcbmltcG9ydCBhbmltVXRpbCBmcm9tICcuL3V0aWwvYW5pbWF0ZSc7XG5cbnZhciBkZWZhdWx0S2V5ID0gJ3JjX2FuaW1hdGVfJyArIERhdGUubm93KCk7XG5cbmZ1bmN0aW9uIGdldENoaWxkcmVuRnJvbVByb3BzKHByb3BzKSB7XG4gIHZhciBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuO1xuICBpZiAoUmVhY3QuaXNWYWxpZEVsZW1lbnQoY2hpbGRyZW4pKSB7XG4gICAgaWYgKCFjaGlsZHJlbi5rZXkpIHtcbiAgICAgIHJldHVybiBSZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGRyZW4sIHtcbiAgICAgICAga2V5OiBkZWZhdWx0S2V5XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGNoaWxkcmVuO1xufVxuXG5mdW5jdGlvbiBub29wKCkge31cblxudmFyIEFuaW1hdGUgPSBmdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoQW5pbWF0ZSwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbGluZVxuXG4gIGZ1bmN0aW9uIEFuaW1hdGUocHJvcHMpIHtcbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgQW5pbWF0ZSk7XG5cbiAgICB2YXIgX3RoaXMgPSBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCAoQW5pbWF0ZS5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKEFuaW1hdGUpKS5jYWxsKHRoaXMsIHByb3BzKSk7XG5cbiAgICBfaW5pdGlhbGlzZVByb3BzLmNhbGwoX3RoaXMpO1xuXG4gICAgX3RoaXMuY3VycmVudGx5QW5pbWF0aW5nS2V5cyA9IHt9O1xuICAgIF90aGlzLmtleXNUb0VudGVyID0gW107XG4gICAgX3RoaXMua2V5c1RvTGVhdmUgPSBbXTtcblxuICAgIF90aGlzLnN0YXRlID0ge1xuICAgICAgY2hpbGRyZW46IHRvQXJyYXlDaGlsZHJlbihnZXRDaGlsZHJlbkZyb21Qcm9wcyhwcm9wcykpXG4gICAgfTtcblxuICAgIF90aGlzLmNoaWxkcmVuUmVmcyA9IHt9O1xuICAgIHJldHVybiBfdGhpcztcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhBbmltYXRlLCBbe1xuICAgIGtleTogJ2NvbXBvbmVudERpZE1vdW50JyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgICAgdmFyIHNob3dQcm9wID0gdGhpcy5wcm9wcy5zaG93UHJvcDtcbiAgICAgIHZhciBjaGlsZHJlbiA9IHRoaXMuc3RhdGUuY2hpbGRyZW47XG4gICAgICBpZiAoc2hvd1Byb3ApIHtcbiAgICAgICAgY2hpbGRyZW4gPSBjaGlsZHJlbi5maWx0ZXIoZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgICAgICAgcmV0dXJuICEhY2hpbGQucHJvcHNbc2hvd1Byb3BdO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgICAgIGlmIChjaGlsZCkge1xuICAgICAgICAgIF90aGlzMi5wZXJmb3JtQXBwZWFyKGNoaWxkLmtleSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMnLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKG5leHRQcm9wcykge1xuICAgICAgdmFyIF90aGlzMyA9IHRoaXM7XG5cbiAgICAgIHRoaXMubmV4dFByb3BzID0gbmV4dFByb3BzO1xuICAgICAgdmFyIG5leHRDaGlsZHJlbiA9IHRvQXJyYXlDaGlsZHJlbihnZXRDaGlsZHJlbkZyb21Qcm9wcyhuZXh0UHJvcHMpKTtcbiAgICAgIHZhciBwcm9wcyA9IHRoaXMucHJvcHM7XG4gICAgICAvLyBleGNsdXNpdmUgbmVlZHMgaW1tZWRpYXRlIHJlc3BvbnNlXG4gICAgICBpZiAocHJvcHMuZXhjbHVzaXZlKSB7XG4gICAgICAgIE9iamVjdC5rZXlzKHRoaXMuY3VycmVudGx5QW5pbWF0aW5nS2V5cykuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgICAgX3RoaXMzLnN0b3Aoa2V5KTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICB2YXIgc2hvd1Byb3AgPSBwcm9wcy5zaG93UHJvcDtcbiAgICAgIHZhciBjdXJyZW50bHlBbmltYXRpbmdLZXlzID0gdGhpcy5jdXJyZW50bHlBbmltYXRpbmdLZXlzO1xuICAgICAgLy8gbGFzdCBwcm9wcyBjaGlsZHJlbiBpZiBleGNsdXNpdmVcbiAgICAgIHZhciBjdXJyZW50Q2hpbGRyZW4gPSBwcm9wcy5leGNsdXNpdmUgPyB0b0FycmF5Q2hpbGRyZW4oZ2V0Q2hpbGRyZW5Gcm9tUHJvcHMocHJvcHMpKSA6IHRoaXMuc3RhdGUuY2hpbGRyZW47XG4gICAgICAvLyBpbiBjYXNlIGRlc3Ryb3kgaW4gc2hvd1Byb3AgbW9kZVxuICAgICAgdmFyIG5ld0NoaWxkcmVuID0gW107XG4gICAgICBpZiAoc2hvd1Byb3ApIHtcbiAgICAgICAgY3VycmVudENoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24gKGN1cnJlbnRDaGlsZCkge1xuICAgICAgICAgIHZhciBuZXh0Q2hpbGQgPSBjdXJyZW50Q2hpbGQgJiYgZmluZENoaWxkSW5DaGlsZHJlbkJ5S2V5KG5leHRDaGlsZHJlbiwgY3VycmVudENoaWxkLmtleSk7XG4gICAgICAgICAgdmFyIG5ld0NoaWxkID0gdm9pZCAwO1xuICAgICAgICAgIGlmICgoIW5leHRDaGlsZCB8fCAhbmV4dENoaWxkLnByb3BzW3Nob3dQcm9wXSkgJiYgY3VycmVudENoaWxkLnByb3BzW3Nob3dQcm9wXSkge1xuICAgICAgICAgICAgbmV3Q2hpbGQgPSBSZWFjdC5jbG9uZUVsZW1lbnQobmV4dENoaWxkIHx8IGN1cnJlbnRDaGlsZCwgX2RlZmluZVByb3BlcnR5KHt9LCBzaG93UHJvcCwgdHJ1ZSkpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBuZXdDaGlsZCA9IG5leHRDaGlsZDtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKG5ld0NoaWxkKSB7XG4gICAgICAgICAgICBuZXdDaGlsZHJlbi5wdXNoKG5ld0NoaWxkKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBuZXh0Q2hpbGRyZW4uZm9yRWFjaChmdW5jdGlvbiAobmV4dENoaWxkKSB7XG4gICAgICAgICAgaWYgKCFuZXh0Q2hpbGQgfHwgIWZpbmRDaGlsZEluQ2hpbGRyZW5CeUtleShjdXJyZW50Q2hpbGRyZW4sIG5leHRDaGlsZC5rZXkpKSB7XG4gICAgICAgICAgICBuZXdDaGlsZHJlbi5wdXNoKG5leHRDaGlsZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5ld0NoaWxkcmVuID0gbWVyZ2VDaGlsZHJlbihjdXJyZW50Q2hpbGRyZW4sIG5leHRDaGlsZHJlbik7XG4gICAgICB9XG5cbiAgICAgIC8vIG5lZWQgcmVuZGVyIHRvIGF2b2lkIHVwZGF0ZVxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIGNoaWxkcmVuOiBuZXdDaGlsZHJlblxuICAgICAgfSk7XG5cbiAgICAgIG5leHRDaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uIChjaGlsZCkge1xuICAgICAgICB2YXIga2V5ID0gY2hpbGQgJiYgY2hpbGQua2V5O1xuICAgICAgICBpZiAoY2hpbGQgJiYgY3VycmVudGx5QW5pbWF0aW5nS2V5c1trZXldKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHZhciBoYXNQcmV2ID0gY2hpbGQgJiYgZmluZENoaWxkSW5DaGlsZHJlbkJ5S2V5KGN1cnJlbnRDaGlsZHJlbiwga2V5KTtcbiAgICAgICAgaWYgKHNob3dQcm9wKSB7XG4gICAgICAgICAgdmFyIHNob3dJbk5leHQgPSBjaGlsZC5wcm9wc1tzaG93UHJvcF07XG4gICAgICAgICAgaWYgKGhhc1ByZXYpIHtcbiAgICAgICAgICAgIHZhciBzaG93SW5Ob3cgPSBmaW5kU2hvd25DaGlsZEluQ2hpbGRyZW5CeUtleShjdXJyZW50Q2hpbGRyZW4sIGtleSwgc2hvd1Byb3ApO1xuICAgICAgICAgICAgaWYgKCFzaG93SW5Ob3cgJiYgc2hvd0luTmV4dCkge1xuICAgICAgICAgICAgICBfdGhpczMua2V5c1RvRW50ZXIucHVzaChrZXkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAoc2hvd0luTmV4dCkge1xuICAgICAgICAgICAgX3RoaXMzLmtleXNUb0VudGVyLnB1c2goa2V5KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoIWhhc1ByZXYpIHtcbiAgICAgICAgICBfdGhpczMua2V5c1RvRW50ZXIucHVzaChrZXkpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgY3VycmVudENoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgICAgIHZhciBrZXkgPSBjaGlsZCAmJiBjaGlsZC5rZXk7XG4gICAgICAgIGlmIChjaGlsZCAmJiBjdXJyZW50bHlBbmltYXRpbmdLZXlzW2tleV0pIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGhhc05leHQgPSBjaGlsZCAmJiBmaW5kQ2hpbGRJbkNoaWxkcmVuQnlLZXkobmV4dENoaWxkcmVuLCBrZXkpO1xuICAgICAgICBpZiAoc2hvd1Byb3ApIHtcbiAgICAgICAgICB2YXIgc2hvd0luTm93ID0gY2hpbGQucHJvcHNbc2hvd1Byb3BdO1xuICAgICAgICAgIGlmIChoYXNOZXh0KSB7XG4gICAgICAgICAgICB2YXIgc2hvd0luTmV4dCA9IGZpbmRTaG93bkNoaWxkSW5DaGlsZHJlbkJ5S2V5KG5leHRDaGlsZHJlbiwga2V5LCBzaG93UHJvcCk7XG4gICAgICAgICAgICBpZiAoIXNob3dJbk5leHQgJiYgc2hvd0luTm93KSB7XG4gICAgICAgICAgICAgIF90aGlzMy5rZXlzVG9MZWF2ZS5wdXNoKGtleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmIChzaG93SW5Ob3cpIHtcbiAgICAgICAgICAgIF90aGlzMy5rZXlzVG9MZWF2ZS5wdXNoKGtleSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKCFoYXNOZXh0KSB7XG4gICAgICAgICAgX3RoaXMzLmtleXNUb0xlYXZlLnB1c2goa2V5KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnY29tcG9uZW50RGlkVXBkYXRlJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50RGlkVXBkYXRlKCkge1xuICAgICAgdmFyIGtleXNUb0VudGVyID0gdGhpcy5rZXlzVG9FbnRlcjtcbiAgICAgIHRoaXMua2V5c1RvRW50ZXIgPSBbXTtcbiAgICAgIGtleXNUb0VudGVyLmZvckVhY2godGhpcy5wZXJmb3JtRW50ZXIpO1xuICAgICAgdmFyIGtleXNUb0xlYXZlID0gdGhpcy5rZXlzVG9MZWF2ZTtcbiAgICAgIHRoaXMua2V5c1RvTGVhdmUgPSBbXTtcbiAgICAgIGtleXNUb0xlYXZlLmZvckVhY2godGhpcy5wZXJmb3JtTGVhdmUpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ2lzVmFsaWRDaGlsZEJ5S2V5JyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gaXNWYWxpZENoaWxkQnlLZXkoY3VycmVudENoaWxkcmVuLCBrZXkpIHtcbiAgICAgIHZhciBzaG93UHJvcCA9IHRoaXMucHJvcHMuc2hvd1Byb3A7XG4gICAgICBpZiAoc2hvd1Byb3ApIHtcbiAgICAgICAgcmV0dXJuIGZpbmRTaG93bkNoaWxkSW5DaGlsZHJlbkJ5S2V5KGN1cnJlbnRDaGlsZHJlbiwga2V5LCBzaG93UHJvcCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmluZENoaWxkSW5DaGlsZHJlbkJ5S2V5KGN1cnJlbnRDaGlsZHJlbiwga2V5KTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdzdG9wJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gc3RvcChrZXkpIHtcbiAgICAgIGRlbGV0ZSB0aGlzLmN1cnJlbnRseUFuaW1hdGluZ0tleXNba2V5XTtcbiAgICAgIHZhciBjb21wb25lbnQgPSB0aGlzLmNoaWxkcmVuUmVmc1trZXldO1xuICAgICAgaWYgKGNvbXBvbmVudCkge1xuICAgICAgICBjb21wb25lbnQuc3RvcCgpO1xuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ3JlbmRlcicsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHZhciBfdGhpczQgPSB0aGlzO1xuXG4gICAgICB2YXIgcHJvcHMgPSB0aGlzLnByb3BzO1xuICAgICAgdGhpcy5uZXh0UHJvcHMgPSBwcm9wcztcbiAgICAgIHZhciBzdGF0ZUNoaWxkcmVuID0gdGhpcy5zdGF0ZS5jaGlsZHJlbjtcbiAgICAgIHZhciBjaGlsZHJlbiA9IG51bGw7XG4gICAgICBpZiAoc3RhdGVDaGlsZHJlbikge1xuICAgICAgICBjaGlsZHJlbiA9IHN0YXRlQ2hpbGRyZW4ubWFwKGZ1bmN0aW9uIChjaGlsZCkge1xuICAgICAgICAgIGlmIChjaGlsZCA9PT0gbnVsbCB8fCBjaGlsZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gY2hpbGQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICghY2hpbGQua2V5KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ211c3Qgc2V0IGtleSBmb3IgPHJjLWFuaW1hdGU+IGNoaWxkcmVuJyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgQW5pbWF0ZUNoaWxkLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBrZXk6IGNoaWxkLmtleSxcbiAgICAgICAgICAgICAgcmVmOiBmdW5jdGlvbiByZWYobm9kZSkge1xuICAgICAgICAgICAgICAgIF90aGlzNC5jaGlsZHJlblJlZnNbY2hpbGQua2V5XSA9IG5vZGU7XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGFuaW1hdGlvbjogcHJvcHMuYW5pbWF0aW9uLFxuICAgICAgICAgICAgICB0cmFuc2l0aW9uTmFtZTogcHJvcHMudHJhbnNpdGlvbk5hbWUsXG4gICAgICAgICAgICAgIHRyYW5zaXRpb25FbnRlcjogcHJvcHMudHJhbnNpdGlvbkVudGVyLFxuICAgICAgICAgICAgICB0cmFuc2l0aW9uQXBwZWFyOiBwcm9wcy50cmFuc2l0aW9uQXBwZWFyLFxuICAgICAgICAgICAgICB0cmFuc2l0aW9uTGVhdmU6IHByb3BzLnRyYW5zaXRpb25MZWF2ZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNoaWxkXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICB2YXIgQ29tcG9uZW50ID0gcHJvcHMuY29tcG9uZW50O1xuICAgICAgaWYgKENvbXBvbmVudCkge1xuICAgICAgICB2YXIgcGFzc2VkUHJvcHMgPSBwcm9wcztcbiAgICAgICAgaWYgKHR5cGVvZiBDb21wb25lbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgcGFzc2VkUHJvcHMgPSBfZXh0ZW5kcyh7XG4gICAgICAgICAgICBjbGFzc05hbWU6IHByb3BzLmNsYXNzTmFtZSxcbiAgICAgICAgICAgIHN0eWxlOiBwcm9wcy5zdHlsZVxuICAgICAgICAgIH0sIHByb3BzLmNvbXBvbmVudFByb3BzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICBDb21wb25lbnQsXG4gICAgICAgICAgcGFzc2VkUHJvcHMsXG4gICAgICAgICAgY2hpbGRyZW5cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBjaGlsZHJlblswXSB8fCBudWxsO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBBbmltYXRlO1xufShSZWFjdC5Db21wb25lbnQpO1xuXG5BbmltYXRlLmlzQW5pbWF0ZSA9IHRydWU7XG5BbmltYXRlLnByb3BUeXBlcyA9IHtcbiAgY29tcG9uZW50OiBQcm9wVHlwZXMuYW55LFxuICBjb21wb25lbnRQcm9wczogUHJvcFR5cGVzLm9iamVjdCxcbiAgYW5pbWF0aW9uOiBQcm9wVHlwZXMub2JqZWN0LFxuICB0cmFuc2l0aW9uTmFtZTogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLnN0cmluZywgUHJvcFR5cGVzLm9iamVjdF0pLFxuICB0cmFuc2l0aW9uRW50ZXI6IFByb3BUeXBlcy5ib29sLFxuICB0cmFuc2l0aW9uQXBwZWFyOiBQcm9wVHlwZXMuYm9vbCxcbiAgZXhjbHVzaXZlOiBQcm9wVHlwZXMuYm9vbCxcbiAgdHJhbnNpdGlvbkxlYXZlOiBQcm9wVHlwZXMuYm9vbCxcbiAgb25FbmQ6IFByb3BUeXBlcy5mdW5jLFxuICBvbkVudGVyOiBQcm9wVHlwZXMuZnVuYyxcbiAgb25MZWF2ZTogUHJvcFR5cGVzLmZ1bmMsXG4gIG9uQXBwZWFyOiBQcm9wVHlwZXMuZnVuYyxcbiAgc2hvd1Byb3A6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMubm9kZVxufTtcbkFuaW1hdGUuZGVmYXVsdFByb3BzID0ge1xuICBhbmltYXRpb246IHt9LFxuICBjb21wb25lbnQ6ICdzcGFuJyxcbiAgY29tcG9uZW50UHJvcHM6IHt9LFxuICB0cmFuc2l0aW9uRW50ZXI6IHRydWUsXG4gIHRyYW5zaXRpb25MZWF2ZTogdHJ1ZSxcbiAgdHJhbnNpdGlvbkFwcGVhcjogZmFsc2UsXG4gIG9uRW5kOiBub29wLFxuICBvbkVudGVyOiBub29wLFxuICBvbkxlYXZlOiBub29wLFxuICBvbkFwcGVhcjogbm9vcFxufTtcblxudmFyIF9pbml0aWFsaXNlUHJvcHMgPSBmdW5jdGlvbiBfaW5pdGlhbGlzZVByb3BzKCkge1xuICB2YXIgX3RoaXM1ID0gdGhpcztcblxuICB0aGlzLnBlcmZvcm1FbnRlciA9IGZ1bmN0aW9uIChrZXkpIHtcbiAgICAvLyBtYXkgYWxyZWFkeSByZW1vdmUgYnkgZXhjbHVzaXZlXG4gICAgaWYgKF90aGlzNS5jaGlsZHJlblJlZnNba2V5XSkge1xuICAgICAgX3RoaXM1LmN1cnJlbnRseUFuaW1hdGluZ0tleXNba2V5XSA9IHRydWU7XG4gICAgICBfdGhpczUuY2hpbGRyZW5SZWZzW2tleV0uY29tcG9uZW50V2lsbEVudGVyKF90aGlzNS5oYW5kbGVEb25lQWRkaW5nLmJpbmQoX3RoaXM1LCBrZXksICdlbnRlcicpKTtcbiAgICB9XG4gIH07XG5cbiAgdGhpcy5wZXJmb3JtQXBwZWFyID0gZnVuY3Rpb24gKGtleSkge1xuICAgIGlmIChfdGhpczUuY2hpbGRyZW5SZWZzW2tleV0pIHtcbiAgICAgIF90aGlzNS5jdXJyZW50bHlBbmltYXRpbmdLZXlzW2tleV0gPSB0cnVlO1xuICAgICAgX3RoaXM1LmNoaWxkcmVuUmVmc1trZXldLmNvbXBvbmVudFdpbGxBcHBlYXIoX3RoaXM1LmhhbmRsZURvbmVBZGRpbmcuYmluZChfdGhpczUsIGtleSwgJ2FwcGVhcicpKTtcbiAgICB9XG4gIH07XG5cbiAgdGhpcy5oYW5kbGVEb25lQWRkaW5nID0gZnVuY3Rpb24gKGtleSwgdHlwZSkge1xuICAgIHZhciBwcm9wcyA9IF90aGlzNS5wcm9wcztcbiAgICBkZWxldGUgX3RoaXM1LmN1cnJlbnRseUFuaW1hdGluZ0tleXNba2V5XTtcbiAgICAvLyBpZiB1cGRhdGUgb24gZXhjbHVzaXZlIG1vZGUsIHNraXAgY2hlY2tcbiAgICBpZiAocHJvcHMuZXhjbHVzaXZlICYmIHByb3BzICE9PSBfdGhpczUubmV4dFByb3BzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHZhciBjdXJyZW50Q2hpbGRyZW4gPSB0b0FycmF5Q2hpbGRyZW4oZ2V0Q2hpbGRyZW5Gcm9tUHJvcHMocHJvcHMpKTtcbiAgICBpZiAoIV90aGlzNS5pc1ZhbGlkQ2hpbGRCeUtleShjdXJyZW50Q2hpbGRyZW4sIGtleSkpIHtcbiAgICAgIC8vIGV4Y2x1c2l2ZSB3aWxsIG5vdCBuZWVkIHRoaXNcbiAgICAgIF90aGlzNS5wZXJmb3JtTGVhdmUoa2V5KTtcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdhcHBlYXInKSB7XG4gICAgICBpZiAoYW5pbVV0aWwuYWxsb3dBcHBlYXJDYWxsYmFjayhwcm9wcykpIHtcbiAgICAgICAgcHJvcHMub25BcHBlYXIoa2V5KTtcbiAgICAgICAgcHJvcHMub25FbmQoa2V5LCB0cnVlKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGFuaW1VdGlsLmFsbG93RW50ZXJDYWxsYmFjayhwcm9wcykpIHtcbiAgICAgIHByb3BzLm9uRW50ZXIoa2V5KTtcbiAgICAgIHByb3BzLm9uRW5kKGtleSwgdHJ1ZSk7XG4gICAgfVxuICB9O1xuXG4gIHRoaXMucGVyZm9ybUxlYXZlID0gZnVuY3Rpb24gKGtleSkge1xuICAgIC8vIG1heSBhbHJlYWR5IHJlbW92ZSBieSBleGNsdXNpdmVcbiAgICBpZiAoX3RoaXM1LmNoaWxkcmVuUmVmc1trZXldKSB7XG4gICAgICBfdGhpczUuY3VycmVudGx5QW5pbWF0aW5nS2V5c1trZXldID0gdHJ1ZTtcbiAgICAgIF90aGlzNS5jaGlsZHJlblJlZnNba2V5XS5jb21wb25lbnRXaWxsTGVhdmUoX3RoaXM1LmhhbmRsZURvbmVMZWF2aW5nLmJpbmQoX3RoaXM1LCBrZXkpKTtcbiAgICB9XG4gIH07XG5cbiAgdGhpcy5oYW5kbGVEb25lTGVhdmluZyA9IGZ1bmN0aW9uIChrZXkpIHtcbiAgICB2YXIgcHJvcHMgPSBfdGhpczUucHJvcHM7XG4gICAgZGVsZXRlIF90aGlzNS5jdXJyZW50bHlBbmltYXRpbmdLZXlzW2tleV07XG4gICAgLy8gaWYgdXBkYXRlIG9uIGV4Y2x1c2l2ZSBtb2RlLCBza2lwIGNoZWNrXG4gICAgaWYgKHByb3BzLmV4Y2x1c2l2ZSAmJiBwcm9wcyAhPT0gX3RoaXM1Lm5leHRQcm9wcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB2YXIgY3VycmVudENoaWxkcmVuID0gdG9BcnJheUNoaWxkcmVuKGdldENoaWxkcmVuRnJvbVByb3BzKHByb3BzKSk7XG4gICAgLy8gaW4gY2FzZSBzdGF0ZSBjaGFuZ2UgaXMgdG9vIGZhc3RcbiAgICBpZiAoX3RoaXM1LmlzVmFsaWRDaGlsZEJ5S2V5KGN1cnJlbnRDaGlsZHJlbiwga2V5KSkge1xuICAgICAgX3RoaXM1LnBlcmZvcm1FbnRlcihrZXkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgZW5kID0gZnVuY3Rpb24gZW5kKCkge1xuICAgICAgICBpZiAoYW5pbVV0aWwuYWxsb3dMZWF2ZUNhbGxiYWNrKHByb3BzKSkge1xuICAgICAgICAgIHByb3BzLm9uTGVhdmUoa2V5KTtcbiAgICAgICAgICBwcm9wcy5vbkVuZChrZXksIGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIGlmICghaXNTYW1lQ2hpbGRyZW4oX3RoaXM1LnN0YXRlLmNoaWxkcmVuLCBjdXJyZW50Q2hpbGRyZW4sIHByb3BzLnNob3dQcm9wKSkge1xuICAgICAgICBfdGhpczUuc2V0U3RhdGUoe1xuICAgICAgICAgIGNoaWxkcmVuOiBjdXJyZW50Q2hpbGRyZW5cbiAgICAgICAgfSwgZW5kKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVuZCgpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEFuaW1hdGU7IiwidmFyIGc7XG5cbi8vIFRoaXMgd29ya3MgaW4gbm9uLXN0cmljdCBtb2RlXG5nID0gKGZ1bmN0aW9uKCkge1xuXHRyZXR1cm4gdGhpcztcbn0pKCk7XG5cbnRyeSB7XG5cdC8vIFRoaXMgd29ya3MgaWYgZXZhbCBpcyBhbGxvd2VkIChzZWUgQ1NQKVxuXHRnID0gZyB8fCBuZXcgRnVuY3Rpb24oXCJyZXR1cm4gdGhpc1wiKSgpO1xufSBjYXRjaCAoZSkge1xuXHQvLyBUaGlzIHdvcmtzIGlmIHRoZSB3aW5kb3cgcmVmZXJlbmNlIGlzIGF2YWlsYWJsZVxuXHRpZiAodHlwZW9mIHdpbmRvdyA9PT0gXCJvYmplY3RcIikgZyA9IHdpbmRvdztcbn1cblxuLy8gZyBjYW4gc3RpbGwgYmUgdW5kZWZpbmVkLCBidXQgbm90aGluZyB0byBkbyBhYm91dCBpdC4uLlxuLy8gV2UgcmV0dXJuIHVuZGVmaW5lZCwgaW5zdGVhZCBvZiBub3RoaW5nIGhlcmUsIHNvIGl0J3Ncbi8vIGVhc2llciB0byBoYW5kbGUgdGhpcyBjYXNlLiBpZighZ2xvYmFsKSB7IC4uLn1cblxubW9kdWxlLmV4cG9ydHMgPSBnO1xuIiwidmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9faXMtb2JqZWN0Jyk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICBpZiAoIWlzT2JqZWN0KGl0KSkgdGhyb3cgVHlwZUVycm9yKGl0ICsgJyBpcyBub3QgYW4gb2JqZWN0IScpO1xuICByZXR1cm4gaXQ7XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoZXhlYykge1xuICB0cnkge1xuICAgIHJldHVybiAhIWV4ZWMoKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59O1xuIiwiLyoqIEBsaWNlbnNlIElTQyBMaWNlbnNlIChjKSBjb3B5cmlnaHQgMjAxNiBvcmlnaW5hbCBhbmQgY3VycmVudCBhdXRob3JzICovXG4vKiogQGF1dGhvciBJYW4gSG9mbWFubi1IaWNrcyAoZXZpbCkgKi9cblxudmFyIHJlZiA9IHJlcXVpcmUoJy4uL2NvcmUvTWF5YmUnKTtcbnZhciBOb3RoaW5nID0gcmVmLk5vdGhpbmc7XG52YXIgSnVzdCA9IHJlZi5KdXN0O1xudmFyIHByZWRPckZ1bmMgPSByZXF1aXJlKCcuLi9jb3JlL3ByZWRPckZ1bmMnKVxuXG52YXIgY3VycnkgPSByZXF1aXJlKCcuLi9jb3JlL2N1cnJ5JylcbnZhciBpc1ByZWRPckZ1bmMgPSByZXF1aXJlKCcuLi9jb3JlL2lzUHJlZE9yRnVuYycpXG5cbi8vIHNhZmUgOiAoKGEgLT4gQm9vbGVhbikgfCBQcmVkKSAtPiBhIC0+IE1heWJlIGFcbmZ1bmN0aW9uIHNhZmUocHJlZCwgeCkge1xuICBpZighaXNQcmVkT3JGdW5jKHByZWQpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignc2FmZTogUHJlZCBvciBwcmVkaWNhdGUgZnVuY3Rpb24gcmVxdWlyZWQgZm9yIGZpcnN0IGFyZ3VtZW50JylcbiAgfVxuXG4gIHJldHVybiBwcmVkT3JGdW5jKHByZWQsIHgpXG4gICAgPyBKdXN0KHgpXG4gICAgOiBOb3RoaW5nKClcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjdXJyeShzYWZlKVxuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IHZvaWQgMDtcblxudmFyIF9ncmlkID0gcmVxdWlyZShcIi4uL2dyaWRcIik7XG5cbnZhciBfZGVmYXVsdCA9IF9ncmlkLlJvdztcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gX2RlZmF1bHQ7IiwiLypcbm9iamVjdC1hc3NpZ25cbihjKSBTaW5kcmUgU29yaHVzXG5AbGljZW5zZSBNSVRcbiovXG5cbid1c2Ugc3RyaWN0Jztcbi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXG52YXIgZ2V0T3duUHJvcGVydHlTeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scztcbnZhciBoYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG52YXIgcHJvcElzRW51bWVyYWJsZSA9IE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGU7XG5cbmZ1bmN0aW9uIHRvT2JqZWN0KHZhbCkge1xuXHRpZiAodmFsID09PSBudWxsIHx8IHZhbCA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0dGhyb3cgbmV3IFR5cGVFcnJvcignT2JqZWN0LmFzc2lnbiBjYW5ub3QgYmUgY2FsbGVkIHdpdGggbnVsbCBvciB1bmRlZmluZWQnKTtcblx0fVxuXG5cdHJldHVybiBPYmplY3QodmFsKTtcbn1cblxuZnVuY3Rpb24gc2hvdWxkVXNlTmF0aXZlKCkge1xuXHR0cnkge1xuXHRcdGlmICghT2JqZWN0LmFzc2lnbikge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdC8vIERldGVjdCBidWdneSBwcm9wZXJ0eSBlbnVtZXJhdGlvbiBvcmRlciBpbiBvbGRlciBWOCB2ZXJzaW9ucy5cblxuXHRcdC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTQxMThcblx0XHR2YXIgdGVzdDEgPSBuZXcgU3RyaW5nKCdhYmMnKTsgIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tbmV3LXdyYXBwZXJzXG5cdFx0dGVzdDFbNV0gPSAnZGUnO1xuXHRcdGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0ZXN0MSlbMF0gPT09ICc1Jykge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTMwNTZcblx0XHR2YXIgdGVzdDIgPSB7fTtcblx0XHRmb3IgKHZhciBpID0gMDsgaSA8IDEwOyBpKyspIHtcblx0XHRcdHRlc3QyWydfJyArIFN0cmluZy5mcm9tQ2hhckNvZGUoaSldID0gaTtcblx0XHR9XG5cdFx0dmFyIG9yZGVyMiA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRlc3QyKS5tYXAoZnVuY3Rpb24gKG4pIHtcblx0XHRcdHJldHVybiB0ZXN0MltuXTtcblx0XHR9KTtcblx0XHRpZiAob3JkZXIyLmpvaW4oJycpICE9PSAnMDEyMzQ1Njc4OScpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHQvLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD0zMDU2XG5cdFx0dmFyIHRlc3QzID0ge307XG5cdFx0J2FiY2RlZmdoaWprbG1ub3BxcnN0Jy5zcGxpdCgnJykuZm9yRWFjaChmdW5jdGlvbiAobGV0dGVyKSB7XG5cdFx0XHR0ZXN0M1tsZXR0ZXJdID0gbGV0dGVyO1xuXHRcdH0pO1xuXHRcdGlmIChPYmplY3Qua2V5cyhPYmplY3QuYXNzaWduKHt9LCB0ZXN0MykpLmpvaW4oJycpICE9PVxuXHRcdFx0XHQnYWJjZGVmZ2hpamtsbW5vcHFyc3QnKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRydWU7XG5cdH0gY2F0Y2ggKGVycikge1xuXHRcdC8vIFdlIGRvbid0IGV4cGVjdCBhbnkgb2YgdGhlIGFib3ZlIHRvIHRocm93LCBidXQgYmV0dGVyIHRvIGJlIHNhZmUuXG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc2hvdWxkVXNlTmF0aXZlKCkgPyBPYmplY3QuYXNzaWduIDogZnVuY3Rpb24gKHRhcmdldCwgc291cmNlKSB7XG5cdHZhciBmcm9tO1xuXHR2YXIgdG8gPSB0b09iamVjdCh0YXJnZXQpO1xuXHR2YXIgc3ltYm9scztcblxuXHRmb3IgKHZhciBzID0gMTsgcyA8IGFyZ3VtZW50cy5sZW5ndGg7IHMrKykge1xuXHRcdGZyb20gPSBPYmplY3QoYXJndW1lbnRzW3NdKTtcblxuXHRcdGZvciAodmFyIGtleSBpbiBmcm9tKSB7XG5cdFx0XHRpZiAoaGFzT3duUHJvcGVydHkuY2FsbChmcm9tLCBrZXkpKSB7XG5cdFx0XHRcdHRvW2tleV0gPSBmcm9tW2tleV07XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKGdldE93blByb3BlcnR5U3ltYm9scykge1xuXHRcdFx0c3ltYm9scyA9IGdldE93blByb3BlcnR5U3ltYm9scyhmcm9tKTtcblx0XHRcdGZvciAodmFyIGkgPSAwOyBpIDwgc3ltYm9scy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRpZiAocHJvcElzRW51bWVyYWJsZS5jYWxsKGZyb20sIHN5bWJvbHNbaV0pKSB7XG5cdFx0XHRcdFx0dG9bc3ltYm9sc1tpXV0gPSBmcm9tW3N5bWJvbHNbaV1dO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIHRvO1xufTtcbiIsIi8qKiBAbGljZW5zZSBJU0MgTGljZW5zZSAoYykgY29weXJpZ2h0IDIwMTggb3JpZ2luYWwgYW5kIGN1cnJlbnQgYXV0aG9ycyAqL1xuLyoqIEBhdXRob3IgSWFuIEhvZm1hbm4tSGlja3MgKGV2aWwpICovXG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBhbHQ6ICdmYW50YXN5LWxhbmQvYWx0JyxcbiAgYmltYXA6ICdmYW50YXN5LWxhbmQvYmltYXAnLFxuICBjaGFpbjogJ2ZhbnRhc3ktbGFuZC9jaGFpbicsXG4gIGNvbXBvc2U6ICdmYW50YXN5LWxhbmQvY29tcG9zZScsXG4gIGNvbmNhdDogJ2ZhbnRhc3ktbGFuZC9jb25jYXQnLFxuICBjb250cmFtYXA6ICdmYW50YXN5LWxhbmQvY29udHJhbWFwJyxcbiAgZW1wdHk6ICdmYW50YXN5LWxhbmQvZW1wdHknLFxuICBlcXVhbHM6ICdmYW50YXN5LWxhbmQvZXF1YWxzJyxcbiAgZXh0ZW5kOiAnZmFudGFzeS1sYW5kL2V4dGVuZCcsXG4gIGZpbHRlcjogJ2ZhbnRhc3ktbGFuZC9maWx0ZXInLFxuICBpZDogJ2ZhbnRhc3ktbGFuZC9pZCcsXG4gIG1hcDogJ2ZhbnRhc3ktbGFuZC9tYXAnLFxuICBvZjogJ2ZhbnRhc3ktbGFuZC9vZicsXG4gIHByb21hcDogJ2ZhbnRhc3ktbGFuZC9wcm9tYXAnLFxuICByZWR1Y2U6ICdmYW50YXN5LWxhbmQvcmVkdWNlJyxcbiAgemVybzogJ2ZhbnRhc3ktbGFuZC96ZXJvJ1xufVxuIiwiLyoqIEBsaWNlbnNlIElTQyBMaWNlbnNlIChjKSBjb3B5cmlnaHQgMjAxNiBvcmlnaW5hbCBhbmQgY3VycmVudCBhdXRob3JzICovXG4vKiogQGF1dGhvciBJYW4gSG9mbWFubi1IaWNrcyAoZXZpbCkgKi9cblxudmFyIGN1cnJ5ID0gcmVxdWlyZSgnLi9jdXJyeScpXG52YXIgaXNGdW5jdGlvbiA9IHJlcXVpcmUoJy4vaXNGdW5jdGlvbicpXG52YXIgdHlwZSA9IHJlcXVpcmUoJy4vdHlwZScpXG5cbi8vIGlzU2FtZVR5cGUgOjogQ29udGFpbmVyIG0gPT4gKG0sIG0pIC0+IEJvb2xlYW5cbmZ1bmN0aW9uIGlzU2FtZVR5cGUoeCwgeSkge1xuICB2YXIgdFggPSB0eXBlKHgpXG4gIHZhciB0WSA9IHR5cGUoeSlcblxuICByZXR1cm4gdFggPT09IHRZXG4gICAgfHwgaXNGdW5jdGlvbih4KSAmJiB4Lm5hbWUgPT09IHRZXG4gICAgfHwgaXNGdW5jdGlvbih5KSAmJiB5Lm5hbWUgPT09IHRYXG59XG5cbm1vZHVsZS5leHBvcnRzID0gY3VycnkoaXNTYW1lVHlwZSlcbiIsIlwidXNlIHN0cmljdFwiO1xuXG5mdW5jdGlvbiBfdHlwZW9mKG9iaikgeyBcIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mXCI7IGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIHR5cGVvZiBvYmo7IH07IH0gZWxzZSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajsgfTsgfSByZXR1cm4gX3R5cGVvZihvYmopOyB9XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IHZvaWQgMDtcblxudmFyIFJlYWN0ID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcblxudmFyIF9jbGFzc25hbWVzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiY2xhc3NuYW1lc1wiKSk7XG5cbnZhciBhbGxJY29ucyA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJAYW50LWRlc2lnbi9pY29ucy9saWIvZGlzdFwiKSk7XG5cbnZhciBfaWNvbnNSZWFjdCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBhbnQtZGVzaWduL2ljb25zLXJlYWN0XCIpKTtcblxudmFyIF9JY29uRm9udCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vSWNvbkZvbnRcIikpO1xuXG52YXIgX3V0aWxzID0gcmVxdWlyZShcIi4vdXRpbHNcIik7XG5cbnZhciBfd2FybmluZyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uL191dGlsL3dhcm5pbmdcIikpO1xuXG52YXIgX0xvY2FsZVJlY2VpdmVyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vbG9jYWxlLXByb3ZpZGVyL0xvY2FsZVJlY2VpdmVyXCIpKTtcblxudmFyIF90d29Ub25lUHJpbWFyeUNvbG9yID0gcmVxdWlyZShcIi4vdHdvVG9uZVByaW1hcnlDb2xvclwiKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgaWYgKHR5cGVvZiBXZWFrTWFwICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBudWxsOyB2YXIgY2FjaGUgPSBuZXcgV2Vha01hcCgpOyBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUgPSBmdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7IHJldHVybiBjYWNoZTsgfTsgcmV0dXJuIGNhY2hlOyB9XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKG9iaikgeyBpZiAob2JqICYmIG9iai5fX2VzTW9kdWxlKSB7IHJldHVybiBvYmo7IH0gaWYgKG9iaiA9PT0gbnVsbCB8fCBfdHlwZW9mKG9iaikgIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIG9iaiAhPT0gXCJmdW5jdGlvblwiKSB7IHJldHVybiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfSB2YXIgY2FjaGUgPSBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKTsgaWYgKGNhY2hlICYmIGNhY2hlLmhhcyhvYmopKSB7IHJldHVybiBjYWNoZS5nZXQob2JqKTsgfSB2YXIgbmV3T2JqID0ge307IHZhciBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjsgZm9yICh2YXIga2V5IGluIG9iaikgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkgeyB2YXIgZGVzYyA9IGhhc1Byb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDogbnVsbDsgaWYgKGRlc2MgJiYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpOyB9IGVsc2UgeyBuZXdPYmpba2V5XSA9IG9ialtrZXldOyB9IH0gfSBuZXdPYmpbXCJkZWZhdWx0XCJdID0gb2JqOyBpZiAoY2FjaGUpIHsgY2FjaGUuc2V0KG9iaiwgbmV3T2JqKTsgfSByZXR1cm4gbmV3T2JqOyB9XG5cbmZ1bmN0aW9uIF9leHRlbmRzKCkgeyBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07IHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHsgaWYgKGtleSBpbiBvYmopIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7IHZhbHVlOiB2YWx1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSB9KTsgfSBlbHNlIHsgb2JqW2tleV0gPSB2YWx1ZTsgfSByZXR1cm4gb2JqOyB9XG5cbmZ1bmN0aW9uIF90b0NvbnN1bWFibGVBcnJheShhcnIpIHsgcmV0dXJuIF9hcnJheVdpdGhvdXRIb2xlcyhhcnIpIHx8IF9pdGVyYWJsZVRvQXJyYXkoYXJyKSB8fCBfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkoYXJyKSB8fCBfbm9uSXRlcmFibGVTcHJlYWQoKTsgfVxuXG5mdW5jdGlvbiBfbm9uSXRlcmFibGVTcHJlYWQoKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpOyB9XG5cbmZ1bmN0aW9uIF91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShvLCBtaW5MZW4pIHsgaWYgKCFvKSByZXR1cm47IGlmICh0eXBlb2YgbyA9PT0gXCJzdHJpbmdcIikgcmV0dXJuIF9hcnJheUxpa2VUb0FycmF5KG8sIG1pbkxlbik7IHZhciBuID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG8pLnNsaWNlKDgsIC0xKTsgaWYgKG4gPT09IFwiT2JqZWN0XCIgJiYgby5jb25zdHJ1Y3RvcikgbiA9IG8uY29uc3RydWN0b3IubmFtZTsgaWYgKG4gPT09IFwiTWFwXCIgfHwgbiA9PT0gXCJTZXRcIikgcmV0dXJuIEFycmF5LmZyb20obyk7IGlmIChuID09PSBcIkFyZ3VtZW50c1wiIHx8IC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pKSByZXR1cm4gX2FycmF5TGlrZVRvQXJyYXkobywgbWluTGVuKTsgfVxuXG5mdW5jdGlvbiBfaXRlcmFibGVUb0FycmF5KGl0ZXIpIHsgaWYgKHR5cGVvZiBTeW1ib2wgIT09IFwidW5kZWZpbmVkXCIgJiYgU3ltYm9sLml0ZXJhdG9yIGluIE9iamVjdChpdGVyKSkgcmV0dXJuIEFycmF5LmZyb20oaXRlcik7IH1cblxuZnVuY3Rpb24gX2FycmF5V2l0aG91dEhvbGVzKGFycikgeyBpZiAoQXJyYXkuaXNBcnJheShhcnIpKSByZXR1cm4gX2FycmF5TGlrZVRvQXJyYXkoYXJyKTsgfVxuXG5mdW5jdGlvbiBfYXJyYXlMaWtlVG9BcnJheShhcnIsIGxlbikgeyBpZiAobGVuID09IG51bGwgfHwgbGVuID4gYXJyLmxlbmd0aCkgbGVuID0gYXJyLmxlbmd0aDsgZm9yICh2YXIgaSA9IDAsIGFycjIgPSBuZXcgQXJyYXkobGVuKTsgaSA8IGxlbjsgaSsrKSB7IGFycjJbaV0gPSBhcnJbaV07IH0gcmV0dXJuIGFycjI7IH1cblxudmFyIF9fcmVzdCA9IHZvaWQgMCAmJiAodm9pZCAwKS5fX3Jlc3QgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgdmFyIHQgPSB7fTtcblxuICBmb3IgKHZhciBwIGluIHMpIHtcbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApIHRbcF0gPSBzW3BdO1xuICB9XG5cbiAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKSBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKSB0W3BbaV1dID0gc1twW2ldXTtcbiAgfVxuICByZXR1cm4gdDtcbn07XG4vKiBlc2xpbnQtZGlzYWJsZSBjYW1lbGNhc2UgKi9cblxuXG4vLyBJbml0aWFsIHNldHRpbmdcbl9pY29uc1JlYWN0W1wiZGVmYXVsdFwiXS5hZGQuYXBwbHkoX2ljb25zUmVhY3RbXCJkZWZhdWx0XCJdLCBfdG9Db25zdW1hYmxlQXJyYXkoT2JqZWN0LmtleXMoYWxsSWNvbnMpLm1hcChmdW5jdGlvbiAoa2V5KSB7XG4gIHJldHVybiBhbGxJY29uc1trZXldO1xufSkpKTtcblxuKDAsIF90d29Ub25lUHJpbWFyeUNvbG9yLnNldFR3b1RvbmVDb2xvcikoJyMxODkwZmYnKTtcbnZhciBkZWZhdWx0VGhlbWUgPSAnb3V0bGluZWQnO1xudmFyIGRhbmdlcm91c1RoZW1lO1xuXG5mdW5jdGlvbiB1bnN0YWJsZV9DaGFuZ2VUaGVtZU9mSWNvbnNEYW5nZXJvdXNseSh0aGVtZSkge1xuICAoMCwgX3dhcm5pbmdbXCJkZWZhdWx0XCJdKShmYWxzZSwgJ0ljb24nLCBcIllvdSBhcmUgdXNpbmcgdGhlIHVuc3RhYmxlIG1ldGhvZCAnSWNvbi51bnN0YWJsZV9DaGFuZ2VUaGVtZU9mQWxsSWNvbnNEYW5nZXJvdXNseScsIFwiICsgXCJtYWtlIHN1cmUgdGhhdCBhbGwgdGhlIGljb25zIHdpdGggdGhlbWUgJ1wiLmNvbmNhdCh0aGVtZSwgXCInIGRpc3BsYXkgY29ycmVjdGx5LlwiKSk7XG4gIGRhbmdlcm91c1RoZW1lID0gdGhlbWU7XG59XG5cbmZ1bmN0aW9uIHVuc3RhYmxlX0NoYW5nZURlZmF1bHRUaGVtZU9mSWNvbnModGhlbWUpIHtcbiAgKDAsIF93YXJuaW5nW1wiZGVmYXVsdFwiXSkoZmFsc2UsICdJY29uJywgXCJZb3UgYXJlIHVzaW5nIHRoZSB1bnN0YWJsZSBtZXRob2QgJ0ljb24udW5zdGFibGVfQ2hhbmdlRGVmYXVsdFRoZW1lT2ZJY29ucycsIFwiICsgXCJtYWtlIHN1cmUgdGhhdCBhbGwgdGhlIGljb25zIHdpdGggdGhlbWUgJ1wiLmNvbmNhdCh0aGVtZSwgXCInIGRpc3BsYXkgY29ycmVjdGx5LlwiKSk7XG4gIGRlZmF1bHRUaGVtZSA9IHRoZW1lO1xufVxuXG52YXIgSWNvbiA9IGZ1bmN0aW9uIEljb24ocHJvcHMpIHtcbiAgdmFyIF9jbGFzc05hbWVzO1xuXG4gIHZhciBjbGFzc05hbWUgPSBwcm9wcy5jbGFzc05hbWUsXG4gICAgICB0eXBlID0gcHJvcHMudHlwZSxcbiAgICAgIENvbXBvbmVudCA9IHByb3BzLmNvbXBvbmVudCxcbiAgICAgIHZpZXdCb3ggPSBwcm9wcy52aWV3Qm94LFxuICAgICAgc3BpbiA9IHByb3BzLnNwaW4sXG4gICAgICByb3RhdGUgPSBwcm9wcy5yb3RhdGUsXG4gICAgICB0YWJJbmRleCA9IHByb3BzLnRhYkluZGV4LFxuICAgICAgb25DbGljayA9IHByb3BzLm9uQ2xpY2ssXG4gICAgICBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLFxuICAgICAgdGhlbWUgPSBwcm9wcy50aGVtZSxcbiAgICAgIHR3b1RvbmVDb2xvciA9IHByb3BzLnR3b1RvbmVDb2xvcixcbiAgICAgIHJlc3RQcm9wcyA9IF9fcmVzdChwcm9wcywgW1wiY2xhc3NOYW1lXCIsIFwidHlwZVwiLCBcImNvbXBvbmVudFwiLCBcInZpZXdCb3hcIiwgXCJzcGluXCIsIFwicm90YXRlXCIsIFwidGFiSW5kZXhcIiwgXCJvbkNsaWNrXCIsIFwiY2hpbGRyZW5cIiwgXCJ0aGVtZVwiLCBcInR3b1RvbmVDb2xvclwiXSk7XG5cbiAgKDAsIF93YXJuaW5nW1wiZGVmYXVsdFwiXSkoQm9vbGVhbih0eXBlIHx8IENvbXBvbmVudCB8fCBjaGlsZHJlbiksICdJY29uJywgJ1Nob3VsZCBoYXZlIGB0eXBlYCBwcm9wIG9yIGBjb21wb25lbnRgIHByb3Agb3IgYGNoaWxkcmVuYC4nKTtcbiAgdmFyIGNsYXNzU3RyaW5nID0gKDAsIF9jbGFzc25hbWVzW1wiZGVmYXVsdFwiXSkoKF9jbGFzc05hbWVzID0ge30sIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgXCJhbnRpY29uXCIsIHRydWUpLCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzTmFtZXMsIFwiYW50aWNvbi1cIi5jb25jYXQodHlwZSksIEJvb2xlYW4odHlwZSkpLCBfY2xhc3NOYW1lcyksIGNsYXNzTmFtZSk7XG4gIHZhciBzdmdDbGFzc1N0cmluZyA9ICgwLCBfY2xhc3NuYW1lc1tcImRlZmF1bHRcIl0pKF9kZWZpbmVQcm9wZXJ0eSh7fSwgXCJhbnRpY29uLXNwaW5cIiwgISFzcGluIHx8IHR5cGUgPT09ICdsb2FkaW5nJykpO1xuICB2YXIgc3ZnU3R5bGUgPSByb3RhdGUgPyB7XG4gICAgbXNUcmFuc2Zvcm06IFwicm90YXRlKFwiLmNvbmNhdChyb3RhdGUsIFwiZGVnKVwiKSxcbiAgICB0cmFuc2Zvcm06IFwicm90YXRlKFwiLmNvbmNhdChyb3RhdGUsIFwiZGVnKVwiKVxuICB9IDogdW5kZWZpbmVkO1xuXG4gIHZhciBpbm5lclN2Z1Byb3BzID0gX2V4dGVuZHMoX2V4dGVuZHMoe30sIF91dGlscy5zdmdCYXNlUHJvcHMpLCB7XG4gICAgY2xhc3NOYW1lOiBzdmdDbGFzc1N0cmluZyxcbiAgICBzdHlsZTogc3ZnU3R5bGUsXG4gICAgdmlld0JveDogdmlld0JveFxuICB9KTtcblxuICBpZiAoIXZpZXdCb3gpIHtcbiAgICBkZWxldGUgaW5uZXJTdmdQcm9wcy52aWV3Qm94O1xuICB9XG5cbiAgdmFyIHJlbmRlcklubmVyTm9kZSA9IGZ1bmN0aW9uIHJlbmRlcklubmVyTm9kZSgpIHtcbiAgICAvLyBjb21wb25lbnQgPiBjaGlsZHJlbiA+IHR5cGVcbiAgICBpZiAoQ29tcG9uZW50KSB7XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoQ29tcG9uZW50LCBpbm5lclN2Z1Byb3BzLCBjaGlsZHJlbik7XG4gICAgfVxuXG4gICAgaWYgKGNoaWxkcmVuKSB7XG4gICAgICAoMCwgX3dhcm5pbmdbXCJkZWZhdWx0XCJdKShCb29sZWFuKHZpZXdCb3gpIHx8IFJlYWN0LkNoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA9PT0gMSAmJiAvKiNfX1BVUkVfXyovUmVhY3QuaXNWYWxpZEVsZW1lbnQoY2hpbGRyZW4pICYmIFJlYWN0LkNoaWxkcmVuLm9ubHkoY2hpbGRyZW4pLnR5cGUgPT09ICd1c2UnLCAnSWNvbicsICdNYWtlIHN1cmUgdGhhdCB5b3UgcHJvdmlkZSBjb3JyZWN0IGB2aWV3Qm94YCcgKyAnIHByb3AgKGRlZmF1bHQgYDAgMCAxMDI0IDEwMjRgKSB0byB0aGUgaWNvbi4nKTtcbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInN2Z1wiLCBfZXh0ZW5kcyh7fSwgaW5uZXJTdmdQcm9wcywge1xuICAgICAgICB2aWV3Qm94OiB2aWV3Qm94XG4gICAgICB9KSwgY2hpbGRyZW4pO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHZhciBjb21wdXRlZFR5cGUgPSB0eXBlO1xuXG4gICAgICBpZiAodGhlbWUpIHtcbiAgICAgICAgdmFyIHRoZW1lSW5OYW1lID0gKDAsIF91dGlscy5nZXRUaGVtZUZyb21UeXBlTmFtZSkodHlwZSk7XG4gICAgICAgICgwLCBfd2FybmluZ1tcImRlZmF1bHRcIl0pKCF0aGVtZUluTmFtZSB8fCB0aGVtZSA9PT0gdGhlbWVJbk5hbWUsICdJY29uJywgXCJUaGUgaWNvbiBuYW1lICdcIi5jb25jYXQodHlwZSwgXCInIGFscmVhZHkgc3BlY2lmeSBhIHRoZW1lICdcIikuY29uY2F0KHRoZW1lSW5OYW1lLCBcIicsXCIpICsgXCIgdGhlICd0aGVtZScgcHJvcCAnXCIuY29uY2F0KHRoZW1lLCBcIicgd2lsbCBiZSBpZ25vcmVkLlwiKSk7XG4gICAgICB9XG5cbiAgICAgIGNvbXB1dGVkVHlwZSA9ICgwLCBfdXRpbHMud2l0aFRoZW1lU3VmZml4KSgoMCwgX3V0aWxzLnJlbW92ZVR5cGVUaGVtZSkoKDAsIF91dGlscy5hbGlhcykoY29tcHV0ZWRUeXBlKSksIGRhbmdlcm91c1RoZW1lIHx8IHRoZW1lIHx8IGRlZmF1bHRUaGVtZSk7XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX2ljb25zUmVhY3RbXCJkZWZhdWx0XCJdLCB7XG4gICAgICAgIGNsYXNzTmFtZTogc3ZnQ2xhc3NTdHJpbmcsXG4gICAgICAgIHR5cGU6IGNvbXB1dGVkVHlwZSxcbiAgICAgICAgcHJpbWFyeUNvbG9yOiB0d29Ub25lQ29sb3IsXG4gICAgICAgIHN0eWxlOiBzdmdTdHlsZVxuICAgICAgfSk7XG4gICAgfVxuICB9O1xuXG4gIHZhciBpY29uVGFiSW5kZXggPSB0YWJJbmRleDtcblxuICBpZiAoaWNvblRhYkluZGV4ID09PSB1bmRlZmluZWQgJiYgb25DbGljaykge1xuICAgIGljb25UYWJJbmRleCA9IC0xO1xuICB9XG5cbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9Mb2NhbGVSZWNlaXZlcltcImRlZmF1bHRcIl0sIHtcbiAgICBjb21wb25lbnROYW1lOiBcIkljb25cIlxuICB9LCBmdW5jdGlvbiAobG9jYWxlKSB7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiaVwiLCBfZXh0ZW5kcyh7XG4gICAgICBcImFyaWEtbGFiZWxcIjogdHlwZSAmJiBcIlwiLmNvbmNhdChsb2NhbGUuaWNvbiwgXCI6IFwiKS5jb25jYXQodHlwZSlcbiAgICB9LCByZXN0UHJvcHMsIHtcbiAgICAgIHRhYkluZGV4OiBpY29uVGFiSW5kZXgsXG4gICAgICBvbkNsaWNrOiBvbkNsaWNrLFxuICAgICAgY2xhc3NOYW1lOiBjbGFzc1N0cmluZ1xuICAgIH0pLCByZW5kZXJJbm5lck5vZGUoKSk7XG4gIH0pO1xufTtcblxuSWNvbi5jcmVhdGVGcm9tSWNvbmZvbnRDTiA9IF9JY29uRm9udFtcImRlZmF1bHRcIl07XG5JY29uLmdldFR3b1RvbmVDb2xvciA9IF90d29Ub25lUHJpbWFyeUNvbG9yLmdldFR3b1RvbmVDb2xvcjtcbkljb24uc2V0VHdvVG9uZUNvbG9yID0gX3R3b1RvbmVQcmltYXJ5Q29sb3Iuc2V0VHdvVG9uZUNvbG9yO1xudmFyIF9kZWZhdWx0ID0gSWNvbjtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gX2RlZmF1bHQ7IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoYml0bWFwLCB2YWx1ZSkge1xuICByZXR1cm4ge1xuICAgIGVudW1lcmFibGU6ICEoYml0bWFwICYgMSksXG4gICAgY29uZmlndXJhYmxlOiAhKGJpdG1hcCAmIDIpLFxuICAgIHdyaXRhYmxlOiAhKGJpdG1hcCAmIDQpLFxuICAgIHZhbHVlOiB2YWx1ZVxuICB9O1xufTtcbiIsIi8vIDE5LjEuMi4xNCAvIDE1LjIuMy4xNCBPYmplY3Qua2V5cyhPKVxudmFyICRrZXlzID0gcmVxdWlyZSgnLi9fb2JqZWN0LWtleXMtaW50ZXJuYWwnKTtcbnZhciBlbnVtQnVnS2V5cyA9IHJlcXVpcmUoJy4vX2VudW0tYnVnLWtleXMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBPYmplY3Qua2V5cyB8fCBmdW5jdGlvbiBrZXlzKE8pIHtcbiAgcmV0dXJuICRrZXlzKE8sIGVudW1CdWdLZXlzKTtcbn07XG4iLCJtb2R1bGUuZXhwb3J0cyA9IHRydWU7XG4iLCJ2YXIgaWQgPSAwO1xudmFyIHB4ID0gTWF0aC5yYW5kb20oKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSkge1xuICByZXR1cm4gJ1N5bWJvbCgnLmNvbmNhdChrZXkgPT09IHVuZGVmaW5lZCA/ICcnIDoga2V5LCAnKV8nLCAoKytpZCArIHB4KS50b1N0cmluZygzNikpO1xufTtcbiIsImV4cG9ydHMuZiA9IHt9LnByb3BlcnR5SXNFbnVtZXJhYmxlO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLnR1cGxlTnVtID0gZXhwb3J0cy50dXBsZSA9IHZvaWQgMDtcblxuLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNDYxNzYxNjUvd2F5cy10by1nZXQtc3RyaW5nLWxpdGVyYWwtdHlwZS1vZi1hcnJheS12YWx1ZXMtd2l0aG91dC1lbnVtLW92ZXJoZWFkXG52YXIgdHVwbGUgPSBmdW5jdGlvbiB0dXBsZSgpIHtcbiAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgYXJnc1tfa2V5XSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgfVxuXG4gIHJldHVybiBhcmdzO1xufTtcblxuZXhwb3J0cy50dXBsZSA9IHR1cGxlO1xuXG52YXIgdHVwbGVOdW0gPSBmdW5jdGlvbiB0dXBsZU51bSgpIHtcbiAgZm9yICh2YXIgX2xlbjIgPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4yKSwgX2tleTIgPSAwOyBfa2V5MiA8IF9sZW4yOyBfa2V5MisrKSB7XG4gICAgYXJnc1tfa2V5Ml0gPSBhcmd1bWVudHNbX2tleTJdO1xuICB9XG5cbiAgcmV0dXJuIGFyZ3M7XG59O1xuXG5leHBvcnRzLnR1cGxlTnVtID0gdHVwbGVOdW07IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfaXRlcmF0b3IgPSByZXF1aXJlKFwiLi4vY29yZS1qcy9zeW1ib2wvaXRlcmF0b3JcIik7XG5cbnZhciBfaXRlcmF0b3IyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfaXRlcmF0b3IpO1xuXG52YXIgX3N5bWJvbCA9IHJlcXVpcmUoXCIuLi9jb3JlLWpzL3N5bWJvbFwiKTtcblxudmFyIF9zeW1ib2wyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfc3ltYm9sKTtcblxudmFyIF90eXBlb2YgPSB0eXBlb2YgX3N5bWJvbDIuZGVmYXVsdCA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBfaXRlcmF0b3IyLmRlZmF1bHQgPT09IFwic3ltYm9sXCIgPyBmdW5jdGlvbiAob2JqKSB7IHJldHVybiB0eXBlb2Ygb2JqOyB9IDogZnVuY3Rpb24gKG9iaikgeyByZXR1cm4gb2JqICYmIHR5cGVvZiBfc3ltYm9sMi5kZWZhdWx0ID09PSBcImZ1bmN0aW9uXCIgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBfc3ltYm9sMi5kZWZhdWx0ICYmIG9iaiAhPT0gX3N5bWJvbDIuZGVmYXVsdC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajsgfTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxuZXhwb3J0cy5kZWZhdWx0ID0gdHlwZW9mIF9zeW1ib2wyLmRlZmF1bHQgPT09IFwiZnVuY3Rpb25cIiAmJiBfdHlwZW9mKF9pdGVyYXRvcjIuZGVmYXVsdCkgPT09IFwic3ltYm9sXCIgPyBmdW5jdGlvbiAob2JqKSB7XG4gIHJldHVybiB0eXBlb2Ygb2JqID09PSBcInVuZGVmaW5lZFwiID8gXCJ1bmRlZmluZWRcIiA6IF90eXBlb2Yob2JqKTtcbn0gOiBmdW5jdGlvbiAob2JqKSB7XG4gIHJldHVybiBvYmogJiYgdHlwZW9mIF9zeW1ib2wyLmRlZmF1bHQgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IF9zeW1ib2wyLmRlZmF1bHQgJiYgb2JqICE9PSBfc3ltYm9sMi5kZWZhdWx0LnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqID09PSBcInVuZGVmaW5lZFwiID8gXCJ1bmRlZmluZWRcIiA6IF90eXBlb2Yob2JqKTtcbn07IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IHZvaWQgMDtcblxudmFyIFJlYWN0ID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcblxudmFyIF9yZWFjdExpZmVjeWNsZXNDb21wYXQgPSByZXF1aXJlKFwicmVhY3QtbGlmZWN5Y2xlcy1jb21wYXRcIik7XG5cbnZhciBfQ2xlYXJhYmxlTGFiZWxlZElucHV0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi9DbGVhcmFibGVMYWJlbGVkSW5wdXRcIikpO1xuXG52YXIgX1Jlc2l6YWJsZVRleHRBcmVhID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi9SZXNpemFibGVUZXh0QXJlYVwiKSk7XG5cbnZhciBfY29uZmlnUHJvdmlkZXIgPSByZXF1aXJlKFwiLi4vY29uZmlnLXByb3ZpZGVyXCIpO1xuXG52YXIgX0lucHV0ID0gcmVxdWlyZShcIi4vSW5wdXRcIik7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7IGlmICh0eXBlb2YgV2Vha01hcCAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gbnVsbDsgdmFyIGNhY2hlID0gbmV3IFdlYWtNYXAoKTsgX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlID0gZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyByZXR1cm4gY2FjaGU7IH07IHJldHVybiBjYWNoZTsgfVxuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChvYmopIHsgaWYgKG9iaiAmJiBvYmouX19lc01vZHVsZSkgeyByZXR1cm4gb2JqOyB9IGlmIChvYmogPT09IG51bGwgfHwgX3R5cGVvZihvYmopICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiBvYmogIT09IFwiZnVuY3Rpb25cIikgeyByZXR1cm4geyBcImRlZmF1bHRcIjogb2JqIH07IH0gdmFyIGNhY2hlID0gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCk7IGlmIChjYWNoZSAmJiBjYWNoZS5oYXMob2JqKSkgeyByZXR1cm4gY2FjaGUuZ2V0KG9iaik7IH0gdmFyIG5ld09iaiA9IHt9OyB2YXIgaGFzUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7IGZvciAodmFyIGtleSBpbiBvYmopIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHsgdmFyIGRlc2MgPSBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IG51bGw7IGlmIChkZXNjICYmIChkZXNjLmdldCB8fCBkZXNjLnNldCkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTsgfSBlbHNlIHsgbmV3T2JqW2tleV0gPSBvYmpba2V5XTsgfSB9IH0gbmV3T2JqW1wiZGVmYXVsdFwiXSA9IG9iajsgaWYgKGNhY2hlKSB7IGNhY2hlLnNldChvYmosIG5ld09iaik7IH0gcmV0dXJuIG5ld09iajsgfVxuXG5mdW5jdGlvbiBfdHlwZW9mKG9iaikgeyBcIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mXCI7IGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIHR5cGVvZiBvYmo7IH07IH0gZWxzZSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajsgfTsgfSByZXR1cm4gX3R5cGVvZihvYmopOyB9XG5cbmZ1bmN0aW9uIF9leHRlbmRzKCkgeyBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07IHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH1cblxuZnVuY3Rpb24gX2NyZWF0ZUNsYXNzKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIF9zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcyk7IH1cblxuZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgX3NldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IGZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7IG8uX19wcm90b19fID0gcDsgcmV0dXJuIG87IH07IHJldHVybiBfc2V0UHJvdG90eXBlT2YobywgcCk7IH1cblxuZnVuY3Rpb24gX2NyZWF0ZVN1cGVyKERlcml2ZWQpIHsgdmFyIGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QgPSBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCk7IHJldHVybiBmdW5jdGlvbiBfY3JlYXRlU3VwZXJJbnRlcm5hbCgpIHsgdmFyIFN1cGVyID0gX2dldFByb3RvdHlwZU9mKERlcml2ZWQpLCByZXN1bHQ7IGlmIChoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KSB7IHZhciBOZXdUYXJnZXQgPSBfZ2V0UHJvdG90eXBlT2YodGhpcykuY29uc3RydWN0b3I7IHJlc3VsdCA9IFJlZmxlY3QuY29uc3RydWN0KFN1cGVyLCBhcmd1bWVudHMsIE5ld1RhcmdldCk7IH0gZWxzZSB7IHJlc3VsdCA9IFN1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH0gcmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIHJlc3VsdCk7IH07IH1cblxuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkgeyBpZiAoY2FsbCAmJiAoX3R5cGVvZihjYWxsKSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSkgeyByZXR1cm4gY2FsbDsgfSByZXR1cm4gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKTsgfVxuXG5mdW5jdGlvbiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpIHsgaWYgKHNlbGYgPT09IHZvaWQgMCkgeyB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7IH0gcmV0dXJuIHNlbGY7IH1cblxuZnVuY3Rpb24gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpIHsgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcInVuZGVmaW5lZFwiIHx8ICFSZWZsZWN0LmNvbnN0cnVjdCkgcmV0dXJuIGZhbHNlOyBpZiAoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSkgcmV0dXJuIGZhbHNlOyBpZiAodHlwZW9mIFByb3h5ID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiB0cnVlOyB0cnkgeyBEYXRlLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFJlZmxlY3QuY29uc3RydWN0KERhdGUsIFtdLCBmdW5jdGlvbiAoKSB7fSkpOyByZXR1cm4gdHJ1ZTsgfSBjYXRjaCAoZSkgeyByZXR1cm4gZmFsc2U7IH0gfVxuXG5mdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyBfZ2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3QuZ2V0UHJvdG90eXBlT2YgOiBmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyByZXR1cm4gby5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKG8pOyB9OyByZXR1cm4gX2dldFByb3RvdHlwZU9mKG8pOyB9XG5cbnZhciBUZXh0QXJlYSA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoVGV4dEFyZWEsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gIHZhciBfc3VwZXIgPSBfY3JlYXRlU3VwZXIoVGV4dEFyZWEpO1xuXG4gIGZ1bmN0aW9uIFRleHRBcmVhKHByb3BzKSB7XG4gICAgdmFyIF90aGlzO1xuXG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFRleHRBcmVhKTtcblxuICAgIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgcHJvcHMpO1xuXG4gICAgX3RoaXMuc2F2ZVRleHRBcmVhID0gZnVuY3Rpb24gKHJlc2l6YWJsZVRleHRBcmVhKSB7XG4gICAgICBfdGhpcy5yZXNpemFibGVUZXh0QXJlYSA9IHJlc2l6YWJsZVRleHRBcmVhO1xuICAgIH07XG5cbiAgICBfdGhpcy5zYXZlQ2xlYXJhYmxlSW5wdXQgPSBmdW5jdGlvbiAoY2xlYXJhYmxlSW5wdXQpIHtcbiAgICAgIF90aGlzLmNsZWFyYWJsZUlucHV0ID0gY2xlYXJhYmxlSW5wdXQ7XG4gICAgfTtcblxuICAgIF90aGlzLmhhbmRsZUNoYW5nZSA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICBfdGhpcy5zZXRWYWx1ZShlLnRhcmdldC52YWx1ZSwgZnVuY3Rpb24gKCkge1xuICAgICAgICBfdGhpcy5yZXNpemFibGVUZXh0QXJlYS5yZXNpemVUZXh0YXJlYSgpO1xuICAgICAgfSk7XG5cbiAgICAgICgwLCBfSW5wdXQucmVzb2x2ZU9uQ2hhbmdlKShfdGhpcy5yZXNpemFibGVUZXh0QXJlYS50ZXh0QXJlYSwgZSwgX3RoaXMucHJvcHMub25DaGFuZ2UpO1xuICAgIH07XG5cbiAgICBfdGhpcy5oYW5kbGVLZXlEb3duID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgIHZhciBfdGhpcyRwcm9wcyA9IF90aGlzLnByb3BzLFxuICAgICAgICAgIG9uUHJlc3NFbnRlciA9IF90aGlzJHByb3BzLm9uUHJlc3NFbnRlcixcbiAgICAgICAgICBvbktleURvd24gPSBfdGhpcyRwcm9wcy5vbktleURvd247XG5cbiAgICAgIGlmIChlLmtleUNvZGUgPT09IDEzICYmIG9uUHJlc3NFbnRlcikge1xuICAgICAgICBvblByZXNzRW50ZXIoZSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChvbktleURvd24pIHtcbiAgICAgICAgb25LZXlEb3duKGUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBfdGhpcy5oYW5kbGVSZXNldCA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICBfdGhpcy5zZXRWYWx1ZSgnJywgZnVuY3Rpb24gKCkge1xuICAgICAgICBfdGhpcy5yZXNpemFibGVUZXh0QXJlYS5yZW5kZXJUZXh0QXJlYSgpO1xuXG4gICAgICAgIF90aGlzLmZvY3VzKCk7XG4gICAgICB9KTtcblxuICAgICAgKDAsIF9JbnB1dC5yZXNvbHZlT25DaGFuZ2UpKF90aGlzLnJlc2l6YWJsZVRleHRBcmVhLnRleHRBcmVhLCBlLCBfdGhpcy5wcm9wcy5vbkNoYW5nZSk7XG4gICAgfTtcblxuICAgIF90aGlzLnJlbmRlclRleHRBcmVhID0gZnVuY3Rpb24gKHByZWZpeENscykge1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9SZXNpemFibGVUZXh0QXJlYVtcImRlZmF1bHRcIl0sIF9leHRlbmRzKHt9LCBfdGhpcy5wcm9wcywge1xuICAgICAgICBwcmVmaXhDbHM6IHByZWZpeENscyxcbiAgICAgICAgb25LZXlEb3duOiBfdGhpcy5oYW5kbGVLZXlEb3duLFxuICAgICAgICBvbkNoYW5nZTogX3RoaXMuaGFuZGxlQ2hhbmdlLFxuICAgICAgICByZWY6IF90aGlzLnNhdmVUZXh0QXJlYVxuICAgICAgfSkpO1xuICAgIH07XG5cbiAgICBfdGhpcy5yZW5kZXJDb21wb25lbnQgPSBmdW5jdGlvbiAoX3JlZikge1xuICAgICAgdmFyIGdldFByZWZpeENscyA9IF9yZWYuZ2V0UHJlZml4Q2xzO1xuICAgICAgdmFyIHZhbHVlID0gX3RoaXMuc3RhdGUudmFsdWU7XG4gICAgICB2YXIgY3VzdG9taXplUHJlZml4Q2xzID0gX3RoaXMucHJvcHMucHJlZml4Q2xzO1xuICAgICAgdmFyIHByZWZpeENscyA9IGdldFByZWZpeENscygnaW5wdXQnLCBjdXN0b21pemVQcmVmaXhDbHMpO1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9DbGVhcmFibGVMYWJlbGVkSW5wdXRbXCJkZWZhdWx0XCJdLCBfZXh0ZW5kcyh7fSwgX3RoaXMucHJvcHMsIHtcbiAgICAgICAgcHJlZml4Q2xzOiBwcmVmaXhDbHMsXG4gICAgICAgIGlucHV0VHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgIHZhbHVlOiAoMCwgX0lucHV0LmZpeENvbnRyb2xsZWRWYWx1ZSkodmFsdWUpLFxuICAgICAgICBlbGVtZW50OiBfdGhpcy5yZW5kZXJUZXh0QXJlYShwcmVmaXhDbHMpLFxuICAgICAgICBoYW5kbGVSZXNldDogX3RoaXMuaGFuZGxlUmVzZXQsXG4gICAgICAgIHJlZjogX3RoaXMuc2F2ZUNsZWFyYWJsZUlucHV0XG4gICAgICB9KSk7XG4gICAgfTtcblxuICAgIHZhciB2YWx1ZSA9IHR5cGVvZiBwcm9wcy52YWx1ZSA9PT0gJ3VuZGVmaW5lZCcgPyBwcm9wcy5kZWZhdWx0VmFsdWUgOiBwcm9wcy52YWx1ZTtcbiAgICBfdGhpcy5zdGF0ZSA9IHtcbiAgICAgIHZhbHVlOiB2YWx1ZVxuICAgIH07XG4gICAgcmV0dXJuIF90aGlzO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKFRleHRBcmVhLCBbe1xuICAgIGtleTogXCJzZXRWYWx1ZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBzZXRWYWx1ZSh2YWx1ZSwgY2FsbGJhY2spIHtcbiAgICAgIGlmICghKCd2YWx1ZScgaW4gdGhpcy5wcm9wcykpIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgdmFsdWU6IHZhbHVlXG4gICAgICAgIH0sIGNhbGxiYWNrKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZm9jdXNcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZm9jdXMoKSB7XG4gICAgICB0aGlzLnJlc2l6YWJsZVRleHRBcmVhLnRleHRBcmVhLmZvY3VzKCk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImJsdXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gYmx1cigpIHtcbiAgICAgIHRoaXMucmVzaXphYmxlVGV4dEFyZWEudGV4dEFyZWEuYmx1cigpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJyZW5kZXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9jb25maWdQcm92aWRlci5Db25maWdDb25zdW1lciwgbnVsbCwgdGhpcy5yZW5kZXJDb21wb25lbnQpO1xuICAgIH1cbiAgfV0sIFt7XG4gICAga2V5OiBcImdldERlcml2ZWRTdGF0ZUZyb21Qcm9wc1wiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMobmV4dFByb3BzKSB7XG4gICAgICBpZiAoJ3ZhbHVlJyBpbiBuZXh0UHJvcHMpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB2YWx1ZTogbmV4dFByb3BzLnZhbHVlXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBUZXh0QXJlYTtcbn0oUmVhY3QuQ29tcG9uZW50KTtcblxuKDAsIF9yZWFjdExpZmVjeWNsZXNDb21wYXQucG9seWZpbGwpKFRleHRBcmVhKTtcbnZhciBfZGVmYXVsdCA9IFRleHRBcmVhO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBfZGVmYXVsdDsiLCJcInVzZSBzdHJpY3RcIjtcblxuZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiOyBpZiAodHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT09IFwic3ltYm9sXCIpIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiB0eXBlb2Ygb2JqOyB9OyB9IGVsc2UgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIG9iaiAmJiB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgb2JqICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvYmo7IH07IH0gcmV0dXJuIF90eXBlb2Yob2JqKTsgfVxuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSB2b2lkIDA7XG5cbnZhciBSZWFjdCA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5cbnZhciBfcmNOb3RpZmljYXRpb24gPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyYy1ub3RpZmljYXRpb25cIikpO1xuXG52YXIgX2ljb24gPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuLi9pY29uXCIpKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgaWYgKHR5cGVvZiBXZWFrTWFwICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBudWxsOyB2YXIgY2FjaGUgPSBuZXcgV2Vha01hcCgpOyBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUgPSBmdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7IHJldHVybiBjYWNoZTsgfTsgcmV0dXJuIGNhY2hlOyB9XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKG9iaikgeyBpZiAob2JqICYmIG9iai5fX2VzTW9kdWxlKSB7IHJldHVybiBvYmo7IH0gaWYgKG9iaiA9PT0gbnVsbCB8fCBfdHlwZW9mKG9iaikgIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIG9iaiAhPT0gXCJmdW5jdGlvblwiKSB7IHJldHVybiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfSB2YXIgY2FjaGUgPSBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKTsgaWYgKGNhY2hlICYmIGNhY2hlLmhhcyhvYmopKSB7IHJldHVybiBjYWNoZS5nZXQob2JqKTsgfSB2YXIgbmV3T2JqID0ge307IHZhciBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjsgZm9yICh2YXIga2V5IGluIG9iaikgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkgeyB2YXIgZGVzYyA9IGhhc1Byb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDogbnVsbDsgaWYgKGRlc2MgJiYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpOyB9IGVsc2UgeyBuZXdPYmpba2V5XSA9IG9ialtrZXldOyB9IH0gfSBuZXdPYmpbXCJkZWZhdWx0XCJdID0gb2JqOyBpZiAoY2FjaGUpIHsgY2FjaGUuc2V0KG9iaiwgbmV3T2JqKTsgfSByZXR1cm4gbmV3T2JqOyB9XG5cbmZ1bmN0aW9uIF9leHRlbmRzKCkgeyBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07IHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9XG5cbnZhciBub3RpZmljYXRpb25JbnN0YW5jZSA9IHt9O1xudmFyIGRlZmF1bHREdXJhdGlvbiA9IDQuNTtcbnZhciBkZWZhdWx0VG9wID0gMjQ7XG52YXIgZGVmYXVsdEJvdHRvbSA9IDI0O1xudmFyIGRlZmF1bHRQbGFjZW1lbnQgPSAndG9wUmlnaHQnO1xudmFyIGRlZmF1bHRHZXRDb250YWluZXI7XG52YXIgZGVmYXVsdENsb3NlSWNvbjtcblxuZnVuY3Rpb24gc2V0Tm90aWZpY2F0aW9uQ29uZmlnKG9wdGlvbnMpIHtcbiAgdmFyIGR1cmF0aW9uID0gb3B0aW9ucy5kdXJhdGlvbixcbiAgICAgIHBsYWNlbWVudCA9IG9wdGlvbnMucGxhY2VtZW50LFxuICAgICAgYm90dG9tID0gb3B0aW9ucy5ib3R0b20sXG4gICAgICB0b3AgPSBvcHRpb25zLnRvcCxcbiAgICAgIGdldENvbnRhaW5lciA9IG9wdGlvbnMuZ2V0Q29udGFpbmVyLFxuICAgICAgY2xvc2VJY29uID0gb3B0aW9ucy5jbG9zZUljb247XG5cbiAgaWYgKGR1cmF0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICBkZWZhdWx0RHVyYXRpb24gPSBkdXJhdGlvbjtcbiAgfVxuXG4gIGlmIChwbGFjZW1lbnQgIT09IHVuZGVmaW5lZCkge1xuICAgIGRlZmF1bHRQbGFjZW1lbnQgPSBwbGFjZW1lbnQ7XG4gIH1cblxuICBpZiAoYm90dG9tICE9PSB1bmRlZmluZWQpIHtcbiAgICBkZWZhdWx0Qm90dG9tID0gYm90dG9tO1xuICB9XG5cbiAgaWYgKHRvcCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgZGVmYXVsdFRvcCA9IHRvcDtcbiAgfVxuXG4gIGlmIChnZXRDb250YWluZXIgIT09IHVuZGVmaW5lZCkge1xuICAgIGRlZmF1bHRHZXRDb250YWluZXIgPSBnZXRDb250YWluZXI7XG4gIH1cblxuICBpZiAoY2xvc2VJY29uICE9PSB1bmRlZmluZWQpIHtcbiAgICBkZWZhdWx0Q2xvc2VJY29uID0gY2xvc2VJY29uO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldFBsYWNlbWVudFN0eWxlKHBsYWNlbWVudCkge1xuICB2YXIgdG9wID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiBkZWZhdWx0VG9wO1xuICB2YXIgYm90dG9tID0gYXJndW1lbnRzLmxlbmd0aCA+IDIgJiYgYXJndW1lbnRzWzJdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMl0gOiBkZWZhdWx0Qm90dG9tO1xuICB2YXIgc3R5bGU7XG5cbiAgc3dpdGNoIChwbGFjZW1lbnQpIHtcbiAgICBjYXNlICd0b3BMZWZ0JzpcbiAgICAgIHN0eWxlID0ge1xuICAgICAgICBsZWZ0OiAwLFxuICAgICAgICB0b3A6IHRvcCxcbiAgICAgICAgYm90dG9tOiAnYXV0bydcbiAgICAgIH07XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ3RvcFJpZ2h0JzpcbiAgICAgIHN0eWxlID0ge1xuICAgICAgICByaWdodDogMCxcbiAgICAgICAgdG9wOiB0b3AsXG4gICAgICAgIGJvdHRvbTogJ2F1dG8nXG4gICAgICB9O1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdib3R0b21MZWZ0JzpcbiAgICAgIHN0eWxlID0ge1xuICAgICAgICBsZWZ0OiAwLFxuICAgICAgICB0b3A6ICdhdXRvJyxcbiAgICAgICAgYm90dG9tOiBib3R0b21cbiAgICAgIH07XG4gICAgICBicmVhaztcblxuICAgIGRlZmF1bHQ6XG4gICAgICBzdHlsZSA9IHtcbiAgICAgICAgcmlnaHQ6IDAsXG4gICAgICAgIHRvcDogJ2F1dG8nLFxuICAgICAgICBib3R0b206IGJvdHRvbVxuICAgICAgfTtcbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgcmV0dXJuIHN0eWxlO1xufVxuXG5mdW5jdGlvbiBnZXROb3RpZmljYXRpb25JbnN0YW5jZShfcmVmLCBjYWxsYmFjaykge1xuICB2YXIgcHJlZml4Q2xzID0gX3JlZi5wcmVmaXhDbHMsXG4gICAgICBfcmVmJHBsYWNlbWVudCA9IF9yZWYucGxhY2VtZW50LFxuICAgICAgcGxhY2VtZW50ID0gX3JlZiRwbGFjZW1lbnQgPT09IHZvaWQgMCA/IGRlZmF1bHRQbGFjZW1lbnQgOiBfcmVmJHBsYWNlbWVudCxcbiAgICAgIF9yZWYkZ2V0Q29udGFpbmVyID0gX3JlZi5nZXRDb250YWluZXIsXG4gICAgICBnZXRDb250YWluZXIgPSBfcmVmJGdldENvbnRhaW5lciA9PT0gdm9pZCAwID8gZGVmYXVsdEdldENvbnRhaW5lciA6IF9yZWYkZ2V0Q29udGFpbmVyLFxuICAgICAgdG9wID0gX3JlZi50b3AsXG4gICAgICBib3R0b20gPSBfcmVmLmJvdHRvbSxcbiAgICAgIF9yZWYkY2xvc2VJY29uID0gX3JlZi5jbG9zZUljb24sXG4gICAgICBjbG9zZUljb24gPSBfcmVmJGNsb3NlSWNvbiA9PT0gdm9pZCAwID8gZGVmYXVsdENsb3NlSWNvbiA6IF9yZWYkY2xvc2VJY29uO1xuICB2YXIgY2FjaGVLZXkgPSBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLVwiKS5jb25jYXQocGxhY2VtZW50KTtcblxuICBpZiAobm90aWZpY2F0aW9uSW5zdGFuY2VbY2FjaGVLZXldKSB7XG4gICAgY2FsbGJhY2sobm90aWZpY2F0aW9uSW5zdGFuY2VbY2FjaGVLZXldKTtcbiAgICByZXR1cm47XG4gIH1cblxuICB2YXIgY2xvc2VJY29uVG9SZW5kZXIgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwge1xuICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1jbG9zZS14XCIpXG4gIH0sIGNsb3NlSWNvbiB8fCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfaWNvbltcImRlZmF1bHRcIl0sIHtcbiAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeENscywgXCItY2xvc2UtaWNvblwiKSxcbiAgICB0eXBlOiBcImNsb3NlXCJcbiAgfSkpO1xuXG4gIF9yY05vdGlmaWNhdGlvbltcImRlZmF1bHRcIl0ubmV3SW5zdGFuY2Uoe1xuICAgIHByZWZpeENsczogcHJlZml4Q2xzLFxuICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1cIikuY29uY2F0KHBsYWNlbWVudCksXG4gICAgc3R5bGU6IGdldFBsYWNlbWVudFN0eWxlKHBsYWNlbWVudCwgdG9wLCBib3R0b20pLFxuICAgIGdldENvbnRhaW5lcjogZ2V0Q29udGFpbmVyLFxuICAgIGNsb3NlSWNvbjogY2xvc2VJY29uVG9SZW5kZXJcbiAgfSwgZnVuY3Rpb24gKG5vdGlmaWNhdGlvbikge1xuICAgIG5vdGlmaWNhdGlvbkluc3RhbmNlW2NhY2hlS2V5XSA9IG5vdGlmaWNhdGlvbjtcbiAgICBjYWxsYmFjayhub3RpZmljYXRpb24pO1xuICB9KTtcbn1cblxudmFyIHR5cGVUb0ljb24gPSB7XG4gIHN1Y2Nlc3M6ICdjaGVjay1jaXJjbGUtbycsXG4gIGluZm86ICdpbmZvLWNpcmNsZS1vJyxcbiAgZXJyb3I6ICdjbG9zZS1jaXJjbGUtbycsXG4gIHdhcm5pbmc6ICdleGNsYW1hdGlvbi1jaXJjbGUtbydcbn07XG5cbmZ1bmN0aW9uIG5vdGljZShhcmdzKSB7XG4gIHZhciBvdXRlclByZWZpeENscyA9IGFyZ3MucHJlZml4Q2xzIHx8ICdhbnQtbm90aWZpY2F0aW9uJztcbiAgdmFyIHByZWZpeENscyA9IFwiXCIuY29uY2F0KG91dGVyUHJlZml4Q2xzLCBcIi1ub3RpY2VcIik7XG4gIHZhciBkdXJhdGlvbiA9IGFyZ3MuZHVyYXRpb24gPT09IHVuZGVmaW5lZCA/IGRlZmF1bHREdXJhdGlvbiA6IGFyZ3MuZHVyYXRpb247XG4gIHZhciBpY29uTm9kZSA9IG51bGw7XG5cbiAgaWYgKGFyZ3MuaWNvbikge1xuICAgIGljb25Ob2RlID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtcbiAgICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1pY29uXCIpXG4gICAgfSwgYXJncy5pY29uKTtcbiAgfSBlbHNlIGlmIChhcmdzLnR5cGUpIHtcbiAgICB2YXIgaWNvblR5cGUgPSB0eXBlVG9JY29uW2FyZ3MudHlwZV07XG4gICAgaWNvbk5vZGUgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfaWNvbltcImRlZmF1bHRcIl0sIHtcbiAgICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1pY29uIFwiKS5jb25jYXQocHJlZml4Q2xzLCBcIi1pY29uLVwiKS5jb25jYXQoYXJncy50eXBlKSxcbiAgICAgIHR5cGU6IGljb25UeXBlXG4gICAgfSk7XG4gIH1cblxuICB2YXIgYXV0b01hcmdpblRhZyA9ICFhcmdzLmRlc2NyaXB0aW9uICYmIGljb25Ob2RlID8gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtcbiAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeENscywgXCItbWVzc2FnZS1zaW5nbGUtbGluZS1hdXRvLW1hcmdpblwiKVxuICB9KSA6IG51bGw7XG4gIHZhciBwbGFjZW1lbnQgPSBhcmdzLnBsYWNlbWVudCxcbiAgICAgIHRvcCA9IGFyZ3MudG9wLFxuICAgICAgYm90dG9tID0gYXJncy5ib3R0b20sXG4gICAgICBnZXRDb250YWluZXIgPSBhcmdzLmdldENvbnRhaW5lcixcbiAgICAgIGNsb3NlSWNvbiA9IGFyZ3MuY2xvc2VJY29uO1xuICBnZXROb3RpZmljYXRpb25JbnN0YW5jZSh7XG4gICAgcHJlZml4Q2xzOiBvdXRlclByZWZpeENscyxcbiAgICBwbGFjZW1lbnQ6IHBsYWNlbWVudCxcbiAgICB0b3A6IHRvcCxcbiAgICBib3R0b206IGJvdHRvbSxcbiAgICBnZXRDb250YWluZXI6IGdldENvbnRhaW5lcixcbiAgICBjbG9zZUljb246IGNsb3NlSWNvblxuICB9LCBmdW5jdGlvbiAobm90aWZpY2F0aW9uKSB7XG4gICAgbm90aWZpY2F0aW9uLm5vdGljZSh7XG4gICAgICBjb250ZW50OiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgIGNsYXNzTmFtZTogaWNvbk5vZGUgPyBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLXdpdGgtaWNvblwiKSA6ICcnXG4gICAgICB9LCBpY29uTm9kZSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeENscywgXCItbWVzc2FnZVwiKVxuICAgICAgfSwgYXV0b01hcmdpblRhZywgYXJncy5tZXNzYWdlKSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeENscywgXCItZGVzY3JpcHRpb25cIilcbiAgICAgIH0sIGFyZ3MuZGVzY3JpcHRpb24pLCBhcmdzLmJ0biA/IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7XG4gICAgICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1idG5cIilcbiAgICAgIH0sIGFyZ3MuYnRuKSA6IG51bGwpLFxuICAgICAgZHVyYXRpb246IGR1cmF0aW9uLFxuICAgICAgY2xvc2FibGU6IHRydWUsXG4gICAgICBvbkNsb3NlOiBhcmdzLm9uQ2xvc2UsXG4gICAgICBvbkNsaWNrOiBhcmdzLm9uQ2xpY2ssXG4gICAgICBrZXk6IGFyZ3Mua2V5LFxuICAgICAgc3R5bGU6IGFyZ3Muc3R5bGUgfHwge30sXG4gICAgICBjbGFzc05hbWU6IGFyZ3MuY2xhc3NOYW1lXG4gICAgfSk7XG4gIH0pO1xufVxuXG52YXIgYXBpID0ge1xuICBvcGVuOiBub3RpY2UsXG4gIGNsb3NlOiBmdW5jdGlvbiBjbG9zZShrZXkpIHtcbiAgICBPYmplY3Qua2V5cyhub3RpZmljYXRpb25JbnN0YW5jZSkuZm9yRWFjaChmdW5jdGlvbiAoY2FjaGVLZXkpIHtcbiAgICAgIHJldHVybiBub3RpZmljYXRpb25JbnN0YW5jZVtjYWNoZUtleV0ucmVtb3ZlTm90aWNlKGtleSk7XG4gICAgfSk7XG4gIH0sXG4gIGNvbmZpZzogc2V0Tm90aWZpY2F0aW9uQ29uZmlnLFxuICBkZXN0cm95OiBmdW5jdGlvbiBkZXN0cm95KCkge1xuICAgIE9iamVjdC5rZXlzKG5vdGlmaWNhdGlvbkluc3RhbmNlKS5mb3JFYWNoKGZ1bmN0aW9uIChjYWNoZUtleSkge1xuICAgICAgbm90aWZpY2F0aW9uSW5zdGFuY2VbY2FjaGVLZXldLmRlc3Ryb3koKTtcbiAgICAgIGRlbGV0ZSBub3RpZmljYXRpb25JbnN0YW5jZVtjYWNoZUtleV07XG4gICAgfSk7XG4gIH1cbn07XG5bJ3N1Y2Nlc3MnLCAnaW5mbycsICd3YXJuaW5nJywgJ2Vycm9yJ10uZm9yRWFjaChmdW5jdGlvbiAodHlwZSkge1xuICBhcGlbdHlwZV0gPSBmdW5jdGlvbiAoYXJncykge1xuICAgIHJldHVybiBhcGkub3BlbihfZXh0ZW5kcyhfZXh0ZW5kcyh7fSwgYXJncyksIHtcbiAgICAgIHR5cGU6IHR5cGVcbiAgICB9KSk7XG4gIH07XG59KTtcbmFwaS53YXJuID0gYXBpLndhcm5pbmc7XG52YXIgX2RlZmF1bHQgPSBhcGk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IF9kZWZhdWx0OyIsIi8qKiBAbGljZW5zZSBJU0MgTGljZW5zZSAoYykgY29weXJpZ2h0IDIwMTYgb3JpZ2luYWwgYW5kIGN1cnJlbnQgYXV0aG9ycyAqL1xuLyoqIEBhdXRob3IgSWFuIEhvZm1hbm4tSGlja3MgKGV2aWwpICovXG5cbnZhciBpc0Z1bmN0aW9uID0gcmVxdWlyZSgnLi9pc0Z1bmN0aW9uJylcblxudmFyIENVUlJZX1NZTUIgPVxuICAnQEBjcm9ja3MvY3VycmllZCdcblxuZnVuY3Rpb24gYXBwbHlDdXJyeShmbiwgYXJnKSB7XG4gIGlmKCFpc0Z1bmN0aW9uKGZuKSkgeyByZXR1cm4gZm4gfVxuXG4gIHJldHVybiBmbi5sZW5ndGggPiAxID8gZm4uYmluZChudWxsLCBhcmcpIDogZm4uY2FsbChudWxsLCBhcmcpXG59XG5cbi8vIGN1cnJ5IDogKChhLCBiLCBjKSAtPiBkKSAtPiBhIC0+IGIgLT4gYyAtPiBkXG5mdW5jdGlvbiBjdXJyeShmbikge1xuICBpZihmbltDVVJSWV9TWU1CXSkge1xuICAgIHJldHVybiBmblxuICB9XG5cbiAgZnVuY3Rpb24gY3VycmllZCgpIHtcbiAgICB2YXIgeHMgPSBbXSwgbGVuID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgICB3aGlsZSAoIGxlbi0tICkgeHNbIGxlbiBdID0gYXJndW1lbnRzWyBsZW4gXTtcblxuICAgIHZhciBhcmdzID1cbiAgICAgIHhzLmxlbmd0aCA/IHhzIDogWyB1bmRlZmluZWQgXVxuXG4gICAgaWYoYXJncy5sZW5ndGggPCBmbi5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBjdXJyeShGdW5jdGlvbi5iaW5kLmFwcGx5KGZuLCBbIG51bGwgXS5jb25jYXQoYXJncykpKVxuICAgIH1cblxuICAgIHZhciB2YWwgPSBhcmdzLmxlbmd0aCA9PT0gZm4ubGVuZ3RoXG4gICAgICA/IGZuLmFwcGx5KG51bGwsIGFyZ3MpXG4gICAgICA6IGFyZ3MucmVkdWNlKGFwcGx5Q3VycnksIGZuKVxuXG4gICAgaWYoaXNGdW5jdGlvbih2YWwpKSB7XG4gICAgICByZXR1cm4gY3VycnkodmFsKVxuICAgIH1cblxuICAgIHJldHVybiB2YWxcbiAgfVxuXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjdXJyaWVkLCBDVVJSWV9TWU1CLCB7XG4gICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgd3JpdGFibGU6IGZhbHNlLFxuICAgIHZhbHVlOiB0cnVlXG4gIH0pXG5cbiAgcmV0dXJuIGN1cnJpZWRcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjdXJyeVxuIiwiLyoqIEBsaWNlbnNlIElTQyBMaWNlbnNlIChjKSBjb3B5cmlnaHQgMjAxNiBvcmlnaW5hbCBhbmQgY3VycmVudCBhdXRob3JzICovXG4vKiogQGF1dGhvciBJYW4gSG9mbWFubi1IaWNrcyAoZXZpbCkgKi9cblxuZnVuY3Rpb24gaXNBcnJheSh4KSB7XG4gIHJldHVybiBBcnJheS5pc0FycmF5KHgpXG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNBcnJheVxuIiwiLyoqIEBsaWNlbnNlIElTQyBMaWNlbnNlIChjKSBjb3B5cmlnaHQgMjAxNiBvcmlnaW5hbCBhbmQgY3VycmVudCBhdXRob3JzICovXG4vKiogQGF1dGhvciBJYW4gSG9mbWFubi1IaWNrcyAoZXZpbCkgKi9cblxudmFyIHRvU3RyaW5nID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZ1xuXG4vLyBpc09iamVjdCA6IGEgLT4gQm9vbGVhblxuZnVuY3Rpb24gaXNPYmplY3QoeCkge1xuICByZXR1cm4gISF4XG4gICAgJiYgdG9TdHJpbmcuY2FsbCh4KSA9PT0gJ1tvYmplY3QgT2JqZWN0XSdcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc09iamVjdFxuIiwiLyoqIEBsaWNlbnNlIElTQyBMaWNlbnNlIChjKSBjb3B5cmlnaHQgMjAxNiBvcmlnaW5hbCBhbmQgY3VycmVudCBhdXRob3JzICovXG4vKiogQGF1dGhvciBJYW4gSG9mbWFubi1IaWNrcyAoZXZpbCkgKi9cblxuLy8gaXNTdHJpbmcgOiBhIC0+IEJvb2xlYW5cbmZ1bmN0aW9uIGlzU3RyaW5nKHgpIHtcbiAgcmV0dXJuIHR5cGVvZiB4ID09PSAnc3RyaW5nJ1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzU3RyaW5nXG4iLCIvKiogQGxpY2Vuc2UgSVNDIExpY2Vuc2UgKGMpIGNvcHlyaWdodCAyMDE3IG9yaWdpbmFsIGFuZCBjdXJyZW50IGF1dGhvcnMgKi9cbi8qKiBAYXV0aG9yIElhbiBIb2ZtYW5uLUhpY2tzIChldmlsKSAqL1xuXG52YXIgX3R5cGVzID0ge1xuICAndW5rJzogZnVuY3Rpb24gKCkgeyByZXR1cm4gJ3Vua25vd24nOyB9LFxuICAnQWxsJzogZnVuY3Rpb24gKCkgeyByZXR1cm4gJ0FsbCc7IH0sXG4gICdBbnknOiBmdW5jdGlvbiAoKSB7IHJldHVybiAnQW55JzsgfSxcbiAgJ0Fycm93JzogZnVuY3Rpb24gKCkgeyByZXR1cm4gJ0Fycm93JzsgfSxcbiAgJ0Fzc2lnbic6IGZ1bmN0aW9uICgpIHsgcmV0dXJuICdBc3NpZ24nOyB9LFxuICAnQXN5bmMnOiBmdW5jdGlvbiAoKSB7IHJldHVybiAnQXN5bmMnOyB9LFxuICAnQ29uc3QnOiBmdW5jdGlvbiAoaW5uZXIpIHsgcmV0dXJuIChcIkNvbnN0KFwiICsgaW5uZXIgKyBcIilcIik7IH0sXG4gICdFaXRoZXInOiBmdW5jdGlvbiAoKSB7IHJldHVybiAnRWl0aGVyJzsgfSxcbiAgJ0VuZG8nOiBmdW5jdGlvbiAoKSB7IHJldHVybiAnRW5kbyc7IH0sXG4gICdFcXVpdic6IGZ1bmN0aW9uICgpIHsgcmV0dXJuICdFcXVpdic7IH0sXG4gICdGaXJzdCc6IGZ1bmN0aW9uICgpIHsgcmV0dXJuICdGaXJzdCc7IH0sXG4gICdJZGVudGl0eSc6IGZ1bmN0aW9uICgpIHsgcmV0dXJuICdJZGVudGl0eSc7IH0sXG4gICdJTyc6IGZ1bmN0aW9uICgpIHsgcmV0dXJuICdJTyc7IH0sXG4gICdMYXN0JzogZnVuY3Rpb24gKCkgeyByZXR1cm4gJ0xhc3QnOyB9LFxuICAnTGlzdCc6IGZ1bmN0aW9uICgpIHsgcmV0dXJuICdMaXN0JzsgfSxcbiAgJ01heCc6IGZ1bmN0aW9uICgpIHsgcmV0dXJuICdNYXgnOyB9LFxuICAnTWF5YmUnOiBmdW5jdGlvbiAoKSB7IHJldHVybiAnTWF5YmUnOyB9LFxuICAnTWluJzogZnVuY3Rpb24gKCkgeyByZXR1cm4gJ01pbic7IH0sXG4gICdQYWlyJzogZnVuY3Rpb24gKCkgeyByZXR1cm4gJ1BhaXInOyB9LFxuICAnUHJlZCc6IGZ1bmN0aW9uICgpIHsgcmV0dXJuICdQcmVkJzsgfSxcbiAgJ1Byb2QnOiBmdW5jdGlvbiAoKSB7IHJldHVybiAnUHJvZCc7IH0sXG4gICdSZWFkZXInOiBmdW5jdGlvbiAoKSB7IHJldHVybiAnUmVhZGVyJzsgfSxcbiAgJ1Jlc3VsdCc6IGZ1bmN0aW9uICgpIHsgcmV0dXJuICdSZXN1bHQnOyB9LFxuICAnU3Rhcic6IGZ1bmN0aW9uICgpIHsgcmV0dXJuICdTdGFyJzsgfSxcbiAgJ1N0YXRlJzogZnVuY3Rpb24gKCkgeyByZXR1cm4gJ1N0YXRlJzsgfSxcbiAgJ1N1bSc6IGZ1bmN0aW9uICgpIHsgcmV0dXJuICdTdW0nOyB9LFxuICAnVHVwbGUnOiBmdW5jdGlvbiAobikgeyByZXR1cm4gKG4gKyBcIi1UdXBsZVwiKTsgfSxcbiAgJ1VuaXQnOiBmdW5jdGlvbiAoKSB7IHJldHVybiAnVW5pdCc7IH0sXG4gICdXcml0ZXInOiBmdW5jdGlvbiAoKSB7IHJldHVybiAnV3JpdGVyJzsgfVxufVxuXG52YXIgdHlwZSA9XG4gIGZ1bmN0aW9uICh0eXBlKSB7IHJldHVybiBfdHlwZXNbdHlwZV0gfHwgX3R5cGVzWyd1bmsnXTsgfVxuXG52YXIgcHJveHkgPVxuICBmdW5jdGlvbiAodCwgY3R4KSB7IHJldHVybiAoeyB0eXBlOiBmdW5jdGlvbiAoKSB7IHJldHVybiB0eXBlKHQpKGN0eCk7IH0gfSk7IH1cblxudmFyIHR5cGVGbiA9IGZ1bmN0aW9uICh0LCB2ZXIsIGN0eCkge1xuICB2YXIgdHlwZVN0ciA9IHR5cGUodCkoY3R4KVxuICByZXR1cm4gKFwiY3JvY2tzL1wiICsgdHlwZVN0ciArIFwiQFwiICsgKHZlciB8fCAwKSlcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIHByb3h5OiBwcm94eSwgdHlwZTogdHlwZSwgdHlwZUZuOiB0eXBlRm5cbn1cbiIsIi8vIHNoaW0gZm9yIHVzaW5nIHByb2Nlc3MgaW4gYnJvd3NlclxudmFyIHByb2Nlc3MgPSBtb2R1bGUuZXhwb3J0cyA9IHt9O1xuXG4vLyBjYWNoZWQgZnJvbSB3aGF0ZXZlciBnbG9iYWwgaXMgcHJlc2VudCBzbyB0aGF0IHRlc3QgcnVubmVycyB0aGF0IHN0dWIgaXRcbi8vIGRvbid0IGJyZWFrIHRoaW5ncy4gIEJ1dCB3ZSBuZWVkIHRvIHdyYXAgaXQgaW4gYSB0cnkgY2F0Y2ggaW4gY2FzZSBpdCBpc1xuLy8gd3JhcHBlZCBpbiBzdHJpY3QgbW9kZSBjb2RlIHdoaWNoIGRvZXNuJ3QgZGVmaW5lIGFueSBnbG9iYWxzLiAgSXQncyBpbnNpZGUgYVxuLy8gZnVuY3Rpb24gYmVjYXVzZSB0cnkvY2F0Y2hlcyBkZW9wdGltaXplIGluIGNlcnRhaW4gZW5naW5lcy5cblxudmFyIGNhY2hlZFNldFRpbWVvdXQ7XG52YXIgY2FjaGVkQ2xlYXJUaW1lb3V0O1xuXG5mdW5jdGlvbiBkZWZhdWx0U2V0VGltb3V0KCkge1xuICAgIHRocm93IG5ldyBFcnJvcignc2V0VGltZW91dCBoYXMgbm90IGJlZW4gZGVmaW5lZCcpO1xufVxuZnVuY3Rpb24gZGVmYXVsdENsZWFyVGltZW91dCAoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdjbGVhclRpbWVvdXQgaGFzIG5vdCBiZWVuIGRlZmluZWQnKTtcbn1cbihmdW5jdGlvbiAoKSB7XG4gICAgdHJ5IHtcbiAgICAgICAgaWYgKHR5cGVvZiBzZXRUaW1lb3V0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBjYWNoZWRTZXRUaW1lb3V0ID0gc2V0VGltZW91dDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNhY2hlZFNldFRpbWVvdXQgPSBkZWZhdWx0U2V0VGltb3V0O1xuICAgICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjYWNoZWRTZXRUaW1lb3V0ID0gZGVmYXVsdFNldFRpbW91dDtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgICAgaWYgKHR5cGVvZiBjbGVhclRpbWVvdXQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGNhY2hlZENsZWFyVGltZW91dCA9IGNsZWFyVGltZW91dDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNhY2hlZENsZWFyVGltZW91dCA9IGRlZmF1bHRDbGVhclRpbWVvdXQ7XG4gICAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNhY2hlZENsZWFyVGltZW91dCA9IGRlZmF1bHRDbGVhclRpbWVvdXQ7XG4gICAgfVxufSAoKSlcbmZ1bmN0aW9uIHJ1blRpbWVvdXQoZnVuKSB7XG4gICAgaWYgKGNhY2hlZFNldFRpbWVvdXQgPT09IHNldFRpbWVvdXQpIHtcbiAgICAgICAgLy9ub3JtYWwgZW52aXJvbWVudHMgaW4gc2FuZSBzaXR1YXRpb25zXG4gICAgICAgIHJldHVybiBzZXRUaW1lb3V0KGZ1biwgMCk7XG4gICAgfVxuICAgIC8vIGlmIHNldFRpbWVvdXQgd2Fzbid0IGF2YWlsYWJsZSBidXQgd2FzIGxhdHRlciBkZWZpbmVkXG4gICAgaWYgKChjYWNoZWRTZXRUaW1lb3V0ID09PSBkZWZhdWx0U2V0VGltb3V0IHx8ICFjYWNoZWRTZXRUaW1lb3V0KSAmJiBzZXRUaW1lb3V0KSB7XG4gICAgICAgIGNhY2hlZFNldFRpbWVvdXQgPSBzZXRUaW1lb3V0O1xuICAgICAgICByZXR1cm4gc2V0VGltZW91dChmdW4sIDApO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgICAvLyB3aGVuIHdoZW4gc29tZWJvZHkgaGFzIHNjcmV3ZWQgd2l0aCBzZXRUaW1lb3V0IGJ1dCBubyBJLkUuIG1hZGRuZXNzXG4gICAgICAgIHJldHVybiBjYWNoZWRTZXRUaW1lb3V0KGZ1biwgMCk7XG4gICAgfSBjYXRjaChlKXtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIC8vIFdoZW4gd2UgYXJlIGluIEkuRS4gYnV0IHRoZSBzY3JpcHQgaGFzIGJlZW4gZXZhbGVkIHNvIEkuRS4gZG9lc24ndCB0cnVzdCB0aGUgZ2xvYmFsIG9iamVjdCB3aGVuIGNhbGxlZCBub3JtYWxseVxuICAgICAgICAgICAgcmV0dXJuIGNhY2hlZFNldFRpbWVvdXQuY2FsbChudWxsLCBmdW4sIDApO1xuICAgICAgICB9IGNhdGNoKGUpe1xuICAgICAgICAgICAgLy8gc2FtZSBhcyBhYm92ZSBidXQgd2hlbiBpdCdzIGEgdmVyc2lvbiBvZiBJLkUuIHRoYXQgbXVzdCBoYXZlIHRoZSBnbG9iYWwgb2JqZWN0IGZvciAndGhpcycsIGhvcGZ1bGx5IG91ciBjb250ZXh0IGNvcnJlY3Qgb3RoZXJ3aXNlIGl0IHdpbGwgdGhyb3cgYSBnbG9iYWwgZXJyb3JcbiAgICAgICAgICAgIHJldHVybiBjYWNoZWRTZXRUaW1lb3V0LmNhbGwodGhpcywgZnVuLCAwKTtcbiAgICAgICAgfVxuICAgIH1cblxuXG59XG5mdW5jdGlvbiBydW5DbGVhclRpbWVvdXQobWFya2VyKSB7XG4gICAgaWYgKGNhY2hlZENsZWFyVGltZW91dCA9PT0gY2xlYXJUaW1lb3V0KSB7XG4gICAgICAgIC8vbm9ybWFsIGVudmlyb21lbnRzIGluIHNhbmUgc2l0dWF0aW9uc1xuICAgICAgICByZXR1cm4gY2xlYXJUaW1lb3V0KG1hcmtlcik7XG4gICAgfVxuICAgIC8vIGlmIGNsZWFyVGltZW91dCB3YXNuJ3QgYXZhaWxhYmxlIGJ1dCB3YXMgbGF0dGVyIGRlZmluZWRcbiAgICBpZiAoKGNhY2hlZENsZWFyVGltZW91dCA9PT0gZGVmYXVsdENsZWFyVGltZW91dCB8fCAhY2FjaGVkQ2xlYXJUaW1lb3V0KSAmJiBjbGVhclRpbWVvdXQpIHtcbiAgICAgICAgY2FjaGVkQ2xlYXJUaW1lb3V0ID0gY2xlYXJUaW1lb3V0O1xuICAgICAgICByZXR1cm4gY2xlYXJUaW1lb3V0KG1hcmtlcik7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIC8vIHdoZW4gd2hlbiBzb21lYm9keSBoYXMgc2NyZXdlZCB3aXRoIHNldFRpbWVvdXQgYnV0IG5vIEkuRS4gbWFkZG5lc3NcbiAgICAgICAgcmV0dXJuIGNhY2hlZENsZWFyVGltZW91dChtYXJrZXIpO1xuICAgIH0gY2F0Y2ggKGUpe1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gV2hlbiB3ZSBhcmUgaW4gSS5FLiBidXQgdGhlIHNjcmlwdCBoYXMgYmVlbiBldmFsZWQgc28gSS5FLiBkb2Vzbid0ICB0cnVzdCB0aGUgZ2xvYmFsIG9iamVjdCB3aGVuIGNhbGxlZCBub3JtYWxseVxuICAgICAgICAgICAgcmV0dXJuIGNhY2hlZENsZWFyVGltZW91dC5jYWxsKG51bGwsIG1hcmtlcik7XG4gICAgICAgIH0gY2F0Y2ggKGUpe1xuICAgICAgICAgICAgLy8gc2FtZSBhcyBhYm92ZSBidXQgd2hlbiBpdCdzIGEgdmVyc2lvbiBvZiBJLkUuIHRoYXQgbXVzdCBoYXZlIHRoZSBnbG9iYWwgb2JqZWN0IGZvciAndGhpcycsIGhvcGZ1bGx5IG91ciBjb250ZXh0IGNvcnJlY3Qgb3RoZXJ3aXNlIGl0IHdpbGwgdGhyb3cgYSBnbG9iYWwgZXJyb3IuXG4gICAgICAgICAgICAvLyBTb21lIHZlcnNpb25zIG9mIEkuRS4gaGF2ZSBkaWZmZXJlbnQgcnVsZXMgZm9yIGNsZWFyVGltZW91dCB2cyBzZXRUaW1lb3V0XG4gICAgICAgICAgICByZXR1cm4gY2FjaGVkQ2xlYXJUaW1lb3V0LmNhbGwodGhpcywgbWFya2VyKTtcbiAgICAgICAgfVxuICAgIH1cblxuXG5cbn1cbnZhciBxdWV1ZSA9IFtdO1xudmFyIGRyYWluaW5nID0gZmFsc2U7XG52YXIgY3VycmVudFF1ZXVlO1xudmFyIHF1ZXVlSW5kZXggPSAtMTtcblxuZnVuY3Rpb24gY2xlYW5VcE5leHRUaWNrKCkge1xuICAgIGlmICghZHJhaW5pbmcgfHwgIWN1cnJlbnRRdWV1ZSkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGRyYWluaW5nID0gZmFsc2U7XG4gICAgaWYgKGN1cnJlbnRRdWV1ZS5sZW5ndGgpIHtcbiAgICAgICAgcXVldWUgPSBjdXJyZW50UXVldWUuY29uY2F0KHF1ZXVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBxdWV1ZUluZGV4ID0gLTE7XG4gICAgfVxuICAgIGlmIChxdWV1ZS5sZW5ndGgpIHtcbiAgICAgICAgZHJhaW5RdWV1ZSgpO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gZHJhaW5RdWV1ZSgpIHtcbiAgICBpZiAoZHJhaW5pbmcpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB2YXIgdGltZW91dCA9IHJ1blRpbWVvdXQoY2xlYW5VcE5leHRUaWNrKTtcbiAgICBkcmFpbmluZyA9IHRydWU7XG5cbiAgICB2YXIgbGVuID0gcXVldWUubGVuZ3RoO1xuICAgIHdoaWxlKGxlbikge1xuICAgICAgICBjdXJyZW50UXVldWUgPSBxdWV1ZTtcbiAgICAgICAgcXVldWUgPSBbXTtcbiAgICAgICAgd2hpbGUgKCsrcXVldWVJbmRleCA8IGxlbikge1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRRdWV1ZSkge1xuICAgICAgICAgICAgICAgIGN1cnJlbnRRdWV1ZVtxdWV1ZUluZGV4XS5ydW4oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBxdWV1ZUluZGV4ID0gLTE7XG4gICAgICAgIGxlbiA9IHF1ZXVlLmxlbmd0aDtcbiAgICB9XG4gICAgY3VycmVudFF1ZXVlID0gbnVsbDtcbiAgICBkcmFpbmluZyA9IGZhbHNlO1xuICAgIHJ1bkNsZWFyVGltZW91dCh0aW1lb3V0KTtcbn1cblxucHJvY2Vzcy5uZXh0VGljayA9IGZ1bmN0aW9uIChmdW4pIHtcbiAgICB2YXIgYXJncyA9IG5ldyBBcnJheShhcmd1bWVudHMubGVuZ3RoIC0gMSk7XG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPiAxKSB7XG4gICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBhcmdzW2kgLSAxXSA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBxdWV1ZS5wdXNoKG5ldyBJdGVtKGZ1biwgYXJncykpO1xuICAgIGlmIChxdWV1ZS5sZW5ndGggPT09IDEgJiYgIWRyYWluaW5nKSB7XG4gICAgICAgIHJ1blRpbWVvdXQoZHJhaW5RdWV1ZSk7XG4gICAgfVxufTtcblxuLy8gdjggbGlrZXMgcHJlZGljdGlibGUgb2JqZWN0c1xuZnVuY3Rpb24gSXRlbShmdW4sIGFycmF5KSB7XG4gICAgdGhpcy5mdW4gPSBmdW47XG4gICAgdGhpcy5hcnJheSA9IGFycmF5O1xufVxuSXRlbS5wcm90b3R5cGUucnVuID0gZnVuY3Rpb24gKCkge1xuICAgIHRoaXMuZnVuLmFwcGx5KG51bGwsIHRoaXMuYXJyYXkpO1xufTtcbnByb2Nlc3MudGl0bGUgPSAnYnJvd3Nlcic7XG5wcm9jZXNzLmJyb3dzZXIgPSB0cnVlO1xucHJvY2Vzcy5lbnYgPSB7fTtcbnByb2Nlc3MuYXJndiA9IFtdO1xucHJvY2Vzcy52ZXJzaW9uID0gJyc7IC8vIGVtcHR5IHN0cmluZyB0byBhdm9pZCByZWdleHAgaXNzdWVzXG5wcm9jZXNzLnZlcnNpb25zID0ge307XG5cbmZ1bmN0aW9uIG5vb3AoKSB7fVxuXG5wcm9jZXNzLm9uID0gbm9vcDtcbnByb2Nlc3MuYWRkTGlzdGVuZXIgPSBub29wO1xucHJvY2Vzcy5vbmNlID0gbm9vcDtcbnByb2Nlc3Mub2ZmID0gbm9vcDtcbnByb2Nlc3MucmVtb3ZlTGlzdGVuZXIgPSBub29wO1xucHJvY2Vzcy5yZW1vdmVBbGxMaXN0ZW5lcnMgPSBub29wO1xucHJvY2Vzcy5lbWl0ID0gbm9vcDtcbnByb2Nlc3MucHJlcGVuZExpc3RlbmVyID0gbm9vcDtcbnByb2Nlc3MucHJlcGVuZE9uY2VMaXN0ZW5lciA9IG5vb3A7XG5cbnByb2Nlc3MubGlzdGVuZXJzID0gZnVuY3Rpb24gKG5hbWUpIHsgcmV0dXJuIFtdIH1cblxucHJvY2Vzcy5iaW5kaW5nID0gZnVuY3Rpb24gKG5hbWUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3Byb2Nlc3MuYmluZGluZyBpcyBub3Qgc3VwcG9ydGVkJyk7XG59O1xuXG5wcm9jZXNzLmN3ZCA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuICcvJyB9O1xucHJvY2Vzcy5jaGRpciA9IGZ1bmN0aW9uIChkaXIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3Byb2Nlc3MuY2hkaXIgaXMgbm90IHN1cHBvcnRlZCcpO1xufTtcbnByb2Nlc3MudW1hc2sgPSBmdW5jdGlvbigpIHsgcmV0dXJuIDA7IH07XG4iLCIvLyA3LjEuMSBUb1ByaW1pdGl2ZShpbnB1dCBbLCBQcmVmZXJyZWRUeXBlXSlcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4vX2lzLW9iamVjdCcpO1xuLy8gaW5zdGVhZCBvZiB0aGUgRVM2IHNwZWMgdmVyc2lvbiwgd2UgZGlkbid0IGltcGxlbWVudCBAQHRvUHJpbWl0aXZlIGNhc2Vcbi8vIGFuZCB0aGUgc2Vjb25kIGFyZ3VtZW50IC0gZmxhZyAtIHByZWZlcnJlZCB0eXBlIGlzIGEgc3RyaW5nXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCwgUykge1xuICBpZiAoIWlzT2JqZWN0KGl0KSkgcmV0dXJuIGl0O1xuICB2YXIgZm4sIHZhbDtcbiAgaWYgKFMgJiYgdHlwZW9mIChmbiA9IGl0LnRvU3RyaW5nKSA9PSAnZnVuY3Rpb24nICYmICFpc09iamVjdCh2YWwgPSBmbi5jYWxsKGl0KSkpIHJldHVybiB2YWw7XG4gIGlmICh0eXBlb2YgKGZuID0gaXQudmFsdWVPZikgPT0gJ2Z1bmN0aW9uJyAmJiAhaXNPYmplY3QodmFsID0gZm4uY2FsbChpdCkpKSByZXR1cm4gdmFsO1xuICBpZiAoIVMgJiYgdHlwZW9mIChmbiA9IGl0LnRvU3RyaW5nKSA9PSAnZnVuY3Rpb24nICYmICFpc09iamVjdCh2YWwgPSBmbi5jYWxsKGl0KSkpIHJldHVybiB2YWw7XG4gIHRocm93IFR5cGVFcnJvcihcIkNhbid0IGNvbnZlcnQgb2JqZWN0IHRvIHByaW1pdGl2ZSB2YWx1ZVwiKTtcbn07XG4iLCIvLyA3LjIuMSBSZXF1aXJlT2JqZWN0Q29lcmNpYmxlKGFyZ3VtZW50KVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgaWYgKGl0ID09IHVuZGVmaW5lZCkgdGhyb3cgVHlwZUVycm9yKFwiQ2FuJ3QgY2FsbCBtZXRob2Qgb24gIFwiICsgaXQpO1xuICByZXR1cm4gaXQ7XG59O1xuIiwiLy8gNy4xLjQgVG9JbnRlZ2VyXG52YXIgY2VpbCA9IE1hdGguY2VpbDtcbnZhciBmbG9vciA9IE1hdGguZmxvb3I7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gaXNOYU4oaXQgPSAraXQpID8gMCA6IChpdCA+IDAgPyBmbG9vciA6IGNlaWwpKGl0KTtcbn07XG4iLCJ2YXIgc2hhcmVkID0gcmVxdWlyZSgnLi9fc2hhcmVkJykoJ2tleXMnKTtcbnZhciB1aWQgPSByZXF1aXJlKCcuL191aWQnKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSkge1xuICByZXR1cm4gc2hhcmVkW2tleV0gfHwgKHNoYXJlZFtrZXldID0gdWlkKGtleSkpO1xufTtcbiIsInZhciBjb3JlID0gcmVxdWlyZSgnLi9fY29yZScpO1xudmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpO1xudmFyIFNIQVJFRCA9ICdfX2NvcmUtanNfc2hhcmVkX18nO1xudmFyIHN0b3JlID0gZ2xvYmFsW1NIQVJFRF0gfHwgKGdsb2JhbFtTSEFSRURdID0ge30pO1xuXG4obW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xuICByZXR1cm4gc3RvcmVba2V5XSB8fCAoc3RvcmVba2V5XSA9IHZhbHVlICE9PSB1bmRlZmluZWQgPyB2YWx1ZSA6IHt9KTtcbn0pKCd2ZXJzaW9ucycsIFtdKS5wdXNoKHtcbiAgdmVyc2lvbjogY29yZS52ZXJzaW9uLFxuICBtb2RlOiByZXF1aXJlKCcuL19saWJyYXJ5JykgPyAncHVyZScgOiAnZ2xvYmFsJyxcbiAgY29weXJpZ2h0OiAnwqkgMjAyMCBEZW5pcyBQdXNoa2FyZXYgKHpsb2lyb2NrLnJ1KSdcbn0pO1xuIiwiLy8gSUUgOC0gZG9uJ3QgZW51bSBidWcga2V5c1xubW9kdWxlLmV4cG9ydHMgPSAoXG4gICdjb25zdHJ1Y3RvcixoYXNPd25Qcm9wZXJ0eSxpc1Byb3RvdHlwZU9mLHByb3BlcnR5SXNFbnVtZXJhYmxlLHRvTG9jYWxlU3RyaW5nLHRvU3RyaW5nLHZhbHVlT2YnXG4pLnNwbGl0KCcsJyk7XG4iLCJleHBvcnRzLmYgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzO1xuIiwiLy8gNy4xLjEzIFRvT2JqZWN0KGFyZ3VtZW50KVxudmFyIGRlZmluZWQgPSByZXF1aXJlKCcuL19kZWZpbmVkJyk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gT2JqZWN0KGRlZmluZWQoaXQpKTtcbn07XG4iLCJtb2R1bGUuZXhwb3J0cyA9IHt9O1xuIiwiLy8gMTkuMS4yLjIgLyAxNS4yLjMuNSBPYmplY3QuY3JlYXRlKE8gWywgUHJvcGVydGllc10pXG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuL19hbi1vYmplY3QnKTtcbnZhciBkUHMgPSByZXF1aXJlKCcuL19vYmplY3QtZHBzJyk7XG52YXIgZW51bUJ1Z0tleXMgPSByZXF1aXJlKCcuL19lbnVtLWJ1Zy1rZXlzJyk7XG52YXIgSUVfUFJPVE8gPSByZXF1aXJlKCcuL19zaGFyZWQta2V5JykoJ0lFX1BST1RPJyk7XG52YXIgRW1wdHkgPSBmdW5jdGlvbiAoKSB7IC8qIGVtcHR5ICovIH07XG52YXIgUFJPVE9UWVBFID0gJ3Byb3RvdHlwZSc7XG5cbi8vIENyZWF0ZSBvYmplY3Qgd2l0aCBmYWtlIGBudWxsYCBwcm90b3R5cGU6IHVzZSBpZnJhbWUgT2JqZWN0IHdpdGggY2xlYXJlZCBwcm90b3R5cGVcbnZhciBjcmVhdGVEaWN0ID0gZnVuY3Rpb24gKCkge1xuICAvLyBUaHJhc2gsIHdhc3RlIGFuZCBzb2RvbXk6IElFIEdDIGJ1Z1xuICB2YXIgaWZyYW1lID0gcmVxdWlyZSgnLi9fZG9tLWNyZWF0ZScpKCdpZnJhbWUnKTtcbiAgdmFyIGkgPSBlbnVtQnVnS2V5cy5sZW5ndGg7XG4gIHZhciBsdCA9ICc8JztcbiAgdmFyIGd0ID0gJz4nO1xuICB2YXIgaWZyYW1lRG9jdW1lbnQ7XG4gIGlmcmFtZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICByZXF1aXJlKCcuL19odG1sJykuYXBwZW5kQ2hpbGQoaWZyYW1lKTtcbiAgaWZyYW1lLnNyYyA9ICdqYXZhc2NyaXB0Oic7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tc2NyaXB0LXVybFxuICAvLyBjcmVhdGVEaWN0ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3cuT2JqZWN0O1xuICAvLyBodG1sLnJlbW92ZUNoaWxkKGlmcmFtZSk7XG4gIGlmcmFtZURvY3VtZW50ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQ7XG4gIGlmcmFtZURvY3VtZW50Lm9wZW4oKTtcbiAgaWZyYW1lRG9jdW1lbnQud3JpdGUobHQgKyAnc2NyaXB0JyArIGd0ICsgJ2RvY3VtZW50LkY9T2JqZWN0JyArIGx0ICsgJy9zY3JpcHQnICsgZ3QpO1xuICBpZnJhbWVEb2N1bWVudC5jbG9zZSgpO1xuICBjcmVhdGVEaWN0ID0gaWZyYW1lRG9jdW1lbnQuRjtcbiAgd2hpbGUgKGktLSkgZGVsZXRlIGNyZWF0ZURpY3RbUFJPVE9UWVBFXVtlbnVtQnVnS2V5c1tpXV07XG4gIHJldHVybiBjcmVhdGVEaWN0KCk7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IE9iamVjdC5jcmVhdGUgfHwgZnVuY3Rpb24gY3JlYXRlKE8sIFByb3BlcnRpZXMpIHtcbiAgdmFyIHJlc3VsdDtcbiAgaWYgKE8gIT09IG51bGwpIHtcbiAgICBFbXB0eVtQUk9UT1RZUEVdID0gYW5PYmplY3QoTyk7XG4gICAgcmVzdWx0ID0gbmV3IEVtcHR5KCk7XG4gICAgRW1wdHlbUFJPVE9UWVBFXSA9IG51bGw7XG4gICAgLy8gYWRkIFwiX19wcm90b19fXCIgZm9yIE9iamVjdC5nZXRQcm90b3R5cGVPZiBwb2x5ZmlsbFxuICAgIHJlc3VsdFtJRV9QUk9UT10gPSBPO1xuICB9IGVsc2UgcmVzdWx0ID0gY3JlYXRlRGljdCgpO1xuICByZXR1cm4gUHJvcGVydGllcyA9PT0gdW5kZWZpbmVkID8gcmVzdWx0IDogZFBzKHJlc3VsdCwgUHJvcGVydGllcyk7XG59O1xuIiwidmFyIGRlZiA9IHJlcXVpcmUoJy4vX29iamVjdC1kcCcpLmY7XG52YXIgaGFzID0gcmVxdWlyZSgnLi9faGFzJyk7XG52YXIgVEFHID0gcmVxdWlyZSgnLi9fd2tzJykoJ3RvU3RyaW5nVGFnJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0LCB0YWcsIHN0YXQpIHtcbiAgaWYgKGl0ICYmICFoYXMoaXQgPSBzdGF0ID8gaXQgOiBpdC5wcm90b3R5cGUsIFRBRykpIGRlZihpdCwgVEFHLCB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSwgdmFsdWU6IHRhZyB9KTtcbn07XG4iLCJleHBvcnRzLmYgPSByZXF1aXJlKCcuL193a3MnKTtcbiIsInZhciBnbG9iYWwgPSByZXF1aXJlKCcuL19nbG9iYWwnKTtcbnZhciBjb3JlID0gcmVxdWlyZSgnLi9fY29yZScpO1xudmFyIExJQlJBUlkgPSByZXF1aXJlKCcuL19saWJyYXJ5Jyk7XG52YXIgd2tzRXh0ID0gcmVxdWlyZSgnLi9fd2tzLWV4dCcpO1xudmFyIGRlZmluZVByb3BlcnR5ID0gcmVxdWlyZSgnLi9fb2JqZWN0LWRwJykuZjtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG5hbWUpIHtcbiAgdmFyICRTeW1ib2wgPSBjb3JlLlN5bWJvbCB8fCAoY29yZS5TeW1ib2wgPSBMSUJSQVJZID8ge30gOiBnbG9iYWwuU3ltYm9sIHx8IHt9KTtcbiAgaWYgKG5hbWUuY2hhckF0KDApICE9ICdfJyAmJiAhKG5hbWUgaW4gJFN5bWJvbCkpIGRlZmluZVByb3BlcnR5KCRTeW1ib2wsIG5hbWUsIHsgdmFsdWU6IHdrc0V4dC5mKG5hbWUpIH0pO1xufTtcbiIsIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSB2b2lkIDA7XG5cbnZhciBSZWFjdCA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5cbnZhciBQcm9wVHlwZXMgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicHJvcC10eXBlc1wiKSk7XG5cbnZhciBfZGVmYXVsdCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vZGVmYXVsdFwiKSk7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7IGlmICh0eXBlb2YgV2Vha01hcCAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gbnVsbDsgdmFyIGNhY2hlID0gbmV3IFdlYWtNYXAoKTsgX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlID0gZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyByZXR1cm4gY2FjaGU7IH07IHJldHVybiBjYWNoZTsgfVxuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChvYmopIHsgaWYgKG9iaiAmJiBvYmouX19lc01vZHVsZSkgeyByZXR1cm4gb2JqOyB9IGlmIChvYmogPT09IG51bGwgfHwgX3R5cGVvZihvYmopICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiBvYmogIT09IFwiZnVuY3Rpb25cIikgeyByZXR1cm4geyBcImRlZmF1bHRcIjogb2JqIH07IH0gdmFyIGNhY2hlID0gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCk7IGlmIChjYWNoZSAmJiBjYWNoZS5oYXMob2JqKSkgeyByZXR1cm4gY2FjaGUuZ2V0KG9iaik7IH0gdmFyIG5ld09iaiA9IHt9OyB2YXIgaGFzUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7IGZvciAodmFyIGtleSBpbiBvYmopIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHsgdmFyIGRlc2MgPSBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IG51bGw7IGlmIChkZXNjICYmIChkZXNjLmdldCB8fCBkZXNjLnNldCkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTsgfSBlbHNlIHsgbmV3T2JqW2tleV0gPSBvYmpba2V5XTsgfSB9IH0gbmV3T2JqW1wiZGVmYXVsdFwiXSA9IG9iajsgaWYgKGNhY2hlKSB7IGNhY2hlLnNldChvYmosIG5ld09iaik7IH0gcmV0dXJuIG5ld09iajsgfVxuXG5mdW5jdGlvbiBfdHlwZW9mKG9iaikgeyBcIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mXCI7IGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIHR5cGVvZiBvYmo7IH07IH0gZWxzZSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajsgfTsgfSByZXR1cm4gX3R5cGVvZihvYmopOyB9XG5cbmZ1bmN0aW9uIF9leHRlbmRzKCkgeyBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07IHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH1cblxuZnVuY3Rpb24gX2NyZWF0ZUNsYXNzKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIF9zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcyk7IH1cblxuZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgX3NldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IGZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7IG8uX19wcm90b19fID0gcDsgcmV0dXJuIG87IH07IHJldHVybiBfc2V0UHJvdG90eXBlT2YobywgcCk7IH1cblxuZnVuY3Rpb24gX2NyZWF0ZVN1cGVyKERlcml2ZWQpIHsgdmFyIGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QgPSBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCk7IHJldHVybiBmdW5jdGlvbiBfY3JlYXRlU3VwZXJJbnRlcm5hbCgpIHsgdmFyIFN1cGVyID0gX2dldFByb3RvdHlwZU9mKERlcml2ZWQpLCByZXN1bHQ7IGlmIChoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KSB7IHZhciBOZXdUYXJnZXQgPSBfZ2V0UHJvdG90eXBlT2YodGhpcykuY29uc3RydWN0b3I7IHJlc3VsdCA9IFJlZmxlY3QuY29uc3RydWN0KFN1cGVyLCBhcmd1bWVudHMsIE5ld1RhcmdldCk7IH0gZWxzZSB7IHJlc3VsdCA9IFN1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH0gcmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIHJlc3VsdCk7IH07IH1cblxuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkgeyBpZiAoY2FsbCAmJiAoX3R5cGVvZihjYWxsKSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSkgeyByZXR1cm4gY2FsbDsgfSByZXR1cm4gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKTsgfVxuXG5mdW5jdGlvbiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpIHsgaWYgKHNlbGYgPT09IHZvaWQgMCkgeyB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7IH0gcmV0dXJuIHNlbGY7IH1cblxuZnVuY3Rpb24gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpIHsgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcInVuZGVmaW5lZFwiIHx8ICFSZWZsZWN0LmNvbnN0cnVjdCkgcmV0dXJuIGZhbHNlOyBpZiAoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSkgcmV0dXJuIGZhbHNlOyBpZiAodHlwZW9mIFByb3h5ID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiB0cnVlOyB0cnkgeyBEYXRlLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFJlZmxlY3QuY29uc3RydWN0KERhdGUsIFtdLCBmdW5jdGlvbiAoKSB7fSkpOyByZXR1cm4gdHJ1ZTsgfSBjYXRjaCAoZSkgeyByZXR1cm4gZmFsc2U7IH0gfVxuXG5mdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyBfZ2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3QuZ2V0UHJvdG90eXBlT2YgOiBmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyByZXR1cm4gby5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKG8pOyB9OyByZXR1cm4gX2dldFByb3RvdHlwZU9mKG8pOyB9XG5cbnZhciBMb2NhbGVSZWNlaXZlciA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoTG9jYWxlUmVjZWl2ZXIsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gIHZhciBfc3VwZXIgPSBfY3JlYXRlU3VwZXIoTG9jYWxlUmVjZWl2ZXIpO1xuXG4gIGZ1bmN0aW9uIExvY2FsZVJlY2VpdmVyKCkge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBMb2NhbGVSZWNlaXZlcik7XG5cbiAgICByZXR1cm4gX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoTG9jYWxlUmVjZWl2ZXIsIFt7XG4gICAga2V5OiBcImdldExvY2FsZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRMb2NhbGUoKSB7XG4gICAgICB2YXIgX3RoaXMkcHJvcHMgPSB0aGlzLnByb3BzLFxuICAgICAgICAgIGNvbXBvbmVudE5hbWUgPSBfdGhpcyRwcm9wcy5jb21wb25lbnROYW1lLFxuICAgICAgICAgIGRlZmF1bHRMb2NhbGUgPSBfdGhpcyRwcm9wcy5kZWZhdWx0TG9jYWxlO1xuICAgICAgdmFyIGxvY2FsZSA9IGRlZmF1bHRMb2NhbGUgfHwgX2RlZmF1bHRbXCJkZWZhdWx0XCJdW2NvbXBvbmVudE5hbWUgfHwgJ2dsb2JhbCddO1xuICAgICAgdmFyIGFudExvY2FsZSA9IHRoaXMuY29udGV4dC5hbnRMb2NhbGU7XG4gICAgICB2YXIgbG9jYWxlRnJvbUNvbnRleHQgPSBjb21wb25lbnROYW1lICYmIGFudExvY2FsZSA/IGFudExvY2FsZVtjb21wb25lbnROYW1lXSA6IHt9O1xuICAgICAgcmV0dXJuIF9leHRlbmRzKF9leHRlbmRzKHt9LCB0eXBlb2YgbG9jYWxlID09PSAnZnVuY3Rpb24nID8gbG9jYWxlKCkgOiBsb2NhbGUpLCBsb2NhbGVGcm9tQ29udGV4dCB8fCB7fSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImdldExvY2FsZUNvZGVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0TG9jYWxlQ29kZSgpIHtcbiAgICAgIHZhciBhbnRMb2NhbGUgPSB0aGlzLmNvbnRleHQuYW50TG9jYWxlO1xuICAgICAgdmFyIGxvY2FsZUNvZGUgPSBhbnRMb2NhbGUgJiYgYW50TG9jYWxlLmxvY2FsZTsgLy8gSGFkIHVzZSBMb2NhbGVQcm92aWRlIGJ1dCBkaWRuJ3Qgc2V0IGxvY2FsZVxuXG4gICAgICBpZiAoYW50TG9jYWxlICYmIGFudExvY2FsZS5leGlzdCAmJiAhbG9jYWxlQ29kZSkge1xuICAgICAgICByZXR1cm4gX2RlZmF1bHRbXCJkZWZhdWx0XCJdLmxvY2FsZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGxvY2FsZUNvZGU7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbmRlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICByZXR1cm4gdGhpcy5wcm9wcy5jaGlsZHJlbih0aGlzLmdldExvY2FsZSgpLCB0aGlzLmdldExvY2FsZUNvZGUoKSwgdGhpcy5jb250ZXh0LmFudExvY2FsZSk7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIExvY2FsZVJlY2VpdmVyO1xufShSZWFjdC5Db21wb25lbnQpO1xuXG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IExvY2FsZVJlY2VpdmVyO1xuTG9jYWxlUmVjZWl2ZXIuZGVmYXVsdFByb3BzID0ge1xuICBjb21wb25lbnROYW1lOiAnZ2xvYmFsJ1xufTtcbkxvY2FsZVJlY2VpdmVyLmNvbnRleHRUeXBlcyA9IHtcbiAgYW50TG9jYWxlOiBQcm9wVHlwZXMub2JqZWN0XG59OyIsImltcG9ydCBfZXh0ZW5kcyBmcm9tIFwiYmFiZWwtcnVudGltZS9oZWxwZXJzL2V4dGVuZHNcIjtcbmZ1bmN0aW9uIG9taXQob2JqLCBmaWVsZHMpIHtcbiAgdmFyIHNoYWxsb3dDb3B5ID0gX2V4dGVuZHMoe30sIG9iaik7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgZmllbGRzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGtleSA9IGZpZWxkc1tpXTtcbiAgICBkZWxldGUgc2hhbGxvd0NvcHlba2V5XTtcbiAgfVxuICByZXR1cm4gc2hhbGxvd0NvcHk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IG9taXQ7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IHZvaWQgMDtcblxudmFyIFJlYWN0ID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcblxudmFyIF9yZWFjdExpZmVjeWNsZXNDb21wYXQgPSByZXF1aXJlKFwicmVhY3QtbGlmZWN5Y2xlcy1jb21wYXRcIik7XG5cbnZhciBfcmNUb29sdGlwID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmMtdG9vbHRpcFwiKSk7XG5cbnZhciBfY2xhc3NuYW1lcyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcImNsYXNzbmFtZXNcIikpO1xuXG52YXIgX3BsYWNlbWVudHMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuL3BsYWNlbWVudHNcIikpO1xuXG52YXIgX2NvbmZpZ1Byb3ZpZGVyID0gcmVxdWlyZShcIi4uL2NvbmZpZy1wcm92aWRlclwiKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgaWYgKHR5cGVvZiBXZWFrTWFwICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBudWxsOyB2YXIgY2FjaGUgPSBuZXcgV2Vha01hcCgpOyBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUgPSBmdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7IHJldHVybiBjYWNoZTsgfTsgcmV0dXJuIGNhY2hlOyB9XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKG9iaikgeyBpZiAob2JqICYmIG9iai5fX2VzTW9kdWxlKSB7IHJldHVybiBvYmo7IH0gaWYgKG9iaiA9PT0gbnVsbCB8fCBfdHlwZW9mKG9iaikgIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIG9iaiAhPT0gXCJmdW5jdGlvblwiKSB7IHJldHVybiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfSB2YXIgY2FjaGUgPSBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKTsgaWYgKGNhY2hlICYmIGNhY2hlLmhhcyhvYmopKSB7IHJldHVybiBjYWNoZS5nZXQob2JqKTsgfSB2YXIgbmV3T2JqID0ge307IHZhciBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjsgZm9yICh2YXIga2V5IGluIG9iaikgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkgeyB2YXIgZGVzYyA9IGhhc1Byb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDogbnVsbDsgaWYgKGRlc2MgJiYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpOyB9IGVsc2UgeyBuZXdPYmpba2V5XSA9IG9ialtrZXldOyB9IH0gfSBuZXdPYmpbXCJkZWZhdWx0XCJdID0gb2JqOyBpZiAoY2FjaGUpIHsgY2FjaGUuc2V0KG9iaiwgbmV3T2JqKTsgfSByZXR1cm4gbmV3T2JqOyB9XG5cbmZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjsgaWYgKHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09PSBcInN5bWJvbFwiKSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gdHlwZW9mIG9iajsgfTsgfSBlbHNlIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiBvYmogJiYgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG9iaiAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqOyB9OyB9IHJldHVybiBfdHlwZW9mKG9iaik7IH1cblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnR5KG9iaiwga2V5LCB2YWx1ZSkgeyBpZiAoa2V5IGluIG9iaikgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHsgdmFsdWU6IHZhbHVlLCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUsIHdyaXRhYmxlOiB0cnVlIH0pOyB9IGVsc2UgeyBvYmpba2V5XSA9IHZhbHVlOyB9IHJldHVybiBvYmo7IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfVxuXG5mdW5jdGlvbiBfY3JlYXRlQ2xhc3MoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7IGlmIChwcm90b1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSBcImZ1bmN0aW9uXCIgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb25cIik7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgX3NldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKTsgfVxuXG5mdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkgeyBfc2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgby5fX3Byb3RvX18gPSBwOyByZXR1cm4gbzsgfTsgcmV0dXJuIF9zZXRQcm90b3R5cGVPZihvLCBwKTsgfVxuXG5mdW5jdGlvbiBfY3JlYXRlU3VwZXIoRGVyaXZlZCkgeyB2YXIgaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCA9IF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKTsgcmV0dXJuIGZ1bmN0aW9uIF9jcmVhdGVTdXBlckludGVybmFsKCkgeyB2YXIgU3VwZXIgPSBfZ2V0UHJvdG90eXBlT2YoRGVyaXZlZCksIHJlc3VsdDsgaWYgKGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QpIHsgdmFyIE5ld1RhcmdldCA9IF9nZXRQcm90b3R5cGVPZih0aGlzKS5jb25zdHJ1Y3RvcjsgcmVzdWx0ID0gUmVmbGVjdC5jb25zdHJ1Y3QoU3VwZXIsIGFyZ3VtZW50cywgTmV3VGFyZ2V0KTsgfSBlbHNlIHsgcmVzdWx0ID0gU3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfSByZXR1cm4gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgcmVzdWx0KTsgfTsgfVxuXG5mdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLCBjYWxsKSB7IGlmIChjYWxsICYmIChfdHlwZW9mKGNhbGwpID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpKSB7IHJldHVybiBjYWxsOyB9IHJldHVybiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpOyB9XG5cbmZ1bmN0aW9uIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZikgeyBpZiAoc2VsZiA9PT0gdm9pZCAwKSB7IHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTsgfSByZXR1cm4gc2VsZjsgfVxuXG5mdW5jdGlvbiBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCkgeyBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwidW5kZWZpbmVkXCIgfHwgIVJlZmxlY3QuY29uc3RydWN0KSByZXR1cm4gZmFsc2U7IGlmIChSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKSByZXR1cm4gZmFsc2U7IGlmICh0eXBlb2YgUHJveHkgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIHRydWU7IHRyeSB7IERhdGUucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoRGF0ZSwgW10sIGZ1bmN0aW9uICgpIHt9KSk7IHJldHVybiB0cnVlOyB9IGNhdGNoIChlKSB7IHJldHVybiBmYWxzZTsgfSB9XG5cbmZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IF9nZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5nZXRQcm90b3R5cGVPZiA6IGZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IHJldHVybiBvLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2Yobyk7IH07IHJldHVybiBfZ2V0UHJvdG90eXBlT2Yobyk7IH1cblxuZnVuY3Rpb24gX2V4dGVuZHMoKSB7IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTsgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH1cblxudmFyIHNwbGl0T2JqZWN0ID0gZnVuY3Rpb24gc3BsaXRPYmplY3Qob2JqLCBrZXlzKSB7XG4gIHZhciBwaWNrZWQgPSB7fTtcblxuICB2YXIgb21pdHRlZCA9IF9leHRlbmRzKHt9LCBvYmopO1xuXG4gIGtleXMuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgaWYgKG9iaiAmJiBrZXkgaW4gb2JqKSB7XG4gICAgICBwaWNrZWRba2V5XSA9IG9ialtrZXldO1xuICAgICAgZGVsZXRlIG9taXR0ZWRba2V5XTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4ge1xuICAgIHBpY2tlZDogcGlja2VkLFxuICAgIG9taXR0ZWQ6IG9taXR0ZWRcbiAgfTtcbn07IC8vIEZpeCBUb29sdGlwIHdvbid0IGhpZGUgYXQgZGlzYWJsZWQgYnV0dG9uXG4vLyBtb3VzZSBldmVudHMgZG9uJ3QgdHJpZ2dlciBhdCBkaXNhYmxlZCBidXR0b24gaW4gQ2hyb21lXG4vLyBodHRwczovL2dpdGh1Yi5jb20vcmVhY3QtY29tcG9uZW50L3Rvb2x0aXAvaXNzdWVzLzE4XG5cblxuZnVuY3Rpb24gZ2V0RGlzYWJsZWRDb21wYXRpYmxlQ2hpbGRyZW4oZWxlbWVudCkge1xuICB2YXIgZWxlbWVudFR5cGUgPSBlbGVtZW50LnR5cGU7XG5cbiAgaWYgKChlbGVtZW50VHlwZS5fX0FOVF9CVVRUT04gPT09IHRydWUgfHwgZWxlbWVudFR5cGUuX19BTlRfU1dJVENIID09PSB0cnVlIHx8IGVsZW1lbnRUeXBlLl9fQU5UX0NIRUNLQk9YID09PSB0cnVlIHx8IGVsZW1lbnQudHlwZSA9PT0gJ2J1dHRvbicpICYmIGVsZW1lbnQucHJvcHMuZGlzYWJsZWQpIHtcbiAgICAvLyBQaWNrIHNvbWUgbGF5b3V0IHJlbGF0ZWQgc3R5bGUgcHJvcGVydGllcyB1cCB0byBzcGFuXG4gICAgLy8gUHJldmVudCBsYXlvdXQgYnVncyBsaWtlIGh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2FudC1kZXNpZ24vaXNzdWVzLzUyNTRcbiAgICB2YXIgX3NwbGl0T2JqZWN0ID0gc3BsaXRPYmplY3QoZWxlbWVudC5wcm9wcy5zdHlsZSwgWydwb3NpdGlvbicsICdsZWZ0JywgJ3JpZ2h0JywgJ3RvcCcsICdib3R0b20nLCAnZmxvYXQnLCAnZGlzcGxheScsICd6SW5kZXgnXSksXG4gICAgICAgIHBpY2tlZCA9IF9zcGxpdE9iamVjdC5waWNrZWQsXG4gICAgICAgIG9taXR0ZWQgPSBfc3BsaXRPYmplY3Qub21pdHRlZDtcblxuICAgIHZhciBzcGFuU3R5bGUgPSBfZXh0ZW5kcyhfZXh0ZW5kcyh7XG4gICAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJ1xuICAgIH0sIHBpY2tlZCksIHtcbiAgICAgIGN1cnNvcjogJ25vdC1hbGxvd2VkJyxcbiAgICAgIHdpZHRoOiBlbGVtZW50LnByb3BzLmJsb2NrID8gJzEwMCUnIDogbnVsbFxuICAgIH0pO1xuXG4gICAgdmFyIGJ1dHRvblN0eWxlID0gX2V4dGVuZHMoX2V4dGVuZHMoe30sIG9taXR0ZWQpLCB7XG4gICAgICBwb2ludGVyRXZlbnRzOiAnbm9uZSdcbiAgICB9KTtcblxuICAgIHZhciBjaGlsZCA9IC8qI19fUFVSRV9fKi9SZWFjdC5jbG9uZUVsZW1lbnQoZWxlbWVudCwge1xuICAgICAgc3R5bGU6IGJ1dHRvblN0eWxlLFxuICAgICAgY2xhc3NOYW1lOiBudWxsXG4gICAgfSk7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7XG4gICAgICBzdHlsZTogc3BhblN0eWxlLFxuICAgICAgY2xhc3NOYW1lOiBlbGVtZW50LnByb3BzLmNsYXNzTmFtZVxuICAgIH0sIGNoaWxkKTtcbiAgfVxuXG4gIHJldHVybiBlbGVtZW50O1xufVxuXG52YXIgVG9vbHRpcCA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoVG9vbHRpcCwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgdmFyIF9zdXBlciA9IF9jcmVhdGVTdXBlcihUb29sdGlwKTtcblxuICBmdW5jdGlvbiBUb29sdGlwKHByb3BzKSB7XG4gICAgdmFyIF90aGlzO1xuXG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFRvb2x0aXApO1xuXG4gICAgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBwcm9wcyk7XG5cbiAgICBfdGhpcy5vblZpc2libGVDaGFuZ2UgPSBmdW5jdGlvbiAodmlzaWJsZSkge1xuICAgICAgdmFyIG9uVmlzaWJsZUNoYW5nZSA9IF90aGlzLnByb3BzLm9uVmlzaWJsZUNoYW5nZTtcblxuICAgICAgaWYgKCEoJ3Zpc2libGUnIGluIF90aGlzLnByb3BzKSkge1xuICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgdmlzaWJsZTogX3RoaXMuaXNOb1RpdGxlKCkgPyBmYWxzZSA6IHZpc2libGVcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChvblZpc2libGVDaGFuZ2UgJiYgIV90aGlzLmlzTm9UaXRsZSgpKSB7XG4gICAgICAgIG9uVmlzaWJsZUNoYW5nZSh2aXNpYmxlKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgX3RoaXMuc2F2ZVRvb2x0aXAgPSBmdW5jdGlvbiAobm9kZSkge1xuICAgICAgX3RoaXMudG9vbHRpcCA9IG5vZGU7XG4gICAgfTsgLy8g5Yqo5oCB6K6+572u5Yqo55S754K5XG5cblxuICAgIF90aGlzLm9uUG9wdXBBbGlnbiA9IGZ1bmN0aW9uIChkb21Ob2RlLCBhbGlnbikge1xuICAgICAgdmFyIHBsYWNlbWVudHMgPSBfdGhpcy5nZXRQbGFjZW1lbnRzKCk7IC8vIOW9k+WJjei/lOWbnueahOS9jee9rlxuXG5cbiAgICAgIHZhciBwbGFjZW1lbnQgPSBPYmplY3Qua2V5cyhwbGFjZW1lbnRzKS5maWx0ZXIoZnVuY3Rpb24gKGtleSkge1xuICAgICAgICByZXR1cm4gcGxhY2VtZW50c1trZXldLnBvaW50c1swXSA9PT0gYWxpZ24ucG9pbnRzWzBdICYmIHBsYWNlbWVudHNba2V5XS5wb2ludHNbMV0gPT09IGFsaWduLnBvaW50c1sxXTtcbiAgICAgIH0pWzBdO1xuXG4gICAgICBpZiAoIXBsYWNlbWVudCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9IC8vIOagueaNruW9k+WJjeWdkOagh+iuvue9ruWKqOeUu+eCuVxuXG5cbiAgICAgIHZhciByZWN0ID0gZG9tTm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIHZhciB0cmFuc2Zvcm1PcmlnaW4gPSB7XG4gICAgICAgIHRvcDogJzUwJScsXG4gICAgICAgIGxlZnQ6ICc1MCUnXG4gICAgICB9O1xuXG4gICAgICBpZiAocGxhY2VtZW50LmluZGV4T2YoJ3RvcCcpID49IDAgfHwgcGxhY2VtZW50LmluZGV4T2YoJ0JvdHRvbScpID49IDApIHtcbiAgICAgICAgdHJhbnNmb3JtT3JpZ2luLnRvcCA9IFwiXCIuY29uY2F0KHJlY3QuaGVpZ2h0IC0gYWxpZ24ub2Zmc2V0WzFdLCBcInB4XCIpO1xuICAgICAgfSBlbHNlIGlmIChwbGFjZW1lbnQuaW5kZXhPZignVG9wJykgPj0gMCB8fCBwbGFjZW1lbnQuaW5kZXhPZignYm90dG9tJykgPj0gMCkge1xuICAgICAgICB0cmFuc2Zvcm1PcmlnaW4udG9wID0gXCJcIi5jb25jYXQoLWFsaWduLm9mZnNldFsxXSwgXCJweFwiKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHBsYWNlbWVudC5pbmRleE9mKCdsZWZ0JykgPj0gMCB8fCBwbGFjZW1lbnQuaW5kZXhPZignUmlnaHQnKSA+PSAwKSB7XG4gICAgICAgIHRyYW5zZm9ybU9yaWdpbi5sZWZ0ID0gXCJcIi5jb25jYXQocmVjdC53aWR0aCAtIGFsaWduLm9mZnNldFswXSwgXCJweFwiKTtcbiAgICAgIH0gZWxzZSBpZiAocGxhY2VtZW50LmluZGV4T2YoJ3JpZ2h0JykgPj0gMCB8fCBwbGFjZW1lbnQuaW5kZXhPZignTGVmdCcpID49IDApIHtcbiAgICAgICAgdHJhbnNmb3JtT3JpZ2luLmxlZnQgPSBcIlwiLmNvbmNhdCgtYWxpZ24ub2Zmc2V0WzBdLCBcInB4XCIpO1xuICAgICAgfVxuXG4gICAgICBkb21Ob2RlLnN0eWxlLnRyYW5zZm9ybU9yaWdpbiA9IFwiXCIuY29uY2F0KHRyYW5zZm9ybU9yaWdpbi5sZWZ0LCBcIiBcIikuY29uY2F0KHRyYW5zZm9ybU9yaWdpbi50b3ApO1xuICAgIH07XG5cbiAgICBfdGhpcy5yZW5kZXJUb29sdGlwID0gZnVuY3Rpb24gKF9yZWYpIHtcbiAgICAgIHZhciBnZXRDb250ZXh0UG9wdXBDb250YWluZXIgPSBfcmVmLmdldFBvcHVwQ29udGFpbmVyLFxuICAgICAgICAgIGdldFByZWZpeENscyA9IF9yZWYuZ2V0UHJlZml4Q2xzO1xuXG4gICAgICB2YXIgX2Fzc2VydFRoaXNJbml0aWFsaXplID0gX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksXG4gICAgICAgICAgcHJvcHMgPSBfYXNzZXJ0VGhpc0luaXRpYWxpemUucHJvcHMsXG4gICAgICAgICAgc3RhdGUgPSBfYXNzZXJ0VGhpc0luaXRpYWxpemUuc3RhdGU7XG5cbiAgICAgIHZhciBjdXN0b21pemVQcmVmaXhDbHMgPSBwcm9wcy5wcmVmaXhDbHMsXG4gICAgICAgICAgb3BlbkNsYXNzTmFtZSA9IHByb3BzLm9wZW5DbGFzc05hbWUsXG4gICAgICAgICAgZ2V0UG9wdXBDb250YWluZXIgPSBwcm9wcy5nZXRQb3B1cENvbnRhaW5lcixcbiAgICAgICAgICBnZXRUb29sdGlwQ29udGFpbmVyID0gcHJvcHMuZ2V0VG9vbHRpcENvbnRhaW5lcjtcbiAgICAgIHZhciBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuO1xuICAgICAgdmFyIHByZWZpeENscyA9IGdldFByZWZpeENscygndG9vbHRpcCcsIGN1c3RvbWl6ZVByZWZpeENscyk7XG4gICAgICB2YXIgdmlzaWJsZSA9IHN0YXRlLnZpc2libGU7IC8vIEhpZGUgdG9vbHRpcCB3aGVuIHRoZXJlIGlzIG5vIHRpdGxlXG5cbiAgICAgIGlmICghKCd2aXNpYmxlJyBpbiBwcm9wcykgJiYgX3RoaXMuaXNOb1RpdGxlKCkpIHtcbiAgICAgICAgdmlzaWJsZSA9IGZhbHNlO1xuICAgICAgfVxuXG4gICAgICB2YXIgY2hpbGQgPSBnZXREaXNhYmxlZENvbXBhdGlibGVDaGlsZHJlbiggLyojX19QVVJFX18qL1JlYWN0LmlzVmFsaWRFbGVtZW50KGNoaWxkcmVuKSA/IGNoaWxkcmVuIDogLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIG51bGwsIGNoaWxkcmVuKSk7XG4gICAgICB2YXIgY2hpbGRQcm9wcyA9IGNoaWxkLnByb3BzO1xuICAgICAgdmFyIGNoaWxkQ2xzID0gKDAsIF9jbGFzc25hbWVzW1wiZGVmYXVsdFwiXSkoY2hpbGRQcm9wcy5jbGFzc05hbWUsIF9kZWZpbmVQcm9wZXJ0eSh7fSwgb3BlbkNsYXNzTmFtZSB8fCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLW9wZW5cIiksIHRydWUpKTtcbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfcmNUb29sdGlwW1wiZGVmYXVsdFwiXSwgX2V4dGVuZHMoe30sIF90aGlzLnByb3BzLCB7XG4gICAgICAgIHByZWZpeENsczogcHJlZml4Q2xzLFxuICAgICAgICBnZXRUb29sdGlwQ29udGFpbmVyOiBnZXRQb3B1cENvbnRhaW5lciB8fCBnZXRUb29sdGlwQ29udGFpbmVyIHx8IGdldENvbnRleHRQb3B1cENvbnRhaW5lcixcbiAgICAgICAgcmVmOiBfdGhpcy5zYXZlVG9vbHRpcCxcbiAgICAgICAgYnVpbHRpblBsYWNlbWVudHM6IF90aGlzLmdldFBsYWNlbWVudHMoKSxcbiAgICAgICAgb3ZlcmxheTogX3RoaXMuZ2V0T3ZlcmxheSgpLFxuICAgICAgICB2aXNpYmxlOiB2aXNpYmxlLFxuICAgICAgICBvblZpc2libGVDaGFuZ2U6IF90aGlzLm9uVmlzaWJsZUNoYW5nZSxcbiAgICAgICAgb25Qb3B1cEFsaWduOiBfdGhpcy5vblBvcHVwQWxpZ25cbiAgICAgIH0pLCB2aXNpYmxlID8gLyojX19QVVJFX18qL1JlYWN0LmNsb25lRWxlbWVudChjaGlsZCwge1xuICAgICAgICBjbGFzc05hbWU6IGNoaWxkQ2xzXG4gICAgICB9KSA6IGNoaWxkKTtcbiAgICB9O1xuXG4gICAgX3RoaXMuc3RhdGUgPSB7XG4gICAgICB2aXNpYmxlOiAhIXByb3BzLnZpc2libGUgfHwgISFwcm9wcy5kZWZhdWx0VmlzaWJsZVxuICAgIH07XG4gICAgcmV0dXJuIF90aGlzO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKFRvb2x0aXAsIFt7XG4gICAga2V5OiBcImdldFBvcHVwRG9tTm9kZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRQb3B1cERvbU5vZGUoKSB7XG4gICAgICByZXR1cm4gdGhpcy50b29sdGlwLmdldFBvcHVwRG9tTm9kZSgpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJnZXRQbGFjZW1lbnRzXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldFBsYWNlbWVudHMoKSB7XG4gICAgICB2YXIgX3RoaXMkcHJvcHMgPSB0aGlzLnByb3BzLFxuICAgICAgICAgIGJ1aWx0aW5QbGFjZW1lbnRzID0gX3RoaXMkcHJvcHMuYnVpbHRpblBsYWNlbWVudHMsXG4gICAgICAgICAgYXJyb3dQb2ludEF0Q2VudGVyID0gX3RoaXMkcHJvcHMuYXJyb3dQb2ludEF0Q2VudGVyLFxuICAgICAgICAgIGF1dG9BZGp1c3RPdmVyZmxvdyA9IF90aGlzJHByb3BzLmF1dG9BZGp1c3RPdmVyZmxvdztcbiAgICAgIHJldHVybiBidWlsdGluUGxhY2VtZW50cyB8fCAoMCwgX3BsYWNlbWVudHNbXCJkZWZhdWx0XCJdKSh7XG4gICAgICAgIGFycm93UG9pbnRBdENlbnRlcjogYXJyb3dQb2ludEF0Q2VudGVyLFxuICAgICAgICB2ZXJ0aWNhbEFycm93U2hpZnQ6IDgsXG4gICAgICAgIGF1dG9BZGp1c3RPdmVyZmxvdzogYXV0b0FkanVzdE92ZXJmbG93XG4gICAgICB9KTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiaXNOb1RpdGxlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGlzTm9UaXRsZSgpIHtcbiAgICAgIHZhciBfdGhpcyRwcm9wczIgPSB0aGlzLnByb3BzLFxuICAgICAgICAgIHRpdGxlID0gX3RoaXMkcHJvcHMyLnRpdGxlLFxuICAgICAgICAgIG92ZXJsYXkgPSBfdGhpcyRwcm9wczIub3ZlcmxheTtcbiAgICAgIHJldHVybiAhdGl0bGUgJiYgIW92ZXJsYXkgJiYgdGl0bGUgIT09IDA7IC8vIG92ZXJsYXkgZm9yIG9sZCB2ZXJzaW9uIGNvbXBhdGliaWxpdHlcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZ2V0T3ZlcmxheVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRPdmVybGF5KCkge1xuICAgICAgdmFyIF90aGlzJHByb3BzMyA9IHRoaXMucHJvcHMsXG4gICAgICAgICAgdGl0bGUgPSBfdGhpcyRwcm9wczMudGl0bGUsXG4gICAgICAgICAgb3ZlcmxheSA9IF90aGlzJHByb3BzMy5vdmVybGF5O1xuXG4gICAgICBpZiAodGl0bGUgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIHRpdGxlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gb3ZlcmxheSB8fCB0aXRsZSB8fCAnJztcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfY29uZmlnUHJvdmlkZXIuQ29uZmlnQ29uc3VtZXIsIG51bGwsIHRoaXMucmVuZGVyVG9vbHRpcCk7XG4gICAgfVxuICB9XSwgW3tcbiAgICBrZXk6IFwiZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyhuZXh0UHJvcHMpIHtcbiAgICAgIGlmICgndmlzaWJsZScgaW4gbmV4dFByb3BzKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdmlzaWJsZTogbmV4dFByb3BzLnZpc2libGVcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIFRvb2x0aXA7XG59KFJlYWN0LkNvbXBvbmVudCk7XG5cblRvb2x0aXAuZGVmYXVsdFByb3BzID0ge1xuICBwbGFjZW1lbnQ6ICd0b3AnLFxuICB0cmFuc2l0aW9uTmFtZTogJ3pvb20tYmlnLWZhc3QnLFxuICBtb3VzZUVudGVyRGVsYXk6IDAuMSxcbiAgbW91c2VMZWF2ZURlbGF5OiAwLjEsXG4gIGFycm93UG9pbnRBdENlbnRlcjogZmFsc2UsXG4gIGF1dG9BZGp1c3RPdmVyZmxvdzogdHJ1ZVxufTtcbigwLCBfcmVhY3RMaWZlY3ljbGVzQ29tcGF0LnBvbHlmaWxsKShUb29sdGlwKTtcbnZhciBfZGVmYXVsdCA9IFRvb2x0aXA7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IF9kZWZhdWx0OyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcInJlZ2VuZXJhdG9yLXJ1bnRpbWVcIik7XG4iLCIoZnVuY3Rpb24oZil7aWYodHlwZW9mIGV4cG9ydHM9PT1cIm9iamVjdFwiJiZ0eXBlb2YgbW9kdWxlIT09XCJ1bmRlZmluZWRcIil7bW9kdWxlLmV4cG9ydHM9ZigpfWVsc2UgaWYodHlwZW9mIGRlZmluZT09PVwiZnVuY3Rpb25cIiYmZGVmaW5lLmFtZCl7ZGVmaW5lKFtdLGYpfWVsc2V7dmFyIGc7aWYodHlwZW9mIHdpbmRvdyE9PVwidW5kZWZpbmVkXCIpe2c9d2luZG93fWVsc2UgaWYodHlwZW9mIGdsb2JhbCE9PVwidW5kZWZpbmVkXCIpe2c9Z2xvYmFsfWVsc2UgaWYodHlwZW9mIHNlbGYhPT1cInVuZGVmaW5lZFwiKXtnPXNlbGZ9ZWxzZXtnPXRoaXN9Zy5tZW1vaXplcmlmaWMgPSBmKCl9fSkoZnVuY3Rpb24oKXt2YXIgZGVmaW5lLG1vZHVsZSxleHBvcnRzO3JldHVybiAoZnVuY3Rpb24gZSh0LG4scil7ZnVuY3Rpb24gcyhvLHUpe2lmKCFuW29dKXtpZighdFtvXSl7dmFyIGE9dHlwZW9mIHJlcXVpcmU9PVwiZnVuY3Rpb25cIiYmcmVxdWlyZTtpZighdSYmYSlyZXR1cm4gYShvLCEwKTtpZihpKXJldHVybiBpKG8sITApO3ZhciBmPW5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIrbytcIidcIik7dGhyb3cgZi5jb2RlPVwiTU9EVUxFX05PVF9GT1VORFwiLGZ9dmFyIGw9bltvXT17ZXhwb3J0czp7fX07dFtvXVswXS5jYWxsKGwuZXhwb3J0cyxmdW5jdGlvbihlKXt2YXIgbj10W29dWzFdW2VdO3JldHVybiBzKG4/bjplKX0sbCxsLmV4cG9ydHMsZSx0LG4scil9cmV0dXJuIG5bb10uZXhwb3J0c312YXIgaT10eXBlb2YgcmVxdWlyZT09XCJmdW5jdGlvblwiJiZyZXF1aXJlO2Zvcih2YXIgbz0wO288ci5sZW5ndGg7bysrKXMocltvXSk7cmV0dXJuIHN9KSh7MTpbZnVuY3Rpb24oX2RlcmVxXyxtb2R1bGUsZXhwb3J0cyl7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGZvcmNlU2ltaWxhcikge1xuXHRpZiAodHlwZW9mIE1hcCAhPT0gJ2Z1bmN0aW9uJyB8fCBmb3JjZVNpbWlsYXIpIHtcblx0XHR2YXIgU2ltaWxhciA9IF9kZXJlcV8oJy4vc2ltaWxhcicpO1xuXHRcdHJldHVybiBuZXcgU2ltaWxhcigpO1xuXHR9XG5cdGVsc2Uge1xuXHRcdHJldHVybiBuZXcgTWFwKCk7XG5cdH1cbn1cblxufSx7XCIuL3NpbWlsYXJcIjoyfV0sMjpbZnVuY3Rpb24oX2RlcmVxXyxtb2R1bGUsZXhwb3J0cyl7XG5mdW5jdGlvbiBTaW1pbGFyKCkge1xuXHR0aGlzLmxpc3QgPSBbXTtcblx0dGhpcy5sYXN0SXRlbSA9IHVuZGVmaW5lZDtcblx0dGhpcy5zaXplID0gMDtcblxuXHRyZXR1cm4gdGhpcztcbn1cblxuU2ltaWxhci5wcm90b3R5cGUuZ2V0ID0gZnVuY3Rpb24oa2V5KSB7XG5cdHZhciBpbmRleDtcblxuXHRpZiAodGhpcy5sYXN0SXRlbSAmJiB0aGlzLmlzRXF1YWwodGhpcy5sYXN0SXRlbS5rZXksIGtleSkpIHtcblx0XHRyZXR1cm4gdGhpcy5sYXN0SXRlbS52YWw7XG5cdH1cblxuXHRpbmRleCA9IHRoaXMuaW5kZXhPZihrZXkpO1xuXHRpZiAoaW5kZXggPj0gMCkge1xuXHRcdHRoaXMubGFzdEl0ZW0gPSB0aGlzLmxpc3RbaW5kZXhdO1xuXHRcdHJldHVybiB0aGlzLmxpc3RbaW5kZXhdLnZhbDtcblx0fVxuXG5cdHJldHVybiB1bmRlZmluZWQ7XG59O1xuXG5TaW1pbGFyLnByb3RvdHlwZS5zZXQgPSBmdW5jdGlvbihrZXksIHZhbCkge1xuXHR2YXIgaW5kZXg7XG5cblx0aWYgKHRoaXMubGFzdEl0ZW0gJiYgdGhpcy5pc0VxdWFsKHRoaXMubGFzdEl0ZW0ua2V5LCBrZXkpKSB7XG5cdFx0dGhpcy5sYXN0SXRlbS52YWwgPSB2YWw7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRpbmRleCA9IHRoaXMuaW5kZXhPZihrZXkpO1xuXHRpZiAoaW5kZXggPj0gMCkge1xuXHRcdHRoaXMubGFzdEl0ZW0gPSB0aGlzLmxpc3RbaW5kZXhdO1xuXHRcdHRoaXMubGlzdFtpbmRleF0udmFsID0gdmFsO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0dGhpcy5sYXN0SXRlbSA9IHsga2V5OiBrZXksIHZhbDogdmFsIH07XG5cdHRoaXMubGlzdC5wdXNoKHRoaXMubGFzdEl0ZW0pO1xuXHR0aGlzLnNpemUrKztcblxuXHRyZXR1cm4gdGhpcztcbn07XG5cblNpbWlsYXIucHJvdG90eXBlLmRlbGV0ZSA9IGZ1bmN0aW9uKGtleSkge1xuXHR2YXIgaW5kZXg7XG5cblx0aWYgKHRoaXMubGFzdEl0ZW0gJiYgdGhpcy5pc0VxdWFsKHRoaXMubGFzdEl0ZW0ua2V5LCBrZXkpKSB7XG5cdFx0dGhpcy5sYXN0SXRlbSA9IHVuZGVmaW5lZDtcblx0fVxuXG5cdGluZGV4ID0gdGhpcy5pbmRleE9mKGtleSk7XG5cdGlmIChpbmRleCA+PSAwKSB7XG5cdFx0dGhpcy5zaXplLS07XG5cdFx0cmV0dXJuIHRoaXMubGlzdC5zcGxpY2UoaW5kZXgsIDEpWzBdO1xuXHR9XG5cblx0cmV0dXJuIHVuZGVmaW5lZDtcbn07XG5cblxuLy8gaW1wb3J0YW50IHRoYXQgaGFzKCkgZG9lc24ndCB1c2UgZ2V0KCkgaW4gY2FzZSBhbiBleGlzdGluZyBrZXkgaGFzIGEgZmFsc3kgdmFsdWUsIGluIHdoaWNoIGNhc2UgaGFzKCkgd291bGQgcmV0dXJuIGZhbHNlXG5TaW1pbGFyLnByb3RvdHlwZS5oYXMgPSBmdW5jdGlvbihrZXkpIHtcblx0dmFyIGluZGV4O1xuXG5cdGlmICh0aGlzLmxhc3RJdGVtICYmIHRoaXMuaXNFcXVhbCh0aGlzLmxhc3RJdGVtLmtleSwga2V5KSkge1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG5cblx0aW5kZXggPSB0aGlzLmluZGV4T2Yoa2V5KTtcblx0aWYgKGluZGV4ID49IDApIHtcblx0XHR0aGlzLmxhc3RJdGVtID0gdGhpcy5saXN0W2luZGV4XTtcblx0XHRyZXR1cm4gdHJ1ZTtcblx0fVxuXG5cdHJldHVybiBmYWxzZTtcbn07XG5cblNpbWlsYXIucHJvdG90eXBlLmZvckVhY2ggPSBmdW5jdGlvbihjYWxsYmFjaywgdGhpc0FyZykge1xuXHR2YXIgaTtcblx0Zm9yIChpID0gMDsgaSA8IHRoaXMuc2l6ZTsgaSsrKSB7XG5cdFx0Y2FsbGJhY2suY2FsbCh0aGlzQXJnIHx8IHRoaXMsIHRoaXMubGlzdFtpXS52YWwsIHRoaXMubGlzdFtpXS5rZXksIHRoaXMpO1xuXHR9XG59O1xuXG5TaW1pbGFyLnByb3RvdHlwZS5pbmRleE9mID0gZnVuY3Rpb24oa2V5KSB7XG5cdHZhciBpO1xuXHRmb3IgKGkgPSAwOyBpIDwgdGhpcy5zaXplOyBpKyspIHtcblx0XHRpZiAodGhpcy5pc0VxdWFsKHRoaXMubGlzdFtpXS5rZXksIGtleSkpIHtcblx0XHRcdHJldHVybiBpO1xuXHRcdH1cblx0fVxuXHRyZXR1cm4gLTE7XG59O1xuXG4vLyBjaGVjayBpZiB0aGUgbnVtYmVycyBhcmUgZXF1YWwsIG9yIHdoZXRoZXIgdGhleSBhcmUgYm90aCBwcmVjaXNlbHkgTmFOIChpc05hTiByZXR1cm5zIHRydWUgZm9yIGFsbCBub24tbnVtYmVycylcblNpbWlsYXIucHJvdG90eXBlLmlzRXF1YWwgPSBmdW5jdGlvbih2YWwxLCB2YWwyKSB7XG5cdHJldHVybiB2YWwxID09PSB2YWwyIHx8ICh2YWwxICE9PSB2YWwxICYmIHZhbDIgIT09IHZhbDIpO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBTaW1pbGFyO1xufSx7fV0sMzpbZnVuY3Rpb24oX2RlcmVxXyxtb2R1bGUsZXhwb3J0cyl7XG52YXIgTWFwT3JTaW1pbGFyID0gX2RlcmVxXygnbWFwLW9yLXNpbWlsYXInKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAobGltaXQpIHtcblx0dmFyIGNhY2hlID0gbmV3IE1hcE9yU2ltaWxhcih1bmRlZmluZWQgPT09ICd0cnVlJyksXG5cdFx0bHJ1ID0gW107XG5cblx0cmV0dXJuIGZ1bmN0aW9uIChmbikge1xuXHRcdHZhciBtZW1vaXplcmlmaWMgPSBmdW5jdGlvbiAoKSB7XG5cdFx0XHR2YXIgY3VycmVudENhY2hlID0gY2FjaGUsXG5cdFx0XHRcdG5ld01hcCxcblx0XHRcdFx0Zm5SZXN1bHQsXG5cdFx0XHRcdGFyZ3NMZW5ndGhNaW51c09uZSA9IGFyZ3VtZW50cy5sZW5ndGggLSAxLFxuXHRcdFx0XHRscnVQYXRoID0gQXJyYXkoYXJnc0xlbmd0aE1pbnVzT25lICsgMSksXG5cdFx0XHRcdGlzTWVtb2l6ZWQgPSB0cnVlLFxuXHRcdFx0XHRpO1xuXG5cdFx0XHRpZiAoKG1lbW9pemVyaWZpYy5udW1BcmdzIHx8IG1lbW9pemVyaWZpYy5udW1BcmdzID09PSAwKSAmJiBtZW1vaXplcmlmaWMubnVtQXJncyAhPT0gYXJnc0xlbmd0aE1pbnVzT25lICsgMSkge1xuXHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ01lbW9pemVyaWZpYyBmdW5jdGlvbnMgc2hvdWxkIGFsd2F5cyBiZSBjYWxsZWQgd2l0aCB0aGUgc2FtZSBudW1iZXIgb2YgYXJndW1lbnRzJyk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIGxvb3AgdGhyb3VnaCBlYWNoIGFyZ3VtZW50IHRvIHRyYXZlcnNlIHRoZSBtYXAgdHJlZVxuXHRcdFx0Zm9yIChpID0gMDsgaSA8IGFyZ3NMZW5ndGhNaW51c09uZTsgaSsrKSB7XG5cdFx0XHRcdGxydVBhdGhbaV0gPSB7XG5cdFx0XHRcdFx0Y2FjaGVJdGVtOiBjdXJyZW50Q2FjaGUsXG5cdFx0XHRcdFx0YXJnOiBhcmd1bWVudHNbaV1cblx0XHRcdFx0fTtcblxuXHRcdFx0XHQvLyBjbGltYiB0aHJvdWdoIHRoZSBoaWVyYXJjaGljYWwgbWFwIHRyZWUgdW50aWwgdGhlIHNlY29uZC1sYXN0IGFyZ3VtZW50IGhhcyBiZWVuIGZvdW5kLCBvciBhbiBhcmd1bWVudCBpcyBtaXNzaW5nLlxuXHRcdFx0XHQvLyBpZiBhbGwgYXJndW1lbnRzIHVwIHRvIHRoZSBzZWNvbmQtbGFzdCBoYXZlIGJlZW4gZm91bmQsIHRoaXMgd2lsbCBwb3RlbnRpYWxseSBiZSBhIGNhY2hlIGhpdCAoZGV0ZXJtaW5lZCBsYXRlcilcblx0XHRcdFx0aWYgKGN1cnJlbnRDYWNoZS5oYXMoYXJndW1lbnRzW2ldKSkge1xuXHRcdFx0XHRcdGN1cnJlbnRDYWNoZSA9IGN1cnJlbnRDYWNoZS5nZXQoYXJndW1lbnRzW2ldKTtcblx0XHRcdFx0XHRjb250aW51ZTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlzTWVtb2l6ZWQgPSBmYWxzZTtcblxuXHRcdFx0XHQvLyBtYWtlIG1hcHMgdW50aWwgbGFzdCB2YWx1ZVxuXHRcdFx0XHRuZXdNYXAgPSBuZXcgTWFwT3JTaW1pbGFyKHVuZGVmaW5lZCA9PT0gJ3RydWUnKTtcblx0XHRcdFx0Y3VycmVudENhY2hlLnNldChhcmd1bWVudHNbaV0sIG5ld01hcCk7XG5cdFx0XHRcdGN1cnJlbnRDYWNoZSA9IG5ld01hcDtcblx0XHRcdH1cblxuXHRcdFx0Ly8gd2UgYXJlIGF0IHRoZSBsYXN0IGFyZywgY2hlY2sgaWYgaXQgaXMgcmVhbGx5IG1lbW9pemVkXG5cdFx0XHRpZiAoaXNNZW1vaXplZCkge1xuXHRcdFx0XHRpZiAoY3VycmVudENhY2hlLmhhcyhhcmd1bWVudHNbYXJnc0xlbmd0aE1pbnVzT25lXSkpIHtcblx0XHRcdFx0XHRmblJlc3VsdCA9IGN1cnJlbnRDYWNoZS5nZXQoYXJndW1lbnRzW2FyZ3NMZW5ndGhNaW51c09uZV0pO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdGlzTWVtb2l6ZWQgPSBmYWxzZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRpZiAoIWlzTWVtb2l6ZWQpIHtcblx0XHRcdFx0Zm5SZXN1bHQgPSBmbi5hcHBseShudWxsLCBhcmd1bWVudHMpO1xuXHRcdFx0XHRjdXJyZW50Q2FjaGUuc2V0KGFyZ3VtZW50c1thcmdzTGVuZ3RoTWludXNPbmVdLCBmblJlc3VsdCk7XG5cdFx0XHR9XG5cblx0XHRcdGlmIChsaW1pdCA+IDApIHtcblx0XHRcdFx0bHJ1UGF0aFthcmdzTGVuZ3RoTWludXNPbmVdID0ge1xuXHRcdFx0XHRcdGNhY2hlSXRlbTogY3VycmVudENhY2hlLFxuXHRcdFx0XHRcdGFyZzogYXJndW1lbnRzW2FyZ3NMZW5ndGhNaW51c09uZV1cblx0XHRcdFx0fTtcblxuXHRcdFx0XHRpZiAoaXNNZW1vaXplZCkge1xuXHRcdFx0XHRcdG1vdmVUb01vc3RSZWNlbnRMcnUobHJ1LCBscnVQYXRoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRscnUucHVzaChscnVQYXRoKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmIChscnUubGVuZ3RoID4gbGltaXQpIHtcblx0XHRcdFx0XHRyZW1vdmVDYWNoZWRSZXN1bHQobHJ1LnNoaWZ0KCkpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdG1lbW9pemVyaWZpYy53YXNNZW1vaXplZCA9IGlzTWVtb2l6ZWQ7XG5cdFx0XHRtZW1vaXplcmlmaWMubnVtQXJncyA9IGFyZ3NMZW5ndGhNaW51c09uZSArIDE7XG5cblx0XHRcdHJldHVybiBmblJlc3VsdDtcblx0XHR9O1xuXG5cdFx0bWVtb2l6ZXJpZmljLmxpbWl0ID0gbGltaXQ7XG5cdFx0bWVtb2l6ZXJpZmljLndhc01lbW9pemVkID0gZmFsc2U7XG5cdFx0bWVtb2l6ZXJpZmljLmNhY2hlID0gY2FjaGU7XG5cdFx0bWVtb2l6ZXJpZmljLmxydSA9IGxydTtcblxuXHRcdHJldHVybiBtZW1vaXplcmlmaWM7XG5cdH07XG59O1xuXG4vLyBtb3ZlIGN1cnJlbnQgYXJncyB0byBtb3N0IHJlY2VudCBwb3NpdGlvblxuZnVuY3Rpb24gbW92ZVRvTW9zdFJlY2VudExydShscnUsIGxydVBhdGgpIHtcblx0dmFyIGxydUxlbiA9IGxydS5sZW5ndGgsXG5cdFx0bHJ1UGF0aExlbiA9IGxydVBhdGgubGVuZ3RoLFxuXHRcdGlzTWF0Y2gsXG5cdFx0aSwgaWk7XG5cblx0Zm9yIChpID0gMDsgaSA8IGxydUxlbjsgaSsrKSB7XG5cdFx0aXNNYXRjaCA9IHRydWU7XG5cdFx0Zm9yIChpaSA9IDA7IGlpIDwgbHJ1UGF0aExlbjsgaWkrKykge1xuXHRcdFx0aWYgKCFpc0VxdWFsKGxydVtpXVtpaV0uYXJnLCBscnVQYXRoW2lpXS5hcmcpKSB7XG5cdFx0XHRcdGlzTWF0Y2ggPSBmYWxzZTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGlmIChpc01hdGNoKSB7XG5cdFx0XHRicmVhaztcblx0XHR9XG5cdH1cblxuXHRscnUucHVzaChscnUuc3BsaWNlKGksIDEpWzBdKTtcbn1cblxuLy8gcmVtb3ZlIGxlYXN0IHJlY2VudGx5IHVzZWQgY2FjaGUgaXRlbSBhbmQgYWxsIGRlYWQgYnJhbmNoZXNcbmZ1bmN0aW9uIHJlbW92ZUNhY2hlZFJlc3VsdChyZW1vdmVkTHJ1KSB7XG5cdHZhciByZW1vdmVkTHJ1TGVuID0gcmVtb3ZlZExydS5sZW5ndGgsXG5cdFx0Y3VycmVudExydSA9IHJlbW92ZWRMcnVbcmVtb3ZlZExydUxlbiAtIDFdLFxuXHRcdHRtcCxcblx0XHRpO1xuXG5cdGN1cnJlbnRMcnUuY2FjaGVJdGVtLmRlbGV0ZShjdXJyZW50THJ1LmFyZyk7XG5cblx0Ly8gd2FsayBkb3duIHRoZSB0cmVlIHJlbW92aW5nIGRlYWQgYnJhbmNoZXMgKHNpemUgMCkgYWxvbmcgdGhlIHdheVxuXHRmb3IgKGkgPSByZW1vdmVkTHJ1TGVuIC0gMjsgaSA+PSAwOyBpLS0pIHtcblx0XHRjdXJyZW50THJ1ID0gcmVtb3ZlZExydVtpXTtcblx0XHR0bXAgPSBjdXJyZW50THJ1LmNhY2hlSXRlbS5nZXQoY3VycmVudExydS5hcmcpO1xuXG5cdFx0aWYgKCF0bXAgfHwgIXRtcC5zaXplKSB7XG5cdFx0XHRjdXJyZW50THJ1LmNhY2hlSXRlbS5kZWxldGUoY3VycmVudExydS5hcmcpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRicmVhaztcblx0XHR9XG5cdH1cbn1cblxuLy8gY2hlY2sgaWYgdGhlIG51bWJlcnMgYXJlIGVxdWFsLCBvciB3aGV0aGVyIHRoZXkgYXJlIGJvdGggcHJlY2lzZWx5IE5hTiAoaXNOYU4gcmV0dXJucyB0cnVlIGZvciBhbGwgbm9uLW51bWJlcnMpXG5mdW5jdGlvbiBpc0VxdWFsKHZhbDEsIHZhbDIpIHtcblx0cmV0dXJuIHZhbDEgPT09IHZhbDIgfHwgKHZhbDEgIT09IHZhbDEgJiYgdmFsMiAhPT0gdmFsMik7XG59XG59LHtcIm1hcC1vci1zaW1pbGFyXCI6MX1dfSx7fSxbM10pKDMpXG59KTsiLCIvKiBnbG9iYWwgd2luZG93ICovXG5pbXBvcnQgcG9ueWZpbGwgZnJvbSAnLi9wb255ZmlsbC5qcyc7XG5cbnZhciByb290O1xuXG5pZiAodHlwZW9mIHNlbGYgIT09ICd1bmRlZmluZWQnKSB7XG4gIHJvb3QgPSBzZWxmO1xufSBlbHNlIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICByb290ID0gd2luZG93O1xufSBlbHNlIGlmICh0eXBlb2YgZ2xvYmFsICE9PSAndW5kZWZpbmVkJykge1xuICByb290ID0gZ2xvYmFsO1xufSBlbHNlIGlmICh0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJykge1xuICByb290ID0gbW9kdWxlO1xufSBlbHNlIHtcbiAgcm9vdCA9IEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCk7XG59XG5cbnZhciByZXN1bHQgPSBwb255ZmlsbChyb290KTtcbmV4cG9ydCBkZWZhdWx0IHJlc3VsdDtcbiIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcInJlZ2VuZXJhdG9yLXJ1bnRpbWVcIik7XG4iLCJmdW5jdGlvbiBfYXJyYXlMaWtlVG9BcnJheShhcnIsIGxlbikge1xuICBpZiAobGVuID09IG51bGwgfHwgbGVuID4gYXJyLmxlbmd0aCkgbGVuID0gYXJyLmxlbmd0aDtcblxuICBmb3IgKHZhciBpID0gMCwgYXJyMiA9IG5ldyBBcnJheShsZW4pOyBpIDwgbGVuOyBpKyspIHtcbiAgICBhcnIyW2ldID0gYXJyW2ldO1xuICB9XG5cbiAgcmV0dXJuIGFycjI7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX2FycmF5TGlrZVRvQXJyYXk7XG5tb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7IiwidmFyIGFycmF5TGlrZVRvQXJyYXkgPSByZXF1aXJlKFwiLi9hcnJheUxpa2VUb0FycmF5LmpzXCIpO1xuXG5mdW5jdGlvbiBfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkobywgbWluTGVuKSB7XG4gIGlmICghbykgcmV0dXJuO1xuICBpZiAodHlwZW9mIG8gPT09IFwic3RyaW5nXCIpIHJldHVybiBhcnJheUxpa2VUb0FycmF5KG8sIG1pbkxlbik7XG4gIHZhciBuID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG8pLnNsaWNlKDgsIC0xKTtcbiAgaWYgKG4gPT09IFwiT2JqZWN0XCIgJiYgby5jb25zdHJ1Y3RvcikgbiA9IG8uY29uc3RydWN0b3IubmFtZTtcbiAgaWYgKG4gPT09IFwiTWFwXCIgfHwgbiA9PT0gXCJTZXRcIikgcmV0dXJuIEFycmF5LmZyb20obyk7XG4gIGlmIChuID09PSBcIkFyZ3VtZW50c1wiIHx8IC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pKSByZXR1cm4gYXJyYXlMaWtlVG9BcnJheShvLCBtaW5MZW4pO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheTtcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiLCIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxNC1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbnZhciBydW50aW1lID0gKGZ1bmN0aW9uIChleHBvcnRzKSB7XG4gIFwidXNlIHN0cmljdFwiO1xuXG4gIHZhciBPcCA9IE9iamVjdC5wcm90b3R5cGU7XG4gIHZhciBoYXNPd24gPSBPcC5oYXNPd25Qcm9wZXJ0eTtcbiAgdmFyIHVuZGVmaW5lZDsgLy8gTW9yZSBjb21wcmVzc2libGUgdGhhbiB2b2lkIDAuXG4gIHZhciAkU3ltYm9sID0gdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiID8gU3ltYm9sIDoge307XG4gIHZhciBpdGVyYXRvclN5bWJvbCA9ICRTeW1ib2wuaXRlcmF0b3IgfHwgXCJAQGl0ZXJhdG9yXCI7XG4gIHZhciBhc3luY0l0ZXJhdG9yU3ltYm9sID0gJFN5bWJvbC5hc3luY0l0ZXJhdG9yIHx8IFwiQEBhc3luY0l0ZXJhdG9yXCI7XG4gIHZhciB0b1N0cmluZ1RhZ1N5bWJvbCA9ICRTeW1ib2wudG9TdHJpbmdUYWcgfHwgXCJAQHRvU3RyaW5nVGFnXCI7XG5cbiAgZnVuY3Rpb24gZGVmaW5lKG9iaiwga2V5LCB2YWx1ZSkge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwge1xuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgcmV0dXJuIG9ialtrZXldO1xuICB9XG4gIHRyeSB7XG4gICAgLy8gSUUgOCBoYXMgYSBicm9rZW4gT2JqZWN0LmRlZmluZVByb3BlcnR5IHRoYXQgb25seSB3b3JrcyBvbiBET00gb2JqZWN0cy5cbiAgICBkZWZpbmUoe30sIFwiXCIpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBkZWZpbmUgPSBmdW5jdGlvbihvYmosIGtleSwgdmFsdWUpIHtcbiAgICAgIHJldHVybiBvYmpba2V5XSA9IHZhbHVlO1xuICAgIH07XG4gIH1cblxuICBmdW5jdGlvbiB3cmFwKGlubmVyRm4sIG91dGVyRm4sIHNlbGYsIHRyeUxvY3NMaXN0KSB7XG4gICAgLy8gSWYgb3V0ZXJGbiBwcm92aWRlZCBhbmQgb3V0ZXJGbi5wcm90b3R5cGUgaXMgYSBHZW5lcmF0b3IsIHRoZW4gb3V0ZXJGbi5wcm90b3R5cGUgaW5zdGFuY2VvZiBHZW5lcmF0b3IuXG4gICAgdmFyIHByb3RvR2VuZXJhdG9yID0gb3V0ZXJGbiAmJiBvdXRlckZuLnByb3RvdHlwZSBpbnN0YW5jZW9mIEdlbmVyYXRvciA/IG91dGVyRm4gOiBHZW5lcmF0b3I7XG4gICAgdmFyIGdlbmVyYXRvciA9IE9iamVjdC5jcmVhdGUocHJvdG9HZW5lcmF0b3IucHJvdG90eXBlKTtcbiAgICB2YXIgY29udGV4dCA9IG5ldyBDb250ZXh0KHRyeUxvY3NMaXN0IHx8IFtdKTtcblxuICAgIC8vIFRoZSAuX2ludm9rZSBtZXRob2QgdW5pZmllcyB0aGUgaW1wbGVtZW50YXRpb25zIG9mIHRoZSAubmV4dCxcbiAgICAvLyAudGhyb3csIGFuZCAucmV0dXJuIG1ldGhvZHMuXG4gICAgZ2VuZXJhdG9yLl9pbnZva2UgPSBtYWtlSW52b2tlTWV0aG9kKGlubmVyRm4sIHNlbGYsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIGdlbmVyYXRvcjtcbiAgfVxuICBleHBvcnRzLndyYXAgPSB3cmFwO1xuXG4gIC8vIFRyeS9jYXRjaCBoZWxwZXIgdG8gbWluaW1pemUgZGVvcHRpbWl6YXRpb25zLiBSZXR1cm5zIGEgY29tcGxldGlvblxuICAvLyByZWNvcmQgbGlrZSBjb250ZXh0LnRyeUVudHJpZXNbaV0uY29tcGxldGlvbi4gVGhpcyBpbnRlcmZhY2UgY291bGRcbiAgLy8gaGF2ZSBiZWVuIChhbmQgd2FzIHByZXZpb3VzbHkpIGRlc2lnbmVkIHRvIHRha2UgYSBjbG9zdXJlIHRvIGJlXG4gIC8vIGludm9rZWQgd2l0aG91dCBhcmd1bWVudHMsIGJ1dCBpbiBhbGwgdGhlIGNhc2VzIHdlIGNhcmUgYWJvdXQgd2VcbiAgLy8gYWxyZWFkeSBoYXZlIGFuIGV4aXN0aW5nIG1ldGhvZCB3ZSB3YW50IHRvIGNhbGwsIHNvIHRoZXJlJ3Mgbm8gbmVlZFxuICAvLyB0byBjcmVhdGUgYSBuZXcgZnVuY3Rpb24gb2JqZWN0LiBXZSBjYW4gZXZlbiBnZXQgYXdheSB3aXRoIGFzc3VtaW5nXG4gIC8vIHRoZSBtZXRob2QgdGFrZXMgZXhhY3RseSBvbmUgYXJndW1lbnQsIHNpbmNlIHRoYXQgaGFwcGVucyB0byBiZSB0cnVlXG4gIC8vIGluIGV2ZXJ5IGNhc2UsIHNvIHdlIGRvbid0IGhhdmUgdG8gdG91Y2ggdGhlIGFyZ3VtZW50cyBvYmplY3QuIFRoZVxuICAvLyBvbmx5IGFkZGl0aW9uYWwgYWxsb2NhdGlvbiByZXF1aXJlZCBpcyB0aGUgY29tcGxldGlvbiByZWNvcmQsIHdoaWNoXG4gIC8vIGhhcyBhIHN0YWJsZSBzaGFwZSBhbmQgc28gaG9wZWZ1bGx5IHNob3VsZCBiZSBjaGVhcCB0byBhbGxvY2F0ZS5cbiAgZnVuY3Rpb24gdHJ5Q2F0Y2goZm4sIG9iaiwgYXJnKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiB7IHR5cGU6IFwibm9ybWFsXCIsIGFyZzogZm4uY2FsbChvYmosIGFyZykgfTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHJldHVybiB7IHR5cGU6IFwidGhyb3dcIiwgYXJnOiBlcnIgfTtcbiAgICB9XG4gIH1cblxuICB2YXIgR2VuU3RhdGVTdXNwZW5kZWRTdGFydCA9IFwic3VzcGVuZGVkU3RhcnRcIjtcbiAgdmFyIEdlblN0YXRlU3VzcGVuZGVkWWllbGQgPSBcInN1c3BlbmRlZFlpZWxkXCI7XG4gIHZhciBHZW5TdGF0ZUV4ZWN1dGluZyA9IFwiZXhlY3V0aW5nXCI7XG4gIHZhciBHZW5TdGF0ZUNvbXBsZXRlZCA9IFwiY29tcGxldGVkXCI7XG5cbiAgLy8gUmV0dXJuaW5nIHRoaXMgb2JqZWN0IGZyb20gdGhlIGlubmVyRm4gaGFzIHRoZSBzYW1lIGVmZmVjdCBhc1xuICAvLyBicmVha2luZyBvdXQgb2YgdGhlIGRpc3BhdGNoIHN3aXRjaCBzdGF0ZW1lbnQuXG4gIHZhciBDb250aW51ZVNlbnRpbmVsID0ge307XG5cbiAgLy8gRHVtbXkgY29uc3RydWN0b3IgZnVuY3Rpb25zIHRoYXQgd2UgdXNlIGFzIHRoZSAuY29uc3RydWN0b3IgYW5kXG4gIC8vIC5jb25zdHJ1Y3Rvci5wcm90b3R5cGUgcHJvcGVydGllcyBmb3IgZnVuY3Rpb25zIHRoYXQgcmV0dXJuIEdlbmVyYXRvclxuICAvLyBvYmplY3RzLiBGb3IgZnVsbCBzcGVjIGNvbXBsaWFuY2UsIHlvdSBtYXkgd2lzaCB0byBjb25maWd1cmUgeW91clxuICAvLyBtaW5pZmllciBub3QgdG8gbWFuZ2xlIHRoZSBuYW1lcyBvZiB0aGVzZSB0d28gZnVuY3Rpb25zLlxuICBmdW5jdGlvbiBHZW5lcmF0b3IoKSB7fVxuICBmdW5jdGlvbiBHZW5lcmF0b3JGdW5jdGlvbigpIHt9XG4gIGZ1bmN0aW9uIEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlKCkge31cblxuICAvLyBUaGlzIGlzIGEgcG9seWZpbGwgZm9yICVJdGVyYXRvclByb3RvdHlwZSUgZm9yIGVudmlyb25tZW50cyB0aGF0XG4gIC8vIGRvbid0IG5hdGl2ZWx5IHN1cHBvcnQgaXQuXG4gIHZhciBJdGVyYXRvclByb3RvdHlwZSA9IHt9O1xuICBJdGVyYXRvclByb3RvdHlwZVtpdGVyYXRvclN5bWJvbF0gPSBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgdmFyIGdldFByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mO1xuICB2YXIgTmF0aXZlSXRlcmF0b3JQcm90b3R5cGUgPSBnZXRQcm90byAmJiBnZXRQcm90byhnZXRQcm90byh2YWx1ZXMoW10pKSk7XG4gIGlmIChOYXRpdmVJdGVyYXRvclByb3RvdHlwZSAmJlxuICAgICAgTmF0aXZlSXRlcmF0b3JQcm90b3R5cGUgIT09IE9wICYmXG4gICAgICBoYXNPd24uY2FsbChOYXRpdmVJdGVyYXRvclByb3RvdHlwZSwgaXRlcmF0b3JTeW1ib2wpKSB7XG4gICAgLy8gVGhpcyBlbnZpcm9ubWVudCBoYXMgYSBuYXRpdmUgJUl0ZXJhdG9yUHJvdG90eXBlJTsgdXNlIGl0IGluc3RlYWRcbiAgICAvLyBvZiB0aGUgcG9seWZpbGwuXG4gICAgSXRlcmF0b3JQcm90b3R5cGUgPSBOYXRpdmVJdGVyYXRvclByb3RvdHlwZTtcbiAgfVxuXG4gIHZhciBHcCA9IEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlLnByb3RvdHlwZSA9XG4gICAgR2VuZXJhdG9yLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoSXRlcmF0b3JQcm90b3R5cGUpO1xuICBHZW5lcmF0b3JGdW5jdGlvbi5wcm90b3R5cGUgPSBHcC5jb25zdHJ1Y3RvciA9IEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlO1xuICBHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IEdlbmVyYXRvckZ1bmN0aW9uO1xuICBHZW5lcmF0b3JGdW5jdGlvbi5kaXNwbGF5TmFtZSA9IGRlZmluZShcbiAgICBHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSxcbiAgICB0b1N0cmluZ1RhZ1N5bWJvbCxcbiAgICBcIkdlbmVyYXRvckZ1bmN0aW9uXCJcbiAgKTtcblxuICAvLyBIZWxwZXIgZm9yIGRlZmluaW5nIHRoZSAubmV4dCwgLnRocm93LCBhbmQgLnJldHVybiBtZXRob2RzIG9mIHRoZVxuICAvLyBJdGVyYXRvciBpbnRlcmZhY2UgaW4gdGVybXMgb2YgYSBzaW5nbGUgLl9pbnZva2UgbWV0aG9kLlxuICBmdW5jdGlvbiBkZWZpbmVJdGVyYXRvck1ldGhvZHMocHJvdG90eXBlKSB7XG4gICAgW1wibmV4dFwiLCBcInRocm93XCIsIFwicmV0dXJuXCJdLmZvckVhY2goZnVuY3Rpb24obWV0aG9kKSB7XG4gICAgICBkZWZpbmUocHJvdG90eXBlLCBtZXRob2QsIGZ1bmN0aW9uKGFyZykge1xuICAgICAgICByZXR1cm4gdGhpcy5faW52b2tlKG1ldGhvZCwgYXJnKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgZXhwb3J0cy5pc0dlbmVyYXRvckZ1bmN0aW9uID0gZnVuY3Rpb24oZ2VuRnVuKSB7XG4gICAgdmFyIGN0b3IgPSB0eXBlb2YgZ2VuRnVuID09PSBcImZ1bmN0aW9uXCIgJiYgZ2VuRnVuLmNvbnN0cnVjdG9yO1xuICAgIHJldHVybiBjdG9yXG4gICAgICA/IGN0b3IgPT09IEdlbmVyYXRvckZ1bmN0aW9uIHx8XG4gICAgICAgIC8vIEZvciB0aGUgbmF0aXZlIEdlbmVyYXRvckZ1bmN0aW9uIGNvbnN0cnVjdG9yLCB0aGUgYmVzdCB3ZSBjYW5cbiAgICAgICAgLy8gZG8gaXMgdG8gY2hlY2sgaXRzIC5uYW1lIHByb3BlcnR5LlxuICAgICAgICAoY3Rvci5kaXNwbGF5TmFtZSB8fCBjdG9yLm5hbWUpID09PSBcIkdlbmVyYXRvckZ1bmN0aW9uXCJcbiAgICAgIDogZmFsc2U7XG4gIH07XG5cbiAgZXhwb3J0cy5tYXJrID0gZnVuY3Rpb24oZ2VuRnVuKSB7XG4gICAgaWYgKE9iamVjdC5zZXRQcm90b3R5cGVPZikge1xuICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKGdlbkZ1biwgR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBnZW5GdW4uX19wcm90b19fID0gR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGU7XG4gICAgICBkZWZpbmUoZ2VuRnVuLCB0b1N0cmluZ1RhZ1N5bWJvbCwgXCJHZW5lcmF0b3JGdW5jdGlvblwiKTtcbiAgICB9XG4gICAgZ2VuRnVuLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoR3ApO1xuICAgIHJldHVybiBnZW5GdW47XG4gIH07XG5cbiAgLy8gV2l0aGluIHRoZSBib2R5IG9mIGFueSBhc3luYyBmdW5jdGlvbiwgYGF3YWl0IHhgIGlzIHRyYW5zZm9ybWVkIHRvXG4gIC8vIGB5aWVsZCByZWdlbmVyYXRvclJ1bnRpbWUuYXdyYXAoeClgLCBzbyB0aGF0IHRoZSBydW50aW1lIGNhbiB0ZXN0XG4gIC8vIGBoYXNPd24uY2FsbCh2YWx1ZSwgXCJfX2F3YWl0XCIpYCB0byBkZXRlcm1pbmUgaWYgdGhlIHlpZWxkZWQgdmFsdWUgaXNcbiAgLy8gbWVhbnQgdG8gYmUgYXdhaXRlZC5cbiAgZXhwb3J0cy5hd3JhcCA9IGZ1bmN0aW9uKGFyZykge1xuICAgIHJldHVybiB7IF9fYXdhaXQ6IGFyZyB9O1xuICB9O1xuXG4gIGZ1bmN0aW9uIEFzeW5jSXRlcmF0b3IoZ2VuZXJhdG9yLCBQcm9taXNlSW1wbCkge1xuICAgIGZ1bmN0aW9uIGludm9rZShtZXRob2QsIGFyZywgcmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICB2YXIgcmVjb3JkID0gdHJ5Q2F0Y2goZ2VuZXJhdG9yW21ldGhvZF0sIGdlbmVyYXRvciwgYXJnKTtcbiAgICAgIGlmIChyZWNvcmQudHlwZSA9PT0gXCJ0aHJvd1wiKSB7XG4gICAgICAgIHJlamVjdChyZWNvcmQuYXJnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciByZXN1bHQgPSByZWNvcmQuYXJnO1xuICAgICAgICB2YXIgdmFsdWUgPSByZXN1bHQudmFsdWU7XG4gICAgICAgIGlmICh2YWx1ZSAmJlxuICAgICAgICAgICAgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiICYmXG4gICAgICAgICAgICBoYXNPd24uY2FsbCh2YWx1ZSwgXCJfX2F3YWl0XCIpKSB7XG4gICAgICAgICAgcmV0dXJuIFByb21pc2VJbXBsLnJlc29sdmUodmFsdWUuX19hd2FpdCkudGhlbihmdW5jdGlvbih2YWx1ZSkge1xuICAgICAgICAgICAgaW52b2tlKFwibmV4dFwiLCB2YWx1ZSwgcmVzb2x2ZSwgcmVqZWN0KTtcbiAgICAgICAgICB9LCBmdW5jdGlvbihlcnIpIHtcbiAgICAgICAgICAgIGludm9rZShcInRocm93XCIsIGVyciwgcmVzb2x2ZSwgcmVqZWN0KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBQcm9taXNlSW1wbC5yZXNvbHZlKHZhbHVlKS50aGVuKGZ1bmN0aW9uKHVud3JhcHBlZCkge1xuICAgICAgICAgIC8vIFdoZW4gYSB5aWVsZGVkIFByb21pc2UgaXMgcmVzb2x2ZWQsIGl0cyBmaW5hbCB2YWx1ZSBiZWNvbWVzXG4gICAgICAgICAgLy8gdGhlIC52YWx1ZSBvZiB0aGUgUHJvbWlzZTx7dmFsdWUsZG9uZX0+IHJlc3VsdCBmb3IgdGhlXG4gICAgICAgICAgLy8gY3VycmVudCBpdGVyYXRpb24uXG4gICAgICAgICAgcmVzdWx0LnZhbHVlID0gdW53cmFwcGVkO1xuICAgICAgICAgIHJlc29sdmUocmVzdWx0KTtcbiAgICAgICAgfSwgZnVuY3Rpb24oZXJyb3IpIHtcbiAgICAgICAgICAvLyBJZiBhIHJlamVjdGVkIFByb21pc2Ugd2FzIHlpZWxkZWQsIHRocm93IHRoZSByZWplY3Rpb24gYmFja1xuICAgICAgICAgIC8vIGludG8gdGhlIGFzeW5jIGdlbmVyYXRvciBmdW5jdGlvbiBzbyBpdCBjYW4gYmUgaGFuZGxlZCB0aGVyZS5cbiAgICAgICAgICByZXR1cm4gaW52b2tlKFwidGhyb3dcIiwgZXJyb3IsIHJlc29sdmUsIHJlamVjdCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciBwcmV2aW91c1Byb21pc2U7XG5cbiAgICBmdW5jdGlvbiBlbnF1ZXVlKG1ldGhvZCwgYXJnKSB7XG4gICAgICBmdW5jdGlvbiBjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZygpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlSW1wbChmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgICBpbnZva2UobWV0aG9kLCBhcmcsIHJlc29sdmUsIHJlamVjdCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcHJldmlvdXNQcm9taXNlID1cbiAgICAgICAgLy8gSWYgZW5xdWV1ZSBoYXMgYmVlbiBjYWxsZWQgYmVmb3JlLCB0aGVuIHdlIHdhbnQgdG8gd2FpdCB1bnRpbFxuICAgICAgICAvLyBhbGwgcHJldmlvdXMgUHJvbWlzZXMgaGF2ZSBiZWVuIHJlc29sdmVkIGJlZm9yZSBjYWxsaW5nIGludm9rZSxcbiAgICAgICAgLy8gc28gdGhhdCByZXN1bHRzIGFyZSBhbHdheXMgZGVsaXZlcmVkIGluIHRoZSBjb3JyZWN0IG9yZGVyLiBJZlxuICAgICAgICAvLyBlbnF1ZXVlIGhhcyBub3QgYmVlbiBjYWxsZWQgYmVmb3JlLCB0aGVuIGl0IGlzIGltcG9ydGFudCB0b1xuICAgICAgICAvLyBjYWxsIGludm9rZSBpbW1lZGlhdGVseSwgd2l0aG91dCB3YWl0aW5nIG9uIGEgY2FsbGJhY2sgdG8gZmlyZSxcbiAgICAgICAgLy8gc28gdGhhdCB0aGUgYXN5bmMgZ2VuZXJhdG9yIGZ1bmN0aW9uIGhhcyB0aGUgb3Bwb3J0dW5pdHkgdG8gZG9cbiAgICAgICAgLy8gYW55IG5lY2Vzc2FyeSBzZXR1cCBpbiBhIHByZWRpY3RhYmxlIHdheS4gVGhpcyBwcmVkaWN0YWJpbGl0eVxuICAgICAgICAvLyBpcyB3aHkgdGhlIFByb21pc2UgY29uc3RydWN0b3Igc3luY2hyb25vdXNseSBpbnZva2VzIGl0c1xuICAgICAgICAvLyBleGVjdXRvciBjYWxsYmFjaywgYW5kIHdoeSBhc3luYyBmdW5jdGlvbnMgc3luY2hyb25vdXNseVxuICAgICAgICAvLyBleGVjdXRlIGNvZGUgYmVmb3JlIHRoZSBmaXJzdCBhd2FpdC4gU2luY2Ugd2UgaW1wbGVtZW50IHNpbXBsZVxuICAgICAgICAvLyBhc3luYyBmdW5jdGlvbnMgaW4gdGVybXMgb2YgYXN5bmMgZ2VuZXJhdG9ycywgaXQgaXMgZXNwZWNpYWxseVxuICAgICAgICAvLyBpbXBvcnRhbnQgdG8gZ2V0IHRoaXMgcmlnaHQsIGV2ZW4gdGhvdWdoIGl0IHJlcXVpcmVzIGNhcmUuXG4gICAgICAgIHByZXZpb3VzUHJvbWlzZSA/IHByZXZpb3VzUHJvbWlzZS50aGVuKFxuICAgICAgICAgIGNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnLFxuICAgICAgICAgIC8vIEF2b2lkIHByb3BhZ2F0aW5nIGZhaWx1cmVzIHRvIFByb21pc2VzIHJldHVybmVkIGJ5IGxhdGVyXG4gICAgICAgICAgLy8gaW52b2NhdGlvbnMgb2YgdGhlIGl0ZXJhdG9yLlxuICAgICAgICAgIGNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnXG4gICAgICAgICkgOiBjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZygpO1xuICAgIH1cblxuICAgIC8vIERlZmluZSB0aGUgdW5pZmllZCBoZWxwZXIgbWV0aG9kIHRoYXQgaXMgdXNlZCB0byBpbXBsZW1lbnQgLm5leHQsXG4gICAgLy8gLnRocm93LCBhbmQgLnJldHVybiAoc2VlIGRlZmluZUl0ZXJhdG9yTWV0aG9kcykuXG4gICAgdGhpcy5faW52b2tlID0gZW5xdWV1ZTtcbiAgfVxuXG4gIGRlZmluZUl0ZXJhdG9yTWV0aG9kcyhBc3luY0l0ZXJhdG9yLnByb3RvdHlwZSk7XG4gIEFzeW5jSXRlcmF0b3IucHJvdG90eXBlW2FzeW5jSXRlcmF0b3JTeW1ib2xdID0gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzO1xuICB9O1xuICBleHBvcnRzLkFzeW5jSXRlcmF0b3IgPSBBc3luY0l0ZXJhdG9yO1xuXG4gIC8vIE5vdGUgdGhhdCBzaW1wbGUgYXN5bmMgZnVuY3Rpb25zIGFyZSBpbXBsZW1lbnRlZCBvbiB0b3Agb2ZcbiAgLy8gQXN5bmNJdGVyYXRvciBvYmplY3RzOyB0aGV5IGp1c3QgcmV0dXJuIGEgUHJvbWlzZSBmb3IgdGhlIHZhbHVlIG9mXG4gIC8vIHRoZSBmaW5hbCByZXN1bHQgcHJvZHVjZWQgYnkgdGhlIGl0ZXJhdG9yLlxuICBleHBvcnRzLmFzeW5jID0gZnVuY3Rpb24oaW5uZXJGbiwgb3V0ZXJGbiwgc2VsZiwgdHJ5TG9jc0xpc3QsIFByb21pc2VJbXBsKSB7XG4gICAgaWYgKFByb21pc2VJbXBsID09PSB2b2lkIDApIFByb21pc2VJbXBsID0gUHJvbWlzZTtcblxuICAgIHZhciBpdGVyID0gbmV3IEFzeW5jSXRlcmF0b3IoXG4gICAgICB3cmFwKGlubmVyRm4sIG91dGVyRm4sIHNlbGYsIHRyeUxvY3NMaXN0KSxcbiAgICAgIFByb21pc2VJbXBsXG4gICAgKTtcblxuICAgIHJldHVybiBleHBvcnRzLmlzR2VuZXJhdG9yRnVuY3Rpb24ob3V0ZXJGbilcbiAgICAgID8gaXRlciAvLyBJZiBvdXRlckZuIGlzIGEgZ2VuZXJhdG9yLCByZXR1cm4gdGhlIGZ1bGwgaXRlcmF0b3IuXG4gICAgICA6IGl0ZXIubmV4dCgpLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdC5kb25lID8gcmVzdWx0LnZhbHVlIDogaXRlci5uZXh0KCk7XG4gICAgICAgIH0pO1xuICB9O1xuXG4gIGZ1bmN0aW9uIG1ha2VJbnZva2VNZXRob2QoaW5uZXJGbiwgc2VsZiwgY29udGV4dCkge1xuICAgIHZhciBzdGF0ZSA9IEdlblN0YXRlU3VzcGVuZGVkU3RhcnQ7XG5cbiAgICByZXR1cm4gZnVuY3Rpb24gaW52b2tlKG1ldGhvZCwgYXJnKSB7XG4gICAgICBpZiAoc3RhdGUgPT09IEdlblN0YXRlRXhlY3V0aW5nKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IHJ1bm5pbmdcIik7XG4gICAgICB9XG5cbiAgICAgIGlmIChzdGF0ZSA9PT0gR2VuU3RhdGVDb21wbGV0ZWQpIHtcbiAgICAgICAgaWYgKG1ldGhvZCA9PT0gXCJ0aHJvd1wiKSB7XG4gICAgICAgICAgdGhyb3cgYXJnO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQmUgZm9yZ2l2aW5nLCBwZXIgMjUuMy4zLjMuMyBvZiB0aGUgc3BlYzpcbiAgICAgICAgLy8gaHR0cHM6Ly9wZW9wbGUubW96aWxsYS5vcmcvfmpvcmVuZG9yZmYvZXM2LWRyYWZ0Lmh0bWwjc2VjLWdlbmVyYXRvcnJlc3VtZVxuICAgICAgICByZXR1cm4gZG9uZVJlc3VsdCgpO1xuICAgICAgfVxuXG4gICAgICBjb250ZXh0Lm1ldGhvZCA9IG1ldGhvZDtcbiAgICAgIGNvbnRleHQuYXJnID0gYXJnO1xuXG4gICAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICB2YXIgZGVsZWdhdGUgPSBjb250ZXh0LmRlbGVnYXRlO1xuICAgICAgICBpZiAoZGVsZWdhdGUpIHtcbiAgICAgICAgICB2YXIgZGVsZWdhdGVSZXN1bHQgPSBtYXliZUludm9rZURlbGVnYXRlKGRlbGVnYXRlLCBjb250ZXh0KTtcbiAgICAgICAgICBpZiAoZGVsZWdhdGVSZXN1bHQpIHtcbiAgICAgICAgICAgIGlmIChkZWxlZ2F0ZVJlc3VsdCA9PT0gQ29udGludWVTZW50aW5lbCkgY29udGludWU7XG4gICAgICAgICAgICByZXR1cm4gZGVsZWdhdGVSZXN1bHQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNvbnRleHQubWV0aG9kID09PSBcIm5leHRcIikge1xuICAgICAgICAgIC8vIFNldHRpbmcgY29udGV4dC5fc2VudCBmb3IgbGVnYWN5IHN1cHBvcnQgb2YgQmFiZWwnc1xuICAgICAgICAgIC8vIGZ1bmN0aW9uLnNlbnQgaW1wbGVtZW50YXRpb24uXG4gICAgICAgICAgY29udGV4dC5zZW50ID0gY29udGV4dC5fc2VudCA9IGNvbnRleHQuYXJnO1xuXG4gICAgICAgIH0gZWxzZSBpZiAoY29udGV4dC5tZXRob2QgPT09IFwidGhyb3dcIikge1xuICAgICAgICAgIGlmIChzdGF0ZSA9PT0gR2VuU3RhdGVTdXNwZW5kZWRTdGFydCkge1xuICAgICAgICAgICAgc3RhdGUgPSBHZW5TdGF0ZUNvbXBsZXRlZDtcbiAgICAgICAgICAgIHRocm93IGNvbnRleHQuYXJnO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnRleHQuZGlzcGF0Y2hFeGNlcHRpb24oY29udGV4dC5hcmcpO1xuXG4gICAgICAgIH0gZWxzZSBpZiAoY29udGV4dC5tZXRob2QgPT09IFwicmV0dXJuXCIpIHtcbiAgICAgICAgICBjb250ZXh0LmFicnVwdChcInJldHVyblwiLCBjb250ZXh0LmFyZyk7XG4gICAgICAgIH1cblxuICAgICAgICBzdGF0ZSA9IEdlblN0YXRlRXhlY3V0aW5nO1xuXG4gICAgICAgIHZhciByZWNvcmQgPSB0cnlDYXRjaChpbm5lckZuLCBzZWxmLCBjb250ZXh0KTtcbiAgICAgICAgaWYgKHJlY29yZC50eXBlID09PSBcIm5vcm1hbFwiKSB7XG4gICAgICAgICAgLy8gSWYgYW4gZXhjZXB0aW9uIGlzIHRocm93biBmcm9tIGlubmVyRm4sIHdlIGxlYXZlIHN0YXRlID09PVxuICAgICAgICAgIC8vIEdlblN0YXRlRXhlY3V0aW5nIGFuZCBsb29wIGJhY2sgZm9yIGFub3RoZXIgaW52b2NhdGlvbi5cbiAgICAgICAgICBzdGF0ZSA9IGNvbnRleHQuZG9uZVxuICAgICAgICAgICAgPyBHZW5TdGF0ZUNvbXBsZXRlZFxuICAgICAgICAgICAgOiBHZW5TdGF0ZVN1c3BlbmRlZFlpZWxkO1xuXG4gICAgICAgICAgaWYgKHJlY29yZC5hcmcgPT09IENvbnRpbnVlU2VudGluZWwpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB2YWx1ZTogcmVjb3JkLmFyZyxcbiAgICAgICAgICAgIGRvbmU6IGNvbnRleHQuZG9uZVxuICAgICAgICAgIH07XG5cbiAgICAgICAgfSBlbHNlIGlmIChyZWNvcmQudHlwZSA9PT0gXCJ0aHJvd1wiKSB7XG4gICAgICAgICAgc3RhdGUgPSBHZW5TdGF0ZUNvbXBsZXRlZDtcbiAgICAgICAgICAvLyBEaXNwYXRjaCB0aGUgZXhjZXB0aW9uIGJ5IGxvb3BpbmcgYmFjayBhcm91bmQgdG8gdGhlXG4gICAgICAgICAgLy8gY29udGV4dC5kaXNwYXRjaEV4Y2VwdGlvbihjb250ZXh0LmFyZykgY2FsbCBhYm92ZS5cbiAgICAgICAgICBjb250ZXh0Lm1ldGhvZCA9IFwidGhyb3dcIjtcbiAgICAgICAgICBjb250ZXh0LmFyZyA9IHJlY29yZC5hcmc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgLy8gQ2FsbCBkZWxlZ2F0ZS5pdGVyYXRvcltjb250ZXh0Lm1ldGhvZF0oY29udGV4dC5hcmcpIGFuZCBoYW5kbGUgdGhlXG4gIC8vIHJlc3VsdCwgZWl0aGVyIGJ5IHJldHVybmluZyBhIHsgdmFsdWUsIGRvbmUgfSByZXN1bHQgZnJvbSB0aGVcbiAgLy8gZGVsZWdhdGUgaXRlcmF0b3IsIG9yIGJ5IG1vZGlmeWluZyBjb250ZXh0Lm1ldGhvZCBhbmQgY29udGV4dC5hcmcsXG4gIC8vIHNldHRpbmcgY29udGV4dC5kZWxlZ2F0ZSB0byBudWxsLCBhbmQgcmV0dXJuaW5nIHRoZSBDb250aW51ZVNlbnRpbmVsLlxuICBmdW5jdGlvbiBtYXliZUludm9rZURlbGVnYXRlKGRlbGVnYXRlLCBjb250ZXh0KSB7XG4gICAgdmFyIG1ldGhvZCA9IGRlbGVnYXRlLml0ZXJhdG9yW2NvbnRleHQubWV0aG9kXTtcbiAgICBpZiAobWV0aG9kID09PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIEEgLnRocm93IG9yIC5yZXR1cm4gd2hlbiB0aGUgZGVsZWdhdGUgaXRlcmF0b3IgaGFzIG5vIC50aHJvd1xuICAgICAgLy8gbWV0aG9kIGFsd2F5cyB0ZXJtaW5hdGVzIHRoZSB5aWVsZCogbG9vcC5cbiAgICAgIGNvbnRleHQuZGVsZWdhdGUgPSBudWxsO1xuXG4gICAgICBpZiAoY29udGV4dC5tZXRob2QgPT09IFwidGhyb3dcIikge1xuICAgICAgICAvLyBOb3RlOiBbXCJyZXR1cm5cIl0gbXVzdCBiZSB1c2VkIGZvciBFUzMgcGFyc2luZyBjb21wYXRpYmlsaXR5LlxuICAgICAgICBpZiAoZGVsZWdhdGUuaXRlcmF0b3JbXCJyZXR1cm5cIl0pIHtcbiAgICAgICAgICAvLyBJZiB0aGUgZGVsZWdhdGUgaXRlcmF0b3IgaGFzIGEgcmV0dXJuIG1ldGhvZCwgZ2l2ZSBpdCBhXG4gICAgICAgICAgLy8gY2hhbmNlIHRvIGNsZWFuIHVwLlxuICAgICAgICAgIGNvbnRleHQubWV0aG9kID0gXCJyZXR1cm5cIjtcbiAgICAgICAgICBjb250ZXh0LmFyZyA9IHVuZGVmaW5lZDtcbiAgICAgICAgICBtYXliZUludm9rZURlbGVnYXRlKGRlbGVnYXRlLCBjb250ZXh0KTtcblxuICAgICAgICAgIGlmIChjb250ZXh0Lm1ldGhvZCA9PT0gXCJ0aHJvd1wiKSB7XG4gICAgICAgICAgICAvLyBJZiBtYXliZUludm9rZURlbGVnYXRlKGNvbnRleHQpIGNoYW5nZWQgY29udGV4dC5tZXRob2QgZnJvbVxuICAgICAgICAgICAgLy8gXCJyZXR1cm5cIiB0byBcInRocm93XCIsIGxldCB0aGF0IG92ZXJyaWRlIHRoZSBUeXBlRXJyb3IgYmVsb3cuXG4gICAgICAgICAgICByZXR1cm4gQ29udGludWVTZW50aW5lbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb250ZXh0Lm1ldGhvZCA9IFwidGhyb3dcIjtcbiAgICAgICAgY29udGV4dC5hcmcgPSBuZXcgVHlwZUVycm9yKFxuICAgICAgICAgIFwiVGhlIGl0ZXJhdG9yIGRvZXMgbm90IHByb3ZpZGUgYSAndGhyb3cnIG1ldGhvZFwiKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIENvbnRpbnVlU2VudGluZWw7XG4gICAgfVxuXG4gICAgdmFyIHJlY29yZCA9IHRyeUNhdGNoKG1ldGhvZCwgZGVsZWdhdGUuaXRlcmF0b3IsIGNvbnRleHQuYXJnKTtcblxuICAgIGlmIChyZWNvcmQudHlwZSA9PT0gXCJ0aHJvd1wiKSB7XG4gICAgICBjb250ZXh0Lm1ldGhvZCA9IFwidGhyb3dcIjtcbiAgICAgIGNvbnRleHQuYXJnID0gcmVjb3JkLmFyZztcbiAgICAgIGNvbnRleHQuZGVsZWdhdGUgPSBudWxsO1xuICAgICAgcmV0dXJuIENvbnRpbnVlU2VudGluZWw7XG4gICAgfVxuXG4gICAgdmFyIGluZm8gPSByZWNvcmQuYXJnO1xuXG4gICAgaWYgKCEgaW5mbykge1xuICAgICAgY29udGV4dC5tZXRob2QgPSBcInRocm93XCI7XG4gICAgICBjb250ZXh0LmFyZyA9IG5ldyBUeXBlRXJyb3IoXCJpdGVyYXRvciByZXN1bHQgaXMgbm90IGFuIG9iamVjdFwiKTtcbiAgICAgIGNvbnRleHQuZGVsZWdhdGUgPSBudWxsO1xuICAgICAgcmV0dXJuIENvbnRpbnVlU2VudGluZWw7XG4gICAgfVxuXG4gICAgaWYgKGluZm8uZG9uZSkge1xuICAgICAgLy8gQXNzaWduIHRoZSByZXN1bHQgb2YgdGhlIGZpbmlzaGVkIGRlbGVnYXRlIHRvIHRoZSB0ZW1wb3JhcnlcbiAgICAgIC8vIHZhcmlhYmxlIHNwZWNpZmllZCBieSBkZWxlZ2F0ZS5yZXN1bHROYW1lIChzZWUgZGVsZWdhdGVZaWVsZCkuXG4gICAgICBjb250ZXh0W2RlbGVnYXRlLnJlc3VsdE5hbWVdID0gaW5mby52YWx1ZTtcblxuICAgICAgLy8gUmVzdW1lIGV4ZWN1dGlvbiBhdCB0aGUgZGVzaXJlZCBsb2NhdGlvbiAoc2VlIGRlbGVnYXRlWWllbGQpLlxuICAgICAgY29udGV4dC5uZXh0ID0gZGVsZWdhdGUubmV4dExvYztcblxuICAgICAgLy8gSWYgY29udGV4dC5tZXRob2Qgd2FzIFwidGhyb3dcIiBidXQgdGhlIGRlbGVnYXRlIGhhbmRsZWQgdGhlXG4gICAgICAvLyBleGNlcHRpb24sIGxldCB0aGUgb3V0ZXIgZ2VuZXJhdG9yIHByb2NlZWQgbm9ybWFsbHkuIElmXG4gICAgICAvLyBjb250ZXh0Lm1ldGhvZCB3YXMgXCJuZXh0XCIsIGZvcmdldCBjb250ZXh0LmFyZyBzaW5jZSBpdCBoYXMgYmVlblxuICAgICAgLy8gXCJjb25zdW1lZFwiIGJ5IHRoZSBkZWxlZ2F0ZSBpdGVyYXRvci4gSWYgY29udGV4dC5tZXRob2Qgd2FzXG4gICAgICAvLyBcInJldHVyblwiLCBhbGxvdyB0aGUgb3JpZ2luYWwgLnJldHVybiBjYWxsIHRvIGNvbnRpbnVlIGluIHRoZVxuICAgICAgLy8gb3V0ZXIgZ2VuZXJhdG9yLlxuICAgICAgaWYgKGNvbnRleHQubWV0aG9kICE9PSBcInJldHVyblwiKSB7XG4gICAgICAgIGNvbnRleHQubWV0aG9kID0gXCJuZXh0XCI7XG4gICAgICAgIGNvbnRleHQuYXJnID0gdW5kZWZpbmVkO1xuICAgICAgfVxuXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFJlLXlpZWxkIHRoZSByZXN1bHQgcmV0dXJuZWQgYnkgdGhlIGRlbGVnYXRlIG1ldGhvZC5cbiAgICAgIHJldHVybiBpbmZvO1xuICAgIH1cblxuICAgIC8vIFRoZSBkZWxlZ2F0ZSBpdGVyYXRvciBpcyBmaW5pc2hlZCwgc28gZm9yZ2V0IGl0IGFuZCBjb250aW51ZSB3aXRoXG4gICAgLy8gdGhlIG91dGVyIGdlbmVyYXRvci5cbiAgICBjb250ZXh0LmRlbGVnYXRlID0gbnVsbDtcbiAgICByZXR1cm4gQ29udGludWVTZW50aW5lbDtcbiAgfVxuXG4gIC8vIERlZmluZSBHZW5lcmF0b3IucHJvdG90eXBlLntuZXh0LHRocm93LHJldHVybn0gaW4gdGVybXMgb2YgdGhlXG4gIC8vIHVuaWZpZWQgLl9pbnZva2UgaGVscGVyIG1ldGhvZC5cbiAgZGVmaW5lSXRlcmF0b3JNZXRob2RzKEdwKTtcblxuICBkZWZpbmUoR3AsIHRvU3RyaW5nVGFnU3ltYm9sLCBcIkdlbmVyYXRvclwiKTtcblxuICAvLyBBIEdlbmVyYXRvciBzaG91bGQgYWx3YXlzIHJldHVybiBpdHNlbGYgYXMgdGhlIGl0ZXJhdG9yIG9iamVjdCB3aGVuIHRoZVxuICAvLyBAQGl0ZXJhdG9yIGZ1bmN0aW9uIGlzIGNhbGxlZCBvbiBpdC4gU29tZSBicm93c2VycycgaW1wbGVtZW50YXRpb25zIG9mIHRoZVxuICAvLyBpdGVyYXRvciBwcm90b3R5cGUgY2hhaW4gaW5jb3JyZWN0bHkgaW1wbGVtZW50IHRoaXMsIGNhdXNpbmcgdGhlIEdlbmVyYXRvclxuICAvLyBvYmplY3QgdG8gbm90IGJlIHJldHVybmVkIGZyb20gdGhpcyBjYWxsLiBUaGlzIGVuc3VyZXMgdGhhdCBkb2Vzbid0IGhhcHBlbi5cbiAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWdlbmVyYXRvci9pc3N1ZXMvMjc0IGZvciBtb3JlIGRldGFpbHMuXG4gIEdwW2l0ZXJhdG9yU3ltYm9sXSA9IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIEdwLnRvU3RyaW5nID0gZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIFwiW29iamVjdCBHZW5lcmF0b3JdXCI7XG4gIH07XG5cbiAgZnVuY3Rpb24gcHVzaFRyeUVudHJ5KGxvY3MpIHtcbiAgICB2YXIgZW50cnkgPSB7IHRyeUxvYzogbG9jc1swXSB9O1xuXG4gICAgaWYgKDEgaW4gbG9jcykge1xuICAgICAgZW50cnkuY2F0Y2hMb2MgPSBsb2NzWzFdO1xuICAgIH1cblxuICAgIGlmICgyIGluIGxvY3MpIHtcbiAgICAgIGVudHJ5LmZpbmFsbHlMb2MgPSBsb2NzWzJdO1xuICAgICAgZW50cnkuYWZ0ZXJMb2MgPSBsb2NzWzNdO1xuICAgIH1cblxuICAgIHRoaXMudHJ5RW50cmllcy5wdXNoKGVudHJ5KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlc2V0VHJ5RW50cnkoZW50cnkpIHtcbiAgICB2YXIgcmVjb3JkID0gZW50cnkuY29tcGxldGlvbiB8fCB7fTtcbiAgICByZWNvcmQudHlwZSA9IFwibm9ybWFsXCI7XG4gICAgZGVsZXRlIHJlY29yZC5hcmc7XG4gICAgZW50cnkuY29tcGxldGlvbiA9IHJlY29yZDtcbiAgfVxuXG4gIGZ1bmN0aW9uIENvbnRleHQodHJ5TG9jc0xpc3QpIHtcbiAgICAvLyBUaGUgcm9vdCBlbnRyeSBvYmplY3QgKGVmZmVjdGl2ZWx5IGEgdHJ5IHN0YXRlbWVudCB3aXRob3V0IGEgY2F0Y2hcbiAgICAvLyBvciBhIGZpbmFsbHkgYmxvY2spIGdpdmVzIHVzIGEgcGxhY2UgdG8gc3RvcmUgdmFsdWVzIHRocm93biBmcm9tXG4gICAgLy8gbG9jYXRpb25zIHdoZXJlIHRoZXJlIGlzIG5vIGVuY2xvc2luZyB0cnkgc3RhdGVtZW50LlxuICAgIHRoaXMudHJ5RW50cmllcyA9IFt7IHRyeUxvYzogXCJyb290XCIgfV07XG4gICAgdHJ5TG9jc0xpc3QuZm9yRWFjaChwdXNoVHJ5RW50cnksIHRoaXMpO1xuICAgIHRoaXMucmVzZXQodHJ1ZSk7XG4gIH1cblxuICBleHBvcnRzLmtleXMgPSBmdW5jdGlvbihvYmplY3QpIHtcbiAgICB2YXIga2V5cyA9IFtdO1xuICAgIGZvciAodmFyIGtleSBpbiBvYmplY3QpIHtcbiAgICAgIGtleXMucHVzaChrZXkpO1xuICAgIH1cbiAgICBrZXlzLnJldmVyc2UoKTtcblxuICAgIC8vIFJhdGhlciB0aGFuIHJldHVybmluZyBhbiBvYmplY3Qgd2l0aCBhIG5leHQgbWV0aG9kLCB3ZSBrZWVwXG4gICAgLy8gdGhpbmdzIHNpbXBsZSBhbmQgcmV0dXJuIHRoZSBuZXh0IGZ1bmN0aW9uIGl0c2VsZi5cbiAgICByZXR1cm4gZnVuY3Rpb24gbmV4dCgpIHtcbiAgICAgIHdoaWxlIChrZXlzLmxlbmd0aCkge1xuICAgICAgICB2YXIga2V5ID0ga2V5cy5wb3AoKTtcbiAgICAgICAgaWYgKGtleSBpbiBvYmplY3QpIHtcbiAgICAgICAgICBuZXh0LnZhbHVlID0ga2V5O1xuICAgICAgICAgIG5leHQuZG9uZSA9IGZhbHNlO1xuICAgICAgICAgIHJldHVybiBuZXh0O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFRvIGF2b2lkIGNyZWF0aW5nIGFuIGFkZGl0aW9uYWwgb2JqZWN0LCB3ZSBqdXN0IGhhbmcgdGhlIC52YWx1ZVxuICAgICAgLy8gYW5kIC5kb25lIHByb3BlcnRpZXMgb2ZmIHRoZSBuZXh0IGZ1bmN0aW9uIG9iamVjdCBpdHNlbGYuIFRoaXNcbiAgICAgIC8vIGFsc28gZW5zdXJlcyB0aGF0IHRoZSBtaW5pZmllciB3aWxsIG5vdCBhbm9ueW1pemUgdGhlIGZ1bmN0aW9uLlxuICAgICAgbmV4dC5kb25lID0gdHJ1ZTtcbiAgICAgIHJldHVybiBuZXh0O1xuICAgIH07XG4gIH07XG5cbiAgZnVuY3Rpb24gdmFsdWVzKGl0ZXJhYmxlKSB7XG4gICAgaWYgKGl0ZXJhYmxlKSB7XG4gICAgICB2YXIgaXRlcmF0b3JNZXRob2QgPSBpdGVyYWJsZVtpdGVyYXRvclN5bWJvbF07XG4gICAgICBpZiAoaXRlcmF0b3JNZXRob2QpIHtcbiAgICAgICAgcmV0dXJuIGl0ZXJhdG9yTWV0aG9kLmNhbGwoaXRlcmFibGUpO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIGl0ZXJhYmxlLm5leHQgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICByZXR1cm4gaXRlcmFibGU7XG4gICAgICB9XG5cbiAgICAgIGlmICghaXNOYU4oaXRlcmFibGUubGVuZ3RoKSkge1xuICAgICAgICB2YXIgaSA9IC0xLCBuZXh0ID0gZnVuY3Rpb24gbmV4dCgpIHtcbiAgICAgICAgICB3aGlsZSAoKytpIDwgaXRlcmFibGUubGVuZ3RoKSB7XG4gICAgICAgICAgICBpZiAoaGFzT3duLmNhbGwoaXRlcmFibGUsIGkpKSB7XG4gICAgICAgICAgICAgIG5leHQudmFsdWUgPSBpdGVyYWJsZVtpXTtcbiAgICAgICAgICAgICAgbmV4dC5kb25lID0gZmFsc2U7XG4gICAgICAgICAgICAgIHJldHVybiBuZXh0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIG5leHQudmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgbmV4dC5kb25lID0gdHJ1ZTtcblxuICAgICAgICAgIHJldHVybiBuZXh0O1xuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBuZXh0Lm5leHQgPSBuZXh0O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJldHVybiBhbiBpdGVyYXRvciB3aXRoIG5vIHZhbHVlcy5cbiAgICByZXR1cm4geyBuZXh0OiBkb25lUmVzdWx0IH07XG4gIH1cbiAgZXhwb3J0cy52YWx1ZXMgPSB2YWx1ZXM7XG5cbiAgZnVuY3Rpb24gZG9uZVJlc3VsdCgpIHtcbiAgICByZXR1cm4geyB2YWx1ZTogdW5kZWZpbmVkLCBkb25lOiB0cnVlIH07XG4gIH1cblxuICBDb250ZXh0LnByb3RvdHlwZSA9IHtcbiAgICBjb25zdHJ1Y3RvcjogQ29udGV4dCxcblxuICAgIHJlc2V0OiBmdW5jdGlvbihza2lwVGVtcFJlc2V0KSB7XG4gICAgICB0aGlzLnByZXYgPSAwO1xuICAgICAgdGhpcy5uZXh0ID0gMDtcbiAgICAgIC8vIFJlc2V0dGluZyBjb250ZXh0Ll9zZW50IGZvciBsZWdhY3kgc3VwcG9ydCBvZiBCYWJlbCdzXG4gICAgICAvLyBmdW5jdGlvbi5zZW50IGltcGxlbWVudGF0aW9uLlxuICAgICAgdGhpcy5zZW50ID0gdGhpcy5fc2VudCA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuZG9uZSA9IGZhbHNlO1xuICAgICAgdGhpcy5kZWxlZ2F0ZSA9IG51bGw7XG5cbiAgICAgIHRoaXMubWV0aG9kID0gXCJuZXh0XCI7XG4gICAgICB0aGlzLmFyZyA9IHVuZGVmaW5lZDtcblxuICAgICAgdGhpcy50cnlFbnRyaWVzLmZvckVhY2gocmVzZXRUcnlFbnRyeSk7XG5cbiAgICAgIGlmICghc2tpcFRlbXBSZXNldCkge1xuICAgICAgICBmb3IgKHZhciBuYW1lIGluIHRoaXMpIHtcbiAgICAgICAgICAvLyBOb3Qgc3VyZSBhYm91dCB0aGUgb3B0aW1hbCBvcmRlciBvZiB0aGVzZSBjb25kaXRpb25zOlxuICAgICAgICAgIGlmIChuYW1lLmNoYXJBdCgwKSA9PT0gXCJ0XCIgJiZcbiAgICAgICAgICAgICAgaGFzT3duLmNhbGwodGhpcywgbmFtZSkgJiZcbiAgICAgICAgICAgICAgIWlzTmFOKCtuYW1lLnNsaWNlKDEpKSkge1xuICAgICAgICAgICAgdGhpc1tuYW1lXSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuXG4gICAgc3RvcDogZnVuY3Rpb24oKSB7XG4gICAgICB0aGlzLmRvbmUgPSB0cnVlO1xuXG4gICAgICB2YXIgcm9vdEVudHJ5ID0gdGhpcy50cnlFbnRyaWVzWzBdO1xuICAgICAgdmFyIHJvb3RSZWNvcmQgPSByb290RW50cnkuY29tcGxldGlvbjtcbiAgICAgIGlmIChyb290UmVjb3JkLnR5cGUgPT09IFwidGhyb3dcIikge1xuICAgICAgICB0aHJvdyByb290UmVjb3JkLmFyZztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXMucnZhbDtcbiAgICB9LFxuXG4gICAgZGlzcGF0Y2hFeGNlcHRpb246IGZ1bmN0aW9uKGV4Y2VwdGlvbikge1xuICAgICAgaWYgKHRoaXMuZG9uZSkge1xuICAgICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgICB9XG5cbiAgICAgIHZhciBjb250ZXh0ID0gdGhpcztcbiAgICAgIGZ1bmN0aW9uIGhhbmRsZShsb2MsIGNhdWdodCkge1xuICAgICAgICByZWNvcmQudHlwZSA9IFwidGhyb3dcIjtcbiAgICAgICAgcmVjb3JkLmFyZyA9IGV4Y2VwdGlvbjtcbiAgICAgICAgY29udGV4dC5uZXh0ID0gbG9jO1xuXG4gICAgICAgIGlmIChjYXVnaHQpIHtcbiAgICAgICAgICAvLyBJZiB0aGUgZGlzcGF0Y2hlZCBleGNlcHRpb24gd2FzIGNhdWdodCBieSBhIGNhdGNoIGJsb2NrLFxuICAgICAgICAgIC8vIHRoZW4gbGV0IHRoYXQgY2F0Y2ggYmxvY2sgaGFuZGxlIHRoZSBleGNlcHRpb24gbm9ybWFsbHkuXG4gICAgICAgICAgY29udGV4dC5tZXRob2QgPSBcIm5leHRcIjtcbiAgICAgICAgICBjb250ZXh0LmFyZyA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAhISBjYXVnaHQ7XG4gICAgICB9XG5cbiAgICAgIGZvciAodmFyIGkgPSB0aGlzLnRyeUVudHJpZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyAtLWkpIHtcbiAgICAgICAgdmFyIGVudHJ5ID0gdGhpcy50cnlFbnRyaWVzW2ldO1xuICAgICAgICB2YXIgcmVjb3JkID0gZW50cnkuY29tcGxldGlvbjtcblxuICAgICAgICBpZiAoZW50cnkudHJ5TG9jID09PSBcInJvb3RcIikge1xuICAgICAgICAgIC8vIEV4Y2VwdGlvbiB0aHJvd24gb3V0c2lkZSBvZiBhbnkgdHJ5IGJsb2NrIHRoYXQgY291bGQgaGFuZGxlXG4gICAgICAgICAgLy8gaXQsIHNvIHNldCB0aGUgY29tcGxldGlvbiB2YWx1ZSBvZiB0aGUgZW50aXJlIGZ1bmN0aW9uIHRvXG4gICAgICAgICAgLy8gdGhyb3cgdGhlIGV4Y2VwdGlvbi5cbiAgICAgICAgICByZXR1cm4gaGFuZGxlKFwiZW5kXCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGVudHJ5LnRyeUxvYyA8PSB0aGlzLnByZXYpIHtcbiAgICAgICAgICB2YXIgaGFzQ2F0Y2ggPSBoYXNPd24uY2FsbChlbnRyeSwgXCJjYXRjaExvY1wiKTtcbiAgICAgICAgICB2YXIgaGFzRmluYWxseSA9IGhhc093bi5jYWxsKGVudHJ5LCBcImZpbmFsbHlMb2NcIik7XG5cbiAgICAgICAgICBpZiAoaGFzQ2F0Y2ggJiYgaGFzRmluYWxseSkge1xuICAgICAgICAgICAgaWYgKHRoaXMucHJldiA8IGVudHJ5LmNhdGNoTG9jKSB7XG4gICAgICAgICAgICAgIHJldHVybiBoYW5kbGUoZW50cnkuY2F0Y2hMb2MsIHRydWUpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnByZXYgPCBlbnRyeS5maW5hbGx5TG9jKSB7XG4gICAgICAgICAgICAgIHJldHVybiBoYW5kbGUoZW50cnkuZmluYWxseUxvYyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICB9IGVsc2UgaWYgKGhhc0NhdGNoKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5wcmV2IDwgZW50cnkuY2F0Y2hMb2MpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGhhbmRsZShlbnRyeS5jYXRjaExvYywgdHJ1ZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICB9IGVsc2UgaWYgKGhhc0ZpbmFsbHkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnByZXYgPCBlbnRyeS5maW5hbGx5TG9jKSB7XG4gICAgICAgICAgICAgIHJldHVybiBoYW5kbGUoZW50cnkuZmluYWxseUxvYyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwidHJ5IHN0YXRlbWVudCB3aXRob3V0IGNhdGNoIG9yIGZpbmFsbHlcIik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcblxuICAgIGFicnVwdDogZnVuY3Rpb24odHlwZSwgYXJnKSB7XG4gICAgICBmb3IgKHZhciBpID0gdGhpcy50cnlFbnRyaWVzLmxlbmd0aCAtIDE7IGkgPj0gMDsgLS1pKSB7XG4gICAgICAgIHZhciBlbnRyeSA9IHRoaXMudHJ5RW50cmllc1tpXTtcbiAgICAgICAgaWYgKGVudHJ5LnRyeUxvYyA8PSB0aGlzLnByZXYgJiZcbiAgICAgICAgICAgIGhhc093bi5jYWxsKGVudHJ5LCBcImZpbmFsbHlMb2NcIikgJiZcbiAgICAgICAgICAgIHRoaXMucHJldiA8IGVudHJ5LmZpbmFsbHlMb2MpIHtcbiAgICAgICAgICB2YXIgZmluYWxseUVudHJ5ID0gZW50cnk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGZpbmFsbHlFbnRyeSAmJlxuICAgICAgICAgICh0eXBlID09PSBcImJyZWFrXCIgfHxcbiAgICAgICAgICAgdHlwZSA9PT0gXCJjb250aW51ZVwiKSAmJlxuICAgICAgICAgIGZpbmFsbHlFbnRyeS50cnlMb2MgPD0gYXJnICYmXG4gICAgICAgICAgYXJnIDw9IGZpbmFsbHlFbnRyeS5maW5hbGx5TG9jKSB7XG4gICAgICAgIC8vIElnbm9yZSB0aGUgZmluYWxseSBlbnRyeSBpZiBjb250cm9sIGlzIG5vdCBqdW1waW5nIHRvIGFcbiAgICAgICAgLy8gbG9jYXRpb24gb3V0c2lkZSB0aGUgdHJ5L2NhdGNoIGJsb2NrLlxuICAgICAgICBmaW5hbGx5RW50cnkgPSBudWxsO1xuICAgICAgfVxuXG4gICAgICB2YXIgcmVjb3JkID0gZmluYWxseUVudHJ5ID8gZmluYWxseUVudHJ5LmNvbXBsZXRpb24gOiB7fTtcbiAgICAgIHJlY29yZC50eXBlID0gdHlwZTtcbiAgICAgIHJlY29yZC5hcmcgPSBhcmc7XG5cbiAgICAgIGlmIChmaW5hbGx5RW50cnkpIHtcbiAgICAgICAgdGhpcy5tZXRob2QgPSBcIm5leHRcIjtcbiAgICAgICAgdGhpcy5uZXh0ID0gZmluYWxseUVudHJ5LmZpbmFsbHlMb2M7XG4gICAgICAgIHJldHVybiBDb250aW51ZVNlbnRpbmVsO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5jb21wbGV0ZShyZWNvcmQpO1xuICAgIH0sXG5cbiAgICBjb21wbGV0ZTogZnVuY3Rpb24ocmVjb3JkLCBhZnRlckxvYykge1xuICAgICAgaWYgKHJlY29yZC50eXBlID09PSBcInRocm93XCIpIHtcbiAgICAgICAgdGhyb3cgcmVjb3JkLmFyZztcbiAgICAgIH1cblxuICAgICAgaWYgKHJlY29yZC50eXBlID09PSBcImJyZWFrXCIgfHxcbiAgICAgICAgICByZWNvcmQudHlwZSA9PT0gXCJjb250aW51ZVwiKSB7XG4gICAgICAgIHRoaXMubmV4dCA9IHJlY29yZC5hcmc7XG4gICAgICB9IGVsc2UgaWYgKHJlY29yZC50eXBlID09PSBcInJldHVyblwiKSB7XG4gICAgICAgIHRoaXMucnZhbCA9IHRoaXMuYXJnID0gcmVjb3JkLmFyZztcbiAgICAgICAgdGhpcy5tZXRob2QgPSBcInJldHVyblwiO1xuICAgICAgICB0aGlzLm5leHQgPSBcImVuZFwiO1xuICAgICAgfSBlbHNlIGlmIChyZWNvcmQudHlwZSA9PT0gXCJub3JtYWxcIiAmJiBhZnRlckxvYykge1xuICAgICAgICB0aGlzLm5leHQgPSBhZnRlckxvYztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIENvbnRpbnVlU2VudGluZWw7XG4gICAgfSxcblxuICAgIGZpbmlzaDogZnVuY3Rpb24oZmluYWxseUxvYykge1xuICAgICAgZm9yICh2YXIgaSA9IHRoaXMudHJ5RW50cmllcy5sZW5ndGggLSAxOyBpID49IDA7IC0taSkge1xuICAgICAgICB2YXIgZW50cnkgPSB0aGlzLnRyeUVudHJpZXNbaV07XG4gICAgICAgIGlmIChlbnRyeS5maW5hbGx5TG9jID09PSBmaW5hbGx5TG9jKSB7XG4gICAgICAgICAgdGhpcy5jb21wbGV0ZShlbnRyeS5jb21wbGV0aW9uLCBlbnRyeS5hZnRlckxvYyk7XG4gICAgICAgICAgcmVzZXRUcnlFbnRyeShlbnRyeSk7XG4gICAgICAgICAgcmV0dXJuIENvbnRpbnVlU2VudGluZWw7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuXG4gICAgXCJjYXRjaFwiOiBmdW5jdGlvbih0cnlMb2MpIHtcbiAgICAgIGZvciAodmFyIGkgPSB0aGlzLnRyeUVudHJpZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyAtLWkpIHtcbiAgICAgICAgdmFyIGVudHJ5ID0gdGhpcy50cnlFbnRyaWVzW2ldO1xuICAgICAgICBpZiAoZW50cnkudHJ5TG9jID09PSB0cnlMb2MpIHtcbiAgICAgICAgICB2YXIgcmVjb3JkID0gZW50cnkuY29tcGxldGlvbjtcbiAgICAgICAgICBpZiAocmVjb3JkLnR5cGUgPT09IFwidGhyb3dcIikge1xuICAgICAgICAgICAgdmFyIHRocm93biA9IHJlY29yZC5hcmc7XG4gICAgICAgICAgICByZXNldFRyeUVudHJ5KGVudHJ5KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRocm93bjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBUaGUgY29udGV4dC5jYXRjaCBtZXRob2QgbXVzdCBvbmx5IGJlIGNhbGxlZCB3aXRoIGEgbG9jYXRpb25cbiAgICAgIC8vIGFyZ3VtZW50IHRoYXQgY29ycmVzcG9uZHMgdG8gYSBrbm93biBjYXRjaCBibG9jay5cbiAgICAgIHRocm93IG5ldyBFcnJvcihcImlsbGVnYWwgY2F0Y2ggYXR0ZW1wdFwiKTtcbiAgICB9LFxuXG4gICAgZGVsZWdhdGVZaWVsZDogZnVuY3Rpb24oaXRlcmFibGUsIHJlc3VsdE5hbWUsIG5leHRMb2MpIHtcbiAgICAgIHRoaXMuZGVsZWdhdGUgPSB7XG4gICAgICAgIGl0ZXJhdG9yOiB2YWx1ZXMoaXRlcmFibGUpLFxuICAgICAgICByZXN1bHROYW1lOiByZXN1bHROYW1lLFxuICAgICAgICBuZXh0TG9jOiBuZXh0TG9jXG4gICAgICB9O1xuXG4gICAgICBpZiAodGhpcy5tZXRob2QgPT09IFwibmV4dFwiKSB7XG4gICAgICAgIC8vIERlbGliZXJhdGVseSBmb3JnZXQgdGhlIGxhc3Qgc2VudCB2YWx1ZSBzbyB0aGF0IHdlIGRvbid0XG4gICAgICAgIC8vIGFjY2lkZW50YWxseSBwYXNzIGl0IG9uIHRvIHRoZSBkZWxlZ2F0ZS5cbiAgICAgICAgdGhpcy5hcmcgPSB1bmRlZmluZWQ7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBDb250aW51ZVNlbnRpbmVsO1xuICAgIH1cbiAgfTtcblxuICAvLyBSZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhpcyBzY3JpcHQgaXMgZXhlY3V0aW5nIGFzIGEgQ29tbW9uSlMgbW9kdWxlXG4gIC8vIG9yIG5vdCwgcmV0dXJuIHRoZSBydW50aW1lIG9iamVjdCBzbyB0aGF0IHdlIGNhbiBkZWNsYXJlIHRoZSB2YXJpYWJsZVxuICAvLyByZWdlbmVyYXRvclJ1bnRpbWUgaW4gdGhlIG91dGVyIHNjb3BlLCB3aGljaCBhbGxvd3MgdGhpcyBtb2R1bGUgdG8gYmVcbiAgLy8gaW5qZWN0ZWQgZWFzaWx5IGJ5IGBiaW4vcmVnZW5lcmF0b3IgLS1pbmNsdWRlLXJ1bnRpbWUgc2NyaXB0LmpzYC5cbiAgcmV0dXJuIGV4cG9ydHM7XG5cbn0oXG4gIC8vIElmIHRoaXMgc2NyaXB0IGlzIGV4ZWN1dGluZyBhcyBhIENvbW1vbkpTIG1vZHVsZSwgdXNlIG1vZHVsZS5leHBvcnRzXG4gIC8vIGFzIHRoZSByZWdlbmVyYXRvclJ1bnRpbWUgbmFtZXNwYWNlLiBPdGhlcndpc2UgY3JlYXRlIGEgbmV3IGVtcHR5XG4gIC8vIG9iamVjdC4gRWl0aGVyIHdheSwgdGhlIHJlc3VsdGluZyBvYmplY3Qgd2lsbCBiZSB1c2VkIHRvIGluaXRpYWxpemVcbiAgLy8gdGhlIHJlZ2VuZXJhdG9yUnVudGltZSB2YXJpYWJsZSBhdCB0aGUgdG9wIG9mIHRoaXMgZmlsZS5cbiAgdHlwZW9mIG1vZHVsZSA9PT0gXCJvYmplY3RcIiA/IG1vZHVsZS5leHBvcnRzIDoge31cbikpO1xuXG50cnkge1xuICByZWdlbmVyYXRvclJ1bnRpbWUgPSBydW50aW1lO1xufSBjYXRjaCAoYWNjaWRlbnRhbFN0cmljdE1vZGUpIHtcbiAgLy8gVGhpcyBtb2R1bGUgc2hvdWxkIG5vdCBiZSBydW5uaW5nIGluIHN0cmljdCBtb2RlLCBzbyB0aGUgYWJvdmVcbiAgLy8gYXNzaWdubWVudCBzaG91bGQgYWx3YXlzIHdvcmsgdW5sZXNzIHNvbWV0aGluZyBpcyBtaXNjb25maWd1cmVkLiBKdXN0XG4gIC8vIGluIGNhc2UgcnVudGltZS5qcyBhY2NpZGVudGFsbHkgcnVucyBpbiBzdHJpY3QgbW9kZSwgd2UgY2FuIGVzY2FwZVxuICAvLyBzdHJpY3QgbW9kZSB1c2luZyBhIGdsb2JhbCBGdW5jdGlvbiBjYWxsLiBUaGlzIGNvdWxkIGNvbmNlaXZhYmx5IGZhaWxcbiAgLy8gaWYgYSBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBmb3JiaWRzIHVzaW5nIEZ1bmN0aW9uLCBidXQgaW4gdGhhdCBjYXNlXG4gIC8vIHRoZSBwcm9wZXIgc29sdXRpb24gaXMgdG8gZml4IHRoZSBhY2NpZGVudGFsIHN0cmljdCBtb2RlIHByb2JsZW0uIElmXG4gIC8vIHlvdSd2ZSBtaXNjb25maWd1cmVkIHlvdXIgYnVuZGxlciB0byBmb3JjZSBzdHJpY3QgbW9kZSBhbmQgYXBwbGllZCBhXG4gIC8vIENTUCB0byBmb3JiaWQgRnVuY3Rpb24sIGFuZCB5b3UncmUgbm90IHdpbGxpbmcgdG8gZml4IGVpdGhlciBvZiB0aG9zZVxuICAvLyBwcm9ibGVtcywgcGxlYXNlIGRldGFpbCB5b3VyIHVuaXF1ZSBwcmVkaWNhbWVudCBpbiBhIEdpdEh1YiBpc3N1ZS5cbiAgRnVuY3Rpb24oXCJyXCIsIFwicmVnZW5lcmF0b3JSdW50aW1lID0gclwiKShydW50aW1lKTtcbn1cbiIsIi8qKiBAbGljZW5zZSBJU0MgTGljZW5zZSAoYykgY29weXJpZ2h0IDIwMTYgb3JpZ2luYWwgYW5kIGN1cnJlbnQgYXV0aG9ycyAqL1xuLyoqIEBhdXRob3IgSWFuIEhvZm1hbm4tSGlja3MgKGV2aWwpICovXG5cbnZhciBWRVJTSU9OID0gNFxuXG52YXIgX2RlZmluZVVuaW9uID0gcmVxdWlyZSgnLi9kZWZpbmVVbmlvbicpXG52YXIgX2VxdWFscyA9IHJlcXVpcmUoJy4vZXF1YWxzJylcbnZhciBfaW1wbGVtZW50cyA9IHJlcXVpcmUoJy4vaW1wbGVtZW50cycpXG52YXIgX2lubmVyQ29uY2F0ID0gcmVxdWlyZSgnLi9pbm5lckNvbmNhdCcpXG52YXIgX2luc3BlY3QgPSByZXF1aXJlKCcuL2luc3BlY3QnKVxudmFyIHR5cGUgPSByZXF1aXJlKCcuL3R5cGVzJykudHlwZSgnTWF5YmUnKVxudmFyIF90eXBlID0gcmVxdWlyZSgnLi90eXBlcycpLnR5cGVGbih0eXBlKCksIFZFUlNJT04pXG52YXIgZmwgPSByZXF1aXJlKCcuL2ZsTmFtZXMnKVxuXG52YXIgYXBPckZ1bmMgPSByZXF1aXJlKCcuL2FwT3JGdW5jJylcbnZhciBjb21wb3NlID0gcmVxdWlyZSgnLi9jb21wb3NlJylcbnZhciBpc0FwcGxpY2F0aXZlID0gcmVxdWlyZSgnLi9pc0FwcGxpY2F0aXZlJylcbnZhciBpc0FwcGx5ID0gcmVxdWlyZSgnLi9pc0FwcGx5JylcbnZhciBpc0FycmF5ID0gcmVxdWlyZSgnLi9pc0FycmF5JylcbnZhciBpc0Z1bmN0aW9uID0gcmVxdWlyZSgnLi9pc0Z1bmN0aW9uJylcbnZhciBpc1NhbWVUeXBlID0gcmVxdWlyZSgnLi9pc1NhbWVUeXBlJylcblxudmFyIGNvbnN0YW50ID0gZnVuY3Rpb24gKHgpIHsgcmV0dXJuIGZ1bmN0aW9uICgpIHsgcmV0dXJuIHg7IH07IH1cbnZhciBpZGVudGl0eSA9IGZ1bmN0aW9uICh4KSB7IHJldHVybiB4OyB9XG5cbnZhciBfbWF5YmUgPVxuICBfZGVmaW5lVW5pb24oeyBOb3RoaW5nOiBbXSwgSnVzdDogWyAnYScgXSB9KVxuXG52YXIgTm90aGluZyA9XG4gIF9tYXliZS5Ob3RoaW5nXG5cbnZhciBKdXN0ID1cbiAgX21heWJlLkp1c3RcblxuTWF5YmUuTm90aGluZyA9XG4gIGNvbXBvc2UoTWF5YmUsIE5vdGhpbmcpXG5cbk1heWJlLkp1c3QgPVxuICBjb21wb3NlKE1heWJlLCBKdXN0KVxuXG52YXIgX29mID1cbiAgY29tcG9zZShNYXliZSwgSnVzdClcblxudmFyIF96ZXJvID1cbiAgY29tcG9zZShNYXliZSwgTm90aGluZylcblxuZnVuY3Rpb24gcnVuU2VxdWVuY2UoeCkge1xuICBpZighKGlzQXBwbHkoeCkgfHwgaXNBcnJheSh4KSkpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFxuICAgICAgJ01heWJlLnNlcXVlbmNlOiBNdXN0IHdyYXAgYW4gQXBwbHknXG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIHgubWFwKF9vZilcbn1cblxuZnVuY3Rpb24gTWF5YmUodSkge1xuICB2YXIgb2JqO1xuXG4gIGlmKCFhcmd1bWVudHMubGVuZ3RoKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignTWF5YmU6IE11c3Qgd3JhcCBzb21ldGhpbmcsIHRyeSB1c2luZyBOb3RoaW5nIG9yIEp1c3QgY29uc3RydWN0b3JzJylcbiAgfVxuXG4gIHZhciB4ID1cbiAgICAhX21heWJlLmluY2x1ZGVzKHUpID8gSnVzdCh1KSA6IHVcblxuICB2YXIgb2YgPVxuICAgIF9vZlxuXG4gIHZhciB6ZXJvID1cbiAgICBfemVyb1xuXG4gIHZhciBvcHRpb24gPVxuICAgIGZ1bmN0aW9uIChuKSB7IHJldHVybiBlaXRoZXIoY29uc3RhbnQobiksIGlkZW50aXR5KTsgfVxuXG4gIHZhciBlcXVhbHMgPVxuICAgIGZ1bmN0aW9uIChtKSB7IHJldHVybiBpc1NhbWVUeXBlKE1heWJlLCBtKSAmJiBlaXRoZXIoXG4gICAgICBjb25zdGFudChtLmVpdGhlcihjb25zdGFudCh0cnVlKSwgY29uc3RhbnQoZmFsc2UpKSksXG4gICAgICBmdW5jdGlvbiAoeCkgeyByZXR1cm4gbS5laXRoZXIoY29uc3RhbnQoZmFsc2UpLCBmdW5jdGlvbiAoeSkgeyByZXR1cm4gX2VxdWFscyh5LCB4KTsgfSk7IH1cbiAgICApOyB9XG5cbiAgdmFyIGluc3BlY3QgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBlaXRoZXIoXG4gICAgICBjb25zdGFudCgnTm90aGluZycpLFxuICAgICAgZnVuY3Rpb24gKHgpIHsgcmV0dXJuIChcIkp1c3RcIiArIChfaW5zcGVjdCh4KSkpOyB9XG4gICAgKTsgfVxuXG4gIGZ1bmN0aW9uIGVpdGhlcihmLCBnKSB7XG4gICAgaWYoIWlzRnVuY3Rpb24oZikgfHwgIWlzRnVuY3Rpb24oZykpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ01heWJlLmVpdGhlcjogUmVxdWlyZXMgYm90aCBsZWZ0IGFuZCByaWdodCBmdW5jdGlvbnMnKVxuICAgIH1cblxuICAgIHJldHVybiBfbWF5YmUuY2FzZU9mKHtcbiAgICAgIE5vdGhpbmc6IGYsXG4gICAgICBKdXN0OiBnXG4gICAgfSwgeClcbiAgfVxuXG4gIGZ1bmN0aW9uIGNvbmNhdChtZXRob2QpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24obSkge1xuICAgICAgaWYoIWlzU2FtZVR5cGUoTWF5YmUsIG0pKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoKFwiTWF5YmUuXCIgKyBtZXRob2QgKyBcIjogTWF5YmUgb2YgU2VtaWdyb3VwIHJlcXVpcmVkXCIpKVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZWl0aGVyKFxuICAgICAgICBNYXliZS5Ob3RoaW5nLFxuICAgICAgICBfaW5uZXJDb25jYXQoKFwiTWF5YmUuXCIgKyBtZXRob2QpLCBtKVxuICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGNvYWxlc2NlKGYsIGcpIHtcbiAgICBpZighaXNGdW5jdGlvbihmKSB8fCAhaXNGdW5jdGlvbihnKSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignTWF5YmUuY29hbGVzY2U6IFJlcXVpcmVzIGJvdGggbGVmdCBhbmQgcmlnaHQgZnVuY3Rpb25zJylcbiAgICB9XG5cbiAgICByZXR1cm4gTWF5YmUuSnVzdChlaXRoZXIoZiwgZykpXG4gIH1cblxuICBmdW5jdGlvbiBiaWNoYWluKGwsIHIpIHtcbiAgICB2YXIgYmljaGFpbkVyciA9XG4gICAgICAnTWF5YmUuYmljaGFpbjogQm90aCBhcmd1bWVudHMgbXVzdCBiZSBNYXliZSByZXR1cm5pbmcgZnVuY3Rpb25zJ1xuXG4gICAgaWYoIShpc0Z1bmN0aW9uKGwpICYmIGlzRnVuY3Rpb24ocikpKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGJpY2hhaW5FcnIpXG4gICAgfVxuXG4gICAgdmFyIG0gPSBlaXRoZXIobCwgcilcblxuICAgIGlmKCFpc1NhbWVUeXBlKE1heWJlLCBtKSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihiaWNoYWluRXJyKVxuICAgIH1cblxuICAgIHJldHVybiBtXG4gIH1cblxuICBmdW5jdGlvbiBtYXAobWV0aG9kKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uKGZuKSB7XG4gICAgICBpZighaXNGdW5jdGlvbihmbikpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigoXCJNYXliZS5cIiArIG1ldGhvZCArIFwiOiBGdW5jdGlvbiByZXF1aXJlZFwiKSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGVpdGhlcihcbiAgICAgICAgTWF5YmUuTm90aGluZyxcbiAgICAgICAgY29tcG9zZShNYXliZS5KdXN0LCBmbilcbiAgICAgIClcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBhbHQobWV0aG9kKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uKG0pIHtcbiAgICAgIGlmKCFpc1NhbWVUeXBlKE1heWJlLCBtKSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKChcIk1heWJlLlwiICsgbWV0aG9kICsgXCI6IE1heWJlIHJlcXVpcmVkXCIpKVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZWl0aGVyKFxuICAgICAgICBjb25zdGFudChtKSxcbiAgICAgICAgTWF5YmUuSnVzdFxuICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGFwKG0pIHtcbiAgICB2YXIgZm4gPSBvcHRpb24oY29uc3RhbnQodW5kZWZpbmVkKSlcblxuICAgIGlmKCFpc0Z1bmN0aW9uKGZuKSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignTWF5YmUuYXA6IFdyYXBwZWQgdmFsdWUgbXVzdCBiZSBhIGZ1bmN0aW9uJylcbiAgICB9XG5cbiAgICBlbHNlIGlmKCFpc1NhbWVUeXBlKE1heWJlLCBtKSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignTWF5YmUuYXA6IE1heWJlIHJlcXVpcmVkJylcbiAgICB9XG5cbiAgICByZXR1cm4gZWl0aGVyKFxuICAgICAgTWF5YmUuTm90aGluZyxcbiAgICAgIG0ubWFwXG4gICAgKVxuICB9XG5cbiAgZnVuY3Rpb24gY2hhaW4obWV0aG9kKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uKGZuKSB7XG4gICAgICBpZighaXNGdW5jdGlvbihmbikpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigoXCJNYXliZS5cIiArIG1ldGhvZCArIFwiOiBGdW5jdGlvbiByZXF1aXJlZFwiKSlcbiAgICAgIH1cblxuICAgICAgdmFyIG0gPSBlaXRoZXIoTWF5YmUuTm90aGluZywgZm4pXG5cbiAgICAgIGlmKCFpc1NhbWVUeXBlKE1heWJlLCBtKSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKChcIk1heWJlLlwiICsgbWV0aG9kICsgXCI6IEZ1bmN0aW9uIG11c3QgcmV0dXJuIGEgTWF5YmVcIikpXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBtXG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gc2VxdWVuY2UoZikge1xuICAgIGlmKCEoaXNBcHBsaWNhdGl2ZShmKSB8fCBpc0Z1bmN0aW9uKGYpKSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgICAgJ01heWJlLnNlcXVlbmNlOiBBcHBsaWNhdGl2ZSBUeXBlUmVwIG9yIEFwcGx5IHJldHVybmluZyBmdW5jdGlvbiByZXF1aXJlZCdcbiAgICAgIClcbiAgICB9XG5cbiAgICB2YXIgYWYgPVxuICAgICAgYXBPckZ1bmMoZilcblxuICAgIHJldHVybiBlaXRoZXIoXG4gICAgICBjb21wb3NlKGFmLCBNYXliZS5Ob3RoaW5nKSxcbiAgICAgIHJ1blNlcXVlbmNlXG4gICAgKVxuICB9XG5cbiAgZnVuY3Rpb24gdHJhdmVyc2UoZiwgZm4pIHtcbiAgICBpZighKGlzQXBwbGljYXRpdmUoZikgfHwgaXNGdW5jdGlvbihmKSkpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXG4gICAgICAgICdNYXliZS50cmF2ZXJzZTogQXBwbGljYXRpdmUgVHlwZVJlcCBvciBBcHBseSByZXR1cm5pbmcgZnVuY3Rpb24gcmVxdWlyZWQgZm9yIGZpcnN0IGFyZ3VtZW50J1xuICAgICAgKVxuICAgIH1cblxuICAgIGlmKCFpc0Z1bmN0aW9uKGZuKSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgICAgJ01heWJlLnRyYXZlcnNlOiBBcHBseSByZXR1cm5pbmcgZnVuY3Rpb24gcmVxdWlyZWQgZm9yIHNlY29uZCBhcmd1bWVudCdcbiAgICAgIClcbiAgICB9XG5cbiAgICB2YXIgYWYgPVxuICAgICAgYXBPckZ1bmMoZilcblxuICAgIHZhciBtID1cbiAgICAgIGVpdGhlcihjb21wb3NlKGFmLCBNYXliZS5Ob3RoaW5nKSwgZm4pXG5cbiAgICBpZighKGlzQXBwbHkobSkgfHwgaXNBcnJheShtKSkpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXG4gICAgICAgICdNYXliZS50cmF2ZXJzZTogQm90aCBmdW5jdGlvbnMgbXVzdCByZXR1cm4gYW4gQXBwbHkgb2YgdGhlIHNhbWUgdHlwZSdcbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gZWl0aGVyKFxuICAgICAgY29uc3RhbnQobSksXG4gICAgICBjb25zdGFudChtLm1hcChfb2YpKVxuICAgIClcbiAgfVxuXG4gIHJldHVybiAoIG9iaiA9IHtcbiAgICBpbnNwZWN0OiBpbnNwZWN0LCB0b1N0cmluZzogaW5zcGVjdCwgZWl0aGVyOiBlaXRoZXIsXG4gICAgb3B0aW9uOiBvcHRpb24sIHR5cGU6IHR5cGUsIGVxdWFsczogZXF1YWxzLCBiaWNoYWluOiBiaWNoYWluLCBjb2FsZXNjZTogY29hbGVzY2UsXG4gICAgemVybzogemVybywgYXA6IGFwLCBvZjogb2YsIHNlcXVlbmNlOiBzZXF1ZW5jZSxcbiAgICB0cmF2ZXJzZTogdHJhdmVyc2UsXG4gICAgYWx0OiBhbHQoJ2FsdCcpLFxuICAgIGNoYWluOiBjaGFpbignY2hhaW4nKSxcbiAgICBjb25jYXQ6IGNvbmNhdCgnY29uY2F0JyksXG4gICAgbWFwOiBtYXAoJ21hcCcpXG4gIH0sIG9ialtmbC56ZXJvXSA9IHplcm8sIG9ialtmbC5vZl0gPSBvZiwgb2JqW2ZsLmVxdWFsc10gPSBlcXVhbHMsIG9ialtmbC5hbHRdID0gYWx0KGZsLmFsdCksIG9ialtmbC5jb25jYXRdID0gY29uY2F0KGZsLmNvbmNhdCksIG9ialtmbC5tYXBdID0gbWFwKGZsLm1hcCksIG9ialtmbC5jaGFpbl0gPSBjaGFpbihmbC5jaGFpbiksIG9ialsnQEB0eXBlJ10gPSBfdHlwZSwgb2JqLmNvbnN0cnVjdG9yID0gTWF5YmUsIG9iaiApXG59XG5cbk1heWJlLm9mID0gX29mXG5NYXliZS56ZXJvID0gX3plcm9cbk1heWJlLnR5cGUgPSB0eXBlXG5cbk1heWJlW2ZsLm9mXSA9IF9vZlxuTWF5YmVbZmwuemVyb10gPSBfemVyb1xuTWF5YmVbJ0BAdHlwZSddID0gX3R5cGVcblxuTWF5YmVbJ0BAaW1wbGVtZW50cyddID0gX2ltcGxlbWVudHMoXG4gIFsgJ2FsdCcsICdhcCcsICdjaGFpbicsICdjb25jYXQnLCAnZXF1YWxzJywgJ21hcCcsICdvZicsICd0cmF2ZXJzZScsICd6ZXJvJyBdXG4pXG5cbm1vZHVsZS5leHBvcnRzID0gTWF5YmVcbiIsIi8qKiBAbGljZW5zZSBJU0MgTGljZW5zZSAoYykgY29weXJpZ2h0IDIwMTYgb3JpZ2luYWwgYW5kIGN1cnJlbnQgYXV0aG9ycyAqL1xuLyoqIEBhdXRob3IgSWFuIEhvZm1hbm4tSGlja3MgKGV2aWwpICovXG5cbnZhciBpc1N0cmluZyA9IHJlcXVpcmUoJy4vaXNTdHJpbmcnKVxudmFyIGhhc0FsZyA9IHJlcXVpcmUoJy4vaGFzQWxnJylcblxuLy8gaXNTZW1pZ3JvdXAgOiBhIC0+IEJvb2xlYW5cbmZ1bmN0aW9uIGlzU2VtaWdyb3VwKG0pIHtcbiAgcmV0dXJuIGlzU3RyaW5nKG0pXG4gICAgfHwgISFtICYmIGhhc0FsZygnY29uY2F0JywgbSlcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc1NlbWlncm91cFxuIiwiLyoqIEBsaWNlbnNlIElTQyBMaWNlbnNlIChjKSBjb3B5cmlnaHQgMjAxNyBvcmlnaW5hbCBhbmQgY3VycmVudCBhdXRob3JzICovXG4vKiogQGF1dGhvciBJYW4gSG9mbWFubi1IaWNrcyAoZXZpbCkgKi9cblxudmFyIGlzU2FtZVR5cGUgPSByZXF1aXJlKCcuL2lzU2FtZVR5cGUnKVxudmFyIGlzU2FtZSA9IHJlcXVpcmUoJy4vaXNTYW1lJylcbnZhciBoYXNBbGcgPSByZXF1aXJlKCcuL2hhc0FsZycpXG52YXIgdHlwZSA9IHJlcXVpcmUoJy4vdHlwZScpXG52YXIgZmwgPSByZXF1aXJlKCcuL2ZsTmFtZXMnKVxuXG52YXIgY29tcCA9IGZ1bmN0aW9uIChhLCBiKSB7IHJldHVybiBhLnZhbHVlT2YoKSA9PT0gYi52YWx1ZU9mKCk7IH1cblxudmFyIHN0cmF0cyA9IHtcbiAgJ0FycmF5JzogZnVuY3Rpb24gKGEsIGIpIHsgcmV0dXJuIGEubGVuZ3RoID09PSBiLmxlbmd0aFxuICAgICAgJiYgZGVlcEVxdWFscyhhLCBiKTsgfSxcblxuICAnRGF0ZSc6IGZ1bmN0aW9uIChhLCBiKSB7IHJldHVybiBpc1NhbWUoYS52YWx1ZU9mKCksIGIudmFsdWVPZigpKTsgfSxcblxuICAnRXJyb3InOiBmdW5jdGlvbiAoYSwgYikgeyByZXR1cm4gYS5uYW1lID09PSBiLm5hbWVcbiAgICAgICYmIGEubWVzc2FnZSA9PT0gYi5tZXNzYWdlOyB9LFxuXG4gICdPYmplY3QnOiBmdW5jdGlvbiAoYSwgYikgeyByZXR1cm4gT2JqZWN0LmtleXMoYSkubGVuZ3RoID09PSBPYmplY3Qua2V5cyhiKS5sZW5ndGhcbiAgICAgICYmIGRlZXBFcXVhbHMoYSwgYik7IH0sXG5cbiAgJ1JlZ0V4cCc6IGZ1bmN0aW9uIChhLCBiKSB7IHJldHVybiBhLnNvdXJjZSA9PT0gYi5zb3VyY2VcbiAgICAgICYmIGEuaWdub3JlQ2FzZSA9PT0gYi5pZ25vcmVDYXNlXG4gICAgICAmJiBhLmdsb2JhbCA9PT0gYi5nbG9iYWxcbiAgICAgICYmIGEubXVsdGlsaW5lID09PSBiLm11bHRpbGluZVxuICAgICAgJiYgYS51bmljb2RlID09PSBiLnVuaWNvZGU7IH1cbn1cblxuZnVuY3Rpb24gZGVlcEVxdWFscyhhLCBiKSB7XG4gIGZvcih2YXIga2V5IGluIGEpIHtcbiAgICBpZighZXF1YWxzKGFba2V5XSwgYltrZXldKSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuICB9XG4gIHJldHVybiB0cnVlXG59XG5cbmZ1bmN0aW9uIGVxdWFscyhhLCBiKSB7XG4gIGlmKGlzU2FtZShhLCBiKSkge1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICBpZighaXNTYW1lVHlwZShhLCBiKSkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgaWYoaGFzQWxnKCdlcXVhbHMnLCBhKSkge1xuICAgIHJldHVybiAoYltmbC5lcXVhbHNdIHx8IGIuZXF1YWxzKS5jYWxsKGIsIGEpXG4gIH1cblxuICByZXR1cm4gKHN0cmF0c1t0eXBlKGEpXSB8fCBjb21wKShhLCBiKVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGVxdWFsc1xuIiwiLyoqIEBsaWNlbnNlIElTQyBMaWNlbnNlIChjKSBjb3B5cmlnaHQgMjAxNyBvcmlnaW5hbCBhbmQgY3VycmVudCBhdXRob3JzICovXG4vKiogQGF1dGhvciBJYW4gSG9mbWFubi1IaWNrcyAoZXZpbCkgKi9cblxudmFyIGlzRnVuY3Rpb24gPSByZXF1aXJlKCcuL2lzRnVuY3Rpb24nKVxuXG5mdW5jdGlvbiB0eXBlKHgpIHtcbiAgaWYoeCkge1xuICAgIGlmKGlzRnVuY3Rpb24oeC50eXBlKSkge1xuICAgICAgcmV0dXJuIHgudHlwZSgpXG4gICAgfVxuICB9XG4gIHJldHVybiB7fS50b1N0cmluZy5jYWxsKHgpLnNsaWNlKDgsIC0xKVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHR5cGVcbiIsIi8qKiBAbGljZW5zZSBJU0MgTGljZW5zZSAoYykgY29weXJpZ2h0IDIwMTYgb3JpZ2luYWwgYW5kIGN1cnJlbnQgYXV0aG9ycyAqL1xuLyoqIEBhdXRob3IgSWFuIEhvZm1hbm4tSGlja3MgKGV2aWwpICovXG5cbnZhciBoYXNBbGcgPSByZXF1aXJlKCcuL2hhc0FsZycpXG52YXIgaXNBcHBseSA9IHJlcXVpcmUoJy4vaXNBcHBseScpXG5cbi8vIGlzQXBwbGljYXRpdmUgOiBhIC0+IEJvb2xlYW5cbmZ1bmN0aW9uIGlzQXBwbGljYXRpdmUobSkge1xuICByZXR1cm4gaXNBcHBseShtKVxuICAgICYmIChoYXNBbGcoJ29mJywgbSkgfHwgaGFzQWxnKCdvZicsIG0uY29uc3RydWN0b3IpKVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzQXBwbGljYXRpdmVcbiIsIi8qKiBAbGljZW5zZSBJU0MgTGljZW5zZSAoYykgY29weXJpZ2h0IDIwMTYgb3JpZ2luYWwgYW5kIGN1cnJlbnQgYXV0aG9ycyAqL1xuLyoqIEBhdXRob3IgSWFuIEhvZm1hbm4tSGlja3MgKGV2aWwpICovXG5cbnZhciBoYXNBbGcgPSByZXF1aXJlKCcuL2hhc0FsZycpXG52YXIgaXNGdW5jdG9yID0gcmVxdWlyZSgnLi9pc0Z1bmN0b3InKVxuXG4vLyBpc0FwcGx5IDogYSAtPiBCb29sZWFuXG5mdW5jdGlvbiBpc0FwcGx5KG0pIHtcbiAgcmV0dXJuIGlzRnVuY3RvcihtKVxuICAgICYmIGhhc0FsZygnYXAnLCBtKVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzQXBwbHlcbiIsIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5oYXNQcmVmaXhTdWZmaXggPSBoYXNQcmVmaXhTdWZmaXg7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IHZvaWQgMDtcblxudmFyIFJlYWN0ID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcblxudmFyIF9yZWFjdExpZmVjeWNsZXNDb21wYXQgPSByZXF1aXJlKFwicmVhY3QtbGlmZWN5Y2xlcy1jb21wYXRcIik7XG5cbnZhciBfY2xhc3NuYW1lcyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcImNsYXNzbmFtZXNcIikpO1xuXG52YXIgX2ljb24gPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuLi9pY29uXCIpKTtcblxudmFyIF90eXBlID0gcmVxdWlyZShcIi4uL191dGlsL3R5cGVcIik7XG5cbnZhciBfSW5wdXQgPSByZXF1aXJlKFwiLi9JbnB1dFwiKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgaWYgKHR5cGVvZiBXZWFrTWFwICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBudWxsOyB2YXIgY2FjaGUgPSBuZXcgV2Vha01hcCgpOyBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUgPSBmdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7IHJldHVybiBjYWNoZTsgfTsgcmV0dXJuIGNhY2hlOyB9XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKG9iaikgeyBpZiAob2JqICYmIG9iai5fX2VzTW9kdWxlKSB7IHJldHVybiBvYmo7IH0gaWYgKG9iaiA9PT0gbnVsbCB8fCBfdHlwZW9mKG9iaikgIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIG9iaiAhPT0gXCJmdW5jdGlvblwiKSB7IHJldHVybiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfSB2YXIgY2FjaGUgPSBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKTsgaWYgKGNhY2hlICYmIGNhY2hlLmhhcyhvYmopKSB7IHJldHVybiBjYWNoZS5nZXQob2JqKTsgfSB2YXIgbmV3T2JqID0ge307IHZhciBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjsgZm9yICh2YXIga2V5IGluIG9iaikgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkgeyB2YXIgZGVzYyA9IGhhc1Byb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDogbnVsbDsgaWYgKGRlc2MgJiYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpOyB9IGVsc2UgeyBuZXdPYmpba2V5XSA9IG9ialtrZXldOyB9IH0gfSBuZXdPYmpbXCJkZWZhdWx0XCJdID0gb2JqOyBpZiAoY2FjaGUpIHsgY2FjaGUuc2V0KG9iaiwgbmV3T2JqKTsgfSByZXR1cm4gbmV3T2JqOyB9XG5cbmZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjsgaWYgKHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09PSBcInN5bWJvbFwiKSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gdHlwZW9mIG9iajsgfTsgfSBlbHNlIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiBvYmogJiYgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG9iaiAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqOyB9OyB9IHJldHVybiBfdHlwZW9mKG9iaik7IH1cblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnR5KG9iaiwga2V5LCB2YWx1ZSkgeyBpZiAoa2V5IGluIG9iaikgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHsgdmFsdWU6IHZhbHVlLCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUsIHdyaXRhYmxlOiB0cnVlIH0pOyB9IGVsc2UgeyBvYmpba2V5XSA9IHZhbHVlOyB9IHJldHVybiBvYmo7IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfVxuXG5mdW5jdGlvbiBfY3JlYXRlQ2xhc3MoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7IGlmIChwcm90b1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSBcImZ1bmN0aW9uXCIgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb25cIik7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgX3NldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKTsgfVxuXG5mdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkgeyBfc2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgby5fX3Byb3RvX18gPSBwOyByZXR1cm4gbzsgfTsgcmV0dXJuIF9zZXRQcm90b3R5cGVPZihvLCBwKTsgfVxuXG5mdW5jdGlvbiBfY3JlYXRlU3VwZXIoRGVyaXZlZCkgeyB2YXIgaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCA9IF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKTsgcmV0dXJuIGZ1bmN0aW9uIF9jcmVhdGVTdXBlckludGVybmFsKCkgeyB2YXIgU3VwZXIgPSBfZ2V0UHJvdG90eXBlT2YoRGVyaXZlZCksIHJlc3VsdDsgaWYgKGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QpIHsgdmFyIE5ld1RhcmdldCA9IF9nZXRQcm90b3R5cGVPZih0aGlzKS5jb25zdHJ1Y3RvcjsgcmVzdWx0ID0gUmVmbGVjdC5jb25zdHJ1Y3QoU3VwZXIsIGFyZ3VtZW50cywgTmV3VGFyZ2V0KTsgfSBlbHNlIHsgcmVzdWx0ID0gU3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfSByZXR1cm4gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgcmVzdWx0KTsgfTsgfVxuXG5mdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLCBjYWxsKSB7IGlmIChjYWxsICYmIChfdHlwZW9mKGNhbGwpID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpKSB7IHJldHVybiBjYWxsOyB9IHJldHVybiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpOyB9XG5cbmZ1bmN0aW9uIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZikgeyBpZiAoc2VsZiA9PT0gdm9pZCAwKSB7IHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTsgfSByZXR1cm4gc2VsZjsgfVxuXG5mdW5jdGlvbiBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCkgeyBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwidW5kZWZpbmVkXCIgfHwgIVJlZmxlY3QuY29uc3RydWN0KSByZXR1cm4gZmFsc2U7IGlmIChSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKSByZXR1cm4gZmFsc2U7IGlmICh0eXBlb2YgUHJveHkgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIHRydWU7IHRyeSB7IERhdGUucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoRGF0ZSwgW10sIGZ1bmN0aW9uICgpIHt9KSk7IHJldHVybiB0cnVlOyB9IGNhdGNoIChlKSB7IHJldHVybiBmYWxzZTsgfSB9XG5cbmZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IF9nZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5nZXRQcm90b3R5cGVPZiA6IGZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IHJldHVybiBvLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2Yobyk7IH07IHJldHVybiBfZ2V0UHJvdG90eXBlT2Yobyk7IH1cblxudmFyIENsZWFyYWJsZUlucHV0VHlwZSA9ICgwLCBfdHlwZS50dXBsZSkoJ3RleHQnLCAnaW5wdXQnKTtcblxuZnVuY3Rpb24gaGFzUHJlZml4U3VmZml4KHByb3BzKSB7XG4gIHJldHVybiAhIShwcm9wcy5wcmVmaXggfHwgcHJvcHMuc3VmZml4IHx8IHByb3BzLmFsbG93Q2xlYXIpO1xufVxuXG52YXIgQ2xlYXJhYmxlTGFiZWxlZElucHV0ID0gLyojX19QVVJFX18qL2Z1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhDbGVhcmFibGVMYWJlbGVkSW5wdXQsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gIHZhciBfc3VwZXIgPSBfY3JlYXRlU3VwZXIoQ2xlYXJhYmxlTGFiZWxlZElucHV0KTtcblxuICBmdW5jdGlvbiBDbGVhcmFibGVMYWJlbGVkSW5wdXQoKSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIENsZWFyYWJsZUxhYmVsZWRJbnB1dCk7XG5cbiAgICByZXR1cm4gX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoQ2xlYXJhYmxlTGFiZWxlZElucHV0LCBbe1xuICAgIGtleTogXCJyZW5kZXJDbGVhckljb25cIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyQ2xlYXJJY29uKHByZWZpeENscykge1xuICAgICAgdmFyIF90aGlzJHByb3BzID0gdGhpcy5wcm9wcyxcbiAgICAgICAgICBhbGxvd0NsZWFyID0gX3RoaXMkcHJvcHMuYWxsb3dDbGVhcixcbiAgICAgICAgICB2YWx1ZSA9IF90aGlzJHByb3BzLnZhbHVlLFxuICAgICAgICAgIGRpc2FibGVkID0gX3RoaXMkcHJvcHMuZGlzYWJsZWQsXG4gICAgICAgICAgcmVhZE9ubHkgPSBfdGhpcyRwcm9wcy5yZWFkT25seSxcbiAgICAgICAgICBpbnB1dFR5cGUgPSBfdGhpcyRwcm9wcy5pbnB1dFR5cGUsXG4gICAgICAgICAgaGFuZGxlUmVzZXQgPSBfdGhpcyRwcm9wcy5oYW5kbGVSZXNldDtcblxuICAgICAgaWYgKCFhbGxvd0NsZWFyIHx8IGRpc2FibGVkIHx8IHJlYWRPbmx5IHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09ICcnKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICB2YXIgY2xhc3NOYW1lID0gaW5wdXRUeXBlID09PSBDbGVhcmFibGVJbnB1dFR5cGVbMF0gPyBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLXRleHRhcmVhLWNsZWFyLWljb25cIikgOiBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWNsZWFyLWljb25cIik7XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX2ljb25bXCJkZWZhdWx0XCJdLCB7XG4gICAgICAgIHR5cGU6IFwiY2xvc2UtY2lyY2xlXCIsXG4gICAgICAgIHRoZW1lOiBcImZpbGxlZFwiLFxuICAgICAgICBvbkNsaWNrOiBoYW5kbGVSZXNldCxcbiAgICAgICAgY2xhc3NOYW1lOiBjbGFzc05hbWUsXG4gICAgICAgIHJvbGU6IFwiYnV0dG9uXCJcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJyZW5kZXJTdWZmaXhcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyU3VmZml4KHByZWZpeENscykge1xuICAgICAgdmFyIF90aGlzJHByb3BzMiA9IHRoaXMucHJvcHMsXG4gICAgICAgICAgc3VmZml4ID0gX3RoaXMkcHJvcHMyLnN1ZmZpeCxcbiAgICAgICAgICBhbGxvd0NsZWFyID0gX3RoaXMkcHJvcHMyLmFsbG93Q2xlYXI7XG5cbiAgICAgIGlmIChzdWZmaXggfHwgYWxsb3dDbGVhcikge1xuICAgICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtcbiAgICAgICAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeENscywgXCItc3VmZml4XCIpXG4gICAgICAgIH0sIHRoaXMucmVuZGVyQ2xlYXJJY29uKHByZWZpeENscyksIHN1ZmZpeCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJyZW5kZXJMYWJlbGVkSWNvblwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXJMYWJlbGVkSWNvbihwcmVmaXhDbHMsIGVsZW1lbnQpIHtcbiAgICAgIHZhciBfY2xhc3NOYW1lcztcblxuICAgICAgdmFyIHByb3BzID0gdGhpcy5wcm9wcztcbiAgICAgIHZhciBzdWZmaXggPSB0aGlzLnJlbmRlclN1ZmZpeChwcmVmaXhDbHMpO1xuXG4gICAgICBpZiAoIWhhc1ByZWZpeFN1ZmZpeChwcm9wcykpIHtcbiAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jbG9uZUVsZW1lbnQoZWxlbWVudCwge1xuICAgICAgICAgIHZhbHVlOiBwcm9wcy52YWx1ZVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgdmFyIHByZWZpeCA9IHByb3BzLnByZWZpeCA/IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7XG4gICAgICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1wcmVmaXhcIilcbiAgICAgIH0sIHByb3BzLnByZWZpeCkgOiBudWxsO1xuICAgICAgdmFyIGFmZml4V3JhcHBlckNscyA9ICgwLCBfY2xhc3NuYW1lc1tcImRlZmF1bHRcIl0pKHByb3BzLmNsYXNzTmFtZSwgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1hZmZpeC13cmFwcGVyXCIpLCAoX2NsYXNzTmFtZXMgPSB7fSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc05hbWVzLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWFmZml4LXdyYXBwZXItc21cIiksIHByb3BzLnNpemUgPT09ICdzbWFsbCcpLCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzTmFtZXMsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItYWZmaXgtd3JhcHBlci1sZ1wiKSwgcHJvcHMuc2l6ZSA9PT0gJ2xhcmdlJyksIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1hZmZpeC13cmFwcGVyLWlucHV0LXdpdGgtY2xlYXItYnRuXCIpLCBwcm9wcy5zdWZmaXggJiYgcHJvcHMuYWxsb3dDbGVhciAmJiB0aGlzLnByb3BzLnZhbHVlKSwgX2NsYXNzTmFtZXMpKTtcbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwge1xuICAgICAgICBjbGFzc05hbWU6IGFmZml4V3JhcHBlckNscyxcbiAgICAgICAgc3R5bGU6IHByb3BzLnN0eWxlXG4gICAgICB9LCBwcmVmaXgsIC8qI19fUFVSRV9fKi9SZWFjdC5jbG9uZUVsZW1lbnQoZWxlbWVudCwge1xuICAgICAgICBzdHlsZTogbnVsbCxcbiAgICAgICAgdmFsdWU6IHByb3BzLnZhbHVlLFxuICAgICAgICBjbGFzc05hbWU6ICgwLCBfSW5wdXQuZ2V0SW5wdXRDbGFzc05hbWUpKHByZWZpeENscywgcHJvcHMuc2l6ZSwgcHJvcHMuZGlzYWJsZWQpXG4gICAgICB9KSwgc3VmZml4KTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVySW5wdXRXaXRoTGFiZWxcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVySW5wdXRXaXRoTGFiZWwocHJlZml4Q2xzLCBsYWJlbGVkRWxlbWVudCkge1xuICAgICAgdmFyIF9jbGFzc05hbWVzMztcblxuICAgICAgdmFyIF90aGlzJHByb3BzMyA9IHRoaXMucHJvcHMsXG4gICAgICAgICAgYWRkb25CZWZvcmUgPSBfdGhpcyRwcm9wczMuYWRkb25CZWZvcmUsXG4gICAgICAgICAgYWRkb25BZnRlciA9IF90aGlzJHByb3BzMy5hZGRvbkFmdGVyLFxuICAgICAgICAgIHN0eWxlID0gX3RoaXMkcHJvcHMzLnN0eWxlLFxuICAgICAgICAgIHNpemUgPSBfdGhpcyRwcm9wczMuc2l6ZSxcbiAgICAgICAgICBjbGFzc05hbWUgPSBfdGhpcyRwcm9wczMuY2xhc3NOYW1lOyAvLyBOb3Qgd3JhcCB3aGVuIHRoZXJlIGlzIG5vdCBhZGRvbnNcblxuICAgICAgaWYgKCFhZGRvbkJlZm9yZSAmJiAhYWRkb25BZnRlcikge1xuICAgICAgICByZXR1cm4gbGFiZWxlZEVsZW1lbnQ7XG4gICAgICB9XG5cbiAgICAgIHZhciB3cmFwcGVyQ2xhc3NOYW1lID0gXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1ncm91cFwiKTtcbiAgICAgIHZhciBhZGRvbkNsYXNzTmFtZSA9IFwiXCIuY29uY2F0KHdyYXBwZXJDbGFzc05hbWUsIFwiLWFkZG9uXCIpO1xuICAgICAgdmFyIGFkZG9uQmVmb3JlTm9kZSA9IGFkZG9uQmVmb3JlID8gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtcbiAgICAgICAgY2xhc3NOYW1lOiBhZGRvbkNsYXNzTmFtZVxuICAgICAgfSwgYWRkb25CZWZvcmUpIDogbnVsbDtcbiAgICAgIHZhciBhZGRvbkFmdGVyTm9kZSA9IGFkZG9uQWZ0ZXIgPyAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwge1xuICAgICAgICBjbGFzc05hbWU6IGFkZG9uQ2xhc3NOYW1lXG4gICAgICB9LCBhZGRvbkFmdGVyKSA6IG51bGw7XG4gICAgICB2YXIgbWVyZ2VkV3JhcHBlckNsYXNzTmFtZSA9ICgwLCBfY2xhc3NuYW1lc1tcImRlZmF1bHRcIl0pKFwiXCIuY29uY2F0KHByZWZpeENscywgXCItd3JhcHBlclwiKSwgX2RlZmluZVByb3BlcnR5KHt9LCB3cmFwcGVyQ2xhc3NOYW1lLCBhZGRvbkJlZm9yZSB8fCBhZGRvbkFmdGVyKSk7XG4gICAgICB2YXIgbWVyZ2VkR3JvdXBDbGFzc05hbWUgPSAoMCwgX2NsYXNzbmFtZXNbXCJkZWZhdWx0XCJdKShjbGFzc05hbWUsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItZ3JvdXAtd3JhcHBlclwiKSwgKF9jbGFzc05hbWVzMyA9IHt9LCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzTmFtZXMzLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWdyb3VwLXdyYXBwZXItc21cIiksIHNpemUgPT09ICdzbWFsbCcpLCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzTmFtZXMzLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWdyb3VwLXdyYXBwZXItbGdcIiksIHNpemUgPT09ICdsYXJnZScpLCBfY2xhc3NOYW1lczMpKTsgLy8gTmVlZCBhbm90aGVyIHdyYXBwZXIgZm9yIGNoYW5naW5nIGRpc3BsYXk6dGFibGUgdG8gZGlzcGxheTppbmxpbmUtYmxvY2tcbiAgICAgIC8vIGFuZCBwdXQgc3R5bGUgcHJvcCBpbiB3cmFwcGVyXG5cbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwge1xuICAgICAgICBjbGFzc05hbWU6IG1lcmdlZEdyb3VwQ2xhc3NOYW1lLFxuICAgICAgICBzdHlsZTogc3R5bGVcbiAgICAgIH0sIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7XG4gICAgICAgIGNsYXNzTmFtZTogbWVyZ2VkV3JhcHBlckNsYXNzTmFtZVxuICAgICAgfSwgYWRkb25CZWZvcmVOb2RlLCAvKiNfX1BVUkVfXyovUmVhY3QuY2xvbmVFbGVtZW50KGxhYmVsZWRFbGVtZW50LCB7XG4gICAgICAgIHN0eWxlOiBudWxsXG4gICAgICB9KSwgYWRkb25BZnRlck5vZGUpKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVyVGV4dEFyZWFXaXRoQ2xlYXJJY29uXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlclRleHRBcmVhV2l0aENsZWFySWNvbihwcmVmaXhDbHMsIGVsZW1lbnQpIHtcbiAgICAgIHZhciBfdGhpcyRwcm9wczQgPSB0aGlzLnByb3BzLFxuICAgICAgICAgIHZhbHVlID0gX3RoaXMkcHJvcHM0LnZhbHVlLFxuICAgICAgICAgIGFsbG93Q2xlYXIgPSBfdGhpcyRwcm9wczQuYWxsb3dDbGVhcixcbiAgICAgICAgICBjbGFzc05hbWUgPSBfdGhpcyRwcm9wczQuY2xhc3NOYW1lLFxuICAgICAgICAgIHN0eWxlID0gX3RoaXMkcHJvcHM0LnN0eWxlO1xuXG4gICAgICBpZiAoIWFsbG93Q2xlYXIpIHtcbiAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jbG9uZUVsZW1lbnQoZWxlbWVudCwge1xuICAgICAgICAgIHZhbHVlOiB2YWx1ZVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgdmFyIGFmZml4V3JhcHBlckNscyA9ICgwLCBfY2xhc3NuYW1lc1tcImRlZmF1bHRcIl0pKGNsYXNzTmFtZSwgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1hZmZpeC13cmFwcGVyXCIpLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWFmZml4LXdyYXBwZXItdGV4dGFyZWEtd2l0aC1jbGVhci1idG5cIikpO1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7XG4gICAgICAgIGNsYXNzTmFtZTogYWZmaXhXcmFwcGVyQ2xzLFxuICAgICAgICBzdHlsZTogc3R5bGVcbiAgICAgIH0sIC8qI19fUFVSRV9fKi9SZWFjdC5jbG9uZUVsZW1lbnQoZWxlbWVudCwge1xuICAgICAgICBzdHlsZTogbnVsbCxcbiAgICAgICAgdmFsdWU6IHZhbHVlXG4gICAgICB9KSwgdGhpcy5yZW5kZXJDbGVhckljb24ocHJlZml4Q2xzKSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbmRlckNsZWFyYWJsZUxhYmVsZWRJbnB1dFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXJDbGVhcmFibGVMYWJlbGVkSW5wdXQoKSB7XG4gICAgICB2YXIgX3RoaXMkcHJvcHM1ID0gdGhpcy5wcm9wcyxcbiAgICAgICAgICBwcmVmaXhDbHMgPSBfdGhpcyRwcm9wczUucHJlZml4Q2xzLFxuICAgICAgICAgIGlucHV0VHlwZSA9IF90aGlzJHByb3BzNS5pbnB1dFR5cGUsXG4gICAgICAgICAgZWxlbWVudCA9IF90aGlzJHByb3BzNS5lbGVtZW50O1xuXG4gICAgICBpZiAoaW5wdXRUeXBlID09PSBDbGVhcmFibGVJbnB1dFR5cGVbMF0pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVuZGVyVGV4dEFyZWFXaXRoQ2xlYXJJY29uKHByZWZpeENscywgZWxlbWVudCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzLnJlbmRlcklucHV0V2l0aExhYmVsKHByZWZpeENscywgdGhpcy5yZW5kZXJMYWJlbGVkSWNvbihwcmVmaXhDbHMsIGVsZW1lbnQpKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlckNsZWFyYWJsZUxhYmVsZWRJbnB1dCgpO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBDbGVhcmFibGVMYWJlbGVkSW5wdXQ7XG59KFJlYWN0LkNvbXBvbmVudCk7XG5cbigwLCBfcmVhY3RMaWZlY3ljbGVzQ29tcGF0LnBvbHlmaWxsKShDbGVhcmFibGVMYWJlbGVkSW5wdXQpO1xudmFyIF9kZWZhdWx0ID0gQ2xlYXJhYmxlTGFiZWxlZElucHV0O1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBfZGVmYXVsdDsiLCJtb2R1bGUuZXhwb3J0cyA9IHsgXCJkZWZhdWx0XCI6IHJlcXVpcmUoXCJjb3JlLWpzL2xpYnJhcnkvZm4vb2JqZWN0L2RlZmluZS1wcm9wZXJ0eVwiKSwgX19lc01vZHVsZTogdHJ1ZSB9OyIsIi8vIG9wdGlvbmFsIC8gc2ltcGxlIGNvbnRleHQgYmluZGluZ1xudmFyIGFGdW5jdGlvbiA9IHJlcXVpcmUoJy4vX2EtZnVuY3Rpb24nKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGZuLCB0aGF0LCBsZW5ndGgpIHtcbiAgYUZ1bmN0aW9uKGZuKTtcbiAgaWYgKHRoYXQgPT09IHVuZGVmaW5lZCkgcmV0dXJuIGZuO1xuICBzd2l0Y2ggKGxlbmd0aCkge1xuICAgIGNhc2UgMTogcmV0dXJuIGZ1bmN0aW9uIChhKSB7XG4gICAgICByZXR1cm4gZm4uY2FsbCh0aGF0LCBhKTtcbiAgICB9O1xuICAgIGNhc2UgMjogcmV0dXJuIGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICByZXR1cm4gZm4uY2FsbCh0aGF0LCBhLCBiKTtcbiAgICB9O1xuICAgIGNhc2UgMzogcmV0dXJuIGZ1bmN0aW9uIChhLCBiLCBjKSB7XG4gICAgICByZXR1cm4gZm4uY2FsbCh0aGF0LCBhLCBiLCBjKTtcbiAgICB9O1xuICB9XG4gIHJldHVybiBmdW5jdGlvbiAoLyogLi4uYXJncyAqLykge1xuICAgIHJldHVybiBmbi5hcHBseSh0aGF0LCBhcmd1bWVudHMpO1xuICB9O1xufTtcbiIsIm1vZHVsZS5leHBvcnRzID0gIXJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJykgJiYgIXJlcXVpcmUoJy4vX2ZhaWxzJykoZnVuY3Rpb24gKCkge1xuICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHJlcXVpcmUoJy4vX2RvbS1jcmVhdGUnKSgnZGl2JyksICdhJywgeyBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDc7IH0gfSkuYSAhPSA3O1xufSk7XG4iLCJ2YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL19pcy1vYmplY3QnKTtcbnZhciBkb2N1bWVudCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpLmRvY3VtZW50O1xuLy8gdHlwZW9mIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQgaXMgJ29iamVjdCcgaW4gb2xkIElFXG52YXIgaXMgPSBpc09iamVjdChkb2N1bWVudCkgJiYgaXNPYmplY3QoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gaXMgPyBkb2N1bWVudC5jcmVhdGVFbGVtZW50KGl0KSA6IHt9O1xufTtcbiIsInZhciBoYXMgPSByZXF1aXJlKCcuL19oYXMnKTtcbnZhciB0b0lPYmplY3QgPSByZXF1aXJlKCcuL190by1pb2JqZWN0Jyk7XG52YXIgYXJyYXlJbmRleE9mID0gcmVxdWlyZSgnLi9fYXJyYXktaW5jbHVkZXMnKShmYWxzZSk7XG52YXIgSUVfUFJPVE8gPSByZXF1aXJlKCcuL19zaGFyZWQta2V5JykoJ0lFX1BST1RPJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG9iamVjdCwgbmFtZXMpIHtcbiAgdmFyIE8gPSB0b0lPYmplY3Qob2JqZWN0KTtcbiAgdmFyIGkgPSAwO1xuICB2YXIgcmVzdWx0ID0gW107XG4gIHZhciBrZXk7XG4gIGZvciAoa2V5IGluIE8pIGlmIChrZXkgIT0gSUVfUFJPVE8pIGhhcyhPLCBrZXkpICYmIHJlc3VsdC5wdXNoKGtleSk7XG4gIC8vIERvbid0IGVudW0gYnVnICYgaGlkZGVuIGtleXNcbiAgd2hpbGUgKG5hbWVzLmxlbmd0aCA+IGkpIGlmIChoYXMoTywga2V5ID0gbmFtZXNbaSsrXSkpIHtcbiAgICB+YXJyYXlJbmRleE9mKHJlc3VsdCwga2V5KSB8fCByZXN1bHQucHVzaChrZXkpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59O1xuIiwiLy8gZmFsbGJhY2sgZm9yIG5vbi1hcnJheS1saWtlIEVTMyBhbmQgbm9uLWVudW1lcmFibGUgb2xkIFY4IHN0cmluZ3NcbnZhciBjb2YgPSByZXF1aXJlKCcuL19jb2YnKTtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wcm90b3R5cGUtYnVpbHRpbnNcbm1vZHVsZS5leHBvcnRzID0gT2JqZWN0KCd6JykucHJvcGVydHlJc0VudW1lcmFibGUoMCkgPyBPYmplY3QgOiBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGNvZihpdCkgPT0gJ1N0cmluZycgPyBpdC5zcGxpdCgnJykgOiBPYmplY3QoaXQpO1xufTtcbiIsInZhciB0b1N0cmluZyA9IHt9LnRvU3RyaW5nO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gdG9TdHJpbmcuY2FsbChpdCkuc2xpY2UoOCwgLTEpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBMSUJSQVJZID0gcmVxdWlyZSgnLi9fbGlicmFyeScpO1xudmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcbnZhciByZWRlZmluZSA9IHJlcXVpcmUoJy4vX3JlZGVmaW5lJyk7XG52YXIgaGlkZSA9IHJlcXVpcmUoJy4vX2hpZGUnKTtcbnZhciBJdGVyYXRvcnMgPSByZXF1aXJlKCcuL19pdGVyYXRvcnMnKTtcbnZhciAkaXRlckNyZWF0ZSA9IHJlcXVpcmUoJy4vX2l0ZXItY3JlYXRlJyk7XG52YXIgc2V0VG9TdHJpbmdUYWcgPSByZXF1aXJlKCcuL19zZXQtdG8tc3RyaW5nLXRhZycpO1xudmFyIGdldFByb3RvdHlwZU9mID0gcmVxdWlyZSgnLi9fb2JqZWN0LWdwbycpO1xudmFyIElURVJBVE9SID0gcmVxdWlyZSgnLi9fd2tzJykoJ2l0ZXJhdG9yJyk7XG52YXIgQlVHR1kgPSAhKFtdLmtleXMgJiYgJ25leHQnIGluIFtdLmtleXMoKSk7IC8vIFNhZmFyaSBoYXMgYnVnZ3kgaXRlcmF0b3JzIHcvbyBgbmV4dGBcbnZhciBGRl9JVEVSQVRPUiA9ICdAQGl0ZXJhdG9yJztcbnZhciBLRVlTID0gJ2tleXMnO1xudmFyIFZBTFVFUyA9ICd2YWx1ZXMnO1xuXG52YXIgcmV0dXJuVGhpcyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH07XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKEJhc2UsIE5BTUUsIENvbnN0cnVjdG9yLCBuZXh0LCBERUZBVUxULCBJU19TRVQsIEZPUkNFRCkge1xuICAkaXRlckNyZWF0ZShDb25zdHJ1Y3RvciwgTkFNRSwgbmV4dCk7XG4gIHZhciBnZXRNZXRob2QgPSBmdW5jdGlvbiAoa2luZCkge1xuICAgIGlmICghQlVHR1kgJiYga2luZCBpbiBwcm90bykgcmV0dXJuIHByb3RvW2tpbmRdO1xuICAgIHN3aXRjaCAoa2luZCkge1xuICAgICAgY2FzZSBLRVlTOiByZXR1cm4gZnVuY3Rpb24ga2V5cygpIHsgcmV0dXJuIG5ldyBDb25zdHJ1Y3Rvcih0aGlzLCBraW5kKTsgfTtcbiAgICAgIGNhc2UgVkFMVUVTOiByZXR1cm4gZnVuY3Rpb24gdmFsdWVzKCkgeyByZXR1cm4gbmV3IENvbnN0cnVjdG9yKHRoaXMsIGtpbmQpOyB9O1xuICAgIH0gcmV0dXJuIGZ1bmN0aW9uIGVudHJpZXMoKSB7IHJldHVybiBuZXcgQ29uc3RydWN0b3IodGhpcywga2luZCk7IH07XG4gIH07XG4gIHZhciBUQUcgPSBOQU1FICsgJyBJdGVyYXRvcic7XG4gIHZhciBERUZfVkFMVUVTID0gREVGQVVMVCA9PSBWQUxVRVM7XG4gIHZhciBWQUxVRVNfQlVHID0gZmFsc2U7XG4gIHZhciBwcm90byA9IEJhc2UucHJvdG90eXBlO1xuICB2YXIgJG5hdGl2ZSA9IHByb3RvW0lURVJBVE9SXSB8fCBwcm90b1tGRl9JVEVSQVRPUl0gfHwgREVGQVVMVCAmJiBwcm90b1tERUZBVUxUXTtcbiAgdmFyICRkZWZhdWx0ID0gJG5hdGl2ZSB8fCBnZXRNZXRob2QoREVGQVVMVCk7XG4gIHZhciAkZW50cmllcyA9IERFRkFVTFQgPyAhREVGX1ZBTFVFUyA/ICRkZWZhdWx0IDogZ2V0TWV0aG9kKCdlbnRyaWVzJykgOiB1bmRlZmluZWQ7XG4gIHZhciAkYW55TmF0aXZlID0gTkFNRSA9PSAnQXJyYXknID8gcHJvdG8uZW50cmllcyB8fCAkbmF0aXZlIDogJG5hdGl2ZTtcbiAgdmFyIG1ldGhvZHMsIGtleSwgSXRlcmF0b3JQcm90b3R5cGU7XG4gIC8vIEZpeCBuYXRpdmVcbiAgaWYgKCRhbnlOYXRpdmUpIHtcbiAgICBJdGVyYXRvclByb3RvdHlwZSA9IGdldFByb3RvdHlwZU9mKCRhbnlOYXRpdmUuY2FsbChuZXcgQmFzZSgpKSk7XG4gICAgaWYgKEl0ZXJhdG9yUHJvdG90eXBlICE9PSBPYmplY3QucHJvdG90eXBlICYmIEl0ZXJhdG9yUHJvdG90eXBlLm5leHQpIHtcbiAgICAgIC8vIFNldCBAQHRvU3RyaW5nVGFnIHRvIG5hdGl2ZSBpdGVyYXRvcnNcbiAgICAgIHNldFRvU3RyaW5nVGFnKEl0ZXJhdG9yUHJvdG90eXBlLCBUQUcsIHRydWUpO1xuICAgICAgLy8gZml4IGZvciBzb21lIG9sZCBlbmdpbmVzXG4gICAgICBpZiAoIUxJQlJBUlkgJiYgdHlwZW9mIEl0ZXJhdG9yUHJvdG90eXBlW0lURVJBVE9SXSAhPSAnZnVuY3Rpb24nKSBoaWRlKEl0ZXJhdG9yUHJvdG90eXBlLCBJVEVSQVRPUiwgcmV0dXJuVGhpcyk7XG4gICAgfVxuICB9XG4gIC8vIGZpeCBBcnJheSN7dmFsdWVzLCBAQGl0ZXJhdG9yfS5uYW1lIGluIFY4IC8gRkZcbiAgaWYgKERFRl9WQUxVRVMgJiYgJG5hdGl2ZSAmJiAkbmF0aXZlLm5hbWUgIT09IFZBTFVFUykge1xuICAgIFZBTFVFU19CVUcgPSB0cnVlO1xuICAgICRkZWZhdWx0ID0gZnVuY3Rpb24gdmFsdWVzKCkgeyByZXR1cm4gJG5hdGl2ZS5jYWxsKHRoaXMpOyB9O1xuICB9XG4gIC8vIERlZmluZSBpdGVyYXRvclxuICBpZiAoKCFMSUJSQVJZIHx8IEZPUkNFRCkgJiYgKEJVR0dZIHx8IFZBTFVFU19CVUcgfHwgIXByb3RvW0lURVJBVE9SXSkpIHtcbiAgICBoaWRlKHByb3RvLCBJVEVSQVRPUiwgJGRlZmF1bHQpO1xuICB9XG4gIC8vIFBsdWcgZm9yIGxpYnJhcnlcbiAgSXRlcmF0b3JzW05BTUVdID0gJGRlZmF1bHQ7XG4gIEl0ZXJhdG9yc1tUQUddID0gcmV0dXJuVGhpcztcbiAgaWYgKERFRkFVTFQpIHtcbiAgICBtZXRob2RzID0ge1xuICAgICAgdmFsdWVzOiBERUZfVkFMVUVTID8gJGRlZmF1bHQgOiBnZXRNZXRob2QoVkFMVUVTKSxcbiAgICAgIGtleXM6IElTX1NFVCA/ICRkZWZhdWx0IDogZ2V0TWV0aG9kKEtFWVMpLFxuICAgICAgZW50cmllczogJGVudHJpZXNcbiAgICB9O1xuICAgIGlmIChGT1JDRUQpIGZvciAoa2V5IGluIG1ldGhvZHMpIHtcbiAgICAgIGlmICghKGtleSBpbiBwcm90bykpIHJlZGVmaW5lKHByb3RvLCBrZXksIG1ldGhvZHNba2V5XSk7XG4gICAgfSBlbHNlICRleHBvcnQoJGV4cG9ydC5QICsgJGV4cG9ydC5GICogKEJVR0dZIHx8IFZBTFVFU19CVUcpLCBOQU1FLCBtZXRob2RzKTtcbiAgfVxuICByZXR1cm4gbWV0aG9kcztcbn07XG4iLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vX2hpZGUnKTtcbiIsIi8vIDE5LjEuMi43IC8gMTUuMi4zLjQgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoTylcbnZhciAka2V5cyA9IHJlcXVpcmUoJy4vX29iamVjdC1rZXlzLWludGVybmFsJyk7XG52YXIgaGlkZGVuS2V5cyA9IHJlcXVpcmUoJy4vX2VudW0tYnVnLWtleXMnKS5jb25jYXQoJ2xlbmd0aCcsICdwcm90b3R5cGUnKTtcblxuZXhwb3J0cy5mID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMgfHwgZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlOYW1lcyhPKSB7XG4gIHJldHVybiAka2V5cyhPLCBoaWRkZW5LZXlzKTtcbn07XG4iLCJ2YXIgcElFID0gcmVxdWlyZSgnLi9fb2JqZWN0LXBpZScpO1xudmFyIGNyZWF0ZURlc2MgPSByZXF1aXJlKCcuL19wcm9wZXJ0eS1kZXNjJyk7XG52YXIgdG9JT2JqZWN0ID0gcmVxdWlyZSgnLi9fdG8taW9iamVjdCcpO1xudmFyIHRvUHJpbWl0aXZlID0gcmVxdWlyZSgnLi9fdG8tcHJpbWl0aXZlJyk7XG52YXIgaGFzID0gcmVxdWlyZSgnLi9faGFzJyk7XG52YXIgSUU4X0RPTV9ERUZJTkUgPSByZXF1aXJlKCcuL19pZTgtZG9tLWRlZmluZScpO1xudmFyIGdPUEQgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1xuXG5leHBvcnRzLmYgPSByZXF1aXJlKCcuL19kZXNjcmlwdG9ycycpID8gZ09QRCA6IGZ1bmN0aW9uIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihPLCBQKSB7XG4gIE8gPSB0b0lPYmplY3QoTyk7XG4gIFAgPSB0b1ByaW1pdGl2ZShQLCB0cnVlKTtcbiAgaWYgKElFOF9ET01fREVGSU5FKSB0cnkge1xuICAgIHJldHVybiBnT1BEKE8sIFApO1xuICB9IGNhdGNoIChlKSB7IC8qIGVtcHR5ICovIH1cbiAgaWYgKGhhcyhPLCBQKSkgcmV0dXJuIGNyZWF0ZURlc2MoIXBJRS5mLmNhbGwoTywgUCksIE9bUF0pO1xufTtcbiIsIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy53YXJuaW5nID0gd2FybmluZztcbmV4cG9ydHMubm90ZSA9IG5vdGU7XG5leHBvcnRzLnJlc2V0V2FybmVkID0gcmVzZXRXYXJuZWQ7XG5leHBvcnRzLmNhbGwgPSBjYWxsO1xuZXhwb3J0cy53YXJuaW5nT25jZSA9IHdhcm5pbmdPbmNlO1xuZXhwb3J0cy5ub3RlT25jZSA9IG5vdGVPbmNlO1xuZXhwb3J0cy5kZWZhdWx0ID0gdm9pZCAwO1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1jb25zb2xlICovXG52YXIgd2FybmVkID0ge307XG5cbmZ1bmN0aW9uIHdhcm5pbmcodmFsaWQsIG1lc3NhZ2UpIHtcbiAgLy8gU3VwcG9ydCB1Z2xpZnlcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgIXZhbGlkICYmIGNvbnNvbGUgIT09IHVuZGVmaW5lZCkge1xuICAgIGNvbnNvbGUuZXJyb3IoXCJXYXJuaW5nOiBcIi5jb25jYXQobWVzc2FnZSkpO1xuICB9XG59XG5cbmZ1bmN0aW9uIG5vdGUodmFsaWQsIG1lc3NhZ2UpIHtcbiAgLy8gU3VwcG9ydCB1Z2xpZnlcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgIXZhbGlkICYmIGNvbnNvbGUgIT09IHVuZGVmaW5lZCkge1xuICAgIGNvbnNvbGUud2FybihcIk5vdGU6IFwiLmNvbmNhdChtZXNzYWdlKSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVzZXRXYXJuZWQoKSB7XG4gIHdhcm5lZCA9IHt9O1xufVxuXG5mdW5jdGlvbiBjYWxsKG1ldGhvZCwgdmFsaWQsIG1lc3NhZ2UpIHtcbiAgaWYgKCF2YWxpZCAmJiAhd2FybmVkW21lc3NhZ2VdKSB7XG4gICAgbWV0aG9kKGZhbHNlLCBtZXNzYWdlKTtcbiAgICB3YXJuZWRbbWVzc2FnZV0gPSB0cnVlO1xuICB9XG59XG5cbmZ1bmN0aW9uIHdhcm5pbmdPbmNlKHZhbGlkLCBtZXNzYWdlKSB7XG4gIGNhbGwod2FybmluZywgdmFsaWQsIG1lc3NhZ2UpO1xufVxuXG5mdW5jdGlvbiBub3RlT25jZSh2YWxpZCwgbWVzc2FnZSkge1xuICBjYWxsKG5vdGUsIHZhbGlkLCBtZXNzYWdlKTtcbn1cblxudmFyIF9kZWZhdWx0ID0gd2FybmluZ09uY2U7XG4vKiBlc2xpbnQtZW5hYmxlICovXG5cbmV4cG9ydHMuZGVmYXVsdCA9IF9kZWZhdWx0OyIsIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSB2b2lkIDA7XG5cbnZhciBfZW5fVVMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyYy1wYWdpbmF0aW9uL2xpYi9sb2NhbGUvZW5fVVNcIikpO1xuXG52YXIgX2VuX1VTMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uL2RhdGUtcGlja2VyL2xvY2FsZS9lbl9VU1wiKSk7XG5cbnZhciBfZW5fVVMzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vdGltZS1waWNrZXIvbG9jYWxlL2VuX1VTXCIpKTtcblxudmFyIF9lbl9VUzQgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuLi9jYWxlbmRhci9sb2NhbGUvZW5fVVNcIikpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxudmFyIF9kZWZhdWx0ID0ge1xuICBsb2NhbGU6ICdlbicsXG4gIFBhZ2luYXRpb246IF9lbl9VU1tcImRlZmF1bHRcIl0sXG4gIERhdGVQaWNrZXI6IF9lbl9VUzJbXCJkZWZhdWx0XCJdLFxuICBUaW1lUGlja2VyOiBfZW5fVVMzW1wiZGVmYXVsdFwiXSxcbiAgQ2FsZW5kYXI6IF9lbl9VUzRbXCJkZWZhdWx0XCJdLFxuICBnbG9iYWw6IHtcbiAgICBwbGFjZWhvbGRlcjogJ1BsZWFzZSBzZWxlY3QnXG4gIH0sXG4gIFRhYmxlOiB7XG4gICAgZmlsdGVyVGl0bGU6ICdGaWx0ZXIgbWVudScsXG4gICAgZmlsdGVyQ29uZmlybTogJ09LJyxcbiAgICBmaWx0ZXJSZXNldDogJ1Jlc2V0JyxcbiAgICBzZWxlY3RBbGw6ICdTZWxlY3QgY3VycmVudCBwYWdlJyxcbiAgICBzZWxlY3RJbnZlcnQ6ICdJbnZlcnQgY3VycmVudCBwYWdlJyxcbiAgICBzb3J0VGl0bGU6ICdTb3J0JyxcbiAgICBleHBhbmQ6ICdFeHBhbmQgcm93JyxcbiAgICBjb2xsYXBzZTogJ0NvbGxhcHNlIHJvdydcbiAgfSxcbiAgTW9kYWw6IHtcbiAgICBva1RleHQ6ICdPSycsXG4gICAgY2FuY2VsVGV4dDogJ0NhbmNlbCcsXG4gICAganVzdE9rVGV4dDogJ09LJ1xuICB9LFxuICBQb3Bjb25maXJtOiB7XG4gICAgb2tUZXh0OiAnT0snLFxuICAgIGNhbmNlbFRleHQ6ICdDYW5jZWwnXG4gIH0sXG4gIFRyYW5zZmVyOiB7XG4gICAgdGl0bGVzOiBbJycsICcnXSxcbiAgICBzZWFyY2hQbGFjZWhvbGRlcjogJ1NlYXJjaCBoZXJlJyxcbiAgICBpdGVtVW5pdDogJ2l0ZW0nLFxuICAgIGl0ZW1zVW5pdDogJ2l0ZW1zJ1xuICB9LFxuICBVcGxvYWQ6IHtcbiAgICB1cGxvYWRpbmc6ICdVcGxvYWRpbmcuLi4nLFxuICAgIHJlbW92ZUZpbGU6ICdSZW1vdmUgZmlsZScsXG4gICAgdXBsb2FkRXJyb3I6ICdVcGxvYWQgZXJyb3InLFxuICAgIHByZXZpZXdGaWxlOiAnUHJldmlldyBmaWxlJyxcbiAgICBkb3dubG9hZEZpbGU6ICdEb3dubG9hZCBmaWxlJ1xuICB9LFxuICBFbXB0eToge1xuICAgIGRlc2NyaXB0aW9uOiAnTm8gRGF0YSdcbiAgfSxcbiAgSWNvbjoge1xuICAgIGljb246ICdpY29uJ1xuICB9LFxuICBUZXh0OiB7XG4gICAgZWRpdDogJ0VkaXQnLFxuICAgIGNvcHk6ICdDb3B5JyxcbiAgICBjb3BpZWQ6ICdDb3BpZWQnLFxuICAgIGV4cGFuZDogJ0V4cGFuZCdcbiAgfSxcbiAgUGFnZUhlYWRlcjoge1xuICAgIGJhY2s6ICdCYWNrJ1xuICB9XG59O1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBfZGVmYXVsdDsiLCJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gdm9pZCAwO1xuXG52YXIgX2VuX1VTID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmMtY2FsZW5kYXIvbGliL2xvY2FsZS9lbl9VU1wiKSk7XG5cbnZhciBfZW5fVVMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vLi4vdGltZS1waWNrZXIvbG9jYWxlL2VuX1VTXCIpKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9leHRlbmRzKCkgeyBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07IHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9XG5cbi8vIE1lcmdlIGludG8gYSBsb2NhbGUgb2JqZWN0XG52YXIgbG9jYWxlID0ge1xuICBsYW5nOiBfZXh0ZW5kcyh7XG4gICAgcGxhY2Vob2xkZXI6ICdTZWxlY3QgZGF0ZScsXG4gICAgcmFuZ2VQbGFjZWhvbGRlcjogWydTdGFydCBkYXRlJywgJ0VuZCBkYXRlJ11cbiAgfSwgX2VuX1VTW1wiZGVmYXVsdFwiXSksXG4gIHRpbWVQaWNrZXJMb2NhbGU6IF9leHRlbmRzKHt9LCBfZW5fVVMyW1wiZGVmYXVsdFwiXSlcbn07IC8vIEFsbCBzZXR0aW5ncyBhdDpcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2FudC1kZXNpZ24vYmxvYi9tYXN0ZXIvY29tcG9uZW50cy9kYXRlLXBpY2tlci9sb2NhbGUvZXhhbXBsZS5qc29uXG5cbnZhciBfZGVmYXVsdCA9IGxvY2FsZTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gX2RlZmF1bHQ7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IHZvaWQgMDtcbnZhciBsb2NhbGUgPSB7XG4gIHBsYWNlaG9sZGVyOiAnU2VsZWN0IHRpbWUnXG59O1xudmFyIF9kZWZhdWx0ID0gbG9jYWxlO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBfZGVmYXVsdDsiLCJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZml4Q29udHJvbGxlZFZhbHVlID0gZml4Q29udHJvbGxlZFZhbHVlO1xuZXhwb3J0cy5yZXNvbHZlT25DaGFuZ2UgPSByZXNvbHZlT25DaGFuZ2U7XG5leHBvcnRzLmdldElucHV0Q2xhc3NOYW1lID0gZ2V0SW5wdXRDbGFzc05hbWU7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IGV4cG9ydHMuSW5wdXRTaXplcyA9IHZvaWQgMDtcblxudmFyIFJlYWN0ID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcblxudmFyIFByb3BUeXBlcyA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJwcm9wLXR5cGVzXCIpKTtcblxudmFyIF9yZWFjdExpZmVjeWNsZXNDb21wYXQgPSByZXF1aXJlKFwicmVhY3QtbGlmZWN5Y2xlcy1jb21wYXRcIik7XG5cbnZhciBfY2xhc3NuYW1lcyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcImNsYXNzbmFtZXNcIikpO1xuXG52YXIgX29taXQgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJvbWl0LmpzXCIpKTtcblxudmFyIF90eXBlID0gcmVxdWlyZShcIi4uL191dGlsL3R5cGVcIik7XG5cbnZhciBfQ2xlYXJhYmxlTGFiZWxlZElucHV0ID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcIi4vQ2xlYXJhYmxlTGFiZWxlZElucHV0XCIpKTtcblxudmFyIF9jb25maWdQcm92aWRlciA9IHJlcXVpcmUoXCIuLi9jb25maWctcHJvdmlkZXJcIik7XG5cbnZhciBfd2FybmluZyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uL191dGlsL3dhcm5pbmdcIikpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyBpZiAodHlwZW9mIFdlYWtNYXAgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIG51bGw7IHZhciBjYWNoZSA9IG5ldyBXZWFrTWFwKCk7IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSA9IGZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgcmV0dXJuIGNhY2hlOyB9OyByZXR1cm4gY2FjaGU7IH1cblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqKSB7IGlmIChvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHsgcmV0dXJuIG9iajsgfSBpZiAob2JqID09PSBudWxsIHx8IF90eXBlb2Yob2JqKSAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygb2JqICE9PSBcImZ1bmN0aW9uXCIpIHsgcmV0dXJuIHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9IHZhciBjYWNoZSA9IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpOyBpZiAoY2FjaGUgJiYgY2FjaGUuaGFzKG9iaikpIHsgcmV0dXJuIGNhY2hlLmdldChvYmopOyB9IHZhciBuZXdPYmogPSB7fTsgdmFyIGhhc1Byb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOyBmb3IgKHZhciBrZXkgaW4gb2JqKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7IHZhciBkZXNjID0gaGFzUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiBudWxsOyBpZiAoZGVzYyAmJiAoZGVzYy5nZXQgfHwgZGVzYy5zZXQpKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXdPYmosIGtleSwgZGVzYyk7IH0gZWxzZSB7IG5ld09ialtrZXldID0gb2JqW2tleV07IH0gfSB9IG5ld09ialtcImRlZmF1bHRcIl0gPSBvYmo7IGlmIChjYWNoZSkgeyBjYWNoZS5zZXQob2JqLCBuZXdPYmopOyB9IHJldHVybiBuZXdPYmo7IH1cblxuZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiOyBpZiAodHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT09IFwic3ltYm9sXCIpIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiB0eXBlb2Ygb2JqOyB9OyB9IGVsc2UgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIG9iaiAmJiB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgb2JqICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvYmo7IH07IH0gcmV0dXJuIF90eXBlb2Yob2JqKTsgfVxuXG5mdW5jdGlvbiBfZXh0ZW5kcygpIHsgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9OyByZXR1cm4gX2V4dGVuZHMuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7IGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHsgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTsgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlOyBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7IGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTsgfSB9XG5cbmZ1bmN0aW9uIF9jcmVhdGVDbGFzcyhDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsgaWYgKHByb3RvUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7IGlmIChzdGF0aWNQcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTsgcmV0dXJuIENvbnN0cnVjdG9yOyB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09IFwiZnVuY3Rpb25cIiAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvblwiKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBfc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpOyB9XG5cbmZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7IF9zZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCBmdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkgeyBvLl9fcHJvdG9fXyA9IHA7IHJldHVybiBvOyB9OyByZXR1cm4gX3NldFByb3RvdHlwZU9mKG8sIHApOyB9XG5cbmZ1bmN0aW9uIF9jcmVhdGVTdXBlcihEZXJpdmVkKSB7IHZhciBoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0ID0gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpOyByZXR1cm4gZnVuY3Rpb24gX2NyZWF0ZVN1cGVySW50ZXJuYWwoKSB7IHZhciBTdXBlciA9IF9nZXRQcm90b3R5cGVPZihEZXJpdmVkKSwgcmVzdWx0OyBpZiAoaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCkgeyB2YXIgTmV3VGFyZ2V0ID0gX2dldFByb3RvdHlwZU9mKHRoaXMpLmNvbnN0cnVjdG9yOyByZXN1bHQgPSBSZWZsZWN0LmNvbnN0cnVjdChTdXBlciwgYXJndW1lbnRzLCBOZXdUYXJnZXQpOyB9IGVsc2UgeyByZXN1bHQgPSBTdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9IHJldHVybiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCByZXN1bHQpOyB9OyB9XG5cbmZ1bmN0aW9uIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHNlbGYsIGNhbGwpIHsgaWYgKGNhbGwgJiYgKF90eXBlb2YoY2FsbCkgPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIGNhbGwgPT09IFwiZnVuY3Rpb25cIikpIHsgcmV0dXJuIGNhbGw7IH0gcmV0dXJuIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZik7IH1cblxuZnVuY3Rpb24gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKSB7IGlmIChzZWxmID09PSB2b2lkIDApIHsgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpOyB9IHJldHVybiBzZWxmOyB9XG5cbmZ1bmN0aW9uIF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKSB7IGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJ1bmRlZmluZWRcIiB8fCAhUmVmbGVjdC5jb25zdHJ1Y3QpIHJldHVybiBmYWxzZTsgaWYgKFJlZmxlY3QuY29uc3RydWN0LnNoYW0pIHJldHVybiBmYWxzZTsgaWYgKHR5cGVvZiBQcm94eSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gdHJ1ZTsgdHJ5IHsgRGF0ZS5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChEYXRlLCBbXSwgZnVuY3Rpb24gKCkge30pKTsgcmV0dXJuIHRydWU7IH0gY2F0Y2ggKGUpIHsgcmV0dXJuIGZhbHNlOyB9IH1cblxuZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHsgX2dldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LmdldFByb3RvdHlwZU9mIDogZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHsgcmV0dXJuIG8uX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihvKTsgfTsgcmV0dXJuIF9nZXRQcm90b3R5cGVPZihvKTsgfVxuXG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHZhbHVlKSB7IGlmIChrZXkgaW4gb2JqKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgeyB2YWx1ZTogdmFsdWUsIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRydWUgfSk7IH0gZWxzZSB7IG9ialtrZXldID0gdmFsdWU7IH0gcmV0dXJuIG9iajsgfVxuXG52YXIgSW5wdXRTaXplcyA9ICgwLCBfdHlwZS50dXBsZSkoJ3NtYWxsJywgJ2RlZmF1bHQnLCAnbGFyZ2UnKTtcbmV4cG9ydHMuSW5wdXRTaXplcyA9IElucHV0U2l6ZXM7XG5cbmZ1bmN0aW9uIGZpeENvbnRyb2xsZWRWYWx1ZSh2YWx1ZSkge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJyB8fCB2YWx1ZSA9PT0gbnVsbCkge1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIHJldHVybiB2YWx1ZTtcbn1cblxuZnVuY3Rpb24gcmVzb2x2ZU9uQ2hhbmdlKHRhcmdldCwgZSwgb25DaGFuZ2UpIHtcbiAgaWYgKG9uQ2hhbmdlKSB7XG4gICAgdmFyIGV2ZW50ID0gZTtcblxuICAgIGlmIChlLnR5cGUgPT09ICdjbGljaycpIHtcbiAgICAgIC8vIGNsaWNrIGNsZWFyIGljb25cbiAgICAgIGV2ZW50ID0gT2JqZWN0LmNyZWF0ZShlKTtcbiAgICAgIGV2ZW50LnRhcmdldCA9IHRhcmdldDtcbiAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQgPSB0YXJnZXQ7XG4gICAgICB2YXIgb3JpZ2luYWxJbnB1dFZhbHVlID0gdGFyZ2V0LnZhbHVlOyAvLyBjaGFuZ2UgdGFyZ2V0IHJlZiB2YWx1ZSBjYXVzZSBlLnRhcmdldC52YWx1ZSBzaG91bGQgYmUgJycgd2hlbiBjbGVhciBpbnB1dFxuXG4gICAgICB0YXJnZXQudmFsdWUgPSAnJztcbiAgICAgIG9uQ2hhbmdlKGV2ZW50KTsgLy8gcmVzZXQgdGFyZ2V0IHJlZiB2YWx1ZVxuXG4gICAgICB0YXJnZXQudmFsdWUgPSBvcmlnaW5hbElucHV0VmFsdWU7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgb25DaGFuZ2UoZXZlbnQpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldElucHV0Q2xhc3NOYW1lKHByZWZpeENscywgc2l6ZSwgZGlzYWJsZWQpIHtcbiAgdmFyIF9jbGFzc05hbWVzO1xuXG4gIHJldHVybiAoMCwgX2NsYXNzbmFtZXNbXCJkZWZhdWx0XCJdKShwcmVmaXhDbHMsIChfY2xhc3NOYW1lcyA9IHt9LCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzTmFtZXMsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItc21cIiksIHNpemUgPT09ICdzbWFsbCcpLCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzTmFtZXMsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItbGdcIiksIHNpemUgPT09ICdsYXJnZScpLCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzTmFtZXMsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItZGlzYWJsZWRcIiksIGRpc2FibGVkKSwgX2NsYXNzTmFtZXMpKTtcbn1cblxudmFyIElucHV0ID0gLyojX19QVVJFX18qL2Z1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhJbnB1dCwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgdmFyIF9zdXBlciA9IF9jcmVhdGVTdXBlcihJbnB1dCk7XG5cbiAgZnVuY3Rpb24gSW5wdXQocHJvcHMpIHtcbiAgICB2YXIgX3RoaXM7XG5cbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgSW5wdXQpO1xuXG4gICAgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBwcm9wcyk7XG5cbiAgICBfdGhpcy5zYXZlQ2xlYXJhYmxlSW5wdXQgPSBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgIF90aGlzLmNsZWFyYWJsZUlucHV0ID0gaW5wdXQ7XG4gICAgfTtcblxuICAgIF90aGlzLnNhdmVJbnB1dCA9IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgX3RoaXMuaW5wdXQgPSBpbnB1dDtcbiAgICB9O1xuXG4gICAgX3RoaXMuaGFuZGxlUmVzZXQgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgX3RoaXMuc2V0VmFsdWUoJycsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgX3RoaXMuZm9jdXMoKTtcbiAgICAgIH0pO1xuXG4gICAgICByZXNvbHZlT25DaGFuZ2UoX3RoaXMuaW5wdXQsIGUsIF90aGlzLnByb3BzLm9uQ2hhbmdlKTtcbiAgICB9O1xuXG4gICAgX3RoaXMucmVuZGVySW5wdXQgPSBmdW5jdGlvbiAocHJlZml4Q2xzKSB7XG4gICAgICB2YXIgX3RoaXMkcHJvcHMgPSBfdGhpcy5wcm9wcyxcbiAgICAgICAgICBjbGFzc05hbWUgPSBfdGhpcyRwcm9wcy5jbGFzc05hbWUsXG4gICAgICAgICAgYWRkb25CZWZvcmUgPSBfdGhpcyRwcm9wcy5hZGRvbkJlZm9yZSxcbiAgICAgICAgICBhZGRvbkFmdGVyID0gX3RoaXMkcHJvcHMuYWRkb25BZnRlcixcbiAgICAgICAgICBzaXplID0gX3RoaXMkcHJvcHMuc2l6ZSxcbiAgICAgICAgICBkaXNhYmxlZCA9IF90aGlzJHByb3BzLmRpc2FibGVkOyAvLyBGaXggaHR0cHM6Ly9mYi5tZS9yZWFjdC11bmtub3duLXByb3BcblxuICAgICAgdmFyIG90aGVyUHJvcHMgPSAoMCwgX29taXRbXCJkZWZhdWx0XCJdKShfdGhpcy5wcm9wcywgWydwcmVmaXhDbHMnLCAnb25QcmVzc0VudGVyJywgJ2FkZG9uQmVmb3JlJywgJ2FkZG9uQWZ0ZXInLCAncHJlZml4JywgJ3N1ZmZpeCcsICdhbGxvd0NsZWFyJywgLy8gSW5wdXQgZWxlbWVudHMgbXVzdCBiZSBlaXRoZXIgY29udHJvbGxlZCBvciB1bmNvbnRyb2xsZWQsXG4gICAgICAvLyBzcGVjaWZ5IGVpdGhlciB0aGUgdmFsdWUgcHJvcCwgb3IgdGhlIGRlZmF1bHRWYWx1ZSBwcm9wLCBidXQgbm90IGJvdGguXG4gICAgICAnZGVmYXVsdFZhbHVlJywgJ3NpemUnLCAnaW5wdXRUeXBlJ10pO1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIiwgX2V4dGVuZHMoe30sIG90aGVyUHJvcHMsIHtcbiAgICAgICAgb25DaGFuZ2U6IF90aGlzLmhhbmRsZUNoYW5nZSxcbiAgICAgICAgb25LZXlEb3duOiBfdGhpcy5oYW5kbGVLZXlEb3duLFxuICAgICAgICBjbGFzc05hbWU6ICgwLCBfY2xhc3NuYW1lc1tcImRlZmF1bHRcIl0pKGdldElucHV0Q2xhc3NOYW1lKHByZWZpeENscywgc2l6ZSwgZGlzYWJsZWQpLCBfZGVmaW5lUHJvcGVydHkoe30sIGNsYXNzTmFtZSwgY2xhc3NOYW1lICYmICFhZGRvbkJlZm9yZSAmJiAhYWRkb25BZnRlcikpLFxuICAgICAgICByZWY6IF90aGlzLnNhdmVJbnB1dFxuICAgICAgfSkpO1xuICAgIH07XG5cbiAgICBfdGhpcy5jbGVhclBhc3N3b3JkVmFsdWVBdHRyaWJ1dGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vYW50LWRlc2lnbi9hbnQtZGVzaWduL2lzc3Vlcy8yMDU0MVxuICAgICAgX3RoaXMucmVtb3ZlUGFzc3dvcmRUaW1lb3V0ID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmIChfdGhpcy5pbnB1dCAmJiBfdGhpcy5pbnB1dC5nZXRBdHRyaWJ1dGUoJ3R5cGUnKSA9PT0gJ3Bhc3N3b3JkJyAmJiBfdGhpcy5pbnB1dC5oYXNBdHRyaWJ1dGUoJ3ZhbHVlJykpIHtcbiAgICAgICAgICBfdGhpcy5pbnB1dC5yZW1vdmVBdHRyaWJ1dGUoJ3ZhbHVlJyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBfdGhpcy5oYW5kbGVDaGFuZ2UgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgX3RoaXMuc2V0VmFsdWUoZS50YXJnZXQudmFsdWUsIF90aGlzLmNsZWFyUGFzc3dvcmRWYWx1ZUF0dHJpYnV0ZSk7XG5cbiAgICAgIHJlc29sdmVPbkNoYW5nZShfdGhpcy5pbnB1dCwgZSwgX3RoaXMucHJvcHMub25DaGFuZ2UpO1xuICAgIH07XG5cbiAgICBfdGhpcy5oYW5kbGVLZXlEb3duID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgIHZhciBfdGhpcyRwcm9wczIgPSBfdGhpcy5wcm9wcyxcbiAgICAgICAgICBvblByZXNzRW50ZXIgPSBfdGhpcyRwcm9wczIub25QcmVzc0VudGVyLFxuICAgICAgICAgIG9uS2V5RG93biA9IF90aGlzJHByb3BzMi5vbktleURvd247XG5cbiAgICAgIGlmIChlLmtleUNvZGUgPT09IDEzICYmIG9uUHJlc3NFbnRlcikge1xuICAgICAgICBvblByZXNzRW50ZXIoZSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChvbktleURvd24pIHtcbiAgICAgICAgb25LZXlEb3duKGUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBfdGhpcy5yZW5kZXJDb21wb25lbnQgPSBmdW5jdGlvbiAoX3JlZikge1xuICAgICAgdmFyIGdldFByZWZpeENscyA9IF9yZWYuZ2V0UHJlZml4Q2xzO1xuICAgICAgdmFyIHZhbHVlID0gX3RoaXMuc3RhdGUudmFsdWU7XG4gICAgICB2YXIgY3VzdG9taXplUHJlZml4Q2xzID0gX3RoaXMucHJvcHMucHJlZml4Q2xzO1xuICAgICAgdmFyIHByZWZpeENscyA9IGdldFByZWZpeENscygnaW5wdXQnLCBjdXN0b21pemVQcmVmaXhDbHMpO1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9DbGVhcmFibGVMYWJlbGVkSW5wdXRbXCJkZWZhdWx0XCJdLCBfZXh0ZW5kcyh7fSwgX3RoaXMucHJvcHMsIHtcbiAgICAgICAgcHJlZml4Q2xzOiBwcmVmaXhDbHMsXG4gICAgICAgIGlucHV0VHlwZTogXCJpbnB1dFwiLFxuICAgICAgICB2YWx1ZTogZml4Q29udHJvbGxlZFZhbHVlKHZhbHVlKSxcbiAgICAgICAgZWxlbWVudDogX3RoaXMucmVuZGVySW5wdXQocHJlZml4Q2xzKSxcbiAgICAgICAgaGFuZGxlUmVzZXQ6IF90aGlzLmhhbmRsZVJlc2V0LFxuICAgICAgICByZWY6IF90aGlzLnNhdmVDbGVhcmFibGVJbnB1dFxuICAgICAgfSkpO1xuICAgIH07XG5cbiAgICB2YXIgdmFsdWUgPSB0eXBlb2YgcHJvcHMudmFsdWUgPT09ICd1bmRlZmluZWQnID8gcHJvcHMuZGVmYXVsdFZhbHVlIDogcHJvcHMudmFsdWU7XG4gICAgX3RoaXMuc3RhdGUgPSB7XG4gICAgICB2YWx1ZTogdmFsdWVcbiAgICB9O1xuICAgIHJldHVybiBfdGhpcztcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhJbnB1dCwgW3tcbiAgICBrZXk6IFwiY29tcG9uZW50RGlkTW91bnRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICB0aGlzLmNsZWFyUGFzc3dvcmRWYWx1ZUF0dHJpYnV0ZSgpO1xuICAgIH0gLy8gU2luY2UgcG9seWZpbGwgYGdldFNuYXBzaG90QmVmb3JlVXBkYXRlYCBuZWVkIHdvcmsgd2l0aCBgY29tcG9uZW50RGlkVXBkYXRlYC5cbiAgICAvLyBXZSBrZWVwIGFuIGVtcHR5IGZ1bmN0aW9uIGhlcmUuXG5cbiAgfSwge1xuICAgIGtleTogXCJjb21wb25lbnREaWRVcGRhdGVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50RGlkVXBkYXRlKCkge31cbiAgfSwge1xuICAgIGtleTogXCJnZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICAgIGlmICgoMCwgX0NsZWFyYWJsZUxhYmVsZWRJbnB1dC5oYXNQcmVmaXhTdWZmaXgpKHByZXZQcm9wcykgIT09ICgwLCBfQ2xlYXJhYmxlTGFiZWxlZElucHV0Lmhhc1ByZWZpeFN1ZmZpeCkodGhpcy5wcm9wcykpIHtcbiAgICAgICAgKDAsIF93YXJuaW5nW1wiZGVmYXVsdFwiXSkodGhpcy5pbnB1dCAhPT0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCwgJ0lucHV0JywgXCJXaGVuIElucHV0IGlzIGZvY3VzZWQsIGR5bmFtaWMgYWRkIG9yIHJlbW92ZSBwcmVmaXggLyBzdWZmaXggd2lsbCBtYWtlIGl0IGxvc2UgZm9jdXMgY2F1c2VkIGJ5IGRvbSBzdHJ1Y3R1cmUgY2hhbmdlLiBSZWFkIG1vcmU6IGh0dHBzOi8vYW50LmRlc2lnbi9jb21wb25lbnRzL2lucHV0LyNGQVFcIik7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJjb21wb25lbnRXaWxsVW5tb3VudFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgIGlmICh0aGlzLnJlbW92ZVBhc3N3b3JkVGltZW91dCkge1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5yZW1vdmVQYXNzd29yZFRpbWVvdXQpO1xuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJmb2N1c1wiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBmb2N1cygpIHtcbiAgICAgIHRoaXMuaW5wdXQuZm9jdXMoKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiYmx1clwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBibHVyKCkge1xuICAgICAgdGhpcy5pbnB1dC5ibHVyKCk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInNlbGVjdFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBzZWxlY3QoKSB7XG4gICAgICB0aGlzLmlucHV0LnNlbGVjdCgpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJzZXRWYWx1ZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBzZXRWYWx1ZSh2YWx1ZSwgY2FsbGJhY2spIHtcbiAgICAgIGlmICghKCd2YWx1ZScgaW4gdGhpcy5wcm9wcykpIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgdmFsdWU6IHZhbHVlXG4gICAgICAgIH0sIGNhbGxiYWNrKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfY29uZmlnUHJvdmlkZXIuQ29uZmlnQ29uc3VtZXIsIG51bGwsIHRoaXMucmVuZGVyQ29tcG9uZW50KTtcbiAgICB9XG4gIH1dLCBbe1xuICAgIGtleTogXCJnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHNcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKG5leHRQcm9wcykge1xuICAgICAgaWYgKCd2YWx1ZScgaW4gbmV4dFByb3BzKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdmFsdWU6IG5leHRQcm9wcy52YWx1ZVxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gSW5wdXQ7XG59KFJlYWN0LkNvbXBvbmVudCk7XG5cbklucHV0LmRlZmF1bHRQcm9wcyA9IHtcbiAgdHlwZTogJ3RleHQnXG59O1xuSW5wdXQucHJvcFR5cGVzID0ge1xuICB0eXBlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBpZDogUHJvcFR5cGVzLnN0cmluZyxcbiAgc2l6ZTogUHJvcFR5cGVzLm9uZU9mKElucHV0U2l6ZXMpLFxuICBtYXhMZW5ndGg6IFByb3BUeXBlcy5udW1iZXIsXG4gIGRpc2FibGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgdmFsdWU6IFByb3BUeXBlcy5hbnksXG4gIGRlZmF1bHRWYWx1ZTogUHJvcFR5cGVzLmFueSxcbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBhZGRvbkJlZm9yZTogUHJvcFR5cGVzLm5vZGUsXG4gIGFkZG9uQWZ0ZXI6IFByb3BUeXBlcy5ub2RlLFxuICBwcmVmaXhDbHM6IFByb3BUeXBlcy5zdHJpbmcsXG4gIG9uUHJlc3NFbnRlcjogUHJvcFR5cGVzLmZ1bmMsXG4gIG9uS2V5RG93bjogUHJvcFR5cGVzLmZ1bmMsXG4gIG9uS2V5VXA6IFByb3BUeXBlcy5mdW5jLFxuICBvbkZvY3VzOiBQcm9wVHlwZXMuZnVuYyxcbiAgb25CbHVyOiBQcm9wVHlwZXMuZnVuYyxcbiAgcHJlZml4OiBQcm9wVHlwZXMubm9kZSxcbiAgc3VmZml4OiBQcm9wVHlwZXMubm9kZSxcbiAgYWxsb3dDbGVhcjogUHJvcFR5cGVzLmJvb2xcbn07XG4oMCwgX3JlYWN0TGlmZWN5Y2xlc0NvbXBhdC5wb2x5ZmlsbCkoSW5wdXQpO1xudmFyIF9kZWZhdWx0ID0gSW5wdXQ7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IF9kZWZhdWx0OyIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBBZnJpa2FhbnMgW2FmXVxuLy8hIGF1dGhvciA6IFdlcm5lciBNb2xsZW50emUgOiBodHRwczovL2dpdGh1Yi5jb20vd2VybmVybVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIGFmID0gbW9tZW50LmRlZmluZUxvY2FsZSgnYWYnLCB7XG4gICAgICAgIG1vbnRoczogJ0phbnVhcmllX0ZlYnJ1YXJpZV9NYWFydF9BcHJpbF9NZWlfSnVuaWVfSnVsaWVfQXVndXN0dXNfU2VwdGVtYmVyX09rdG9iZXJfTm92ZW1iZXJfRGVzZW1iZXInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnSmFuX0ZlYl9NcnRfQXByX01laV9KdW5fSnVsX0F1Z19TZXBfT2t0X05vdl9EZXMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAnU29uZGFnX01hYW5kYWdfRGluc2RhZ19Xb2Vuc2RhZ19Eb25kZXJkYWdfVnJ5ZGFnX1NhdGVyZGFnJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnU29uX01hYV9EaW5fV29lX0Rvbl9WcnlfU2F0Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ1NvX01hX0RpX1dvX0RvX1ZyX1NhJy5zcGxpdCgnXycpLFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAvdm18bm0vaSxcbiAgICAgICAgaXNQTTogZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gL15ubSQvaS50ZXN0KGlucHV0KTtcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VycywgbWludXRlcywgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXJzIDwgMTIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNMb3dlciA/ICd2bScgOiAnVk0nO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNMb3dlciA/ICdubScgOiAnTk0nO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW1ZhbmRhZyBvbV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tNw7RyZSBvbV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFtvbV0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tHaXN0ZXIgb21dIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW0xhYXNdIGRkZGQgW29tXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ29vciAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMgZ2VsZWRlJyxcbiAgICAgICAgICAgIHM6IFwiJ24gcGFhciBzZWtvbmRlc1wiLFxuICAgICAgICAgICAgc3M6ICclZCBzZWtvbmRlcycsXG4gICAgICAgICAgICBtOiBcIiduIG1pbnV1dFwiLFxuICAgICAgICAgICAgbW06ICclZCBtaW51dGUnLFxuICAgICAgICAgICAgaDogXCInbiB1dXJcIixcbiAgICAgICAgICAgIGhoOiAnJWQgdXJlJyxcbiAgICAgICAgICAgIGQ6IFwiJ24gZGFnXCIsXG4gICAgICAgICAgICBkZDogJyVkIGRhZScsXG4gICAgICAgICAgICBNOiBcIiduIG1hYW5kXCIsXG4gICAgICAgICAgICBNTTogJyVkIG1hYW5kZScsXG4gICAgICAgICAgICB5OiBcIiduIGphYXJcIixcbiAgICAgICAgICAgIHl5OiAnJWQgamFhcicsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfShzdGV8ZGUpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICBudW1iZXIgK1xuICAgICAgICAgICAgICAgIChudW1iZXIgPT09IDEgfHwgbnVtYmVyID09PSA4IHx8IG51bWJlciA+PSAyMCA/ICdzdGUnIDogJ2RlJylcbiAgICAgICAgICAgICk7IC8vIFRoYW5rcyB0byBKb3JpcyBSw7ZsaW5nIDogaHR0cHM6Ly9naXRodWIuY29tL2pqdXBpdGVyXG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTWFhbmRhZyBpcyBkaWUgZWVyc3RlIGRhZyB2YW4gZGllIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIERpZSB3ZWVrIHdhdCBkaWUgNGRlIEphbnVhcmllIGJldmF0IGlzIGRpZSBlZXJzdGUgd2VlayB2YW4gZGllIGphYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gYWY7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogQXJhYmljIFthcl1cbi8vISBhdXRob3IgOiBBYmRlbCBTYWlkOiBodHRwczovL2dpdGh1Yi5jb20vYWJkZWxzYWlkXG4vLyEgYXV0aG9yIDogQWhtZWQgRWxraGF0aWJcbi8vISBhdXRob3IgOiBmb3JhYmkgaHR0cHM6Ly9naXRodWIuY29tL2ZvcmFiaVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHN5bWJvbE1hcCA9IHtcbiAgICAgICAgICAgICcxJzogJ9mhJyxcbiAgICAgICAgICAgICcyJzogJ9miJyxcbiAgICAgICAgICAgICczJzogJ9mjJyxcbiAgICAgICAgICAgICc0JzogJ9mkJyxcbiAgICAgICAgICAgICc1JzogJ9mlJyxcbiAgICAgICAgICAgICc2JzogJ9mmJyxcbiAgICAgICAgICAgICc3JzogJ9mnJyxcbiAgICAgICAgICAgICc4JzogJ9moJyxcbiAgICAgICAgICAgICc5JzogJ9mpJyxcbiAgICAgICAgICAgICcwJzogJ9mgJyxcbiAgICAgICAgfSxcbiAgICAgICAgbnVtYmVyTWFwID0ge1xuICAgICAgICAgICAgJ9mhJzogJzEnLFxuICAgICAgICAgICAgJ9miJzogJzInLFxuICAgICAgICAgICAgJ9mjJzogJzMnLFxuICAgICAgICAgICAgJ9mkJzogJzQnLFxuICAgICAgICAgICAgJ9mlJzogJzUnLFxuICAgICAgICAgICAgJ9mmJzogJzYnLFxuICAgICAgICAgICAgJ9mnJzogJzcnLFxuICAgICAgICAgICAgJ9moJzogJzgnLFxuICAgICAgICAgICAgJ9mpJzogJzknLFxuICAgICAgICAgICAgJ9mgJzogJzAnLFxuICAgICAgICB9LFxuICAgICAgICBwbHVyYWxGb3JtID0gZnVuY3Rpb24gKG4pIHtcbiAgICAgICAgICAgIHJldHVybiBuID09PSAwXG4gICAgICAgICAgICAgICAgPyAwXG4gICAgICAgICAgICAgICAgOiBuID09PSAxXG4gICAgICAgICAgICAgICAgPyAxXG4gICAgICAgICAgICAgICAgOiBuID09PSAyXG4gICAgICAgICAgICAgICAgPyAyXG4gICAgICAgICAgICAgICAgOiBuICUgMTAwID49IDMgJiYgbiAlIDEwMCA8PSAxMFxuICAgICAgICAgICAgICAgID8gM1xuICAgICAgICAgICAgICAgIDogbiAlIDEwMCA+PSAxMVxuICAgICAgICAgICAgICAgID8gNFxuICAgICAgICAgICAgICAgIDogNTtcbiAgICAgICAgfSxcbiAgICAgICAgcGx1cmFscyA9IHtcbiAgICAgICAgICAgIHM6IFtcbiAgICAgICAgICAgICAgICAn2KPZgtmEINmF2YYg2KvYp9mG2YrYqScsXG4gICAgICAgICAgICAgICAgJ9ir2KfZhtmK2Kkg2YjYp9it2K/YqScsXG4gICAgICAgICAgICAgICAgWyfYq9in2YbZitiq2KfZhicsICfYq9in2YbZitiq2YrZhiddLFxuICAgICAgICAgICAgICAgICclZCDYq9mI2KfZhicsXG4gICAgICAgICAgICAgICAgJyVkINir2KfZhtmK2KknLFxuICAgICAgICAgICAgICAgICclZCDYq9in2YbZitipJyxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBtOiBbXG4gICAgICAgICAgICAgICAgJ9ij2YLZhCDZhdmGINiv2YLZitmC2KknLFxuICAgICAgICAgICAgICAgICfYr9mC2YrZgtipINmI2KfYrdiv2KknLFxuICAgICAgICAgICAgICAgIFsn2K/ZgtmK2YLYqtin2YYnLCAn2K/ZgtmK2YLYqtmK2YYnXSxcbiAgICAgICAgICAgICAgICAnJWQg2K/Zgtin2KbZgicsXG4gICAgICAgICAgICAgICAgJyVkINiv2YLZitmC2KknLFxuICAgICAgICAgICAgICAgICclZCDYr9mC2YrZgtipJyxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBoOiBbXG4gICAgICAgICAgICAgICAgJ9ij2YLZhCDZhdmGINiz2KfYudipJyxcbiAgICAgICAgICAgICAgICAn2LPYp9i52Kkg2YjYp9it2K/YqScsXG4gICAgICAgICAgICAgICAgWyfYs9in2LnYqtin2YYnLCAn2LPYp9i52KrZitmGJ10sXG4gICAgICAgICAgICAgICAgJyVkINiz2KfYudin2KonLFxuICAgICAgICAgICAgICAgICclZCDYs9in2LnYqScsXG4gICAgICAgICAgICAgICAgJyVkINiz2KfYudipJyxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBkOiBbXG4gICAgICAgICAgICAgICAgJ9ij2YLZhCDZhdmGINmK2YjZhScsXG4gICAgICAgICAgICAgICAgJ9mK2YjZhSDZiNin2K3YrycsXG4gICAgICAgICAgICAgICAgWyfZitmI2YXYp9mGJywgJ9mK2YjZhdmK2YYnXSxcbiAgICAgICAgICAgICAgICAnJWQg2KPZitin2YUnLFxuICAgICAgICAgICAgICAgICclZCDZitmI2YXZi9inJyxcbiAgICAgICAgICAgICAgICAnJWQg2YrZiNmFJyxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBNOiBbXG4gICAgICAgICAgICAgICAgJ9ij2YLZhCDZhdmGINi02YfYsScsXG4gICAgICAgICAgICAgICAgJ9i02YfYsSDZiNin2K3YrycsXG4gICAgICAgICAgICAgICAgWyfYtNmH2LHYp9mGJywgJ9i02YfYsdmK2YYnXSxcbiAgICAgICAgICAgICAgICAnJWQg2KPYtNmH2LEnLFxuICAgICAgICAgICAgICAgICclZCDYtNmH2LHYpycsXG4gICAgICAgICAgICAgICAgJyVkINi02YfYsScsXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgeTogW1xuICAgICAgICAgICAgICAgICfYo9mC2YQg2YXZhiDYudin2YUnLFxuICAgICAgICAgICAgICAgICfYudin2YUg2YjYp9it2K8nLFxuICAgICAgICAgICAgICAgIFsn2LnYp9mF2KfZhicsICfYudin2YXZitmGJ10sXG4gICAgICAgICAgICAgICAgJyVkINij2LnZiNin2YUnLFxuICAgICAgICAgICAgICAgICclZCDYudin2YXZi9inJyxcbiAgICAgICAgICAgICAgICAnJWQg2LnYp9mFJyxcbiAgICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICAgIHBsdXJhbGl6ZSA9IGZ1bmN0aW9uICh1KSB7XG4gICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKG51bWJlciwgd2l0aG91dFN1ZmZpeCwgc3RyaW5nLCBpc0Z1dHVyZSkge1xuICAgICAgICAgICAgICAgIHZhciBmID0gcGx1cmFsRm9ybShudW1iZXIpLFxuICAgICAgICAgICAgICAgICAgICBzdHIgPSBwbHVyYWxzW3VdW3BsdXJhbEZvcm0obnVtYmVyKV07XG4gICAgICAgICAgICAgICAgaWYgKGYgPT09IDIpIHtcbiAgICAgICAgICAgICAgICAgICAgc3RyID0gc3RyW3dpdGhvdXRTdWZmaXggPyAwIDogMV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBzdHIucmVwbGFjZSgvJWQvaSwgbnVtYmVyKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0sXG4gICAgICAgIG1vbnRocyA9IFtcbiAgICAgICAgICAgICfZitmG2KfZitixJyxcbiAgICAgICAgICAgICfZgdio2LHYp9mK2LEnLFxuICAgICAgICAgICAgJ9mF2KfYsdizJyxcbiAgICAgICAgICAgICfYo9io2LHZitmEJyxcbiAgICAgICAgICAgICfZhdin2YrZiCcsXG4gICAgICAgICAgICAn2YrZiNmG2YrZiCcsXG4gICAgICAgICAgICAn2YrZiNmE2YrZiCcsXG4gICAgICAgICAgICAn2KPYutiz2LfYsycsXG4gICAgICAgICAgICAn2LPYqNiq2YXYqNixJyxcbiAgICAgICAgICAgICfYo9mD2KrZiNio2LEnLFxuICAgICAgICAgICAgJ9mG2YjZgdmF2KjYsScsXG4gICAgICAgICAgICAn2K/Zitiz2YXYqNixJyxcbiAgICAgICAgXTtcblxuICAgIHZhciBhciA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2FyJywge1xuICAgICAgICBtb250aHM6IG1vbnRocyxcbiAgICAgICAgbW9udGhzU2hvcnQ6IG1vbnRocyxcbiAgICAgICAgd2Vla2RheXM6ICfYp9mE2KPYrdivX9in2YTYpdir2YbZitmGX9in2YTYq9mE2KfYq9in2KFf2KfZhNij2LHYqNi52KfYoV/Yp9mE2K7ZhdmK2LNf2KfZhNis2YXYudipX9in2YTYs9io2KonLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfYo9it2K9f2KXYq9mG2YrZhl/Yq9mE2KfYq9in2KFf2KPYsdio2LnYp9ihX9iu2YXZitizX9is2YXYudipX9iz2KjYqicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfYrV/Zhl/Yq1/YsV/Yrl/YrF/Ysycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnRC9cXHUyMDBGTS9cXHUyMDBGWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL9i1fNmFLyxcbiAgICAgICAgaXNQTTogZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gJ9mFJyA9PT0gaW5wdXQ7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDEyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfYtSc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn2YUnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vYp9mE2YrZiNmFINi52YbYryDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb2LrYr9mL2Kcg2LnZhtivINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFvYudmG2K8g2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW9ij2YXYsyDYudmG2K8g2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ2RkZGQgW9i52YbYryDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAn2KjYudivICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICfZhdmG2LAgJXMnLFxuICAgICAgICAgICAgczogcGx1cmFsaXplKCdzJyksXG4gICAgICAgICAgICBzczogcGx1cmFsaXplKCdzJyksXG4gICAgICAgICAgICBtOiBwbHVyYWxpemUoJ20nKSxcbiAgICAgICAgICAgIG1tOiBwbHVyYWxpemUoJ20nKSxcbiAgICAgICAgICAgIGg6IHBsdXJhbGl6ZSgnaCcpLFxuICAgICAgICAgICAgaGg6IHBsdXJhbGl6ZSgnaCcpLFxuICAgICAgICAgICAgZDogcGx1cmFsaXplKCdkJyksXG4gICAgICAgICAgICBkZDogcGx1cmFsaXplKCdkJyksXG4gICAgICAgICAgICBNOiBwbHVyYWxpemUoJ00nKSxcbiAgICAgICAgICAgIE1NOiBwbHVyYWxpemUoJ00nKSxcbiAgICAgICAgICAgIHk6IHBsdXJhbGl6ZSgneScpLFxuICAgICAgICAgICAgeXk6IHBsdXJhbGl6ZSgneScpLFxuICAgICAgICB9LFxuICAgICAgICBwcmVwYXJzZTogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZ1xuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9b2aHZotmj2aTZpdmm2afZqNmp2aBdL2csIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyTWFwW21hdGNoXTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC/YjC9nLCAnLCcpO1xuICAgICAgICB9LFxuICAgICAgICBwb3N0Zm9ybWF0OiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcZC9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bWJvbE1hcFttYXRjaF07XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvLC9nLCAn2IwnKTtcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiA2LCAvLyBTYXR1cmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiAxMiwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gMTJ0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBhcjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBBcmFiaWMgKEFsZ2VyaWEpIFthci1kel1cbi8vISBhdXRob3IgOiBBbWluZSBSb3VraDogaHR0cHM6Ly9naXRodWIuY29tL0FtaW5lMjdcbi8vISBhdXRob3IgOiBBYmRlbCBTYWlkOiBodHRwczovL2dpdGh1Yi5jb20vYWJkZWxzYWlkXG4vLyEgYXV0aG9yIDogQWhtZWQgRWxraGF0aWJcbi8vISBhdXRob3IgOiBmb3JhYmkgaHR0cHM6Ly9naXRodWIuY29tL2ZvcmFiaVxuLy8hIGF1dGhvciA6IE5vdXJlZGRpbmUgTE9VQUhFREogOiBodHRwczovL2dpdGh1Yi5jb20vbm91cmVkZGluZW1cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBwbHVyYWxGb3JtID0gZnVuY3Rpb24gKG4pIHtcbiAgICAgICAgICAgIHJldHVybiBuID09PSAwXG4gICAgICAgICAgICAgICAgPyAwXG4gICAgICAgICAgICAgICAgOiBuID09PSAxXG4gICAgICAgICAgICAgICAgPyAxXG4gICAgICAgICAgICAgICAgOiBuID09PSAyXG4gICAgICAgICAgICAgICAgPyAyXG4gICAgICAgICAgICAgICAgOiBuICUgMTAwID49IDMgJiYgbiAlIDEwMCA8PSAxMFxuICAgICAgICAgICAgICAgID8gM1xuICAgICAgICAgICAgICAgIDogbiAlIDEwMCA+PSAxMVxuICAgICAgICAgICAgICAgID8gNFxuICAgICAgICAgICAgICAgIDogNTtcbiAgICAgICAgfSxcbiAgICAgICAgcGx1cmFscyA9IHtcbiAgICAgICAgICAgIHM6IFtcbiAgICAgICAgICAgICAgICAn2KPZgtmEINmF2YYg2KvYp9mG2YrYqScsXG4gICAgICAgICAgICAgICAgJ9ir2KfZhtmK2Kkg2YjYp9it2K/YqScsXG4gICAgICAgICAgICAgICAgWyfYq9in2YbZitiq2KfZhicsICfYq9in2YbZitiq2YrZhiddLFxuICAgICAgICAgICAgICAgICclZCDYq9mI2KfZhicsXG4gICAgICAgICAgICAgICAgJyVkINir2KfZhtmK2KknLFxuICAgICAgICAgICAgICAgICclZCDYq9in2YbZitipJyxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBtOiBbXG4gICAgICAgICAgICAgICAgJ9ij2YLZhCDZhdmGINiv2YLZitmC2KknLFxuICAgICAgICAgICAgICAgICfYr9mC2YrZgtipINmI2KfYrdiv2KknLFxuICAgICAgICAgICAgICAgIFsn2K/ZgtmK2YLYqtin2YYnLCAn2K/ZgtmK2YLYqtmK2YYnXSxcbiAgICAgICAgICAgICAgICAnJWQg2K/Zgtin2KbZgicsXG4gICAgICAgICAgICAgICAgJyVkINiv2YLZitmC2KknLFxuICAgICAgICAgICAgICAgICclZCDYr9mC2YrZgtipJyxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBoOiBbXG4gICAgICAgICAgICAgICAgJ9ij2YLZhCDZhdmGINiz2KfYudipJyxcbiAgICAgICAgICAgICAgICAn2LPYp9i52Kkg2YjYp9it2K/YqScsXG4gICAgICAgICAgICAgICAgWyfYs9in2LnYqtin2YYnLCAn2LPYp9i52KrZitmGJ10sXG4gICAgICAgICAgICAgICAgJyVkINiz2KfYudin2KonLFxuICAgICAgICAgICAgICAgICclZCDYs9in2LnYqScsXG4gICAgICAgICAgICAgICAgJyVkINiz2KfYudipJyxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBkOiBbXG4gICAgICAgICAgICAgICAgJ9ij2YLZhCDZhdmGINmK2YjZhScsXG4gICAgICAgICAgICAgICAgJ9mK2YjZhSDZiNin2K3YrycsXG4gICAgICAgICAgICAgICAgWyfZitmI2YXYp9mGJywgJ9mK2YjZhdmK2YYnXSxcbiAgICAgICAgICAgICAgICAnJWQg2KPZitin2YUnLFxuICAgICAgICAgICAgICAgICclZCDZitmI2YXZi9inJyxcbiAgICAgICAgICAgICAgICAnJWQg2YrZiNmFJyxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBNOiBbXG4gICAgICAgICAgICAgICAgJ9ij2YLZhCDZhdmGINi02YfYsScsXG4gICAgICAgICAgICAgICAgJ9i02YfYsSDZiNin2K3YrycsXG4gICAgICAgICAgICAgICAgWyfYtNmH2LHYp9mGJywgJ9i02YfYsdmK2YYnXSxcbiAgICAgICAgICAgICAgICAnJWQg2KPYtNmH2LEnLFxuICAgICAgICAgICAgICAgICclZCDYtNmH2LHYpycsXG4gICAgICAgICAgICAgICAgJyVkINi02YfYsScsXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgeTogW1xuICAgICAgICAgICAgICAgICfYo9mC2YQg2YXZhiDYudin2YUnLFxuICAgICAgICAgICAgICAgICfYudin2YUg2YjYp9it2K8nLFxuICAgICAgICAgICAgICAgIFsn2LnYp9mF2KfZhicsICfYudin2YXZitmGJ10sXG4gICAgICAgICAgICAgICAgJyVkINij2LnZiNin2YUnLFxuICAgICAgICAgICAgICAgICclZCDYudin2YXZi9inJyxcbiAgICAgICAgICAgICAgICAnJWQg2LnYp9mFJyxcbiAgICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICAgIHBsdXJhbGl6ZSA9IGZ1bmN0aW9uICh1KSB7XG4gICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKG51bWJlciwgd2l0aG91dFN1ZmZpeCwgc3RyaW5nLCBpc0Z1dHVyZSkge1xuICAgICAgICAgICAgICAgIHZhciBmID0gcGx1cmFsRm9ybShudW1iZXIpLFxuICAgICAgICAgICAgICAgICAgICBzdHIgPSBwbHVyYWxzW3VdW3BsdXJhbEZvcm0obnVtYmVyKV07XG4gICAgICAgICAgICAgICAgaWYgKGYgPT09IDIpIHtcbiAgICAgICAgICAgICAgICAgICAgc3RyID0gc3RyW3dpdGhvdXRTdWZmaXggPyAwIDogMV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBzdHIucmVwbGFjZSgvJWQvaSwgbnVtYmVyKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0sXG4gICAgICAgIG1vbnRocyA9IFtcbiAgICAgICAgICAgICfYrNin2YbZgdmKJyxcbiAgICAgICAgICAgICfZgdmK2YHYsdmKJyxcbiAgICAgICAgICAgICfZhdin2LHYsycsXG4gICAgICAgICAgICAn2KPZgdix2YrZhCcsXG4gICAgICAgICAgICAn2YXYp9mKJyxcbiAgICAgICAgICAgICfYrNmI2KfZhicsXG4gICAgICAgICAgICAn2KzZiNmK2YTZitipJyxcbiAgICAgICAgICAgICfYo9mI2KonLFxuICAgICAgICAgICAgJ9iz2KjYqtmF2KjYsScsXG4gICAgICAgICAgICAn2KPZg9iq2YjYqNixJyxcbiAgICAgICAgICAgICfZhtmI2YHZhdio2LEnLFxuICAgICAgICAgICAgJ9iv2YrYs9mF2KjYsScsXG4gICAgICAgIF07XG5cbiAgICB2YXIgYXJEeiA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2FyLWR6Jywge1xuICAgICAgICBtb250aHM6IG1vbnRocyxcbiAgICAgICAgbW9udGhzU2hvcnQ6IG1vbnRocyxcbiAgICAgICAgd2Vla2RheXM6ICfYp9mE2KPYrdivX9in2YTYpdir2YbZitmGX9in2YTYq9mE2KfYq9in2KFf2KfZhNij2LHYqNi52KfYoV/Yp9mE2K7ZhdmK2LNf2KfZhNis2YXYudipX9in2YTYs9io2KonLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfYo9it2K9f2KXYq9mG2YrZhl/Yq9mE2KfYq9in2KFf2KPYsdio2LnYp9ihX9iu2YXZitizX9is2YXYudipX9iz2KjYqicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfYrV/Zhl/Yq1/YsV/Yrl/YrF/Ysycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnRC9cXHUyMDBGTS9cXHUyMDBGWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL9i1fNmFLyxcbiAgICAgICAgaXNQTTogZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gJ9mFJyA9PT0gaW5wdXQ7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDEyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfYtSc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn2YUnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vYp9mE2YrZiNmFINi52YbYryDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb2LrYr9mL2Kcg2LnZhtivINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFvYudmG2K8g2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW9ij2YXYsyDYudmG2K8g2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ2RkZGQgW9i52YbYryDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAn2KjYudivICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICfZhdmG2LAgJXMnLFxuICAgICAgICAgICAgczogcGx1cmFsaXplKCdzJyksXG4gICAgICAgICAgICBzczogcGx1cmFsaXplKCdzJyksXG4gICAgICAgICAgICBtOiBwbHVyYWxpemUoJ20nKSxcbiAgICAgICAgICAgIG1tOiBwbHVyYWxpemUoJ20nKSxcbiAgICAgICAgICAgIGg6IHBsdXJhbGl6ZSgnaCcpLFxuICAgICAgICAgICAgaGg6IHBsdXJhbGl6ZSgnaCcpLFxuICAgICAgICAgICAgZDogcGx1cmFsaXplKCdkJyksXG4gICAgICAgICAgICBkZDogcGx1cmFsaXplKCdkJyksXG4gICAgICAgICAgICBNOiBwbHVyYWxpemUoJ00nKSxcbiAgICAgICAgICAgIE1NOiBwbHVyYWxpemUoJ00nKSxcbiAgICAgICAgICAgIHk6IHBsdXJhbGl6ZSgneScpLFxuICAgICAgICAgICAgeXk6IHBsdXJhbGl6ZSgneScpLFxuICAgICAgICB9LFxuICAgICAgICBwb3N0Zm9ybWF0OiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoLywvZywgJ9iMJyk7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMCwgLy8gU3VuZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBhckR6O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEFyYWJpYyAoS3V3YWl0KSBbYXIta3ddXG4vLyEgYXV0aG9yIDogTnVzcmV0IFBhcmxhazogaHR0cHM6Ly9naXRodWIuY29tL251c3JldHBhcmxha1xuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIGFyS3cgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdhci1rdycsIHtcbiAgICAgICAgbW9udGhzOiAn2YrZhtin2YrYsV/Zgdio2LHYp9mK2LFf2YXYp9ix2LNf2KPYqNix2YrZhF/Zhdin2Ypf2YrZiNmG2YrZiF/ZitmI2YTZitmI2LJf2LrYtNiqX9i02KrZhtio2LFf2KPZg9iq2YjYqNixX9mG2YjZhtio2LFf2K/YrNmG2KjYsScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICfZitmG2KfZitixX9mB2KjYsdin2YrYsV/Zhdin2LHYs1/Yo9io2LHZitmEX9mF2KfZil/ZitmI2YbZitmIX9mK2YjZhNmK2YjYsl/Yuti02Kpf2LTYqtmG2KjYsV/Yo9mD2KrZiNio2LFf2YbZiNmG2KjYsV/Yr9is2YbYqNixJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5czogJ9in2YTYo9it2K9f2KfZhNil2KrZhtmK2YZf2KfZhNir2YTYp9ir2KfYoV/Yp9mE2KPYsdio2LnYp9ihX9in2YTYrtmF2YrYs1/Yp9mE2KzZhdi52Klf2KfZhNiz2KjYqicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ9in2K3Yr1/Yp9iq2YbZitmGX9ir2YTYp9ir2KfYoV/Yp9ix2KjYudin2KFf2K7ZhdmK2LNf2KzZhdi52Klf2LPYqNiqJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ9itX9mGX9irX9ixX9iuX9isX9izJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vYp9mE2YrZiNmFINi52YTZiSDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb2LrYr9inINi52YTZiSDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBb2LnZhNmJINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vYo9mF2LMg2LnZhNmJINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdkZGRkIFvYudmE2Ykg2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ9mB2YogJXMnLFxuICAgICAgICAgICAgcGFzdDogJ9mF2YbYsCAlcycsXG4gICAgICAgICAgICBzOiAn2KvZiNin2YYnLFxuICAgICAgICAgICAgc3M6ICclZCDYq9in2YbZitipJyxcbiAgICAgICAgICAgIG06ICfYr9mC2YrZgtipJyxcbiAgICAgICAgICAgIG1tOiAnJWQg2K/Zgtin2KbZgicsXG4gICAgICAgICAgICBoOiAn2LPYp9i52KknLFxuICAgICAgICAgICAgaGg6ICclZCDYs9in2LnYp9iqJyxcbiAgICAgICAgICAgIGQ6ICfZitmI2YUnLFxuICAgICAgICAgICAgZGQ6ICclZCDYo9mK2KfZhScsXG4gICAgICAgICAgICBNOiAn2LTZh9ixJyxcbiAgICAgICAgICAgIE1NOiAnJWQg2KPYtNmH2LEnLFxuICAgICAgICAgICAgeTogJ9iz2YbYqScsXG4gICAgICAgICAgICB5eTogJyVkINiz2YbZiNin2KonLFxuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDAsIC8vIFN1bmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiAxMiwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gMTJ0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBhckt3O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEFyYWJpYyAoTHliaWEpIFthci1seV1cbi8vISBhdXRob3IgOiBBbGkgSG1lcjogaHR0cHM6Ly9naXRodWIuY29tL2tpa29hbmlzXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgc3ltYm9sTWFwID0ge1xuICAgICAgICAgICAgJzEnOiAnMScsXG4gICAgICAgICAgICAnMic6ICcyJyxcbiAgICAgICAgICAgICczJzogJzMnLFxuICAgICAgICAgICAgJzQnOiAnNCcsXG4gICAgICAgICAgICAnNSc6ICc1JyxcbiAgICAgICAgICAgICc2JzogJzYnLFxuICAgICAgICAgICAgJzcnOiAnNycsXG4gICAgICAgICAgICAnOCc6ICc4JyxcbiAgICAgICAgICAgICc5JzogJzknLFxuICAgICAgICAgICAgJzAnOiAnMCcsXG4gICAgICAgIH0sXG4gICAgICAgIHBsdXJhbEZvcm0gPSBmdW5jdGlvbiAobikge1xuICAgICAgICAgICAgcmV0dXJuIG4gPT09IDBcbiAgICAgICAgICAgICAgICA/IDBcbiAgICAgICAgICAgICAgICA6IG4gPT09IDFcbiAgICAgICAgICAgICAgICA/IDFcbiAgICAgICAgICAgICAgICA6IG4gPT09IDJcbiAgICAgICAgICAgICAgICA/IDJcbiAgICAgICAgICAgICAgICA6IG4gJSAxMDAgPj0gMyAmJiBuICUgMTAwIDw9IDEwXG4gICAgICAgICAgICAgICAgPyAzXG4gICAgICAgICAgICAgICAgOiBuICUgMTAwID49IDExXG4gICAgICAgICAgICAgICAgPyA0XG4gICAgICAgICAgICAgICAgOiA1O1xuICAgICAgICB9LFxuICAgICAgICBwbHVyYWxzID0ge1xuICAgICAgICAgICAgczogW1xuICAgICAgICAgICAgICAgICfYo9mC2YQg2YXZhiDYq9in2YbZitipJyxcbiAgICAgICAgICAgICAgICAn2KvYp9mG2YrYqSDZiNin2K3Yr9ipJyxcbiAgICAgICAgICAgICAgICBbJ9ir2KfZhtmK2KrYp9mGJywgJ9ir2KfZhtmK2KrZitmGJ10sXG4gICAgICAgICAgICAgICAgJyVkINir2YjYp9mGJyxcbiAgICAgICAgICAgICAgICAnJWQg2KvYp9mG2YrYqScsXG4gICAgICAgICAgICAgICAgJyVkINir2KfZhtmK2KknLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIG06IFtcbiAgICAgICAgICAgICAgICAn2KPZgtmEINmF2YYg2K/ZgtmK2YLYqScsXG4gICAgICAgICAgICAgICAgJ9iv2YLZitmC2Kkg2YjYp9it2K/YqScsXG4gICAgICAgICAgICAgICAgWyfYr9mC2YrZgtiq2KfZhicsICfYr9mC2YrZgtiq2YrZhiddLFxuICAgICAgICAgICAgICAgICclZCDYr9mC2KfYptmCJyxcbiAgICAgICAgICAgICAgICAnJWQg2K/ZgtmK2YLYqScsXG4gICAgICAgICAgICAgICAgJyVkINiv2YLZitmC2KknLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGg6IFtcbiAgICAgICAgICAgICAgICAn2KPZgtmEINmF2YYg2LPYp9i52KknLFxuICAgICAgICAgICAgICAgICfYs9in2LnYqSDZiNin2K3Yr9ipJyxcbiAgICAgICAgICAgICAgICBbJ9iz2KfYudiq2KfZhicsICfYs9in2LnYqtmK2YYnXSxcbiAgICAgICAgICAgICAgICAnJWQg2LPYp9i52KfYqicsXG4gICAgICAgICAgICAgICAgJyVkINiz2KfYudipJyxcbiAgICAgICAgICAgICAgICAnJWQg2LPYp9i52KknLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGQ6IFtcbiAgICAgICAgICAgICAgICAn2KPZgtmEINmF2YYg2YrZiNmFJyxcbiAgICAgICAgICAgICAgICAn2YrZiNmFINmI2KfYrdivJyxcbiAgICAgICAgICAgICAgICBbJ9mK2YjZhdin2YYnLCAn2YrZiNmF2YrZhiddLFxuICAgICAgICAgICAgICAgICclZCDYo9mK2KfZhScsXG4gICAgICAgICAgICAgICAgJyVkINmK2YjZhdmL2KcnLFxuICAgICAgICAgICAgICAgICclZCDZitmI2YUnLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIE06IFtcbiAgICAgICAgICAgICAgICAn2KPZgtmEINmF2YYg2LTZh9ixJyxcbiAgICAgICAgICAgICAgICAn2LTZh9ixINmI2KfYrdivJyxcbiAgICAgICAgICAgICAgICBbJ9i02YfYsdin2YYnLCAn2LTZh9ix2YrZhiddLFxuICAgICAgICAgICAgICAgICclZCDYo9i02YfYsScsXG4gICAgICAgICAgICAgICAgJyVkINi02YfYsdinJyxcbiAgICAgICAgICAgICAgICAnJWQg2LTZh9ixJyxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB5OiBbXG4gICAgICAgICAgICAgICAgJ9ij2YLZhCDZhdmGINi52KfZhScsXG4gICAgICAgICAgICAgICAgJ9i52KfZhSDZiNin2K3YrycsXG4gICAgICAgICAgICAgICAgWyfYudin2YXYp9mGJywgJ9i52KfZhdmK2YYnXSxcbiAgICAgICAgICAgICAgICAnJWQg2KPYudmI2KfZhScsXG4gICAgICAgICAgICAgICAgJyVkINi52KfZhdmL2KcnLFxuICAgICAgICAgICAgICAgICclZCDYudin2YUnLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICAgcGx1cmFsaXplID0gZnVuY3Rpb24gKHUpIHtcbiAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAobnVtYmVyLCB3aXRob3V0U3VmZml4LCBzdHJpbmcsIGlzRnV0dXJlKSB7XG4gICAgICAgICAgICAgICAgdmFyIGYgPSBwbHVyYWxGb3JtKG51bWJlciksXG4gICAgICAgICAgICAgICAgICAgIHN0ciA9IHBsdXJhbHNbdV1bcGx1cmFsRm9ybShudW1iZXIpXTtcbiAgICAgICAgICAgICAgICBpZiAoZiA9PT0gMikge1xuICAgICAgICAgICAgICAgICAgICBzdHIgPSBzdHJbd2l0aG91dFN1ZmZpeCA/IDAgOiAxXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN0ci5yZXBsYWNlKC8lZC9pLCBudW1iZXIpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfSxcbiAgICAgICAgbW9udGhzID0gW1xuICAgICAgICAgICAgJ9mK2YbYp9mK2LEnLFxuICAgICAgICAgICAgJ9mB2KjYsdin2YrYsScsXG4gICAgICAgICAgICAn2YXYp9ix2LMnLFxuICAgICAgICAgICAgJ9ij2KjYsdmK2YQnLFxuICAgICAgICAgICAgJ9mF2KfZitmIJyxcbiAgICAgICAgICAgICfZitmI2YbZitmIJyxcbiAgICAgICAgICAgICfZitmI2YTZitmIJyxcbiAgICAgICAgICAgICfYo9i62LPYt9izJyxcbiAgICAgICAgICAgICfYs9io2KrZhdio2LEnLFxuICAgICAgICAgICAgJ9ij2YPYqtmI2KjYsScsXG4gICAgICAgICAgICAn2YbZiNmB2YXYqNixJyxcbiAgICAgICAgICAgICfYr9mK2LPZhdio2LEnLFxuICAgICAgICBdO1xuXG4gICAgdmFyIGFyTHkgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdhci1seScsIHtcbiAgICAgICAgbW9udGhzOiBtb250aHMsXG4gICAgICAgIG1vbnRoc1Nob3J0OiBtb250aHMsXG4gICAgICAgIHdlZWtkYXlzOiAn2KfZhNij2K3Yr1/Yp9mE2KXYq9mG2YrZhl/Yp9mE2KvZhNin2KvYp9ihX9in2YTYo9ix2KjYudin2KFf2KfZhNiu2YXZitizX9in2YTYrNmF2LnYqV/Yp9mE2LPYqNiqJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn2KPYrdivX9il2KvZhtmK2YZf2KvZhNin2KvYp9ihX9ij2LHYqNi52KfYoV/YrtmF2YrYs1/YrNmF2LnYqV/Ys9io2KonLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn2K1f2YZf2Ktf2LFf2K5f2Kxf2LMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0QvXFx1MjAwRk0vXFx1MjAwRllZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/YtXzZhS8sXG4gICAgICAgIGlzUE06IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuICfZhScgPT09IGlucHV0O1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCAxMikge1xuICAgICAgICAgICAgICAgIHJldHVybiAn2LUnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9mFJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb2KfZhNmK2YjZhSDYudmG2K8g2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW9i62K/Zi9inINi52YbYryDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBb2LnZhtivINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vYo9mF2LMg2LnZhtivINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdkZGRkIFvYudmG2K8g2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ9io2LnYryAlcycsXG4gICAgICAgICAgICBwYXN0OiAn2YXZhtiwICVzJyxcbiAgICAgICAgICAgIHM6IHBsdXJhbGl6ZSgncycpLFxuICAgICAgICAgICAgc3M6IHBsdXJhbGl6ZSgncycpLFxuICAgICAgICAgICAgbTogcGx1cmFsaXplKCdtJyksXG4gICAgICAgICAgICBtbTogcGx1cmFsaXplKCdtJyksXG4gICAgICAgICAgICBoOiBwbHVyYWxpemUoJ2gnKSxcbiAgICAgICAgICAgIGhoOiBwbHVyYWxpemUoJ2gnKSxcbiAgICAgICAgICAgIGQ6IHBsdXJhbGl6ZSgnZCcpLFxuICAgICAgICAgICAgZGQ6IHBsdXJhbGl6ZSgnZCcpLFxuICAgICAgICAgICAgTTogcGx1cmFsaXplKCdNJyksXG4gICAgICAgICAgICBNTTogcGx1cmFsaXplKCdNJyksXG4gICAgICAgICAgICB5OiBwbHVyYWxpemUoJ3knKSxcbiAgICAgICAgICAgIHl5OiBwbHVyYWxpemUoJ3knKSxcbiAgICAgICAgfSxcbiAgICAgICAgcHJlcGFyc2U6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgv2IwvZywgJywnKTtcbiAgICAgICAgfSxcbiAgICAgICAgcG9zdGZvcm1hdDogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZ1xuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cXGQvZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBzeW1ib2xNYXBbbWF0Y2hdO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoLywvZywgJ9iMJyk7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogNiwgLy8gU2F0dXJkYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogMTIsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDEydGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gYXJMeTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBBcmFiaWMgKE1vcm9jY28pIFthci1tYV1cbi8vISBhdXRob3IgOiBFbEZhZGlsaSBZYXNzaW5lIDogaHR0cHM6Ly9naXRodWIuY29tL0VsRmFkaWxpWVxuLy8hIGF1dGhvciA6IEFiZGVsIFNhaWQgOiBodHRwczovL2dpdGh1Yi5jb20vYWJkZWxzYWlkXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgYXJNYSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2FyLW1hJywge1xuICAgICAgICBtb250aHM6ICfZitmG2KfZitixX9mB2KjYsdin2YrYsV/Zhdin2LHYs1/Yo9io2LHZitmEX9mF2KfZil/ZitmI2YbZitmIX9mK2YjZhNmK2YjYsl/Yuti02Kpf2LTYqtmG2KjYsV/Yo9mD2KrZiNio2LFf2YbZiNmG2KjYsV/Yr9is2YbYqNixJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ9mK2YbYp9mK2LFf2YHYqNix2KfZitixX9mF2KfYsdizX9ij2KjYsdmK2YRf2YXYp9mKX9mK2YjZhtmK2Yhf2YrZiNmE2YrZiNiyX9i62LTYql/YtNiq2YbYqNixX9ij2YPYqtmI2KjYsV/ZhtmI2YbYqNixX9iv2KzZhtio2LEnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzOiAn2KfZhNij2K3Yr1/Yp9mE2KXYq9mG2YrZhl/Yp9mE2KvZhNin2KvYp9ihX9in2YTYo9ix2KjYudin2KFf2KfZhNiu2YXZitizX9in2YTYrNmF2LnYqV/Yp9mE2LPYqNiqJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn2KfYrdivX9in2KvZhtmK2YZf2KvZhNin2KvYp9ihX9in2LHYqNi52KfYoV/YrtmF2YrYs1/YrNmF2LnYqV/Ys9io2KonLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn2K1f2YZf2Ktf2LFf2K5f2Kxf2LMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW9in2YTZitmI2YUg2LnZhNmJINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vYutiv2Kcg2LnZhNmJINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFvYudmE2Ykg2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW9ij2YXYsyDYudmE2Ykg2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ2RkZGQgW9i52YTZiSDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAn2YHZiiAlcycsXG4gICAgICAgICAgICBwYXN0OiAn2YXZhtiwICVzJyxcbiAgICAgICAgICAgIHM6ICfYq9mI2KfZhicsXG4gICAgICAgICAgICBzczogJyVkINir2KfZhtmK2KknLFxuICAgICAgICAgICAgbTogJ9iv2YLZitmC2KknLFxuICAgICAgICAgICAgbW06ICclZCDYr9mC2KfYptmCJyxcbiAgICAgICAgICAgIGg6ICfYs9in2LnYqScsXG4gICAgICAgICAgICBoaDogJyVkINiz2KfYudin2KonLFxuICAgICAgICAgICAgZDogJ9mK2YjZhScsXG4gICAgICAgICAgICBkZDogJyVkINij2YrYp9mFJyxcbiAgICAgICAgICAgIE06ICfYtNmH2LEnLFxuICAgICAgICAgICAgTU06ICclZCDYo9i02YfYsScsXG4gICAgICAgICAgICB5OiAn2LPZhtipJyxcbiAgICAgICAgICAgIHl5OiAnJWQg2LPZhtmI2KfYqicsXG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogNiwgLy8gU2F0dXJkYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogMTIsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDEydGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gYXJNYTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBBcmFiaWMgKFNhdWRpIEFyYWJpYSkgW2FyLXNhXVxuLy8hIGF1dGhvciA6IFN1aGFpbCBBbGtvd2FpbGVldCA6IGh0dHBzOi8vZ2l0aHViLmNvbS94c29oXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgc3ltYm9sTWFwID0ge1xuICAgICAgICAgICAgJzEnOiAn2aEnLFxuICAgICAgICAgICAgJzInOiAn2aInLFxuICAgICAgICAgICAgJzMnOiAn2aMnLFxuICAgICAgICAgICAgJzQnOiAn2aQnLFxuICAgICAgICAgICAgJzUnOiAn2aUnLFxuICAgICAgICAgICAgJzYnOiAn2aYnLFxuICAgICAgICAgICAgJzcnOiAn2acnLFxuICAgICAgICAgICAgJzgnOiAn2agnLFxuICAgICAgICAgICAgJzknOiAn2aknLFxuICAgICAgICAgICAgJzAnOiAn2aAnLFxuICAgICAgICB9LFxuICAgICAgICBudW1iZXJNYXAgPSB7XG4gICAgICAgICAgICAn2aEnOiAnMScsXG4gICAgICAgICAgICAn2aInOiAnMicsXG4gICAgICAgICAgICAn2aMnOiAnMycsXG4gICAgICAgICAgICAn2aQnOiAnNCcsXG4gICAgICAgICAgICAn2aUnOiAnNScsXG4gICAgICAgICAgICAn2aYnOiAnNicsXG4gICAgICAgICAgICAn2acnOiAnNycsXG4gICAgICAgICAgICAn2agnOiAnOCcsXG4gICAgICAgICAgICAn2aknOiAnOScsXG4gICAgICAgICAgICAn2aAnOiAnMCcsXG4gICAgICAgIH07XG5cbiAgICB2YXIgYXJTYSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2FyLXNhJywge1xuICAgICAgICBtb250aHM6ICfZitmG2KfZitixX9mB2KjYsdin2YrYsV/Zhdin2LHYs1/Yo9io2LHZitmEX9mF2KfZitmIX9mK2YjZhtmK2Yhf2YrZiNmE2YrZiF/Yo9i62LPYt9izX9iz2KjYqtmF2KjYsV/Yo9mD2KrZiNio2LFf2YbZiNmB2YXYqNixX9iv2YrYs9mF2KjYsScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICfZitmG2KfZitixX9mB2KjYsdin2YrYsV/Zhdin2LHYs1/Yo9io2LHZitmEX9mF2KfZitmIX9mK2YjZhtmK2Yhf2YrZiNmE2YrZiF/Yo9i62LPYt9izX9iz2KjYqtmF2KjYsV/Yo9mD2KrZiNio2LFf2YbZiNmB2YXYqNixX9iv2YrYs9mF2KjYsScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXM6ICfYp9mE2KPYrdivX9in2YTYpdir2YbZitmGX9in2YTYq9mE2KfYq9in2KFf2KfZhNij2LHYqNi52KfYoV/Yp9mE2K7ZhdmK2LNf2KfZhNis2YXYudipX9in2YTYs9io2KonLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfYo9it2K9f2KXYq9mG2YrZhl/Yq9mE2KfYq9in2KFf2KPYsdio2LnYp9ihX9iu2YXZitizX9is2YXYudipX9iz2KjYqicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfYrV/Zhl/Yq1/YsV/Yrl/YrF/Ysycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL9i1fNmFLyxcbiAgICAgICAgaXNQTTogZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gJ9mFJyA9PT0gaW5wdXQ7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDEyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfYtSc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn2YUnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vYp9mE2YrZiNmFINi52YTZiSDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb2LrYr9inINi52YTZiSDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBb2LnZhNmJINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vYo9mF2LMg2LnZhNmJINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdkZGRkIFvYudmE2Ykg2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ9mB2YogJXMnLFxuICAgICAgICAgICAgcGFzdDogJ9mF2YbYsCAlcycsXG4gICAgICAgICAgICBzOiAn2KvZiNin2YYnLFxuICAgICAgICAgICAgc3M6ICclZCDYq9in2YbZitipJyxcbiAgICAgICAgICAgIG06ICfYr9mC2YrZgtipJyxcbiAgICAgICAgICAgIG1tOiAnJWQg2K/Zgtin2KbZgicsXG4gICAgICAgICAgICBoOiAn2LPYp9i52KknLFxuICAgICAgICAgICAgaGg6ICclZCDYs9in2LnYp9iqJyxcbiAgICAgICAgICAgIGQ6ICfZitmI2YUnLFxuICAgICAgICAgICAgZGQ6ICclZCDYo9mK2KfZhScsXG4gICAgICAgICAgICBNOiAn2LTZh9ixJyxcbiAgICAgICAgICAgIE1NOiAnJWQg2KPYtNmH2LEnLFxuICAgICAgICAgICAgeTogJ9iz2YbYqScsXG4gICAgICAgICAgICB5eTogJyVkINiz2YbZiNin2KonLFxuICAgICAgICB9LFxuICAgICAgICBwcmVwYXJzZTogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZ1xuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9b2aHZotmj2aTZpdmm2afZqNmp2aBdL2csIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyTWFwW21hdGNoXTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC/YjC9nLCAnLCcpO1xuICAgICAgICB9LFxuICAgICAgICBwb3N0Zm9ybWF0OiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcZC9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bWJvbE1hcFttYXRjaF07XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvLC9nLCAn2IwnKTtcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAwLCAvLyBTdW5kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNiwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNnRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGFyU2E7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlICA6ICBBcmFiaWMgKFR1bmlzaWEpIFthci10bl1cbi8vISBhdXRob3IgOiBOYWRlciBUb3VrYWJyaSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9uYWRlcmlvXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgYXJUbiA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2FyLXRuJywge1xuICAgICAgICBtb250aHM6ICfYrNin2YbZgdmKX9mB2YrZgdix2Ypf2YXYp9ix2LNf2KPZgdix2YrZhF/Zhdin2Ypf2KzZiNin2YZf2KzZiNmK2YTZitipX9ij2YjYql/Ys9io2KrZhdio2LFf2KPZg9iq2YjYqNixX9mG2YjZgdmF2KjYsV/Yr9mK2LPZhdio2LEnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAn2KzYp9mG2YHZil/ZgdmK2YHYsdmKX9mF2KfYsdizX9ij2YHYsdmK2YRf2YXYp9mKX9is2YjYp9mGX9is2YjZitmE2YrYqV/Yo9mI2Kpf2LPYqNiq2YXYqNixX9ij2YPYqtmI2KjYsV/ZhtmI2YHZhdio2LFf2K/Zitiz2YXYqNixJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5czogJ9in2YTYo9it2K9f2KfZhNil2KvZhtmK2YZf2KfZhNir2YTYp9ir2KfYoV/Yp9mE2KPYsdio2LnYp9ihX9in2YTYrtmF2YrYs1/Yp9mE2KzZhdi52Klf2KfZhNiz2KjYqicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ9ij2K3Yr1/Ypdir2YbZitmGX9ir2YTYp9ir2KfYoV/Yo9ix2KjYudin2KFf2K7ZhdmK2LNf2KzZhdi52Klf2LPYqNiqJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ9itX9mGX9irX9ixX9iuX9isX9izJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vYp9mE2YrZiNmFINi52YTZiSDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb2LrYr9inINi52YTZiSDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBb2LnZhNmJINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vYo9mF2LMg2LnZhNmJINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdkZGRkIFvYudmE2Ykg2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ9mB2YogJXMnLFxuICAgICAgICAgICAgcGFzdDogJ9mF2YbYsCAlcycsXG4gICAgICAgICAgICBzOiAn2KvZiNin2YYnLFxuICAgICAgICAgICAgc3M6ICclZCDYq9in2YbZitipJyxcbiAgICAgICAgICAgIG06ICfYr9mC2YrZgtipJyxcbiAgICAgICAgICAgIG1tOiAnJWQg2K/Zgtin2KbZgicsXG4gICAgICAgICAgICBoOiAn2LPYp9i52KknLFxuICAgICAgICAgICAgaGg6ICclZCDYs9in2LnYp9iqJyxcbiAgICAgICAgICAgIGQ6ICfZitmI2YUnLFxuICAgICAgICAgICAgZGQ6ICclZCDYo9mK2KfZhScsXG4gICAgICAgICAgICBNOiAn2LTZh9ixJyxcbiAgICAgICAgICAgIE1NOiAnJWQg2KPYtNmH2LEnLFxuICAgICAgICAgICAgeTogJ9iz2YbYqScsXG4gICAgICAgICAgICB5eTogJyVkINiz2YbZiNin2KonLFxuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gYXJUbjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBBemVyYmFpamFuaSBbYXpdXG4vLyEgYXV0aG9yIDogdG9wY2hpeWV2IDogaHR0cHM6Ly9naXRodWIuY29tL3RvcGNoaXlldlxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHN1ZmZpeGVzID0ge1xuICAgICAgICAxOiAnLWluY2knLFxuICAgICAgICA1OiAnLWluY2knLFxuICAgICAgICA4OiAnLWluY2knLFxuICAgICAgICA3MDogJy1pbmNpJyxcbiAgICAgICAgODA6ICctaW5jaScsXG4gICAgICAgIDI6ICctbmNpJyxcbiAgICAgICAgNzogJy1uY2knLFxuICAgICAgICAyMDogJy1uY2knLFxuICAgICAgICA1MDogJy1uY2knLFxuICAgICAgICAzOiAnLcO8bmPDvCcsXG4gICAgICAgIDQ6ICctw7xuY8O8JyxcbiAgICAgICAgMTAwOiAnLcO8bmPDvCcsXG4gICAgICAgIDY6ICctbmPEsScsXG4gICAgICAgIDk6ICctdW5jdScsXG4gICAgICAgIDEwOiAnLXVuY3UnLFxuICAgICAgICAzMDogJy11bmN1JyxcbiAgICAgICAgNjA6ICctxLFuY8SxJyxcbiAgICAgICAgOTA6ICctxLFuY8SxJyxcbiAgICB9O1xuXG4gICAgdmFyIGF6ID0gbW9tZW50LmRlZmluZUxvY2FsZSgnYXonLCB7XG4gICAgICAgIG1vbnRoczogJ3lhbnZhcl9mZXZyYWxfbWFydF9hcHJlbF9tYXlfaXl1bl9peXVsX2F2cXVzdF9zZW50eWFicl9va3R5YWJyX25veWFicl9kZWthYnInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAneWFuX2Zldl9tYXJfYXByX21heV9peW5faXlsX2F2cV9zZW5fb2t0X25veV9kZWsnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAnQmF6YXJfQmF6YXIgZXJ0yZlzaV/Dh8mZcsWfyZluYsmZIGF4xZ9hbcSxX8OHyZlyxZ/JmW5iyZlfQ8O8bcmZIGF4xZ9hbcSxX0PDvG3JmV/FnsmZbmLJmScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ0Jhel9CekVfw4dBeF/Dh8mZcl9DQXhfQ8O8bV/FnsmZbicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdCel9CRV/Dh0Ffw4fJmV9DQV9Dw7xfxZ7JmScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW2J1Z8O8biBzYWF0XSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW3NhYmFoIHNhYXRdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnW2fJmWzJmW4gaMmZZnTJmV0gZGRkZCBbc2FhdF0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tkw7xuyZluXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1trZcOnyZluIGjJmWZ0yZldIGRkZGQgW3NhYXRdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnJXMgc29ucmEnLFxuICAgICAgICAgICAgcGFzdDogJyVzIMmZdnbJmWwnLFxuICAgICAgICAgICAgczogJ2Jpcm5lw6fJmSBzYW5pecmZJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2FuaXnJmScsXG4gICAgICAgICAgICBtOiAnYmlyIGTJmXFpccmZJyxcbiAgICAgICAgICAgIG1tOiAnJWQgZMmZcWlxyZknLFxuICAgICAgICAgICAgaDogJ2JpciBzYWF0JyxcbiAgICAgICAgICAgIGhoOiAnJWQgc2FhdCcsXG4gICAgICAgICAgICBkOiAnYmlyIGfDvG4nLFxuICAgICAgICAgICAgZGQ6ICclZCBnw7xuJyxcbiAgICAgICAgICAgIE06ICdiaXIgYXknLFxuICAgICAgICAgICAgTU06ICclZCBheScsXG4gICAgICAgICAgICB5OiAnYmlyIGlsJyxcbiAgICAgICAgICAgIHl5OiAnJWQgaWwnLFxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAvZ2VjyZl8c8mZaMmZcnxnw7xuZMO8enxheMWfYW0vLFxuICAgICAgICBpc1BNOiBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgICAgIHJldHVybiAvXihnw7xuZMO8enxheMWfYW0pJC8udGVzdChpbnB1dCk7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2dlY8mZJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDEyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdzyZloyZlyJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDE3KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdnw7xuZMO8eic7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAnYXjFn2FtJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9LSjEsW5jxLF8aW5jaXxuY2l8w7xuY8O8fG5jxLF8dW5jdSkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICBpZiAobnVtYmVyID09PSAwKSB7XG4gICAgICAgICAgICAgICAgLy8gc3BlY2lhbCBjYXNlIGZvciB6ZXJvXG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICctxLFuY8SxJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBhID0gbnVtYmVyICUgMTAsXG4gICAgICAgICAgICAgICAgYiA9IChudW1iZXIgJSAxMDApIC0gYSxcbiAgICAgICAgICAgICAgICBjID0gbnVtYmVyID49IDEwMCA/IDEwMCA6IG51bGw7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgKHN1ZmZpeGVzW2FdIHx8IHN1ZmZpeGVzW2JdIHx8IHN1ZmZpeGVzW2NdKTtcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNywgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gN3RoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGF6O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEJlbGFydXNpYW4gW2JlXVxuLy8hIGF1dGhvciA6IERtaXRyeSBEZW1pZG92IDogaHR0cHM6Ly9naXRodWIuY29tL2RlbWlkb3Y5MVxuLy8hIGF1dGhvcjogUHJhbGVza2E6IGh0dHA6Ly9wcmFsZXNrYS5wcm8vXG4vLyEgQXV0aG9yIDogTWVuZWxpb24gRWxlbnPDumxlIDogaHR0cHM6Ly9naXRodWIuY29tL09pcmVcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIGZ1bmN0aW9uIHBsdXJhbCh3b3JkLCBudW0pIHtcbiAgICAgICAgdmFyIGZvcm1zID0gd29yZC5zcGxpdCgnXycpO1xuICAgICAgICByZXR1cm4gbnVtICUgMTAgPT09IDEgJiYgbnVtICUgMTAwICE9PSAxMVxuICAgICAgICAgICAgPyBmb3Jtc1swXVxuICAgICAgICAgICAgOiBudW0gJSAxMCA+PSAyICYmIG51bSAlIDEwIDw9IDQgJiYgKG51bSAlIDEwMCA8IDEwIHx8IG51bSAlIDEwMCA+PSAyMClcbiAgICAgICAgICAgID8gZm9ybXNbMV1cbiAgICAgICAgICAgIDogZm9ybXNbMl07XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlbGF0aXZlVGltZVdpdGhQbHVyYWwobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXkpIHtcbiAgICAgICAgdmFyIGZvcm1hdCA9IHtcbiAgICAgICAgICAgIHNzOiB3aXRob3V0U3VmZml4ID8gJ9GB0LXQutGD0L3QtNCwX9GB0LXQutGD0L3QtNGLX9GB0LXQutGD0L3QtCcgOiAn0YHQtdC60YPQvdC00YNf0YHQtdC60YPQvdC00Ytf0YHQtdC60YPQvdC0JyxcbiAgICAgICAgICAgIG1tOiB3aXRob3V0U3VmZml4ID8gJ9GF0LLRltC70ZbQvdCwX9GF0LLRltC70ZbQvdGLX9GF0LLRltC70ZbQvScgOiAn0YXQstGW0LvRltC90YNf0YXQstGW0LvRltC90Ytf0YXQstGW0LvRltC9JyxcbiAgICAgICAgICAgIGhoOiB3aXRob3V0U3VmZml4ID8gJ9Cz0LDQtNC30ZbQvdCwX9Cz0LDQtNC30ZbQvdGLX9Cz0LDQtNC30ZbQvScgOiAn0LPQsNC00LfRltC90YNf0LPQsNC00LfRltC90Ytf0LPQsNC00LfRltC9JyxcbiAgICAgICAgICAgIGRkOiAn0LTQt9C10L3RjF/QtNC90ZZf0LTQt9GR0L0nLFxuICAgICAgICAgICAgTU06ICfQvNC10YHRj9GGX9C80LXRgdGP0YbRi1/QvNC10YHRj9GG0LDRnicsXG4gICAgICAgICAgICB5eTogJ9Cz0L7QtF/Qs9Cw0LTRi1/Qs9Cw0LTQvtGeJyxcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGtleSA9PT0gJ20nKSB7XG4gICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCA/ICfRhdCy0ZbQu9GW0L3QsCcgOiAn0YXQstGW0LvRltC90YMnO1xuICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ2gnKSB7XG4gICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCA/ICfQs9Cw0LTQt9GW0L3QsCcgOiAn0LPQsNC00LfRltC90YMnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICcgJyArIHBsdXJhbChmb3JtYXRba2V5XSwgK251bWJlcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgYmUgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdiZScsIHtcbiAgICAgICAgbW9udGhzOiB7XG4gICAgICAgICAgICBmb3JtYXQ6ICfRgdGC0YPQtNC30LXQvdGPX9C70Y7RgtCw0LPQsF/RgdCw0LrQsNCy0ZbQutCwX9C60YDQsNGB0LDQstGW0LrQsF/RgtGA0LDRntC90Y9f0YfRjdGA0LLQtdC90Y9f0LvRltC/0LXQvdGPX9C20L3RltGe0L3Rj1/QstC10YDQsNGB0L3Rj1/QutCw0YHRgtGA0YvRh9C90ZbQutCwX9C70ZbRgdGC0LDQv9Cw0LTQsF/RgdC90LXQttC90Y8nLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHN0YW5kYWxvbmU6ICfRgdGC0YPQtNC30LXQvdGMX9C70Y7RgtGLX9GB0LDQutCw0LLRltC6X9C60YDQsNGB0LDQstGW0Lpf0YLRgNCw0LLQtdC90Yxf0YfRjdGA0LLQtdC90Yxf0LvRltC/0LXQvdGMX9C20L3RltCy0LXQvdGMX9Cy0LXRgNCw0YHQtdC90Yxf0LrQsNGB0YLRgNGL0YfQvdGW0Lpf0LvRltGB0YLQsNC/0LDQtF/RgdC90LXQttCw0L3RjCcuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICB9LFxuICAgICAgICBtb250aHNTaG9ydDogJ9GB0YLRg9C0X9C70Y7Rgl/RgdCw0Lpf0LrRgNCw0YFf0YLRgNCw0LJf0YfRjdGA0LJf0LvRltC/X9C20L3RltCyX9Cy0LXRgF/QutCw0YHRgl/Qu9GW0YHRgl/RgdC90LXQticuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXM6IHtcbiAgICAgICAgICAgIGZvcm1hdDogJ9C90Y/QtNC30LXQu9GOX9C/0LDQvdGP0LTQt9C10LvQsNC6X9Cw0Z7RgtC+0YDQsNC6X9GB0LXRgNCw0LTRg1/Rh9Cw0YbQstC10YBf0L/Rj9GC0L3RltGG0YNf0YHRg9Cx0L7RgtGDJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBzdGFuZGFsb25lOiAn0L3Rj9C00LfQtdC70Y9f0L/QsNC90Y/QtNC30LXQu9Cw0Lpf0LDRntGC0L7RgNCw0Lpf0YHQtdGA0LDQtNCwX9GH0LDRhtCy0LXRgF/Qv9GP0YLQvdGW0YbQsF/RgdGD0LHQvtGC0LAnLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGlzRm9ybWF0OiAvXFxbID9b0KPRg9GeXSA/KD860LzRltC90YPQu9GD0Y580L3QsNGB0YLRg9C/0L3Rg9GOKT8gP1xcXSA/ZGRkZC8sXG4gICAgICAgIH0sXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfQvdC0X9C/0L1f0LDRgl/RgdGAX9GH0YZf0L/Rgl/RgdCxJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ9C90LRf0L/QvV/QsNGCX9GB0YBf0YfRhl/Qv9GCX9GB0LEnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVkg0LMuJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZINCzLiwgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZINCzLiwgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vQodGR0L3QvdGPINGeXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW9CX0LDRntGC0YDQsCDRnl0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vQo9GH0L7RgNCwINGeXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnW9CjXSBkZGRkIFvRnl0gTFQnO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxhc3RXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoICh0aGlzLmRheSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW9CjINC80ZbQvdGD0LvRg9GOXSBkZGRkIFvRnl0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdb0KMg0LzRltC90YPQu9GLXSBkZGRkIFvRnl0gTFQnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ9C/0YDQsNC3ICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyDRgtCw0LzRgycsXG4gICAgICAgICAgICBzOiAn0L3QtdC60LDQu9GM0LrRliDRgdC10LrRg9C90LQnLFxuICAgICAgICAgICAgbTogcmVsYXRpdmVUaW1lV2l0aFBsdXJhbCxcbiAgICAgICAgICAgIG1tOiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICAgICAgaDogcmVsYXRpdmVUaW1lV2l0aFBsdXJhbCxcbiAgICAgICAgICAgIGhoOiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICAgICAgZDogJ9C00LfQtdC90YwnLFxuICAgICAgICAgICAgZGQ6IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgICAgICBNOiAn0LzQtdGB0Y/RhicsXG4gICAgICAgICAgICBNTTogcmVsYXRpdmVUaW1lV2l0aFBsdXJhbCxcbiAgICAgICAgICAgIHk6ICfQs9C+0LQnLFxuICAgICAgICAgICAgeXk6IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/QvdC+0YfRi3zRgNCw0L3RltGG0Yt80LTQvdGPfNCy0LXRh9Cw0YDQsC8sXG4gICAgICAgIGlzUE06IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuIC9eKNC00L3Rj3zQstC10YfQsNGA0LApJC8udGVzdChpbnB1dCk7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9C90L7Rh9GLJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDEyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfRgNCw0L3RltGG0YsnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9C00L3Rjyc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn0LLQtdGH0LDRgNCwJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9LSjRlnzRi3zQs9CwKS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIsIHBlcmlvZCkge1xuICAgICAgICAgICAgc3dpdGNoIChwZXJpb2QpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdNJzpcbiAgICAgICAgICAgICAgICBjYXNlICdkJzpcbiAgICAgICAgICAgICAgICBjYXNlICdEREQnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ3cnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ1cnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKG51bWJlciAlIDEwID09PSAyIHx8IG51bWJlciAlIDEwID09PSAzKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyICUgMTAwICE9PSAxMiAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyICUgMTAwICE9PSAxM1xuICAgICAgICAgICAgICAgICAgICAgICAgPyBudW1iZXIgKyAnLdGWJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBudW1iZXIgKyAnLdGLJztcbiAgICAgICAgICAgICAgICBjYXNlICdEJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICct0LPQsCc7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNywgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gN3RoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGJlO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEJ1bGdhcmlhbiBbYmddXG4vLyEgYXV0aG9yIDogS3Jhc2VuIEJvcmlzb3YgOiBodHRwczovL2dpdGh1Yi5jb20va3JhelxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIGJnID0gbW9tZW50LmRlZmluZUxvY2FsZSgnYmcnLCB7XG4gICAgICAgIG1vbnRoczogJ9GP0L3Rg9Cw0YDQuF/RhNC10LLRgNGD0LDRgNC4X9C80LDRgNGCX9Cw0L/RgNC40Ltf0LzQsNC5X9GO0L3QuF/RjtC70Lhf0LDQstCz0YPRgdGCX9GB0LXQv9GC0LXQvNCy0YDQuF/QvtC60YLQvtC80LLRgNC4X9C90L7QtdC80LLRgNC4X9C00LXQutC10LzQstGA0LgnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAn0Y/QvdGDX9GE0LXQsl/QvNCw0YBf0LDQv9GAX9C80LDQuV/RjtC90Lhf0Y7Qu9C4X9Cw0LLQs1/RgdC10L9f0L7QutGCX9C90L7QtV/QtNC10LonLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAn0L3QtdC00LXQu9GPX9C/0L7QvdC10LTQtdC70L3QuNC6X9Cy0YLQvtGA0L3QuNC6X9GB0YDRj9C00LBf0YfQtdGC0LLRitGA0YLRitC6X9C/0LXRgtGK0Lpf0YHRitCx0L7RgtCwJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn0L3QtdC0X9C/0L7QvV/QstGC0L5f0YHRgNGPX9GH0LXRgl/Qv9C10YJf0YHRitCxJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ9C90LRf0L/QvV/QstGCX9GB0YBf0YfRgl/Qv9GCX9GB0LEnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0g6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSDptbTpzcycsXG4gICAgICAgICAgICBMOiAnRC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgSDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW9CU0L3QtdGBINCyXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW9Cj0YLRgNC1INCyXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW9CyXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW9CS0YfQtdGA0LAg0LJdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoICh0aGlzLmRheSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1vQnNC40L3QsNC70LDRgtCwXSBkZGRkIFvQsl0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1vQnNC40L3QsNC70LjRj10gZGRkZCBb0LJdIExUJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICfRgdC70LXQtCAlcycsXG4gICAgICAgICAgICBwYXN0OiAn0L/RgNC10LTQuCAlcycsXG4gICAgICAgICAgICBzOiAn0L3Rj9C60L7Qu9C60L4g0YHQtdC60YPQvdC00LgnLFxuICAgICAgICAgICAgc3M6ICclZCDRgdC10LrRg9C90LTQuCcsXG4gICAgICAgICAgICBtOiAn0LzQuNC90YPRgtCwJyxcbiAgICAgICAgICAgIG1tOiAnJWQg0LzQuNC90YPRgtC4JyxcbiAgICAgICAgICAgIGg6ICfRh9Cw0YEnLFxuICAgICAgICAgICAgaGg6ICclZCDRh9Cw0YHQsCcsXG4gICAgICAgICAgICBkOiAn0LTQtdC9JyxcbiAgICAgICAgICAgIGRkOiAnJWQg0LTQtdC90LAnLFxuICAgICAgICAgICAgTTogJ9C80LXRgdC10YYnLFxuICAgICAgICAgICAgTU06ICclZCDQvNC10YHQtdGG0LAnLFxuICAgICAgICAgICAgeTogJ9Cz0L7QtNC40L3QsCcsXG4gICAgICAgICAgICB5eTogJyVkINCz0L7QtNC40L3QuCcsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfS0o0LXQsnzQtdC9fNGC0Lh80LLQuHzRgNC4fNC80LgpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgdmFyIGxhc3REaWdpdCA9IG51bWJlciAlIDEwLFxuICAgICAgICAgICAgICAgIGxhc3QyRGlnaXRzID0gbnVtYmVyICUgMTAwO1xuICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnLdC10LInO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChsYXN0MkRpZ2l0cyA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnLdC10L0nO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChsYXN0MkRpZ2l0cyA+IDEwICYmIGxhc3QyRGlnaXRzIDwgMjApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJy3RgtC4JztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobGFzdERpZ2l0ID09PSAxKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICct0LLQuCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGxhc3REaWdpdCA9PT0gMikge1xuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnLdGA0LgnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChsYXN0RGlnaXQgPT09IDcgfHwgbGFzdERpZ2l0ID09PSA4KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICct0LzQuCc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnLdGC0LgnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA3LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA3dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gYmc7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogQmFtYmFyYSBbYm1dXG4vLyEgYXV0aG9yIDogRXN0ZWxsZSBDb21tZW50IDogaHR0cHM6Ly9naXRodWIuY29tL2VzdGVsbGVjb21tZW50XG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgYm0gPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdibScsIHtcbiAgICAgICAgbW9udGhzOiAnWmFud3V5ZWthbG9fRmV3dXJ1eWVrYWxvX01hcmlzaWthbG9fQXdpcmlsaWthbG9fTcmba2Fsb19adXfJm25rYWxvX1p1bHV5ZWthbG9fVXRpa2Fsb19TyZt0YW5idXJ1a2Fsb1/JlGt1dMmUYnVydWthbG9fTm93YW5idXJ1a2Fsb19EZXNhbmJ1cnVrYWxvJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ1phbl9GZXdfTWFyX0F3aV9NyZtfWnV3X1p1bF9VdGlfU8mbdF/JlGt1X05vd19EZXMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAnS2FyaV9OdMmbbsmbbl9UYXJhdGFfQXJhYmFfQWxhbWlzYV9KdW1hX1NpYmlyaScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ0thcl9OdMmbX1Rhcl9BcmFfQWxhX0p1bV9TaWInLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnS2FfTnRfVGFfQXJfQWxfSnVfU2knLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnTU1NTSBbdGlsZV0gRCBbc2FuXSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ01NTU0gW3RpbGVdIEQgW3Nhbl0gWVlZWSBbbMmbcsmbXSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCBNTU1NIFt0aWxlXSBEIFtzYW5dIFlZWVkgW2zJm3LJm10gSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tCaSBsyZtyyZtdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbU2luaSBsyZtyyZtdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbZG9uIGzJm3LJm10gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tLdW51IGzJm3LJm10gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdkZGRkIFt0yZttyZtuZW4gbMmbcsmbXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVzIGvJlG7JlCcsXG4gICAgICAgICAgICBwYXN0OiAnYSBiyZsgJXMgYsmUJyxcbiAgICAgICAgICAgIHM6ICdzYW5nYSBkYW1hIGRhbWEnLFxuICAgICAgICAgICAgc3M6ICdzZWtvbmRpICVkJyxcbiAgICAgICAgICAgIG06ICdtaW5pdGkga2VsZW4nLFxuICAgICAgICAgICAgbW06ICdtaW5pdGkgJWQnLFxuICAgICAgICAgICAgaDogJ2zJm3LJmyBrZWxlbicsXG4gICAgICAgICAgICBoaDogJ2zJm3LJmyAlZCcsXG4gICAgICAgICAgICBkOiAndGlsZSBrZWxlbicsXG4gICAgICAgICAgICBkZDogJ3RpbGUgJWQnLFxuICAgICAgICAgICAgTTogJ2thbG8ga2VsZW4nLFxuICAgICAgICAgICAgTU06ICdrYWxvICVkJyxcbiAgICAgICAgICAgIHk6ICdzYW4ga2VsZW4nLFxuICAgICAgICAgICAgeXk6ICdzYW4gJWQnLFxuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gYm07XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogQmVuZ2FsaSBbYm5dXG4vLyEgYXV0aG9yIDogS2F1c2hpayBHYW5kaGkgOiBodHRwczovL2dpdGh1Yi5jb20va2F1c2hpa2dhbmRoaVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHN5bWJvbE1hcCA9IHtcbiAgICAgICAgICAgICcxJzogJ+CnpycsXG4gICAgICAgICAgICAnMic6ICfgp6gnLFxuICAgICAgICAgICAgJzMnOiAn4KepJyxcbiAgICAgICAgICAgICc0JzogJ+CnqicsXG4gICAgICAgICAgICAnNSc6ICfgp6snLFxuICAgICAgICAgICAgJzYnOiAn4KesJyxcbiAgICAgICAgICAgICc3JzogJ+CnrScsXG4gICAgICAgICAgICAnOCc6ICfgp64nLFxuICAgICAgICAgICAgJzknOiAn4KevJyxcbiAgICAgICAgICAgICcwJzogJ+CnpicsXG4gICAgICAgIH0sXG4gICAgICAgIG51bWJlck1hcCA9IHtcbiAgICAgICAgICAgICfgp6cnOiAnMScsXG4gICAgICAgICAgICAn4KeoJzogJzInLFxuICAgICAgICAgICAgJ+CnqSc6ICczJyxcbiAgICAgICAgICAgICfgp6onOiAnNCcsXG4gICAgICAgICAgICAn4KerJzogJzUnLFxuICAgICAgICAgICAgJ+CnrCc6ICc2JyxcbiAgICAgICAgICAgICfgp60nOiAnNycsXG4gICAgICAgICAgICAn4KeuJzogJzgnLFxuICAgICAgICAgICAgJ+Cnryc6ICc5JyxcbiAgICAgICAgICAgICfgp6YnOiAnMCcsXG4gICAgICAgIH07XG5cbiAgICB2YXIgYm4gPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdibicsIHtcbiAgICAgICAgbW9udGhzOiAn4Kac4Ka+4Kao4KeB4Kef4Ka+4Kaw4Ka/X+Cmq+Cnh+CmrOCnjeCmsOCngeCnn+CmvuCmsOCmv1/gpq7gpr7gprDgp43gpppf4KaP4Kaq4KeN4Kaw4Ka/4KayX+CmruCnh1/gppzgp4Hgpqhf4Kac4KeB4Kay4Ka+4KaHX+CmhuCml+CmuOCnjeCmn1/gprjgp4fgpqrgp43gpp/gp4fgpq7gp43gpqzgprBf4KaF4KaV4KeN4Kaf4KeL4Kas4KawX+CmqOCmreCnh+CmruCnjeCmrOCmsF/gpqHgpr/gprjgp4fgpq7gp43gpqzgprAnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAn4Kac4Ka+4Kao4KeBX+Cmq+Cnh+CmrOCnjeCmsOCngV/gpq7gpr7gprDgp43gpppf4KaP4Kaq4KeN4Kaw4Ka/4KayX+CmruCnh1/gppzgp4Hgpqhf4Kac4KeB4Kay4Ka+4KaHX+CmhuCml+CmuOCnjeCmn1/gprjgp4fgpqrgp43gpp9f4KaF4KaV4KeN4Kaf4KeLX+CmqOCmreCnh1/gpqHgpr/gprjgp4cnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzOiAn4Kaw4Kas4Ka/4Kas4Ka+4KawX+CmuOCni+CmruCmrOCmvuCmsF/gpq7gppngp43gppfgprLgpqzgpr7gprBf4Kas4KeB4Kan4Kas4Ka+4KawX+CmrOCng+CmueCmuOCnjeCmquCmpOCmv+CmrOCmvuCmsF/gprbgp4HgppXgp43gprDgpqzgpr7gprBf4Ka24Kao4Ka/4Kas4Ka+4KawJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn4Kaw4Kas4Ka/X+CmuOCni+Cmrl/gpq7gppngp43gppfgprJf4Kas4KeB4KanX+CmrOCng+CmueCmuOCnjeCmquCmpOCmv1/gprbgp4HgppXgp43gprBf4Ka24Kao4Ka/Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ+CmsOCmrOCmv1/gprjgp4vgpq5f4Kau4KaZ4KeN4KaX4KayX+CmrOCngeCmp1/gpqzgp4Pgprlf4Ka24KeB4KaV4KeN4KawX+CmtuCmqOCmvycuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnQSBoOm1tIOCmuOCmruCnnycsXG4gICAgICAgICAgICBMVFM6ICdBIGg6bW06c3Mg4Ka44Kau4KefJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVksIEEgaDptbSDgprjgpq7gp58nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZLCBBIGg6bW0g4Ka44Kau4KefJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb4KaG4KacXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW+CmhuCml+CmvuCmruCngOCmleCmvuCmsl0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkLCBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW+Cml+CmpOCmleCmvuCmsl0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdb4KaX4KakXSBkZGRkLCBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVzIOCmquCmsOCnhycsXG4gICAgICAgICAgICBwYXN0OiAnJXMg4KaG4KaX4KeHJyxcbiAgICAgICAgICAgIHM6ICfgppXgp5/gp4fgppUg4Ka44KeH4KaV4KeH4Kao4KeN4KahJyxcbiAgICAgICAgICAgIHNzOiAnJWQg4Ka44KeH4KaV4KeH4Kao4KeN4KahJyxcbiAgICAgICAgICAgIG06ICfgpo/gppUg4Kau4Ka/4Kao4Ka/4KafJyxcbiAgICAgICAgICAgIG1tOiAnJWQg4Kau4Ka/4Kao4Ka/4KafJyxcbiAgICAgICAgICAgIGg6ICfgpo/gppUg4KaY4Kao4KeN4Kaf4Ka+JyxcbiAgICAgICAgICAgIGhoOiAnJWQg4KaY4Kao4KeN4Kaf4Ka+JyxcbiAgICAgICAgICAgIGQ6ICfgpo/gppUg4Kam4Ka/4KaoJyxcbiAgICAgICAgICAgIGRkOiAnJWQg4Kam4Ka/4KaoJyxcbiAgICAgICAgICAgIE06ICfgpo/gppUg4Kau4Ka+4Ka4JyxcbiAgICAgICAgICAgIE1NOiAnJWQg4Kau4Ka+4Ka4JyxcbiAgICAgICAgICAgIHk6ICfgpo/gppUg4Kas4Kab4KawJyxcbiAgICAgICAgICAgIHl5OiAnJWQg4Kas4Kab4KawJyxcbiAgICAgICAgfSxcbiAgICAgICAgcHJlcGFyc2U6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgvW+Cnp+CnqOCnqeCnquCnq+CnrOCnreCnruCnr+Cnpl0vZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlck1hcFttYXRjaF07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgcG9zdGZvcm1hdDogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC9cXGQvZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN5bWJvbE1hcFttYXRjaF07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL+CmsOCmvuCmpHzgprjgppXgpr7gprJ84Kam4KeB4Kaq4KeB4KawfOCmrOCmv+CmleCmvuCmsnzgprDgpr7gpqQvLFxuICAgICAgICBtZXJpZGllbUhvdXI6IGZ1bmN0aW9uIChob3VyLCBtZXJpZGllbSkge1xuICAgICAgICAgICAgaWYgKGhvdXIgPT09IDEyKSB7XG4gICAgICAgICAgICAgICAgaG91ciA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgKG1lcmlkaWVtID09PSAn4Kaw4Ka+4KakJyAmJiBob3VyID49IDQpIHx8XG4gICAgICAgICAgICAgICAgKG1lcmlkaWVtID09PSAn4Kam4KeB4Kaq4KeB4KawJyAmJiBob3VyIDwgNSkgfHxcbiAgICAgICAgICAgICAgICBtZXJpZGllbSA9PT0gJ+CmrOCmv+CmleCmvuCmsidcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyICsgMTI7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCA0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgprDgpr7gpqQnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CmuOCmleCmvuCmsic7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxNykge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4Kam4KeB4Kaq4KeB4KawJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDIwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgpqzgpr/gppXgpr7gprInO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CmsOCmvuCmpCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMCwgLy8gU3VuZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDYsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDZ0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBibjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBUaWJldGFuIFtib11cbi8vISBhdXRob3IgOiBUaHVwdGVuIE4uIENoYWtyaXNoYXIgOiBodHRwczovL2dpdGh1Yi5jb20vdmFqcmFkb2dcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBzeW1ib2xNYXAgPSB7XG4gICAgICAgICAgICAnMSc6ICfgvKEnLFxuICAgICAgICAgICAgJzInOiAn4LyiJyxcbiAgICAgICAgICAgICczJzogJ+C8oycsXG4gICAgICAgICAgICAnNCc6ICfgvKQnLFxuICAgICAgICAgICAgJzUnOiAn4LylJyxcbiAgICAgICAgICAgICc2JzogJ+C8picsXG4gICAgICAgICAgICAnNyc6ICfgvKcnLFxuICAgICAgICAgICAgJzgnOiAn4LyoJyxcbiAgICAgICAgICAgICc5JzogJ+C8qScsXG4gICAgICAgICAgICAnMCc6ICfgvKAnLFxuICAgICAgICB9LFxuICAgICAgICBudW1iZXJNYXAgPSB7XG4gICAgICAgICAgICAn4LyhJzogJzEnLFxuICAgICAgICAgICAgJ+C8oic6ICcyJyxcbiAgICAgICAgICAgICfgvKMnOiAnMycsXG4gICAgICAgICAgICAn4LykJzogJzQnLFxuICAgICAgICAgICAgJ+C8pSc6ICc1JyxcbiAgICAgICAgICAgICfgvKYnOiAnNicsXG4gICAgICAgICAgICAn4LynJzogJzcnLFxuICAgICAgICAgICAgJ+C8qCc6ICc4JyxcbiAgICAgICAgICAgICfgvKknOiAnOScsXG4gICAgICAgICAgICAn4LygJzogJzAnLFxuICAgICAgICB9O1xuXG4gICAgdmFyIGJvID0gbW9tZW50LmRlZmluZUxvY2FsZSgnYm8nLCB7XG4gICAgICAgIG1vbnRoczogJ+C9n+C+s+C8i+C9luC8i+C9keC9hOC8i+C9lOC9vF/gvZ/gvrPgvIvgvZbgvIvgvYLgvYngvbLgvabgvIvgvZRf4L2f4L6z4LyL4L2W4LyL4L2C4L2m4L204L2Y4LyL4L2UX+C9n+C+s+C8i+C9luC8i+C9luC9nuC9suC8i+C9lF/gvZ/gvrPgvIvgvZbgvIvgvaPgvpTgvIvgvZRf4L2f4L6z4LyL4L2W4LyL4L2R4L6y4L204L2C4LyL4L2UX+C9n+C+s+C8i+C9luC8i+C9luC9keC9tOC9k+C8i+C9lF/gvZ/gvrPgvIvgvZbgvIvgvZbgvaLgvpLgvrHgvZHgvIvgvZRf4L2f4L6z4LyL4L2W4LyL4L2R4L2C4L204LyL4L2UX+C9n+C+s+C8i+C9luC8i+C9luC9heC9tOC8i+C9lF/gvZ/gvrPgvIvgvZbgvIvgvZbgvYXgvbTgvIvgvYLgvYXgvbLgvYLgvIvgvZRf4L2f4L6z4LyL4L2W4LyL4L2W4L2F4L204LyL4L2C4L2J4L2y4L2m4LyL4L2UJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ+C9n+C+s+C8izFf4L2f4L6z4LyLMl/gvZ/gvrPgvIszX+C9n+C+s+C8izRf4L2f4L6z4LyLNV/gvZ/gvrPgvIs2X+C9n+C+s+C8izdf4L2f4L6z4LyLOF/gvZ/gvrPgvIs5X+C9n+C+s+C8izEwX+C9n+C+s+C8izExX+C9n+C+s+C8izEyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydFJlZ2V4OiAvXijgvZ/gvrPgvItcXGR7MSwyfSkvLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czogJ+C9guC9n+C9oOC8i+C9ieC9suC8i+C9mOC8i1/gvYLgvZ/gvaDgvIvgvZ/gvrPgvIvgvZbgvItf4L2C4L2f4L2g4LyL4L2Y4L2y4L2C4LyL4L2R4L2Y4L2i4LyLX+C9guC9n+C9oOC8i+C9o+C+t+C9guC8i+C9lOC8i1/gvYLgvZ/gvaDgvIvgvZXgvbTgvaLgvIvgvZbgvbRf4L2C4L2f4L2g4LyL4L2U4LyL4L2m4L2E4L2m4LyLX+C9guC9n+C9oOC8i+C9puC+pOC9uuC9k+C8i+C9lOC8iycuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ+C9ieC9suC8i+C9mOC8i1/gvZ/gvrPgvIvgvZbgvItf4L2Y4L2y4L2C4LyL4L2R4L2Y4L2i4LyLX+C9o+C+t+C9guC8i+C9lOC8i1/gvZXgvbTgvaLgvIvgvZbgvbRf4L2U4LyL4L2m4L2E4L2m4LyLX+C9puC+pOC9uuC9k+C8i+C9lOC8iycuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfgvYngvbJf4L2f4L6zX+C9mOC9suC9gl/gvaPgvrfgvYJf4L2V4L204L2iX+C9puC9hOC9pl/gvabgvqTgvbrgvZMnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0EgaDptbScsXG4gICAgICAgICAgICBMVFM6ICdBIGg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSwgQSBoOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSwgQSBoOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb4L2R4L2y4LyL4L2i4L2y4L2EXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW+C9puC9hOC8i+C9ieC9suC9k10gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdb4L2W4L2R4L204L2T4LyL4L2V4L6y4L2C4LyL4L2i4L6X4L264L2m4LyL4L2YXSwgTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vgvYHgvIvgvabgvYRdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW+C9luC9keC9tOC9k+C8i+C9leC+suC9guC8i+C9mOC9kOC9oOC8i+C9mF0gZGRkZCwgTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICclcyDgvaPgvIsnLFxuICAgICAgICAgICAgcGFzdDogJyVzIOC9puC+lOC9k+C8i+C9oycsXG4gICAgICAgICAgICBzOiAn4L2j4L2Y4LyL4L2m4L2EJyxcbiAgICAgICAgICAgIHNzOiAnJWQg4L2m4L6Q4L2i4LyL4L2G4LyNJyxcbiAgICAgICAgICAgIG06ICfgvabgvpDgvaLgvIvgvZjgvIvgvYLgvYXgvbLgvYInLFxuICAgICAgICAgICAgbW06ICclZCDgvabgvpDgvaLgvIvgvZgnLFxuICAgICAgICAgICAgaDogJ+C9huC9tOC8i+C9muC9vOC9keC8i+C9guC9heC9suC9gicsXG4gICAgICAgICAgICBoaDogJyVkIOC9huC9tOC8i+C9muC9vOC9kScsXG4gICAgICAgICAgICBkOiAn4L2J4L2y4L2T4LyL4L2C4L2F4L2y4L2CJyxcbiAgICAgICAgICAgIGRkOiAnJWQg4L2J4L2y4L2T4LyLJyxcbiAgICAgICAgICAgIE06ICfgvZ/gvrPgvIvgvZbgvIvgvYLgvYXgvbLgvYInLFxuICAgICAgICAgICAgTU06ICclZCDgvZ/gvrPgvIvgvZYnLFxuICAgICAgICAgICAgeTogJ+C9o+C9vOC8i+C9guC9heC9suC9gicsXG4gICAgICAgICAgICB5eTogJyVkIOC9o+C9vCcsXG4gICAgICAgIH0sXG4gICAgICAgIHByZXBhcnNlOiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL1vgvKHgvKLgvKPgvKTgvKXgvKbgvKfgvKjgvKngvKBdL2csIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXJNYXBbbWF0Y2hdO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIHBvc3Rmb3JtYXQ6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgvXFxkL2csIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBzeW1ib2xNYXBbbWF0Y2hdO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/gvZjgvZrgvZPgvIvgvZjgvbx84L2e4L284L2C4L2m4LyL4L2A4L2mfOC9ieC9suC9k+C8i+C9guC9tOC9hHzgvZHgvYLgvbzgvYTgvIvgvZHgvYJ84L2Y4L2a4L2T4LyL4L2Y4L28LyxcbiAgICAgICAgbWVyaWRpZW1Ib3VyOiBmdW5jdGlvbiAoaG91ciwgbWVyaWRpZW0pIHtcbiAgICAgICAgICAgIGlmIChob3VyID09PSAxMikge1xuICAgICAgICAgICAgICAgIGhvdXIgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIChtZXJpZGllbSA9PT0gJ+C9mOC9muC9k+C8i+C9mOC9vCcgJiYgaG91ciA+PSA0KSB8fFxuICAgICAgICAgICAgICAgIChtZXJpZGllbSA9PT0gJ+C9ieC9suC9k+C8i+C9guC9tOC9hCcgJiYgaG91ciA8IDUpIHx8XG4gICAgICAgICAgICAgICAgbWVyaWRpZW0gPT09ICfgvZHgvYLgvbzgvYTgvIvgvZHgvYInXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyIDwgNCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4L2Y4L2a4L2T4LyL4L2Y4L28JztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDEwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgvZ7gvbzgvYLgvabgvIvgvYDgvaYnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+C9ieC9suC9k+C8i+C9guC9tOC9hCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAyMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4L2R4L2C4L284L2E4LyL4L2R4L2CJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgvZjgvZrgvZPgvIvgvZjgvbwnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDAsIC8vIFN1bmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA2LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA2dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gYm87XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogQnJldG9uIFticl1cbi8vISBhdXRob3IgOiBKZWFuLUJhcHRpc3RlIExlIER1aWdvdSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9qYmxlZHVpZ291XG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICBmdW5jdGlvbiByZWxhdGl2ZVRpbWVXaXRoTXV0YXRpb24obnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXkpIHtcbiAgICAgICAgdmFyIGZvcm1hdCA9IHtcbiAgICAgICAgICAgIG1tOiAnbXVudXRlbm4nLFxuICAgICAgICAgICAgTU06ICdtaXonLFxuICAgICAgICAgICAgZGQ6ICdkZXZlemgnLFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gbnVtYmVyICsgJyAnICsgbXV0YXRpb24oZm9ybWF0W2tleV0sIG51bWJlcik7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHNwZWNpYWxNdXRhdGlvbkZvclllYXJzKG51bWJlcikge1xuICAgICAgICBzd2l0Y2ggKGxhc3ROdW1iZXIobnVtYmVyKSkge1xuICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgY2FzZSA5OlxuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnIGJsb2F6JztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICcgdmxvYXonO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGxhc3ROdW1iZXIobnVtYmVyKSB7XG4gICAgICAgIGlmIChudW1iZXIgPiA5KSB7XG4gICAgICAgICAgICByZXR1cm4gbGFzdE51bWJlcihudW1iZXIgJSAxMCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bWJlcjtcbiAgICB9XG4gICAgZnVuY3Rpb24gbXV0YXRpb24odGV4dCwgbnVtYmVyKSB7XG4gICAgICAgIGlmIChudW1iZXIgPT09IDIpIHtcbiAgICAgICAgICAgIHJldHVybiBzb2Z0TXV0YXRpb24odGV4dCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRleHQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHNvZnRNdXRhdGlvbih0ZXh0KSB7XG4gICAgICAgIHZhciBtdXRhdGlvblRhYmxlID0ge1xuICAgICAgICAgICAgbTogJ3YnLFxuICAgICAgICAgICAgYjogJ3YnLFxuICAgICAgICAgICAgZDogJ3onLFxuICAgICAgICB9O1xuICAgICAgICBpZiAobXV0YXRpb25UYWJsZVt0ZXh0LmNoYXJBdCgwKV0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRleHQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG11dGF0aW9uVGFibGVbdGV4dC5jaGFyQXQoMCldICsgdGV4dC5zdWJzdHJpbmcoMSk7XG4gICAgfVxuXG4gICAgdmFyIG1vbnRoc1BhcnNlID0gW1xuICAgICAgICAgICAgL15nZW4vaSxcbiAgICAgICAgICAgIC9eY1vKvFxcJ11od2UvaSxcbiAgICAgICAgICAgIC9ebWV1L2ksXG4gICAgICAgICAgICAvXmVici9pLFxuICAgICAgICAgICAgL15tYWUvaSxcbiAgICAgICAgICAgIC9eKG1lenxldmUpL2ksXG4gICAgICAgICAgICAvXmdvdS9pLFxuICAgICAgICAgICAgL15lb3MvaSxcbiAgICAgICAgICAgIC9eZ3dlL2ksXG4gICAgICAgICAgICAvXmhlci9pLFxuICAgICAgICAgICAgL15kdS9pLFxuICAgICAgICAgICAgL15rZXIvaSxcbiAgICAgICAgXSxcbiAgICAgICAgbW9udGhzUmVnZXggPSAvXihnZW52ZXJ8Y1vKvFxcJ11od2V2cmVyfG1ldXJ6aHxlYnJlbHxtYWV8bWV6aGV2ZW58Z291ZXJlfGVvc3R8Z3dlbmdvbG98aGVyZXxkdXxrZXJ6dXxnZW58Y1vKvFxcJ11od2V8bWV1fGVicnxtYWV8ZXZlfGdvdXxlb3N8Z3dlfGhlcnxkdXxrZXIpL2ksXG4gICAgICAgIG1vbnRoc1N0cmljdFJlZ2V4ID0gL14oZ2VudmVyfGNbyrxcXCddaHdldnJlcnxtZXVyemh8ZWJyZWx8bWFlfG1lemhldmVufGdvdWVyZXxlb3N0fGd3ZW5nb2xvfGhlcmV8ZHV8a2VyenUpL2ksXG4gICAgICAgIG1vbnRoc1Nob3J0U3RyaWN0UmVnZXggPSAvXihnZW58Y1vKvFxcJ11od2V8bWV1fGVicnxtYWV8ZXZlfGdvdXxlb3N8Z3dlfGhlcnxkdXxrZXIpL2ksXG4gICAgICAgIGZ1bGxXZWVrZGF5c1BhcnNlID0gW1xuICAgICAgICAgICAgL15zdWwvaSxcbiAgICAgICAgICAgIC9ebHVuL2ksXG4gICAgICAgICAgICAvXm1ldXJ6aC9pLFxuICAgICAgICAgICAgL15tZXJjW8q8XFwnXWhlci9pLFxuICAgICAgICAgICAgL155YW91L2ksXG4gICAgICAgICAgICAvXmd3ZW5lci9pLFxuICAgICAgICAgICAgL15zYWRvcm4vaSxcbiAgICAgICAgXSxcbiAgICAgICAgc2hvcnRXZWVrZGF5c1BhcnNlID0gW1xuICAgICAgICAgICAgL15TdWwvaSxcbiAgICAgICAgICAgIC9eTHVuL2ksXG4gICAgICAgICAgICAvXk1ldS9pLFxuICAgICAgICAgICAgL15NZXIvaSxcbiAgICAgICAgICAgIC9eWWFvL2ksXG4gICAgICAgICAgICAvXkd3ZS9pLFxuICAgICAgICAgICAgL15TYWQvaSxcbiAgICAgICAgXSxcbiAgICAgICAgbWluV2Vla2RheXNQYXJzZSA9IFtcbiAgICAgICAgICAgIC9eU3UvaSxcbiAgICAgICAgICAgIC9eTHUvaSxcbiAgICAgICAgICAgIC9eTWUoW15yXXwkKS9pLFxuICAgICAgICAgICAgL15NZXIvaSxcbiAgICAgICAgICAgIC9eWWEvaSxcbiAgICAgICAgICAgIC9eR3cvaSxcbiAgICAgICAgICAgIC9eU2EvaSxcbiAgICAgICAgXTtcblxuICAgIHZhciBiciA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2JyJywge1xuICAgICAgICBtb250aHM6ICdHZW52ZXJfQ8q8aHdldnJlcl9NZXVyemhfRWJyZWxfTWFlX01lemhldmVuX0dvdWVyZV9Fb3N0X0d3ZW5nb2xvX0hlcmVfRHVfS2VyenUnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnR2VuX0PKvGh3ZV9NZXVfRWJyX01hZV9FdmVfR291X0Vvc19Hd2VfSGVyX0R1X0tlcicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICdTdWxfTHVuX01ldXJ6aF9NZXJjyrxoZXJfWWFvdV9Hd2VuZXJfU2Fkb3JuJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnU3VsX0x1bl9NZXVfTWVyX1lhb19Hd2VfU2FkJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ1N1X0x1X01lX01lcl9ZYV9Hd19TYScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZTogbWluV2Vla2RheXNQYXJzZSxcbiAgICAgICAgZnVsbFdlZWtkYXlzUGFyc2U6IGZ1bGxXZWVrZGF5c1BhcnNlLFxuICAgICAgICBzaG9ydFdlZWtkYXlzUGFyc2U6IHNob3J0V2Vla2RheXNQYXJzZSxcbiAgICAgICAgbWluV2Vla2RheXNQYXJzZTogbWluV2Vla2RheXNQYXJzZSxcblxuICAgICAgICBtb250aHNSZWdleDogbW9udGhzUmVnZXgsXG4gICAgICAgIG1vbnRoc1Nob3J0UmVnZXg6IG1vbnRoc1JlZ2V4LFxuICAgICAgICBtb250aHNTdHJpY3RSZWdleDogbW9udGhzU3RyaWN0UmVnZXgsXG4gICAgICAgIG1vbnRoc1Nob3J0U3RyaWN0UmVnZXg6IG1vbnRoc1Nob3J0U3RyaWN0UmVnZXgsXG4gICAgICAgIG1vbnRoc1BhcnNlOiBtb250aHNQYXJzZSxcbiAgICAgICAgbG9uZ01vbnRoc1BhcnNlOiBtb250aHNQYXJzZSxcbiAgICAgICAgc2hvcnRNb250aHNQYXJzZTogbW9udGhzUGFyc2UsXG5cbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIFthIHZpel0gTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgW2Egdml6XSBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgW2Egdml6XSBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tIaXppdiBkYV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tXYXJjyrxob2F6aCBkYV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFtkYV0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tEZWPKvGggZGFdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnZGRkZCBbcGFzZXQgZGFdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnYS1iZW5uICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyDKvHpvJyxcbiAgICAgICAgICAgIHM6ICd1biBuZWJldWQgc2Vnb25kZW5ub8O5JyxcbiAgICAgICAgICAgIHNzOiAnJWQgZWlsZW5uJyxcbiAgICAgICAgICAgIG06ICd1ciB2dW51dGVubicsXG4gICAgICAgICAgICBtbTogcmVsYXRpdmVUaW1lV2l0aE11dGF0aW9uLFxuICAgICAgICAgICAgaDogJ3VuIGV1cicsXG4gICAgICAgICAgICBoaDogJyVkIGV1cicsXG4gICAgICAgICAgICBkOiAndW4gZGV2ZXpoJyxcbiAgICAgICAgICAgIGRkOiByZWxhdGl2ZVRpbWVXaXRoTXV0YXRpb24sXG4gICAgICAgICAgICBNOiAndXIgbWl6JyxcbiAgICAgICAgICAgIE1NOiByZWxhdGl2ZVRpbWVXaXRoTXV0YXRpb24sXG4gICAgICAgICAgICB5OiAndXIgYmxvYXonLFxuICAgICAgICAgICAgeXk6IHNwZWNpYWxNdXRhdGlvbkZvclllYXJzLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0oYcOxfHZldCkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICB2YXIgb3V0cHV0ID0gbnVtYmVyID09PSAxID8gJ2HDsScgOiAndmV0JztcbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyBvdXRwdXQ7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL2EubS58Zy5tLi8sIC8vIGdvdWRlIG1lcmVubiB8IGEtcmFvayBtZXJlbm5cbiAgICAgICAgaXNQTTogZnVuY3Rpb24gKHRva2VuKSB7XG4gICAgICAgICAgICByZXR1cm4gdG9rZW4gPT09ICdnLm0uJztcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBob3VyIDwgMTIgPyAnYS5tLicgOiAnZy5tLic7XG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gYnI7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogQm9zbmlhbiBbYnNdXG4vLyEgYXV0aG9yIDogTmVkaW0gQ2hvbGljaCA6IGh0dHBzOi8vZ2l0aHViLmNvbS9mcm9udHlhcmRcbi8vISBiYXNlZCBvbiAoaHIpIHRyYW5zbGF0aW9uIGJ5IEJvamFuIE1hcmtvdmnEh1xuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgZnVuY3Rpb24gdHJhbnNsYXRlKG51bWJlciwgd2l0aG91dFN1ZmZpeCwga2V5KSB7XG4gICAgICAgIHZhciByZXN1bHQgPSBudW1iZXIgKyAnICc7XG4gICAgICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICAgICAgICBjYXNlICdzcyc6XG4gICAgICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ3Nla3VuZGEnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobnVtYmVyID09PSAyIHx8IG51bWJlciA9PT0gMyB8fCBudW1iZXIgPT09IDQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdzZWt1bmRlJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ3Nla3VuZGknO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgY2FzZSAnbSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggPyAnamVkbmEgbWludXRhJyA6ICdqZWRuZSBtaW51dGUnO1xuICAgICAgICAgICAgY2FzZSAnbW0nOlxuICAgICAgICAgICAgICAgIGlmIChudW1iZXIgPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdtaW51dGEnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobnVtYmVyID09PSAyIHx8IG51bWJlciA9PT0gMyB8fCBudW1iZXIgPT09IDQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdtaW51dGUnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnbWludXRhJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIGNhc2UgJ2gnOlxuICAgICAgICAgICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4ID8gJ2plZGFuIHNhdCcgOiAnamVkbm9nIHNhdGEnO1xuICAgICAgICAgICAgY2FzZSAnaGgnOlxuICAgICAgICAgICAgICAgIGlmIChudW1iZXIgPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdzYXQnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobnVtYmVyID09PSAyIHx8IG51bWJlciA9PT0gMyB8fCBudW1iZXIgPT09IDQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdzYXRhJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ3NhdGknO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgY2FzZSAnZGQnOlxuICAgICAgICAgICAgICAgIGlmIChudW1iZXIgPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdkYW4nO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnZGFuYSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICBjYXNlICdNTSc6XG4gICAgICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ21qZXNlYyc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudW1iZXIgPT09IDIgfHwgbnVtYmVyID09PSAzIHx8IG51bWJlciA9PT0gNCkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ21qZXNlY2EnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnbWplc2VjaSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICBjYXNlICd5eSc6XG4gICAgICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ2dvZGluYSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudW1iZXIgPT09IDIgfHwgbnVtYmVyID09PSAzIHx8IG51bWJlciA9PT0gNCkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ2dvZGluZSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdnb2RpbmEnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGJzID0gbW9tZW50LmRlZmluZUxvY2FsZSgnYnMnLCB7XG4gICAgICAgIG1vbnRoczogJ2phbnVhcl9mZWJydWFyX21hcnRfYXByaWxfbWFqX2p1bmlfanVsaV9hdWd1c3Rfc2VwdGVtYmFyX29rdG9iYXJfbm92ZW1iYXJfZGVjZW1iYXInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnamFuLl9mZWIuX21hci5fYXByLl9tYWouX2p1bi5fanVsLl9hdWcuX3NlcC5fb2t0Ll9ub3YuX2RlYy4nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzOiAnbmVkamVsamFfcG9uZWRqZWxqYWtfdXRvcmFrX3NyaWplZGFfxI1ldHZydGFrX3BldGFrX3N1Ym90YScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ25lZC5fcG9uLl91dG8uX3NyaS5fxI1ldC5fcGV0Ll9zdWIuJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ25lX3BvX3V0X3NyX8SNZV9wZV9zdScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0g6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEw6ICdELiBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRC4gTU1NTSBZWVlZIEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQuIE1NTU0gWVlZWSBIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbZGFuYXMgdV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tzdXRyYSB1XSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAodGhpcy5kYXkoKSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1t1XSBbbmVkamVsanVdIFt1XSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3VdIFtzcmlqZWR1XSBbdV0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1t1XSBbc3Vib3R1XSBbdV0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1t1XSBkZGRkIFt1XSBMVCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbanXEjWVyIHVdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoICh0aGlzLmRheSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbcHJvxaFsdV0gZGRkZCBbdV0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1twcm/FoWxlXSBbc3Vib3RlXSBbdV0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1twcm/FoWxpXSBkZGRkIFt1XSBMVCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnemEgJXMnLFxuICAgICAgICAgICAgcGFzdDogJ3ByaWplICVzJyxcbiAgICAgICAgICAgIHM6ICdwYXIgc2VrdW5kaScsXG4gICAgICAgICAgICBzczogdHJhbnNsYXRlLFxuICAgICAgICAgICAgbTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgbW06IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGg6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGhoOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBkOiAnZGFuJyxcbiAgICAgICAgICAgIGRkOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBNOiAnbWplc2VjJyxcbiAgICAgICAgICAgIE1NOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICB5OiAnZ29kaW51JyxcbiAgICAgICAgICAgIHl5OiB0cmFuc2xhdGUsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfVxcLi8sXG4gICAgICAgIG9yZGluYWw6ICclZC4nLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA3LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA3dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gYnM7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogQ2F0YWxhbiBbY2FdXG4vLyEgYXV0aG9yIDogSnVhbiBHLiBIdXJ0YWRvIDogaHR0cHM6Ly9naXRodWIuY29tL2p1YW5naHVydGFkb1xuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIGNhID0gbW9tZW50LmRlZmluZUxvY2FsZSgnY2EnLCB7XG4gICAgICAgIG1vbnRoczoge1xuICAgICAgICAgICAgc3RhbmRhbG9uZTogJ2dlbmVyX2ZlYnJlcl9tYXLDp19hYnJpbF9tYWlnX2p1bnlfanVsaW9sX2Fnb3N0X3NldGVtYnJlX29jdHVicmVfbm92ZW1icmVfZGVzZW1icmUnLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGZvcm1hdDogXCJkZSBnZW5lcl9kZSBmZWJyZXJfZGUgbWFyw6dfZCdhYnJpbF9kZSBtYWlnX2RlIGp1bnlfZGUganVsaW9sX2QnYWdvc3RfZGUgc2V0ZW1icmVfZCdvY3R1YnJlX2RlIG5vdmVtYnJlX2RlIGRlc2VtYnJlXCIuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgaXNGb3JtYXQ6IC9EW29EXT8oXFxzKStNTU1NLyxcbiAgICAgICAgfSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdnZW4uX2ZlYnIuX21hcsOnX2Fici5fbWFpZ19qdW55X2p1bC5fYWcuX3NldC5fb2N0Ll9ub3YuX2Rlcy4nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzOiAnZGl1bWVuZ2VfZGlsbHVuc19kaW1hcnRzX2RpbWVjcmVzX2Rpam91c19kaXZlbmRyZXNfZGlzc2FidGUnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdkZy5fZGwuX2R0Ll9kYy5fZGouX2R2Ll9kcy4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnZGdfZGxfZHRfZGNfZGpfZHZfZHMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSDptbScsXG4gICAgICAgICAgICBMVFM6ICdIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFtkZV0gWVlZWScsXG4gICAgICAgICAgICBsbDogJ0QgTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFtkZV0gWVlZWSBbYSBsZXNdIEg6bW0nLFxuICAgICAgICAgICAgbGxsOiAnRCBNTU0gWVlZWSwgSDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCBEIE1NTU0gW2RlXSBZWVlZIFthIGxlc10gSDptbScsXG4gICAgICAgICAgICBsbGxsOiAnZGRkIEQgTU1NIFlZWVksIEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnW2F2dWkgYSAnICsgKHRoaXMuaG91cnMoKSAhPT0gMSA/ICdsZXMnIDogJ2xhJykgKyAnXSBMVCc7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbmV4dERheTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnW2RlbcOgIGEgJyArICh0aGlzLmhvdXJzKCkgIT09IDEgPyAnbGVzJyA6ICdsYScpICsgJ10gTFQnO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG5leHRXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdkZGRkIFthICcgKyAodGhpcy5ob3VycygpICE9PSAxID8gJ2xlcycgOiAnbGEnKSArICddIExUJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYXN0RGF5OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdbYWhpciBhICcgKyAodGhpcy5ob3VycygpICE9PSAxID8gJ2xlcycgOiAnbGEnKSArICddIExUJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYXN0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICdbZWxdIGRkZGQgW3Bhc3NhdCBhICcgK1xuICAgICAgICAgICAgICAgICAgICAodGhpcy5ob3VycygpICE9PSAxID8gJ2xlcycgOiAnbGEnKSArXG4gICAgICAgICAgICAgICAgICAgICddIExUJ1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6IFwiZCdhcXXDrSAlc1wiLFxuICAgICAgICAgICAgcGFzdDogJ2ZhICVzJyxcbiAgICAgICAgICAgIHM6ICd1bnMgc2Vnb25zJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2Vnb25zJyxcbiAgICAgICAgICAgIG06ICd1biBtaW51dCcsXG4gICAgICAgICAgICBtbTogJyVkIG1pbnV0cycsXG4gICAgICAgICAgICBoOiAndW5hIGhvcmEnLFxuICAgICAgICAgICAgaGg6ICclZCBob3JlcycsXG4gICAgICAgICAgICBkOiAndW4gZGlhJyxcbiAgICAgICAgICAgIGRkOiAnJWQgZGllcycsXG4gICAgICAgICAgICBNOiAndW4gbWVzJyxcbiAgICAgICAgICAgIE1NOiAnJWQgbWVzb3MnLFxuICAgICAgICAgICAgeTogJ3VuIGFueScsXG4gICAgICAgICAgICB5eTogJyVkIGFueXMnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0ocnxufHR8w6h8YSkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyLCBwZXJpb2QpIHtcbiAgICAgICAgICAgIHZhciBvdXRwdXQgPVxuICAgICAgICAgICAgICAgIG51bWJlciA9PT0gMVxuICAgICAgICAgICAgICAgICAgICA/ICdyJ1xuICAgICAgICAgICAgICAgICAgICA6IG51bWJlciA9PT0gMlxuICAgICAgICAgICAgICAgICAgICA/ICduJ1xuICAgICAgICAgICAgICAgICAgICA6IG51bWJlciA9PT0gM1xuICAgICAgICAgICAgICAgICAgICA/ICdyJ1xuICAgICAgICAgICAgICAgICAgICA6IG51bWJlciA9PT0gNFxuICAgICAgICAgICAgICAgICAgICA/ICd0J1xuICAgICAgICAgICAgICAgICAgICA6ICfDqCc7XG4gICAgICAgICAgICBpZiAocGVyaW9kID09PSAndycgfHwgcGVyaW9kID09PSAnVycpIHtcbiAgICAgICAgICAgICAgICBvdXRwdXQgPSAnYSc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgb3V0cHV0O1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gY2E7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogQ3plY2ggW2NzXVxuLy8hIGF1dGhvciA6IHBldHJiZWxhIDogaHR0cHM6Ly9naXRodWIuY29tL3BldHJiZWxhXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgbW9udGhzID0gJ2xlZGVuX8O6bm9yX2LFmWV6ZW5fZHViZW5fa3bEm3Rlbl/EjWVydmVuX8SNZXJ2ZW5lY19zcnBlbl96w6HFmcOtX8WZw61qZW5fbGlzdG9wYWRfcHJvc2luZWMnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0ID0gJ2xlZF/Dum5vX2LFmWVfZHViX2t2xJtfxI12bl/EjXZjX3NycF96w6HFmV/FmcOtal9saXNfcHJvJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNQYXJzZSA9IFtcbiAgICAgICAgICAgIC9ebGVkL2ksXG4gICAgICAgICAgICAvXsO6bm8vaSxcbiAgICAgICAgICAgIC9eYsWZZS9pLFxuICAgICAgICAgICAgL15kdWIvaSxcbiAgICAgICAgICAgIC9ea3bEmy9pLFxuICAgICAgICAgICAgL14oxI12bnzEjWVydmVuJHzEjWVydm5hKS9pLFxuICAgICAgICAgICAgL14oxI12Y3zEjWVydmVuZWN8xI1lcnZlbmNlKS9pLFxuICAgICAgICAgICAgL15zcnAvaSxcbiAgICAgICAgICAgIC9eesOhxZkvaSxcbiAgICAgICAgICAgIC9exZnDrWovaSxcbiAgICAgICAgICAgIC9ebGlzL2ksXG4gICAgICAgICAgICAvXnByby9pLFxuICAgICAgICBdLFxuICAgICAgICAvLyBOT1RFOiAnxI1lcnZlbicgaXMgc3Vic3RyaW5nIG9mICfEjWVydmVuZWMnOyB0aGVyZWZvcmUgJ8SNZXJ2ZW5lYycgbXVzdCBwcmVjZWRlICfEjWVydmVuJyBpbiB0aGUgcmVnZXggdG8gYmUgZnVsbHkgbWF0Y2hlZC5cbiAgICAgICAgLy8gT3RoZXJ3aXNlIHBhcnNlciBtYXRjaGVzICcxLiDEjWVydmVuZWMnIGFzICcxLiDEjWVydmVuJyArICdlYycuXG4gICAgICAgIG1vbnRoc1JlZ2V4ID0gL14obGVkZW58w7pub3J8YsWZZXplbnxkdWJlbnxrdsSbdGVufMSNZXJ2ZW5lY3zEjWVydmVuY2V8xI1lcnZlbnzEjWVydm5hfHNycGVufHrDocWZw618xZnDrWplbnxsaXN0b3BhZHxwcm9zaW5lY3xsZWR8w7pub3xixZllfGR1YnxrdsSbfMSNdm58xI12Y3xzcnB8esOhxZl8xZnDrWp8bGlzfHBybykvaTtcblxuICAgIGZ1bmN0aW9uIHBsdXJhbChuKSB7XG4gICAgICAgIHJldHVybiBuID4gMSAmJiBuIDwgNSAmJiB+fihuIC8gMTApICE9PSAxO1xuICAgIH1cbiAgICBmdW5jdGlvbiB0cmFuc2xhdGUobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXksIGlzRnV0dXJlKSB7XG4gICAgICAgIHZhciByZXN1bHQgPSBudW1iZXIgKyAnICc7XG4gICAgICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICAgICAgICBjYXNlICdzJzogLy8gYSBmZXcgc2Vjb25kcyAvIGluIGEgZmV3IHNlY29uZHMgLyBhIGZldyBzZWNvbmRzIGFnb1xuICAgICAgICAgICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ3DDoXIgc2VrdW5kJyA6ICdww6FyIHNla3VuZGFtaSc7XG4gICAgICAgICAgICBjYXNlICdzcyc6IC8vIDkgc2Vjb25kcyAvIGluIDkgc2Vjb25kcyAvIDkgc2Vjb25kcyBhZ29cbiAgICAgICAgICAgICAgICBpZiAod2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgKHBsdXJhbChudW1iZXIpID8gJ3Nla3VuZHknIDogJ3Nla3VuZCcpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAnc2VrdW5kYW1pJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdtJzogLy8gYSBtaW51dGUgLyBpbiBhIG1pbnV0ZSAvIGEgbWludXRlIGFnb1xuICAgICAgICAgICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4ID8gJ21pbnV0YScgOiBpc0Z1dHVyZSA/ICdtaW51dHUnIDogJ21pbnV0b3UnO1xuICAgICAgICAgICAgY2FzZSAnbW0nOiAvLyA5IG1pbnV0ZXMgLyBpbiA5IG1pbnV0ZXMgLyA5IG1pbnV0ZXMgYWdvXG4gICAgICAgICAgICAgICAgaWYgKHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArIChwbHVyYWwobnVtYmVyKSA/ICdtaW51dHknIDogJ21pbnV0Jyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArICdtaW51dGFtaSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnaCc6IC8vIGFuIGhvdXIgLyBpbiBhbiBob3VyIC8gYW4gaG91ciBhZ29cbiAgICAgICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCA/ICdob2RpbmEnIDogaXNGdXR1cmUgPyAnaG9kaW51JyA6ICdob2Rpbm91JztcbiAgICAgICAgICAgIGNhc2UgJ2hoJzogLy8gOSBob3VycyAvIGluIDkgaG91cnMgLyA5IGhvdXJzIGFnb1xuICAgICAgICAgICAgICAgIGlmICh3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAocGx1cmFsKG51bWJlcikgPyAnaG9kaW55JyA6ICdob2RpbicpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAnaG9kaW5hbWknO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ2QnOiAvLyBhIGRheSAvIGluIGEgZGF5IC8gYSBkYXkgYWdvXG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAnZGVuJyA6ICdkbmVtJztcbiAgICAgICAgICAgIGNhc2UgJ2RkJzogLy8gOSBkYXlzIC8gaW4gOSBkYXlzIC8gOSBkYXlzIGFnb1xuICAgICAgICAgICAgICAgIGlmICh3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAocGx1cmFsKG51bWJlcikgPyAnZG55JyA6ICdkbsOtJyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArICdkbnknO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ00nOiAvLyBhIG1vbnRoIC8gaW4gYSBtb250aCAvIGEgbW9udGggYWdvXG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAnbcSbc8OtYycgOiAnbcSbc8OtY2VtJztcbiAgICAgICAgICAgIGNhc2UgJ01NJzogLy8gOSBtb250aHMgLyBpbiA5IG1vbnRocyAvIDkgbW9udGhzIGFnb1xuICAgICAgICAgICAgICAgIGlmICh3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAocGx1cmFsKG51bWJlcikgPyAnbcSbc8OtY2UnIDogJ23Em3PDrWPFrycpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAnbcSbc8OtY2knO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ3knOiAvLyBhIHllYXIgLyBpbiBhIHllYXIgLyBhIHllYXIgYWdvXG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAncm9rJyA6ICdyb2tlbSc7XG4gICAgICAgICAgICBjYXNlICd5eSc6IC8vIDkgeWVhcnMgLyBpbiA5IHllYXJzIC8gOSB5ZWFycyBhZ29cbiAgICAgICAgICAgICAgICBpZiAod2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgKHBsdXJhbChudW1iZXIpID8gJ3Jva3knIDogJ2xldCcpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAnbGV0eSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGNzID0gbW9tZW50LmRlZmluZUxvY2FsZSgnY3MnLCB7XG4gICAgICAgIG1vbnRoczogbW9udGhzLFxuICAgICAgICBtb250aHNTaG9ydDogbW9udGhzU2hvcnQsXG4gICAgICAgIG1vbnRoc1JlZ2V4OiBtb250aHNSZWdleCxcbiAgICAgICAgbW9udGhzU2hvcnRSZWdleDogbW9udGhzUmVnZXgsXG4gICAgICAgIC8vIE5PVEU6ICfEjWVydmVuJyBpcyBzdWJzdHJpbmcgb2YgJ8SNZXJ2ZW5lYyc7IHRoZXJlZm9yZSAnxI1lcnZlbmVjJyBtdXN0IHByZWNlZGUgJ8SNZXJ2ZW4nIGluIHRoZSByZWdleCB0byBiZSBmdWxseSBtYXRjaGVkLlxuICAgICAgICAvLyBPdGhlcndpc2UgcGFyc2VyIG1hdGNoZXMgJzEuIMSNZXJ2ZW5lYycgYXMgJzEuIMSNZXJ2ZW4nICsgJ2VjJy5cbiAgICAgICAgbW9udGhzU3RyaWN0UmVnZXg6IC9eKGxlZGVufGxlZG5hfMO6bm9yYXzDum5vcnxixZllemVufGLFmWV6bmF8ZHViZW58ZHVibmF8a3bEm3RlbnxrdsSbdG5hfMSNZXJ2ZW5lY3zEjWVydmVuY2V8xI1lcnZlbnzEjWVydm5hfHNycGVufHNycG5hfHrDocWZw618xZnDrWplbnzFmcOtam5hfGxpc3RvcGFkdXxsaXN0b3BhZHxwcm9zaW5lY3xwcm9zaW5jZSkvaSxcbiAgICAgICAgbW9udGhzU2hvcnRTdHJpY3RSZWdleDogL14obGVkfMO6bm98YsWZZXxkdWJ8a3bEm3zEjXZufMSNdmN8c3JwfHrDocWZfMWZw61qfGxpc3xwcm8pL2ksXG4gICAgICAgIG1vbnRoc1BhcnNlOiBtb250aHNQYXJzZSxcbiAgICAgICAgbG9uZ01vbnRoc1BhcnNlOiBtb250aHNQYXJzZSxcbiAgICAgICAgc2hvcnRNb250aHNQYXJzZTogbW9udGhzUGFyc2UsXG4gICAgICAgIHdlZWtkYXlzOiAnbmVkxJtsZV9wb25kxJtsw61fw7p0ZXLDvV9zdMWZZWRhX8SNdHZydGVrX3DDoXRla19zb2JvdGEnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICduZV9wb1/DunRfc3RfxI10X3DDoV9zbycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICduZV9wb1/DunRfc3RfxI10X3DDoV9zbycuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSDptbScsXG4gICAgICAgICAgICBMVFM6ICdIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRC4gTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QuIE1NTU0gWVlZWSBIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkIEQuIE1NTU0gWVlZWSBIOm1tJyxcbiAgICAgICAgICAgIGw6ICdELiBNLiBZWVlZJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbZG5lcyB2XSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW3rDrXRyYSB2XSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAodGhpcy5kYXkoKSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1t2IG5lZMSbbGkgdl0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3ZdIGRkZGQgW3ZdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbdmUgc3TFmWVkdSB2XSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3ZlIMSNdHZydGVrIHZdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbdiBww6F0ZWsgdl0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1t2IHNvYm90dSB2XSBMVCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbdsSNZXJhIHZdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoICh0aGlzLmRheSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW21pbnVsb3UgbmVkxJtsaSB2XSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbbWludWzDqV0gZGRkZCBbdl0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1ttaW51bG91IHN0xZllZHUgdl0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW21pbnVsw71dIGRkZGQgW3ZdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbbWludWxvdSBzb2JvdHUgdl0gTFQnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ3phICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICdwxZllZCAlcycsXG4gICAgICAgICAgICBzOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBzczogdHJhbnNsYXRlLFxuICAgICAgICAgICAgbTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgbW06IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGg6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGhoOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBkOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBkZDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgTTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgTU06IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIHk6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIHl5OiB0cmFuc2xhdGUsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfVxcLi8sXG4gICAgICAgIG9yZGluYWw6ICclZC4nLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gY3M7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogQ2h1dmFzaCBbY3ZdXG4vLyEgYXV0aG9yIDogQW5hdG9seSBNaXJvbm92IDogaHR0cHM6Ly9naXRodWIuY29tL21pcm9udG9saVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIGN2ID0gbW9tZW50LmRlZmluZUxvY2FsZSgnY3YnLCB7XG4gICAgICAgIG1vbnRoczogJ9C605HRgNC70LDRh1/QvdCw0YDTkdGBX9C/0YPRiF/QsNC60LBf0LzQsNC5X9Kr05fRgNGC0LzQtV/Rg9GC05Ff0qvRg9GA0LvQsF/QsNCy05HQvV/RjtC/0LBf0YfTs9C6X9GA0LDRiNGC0LDQsicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICfQutOR0YBf0L3QsNGAX9C/0YPRiF/QsNC60LBf0LzQsNC5X9Kr05fRgF/Rg9GC05Ff0qvRg9GAX9Cw0LLQvV/RjtC/0LBf0YfTs9C6X9GA0LDRiCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICfQstGL0YDRgdCw0YDQvdC40LrRg9C9X9GC0YPQvdGC0LjQutGD0L1f0YvRgtC70LDRgNC40LrRg9C9X9GO0L3QutGD0L1f0LrTl9Kr0L3QtdGA0L3QuNC60YPQvV/RjdGA0L3QtdC60YPQvV/RiNOR0LzQsNGC0LrRg9C9Jy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn0LLRi9GAX9GC0YPQvV/Ri9GC0Ltf0Y7QvV/QutOX0qtf0Y3RgNC9X9GI05HQvCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfQstGAX9GC0L1f0YvRgl/RjtC9X9C60qtf0Y3RgF/RiNC8Jy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQtTU0tWVlZWScsXG4gICAgICAgICAgICBMTDogJ1lZWVkgW9Kr0YPQu9GF0LhdIE1NTU0gW9GD0LnTkdGF05fQvV0gRFst0LzTl9GI05ddJyxcbiAgICAgICAgICAgIExMTDogJ1lZWVkgW9Kr0YPQu9GF0LhdIE1NTU0gW9GD0LnTkdGF05fQvV0gRFst0LzTl9GI05ddLCBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgWVlZWSBb0qvRg9C70YXQuF0gTU1NTSBb0YPQudOR0YXTl9C9XSBEWy3QvNOX0YjTl10sIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb0J/QsNGP0L1dIExUIFvRgdC10YXQtdGC0YDQtV0nLFxuICAgICAgICAgICAgbmV4dERheTogJ1vQq9GA0LDQvV0gTFQgW9GB0LXRhdC10YLRgNC1XScsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW9OW0L3QtdGAXSBMVCBb0YHQtdGF0LXRgtGA0LVdJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnW9Kq0LjRgtC10YFdIGRkZGQgTFQgW9GB0LXRhdC10YLRgNC1XScsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1vQmNGA0YLQvdOXXSBkZGRkIExUIFvRgdC10YXQtdGC0YDQtV0nLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6IGZ1bmN0aW9uIChvdXRwdXQpIHtcbiAgICAgICAgICAgICAgICB2YXIgYWZmaXggPSAv0YHQtdGF0LXRgiQvaS5leGVjKG91dHB1dClcbiAgICAgICAgICAgICAgICAgICAgPyAn0YDQtdC9J1xuICAgICAgICAgICAgICAgICAgICA6IC/Sq9GD0LskL2kuZXhlYyhvdXRwdXQpXG4gICAgICAgICAgICAgICAgICAgID8gJ9GC0LDQvSdcbiAgICAgICAgICAgICAgICAgICAgOiAn0YDQsNC9JztcbiAgICAgICAgICAgICAgICByZXR1cm4gb3V0cHV0ICsgYWZmaXg7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcGFzdDogJyVzINC60LDRj9C70LvQsCcsXG4gICAgICAgICAgICBzOiAn0L/Tl9GALdC40Log0qvQtdC60LrRg9C90YInLFxuICAgICAgICAgICAgc3M6ICclZCDSq9C10LrQutGD0L3RgicsXG4gICAgICAgICAgICBtOiAn0L/Tl9GAINC80LjQvdGD0YInLFxuICAgICAgICAgICAgbW06ICclZCDQvNC40L3Rg9GCJyxcbiAgICAgICAgICAgIGg6ICfQv9OX0YAg0YHQtdGF0LXRgicsXG4gICAgICAgICAgICBoaDogJyVkINGB0LXRhdC10YInLFxuICAgICAgICAgICAgZDogJ9C/05fRgCDQutGD0L0nLFxuICAgICAgICAgICAgZGQ6ICclZCDQutGD0L0nLFxuICAgICAgICAgICAgTTogJ9C/05fRgCDRg9C505HRhScsXG4gICAgICAgICAgICBNTTogJyVkINGD0LnTkdGFJyxcbiAgICAgICAgICAgIHk6ICfQv9OX0YAg0qvRg9C7JyxcbiAgICAgICAgICAgIHl5OiAnJWQg0qvRg9C7JyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9LdC805fRiC8sXG4gICAgICAgIG9yZGluYWw6ICclZC3QvNOX0YgnLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA3LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA3dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gY3Y7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogV2Vsc2ggW2N5XVxuLy8hIGF1dGhvciA6IFJvYmVydCBBbGxlbiA6IGh0dHBzOi8vZ2l0aHViLmNvbS9yb2JnYWxsZW5cbi8vISBhdXRob3IgOiBodHRwczovL2dpdGh1Yi5jb20vcnlhbmdyZWF2ZXNcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBjeSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2N5Jywge1xuICAgICAgICBtb250aHM6ICdJb25hd3JfQ2h3ZWZyb3JfTWF3cnRoX0VicmlsbF9NYWlfTWVoZWZpbl9Hb3JmZmVubmFmX0F3c3RfTWVkaV9IeWRyZWZfVGFjaHdlZGRfUmhhZ2Z5cicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdJb25fQ2h3ZV9NYXdfRWJyX01haV9NZWhfR29yX0F3c19NZWRfSHlkX1RhY2hfUmhhZycuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXM6ICdEeWRkIFN1bF9EeWRkIExsdW5fRHlkZCBNYXdydGhfRHlkZCBNZXJjaGVyX0R5ZGQgSWF1X0R5ZGQgR3dlbmVyX0R5ZGQgU2Fkd3JuJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnU3VsX0xsdW5fTWF3X01lcl9JYXVfR3dlX1NhZCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdTdV9MbF9NYV9NZV9JYV9Hd19TYScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICAvLyB0aW1lIGZvcm1hdHMgYXJlIHRoZSBzYW1lIGFzIGVuLWdiXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbSGVkZGl3IGFtXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW1lmb3J5IGFtXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW2FtXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW0Rkb2UgYW1dIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnZGRkZCBbZGl3ZXRoYWYgYW1dIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnbWV3biAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMgeW4gw7RsJyxcbiAgICAgICAgICAgIHM6ICd5Y2h5ZGlnIGVpbGlhZGF1JyxcbiAgICAgICAgICAgIHNzOiAnJWQgZWlsaWFkJyxcbiAgICAgICAgICAgIG06ICdtdW51ZCcsXG4gICAgICAgICAgICBtbTogJyVkIG11bnVkJyxcbiAgICAgICAgICAgIGg6ICdhd3InLFxuICAgICAgICAgICAgaGg6ICclZCBhd3InLFxuICAgICAgICAgICAgZDogJ2Rpd3Jub2QnLFxuICAgICAgICAgICAgZGQ6ICclZCBkaXdybm9kJyxcbiAgICAgICAgICAgIE06ICdtaXMnLFxuICAgICAgICAgICAgTU06ICclZCBtaXMnLFxuICAgICAgICAgICAgeTogJ2Jsd3lkZHluJyxcbiAgICAgICAgICAgIHl5OiAnJWQgZmx5bmVkZCcsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfShmZWR8YWlufGFmfGlsfHlkZHxlZHxlZykvLFxuICAgICAgICAvLyB0cmFkaXRpb25hbCBvcmRpbmFsIG51bWJlcnMgYWJvdmUgMzEgYXJlIG5vdCBjb21tb25seSB1c2VkIGluIGNvbGxvcXVpYWwgV2Vsc2hcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgdmFyIGIgPSBudW1iZXIsXG4gICAgICAgICAgICAgICAgb3V0cHV0ID0gJycsXG4gICAgICAgICAgICAgICAgbG9va3VwID0gW1xuICAgICAgICAgICAgICAgICAgICAnJyxcbiAgICAgICAgICAgICAgICAgICAgJ2FmJyxcbiAgICAgICAgICAgICAgICAgICAgJ2lsJyxcbiAgICAgICAgICAgICAgICAgICAgJ3lkZCcsXG4gICAgICAgICAgICAgICAgICAgICd5ZGQnLFxuICAgICAgICAgICAgICAgICAgICAnZWQnLFxuICAgICAgICAgICAgICAgICAgICAnZWQnLFxuICAgICAgICAgICAgICAgICAgICAnZWQnLFxuICAgICAgICAgICAgICAgICAgICAnZmVkJyxcbiAgICAgICAgICAgICAgICAgICAgJ2ZlZCcsXG4gICAgICAgICAgICAgICAgICAgICdmZWQnLCAvLyAxYWYgdG8gMTBmZWRcbiAgICAgICAgICAgICAgICAgICAgJ2VnJyxcbiAgICAgICAgICAgICAgICAgICAgJ2ZlZCcsXG4gICAgICAgICAgICAgICAgICAgICdlZycsXG4gICAgICAgICAgICAgICAgICAgICdlZycsXG4gICAgICAgICAgICAgICAgICAgICdmZWQnLFxuICAgICAgICAgICAgICAgICAgICAnZWcnLFxuICAgICAgICAgICAgICAgICAgICAnZWcnLFxuICAgICAgICAgICAgICAgICAgICAnZmVkJyxcbiAgICAgICAgICAgICAgICAgICAgJ2VnJyxcbiAgICAgICAgICAgICAgICAgICAgJ2ZlZCcsIC8vIDExZWcgdG8gMjBmZWRcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgaWYgKGIgPiAyMCkge1xuICAgICAgICAgICAgICAgIGlmIChiID09PSA0MCB8fCBiID09PSA1MCB8fCBiID09PSA2MCB8fCBiID09PSA4MCB8fCBiID09PSAxMDApIHtcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gJ2ZlZCc7IC8vIG5vdCAzMGFpbiwgNzBhaW4gb3IgOTBhaW5cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSAnYWluJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGIgPiAwKSB7XG4gICAgICAgICAgICAgICAgb3V0cHV0ID0gbG9va3VwW2JdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIG91dHB1dDtcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGN5O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IERhbmlzaCBbZGFdXG4vLyEgYXV0aG9yIDogVWxyaWsgTmllbHNlbiA6IGh0dHBzOi8vZ2l0aHViLmNvbS9tcmJhc2VcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBkYSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2RhJywge1xuICAgICAgICBtb250aHM6ICdqYW51YXJfZmVicnVhcl9tYXJ0c19hcHJpbF9tYWpfanVuaV9qdWxpX2F1Z3VzdF9zZXB0ZW1iZXJfb2t0b2Jlcl9ub3ZlbWJlcl9kZWNlbWJlcicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdqYW5fZmViX21hcl9hcHJfbWFqX2p1bl9qdWxfYXVnX3NlcF9va3Rfbm92X2RlYycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICdzw7huZGFnX21hbmRhZ190aXJzZGFnX29uc2RhZ190b3JzZGFnX2ZyZWRhZ19sw7hyZGFnJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnc8O4bl9tYW5fdGlyX29uc190b3JfZnJlX2zDuHInLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnc8O4X21hX3RpX29uX3RvX2ZyX2zDuCcuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEw6ICdELiBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRC4gTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkIFtkLl0gRC4gTU1NTSBZWVlZIFtrbC5dIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbaSBkYWcga2wuXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW2kgbW9yZ2VuIGtsLl0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdww6UgZGRkZCBba2wuXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW2kgZ8OlciBrbC5dIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW2ldIGRkZGRbcyBrbC5dIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnb20gJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzIHNpZGVuJyxcbiAgICAgICAgICAgIHM6ICdmw6Ugc2VrdW5kZXInLFxuICAgICAgICAgICAgc3M6ICclZCBzZWt1bmRlcicsXG4gICAgICAgICAgICBtOiAnZXQgbWludXQnLFxuICAgICAgICAgICAgbW06ICclZCBtaW51dHRlcicsXG4gICAgICAgICAgICBoOiAnZW4gdGltZScsXG4gICAgICAgICAgICBoaDogJyVkIHRpbWVyJyxcbiAgICAgICAgICAgIGQ6ICdlbiBkYWcnLFxuICAgICAgICAgICAgZGQ6ICclZCBkYWdlJyxcbiAgICAgICAgICAgIE06ICdlbiBtw6VuZWQnLFxuICAgICAgICAgICAgTU06ICclZCBtw6VuZWRlcicsXG4gICAgICAgICAgICB5OiAnZXQgw6VyJyxcbiAgICAgICAgICAgIHl5OiAnJWQgw6VyJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9XFwuLyxcbiAgICAgICAgb3JkaW5hbDogJyVkLicsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBkYTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBHZXJtYW4gW2RlXVxuLy8hIGF1dGhvciA6IGxsdWNocyA6IGh0dHBzOi8vZ2l0aHViLmNvbS9sbHVjaHNcbi8vISBhdXRob3I6IE1lbmVsaW9uIEVsZW5zw7psZTogaHR0cHM6Ly9naXRodWIuY29tL09pcmVcbi8vISBhdXRob3IgOiBNaWtvbGFqIERhZGVsYSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9taWswMWFqXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICBmdW5jdGlvbiBwcm9jZXNzUmVsYXRpdmVUaW1lKG51bWJlciwgd2l0aG91dFN1ZmZpeCwga2V5LCBpc0Z1dHVyZSkge1xuICAgICAgICB2YXIgZm9ybWF0ID0ge1xuICAgICAgICAgICAgbTogWydlaW5lIE1pbnV0ZScsICdlaW5lciBNaW51dGUnXSxcbiAgICAgICAgICAgIGg6IFsnZWluZSBTdHVuZGUnLCAnZWluZXIgU3R1bmRlJ10sXG4gICAgICAgICAgICBkOiBbJ2VpbiBUYWcnLCAnZWluZW0gVGFnJ10sXG4gICAgICAgICAgICBkZDogW251bWJlciArICcgVGFnZScsIG51bWJlciArICcgVGFnZW4nXSxcbiAgICAgICAgICAgIHc6IFsnZWluZSBXb2NoZScsICdlaW5lciBXb2NoZSddLFxuICAgICAgICAgICAgTTogWydlaW4gTW9uYXQnLCAnZWluZW0gTW9uYXQnXSxcbiAgICAgICAgICAgIE1NOiBbbnVtYmVyICsgJyBNb25hdGUnLCBudW1iZXIgKyAnIE1vbmF0ZW4nXSxcbiAgICAgICAgICAgIHk6IFsnZWluIEphaHInLCAnZWluZW0gSmFociddLFxuICAgICAgICAgICAgeXk6IFtudW1iZXIgKyAnIEphaHJlJywgbnVtYmVyICsgJyBKYWhyZW4nXSxcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggPyBmb3JtYXRba2V5XVswXSA6IGZvcm1hdFtrZXldWzFdO1xuICAgIH1cblxuICAgIHZhciBkZSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2RlJywge1xuICAgICAgICBtb250aHM6ICdKYW51YXJfRmVicnVhcl9Nw6Ryel9BcHJpbF9NYWlfSnVuaV9KdWxpX0F1Z3VzdF9TZXB0ZW1iZXJfT2t0b2Jlcl9Ob3ZlbWJlcl9EZXplbWJlcicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdKYW4uX0ZlYi5fTcOkcnpfQXByLl9NYWlfSnVuaV9KdWxpX0F1Zy5fU2VwLl9Pa3QuX05vdi5fRGV6Licuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXM6ICdTb25udGFnX01vbnRhZ19EaWVuc3RhZ19NaXR0d29jaF9Eb25uZXJzdGFnX0ZyZWl0YWdfU2Ftc3RhZycuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ1NvLl9Nby5fRGkuX01pLl9Eby5fRnIuX1NhLicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdTb19Nb19EaV9NaV9Eb19Gcl9TYScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QuIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdELiBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQuIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW2hldXRlIHVtXSBMVCBbVWhyXScsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICAgICAgbmV4dERheTogJ1ttb3JnZW4gdW1dIExUIFtVaHJdJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbdW1dIExUIFtVaHJdJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbZ2VzdGVybiB1bV0gTFQgW1Vocl0nLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdbbGV0enRlbl0gZGRkZCBbdW1dIExUIFtVaHJdJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdpbiAlcycsXG4gICAgICAgICAgICBwYXN0OiAndm9yICVzJyxcbiAgICAgICAgICAgIHM6ICdlaW4gcGFhciBTZWt1bmRlbicsXG4gICAgICAgICAgICBzczogJyVkIFNla3VuZGVuJyxcbiAgICAgICAgICAgIG06IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBtbTogJyVkIE1pbnV0ZW4nLFxuICAgICAgICAgICAgaDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIGhoOiAnJWQgU3R1bmRlbicsXG4gICAgICAgICAgICBkOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgZGQ6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICB3OiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgd3c6ICclZCBXb2NoZW4nLFxuICAgICAgICAgICAgTTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIE1NOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgeTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIHl5OiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn1cXC4vLFxuICAgICAgICBvcmRpbmFsOiAnJWQuJyxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGRlO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEdlcm1hbiAoQXVzdHJpYSkgW2RlLWF0XVxuLy8hIGF1dGhvciA6IGxsdWNocyA6IGh0dHBzOi8vZ2l0aHViLmNvbS9sbHVjaHNcbi8vISBhdXRob3I6IE1lbmVsaW9uIEVsZW5zw7psZTogaHR0cHM6Ly9naXRodWIuY29tL09pcmVcbi8vISBhdXRob3IgOiBNYXJ0aW4gR3JvbGxlciA6IGh0dHBzOi8vZ2l0aHViLmNvbS9NYWRNR1xuLy8hIGF1dGhvciA6IE1pa29sYWogRGFkZWxhIDogaHR0cHM6Ly9naXRodWIuY29tL21pazAxYWpcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIGZ1bmN0aW9uIHByb2Nlc3NSZWxhdGl2ZVRpbWUobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXksIGlzRnV0dXJlKSB7XG4gICAgICAgIHZhciBmb3JtYXQgPSB7XG4gICAgICAgICAgICBtOiBbJ2VpbmUgTWludXRlJywgJ2VpbmVyIE1pbnV0ZSddLFxuICAgICAgICAgICAgaDogWydlaW5lIFN0dW5kZScsICdlaW5lciBTdHVuZGUnXSxcbiAgICAgICAgICAgIGQ6IFsnZWluIFRhZycsICdlaW5lbSBUYWcnXSxcbiAgICAgICAgICAgIGRkOiBbbnVtYmVyICsgJyBUYWdlJywgbnVtYmVyICsgJyBUYWdlbiddLFxuICAgICAgICAgICAgdzogWydlaW5lIFdvY2hlJywgJ2VpbmVyIFdvY2hlJ10sXG4gICAgICAgICAgICBNOiBbJ2VpbiBNb25hdCcsICdlaW5lbSBNb25hdCddLFxuICAgICAgICAgICAgTU06IFtudW1iZXIgKyAnIE1vbmF0ZScsIG51bWJlciArICcgTW9uYXRlbiddLFxuICAgICAgICAgICAgeTogWydlaW4gSmFocicsICdlaW5lbSBKYWhyJ10sXG4gICAgICAgICAgICB5eTogW251bWJlciArICcgSmFocmUnLCBudW1iZXIgKyAnIEphaHJlbiddLFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCA/IGZvcm1hdFtrZXldWzBdIDogZm9ybWF0W2tleV1bMV07XG4gICAgfVxuXG4gICAgdmFyIGRlQXQgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdkZS1hdCcsIHtcbiAgICAgICAgbW9udGhzOiAnSsOkbm5lcl9GZWJydWFyX03DpHJ6X0FwcmlsX01haV9KdW5pX0p1bGlfQXVndXN0X1NlcHRlbWJlcl9Pa3RvYmVyX05vdmVtYmVyX0RlemVtYmVyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ0rDpG4uX0ZlYi5fTcOkcnpfQXByLl9NYWlfSnVuaV9KdWxpX0F1Zy5fU2VwLl9Pa3QuX05vdi5fRGV6Licuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXM6ICdTb25udGFnX01vbnRhZ19EaWVuc3RhZ19NaXR0d29jaF9Eb25uZXJzdGFnX0ZyZWl0YWdfU2Ftc3RhZycuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ1NvLl9Nby5fRGkuX01pLl9Eby5fRnIuX1NhLicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdTb19Nb19EaV9NaV9Eb19Gcl9TYScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QuIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdELiBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQuIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW2hldXRlIHVtXSBMVCBbVWhyXScsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICAgICAgbmV4dERheTogJ1ttb3JnZW4gdW1dIExUIFtVaHJdJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbdW1dIExUIFtVaHJdJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbZ2VzdGVybiB1bV0gTFQgW1Vocl0nLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdbbGV0enRlbl0gZGRkZCBbdW1dIExUIFtVaHJdJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdpbiAlcycsXG4gICAgICAgICAgICBwYXN0OiAndm9yICVzJyxcbiAgICAgICAgICAgIHM6ICdlaW4gcGFhciBTZWt1bmRlbicsXG4gICAgICAgICAgICBzczogJyVkIFNla3VuZGVuJyxcbiAgICAgICAgICAgIG06IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBtbTogJyVkIE1pbnV0ZW4nLFxuICAgICAgICAgICAgaDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIGhoOiAnJWQgU3R1bmRlbicsXG4gICAgICAgICAgICBkOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgZGQ6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICB3OiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgd3c6ICclZCBXb2NoZW4nLFxuICAgICAgICAgICAgTTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIE1NOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgeTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIHl5OiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn1cXC4vLFxuICAgICAgICBvcmRpbmFsOiAnJWQuJyxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGRlQXQ7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogR2VybWFuIChTd2l0emVybGFuZCkgW2RlLWNoXVxuLy8hIGF1dGhvciA6IHNzY2h1ZWxsZXIgOiBodHRwczovL2dpdGh1Yi5jb20vc3NjaHVlbGxlclxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgZnVuY3Rpb24gcHJvY2Vzc1JlbGF0aXZlVGltZShudW1iZXIsIHdpdGhvdXRTdWZmaXgsIGtleSwgaXNGdXR1cmUpIHtcbiAgICAgICAgdmFyIGZvcm1hdCA9IHtcbiAgICAgICAgICAgIG06IFsnZWluZSBNaW51dGUnLCAnZWluZXIgTWludXRlJ10sXG4gICAgICAgICAgICBoOiBbJ2VpbmUgU3R1bmRlJywgJ2VpbmVyIFN0dW5kZSddLFxuICAgICAgICAgICAgZDogWydlaW4gVGFnJywgJ2VpbmVtIFRhZyddLFxuICAgICAgICAgICAgZGQ6IFtudW1iZXIgKyAnIFRhZ2UnLCBudW1iZXIgKyAnIFRhZ2VuJ10sXG4gICAgICAgICAgICB3OiBbJ2VpbmUgV29jaGUnLCAnZWluZXIgV29jaGUnXSxcbiAgICAgICAgICAgIE06IFsnZWluIE1vbmF0JywgJ2VpbmVtIE1vbmF0J10sXG4gICAgICAgICAgICBNTTogW251bWJlciArICcgTW9uYXRlJywgbnVtYmVyICsgJyBNb25hdGVuJ10sXG4gICAgICAgICAgICB5OiBbJ2VpbiBKYWhyJywgJ2VpbmVtIEphaHInXSxcbiAgICAgICAgICAgIHl5OiBbbnVtYmVyICsgJyBKYWhyZScsIG51bWJlciArICcgSmFocmVuJ10sXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4ID8gZm9ybWF0W2tleV1bMF0gOiBmb3JtYXRba2V5XVsxXTtcbiAgICB9XG5cbiAgICB2YXIgZGVDaCA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2RlLWNoJywge1xuICAgICAgICBtb250aHM6ICdKYW51YXJfRmVicnVhcl9Nw6Ryel9BcHJpbF9NYWlfSnVuaV9KdWxpX0F1Z3VzdF9TZXB0ZW1iZXJfT2t0b2Jlcl9Ob3ZlbWJlcl9EZXplbWJlcicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdKYW4uX0ZlYi5fTcOkcnpfQXByLl9NYWlfSnVuaV9KdWxpX0F1Zy5fU2VwLl9Pa3QuX05vdi5fRGV6Licuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXM6ICdTb25udGFnX01vbnRhZ19EaWVuc3RhZ19NaXR0d29jaF9Eb25uZXJzdGFnX0ZyZWl0YWdfU2Ftc3RhZycuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ1NvX01vX0RpX01pX0RvX0ZyX1NhJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ1NvX01vX0RpX01pX0RvX0ZyX1NhJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRC4gTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QuIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRC4gTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbaGV1dGUgdW1dIExUIFtVaHJdJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW21vcmdlbiB1bV0gTFQgW1Vocl0nLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFt1bV0gTFQgW1Vocl0nLFxuICAgICAgICAgICAgbGFzdERheTogJ1tnZXN0ZXJuIHVtXSBMVCBbVWhyXScsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1tsZXR6dGVuXSBkZGRkIFt1bV0gTFQgW1Vocl0nLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ2luICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICd2b3IgJXMnLFxuICAgICAgICAgICAgczogJ2VpbiBwYWFyIFNla3VuZGVuJyxcbiAgICAgICAgICAgIHNzOiAnJWQgU2VrdW5kZW4nLFxuICAgICAgICAgICAgbTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIG1tOiAnJWQgTWludXRlbicsXG4gICAgICAgICAgICBoOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgaGg6ICclZCBTdHVuZGVuJyxcbiAgICAgICAgICAgIGQ6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBkZDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIHc6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICB3dzogJyVkIFdvY2hlbicsXG4gICAgICAgICAgICBNOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgTU06IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICB5OiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgeXk6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfVxcLi8sXG4gICAgICAgIG9yZGluYWw6ICclZC4nLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZGVDaDtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBNYWxkaXZpYW4gW2R2XVxuLy8hIGF1dGhvciA6IEphd2lzaCBIYW1lZWQgOiBodHRwczovL2dpdGh1Yi5jb20vamF3aXNoXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgbW9udGhzID0gW1xuICAgICAgICAgICAgJ96W3qzegt6q3ofept6D3qknLFxuICAgICAgICAgICAgJ96K3qzehN6w3oPeqt6H3qbeg96pJyxcbiAgICAgICAgICAgICfeid6n3oPeqN6X3qonLFxuICAgICAgICAgICAgJ96H3q3eld6w3oPeqd6N3qonLFxuICAgICAgICAgICAgJ96J3q0nLFxuICAgICAgICAgICAgJ96W3qvegt6wJyxcbiAgICAgICAgICAgICfelt6q3o3ept6H3qgnLFxuICAgICAgICAgICAgJ96H3q/ejt6m3pDesN6T3qonLFxuICAgICAgICAgICAgJ96Q3qzeld6w3pPerN6J3rDehN6m3oPeqicsXG4gICAgICAgICAgICAn3ofert6G3rDek96v3oTept6D3qonLFxuICAgICAgICAgICAgJ96C3q7eiN6s3onesN6E3qbeg96qJyxcbiAgICAgICAgICAgICfekd6o3pDerN6J3rDehN6m3oPeqicsXG4gICAgICAgIF0sXG4gICAgICAgIHdlZWtkYXlzID0gW1xuICAgICAgICAgICAgJ96H3qfei96o3ofesN6M3qYnLFxuICAgICAgICAgICAgJ96A3q/eid6mJyxcbiAgICAgICAgICAgICfeh96m3oLesN6O3qfeg96mJyxcbiAgICAgICAgICAgICfehN6q3ovepicsXG4gICAgICAgICAgICAn3oTeqt6D3qfekN6w3orept6M3qgnLFxuICAgICAgICAgICAgJ96A3qreht6q3oPeqicsXG4gICAgICAgICAgICAn3oDert6C3qjegN6o3oPeqicsXG4gICAgICAgIF07XG5cbiAgICB2YXIgZHYgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdkdicsIHtcbiAgICAgICAgbW9udGhzOiBtb250aHMsXG4gICAgICAgIG1vbnRoc1Nob3J0OiBtb250aHMsXG4gICAgICAgIHdlZWtkYXlzOiB3ZWVrZGF5cyxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogd2Vla2RheXMsXG4gICAgICAgIHdlZWtkYXlzTWluOiAn3ofep96L3qhf3oDer96J3qZf3ofept6C3rBf3oTeqt6L3qZf3oTeqt6D3qdf3oDeqt6G3qpf3oDert6C3qgnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdEL00vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL96J3oZ83oneii8sXG4gICAgICAgIGlzUE06IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuICfeid6KJyA9PT0gaW5wdXQ7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDEyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfeid6GJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfeid6KJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb3oneqN6H3qbei96qXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW96J3qfei96m3onep10gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb3ofeqN6H3rDelN6sXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1veit6n3ofeqN6M3qreiN6oXSBkZGRkIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAn3ozerN6D3q3ejt6m3ofeqCAlcycsXG4gICAgICAgICAgICBwYXN0OiAn3obeqt6D3qjegt6wICVzJyxcbiAgICAgICAgICAgIHM6ICfekN6o3obeqt6C3rDejN6q3obert6F3qzeh96wJyxcbiAgICAgICAgICAgIHNzOiAnZCUg3pDeqN6G3qregt6w3ozeqicsXG4gICAgICAgICAgICBtOiAn3oneqN6C3qjek96s3ofesCcsXG4gICAgICAgICAgICBtbTogJ96J3qjegt6o3pPeqiAlZCcsXG4gICAgICAgICAgICBoOiAn3o7ept6R3qjeh96o3oPerN6H3rAnLFxuICAgICAgICAgICAgaGg6ICfejt6m3pHeqN6H3qjeg96qICVkJyxcbiAgICAgICAgICAgIGQ6ICfei96q3ojept6A3qzeh96wJyxcbiAgICAgICAgICAgIGRkOiAn3oveqt6I3qbekN6wICVkJyxcbiAgICAgICAgICAgIE06ICfeid6m3oDerN6H3rAnLFxuICAgICAgICAgICAgTU06ICfeid6m3pDesCAlZCcsXG4gICAgICAgICAgICB5OiAn3ofept6A3qbeg96s3ofesCcsXG4gICAgICAgICAgICB5eTogJ96H3qbegN6m3oPeqiAlZCcsXG4gICAgICAgIH0sXG4gICAgICAgIHByZXBhcnNlOiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL9iML2csICcsJyk7XG4gICAgICAgIH0sXG4gICAgICAgIHBvc3Rmb3JtYXQ6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgvLC9nLCAn2IwnKTtcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiA3LCAvLyBTdW5kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogMTIsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDEydGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZHY7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogR3JlZWsgW2VsXVxuLy8hIGF1dGhvciA6IEFnZ2Vsb3MgS2FyYWxpYXMgOiBodHRwczovL2dpdGh1Yi5jb20vbWVoaWVsXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICBmdW5jdGlvbiBpc0Z1bmN0aW9uKGlucHV0KSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAodHlwZW9mIEZ1bmN0aW9uICE9PSAndW5kZWZpbmVkJyAmJiBpbnB1dCBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB8fFxuICAgICAgICAgICAgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGlucHV0KSA9PT0gJ1tvYmplY3QgRnVuY3Rpb25dJ1xuICAgICAgICApO1xuICAgIH1cblxuICAgIHZhciBlbCA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2VsJywge1xuICAgICAgICBtb250aHNOb21pbmF0aXZlRWw6ICfOmc6xzr3Ov8+FzqzPgc65zr/Pgl/Ops61zrLPgc6/z4XOrM+BzrnOv8+CX86czqzPgc+EzrnOv8+CX86Rz4DPgc6vzrvOuc6/z4JfzpzOrM65zr/Pgl/Omc6/z43Ovc65zr/Pgl/Omc6/z43Ou865zr/Pgl/Okc+NzrPOv8+Fz4PPhM6/z4JfzqPOtc+Az4TOrc68zrLPgc65zr/Pgl/On866z4TPjs6yz4HOuc6/z4Jfzp3Ov86tzrzOss+BzrnOv8+CX86UzrXOus6tzrzOss+BzrnOv8+CJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNHZW5pdGl2ZUVsOiAnzpnOsc69zr/Phc6xz4HOr86/z4VfzqbOtc6yz4HOv8+FzrHPgc6vzr/PhV/OnM6xz4HPhM6vzr/PhV/Okc+Az4HOuc67zq/Ov8+FX86czrHOkM6/z4VfzpnOv8+Fzr3Or86/z4VfzpnOv8+FzrvOr86/z4VfzpHPhc6zzr/Pjc+Dz4TOv8+FX86jzrXPgM+EzrXOvM6yz4HOr86/z4Vfzp/Ous+Ez4nOss+Bzq/Ov8+FX86dzr/Otc68zrLPgc6vzr/PhV/OlM61zrrOtc68zrLPgc6vzr/PhScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzOiBmdW5jdGlvbiAobW9tZW50VG9Gb3JtYXQsIGZvcm1hdCkge1xuICAgICAgICAgICAgaWYgKCFtb21lbnRUb0Zvcm1hdCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9tb250aHNOb21pbmF0aXZlRWw7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgICAgIHR5cGVvZiBmb3JtYXQgPT09ICdzdHJpbmcnICYmXG4gICAgICAgICAgICAgICAgL0QvLnRlc3QoZm9ybWF0LnN1YnN0cmluZygwLCBmb3JtYXQuaW5kZXhPZignTU1NTScpKSlcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIC8vIGlmIHRoZXJlIGlzIGEgZGF5IG51bWJlciBiZWZvcmUgJ01NTU0nXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21vbnRoc0dlbml0aXZlRWxbbW9tZW50VG9Gb3JtYXQubW9udGgoKV07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9tb250aHNOb21pbmF0aXZlRWxbbW9tZW50VG9Gb3JtYXQubW9udGgoKV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnzpnOsc69X86mzrXOsl/OnM6xz4FfzpHPgM+BX86czrHPil/Omc6/z4XOvV/Omc6/z4XOu1/Okc+FzrNfzqPOtc+AX86fzrrPhF/Onc6/zrVfzpTOtc66Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ86az4XPgc65zrHOus6uX86UzrXPhc+Ezq3Pgc6xX86kz4HOr8+EzrdfzqTOtc+EzqzPgc+EzrdfzqDOrc68z4DPhM63X86gzrHPgc6xz4POus61z4XOrl/Oo86szrLOss6xz4TOvycuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ86az4XPgV/OlM61z4VfzqTPgc65X86kzrXPhF/OoM61zrxfzqDOsc+BX86jzrHOsicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfOms+FX86UzrVfzqTPgV/OpM61X86gzrVfzqDOsV/Oo86xJy5zcGxpdCgnXycpLFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXJzLCBtaW51dGVzLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91cnMgPiAxMSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpc0xvd2VyID8gJ868zrwnIDogJ86czpwnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNMb3dlciA/ICfPgM68JyA6ICfOoM6cJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgaXNQTTogZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gKGlucHV0ICsgJycpLnRvTG93ZXJDYXNlKClbMF0gPT09ICfOvCc7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC9bzqDOnF1cXC4/zpw/XFwuPy9pLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdoOm1tIEEnLFxuICAgICAgICAgICAgTFRTOiAnaDptbTpzcyBBJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgaDptbSBBJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSBoOm1tIEEnLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhckVsOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW86jzq7OvM61z4HOsSB7fV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vOkc+Nz4HOuc6/IHt9XSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW3t9XSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW86nzrjOtc+CIHt9XSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAodGhpcy5kYXkoKSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1vPhM6/IM+Az4HOv863zrPOv8+NzrzOtc69zr9dIGRkZGQgW3t9XSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1vPhM63zr0gz4DPgc6/zrfOs86/z43OvM61zr3Ot10gZGRkZCBbe31dIExUJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IGZ1bmN0aW9uIChrZXksIG1vbSkge1xuICAgICAgICAgICAgdmFyIG91dHB1dCA9IHRoaXMuX2NhbGVuZGFyRWxba2V5XSxcbiAgICAgICAgICAgICAgICBob3VycyA9IG1vbSAmJiBtb20uaG91cnMoKTtcbiAgICAgICAgICAgIGlmIChpc0Z1bmN0aW9uKG91dHB1dCkpIHtcbiAgICAgICAgICAgICAgICBvdXRwdXQgPSBvdXRwdXQuYXBwbHkobW9tKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBvdXRwdXQucmVwbGFjZSgne30nLCBob3VycyAlIDEyID09PSAxID8gJ8+Dz4TOtycgOiAnz4PPhM65z4InKTtcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICfPg861ICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyDPgM+BzrnOvScsXG4gICAgICAgICAgICBzOiAnzrvOr86zzrEgzrTOtc+Fz4TOtc+Bz4zOu861z4DPhM6xJyxcbiAgICAgICAgICAgIHNzOiAnJWQgzrTOtc+Fz4TOtc+Bz4zOu861z4DPhM6xJyxcbiAgICAgICAgICAgIG06ICfOrc69zrEgzrvOtc+Az4TPjCcsXG4gICAgICAgICAgICBtbTogJyVkIM67zrXPgM+EzqwnLFxuICAgICAgICAgICAgaDogJ868zq/OsSDPjs+BzrEnLFxuICAgICAgICAgICAgaGg6ICclZCDPjs+BzrXPgicsXG4gICAgICAgICAgICBkOiAnzrzOr86xIM68zq3Pgc6xJyxcbiAgICAgICAgICAgIGRkOiAnJWQgzrzOrc+BzrXPgicsXG4gICAgICAgICAgICBNOiAnzq3Ovc6xz4IgzrzOrs69zrHPgicsXG4gICAgICAgICAgICBNTTogJyVkIM68zq7Ovc61z4InLFxuICAgICAgICAgICAgeTogJ86tzr3Osc+CIM+Hz4HPjM69zr/PgicsXG4gICAgICAgICAgICB5eTogJyVkIM+Hz4HPjM69zrnOsScsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfc63LyxcbiAgICAgICAgb3JkaW5hbDogJyVkzrcnLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0c3QgaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZWw7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogRW5nbGlzaCAoQXVzdHJhbGlhKSBbZW4tYXVdXG4vLyEgYXV0aG9yIDogSmFyZWQgTW9yc2UgOiBodHRwczovL2dpdGh1Yi5jb20vamFyY29hbFxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIGVuQXUgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdlbi1hdScsIHtcbiAgICAgICAgbW9udGhzOiAnSmFudWFyeV9GZWJydWFyeV9NYXJjaF9BcHJpbF9NYXlfSnVuZV9KdWx5X0F1Z3VzdF9TZXB0ZW1iZXJfT2N0b2Jlcl9Ob3ZlbWJlcl9EZWNlbWJlcicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdKYW5fRmViX01hcl9BcHJfTWF5X0p1bl9KdWxfQXVnX1NlcF9PY3RfTm92X0RlYycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICdTdW5kYXlfTW9uZGF5X1R1ZXNkYXlfV2VkbmVzZGF5X1RodXJzZGF5X0ZyaWRheV9TYXR1cmRheScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ1N1bl9Nb25fVHVlX1dlZF9UaHVfRnJpX1NhdCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdTdV9Nb19UdV9XZV9UaF9Gcl9TYScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnaDptbSBBJyxcbiAgICAgICAgICAgIExUUzogJ2g6bW06c3MgQScsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIGg6bW0gQScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgaDptbSBBJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbVG9kYXkgYXRdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbVG9tb3Jyb3cgYXRdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbYXRdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbWWVzdGVyZGF5IGF0XSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1tMYXN0XSBkZGRkIFthdF0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdpbiAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMgYWdvJyxcbiAgICAgICAgICAgIHM6ICdhIGZldyBzZWNvbmRzJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2Vjb25kcycsXG4gICAgICAgICAgICBtOiAnYSBtaW51dGUnLFxuICAgICAgICAgICAgbW06ICclZCBtaW51dGVzJyxcbiAgICAgICAgICAgIGg6ICdhbiBob3VyJyxcbiAgICAgICAgICAgIGhoOiAnJWQgaG91cnMnLFxuICAgICAgICAgICAgZDogJ2EgZGF5JyxcbiAgICAgICAgICAgIGRkOiAnJWQgZGF5cycsXG4gICAgICAgICAgICBNOiAnYSBtb250aCcsXG4gICAgICAgICAgICBNTTogJyVkIG1vbnRocycsXG4gICAgICAgICAgICB5OiAnYSB5ZWFyJyxcbiAgICAgICAgICAgIHl5OiAnJWQgeWVhcnMnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0oc3R8bmR8cmR8dGgpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgdmFyIGIgPSBudW1iZXIgJSAxMCxcbiAgICAgICAgICAgICAgICBvdXRwdXQgPVxuICAgICAgICAgICAgICAgICAgICB+figobnVtYmVyICUgMTAwKSAvIDEwKSA9PT0gMVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAndGgnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGIgPT09IDFcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ3N0J1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBiID09PSAyXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICduZCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYiA9PT0gM1xuICAgICAgICAgICAgICAgICAgICAgICAgPyAncmQnXG4gICAgICAgICAgICAgICAgICAgICAgICA6ICd0aCc7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgb3V0cHV0O1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDAsIC8vIFN1bmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZW5BdTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBFbmdsaXNoIChDYW5hZGEpIFtlbi1jYV1cbi8vISBhdXRob3IgOiBKb25hdGhhbiBBYm91cmJpaCA6IGh0dHBzOi8vZ2l0aHViLmNvbS9qb25iY2FcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBlbkNhID0gbW9tZW50LmRlZmluZUxvY2FsZSgnZW4tY2EnLCB7XG4gICAgICAgIG1vbnRoczogJ0phbnVhcnlfRmVicnVhcnlfTWFyY2hfQXByaWxfTWF5X0p1bmVfSnVseV9BdWd1c3RfU2VwdGVtYmVyX09jdG9iZXJfTm92ZW1iZXJfRGVjZW1iZXInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnSmFuX0ZlYl9NYXJfQXByX01heV9KdW5fSnVsX0F1Z19TZXBfT2N0X05vdl9EZWMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAnU3VuZGF5X01vbmRheV9UdWVzZGF5X1dlZG5lc2RheV9UaHVyc2RheV9GcmlkYXlfU2F0dXJkYXknLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdTdW5fTW9uX1R1ZV9XZWRfVGh1X0ZyaV9TYXQnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnU3VfTW9fVHVfV2VfVGhfRnJfU2EnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ2g6bW0gQScsXG4gICAgICAgICAgICBMVFM6ICdoOm1tOnNzIEEnLFxuICAgICAgICAgICAgTDogJ1lZWVktTU0tREQnLFxuICAgICAgICAgICAgTEw6ICdNTU1NIEQsIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnTU1NTSBELCBZWVlZIGg6bW0gQScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgTU1NTSBELCBZWVlZIGg6bW0gQScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW1RvZGF5IGF0XSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW1RvbW9ycm93IGF0XSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW2F0XSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW1llc3RlcmRheSBhdF0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdbTGFzdF0gZGRkZCBbYXRdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnaW4gJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzIGFnbycsXG4gICAgICAgICAgICBzOiAnYSBmZXcgc2Vjb25kcycsXG4gICAgICAgICAgICBzczogJyVkIHNlY29uZHMnLFxuICAgICAgICAgICAgbTogJ2EgbWludXRlJyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWludXRlcycsXG4gICAgICAgICAgICBoOiAnYW4gaG91cicsXG4gICAgICAgICAgICBoaDogJyVkIGhvdXJzJyxcbiAgICAgICAgICAgIGQ6ICdhIGRheScsXG4gICAgICAgICAgICBkZDogJyVkIGRheXMnLFxuICAgICAgICAgICAgTTogJ2EgbW9udGgnLFxuICAgICAgICAgICAgTU06ICclZCBtb250aHMnLFxuICAgICAgICAgICAgeTogJ2EgeWVhcicsXG4gICAgICAgICAgICB5eTogJyVkIHllYXJzJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9KHN0fG5kfHJkfHRoKS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIHZhciBiID0gbnVtYmVyICUgMTAsXG4gICAgICAgICAgICAgICAgb3V0cHV0ID1cbiAgICAgICAgICAgICAgICAgICAgfn4oKG51bWJlciAlIDEwMCkgLyAxMCkgPT09IDFcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ3RoJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBiID09PSAxXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICdzdCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYiA9PT0gMlxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnbmQnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGIgPT09IDNcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ3JkJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiAndGgnO1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIG91dHB1dDtcbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBlbkNhO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEVuZ2xpc2ggKFVuaXRlZCBLaW5nZG9tKSBbZW4tZ2JdXG4vLyEgYXV0aG9yIDogQ2hyaXMgR2VkcmltIDogaHR0cHM6Ly9naXRodWIuY29tL2NocmlzZ2VkcmltXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgZW5HYiA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2VuLWdiJywge1xuICAgICAgICBtb250aHM6ICdKYW51YXJ5X0ZlYnJ1YXJ5X01hcmNoX0FwcmlsX01heV9KdW5lX0p1bHlfQXVndXN0X1NlcHRlbWJlcl9PY3RvYmVyX05vdmVtYmVyX0RlY2VtYmVyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ0phbl9GZWJfTWFyX0Fwcl9NYXlfSnVuX0p1bF9BdWdfU2VwX09jdF9Ob3ZfRGVjJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ1N1bmRheV9Nb25kYXlfVHVlc2RheV9XZWRuZXNkYXlfVGh1cnNkYXlfRnJpZGF5X1NhdHVyZGF5Jy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnU3VuX01vbl9UdWVfV2VkX1RodV9GcmlfU2F0Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ1N1X01vX1R1X1dlX1RoX0ZyX1NhJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW1RvZGF5IGF0XSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW1RvbW9ycm93IGF0XSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW2F0XSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW1llc3RlcmRheSBhdF0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdbTGFzdF0gZGRkZCBbYXRdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnaW4gJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzIGFnbycsXG4gICAgICAgICAgICBzOiAnYSBmZXcgc2Vjb25kcycsXG4gICAgICAgICAgICBzczogJyVkIHNlY29uZHMnLFxuICAgICAgICAgICAgbTogJ2EgbWludXRlJyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWludXRlcycsXG4gICAgICAgICAgICBoOiAnYW4gaG91cicsXG4gICAgICAgICAgICBoaDogJyVkIGhvdXJzJyxcbiAgICAgICAgICAgIGQ6ICdhIGRheScsXG4gICAgICAgICAgICBkZDogJyVkIGRheXMnLFxuICAgICAgICAgICAgTTogJ2EgbW9udGgnLFxuICAgICAgICAgICAgTU06ICclZCBtb250aHMnLFxuICAgICAgICAgICAgeTogJ2EgeWVhcicsXG4gICAgICAgICAgICB5eTogJyVkIHllYXJzJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9KHN0fG5kfHJkfHRoKS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIHZhciBiID0gbnVtYmVyICUgMTAsXG4gICAgICAgICAgICAgICAgb3V0cHV0ID1cbiAgICAgICAgICAgICAgICAgICAgfn4oKG51bWJlciAlIDEwMCkgLyAxMCkgPT09IDFcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ3RoJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBiID09PSAxXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICdzdCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYiA9PT0gMlxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnbmQnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGIgPT09IDNcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ3JkJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiAndGgnO1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIG91dHB1dDtcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGVuR2I7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogRW5nbGlzaCAoSXJlbGFuZCkgW2VuLWllXVxuLy8hIGF1dGhvciA6IENocmlzIENhcnRsaWRnZSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc2NhcnRsaWRnZVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIGVuSWUgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdlbi1pZScsIHtcbiAgICAgICAgbW9udGhzOiAnSmFudWFyeV9GZWJydWFyeV9NYXJjaF9BcHJpbF9NYXlfSnVuZV9KdWx5X0F1Z3VzdF9TZXB0ZW1iZXJfT2N0b2Jlcl9Ob3ZlbWJlcl9EZWNlbWJlcicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdKYW5fRmViX01hcl9BcHJfTWF5X0p1bl9KdWxfQXVnX1NlcF9PY3RfTm92X0RlYycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICdTdW5kYXlfTW9uZGF5X1R1ZXNkYXlfV2VkbmVzZGF5X1RodXJzZGF5X0ZyaWRheV9TYXR1cmRheScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ1N1bl9Nb25fVHVlX1dlZF9UaHVfRnJpX1NhdCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdTdV9Nb19UdV9XZV9UaF9Gcl9TYScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW1RvZGF5IGF0XSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW1RvbW9ycm93IGF0XSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW2F0XSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW1llc3RlcmRheSBhdF0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdbTGFzdF0gZGRkZCBbYXRdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnaW4gJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzIGFnbycsXG4gICAgICAgICAgICBzOiAnYSBmZXcgc2Vjb25kcycsXG4gICAgICAgICAgICBzczogJyVkIHNlY29uZHMnLFxuICAgICAgICAgICAgbTogJ2EgbWludXRlJyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWludXRlcycsXG4gICAgICAgICAgICBoOiAnYW4gaG91cicsXG4gICAgICAgICAgICBoaDogJyVkIGhvdXJzJyxcbiAgICAgICAgICAgIGQ6ICdhIGRheScsXG4gICAgICAgICAgICBkZDogJyVkIGRheXMnLFxuICAgICAgICAgICAgTTogJ2EgbW9udGgnLFxuICAgICAgICAgICAgTU06ICclZCBtb250aHMnLFxuICAgICAgICAgICAgeTogJ2EgeWVhcicsXG4gICAgICAgICAgICB5eTogJyVkIHllYXJzJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9KHN0fG5kfHJkfHRoKS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIHZhciBiID0gbnVtYmVyICUgMTAsXG4gICAgICAgICAgICAgICAgb3V0cHV0ID1cbiAgICAgICAgICAgICAgICAgICAgfn4oKG51bWJlciAlIDEwMCkgLyAxMCkgPT09IDFcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ3RoJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBiID09PSAxXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICdzdCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYiA9PT0gMlxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnbmQnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGIgPT09IDNcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ3JkJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiAndGgnO1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIG91dHB1dDtcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGVuSWU7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogRW5nbGlzaCAoSXNyYWVsKSBbZW4taWxdXG4vLyEgYXV0aG9yIDogQ2hyaXMgR2VkcmltIDogaHR0cHM6Ly9naXRodWIuY29tL2NocmlzZ2VkcmltXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgZW5JbCA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2VuLWlsJywge1xuICAgICAgICBtb250aHM6ICdKYW51YXJ5X0ZlYnJ1YXJ5X01hcmNoX0FwcmlsX01heV9KdW5lX0p1bHlfQXVndXN0X1NlcHRlbWJlcl9PY3RvYmVyX05vdmVtYmVyX0RlY2VtYmVyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ0phbl9GZWJfTWFyX0Fwcl9NYXlfSnVuX0p1bF9BdWdfU2VwX09jdF9Ob3ZfRGVjJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ1N1bmRheV9Nb25kYXlfVHVlc2RheV9XZWRuZXNkYXlfVGh1cnNkYXlfRnJpZGF5X1NhdHVyZGF5Jy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnU3VuX01vbl9UdWVfV2VkX1RodV9GcmlfU2F0Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ1N1X01vX1R1X1dlX1RoX0ZyX1NhJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW1RvZGF5IGF0XSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW1RvbW9ycm93IGF0XSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW2F0XSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW1llc3RlcmRheSBhdF0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdbTGFzdF0gZGRkZCBbYXRdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnaW4gJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzIGFnbycsXG4gICAgICAgICAgICBzOiAnYSBmZXcgc2Vjb25kcycsXG4gICAgICAgICAgICBzczogJyVkIHNlY29uZHMnLFxuICAgICAgICAgICAgbTogJ2EgbWludXRlJyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWludXRlcycsXG4gICAgICAgICAgICBoOiAnYW4gaG91cicsXG4gICAgICAgICAgICBoaDogJyVkIGhvdXJzJyxcbiAgICAgICAgICAgIGQ6ICdhIGRheScsXG4gICAgICAgICAgICBkZDogJyVkIGRheXMnLFxuICAgICAgICAgICAgTTogJ2EgbW9udGgnLFxuICAgICAgICAgICAgTU06ICclZCBtb250aHMnLFxuICAgICAgICAgICAgeTogJ2EgeWVhcicsXG4gICAgICAgICAgICB5eTogJyVkIHllYXJzJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9KHN0fG5kfHJkfHRoKS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIHZhciBiID0gbnVtYmVyICUgMTAsXG4gICAgICAgICAgICAgICAgb3V0cHV0ID1cbiAgICAgICAgICAgICAgICAgICAgfn4oKG51bWJlciAlIDEwMCkgLyAxMCkgPT09IDFcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ3RoJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBiID09PSAxXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICdzdCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYiA9PT0gMlxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnbmQnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGIgPT09IDNcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ3JkJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiAndGgnO1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIG91dHB1dDtcbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBlbklsO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEVuZ2xpc2ggKEluZGlhKSBbZW4taW5dXG4vLyEgYXV0aG9yIDogSmF0aW4gQWdyYXdhbCA6IGh0dHBzOi8vZ2l0aHViLmNvbS9qYXRpbmFnMjJcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBlbkluID0gbW9tZW50LmRlZmluZUxvY2FsZSgnZW4taW4nLCB7XG4gICAgICAgIG1vbnRoczogJ0phbnVhcnlfRmVicnVhcnlfTWFyY2hfQXByaWxfTWF5X0p1bmVfSnVseV9BdWd1c3RfU2VwdGVtYmVyX09jdG9iZXJfTm92ZW1iZXJfRGVjZW1iZXInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnSmFuX0ZlYl9NYXJfQXByX01heV9KdW5fSnVsX0F1Z19TZXBfT2N0X05vdl9EZWMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAnU3VuZGF5X01vbmRheV9UdWVzZGF5X1dlZG5lc2RheV9UaHVyc2RheV9GcmlkYXlfU2F0dXJkYXknLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdTdW5fTW9uX1R1ZV9XZWRfVGh1X0ZyaV9TYXQnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnU3VfTW9fVHVfV2VfVGhfRnJfU2EnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ2g6bW0gQScsXG4gICAgICAgICAgICBMVFM6ICdoOm1tOnNzIEEnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBoOm1tIEEnLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZIGg6bW0gQScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW1RvZGF5IGF0XSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW1RvbW9ycm93IGF0XSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW2F0XSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW1llc3RlcmRheSBhdF0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdbTGFzdF0gZGRkZCBbYXRdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnaW4gJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzIGFnbycsXG4gICAgICAgICAgICBzOiAnYSBmZXcgc2Vjb25kcycsXG4gICAgICAgICAgICBzczogJyVkIHNlY29uZHMnLFxuICAgICAgICAgICAgbTogJ2EgbWludXRlJyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWludXRlcycsXG4gICAgICAgICAgICBoOiAnYW4gaG91cicsXG4gICAgICAgICAgICBoaDogJyVkIGhvdXJzJyxcbiAgICAgICAgICAgIGQ6ICdhIGRheScsXG4gICAgICAgICAgICBkZDogJyVkIGRheXMnLFxuICAgICAgICAgICAgTTogJ2EgbW9udGgnLFxuICAgICAgICAgICAgTU06ICclZCBtb250aHMnLFxuICAgICAgICAgICAgeTogJ2EgeWVhcicsXG4gICAgICAgICAgICB5eTogJyVkIHllYXJzJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9KHN0fG5kfHJkfHRoKS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIHZhciBiID0gbnVtYmVyICUgMTAsXG4gICAgICAgICAgICAgICAgb3V0cHV0ID1cbiAgICAgICAgICAgICAgICAgICAgfn4oKG51bWJlciAlIDEwMCkgLyAxMCkgPT09IDFcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ3RoJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBiID09PSAxXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICdzdCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYiA9PT0gMlxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnbmQnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGIgPT09IDNcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ3JkJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiAndGgnO1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIG91dHB1dDtcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAwLCAvLyBTdW5kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNiwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gMXN0IGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGVuSW47XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogRW5nbGlzaCAoTmV3IFplYWxhbmQpIFtlbi1uel1cbi8vISBhdXRob3IgOiBMdWtlIE1jR3JlZ29yIDogaHR0cHM6Ly9naXRodWIuY29tL2x1a2VtY2dyZWdvclxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIGVuTnogPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdlbi1ueicsIHtcbiAgICAgICAgbW9udGhzOiAnSmFudWFyeV9GZWJydWFyeV9NYXJjaF9BcHJpbF9NYXlfSnVuZV9KdWx5X0F1Z3VzdF9TZXB0ZW1iZXJfT2N0b2Jlcl9Ob3ZlbWJlcl9EZWNlbWJlcicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdKYW5fRmViX01hcl9BcHJfTWF5X0p1bl9KdWxfQXVnX1NlcF9PY3RfTm92X0RlYycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICdTdW5kYXlfTW9uZGF5X1R1ZXNkYXlfV2VkbmVzZGF5X1RodXJzZGF5X0ZyaWRheV9TYXR1cmRheScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ1N1bl9Nb25fVHVlX1dlZF9UaHVfRnJpX1NhdCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdTdV9Nb19UdV9XZV9UaF9Gcl9TYScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnaDptbSBBJyxcbiAgICAgICAgICAgIExUUzogJ2g6bW06c3MgQScsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIGg6bW0gQScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgaDptbSBBJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbVG9kYXkgYXRdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbVG9tb3Jyb3cgYXRdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbYXRdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbWWVzdGVyZGF5IGF0XSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1tMYXN0XSBkZGRkIFthdF0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdpbiAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMgYWdvJyxcbiAgICAgICAgICAgIHM6ICdhIGZldyBzZWNvbmRzJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2Vjb25kcycsXG4gICAgICAgICAgICBtOiAnYSBtaW51dGUnLFxuICAgICAgICAgICAgbW06ICclZCBtaW51dGVzJyxcbiAgICAgICAgICAgIGg6ICdhbiBob3VyJyxcbiAgICAgICAgICAgIGhoOiAnJWQgaG91cnMnLFxuICAgICAgICAgICAgZDogJ2EgZGF5JyxcbiAgICAgICAgICAgIGRkOiAnJWQgZGF5cycsXG4gICAgICAgICAgICBNOiAnYSBtb250aCcsXG4gICAgICAgICAgICBNTTogJyVkIG1vbnRocycsXG4gICAgICAgICAgICB5OiAnYSB5ZWFyJyxcbiAgICAgICAgICAgIHl5OiAnJWQgeWVhcnMnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0oc3R8bmR8cmR8dGgpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgdmFyIGIgPSBudW1iZXIgJSAxMCxcbiAgICAgICAgICAgICAgICBvdXRwdXQgPVxuICAgICAgICAgICAgICAgICAgICB+figobnVtYmVyICUgMTAwKSAvIDEwKSA9PT0gMVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAndGgnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGIgPT09IDFcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ3N0J1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBiID09PSAyXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICduZCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYiA9PT0gM1xuICAgICAgICAgICAgICAgICAgICAgICAgPyAncmQnXG4gICAgICAgICAgICAgICAgICAgICAgICA6ICd0aCc7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgb3V0cHV0O1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZW5OejtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBFbmdsaXNoIChTaW5nYXBvcmUpIFtlbi1zZ11cbi8vISBhdXRob3IgOiBNYXR0aGV3IENhc3RyaWxsb24tTWFkcmlnYWwgOiBodHRwczovL2dpdGh1Yi5jb20vdGVjaGRpbWVuc2lvblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIGVuU2cgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdlbi1zZycsIHtcbiAgICAgICAgbW9udGhzOiAnSmFudWFyeV9GZWJydWFyeV9NYXJjaF9BcHJpbF9NYXlfSnVuZV9KdWx5X0F1Z3VzdF9TZXB0ZW1iZXJfT2N0b2Jlcl9Ob3ZlbWJlcl9EZWNlbWJlcicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdKYW5fRmViX01hcl9BcHJfTWF5X0p1bl9KdWxfQXVnX1NlcF9PY3RfTm92X0RlYycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICdTdW5kYXlfTW9uZGF5X1R1ZXNkYXlfV2VkbmVzZGF5X1RodXJzZGF5X0ZyaWRheV9TYXR1cmRheScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ1N1bl9Nb25fVHVlX1dlZF9UaHVfRnJpX1NhdCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdTdV9Nb19UdV9XZV9UaF9Gcl9TYScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tUb2RheSBhdF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tUb21vcnJvdyBhdF0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFthdF0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tZZXN0ZXJkYXkgYXRdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW0xhc3RdIGRkZGQgW2F0XSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ2luICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyBhZ28nLFxuICAgICAgICAgICAgczogJ2EgZmV3IHNlY29uZHMnLFxuICAgICAgICAgICAgc3M6ICclZCBzZWNvbmRzJyxcbiAgICAgICAgICAgIG06ICdhIG1pbnV0ZScsXG4gICAgICAgICAgICBtbTogJyVkIG1pbnV0ZXMnLFxuICAgICAgICAgICAgaDogJ2FuIGhvdXInLFxuICAgICAgICAgICAgaGg6ICclZCBob3VycycsXG4gICAgICAgICAgICBkOiAnYSBkYXknLFxuICAgICAgICAgICAgZGQ6ICclZCBkYXlzJyxcbiAgICAgICAgICAgIE06ICdhIG1vbnRoJyxcbiAgICAgICAgICAgIE1NOiAnJWQgbW9udGhzJyxcbiAgICAgICAgICAgIHk6ICdhIHllYXInLFxuICAgICAgICAgICAgeXk6ICclZCB5ZWFycycsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfShzdHxuZHxyZHx0aCkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICB2YXIgYiA9IG51bWJlciAlIDEwLFxuICAgICAgICAgICAgICAgIG91dHB1dCA9XG4gICAgICAgICAgICAgICAgICAgIH5+KChudW1iZXIgJSAxMDApIC8gMTApID09PSAxXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICd0aCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYiA9PT0gMVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnc3QnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGIgPT09IDJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ25kJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBiID09PSAzXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICdyZCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJ3RoJztcbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyBvdXRwdXQ7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBlblNnO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEVzcGVyYW50byBbZW9dXG4vLyEgYXV0aG9yIDogQ29saW4gRGVhbiA6IGh0dHBzOi8vZ2l0aHViLmNvbS9jb2xpbmRlYW5cbi8vISBhdXRob3IgOiBNaWEgTm9yZGVudG9mdCBJbXBlcmF0b3JpIDogaHR0cHM6Ly9naXRodWIuY29tL21pZXN0YXNtaWFcbi8vISBjb21tZW50IDogbWllc3Rhc21pYSBjb3JyZWN0ZWQgdGhlIHRyYW5zbGF0aW9uIGJ5IGNvbGluZGVhblxuLy8hIGNvbW1lbnQgOiBWaXZha3ZvIGNvcnJlY3RlZCB0aGUgdHJhbnNsYXRpb24gYnkgY29saW5kZWFuIGFuZCBtaWVzdGFzbWlhXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgZW8gPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdlbycsIHtcbiAgICAgICAgbW9udGhzOiAnamFudWFyb19mZWJydWFyb19tYXJ0b19hcHJpbG9fbWFqb19qdW5pb19qdWxpb19hxa1ndXN0b19zZXB0ZW1icm9fb2t0b2Jyb19ub3ZlbWJyb19kZWNlbWJybycuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdqYW5fZmViX21hcnRfYXByX21hal9qdW5fanVsX2HFrWdfc2VwdF9va3Rfbm92X2RlYycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICdkaW1hbsSJb19sdW5kb19tYXJkb19tZXJrcmVkb1/EtWHFrWRvX3ZlbmRyZWRvX3NhYmF0bycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ2RpbV9sdW5fbWFyZF9tZXJrX8S1YcWtX3Zlbl9zYWInLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnZGlfbHVfbWFfbWVfxLVhX3ZlX3NhJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnWVlZWS1NTS1ERCcsXG4gICAgICAgICAgICBMTDogJ1tsYV0gRFstYW4gZGVdIE1NTU0sIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnW2xhXSBEWy1hbiBkZV0gTU1NTSwgWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZFtuXSwgW2xhXSBEWy1hbiBkZV0gTU1NTSwgWVlZWSBISDptbScsXG4gICAgICAgICAgICBsbGxsOiAnZGRkLCBbbGFdIERbLWFuIGRlXSBNTU0sIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAvW2FwXVxcLnRcXC5tL2ksXG4gICAgICAgIGlzUE06IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuIGlucHV0LmNoYXJBdCgwKS50b0xvd2VyQ2FzZSgpID09PSAncCc7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91cnMsIG1pbnV0ZXMsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VycyA+IDExKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzTG93ZXIgPyAncC50Lm0uJyA6ICdQLlQuTS4nO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNMb3dlciA/ICdhLnQubS4nIDogJ0EuVC5NLic7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW0hvZGlhxa0gamVdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbTW9yZ2HFrSBqZV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkW24gamVdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbSGllcmHFrSBqZV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdbcGFzaW50YW5dIGRkZGRbbiBqZV0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdwb3N0ICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICdhbnRhxa0gJXMnLFxuICAgICAgICAgICAgczogJ2tlbGthaiBzZWt1bmRvaicsXG4gICAgICAgICAgICBzczogJyVkIHNla3VuZG9qJyxcbiAgICAgICAgICAgIG06ICd1bnUgbWludXRvJyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWludXRvaicsXG4gICAgICAgICAgICBoOiAndW51IGhvcm8nLFxuICAgICAgICAgICAgaGg6ICclZCBob3JvaicsXG4gICAgICAgICAgICBkOiAndW51IHRhZ28nLCAvL25lICdkaXVybm8nLCDEiWFyIGVzdGFzIHV6aXRhIHBvciBwcm9rc2ltdW1vXG4gICAgICAgICAgICBkZDogJyVkIHRhZ29qJyxcbiAgICAgICAgICAgIE06ICd1bnUgbW9uYXRvJyxcbiAgICAgICAgICAgIE1NOiAnJWQgbW9uYXRvaicsXG4gICAgICAgICAgICB5OiAndW51IGphcm8nLFxuICAgICAgICAgICAgeXk6ICclZCBqYXJvaicsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfWEvLFxuICAgICAgICBvcmRpbmFsOiAnJWRhJyxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNywgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gN3RoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGVvO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IFNwYW5pc2ggW2VzXVxuLy8hIGF1dGhvciA6IEp1bGlvIE5hcHVyw60gOiBodHRwczovL2dpdGh1Yi5jb20vanVsaW9uY1xuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIG1vbnRoc1Nob3J0RG90ID0gJ2VuZS5fZmViLl9tYXIuX2Fici5fbWF5Ll9qdW4uX2p1bC5fYWdvLl9zZXAuX29jdC5fbm92Ll9kaWMuJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydCA9ICdlbmVfZmViX21hcl9hYnJfbWF5X2p1bl9qdWxfYWdvX3NlcF9vY3Rfbm92X2RpYycuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzUGFyc2UgPSBbXG4gICAgICAgICAgICAvXmVuZS9pLFxuICAgICAgICAgICAgL15mZWIvaSxcbiAgICAgICAgICAgIC9ebWFyL2ksXG4gICAgICAgICAgICAvXmFici9pLFxuICAgICAgICAgICAgL15tYXkvaSxcbiAgICAgICAgICAgIC9eanVuL2ksXG4gICAgICAgICAgICAvXmp1bC9pLFxuICAgICAgICAgICAgL15hZ28vaSxcbiAgICAgICAgICAgIC9ec2VwL2ksXG4gICAgICAgICAgICAvXm9jdC9pLFxuICAgICAgICAgICAgL15ub3YvaSxcbiAgICAgICAgICAgIC9eZGljL2ksXG4gICAgICAgIF0sXG4gICAgICAgIG1vbnRoc1JlZ2V4ID0gL14oZW5lcm98ZmVicmVyb3xtYXJ6b3xhYnJpbHxtYXlvfGp1bmlvfGp1bGlvfGFnb3N0b3xzZXB0aWVtYnJlfG9jdHVicmV8bm92aWVtYnJlfGRpY2llbWJyZXxlbmVcXC4/fGZlYlxcLj98bWFyXFwuP3xhYnJcXC4/fG1heVxcLj98anVuXFwuP3xqdWxcXC4/fGFnb1xcLj98c2VwXFwuP3xvY3RcXC4/fG5vdlxcLj98ZGljXFwuPykvaTtcblxuICAgIHZhciBlcyA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2VzJywge1xuICAgICAgICBtb250aHM6ICdlbmVyb19mZWJyZXJvX21hcnpvX2FicmlsX21heW9fanVuaW9fanVsaW9fYWdvc3RvX3NlcHRpZW1icmVfb2N0dWJyZV9ub3ZpZW1icmVfZGljaWVtYnJlJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogZnVuY3Rpb24gKG0sIGZvcm1hdCkge1xuICAgICAgICAgICAgaWYgKCFtKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1vbnRoc1Nob3J0RG90O1xuICAgICAgICAgICAgfSBlbHNlIGlmICgvLU1NTS0vLnRlc3QoZm9ybWF0KSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBtb250aHNTaG9ydFttLm1vbnRoKCldO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbW9udGhzU2hvcnREb3RbbS5tb250aCgpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbW9udGhzUmVnZXg6IG1vbnRoc1JlZ2V4LFxuICAgICAgICBtb250aHNTaG9ydFJlZ2V4OiBtb250aHNSZWdleCxcbiAgICAgICAgbW9udGhzU3RyaWN0UmVnZXg6IC9eKGVuZXJvfGZlYnJlcm98bWFyem98YWJyaWx8bWF5b3xqdW5pb3xqdWxpb3xhZ29zdG98c2VwdGllbWJyZXxvY3R1YnJlfG5vdmllbWJyZXxkaWNpZW1icmUpL2ksXG4gICAgICAgIG1vbnRoc1Nob3J0U3RyaWN0UmVnZXg6IC9eKGVuZVxcLj98ZmViXFwuP3xtYXJcXC4/fGFiclxcLj98bWF5XFwuP3xqdW5cXC4/fGp1bFxcLj98YWdvXFwuP3xzZXBcXC4/fG9jdFxcLj98bm92XFwuP3xkaWNcXC4/KS9pLFxuICAgICAgICBtb250aHNQYXJzZTogbW9udGhzUGFyc2UsXG4gICAgICAgIGxvbmdNb250aHNQYXJzZTogbW9udGhzUGFyc2UsXG4gICAgICAgIHNob3J0TW9udGhzUGFyc2U6IG1vbnRoc1BhcnNlLFxuICAgICAgICB3ZWVrZGF5czogJ2RvbWluZ29fbHVuZXNfbWFydGVzX21pw6lyY29sZXNfanVldmVzX3ZpZXJuZXNfc8OhYmFkbycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ2RvbS5fbHVuLl9tYXIuX21pw6kuX2p1ZS5fdmllLl9zw6FiLicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdkb19sdV9tYV9taV9qdV92aV9zw6EnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSDptbScsXG4gICAgICAgICAgICBMVFM6ICdIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBbZGVdIE1NTU0gW2RlXSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgW2RlXSBNTU1NIFtkZV0gWVlZWSBIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIFtkZV0gTU1NTSBbZGVdIFlZWVkgSDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdbaG95IGEgbGEnICsgKHRoaXMuaG91cnMoKSAhPT0gMSA/ICdzJyA6ICcnKSArICddIExUJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBuZXh0RGF5OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdbbWHDsWFuYSBhIGxhJyArICh0aGlzLmhvdXJzKCkgIT09IDEgPyAncycgOiAnJykgKyAnXSBMVCc7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbmV4dFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2RkZGQgW2EgbGEnICsgKHRoaXMuaG91cnMoKSAhPT0gMSA/ICdzJyA6ICcnKSArICddIExUJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYXN0RGF5OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdbYXllciBhIGxhJyArICh0aGlzLmhvdXJzKCkgIT09IDEgPyAncycgOiAnJykgKyAnXSBMVCc7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGFzdFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAnW2VsXSBkZGRkIFtwYXNhZG8gYSBsYScgK1xuICAgICAgICAgICAgICAgICAgICAodGhpcy5ob3VycygpICE9PSAxID8gJ3MnIDogJycpICtcbiAgICAgICAgICAgICAgICAgICAgJ10gTFQnXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ2VuICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICdoYWNlICVzJyxcbiAgICAgICAgICAgIHM6ICd1bm9zIHNlZ3VuZG9zJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2VndW5kb3MnLFxuICAgICAgICAgICAgbTogJ3VuIG1pbnV0bycsXG4gICAgICAgICAgICBtbTogJyVkIG1pbnV0b3MnLFxuICAgICAgICAgICAgaDogJ3VuYSBob3JhJyxcbiAgICAgICAgICAgIGhoOiAnJWQgaG9yYXMnLFxuICAgICAgICAgICAgZDogJ3VuIGTDrWEnLFxuICAgICAgICAgICAgZGQ6ICclZCBkw61hcycsXG4gICAgICAgICAgICBNOiAndW4gbWVzJyxcbiAgICAgICAgICAgIE1NOiAnJWQgbWVzZXMnLFxuICAgICAgICAgICAgeTogJ3VuIGHDsW8nLFxuICAgICAgICAgICAgeXk6ICclZCBhw7FvcycsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfcK6LyxcbiAgICAgICAgb3JkaW5hbDogJyVkwronLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgICAgIGludmFsaWREYXRlOiAnRmVjaGEgaW52YWxpZGEnLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGVzO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IFNwYW5pc2ggKERvbWluaWNhbiBSZXB1YmxpYykgW2VzLWRvXVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIG1vbnRoc1Nob3J0RG90ID0gJ2VuZS5fZmViLl9tYXIuX2Fici5fbWF5Ll9qdW4uX2p1bC5fYWdvLl9zZXAuX29jdC5fbm92Ll9kaWMuJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydCA9ICdlbmVfZmViX21hcl9hYnJfbWF5X2p1bl9qdWxfYWdvX3NlcF9vY3Rfbm92X2RpYycuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzUGFyc2UgPSBbXG4gICAgICAgICAgICAvXmVuZS9pLFxuICAgICAgICAgICAgL15mZWIvaSxcbiAgICAgICAgICAgIC9ebWFyL2ksXG4gICAgICAgICAgICAvXmFici9pLFxuICAgICAgICAgICAgL15tYXkvaSxcbiAgICAgICAgICAgIC9eanVuL2ksXG4gICAgICAgICAgICAvXmp1bC9pLFxuICAgICAgICAgICAgL15hZ28vaSxcbiAgICAgICAgICAgIC9ec2VwL2ksXG4gICAgICAgICAgICAvXm9jdC9pLFxuICAgICAgICAgICAgL15ub3YvaSxcbiAgICAgICAgICAgIC9eZGljL2ksXG4gICAgICAgIF0sXG4gICAgICAgIG1vbnRoc1JlZ2V4ID0gL14oZW5lcm98ZmVicmVyb3xtYXJ6b3xhYnJpbHxtYXlvfGp1bmlvfGp1bGlvfGFnb3N0b3xzZXB0aWVtYnJlfG9jdHVicmV8bm92aWVtYnJlfGRpY2llbWJyZXxlbmVcXC4/fGZlYlxcLj98bWFyXFwuP3xhYnJcXC4/fG1heVxcLj98anVuXFwuP3xqdWxcXC4/fGFnb1xcLj98c2VwXFwuP3xvY3RcXC4/fG5vdlxcLj98ZGljXFwuPykvaTtcblxuICAgIHZhciBlc0RvID0gbW9tZW50LmRlZmluZUxvY2FsZSgnZXMtZG8nLCB7XG4gICAgICAgIG1vbnRoczogJ2VuZXJvX2ZlYnJlcm9fbWFyem9fYWJyaWxfbWF5b19qdW5pb19qdWxpb19hZ29zdG9fc2VwdGllbWJyZV9vY3R1YnJlX25vdmllbWJyZV9kaWNpZW1icmUnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiBmdW5jdGlvbiAobSwgZm9ybWF0KSB7XG4gICAgICAgICAgICBpZiAoIW0pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbW9udGhzU2hvcnREb3Q7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKC8tTU1NLS8udGVzdChmb3JtYXQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1vbnRoc1Nob3J0W20ubW9udGgoKV07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBtb250aHNTaG9ydERvdFttLm1vbnRoKCldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtb250aHNSZWdleDogbW9udGhzUmVnZXgsXG4gICAgICAgIG1vbnRoc1Nob3J0UmVnZXg6IG1vbnRoc1JlZ2V4LFxuICAgICAgICBtb250aHNTdHJpY3RSZWdleDogL14oZW5lcm98ZmVicmVyb3xtYXJ6b3xhYnJpbHxtYXlvfGp1bmlvfGp1bGlvfGFnb3N0b3xzZXB0aWVtYnJlfG9jdHVicmV8bm92aWVtYnJlfGRpY2llbWJyZSkvaSxcbiAgICAgICAgbW9udGhzU2hvcnRTdHJpY3RSZWdleDogL14oZW5lXFwuP3xmZWJcXC4/fG1hclxcLj98YWJyXFwuP3xtYXlcXC4/fGp1blxcLj98anVsXFwuP3xhZ29cXC4/fHNlcFxcLj98b2N0XFwuP3xub3ZcXC4/fGRpY1xcLj8pL2ksXG4gICAgICAgIG1vbnRoc1BhcnNlOiBtb250aHNQYXJzZSxcbiAgICAgICAgbG9uZ01vbnRoc1BhcnNlOiBtb250aHNQYXJzZSxcbiAgICAgICAgc2hvcnRNb250aHNQYXJzZTogbW9udGhzUGFyc2UsXG4gICAgICAgIHdlZWtkYXlzOiAnZG9taW5nb19sdW5lc19tYXJ0ZXNfbWnDqXJjb2xlc19qdWV2ZXNfdmllcm5lc19zw6FiYWRvJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnZG9tLl9sdW4uX21hci5fbWnDqS5fanVlLl92aWUuX3PDoWIuJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ2RvX2x1X21hX21pX2p1X3ZpX3PDoScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdoOm1tIEEnLFxuICAgICAgICAgICAgTFRTOiAnaDptbTpzcyBBJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBbZGVdIE1NTU0gW2RlXSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgW2RlXSBNTU1NIFtkZV0gWVlZWSBoOm1tIEEnLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgW2RlXSBNTU1NIFtkZV0gWVlZWSBoOm1tIEEnLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnW2hveSBhIGxhJyArICh0aGlzLmhvdXJzKCkgIT09IDEgPyAncycgOiAnJykgKyAnXSBMVCc7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbmV4dERheTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnW21hw7FhbmEgYSBsYScgKyAodGhpcy5ob3VycygpICE9PSAxID8gJ3MnIDogJycpICsgJ10gTFQnO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG5leHRXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdkZGRkIFthIGxhJyArICh0aGlzLmhvdXJzKCkgIT09IDEgPyAncycgOiAnJykgKyAnXSBMVCc7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGFzdERheTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnW2F5ZXIgYSBsYScgKyAodGhpcy5ob3VycygpICE9PSAxID8gJ3MnIDogJycpICsgJ10gTFQnO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxhc3RXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgJ1tlbF0gZGRkZCBbcGFzYWRvIGEgbGEnICtcbiAgICAgICAgICAgICAgICAgICAgKHRoaXMuaG91cnMoKSAhPT0gMSA/ICdzJyA6ICcnKSArXG4gICAgICAgICAgICAgICAgICAgICddIExUJ1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdlbiAlcycsXG4gICAgICAgICAgICBwYXN0OiAnaGFjZSAlcycsXG4gICAgICAgICAgICBzOiAndW5vcyBzZWd1bmRvcycsXG4gICAgICAgICAgICBzczogJyVkIHNlZ3VuZG9zJyxcbiAgICAgICAgICAgIG06ICd1biBtaW51dG8nLFxuICAgICAgICAgICAgbW06ICclZCBtaW51dG9zJyxcbiAgICAgICAgICAgIGg6ICd1bmEgaG9yYScsXG4gICAgICAgICAgICBoaDogJyVkIGhvcmFzJyxcbiAgICAgICAgICAgIGQ6ICd1biBkw61hJyxcbiAgICAgICAgICAgIGRkOiAnJWQgZMOtYXMnLFxuICAgICAgICAgICAgTTogJ3VuIG1lcycsXG4gICAgICAgICAgICBNTTogJyVkIG1lc2VzJyxcbiAgICAgICAgICAgIHk6ICd1biBhw7FvJyxcbiAgICAgICAgICAgIHl5OiAnJWQgYcOxb3MnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn3Cui8sXG4gICAgICAgIG9yZGluYWw6ICclZMK6JyxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGVzRG87XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogU3BhbmlzaCAoVW5pdGVkIFN0YXRlcykgW2VzLXVzXVxuLy8hIGF1dGhvciA6IGJ1c3R0YSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9idXN0dGFcbi8vISBhdXRob3IgOiBjaHJpc3JvZHogOiBodHRwczovL2dpdGh1Yi5jb20vY2hyaXNyb2R6XG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgbW9udGhzU2hvcnREb3QgPSAnZW5lLl9mZWIuX21hci5fYWJyLl9tYXkuX2p1bi5fanVsLl9hZ28uX3NlcC5fb2N0Ll9ub3YuX2RpYy4nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0ID0gJ2VuZV9mZWJfbWFyX2Ficl9tYXlfanVuX2p1bF9hZ29fc2VwX29jdF9ub3ZfZGljJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNQYXJzZSA9IFtcbiAgICAgICAgICAgIC9eZW5lL2ksXG4gICAgICAgICAgICAvXmZlYi9pLFxuICAgICAgICAgICAgL15tYXIvaSxcbiAgICAgICAgICAgIC9eYWJyL2ksXG4gICAgICAgICAgICAvXm1heS9pLFxuICAgICAgICAgICAgL15qdW4vaSxcbiAgICAgICAgICAgIC9eanVsL2ksXG4gICAgICAgICAgICAvXmFnby9pLFxuICAgICAgICAgICAgL15zZXAvaSxcbiAgICAgICAgICAgIC9eb2N0L2ksXG4gICAgICAgICAgICAvXm5vdi9pLFxuICAgICAgICAgICAgL15kaWMvaSxcbiAgICAgICAgXSxcbiAgICAgICAgbW9udGhzUmVnZXggPSAvXihlbmVyb3xmZWJyZXJvfG1hcnpvfGFicmlsfG1heW98anVuaW98anVsaW98YWdvc3RvfHNlcHRpZW1icmV8b2N0dWJyZXxub3ZpZW1icmV8ZGljaWVtYnJlfGVuZVxcLj98ZmViXFwuP3xtYXJcXC4/fGFiclxcLj98bWF5XFwuP3xqdW5cXC4/fGp1bFxcLj98YWdvXFwuP3xzZXBcXC4/fG9jdFxcLj98bm92XFwuP3xkaWNcXC4/KS9pO1xuXG4gICAgdmFyIGVzVXMgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdlcy11cycsIHtcbiAgICAgICAgbW9udGhzOiAnZW5lcm9fZmVicmVyb19tYXJ6b19hYnJpbF9tYXlvX2p1bmlvX2p1bGlvX2Fnb3N0b19zZXB0aWVtYnJlX29jdHVicmVfbm92aWVtYnJlX2RpY2llbWJyZScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6IGZ1bmN0aW9uIChtLCBmb3JtYXQpIHtcbiAgICAgICAgICAgIGlmICghbSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBtb250aHNTaG9ydERvdDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoLy1NTU0tLy50ZXN0KGZvcm1hdCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbW9udGhzU2hvcnRbbS5tb250aCgpXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1vbnRoc1Nob3J0RG90W20ubW9udGgoKV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1vbnRoc1JlZ2V4OiBtb250aHNSZWdleCxcbiAgICAgICAgbW9udGhzU2hvcnRSZWdleDogbW9udGhzUmVnZXgsXG4gICAgICAgIG1vbnRoc1N0cmljdFJlZ2V4OiAvXihlbmVyb3xmZWJyZXJvfG1hcnpvfGFicmlsfG1heW98anVuaW98anVsaW98YWdvc3RvfHNlcHRpZW1icmV8b2N0dWJyZXxub3ZpZW1icmV8ZGljaWVtYnJlKS9pLFxuICAgICAgICBtb250aHNTaG9ydFN0cmljdFJlZ2V4OiAvXihlbmVcXC4/fGZlYlxcLj98bWFyXFwuP3xhYnJcXC4/fG1heVxcLj98anVuXFwuP3xqdWxcXC4/fGFnb1xcLj98c2VwXFwuP3xvY3RcXC4/fG5vdlxcLj98ZGljXFwuPykvaSxcbiAgICAgICAgbW9udGhzUGFyc2U6IG1vbnRoc1BhcnNlLFxuICAgICAgICBsb25nTW9udGhzUGFyc2U6IG1vbnRoc1BhcnNlLFxuICAgICAgICBzaG9ydE1vbnRoc1BhcnNlOiBtb250aHNQYXJzZSxcbiAgICAgICAgd2Vla2RheXM6ICdkb21pbmdvX2x1bmVzX21hcnRlc19tacOpcmNvbGVzX2p1ZXZlc192aWVybmVzX3PDoWJhZG8nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdkb20uX2x1bi5fbWFyLl9tacOpLl9qdWUuX3ZpZS5fc8OhYi4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnZG9fbHVfbWFfbWlfanVfdmlfc8OhJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ2g6bW0gQScsXG4gICAgICAgICAgICBMVFM6ICdoOm1tOnNzIEEnLFxuICAgICAgICAgICAgTDogJ01NL0REL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIFtkZV0gTU1NTSBbZGVdIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBbZGVdIE1NTU0gW2RlXSBZWVlZIGg6bW0gQScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBbZGVdIE1NTU0gW2RlXSBZWVlZIGg6bW0gQScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdbaG95IGEgbGEnICsgKHRoaXMuaG91cnMoKSAhPT0gMSA/ICdzJyA6ICcnKSArICddIExUJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBuZXh0RGF5OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdbbWHDsWFuYSBhIGxhJyArICh0aGlzLmhvdXJzKCkgIT09IDEgPyAncycgOiAnJykgKyAnXSBMVCc7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbmV4dFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2RkZGQgW2EgbGEnICsgKHRoaXMuaG91cnMoKSAhPT0gMSA/ICdzJyA6ICcnKSArICddIExUJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYXN0RGF5OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdbYXllciBhIGxhJyArICh0aGlzLmhvdXJzKCkgIT09IDEgPyAncycgOiAnJykgKyAnXSBMVCc7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGFzdFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAnW2VsXSBkZGRkIFtwYXNhZG8gYSBsYScgK1xuICAgICAgICAgICAgICAgICAgICAodGhpcy5ob3VycygpICE9PSAxID8gJ3MnIDogJycpICtcbiAgICAgICAgICAgICAgICAgICAgJ10gTFQnXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ2VuICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICdoYWNlICVzJyxcbiAgICAgICAgICAgIHM6ICd1bm9zIHNlZ3VuZG9zJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2VndW5kb3MnLFxuICAgICAgICAgICAgbTogJ3VuIG1pbnV0bycsXG4gICAgICAgICAgICBtbTogJyVkIG1pbnV0b3MnLFxuICAgICAgICAgICAgaDogJ3VuYSBob3JhJyxcbiAgICAgICAgICAgIGhoOiAnJWQgaG9yYXMnLFxuICAgICAgICAgICAgZDogJ3VuIGTDrWEnLFxuICAgICAgICAgICAgZGQ6ICclZCBkw61hcycsXG4gICAgICAgICAgICBNOiAndW4gbWVzJyxcbiAgICAgICAgICAgIE1NOiAnJWQgbWVzZXMnLFxuICAgICAgICAgICAgeTogJ3VuIGHDsW8nLFxuICAgICAgICAgICAgeXk6ICclZCBhw7FvcycsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfcK6LyxcbiAgICAgICAgb3JkaW5hbDogJyVkwronLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDAsIC8vIFN1bmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA2LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA2dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZXNVcztcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBFc3RvbmlhbiBbZXRdXG4vLyEgYXV0aG9yIDogSGVucnkgS2VobG1hbm4gOiBodHRwczovL2dpdGh1Yi5jb20vbWFkaGVucnlcbi8vISBpbXByb3ZlbWVudHMgOiBJbGxpbWFyIFRhbWJlayA6IGh0dHBzOi8vZ2l0aHViLmNvbS9yYWd1bGthXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICBmdW5jdGlvbiBwcm9jZXNzUmVsYXRpdmVUaW1lKG51bWJlciwgd2l0aG91dFN1ZmZpeCwga2V5LCBpc0Z1dHVyZSkge1xuICAgICAgICB2YXIgZm9ybWF0ID0ge1xuICAgICAgICAgICAgczogWydtw7VuZSBzZWt1bmRpJywgJ23DtW5pIHNla3VuZCcsICdwYWFyIHNla3VuZGl0J10sXG4gICAgICAgICAgICBzczogW251bWJlciArICdzZWt1bmRpJywgbnVtYmVyICsgJ3Nla3VuZGl0J10sXG4gICAgICAgICAgICBtOiBbJ8O8aGUgbWludXRpJywgJ8O8a3MgbWludXQnXSxcbiAgICAgICAgICAgIG1tOiBbbnVtYmVyICsgJyBtaW51dGknLCBudW1iZXIgKyAnIG1pbnV0aXQnXSxcbiAgICAgICAgICAgIGg6IFsnw7xoZSB0dW5uaScsICd0dW5kIGFlZ2EnLCAnw7xrcyB0dW5kJ10sXG4gICAgICAgICAgICBoaDogW251bWJlciArICcgdHVubmknLCBudW1iZXIgKyAnIHR1bmRpJ10sXG4gICAgICAgICAgICBkOiBbJ8O8aGUgcMOkZXZhJywgJ8O8a3MgcMOkZXYnXSxcbiAgICAgICAgICAgIE06IFsna3V1IGFqYScsICdrdXUgYWVnYScsICfDvGtzIGt1dSddLFxuICAgICAgICAgICAgTU06IFtudW1iZXIgKyAnIGt1dScsIG51bWJlciArICcga3V1ZCddLFxuICAgICAgICAgICAgeTogWyfDvGhlIGFhc3RhJywgJ2Fhc3RhJywgJ8O8a3MgYWFzdGEnXSxcbiAgICAgICAgICAgIHl5OiBbbnVtYmVyICsgJyBhYXN0YScsIG51bWJlciArICcgYWFzdGF0J10sXG4gICAgICAgIH07XG4gICAgICAgIGlmICh3aXRob3V0U3VmZml4KSB7XG4gICAgICAgICAgICByZXR1cm4gZm9ybWF0W2tleV1bMl0gPyBmb3JtYXRba2V5XVsyXSA6IGZvcm1hdFtrZXldWzFdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpc0Z1dHVyZSA/IGZvcm1hdFtrZXldWzBdIDogZm9ybWF0W2tleV1bMV07XG4gICAgfVxuXG4gICAgdmFyIGV0ID0gbW9tZW50LmRlZmluZUxvY2FsZSgnZXQnLCB7XG4gICAgICAgIG1vbnRoczogJ2phYW51YXJfdmVlYnJ1YXJfbcOkcnRzX2FwcmlsbF9tYWlfanV1bmlfanV1bGlfYXVndXN0X3NlcHRlbWJlcl9va3Rvb2Jlcl9ub3ZlbWJlcl9kZXRzZW1iZXInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnamFhbl92ZWVicl9tw6RydHNfYXByX21haV9qdXVuaV9qdXVsaV9hdWdfc2VwdF9va3Rfbm92X2RldHMnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzOiAncMO8aGFww6Rldl9lc21hc3DDpGV2X3RlaXNpcMOkZXZfa29sbWFww6Rldl9uZWxqYXDDpGV2X3JlZWRlX2xhdXDDpGV2Jy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnUF9FX1RfS19OX1JfTCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdQX0VfVF9LX05fUl9MJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0g6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEw6ICdELiBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRC4gTU1NTSBZWVlZIEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQuIE1NTU0gWVlZWSBIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbVMOkbmEsXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW0hvbW1lLF0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdbSsOkcmdtaW5lXSBkZGRkIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbRWlsZSxdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW0VlbG1pbmVdIGRkZGQgTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICclcyBww6RyYXN0JyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyB0YWdhc2knLFxuICAgICAgICAgICAgczogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIHNzOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgbTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIG1tOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgaDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIGhoOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgZDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIGRkOiAnJWQgcMOkZXZhJyxcbiAgICAgICAgICAgIE06IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBNTTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIHk6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICB5eTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9XFwuLyxcbiAgICAgICAgb3JkaW5hbDogJyVkLicsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBldDtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBCYXNxdWUgW2V1XVxuLy8hIGF1dGhvciA6IEVuZWtvIElsbGFycmFtZW5kaSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9laWxsYXJyYVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIGV1ID0gbW9tZW50LmRlZmluZUxvY2FsZSgnZXUnLCB7XG4gICAgICAgIG1vbnRoczogJ3VydGFycmlsYV9vdHNhaWxhX21hcnR4b2FfYXBpcmlsYV9tYWlhdHphX2VrYWluYV91enRhaWxhX2FidXp0dWFfaXJhaWxhX3VycmlhX2F6YXJvYV9hYmVuZHVhJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ3VydC5fb3RzLl9tYXIuX2FwaS5fbWFpLl9la2EuX3V6dC5fYWJ1Ll9pcmEuX3Vyci5fYXphLl9hYmUuJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czogJ2lnYW5kZWFfYXN0ZWxlaGVuYV9hc3RlYXJ0ZWFfYXN0ZWF6a2VuYV9vc3RlZ3VuYV9vc3RpcmFsYV9sYXJ1bmJhdGEnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdpZy5fYWwuX2FyLl9hei5fb2cuX29sLl9sci4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnaWdfYWxfYXJfYXpfb2dfb2xfbHInLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ1lZWVktTU0tREQnLFxuICAgICAgICAgICAgTEw6ICdZWVlZW2tvXSBNTU1NW3Jlbl0gRFthXScsXG4gICAgICAgICAgICBMTEw6ICdZWVlZW2tvXSBNTU1NW3Jlbl0gRFthXSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgWVlZWVtrb10gTU1NTVtyZW5dIERbYV0gSEg6bW0nLFxuICAgICAgICAgICAgbDogJ1lZWVktTS1EJyxcbiAgICAgICAgICAgIGxsOiAnWVlZWVtrb10gTU1NIERbYV0nLFxuICAgICAgICAgICAgbGxsOiAnWVlZWVtrb10gTU1NIERbYV0gSEg6bW0nLFxuICAgICAgICAgICAgbGxsbDogJ2RkZCwgWVlZWVtrb10gTU1NIERbYV0gSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tnYXVyXSBMVFtldGFuXScsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW2JpaGFyXSBMVFtldGFuXScsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgTFRbZXRhbl0nLFxuICAgICAgICAgICAgbGFzdERheTogJ1thdHpvXSBMVFtldGFuXScsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1thdXJyZWtvXSBkZGRkIExUW2V0YW5dJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnJXMgYmFycnUnLFxuICAgICAgICAgICAgcGFzdDogJ2R1ZWxhICVzJyxcbiAgICAgICAgICAgIHM6ICdzZWd1bmRvIGJhdHp1aycsXG4gICAgICAgICAgICBzczogJyVkIHNlZ3VuZG8nLFxuICAgICAgICAgICAgbTogJ21pbnV0dSBiYXQnLFxuICAgICAgICAgICAgbW06ICclZCBtaW51dHUnLFxuICAgICAgICAgICAgaDogJ29yZHUgYmF0JyxcbiAgICAgICAgICAgIGhoOiAnJWQgb3JkdScsXG4gICAgICAgICAgICBkOiAnZWd1biBiYXQnLFxuICAgICAgICAgICAgZGQ6ICclZCBlZ3VuJyxcbiAgICAgICAgICAgIE06ICdoaWxhYmV0ZSBiYXQnLFxuICAgICAgICAgICAgTU06ICclZCBoaWxhYmV0ZScsXG4gICAgICAgICAgICB5OiAndXJ0ZSBiYXQnLFxuICAgICAgICAgICAgeXk6ICclZCB1cnRlJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9XFwuLyxcbiAgICAgICAgb3JkaW5hbDogJyVkLicsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDcsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDd0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBldTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBQZXJzaWFuIFtmYV1cbi8vISBhdXRob3IgOiBFYnJhaGltIEJ5YWdvd2kgOiBodHRwczovL2dpdGh1Yi5jb20vZWJyYW1pbmlvXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgc3ltYm9sTWFwID0ge1xuICAgICAgICAgICAgJzEnOiAn27EnLFxuICAgICAgICAgICAgJzInOiAn27InLFxuICAgICAgICAgICAgJzMnOiAn27MnLFxuICAgICAgICAgICAgJzQnOiAn27QnLFxuICAgICAgICAgICAgJzUnOiAn27UnLFxuICAgICAgICAgICAgJzYnOiAn27YnLFxuICAgICAgICAgICAgJzcnOiAn27cnLFxuICAgICAgICAgICAgJzgnOiAn27gnLFxuICAgICAgICAgICAgJzknOiAn27knLFxuICAgICAgICAgICAgJzAnOiAn27AnLFxuICAgICAgICB9LFxuICAgICAgICBudW1iZXJNYXAgPSB7XG4gICAgICAgICAgICAn27EnOiAnMScsXG4gICAgICAgICAgICAn27InOiAnMicsXG4gICAgICAgICAgICAn27MnOiAnMycsXG4gICAgICAgICAgICAn27QnOiAnNCcsXG4gICAgICAgICAgICAn27UnOiAnNScsXG4gICAgICAgICAgICAn27YnOiAnNicsXG4gICAgICAgICAgICAn27cnOiAnNycsXG4gICAgICAgICAgICAn27gnOiAnOCcsXG4gICAgICAgICAgICAn27knOiAnOScsXG4gICAgICAgICAgICAn27AnOiAnMCcsXG4gICAgICAgIH07XG5cbiAgICB2YXIgZmEgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdmYScsIHtcbiAgICAgICAgbW9udGhzOiAn2pjYp9mG2YjbjNmHX9mB2YjYsduM2Ydf2YXYp9ix2LNf2KLZiNix24zZhF/ZhdmHX9qY2YjYptmGX9qY2YjYptuM2Ydf2KfZiNiqX9iz2b7Yqtin2YXYqNixX9in2qnYqtio2LFf2YbZiNin2YXYqNixX9iv2LPYp9mF2KjYsScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICfamNin2YbZiNuM2Ydf2YHZiNix24zZh1/Zhdin2LHYs1/YotmI2LHbjNmEX9mF2Ydf2pjZiNim2YZf2pjZiNim24zZh1/Yp9mI2Kpf2LPZvtiq2KfZhdio2LFf2Kfaqdiq2KjYsV/ZhtmI2KfZhdio2LFf2K/Ys9in2YXYqNixJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5czogJ9uM2qlcXHUyMDBj2LTZhtio2Ydf2K/ZiNi02YbYqNmHX9iz2YdcXHUyMDBj2LTZhtio2Ydf2obZh9in2LHYtNmG2KjZh1/ZvtmG2KxcXHUyMDBj2LTZhtio2Ydf2KzZhdi52Ydf2LTZhtio2YcnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfbjNqpXFx1MjAwY9i02YbYqNmHX9iv2YjYtNmG2KjZh1/Ys9mHXFx1MjAwY9i02YbYqNmHX9qG2YfYp9ix2LTZhtio2Ydf2b7ZhtisXFx1MjAwY9i02YbYqNmHX9is2YXYudmHX9i02YbYqNmHJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ9uMX9ivX9izX9qGX9m+X9isX9i0Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL9mC2KjZhCDYp9iyINi42YfYsXzYqNi52K8g2KfYsiDYuNmH2LEvLFxuICAgICAgICBpc1BNOiBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgICAgIHJldHVybiAv2KjYudivINin2LIg2LjZh9ixLy50ZXN0KGlucHV0KTtcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyIDwgMTIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9mC2KjZhCDYp9iyINi42YfYsSc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn2KjYudivINin2LIg2LjZh9ixJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb2KfZhdix2YjYsiDYs9in2LnYql0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vZgdix2K/YpyDYs9in2LnYql0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFvYs9in2LnYql0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vYr9uM2LHZiNiyINiz2KfYudiqXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ2RkZGQgW9m+24zYtF0gW9iz2KfYudiqXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ9iv2LEgJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzINm+24zYtCcsXG4gICAgICAgICAgICBzOiAn2obZhtivINir2KfZhtuM2YcnLFxuICAgICAgICAgICAgc3M6ICclZCDYq9in2YbbjNmHJyxcbiAgICAgICAgICAgIG06ICfbjNqpINiv2YLbjNmC2YcnLFxuICAgICAgICAgICAgbW06ICclZCDYr9mC24zZgtmHJyxcbiAgICAgICAgICAgIGg6ICfbjNqpINiz2KfYudiqJyxcbiAgICAgICAgICAgIGhoOiAnJWQg2LPYp9i52KonLFxuICAgICAgICAgICAgZDogJ9uM2qkg2LHZiNiyJyxcbiAgICAgICAgICAgIGRkOiAnJWQg2LHZiNiyJyxcbiAgICAgICAgICAgIE06ICfbjNqpINmF2KfZhycsXG4gICAgICAgICAgICBNTTogJyVkINmF2KfZhycsXG4gICAgICAgICAgICB5OiAn24zaqSDYs9in2YQnLFxuICAgICAgICAgICAgeXk6ICclZCDYs9in2YQnLFxuICAgICAgICB9LFxuICAgICAgICBwcmVwYXJzZTogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZ1xuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9b27At27ldL2csIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyTWFwW21hdGNoXTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC/YjC9nLCAnLCcpO1xuICAgICAgICB9LFxuICAgICAgICBwb3N0Zm9ybWF0OiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcZC9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bWJvbE1hcFttYXRjaF07XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvLC9nLCAn2IwnKTtcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ92YUvLFxuICAgICAgICBvcmRpbmFsOiAnJWTZhScsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogNiwgLy8gU2F0dXJkYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogMTIsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDEydGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZmE7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogRmlubmlzaCBbZmldXG4vLyEgYXV0aG9yIDogVGFybW8gQWlkYW50YXVzdGEgOiBodHRwczovL2dpdGh1Yi5jb20vYmxlYWRvZlxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIG51bWJlcnNQYXN0ID0gJ25vbGxhIHlrc2kga2Frc2kga29sbWUgbmVsasOkIHZpaXNpIGt1dXNpIHNlaXRzZW3DpG4ga2FoZGVrc2FuIHloZGVrc8Okbicuc3BsaXQoXG4gICAgICAgICAgICAnICdcbiAgICAgICAgKSxcbiAgICAgICAgbnVtYmVyc0Z1dHVyZSA9IFtcbiAgICAgICAgICAgICdub2xsYScsXG4gICAgICAgICAgICAneWhkZW4nLFxuICAgICAgICAgICAgJ2thaGRlbicsXG4gICAgICAgICAgICAna29sbWVuJyxcbiAgICAgICAgICAgICduZWxqw6RuJyxcbiAgICAgICAgICAgICd2aWlkZW4nLFxuICAgICAgICAgICAgJ2t1dWRlbicsXG4gICAgICAgICAgICBudW1iZXJzUGFzdFs3XSxcbiAgICAgICAgICAgIG51bWJlcnNQYXN0WzhdLFxuICAgICAgICAgICAgbnVtYmVyc1Bhc3RbOV0sXG4gICAgICAgIF07XG4gICAgZnVuY3Rpb24gdHJhbnNsYXRlKG51bWJlciwgd2l0aG91dFN1ZmZpeCwga2V5LCBpc0Z1dHVyZSkge1xuICAgICAgICB2YXIgcmVzdWx0ID0gJyc7XG4gICAgICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICAgICAgICBjYXNlICdzJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNGdXR1cmUgPyAnbXV1dGFtYW4gc2VrdW5uaW4nIDogJ211dXRhbWEgc2VrdW50aSc7XG4gICAgICAgICAgICBjYXNlICdzcyc6XG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gaXNGdXR1cmUgPyAnc2VrdW5uaW4nIDogJ3Nla3VudGlhJztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ20nOlxuICAgICAgICAgICAgICAgIHJldHVybiBpc0Z1dHVyZSA/ICdtaW51dXRpbicgOiAnbWludXV0dGknO1xuICAgICAgICAgICAgY2FzZSAnbW0nOlxuICAgICAgICAgICAgICAgIHJlc3VsdCA9IGlzRnV0dXJlID8gJ21pbnV1dGluJyA6ICdtaW51dXR0aWEnO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnaCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzRnV0dXJlID8gJ3R1bm5pbicgOiAndHVudGknO1xuICAgICAgICAgICAgY2FzZSAnaGgnOlxuICAgICAgICAgICAgICAgIHJlc3VsdCA9IGlzRnV0dXJlID8gJ3R1bm5pbicgOiAndHVudGlhJztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2QnOlxuICAgICAgICAgICAgICAgIHJldHVybiBpc0Z1dHVyZSA/ICdww6RpdsOkbicgOiAncMOkaXbDpCc7XG4gICAgICAgICAgICBjYXNlICdkZCc6XG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gaXNGdXR1cmUgPyAncMOkaXbDpG4nIDogJ3DDpGl2w6TDpCc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdNJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNGdXR1cmUgPyAna3V1a2F1ZGVuJyA6ICdrdXVrYXVzaSc7XG4gICAgICAgICAgICBjYXNlICdNTSc6XG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gaXNGdXR1cmUgPyAna3V1a2F1ZGVuJyA6ICdrdXVrYXV0dGEnO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAneSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzRnV0dXJlID8gJ3Z1b2RlbicgOiAndnVvc2knO1xuICAgICAgICAgICAgY2FzZSAneXknOlxuICAgICAgICAgICAgICAgIHJlc3VsdCA9IGlzRnV0dXJlID8gJ3Z1b2RlbicgOiAndnVvdHRhJztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICByZXN1bHQgPSB2ZXJiYWxOdW1iZXIobnVtYmVyLCBpc0Z1dHVyZSkgKyAnICcgKyByZXN1bHQ7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHZlcmJhbE51bWJlcihudW1iZXIsIGlzRnV0dXJlKSB7XG4gICAgICAgIHJldHVybiBudW1iZXIgPCAxMFxuICAgICAgICAgICAgPyBpc0Z1dHVyZVxuICAgICAgICAgICAgICAgID8gbnVtYmVyc0Z1dHVyZVtudW1iZXJdXG4gICAgICAgICAgICAgICAgOiBudW1iZXJzUGFzdFtudW1iZXJdXG4gICAgICAgICAgICA6IG51bWJlcjtcbiAgICB9XG5cbiAgICB2YXIgZmkgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdmaScsIHtcbiAgICAgICAgbW9udGhzOiAndGFtbWlrdXVfaGVsbWlrdXVfbWFhbGlza3V1X2h1aHRpa3V1X3RvdWtva3V1X2tlc8Oka3V1X2hlaW7DpGt1dV9lbG9rdXVfc3l5c2t1dV9sb2tha3V1X21hcnJhc2t1dV9qb3VsdWt1dScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICd0YW1taV9oZWxtaV9tYWFsaXNfaHVodGlfdG91a29fa2Vzw6RfaGVpbsOkX2Vsb19zeXlzX2xva2FfbWFycmFzX2pvdWx1Jy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5czogJ3N1bm51bnRhaV9tYWFuYW50YWlfdGlpc3RhaV9rZXNraXZpaWtrb190b3JzdGFpX3BlcmphbnRhaV9sYXVhbnRhaScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ3N1X21hX3RpX2tlX3RvX3BlX2xhJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ3N1X21hX3RpX2tlX3RvX3BlX2xhJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISC5tbScsXG4gICAgICAgICAgICBMVFM6ICdISC5tbS5zcycsXG4gICAgICAgICAgICBMOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTDogJ0RvIE1NTU1bdGFdIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRG8gTU1NTVt0YV0gWVlZWSwgW2tsb10gSEgubW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIERvIE1NTU1bdGFdIFlZWVksIFtrbG9dIEhILm1tJyxcbiAgICAgICAgICAgIGw6ICdELk0uWVlZWScsXG4gICAgICAgICAgICBsbDogJ0RvIE1NTSBZWVlZJyxcbiAgICAgICAgICAgIGxsbDogJ0RvIE1NTSBZWVlZLCBba2xvXSBISC5tbScsXG4gICAgICAgICAgICBsbGxsOiAnZGRkLCBEbyBNTU0gWVlZWSwgW2tsb10gSEgubW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1t0w6Ruw6TDpG5dIFtrbG9dIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbaHVvbWVubmFdIFtrbG9dIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBba2xvXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW2VpbGVuXSBba2xvXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1t2aWltZV0gZGRkZFtuYV0gW2tsb10gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICclcyBww6TDpHN0w6QnLFxuICAgICAgICAgICAgcGFzdDogJyVzIHNpdHRlbicsXG4gICAgICAgICAgICBzOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBzczogdHJhbnNsYXRlLFxuICAgICAgICAgICAgbTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgbW06IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGg6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGhoOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBkOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBkZDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgTTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgTU06IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIHk6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIHl5OiB0cmFuc2xhdGUsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfVxcLi8sXG4gICAgICAgIG9yZGluYWw6ICclZC4nLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZmk7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogRmlsaXBpbm8gW2ZpbF1cbi8vISBhdXRob3IgOiBEYW4gSGFnbWFuIDogaHR0cHM6Ly9naXRodWIuY29tL2hhZ21hbmRhblxuLy8hIGF1dGhvciA6IE1hdHRoZXcgQ28gOiBodHRwczovL2dpdGh1Yi5jb20vbWF0dGhld2RlZWNvXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgZmlsID0gbW9tZW50LmRlZmluZUxvY2FsZSgnZmlsJywge1xuICAgICAgICBtb250aHM6ICdFbmVyb19QZWJyZXJvX01hcnNvX0FicmlsX01heW9fSHVueW9fSHVseW9fQWdvc3RvX1NldHllbWJyZV9Pa3R1YnJlX05vYnllbWJyZV9EaXN5ZW1icmUnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnRW5lX1BlYl9NYXJfQWJyX01heV9IdW5fSHVsX0Fnb19TZXRfT2t0X05vYl9EaXMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAnTGluZ2dvX0x1bmVzX01hcnRlc19NaXllcmt1bGVzX0h1d2ViZXNfQml5ZXJuZXNfU2FiYWRvJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnTGluX0x1bl9NYXJfTWl5X0h1d19CaXlfU2FiJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ0xpX0x1X01hX01pX0h1X0JpX1NhYicuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ01NL0QvWVlZWScsXG4gICAgICAgICAgICBMTDogJ01NTU0gRCwgWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdNTU1NIEQsIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIE1NTU0gREQsIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ0xUIFtuZ2F5b25nIGFyYXddJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbQnVrYXMgbmddIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnTFQgW3NhIHN1c3Vub2QgbmFdIGRkZGQnLFxuICAgICAgICAgICAgbGFzdERheTogJ0xUIFtrYWhhcG9uXScsXG4gICAgICAgICAgICBsYXN0V2VlazogJ0xUIFtub29uZyBuYWthcmFhbmddIGRkZGQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdzYSBsb29iIG5nICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyBhbmcgbmFrYWxpcGFzJyxcbiAgICAgICAgICAgIHM6ICdpbGFuZyBzZWd1bmRvJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2VndW5kbycsXG4gICAgICAgICAgICBtOiAnaXNhbmcgbWludXRvJyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWludXRvJyxcbiAgICAgICAgICAgIGg6ICdpc2FuZyBvcmFzJyxcbiAgICAgICAgICAgIGhoOiAnJWQgb3JhcycsXG4gICAgICAgICAgICBkOiAnaXNhbmcgYXJhdycsXG4gICAgICAgICAgICBkZDogJyVkIGFyYXcnLFxuICAgICAgICAgICAgTTogJ2lzYW5nIGJ1d2FuJyxcbiAgICAgICAgICAgIE1NOiAnJWQgYnV3YW4nLFxuICAgICAgICAgICAgeTogJ2lzYW5nIHRhb24nLFxuICAgICAgICAgICAgeXk6ICclZCB0YW9uJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9LyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlcjtcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGZpbDtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBGYXJvZXNlIFtmb11cbi8vISBhdXRob3IgOiBSYWduYXIgSm9oYW5uZXNlbiA6IGh0dHBzOi8vZ2l0aHViLmNvbS9yYWduYXIxMjNcbi8vISBhdXRob3IgOiBLcmlzdGlhbiBTYWthcmlzc29uIDogaHR0cHM6Ly9naXRodWIuY29tL3Nha2FyaXNzb25cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBmbyA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2ZvJywge1xuICAgICAgICBtb250aHM6ICdqYW51YXJfZmVicnVhcl9tYXJzX2FwcsOtbF9tYWlfanVuaV9qdWxpX2F1Z3VzdF9zZXB0ZW1iZXJfb2t0b2Jlcl9ub3ZlbWJlcl9kZXNlbWJlcicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdqYW5fZmViX21hcl9hcHJfbWFpX2p1bl9qdWxfYXVnX3NlcF9va3Rfbm92X2Rlcycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICdzdW5udWRhZ3VyX23DoW5hZGFndXJfdMO9c2RhZ3VyX21pa3VkYWd1cl9ow7NzZGFndXJfZnLDrWdnamFkYWd1cl9sZXlnYXJkYWd1cicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ3N1bl9tw6FuX3TDvXNfbWlrX2jDs3NfZnLDrV9sZXknLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnc3VfbcOhX3TDvV9taV9ow7NfZnJfbGUnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQgRC4gTU1NTSwgWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW8ONIGRhZyBrbC5dIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbw40gbW9yZ2luIGtsLl0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFtrbC5dIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbw40gZ2rDoXIga2wuXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1tzw63DsHN0dV0gZGRkZCBba2xdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAndW0gJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzIHPDrcOwYW5pJyxcbiAgICAgICAgICAgIHM6ICdmw6Egc2VrdW5kJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2VrdW5kaXInLFxuICAgICAgICAgICAgbTogJ2VpbiBtaW51dHR1cicsXG4gICAgICAgICAgICBtbTogJyVkIG1pbnV0dGlyJyxcbiAgICAgICAgICAgIGg6ICdlaW4gdMOtbWknLFxuICAgICAgICAgICAgaGg6ICclZCB0w61tYXInLFxuICAgICAgICAgICAgZDogJ2VpbiBkYWd1cicsXG4gICAgICAgICAgICBkZDogJyVkIGRhZ2FyJyxcbiAgICAgICAgICAgIE06ICdlaW4gbcOhbmHDsHVyJyxcbiAgICAgICAgICAgIE1NOiAnJWQgbcOhbmHDsGlyJyxcbiAgICAgICAgICAgIHk6ICdlaXR0IMOhcicsXG4gICAgICAgICAgICB5eTogJyVkIMOhcicsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfVxcLi8sXG4gICAgICAgIG9yZGluYWw6ICclZC4nLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZm87XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogRnJlbmNoIFtmcl1cbi8vISBhdXRob3IgOiBKb2huIEZpc2NoZXIgOiBodHRwczovL2dpdGh1Yi5jb20vamZyb2ZmaWNlXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgbW9udGhzU3RyaWN0UmVnZXggPSAvXihqYW52aWVyfGbDqXZyaWVyfG1hcnN8YXZyaWx8bWFpfGp1aW58anVpbGxldHxhb8O7dHxzZXB0ZW1icmV8b2N0b2JyZXxub3ZlbWJyZXxkw6ljZW1icmUpL2ksXG4gICAgICAgIG1vbnRoc1Nob3J0U3RyaWN0UmVnZXggPSAvKGphbnZcXC4/fGbDqXZyXFwuP3xtYXJzfGF2clxcLj98bWFpfGp1aW58anVpbFxcLj98YW/Du3R8c2VwdFxcLj98b2N0XFwuP3xub3ZcXC4/fGTDqWNcXC4/KS9pLFxuICAgICAgICBtb250aHNSZWdleCA9IC8oamFudlxcLj98ZsOpdnJcXC4/fG1hcnN8YXZyXFwuP3xtYWl8anVpbnxqdWlsXFwuP3xhb8O7dHxzZXB0XFwuP3xvY3RcXC4/fG5vdlxcLj98ZMOpY1xcLj98amFudmllcnxmw6l2cmllcnxtYXJzfGF2cmlsfG1haXxqdWlufGp1aWxsZXR8YW/Du3R8c2VwdGVtYnJlfG9jdG9icmV8bm92ZW1icmV8ZMOpY2VtYnJlKS9pLFxuICAgICAgICBtb250aHNQYXJzZSA9IFtcbiAgICAgICAgICAgIC9eamFudi9pLFxuICAgICAgICAgICAgL15mw6l2ci9pLFxuICAgICAgICAgICAgL15tYXJzL2ksXG4gICAgICAgICAgICAvXmF2ci9pLFxuICAgICAgICAgICAgL15tYWkvaSxcbiAgICAgICAgICAgIC9eanVpbi9pLFxuICAgICAgICAgICAgL15qdWlsL2ksXG4gICAgICAgICAgICAvXmFvw7t0L2ksXG4gICAgICAgICAgICAvXnNlcHQvaSxcbiAgICAgICAgICAgIC9eb2N0L2ksXG4gICAgICAgICAgICAvXm5vdi9pLFxuICAgICAgICAgICAgL15kw6ljL2ksXG4gICAgICAgIF07XG5cbiAgICB2YXIgZnIgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdmcicsIHtcbiAgICAgICAgbW9udGhzOiAnamFudmllcl9mw6l2cmllcl9tYXJzX2F2cmlsX21haV9qdWluX2p1aWxsZXRfYW/Du3Rfc2VwdGVtYnJlX29jdG9icmVfbm92ZW1icmVfZMOpY2VtYnJlJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ2phbnYuX2bDqXZyLl9tYXJzX2F2ci5fbWFpX2p1aW5fanVpbC5fYW/Du3Rfc2VwdC5fb2N0Ll9ub3YuX2TDqWMuJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNSZWdleDogbW9udGhzUmVnZXgsXG4gICAgICAgIG1vbnRoc1Nob3J0UmVnZXg6IG1vbnRoc1JlZ2V4LFxuICAgICAgICBtb250aHNTdHJpY3RSZWdleDogbW9udGhzU3RyaWN0UmVnZXgsXG4gICAgICAgIG1vbnRoc1Nob3J0U3RyaWN0UmVnZXg6IG1vbnRoc1Nob3J0U3RyaWN0UmVnZXgsXG4gICAgICAgIG1vbnRoc1BhcnNlOiBtb250aHNQYXJzZSxcbiAgICAgICAgbG9uZ01vbnRoc1BhcnNlOiBtb250aHNQYXJzZSxcbiAgICAgICAgc2hvcnRNb250aHNQYXJzZTogbW9udGhzUGFyc2UsXG4gICAgICAgIHdlZWtkYXlzOiAnZGltYW5jaGVfbHVuZGlfbWFyZGlfbWVyY3JlZGlfamV1ZGlfdmVuZHJlZGlfc2FtZWRpJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnZGltLl9sdW4uX21hci5fbWVyLl9qZXUuX3Zlbi5fc2FtLicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdkaV9sdV9tYV9tZV9qZV92ZV9zYScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbQXVqb3VyZOKAmWh1aSDDoF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tEZW1haW4gw6BdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbw6BdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbSGllciDDoF0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdkZGRkIFtkZXJuaWVyIMOgXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ2RhbnMgJXMnLFxuICAgICAgICAgICAgcGFzdDogJ2lsIHkgYSAlcycsXG4gICAgICAgICAgICBzOiAncXVlbHF1ZXMgc2Vjb25kZXMnLFxuICAgICAgICAgICAgc3M6ICclZCBzZWNvbmRlcycsXG4gICAgICAgICAgICBtOiAndW5lIG1pbnV0ZScsXG4gICAgICAgICAgICBtbTogJyVkIG1pbnV0ZXMnLFxuICAgICAgICAgICAgaDogJ3VuZSBoZXVyZScsXG4gICAgICAgICAgICBoaDogJyVkIGhldXJlcycsXG4gICAgICAgICAgICBkOiAndW4gam91cicsXG4gICAgICAgICAgICBkZDogJyVkIGpvdXJzJyxcbiAgICAgICAgICAgIE06ICd1biBtb2lzJyxcbiAgICAgICAgICAgIE1NOiAnJWQgbW9pcycsXG4gICAgICAgICAgICB5OiAndW4gYW4nLFxuICAgICAgICAgICAgeXk6ICclZCBhbnMnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0oZXJ8KS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIsIHBlcmlvZCkge1xuICAgICAgICAgICAgc3dpdGNoIChwZXJpb2QpIHtcbiAgICAgICAgICAgICAgICAvLyBUT0RPOiBSZXR1cm4gJ2UnIHdoZW4gZGF5IG9mIG1vbnRoID4gMS4gTW92ZSB0aGlzIGNhc2UgaW5zaWRlXG4gICAgICAgICAgICAgICAgLy8gYmxvY2sgZm9yIG1hc2N1bGluZSB3b3JkcyBiZWxvdy5cbiAgICAgICAgICAgICAgICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL21vbWVudC9tb21lbnQvaXNzdWVzLzMzNzVcbiAgICAgICAgICAgICAgICBjYXNlICdEJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIChudW1iZXIgPT09IDEgPyAnZXInIDogJycpO1xuXG4gICAgICAgICAgICAgICAgLy8gV29yZHMgd2l0aCBtYXNjdWxpbmUgZ3JhbW1hdGljYWwgZ2VuZGVyOiBtb2lzLCB0cmltZXN0cmUsIGpvdXJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGNhc2UgJ00nOlxuICAgICAgICAgICAgICAgIGNhc2UgJ1EnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0RERCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnZCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAobnVtYmVyID09PSAxID8gJ2VyJyA6ICdlJyk7XG5cbiAgICAgICAgICAgICAgICAvLyBXb3JkcyB3aXRoIGZlbWluaW5lIGdyYW1tYXRpY2FsIGdlbmRlcjogc2VtYWluZVxuICAgICAgICAgICAgICAgIGNhc2UgJ3cnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ1cnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgKG51bWJlciA9PT0gMSA/ICdyZScgOiAnZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZnI7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogRnJlbmNoIChDYW5hZGEpIFtmci1jYV1cbi8vISBhdXRob3IgOiBKb25hdGhhbiBBYm91cmJpaCA6IGh0dHBzOi8vZ2l0aHViLmNvbS9qb25iY2FcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBmckNhID0gbW9tZW50LmRlZmluZUxvY2FsZSgnZnItY2EnLCB7XG4gICAgICAgIG1vbnRoczogJ2phbnZpZXJfZsOpdnJpZXJfbWFyc19hdnJpbF9tYWlfanVpbl9qdWlsbGV0X2Fvw7t0X3NlcHRlbWJyZV9vY3RvYnJlX25vdmVtYnJlX2TDqWNlbWJyZScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdqYW52Ll9mw6l2ci5fbWFyc19hdnIuX21haV9qdWluX2p1aWwuX2Fvw7t0X3NlcHQuX29jdC5fbm92Ll9kw6ljLicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXM6ICdkaW1hbmNoZV9sdW5kaV9tYXJkaV9tZXJjcmVkaV9qZXVkaV92ZW5kcmVkaV9zYW1lZGknLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdkaW0uX2x1bi5fbWFyLl9tZXIuX2pldS5fdmVuLl9zYW0uJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ2RpX2x1X21hX21lX2plX3ZlX3NhJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdZWVlZLU1NLUREJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tBdWpvdXJk4oCZaHVpIMOgXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW0RlbWFpbiDDoF0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFvDoF0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tIaWVyIMOgXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ2RkZGQgW2Rlcm5pZXIgw6BdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnZGFucyAlcycsXG4gICAgICAgICAgICBwYXN0OiAnaWwgeSBhICVzJyxcbiAgICAgICAgICAgIHM6ICdxdWVscXVlcyBzZWNvbmRlcycsXG4gICAgICAgICAgICBzczogJyVkIHNlY29uZGVzJyxcbiAgICAgICAgICAgIG06ICd1bmUgbWludXRlJyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWludXRlcycsXG4gICAgICAgICAgICBoOiAndW5lIGhldXJlJyxcbiAgICAgICAgICAgIGhoOiAnJWQgaGV1cmVzJyxcbiAgICAgICAgICAgIGQ6ICd1biBqb3VyJyxcbiAgICAgICAgICAgIGRkOiAnJWQgam91cnMnLFxuICAgICAgICAgICAgTTogJ3VuIG1vaXMnLFxuICAgICAgICAgICAgTU06ICclZCBtb2lzJyxcbiAgICAgICAgICAgIHk6ICd1biBhbicsXG4gICAgICAgICAgICB5eTogJyVkIGFucycsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfShlcnxlKS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIsIHBlcmlvZCkge1xuICAgICAgICAgICAgc3dpdGNoIChwZXJpb2QpIHtcbiAgICAgICAgICAgICAgICAvLyBXb3JkcyB3aXRoIG1hc2N1bGluZSBncmFtbWF0aWNhbCBnZW5kZXI6IG1vaXMsIHRyaW1lc3RyZSwgam91clxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgY2FzZSAnTSc6XG4gICAgICAgICAgICAgICAgY2FzZSAnUSc6XG4gICAgICAgICAgICAgICAgY2FzZSAnRCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnREREJzpcbiAgICAgICAgICAgICAgICBjYXNlICdkJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIChudW1iZXIgPT09IDEgPyAnZXInIDogJ2UnKTtcblxuICAgICAgICAgICAgICAgIC8vIFdvcmRzIHdpdGggZmVtaW5pbmUgZ3JhbW1hdGljYWwgZ2VuZGVyOiBzZW1haW5lXG4gICAgICAgICAgICAgICAgY2FzZSAndyc6XG4gICAgICAgICAgICAgICAgY2FzZSAnVyc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAobnVtYmVyID09PSAxID8gJ3JlJyA6ICdlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZnJDYTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBGcmVuY2ggKFN3aXR6ZXJsYW5kKSBbZnItY2hdXG4vLyEgYXV0aG9yIDogR2FzcGFyZCBCdWNoZXIgOiBodHRwczovL2dpdGh1Yi5jb20vZ2FzcGFyZFxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIGZyQ2ggPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdmci1jaCcsIHtcbiAgICAgICAgbW9udGhzOiAnamFudmllcl9mw6l2cmllcl9tYXJzX2F2cmlsX21haV9qdWluX2p1aWxsZXRfYW/Du3Rfc2VwdGVtYnJlX29jdG9icmVfbm92ZW1icmVfZMOpY2VtYnJlJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ2phbnYuX2bDqXZyLl9tYXJzX2F2ci5fbWFpX2p1aW5fanVpbC5fYW/Du3Rfc2VwdC5fb2N0Ll9ub3YuX2TDqWMuJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czogJ2RpbWFuY2hlX2x1bmRpX21hcmRpX21lcmNyZWRpX2pldWRpX3ZlbmRyZWRpX3NhbWVkaScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ2RpbS5fbHVuLl9tYXIuX21lci5famV1Ll92ZW4uX3NhbS4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnZGlfbHVfbWFfbWVfamVfdmVfc2EnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW0F1am91cmTigJlodWkgw6BdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbRGVtYWluIMOgXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW8OgXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW0hpZXIgw6BdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnZGRkZCBbZGVybmllciDDoF0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdkYW5zICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICdpbCB5IGEgJXMnLFxuICAgICAgICAgICAgczogJ3F1ZWxxdWVzIHNlY29uZGVzJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2Vjb25kZXMnLFxuICAgICAgICAgICAgbTogJ3VuZSBtaW51dGUnLFxuICAgICAgICAgICAgbW06ICclZCBtaW51dGVzJyxcbiAgICAgICAgICAgIGg6ICd1bmUgaGV1cmUnLFxuICAgICAgICAgICAgaGg6ICclZCBoZXVyZXMnLFxuICAgICAgICAgICAgZDogJ3VuIGpvdXInLFxuICAgICAgICAgICAgZGQ6ICclZCBqb3VycycsXG4gICAgICAgICAgICBNOiAndW4gbW9pcycsXG4gICAgICAgICAgICBNTTogJyVkIG1vaXMnLFxuICAgICAgICAgICAgeTogJ3VuIGFuJyxcbiAgICAgICAgICAgIHl5OiAnJWQgYW5zJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9KGVyfGUpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlciwgcGVyaW9kKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHBlcmlvZCkge1xuICAgICAgICAgICAgICAgIC8vIFdvcmRzIHdpdGggbWFzY3VsaW5lIGdyYW1tYXRpY2FsIGdlbmRlcjogbW9pcywgdHJpbWVzdHJlLCBqb3VyXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBjYXNlICdNJzpcbiAgICAgICAgICAgICAgICBjYXNlICdRJzpcbiAgICAgICAgICAgICAgICBjYXNlICdEJzpcbiAgICAgICAgICAgICAgICBjYXNlICdEREQnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ2QnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgKG51bWJlciA9PT0gMSA/ICdlcicgOiAnZScpO1xuXG4gICAgICAgICAgICAgICAgLy8gV29yZHMgd2l0aCBmZW1pbmluZSBncmFtbWF0aWNhbCBnZW5kZXI6IHNlbWFpbmVcbiAgICAgICAgICAgICAgICBjYXNlICd3JzpcbiAgICAgICAgICAgICAgICBjYXNlICdXJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIChudW1iZXIgPT09IDEgPyAncmUnIDogJ2UnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGZyQ2g7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogRnJpc2lhbiBbZnldXG4vLyEgYXV0aG9yIDogUm9iaW4gdmFuIGRlciBWbGlldCA6IGh0dHBzOi8vZ2l0aHViLmNvbS9yb2JpbjB2YW4wZGVyMHZcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBtb250aHNTaG9ydFdpdGhEb3RzID0gJ2phbi5fZmViLl9tcnQuX2Fwci5fbWFpX2p1bi5fanVsLl9hdWcuX3NlcC5fb2t0Ll9ub3YuX2Rlcy4nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0V2l0aG91dERvdHMgPSAnamFuX2ZlYl9tcnRfYXByX21haV9qdW5fanVsX2F1Z19zZXBfb2t0X25vdl9kZXMnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICk7XG5cbiAgICB2YXIgZnkgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdmeScsIHtcbiAgICAgICAgbW9udGhzOiAnamFubmV3YXJpc19mZWJyZXdhcmlzX21hYXJ0X2FwcmlsX21hYWllX2p1bnlfanVseV9hdWd1c3R1c19zZXB0aW1iZXJfb2t0b2Jlcl9ub3ZpbWJlcl9kZXNpbWJlcicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6IGZ1bmN0aW9uIChtLCBmb3JtYXQpIHtcbiAgICAgICAgICAgIGlmICghbSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBtb250aHNTaG9ydFdpdGhEb3RzO1xuICAgICAgICAgICAgfSBlbHNlIGlmICgvLU1NTS0vLnRlc3QoZm9ybWF0KSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBtb250aHNTaG9ydFdpdGhvdXREb3RzW20ubW9udGgoKV07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBtb250aHNTaG9ydFdpdGhEb3RzW20ubW9udGgoKV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzOiAnc25laW5fbW9hbmRlaV90aWlzZGVpX3dvYW5zZGVpX3RvbmdlcnNkZWlfZnJlZWRfc25lb24nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdzaS5fbW8uX3RpLl93by5fdG8uX2ZyLl9zby4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnU2lfTW9fVGlfV29fVG9fRnJfU28nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0RELU1NLVlZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW2hqb2VkIG9tXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW21vYXJuIG9tXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW29tXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW2p1c3RlciBvbV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdbw7RmcsO7bmVdIGRkZGQgW29tXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ29lciAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMgbHluJyxcbiAgICAgICAgICAgIHM6ICdpbiBwZWFyIHNla29uZGVuJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2Vrb25kZW4nLFxuICAgICAgICAgICAgbTogJ2llbiBtaW7DunQnLFxuICAgICAgICAgICAgbW06ICclZCBtaW51dGVuJyxcbiAgICAgICAgICAgIGg6ICdpZW4gb2VyZScsXG4gICAgICAgICAgICBoaDogJyVkIG9lcmVuJyxcbiAgICAgICAgICAgIGQ6ICdpZW4gZGVpJyxcbiAgICAgICAgICAgIGRkOiAnJWQgZGFnZW4nLFxuICAgICAgICAgICAgTTogJ2llbiBtb2FubmUnLFxuICAgICAgICAgICAgTU06ICclZCBtb2FubmVuJyxcbiAgICAgICAgICAgIHk6ICdpZW4gamllcicsXG4gICAgICAgICAgICB5eTogJyVkIGppZXJyZW4nLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0oc3RlfGRlKS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgbnVtYmVyICtcbiAgICAgICAgICAgICAgICAobnVtYmVyID09PSAxIHx8IG51bWJlciA9PT0gOCB8fCBudW1iZXIgPj0gMjAgPyAnc3RlJyA6ICdkZScpXG4gICAgICAgICAgICApO1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZnk7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogSXJpc2ggb3IgSXJpc2ggR2FlbGljIFtnYV1cbi8vISBhdXRob3IgOiBBbmRyw6kgU2lsdmEgOiBodHRwczovL2dpdGh1Yi5jb20vYXNrcHRcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBtb250aHMgPSBbXG4gICAgICAgICAgICAnRWFuw6FpcicsXG4gICAgICAgICAgICAnRmVhYmhyYScsXG4gICAgICAgICAgICAnTcOhcnRhJyxcbiAgICAgICAgICAgICdBaWJyZcOhbicsXG4gICAgICAgICAgICAnQmVhbHRhaW5lJyxcbiAgICAgICAgICAgICdNZWl0aGVhbWgnLFxuICAgICAgICAgICAgJ0nDumlsJyxcbiAgICAgICAgICAgICdMw7puYXNhJyxcbiAgICAgICAgICAgICdNZcOhbiBGw7NtaGFpcicsXG4gICAgICAgICAgICAnRGVpcmVhZGggRsOzbWhhaXInLFxuICAgICAgICAgICAgJ1NhbWhhaW4nLFxuICAgICAgICAgICAgJ05vbGxhaWcnLFxuICAgICAgICBdLFxuICAgICAgICBtb250aHNTaG9ydCA9IFtcbiAgICAgICAgICAgICdFYW4nLFxuICAgICAgICAgICAgJ0ZlYWJoJyxcbiAgICAgICAgICAgICdNw6FydCcsXG4gICAgICAgICAgICAnQWliJyxcbiAgICAgICAgICAgICdCZWFsJyxcbiAgICAgICAgICAgICdNZWl0aCcsXG4gICAgICAgICAgICAnScO6aWwnLFxuICAgICAgICAgICAgJ0zDum4nLFxuICAgICAgICAgICAgJ00uRi4nLFxuICAgICAgICAgICAgJ0QuRi4nLFxuICAgICAgICAgICAgJ1NhbWgnLFxuICAgICAgICAgICAgJ05vbGwnLFxuICAgICAgICBdLFxuICAgICAgICB3ZWVrZGF5cyA9IFtcbiAgICAgICAgICAgICdEw6kgRG9taG5haWdoJyxcbiAgICAgICAgICAgICdEw6kgTHVhaW4nLFxuICAgICAgICAgICAgJ0TDqSBNw6FpcnQnLFxuICAgICAgICAgICAgJ0TDqSBDw6lhZGFvaW4nLFxuICAgICAgICAgICAgJ0TDqWFyZGFvaW4nLFxuICAgICAgICAgICAgJ0TDqSBoQW9pbmUnLFxuICAgICAgICAgICAgJ0TDqSBTYXRoYWlybicsXG4gICAgICAgIF0sXG4gICAgICAgIHdlZWtkYXlzU2hvcnQgPSBbJ0RvbWgnLCAnTHVhbicsICdNw6FpcnQnLCAnQ8OpYWQnLCAnRMOpYXInLCAnQW9pbmUnLCAnU2F0aCddLFxuICAgICAgICB3ZWVrZGF5c01pbiA9IFsnRG8nLCAnTHUnLCAnTcOhJywgJ0PDqScsICdEw6knLCAnQScsICdTYSddO1xuXG4gICAgdmFyIGdhID0gbW9tZW50LmRlZmluZUxvY2FsZSgnZ2EnLCB7XG4gICAgICAgIG1vbnRoczogbW9udGhzLFxuICAgICAgICBtb250aHNTaG9ydDogbW9udGhzU2hvcnQsXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzOiB3ZWVrZGF5cyxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogd2Vla2RheXNTaG9ydCxcbiAgICAgICAgd2Vla2RheXNNaW46IHdlZWtkYXlzTWluLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW0lubml1IGFnXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW0Ftw6FyYWNoIGFnXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW2FnXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW0lubsOpIGFnXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ2RkZGQgW3NlbyBjYWl0ZV0gW2FnXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ2kgJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzIMOzIHNoaW4nLFxuICAgICAgICAgICAgczogJ2PDunBsYSBzb2ljaW5kJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc29pY2luZCcsXG4gICAgICAgICAgICBtOiAnbsOzaW3DqWFkJyxcbiAgICAgICAgICAgIG1tOiAnJWQgbsOzaW3DqWFkJyxcbiAgICAgICAgICAgIGg6ICd1YWlyIGFuIGNobG9pZycsXG4gICAgICAgICAgICBoaDogJyVkIHVhaXIgYW4gY2hsb2lnJyxcbiAgICAgICAgICAgIGQ6ICdsw6EnLFxuICAgICAgICAgICAgZGQ6ICclZCBsw6EnLFxuICAgICAgICAgICAgTTogJ23DrScsXG4gICAgICAgICAgICBNTTogJyVkIG3DrW9ubmEnLFxuICAgICAgICAgICAgeTogJ2JsaWFpbicsXG4gICAgICAgICAgICB5eTogJyVkIGJsaWFpbicsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfShkfG5hfG1oKS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIHZhciBvdXRwdXQgPSBudW1iZXIgPT09IDEgPyAnZCcgOiBudW1iZXIgJSAxMCA9PT0gMiA/ICduYScgOiAnbWgnO1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIG91dHB1dDtcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGdhO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IFNjb3R0aXNoIEdhZWxpYyBbZ2RdXG4vLyEgYXV0aG9yIDogSm9uIEFzaGRvd24gOiBodHRwczovL2dpdGh1Yi5jb20vam9uYXNoZG93blxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIG1vbnRocyA9IFtcbiAgICAgICAgICAgICdBbSBGYW9pbGxlYWNoJyxcbiAgICAgICAgICAgICdBbiBHZWFycmFuJyxcbiAgICAgICAgICAgICdBbSBNw6BydCcsXG4gICAgICAgICAgICAnQW4gR2libGVhbicsXG4gICAgICAgICAgICAnQW4gQ8OoaXRlYW4nLFxuICAgICAgICAgICAgJ0FuIHQtw5JnbWhpb3MnLFxuICAgICAgICAgICAgJ0FuIHQtSXVjaGFyJyxcbiAgICAgICAgICAgICdBbiBMw7luYXN0YWwnLFxuICAgICAgICAgICAgJ0FuIHQtU3VsdGFpbicsXG4gICAgICAgICAgICAnQW4gRMOgbWhhaXInLFxuICAgICAgICAgICAgJ0FuIHQtU2FtaGFpbicsXG4gICAgICAgICAgICAnQW4gRMO5YmhsYWNoZCcsXG4gICAgICAgIF0sXG4gICAgICAgIG1vbnRoc1Nob3J0ID0gW1xuICAgICAgICAgICAgJ0Zhb2knLFxuICAgICAgICAgICAgJ0dlYXInLFxuICAgICAgICAgICAgJ03DoHJ0JyxcbiAgICAgICAgICAgICdHaWJsJyxcbiAgICAgICAgICAgICdDw6hpdCcsXG4gICAgICAgICAgICAnw5JnbWgnLFxuICAgICAgICAgICAgJ0l1Y2gnLFxuICAgICAgICAgICAgJ0zDuW4nLFxuICAgICAgICAgICAgJ1N1bHQnLFxuICAgICAgICAgICAgJ0TDoG1oJyxcbiAgICAgICAgICAgICdTYW1oJyxcbiAgICAgICAgICAgICdEw7liaCcsXG4gICAgICAgIF0sXG4gICAgICAgIHdlZWtkYXlzID0gW1xuICAgICAgICAgICAgJ0RpZMOybWhuYWljaCcsXG4gICAgICAgICAgICAnRGlsdWFpbicsXG4gICAgICAgICAgICAnRGltw6BpcnQnLFxuICAgICAgICAgICAgJ0RpY2lhZGFpbicsXG4gICAgICAgICAgICAnRGlhcmRhb2luJyxcbiAgICAgICAgICAgICdEaWhhb2luZScsXG4gICAgICAgICAgICAnRGlzYXRoYWlybmUnLFxuICAgICAgICBdLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0ID0gWydEaWQnLCAnRGlsJywgJ0RpbScsICdEaWMnLCAnRGlhJywgJ0RpaCcsICdEaXMnXSxcbiAgICAgICAgd2Vla2RheXNNaW4gPSBbJ0TDsicsICdMdScsICdNw6AnLCAnQ2knLCAnQXInLCAnSGEnLCAnU2EnXTtcblxuICAgIHZhciBnZCA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2dkJywge1xuICAgICAgICBtb250aHM6IG1vbnRocyxcbiAgICAgICAgbW9udGhzU2hvcnQ6IG1vbnRoc1Nob3J0LFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czogd2Vla2RheXMsXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6IHdlZWtkYXlzU2hvcnQsXG4gICAgICAgIHdlZWtkYXlzTWluOiB3ZWVrZGF5c01pbixcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tBbi1kaXVnaCBhaWddIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbQS1tw6BpcmVhY2ggYWlnXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW2FpZ10gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tBbi1kw6ggYWlnXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ2RkZGQgW3NlbyBjaGFpZGhdIFthaWddIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnYW5uIGFuICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICdiaG8gY2hpb25uICVzJyxcbiAgICAgICAgICAgIHM6ICdiZWFnYW4gZGlvZ2FuJyxcbiAgICAgICAgICAgIHNzOiAnJWQgZGlvZ2FuJyxcbiAgICAgICAgICAgIG06ICdtaW9uYWlkJyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWlvbmFpZGVhbicsXG4gICAgICAgICAgICBoOiAndWFpcicsXG4gICAgICAgICAgICBoaDogJyVkIHVhaXJlYW4nLFxuICAgICAgICAgICAgZDogJ2xhdGhhJyxcbiAgICAgICAgICAgIGRkOiAnJWQgbGF0aGEnLFxuICAgICAgICAgICAgTTogJ23DrG9zJyxcbiAgICAgICAgICAgIE1NOiAnJWQgbcOsb3NhbicsXG4gICAgICAgICAgICB5OiAnYmxpYWRobmEnLFxuICAgICAgICAgICAgeXk6ICclZCBibGlhZGhuYScsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfShkfG5hfG1oKS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIHZhciBvdXRwdXQgPSBudW1iZXIgPT09IDEgPyAnZCcgOiBudW1iZXIgJSAxMCA9PT0gMiA/ICduYScgOiAnbWgnO1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIG91dHB1dDtcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGdkO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEdhbGljaWFuIFtnbF1cbi8vISBhdXRob3IgOiBKdWFuIEcuIEh1cnRhZG8gOiBodHRwczovL2dpdGh1Yi5jb20vanVhbmdodXJ0YWRvXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgZ2wgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdnbCcsIHtcbiAgICAgICAgbW9udGhzOiAneGFuZWlyb19mZWJyZWlyb19tYXJ6b19hYnJpbF9tYWlvX3h1w7FvX3h1bGxvX2Fnb3N0b19zZXRlbWJyb19vdXR1YnJvX25vdmVtYnJvX2RlY2VtYnJvJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ3hhbi5fZmViLl9tYXIuX2Fici5fbWFpLl94dcOxLl94dWwuX2Fnby5fc2V0Ll9vdXQuX25vdi5fZGVjLicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXM6ICdkb21pbmdvX2x1bnNfbWFydGVzX23DqXJjb3Jlc194b3Zlc192ZW5yZXNfc8OhYmFkbycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ2RvbS5fbHVuLl9tYXIuX23DqXIuX3hvdi5fdmVuLl9zw6FiLicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdkb19sdV9tYV9tw6lfeG9fdmVfc8OhJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0g6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgW2RlXSBNTU1NIFtkZV0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIFtkZV0gTU1NTSBbZGVdIFlZWVkgSDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBbZGVdIE1NTU0gW2RlXSBZWVlZIEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnW2hveGUgJyArICh0aGlzLmhvdXJzKCkgIT09IDEgPyAnw6FzJyA6ICfDoScpICsgJ10gTFQnO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG5leHREYXk6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ1ttYcOxw6EgJyArICh0aGlzLmhvdXJzKCkgIT09IDEgPyAnw6FzJyA6ICfDoScpICsgJ10gTFQnO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG5leHRXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdkZGRkIFsnICsgKHRoaXMuaG91cnMoKSAhPT0gMSA/ICfDoXMnIDogJ2EnKSArICddIExUJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYXN0RGF5OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdbb250ZSAnICsgKHRoaXMuaG91cnMoKSAhPT0gMSA/ICfDoScgOiAnYScpICsgJ10gTFQnO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxhc3RXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgJ1tvXSBkZGRkIFtwYXNhZG8gJyArICh0aGlzLmhvdXJzKCkgIT09IDEgPyAnw6FzJyA6ICdhJykgKyAnXSBMVCdcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiBmdW5jdGlvbiAoc3RyKSB7XG4gICAgICAgICAgICAgICAgaWYgKHN0ci5pbmRleE9mKCd1bicpID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnbicgKyBzdHI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiAnZW4gJyArIHN0cjtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwYXN0OiAnaGFpICVzJyxcbiAgICAgICAgICAgIHM6ICd1bnMgc2VndW5kb3MnLFxuICAgICAgICAgICAgc3M6ICclZCBzZWd1bmRvcycsXG4gICAgICAgICAgICBtOiAndW4gbWludXRvJyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWludXRvcycsXG4gICAgICAgICAgICBoOiAndW5oYSBob3JhJyxcbiAgICAgICAgICAgIGhoOiAnJWQgaG9yYXMnLFxuICAgICAgICAgICAgZDogJ3VuIGTDrWEnLFxuICAgICAgICAgICAgZGQ6ICclZCBkw61hcycsXG4gICAgICAgICAgICBNOiAndW4gbWVzJyxcbiAgICAgICAgICAgIE1NOiAnJWQgbWVzZXMnLFxuICAgICAgICAgICAgeTogJ3VuIGFubycsXG4gICAgICAgICAgICB5eTogJyVkIGFub3MnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn3Cui8sXG4gICAgICAgIG9yZGluYWw6ICclZMK6JyxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGdsO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEtvbmthbmkgRGV2YW5hZ2FyaSBzY3JpcHQgW2dvbS1kZXZhXVxuLy8hIGF1dGhvciA6IFRoZSBEaXNjb3ZlcmVyIDogaHR0cHM6Ly9naXRodWIuY29tL1dpa2lEaXNjb3ZlcmVyXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICBmdW5jdGlvbiBwcm9jZXNzUmVsYXRpdmVUaW1lKG51bWJlciwgd2l0aG91dFN1ZmZpeCwga2V5LCBpc0Z1dHVyZSkge1xuICAgICAgICB2YXIgZm9ybWF0ID0ge1xuICAgICAgICAgICAgczogWyfgpKXgpYvgpKHgpK/gpL4g4KS44KWF4KSV4KSC4KSh4KS+4KSC4KSo4KWAJywgJ+CkpeCli+CkoeClhyDgpLjgpYXgpJXgpILgpKEnXSxcbiAgICAgICAgICAgIHNzOiBbbnVtYmVyICsgJyDgpLjgpYXgpJXgpILgpKHgpL7gpILgpKjgpYAnLCBudW1iZXIgKyAnIOCkuOClheCkleCkguCkoSddLFxuICAgICAgICAgICAgbTogWyfgpI/gpJXgpL4g4KSu4KS/4KSj4KSf4KS+4KSoJywgJ+Ckj+CklSDgpK7gpL/gpKjgpYLgpJ8nXSxcbiAgICAgICAgICAgIG1tOiBbbnVtYmVyICsgJyDgpK7gpL/gpKPgpJ/gpL7gpILgpKjgpYAnLCBudW1iZXIgKyAnIOCkruCkv+Cko+Ckn+CkvuCkgiddLFxuICAgICAgICAgICAgaDogWyfgpI/gpJXgpL4g4KS14KSw4KS+4KSoJywgJ+Ckj+CklSDgpLXgpLAnXSxcbiAgICAgICAgICAgIGhoOiBbbnVtYmVyICsgJyDgpLXgpLDgpL7gpILgpKjgpYAnLCBudW1iZXIgKyAnIOCkteCksOCkvuCkgiddLFxuICAgICAgICAgICAgZDogWyfgpI/gpJXgpL4g4KSm4KS/4KS44KS+4KSoJywgJ+Ckj+CklSDgpKbgpYDgpLgnXSxcbiAgICAgICAgICAgIGRkOiBbbnVtYmVyICsgJyDgpKbgpL/gpLjgpL7gpILgpKjgpYAnLCBudW1iZXIgKyAnIOCkpuClgOCkuCddLFxuICAgICAgICAgICAgTTogWyfgpI/gpJXgpL4g4KSu4KWN4KS54KSv4KSo4KWN4KSv4KS+4KSoJywgJ+Ckj+CklSDgpK7gpY3gpLngpK/gpKjgpYsnXSxcbiAgICAgICAgICAgIE1NOiBbbnVtYmVyICsgJyDgpK7gpY3gpLngpK/gpKjgpY3gpK/gpL7gpKjgpYAnLCBudW1iZXIgKyAnIOCkruCljeCkueCkr+CkqOClhyddLFxuICAgICAgICAgICAgeTogWyfgpI/gpJXgpL4g4KS14KSw4KWN4KS44KS+4KSoJywgJ+Ckj+CklSDgpLXgpLDgpY3gpLgnXSxcbiAgICAgICAgICAgIHl5OiBbbnVtYmVyICsgJyDgpLXgpLDgpY3gpLjgpL7gpILgpKjgpYAnLCBudW1iZXIgKyAnIOCkteCksOCljeCkuOCkvuCkgiddLFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gaXNGdXR1cmUgPyBmb3JtYXRba2V5XVswXSA6IGZvcm1hdFtrZXldWzFdO1xuICAgIH1cblxuICAgIHZhciBnb21EZXZhID0gbW9tZW50LmRlZmluZUxvY2FsZSgnZ29tLWRldmEnLCB7XG4gICAgICAgIG1vbnRoczoge1xuICAgICAgICAgICAgc3RhbmRhbG9uZTogJ+CknOCkvuCkqOClh+CkteCkvuCksOClgF/gpKvgpYfgpKzgpY3gpLDgpYHgpLXgpL7gpLDgpYBf4KSu4KS+4KSw4KWN4KSaX+Ckj+CkquCljeCksOClgOCksl/gpK7gpYdf4KSc4KWC4KSoX+CknOClgeCksuCkr1/gpJHgpJfgpLjgpY3gpJ9f4KS44KSq4KWN4KSf4KWH4KSC4KSs4KSwX+CkkeCkleCljeCkn+Cli+CkrOCksF/gpKjgpYvgpLXgpY3gpLngpYfgpILgpKzgpLBf4KSh4KS/4KS44KWH4KSC4KSs4KSwJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBmb3JtYXQ6ICfgpJzgpL7gpKjgpYfgpLXgpL7gpLDgpYDgpJrgpY3gpK/gpL5f4KSr4KWH4KSs4KWN4KSw4KWB4KS14KS+4KSw4KWA4KSa4KWN4KSv4KS+X+CkruCkvuCksOCljeCkmuCkvuCkmuCljeCkr+Ckvl/gpI/gpKrgpY3gpLDgpYDgpLLgpL7gpJrgpY3gpK/gpL5f4KSu4KWH4KSv4KS+4KSa4KWN4KSv4KS+X+CknOClguCkqOCkvuCkmuCljeCkr+Ckvl/gpJzgpYHgpLLgpK/gpL7gpJrgpY3gpK/gpL5f4KSR4KSX4KS44KWN4KSf4KS+4KSa4KWN4KSv4KS+X+CkuOCkquCljeCkn+Clh+CkguCkrOCksOCkvuCkmuCljeCkr+Ckvl/gpJHgpJXgpY3gpJ/gpYvgpKzgpLDgpL7gpJrgpY3gpK/gpL5f4KSo4KWL4KS14KWN4KS54KWH4KSC4KSs4KSw4KS+4KSa4KWN4KSv4KS+X+CkoeCkv+CkuOClh+CkguCkrOCksOCkvuCkmuCljeCkr+Ckvicuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgaXNGb3JtYXQ6IC9NTU1NKFxccykrRFtvRF0/LyxcbiAgICAgICAgfSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICfgpJzgpL7gpKjgpYcuX+Ckq+Clh+CkrOCljeCksOClgS5f4KSu4KS+4KSw4KWN4KSaX+Ckj+CkquCljeCksOClgC5f4KSu4KWHX+CknOClguCkqF/gpJzgpYHgpLIuX+CkkeCkly5f4KS44KSq4KWN4KSf4KWH4KSCLl/gpJHgpJXgpY3gpJ/gpYsuX+CkqOCli+CkteCljeCkueClh+Ckgi5f4KSh4KS/4KS44KWH4KSCLicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXM6ICfgpIbgpK/gpKTgpL7gpLBf4KS44KWL4KSu4KS+4KSwX+CkruCkguCkl+Cks+CkvuCksF/gpKzgpYHgpKfgpLXgpL7gpLBf4KSs4KS/4KSw4KWH4KS44KWN4KSk4KS+4KSwX+CkuOClgeCkleCljeCksOCkvuCksF/gpLbgpYfgpKjgpLXgpL7gpLAnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfgpIbgpK/gpKQuX+CkuOCli+Ckri5f4KSu4KSC4KSX4KSzLl/gpKzgpYHgpKcuX+CkrOCljeCksOClh+CkuOCljeCkpC5f4KS44KWB4KSV4KWN4KSwLl/gpLbgpYfgpKguJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ+Ckhl/gpLjgpYtf4KSu4KSCX+CkrOClgV/gpKzgpY3gpLDgpYdf4KS44KWBX+CktuClhycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdBIGg6bW0gW+CkteCkvuCknOCkpOCkvuCkgl0nLFxuICAgICAgICAgICAgTFRTOiAnQSBoOm1tOnNzIFvgpLXgpL7gpJzgpKTgpL7gpIJdJyxcbiAgICAgICAgICAgIEw6ICdERC1NTS1ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgQSBoOm1tIFvgpLXgpL7gpJzgpKTgpL7gpIJdJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBNTU1NIERvLCBZWVlZLCBBIGg6bW0gW+CkteCkvuCknOCkpOCkvuCkgl0nLFxuICAgICAgICAgICAgbGxsbDogJ2RkZCwgRCBNTU0gWVlZWSwgQSBoOm1tIFvgpLXgpL7gpJzgpKTgpL7gpIJdJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb4KSG4KSv4KScXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW+Ckq+CkvuCksuCljeCkr+CkvuCkgl0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdb4KSr4KWB4KSh4KSy4KWLXSBkZGRkWyxdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb4KSV4KS+4KSyXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1vgpKvgpL7gpJ/gpLLgpYtdIGRkZGRbLF0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICclcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMg4KSG4KSm4KWA4KSCJyxcbiAgICAgICAgICAgIHM6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBzczogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIG06IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBtbTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIGg6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBoaDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIGQ6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBkZDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIE06IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBNTTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIHk6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICB5eTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9KOCkteClh+CksCkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyLCBwZXJpb2QpIHtcbiAgICAgICAgICAgIHN3aXRjaCAocGVyaW9kKSB7XG4gICAgICAgICAgICAgICAgLy8gdGhlIG9yZGluYWwgJ+CkteClh+CksCcgb25seSBhcHBsaWVzIHRvIGRheSBvZiB0aGUgbW9udGhcbiAgICAgICAgICAgICAgICBjYXNlICdEJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICfgpLXgpYfgpLAnO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgY2FzZSAnTSc6XG4gICAgICAgICAgICAgICAgY2FzZSAnUSc6XG4gICAgICAgICAgICAgICAgY2FzZSAnREREJzpcbiAgICAgICAgICAgICAgICBjYXNlICdkJzpcbiAgICAgICAgICAgICAgICBjYXNlICd3JzpcbiAgICAgICAgICAgICAgICBjYXNlICdXJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv4KSw4KS+4KSk4KWAfOCkuOCkleCkvuCks+ClgOCkgnzgpKbgpKjgpKrgpL7gpLDgpL7gpIJ84KS44KS+4KSC4KSc4KWHLyxcbiAgICAgICAgbWVyaWRpZW1Ib3VyOiBmdW5jdGlvbiAoaG91ciwgbWVyaWRpZW0pIHtcbiAgICAgICAgICAgIGlmIChob3VyID09PSAxMikge1xuICAgICAgICAgICAgICAgIGhvdXIgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG1lcmlkaWVtID09PSAn4KSw4KS+4KSk4KWAJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyIDwgNCA/IGhvdXIgOiBob3VyICsgMTI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAn4KS44KSV4KS+4KSz4KWA4KSCJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+CkpuCkqOCkquCkvuCksOCkvuCkgicpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciA+IDEyID8gaG91ciA6IGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfgpLjgpL7gpILgpJzgpYcnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyIDwgNCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4KSw4KS+4KSk4KWAJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDEyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgpLjgpJXgpL7gpLPgpYDgpIInO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTYpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CkpuCkqOCkquCkvuCksOCkvuCkgic7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAyMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4KS44KS+4KSC4KSc4KWHJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgpLDgpL7gpKTgpYAnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGdvbURldmE7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogS29ua2FuaSBMYXRpbiBzY3JpcHQgW2dvbS1sYXRuXVxuLy8hIGF1dGhvciA6IFRoZSBEaXNjb3ZlcmVyIDogaHR0cHM6Ly9naXRodWIuY29tL1dpa2lEaXNjb3ZlcmVyXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICBmdW5jdGlvbiBwcm9jZXNzUmVsYXRpdmVUaW1lKG51bWJlciwgd2l0aG91dFN1ZmZpeCwga2V5LCBpc0Z1dHVyZSkge1xuICAgICAgICB2YXIgZm9ybWF0ID0ge1xuICAgICAgICAgICAgczogWyd0aG9kZGVhIHNla29uZGFtbmknLCAndGhvZGRlIHNla29uZCddLFxuICAgICAgICAgICAgc3M6IFtudW1iZXIgKyAnIHNla29uZGFtbmknLCBudW1iZXIgKyAnIHNla29uZCddLFxuICAgICAgICAgICAgbTogWydla2EgbWludGFuJywgJ2VrIG1pbnV0J10sXG4gICAgICAgICAgICBtbTogW251bWJlciArICcgbWludGFtbmknLCBudW1iZXIgKyAnIG1pbnRhbSddLFxuICAgICAgICAgICAgaDogWydla2Egdm9yYW4nLCAnZWsgdm9yJ10sXG4gICAgICAgICAgICBoaDogW251bWJlciArICcgdm9yYW1uaScsIG51bWJlciArICcgdm9yYW0nXSxcbiAgICAgICAgICAgIGQ6IFsnZWthIGRpc2FuJywgJ2VrIGRpcyddLFxuICAgICAgICAgICAgZGQ6IFtudW1iZXIgKyAnIGRpc2FtbmknLCBudW1iZXIgKyAnIGRpcyddLFxuICAgICAgICAgICAgTTogWydla2EgbWhvaW5lYW4nLCAnZWsgbWhvaW5vJ10sXG4gICAgICAgICAgICBNTTogW251bWJlciArICcgbWhvaW5lYW1uaScsIG51bWJlciArICcgbWhvaW5lJ10sXG4gICAgICAgICAgICB5OiBbJ2VrYSB2b3JzYW4nLCAnZWsgdm9yb3MnXSxcbiAgICAgICAgICAgIHl5OiBbbnVtYmVyICsgJyB2b3JzYW1uaScsIG51bWJlciArICcgdm9yc2FtJ10sXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBpc0Z1dHVyZSA/IGZvcm1hdFtrZXldWzBdIDogZm9ybWF0W2tleV1bMV07XG4gICAgfVxuXG4gICAgdmFyIGdvbUxhdG4gPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdnb20tbGF0bicsIHtcbiAgICAgICAgbW9udGhzOiB7XG4gICAgICAgICAgICBzdGFuZGFsb25lOiAnSmFuZXJfRmVicmVyX01hcnNfQWJyaWxfTWFpX0p1bl9KdWxhaV9BZ29zdF9TZXRlbWJyX090dWJyX05vdmVtYnJfRGV6ZW1icicuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgZm9ybWF0OiAnSmFuZXJhY2hlYV9GZWJyZXJhY2hlYV9NYXJzYWNoZWFfQWJyaWxhY2hlYV9NYWlhY2hlYV9KdW5hY2hlYV9KdWxhaWFjaGVhX0Fnb3N0YWNoZWFfU2V0ZW1icmFjaGVhX090dWJyYWNoZWFfTm92ZW1icmFjaGVhX0RlemVtYnJhY2hlYScuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgaXNGb3JtYXQ6IC9NTU1NKFxccykrRFtvRF0/LyxcbiAgICAgICAgfSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdKYW4uX0ZlYi5fTWFyc19BYnIuX01haV9KdW5fSnVsLl9BZ28uX1NldC5fT3R1Ll9Ob3YuX0Rlei4nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzOiBcIkFpdGFyX1NvbWFyX01vbmdsbGFyX0J1ZGh2YXJfQmlyZXN0YXJfU3VrcmFyX1Nvbid2YXJcIi5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnQWl0Ll9Tb20uX01vbi5fQnVkLl9CcmUuX1N1ay5fU29uLicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdBaV9TbV9Nb19CdV9Ccl9TdV9Tbicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdBIGg6bW0gW3ZhenRhXScsXG4gICAgICAgICAgICBMVFM6ICdBIGg6bW06c3MgW3ZhenRhXScsXG4gICAgICAgICAgICBMOiAnREQtTU0tWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEEgaDptbSBbdmF6dGFdJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBNTU1NIERvLCBZWVlZLCBBIGg6bW0gW3ZhenRhXScsXG4gICAgICAgICAgICBsbGxsOiAnZGRkLCBEIE1NTSBZWVlZLCBBIGg6bW0gW3ZhenRhXScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW0Fpel0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tGYWxlYW1dIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnW0Z1ZGRsb10gZGRkZFssXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW0thbF0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdbRmF0dGxvXSBkZGRkWyxdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzIGFkaW0nLFxuICAgICAgICAgICAgczogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIHNzOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgbTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIG1tOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgaDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIGhoOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgZDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIGRkOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgTTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIE1NOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgeTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIHl5OiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0oZXIpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlciwgcGVyaW9kKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHBlcmlvZCkge1xuICAgICAgICAgICAgICAgIC8vIHRoZSBvcmRpbmFsICdlcicgb25seSBhcHBsaWVzIHRvIGRheSBvZiB0aGUgbW9udGhcbiAgICAgICAgICAgICAgICBjYXNlICdEJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICdlcic7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBjYXNlICdNJzpcbiAgICAgICAgICAgICAgICBjYXNlICdRJzpcbiAgICAgICAgICAgICAgICBjYXNlICdEREQnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ2QnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ3cnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ1cnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC9yYXRpfHNva2FsbGltfGRvbnBhcmFtfHNhbmplLyxcbiAgICAgICAgbWVyaWRpZW1Ib3VyOiBmdW5jdGlvbiAoaG91ciwgbWVyaWRpZW0pIHtcbiAgICAgICAgICAgIGlmIChob3VyID09PSAxMikge1xuICAgICAgICAgICAgICAgIGhvdXIgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG1lcmlkaWVtID09PSAncmF0aScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciA8IDQgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ3Nva2FsbGltJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ2RvbnBhcmFtJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyID4gMTIgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ3NhbmplJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyICsgMTI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3JhdGknO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3Nva2FsbGltJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDE2KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdkb25wYXJhbSc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAyMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnc2FuamUnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3JhdGknO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGdvbUxhdG47XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogR3VqYXJhdGkgW2d1XVxuLy8hIGF1dGhvciA6IEthdXNoaWsgVGhhbmtpIDogaHR0cHM6Ly9naXRodWIuY29tL0thdXNoaWsxOTg3XG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgc3ltYm9sTWFwID0ge1xuICAgICAgICAgICAgJzEnOiAn4KunJyxcbiAgICAgICAgICAgICcyJzogJ+CrqCcsXG4gICAgICAgICAgICAnMyc6ICfgq6knLFxuICAgICAgICAgICAgJzQnOiAn4KuqJyxcbiAgICAgICAgICAgICc1JzogJ+CrqycsXG4gICAgICAgICAgICAnNic6ICfgq6wnLFxuICAgICAgICAgICAgJzcnOiAn4KutJyxcbiAgICAgICAgICAgICc4JzogJ+CrricsXG4gICAgICAgICAgICAnOSc6ICfgq68nLFxuICAgICAgICAgICAgJzAnOiAn4KumJyxcbiAgICAgICAgfSxcbiAgICAgICAgbnVtYmVyTWFwID0ge1xuICAgICAgICAgICAgJ+Crpyc6ICcxJyxcbiAgICAgICAgICAgICfgq6gnOiAnMicsXG4gICAgICAgICAgICAn4KupJzogJzMnLFxuICAgICAgICAgICAgJ+Crqic6ICc0JyxcbiAgICAgICAgICAgICfgq6snOiAnNScsXG4gICAgICAgICAgICAn4KusJzogJzYnLFxuICAgICAgICAgICAgJ+CrrSc6ICc3JyxcbiAgICAgICAgICAgICfgq64nOiAnOCcsXG4gICAgICAgICAgICAn4KuvJzogJzknLFxuICAgICAgICAgICAgJ+Crpic6ICcwJyxcbiAgICAgICAgfTtcblxuICAgIHZhciBndSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2d1Jywge1xuICAgICAgICBtb250aHM6ICfgqpzgqr7gqqjgq43gqq/gq4HgqobgqrDgq4Bf4Kqr4KuH4Kqs4KuN4Kqw4KuB4KqG4Kqw4KuAX+CqruCqvuCqsOCrjeCqml/gqo/gqqrgq43gqrDgqr/gqrJf4Kqu4KuHX+CqnOCrguCqqF/gqpzgq4HgqrLgqr7gqohf4KqR4KqX4Kq44KuN4KqfX+CquOCqquCrjeCqn+Crh+CqruCrjeCqrOCqsF/gqpHgqpXgq43gqp/gq43gqqzgqrBf4Kqo4Kq14KuH4Kqu4KuN4Kqs4KqwX+CqoeCqv+CquOCrh+CqruCrjeCqrOCqsCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICfgqpzgqr7gqqjgq43gqq/gq4EuX+Cqq+Crh+CqrOCrjeCqsOCrgS5f4Kqu4Kq+4Kqw4KuN4KqaX+Cqj+CqquCrjeCqsOCqvy5f4Kqu4KuHX+CqnOCrguCqqF/gqpzgq4HgqrLgqr4uX+CqkeCqly5f4Kq44Kqq4KuN4Kqf4KuHLl/gqpHgqpXgq43gqp/gq40uX+CqqOCqteCrhy5f4Kqh4Kq/4Kq44KuHLicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXM6ICfgqrDgqrXgqr/gqrXgqr7gqrBf4Kq44KuL4Kqu4Kq14Kq+4KqwX+CqruCqguCql+Cqs+CqteCqvuCqsF/gqqzgq4Hgqqfgq43gqrXgqr7gqrBf4KqX4KuB4Kqw4KuB4Kq14Kq+4KqwX+CqtuCrgeCqleCrjeCqsOCqteCqvuCqsF/gqrbgqqjgqr/gqrXgqr7gqrAnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfgqrDgqrXgqr9f4Kq44KuL4KquX+CqruCqguCql+Cqs1/gqqzgq4Hgqqfgq41f4KqX4KuB4Kqw4KuBX+CqtuCrgeCqleCrjeCqsF/gqrbgqqjgqr8nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn4KqwX+CquOCri1/gqq7gqoJf4Kqs4KuBX+Cql+CrgV/gqrbgq4Ff4Kq2Jy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdBIGg6bW0g4Kq14Kq+4KqX4KuN4Kqv4KuHJyxcbiAgICAgICAgICAgIExUUzogJ0EgaDptbTpzcyDgqrXgqr7gqpfgq43gqq/gq4cnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSwgQSBoOm1tIOCqteCqvuCql+CrjeCqr+CrhycsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVksIEEgaDptbSDgqrXgqr7gqpfgq43gqq/gq4cnLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vgqobgqpxdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb4KqV4Kq+4Kqy4KuHXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQsIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb4KqX4KqH4KqV4Kq+4Kqy4KuHXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1vgqqrgqr7gqpvgqrLgqr5dIGRkZGQsIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnJXMg4Kqu4Kq+JyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyDgqqrgqrngq4fgqrLgqr4nLFxuICAgICAgICAgICAgczogJ+CqheCqruCrgeCqlSDgqqrgqrPgq4snLFxuICAgICAgICAgICAgc3M6ICclZCDgqrjgq4fgqpXgqoLgqqEnLFxuICAgICAgICAgICAgbTogJ+Cqj+CqlSDgqq7gqr/gqqjgqr/gqp8nLFxuICAgICAgICAgICAgbW06ICclZCDgqq7gqr/gqqjgqr/gqp8nLFxuICAgICAgICAgICAgaDogJ+Cqj+CqlSDgqpXgqrLgqr7gqpUnLFxuICAgICAgICAgICAgaGg6ICclZCDgqpXgqrLgqr7gqpUnLFxuICAgICAgICAgICAgZDogJ+Cqj+CqlSDgqqbgqr/gqrXgqrgnLFxuICAgICAgICAgICAgZGQ6ICclZCDgqqbgqr/gqrXgqrgnLFxuICAgICAgICAgICAgTTogJ+Cqj+CqlSDgqq7gqrngqr/gqqjgq4snLFxuICAgICAgICAgICAgTU06ICclZCDgqq7gqrngqr/gqqjgq4snLFxuICAgICAgICAgICAgeTogJ+Cqj+CqlSDgqrXgqrDgq43gqrcnLFxuICAgICAgICAgICAgeXk6ICclZCDgqrXgqrDgq43gqrcnLFxuICAgICAgICB9LFxuICAgICAgICBwcmVwYXJzZTogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC9b4Kun4Kuo4Kup4Kuq4Kur4Kus4Kut4Kuu4Kuv4KumXS9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyTWFwW21hdGNoXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBwb3N0Zm9ybWF0OiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL1xcZC9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3ltYm9sTWFwW21hdGNoXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICAvLyBHdWphcmF0aSBub3RhdGlvbiBmb3IgbWVyaWRpZW1zIGFyZSBxdWl0ZSBmdXp6eSBpbiBwcmFjdGljZS4gV2hpbGUgdGhlcmUgZXhpc3RzXG4gICAgICAgIC8vIGEgcmlnaWQgbm90aW9uIG9mIGEgJ1BhaGFyJyBpdCBpcyBub3QgdXNlZCBhcyByaWdpZGx5IGluIG1vZGVybiBHdWphcmF0aS5cbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL+CqsOCqvuCqpHzgqqzgqqrgq4vgqrB84Kq44Kq14Kq+4KqwfOCquOCqvuCqguCqnC8sXG4gICAgICAgIG1lcmlkaWVtSG91cjogZnVuY3Rpb24gKGhvdXIsIG1lcmlkaWVtKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA9PT0gMTIpIHtcbiAgICAgICAgICAgICAgICBob3VyID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtZXJpZGllbSA9PT0gJ+CqsOCqvuCqpCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciA8IDQgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+CquOCqteCqvuCqsCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfgqqzgqqrgq4vgqrAnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPj0gMTAgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+CquOCqvuCqguCqnCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciArIDEyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCA0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgqrDgqr7gqqQnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CquOCqteCqvuCqsCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxNykge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4Kqs4Kqq4KuL4KqwJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDIwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgqrjgqr7gqoLgqpwnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CqsOCqvuCqpCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMCwgLy8gU3VuZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDYsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDZ0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBndTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBIZWJyZXcgW2hlXVxuLy8hIGF1dGhvciA6IFRvbWVyIENvaGVuIDogaHR0cHM6Ly9naXRodWIuY29tL3RvbWVyXG4vLyEgYXV0aG9yIDogTW9zaGUgU2ltYW50b3YgOiBodHRwczovL2dpdGh1Yi5jb20vRGV2ZWxvcG1lbnRJTFxuLy8hIGF1dGhvciA6IFRhbCBBdGVyIDogaHR0cHM6Ly9naXRodWIuY29tL1RhbEF0ZXJcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBoZSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2hlJywge1xuICAgICAgICBtb250aHM6ICfXmdeg15XXkNeoX9ek15HXqNeV15DXqF/Xnteo16Vf15DXpNeo15nXnF/XnteQ15lf15nXldeg15lf15nXldec15lf15DXldeS15XXodeYX9eh16TXmNee15HXqF/XkNeV16fXmNeV15HXqF/XoNeV15HXnteR16hf15PXptee15HXqCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICfXmdeg15XXs1/XpNeR16jXs1/Xnteo16Vf15DXpNeo17Nf157XkNeZX9eZ15XXoNeZX9eZ15XXnNeZX9eQ15XXktezX9eh16TXmNezX9eQ15XXp9ezX9eg15XXkdezX9eT16bXntezJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5czogJ9eo15DXqdeV159f16nXoNeZX9ep15zXmdep15lf16jXkdeZ16LXmV/Xl9ee15nXqdeZX9ep15nXqdeZX9ep15HXqicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ9eQ17Nf15HXs1/XktezX9eT17Nf15TXs1/XldezX9ep17MnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn15Bf15Ff15Jf15Nf15Rf15Vf16knLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBb15FdTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgW9eRXU1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBb15FdTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIGw6ICdEL00vWVlZWScsXG4gICAgICAgICAgICBsbDogJ0QgTU1NIFlZWVknLFxuICAgICAgICAgICAgbGxsOiAnRCBNTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBsbGxsOiAnZGRkLCBEIE1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb15TXmdeV150g15HWvl1MVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW9ee15fXqCDXkda+XUxUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBb15HXqdei15RdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb15DXqtee15XXnCDXkda+XUxUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW9eR15nXldedXSBkZGRkIFvXlNeQ15fXqNeV158g15HXqdei15RdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAn15HXoteV15MgJXMnLFxuICAgICAgICAgICAgcGFzdDogJ9ec16TXoNeZICVzJyxcbiAgICAgICAgICAgIHM6ICfXnteh16TXqCDXqdeg15nXldeqJyxcbiAgICAgICAgICAgIHNzOiAnJWQg16nXoNeZ15XXqicsXG4gICAgICAgICAgICBtOiAn15PXp9eUJyxcbiAgICAgICAgICAgIG1tOiAnJWQg15PXp9eV16onLFxuICAgICAgICAgICAgaDogJ9ep16LXlCcsXG4gICAgICAgICAgICBoaDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgICAgIGlmIChudW1iZXIgPT09IDIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICfXqdei16rXmdeZ150nO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJyDXqdei15XXqic7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZDogJ9eZ15XXnScsXG4gICAgICAgICAgICBkZDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgICAgIGlmIChudW1iZXIgPT09IDIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICfXmdeV157XmdeZ150nO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJyDXmdee15nXnSc7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgTTogJ9eX15XXk9epJyxcbiAgICAgICAgICAgIE1NOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ9eX15XXk9ep15nXmdedJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICcg15fXldeT16nXmdedJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB5OiAn16nXoNeUJyxcbiAgICAgICAgICAgIHl5OiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ9ep16DXqteZ15nXnSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudW1iZXIgJSAxMCA9PT0gMCAmJiBudW1iZXIgIT09IDEwKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnINep16DXlCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnINep16DXmdedJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/XkNeX15RcItemfNec16TXoNeUXCLXpnzXkNeX16jXmSDXlNem15TXqNeZ15nXnXzXnNek16DXmSDXlNem15TXqNeZ15nXnXzXnNek16DXldeqINeR15XXp9eofNeR15HXlden16h815HXoteo15EvaSxcbiAgICAgICAgaXNQTTogZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gL14o15DXl9eUXCLXpnzXkNeX16jXmSDXlNem15TXqNeZ15nXnXzXkdei16jXkSkkLy50ZXN0KGlucHV0KTtcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyIDwgNSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn15zXpNeg15XXqiDXkdeV16fXqCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn15HXkdeV16fXqCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxMikge1xuICAgICAgICAgICAgICAgIHJldHVybiBpc0xvd2VyID8gJ9ec16TXoNeUXCLXpicgOiAn15zXpNeg15kg15TXpteU16jXmdeZ150nO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNMb3dlciA/ICfXkNeX15RcItemJyA6ICfXkNeX16jXmSDXlNem15TXqNeZ15nXnSc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn15HXoteo15EnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGhlO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEhpbmRpIFtoaV1cbi8vISBhdXRob3IgOiBNYXlhbmsgU2luZ2hhbCA6IGh0dHBzOi8vZ2l0aHViLmNvbS9tYXlhbmtzaW5naGFsXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgc3ltYm9sTWFwID0ge1xuICAgICAgICAgICAgJzEnOiAn4KWnJyxcbiAgICAgICAgICAgICcyJzogJ+ClqCcsXG4gICAgICAgICAgICAnMyc6ICfgpaknLFxuICAgICAgICAgICAgJzQnOiAn4KWqJyxcbiAgICAgICAgICAgICc1JzogJ+ClqycsXG4gICAgICAgICAgICAnNic6ICfgpawnLFxuICAgICAgICAgICAgJzcnOiAn4KWtJyxcbiAgICAgICAgICAgICc4JzogJ+ClricsXG4gICAgICAgICAgICAnOSc6ICfgpa8nLFxuICAgICAgICAgICAgJzAnOiAn4KWmJyxcbiAgICAgICAgfSxcbiAgICAgICAgbnVtYmVyTWFwID0ge1xuICAgICAgICAgICAgJ+Clpyc6ICcxJyxcbiAgICAgICAgICAgICfgpagnOiAnMicsXG4gICAgICAgICAgICAn4KWpJzogJzMnLFxuICAgICAgICAgICAgJ+Clqic6ICc0JyxcbiAgICAgICAgICAgICfgpasnOiAnNScsXG4gICAgICAgICAgICAn4KWsJzogJzYnLFxuICAgICAgICAgICAgJ+ClrSc6ICc3JyxcbiAgICAgICAgICAgICfgpa4nOiAnOCcsXG4gICAgICAgICAgICAn4KWvJzogJzknLFxuICAgICAgICAgICAgJ+Clpic6ICcwJyxcbiAgICAgICAgfTtcblxuICAgIHZhciBoaSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2hpJywge1xuICAgICAgICBtb250aHM6ICfgpJzgpKjgpLXgpLDgpYBf4KSr4KS84KSw4KS14KSw4KWAX+CkruCkvuCksOCljeCkml/gpIXgpKrgpY3gpLDgpYjgpLJf4KSu4KSIX+CknOClguCkqF/gpJzgpYHgpLLgpL7gpIhf4KSF4KSX4KS44KWN4KSkX+CkuOCkv+CkpOCkruCljeCkrOCksF/gpIXgpJXgpY3gpJ/gpYLgpKzgpLBf4KSo4KS14KSu4KWN4KSs4KSwX+CkpuCkv+CkuOCkruCljeCkrOCksCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICfgpJzgpKguX+Ckq+CkvOCksC5f4KSu4KS+4KSw4KWN4KSaX+CkheCkquCljeCksOCliC5f4KSu4KSIX+CknOClguCkqF/gpJzgpYHgpLIuX+CkheCkly5f4KS44KS/4KSkLl/gpIXgpJXgpY3gpJ/gpYIuX+CkqOCktS5f4KSm4KS/4KS4Licuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXM6ICfgpLDgpLXgpL/gpLXgpL7gpLBf4KS44KWL4KSu4KS14KS+4KSwX+CkruCkguCkl+CksuCkteCkvuCksF/gpKzgpYHgpKfgpLXgpL7gpLBf4KSX4KWB4KSw4KWC4KS14KS+4KSwX+CktuClgeCkleCljeCksOCkteCkvuCksF/gpLbgpKjgpL/gpLXgpL7gpLAnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfgpLDgpLXgpL9f4KS44KWL4KSuX+CkruCkguCkl+Cksl/gpKzgpYHgpKdf4KSX4KWB4KSw4KWCX+CktuClgeCkleCljeCksF/gpLbgpKjgpL8nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn4KSwX+CkuOCli1/gpK7gpIJf4KSs4KWBX+Ckl+ClgV/gpLbgpYFf4KS2Jy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdBIGg6bW0g4KSs4KSc4KWHJyxcbiAgICAgICAgICAgIExUUzogJ0EgaDptbTpzcyDgpKzgpJzgpYcnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSwgQSBoOm1tIOCkrOCknOClhycsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVksIEEgaDptbSDgpKzgpJzgpYcnLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vgpIbgpJxdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb4KSV4KSyXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQsIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb4KSV4KSyXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1vgpKrgpL/gpJvgpLLgpYddIGRkZGQsIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnJXMg4KSu4KWH4KSCJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyDgpKrgpLngpLLgpYcnLFxuICAgICAgICAgICAgczogJ+CkleClgeCkmyDgpLngpYAg4KSV4KWN4KS34KSjJyxcbiAgICAgICAgICAgIHNzOiAnJWQg4KS44KWH4KSV4KSC4KShJyxcbiAgICAgICAgICAgIG06ICfgpI/gpJUg4KSu4KS/4KSo4KSfJyxcbiAgICAgICAgICAgIG1tOiAnJWQg4KSu4KS/4KSo4KSfJyxcbiAgICAgICAgICAgIGg6ICfgpI/gpJUg4KSY4KSC4KSf4KS+JyxcbiAgICAgICAgICAgIGhoOiAnJWQg4KSY4KSC4KSf4KWHJyxcbiAgICAgICAgICAgIGQ6ICfgpI/gpJUg4KSm4KS/4KSoJyxcbiAgICAgICAgICAgIGRkOiAnJWQg4KSm4KS/4KSoJyxcbiAgICAgICAgICAgIE06ICfgpI/gpJUg4KSu4KS54KWA4KSo4KWHJyxcbiAgICAgICAgICAgIE1NOiAnJWQg4KSu4KS54KWA4KSo4KWHJyxcbiAgICAgICAgICAgIHk6ICfgpI/gpJUg4KS14KSw4KWN4KS3JyxcbiAgICAgICAgICAgIHl5OiAnJWQg4KS14KSw4KWN4KS3JyxcbiAgICAgICAgfSxcbiAgICAgICAgcHJlcGFyc2U6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgvW+Clp+ClqOClqeClquClq+ClrOClreClruClr+Clpl0vZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlck1hcFttYXRjaF07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgcG9zdGZvcm1hdDogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC9cXGQvZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN5bWJvbE1hcFttYXRjaF07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgLy8gSGluZGkgbm90YXRpb24gZm9yIG1lcmlkaWVtcyBhcmUgcXVpdGUgZnV6enkgaW4gcHJhY3RpY2UuIFdoaWxlIHRoZXJlIGV4aXN0c1xuICAgICAgICAvLyBhIHJpZ2lkIG5vdGlvbiBvZiBhICdQYWhhcicgaXQgaXMgbm90IHVzZWQgYXMgcmlnaWRseSBpbiBtb2Rlcm4gSGluZGkuXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/gpLDgpL7gpKR84KS44KWB4KSs4KS5fOCkpuCli+CkquCkueCksHzgpLbgpL7gpK4vLFxuICAgICAgICBtZXJpZGllbUhvdXI6IGZ1bmN0aW9uIChob3VyLCBtZXJpZGllbSkge1xuICAgICAgICAgICAgaWYgKGhvdXIgPT09IDEyKSB7XG4gICAgICAgICAgICAgICAgaG91ciA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobWVyaWRpZW0gPT09ICfgpLDgpL7gpKQnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPCA0ID8gaG91ciA6IGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfgpLjgpYHgpKzgpLknKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAn4KSm4KWL4KSq4KS54KSwJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyID49IDEwID8gaG91ciA6IGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfgpLbgpL7gpK4nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyIDwgNCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4KSw4KS+4KSkJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDEwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgpLjgpYHgpKzgpLknO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CkpuCli+CkquCkueCksCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAyMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4KS24KS+4KSuJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgpLDgpL7gpKQnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDAsIC8vIFN1bmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA2LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA2dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gaGk7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogQ3JvYXRpYW4gW2hyXVxuLy8hIGF1dGhvciA6IEJvamFuIE1hcmtvdmnEhyA6IGh0dHBzOi8vZ2l0aHViLmNvbS9ibWFya292aWNcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIGZ1bmN0aW9uIHRyYW5zbGF0ZShudW1iZXIsIHdpdGhvdXRTdWZmaXgsIGtleSkge1xuICAgICAgICB2YXIgcmVzdWx0ID0gbnVtYmVyICsgJyAnO1xuICAgICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICAgICAgY2FzZSAnc3MnOlxuICAgICAgICAgICAgICAgIGlmIChudW1iZXIgPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdzZWt1bmRhJztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG51bWJlciA9PT0gMiB8fCBudW1iZXIgPT09IDMgfHwgbnVtYmVyID09PSA0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnc2VrdW5kZSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdzZWt1bmRpJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIGNhc2UgJ20nOlxuICAgICAgICAgICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4ID8gJ2plZG5hIG1pbnV0YScgOiAnamVkbmUgbWludXRlJztcbiAgICAgICAgICAgIGNhc2UgJ21tJzpcbiAgICAgICAgICAgICAgICBpZiAobnVtYmVyID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnbWludXRhJztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG51bWJlciA9PT0gMiB8fCBudW1iZXIgPT09IDMgfHwgbnVtYmVyID09PSA0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnbWludXRlJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ21pbnV0YSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICBjYXNlICdoJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCA/ICdqZWRhbiBzYXQnIDogJ2plZG5vZyBzYXRhJztcbiAgICAgICAgICAgIGNhc2UgJ2hoJzpcbiAgICAgICAgICAgICAgICBpZiAobnVtYmVyID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnc2F0JztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG51bWJlciA9PT0gMiB8fCBudW1iZXIgPT09IDMgfHwgbnVtYmVyID09PSA0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnc2F0YSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdzYXRpJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIGNhc2UgJ2RkJzpcbiAgICAgICAgICAgICAgICBpZiAobnVtYmVyID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnZGFuJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ2RhbmEnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgY2FzZSAnTU0nOlxuICAgICAgICAgICAgICAgIGlmIChudW1iZXIgPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdtamVzZWMnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobnVtYmVyID09PSAyIHx8IG51bWJlciA9PT0gMyB8fCBudW1iZXIgPT09IDQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdtamVzZWNhJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ21qZXNlY2knO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgY2FzZSAneXknOlxuICAgICAgICAgICAgICAgIGlmIChudW1iZXIgPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdnb2RpbmEnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobnVtYmVyID09PSAyIHx8IG51bWJlciA9PT0gMyB8fCBudW1iZXIgPT09IDQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdnb2RpbmUnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnZ29kaW5hJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhciBociA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2hyJywge1xuICAgICAgICBtb250aHM6IHtcbiAgICAgICAgICAgIGZvcm1hdDogJ3NpamXEjW5qYV92ZWxqYcSNZV9vxb51amthX3RyYXZuamFfc3ZpYm5qYV9saXBuamFfc3JwbmphX2tvbG92b3phX3J1am5hX2xpc3RvcGFkYV9zdHVkZW5vZ2FfcHJvc2luY2EnLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHN0YW5kYWxvbmU6ICdzaWplxI1hbmpfdmVsamHEjWFfb8W+dWpha190cmF2YW5qX3N2aWJhbmpfbGlwYW5qX3NycGFual9rb2xvdm96X3J1amFuX2xpc3RvcGFkX3N0dWRlbmlfcHJvc2luYWMnLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgfSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdzaWouX3ZlbGouX2/FvnUuX3RyYS5fc3ZpLl9saXAuX3NycC5fa29sLl9ydWouX2xpcy5fc3R1Ll9wcm8uJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czogJ25lZGplbGphX3BvbmVkamVsamFrX3V0b3Jha19zcmlqZWRhX8SNZXR2cnRha19wZXRha19zdWJvdGEnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICduZWQuX3Bvbi5fdXRvLl9zcmkuX8SNZXQuX3BldC5fc3ViLicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICduZV9wb191dF9zcl/EjWVfcGVfc3UnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSDptbScsXG4gICAgICAgICAgICBMVFM6ICdIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRG8gTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0RvIE1NTU0gWVlZWSBIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEbyBNTU1NIFlZWVkgSDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW2RhbmFzIHVdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbc3V0cmEgdV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHRoaXMuZGF5KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbdV0gW25lZGplbGp1XSBbdV0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1t1XSBbc3JpamVkdV0gW3VdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbdV0gW3N1Ym90dV0gW3VdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbdV0gZGRkZCBbdV0gTFQnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYXN0RGF5OiAnW2p1xI1lciB1XSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAodGhpcy5kYXkoKSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1twcm/FoWx1XSBbbmVkamVsanVdIFt1XSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3Byb8WhbHVdIFtzcmlqZWR1XSBbdV0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1twcm/FoWxlXSBbc3Vib3RlXSBbdV0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1twcm/FoWxpXSBkZGRkIFt1XSBMVCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnemEgJXMnLFxuICAgICAgICAgICAgcGFzdDogJ3ByaWplICVzJyxcbiAgICAgICAgICAgIHM6ICdwYXIgc2VrdW5kaScsXG4gICAgICAgICAgICBzczogdHJhbnNsYXRlLFxuICAgICAgICAgICAgbTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgbW06IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGg6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGhoOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBkOiAnZGFuJyxcbiAgICAgICAgICAgIGRkOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBNOiAnbWplc2VjJyxcbiAgICAgICAgICAgIE1NOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICB5OiAnZ29kaW51JyxcbiAgICAgICAgICAgIHl5OiB0cmFuc2xhdGUsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfVxcLi8sXG4gICAgICAgIG9yZGluYWw6ICclZC4nLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA3LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA3dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gaHI7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogSHVuZ2FyaWFuIFtodV1cbi8vISBhdXRob3IgOiBBZGFtIEJydW5uZXIgOiBodHRwczovL2dpdGh1Yi5jb20vYWRhbWJydW5uZXJcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciB3ZWVrRW5kaW5ncyA9ICd2YXPDoXJuYXAgaMOpdGbFkW4ga2VkZGVuIHN6ZXJkw6FuIGNzw7x0w7ZydMO2a8O2biBww6ludGVrZW4gc3pvbWJhdG9uJy5zcGxpdChcbiAgICAgICAgJyAnXG4gICAgKTtcbiAgICBmdW5jdGlvbiB0cmFuc2xhdGUobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXksIGlzRnV0dXJlKSB7XG4gICAgICAgIHZhciBudW0gPSBudW1iZXI7XG4gICAgICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICAgICAgICBjYXNlICdzJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNGdXR1cmUgfHwgd2l0aG91dFN1ZmZpeFxuICAgICAgICAgICAgICAgICAgICA/ICduw6low6FueSBtw6Fzb2RwZXJjJ1xuICAgICAgICAgICAgICAgICAgICA6ICduw6low6FueSBtw6Fzb2RwZXJjZSc7XG4gICAgICAgICAgICBjYXNlICdzcyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bSArIChpc0Z1dHVyZSB8fCB3aXRob3V0U3VmZml4KVxuICAgICAgICAgICAgICAgICAgICA/ICcgbcOhc29kcGVyYydcbiAgICAgICAgICAgICAgICAgICAgOiAnIG3DoXNvZHBlcmNlJztcbiAgICAgICAgICAgIGNhc2UgJ20nOlxuICAgICAgICAgICAgICAgIHJldHVybiAnZWd5JyArIChpc0Z1dHVyZSB8fCB3aXRob3V0U3VmZml4ID8gJyBwZXJjJyA6ICcgcGVyY2UnKTtcbiAgICAgICAgICAgIGNhc2UgJ21tJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtICsgKGlzRnV0dXJlIHx8IHdpdGhvdXRTdWZmaXggPyAnIHBlcmMnIDogJyBwZXJjZScpO1xuICAgICAgICAgICAgY2FzZSAnaCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdlZ3knICsgKGlzRnV0dXJlIHx8IHdpdGhvdXRTdWZmaXggPyAnIMOzcmEnIDogJyDDs3LDoWphJyk7XG4gICAgICAgICAgICBjYXNlICdoaCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bSArIChpc0Z1dHVyZSB8fCB3aXRob3V0U3VmZml4ID8gJyDDs3JhJyA6ICcgw7Nyw6FqYScpO1xuICAgICAgICAgICAgY2FzZSAnZCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdlZ3knICsgKGlzRnV0dXJlIHx8IHdpdGhvdXRTdWZmaXggPyAnIG5hcCcgOiAnIG5hcGphJyk7XG4gICAgICAgICAgICBjYXNlICdkZCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bSArIChpc0Z1dHVyZSB8fCB3aXRob3V0U3VmZml4ID8gJyBuYXAnIDogJyBuYXBqYScpO1xuICAgICAgICAgICAgY2FzZSAnTSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdlZ3knICsgKGlzRnV0dXJlIHx8IHdpdGhvdXRTdWZmaXggPyAnIGjDs25hcCcgOiAnIGjDs25hcGphJyk7XG4gICAgICAgICAgICBjYXNlICdNTSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bSArIChpc0Z1dHVyZSB8fCB3aXRob3V0U3VmZml4ID8gJyBow7NuYXAnIDogJyBow7NuYXBqYScpO1xuICAgICAgICAgICAgY2FzZSAneSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdlZ3knICsgKGlzRnV0dXJlIHx8IHdpdGhvdXRTdWZmaXggPyAnIMOpdicgOiAnIMOpdmUnKTtcbiAgICAgICAgICAgIGNhc2UgJ3l5JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtICsgKGlzRnV0dXJlIHx8IHdpdGhvdXRTdWZmaXggPyAnIMOpdicgOiAnIMOpdmUnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHdlZWsoaXNGdXR1cmUpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIChpc0Z1dHVyZSA/ICcnIDogJ1ttw7psdF0gJykgK1xuICAgICAgICAgICAgJ1snICtcbiAgICAgICAgICAgIHdlZWtFbmRpbmdzW3RoaXMuZGF5KCldICtcbiAgICAgICAgICAgICddIExUWy1rb3JdJ1xuICAgICAgICApO1xuICAgIH1cblxuICAgIHZhciBodSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2h1Jywge1xuICAgICAgICBtb250aHM6ICdqYW51w6FyX2ZlYnJ1w6FyX23DoXJjaXVzX8OhcHJpbGlzX23DoWp1c19qw7puaXVzX2rDumxpdXNfYXVndXN6dHVzX3N6ZXB0ZW1iZXJfb2t0w7NiZXJfbm92ZW1iZXJfZGVjZW1iZXInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnamFuX2ZlYl9tw6FyY1/DoXByX23DoWpfasO6bl9qw7psX2F1Z19zemVwdF9va3Rfbm92X2RlYycuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXM6ICd2YXPDoXJuYXBfaMOpdGbFkV9rZWRkX3N6ZXJkYV9jc8O8dMO2cnTDtmtfcMOpbnRla19zem9tYmF0Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAndmFzX2jDqXRfa2VkZF9zemVfY3PDvHRfcMOpbl9zem8nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAndl9oX2tfc3plX2NzX3Bfc3pvJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0g6bW06c3MnLFxuICAgICAgICAgICAgTDogJ1lZWVkuTU0uREQuJyxcbiAgICAgICAgICAgIExMOiAnWVlZWS4gTU1NTSBELicsXG4gICAgICAgICAgICBMTEw6ICdZWVlZLiBNTU1NIEQuIEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ1lZWVkuIE1NTU0gRC4sIGRkZGQgSDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC9kZXxkdS9pLFxuICAgICAgICBpc1BNOiBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnB1dC5jaGFyQXQoMSkudG9Mb3dlckNhc2UoKSA9PT0gJ3UnO1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXJzLCBtaW51dGVzLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91cnMgPCAxMikge1xuICAgICAgICAgICAgICAgIHJldHVybiBpc0xvd2VyID09PSB0cnVlID8gJ2RlJyA6ICdERSc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBpc0xvd2VyID09PSB0cnVlID8gJ2R1JyA6ICdEVSc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW21hXSBMVFsta29yXScsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW2hvbG5hcF0gTFRbLWtvcl0nLFxuICAgICAgICAgICAgbmV4dFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gd2Vlay5jYWxsKHRoaXMsIHRydWUpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbdGVnbmFwXSBMVFsta29yXScsXG4gICAgICAgICAgICBsYXN0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB3ZWVrLmNhbGwodGhpcywgZmFsc2UpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnJXMgbcO6bHZhJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcycsXG4gICAgICAgICAgICBzOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBzczogdHJhbnNsYXRlLFxuICAgICAgICAgICAgbTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgbW06IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGg6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGhoOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBkOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBkZDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgTTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgTU06IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIHk6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIHl5OiB0cmFuc2xhdGUsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfVxcLi8sXG4gICAgICAgIG9yZGluYWw6ICclZC4nLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gaHU7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogQXJtZW5pYW4gW2h5LWFtXVxuLy8hIGF1dGhvciA6IEFybWVuZGFyYWJ5YW4gOiBodHRwczovL2dpdGh1Yi5jb20vYXJtZW5kYXJhYnlhblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIGh5QW0gPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdoeS1hbScsIHtcbiAgICAgICAgbW9udGhzOiB7XG4gICAgICAgICAgICBmb3JtYXQ6ICfVsNW41oLVttW+1aHWgNWrX9aD1aXVv9aA1b7VodaA1atf1bTVodaA1b/Vq1/VodW61oDVq9Ws1atf1bTVodW11avVvdWrX9Ww1bjWgtW21avVvdWrX9Ww1bjWgtWs1avVvdWrX9aF1aPVuNW91b/VuNW91atf1b3VpdW61b/VpdW01aLVpdaA1atf1bDVuNWv1b/VpdW01aLVpdaA1atf1bbVuNW11aXVtNWi1aXWgNWrX9Wk1aXVr9W/1aXVtNWi1aXWgNWrJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBzdGFuZGFsb25lOiAn1bDVuNaC1bbVvtWh1oBf1oPVpdW/1oDVvtWh1oBf1bTVodaA1b9f1aHVutaA1avVrF/VtNWh1bXVq9W9X9Ww1bjWgtW21avVvV/VsNW41oLVrNWr1b1f1oXVo9W41b3Vv9W41b1f1b3VpdW61b/VpdW01aLVpdaAX9Ww1bjVr9W/1aXVtNWi1aXWgF/VttW41bXVpdW01aLVpdaAX9Wk1aXVr9W/1aXVtNWi1aXWgCcuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICB9LFxuICAgICAgICBtb250aHNTaG9ydDogJ9Ww1bbVvl/Wg9W/1oBf1bTWgNW/X9Wh1brWgF/VtNW11b1f1bDVttW9X9Ww1azVvV/WhdWj1b1f1b3VutW/X9Ww1a/Vv1/VttW01aJf1aTVr9W/Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ9Wv1avWgNWh1a/Vq1/VpdaA1a/VuNaC1bfVodWi1anVq1/VpdaA1aXWhNW31aHVotWp1atf1bnVuNaA1aXWhNW31aHVotWp1atf1bDVq9W21aPVt9Wh1aLVqdWrX9W41oLWgNWi1aHVqV/Vt9Wh1aLVodWpJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn1a/WgNWvX9Wl1oDVr1/VpdaA1oRf1bnWgNaEX9Ww1bbVo1/VuNaC1oDVol/Vt9Wi1aknLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn1a/WgNWvX9Wl1oDVr1/VpdaA1oRf1bnWgNaEX9Ww1bbVo1/VuNaC1oDVol/Vt9Wi1aknLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVkg1akuJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZINWpLiwgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZINWpLiwgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vVodW11b3WhdaAXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW9W+1aHVstWoXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW9Wl1oDVpdWvXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnZGRkZCBb1oXWgNWoINWq1aHVtNWoXSBMVCc7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGFzdFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ1vVodW21oHVodWuXSBkZGRkIFvWhdaA1agg1arVodW01ahdIExUJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVzINWw1aXVv9W4JyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyDVodW81aHVuycsXG4gICAgICAgICAgICBzOiAn1bTVqyDWhNWh1bbVqyDVvtWh1bXWgNWv1bXVodW2JyxcbiAgICAgICAgICAgIHNzOiAnJWQg1b7VodW11oDVr9W11aHVticsXG4gICAgICAgICAgICBtOiAn1oDVuNW61aUnLFxuICAgICAgICAgICAgbW06ICclZCDWgNW41brVpScsXG4gICAgICAgICAgICBoOiAn1arVodW0JyxcbiAgICAgICAgICAgIGhoOiAnJWQg1arVodW0JyxcbiAgICAgICAgICAgIGQ6ICfWhdaAJyxcbiAgICAgICAgICAgIGRkOiAnJWQg1oXWgCcsXG4gICAgICAgICAgICBNOiAn1aHVtNWr1b0nLFxuICAgICAgICAgICAgTU06ICclZCDVodW01avVvScsXG4gICAgICAgICAgICB5OiAn1b/VodaA1asnLFxuICAgICAgICAgICAgeXk6ICclZCDVv9Wh1oDVqycsXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/Vo9Wr1bfVpdaA1b7VoXzVodW81aHVvtW41b/VvtWhfNaB1aXWgNWl1a/VvtWhfNWl1oDVpdWv1bjVtdWh1bYvLFxuICAgICAgICBpc1BNOiBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgICAgIHJldHVybiAvXijWgdWl1oDVpdWv1b7VoXzVpdaA1aXVr9W41bXVodW2KSQvLnRlc3QoaW5wdXQpO1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyIDwgNCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn1aPVq9W31aXWgNW+1aEnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9Wh1bzVodW+1bjVv9W+1aEnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9aB1aXWgNWl1a/VvtWhJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfVpdaA1aXVr9W41bXVodW2JztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9fFxcZHsxLDJ9LSjVq9W2fNaA1aQpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlciwgcGVyaW9kKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHBlcmlvZCkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ0RERCc6XG4gICAgICAgICAgICAgICAgY2FzZSAndyc6XG4gICAgICAgICAgICAgICAgY2FzZSAnVyc6XG4gICAgICAgICAgICAgICAgY2FzZSAnREREbyc6XG4gICAgICAgICAgICAgICAgICAgIGlmIChudW1iZXIgPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnLdWr1bYnO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnLdaA1aQnO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDcsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDd0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBoeUFtO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEluZG9uZXNpYW4gW2lkXVxuLy8hIGF1dGhvciA6IE1vaGFtbWFkIFNhdHJpbyBVdG9tbyA6IGh0dHBzOi8vZ2l0aHViLmNvbS90eW9rXG4vLyEgcmVmZXJlbmNlOiBodHRwOi8vaWQud2lraXNvdXJjZS5vcmcvd2lraS9QZWRvbWFuX1VtdW1fRWphYW5fQmFoYXNhX0luZG9uZXNpYV95YW5nX0Rpc2VtcHVybmFrYW5cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBpZCA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2lkJywge1xuICAgICAgICBtb250aHM6ICdKYW51YXJpX0ZlYnJ1YXJpX01hcmV0X0FwcmlsX01laV9KdW5pX0p1bGlfQWd1c3R1c19TZXB0ZW1iZXJfT2t0b2Jlcl9Ob3ZlbWJlcl9EZXNlbWJlcicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdKYW5fRmViX01hcl9BcHJfTWVpX0p1bl9KdWxfQWd0X1NlcF9Pa3RfTm92X0Rlcycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICdNaW5nZ3VfU2VuaW5fU2VsYXNhX1JhYnVfS2FtaXNfSnVtYXRfU2FidHUnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdNaW5fU2VuX1NlbF9SYWJfS2FtX0p1bV9TYWInLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnTWdfU25fU2xfUmJfS21fSm1fU2InLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hILm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hILm1tLnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgW3B1a3VsXSBISC5tbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgW3B1a3VsXSBISC5tbScsXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC9wYWdpfHNpYW5nfHNvcmV8bWFsYW0vLFxuICAgICAgICBtZXJpZGllbUhvdXI6IGZ1bmN0aW9uIChob3VyLCBtZXJpZGllbSkge1xuICAgICAgICAgICAgaWYgKGhvdXIgPT09IDEyKSB7XG4gICAgICAgICAgICAgICAgaG91ciA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobWVyaWRpZW0gPT09ICdwYWdpJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ3NpYW5nJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyID49IDExID8gaG91ciA6IGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICdzb3JlJyB8fCBtZXJpZGllbSA9PT0gJ21hbGFtJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyICsgMTI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91cnMsIG1pbnV0ZXMsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VycyA8IDExKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdwYWdpJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91cnMgPCAxNSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnc2lhbmcnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VycyA8IDE5KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdzb3JlJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdtYWxhbSc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW0hhcmkgaW5pIHB1a3VsXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW0Jlc29rIHB1a3VsXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW3B1a3VsXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW0tlbWFyaW4gcHVrdWxdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnZGRkZCBbbGFsdSBwdWt1bF0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdkYWxhbSAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMgeWFuZyBsYWx1JyxcbiAgICAgICAgICAgIHM6ICdiZWJlcmFwYSBkZXRpaycsXG4gICAgICAgICAgICBzczogJyVkIGRldGlrJyxcbiAgICAgICAgICAgIG06ICdzZW1lbml0JyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWVuaXQnLFxuICAgICAgICAgICAgaDogJ3NlamFtJyxcbiAgICAgICAgICAgIGhoOiAnJWQgamFtJyxcbiAgICAgICAgICAgIGQ6ICdzZWhhcmknLFxuICAgICAgICAgICAgZGQ6ICclZCBoYXJpJyxcbiAgICAgICAgICAgIE06ICdzZWJ1bGFuJyxcbiAgICAgICAgICAgIE1NOiAnJWQgYnVsYW4nLFxuICAgICAgICAgICAgeTogJ3NldGFodW4nLFxuICAgICAgICAgICAgeXk6ICclZCB0YWh1bicsXG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMCwgLy8gU3VuZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDYsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDZ0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBpZDtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBJY2VsYW5kaWMgW2lzXVxuLy8hIGF1dGhvciA6IEhpbnJpayDDlnJuIFNpZ3Vyw7Bzc29uIDogaHR0cHM6Ly9naXRodWIuY29tL2hpbnJpa1xuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgZnVuY3Rpb24gcGx1cmFsKG4pIHtcbiAgICAgICAgaWYgKG4gJSAxMDAgPT09IDExKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIGlmIChuICUgMTAgPT09IDEpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdHJhbnNsYXRlKG51bWJlciwgd2l0aG91dFN1ZmZpeCwga2V5LCBpc0Z1dHVyZSkge1xuICAgICAgICB2YXIgcmVzdWx0ID0gbnVtYmVyICsgJyAnO1xuICAgICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICAgICAgY2FzZSAncyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmVcbiAgICAgICAgICAgICAgICAgICAgPyAnbm9ra3JhciBzZWvDum5kdXInXG4gICAgICAgICAgICAgICAgICAgIDogJ25va2tydW0gc2Vrw7puZHVtJztcbiAgICAgICAgICAgIGNhc2UgJ3NzJzpcbiAgICAgICAgICAgICAgICBpZiAocGx1cmFsKG51bWJlcikpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCArXG4gICAgICAgICAgICAgICAgICAgICAgICAod2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICdzZWvDum5kdXInIDogJ3Nla8O6bmR1bScpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAnc2Vrw7puZGEnO1xuICAgICAgICAgICAgY2FzZSAnbSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggPyAnbcOtbsO6dGEnIDogJ23DrW7DunR1JztcbiAgICAgICAgICAgIGNhc2UgJ21tJzpcbiAgICAgICAgICAgICAgICBpZiAocGx1cmFsKG51bWJlcikpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCArICh3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ23DrW7DunR1cicgOiAnbcOtbsO6dHVtJylcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHdpdGhvdXRTdWZmaXgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArICdtw61uw7p0YSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAnbcOtbsO6dHUnO1xuICAgICAgICAgICAgY2FzZSAnaGgnOlxuICAgICAgICAgICAgICAgIGlmIChwbHVyYWwobnVtYmVyKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICtcbiAgICAgICAgICAgICAgICAgICAgICAgICh3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAna2x1a2t1c3R1bmRpcidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICdrbHVra3VzdHVuZHVtJylcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArICdrbHVra3VzdHVuZCc7XG4gICAgICAgICAgICBjYXNlICdkJzpcbiAgICAgICAgICAgICAgICBpZiAod2l0aG91dFN1ZmZpeCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2RhZ3VyJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzRnV0dXJlID8gJ2RhZycgOiAnZGVnaSc7XG4gICAgICAgICAgICBjYXNlICdkZCc6XG4gICAgICAgICAgICAgICAgaWYgKHBsdXJhbChudW1iZXIpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh3aXRob3V0U3VmZml4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgJ2RhZ2FyJztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgKGlzRnV0dXJlID8gJ2RhZ2EnIDogJ2TDtmd1bScpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAod2l0aG91dFN1ZmZpeCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgJ2RhZ3VyJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArIChpc0Z1dHVyZSA/ICdkYWcnIDogJ2RlZ2knKTtcbiAgICAgICAgICAgIGNhc2UgJ00nOlxuICAgICAgICAgICAgICAgIGlmICh3aXRob3V0U3VmZml4KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnbcOhbnXDsHVyJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzRnV0dXJlID8gJ23DoW51w7AnIDogJ23DoW51w7BpJztcbiAgICAgICAgICAgIGNhc2UgJ01NJzpcbiAgICAgICAgICAgICAgICBpZiAocGx1cmFsKG51bWJlcikpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHdpdGhvdXRTdWZmaXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAnbcOhbnXDsGlyJztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgKGlzRnV0dXJlID8gJ23DoW51w7BpJyA6ICdtw6FudcOwdW0nKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHdpdGhvdXRTdWZmaXgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArICdtw6FudcOwdXInO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgKGlzRnV0dXJlID8gJ23DoW51w7AnIDogJ23DoW51w7BpJyk7XG4gICAgICAgICAgICBjYXNlICd5JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICfDoXInIDogJ8OhcmknO1xuICAgICAgICAgICAgY2FzZSAneXknOlxuICAgICAgICAgICAgICAgIGlmIChwbHVyYWwobnVtYmVyKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgKHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAnw6FyJyA6ICfDoXJ1bScpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgKHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAnw6FyJyA6ICfDoXJpJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgaXMgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdpcycsIHtcbiAgICAgICAgbW9udGhzOiAnamFuw7phcl9mZWJyw7phcl9tYXJzX2FwcsOtbF9tYcOtX2rDum7DrV9qw7psw61fw6Fnw7pzdF9zZXB0ZW1iZXJfb2t0w7NiZXJfbsOzdmVtYmVyX2Rlc2VtYmVyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ2phbl9mZWJfbWFyX2Fwcl9tYcOtX2rDum5fasO6bF/DoWfDul9zZXBfb2t0X27Ds3ZfZGVzJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ3N1bm51ZGFndXJfbcOhbnVkYWd1cl/DvnJpw7BqdWRhZ3VyX21pw7B2aWt1ZGFndXJfZmltbXR1ZGFndXJfZsO2c3R1ZGFndXJfbGF1Z2FyZGFndXInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdzdW5fbcOhbl/DvnJpX21pw7BfZmltX2bDtnNfbGF1Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ1N1X03DoV/DnnJfTWlfRmlfRsO2X0xhJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0g6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEw6ICdELiBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRC4gTU1NTSBZWVlZIFtrbC5dIEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQuIE1NTU0gWVlZWSBba2wuXSBIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbw60gZGFnIGtsLl0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vDoSBtb3JndW4ga2wuXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW2tsLl0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vDrSBnw6ZyIGtsLl0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdbc8Otw7Bhc3RhXSBkZGRkIFtrbC5dIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnZWZ0aXIgJXMnLFxuICAgICAgICAgICAgcGFzdDogJ2Z5cmlyICVzIHPDrcOwYW4nLFxuICAgICAgICAgICAgczogdHJhbnNsYXRlLFxuICAgICAgICAgICAgc3M6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIG06IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIG1tOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBoOiAna2x1a2t1c3R1bmQnLFxuICAgICAgICAgICAgaGg6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGQ6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGRkOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBNOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBNTTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgeTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgeXk6IHRyYW5zbGF0ZSxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9XFwuLyxcbiAgICAgICAgb3JkaW5hbDogJyVkLicsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBpcztcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBJdGFsaWFuIFtpdF1cbi8vISBhdXRob3IgOiBMb3JlbnpvIDogaHR0cHM6Ly9naXRodWIuY29tL2FsaWVtXG4vLyEgYXV0aG9yOiBNYXR0aWEgTGFyZW50aXM6IGh0dHBzOi8vZ2l0aHViLmNvbS9ub3N0YWxnaWF6XG4vLyEgYXV0aG9yOiBNYXJjbyA6IGh0dHBzOi8vZ2l0aHViLmNvbS9NYW5mcmU5OFxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIGl0ID0gbW9tZW50LmRlZmluZUxvY2FsZSgnaXQnLCB7XG4gICAgICAgIG1vbnRoczogJ2dlbm5haW9fZmViYnJhaW9fbWFyem9fYXByaWxlX21hZ2dpb19naXVnbm9fbHVnbGlvX2Fnb3N0b19zZXR0ZW1icmVfb3R0b2JyZV9ub3ZlbWJyZV9kaWNlbWJyZScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdnZW5fZmViX21hcl9hcHJfbWFnX2dpdV9sdWdfYWdvX3NldF9vdHRfbm92X2RpYycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICdkb21lbmljYV9sdW5lZMOsX21hcnRlZMOsX21lcmNvbGVkw6xfZ2lvdmVkw6xfdmVuZXJkw6xfc2FiYXRvJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnZG9tX2x1bl9tYXJfbWVyX2dpb192ZW5fc2FiJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ2RvX2x1X21hX21lX2dpX3ZlX3NhJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAnW09nZ2kgYScgK1xuICAgICAgICAgICAgICAgICAgICAodGhpcy5ob3VycygpID4gMSA/ICdsbGUgJyA6IHRoaXMuaG91cnMoKSA9PT0gMCA/ICcgJyA6IFwibGwnXCIpICtcbiAgICAgICAgICAgICAgICAgICAgJ11MVCdcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG5leHREYXk6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAnW0RvbWFuaSBhJyArXG4gICAgICAgICAgICAgICAgICAgICh0aGlzLmhvdXJzKCkgPiAxID8gJ2xsZSAnIDogdGhpcy5ob3VycygpID09PSAwID8gJyAnIDogXCJsbCdcIikgK1xuICAgICAgICAgICAgICAgICAgICAnXUxUJ1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbmV4dFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAnZGRkZCBbYScgK1xuICAgICAgICAgICAgICAgICAgICAodGhpcy5ob3VycygpID4gMSA/ICdsbGUgJyA6IHRoaXMuaG91cnMoKSA9PT0gMCA/ICcgJyA6IFwibGwnXCIpICtcbiAgICAgICAgICAgICAgICAgICAgJ11MVCdcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxhc3REYXk6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAnW0llcmkgYScgK1xuICAgICAgICAgICAgICAgICAgICAodGhpcy5ob3VycygpID4gMSA/ICdsbGUgJyA6IHRoaXMuaG91cnMoKSA9PT0gMCA/ICcgJyA6IFwibGwnXCIpICtcbiAgICAgICAgICAgICAgICAgICAgJ11MVCdcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxhc3RXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoICh0aGlzLmRheSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1tMYSBzY29yc2FdIGRkZGQgW2EnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5ob3VycygpID4gMVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICdsbGUgJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHRoaXMuaG91cnMoKSA9PT0gMFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICcgJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwibGwnXCIpICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXUxUJ1xuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1tMbyBzY29yc29dIGRkZGQgW2EnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5ob3VycygpID4gMVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICdsbGUgJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHRoaXMuaG91cnMoKSA9PT0gMFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICcgJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwibGwnXCIpICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXUxUJ1xuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICd0cmEgJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzIGZhJyxcbiAgICAgICAgICAgIHM6ICdhbGN1bmkgc2Vjb25kaScsXG4gICAgICAgICAgICBzczogJyVkIHNlY29uZGknLFxuICAgICAgICAgICAgbTogJ3VuIG1pbnV0bycsXG4gICAgICAgICAgICBtbTogJyVkIG1pbnV0aScsXG4gICAgICAgICAgICBoOiBcInVuJ29yYVwiLFxuICAgICAgICAgICAgaGg6ICclZCBvcmUnLFxuICAgICAgICAgICAgZDogJ3VuIGdpb3JubycsXG4gICAgICAgICAgICBkZDogJyVkIGdpb3JuaScsXG4gICAgICAgICAgICBNOiAndW4gbWVzZScsXG4gICAgICAgICAgICBNTTogJyVkIG1lc2knLFxuICAgICAgICAgICAgeTogJ3VuIGFubm8nLFxuICAgICAgICAgICAgeXk6ICclZCBhbm5pJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9wrovLFxuICAgICAgICBvcmRpbmFsOiAnJWTCuicsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBpdDtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBJdGFsaWFuIChTd2l0emVybGFuZCkgW2l0LWNoXVxuLy8hIGF1dGhvciA6IHhmaCA6IGh0dHBzOi8vZ2l0aHViLmNvbS94ZmhcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBpdENoID0gbW9tZW50LmRlZmluZUxvY2FsZSgnaXQtY2gnLCB7XG4gICAgICAgIG1vbnRoczogJ2dlbm5haW9fZmViYnJhaW9fbWFyem9fYXByaWxlX21hZ2dpb19naXVnbm9fbHVnbGlvX2Fnb3N0b19zZXR0ZW1icmVfb3R0b2JyZV9ub3ZlbWJyZV9kaWNlbWJyZScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdnZW5fZmViX21hcl9hcHJfbWFnX2dpdV9sdWdfYWdvX3NldF9vdHRfbm92X2RpYycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICdkb21lbmljYV9sdW5lZMOsX21hcnRlZMOsX21lcmNvbGVkw6xfZ2lvdmVkw6xfdmVuZXJkw6xfc2FiYXRvJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnZG9tX2x1bl9tYXJfbWVyX2dpb192ZW5fc2FiJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ2RvX2x1X21hX21lX2dpX3ZlX3NhJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbT2dnaSBhbGxlXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW0RvbWFuaSBhbGxlXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW2FsbGVdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbSWVyaSBhbGxlXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAodGhpcy5kYXkoKSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1tsYSBzY29yc2FdIGRkZGQgW2FsbGVdIExUJztcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW2xvIHNjb3Jzb10gZGRkZCBbYWxsZV0gTFQnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogZnVuY3Rpb24gKHMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKC9eWzAtOV0uKyQvLnRlc3QocykgPyAndHJhJyA6ICdpbicpICsgJyAnICsgcztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwYXN0OiAnJXMgZmEnLFxuICAgICAgICAgICAgczogJ2FsY3VuaSBzZWNvbmRpJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2Vjb25kaScsXG4gICAgICAgICAgICBtOiAndW4gbWludXRvJyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWludXRpJyxcbiAgICAgICAgICAgIGg6IFwidW4nb3JhXCIsXG4gICAgICAgICAgICBoaDogJyVkIG9yZScsXG4gICAgICAgICAgICBkOiAndW4gZ2lvcm5vJyxcbiAgICAgICAgICAgIGRkOiAnJWQgZ2lvcm5pJyxcbiAgICAgICAgICAgIE06ICd1biBtZXNlJyxcbiAgICAgICAgICAgIE1NOiAnJWQgbWVzaScsXG4gICAgICAgICAgICB5OiAndW4gYW5ubycsXG4gICAgICAgICAgICB5eTogJyVkIGFubmknLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn3Cui8sXG4gICAgICAgIG9yZGluYWw6ICclZMK6JyxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGl0Q2g7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogSmFwYW5lc2UgW2phXVxuLy8hIGF1dGhvciA6IExJIExvbmcgOiBodHRwczovL2dpdGh1Yi5jb20vYmFyeW9uXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgamEgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdqYScsIHtcbiAgICAgICAgZXJhczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNpbmNlOiAnMjAxOS0wNS0wMScsXG4gICAgICAgICAgICAgICAgb2Zmc2V0OiAxLFxuICAgICAgICAgICAgICAgIG5hbWU6ICfku6TlkownLFxuICAgICAgICAgICAgICAgIG5hcnJvdzogJ+OLvycsXG4gICAgICAgICAgICAgICAgYWJicjogJ1InLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzaW5jZTogJzE5ODktMDEtMDgnLFxuICAgICAgICAgICAgICAgIHVudGlsOiAnMjAxOS0wNC0zMCcsXG4gICAgICAgICAgICAgICAgb2Zmc2V0OiAxLFxuICAgICAgICAgICAgICAgIG5hbWU6ICflubPmiJAnLFxuICAgICAgICAgICAgICAgIG5hcnJvdzogJ+ONuycsXG4gICAgICAgICAgICAgICAgYWJicjogJ0gnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzaW5jZTogJzE5MjYtMTItMjUnLFxuICAgICAgICAgICAgICAgIHVudGlsOiAnMTk4OS0wMS0wNycsXG4gICAgICAgICAgICAgICAgb2Zmc2V0OiAxLFxuICAgICAgICAgICAgICAgIG5hbWU6ICfmmK3lkownLFxuICAgICAgICAgICAgICAgIG5hcnJvdzogJ+ONvCcsXG4gICAgICAgICAgICAgICAgYWJicjogJ1MnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzaW5jZTogJzE5MTItMDctMzAnLFxuICAgICAgICAgICAgICAgIHVudGlsOiAnMTkyNi0xMi0yNCcsXG4gICAgICAgICAgICAgICAgb2Zmc2V0OiAxLFxuICAgICAgICAgICAgICAgIG5hbWU6ICflpKfmraMnLFxuICAgICAgICAgICAgICAgIG5hcnJvdzogJ+ONvScsXG4gICAgICAgICAgICAgICAgYWJicjogJ1QnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzaW5jZTogJzE4NzMtMDEtMDEnLFxuICAgICAgICAgICAgICAgIHVudGlsOiAnMTkxMi0wNy0yOScsXG4gICAgICAgICAgICAgICAgb2Zmc2V0OiA2LFxuICAgICAgICAgICAgICAgIG5hbWU6ICfmmI7msrsnLFxuICAgICAgICAgICAgICAgIG5hcnJvdzogJ+ONvicsXG4gICAgICAgICAgICAgICAgYWJicjogJ00nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzaW5jZTogJzAwMDEtMDEtMDEnLFxuICAgICAgICAgICAgICAgIHVudGlsOiAnMTg3My0xMi0zMScsXG4gICAgICAgICAgICAgICAgb2Zmc2V0OiAxLFxuICAgICAgICAgICAgICAgIG5hbWU6ICfopb/mmqYnLFxuICAgICAgICAgICAgICAgIG5hcnJvdzogJ0FEJyxcbiAgICAgICAgICAgICAgICBhYmJyOiAnQUQnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzaW5jZTogJzAwMDAtMTItMzEnLFxuICAgICAgICAgICAgICAgIHVudGlsOiAtSW5maW5pdHksXG4gICAgICAgICAgICAgICAgb2Zmc2V0OiAxLFxuICAgICAgICAgICAgICAgIG5hbWU6ICfntIDlhYPliY0nLFxuICAgICAgICAgICAgICAgIG5hcnJvdzogJ0JDJyxcbiAgICAgICAgICAgICAgICBhYmJyOiAnQkMnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgZXJhWWVhck9yZGluYWxSZWdleDogLyjlhYN8XFxkKynlubQvLFxuICAgICAgICBlcmFZZWFyT3JkaW5hbFBhcnNlOiBmdW5jdGlvbiAoaW5wdXQsIG1hdGNoKSB7XG4gICAgICAgICAgICByZXR1cm4gbWF0Y2hbMV0gPT09ICflhYMnID8gMSA6IHBhcnNlSW50KG1hdGNoWzFdIHx8IGlucHV0LCAxMCk7XG4gICAgICAgIH0sXG4gICAgICAgIG1vbnRoczogJzHmnIhfMuaciF8z5pyIXzTmnIhfNeaciF825pyIXzfmnIhfOOaciF855pyIXzEw5pyIXzEx5pyIXzEy5pyIJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNTaG9ydDogJzHmnIhfMuaciF8z5pyIXzTmnIhfNeaciF825pyIXzfmnIhfOOaciF855pyIXzEw5pyIXzEx5pyIXzEy5pyIJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5czogJ+aXpeabnOaXpV/mnIjmm5zml6Vf54Gr5puc5pelX+awtOabnOaXpV/mnKjmm5zml6Vf6YeR5puc5pelX+Wcn+abnOaXpScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ+aXpV/mnIhf54GrX+awtF/mnKhf6YeRX+Wcnycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfml6Vf5pyIX+eBq1/msLRf5pyoX+mHkV/lnJ8nLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdZWVlZL01NL0REJyxcbiAgICAgICAgICAgIExMOiAnWVlZWeW5tE3mnIhE5pelJyxcbiAgICAgICAgICAgIExMTDogJ1lZWVnlubRN5pyIROaXpSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnWVlZWeW5tE3mnIhE5pelIGRkZGQgSEg6bW0nLFxuICAgICAgICAgICAgbDogJ1lZWVkvTU0vREQnLFxuICAgICAgICAgICAgbGw6ICdZWVlZ5bm0TeaciETml6UnLFxuICAgICAgICAgICAgbGxsOiAnWVlZWeW5tE3mnIhE5pelIEhIOm1tJyxcbiAgICAgICAgICAgIGxsbGw6ICdZWVlZ5bm0TeaciETml6UoZGRkKSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/ljYjliY185Y2I5b6ML2ksXG4gICAgICAgIGlzUE06IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuIGlucHV0ID09PSAn5Y2I5b6MJztcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyIDwgMTIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+WNiOWJjSc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn5Y2I5b6MJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb5LuK5pelXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW+aYjuaXpV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6IGZ1bmN0aW9uIChub3cpIHtcbiAgICAgICAgICAgICAgICBpZiAobm93LndlZWsoKSAhPT0gdGhpcy53ZWVrKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdb5p2l6YCxXWRkZGQgTFQnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnZGRkZCBMVCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb5pio5pelXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogZnVuY3Rpb24gKG5vdykge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLndlZWsoKSAhPT0gbm93LndlZWsoKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1vlhYjpgLFdZGRkZCBMVCc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdkZGRkIExUJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ95pelLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlciwgcGVyaW9kKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHBlcmlvZCkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ3knOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyID09PSAxID8gJ+WFg+W5tCcgOiBudW1iZXIgKyAn5bm0JztcbiAgICAgICAgICAgICAgICBjYXNlICdkJzpcbiAgICAgICAgICAgICAgICBjYXNlICdEJzpcbiAgICAgICAgICAgICAgICBjYXNlICdEREQnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJ+aXpSc7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICclc+W+jCcsXG4gICAgICAgICAgICBwYXN0OiAnJXPliY0nLFxuICAgICAgICAgICAgczogJ+aVsOenkicsXG4gICAgICAgICAgICBzczogJyVk56eSJyxcbiAgICAgICAgICAgIG06ICcx5YiGJyxcbiAgICAgICAgICAgIG1tOiAnJWTliIYnLFxuICAgICAgICAgICAgaDogJzHmmYLplpMnLFxuICAgICAgICAgICAgaGg6ICclZOaZgumWkycsXG4gICAgICAgICAgICBkOiAnMeaXpScsXG4gICAgICAgICAgICBkZDogJyVk5pelJyxcbiAgICAgICAgICAgIE06ICcx44O25pyIJyxcbiAgICAgICAgICAgIE1NOiAnJWTjg7bmnIgnLFxuICAgICAgICAgICAgeTogJzHlubQnLFxuICAgICAgICAgICAgeXk6ICclZOW5tCcsXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gamE7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogSmF2YW5lc2UgW2p2XVxuLy8hIGF1dGhvciA6IFJvbnkgTGFudGlwIDogaHR0cHM6Ly9naXRodWIuY29tL2xhbnRpcFxuLy8hIHJlZmVyZW5jZTogaHR0cDovL2p2Lndpa2lwZWRpYS5vcmcvd2lraS9CYXNhX0phd2FcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBqdiA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2p2Jywge1xuICAgICAgICBtb250aHM6ICdKYW51YXJpX0ZlYnJ1YXJpX01hcmV0X0FwcmlsX01laV9KdW5pX0p1bGlfQWd1c3R1c19TZXB0ZW1iZXJfT2t0b2Jlcl9Ob3BlbWJlcl9EZXNlbWJlcicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdKYW5fRmViX01hcl9BcHJfTWVpX0p1bl9KdWxfQWdzX1NlcF9Pa3RfTm9wX0Rlcycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICdNaW5nZ3VfU2VuZW5fU2Vsb3NvX1JlYnVfS2VtaXNfSmVtdXdhaF9TZXB0dScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ01pbl9TZW5fU2VsX1JlYl9LZW1fSmVtX1NlcCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdNZ19Tbl9TbF9SYl9LbV9KbV9TcCcuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEgubW0nLFxuICAgICAgICAgICAgTFRTOiAnSEgubW0uc3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBbcHVrdWxdIEhILm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSBbcHVrdWxdIEhILm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL2VuamluZ3xzaXlhbmd8c29udGVufG5kYWx1LyxcbiAgICAgICAgbWVyaWRpZW1Ib3VyOiBmdW5jdGlvbiAoaG91ciwgbWVyaWRpZW0pIHtcbiAgICAgICAgICAgIGlmIChob3VyID09PSAxMikge1xuICAgICAgICAgICAgICAgIGhvdXIgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG1lcmlkaWVtID09PSAnZW5qaW5nJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ3NpeWFuZycpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciA+PSAxMSA/IGhvdXIgOiBob3VyICsgMTI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAnc29udGVuJyB8fCBtZXJpZGllbSA9PT0gJ25kYWx1Jykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyICsgMTI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91cnMsIG1pbnV0ZXMsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VycyA8IDExKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdlbmppbmcnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VycyA8IDE1KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdzaXlhbmcnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VycyA8IDE5KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdzb250ZW4nO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ25kYWx1JztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbRGludGVuIHB1bmlrbyBwdWt1bF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tNYmVuamFuZyBwdWt1bF0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFtwdWt1bF0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tLYWxhIHdpbmdpIHB1a3VsXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ2RkZGQgW2tlcGVuZ2tlciBwdWt1bF0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICd3b250ZW4gaW5nICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyBpbmdrYW5nIGtlcGVuZ2tlcicsXG4gICAgICAgICAgICBzOiAnc2F3ZXRhd2lzIGRldGlrJyxcbiAgICAgICAgICAgIHNzOiAnJWQgZGV0aWsnLFxuICAgICAgICAgICAgbTogJ3NldHVuZ2dhbCBtZW5pdCcsXG4gICAgICAgICAgICBtbTogJyVkIG1lbml0JyxcbiAgICAgICAgICAgIGg6ICdzZXR1bmdnYWwgamFtJyxcbiAgICAgICAgICAgIGhoOiAnJWQgamFtJyxcbiAgICAgICAgICAgIGQ6ICdzZWRpbnRlbicsXG4gICAgICAgICAgICBkZDogJyVkIGRpbnRlbicsXG4gICAgICAgICAgICBNOiAnc2V3dWxhbicsXG4gICAgICAgICAgICBNTTogJyVkIHd1bGFuJyxcbiAgICAgICAgICAgIHk6ICdzZXRhdW4nLFxuICAgICAgICAgICAgeXk6ICclZCB0YXVuJyxcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNywgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gN3RoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGp2O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEdlb3JnaWFuIFtrYV1cbi8vISBhdXRob3IgOiBJcmFrbGkgSmFuaWFzaHZpbGkgOiBodHRwczovL2dpdGh1Yi5jb20vSXJha2xpSmFuaVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIGthID0gbW9tZW50LmRlZmluZUxvY2FsZSgna2EnLCB7XG4gICAgICAgIG1vbnRoczogJ+GDmOGDkOGDnOGDleGDkOGDoOGDmF/hg5fhg5Thg5Hhg5Thg6Dhg5Xhg5Dhg5rhg5hf4YOb4YOQ4YOg4YOi4YOYX+GDkOGDnuGDoOGDmOGDmuGDmF/hg5vhg5Dhg5jhg6Hhg5hf4YOY4YOV4YOc4YOY4YOh4YOYX+GDmOGDleGDmuGDmOGDoeGDmF/hg5Dhg5Lhg5Xhg5jhg6Hhg6Lhg51f4YOh4YOU4YOl4YOi4YOU4YOb4YOR4YOU4YOg4YOYX+GDneGDpeGDouGDneGDm+GDkeGDlOGDoOGDmF/hg5zhg53hg5Thg5vhg5Hhg5Thg6Dhg5hf4YOT4YOU4YOZ4YOU4YOb4YOR4YOU4YOg4YOYJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ+GDmOGDkOGDnF/hg5fhg5Thg5Ff4YOb4YOQ4YOgX+GDkOGDnuGDoF/hg5vhg5Dhg5hf4YOY4YOV4YOcX+GDmOGDleGDml/hg5Dhg5Lhg5Vf4YOh4YOU4YOlX+GDneGDpeGDol/hg5zhg53hg5Rf4YOT4YOU4YOZJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czoge1xuICAgICAgICAgICAgc3RhbmRhbG9uZTogJ+GDmeGDleGDmOGDoOGDkF/hg53hg6Dhg6jhg5Dhg5Hhg5Dhg5fhg5hf4YOh4YOQ4YOb4YOo4YOQ4YOR4YOQ4YOX4YOYX+GDneGDl+GDruGDqOGDkOGDkeGDkOGDl+GDmF/hg67hg6Phg5fhg6jhg5Dhg5Hhg5Dhg5fhg5hf4YOe4YOQ4YOg4YOQ4YOh4YOZ4YOU4YOV4YOYX+GDqOGDkOGDkeGDkOGDl+GDmCcuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgZm9ybWF0OiAn4YOZ4YOV4YOY4YOg4YOQ4YOhX+GDneGDoOGDqOGDkOGDkeGDkOGDl+GDoV/hg6Hhg5Dhg5vhg6jhg5Dhg5Hhg5Dhg5fhg6Ff4YOd4YOX4YOu4YOo4YOQ4YOR4YOQ4YOX4YOhX+GDruGDo+GDl+GDqOGDkOGDkeGDkOGDl+GDoV/hg57hg5Dhg6Dhg5Dhg6Hhg5nhg5Thg5Xhg6Ff4YOo4YOQ4YOR4YOQ4YOX4YOhJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBpc0Zvcm1hdDogLyjhg6zhg5jhg5zhg5B84YOo4YOU4YOb4YOT4YOU4YOSKS8sXG4gICAgICAgIH0sXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfhg5nhg5Xhg5hf4YOd4YOg4YOoX+GDoeGDkOGDm1/hg53hg5fhg65f4YOu4YOj4YOXX+GDnuGDkOGDoF/hg6jhg5Dhg5EnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn4YOZ4YOVX+GDneGDoF/hg6Hhg5Bf4YOd4YOXX+GDruGDo1/hg57hg5Bf4YOo4YOQJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW+GDk+GDpuGDlOGDoV0gTFRbLeGDluGDlF0nLFxuICAgICAgICAgICAgbmV4dERheTogJ1vhg67hg5Xhg5Dhg5pdIExUWy3hg5bhg5RdJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb4YOS4YOj4YOo4YOY4YOcXSBMVFst4YOW4YOUXScsXG4gICAgICAgICAgICBuZXh0V2VlazogJ1vhg6jhg5Thg5vhg5Phg5Thg5JdIGRkZGQgTFRbLeGDluGDlF0nLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdb4YOs4YOY4YOc4YOQXSBkZGRkIExULeGDluGDlCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogZnVuY3Rpb24gKHMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcy5yZXBsYWNlKC8o4YOs4YOQ4YObfOGDrOGDo+GDl3zhg6Hhg5Dhg5Dhg5d84YOs4YOU4YOafOGDk+GDpnzhg5fhg5UpKOGDmHzhg5QpLywgZnVuY3Rpb24gKFxuICAgICAgICAgICAgICAgICAgICAkMCxcbiAgICAgICAgICAgICAgICAgICAgJDEsXG4gICAgICAgICAgICAgICAgICAgICQyXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAkMiA9PT0gJ+GDmCcgPyAkMSArICfhg6jhg5gnIDogJDEgKyAkMiArICfhg6jhg5gnO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHBhc3Q6IGZ1bmN0aW9uIChzKSB7XG4gICAgICAgICAgICAgICAgaWYgKC8o4YOs4YOQ4YOb4YOYfOGDrOGDo+GDl+GDmHzhg6Hhg5Dhg5Dhg5fhg5h84YOT4YOm4YOUfOGDl+GDleGDlCkvLnRlc3QocykpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHMucmVwbGFjZSgvKOGDmHzhg5QpJC8sICfhg5jhg6Eg4YOs4YOY4YOcJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICgv4YOs4YOU4YOa4YOYLy50ZXN0KHMpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBzLnJlcGxhY2UoL+GDrOGDlOGDmuGDmCQvLCAn4YOs4YOa4YOY4YOhIOGDrOGDmOGDnCcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzOiAn4YOg4YOQ4YOb4YOT4YOU4YOc4YOY4YOb4YOUIOGDrOGDkOGDm+GDmCcsXG4gICAgICAgICAgICBzczogJyVkIOGDrOGDkOGDm+GDmCcsXG4gICAgICAgICAgICBtOiAn4YOs4YOj4YOX4YOYJyxcbiAgICAgICAgICAgIG1tOiAnJWQg4YOs4YOj4YOX4YOYJyxcbiAgICAgICAgICAgIGg6ICfhg6Hhg5Dhg5Dhg5fhg5gnLFxuICAgICAgICAgICAgaGg6ICclZCDhg6Hhg5Dhg5Dhg5fhg5gnLFxuICAgICAgICAgICAgZDogJ+GDk+GDpuGDlCcsXG4gICAgICAgICAgICBkZDogJyVkIOGDk+GDpuGDlCcsXG4gICAgICAgICAgICBNOiAn4YOX4YOV4YOUJyxcbiAgICAgICAgICAgIE1NOiAnJWQg4YOX4YOV4YOUJyxcbiAgICAgICAgICAgIHk6ICfhg6zhg5Thg5rhg5gnLFxuICAgICAgICAgICAgeXk6ICclZCDhg6zhg5Thg5rhg5gnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvMHwxLeGDmuGDmHzhg5vhg5QtXFxkezEsMn18XFxkezEsMn0t4YOULyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobnVtYmVyID09PSAxKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICct4YOa4YOYJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBudW1iZXIgPCAyMCB8fFxuICAgICAgICAgICAgICAgIChudW1iZXIgPD0gMTAwICYmIG51bWJlciAlIDIwID09PSAwKSB8fFxuICAgICAgICAgICAgICAgIG51bWJlciAlIDEwMCA9PT0gMFxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfhg5vhg5QtJyArIG51bWJlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnLeGDlCc7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSxcbiAgICAgICAgICAgIGRveTogNyxcbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBrYTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBLYXpha2ggW2trXVxuLy8hIGF1dGhvcnMgOiBOdXJsYW4gUmFraGltemhhbm92IDogaHR0cHM6Ly9naXRodWIuY29tL251cmxhblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHN1ZmZpeGVzID0ge1xuICAgICAgICAwOiAnLdGI0ZYnLFxuICAgICAgICAxOiAnLdGI0ZYnLFxuICAgICAgICAyOiAnLdGI0ZYnLFxuICAgICAgICAzOiAnLdGI0ZYnLFxuICAgICAgICA0OiAnLdGI0ZYnLFxuICAgICAgICA1OiAnLdGI0ZYnLFxuICAgICAgICA2OiAnLdGI0YsnLFxuICAgICAgICA3OiAnLdGI0ZYnLFxuICAgICAgICA4OiAnLdGI0ZYnLFxuICAgICAgICA5OiAnLdGI0YsnLFxuICAgICAgICAxMDogJy3RiNGLJyxcbiAgICAgICAgMjA6ICct0YjRiycsXG4gICAgICAgIDMwOiAnLdGI0YsnLFxuICAgICAgICA0MDogJy3RiNGLJyxcbiAgICAgICAgNTA6ICct0YjRlicsXG4gICAgICAgIDYwOiAnLdGI0YsnLFxuICAgICAgICA3MDogJy3RiNGWJyxcbiAgICAgICAgODA6ICct0YjRlicsXG4gICAgICAgIDkwOiAnLdGI0YsnLFxuICAgICAgICAxMDA6ICct0YjRlicsXG4gICAgfTtcblxuICAgIHZhciBrayA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2trJywge1xuICAgICAgICBtb250aHM6ICfSm9Cw0qPRgtCw0YBf0LDSm9C/0LDQvV/QvdCw0YPRgNGL0Ldf0YHTmdGD0ZbRgF/QvNCw0LzRi9GAX9C80LDRg9GB0YvQvF/RiNGW0LvQtNC1X9GC0LDQvNGL0Ldf0pvRi9GA0LrSr9C50LXQul/Sm9Cw0LfQsNC9X9Kb0LDRgNCw0YjQsF/QttC10LvRgtC+0pvRgdCw0L0nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAn0pvQsNKjX9Cw0pvQv1/QvdCw0YNf0YHTmdGDX9C80LDQvF/QvNCw0YNf0YjRltC7X9GC0LDQvF/Sm9GL0YBf0pvQsNC3X9Kb0LDRgF/QttC10LsnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAn0LbQtdC60YHQtdC90LHRll/QtNKv0LnRgdC10L3QsdGWX9GB0LXQudGB0LXQvdCx0ZZf0YHTmdGA0YHQtdC90LHRll/QsdC10LnRgdC10L3QsdGWX9C20rHQvNCwX9GB0LXQvdCx0ZYnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfQttC10Lpf0LTSr9C5X9GB0LXQuV/RgdOZ0YBf0LHQtdC5X9C20rHQvF/RgdC10L0nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn0LbQul/QtNC5X9GB0Llf0YHRgF/QsdC5X9C20Lxf0YHQvScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vQkdKv0LPRltC9INGB0LDSk9Cw0YJdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb0JXRgNGC0LXSoyDRgdCw0pPQsNGCXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW9GB0LDSk9Cw0YJdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb0JrQtdGI0LUg0YHQsNKT0LDRgl0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdb06jRgtC60LXQvSDQsNC/0YLQsNC90YvSo10gZGRkZCBb0YHQsNKT0LDRgl0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICclcyDRltGI0ZbQvdC00LUnLFxuICAgICAgICAgICAgcGFzdDogJyVzINCx0rHRgNGL0L0nLFxuICAgICAgICAgICAgczogJ9Cx0ZbRgNC90LXRiNC1INGB0LXQutGD0L3QtCcsXG4gICAgICAgICAgICBzczogJyVkINGB0LXQutGD0L3QtCcsXG4gICAgICAgICAgICBtOiAn0LHRltGAINC80LjQvdGD0YInLFxuICAgICAgICAgICAgbW06ICclZCDQvNC40L3Rg9GCJyxcbiAgICAgICAgICAgIGg6ICfQsdGW0YAg0YHQsNKT0LDRgicsXG4gICAgICAgICAgICBoaDogJyVkINGB0LDSk9Cw0YInLFxuICAgICAgICAgICAgZDogJ9Cx0ZbRgCDQutKv0L0nLFxuICAgICAgICAgICAgZGQ6ICclZCDQutKv0L0nLFxuICAgICAgICAgICAgTTogJ9Cx0ZbRgCDQsNC5JyxcbiAgICAgICAgICAgIE1NOiAnJWQg0LDQuScsXG4gICAgICAgICAgICB5OiAn0LHRltGAINC20YvQuycsXG4gICAgICAgICAgICB5eTogJyVkINC20YvQuycsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfS0o0YjRlnzRiNGLKS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIHZhciBhID0gbnVtYmVyICUgMTAsXG4gICAgICAgICAgICAgICAgYiA9IG51bWJlciA+PSAxMDAgPyAxMDAgOiBudWxsO1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIChzdWZmaXhlc1tudW1iZXJdIHx8IHN1ZmZpeGVzW2FdIHx8IHN1ZmZpeGVzW2JdKTtcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNywgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gN3RoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGtrO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IENhbWJvZGlhbiBba21dXG4vLyEgYXV0aG9yIDogS3J1eSBWYW5uYSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9rcnV5dmFubmFcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBzeW1ib2xNYXAgPSB7XG4gICAgICAgICAgICAnMSc6ICfhn6EnLFxuICAgICAgICAgICAgJzInOiAn4Z+iJyxcbiAgICAgICAgICAgICczJzogJ+GfoycsXG4gICAgICAgICAgICAnNCc6ICfhn6QnLFxuICAgICAgICAgICAgJzUnOiAn4Z+lJyxcbiAgICAgICAgICAgICc2JzogJ+GfpicsXG4gICAgICAgICAgICAnNyc6ICfhn6cnLFxuICAgICAgICAgICAgJzgnOiAn4Z+oJyxcbiAgICAgICAgICAgICc5JzogJ+GfqScsXG4gICAgICAgICAgICAnMCc6ICfhn6AnLFxuICAgICAgICB9LFxuICAgICAgICBudW1iZXJNYXAgPSB7XG4gICAgICAgICAgICAn4Z+hJzogJzEnLFxuICAgICAgICAgICAgJ+Gfoic6ICcyJyxcbiAgICAgICAgICAgICfhn6MnOiAnMycsXG4gICAgICAgICAgICAn4Z+kJzogJzQnLFxuICAgICAgICAgICAgJ+GfpSc6ICc1JyxcbiAgICAgICAgICAgICfhn6YnOiAnNicsXG4gICAgICAgICAgICAn4Z+nJzogJzcnLFxuICAgICAgICAgICAgJ+GfqCc6ICc4JyxcbiAgICAgICAgICAgICfhn6knOiAnOScsXG4gICAgICAgICAgICAn4Z+gJzogJzAnLFxuICAgICAgICB9O1xuXG4gICAgdmFyIGttID0gbW9tZW50LmRlZmluZUxvY2FsZSgna20nLCB7XG4gICAgICAgIG1vbnRoczogJ+GemOGegOGemuGetl/hnoDhnrvhnpjhn5Lhnpfhn4hf4Z6Y4Z644Z6T4Z62X+GemOGfgeGen+Getl/hnqfhnp/hnpfhnrZf4Z6Y4Z634Z6Q4Z674Z6T4Z62X+GegOGegOGfkuGegOGeiuGetl/hnp/hnrjhnqDhnrZf4Z6A4Z6J4Z+S4Z6J4Z62X+Gej+Geu+Gem+Getl/hnpzhnrfhnoXhn5LhnobhnrfhnoDhnrZf4Z6S4Z+S4Z6T4Z68Jy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ+GemOGegOGemuGetl/hnoDhnrvhnpjhn5Lhnpfhn4hf4Z6Y4Z644Z6T4Z62X+GemOGfgeGen+Getl/hnqfhnp/hnpfhnrZf4Z6Y4Z634Z6Q4Z674Z6T4Z62X+GegOGegOGfkuGegOGeiuGetl/hnp/hnrjhnqDhnrZf4Z6A4Z6J4Z+S4Z6J4Z62X+Gej+Geu+Gem+Getl/hnpzhnrfhnoXhn5LhnobhnrfhnoDhnrZf4Z6S4Z+S4Z6T4Z68Jy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5czogJ+GeouGetuGekeGet+Gej+GfkuGemV/hnoXhn5DhnpPhn5LhnpFf4Z6i4Z6E4Z+S4Z6C4Z624Z6aX+GeluGeu+Gekl/hnpbhn5LhnprhnqDhnp/hn5LhnpThno/hnrfhn41f4Z6f4Z674Z6A4Z+S4Z6aX+Gen+GfheGemuGfjScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ+GeouGetl/hnoVf4Z6iX+Gell/hnpbhn5Lhnppf4Z6f4Z67X+Genycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfhnqLhnrZf4Z6FX+Geol/hnpZf4Z6W4Z+S4Z6aX+Gen+Geu1/hnp8nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv4Z6W4Z+S4Z6a4Z654Z6AfOGem+GfkuGehOGetuGehS8sXG4gICAgICAgIGlzUE06IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuIGlucHV0ID09PSAn4Z6b4Z+S4Z6E4Z624Z6FJztcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyIDwgMTIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+GeluGfkuGemuGeueGegCc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4Z6b4Z+S4Z6E4Z624Z6FJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb4Z6Q4Z+S4Z6E4Z+D4Z6T4Z+B4Z+HIOGemOGfieGfhOGehF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vhnp/hn5LhnqLhn4LhnoAg4Z6Y4Z+J4Z+E4Z6EXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW+GemOGfieGfhOGehF0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vhnpjhn5Lhnp/hnrfhnpvhnpjhnrfhnokg4Z6Y4Z+J4Z+E4Z6EXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ2RkZGQgW+Gen+GelOGfkuGej+GetuGeoOGfjeGemOGeu+Gek10gW+GemOGfieGfhOGehF0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICclc+GekeGfgOGejycsXG4gICAgICAgICAgICBwYXN0OiAnJXPhnpjhnrvhnpMnLFxuICAgICAgICAgICAgczogJ+GelOGfieGeu+Gek+GfkuGemOGetuGek+GenOGet+Gek+GetuGekeGeuCcsXG4gICAgICAgICAgICBzczogJyVkIOGenOGet+Gek+GetuGekeGeuCcsXG4gICAgICAgICAgICBtOiAn4Z6Y4Z694Z6Z4Z6T4Z624Z6R4Z64JyxcbiAgICAgICAgICAgIG1tOiAnJWQg4Z6T4Z624Z6R4Z64JyxcbiAgICAgICAgICAgIGg6ICfhnpjhnr3hnpnhnpjhn4nhn4ThnoQnLFxuICAgICAgICAgICAgaGg6ICclZCDhnpjhn4nhn4ThnoQnLFxuICAgICAgICAgICAgZDogJ+GemOGeveGemeGekOGfkuGehOGfgycsXG4gICAgICAgICAgICBkZDogJyVkIOGekOGfkuGehOGfgycsXG4gICAgICAgICAgICBNOiAn4Z6Y4Z694Z6Z4Z6B4Z+CJyxcbiAgICAgICAgICAgIE1NOiAnJWQg4Z6B4Z+CJyxcbiAgICAgICAgICAgIHk6ICfhnpjhnr3hnpnhnobhn5LhnpPhnrbhn4YnLFxuICAgICAgICAgICAgeXk6ICclZCDhnobhn5LhnpPhnrbhn4YnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAv4Z6R4Z64XFxkezEsMn0vLFxuICAgICAgICBvcmRpbmFsOiAn4Z6R4Z64JWQnLFxuICAgICAgICBwcmVwYXJzZTogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC9b4Z+h4Z+i4Z+j4Z+k4Z+l4Z+m4Z+n4Z+o4Z+p4Z+gXS9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyTWFwW21hdGNoXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBwb3N0Zm9ybWF0OiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL1xcZC9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3ltYm9sTWFwW21hdGNoXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4ga207XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogS2FubmFkYSBba25dXG4vLyEgYXV0aG9yIDogUmFqZWV2IE5haWsgOiBodHRwczovL2dpdGh1Yi5jb20vcmFqZWV2bmFpa3RlXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgc3ltYm9sTWFwID0ge1xuICAgICAgICAgICAgJzEnOiAn4LOnJyxcbiAgICAgICAgICAgICcyJzogJ+CzqCcsXG4gICAgICAgICAgICAnMyc6ICfgs6knLFxuICAgICAgICAgICAgJzQnOiAn4LOqJyxcbiAgICAgICAgICAgICc1JzogJ+CzqycsXG4gICAgICAgICAgICAnNic6ICfgs6wnLFxuICAgICAgICAgICAgJzcnOiAn4LOtJyxcbiAgICAgICAgICAgICc4JzogJ+CzricsXG4gICAgICAgICAgICAnOSc6ICfgs68nLFxuICAgICAgICAgICAgJzAnOiAn4LOmJyxcbiAgICAgICAgfSxcbiAgICAgICAgbnVtYmVyTWFwID0ge1xuICAgICAgICAgICAgJ+Czpyc6ICcxJyxcbiAgICAgICAgICAgICfgs6gnOiAnMicsXG4gICAgICAgICAgICAn4LOpJzogJzMnLFxuICAgICAgICAgICAgJ+Czqic6ICc0JyxcbiAgICAgICAgICAgICfgs6snOiAnNScsXG4gICAgICAgICAgICAn4LOsJzogJzYnLFxuICAgICAgICAgICAgJ+CzrSc6ICc3JyxcbiAgICAgICAgICAgICfgs64nOiAnOCcsXG4gICAgICAgICAgICAn4LOvJzogJzknLFxuICAgICAgICAgICAgJ+Czpic6ICcwJyxcbiAgICAgICAgfTtcblxuICAgIHZhciBrbiA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2tuJywge1xuICAgICAgICBtb250aHM6ICfgspzgsqjgsrXgsrDgsr9f4LKr4LOG4LKs4LON4LKw4LK14LKw4LK/X+CyruCyvuCysOCzjeCymuCzjV/gso/gsqrgs43gsrDgsr/gsrLgs41f4LKu4LOG4LOVX+CynOCzguCyqOCzjV/gspzgs4HgsrLgs4bgs5Zf4LKG4LKX4LK44LON4LKf4LONX+CyuOCzhuCyquCzjeCyn+CzhuCyguCyrOCysOCzjV/gsoXgspXgs43gsp/gs4bgs4Lgs5XgsqzgsrDgs41f4LKo4LK14LOG4LKC4LKs4LKw4LONX+CyoeCyv+CyuOCzhuCyguCyrOCysOCzjScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICfgspzgsqhf4LKr4LOG4LKs4LON4LKwX+CyruCyvuCysOCzjeCymuCzjV/gso/gsqrgs43gsrDgsr/gsrLgs41f4LKu4LOG4LOVX+CynOCzguCyqOCzjV/gspzgs4HgsrLgs4bgs5Zf4LKG4LKX4LK44LON4LKf4LONX+CyuOCzhuCyquCzjeCyn+CzhuCygl/gsoXgspXgs43gsp/gs4bgs4Lgs5Vf4LKo4LK14LOG4LKCX+CyoeCyv+CyuOCzhuCygicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXM6ICfgsq3gsr7gsqjgs4HgsrXgsr7gsrBf4LK44LOG4LOC4LOV4LKu4LK14LK+4LKwX+CyruCyguCyl+Cys+CyteCyvuCysF/gsqzgs4HgsqfgsrXgsr7gsrBf4LKX4LOB4LKw4LOB4LK14LK+4LKwX+CytuCzgeCyleCzjeCysOCyteCyvuCysF/gsrbgsqjgsr/gsrXgsr7gsrAnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfgsq3gsr7gsqjgs4Ff4LK44LOG4LOC4LOV4LKuX+CyruCyguCyl+Cys1/gsqzgs4Hgsqdf4LKX4LOB4LKw4LOBX+CytuCzgeCyleCzjeCysF/gsrbgsqjgsr8nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn4LKt4LK+X+CyuOCzhuCzguCzlV/gsq7gsoJf4LKs4LOBX+Cyl+CzgV/gsrbgs4Ff4LK2Jy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdBIGg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnQSBoOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVksIEEgaDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVksIEEgaDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW+Cyh+CyguCypuCzgV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vgsqjgsr7gsrPgs4ZdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCwgTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vgsqjgsr/gsqjgs43gsqjgs4ZdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW+CyleCzhuCzguCyqOCzhuCyr10gZGRkZCwgTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICclcyDgsqjgsoLgsqTgsrAnLFxuICAgICAgICAgICAgcGFzdDogJyVzIOCyueCyv+CyguCypuCzhicsXG4gICAgICAgICAgICBzOiAn4LKV4LOG4LKy4LK14LOBIOCyleCzjeCyt+Cyo+Cyl+Cys+CzgScsXG4gICAgICAgICAgICBzczogJyVkIOCyuOCzhuCyleCzhuCyguCyoeCzgeCyl+Cys+CzgScsXG4gICAgICAgICAgICBtOiAn4LKS4LKC4LKm4LOBIOCyqOCyv+CyruCyv+CytycsXG4gICAgICAgICAgICBtbTogJyVkIOCyqOCyv+CyruCyv+CytycsXG4gICAgICAgICAgICBoOiAn4LKS4LKC4LKm4LOBIOCyl+CyguCyn+CzhicsXG4gICAgICAgICAgICBoaDogJyVkIOCyl+CyguCyn+CzhicsXG4gICAgICAgICAgICBkOiAn4LKS4LKC4LKm4LOBIOCypuCyv+CyqCcsXG4gICAgICAgICAgICBkZDogJyVkIOCypuCyv+CyqCcsXG4gICAgICAgICAgICBNOiAn4LKS4LKC4LKm4LOBIOCypOCyv+CyguCyl+Cys+CzgScsXG4gICAgICAgICAgICBNTTogJyVkIOCypOCyv+CyguCyl+Cys+CzgScsXG4gICAgICAgICAgICB5OiAn4LKS4LKC4LKm4LOBIOCyteCysOCzjeCytycsXG4gICAgICAgICAgICB5eTogJyVkIOCyteCysOCzjeCytycsXG4gICAgICAgIH0sXG4gICAgICAgIHByZXBhcnNlOiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL1vgs6fgs6jgs6ngs6rgs6vgs6zgs63gs67gs6/gs6ZdL2csIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXJNYXBbbWF0Y2hdO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIHBvc3Rmb3JtYXQ6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgvXFxkL2csIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBzeW1ib2xNYXBbbWF0Y2hdO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/gsrDgsr7gsqTgs43gsrDgsr984LKs4LOG4LKz4LK/4LKX4LON4LKX4LOGfOCyruCyp+CzjeCyr+CyvuCyueCzjeCyqHzgsrjgsoLgspzgs4YvLFxuICAgICAgICBtZXJpZGllbUhvdXI6IGZ1bmN0aW9uIChob3VyLCBtZXJpZGllbSkge1xuICAgICAgICAgICAgaWYgKGhvdXIgPT09IDEyKSB7XG4gICAgICAgICAgICAgICAgaG91ciA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobWVyaWRpZW0gPT09ICfgsrDgsr7gsqTgs43gsrDgsr8nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPCA0ID8gaG91ciA6IGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfgsqzgs4bgsrPgsr/gspfgs43gspfgs4YnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAn4LKu4LKn4LON4LKv4LK+4LK54LON4LKoJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyID49IDEwID8gaG91ciA6IGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfgsrjgsoLgspzgs4YnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyIDwgNCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4LKw4LK+4LKk4LON4LKw4LK/JztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDEwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgsqzgs4bgsrPgsr/gspfgs43gspfgs4YnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CyruCyp+CzjeCyr+CyvuCyueCzjeCyqCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAyMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4LK44LKC4LKc4LOGJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgsrDgsr7gsqTgs43gsrDgsr8nO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0o4LKo4LOG4LOVKS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAn4LKo4LOG4LOVJztcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAwLCAvLyBTdW5kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNiwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNnRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGtuO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEtvcmVhbiBba29dXG4vLyEgYXV0aG9yIDogS3l1bmd3b29rLCBQYXJrIDogaHR0cHM6Ly9naXRodWIuY29tL2t5dW5ndzAwa1xuLy8hIGF1dGhvciA6IEplZWV5dWwgTGVlIDxqZWVleXVsQGdtYWlsLmNvbT5cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBrbyA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2tvJywge1xuICAgICAgICBtb250aHM6ICcx7JuUXzLsm5RfM+yblF807JuUXzXsm5RfNuyblF837JuUXzjsm5RfOeyblF8xMOyblF8xMeyblF8xMuyblCcuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICcx7JuUXzLsm5RfM+yblF807JuUXzXsm5RfNuyblF837JuUXzjsm5RfOeyblF8xMOyblF8xMeyblF8xMuyblCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXM6ICfsnbzsmpTsnbxf7JuU7JqU7J28X+2ZlOyalOydvF/siJjsmpTsnbxf66qp7JqU7J28X+q4iOyalOydvF/thqDsmpTsnbwnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfsnbxf7JuUX+2ZlF/siJhf66qpX+q4iF/thqAnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn7J28X+yblF/tmZRf7IiYX+uqqV/quIhf7YagJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdBIGg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnQSBoOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdZWVlZLk1NLkRELicsXG4gICAgICAgICAgICBMTDogJ1lZWVnrhYQgTU1NTSBE7J28JyxcbiAgICAgICAgICAgIExMTDogJ1lZWVnrhYQgTU1NTSBE7J28IEEgaDptbScsXG4gICAgICAgICAgICBMTExMOiAnWVlZWeuFhCBNTU1NIETsnbwgZGRkZCBBIGg6bW0nLFxuICAgICAgICAgICAgbDogJ1lZWVkuTU0uREQuJyxcbiAgICAgICAgICAgIGxsOiAnWVlZWeuFhCBNTU1NIETsnbwnLFxuICAgICAgICAgICAgbGxsOiAnWVlZWeuFhCBNTU1NIETsnbwgQSBoOm1tJyxcbiAgICAgICAgICAgIGxsbGw6ICdZWVlZ64WEIE1NTU0gROydvCBkZGRkIEEgaDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAn7Jik64qYIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICfrgrTsnbwgTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICfslrTsoJwgTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICfsp4Drgpzso7wgZGRkZCBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVzIO2bhCcsXG4gICAgICAgICAgICBwYXN0OiAnJXMg7KCEJyxcbiAgICAgICAgICAgIHM6ICfrqocg7LSIJyxcbiAgICAgICAgICAgIHNzOiAnJWTstIgnLFxuICAgICAgICAgICAgbTogJzHrtoQnLFxuICAgICAgICAgICAgbW06ICclZOu2hCcsXG4gICAgICAgICAgICBoOiAn7ZWcIOyLnOqwhCcsXG4gICAgICAgICAgICBoaDogJyVk7Iuc6rCEJyxcbiAgICAgICAgICAgIGQ6ICftlZjro6gnLFxuICAgICAgICAgICAgZGQ6ICclZOydvCcsXG4gICAgICAgICAgICBNOiAn7ZWcIOuLrCcsXG4gICAgICAgICAgICBNTTogJyVk64usJyxcbiAgICAgICAgICAgIHk6ICfsnbwg64WEJyxcbiAgICAgICAgICAgIHl5OiAnJWTrhYQnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0o7J28fOyblHzso7wpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlciwgcGVyaW9kKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHBlcmlvZCkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2QnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0QnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0RERCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAn7J28JztcbiAgICAgICAgICAgICAgICBjYXNlICdNJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICfsm5QnO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3cnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ1cnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJ+yjvCc7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL+yYpOyghHzsmKTtm4QvLFxuICAgICAgICBpc1BNOiBmdW5jdGlvbiAodG9rZW4pIHtcbiAgICAgICAgICAgIHJldHVybiB0b2tlbiA9PT0gJ+yYpO2bhCc7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc1VwcGVyKSB7XG4gICAgICAgICAgICByZXR1cm4gaG91ciA8IDEyID8gJ+yYpOyghCcgOiAn7Jik7ZuEJztcbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBrbztcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBLdXJkaXNoIFtrdV1cbi8vISBhdXRob3IgOiBTaGFocmFtIE1lYmFzaGFyIDogaHR0cHM6Ly9naXRodWIuY29tL1NoYWhyYW1NZWJhc2hhclxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHN5bWJvbE1hcCA9IHtcbiAgICAgICAgICAgICcxJzogJ9mhJyxcbiAgICAgICAgICAgICcyJzogJ9miJyxcbiAgICAgICAgICAgICczJzogJ9mjJyxcbiAgICAgICAgICAgICc0JzogJ9mkJyxcbiAgICAgICAgICAgICc1JzogJ9mlJyxcbiAgICAgICAgICAgICc2JzogJ9mmJyxcbiAgICAgICAgICAgICc3JzogJ9mnJyxcbiAgICAgICAgICAgICc4JzogJ9moJyxcbiAgICAgICAgICAgICc5JzogJ9mpJyxcbiAgICAgICAgICAgICcwJzogJ9mgJyxcbiAgICAgICAgfSxcbiAgICAgICAgbnVtYmVyTWFwID0ge1xuICAgICAgICAgICAgJ9mhJzogJzEnLFxuICAgICAgICAgICAgJ9miJzogJzInLFxuICAgICAgICAgICAgJ9mjJzogJzMnLFxuICAgICAgICAgICAgJ9mkJzogJzQnLFxuICAgICAgICAgICAgJ9mlJzogJzUnLFxuICAgICAgICAgICAgJ9mmJzogJzYnLFxuICAgICAgICAgICAgJ9mnJzogJzcnLFxuICAgICAgICAgICAgJ9moJzogJzgnLFxuICAgICAgICAgICAgJ9mpJzogJzknLFxuICAgICAgICAgICAgJ9mgJzogJzAnLFxuICAgICAgICB9LFxuICAgICAgICBtb250aHMgPSBbXG4gICAgICAgICAgICAn2qnYp9mG2YjZhtuMINiv2YjZiNuV2YUnLFxuICAgICAgICAgICAgJ9i02YjYqNin2KonLFxuICAgICAgICAgICAgJ9im2KfYstin2LEnLFxuICAgICAgICAgICAgJ9mG24zYs9in2YYnLFxuICAgICAgICAgICAgJ9im2KfbjNin2LEnLFxuICAgICAgICAgICAgJ9it2YjYstuV24zYsdin2YYnLFxuICAgICAgICAgICAgJ9iq25XZhdmF2YjYsicsXG4gICAgICAgICAgICAn2KbYp9ioJyxcbiAgICAgICAgICAgICfYptuV24zZhNmI2YjZhCcsXG4gICAgICAgICAgICAn2KrYtNix24zZhtuMINuM25XZg9uV2YUnLFxuICAgICAgICAgICAgJ9iq2LTYsduM2YbbjCDYr9mI2YjbldmFJyxcbiAgICAgICAgICAgICfZg9in2YbZiNmG24wg24zbldqp25XZhScsXG4gICAgICAgIF07XG5cbiAgICB2YXIga3UgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdrdScsIHtcbiAgICAgICAgbW9udGhzOiBtb250aHMsXG4gICAgICAgIG1vbnRoc1Nob3J0OiBtb250aHMsXG4gICAgICAgIHdlZWtkYXlzOiAn24zZh+KAjNmD2LTZh+KAjNmF2YXZh+KAjF/Yr9mI2YjYtNmH4oCM2YXZhdmH4oCMX9iz247YtNmH4oCM2YXZhdmH4oCMX9qG2YjYp9ix2LTZh+KAjNmF2YXZh+KAjF/ZvtuO2YbYrNi02YfigIzZhdmF2YfigIxf2YfZh+KAjNuM2YbbjF/YtNmH4oCM2YXZhdmH4oCMJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn24zZh+KAjNmD2LTZh+KAjNmFX9iv2YjZiNi02YfigIzZhV/Ys9uO2LTZh+KAjNmFX9qG2YjYp9ix2LTZh+KAjNmFX9m+247Zhtis2LTZh+KAjNmFX9mH2YfigIzbjNmG24xf2LTZh+KAjNmF2YXZh+KAjCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfbjF/Yr1/Ys1/ahl/Zvl/Zh1/YtCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/YptuO2YjYp9ix2YfigIx82KjZh+KAjNuM2KfZhtuMLyxcbiAgICAgICAgaXNQTTogZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gL9im247ZiNin2LHZh+KAjC8udGVzdChpbnB1dCk7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDEyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfYqNmH4oCM24zYp9mG24wnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9im247ZiNin2LHZh+KAjCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW9im2YfigIzZhdix24Yg2YPYp9iq2pjZhduO2LFdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb2KjZh+KAjNuM2KfZhtuMINmD2KfYqtqY2YXbjtixXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW9mD2KfYqtqY2YXbjtixXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW9iv2YjbjtmG244g2YPYp9iq2pjZhduO2LFdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnZGRkZCBb2YPYp9iq2pjZhduO2LFdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAn2YTZh+KAjCAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMnLFxuICAgICAgICAgICAgczogJ9qG2YfigIzZhtivINqG2LHZg9mH4oCM24zZh+KAjNmDJyxcbiAgICAgICAgICAgIHNzOiAn2obYsdmD2YfigIwgJWQnLFxuICAgICAgICAgICAgbTogJ9uM2YfigIzZgyDYrtmI2YTZh+KAjNmDJyxcbiAgICAgICAgICAgIG1tOiAnJWQg2K7ZiNmE2YfigIzZgycsXG4gICAgICAgICAgICBoOiAn24zZh+KAjNmDINmD2KfYqtqY2YXbjtixJyxcbiAgICAgICAgICAgIGhoOiAnJWQg2YPYp9iq2pjZhduO2LEnLFxuICAgICAgICAgICAgZDogJ9uM2YfigIzZgyDalduG2pgnLFxuICAgICAgICAgICAgZGQ6ICclZCDalduG2pgnLFxuICAgICAgICAgICAgTTogJ9uM2YfigIzZgyDZhdin2YbarycsXG4gICAgICAgICAgICBNTTogJyVkINmF2KfZhtqvJyxcbiAgICAgICAgICAgIHk6ICfbjNmH4oCM2YMg2LPYp9q1JyxcbiAgICAgICAgICAgIHl5OiAnJWQg2LPYp9q1JyxcbiAgICAgICAgfSxcbiAgICAgICAgcHJlcGFyc2U6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmdcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvW9mh2aLZo9mk2aXZptmn2ajZqdmgXS9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlck1hcFttYXRjaF07XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgv2IwvZywgJywnKTtcbiAgICAgICAgfSxcbiAgICAgICAgcG9zdGZvcm1hdDogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZ1xuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cXGQvZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBzeW1ib2xNYXBbbWF0Y2hdO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoLywvZywgJ9iMJyk7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogNiwgLy8gU2F0dXJkYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogMTIsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDEydGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4ga3U7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogS3lyZ3l6IFtreV1cbi8vISBhdXRob3IgOiBDaHluZ3l6IEFyeXN0YW4gdXVsdSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9jaHluZ3l6XG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgc3VmZml4ZXMgPSB7XG4gICAgICAgIDA6ICct0YfSrycsXG4gICAgICAgIDE6ICct0YfQuCcsXG4gICAgICAgIDI6ICct0YfQuCcsXG4gICAgICAgIDM6ICct0YfSrycsXG4gICAgICAgIDQ6ICct0YfSrycsXG4gICAgICAgIDU6ICct0YfQuCcsXG4gICAgICAgIDY6ICct0YfRiycsXG4gICAgICAgIDc6ICct0YfQuCcsXG4gICAgICAgIDg6ICct0YfQuCcsXG4gICAgICAgIDk6ICct0YfRgycsXG4gICAgICAgIDEwOiAnLdGH0YMnLFxuICAgICAgICAyMDogJy3Rh9GLJyxcbiAgICAgICAgMzA6ICct0YfRgycsXG4gICAgICAgIDQwOiAnLdGH0YsnLFxuICAgICAgICA1MDogJy3Rh9KvJyxcbiAgICAgICAgNjA6ICct0YfRiycsXG4gICAgICAgIDcwOiAnLdGH0LgnLFxuICAgICAgICA4MDogJy3Rh9C4JyxcbiAgICAgICAgOTA6ICct0YfRgycsXG4gICAgICAgIDEwMDogJy3Rh9KvJyxcbiAgICB9O1xuXG4gICAgdmFyIGt5ID0gbW9tZW50LmRlZmluZUxvY2FsZSgna3knLCB7XG4gICAgICAgIG1vbnRoczogJ9GP0L3QstCw0YDRjF/RhNC10LLRgNCw0LvRjF/QvNCw0YDRgl/QsNC/0YDQtdC70Yxf0LzQsNC5X9C40Y7QvdGMX9C40Y7Qu9GMX9Cw0LLQs9GD0YHRgl/RgdC10L3RgtGP0LHRgNGMX9C+0LrRgtGP0LHRgNGMX9C90L7Rj9Cx0YDRjF/QtNC10LrQsNCx0YDRjCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICfRj9C90LJf0YTQtdCyX9C80LDRgNGCX9Cw0L/RgF/QvNCw0Llf0LjRjtC90Yxf0LjRjtC70Yxf0LDQstCzX9GB0LXQvV/QvtC60YJf0L3QvtGPX9C00LXQuicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXM6ICfQltC10LrRiNC10LzQsdC4X9CU0q/QudGI06nQvNCx0q9f0KjQtdC50YjQtdC80LHQuF/QqNCw0YDRiNC10LzQsdC4X9CR0LXQudGI0LXQvNCx0Lhf0JbRg9C80LBf0JjRiNC10LzQsdC4Jy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn0JbQtdC6X9CU0q/QuV/QqNC10Llf0KjQsNGAX9CR0LXQuV/QltGD0Lxf0JjRiNC1Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ9CW0Lpf0JTQuV/QqNC5X9Co0YBf0JHQuV/QltC8X9CY0YgnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb0JHSr9Cz0q/QvSDRgdCw0LDRgl0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vQrdGA0YLQtdKjINGB0LDQsNGCXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW9GB0LDQsNGCXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW9Ca0LXRh9GN0Y0g0YHQsNCw0YJdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW9Oo0YLQutOp0L0g0LDQv9GC0LDQvdGL0L1dIGRkZGQgW9C60q/QvdKvXSBb0YHQsNCw0YJdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnJXMg0LjRh9C40L3QtNC1JyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyDQvNGD0YDRg9C9JyxcbiAgICAgICAgICAgIHM6ICfQsdC40YDQvdC10YfQtSDRgdC10LrRg9C90LQnLFxuICAgICAgICAgICAgc3M6ICclZCDRgdC10LrRg9C90LQnLFxuICAgICAgICAgICAgbTogJ9Cx0LjRgCDQvNKv0L3TqdGCJyxcbiAgICAgICAgICAgIG1tOiAnJWQg0LzSr9C906nRgicsXG4gICAgICAgICAgICBoOiAn0LHQuNGAINGB0LDQsNGCJyxcbiAgICAgICAgICAgIGhoOiAnJWQg0YHQsNCw0YInLFxuICAgICAgICAgICAgZDogJ9Cx0LjRgCDQutKv0L0nLFxuICAgICAgICAgICAgZGQ6ICclZCDQutKv0L0nLFxuICAgICAgICAgICAgTTogJ9Cx0LjRgCDQsNC5JyxcbiAgICAgICAgICAgIE1NOiAnJWQg0LDQuScsXG4gICAgICAgICAgICB5OiAn0LHQuNGAINC20YvQuycsXG4gICAgICAgICAgICB5eTogJyVkINC20YvQuycsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfS0o0YfQuHzRh9GLfNGH0q980YfRgykvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICB2YXIgYSA9IG51bWJlciAlIDEwLFxuICAgICAgICAgICAgICAgIGIgPSBudW1iZXIgPj0gMTAwID8gMTAwIDogbnVsbDtcbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAoc3VmZml4ZXNbbnVtYmVyXSB8fCBzdWZmaXhlc1thXSB8fCBzdWZmaXhlc1tiXSk7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDcsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDd0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBreTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBMdXhlbWJvdXJnaXNoIFtsYl1cbi8vISBhdXRob3IgOiBtd2VpbWVyc2tpcmNoIDogaHR0cHM6Ly9naXRodWIuY29tL213ZWltZXJza2lyY2hcbi8vISBhdXRob3IgOiBEYXZpZCBSYWlzb24gOiBodHRwczovL2dpdGh1Yi5jb20va3dpc2F0elxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgZnVuY3Rpb24gcHJvY2Vzc1JlbGF0aXZlVGltZShudW1iZXIsIHdpdGhvdXRTdWZmaXgsIGtleSwgaXNGdXR1cmUpIHtcbiAgICAgICAgdmFyIGZvcm1hdCA9IHtcbiAgICAgICAgICAgIG06IFsnZW5nIE1pbnV0dCcsICdlbmdlciBNaW51dHQnXSxcbiAgICAgICAgICAgIGg6IFsnZW5nIFN0b25uJywgJ2VuZ2VyIFN0b25uJ10sXG4gICAgICAgICAgICBkOiBbJ2VlbiBEYWcnLCAnZW5nZW0gRGFnJ10sXG4gICAgICAgICAgICBNOiBbJ2VlIE1vdW50JywgJ2VuZ2VtIE1vdW50J10sXG4gICAgICAgICAgICB5OiBbJ2VlIEpvZXInLCAnZW5nZW0gSm9lciddLFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCA/IGZvcm1hdFtrZXldWzBdIDogZm9ybWF0W2tleV1bMV07XG4gICAgfVxuICAgIGZ1bmN0aW9uIHByb2Nlc3NGdXR1cmVUaW1lKHN0cmluZykge1xuICAgICAgICB2YXIgbnVtYmVyID0gc3RyaW5nLnN1YnN0cigwLCBzdHJpbmcuaW5kZXhPZignICcpKTtcbiAgICAgICAgaWYgKGVpZmVsZXJSZWdlbEFwcGxpZXNUb051bWJlcihudW1iZXIpKSB7XG4gICAgICAgICAgICByZXR1cm4gJ2EgJyArIHN0cmluZztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gJ2FuICcgKyBzdHJpbmc7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHByb2Nlc3NQYXN0VGltZShzdHJpbmcpIHtcbiAgICAgICAgdmFyIG51bWJlciA9IHN0cmluZy5zdWJzdHIoMCwgc3RyaW5nLmluZGV4T2YoJyAnKSk7XG4gICAgICAgIGlmIChlaWZlbGVyUmVnZWxBcHBsaWVzVG9OdW1iZXIobnVtYmVyKSkge1xuICAgICAgICAgICAgcmV0dXJuICd2aXJ1ICcgKyBzdHJpbmc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICd2aXJ1biAnICsgc3RyaW5nO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIHdvcmQgYmVmb3JlIHRoZSBnaXZlbiBudW1iZXIgbG9zZXMgdGhlICctbicgZW5kaW5nLlxuICAgICAqIGUuZy4gJ2FuIDEwIERlZWcnIGJ1dCAnYSA1IERlZWcnXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbnVtYmVyIHtpbnRlZ2VyfVxuICAgICAqIEByZXR1cm5zIHtib29sZWFufVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGVpZmVsZXJSZWdlbEFwcGxpZXNUb051bWJlcihudW1iZXIpIHtcbiAgICAgICAgbnVtYmVyID0gcGFyc2VJbnQobnVtYmVyLCAxMCk7XG4gICAgICAgIGlmIChpc05hTihudW1iZXIpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG51bWJlciA8IDApIHtcbiAgICAgICAgICAgIC8vIE5lZ2F0aXZlIE51bWJlciAtLT4gYWx3YXlzIHRydWVcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9IGVsc2UgaWYgKG51bWJlciA8IDEwKSB7XG4gICAgICAgICAgICAvLyBPbmx5IDEgZGlnaXRcbiAgICAgICAgICAgIGlmICg0IDw9IG51bWJlciAmJiBudW1iZXIgPD0gNykge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9IGVsc2UgaWYgKG51bWJlciA8IDEwMCkge1xuICAgICAgICAgICAgLy8gMiBkaWdpdHNcbiAgICAgICAgICAgIHZhciBsYXN0RGlnaXQgPSBudW1iZXIgJSAxMCxcbiAgICAgICAgICAgICAgICBmaXJzdERpZ2l0ID0gbnVtYmVyIC8gMTA7XG4gICAgICAgICAgICBpZiAobGFzdERpZ2l0ID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGVpZmVsZXJSZWdlbEFwcGxpZXNUb051bWJlcihmaXJzdERpZ2l0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBlaWZlbGVyUmVnZWxBcHBsaWVzVG9OdW1iZXIobGFzdERpZ2l0KTtcbiAgICAgICAgfSBlbHNlIGlmIChudW1iZXIgPCAxMDAwMCkge1xuICAgICAgICAgICAgLy8gMyBvciA0IGRpZ2l0cyAtLT4gcmVjdXJzaXZlbHkgY2hlY2sgZmlyc3QgZGlnaXRcbiAgICAgICAgICAgIHdoaWxlIChudW1iZXIgPj0gMTApIHtcbiAgICAgICAgICAgICAgICBudW1iZXIgPSBudW1iZXIgLyAxMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBlaWZlbGVyUmVnZWxBcHBsaWVzVG9OdW1iZXIobnVtYmVyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEFueXRoaW5nIGxhcmdlciB0aGFuIDQgZGlnaXRzOiByZWN1cnNpdmVseSBjaGVjayBmaXJzdCBuLTMgZGlnaXRzXG4gICAgICAgICAgICBudW1iZXIgPSBudW1iZXIgLyAxMDAwO1xuICAgICAgICAgICAgcmV0dXJuIGVpZmVsZXJSZWdlbEFwcGxpZXNUb051bWJlcihudW1iZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGxiID0gbW9tZW50LmRlZmluZUxvY2FsZSgnbGInLCB7XG4gICAgICAgIG1vbnRoczogJ0phbnVhcl9GZWJydWFyX03DpGVyel9BYnLDq2xsX01lZV9KdW5pX0p1bGlfQXVndXN0X1NlcHRlbWJlcl9Pa3RvYmVyX05vdmVtYmVyX0RlemVtYmVyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ0phbi5fRmVici5fTXJ6Ll9BYnIuX01lZV9KdW4uX0p1bC5fQXVnLl9TZXB0Ll9Pa3QuX05vdi5fRGV6Licuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXM6ICdTb25uZGVnX03DqWluZGVnX0TDq25zY2hkZWdfTcOrdHR3b2NoX0Rvbm5lc2NoZGVnX0ZyZWlkZWdfU2Ftc2NoZGVnJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnU28uX03DqS5fRMOrLl9Nw6suX0RvLl9Gci5fU2EuJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ1NvX03DqV9Ew6tfTcOrX0RvX0ZyX1NhJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0g6bW0gW0F1ZXJdJyxcbiAgICAgICAgICAgIExUUzogJ0g6bW06c3MgW0F1ZXJdJyxcbiAgICAgICAgICAgIEw6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRC4gTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QuIE1NTU0gWVlZWSBIOm1tIFtBdWVyXScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRC4gTU1NTSBZWVlZIEg6bW0gW0F1ZXJdJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbSGF1dCB1bV0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbTXVlciB1bV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFt1bV0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tHw6tzY2h0ZXIgdW1dIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgLy8gRGlmZmVyZW50IGRhdGUgc3RyaW5nIGZvciAnRMOrbnNjaGRlZycgKFR1ZXNkYXkpIGFuZCAnRG9ubmVzY2hkZWcnIChUaHVyc2RheSkgZHVlIHRvIHBob25vbG9naWNhbCBydWxlXG4gICAgICAgICAgICAgICAgc3dpdGNoICh0aGlzLmRheSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbTGVzY2h0ZW5dIGRkZGQgW3VtXSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1tMZXNjaHRlXSBkZGRkIFt1bV0gTFQnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiBwcm9jZXNzRnV0dXJlVGltZSxcbiAgICAgICAgICAgIHBhc3Q6IHByb2Nlc3NQYXN0VGltZSxcbiAgICAgICAgICAgIHM6ICdlIHB1ZXIgU2Vrb25uZW4nLFxuICAgICAgICAgICAgc3M6ICclZCBTZWtvbm5lbicsXG4gICAgICAgICAgICBtOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgbW06ICclZCBNaW51dHRlbicsXG4gICAgICAgICAgICBoOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgaGg6ICclZCBTdG9ubmVuJyxcbiAgICAgICAgICAgIGQ6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBkZDogJyVkIERlZWcnLFxuICAgICAgICAgICAgTTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIE1NOiAnJWQgTcOpaW50JyxcbiAgICAgICAgICAgIHk6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICB5eTogJyVkIEpvZXInLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn1cXC4vLFxuICAgICAgICBvcmRpbmFsOiAnJWQuJyxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGxiO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IExhbyBbbG9dXG4vLyEgYXV0aG9yIDogUnlhbiBIYXJ0IDogaHR0cHM6Ly9naXRodWIuY29tL3J5YW5oYXJ0MlxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIGxvID0gbW9tZW50LmRlZmluZUxvY2FsZSgnbG8nLCB7XG4gICAgICAgIG1vbnRoczogJ+C6oeC6seC6h+C6geC6reC6mV/guoHgurjguqHgup7gurJf4Lqh4Lq14LqZ4LqyX+C7gOC6oeC6quC6sl/gup7gurbgupTguqrgurDgup7gurJf4Lqh4Lq04LqW4Lq44LqZ4LqyX+C6geC7jeC6peC6sOC6geC6u+C6lF/guqrgurTguofguqvgurJf4LqB4Lqx4LqZ4LqN4LqyX+C6leC6uOC6peC6sl/gup7gurDguojgurTguoFf4LqX4Lqx4LqZ4Lqn4LqyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ+C6oeC6seC6h+C6geC6reC6mV/guoHgurjguqHgup7gurJf4Lqh4Lq14LqZ4LqyX+C7gOC6oeC6quC6sl/gup7gurbgupTguqrgurDgup7gurJf4Lqh4Lq04LqW4Lq44LqZ4LqyX+C6geC7jeC6peC6sOC6geC6u+C6lF/guqrgurTguofguqvgurJf4LqB4Lqx4LqZ4LqN4LqyX+C6leC6uOC6peC6sl/gup7gurDguojgurTguoFf4LqX4Lqx4LqZ4Lqn4LqyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5czogJ+C6reC6suC6l+C6tOC6lF/guojgurHguplf4Lqt4Lqx4LqH4LqE4Lqy4LqZX+C6nuC6uOC6lF/gup7gurDguqvgurHgupRf4Lqq4Lq44LqBX+C7gOC6quC6u+C6sicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ+C6l+C6tOC6lF/guojgurHguplf4Lqt4Lqx4LqH4LqE4Lqy4LqZX+C6nuC6uOC6lF/gup7gurDguqvgurHgupRf4Lqq4Lq44LqBX+C7gOC6quC6u+C6sicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfgupdf4LqIX+C6reC6hF/gup5f4Lqe4LqrX+C6quC6gV/guqonLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAn4Lqn4Lqx4LqZZGRkZCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/gupXguq3gupngu4Dguorgurvgu4ngurJ84LqV4Lqt4LqZ4LuB4Lql4LqHLyxcbiAgICAgICAgaXNQTTogZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gaW5wdXQgPT09ICfgupXguq3gupngu4HguqXguocnO1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCAxMikge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4LqV4Lqt4LqZ4LuA4LqK4Lq74LuJ4LqyJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgupXguq3gupngu4HguqXguocnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vguqHgurfgu4ngupngurXgu4ngu4DguqfguqXgurJdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb4Lqh4Lq34LuJ4Lqt4Lq34LuI4LqZ4LuA4Lqn4Lql4LqyXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ1vguqfgurHgupldZGRkZFvgu5zgu4ngurLgu4DguqfguqXgurJdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb4Lqh4Lq34LuJ4Lqn4Lqy4LqZ4LqZ4Lq14LuJ4LuA4Lqn4Lql4LqyXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1vguqfgurHgupldZGRkZFvgu4HguqXgu4nguqfgupngurXgu4ngu4DguqfguqXgurJdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAn4Lqt4Lq14LqBICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclc+C6nOC7iOC6suC6meC6oeC6sicsXG4gICAgICAgICAgICBzOiAn4Lqa4LuN4LuI4LuA4LqX4Lq74LuI4Lqy4LuD4LqU4Lqn4Lq04LqZ4Lqy4LqX4Lq1JyxcbiAgICAgICAgICAgIHNzOiAnJWQg4Lqn4Lq04LqZ4Lqy4LqX4Lq1JyxcbiAgICAgICAgICAgIG06ICcxIOC6meC6suC6l+C6tScsXG4gICAgICAgICAgICBtbTogJyVkIOC6meC6suC6l+C6tScsXG4gICAgICAgICAgICBoOiAnMSDguorgurvgu4jguqfgu4LguqHguocnLFxuICAgICAgICAgICAgaGg6ICclZCDguorgurvgu4jguqfgu4LguqHguocnLFxuICAgICAgICAgICAgZDogJzEg4Lqh4Lq34LuJJyxcbiAgICAgICAgICAgIGRkOiAnJWQg4Lqh4Lq34LuJJyxcbiAgICAgICAgICAgIE06ICcxIOC7gOC6lOC6t+C6reC6mScsXG4gICAgICAgICAgICBNTTogJyVkIOC7gOC6lOC6t+C6reC6mScsXG4gICAgICAgICAgICB5OiAnMSDgupvgurUnLFxuICAgICAgICAgICAgeXk6ICclZCDgupvgurUnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvKOC6l+C6teC7iClcXGR7MSwyfS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIHJldHVybiAn4LqX4Lq14LuIJyArIG51bWJlcjtcbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBsbztcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBMaXRodWFuaWFuIFtsdF1cbi8vISBhdXRob3IgOiBNaW5kYXVnYXMgTW96xatyYXMgOiBodHRwczovL2dpdGh1Yi5jb20vbW1venVyYXNcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciB1bml0cyA9IHtcbiAgICAgICAgc3M6ICdzZWt1bmTEl19zZWt1bmTFvmnFs19zZWt1bmRlcycsXG4gICAgICAgIG06ICdtaW51dMSXX21pbnV0xJdzX21pbnV0xJknLFxuICAgICAgICBtbTogJ21pbnV0xJdzX21pbnXEjWnFs19taW51dGVzJyxcbiAgICAgICAgaDogJ3ZhbGFuZGFfdmFsYW5kb3NfdmFsYW5kxIUnLFxuICAgICAgICBoaDogJ3ZhbGFuZG9zX3ZhbGFuZMWzX3ZhbGFuZGFzJyxcbiAgICAgICAgZDogJ2RpZW5hX2RpZW5vc19kaWVuxIUnLFxuICAgICAgICBkZDogJ2RpZW5vc19kaWVuxbNfZGllbmFzJyxcbiAgICAgICAgTTogJ23El251b19txJduZXNpb19txJduZXPErycsXG4gICAgICAgIE1NOiAnbcSXbmVzaWFpX23El25lc2nFs19txJduZXNpdXMnLFxuICAgICAgICB5OiAnbWV0YWlfbWV0xbNfbWV0dXMnLFxuICAgICAgICB5eTogJ21ldGFpX21ldMWzX21ldHVzJyxcbiAgICB9O1xuICAgIGZ1bmN0aW9uIHRyYW5zbGF0ZVNlY29uZHMobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXksIGlzRnV0dXJlKSB7XG4gICAgICAgIGlmICh3aXRob3V0U3VmZml4KSB7XG4gICAgICAgICAgICByZXR1cm4gJ2tlbGlvcyBzZWt1bmTEl3MnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGlzRnV0dXJlID8gJ2tlbGnFsyBzZWt1bmTFvmnFsycgOiAna2VsaWFzIHNla3VuZGVzJztcbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiB0cmFuc2xhdGVTaW5ndWxhcihudW1iZXIsIHdpdGhvdXRTdWZmaXgsIGtleSwgaXNGdXR1cmUpIHtcbiAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXhcbiAgICAgICAgICAgID8gZm9ybXMoa2V5KVswXVxuICAgICAgICAgICAgOiBpc0Z1dHVyZVxuICAgICAgICAgICAgPyBmb3JtcyhrZXkpWzFdXG4gICAgICAgICAgICA6IGZvcm1zKGtleSlbMl07XG4gICAgfVxuICAgIGZ1bmN0aW9uIHNwZWNpYWwobnVtYmVyKSB7XG4gICAgICAgIHJldHVybiBudW1iZXIgJSAxMCA9PT0gMCB8fCAobnVtYmVyID4gMTAgJiYgbnVtYmVyIDwgMjApO1xuICAgIH1cbiAgICBmdW5jdGlvbiBmb3JtcyhrZXkpIHtcbiAgICAgICAgcmV0dXJuIHVuaXRzW2tleV0uc3BsaXQoJ18nKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdHJhbnNsYXRlKG51bWJlciwgd2l0aG91dFN1ZmZpeCwga2V5LCBpc0Z1dHVyZSkge1xuICAgICAgICB2YXIgcmVzdWx0ID0gbnVtYmVyICsgJyAnO1xuICAgICAgICBpZiAobnVtYmVyID09PSAxKSB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIHJlc3VsdCArIHRyYW5zbGF0ZVNpbmd1bGFyKG51bWJlciwgd2l0aG91dFN1ZmZpeCwga2V5WzBdLCBpc0Z1dHVyZSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSBpZiAod2l0aG91dFN1ZmZpeCkge1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArIChzcGVjaWFsKG51bWJlcikgPyBmb3JtcyhrZXkpWzFdIDogZm9ybXMoa2V5KVswXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoaXNGdXR1cmUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgZm9ybXMoa2V5KVsxXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArIChzcGVjaWFsKG51bWJlcikgPyBmb3JtcyhrZXkpWzFdIDogZm9ybXMoa2V5KVsyXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgdmFyIGx0ID0gbW9tZW50LmRlZmluZUxvY2FsZSgnbHQnLCB7XG4gICAgICAgIG1vbnRoczoge1xuICAgICAgICAgICAgZm9ybWF0OiAnc2F1c2lvX3Zhc2FyaW9fa292b19iYWxhbmTFvmlvX2dlZ3XFvsSXc19iaXLFvmVsaW9fbGllcG9zX3J1Z3BqxavEjWlvX3J1Z3PEl2pvX3NwYWxpb19sYXBrcmnEjWlvX2dydW9kxb5pbycuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgc3RhbmRhbG9uZTogJ3NhdXNpc192YXNhcmlzX2tvdmFzX2JhbGFuZGlzX2dlZ3XFvsSXX2JpcsW+ZWxpc19saWVwYV9ydWdwasWrdGlzX3J1Z3PEl2ppc19zcGFsaXNfbGFwa3JpdGlzX2dydW9kaXMnLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGlzRm9ybWF0OiAvRFtvRF0/KFxcW1teXFxbXFxdXSpcXF18XFxzKStNTU1NP3xNTU1NPyhcXFtbXlxcW1xcXV0qXFxdfFxccykrRFtvRF0/LyxcbiAgICAgICAgfSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdzYXVfdmFzX2tvdl9iYWxfZ2VnX2Jpcl9saWVfcmdwX3Jnc19zcGFfbGFwX2dyZCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6IHtcbiAgICAgICAgICAgIGZvcm1hdDogJ3Nla21hZGllbsSvX3Bpcm1hZGllbsSvX2FudHJhZGllbsSvX3RyZcSNaWFkaWVuxK9fa2V0dmlydGFkaWVuxK9fcGVua3RhZGllbsSvX8WhZcWhdGFkaWVuxK8nLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHN0YW5kYWxvbmU6ICdzZWttYWRpZW5pc19waXJtYWRpZW5pc19hbnRyYWRpZW5pc190cmXEjWlhZGllbmlzX2tldHZpcnRhZGllbmlzX3Blbmt0YWRpZW5pc1/FoWXFoXRhZGllbmlzJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBpc0Zvcm1hdDogL2RkZGQgSEg6bW0vLFxuICAgICAgICB9LFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnU2VrX1Bpcl9BbnRfVHJlX0tldF9QZW5fxaBlxaEnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnU19QX0FfVF9LX1BuX8WgJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdZWVlZLU1NLUREJyxcbiAgICAgICAgICAgIExMOiAnWVlZWSBbbS5dIE1NTU0gRCBbZC5dJyxcbiAgICAgICAgICAgIExMTDogJ1lZWVkgW20uXSBNTU1NIEQgW2QuXSwgSEg6bW0gW3ZhbC5dJyxcbiAgICAgICAgICAgIExMTEw6ICdZWVlZIFttLl0gTU1NTSBEIFtkLl0sIGRkZGQsIEhIOm1tIFt2YWwuXScsXG4gICAgICAgICAgICBsOiAnWVlZWS1NTS1ERCcsXG4gICAgICAgICAgICBsbDogJ1lZWVkgW20uXSBNTU1NIEQgW2QuXScsXG4gICAgICAgICAgICBsbGw6ICdZWVlZIFttLl0gTU1NTSBEIFtkLl0sIEhIOm1tIFt2YWwuXScsXG4gICAgICAgICAgICBsbGxsOiAnWVlZWSBbbS5dIE1NTU0gRCBbZC5dLCBkZGQsIEhIOm1tIFt2YWwuXScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW8WgaWFuZGllbl0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tSeXRval0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbVmFrYXJdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW1ByYcSXanVzxK9dIGRkZGQgTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdwbyAlcycsXG4gICAgICAgICAgICBwYXN0OiAncHJpZcWhICVzJyxcbiAgICAgICAgICAgIHM6IHRyYW5zbGF0ZVNlY29uZHMsXG4gICAgICAgICAgICBzczogdHJhbnNsYXRlLFxuICAgICAgICAgICAgbTogdHJhbnNsYXRlU2luZ3VsYXIsXG4gICAgICAgICAgICBtbTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgaDogdHJhbnNsYXRlU2luZ3VsYXIsXG4gICAgICAgICAgICBoaDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgZDogdHJhbnNsYXRlU2luZ3VsYXIsXG4gICAgICAgICAgICBkZDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgTTogdHJhbnNsYXRlU2luZ3VsYXIsXG4gICAgICAgICAgICBNTTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgeTogdHJhbnNsYXRlU2luZ3VsYXIsXG4gICAgICAgICAgICB5eTogdHJhbnNsYXRlLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0tb2ppLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICctb2ppJztcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGx0O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IExhdHZpYW4gW2x2XVxuLy8hIGF1dGhvciA6IEtyaXN0YXBzIEthcmxzb25zIDogaHR0cHM6Ly9naXRodWIuY29tL3NrYWtyaVxuLy8hIGF1dGhvciA6IErEgW5pcyBFbG1lcmlzIDogaHR0cHM6Ly9naXRodWIuY29tL0phbmlzRVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHVuaXRzID0ge1xuICAgICAgICBzczogJ3Nla3VuZGVzX3Nla3VuZMSTbV9zZWt1bmRlX3Nla3VuZGVzJy5zcGxpdCgnXycpLFxuICAgICAgICBtOiAnbWluxat0ZXNfbWluxat0xJNtX21pbsWrdGVfbWluxat0ZXMnLnNwbGl0KCdfJyksXG4gICAgICAgIG1tOiAnbWluxat0ZXNfbWluxat0xJNtX21pbsWrdGVfbWluxat0ZXMnLnNwbGl0KCdfJyksXG4gICAgICAgIGg6ICdzdHVuZGFzX3N0dW5kxIFtX3N0dW5kYV9zdHVuZGFzJy5zcGxpdCgnXycpLFxuICAgICAgICBoaDogJ3N0dW5kYXNfc3R1bmTEgW1fc3R1bmRhX3N0dW5kYXMnLnNwbGl0KCdfJyksXG4gICAgICAgIGQ6ICdkaWVuYXNfZGllbsSBbV9kaWVuYV9kaWVuYXMnLnNwbGl0KCdfJyksXG4gICAgICAgIGRkOiAnZGllbmFzX2RpZW7EgW1fZGllbmFfZGllbmFzJy5zcGxpdCgnXycpLFxuICAgICAgICBNOiAnbcSTbmXFoWFfbcSTbmXFoWllbV9txJNuZXNpc19txJNuZcWhaScuc3BsaXQoJ18nKSxcbiAgICAgICAgTU06ICdtxJNuZcWhYV9txJNuZcWhaWVtX23Ek25lc2lzX23Ek25lxaFpJy5zcGxpdCgnXycpLFxuICAgICAgICB5OiAnZ2FkYV9nYWRpZW1fZ2Fkc19nYWRpJy5zcGxpdCgnXycpLFxuICAgICAgICB5eTogJ2dhZGFfZ2FkaWVtX2dhZHNfZ2FkaScuc3BsaXQoJ18nKSxcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBwYXJhbSB3aXRob3V0U3VmZml4IGJvb2xlYW4gdHJ1ZSA9IGEgbGVuZ3RoIG9mIHRpbWU7IGZhbHNlID0gYmVmb3JlL2FmdGVyIGEgcGVyaW9kIG9mIHRpbWUuXG4gICAgICovXG4gICAgZnVuY3Rpb24gZm9ybWF0KGZvcm1zLCBudW1iZXIsIHdpdGhvdXRTdWZmaXgpIHtcbiAgICAgICAgaWYgKHdpdGhvdXRTdWZmaXgpIHtcbiAgICAgICAgICAgIC8vIEUuZy4gXCIyMSBtaW7Fq3RlXCIsIFwiMyBtaW7Fq3Rlc1wiLlxuICAgICAgICAgICAgcmV0dXJuIG51bWJlciAlIDEwID09PSAxICYmIG51bWJlciAlIDEwMCAhPT0gMTEgPyBmb3Jtc1syXSA6IGZvcm1zWzNdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gRS5nLiBcIjIxIG1pbsWrdGVzXCIgYXMgaW4gXCJwxJNjIDIxIG1pbsWrdGVzXCIuXG4gICAgICAgICAgICAvLyBFLmcuIFwiMyBtaW7Fq3TEk21cIiBhcyBpbiBcInDEk2MgMyBtaW7Fq3TEk21cIi5cbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgJSAxMCA9PT0gMSAmJiBudW1iZXIgJSAxMDAgIT09IDExID8gZm9ybXNbMF0gOiBmb3Jtc1sxXTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsKG51bWJlciwgd2l0aG91dFN1ZmZpeCwga2V5KSB7XG4gICAgICAgIHJldHVybiBudW1iZXIgKyAnICcgKyBmb3JtYXQodW5pdHNba2V5XSwgbnVtYmVyLCB3aXRob3V0U3VmZml4KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVsYXRpdmVUaW1lV2l0aFNpbmd1bGFyKG51bWJlciwgd2l0aG91dFN1ZmZpeCwga2V5KSB7XG4gICAgICAgIHJldHVybiBmb3JtYXQodW5pdHNba2V5XSwgbnVtYmVyLCB3aXRob3V0U3VmZml4KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVsYXRpdmVTZWNvbmRzKG51bWJlciwgd2l0aG91dFN1ZmZpeCkge1xuICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCA/ICdkYcW+YXMgc2VrdW5kZXMnIDogJ2Rhxb7EgW0gc2VrdW5kxJNtJztcbiAgICB9XG5cbiAgICB2YXIgbHYgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdsdicsIHtcbiAgICAgICAgbW9udGhzOiAnamFudsSBcmlzX2ZlYnJ1xIFyaXNfbWFydHNfYXByxKtsaXNfbWFpanNfasWrbmlqc19qxatsaWpzX2F1Z3VzdHNfc2VwdGVtYnJpc19va3RvYnJpc19ub3ZlbWJyaXNfZGVjZW1icmlzJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ2phbl9mZWJfbWFyX2Fwcl9tYWlfasWrbl9qxatsX2F1Z19zZXBfb2t0X25vdl9kZWMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAnc3bEk3RkaWVuYV9waXJtZGllbmFfb3RyZGllbmFfdHJlxaFkaWVuYV9jZXR1cnRkaWVuYV9waWVrdGRpZW5hX3Nlc3RkaWVuYScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ1N2X1BfT19UX0NfUGtfUycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdTdl9QX09fVF9DX1BrX1MnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0RELk1NLllZWVkuJyxcbiAgICAgICAgICAgIExMOiAnWVlZWS4gW2dhZGFdIEQuIE1NTU0nLFxuICAgICAgICAgICAgTExMOiAnWVlZWS4gW2dhZGFdIEQuIE1NTU0sIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdZWVlZLiBbZ2FkYV0gRC4gTU1NTSwgZGRkZCwgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vFoG9kaWVuIHB1bGtzdGVuXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW1LEq3QgcHVsa3N0ZW5dIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbcHVsa3N0ZW5dIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbVmFrYXIgcHVsa3N0ZW5dIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW1BhZ8SBanXFocSBXSBkZGRkIFtwdWxrc3Rlbl0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdwxJNjICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICdwaXJtcyAlcycsXG4gICAgICAgICAgICBzOiByZWxhdGl2ZVNlY29uZHMsXG4gICAgICAgICAgICBzczogcmVsYXRpdmVUaW1lV2l0aFBsdXJhbCxcbiAgICAgICAgICAgIG06IHJlbGF0aXZlVGltZVdpdGhTaW5ndWxhcixcbiAgICAgICAgICAgIG1tOiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICAgICAgaDogcmVsYXRpdmVUaW1lV2l0aFNpbmd1bGFyLFxuICAgICAgICAgICAgaGg6IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgICAgICBkOiByZWxhdGl2ZVRpbWVXaXRoU2luZ3VsYXIsXG4gICAgICAgICAgICBkZDogcmVsYXRpdmVUaW1lV2l0aFBsdXJhbCxcbiAgICAgICAgICAgIE06IHJlbGF0aXZlVGltZVdpdGhTaW5ndWxhcixcbiAgICAgICAgICAgIE1NOiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICAgICAgeTogcmVsYXRpdmVUaW1lV2l0aFNpbmd1bGFyLFxuICAgICAgICAgICAgeXk6IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfVxcLi8sXG4gICAgICAgIG9yZGluYWw6ICclZC4nLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gbHY7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogTW9udGVuZWdyaW4gW21lXVxuLy8hIGF1dGhvciA6IE1pb2RyYWcgTmlrYcSNIDxtaW9kcmFnQHJlc3RhcnRpdC5tZT4gOiBodHRwczovL2dpdGh1Yi5jb20vbWlvZHJhZ25pa2FjXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgdHJhbnNsYXRvciA9IHtcbiAgICAgICAgd29yZHM6IHtcbiAgICAgICAgICAgIC8vRGlmZmVyZW50IGdyYW1tYXRpY2FsIGNhc2VzXG4gICAgICAgICAgICBzczogWydzZWt1bmQnLCAnc2VrdW5kYScsICdzZWt1bmRpJ10sXG4gICAgICAgICAgICBtOiBbJ2plZGFuIG1pbnV0JywgJ2plZG5vZyBtaW51dGEnXSxcbiAgICAgICAgICAgIG1tOiBbJ21pbnV0JywgJ21pbnV0YScsICdtaW51dGEnXSxcbiAgICAgICAgICAgIGg6IFsnamVkYW4gc2F0JywgJ2plZG5vZyBzYXRhJ10sXG4gICAgICAgICAgICBoaDogWydzYXQnLCAnc2F0YScsICdzYXRpJ10sXG4gICAgICAgICAgICBkZDogWydkYW4nLCAnZGFuYScsICdkYW5hJ10sXG4gICAgICAgICAgICBNTTogWydtamVzZWMnLCAnbWplc2VjYScsICdtamVzZWNpJ10sXG4gICAgICAgICAgICB5eTogWydnb2RpbmEnLCAnZ29kaW5lJywgJ2dvZGluYSddLFxuICAgICAgICB9LFxuICAgICAgICBjb3JyZWN0R3JhbW1hdGljYWxDYXNlOiBmdW5jdGlvbiAobnVtYmVyLCB3b3JkS2V5KSB7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyID09PSAxXG4gICAgICAgICAgICAgICAgPyB3b3JkS2V5WzBdXG4gICAgICAgICAgICAgICAgOiBudW1iZXIgPj0gMiAmJiBudW1iZXIgPD0gNFxuICAgICAgICAgICAgICAgID8gd29yZEtleVsxXVxuICAgICAgICAgICAgICAgIDogd29yZEtleVsyXTtcbiAgICAgICAgfSxcbiAgICAgICAgdHJhbnNsYXRlOiBmdW5jdGlvbiAobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXkpIHtcbiAgICAgICAgICAgIHZhciB3b3JkS2V5ID0gdHJhbnNsYXRvci53b3Jkc1trZXldO1xuICAgICAgICAgICAgaWYgKGtleS5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCA/IHdvcmRLZXlbMF0gOiB3b3JkS2V5WzFdO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICBudW1iZXIgK1xuICAgICAgICAgICAgICAgICAgICAnICcgK1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdG9yLmNvcnJlY3RHcmFtbWF0aWNhbENhc2UobnVtYmVyLCB3b3JkS2V5KVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgfTtcblxuICAgIHZhciBtZSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ21lJywge1xuICAgICAgICBtb250aHM6ICdqYW51YXJfZmVicnVhcl9tYXJ0X2FwcmlsX21hal9qdW5fanVsX2F2Z3VzdF9zZXB0ZW1iYXJfb2t0b2Jhcl9ub3ZlbWJhcl9kZWNlbWJhcicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdqYW4uX2ZlYi5fbWFyLl9hcHIuX21hal9qdW5fanVsX2F2Zy5fc2VwLl9va3QuX25vdi5fZGVjLicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXM6ICduZWRqZWxqYV9wb25lZGplbGpha191dG9yYWtfc3JpamVkYV/EjWV0dnJ0YWtfcGV0YWtfc3Vib3RhJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnbmVkLl9wb24uX3V0by5fc3JpLl/EjWV0Ll9wZXQuX3N1Yi4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnbmVfcG9fdXRfc3JfxI1lX3BlX3N1Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0g6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QuIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdELiBNTU1NIFlZWVkgSDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRC4gTU1NTSBZWVlZIEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tkYW5hcyB1XSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW3NqdXRyYSB1XSBMVCcsXG5cbiAgICAgICAgICAgIG5leHRXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoICh0aGlzLmRheSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3VdIFtuZWRqZWxqdV0gW3VdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbdV0gW3NyaWplZHVdIFt1XSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3VdIFtzdWJvdHVdIFt1XSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3VdIGRkZGQgW3VdIExUJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGFzdERheTogJ1tqdcSNZSB1XSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHZhciBsYXN0V2Vla0RheXMgPSBbXG4gICAgICAgICAgICAgICAgICAgICdbcHJvxaFsZV0gW25lZGplbGplXSBbdV0gTFQnLFxuICAgICAgICAgICAgICAgICAgICAnW3Byb8WhbG9nXSBbcG9uZWRqZWxqa2FdIFt1XSBMVCcsXG4gICAgICAgICAgICAgICAgICAgICdbcHJvxaFsb2ddIFt1dG9ya2FdIFt1XSBMVCcsXG4gICAgICAgICAgICAgICAgICAgICdbcHJvxaFsZV0gW3NyaWplZGVdIFt1XSBMVCcsXG4gICAgICAgICAgICAgICAgICAgICdbcHJvxaFsb2ddIFvEjWV0dnJ0a2FdIFt1XSBMVCcsXG4gICAgICAgICAgICAgICAgICAgICdbcHJvxaFsb2ddIFtwZXRrYV0gW3VdIExUJyxcbiAgICAgICAgICAgICAgICAgICAgJ1twcm/FoWxlXSBbc3Vib3RlXSBbdV0gTFQnLFxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgcmV0dXJuIGxhc3RXZWVrRGF5c1t0aGlzLmRheSgpXTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ3phICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICdwcmlqZSAlcycsXG4gICAgICAgICAgICBzOiAnbmVrb2xpa28gc2VrdW5kaScsXG4gICAgICAgICAgICBzczogdHJhbnNsYXRvci50cmFuc2xhdGUsXG4gICAgICAgICAgICBtOiB0cmFuc2xhdG9yLnRyYW5zbGF0ZSxcbiAgICAgICAgICAgIG1tOiB0cmFuc2xhdG9yLnRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGg6IHRyYW5zbGF0b3IudHJhbnNsYXRlLFxuICAgICAgICAgICAgaGg6IHRyYW5zbGF0b3IudHJhbnNsYXRlLFxuICAgICAgICAgICAgZDogJ2RhbicsXG4gICAgICAgICAgICBkZDogdHJhbnNsYXRvci50cmFuc2xhdGUsXG4gICAgICAgICAgICBNOiAnbWplc2VjJyxcbiAgICAgICAgICAgIE1NOiB0cmFuc2xhdG9yLnRyYW5zbGF0ZSxcbiAgICAgICAgICAgIHk6ICdnb2RpbnUnLFxuICAgICAgICAgICAgeXk6IHRyYW5zbGF0b3IudHJhbnNsYXRlLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn1cXC4vLFxuICAgICAgICBvcmRpbmFsOiAnJWQuJyxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNywgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gN3RoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG1lO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IE1hb3JpIFttaV1cbi8vISBhdXRob3IgOiBKb2huIENvcnJpZ2FuIDxyb2JiaWVjbG9zZXRAZ21haWwuY29tPiA6IGh0dHBzOi8vZ2l0aHViLmNvbS9qb2huaWRlYWxcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBtaSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ21pJywge1xuICAgICAgICBtb250aHM6ICdLb2hpLXTEgXRlX0h1aS10YW5ndXJ1X1BvdXTFqy10ZS1yYW5naV9QYWVuZ2Etd2jEgXdoxIFfSGFyYXR1YV9QaXBpcmlfSMWNbmdvaW5nb2lfSGVyZS10dXJpLWvFjWvEgV9NYWh1cnVfV2hpcmluZ2EtxIEtbnVrdV9XaGlyaW5nYS3EgS1yYW5naV9IYWtpaGVhJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ0tvaGlfSHVpX1BvdV9QYWVfSGFyYV9QaXBpX0jFjW5nb2lfSGVyZV9NYWh1X1doaS1udV9XaGktcmFfSGFraScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzUmVnZXg6IC8oPzpbJ2EtelxcdTAxMDFcXHUwMTREXFx1MDE2Ql0rXFwtPyl7MSwzfS9pLFxuICAgICAgICBtb250aHNTdHJpY3RSZWdleDogLyg/OlsnYS16XFx1MDEwMVxcdTAxNERcXHUwMTZCXStcXC0/KXsxLDN9L2ksXG4gICAgICAgIG1vbnRoc1Nob3J0UmVnZXg6IC8oPzpbJ2EtelxcdTAxMDFcXHUwMTREXFx1MDE2Ql0rXFwtPyl7MSwzfS9pLFxuICAgICAgICBtb250aHNTaG9ydFN0cmljdFJlZ2V4OiAvKD86WydhLXpcXHUwMTAxXFx1MDE0RFxcdTAxNkJdK1xcLT8pezEsMn0vaSxcbiAgICAgICAgd2Vla2RheXM6ICdSxIF0YXB1X01hbmVfVMWrcmVpX1dlbmVyZWlfVMSBaXRlX1BhcmFpcmVfSMSBdGFyZWknLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdUYV9NYV9UxatfV2VfVMSBaV9QYV9IxIEnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnVGFfTWFfVMWrX1dlX1TEgWlfUGFfSMSBJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIFtpXSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgW2ldIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbaSB0ZWllIG1haGFuYSwgaV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1thcG9wbyBpXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW2ldIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbaW5hbmFoaSBpXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ2RkZGQgW3doYWthbXV0dW5nYSBpXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ2kgcm90byBpICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyBpIG11YScsXG4gICAgICAgICAgICBzOiAndGUgaMSTa29uYSBydWFydWEnLFxuICAgICAgICAgICAgc3M6ICclZCBoxJNrb25hJyxcbiAgICAgICAgICAgIG06ICdoZSBtZW5ldGknLFxuICAgICAgICAgICAgbW06ICclZCBtZW5ldGknLFxuICAgICAgICAgICAgaDogJ3RlIGhhb3JhJyxcbiAgICAgICAgICAgIGhoOiAnJWQgaGFvcmEnLFxuICAgICAgICAgICAgZDogJ2hlIHJhJyxcbiAgICAgICAgICAgIGRkOiAnJWQgcmEnLFxuICAgICAgICAgICAgTTogJ2hlIG1hcmFtYScsXG4gICAgICAgICAgICBNTTogJyVkIG1hcmFtYScsXG4gICAgICAgICAgICB5OiAnaGUgdGF1JyxcbiAgICAgICAgICAgIHl5OiAnJWQgdGF1JyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9wrovLFxuICAgICAgICBvcmRpbmFsOiAnJWTCuicsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBtaTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBNYWNlZG9uaWFuIFtta11cbi8vISBhdXRob3IgOiBCb3Jpc2xhdiBNaWNrb3YgOiBodHRwczovL2dpdGh1Yi5jb20vQjBrMFxuLy8hIGF1dGhvciA6IFNhc2hrbyBUb2Rvcm92IDogaHR0cHM6Ly9naXRodWIuY29tL2JreWNlaFxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIG1rID0gbW9tZW50LmRlZmluZUxvY2FsZSgnbWsnLCB7XG4gICAgICAgIG1vbnRoczogJ9GY0LDQvdGD0LDRgNC4X9GE0LXQstGA0YPQsNGA0Lhf0LzQsNGA0YJf0LDQv9GA0LjQu1/QvNCw0Zhf0ZjRg9C90Lhf0ZjRg9C70Lhf0LDQstCz0YPRgdGCX9GB0LXQv9GC0LXQvNCy0YDQuF/QvtC60YLQvtC80LLRgNC4X9C90L7QtdC80LLRgNC4X9C00LXQutC10LzQstGA0LgnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAn0ZjQsNC9X9GE0LXQsl/QvNCw0YBf0LDQv9GAX9C80LDRmF/RmNGD0L1f0ZjRg9C7X9Cw0LLQs1/RgdC10L9f0L7QutGCX9C90L7QtV/QtNC10LonLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAn0L3QtdC00LXQu9CwX9C/0L7QvdC10LTQtdC70L3QuNC6X9Cy0YLQvtGA0L3QuNC6X9GB0YDQtdC00LBf0YfQtdGC0LLRgNGC0L7Qul/Qv9C10YLQvtC6X9GB0LDQsdC+0YLQsCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ9C90LXQtF/Qv9C+0L1f0LLRgtC+X9GB0YDQtV/Rh9C10YJf0L/QtdGCX9GB0LDQsScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfQvWVf0L9vX9Cy0YJf0YHRgF/Rh9C1X9C/0LVf0YFhJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0g6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0QuTU0uWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZIEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vQlNC10L3QtdGBINCy0L5dIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb0KPRgtGA0LUg0LLQvl0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdb0JLQvl0gZGRkZCBb0LLQvl0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vQktGH0LXRgNCwINCy0L5dIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoICh0aGlzLmRheSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1vQmNC30LzQuNC90LDRgtCw0YLQsF0gZGRkZCBb0LLQvl0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1vQmNC30LzQuNC90LDRgtC40L7Rgl0gZGRkZCBb0LLQvl0gTFQnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ9C30LAgJXMnLFxuICAgICAgICAgICAgcGFzdDogJ9C/0YDQtdC0ICVzJyxcbiAgICAgICAgICAgIHM6ICfQvdC10LrQvtC70LrRgyDRgdC10LrRg9C90LTQuCcsXG4gICAgICAgICAgICBzczogJyVkINGB0LXQutGD0L3QtNC4JyxcbiAgICAgICAgICAgIG06ICfQtdC00L3QsCDQvNC40L3Rg9GC0LAnLFxuICAgICAgICAgICAgbW06ICclZCDQvNC40L3Rg9GC0LgnLFxuICAgICAgICAgICAgaDogJ9C10LTQtdC9INGH0LDRgScsXG4gICAgICAgICAgICBoaDogJyVkINGH0LDRgdCwJyxcbiAgICAgICAgICAgIGQ6ICfQtdC00LXQvSDQtNC10L0nLFxuICAgICAgICAgICAgZGQ6ICclZCDQtNC10L3QsCcsXG4gICAgICAgICAgICBNOiAn0LXQtNC10L0g0LzQtdGB0LXRhicsXG4gICAgICAgICAgICBNTTogJyVkINC80LXRgdC10YbQuCcsXG4gICAgICAgICAgICB5OiAn0LXQtNC90LAg0LPQvtC00LjQvdCwJyxcbiAgICAgICAgICAgIHl5OiAnJWQg0LPQvtC00LjQvdC4JyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9LSjQtdCyfNC10L180YLQuHzQstC4fNGA0Lh80LzQuCkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICB2YXIgbGFzdERpZ2l0ID0gbnVtYmVyICUgMTAsXG4gICAgICAgICAgICAgICAgbGFzdDJEaWdpdHMgPSBudW1iZXIgJSAxMDA7XG4gICAgICAgICAgICBpZiAobnVtYmVyID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICct0LXQsic7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGxhc3QyRGlnaXRzID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICct0LXQvSc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGxhc3QyRGlnaXRzID4gMTAgJiYgbGFzdDJEaWdpdHMgPCAyMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnLdGC0LgnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChsYXN0RGlnaXQgPT09IDEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJy3QstC4JztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobGFzdERpZ2l0ID09PSAyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICct0YDQuCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGxhc3REaWdpdCA9PT0gNyB8fCBsYXN0RGlnaXQgPT09IDgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJy3QvNC4JztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICct0YLQuCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDcsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDd0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBtaztcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBNYWxheWFsYW0gW21sXVxuLy8hIGF1dGhvciA6IEZsb3lkIFBpbmsgOiBodHRwczovL2dpdGh1Yi5jb20vZmxveWRwaW5rXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgbWwgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdtbCcsIHtcbiAgICAgICAgbW9udGhzOiAn4LSc4LSo4LWB4LS14LSw4LS/X+C0q+C1huC0rOC1jeC0sOC1geC0teC0sOC0v1/gtK7gtL7gtbzgtJrgtY3gtJrgtY1f4LSP4LSq4LWN4LSw4LS/4LW9X+C0ruC1h+C0r+C1jV/gtJzgtYLgtbpf4LSc4LWC4LSy4LWIX+C0k+C0l+C0uOC1jeC0seC1jeC0seC1jV/gtLjgtYbgtKrgtY3gtLHgtY3gtLHgtILgtKzgtbxf4LSS4LSV4LWN4LSf4LWL4LSs4LW8X+C0qOC0teC0guC0rOC1vF/gtKHgtL/gtLjgtILgtKzgtbwnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAn4LSc4LSo4LWBLl/gtKvgtYbgtKzgtY3gtLDgtYEuX+C0ruC0vuC1vC5f4LSP4LSq4LWN4LSw4LS/Ll/gtK7gtYfgtK/gtY1f4LSc4LWC4LW6X+C0nOC1guC0suC1iC5f4LST4LSXLl/gtLjgtYbgtKrgtY3gtLHgtY3gtLEuX+C0kuC0leC1jeC0n+C1iy5f4LSo4LS14LSCLl/gtKHgtL/gtLjgtIIuJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czogJ+C0nuC0vuC0r+C0seC0vuC0tOC1jeC0ml/gtKTgtL/gtJngtY3gtJXgtLPgtL7gtLTgtY3gtJpf4LSa4LWK4LS14LWN4LS14LS+4LS04LWN4LSaX+C0rOC1geC0p+C0qOC0vuC0tOC1jeC0ml/gtLXgtY3gtK/gtL7gtLTgtL7gtLTgtY3gtJpf4LS14LWG4LSz4LWN4LSz4LS/4LSv4LS+4LS04LWN4LSaX+C0tuC0qOC0v+C0r+C0vuC0tOC1jeC0micuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ+C0nuC0vuC0r+C1vF/gtKTgtL/gtJngtY3gtJXgtb5f4LSa4LWK4LS14LWN4LS1X+C0rOC1geC0p+C1u1/gtLXgtY3gtK/gtL7gtLTgtIJf4LS14LWG4LSz4LWN4LSz4LS/X+C0tuC0qOC0vycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfgtJ7gtL5f4LSk4LS/X+C0muC1il/gtKzgtYFf4LS14LWN4LSv4LS+X+C0teC1hl/gtLYnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0EgaDptbSAt4LSo4LWBJyxcbiAgICAgICAgICAgIExUUzogJ0EgaDptbTpzcyAt4LSo4LWBJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVksIEEgaDptbSAt4LSo4LWBJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSwgQSBoOm1tIC3gtKjgtYEnLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vgtIfgtKjgtY3gtKjgtY1dIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb4LSo4LS+4LSz4LWGXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQsIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb4LSH4LSo4LWN4LSo4LSy4LWGXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1vgtJXgtLTgtL/gtJ7gtY3gtJ5dIGRkZGQsIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnJXMg4LSV4LS04LS/4LSe4LWN4LSe4LWNJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyDgtK7gtYHgtbvgtKrgtY0nLFxuICAgICAgICAgICAgczogJ+C0heC1veC0qiDgtKjgtL/gtK7gtL/gtLfgtJngtY3gtJngtb4nLFxuICAgICAgICAgICAgc3M6ICclZCDgtLjgtYbgtJXgtY3gtJXgtbvgtKHgtY0nLFxuICAgICAgICAgICAgbTogJ+C0kuC0sOC1gSDgtK7gtL/gtKjgtL/gtLHgtY3gtLHgtY0nLFxuICAgICAgICAgICAgbW06ICclZCDgtK7gtL/gtKjgtL/gtLHgtY3gtLHgtY0nLFxuICAgICAgICAgICAgaDogJ+C0kuC0sOC1gSDgtK7gtKPgtL/gtJXgtY3gtJXgtYLgtbwnLFxuICAgICAgICAgICAgaGg6ICclZCDgtK7gtKPgtL/gtJXgtY3gtJXgtYLgtbwnLFxuICAgICAgICAgICAgZDogJ+C0kuC0sOC1gSDgtKbgtL/gtLXgtLjgtIInLFxuICAgICAgICAgICAgZGQ6ICclZCDgtKbgtL/gtLXgtLjgtIInLFxuICAgICAgICAgICAgTTogJ+C0kuC0sOC1gSDgtK7gtL7gtLjgtIInLFxuICAgICAgICAgICAgTU06ICclZCDgtK7gtL7gtLjgtIInLFxuICAgICAgICAgICAgeTogJ+C0kuC0sOC1gSDgtLXgtbzgtLfgtIInLFxuICAgICAgICAgICAgeXk6ICclZCDgtLXgtbzgtLfgtIInLFxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv4LSw4LS+4LSk4LWN4LSw4LS/fOC0sOC0vuC0teC0v+C0suC1hnzgtIngtJrgtY3gtJog4LSV4LS04LS/4LSe4LWN4LSe4LWNfOC0teC1iOC0leC1geC0qOC1jeC0qOC1h+C0sOC0gnzgtLDgtL7gtKTgtY3gtLDgtL8vaSxcbiAgICAgICAgbWVyaWRpZW1Ib3VyOiBmdW5jdGlvbiAoaG91ciwgbWVyaWRpZW0pIHtcbiAgICAgICAgICAgIGlmIChob3VyID09PSAxMikge1xuICAgICAgICAgICAgICAgIGhvdXIgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIChtZXJpZGllbSA9PT0gJ+C0sOC0vuC0pOC1jeC0sOC0vycgJiYgaG91ciA+PSA0KSB8fFxuICAgICAgICAgICAgICAgIG1lcmlkaWVtID09PSAn4LSJ4LSa4LWN4LSaIOC0leC0tOC0v+C0nuC1jeC0nuC1jScgfHxcbiAgICAgICAgICAgICAgICBtZXJpZGllbSA9PT0gJ+C0teC1iOC0leC1geC0qOC1jeC0qOC1h+C0sOC0gidcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyICsgMTI7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCA0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgtLDgtL7gtKTgtY3gtLDgtL8nO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+C0sOC0vuC0teC0v+C0suC1hic7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxNykge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4LSJ4LSa4LWN4LSaIOC0leC0tOC0v+C0nuC1jeC0nuC1jSc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAyMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4LS14LWI4LSV4LWB4LSo4LWN4LSo4LWH4LSw4LSCJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgtLDgtL7gtKTgtY3gtLDgtL8nO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG1sO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IE1vbmdvbGlhbiBbbW5dXG4vLyEgYXV0aG9yIDogSmF2a2hsYW50dWdzIE55YW1kb3JqIDogaHR0cHM6Ly9naXRodWIuY29tL2phdmtoYWFuajdcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIGZ1bmN0aW9uIHRyYW5zbGF0ZShudW1iZXIsIHdpdGhvdXRTdWZmaXgsIGtleSwgaXNGdXR1cmUpIHtcbiAgICAgICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgICAgIGNhc2UgJ3MnOlxuICAgICAgICAgICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4ID8gJ9GF0Y3QtNGF0Y3QvSDRgdC10LrRg9C90LQnIDogJ9GF0Y3QtNGF0Y3QvSDRgdC10LrRg9C90LTRi9C9JztcbiAgICAgICAgICAgIGNhc2UgJ3NzJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgKHdpdGhvdXRTdWZmaXggPyAnINGB0LXQutGD0L3QtCcgOiAnINGB0LXQutGD0L3QtNGL0L0nKTtcbiAgICAgICAgICAgIGNhc2UgJ20nOlxuICAgICAgICAgICAgY2FzZSAnbW0nOlxuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAod2l0aG91dFN1ZmZpeCA/ICcg0LzQuNC90YPRgicgOiAnINC80LjQvdGD0YLRi9C9Jyk7XG4gICAgICAgICAgICBjYXNlICdoJzpcbiAgICAgICAgICAgIGNhc2UgJ2hoJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgKHdpdGhvdXRTdWZmaXggPyAnINGG0LDQsycgOiAnINGG0LDQs9C40LnQvScpO1xuICAgICAgICAgICAgY2FzZSAnZCc6XG4gICAgICAgICAgICBjYXNlICdkZCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICh3aXRob3V0U3VmZml4ID8gJyDTqdC006nRgCcgOiAnINOp0LTRgNC40LnQvScpO1xuICAgICAgICAgICAgY2FzZSAnTSc6XG4gICAgICAgICAgICBjYXNlICdNTSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICh3aXRob3V0U3VmZml4ID8gJyDRgdCw0YAnIDogJyDRgdCw0YDRi9C9Jyk7XG4gICAgICAgICAgICBjYXNlICd5JzpcbiAgICAgICAgICAgIGNhc2UgJ3l5JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgKHdpdGhvdXRTdWZmaXggPyAnINC20LjQuycgOiAnINC20LjQu9C40LnQvScpO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIG1uID0gbW9tZW50LmRlZmluZUxvY2FsZSgnbW4nLCB7XG4gICAgICAgIG1vbnRoczogJ9Cd0Y3Qs9C00q/Qs9GN0Y3RgCDRgdCw0YBf0KXQvtGR0YDQtNGD0LPQsNCw0YAg0YHQsNGAX9CT0YPRgNCw0LLQtNGD0LPQsNCw0YAg0YHQsNGAX9CU06nRgNOp0LLQtNKv0LPRjdGN0YAg0YHQsNGAX9Ci0LDQstC00YPQs9Cw0LDRgCDRgdCw0YBf0JfRg9GA0LPQsNC00YPQs9Cw0LDRgCDRgdCw0YBf0JTQvtC70LTRg9Cz0LDQsNGAINGB0LDRgF/QndCw0LnQvNC00YPQs9Cw0LDRgCDRgdCw0YBf0JXRgdC00q/Qs9GN0Y3RgCDRgdCw0YBf0JDRgNCw0LLQtNGD0LPQsNCw0YAg0YHQsNGAX9CQ0YDQstCw0L0g0L3RjdCz0LTSr9Cz0Y3RjdGAINGB0LDRgF/QkNGA0LLQsNC9INGF0L7RkdGA0LTRg9Cz0LDQsNGAINGB0LDRgCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICcxINGB0LDRgF8yINGB0LDRgF8zINGB0LDRgF80INGB0LDRgF81INGB0LDRgF82INGB0LDRgF83INGB0LDRgF84INGB0LDRgF85INGB0LDRgF8xMCDRgdCw0YBfMTEg0YHQsNGAXzEyINGB0LDRgCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXM6ICfQndGP0Lxf0JTQsNCy0LDQsF/QnNGP0LPQvNCw0YBf0JvRhdCw0LPQstCwX9Cf0q/RgNGN0LJf0JHQsNCw0YHQsNC9X9CR0Y/QvNCx0LAnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfQndGP0Lxf0JTQsNCyX9Cc0Y/Qs1/Qm9GF0LBf0J/Sr9GAX9CR0LDQsF/QkdGP0LwnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn0J3Rj1/QlNCwX9Cc0Y9f0JvRhV/Qn9KvX9CR0LBf0JHRjycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnWVlZWS1NTS1ERCcsXG4gICAgICAgICAgICBMTDogJ1lZWVkg0L7QvdGLIE1NTU3Ri9C9IEQnLFxuICAgICAgICAgICAgTExMOiAnWVlZWSDQvtC90YsgTU1NTdGL0L0gRCBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgWVlZWSDQvtC90YsgTU1NTdGL0L0gRCBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/SrtOofNKu0KUvaSxcbiAgICAgICAgaXNQTTogZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gaW5wdXQgPT09ICfSrtClJztcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyIDwgMTIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9Ku06gnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9Ku0KUnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vTqNC906nTqdC006nRgF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vQnNCw0YDQs9Cw0LDRiF0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdb0JjRgNGN0YVdIGRkZGQgTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vTqNGH0LjQs9C006nRgF0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdb06jQvdCz06nRgNGB06nQvV0gZGRkZCBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVzINC00LDRgNCw0LAnLFxuICAgICAgICAgICAgcGFzdDogJyVzINOp0LzQvdOpJyxcbiAgICAgICAgICAgIHM6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIHNzOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBtOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBtbTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgaDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgaGg6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGQ6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGRkOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBNOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBNTTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgeTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgeXk6IHRyYW5zbGF0ZSxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9INOp0LTTqdGALyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlciwgcGVyaW9kKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHBlcmlvZCkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2QnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0QnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0RERCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnINOp0LTTqdGAJztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG1uO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IE1hcmF0aGkgW21yXVxuLy8hIGF1dGhvciA6IEhhcnNoYWQgS2FsZSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9rYWxlaHZcbi8vISBhdXRob3IgOiBWaXZlayBBdGhhbHllIDogaHR0cHM6Ly9naXRodWIuY29tL3ZuYXRoYWx5ZVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHN5bWJvbE1hcCA9IHtcbiAgICAgICAgICAgICcxJzogJ+ClpycsXG4gICAgICAgICAgICAnMic6ICfgpagnLFxuICAgICAgICAgICAgJzMnOiAn4KWpJyxcbiAgICAgICAgICAgICc0JzogJ+ClqicsXG4gICAgICAgICAgICAnNSc6ICfgpasnLFxuICAgICAgICAgICAgJzYnOiAn4KWsJyxcbiAgICAgICAgICAgICc3JzogJ+ClrScsXG4gICAgICAgICAgICAnOCc6ICfgpa4nLFxuICAgICAgICAgICAgJzknOiAn4KWvJyxcbiAgICAgICAgICAgICcwJzogJ+ClpicsXG4gICAgICAgIH0sXG4gICAgICAgIG51bWJlck1hcCA9IHtcbiAgICAgICAgICAgICfgpacnOiAnMScsXG4gICAgICAgICAgICAn4KWoJzogJzInLFxuICAgICAgICAgICAgJ+ClqSc6ICczJyxcbiAgICAgICAgICAgICfgpaonOiAnNCcsXG4gICAgICAgICAgICAn4KWrJzogJzUnLFxuICAgICAgICAgICAgJ+ClrCc6ICc2JyxcbiAgICAgICAgICAgICfgpa0nOiAnNycsXG4gICAgICAgICAgICAn4KWuJzogJzgnLFxuICAgICAgICAgICAgJ+Clryc6ICc5JyxcbiAgICAgICAgICAgICfgpaYnOiAnMCcsXG4gICAgICAgIH07XG5cbiAgICBmdW5jdGlvbiByZWxhdGl2ZVRpbWVNcihudW1iZXIsIHdpdGhvdXRTdWZmaXgsIHN0cmluZywgaXNGdXR1cmUpIHtcbiAgICAgICAgdmFyIG91dHB1dCA9ICcnO1xuICAgICAgICBpZiAod2l0aG91dFN1ZmZpeCkge1xuICAgICAgICAgICAgc3dpdGNoIChzdHJpbmcpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdzJzpcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gJ+CkleCkvuCkueClgCDgpLjgpYfgpJXgpILgpKYnO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdzcyc6XG4gICAgICAgICAgICAgICAgICAgIG91dHB1dCA9ICclZCDgpLjgpYfgpJXgpILgpKYnO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdtJzpcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gJ+Ckj+CklSDgpK7gpL/gpKjgpL/gpJ8nO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdtbSc6XG4gICAgICAgICAgICAgICAgICAgIG91dHB1dCA9ICclZCDgpK7gpL/gpKjgpL/gpJ/gpYcnO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdoJzpcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gJ+Ckj+CklSDgpKTgpL7gpLgnO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdoaCc6XG4gICAgICAgICAgICAgICAgICAgIG91dHB1dCA9ICclZCDgpKTgpL7gpLgnO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdkJzpcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gJ+Ckj+CklSDgpKbgpL/gpLXgpLgnO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdkZCc6XG4gICAgICAgICAgICAgICAgICAgIG91dHB1dCA9ICclZCDgpKbgpL/gpLXgpLgnO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdNJzpcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gJ+Ckj+CklSDgpK7gpLngpL/gpKjgpL4nO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdNTSc6XG4gICAgICAgICAgICAgICAgICAgIG91dHB1dCA9ICclZCDgpK7gpLngpL/gpKjgpYcnO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICd5JzpcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gJ+Ckj+CklSDgpLXgpLDgpY3gpLcnO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICd5eSc6XG4gICAgICAgICAgICAgICAgICAgIG91dHB1dCA9ICclZCDgpLXgpLDgpY3gpLfgpYcnO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN3aXRjaCAoc3RyaW5nKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAncyc6XG4gICAgICAgICAgICAgICAgICAgIG91dHB1dCA9ICfgpJXgpL7gpLngpYAg4KS44KWH4KSV4KSC4KSm4KS+4KSCJztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnc3MnOlxuICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSAnJWQg4KS44KWH4KSV4KSC4KSm4KS+4KSCJztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnbSc6XG4gICAgICAgICAgICAgICAgICAgIG91dHB1dCA9ICfgpI/gpJXgpL4g4KSu4KS/4KSo4KS/4KSf4KS+JztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnbW0nOlxuICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSAnJWQg4KSu4KS/4KSo4KS/4KSf4KS+4KSCJztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnaCc6XG4gICAgICAgICAgICAgICAgICAgIG91dHB1dCA9ICfgpI/gpJXgpL4g4KSk4KS+4KS44KS+JztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnaGgnOlxuICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSAnJWQg4KSk4KS+4KS44KS+4KSCJztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnZCc6XG4gICAgICAgICAgICAgICAgICAgIG91dHB1dCA9ICfgpI/gpJXgpL4g4KSm4KS/4KS14KS44KS+JztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnZGQnOlxuICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSAnJWQg4KSm4KS/4KS14KS44KS+4KSCJztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnTSc6XG4gICAgICAgICAgICAgICAgICAgIG91dHB1dCA9ICfgpI/gpJXgpL4g4KSu4KS54KS/4KSo4KWN4KSv4KS+JztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnTU0nOlxuICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSAnJWQg4KSu4KS54KS/4KSo4KWN4KSv4KS+4KSCJztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAneSc6XG4gICAgICAgICAgICAgICAgICAgIG91dHB1dCA9ICfgpI/gpJXgpL4g4KS14KSw4KWN4KS34KS+JztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAneXknOlxuICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSAnJWQg4KS14KSw4KWN4KS34KS+4KSCJztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG91dHB1dC5yZXBsYWNlKC8lZC9pLCBudW1iZXIpO1xuICAgIH1cblxuICAgIHZhciBtciA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ21yJywge1xuICAgICAgICBtb250aHM6ICfgpJzgpL7gpKjgpYfgpLXgpL7gpLDgpYBf4KSr4KWH4KSs4KWN4KSw4KWB4KS14KS+4KSw4KWAX+CkruCkvuCksOCljeCkml/gpI/gpKrgpY3gpLDgpL/gpLJf4KSu4KWHX+CknOClguCkqF/gpJzgpYHgpLLgpYhf4KSR4KSX4KS44KWN4KSfX+CkuOCkquCljeCkn+Clh+CkguCkrOCksF/gpJHgpJXgpY3gpJ/gpYvgpKzgpLBf4KSo4KWL4KS14KWN4KS54KWH4KSC4KSs4KSwX+CkoeCkv+CkuOClh+CkguCkrOCksCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICfgpJzgpL7gpKjgpYcuX+Ckq+Clh+CkrOCljeCksOClgS5f4KSu4KS+4KSw4KWN4KSaLl/gpI/gpKrgpY3gpLDgpL8uX+CkruClhy5f4KSc4KWC4KSoLl/gpJzgpYHgpLLgpYguX+CkkeCkly5f4KS44KSq4KWN4KSf4KWH4KSCLl/gpJHgpJXgpY3gpJ/gpYsuX+CkqOCli+CkteCljeCkueClh+Ckgi5f4KSh4KS/4KS44KWH4KSCLicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXM6ICfgpLDgpLXgpL/gpLXgpL7gpLBf4KS44KWL4KSu4KS14KS+4KSwX+CkruCkguCkl+Cks+CkteCkvuCksF/gpKzgpYHgpKfgpLXgpL7gpLBf4KSX4KWB4KSw4KWC4KS14KS+4KSwX+CktuClgeCkleCljeCksOCkteCkvuCksF/gpLbgpKjgpL/gpLXgpL7gpLAnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfgpLDgpLXgpL9f4KS44KWL4KSuX+CkruCkguCkl+Cks1/gpKzgpYHgpKdf4KSX4KWB4KSw4KWCX+CktuClgeCkleCljeCksF/gpLbgpKjgpL8nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn4KSwX+CkuOCli1/gpK7gpIJf4KSs4KWBX+Ckl+ClgV/gpLbgpYFf4KS2Jy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdBIGg6bW0g4KS14KS+4KSc4KSk4KS+JyxcbiAgICAgICAgICAgIExUUzogJ0EgaDptbTpzcyDgpLXgpL7gpJzgpKTgpL4nLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSwgQSBoOm1tIOCkteCkvuCknOCkpOCkvicsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVksIEEgaDptbSDgpLXgpL7gpJzgpKTgpL4nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vgpIbgpJxdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb4KSJ4KSm4KWN4KSv4KS+XSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQsIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb4KSV4KS+4KSyXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1vgpK7gpL7gpJfgpYDgpLJdIGRkZGQsIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnJXPgpK7gpKfgpY3gpK/gpYcnLFxuICAgICAgICAgICAgcGFzdDogJyVz4KSq4KWC4KSw4KWN4KS14KWAJyxcbiAgICAgICAgICAgIHM6IHJlbGF0aXZlVGltZU1yLFxuICAgICAgICAgICAgc3M6IHJlbGF0aXZlVGltZU1yLFxuICAgICAgICAgICAgbTogcmVsYXRpdmVUaW1lTXIsXG4gICAgICAgICAgICBtbTogcmVsYXRpdmVUaW1lTXIsXG4gICAgICAgICAgICBoOiByZWxhdGl2ZVRpbWVNcixcbiAgICAgICAgICAgIGhoOiByZWxhdGl2ZVRpbWVNcixcbiAgICAgICAgICAgIGQ6IHJlbGF0aXZlVGltZU1yLFxuICAgICAgICAgICAgZGQ6IHJlbGF0aXZlVGltZU1yLFxuICAgICAgICAgICAgTTogcmVsYXRpdmVUaW1lTXIsXG4gICAgICAgICAgICBNTTogcmVsYXRpdmVUaW1lTXIsXG4gICAgICAgICAgICB5OiByZWxhdGl2ZVRpbWVNcixcbiAgICAgICAgICAgIHl5OiByZWxhdGl2ZVRpbWVNcixcbiAgICAgICAgfSxcbiAgICAgICAgcHJlcGFyc2U6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgvW+Clp+ClqOClqeClquClq+ClrOClreClruClr+Clpl0vZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlck1hcFttYXRjaF07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgcG9zdGZvcm1hdDogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC9cXGQvZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN5bWJvbE1hcFttYXRjaF07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL+CkquCkueCkvuCkn+Clh3zgpLjgpJXgpL7gpLPgpYB84KSm4KWB4KSq4KS+4KSw4KWAfOCkuOCkvuCkr+CkguCkleCkvuCks+ClgHzgpLDgpL7gpKTgpY3gpLDgpYAvLFxuICAgICAgICBtZXJpZGllbUhvdXI6IGZ1bmN0aW9uIChob3VyLCBtZXJpZGllbSkge1xuICAgICAgICAgICAgaWYgKGhvdXIgPT09IDEyKSB7XG4gICAgICAgICAgICAgICAgaG91ciA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobWVyaWRpZW0gPT09ICfgpKrgpLngpL7gpJ/gpYcnIHx8IG1lcmlkaWVtID09PSAn4KS44KSV4KS+4KSz4KWAJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgICAgICBtZXJpZGllbSA9PT0gJ+CkpuClgeCkquCkvuCksOClgCcgfHxcbiAgICAgICAgICAgICAgICBtZXJpZGllbSA9PT0gJ+CkuOCkvuCkr+CkguCkleCkvuCks+ClgCcgfHxcbiAgICAgICAgICAgICAgICBtZXJpZGllbSA9PT0gJ+CksOCkvuCkpOCljeCksOClgCdcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyID49IDEyID8gaG91ciA6IGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyID49IDAgJiYgaG91ciA8IDYpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CkquCkueCkvuCkn+Clhyc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxMikge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4KS44KSV4KS+4KSz4KWAJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDE3KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgpKbgpYHgpKrgpL7gpLDgpYAnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMjApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CkuOCkvuCkr+CkguCkleCkvuCks+ClgCc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4KSw4KS+4KSk4KWN4KSw4KWAJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAwLCAvLyBTdW5kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNiwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNnRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG1yO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IE1hbGF5IFttc11cbi8vISBhdXRob3IgOiBXZWxkYW4gSmFtaWxpIDogaHR0cHM6Ly9naXRodWIuY29tL3dlbGRhblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIG1zID0gbW9tZW50LmRlZmluZUxvY2FsZSgnbXMnLCB7XG4gICAgICAgIG1vbnRoczogJ0phbnVhcmlfRmVicnVhcmlfTWFjX0FwcmlsX01laV9KdW5fSnVsYWlfT2dvc19TZXB0ZW1iZXJfT2t0b2Jlcl9Ob3ZlbWJlcl9EaXNlbWJlcicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdKYW5fRmViX01hY19BcHJfTWVpX0p1bl9KdWxfT2dzX1NlcF9Pa3RfTm92X0Rpcycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICdBaGFkX0lzbmluX1NlbGFzYV9SYWJ1X0toYW1pc19KdW1hYXRfU2FidHUnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdBaGRfSXNuX1NlbF9SYWJfS2hhX0p1bV9TYWInLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnQWhfSXNfU2xfUmJfS21fSm1fU2InLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hILm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hILm1tLnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgW3B1a3VsXSBISC5tbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgW3B1a3VsXSBISC5tbScsXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC9wYWdpfHRlbmdhaGFyaXxwZXRhbmd8bWFsYW0vLFxuICAgICAgICBtZXJpZGllbUhvdXI6IGZ1bmN0aW9uIChob3VyLCBtZXJpZGllbSkge1xuICAgICAgICAgICAgaWYgKGhvdXIgPT09IDEyKSB7XG4gICAgICAgICAgICAgICAgaG91ciA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobWVyaWRpZW0gPT09ICdwYWdpJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ3RlbmdhaGFyaScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciA+PSAxMSA/IGhvdXIgOiBob3VyICsgMTI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAncGV0YW5nJyB8fCBtZXJpZGllbSA9PT0gJ21hbGFtJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyICsgMTI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91cnMsIG1pbnV0ZXMsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VycyA8IDExKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdwYWdpJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91cnMgPCAxNSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAndGVuZ2FoYXJpJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91cnMgPCAxOSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAncGV0YW5nJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdtYWxhbSc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW0hhcmkgaW5pIHB1a3VsXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW0Vzb2sgcHVrdWxdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbcHVrdWxdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbS2VsbWFyaW4gcHVrdWxdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnZGRkZCBbbGVwYXMgcHVrdWxdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnZGFsYW0gJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzIHlhbmcgbGVwYXMnLFxuICAgICAgICAgICAgczogJ2JlYmVyYXBhIHNhYXQnLFxuICAgICAgICAgICAgc3M6ICclZCBzYWF0JyxcbiAgICAgICAgICAgIG06ICdzZW1pbml0JyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWluaXQnLFxuICAgICAgICAgICAgaDogJ3NlamFtJyxcbiAgICAgICAgICAgIGhoOiAnJWQgamFtJyxcbiAgICAgICAgICAgIGQ6ICdzZWhhcmknLFxuICAgICAgICAgICAgZGQ6ICclZCBoYXJpJyxcbiAgICAgICAgICAgIE06ICdzZWJ1bGFuJyxcbiAgICAgICAgICAgIE1NOiAnJWQgYnVsYW4nLFxuICAgICAgICAgICAgeTogJ3NldGFodW4nLFxuICAgICAgICAgICAgeXk6ICclZCB0YWh1bicsXG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDcsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDd0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBtcztcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBNYWxheSBbbXMtbXldXG4vLyEgbm90ZSA6IERFUFJFQ0FURUQsIHRoZSBjb3JyZWN0IG9uZSBpcyBbbXNdXG4vLyEgYXV0aG9yIDogV2VsZGFuIEphbWlsaSA6IGh0dHBzOi8vZ2l0aHViLmNvbS93ZWxkYW5cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBtc015ID0gbW9tZW50LmRlZmluZUxvY2FsZSgnbXMtbXknLCB7XG4gICAgICAgIG1vbnRoczogJ0phbnVhcmlfRmVicnVhcmlfTWFjX0FwcmlsX01laV9KdW5fSnVsYWlfT2dvc19TZXB0ZW1iZXJfT2t0b2Jlcl9Ob3ZlbWJlcl9EaXNlbWJlcicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdKYW5fRmViX01hY19BcHJfTWVpX0p1bl9KdWxfT2dzX1NlcF9Pa3RfTm92X0Rpcycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICdBaGFkX0lzbmluX1NlbGFzYV9SYWJ1X0toYW1pc19KdW1hYXRfU2FidHUnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdBaGRfSXNuX1NlbF9SYWJfS2hhX0p1bV9TYWInLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnQWhfSXNfU2xfUmJfS21fSm1fU2InLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hILm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hILm1tLnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgW3B1a3VsXSBISC5tbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgW3B1a3VsXSBISC5tbScsXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC9wYWdpfHRlbmdhaGFyaXxwZXRhbmd8bWFsYW0vLFxuICAgICAgICBtZXJpZGllbUhvdXI6IGZ1bmN0aW9uIChob3VyLCBtZXJpZGllbSkge1xuICAgICAgICAgICAgaWYgKGhvdXIgPT09IDEyKSB7XG4gICAgICAgICAgICAgICAgaG91ciA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobWVyaWRpZW0gPT09ICdwYWdpJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ3RlbmdhaGFyaScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciA+PSAxMSA/IGhvdXIgOiBob3VyICsgMTI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAncGV0YW5nJyB8fCBtZXJpZGllbSA9PT0gJ21hbGFtJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyICsgMTI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91cnMsIG1pbnV0ZXMsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VycyA8IDExKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdwYWdpJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91cnMgPCAxNSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAndGVuZ2FoYXJpJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91cnMgPCAxOSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAncGV0YW5nJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdtYWxhbSc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW0hhcmkgaW5pIHB1a3VsXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW0Vzb2sgcHVrdWxdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbcHVrdWxdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbS2VsbWFyaW4gcHVrdWxdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnZGRkZCBbbGVwYXMgcHVrdWxdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnZGFsYW0gJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzIHlhbmcgbGVwYXMnLFxuICAgICAgICAgICAgczogJ2JlYmVyYXBhIHNhYXQnLFxuICAgICAgICAgICAgc3M6ICclZCBzYWF0JyxcbiAgICAgICAgICAgIG06ICdzZW1pbml0JyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWluaXQnLFxuICAgICAgICAgICAgaDogJ3NlamFtJyxcbiAgICAgICAgICAgIGhoOiAnJWQgamFtJyxcbiAgICAgICAgICAgIGQ6ICdzZWhhcmknLFxuICAgICAgICAgICAgZGQ6ICclZCBoYXJpJyxcbiAgICAgICAgICAgIE06ICdzZWJ1bGFuJyxcbiAgICAgICAgICAgIE1NOiAnJWQgYnVsYW4nLFxuICAgICAgICAgICAgeTogJ3NldGFodW4nLFxuICAgICAgICAgICAgeXk6ICclZCB0YWh1bicsXG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDcsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDd0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBtc015O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IE1hbHRlc2UgKE1hbHRhKSBbbXRdXG4vLyEgYXV0aG9yIDogQWxlc3NhbmRybyBNYXJ1Y2NpYSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbGVzbWFcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBtdCA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ210Jywge1xuICAgICAgICBtb250aHM6ICdKYW5uYXJfRnJhcl9NYXJ6dV9BcHJpbF9NZWpqdV/EoHVuanVfTHVsanVfQXd3aXNzdV9TZXR0ZW1icnVfT3R0dWJydV9Ob3ZlbWJydV9EacSLZW1icnUnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnSmFuX0ZyYV9NYXJfQXByX01lal/EoHVuX0x1bF9Bd3dfU2V0X090dF9Ob3ZfRGnEiycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICdJbC3EpmFkZF9JdC1UbmVqbl9JdC1UbGlldGFfTC1FcmJnxKdhX0lsLcSmYW1pc19JbC3EoGltZ8SnYV9Jcy1TaWJ0Jy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnxKZhZF9UbmVfVGxpX0VyYl/EpmFtX8SgaW1fU2liJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ8SmYV9Ubl9UbF9Fcl/EpmFfxKBpX1NpJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW0lsbHVtIGZpbC1dTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tHxKdhZGEgZmlsLV1MVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW2ZpbC1dTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tJbC1iaWVyYcSnIGZpbC1dTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdkZGRkIFtsaSBnxKdhZGRhXSBbZmlsLV1MVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ2bigJkgJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzIGlsdScsXG4gICAgICAgICAgICBzOiAnZnRpdCBzZWtvbmRpJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2Vrb25kaScsXG4gICAgICAgICAgICBtOiAnbWludXRhJyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWludXRpJyxcbiAgICAgICAgICAgIGg6ICdzaWVnxKdhJyxcbiAgICAgICAgICAgIGhoOiAnJWQgc2llZ8SnYXQnLFxuICAgICAgICAgICAgZDogJ8ShdXJuYXRhJyxcbiAgICAgICAgICAgIGRkOiAnJWQgxKFyYW5ldCcsXG4gICAgICAgICAgICBNOiAneGFoYXInLFxuICAgICAgICAgICAgTU06ICclZCB4aHVyJyxcbiAgICAgICAgICAgIHk6ICdzZW5hJyxcbiAgICAgICAgICAgIHl5OiAnJWQgc25pJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9wrovLFxuICAgICAgICBvcmRpbmFsOiAnJWTCuicsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBtdDtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBCdXJtZXNlIFtteV1cbi8vISBhdXRob3IgOiBTcXVhciB0ZWFtLCBteXNxdWFyLmNvbVxuLy8hIGF1dGhvciA6IERhdmlkIFJvc3NlbGxhdCA6IGh0dHBzOi8vZ2l0aHViLmNvbS9naG9sYWRyXG4vLyEgYXV0aG9yIDogVGluIEF1bmcgTGluIDogaHR0cHM6Ly9naXRodWIuY29tL3RoYW55YXd6aW5taW5cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBzeW1ib2xNYXAgPSB7XG4gICAgICAgICAgICAnMSc6ICfhgYEnLFxuICAgICAgICAgICAgJzInOiAn4YGCJyxcbiAgICAgICAgICAgICczJzogJ+GBgycsXG4gICAgICAgICAgICAnNCc6ICfhgYQnLFxuICAgICAgICAgICAgJzUnOiAn4YGFJyxcbiAgICAgICAgICAgICc2JzogJ+GBhicsXG4gICAgICAgICAgICAnNyc6ICfhgYcnLFxuICAgICAgICAgICAgJzgnOiAn4YGIJyxcbiAgICAgICAgICAgICc5JzogJ+GBiScsXG4gICAgICAgICAgICAnMCc6ICfhgYAnLFxuICAgICAgICB9LFxuICAgICAgICBudW1iZXJNYXAgPSB7XG4gICAgICAgICAgICAn4YGBJzogJzEnLFxuICAgICAgICAgICAgJ+GBgic6ICcyJyxcbiAgICAgICAgICAgICfhgYMnOiAnMycsXG4gICAgICAgICAgICAn4YGEJzogJzQnLFxuICAgICAgICAgICAgJ+GBhSc6ICc1JyxcbiAgICAgICAgICAgICfhgYYnOiAnNicsXG4gICAgICAgICAgICAn4YGHJzogJzcnLFxuICAgICAgICAgICAgJ+GBiCc6ICc4JyxcbiAgICAgICAgICAgICfhgYknOiAnOScsXG4gICAgICAgICAgICAn4YGAJzogJzAnLFxuICAgICAgICB9O1xuXG4gICAgdmFyIG15ID0gbW9tZW50LmRlZmluZUxvY2FsZSgnbXknLCB7XG4gICAgICAgIG1vbnRoczogJ+GAh+GAlOGAuuGAlOGAneGAq+GAm+GArl/hgJbhgLHhgJbhgLHhgKzhgLrhgJ3hgKvhgJvhgK5f4YCZ4YCQ4YC6X+GAp+GAleGAvOGArl/hgJnhgLFf4YCH4YC94YCU4YC6X+GAh+GAsOGAnOGAreGAr+GAhOGAul/hgJ7hgLzhgILhgK/hgJDhgLpf4YCF4YCA4YC64YCQ4YCE4YC64YCY4YCsX+GAoeGAseGArOGAgOGAuuGAkOGAreGAr+GAmOGArF/hgJThgK3hgK/hgJ3hgIThgLrhgJjhgKxf4YCS4YCu4YCH4YCE4YC64YCY4YCsJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ+GAh+GAlOGAul/hgJbhgLFf4YCZ4YCQ4YC6X+GAleGAvOGArl/hgJnhgLFf4YCH4YC94YCU4YC6X+GAnOGAreGAr+GAhOGAul/hgJ7hgLxf4YCF4YCA4YC6X+GAoeGAseGArOGAgOGAul/hgJThgK3hgK9f4YCS4YCuJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ+GAkOGAlOGAhOGAuuGAueGAguGAlOGAveGAsV/hgJDhgJThgIThgLrhgLnhgJzhgKxf4YCh4YCE4YC64YC54YCC4YCrX+GAl+GAr+GAkuGAueGAk+GAn+GAsOGAuF/hgIDhgLzhgKzhgJ7hgJXhgJDhgLHhgLhf4YCe4YCx4YCs4YCA4YC84YCsX+GAheGAlOGAsScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ+GAlOGAveGAsV/hgJzhgKxf4YCC4YCrX+GAn+GAsOGAuF/hgIDhgLzhgKxf4YCe4YCx4YCsX+GAlOGAsScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfhgJThgL3hgLFf4YCc4YCsX+GAguGAq1/hgJ/hgLDhgLhf4YCA4YC84YCsX+GAnuGAseGArF/hgJThgLEnLnNwbGl0KCdfJyksXG5cbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW+GAmuGAlOGAsS5dIExUIFvhgJnhgL7hgKxdJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb4YCZ4YCU4YCA4YC64YCW4YC84YCU4YC6XSBMVCBb4YCZ4YC+4YCsXScsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgTFQgW+GAmeGAvuGArF0nLFxuICAgICAgICAgICAgbGFzdERheTogJ1vhgJnhgJThgLEu4YCAXSBMVCBb4YCZ4YC+4YCsXScsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1vhgJXhgLzhgK7hgLjhgIHhgLLhgLfhgJ7hgLHhgKxdIGRkZGQgTFQgW+GAmeGAvuGArF0nLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICfhgJzhgKzhgJnhgIrhgLrhgLcgJXMg4YCZ4YC+4YCsJyxcbiAgICAgICAgICAgIHBhc3Q6ICfhgJzhgL3hgJThgLrhgIHhgLLhgLfhgJ7hgLHhgKwgJXMg4YCAJyxcbiAgICAgICAgICAgIHM6ICfhgIXhgIDhgLnhgIDhgJThgLou4YCh4YCU4YCK4YC64YC44YCE4YCa4YC6JyxcbiAgICAgICAgICAgIHNzOiAnJWQg4YCF4YCA4YC54YCA4YCU4YC34YC6JyxcbiAgICAgICAgICAgIG06ICfhgJDhgIXhgLrhgJnhgK3hgJThgIXhgLonLFxuICAgICAgICAgICAgbW06ICclZCDhgJnhgK3hgJThgIXhgLonLFxuICAgICAgICAgICAgaDogJ+GAkOGAheGAuuGAlOGArOGAm+GAricsXG4gICAgICAgICAgICBoaDogJyVkIOGAlOGArOGAm+GAricsXG4gICAgICAgICAgICBkOiAn4YCQ4YCF4YC64YCb4YCA4YC6JyxcbiAgICAgICAgICAgIGRkOiAnJWQg4YCb4YCA4YC6JyxcbiAgICAgICAgICAgIE06ICfhgJDhgIXhgLrhgJwnLFxuICAgICAgICAgICAgTU06ICclZCDhgJwnLFxuICAgICAgICAgICAgeTogJ+GAkOGAheGAuuGAlOGAvuGAheGAuicsXG4gICAgICAgICAgICB5eTogJyVkIOGAlOGAvuGAheGAuicsXG4gICAgICAgIH0sXG4gICAgICAgIHByZXBhcnNlOiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL1vhgYHhgYLhgYPhgYThgYXhgYbhgYfhgYjhgYnhgYBdL2csIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXJNYXBbbWF0Y2hdO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIHBvc3Rmb3JtYXQ6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgvXFxkL2csIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBzeW1ib2xNYXBbbWF0Y2hdO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBteTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBOb3J3ZWdpYW4gQm9rbcOlbCBbbmJdXG4vLyEgYXV0aG9ycyA6IEVzcGVuIEhvdmxhbmRzZGFsIDogaHR0cHM6Ly9naXRodWIuY29tL3JleHhhcnNcbi8vISAgICAgICAgICAgU2lndXJkIEdhcnRtYW5uIDogaHR0cHM6Ly9naXRodWIuY29tL3NpZ3VyZGdhXG4vLyEgICAgICAgICAgIFN0ZXBoZW4gUmFtdGh1biA6IGh0dHBzOi8vZ2l0aHViLmNvbS9zdGVwaGVucmFtdGh1blxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIG5iID0gbW9tZW50LmRlZmluZUxvY2FsZSgnbmInLCB7XG4gICAgICAgIG1vbnRoczogJ2phbnVhcl9mZWJydWFyX21hcnNfYXByaWxfbWFpX2p1bmlfanVsaV9hdWd1c3Rfc2VwdGVtYmVyX29rdG9iZXJfbm92ZW1iZXJfZGVzZW1iZXInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnamFuLl9mZWIuX21hcnNfYXByLl9tYWlfanVuaV9qdWxpX2F1Zy5fc2VwLl9va3QuX25vdi5fZGVzLicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXM6ICdzw7huZGFnX21hbmRhZ190aXJzZGFnX29uc2RhZ190b3JzZGFnX2ZyZWRhZ19sw7hyZGFnJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnc8O4Ll9tYS5fdGkuX29uLl90by5fZnIuX2zDuC4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnc8O4X21hX3RpX29uX3RvX2ZyX2zDuCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QuIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdELiBNTU1NIFlZWVkgW2tsLl0gSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQgRC4gTU1NTSBZWVlZIFtrbC5dIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbaSBkYWcga2wuXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW2kgbW9yZ2VuIGtsLl0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFtrbC5dIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbaSBnw6VyIGtsLl0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdbZm9ycmlnZV0gZGRkZCBba2wuXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ29tICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyBzaWRlbicsXG4gICAgICAgICAgICBzOiAnbm9lbiBzZWt1bmRlcicsXG4gICAgICAgICAgICBzczogJyVkIHNla3VuZGVyJyxcbiAgICAgICAgICAgIG06ICdldHQgbWludXR0JyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWludXR0ZXInLFxuICAgICAgICAgICAgaDogJ2VuIHRpbWUnLFxuICAgICAgICAgICAgaGg6ICclZCB0aW1lcicsXG4gICAgICAgICAgICBkOiAnZW4gZGFnJyxcbiAgICAgICAgICAgIGRkOiAnJWQgZGFnZXInLFxuICAgICAgICAgICAgTTogJ2VuIG3DpW5lZCcsXG4gICAgICAgICAgICBNTTogJyVkIG3DpW5lZGVyJyxcbiAgICAgICAgICAgIHk6ICdldHQgw6VyJyxcbiAgICAgICAgICAgIHl5OiAnJWQgw6VyJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9XFwuLyxcbiAgICAgICAgb3JkaW5hbDogJyVkLicsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBuYjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBOZXBhbGVzZSBbbmVdXG4vLyEgYXV0aG9yIDogc3V2YXNoIDogaHR0cHM6Ly9naXRodWIuY29tL3N1dmFzaFxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHN5bWJvbE1hcCA9IHtcbiAgICAgICAgICAgICcxJzogJ+ClpycsXG4gICAgICAgICAgICAnMic6ICfgpagnLFxuICAgICAgICAgICAgJzMnOiAn4KWpJyxcbiAgICAgICAgICAgICc0JzogJ+ClqicsXG4gICAgICAgICAgICAnNSc6ICfgpasnLFxuICAgICAgICAgICAgJzYnOiAn4KWsJyxcbiAgICAgICAgICAgICc3JzogJ+ClrScsXG4gICAgICAgICAgICAnOCc6ICfgpa4nLFxuICAgICAgICAgICAgJzknOiAn4KWvJyxcbiAgICAgICAgICAgICcwJzogJ+ClpicsXG4gICAgICAgIH0sXG4gICAgICAgIG51bWJlck1hcCA9IHtcbiAgICAgICAgICAgICfgpacnOiAnMScsXG4gICAgICAgICAgICAn4KWoJzogJzInLFxuICAgICAgICAgICAgJ+ClqSc6ICczJyxcbiAgICAgICAgICAgICfgpaonOiAnNCcsXG4gICAgICAgICAgICAn4KWrJzogJzUnLFxuICAgICAgICAgICAgJ+ClrCc6ICc2JyxcbiAgICAgICAgICAgICfgpa0nOiAnNycsXG4gICAgICAgICAgICAn4KWuJzogJzgnLFxuICAgICAgICAgICAgJ+Clryc6ICc5JyxcbiAgICAgICAgICAgICfgpaYnOiAnMCcsXG4gICAgICAgIH07XG5cbiAgICB2YXIgbmUgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCduZScsIHtcbiAgICAgICAgbW9udGhzOiAn4KSc4KSo4KS14KSw4KWAX+Ckq+Clh+CkrOCljeCksOClgeCkteCksOClgF/gpK7gpL7gpLDgpY3gpJpf4KSF4KSq4KWN4KSw4KS/4KSyX+CkruCkiF/gpJzgpYHgpKhf4KSc4KWB4KSy4KS+4KSIX+CkheCkl+Ckt+CljeCkn1/gpLjgpYfgpKrgpY3gpJ/gpYfgpK7gpY3gpKzgpLBf4KSF4KSV4KWN4KSf4KWL4KSs4KSwX+CkqOCli+CkreClh+CkruCljeCkrOCksF/gpKHgpL/gpLjgpYfgpK7gpY3gpKzgpLAnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAn4KSc4KSoLl/gpKvgpYfgpKzgpY3gpLDgpYEuX+CkruCkvuCksOCljeCkml/gpIXgpKrgpY3gpLDgpL8uX+CkruCkiF/gpJzgpYHgpKhf4KSc4KWB4KSy4KS+4KSILl/gpIXgpJcuX+CkuOClh+CkquCljeCkny5f4KSF4KSV4KWN4KSf4KWLLl/gpKjgpYvgpK3gpYcuX+CkoeCkv+CkuOClhy4nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzOiAn4KSG4KSH4KSk4KSs4KS+4KSwX+CkuOCli+CkruCkrOCkvuCksF/gpK7gpJngpY3gpJfgpLLgpKzgpL7gpLBf4KSs4KWB4KSn4KSs4KS+4KSwX+CkrOCkv+CkueCkv+CkrOCkvuCksF/gpLbgpYHgpJXgpY3gpLDgpKzgpL7gpLBf4KS24KSo4KS/4KSs4KS+4KSwJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn4KSG4KSH4KSkLl/gpLjgpYvgpK4uX+CkruCkmeCljeCkl+Cksi5f4KSs4KWB4KSnLl/gpKzgpL/gpLngpL8uX+CktuClgeCkleCljeCksC5f4KS24KSo4KS/Licuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfgpIYuX+CkuOCliy5f4KSu4KSCLl/gpKzgpYEuX+CkrOCkvy5f4KS24KWBLl/gpLYuJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0HgpJXgpYsgaDptbSDgpKzgpJzgpYcnLFxuICAgICAgICAgICAgTFRTOiAnQeCkleCliyBoOm1tOnNzIOCkrOCknOClhycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZLCBB4KSV4KWLIGg6bW0g4KSs4KSc4KWHJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSwgQeCkleCliyBoOm1tIOCkrOCknOClhycsXG4gICAgICAgIH0sXG4gICAgICAgIHByZXBhcnNlOiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL1vgpafgpajgpangpargpavgpazgpa3gpa7gpa/gpaZdL2csIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXJNYXBbbWF0Y2hdO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIHBvc3Rmb3JtYXQ6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgvXFxkL2csIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBzeW1ib2xNYXBbbWF0Y2hdO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/gpLDgpL7gpKTgpL984KSs4KS/4KS54KS+4KSofOCkpuCkv+CkieCkgeCkuOCli3zgpLjgpL7gpIHgpJ0vLFxuICAgICAgICBtZXJpZGllbUhvdXI6IGZ1bmN0aW9uIChob3VyLCBtZXJpZGllbSkge1xuICAgICAgICAgICAgaWYgKGhvdXIgPT09IDEyKSB7XG4gICAgICAgICAgICAgICAgaG91ciA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobWVyaWRpZW0gPT09ICfgpLDgpL7gpKTgpL8nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPCA0ID8gaG91ciA6IGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfgpKzgpL/gpLngpL7gpKgnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAn4KSm4KS/4KSJ4KSB4KS44KWLJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyID49IDEwID8gaG91ciA6IGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfgpLjgpL7gpIHgpJ0nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyIDwgMykge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4KSw4KS+4KSk4KS/JztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDEyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgpKzgpL/gpLngpL7gpKgnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTYpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CkpuCkv+CkieCkgeCkuOCliyc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAyMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4KS44KS+4KSB4KSdJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgpLDgpL7gpKTgpL8nO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vgpIbgpJxdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb4KSt4KWL4KSy4KS/XSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ1vgpIbgpIngpIHgpKbgpYtdIGRkZGRbLF0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vgpLngpL/gpJzgpYtdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW+Ckl+Ckj+CkleCli10gZGRkZFssXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVz4KSu4KS+JyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyDgpIXgpJfgpL7gpKHgpL8nLFxuICAgICAgICAgICAgczogJ+CkleClh+CkueClgCDgpJXgpY3gpLfgpKMnLFxuICAgICAgICAgICAgc3M6ICclZCDgpLjgpYfgpJXgpYfgpKPgpY3gpKEnLFxuICAgICAgICAgICAgbTogJ+Ckj+CklSDgpK7gpL/gpKjgpYfgpJ8nLFxuICAgICAgICAgICAgbW06ICclZCDgpK7gpL/gpKjgpYfgpJ8nLFxuICAgICAgICAgICAgaDogJ+Ckj+CklSDgpJjgpKPgpY3gpJ/gpL4nLFxuICAgICAgICAgICAgaGg6ICclZCDgpJjgpKPgpY3gpJ/gpL4nLFxuICAgICAgICAgICAgZDogJ+Ckj+CklSDgpKbgpL/gpKgnLFxuICAgICAgICAgICAgZGQ6ICclZCDgpKbgpL/gpKgnLFxuICAgICAgICAgICAgTTogJ+Ckj+CklSDgpK7gpLngpL/gpKjgpL4nLFxuICAgICAgICAgICAgTU06ICclZCDgpK7gpLngpL/gpKjgpL4nLFxuICAgICAgICAgICAgeTogJ+Ckj+CklSDgpKzgpLDgpY3gpLcnLFxuICAgICAgICAgICAgeXk6ICclZCDgpKzgpLDgpY3gpLcnLFxuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDAsIC8vIFN1bmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA2LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA2dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gbmU7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogRHV0Y2ggW25sXVxuLy8hIGF1dGhvciA6IEpvcmlzIFLDtmxpbmcgOiBodHRwczovL2dpdGh1Yi5jb20vam9yaXNyb2xpbmdcbi8vISBhdXRob3IgOiBKYWNvYiBNaWRkYWcgOiBodHRwczovL2dpdGh1Yi5jb20vbWlkZGFnalxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIG1vbnRoc1Nob3J0V2l0aERvdHMgPSAnamFuLl9mZWIuX21ydC5fYXByLl9tZWlfanVuLl9qdWwuX2F1Zy5fc2VwLl9va3QuX25vdi5fZGVjLicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnRXaXRob3V0RG90cyA9ICdqYW5fZmViX21ydF9hcHJfbWVpX2p1bl9qdWxfYXVnX3NlcF9va3Rfbm92X2RlYycuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzUGFyc2UgPSBbXG4gICAgICAgICAgICAvXmphbi9pLFxuICAgICAgICAgICAgL15mZWIvaSxcbiAgICAgICAgICAgIC9ebWFhcnR8bXJ0Lj8kL2ksXG4gICAgICAgICAgICAvXmFwci9pLFxuICAgICAgICAgICAgL15tZWkkL2ksXG4gICAgICAgICAgICAvXmp1bltpLl0/JC9pLFxuICAgICAgICAgICAgL15qdWxbaS5dPyQvaSxcbiAgICAgICAgICAgIC9eYXVnL2ksXG4gICAgICAgICAgICAvXnNlcC9pLFxuICAgICAgICAgICAgL15va3QvaSxcbiAgICAgICAgICAgIC9ebm92L2ksXG4gICAgICAgICAgICAvXmRlYy9pLFxuICAgICAgICBdLFxuICAgICAgICBtb250aHNSZWdleCA9IC9eKGphbnVhcml8ZmVicnVhcml8bWFhcnR8YXByaWx8bWVpfGp1W25sXWl8YXVndXN0dXN8c2VwdGVtYmVyfG9rdG9iZXJ8bm92ZW1iZXJ8ZGVjZW1iZXJ8amFuXFwuP3xmZWJcXC4/fG1ydFxcLj98YXByXFwuP3xqdVtubF1cXC4/fGF1Z1xcLj98c2VwXFwuP3xva3RcXC4/fG5vdlxcLj98ZGVjXFwuPykvaTtcblxuICAgIHZhciBubCA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ25sJywge1xuICAgICAgICBtb250aHM6ICdqYW51YXJpX2ZlYnJ1YXJpX21hYXJ0X2FwcmlsX21laV9qdW5pX2p1bGlfYXVndXN0dXNfc2VwdGVtYmVyX29rdG9iZXJfbm92ZW1iZXJfZGVjZW1iZXInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiBmdW5jdGlvbiAobSwgZm9ybWF0KSB7XG4gICAgICAgICAgICBpZiAoIW0pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbW9udGhzU2hvcnRXaXRoRG90cztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoLy1NTU0tLy50ZXN0KGZvcm1hdCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbW9udGhzU2hvcnRXaXRob3V0RG90c1ttLm1vbnRoKCldO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbW9udGhzU2hvcnRXaXRoRG90c1ttLm1vbnRoKCldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuXG4gICAgICAgIG1vbnRoc1JlZ2V4OiBtb250aHNSZWdleCxcbiAgICAgICAgbW9udGhzU2hvcnRSZWdleDogbW9udGhzUmVnZXgsXG4gICAgICAgIG1vbnRoc1N0cmljdFJlZ2V4OiAvXihqYW51YXJpfGZlYnJ1YXJpfG1hYXJ0fGFwcmlsfG1laXxqdVtubF1pfGF1Z3VzdHVzfHNlcHRlbWJlcnxva3RvYmVyfG5vdmVtYmVyfGRlY2VtYmVyKS9pLFxuICAgICAgICBtb250aHNTaG9ydFN0cmljdFJlZ2V4OiAvXihqYW5cXC4/fGZlYlxcLj98bXJ0XFwuP3xhcHJcXC4/fG1laXxqdVtubF1cXC4/fGF1Z1xcLj98c2VwXFwuP3xva3RcXC4/fG5vdlxcLj98ZGVjXFwuPykvaSxcblxuICAgICAgICBtb250aHNQYXJzZTogbW9udGhzUGFyc2UsXG4gICAgICAgIGxvbmdNb250aHNQYXJzZTogbW9udGhzUGFyc2UsXG4gICAgICAgIHNob3J0TW9udGhzUGFyc2U6IG1vbnRoc1BhcnNlLFxuXG4gICAgICAgIHdlZWtkYXlzOiAnem9uZGFnX21hYW5kYWdfZGluc2RhZ193b2Vuc2RhZ19kb25kZXJkYWdfdnJpamRhZ196YXRlcmRhZycuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ3pvLl9tYS5fZGkuX3dvLl9kby5fdnIuX3phLicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICd6b19tYV9kaV93b19kb192cl96YScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQtTU0tWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbdmFuZGFhZyBvbV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1ttb3JnZW4gb21dIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbb21dIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbZ2lzdGVyZW4gb21dIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW2FmZ2Vsb3Blbl0gZGRkZCBbb21dIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnb3ZlciAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMgZ2VsZWRlbicsXG4gICAgICAgICAgICBzOiAnZWVuIHBhYXIgc2Vjb25kZW4nLFxuICAgICAgICAgICAgc3M6ICclZCBzZWNvbmRlbicsXG4gICAgICAgICAgICBtOiAnw6nDqW4gbWludXV0JyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWludXRlbicsXG4gICAgICAgICAgICBoOiAnw6nDqW4gdXVyJyxcbiAgICAgICAgICAgIGhoOiAnJWQgdXVyJyxcbiAgICAgICAgICAgIGQ6ICfDqcOpbiBkYWcnLFxuICAgICAgICAgICAgZGQ6ICclZCBkYWdlbicsXG4gICAgICAgICAgICBNOiAnw6nDqW4gbWFhbmQnLFxuICAgICAgICAgICAgTU06ICclZCBtYWFuZGVuJyxcbiAgICAgICAgICAgIHk6ICfDqcOpbiBqYWFyJyxcbiAgICAgICAgICAgIHl5OiAnJWQgamFhcicsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfShzdGV8ZGUpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICBudW1iZXIgK1xuICAgICAgICAgICAgICAgIChudW1iZXIgPT09IDEgfHwgbnVtYmVyID09PSA4IHx8IG51bWJlciA+PSAyMCA/ICdzdGUnIDogJ2RlJylcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBubDtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBEdXRjaCAoQmVsZ2l1bSkgW25sLWJlXVxuLy8hIGF1dGhvciA6IEpvcmlzIFLDtmxpbmcgOiBodHRwczovL2dpdGh1Yi5jb20vam9yaXNyb2xpbmdcbi8vISBhdXRob3IgOiBKYWNvYiBNaWRkYWcgOiBodHRwczovL2dpdGh1Yi5jb20vbWlkZGFnalxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIG1vbnRoc1Nob3J0V2l0aERvdHMgPSAnamFuLl9mZWIuX21ydC5fYXByLl9tZWlfanVuLl9qdWwuX2F1Zy5fc2VwLl9va3QuX25vdi5fZGVjLicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnRXaXRob3V0RG90cyA9ICdqYW5fZmViX21ydF9hcHJfbWVpX2p1bl9qdWxfYXVnX3NlcF9va3Rfbm92X2RlYycuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzUGFyc2UgPSBbXG4gICAgICAgICAgICAvXmphbi9pLFxuICAgICAgICAgICAgL15mZWIvaSxcbiAgICAgICAgICAgIC9ebWFhcnR8bXJ0Lj8kL2ksXG4gICAgICAgICAgICAvXmFwci9pLFxuICAgICAgICAgICAgL15tZWkkL2ksXG4gICAgICAgICAgICAvXmp1bltpLl0/JC9pLFxuICAgICAgICAgICAgL15qdWxbaS5dPyQvaSxcbiAgICAgICAgICAgIC9eYXVnL2ksXG4gICAgICAgICAgICAvXnNlcC9pLFxuICAgICAgICAgICAgL15va3QvaSxcbiAgICAgICAgICAgIC9ebm92L2ksXG4gICAgICAgICAgICAvXmRlYy9pLFxuICAgICAgICBdLFxuICAgICAgICBtb250aHNSZWdleCA9IC9eKGphbnVhcml8ZmVicnVhcml8bWFhcnR8YXByaWx8bWVpfGp1W25sXWl8YXVndXN0dXN8c2VwdGVtYmVyfG9rdG9iZXJ8bm92ZW1iZXJ8ZGVjZW1iZXJ8amFuXFwuP3xmZWJcXC4/fG1ydFxcLj98YXByXFwuP3xqdVtubF1cXC4/fGF1Z1xcLj98c2VwXFwuP3xva3RcXC4/fG5vdlxcLj98ZGVjXFwuPykvaTtcblxuICAgIHZhciBubEJlID0gbW9tZW50LmRlZmluZUxvY2FsZSgnbmwtYmUnLCB7XG4gICAgICAgIG1vbnRoczogJ2phbnVhcmlfZmVicnVhcmlfbWFhcnRfYXByaWxfbWVpX2p1bmlfanVsaV9hdWd1c3R1c19zZXB0ZW1iZXJfb2t0b2Jlcl9ub3ZlbWJlcl9kZWNlbWJlcicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6IGZ1bmN0aW9uIChtLCBmb3JtYXQpIHtcbiAgICAgICAgICAgIGlmICghbSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBtb250aHNTaG9ydFdpdGhEb3RzO1xuICAgICAgICAgICAgfSBlbHNlIGlmICgvLU1NTS0vLnRlc3QoZm9ybWF0KSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBtb250aHNTaG9ydFdpdGhvdXREb3RzW20ubW9udGgoKV07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBtb250aHNTaG9ydFdpdGhEb3RzW20ubW9udGgoKV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG5cbiAgICAgICAgbW9udGhzUmVnZXg6IG1vbnRoc1JlZ2V4LFxuICAgICAgICBtb250aHNTaG9ydFJlZ2V4OiBtb250aHNSZWdleCxcbiAgICAgICAgbW9udGhzU3RyaWN0UmVnZXg6IC9eKGphbnVhcml8ZmVicnVhcml8bWFhcnR8YXByaWx8bWVpfGp1W25sXWl8YXVndXN0dXN8c2VwdGVtYmVyfG9rdG9iZXJ8bm92ZW1iZXJ8ZGVjZW1iZXIpL2ksXG4gICAgICAgIG1vbnRoc1Nob3J0U3RyaWN0UmVnZXg6IC9eKGphblxcLj98ZmViXFwuP3xtcnRcXC4/fGFwclxcLj98bWVpfGp1W25sXVxcLj98YXVnXFwuP3xzZXBcXC4/fG9rdFxcLj98bm92XFwuP3xkZWNcXC4/KS9pLFxuXG4gICAgICAgIG1vbnRoc1BhcnNlOiBtb250aHNQYXJzZSxcbiAgICAgICAgbG9uZ01vbnRoc1BhcnNlOiBtb250aHNQYXJzZSxcbiAgICAgICAgc2hvcnRNb250aHNQYXJzZTogbW9udGhzUGFyc2UsXG5cbiAgICAgICAgd2Vla2RheXM6ICd6b25kYWdfbWFhbmRhZ19kaW5zZGFnX3dvZW5zZGFnX2RvbmRlcmRhZ192cmlqZGFnX3phdGVyZGFnJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnem8uX21hLl9kaS5fd28uX2RvLl92ci5femEuJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ3pvX21hX2RpX3dvX2RvX3ZyX3phJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1t2YW5kYWFnIG9tXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW21vcmdlbiBvbV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFtvbV0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tnaXN0ZXJlbiBvbV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdbYWZnZWxvcGVuXSBkZGRkIFtvbV0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdvdmVyICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyBnZWxlZGVuJyxcbiAgICAgICAgICAgIHM6ICdlZW4gcGFhciBzZWNvbmRlbicsXG4gICAgICAgICAgICBzczogJyVkIHNlY29uZGVuJyxcbiAgICAgICAgICAgIG06ICfDqcOpbiBtaW51dXQnLFxuICAgICAgICAgICAgbW06ICclZCBtaW51dGVuJyxcbiAgICAgICAgICAgIGg6ICfDqcOpbiB1dXInLFxuICAgICAgICAgICAgaGg6ICclZCB1dXInLFxuICAgICAgICAgICAgZDogJ8Opw6luIGRhZycsXG4gICAgICAgICAgICBkZDogJyVkIGRhZ2VuJyxcbiAgICAgICAgICAgIE06ICfDqcOpbiBtYWFuZCcsXG4gICAgICAgICAgICBNTTogJyVkIG1hYW5kZW4nLFxuICAgICAgICAgICAgeTogJ8Opw6luIGphYXInLFxuICAgICAgICAgICAgeXk6ICclZCBqYWFyJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9KHN0ZXxkZSkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIG51bWJlciArXG4gICAgICAgICAgICAgICAgKG51bWJlciA9PT0gMSB8fCBudW1iZXIgPT09IDggfHwgbnVtYmVyID49IDIwID8gJ3N0ZScgOiAnZGUnKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG5sQmU7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogTnlub3JzayBbbm5dXG4vLyEgYXV0aG9ycyA6IGh0dHBzOi8vZ2l0aHViLmNvbS9tZWNodXdpbmRcbi8vISAgICAgICAgICAgU3RlcGhlbiBSYW10aHVuIDogaHR0cHM6Ly9naXRodWIuY29tL3N0ZXBoZW5yYW10aHVuXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgbm4gPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdubicsIHtcbiAgICAgICAgbW9udGhzOiAnamFudWFyX2ZlYnJ1YXJfbWFyc19hcHJpbF9tYWlfanVuaV9qdWxpX2F1Z3VzdF9zZXB0ZW1iZXJfb2t0b2Jlcl9ub3ZlbWJlcl9kZXNlbWJlcicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdqYW4uX2ZlYi5fbWFyc19hcHIuX21haV9qdW5pX2p1bGlfYXVnLl9zZXAuX29rdC5fbm92Ll9kZXMuJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czogJ3N1bmRhZ19tw6VuZGFnX3R5c2RhZ19vbnNkYWdfdG9yc2RhZ19mcmVkYWdfbGF1cmRhZycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ3N1Ll9tw6UuX3R5Ll9vbi5fdG8uX2ZyLl9sYXUuJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ3N1X23DpV90eV9vbl90b19mcl9sYScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QuIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdELiBNTU1NIFlZWVkgW2tsLl0gSDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCBELiBNTU1NIFlZWVkgW2tsLl0gSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tJIGRhZyBrbG9ra2FdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbSSBtb3Jnb24ga2xva2thXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW2tsb2trYV0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tJIGfDpXIga2xva2thXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1tGw7hyZWfDpWFuZGVdIGRkZGQgW2tsb2trYV0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdvbSAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMgc2lkYW4nLFxuICAgICAgICAgICAgczogJ25va3JlIHNla3VuZCcsXG4gICAgICAgICAgICBzczogJyVkIHNla3VuZCcsXG4gICAgICAgICAgICBtOiAnZWl0IG1pbnV0dCcsXG4gICAgICAgICAgICBtbTogJyVkIG1pbnV0dCcsXG4gICAgICAgICAgICBoOiAnZWluIHRpbWUnLFxuICAgICAgICAgICAgaGg6ICclZCB0aW1hcicsXG4gICAgICAgICAgICBkOiAnZWluIGRhZycsXG4gICAgICAgICAgICBkZDogJyVkIGRhZ2FyJyxcbiAgICAgICAgICAgIE06ICdlaW4gbcOlbmFkJyxcbiAgICAgICAgICAgIE1NOiAnJWQgbcOlbmFkZXInLFxuICAgICAgICAgICAgeTogJ2VpdCDDpXInLFxuICAgICAgICAgICAgeXk6ICclZCDDpXInLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn1cXC4vLFxuICAgICAgICBvcmRpbmFsOiAnJWQuJyxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG5uO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IE9jY2l0YW4sIGxlbmdhZG9jaWFuIGRpYWxlY3RlIFtvYy1sbmNdXG4vLyEgYXV0aG9yIDogUXVlbnRpbiBQQUfDiFMgOiBodHRwczovL2dpdGh1Yi5jb20vUXVlbnR5MzFcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBvY0xuYyA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ29jLWxuYycsIHtcbiAgICAgICAgbW9udGhzOiB7XG4gICAgICAgICAgICBzdGFuZGFsb25lOiAnZ2VuacOocl9mZWJyacOocl9tYXLDp19hYnJpbF9tYWlfanVuaF9qdWxoZXRfYWdvc3Rfc2V0ZW1icmVfb2N0w7JicmVfbm92ZW1icmVfZGVjZW1icmUnLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGZvcm1hdDogXCJkZSBnZW5pw6hyX2RlIGZlYnJpw6hyX2RlIG1hcsOnX2QnYWJyaWxfZGUgbWFpX2RlIGp1bmhfZGUganVsaGV0X2QnYWdvc3RfZGUgc2V0ZW1icmVfZCdvY3TDsmJyZV9kZSBub3ZlbWJyZV9kZSBkZWNlbWJyZVwiLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGlzRm9ybWF0OiAvRFtvRF0/KFxccykrTU1NTS8sXG4gICAgICAgIH0sXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnZ2VuLl9mZWJyLl9tYXLDp19hYnIuX21haV9qdW5oX2p1bGguX2Fnby5fc2V0Ll9vY3QuX25vdi5fZGVjLicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXM6ICdkaW1lbmdlX2RpbHVuc19kaW1hcnNfZGltw6hjcmVzX2RpasOydXNfZGl2ZW5kcmVzX2Rpc3NhYnRlJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnZGcuX2RsLl9kbS5fZGMuX2RqLl9kdi5fZHMuJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ2RnX2RsX2RtX2RjX2RqX2R2X2RzJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0g6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBbZGVdIFlZWVknLFxuICAgICAgICAgICAgbGw6ICdEIE1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBbZGVdIFlZWVkgW2FdIEg6bW0nLFxuICAgICAgICAgICAgbGxsOiAnRCBNTU0gWVlZWSwgSDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCBEIE1NTU0gW2RlXSBZWVlZIFthXSBIOm1tJyxcbiAgICAgICAgICAgIGxsbGw6ICdkZGQgRCBNTU0gWVlZWSwgSDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW3XDqGkgYV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tkZW1hbiBhXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW2FdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbacOociBhXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ2RkZGQgW3Bhc3NhdCBhXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogXCJkJ2FxdcOtICVzXCIsXG4gICAgICAgICAgICBwYXN0OiAnZmEgJXMnLFxuICAgICAgICAgICAgczogJ3VuYXMgc2Vnb25kYXMnLFxuICAgICAgICAgICAgc3M6ICclZCBzZWdvbmRhcycsXG4gICAgICAgICAgICBtOiAndW5hIG1pbnV0YScsXG4gICAgICAgICAgICBtbTogJyVkIG1pbnV0YXMnLFxuICAgICAgICAgICAgaDogJ3VuYSBvcmEnLFxuICAgICAgICAgICAgaGg6ICclZCBvcmFzJyxcbiAgICAgICAgICAgIGQ6ICd1biBqb3JuJyxcbiAgICAgICAgICAgIGRkOiAnJWQgam9ybnMnLFxuICAgICAgICAgICAgTTogJ3VuIG1lcycsXG4gICAgICAgICAgICBNTTogJyVkIG1lc2VzJyxcbiAgICAgICAgICAgIHk6ICd1biBhbicsXG4gICAgICAgICAgICB5eTogJyVkIGFucycsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfShyfG58dHzDqHxhKS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIsIHBlcmlvZCkge1xuICAgICAgICAgICAgdmFyIG91dHB1dCA9XG4gICAgICAgICAgICAgICAgbnVtYmVyID09PSAxXG4gICAgICAgICAgICAgICAgICAgID8gJ3InXG4gICAgICAgICAgICAgICAgICAgIDogbnVtYmVyID09PSAyXG4gICAgICAgICAgICAgICAgICAgID8gJ24nXG4gICAgICAgICAgICAgICAgICAgIDogbnVtYmVyID09PSAzXG4gICAgICAgICAgICAgICAgICAgID8gJ3InXG4gICAgICAgICAgICAgICAgICAgIDogbnVtYmVyID09PSA0XG4gICAgICAgICAgICAgICAgICAgID8gJ3QnXG4gICAgICAgICAgICAgICAgICAgIDogJ8OoJztcbiAgICAgICAgICAgIGlmIChwZXJpb2QgPT09ICd3JyB8fCBwZXJpb2QgPT09ICdXJykge1xuICAgICAgICAgICAgICAgIG91dHB1dCA9ICdhJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyBvdXRwdXQ7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gb2NMbmM7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogUHVuamFiaSAoSW5kaWEpIFtwYS1pbl1cbi8vISBhdXRob3IgOiBIYXJwcmVldCBTaW5naCA6IGh0dHBzOi8vZ2l0aHViLmNvbS9oYXJwcmVldGtoYWxzYWd0Yml0XG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgc3ltYm9sTWFwID0ge1xuICAgICAgICAgICAgJzEnOiAn4KmnJyxcbiAgICAgICAgICAgICcyJzogJ+CpqCcsXG4gICAgICAgICAgICAnMyc6ICfgqaknLFxuICAgICAgICAgICAgJzQnOiAn4KmqJyxcbiAgICAgICAgICAgICc1JzogJ+CpqycsXG4gICAgICAgICAgICAnNic6ICfgqawnLFxuICAgICAgICAgICAgJzcnOiAn4KmtJyxcbiAgICAgICAgICAgICc4JzogJ+CpricsXG4gICAgICAgICAgICAnOSc6ICfgqa8nLFxuICAgICAgICAgICAgJzAnOiAn4KmmJyxcbiAgICAgICAgfSxcbiAgICAgICAgbnVtYmVyTWFwID0ge1xuICAgICAgICAgICAgJ+Cppyc6ICcxJyxcbiAgICAgICAgICAgICfgqagnOiAnMicsXG4gICAgICAgICAgICAn4KmpJzogJzMnLFxuICAgICAgICAgICAgJ+Cpqic6ICc0JyxcbiAgICAgICAgICAgICfgqasnOiAnNScsXG4gICAgICAgICAgICAn4KmsJzogJzYnLFxuICAgICAgICAgICAgJ+CprSc6ICc3JyxcbiAgICAgICAgICAgICfgqa4nOiAnOCcsXG4gICAgICAgICAgICAn4KmvJzogJzknLFxuICAgICAgICAgICAgJ+Cppic6ICcwJyxcbiAgICAgICAgfTtcblxuICAgIHZhciBwYUluID0gbW9tZW50LmRlZmluZUxvY2FsZSgncGEtaW4nLCB7XG4gICAgICAgIC8vIFRoZXJlIGFyZSBtb250aHMgbmFtZSBhcyBwZXIgTmFuYWtzaGFoaSBDYWxlbmRhciBidXQgdGhleSBhcmUgbm90IHVzZWQgYXMgcmlnaWRseSBpbiBtb2Rlcm4gUHVuamFiaS5cbiAgICAgICAgbW9udGhzOiAn4Kic4Kio4Ki14Kiw4KmAX+Coq+CovOCosOCoteCosOCpgF/gqK7gqL7gqLDgqJpf4KiF4Kiq4KmN4Kiw4KmI4KiyX+CoruCoiF/gqJzgqYLgqKhf4Kic4KmB4Kiy4Ki+4KiIX+CoheCol+CouOCopF/gqLjgqKTgqbDgqKzgqLBf4KiF4KiV4Kik4KmC4Kis4KiwX+CoqOCoteCpsOCorOCosF/gqKbgqLjgqbDgqKzgqLAnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAn4Kic4Kio4Ki14Kiw4KmAX+Coq+CovOCosOCoteCosOCpgF/gqK7gqL7gqLDgqJpf4KiF4Kiq4KmN4Kiw4KmI4KiyX+CoruCoiF/gqJzgqYLgqKhf4Kic4KmB4Kiy4Ki+4KiIX+CoheCol+CouOCopF/gqLjgqKTgqbDgqKzgqLBf4KiF4KiV4Kik4KmC4Kis4KiwX+CoqOCoteCpsOCorOCosF/gqKbgqLjgqbDgqKzgqLAnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzOiAn4KiQ4Kik4Ki14Ki+4KiwX+CouOCpi+CoruCoteCovuCosF/gqK7gqbDgqJfgqLLgqLXgqL7gqLBf4Kis4KmB4Kin4Ki14Ki+4KiwX+CoteCpgOCosOCoteCovuCosF/gqLjgqLzgqYHgqbHgqJXgqLDgqLXgqL7gqLBf4Ki44Ki84Kio4KmA4Kia4Kiw4Ki14Ki+4KiwJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn4KiQ4KikX+CouOCpi+Corl/gqK7gqbDgqJfgqLJf4Kis4KmB4KinX+CoteCpgOCosF/gqLjgqLzgqYHgqJXgqLBf4Ki44Ki84Kio4KmAJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ+CokOCopF/gqLjgqYvgqK5f4Kiu4Kmw4KiX4KiyX+CorOCpgeCop1/gqLXgqYDgqLBf4Ki44Ki84KmB4KiV4KiwX+CouOCovOCoqOCpgCcuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnQSBoOm1tIOCoteConOCphycsXG4gICAgICAgICAgICBMVFM6ICdBIGg6bW06c3Mg4Ki14Kic4KmHJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVksIEEgaDptbSDgqLXgqJzgqYcnLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZLCBBIGg6bW0g4Ki14Kic4KmHJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb4KiF4KicXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW+ColeCosl0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdb4KiF4KiX4Kiy4Ki+XSBkZGRkLCBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW+ColeCosl0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdb4Kiq4Ki/4Kib4Kiy4KmHXSBkZGRkLCBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVzIOCoteCov+CpseComicsXG4gICAgICAgICAgICBwYXN0OiAnJXMg4Kiq4Ki/4Kib4Kiy4KmHJyxcbiAgICAgICAgICAgIHM6ICfgqJXgqYHgqJ0g4Ki44KiV4Ki/4Kmw4KifJyxcbiAgICAgICAgICAgIHNzOiAnJWQg4Ki44KiV4Ki/4Kmw4KifJyxcbiAgICAgICAgICAgIG06ICfgqIfgqJUg4Kiu4Ki/4Kmw4KifJyxcbiAgICAgICAgICAgIG1tOiAnJWQg4Kiu4Ki/4Kmw4KifJyxcbiAgICAgICAgICAgIGg6ICfgqIfgqbHgqJUg4KiY4Kmw4Kif4Ki+JyxcbiAgICAgICAgICAgIGhoOiAnJWQg4KiY4Kmw4Kif4KmHJyxcbiAgICAgICAgICAgIGQ6ICfgqIfgqbHgqJUg4Kim4Ki/4KioJyxcbiAgICAgICAgICAgIGRkOiAnJWQg4Kim4Ki/4KioJyxcbiAgICAgICAgICAgIE06ICfgqIfgqbHgqJUg4Kiu4Ki54KmA4Kio4Ki+JyxcbiAgICAgICAgICAgIE1NOiAnJWQg4Kiu4Ki54KmA4Kio4KmHJyxcbiAgICAgICAgICAgIHk6ICfgqIfgqbHgqJUg4Ki44Ki+4KiyJyxcbiAgICAgICAgICAgIHl5OiAnJWQg4Ki44Ki+4KiyJyxcbiAgICAgICAgfSxcbiAgICAgICAgcHJlcGFyc2U6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgvW+Cpp+CpqOCpqeCpquCpq+CprOCpreCpruCpr+Cppl0vZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlck1hcFttYXRjaF07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgcG9zdGZvcm1hdDogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC9cXGQvZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN5bWJvbE1hcFttYXRjaF07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgLy8gUHVuamFiaSBub3RhdGlvbiBmb3IgbWVyaWRpZW1zIGFyZSBxdWl0ZSBmdXp6eSBpbiBwcmFjdGljZS4gV2hpbGUgdGhlcmUgZXhpc3RzXG4gICAgICAgIC8vIGEgcmlnaWQgbm90aW9uIG9mIGEgJ1BhaGFyJyBpdCBpcyBub3QgdXNlZCBhcyByaWdpZGx5IGluIG1vZGVybiBQdW5qYWJpLlxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv4Kiw4Ki+4KikfOCouOCoteCph+CosHzgqKbgqYHgqKrgqLngqL/gqLB84Ki44Ki84Ki+4KiuLyxcbiAgICAgICAgbWVyaWRpZW1Ib3VyOiBmdW5jdGlvbiAoaG91ciwgbWVyaWRpZW0pIHtcbiAgICAgICAgICAgIGlmIChob3VyID09PSAxMikge1xuICAgICAgICAgICAgICAgIGhvdXIgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG1lcmlkaWVtID09PSAn4Kiw4Ki+4KikJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyIDwgNCA/IGhvdXIgOiBob3VyICsgMTI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAn4Ki44Ki14KmH4KiwJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+CopuCpgeCoquCoueCov+CosCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciA+PSAxMCA/IGhvdXIgOiBob3VyICsgMTI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAn4Ki44Ki84Ki+4KiuJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyICsgMTI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CosOCovuCopCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4Ki44Ki14KmH4KiwJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDE3KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgqKbgqYHgqKrgqLngqL/gqLAnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMjApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CouOCovOCovuCoric7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4Kiw4Ki+4KikJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAwLCAvLyBTdW5kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNiwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNnRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHBhSW47XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogUG9saXNoIFtwbF1cbi8vISBhdXRob3IgOiBSYWZhbCBIaXJzeiA6IGh0dHBzOi8vZ2l0aHViLmNvbS9ldm9MXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgbW9udGhzTm9taW5hdGl2ZSA9ICdzdHljemXFhF9sdXR5X21hcnplY19rd2llY2llxYRfbWFqX2N6ZXJ3aWVjX2xpcGllY19zaWVycGllxYRfd3J6ZXNpZcWEX3Bhxbpkemllcm5pa19saXN0b3BhZF9ncnVkemllxYQnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1N1YmplY3RpdmUgPSAnc3R5Y3puaWFfbHV0ZWdvX21hcmNhX2t3aWV0bmlhX21hamFfY3plcndjYV9saXBjYV9zaWVycG5pYV93cnplxZtuaWFfcGHFumR6aWVybmlrYV9saXN0b3BhZGFfZ3J1ZG5pYScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKTtcbiAgICBmdW5jdGlvbiBwbHVyYWwobikge1xuICAgICAgICByZXR1cm4gbiAlIDEwIDwgNSAmJiBuICUgMTAgPiAxICYmIH5+KG4gLyAxMCkgJSAxMCAhPT0gMTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdHJhbnNsYXRlKG51bWJlciwgd2l0aG91dFN1ZmZpeCwga2V5KSB7XG4gICAgICAgIHZhciByZXN1bHQgPSBudW1iZXIgKyAnICc7XG4gICAgICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICAgICAgICBjYXNlICdzcyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArIChwbHVyYWwobnVtYmVyKSA/ICdzZWt1bmR5JyA6ICdzZWt1bmQnKTtcbiAgICAgICAgICAgIGNhc2UgJ20nOlxuICAgICAgICAgICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4ID8gJ21pbnV0YScgOiAnbWludXTEmSc7XG4gICAgICAgICAgICBjYXNlICdtbSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArIChwbHVyYWwobnVtYmVyKSA/ICdtaW51dHknIDogJ21pbnV0Jyk7XG4gICAgICAgICAgICBjYXNlICdoJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCA/ICdnb2R6aW5hJyA6ICdnb2R6aW7EmSc7XG4gICAgICAgICAgICBjYXNlICdoaCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArIChwbHVyYWwobnVtYmVyKSA/ICdnb2R6aW55JyA6ICdnb2R6aW4nKTtcbiAgICAgICAgICAgIGNhc2UgJ01NJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgKHBsdXJhbChudW1iZXIpID8gJ21pZXNpxIVjZScgOiAnbWllc2nEmWN5Jyk7XG4gICAgICAgICAgICBjYXNlICd5eSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArIChwbHVyYWwobnVtYmVyKSA/ICdsYXRhJyA6ICdsYXQnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhciBwbCA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3BsJywge1xuICAgICAgICBtb250aHM6IGZ1bmN0aW9uIChtb21lbnRUb0Zvcm1hdCwgZm9ybWF0KSB7XG4gICAgICAgICAgICBpZiAoIW1vbWVudFRvRm9ybWF0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1vbnRoc05vbWluYXRpdmU7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdCA9PT0gJycpIHtcbiAgICAgICAgICAgICAgICAvLyBIYWNrOiBpZiBmb3JtYXQgZW1wdHkgd2Uga25vdyB0aGlzIGlzIHVzZWQgdG8gZ2VuZXJhdGVcbiAgICAgICAgICAgICAgICAvLyBSZWdFeHAgYnkgbW9tZW50LiBHaXZlIHRoZW4gYmFjayBib3RoIHZhbGlkIGZvcm1zIG9mIG1vbnRoc1xuICAgICAgICAgICAgICAgIC8vIGluIFJlZ0V4cCByZWFkeSBmb3JtYXQuXG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgJygnICtcbiAgICAgICAgICAgICAgICAgICAgbW9udGhzU3ViamVjdGl2ZVttb21lbnRUb0Zvcm1hdC5tb250aCgpXSArXG4gICAgICAgICAgICAgICAgICAgICd8JyArXG4gICAgICAgICAgICAgICAgICAgIG1vbnRoc05vbWluYXRpdmVbbW9tZW50VG9Gb3JtYXQubW9udGgoKV0gK1xuICAgICAgICAgICAgICAgICAgICAnKSdcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBlbHNlIGlmICgvRCBNTU1NLy50ZXN0KGZvcm1hdCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbW9udGhzU3ViamVjdGl2ZVttb21lbnRUb0Zvcm1hdC5tb250aCgpXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1vbnRoc05vbWluYXRpdmVbbW9tZW50VG9Gb3JtYXQubW9udGgoKV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnc3R5X2x1dF9tYXJfa3dpX21hal9jemVfbGlwX3NpZV93cnpfcGHFul9saXNfZ3J1Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ25pZWR6aWVsYV9wb25pZWR6aWHFgmVrX3d0b3Jla1/Fm3JvZGFfY3p3YXJ0ZWtfcGnEhXRla19zb2JvdGEnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICduZHpfcG9uX3d0X8Wbcl9jendfcHRfc29iJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ05kX1BuX1d0X8Wacl9Del9QdF9Tbycuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tEemnFmyBvXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW0p1dHJvIG9dIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoICh0aGlzLmRheSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW1cgbmllZHppZWzEmSBvXSBMVCc7XG5cbiAgICAgICAgICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbV2Ugd3RvcmVrIG9dIExUJztcblxuICAgICAgICAgICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1tXIMWbcm9kxJkgb10gTFQnO1xuXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW1cgc29ib3TEmSBvXSBMVCc7XG5cbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW1ddIGRkZGQgW29dIExUJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGFzdERheTogJ1tXY3pvcmFqIG9dIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoICh0aGlzLmRheSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW1cgemVzesWCxIUgbmllZHppZWzEmSBvXSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW1cgemVzesWCxIUgxZtyb2TEmSBvXSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW1cgemVzesWCxIUgc29ib3TEmSBvXSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1tXIHplc3rFgnldIGRkZGQgW29dIExUJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICd6YSAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMgdGVtdScsXG4gICAgICAgICAgICBzOiAna2lsa2Egc2VrdW5kJyxcbiAgICAgICAgICAgIHNzOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBtOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBtbTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgaDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgaGg6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGQ6ICcxIGR6aWXFhCcsXG4gICAgICAgICAgICBkZDogJyVkIGRuaScsXG4gICAgICAgICAgICBNOiAnbWllc2nEhWMnLFxuICAgICAgICAgICAgTU06IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIHk6ICdyb2snLFxuICAgICAgICAgICAgeXk6IHRyYW5zbGF0ZSxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9XFwuLyxcbiAgICAgICAgb3JkaW5hbDogJyVkLicsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBwbDtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBQb3J0dWd1ZXNlIFtwdF1cbi8vISBhdXRob3IgOiBKZWZmZXJzb24gOiBodHRwczovL2dpdGh1Yi5jb20vamFsZXg3OVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHB0ID0gbW9tZW50LmRlZmluZUxvY2FsZSgncHQnLCB7XG4gICAgICAgIG1vbnRoczogJ2phbmVpcm9fZmV2ZXJlaXJvX21hcsOnb19hYnJpbF9tYWlvX2p1bmhvX2p1bGhvX2Fnb3N0b19zZXRlbWJyb19vdXR1YnJvX25vdmVtYnJvX2RlemVtYnJvJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ2phbl9mZXZfbWFyX2Ficl9tYWlfanVuX2p1bF9hZ29fc2V0X291dF9ub3ZfZGV6Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ0RvbWluZ29fU2VndW5kYS1mZWlyYV9UZXLDp2EtZmVpcmFfUXVhcnRhLWZlaXJhX1F1aW50YS1mZWlyYV9TZXh0YS1mZWlyYV9Tw6FiYWRvJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnRG9tX1NlZ19UZXJfUXVhX1F1aV9TZXhfU8OhYicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdEb18ywqpfM8KqXzTCql81wqpfNsKqX1PDoScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgW2RlXSBNTU1NIFtkZV0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIFtkZV0gTU1NTSBbZGVdIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgW2RlXSBNTU1NIFtkZV0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW0hvamUgw6BzXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW0FtYW5ow6Mgw6BzXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW8Ogc10gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tPbnRlbSDDoHNdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGF5KCkgPT09IDAgfHwgdGhpcy5kYXkoKSA9PT0gNlxuICAgICAgICAgICAgICAgICAgICA/ICdbw5psdGltb10gZGRkZCBbw6BzXSBMVCcgLy8gU2F0dXJkYXkgKyBTdW5kYXlcbiAgICAgICAgICAgICAgICAgICAgOiAnW8OabHRpbWFdIGRkZGQgW8Ogc10gTFQnOyAvLyBNb25kYXkgLSBGcmlkYXlcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ2VtICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICdow6EgJXMnLFxuICAgICAgICAgICAgczogJ3NlZ3VuZG9zJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2VndW5kb3MnLFxuICAgICAgICAgICAgbTogJ3VtIG1pbnV0bycsXG4gICAgICAgICAgICBtbTogJyVkIG1pbnV0b3MnLFxuICAgICAgICAgICAgaDogJ3VtYSBob3JhJyxcbiAgICAgICAgICAgIGhoOiAnJWQgaG9yYXMnLFxuICAgICAgICAgICAgZDogJ3VtIGRpYScsXG4gICAgICAgICAgICBkZDogJyVkIGRpYXMnLFxuICAgICAgICAgICAgTTogJ3VtIG3DqnMnLFxuICAgICAgICAgICAgTU06ICclZCBtZXNlcycsXG4gICAgICAgICAgICB5OiAndW0gYW5vJyxcbiAgICAgICAgICAgIHl5OiAnJWQgYW5vcycsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfcK6LyxcbiAgICAgICAgb3JkaW5hbDogJyVkwronLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gcHQ7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogUG9ydHVndWVzZSAoQnJhemlsKSBbcHQtYnJdXG4vLyEgYXV0aG9yIDogQ2FpbyBSaWJlaXJvIFBlcmVpcmEgOiBodHRwczovL2dpdGh1Yi5jb20vY2Fpby1yaWJlaXJvLXBlcmVpcmFcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBwdEJyID0gbW9tZW50LmRlZmluZUxvY2FsZSgncHQtYnInLCB7XG4gICAgICAgIG1vbnRoczogJ2phbmVpcm9fZmV2ZXJlaXJvX21hcsOnb19hYnJpbF9tYWlvX2p1bmhvX2p1bGhvX2Fnb3N0b19zZXRlbWJyb19vdXR1YnJvX25vdmVtYnJvX2RlemVtYnJvJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ2phbl9mZXZfbWFyX2Ficl9tYWlfanVuX2p1bF9hZ29fc2V0X291dF9ub3ZfZGV6Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ2RvbWluZ29fc2VndW5kYS1mZWlyYV90ZXLDp2EtZmVpcmFfcXVhcnRhLWZlaXJhX3F1aW50YS1mZWlyYV9zZXh0YS1mZWlyYV9zw6FiYWRvJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnZG9tX3NlZ190ZXJfcXVhX3F1aV9zZXhfc8OhYicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdkb18ywqpfM8KqXzTCql81wqpfNsKqX3PDoScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgW2RlXSBNTU1NIFtkZV0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIFtkZV0gTU1NTSBbZGVdIFlZWVkgW8Ogc10gSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgW2RlXSBNTU1NIFtkZV0gWVlZWSBbw6BzXSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW0hvamUgw6BzXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW0FtYW5ow6Mgw6BzXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW8Ogc10gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tPbnRlbSDDoHNdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGF5KCkgPT09IDAgfHwgdGhpcy5kYXkoKSA9PT0gNlxuICAgICAgICAgICAgICAgICAgICA/ICdbw5psdGltb10gZGRkZCBbw6BzXSBMVCcgLy8gU2F0dXJkYXkgKyBTdW5kYXlcbiAgICAgICAgICAgICAgICAgICAgOiAnW8OabHRpbWFdIGRkZGQgW8Ogc10gTFQnOyAvLyBNb25kYXkgLSBGcmlkYXlcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ2VtICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICdow6EgJXMnLFxuICAgICAgICAgICAgczogJ3BvdWNvcyBzZWd1bmRvcycsXG4gICAgICAgICAgICBzczogJyVkIHNlZ3VuZG9zJyxcbiAgICAgICAgICAgIG06ICd1bSBtaW51dG8nLFxuICAgICAgICAgICAgbW06ICclZCBtaW51dG9zJyxcbiAgICAgICAgICAgIGg6ICd1bWEgaG9yYScsXG4gICAgICAgICAgICBoaDogJyVkIGhvcmFzJyxcbiAgICAgICAgICAgIGQ6ICd1bSBkaWEnLFxuICAgICAgICAgICAgZGQ6ICclZCBkaWFzJyxcbiAgICAgICAgICAgIE06ICd1bSBtw6pzJyxcbiAgICAgICAgICAgIE1NOiAnJWQgbWVzZXMnLFxuICAgICAgICAgICAgeTogJ3VtIGFubycsXG4gICAgICAgICAgICB5eTogJyVkIGFub3MnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn3Cui8sXG4gICAgICAgIG9yZGluYWw6ICclZMK6JyxcbiAgICB9KTtcblxuICAgIHJldHVybiBwdEJyO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IFJvbWFuaWFuIFtyb11cbi8vISBhdXRob3IgOiBWbGFkIEd1cmRpZ2EgOiBodHRwczovL2dpdGh1Yi5jb20vZ3VyZGlnYVxuLy8hIGF1dGhvciA6IFZhbGVudGluIEFnYWNoaSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9hdmFseVxuLy8hIGF1dGhvciA6IEVtYW51ZWwgQ2Vwb2kgOiBodHRwczovL2dpdGh1Yi5jb20vY2VwZW1cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIGZ1bmN0aW9uIHJlbGF0aXZlVGltZVdpdGhQbHVyYWwobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXkpIHtcbiAgICAgICAgdmFyIGZvcm1hdCA9IHtcbiAgICAgICAgICAgICAgICBzczogJ3NlY3VuZGUnLFxuICAgICAgICAgICAgICAgIG1tOiAnbWludXRlJyxcbiAgICAgICAgICAgICAgICBoaDogJ29yZScsXG4gICAgICAgICAgICAgICAgZGQ6ICd6aWxlJyxcbiAgICAgICAgICAgICAgICBNTTogJ2x1bmknLFxuICAgICAgICAgICAgICAgIHl5OiAnYW5pJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZXBhcmF0b3IgPSAnICc7XG4gICAgICAgIGlmIChudW1iZXIgJSAxMDAgPj0gMjAgfHwgKG51bWJlciA+PSAxMDAgJiYgbnVtYmVyICUgMTAwID09PSAwKSkge1xuICAgICAgICAgICAgc2VwYXJhdG9yID0gJyBkZSAnO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudW1iZXIgKyBzZXBhcmF0b3IgKyBmb3JtYXRba2V5XTtcbiAgICB9XG5cbiAgICB2YXIgcm8gPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdybycsIHtcbiAgICAgICAgbW9udGhzOiAnaWFudWFyaWVfZmVicnVhcmllX21hcnRpZV9hcHJpbGllX21haV9pdW5pZV9pdWxpZV9hdWd1c3Rfc2VwdGVtYnJpZV9vY3RvbWJyaWVfbm9pZW1icmllX2RlY2VtYnJpZScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdpYW4uX2ZlYi5fbWFydC5fYXByLl9tYWlfaXVuLl9pdWwuX2F1Zy5fc2VwdC5fb2N0Ll9ub3YuX2RlYy4nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzOiAnZHVtaW5pY8SDX2x1bmlfbWFyyJtpX21pZXJjdXJpX2pvaV92aW5lcmlfc8OibWLEg3TEgycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ0R1bV9MdW5fTWFyX01pZV9Kb2lfVmluX1PDom0nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnRHVfTHVfTWFfTWlfSm9fVmlfU8OiJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0g6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSBIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbYXppIGxhXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW23DomluZSBsYV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFtsYV0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tpZXJpIGxhXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1tmb3N0YV0gZGRkZCBbbGFdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAncGVzdGUgJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzIMOubiB1cm3EgycsXG4gICAgICAgICAgICBzOiAnY8OidGV2YSBzZWN1bmRlJyxcbiAgICAgICAgICAgIHNzOiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICAgICAgbTogJ3VuIG1pbnV0JyxcbiAgICAgICAgICAgIG1tOiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICAgICAgaDogJ28gb3LEgycsXG4gICAgICAgICAgICBoaDogcmVsYXRpdmVUaW1lV2l0aFBsdXJhbCxcbiAgICAgICAgICAgIGQ6ICdvIHppJyxcbiAgICAgICAgICAgIGRkOiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICAgICAgTTogJ28gbHVuxIMnLFxuICAgICAgICAgICAgTU06IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgICAgICB5OiAndW4gYW4nLFxuICAgICAgICAgICAgeXk6IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDcsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDd0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBybztcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBSdXNzaWFuIFtydV1cbi8vISBhdXRob3IgOiBWaWt0b3JtaW5hdG9yIDogaHR0cHM6Ly9naXRodWIuY29tL1Zpa3Rvcm1pbmF0b3Jcbi8vISBhdXRob3IgOiBNZW5lbGlvbiBFbGVuc8O6bGUgOiBodHRwczovL2dpdGh1Yi5jb20vT2lyZVxuLy8hIGF1dGhvciA6INCa0L7RgNC10L3QsdC10YDQsyDQnNCw0YDQuiA6IGh0dHBzOi8vZ2l0aHViLmNvbS9zb2NrZXRwYWlyXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICBmdW5jdGlvbiBwbHVyYWwod29yZCwgbnVtKSB7XG4gICAgICAgIHZhciBmb3JtcyA9IHdvcmQuc3BsaXQoJ18nKTtcbiAgICAgICAgcmV0dXJuIG51bSAlIDEwID09PSAxICYmIG51bSAlIDEwMCAhPT0gMTFcbiAgICAgICAgICAgID8gZm9ybXNbMF1cbiAgICAgICAgICAgIDogbnVtICUgMTAgPj0gMiAmJiBudW0gJSAxMCA8PSA0ICYmIChudW0gJSAxMDAgPCAxMCB8fCBudW0gJSAxMDAgPj0gMjApXG4gICAgICAgICAgICA/IGZvcm1zWzFdXG4gICAgICAgICAgICA6IGZvcm1zWzJdO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsKG51bWJlciwgd2l0aG91dFN1ZmZpeCwga2V5KSB7XG4gICAgICAgIHZhciBmb3JtYXQgPSB7XG4gICAgICAgICAgICBzczogd2l0aG91dFN1ZmZpeCA/ICfRgdC10LrRg9C90LTQsF/RgdC10LrRg9C90LTRi1/RgdC10LrRg9C90LQnIDogJ9GB0LXQutGD0L3QtNGDX9GB0LXQutGD0L3QtNGLX9GB0LXQutGD0L3QtCcsXG4gICAgICAgICAgICBtbTogd2l0aG91dFN1ZmZpeCA/ICfQvNC40L3Rg9GC0LBf0LzQuNC90YPRgtGLX9C80LjQvdGD0YInIDogJ9C80LjQvdGD0YLRg1/QvNC40L3Rg9GC0Ytf0LzQuNC90YPRgicsXG4gICAgICAgICAgICBoaDogJ9GH0LDRgV/Rh9Cw0YHQsF/Rh9Cw0YHQvtCyJyxcbiAgICAgICAgICAgIGRkOiAn0LTQtdC90Yxf0LTQvdGPX9C00L3QtdC5JyxcbiAgICAgICAgICAgIE1NOiAn0LzQtdGB0Y/Rhl/QvNC10YHRj9GG0LBf0LzQtdGB0Y/RhtC10LInLFxuICAgICAgICAgICAgeXk6ICfQs9C+0LRf0LPQvtC00LBf0LvQtdGCJyxcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGtleSA9PT0gJ20nKSB7XG4gICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCA/ICfQvNC40L3Rg9GC0LAnIDogJ9C80LjQvdGD0YLRgyc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJyAnICsgcGx1cmFsKGZvcm1hdFtrZXldLCArbnVtYmVyKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICB2YXIgbW9udGhzUGFyc2UgPSBbXG4gICAgICAgIC9e0Y/QvdCyL2ksXG4gICAgICAgIC9e0YTQtdCyL2ksXG4gICAgICAgIC9e0LzQsNGAL2ksXG4gICAgICAgIC9e0LDQv9GAL2ksXG4gICAgICAgIC9e0LzQsFvQudGPXS9pLFxuICAgICAgICAvXtC40Y7QvS9pLFxuICAgICAgICAvXtC40Y7Quy9pLFxuICAgICAgICAvXtCw0LLQsy9pLFxuICAgICAgICAvXtGB0LXQvS9pLFxuICAgICAgICAvXtC+0LrRgi9pLFxuICAgICAgICAvXtC90L7Rjy9pLFxuICAgICAgICAvXtC00LXQui9pLFxuICAgIF07XG5cbiAgICAvLyBodHRwOi8vbmV3LmdyYW1vdGEucnUvc3ByYXZrYS9ydWxlcy8xMzktcHJvcCA6IMKnIDEwM1xuICAgIC8vINCh0L7QutGA0LDRidC10L3QuNGPINC80LXRgdGP0YbQtdCyOiBodHRwOi8vbmV3LmdyYW1vdGEucnUvc3ByYXZrYS9idXJvL3NlYXJjaC1hbnN3ZXI/cz0yNDI2MzdcbiAgICAvLyBDTERSIGRhdGE6ICAgICAgICAgIGh0dHA6Ly93d3cudW5pY29kZS5vcmcvY2xkci9jaGFydHMvMjgvc3VtbWFyeS9ydS5odG1sIzE3NTNcbiAgICB2YXIgcnUgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdydScsIHtcbiAgICAgICAgbW9udGhzOiB7XG4gICAgICAgICAgICBmb3JtYXQ6ICfRj9C90LLQsNGA0Y9f0YTQtdCy0YDQsNC70Y9f0LzQsNGA0YLQsF/QsNC/0YDQtdC70Y9f0LzQsNGPX9C40Y7QvdGPX9C40Y7Qu9GPX9Cw0LLQs9GD0YHRgtCwX9GB0LXQvdGC0Y/QsdGA0Y9f0L7QutGC0Y/QsdGA0Y9f0L3QvtGP0LHRgNGPX9C00LXQutCw0LHRgNGPJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBzdGFuZGFsb25lOiAn0Y/QvdCy0LDRgNGMX9GE0LXQstGA0LDQu9GMX9C80LDRgNGCX9Cw0L/RgNC10LvRjF/QvNCw0Llf0LjRjtC90Yxf0LjRjtC70Yxf0LDQstCz0YPRgdGCX9GB0LXQvdGC0Y/QsdGA0Yxf0L7QutGC0Y/QsdGA0Yxf0L3QvtGP0LHRgNGMX9C00LXQutCw0LHRgNGMJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgIH0sXG4gICAgICAgIG1vbnRoc1Nob3J0OiB7XG4gICAgICAgICAgICAvLyDQv9C+IENMRFIg0LjQvNC10L3QvdC+IFwi0LjRjtC7LlwiINC4IFwi0LjRjtC9LlwiLCDQvdC+INC60LDQutC+0Lkg0YHQvNGL0YHQuyDQvNC10L3Rj9GC0Ywg0LHRg9C60LLRgyDQvdCwINGC0L7Rh9C60YM/XG4gICAgICAgICAgICBmb3JtYXQ6ICfRj9C90LIuX9GE0LXQstGALl/QvNCw0YAuX9Cw0L/RgC5f0LzQsNGPX9C40Y7QvdGPX9C40Y7Qu9GPX9Cw0LLQsy5f0YHQtdC90YIuX9C+0LrRgi5f0L3QvtGP0LEuX9C00LXQui4nLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHN0YW5kYWxvbmU6ICfRj9C90LIuX9GE0LXQstGALl/QvNCw0YDRgl/QsNC/0YAuX9C80LDQuV/QuNGO0L3RjF/QuNGO0LvRjF/QsNCy0LMuX9GB0LXQvdGCLl/QvtC60YIuX9C90L7Rj9CxLl/QtNC10LouJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgIH0sXG4gICAgICAgIHdlZWtkYXlzOiB7XG4gICAgICAgICAgICBzdGFuZGFsb25lOiAn0LLQvtGB0LrRgNC10YHQtdC90YzQtV/Qv9C+0L3QtdC00LXQu9GM0L3QuNC6X9Cy0YLQvtGA0L3QuNC6X9GB0YDQtdC00LBf0YfQtdGC0LLQtdGA0LNf0L/Rj9GC0L3QuNGG0LBf0YHRg9Cx0LHQvtGC0LAnLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGZvcm1hdDogJ9Cy0L7RgdC60YDQtdGB0LXQvdGM0LVf0L/QvtC90LXQtNC10LvRjNC90LjQul/QstGC0L7RgNC90LjQul/RgdGA0LXQtNGDX9GH0LXRgtCy0LXRgNCzX9C/0Y/RgtC90LjRhtGDX9GB0YPQsdCx0L7RgtGDJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBpc0Zvcm1hdDogL1xcWyA/W9CS0LJdID8oPzrQv9GA0L7RiNC70YPRjnzRgdC70LXQtNGD0Y7RidGD0Y580Y3RgtGDKT8gP10gP2RkZGQvLFxuICAgICAgICB9LFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn0LLRgV/Qv9C9X9Cy0YJf0YHRgF/Rh9GCX9C/0YJf0YHQsScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfQstGBX9C/0L1f0LLRgl/RgdGAX9GH0YJf0L/Rgl/RgdCxJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNQYXJzZTogbW9udGhzUGFyc2UsXG4gICAgICAgIGxvbmdNb250aHNQYXJzZTogbW9udGhzUGFyc2UsXG4gICAgICAgIHNob3J0TW9udGhzUGFyc2U6IG1vbnRoc1BhcnNlLFxuXG4gICAgICAgIC8vINC/0L7Qu9C90YvQtSDQvdCw0LfQstCw0L3QuNGPINGBINC/0LDQtNC10LbQsNC80LgsINC/0L4g0YLRgNC4INCx0YPQutCy0YssINC00LvRjyDQvdC10LrQvtGC0L7RgNGL0YUsINC/0L4gNCDQsdGD0LrQstGLLCDRgdC+0LrRgNCw0YnQtdC90LjRjyDRgSDRgtC+0YfQutC+0Lkg0Lgg0LHQtdC3INGC0L7Rh9C60LhcbiAgICAgICAgbW9udGhzUmVnZXg6IC9eKNGP0L3QstCw0YBb0YzRj1180Y/QvdCyXFwuP3zRhNC10LLRgNCw0Ltb0YzRj1180YTQtdCy0YA/XFwuP3zQvNCw0YDRgtCwP3zQvNCw0YBcXC4/fNCw0L/RgNC10Ltb0YzRj1180LDQv9GAXFwuP3zQvNCwW9C50Y9dfNC40Y7QvVvRjNGPXXzQuNGO0L1cXC4/fNC40Y7Qu1vRjNGPXXzQuNGO0LtcXC4/fNCw0LLQs9GD0YHRgtCwP3zQsNCy0LNcXC4/fNGB0LXQvdGC0Y/QsdGAW9GM0Y9dfNGB0LXQvdGCP1xcLj980L7QutGC0Y/QsdGAW9GM0Y9dfNC+0LrRglxcLj980L3QvtGP0LHRgFvRjNGPXXzQvdC+0Y/QsT9cXC4/fNC00LXQutCw0LHRgFvRjNGPXXzQtNC10LpcXC4/KS9pLFxuXG4gICAgICAgIC8vINC60L7Qv9C40Y8g0L/RgNC10LTRi9C00YPRidC10LPQvlxuICAgICAgICBtb250aHNTaG9ydFJlZ2V4OiAvXijRj9C90LLQsNGAW9GM0Y9dfNGP0L3QslxcLj980YTQtdCy0YDQsNC7W9GM0Y9dfNGE0LXQstGAP1xcLj980LzQsNGA0YLQsD980LzQsNGAXFwuP3zQsNC/0YDQtdC7W9GM0Y9dfNCw0L/RgFxcLj980LzQsFvQudGPXXzQuNGO0L1b0YzRj1180LjRjtC9XFwuP3zQuNGO0Ltb0YzRj1180LjRjtC7XFwuP3zQsNCy0LPRg9GB0YLQsD980LDQstCzXFwuP3zRgdC10L3RgtGP0LHRgFvRjNGPXXzRgdC10L3Rgj9cXC4/fNC+0LrRgtGP0LHRgFvRjNGPXXzQvtC60YJcXC4/fNC90L7Rj9Cx0YBb0YzRj1180L3QvtGP0LE/XFwuP3zQtNC10LrQsNCx0YBb0YzRj1180LTQtdC6XFwuPykvaSxcblxuICAgICAgICAvLyDQv9C+0LvQvdGL0LUg0L3QsNC30LLQsNC90LjRjyDRgSDQv9Cw0LTQtdC20LDQvNC4XG4gICAgICAgIG1vbnRoc1N0cmljdFJlZ2V4OiAvXijRj9C90LLQsNGAW9GP0YxdfNGE0LXQstGA0LDQu1vRj9GMXXzQvNCw0YDRgtCwP3zQsNC/0YDQtdC7W9GP0YxdfNC80LBb0Y/QuV180LjRjtC9W9GP0YxdfNC40Y7Qu1vRj9GMXXzQsNCy0LPRg9GB0YLQsD980YHQtdC90YLRj9Cx0YBb0Y/RjF180L7QutGC0Y/QsdGAW9GP0YxdfNC90L7Rj9Cx0YBb0Y/RjF180LTQtdC60LDQsdGAW9GP0YxdKS9pLFxuXG4gICAgICAgIC8vINCS0YvRgNCw0LbQtdC90LjQtSwg0LrQvtGC0L7RgNC+0LUg0YHQvtC+0YLQstC10YLRgdGC0LLRg9C10YIg0YLQvtC70YzQutC+INGB0L7QutGA0LDRidGR0L3QvdGL0Lwg0YTQvtGA0LzQsNC8XG4gICAgICAgIG1vbnRoc1Nob3J0U3RyaWN0UmVnZXg6IC9eKNGP0L3QslxcLnzRhNC10LLRgD9cXC580LzQsNGAW9GCLl180LDQv9GAXFwufNC80LBb0Y/QuV180LjRjtC9W9GM0Y8uXXzQuNGO0Ltb0YzRjy5dfNCw0LLQs1xcLnzRgdC10L3Rgj9cXC580L7QutGCXFwufNC90L7Rj9CxP1xcLnzQtNC10LpcXC4pL2ksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0g6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZINCzLicsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSDQsy4sIEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZINCzLiwgSDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW9Ch0LXQs9C+0LTQvdGPLCDQsl0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vQl9Cw0LLRgtGA0LAsINCyXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW9CS0YfQtdGA0LAsINCyXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogZnVuY3Rpb24gKG5vdykge1xuICAgICAgICAgICAgICAgIGlmIChub3cud2VlaygpICE9PSB0aGlzLndlZWsoKSkge1xuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHRoaXMuZGF5KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1vQkiDRgdC70LXQtNGD0Y7RidC10LVdIGRkZGQsIFvQsl0gTFQnO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW9CSINGB0LvQtdC00YPRjtGJ0LjQuV0gZGRkZCwgW9CyXSBMVCc7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdb0JIg0YHQu9C10LTRg9GO0YnRg9GOXSBkZGRkLCBb0LJdIExUJztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmRheSgpID09PSAyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1vQktC+XSBkZGRkLCBb0LJdIExUJztcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW9CSXSBkZGRkLCBb0LJdIExUJztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYXN0V2VlazogZnVuY3Rpb24gKG5vdykge1xuICAgICAgICAgICAgICAgIGlmIChub3cud2VlaygpICE9PSB0aGlzLndlZWsoKSkge1xuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHRoaXMuZGF5KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1vQkiDQv9GA0L7RiNC70L7QtV0gZGRkZCwgW9CyXSBMVCc7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdb0JIg0L/RgNC+0YjQu9GL0LldIGRkZGQsIFvQsl0gTFQnO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW9CSINC/0YDQvtGI0LvRg9GOXSBkZGRkLCBb0LJdIExUJztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmRheSgpID09PSAyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1vQktC+XSBkZGRkLCBb0LJdIExUJztcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW9CSXSBkZGRkLCBb0LJdIExUJztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ9GH0LXRgNC10LcgJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzINC90LDQt9Cw0LQnLFxuICAgICAgICAgICAgczogJ9C90LXRgdC60L7Qu9GM0LrQviDRgdC10LrRg9C90LQnLFxuICAgICAgICAgICAgc3M6IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgICAgICBtOiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICAgICAgbW06IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgICAgICBoOiAn0YfQsNGBJyxcbiAgICAgICAgICAgIGhoOiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICAgICAgZDogJ9C00LXQvdGMJyxcbiAgICAgICAgICAgIGRkOiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICAgICAgTTogJ9C80LXRgdGP0YYnLFxuICAgICAgICAgICAgTU06IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgICAgICB5OiAn0LPQvtC0JyxcbiAgICAgICAgICAgIHl5OiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv0L3QvtGH0Lh80YPRgtGA0LB80LTQvdGPfNCy0LXRh9C10YDQsC9pLFxuICAgICAgICBpc1BNOiBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgICAgIHJldHVybiAvXijQtNC90Y980LLQtdGH0LXRgNCwKSQvLnRlc3QoaW5wdXQpO1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCA0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfQvdC+0YfQuCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxMikge1xuICAgICAgICAgICAgICAgIHJldHVybiAn0YPRgtGA0LAnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9C00L3Rjyc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn0LLQtdGH0LXRgNCwJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9LSjQuXzQs9C+fNGPKS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIsIHBlcmlvZCkge1xuICAgICAgICAgICAgc3dpdGNoIChwZXJpb2QpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdNJzpcbiAgICAgICAgICAgICAgICBjYXNlICdkJzpcbiAgICAgICAgICAgICAgICBjYXNlICdEREQnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJy3QuSc7XG4gICAgICAgICAgICAgICAgY2FzZSAnRCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnLdCz0L4nO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3cnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ1cnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJy3Rjyc7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJ1O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IFNpbmRoaSBbc2RdXG4vLyEgYXV0aG9yIDogTmFyYWluIFNhZ2FyIDogaHR0cHM6Ly9naXRodWIuY29tL25hcmFpbnNhZ2FyXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgbW9udGhzID0gW1xuICAgICAgICAgICAgJ9is2YbZiNix2YonLFxuICAgICAgICAgICAgJ9mB2YrYqNix2YjYsdmKJyxcbiAgICAgICAgICAgICfZhdin2LHahicsXG4gICAgICAgICAgICAn2KfZvtix2YrZhCcsXG4gICAgICAgICAgICAn2YXYptmKJyxcbiAgICAgICAgICAgICfYrNmI2YYnLFxuICAgICAgICAgICAgJ9is2YjZhNin2KHZkCcsXG4gICAgICAgICAgICAn2KLar9iz2b0nLFxuICAgICAgICAgICAgJ9iz2YrZvtm92YXYqNixJyxcbiAgICAgICAgICAgICfYotqq2b3ZiNio2LEnLFxuICAgICAgICAgICAgJ9mG2YjZhdio2LEnLFxuICAgICAgICAgICAgJ9qK2LPZhdio2LEnLFxuICAgICAgICBdLFxuICAgICAgICBkYXlzID0gWyfYotqG2LEnLCAn2LPZiNmF2LEnLCAn2Kfasdin2LHZiCcsICfYp9ix2KjYuScsICfYrtmF2YrYsycsICfYrNmF2LknLCAn2ofZhtqH2LEnXTtcblxuICAgIHZhciBzZCA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3NkJywge1xuICAgICAgICBtb250aHM6IG1vbnRocyxcbiAgICAgICAgbW9udGhzU2hvcnQ6IG1vbnRocyxcbiAgICAgICAgd2Vla2RheXM6IGRheXMsXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6IGRheXMsXG4gICAgICAgIHdlZWtkYXlzTWluOiBkYXlzLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRk2IwgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv2LXYqNitfNi02KfZhS8sXG4gICAgICAgIGlzUE06IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuICfYtNin2YUnID09PSBpbnB1dDtcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyIDwgMTIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9i12KjYrSc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gJ9i02KfZhSc7XG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW9in2oRdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb2LPagNin2rvZil0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFvYp9qz2YrZhiDZh9mB2KrZiiDYqtmKXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW9qq2KfZhNmH2YddIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW9qv2LLYsdmK2YQg2YfZgdiq2YpdIGRkZGQgW9iq2YpdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnJXMg2b7ZiNihJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyDYp9qzJyxcbiAgICAgICAgICAgIHM6ICfahtmG2K8g2LPZitqq2YbaiicsXG4gICAgICAgICAgICBzczogJyVkINiz2YraqtmG2oonLFxuICAgICAgICAgICAgbTogJ9mH2qog2YXZhtm9JyxcbiAgICAgICAgICAgIG1tOiAnJWQg2YXZhtm9JyxcbiAgICAgICAgICAgIGg6ICfZh9qqINqq2YTYp9qqJyxcbiAgICAgICAgICAgIGhoOiAnJWQg2qrZhNin2qonLFxuICAgICAgICAgICAgZDogJ9mH2qog2o/ZitmG2YfZhicsXG4gICAgICAgICAgICBkZDogJyVkINqP2YrZhtmH2YYnLFxuICAgICAgICAgICAgTTogJ9mH2qog2YXZh9mK2YbZiCcsXG4gICAgICAgICAgICBNTTogJyVkINmF2YfZitmG2KcnLFxuICAgICAgICAgICAgeTogJ9mH2qog2LPYp9mEJyxcbiAgICAgICAgICAgIHl5OiAnJWQg2LPYp9mEJyxcbiAgICAgICAgfSxcbiAgICAgICAgcHJlcGFyc2U6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgv2IwvZywgJywnKTtcbiAgICAgICAgfSxcbiAgICAgICAgcG9zdGZvcm1hdDogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC8sL2csICfYjCcpO1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gc2Q7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogTm9ydGhlcm4gU2FtaSBbc2VdXG4vLyEgYXV0aG9ycyA6IELDpXJkIFJvbHN0YWQgSGVucmlrc2VuIDogaHR0cHM6Ly9naXRodWIuY29tL2thcmFtZWxsXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgc2UgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdzZScsIHtcbiAgICAgICAgbW9udGhzOiAnb8SRxJFhamFnZW3DoW5udV9ndW92dmFtw6FubnVfbmp1a8SNYW3DoW5udV9jdW/Fi29tw6FubnVfbWllc3NlbcOhbm51X2dlYXNzZW3DoW5udV9zdW9pZG5lbcOhbm51X2JvcmdlbcOhbm51X8SNYWvEjWFtw6FubnVfZ29sZ2dvdG3DoW5udV9za8OhYm1hbcOhbm51X2p1b3ZsYW3DoW5udScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdvxJHEkWpfZ3Vvdl9uanVrX2N1b19taWVzX2dlYXNfc3VvaV9ib3JnX8SNYWvEjV9nb2xnX3Nrw6FiX2p1b3YnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzOiAnc290bmFiZWFpdmlfdnVvc3PDoXJnYV9tYcWLxYtlYsOhcmdhX2dhc2thdmFoa2t1X2R1b3Jhc3RhdF9iZWFyamFkYXRfbMOhdnZhcmRhdCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ3NvdG5fdnVvc19tYcWLX2dhc2tfZHVvcl9iZWFyX2zDoXYnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnc192X21fZ19kX2JfTCcuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEw6ICdNTU1NIEQuIFtiLl0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdNTU1NIEQuIFtiLl0gWVlZWSBbdGkuXSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgTU1NTSBELiBbYi5dIFlZWVkgW3RpLl0gSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tvdG5lIHRpXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW2lodHRpbiB0aV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFt0aV0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tpa3RlIHRpXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1tvdmRkaXRdIGRkZGQgW3RpXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVzIGdlYcW+ZXMnLFxuICAgICAgICAgICAgcGFzdDogJ21hxYtpdCAlcycsXG4gICAgICAgICAgICBzOiAnbW9hZGRlIHNla3VuZGRhdCcsXG4gICAgICAgICAgICBzczogJyVkIHNla3VuZGRhdCcsXG4gICAgICAgICAgICBtOiAnb2t0YSBtaW51aHRhJyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWludWh0YXQnLFxuICAgICAgICAgICAgaDogJ29rdGEgZGlpbW11JyxcbiAgICAgICAgICAgIGhoOiAnJWQgZGlpbW11dCcsXG4gICAgICAgICAgICBkOiAnb2t0YSBiZWFpdmknLFxuICAgICAgICAgICAgZGQ6ICclZCBiZWFpdnZpdCcsXG4gICAgICAgICAgICBNOiAnb2t0YSBtw6FubnUnLFxuICAgICAgICAgICAgTU06ICclZCBtw6FudXQnLFxuICAgICAgICAgICAgeTogJ29rdGEgamFoa2knLFxuICAgICAgICAgICAgeXk6ICclZCBqYWdpdCcsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfVxcLi8sXG4gICAgICAgIG9yZGluYWw6ICclZC4nLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gc2U7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogU2luaGFsZXNlIFtzaV1cbi8vISBhdXRob3IgOiBTYW1wYXRoIFNpdGluYW1hbHV3YSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9zYW1wYXRoc3Jpc1xuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgLypqc2hpbnQgLVcxMDAqL1xuICAgIHZhciBzaSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3NpJywge1xuICAgICAgICBtb250aHM6ICfgtqLgtrHgt4Dgt4/gtrvgt5Jf4La04LeZ4La24La74LeA4LeP4La74LeSX+C2uOC3j+C2u+C3iuC2reC3lF/gtoXgtrTgt4rigI3gtrvgt5rgtr3gt4pf4La44LeQ4La64LeSX+C2ouC3luC2seC3kl/gtqLgt5bgtr3gt5Jf4LaF4Lac4Led4LeD4LeK4Lat4LeUX+C3g+C3kOC2tOC3iuC2reC3kOC2uOC3iuC2tuC2u+C3il/gtpTgtprgt4rgtq3gt53gtrbgtrvgt4pf4Lax4Lec4LeA4LeQ4La44LeK4La24La74LeKX+C2r+C3meC3g+C3kOC2uOC3iuC2tuC2u+C3iicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICfgtqLgtrFf4La04LeZ4La2X+C2uOC3j+C2u+C3il/gtoXgtrTgt4pf4La44LeQ4La64LeSX+C2ouC3luC2seC3kl/gtqLgt5bgtr3gt5Jf4LaF4Lac4LedX+C3g+C3kOC2tOC3il/gtpTgtprgt4pf4Lax4Lec4LeA4LeQX+C2r+C3meC3g+C3kCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXM6ICfgtongtrvgt5Lgtq/gt49f4LeD4Laz4LeU4Lav4LePX+C2heC2n+C3hOC2u+C3lOC3gOC3j+C2r+C3j1/gtrbgtq/gt4/gtq/gt49f4La24LeK4oCN4La74LeE4LeD4LeK4La04Lat4LeS4Lax4LeK4Lav4LePX+C3g+C3kuC2muC3lOC2u+C3j+C2r+C3j1/gt4Pgt5ngtrHgt4Pgt5Tgtrvgt4/gtq/gt48nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfgtongtrvgt5Jf4LeD4Laz4LeUX+C2heC2n1/gtrbgtq/gt49f4La24LeK4oCN4La74LeEX+C3g+C3kuC2muC3lF/gt4Pgt5ngtrEnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn4LaJX+C3g1/gtoVf4La2X+C2tuC3iuKAjeC2u1/gt4Pgt5Jf4LeD4LeZJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ2EgaDptbScsXG4gICAgICAgICAgICBMVFM6ICdhIGg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ1lZWVkvTU0vREQnLFxuICAgICAgICAgICAgTEw6ICdZWVlZIE1NTU0gRCcsXG4gICAgICAgICAgICBMTEw6ICdZWVlZIE1NTU0gRCwgYSBoOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdZWVlZIE1NTU0gRCBb4LeA4LeQ4Lax4LeSXSBkZGRkLCBhIGg6bW06c3MnLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vgtoXgtq9dIExUW+C2p10nLFxuICAgICAgICAgICAgbmV4dERheTogJ1vgt4Tgt5ngtqddIExUW+C2p10nLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIExUW+C2p10nLFxuICAgICAgICAgICAgbGFzdERheTogJ1vgtorgtrrgt5pdIExUW+C2p10nLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdb4La04LeD4LeU4Lac4LeS4La6XSBkZGRkIExUW+C2p10nLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICclc+C2muC3kuC2seC3iicsXG4gICAgICAgICAgICBwYXN0OiAnJXPgtprgtqcg4La04LeZ4La7JyxcbiAgICAgICAgICAgIHM6ICfgtq3gtq3gt4rgtrTgtrsg4Laa4LeS4LeE4LeS4La04La6JyxcbiAgICAgICAgICAgIHNzOiAn4Lat4Lat4LeK4La04La7ICVkJyxcbiAgICAgICAgICAgIG06ICfgtrjgt5LgtrHgt5Lgtq3gt4rgtq3gt5Tgt4AnLFxuICAgICAgICAgICAgbW06ICfgtrjgt5LgtrHgt5Lgtq3gt4rgtq3gt5QgJWQnLFxuICAgICAgICAgICAgaDogJ+C2tOC3kOC2uicsXG4gICAgICAgICAgICBoaDogJ+C2tOC3kOC2uiAlZCcsXG4gICAgICAgICAgICBkOiAn4Lav4LeS4Lax4La6JyxcbiAgICAgICAgICAgIGRkOiAn4Lav4LeS4LaxICVkJyxcbiAgICAgICAgICAgIE06ICfgtrjgt4/gt4PgtronLFxuICAgICAgICAgICAgTU06ICfgtrjgt4/gt4MgJWQnLFxuICAgICAgICAgICAgeTogJ+C3gOC3g+C2uycsXG4gICAgICAgICAgICB5eTogJ+C3gOC3g+C2uyAlZCcsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfSDgt4Dgt5DgtrHgt5IvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJyDgt4Dgt5DgtrHgt5InO1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv4La04LeZ4La7IOC3gOC2u+C3lHzgtrTgt4Pgt4og4LeA4La74LeUfOC2tOC3mS7gt4B84La0LuC3gC4vLFxuICAgICAgICBpc1BNOiBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnB1dCA9PT0gJ+C2tC7gt4AuJyB8fCBpbnB1dCA9PT0gJ+C2tOC3g+C3iiDgt4Dgtrvgt5QnO1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXJzLCBtaW51dGVzLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91cnMgPiAxMSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpc0xvd2VyID8gJ+C2tC7gt4AuJyA6ICfgtrTgt4Pgt4og4LeA4La74LeUJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzTG93ZXIgPyAn4La04LeZLuC3gC4nIDogJ+C2tOC3meC2uyDgt4Dgtrvgt5QnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHNpO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IFNsb3ZhayBbc2tdXG4vLyEgYXV0aG9yIDogTWFydGluIE1pbmthIDogaHR0cHM6Ly9naXRodWIuY29tL2syc1xuLy8hIGJhc2VkIG9uIHdvcmsgb2YgcGV0cmJlbGEgOiBodHRwczovL2dpdGh1Yi5jb20vcGV0cmJlbGFcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBtb250aHMgPSAnamFudcOhcl9mZWJydcOhcl9tYXJlY19hcHLDrWxfbcOhal9qw7puX2rDumxfYXVndXN0X3NlcHRlbWJlcl9va3TDs2Jlcl9ub3ZlbWJlcl9kZWNlbWJlcicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQgPSAnamFuX2ZlYl9tYXJfYXByX23DoWpfasO6bl9qw7psX2F1Z19zZXBfb2t0X25vdl9kZWMnLnNwbGl0KCdfJyk7XG4gICAgZnVuY3Rpb24gcGx1cmFsKG4pIHtcbiAgICAgICAgcmV0dXJuIG4gPiAxICYmIG4gPCA1O1xuICAgIH1cbiAgICBmdW5jdGlvbiB0cmFuc2xhdGUobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXksIGlzRnV0dXJlKSB7XG4gICAgICAgIHZhciByZXN1bHQgPSBudW1iZXIgKyAnICc7XG4gICAgICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICAgICAgICBjYXNlICdzJzogLy8gYSBmZXcgc2Vjb25kcyAvIGluIGEgZmV3IHNlY29uZHMgLyBhIGZldyBzZWNvbmRzIGFnb1xuICAgICAgICAgICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ3DDoXIgc2Vrw7puZCcgOiAncMOhciBzZWt1bmRhbWknO1xuICAgICAgICAgICAgY2FzZSAnc3MnOiAvLyA5IHNlY29uZHMgLyBpbiA5IHNlY29uZHMgLyA5IHNlY29uZHMgYWdvXG4gICAgICAgICAgICAgICAgaWYgKHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArIChwbHVyYWwobnVtYmVyKSA/ICdzZWt1bmR5JyA6ICdzZWvDum5kJyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArICdzZWt1bmRhbWknO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ20nOiAvLyBhIG1pbnV0ZSAvIGluIGEgbWludXRlIC8gYSBtaW51dGUgYWdvXG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggPyAnbWluw7p0YScgOiBpc0Z1dHVyZSA/ICdtaW7DunR1JyA6ICdtaW7DunRvdSc7XG4gICAgICAgICAgICBjYXNlICdtbSc6IC8vIDkgbWludXRlcyAvIGluIDkgbWludXRlcyAvIDkgbWludXRlcyBhZ29cbiAgICAgICAgICAgICAgICBpZiAod2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgKHBsdXJhbChudW1iZXIpID8gJ21pbsO6dHknIDogJ21pbsO6dCcpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAnbWluw7p0YW1pJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdoJzogLy8gYW4gaG91ciAvIGluIGFuIGhvdXIgLyBhbiBob3VyIGFnb1xuICAgICAgICAgICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4ID8gJ2hvZGluYScgOiBpc0Z1dHVyZSA/ICdob2RpbnUnIDogJ2hvZGlub3UnO1xuICAgICAgICAgICAgY2FzZSAnaGgnOiAvLyA5IGhvdXJzIC8gaW4gOSBob3VycyAvIDkgaG91cnMgYWdvXG4gICAgICAgICAgICAgICAgaWYgKHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArIChwbHVyYWwobnVtYmVyKSA/ICdob2RpbnknIDogJ2hvZMOtbicpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAnaG9kaW5hbWknO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ2QnOiAvLyBhIGRheSAvIGluIGEgZGF5IC8gYSBkYXkgYWdvXG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAnZGXFiCcgOiAnZMWIb20nO1xuICAgICAgICAgICAgY2FzZSAnZGQnOiAvLyA5IGRheXMgLyBpbiA5IGRheXMgLyA5IGRheXMgYWdvXG4gICAgICAgICAgICAgICAgaWYgKHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArIChwbHVyYWwobnVtYmVyKSA/ICdkbmknIDogJ2Ruw60nKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgJ2TFiGFtaSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnTSc6IC8vIGEgbW9udGggLyBpbiBhIG1vbnRoIC8gYSBtb250aCBhZ29cbiAgICAgICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICdtZXNpYWMnIDogJ21lc2lhY29tJztcbiAgICAgICAgICAgIGNhc2UgJ01NJzogLy8gOSBtb250aHMgLyBpbiA5IG1vbnRocyAvIDkgbW9udGhzIGFnb1xuICAgICAgICAgICAgICAgIGlmICh3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAocGx1cmFsKG51bWJlcikgPyAnbWVzaWFjZScgOiAnbWVzaWFjb3YnKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgJ21lc2lhY21pJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICd5JzogLy8gYSB5ZWFyIC8gaW4gYSB5ZWFyIC8gYSB5ZWFyIGFnb1xuICAgICAgICAgICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ3JvaycgOiAncm9rb20nO1xuICAgICAgICAgICAgY2FzZSAneXknOiAvLyA5IHllYXJzIC8gaW4gOSB5ZWFycyAvIDkgeWVhcnMgYWdvXG4gICAgICAgICAgICAgICAgaWYgKHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArIChwbHVyYWwobnVtYmVyKSA/ICdyb2t5JyA6ICdyb2tvdicpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAncm9rbWknO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhciBzayA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3NrJywge1xuICAgICAgICBtb250aHM6IG1vbnRocyxcbiAgICAgICAgbW9udGhzU2hvcnQ6IG1vbnRoc1Nob3J0LFxuICAgICAgICB3ZWVrZGF5czogJ25lZGXEvmFfcG9uZGVsb2tfdXRvcm9rX3N0cmVkYV/FoXR2cnRva19waWF0b2tfc29ib3RhJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnbmVfcG9fdXRfc3RfxaF0X3BpX3NvJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ25lX3BvX3V0X3N0X8WhdF9waV9zbycuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSDptbScsXG4gICAgICAgICAgICBMVFM6ICdIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRC4gTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QuIE1NTU0gWVlZWSBIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkIEQuIE1NTU0gWVlZWSBIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbZG5lcyBvXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW3phanRyYSBvXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAodGhpcy5kYXkoKSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1t2IG5lZGXEvnUgb10gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3ZdIGRkZGQgW29dIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbdiBzdHJlZHUgb10gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1t2byDFoXR2cnRvayBvXSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3YgcGlhdG9rIG9dIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbdiBzb2JvdHUgb10gTFQnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYXN0RGF5OiAnW3bEjWVyYSBvXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAodGhpcy5kYXkoKSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1ttaW51bMO6IG5lZGXEvnUgb10gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW21pbnVsw71dIGRkZGQgW29dIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbbWludWzDuiBzdHJlZHUgb10gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW21pbnVsw71dIGRkZGQgW29dIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbbWludWzDuiBzb2JvdHUgb10gTFQnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ3phICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICdwcmVkICVzJyxcbiAgICAgICAgICAgIHM6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIHNzOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBtOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBtbTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgaDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgaGg6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGQ6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGRkOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBNOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBNTTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgeTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgeXk6IHRyYW5zbGF0ZSxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9XFwuLyxcbiAgICAgICAgb3JkaW5hbDogJyVkLicsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBzaztcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBTbG92ZW5pYW4gW3NsXVxuLy8hIGF1dGhvciA6IFJvYmVydCBTZWRvdsWhZWsgOiBodHRwczovL2dpdGh1Yi5jb20vc2Vkb3ZzZWtcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIGZ1bmN0aW9uIHByb2Nlc3NSZWxhdGl2ZVRpbWUobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXksIGlzRnV0dXJlKSB7XG4gICAgICAgIHZhciByZXN1bHQgPSBudW1iZXIgKyAnICc7XG4gICAgICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICAgICAgICBjYXNlICdzJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZVxuICAgICAgICAgICAgICAgICAgICA/ICduZWthaiBzZWt1bmQnXG4gICAgICAgICAgICAgICAgICAgIDogJ25la2FqIHNla3VuZGFtaSc7XG4gICAgICAgICAgICBjYXNlICdzcyc6XG4gICAgICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gd2l0aG91dFN1ZmZpeCA/ICdzZWt1bmRvJyA6ICdzZWt1bmRpJztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG51bWJlciA9PT0gMikge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gd2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICdzZWt1bmRpJyA6ICdzZWt1bmRhaCc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudW1iZXIgPCA1KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSB3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ3Nla3VuZGUnIDogJ3Nla3VuZGFoJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ3Nla3VuZCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICBjYXNlICdtJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCA/ICdlbmEgbWludXRhJyA6ICdlbm8gbWludXRvJztcbiAgICAgICAgICAgIGNhc2UgJ21tJzpcbiAgICAgICAgICAgICAgICBpZiAobnVtYmVyID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSB3aXRob3V0U3VmZml4ID8gJ21pbnV0YScgOiAnbWludXRvJztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG51bWJlciA9PT0gMikge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gd2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICdtaW51dGknIDogJ21pbnV0YW1hJztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG51bWJlciA8IDUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAnbWludXRlJyA6ICdtaW51dGFtaSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAnbWludXQnIDogJ21pbnV0YW1pJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIGNhc2UgJ2gnOlxuICAgICAgICAgICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4ID8gJ2VuYSB1cmEnIDogJ2VubyB1cm8nO1xuICAgICAgICAgICAgY2FzZSAnaGgnOlxuICAgICAgICAgICAgICAgIGlmIChudW1iZXIgPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IHdpdGhvdXRTdWZmaXggPyAndXJhJyA6ICd1cm8nO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobnVtYmVyID09PSAyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSB3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ3VyaScgOiAndXJhbWEnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobnVtYmVyIDwgNSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gd2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICd1cmUnIDogJ3VyYW1pJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gd2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICd1cicgOiAndXJhbWknO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgY2FzZSAnZCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAnZW4gZGFuJyA6ICdlbmltIGRuZW0nO1xuICAgICAgICAgICAgY2FzZSAnZGQnOlxuICAgICAgICAgICAgICAgIGlmIChudW1iZXIgPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAnZGFuJyA6ICdkbmVtJztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG51bWJlciA9PT0gMikge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gd2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICdkbmknIDogJ2RuZXZvbWEnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSB3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ2RuaScgOiAnZG5ldmknO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgY2FzZSAnTSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAnZW4gbWVzZWMnIDogJ2VuaW0gbWVzZWNlbSc7XG4gICAgICAgICAgICBjYXNlICdNTSc6XG4gICAgICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gd2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICdtZXNlYycgOiAnbWVzZWNlbSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudW1iZXIgPT09IDIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAnbWVzZWNhJyA6ICdtZXNlY2VtYSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudW1iZXIgPCA1KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSB3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ21lc2VjZScgOiAnbWVzZWNpJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gd2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICdtZXNlY2V2JyA6ICdtZXNlY2knO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgY2FzZSAneSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAnZW5vIGxldG8nIDogJ2VuaW0gbGV0b20nO1xuICAgICAgICAgICAgY2FzZSAneXknOlxuICAgICAgICAgICAgICAgIGlmIChudW1iZXIgPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAnbGV0bycgOiAnbGV0b20nO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobnVtYmVyID09PSAyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSB3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ2xldGknIDogJ2xldG9tYSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudW1iZXIgPCA1KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSB3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ2xldGEnIDogJ2xldGknO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSB3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ2xldCcgOiAnbGV0aSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgc2wgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdzbCcsIHtcbiAgICAgICAgbW9udGhzOiAnamFudWFyX2ZlYnJ1YXJfbWFyZWNfYXByaWxfbWFqX2p1bmlqX2p1bGlqX2F2Z3VzdF9zZXB0ZW1iZXJfb2t0b2Jlcl9ub3ZlbWJlcl9kZWNlbWJlcicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdqYW4uX2ZlYi5fbWFyLl9hcHIuX21hai5fanVuLl9qdWwuX2F2Zy5fc2VwLl9va3QuX25vdi5fZGVjLicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXM6ICduZWRlbGphX3BvbmVkZWxqZWtfdG9yZWtfc3JlZGFfxI1ldHJ0ZWtfcGV0ZWtfc29ib3RhJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnbmVkLl9wb24uX3Rvci5fc3JlLl/EjWV0Ll9wZXQuX3NvYi4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnbmVfcG9fdG9fc3JfxI1lX3BlX3NvJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0g6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQuIE1NLiBZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRC4gTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QuIE1NTU0gWVlZWSBIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBELiBNTU1NIFlZWVkgSDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW2RhbmVzIG9iXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW2p1dHJpIG9iXSBMVCcsXG5cbiAgICAgICAgICAgIG5leHRXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoICh0aGlzLmRheSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3ZdIFtuZWRlbGpvXSBbb2JdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbdl0gW3NyZWRvXSBbb2JdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbdl0gW3NvYm90b10gW29iXSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3ZdIGRkZGQgW29iXSBMVCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbdsSNZXJhaiBvYl0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHRoaXMuZGF5KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbcHJlasWhbmpvXSBbbmVkZWxqb10gW29iXSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3ByZWrFoW5qb10gW3NyZWRvXSBbb2JdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbcHJlasWhbmpvXSBbc29ib3RvXSBbb2JdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbcHJlasWhbmppXSBkZGRkIFtvYl0gTFQnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ8SNZXogJXMnLFxuICAgICAgICAgICAgcGFzdDogJ3ByZWQgJXMnLFxuICAgICAgICAgICAgczogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIHNzOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgbTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIG1tOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgaDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIGhoOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgZDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIGRkOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgTTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIE1NOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgeTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIHl5OiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn1cXC4vLFxuICAgICAgICBvcmRpbmFsOiAnJWQuJyxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNywgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gN3RoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHNsO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEFsYmFuaWFuIFtzcV1cbi8vISBhdXRob3IgOiBGbGFrw6tyaW0gSXNtYW5pIDogaHR0cHM6Ly9naXRodWIuY29tL2ZsYWtlcmltaVxuLy8hIGF1dGhvciA6IE1lbmVsaW9uIEVsZW5zw7psZSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9PaXJlXG4vLyEgYXV0aG9yIDogT2VyZCBDdWthbGxhIDogaHR0cHM6Ly9naXRodWIuY29tL29lcmRcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBzcSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3NxJywge1xuICAgICAgICBtb250aHM6ICdKYW5hcl9TaGt1cnRfTWFyc19QcmlsbF9NYWpfUWVyc2hvcl9Lb3JyaWtfR3VzaHRfU2h0YXRvcl9UZXRvcl9Ow6tudG9yX0RoamV0b3InLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnSmFuX1Noa19NYXJfUHJpX01hal9RZXJfS29yX0d1c19TaHRfVGV0X07Dq25fRGhqJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ0UgRGllbF9FIEjDq27Dq19FIE1hcnTDq19FIE3Dq3JrdXLDq19FIEVuanRlX0UgUHJlbXRlX0UgU2h0dW7Dqycuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ0RpZV9Iw6tuX01hcl9Nw6tyX0Vual9QcmVfU2h0Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ0RfSF9NYV9Nw6tfRV9QX1NoJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC9QRHxNRC8sXG4gICAgICAgIGlzUE06IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuIGlucHV0LmNoYXJBdCgwKSA9PT0gJ00nO1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXJzLCBtaW51dGVzLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICByZXR1cm4gaG91cnMgPCAxMiA/ICdQRCcgOiAnTUQnO1xuICAgICAgICB9LFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW1NvdCBuw6tdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbTmVzw6tyIG7Dq10gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFtuw6tdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbRGplIG7Dq10gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdkZGRkIFtlIGthbHVhciBuw6tdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnbsOrICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyBtw6sgcGFyw6snLFxuICAgICAgICAgICAgczogJ2Rpc2Egc2Vrb25kYScsXG4gICAgICAgICAgICBzczogJyVkIHNla29uZGEnLFxuICAgICAgICAgICAgbTogJ25qw6sgbWludXTDqycsXG4gICAgICAgICAgICBtbTogJyVkIG1pbnV0YScsXG4gICAgICAgICAgICBoOiAnbmrDqyBvcsOrJyxcbiAgICAgICAgICAgIGhoOiAnJWQgb3LDqycsXG4gICAgICAgICAgICBkOiAnbmrDqyBkaXTDqycsXG4gICAgICAgICAgICBkZDogJyVkIGRpdMOrJyxcbiAgICAgICAgICAgIE06ICduasOrIG11YWonLFxuICAgICAgICAgICAgTU06ICclZCBtdWFqJyxcbiAgICAgICAgICAgIHk6ICduasOrIHZpdCcsXG4gICAgICAgICAgICB5eTogJyVkIHZpdGUnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn1cXC4vLFxuICAgICAgICBvcmRpbmFsOiAnJWQuJyxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHNxO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IFNlcmJpYW4gW3NyXVxuLy8hIGF1dGhvciA6IE1pbGFuIEphbmHEjWtvdmnEhzxtaWxhbmphbmFja292aWNAZ21haWwuY29tPiA6IGh0dHBzOi8vZ2l0aHViLmNvbS9taWxhbi1qXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgdHJhbnNsYXRvciA9IHtcbiAgICAgICAgd29yZHM6IHtcbiAgICAgICAgICAgIC8vRGlmZmVyZW50IGdyYW1tYXRpY2FsIGNhc2VzXG4gICAgICAgICAgICBzczogWydzZWt1bmRhJywgJ3Nla3VuZGUnLCAnc2VrdW5kaSddLFxuICAgICAgICAgICAgbTogWydqZWRhbiBtaW51dCcsICdqZWRuZSBtaW51dGUnXSxcbiAgICAgICAgICAgIG1tOiBbJ21pbnV0JywgJ21pbnV0ZScsICdtaW51dGEnXSxcbiAgICAgICAgICAgIGg6IFsnamVkYW4gc2F0JywgJ2plZG5vZyBzYXRhJ10sXG4gICAgICAgICAgICBoaDogWydzYXQnLCAnc2F0YScsICdzYXRpJ10sXG4gICAgICAgICAgICBkZDogWydkYW4nLCAnZGFuYScsICdkYW5hJ10sXG4gICAgICAgICAgICBNTTogWydtZXNlYycsICdtZXNlY2EnLCAnbWVzZWNpJ10sXG4gICAgICAgICAgICB5eTogWydnb2RpbmEnLCAnZ29kaW5lJywgJ2dvZGluYSddLFxuICAgICAgICB9LFxuICAgICAgICBjb3JyZWN0R3JhbW1hdGljYWxDYXNlOiBmdW5jdGlvbiAobnVtYmVyLCB3b3JkS2V5KSB7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyID09PSAxXG4gICAgICAgICAgICAgICAgPyB3b3JkS2V5WzBdXG4gICAgICAgICAgICAgICAgOiBudW1iZXIgPj0gMiAmJiBudW1iZXIgPD0gNFxuICAgICAgICAgICAgICAgID8gd29yZEtleVsxXVxuICAgICAgICAgICAgICAgIDogd29yZEtleVsyXTtcbiAgICAgICAgfSxcbiAgICAgICAgdHJhbnNsYXRlOiBmdW5jdGlvbiAobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXkpIHtcbiAgICAgICAgICAgIHZhciB3b3JkS2V5ID0gdHJhbnNsYXRvci53b3Jkc1trZXldO1xuICAgICAgICAgICAgaWYgKGtleS5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCA/IHdvcmRLZXlbMF0gOiB3b3JkS2V5WzFdO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICBudW1iZXIgK1xuICAgICAgICAgICAgICAgICAgICAnICcgK1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdG9yLmNvcnJlY3RHcmFtbWF0aWNhbENhc2UobnVtYmVyLCB3b3JkS2V5KVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgfTtcblxuICAgIHZhciBzciA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3NyJywge1xuICAgICAgICBtb250aHM6ICdqYW51YXJfZmVicnVhcl9tYXJ0X2FwcmlsX21hal9qdW5fanVsX2F2Z3VzdF9zZXB0ZW1iYXJfb2t0b2Jhcl9ub3ZlbWJhcl9kZWNlbWJhcicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdqYW4uX2ZlYi5fbWFyLl9hcHIuX21hal9qdW5fanVsX2F2Zy5fc2VwLl9va3QuX25vdi5fZGVjLicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXM6ICduZWRlbGphX3BvbmVkZWxqYWtfdXRvcmFrX3NyZWRhX8SNZXR2cnRha19wZXRha19zdWJvdGEnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICduZWQuX3Bvbi5fdXRvLl9zcmUuX8SNZXQuX3BldC5fc3ViLicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICduZV9wb191dF9zcl/EjWVfcGVfc3UnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSDptbScsXG4gICAgICAgICAgICBMVFM6ICdIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRC4gTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QuIE1NTU0gWVlZWSBIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBELiBNTU1NIFlZWVkgSDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW2RhbmFzIHVdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbc3V0cmEgdV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHRoaXMuZGF5KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbdV0gW25lZGVsanVdIFt1XSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3VdIFtzcmVkdV0gW3VdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbdV0gW3N1Ym90dV0gW3VdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbdV0gZGRkZCBbdV0gTFQnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYXN0RGF5OiAnW2p1xI1lIHVdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdmFyIGxhc3RXZWVrRGF5cyA9IFtcbiAgICAgICAgICAgICAgICAgICAgJ1twcm/FoWxlXSBbbmVkZWxqZV0gW3VdIExUJyxcbiAgICAgICAgICAgICAgICAgICAgJ1twcm/FoWxvZ10gW3BvbmVkZWxqa2FdIFt1XSBMVCcsXG4gICAgICAgICAgICAgICAgICAgICdbcHJvxaFsb2ddIFt1dG9ya2FdIFt1XSBMVCcsXG4gICAgICAgICAgICAgICAgICAgICdbcHJvxaFsZV0gW3NyZWRlXSBbdV0gTFQnLFxuICAgICAgICAgICAgICAgICAgICAnW3Byb8WhbG9nXSBbxI1ldHZydGthXSBbdV0gTFQnLFxuICAgICAgICAgICAgICAgICAgICAnW3Byb8WhbG9nXSBbcGV0a2FdIFt1XSBMVCcsXG4gICAgICAgICAgICAgICAgICAgICdbcHJvxaFsZV0gW3N1Ym90ZV0gW3VdIExUJyxcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIHJldHVybiBsYXN0V2Vla0RheXNbdGhpcy5kYXkoKV07XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICd6YSAlcycsXG4gICAgICAgICAgICBwYXN0OiAncHJlICVzJyxcbiAgICAgICAgICAgIHM6ICduZWtvbGlrbyBzZWt1bmRpJyxcbiAgICAgICAgICAgIHNzOiB0cmFuc2xhdG9yLnRyYW5zbGF0ZSxcbiAgICAgICAgICAgIG06IHRyYW5zbGF0b3IudHJhbnNsYXRlLFxuICAgICAgICAgICAgbW06IHRyYW5zbGF0b3IudHJhbnNsYXRlLFxuICAgICAgICAgICAgaDogdHJhbnNsYXRvci50cmFuc2xhdGUsXG4gICAgICAgICAgICBoaDogdHJhbnNsYXRvci50cmFuc2xhdGUsXG4gICAgICAgICAgICBkOiAnZGFuJyxcbiAgICAgICAgICAgIGRkOiB0cmFuc2xhdG9yLnRyYW5zbGF0ZSxcbiAgICAgICAgICAgIE06ICdtZXNlYycsXG4gICAgICAgICAgICBNTTogdHJhbnNsYXRvci50cmFuc2xhdGUsXG4gICAgICAgICAgICB5OiAnZ29kaW51JyxcbiAgICAgICAgICAgIHl5OiB0cmFuc2xhdG9yLnRyYW5zbGF0ZSxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9XFwuLyxcbiAgICAgICAgb3JkaW5hbDogJyVkLicsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDcsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDd0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBzcjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBTZXJiaWFuIEN5cmlsbGljIFtzci1jeXJsXVxuLy8hIGF1dGhvciA6IE1pbGFuIEphbmHEjWtvdmnEhzxtaWxhbmphbmFja292aWNAZ21haWwuY29tPiA6IGh0dHBzOi8vZ2l0aHViLmNvbS9taWxhbi1qXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgdHJhbnNsYXRvciA9IHtcbiAgICAgICAgd29yZHM6IHtcbiAgICAgICAgICAgIC8vRGlmZmVyZW50IGdyYW1tYXRpY2FsIGNhc2VzXG4gICAgICAgICAgICBzczogWyfRgdC10LrRg9C90LTQsCcsICfRgdC10LrRg9C90LTQtScsICfRgdC10LrRg9C90LTQuCddLFxuICAgICAgICAgICAgbTogWyfRmNC10LTQsNC9INC80LjQvdGD0YInLCAn0ZjQtdC00L3QtSDQvNC40L3Rg9GC0LUnXSxcbiAgICAgICAgICAgIG1tOiBbJ9C80LjQvdGD0YInLCAn0LzQuNC90YPRgtC1JywgJ9C80LjQvdGD0YLQsCddLFxuICAgICAgICAgICAgaDogWyfRmNC10LTQsNC9INGB0LDRgicsICfRmNC10LTQvdC+0LMg0YHQsNGC0LAnXSxcbiAgICAgICAgICAgIGhoOiBbJ9GB0LDRgicsICfRgdCw0YLQsCcsICfRgdCw0YLQuCddLFxuICAgICAgICAgICAgZGQ6IFsn0LTQsNC9JywgJ9C00LDQvdCwJywgJ9C00LDQvdCwJ10sXG4gICAgICAgICAgICBNTTogWyfQvNC10YHQtdGGJywgJ9C80LXRgdC10YbQsCcsICfQvNC10YHQtdGG0LgnXSxcbiAgICAgICAgICAgIHl5OiBbJ9Cz0L7QtNC40L3QsCcsICfQs9C+0LTQuNC90LUnLCAn0LPQvtC00LjQvdCwJ10sXG4gICAgICAgIH0sXG4gICAgICAgIGNvcnJlY3RHcmFtbWF0aWNhbENhc2U6IGZ1bmN0aW9uIChudW1iZXIsIHdvcmRLZXkpIHtcbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgPT09IDFcbiAgICAgICAgICAgICAgICA/IHdvcmRLZXlbMF1cbiAgICAgICAgICAgICAgICA6IG51bWJlciA+PSAyICYmIG51bWJlciA8PSA0XG4gICAgICAgICAgICAgICAgPyB3b3JkS2V5WzFdXG4gICAgICAgICAgICAgICAgOiB3b3JkS2V5WzJdO1xuICAgICAgICB9LFxuICAgICAgICB0cmFuc2xhdGU6IGZ1bmN0aW9uIChudW1iZXIsIHdpdGhvdXRTdWZmaXgsIGtleSkge1xuICAgICAgICAgICAgdmFyIHdvcmRLZXkgPSB0cmFuc2xhdG9yLndvcmRzW2tleV07XG4gICAgICAgICAgICBpZiAoa2V5Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4ID8gd29yZEtleVswXSA6IHdvcmRLZXlbMV07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgIG51bWJlciArXG4gICAgICAgICAgICAgICAgICAgICcgJyArXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0b3IuY29ycmVjdEdyYW1tYXRpY2FsQ2FzZShudW1iZXIsIHdvcmRLZXkpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICB9O1xuXG4gICAgdmFyIHNyQ3lybCA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3NyLWN5cmwnLCB7XG4gICAgICAgIG1vbnRoczogJ9GY0LDQvdGD0LDRgF/RhNC10LHRgNGD0LDRgF/QvNCw0YDRgl/QsNC/0YDQuNC7X9C80LDRmF/RmNGD0L1f0ZjRg9C7X9Cw0LLQs9GD0YHRgl/RgdC10L/RgtC10LzQsdCw0YBf0L7QutGC0L7QsdCw0YBf0L3QvtCy0LXQvNCx0LDRgF/QtNC10YbQtdC80LHQsNGAJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ9GY0LDQvS5f0YTQtdCxLl/QvNCw0YAuX9Cw0L/RgC5f0LzQsNGYX9GY0YPQvV/RmNGD0Ltf0LDQstCzLl/RgdC10L8uX9C+0LrRgi5f0L3QvtCyLl/QtNC10YYuJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czogJ9C90LXQtNC10ZnQsF/Qv9C+0L3QtdC00LXRmdCw0Lpf0YPRgtC+0YDQsNC6X9GB0YDQtdC00LBf0YfQtdGC0LLRgNGC0LDQul/Qv9C10YLQsNC6X9GB0YPQsdC+0YLQsCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ9C90LXQtC5f0L/QvtC9Ll/Rg9GC0L4uX9GB0YDQtS5f0YfQtdGCLl/Qv9C10YIuX9GB0YPQsS4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn0L3QtV/Qv9C+X9GD0YJf0YHRgF/Rh9C1X9C/0LVf0YHRgycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0g6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEw6ICdELiBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRC4gTU1NTSBZWVlZIEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQuIE1NTU0gWVlZWSBIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb0LTQsNC90LDRgSDRg10gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vRgdGD0YLRgNCwINGDXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAodGhpcy5kYXkoKSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1vRg10gW9C90LXQtNC10ZnRg10gW9GDXSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW9GDXSBb0YHRgNC10LTRg10gW9GDXSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW9GDXSBb0YHRg9Cx0L7RgtGDXSBb0YNdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdb0YNdIGRkZGQgW9GDXSBMVCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb0ZjRg9GH0LUg0YNdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdmFyIGxhc3RXZWVrRGF5cyA9IFtcbiAgICAgICAgICAgICAgICAgICAgJ1vQv9GA0L7RiNC70LVdIFvQvdC10LTQtdGZ0LVdIFvRg10gTFQnLFxuICAgICAgICAgICAgICAgICAgICAnW9C/0YDQvtGI0LvQvtCzXSBb0L/QvtC90LXQtNC10ZnQutCwXSBb0YNdIExUJyxcbiAgICAgICAgICAgICAgICAgICAgJ1vQv9GA0L7RiNC70L7Qs10gW9GD0YLQvtGA0LrQsF0gW9GDXSBMVCcsXG4gICAgICAgICAgICAgICAgICAgICdb0L/RgNC+0YjQu9C1XSBb0YHRgNC10LTQtV0gW9GDXSBMVCcsXG4gICAgICAgICAgICAgICAgICAgICdb0L/RgNC+0YjQu9C+0LNdIFvRh9C10YLQstGA0YLQutCwXSBb0YNdIExUJyxcbiAgICAgICAgICAgICAgICAgICAgJ1vQv9GA0L7RiNC70L7Qs10gW9C/0LXRgtC60LBdIFvRg10gTFQnLFxuICAgICAgICAgICAgICAgICAgICAnW9C/0YDQvtGI0LvQtV0gW9GB0YPQsdC+0YLQtV0gW9GDXSBMVCcsXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbGFzdFdlZWtEYXlzW3RoaXMuZGF5KCldO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAn0LfQsCAlcycsXG4gICAgICAgICAgICBwYXN0OiAn0L/RgNC1ICVzJyxcbiAgICAgICAgICAgIHM6ICfQvdC10LrQvtC70LjQutC+INGB0LXQutGD0L3QtNC4JyxcbiAgICAgICAgICAgIHNzOiB0cmFuc2xhdG9yLnRyYW5zbGF0ZSxcbiAgICAgICAgICAgIG06IHRyYW5zbGF0b3IudHJhbnNsYXRlLFxuICAgICAgICAgICAgbW06IHRyYW5zbGF0b3IudHJhbnNsYXRlLFxuICAgICAgICAgICAgaDogdHJhbnNsYXRvci50cmFuc2xhdGUsXG4gICAgICAgICAgICBoaDogdHJhbnNsYXRvci50cmFuc2xhdGUsXG4gICAgICAgICAgICBkOiAn0LTQsNC9JyxcbiAgICAgICAgICAgIGRkOiB0cmFuc2xhdG9yLnRyYW5zbGF0ZSxcbiAgICAgICAgICAgIE06ICfQvNC10YHQtdGGJyxcbiAgICAgICAgICAgIE1NOiB0cmFuc2xhdG9yLnRyYW5zbGF0ZSxcbiAgICAgICAgICAgIHk6ICfQs9C+0LTQuNC90YMnLFxuICAgICAgICAgICAgeXk6IHRyYW5zbGF0b3IudHJhbnNsYXRlLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn1cXC4vLFxuICAgICAgICBvcmRpbmFsOiAnJWQuJyxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNywgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gN3RoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHNyQ3lybDtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBzaVN3YXRpIFtzc11cbi8vISBhdXRob3IgOiBOaWNvbGFpIERhdmllczxtYWlsQG5pY29sYWkuaW8+IDogaHR0cHM6Ly9naXRodWIuY29tL25pY29sYWlkYXZpZXNcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBzcyA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3NzJywge1xuICAgICAgICBtb250aHM6IFwiQmhpbWJpZHZ3YW5lX0luZGxvdmFuYV9JbmRsb3YnbGVua2h1bHVfTWFiYXNhX0lua2h3ZWtod2V0aV9JbmhsYWJhX0tob2x3YW5lX0luZ2NpX0lueW9uaV9JbXBoYWxhX0x3ZXRpX0luZ29uZ29uaVwiLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnQmhpX0luYV9JbnVfTWFiX0lua19JbmhfS2hvX0lnY19JbnlfSW1wX0x3ZV9JZ28nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAnTGlzb250Zm9fVW1zb21idWx1a29fTGVzaWJpbGlfTGVzaXRzYXRmdV9MZXNpbmVfTGVzaWhsYW51X1VtZ2NpYmVsbycuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ0xpc19VbWJfTHNiX0xlc19Mc2lfTHNoX1VtZycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdMaV9Vc19MYl9MdF9Mc19MaF9VZycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdoOm1tIEEnLFxuICAgICAgICAgICAgTFRTOiAnaDptbTpzcyBBJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgaDptbSBBJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSBoOm1tIEEnLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tOYW11aGxhIG5nYV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tLdXNhc2EgbmdhXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW25nYV0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tJdG9sbyBuZ2FdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnZGRkZCBbbGVsaXBoZWxpbGVdIFtuZ2FdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnbmdhICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICd3ZW50ZWthIG5nYSAlcycsXG4gICAgICAgICAgICBzOiAnZW1penV6d2FuYSBsb21jYW5lJyxcbiAgICAgICAgICAgIHNzOiAnJWQgbXp1endhbmEnLFxuICAgICAgICAgICAgbTogJ3VtenV6dScsXG4gICAgICAgICAgICBtbTogJyVkIGVtaXp1enUnLFxuICAgICAgICAgICAgaDogJ2xpaG9yYScsXG4gICAgICAgICAgICBoaDogJyVkIGVtYWhvcmEnLFxuICAgICAgICAgICAgZDogJ2xpbGFuZ2EnLFxuICAgICAgICAgICAgZGQ6ICclZCBlbWFsYW5nYScsXG4gICAgICAgICAgICBNOiAnaW55YW5nYScsXG4gICAgICAgICAgICBNTTogJyVkIHRpbnlhbmdhJyxcbiAgICAgICAgICAgIHk6ICd1bW55YWthJyxcbiAgICAgICAgICAgIHl5OiAnJWQgaW1pbnlha2EnLFxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAvZWt1c2VuaXxlbWluaXxlbnRzYW1iYW1hfGVidXN1a3UvLFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXJzLCBtaW51dGVzLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91cnMgPCAxMSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnZWt1c2VuaSc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXJzIDwgMTUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2VtaW5pJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91cnMgPCAxOSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnZW50c2FtYmFtYSc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAnZWJ1c3VrdSc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtSG91cjogZnVuY3Rpb24gKGhvdXIsIG1lcmlkaWVtKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA9PT0gMTIpIHtcbiAgICAgICAgICAgICAgICBob3VyID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtZXJpZGllbSA9PT0gJ2VrdXNlbmknKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAnZW1pbmknKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPj0gMTEgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ2VudHNhbWJhbWEnIHx8IG1lcmlkaWVtID09PSAnZWJ1c3VrdScpIHtcbiAgICAgICAgICAgICAgICBpZiAoaG91ciA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9LyxcbiAgICAgICAgb3JkaW5hbDogJyVkJyxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHNzO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IFN3ZWRpc2ggW3N2XVxuLy8hIGF1dGhvciA6IEplbnMgQWxtIDogaHR0cHM6Ly9naXRodWIuY29tL3VsbXVzXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgc3YgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdzdicsIHtcbiAgICAgICAgbW9udGhzOiAnamFudWFyaV9mZWJydWFyaV9tYXJzX2FwcmlsX21hal9qdW5pX2p1bGlfYXVndXN0aV9zZXB0ZW1iZXJfb2t0b2Jlcl9ub3ZlbWJlcl9kZWNlbWJlcicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdqYW5fZmViX21hcl9hcHJfbWFqX2p1bl9qdWxfYXVnX3NlcF9va3Rfbm92X2RlYycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICdzw7ZuZGFnX23DpW5kYWdfdGlzZGFnX29uc2RhZ190b3JzZGFnX2ZyZWRhZ19sw7ZyZGFnJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnc8O2bl9tw6VuX3Rpc19vbnNfdG9yX2ZyZV9sw7ZyJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ3PDtl9tw6VfdGlfb25fdG9fZnJfbMO2Jy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnWVlZWS1NTS1ERCcsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIFtrbC5dIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkIEQgTU1NTSBZWVlZIFtrbC5dIEhIOm1tJyxcbiAgICAgICAgICAgIGxsbDogJ0QgTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgbGxsbDogJ2RkZCBEIE1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbSWRhZ10gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tJbW9yZ29uXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW0lnw6VyXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ1tQw6VdIGRkZGQgTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdbSV0gZGRkZFtzXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ29tICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICdmw7ZyICVzIHNlZGFuJyxcbiAgICAgICAgICAgIHM6ICduw6VncmEgc2VrdW5kZXInLFxuICAgICAgICAgICAgc3M6ICclZCBzZWt1bmRlcicsXG4gICAgICAgICAgICBtOiAnZW4gbWludXQnLFxuICAgICAgICAgICAgbW06ICclZCBtaW51dGVyJyxcbiAgICAgICAgICAgIGg6ICdlbiB0aW1tZScsXG4gICAgICAgICAgICBoaDogJyVkIHRpbW1hcicsXG4gICAgICAgICAgICBkOiAnZW4gZGFnJyxcbiAgICAgICAgICAgIGRkOiAnJWQgZGFnYXInLFxuICAgICAgICAgICAgTTogJ2VuIG3DpW5hZCcsXG4gICAgICAgICAgICBNTTogJyVkIG3DpW5hZGVyJyxcbiAgICAgICAgICAgIHk6ICdldHQgw6VyJyxcbiAgICAgICAgICAgIHl5OiAnJWQgw6VyJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9KFxcOmV8XFw6YSkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICB2YXIgYiA9IG51bWJlciAlIDEwLFxuICAgICAgICAgICAgICAgIG91dHB1dCA9XG4gICAgICAgICAgICAgICAgICAgIH5+KChudW1iZXIgJSAxMDApIC8gMTApID09PSAxXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICc6ZSdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYiA9PT0gMVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnOmEnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGIgPT09IDJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJzphJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBiID09PSAzXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICc6ZSdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJzplJztcbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyBvdXRwdXQ7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBzdjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBTd2FoaWxpIFtzd11cbi8vISBhdXRob3IgOiBGYWhhZCBLYXNzaW0gOiBodHRwczovL2dpdGh1Yi5jb20vZmFkc2VsXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgc3cgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdzdycsIHtcbiAgICAgICAgbW9udGhzOiAnSmFudWFyaV9GZWJydWFyaV9NYWNoaV9BcHJpbGlfTWVpX0p1bmlfSnVsYWlfQWdvc3RpX1NlcHRlbWJhX09rdG9iYV9Ob3ZlbWJhX0Rlc2VtYmEnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnSmFuX0ZlYl9NYWNfQXByX01laV9KdW5fSnVsX0Fnb19TZXBfT2t0X05vdl9EZXMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAnSnVtYXBpbGlfSnVtYXRhdHVfSnVtYW5uZV9KdW1hdGFub19BbGhhbWlzaV9JanVtYWFfSnVtYW1vc2knLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdKcGxfSnRhdF9Kbm5lX0p0YW5fQWxoX0lqbV9KbW9zJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ0oyX0ozX0o0X0o1X0FsX0lqX0oxJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ2hoOm1tIEEnLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tsZW8gc2FhXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW2tlc2hvIHNhYV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdbd2lraSBpamF5b10gZGRkZCBbc2FhdF0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tqYW5hXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1t3aWtpIGlsaXlvcGl0YV0gZGRkZCBbc2FhdF0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICclcyBiYWFkYXllJyxcbiAgICAgICAgICAgIHBhc3Q6ICd0b2tlYSAlcycsXG4gICAgICAgICAgICBzOiAnaGl2aSBwdW5kZScsXG4gICAgICAgICAgICBzczogJ3Nla3VuZGUgJWQnLFxuICAgICAgICAgICAgbTogJ2Rha2lrYSBtb2phJyxcbiAgICAgICAgICAgIG1tOiAnZGFraWthICVkJyxcbiAgICAgICAgICAgIGg6ICdzYWEgbGltb2phJyxcbiAgICAgICAgICAgIGhoOiAnbWFzYWEgJWQnLFxuICAgICAgICAgICAgZDogJ3Npa3UgbW9qYScsXG4gICAgICAgICAgICBkZDogJ3Npa3UgJWQnLFxuICAgICAgICAgICAgTTogJ213ZXppIG1tb2phJyxcbiAgICAgICAgICAgIE1NOiAnbWllemkgJWQnLFxuICAgICAgICAgICAgeTogJ213YWthIG1tb2phJyxcbiAgICAgICAgICAgIHl5OiAnbWlha2EgJWQnLFxuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA3LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA3dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gc3c7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogVGFtaWwgW3RhXVxuLy8hIGF1dGhvciA6IEFyanVua3VtYXIgS3Jpc2huYW1vb3J0aHkgOiBodHRwczovL2dpdGh1Yi5jb20vdGsxMjA0MDRcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBzeW1ib2xNYXAgPSB7XG4gICAgICAgICAgICAnMSc6ICfgr6cnLFxuICAgICAgICAgICAgJzInOiAn4K+oJyxcbiAgICAgICAgICAgICczJzogJ+CvqScsXG4gICAgICAgICAgICAnNCc6ICfgr6onLFxuICAgICAgICAgICAgJzUnOiAn4K+rJyxcbiAgICAgICAgICAgICc2JzogJ+CvrCcsXG4gICAgICAgICAgICAnNyc6ICfgr60nLFxuICAgICAgICAgICAgJzgnOiAn4K+uJyxcbiAgICAgICAgICAgICc5JzogJ+CvrycsXG4gICAgICAgICAgICAnMCc6ICfgr6YnLFxuICAgICAgICB9LFxuICAgICAgICBudW1iZXJNYXAgPSB7XG4gICAgICAgICAgICAn4K+nJzogJzEnLFxuICAgICAgICAgICAgJ+CvqCc6ICcyJyxcbiAgICAgICAgICAgICfgr6knOiAnMycsXG4gICAgICAgICAgICAn4K+qJzogJzQnLFxuICAgICAgICAgICAgJ+Cvqyc6ICc1JyxcbiAgICAgICAgICAgICfgr6wnOiAnNicsXG4gICAgICAgICAgICAn4K+tJzogJzcnLFxuICAgICAgICAgICAgJ+Cvric6ICc4JyxcbiAgICAgICAgICAgICfgr68nOiAnOScsXG4gICAgICAgICAgICAn4K+mJzogJzAnLFxuICAgICAgICB9O1xuXG4gICAgdmFyIHRhID0gbW9tZW50LmRlZmluZUxvY2FsZSgndGEnLCB7XG4gICAgICAgIG1vbnRoczogJ+CunOCuqeCuteCusOCuv1/grqrgrr/grqrgr43grrDgrrXgrrDgrr9f4K6u4K6+4K6w4K+N4K6a4K+NX+Cuj+CuquCvjeCusOCusuCvjV/grq7gr4df4K6c4K+C4K6p4K+NX+CunOCvguCusuCviF/grobgrpXgrrjgr43grp/gr41f4K6a4K+G4K6q4K+N4K6f4K+G4K6u4K+N4K6q4K6w4K+NX+CuheCuleCvjeCun+Cvh+CuvuCuquCusOCvjV/grqjgrrXgrq7gr43grqrgrrDgr41f4K6f4K6/4K6a4K6u4K+N4K6q4K6w4K+NJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ+CunOCuqeCuteCusOCuv1/grqrgrr/grqrgr43grrDgrrXgrrDgrr9f4K6u4K6+4K6w4K+N4K6a4K+NX+Cuj+CuquCvjeCusOCusuCvjV/grq7gr4df4K6c4K+C4K6p4K+NX+CunOCvguCusuCviF/grobgrpXgrrjgr43grp/gr41f4K6a4K+G4K6q4K+N4K6f4K+G4K6u4K+N4K6q4K6w4K+NX+CuheCuleCvjeCun+Cvh+CuvuCuquCusOCvjV/grqjgrrXgrq7gr43grqrgrrDgr41f4K6f4K6/4K6a4K6u4K+N4K6q4K6w4K+NJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5czogJ+CunuCuvuCur+Cuv+CuseCvjeCuseCvgeCuleCvjeCuleCuv+CutOCuruCviF/grqTgrr/grpngr43grpXgrp/gr43grpXgrr/grrTgrq7gr4hf4K6a4K+G4K614K+N4K614K6+4K6v4K+N4K6V4K6/4K604K6u4K+IX+CuquCvgeCupOCuqeCvjeCuleCuv+CutOCuruCviF/grrXgrr/grq/grr7grrTgrpXgr43grpXgrr/grrTgrq7gr4hf4K614K+G4K6z4K+N4K6z4K6/4K6V4K+N4K6V4K6/4K604K6u4K+IX+CumuCuqeCuv+CuleCvjeCuleCuv+CutOCuruCviCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ+CunuCuvuCur+Cuv+CuseCvgV/grqTgrr/grpngr43grpXgrrPgr41f4K6a4K+G4K614K+N4K614K6+4K6v4K+NX+CuquCvgeCupOCuqeCvjV/grrXgrr/grq/grr7grrTgrqngr41f4K614K+G4K6z4K+N4K6z4K6/X+CumuCuqeCuvycuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfgrp7grr5f4K6k4K6/X+CumuCvhl/grqrgr4Ff4K614K6/X+CuteCvhl/grponLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVksIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSwgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vgrofgrqngr43grrHgr4FdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb4K6o4K6+4K6z4K+IXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQsIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb4K6o4K+H4K6x4K+N4K6x4K+BXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1vgrpXgrp/grqjgr43grqQg4K614K6+4K6w4K6u4K+NXSBkZGRkLCBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVzIOCuh+CusuCvjScsXG4gICAgICAgICAgICBwYXN0OiAnJXMg4K6u4K+B4K6p4K+NJyxcbiAgICAgICAgICAgIHM6ICfgrpLgrrDgr4Eg4K6a4K6/4K6yIOCuteCuv+CuqOCuvuCun+Cuv+CuleCus+CvjScsXG4gICAgICAgICAgICBzczogJyVkIOCuteCuv+CuqOCuvuCun+Cuv+CuleCus+CvjScsXG4gICAgICAgICAgICBtOiAn4K6S4K6w4K+BIOCuqOCuv+CuruCuv+Cun+CuruCvjScsXG4gICAgICAgICAgICBtbTogJyVkIOCuqOCuv+CuruCuv+Cun+CumeCvjeCuleCus+CvjScsXG4gICAgICAgICAgICBoOiAn4K6S4K6w4K+BIOCuruCuo+CuvyDgrqjgr4fgrrDgrq7gr40nLFxuICAgICAgICAgICAgaGg6ICclZCDgrq7grqPgrr8g4K6o4K+H4K6w4K6u4K+NJyxcbiAgICAgICAgICAgIGQ6ICfgrpLgrrDgr4Eg4K6o4K6+4K6z4K+NJyxcbiAgICAgICAgICAgIGRkOiAnJWQg4K6o4K6+4K6f4K+N4K6V4K6z4K+NJyxcbiAgICAgICAgICAgIE06ICfgrpLgrrDgr4Eg4K6u4K6+4K6k4K6u4K+NJyxcbiAgICAgICAgICAgIE1NOiAnJWQg4K6u4K6+4K6k4K6Z4K+N4K6V4K6z4K+NJyxcbiAgICAgICAgICAgIHk6ICfgrpLgrrDgr4Eg4K614K6w4K+B4K6f4K6u4K+NJyxcbiAgICAgICAgICAgIHl5OiAnJWQg4K6G4K6j4K+N4K6f4K+B4K6V4K6z4K+NJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ94K614K6k4K+BLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICfgrrXgrqTgr4EnO1xuICAgICAgICB9LFxuICAgICAgICBwcmVwYXJzZTogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC9b4K+n4K+o4K+p4K+q4K+r4K+s4K+t4K+u4K+v4K+mXS9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyTWFwW21hdGNoXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBwb3N0Zm9ybWF0OiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL1xcZC9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3ltYm9sTWFwW21hdGNoXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICAvLyByZWZlciBodHRwOi8vdGEud2lraXBlZGlhLm9yZy9zLzFlcjFcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL+Cur+CuvuCuruCuruCvjXzgrrXgr4jgrpXgrrHgr4h84K6V4K6+4K6y4K+IfOCuqOCuo+CvjeCuquCuleCusuCvjXzgro7grrHgr43grqrgrr7grp/gr4F84K6u4K6+4K6y4K+ILyxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyIDwgMikge1xuICAgICAgICAgICAgICAgIHJldHVybiAnIOCur+CuvuCuruCuruCvjSc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCA2KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICcg4K614K+I4K6V4K6x4K+IJzsgLy8g4K614K+I4K6V4K6x4K+IXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnIOCuleCuvuCusuCviCc7IC8vIOCuleCuvuCusuCviFxuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJyDgrqjgrqPgr43grqrgrpXgrrLgr40nOyAvLyDgrqjgrqPgr43grqrgrpXgrrLgr41cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDE4KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICcg4K6O4K6x4K+N4K6q4K6+4K6f4K+BJzsgLy8g4K6O4K6x4K+N4K6q4K6+4K6f4K+BXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAyMikge1xuICAgICAgICAgICAgICAgIHJldHVybiAnIOCuruCuvuCusuCviCc7IC8vIOCuruCuvuCusuCviFxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJyDgrq/grr7grq7grq7gr40nO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbUhvdXI6IGZ1bmN0aW9uIChob3VyLCBtZXJpZGllbSkge1xuICAgICAgICAgICAgaWYgKGhvdXIgPT09IDEyKSB7XG4gICAgICAgICAgICAgICAgaG91ciA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobWVyaWRpZW0gPT09ICfgrq/grr7grq7grq7gr40nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPCAyID8gaG91ciA6IGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfgrrXgr4jgrpXgrrHgr4gnIHx8IG1lcmlkaWVtID09PSAn4K6V4K6+4K6y4K+IJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+CuqOCuo+CvjeCuquCuleCusuCvjScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciA+PSAxMCA/IGhvdXIgOiBob3VyICsgMTI7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyICsgMTI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMCwgLy8gU3VuZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDYsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDZ0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiB0YTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBUZWx1Z3UgW3RlXVxuLy8hIGF1dGhvciA6IEtyaXNobmEgQ2hhaXRhbnlhIFRob3RhIDogaHR0cHM6Ly9naXRodWIuY29tL2tjdGhvdGFcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciB0ZSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3RlJywge1xuICAgICAgICBtb250aHM6ICfgsJzgsKjgsLXgsLDgsL9f4LCr4LC/4LCs4LGN4LCw4LC14LCw4LC/X+CwruCwvuCwsOCxjeCwmuCwv1/gsI/gsKrgsY3gsLDgsL/gsLLgsY1f4LCu4LGHX+CwnOCxguCwqOCxjV/gsJzgsYHgsLLgsYhf4LCG4LCX4LC44LGN4LCf4LGBX+CwuOCxhuCwquCxjeCwn+CxhuCwguCwrOCwsOCxjV/gsIXgsJXgsY3gsJ/gsYvgsKzgsLDgsY1f4LCo4LC14LCC4LCs4LCw4LGNX+CwoeCwv+CwuOCxhuCwguCwrOCwsOCxjScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICfgsJzgsKguX+Cwq+Cwv+CwrOCxjeCwsC5f4LCu4LC+4LCw4LGN4LCa4LC/X+Cwj+CwquCxjeCwsOCwvy5f4LCu4LGHX+CwnOCxguCwqOCxjV/gsJzgsYHgsLLgsYhf4LCG4LCXLl/gsLjgsYbgsKrgsY0uX+CwheCwleCxjeCwn+Cxiy5f4LCo4LC1Ll/gsKHgsL/gsLjgsYYuJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czogJ+CwhuCwpuCwv+CwteCwvuCwsOCwgl/gsLjgsYvgsK7gsLXgsL7gsLDgsIJf4LCu4LCC4LCX4LCz4LC14LC+4LCw4LCCX+CwrOCxgeCwp+CwteCwvuCwsOCwgl/gsJfgsYHgsLDgsYHgsLXgsL7gsLDgsIJf4LC24LGB4LCV4LGN4LCw4LC14LC+4LCw4LCCX+CwtuCwqOCwv+CwteCwvuCwsOCwgicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ+CwhuCwpuCwv1/gsLjgsYvgsK5f4LCu4LCC4LCX4LCzX+CwrOCxgeCwp1/gsJfgsYHgsLDgsYFf4LC24LGB4LCV4LGN4LCwX+CwtuCwqOCwvycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfgsIZf4LC44LGLX+CwruCwgl/gsKzgsYFf4LCX4LGBX+CwtuCxgV/gsLYnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0EgaDptbScsXG4gICAgICAgICAgICBMVFM6ICdBIGg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSwgQSBoOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSwgQSBoOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb4LCo4LGH4LCh4LGBXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW+CwsOCxh+CwquCxgV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkLCBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW+CwqOCwv+CwqOCxjeCwqF0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdb4LCX4LCkXSBkZGRkLCBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVzIOCwsuCxiycsXG4gICAgICAgICAgICBwYXN0OiAnJXMg4LCV4LGN4LCw4LC/4LCk4LCCJyxcbiAgICAgICAgICAgIHM6ICfgsJXgsYrgsKjgsY3gsKjgsL8g4LCV4LGN4LC34LCj4LC+4LCy4LGBJyxcbiAgICAgICAgICAgIHNzOiAnJWQg4LC44LGG4LCV4LCo4LGN4LCy4LGBJyxcbiAgICAgICAgICAgIG06ICfgsJLgsJUg4LCo4LC/4LCu4LC/4LC34LCCJyxcbiAgICAgICAgICAgIG1tOiAnJWQg4LCo4LC/4LCu4LC/4LC34LC+4LCy4LGBJyxcbiAgICAgICAgICAgIGg6ICfgsJLgsJUg4LCX4LCC4LCfJyxcbiAgICAgICAgICAgIGhoOiAnJWQg4LCX4LCC4LCf4LCy4LGBJyxcbiAgICAgICAgICAgIGQ6ICfgsJLgsJUg4LCw4LGL4LCc4LGBJyxcbiAgICAgICAgICAgIGRkOiAnJWQg4LCw4LGL4LCc4LGB4LCy4LGBJyxcbiAgICAgICAgICAgIE06ICfgsJLgsJUg4LCo4LGG4LCyJyxcbiAgICAgICAgICAgIE1NOiAnJWQg4LCo4LGG4LCy4LCy4LGBJyxcbiAgICAgICAgICAgIHk6ICfgsJLgsJUg4LC44LCC4LC14LCk4LGN4LC44LCw4LCCJyxcbiAgICAgICAgICAgIHl5OiAnJWQg4LC44LCC4LC14LCk4LGN4LC44LCw4LC+4LCy4LGBJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ94LC1LyxcbiAgICAgICAgb3JkaW5hbDogJyVk4LC1JyxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL+CwsOCwvuCwpOCxjeCwsOCwv3zgsIngsKbgsK/gsIJ84LCu4LCn4LGN4LCv4LC+4LC54LGN4LCo4LCCfOCwuOCwvuCwr+CwguCwpOCxjeCwsOCwgi8sXG4gICAgICAgIG1lcmlkaWVtSG91cjogZnVuY3Rpb24gKGhvdXIsIG1lcmlkaWVtKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA9PT0gMTIpIHtcbiAgICAgICAgICAgICAgICBob3VyID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtZXJpZGllbSA9PT0gJ+CwsOCwvuCwpOCxjeCwsOCwvycpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciA8IDQgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+CwieCwpuCwr+CwgicpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfgsK7gsKfgsY3gsK/gsL7gsLngsY3gsKjgsIInKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPj0gMTAgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+CwuOCwvuCwr+CwguCwpOCxjeCwsOCwgicpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciArIDEyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCA0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgsLDgsL7gsKTgsY3gsLDgsL8nO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CwieCwpuCwr+Cwgic7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxNykge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4LCu4LCn4LGN4LCv4LC+4LC54LGN4LCo4LCCJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDIwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgsLjgsL7gsK/gsILgsKTgsY3gsLDgsIInO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CwsOCwvuCwpOCxjeCwsOCwvyc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMCwgLy8gU3VuZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDYsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDZ0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiB0ZTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBUZXR1biBEaWxpIChFYXN0IFRpbW9yKSBbdGV0XVxuLy8hIGF1dGhvciA6IEpvc2h1YSBCcm9va3MgOiBodHRwczovL2dpdGh1Yi5jb20vam9zaGJyb29rc1xuLy8hIGF1dGhvciA6IE9ub3JpbyBEZSBKLiBBZm9uc28gOiBodHRwczovL2dpdGh1Yi5jb20vbWFyb2JvXG4vLyEgYXV0aG9yIDogU29uaWEgU2ltb2VzIDogaHR0cHM6Ly9naXRodWIuY29tL3Nvbmlhc2ltb2VzXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgdGV0ID0gbW9tZW50LmRlZmluZUxvY2FsZSgndGV0Jywge1xuICAgICAgICBtb250aHM6ICdKYW5laXJ1X0ZldmVyZWlydV9NYXJzdV9BYnJpbF9NYWl1X0p1w7F1X0p1bGx1X0FndXN0dV9TZXRlbWJydV9PdXR1YnJ1X05vdmVtYnJ1X0RlemVtYnJ1Jy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ0phbl9GZXZfTWFyX0Ficl9NYWlfSnVuX0p1bF9BZ29fU2V0X091dF9Ob3ZfRGV6Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ0RvbWluZ3VfU2VndW5kYV9UZXJzYV9LdWFydGFfS2ludGFfU2VzdGFfU2FiYWR1Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnRG9tX1NlZ19UZXJzX0t1YV9LaW50X1Nlc3RfU2FiJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ0RvX1NlZ19UZV9LdV9LaV9TZXNfU2EnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbT2hpbiBpaGFdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbQWJhbiBpaGFdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbaWhhXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW0hvcmlzZWlrIGloYV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdkZGRkIFtzZW1hbmEga290dWtdIFtpaGFdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnaWhhICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyBsaXViYScsXG4gICAgICAgICAgICBzOiAnc2VndW5kdSBiYWx1bicsXG4gICAgICAgICAgICBzczogJ3NlZ3VuZHUgJWQnLFxuICAgICAgICAgICAgbTogJ21pbnV0dSBpZGEnLFxuICAgICAgICAgICAgbW06ICdtaW51dHUgJWQnLFxuICAgICAgICAgICAgaDogJ29yYXMgaWRhJyxcbiAgICAgICAgICAgIGhoOiAnb3JhcyAlZCcsXG4gICAgICAgICAgICBkOiAnbG9yb24gaWRhJyxcbiAgICAgICAgICAgIGRkOiAnbG9yb24gJWQnLFxuICAgICAgICAgICAgTTogJ2Z1bGFuIGlkYScsXG4gICAgICAgICAgICBNTTogJ2Z1bGFuICVkJyxcbiAgICAgICAgICAgIHk6ICd0aW5hbiBpZGEnLFxuICAgICAgICAgICAgeXk6ICd0aW5hbiAlZCcsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfShzdHxuZHxyZHx0aCkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICB2YXIgYiA9IG51bWJlciAlIDEwLFxuICAgICAgICAgICAgICAgIG91dHB1dCA9XG4gICAgICAgICAgICAgICAgICAgIH5+KChudW1iZXIgJSAxMDApIC8gMTApID09PSAxXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICd0aCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYiA9PT0gMVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnc3QnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGIgPT09IDJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ25kJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBiID09PSAzXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICdyZCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJ3RoJztcbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyBvdXRwdXQ7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiB0ZXQ7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogVGFqaWsgW3RnXVxuLy8hIGF1dGhvciA6IE9yaWYgTi4gSnIuIDogaHR0cHM6Ly9naXRodWIuY29tL29yaWYtanJcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBzdWZmaXhlcyA9IHtcbiAgICAgICAgMDogJy3Rg9C8JyxcbiAgICAgICAgMTogJy3Rg9C8JyxcbiAgICAgICAgMjogJy3RjtC8JyxcbiAgICAgICAgMzogJy3RjtC8JyxcbiAgICAgICAgNDogJy3Rg9C8JyxcbiAgICAgICAgNTogJy3Rg9C8JyxcbiAgICAgICAgNjogJy3Rg9C8JyxcbiAgICAgICAgNzogJy3Rg9C8JyxcbiAgICAgICAgODogJy3Rg9C8JyxcbiAgICAgICAgOTogJy3Rg9C8JyxcbiAgICAgICAgMTA6ICct0YPQvCcsXG4gICAgICAgIDEyOiAnLdGD0LwnLFxuICAgICAgICAxMzogJy3Rg9C8JyxcbiAgICAgICAgMjA6ICct0YPQvCcsXG4gICAgICAgIDMwOiAnLdGO0LwnLFxuICAgICAgICA0MDogJy3Rg9C8JyxcbiAgICAgICAgNTA6ICct0YPQvCcsXG4gICAgICAgIDYwOiAnLdGD0LwnLFxuICAgICAgICA3MDogJy3Rg9C8JyxcbiAgICAgICAgODA6ICct0YPQvCcsXG4gICAgICAgIDkwOiAnLdGD0LwnLFxuICAgICAgICAxMDA6ICct0YPQvCcsXG4gICAgfTtcblxuICAgIHZhciB0ZyA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3RnJywge1xuICAgICAgICBtb250aHM6ICfRj9C90LLQsNGAX9GE0LXQstGA0LDQu1/QvNCw0YDRgl/QsNC/0YDQtdC7X9C80LDQuV/QuNGO0L1f0LjRjtC7X9Cw0LLQs9GD0YHRgl/RgdC10L3RgtGP0LHRgF/QvtC60YLRj9Cx0YBf0L3QvtGP0LHRgF/QtNC10LrQsNCx0YAnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAn0Y/QvdCyX9GE0LXQsl/QvNCw0YBf0LDQv9GAX9C80LDQuV/QuNGO0L1f0LjRjtC7X9Cw0LLQs1/RgdC10L1f0L7QutGCX9C90L7Rj1/QtNC10LonLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAn0Y/QutGI0LDQvdCx0LVf0LTRg9GI0LDQvdCx0LVf0YHQtdGI0LDQvdCx0LVf0YfQvtGA0YjQsNC90LHQtV/Qv9Cw0L3St9GI0LDQvdCx0LVf0rfRg9C80YrQsF/RiNCw0L3QsdC1Jy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn0Y/RiNCxX9C00YjQsV/RgdGI0LFf0YfRiNCxX9C/0YjQsV/St9GD0Lxf0YjQvdCxJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ9GP0Yhf0LTRiF/RgdGIX9GH0Yhf0L/RiF/St9C8X9GI0LEnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb0JjQvNGA06/QtyDRgdC+0LDRgtC4XSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW9Cf0LDQs9C+0rMg0YHQvtCw0YLQuF0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vQlNC40YDTr9C3INGB0L7QsNGC0LhdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZFvQuF0gW9Kz0LDRhNGC0LDQuCDQvtGP0L3QtNCwINGB0L7QsNGC0LhdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnZGRkZFvQuF0gW9Kz0LDRhNGC0LDQuCDQs9GD0LfQsNGI0YLQsCDRgdC+0LDRgtC4XSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ9Cx0LDRitC00LggJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzINC/0LXRiCcsXG4gICAgICAgICAgICBzOiAn0Y/QutGH0LDQvdC0INGB0L7QvdC40Y8nLFxuICAgICAgICAgICAgbTogJ9GP0Log0LTQsNKb0LjSm9CwJyxcbiAgICAgICAgICAgIG1tOiAnJWQg0LTQsNKb0LjSm9CwJyxcbiAgICAgICAgICAgIGg6ICfRj9C6INGB0L7QsNGCJyxcbiAgICAgICAgICAgIGhoOiAnJWQg0YHQvtCw0YInLFxuICAgICAgICAgICAgZDogJ9GP0Log0YDTr9C3JyxcbiAgICAgICAgICAgIGRkOiAnJWQg0YDTr9C3JyxcbiAgICAgICAgICAgIE06ICfRj9C6INC80L7SsycsXG4gICAgICAgICAgICBNTTogJyVkINC80L7SsycsXG4gICAgICAgICAgICB5OiAn0Y/QuiDRgdC+0LsnLFxuICAgICAgICAgICAgeXk6ICclZCDRgdC+0LsnLFxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv0YjQsNCxfNGB0YPQsdKzfNGA06/Qt3zQsdC10LPQvtKzLyxcbiAgICAgICAgbWVyaWRpZW1Ib3VyOiBmdW5jdGlvbiAoaG91ciwgbWVyaWRpZW0pIHtcbiAgICAgICAgICAgIGlmIChob3VyID09PSAxMikge1xuICAgICAgICAgICAgICAgIGhvdXIgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG1lcmlkaWVtID09PSAn0YjQsNCxJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyIDwgNCA/IGhvdXIgOiBob3VyICsgMTI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAn0YHRg9Cx0rMnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAn0YDTr9C3Jykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyID49IDExID8gaG91ciA6IGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfQsdC10LPQvtKzJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyICsgMTI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9GI0LDQsSc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxMSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn0YHRg9Cx0rMnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTYpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9GA06/Qtyc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxOSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn0LHQtdCz0L7Ssyc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn0YjQsNCxJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9LSjRg9C8fNGO0LwpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgdmFyIGEgPSBudW1iZXIgJSAxMCxcbiAgICAgICAgICAgICAgICBiID0gbnVtYmVyID49IDEwMCA/IDEwMCA6IG51bGw7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgKHN1ZmZpeGVzW251bWJlcl0gfHwgc3VmZml4ZXNbYV0gfHwgc3VmZml4ZXNbYl0pO1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA3LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiAxdGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGc7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogVGhhaSBbdGhdXG4vLyEgYXV0aG9yIDogS3JpZHNhZGEgVGhhbmFidWxwb25nIDogaHR0cHM6Ly9naXRodWIuY29tL3Npcm5cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciB0aCA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3RoJywge1xuICAgICAgICBtb250aHM6ICfguKHguIHguKPguLLguITguKFf4LiB4Li44Lih4Lig4Liy4Lie4Lix4LiZ4LiY4LmMX+C4oeC4teC4meC4suC4hOC4oV/guYDguKHguKnguLLguKLguJlf4Lie4Lik4Lip4Lig4Liy4LiE4LihX+C4oeC4tOC4luC4uOC4meC4suC4ouC4mV/guIHguKPguIHguI7guLLguITguKFf4Liq4Li04LiH4Lir4Liy4LiE4LihX+C4geC4seC4meC4ouC4suC4ouC4mV/guJXguLjguKXguLLguITguKFf4Lie4Lik4Lio4LiI4Li04LiB4Liy4Lii4LiZX+C4mOC4seC4meC4p+C4suC4hOC4oScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICfguKEu4LiELl/guIEu4LieLl/guKHguLUu4LiELl/guYDguKEu4LiiLl/guJ4u4LiELl/guKHguLQu4LiiLl/guIEu4LiELl/guKou4LiELl/guIEu4LiiLl/guJUu4LiELl/guJ4u4LiiLl/guJgu4LiELicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXM6ICfguK3guLLguJfguLTguJXguKLguYxf4LiI4Lix4LiZ4LiX4Lij4LmMX+C4reC4seC4h+C4hOC4suC4o1/guJ7guLjguJhf4Lie4Lik4Lir4Lix4Liq4Lia4LiU4Li1X+C4qOC4uOC4geC4o+C5jF/guYDguKrguLLguKPguYwnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfguK3guLLguJfguLTguJXguKLguYxf4LiI4Lix4LiZ4LiX4Lij4LmMX+C4reC4seC4h+C4hOC4suC4o1/guJ7guLjguJhf4Lie4Lik4Lir4Lix4LiqX+C4qOC4uOC4geC4o+C5jF/guYDguKrguLLguKPguYwnLnNwbGl0KCdfJyksIC8vIHllcywgdGhyZWUgY2hhcmFjdGVycyBkaWZmZXJlbmNlXG4gICAgICAgIHdlZWtkYXlzTWluOiAn4Lit4LiyLl/guIguX+C4rS5f4LieLl/guJ7guKQuX+C4qC5f4LiqLicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0g6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSDguYDguKfguKXguLIgSDptbScsXG4gICAgICAgICAgICBMTExMOiAn4Lin4Lix4LiZZGRkZOC4l+C4teC5iCBEIE1NTU0gWVlZWSDguYDguKfguKXguLIgSDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/guIHguYjguK3guJnguYDguJfguLXguYjguKLguId84Lir4Lil4Lix4LiH4LmA4LiX4Li14LmI4Lii4LiHLyxcbiAgICAgICAgaXNQTTogZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gaW5wdXQgPT09ICfguKvguKXguLHguIfguYDguJfguLXguYjguKLguIcnO1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCAxMikge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4LiB4LmI4Lit4LiZ4LmA4LiX4Li14LmI4Lii4LiHJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfguKvguKXguLHguIfguYDguJfguLXguYjguKLguIcnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vguKfguLHguJnguJnguLXguYkg4LmA4Lin4Lil4LiyXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW+C4nuC4o+C4uOC5iOC4h+C4meC4teC5iSDguYDguKfguKXguLJdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZFvguKvguJnguYnguLIg4LmA4Lin4Lil4LiyXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW+C5gOC4oeC4t+C5iOC4reC4p+C4suC4meC4meC4teC5iSDguYDguKfguKXguLJdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW+C4p+C4seC4mV1kZGRkW+C4l+C4teC5iOC5geC4peC5ieC4pyDguYDguKfguKXguLJdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAn4Lit4Li14LiBICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclc+C4l+C4teC5iOC5geC4peC5ieC4pycsXG4gICAgICAgICAgICBzOiAn4LmE4Lih4LmI4LiB4Li14LmI4Lin4Li04LiZ4Liy4LiX4Li1JyxcbiAgICAgICAgICAgIHNzOiAnJWQg4Lin4Li04LiZ4Liy4LiX4Li1JyxcbiAgICAgICAgICAgIG06ICcxIOC4meC4suC4l+C4tScsXG4gICAgICAgICAgICBtbTogJyVkIOC4meC4suC4l+C4tScsXG4gICAgICAgICAgICBoOiAnMSDguIrguLHguYjguKfguYLguKHguIcnLFxuICAgICAgICAgICAgaGg6ICclZCDguIrguLHguYjguKfguYLguKHguIcnLFxuICAgICAgICAgICAgZDogJzEg4Lin4Lix4LiZJyxcbiAgICAgICAgICAgIGRkOiAnJWQg4Lin4Lix4LiZJyxcbiAgICAgICAgICAgIE06ICcxIOC5gOC4lOC4t+C4reC4mScsXG4gICAgICAgICAgICBNTTogJyVkIOC5gOC4lOC4t+C4reC4mScsXG4gICAgICAgICAgICB5OiAnMSDguJvguLUnLFxuICAgICAgICAgICAgeXk6ICclZCDguJvguLUnLFxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IFR1cmttZW4gW3Rya11cbi8vISBhdXRob3IgOiBBdGFteXJhdCBBYmR5cmFobWFub3YgOiBodHRwczovL2dpdGh1Yi5jb20vYXRhbXlyYXRhYmR5XG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgc3VmZml4ZXMgPSB7XG4gICAgICAgIDE6IFwiJ2luamlcIixcbiAgICAgICAgNTogXCInaW5qaVwiLFxuICAgICAgICA4OiBcIidpbmppXCIsXG4gICAgICAgIDcwOiBcIidpbmppXCIsXG4gICAgICAgIDgwOiBcIidpbmppXCIsXG4gICAgICAgIDI6IFwiJ25qaVwiLFxuICAgICAgICA3OiBcIiduamlcIixcbiAgICAgICAgMjA6IFwiJ25qaVwiLFxuICAgICAgICA1MDogXCInbmppXCIsXG4gICAgICAgIDM6IFwiJ8O8bmppXCIsXG4gICAgICAgIDQ6IFwiJ8O8bmppXCIsXG4gICAgICAgIDEwMDogXCInw7xuamlcIixcbiAgICAgICAgNjogXCInbmp5XCIsXG4gICAgICAgIDk6IFwiJ3VuanlcIixcbiAgICAgICAgMTA6IFwiJ3VuanlcIixcbiAgICAgICAgMzA6IFwiJ3VuanlcIixcbiAgICAgICAgNjA6IFwiJ3luanlcIixcbiAgICAgICAgOTA6IFwiJ3luanlcIixcbiAgICB9O1xuXG4gICAgdmFyIHRrID0gbW9tZW50LmRlZmluZUxvY2FsZSgndGsnLCB7XG4gICAgICAgIG1vbnRoczogJ8OdYW53YXJfRmV3cmFsX01hcnRfQXByZWxfTWHDvV9Jw711bl9Jw711bF9Bd2d1c3RfU2VudMO9YWJyX09rdMO9YWJyX05vw71hYnJfRGVrYWJyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ8OdYW5fRmV3X01hcl9BcHJfTWHDvV9Jw71uX0nDvWxfQXdnX1Nlbl9Pa3RfTm/DvV9EZWsnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAnw51la8WfZW5iZV9EdcWfZW5iZV9TacWfZW5iZV/Dh2FyxZ9lbmJlX1BlbsWfZW5iZV9Bbm5hX8WeZW5iZScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ8OdZWtfRHXFn19TacWfX8OHYXJfUGVuX0Fubl/FnmVuJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ8Oda19ExZ9fU8WfX8OHcl9Qbl9Bbl/Fnm4nLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbYnVnw7xuIHNhZ2F0XSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW2VydGlyIHNhZ2F0XSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ1tpbmRpa2ldIGRkZGQgW3NhZ2F0XSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW2TDvMO9bl0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdbZ2XDp2VuXSBkZGRkIFtzYWdhdF0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICclcyBzb8WIJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyDDtsWIJyxcbiAgICAgICAgICAgIHM6ICdiaXJuw6TDp2Ugc2VrdW50JyxcbiAgICAgICAgICAgIG06ICdiaXIgbWludXQnLFxuICAgICAgICAgICAgbW06ICclZCBtaW51dCcsXG4gICAgICAgICAgICBoOiAnYmlyIHNhZ2F0JyxcbiAgICAgICAgICAgIGhoOiAnJWQgc2FnYXQnLFxuICAgICAgICAgICAgZDogJ2JpciBnw7xuJyxcbiAgICAgICAgICAgIGRkOiAnJWQgZ8O8bicsXG4gICAgICAgICAgICBNOiAnYmlyIGHDvScsXG4gICAgICAgICAgICBNTTogJyVkIGHDvScsXG4gICAgICAgICAgICB5OiAnYmlyIMO9eWwnLFxuICAgICAgICAgICAgeXk6ICclZCDDvXlsJyxcbiAgICAgICAgfSxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlciwgcGVyaW9kKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHBlcmlvZCkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2QnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0QnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0RvJzpcbiAgICAgICAgICAgICAgICBjYXNlICdERCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXI7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3BlY2lhbCBjYXNlIGZvciB6ZXJvXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgXCIndW5qeVwiO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHZhciBhID0gbnVtYmVyICUgMTAsXG4gICAgICAgICAgICAgICAgICAgICAgICBiID0gKG51bWJlciAlIDEwMCkgLSBhLFxuICAgICAgICAgICAgICAgICAgICAgICAgYyA9IG51bWJlciA+PSAxMDAgPyAxMDAgOiBudWxsO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgKHN1ZmZpeGVzW2FdIHx8IHN1ZmZpeGVzW2JdIHx8IHN1ZmZpeGVzW2NdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNywgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gN3RoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRrO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IFRhZ2Fsb2cgKFBoaWxpcHBpbmVzKSBbdGwtcGhdXG4vLyEgYXV0aG9yIDogRGFuIEhhZ21hbiA6IGh0dHBzOi8vZ2l0aHViLmNvbS9oYWdtYW5kYW5cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciB0bFBoID0gbW9tZW50LmRlZmluZUxvY2FsZSgndGwtcGgnLCB7XG4gICAgICAgIG1vbnRoczogJ0VuZXJvX1BlYnJlcm9fTWFyc29fQWJyaWxfTWF5b19IdW55b19IdWx5b19BZ29zdG9fU2V0eWVtYnJlX09rdHVicmVfTm9ieWVtYnJlX0Rpc3llbWJyZScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdFbmVfUGViX01hcl9BYnJfTWF5X0h1bl9IdWxfQWdvX1NldF9Pa3RfTm9iX0Rpcycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICdMaW5nZ29fTHVuZXNfTWFydGVzX01peWVya3VsZXNfSHV3ZWJlc19CaXllcm5lc19TYWJhZG8nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdMaW5fTHVuX01hcl9NaXlfSHV3X0JpeV9TYWInLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnTGlfTHVfTWFfTWlfSHVfQmlfU2FiJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnTU0vRC9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnTU1NTSBELCBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ01NTU0gRCwgWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgTU1NTSBERCwgWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnTFQgW25nYXlvbmcgYXJhd10nLFxuICAgICAgICAgICAgbmV4dERheTogJ1tCdWthcyBuZ10gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdMVCBbc2Egc3VzdW5vZCBuYV0gZGRkZCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnTFQgW2thaGFwb25dJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnTFQgW25vb25nIG5ha2FyYWFuZ10gZGRkZCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ3NhIGxvb2IgbmcgJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzIGFuZyBuYWthbGlwYXMnLFxuICAgICAgICAgICAgczogJ2lsYW5nIHNlZ3VuZG8nLFxuICAgICAgICAgICAgc3M6ICclZCBzZWd1bmRvJyxcbiAgICAgICAgICAgIG06ICdpc2FuZyBtaW51dG8nLFxuICAgICAgICAgICAgbW06ICclZCBtaW51dG8nLFxuICAgICAgICAgICAgaDogJ2lzYW5nIG9yYXMnLFxuICAgICAgICAgICAgaGg6ICclZCBvcmFzJyxcbiAgICAgICAgICAgIGQ6ICdpc2FuZyBhcmF3JyxcbiAgICAgICAgICAgIGRkOiAnJWQgYXJhdycsXG4gICAgICAgICAgICBNOiAnaXNhbmcgYnV3YW4nLFxuICAgICAgICAgICAgTU06ICclZCBidXdhbicsXG4gICAgICAgICAgICB5OiAnaXNhbmcgdGFvbicsXG4gICAgICAgICAgICB5eTogJyVkIHRhb24nLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0vLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyO1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGxQaDtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBLbGluZ29uIFt0bGhdXG4vLyEgYXV0aG9yIDogRG9taW5pa2EgS3J1ayA6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbWFyYW50aHJvc2VcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBudW1iZXJzTm91bnMgPSAncGFnaF93YeKAmV9jaGHigJlfd2VqX2xvU192YWdoX2phdl9Tb2NoX2Nob3JnaF9IdXQnLnNwbGl0KCdfJyk7XG5cbiAgICBmdW5jdGlvbiB0cmFuc2xhdGVGdXR1cmUob3V0cHV0KSB7XG4gICAgICAgIHZhciB0aW1lID0gb3V0cHV0O1xuICAgICAgICB0aW1lID1cbiAgICAgICAgICAgIG91dHB1dC5pbmRleE9mKCdqYWonKSAhPT0gLTFcbiAgICAgICAgICAgICAgICA/IHRpbWUuc2xpY2UoMCwgLTMpICsgJ2xlUydcbiAgICAgICAgICAgICAgICA6IG91dHB1dC5pbmRleE9mKCdqYXInKSAhPT0gLTFcbiAgICAgICAgICAgICAgICA/IHRpbWUuc2xpY2UoMCwgLTMpICsgJ3dhUSdcbiAgICAgICAgICAgICAgICA6IG91dHB1dC5pbmRleE9mKCdESVMnKSAhPT0gLTFcbiAgICAgICAgICAgICAgICA/IHRpbWUuc2xpY2UoMCwgLTMpICsgJ25lbSdcbiAgICAgICAgICAgICAgICA6IHRpbWUgKyAnIHBJcSc7XG4gICAgICAgIHJldHVybiB0aW1lO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRyYW5zbGF0ZVBhc3Qob3V0cHV0KSB7XG4gICAgICAgIHZhciB0aW1lID0gb3V0cHV0O1xuICAgICAgICB0aW1lID1cbiAgICAgICAgICAgIG91dHB1dC5pbmRleE9mKCdqYWonKSAhPT0gLTFcbiAgICAgICAgICAgICAgICA/IHRpbWUuc2xpY2UoMCwgLTMpICsgJ0h14oCZJ1xuICAgICAgICAgICAgICAgIDogb3V0cHV0LmluZGV4T2YoJ2phcicpICE9PSAtMVxuICAgICAgICAgICAgICAgID8gdGltZS5zbGljZSgwLCAtMykgKyAnd2VuJ1xuICAgICAgICAgICAgICAgIDogb3V0cHV0LmluZGV4T2YoJ0RJUycpICE9PSAtMVxuICAgICAgICAgICAgICAgID8gdGltZS5zbGljZSgwLCAtMykgKyAnYmVuJ1xuICAgICAgICAgICAgICAgIDogdGltZSArICcgcmV0JztcbiAgICAgICAgcmV0dXJuIHRpbWU7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdHJhbnNsYXRlKG51bWJlciwgd2l0aG91dFN1ZmZpeCwgc3RyaW5nLCBpc0Z1dHVyZSkge1xuICAgICAgICB2YXIgbnVtYmVyTm91biA9IG51bWJlckFzTm91bihudW1iZXIpO1xuICAgICAgICBzd2l0Y2ggKHN0cmluZykge1xuICAgICAgICAgICAgY2FzZSAnc3MnOlxuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXJOb3VuICsgJyBsdXAnO1xuICAgICAgICAgICAgY2FzZSAnbW0nOlxuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXJOb3VuICsgJyB0dXAnO1xuICAgICAgICAgICAgY2FzZSAnaGgnOlxuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXJOb3VuICsgJyByZXAnO1xuICAgICAgICAgICAgY2FzZSAnZGQnOlxuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXJOb3VuICsgJyBqYWonO1xuICAgICAgICAgICAgY2FzZSAnTU0nOlxuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXJOb3VuICsgJyBqYXInO1xuICAgICAgICAgICAgY2FzZSAneXknOlxuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXJOb3VuICsgJyBESVMnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbnVtYmVyQXNOb3VuKG51bWJlcikge1xuICAgICAgICB2YXIgaHVuZHJlZCA9IE1hdGguZmxvb3IoKG51bWJlciAlIDEwMDApIC8gMTAwKSxcbiAgICAgICAgICAgIHRlbiA9IE1hdGguZmxvb3IoKG51bWJlciAlIDEwMCkgLyAxMCksXG4gICAgICAgICAgICBvbmUgPSBudW1iZXIgJSAxMCxcbiAgICAgICAgICAgIHdvcmQgPSAnJztcbiAgICAgICAgaWYgKGh1bmRyZWQgPiAwKSB7XG4gICAgICAgICAgICB3b3JkICs9IG51bWJlcnNOb3Vuc1todW5kcmVkXSArICd2YXRsaCc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRlbiA+IDApIHtcbiAgICAgICAgICAgIHdvcmQgKz0gKHdvcmQgIT09ICcnID8gJyAnIDogJycpICsgbnVtYmVyc05vdW5zW3Rlbl0gKyAnbWFIJztcbiAgICAgICAgfVxuICAgICAgICBpZiAob25lID4gMCkge1xuICAgICAgICAgICAgd29yZCArPSAod29yZCAhPT0gJycgPyAnICcgOiAnJykgKyBudW1iZXJzTm91bnNbb25lXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gd29yZCA9PT0gJycgPyAncGFnaCcgOiB3b3JkO1xuICAgIH1cblxuICAgIHZhciB0bGggPSBtb21lbnQuZGVmaW5lTG9jYWxlKCd0bGgnLCB7XG4gICAgICAgIG1vbnRoczogJ3RlcmHigJkgamFyIHdh4oCZX3RlcmHigJkgamFyIGNoYeKAmV90ZXJh4oCZIGphciB3ZWpfdGVyYeKAmSBqYXIgbG9TX3RlcmHigJkgamFyIHZhZ2hfdGVyYeKAmSBqYXIgamF2X3RlcmHigJkgamFyIFNvY2hfdGVyYeKAmSBqYXIgY2hvcmdoX3RlcmHigJkgamFyIEh1dF90ZXJh4oCZIGphciB3YeKAmW1hSF90ZXJh4oCZIGphciB3YeKAmW1hSCB3YeKAmV90ZXJh4oCZIGphciB3YeKAmW1hSCBjaGHigJknLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnamFyIHdh4oCZX2phciBjaGHigJlfamFyIHdlal9qYXIgbG9TX2phciB2YWdoX2phciBqYXZfamFyIFNvY2hfamFyIGNob3JnaF9qYXIgSHV0X2phciB3YeKAmW1hSF9qYXIgd2HigJltYUggd2HigJlfamFyIHdh4oCZbWFIIGNoYeKAmScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXM6ICdsb2ptSXRqYWpfRGFTamFqX3Bvdmphal9naEl0bGhqYWpfbG9naGphal9idXFqYWpfZ2hJbmphaicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ2xvam1JdGphal9EYVNqYWpfcG92amFqX2doSXRsaGphal9sb2doamFqX2J1cWphal9naEluamFqJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ2xvam1JdGphal9EYVNqYWpfcG92amFqX2doSXRsaGphal9sb2doamFqX2J1cWphal9naEluamFqJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW0RhSGphal0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1t3YeKAmWxlU10gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdMTEwnLFxuICAgICAgICAgICAgbGFzdERheTogJ1t3YeKAmUh14oCZXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ0xMTCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogdHJhbnNsYXRlRnV0dXJlLFxuICAgICAgICAgICAgcGFzdDogdHJhbnNsYXRlUGFzdCxcbiAgICAgICAgICAgIHM6ICdwdVMgbHVwJyxcbiAgICAgICAgICAgIHNzOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBtOiAnd2HigJkgdHVwJyxcbiAgICAgICAgICAgIG1tOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBoOiAnd2HigJkgcmVwJyxcbiAgICAgICAgICAgIGhoOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBkOiAnd2HigJkgamFqJyxcbiAgICAgICAgICAgIGRkOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBNOiAnd2HigJkgamFyJyxcbiAgICAgICAgICAgIE1NOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICB5OiAnd2HigJkgRElTJyxcbiAgICAgICAgICAgIHl5OiB0cmFuc2xhdGUsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfVxcLi8sXG4gICAgICAgIG9yZGluYWw6ICclZC4nLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGxoO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IFR1cmtpc2ggW3RyXVxuLy8hIGF1dGhvcnMgOiBFcmhhbiBHdW5kb2dhbiA6IGh0dHBzOi8vZ2l0aHViLmNvbS9lcmhhbmd1bmRvZ2FuLFxuLy8hICAgICAgICAgICBCdXJhayBZacSfaXQgS2F5YTogaHR0cHM6Ly9naXRodWIuY29tL0JZS1xuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHN1ZmZpeGVzID0ge1xuICAgICAgICAxOiBcIidpbmNpXCIsXG4gICAgICAgIDU6IFwiJ2luY2lcIixcbiAgICAgICAgODogXCInaW5jaVwiLFxuICAgICAgICA3MDogXCInaW5jaVwiLFxuICAgICAgICA4MDogXCInaW5jaVwiLFxuICAgICAgICAyOiBcIiduY2lcIixcbiAgICAgICAgNzogXCInbmNpXCIsXG4gICAgICAgIDIwOiBcIiduY2lcIixcbiAgICAgICAgNTA6IFwiJ25jaVwiLFxuICAgICAgICAzOiBcIifDvG5jw7xcIixcbiAgICAgICAgNDogXCInw7xuY8O8XCIsXG4gICAgICAgIDEwMDogXCInw7xuY8O8XCIsXG4gICAgICAgIDY6IFwiJ25jxLFcIixcbiAgICAgICAgOTogXCIndW5jdVwiLFxuICAgICAgICAxMDogXCIndW5jdVwiLFxuICAgICAgICAzMDogXCIndW5jdVwiLFxuICAgICAgICA2MDogXCInxLFuY8SxXCIsXG4gICAgICAgIDkwOiBcIifEsW5jxLFcIixcbiAgICB9O1xuXG4gICAgdmFyIHRyID0gbW9tZW50LmRlZmluZUxvY2FsZSgndHInLCB7XG4gICAgICAgIG1vbnRoczogJ09jYWtfxZ51YmF0X01hcnRfTmlzYW5fTWF5xLFzX0hhemlyYW5fVGVtbXV6X0HEn3VzdG9zX0V5bMO8bF9Fa2ltX0thc8SxbV9BcmFsxLFrJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ09jYV/FnnViX01hcl9OaXNfTWF5X0hhel9UZW1fQcSfdV9FeWxfRWtpX0thc19BcmEnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAnUGF6YXJfUGF6YXJ0ZXNpX1NhbMSxX8OHYXLFn2FtYmFfUGVyxZ9lbWJlX0N1bWFfQ3VtYXJ0ZXNpJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnUGF6X1B0c19TYWxfw4dhcl9QZXJfQ3VtX0N0cycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdQel9QdF9TYV/Dh2FfUGVfQ3VfQ3QnLnNwbGl0KCdfJyksXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91cnMsIG1pbnV0ZXMsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VycyA8IDEyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzTG93ZXIgPyAnw7bDticgOiAnw5bDlic7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBpc0xvd2VyID8gJ8O2cycgOiAnw5ZTJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL8O2w7Z8w5bDlnzDtnN8w5ZTLyxcbiAgICAgICAgaXNQTTogZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gaW5wdXQgPT09ICfDtnMnIHx8IGlucHV0ID09PSAnw5ZTJztcbiAgICAgICAgfSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tidWfDvG4gc2FhdF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1t5YXLEsW4gc2FhdF0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdbZ2VsZWNla10gZGRkZCBbc2FhdF0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tkw7xuXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1tnZcOnZW5dIGRkZGQgW3NhYXRdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnJXMgc29ucmEnLFxuICAgICAgICAgICAgcGFzdDogJyVzIMO2bmNlJyxcbiAgICAgICAgICAgIHM6ICdiaXJrYcOnIHNhbml5ZScsXG4gICAgICAgICAgICBzczogJyVkIHNhbml5ZScsXG4gICAgICAgICAgICBtOiAnYmlyIGRha2lrYScsXG4gICAgICAgICAgICBtbTogJyVkIGRha2lrYScsXG4gICAgICAgICAgICBoOiAnYmlyIHNhYXQnLFxuICAgICAgICAgICAgaGg6ICclZCBzYWF0JyxcbiAgICAgICAgICAgIGQ6ICdiaXIgZ8O8bicsXG4gICAgICAgICAgICBkZDogJyVkIGfDvG4nLFxuICAgICAgICAgICAgTTogJ2JpciBheScsXG4gICAgICAgICAgICBNTTogJyVkIGF5JyxcbiAgICAgICAgICAgIHk6ICdiaXIgecSxbCcsXG4gICAgICAgICAgICB5eTogJyVkIHnEsWwnLFxuICAgICAgICB9LFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyLCBwZXJpb2QpIHtcbiAgICAgICAgICAgIHN3aXRjaCAocGVyaW9kKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnZCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnRCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnRG8nOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0REJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlcjtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBpZiAobnVtYmVyID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBzcGVjaWFsIGNhc2UgZm9yIHplcm9cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyBcIifEsW5jxLFcIjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB2YXIgYSA9IG51bWJlciAlIDEwLFxuICAgICAgICAgICAgICAgICAgICAgICAgYiA9IChudW1iZXIgJSAxMDApIC0gYSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGMgPSBudW1iZXIgPj0gMTAwID8gMTAwIDogbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIChzdWZmaXhlc1thXSB8fCBzdWZmaXhlc1tiXSB8fCBzdWZmaXhlc1tjXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDcsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDd0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiB0cjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBUYWxvc3NhbiBbdHpsXVxuLy8hIGF1dGhvciA6IFJvYmluIHZhbiBkZXIgVmxpZXQgOiBodHRwczovL2dpdGh1Yi5jb20vcm9iaW4wdmFuMGRlcjB2XG4vLyEgYXV0aG9yIDogSXVzdMOsIENhbnVuXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICAvLyBBZnRlciB0aGUgeWVhciB0aGVyZSBzaG91bGQgYmUgYSBzbGFzaCBhbmQgdGhlIGFtb3VudCBvZiB5ZWFycyBzaW5jZSBEZWNlbWJlciAyNiwgMTk3OSBpbiBSb21hbiBudW1lcmFscy5cbiAgICAvLyBUaGlzIGlzIGN1cnJlbnRseSB0b28gZGlmZmljdWx0IChtYXliZSBldmVuIGltcG9zc2libGUpIHRvIGFkZC5cbiAgICB2YXIgdHpsID0gbW9tZW50LmRlZmluZUxvY2FsZSgndHpsJywge1xuICAgICAgICBtb250aHM6ICdKYW51YXJfRmV2cmFnbGhfTWFyw6dfQXZyw691X01haV9Hw7xuX0p1bGlhX0d1c2NodF9TZXRlbXZhcl9MaXN0b3DDpHRzX05vZW12YXJfWmVjZW12YXInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnSmFuX0Zldl9NYXJfQXZyX01haV9Hw7xuX0p1bF9HdXNfU2V0X0xpc19Ob2VfWmVjJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ1PDumxhZGlfTMO6bmXDp2lfTWFpdHppX03DoXJjdXJpX1how7phZGlfVmnDqW5lcsOnaV9Tw6F0dXJpJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnU8O6bF9Mw7puX01haV9Nw6FyX1how7pfVmnDqV9Tw6F0Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ1PDul9Mw7pfTWFfTcOhX1hoX1ZpX1PDoScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEgubW0nLFxuICAgICAgICAgICAgTFRTOiAnSEgubW0uc3MnLFxuICAgICAgICAgICAgTDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEw6ICdELiBNTU1NIFtkYWxsYXNdIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRC4gTU1NTSBbZGFsbGFzXSBZWVlZIEhILm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBbbGldIEQuIE1NTU0gW2RhbGxhc10gWVlZWSBISC5tbScsXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC9kXFwnb3xkXFwnYS9pLFxuICAgICAgICBpc1BNOiBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgICAgIHJldHVybiBcImQnb1wiID09PSBpbnB1dC50b0xvd2VyQ2FzZSgpO1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXJzLCBtaW51dGVzLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91cnMgPiAxMSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpc0xvd2VyID8gXCJkJ29cIiA6IFwiRCdPXCI7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBpc0xvd2VyID8gXCJkJ2FcIiA6IFwiRCdBXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW294aGkgw6BdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbZGVtw6Agw6BdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbw6BdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbaWVpcmkgw6BdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW3PDvHIgZWxdIGRkZGQgW2xhc3RldSDDoF0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdvc3ByZWkgJXMnLFxuICAgICAgICAgICAgcGFzdDogJ2phJXMnLFxuICAgICAgICAgICAgczogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIHNzOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgbTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIG1tOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgaDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIGhoOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgZDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIGRkOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgTTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIE1NOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgeTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIHl5OiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn1cXC4vLFxuICAgICAgICBvcmRpbmFsOiAnJWQuJyxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgZnVuY3Rpb24gcHJvY2Vzc1JlbGF0aXZlVGltZShudW1iZXIsIHdpdGhvdXRTdWZmaXgsIGtleSwgaXNGdXR1cmUpIHtcbiAgICAgICAgdmFyIGZvcm1hdCA9IHtcbiAgICAgICAgICAgIHM6IFsndmllbnNhcyBzZWN1bmRzJywgXCInaWVuc2FzIHNlY3VuZHNcIl0sXG4gICAgICAgICAgICBzczogW251bWJlciArICcgc2VjdW5kcycsICcnICsgbnVtYmVyICsgJyBzZWN1bmRzJ10sXG4gICAgICAgICAgICBtOiBbXCInbiBtw611dFwiLCBcIidpZW5zIG3DrXV0XCJdLFxuICAgICAgICAgICAgbW06IFtudW1iZXIgKyAnIG3DrXV0cycsICcnICsgbnVtYmVyICsgJyBtw611dHMnXSxcbiAgICAgICAgICAgIGg6IFtcIiduIMO+b3JhXCIsIFwiJ2llbnNhIMO+b3JhXCJdLFxuICAgICAgICAgICAgaGg6IFtudW1iZXIgKyAnIMO+b3JhcycsICcnICsgbnVtYmVyICsgJyDDvm9yYXMnXSxcbiAgICAgICAgICAgIGQ6IFtcIiduIHppdWFcIiwgXCInaWVuc2Egeml1YVwiXSxcbiAgICAgICAgICAgIGRkOiBbbnVtYmVyICsgJyB6aXVhcycsICcnICsgbnVtYmVyICsgJyB6aXVhcyddLFxuICAgICAgICAgICAgTTogW1wiJ24gbWVzXCIsIFwiJ2llbnMgbWVzXCJdLFxuICAgICAgICAgICAgTU06IFtudW1iZXIgKyAnIG1lc2VuJywgJycgKyBudW1iZXIgKyAnIG1lc2VuJ10sXG4gICAgICAgICAgICB5OiBbXCInbiBhclwiLCBcIidpZW5zIGFyXCJdLFxuICAgICAgICAgICAgeXk6IFtudW1iZXIgKyAnIGFycycsICcnICsgbnVtYmVyICsgJyBhcnMnXSxcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIGlzRnV0dXJlXG4gICAgICAgICAgICA/IGZvcm1hdFtrZXldWzBdXG4gICAgICAgICAgICA6IHdpdGhvdXRTdWZmaXhcbiAgICAgICAgICAgID8gZm9ybWF0W2tleV1bMF1cbiAgICAgICAgICAgIDogZm9ybWF0W2tleV1bMV07XG4gICAgfVxuXG4gICAgcmV0dXJuIHR6bDtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBDZW50cmFsIEF0bGFzIFRhbWF6aWdodCBbdHptXVxuLy8hIGF1dGhvciA6IEFiZGVsIFNhaWQgOiBodHRwczovL2dpdGh1Yi5jb20vYWJkZWxzYWlkXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgdHptID0gbW9tZW50LmRlZmluZUxvY2FsZSgndHptJywge1xuICAgICAgICBtb250aHM6ICfitYnitY/itY/itLDitaLitZRf4rSx4rWV4rSw4rWi4rWVX+K1juK0sOK1leK1ml/itYnitLHitZTitYnitZRf4rWO4rSw4rWi4rWi4rWTX+K1ouK1k+K1j+K1ouK1k1/itaLitZPitY3itaLitZPitaNf4rWW4rWT4rWb4rWcX+K1m+K1k+K1nOK0sOK1j+K0seK1ieK1lF/itL3itZ/itZPitLHitZVf4rWP4rWT4rWh4rSw4rWP4rSx4rWJ4rWUX+K0t+K1k+K1iuK1j+K0seK1ieK1lCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICfitYnitY/itY/itLDitaLitZRf4rSx4rWV4rSw4rWi4rWVX+K1juK0sOK1leK1ml/itYnitLHitZTitYnitZRf4rWO4rSw4rWi4rWi4rWTX+K1ouK1k+K1j+K1ouK1k1/itaLitZPitY3itaLitZPitaNf4rWW4rWT4rWb4rWcX+K1m+K1k+K1nOK0sOK1j+K0seK1ieK1lF/itL3itZ/itZPitLHitZVf4rWP4rWT4rWh4rSw4rWP4rSx4rWJ4rWUX+K0t+K1k+K1iuK1j+K0seK1ieK1lCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXM6ICfitLDitZnitLDitY7itLDitZlf4rSw4rWi4rWP4rSw4rWZX+K0sOK1meK1ieK1j+K0sOK1mV/itLDitL3itZTitLDitZlf4rSw4rS94rWh4rSw4rWZX+K0sOK1meK1ieK1juK1oeK0sOK1mV/itLDitZnitYnitLnitaLitLDitZknLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfitLDitZnitLDitY7itLDitZlf4rSw4rWi4rWP4rSw4rWZX+K0sOK1meK1ieK1j+K0sOK1mV/itLDitL3itZTitLDitZlf4rSw4rS94rWh4rSw4rWZX+K0sOK1meK1ieK1juK1oeK0sOK1mV/itLDitZnitYnitLnitaLitLDitZknLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn4rSw4rWZ4rSw4rWO4rSw4rWZX+K0sOK1ouK1j+K0sOK1mV/itLDitZnitYnitY/itLDitZlf4rSw4rS94rWU4rSw4rWZX+K0sOK0veK1oeK0sOK1mV/itLDitZnitYnitY7itaHitLDitZlf4rSw4rWZ4rWJ4rS54rWi4rSw4rWZJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb4rSw4rWZ4rS34rWFIOK0tF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vitLDitZnitL3itLAg4rS0XSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW+K0tF0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vitLDitZritLDitY/itZwg4rS0XSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ2RkZGQgW+K0tF0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICfitLfitLDitLfitYUg4rWZIOK1ouK0sOK1jyAlcycsXG4gICAgICAgICAgICBwYXN0OiAn4rWi4rSw4rWPICVzJyxcbiAgICAgICAgICAgIHM6ICfitYnitY7itYnitL0nLFxuICAgICAgICAgICAgc3M6ICclZCDitYnitY7itYnitL0nLFxuICAgICAgICAgICAgbTogJ+K1juK1ieK1j+K1k+K0uicsXG4gICAgICAgICAgICBtbTogJyVkIOK1juK1ieK1j+K1k+K0uicsXG4gICAgICAgICAgICBoOiAn4rWZ4rSw4rWE4rSwJyxcbiAgICAgICAgICAgIGhoOiAnJWQg4rWc4rSw4rWZ4rWZ4rSw4rWE4rWJ4rWPJyxcbiAgICAgICAgICAgIGQ6ICfitLDitZnitZknLFxuICAgICAgICAgICAgZGQ6ICclZCBv4rWZ4rWZ4rSw4rWPJyxcbiAgICAgICAgICAgIE06ICfitLDitaJv4rWT4rWUJyxcbiAgICAgICAgICAgIE1NOiAnJWQg4rWJ4rWi4rWi4rWJ4rWU4rWPJyxcbiAgICAgICAgICAgIHk6ICfitLDitZnitLPitLDitZknLFxuICAgICAgICAgICAgeXk6ICclZCDitYnitZnitLPitLDitZnitY8nLFxuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDYsIC8vIFNhdHVyZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDEyLCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiAxMnRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHR6bTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBDZW50cmFsIEF0bGFzIFRhbWF6aWdodCBMYXRpbiBbdHptLWxhdG5dXG4vLyEgYXV0aG9yIDogQWJkZWwgU2FpZCA6IGh0dHBzOi8vZ2l0aHViLmNvbS9hYmRlbHNhaWRcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciB0em1MYXRuID0gbW9tZW50LmRlZmluZUxvY2FsZSgndHptLWxhdG4nLCB7XG4gICAgICAgIG1vbnRoczogJ2lubmF5cl9icsukYXlyy6RfbWFyy6Rzy6RfaWJyaXJfbWF5eXdfeXdueXdfeXdseXd6X8mjd8WhdF/FoXd0YW5iaXJfa3TLpHdicsukX253d2FuYmlyX2R3am5iaXInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnaW5uYXlyX2Jyy6RheXLLpF9tYXLLpHPLpF9pYnJpcl9tYXl5d195d255d195d2x5d3pfyaN3xaF0X8Whd3RhbmJpcl9rdMukd2Jyy6Rfbnd3YW5iaXJfZHdqbmJpcicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXM6ICdhc2FtYXNfYXluYXNfYXNpbmFzX2FrcmFzX2Frd2FzX2FzaW13YXNfYXNp4biNeWFzJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnYXNhbWFzX2F5bmFzX2FzaW5hc19ha3Jhc19ha3dhc19hc2ltd2FzX2FzaeG4jXlhcycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdhc2FtYXNfYXluYXNfYXNpbmFzX2FrcmFzX2Frd2FzX2FzaW13YXNfYXNp4biNeWFzJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbYXNka2ggZ10gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1thc2thIGddIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbZ10gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1thc3NhbnQgZ10gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdkZGRkIFtnXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ2RhZGtoIHMgeWFuICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICd5YW4gJXMnLFxuICAgICAgICAgICAgczogJ2ltaWsnLFxuICAgICAgICAgICAgc3M6ICclZCBpbWlrJyxcbiAgICAgICAgICAgIG06ICdtaW514biNJyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWludeG4jScsXG4gICAgICAgICAgICBoOiAnc2HJm2EnLFxuICAgICAgICAgICAgaGg6ICclZCB0YXNzYcmbaW4nLFxuICAgICAgICAgICAgZDogJ2FzcycsXG4gICAgICAgICAgICBkZDogJyVkIG9zc2FuJyxcbiAgICAgICAgICAgIE06ICdheW93cicsXG4gICAgICAgICAgICBNTTogJyVkIGl5eWlybicsXG4gICAgICAgICAgICB5OiAnYXNnYXMnLFxuICAgICAgICAgICAgeXk6ICclZCBpc2dhc24nLFxuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDYsIC8vIFNhdHVyZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDEyLCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiAxMnRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHR6bUxhdG47XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxhbmd1YWdlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBVeWdodXIgKENoaW5hKSBbdWctY25dXG4vLyEgYXV0aG9yOiBib3lhcSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9ib3lhcVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsYW5ndWFnZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgdWdDbiA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3VnLWNuJywge1xuICAgICAgICBtb250aHM6ICfZitin2Ybbi9in2LFf2YHbkNuL2LHYp9mEX9mF2KfYsdiqX9im2KfZvtix25DZhF/Zhdin2Ypf2KbZidmK24fZhl/YptmJ2Yrbh9mEX9im2Kfbi9i624fYs9iqX9iz25DZhtiq25XYqNmJ2LFf2KbbhtmD2Krbldio2YnYsV/ZhtmI2YrYp9io2YnYsV/Yr9uQ2YPYp9io2YnYsScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICfZitin2Ybbi9in2LFf2YHbkNuL2LHYp9mEX9mF2KfYsdiqX9im2KfZvtix25DZhF/Zhdin2Ypf2KbZidmK24fZhl/YptmJ2Yrbh9mEX9im2Kfbi9i624fYs9iqX9iz25DZhtiq25XYqNmJ2LFf2KbbhtmD2Krbldio2YnYsV/ZhtmI2YrYp9io2YnYsV/Yr9uQ2YPYp9io2YnYsScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXM6ICfZituV2YPYtNuV2YbYqNuVX9iv24jYtNuV2YbYqNuVX9iz25XZiti025XZhtio25Vf2obYp9ix2LTbldmG2KjblV/ZvtuV2YrYtNuV2YbYqNuVX9is24jZhduVX9i025XZhtio25UnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfZituVX9iv24hf2LPblV/ahtinX9m+25Vf2KzbiF/YtNuVJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ9mK25Vf2K/biF/Ys9uVX9qG2Kdf2b7blV/YrNuIX9i025UnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdZWVlZLU1NLUREJyxcbiAgICAgICAgICAgIExMOiAnWVlZWS3ZitmJ2YTZiU0t2KbYp9mK2YbZidqtRC3Zg9uI2YbZiScsXG4gICAgICAgICAgICBMTEw6ICdZWVlZLdmK2YnZhNmJTS3Yptin2YrZhtmJ2q1ELdmD24jZhtmJ2IwgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGTYjCBZWVlZLdmK2YnZhNmJTS3Yptin2YrZhtmJ2q1ELdmD24jZhtmJ2IwgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv2YrbkNix2YnZhSDZg9uQ2obblXzYs9uV2r7bldixfNqG24jYtNiq2YnZhiDYqNuH2LHbh9mGfNqG24jYtHzahtuI2LTYqtmJ2YYg2YPbkNmK2YnZhnzZg9uV2oYvLFxuICAgICAgICBtZXJpZGllbUhvdXI6IGZ1bmN0aW9uIChob3VyLCBtZXJpZGllbSkge1xuICAgICAgICAgICAgaWYgKGhvdXIgPT09IDEyKSB7XG4gICAgICAgICAgICAgICAgaG91ciA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgbWVyaWRpZW0gPT09ICfZituQ2LHZidmFINmD25DahtuVJyB8fFxuICAgICAgICAgICAgICAgIG1lcmlkaWVtID09PSAn2LPbldq+25XYsScgfHxcbiAgICAgICAgICAgICAgICBtZXJpZGllbSA9PT0gJ9qG24jYtNiq2YnZhiDYqNuH2LHbh9mGJ1xuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAn2obbiNi02KrZidmGINmD25DZitmJ2YYnIHx8IG1lcmlkaWVtID09PSAn2YPbldqGJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyICsgMTI7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyID49IDExID8gaG91ciA6IGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIHZhciBobSA9IGhvdXIgKiAxMDAgKyBtaW51dGU7XG4gICAgICAgICAgICBpZiAoaG0gPCA2MDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9mK25DYsdmJ2YUg2YPbkNqG25UnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChobSA8IDkwMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn2LPbldq+25XYsSc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhtIDwgMTEzMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn2obbiNi02KrZidmGINio24fYsduH2YYnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChobSA8IDEyMzApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9qG24jYtCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhtIDwgMTgwMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn2obbiNi02KrZidmGINmD25DZitmJ2YYnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9mD25Xahic7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW9io24jar9uI2YYg2LPYp9im25XYql0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vYptuV2KrblSDYs9in2KbbldiqXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ1vZg9uQ2YTbldix2YPZiV0gZGRkZCBb2LPYp9im25XYql0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vYqtuG2YbbiNqv24jZhl0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdb2KbYp9mE2K/ZidmG2YLZiV0gZGRkZCBb2LPYp9im25XYql0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICclcyDZg9uQ2YrZidmGJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyDYqNuH2LHbh9mGJyxcbiAgICAgICAgICAgIHM6ICfZhtuV2obahtuVINiz25DZg9mI2YbYqicsXG4gICAgICAgICAgICBzczogJyVkINiz25DZg9mI2YbYqicsXG4gICAgICAgICAgICBtOiAn2KjZidixINmF2YnZhtuH2KonLFxuICAgICAgICAgICAgbW06ICclZCDZhdmJ2Ybbh9iqJyxcbiAgICAgICAgICAgIGg6ICfYqNmJ2LEg2LPYp9im25XYqicsXG4gICAgICAgICAgICBoaDogJyVkINiz2KfYptuV2KonLFxuICAgICAgICAgICAgZDogJ9io2YnYsSDZg9uI2YYnLFxuICAgICAgICAgICAgZGQ6ICclZCDZg9uI2YYnLFxuICAgICAgICAgICAgTTogJ9io2YnYsSDYptin2YonLFxuICAgICAgICAgICAgTU06ICclZCDYptin2YonLFxuICAgICAgICAgICAgeTogJ9io2YnYsSDZitmJ2YQnLFxuICAgICAgICAgICAgeXk6ICclZCDZitmJ2YQnLFxuICAgICAgICB9LFxuXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfSgt2YPbiNmG2Yl8Ldim2KfZinwt2r7bldm+2KrblSkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyLCBwZXJpb2QpIHtcbiAgICAgICAgICAgIHN3aXRjaCAocGVyaW9kKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnZCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnRCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnREREJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICct2YPbiNmG2YknO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3cnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ1cnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJy3avtuV2b7YqtuVJztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBwcmVwYXJzZTogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC/YjC9nLCAnLCcpO1xuICAgICAgICB9LFxuICAgICAgICBwb3N0Zm9ybWF0OiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoLywvZywgJ9iMJyk7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIC8vIEdCL1QgNzQwOC0xOTk044CK5pWw5o2u5YWD5ZKM5Lqk5o2i5qC85byPwrfkv6Hmga/kuqTmjaLCt+aXpeacn+WSjOaXtumXtOihqOekuuazleOAi+S4jklTTyA4NjAxOjE5ODjnrYnmlYhcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDcsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDFzdCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiB1Z0NuO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IFVrcmFpbmlhbiBbdWtdXG4vLyEgYXV0aG9yIDogemVtbGFuaW4gOiBodHRwczovL2dpdGh1Yi5jb20vemVtbGFuaW5cbi8vISBBdXRob3IgOiBNZW5lbGlvbiBFbGVuc8O6bGUgOiBodHRwczovL2dpdGh1Yi5jb20vT2lyZVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgZnVuY3Rpb24gcGx1cmFsKHdvcmQsIG51bSkge1xuICAgICAgICB2YXIgZm9ybXMgPSB3b3JkLnNwbGl0KCdfJyk7XG4gICAgICAgIHJldHVybiBudW0gJSAxMCA9PT0gMSAmJiBudW0gJSAxMDAgIT09IDExXG4gICAgICAgICAgICA/IGZvcm1zWzBdXG4gICAgICAgICAgICA6IG51bSAlIDEwID49IDIgJiYgbnVtICUgMTAgPD0gNCAmJiAobnVtICUgMTAwIDwgMTAgfHwgbnVtICUgMTAwID49IDIwKVxuICAgICAgICAgICAgPyBmb3Jtc1sxXVxuICAgICAgICAgICAgOiBmb3Jtc1syXTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVsYXRpdmVUaW1lV2l0aFBsdXJhbChudW1iZXIsIHdpdGhvdXRTdWZmaXgsIGtleSkge1xuICAgICAgICB2YXIgZm9ybWF0ID0ge1xuICAgICAgICAgICAgc3M6IHdpdGhvdXRTdWZmaXggPyAn0YHQtdC60YPQvdC00LBf0YHQtdC60YPQvdC00Lhf0YHQtdC60YPQvdC0JyA6ICfRgdC10LrRg9C90LTRg1/RgdC10LrRg9C90LTQuF/RgdC10LrRg9C90LQnLFxuICAgICAgICAgICAgbW06IHdpdGhvdXRTdWZmaXggPyAn0YXQstC40LvQuNC90LBf0YXQstC40LvQuNC90Lhf0YXQstC40LvQuNC9JyA6ICfRhdCy0LjQu9C40L3Rg1/RhdCy0LjQu9C40L3QuF/RhdCy0LjQu9C40L0nLFxuICAgICAgICAgICAgaGg6IHdpdGhvdXRTdWZmaXggPyAn0LPQvtC00LjQvdCwX9Cz0L7QtNC40L3QuF/Qs9C+0LTQuNC9JyA6ICfQs9C+0LTQuNC90YNf0LPQvtC00LjQvdC4X9Cz0L7QtNC40L0nLFxuICAgICAgICAgICAgZGQ6ICfQtNC10L3RjF/QtNC90ZZf0LTQvdGW0LInLFxuICAgICAgICAgICAgTU06ICfQvNGW0YHRj9GG0Yxf0LzRltGB0Y/RhtGWX9C80ZbRgdGP0YbRltCyJyxcbiAgICAgICAgICAgIHl5OiAn0YDRltC6X9GA0L7QutC4X9GA0L7QutGW0LInLFxuICAgICAgICB9O1xuICAgICAgICBpZiAoa2V5ID09PSAnbScpIHtcbiAgICAgICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4ID8gJ9GF0LLQuNC70LjQvdCwJyA6ICfRhdCy0LjQu9C40L3Rgyc7XG4gICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnaCcpIHtcbiAgICAgICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4ID8gJ9Cz0L7QtNC40L3QsCcgOiAn0LPQvtC00LjQvdGDJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnICcgKyBwbHVyYWwoZm9ybWF0W2tleV0sICtudW1iZXIpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHdlZWtkYXlzQ2FzZVJlcGxhY2UobSwgZm9ybWF0KSB7XG4gICAgICAgIHZhciB3ZWVrZGF5cyA9IHtcbiAgICAgICAgICAgICAgICBub21pbmF0aXZlOiAn0L3QtdC00ZbQu9GPX9C/0L7QvdC10LTRltC70L7Qul/QstGW0LLRgtC+0YDQvtC6X9GB0LXRgNC10LTQsF/Rh9C10YLQstC10YBf0L/igJnRj9GC0L3QuNGG0Y9f0YHRg9Cx0L7RgtCwJy5zcGxpdChcbiAgICAgICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICBhY2N1c2F0aXZlOiAn0L3QtdC00ZbQu9GOX9C/0L7QvdC10LTRltC70L7Qul/QstGW0LLRgtC+0YDQvtC6X9GB0LXRgNC10LTRg1/Rh9C10YLQstC10YBf0L/igJnRj9GC0L3QuNGG0Y5f0YHRg9Cx0L7RgtGDJy5zcGxpdChcbiAgICAgICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICBnZW5pdGl2ZTogJ9C90LXQtNGW0LvRll/Qv9C+0L3QtdC00ZbQu9C60LBf0LLRltCy0YLQvtGA0LrQsF/RgdC10YDQtdC00Lhf0YfQtdGC0LLQtdGA0LPQsF/Qv+KAmdGP0YLQvdC40YbRll/RgdGD0LHQvtGC0LgnLnNwbGl0KFxuICAgICAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG5vdW5DYXNlO1xuXG4gICAgICAgIGlmIChtID09PSB0cnVlKSB7XG4gICAgICAgICAgICByZXR1cm4gd2Vla2RheXNbJ25vbWluYXRpdmUnXVxuICAgICAgICAgICAgICAgIC5zbGljZSgxLCA3KVxuICAgICAgICAgICAgICAgIC5jb25jYXQod2Vla2RheXNbJ25vbWluYXRpdmUnXS5zbGljZSgwLCAxKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFtKSB7XG4gICAgICAgICAgICByZXR1cm4gd2Vla2RheXNbJ25vbWluYXRpdmUnXTtcbiAgICAgICAgfVxuXG4gICAgICAgIG5vdW5DYXNlID0gLyhcXFtb0JLQstCj0YNdXFxdKSA/ZGRkZC8udGVzdChmb3JtYXQpXG4gICAgICAgICAgICA/ICdhY2N1c2F0aXZlJ1xuICAgICAgICAgICAgOiAvXFxbPyg/OtC80LjQvdGD0LvQvtGXfNC90LDRgdGC0YPQv9C90L7Rlyk/ID9cXF0gP2RkZGQvLnRlc3QoZm9ybWF0KVxuICAgICAgICAgICAgPyAnZ2VuaXRpdmUnXG4gICAgICAgICAgICA6ICdub21pbmF0aXZlJztcbiAgICAgICAgcmV0dXJuIHdlZWtkYXlzW25vdW5DYXNlXVttLmRheSgpXTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcHJvY2Vzc0hvdXJzRnVuY3Rpb24oc3RyKSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyICsgJ9C+JyArICh0aGlzLmhvdXJzKCkgPT09IDExID8gJ9CxJyA6ICcnKSArICddIExUJztcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICB2YXIgdWsgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCd1aycsIHtcbiAgICAgICAgbW9udGhzOiB7XG4gICAgICAgICAgICBmb3JtYXQ6ICfRgdGW0YfQvdGPX9C70Y7RgtC+0LPQvl/QsdC10YDQtdC30L3Rj1/QutCy0ZbRgtC90Y9f0YLRgNCw0LLQvdGPX9GH0LXRgNCy0L3Rj1/Qu9C40L/QvdGPX9GB0LXRgNC/0L3Rj1/QstC10YDQtdGB0L3Rj1/QttC+0LLRgtC90Y9f0LvQuNGB0YLQvtC/0LDQtNCwX9Cz0YDRg9C00L3Rjycuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgc3RhbmRhbG9uZTogJ9GB0ZbRh9C10L3RjF/Qu9GO0YLQuNC5X9Cx0LXRgNC10LfQtdC90Yxf0LrQstGW0YLQtdC90Yxf0YLRgNCw0LLQtdC90Yxf0YfQtdGA0LLQtdC90Yxf0LvQuNC/0LXQvdGMX9GB0LXRgNC/0LXQvdGMX9Cy0LXRgNC10YHQtdC90Yxf0LbQvtCy0YLQtdC90Yxf0LvQuNGB0YLQvtC/0LDQtF/Qs9GA0YPQtNC10L3RjCcuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICB9LFxuICAgICAgICBtb250aHNTaG9ydDogJ9GB0ZbRh1/Qu9GO0YJf0LHQtdGAX9C60LLRltGCX9GC0YDQsNCyX9GH0LXRgNCyX9C70LjQv1/RgdC10YDQv1/QstC10YBf0LbQvtCy0YJf0LvQuNGB0YJf0LPRgNGD0LQnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzOiB3ZWVrZGF5c0Nhc2VSZXBsYWNlLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn0L3QtF/Qv9C9X9Cy0YJf0YHRgF/Rh9GCX9C/0YJf0YHQsScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfQvdC0X9C/0L1f0LLRgl/RgdGAX9GH0YJf0L/Rgl/RgdCxJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZINGALicsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSDRgC4sIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSDRgC4sIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6IHByb2Nlc3NIb3Vyc0Z1bmN0aW9uKCdb0KHRjNC+0LPQvtC00L3RliAnKSxcbiAgICAgICAgICAgIG5leHREYXk6IHByb2Nlc3NIb3Vyc0Z1bmN0aW9uKCdb0JfQsNCy0YLRgNCwICcpLFxuICAgICAgICAgICAgbGFzdERheTogcHJvY2Vzc0hvdXJzRnVuY3Rpb24oJ1vQktGH0L7RgNCwICcpLFxuICAgICAgICAgICAgbmV4dFdlZWs6IHByb2Nlc3NIb3Vyc0Z1bmN0aW9uKCdb0KNdIGRkZGQgWycpLFxuICAgICAgICAgICAgbGFzdFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHRoaXMuZGF5KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHByb2Nlc3NIb3Vyc0Z1bmN0aW9uKCdb0JzQuNC90YPQu9C+0ZddIGRkZGQgWycpLmNhbGwodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHJvY2Vzc0hvdXJzRnVuY3Rpb24oJ1vQnNC40L3Rg9C70L7Qs9C+XSBkZGRkIFsnKS5jYWxsKHRoaXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ9C30LAgJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzINGC0L7QvNGDJyxcbiAgICAgICAgICAgIHM6ICfQtNC10LrRltC70YzQutCwINGB0LXQutGD0L3QtCcsXG4gICAgICAgICAgICBzczogcmVsYXRpdmVUaW1lV2l0aFBsdXJhbCxcbiAgICAgICAgICAgIG06IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgICAgICBtbTogcmVsYXRpdmVUaW1lV2l0aFBsdXJhbCxcbiAgICAgICAgICAgIGg6ICfQs9C+0LTQuNC90YMnLFxuICAgICAgICAgICAgaGg6IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgICAgICBkOiAn0LTQtdC90YwnLFxuICAgICAgICAgICAgZGQ6IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgICAgICBNOiAn0LzRltGB0Y/RhtGMJyxcbiAgICAgICAgICAgIE1NOiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICAgICAgeTogJ9GA0ZbQuicsXG4gICAgICAgICAgICB5eTogcmVsYXRpdmVUaW1lV2l0aFBsdXJhbCxcbiAgICAgICAgfSxcbiAgICAgICAgLy8gTS4gRS46IHRob3NlIHR3byBhcmUgdmlydHVhbGx5IHVudXNlZCBidXQgYSB1c2VyIG1pZ2h0IHdhbnQgdG8gaW1wbGVtZW50IHRoZW0gZm9yIGhpcy9oZXIgd2Vic2l0ZSBmb3Igc29tZSByZWFzb25cbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL9C90L7Rh9GWfNGA0LDQvdC60YN80LTQvdGPfNCy0LXRh9C+0YDQsC8sXG4gICAgICAgIGlzUE06IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuIC9eKNC00L3Rj3zQstC10YfQvtGA0LApJC8udGVzdChpbnB1dCk7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9C90L7Rh9GWJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDEyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfRgNCw0L3QutGDJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDE3KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfQtNC90Y8nO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9Cy0LXRh9C+0YDQsCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfS0o0Ll80LPQvikvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyLCBwZXJpb2QpIHtcbiAgICAgICAgICAgIHN3aXRjaCAocGVyaW9kKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnTSc6XG4gICAgICAgICAgICAgICAgY2FzZSAnZCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnREREJzpcbiAgICAgICAgICAgICAgICBjYXNlICd3JzpcbiAgICAgICAgICAgICAgICBjYXNlICdXJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICct0LknO1xuICAgICAgICAgICAgICAgIGNhc2UgJ0QnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJy3Qs9C+JztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA3LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA3dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdWs7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogVXJkdSBbdXJdXG4vLyEgYXV0aG9yIDogU2F3b29kIEFsYW0gOiBodHRwczovL2dpdGh1Yi5jb20vaWJuZXNheWVlZFxuLy8hIGF1dGhvciA6IFphY2sgOiBodHRwczovL2dpdGh1Yi5jb20vWmFja1Zpc2lvblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIG1vbnRocyA9IFtcbiAgICAgICAgICAgICfYrNmG2YjYsduMJyxcbiAgICAgICAgICAgICfZgdix2YjYsduMJyxcbiAgICAgICAgICAgICfZhdin2LHahicsXG4gICAgICAgICAgICAn2KfZvtix24zZhCcsXG4gICAgICAgICAgICAn2YXYptuMJyxcbiAgICAgICAgICAgICfYrNmI2YYnLFxuICAgICAgICAgICAgJ9is2YjZhNin2KbbjCcsXG4gICAgICAgICAgICAn2Kfar9iz2KonLFxuICAgICAgICAgICAgJ9iz2KrZhdio2LEnLFxuICAgICAgICAgICAgJ9in2qnYqtmI2KjYsScsXG4gICAgICAgICAgICAn2YbZiNmF2KjYsScsXG4gICAgICAgICAgICAn2K/Ys9mF2KjYsScsXG4gICAgICAgIF0sXG4gICAgICAgIGRheXMgPSBbJ9in2KrZiNin2LEnLCAn2b7bjNixJywgJ9mF2Ybar9mEJywgJ9io2K/avicsICfYrNmF2LnYsdin2KonLCAn2KzZhdi524EnLCAn24HZgdiq24EnXTtcblxuICAgIHZhciB1ciA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3VyJywge1xuICAgICAgICBtb250aHM6IG1vbnRocyxcbiAgICAgICAgbW9udGhzU2hvcnQ6IG1vbnRocyxcbiAgICAgICAgd2Vla2RheXM6IGRheXMsXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6IGRheXMsXG4gICAgICAgIHdlZWtkYXlzTWluOiBkYXlzLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRk2IwgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv2LXYqNitfNi02KfZhS8sXG4gICAgICAgIGlzUE06IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuICfYtNin2YUnID09PSBpbnB1dDtcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyIDwgMTIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9i12KjYrSc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gJ9i02KfZhSc7XG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW9ii2Kwg2KjZiNmC2KpdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb2qnZhCDYqNmI2YLYql0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFvYqNmI2YLYql0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1var9iw2LTYqtuBINix2YjYsiDYqNmI2YLYql0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdb2q/YsNi02KrbgV0gZGRkZCBb2KjZiNmC2KpdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnJXMg2KjYudivJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyDZgtio2YQnLFxuICAgICAgICAgICAgczogJ9qG2YbYryDYs9uM2qnZhtqIJyxcbiAgICAgICAgICAgIHNzOiAnJWQg2LPbjNqp2YbaiCcsXG4gICAgICAgICAgICBtOiAn2KfbjNqpINmF2YbZuScsXG4gICAgICAgICAgICBtbTogJyVkINmF2YbZuScsXG4gICAgICAgICAgICBoOiAn2KfbjNqpINqv2r7Zhtm524EnLFxuICAgICAgICAgICAgaGg6ICclZCDar9q+2YbZuduSJyxcbiAgICAgICAgICAgIGQ6ICfYp9uM2qkg2K/ZhicsXG4gICAgICAgICAgICBkZDogJyVkINiv2YYnLFxuICAgICAgICAgICAgTTogJ9in24zaqSDZhdin24EnLFxuICAgICAgICAgICAgTU06ICclZCDZhdin24EnLFxuICAgICAgICAgICAgeTogJ9in24zaqSDYs9in2YQnLFxuICAgICAgICAgICAgeXk6ICclZCDYs9in2YQnLFxuICAgICAgICB9LFxuICAgICAgICBwcmVwYXJzZTogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC/YjC9nLCAnLCcpO1xuICAgICAgICB9LFxuICAgICAgICBwb3N0Zm9ybWF0OiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoLywvZywgJ9iMJyk7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiB1cjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBVemJlayBbdXpdXG4vLyEgYXV0aG9yIDogU2FyZG9yIE11bWlub3YgOiBodHRwczovL2dpdGh1Yi5jb20vbXVtaW5vZmZcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciB1eiA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3V6Jywge1xuICAgICAgICBtb250aHM6ICfRj9C90LLQsNGAX9GE0LXQstGA0LDQu1/QvNCw0YDRgl/QsNC/0YDQtdC7X9C80LDQuV/QuNGO0L1f0LjRjtC7X9Cw0LLQs9GD0YHRgl/RgdC10L3RgtGP0LHRgF/QvtC60YLRj9Cx0YBf0L3QvtGP0LHRgF/QtNC10LrQsNCx0YAnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAn0Y/QvdCyX9GE0LXQsl/QvNCw0YBf0LDQv9GAX9C80LDQuV/QuNGO0L1f0LjRjtC7X9Cw0LLQs1/RgdC10L1f0L7QutGCX9C90L7Rj1/QtNC10LonLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAn0K/QutGI0LDQvdCx0LBf0JTRg9GI0LDQvdCx0LBf0KHQtdGI0LDQvdCx0LBf0KfQvtGA0YjQsNC90LHQsF/Qn9Cw0LnRiNCw0L3QsdCwX9CW0YPQvNCwX9Co0LDQvdCx0LAnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfQr9C60Yhf0JTRg9GIX9Ch0LXRiF/Qp9C+0YBf0J/QsNC5X9CW0YPQvF/QqNCw0L0nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn0K/Qul/QlNGDX9Ch0LVf0KfQvl/Qn9CwX9CW0YNf0KjQsCcuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnRCBNTU1NIFlZWVksIGRkZGQgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vQkdGD0LPRg9C9INGB0L7QsNGCXSBMVCBb0LTQsF0nLFxuICAgICAgICAgICAgbmV4dERheTogJ1vQrdGA0YLQsNCz0LBdIExUIFvQtNCwXScsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW9C60YPQvdC4INGB0L7QsNGCXSBMVCBb0LTQsF0nLFxuICAgICAgICAgICAgbGFzdERheTogJ1vQmtC10YfQsCDRgdC+0LDRgl0gTFQgW9C00LBdJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW9Cj0YLQs9Cw0L1dIGRkZGQgW9C60YPQvdC4INGB0L7QsNGCXSBMVCBb0LTQsF0nLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICfQr9C60LjQvSAlcyDQuNGH0LjQtNCwJyxcbiAgICAgICAgICAgIHBhc3Q6ICfQkdC40YAg0L3QtdGH0LAgJXMg0L7Qu9C00LjQvScsXG4gICAgICAgICAgICBzOiAn0YTRg9GA0YHQsNGCJyxcbiAgICAgICAgICAgIHNzOiAnJWQg0YTRg9GA0YHQsNGCJyxcbiAgICAgICAgICAgIG06ICfQsdC40YAg0LTQsNC60LjQutCwJyxcbiAgICAgICAgICAgIG1tOiAnJWQg0LTQsNC60LjQutCwJyxcbiAgICAgICAgICAgIGg6ICfQsdC40YAg0YHQvtCw0YInLFxuICAgICAgICAgICAgaGg6ICclZCDRgdC+0LDRgicsXG4gICAgICAgICAgICBkOiAn0LHQuNGAINC60YPQvScsXG4gICAgICAgICAgICBkZDogJyVkINC60YPQvScsXG4gICAgICAgICAgICBNOiAn0LHQuNGAINC+0LknLFxuICAgICAgICAgICAgTU06ICclZCDQvtC5JyxcbiAgICAgICAgICAgIHk6ICfQsdC40YAg0LnQuNC7JyxcbiAgICAgICAgICAgIHl5OiAnJWQg0LnQuNC7JyxcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNywgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHV6O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IFV6YmVrIExhdGluIFt1ei1sYXRuXVxuLy8hIGF1dGhvciA6IFJhc3VsYmVrIE1pcnpheWV2IDogZ2l0aHViLmNvbS9SYXN1bGJlZWVrXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgdXpMYXRuID0gbW9tZW50LmRlZmluZUxvY2FsZSgndXotbGF0bicsIHtcbiAgICAgICAgbW9udGhzOiAnWWFudmFyX0ZldnJhbF9NYXJ0X0FwcmVsX01heV9JeXVuX0l5dWxfQXZndXN0X1NlbnRhYnJfT2t0YWJyX05veWFicl9EZWthYnInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnWWFuX0Zldl9NYXJfQXByX01heV9JeXVuX0l5dWxfQXZnX1Nlbl9Pa3RfTm95X0Rlaycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICdZYWtzaGFuYmFfRHVzaGFuYmFfU2VzaGFuYmFfQ2hvcnNoYW5iYV9QYXlzaGFuYmFfSnVtYV9TaGFuYmEnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdZYWtfRHVzaF9TZXNoX0Nob3JfUGF5X0p1bV9TaGFuJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ1lhX0R1X1NlX0Nob19QYV9KdV9TaGEnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ0QgTU1NTSBZWVlZLCBkZGRkIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbQnVndW4gc29hdF0gTFQgW2RhXScsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW0VydGFnYV0gTFQgW2RhXScsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW2t1bmkgc29hdF0gTFQgW2RhXScsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW0tlY2hhIHNvYXRdIExUIFtkYV0nLFxuICAgICAgICAgICAgbGFzdFdlZWs6IFwiW08ndGdhbl0gZGRkZCBba3VuaSBzb2F0XSBMVCBbZGFdXCIsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ1lhcWluICVzIGljaGlkYScsXG4gICAgICAgICAgICBwYXN0OiAnQmlyIG5lY2hhICVzIG9sZGluJyxcbiAgICAgICAgICAgIHM6ICdzb25peWEnLFxuICAgICAgICAgICAgc3M6ICclZCBzb25peWEnLFxuICAgICAgICAgICAgbTogJ2JpciBkYXFpcWEnLFxuICAgICAgICAgICAgbW06ICclZCBkYXFpcWEnLFxuICAgICAgICAgICAgaDogJ2JpciBzb2F0JyxcbiAgICAgICAgICAgIGhoOiAnJWQgc29hdCcsXG4gICAgICAgICAgICBkOiAnYmlyIGt1bicsXG4gICAgICAgICAgICBkZDogJyVkIGt1bicsXG4gICAgICAgICAgICBNOiAnYmlyIG95JyxcbiAgICAgICAgICAgIE1NOiAnJWQgb3knLFxuICAgICAgICAgICAgeTogJ2JpciB5aWwnLFxuICAgICAgICAgICAgeXk6ICclZCB5aWwnLFxuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA3LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA3dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdXpMYXRuO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IFZpZXRuYW1lc2UgW3ZpXVxuLy8hIGF1dGhvciA6IEJhbmcgTmd1eWVuIDogaHR0cHM6Ly9naXRodWIuY29tL2Jhbmdua1xuLy8hIGF1dGhvciA6IENoaWVuIEtpcmEgOiBodHRwczovL2dpdGh1Yi5jb20vY2hpZW5raXJhXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgdmkgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCd2aScsIHtcbiAgICAgICAgbW9udGhzOiAndGjDoW5nIDFfdGjDoW5nIDJfdGjDoW5nIDNfdGjDoW5nIDRfdGjDoW5nIDVfdGjDoW5nIDZfdGjDoW5nIDdfdGjDoW5nIDhfdGjDoW5nIDlfdGjDoW5nIDEwX3Row6FuZyAxMV90aMOhbmcgMTInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnVGhnIDAxX1RoZyAwMl9UaGcgMDNfVGhnIDA0X1RoZyAwNV9UaGcgMDZfVGhnIDA3X1RoZyAwOF9UaGcgMDlfVGhnIDEwX1RoZyAxMV9UaGcgMTInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzOiAnY2jhu6cgbmjhuq10X3Ro4bupIGhhaV90aOG7qSBiYV90aOG7qSB0xrBfdGjhu6kgbsSDbV90aOG7qSBzw6F1X3Ro4bupIGLhuqN5Jy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnQ05fVDJfVDNfVDRfVDVfVDZfVDcnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnQ05fVDJfVDNfVDRfVDVfVDZfVDcnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL3NhfGNoL2ksXG4gICAgICAgIGlzUE06IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuIC9eY2gkL2kudGVzdChpbnB1dCk7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91cnMsIG1pbnV0ZXMsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VycyA8IDEyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzTG93ZXIgPyAnc2EnIDogJ1NBJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzTG93ZXIgPyAnY2gnIDogJ0NIJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gW27Eg21dIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFtuxINtXSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gW27Eg21dIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgbDogJ0REL00vWVlZWScsXG4gICAgICAgICAgICBsbDogJ0QgTU1NIFlZWVknLFxuICAgICAgICAgICAgbGxsOiAnRCBNTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBsbGxsOiAnZGRkLCBEIE1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbSMO0bSBuYXkgbMO6Y10gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tOZ8OgeSBtYWkgbMO6Y10gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFt0deG6p24gdOG7m2kgbMO6Y10gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tIw7RtIHF1YSBsw7pjXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ2RkZGQgW3R14bqnbiB0csaw4bubYyBsw7pjXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVzIHThu5tpJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyB0csaw4bubYycsXG4gICAgICAgICAgICBzOiAndsOgaSBnacOieScsXG4gICAgICAgICAgICBzczogJyVkIGdpw6J5JyxcbiAgICAgICAgICAgIG06ICdt4buZdCBwaMO6dCcsXG4gICAgICAgICAgICBtbTogJyVkIHBow7p0JyxcbiAgICAgICAgICAgIGg6ICdt4buZdCBnaeG7nScsXG4gICAgICAgICAgICBoaDogJyVkIGdp4budJyxcbiAgICAgICAgICAgIGQ6ICdt4buZdCBuZ8OgeScsXG4gICAgICAgICAgICBkZDogJyVkIG5nw6B5JyxcbiAgICAgICAgICAgIE06ICdt4buZdCB0aMOhbmcnLFxuICAgICAgICAgICAgTU06ICclZCB0aMOhbmcnLFxuICAgICAgICAgICAgeTogJ23hu5l0IG7Eg20nLFxuICAgICAgICAgICAgeXk6ICclZCBuxINtJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9LyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlcjtcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHZpO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IFBzZXVkbyBbeC1wc2V1ZG9dXG4vLyEgYXV0aG9yIDogQW5kcmV3IEhvb2QgOiBodHRwczovL2dpdGh1Yi5jb20vYW5kcmV3aG9vZDEyNVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHhQc2V1ZG8gPSBtb21lbnQuZGVmaW5lTG9jYWxlKCd4LXBzZXVkbycsIHtcbiAgICAgICAgbW9udGhzOiAnSn7DocOxw7rDoX5yw71fRn7DqWJyw7p+w6Fyw71ffk3DoXJjfmhfw4FwfnLDrWxffk3DocO9X35Kw7rDscOpfl9Kw7psfsO9X8OBw7p+Z8O6c3R+X1PDqXB+dMOpbWJ+w6lyX8OTfmN0w7NifsOpcl/DkX7Ds3bDqW1+YsOpcl9+RMOpY8Opfm1iw6lyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ0p+w6HDsV9+RsOpYl9+TcOhcl9+w4Fwcl9+TcOhw71ffkrDusOxX35Kw7psX37DgcO6Z19+U8OpcF9+w5NjdF9+w5HDs3ZffkTDqWMnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzOiAnU37DusOxZMOhfsO9X03Ds37DsWTDocO9fl9Uw7rDqX5zZMOhw71+X1fDqWR+w7HDqXNkfsOhw71fVH5ow7pyc35kw6HDvV9+RnLDrWR+w6HDvV9TfsOhdMO6cn5kw6HDvScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ1N+w7rDsV9+TcOzw7FfflTDusOpX35Xw6lkX35UaMO6X35GcsOtX35Tw6F0Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ1N+w7pfTcOzfl9Uw7pfflfDqV9UfmhfRnJ+X1PDoScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW1R+w7Nkw6F+w70gw6F0XSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW1R+w7Ntw7N+cnLDs353IMOhdF0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFvDoXRdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbw51+w6lzdH7DqXJkw6F+w70gw6F0XSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1tMfsOhc3RdIGRkZGQgW8OhdF0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICfDrX7DsSAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMgw6F+Z8OzJyxcbiAgICAgICAgICAgIHM6ICfDoSB+ZsOpdyB+c8OpY8OzfsOxZHMnLFxuICAgICAgICAgICAgc3M6ICclZCBzfsOpY8Ozw7F+ZHMnLFxuICAgICAgICAgICAgbTogJ8OhIH5tw63DsX7DunTDqScsXG4gICAgICAgICAgICBtbTogJyVkIG1+w63DscO6fnTDqXMnLFxuICAgICAgICAgICAgaDogJ8OhfsOxIGjDs37DunInLFxuICAgICAgICAgICAgaGg6ICclZCBofsOzw7pycycsXG4gICAgICAgICAgICBkOiAnw6EgfmTDocO9JyxcbiAgICAgICAgICAgIGRkOiAnJWQgZH7DocO9cycsXG4gICAgICAgICAgICBNOiAnw6Egfm3Ds8OxfnRoJyxcbiAgICAgICAgICAgIE1NOiAnJWQgbX7Ds8OxdH5ocycsXG4gICAgICAgICAgICB5OiAnw6EgfsO9w6nDoXInLFxuICAgICAgICAgICAgeXk6ICclZCDDvX7DqcOhcnMnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0odGh8c3R8bmR8cmQpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgdmFyIGIgPSBudW1iZXIgJSAxMCxcbiAgICAgICAgICAgICAgICBvdXRwdXQgPVxuICAgICAgICAgICAgICAgICAgICB+figobnVtYmVyICUgMTAwKSAvIDEwKSA9PT0gMVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAndGgnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGIgPT09IDFcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ3N0J1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBiID09PSAyXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICduZCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYiA9PT0gM1xuICAgICAgICAgICAgICAgICAgICAgICAgPyAncmQnXG4gICAgICAgICAgICAgICAgICAgICAgICA6ICd0aCc7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgb3V0cHV0O1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4geFBzZXVkbztcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBZb3J1YmEgTmlnZXJpYSBbeW9dXG4vLyEgYXV0aG9yIDogQXRvbGFnYmUgQWJpc295ZSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbmRlbGEtYmF0b2xhZ2JlXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgeW8gPSBtb21lbnQuZGVmaW5lTG9jYWxlKCd5bycsIHtcbiAgICAgICAgbW9udGhzOiAnU+G6ucyBcuG6ucyBX0XMgHJlzIBsZcyAX+G6uHLhurnMgG5hzIBfScyAZ2JlzIFfRcyAYmliaV9PzIBrdcyAZHVfQWfhurltb19PzIBndcyBbl9Pd2V3ZV/hu4zMgHdhzIByYcyAX0JlzIFsdcyBX+G7jMyAcOG6ucyAzIAnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnU+G6ucyBcl9FzIBybF/hurhybl9JzIBnYl9FzIBiaV9PzIBrdcyAX0Fn4bq5X0/MgGd1zIFfT3dlX+G7jMyAd2HMgF9CZcyBbF/hu4zMgHDhurnMgMyAJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ0HMgGnMgGt1zIFfQWplzIFfScyAc+G6ucyBZ3VuX+G7jGrhu43MgXJ1zIFf4buMauG7jcyBYuG7jV/hurh0acyAX0HMgGJhzIFt4bq5zIF0YScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ0HMgGnMgGtfQWplzIFfScyAc+G6ucyBX+G7jGpyX+G7jGpiX+G6uHRpzIBfQcyAYmHMgScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdBzIBpzIBfQWpfScyAc1/hu4xyX+G7jGJf4bq4dF9BzIBiJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdoOm1tIEEnLFxuICAgICAgICAgICAgTFRTOiAnaDptbTpzcyBBJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgaDptbSBBJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSBoOm1tIEEnLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tPzIBuacyAIG5pXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW+G7jMyAbGEgbmldIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiBcImRkZGQgW+G7jHPhurnMgCB0b8yBbidi4buNXSBbbmldIExUXCIsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW0HMgG5hIG5pXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ2RkZGQgW+G7jHPhurnMgCB0b8yBbOG7jcyBXSBbbmldIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnbmnMgSAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMga+G7jWphzIEnLFxuICAgICAgICAgICAgczogJ2nMgHPhurlqdcyBIGFheWHMgSBkaWUnLFxuICAgICAgICAgICAgc3M6ICdhYXlhzIEgJWQnLFxuICAgICAgICAgICAgbTogJ2nMgHPhurlqdcyBIGthbicsXG4gICAgICAgICAgICBtbTogJ2nMgHPhurlqdcyBICVkJyxcbiAgICAgICAgICAgIGg6ICd3YcyBa2F0aSBrYW4nLFxuICAgICAgICAgICAgaGg6ICd3YcyBa2F0aSAlZCcsXG4gICAgICAgICAgICBkOiAn4buNauG7jcyBIGthbicsXG4gICAgICAgICAgICBkZDogJ+G7jWrhu43MgSAlZCcsXG4gICAgICAgICAgICBNOiAnb3N1zIAga2FuJyxcbiAgICAgICAgICAgIE1NOiAnb3N1zIAgJWQnLFxuICAgICAgICAgICAgeTogJ+G7jWR1zIFuIGthbicsXG4gICAgICAgICAgICB5eTogJ+G7jWR1zIFuICVkJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL+G7jWrhu43MgVxcc1xcZHsxLDJ9LyxcbiAgICAgICAgb3JkaW5hbDogJ+G7jWrhu43MgSAlZCcsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiB5bztcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBDaGluZXNlIChDaGluYSkgW3poLWNuXVxuLy8hIGF1dGhvciA6IHN1dXBpYyA6IGh0dHBzOi8vZ2l0aHViLmNvbS9zdXVwaWNcbi8vISBhdXRob3IgOiBaZW5vIFplbmcgOiBodHRwczovL2dpdGh1Yi5jb20vemVub3plbmdcbi8vISBhdXRob3IgOiB1dTEwOSA6IGh0dHBzOi8vZ2l0aHViLmNvbS91dTEwOVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHpoQ24gPSBtb21lbnQuZGVmaW5lTG9jYWxlKCd6aC1jbicsIHtcbiAgICAgICAgbW9udGhzOiAn5LiA5pyIX+S6jOaciF/kuInmnIhf5Zub5pyIX+S6lOaciF/lha3mnIhf5LiD5pyIX+WFq+aciF/kuZ3mnIhf5Y2B5pyIX+WNgeS4gOaciF/ljYHkuozmnIgnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnMeaciF8y5pyIXzPmnIhfNOaciF815pyIXzbmnIhfN+aciF845pyIXznmnIhfMTDmnIhfMTHmnIhfMTLmnIgnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzOiAn5pif5pyf5pelX+aYn+acn+S4gF/mmJ/mnJ/kuoxf5pif5pyf5LiJX+aYn+acn+Wbm1/mmJ/mnJ/kupRf5pif5pyf5YWtJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn5ZGo5pelX+WRqOS4gF/lkajkuoxf5ZGo5LiJX+WRqOWbm1/lkajkupRf5ZGo5YWtJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ+aXpV/kuIBf5LqMX+S4iV/lm5tf5LqUX+WFrScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ1lZWVkvTU0vREQnLFxuICAgICAgICAgICAgTEw6ICdZWVlZ5bm0TeaciETml6UnLFxuICAgICAgICAgICAgTExMOiAnWVlZWeW5tE3mnIhE5pelQWjngrltbeWIhicsXG4gICAgICAgICAgICBMTExMOiAnWVlZWeW5tE3mnIhE5pelZGRkZEFo54K5bW3liIYnLFxuICAgICAgICAgICAgbDogJ1lZWVkvTS9EJyxcbiAgICAgICAgICAgIGxsOiAnWVlZWeW5tE3mnIhE5pelJyxcbiAgICAgICAgICAgIGxsbDogJ1lZWVnlubRN5pyIROaXpSBISDptbScsXG4gICAgICAgICAgICBsbGxsOiAnWVlZWeW5tE3mnIhE5pelZGRkZCBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/lh4zmmah85pep5LiKfOS4iuWNiHzkuK3ljYh85LiL5Y2IfOaZmuS4ii8sXG4gICAgICAgIG1lcmlkaWVtSG91cjogZnVuY3Rpb24gKGhvdXIsIG1lcmlkaWVtKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA9PT0gMTIpIHtcbiAgICAgICAgICAgICAgICBob3VyID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtZXJpZGllbSA9PT0gJ+WHjOaZqCcgfHwgbWVyaWRpZW0gPT09ICfml6nkuIonIHx8IG1lcmlkaWVtID09PSAn5LiK5Y2IJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+S4i+WNiCcgfHwgbWVyaWRpZW0gPT09ICfmmZrkuIonKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gJ+S4reWNiCdcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciA+PSAxMSA/IGhvdXIgOiBob3VyICsgMTI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICB2YXIgaG0gPSBob3VyICogMTAwICsgbWludXRlO1xuICAgICAgICAgICAgaWYgKGhtIDwgNjAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICflh4zmmagnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChobSA8IDkwMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn5pep5LiKJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG0gPCAxMTMwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfkuIrljYgnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChobSA8IDEyMzApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+S4reWNiCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhtIDwgMTgwMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn5LiL5Y2IJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfmmZrkuIonO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vku4rlpKldTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vmmI7lpKldTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6IGZ1bmN0aW9uIChub3cpIHtcbiAgICAgICAgICAgICAgICBpZiAobm93LndlZWsoKSAhPT0gdGhpcy53ZWVrKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdb5LiLXWRkZExUJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1vmnKxdZGRkTFQnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYXN0RGF5OiAnW+aYqOWkqV1MVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogZnVuY3Rpb24gKG5vdykge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLndlZWsoKSAhPT0gbm93LndlZWsoKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1vkuIpdZGRkTFQnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnW+acrF1kZGRMVCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfSjml6V85pyIfOWRqCkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyLCBwZXJpb2QpIHtcbiAgICAgICAgICAgIHN3aXRjaCAocGVyaW9kKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnZCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnRCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnREREJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICfml6UnO1xuICAgICAgICAgICAgICAgIGNhc2UgJ00nOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJ+aciCc7XG4gICAgICAgICAgICAgICAgY2FzZSAndyc6XG4gICAgICAgICAgICAgICAgY2FzZSAnVyc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAn5ZGoJztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVz5ZCOJyxcbiAgICAgICAgICAgIHBhc3Q6ICclc+WJjScsXG4gICAgICAgICAgICBzOiAn5Yeg56eSJyxcbiAgICAgICAgICAgIHNzOiAnJWQg56eSJyxcbiAgICAgICAgICAgIG06ICcxIOWIhumSnycsXG4gICAgICAgICAgICBtbTogJyVkIOWIhumSnycsXG4gICAgICAgICAgICBoOiAnMSDlsI/ml7YnLFxuICAgICAgICAgICAgaGg6ICclZCDlsI/ml7YnLFxuICAgICAgICAgICAgZDogJzEg5aSpJyxcbiAgICAgICAgICAgIGRkOiAnJWQg5aSpJyxcbiAgICAgICAgICAgIE06ICcxIOS4quaciCcsXG4gICAgICAgICAgICBNTTogJyVkIOS4quaciCcsXG4gICAgICAgICAgICB5OiAnMSDlubQnLFxuICAgICAgICAgICAgeXk6ICclZCDlubQnLFxuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICAvLyBHQi9UIDc0MDgtMTk5NOOAiuaVsOaNruWFg+WSjOS6pOaNouagvOW8j8K35L+h5oGv5Lqk5o2iwrfml6XmnJ/lkozml7bpl7TooajnpLrms5XjgIvkuI5JU08gODYwMToxOTg4562J5pWIXG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gemhDbjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBDaGluZXNlIChIb25nIEtvbmcpIFt6aC1oa11cbi8vISBhdXRob3IgOiBCZW4gOiBodHRwczovL2dpdGh1Yi5jb20vYmVuLWxpblxuLy8hIGF1dGhvciA6IENocmlzIExhbSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9oZWhhY2hyaXNcbi8vISBhdXRob3IgOiBLb25zdGFudGluIDogaHR0cHM6Ly9naXRodWIuY29tL3NrZmRcbi8vISBhdXRob3IgOiBBbnRob255IDogaHR0cHM6Ly9naXRodWIuY29tL2FudGhvbnlsYXVcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciB6aEhrID0gbW9tZW50LmRlZmluZUxvY2FsZSgnemgtaGsnLCB7XG4gICAgICAgIG1vbnRoczogJ+S4gOaciF/kuozmnIhf5LiJ5pyIX+Wbm+aciF/kupTmnIhf5YWt5pyIX+S4g+aciF/lhavmnIhf5Lmd5pyIX+WNgeaciF/ljYHkuIDmnIhf5Y2B5LqM5pyIJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJzHmnIhfMuaciF8z5pyIXzTmnIhfNeaciF825pyIXzfmnIhfOOaciF855pyIXzEw5pyIXzEx5pyIXzEy5pyIJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5czogJ+aYn+acn+aXpV/mmJ/mnJ/kuIBf5pif5pyf5LqMX+aYn+acn+S4iV/mmJ/mnJ/lm5tf5pif5pyf5LqUX+aYn+acn+WFrScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ+mAseaXpV/pgLHkuIBf6YCx5LqMX+mAseS4iV/pgLHlm5tf6YCx5LqUX+mAseWFrScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfml6Vf5LiAX+S6jF/kuIlf5ZubX+S6lF/lha0nLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdZWVlZL01NL0REJyxcbiAgICAgICAgICAgIExMOiAnWVlZWeW5tE3mnIhE5pelJyxcbiAgICAgICAgICAgIExMTDogJ1lZWVnlubRN5pyIROaXpSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnWVlZWeW5tE3mnIhE5pelZGRkZCBISDptbScsXG4gICAgICAgICAgICBsOiAnWVlZWS9NL0QnLFxuICAgICAgICAgICAgbGw6ICdZWVlZ5bm0TeaciETml6UnLFxuICAgICAgICAgICAgbGxsOiAnWVlZWeW5tE3mnIhE5pelIEhIOm1tJyxcbiAgICAgICAgICAgIGxsbGw6ICdZWVlZ5bm0TeaciETml6VkZGRkIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL+WHjOaZqHzml6nkuIp85LiK5Y2IfOS4reWNiHzkuIvljYh85pma5LiKLyxcbiAgICAgICAgbWVyaWRpZW1Ib3VyOiBmdW5jdGlvbiAoaG91ciwgbWVyaWRpZW0pIHtcbiAgICAgICAgICAgIGlmIChob3VyID09PSAxMikge1xuICAgICAgICAgICAgICAgIGhvdXIgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG1lcmlkaWVtID09PSAn5YeM5pmoJyB8fCBtZXJpZGllbSA9PT0gJ+aXqeS4iicgfHwgbWVyaWRpZW0gPT09ICfkuIrljYgnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAn5Lit5Y2IJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyID49IDExID8gaG91ciA6IGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfkuIvljYgnIHx8IG1lcmlkaWVtID09PSAn5pma5LiKJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyICsgMTI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICB2YXIgaG0gPSBob3VyICogMTAwICsgbWludXRlO1xuICAgICAgICAgICAgaWYgKGhtIDwgNjAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICflh4zmmagnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChobSA8IDkwMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn5pep5LiKJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG0gPCAxMjAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfkuIrljYgnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChobSA9PT0gMTIwMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn5Lit5Y2IJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG0gPCAxODAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfkuIvljYgnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+aZmuS4iic7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW+S7iuWkqV1MVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW+aYjuWkqV1MVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ1vkuItdZGRkZExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb5pio5aSpXUxUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW+S4il1kZGRkTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9KOaXpXzmnIh86YCxKS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIsIHBlcmlvZCkge1xuICAgICAgICAgICAgc3dpdGNoIChwZXJpb2QpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdkJzpcbiAgICAgICAgICAgICAgICBjYXNlICdEJzpcbiAgICAgICAgICAgICAgICBjYXNlICdEREQnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJ+aXpSc7XG4gICAgICAgICAgICAgICAgY2FzZSAnTSc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAn5pyIJztcbiAgICAgICAgICAgICAgICBjYXNlICd3JzpcbiAgICAgICAgICAgICAgICBjYXNlICdXJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICfpgLEnO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnJXPlvownLFxuICAgICAgICAgICAgcGFzdDogJyVz5YmNJyxcbiAgICAgICAgICAgIHM6ICflub7np5InLFxuICAgICAgICAgICAgc3M6ICclZCDnp5InLFxuICAgICAgICAgICAgbTogJzEg5YiG6ZCYJyxcbiAgICAgICAgICAgIG1tOiAnJWQg5YiG6ZCYJyxcbiAgICAgICAgICAgIGg6ICcxIOWwj+aZgicsXG4gICAgICAgICAgICBoaDogJyVkIOWwj+aZgicsXG4gICAgICAgICAgICBkOiAnMSDlpKknLFxuICAgICAgICAgICAgZGQ6ICclZCDlpKknLFxuICAgICAgICAgICAgTTogJzEg5YCL5pyIJyxcbiAgICAgICAgICAgIE1NOiAnJWQg5YCL5pyIJyxcbiAgICAgICAgICAgIHk6ICcxIOW5tCcsXG4gICAgICAgICAgICB5eTogJyVkIOW5tCcsXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gemhIaztcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBDaGluZXNlIChNYWNhdSkgW3poLW1vXVxuLy8hIGF1dGhvciA6IEJlbiA6IGh0dHBzOi8vZ2l0aHViLmNvbS9iZW4tbGluXG4vLyEgYXV0aG9yIDogQ2hyaXMgTGFtIDogaHR0cHM6Ly9naXRodWIuY29tL2hlaGFjaHJpc1xuLy8hIGF1dGhvciA6IFRhbiBZdWFuaG9uZyA6IGh0dHBzOi8vZ2l0aHViLmNvbS9sZTB0YW5cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciB6aE1vID0gbW9tZW50LmRlZmluZUxvY2FsZSgnemgtbW8nLCB7XG4gICAgICAgIG1vbnRoczogJ+S4gOaciF/kuozmnIhf5LiJ5pyIX+Wbm+aciF/kupTmnIhf5YWt5pyIX+S4g+aciF/lhavmnIhf5Lmd5pyIX+WNgeaciF/ljYHkuIDmnIhf5Y2B5LqM5pyIJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJzHmnIhfMuaciF8z5pyIXzTmnIhfNeaciF825pyIXzfmnIhfOOaciF855pyIXzEw5pyIXzEx5pyIXzEy5pyIJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5czogJ+aYn+acn+aXpV/mmJ/mnJ/kuIBf5pif5pyf5LqMX+aYn+acn+S4iV/mmJ/mnJ/lm5tf5pif5pyf5LqUX+aYn+acn+WFrScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ+mAseaXpV/pgLHkuIBf6YCx5LqMX+mAseS4iV/pgLHlm5tf6YCx5LqUX+mAseWFrScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfml6Vf5LiAX+S6jF/kuIlf5ZubX+S6lF/lha0nLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnWVlZWeW5tE3mnIhE5pelJyxcbiAgICAgICAgICAgIExMTDogJ1lZWVnlubRN5pyIROaXpSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnWVlZWeW5tE3mnIhE5pelZGRkZCBISDptbScsXG4gICAgICAgICAgICBsOiAnRC9NL1lZWVknLFxuICAgICAgICAgICAgbGw6ICdZWVlZ5bm0TeaciETml6UnLFxuICAgICAgICAgICAgbGxsOiAnWVlZWeW5tE3mnIhE5pelIEhIOm1tJyxcbiAgICAgICAgICAgIGxsbGw6ICdZWVlZ5bm0TeaciETml6VkZGRkIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL+WHjOaZqHzml6nkuIp85LiK5Y2IfOS4reWNiHzkuIvljYh85pma5LiKLyxcbiAgICAgICAgbWVyaWRpZW1Ib3VyOiBmdW5jdGlvbiAoaG91ciwgbWVyaWRpZW0pIHtcbiAgICAgICAgICAgIGlmIChob3VyID09PSAxMikge1xuICAgICAgICAgICAgICAgIGhvdXIgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG1lcmlkaWVtID09PSAn5YeM5pmoJyB8fCBtZXJpZGllbSA9PT0gJ+aXqeS4iicgfHwgbWVyaWRpZW0gPT09ICfkuIrljYgnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAn5Lit5Y2IJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyID49IDExID8gaG91ciA6IGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfkuIvljYgnIHx8IG1lcmlkaWVtID09PSAn5pma5LiKJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyICsgMTI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICB2YXIgaG0gPSBob3VyICogMTAwICsgbWludXRlO1xuICAgICAgICAgICAgaWYgKGhtIDwgNjAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICflh4zmmagnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChobSA8IDkwMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn5pep5LiKJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG0gPCAxMTMwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfkuIrljYgnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChobSA8IDEyMzApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+S4reWNiCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhtIDwgMTgwMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn5LiL5Y2IJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfmmZrkuIonO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vku4rlpKldIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb5piO5aSpXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ1vkuItdZGRkZCBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW+aYqOWkqV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdb5LiKXWRkZGQgTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9KOaXpXzmnIh86YCxKS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIsIHBlcmlvZCkge1xuICAgICAgICAgICAgc3dpdGNoIChwZXJpb2QpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdkJzpcbiAgICAgICAgICAgICAgICBjYXNlICdEJzpcbiAgICAgICAgICAgICAgICBjYXNlICdEREQnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJ+aXpSc7XG4gICAgICAgICAgICAgICAgY2FzZSAnTSc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAn5pyIJztcbiAgICAgICAgICAgICAgICBjYXNlICd3JzpcbiAgICAgICAgICAgICAgICBjYXNlICdXJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICfpgLEnO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnJXPlhacnLFxuICAgICAgICAgICAgcGFzdDogJyVz5YmNJyxcbiAgICAgICAgICAgIHM6ICflub7np5InLFxuICAgICAgICAgICAgc3M6ICclZCDnp5InLFxuICAgICAgICAgICAgbTogJzEg5YiG6ZCYJyxcbiAgICAgICAgICAgIG1tOiAnJWQg5YiG6ZCYJyxcbiAgICAgICAgICAgIGg6ICcxIOWwj+aZgicsXG4gICAgICAgICAgICBoaDogJyVkIOWwj+aZgicsXG4gICAgICAgICAgICBkOiAnMSDlpKknLFxuICAgICAgICAgICAgZGQ6ICclZCDlpKknLFxuICAgICAgICAgICAgTTogJzEg5YCL5pyIJyxcbiAgICAgICAgICAgIE1NOiAnJWQg5YCL5pyIJyxcbiAgICAgICAgICAgIHk6ICcxIOW5tCcsXG4gICAgICAgICAgICB5eTogJyVkIOW5tCcsXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gemhNbztcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBDaGluZXNlIChUYWl3YW4pIFt6aC10d11cbi8vISBhdXRob3IgOiBCZW4gOiBodHRwczovL2dpdGh1Yi5jb20vYmVuLWxpblxuLy8hIGF1dGhvciA6IENocmlzIExhbSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9oZWhhY2hyaXNcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciB6aFR3ID0gbW9tZW50LmRlZmluZUxvY2FsZSgnemgtdHcnLCB7XG4gICAgICAgIG1vbnRoczogJ+S4gOaciF/kuozmnIhf5LiJ5pyIX+Wbm+aciF/kupTmnIhf5YWt5pyIX+S4g+aciF/lhavmnIhf5Lmd5pyIX+WNgeaciF/ljYHkuIDmnIhf5Y2B5LqM5pyIJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJzHmnIhfMuaciF8z5pyIXzTmnIhfNeaciF825pyIXzfmnIhfOOaciF855pyIXzEw5pyIXzEx5pyIXzEy5pyIJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5czogJ+aYn+acn+aXpV/mmJ/mnJ/kuIBf5pif5pyf5LqMX+aYn+acn+S4iV/mmJ/mnJ/lm5tf5pif5pyf5LqUX+aYn+acn+WFrScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ+mAseaXpV/pgLHkuIBf6YCx5LqMX+mAseS4iV/pgLHlm5tf6YCx5LqUX+mAseWFrScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfml6Vf5LiAX+S6jF/kuIlf5ZubX+S6lF/lha0nLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdZWVlZL01NL0REJyxcbiAgICAgICAgICAgIExMOiAnWVlZWeW5tE3mnIhE5pelJyxcbiAgICAgICAgICAgIExMTDogJ1lZWVnlubRN5pyIROaXpSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnWVlZWeW5tE3mnIhE5pelZGRkZCBISDptbScsXG4gICAgICAgICAgICBsOiAnWVlZWS9NL0QnLFxuICAgICAgICAgICAgbGw6ICdZWVlZ5bm0TeaciETml6UnLFxuICAgICAgICAgICAgbGxsOiAnWVlZWeW5tE3mnIhE5pelIEhIOm1tJyxcbiAgICAgICAgICAgIGxsbGw6ICdZWVlZ5bm0TeaciETml6VkZGRkIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL+WHjOaZqHzml6nkuIp85LiK5Y2IfOS4reWNiHzkuIvljYh85pma5LiKLyxcbiAgICAgICAgbWVyaWRpZW1Ib3VyOiBmdW5jdGlvbiAoaG91ciwgbWVyaWRpZW0pIHtcbiAgICAgICAgICAgIGlmIChob3VyID09PSAxMikge1xuICAgICAgICAgICAgICAgIGhvdXIgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG1lcmlkaWVtID09PSAn5YeM5pmoJyB8fCBtZXJpZGllbSA9PT0gJ+aXqeS4iicgfHwgbWVyaWRpZW0gPT09ICfkuIrljYgnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAn5Lit5Y2IJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyID49IDExID8gaG91ciA6IGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfkuIvljYgnIHx8IG1lcmlkaWVtID09PSAn5pma5LiKJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyICsgMTI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICB2YXIgaG0gPSBob3VyICogMTAwICsgbWludXRlO1xuICAgICAgICAgICAgaWYgKGhtIDwgNjAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICflh4zmmagnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChobSA8IDkwMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn5pep5LiKJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG0gPCAxMTMwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfkuIrljYgnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChobSA8IDEyMzApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+S4reWNiCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhtIDwgMTgwMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn5LiL5Y2IJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfmmZrkuIonO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vku4rlpKldIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb5piO5aSpXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ1vkuItdZGRkZCBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW+aYqOWkqV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdb5LiKXWRkZGQgTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9KOaXpXzmnIh86YCxKS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIsIHBlcmlvZCkge1xuICAgICAgICAgICAgc3dpdGNoIChwZXJpb2QpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdkJzpcbiAgICAgICAgICAgICAgICBjYXNlICdEJzpcbiAgICAgICAgICAgICAgICBjYXNlICdEREQnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJ+aXpSc7XG4gICAgICAgICAgICAgICAgY2FzZSAnTSc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAn5pyIJztcbiAgICAgICAgICAgICAgICBjYXNlICd3JzpcbiAgICAgICAgICAgICAgICBjYXNlICdXJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICfpgLEnO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnJXPlvownLFxuICAgICAgICAgICAgcGFzdDogJyVz5YmNJyxcbiAgICAgICAgICAgIHM6ICflub7np5InLFxuICAgICAgICAgICAgc3M6ICclZCDnp5InLFxuICAgICAgICAgICAgbTogJzEg5YiG6ZCYJyxcbiAgICAgICAgICAgIG1tOiAnJWQg5YiG6ZCYJyxcbiAgICAgICAgICAgIGg6ICcxIOWwj+aZgicsXG4gICAgICAgICAgICBoaDogJyVkIOWwj+aZgicsXG4gICAgICAgICAgICBkOiAnMSDlpKknLFxuICAgICAgICAgICAgZGQ6ICclZCDlpKknLFxuICAgICAgICAgICAgTTogJzEg5YCL5pyIJyxcbiAgICAgICAgICAgIE1NOiAnJWQg5YCL5pyIJyxcbiAgICAgICAgICAgIHk6ICcxIOW5tCcsXG4gICAgICAgICAgICB5eTogJyVkIOW5tCcsXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gemhUdztcblxufSkpKTtcbiIsIid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxudmFyIF9yZWFjdCA9IHJlcXVpcmUoJ3JlYWN0Jyk7XG5cbnZhciBfcmVhY3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcmVhY3QpO1xuXG52YXIgX2ltcGxlbWVudGF0aW9uID0gcmVxdWlyZSgnLi9pbXBsZW1lbnRhdGlvbicpO1xuXG52YXIgX2ltcGxlbWVudGF0aW9uMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2ltcGxlbWVudGF0aW9uKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxuZXhwb3J0cy5kZWZhdWx0ID0gX3JlYWN0Mi5kZWZhdWx0LmNyZWF0ZUNvbnRleHQgfHwgX2ltcGxlbWVudGF0aW9uMi5kZWZhdWx0O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IHdyYXBwZXJSYWY7XG5cbnZhciBfcmFmID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmFmXCIpKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbnZhciBpZCA9IDA7XG52YXIgaWRzID0ge307IC8vIFN1cHBvcnQgY2FsbCByYWYgd2l0aCBkZWxheSBzcGVjaWZpZWQgZnJhbWVcblxuZnVuY3Rpb24gd3JhcHBlclJhZihjYWxsYmFjaykge1xuICB2YXIgZGVsYXlGcmFtZXMgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IDE7XG4gIHZhciBteUlkID0gaWQrKztcbiAgdmFyIHJlc3RGcmFtZXMgPSBkZWxheUZyYW1lcztcblxuICBmdW5jdGlvbiBpbnRlcm5hbENhbGxiYWNrKCkge1xuICAgIHJlc3RGcmFtZXMgLT0gMTtcblxuICAgIGlmIChyZXN0RnJhbWVzIDw9IDApIHtcbiAgICAgIGNhbGxiYWNrKCk7XG4gICAgICBkZWxldGUgaWRzW215SWRdO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZHNbbXlJZF0gPSAoMCwgX3JhZltcImRlZmF1bHRcIl0pKGludGVybmFsQ2FsbGJhY2spO1xuICAgIH1cbiAgfVxuXG4gIGlkc1tteUlkXSA9ICgwLCBfcmFmW1wiZGVmYXVsdFwiXSkoaW50ZXJuYWxDYWxsYmFjayk7XG4gIHJldHVybiBteUlkO1xufVxuXG53cmFwcGVyUmFmLmNhbmNlbCA9IGZ1bmN0aW9uIGNhbmNlbChwaWQpIHtcbiAgaWYgKHBpZCA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG5cbiAgX3JhZltcImRlZmF1bHRcIl0uY2FuY2VsKGlkc1twaWRdKTtcblxuICBkZWxldGUgaWRzW3BpZF07XG59O1xuXG53cmFwcGVyUmFmLmlkcyA9IGlkczsgLy8gZXhwb3J0IHRoaXMgZm9yIHRlc3QgdXNhZ2UiLCJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlJvd1wiLCB7XG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHJldHVybiBfcm93W1wiZGVmYXVsdFwiXTtcbiAgfVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJDb2xcIiwge1xuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICByZXR1cm4gX2NvbFtcImRlZmF1bHRcIl07XG4gIH1cbn0pO1xuXG52YXIgX3JvdyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vcm93XCIpKTtcblxudmFyIF9jb2wgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuL2NvbFwiKSk7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfSIsIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSB2b2lkIDA7XG5cbnZhciBfY3JlYXRlUmVhY3RDb250ZXh0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGFudC1kZXNpZ24vY3JlYXRlLXJlYWN0LWNvbnRleHRcIikpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxudmFyIFJvd0NvbnRleHQgPSAoMCwgX2NyZWF0ZVJlYWN0Q29udGV4dFtcImRlZmF1bHRcIl0pKHt9KTtcbnZhciBfZGVmYXVsdCA9IFJvd0NvbnRleHQ7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IF9kZWZhdWx0OyIsIi8qKlxuICogSGVscGVyIGZ1bmN0aW9uIGZvciBpdGVyYXRpbmcgb3ZlciBhIGNvbGxlY3Rpb25cbiAqXG4gKiBAcGFyYW0gY29sbGVjdGlvblxuICogQHBhcmFtIGZuXG4gKi9cbmZ1bmN0aW9uIGVhY2goY29sbGVjdGlvbiwgZm4pIHtcbiAgICB2YXIgaSAgICAgID0gMCxcbiAgICAgICAgbGVuZ3RoID0gY29sbGVjdGlvbi5sZW5ndGgsXG4gICAgICAgIGNvbnQ7XG5cbiAgICBmb3IoaTsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnQgPSBmbihjb2xsZWN0aW9uW2ldLCBpKTtcbiAgICAgICAgaWYoY29udCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGJyZWFrOyAvL2FsbG93IGVhcmx5IGV4aXRcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyoqXG4gKiBIZWxwZXIgZnVuY3Rpb24gZm9yIGRldGVybWluaW5nIHdoZXRoZXIgdGFyZ2V0IG9iamVjdCBpcyBhbiBhcnJheVxuICpcbiAqIEBwYXJhbSB0YXJnZXQgdGhlIG9iamVjdCB1bmRlciB0ZXN0XG4gKiBAcmV0dXJuIHtCb29sZWFufSB0cnVlIGlmIGFycmF5LCBmYWxzZSBvdGhlcndpc2VcbiAqL1xuZnVuY3Rpb24gaXNBcnJheSh0YXJnZXQpIHtcbiAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5hcHBseSh0YXJnZXQpID09PSAnW29iamVjdCBBcnJheV0nO1xufVxuXG4vKipcbiAqIEhlbHBlciBmdW5jdGlvbiBmb3IgZGV0ZXJtaW5pbmcgd2hldGhlciB0YXJnZXQgb2JqZWN0IGlzIGEgZnVuY3Rpb25cbiAqXG4gKiBAcGFyYW0gdGFyZ2V0IHRoZSBvYmplY3QgdW5kZXIgdGVzdFxuICogQHJldHVybiB7Qm9vbGVhbn0gdHJ1ZSBpZiBmdW5jdGlvbiwgZmFsc2Ugb3RoZXJ3aXNlXG4gKi9cbmZ1bmN0aW9uIGlzRnVuY3Rpb24odGFyZ2V0KSB7XG4gICAgcmV0dXJuIHR5cGVvZiB0YXJnZXQgPT09ICdmdW5jdGlvbic7XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIGlzRnVuY3Rpb24gOiBpc0Z1bmN0aW9uLFxuICAgIGlzQXJyYXkgOiBpc0FycmF5LFxuICAgIGVhY2ggOiBlYWNoXG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihhcnIsIG9iail7XG4gIGlmIChhcnIuaW5kZXhPZikgcmV0dXJuIGFyci5pbmRleE9mKG9iaik7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgKytpKSB7XG4gICAgaWYgKGFycltpXSA9PT0gb2JqKSByZXR1cm4gaTtcbiAgfVxuICByZXR1cm4gLTE7XG59OyIsImZ1bmN0aW9uIF9hcnJheUxpa2VUb0FycmF5KGFyciwgbGVuKSB7XG4gIGlmIChsZW4gPT0gbnVsbCB8fCBsZW4gPiBhcnIubGVuZ3RoKSBsZW4gPSBhcnIubGVuZ3RoO1xuXG4gIGZvciAodmFyIGkgPSAwLCBhcnIyID0gbmV3IEFycmF5KGxlbik7IGkgPCBsZW47IGkrKykge1xuICAgIGFycjJbaV0gPSBhcnJbaV07XG4gIH1cblxuICByZXR1cm4gYXJyMjtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfYXJyYXlMaWtlVG9BcnJheTtcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiLCJpbXBvcnQgX2RlZmluZVByb3BlcnR5IGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9kZWZpbmVQcm9wZXJ0eSc7XG5pbXBvcnQgX2V4dGVuZHMgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL2V4dGVuZHMnO1xuaW1wb3J0IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyBmcm9tICdiYWJlbC1ydW50aW1lL2hlbHBlcnMvb2JqZWN0V2l0aG91dFByb3BlcnRpZXMnO1xuaW1wb3J0IF9jbGFzc0NhbGxDaGVjayBmcm9tICdiYWJlbC1ydW50aW1lL2hlbHBlcnMvY2xhc3NDYWxsQ2hlY2snO1xuaW1wb3J0IF9jcmVhdGVDbGFzcyBmcm9tICdiYWJlbC1ydW50aW1lL2hlbHBlcnMvY3JlYXRlQ2xhc3MnO1xuaW1wb3J0IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuJztcbmltcG9ydCBfaW5oZXJpdHMgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL2luaGVyaXRzJztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGdlbmVyYXRlLCBnZXRTZWNvbmRhcnlDb2xvciwgaXNJY29uRGVmaW5pdGlvbiwgbG9nLCBNaW5pTWFwLCB3aXRoU3VmZml4IH0gZnJvbSAnLi4vdXRpbHMnO1xudmFyIHR3b1RvbmVDb2xvclBhbGV0dGUgPSB7XG4gICAgcHJpbWFyeUNvbG9yOiAnIzMzMycsXG4gICAgc2Vjb25kYXJ5Q29sb3I6ICcjRTZFNkU2J1xufTtcblxudmFyIEljb24gPSBmdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICAgIF9pbmhlcml0cyhJY29uLCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICAgIGZ1bmN0aW9uIEljb24oKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBJY29uKTtcblxuICAgICAgICByZXR1cm4gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgKEljb24uX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihJY29uKSkuYXBwbHkodGhpcywgYXJndW1lbnRzKSk7XG4gICAgfVxuXG4gICAgX2NyZWF0ZUNsYXNzKEljb24sIFt7XG4gICAgICAgIGtleTogJ3JlbmRlcicsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICAgICAgICB2YXIgX2V4dGVuZHMyO1xuXG4gICAgICAgICAgICB2YXIgX3Byb3BzID0gdGhpcy5wcm9wcyxcbiAgICAgICAgICAgICAgICB0eXBlID0gX3Byb3BzLnR5cGUsXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lID0gX3Byb3BzLmNsYXNzTmFtZSxcbiAgICAgICAgICAgICAgICBvbkNsaWNrID0gX3Byb3BzLm9uQ2xpY2ssXG4gICAgICAgICAgICAgICAgc3R5bGUgPSBfcHJvcHMuc3R5bGUsXG4gICAgICAgICAgICAgICAgcHJpbWFyeUNvbG9yID0gX3Byb3BzLnByaW1hcnlDb2xvcixcbiAgICAgICAgICAgICAgICBzZWNvbmRhcnlDb2xvciA9IF9wcm9wcy5zZWNvbmRhcnlDb2xvcixcbiAgICAgICAgICAgICAgICByZXN0ID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKF9wcm9wcywgWyd0eXBlJywgJ2NsYXNzTmFtZScsICdvbkNsaWNrJywgJ3N0eWxlJywgJ3ByaW1hcnlDb2xvcicsICdzZWNvbmRhcnlDb2xvciddKTtcblxuICAgICAgICAgICAgdmFyIHRhcmdldCA9IHZvaWQgMDtcbiAgICAgICAgICAgIHZhciBjb2xvcnMgPSB0d29Ub25lQ29sb3JQYWxldHRlO1xuICAgICAgICAgICAgaWYgKHByaW1hcnlDb2xvcikge1xuICAgICAgICAgICAgICAgIGNvbG9ycyA9IHtcbiAgICAgICAgICAgICAgICAgICAgcHJpbWFyeUNvbG9yOiBwcmltYXJ5Q29sb3IsXG4gICAgICAgICAgICAgICAgICAgIHNlY29uZGFyeUNvbG9yOiBzZWNvbmRhcnlDb2xvciB8fCBnZXRTZWNvbmRhcnlDb2xvcihwcmltYXJ5Q29sb3IpXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc0ljb25EZWZpbml0aW9uKHR5cGUpKSB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0ID0gdHlwZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0ID0gSWNvbi5nZXQodHlwZSwgY29sb3JzKTtcbiAgICAgICAgICAgICAgICBpZiAoIXRhcmdldCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBsb2coYENvdWxkIG5vdCBmaW5kIGljb246ICR7dHlwZX1gKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCF0YXJnZXQpIHtcbiAgICAgICAgICAgICAgICBsb2coJ3R5cGUgc2hvdWxkIGJlIHN0cmluZyBvciBpY29uIGRlZmluaXRvbiwgYnV0IGdvdCAnICsgdHlwZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGFyZ2V0ICYmIHR5cGVvZiB0YXJnZXQuaWNvbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIHRhcmdldCA9IF9leHRlbmRzKHt9LCB0YXJnZXQsIHtcbiAgICAgICAgICAgICAgICAgICAgaWNvbjogdGFyZ2V0Lmljb24oY29sb3JzLnByaW1hcnlDb2xvciwgY29sb3JzLnNlY29uZGFyeUNvbG9yKVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGdlbmVyYXRlKHRhcmdldC5pY29uLCAnc3ZnLScgKyB0YXJnZXQubmFtZSwgX2V4dGVuZHMoKF9leHRlbmRzMiA9IHtcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6IGNsYXNzTmFtZSxcbiAgICAgICAgICAgICAgICBvbkNsaWNrOiBvbkNsaWNrLFxuICAgICAgICAgICAgICAgIHN0eWxlOiBzdHlsZVxuICAgICAgICAgICAgfSwgX2RlZmluZVByb3BlcnR5KF9leHRlbmRzMiwgJ2RhdGEtaWNvbicsIHRhcmdldC5uYW1lKSwgX2RlZmluZVByb3BlcnR5KF9leHRlbmRzMiwgJ3dpZHRoJywgJzFlbScpLCBfZGVmaW5lUHJvcGVydHkoX2V4dGVuZHMyLCAnaGVpZ2h0JywgJzFlbScpLCBfZGVmaW5lUHJvcGVydHkoX2V4dGVuZHMyLCAnZmlsbCcsICdjdXJyZW50Q29sb3InKSwgX2RlZmluZVByb3BlcnR5KF9leHRlbmRzMiwgJ2FyaWEtaGlkZGVuJywgJ3RydWUnKSwgX2RlZmluZVByb3BlcnR5KF9leHRlbmRzMiwgJ2ZvY3VzYWJsZScsICdmYWxzZScpLCBfZXh0ZW5kczIpLCByZXN0KSk7XG4gICAgICAgIH1cbiAgICB9XSwgW3tcbiAgICAgICAga2V5OiAnYWRkJyxcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIGFkZCgpIHtcbiAgICAgICAgICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgICAgICAgICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgaWNvbnMgPSBBcnJheShfbGVuKSwgX2tleSA9IDA7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICAgICAgICAgICAgICBpY29uc1tfa2V5XSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWNvbnMuZm9yRWFjaChmdW5jdGlvbiAoaWNvbikge1xuICAgICAgICAgICAgICAgIF90aGlzMi5kZWZpbml0aW9ucy5zZXQod2l0aFN1ZmZpeChpY29uLm5hbWUsIGljb24udGhlbWUpLCBpY29uKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfSwge1xuICAgICAgICBrZXk6ICdjbGVhcicsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiBjbGVhcigpIHtcbiAgICAgICAgICAgIHRoaXMuZGVmaW5pdGlvbnMuY2xlYXIoKTtcbiAgICAgICAgfVxuICAgIH0sIHtcbiAgICAgICAga2V5OiAnZ2V0JyxcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIGdldChrZXkpIHtcbiAgICAgICAgICAgIHZhciBjb2xvcnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IHR3b1RvbmVDb2xvclBhbGV0dGU7XG5cbiAgICAgICAgICAgIGlmIChrZXkpIHtcbiAgICAgICAgICAgICAgICB2YXIgdGFyZ2V0ID0gdGhpcy5kZWZpbml0aW9ucy5nZXQoa2V5KTtcbiAgICAgICAgICAgICAgICBpZiAodGFyZ2V0ICYmIHR5cGVvZiB0YXJnZXQuaWNvbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQgPSBfZXh0ZW5kcyh7fSwgdGFyZ2V0LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiB0YXJnZXQuaWNvbihjb2xvcnMucHJpbWFyeUNvbG9yLCBjb2xvcnMuc2Vjb25kYXJ5Q29sb3IpXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gdGFyZ2V0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSwge1xuICAgICAgICBrZXk6ICdzZXRUd29Ub25lQ29sb3JzJyxcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIHNldFR3b1RvbmVDb2xvcnMoX3JlZikge1xuICAgICAgICAgICAgdmFyIHByaW1hcnlDb2xvciA9IF9yZWYucHJpbWFyeUNvbG9yLFxuICAgICAgICAgICAgICAgIHNlY29uZGFyeUNvbG9yID0gX3JlZi5zZWNvbmRhcnlDb2xvcjtcblxuICAgICAgICAgICAgdHdvVG9uZUNvbG9yUGFsZXR0ZS5wcmltYXJ5Q29sb3IgPSBwcmltYXJ5Q29sb3I7XG4gICAgICAgICAgICB0d29Ub25lQ29sb3JQYWxldHRlLnNlY29uZGFyeUNvbG9yID0gc2Vjb25kYXJ5Q29sb3IgfHwgZ2V0U2Vjb25kYXJ5Q29sb3IocHJpbWFyeUNvbG9yKTtcbiAgICAgICAgfVxuICAgIH0sIHtcbiAgICAgICAga2V5OiAnZ2V0VHdvVG9uZUNvbG9ycycsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRUd29Ub25lQ29sb3JzKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9leHRlbmRzKHt9LCB0d29Ub25lQ29sb3JQYWxldHRlKTtcbiAgICAgICAgfVxuICAgIH1dKTtcblxuICAgIHJldHVybiBJY29uO1xufShSZWFjdC5Db21wb25lbnQpO1xuXG5JY29uLmRpc3BsYXlOYW1lID0gJ0ljb25SZWFjdCc7XG5JY29uLmRlZmluaXRpb25zID0gbmV3IE1pbmlNYXAoKTtcbmV4cG9ydCBkZWZhdWx0IEljb247IiwiZnVuY3Rpb24gYXN5bmNHZW5lcmF0b3JTdGVwKGdlbiwgcmVzb2x2ZSwgcmVqZWN0LCBfbmV4dCwgX3Rocm93LCBrZXksIGFyZykge1xuICB0cnkge1xuICAgIHZhciBpbmZvID0gZ2VuW2tleV0oYXJnKTtcbiAgICB2YXIgdmFsdWUgPSBpbmZvLnZhbHVlO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJlamVjdChlcnJvcik7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKGluZm8uZG9uZSkge1xuICAgIHJlc29sdmUodmFsdWUpO1xuICB9IGVsc2Uge1xuICAgIFByb21pc2UucmVzb2x2ZSh2YWx1ZSkudGhlbihfbmV4dCwgX3Rocm93KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBfYXN5bmNUb0dlbmVyYXRvcihmbikge1xuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIHZhciBzZWxmID0gdGhpcyxcbiAgICAgICAgYXJncyA9IGFyZ3VtZW50cztcbiAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgdmFyIGdlbiA9IGZuLmFwcGx5KHNlbGYsIGFyZ3MpO1xuXG4gICAgICBmdW5jdGlvbiBfbmV4dCh2YWx1ZSkge1xuICAgICAgICBhc3luY0dlbmVyYXRvclN0ZXAoZ2VuLCByZXNvbHZlLCByZWplY3QsIF9uZXh0LCBfdGhyb3csIFwibmV4dFwiLCB2YWx1ZSk7XG4gICAgICB9XG5cbiAgICAgIGZ1bmN0aW9uIF90aHJvdyhlcnIpIHtcbiAgICAgICAgYXN5bmNHZW5lcmF0b3JTdGVwKGdlbiwgcmVzb2x2ZSwgcmVqZWN0LCBfbmV4dCwgX3Rocm93LCBcInRocm93XCIsIGVycik7XG4gICAgICB9XG5cbiAgICAgIF9uZXh0KHVuZGVmaW5lZCk7XG4gICAgfSk7XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX2FzeW5jVG9HZW5lcmF0b3I7XG5tb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7IiwidmFyIGFycmF5V2l0aG91dEhvbGVzID0gcmVxdWlyZShcIi4vYXJyYXlXaXRob3V0SG9sZXMuanNcIik7XG5cbnZhciBpdGVyYWJsZVRvQXJyYXkgPSByZXF1aXJlKFwiLi9pdGVyYWJsZVRvQXJyYXkuanNcIik7XG5cbnZhciB1bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSA9IHJlcXVpcmUoXCIuL3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5LmpzXCIpO1xuXG52YXIgbm9uSXRlcmFibGVTcHJlYWQgPSByZXF1aXJlKFwiLi9ub25JdGVyYWJsZVNwcmVhZC5qc1wiKTtcblxuZnVuY3Rpb24gX3RvQ29uc3VtYWJsZUFycmF5KGFycikge1xuICByZXR1cm4gYXJyYXlXaXRob3V0SG9sZXMoYXJyKSB8fCBpdGVyYWJsZVRvQXJyYXkoYXJyKSB8fCB1bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShhcnIpIHx8IG5vbkl0ZXJhYmxlU3ByZWFkKCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX3RvQ29uc3VtYWJsZUFycmF5O1xubW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlOyIsIi8qIGdsb2JhbCB3aW5kb3csIGV4cG9ydHMsIGRlZmluZSAqL1xuXG4hZnVuY3Rpb24oKSB7XG4gICAgJ3VzZSBzdHJpY3QnXG5cbiAgICB2YXIgcmUgPSB7XG4gICAgICAgIG5vdF9zdHJpbmc6IC9bXnNdLyxcbiAgICAgICAgbm90X2Jvb2w6IC9bXnRdLyxcbiAgICAgICAgbm90X3R5cGU6IC9bXlRdLyxcbiAgICAgICAgbm90X3ByaW1pdGl2ZTogL1tedl0vLFxuICAgICAgICBudW1iZXI6IC9bZGllZmddLyxcbiAgICAgICAgbnVtZXJpY19hcmc6IC9bYmNkaWVmZ3V4WF0vLFxuICAgICAgICBqc29uOiAvW2pdLyxcbiAgICAgICAgbm90X2pzb246IC9bXmpdLyxcbiAgICAgICAgdGV4dDogL15bXlxceDI1XSsvLFxuICAgICAgICBtb2R1bG86IC9eXFx4MjV7Mn0vLFxuICAgICAgICBwbGFjZWhvbGRlcjogL15cXHgyNSg/OihbMS05XVxcZCopXFwkfFxcKChbXildKylcXCkpPyhcXCspPygwfCdbXiRdKT8oLSk/KFxcZCspPyg/OlxcLihcXGQrKSk/KFtiLWdpam9zdFR1dnhYXSkvLFxuICAgICAgICBrZXk6IC9eKFthLXpfXVthLXpfXFxkXSopL2ksXG4gICAgICAgIGtleV9hY2Nlc3M6IC9eXFwuKFthLXpfXVthLXpfXFxkXSopL2ksXG4gICAgICAgIGluZGV4X2FjY2VzczogL15cXFsoXFxkKylcXF0vLFxuICAgICAgICBzaWduOiAvXlsrLV0vXG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc3ByaW50ZihrZXkpIHtcbiAgICAgICAgLy8gYGFyZ3VtZW50c2AgaXMgbm90IGFuIGFycmF5LCBidXQgc2hvdWxkIGJlIGZpbmUgZm9yIHRoaXMgY2FsbFxuICAgICAgICByZXR1cm4gc3ByaW50Zl9mb3JtYXQoc3ByaW50Zl9wYXJzZShrZXkpLCBhcmd1bWVudHMpXG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdnNwcmludGYoZm10LCBhcmd2KSB7XG4gICAgICAgIHJldHVybiBzcHJpbnRmLmFwcGx5KG51bGwsIFtmbXRdLmNvbmNhdChhcmd2IHx8IFtdKSlcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzcHJpbnRmX2Zvcm1hdChwYXJzZV90cmVlLCBhcmd2KSB7XG4gICAgICAgIHZhciBjdXJzb3IgPSAxLCB0cmVlX2xlbmd0aCA9IHBhcnNlX3RyZWUubGVuZ3RoLCBhcmcsIG91dHB1dCA9ICcnLCBpLCBrLCBwaCwgcGFkLCBwYWRfY2hhcmFjdGVyLCBwYWRfbGVuZ3RoLCBpc19wb3NpdGl2ZSwgc2lnblxuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdHJlZV9sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBwYXJzZV90cmVlW2ldID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIG91dHB1dCArPSBwYXJzZV90cmVlW2ldXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICh0eXBlb2YgcGFyc2VfdHJlZVtpXSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICBwaCA9IHBhcnNlX3RyZWVbaV0gLy8gY29udmVuaWVuY2UgcHVycG9zZXMgb25seVxuICAgICAgICAgICAgICAgIGlmIChwaC5rZXlzKSB7IC8vIGtleXdvcmQgYXJndW1lbnRcbiAgICAgICAgICAgICAgICAgICAgYXJnID0gYXJndltjdXJzb3JdXG4gICAgICAgICAgICAgICAgICAgIGZvciAoayA9IDA7IGsgPCBwaC5rZXlzLmxlbmd0aDsgaysrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXJnID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihzcHJpbnRmKCdbc3ByaW50Zl0gQ2Fubm90IGFjY2VzcyBwcm9wZXJ0eSBcIiVzXCIgb2YgdW5kZWZpbmVkIHZhbHVlIFwiJXNcIicsIHBoLmtleXNba10sIHBoLmtleXNbay0xXSkpXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmcgPSBhcmdbcGgua2V5c1trXV1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChwaC5wYXJhbV9ubykgeyAvLyBwb3NpdGlvbmFsIGFyZ3VtZW50IChleHBsaWNpdClcbiAgICAgICAgICAgICAgICAgICAgYXJnID0gYXJndltwaC5wYXJhbV9ub11cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7IC8vIHBvc2l0aW9uYWwgYXJndW1lbnQgKGltcGxpY2l0KVxuICAgICAgICAgICAgICAgICAgICBhcmcgPSBhcmd2W2N1cnNvcisrXVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChyZS5ub3RfdHlwZS50ZXN0KHBoLnR5cGUpICYmIHJlLm5vdF9wcmltaXRpdmUudGVzdChwaC50eXBlKSAmJiBhcmcgaW5zdGFuY2VvZiBGdW5jdGlvbikge1xuICAgICAgICAgICAgICAgICAgICBhcmcgPSBhcmcoKVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChyZS5udW1lcmljX2FyZy50ZXN0KHBoLnR5cGUpICYmICh0eXBlb2YgYXJnICE9PSAnbnVtYmVyJyAmJiBpc05hTihhcmcpKSkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKHNwcmludGYoJ1tzcHJpbnRmXSBleHBlY3RpbmcgbnVtYmVyIGJ1dCBmb3VuZCAlVCcsIGFyZykpXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHJlLm51bWJlci50ZXN0KHBoLnR5cGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlzX3Bvc2l0aXZlID0gYXJnID49IDBcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHBoLnR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnYic6XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmcgPSBwYXJzZUludChhcmcsIDEwKS50b1N0cmluZygyKVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnYyc6XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmcgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KGFyZywgMTApKVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnZCc6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2knOlxuICAgICAgICAgICAgICAgICAgICAgICAgYXJnID0gcGFyc2VJbnQoYXJnLCAxMClcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2onOlxuICAgICAgICAgICAgICAgICAgICAgICAgYXJnID0gSlNPTi5zdHJpbmdpZnkoYXJnLCBudWxsLCBwaC53aWR0aCA/IHBhcnNlSW50KHBoLndpZHRoKSA6IDApXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdlJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZyA9IHBoLnByZWNpc2lvbiA/IHBhcnNlRmxvYXQoYXJnKS50b0V4cG9uZW50aWFsKHBoLnByZWNpc2lvbikgOiBwYXJzZUZsb2F0KGFyZykudG9FeHBvbmVudGlhbCgpXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdmJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZyA9IHBoLnByZWNpc2lvbiA/IHBhcnNlRmxvYXQoYXJnKS50b0ZpeGVkKHBoLnByZWNpc2lvbikgOiBwYXJzZUZsb2F0KGFyZylcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2cnOlxuICAgICAgICAgICAgICAgICAgICAgICAgYXJnID0gcGgucHJlY2lzaW9uID8gU3RyaW5nKE51bWJlcihhcmcudG9QcmVjaXNpb24ocGgucHJlY2lzaW9uKSkpIDogcGFyc2VGbG9hdChhcmcpXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdvJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZyA9IChwYXJzZUludChhcmcsIDEwKSA+Pj4gMCkudG9TdHJpbmcoOClcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3MnOlxuICAgICAgICAgICAgICAgICAgICAgICAgYXJnID0gU3RyaW5nKGFyZylcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZyA9IChwaC5wcmVjaXNpb24gPyBhcmcuc3Vic3RyaW5nKDAsIHBoLnByZWNpc2lvbikgOiBhcmcpXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgICAgICBjYXNlICd0JzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZyA9IFN0cmluZyghIWFyZylcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZyA9IChwaC5wcmVjaXNpb24gPyBhcmcuc3Vic3RyaW5nKDAsIHBoLnByZWNpc2lvbikgOiBhcmcpXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdUJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZyA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChhcmcpLnNsaWNlKDgsIC0xKS50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmcgPSAocGgucHJlY2lzaW9uID8gYXJnLnN1YnN0cmluZygwLCBwaC5wcmVjaXNpb24pIDogYXJnKVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAndSc6XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmcgPSBwYXJzZUludChhcmcsIDEwKSA+Pj4gMFxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAndic6XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmcgPSBhcmcudmFsdWVPZigpXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmcgPSAocGgucHJlY2lzaW9uID8gYXJnLnN1YnN0cmluZygwLCBwaC5wcmVjaXNpb24pIDogYXJnKVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAneCc6XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmcgPSAocGFyc2VJbnQoYXJnLCAxMCkgPj4+IDApLnRvU3RyaW5nKDE2KVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnWCc6XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmcgPSAocGFyc2VJbnQoYXJnLCAxMCkgPj4+IDApLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAocmUuanNvbi50ZXN0KHBoLnR5cGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSBhcmdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZS5udW1iZXIudGVzdChwaC50eXBlKSAmJiAoIWlzX3Bvc2l0aXZlIHx8IHBoLnNpZ24pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzaWduID0gaXNfcG9zaXRpdmUgPyAnKycgOiAnLSdcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZyA9IGFyZy50b1N0cmluZygpLnJlcGxhY2UocmUuc2lnbiwgJycpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzaWduID0gJydcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBwYWRfY2hhcmFjdGVyID0gcGgucGFkX2NoYXIgPyBwaC5wYWRfY2hhciA9PT0gJzAnID8gJzAnIDogcGgucGFkX2NoYXIuY2hhckF0KDEpIDogJyAnXG4gICAgICAgICAgICAgICAgICAgIHBhZF9sZW5ndGggPSBwaC53aWR0aCAtIChzaWduICsgYXJnKS5sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgcGFkID0gcGgud2lkdGggPyAocGFkX2xlbmd0aCA+IDAgPyBwYWRfY2hhcmFjdGVyLnJlcGVhdChwYWRfbGVuZ3RoKSA6ICcnKSA6ICcnXG4gICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSBwaC5hbGlnbiA/IHNpZ24gKyBhcmcgKyBwYWQgOiAocGFkX2NoYXJhY3RlciA9PT0gJzAnID8gc2lnbiArIHBhZCArIGFyZyA6IHBhZCArIHNpZ24gKyBhcmcpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvdXRwdXRcbiAgICB9XG5cbiAgICB2YXIgc3ByaW50Zl9jYWNoZSA9IE9iamVjdC5jcmVhdGUobnVsbClcblxuICAgIGZ1bmN0aW9uIHNwcmludGZfcGFyc2UoZm10KSB7XG4gICAgICAgIGlmIChzcHJpbnRmX2NhY2hlW2ZtdF0pIHtcbiAgICAgICAgICAgIHJldHVybiBzcHJpbnRmX2NhY2hlW2ZtdF1cbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBfZm10ID0gZm10LCBtYXRjaCwgcGFyc2VfdHJlZSA9IFtdLCBhcmdfbmFtZXMgPSAwXG4gICAgICAgIHdoaWxlIChfZm10KSB7XG4gICAgICAgICAgICBpZiAoKG1hdGNoID0gcmUudGV4dC5leGVjKF9mbXQpKSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHBhcnNlX3RyZWUucHVzaChtYXRjaFswXSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKChtYXRjaCA9IHJlLm1vZHVsby5leGVjKF9mbXQpKSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHBhcnNlX3RyZWUucHVzaCgnJScpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICgobWF0Y2ggPSByZS5wbGFjZWhvbGRlci5leGVjKF9mbXQpKSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGlmIChtYXRjaFsyXSkge1xuICAgICAgICAgICAgICAgICAgICBhcmdfbmFtZXMgfD0gMVxuICAgICAgICAgICAgICAgICAgICB2YXIgZmllbGRfbGlzdCA9IFtdLCByZXBsYWNlbWVudF9maWVsZCA9IG1hdGNoWzJdLCBmaWVsZF9tYXRjaCA9IFtdXG4gICAgICAgICAgICAgICAgICAgIGlmICgoZmllbGRfbWF0Y2ggPSByZS5rZXkuZXhlYyhyZXBsYWNlbWVudF9maWVsZCkpICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZF9saXN0LnB1c2goZmllbGRfbWF0Y2hbMV0pXG4gICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoKHJlcGxhY2VtZW50X2ZpZWxkID0gcmVwbGFjZW1lbnRfZmllbGQuc3Vic3RyaW5nKGZpZWxkX21hdGNoWzBdLmxlbmd0aCkpICE9PSAnJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoZmllbGRfbWF0Y2ggPSByZS5rZXlfYWNjZXNzLmV4ZWMocmVwbGFjZW1lbnRfZmllbGQpKSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZF9saXN0LnB1c2goZmllbGRfbWF0Y2hbMV0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKChmaWVsZF9tYXRjaCA9IHJlLmluZGV4X2FjY2Vzcy5leGVjKHJlcGxhY2VtZW50X2ZpZWxkKSkgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRfbGlzdC5wdXNoKGZpZWxkX21hdGNoWzFdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN5bnRheEVycm9yKCdbc3ByaW50Zl0gZmFpbGVkIHRvIHBhcnNlIG5hbWVkIGFyZ3VtZW50IGtleScpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN5bnRheEVycm9yKCdbc3ByaW50Zl0gZmFpbGVkIHRvIHBhcnNlIG5hbWVkIGFyZ3VtZW50IGtleScpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgbWF0Y2hbMl0gPSBmaWVsZF9saXN0XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBhcmdfbmFtZXMgfD0gMlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoYXJnX25hbWVzID09PSAzKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignW3NwcmludGZdIG1peGluZyBwb3NpdGlvbmFsIGFuZCBuYW1lZCBwbGFjZWhvbGRlcnMgaXMgbm90ICh5ZXQpIHN1cHBvcnRlZCcpXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcGFyc2VfdHJlZS5wdXNoKFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogbWF0Y2hbMF0sXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbV9ubzogICAgbWF0Y2hbMV0sXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXlzOiAgICAgICAgbWF0Y2hbMl0sXG4gICAgICAgICAgICAgICAgICAgICAgICBzaWduOiAgICAgICAgbWF0Y2hbM10sXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRfY2hhcjogICAgbWF0Y2hbNF0sXG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlnbjogICAgICAgbWF0Y2hbNV0sXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogICAgICAgbWF0Y2hbNl0sXG4gICAgICAgICAgICAgICAgICAgICAgICBwcmVjaXNpb246ICAgbWF0Y2hbN10sXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAgICAgICAgbWF0Y2hbOF1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBTeW50YXhFcnJvcignW3NwcmludGZdIHVuZXhwZWN0ZWQgcGxhY2Vob2xkZXInKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgX2ZtdCA9IF9mbXQuc3Vic3RyaW5nKG1hdGNoWzBdLmxlbmd0aClcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc3ByaW50Zl9jYWNoZVtmbXRdID0gcGFyc2VfdHJlZVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGV4cG9ydCB0byBlaXRoZXIgYnJvd3NlciBvciBub2RlLmpzXG4gICAgICovXG4gICAgLyogZXNsaW50LWRpc2FibGUgcXVvdGUtcHJvcHMgKi9cbiAgICBpZiAodHlwZW9mIGV4cG9ydHMgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIGV4cG9ydHNbJ3NwcmludGYnXSA9IHNwcmludGZcbiAgICAgICAgZXhwb3J0c1sndnNwcmludGYnXSA9IHZzcHJpbnRmXG4gICAgfVxuICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICB3aW5kb3dbJ3NwcmludGYnXSA9IHNwcmludGZcbiAgICAgICAgd2luZG93Wyd2c3ByaW50ZiddID0gdnNwcmludGZcblxuICAgICAgICBpZiAodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmVbJ2FtZCddKSB7XG4gICAgICAgICAgICBkZWZpbmUoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgJ3NwcmludGYnOiBzcHJpbnRmLFxuICAgICAgICAgICAgICAgICAgICAndnNwcmludGYnOiB2c3ByaW50ZlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICB9XG4gICAgLyogZXNsaW50LWVuYWJsZSBxdW90ZS1wcm9wcyAqL1xufSgpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG4iLCIvKiogQGxpY2Vuc2UgSVNDIExpY2Vuc2UgKGMpIGNvcHlyaWdodCAyMDE2IG9yaWdpbmFsIGFuZCBjdXJyZW50IGF1dGhvcnMgKi9cbi8qKiBAYXV0aG9yIElhbiBIb2ZtYW5uLUhpY2tzIChldmlsKSAqL1xuXG5tb2R1bGUuZXhwb3J0cyA9XG4gIHJlcXVpcmUoJy4uL2NvcmUvTWF5YmUnKVxuIiwiLyoqXG4gKiBSZXR1cm5zIGEgZnVuY3Rpb24sIHRoYXQsIGFzIGxvbmcgYXMgaXQgY29udGludWVzIHRvIGJlIGludm9rZWQsIHdpbGwgbm90XG4gKiBiZSB0cmlnZ2VyZWQuIFRoZSBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZCBhZnRlciBpdCBzdG9wcyBiZWluZyBjYWxsZWQgZm9yXG4gKiBOIG1pbGxpc2Vjb25kcy4gSWYgYGltbWVkaWF0ZWAgaXMgcGFzc2VkLCB0cmlnZ2VyIHRoZSBmdW5jdGlvbiBvbiB0aGVcbiAqIGxlYWRpbmcgZWRnZSwgaW5zdGVhZCBvZiB0aGUgdHJhaWxpbmcuIFRoZSBmdW5jdGlvbiBhbHNvIGhhcyBhIHByb3BlcnR5ICdjbGVhcicgXG4gKiB0aGF0IGlzIGEgZnVuY3Rpb24gd2hpY2ggd2lsbCBjbGVhciB0aGUgdGltZXIgdG8gcHJldmVudCBwcmV2aW91c2x5IHNjaGVkdWxlZCBleGVjdXRpb25zLiBcbiAqXG4gKiBAc291cmNlIHVuZGVyc2NvcmUuanNcbiAqIEBzZWUgaHR0cDovL3Vuc2NyaXB0YWJsZS5jb20vMjAwOS8wMy8yMC9kZWJvdW5jaW5nLWphdmFzY3JpcHQtbWV0aG9kcy9cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmN0aW9uIHRvIHdyYXBcbiAqIEBwYXJhbSB7TnVtYmVyfSB0aW1lb3V0IGluIG1zIChgMTAwYClcbiAqIEBwYXJhbSB7Qm9vbGVhbn0gd2hldGhlciB0byBleGVjdXRlIGF0IHRoZSBiZWdpbm5pbmcgKGBmYWxzZWApXG4gKiBAYXBpIHB1YmxpY1xuICovXG5mdW5jdGlvbiBkZWJvdW5jZShmdW5jLCB3YWl0LCBpbW1lZGlhdGUpe1xuICB2YXIgdGltZW91dCwgYXJncywgY29udGV4dCwgdGltZXN0YW1wLCByZXN1bHQ7XG4gIGlmIChudWxsID09IHdhaXQpIHdhaXQgPSAxMDA7XG5cbiAgZnVuY3Rpb24gbGF0ZXIoKSB7XG4gICAgdmFyIGxhc3QgPSBEYXRlLm5vdygpIC0gdGltZXN0YW1wO1xuXG4gICAgaWYgKGxhc3QgPCB3YWl0ICYmIGxhc3QgPj0gMCkge1xuICAgICAgdGltZW91dCA9IHNldFRpbWVvdXQobGF0ZXIsIHdhaXQgLSBsYXN0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGltZW91dCA9IG51bGw7XG4gICAgICBpZiAoIWltbWVkaWF0ZSkge1xuICAgICAgICByZXN1bHQgPSBmdW5jLmFwcGx5KGNvbnRleHQsIGFyZ3MpO1xuICAgICAgICBjb250ZXh0ID0gYXJncyA9IG51bGw7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIHZhciBkZWJvdW5jZWQgPSBmdW5jdGlvbigpe1xuICAgIGNvbnRleHQgPSB0aGlzO1xuICAgIGFyZ3MgPSBhcmd1bWVudHM7XG4gICAgdGltZXN0YW1wID0gRGF0ZS5ub3coKTtcbiAgICB2YXIgY2FsbE5vdyA9IGltbWVkaWF0ZSAmJiAhdGltZW91dDtcbiAgICBpZiAoIXRpbWVvdXQpIHRpbWVvdXQgPSBzZXRUaW1lb3V0KGxhdGVyLCB3YWl0KTtcbiAgICBpZiAoY2FsbE5vdykge1xuICAgICAgcmVzdWx0ID0gZnVuYy5hcHBseShjb250ZXh0LCBhcmdzKTtcbiAgICAgIGNvbnRleHQgPSBhcmdzID0gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9O1xuXG4gIGRlYm91bmNlZC5jbGVhciA9IGZ1bmN0aW9uKCkge1xuICAgIGlmICh0aW1lb3V0KSB7XG4gICAgICBjbGVhclRpbWVvdXQodGltZW91dCk7XG4gICAgICB0aW1lb3V0ID0gbnVsbDtcbiAgICB9XG4gIH07XG4gIFxuICBkZWJvdW5jZWQuZmx1c2ggPSBmdW5jdGlvbigpIHtcbiAgICBpZiAodGltZW91dCkge1xuICAgICAgcmVzdWx0ID0gZnVuYy5hcHBseShjb250ZXh0LCBhcmdzKTtcbiAgICAgIGNvbnRleHQgPSBhcmdzID0gbnVsbDtcbiAgICAgIFxuICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xuICAgICAgdGltZW91dCA9IG51bGw7XG4gICAgfVxuICB9O1xuXG4gIHJldHVybiBkZWJvdW5jZWQ7XG59O1xuXG4vLyBBZGRzIGNvbXBhdGliaWxpdHkgZm9yIEVTIG1vZHVsZXNcbmRlYm91bmNlLmRlYm91bmNlID0gZGVib3VuY2U7XG5cbm1vZHVsZS5leHBvcnRzID0gZGVib3VuY2U7XG4iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBzeW1ib2xPYnNlcnZhYmxlUG9ueWZpbGwocm9vdCkge1xuXHR2YXIgcmVzdWx0O1xuXHR2YXIgU3ltYm9sID0gcm9vdC5TeW1ib2w7XG5cblx0aWYgKHR5cGVvZiBTeW1ib2wgPT09ICdmdW5jdGlvbicpIHtcblx0XHRpZiAoU3ltYm9sLm9ic2VydmFibGUpIHtcblx0XHRcdHJlc3VsdCA9IFN5bWJvbC5vYnNlcnZhYmxlO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXN1bHQgPSBTeW1ib2woJ29ic2VydmFibGUnKTtcblx0XHRcdFN5bWJvbC5vYnNlcnZhYmxlID0gcmVzdWx0O1xuXHRcdH1cblx0fSBlbHNlIHtcblx0XHRyZXN1bHQgPSAnQEBvYnNlcnZhYmxlJztcblx0fVxuXG5cdHJldHVybiByZXN1bHQ7XG59O1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgZ2VuZXJhdGVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi9nZW5lcmF0ZVwiKSk7XG5leHBvcnRzLmdlbmVyYXRlID0gZ2VuZXJhdGVfMS5kZWZhdWx0O1xudmFyIHByZXNldFByaW1hcnlDb2xvcnMgPSB7XG4gICAgcmVkOiAnI0Y1MjIyRCcsXG4gICAgdm9sY2FubzogJyNGQTU0MUMnLFxuICAgIG9yYW5nZTogJyNGQThDMTYnLFxuICAgIGdvbGQ6ICcjRkFBRDE0JyxcbiAgICB5ZWxsb3c6ICcjRkFEQjE0JyxcbiAgICBsaW1lOiAnI0EwRDkxMScsXG4gICAgZ3JlZW46ICcjNTJDNDFBJyxcbiAgICBjeWFuOiAnIzEzQzJDMicsXG4gICAgYmx1ZTogJyMxODkwRkYnLFxuICAgIGdlZWtibHVlOiAnIzJGNTRFQicsXG4gICAgcHVycGxlOiAnIzcyMkVEMScsXG4gICAgbWFnZW50YTogJyNFQjJGOTYnLFxuICAgIGdyZXk6ICcjNjY2NjY2Jyxcbn07XG5leHBvcnRzLnByZXNldFByaW1hcnlDb2xvcnMgPSBwcmVzZXRQcmltYXJ5Q29sb3JzO1xudmFyIHByZXNldFBhbGV0dGVzID0ge307XG5leHBvcnRzLnByZXNldFBhbGV0dGVzID0gcHJlc2V0UGFsZXR0ZXM7XG5PYmplY3Qua2V5cyhwcmVzZXRQcmltYXJ5Q29sb3JzKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICBwcmVzZXRQYWxldHRlc1trZXldID0gZ2VuZXJhdGVfMS5kZWZhdWx0KHByZXNldFByaW1hcnlDb2xvcnNba2V5XSk7XG4gICAgcHJlc2V0UGFsZXR0ZXNba2V5XS5wcmltYXJ5ID0gcHJlc2V0UGFsZXR0ZXNba2V5XVs2XTtcbn0pO1xudmFyIHJlZCA9IHByZXNldFBhbGV0dGVzLnJlZDtcbmV4cG9ydHMucmVkID0gcmVkO1xudmFyIHZvbGNhbm8gPSBwcmVzZXRQYWxldHRlcy52b2xjYW5vO1xuZXhwb3J0cy52b2xjYW5vID0gdm9sY2FubztcbnZhciBnb2xkID0gcHJlc2V0UGFsZXR0ZXMuZ29sZDtcbmV4cG9ydHMuZ29sZCA9IGdvbGQ7XG52YXIgeWVsbG93ID0gcHJlc2V0UGFsZXR0ZXMueWVsbG93O1xuZXhwb3J0cy55ZWxsb3cgPSB5ZWxsb3c7XG52YXIgbGltZSA9IHByZXNldFBhbGV0dGVzLmxpbWU7XG5leHBvcnRzLmxpbWUgPSBsaW1lO1xudmFyIGdyZWVuID0gcHJlc2V0UGFsZXR0ZXMuZ3JlZW47XG5leHBvcnRzLmdyZWVuID0gZ3JlZW47XG52YXIgY3lhbiA9IHByZXNldFBhbGV0dGVzLmN5YW47XG5leHBvcnRzLmN5YW4gPSBjeWFuO1xudmFyIGJsdWUgPSBwcmVzZXRQYWxldHRlcy5ibHVlO1xuZXhwb3J0cy5ibHVlID0gYmx1ZTtcbnZhciBnZWVrYmx1ZSA9IHByZXNldFBhbGV0dGVzLmdlZWtibHVlO1xuZXhwb3J0cy5nZWVrYmx1ZSA9IGdlZWtibHVlO1xudmFyIHB1cnBsZSA9IHByZXNldFBhbGV0dGVzLnB1cnBsZTtcbmV4cG9ydHMucHVycGxlID0gcHVycGxlO1xudmFyIG1hZ2VudGEgPSBwcmVzZXRQYWxldHRlcy5tYWdlbnRhO1xuZXhwb3J0cy5tYWdlbnRhID0gbWFnZW50YTtcbnZhciBncmV5ID0gcHJlc2V0UGFsZXR0ZXMuZ3JleTtcbmV4cG9ydHMuZ3JleSA9IGdyZXk7XG4iLCJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gdm9pZCAwO1xuXG52YXIgX2J1dHRvbiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vYnV0dG9uXCIpKTtcblxudmFyIF9idXR0b25Hcm91cCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vYnV0dG9uLWdyb3VwXCIpKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbl9idXR0b25bXCJkZWZhdWx0XCJdLkdyb3VwID0gX2J1dHRvbkdyb3VwW1wiZGVmYXVsdFwiXTtcbnZhciBfZGVmYXVsdCA9IF9idXR0b25bXCJkZWZhdWx0XCJdO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBfZGVmYXVsdDsiLCJmdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHZhbHVlKSB7XG4gIGlmIChrZXkgaW4gb2JqKSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7XG4gICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgd3JpdGFibGU6IHRydWVcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBvYmpba2V5XSA9IHZhbHVlO1xuICB9XG5cbiAgcmV0dXJuIG9iajtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfZGVmaW5lUHJvcGVydHk7XG5tb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7IiwiZnVuY3Rpb24gYXN5bmNHZW5lcmF0b3JTdGVwKGdlbiwgcmVzb2x2ZSwgcmVqZWN0LCBfbmV4dCwgX3Rocm93LCBrZXksIGFyZykge1xuICB0cnkge1xuICAgIHZhciBpbmZvID0gZ2VuW2tleV0oYXJnKTtcbiAgICB2YXIgdmFsdWUgPSBpbmZvLnZhbHVlO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJlamVjdChlcnJvcik7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKGluZm8uZG9uZSkge1xuICAgIHJlc29sdmUodmFsdWUpO1xuICB9IGVsc2Uge1xuICAgIFByb21pc2UucmVzb2x2ZSh2YWx1ZSkudGhlbihfbmV4dCwgX3Rocm93KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBfYXN5bmNUb0dlbmVyYXRvcihmbikge1xuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIHZhciBzZWxmID0gdGhpcyxcbiAgICAgICAgYXJncyA9IGFyZ3VtZW50cztcbiAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgdmFyIGdlbiA9IGZuLmFwcGx5KHNlbGYsIGFyZ3MpO1xuXG4gICAgICBmdW5jdGlvbiBfbmV4dCh2YWx1ZSkge1xuICAgICAgICBhc3luY0dlbmVyYXRvclN0ZXAoZ2VuLCByZXNvbHZlLCByZWplY3QsIF9uZXh0LCBfdGhyb3csIFwibmV4dFwiLCB2YWx1ZSk7XG4gICAgICB9XG5cbiAgICAgIGZ1bmN0aW9uIF90aHJvdyhlcnIpIHtcbiAgICAgICAgYXN5bmNHZW5lcmF0b3JTdGVwKGdlbiwgcmVzb2x2ZSwgcmVqZWN0LCBfbmV4dCwgX3Rocm93LCBcInRocm93XCIsIGVycik7XG4gICAgICB9XG5cbiAgICAgIF9uZXh0KHVuZGVmaW5lZCk7XG4gICAgfSk7XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX2FzeW5jVG9HZW5lcmF0b3I7XG5tb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7IiwiJ3VzZSBzdHJpY3QnO1xudmFyIHN0cmljdFVyaUVuY29kZSA9IHJlcXVpcmUoJ3N0cmljdC11cmktZW5jb2RlJyk7XG52YXIgb2JqZWN0QXNzaWduID0gcmVxdWlyZSgnb2JqZWN0LWFzc2lnbicpO1xudmFyIGRlY29kZUNvbXBvbmVudCA9IHJlcXVpcmUoJ2RlY29kZS11cmktY29tcG9uZW50Jyk7XG5cbmZ1bmN0aW9uIGVuY29kZXJGb3JBcnJheUZvcm1hdChvcHRzKSB7XG5cdHN3aXRjaCAob3B0cy5hcnJheUZvcm1hdCkge1xuXHRcdGNhc2UgJ2luZGV4Jzpcblx0XHRcdHJldHVybiBmdW5jdGlvbiAoa2V5LCB2YWx1ZSwgaW5kZXgpIHtcblx0XHRcdFx0cmV0dXJuIHZhbHVlID09PSBudWxsID8gW1xuXHRcdFx0XHRcdGVuY29kZShrZXksIG9wdHMpLFxuXHRcdFx0XHRcdCdbJyxcblx0XHRcdFx0XHRpbmRleCxcblx0XHRcdFx0XHQnXSdcblx0XHRcdFx0XS5qb2luKCcnKSA6IFtcblx0XHRcdFx0XHRlbmNvZGUoa2V5LCBvcHRzKSxcblx0XHRcdFx0XHQnWycsXG5cdFx0XHRcdFx0ZW5jb2RlKGluZGV4LCBvcHRzKSxcblx0XHRcdFx0XHQnXT0nLFxuXHRcdFx0XHRcdGVuY29kZSh2YWx1ZSwgb3B0cylcblx0XHRcdFx0XS5qb2luKCcnKTtcblx0XHRcdH07XG5cblx0XHRjYXNlICdicmFja2V0Jzpcblx0XHRcdHJldHVybiBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xuXHRcdFx0XHRyZXR1cm4gdmFsdWUgPT09IG51bGwgPyBlbmNvZGUoa2V5LCBvcHRzKSA6IFtcblx0XHRcdFx0XHRlbmNvZGUoa2V5LCBvcHRzKSxcblx0XHRcdFx0XHQnW109Jyxcblx0XHRcdFx0XHRlbmNvZGUodmFsdWUsIG9wdHMpXG5cdFx0XHRcdF0uam9pbignJyk7XG5cdFx0XHR9O1xuXG5cdFx0ZGVmYXVsdDpcblx0XHRcdHJldHVybiBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xuXHRcdFx0XHRyZXR1cm4gdmFsdWUgPT09IG51bGwgPyBlbmNvZGUoa2V5LCBvcHRzKSA6IFtcblx0XHRcdFx0XHRlbmNvZGUoa2V5LCBvcHRzKSxcblx0XHRcdFx0XHQnPScsXG5cdFx0XHRcdFx0ZW5jb2RlKHZhbHVlLCBvcHRzKVxuXHRcdFx0XHRdLmpvaW4oJycpO1xuXHRcdFx0fTtcblx0fVxufVxuXG5mdW5jdGlvbiBwYXJzZXJGb3JBcnJheUZvcm1hdChvcHRzKSB7XG5cdHZhciByZXN1bHQ7XG5cblx0c3dpdGNoIChvcHRzLmFycmF5Rm9ybWF0KSB7XG5cdFx0Y2FzZSAnaW5kZXgnOlxuXHRcdFx0cmV0dXJuIGZ1bmN0aW9uIChrZXksIHZhbHVlLCBhY2N1bXVsYXRvcikge1xuXHRcdFx0XHRyZXN1bHQgPSAvXFxbKFxcZCopXFxdJC8uZXhlYyhrZXkpO1xuXG5cdFx0XHRcdGtleSA9IGtleS5yZXBsYWNlKC9cXFtcXGQqXFxdJC8sICcnKTtcblxuXHRcdFx0XHRpZiAoIXJlc3VsdCkge1xuXHRcdFx0XHRcdGFjY3VtdWxhdG9yW2tleV0gPSB2YWx1ZTtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRpZiAoYWNjdW11bGF0b3Jba2V5XSA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdFx0YWNjdW11bGF0b3Jba2V5XSA9IHt9O1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0YWNjdW11bGF0b3Jba2V5XVtyZXN1bHRbMV1dID0gdmFsdWU7XG5cdFx0XHR9O1xuXG5cdFx0Y2FzZSAnYnJhY2tldCc6XG5cdFx0XHRyZXR1cm4gZnVuY3Rpb24gKGtleSwgdmFsdWUsIGFjY3VtdWxhdG9yKSB7XG5cdFx0XHRcdHJlc3VsdCA9IC8oXFxbXFxdKSQvLmV4ZWMoa2V5KTtcblx0XHRcdFx0a2V5ID0ga2V5LnJlcGxhY2UoL1xcW1xcXSQvLCAnJyk7XG5cblx0XHRcdFx0aWYgKCFyZXN1bHQpIHtcblx0XHRcdFx0XHRhY2N1bXVsYXRvcltrZXldID0gdmFsdWU7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9IGVsc2UgaWYgKGFjY3VtdWxhdG9yW2tleV0gPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRcdGFjY3VtdWxhdG9yW2tleV0gPSBbdmFsdWVdO1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGFjY3VtdWxhdG9yW2tleV0gPSBbXS5jb25jYXQoYWNjdW11bGF0b3Jba2V5XSwgdmFsdWUpO1xuXHRcdFx0fTtcblxuXHRcdGRlZmF1bHQ6XG5cdFx0XHRyZXR1cm4gZnVuY3Rpb24gKGtleSwgdmFsdWUsIGFjY3VtdWxhdG9yKSB7XG5cdFx0XHRcdGlmIChhY2N1bXVsYXRvcltrZXldID09PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0XHRhY2N1bXVsYXRvcltrZXldID0gdmFsdWU7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0YWNjdW11bGF0b3Jba2V5XSA9IFtdLmNvbmNhdChhY2N1bXVsYXRvcltrZXldLCB2YWx1ZSk7XG5cdFx0XHR9O1xuXHR9XG59XG5cbmZ1bmN0aW9uIGVuY29kZSh2YWx1ZSwgb3B0cykge1xuXHRpZiAob3B0cy5lbmNvZGUpIHtcblx0XHRyZXR1cm4gb3B0cy5zdHJpY3QgPyBzdHJpY3RVcmlFbmNvZGUodmFsdWUpIDogZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlKTtcblx0fVxuXG5cdHJldHVybiB2YWx1ZTtcbn1cblxuZnVuY3Rpb24ga2V5c1NvcnRlcihpbnB1dCkge1xuXHRpZiAoQXJyYXkuaXNBcnJheShpbnB1dCkpIHtcblx0XHRyZXR1cm4gaW5wdXQuc29ydCgpO1xuXHR9IGVsc2UgaWYgKHR5cGVvZiBpbnB1dCA9PT0gJ29iamVjdCcpIHtcblx0XHRyZXR1cm4ga2V5c1NvcnRlcihPYmplY3Qua2V5cyhpbnB1dCkpLnNvcnQoZnVuY3Rpb24gKGEsIGIpIHtcblx0XHRcdHJldHVybiBOdW1iZXIoYSkgLSBOdW1iZXIoYik7XG5cdFx0fSkubWFwKGZ1bmN0aW9uIChrZXkpIHtcblx0XHRcdHJldHVybiBpbnB1dFtrZXldO1xuXHRcdH0pO1xuXHR9XG5cblx0cmV0dXJuIGlucHV0O1xufVxuXG5mdW5jdGlvbiBleHRyYWN0KHN0cikge1xuXHR2YXIgcXVlcnlTdGFydCA9IHN0ci5pbmRleE9mKCc/Jyk7XG5cdGlmIChxdWVyeVN0YXJ0ID09PSAtMSkge1xuXHRcdHJldHVybiAnJztcblx0fVxuXHRyZXR1cm4gc3RyLnNsaWNlKHF1ZXJ5U3RhcnQgKyAxKTtcbn1cblxuZnVuY3Rpb24gcGFyc2Uoc3RyLCBvcHRzKSB7XG5cdG9wdHMgPSBvYmplY3RBc3NpZ24oe2FycmF5Rm9ybWF0OiAnbm9uZSd9LCBvcHRzKTtcblxuXHR2YXIgZm9ybWF0dGVyID0gcGFyc2VyRm9yQXJyYXlGb3JtYXQob3B0cyk7XG5cblx0Ly8gQ3JlYXRlIGFuIG9iamVjdCB3aXRoIG5vIHByb3RvdHlwZVxuXHQvLyBodHRwczovL2dpdGh1Yi5jb20vc2luZHJlc29yaHVzL3F1ZXJ5LXN0cmluZy9pc3N1ZXMvNDdcblx0dmFyIHJldCA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5cblx0aWYgKHR5cGVvZiBzdHIgIT09ICdzdHJpbmcnKSB7XG5cdFx0cmV0dXJuIHJldDtcblx0fVxuXG5cdHN0ciA9IHN0ci50cmltKCkucmVwbGFjZSgvXls/IyZdLywgJycpO1xuXG5cdGlmICghc3RyKSB7XG5cdFx0cmV0dXJuIHJldDtcblx0fVxuXG5cdHN0ci5zcGxpdCgnJicpLmZvckVhY2goZnVuY3Rpb24gKHBhcmFtKSB7XG5cdFx0dmFyIHBhcnRzID0gcGFyYW0ucmVwbGFjZSgvXFwrL2csICcgJykuc3BsaXQoJz0nKTtcblx0XHQvLyBGaXJlZm94IChwcmUgNDApIGRlY29kZXMgYCUzRGAgdG8gYD1gXG5cdFx0Ly8gaHR0cHM6Ly9naXRodWIuY29tL3NpbmRyZXNvcmh1cy9xdWVyeS1zdHJpbmcvcHVsbC8zN1xuXHRcdHZhciBrZXkgPSBwYXJ0cy5zaGlmdCgpO1xuXHRcdHZhciB2YWwgPSBwYXJ0cy5sZW5ndGggPiAwID8gcGFydHMuam9pbignPScpIDogdW5kZWZpbmVkO1xuXG5cdFx0Ly8gbWlzc2luZyBgPWAgc2hvdWxkIGJlIGBudWxsYDpcblx0XHQvLyBodHRwOi8vdzMub3JnL1RSLzIwMTIvV0QtdXJsLTIwMTIwNTI0LyNjb2xsZWN0LXVybC1wYXJhbWV0ZXJzXG5cdFx0dmFsID0gdmFsID09PSB1bmRlZmluZWQgPyBudWxsIDogZGVjb2RlQ29tcG9uZW50KHZhbCk7XG5cblx0XHRmb3JtYXR0ZXIoZGVjb2RlQ29tcG9uZW50KGtleSksIHZhbCwgcmV0KTtcblx0fSk7XG5cblx0cmV0dXJuIE9iamVjdC5rZXlzKHJldCkuc29ydCgpLnJlZHVjZShmdW5jdGlvbiAocmVzdWx0LCBrZXkpIHtcblx0XHR2YXIgdmFsID0gcmV0W2tleV07XG5cdFx0aWYgKEJvb2xlYW4odmFsKSAmJiB0eXBlb2YgdmFsID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheSh2YWwpKSB7XG5cdFx0XHQvLyBTb3J0IG9iamVjdCBrZXlzLCBub3QgdmFsdWVzXG5cdFx0XHRyZXN1bHRba2V5XSA9IGtleXNTb3J0ZXIodmFsKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmVzdWx0W2tleV0gPSB2YWw7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHJlc3VsdDtcblx0fSwgT2JqZWN0LmNyZWF0ZShudWxsKSk7XG59XG5cbmV4cG9ydHMuZXh0cmFjdCA9IGV4dHJhY3Q7XG5leHBvcnRzLnBhcnNlID0gcGFyc2U7XG5cbmV4cG9ydHMuc3RyaW5naWZ5ID0gZnVuY3Rpb24gKG9iaiwgb3B0cykge1xuXHR2YXIgZGVmYXVsdHMgPSB7XG5cdFx0ZW5jb2RlOiB0cnVlLFxuXHRcdHN0cmljdDogdHJ1ZSxcblx0XHRhcnJheUZvcm1hdDogJ25vbmUnXG5cdH07XG5cblx0b3B0cyA9IG9iamVjdEFzc2lnbihkZWZhdWx0cywgb3B0cyk7XG5cblx0aWYgKG9wdHMuc29ydCA9PT0gZmFsc2UpIHtcblx0XHRvcHRzLnNvcnQgPSBmdW5jdGlvbiAoKSB7fTtcblx0fVxuXG5cdHZhciBmb3JtYXR0ZXIgPSBlbmNvZGVyRm9yQXJyYXlGb3JtYXQob3B0cyk7XG5cblx0cmV0dXJuIG9iaiA/IE9iamVjdC5rZXlzKG9iaikuc29ydChvcHRzLnNvcnQpLm1hcChmdW5jdGlvbiAoa2V5KSB7XG5cdFx0dmFyIHZhbCA9IG9ialtrZXldO1xuXG5cdFx0aWYgKHZhbCA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRyZXR1cm4gJyc7XG5cdFx0fVxuXG5cdFx0aWYgKHZhbCA9PT0gbnVsbCkge1xuXHRcdFx0cmV0dXJuIGVuY29kZShrZXksIG9wdHMpO1xuXHRcdH1cblxuXHRcdGlmIChBcnJheS5pc0FycmF5KHZhbCkpIHtcblx0XHRcdHZhciByZXN1bHQgPSBbXTtcblxuXHRcdFx0dmFsLnNsaWNlKCkuZm9yRWFjaChmdW5jdGlvbiAodmFsMikge1xuXHRcdFx0XHRpZiAodmFsMiA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0cmVzdWx0LnB1c2goZm9ybWF0dGVyKGtleSwgdmFsMiwgcmVzdWx0Lmxlbmd0aCkpO1xuXHRcdFx0fSk7XG5cblx0XHRcdHJldHVybiByZXN1bHQuam9pbignJicpO1xuXHRcdH1cblxuXHRcdHJldHVybiBlbmNvZGUoa2V5LCBvcHRzKSArICc9JyArIGVuY29kZSh2YWwsIG9wdHMpO1xuXHR9KS5maWx0ZXIoZnVuY3Rpb24gKHgpIHtcblx0XHRyZXR1cm4geC5sZW5ndGggPiAwO1xuXHR9KS5qb2luKCcmJykgOiAnJztcbn07XG5cbmV4cG9ydHMucGFyc2VVcmwgPSBmdW5jdGlvbiAoc3RyLCBvcHRzKSB7XG5cdHJldHVybiB7XG5cdFx0dXJsOiBzdHIuc3BsaXQoJz8nKVswXSB8fCAnJyxcblx0XHRxdWVyeTogcGFyc2UoZXh0cmFjdChzdHIpLCBvcHRzKVxuXHR9O1xufTtcbiIsIi8qKlxuICogTW9kdWxlIGRlcGVuZGVuY2llcy5cbiAqL1xuXG50cnkge1xuICB2YXIgaW5kZXggPSByZXF1aXJlKCdpbmRleG9mJyk7XG59IGNhdGNoIChlcnIpIHtcbiAgdmFyIGluZGV4ID0gcmVxdWlyZSgnY29tcG9uZW50LWluZGV4b2YnKTtcbn1cblxuLyoqXG4gKiBXaGl0ZXNwYWNlIHJlZ2V4cC5cbiAqL1xuXG52YXIgcmUgPSAvXFxzKy87XG5cbi8qKlxuICogdG9TdHJpbmcgcmVmZXJlbmNlLlxuICovXG5cbnZhciB0b1N0cmluZyA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7XG5cbi8qKlxuICogV3JhcCBgZWxgIGluIGEgYENsYXNzTGlzdGAuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBlbFxuICogQHJldHVybiB7Q2xhc3NMaXN0fVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGVsKXtcbiAgcmV0dXJuIG5ldyBDbGFzc0xpc3QoZWwpO1xufTtcblxuLyoqXG4gKiBJbml0aWFsaXplIGEgbmV3IENsYXNzTGlzdCBmb3IgYGVsYC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IGVsXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBDbGFzc0xpc3QoZWwpIHtcbiAgaWYgKCFlbCB8fCAhZWwubm9kZVR5cGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0EgRE9NIGVsZW1lbnQgcmVmZXJlbmNlIGlzIHJlcXVpcmVkJyk7XG4gIH1cbiAgdGhpcy5lbCA9IGVsO1xuICB0aGlzLmxpc3QgPSBlbC5jbGFzc0xpc3Q7XG59XG5cbi8qKlxuICogQWRkIGNsYXNzIGBuYW1lYCBpZiBub3QgYWxyZWFkeSBwcmVzZW50LlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lXG4gKiBAcmV0dXJuIHtDbGFzc0xpc3R9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbkNsYXNzTGlzdC5wcm90b3R5cGUuYWRkID0gZnVuY3Rpb24obmFtZSl7XG4gIC8vIGNsYXNzTGlzdFxuICBpZiAodGhpcy5saXN0KSB7XG4gICAgdGhpcy5saXN0LmFkZChuYW1lKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8vIGZhbGxiYWNrXG4gIHZhciBhcnIgPSB0aGlzLmFycmF5KCk7XG4gIHZhciBpID0gaW5kZXgoYXJyLCBuYW1lKTtcbiAgaWYgKCF+aSkgYXJyLnB1c2gobmFtZSk7XG4gIHRoaXMuZWwuY2xhc3NOYW1lID0gYXJyLmpvaW4oJyAnKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFJlbW92ZSBjbGFzcyBgbmFtZWAgd2hlbiBwcmVzZW50LCBvclxuICogcGFzcyBhIHJlZ3VsYXIgZXhwcmVzc2lvbiB0byByZW1vdmVcbiAqIGFueSB3aGljaCBtYXRjaC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ3xSZWdFeHB9IG5hbWVcbiAqIEByZXR1cm4ge0NsYXNzTGlzdH1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxuQ2xhc3NMaXN0LnByb3RvdHlwZS5yZW1vdmUgPSBmdW5jdGlvbihuYW1lKXtcbiAgaWYgKCdbb2JqZWN0IFJlZ0V4cF0nID09IHRvU3RyaW5nLmNhbGwobmFtZSkpIHtcbiAgICByZXR1cm4gdGhpcy5yZW1vdmVNYXRjaGluZyhuYW1lKTtcbiAgfVxuXG4gIC8vIGNsYXNzTGlzdFxuICBpZiAodGhpcy5saXN0KSB7XG4gICAgdGhpcy5saXN0LnJlbW92ZShuYW1lKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8vIGZhbGxiYWNrXG4gIHZhciBhcnIgPSB0aGlzLmFycmF5KCk7XG4gIHZhciBpID0gaW5kZXgoYXJyLCBuYW1lKTtcbiAgaWYgKH5pKSBhcnIuc3BsaWNlKGksIDEpO1xuICB0aGlzLmVsLmNsYXNzTmFtZSA9IGFyci5qb2luKCcgJyk7XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBSZW1vdmUgYWxsIGNsYXNzZXMgbWF0Y2hpbmcgYHJlYC5cbiAqXG4gKiBAcGFyYW0ge1JlZ0V4cH0gcmVcbiAqIEByZXR1cm4ge0NsYXNzTGlzdH1cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbkNsYXNzTGlzdC5wcm90b3R5cGUucmVtb3ZlTWF0Y2hpbmcgPSBmdW5jdGlvbihyZSl7XG4gIHZhciBhcnIgPSB0aGlzLmFycmF5KCk7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKHJlLnRlc3QoYXJyW2ldKSkge1xuICAgICAgdGhpcy5yZW1vdmUoYXJyW2ldKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFRvZ2dsZSBjbGFzcyBgbmFtZWAsIGNhbiBmb3JjZSBzdGF0ZSB2aWEgYGZvcmNlYC5cbiAqXG4gKiBGb3IgYnJvd3NlcnMgdGhhdCBzdXBwb3J0IGNsYXNzTGlzdCwgYnV0IGRvIG5vdCBzdXBwb3J0IGBmb3JjZWAgeWV0LFxuICogdGhlIG1pc3Rha2Ugd2lsbCBiZSBkZXRlY3RlZCBhbmQgY29ycmVjdGVkLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lXG4gKiBAcGFyYW0ge0Jvb2xlYW59IGZvcmNlXG4gKiBAcmV0dXJuIHtDbGFzc0xpc3R9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbkNsYXNzTGlzdC5wcm90b3R5cGUudG9nZ2xlID0gZnVuY3Rpb24obmFtZSwgZm9yY2Upe1xuICAvLyBjbGFzc0xpc3RcbiAgaWYgKHRoaXMubGlzdCkge1xuICAgIGlmIChcInVuZGVmaW5lZFwiICE9PSB0eXBlb2YgZm9yY2UpIHtcbiAgICAgIGlmIChmb3JjZSAhPT0gdGhpcy5saXN0LnRvZ2dsZShuYW1lLCBmb3JjZSkpIHtcbiAgICAgICAgdGhpcy5saXN0LnRvZ2dsZShuYW1lKTsgLy8gdG9nZ2xlIGFnYWluIHRvIGNvcnJlY3RcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5saXN0LnRvZ2dsZShuYW1lKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvLyBmYWxsYmFja1xuICBpZiAoXCJ1bmRlZmluZWRcIiAhPT0gdHlwZW9mIGZvcmNlKSB7XG4gICAgaWYgKCFmb3JjZSkge1xuICAgICAgdGhpcy5yZW1vdmUobmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYWRkKG5hbWUpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBpZiAodGhpcy5oYXMobmFtZSkpIHtcbiAgICAgIHRoaXMucmVtb3ZlKG5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFkZChuYW1lKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogUmV0dXJuIGFuIGFycmF5IG9mIGNsYXNzZXMuXG4gKlxuICogQHJldHVybiB7QXJyYXl9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbkNsYXNzTGlzdC5wcm90b3R5cGUuYXJyYXkgPSBmdW5jdGlvbigpe1xuICB2YXIgY2xhc3NOYW1lID0gdGhpcy5lbC5nZXRBdHRyaWJ1dGUoJ2NsYXNzJykgfHwgJyc7XG4gIHZhciBzdHIgPSBjbGFzc05hbWUucmVwbGFjZSgvXlxccyt8XFxzKyQvZywgJycpO1xuICB2YXIgYXJyID0gc3RyLnNwbGl0KHJlKTtcbiAgaWYgKCcnID09PSBhcnJbMF0pIGFyci5zaGlmdCgpO1xuICByZXR1cm4gYXJyO1xufTtcblxuLyoqXG4gKiBDaGVjayBpZiBjbGFzcyBgbmFtZWAgaXMgcHJlc2VudC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gbmFtZVxuICogQHJldHVybiB7Q2xhc3NMaXN0fVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5DbGFzc0xpc3QucHJvdG90eXBlLmhhcyA9XG5DbGFzc0xpc3QucHJvdG90eXBlLmNvbnRhaW5zID0gZnVuY3Rpb24obmFtZSl7XG4gIHJldHVybiB0aGlzLmxpc3RcbiAgICA/IHRoaXMubGlzdC5jb250YWlucyhuYW1lKVxuICAgIDogISEgfmluZGV4KHRoaXMuYXJyYXkoKSwgbmFtZSk7XG59O1xuIiwidmFyIGFycmF5V2l0aG91dEhvbGVzID0gcmVxdWlyZShcIi4vYXJyYXlXaXRob3V0SG9sZXMuanNcIik7XG5cbnZhciBpdGVyYWJsZVRvQXJyYXkgPSByZXF1aXJlKFwiLi9pdGVyYWJsZVRvQXJyYXkuanNcIik7XG5cbnZhciB1bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSA9IHJlcXVpcmUoXCIuL3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5LmpzXCIpO1xuXG52YXIgbm9uSXRlcmFibGVTcHJlYWQgPSByZXF1aXJlKFwiLi9ub25JdGVyYWJsZVNwcmVhZC5qc1wiKTtcblxuZnVuY3Rpb24gX3RvQ29uc3VtYWJsZUFycmF5KGFycikge1xuICByZXR1cm4gYXJyYXlXaXRob3V0SG9sZXMoYXJyKSB8fCBpdGVyYWJsZVRvQXJyYXkoYXJyKSB8fCB1bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShhcnIpIHx8IG5vbkl0ZXJhYmxlU3ByZWFkKCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX3RvQ29uc3VtYWJsZUFycmF5O1xubW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlOyIsIid1c2Ugc3RyaWN0JztcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzWydkZWZhdWx0J10gPSBhZGRFdmVudExpc3RlbmVyO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbnZhciBfRXZlbnRPYmplY3QgPSByZXF1aXJlKCcuL0V2ZW50T2JqZWN0Jyk7XG5cbnZhciBfRXZlbnRPYmplY3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfRXZlbnRPYmplY3QpO1xuXG5mdW5jdGlvbiBhZGRFdmVudExpc3RlbmVyKHRhcmdldCwgZXZlbnRUeXBlLCBjYWxsYmFjaywgb3B0aW9uKSB7XG4gIGZ1bmN0aW9uIHdyYXBDYWxsYmFjayhlKSB7XG4gICAgdmFyIG5lID0gbmV3IF9FdmVudE9iamVjdDJbJ2RlZmF1bHQnXShlKTtcbiAgICBjYWxsYmFjay5jYWxsKHRhcmdldCwgbmUpO1xuICB9XG5cbiAgaWYgKHRhcmdldC5hZGRFdmVudExpc3RlbmVyKSB7XG4gICAgdmFyIF9yZXQgPSAoZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIHVzZUNhcHR1cmUgPSBmYWxzZTtcbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9uID09PSAnb2JqZWN0Jykge1xuICAgICAgICB1c2VDYXB0dXJlID0gb3B0aW9uLmNhcHR1cmUgfHwgZmFsc2U7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBvcHRpb24gPT09ICdib29sZWFuJykge1xuICAgICAgICB1c2VDYXB0dXJlID0gb3B0aW9uO1xuICAgICAgfVxuXG4gICAgICB0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIHdyYXBDYWxsYmFjaywgb3B0aW9uIHx8IGZhbHNlKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdjoge1xuICAgICAgICAgIHJlbW92ZTogZnVuY3Rpb24gcmVtb3ZlKCkge1xuICAgICAgICAgICAgdGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCB3cmFwQ2FsbGJhY2ssIHVzZUNhcHR1cmUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9KSgpO1xuXG4gICAgaWYgKHR5cGVvZiBfcmV0ID09PSAnb2JqZWN0JykgcmV0dXJuIF9yZXQudjtcbiAgfSBlbHNlIGlmICh0YXJnZXQuYXR0YWNoRXZlbnQpIHtcbiAgICB0YXJnZXQuYXR0YWNoRXZlbnQoJ29uJyArIGV2ZW50VHlwZSwgd3JhcENhbGxiYWNrKTtcbiAgICByZXR1cm4ge1xuICAgICAgcmVtb3ZlOiBmdW5jdGlvbiByZW1vdmUoKSB7XG4gICAgICAgIHRhcmdldC5kZXRhY2hFdmVudCgnb24nICsgZXZlbnRUeXBlLCB3cmFwQ2FsbGJhY2spO1xuICAgICAgfVxuICAgIH07XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IHZvaWQgMDtcblxudmFyIFJlYWN0ID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcblxudmFyIF90b29sdGlwID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vdG9vbHRpcFwiKSk7XG5cbnZhciBfY29uZmlnUHJvdmlkZXIgPSByZXF1aXJlKFwiLi4vY29uZmlnLXByb3ZpZGVyXCIpO1xuXG52YXIgX3dhcm5pbmcgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuLi9fdXRpbC93YXJuaW5nXCIpKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgaWYgKHR5cGVvZiBXZWFrTWFwICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBudWxsOyB2YXIgY2FjaGUgPSBuZXcgV2Vha01hcCgpOyBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUgPSBmdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7IHJldHVybiBjYWNoZTsgfTsgcmV0dXJuIGNhY2hlOyB9XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKG9iaikgeyBpZiAob2JqICYmIG9iai5fX2VzTW9kdWxlKSB7IHJldHVybiBvYmo7IH0gaWYgKG9iaiA9PT0gbnVsbCB8fCBfdHlwZW9mKG9iaikgIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIG9iaiAhPT0gXCJmdW5jdGlvblwiKSB7IHJldHVybiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfSB2YXIgY2FjaGUgPSBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKTsgaWYgKGNhY2hlICYmIGNhY2hlLmhhcyhvYmopKSB7IHJldHVybiBjYWNoZS5nZXQob2JqKTsgfSB2YXIgbmV3T2JqID0ge307IHZhciBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjsgZm9yICh2YXIga2V5IGluIG9iaikgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkgeyB2YXIgZGVzYyA9IGhhc1Byb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDogbnVsbDsgaWYgKGRlc2MgJiYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpOyB9IGVsc2UgeyBuZXdPYmpba2V5XSA9IG9ialtrZXldOyB9IH0gfSBuZXdPYmpbXCJkZWZhdWx0XCJdID0gb2JqOyBpZiAoY2FjaGUpIHsgY2FjaGUuc2V0KG9iaiwgbmV3T2JqKTsgfSByZXR1cm4gbmV3T2JqOyB9XG5cbmZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjsgaWYgKHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09PSBcInN5bWJvbFwiKSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gdHlwZW9mIG9iajsgfTsgfSBlbHNlIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiBvYmogJiYgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG9iaiAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqOyB9OyB9IHJldHVybiBfdHlwZW9mKG9iaik7IH1cblxuZnVuY3Rpb24gX2V4dGVuZHMoKSB7IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTsgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfVxuXG5mdW5jdGlvbiBfY3JlYXRlQ2xhc3MoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7IGlmIChwcm90b1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSBcImZ1bmN0aW9uXCIgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb25cIik7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgX3NldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKTsgfVxuXG5mdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkgeyBfc2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgby5fX3Byb3RvX18gPSBwOyByZXR1cm4gbzsgfTsgcmV0dXJuIF9zZXRQcm90b3R5cGVPZihvLCBwKTsgfVxuXG5mdW5jdGlvbiBfY3JlYXRlU3VwZXIoRGVyaXZlZCkgeyB2YXIgaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCA9IF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKTsgcmV0dXJuIGZ1bmN0aW9uIF9jcmVhdGVTdXBlckludGVybmFsKCkgeyB2YXIgU3VwZXIgPSBfZ2V0UHJvdG90eXBlT2YoRGVyaXZlZCksIHJlc3VsdDsgaWYgKGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QpIHsgdmFyIE5ld1RhcmdldCA9IF9nZXRQcm90b3R5cGVPZih0aGlzKS5jb25zdHJ1Y3RvcjsgcmVzdWx0ID0gUmVmbGVjdC5jb25zdHJ1Y3QoU3VwZXIsIGFyZ3VtZW50cywgTmV3VGFyZ2V0KTsgfSBlbHNlIHsgcmVzdWx0ID0gU3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfSByZXR1cm4gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgcmVzdWx0KTsgfTsgfVxuXG5mdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLCBjYWxsKSB7IGlmIChjYWxsICYmIChfdHlwZW9mKGNhbGwpID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpKSB7IHJldHVybiBjYWxsOyB9IHJldHVybiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpOyB9XG5cbmZ1bmN0aW9uIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZikgeyBpZiAoc2VsZiA9PT0gdm9pZCAwKSB7IHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTsgfSByZXR1cm4gc2VsZjsgfVxuXG5mdW5jdGlvbiBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCkgeyBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwidW5kZWZpbmVkXCIgfHwgIVJlZmxlY3QuY29uc3RydWN0KSByZXR1cm4gZmFsc2U7IGlmIChSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKSByZXR1cm4gZmFsc2U7IGlmICh0eXBlb2YgUHJveHkgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIHRydWU7IHRyeSB7IERhdGUucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoRGF0ZSwgW10sIGZ1bmN0aW9uICgpIHt9KSk7IHJldHVybiB0cnVlOyB9IGNhdGNoIChlKSB7IHJldHVybiBmYWxzZTsgfSB9XG5cbmZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IF9nZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5nZXRQcm90b3R5cGVPZiA6IGZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IHJldHVybiBvLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2Yobyk7IH07IHJldHVybiBfZ2V0UHJvdG90eXBlT2Yobyk7IH1cblxudmFyIF9fcmVzdCA9IHZvaWQgMCAmJiAodm9pZCAwKS5fX3Jlc3QgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgdmFyIHQgPSB7fTtcblxuICBmb3IgKHZhciBwIGluIHMpIHtcbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApIHRbcF0gPSBzW3BdO1xuICB9XG5cbiAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKSBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKSB0W3BbaV1dID0gc1twW2ldXTtcbiAgfVxuICByZXR1cm4gdDtcbn07XG5cbnZhciBQb3BvdmVyID0gLyojX19QVVJFX18qL2Z1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhQb3BvdmVyLCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICB2YXIgX3N1cGVyID0gX2NyZWF0ZVN1cGVyKFBvcG92ZXIpO1xuXG4gIGZ1bmN0aW9uIFBvcG92ZXIoKSB7XG4gICAgdmFyIF90aGlzO1xuXG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFBvcG92ZXIpO1xuXG4gICAgX3RoaXMgPSBfc3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcblxuICAgIF90aGlzLnNhdmVUb29sdGlwID0gZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgIF90aGlzLnRvb2x0aXAgPSBub2RlO1xuICAgIH07XG5cbiAgICBfdGhpcy5yZW5kZXJQb3BvdmVyID0gZnVuY3Rpb24gKF9yZWYpIHtcbiAgICAgIHZhciBnZXRQcmVmaXhDbHMgPSBfcmVmLmdldFByZWZpeENscztcblxuICAgICAgdmFyIF9hID0gX3RoaXMucHJvcHMsXG4gICAgICAgICAgY3VzdG9taXplUHJlZml4Q2xzID0gX2EucHJlZml4Q2xzLFxuICAgICAgICAgIHByb3BzID0gX19yZXN0KF9hLCBbXCJwcmVmaXhDbHNcIl0pO1xuXG4gICAgICBkZWxldGUgcHJvcHMudGl0bGU7XG4gICAgICB2YXIgcHJlZml4Q2xzID0gZ2V0UHJlZml4Q2xzKCdwb3BvdmVyJywgY3VzdG9taXplUHJlZml4Q2xzKTtcbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfdG9vbHRpcFtcImRlZmF1bHRcIl0sIF9leHRlbmRzKHt9LCBwcm9wcywge1xuICAgICAgICBwcmVmaXhDbHM6IHByZWZpeENscyxcbiAgICAgICAgcmVmOiBfdGhpcy5zYXZlVG9vbHRpcCxcbiAgICAgICAgb3ZlcmxheTogX3RoaXMuZ2V0T3ZlcmxheShwcmVmaXhDbHMpXG4gICAgICB9KSk7XG4gICAgfTtcblxuICAgIHJldHVybiBfdGhpcztcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhQb3BvdmVyLCBbe1xuICAgIGtleTogXCJnZXRQb3B1cERvbU5vZGVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0UG9wdXBEb21Ob2RlKCkge1xuICAgICAgcmV0dXJuIHRoaXMudG9vbHRpcC5nZXRQb3B1cERvbU5vZGUoKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZ2V0T3ZlcmxheVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRPdmVybGF5KHByZWZpeENscykge1xuICAgICAgdmFyIF90aGlzJHByb3BzID0gdGhpcy5wcm9wcyxcbiAgICAgICAgICB0aXRsZSA9IF90aGlzJHByb3BzLnRpdGxlLFxuICAgICAgICAgIGNvbnRlbnQgPSBfdGhpcyRwcm9wcy5jb250ZW50O1xuICAgICAgKDAsIF93YXJuaW5nW1wiZGVmYXVsdFwiXSkoISgnb3ZlcmxheScgaW4gdGhpcy5wcm9wcyksICdQb3BvdmVyJywgJ2BvdmVybGF5YCBpcyByZW1vdmVkLCBwbGVhc2UgdXNlIGBjb250ZW50YCBpbnN0ZWFkLCAnICsgJ3NlZTogaHR0cHM6Ly91LmFudC5kZXNpZ24vcG9wb3Zlci1jb250ZW50Jyk7XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgbnVsbCwgdGl0bGUgJiYgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeENscywgXCItdGl0bGVcIilcbiAgICAgIH0sIHRpdGxlKSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeENscywgXCItaW5uZXItY29udGVudFwiKVxuICAgICAgfSwgY29udGVudCkpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJyZW5kZXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9jb25maWdQcm92aWRlci5Db25maWdDb25zdW1lciwgbnVsbCwgdGhpcy5yZW5kZXJQb3BvdmVyKTtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gUG9wb3Zlcjtcbn0oUmVhY3QuQ29tcG9uZW50KTtcblxuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBQb3BvdmVyO1xuUG9wb3Zlci5kZWZhdWx0UHJvcHMgPSB7XG4gIHBsYWNlbWVudDogJ3RvcCcsXG4gIHRyYW5zaXRpb25OYW1lOiAnem9vbS1iaWcnLFxuICB0cmlnZ2VyOiAnaG92ZXInLFxuICBtb3VzZUVudGVyRGVsYXk6IDAuMSxcbiAgbW91c2VMZWF2ZURlbGF5OiAwLjEsXG4gIG92ZXJsYXlTdHlsZToge31cbn07IiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgeG1sX2VudGl0aWVzXzEgPSByZXF1aXJlKFwiLi94bWwtZW50aXRpZXNcIik7XG5leHBvcnRzLlhtbEVudGl0aWVzID0geG1sX2VudGl0aWVzXzEuWG1sRW50aXRpZXM7XG52YXIgaHRtbDRfZW50aXRpZXNfMSA9IHJlcXVpcmUoXCIuL2h0bWw0LWVudGl0aWVzXCIpO1xuZXhwb3J0cy5IdG1sNEVudGl0aWVzID0gaHRtbDRfZW50aXRpZXNfMS5IdG1sNEVudGl0aWVzO1xudmFyIGh0bWw1X2VudGl0aWVzXzEgPSByZXF1aXJlKFwiLi9odG1sNS1lbnRpdGllc1wiKTtcbmV4cG9ydHMuSHRtbDVFbnRpdGllcyA9IGh0bWw1X2VudGl0aWVzXzEuSHRtbDVFbnRpdGllcztcbmV4cG9ydHMuQWxsSHRtbEVudGl0aWVzID0gaHRtbDVfZW50aXRpZXNfMS5IdG1sNUVudGl0aWVzO1xuIiwiLy8gVGhpcyBpcyBhIGNhY2hlIG9mIGluLWZsaWdodCByZXF1ZXN0cy4gRWFjaCByZXF1ZXN0IGtleSBtYXBzIHRvIGFuXG4vLyBhcnJheSBvZiBQcm9taXNlcy4gV2hlbiB0aGUgcmVxdWVzdCByZXNvbHZlcywgZWFjaCBwcm9taXNlIGluIHRoZVxuLy8gYXJyYXkgaXMgcHVzaGVkIHRvLlxudmFyIHJlcXVlc3RzID0ge307XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXF1ZXN0S2V5KCkge1xuICB2YXIgX3JlZiA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge30sXG4gICAgICBfcmVmJHVybCA9IF9yZWYudXJsLFxuICAgICAgdXJsID0gX3JlZiR1cmwgPT09IHVuZGVmaW5lZCA/ICcnIDogX3JlZiR1cmwsXG4gICAgICBfcmVmJG1ldGhvZCA9IF9yZWYubWV0aG9kLFxuICAgICAgbWV0aG9kID0gX3JlZiRtZXRob2QgPT09IHVuZGVmaW5lZCA/ICcnIDogX3JlZiRtZXRob2QsXG4gICAgICBfcmVmJHJlc3BvbnNlVHlwZSA9IF9yZWYucmVzcG9uc2VUeXBlLFxuICAgICAgcmVzcG9uc2VUeXBlID0gX3JlZiRyZXNwb25zZVR5cGUgPT09IHVuZGVmaW5lZCA/ICcnIDogX3JlZiRyZXNwb25zZVR5cGUsXG4gICAgICBfcmVmJGJvZHkgPSBfcmVmLmJvZHksXG4gICAgICBib2R5ID0gX3JlZiRib2R5ID09PSB1bmRlZmluZWQgPyAnJyA6IF9yZWYkYm9keTtcblxuICByZXR1cm4gW3VybCwgbWV0aG9kLnRvVXBwZXJDYXNlKCksIHJlc3BvbnNlVHlwZSwgYm9keV0uam9pbignfHwnKTtcbn1cblxuLy8gUmV0dXJucyBgdHJ1ZWAgaWYgYSByZXF1ZXN0IHdpdGggYHJlcXVlc3RLZXlgIGlzIGluIGZsaWdodCxcbi8vIGFuZCBgZmFsc2VgIG90aGVyd2lzZS5cbmV4cG9ydCBmdW5jdGlvbiBpc1JlcXVlc3RJbkZsaWdodChyZXF1ZXN0S2V5KSB7XG4gIHJldHVybiBCb29sZWFuKHJlcXVlc3RzW3JlcXVlc3RLZXldKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNsZWFyUmVxdWVzdENhY2hlKCkge1xuICByZXF1ZXN0cyA9IHt9O1xufVxuXG4vLyBUaGlzIGxvb3BzIHRocm91Z2ggYWxsIG9mIHRoZSBoYW5kbGVycyBmb3IgdGhlIHJlcXVlc3QgYW5kIGVpdGhlclxuLy8gcmVzb2x2ZXMgb3IgcmVqZWN0cyB0aGVtLlxuZnVuY3Rpb24gcmVzb2x2ZVJlcXVlc3QoX3JlZjIpIHtcbiAgdmFyIHJlcXVlc3RLZXkgPSBfcmVmMi5yZXF1ZXN0S2V5LFxuICAgICAgcmVzID0gX3JlZjIucmVzLFxuICAgICAgZXJyID0gX3JlZjIuZXJyO1xuXG4gIHZhciBoYW5kbGVycyA9IHJlcXVlc3RzW3JlcXVlc3RLZXldIHx8IFtdO1xuXG4gIGhhbmRsZXJzLmZvckVhY2goZnVuY3Rpb24gKGhhbmRsZXIpIHtcbiAgICBpZiAocmVzKSB7XG4gICAgICBoYW5kbGVyLnJlc29sdmUocmVzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaGFuZGxlci5yZWplY3QoZXJyKTtcbiAgICB9XG4gIH0pO1xuXG4gIC8vIFRoaXMgbGlzdCBvZiBoYW5kbGVycyBoYXMgYmVlbiwgd2VsbCwgaGFuZGxlZC4gU28gd2VcbiAgLy8gY2xlYXIgdGhlIGhhbmRsZXJzIGZvciB0aGUgbmV4dCByZXF1ZXN0LlxuICByZXF1ZXN0c1tyZXF1ZXN0S2V5XSA9IG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmZXRjaERlZHVwZShpbnB1dCkge1xuICB2YXIgaW5pdCA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDoge307XG4gIHZhciBkZWR1cGVPcHRpb25zID0gYXJndW1lbnRzWzJdO1xuXG4gIHZhciBvcHRzID0gdm9pZCAwLFxuICAgICAgaW5pdFRvVXNlID0gdm9pZCAwO1xuICBpZiAoZGVkdXBlT3B0aW9ucykge1xuICAgIG9wdHMgPSBkZWR1cGVPcHRpb25zO1xuICAgIGluaXRUb1VzZSA9IGluaXQ7XG4gIH0gZWxzZSBpZiAoaW5pdC5yZXNwb25zZVR5cGUpIHtcbiAgICBvcHRzID0gaW5pdDtcbiAgICBpbml0VG9Vc2UgPSB7fTtcbiAgfSBlbHNlIHtcbiAgICBvcHRzID0ge307XG4gICAgaW5pdFRvVXNlID0gaW5pdDtcbiAgfVxuXG4gIHZhciBfb3B0cyA9IG9wdHMsXG4gICAgICByZXF1ZXN0S2V5ID0gX29wdHMucmVxdWVzdEtleSxcbiAgICAgIF9vcHRzJHJlc3BvbnNlVHlwZSA9IF9vcHRzLnJlc3BvbnNlVHlwZSxcbiAgICAgIHJlc3BvbnNlVHlwZSA9IF9vcHRzJHJlc3BvbnNlVHlwZSA9PT0gdW5kZWZpbmVkID8gJycgOiBfb3B0cyRyZXNwb25zZVR5cGUsXG4gICAgICBfb3B0cyRkZWR1cGUgPSBfb3B0cy5kZWR1cGUsXG4gICAgICBkZWR1cGUgPSBfb3B0cyRkZWR1cGUgPT09IHVuZGVmaW5lZCA/IHRydWUgOiBfb3B0cyRkZWR1cGU7XG5cbiAgLy8gQnVpbGQgdGhlIGRlZmF1bHQgcmVxdWVzdCBrZXkgaWYgb25lIGlzIG5vdCBwYXNzZWRcblxuICB2YXIgcmVxdWVzdEtleVRvVXNlID0gcmVxdWVzdEtleSB8fCBnZXRSZXF1ZXN0S2V5KHtcbiAgICAvLyBJZiBgaW5wdXRgIGlzIGEgcmVxdWVzdCwgdGhlbiB3ZSB1c2UgdGhhdCBVUkxcbiAgICB1cmw6IGlucHV0LnVybCB8fCBpbnB1dCxcbiAgICAvLyBXZSBwcmVmZXIgdmFsdWVzIGZyb20gYGluaXRgIG92ZXIgcmVxdWVzdCBvYmplY3RzLiBXaXRoIGBmZXRjaCgpYCwgaW5pdFxuICAgIC8vIHRha2VzIHByaW9yaXR5IG92ZXIgYSBwYXNzZWQtaW4gcmVxdWVzdFxuICAgIG1ldGhvZDogaW5pdFRvVXNlLm1ldGhvZCB8fCBpbnB1dC5tZXRob2QgfHwgJycsXG4gICAgYm9keTogaW5pdFRvVXNlLmJvZHkgfHwgaW5wdXQuYm9keSB8fCAnJ1xuICB9KTtcblxuICB2YXIgcHJveHlSZXEgPSB2b2lkIDA7XG4gIGlmIChkZWR1cGUpIHtcbiAgICBpZiAoIXJlcXVlc3RzW3JlcXVlc3RLZXlUb1VzZV0pIHtcbiAgICAgIHJlcXVlc3RzW3JlcXVlc3RLZXlUb1VzZV0gPSBbXTtcbiAgICB9XG5cbiAgICB2YXIgaGFuZGxlcnMgPSByZXF1ZXN0c1tyZXF1ZXN0S2V5VG9Vc2VdO1xuICAgIHZhciByZXF1ZXN0SW5GbGlnaHQgPSBCb29sZWFuKGhhbmRsZXJzLmxlbmd0aCk7XG4gICAgdmFyIHJlcXVlc3RIYW5kbGVyID0ge307XG4gICAgcHJveHlSZXEgPSBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICByZXF1ZXN0SGFuZGxlci5yZXNvbHZlID0gcmVzb2x2ZTtcbiAgICAgIHJlcXVlc3RIYW5kbGVyLnJlamVjdCA9IHJlamVjdDtcbiAgICB9KTtcblxuICAgIGhhbmRsZXJzLnB1c2gocmVxdWVzdEhhbmRsZXIpO1xuXG4gICAgaWYgKHJlcXVlc3RJbkZsaWdodCkge1xuICAgICAgcmV0dXJuIHByb3h5UmVxO1xuICAgIH1cbiAgfVxuXG4gIHZhciByZXF1ZXN0ID0gZmV0Y2goaW5wdXQsIGluaXRUb1VzZSkudGhlbihmdW5jdGlvbiAocmVzKSB7XG4gICAgdmFyIHJlc3BvbnNlVHlwZVRvVXNlID0gdm9pZCAwO1xuICAgIGlmIChyZXNwb25zZVR5cGUgaW5zdGFuY2VvZiBGdW5jdGlvbikge1xuICAgICAgcmVzcG9uc2VUeXBlVG9Vc2UgPSByZXNwb25zZVR5cGUocmVzKTtcbiAgICB9IGVsc2UgaWYgKHJlc3BvbnNlVHlwZSkge1xuICAgICAgcmVzcG9uc2VUeXBlVG9Vc2UgPSByZXNwb25zZVR5cGU7XG4gICAgfSBlbHNlIGlmIChyZXMuc3RhdHVzID09PSAyMDQpIHtcbiAgICAgIHJlc3BvbnNlVHlwZVRvVXNlID0gJ3RleHQnO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXNwb25zZVR5cGVUb1VzZSA9ICdqc29uJztcbiAgICB9XG4gICAgLy8gVGhlIHJlc3BvbnNlIGJvZHkgaXMgYSBSZWFkYWJsZVN0cmVhbS4gUmVhZGFibGVTdHJlYW1zIGNhbiBvbmx5IGJlIHJlYWQgYSBzaW5nbGVcbiAgICAvLyB0aW1lLCBzbyB3ZSBtdXN0IGhhbmRsZSB0aGF0IGluIGEgY2VudHJhbCBsb2NhdGlvbiwgaGVyZSwgYmVmb3JlIHJlc29sdmluZ1xuICAgIC8vIHRoZSBmZXRjaC5cbiAgICByZXR1cm4gcmVzW3Jlc3BvbnNlVHlwZVRvVXNlXSgpLnRoZW4oZnVuY3Rpb24gKGRhdGEpIHtcbiAgICAgIHJlcy5kYXRhID0gZGF0YTtcblxuICAgICAgaWYgKGRlZHVwZSkge1xuICAgICAgICByZXNvbHZlUmVxdWVzdCh7IHJlcXVlc3RLZXk6IHJlcXVlc3RLZXlUb1VzZSwgcmVzOiByZXMgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgfVxuICAgIH0sIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJlcy5kYXRhID0gbnVsbDtcblxuICAgICAgaWYgKGRlZHVwZSkge1xuICAgICAgICByZXNvbHZlUmVxdWVzdCh7IHJlcXVlc3RLZXk6IHJlcXVlc3RLZXlUb1VzZSwgcmVzOiByZXMgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgfVxuICAgIH0pO1xuICB9LCBmdW5jdGlvbiAoZXJyKSB7XG4gICAgaWYgKGRlZHVwZSkge1xuICAgICAgcmVzb2x2ZVJlcXVlc3QoeyByZXF1ZXN0S2V5OiByZXF1ZXN0S2V5VG9Vc2UsIGVycjogZXJyIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZXJyKTtcbiAgICB9XG4gIH0pO1xuXG4gIGlmIChkZWR1cGUpIHtcbiAgICByZXR1cm4gcHJveHlSZXE7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHJlcXVlc3Q7XG4gIH1cbn0iLCJpbXBvcnQgUmVhY3QsIHsgdXNlQ29udGV4dCB9IGZyb20gXCJyZWFjdFwiO1xudmFyIEZldGNoQ29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQobnVsbCk7XG5cbmV4cG9ydCB2YXIgdXNlRmV0Y2hDb250ZXh0ID0gZnVuY3Rpb24gdXNlRmV0Y2hDb250ZXh0KCkge1xuICB2YXIgY2FjaGUgPSB1c2VDb250ZXh0KEZldGNoQ29udGV4dCk7XG5cbiAgcmV0dXJuIGNhY2hlO1xufTtcblxuZnVuY3Rpb24gRmV0Y2hQcm92aWRlcihfcmVmKSB7XG4gIHZhciBjYWNoZSA9IF9yZWYuY2FjaGUsXG4gICAgICBjaGlsZHJlbiA9IF9yZWYuY2hpbGRyZW47XG5cbiAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgRmV0Y2hDb250ZXh0LlByb3ZpZGVyLFxuICAgIHsgdmFsdWU6IGNhY2hlIH0sXG4gICAgY2hpbGRyZW5cbiAgKTtcbn1cblxuZXhwb3J0IHsgRmV0Y2hQcm92aWRlciB9OyIsImV4cG9ydCB2YXIgZ2V0SGVhZGVyID0gZnVuY3Rpb24gZ2V0SGVhZGVyKGhlYWRlcnMsIGtleVRvRmluZCkge1xuICBpZiAoIWhlYWRlcnMpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vIEhlYWRlcnMnIGdldCgpIGlzIGNhc2UgaW5zZW5zaXRpdmVcbiAgaWYgKGhlYWRlcnMgaW5zdGFuY2VvZiBIZWFkZXJzKSB7XG4gICAgcmV0dXJuIGhlYWRlcnMuZ2V0KGtleVRvRmluZCk7XG4gIH1cblxuICB2YXIga2V5VG9GaW5kTG93ZXJjYXNlID0ga2V5VG9GaW5kLnRvTG93ZXJDYXNlKCk7XG4gIC8vIENvbnZlcnQga2V5cyB0byBsb3dlckNhc2Ugc28gd2UgZG9uJ3QgcnVuIGludG8gY2FzZSBzZW5zaXRpdml0eSBpc3N1ZXNcbiAgdmFyIGhlYWRlcktleSA9IE9iamVjdC5rZXlzKGhlYWRlcnMpLmZpbmQoZnVuY3Rpb24gKGhlYWRlcktleSkge1xuICAgIHJldHVybiBoZWFkZXJLZXkudG9Mb3dlckNhc2UoKSA9PT0ga2V5VG9GaW5kTG93ZXJjYXNlO1xuICB9KTtcblxuICByZXR1cm4gaGVhZGVyS2V5ID8gaGVhZGVyc1toZWFkZXJLZXldIDogbnVsbDtcbn07XG5cbmV4cG9ydCB2YXIgc3RyaW5naWZ5SWZKU09OID0gZnVuY3Rpb24gc3RyaW5naWZ5SWZKU09OKGZldGNoT3B0aW9ucykge1xuICB2YXIgY29udGVudFR5cGUgPSBnZXRIZWFkZXIoZmV0Y2hPcHRpb25zLmhlYWRlcnMsIFwiQ29udGVudC1UeXBlXCIpO1xuXG4gIGlmIChjb250ZW50VHlwZSAmJiBjb250ZW50VHlwZS5pbmRleE9mKFwiYXBwbGljYXRpb24vanNvblwiKSAhPT0gLTEpIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoZmV0Y2hPcHRpb25zLmJvZHkpO1xuICB9XG5cbiAgcmV0dXJuIGZldGNoT3B0aW9ucy5ib2R5O1xufTtcblxuZXhwb3J0IHZhciBpc1JlYWRSZXF1ZXN0ID0gZnVuY3Rpb24gaXNSZWFkUmVxdWVzdChtZXRob2QpIHtcbiAgbWV0aG9kID0gbWV0aG9kLnRvVXBwZXJDYXNlKCk7XG5cbiAgcmV0dXJuIG1ldGhvZCA9PT0gXCJHRVRcIiB8fCBtZXRob2QgPT09IFwiSEVBRFwiIHx8IG1ldGhvZCA9PT0gXCJPUFRJT05TXCI7XG59OyIsInZhciBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07XG5cbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VSZWR1Y2VyLCB1c2VDYWxsYmFjayB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgZmV0Y2hEZWR1cGUsIGdldFJlcXVlc3RLZXkgfSBmcm9tIFwiZmV0Y2gtZGVkdXBlXCI7XG5pbXBvcnQgeyB1c2VGZXRjaENvbnRleHQgfSBmcm9tIFwiLi9GZXRjaFByb3ZpZGVyXCI7XG5pbXBvcnQgeyBzdHJpbmdpZnlJZkpTT04sIGlzUmVhZFJlcXVlc3QgfSBmcm9tIFwiLi91dGlsc1wiO1xuXG52YXIgQ0FDSEVfUE9MSUNJRVMgPSB7XG4gIE5FVFdPUktfT05MWTogXCJuZXR3b3JrLW9ubHlcIixcbiAgQ0FDSEVfQU5EX05FVFdPUks6IFwiY2FjaGUtYW5kLW5ldHdvcmtcIixcbiAgRVhBQ1RfQ0FDSEVfQU5EX05FVFdPUks6IFwiZXhhY3QtY2FjaGUtYW5kLW5ldHdvcmtcIixcbiAgQ0FDSEVfRklSU1Q6IFwiY2FjaGUtZmlyc3RcIlxufTtcblxudmFyIGdldERlZmF1bHRDYWNoZVN0cmF0ZWd5ID0gZnVuY3Rpb24gZ2V0RGVmYXVsdENhY2hlU3RyYXRlZ3kobWV0aG9kKSB7XG4gIG1ldGhvZCA9IG1ldGhvZC50b1VwcGVyQ2FzZSgpO1xuXG4gIGlmIChtZXRob2QgPT09IFwiR0VUXCIgfHwgbWV0aG9kID09PSBcIkhFQURcIiB8fCBtZXRob2QgPT09IFwiT1BUSU9OU1wiKSB7XG4gICAgcmV0dXJuIENBQ0hFX1BPTElDSUVTLkNBQ0hFX0ZJUlNUO1xuICB9XG5cbiAgcmV0dXJuIENBQ0hFX1BPTElDSUVTLk5FVFdPUktfT05MWTtcbn07XG5cbnZhciBkZWZhdWx0T25FcnJvciA9IGZ1bmN0aW9uIGRlZmF1bHRPbkVycm9yKGVycm9yKSB7XG4gIHJldHVybiBjb25zb2xlLmVycm9yKGVycm9yKTtcbn07XG52YXIgZGVmYXVsdE9uU3VjY2VzcyA9IGZ1bmN0aW9uIGRlZmF1bHRPblN1Y2Nlc3MoKSB7XG4gIHJldHVybiBudWxsO1xufTtcblxuZnVuY3Rpb24gcmVkdWNlcihzdGF0ZSwgYWN0aW9uKSB7XG4gIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcbiAgICBjYXNlIFwiaW4tZmxpZ2h0XCI6XG4gICAgICB7XG4gICAgICAgIC8vIEF2b2lkIHVwZGF0aW5nIHN0YXRlIHVubmVjZXNzYXJpbHlcbiAgICAgICAgLy8gQnkgcmV0dXJuaW5nIHVuY2hhbmdlZCBzdGF0ZSBSZWFjdCB3b24ndCByZS1yZW5kZXJcbiAgICAgICAgaWYgKHN0YXRlLmZldGNoaW5nID09PSB0cnVlKSB7XG4gICAgICAgICAgcmV0dXJuIHN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIF9leHRlbmRzKHt9LCBzdGF0ZSwge1xuICAgICAgICAgIGZldGNoaW5nOiB0cnVlXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgY2FzZSBcInJlc3BvbnNlXCI6XG4gICAgICB7XG4gICAgICAgIHJldHVybiBfZXh0ZW5kcyh7fSwgc3RhdGUsIHtcbiAgICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgICAgICBmZXRjaGluZzogYWN0aW9uLnBheWxvYWQuZmV0Y2hpbmcsXG4gICAgICAgICAgcmVzcG9uc2U6IGFjdGlvbi5wYXlsb2FkLnJlc3BvbnNlXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgY2FzZSBcImVycm9yXCI6XG4gICAgICByZXR1cm4gX2V4dGVuZHMoe30sIHN0YXRlLCB7XG4gICAgICAgIGZldGNoaW5nOiBmYWxzZSxcbiAgICAgICAgZXJyb3I6IGFjdGlvbi5wYXlsb2FkLmVycm9yXG4gICAgICB9KTtcblxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gc3RhdGU7XG4gIH1cbn1cblxudmFyIGRlZmF1bHRSZWZyZXNoRG9GZXRjaCA9IGZ1bmN0aW9uIGRlZmF1bHRSZWZyZXNoRG9GZXRjaChyZXF1ZXN0S2V5KSB7XG4gIHJldHVybiByZXF1ZXN0S2V5O1xufTtcblxuZnVuY3Rpb24gdXNlRmV0Y2goX3JlZikge1xuICB2YXIgdXJsID0gX3JlZi51cmwsXG4gICAgICBfcmVmJG1ldGhvZCA9IF9yZWYubWV0aG9kLFxuICAgICAgbWV0aG9kID0gX3JlZiRtZXRob2QgPT09IHVuZGVmaW5lZCA/IFwiR0VUXCIgOiBfcmVmJG1ldGhvZCxcbiAgICAgIF9yZWYkbGF6eSA9IF9yZWYubGF6eSxcbiAgICAgIGxhenkgPSBfcmVmJGxhenkgPT09IHVuZGVmaW5lZCA/IG51bGwgOiBfcmVmJGxhenksXG4gICAgICBfcmVmJHJlcXVlc3RLZXkgPSBfcmVmLnJlcXVlc3RLZXksXG4gICAgICByZXF1ZXN0S2V5ID0gX3JlZiRyZXF1ZXN0S2V5ID09PSB1bmRlZmluZWQgPyBudWxsIDogX3JlZiRyZXF1ZXN0S2V5LFxuICAgICAgX3JlZiRpbml0ID0gX3JlZi5pbml0LFxuICAgICAgaW5pdCA9IF9yZWYkaW5pdCA9PT0gdW5kZWZpbmVkID8ge30gOiBfcmVmJGluaXQsXG4gICAgICBfcmVmJGRlZHVwZU9wdGlvbnMgPSBfcmVmLmRlZHVwZU9wdGlvbnMsXG4gICAgICBkZWR1cGVPcHRpb25zID0gX3JlZiRkZWR1cGVPcHRpb25zID09PSB1bmRlZmluZWQgPyB7fSA6IF9yZWYkZGVkdXBlT3B0aW9ucyxcbiAgICAgIF9yZWYkY2FjaGVQb2xpY3kgPSBfcmVmLmNhY2hlUG9saWN5LFxuICAgICAgY2FjaGVQb2xpY3kgPSBfcmVmJGNhY2hlUG9saWN5ID09PSB1bmRlZmluZWQgPyBudWxsIDogX3JlZiRjYWNoZVBvbGljeSxcbiAgICAgIF9yZWYkY2FjaGVSZXNwb25zZSA9IF9yZWYuY2FjaGVSZXNwb25zZSxcbiAgICAgIGNhY2hlUmVzcG9uc2UgPSBfcmVmJGNhY2hlUmVzcG9uc2UgPT09IHVuZGVmaW5lZCA/IG51bGwgOiBfcmVmJGNhY2hlUmVzcG9uc2UsXG4gICAgICBfcmVmJG9uRXJyb3IgPSBfcmVmLm9uRXJyb3IsXG4gICAgICBvbkVycm9yID0gX3JlZiRvbkVycm9yID09PSB1bmRlZmluZWQgPyBkZWZhdWx0T25FcnJvciA6IF9yZWYkb25FcnJvcixcbiAgICAgIF9yZWYkb25TdWNjZXNzID0gX3JlZi5vblN1Y2Nlc3MsXG4gICAgICBvblN1Y2Nlc3MgPSBfcmVmJG9uU3VjY2VzcyA9PT0gdW5kZWZpbmVkID8gZGVmYXVsdE9uU3VjY2VzcyA6IF9yZWYkb25TdWNjZXNzLFxuICAgICAgX3JlZiRyZWZyZXNoRG9GZXRjaCA9IF9yZWYucmVmcmVzaERvRmV0Y2gsXG4gICAgICByZWZyZXNoRG9GZXRjaCA9IF9yZWYkcmVmcmVzaERvRmV0Y2ggPT09IHVuZGVmaW5lZCA/IGRlZmF1bHRSZWZyZXNoRG9GZXRjaCA6IF9yZWYkcmVmcmVzaERvRmV0Y2g7XG5cbiAgdmFyIHJlc3BvbnNlQ2FjaGUgPSB1c2VGZXRjaENvbnRleHQoKTtcblxuICB2YXIgYWJvcnRDb250cm9sbGVyUmVmID0gdXNlUmVmKCk7XG5cbiAgLy8gRGVmYXVsdCBHRVR8SEVBRHxPUFRJT05TIHJlcXVlc3RzIHRvIG5vbi1sYXp5IChhdXRvbWF0aWNhbGx5IHJlcXVlc3Qgb25Nb3VudClcbiAgLy8gYWxsIGVsc2UgbGF6eSAob25seSByZXF1ZXN0ZWQgd2hlbiBkb0ZldGNoIGlzIGNhbGxlZClcbiAgdmFyIGlzTGF6eSA9IGxhenkgPT0gbnVsbCA/ICFpc1JlYWRSZXF1ZXN0KG1ldGhvZCkgOiBsYXp5O1xuXG4gIHZhciBjYWNoZVN0cmF0ZWd5ID0gY2FjaGVQb2xpY3kgPT09IG51bGwgPyBnZXREZWZhdWx0Q2FjaGVTdHJhdGVneShtZXRob2QpIDogY2FjaGVQb2xpY3k7XG5cbiAgdmFyIF91c2VSZWR1Y2VyID0gdXNlUmVkdWNlcihyZWR1Y2VyLCB7XG4gICAgcmVzcG9uc2U6IG51bGwsXG4gICAgZmV0Y2hpbmc6ICFpc0xhenksXG4gICAgZXJyb3I6IG51bGxcbiAgfSksXG4gICAgICBzdGF0ZSA9IF91c2VSZWR1Y2VyWzBdLFxuICAgICAgZGlzcGF0Y2ggPSBfdXNlUmVkdWNlclsxXTtcblxuICAvLyBCdWlsZHMgYSBrZXkgYmFzZWQgb24gVVJMLCBtZXRob2QgYW5kIGhlYWRlcnMuXG4gIC8vIHJlcXVlc3RLZXkgaXMgdXNlZCB0byBkZXRlcm1pbmUgaWYgdGhlIHJlcXVlc3QgcGFyYW1ldGVycyBoYXZlIGNoYW5nZWRcbiAgLy8gYW5kIGFzIGtleSBpbiB0aGUgcmVzcG9uc2UgY2FjaGUuXG5cblxuICB2YXIgZmluYWxSZXF1ZXN0S2V5ID0gcmVxdWVzdEtleSA/IHJlcXVlc3RLZXkgOiBnZXRSZXF1ZXN0S2V5KF9leHRlbmRzKHsgdXJsOiB1cmwsIG1ldGhvZDogbWV0aG9kLnRvVXBwZXJDYXNlKCkgfSwgaW5pdCkpO1xuXG4gIGZ1bmN0aW9uIHNldEZldGNoaW5nKCkge1xuICAgIGRpc3BhdGNoKHsgdHlwZTogXCJpbi1mbGlnaHRcIiB9KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHNldFJlc3BvbnNlKHJlc3BvbnNlKSB7XG4gICAgdmFyIGZldGNoaW5nID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiBmYWxzZTtcblxuICAgIGRpc3BhdGNoKHsgdHlwZTogXCJyZXNwb25zZVwiLCBwYXlsb2FkOiB7IHJlc3BvbnNlOiByZXNwb25zZSwgZmV0Y2hpbmc6IGZldGNoaW5nIH0gfSk7XG4gIH1cblxuICBmdW5jdGlvbiBzZXRFcnJvcihlcnJvcikge1xuICAgIGRpc3BhdGNoKHsgdHlwZTogXCJlcnJvclwiLCBwYXlsb2FkOiB7IGVycm9yOiBlcnJvciB9IH0pO1xuICB9XG5cbiAgZnVuY3Rpb24gY2FuY2VsUnVubmluZ1JlcXVlc3QoKSB7XG4gICAgaWYgKGFib3J0Q29udHJvbGxlclJlZi5jdXJyZW50KSB7XG4gICAgICAvLyBDYW5jZWwgY3VycmVudCByZXF1ZXN0XG4gICAgICBhYm9ydENvbnRyb2xsZXJSZWYuY3VycmVudC5hYm9ydCgpO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIHNob3VsZENhY2hlUmVzcG9uc2UoKSB7XG4gICAgaWYgKGNhY2hlUmVzcG9uc2UgIT09IG51bGwpIHtcbiAgICAgIHJldHVybiBjYWNoZVJlc3BvbnNlO1xuICAgIH1cblxuICAgIHJldHVybiBpc1JlYWRSZXF1ZXN0KG1ldGhvZCk7XG4gIH1cblxuICB2YXIgZG9GZXRjaCA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgZG9GZXRjaEluaXQgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9O1xuICAgIHZhciBkb0ZldGNoRGVkdXBlT3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDoge307XG5cbiAgICBjYW5jZWxSdW5uaW5nUmVxdWVzdCgpO1xuXG4gICAgYWJvcnRDb250cm9sbGVyUmVmLmN1cnJlbnQgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG5cbiAgICBzZXRGZXRjaGluZyh0cnVlKTtcblxuICAgIHZhciBmaW5hbEluaXQgPSBfZXh0ZW5kcyh7fSwgaW5pdCwgZG9GZXRjaEluaXQpO1xuXG4gICAgdmFyIGZpbmFsRGVkdXBlT3B0aW9ucyA9IF9leHRlbmRzKHt9LCBkZWR1cGVPcHRpb25zLCBkb0ZldGNoRGVkdXBlT3B0aW9ucyk7XG5cbiAgICByZXR1cm4gZmV0Y2hEZWR1cGUoZmluYWxJbml0LnVybCB8fCB1cmwsIF9leHRlbmRzKHt9LCBmaW5hbEluaXQsIHtcbiAgICAgIG1ldGhvZDogbWV0aG9kLFxuICAgICAgc2lnbmFsOiBhYm9ydENvbnRyb2xsZXJSZWYuY3VycmVudC5zaWduYWwsXG4gICAgICBib2R5OiBmaW5hbEluaXQuYm9keSA/IHN0cmluZ2lmeUlmSlNPTihmaW5hbEluaXQpIDogdW5kZWZpbmVkXG4gICAgfSksIGZpbmFsRGVkdXBlT3B0aW9ucykudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgICAgc2V0RXJyb3IocmVzcG9uc2UpO1xuICAgICAgICBvbkVycm9yKHJlc3BvbnNlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChzaG91bGRDYWNoZVJlc3BvbnNlKCkpIHtcbiAgICAgICAgICByZXNwb25zZUNhY2hlLnNldChmaW5hbFJlcXVlc3RLZXksIHJlc3BvbnNlKTtcbiAgICAgICAgfVxuICAgICAgICBzZXRSZXNwb25zZShyZXNwb25zZSk7XG4gICAgICAgIG9uU3VjY2VzcyhyZXNwb25zZSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICB9KS5jYXRjaChmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgIGlmICghYWJvcnRDb250cm9sbGVyUmVmLmN1cnJlbnQuc2lnbmFsLmFib3J0ZWQpIHtcbiAgICAgICAgc2V0RXJyb3IoZXJyb3IpO1xuICAgICAgfVxuXG4gICAgICBvbkVycm9yKGVycm9yKTtcblxuICAgICAgcmV0dXJuIGVycm9yO1xuICAgIH0pLmZpbmFsbHkoZnVuY3Rpb24gKCkge1xuICAgICAgLy8gUmVtb3ZlIHRoZSBhYm9ydCBjb250cm9sbGVyIG5vdyB0aGF0IHRoZSByZXF1ZXN0IGlzIGRvbmVcbiAgICAgIGFib3J0Q29udHJvbGxlclJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICB9KTtcbiAgfSwgW3JlZnJlc2hEb0ZldGNoKGZpbmFsUmVxdWVzdEtleSldKTtcblxuICAvLyBTdGFydCByZXF1ZXN0aW5nIG9uTW91bnQgaWYgbm90IGxhenlcbiAgLy8gU3RhcnQgcmVxdWVzdGluZyBpZiBpc0xhenkgZ29lcyBmcm9tIHRydWUgdG8gZmFsc2VcbiAgLy8gU3RhcnQgcmVxdWVzdGluZyBldmVyeSB0aW1lIHRoZSByZXF1ZXN0IGtleSBjaGFuZ2VzIChpLmUuIFVSTCwgbWV0aG9kLCBpbml0LmJvZHkgb3IgaW5pdC5yZXNwb25zZVR5cGUpIGlmIG5vdCBsYXp5XG4gIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgLy8gRG8gbm90IHN0YXJ0IHJlcXVlc3QgYXV0b21hdGljYWxseSB3aGVuIGluIGxhenkgbW9kZVxuICAgIGlmIChpc0xhenkgPT09IHRydWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB2YXIgY2FjaGVkUmVzcG9uc2UgPSByZXNwb25zZUNhY2hlLmdldChmaW5hbFJlcXVlc3RLZXkpO1xuXG4gICAgLy8gUmV0dXJuIGNhY2hlZCByZXNwb25zZSBpZiBpdCBleGlzdHNcbiAgICBpZiAoY2FjaGVTdHJhdGVneSA9PT0gQ0FDSEVfUE9MSUNJRVMuQ0FDSEVfRklSU1QgJiYgY2FjaGVkUmVzcG9uc2UpIHtcbiAgICAgIG9uU3VjY2VzcyhjYWNoZWRSZXNwb25zZSk7XG4gICAgICByZXR1cm4gc2V0UmVzcG9uc2UoY2FjaGVkUmVzcG9uc2UpO1xuICAgIH1cblxuICAgIC8vIFJldHVybiBhbnkgY2FjaGVkIGRhdGEgaW1tZWRpYXRlbHksIGJ1dCBpbml0aWF0ZSByZXF1ZXN0IGFueXdheSBpbiBvcmRlciB0byByZWZyZXNoIGFueSBzdGFsZSBkYXRhXG4gICAgaWYgKGNhY2hlU3RyYXRlZ3kgPT09IENBQ0hFX1BPTElDSUVTLkNBQ0hFX0FORF9ORVRXT1JLICYmIGNhY2hlZFJlc3BvbnNlKSB7XG4gICAgICBvblN1Y2Nlc3MoY2FjaGVkUmVzcG9uc2UpO1xuICAgICAgc2V0UmVzcG9uc2UoY2FjaGVkUmVzcG9uc2UsIHRydWUpO1xuICAgIH1cblxuICAgIC8vIEFsbW9zdCBsaWtlICdjYWNoZS1hbmQtbmV0d29yaycsIGJ1dCB0aGlzIGNsZWFycyB0aGUgcHJldmlvdXMgcmVxdWVzdCBrZXkncyByZXNwb25zZVxuICAgIC8vIGFuZCBvbmx5IHNob3dzIGEgY2FjaGVkIHJlc3BvbnNlIGlmIHRoZSByZXF1ZXN0IGtleXMgYXJlIGlkZW50aWNhbFxuICAgIC8vIEluIG90aGVyIHdvcmRzIGl0IHdvbid0IHNob3cgdGhlIHByZXZpb3VzIHJlcXVlc3Qga2V5J3MgZGF0YSB3aGlsZSBmZXRjaGluZ1xuICAgIGlmIChjYWNoZVN0cmF0ZWd5ID09PSBDQUNIRV9QT0xJQ0lFUy5FWEFDVF9DQUNIRV9BTkRfTkVUV09SSykge1xuICAgICAgaWYgKGNhY2hlZFJlc3BvbnNlKSB7XG4gICAgICAgIG9uU3VjY2VzcyhjYWNoZWRSZXNwb25zZSk7XG4gICAgICAgIHNldFJlc3BvbnNlKGNhY2hlZFJlc3BvbnNlLCB0cnVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldFJlc3BvbnNlKG51bGwpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFsd2F5cyBmZXRjaCBuZXcgZGF0YSBpZiByZXF1ZXN0IHBhcmFtcyBjaGFuZ2VcbiAgICBpZiAoY2FjaGVTdHJhdGVneSA9PT0gQ0FDSEVfUE9MSUNJRVMuTkVUV09SS19PTkxZKSB7XG4gICAgICAvLyBSZXNldCByZXNwb25zZSBzdGF0ZSBzaW5jZSB3ZSBhcmUgb25seSBpbnRlcmVzdGVkIGluIGFueSBjYWNoZWQgcmVzcG9uc2UgZnJvbSBwcmV2aW91cyByZXF1ZXN0XG4gICAgICBzZXRSZXNwb25zZShudWxsKTtcbiAgICB9XG5cbiAgICBkb0ZldGNoKGluaXQpO1xuICB9LCBbZmluYWxSZXF1ZXN0S2V5LCBpc0xhenldKTtcblxuICAvLyBDYW5jZWwgYW55IHJ1bm5pbmcgcmVxdWVzdCB3aGVuIHVubW91bnRpbmcgdG8gYXZvaWQgdXBkYXRpbmcgc3RhdGUgYWZ0ZXIgY29tcG9uZW50IGhhcyB1bm1vdW50ZWRcbiAgLy8gVGhpcyBjYW4gaGFwcGVuIGlmIGEgcmVxdWVzdCdzIHByb21pc2UgcmVzb2x2ZXMgYWZ0ZXIgY29tcG9uZW50IHVubW91bnRzXG4gIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNhbmNlbFJ1bm5pbmdSZXF1ZXN0KCk7XG4gICAgfTtcbiAgfSwgW10pO1xuXG4gIHJldHVybiB7XG4gICAgcmVzcG9uc2U6IHN0YXRlLnJlc3BvbnNlLFxuICAgIGRhdGE6IHN0YXRlLnJlc3BvbnNlID8gc3RhdGUucmVzcG9uc2UuZGF0YSA6IG51bGwsXG4gICAgZmV0Y2hpbmc6IHN0YXRlLmZldGNoaW5nLFxuICAgIGVycm9yOiBzdGF0ZS5lcnJvcixcbiAgICByZXF1ZXN0S2V5OiBmaW5hbFJlcXVlc3RLZXksXG4gICAgZG9GZXRjaDogZG9GZXRjaFxuICB9O1xufVxuXG5leHBvcnQgeyB1c2VGZXRjaCB9OyIsInZhciBhcnJheUxpa2VUb0FycmF5ID0gcmVxdWlyZShcIi4vYXJyYXlMaWtlVG9BcnJheS5qc1wiKTtcblxuZnVuY3Rpb24gX2FycmF5V2l0aG91dEhvbGVzKGFycikge1xuICBpZiAoQXJyYXkuaXNBcnJheShhcnIpKSByZXR1cm4gYXJyYXlMaWtlVG9BcnJheShhcnIpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9hcnJheVdpdGhvdXRIb2xlcztcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiLCJmdW5jdGlvbiBfaXRlcmFibGVUb0FycmF5KGl0ZXIpIHtcbiAgaWYgKHR5cGVvZiBTeW1ib2wgIT09IFwidW5kZWZpbmVkXCIgJiYgaXRlcltTeW1ib2wuaXRlcmF0b3JdICE9IG51bGwgfHwgaXRlcltcIkBAaXRlcmF0b3JcIl0gIT0gbnVsbCkgcmV0dXJuIEFycmF5LmZyb20oaXRlcik7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX2l0ZXJhYmxlVG9BcnJheTtcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiLCJmdW5jdGlvbiBfbm9uSXRlcmFibGVTcHJlYWQoKSB7XG4gIHRocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9ub25JdGVyYWJsZVNwcmVhZDtcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiLCIvKiogQGxpY2Vuc2UgUmVhY3QgdjE2LjkuMFxuICogcmVhY3QucHJvZHVjdGlvbi5taW4uanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIEZhY2Vib29rLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7dmFyIGg9cmVxdWlyZShcIm9iamVjdC1hc3NpZ25cIiksbj1cImZ1bmN0aW9uXCI9PT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuZm9yLHA9bj9TeW1ib2wuZm9yKFwicmVhY3QuZWxlbWVudFwiKTo2MDEwMyxxPW4/U3ltYm9sLmZvcihcInJlYWN0LnBvcnRhbFwiKTo2MDEwNixyPW4/U3ltYm9sLmZvcihcInJlYWN0LmZyYWdtZW50XCIpOjYwMTA3LHQ9bj9TeW1ib2wuZm9yKFwicmVhY3Quc3RyaWN0X21vZGVcIik6NjAxMDgsdT1uP1N5bWJvbC5mb3IoXCJyZWFjdC5wcm9maWxlclwiKTo2MDExNCx2PW4/U3ltYm9sLmZvcihcInJlYWN0LnByb3ZpZGVyXCIpOjYwMTA5LHc9bj9TeW1ib2wuZm9yKFwicmVhY3QuY29udGV4dFwiKTo2MDExMCx4PW4/U3ltYm9sLmZvcihcInJlYWN0LmZvcndhcmRfcmVmXCIpOjYwMTEyLHk9bj9TeW1ib2wuZm9yKFwicmVhY3Quc3VzcGVuc2VcIik6NjAxMTMsYWE9bj9TeW1ib2wuZm9yKFwicmVhY3Quc3VzcGVuc2VfbGlzdFwiKTo2MDEyMCxiYT1uP1N5bWJvbC5mb3IoXCJyZWFjdC5tZW1vXCIpOlxuNjAxMTUsY2E9bj9TeW1ib2wuZm9yKFwicmVhY3QubGF6eVwiKTo2MDExNjtuJiZTeW1ib2wuZm9yKFwicmVhY3QuZnVuZGFtZW50YWxcIik7biYmU3ltYm9sLmZvcihcInJlYWN0LnJlc3BvbmRlclwiKTt2YXIgej1cImZ1bmN0aW9uXCI9PT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3I7XG5mdW5jdGlvbiBBKGEpe2Zvcih2YXIgYj1hLm1lc3NhZ2UsZD1cImh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9lcnJvci1kZWNvZGVyLmh0bWw/aW52YXJpYW50PVwiK2IsYz0xO2M8YXJndW1lbnRzLmxlbmd0aDtjKyspZCs9XCImYXJnc1tdPVwiK2VuY29kZVVSSUNvbXBvbmVudChhcmd1bWVudHNbY10pO2EubWVzc2FnZT1cIk1pbmlmaWVkIFJlYWN0IGVycm9yICNcIitiK1wiOyB2aXNpdCBcIitkK1wiIGZvciB0aGUgZnVsbCBtZXNzYWdlIG9yIHVzZSB0aGUgbm9uLW1pbmlmaWVkIGRldiBlbnZpcm9ubWVudCBmb3IgZnVsbCBlcnJvcnMgYW5kIGFkZGl0aW9uYWwgaGVscGZ1bCB3YXJuaW5ncy4gXCI7cmV0dXJuIGF9dmFyIEI9e2lzTW91bnRlZDpmdW5jdGlvbigpe3JldHVybiExfSxlbnF1ZXVlRm9yY2VVcGRhdGU6ZnVuY3Rpb24oKXt9LGVucXVldWVSZXBsYWNlU3RhdGU6ZnVuY3Rpb24oKXt9LGVucXVldWVTZXRTdGF0ZTpmdW5jdGlvbigpe319LEM9e307XG5mdW5jdGlvbiBEKGEsYixkKXt0aGlzLnByb3BzPWE7dGhpcy5jb250ZXh0PWI7dGhpcy5yZWZzPUM7dGhpcy51cGRhdGVyPWR8fEJ9RC5wcm90b3R5cGUuaXNSZWFjdENvbXBvbmVudD17fTtELnByb3RvdHlwZS5zZXRTdGF0ZT1mdW5jdGlvbihhLGIpe2lmKFwib2JqZWN0XCIhPT10eXBlb2YgYSYmXCJmdW5jdGlvblwiIT09dHlwZW9mIGEmJm51bGwhPWEpdGhyb3cgQShFcnJvcig4NSkpO3RoaXMudXBkYXRlci5lbnF1ZXVlU2V0U3RhdGUodGhpcyxhLGIsXCJzZXRTdGF0ZVwiKX07RC5wcm90b3R5cGUuZm9yY2VVcGRhdGU9ZnVuY3Rpb24oYSl7dGhpcy51cGRhdGVyLmVucXVldWVGb3JjZVVwZGF0ZSh0aGlzLGEsXCJmb3JjZVVwZGF0ZVwiKX07ZnVuY3Rpb24gRSgpe31FLnByb3RvdHlwZT1ELnByb3RvdHlwZTtmdW5jdGlvbiBGKGEsYixkKXt0aGlzLnByb3BzPWE7dGhpcy5jb250ZXh0PWI7dGhpcy5yZWZzPUM7dGhpcy51cGRhdGVyPWR8fEJ9dmFyIEc9Ri5wcm90b3R5cGU9bmV3IEU7XG5HLmNvbnN0cnVjdG9yPUY7aChHLEQucHJvdG90eXBlKTtHLmlzUHVyZVJlYWN0Q29tcG9uZW50PSEwO3ZhciBIPXtjdXJyZW50Om51bGx9LEk9e3N1c3BlbnNlOm51bGx9LEo9e2N1cnJlbnQ6bnVsbH0sSz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LEw9e2tleTohMCxyZWY6ITAsX19zZWxmOiEwLF9fc291cmNlOiEwfTtcbmZ1bmN0aW9uIE0oYSxiLGQpe3ZhciBjPXZvaWQgMCxlPXt9LGc9bnVsbCxrPW51bGw7aWYobnVsbCE9Yilmb3IoYyBpbiB2b2lkIDAhPT1iLnJlZiYmKGs9Yi5yZWYpLHZvaWQgMCE9PWIua2V5JiYoZz1cIlwiK2Iua2V5KSxiKUsuY2FsbChiLGMpJiYhTC5oYXNPd25Qcm9wZXJ0eShjKSYmKGVbY109YltjXSk7dmFyIGY9YXJndW1lbnRzLmxlbmd0aC0yO2lmKDE9PT1mKWUuY2hpbGRyZW49ZDtlbHNlIGlmKDE8Zil7Zm9yKHZhciBsPUFycmF5KGYpLG09MDttPGY7bSsrKWxbbV09YXJndW1lbnRzW20rMl07ZS5jaGlsZHJlbj1sfWlmKGEmJmEuZGVmYXVsdFByb3BzKWZvcihjIGluIGY9YS5kZWZhdWx0UHJvcHMsZil2b2lkIDA9PT1lW2NdJiYoZVtjXT1mW2NdKTtyZXR1cm57JCR0eXBlb2Y6cCx0eXBlOmEsa2V5OmcscmVmOmsscHJvcHM6ZSxfb3duZXI6Si5jdXJyZW50fX1cbmZ1bmN0aW9uIGRhKGEsYil7cmV0dXJueyQkdHlwZW9mOnAsdHlwZTphLnR5cGUsa2V5OmIscmVmOmEucmVmLHByb3BzOmEucHJvcHMsX293bmVyOmEuX293bmVyfX1mdW5jdGlvbiBOKGEpe3JldHVyblwib2JqZWN0XCI9PT10eXBlb2YgYSYmbnVsbCE9PWEmJmEuJCR0eXBlb2Y9PT1wfWZ1bmN0aW9uIGVzY2FwZShhKXt2YXIgYj17XCI9XCI6XCI9MFwiLFwiOlwiOlwiPTJcIn07cmV0dXJuXCIkXCIrKFwiXCIrYSkucmVwbGFjZSgvWz06XS9nLGZ1bmN0aW9uKGEpe3JldHVybiBiW2FdfSl9dmFyIE89L1xcLysvZyxQPVtdO2Z1bmN0aW9uIFEoYSxiLGQsYyl7aWYoUC5sZW5ndGgpe3ZhciBlPVAucG9wKCk7ZS5yZXN1bHQ9YTtlLmtleVByZWZpeD1iO2UuZnVuYz1kO2UuY29udGV4dD1jO2UuY291bnQ9MDtyZXR1cm4gZX1yZXR1cm57cmVzdWx0OmEsa2V5UHJlZml4OmIsZnVuYzpkLGNvbnRleHQ6Yyxjb3VudDowfX1cbmZ1bmN0aW9uIFIoYSl7YS5yZXN1bHQ9bnVsbDthLmtleVByZWZpeD1udWxsO2EuZnVuYz1udWxsO2EuY29udGV4dD1udWxsO2EuY291bnQ9MDsxMD5QLmxlbmd0aCYmUC5wdXNoKGEpfVxuZnVuY3Rpb24gUyhhLGIsZCxjKXt2YXIgZT10eXBlb2YgYTtpZihcInVuZGVmaW5lZFwiPT09ZXx8XCJib29sZWFuXCI9PT1lKWE9bnVsbDt2YXIgZz0hMTtpZihudWxsPT09YSlnPSEwO2Vsc2Ugc3dpdGNoKGUpe2Nhc2UgXCJzdHJpbmdcIjpjYXNlIFwibnVtYmVyXCI6Zz0hMDticmVhaztjYXNlIFwib2JqZWN0XCI6c3dpdGNoKGEuJCR0eXBlb2Ype2Nhc2UgcDpjYXNlIHE6Zz0hMH19aWYoZylyZXR1cm4gZChjLGEsXCJcIj09PWI/XCIuXCIrVChhLDApOmIpLDE7Zz0wO2I9XCJcIj09PWI/XCIuXCI6YitcIjpcIjtpZihBcnJheS5pc0FycmF5KGEpKWZvcih2YXIgaz0wO2s8YS5sZW5ndGg7aysrKXtlPWFba107dmFyIGY9YitUKGUsayk7Zys9UyhlLGYsZCxjKX1lbHNlIGlmKG51bGw9PT1hfHxcIm9iamVjdFwiIT09dHlwZW9mIGE/Zj1udWxsOihmPXomJmFbel18fGFbXCJAQGl0ZXJhdG9yXCJdLGY9XCJmdW5jdGlvblwiPT09dHlwZW9mIGY/ZjpudWxsKSxcImZ1bmN0aW9uXCI9PT10eXBlb2YgZilmb3IoYT1mLmNhbGwoYSksaz1cbjA7IShlPWEubmV4dCgpKS5kb25lOyllPWUudmFsdWUsZj1iK1QoZSxrKyspLGcrPVMoZSxmLGQsYyk7ZWxzZSBpZihcIm9iamVjdFwiPT09ZSl0aHJvdyBkPVwiXCIrYSxBKEVycm9yKDMxKSxcIltvYmplY3QgT2JqZWN0XVwiPT09ZD9cIm9iamVjdCB3aXRoIGtleXMge1wiK09iamVjdC5rZXlzKGEpLmpvaW4oXCIsIFwiKStcIn1cIjpkLFwiXCIpO3JldHVybiBnfWZ1bmN0aW9uIFUoYSxiLGQpe3JldHVybiBudWxsPT1hPzA6UyhhLFwiXCIsYixkKX1mdW5jdGlvbiBUKGEsYil7cmV0dXJuXCJvYmplY3RcIj09PXR5cGVvZiBhJiZudWxsIT09YSYmbnVsbCE9YS5rZXk/ZXNjYXBlKGEua2V5KTpiLnRvU3RyaW5nKDM2KX1mdW5jdGlvbiBlYShhLGIpe2EuZnVuYy5jYWxsKGEuY29udGV4dCxiLGEuY291bnQrKyl9XG5mdW5jdGlvbiBmYShhLGIsZCl7dmFyIGM9YS5yZXN1bHQsZT1hLmtleVByZWZpeDthPWEuZnVuYy5jYWxsKGEuY29udGV4dCxiLGEuY291bnQrKyk7QXJyYXkuaXNBcnJheShhKT9WKGEsYyxkLGZ1bmN0aW9uKGEpe3JldHVybiBhfSk6bnVsbCE9YSYmKE4oYSkmJihhPWRhKGEsZSsoIWEua2V5fHxiJiZiLmtleT09PWEua2V5P1wiXCI6KFwiXCIrYS5rZXkpLnJlcGxhY2UoTyxcIiQmL1wiKStcIi9cIikrZCkpLGMucHVzaChhKSl9ZnVuY3Rpb24gVihhLGIsZCxjLGUpe3ZhciBnPVwiXCI7bnVsbCE9ZCYmKGc9KFwiXCIrZCkucmVwbGFjZShPLFwiJCYvXCIpK1wiL1wiKTtiPVEoYixnLGMsZSk7VShhLGZhLGIpO1IoYil9ZnVuY3Rpb24gVygpe3ZhciBhPUguY3VycmVudDtpZihudWxsPT09YSl0aHJvdyBBKEVycm9yKDMyMSkpO3JldHVybiBhfVxudmFyIFg9e0NoaWxkcmVuOnttYXA6ZnVuY3Rpb24oYSxiLGQpe2lmKG51bGw9PWEpcmV0dXJuIGE7dmFyIGM9W107VihhLGMsbnVsbCxiLGQpO3JldHVybiBjfSxmb3JFYWNoOmZ1bmN0aW9uKGEsYixkKXtpZihudWxsPT1hKXJldHVybiBhO2I9UShudWxsLG51bGwsYixkKTtVKGEsZWEsYik7UihiKX0sY291bnQ6ZnVuY3Rpb24oYSl7cmV0dXJuIFUoYSxmdW5jdGlvbigpe3JldHVybiBudWxsfSxudWxsKX0sdG9BcnJheTpmdW5jdGlvbihhKXt2YXIgYj1bXTtWKGEsYixudWxsLGZ1bmN0aW9uKGEpe3JldHVybiBhfSk7cmV0dXJuIGJ9LG9ubHk6ZnVuY3Rpb24oYSl7aWYoIU4oYSkpdGhyb3cgQShFcnJvcigxNDMpKTtyZXR1cm4gYX19LGNyZWF0ZVJlZjpmdW5jdGlvbigpe3JldHVybntjdXJyZW50Om51bGx9fSxDb21wb25lbnQ6RCxQdXJlQ29tcG9uZW50OkYsY3JlYXRlQ29udGV4dDpmdW5jdGlvbihhLGIpe3ZvaWQgMD09PWImJihiPW51bGwpO2E9eyQkdHlwZW9mOncsX2NhbGN1bGF0ZUNoYW5nZWRCaXRzOmIsXG5fY3VycmVudFZhbHVlOmEsX2N1cnJlbnRWYWx1ZTI6YSxfdGhyZWFkQ291bnQ6MCxQcm92aWRlcjpudWxsLENvbnN1bWVyOm51bGx9O2EuUHJvdmlkZXI9eyQkdHlwZW9mOnYsX2NvbnRleHQ6YX07cmV0dXJuIGEuQ29uc3VtZXI9YX0sZm9yd2FyZFJlZjpmdW5jdGlvbihhKXtyZXR1cm57JCR0eXBlb2Y6eCxyZW5kZXI6YX19LGxhenk6ZnVuY3Rpb24oYSl7cmV0dXJueyQkdHlwZW9mOmNhLF9jdG9yOmEsX3N0YXR1czotMSxfcmVzdWx0Om51bGx9fSxtZW1vOmZ1bmN0aW9uKGEsYil7cmV0dXJueyQkdHlwZW9mOmJhLHR5cGU6YSxjb21wYXJlOnZvaWQgMD09PWI/bnVsbDpifX0sdXNlQ2FsbGJhY2s6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gVygpLnVzZUNhbGxiYWNrKGEsYil9LHVzZUNvbnRleHQ6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gVygpLnVzZUNvbnRleHQoYSxiKX0sdXNlRWZmZWN0OmZ1bmN0aW9uKGEsYil7cmV0dXJuIFcoKS51c2VFZmZlY3QoYSxiKX0sdXNlSW1wZXJhdGl2ZUhhbmRsZTpmdW5jdGlvbihhLFxuYixkKXtyZXR1cm4gVygpLnVzZUltcGVyYXRpdmVIYW5kbGUoYSxiLGQpfSx1c2VEZWJ1Z1ZhbHVlOmZ1bmN0aW9uKCl7fSx1c2VMYXlvdXRFZmZlY3Q6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gVygpLnVzZUxheW91dEVmZmVjdChhLGIpfSx1c2VNZW1vOmZ1bmN0aW9uKGEsYil7cmV0dXJuIFcoKS51c2VNZW1vKGEsYil9LHVzZVJlZHVjZXI6ZnVuY3Rpb24oYSxiLGQpe3JldHVybiBXKCkudXNlUmVkdWNlcihhLGIsZCl9LHVzZVJlZjpmdW5jdGlvbihhKXtyZXR1cm4gVygpLnVzZVJlZihhKX0sdXNlU3RhdGU6ZnVuY3Rpb24oYSl7cmV0dXJuIFcoKS51c2VTdGF0ZShhKX0sRnJhZ21lbnQ6cixQcm9maWxlcjp1LFN0cmljdE1vZGU6dCxTdXNwZW5zZTp5LHVuc3RhYmxlX1N1c3BlbnNlTGlzdDphYSxjcmVhdGVFbGVtZW50Ok0sY2xvbmVFbGVtZW50OmZ1bmN0aW9uKGEsYixkKXtpZihudWxsPT09YXx8dm9pZCAwPT09YSl0aHJvdyBBKEVycm9yKDI2NyksYSk7dmFyIGM9dm9pZCAwLGU9XG5oKHt9LGEucHJvcHMpLGc9YS5rZXksaz1hLnJlZixmPWEuX293bmVyO2lmKG51bGwhPWIpe3ZvaWQgMCE9PWIucmVmJiYoaz1iLnJlZixmPUouY3VycmVudCk7dm9pZCAwIT09Yi5rZXkmJihnPVwiXCIrYi5rZXkpO3ZhciBsPXZvaWQgMDthLnR5cGUmJmEudHlwZS5kZWZhdWx0UHJvcHMmJihsPWEudHlwZS5kZWZhdWx0UHJvcHMpO2ZvcihjIGluIGIpSy5jYWxsKGIsYykmJiFMLmhhc093blByb3BlcnR5KGMpJiYoZVtjXT12b2lkIDA9PT1iW2NdJiZ2b2lkIDAhPT1sP2xbY106YltjXSl9Yz1hcmd1bWVudHMubGVuZ3RoLTI7aWYoMT09PWMpZS5jaGlsZHJlbj1kO2Vsc2UgaWYoMTxjKXtsPUFycmF5KGMpO2Zvcih2YXIgbT0wO208YzttKyspbFttXT1hcmd1bWVudHNbbSsyXTtlLmNoaWxkcmVuPWx9cmV0dXJueyQkdHlwZW9mOnAsdHlwZTphLnR5cGUsa2V5OmcscmVmOmsscHJvcHM6ZSxfb3duZXI6Zn19LGNyZWF0ZUZhY3Rvcnk6ZnVuY3Rpb24oYSl7dmFyIGI9TS5iaW5kKG51bGwsYSk7XG5iLnR5cGU9YTtyZXR1cm4gYn0saXNWYWxpZEVsZW1lbnQ6Tix2ZXJzaW9uOlwiMTYuOS4wXCIsdW5zdGFibGVfd2l0aFN1c3BlbnNlQ29uZmlnOmZ1bmN0aW9uKGEsYil7dmFyIGQ9SS5zdXNwZW5zZTtJLnN1c3BlbnNlPXZvaWQgMD09PWI/bnVsbDpiO3RyeXthKCl9ZmluYWxseXtJLnN1c3BlbnNlPWR9fSxfX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRDp7UmVhY3RDdXJyZW50RGlzcGF0Y2hlcjpILFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnOkksUmVhY3RDdXJyZW50T3duZXI6SixJc1NvbWVSZW5kZXJlckFjdGluZzp7Y3VycmVudDohMX0sYXNzaWduOmh9fSxZPXtkZWZhdWx0Olh9LFo9WSYmWHx8WTttb2R1bGUuZXhwb3J0cz1aLmRlZmF1bHR8fFo7XG4iLCIvKiogQGxpY2Vuc2UgUmVhY3QgdjE2LjkuMFxuICogcmVhY3QtZG9tLnByb2R1Y3Rpb24ubWluLmpzXG4gKlxuICogQ29weXJpZ2h0IChjKSBGYWNlYm9vaywgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuLypcbiBNb2Rlcm5penIgMy4wLjBwcmUgKEN1c3RvbSBCdWlsZCkgfCBNSVRcbiovXG4ndXNlIHN0cmljdCc7dmFyIGFhPXJlcXVpcmUoXCJyZWFjdFwiKSxtPXJlcXVpcmUoXCJvYmplY3QtYXNzaWduXCIpLHE9cmVxdWlyZShcInNjaGVkdWxlclwiKTtmdW5jdGlvbiB0KGEpe2Zvcih2YXIgYj1hLm1lc3NhZ2UsYz1cImh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9lcnJvci1kZWNvZGVyLmh0bWw/aW52YXJpYW50PVwiK2IsZD0xO2Q8YXJndW1lbnRzLmxlbmd0aDtkKyspYys9XCImYXJnc1tdPVwiK2VuY29kZVVSSUNvbXBvbmVudChhcmd1bWVudHNbZF0pO2EubWVzc2FnZT1cIk1pbmlmaWVkIFJlYWN0IGVycm9yICNcIitiK1wiOyB2aXNpdCBcIitjK1wiIGZvciB0aGUgZnVsbCBtZXNzYWdlIG9yIHVzZSB0aGUgbm9uLW1pbmlmaWVkIGRldiBlbnZpcm9ubWVudCBmb3IgZnVsbCBlcnJvcnMgYW5kIGFkZGl0aW9uYWwgaGVscGZ1bCB3YXJuaW5ncy4gXCI7cmV0dXJuIGF9aWYoIWFhKXRocm93IHQoRXJyb3IoMjI3KSk7dmFyIGJhPW51bGwsY2E9e307XG5mdW5jdGlvbiBkYSgpe2lmKGJhKWZvcih2YXIgYSBpbiBjYSl7dmFyIGI9Y2FbYV0sYz1iYS5pbmRleE9mKGEpO2lmKCEoLTE8YykpdGhyb3cgdChFcnJvcig5NiksYSk7aWYoIWVhW2NdKXtpZighYi5leHRyYWN0RXZlbnRzKXRocm93IHQoRXJyb3IoOTcpLGEpO2VhW2NdPWI7Yz1iLmV2ZW50VHlwZXM7Zm9yKHZhciBkIGluIGMpe3ZhciBlPXZvaWQgMDt2YXIgZj1jW2RdLGg9YixnPWQ7aWYoZmEuaGFzT3duUHJvcGVydHkoZykpdGhyb3cgdChFcnJvcig5OSksZyk7ZmFbZ109Zjt2YXIgaz1mLnBoYXNlZFJlZ2lzdHJhdGlvbk5hbWVzO2lmKGspe2ZvcihlIGluIGspay5oYXNPd25Qcm9wZXJ0eShlKSYmaGEoa1tlXSxoLGcpO2U9ITB9ZWxzZSBmLnJlZ2lzdHJhdGlvbk5hbWU/KGhhKGYucmVnaXN0cmF0aW9uTmFtZSxoLGcpLGU9ITApOmU9ITE7aWYoIWUpdGhyb3cgdChFcnJvcig5OCksZCxhKTt9fX19XG5mdW5jdGlvbiBoYShhLGIsYyl7aWYoaWFbYV0pdGhyb3cgdChFcnJvcigxMDApLGEpO2lhW2FdPWI7amFbYV09Yi5ldmVudFR5cGVzW2NdLmRlcGVuZGVuY2llc312YXIgZWE9W10sZmE9e30saWE9e30samE9e307ZnVuY3Rpb24ga2EoYSxiLGMsZCxlLGYsaCxnLGspe3ZhciBsPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywzKTt0cnl7Yi5hcHBseShjLGwpfWNhdGNoKG4pe3RoaXMub25FcnJvcihuKX19dmFyIGxhPSExLG1hPW51bGwsbmE9ITEsb2E9bnVsbCxwYT17b25FcnJvcjpmdW5jdGlvbihhKXtsYT0hMDttYT1hfX07ZnVuY3Rpb24gcWEoYSxiLGMsZCxlLGYsaCxnLGspe2xhPSExO21hPW51bGw7a2EuYXBwbHkocGEsYXJndW1lbnRzKX1cbmZ1bmN0aW9uIHJhKGEsYixjLGQsZSxmLGgsZyxrKXtxYS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7aWYobGEpe2lmKGxhKXt2YXIgbD1tYTtsYT0hMTttYT1udWxsfWVsc2UgdGhyb3cgdChFcnJvcigxOTgpKTtuYXx8KG5hPSEwLG9hPWwpfX12YXIgc2E9bnVsbCx0YT1udWxsLHZhPW51bGw7ZnVuY3Rpb24gd2EoYSxiLGMpe3ZhciBkPWEudHlwZXx8XCJ1bmtub3duLWV2ZW50XCI7YS5jdXJyZW50VGFyZ2V0PXZhKGMpO3JhKGQsYix2b2lkIDAsYSk7YS5jdXJyZW50VGFyZ2V0PW51bGx9ZnVuY3Rpb24geGEoYSxiKXtpZihudWxsPT1iKXRocm93IHQoRXJyb3IoMzApKTtpZihudWxsPT1hKXJldHVybiBiO2lmKEFycmF5LmlzQXJyYXkoYSkpe2lmKEFycmF5LmlzQXJyYXkoYikpcmV0dXJuIGEucHVzaC5hcHBseShhLGIpLGE7YS5wdXNoKGIpO3JldHVybiBhfXJldHVybiBBcnJheS5pc0FycmF5KGIpP1thXS5jb25jYXQoYik6W2EsYl19XG5mdW5jdGlvbiB5YShhLGIsYyl7QXJyYXkuaXNBcnJheShhKT9hLmZvckVhY2goYixjKTphJiZiLmNhbGwoYyxhKX12YXIgemE9bnVsbDtmdW5jdGlvbiBBYShhKXtpZihhKXt2YXIgYj1hLl9kaXNwYXRjaExpc3RlbmVycyxjPWEuX2Rpc3BhdGNoSW5zdGFuY2VzO2lmKEFycmF5LmlzQXJyYXkoYikpZm9yKHZhciBkPTA7ZDxiLmxlbmd0aCYmIWEuaXNQcm9wYWdhdGlvblN0b3BwZWQoKTtkKyspd2EoYSxiW2RdLGNbZF0pO2Vsc2UgYiYmd2EoYSxiLGMpO2EuX2Rpc3BhdGNoTGlzdGVuZXJzPW51bGw7YS5fZGlzcGF0Y2hJbnN0YW5jZXM9bnVsbDthLmlzUGVyc2lzdGVudCgpfHxhLmNvbnN0cnVjdG9yLnJlbGVhc2UoYSl9fWZ1bmN0aW9uIEJhKGEpe251bGwhPT1hJiYoemE9eGEoemEsYSkpO2E9emE7emE9bnVsbDtpZihhKXt5YShhLEFhKTtpZih6YSl0aHJvdyB0KEVycm9yKDk1KSk7aWYobmEpdGhyb3cgYT1vYSxuYT0hMSxvYT1udWxsLGE7fX1cbnZhciBDYT17aW5qZWN0RXZlbnRQbHVnaW5PcmRlcjpmdW5jdGlvbihhKXtpZihiYSl0aHJvdyB0KEVycm9yKDEwMSkpO2JhPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGEpO2RhKCl9LGluamVjdEV2ZW50UGx1Z2luc0J5TmFtZTpmdW5jdGlvbihhKXt2YXIgYj0hMSxjO2ZvcihjIGluIGEpaWYoYS5oYXNPd25Qcm9wZXJ0eShjKSl7dmFyIGQ9YVtjXTtpZighY2EuaGFzT3duUHJvcGVydHkoYyl8fGNhW2NdIT09ZCl7aWYoY2FbY10pdGhyb3cgdChFcnJvcigxMDIpLGMpO2NhW2NdPWQ7Yj0hMH19YiYmZGEoKX19O1xuZnVuY3Rpb24gRGEoYSxiKXt2YXIgYz1hLnN0YXRlTm9kZTtpZighYylyZXR1cm4gbnVsbDt2YXIgZD1zYShjKTtpZighZClyZXR1cm4gbnVsbDtjPWRbYl07YTpzd2l0Y2goYil7Y2FzZSBcIm9uQ2xpY2tcIjpjYXNlIFwib25DbGlja0NhcHR1cmVcIjpjYXNlIFwib25Eb3VibGVDbGlja1wiOmNhc2UgXCJvbkRvdWJsZUNsaWNrQ2FwdHVyZVwiOmNhc2UgXCJvbk1vdXNlRG93blwiOmNhc2UgXCJvbk1vdXNlRG93bkNhcHR1cmVcIjpjYXNlIFwib25Nb3VzZU1vdmVcIjpjYXNlIFwib25Nb3VzZU1vdmVDYXB0dXJlXCI6Y2FzZSBcIm9uTW91c2VVcFwiOmNhc2UgXCJvbk1vdXNlVXBDYXB0dXJlXCI6KGQ9IWQuZGlzYWJsZWQpfHwoYT1hLnR5cGUsZD0hKFwiYnV0dG9uXCI9PT1hfHxcImlucHV0XCI9PT1hfHxcInNlbGVjdFwiPT09YXx8XCJ0ZXh0YXJlYVwiPT09YSkpO2E9IWQ7YnJlYWsgYTtkZWZhdWx0OmE9ITF9aWYoYSlyZXR1cm4gbnVsbDtpZihjJiZcImZ1bmN0aW9uXCIhPT10eXBlb2YgYyl0aHJvdyB0KEVycm9yKDIzMSksYix0eXBlb2YgYyk7XG5yZXR1cm4gY312YXIgRWE9TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMiksRmE9XCJfX3JlYWN0SW50ZXJuYWxJbnN0YW5jZSRcIitFYSxHYT1cIl9fcmVhY3RFdmVudEhhbmRsZXJzJFwiK0VhO2Z1bmN0aW9uIEhhKGEpe2lmKGFbRmFdKXJldHVybiBhW0ZhXTtmb3IoOyFhW0ZhXTspaWYoYS5wYXJlbnROb2RlKWE9YS5wYXJlbnROb2RlO2Vsc2UgcmV0dXJuIG51bGw7YT1hW0ZhXTtyZXR1cm4gNT09PWEudGFnfHw2PT09YS50YWc/YTpudWxsfWZ1bmN0aW9uIElhKGEpe2E9YVtGYV07cmV0dXJuIWF8fDUhPT1hLnRhZyYmNiE9PWEudGFnP251bGw6YX1mdW5jdGlvbiBKYShhKXtpZig1PT09YS50YWd8fDY9PT1hLnRhZylyZXR1cm4gYS5zdGF0ZU5vZGU7dGhyb3cgdChFcnJvcigzMykpO31mdW5jdGlvbiBLYShhKXtyZXR1cm4gYVtHYV18fG51bGx9ZnVuY3Rpb24gTGEoYSl7ZG8gYT1hLnJldHVybjt3aGlsZShhJiY1IT09YS50YWcpO3JldHVybiBhP2E6bnVsbH1cbmZ1bmN0aW9uIE1hKGEsYixjKXtpZihiPURhKGEsYy5kaXNwYXRjaENvbmZpZy5waGFzZWRSZWdpc3RyYXRpb25OYW1lc1tiXSkpYy5fZGlzcGF0Y2hMaXN0ZW5lcnM9eGEoYy5fZGlzcGF0Y2hMaXN0ZW5lcnMsYiksYy5fZGlzcGF0Y2hJbnN0YW5jZXM9eGEoYy5fZGlzcGF0Y2hJbnN0YW5jZXMsYSl9ZnVuY3Rpb24gTmEoYSl7aWYoYSYmYS5kaXNwYXRjaENvbmZpZy5waGFzZWRSZWdpc3RyYXRpb25OYW1lcyl7Zm9yKHZhciBiPWEuX3RhcmdldEluc3QsYz1bXTtiOyljLnB1c2goYiksYj1MYShiKTtmb3IoYj1jLmxlbmd0aDswPGItLTspTWEoY1tiXSxcImNhcHR1cmVkXCIsYSk7Zm9yKGI9MDtiPGMubGVuZ3RoO2IrKylNYShjW2JdLFwiYnViYmxlZFwiLGEpfX1cbmZ1bmN0aW9uIE9hKGEsYixjKXthJiZjJiZjLmRpc3BhdGNoQ29uZmlnLnJlZ2lzdHJhdGlvbk5hbWUmJihiPURhKGEsYy5kaXNwYXRjaENvbmZpZy5yZWdpc3RyYXRpb25OYW1lKSkmJihjLl9kaXNwYXRjaExpc3RlbmVycz14YShjLl9kaXNwYXRjaExpc3RlbmVycyxiKSxjLl9kaXNwYXRjaEluc3RhbmNlcz14YShjLl9kaXNwYXRjaEluc3RhbmNlcyxhKSl9ZnVuY3Rpb24gUGEoYSl7YSYmYS5kaXNwYXRjaENvbmZpZy5yZWdpc3RyYXRpb25OYW1lJiZPYShhLl90YXJnZXRJbnN0LG51bGwsYSl9ZnVuY3Rpb24gUWEoYSl7eWEoYSxOYSl9dmFyIFJhPSEoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiB3aW5kb3d8fFwidW5kZWZpbmVkXCI9PT10eXBlb2Ygd2luZG93LmRvY3VtZW50fHxcInVuZGVmaW5lZFwiPT09dHlwZW9mIHdpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KTtcbmZ1bmN0aW9uIFNhKGEsYil7dmFyIGM9e307Y1thLnRvTG93ZXJDYXNlKCldPWIudG9Mb3dlckNhc2UoKTtjW1wiV2Via2l0XCIrYV09XCJ3ZWJraXRcIitiO2NbXCJNb3pcIithXT1cIm1velwiK2I7cmV0dXJuIGN9dmFyIFRhPXthbmltYXRpb25lbmQ6U2EoXCJBbmltYXRpb25cIixcIkFuaW1hdGlvbkVuZFwiKSxhbmltYXRpb25pdGVyYXRpb246U2EoXCJBbmltYXRpb25cIixcIkFuaW1hdGlvbkl0ZXJhdGlvblwiKSxhbmltYXRpb25zdGFydDpTYShcIkFuaW1hdGlvblwiLFwiQW5pbWF0aW9uU3RhcnRcIiksdHJhbnNpdGlvbmVuZDpTYShcIlRyYW5zaXRpb25cIixcIlRyYW5zaXRpb25FbmRcIil9LFVhPXt9LFZhPXt9O1xuUmEmJihWYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpLnN0eWxlLFwiQW5pbWF0aW9uRXZlbnRcImluIHdpbmRvd3x8KGRlbGV0ZSBUYS5hbmltYXRpb25lbmQuYW5pbWF0aW9uLGRlbGV0ZSBUYS5hbmltYXRpb25pdGVyYXRpb24uYW5pbWF0aW9uLGRlbGV0ZSBUYS5hbmltYXRpb25zdGFydC5hbmltYXRpb24pLFwiVHJhbnNpdGlvbkV2ZW50XCJpbiB3aW5kb3d8fGRlbGV0ZSBUYS50cmFuc2l0aW9uZW5kLnRyYW5zaXRpb24pO2Z1bmN0aW9uIFdhKGEpe2lmKFVhW2FdKXJldHVybiBVYVthXTtpZighVGFbYV0pcmV0dXJuIGE7dmFyIGI9VGFbYV0sYztmb3IoYyBpbiBiKWlmKGIuaGFzT3duUHJvcGVydHkoYykmJmMgaW4gVmEpcmV0dXJuIFVhW2FdPWJbY107cmV0dXJuIGF9XG52YXIgWGE9V2EoXCJhbmltYXRpb25lbmRcIiksWWE9V2EoXCJhbmltYXRpb25pdGVyYXRpb25cIiksWmE9V2EoXCJhbmltYXRpb25zdGFydFwiKSxhYj1XYShcInRyYW5zaXRpb25lbmRcIiksYmI9XCJhYm9ydCBjYW5wbGF5IGNhbnBsYXl0aHJvdWdoIGR1cmF0aW9uY2hhbmdlIGVtcHRpZWQgZW5jcnlwdGVkIGVuZGVkIGVycm9yIGxvYWRlZGRhdGEgbG9hZGVkbWV0YWRhdGEgbG9hZHN0YXJ0IHBhdXNlIHBsYXkgcGxheWluZyBwcm9ncmVzcyByYXRlY2hhbmdlIHNlZWtlZCBzZWVraW5nIHN0YWxsZWQgc3VzcGVuZCB0aW1ldXBkYXRlIHZvbHVtZWNoYW5nZSB3YWl0aW5nXCIuc3BsaXQoXCIgXCIpLGNiPW51bGwsZGI9bnVsbCxlYj1udWxsO1xuZnVuY3Rpb24gZmIoKXtpZihlYilyZXR1cm4gZWI7dmFyIGEsYj1kYixjPWIubGVuZ3RoLGQsZT1cInZhbHVlXCJpbiBjYj9jYi52YWx1ZTpjYi50ZXh0Q29udGVudCxmPWUubGVuZ3RoO2ZvcihhPTA7YTxjJiZiW2FdPT09ZVthXTthKyspO3ZhciBoPWMtYTtmb3IoZD0xO2Q8PWgmJmJbYy1kXT09PWVbZi1kXTtkKyspO3JldHVybiBlYj1lLnNsaWNlKGEsMTxkPzEtZDp2b2lkIDApfWZ1bmN0aW9uIGdiKCl7cmV0dXJuITB9ZnVuY3Rpb24gaGIoKXtyZXR1cm4hMX1cbmZ1bmN0aW9uIHkoYSxiLGMsZCl7dGhpcy5kaXNwYXRjaENvbmZpZz1hO3RoaXMuX3RhcmdldEluc3Q9Yjt0aGlzLm5hdGl2ZUV2ZW50PWM7YT10aGlzLmNvbnN0cnVjdG9yLkludGVyZmFjZTtmb3IodmFyIGUgaW4gYSlhLmhhc093blByb3BlcnR5KGUpJiYoKGI9YVtlXSk/dGhpc1tlXT1iKGMpOlwidGFyZ2V0XCI9PT1lP3RoaXMudGFyZ2V0PWQ6dGhpc1tlXT1jW2VdKTt0aGlzLmlzRGVmYXVsdFByZXZlbnRlZD0obnVsbCE9Yy5kZWZhdWx0UHJldmVudGVkP2MuZGVmYXVsdFByZXZlbnRlZDohMT09PWMucmV0dXJuVmFsdWUpP2diOmhiO3RoaXMuaXNQcm9wYWdhdGlvblN0b3BwZWQ9aGI7cmV0dXJuIHRoaXN9XG5tKHkucHJvdG90eXBlLHtwcmV2ZW50RGVmYXVsdDpmdW5jdGlvbigpe3RoaXMuZGVmYXVsdFByZXZlbnRlZD0hMDt2YXIgYT10aGlzLm5hdGl2ZUV2ZW50O2EmJihhLnByZXZlbnREZWZhdWx0P2EucHJldmVudERlZmF1bHQoKTpcInVua25vd25cIiE9PXR5cGVvZiBhLnJldHVyblZhbHVlJiYoYS5yZXR1cm5WYWx1ZT0hMSksdGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQ9Z2IpfSxzdG9wUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt2YXIgYT10aGlzLm5hdGl2ZUV2ZW50O2EmJihhLnN0b3BQcm9wYWdhdGlvbj9hLnN0b3BQcm9wYWdhdGlvbigpOlwidW5rbm93blwiIT09dHlwZW9mIGEuY2FuY2VsQnViYmxlJiYoYS5jYW5jZWxCdWJibGU9ITApLHRoaXMuaXNQcm9wYWdhdGlvblN0b3BwZWQ9Z2IpfSxwZXJzaXN0OmZ1bmN0aW9uKCl7dGhpcy5pc1BlcnNpc3RlbnQ9Z2J9LGlzUGVyc2lzdGVudDpoYixkZXN0cnVjdG9yOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5jb25zdHJ1Y3Rvci5JbnRlcmZhY2UsXG5iO2ZvcihiIGluIGEpdGhpc1tiXT1udWxsO3RoaXMubmF0aXZlRXZlbnQ9dGhpcy5fdGFyZ2V0SW5zdD10aGlzLmRpc3BhdGNoQ29uZmlnPW51bGw7dGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZD10aGlzLmlzRGVmYXVsdFByZXZlbnRlZD1oYjt0aGlzLl9kaXNwYXRjaEluc3RhbmNlcz10aGlzLl9kaXNwYXRjaExpc3RlbmVycz1udWxsfX0pO3kuSW50ZXJmYWNlPXt0eXBlOm51bGwsdGFyZ2V0Om51bGwsY3VycmVudFRhcmdldDpmdW5jdGlvbigpe3JldHVybiBudWxsfSxldmVudFBoYXNlOm51bGwsYnViYmxlczpudWxsLGNhbmNlbGFibGU6bnVsbCx0aW1lU3RhbXA6ZnVuY3Rpb24oYSl7cmV0dXJuIGEudGltZVN0YW1wfHxEYXRlLm5vdygpfSxkZWZhdWx0UHJldmVudGVkOm51bGwsaXNUcnVzdGVkOm51bGx9O1xueS5leHRlbmQ9ZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYigpe31mdW5jdGlvbiBjKCl7cmV0dXJuIGQuYXBwbHkodGhpcyxhcmd1bWVudHMpfXZhciBkPXRoaXM7Yi5wcm90b3R5cGU9ZC5wcm90b3R5cGU7dmFyIGU9bmV3IGI7bShlLGMucHJvdG90eXBlKTtjLnByb3RvdHlwZT1lO2MucHJvdG90eXBlLmNvbnN0cnVjdG9yPWM7Yy5JbnRlcmZhY2U9bSh7fSxkLkludGVyZmFjZSxhKTtjLmV4dGVuZD1kLmV4dGVuZDtpYihjKTtyZXR1cm4gY307aWIoeSk7ZnVuY3Rpb24gamIoYSxiLGMsZCl7aWYodGhpcy5ldmVudFBvb2wubGVuZ3RoKXt2YXIgZT10aGlzLmV2ZW50UG9vbC5wb3AoKTt0aGlzLmNhbGwoZSxhLGIsYyxkKTtyZXR1cm4gZX1yZXR1cm4gbmV3IHRoaXMoYSxiLGMsZCl9XG5mdW5jdGlvbiBrYihhKXtpZighKGEgaW5zdGFuY2VvZiB0aGlzKSl0aHJvdyB0KEVycm9yKDI3OSkpO2EuZGVzdHJ1Y3RvcigpOzEwPnRoaXMuZXZlbnRQb29sLmxlbmd0aCYmdGhpcy5ldmVudFBvb2wucHVzaChhKX1mdW5jdGlvbiBpYihhKXthLmV2ZW50UG9vbD1bXTthLmdldFBvb2xlZD1qYjthLnJlbGVhc2U9a2J9dmFyIGxiPXkuZXh0ZW5kKHtkYXRhOm51bGx9KSxtYj15LmV4dGVuZCh7ZGF0YTpudWxsfSksbmI9WzksMTMsMjcsMzJdLG9iPVJhJiZcIkNvbXBvc2l0aW9uRXZlbnRcImluIHdpbmRvdyxwYj1udWxsO1JhJiZcImRvY3VtZW50TW9kZVwiaW4gZG9jdW1lbnQmJihwYj1kb2N1bWVudC5kb2N1bWVudE1vZGUpO1xudmFyIHFiPVJhJiZcIlRleHRFdmVudFwiaW4gd2luZG93JiYhcGIsc2I9UmEmJighb2J8fHBiJiY4PHBiJiYxMT49cGIpLHRiPVN0cmluZy5mcm9tQ2hhckNvZGUoMzIpLHViPXtiZWZvcmVJbnB1dDp7cGhhc2VkUmVnaXN0cmF0aW9uTmFtZXM6e2J1YmJsZWQ6XCJvbkJlZm9yZUlucHV0XCIsY2FwdHVyZWQ6XCJvbkJlZm9yZUlucHV0Q2FwdHVyZVwifSxkZXBlbmRlbmNpZXM6W1wiY29tcG9zaXRpb25lbmRcIixcImtleXByZXNzXCIsXCJ0ZXh0SW5wdXRcIixcInBhc3RlXCJdfSxjb21wb3NpdGlvbkVuZDp7cGhhc2VkUmVnaXN0cmF0aW9uTmFtZXM6e2J1YmJsZWQ6XCJvbkNvbXBvc2l0aW9uRW5kXCIsY2FwdHVyZWQ6XCJvbkNvbXBvc2l0aW9uRW5kQ2FwdHVyZVwifSxkZXBlbmRlbmNpZXM6XCJibHVyIGNvbXBvc2l0aW9uZW5kIGtleWRvd24ga2V5cHJlc3Mga2V5dXAgbW91c2Vkb3duXCIuc3BsaXQoXCIgXCIpfSxjb21wb3NpdGlvblN0YXJ0OntwaGFzZWRSZWdpc3RyYXRpb25OYW1lczp7YnViYmxlZDpcIm9uQ29tcG9zaXRpb25TdGFydFwiLFxuY2FwdHVyZWQ6XCJvbkNvbXBvc2l0aW9uU3RhcnRDYXB0dXJlXCJ9LGRlcGVuZGVuY2llczpcImJsdXIgY29tcG9zaXRpb25zdGFydCBrZXlkb3duIGtleXByZXNzIGtleXVwIG1vdXNlZG93blwiLnNwbGl0KFwiIFwiKX0sY29tcG9zaXRpb25VcGRhdGU6e3BoYXNlZFJlZ2lzdHJhdGlvbk5hbWVzOntidWJibGVkOlwib25Db21wb3NpdGlvblVwZGF0ZVwiLGNhcHR1cmVkOlwib25Db21wb3NpdGlvblVwZGF0ZUNhcHR1cmVcIn0sZGVwZW5kZW5jaWVzOlwiYmx1ciBjb21wb3NpdGlvbnVwZGF0ZSBrZXlkb3duIGtleXByZXNzIGtleXVwIG1vdXNlZG93blwiLnNwbGl0KFwiIFwiKX19LHZiPSExO1xuZnVuY3Rpb24gd2IoYSxiKXtzd2l0Y2goYSl7Y2FzZSBcImtleXVwXCI6cmV0dXJuLTEhPT1uYi5pbmRleE9mKGIua2V5Q29kZSk7Y2FzZSBcImtleWRvd25cIjpyZXR1cm4gMjI5IT09Yi5rZXlDb2RlO2Nhc2UgXCJrZXlwcmVzc1wiOmNhc2UgXCJtb3VzZWRvd25cIjpjYXNlIFwiYmx1clwiOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fWZ1bmN0aW9uIHhiKGEpe2E9YS5kZXRhaWw7cmV0dXJuXCJvYmplY3RcIj09PXR5cGVvZiBhJiZcImRhdGFcImluIGE/YS5kYXRhOm51bGx9dmFyIHliPSExO2Z1bmN0aW9uIEFiKGEsYil7c3dpdGNoKGEpe2Nhc2UgXCJjb21wb3NpdGlvbmVuZFwiOnJldHVybiB4YihiKTtjYXNlIFwia2V5cHJlc3NcIjppZigzMiE9PWIud2hpY2gpcmV0dXJuIG51bGw7dmI9ITA7cmV0dXJuIHRiO2Nhc2UgXCJ0ZXh0SW5wdXRcIjpyZXR1cm4gYT1iLmRhdGEsYT09PXRiJiZ2Yj9udWxsOmE7ZGVmYXVsdDpyZXR1cm4gbnVsbH19XG5mdW5jdGlvbiBCYihhLGIpe2lmKHliKXJldHVyblwiY29tcG9zaXRpb25lbmRcIj09PWF8fCFvYiYmd2IoYSxiKT8oYT1mYigpLGViPWRiPWNiPW51bGwseWI9ITEsYSk6bnVsbDtzd2l0Y2goYSl7Y2FzZSBcInBhc3RlXCI6cmV0dXJuIG51bGw7Y2FzZSBcImtleXByZXNzXCI6aWYoIShiLmN0cmxLZXl8fGIuYWx0S2V5fHxiLm1ldGFLZXkpfHxiLmN0cmxLZXkmJmIuYWx0S2V5KXtpZihiLmNoYXImJjE8Yi5jaGFyLmxlbmd0aClyZXR1cm4gYi5jaGFyO2lmKGIud2hpY2gpcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoYi53aGljaCl9cmV0dXJuIG51bGw7Y2FzZSBcImNvbXBvc2l0aW9uZW5kXCI6cmV0dXJuIHNiJiZcImtvXCIhPT1iLmxvY2FsZT9udWxsOmIuZGF0YTtkZWZhdWx0OnJldHVybiBudWxsfX1cbnZhciBDYj17ZXZlbnRUeXBlczp1YixleHRyYWN0RXZlbnRzOmZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPXZvaWQgMDt2YXIgZj12b2lkIDA7aWYob2IpYjp7c3dpdGNoKGEpe2Nhc2UgXCJjb21wb3NpdGlvbnN0YXJ0XCI6ZT11Yi5jb21wb3NpdGlvblN0YXJ0O2JyZWFrIGI7Y2FzZSBcImNvbXBvc2l0aW9uZW5kXCI6ZT11Yi5jb21wb3NpdGlvbkVuZDticmVhayBiO2Nhc2UgXCJjb21wb3NpdGlvbnVwZGF0ZVwiOmU9dWIuY29tcG9zaXRpb25VcGRhdGU7YnJlYWsgYn1lPXZvaWQgMH1lbHNlIHliP3diKGEsYykmJihlPXViLmNvbXBvc2l0aW9uRW5kKTpcImtleWRvd25cIj09PWEmJjIyOT09PWMua2V5Q29kZSYmKGU9dWIuY29tcG9zaXRpb25TdGFydCk7ZT8oc2ImJlwia29cIiE9PWMubG9jYWxlJiYoeWJ8fGUhPT11Yi5jb21wb3NpdGlvblN0YXJ0P2U9PT11Yi5jb21wb3NpdGlvbkVuZCYmeWImJihmPWZiKCkpOihjYj1kLGRiPVwidmFsdWVcImluIGNiP2NiLnZhbHVlOmNiLnRleHRDb250ZW50LHliPVxuITApKSxlPWxiLmdldFBvb2xlZChlLGIsYyxkKSxmP2UuZGF0YT1mOihmPXhiKGMpLG51bGwhPT1mJiYoZS5kYXRhPWYpKSxRYShlKSxmPWUpOmY9bnVsbDsoYT1xYj9BYihhLGMpOkJiKGEsYykpPyhiPW1iLmdldFBvb2xlZCh1Yi5iZWZvcmVJbnB1dCxiLGMsZCksYi5kYXRhPWEsUWEoYikpOmI9bnVsbDtyZXR1cm4gbnVsbD09PWY/YjpudWxsPT09Yj9mOltmLGJdfX0sRGI9bnVsbCxFYj1udWxsLEZiPW51bGw7ZnVuY3Rpb24gR2IoYSl7aWYoYT10YShhKSl7aWYoXCJmdW5jdGlvblwiIT09dHlwZW9mIERiKXRocm93IHQoRXJyb3IoMjgwKSk7dmFyIGI9c2EoYS5zdGF0ZU5vZGUpO0RiKGEuc3RhdGVOb2RlLGEudHlwZSxiKX19ZnVuY3Rpb24gSGIoYSl7RWI/RmI/RmIucHVzaChhKTpGYj1bYV06RWI9YX1mdW5jdGlvbiBJYigpe2lmKEViKXt2YXIgYT1FYixiPUZiO0ZiPUViPW51bGw7R2IoYSk7aWYoYilmb3IoYT0wO2E8Yi5sZW5ndGg7YSsrKUdiKGJbYV0pfX1cbmZ1bmN0aW9uIEpiKGEsYil7cmV0dXJuIGEoYil9ZnVuY3Rpb24gS2IoYSxiLGMsZCl7cmV0dXJuIGEoYixjLGQpfWZ1bmN0aW9uIExiKCl7fXZhciBNYj1KYixOYj0hMTtmdW5jdGlvbiBPYigpe2lmKG51bGwhPT1FYnx8bnVsbCE9PUZiKUxiKCksSWIoKX12YXIgUGI9e2NvbG9yOiEwLGRhdGU6ITAsZGF0ZXRpbWU6ITAsXCJkYXRldGltZS1sb2NhbFwiOiEwLGVtYWlsOiEwLG1vbnRoOiEwLG51bWJlcjohMCxwYXNzd29yZDohMCxyYW5nZTohMCxzZWFyY2g6ITAsdGVsOiEwLHRleHQ6ITAsdGltZTohMCx1cmw6ITAsd2VlazohMH07ZnVuY3Rpb24gUWIoYSl7dmFyIGI9YSYmYS5ub2RlTmFtZSYmYS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVyblwiaW5wdXRcIj09PWI/ISFQYlthLnR5cGVdOlwidGV4dGFyZWFcIj09PWI/ITA6ITF9XG5mdW5jdGlvbiBSYihhKXthPWEudGFyZ2V0fHxhLnNyY0VsZW1lbnR8fHdpbmRvdzthLmNvcnJlc3BvbmRpbmdVc2VFbGVtZW50JiYoYT1hLmNvcnJlc3BvbmRpbmdVc2VFbGVtZW50KTtyZXR1cm4gMz09PWEubm9kZVR5cGU/YS5wYXJlbnROb2RlOmF9ZnVuY3Rpb24gU2IoYSl7aWYoIVJhKXJldHVybiExO2E9XCJvblwiK2E7dmFyIGI9YSBpbiBkb2N1bWVudDtifHwoYj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpLGIuc2V0QXR0cmlidXRlKGEsXCJyZXR1cm47XCIpLGI9XCJmdW5jdGlvblwiPT09dHlwZW9mIGJbYV0pO3JldHVybiBifWZ1bmN0aW9uIFRiKGEpe3ZhciBiPWEudHlwZTtyZXR1cm4oYT1hLm5vZGVOYW1lKSYmXCJpbnB1dFwiPT09YS50b0xvd2VyQ2FzZSgpJiYoXCJjaGVja2JveFwiPT09Ynx8XCJyYWRpb1wiPT09Yil9XG5mdW5jdGlvbiBVYihhKXt2YXIgYj1UYihhKT9cImNoZWNrZWRcIjpcInZhbHVlXCIsYz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEuY29uc3RydWN0b3IucHJvdG90eXBlLGIpLGQ9XCJcIithW2JdO2lmKCFhLmhhc093blByb3BlcnR5KGIpJiZcInVuZGVmaW5lZFwiIT09dHlwZW9mIGMmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBjLmdldCYmXCJmdW5jdGlvblwiPT09dHlwZW9mIGMuc2V0KXt2YXIgZT1jLmdldCxmPWMuc2V0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShhLGIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZS5jYWxsKHRoaXMpfSxzZXQ6ZnVuY3Rpb24oYSl7ZD1cIlwiK2E7Zi5jYWxsKHRoaXMsYSl9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGEsYix7ZW51bWVyYWJsZTpjLmVudW1lcmFibGV9KTtyZXR1cm57Z2V0VmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gZH0sc2V0VmFsdWU6ZnVuY3Rpb24oYSl7ZD1cIlwiK2F9LHN0b3BUcmFja2luZzpmdW5jdGlvbigpe2EuX3ZhbHVlVHJhY2tlcj1cbm51bGw7ZGVsZXRlIGFbYl19fX19ZnVuY3Rpb24gVmIoYSl7YS5fdmFsdWVUcmFja2VyfHwoYS5fdmFsdWVUcmFja2VyPVViKGEpKX1mdW5jdGlvbiBXYihhKXtpZighYSlyZXR1cm4hMTt2YXIgYj1hLl92YWx1ZVRyYWNrZXI7aWYoIWIpcmV0dXJuITA7dmFyIGM9Yi5nZXRWYWx1ZSgpO3ZhciBkPVwiXCI7YSYmKGQ9VGIoYSk/YS5jaGVja2VkP1widHJ1ZVwiOlwiZmFsc2VcIjphLnZhbHVlKTthPWQ7cmV0dXJuIGEhPT1jPyhiLnNldFZhbHVlKGEpLCEwKTohMX12YXIgWGI9YWEuX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQ7WGIuaGFzT3duUHJvcGVydHkoXCJSZWFjdEN1cnJlbnREaXNwYXRjaGVyXCIpfHwoWGIuUmVhY3RDdXJyZW50RGlzcGF0Y2hlcj17Y3VycmVudDpudWxsfSk7WGIuaGFzT3duUHJvcGVydHkoXCJSZWFjdEN1cnJlbnRCYXRjaENvbmZpZ1wiKXx8KFhiLlJlYWN0Q3VycmVudEJhdGNoQ29uZmlnPXtzdXNwZW5zZTpudWxsfSk7XG52YXIgWWI9L14oLiopW1xcXFxcXC9dLyxCPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5mb3IsWmI9Qj9TeW1ib2wuZm9yKFwicmVhY3QuZWxlbWVudFwiKTo2MDEwMywkYj1CP1N5bWJvbC5mb3IoXCJyZWFjdC5wb3J0YWxcIik6NjAxMDYsYWM9Qj9TeW1ib2wuZm9yKFwicmVhY3QuZnJhZ21lbnRcIik6NjAxMDcsYmM9Qj9TeW1ib2wuZm9yKFwicmVhY3Quc3RyaWN0X21vZGVcIik6NjAxMDgsY2M9Qj9TeW1ib2wuZm9yKFwicmVhY3QucHJvZmlsZXJcIik6NjAxMTQsZGM9Qj9TeW1ib2wuZm9yKFwicmVhY3QucHJvdmlkZXJcIik6NjAxMDksZWM9Qj9TeW1ib2wuZm9yKFwicmVhY3QuY29udGV4dFwiKTo2MDExMCxmYz1CP1N5bWJvbC5mb3IoXCJyZWFjdC5jb25jdXJyZW50X21vZGVcIik6NjAxMTEsZ2M9Qj9TeW1ib2wuZm9yKFwicmVhY3QuZm9yd2FyZF9yZWZcIik6NjAxMTIsaGM9Qj9TeW1ib2wuZm9yKFwicmVhY3Quc3VzcGVuc2VcIik6NjAxMTMsaWM9Qj9TeW1ib2wuZm9yKFwicmVhY3Quc3VzcGVuc2VfbGlzdFwiKTpcbjYwMTIwLGpjPUI/U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9cIik6NjAxMTUsa2M9Qj9TeW1ib2wuZm9yKFwicmVhY3QubGF6eVwiKTo2MDExNjtCJiZTeW1ib2wuZm9yKFwicmVhY3QuZnVuZGFtZW50YWxcIik7QiYmU3ltYm9sLmZvcihcInJlYWN0LnJlc3BvbmRlclwiKTt2YXIgbGM9XCJmdW5jdGlvblwiPT09dHlwZW9mIFN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yO2Z1bmN0aW9uIG1jKGEpe2lmKG51bGw9PT1hfHxcIm9iamVjdFwiIT09dHlwZW9mIGEpcmV0dXJuIG51bGw7YT1sYyYmYVtsY118fGFbXCJAQGl0ZXJhdG9yXCJdO3JldHVyblwiZnVuY3Rpb25cIj09PXR5cGVvZiBhP2E6bnVsbH1cbmZ1bmN0aW9uIG9jKGEpe2lmKG51bGw9PWEpcmV0dXJuIG51bGw7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGEpcmV0dXJuIGEuZGlzcGxheU5hbWV8fGEubmFtZXx8bnVsbDtpZihcInN0cmluZ1wiPT09dHlwZW9mIGEpcmV0dXJuIGE7c3dpdGNoKGEpe2Nhc2UgYWM6cmV0dXJuXCJGcmFnbWVudFwiO2Nhc2UgJGI6cmV0dXJuXCJQb3J0YWxcIjtjYXNlIGNjOnJldHVyblwiUHJvZmlsZXJcIjtjYXNlIGJjOnJldHVyblwiU3RyaWN0TW9kZVwiO2Nhc2UgaGM6cmV0dXJuXCJTdXNwZW5zZVwiO2Nhc2UgaWM6cmV0dXJuXCJTdXNwZW5zZUxpc3RcIn1pZihcIm9iamVjdFwiPT09dHlwZW9mIGEpc3dpdGNoKGEuJCR0eXBlb2Ype2Nhc2UgZWM6cmV0dXJuXCJDb250ZXh0LkNvbnN1bWVyXCI7Y2FzZSBkYzpyZXR1cm5cIkNvbnRleHQuUHJvdmlkZXJcIjtjYXNlIGdjOnZhciBiPWEucmVuZGVyO2I9Yi5kaXNwbGF5TmFtZXx8Yi5uYW1lfHxcIlwiO3JldHVybiBhLmRpc3BsYXlOYW1lfHwoXCJcIiE9PWI/XCJGb3J3YXJkUmVmKFwiK2IrXCIpXCI6XG5cIkZvcndhcmRSZWZcIik7Y2FzZSBqYzpyZXR1cm4gb2MoYS50eXBlKTtjYXNlIGtjOmlmKGE9MT09PWEuX3N0YXR1cz9hLl9yZXN1bHQ6bnVsbClyZXR1cm4gb2MoYSl9cmV0dXJuIG51bGx9ZnVuY3Rpb24gcGMoYSl7dmFyIGI9XCJcIjtkb3thOnN3aXRjaChhLnRhZyl7Y2FzZSAzOmNhc2UgNDpjYXNlIDY6Y2FzZSA3OmNhc2UgMTA6Y2FzZSA5OnZhciBjPVwiXCI7YnJlYWsgYTtkZWZhdWx0OnZhciBkPWEuX2RlYnVnT3duZXIsZT1hLl9kZWJ1Z1NvdXJjZSxmPW9jKGEudHlwZSk7Yz1udWxsO2QmJihjPW9jKGQudHlwZSkpO2Q9ZjtmPVwiXCI7ZT9mPVwiIChhdCBcIitlLmZpbGVOYW1lLnJlcGxhY2UoWWIsXCJcIikrXCI6XCIrZS5saW5lTnVtYmVyK1wiKVwiOmMmJihmPVwiIChjcmVhdGVkIGJ5IFwiK2MrXCIpXCIpO2M9XCJcXG4gICAgaW4gXCIrKGR8fFwiVW5rbm93blwiKStmfWIrPWM7YT1hLnJldHVybn13aGlsZShhKTtyZXR1cm4gYn1cbnZhciBxYz0vXls6QS1aX2EtelxcdTAwQzAtXFx1MDBENlxcdTAwRDgtXFx1MDBGNlxcdTAwRjgtXFx1MDJGRlxcdTAzNzAtXFx1MDM3RFxcdTAzN0YtXFx1MUZGRlxcdTIwMEMtXFx1MjAwRFxcdTIwNzAtXFx1MjE4RlxcdTJDMDAtXFx1MkZFRlxcdTMwMDEtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZGRF1bOkEtWl9hLXpcXHUwMEMwLVxcdTAwRDZcXHUwMEQ4LVxcdTAwRjZcXHUwMEY4LVxcdTAyRkZcXHUwMzcwLVxcdTAzN0RcXHUwMzdGLVxcdTFGRkZcXHUyMDBDLVxcdTIwMERcXHUyMDcwLVxcdTIxOEZcXHUyQzAwLVxcdTJGRUZcXHUzMDAxLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRkRcXC0uMC05XFx1MDBCN1xcdTAzMDAtXFx1MDM2RlxcdTIwM0YtXFx1MjA0MF0qJC8scmM9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxzYz17fSx0Yz17fTtcbmZ1bmN0aW9uIHVjKGEpe2lmKHJjLmNhbGwodGMsYSkpcmV0dXJuITA7aWYocmMuY2FsbChzYyxhKSlyZXR1cm4hMTtpZihxYy50ZXN0KGEpKXJldHVybiB0Y1thXT0hMDtzY1thXT0hMDtyZXR1cm4hMX1mdW5jdGlvbiB2YyhhLGIsYyxkKXtpZihudWxsIT09YyYmMD09PWMudHlwZSlyZXR1cm4hMTtzd2l0Y2godHlwZW9mIGIpe2Nhc2UgXCJmdW5jdGlvblwiOmNhc2UgXCJzeW1ib2xcIjpyZXR1cm4hMDtjYXNlIFwiYm9vbGVhblwiOmlmKGQpcmV0dXJuITE7aWYobnVsbCE9PWMpcmV0dXJuIWMuYWNjZXB0c0Jvb2xlYW5zO2E9YS50b0xvd2VyQ2FzZSgpLnNsaWNlKDAsNSk7cmV0dXJuXCJkYXRhLVwiIT09YSYmXCJhcmlhLVwiIT09YTtkZWZhdWx0OnJldHVybiExfX1cbmZ1bmN0aW9uIHdjKGEsYixjLGQpe2lmKG51bGw9PT1ifHxcInVuZGVmaW5lZFwiPT09dHlwZW9mIGJ8fHZjKGEsYixjLGQpKXJldHVybiEwO2lmKGQpcmV0dXJuITE7aWYobnVsbCE9PWMpc3dpdGNoKGMudHlwZSl7Y2FzZSAzOnJldHVybiFiO2Nhc2UgNDpyZXR1cm4hMT09PWI7Y2FzZSA1OnJldHVybiBpc05hTihiKTtjYXNlIDY6cmV0dXJuIGlzTmFOKGIpfHwxPmJ9cmV0dXJuITF9ZnVuY3Rpb24gRChhLGIsYyxkLGUsZil7dGhpcy5hY2NlcHRzQm9vbGVhbnM9Mj09PWJ8fDM9PT1ifHw0PT09Yjt0aGlzLmF0dHJpYnV0ZU5hbWU9ZDt0aGlzLmF0dHJpYnV0ZU5hbWVzcGFjZT1lO3RoaXMubXVzdFVzZVByb3BlcnR5PWM7dGhpcy5wcm9wZXJ0eU5hbWU9YTt0aGlzLnR5cGU9Yjt0aGlzLnNhbml0aXplVVJMPWZ9dmFyIEY9e307XG5cImNoaWxkcmVuIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIGRlZmF1bHRWYWx1ZSBkZWZhdWx0Q2hlY2tlZCBpbm5lckhUTUwgc3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nIHN1cHByZXNzSHlkcmF0aW9uV2FybmluZyBzdHlsZVwiLnNwbGl0KFwiIFwiKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe0ZbYV09bmV3IEQoYSwwLCExLGEsbnVsbCwhMSl9KTtbW1wiYWNjZXB0Q2hhcnNldFwiLFwiYWNjZXB0LWNoYXJzZXRcIl0sW1wiY2xhc3NOYW1lXCIsXCJjbGFzc1wiXSxbXCJodG1sRm9yXCIsXCJmb3JcIl0sW1wiaHR0cEVxdWl2XCIsXCJodHRwLWVxdWl2XCJdXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3ZhciBiPWFbMF07RltiXT1uZXcgRChiLDEsITEsYVsxXSxudWxsLCExKX0pO1tcImNvbnRlbnRFZGl0YWJsZVwiLFwiZHJhZ2dhYmxlXCIsXCJzcGVsbENoZWNrXCIsXCJ2YWx1ZVwiXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe0ZbYV09bmV3IEQoYSwyLCExLGEudG9Mb3dlckNhc2UoKSxudWxsLCExKX0pO1xuW1wiYXV0b1JldmVyc2VcIixcImV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRcIixcImZvY3VzYWJsZVwiLFwicHJlc2VydmVBbHBoYVwiXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe0ZbYV09bmV3IEQoYSwyLCExLGEsbnVsbCwhMSl9KTtcImFsbG93RnVsbFNjcmVlbiBhc3luYyBhdXRvRm9jdXMgYXV0b1BsYXkgY29udHJvbHMgZGVmYXVsdCBkZWZlciBkaXNhYmxlZCBkaXNhYmxlUGljdHVyZUluUGljdHVyZSBmb3JtTm9WYWxpZGF0ZSBoaWRkZW4gbG9vcCBub01vZHVsZSBub1ZhbGlkYXRlIG9wZW4gcGxheXNJbmxpbmUgcmVhZE9ubHkgcmVxdWlyZWQgcmV2ZXJzZWQgc2NvcGVkIHNlYW1sZXNzIGl0ZW1TY29wZVwiLnNwbGl0KFwiIFwiKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe0ZbYV09bmV3IEQoYSwzLCExLGEudG9Mb3dlckNhc2UoKSxudWxsLCExKX0pO1xuW1wiY2hlY2tlZFwiLFwibXVsdGlwbGVcIixcIm11dGVkXCIsXCJzZWxlY3RlZFwiXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe0ZbYV09bmV3IEQoYSwzLCEwLGEsbnVsbCwhMSl9KTtbXCJjYXB0dXJlXCIsXCJkb3dubG9hZFwiXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe0ZbYV09bmV3IEQoYSw0LCExLGEsbnVsbCwhMSl9KTtbXCJjb2xzXCIsXCJyb3dzXCIsXCJzaXplXCIsXCJzcGFuXCJdLmZvckVhY2goZnVuY3Rpb24oYSl7RlthXT1uZXcgRChhLDYsITEsYSxudWxsLCExKX0pO1tcInJvd1NwYW5cIixcInN0YXJ0XCJdLmZvckVhY2goZnVuY3Rpb24oYSl7RlthXT1uZXcgRChhLDUsITEsYS50b0xvd2VyQ2FzZSgpLG51bGwsITEpfSk7dmFyIHhjPS9bXFwtOl0oW2Etel0pL2c7ZnVuY3Rpb24geWMoYSl7cmV0dXJuIGFbMV0udG9VcHBlckNhc2UoKX1cblwiYWNjZW50LWhlaWdodCBhbGlnbm1lbnQtYmFzZWxpbmUgYXJhYmljLWZvcm0gYmFzZWxpbmUtc2hpZnQgY2FwLWhlaWdodCBjbGlwLXBhdGggY2xpcC1ydWxlIGNvbG9yLWludGVycG9sYXRpb24gY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzIGNvbG9yLXByb2ZpbGUgY29sb3ItcmVuZGVyaW5nIGRvbWluYW50LWJhc2VsaW5lIGVuYWJsZS1iYWNrZ3JvdW5kIGZpbGwtb3BhY2l0eSBmaWxsLXJ1bGUgZmxvb2QtY29sb3IgZmxvb2Qtb3BhY2l0eSBmb250LWZhbWlseSBmb250LXNpemUgZm9udC1zaXplLWFkanVzdCBmb250LXN0cmV0Y2ggZm9udC1zdHlsZSBmb250LXZhcmlhbnQgZm9udC13ZWlnaHQgZ2x5cGgtbmFtZSBnbHlwaC1vcmllbnRhdGlvbi1ob3Jpem9udGFsIGdseXBoLW9yaWVudGF0aW9uLXZlcnRpY2FsIGhvcml6LWFkdi14IGhvcml6LW9yaWdpbi14IGltYWdlLXJlbmRlcmluZyBsZXR0ZXItc3BhY2luZyBsaWdodGluZy1jb2xvciBtYXJrZXItZW5kIG1hcmtlci1taWQgbWFya2VyLXN0YXJ0IG92ZXJsaW5lLXBvc2l0aW9uIG92ZXJsaW5lLXRoaWNrbmVzcyBwYWludC1vcmRlciBwYW5vc2UtMSBwb2ludGVyLWV2ZW50cyByZW5kZXJpbmctaW50ZW50IHNoYXBlLXJlbmRlcmluZyBzdG9wLWNvbG9yIHN0b3Atb3BhY2l0eSBzdHJpa2V0aHJvdWdoLXBvc2l0aW9uIHN0cmlrZXRocm91Z2gtdGhpY2tuZXNzIHN0cm9rZS1kYXNoYXJyYXkgc3Ryb2tlLWRhc2hvZmZzZXQgc3Ryb2tlLWxpbmVjYXAgc3Ryb2tlLWxpbmVqb2luIHN0cm9rZS1taXRlcmxpbWl0IHN0cm9rZS1vcGFjaXR5IHN0cm9rZS13aWR0aCB0ZXh0LWFuY2hvciB0ZXh0LWRlY29yYXRpb24gdGV4dC1yZW5kZXJpbmcgdW5kZXJsaW5lLXBvc2l0aW9uIHVuZGVybGluZS10aGlja25lc3MgdW5pY29kZS1iaWRpIHVuaWNvZGUtcmFuZ2UgdW5pdHMtcGVyLWVtIHYtYWxwaGFiZXRpYyB2LWhhbmdpbmcgdi1pZGVvZ3JhcGhpYyB2LW1hdGhlbWF0aWNhbCB2ZWN0b3ItZWZmZWN0IHZlcnQtYWR2LXkgdmVydC1vcmlnaW4teCB2ZXJ0LW9yaWdpbi15IHdvcmQtc3BhY2luZyB3cml0aW5nLW1vZGUgeG1sbnM6eGxpbmsgeC1oZWlnaHRcIi5zcGxpdChcIiBcIikuZm9yRWFjaChmdW5jdGlvbihhKXt2YXIgYj1hLnJlcGxhY2UoeGMsXG55Yyk7RltiXT1uZXcgRChiLDEsITEsYSxudWxsLCExKX0pO1wieGxpbms6YWN0dWF0ZSB4bGluazphcmNyb2xlIHhsaW5rOnJvbGUgeGxpbms6c2hvdyB4bGluazp0aXRsZSB4bGluazp0eXBlXCIuc3BsaXQoXCIgXCIpLmZvckVhY2goZnVuY3Rpb24oYSl7dmFyIGI9YS5yZXBsYWNlKHhjLHljKTtGW2JdPW5ldyBEKGIsMSwhMSxhLFwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiLCExKX0pO1tcInhtbDpiYXNlXCIsXCJ4bWw6bGFuZ1wiLFwieG1sOnNwYWNlXCJdLmZvckVhY2goZnVuY3Rpb24oYSl7dmFyIGI9YS5yZXBsYWNlKHhjLHljKTtGW2JdPW5ldyBEKGIsMSwhMSxhLFwiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlXCIsITEpfSk7W1widGFiSW5kZXhcIixcImNyb3NzT3JpZ2luXCJdLmZvckVhY2goZnVuY3Rpb24oYSl7RlthXT1uZXcgRChhLDEsITEsYS50b0xvd2VyQ2FzZSgpLG51bGwsITEpfSk7XG5GLnhsaW5rSHJlZj1uZXcgRChcInhsaW5rSHJlZlwiLDEsITEsXCJ4bGluazpocmVmXCIsXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIsITApO1tcInNyY1wiLFwiaHJlZlwiLFwiYWN0aW9uXCIsXCJmb3JtQWN0aW9uXCJdLmZvckVhY2goZnVuY3Rpb24oYSl7RlthXT1uZXcgRChhLDEsITEsYS50b0xvd2VyQ2FzZSgpLG51bGwsITApfSk7XG5mdW5jdGlvbiB6YyhhLGIsYyxkKXt2YXIgZT1GLmhhc093blByb3BlcnR5KGIpP0ZbYl06bnVsbDt2YXIgZj1udWxsIT09ZT8wPT09ZS50eXBlOmQ/ITE6ISgyPGIubGVuZ3RoKXx8XCJvXCIhPT1iWzBdJiZcIk9cIiE9PWJbMF18fFwiblwiIT09YlsxXSYmXCJOXCIhPT1iWzFdPyExOiEwO2Z8fCh3YyhiLGMsZSxkKSYmKGM9bnVsbCksZHx8bnVsbD09PWU/dWMoYikmJihudWxsPT09Yz9hLnJlbW92ZUF0dHJpYnV0ZShiKTphLnNldEF0dHJpYnV0ZShiLFwiXCIrYykpOmUubXVzdFVzZVByb3BlcnR5P2FbZS5wcm9wZXJ0eU5hbWVdPW51bGw9PT1jPzM9PT1lLnR5cGU/ITE6XCJcIjpjOihiPWUuYXR0cmlidXRlTmFtZSxkPWUuYXR0cmlidXRlTmFtZXNwYWNlLG51bGw9PT1jP2EucmVtb3ZlQXR0cmlidXRlKGIpOihlPWUudHlwZSxjPTM9PT1lfHw0PT09ZSYmITA9PT1jP1wiXCI6XCJcIitjLGQ/YS5zZXRBdHRyaWJ1dGVOUyhkLGIsYyk6YS5zZXRBdHRyaWJ1dGUoYixjKSkpKX1cbmZ1bmN0aW9uIEFjKGEpe3N3aXRjaCh0eXBlb2YgYSl7Y2FzZSBcImJvb2xlYW5cIjpjYXNlIFwibnVtYmVyXCI6Y2FzZSBcIm9iamVjdFwiOmNhc2UgXCJzdHJpbmdcIjpjYXNlIFwidW5kZWZpbmVkXCI6cmV0dXJuIGE7ZGVmYXVsdDpyZXR1cm5cIlwifX1mdW5jdGlvbiBCYyhhLGIpe3ZhciBjPWIuY2hlY2tlZDtyZXR1cm4gbSh7fSxiLHtkZWZhdWx0Q2hlY2tlZDp2b2lkIDAsZGVmYXVsdFZhbHVlOnZvaWQgMCx2YWx1ZTp2b2lkIDAsY2hlY2tlZDpudWxsIT1jP2M6YS5fd3JhcHBlclN0YXRlLmluaXRpYWxDaGVja2VkfSl9XG5mdW5jdGlvbiBDYyhhLGIpe3ZhciBjPW51bGw9PWIuZGVmYXVsdFZhbHVlP1wiXCI6Yi5kZWZhdWx0VmFsdWUsZD1udWxsIT1iLmNoZWNrZWQ/Yi5jaGVja2VkOmIuZGVmYXVsdENoZWNrZWQ7Yz1BYyhudWxsIT1iLnZhbHVlP2IudmFsdWU6Yyk7YS5fd3JhcHBlclN0YXRlPXtpbml0aWFsQ2hlY2tlZDpkLGluaXRpYWxWYWx1ZTpjLGNvbnRyb2xsZWQ6XCJjaGVja2JveFwiPT09Yi50eXBlfHxcInJhZGlvXCI9PT1iLnR5cGU/bnVsbCE9Yi5jaGVja2VkOm51bGwhPWIudmFsdWV9fWZ1bmN0aW9uIERjKGEsYil7Yj1iLmNoZWNrZWQ7bnVsbCE9YiYmemMoYSxcImNoZWNrZWRcIixiLCExKX1cbmZ1bmN0aW9uIEVjKGEsYil7RGMoYSxiKTt2YXIgYz1BYyhiLnZhbHVlKSxkPWIudHlwZTtpZihudWxsIT1jKWlmKFwibnVtYmVyXCI9PT1kKXtpZigwPT09YyYmXCJcIj09PWEudmFsdWV8fGEudmFsdWUhPWMpYS52YWx1ZT1cIlwiK2N9ZWxzZSBhLnZhbHVlIT09XCJcIitjJiYoYS52YWx1ZT1cIlwiK2MpO2Vsc2UgaWYoXCJzdWJtaXRcIj09PWR8fFwicmVzZXRcIj09PWQpe2EucmVtb3ZlQXR0cmlidXRlKFwidmFsdWVcIik7cmV0dXJufWIuaGFzT3duUHJvcGVydHkoXCJ2YWx1ZVwiKT9GYyhhLGIudHlwZSxjKTpiLmhhc093blByb3BlcnR5KFwiZGVmYXVsdFZhbHVlXCIpJiZGYyhhLGIudHlwZSxBYyhiLmRlZmF1bHRWYWx1ZSkpO251bGw9PWIuY2hlY2tlZCYmbnVsbCE9Yi5kZWZhdWx0Q2hlY2tlZCYmKGEuZGVmYXVsdENoZWNrZWQ9ISFiLmRlZmF1bHRDaGVja2VkKX1cbmZ1bmN0aW9uIEdjKGEsYixjKXtpZihiLmhhc093blByb3BlcnR5KFwidmFsdWVcIil8fGIuaGFzT3duUHJvcGVydHkoXCJkZWZhdWx0VmFsdWVcIikpe3ZhciBkPWIudHlwZTtpZighKFwic3VibWl0XCIhPT1kJiZcInJlc2V0XCIhPT1kfHx2b2lkIDAhPT1iLnZhbHVlJiZudWxsIT09Yi52YWx1ZSkpcmV0dXJuO2I9XCJcIithLl93cmFwcGVyU3RhdGUuaW5pdGlhbFZhbHVlO2N8fGI9PT1hLnZhbHVlfHwoYS52YWx1ZT1iKTthLmRlZmF1bHRWYWx1ZT1ifWM9YS5uYW1lO1wiXCIhPT1jJiYoYS5uYW1lPVwiXCIpO2EuZGVmYXVsdENoZWNrZWQ9IWEuZGVmYXVsdENoZWNrZWQ7YS5kZWZhdWx0Q2hlY2tlZD0hIWEuX3dyYXBwZXJTdGF0ZS5pbml0aWFsQ2hlY2tlZDtcIlwiIT09YyYmKGEubmFtZT1jKX1cbmZ1bmN0aW9uIEZjKGEsYixjKXtpZihcIm51bWJlclwiIT09Ynx8YS5vd25lckRvY3VtZW50LmFjdGl2ZUVsZW1lbnQhPT1hKW51bGw9PWM/YS5kZWZhdWx0VmFsdWU9XCJcIithLl93cmFwcGVyU3RhdGUuaW5pdGlhbFZhbHVlOmEuZGVmYXVsdFZhbHVlIT09XCJcIitjJiYoYS5kZWZhdWx0VmFsdWU9XCJcIitjKX12YXIgSGM9e2NoYW5nZTp7cGhhc2VkUmVnaXN0cmF0aW9uTmFtZXM6e2J1YmJsZWQ6XCJvbkNoYW5nZVwiLGNhcHR1cmVkOlwib25DaGFuZ2VDYXB0dXJlXCJ9LGRlcGVuZGVuY2llczpcImJsdXIgY2hhbmdlIGNsaWNrIGZvY3VzIGlucHV0IGtleWRvd24ga2V5dXAgc2VsZWN0aW9uY2hhbmdlXCIuc3BsaXQoXCIgXCIpfX07ZnVuY3Rpb24gSWMoYSxiLGMpe2E9eS5nZXRQb29sZWQoSGMuY2hhbmdlLGEsYixjKTthLnR5cGU9XCJjaGFuZ2VcIjtIYihjKTtRYShhKTtyZXR1cm4gYX12YXIgSmM9bnVsbCxLYz1udWxsO2Z1bmN0aW9uIExjKGEpe0JhKGEpfVxuZnVuY3Rpb24gTWMoYSl7dmFyIGI9SmEoYSk7aWYoV2IoYikpcmV0dXJuIGF9ZnVuY3Rpb24gTmMoYSxiKXtpZihcImNoYW5nZVwiPT09YSlyZXR1cm4gYn12YXIgT2M9ITE7UmEmJihPYz1TYihcImlucHV0XCIpJiYoIWRvY3VtZW50LmRvY3VtZW50TW9kZXx8OTxkb2N1bWVudC5kb2N1bWVudE1vZGUpKTtmdW5jdGlvbiBQYygpe0pjJiYoSmMuZGV0YWNoRXZlbnQoXCJvbnByb3BlcnR5Y2hhbmdlXCIsUWMpLEtjPUpjPW51bGwpfWZ1bmN0aW9uIFFjKGEpe2lmKFwidmFsdWVcIj09PWEucHJvcGVydHlOYW1lJiZNYyhLYykpaWYoYT1JYyhLYyxhLFJiKGEpKSxOYilCYShhKTtlbHNle05iPSEwO3RyeXtKYihMYyxhKX1maW5hbGx5e05iPSExLE9iKCl9fX1mdW5jdGlvbiBSYyhhLGIsYyl7XCJmb2N1c1wiPT09YT8oUGMoKSxKYz1iLEtjPWMsSmMuYXR0YWNoRXZlbnQoXCJvbnByb3BlcnR5Y2hhbmdlXCIsUWMpKTpcImJsdXJcIj09PWEmJlBjKCl9XG5mdW5jdGlvbiBTYyhhKXtpZihcInNlbGVjdGlvbmNoYW5nZVwiPT09YXx8XCJrZXl1cFwiPT09YXx8XCJrZXlkb3duXCI9PT1hKXJldHVybiBNYyhLYyl9ZnVuY3Rpb24gVGMoYSxiKXtpZihcImNsaWNrXCI9PT1hKXJldHVybiBNYyhiKX1mdW5jdGlvbiBVYyhhLGIpe2lmKFwiaW5wdXRcIj09PWF8fFwiY2hhbmdlXCI9PT1hKXJldHVybiBNYyhiKX1cbnZhciBWYz17ZXZlbnRUeXBlczpIYyxfaXNJbnB1dEV2ZW50U3VwcG9ydGVkOk9jLGV4dHJhY3RFdmVudHM6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9Yj9KYShiKTp3aW5kb3csZj12b2lkIDAsaD12b2lkIDAsZz1lLm5vZGVOYW1lJiZlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7XCJzZWxlY3RcIj09PWd8fFwiaW5wdXRcIj09PWcmJlwiZmlsZVwiPT09ZS50eXBlP2Y9TmM6UWIoZSk/T2M/Zj1VYzooZj1TYyxoPVJjKTooZz1lLm5vZGVOYW1lKSYmXCJpbnB1dFwiPT09Zy50b0xvd2VyQ2FzZSgpJiYoXCJjaGVja2JveFwiPT09ZS50eXBlfHxcInJhZGlvXCI9PT1lLnR5cGUpJiYoZj1UYyk7aWYoZiYmKGY9ZihhLGIpKSlyZXR1cm4gSWMoZixjLGQpO2gmJmgoYSxlLGIpO1wiYmx1clwiPT09YSYmKGE9ZS5fd3JhcHBlclN0YXRlKSYmYS5jb250cm9sbGVkJiZcIm51bWJlclwiPT09ZS50eXBlJiZGYyhlLFwibnVtYmVyXCIsZS52YWx1ZSl9fSxXYz15LmV4dGVuZCh7dmlldzpudWxsLGRldGFpbDpudWxsfSksWGM9e0FsdDpcImFsdEtleVwiLFxuQ29udHJvbDpcImN0cmxLZXlcIixNZXRhOlwibWV0YUtleVwiLFNoaWZ0Olwic2hpZnRLZXlcIn07ZnVuY3Rpb24gWWMoYSl7dmFyIGI9dGhpcy5uYXRpdmVFdmVudDtyZXR1cm4gYi5nZXRNb2RpZmllclN0YXRlP2IuZ2V0TW9kaWZpZXJTdGF0ZShhKTooYT1YY1thXSk/ISFiW2FdOiExfWZ1bmN0aW9uIFpjKCl7cmV0dXJuIFljfVxudmFyICRjPTAsYWQ9MCxiZD0hMSxjZD0hMSxkZD1XYy5leHRlbmQoe3NjcmVlblg6bnVsbCxzY3JlZW5ZOm51bGwsY2xpZW50WDpudWxsLGNsaWVudFk6bnVsbCxwYWdlWDpudWxsLHBhZ2VZOm51bGwsY3RybEtleTpudWxsLHNoaWZ0S2V5Om51bGwsYWx0S2V5Om51bGwsbWV0YUtleTpudWxsLGdldE1vZGlmaWVyU3RhdGU6WmMsYnV0dG9uOm51bGwsYnV0dG9uczpudWxsLHJlbGF0ZWRUYXJnZXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGEucmVsYXRlZFRhcmdldHx8KGEuZnJvbUVsZW1lbnQ9PT1hLnNyY0VsZW1lbnQ/YS50b0VsZW1lbnQ6YS5mcm9tRWxlbWVudCl9LG1vdmVtZW50WDpmdW5jdGlvbihhKXtpZihcIm1vdmVtZW50WFwiaW4gYSlyZXR1cm4gYS5tb3ZlbWVudFg7dmFyIGI9JGM7JGM9YS5zY3JlZW5YO3JldHVybiBiZD9cIm1vdXNlbW92ZVwiPT09YS50eXBlP2Euc2NyZWVuWC1iOjA6KGJkPSEwLDApfSxtb3ZlbWVudFk6ZnVuY3Rpb24oYSl7aWYoXCJtb3ZlbWVudFlcImluIGEpcmV0dXJuIGEubW92ZW1lbnRZO1xudmFyIGI9YWQ7YWQ9YS5zY3JlZW5ZO3JldHVybiBjZD9cIm1vdXNlbW92ZVwiPT09YS50eXBlP2Euc2NyZWVuWS1iOjA6KGNkPSEwLDApfX0pLGVkPWRkLmV4dGVuZCh7cG9pbnRlcklkOm51bGwsd2lkdGg6bnVsbCxoZWlnaHQ6bnVsbCxwcmVzc3VyZTpudWxsLHRhbmdlbnRpYWxQcmVzc3VyZTpudWxsLHRpbHRYOm51bGwsdGlsdFk6bnVsbCx0d2lzdDpudWxsLHBvaW50ZXJUeXBlOm51bGwsaXNQcmltYXJ5Om51bGx9KSxmZD17bW91c2VFbnRlcjp7cmVnaXN0cmF0aW9uTmFtZTpcIm9uTW91c2VFbnRlclwiLGRlcGVuZGVuY2llczpbXCJtb3VzZW91dFwiLFwibW91c2VvdmVyXCJdfSxtb3VzZUxlYXZlOntyZWdpc3RyYXRpb25OYW1lOlwib25Nb3VzZUxlYXZlXCIsZGVwZW5kZW5jaWVzOltcIm1vdXNlb3V0XCIsXCJtb3VzZW92ZXJcIl19LHBvaW50ZXJFbnRlcjp7cmVnaXN0cmF0aW9uTmFtZTpcIm9uUG9pbnRlckVudGVyXCIsZGVwZW5kZW5jaWVzOltcInBvaW50ZXJvdXRcIixcInBvaW50ZXJvdmVyXCJdfSxwb2ludGVyTGVhdmU6e3JlZ2lzdHJhdGlvbk5hbWU6XCJvblBvaW50ZXJMZWF2ZVwiLFxuZGVwZW5kZW5jaWVzOltcInBvaW50ZXJvdXRcIixcInBvaW50ZXJvdmVyXCJdfX0sZ2Q9e2V2ZW50VHlwZXM6ZmQsZXh0cmFjdEV2ZW50czpmdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1cIm1vdXNlb3ZlclwiPT09YXx8XCJwb2ludGVyb3ZlclwiPT09YSxmPVwibW91c2VvdXRcIj09PWF8fFwicG9pbnRlcm91dFwiPT09YTtpZihlJiYoYy5yZWxhdGVkVGFyZ2V0fHxjLmZyb21FbGVtZW50KXx8IWYmJiFlKXJldHVybiBudWxsO2U9ZC53aW5kb3c9PT1kP2Q6KGU9ZC5vd25lckRvY3VtZW50KT9lLmRlZmF1bHRWaWV3fHxlLnBhcmVudFdpbmRvdzp3aW5kb3c7Zj8oZj1iLGI9KGI9Yy5yZWxhdGVkVGFyZ2V0fHxjLnRvRWxlbWVudCk/SGEoYik6bnVsbCk6Zj1udWxsO2lmKGY9PT1iKXJldHVybiBudWxsO3ZhciBoPXZvaWQgMCxnPXZvaWQgMCxrPXZvaWQgMCxsPXZvaWQgMDtpZihcIm1vdXNlb3V0XCI9PT1hfHxcIm1vdXNlb3ZlclwiPT09YSloPWRkLGc9ZmQubW91c2VMZWF2ZSxrPWZkLm1vdXNlRW50ZXIsbD1cIm1vdXNlXCI7XG5lbHNlIGlmKFwicG9pbnRlcm91dFwiPT09YXx8XCJwb2ludGVyb3ZlclwiPT09YSloPWVkLGc9ZmQucG9pbnRlckxlYXZlLGs9ZmQucG9pbnRlckVudGVyLGw9XCJwb2ludGVyXCI7dmFyIG49bnVsbD09Zj9lOkphKGYpO2U9bnVsbD09Yj9lOkphKGIpO2E9aC5nZXRQb29sZWQoZyxmLGMsZCk7YS50eXBlPWwrXCJsZWF2ZVwiO2EudGFyZ2V0PW47YS5yZWxhdGVkVGFyZ2V0PWU7Yz1oLmdldFBvb2xlZChrLGIsYyxkKTtjLnR5cGU9bCtcImVudGVyXCI7Yy50YXJnZXQ9ZTtjLnJlbGF0ZWRUYXJnZXQ9bjtkPWI7aWYoZiYmZClhOntiPWY7ZT1kO2w9MDtmb3IoaD1iO2g7aD1MYShoKSlsKys7aD0wO2ZvcihrPWU7aztrPUxhKGspKWgrKztmb3IoOzA8bC1oOyliPUxhKGIpLGwtLTtmb3IoOzA8aC1sOyllPUxhKGUpLGgtLTtmb3IoO2wtLTspe2lmKGI9PT1lfHxiPT09ZS5hbHRlcm5hdGUpYnJlYWsgYTtiPUxhKGIpO2U9TGEoZSl9Yj1udWxsfWVsc2UgYj1udWxsO2U9Yjtmb3IoYj1bXTtmJiZmIT09ZTspe2w9XG5mLmFsdGVybmF0ZTtpZihudWxsIT09bCYmbD09PWUpYnJlYWs7Yi5wdXNoKGYpO2Y9TGEoZil9Zm9yKGY9W107ZCYmZCE9PWU7KXtsPWQuYWx0ZXJuYXRlO2lmKG51bGwhPT1sJiZsPT09ZSlicmVhaztmLnB1c2goZCk7ZD1MYShkKX1mb3IoZD0wO2Q8Yi5sZW5ndGg7ZCsrKU9hKGJbZF0sXCJidWJibGVkXCIsYSk7Zm9yKGQ9Zi5sZW5ndGg7MDxkLS07KU9hKGZbZF0sXCJjYXB0dXJlZFwiLGMpO3JldHVyblthLGNdfX07ZnVuY3Rpb24gaGQoYSxiKXtyZXR1cm4gYT09PWImJigwIT09YXx8MS9hPT09MS9iKXx8YSE9PWEmJmIhPT1ifXZhciBpZD1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xuZnVuY3Rpb24gamQoYSxiKXtpZihoZChhLGIpKXJldHVybiEwO2lmKFwib2JqZWN0XCIhPT10eXBlb2YgYXx8bnVsbD09PWF8fFwib2JqZWN0XCIhPT10eXBlb2YgYnx8bnVsbD09PWIpcmV0dXJuITE7dmFyIGM9T2JqZWN0LmtleXMoYSksZD1PYmplY3Qua2V5cyhiKTtpZihjLmxlbmd0aCE9PWQubGVuZ3RoKXJldHVybiExO2ZvcihkPTA7ZDxjLmxlbmd0aDtkKyspaWYoIWlkLmNhbGwoYixjW2RdKXx8IWhkKGFbY1tkXV0sYltjW2RdXSkpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24ga2QoYSxiKXtyZXR1cm57cmVzcG9uZGVyOmEscHJvcHM6Yn19bmV3IE1hcDtuZXcgTWFwO25ldyBTZXQ7bmV3IE1hcDtcbmZ1bmN0aW9uIGxkKGEpe3ZhciBiPWE7aWYoYS5hbHRlcm5hdGUpZm9yKDtiLnJldHVybjspYj1iLnJldHVybjtlbHNle2lmKDAhPT0oYi5lZmZlY3RUYWcmMikpcmV0dXJuIDE7Zm9yKDtiLnJldHVybjspaWYoYj1iLnJldHVybiwwIT09KGIuZWZmZWN0VGFnJjIpKXJldHVybiAxfXJldHVybiAzPT09Yi50YWc/MjozfWZ1bmN0aW9uIG9kKGEpe2lmKDIhPT1sZChhKSl0aHJvdyB0KEVycm9yKDE4OCkpO31cbmZ1bmN0aW9uIHBkKGEpe3ZhciBiPWEuYWx0ZXJuYXRlO2lmKCFiKXtiPWxkKGEpO2lmKDM9PT1iKXRocm93IHQoRXJyb3IoMTg4KSk7cmV0dXJuIDE9PT1iP251bGw6YX1mb3IodmFyIGM9YSxkPWI7Oyl7dmFyIGU9Yy5yZXR1cm47aWYobnVsbD09PWUpYnJlYWs7dmFyIGY9ZS5hbHRlcm5hdGU7aWYobnVsbD09PWYpe2Q9ZS5yZXR1cm47aWYobnVsbCE9PWQpe2M9ZDtjb250aW51ZX1icmVha31pZihlLmNoaWxkPT09Zi5jaGlsZCl7Zm9yKGY9ZS5jaGlsZDtmOyl7aWYoZj09PWMpcmV0dXJuIG9kKGUpLGE7aWYoZj09PWQpcmV0dXJuIG9kKGUpLGI7Zj1mLnNpYmxpbmd9dGhyb3cgdChFcnJvcigxODgpKTt9aWYoYy5yZXR1cm4hPT1kLnJldHVybiljPWUsZD1mO2Vsc2V7Zm9yKHZhciBoPSExLGc9ZS5jaGlsZDtnOyl7aWYoZz09PWMpe2g9ITA7Yz1lO2Q9ZjticmVha31pZihnPT09ZCl7aD0hMDtkPWU7Yz1mO2JyZWFrfWc9Zy5zaWJsaW5nfWlmKCFoKXtmb3IoZz1mLmNoaWxkO2c7KXtpZihnPT09XG5jKXtoPSEwO2M9ZjtkPWU7YnJlYWt9aWYoZz09PWQpe2g9ITA7ZD1mO2M9ZTticmVha31nPWcuc2libGluZ31pZighaCl0aHJvdyB0KEVycm9yKDE4OSkpO319aWYoYy5hbHRlcm5hdGUhPT1kKXRocm93IHQoRXJyb3IoMTkwKSk7fWlmKDMhPT1jLnRhZyl0aHJvdyB0KEVycm9yKDE4OCkpO3JldHVybiBjLnN0YXRlTm9kZS5jdXJyZW50PT09Yz9hOmJ9ZnVuY3Rpb24gcWQoYSl7YT1wZChhKTtpZighYSlyZXR1cm4gbnVsbDtmb3IodmFyIGI9YTs7KXtpZig1PT09Yi50YWd8fDY9PT1iLnRhZylyZXR1cm4gYjtpZihiLmNoaWxkKWIuY2hpbGQucmV0dXJuPWIsYj1iLmNoaWxkO2Vsc2V7aWYoYj09PWEpYnJlYWs7Zm9yKDshYi5zaWJsaW5nOyl7aWYoIWIucmV0dXJufHxiLnJldHVybj09PWEpcmV0dXJuIG51bGw7Yj1iLnJldHVybn1iLnNpYmxpbmcucmV0dXJuPWIucmV0dXJuO2I9Yi5zaWJsaW5nfX1yZXR1cm4gbnVsbH1cbnZhciByZD15LmV4dGVuZCh7YW5pbWF0aW9uTmFtZTpudWxsLGVsYXBzZWRUaW1lOm51bGwscHNldWRvRWxlbWVudDpudWxsfSksc2Q9eS5leHRlbmQoe2NsaXBib2FyZERhdGE6ZnVuY3Rpb24oYSl7cmV0dXJuXCJjbGlwYm9hcmREYXRhXCJpbiBhP2EuY2xpcGJvYXJkRGF0YTp3aW5kb3cuY2xpcGJvYXJkRGF0YX19KSx0ZD1XYy5leHRlbmQoe3JlbGF0ZWRUYXJnZXQ6bnVsbH0pO2Z1bmN0aW9uIHVkKGEpe3ZhciBiPWEua2V5Q29kZTtcImNoYXJDb2RlXCJpbiBhPyhhPWEuY2hhckNvZGUsMD09PWEmJjEzPT09YiYmKGE9MTMpKTphPWI7MTA9PT1hJiYoYT0xMyk7cmV0dXJuIDMyPD1hfHwxMz09PWE/YTowfVxudmFyIHZkPXtFc2M6XCJFc2NhcGVcIixTcGFjZWJhcjpcIiBcIixMZWZ0OlwiQXJyb3dMZWZ0XCIsVXA6XCJBcnJvd1VwXCIsUmlnaHQ6XCJBcnJvd1JpZ2h0XCIsRG93bjpcIkFycm93RG93blwiLERlbDpcIkRlbGV0ZVwiLFdpbjpcIk9TXCIsTWVudTpcIkNvbnRleHRNZW51XCIsQXBwczpcIkNvbnRleHRNZW51XCIsU2Nyb2xsOlwiU2Nyb2xsTG9ja1wiLE1velByaW50YWJsZUtleTpcIlVuaWRlbnRpZmllZFwifSx3ZD17ODpcIkJhY2tzcGFjZVwiLDk6XCJUYWJcIiwxMjpcIkNsZWFyXCIsMTM6XCJFbnRlclwiLDE2OlwiU2hpZnRcIiwxNzpcIkNvbnRyb2xcIiwxODpcIkFsdFwiLDE5OlwiUGF1c2VcIiwyMDpcIkNhcHNMb2NrXCIsMjc6XCJFc2NhcGVcIiwzMjpcIiBcIiwzMzpcIlBhZ2VVcFwiLDM0OlwiUGFnZURvd25cIiwzNTpcIkVuZFwiLDM2OlwiSG9tZVwiLDM3OlwiQXJyb3dMZWZ0XCIsMzg6XCJBcnJvd1VwXCIsMzk6XCJBcnJvd1JpZ2h0XCIsNDA6XCJBcnJvd0Rvd25cIiw0NTpcIkluc2VydFwiLDQ2OlwiRGVsZXRlXCIsMTEyOlwiRjFcIiwxMTM6XCJGMlwiLDExNDpcIkYzXCIsMTE1OlwiRjRcIixcbjExNjpcIkY1XCIsMTE3OlwiRjZcIiwxMTg6XCJGN1wiLDExOTpcIkY4XCIsMTIwOlwiRjlcIiwxMjE6XCJGMTBcIiwxMjI6XCJGMTFcIiwxMjM6XCJGMTJcIiwxNDQ6XCJOdW1Mb2NrXCIsMTQ1OlwiU2Nyb2xsTG9ja1wiLDIyNDpcIk1ldGFcIn0seGQ9V2MuZXh0ZW5kKHtrZXk6ZnVuY3Rpb24oYSl7aWYoYS5rZXkpe3ZhciBiPXZkW2Eua2V5XXx8YS5rZXk7aWYoXCJVbmlkZW50aWZpZWRcIiE9PWIpcmV0dXJuIGJ9cmV0dXJuXCJrZXlwcmVzc1wiPT09YS50eXBlPyhhPXVkKGEpLDEzPT09YT9cIkVudGVyXCI6U3RyaW5nLmZyb21DaGFyQ29kZShhKSk6XCJrZXlkb3duXCI9PT1hLnR5cGV8fFwia2V5dXBcIj09PWEudHlwZT93ZFthLmtleUNvZGVdfHxcIlVuaWRlbnRpZmllZFwiOlwiXCJ9LGxvY2F0aW9uOm51bGwsY3RybEtleTpudWxsLHNoaWZ0S2V5Om51bGwsYWx0S2V5Om51bGwsbWV0YUtleTpudWxsLHJlcGVhdDpudWxsLGxvY2FsZTpudWxsLGdldE1vZGlmaWVyU3RhdGU6WmMsY2hhckNvZGU6ZnVuY3Rpb24oYSl7cmV0dXJuXCJrZXlwcmVzc1wiPT09XG5hLnR5cGU/dWQoYSk6MH0sa2V5Q29kZTpmdW5jdGlvbihhKXtyZXR1cm5cImtleWRvd25cIj09PWEudHlwZXx8XCJrZXl1cFwiPT09YS50eXBlP2Eua2V5Q29kZTowfSx3aGljaDpmdW5jdGlvbihhKXtyZXR1cm5cImtleXByZXNzXCI9PT1hLnR5cGU/dWQoYSk6XCJrZXlkb3duXCI9PT1hLnR5cGV8fFwia2V5dXBcIj09PWEudHlwZT9hLmtleUNvZGU6MH19KSx5ZD1kZC5leHRlbmQoe2RhdGFUcmFuc2ZlcjpudWxsfSksemQ9V2MuZXh0ZW5kKHt0b3VjaGVzOm51bGwsdGFyZ2V0VG91Y2hlczpudWxsLGNoYW5nZWRUb3VjaGVzOm51bGwsYWx0S2V5Om51bGwsbWV0YUtleTpudWxsLGN0cmxLZXk6bnVsbCxzaGlmdEtleTpudWxsLGdldE1vZGlmaWVyU3RhdGU6WmN9KSxBZD15LmV4dGVuZCh7cHJvcGVydHlOYW1lOm51bGwsZWxhcHNlZFRpbWU6bnVsbCxwc2V1ZG9FbGVtZW50Om51bGx9KSxCZD1kZC5leHRlbmQoe2RlbHRhWDpmdW5jdGlvbihhKXtyZXR1cm5cImRlbHRhWFwiaW4gYT9hLmRlbHRhWDpcIndoZWVsRGVsdGFYXCJpblxuYT8tYS53aGVlbERlbHRhWDowfSxkZWx0YVk6ZnVuY3Rpb24oYSl7cmV0dXJuXCJkZWx0YVlcImluIGE/YS5kZWx0YVk6XCJ3aGVlbERlbHRhWVwiaW4gYT8tYS53aGVlbERlbHRhWTpcIndoZWVsRGVsdGFcImluIGE/LWEud2hlZWxEZWx0YTowfSxkZWx0YVo6bnVsbCxkZWx0YU1vZGU6bnVsbH0pLENkPVtbXCJibHVyXCIsXCJibHVyXCIsMF0sW1wiY2FuY2VsXCIsXCJjYW5jZWxcIiwwXSxbXCJjbGlja1wiLFwiY2xpY2tcIiwwXSxbXCJjbG9zZVwiLFwiY2xvc2VcIiwwXSxbXCJjb250ZXh0bWVudVwiLFwiY29udGV4dE1lbnVcIiwwXSxbXCJjb3B5XCIsXCJjb3B5XCIsMF0sW1wiY3V0XCIsXCJjdXRcIiwwXSxbXCJhdXhjbGlja1wiLFwiYXV4Q2xpY2tcIiwwXSxbXCJkYmxjbGlja1wiLFwiZG91YmxlQ2xpY2tcIiwwXSxbXCJkcmFnZW5kXCIsXCJkcmFnRW5kXCIsMF0sW1wiZHJhZ3N0YXJ0XCIsXCJkcmFnU3RhcnRcIiwwXSxbXCJkcm9wXCIsXCJkcm9wXCIsMF0sW1wiZm9jdXNcIixcImZvY3VzXCIsMF0sW1wiaW5wdXRcIixcImlucHV0XCIsMF0sW1wiaW52YWxpZFwiLFwiaW52YWxpZFwiLDBdLFxuW1wia2V5ZG93blwiLFwia2V5RG93blwiLDBdLFtcImtleXByZXNzXCIsXCJrZXlQcmVzc1wiLDBdLFtcImtleXVwXCIsXCJrZXlVcFwiLDBdLFtcIm1vdXNlZG93blwiLFwibW91c2VEb3duXCIsMF0sW1wibW91c2V1cFwiLFwibW91c2VVcFwiLDBdLFtcInBhc3RlXCIsXCJwYXN0ZVwiLDBdLFtcInBhdXNlXCIsXCJwYXVzZVwiLDBdLFtcInBsYXlcIixcInBsYXlcIiwwXSxbXCJwb2ludGVyY2FuY2VsXCIsXCJwb2ludGVyQ2FuY2VsXCIsMF0sW1wicG9pbnRlcmRvd25cIixcInBvaW50ZXJEb3duXCIsMF0sW1wicG9pbnRlcnVwXCIsXCJwb2ludGVyVXBcIiwwXSxbXCJyYXRlY2hhbmdlXCIsXCJyYXRlQ2hhbmdlXCIsMF0sW1wicmVzZXRcIixcInJlc2V0XCIsMF0sW1wic2Vla2VkXCIsXCJzZWVrZWRcIiwwXSxbXCJzdWJtaXRcIixcInN1Ym1pdFwiLDBdLFtcInRvdWNoY2FuY2VsXCIsXCJ0b3VjaENhbmNlbFwiLDBdLFtcInRvdWNoZW5kXCIsXCJ0b3VjaEVuZFwiLDBdLFtcInRvdWNoc3RhcnRcIixcInRvdWNoU3RhcnRcIiwwXSxbXCJ2b2x1bWVjaGFuZ2VcIixcInZvbHVtZUNoYW5nZVwiLDBdLFtcImRyYWdcIixcImRyYWdcIixcbjFdLFtcImRyYWdlbnRlclwiLFwiZHJhZ0VudGVyXCIsMV0sW1wiZHJhZ2V4aXRcIixcImRyYWdFeGl0XCIsMV0sW1wiZHJhZ2xlYXZlXCIsXCJkcmFnTGVhdmVcIiwxXSxbXCJkcmFnb3ZlclwiLFwiZHJhZ092ZXJcIiwxXSxbXCJtb3VzZW1vdmVcIixcIm1vdXNlTW92ZVwiLDFdLFtcIm1vdXNlb3V0XCIsXCJtb3VzZU91dFwiLDFdLFtcIm1vdXNlb3ZlclwiLFwibW91c2VPdmVyXCIsMV0sW1wicG9pbnRlcm1vdmVcIixcInBvaW50ZXJNb3ZlXCIsMV0sW1wicG9pbnRlcm91dFwiLFwicG9pbnRlck91dFwiLDFdLFtcInBvaW50ZXJvdmVyXCIsXCJwb2ludGVyT3ZlclwiLDFdLFtcInNjcm9sbFwiLFwic2Nyb2xsXCIsMV0sW1widG9nZ2xlXCIsXCJ0b2dnbGVcIiwxXSxbXCJ0b3VjaG1vdmVcIixcInRvdWNoTW92ZVwiLDFdLFtcIndoZWVsXCIsXCJ3aGVlbFwiLDFdLFtcImFib3J0XCIsXCJhYm9ydFwiLDJdLFtYYSxcImFuaW1hdGlvbkVuZFwiLDJdLFtZYSxcImFuaW1hdGlvbkl0ZXJhdGlvblwiLDJdLFtaYSxcImFuaW1hdGlvblN0YXJ0XCIsMl0sW1wiY2FucGxheVwiLFwiY2FuUGxheVwiLDJdLFtcImNhbnBsYXl0aHJvdWdoXCIsXG5cImNhblBsYXlUaHJvdWdoXCIsMl0sW1wiZHVyYXRpb25jaGFuZ2VcIixcImR1cmF0aW9uQ2hhbmdlXCIsMl0sW1wiZW1wdGllZFwiLFwiZW1wdGllZFwiLDJdLFtcImVuY3J5cHRlZFwiLFwiZW5jcnlwdGVkXCIsMl0sW1wiZW5kZWRcIixcImVuZGVkXCIsMl0sW1wiZXJyb3JcIixcImVycm9yXCIsMl0sW1wiZ290cG9pbnRlcmNhcHR1cmVcIixcImdvdFBvaW50ZXJDYXB0dXJlXCIsMl0sW1wibG9hZFwiLFwibG9hZFwiLDJdLFtcImxvYWRlZGRhdGFcIixcImxvYWRlZERhdGFcIiwyXSxbXCJsb2FkZWRtZXRhZGF0YVwiLFwibG9hZGVkTWV0YWRhdGFcIiwyXSxbXCJsb2Fkc3RhcnRcIixcImxvYWRTdGFydFwiLDJdLFtcImxvc3Rwb2ludGVyY2FwdHVyZVwiLFwibG9zdFBvaW50ZXJDYXB0dXJlXCIsMl0sW1wicGxheWluZ1wiLFwicGxheWluZ1wiLDJdLFtcInByb2dyZXNzXCIsXCJwcm9ncmVzc1wiLDJdLFtcInNlZWtpbmdcIixcInNlZWtpbmdcIiwyXSxbXCJzdGFsbGVkXCIsXCJzdGFsbGVkXCIsMl0sW1wic3VzcGVuZFwiLFwic3VzcGVuZFwiLDJdLFtcInRpbWV1cGRhdGVcIixcInRpbWVVcGRhdGVcIixcbjJdLFthYixcInRyYW5zaXRpb25FbmRcIiwyXSxbXCJ3YWl0aW5nXCIsXCJ3YWl0aW5nXCIsMl1dLERkPXt9LEVkPXt9LEZkPTA7Zm9yKDtGZDxDZC5sZW5ndGg7RmQrKyl7dmFyIEdkPUNkW0ZkXSxIZD1HZFswXSxJZD1HZFsxXSxKZD1HZFsyXSxLZD1cIm9uXCIrKElkWzBdLnRvVXBwZXJDYXNlKCkrSWQuc2xpY2UoMSkpLExkPXtwaGFzZWRSZWdpc3RyYXRpb25OYW1lczp7YnViYmxlZDpLZCxjYXB0dXJlZDpLZCtcIkNhcHR1cmVcIn0sZGVwZW5kZW5jaWVzOltIZF0sZXZlbnRQcmlvcml0eTpKZH07RGRbSWRdPUxkO0VkW0hkXT1MZH1cbnZhciBNZD17ZXZlbnRUeXBlczpEZCxnZXRFdmVudFByaW9yaXR5OmZ1bmN0aW9uKGEpe2E9RWRbYV07cmV0dXJuIHZvaWQgMCE9PWE/YS5ldmVudFByaW9yaXR5OjJ9LGV4dHJhY3RFdmVudHM6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9RWRbYV07aWYoIWUpcmV0dXJuIG51bGw7c3dpdGNoKGEpe2Nhc2UgXCJrZXlwcmVzc1wiOmlmKDA9PT11ZChjKSlyZXR1cm4gbnVsbDtjYXNlIFwia2V5ZG93blwiOmNhc2UgXCJrZXl1cFwiOmE9eGQ7YnJlYWs7Y2FzZSBcImJsdXJcIjpjYXNlIFwiZm9jdXNcIjphPXRkO2JyZWFrO2Nhc2UgXCJjbGlja1wiOmlmKDI9PT1jLmJ1dHRvbilyZXR1cm4gbnVsbDtjYXNlIFwiYXV4Y2xpY2tcIjpjYXNlIFwiZGJsY2xpY2tcIjpjYXNlIFwibW91c2Vkb3duXCI6Y2FzZSBcIm1vdXNlbW92ZVwiOmNhc2UgXCJtb3VzZXVwXCI6Y2FzZSBcIm1vdXNlb3V0XCI6Y2FzZSBcIm1vdXNlb3ZlclwiOmNhc2UgXCJjb250ZXh0bWVudVwiOmE9ZGQ7YnJlYWs7Y2FzZSBcImRyYWdcIjpjYXNlIFwiZHJhZ2VuZFwiOmNhc2UgXCJkcmFnZW50ZXJcIjpjYXNlIFwiZHJhZ2V4aXRcIjpjYXNlIFwiZHJhZ2xlYXZlXCI6Y2FzZSBcImRyYWdvdmVyXCI6Y2FzZSBcImRyYWdzdGFydFwiOmNhc2UgXCJkcm9wXCI6YT1cbnlkO2JyZWFrO2Nhc2UgXCJ0b3VjaGNhbmNlbFwiOmNhc2UgXCJ0b3VjaGVuZFwiOmNhc2UgXCJ0b3VjaG1vdmVcIjpjYXNlIFwidG91Y2hzdGFydFwiOmE9emQ7YnJlYWs7Y2FzZSBYYTpjYXNlIFlhOmNhc2UgWmE6YT1yZDticmVhaztjYXNlIGFiOmE9QWQ7YnJlYWs7Y2FzZSBcInNjcm9sbFwiOmE9V2M7YnJlYWs7Y2FzZSBcIndoZWVsXCI6YT1CZDticmVhaztjYXNlIFwiY29weVwiOmNhc2UgXCJjdXRcIjpjYXNlIFwicGFzdGVcIjphPXNkO2JyZWFrO2Nhc2UgXCJnb3Rwb2ludGVyY2FwdHVyZVwiOmNhc2UgXCJsb3N0cG9pbnRlcmNhcHR1cmVcIjpjYXNlIFwicG9pbnRlcmNhbmNlbFwiOmNhc2UgXCJwb2ludGVyZG93blwiOmNhc2UgXCJwb2ludGVybW92ZVwiOmNhc2UgXCJwb2ludGVyb3V0XCI6Y2FzZSBcInBvaW50ZXJvdmVyXCI6Y2FzZSBcInBvaW50ZXJ1cFwiOmE9ZWQ7YnJlYWs7ZGVmYXVsdDphPXl9Yj1hLmdldFBvb2xlZChlLGIsYyxkKTtRYShiKTtyZXR1cm4gYn19LE5kPU1kLmdldEV2ZW50UHJpb3JpdHksT2Q9W107XG5mdW5jdGlvbiBQZChhKXt2YXIgYj1hLnRhcmdldEluc3QsYz1iO2Rve2lmKCFjKXthLmFuY2VzdG9ycy5wdXNoKGMpO2JyZWFrfXZhciBkO2ZvcihkPWM7ZC5yZXR1cm47KWQ9ZC5yZXR1cm47ZD0zIT09ZC50YWc/bnVsbDpkLnN0YXRlTm9kZS5jb250YWluZXJJbmZvO2lmKCFkKWJyZWFrO2EuYW5jZXN0b3JzLnB1c2goYyk7Yz1IYShkKX13aGlsZShjKTtmb3IoYz0wO2M8YS5hbmNlc3RvcnMubGVuZ3RoO2MrKyl7Yj1hLmFuY2VzdG9yc1tjXTt2YXIgZT1SYihhLm5hdGl2ZUV2ZW50KTtkPWEudG9wTGV2ZWxUeXBlO2Zvcih2YXIgZj1hLm5hdGl2ZUV2ZW50LGg9bnVsbCxnPTA7ZzxlYS5sZW5ndGg7ZysrKXt2YXIgaz1lYVtnXTtrJiYoaz1rLmV4dHJhY3RFdmVudHMoZCxiLGYsZSkpJiYoaD14YShoLGspKX1CYShoKX19dmFyIFFkPSEwO2Z1bmN0aW9uIEcoYSxiKXtSZChiLGEsITEpfVxuZnVuY3Rpb24gUmQoYSxiLGMpe3N3aXRjaChOZChiKSl7Y2FzZSAwOnZhciBkPVNkLmJpbmQobnVsbCxiLDEpO2JyZWFrO2Nhc2UgMTpkPVRkLmJpbmQobnVsbCxiLDEpO2JyZWFrO2RlZmF1bHQ6ZD1VZC5iaW5kKG51bGwsYiwxKX1jP2EuYWRkRXZlbnRMaXN0ZW5lcihiLGQsITApOmEuYWRkRXZlbnRMaXN0ZW5lcihiLGQsITEpfWZ1bmN0aW9uIFNkKGEsYixjKXtOYnx8TGIoKTt2YXIgZD1VZCxlPU5iO05iPSEwO3RyeXtLYihkLGEsYixjKX1maW5hbGx5eyhOYj1lKXx8T2IoKX19ZnVuY3Rpb24gVGQoYSxiLGMpe1VkKGEsYixjKX1cbmZ1bmN0aW9uIFVkKGEsYixjKXtpZihRZCl7Yj1SYihjKTtiPUhhKGIpO251bGw9PT1ifHxcIm51bWJlclwiIT09dHlwZW9mIGIudGFnfHwyPT09bGQoYil8fChiPW51bGwpO2lmKE9kLmxlbmd0aCl7dmFyIGQ9T2QucG9wKCk7ZC50b3BMZXZlbFR5cGU9YTtkLm5hdGl2ZUV2ZW50PWM7ZC50YXJnZXRJbnN0PWI7YT1kfWVsc2UgYT17dG9wTGV2ZWxUeXBlOmEsbmF0aXZlRXZlbnQ6Yyx0YXJnZXRJbnN0OmIsYW5jZXN0b3JzOltdfTt0cnl7aWYoYz1hLE5iKVBkKGMsdm9pZCAwKTtlbHNle05iPSEwO3RyeXtNYihQZCxjLHZvaWQgMCl9ZmluYWxseXtOYj0hMSxPYigpfX19ZmluYWxseXthLnRvcExldmVsVHlwZT1udWxsLGEubmF0aXZlRXZlbnQ9bnVsbCxhLnRhcmdldEluc3Q9bnVsbCxhLmFuY2VzdG9ycy5sZW5ndGg9MCwxMD5PZC5sZW5ndGgmJk9kLnB1c2goYSl9fX12YXIgVmQ9bmV3IChcImZ1bmN0aW9uXCI9PT10eXBlb2YgV2Vha01hcD9XZWFrTWFwOk1hcCk7XG5mdW5jdGlvbiBXZChhKXt2YXIgYj1WZC5nZXQoYSk7dm9pZCAwPT09YiYmKGI9bmV3IFNldCxWZC5zZXQoYSxiKSk7cmV0dXJuIGJ9ZnVuY3Rpb24gWGQoYSl7YT1hfHwoXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBkb2N1bWVudD9kb2N1bWVudDp2b2lkIDApO2lmKFwidW5kZWZpbmVkXCI9PT10eXBlb2YgYSlyZXR1cm4gbnVsbDt0cnl7cmV0dXJuIGEuYWN0aXZlRWxlbWVudHx8YS5ib2R5fWNhdGNoKGIpe3JldHVybiBhLmJvZHl9fWZ1bmN0aW9uIFlkKGEpe2Zvcig7YSYmYS5maXJzdENoaWxkOylhPWEuZmlyc3RDaGlsZDtyZXR1cm4gYX1cbmZ1bmN0aW9uIFpkKGEsYil7dmFyIGM9WWQoYSk7YT0wO2Zvcih2YXIgZDtjOyl7aWYoMz09PWMubm9kZVR5cGUpe2Q9YStjLnRleHRDb250ZW50Lmxlbmd0aDtpZihhPD1iJiZkPj1iKXJldHVybntub2RlOmMsb2Zmc2V0OmItYX07YT1kfWE6e2Zvcig7Yzspe2lmKGMubmV4dFNpYmxpbmcpe2M9Yy5uZXh0U2libGluZzticmVhayBhfWM9Yy5wYXJlbnROb2RlfWM9dm9pZCAwfWM9WWQoYyl9fWZ1bmN0aW9uICRkKGEsYil7cmV0dXJuIGEmJmI/YT09PWI/ITA6YSYmMz09PWEubm9kZVR5cGU/ITE6YiYmMz09PWIubm9kZVR5cGU/JGQoYSxiLnBhcmVudE5vZGUpOlwiY29udGFpbnNcImluIGE/YS5jb250YWlucyhiKTphLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uPyEhKGEuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYikmMTYpOiExOiExfVxuZnVuY3Rpb24gYWUoKXtmb3IodmFyIGE9d2luZG93LGI9WGQoKTtiIGluc3RhbmNlb2YgYS5IVE1MSUZyYW1lRWxlbWVudDspe3RyeXt2YXIgYz1cInN0cmluZ1wiPT09dHlwZW9mIGIuY29udGVudFdpbmRvdy5sb2NhdGlvbi5ocmVmfWNhdGNoKGQpe2M9ITF9aWYoYylhPWIuY29udGVudFdpbmRvdztlbHNlIGJyZWFrO2I9WGQoYS5kb2N1bWVudCl9cmV0dXJuIGJ9ZnVuY3Rpb24gYmUoYSl7dmFyIGI9YSYmYS5ub2RlTmFtZSYmYS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybiBiJiYoXCJpbnB1dFwiPT09YiYmKFwidGV4dFwiPT09YS50eXBlfHxcInNlYXJjaFwiPT09YS50eXBlfHxcInRlbFwiPT09YS50eXBlfHxcInVybFwiPT09YS50eXBlfHxcInBhc3N3b3JkXCI9PT1hLnR5cGUpfHxcInRleHRhcmVhXCI9PT1ifHxcInRydWVcIj09PWEuY29udGVudEVkaXRhYmxlKX1cbnZhciBjZT1SYSYmXCJkb2N1bWVudE1vZGVcImluIGRvY3VtZW50JiYxMT49ZG9jdW1lbnQuZG9jdW1lbnRNb2RlLGRlPXtzZWxlY3Q6e3BoYXNlZFJlZ2lzdHJhdGlvbk5hbWVzOntidWJibGVkOlwib25TZWxlY3RcIixjYXB0dXJlZDpcIm9uU2VsZWN0Q2FwdHVyZVwifSxkZXBlbmRlbmNpZXM6XCJibHVyIGNvbnRleHRtZW51IGRyYWdlbmQgZm9jdXMga2V5ZG93biBrZXl1cCBtb3VzZWRvd24gbW91c2V1cCBzZWxlY3Rpb25jaGFuZ2VcIi5zcGxpdChcIiBcIil9fSxlZT1udWxsLGZlPW51bGwsZ2U9bnVsbCxoZT0hMTtcbmZ1bmN0aW9uIGllKGEsYil7dmFyIGM9Yi53aW5kb3c9PT1iP2IuZG9jdW1lbnQ6OT09PWIubm9kZVR5cGU/YjpiLm93bmVyRG9jdW1lbnQ7aWYoaGV8fG51bGw9PWVlfHxlZSE9PVhkKGMpKXJldHVybiBudWxsO2M9ZWU7XCJzZWxlY3Rpb25TdGFydFwiaW4gYyYmYmUoYyk/Yz17c3RhcnQ6Yy5zZWxlY3Rpb25TdGFydCxlbmQ6Yy5zZWxlY3Rpb25FbmR9OihjPShjLm93bmVyRG9jdW1lbnQmJmMub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlld3x8d2luZG93KS5nZXRTZWxlY3Rpb24oKSxjPXthbmNob3JOb2RlOmMuYW5jaG9yTm9kZSxhbmNob3JPZmZzZXQ6Yy5hbmNob3JPZmZzZXQsZm9jdXNOb2RlOmMuZm9jdXNOb2RlLGZvY3VzT2Zmc2V0OmMuZm9jdXNPZmZzZXR9KTtyZXR1cm4gZ2UmJmpkKGdlLGMpP251bGw6KGdlPWMsYT15LmdldFBvb2xlZChkZS5zZWxlY3QsZmUsYSxiKSxhLnR5cGU9XCJzZWxlY3RcIixhLnRhcmdldD1lZSxRYShhKSxhKX1cbnZhciBqZT17ZXZlbnRUeXBlczpkZSxleHRyYWN0RXZlbnRzOmZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPWQud2luZG93PT09ZD9kLmRvY3VtZW50Ojk9PT1kLm5vZGVUeXBlP2Q6ZC5vd25lckRvY3VtZW50LGY7aWYoIShmPSFlKSl7YTp7ZT1XZChlKTtmPWphLm9uU2VsZWN0O2Zvcih2YXIgaD0wO2g8Zi5sZW5ndGg7aCsrKWlmKCFlLmhhcyhmW2hdKSl7ZT0hMTticmVhayBhfWU9ITB9Zj0hZX1pZihmKXJldHVybiBudWxsO2U9Yj9KYShiKTp3aW5kb3c7c3dpdGNoKGEpe2Nhc2UgXCJmb2N1c1wiOmlmKFFiKGUpfHxcInRydWVcIj09PWUuY29udGVudEVkaXRhYmxlKWVlPWUsZmU9YixnZT1udWxsO2JyZWFrO2Nhc2UgXCJibHVyXCI6Z2U9ZmU9ZWU9bnVsbDticmVhaztjYXNlIFwibW91c2Vkb3duXCI6aGU9ITA7YnJlYWs7Y2FzZSBcImNvbnRleHRtZW51XCI6Y2FzZSBcIm1vdXNldXBcIjpjYXNlIFwiZHJhZ2VuZFwiOnJldHVybiBoZT0hMSxpZShjLGQpO2Nhc2UgXCJzZWxlY3Rpb25jaGFuZ2VcIjppZihjZSlicmVhaztcbmNhc2UgXCJrZXlkb3duXCI6Y2FzZSBcImtleXVwXCI6cmV0dXJuIGllKGMsZCl9cmV0dXJuIG51bGx9fTtDYS5pbmplY3RFdmVudFBsdWdpbk9yZGVyKFwiUmVzcG9uZGVyRXZlbnRQbHVnaW4gU2ltcGxlRXZlbnRQbHVnaW4gRW50ZXJMZWF2ZUV2ZW50UGx1Z2luIENoYW5nZUV2ZW50UGx1Z2luIFNlbGVjdEV2ZW50UGx1Z2luIEJlZm9yZUlucHV0RXZlbnRQbHVnaW5cIi5zcGxpdChcIiBcIikpO3NhPUthO3RhPUlhO3ZhPUphO0NhLmluamVjdEV2ZW50UGx1Z2luc0J5TmFtZSh7U2ltcGxlRXZlbnRQbHVnaW46TWQsRW50ZXJMZWF2ZUV2ZW50UGx1Z2luOmdkLENoYW5nZUV2ZW50UGx1Z2luOlZjLFNlbGVjdEV2ZW50UGx1Z2luOmplLEJlZm9yZUlucHV0RXZlbnRQbHVnaW46Q2J9KTtmdW5jdGlvbiBrZShhKXt2YXIgYj1cIlwiO2FhLkNoaWxkcmVuLmZvckVhY2goYSxmdW5jdGlvbihhKXtudWxsIT1hJiYoYis9YSl9KTtyZXR1cm4gYn1cbmZ1bmN0aW9uIGxlKGEsYil7YT1tKHtjaGlsZHJlbjp2b2lkIDB9LGIpO2lmKGI9a2UoYi5jaGlsZHJlbikpYS5jaGlsZHJlbj1iO3JldHVybiBhfWZ1bmN0aW9uIG1lKGEsYixjLGQpe2E9YS5vcHRpb25zO2lmKGIpe2I9e307Zm9yKHZhciBlPTA7ZTxjLmxlbmd0aDtlKyspYltcIiRcIitjW2VdXT0hMDtmb3IoYz0wO2M8YS5sZW5ndGg7YysrKWU9Yi5oYXNPd25Qcm9wZXJ0eShcIiRcIithW2NdLnZhbHVlKSxhW2NdLnNlbGVjdGVkIT09ZSYmKGFbY10uc2VsZWN0ZWQ9ZSksZSYmZCYmKGFbY10uZGVmYXVsdFNlbGVjdGVkPSEwKX1lbHNle2M9XCJcIitBYyhjKTtiPW51bGw7Zm9yKGU9MDtlPGEubGVuZ3RoO2UrKyl7aWYoYVtlXS52YWx1ZT09PWMpe2FbZV0uc2VsZWN0ZWQ9ITA7ZCYmKGFbZV0uZGVmYXVsdFNlbGVjdGVkPSEwKTtyZXR1cm59bnVsbCE9PWJ8fGFbZV0uZGlzYWJsZWR8fChiPWFbZV0pfW51bGwhPT1iJiYoYi5zZWxlY3RlZD0hMCl9fVxuZnVuY3Rpb24gbmUoYSxiKXtpZihudWxsIT1iLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MKXRocm93IHQoRXJyb3IoOTEpKTtyZXR1cm4gbSh7fSxiLHt2YWx1ZTp2b2lkIDAsZGVmYXVsdFZhbHVlOnZvaWQgMCxjaGlsZHJlbjpcIlwiK2EuX3dyYXBwZXJTdGF0ZS5pbml0aWFsVmFsdWV9KX1mdW5jdGlvbiBvZShhLGIpe3ZhciBjPWIudmFsdWU7aWYobnVsbD09Yyl7Yz1iLmRlZmF1bHRWYWx1ZTtiPWIuY2hpbGRyZW47aWYobnVsbCE9Yil7aWYobnVsbCE9Yyl0aHJvdyB0KEVycm9yKDkyKSk7aWYoQXJyYXkuaXNBcnJheShiKSl7aWYoISgxPj1iLmxlbmd0aCkpdGhyb3cgdChFcnJvcig5MykpO2I9YlswXX1jPWJ9bnVsbD09YyYmKGM9XCJcIil9YS5fd3JhcHBlclN0YXRlPXtpbml0aWFsVmFsdWU6QWMoYyl9fVxuZnVuY3Rpb24gcGUoYSxiKXt2YXIgYz1BYyhiLnZhbHVlKSxkPUFjKGIuZGVmYXVsdFZhbHVlKTtudWxsIT1jJiYoYz1cIlwiK2MsYyE9PWEudmFsdWUmJihhLnZhbHVlPWMpLG51bGw9PWIuZGVmYXVsdFZhbHVlJiZhLmRlZmF1bHRWYWx1ZSE9PWMmJihhLmRlZmF1bHRWYWx1ZT1jKSk7bnVsbCE9ZCYmKGEuZGVmYXVsdFZhbHVlPVwiXCIrZCl9ZnVuY3Rpb24gcWUoYSl7dmFyIGI9YS50ZXh0Q29udGVudDtiPT09YS5fd3JhcHBlclN0YXRlLmluaXRpYWxWYWx1ZSYmKGEudmFsdWU9Yil9dmFyIHJlPXtodG1sOlwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbFwiLG1hdGhtbDpcImh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUxcIixzdmc6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifTtcbmZ1bmN0aW9uIHNlKGEpe3N3aXRjaChhKXtjYXNlIFwic3ZnXCI6cmV0dXJuXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiO2Nhc2UgXCJtYXRoXCI6cmV0dXJuXCJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MXCI7ZGVmYXVsdDpyZXR1cm5cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxcIn19ZnVuY3Rpb24gdGUoYSxiKXtyZXR1cm4gbnVsbD09YXx8XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sXCI9PT1hP3NlKGIpOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj09PWEmJlwiZm9yZWlnbk9iamVjdFwiPT09Yj9cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxcIjphfVxudmFyIHVlPXZvaWQgMCx2ZT1mdW5jdGlvbihhKXtyZXR1cm5cInVuZGVmaW5lZFwiIT09dHlwZW9mIE1TQXBwJiZNU0FwcC5leGVjVW5zYWZlTG9jYWxGdW5jdGlvbj9mdW5jdGlvbihiLGMsZCxlKXtNU0FwcC5leGVjVW5zYWZlTG9jYWxGdW5jdGlvbihmdW5jdGlvbigpe3JldHVybiBhKGIsYyxkLGUpfSl9OmF9KGZ1bmN0aW9uKGEsYil7aWYoYS5uYW1lc3BhY2VVUkkhPT1yZS5zdmd8fFwiaW5uZXJIVE1MXCJpbiBhKWEuaW5uZXJIVE1MPWI7ZWxzZXt1ZT11ZXx8ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTt1ZS5pbm5lckhUTUw9XCI8c3ZnPlwiK2IrXCI8L3N2Zz5cIjtmb3IoYj11ZS5maXJzdENoaWxkO2EuZmlyc3RDaGlsZDspYS5yZW1vdmVDaGlsZChhLmZpcnN0Q2hpbGQpO2Zvcig7Yi5maXJzdENoaWxkOylhLmFwcGVuZENoaWxkKGIuZmlyc3RDaGlsZCl9fSk7XG5mdW5jdGlvbiB3ZShhLGIpe2lmKGIpe3ZhciBjPWEuZmlyc3RDaGlsZDtpZihjJiZjPT09YS5sYXN0Q2hpbGQmJjM9PT1jLm5vZGVUeXBlKXtjLm5vZGVWYWx1ZT1iO3JldHVybn19YS50ZXh0Q29udGVudD1ifVxudmFyIHhlPXthbmltYXRpb25JdGVyYXRpb25Db3VudDohMCxib3JkZXJJbWFnZU91dHNldDohMCxib3JkZXJJbWFnZVNsaWNlOiEwLGJvcmRlckltYWdlV2lkdGg6ITAsYm94RmxleDohMCxib3hGbGV4R3JvdXA6ITAsYm94T3JkaW5hbEdyb3VwOiEwLGNvbHVtbkNvdW50OiEwLGNvbHVtbnM6ITAsZmxleDohMCxmbGV4R3JvdzohMCxmbGV4UG9zaXRpdmU6ITAsZmxleFNocmluazohMCxmbGV4TmVnYXRpdmU6ITAsZmxleE9yZGVyOiEwLGdyaWRBcmVhOiEwLGdyaWRSb3c6ITAsZ3JpZFJvd0VuZDohMCxncmlkUm93U3BhbjohMCxncmlkUm93U3RhcnQ6ITAsZ3JpZENvbHVtbjohMCxncmlkQ29sdW1uRW5kOiEwLGdyaWRDb2x1bW5TcGFuOiEwLGdyaWRDb2x1bW5TdGFydDohMCxmb250V2VpZ2h0OiEwLGxpbmVDbGFtcDohMCxsaW5lSGVpZ2h0OiEwLG9wYWNpdHk6ITAsb3JkZXI6ITAsb3JwaGFuczohMCx0YWJTaXplOiEwLHdpZG93czohMCx6SW5kZXg6ITAsem9vbTohMCxmaWxsT3BhY2l0eTohMCxcbmZsb29kT3BhY2l0eTohMCxzdG9wT3BhY2l0eTohMCxzdHJva2VEYXNoYXJyYXk6ITAsc3Ryb2tlRGFzaG9mZnNldDohMCxzdHJva2VNaXRlcmxpbWl0OiEwLHN0cm9rZU9wYWNpdHk6ITAsc3Ryb2tlV2lkdGg6ITB9LHllPVtcIldlYmtpdFwiLFwibXNcIixcIk1velwiLFwiT1wiXTtPYmplY3Qua2V5cyh4ZSkuZm9yRWFjaChmdW5jdGlvbihhKXt5ZS5mb3JFYWNoKGZ1bmN0aW9uKGIpe2I9YithLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Euc3Vic3RyaW5nKDEpO3hlW2JdPXhlW2FdfSl9KTtmdW5jdGlvbiB6ZShhLGIsYyl7cmV0dXJuIG51bGw9PWJ8fFwiYm9vbGVhblwiPT09dHlwZW9mIGJ8fFwiXCI9PT1iP1wiXCI6Y3x8XCJudW1iZXJcIiE9PXR5cGVvZiBifHwwPT09Ynx8eGUuaGFzT3duUHJvcGVydHkoYSkmJnhlW2FdPyhcIlwiK2IpLnRyaW0oKTpiK1wicHhcIn1cbmZ1bmN0aW9uIEFlKGEsYil7YT1hLnN0eWxlO2Zvcih2YXIgYyBpbiBiKWlmKGIuaGFzT3duUHJvcGVydHkoYykpe3ZhciBkPTA9PT1jLmluZGV4T2YoXCItLVwiKSxlPXplKGMsYltjXSxkKTtcImZsb2F0XCI9PT1jJiYoYz1cImNzc0Zsb2F0XCIpO2Q/YS5zZXRQcm9wZXJ0eShjLGUpOmFbY109ZX19dmFyIENlPW0oe21lbnVpdGVtOiEwfSx7YXJlYTohMCxiYXNlOiEwLGJyOiEwLGNvbDohMCxlbWJlZDohMCxocjohMCxpbWc6ITAsaW5wdXQ6ITAsa2V5Z2VuOiEwLGxpbms6ITAsbWV0YTohMCxwYXJhbTohMCxzb3VyY2U6ITAsdHJhY2s6ITAsd2JyOiEwfSk7XG5mdW5jdGlvbiBEZShhLGIpe2lmKGIpe2lmKENlW2FdJiYobnVsbCE9Yi5jaGlsZHJlbnx8bnVsbCE9Yi5kYW5nZXJvdXNseVNldElubmVySFRNTCkpdGhyb3cgdChFcnJvcigxMzcpLGEsXCJcIik7aWYobnVsbCE9Yi5kYW5nZXJvdXNseVNldElubmVySFRNTCl7aWYobnVsbCE9Yi5jaGlsZHJlbil0aHJvdyB0KEVycm9yKDYwKSk7aWYoIShcIm9iamVjdFwiPT09dHlwZW9mIGIuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwmJlwiX19odG1sXCJpbiBiLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MKSl0aHJvdyB0KEVycm9yKDYxKSk7fWlmKG51bGwhPWIuc3R5bGUmJlwib2JqZWN0XCIhPT10eXBlb2YgYi5zdHlsZSl0aHJvdyB0KEVycm9yKDYyKSxcIlwiKTt9fVxuZnVuY3Rpb24gRWUoYSxiKXtpZigtMT09PWEuaW5kZXhPZihcIi1cIikpcmV0dXJuXCJzdHJpbmdcIj09PXR5cGVvZiBiLmlzO3N3aXRjaChhKXtjYXNlIFwiYW5ub3RhdGlvbi14bWxcIjpjYXNlIFwiY29sb3ItcHJvZmlsZVwiOmNhc2UgXCJmb250LWZhY2VcIjpjYXNlIFwiZm9udC1mYWNlLXNyY1wiOmNhc2UgXCJmb250LWZhY2UtdXJpXCI6Y2FzZSBcImZvbnQtZmFjZS1mb3JtYXRcIjpjYXNlIFwiZm9udC1mYWNlLW5hbWVcIjpjYXNlIFwibWlzc2luZy1nbHlwaFwiOnJldHVybiExO2RlZmF1bHQ6cmV0dXJuITB9fVxuZnVuY3Rpb24gRmUoYSxiKXthPTk9PT1hLm5vZGVUeXBlfHwxMT09PWEubm9kZVR5cGU/YTphLm93bmVyRG9jdW1lbnQ7dmFyIGM9V2QoYSk7Yj1qYVtiXTtmb3IodmFyIGQ9MDtkPGIubGVuZ3RoO2QrKyl7dmFyIGU9YltkXTtpZighYy5oYXMoZSkpe3N3aXRjaChlKXtjYXNlIFwic2Nyb2xsXCI6UmQoYSxcInNjcm9sbFwiLCEwKTticmVhaztjYXNlIFwiZm9jdXNcIjpjYXNlIFwiYmx1clwiOlJkKGEsXCJmb2N1c1wiLCEwKTtSZChhLFwiYmx1clwiLCEwKTtjLmFkZChcImJsdXJcIik7Yy5hZGQoXCJmb2N1c1wiKTticmVhaztjYXNlIFwiY2FuY2VsXCI6Y2FzZSBcImNsb3NlXCI6U2IoZSkmJlJkKGEsZSwhMCk7YnJlYWs7Y2FzZSBcImludmFsaWRcIjpjYXNlIFwic3VibWl0XCI6Y2FzZSBcInJlc2V0XCI6YnJlYWs7ZGVmYXVsdDotMT09PWJiLmluZGV4T2YoZSkmJkcoZSxhKX1jLmFkZChlKX19fWZ1bmN0aW9uIEdlKCl7fXZhciBIZT1udWxsLEllPW51bGw7XG5mdW5jdGlvbiBKZShhLGIpe3N3aXRjaChhKXtjYXNlIFwiYnV0dG9uXCI6Y2FzZSBcImlucHV0XCI6Y2FzZSBcInNlbGVjdFwiOmNhc2UgXCJ0ZXh0YXJlYVwiOnJldHVybiEhYi5hdXRvRm9jdXN9cmV0dXJuITF9ZnVuY3Rpb24gS2UoYSxiKXtyZXR1cm5cInRleHRhcmVhXCI9PT1hfHxcIm9wdGlvblwiPT09YXx8XCJub3NjcmlwdFwiPT09YXx8XCJzdHJpbmdcIj09PXR5cGVvZiBiLmNoaWxkcmVufHxcIm51bWJlclwiPT09dHlwZW9mIGIuY2hpbGRyZW58fFwib2JqZWN0XCI9PT10eXBlb2YgYi5kYW5nZXJvdXNseVNldElubmVySFRNTCYmbnVsbCE9PWIuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwmJm51bGwhPWIuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwuX19odG1sfXZhciBMZT1cImZ1bmN0aW9uXCI9PT10eXBlb2Ygc2V0VGltZW91dD9zZXRUaW1lb3V0OnZvaWQgMCxNZT1cImZ1bmN0aW9uXCI9PT10eXBlb2YgY2xlYXJUaW1lb3V0P2NsZWFyVGltZW91dDp2b2lkIDA7XG5mdW5jdGlvbiBOZShhKXtmb3IoO251bGwhPWE7YT1hLm5leHRTaWJsaW5nKXt2YXIgYj1hLm5vZGVUeXBlO2lmKDE9PT1ifHwzPT09YilicmVha31yZXR1cm4gYX1uZXcgU2V0O3ZhciBPZT1bXSxQZT0tMTtmdW5jdGlvbiBIKGEpezA+UGV8fChhLmN1cnJlbnQ9T2VbUGVdLE9lW1BlXT1udWxsLFBlLS0pfWZ1bmN0aW9uIEooYSxiKXtQZSsrO09lW1BlXT1hLmN1cnJlbnQ7YS5jdXJyZW50PWJ9dmFyIFFlPXt9LEw9e2N1cnJlbnQ6UWV9LE09e2N1cnJlbnQ6ITF9LFJlPVFlO1xuZnVuY3Rpb24gU2UoYSxiKXt2YXIgYz1hLnR5cGUuY29udGV4dFR5cGVzO2lmKCFjKXJldHVybiBRZTt2YXIgZD1hLnN0YXRlTm9kZTtpZihkJiZkLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkVW5tYXNrZWRDaGlsZENvbnRleHQ9PT1iKXJldHVybiBkLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWFza2VkQ2hpbGRDb250ZXh0O3ZhciBlPXt9LGY7Zm9yKGYgaW4gYyllW2ZdPWJbZl07ZCYmKGE9YS5zdGF0ZU5vZGUsYS5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZFVubWFza2VkQ2hpbGRDb250ZXh0PWIsYS5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZE1hc2tlZENoaWxkQ29udGV4dD1lKTtyZXR1cm4gZX1mdW5jdGlvbiBOKGEpe2E9YS5jaGlsZENvbnRleHRUeXBlcztyZXR1cm4gbnVsbCE9PWEmJnZvaWQgMCE9PWF9ZnVuY3Rpb24gVGUoYSl7SChNLGEpO0goTCxhKX1mdW5jdGlvbiBVZShhKXtIKE0sYSk7SChMLGEpfVxuZnVuY3Rpb24gVmUoYSxiLGMpe2lmKEwuY3VycmVudCE9PVFlKXRocm93IHQoRXJyb3IoMTY4KSk7SihMLGIsYSk7SihNLGMsYSl9ZnVuY3Rpb24gV2UoYSxiLGMpe3ZhciBkPWEuc3RhdGVOb2RlO2E9Yi5jaGlsZENvbnRleHRUeXBlcztpZihcImZ1bmN0aW9uXCIhPT10eXBlb2YgZC5nZXRDaGlsZENvbnRleHQpcmV0dXJuIGM7ZD1kLmdldENoaWxkQ29udGV4dCgpO2Zvcih2YXIgZSBpbiBkKWlmKCEoZSBpbiBhKSl0aHJvdyB0KEVycm9yKDEwOCksb2MoYil8fFwiVW5rbm93blwiLGUpO3JldHVybiBtKHt9LGMsZCl9ZnVuY3Rpb24gWGUoYSl7dmFyIGI9YS5zdGF0ZU5vZGU7Yj1iJiZiLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWVyZ2VkQ2hpbGRDb250ZXh0fHxRZTtSZT1MLmN1cnJlbnQ7SihMLGIsYSk7SihNLE0uY3VycmVudCxhKTtyZXR1cm4hMH1cbmZ1bmN0aW9uIFllKGEsYixjKXt2YXIgZD1hLnN0YXRlTm9kZTtpZighZCl0aHJvdyB0KEVycm9yKDE2OSkpO2M/KGI9V2UoYSxiLFJlKSxkLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWVyZ2VkQ2hpbGRDb250ZXh0PWIsSChNLGEpLEgoTCxhKSxKKEwsYixhKSk6SChNLGEpO0ooTSxjLGEpfVxudmFyIFplPXEudW5zdGFibGVfcnVuV2l0aFByaW9yaXR5LCRlPXEudW5zdGFibGVfc2NoZWR1bGVDYWxsYmFjayxhZj1xLnVuc3RhYmxlX2NhbmNlbENhbGxiYWNrLGJmPXEudW5zdGFibGVfc2hvdWxkWWllbGQsY2Y9cS51bnN0YWJsZV9yZXF1ZXN0UGFpbnQsZGY9cS51bnN0YWJsZV9ub3csZWY9cS51bnN0YWJsZV9nZXRDdXJyZW50UHJpb3JpdHlMZXZlbCxmZj1xLnVuc3RhYmxlX0ltbWVkaWF0ZVByaW9yaXR5LGhmPXEudW5zdGFibGVfVXNlckJsb2NraW5nUHJpb3JpdHksamY9cS51bnN0YWJsZV9Ob3JtYWxQcmlvcml0eSxrZj1xLnVuc3RhYmxlX0xvd1ByaW9yaXR5LGxmPXEudW5zdGFibGVfSWRsZVByaW9yaXR5LG1mPXt9LG5mPXZvaWQgMCE9PWNmP2NmOmZ1bmN0aW9uKCl7fSxvZj1udWxsLHBmPW51bGwscWY9ITEscmY9ZGYoKSxzZj0xRTQ+cmY/ZGY6ZnVuY3Rpb24oKXtyZXR1cm4gZGYoKS1yZn07XG5mdW5jdGlvbiB0Zigpe3N3aXRjaChlZigpKXtjYXNlIGZmOnJldHVybiA5OTtjYXNlIGhmOnJldHVybiA5ODtjYXNlIGpmOnJldHVybiA5NztjYXNlIGtmOnJldHVybiA5NjtjYXNlIGxmOnJldHVybiA5NTtkZWZhdWx0OnRocm93IHQoRXJyb3IoMzMyKSk7fX1mdW5jdGlvbiB1ZihhKXtzd2l0Y2goYSl7Y2FzZSA5OTpyZXR1cm4gZmY7Y2FzZSA5ODpyZXR1cm4gaGY7Y2FzZSA5NzpyZXR1cm4gamY7Y2FzZSA5NjpyZXR1cm4ga2Y7Y2FzZSA5NTpyZXR1cm4gbGY7ZGVmYXVsdDp0aHJvdyB0KEVycm9yKDMzMikpO319ZnVuY3Rpb24gdmYoYSxiKXthPXVmKGEpO3JldHVybiBaZShhLGIpfWZ1bmN0aW9uIHdmKGEsYixjKXthPXVmKGEpO3JldHVybiAkZShhLGIsYyl9ZnVuY3Rpb24geGYoYSl7bnVsbD09PW9mPyhvZj1bYV0scGY9JGUoZmYseWYpKTpvZi5wdXNoKGEpO3JldHVybiBtZn1mdW5jdGlvbiBPKCl7bnVsbCE9PXBmJiZhZihwZik7eWYoKX1cbmZ1bmN0aW9uIHlmKCl7aWYoIXFmJiZudWxsIT09b2Ype3FmPSEwO3ZhciBhPTA7dHJ5e3ZhciBiPW9mO3ZmKDk5LGZ1bmN0aW9uKCl7Zm9yKDthPGIubGVuZ3RoO2ErKyl7dmFyIGM9YlthXTtkbyBjPWMoITApO3doaWxlKG51bGwhPT1jKX19KTtvZj1udWxsfWNhdGNoKGMpe3Rocm93IG51bGwhPT1vZiYmKG9mPW9mLnNsaWNlKGErMSkpLCRlKGZmLE8pLGM7fWZpbmFsbHl7cWY9ITF9fX1mdW5jdGlvbiB6ZihhLGIpe2lmKDEwNzM3NDE4MjM9PT1iKXJldHVybiA5OTtpZigxPT09YilyZXR1cm4gOTU7YT0xMCooMTA3Mzc0MTgyMS1iKS0xMCooMTA3Mzc0MTgyMS1hKTtyZXR1cm4gMD49YT85OToyNTA+PWE/OTg6NTI1MD49YT85Nzo5NX1mdW5jdGlvbiBBZihhLGIpe2lmKGEmJmEuZGVmYXVsdFByb3BzKXtiPW0oe30sYik7YT1hLmRlZmF1bHRQcm9wcztmb3IodmFyIGMgaW4gYSl2b2lkIDA9PT1iW2NdJiYoYltjXT1hW2NdKX1yZXR1cm4gYn1cbmZ1bmN0aW9uIEJmKGEpe3ZhciBiPWEuX3Jlc3VsdDtzd2l0Y2goYS5fc3RhdHVzKXtjYXNlIDE6cmV0dXJuIGI7Y2FzZSAyOnRocm93IGI7Y2FzZSAwOnRocm93IGI7ZGVmYXVsdDphLl9zdGF0dXM9MDtiPWEuX2N0b3I7Yj1iKCk7Yi50aGVuKGZ1bmN0aW9uKGIpezA9PT1hLl9zdGF0dXMmJihiPWIuZGVmYXVsdCxhLl9zdGF0dXM9MSxhLl9yZXN1bHQ9Yil9LGZ1bmN0aW9uKGIpezA9PT1hLl9zdGF0dXMmJihhLl9zdGF0dXM9MixhLl9yZXN1bHQ9Yil9KTtzd2l0Y2goYS5fc3RhdHVzKXtjYXNlIDE6cmV0dXJuIGEuX3Jlc3VsdDtjYXNlIDI6dGhyb3cgYS5fcmVzdWx0O31hLl9yZXN1bHQ9Yjt0aHJvdyBiO319dmFyIENmPXtjdXJyZW50Om51bGx9LERmPW51bGwsRWY9bnVsbCxGZj1udWxsO2Z1bmN0aW9uIEdmKCl7RmY9RWY9RGY9bnVsbH1cbmZ1bmN0aW9uIEhmKGEsYil7dmFyIGM9YS50eXBlLl9jb250ZXh0O0ooQ2YsYy5fY3VycmVudFZhbHVlLGEpO2MuX2N1cnJlbnRWYWx1ZT1ifWZ1bmN0aW9uIElmKGEpe3ZhciBiPUNmLmN1cnJlbnQ7SChDZixhKTthLnR5cGUuX2NvbnRleHQuX2N1cnJlbnRWYWx1ZT1ifWZ1bmN0aW9uIEpmKGEsYil7Zm9yKDtudWxsIT09YTspe3ZhciBjPWEuYWx0ZXJuYXRlO2lmKGEuY2hpbGRFeHBpcmF0aW9uVGltZTxiKWEuY2hpbGRFeHBpcmF0aW9uVGltZT1iLG51bGwhPT1jJiZjLmNoaWxkRXhwaXJhdGlvblRpbWU8YiYmKGMuY2hpbGRFeHBpcmF0aW9uVGltZT1iKTtlbHNlIGlmKG51bGwhPT1jJiZjLmNoaWxkRXhwaXJhdGlvblRpbWU8YiljLmNoaWxkRXhwaXJhdGlvblRpbWU9YjtlbHNlIGJyZWFrO2E9YS5yZXR1cm59fVxuZnVuY3Rpb24gS2YoYSxiKXtEZj1hO0ZmPUVmPW51bGw7YT1hLmRlcGVuZGVuY2llcztudWxsIT09YSYmbnVsbCE9PWEuZmlyc3RDb250ZXh0JiYoYS5leHBpcmF0aW9uVGltZT49YiYmKExmPSEwKSxhLmZpcnN0Q29udGV4dD1udWxsKX1mdW5jdGlvbiBNZihhLGIpe2lmKEZmIT09YSYmITEhPT1iJiYwIT09Yil7aWYoXCJudW1iZXJcIiE9PXR5cGVvZiBifHwxMDczNzQxODIzPT09YilGZj1hLGI9MTA3Mzc0MTgyMztiPXtjb250ZXh0OmEsb2JzZXJ2ZWRCaXRzOmIsbmV4dDpudWxsfTtpZihudWxsPT09RWYpe2lmKG51bGw9PT1EZil0aHJvdyB0KEVycm9yKDMwOCkpO0VmPWI7RGYuZGVwZW5kZW5jaWVzPXtleHBpcmF0aW9uVGltZTowLGZpcnN0Q29udGV4dDpiLHJlc3BvbmRlcnM6bnVsbH19ZWxzZSBFZj1FZi5uZXh0PWJ9cmV0dXJuIGEuX2N1cnJlbnRWYWx1ZX12YXIgTmY9ITE7XG5mdW5jdGlvbiBPZihhKXtyZXR1cm57YmFzZVN0YXRlOmEsZmlyc3RVcGRhdGU6bnVsbCxsYXN0VXBkYXRlOm51bGwsZmlyc3RDYXB0dXJlZFVwZGF0ZTpudWxsLGxhc3RDYXB0dXJlZFVwZGF0ZTpudWxsLGZpcnN0RWZmZWN0Om51bGwsbGFzdEVmZmVjdDpudWxsLGZpcnN0Q2FwdHVyZWRFZmZlY3Q6bnVsbCxsYXN0Q2FwdHVyZWRFZmZlY3Q6bnVsbH19ZnVuY3Rpb24gUGYoYSl7cmV0dXJue2Jhc2VTdGF0ZTphLmJhc2VTdGF0ZSxmaXJzdFVwZGF0ZTphLmZpcnN0VXBkYXRlLGxhc3RVcGRhdGU6YS5sYXN0VXBkYXRlLGZpcnN0Q2FwdHVyZWRVcGRhdGU6bnVsbCxsYXN0Q2FwdHVyZWRVcGRhdGU6bnVsbCxmaXJzdEVmZmVjdDpudWxsLGxhc3RFZmZlY3Q6bnVsbCxmaXJzdENhcHR1cmVkRWZmZWN0Om51bGwsbGFzdENhcHR1cmVkRWZmZWN0Om51bGx9fVxuZnVuY3Rpb24gUWYoYSxiKXtyZXR1cm57ZXhwaXJhdGlvblRpbWU6YSxzdXNwZW5zZUNvbmZpZzpiLHRhZzowLHBheWxvYWQ6bnVsbCxjYWxsYmFjazpudWxsLG5leHQ6bnVsbCxuZXh0RWZmZWN0Om51bGx9fWZ1bmN0aW9uIFJmKGEsYil7bnVsbD09PWEubGFzdFVwZGF0ZT9hLmZpcnN0VXBkYXRlPWEubGFzdFVwZGF0ZT1iOihhLmxhc3RVcGRhdGUubmV4dD1iLGEubGFzdFVwZGF0ZT1iKX1cbmZ1bmN0aW9uIFNmKGEsYil7dmFyIGM9YS5hbHRlcm5hdGU7aWYobnVsbD09PWMpe3ZhciBkPWEudXBkYXRlUXVldWU7dmFyIGU9bnVsbDtudWxsPT09ZCYmKGQ9YS51cGRhdGVRdWV1ZT1PZihhLm1lbW9pemVkU3RhdGUpKX1lbHNlIGQ9YS51cGRhdGVRdWV1ZSxlPWMudXBkYXRlUXVldWUsbnVsbD09PWQ/bnVsbD09PWU/KGQ9YS51cGRhdGVRdWV1ZT1PZihhLm1lbW9pemVkU3RhdGUpLGU9Yy51cGRhdGVRdWV1ZT1PZihjLm1lbW9pemVkU3RhdGUpKTpkPWEudXBkYXRlUXVldWU9UGYoZSk6bnVsbD09PWUmJihlPWMudXBkYXRlUXVldWU9UGYoZCkpO251bGw9PT1lfHxkPT09ZT9SZihkLGIpOm51bGw9PT1kLmxhc3RVcGRhdGV8fG51bGw9PT1lLmxhc3RVcGRhdGU/KFJmKGQsYiksUmYoZSxiKSk6KFJmKGQsYiksZS5sYXN0VXBkYXRlPWIpfVxuZnVuY3Rpb24gVGYoYSxiKXt2YXIgYz1hLnVwZGF0ZVF1ZXVlO2M9bnVsbD09PWM/YS51cGRhdGVRdWV1ZT1PZihhLm1lbW9pemVkU3RhdGUpOlVmKGEsYyk7bnVsbD09PWMubGFzdENhcHR1cmVkVXBkYXRlP2MuZmlyc3RDYXB0dXJlZFVwZGF0ZT1jLmxhc3RDYXB0dXJlZFVwZGF0ZT1iOihjLmxhc3RDYXB0dXJlZFVwZGF0ZS5uZXh0PWIsYy5sYXN0Q2FwdHVyZWRVcGRhdGU9Yil9ZnVuY3Rpb24gVWYoYSxiKXt2YXIgYz1hLmFsdGVybmF0ZTtudWxsIT09YyYmYj09PWMudXBkYXRlUXVldWUmJihiPWEudXBkYXRlUXVldWU9UGYoYikpO3JldHVybiBifVxuZnVuY3Rpb24gVmYoYSxiLGMsZCxlLGYpe3N3aXRjaChjLnRhZyl7Y2FzZSAxOnJldHVybiBhPWMucGF5bG9hZCxcImZ1bmN0aW9uXCI9PT10eXBlb2YgYT9hLmNhbGwoZixkLGUpOmE7Y2FzZSAzOmEuZWZmZWN0VGFnPWEuZWZmZWN0VGFnJi0yMDQ5fDY0O2Nhc2UgMDphPWMucGF5bG9hZDtlPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBhP2EuY2FsbChmLGQsZSk6YTtpZihudWxsPT09ZXx8dm9pZCAwPT09ZSlicmVhaztyZXR1cm4gbSh7fSxkLGUpO2Nhc2UgMjpOZj0hMH1yZXR1cm4gZH1cbmZ1bmN0aW9uIFdmKGEsYixjLGQsZSl7TmY9ITE7Yj1VZihhLGIpO2Zvcih2YXIgZj1iLmJhc2VTdGF0ZSxoPW51bGwsZz0wLGs9Yi5maXJzdFVwZGF0ZSxsPWY7bnVsbCE9PWs7KXt2YXIgbj1rLmV4cGlyYXRpb25UaW1lO248ZT8obnVsbD09PWgmJihoPWssZj1sKSxnPG4mJihnPW4pKTooWGYobixrLnN1c3BlbnNlQ29uZmlnKSxsPVZmKGEsYixrLGwsYyxkKSxudWxsIT09ay5jYWxsYmFjayYmKGEuZWZmZWN0VGFnfD0zMixrLm5leHRFZmZlY3Q9bnVsbCxudWxsPT09Yi5sYXN0RWZmZWN0P2IuZmlyc3RFZmZlY3Q9Yi5sYXN0RWZmZWN0PWs6KGIubGFzdEVmZmVjdC5uZXh0RWZmZWN0PWssYi5sYXN0RWZmZWN0PWspKSk7az1rLm5leHR9bj1udWxsO2ZvcihrPWIuZmlyc3RDYXB0dXJlZFVwZGF0ZTtudWxsIT09azspe3ZhciB6PWsuZXhwaXJhdGlvblRpbWU7ejxlPyhudWxsPT09biYmKG49ayxudWxsPT09aCYmKGY9bCkpLGc8eiYmKGc9eikpOihsPVZmKGEsYixrLGwsYyxkKSxudWxsIT09XG5rLmNhbGxiYWNrJiYoYS5lZmZlY3RUYWd8PTMyLGsubmV4dEVmZmVjdD1udWxsLG51bGw9PT1iLmxhc3RDYXB0dXJlZEVmZmVjdD9iLmZpcnN0Q2FwdHVyZWRFZmZlY3Q9Yi5sYXN0Q2FwdHVyZWRFZmZlY3Q9azooYi5sYXN0Q2FwdHVyZWRFZmZlY3QubmV4dEVmZmVjdD1rLGIubGFzdENhcHR1cmVkRWZmZWN0PWspKSk7az1rLm5leHR9bnVsbD09PWgmJihiLmxhc3RVcGRhdGU9bnVsbCk7bnVsbD09PW4/Yi5sYXN0Q2FwdHVyZWRVcGRhdGU9bnVsbDphLmVmZmVjdFRhZ3w9MzI7bnVsbD09PWgmJm51bGw9PT1uJiYoZj1sKTtiLmJhc2VTdGF0ZT1mO2IuZmlyc3RVcGRhdGU9aDtiLmZpcnN0Q2FwdHVyZWRVcGRhdGU9bjthLmV4cGlyYXRpb25UaW1lPWc7YS5tZW1vaXplZFN0YXRlPWx9XG5mdW5jdGlvbiBZZihhLGIsYyl7bnVsbCE9PWIuZmlyc3RDYXB0dXJlZFVwZGF0ZSYmKG51bGwhPT1iLmxhc3RVcGRhdGUmJihiLmxhc3RVcGRhdGUubmV4dD1iLmZpcnN0Q2FwdHVyZWRVcGRhdGUsYi5sYXN0VXBkYXRlPWIubGFzdENhcHR1cmVkVXBkYXRlKSxiLmZpcnN0Q2FwdHVyZWRVcGRhdGU9Yi5sYXN0Q2FwdHVyZWRVcGRhdGU9bnVsbCk7WmYoYi5maXJzdEVmZmVjdCxjKTtiLmZpcnN0RWZmZWN0PWIubGFzdEVmZmVjdD1udWxsO1pmKGIuZmlyc3RDYXB0dXJlZEVmZmVjdCxjKTtiLmZpcnN0Q2FwdHVyZWRFZmZlY3Q9Yi5sYXN0Q2FwdHVyZWRFZmZlY3Q9bnVsbH1mdW5jdGlvbiBaZihhLGIpe2Zvcig7bnVsbCE9PWE7KXt2YXIgYz1hLmNhbGxiYWNrO2lmKG51bGwhPT1jKXthLmNhbGxiYWNrPW51bGw7dmFyIGQ9YjtpZihcImZ1bmN0aW9uXCIhPT10eXBlb2YgYyl0aHJvdyB0KEVycm9yKDE5MSksYyk7Yy5jYWxsKGQpfWE9YS5uZXh0RWZmZWN0fX1cbnZhciAkZj1YYi5SZWFjdEN1cnJlbnRCYXRjaENvbmZpZyxhZz0obmV3IGFhLkNvbXBvbmVudCkucmVmcztmdW5jdGlvbiBiZyhhLGIsYyxkKXtiPWEubWVtb2l6ZWRTdGF0ZTtjPWMoZCxiKTtjPW51bGw9PT1jfHx2b2lkIDA9PT1jP2I6bSh7fSxiLGMpO2EubWVtb2l6ZWRTdGF0ZT1jO2Q9YS51cGRhdGVRdWV1ZTtudWxsIT09ZCYmMD09PWEuZXhwaXJhdGlvblRpbWUmJihkLmJhc2VTdGF0ZT1jKX1cbnZhciBmZz17aXNNb3VudGVkOmZ1bmN0aW9uKGEpe3JldHVybihhPWEuX3JlYWN0SW50ZXJuYWxGaWJlcik/Mj09PWxkKGEpOiExfSxlbnF1ZXVlU2V0U3RhdGU6ZnVuY3Rpb24oYSxiLGMpe2E9YS5fcmVhY3RJbnRlcm5hbEZpYmVyO3ZhciBkPWNnKCksZT0kZi5zdXNwZW5zZTtkPWRnKGQsYSxlKTtlPVFmKGQsZSk7ZS5wYXlsb2FkPWI7dm9pZCAwIT09YyYmbnVsbCE9PWMmJihlLmNhbGxiYWNrPWMpO1NmKGEsZSk7ZWcoYSxkKX0sZW5xdWV1ZVJlcGxhY2VTdGF0ZTpmdW5jdGlvbihhLGIsYyl7YT1hLl9yZWFjdEludGVybmFsRmliZXI7dmFyIGQ9Y2coKSxlPSRmLnN1c3BlbnNlO2Q9ZGcoZCxhLGUpO2U9UWYoZCxlKTtlLnRhZz0xO2UucGF5bG9hZD1iO3ZvaWQgMCE9PWMmJm51bGwhPT1jJiYoZS5jYWxsYmFjaz1jKTtTZihhLGUpO2VnKGEsZCl9LGVucXVldWVGb3JjZVVwZGF0ZTpmdW5jdGlvbihhLGIpe2E9YS5fcmVhY3RJbnRlcm5hbEZpYmVyO3ZhciBjPWNnKCksZD0kZi5zdXNwZW5zZTtcbmM9ZGcoYyxhLGQpO2Q9UWYoYyxkKTtkLnRhZz0yO3ZvaWQgMCE9PWImJm51bGwhPT1iJiYoZC5jYWxsYmFjaz1iKTtTZihhLGQpO2VnKGEsYyl9fTtmdW5jdGlvbiBnZyhhLGIsYyxkLGUsZixoKXthPWEuc3RhdGVOb2RlO3JldHVyblwiZnVuY3Rpb25cIj09PXR5cGVvZiBhLnNob3VsZENvbXBvbmVudFVwZGF0ZT9hLnNob3VsZENvbXBvbmVudFVwZGF0ZShkLGYsaCk6Yi5wcm90b3R5cGUmJmIucHJvdG90eXBlLmlzUHVyZVJlYWN0Q29tcG9uZW50PyFqZChjLGQpfHwhamQoZSxmKTohMH1cbmZ1bmN0aW9uIGhnKGEsYixjKXt2YXIgZD0hMSxlPVFlO3ZhciBmPWIuY29udGV4dFR5cGU7XCJvYmplY3RcIj09PXR5cGVvZiBmJiZudWxsIT09Zj9mPU1mKGYpOihlPU4oYik/UmU6TC5jdXJyZW50LGQ9Yi5jb250ZXh0VHlwZXMsZj0oZD1udWxsIT09ZCYmdm9pZCAwIT09ZCk/U2UoYSxlKTpRZSk7Yj1uZXcgYihjLGYpO2EubWVtb2l6ZWRTdGF0ZT1udWxsIT09Yi5zdGF0ZSYmdm9pZCAwIT09Yi5zdGF0ZT9iLnN0YXRlOm51bGw7Yi51cGRhdGVyPWZnO2Euc3RhdGVOb2RlPWI7Yi5fcmVhY3RJbnRlcm5hbEZpYmVyPWE7ZCYmKGE9YS5zdGF0ZU5vZGUsYS5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZFVubWFza2VkQ2hpbGRDb250ZXh0PWUsYS5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZE1hc2tlZENoaWxkQ29udGV4dD1mKTtyZXR1cm4gYn1cbmZ1bmN0aW9uIGlnKGEsYixjLGQpe2E9Yi5zdGF0ZTtcImZ1bmN0aW9uXCI9PT10eXBlb2YgYi5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzJiZiLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMoYyxkKTtcImZ1bmN0aW9uXCI9PT10eXBlb2YgYi5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyYmYi5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhjLGQpO2Iuc3RhdGUhPT1hJiZmZy5lbnF1ZXVlUmVwbGFjZVN0YXRlKGIsYi5zdGF0ZSxudWxsKX1cbmZ1bmN0aW9uIGpnKGEsYixjLGQpe3ZhciBlPWEuc3RhdGVOb2RlO2UucHJvcHM9YztlLnN0YXRlPWEubWVtb2l6ZWRTdGF0ZTtlLnJlZnM9YWc7dmFyIGY9Yi5jb250ZXh0VHlwZTtcIm9iamVjdFwiPT09dHlwZW9mIGYmJm51bGwhPT1mP2UuY29udGV4dD1NZihmKTooZj1OKGIpP1JlOkwuY3VycmVudCxlLmNvbnRleHQ9U2UoYSxmKSk7Zj1hLnVwZGF0ZVF1ZXVlO251bGwhPT1mJiYoV2YoYSxmLGMsZSxkKSxlLnN0YXRlPWEubWVtb2l6ZWRTdGF0ZSk7Zj1iLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcztcImZ1bmN0aW9uXCI9PT10eXBlb2YgZiYmKGJnKGEsYixmLGMpLGUuc3RhdGU9YS5tZW1vaXplZFN0YXRlKTtcImZ1bmN0aW9uXCI9PT10eXBlb2YgYi5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHN8fFwiZnVuY3Rpb25cIj09PXR5cGVvZiBlLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlfHxcImZ1bmN0aW9uXCIhPT10eXBlb2YgZS5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50JiZcImZ1bmN0aW9uXCIhPT1cbnR5cGVvZiBlLmNvbXBvbmVudFdpbGxNb3VudHx8KGI9ZS5zdGF0ZSxcImZ1bmN0aW9uXCI9PT10eXBlb2YgZS5jb21wb25lbnRXaWxsTW91bnQmJmUuY29tcG9uZW50V2lsbE1vdW50KCksXCJmdW5jdGlvblwiPT09dHlwZW9mIGUuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCYmZS5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50KCksYiE9PWUuc3RhdGUmJmZnLmVucXVldWVSZXBsYWNlU3RhdGUoZSxlLnN0YXRlLG51bGwpLGY9YS51cGRhdGVRdWV1ZSxudWxsIT09ZiYmKFdmKGEsZixjLGUsZCksZS5zdGF0ZT1hLm1lbW9pemVkU3RhdGUpKTtcImZ1bmN0aW9uXCI9PT10eXBlb2YgZS5jb21wb25lbnREaWRNb3VudCYmKGEuZWZmZWN0VGFnfD00KX12YXIga2c9QXJyYXkuaXNBcnJheTtcbmZ1bmN0aW9uIGxnKGEsYixjKXthPWMucmVmO2lmKG51bGwhPT1hJiZcImZ1bmN0aW9uXCIhPT10eXBlb2YgYSYmXCJvYmplY3RcIiE9PXR5cGVvZiBhKXtpZihjLl9vd25lcil7Yz1jLl9vd25lcjt2YXIgZD12b2lkIDA7aWYoYyl7aWYoMSE9PWMudGFnKXRocm93IHQoRXJyb3IoMzA5KSk7ZD1jLnN0YXRlTm9kZX1pZighZCl0aHJvdyB0KEVycm9yKDE0NyksYSk7dmFyIGU9XCJcIithO2lmKG51bGwhPT1iJiZudWxsIT09Yi5yZWYmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBiLnJlZiYmYi5yZWYuX3N0cmluZ1JlZj09PWUpcmV0dXJuIGIucmVmO2I9ZnVuY3Rpb24oYSl7dmFyIGI9ZC5yZWZzO2I9PT1hZyYmKGI9ZC5yZWZzPXt9KTtudWxsPT09YT9kZWxldGUgYltlXTpiW2VdPWF9O2IuX3N0cmluZ1JlZj1lO3JldHVybiBifWlmKFwic3RyaW5nXCIhPT10eXBlb2YgYSl0aHJvdyB0KEVycm9yKDI4NCkpO2lmKCFjLl9vd25lcil0aHJvdyB0KEVycm9yKDI5MCksYSk7fXJldHVybiBhfVxuZnVuY3Rpb24gbWcoYSxiKXtpZihcInRleHRhcmVhXCIhPT1hLnR5cGUpdGhyb3cgdChFcnJvcigzMSksXCJbb2JqZWN0IE9iamVjdF1cIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChiKT9cIm9iamVjdCB3aXRoIGtleXMge1wiK09iamVjdC5rZXlzKGIpLmpvaW4oXCIsIFwiKStcIn1cIjpiLFwiXCIpO31cbmZ1bmN0aW9uIG5nKGEpe2Z1bmN0aW9uIGIoYixjKXtpZihhKXt2YXIgZD1iLmxhc3RFZmZlY3Q7bnVsbCE9PWQ/KGQubmV4dEVmZmVjdD1jLGIubGFzdEVmZmVjdD1jKTpiLmZpcnN0RWZmZWN0PWIubGFzdEVmZmVjdD1jO2MubmV4dEVmZmVjdD1udWxsO2MuZWZmZWN0VGFnPTh9fWZ1bmN0aW9uIGMoYyxkKXtpZighYSlyZXR1cm4gbnVsbDtmb3IoO251bGwhPT1kOyliKGMsZCksZD1kLnNpYmxpbmc7cmV0dXJuIG51bGx9ZnVuY3Rpb24gZChhLGIpe2ZvcihhPW5ldyBNYXA7bnVsbCE9PWI7KW51bGwhPT1iLmtleT9hLnNldChiLmtleSxiKTphLnNldChiLmluZGV4LGIpLGI9Yi5zaWJsaW5nO3JldHVybiBhfWZ1bmN0aW9uIGUoYSxiLGMpe2E9b2coYSxiLGMpO2EuaW5kZXg9MDthLnNpYmxpbmc9bnVsbDtyZXR1cm4gYX1mdW5jdGlvbiBmKGIsYyxkKXtiLmluZGV4PWQ7aWYoIWEpcmV0dXJuIGM7ZD1iLmFsdGVybmF0ZTtpZihudWxsIT09ZClyZXR1cm4gZD1kLmluZGV4LGQ8Yz8oYi5lZmZlY3RUYWc9XG4yLGMpOmQ7Yi5lZmZlY3RUYWc9MjtyZXR1cm4gY31mdW5jdGlvbiBoKGIpe2EmJm51bGw9PT1iLmFsdGVybmF0ZSYmKGIuZWZmZWN0VGFnPTIpO3JldHVybiBifWZ1bmN0aW9uIGcoYSxiLGMsZCl7aWYobnVsbD09PWJ8fDYhPT1iLnRhZylyZXR1cm4gYj1wZyhjLGEubW9kZSxkKSxiLnJldHVybj1hLGI7Yj1lKGIsYyxkKTtiLnJldHVybj1hO3JldHVybiBifWZ1bmN0aW9uIGsoYSxiLGMsZCl7aWYobnVsbCE9PWImJmIuZWxlbWVudFR5cGU9PT1jLnR5cGUpcmV0dXJuIGQ9ZShiLGMucHJvcHMsZCksZC5yZWY9bGcoYSxiLGMpLGQucmV0dXJuPWEsZDtkPXFnKGMudHlwZSxjLmtleSxjLnByb3BzLG51bGwsYS5tb2RlLGQpO2QucmVmPWxnKGEsYixjKTtkLnJldHVybj1hO3JldHVybiBkfWZ1bmN0aW9uIGwoYSxiLGMsZCl7aWYobnVsbD09PWJ8fDQhPT1iLnRhZ3x8Yi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyE9PWMuY29udGFpbmVySW5mb3x8Yi5zdGF0ZU5vZGUuaW1wbGVtZW50YXRpb24hPT1cbmMuaW1wbGVtZW50YXRpb24pcmV0dXJuIGI9cmcoYyxhLm1vZGUsZCksYi5yZXR1cm49YSxiO2I9ZShiLGMuY2hpbGRyZW58fFtdLGQpO2IucmV0dXJuPWE7cmV0dXJuIGJ9ZnVuY3Rpb24gbihhLGIsYyxkLGYpe2lmKG51bGw9PT1ifHw3IT09Yi50YWcpcmV0dXJuIGI9c2coYyxhLm1vZGUsZCxmKSxiLnJldHVybj1hLGI7Yj1lKGIsYyxkKTtiLnJldHVybj1hO3JldHVybiBifWZ1bmN0aW9uIHooYSxiLGMpe2lmKFwic3RyaW5nXCI9PT10eXBlb2YgYnx8XCJudW1iZXJcIj09PXR5cGVvZiBiKXJldHVybiBiPXBnKFwiXCIrYixhLm1vZGUsYyksYi5yZXR1cm49YSxiO2lmKFwib2JqZWN0XCI9PT10eXBlb2YgYiYmbnVsbCE9PWIpe3N3aXRjaChiLiQkdHlwZW9mKXtjYXNlIFpiOnJldHVybiBjPXFnKGIudHlwZSxiLmtleSxiLnByb3BzLG51bGwsYS5tb2RlLGMpLGMucmVmPWxnKGEsbnVsbCxiKSxjLnJldHVybj1hLGM7Y2FzZSAkYjpyZXR1cm4gYj1yZyhiLGEubW9kZSxjKSxiLnJldHVybj1hLGJ9aWYoa2coYil8fFxubWMoYikpcmV0dXJuIGI9c2coYixhLm1vZGUsYyxudWxsKSxiLnJldHVybj1hLGI7bWcoYSxiKX1yZXR1cm4gbnVsbH1mdW5jdGlvbiB4KGEsYixjLGQpe3ZhciBlPW51bGwhPT1iP2Iua2V5Om51bGw7aWYoXCJzdHJpbmdcIj09PXR5cGVvZiBjfHxcIm51bWJlclwiPT09dHlwZW9mIGMpcmV0dXJuIG51bGwhPT1lP251bGw6ZyhhLGIsXCJcIitjLGQpO2lmKFwib2JqZWN0XCI9PT10eXBlb2YgYyYmbnVsbCE9PWMpe3N3aXRjaChjLiQkdHlwZW9mKXtjYXNlIFpiOnJldHVybiBjLmtleT09PWU/Yy50eXBlPT09YWM/bihhLGIsYy5wcm9wcy5jaGlsZHJlbixkLGUpOmsoYSxiLGMsZCk6bnVsbDtjYXNlICRiOnJldHVybiBjLmtleT09PWU/bChhLGIsYyxkKTpudWxsfWlmKGtnKGMpfHxtYyhjKSlyZXR1cm4gbnVsbCE9PWU/bnVsbDpuKGEsYixjLGQsbnVsbCk7bWcoYSxjKX1yZXR1cm4gbnVsbH1mdW5jdGlvbiB2KGEsYixjLGQsZSl7aWYoXCJzdHJpbmdcIj09PXR5cGVvZiBkfHxcIm51bWJlclwiPT09dHlwZW9mIGQpcmV0dXJuIGE9XG5hLmdldChjKXx8bnVsbCxnKGIsYSxcIlwiK2QsZSk7aWYoXCJvYmplY3RcIj09PXR5cGVvZiBkJiZudWxsIT09ZCl7c3dpdGNoKGQuJCR0eXBlb2Ype2Nhc2UgWmI6cmV0dXJuIGE9YS5nZXQobnVsbD09PWQua2V5P2M6ZC5rZXkpfHxudWxsLGQudHlwZT09PWFjP24oYixhLGQucHJvcHMuY2hpbGRyZW4sZSxkLmtleSk6ayhiLGEsZCxlKTtjYXNlICRiOnJldHVybiBhPWEuZ2V0KG51bGw9PT1kLmtleT9jOmQua2V5KXx8bnVsbCxsKGIsYSxkLGUpfWlmKGtnKGQpfHxtYyhkKSlyZXR1cm4gYT1hLmdldChjKXx8bnVsbCxuKGIsYSxkLGUsbnVsbCk7bWcoYixkKX1yZXR1cm4gbnVsbH1mdW5jdGlvbiByYihlLGgsZyxrKXtmb3IodmFyIGw9bnVsbCx1PW51bGwsbj1oLHc9aD0wLEM9bnVsbDtudWxsIT09biYmdzxnLmxlbmd0aDt3Kyspe24uaW5kZXg+dz8oQz1uLG49bnVsbCk6Qz1uLnNpYmxpbmc7dmFyIHA9eChlLG4sZ1t3XSxrKTtpZihudWxsPT09cCl7bnVsbD09PW4mJihuPUMpO2JyZWFrfWEmJlxubiYmbnVsbD09PXAuYWx0ZXJuYXRlJiZiKGUsbik7aD1mKHAsaCx3KTtudWxsPT09dT9sPXA6dS5zaWJsaW5nPXA7dT1wO249Q31pZih3PT09Zy5sZW5ndGgpcmV0dXJuIGMoZSxuKSxsO2lmKG51bGw9PT1uKXtmb3IoO3c8Zy5sZW5ndGg7dysrKW49eihlLGdbd10sayksbnVsbCE9PW4mJihoPWYobixoLHcpLG51bGw9PT11P2w9bjp1LnNpYmxpbmc9bix1PW4pO3JldHVybiBsfWZvcihuPWQoZSxuKTt3PGcubGVuZ3RoO3crKylDPXYobixlLHcsZ1t3XSxrKSxudWxsIT09QyYmKGEmJm51bGwhPT1DLmFsdGVybmF0ZSYmbi5kZWxldGUobnVsbD09PUMua2V5P3c6Qy5rZXkpLGg9ZihDLGgsdyksbnVsbD09PXU/bD1DOnUuc2libGluZz1DLHU9Qyk7YSYmbi5mb3JFYWNoKGZ1bmN0aW9uKGEpe3JldHVybiBiKGUsYSl9KTtyZXR1cm4gbH1mdW5jdGlvbiBCZShlLGgsZyxrKXt2YXIgbD1tYyhnKTtpZihcImZ1bmN0aW9uXCIhPT10eXBlb2YgbCl0aHJvdyB0KEVycm9yKDE1MCkpO2c9bC5jYWxsKGcpO1xuaWYobnVsbD09Zyl0aHJvdyB0KEVycm9yKDE1MSkpO2Zvcih2YXIgbj1sPW51bGwsdT1oLHc9aD0wLEM9bnVsbCxwPWcubmV4dCgpO251bGwhPT11JiYhcC5kb25lO3crKyxwPWcubmV4dCgpKXt1LmluZGV4Pnc/KEM9dSx1PW51bGwpOkM9dS5zaWJsaW5nO3ZhciByPXgoZSx1LHAudmFsdWUsayk7aWYobnVsbD09PXIpe251bGw9PT11JiYodT1DKTticmVha31hJiZ1JiZudWxsPT09ci5hbHRlcm5hdGUmJmIoZSx1KTtoPWYocixoLHcpO251bGw9PT1uP2w9cjpuLnNpYmxpbmc9cjtuPXI7dT1DfWlmKHAuZG9uZSlyZXR1cm4gYyhlLHUpLGw7aWYobnVsbD09PXUpe2Zvcig7IXAuZG9uZTt3KysscD1nLm5leHQoKSlwPXooZSxwLnZhbHVlLGspLG51bGwhPT1wJiYoaD1mKHAsaCx3KSxudWxsPT09bj9sPXA6bi5zaWJsaW5nPXAsbj1wKTtyZXR1cm4gbH1mb3IodT1kKGUsdSk7IXAuZG9uZTt3KysscD1nLm5leHQoKSlwPXYodSxlLHcscC52YWx1ZSxrKSxudWxsIT09cCYmKGEmJm51bGwhPT1cbnAuYWx0ZXJuYXRlJiZ1LmRlbGV0ZShudWxsPT09cC5rZXk/dzpwLmtleSksaD1mKHAsaCx3KSxudWxsPT09bj9sPXA6bi5zaWJsaW5nPXAsbj1wKTthJiZ1LmZvckVhY2goZnVuY3Rpb24oYSl7cmV0dXJuIGIoZSxhKX0pO3JldHVybiBsfXJldHVybiBmdW5jdGlvbihhLGQsZixnKXt2YXIgaz1cIm9iamVjdFwiPT09dHlwZW9mIGYmJm51bGwhPT1mJiZmLnR5cGU9PT1hYyYmbnVsbD09PWYua2V5O2smJihmPWYucHJvcHMuY2hpbGRyZW4pO3ZhciBsPVwib2JqZWN0XCI9PT10eXBlb2YgZiYmbnVsbCE9PWY7aWYobClzd2l0Y2goZi4kJHR5cGVvZil7Y2FzZSBaYjphOntsPWYua2V5O2ZvcihrPWQ7bnVsbCE9PWs7KXtpZihrLmtleT09PWwpe2lmKDc9PT1rLnRhZz9mLnR5cGU9PT1hYzprLmVsZW1lbnRUeXBlPT09Zi50eXBlKXtjKGEsay5zaWJsaW5nKTtkPWUoayxmLnR5cGU9PT1hYz9mLnByb3BzLmNoaWxkcmVuOmYucHJvcHMsZyk7ZC5yZWY9bGcoYSxrLGYpO2QucmV0dXJuPWE7YT1kO2JyZWFrIGF9YyhhLFxuayk7YnJlYWt9ZWxzZSBiKGEsayk7az1rLnNpYmxpbmd9Zi50eXBlPT09YWM/KGQ9c2coZi5wcm9wcy5jaGlsZHJlbixhLm1vZGUsZyxmLmtleSksZC5yZXR1cm49YSxhPWQpOihnPXFnKGYudHlwZSxmLmtleSxmLnByb3BzLG51bGwsYS5tb2RlLGcpLGcucmVmPWxnKGEsZCxmKSxnLnJldHVybj1hLGE9Zyl9cmV0dXJuIGgoYSk7Y2FzZSAkYjphOntmb3Ioaz1mLmtleTtudWxsIT09ZDspe2lmKGQua2V5PT09ayl7aWYoND09PWQudGFnJiZkLnN0YXRlTm9kZS5jb250YWluZXJJbmZvPT09Zi5jb250YWluZXJJbmZvJiZkLnN0YXRlTm9kZS5pbXBsZW1lbnRhdGlvbj09PWYuaW1wbGVtZW50YXRpb24pe2MoYSxkLnNpYmxpbmcpO2Q9ZShkLGYuY2hpbGRyZW58fFtdLGcpO2QucmV0dXJuPWE7YT1kO2JyZWFrIGF9YyhhLGQpO2JyZWFrfWVsc2UgYihhLGQpO2Q9ZC5zaWJsaW5nfWQ9cmcoZixhLm1vZGUsZyk7ZC5yZXR1cm49YTthPWR9cmV0dXJuIGgoYSl9aWYoXCJzdHJpbmdcIj09PXR5cGVvZiBmfHxcblwibnVtYmVyXCI9PT10eXBlb2YgZilyZXR1cm4gZj1cIlwiK2YsbnVsbCE9PWQmJjY9PT1kLnRhZz8oYyhhLGQuc2libGluZyksZD1lKGQsZixnKSxkLnJldHVybj1hLGE9ZCk6KGMoYSxkKSxkPXBnKGYsYS5tb2RlLGcpLGQucmV0dXJuPWEsYT1kKSxoKGEpO2lmKGtnKGYpKXJldHVybiByYihhLGQsZixnKTtpZihtYyhmKSlyZXR1cm4gQmUoYSxkLGYsZyk7bCYmbWcoYSxmKTtpZihcInVuZGVmaW5lZFwiPT09dHlwZW9mIGYmJiFrKXN3aXRjaChhLnRhZyl7Y2FzZSAxOmNhc2UgMDp0aHJvdyBhPWEudHlwZSx0KEVycm9yKDE1MiksYS5kaXNwbGF5TmFtZXx8YS5uYW1lfHxcIkNvbXBvbmVudFwiKTt9cmV0dXJuIGMoYSxkKX19dmFyIHRnPW5nKCEwKSx1Zz1uZyghMSksdmc9e30sd2c9e2N1cnJlbnQ6dmd9LHhnPXtjdXJyZW50OnZnfSx5Zz17Y3VycmVudDp2Z307ZnVuY3Rpb24gemcoYSl7aWYoYT09PXZnKXRocm93IHQoRXJyb3IoMTc0KSk7cmV0dXJuIGF9XG5mdW5jdGlvbiBBZyhhLGIpe0ooeWcsYixhKTtKKHhnLGEsYSk7Sih3Zyx2ZyxhKTt2YXIgYz1iLm5vZGVUeXBlO3N3aXRjaChjKXtjYXNlIDk6Y2FzZSAxMTpiPShiPWIuZG9jdW1lbnRFbGVtZW50KT9iLm5hbWVzcGFjZVVSSTp0ZShudWxsLFwiXCIpO2JyZWFrO2RlZmF1bHQ6Yz04PT09Yz9iLnBhcmVudE5vZGU6YixiPWMubmFtZXNwYWNlVVJJfHxudWxsLGM9Yy50YWdOYW1lLGI9dGUoYixjKX1IKHdnLGEpO0ood2csYixhKX1mdW5jdGlvbiBCZyhhKXtIKHdnLGEpO0goeGcsYSk7SCh5ZyxhKX1mdW5jdGlvbiBDZyhhKXt6Zyh5Zy5jdXJyZW50KTt2YXIgYj16Zyh3Zy5jdXJyZW50KTt2YXIgYz10ZShiLGEudHlwZSk7YiE9PWMmJihKKHhnLGEsYSksSih3ZyxjLGEpKX1mdW5jdGlvbiBEZyhhKXt4Zy5jdXJyZW50PT09YSYmKEgod2csYSksSCh4ZyxhKSl9dmFyIEVnPTEsRmc9MSxHZz0yLFA9e2N1cnJlbnQ6MH07XG5mdW5jdGlvbiBIZyhhKXtmb3IodmFyIGI9YTtudWxsIT09Yjspe2lmKDEzPT09Yi50YWcpe2lmKG51bGwhPT1iLm1lbW9pemVkU3RhdGUpcmV0dXJuIGJ9ZWxzZSBpZigxOT09PWIudGFnJiZ2b2lkIDAhPT1iLm1lbW9pemVkUHJvcHMucmV2ZWFsT3JkZXIpe2lmKDAhPT0oYi5lZmZlY3RUYWcmNjQpKXJldHVybiBifWVsc2UgaWYobnVsbCE9PWIuY2hpbGQpe2IuY2hpbGQucmV0dXJuPWI7Yj1iLmNoaWxkO2NvbnRpbnVlfWlmKGI9PT1hKWJyZWFrO2Zvcig7bnVsbD09PWIuc2libGluZzspe2lmKG51bGw9PT1iLnJldHVybnx8Yi5yZXR1cm49PT1hKXJldHVybiBudWxsO2I9Yi5yZXR1cm59Yi5zaWJsaW5nLnJldHVybj1iLnJldHVybjtiPWIuc2libGluZ31yZXR1cm4gbnVsbH1cbnZhciBJZz0wLEpnPTIsS2c9NCxMZz04LE1nPTE2LE5nPTMyLE9nPTY0LFBnPTEyOCxRZz1YYi5SZWFjdEN1cnJlbnREaXNwYXRjaGVyLFJnPTAsU2c9bnVsbCxRPW51bGwsVGc9bnVsbCxVZz1udWxsLFI9bnVsbCxWZz1udWxsLFdnPTAsWGc9bnVsbCxZZz0wLFpnPSExLCRnPW51bGwsYWg9MDtmdW5jdGlvbiBiaCgpe3Rocm93IHQoRXJyb3IoMzIxKSk7fWZ1bmN0aW9uIGNoKGEsYil7aWYobnVsbD09PWIpcmV0dXJuITE7Zm9yKHZhciBjPTA7YzxiLmxlbmd0aCYmYzxhLmxlbmd0aDtjKyspaWYoIWhkKGFbY10sYltjXSkpcmV0dXJuITE7cmV0dXJuITB9XG5mdW5jdGlvbiBkaChhLGIsYyxkLGUsZil7Umc9ZjtTZz1iO1RnPW51bGwhPT1hP2EubWVtb2l6ZWRTdGF0ZTpudWxsO1FnLmN1cnJlbnQ9bnVsbD09PVRnP2VoOmZoO2I9YyhkLGUpO2lmKFpnKXtkbyBaZz0hMSxhaCs9MSxUZz1udWxsIT09YT9hLm1lbW9pemVkU3RhdGU6bnVsbCxWZz1VZyxYZz1SPVE9bnVsbCxRZy5jdXJyZW50PWZoLGI9YyhkLGUpO3doaWxlKFpnKTskZz1udWxsO2FoPTB9UWcuY3VycmVudD1oaDthPVNnO2EubWVtb2l6ZWRTdGF0ZT1VZzthLmV4cGlyYXRpb25UaW1lPVdnO2EudXBkYXRlUXVldWU9WGc7YS5lZmZlY3RUYWd8PVlnO2E9bnVsbCE9PVEmJm51bGwhPT1RLm5leHQ7Umc9MDtWZz1SPVVnPVRnPVE9U2c9bnVsbDtXZz0wO1hnPW51bGw7WWc9MDtpZihhKXRocm93IHQoRXJyb3IoMzAwKSk7cmV0dXJuIGJ9XG5mdW5jdGlvbiBpaCgpe1FnLmN1cnJlbnQ9aGg7Umc9MDtWZz1SPVVnPVRnPVE9U2c9bnVsbDtXZz0wO1hnPW51bGw7WWc9MDtaZz0hMTskZz1udWxsO2FoPTB9ZnVuY3Rpb24gamgoKXt2YXIgYT17bWVtb2l6ZWRTdGF0ZTpudWxsLGJhc2VTdGF0ZTpudWxsLHF1ZXVlOm51bGwsYmFzZVVwZGF0ZTpudWxsLG5leHQ6bnVsbH07bnVsbD09PVI/VWc9Uj1hOlI9Ui5uZXh0PWE7cmV0dXJuIFJ9ZnVuY3Rpb24ga2goKXtpZihudWxsIT09VmcpUj1WZyxWZz1SLm5leHQsUT1UZyxUZz1udWxsIT09UT9RLm5leHQ6bnVsbDtlbHNle2lmKG51bGw9PT1UZyl0aHJvdyB0KEVycm9yKDMxMCkpO1E9VGc7dmFyIGE9e21lbW9pemVkU3RhdGU6US5tZW1vaXplZFN0YXRlLGJhc2VTdGF0ZTpRLmJhc2VTdGF0ZSxxdWV1ZTpRLnF1ZXVlLGJhc2VVcGRhdGU6US5iYXNlVXBkYXRlLG5leHQ6bnVsbH07Uj1udWxsPT09Uj9VZz1hOlIubmV4dD1hO1RnPVEubmV4dH1yZXR1cm4gUn1cbmZ1bmN0aW9uIGxoKGEsYil7cmV0dXJuXCJmdW5jdGlvblwiPT09dHlwZW9mIGI/YihhKTpifVxuZnVuY3Rpb24gbWgoYSl7dmFyIGI9a2goKSxjPWIucXVldWU7aWYobnVsbD09PWMpdGhyb3cgdChFcnJvcigzMTEpKTtjLmxhc3RSZW5kZXJlZFJlZHVjZXI9YTtpZigwPGFoKXt2YXIgZD1jLmRpc3BhdGNoO2lmKG51bGwhPT0kZyl7dmFyIGU9JGcuZ2V0KGMpO2lmKHZvaWQgMCE9PWUpeyRnLmRlbGV0ZShjKTt2YXIgZj1iLm1lbW9pemVkU3RhdGU7ZG8gZj1hKGYsZS5hY3Rpb24pLGU9ZS5uZXh0O3doaWxlKG51bGwhPT1lKTtoZChmLGIubWVtb2l6ZWRTdGF0ZSl8fChMZj0hMCk7Yi5tZW1vaXplZFN0YXRlPWY7Yi5iYXNlVXBkYXRlPT09Yy5sYXN0JiYoYi5iYXNlU3RhdGU9Zik7Yy5sYXN0UmVuZGVyZWRTdGF0ZT1mO3JldHVybltmLGRdfX1yZXR1cm5bYi5tZW1vaXplZFN0YXRlLGRdfWQ9Yy5sYXN0O3ZhciBoPWIuYmFzZVVwZGF0ZTtmPWIuYmFzZVN0YXRlO251bGwhPT1oPyhudWxsIT09ZCYmKGQubmV4dD1udWxsKSxkPWgubmV4dCk6ZD1udWxsIT09ZD9kLm5leHQ6bnVsbDtpZihudWxsIT09XG5kKXt2YXIgZz1lPW51bGwsaz1kLGw9ITE7ZG97dmFyIG49ay5leHBpcmF0aW9uVGltZTtuPFJnPyhsfHwobD0hMCxnPWgsZT1mKSxuPldnJiYoV2c9bikpOihYZihuLGsuc3VzcGVuc2VDb25maWcpLGY9ay5lYWdlclJlZHVjZXI9PT1hP2suZWFnZXJTdGF0ZTphKGYsay5hY3Rpb24pKTtoPWs7az1rLm5leHR9d2hpbGUobnVsbCE9PWsmJmshPT1kKTtsfHwoZz1oLGU9Zik7aGQoZixiLm1lbW9pemVkU3RhdGUpfHwoTGY9ITApO2IubWVtb2l6ZWRTdGF0ZT1mO2IuYmFzZVVwZGF0ZT1nO2IuYmFzZVN0YXRlPWU7Yy5sYXN0UmVuZGVyZWRTdGF0ZT1mfXJldHVybltiLm1lbW9pemVkU3RhdGUsYy5kaXNwYXRjaF19XG5mdW5jdGlvbiBuaChhLGIsYyxkKXthPXt0YWc6YSxjcmVhdGU6YixkZXN0cm95OmMsZGVwczpkLG5leHQ6bnVsbH07bnVsbD09PVhnPyhYZz17bGFzdEVmZmVjdDpudWxsfSxYZy5sYXN0RWZmZWN0PWEubmV4dD1hKTooYj1YZy5sYXN0RWZmZWN0LG51bGw9PT1iP1hnLmxhc3RFZmZlY3Q9YS5uZXh0PWE6KGM9Yi5uZXh0LGIubmV4dD1hLGEubmV4dD1jLFhnLmxhc3RFZmZlY3Q9YSkpO3JldHVybiBhfWZ1bmN0aW9uIG9oKGEsYixjLGQpe3ZhciBlPWpoKCk7WWd8PWE7ZS5tZW1vaXplZFN0YXRlPW5oKGIsYyx2b2lkIDAsdm9pZCAwPT09ZD9udWxsOmQpfVxuZnVuY3Rpb24gcGgoYSxiLGMsZCl7dmFyIGU9a2goKTtkPXZvaWQgMD09PWQ/bnVsbDpkO3ZhciBmPXZvaWQgMDtpZihudWxsIT09USl7dmFyIGg9US5tZW1vaXplZFN0YXRlO2Y9aC5kZXN0cm95O2lmKG51bGwhPT1kJiZjaChkLGguZGVwcykpe25oKElnLGMsZixkKTtyZXR1cm59fVlnfD1hO2UubWVtb2l6ZWRTdGF0ZT1uaChiLGMsZixkKX1mdW5jdGlvbiBxaChhLGIpe2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBiKXJldHVybiBhPWEoKSxiKGEpLGZ1bmN0aW9uKCl7YihudWxsKX07aWYobnVsbCE9PWImJnZvaWQgMCE9PWIpcmV0dXJuIGE9YSgpLGIuY3VycmVudD1hLGZ1bmN0aW9uKCl7Yi5jdXJyZW50PW51bGx9fWZ1bmN0aW9uIHJoKCl7fVxuZnVuY3Rpb24gc2goYSxiLGMpe2lmKCEoMjU+YWgpKXRocm93IHQoRXJyb3IoMzAxKSk7dmFyIGQ9YS5hbHRlcm5hdGU7aWYoYT09PVNnfHxudWxsIT09ZCYmZD09PVNnKWlmKFpnPSEwLGE9e2V4cGlyYXRpb25UaW1lOlJnLHN1c3BlbnNlQ29uZmlnOm51bGwsYWN0aW9uOmMsZWFnZXJSZWR1Y2VyOm51bGwsZWFnZXJTdGF0ZTpudWxsLG5leHQ6bnVsbH0sbnVsbD09PSRnJiYoJGc9bmV3IE1hcCksYz0kZy5nZXQoYiksdm9pZCAwPT09YykkZy5zZXQoYixhKTtlbHNle2ZvcihiPWM7bnVsbCE9PWIubmV4dDspYj1iLm5leHQ7Yi5uZXh0PWF9ZWxzZXt2YXIgZT1jZygpLGY9JGYuc3VzcGVuc2U7ZT1kZyhlLGEsZik7Zj17ZXhwaXJhdGlvblRpbWU6ZSxzdXNwZW5zZUNvbmZpZzpmLGFjdGlvbjpjLGVhZ2VyUmVkdWNlcjpudWxsLGVhZ2VyU3RhdGU6bnVsbCxuZXh0Om51bGx9O3ZhciBoPWIubGFzdDtpZihudWxsPT09aClmLm5leHQ9ZjtlbHNle3ZhciBnPWgubmV4dDtudWxsIT09ZyYmXG4oZi5uZXh0PWcpO2gubmV4dD1mfWIubGFzdD1mO2lmKDA9PT1hLmV4cGlyYXRpb25UaW1lJiYobnVsbD09PWR8fDA9PT1kLmV4cGlyYXRpb25UaW1lKSYmKGQ9Yi5sYXN0UmVuZGVyZWRSZWR1Y2VyLG51bGwhPT1kKSl0cnl7dmFyIGs9Yi5sYXN0UmVuZGVyZWRTdGF0ZSxsPWQoayxjKTtmLmVhZ2VyUmVkdWNlcj1kO2YuZWFnZXJTdGF0ZT1sO2lmKGhkKGwsaykpcmV0dXJufWNhdGNoKG4pe31maW5hbGx5e31lZyhhLGUpfX1cbnZhciBoaD17cmVhZENvbnRleHQ6TWYsdXNlQ2FsbGJhY2s6YmgsdXNlQ29udGV4dDpiaCx1c2VFZmZlY3Q6YmgsdXNlSW1wZXJhdGl2ZUhhbmRsZTpiaCx1c2VMYXlvdXRFZmZlY3Q6YmgsdXNlTWVtbzpiaCx1c2VSZWR1Y2VyOmJoLHVzZVJlZjpiaCx1c2VTdGF0ZTpiaCx1c2VEZWJ1Z1ZhbHVlOmJoLHVzZVJlc3BvbmRlcjpiaH0sZWg9e3JlYWRDb250ZXh0Ok1mLHVzZUNhbGxiYWNrOmZ1bmN0aW9uKGEsYil7amgoKS5tZW1vaXplZFN0YXRlPVthLHZvaWQgMD09PWI/bnVsbDpiXTtyZXR1cm4gYX0sdXNlQ29udGV4dDpNZix1c2VFZmZlY3Q6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gb2goNTE2LFBnfE9nLGEsYil9LHVzZUltcGVyYXRpdmVIYW5kbGU6ZnVuY3Rpb24oYSxiLGMpe2M9bnVsbCE9PWMmJnZvaWQgMCE9PWM/Yy5jb25jYXQoW2FdKTpudWxsO3JldHVybiBvaCg0LEtnfE5nLHFoLmJpbmQobnVsbCxiLGEpLGMpfSx1c2VMYXlvdXRFZmZlY3Q6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gb2goNCxcbktnfE5nLGEsYil9LHVzZU1lbW86ZnVuY3Rpb24oYSxiKXt2YXIgYz1qaCgpO2I9dm9pZCAwPT09Yj9udWxsOmI7YT1hKCk7Yy5tZW1vaXplZFN0YXRlPVthLGJdO3JldHVybiBhfSx1c2VSZWR1Y2VyOmZ1bmN0aW9uKGEsYixjKXt2YXIgZD1qaCgpO2I9dm9pZCAwIT09Yz9jKGIpOmI7ZC5tZW1vaXplZFN0YXRlPWQuYmFzZVN0YXRlPWI7YT1kLnF1ZXVlPXtsYXN0Om51bGwsZGlzcGF0Y2g6bnVsbCxsYXN0UmVuZGVyZWRSZWR1Y2VyOmEsbGFzdFJlbmRlcmVkU3RhdGU6Yn07YT1hLmRpc3BhdGNoPXNoLmJpbmQobnVsbCxTZyxhKTtyZXR1cm5bZC5tZW1vaXplZFN0YXRlLGFdfSx1c2VSZWY6ZnVuY3Rpb24oYSl7dmFyIGI9amgoKTthPXtjdXJyZW50OmF9O3JldHVybiBiLm1lbW9pemVkU3RhdGU9YX0sdXNlU3RhdGU6ZnVuY3Rpb24oYSl7dmFyIGI9amgoKTtcImZ1bmN0aW9uXCI9PT10eXBlb2YgYSYmKGE9YSgpKTtiLm1lbW9pemVkU3RhdGU9Yi5iYXNlU3RhdGU9YTthPWIucXVldWU9XG57bGFzdDpudWxsLGRpc3BhdGNoOm51bGwsbGFzdFJlbmRlcmVkUmVkdWNlcjpsaCxsYXN0UmVuZGVyZWRTdGF0ZTphfTthPWEuZGlzcGF0Y2g9c2guYmluZChudWxsLFNnLGEpO3JldHVybltiLm1lbW9pemVkU3RhdGUsYV19LHVzZURlYnVnVmFsdWU6cmgsdXNlUmVzcG9uZGVyOmtkfSxmaD17cmVhZENvbnRleHQ6TWYsdXNlQ2FsbGJhY2s6ZnVuY3Rpb24oYSxiKXt2YXIgYz1raCgpO2I9dm9pZCAwPT09Yj9udWxsOmI7dmFyIGQ9Yy5tZW1vaXplZFN0YXRlO2lmKG51bGwhPT1kJiZudWxsIT09YiYmY2goYixkWzFdKSlyZXR1cm4gZFswXTtjLm1lbW9pemVkU3RhdGU9W2EsYl07cmV0dXJuIGF9LHVzZUNvbnRleHQ6TWYsdXNlRWZmZWN0OmZ1bmN0aW9uKGEsYil7cmV0dXJuIHBoKDUxNixQZ3xPZyxhLGIpfSx1c2VJbXBlcmF0aXZlSGFuZGxlOmZ1bmN0aW9uKGEsYixjKXtjPW51bGwhPT1jJiZ2b2lkIDAhPT1jP2MuY29uY2F0KFthXSk6bnVsbDtyZXR1cm4gcGgoNCxLZ3xOZyxxaC5iaW5kKG51bGwsXG5iLGEpLGMpfSx1c2VMYXlvdXRFZmZlY3Q6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gcGgoNCxLZ3xOZyxhLGIpfSx1c2VNZW1vOmZ1bmN0aW9uKGEsYil7dmFyIGM9a2goKTtiPXZvaWQgMD09PWI/bnVsbDpiO3ZhciBkPWMubWVtb2l6ZWRTdGF0ZTtpZihudWxsIT09ZCYmbnVsbCE9PWImJmNoKGIsZFsxXSkpcmV0dXJuIGRbMF07YT1hKCk7Yy5tZW1vaXplZFN0YXRlPVthLGJdO3JldHVybiBhfSx1c2VSZWR1Y2VyOm1oLHVzZVJlZjpmdW5jdGlvbigpe3JldHVybiBraCgpLm1lbW9pemVkU3RhdGV9LHVzZVN0YXRlOmZ1bmN0aW9uKGEpe3JldHVybiBtaChsaCxhKX0sdXNlRGVidWdWYWx1ZTpyaCx1c2VSZXNwb25kZXI6a2R9LHRoPW51bGwsdWg9bnVsbCx2aD0hMTtcbmZ1bmN0aW9uIHdoKGEsYil7dmFyIGM9eGgoNSxudWxsLG51bGwsMCk7Yy5lbGVtZW50VHlwZT1cIkRFTEVURURcIjtjLnR5cGU9XCJERUxFVEVEXCI7Yy5zdGF0ZU5vZGU9YjtjLnJldHVybj1hO2MuZWZmZWN0VGFnPTg7bnVsbCE9PWEubGFzdEVmZmVjdD8oYS5sYXN0RWZmZWN0Lm5leHRFZmZlY3Q9YyxhLmxhc3RFZmZlY3Q9Yyk6YS5maXJzdEVmZmVjdD1hLmxhc3RFZmZlY3Q9Y31mdW5jdGlvbiB5aChhLGIpe3N3aXRjaChhLnRhZyl7Y2FzZSA1OnZhciBjPWEudHlwZTtiPTEhPT1iLm5vZGVUeXBlfHxjLnRvTG93ZXJDYXNlKCkhPT1iLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk/bnVsbDpiO3JldHVybiBudWxsIT09Yj8oYS5zdGF0ZU5vZGU9YiwhMCk6ITE7Y2FzZSA2OnJldHVybiBiPVwiXCI9PT1hLnBlbmRpbmdQcm9wc3x8MyE9PWIubm9kZVR5cGU/bnVsbDpiLG51bGwhPT1iPyhhLnN0YXRlTm9kZT1iLCEwKTohMTtjYXNlIDEzOnJldHVybiExO2RlZmF1bHQ6cmV0dXJuITF9fVxuZnVuY3Rpb24gemgoYSl7aWYodmgpe3ZhciBiPXVoO2lmKGIpe3ZhciBjPWI7aWYoIXloKGEsYikpe2I9TmUoYy5uZXh0U2libGluZyk7aWYoIWJ8fCF5aChhLGIpKXthLmVmZmVjdFRhZ3w9Mjt2aD0hMTt0aD1hO3JldHVybn13aCh0aCxjKX10aD1hO3VoPU5lKGIuZmlyc3RDaGlsZCl9ZWxzZSBhLmVmZmVjdFRhZ3w9Mix2aD0hMSx0aD1hfX1mdW5jdGlvbiBBaChhKXtmb3IoYT1hLnJldHVybjtudWxsIT09YSYmNSE9PWEudGFnJiYzIT09YS50YWcmJjE4IT09YS50YWc7KWE9YS5yZXR1cm47dGg9YX1cbmZ1bmN0aW9uIEJoKGEpe2lmKGEhPT10aClyZXR1cm4hMTtpZighdmgpcmV0dXJuIEFoKGEpLHZoPSEwLCExO3ZhciBiPWEudHlwZTtpZig1IT09YS50YWd8fFwiaGVhZFwiIT09YiYmXCJib2R5XCIhPT1iJiYhS2UoYixhLm1lbW9pemVkUHJvcHMpKWZvcihiPXVoO2I7KXdoKGEsYiksYj1OZShiLm5leHRTaWJsaW5nKTtBaChhKTt1aD10aD9OZShhLnN0YXRlTm9kZS5uZXh0U2libGluZyk6bnVsbDtyZXR1cm4hMH1mdW5jdGlvbiBDaCgpe3VoPXRoPW51bGw7dmg9ITF9dmFyIERoPVhiLlJlYWN0Q3VycmVudE93bmVyLExmPSExO2Z1bmN0aW9uIFMoYSxiLGMsZCl7Yi5jaGlsZD1udWxsPT09YT91ZyhiLG51bGwsYyxkKTp0ZyhiLGEuY2hpbGQsYyxkKX1cbmZ1bmN0aW9uIEVoKGEsYixjLGQsZSl7Yz1jLnJlbmRlcjt2YXIgZj1iLnJlZjtLZihiLGUpO2Q9ZGgoYSxiLGMsZCxmLGUpO2lmKG51bGwhPT1hJiYhTGYpcmV0dXJuIGIudXBkYXRlUXVldWU9YS51cGRhdGVRdWV1ZSxiLmVmZmVjdFRhZyY9LTUxNyxhLmV4cGlyYXRpb25UaW1lPD1lJiYoYS5leHBpcmF0aW9uVGltZT0wKSxGaChhLGIsZSk7Yi5lZmZlY3RUYWd8PTE7UyhhLGIsZCxlKTtyZXR1cm4gYi5jaGlsZH1cbmZ1bmN0aW9uIEdoKGEsYixjLGQsZSxmKXtpZihudWxsPT09YSl7dmFyIGg9Yy50eXBlO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBoJiYhSGgoaCkmJnZvaWQgMD09PWguZGVmYXVsdFByb3BzJiZudWxsPT09Yy5jb21wYXJlJiZ2b2lkIDA9PT1jLmRlZmF1bHRQcm9wcylyZXR1cm4gYi50YWc9MTUsYi50eXBlPWgsSWgoYSxiLGgsZCxlLGYpO2E9cWcoYy50eXBlLG51bGwsZCxudWxsLGIubW9kZSxmKTthLnJlZj1iLnJlZjthLnJldHVybj1iO3JldHVybiBiLmNoaWxkPWF9aD1hLmNoaWxkO2lmKGU8ZiYmKGU9aC5tZW1vaXplZFByb3BzLGM9Yy5jb21wYXJlLGM9bnVsbCE9PWM/YzpqZCxjKGUsZCkmJmEucmVmPT09Yi5yZWYpKXJldHVybiBGaChhLGIsZik7Yi5lZmZlY3RUYWd8PTE7YT1vZyhoLGQsZik7YS5yZWY9Yi5yZWY7YS5yZXR1cm49YjtyZXR1cm4gYi5jaGlsZD1hfVxuZnVuY3Rpb24gSWgoYSxiLGMsZCxlLGYpe3JldHVybiBudWxsIT09YSYmamQoYS5tZW1vaXplZFByb3BzLGQpJiZhLnJlZj09PWIucmVmJiYoTGY9ITEsZTxmKT9GaChhLGIsZik6SmgoYSxiLGMsZCxmKX1mdW5jdGlvbiBLaChhLGIpe3ZhciBjPWIucmVmO2lmKG51bGw9PT1hJiZudWxsIT09Y3x8bnVsbCE9PWEmJmEucmVmIT09YyliLmVmZmVjdFRhZ3w9MTI4fWZ1bmN0aW9uIEpoKGEsYixjLGQsZSl7dmFyIGY9TihjKT9SZTpMLmN1cnJlbnQ7Zj1TZShiLGYpO0tmKGIsZSk7Yz1kaChhLGIsYyxkLGYsZSk7aWYobnVsbCE9PWEmJiFMZilyZXR1cm4gYi51cGRhdGVRdWV1ZT1hLnVwZGF0ZVF1ZXVlLGIuZWZmZWN0VGFnJj0tNTE3LGEuZXhwaXJhdGlvblRpbWU8PWUmJihhLmV4cGlyYXRpb25UaW1lPTApLEZoKGEsYixlKTtiLmVmZmVjdFRhZ3w9MTtTKGEsYixjLGUpO3JldHVybiBiLmNoaWxkfVxuZnVuY3Rpb24gTGgoYSxiLGMsZCxlKXtpZihOKGMpKXt2YXIgZj0hMDtYZShiKX1lbHNlIGY9ITE7S2YoYixlKTtpZihudWxsPT09Yi5zdGF0ZU5vZGUpbnVsbCE9PWEmJihhLmFsdGVybmF0ZT1udWxsLGIuYWx0ZXJuYXRlPW51bGwsYi5lZmZlY3RUYWd8PTIpLGhnKGIsYyxkLGUpLGpnKGIsYyxkLGUpLGQ9ITA7ZWxzZSBpZihudWxsPT09YSl7dmFyIGg9Yi5zdGF0ZU5vZGUsZz1iLm1lbW9pemVkUHJvcHM7aC5wcm9wcz1nO3ZhciBrPWguY29udGV4dCxsPWMuY29udGV4dFR5cGU7XCJvYmplY3RcIj09PXR5cGVvZiBsJiZudWxsIT09bD9sPU1mKGwpOihsPU4oYyk/UmU6TC5jdXJyZW50LGw9U2UoYixsKSk7dmFyIG49Yy5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMsej1cImZ1bmN0aW9uXCI9PT10eXBlb2Ygbnx8XCJmdW5jdGlvblwiPT09dHlwZW9mIGguZ2V0U25hcHNob3RCZWZvcmVVcGRhdGU7enx8XCJmdW5jdGlvblwiIT09dHlwZW9mIGguVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMmJlxuXCJmdW5jdGlvblwiIT09dHlwZW9mIGguY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc3x8KGchPT1kfHxrIT09bCkmJmlnKGIsaCxkLGwpO05mPSExO3ZhciB4PWIubWVtb2l6ZWRTdGF0ZTtrPWguc3RhdGU9eDt2YXIgdj1iLnVwZGF0ZVF1ZXVlO251bGwhPT12JiYoV2YoYix2LGQsaCxlKSxrPWIubWVtb2l6ZWRTdGF0ZSk7ZyE9PWR8fHghPT1rfHxNLmN1cnJlbnR8fE5mPyhcImZ1bmN0aW9uXCI9PT10eXBlb2YgbiYmKGJnKGIsYyxuLGQpLGs9Yi5tZW1vaXplZFN0YXRlKSwoZz1OZnx8Z2coYixjLGcsZCx4LGssbCkpPyh6fHxcImZ1bmN0aW9uXCIhPT10eXBlb2YgaC5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50JiZcImZ1bmN0aW9uXCIhPT10eXBlb2YgaC5jb21wb25lbnRXaWxsTW91bnR8fChcImZ1bmN0aW9uXCI9PT10eXBlb2YgaC5jb21wb25lbnRXaWxsTW91bnQmJmguY29tcG9uZW50V2lsbE1vdW50KCksXCJmdW5jdGlvblwiPT09dHlwZW9mIGguVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCYmXG5oLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQoKSksXCJmdW5jdGlvblwiPT09dHlwZW9mIGguY29tcG9uZW50RGlkTW91bnQmJihiLmVmZmVjdFRhZ3w9NCkpOihcImZ1bmN0aW9uXCI9PT10eXBlb2YgaC5jb21wb25lbnREaWRNb3VudCYmKGIuZWZmZWN0VGFnfD00KSxiLm1lbW9pemVkUHJvcHM9ZCxiLm1lbW9pemVkU3RhdGU9ayksaC5wcm9wcz1kLGguc3RhdGU9ayxoLmNvbnRleHQ9bCxkPWcpOihcImZ1bmN0aW9uXCI9PT10eXBlb2YgaC5jb21wb25lbnREaWRNb3VudCYmKGIuZWZmZWN0VGFnfD00KSxkPSExKX1lbHNlIGg9Yi5zdGF0ZU5vZGUsZz1iLm1lbW9pemVkUHJvcHMsaC5wcm9wcz1iLnR5cGU9PT1iLmVsZW1lbnRUeXBlP2c6QWYoYi50eXBlLGcpLGs9aC5jb250ZXh0LGw9Yy5jb250ZXh0VHlwZSxcIm9iamVjdFwiPT09dHlwZW9mIGwmJm51bGwhPT1sP2w9TWYobCk6KGw9TihjKT9SZTpMLmN1cnJlbnQsbD1TZShiLGwpKSxuPWMuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzLCh6PVxuXCJmdW5jdGlvblwiPT09dHlwZW9mIG58fFwiZnVuY3Rpb25cIj09PXR5cGVvZiBoLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlKXx8XCJmdW5jdGlvblwiIT09dHlwZW9mIGguVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMmJlwiZnVuY3Rpb25cIiE9PXR5cGVvZiBoLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHN8fChnIT09ZHx8ayE9PWwpJiZpZyhiLGgsZCxsKSxOZj0hMSxrPWIubWVtb2l6ZWRTdGF0ZSx4PWguc3RhdGU9ayx2PWIudXBkYXRlUXVldWUsbnVsbCE9PXYmJihXZihiLHYsZCxoLGUpLHg9Yi5tZW1vaXplZFN0YXRlKSxnIT09ZHx8ayE9PXh8fE0uY3VycmVudHx8TmY/KFwiZnVuY3Rpb25cIj09PXR5cGVvZiBuJiYoYmcoYixjLG4sZCkseD1iLm1lbW9pemVkU3RhdGUpLChuPU5mfHxnZyhiLGMsZyxkLGsseCxsKSk/KHp8fFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBoLlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlJiZcImZ1bmN0aW9uXCIhPT10eXBlb2YgaC5jb21wb25lbnRXaWxsVXBkYXRlfHxcbihcImZ1bmN0aW9uXCI9PT10eXBlb2YgaC5jb21wb25lbnRXaWxsVXBkYXRlJiZoLmNvbXBvbmVudFdpbGxVcGRhdGUoZCx4LGwpLFwiZnVuY3Rpb25cIj09PXR5cGVvZiBoLlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlJiZoLlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlKGQseCxsKSksXCJmdW5jdGlvblwiPT09dHlwZW9mIGguY29tcG9uZW50RGlkVXBkYXRlJiYoYi5lZmZlY3RUYWd8PTQpLFwiZnVuY3Rpb25cIj09PXR5cGVvZiBoLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlJiYoYi5lZmZlY3RUYWd8PTI1NikpOihcImZ1bmN0aW9uXCIhPT10eXBlb2YgaC5jb21wb25lbnREaWRVcGRhdGV8fGc9PT1hLm1lbW9pemVkUHJvcHMmJms9PT1hLm1lbW9pemVkU3RhdGV8fChiLmVmZmVjdFRhZ3w9NCksXCJmdW5jdGlvblwiIT09dHlwZW9mIGguZ2V0U25hcHNob3RCZWZvcmVVcGRhdGV8fGc9PT1hLm1lbW9pemVkUHJvcHMmJms9PT1hLm1lbW9pemVkU3RhdGV8fChiLmVmZmVjdFRhZ3w9MjU2KSxiLm1lbW9pemVkUHJvcHM9XG5kLGIubWVtb2l6ZWRTdGF0ZT14KSxoLnByb3BzPWQsaC5zdGF0ZT14LGguY29udGV4dD1sLGQ9bik6KFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBoLmNvbXBvbmVudERpZFVwZGF0ZXx8Zz09PWEubWVtb2l6ZWRQcm9wcyYmaz09PWEubWVtb2l6ZWRTdGF0ZXx8KGIuZWZmZWN0VGFnfD00KSxcImZ1bmN0aW9uXCIhPT10eXBlb2YgaC5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZXx8Zz09PWEubWVtb2l6ZWRQcm9wcyYmaz09PWEubWVtb2l6ZWRTdGF0ZXx8KGIuZWZmZWN0VGFnfD0yNTYpLGQ9ITEpO3JldHVybiBNaChhLGIsYyxkLGYsZSl9XG5mdW5jdGlvbiBNaChhLGIsYyxkLGUsZil7S2goYSxiKTt2YXIgaD0wIT09KGIuZWZmZWN0VGFnJjY0KTtpZighZCYmIWgpcmV0dXJuIGUmJlllKGIsYywhMSksRmgoYSxiLGYpO2Q9Yi5zdGF0ZU5vZGU7RGguY3VycmVudD1iO3ZhciBnPWgmJlwiZnVuY3Rpb25cIiE9PXR5cGVvZiBjLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcj9udWxsOmQucmVuZGVyKCk7Yi5lZmZlY3RUYWd8PTE7bnVsbCE9PWEmJmg/KGIuY2hpbGQ9dGcoYixhLmNoaWxkLG51bGwsZiksYi5jaGlsZD10ZyhiLG51bGwsZyxmKSk6UyhhLGIsZyxmKTtiLm1lbW9pemVkU3RhdGU9ZC5zdGF0ZTtlJiZZZShiLGMsITApO3JldHVybiBiLmNoaWxkfWZ1bmN0aW9uIE5oKGEpe3ZhciBiPWEuc3RhdGVOb2RlO2IucGVuZGluZ0NvbnRleHQ/VmUoYSxiLnBlbmRpbmdDb250ZXh0LGIucGVuZGluZ0NvbnRleHQhPT1iLmNvbnRleHQpOmIuY29udGV4dCYmVmUoYSxiLmNvbnRleHQsITEpO0FnKGEsYi5jb250YWluZXJJbmZvKX1cbnZhciBPaD17fTtcbmZ1bmN0aW9uIFBoKGEsYixjKXt2YXIgZD1iLm1vZGUsZT1iLnBlbmRpbmdQcm9wcyxmPVAuY3VycmVudCxoPW51bGwsZz0hMSxrOyhrPTAhPT0oYi5lZmZlY3RUYWcmNjQpKXx8KGs9MCE9PShmJkdnKSYmKG51bGw9PT1hfHxudWxsIT09YS5tZW1vaXplZFN0YXRlKSk7az8oaD1PaCxnPSEwLGIuZWZmZWN0VGFnJj0tNjUpOm51bGwhPT1hJiZudWxsPT09YS5tZW1vaXplZFN0YXRlfHx2b2lkIDA9PT1lLmZhbGxiYWNrfHwhMD09PWUudW5zdGFibGVfYXZvaWRUaGlzRmFsbGJhY2t8fChmfD1GZyk7ZiY9RWc7SihQLGYsYik7aWYobnVsbD09PWEpaWYoZyl7ZT1lLmZhbGxiYWNrO2E9c2cobnVsbCxkLDAsbnVsbCk7YS5yZXR1cm49YjtpZigwPT09KGIubW9kZSYyKSlmb3IoZz1udWxsIT09Yi5tZW1vaXplZFN0YXRlP2IuY2hpbGQuY2hpbGQ6Yi5jaGlsZCxhLmNoaWxkPWc7bnVsbCE9PWc7KWcucmV0dXJuPWEsZz1nLnNpYmxpbmc7Yz1zZyhlLGQsYyxudWxsKTtjLnJldHVybj1iO2Euc2libGluZz1cbmM7ZD1hfWVsc2UgZD1jPXVnKGIsbnVsbCxlLmNoaWxkcmVuLGMpO2Vsc2V7aWYobnVsbCE9PWEubWVtb2l6ZWRTdGF0ZSlpZihmPWEuY2hpbGQsZD1mLnNpYmxpbmcsZyl7ZT1lLmZhbGxiYWNrO2M9b2coZixmLnBlbmRpbmdQcm9wcywwKTtjLnJldHVybj1iO2lmKDA9PT0oYi5tb2RlJjIpJiYoZz1udWxsIT09Yi5tZW1vaXplZFN0YXRlP2IuY2hpbGQuY2hpbGQ6Yi5jaGlsZCxnIT09Zi5jaGlsZCkpZm9yKGMuY2hpbGQ9ZztudWxsIT09ZzspZy5yZXR1cm49YyxnPWcuc2libGluZztlPW9nKGQsZSxkLmV4cGlyYXRpb25UaW1lKTtlLnJldHVybj1iO2Muc2libGluZz1lO2Q9YztjLmNoaWxkRXhwaXJhdGlvblRpbWU9MDtjPWV9ZWxzZSBkPWM9dGcoYixmLmNoaWxkLGUuY2hpbGRyZW4sYyk7ZWxzZSBpZihmPWEuY2hpbGQsZyl7Zz1lLmZhbGxiYWNrO2U9c2cobnVsbCxkLDAsbnVsbCk7ZS5yZXR1cm49YjtlLmNoaWxkPWY7bnVsbCE9PWYmJihmLnJldHVybj1lKTtpZigwPT09KGIubW9kZSZcbjIpKWZvcihmPW51bGwhPT1iLm1lbW9pemVkU3RhdGU/Yi5jaGlsZC5jaGlsZDpiLmNoaWxkLGUuY2hpbGQ9ZjtudWxsIT09ZjspZi5yZXR1cm49ZSxmPWYuc2libGluZztjPXNnKGcsZCxjLG51bGwpO2MucmV0dXJuPWI7ZS5zaWJsaW5nPWM7Yy5lZmZlY3RUYWd8PTI7ZD1lO2UuY2hpbGRFeHBpcmF0aW9uVGltZT0wfWVsc2UgYz1kPXRnKGIsZixlLmNoaWxkcmVuLGMpO2Iuc3RhdGVOb2RlPWEuc3RhdGVOb2RlfWIubWVtb2l6ZWRTdGF0ZT1oO2IuY2hpbGQ9ZDtyZXR1cm4gY31mdW5jdGlvbiBRaChhLGIsYyxkLGUpe3ZhciBmPWEubWVtb2l6ZWRTdGF0ZTtudWxsPT09Zj9hLm1lbW9pemVkU3RhdGU9e2lzQmFja3dhcmRzOmIscmVuZGVyaW5nOm51bGwsbGFzdDpkLHRhaWw6Yyx0YWlsRXhwaXJhdGlvbjowLHRhaWxNb2RlOmV9OihmLmlzQmFja3dhcmRzPWIsZi5yZW5kZXJpbmc9bnVsbCxmLmxhc3Q9ZCxmLnRhaWw9YyxmLnRhaWxFeHBpcmF0aW9uPTAsZi50YWlsTW9kZT1lKX1cbmZ1bmN0aW9uIFJoKGEsYixjKXt2YXIgZD1iLnBlbmRpbmdQcm9wcyxlPWQucmV2ZWFsT3JkZXIsZj1kLnRhaWw7UyhhLGIsZC5jaGlsZHJlbixjKTtkPVAuY3VycmVudDtpZigwIT09KGQmR2cpKWQ9ZCZFZ3xHZyxiLmVmZmVjdFRhZ3w9NjQ7ZWxzZXtpZihudWxsIT09YSYmMCE9PShhLmVmZmVjdFRhZyY2NCkpYTpmb3IoYT1iLmNoaWxkO251bGwhPT1hOyl7aWYoMTM9PT1hLnRhZyl7aWYobnVsbCE9PWEubWVtb2l6ZWRTdGF0ZSl7YS5leHBpcmF0aW9uVGltZTxjJiYoYS5leHBpcmF0aW9uVGltZT1jKTt2YXIgaD1hLmFsdGVybmF0ZTtudWxsIT09aCYmaC5leHBpcmF0aW9uVGltZTxjJiYoaC5leHBpcmF0aW9uVGltZT1jKTtKZihhLnJldHVybixjKX19ZWxzZSBpZihudWxsIT09YS5jaGlsZCl7YS5jaGlsZC5yZXR1cm49YTthPWEuY2hpbGQ7Y29udGludWV9aWYoYT09PWIpYnJlYWsgYTtmb3IoO251bGw9PT1hLnNpYmxpbmc7KXtpZihudWxsPT09YS5yZXR1cm58fGEucmV0dXJuPT09XG5iKWJyZWFrIGE7YT1hLnJldHVybn1hLnNpYmxpbmcucmV0dXJuPWEucmV0dXJuO2E9YS5zaWJsaW5nfWQmPUVnfUooUCxkLGIpO2lmKDA9PT0oYi5tb2RlJjIpKWIubWVtb2l6ZWRTdGF0ZT1udWxsO2Vsc2Ugc3dpdGNoKGUpe2Nhc2UgXCJmb3J3YXJkc1wiOmM9Yi5jaGlsZDtmb3IoZT1udWxsO251bGwhPT1jOylkPWMuYWx0ZXJuYXRlLG51bGwhPT1kJiZudWxsPT09SGcoZCkmJihlPWMpLGM9Yy5zaWJsaW5nO2M9ZTtudWxsPT09Yz8oZT1iLmNoaWxkLGIuY2hpbGQ9bnVsbCk6KGU9Yy5zaWJsaW5nLGMuc2libGluZz1udWxsKTtRaChiLCExLGUsYyxmKTticmVhaztjYXNlIFwiYmFja3dhcmRzXCI6Yz1udWxsO2U9Yi5jaGlsZDtmb3IoYi5jaGlsZD1udWxsO251bGwhPT1lOyl7ZD1lLmFsdGVybmF0ZTtpZihudWxsIT09ZCYmbnVsbD09PUhnKGQpKXtiLmNoaWxkPWU7YnJlYWt9ZD1lLnNpYmxpbmc7ZS5zaWJsaW5nPWM7Yz1lO2U9ZH1RaChiLCEwLGMsbnVsbCxmKTticmVhaztjYXNlIFwidG9nZXRoZXJcIjpRaChiLFxuITEsbnVsbCxudWxsLHZvaWQgMCk7YnJlYWs7ZGVmYXVsdDpiLm1lbW9pemVkU3RhdGU9bnVsbH1yZXR1cm4gYi5jaGlsZH1mdW5jdGlvbiBGaChhLGIsYyl7bnVsbCE9PWEmJihiLmRlcGVuZGVuY2llcz1hLmRlcGVuZGVuY2llcyk7aWYoYi5jaGlsZEV4cGlyYXRpb25UaW1lPGMpcmV0dXJuIG51bGw7aWYobnVsbCE9PWEmJmIuY2hpbGQhPT1hLmNoaWxkKXRocm93IHQoRXJyb3IoMTUzKSk7aWYobnVsbCE9PWIuY2hpbGQpe2E9Yi5jaGlsZDtjPW9nKGEsYS5wZW5kaW5nUHJvcHMsYS5leHBpcmF0aW9uVGltZSk7Yi5jaGlsZD1jO2ZvcihjLnJldHVybj1iO251bGwhPT1hLnNpYmxpbmc7KWE9YS5zaWJsaW5nLGM9Yy5zaWJsaW5nPW9nKGEsYS5wZW5kaW5nUHJvcHMsYS5leHBpcmF0aW9uVGltZSksYy5yZXR1cm49YjtjLnNpYmxpbmc9bnVsbH1yZXR1cm4gYi5jaGlsZH1mdW5jdGlvbiBTaChhKXthLmVmZmVjdFRhZ3w9NH1cbnZhciBUaD12b2lkIDAsVWg9dm9pZCAwLFZoPXZvaWQgMCxXaD12b2lkIDA7VGg9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9Yi5jaGlsZDtudWxsIT09Yzspe2lmKDU9PT1jLnRhZ3x8Nj09PWMudGFnKWEuYXBwZW5kQ2hpbGQoYy5zdGF0ZU5vZGUpO2Vsc2UgaWYoMjA9PT1jLnRhZylhLmFwcGVuZENoaWxkKGMuc3RhdGVOb2RlLmluc3RhbmNlKTtlbHNlIGlmKDQhPT1jLnRhZyYmbnVsbCE9PWMuY2hpbGQpe2MuY2hpbGQucmV0dXJuPWM7Yz1jLmNoaWxkO2NvbnRpbnVlfWlmKGM9PT1iKWJyZWFrO2Zvcig7bnVsbD09PWMuc2libGluZzspe2lmKG51bGw9PT1jLnJldHVybnx8Yy5yZXR1cm49PT1iKXJldHVybjtjPWMucmV0dXJufWMuc2libGluZy5yZXR1cm49Yy5yZXR1cm47Yz1jLnNpYmxpbmd9fTtVaD1mdW5jdGlvbigpe307XG5WaD1mdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmPWEubWVtb2l6ZWRQcm9wcztpZihmIT09ZCl7dmFyIGg9Yi5zdGF0ZU5vZGU7emcod2cuY3VycmVudCk7YT1udWxsO3N3aXRjaChjKXtjYXNlIFwiaW5wdXRcIjpmPUJjKGgsZik7ZD1CYyhoLGQpO2E9W107YnJlYWs7Y2FzZSBcIm9wdGlvblwiOmY9bGUoaCxmKTtkPWxlKGgsZCk7YT1bXTticmVhaztjYXNlIFwic2VsZWN0XCI6Zj1tKHt9LGYse3ZhbHVlOnZvaWQgMH0pO2Q9bSh7fSxkLHt2YWx1ZTp2b2lkIDB9KTthPVtdO2JyZWFrO2Nhc2UgXCJ0ZXh0YXJlYVwiOmY9bmUoaCxmKTtkPW5lKGgsZCk7YT1bXTticmVhaztkZWZhdWx0OlwiZnVuY3Rpb25cIiE9PXR5cGVvZiBmLm9uQ2xpY2smJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBkLm9uQ2xpY2smJihoLm9uY2xpY2s9R2UpfURlKGMsZCk7aD1jPXZvaWQgMDt2YXIgZz1udWxsO2ZvcihjIGluIGYpaWYoIWQuaGFzT3duUHJvcGVydHkoYykmJmYuaGFzT3duUHJvcGVydHkoYykmJm51bGwhPWZbY10paWYoXCJzdHlsZVwiPT09XG5jKXt2YXIgaz1mW2NdO2ZvcihoIGluIGspay5oYXNPd25Qcm9wZXJ0eShoKSYmKGd8fChnPXt9KSxnW2hdPVwiXCIpfWVsc2VcImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MXCIhPT1jJiZcImNoaWxkcmVuXCIhPT1jJiZcInN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZ1wiIT09YyYmXCJzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmdcIiE9PWMmJlwiYXV0b0ZvY3VzXCIhPT1jJiYoaWEuaGFzT3duUHJvcGVydHkoYyk/YXx8KGE9W10pOihhPWF8fFtdKS5wdXNoKGMsbnVsbCkpO2ZvcihjIGluIGQpe3ZhciBsPWRbY107az1udWxsIT1mP2ZbY106dm9pZCAwO2lmKGQuaGFzT3duUHJvcGVydHkoYykmJmwhPT1rJiYobnVsbCE9bHx8bnVsbCE9aykpaWYoXCJzdHlsZVwiPT09YylpZihrKXtmb3IoaCBpbiBrKSFrLmhhc093blByb3BlcnR5KGgpfHxsJiZsLmhhc093blByb3BlcnR5KGgpfHwoZ3x8KGc9e30pLGdbaF09XCJcIik7Zm9yKGggaW4gbClsLmhhc093blByb3BlcnR5KGgpJiZrW2hdIT09bFtoXSYmKGd8fFxuKGc9e30pLGdbaF09bFtoXSl9ZWxzZSBnfHwoYXx8KGE9W10pLGEucHVzaChjLGcpKSxnPWw7ZWxzZVwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxcIj09PWM/KGw9bD9sLl9faHRtbDp2b2lkIDAsaz1rP2suX19odG1sOnZvaWQgMCxudWxsIT1sJiZrIT09bCYmKGE9YXx8W10pLnB1c2goYyxcIlwiK2wpKTpcImNoaWxkcmVuXCI9PT1jP2s9PT1sfHxcInN0cmluZ1wiIT09dHlwZW9mIGwmJlwibnVtYmVyXCIhPT10eXBlb2YgbHx8KGE9YXx8W10pLnB1c2goYyxcIlwiK2wpOlwic3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nXCIhPT1jJiZcInN1cHByZXNzSHlkcmF0aW9uV2FybmluZ1wiIT09YyYmKGlhLmhhc093blByb3BlcnR5KGMpPyhudWxsIT1sJiZGZShlLGMpLGF8fGs9PT1sfHwoYT1bXSkpOihhPWF8fFtdKS5wdXNoKGMsbCkpfWcmJihhPWF8fFtdKS5wdXNoKFwic3R5bGVcIixnKTtlPWE7KGIudXBkYXRlUXVldWU9ZSkmJlNoKGIpfX07V2g9ZnVuY3Rpb24oYSxiLGMsZCl7YyE9PWQmJlNoKGIpfTtcbmZ1bmN0aW9uICRoKGEsYil7c3dpdGNoKGEudGFpbE1vZGUpe2Nhc2UgXCJoaWRkZW5cIjpiPWEudGFpbDtmb3IodmFyIGM9bnVsbDtudWxsIT09YjspbnVsbCE9PWIuYWx0ZXJuYXRlJiYoYz1iKSxiPWIuc2libGluZztudWxsPT09Yz9hLnRhaWw9bnVsbDpjLnNpYmxpbmc9bnVsbDticmVhaztjYXNlIFwiY29sbGFwc2VkXCI6Yz1hLnRhaWw7Zm9yKHZhciBkPW51bGw7bnVsbCE9PWM7KW51bGwhPT1jLmFsdGVybmF0ZSYmKGQ9YyksYz1jLnNpYmxpbmc7bnVsbD09PWQ/Ynx8bnVsbD09PWEudGFpbD9hLnRhaWw9bnVsbDphLnRhaWwuc2libGluZz1udWxsOmQuc2libGluZz1udWxsfX1cbmZ1bmN0aW9uIGFpKGEpe3N3aXRjaChhLnRhZyl7Y2FzZSAxOk4oYS50eXBlKSYmVGUoYSk7dmFyIGI9YS5lZmZlY3RUYWc7cmV0dXJuIGImMjA0OD8oYS5lZmZlY3RUYWc9YiYtMjA0OXw2NCxhKTpudWxsO2Nhc2UgMzpCZyhhKTtVZShhKTtiPWEuZWZmZWN0VGFnO2lmKDAhPT0oYiY2NCkpdGhyb3cgdChFcnJvcigyODUpKTthLmVmZmVjdFRhZz1iJi0yMDQ5fDY0O3JldHVybiBhO2Nhc2UgNTpyZXR1cm4gRGcoYSksbnVsbDtjYXNlIDEzOnJldHVybiBIKFAsYSksYj1hLmVmZmVjdFRhZyxiJjIwNDg/KGEuZWZmZWN0VGFnPWImLTIwNDl8NjQsYSk6bnVsbDtjYXNlIDE4OnJldHVybiBudWxsO2Nhc2UgMTk6cmV0dXJuIEgoUCxhKSxudWxsO2Nhc2UgNDpyZXR1cm4gQmcoYSksbnVsbDtjYXNlIDEwOnJldHVybiBJZihhKSxudWxsO2RlZmF1bHQ6cmV0dXJuIG51bGx9fWZ1bmN0aW9uIGJpKGEsYil7cmV0dXJue3ZhbHVlOmEsc291cmNlOmIsc3RhY2s6cGMoYil9fVxudmFyIGNpPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBXZWFrU2V0P1dlYWtTZXQ6U2V0O2Z1bmN0aW9uIGRpKGEsYil7dmFyIGM9Yi5zb3VyY2UsZD1iLnN0YWNrO251bGw9PT1kJiZudWxsIT09YyYmKGQ9cGMoYykpO251bGwhPT1jJiZvYyhjLnR5cGUpO2I9Yi52YWx1ZTtudWxsIT09YSYmMT09PWEudGFnJiZvYyhhLnR5cGUpO3RyeXtjb25zb2xlLmVycm9yKGIpfWNhdGNoKGUpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXt0aHJvdyBlO30pfX1mdW5jdGlvbiBlaShhLGIpe3RyeXtiLnByb3BzPWEubWVtb2l6ZWRQcm9wcyxiLnN0YXRlPWEubWVtb2l6ZWRTdGF0ZSxiLmNvbXBvbmVudFdpbGxVbm1vdW50KCl9Y2F0Y2goYyl7ZmkoYSxjKX19ZnVuY3Rpb24gZ2koYSl7dmFyIGI9YS5yZWY7aWYobnVsbCE9PWIpaWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGIpdHJ5e2IobnVsbCl9Y2F0Y2goYyl7ZmkoYSxjKX1lbHNlIGIuY3VycmVudD1udWxsfVxuZnVuY3Rpb24gaGkoYSxiLGMpe2M9Yy51cGRhdGVRdWV1ZTtjPW51bGwhPT1jP2MubGFzdEVmZmVjdDpudWxsO2lmKG51bGwhPT1jKXt2YXIgZD1jPWMubmV4dDtkb3tpZigoZC50YWcmYSkhPT1JZyl7dmFyIGU9ZC5kZXN0cm95O2QuZGVzdHJveT12b2lkIDA7dm9pZCAwIT09ZSYmZSgpfShkLnRhZyZiKSE9PUlnJiYoZT1kLmNyZWF0ZSxkLmRlc3Ryb3k9ZSgpKTtkPWQubmV4dH13aGlsZShkIT09Yyl9fVxuZnVuY3Rpb24gaWkoYSxiKXtcImZ1bmN0aW9uXCI9PT10eXBlb2YgamkmJmppKGEpO3N3aXRjaChhLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNDpjYXNlIDE1OnZhciBjPWEudXBkYXRlUXVldWU7aWYobnVsbCE9PWMmJihjPWMubGFzdEVmZmVjdCxudWxsIT09Yykpe3ZhciBkPWMubmV4dDt2Zig5NzxiPzk3OmIsZnVuY3Rpb24oKXt2YXIgYj1kO2Rve3ZhciBjPWIuZGVzdHJveTtpZih2b2lkIDAhPT1jKXt2YXIgaD1hO3RyeXtjKCl9Y2F0Y2goZyl7ZmkoaCxnKX19Yj1iLm5leHR9d2hpbGUoYiE9PWQpfSl9YnJlYWs7Y2FzZSAxOmdpKGEpO2I9YS5zdGF0ZU5vZGU7XCJmdW5jdGlvblwiPT09dHlwZW9mIGIuY29tcG9uZW50V2lsbFVubW91bnQmJmVpKGEsYik7YnJlYWs7Y2FzZSA1OmdpKGEpO2JyZWFrO2Nhc2UgNDpraShhLGIpfX1cbmZ1bmN0aW9uIGxpKGEsYil7Zm9yKHZhciBjPWE7OylpZihpaShjLGIpLG51bGwhPT1jLmNoaWxkJiY0IT09Yy50YWcpYy5jaGlsZC5yZXR1cm49YyxjPWMuY2hpbGQ7ZWxzZXtpZihjPT09YSlicmVhaztmb3IoO251bGw9PT1jLnNpYmxpbmc7KXtpZihudWxsPT09Yy5yZXR1cm58fGMucmV0dXJuPT09YSlyZXR1cm47Yz1jLnJldHVybn1jLnNpYmxpbmcucmV0dXJuPWMucmV0dXJuO2M9Yy5zaWJsaW5nfX1mdW5jdGlvbiBtaShhKXtyZXR1cm4gNT09PWEudGFnfHwzPT09YS50YWd8fDQ9PT1hLnRhZ31cbmZ1bmN0aW9uIG5pKGEpe2E6e2Zvcih2YXIgYj1hLnJldHVybjtudWxsIT09Yjspe2lmKG1pKGIpKXt2YXIgYz1iO2JyZWFrIGF9Yj1iLnJldHVybn10aHJvdyB0KEVycm9yKDE2MCkpO31iPWMuc3RhdGVOb2RlO3N3aXRjaChjLnRhZyl7Y2FzZSA1OnZhciBkPSExO2JyZWFrO2Nhc2UgMzpiPWIuY29udGFpbmVySW5mbztkPSEwO2JyZWFrO2Nhc2UgNDpiPWIuY29udGFpbmVySW5mbztkPSEwO2JyZWFrO2RlZmF1bHQ6dGhyb3cgdChFcnJvcigxNjEpKTt9Yy5lZmZlY3RUYWcmMTYmJih3ZShiLFwiXCIpLGMuZWZmZWN0VGFnJj0tMTcpO2E6Yjpmb3IoYz1hOzspe2Zvcig7bnVsbD09PWMuc2libGluZzspe2lmKG51bGw9PT1jLnJldHVybnx8bWkoYy5yZXR1cm4pKXtjPW51bGw7YnJlYWsgYX1jPWMucmV0dXJufWMuc2libGluZy5yZXR1cm49Yy5yZXR1cm47Zm9yKGM9Yy5zaWJsaW5nOzUhPT1jLnRhZyYmNiE9PWMudGFnJiYxOCE9PWMudGFnOyl7aWYoYy5lZmZlY3RUYWcmMiljb250aW51ZSBiO1xuaWYobnVsbD09PWMuY2hpbGR8fDQ9PT1jLnRhZyljb250aW51ZSBiO2Vsc2UgYy5jaGlsZC5yZXR1cm49YyxjPWMuY2hpbGR9aWYoIShjLmVmZmVjdFRhZyYyKSl7Yz1jLnN0YXRlTm9kZTticmVhayBhfX1mb3IodmFyIGU9YTs7KXt2YXIgZj01PT09ZS50YWd8fDY9PT1lLnRhZztpZihmfHwyMD09PWUudGFnKXt2YXIgaD1mP2Uuc3RhdGVOb2RlOmUuc3RhdGVOb2RlLmluc3RhbmNlO2lmKGMpaWYoZCl7Zj1iO3ZhciBnPWg7aD1jOzg9PT1mLm5vZGVUeXBlP2YucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZyxoKTpmLmluc2VydEJlZm9yZShnLGgpfWVsc2UgYi5pbnNlcnRCZWZvcmUoaCxjKTtlbHNlIGQ/KGc9Yiw4PT09Zy5ub2RlVHlwZT8oZj1nLnBhcmVudE5vZGUsZi5pbnNlcnRCZWZvcmUoaCxnKSk6KGY9ZyxmLmFwcGVuZENoaWxkKGgpKSxnPWcuX3JlYWN0Um9vdENvbnRhaW5lcixudWxsIT09ZyYmdm9pZCAwIT09Z3x8bnVsbCE9PWYub25jbGlja3x8KGYub25jbGljaz1HZSkpOlxuYi5hcHBlbmRDaGlsZChoKX1lbHNlIGlmKDQhPT1lLnRhZyYmbnVsbCE9PWUuY2hpbGQpe2UuY2hpbGQucmV0dXJuPWU7ZT1lLmNoaWxkO2NvbnRpbnVlfWlmKGU9PT1hKWJyZWFrO2Zvcig7bnVsbD09PWUuc2libGluZzspe2lmKG51bGw9PT1lLnJldHVybnx8ZS5yZXR1cm49PT1hKXJldHVybjtlPWUucmV0dXJufWUuc2libGluZy5yZXR1cm49ZS5yZXR1cm47ZT1lLnNpYmxpbmd9fVxuZnVuY3Rpb24ga2koYSxiKXtmb3IodmFyIGM9YSxkPSExLGU9dm9pZCAwLGY9dm9pZCAwOzspe2lmKCFkKXtkPWMucmV0dXJuO2E6Zm9yKDs7KXtpZihudWxsPT09ZCl0aHJvdyB0KEVycm9yKDE2MCkpO2U9ZC5zdGF0ZU5vZGU7c3dpdGNoKGQudGFnKXtjYXNlIDU6Zj0hMTticmVhayBhO2Nhc2UgMzplPWUuY29udGFpbmVySW5mbztmPSEwO2JyZWFrIGE7Y2FzZSA0OmU9ZS5jb250YWluZXJJbmZvO2Y9ITA7YnJlYWsgYX1kPWQucmV0dXJufWQ9ITB9aWYoNT09PWMudGFnfHw2PT09Yy50YWcpaWYobGkoYyxiKSxmKXt2YXIgaD1lLGc9Yy5zdGF0ZU5vZGU7OD09PWgubm9kZVR5cGU/aC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGcpOmgucmVtb3ZlQ2hpbGQoZyl9ZWxzZSBlLnJlbW92ZUNoaWxkKGMuc3RhdGVOb2RlKTtlbHNlIGlmKDIwPT09Yy50YWcpZz1jLnN0YXRlTm9kZS5pbnN0YW5jZSxsaShjLGIpLGY/KGg9ZSw4PT09aC5ub2RlVHlwZT9oLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZyk6XG5oLnJlbW92ZUNoaWxkKGcpKTplLnJlbW92ZUNoaWxkKGcpO2Vsc2UgaWYoND09PWMudGFnKXtpZihudWxsIT09Yy5jaGlsZCl7ZT1jLnN0YXRlTm9kZS5jb250YWluZXJJbmZvO2Y9ITA7Yy5jaGlsZC5yZXR1cm49YztjPWMuY2hpbGQ7Y29udGludWV9fWVsc2UgaWYoaWkoYyxiKSxudWxsIT09Yy5jaGlsZCl7Yy5jaGlsZC5yZXR1cm49YztjPWMuY2hpbGQ7Y29udGludWV9aWYoYz09PWEpYnJlYWs7Zm9yKDtudWxsPT09Yy5zaWJsaW5nOyl7aWYobnVsbD09PWMucmV0dXJufHxjLnJldHVybj09PWEpcmV0dXJuO2M9Yy5yZXR1cm47ND09PWMudGFnJiYoZD0hMSl9Yy5zaWJsaW5nLnJldHVybj1jLnJldHVybjtjPWMuc2libGluZ319XG5mdW5jdGlvbiBvaShhLGIpe3N3aXRjaChiLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNDpjYXNlIDE1OmhpKEtnLExnLGIpO2JyZWFrO2Nhc2UgMTpicmVhaztjYXNlIDU6dmFyIGM9Yi5zdGF0ZU5vZGU7aWYobnVsbCE9Yyl7dmFyIGQ9Yi5tZW1vaXplZFByb3BzLGU9bnVsbCE9PWE/YS5tZW1vaXplZFByb3BzOmQ7YT1iLnR5cGU7dmFyIGY9Yi51cGRhdGVRdWV1ZTtiLnVwZGF0ZVF1ZXVlPW51bGw7aWYobnVsbCE9PWYpe2NbR2FdPWQ7XCJpbnB1dFwiPT09YSYmXCJyYWRpb1wiPT09ZC50eXBlJiZudWxsIT1kLm5hbWUmJkRjKGMsZCk7RWUoYSxlKTtiPUVlKGEsZCk7Zm9yKGU9MDtlPGYubGVuZ3RoO2UrPTIpe3ZhciBoPWZbZV0sZz1mW2UrMV07XCJzdHlsZVwiPT09aD9BZShjLGcpOlwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxcIj09PWg/dmUoYyxnKTpcImNoaWxkcmVuXCI9PT1oP3dlKGMsZyk6emMoYyxoLGcsYil9c3dpdGNoKGEpe2Nhc2UgXCJpbnB1dFwiOkVjKGMsZCk7YnJlYWs7Y2FzZSBcInRleHRhcmVhXCI6cGUoYyxcbmQpO2JyZWFrO2Nhc2UgXCJzZWxlY3RcIjpiPWMuX3dyYXBwZXJTdGF0ZS53YXNNdWx0aXBsZSxjLl93cmFwcGVyU3RhdGUud2FzTXVsdGlwbGU9ISFkLm11bHRpcGxlLGE9ZC52YWx1ZSxudWxsIT1hP21lKGMsISFkLm11bHRpcGxlLGEsITEpOmIhPT0hIWQubXVsdGlwbGUmJihudWxsIT1kLmRlZmF1bHRWYWx1ZT9tZShjLCEhZC5tdWx0aXBsZSxkLmRlZmF1bHRWYWx1ZSwhMCk6bWUoYywhIWQubXVsdGlwbGUsZC5tdWx0aXBsZT9bXTpcIlwiLCExKSl9fX1icmVhaztjYXNlIDY6aWYobnVsbD09PWIuc3RhdGVOb2RlKXRocm93IHQoRXJyb3IoMTYyKSk7Yi5zdGF0ZU5vZGUubm9kZVZhbHVlPWIubWVtb2l6ZWRQcm9wczticmVhaztjYXNlIDM6YnJlYWs7Y2FzZSAxMjpicmVhaztjYXNlIDEzOmM9YjtudWxsPT09Yi5tZW1vaXplZFN0YXRlP2Q9ITE6KGQ9ITAsYz1iLmNoaWxkLHBpPXNmKCkpO2lmKG51bGwhPT1jKWE6Zm9yKGE9Yzs7KXtpZig1PT09YS50YWcpZj1hLnN0YXRlTm9kZSxkPyhmPVxuZi5zdHlsZSxcImZ1bmN0aW9uXCI9PT10eXBlb2YgZi5zZXRQcm9wZXJ0eT9mLnNldFByb3BlcnR5KFwiZGlzcGxheVwiLFwibm9uZVwiLFwiaW1wb3J0YW50XCIpOmYuZGlzcGxheT1cIm5vbmVcIik6KGY9YS5zdGF0ZU5vZGUsZT1hLm1lbW9pemVkUHJvcHMuc3R5bGUsZT12b2lkIDAhPT1lJiZudWxsIT09ZSYmZS5oYXNPd25Qcm9wZXJ0eShcImRpc3BsYXlcIik/ZS5kaXNwbGF5Om51bGwsZi5zdHlsZS5kaXNwbGF5PXplKFwiZGlzcGxheVwiLGUpKTtlbHNlIGlmKDY9PT1hLnRhZylhLnN0YXRlTm9kZS5ub2RlVmFsdWU9ZD9cIlwiOmEubWVtb2l6ZWRQcm9wcztlbHNlIGlmKDEzPT09YS50YWcmJm51bGwhPT1hLm1lbW9pemVkU3RhdGUpe2Y9YS5jaGlsZC5zaWJsaW5nO2YucmV0dXJuPWE7YT1mO2NvbnRpbnVlfWVsc2UgaWYobnVsbCE9PWEuY2hpbGQpe2EuY2hpbGQucmV0dXJuPWE7YT1hLmNoaWxkO2NvbnRpbnVlfWlmKGE9PT1jKWJyZWFrIGE7Zm9yKDtudWxsPT09YS5zaWJsaW5nOyl7aWYobnVsbD09PVxuYS5yZXR1cm58fGEucmV0dXJuPT09YylicmVhayBhO2E9YS5yZXR1cm59YS5zaWJsaW5nLnJldHVybj1hLnJldHVybjthPWEuc2libGluZ31xaShiKTticmVhaztjYXNlIDE5OnFpKGIpO2JyZWFrO2Nhc2UgMTc6YnJlYWs7Y2FzZSAyMDpicmVhaztkZWZhdWx0OnRocm93IHQoRXJyb3IoMTYzKSk7fX1mdW5jdGlvbiBxaShhKXt2YXIgYj1hLnVwZGF0ZVF1ZXVlO2lmKG51bGwhPT1iKXthLnVwZGF0ZVF1ZXVlPW51bGw7dmFyIGM9YS5zdGF0ZU5vZGU7bnVsbD09PWMmJihjPWEuc3RhdGVOb2RlPW5ldyBjaSk7Yi5mb3JFYWNoKGZ1bmN0aW9uKGIpe3ZhciBkPXJpLmJpbmQobnVsbCxhLGIpO2MuaGFzKGIpfHwoYy5hZGQoYiksYi50aGVuKGQsZCkpfSl9fXZhciBzaT1cImZ1bmN0aW9uXCI9PT10eXBlb2YgV2Vha01hcD9XZWFrTWFwOk1hcDtcbmZ1bmN0aW9uIHRpKGEsYixjKXtjPVFmKGMsbnVsbCk7Yy50YWc9MztjLnBheWxvYWQ9e2VsZW1lbnQ6bnVsbH07dmFyIGQ9Yi52YWx1ZTtjLmNhbGxiYWNrPWZ1bmN0aW9uKCl7dWl8fCh1aT0hMCx2aT1kKTtkaShhLGIpfTtyZXR1cm4gY31cbmZ1bmN0aW9uIHdpKGEsYixjKXtjPVFmKGMsbnVsbCk7Yy50YWc9Mzt2YXIgZD1hLnR5cGUuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBkKXt2YXIgZT1iLnZhbHVlO2MucGF5bG9hZD1mdW5jdGlvbigpe2RpKGEsYik7cmV0dXJuIGQoZSl9fXZhciBmPWEuc3RhdGVOb2RlO251bGwhPT1mJiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgZi5jb21wb25lbnREaWRDYXRjaCYmKGMuY2FsbGJhY2s9ZnVuY3Rpb24oKXtcImZ1bmN0aW9uXCIhPT10eXBlb2YgZCYmKG51bGw9PT14aT94aT1uZXcgU2V0KFt0aGlzXSk6eGkuYWRkKHRoaXMpLGRpKGEsYikpO3ZhciBjPWIuc3RhY2s7dGhpcy5jb21wb25lbnREaWRDYXRjaChiLnZhbHVlLHtjb21wb25lbnRTdGFjazpudWxsIT09Yz9jOlwiXCJ9KX0pO3JldHVybiBjfVxudmFyIHlpPU1hdGguY2VpbCx6aT1YYi5SZWFjdEN1cnJlbnREaXNwYXRjaGVyLEFpPVhiLlJlYWN0Q3VycmVudE93bmVyLFQ9MCxCaT04LENpPTE2LERpPTMyLEVpPTAsRmk9MSxHaT0yLEhpPTMsSWk9NCxVPVQsSmk9bnVsbCxWPW51bGwsVz0wLFg9RWksS2k9MTA3Mzc0MTgyMyxMaT0xMDczNzQxODIzLE1pPW51bGwsTmk9ITEscGk9MCxPaT01MDAsWT1udWxsLHVpPSExLHZpPW51bGwseGk9bnVsbCxQaT0hMSxRaT1udWxsLFJpPTkwLFNpPTAsVGk9bnVsbCxVaT0wLFZpPW51bGwsV2k9MDtmdW5jdGlvbiBjZygpe3JldHVybihVJihDaXxEaSkpIT09VD8xMDczNzQxODIxLShzZigpLzEwfDApOjAhPT1XaT9XaTpXaT0xMDczNzQxODIxLShzZigpLzEwfDApfVxuZnVuY3Rpb24gZGcoYSxiLGMpe2I9Yi5tb2RlO2lmKDA9PT0oYiYyKSlyZXR1cm4gMTA3Mzc0MTgyMzt2YXIgZD10ZigpO2lmKDA9PT0oYiY0KSlyZXR1cm4gOTk9PT1kPzEwNzM3NDE4MjM6MTA3Mzc0MTgyMjtpZigoVSZDaSkhPT1UKXJldHVybiBXO2lmKG51bGwhPT1jKWE9MTA3Mzc0MTgyMS0yNSooKCgxMDczNzQxODIxLWErKGMudGltZW91dE1zfDB8fDVFMykvMTApLzI1fDApKzEpO2Vsc2Ugc3dpdGNoKGQpe2Nhc2UgOTk6YT0xMDczNzQxODIzO2JyZWFrO2Nhc2UgOTg6YT0xMDczNzQxODIxLTEwKigoKDEwNzM3NDE4MjEtYSsxNSkvMTB8MCkrMSk7YnJlYWs7Y2FzZSA5NzpjYXNlIDk2OmE9MTA3Mzc0MTgyMS0yNSooKCgxMDczNzQxODIxLWErNTAwKS8yNXwwKSsxKTticmVhaztjYXNlIDk1OmE9MTticmVhaztkZWZhdWx0OnRocm93IHQoRXJyb3IoMzI2KSk7fW51bGwhPT1KaSYmYT09PVcmJi0tYTtyZXR1cm4gYX12YXIgWGk9MDtcbmZ1bmN0aW9uIGVnKGEsYil7aWYoNTA8VWkpdGhyb3cgVWk9MCxWaT1udWxsLHQoRXJyb3IoMTg1KSk7YT1ZaShhLGIpO2lmKG51bGwhPT1hKXthLnBpbmdUaW1lPTA7dmFyIGM9dGYoKTtpZigxMDczNzQxODIzPT09YilpZigoVSZCaSkhPT1UJiYoVSYoQ2l8RGkpKT09PVQpZm9yKHZhciBkPVooYSwxMDczNzQxODIzLCEwKTtudWxsIT09ZDspZD1kKCEwKTtlbHNlIFppKGEsOTksMTA3Mzc0MTgyMyksVT09PVQmJk8oKTtlbHNlIFppKGEsYyxiKTsoVSY0KT09PVR8fDk4IT09YyYmOTkhPT1jfHwobnVsbD09PVRpP1RpPW5ldyBNYXAoW1thLGJdXSk6KGM9VGkuZ2V0KGEpLCh2b2lkIDA9PT1jfHxjPmIpJiZUaS5zZXQoYSxiKSkpfX1cbmZ1bmN0aW9uIFlpKGEsYil7YS5leHBpcmF0aW9uVGltZTxiJiYoYS5leHBpcmF0aW9uVGltZT1iKTt2YXIgYz1hLmFsdGVybmF0ZTtudWxsIT09YyYmYy5leHBpcmF0aW9uVGltZTxiJiYoYy5leHBpcmF0aW9uVGltZT1iKTt2YXIgZD1hLnJldHVybixlPW51bGw7aWYobnVsbD09PWQmJjM9PT1hLnRhZyllPWEuc3RhdGVOb2RlO2Vsc2UgZm9yKDtudWxsIT09ZDspe2M9ZC5hbHRlcm5hdGU7ZC5jaGlsZEV4cGlyYXRpb25UaW1lPGImJihkLmNoaWxkRXhwaXJhdGlvblRpbWU9Yik7bnVsbCE9PWMmJmMuY2hpbGRFeHBpcmF0aW9uVGltZTxiJiYoYy5jaGlsZEV4cGlyYXRpb25UaW1lPWIpO2lmKG51bGw9PT1kLnJldHVybiYmMz09PWQudGFnKXtlPWQuc3RhdGVOb2RlO2JyZWFrfWQ9ZC5yZXR1cm59bnVsbCE9PWUmJihiPmUuZmlyc3RQZW5kaW5nVGltZSYmKGUuZmlyc3RQZW5kaW5nVGltZT1iKSxhPWUubGFzdFBlbmRpbmdUaW1lLDA9PT1hfHxiPGEpJiYoZS5sYXN0UGVuZGluZ1RpbWU9XG5iKTtyZXR1cm4gZX1mdW5jdGlvbiBaaShhLGIsYyl7aWYoYS5jYWxsYmFja0V4cGlyYXRpb25UaW1lPGMpe3ZhciBkPWEuY2FsbGJhY2tOb2RlO251bGwhPT1kJiZkIT09bWYmJmFmKGQpO2EuY2FsbGJhY2tFeHBpcmF0aW9uVGltZT1jOzEwNzM3NDE4MjM9PT1jP2EuY2FsbGJhY2tOb2RlPXhmKCRpLmJpbmQobnVsbCxhLFouYmluZChudWxsLGEsYykpKTooZD1udWxsLDEhPT1jJiYoZD17dGltZW91dDoxMCooMTA3Mzc0MTgyMS1jKS1zZigpfSksYS5jYWxsYmFja05vZGU9d2YoYiwkaS5iaW5kKG51bGwsYSxaLmJpbmQobnVsbCxhLGMpKSxkKSl9fWZ1bmN0aW9uICRpKGEsYixjKXt2YXIgZD1hLmNhbGxiYWNrTm9kZSxlPW51bGw7dHJ5e3JldHVybiBlPWIoYyksbnVsbCE9PWU/JGkuYmluZChudWxsLGEsZSk6bnVsbH1maW5hbGx5e251bGw9PT1lJiZkPT09YS5jYWxsYmFja05vZGUmJihhLmNhbGxiYWNrTm9kZT1udWxsLGEuY2FsbGJhY2tFeHBpcmF0aW9uVGltZT0wKX19XG5mdW5jdGlvbiBhaigpeyhVJigxfENpfERpKSk9PT1UJiYoYmooKSxjaigpKX1mdW5jdGlvbiBkaihhLGIpe3ZhciBjPWEuZmlyc3RCYXRjaDtyZXR1cm4gbnVsbCE9PWMmJmMuX2RlZmVyJiZjLl9leHBpcmF0aW9uVGltZT49Yj8od2YoOTcsZnVuY3Rpb24oKXtjLl9vbkNvbXBsZXRlKCk7cmV0dXJuIG51bGx9KSwhMCk6ITF9ZnVuY3Rpb24gYmooKXtpZihudWxsIT09VGkpe3ZhciBhPVRpO1RpPW51bGw7YS5mb3JFYWNoKGZ1bmN0aW9uKGEsYyl7eGYoWi5iaW5kKG51bGwsYyxhKSl9KTtPKCl9fWZ1bmN0aW9uIGVqKGEsYil7dmFyIGM9VTtVfD0xO3RyeXtyZXR1cm4gYShiKX1maW5hbGx5e1U9YyxVPT09VCYmTygpfX1mdW5jdGlvbiBmaihhLGIsYyxkKXt2YXIgZT1VO1V8PTQ7dHJ5e3JldHVybiB2Zig5OCxhLmJpbmQobnVsbCxiLGMsZCkpfWZpbmFsbHl7VT1lLFU9PT1UJiZPKCl9fVxuZnVuY3Rpb24gZ2ooYSxiKXt2YXIgYz1VO1UmPS0yO1V8PUJpO3RyeXtyZXR1cm4gYShiKX1maW5hbGx5e1U9YyxVPT09VCYmTygpfX1cbmZ1bmN0aW9uIGhqKGEsYil7YS5maW5pc2hlZFdvcms9bnVsbDthLmZpbmlzaGVkRXhwaXJhdGlvblRpbWU9MDt2YXIgYz1hLnRpbWVvdXRIYW5kbGU7LTEhPT1jJiYoYS50aW1lb3V0SGFuZGxlPS0xLE1lKGMpKTtpZihudWxsIT09Vilmb3IoYz1WLnJldHVybjtudWxsIT09Yzspe3ZhciBkPWM7c3dpdGNoKGQudGFnKXtjYXNlIDE6dmFyIGU9ZC50eXBlLmNoaWxkQ29udGV4dFR5cGVzO251bGwhPT1lJiZ2b2lkIDAhPT1lJiZUZShkKTticmVhaztjYXNlIDM6QmcoZCk7VWUoZCk7YnJlYWs7Y2FzZSA1OkRnKGQpO2JyZWFrO2Nhc2UgNDpCZyhkKTticmVhaztjYXNlIDEzOkgoUCxkKTticmVhaztjYXNlIDE5OkgoUCxkKTticmVhaztjYXNlIDEwOklmKGQpfWM9Yy5yZXR1cm59Smk9YTtWPW9nKGEuY3VycmVudCxudWxsLGIpO1c9YjtYPUVpO0xpPUtpPTEwNzM3NDE4MjM7TWk9bnVsbDtOaT0hMX1cbmZ1bmN0aW9uIFooYSxiLGMpe2lmKChVJihDaXxEaSkpIT09VCl0aHJvdyB0KEVycm9yKDMyNykpO2lmKGEuZmlyc3RQZW5kaW5nVGltZTxiKXJldHVybiBudWxsO2lmKGMmJmEuZmluaXNoZWRFeHBpcmF0aW9uVGltZT09PWIpcmV0dXJuIGlqLmJpbmQobnVsbCxhKTtjaigpO2lmKGEhPT1KaXx8YiE9PVcpaGooYSxiKTtlbHNlIGlmKFg9PT1IaSlpZihOaSloaihhLGIpO2Vsc2V7dmFyIGQ9YS5sYXN0UGVuZGluZ1RpbWU7aWYoZDxiKXJldHVybiBaLmJpbmQobnVsbCxhLGQpfWlmKG51bGwhPT1WKXtkPVU7VXw9Q2k7dmFyIGU9emkuY3VycmVudDtudWxsPT09ZSYmKGU9aGgpO3ppLmN1cnJlbnQ9aGg7aWYoYyl7aWYoMTA3Mzc0MTgyMyE9PWIpe3ZhciBmPWNnKCk7aWYoZjxiKXJldHVybiBVPWQsR2YoKSx6aS5jdXJyZW50PWUsWi5iaW5kKG51bGwsYSxmKX19ZWxzZSBXaT0wO2RvIHRyeXtpZihjKWZvcig7bnVsbCE9PVY7KVY9amooVik7ZWxzZSBmb3IoO251bGwhPT1WJiYhYmYoKTspVj1cbmpqKFYpO2JyZWFrfWNhdGNoKHJiKXtHZigpO2loKCk7Zj1WO2lmKG51bGw9PT1mfHxudWxsPT09Zi5yZXR1cm4pdGhyb3cgaGooYSxiKSxVPWQscmI7YTp7dmFyIGg9YSxnPWYucmV0dXJuLGs9ZixsPXJiLG49VztrLmVmZmVjdFRhZ3w9MTAyNDtrLmZpcnN0RWZmZWN0PWsubGFzdEVmZmVjdD1udWxsO2lmKG51bGwhPT1sJiZcIm9iamVjdFwiPT09dHlwZW9mIGwmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBsLnRoZW4pe3ZhciB6PWwseD0wIT09KFAuY3VycmVudCZGZyk7bD1nO2Rve3ZhciB2O2lmKHY9MTM9PT1sLnRhZyludWxsIT09bC5tZW1vaXplZFN0YXRlP3Y9ITE6KHY9bC5tZW1vaXplZFByb3BzLHY9dm9pZCAwPT09di5mYWxsYmFjaz8hMTohMCE9PXYudW5zdGFibGVfYXZvaWRUaGlzRmFsbGJhY2s/ITA6eD8hMTohMCk7aWYodil7Zz1sLnVwZGF0ZVF1ZXVlO251bGw9PT1nPyhnPW5ldyBTZXQsZy5hZGQoeiksbC51cGRhdGVRdWV1ZT1nKTpnLmFkZCh6KTtpZigwPT09KGwubW9kZSZcbjIpKXtsLmVmZmVjdFRhZ3w9NjQ7ay5lZmZlY3RUYWcmPS0xOTU3OzE9PT1rLnRhZyYmKG51bGw9PT1rLmFsdGVybmF0ZT9rLnRhZz0xNzoobj1RZigxMDczNzQxODIzLG51bGwpLG4udGFnPTIsU2YoayxuKSkpO2suZXhwaXJhdGlvblRpbWU9MTA3Mzc0MTgyMzticmVhayBhfWs9aDtoPW47eD1rLnBpbmdDYWNoZTtudWxsPT09eD8oeD1rLnBpbmdDYWNoZT1uZXcgc2ksZz1uZXcgU2V0LHguc2V0KHosZykpOihnPXguZ2V0KHopLHZvaWQgMD09PWcmJihnPW5ldyBTZXQseC5zZXQoeixnKSkpO2cuaGFzKGgpfHwoZy5hZGQoaCksaz1rai5iaW5kKG51bGwsayx6LGgpLHoudGhlbihrLGspKTtsLmVmZmVjdFRhZ3w9MjA0ODtsLmV4cGlyYXRpb25UaW1lPW47YnJlYWsgYX1sPWwucmV0dXJufXdoaWxlKG51bGwhPT1sKTtsPUVycm9yKChvYyhrLnR5cGUpfHxcIkEgUmVhY3QgY29tcG9uZW50XCIpK1wiIHN1c3BlbmRlZCB3aGlsZSByZW5kZXJpbmcsIGJ1dCBubyBmYWxsYmFjayBVSSB3YXMgc3BlY2lmaWVkLlxcblxcbkFkZCBhIDxTdXNwZW5zZSBmYWxsYmFjaz0uLi4+IGNvbXBvbmVudCBoaWdoZXIgaW4gdGhlIHRyZWUgdG8gcHJvdmlkZSBhIGxvYWRpbmcgaW5kaWNhdG9yIG9yIHBsYWNlaG9sZGVyIHRvIGRpc3BsYXkuXCIrXG5wYyhrKSl9WCE9PUlpJiYoWD1GaSk7bD1iaShsLGspO2s9Zztkb3tzd2l0Y2goay50YWcpe2Nhc2UgMzprLmVmZmVjdFRhZ3w9MjA0ODtrLmV4cGlyYXRpb25UaW1lPW47bj10aShrLGwsbik7VGYoayxuKTticmVhayBhO2Nhc2UgMTppZih6PWwsaD1rLnR5cGUsZz1rLnN0YXRlTm9kZSwwPT09KGsuZWZmZWN0VGFnJjY0KSYmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBoLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcnx8bnVsbCE9PWcmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBnLmNvbXBvbmVudERpZENhdGNoJiYobnVsbD09PXhpfHwheGkuaGFzKGcpKSkpe2suZWZmZWN0VGFnfD0yMDQ4O2suZXhwaXJhdGlvblRpbWU9bjtuPXdpKGsseixuKTtUZihrLG4pO2JyZWFrIGF9fWs9ay5yZXR1cm59d2hpbGUobnVsbCE9PWspfVY9bGooZil9d2hpbGUoMSk7VT1kO0dmKCk7emkuY3VycmVudD1lO2lmKG51bGwhPT1WKXJldHVybiBaLmJpbmQobnVsbCxhLGIpfWEuZmluaXNoZWRXb3JrPWEuY3VycmVudC5hbHRlcm5hdGU7XG5hLmZpbmlzaGVkRXhwaXJhdGlvblRpbWU9YjtpZihkaihhLGIpKXJldHVybiBudWxsO0ppPW51bGw7c3dpdGNoKFgpe2Nhc2UgRWk6dGhyb3cgdChFcnJvcigzMjgpKTtjYXNlIEZpOnJldHVybiBkPWEubGFzdFBlbmRpbmdUaW1lLGQ8Yj9aLmJpbmQobnVsbCxhLGQpOmM/aWouYmluZChudWxsLGEpOihoaihhLGIpLHhmKFouYmluZChudWxsLGEsYikpLG51bGwpO2Nhc2UgR2k6aWYoMTA3Mzc0MTgyMz09PUtpJiYhYyYmKGM9cGkrT2ktc2YoKSwxMDxjKSl7aWYoTmkpcmV0dXJuIGhqKGEsYiksWi5iaW5kKG51bGwsYSxiKTtkPWEubGFzdFBlbmRpbmdUaW1lO2lmKGQ8YilyZXR1cm4gWi5iaW5kKG51bGwsYSxkKTthLnRpbWVvdXRIYW5kbGU9TGUoaWouYmluZChudWxsLGEpLGMpO3JldHVybiBudWxsfXJldHVybiBpai5iaW5kKG51bGwsYSk7Y2FzZSBIaTppZighYyl7aWYoTmkpcmV0dXJuIGhqKGEsYiksWi5iaW5kKG51bGwsYSxiKTtjPWEubGFzdFBlbmRpbmdUaW1lO2lmKGM8YilyZXR1cm4gWi5iaW5kKG51bGwsXG5hLGMpOzEwNzM3NDE4MjMhPT1MaT9jPTEwKigxMDczNzQxODIxLUxpKS1zZigpOjEwNzM3NDE4MjM9PT1LaT9jPTA6KGM9MTAqKDEwNzM3NDE4MjEtS2kpLTVFMyxkPXNmKCksYj0xMCooMTA3Mzc0MTgyMS1iKS1kLGM9ZC1jLDA+YyYmKGM9MCksYz0oMTIwPmM/MTIwOjQ4MD5jPzQ4MDoxMDgwPmM/MTA4MDoxOTIwPmM/MTkyMDozRTM+Yz8zRTM6NDMyMD5jPzQzMjA6MTk2MCp5aShjLzE5NjApKS1jLGI8YyYmKGM9YikpO2lmKDEwPGMpcmV0dXJuIGEudGltZW91dEhhbmRsZT1MZShpai5iaW5kKG51bGwsYSksYyksbnVsbH1yZXR1cm4gaWouYmluZChudWxsLGEpO2Nhc2UgSWk6cmV0dXJuIWMmJjEwNzM3NDE4MjMhPT1LaSYmbnVsbCE9PU1pJiYoZD1LaSxlPU1pLGI9ZS5idXN5TWluRHVyYXRpb25Nc3wwLDA+PWI/Yj0wOihjPWUuYnVzeURlbGF5TXN8MCxkPXNmKCktKDEwKigxMDczNzQxODIxLWQpLShlLnRpbWVvdXRNc3wwfHw1RTMpKSxiPWQ8PWM/MDpjK2ItZCksMTA8Yik/KGEudGltZW91dEhhbmRsZT1cbkxlKGlqLmJpbmQobnVsbCxhKSxiKSxudWxsKTppai5iaW5kKG51bGwsYSk7ZGVmYXVsdDp0aHJvdyB0KEVycm9yKDMyOSkpO319ZnVuY3Rpb24gWGYoYSxiKXthPEtpJiYxPGEmJihLaT1hKTtudWxsIT09YiYmYTxMaSYmMTxhJiYoTGk9YSxNaT1iKX1mdW5jdGlvbiBqaihhKXt2YXIgYj1taihhLmFsdGVybmF0ZSxhLFcpO2EubWVtb2l6ZWRQcm9wcz1hLnBlbmRpbmdQcm9wcztudWxsPT09YiYmKGI9bGooYSkpO0FpLmN1cnJlbnQ9bnVsbDtyZXR1cm4gYn1cbmZ1bmN0aW9uIGxqKGEpe1Y9YTtkb3t2YXIgYj1WLmFsdGVybmF0ZTthPVYucmV0dXJuO2lmKDA9PT0oVi5lZmZlY3RUYWcmMTAyNCkpe2E6e3ZhciBjPWI7Yj1WO3ZhciBkPVcsZT1iLnBlbmRpbmdQcm9wcztzd2l0Y2goYi50YWcpe2Nhc2UgMjpicmVhaztjYXNlIDE2OmJyZWFrO2Nhc2UgMTU6Y2FzZSAwOmJyZWFrO2Nhc2UgMTpOKGIudHlwZSkmJlRlKGIpO2JyZWFrO2Nhc2UgMzpCZyhiKTtVZShiKTtkPWIuc3RhdGVOb2RlO2QucGVuZGluZ0NvbnRleHQmJihkLmNvbnRleHQ9ZC5wZW5kaW5nQ29udGV4dCxkLnBlbmRpbmdDb250ZXh0PW51bGwpO2lmKG51bGw9PT1jfHxudWxsPT09Yy5jaGlsZClCaChiKSxiLmVmZmVjdFRhZyY9LTM7VWgoYik7YnJlYWs7Y2FzZSA1OkRnKGIpO2Q9emcoeWcuY3VycmVudCk7dmFyIGY9Yi50eXBlO2lmKG51bGwhPT1jJiZudWxsIT1iLnN0YXRlTm9kZSlWaChjLGIsZixlLGQpLGMucmVmIT09Yi5yZWYmJihiLmVmZmVjdFRhZ3w9MTI4KTtlbHNlIGlmKGUpe3ZhciBoPVxuemcod2cuY3VycmVudCk7aWYoQmgoYikpe2M9YjtlPXZvaWQgMDtmPWMuc3RhdGVOb2RlO3ZhciBnPWMudHlwZSxrPWMubWVtb2l6ZWRQcm9wcztmW0ZhXT1jO2ZbR2FdPWs7c3dpdGNoKGcpe2Nhc2UgXCJpZnJhbWVcIjpjYXNlIFwib2JqZWN0XCI6Y2FzZSBcImVtYmVkXCI6RyhcImxvYWRcIixmKTticmVhaztjYXNlIFwidmlkZW9cIjpjYXNlIFwiYXVkaW9cIjpmb3IodmFyIGw9MDtsPGJiLmxlbmd0aDtsKyspRyhiYltsXSxmKTticmVhaztjYXNlIFwic291cmNlXCI6RyhcImVycm9yXCIsZik7YnJlYWs7Y2FzZSBcImltZ1wiOmNhc2UgXCJpbWFnZVwiOmNhc2UgXCJsaW5rXCI6RyhcImVycm9yXCIsZik7RyhcImxvYWRcIixmKTticmVhaztjYXNlIFwiZm9ybVwiOkcoXCJyZXNldFwiLGYpO0coXCJzdWJtaXRcIixmKTticmVhaztjYXNlIFwiZGV0YWlsc1wiOkcoXCJ0b2dnbGVcIixmKTticmVhaztjYXNlIFwiaW5wdXRcIjpDYyhmLGspO0coXCJpbnZhbGlkXCIsZik7RmUoZCxcIm9uQ2hhbmdlXCIpO2JyZWFrO2Nhc2UgXCJzZWxlY3RcIjpmLl93cmFwcGVyU3RhdGU9XG57d2FzTXVsdGlwbGU6ISFrLm11bHRpcGxlfTtHKFwiaW52YWxpZFwiLGYpO0ZlKGQsXCJvbkNoYW5nZVwiKTticmVhaztjYXNlIFwidGV4dGFyZWFcIjpvZShmLGspLEcoXCJpbnZhbGlkXCIsZiksRmUoZCxcIm9uQ2hhbmdlXCIpfURlKGcsayk7bD1udWxsO2ZvcihlIGluIGspay5oYXNPd25Qcm9wZXJ0eShlKSYmKGg9a1tlXSxcImNoaWxkcmVuXCI9PT1lP1wic3RyaW5nXCI9PT10eXBlb2YgaD9mLnRleHRDb250ZW50IT09aCYmKGw9W1wiY2hpbGRyZW5cIixoXSk6XCJudW1iZXJcIj09PXR5cGVvZiBoJiZmLnRleHRDb250ZW50IT09XCJcIitoJiYobD1bXCJjaGlsZHJlblwiLFwiXCIraF0pOmlhLmhhc093blByb3BlcnR5KGUpJiZudWxsIT1oJiZGZShkLGUpKTtzd2l0Y2goZyl7Y2FzZSBcImlucHV0XCI6VmIoZik7R2MoZixrLCEwKTticmVhaztjYXNlIFwidGV4dGFyZWFcIjpWYihmKTtxZShmLGspO2JyZWFrO2Nhc2UgXCJzZWxlY3RcIjpjYXNlIFwib3B0aW9uXCI6YnJlYWs7ZGVmYXVsdDpcImZ1bmN0aW9uXCI9PT10eXBlb2Ygay5vbkNsaWNrJiZcbihmLm9uY2xpY2s9R2UpfWQ9bDtjLnVwZGF0ZVF1ZXVlPWQ7bnVsbCE9PWQmJlNoKGIpfWVsc2V7az1mO2M9ZTtnPWI7bD05PT09ZC5ub2RlVHlwZT9kOmQub3duZXJEb2N1bWVudDtoPT09cmUuaHRtbCYmKGg9c2UoaykpO2g9PT1yZS5odG1sP1wic2NyaXB0XCI9PT1rPyhrPWwuY3JlYXRlRWxlbWVudChcImRpdlwiKSxrLmlubmVySFRNTD1cIjxzY3JpcHQ+XFx4M2Mvc2NyaXB0PlwiLGw9ay5yZW1vdmVDaGlsZChrLmZpcnN0Q2hpbGQpKTpcInN0cmluZ1wiPT09dHlwZW9mIGMuaXM/bD1sLmNyZWF0ZUVsZW1lbnQoayx7aXM6Yy5pc30pOihsPWwuY3JlYXRlRWxlbWVudChrKSxcInNlbGVjdFwiPT09ayYmKGs9bCxjLm11bHRpcGxlP2subXVsdGlwbGU9ITA6Yy5zaXplJiYoay5zaXplPWMuc2l6ZSkpKTpsPWwuY3JlYXRlRWxlbWVudE5TKGgsayk7az1sO2tbRmFdPWc7a1tHYV09YztjPWs7VGgoYyxiLCExLCExKTtnPWM7dmFyIG49ZCx6PUVlKGYsZSk7c3dpdGNoKGYpe2Nhc2UgXCJpZnJhbWVcIjpjYXNlIFwib2JqZWN0XCI6Y2FzZSBcImVtYmVkXCI6RyhcImxvYWRcIixcbmcpO2Q9ZTticmVhaztjYXNlIFwidmlkZW9cIjpjYXNlIFwiYXVkaW9cIjpmb3IoZD0wO2Q8YmIubGVuZ3RoO2QrKylHKGJiW2RdLGcpO2Q9ZTticmVhaztjYXNlIFwic291cmNlXCI6RyhcImVycm9yXCIsZyk7ZD1lO2JyZWFrO2Nhc2UgXCJpbWdcIjpjYXNlIFwiaW1hZ2VcIjpjYXNlIFwibGlua1wiOkcoXCJlcnJvclwiLGcpO0coXCJsb2FkXCIsZyk7ZD1lO2JyZWFrO2Nhc2UgXCJmb3JtXCI6RyhcInJlc2V0XCIsZyk7RyhcInN1Ym1pdFwiLGcpO2Q9ZTticmVhaztjYXNlIFwiZGV0YWlsc1wiOkcoXCJ0b2dnbGVcIixnKTtkPWU7YnJlYWs7Y2FzZSBcImlucHV0XCI6Q2MoZyxlKTtkPUJjKGcsZSk7RyhcImludmFsaWRcIixnKTtGZShuLFwib25DaGFuZ2VcIik7YnJlYWs7Y2FzZSBcIm9wdGlvblwiOmQ9bGUoZyxlKTticmVhaztjYXNlIFwic2VsZWN0XCI6Zy5fd3JhcHBlclN0YXRlPXt3YXNNdWx0aXBsZTohIWUubXVsdGlwbGV9O2Q9bSh7fSxlLHt2YWx1ZTp2b2lkIDB9KTtHKFwiaW52YWxpZFwiLGcpO0ZlKG4sXCJvbkNoYW5nZVwiKTticmVhaztjYXNlIFwidGV4dGFyZWFcIjpvZShnLFxuZSk7ZD1uZShnLGUpO0coXCJpbnZhbGlkXCIsZyk7RmUobixcIm9uQ2hhbmdlXCIpO2JyZWFrO2RlZmF1bHQ6ZD1lfURlKGYsZCk7az12b2lkIDA7bD1mO2g9Zzt2YXIgeD1kO2ZvcihrIGluIHgpaWYoeC5oYXNPd25Qcm9wZXJ0eShrKSl7dmFyIHY9eFtrXTtcInN0eWxlXCI9PT1rP0FlKGgsdik6XCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiPT09az8odj12P3YuX19odG1sOnZvaWQgMCxudWxsIT12JiZ2ZShoLHYpKTpcImNoaWxkcmVuXCI9PT1rP1wic3RyaW5nXCI9PT10eXBlb2Ygdj8oXCJ0ZXh0YXJlYVwiIT09bHx8XCJcIiE9PXYpJiZ3ZShoLHYpOlwibnVtYmVyXCI9PT10eXBlb2YgdiYmd2UoaCxcIlwiK3YpOlwic3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nXCIhPT1rJiZcInN1cHByZXNzSHlkcmF0aW9uV2FybmluZ1wiIT09ayYmXCJhdXRvRm9jdXNcIiE9PWsmJihpYS5oYXNPd25Qcm9wZXJ0eShrKT9udWxsIT12JiZGZShuLGspOm51bGwhPXYmJnpjKGgsayx2LHopKX1zd2l0Y2goZil7Y2FzZSBcImlucHV0XCI6VmIoZyk7XG5HYyhnLGUsITEpO2JyZWFrO2Nhc2UgXCJ0ZXh0YXJlYVwiOlZiKGcpO3FlKGcsZSk7YnJlYWs7Y2FzZSBcIm9wdGlvblwiOm51bGwhPWUudmFsdWUmJmcuc2V0QXR0cmlidXRlKFwidmFsdWVcIixcIlwiK0FjKGUudmFsdWUpKTticmVhaztjYXNlIFwic2VsZWN0XCI6ZD1nO2c9ZTtkLm11bHRpcGxlPSEhZy5tdWx0aXBsZTtrPWcudmFsdWU7bnVsbCE9az9tZShkLCEhZy5tdWx0aXBsZSxrLCExKTpudWxsIT1nLmRlZmF1bHRWYWx1ZSYmbWUoZCwhIWcubXVsdGlwbGUsZy5kZWZhdWx0VmFsdWUsITApO2JyZWFrO2RlZmF1bHQ6XCJmdW5jdGlvblwiPT09dHlwZW9mIGQub25DbGljayYmKGcub25jbGljaz1HZSl9SmUoZixlKSYmU2goYik7Yi5zdGF0ZU5vZGU9Y31udWxsIT09Yi5yZWYmJihiLmVmZmVjdFRhZ3w9MTI4KX1lbHNlIGlmKG51bGw9PT1iLnN0YXRlTm9kZSl0aHJvdyB0KEVycm9yKDE2NikpO2JyZWFrO2Nhc2UgNjppZihjJiZudWxsIT1iLnN0YXRlTm9kZSlXaChjLGIsYy5tZW1vaXplZFByb3BzLFxuZSk7ZWxzZXtpZihcInN0cmluZ1wiIT09dHlwZW9mIGUmJm51bGw9PT1iLnN0YXRlTm9kZSl0aHJvdyB0KEVycm9yKDE2NikpO2M9emcoeWcuY3VycmVudCk7emcod2cuY3VycmVudCk7QmgoYik/KGQ9Yi5zdGF0ZU5vZGUsYz1iLm1lbW9pemVkUHJvcHMsZFtGYV09YixkLm5vZGVWYWx1ZSE9PWMmJlNoKGIpKTooZD1iLGM9KDk9PT1jLm5vZGVUeXBlP2M6Yy5vd25lckRvY3VtZW50KS5jcmVhdGVUZXh0Tm9kZShlKSxjW0ZhXT1iLGQuc3RhdGVOb2RlPWMpfWJyZWFrO2Nhc2UgMTE6YnJlYWs7Y2FzZSAxMzpIKFAsYik7ZT1iLm1lbW9pemVkU3RhdGU7aWYoMCE9PShiLmVmZmVjdFRhZyY2NCkpe2IuZXhwaXJhdGlvblRpbWU9ZDticmVhayBhfWQ9bnVsbCE9PWU7ZT0hMTtudWxsPT09Yz9CaChiKTooZj1jLm1lbW9pemVkU3RhdGUsZT1udWxsIT09ZixkfHxudWxsPT09Znx8KGY9Yy5jaGlsZC5zaWJsaW5nLG51bGwhPT1mJiYoZz1iLmZpcnN0RWZmZWN0LG51bGwhPT1nPyhiLmZpcnN0RWZmZWN0PVxuZixmLm5leHRFZmZlY3Q9Zyk6KGIuZmlyc3RFZmZlY3Q9Yi5sYXN0RWZmZWN0PWYsZi5uZXh0RWZmZWN0PW51bGwpLGYuZWZmZWN0VGFnPTgpKSk7aWYoZCYmIWUmJjAhPT0oYi5tb2RlJjIpKWlmKG51bGw9PT1jJiYhMCE9PWIubWVtb2l6ZWRQcm9wcy51bnN0YWJsZV9hdm9pZFRoaXNGYWxsYmFja3x8MCE9PShQLmN1cnJlbnQmRmcpKVg9PT1FaSYmKFg9R2kpO2Vsc2UgaWYoWD09PUVpfHxYPT09R2kpWD1IaTtpZihkfHxlKWIuZWZmZWN0VGFnfD00O2JyZWFrO2Nhc2UgNzpicmVhaztjYXNlIDg6YnJlYWs7Y2FzZSAxMjpicmVhaztjYXNlIDQ6QmcoYik7VWgoYik7YnJlYWs7Y2FzZSAxMDpJZihiKTticmVhaztjYXNlIDk6YnJlYWs7Y2FzZSAxNDpicmVhaztjYXNlIDE3Ok4oYi50eXBlKSYmVGUoYik7YnJlYWs7Y2FzZSAxODpicmVhaztjYXNlIDE5OkgoUCxiKTtlPWIubWVtb2l6ZWRTdGF0ZTtpZihudWxsPT09ZSlicmVhaztmPTAhPT0oYi5lZmZlY3RUYWcmNjQpO2c9ZS5yZW5kZXJpbmc7XG5pZihudWxsPT09ZylpZihmKSRoKGUsITEpO2Vsc2V7aWYoWCE9PUVpfHxudWxsIT09YyYmMCE9PShjLmVmZmVjdFRhZyY2NCkpZm9yKGM9Yi5jaGlsZDtudWxsIT09Yzspe2c9SGcoYyk7aWYobnVsbCE9PWcpe2IuZWZmZWN0VGFnfD02NDskaChlLCExKTtjPWcudXBkYXRlUXVldWU7bnVsbCE9PWMmJihiLnVwZGF0ZVF1ZXVlPWMsYi5lZmZlY3RUYWd8PTQpO2IuZmlyc3RFZmZlY3Q9Yi5sYXN0RWZmZWN0PW51bGw7Zm9yKGM9Yi5jaGlsZDtudWxsIT09YzspZT1jLGY9ZCxlLmVmZmVjdFRhZyY9MixlLm5leHRFZmZlY3Q9bnVsbCxlLmZpcnN0RWZmZWN0PW51bGwsZS5sYXN0RWZmZWN0PW51bGwsZz1lLmFsdGVybmF0ZSxudWxsPT09Zz8oZS5jaGlsZEV4cGlyYXRpb25UaW1lPTAsZS5leHBpcmF0aW9uVGltZT1mLGUuY2hpbGQ9bnVsbCxlLm1lbW9pemVkUHJvcHM9bnVsbCxlLm1lbW9pemVkU3RhdGU9bnVsbCxlLnVwZGF0ZVF1ZXVlPW51bGwsZS5kZXBlbmRlbmNpZXM9bnVsbCk6KGUuY2hpbGRFeHBpcmF0aW9uVGltZT1cbmcuY2hpbGRFeHBpcmF0aW9uVGltZSxlLmV4cGlyYXRpb25UaW1lPWcuZXhwaXJhdGlvblRpbWUsZS5jaGlsZD1nLmNoaWxkLGUubWVtb2l6ZWRQcm9wcz1nLm1lbW9pemVkUHJvcHMsZS5tZW1vaXplZFN0YXRlPWcubWVtb2l6ZWRTdGF0ZSxlLnVwZGF0ZVF1ZXVlPWcudXBkYXRlUXVldWUsZj1nLmRlcGVuZGVuY2llcyxlLmRlcGVuZGVuY2llcz1udWxsPT09Zj9udWxsOntleHBpcmF0aW9uVGltZTpmLmV4cGlyYXRpb25UaW1lLGZpcnN0Q29udGV4dDpmLmZpcnN0Q29udGV4dCxyZXNwb25kZXJzOmYucmVzcG9uZGVyc30pLGM9Yy5zaWJsaW5nO0ooUCxQLmN1cnJlbnQmRWd8R2csYik7Yj1iLmNoaWxkO2JyZWFrIGF9Yz1jLnNpYmxpbmd9fWVsc2V7aWYoIWYpaWYoYz1IZyhnKSxudWxsIT09Yyl7aWYoYi5lZmZlY3RUYWd8PTY0LGY9ITAsJGgoZSwhMCksbnVsbD09PWUudGFpbCYmXCJoaWRkZW5cIj09PWUudGFpbE1vZGUpe2Q9Yy51cGRhdGVRdWV1ZTtudWxsIT09ZCYmKGIudXBkYXRlUXVldWU9XG5kLGIuZWZmZWN0VGFnfD00KTtiPWIubGFzdEVmZmVjdD1lLmxhc3RFZmZlY3Q7bnVsbCE9PWImJihiLm5leHRFZmZlY3Q9bnVsbCk7YnJlYWt9fWVsc2Ugc2YoKT5lLnRhaWxFeHBpcmF0aW9uJiYxPGQmJihiLmVmZmVjdFRhZ3w9NjQsZj0hMCwkaChlLCExKSxiLmV4cGlyYXRpb25UaW1lPWIuY2hpbGRFeHBpcmF0aW9uVGltZT1kLTEpO2UuaXNCYWNrd2FyZHM/KGcuc2libGluZz1iLmNoaWxkLGIuY2hpbGQ9Zyk6KGQ9ZS5sYXN0LG51bGwhPT1kP2Quc2libGluZz1nOmIuY2hpbGQ9ZyxlLmxhc3Q9Zyl9aWYobnVsbCE9PWUudGFpbCl7MD09PWUudGFpbEV4cGlyYXRpb24mJihlLnRhaWxFeHBpcmF0aW9uPXNmKCkrNTAwKTtkPWUudGFpbDtlLnJlbmRlcmluZz1kO2UudGFpbD1kLnNpYmxpbmc7ZS5sYXN0RWZmZWN0PWIubGFzdEVmZmVjdDtkLnNpYmxpbmc9bnVsbDtjPVAuY3VycmVudDtjPWY/YyZFZ3xHZzpjJkVnO0ooUCxjLGIpO2I9ZDticmVhayBhfWJyZWFrO2Nhc2UgMjA6YnJlYWs7XG5kZWZhdWx0OnRocm93IHQoRXJyb3IoMTU2KSk7fWI9bnVsbH1kPVY7aWYoMT09PVd8fDEhPT1kLmNoaWxkRXhwaXJhdGlvblRpbWUpe2M9MDtmb3IoZT1kLmNoaWxkO251bGwhPT1lOylmPWUuZXhwaXJhdGlvblRpbWUsZz1lLmNoaWxkRXhwaXJhdGlvblRpbWUsZj5jJiYoYz1mKSxnPmMmJihjPWcpLGU9ZS5zaWJsaW5nO2QuY2hpbGRFeHBpcmF0aW9uVGltZT1jfWlmKG51bGwhPT1iKXJldHVybiBiO251bGwhPT1hJiYwPT09KGEuZWZmZWN0VGFnJjEwMjQpJiYobnVsbD09PWEuZmlyc3RFZmZlY3QmJihhLmZpcnN0RWZmZWN0PVYuZmlyc3RFZmZlY3QpLG51bGwhPT1WLmxhc3RFZmZlY3QmJihudWxsIT09YS5sYXN0RWZmZWN0JiYoYS5sYXN0RWZmZWN0Lm5leHRFZmZlY3Q9Vi5maXJzdEVmZmVjdCksYS5sYXN0RWZmZWN0PVYubGFzdEVmZmVjdCksMTxWLmVmZmVjdFRhZyYmKG51bGwhPT1hLmxhc3RFZmZlY3Q/YS5sYXN0RWZmZWN0Lm5leHRFZmZlY3Q9VjphLmZpcnN0RWZmZWN0PVYsXG5hLmxhc3RFZmZlY3Q9VikpfWVsc2V7Yj1haShWLFcpO2lmKG51bGwhPT1iKXJldHVybiBiLmVmZmVjdFRhZyY9MTAyMyxiO251bGwhPT1hJiYoYS5maXJzdEVmZmVjdD1hLmxhc3RFZmZlY3Q9bnVsbCxhLmVmZmVjdFRhZ3w9MTAyNCl9Yj1WLnNpYmxpbmc7aWYobnVsbCE9PWIpcmV0dXJuIGI7Vj1hfXdoaWxlKG51bGwhPT1WKTtYPT09RWkmJihYPUlpKTtyZXR1cm4gbnVsbH1mdW5jdGlvbiBpaihhKXt2YXIgYj10ZigpO3ZmKDk5LG5qLmJpbmQobnVsbCxhLGIpKTtudWxsIT09UWkmJndmKDk3LGZ1bmN0aW9uKCl7Y2ooKTtyZXR1cm4gbnVsbH0pO3JldHVybiBudWxsfVxuZnVuY3Rpb24gbmooYSxiKXtjaigpO2lmKChVJihDaXxEaSkpIT09VCl0aHJvdyB0KEVycm9yKDMyNykpO3ZhciBjPWEuZmluaXNoZWRXb3JrLGQ9YS5maW5pc2hlZEV4cGlyYXRpb25UaW1lO2lmKG51bGw9PT1jKXJldHVybiBudWxsO2EuZmluaXNoZWRXb3JrPW51bGw7YS5maW5pc2hlZEV4cGlyYXRpb25UaW1lPTA7aWYoYz09PWEuY3VycmVudCl0aHJvdyB0KEVycm9yKDE3NykpO2EuY2FsbGJhY2tOb2RlPW51bGw7YS5jYWxsYmFja0V4cGlyYXRpb25UaW1lPTA7dmFyIGU9Yy5leHBpcmF0aW9uVGltZSxmPWMuY2hpbGRFeHBpcmF0aW9uVGltZTtlPWY+ZT9mOmU7YS5maXJzdFBlbmRpbmdUaW1lPWU7ZTxhLmxhc3RQZW5kaW5nVGltZSYmKGEubGFzdFBlbmRpbmdUaW1lPWUpO2E9PT1KaSYmKFY9Smk9bnVsbCxXPTApOzE8Yy5lZmZlY3RUYWc/bnVsbCE9PWMubGFzdEVmZmVjdD8oYy5sYXN0RWZmZWN0Lm5leHRFZmZlY3Q9YyxlPWMuZmlyc3RFZmZlY3QpOmU9YzplPWMuZmlyc3RFZmZlY3Q7XG5pZihudWxsIT09ZSl7Zj1VO1V8PURpO0FpLmN1cnJlbnQ9bnVsbDtIZT1RZDt2YXIgaD1hZSgpO2lmKGJlKGgpKXtpZihcInNlbGVjdGlvblN0YXJ0XCJpbiBoKXZhciBnPXtzdGFydDpoLnNlbGVjdGlvblN0YXJ0LGVuZDpoLnNlbGVjdGlvbkVuZH07ZWxzZSBhOntnPShnPWgub3duZXJEb2N1bWVudCkmJmcuZGVmYXVsdFZpZXd8fHdpbmRvdzt2YXIgaz1nLmdldFNlbGVjdGlvbiYmZy5nZXRTZWxlY3Rpb24oKTtpZihrJiYwIT09ay5yYW5nZUNvdW50KXtnPWsuYW5jaG9yTm9kZTt2YXIgbD1rLmFuY2hvck9mZnNldCxuPWsuZm9jdXNOb2RlO2s9ay5mb2N1c09mZnNldDt0cnl7Zy5ub2RlVHlwZSxuLm5vZGVUeXBlfWNhdGNoKHpiKXtnPW51bGw7YnJlYWsgYX12YXIgej0wLHg9LTEsdj0tMSxyYj0wLEJlPTAsdT1oLHc9bnVsbDtiOmZvcig7Oyl7Zm9yKHZhciBDOzspe3UhPT1nfHwwIT09bCYmMyE9PXUubm9kZVR5cGV8fCh4PXorbCk7dSE9PW58fDAhPT1rJiYzIT09dS5ub2RlVHlwZXx8XG4odj16K2spOzM9PT11Lm5vZGVUeXBlJiYoeis9dS5ub2RlVmFsdWUubGVuZ3RoKTtpZihudWxsPT09KEM9dS5maXJzdENoaWxkKSlicmVhazt3PXU7dT1DfWZvcig7Oyl7aWYodT09PWgpYnJlYWsgYjt3PT09ZyYmKytyYj09PWwmJih4PXopO3c9PT1uJiYrK0JlPT09ayYmKHY9eik7aWYobnVsbCE9PShDPXUubmV4dFNpYmxpbmcpKWJyZWFrO3U9dzt3PXUucGFyZW50Tm9kZX11PUN9Zz0tMT09PXh8fC0xPT09dj9udWxsOntzdGFydDp4LGVuZDp2fX1lbHNlIGc9bnVsbH1nPWd8fHtzdGFydDowLGVuZDowfX1lbHNlIGc9bnVsbDtJZT17Zm9jdXNlZEVsZW06aCxzZWxlY3Rpb25SYW5nZTpnfTtRZD0hMTtZPWU7ZG8gdHJ5e2Zvcig7bnVsbCE9PVk7KXtpZigwIT09KFkuZWZmZWN0VGFnJjI1Nikpe3ZhciBJPVkuYWx0ZXJuYXRlO2g9WTtzd2l0Y2goaC50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6aGkoSmcsSWcsaCk7YnJlYWs7Y2FzZSAxOmlmKGguZWZmZWN0VGFnJjI1NiYmbnVsbCE9PVxuSSl7dmFyIEU9SS5tZW1vaXplZFByb3BzLHVhPUkubWVtb2l6ZWRTdGF0ZSxnaD1oLnN0YXRlTm9kZSxvaj1naC5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZShoLmVsZW1lbnRUeXBlPT09aC50eXBlP0U6QWYoaC50eXBlLEUpLHVhKTtnaC5fX3JlYWN0SW50ZXJuYWxTbmFwc2hvdEJlZm9yZVVwZGF0ZT1van1icmVhaztjYXNlIDM6Y2FzZSA1OmNhc2UgNjpjYXNlIDQ6Y2FzZSAxNzpicmVhaztkZWZhdWx0OnRocm93IHQoRXJyb3IoMTYzKSk7fX1ZPVkubmV4dEVmZmVjdH19Y2F0Y2goemIpe2lmKG51bGw9PT1ZKXRocm93IHQoRXJyb3IoMzMwKSk7ZmkoWSx6Yik7WT1ZLm5leHRFZmZlY3R9d2hpbGUobnVsbCE9PVkpO1k9ZTtkbyB0cnl7Zm9yKEk9YjtudWxsIT09WTspe3ZhciBBPVkuZWZmZWN0VGFnO0EmMTYmJndlKFkuc3RhdGVOb2RlLFwiXCIpO2lmKEEmMTI4KXt2YXIgcD1ZLmFsdGVybmF0ZTtpZihudWxsIT09cCl7dmFyIHI9cC5yZWY7bnVsbCE9PXImJihcImZ1bmN0aW9uXCI9PT10eXBlb2Ygcj9cbnIobnVsbCk6ci5jdXJyZW50PW51bGwpfX1zd2l0Y2goQSYxNCl7Y2FzZSAyOm5pKFkpO1kuZWZmZWN0VGFnJj0tMzticmVhaztjYXNlIDY6bmkoWSk7WS5lZmZlY3RUYWcmPS0zO29pKFkuYWx0ZXJuYXRlLFkpO2JyZWFrO2Nhc2UgNDpvaShZLmFsdGVybmF0ZSxZKTticmVhaztjYXNlIDg6RT1ZO2tpKEUsSSk7RS5yZXR1cm49bnVsbDtFLmNoaWxkPW51bGw7RS5tZW1vaXplZFN0YXRlPW51bGw7RS51cGRhdGVRdWV1ZT1udWxsO0UuZGVwZW5kZW5jaWVzPW51bGw7dmFyIEs9RS5hbHRlcm5hdGU7bnVsbCE9PUsmJihLLnJldHVybj1udWxsLEsuY2hpbGQ9bnVsbCxLLm1lbW9pemVkU3RhdGU9bnVsbCxLLnVwZGF0ZVF1ZXVlPW51bGwsSy5kZXBlbmRlbmNpZXM9bnVsbCl9WT1ZLm5leHRFZmZlY3R9fWNhdGNoKHpiKXtpZihudWxsPT09WSl0aHJvdyB0KEVycm9yKDMzMCkpO2ZpKFksemIpO1k9WS5uZXh0RWZmZWN0fXdoaWxlKG51bGwhPT1ZKTtyPUllO3A9YWUoKTtBPXIuZm9jdXNlZEVsZW07XG5JPXIuc2VsZWN0aW9uUmFuZ2U7aWYocCE9PUEmJkEmJkEub3duZXJEb2N1bWVudCYmJGQoQS5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxBKSl7bnVsbCE9PUkmJmJlKEEpJiYocD1JLnN0YXJ0LHI9SS5lbmQsdm9pZCAwPT09ciYmKHI9cCksXCJzZWxlY3Rpb25TdGFydFwiaW4gQT8oQS5zZWxlY3Rpb25TdGFydD1wLEEuc2VsZWN0aW9uRW5kPU1hdGgubWluKHIsQS52YWx1ZS5sZW5ndGgpKToocj0ocD1BLm93bmVyRG9jdW1lbnR8fGRvY3VtZW50KSYmcC5kZWZhdWx0Vmlld3x8d2luZG93LHIuZ2V0U2VsZWN0aW9uJiYocj1yLmdldFNlbGVjdGlvbigpLEU9QS50ZXh0Q29udGVudC5sZW5ndGgsSz1NYXRoLm1pbihJLnN0YXJ0LEUpLEk9dm9pZCAwPT09SS5lbmQ/SzpNYXRoLm1pbihJLmVuZCxFKSwhci5leHRlbmQmJks+SSYmKEU9SSxJPUssSz1FKSxFPVpkKEEsSyksdWE9WmQoQSxJKSxFJiZ1YSYmKDEhPT1yLnJhbmdlQ291bnR8fHIuYW5jaG9yTm9kZSE9PUUubm9kZXx8ci5hbmNob3JPZmZzZXQhPT1cbkUub2Zmc2V0fHxyLmZvY3VzTm9kZSE9PXVhLm5vZGV8fHIuZm9jdXNPZmZzZXQhPT11YS5vZmZzZXQpJiYocD1wLmNyZWF0ZVJhbmdlKCkscC5zZXRTdGFydChFLm5vZGUsRS5vZmZzZXQpLHIucmVtb3ZlQWxsUmFuZ2VzKCksSz5JPyhyLmFkZFJhbmdlKHApLHIuZXh0ZW5kKHVhLm5vZGUsdWEub2Zmc2V0KSk6KHAuc2V0RW5kKHVhLm5vZGUsdWEub2Zmc2V0KSxyLmFkZFJhbmdlKHApKSkpKSk7cD1bXTtmb3Iocj1BO3I9ci5wYXJlbnROb2RlOykxPT09ci5ub2RlVHlwZSYmcC5wdXNoKHtlbGVtZW50OnIsbGVmdDpyLnNjcm9sbExlZnQsdG9wOnIuc2Nyb2xsVG9wfSk7XCJmdW5jdGlvblwiPT09dHlwZW9mIEEuZm9jdXMmJkEuZm9jdXMoKTtmb3IoQT0wO0E8cC5sZW5ndGg7QSsrKXI9cFtBXSxyLmVsZW1lbnQuc2Nyb2xsTGVmdD1yLmxlZnQsci5lbGVtZW50LnNjcm9sbFRvcD1yLnRvcH1JZT1udWxsO1FkPSEhSGU7SGU9bnVsbDthLmN1cnJlbnQ9YztZPWU7ZG8gdHJ5e2ZvcihBPWQ7bnVsbCE9PVxuWTspe3ZhciAkYT1ZLmVmZmVjdFRhZztpZigkYSYzNil7dmFyIG5jPVkuYWx0ZXJuYXRlO3A9WTtyPUE7c3dpdGNoKHAudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1OmhpKE1nLE5nLHApO2JyZWFrO2Nhc2UgMTp2YXIgbWQ9cC5zdGF0ZU5vZGU7aWYocC5lZmZlY3RUYWcmNClpZihudWxsPT09bmMpbWQuY29tcG9uZW50RGlkTW91bnQoKTtlbHNle3ZhciBGaj1wLmVsZW1lbnRUeXBlPT09cC50eXBlP25jLm1lbW9pemVkUHJvcHM6QWYocC50eXBlLG5jLm1lbW9pemVkUHJvcHMpO21kLmNvbXBvbmVudERpZFVwZGF0ZShGaixuYy5tZW1vaXplZFN0YXRlLG1kLl9fcmVhY3RJbnRlcm5hbFNuYXBzaG90QmVmb3JlVXBkYXRlKX12YXIgWGg9cC51cGRhdGVRdWV1ZTtudWxsIT09WGgmJllmKHAsWGgsbWQscik7YnJlYWs7Y2FzZSAzOnZhciBZaD1wLnVwZGF0ZVF1ZXVlO2lmKG51bGwhPT1ZaCl7Sz1udWxsO2lmKG51bGwhPT1wLmNoaWxkKXN3aXRjaChwLmNoaWxkLnRhZyl7Y2FzZSA1Oks9XG5wLmNoaWxkLnN0YXRlTm9kZTticmVhaztjYXNlIDE6Sz1wLmNoaWxkLnN0YXRlTm9kZX1ZZihwLFloLEsscil9YnJlYWs7Y2FzZSA1OnZhciBHaj1wLnN0YXRlTm9kZTtudWxsPT09bmMmJnAuZWZmZWN0VGFnJjQmJihyPUdqLEplKHAudHlwZSxwLm1lbW9pemVkUHJvcHMpJiZyLmZvY3VzKCkpO2JyZWFrO2Nhc2UgNjpicmVhaztjYXNlIDQ6YnJlYWs7Y2FzZSAxMjpicmVhaztjYXNlIDEzOmNhc2UgMTk6Y2FzZSAxNzpjYXNlIDIwOmJyZWFrO2RlZmF1bHQ6dGhyb3cgdChFcnJvcigxNjMpKTt9fWlmKCRhJjEyOCl7dmFyIG5kPVkucmVmO2lmKG51bGwhPT1uZCl7dmFyIFpoPVkuc3RhdGVOb2RlO3N3aXRjaChZLnRhZyl7Y2FzZSA1OnZhciBnZj1aaDticmVhaztkZWZhdWx0OmdmPVpofVwiZnVuY3Rpb25cIj09PXR5cGVvZiBuZD9uZChnZik6bmQuY3VycmVudD1nZn19JGEmNTEyJiYoUGk9ITApO1k9WS5uZXh0RWZmZWN0fX1jYXRjaCh6Yil7aWYobnVsbD09PVkpdGhyb3cgdChFcnJvcigzMzApKTtcbmZpKFksemIpO1k9WS5uZXh0RWZmZWN0fXdoaWxlKG51bGwhPT1ZKTtZPW51bGw7bmYoKTtVPWZ9ZWxzZSBhLmN1cnJlbnQ9YztpZihQaSlQaT0hMSxRaT1hLFNpPWQsUmk9YjtlbHNlIGZvcihZPWU7bnVsbCE9PVk7KWI9WS5uZXh0RWZmZWN0LFkubmV4dEVmZmVjdD1udWxsLFk9YjtiPWEuZmlyc3RQZW5kaW5nVGltZTswIT09Yj8oJGE9Y2coKSwkYT16ZigkYSxiKSxaaShhLCRhLGIpKTp4aT1udWxsO1wiZnVuY3Rpb25cIj09PXR5cGVvZiBwaiYmcGooYy5zdGF0ZU5vZGUsZCk7MTA3Mzc0MTgyMz09PWI/YT09PVZpP1VpKys6KFVpPTAsVmk9YSk6VWk9MDtpZih1aSl0aHJvdyB1aT0hMSxhPXZpLHZpPW51bGwsYTtpZigoVSZCaSkhPT1UKXJldHVybiBudWxsO08oKTtyZXR1cm4gbnVsbH1cbmZ1bmN0aW9uIGNqKCl7aWYobnVsbD09PVFpKXJldHVybiExO3ZhciBhPVFpLGI9U2ksYz1SaTtRaT1udWxsO1NpPTA7Umk9OTA7cmV0dXJuIHZmKDk3PGM/OTc6Yyxxai5iaW5kKG51bGwsYSxiKSl9ZnVuY3Rpb24gcWooYSl7aWYoKFUmKENpfERpKSkhPT1UKXRocm93IHQoRXJyb3IoMzMxKSk7dmFyIGI9VTtVfD1EaTtmb3IoYT1hLmN1cnJlbnQuZmlyc3RFZmZlY3Q7bnVsbCE9PWE7KXt0cnl7dmFyIGM9YTtpZigwIT09KGMuZWZmZWN0VGFnJjUxMikpc3dpdGNoKGMudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1OmhpKFBnLElnLGMpLGhpKElnLE9nLGMpfX1jYXRjaChkKXtpZihudWxsPT09YSl0aHJvdyB0KEVycm9yKDMzMCkpO2ZpKGEsZCl9Yz1hLm5leHRFZmZlY3Q7YS5uZXh0RWZmZWN0PW51bGw7YT1jfVU9YjtPKCk7cmV0dXJuITB9XG5mdW5jdGlvbiByaihhLGIsYyl7Yj1iaShjLGIpO2I9dGkoYSxiLDEwNzM3NDE4MjMpO1NmKGEsYik7YT1ZaShhLDEwNzM3NDE4MjMpO251bGwhPT1hJiZaaShhLDk5LDEwNzM3NDE4MjMpfWZ1bmN0aW9uIGZpKGEsYil7aWYoMz09PWEudGFnKXJqKGEsYSxiKTtlbHNlIGZvcih2YXIgYz1hLnJldHVybjtudWxsIT09Yzspe2lmKDM9PT1jLnRhZyl7cmooYyxhLGIpO2JyZWFrfWVsc2UgaWYoMT09PWMudGFnKXt2YXIgZD1jLnN0YXRlTm9kZTtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgYy50eXBlLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcnx8XCJmdW5jdGlvblwiPT09dHlwZW9mIGQuY29tcG9uZW50RGlkQ2F0Y2gmJihudWxsPT09eGl8fCF4aS5oYXMoZCkpKXthPWJpKGIsYSk7YT13aShjLGEsMTA3Mzc0MTgyMyk7U2YoYyxhKTtjPVlpKGMsMTA3Mzc0MTgyMyk7bnVsbCE9PWMmJlppKGMsOTksMTA3Mzc0MTgyMyk7YnJlYWt9fWM9Yy5yZXR1cm59fVxuZnVuY3Rpb24ga2ooYSxiLGMpe3ZhciBkPWEucGluZ0NhY2hlO251bGwhPT1kJiZkLmRlbGV0ZShiKTtKaT09PWEmJlc9PT1jP1g9PT1IaXx8WD09PUdpJiYxMDczNzQxODIzPT09S2kmJnNmKCktcGk8T2k/aGooYSxXKTpOaT0hMDphLmxhc3RQZW5kaW5nVGltZTxjfHwoYj1hLnBpbmdUaW1lLDAhPT1iJiZiPGN8fChhLnBpbmdUaW1lPWMsYS5maW5pc2hlZEV4cGlyYXRpb25UaW1lPT09YyYmKGEuZmluaXNoZWRFeHBpcmF0aW9uVGltZT0wLGEuZmluaXNoZWRXb3JrPW51bGwpLGI9Y2coKSxiPXpmKGIsYyksWmkoYSxiLGMpKSl9ZnVuY3Rpb24gcmkoYSxiKXt2YXIgYz1hLnN0YXRlTm9kZTtudWxsIT09YyYmYy5kZWxldGUoYik7Yz1jZygpO2I9ZGcoYyxhLG51bGwpO2M9emYoYyxiKTthPVlpKGEsYik7bnVsbCE9PWEmJlppKGEsYyxiKX12YXIgbWo9dm9pZCAwO1xubWo9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWIuZXhwaXJhdGlvblRpbWU7aWYobnVsbCE9PWEpe3ZhciBlPWIucGVuZGluZ1Byb3BzO2lmKGEubWVtb2l6ZWRQcm9wcyE9PWV8fE0uY3VycmVudClMZj0hMDtlbHNlIGlmKGQ8Yyl7TGY9ITE7c3dpdGNoKGIudGFnKXtjYXNlIDM6TmgoYik7Q2goKTticmVhaztjYXNlIDU6Q2coYik7aWYoYi5tb2RlJjQmJjEhPT1jJiZlLmhpZGRlbilyZXR1cm4gYi5leHBpcmF0aW9uVGltZT1iLmNoaWxkRXhwaXJhdGlvblRpbWU9MSxudWxsO2JyZWFrO2Nhc2UgMTpOKGIudHlwZSkmJlhlKGIpO2JyZWFrO2Nhc2UgNDpBZyhiLGIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pO2JyZWFrO2Nhc2UgMTA6SGYoYixiLm1lbW9pemVkUHJvcHMudmFsdWUpO2JyZWFrO2Nhc2UgMTM6aWYobnVsbCE9PWIubWVtb2l6ZWRTdGF0ZSl7ZD1iLmNoaWxkLmNoaWxkRXhwaXJhdGlvblRpbWU7aWYoMCE9PWQmJmQ+PWMpcmV0dXJuIFBoKGEsYixjKTtKKFAsUC5jdXJyZW50JlxuRWcsYik7Yj1GaChhLGIsYyk7cmV0dXJuIG51bGwhPT1iP2Iuc2libGluZzpudWxsfUooUCxQLmN1cnJlbnQmRWcsYik7YnJlYWs7Y2FzZSAxOTpkPWIuY2hpbGRFeHBpcmF0aW9uVGltZT49YztpZigwIT09KGEuZWZmZWN0VGFnJjY0KSl7aWYoZClyZXR1cm4gUmgoYSxiLGMpO2IuZWZmZWN0VGFnfD02NH1lPWIubWVtb2l6ZWRTdGF0ZTtudWxsIT09ZSYmKGUucmVuZGVyaW5nPW51bGwsZS50YWlsPW51bGwpO0ooUCxQLmN1cnJlbnQsYik7aWYoIWQpcmV0dXJuIG51bGx9cmV0dXJuIEZoKGEsYixjKX19ZWxzZSBMZj0hMTtiLmV4cGlyYXRpb25UaW1lPTA7c3dpdGNoKGIudGFnKXtjYXNlIDI6ZD1iLnR5cGU7bnVsbCE9PWEmJihhLmFsdGVybmF0ZT1udWxsLGIuYWx0ZXJuYXRlPW51bGwsYi5lZmZlY3RUYWd8PTIpO2E9Yi5wZW5kaW5nUHJvcHM7ZT1TZShiLEwuY3VycmVudCk7S2YoYixjKTtlPWRoKG51bGwsYixkLGEsZSxjKTtiLmVmZmVjdFRhZ3w9MTtpZihcIm9iamVjdFwiPT09dHlwZW9mIGUmJlxubnVsbCE9PWUmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBlLnJlbmRlciYmdm9pZCAwPT09ZS4kJHR5cGVvZil7Yi50YWc9MTtpaCgpO2lmKE4oZCkpe3ZhciBmPSEwO1hlKGIpfWVsc2UgZj0hMTtiLm1lbW9pemVkU3RhdGU9bnVsbCE9PWUuc3RhdGUmJnZvaWQgMCE9PWUuc3RhdGU/ZS5zdGF0ZTpudWxsO3ZhciBoPWQuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzO1wiZnVuY3Rpb25cIj09PXR5cGVvZiBoJiZiZyhiLGQsaCxhKTtlLnVwZGF0ZXI9Zmc7Yi5zdGF0ZU5vZGU9ZTtlLl9yZWFjdEludGVybmFsRmliZXI9YjtqZyhiLGQsYSxjKTtiPU1oKG51bGwsYixkLCEwLGYsYyl9ZWxzZSBiLnRhZz0wLFMobnVsbCxiLGUsYyksYj1iLmNoaWxkO3JldHVybiBiO2Nhc2UgMTY6ZT1iLmVsZW1lbnRUeXBlO251bGwhPT1hJiYoYS5hbHRlcm5hdGU9bnVsbCxiLmFsdGVybmF0ZT1udWxsLGIuZWZmZWN0VGFnfD0yKTthPWIucGVuZGluZ1Byb3BzO2U9QmYoZSk7Yi50eXBlPWU7Zj1iLnRhZz1zaihlKTtcbmE9QWYoZSxhKTtzd2l0Y2goZil7Y2FzZSAwOmI9SmgobnVsbCxiLGUsYSxjKTticmVhaztjYXNlIDE6Yj1MaChudWxsLGIsZSxhLGMpO2JyZWFrO2Nhc2UgMTE6Yj1FaChudWxsLGIsZSxhLGMpO2JyZWFrO2Nhc2UgMTQ6Yj1HaChudWxsLGIsZSxBZihlLnR5cGUsYSksZCxjKTticmVhaztkZWZhdWx0OnRocm93IHQoRXJyb3IoMzA2KSxlLFwiXCIpO31yZXR1cm4gYjtjYXNlIDA6cmV0dXJuIGQ9Yi50eXBlLGU9Yi5wZW5kaW5nUHJvcHMsZT1iLmVsZW1lbnRUeXBlPT09ZD9lOkFmKGQsZSksSmgoYSxiLGQsZSxjKTtjYXNlIDE6cmV0dXJuIGQ9Yi50eXBlLGU9Yi5wZW5kaW5nUHJvcHMsZT1iLmVsZW1lbnRUeXBlPT09ZD9lOkFmKGQsZSksTGgoYSxiLGQsZSxjKTtjYXNlIDM6TmgoYik7ZD1iLnVwZGF0ZVF1ZXVlO2lmKG51bGw9PT1kKXRocm93IHQoRXJyb3IoMjgyKSk7ZT1iLm1lbW9pemVkU3RhdGU7ZT1udWxsIT09ZT9lLmVsZW1lbnQ6bnVsbDtXZihiLGQsYi5wZW5kaW5nUHJvcHMsXG5udWxsLGMpO2Q9Yi5tZW1vaXplZFN0YXRlLmVsZW1lbnQ7aWYoZD09PWUpQ2goKSxiPUZoKGEsYixjKTtlbHNle2U9Yi5zdGF0ZU5vZGU7aWYoZT0obnVsbD09PWF8fG51bGw9PT1hLmNoaWxkKSYmZS5oeWRyYXRlKXVoPU5lKGIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8uZmlyc3RDaGlsZCksdGg9YixlPXZoPSEwO2U/KGIuZWZmZWN0VGFnfD0yLGIuY2hpbGQ9dWcoYixudWxsLGQsYykpOihTKGEsYixkLGMpLENoKCkpO2I9Yi5jaGlsZH1yZXR1cm4gYjtjYXNlIDU6cmV0dXJuIENnKGIpLG51bGw9PT1hJiZ6aChiKSxkPWIudHlwZSxlPWIucGVuZGluZ1Byb3BzLGY9bnVsbCE9PWE/YS5tZW1vaXplZFByb3BzOm51bGwsaD1lLmNoaWxkcmVuLEtlKGQsZSk/aD1udWxsOm51bGwhPT1mJiZLZShkLGYpJiYoYi5lZmZlY3RUYWd8PTE2KSxLaChhLGIpLGIubW9kZSY0JiYxIT09YyYmZS5oaWRkZW4/KGIuZXhwaXJhdGlvblRpbWU9Yi5jaGlsZEV4cGlyYXRpb25UaW1lPTEsYj1udWxsKTpcbihTKGEsYixoLGMpLGI9Yi5jaGlsZCksYjtjYXNlIDY6cmV0dXJuIG51bGw9PT1hJiZ6aChiKSxudWxsO2Nhc2UgMTM6cmV0dXJuIFBoKGEsYixjKTtjYXNlIDQ6cmV0dXJuIEFnKGIsYi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyksZD1iLnBlbmRpbmdQcm9wcyxudWxsPT09YT9iLmNoaWxkPXRnKGIsbnVsbCxkLGMpOlMoYSxiLGQsYyksYi5jaGlsZDtjYXNlIDExOnJldHVybiBkPWIudHlwZSxlPWIucGVuZGluZ1Byb3BzLGU9Yi5lbGVtZW50VHlwZT09PWQ/ZTpBZihkLGUpLEVoKGEsYixkLGUsYyk7Y2FzZSA3OnJldHVybiBTKGEsYixiLnBlbmRpbmdQcm9wcyxjKSxiLmNoaWxkO2Nhc2UgODpyZXR1cm4gUyhhLGIsYi5wZW5kaW5nUHJvcHMuY2hpbGRyZW4sYyksYi5jaGlsZDtjYXNlIDEyOnJldHVybiBTKGEsYixiLnBlbmRpbmdQcm9wcy5jaGlsZHJlbixjKSxiLmNoaWxkO2Nhc2UgMTA6YTp7ZD1iLnR5cGUuX2NvbnRleHQ7ZT1iLnBlbmRpbmdQcm9wcztoPWIubWVtb2l6ZWRQcm9wcztcbmY9ZS52YWx1ZTtIZihiLGYpO2lmKG51bGwhPT1oKXt2YXIgZz1oLnZhbHVlO2Y9aGQoZyxmKT8wOihcImZ1bmN0aW9uXCI9PT10eXBlb2YgZC5fY2FsY3VsYXRlQ2hhbmdlZEJpdHM/ZC5fY2FsY3VsYXRlQ2hhbmdlZEJpdHMoZyxmKToxMDczNzQxODIzKXwwO2lmKDA9PT1mKXtpZihoLmNoaWxkcmVuPT09ZS5jaGlsZHJlbiYmIU0uY3VycmVudCl7Yj1GaChhLGIsYyk7YnJlYWsgYX19ZWxzZSBmb3IoZz1iLmNoaWxkLG51bGwhPT1nJiYoZy5yZXR1cm49Yik7bnVsbCE9PWc7KXt2YXIgaz1nLmRlcGVuZGVuY2llcztpZihudWxsIT09ayl7aD1nLmNoaWxkO2Zvcih2YXIgbD1rLmZpcnN0Q29udGV4dDtudWxsIT09bDspe2lmKGwuY29udGV4dD09PWQmJjAhPT0obC5vYnNlcnZlZEJpdHMmZikpezE9PT1nLnRhZyYmKGw9UWYoYyxudWxsKSxsLnRhZz0yLFNmKGcsbCkpO2cuZXhwaXJhdGlvblRpbWU8YyYmKGcuZXhwaXJhdGlvblRpbWU9Yyk7bD1nLmFsdGVybmF0ZTtudWxsIT09bCYmbC5leHBpcmF0aW9uVGltZTxcbmMmJihsLmV4cGlyYXRpb25UaW1lPWMpO0pmKGcucmV0dXJuLGMpO2suZXhwaXJhdGlvblRpbWU8YyYmKGsuZXhwaXJhdGlvblRpbWU9Yyk7YnJlYWt9bD1sLm5leHR9fWVsc2UgaD0xMD09PWcudGFnP2cudHlwZT09PWIudHlwZT9udWxsOmcuY2hpbGQ6Zy5jaGlsZDtpZihudWxsIT09aCloLnJldHVybj1nO2Vsc2UgZm9yKGg9ZztudWxsIT09aDspe2lmKGg9PT1iKXtoPW51bGw7YnJlYWt9Zz1oLnNpYmxpbmc7aWYobnVsbCE9PWcpe2cucmV0dXJuPWgucmV0dXJuO2g9ZzticmVha31oPWgucmV0dXJufWc9aH19UyhhLGIsZS5jaGlsZHJlbixjKTtiPWIuY2hpbGR9cmV0dXJuIGI7Y2FzZSA5OnJldHVybiBlPWIudHlwZSxmPWIucGVuZGluZ1Byb3BzLGQ9Zi5jaGlsZHJlbixLZihiLGMpLGU9TWYoZSxmLnVuc3RhYmxlX29ic2VydmVkQml0cyksZD1kKGUpLGIuZWZmZWN0VGFnfD0xLFMoYSxiLGQsYyksYi5jaGlsZDtjYXNlIDE0OnJldHVybiBlPWIudHlwZSxmPUFmKGUsYi5wZW5kaW5nUHJvcHMpLFxuZj1BZihlLnR5cGUsZiksR2goYSxiLGUsZixkLGMpO2Nhc2UgMTU6cmV0dXJuIEloKGEsYixiLnR5cGUsYi5wZW5kaW5nUHJvcHMsZCxjKTtjYXNlIDE3OnJldHVybiBkPWIudHlwZSxlPWIucGVuZGluZ1Byb3BzLGU9Yi5lbGVtZW50VHlwZT09PWQ/ZTpBZihkLGUpLG51bGwhPT1hJiYoYS5hbHRlcm5hdGU9bnVsbCxiLmFsdGVybmF0ZT1udWxsLGIuZWZmZWN0VGFnfD0yKSxiLnRhZz0xLE4oZCk/KGE9ITAsWGUoYikpOmE9ITEsS2YoYixjKSxoZyhiLGQsZSxjKSxqZyhiLGQsZSxjKSxNaChudWxsLGIsZCwhMCxhLGMpO2Nhc2UgMTk6cmV0dXJuIFJoKGEsYixjKX10aHJvdyB0KEVycm9yKDE1NikpO307dmFyIHBqPW51bGwsamk9bnVsbDtcbmZ1bmN0aW9uIHRqKGEpe2lmKFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fKXJldHVybiExO3ZhciBiPV9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXztpZihiLmlzRGlzYWJsZWR8fCFiLnN1cHBvcnRzRmliZXIpcmV0dXJuITA7dHJ5e3ZhciBjPWIuaW5qZWN0KGEpO3BqPWZ1bmN0aW9uKGEpe3RyeXtiLm9uQ29tbWl0RmliZXJSb290KGMsYSx2b2lkIDAsNjQ9PT0oYS5jdXJyZW50LmVmZmVjdFRhZyY2NCkpfWNhdGNoKGUpe319O2ppPWZ1bmN0aW9uKGEpe3RyeXtiLm9uQ29tbWl0RmliZXJVbm1vdW50KGMsYSl9Y2F0Y2goZSl7fX19Y2F0Y2goZCl7fXJldHVybiEwfVxuZnVuY3Rpb24gdWooYSxiLGMsZCl7dGhpcy50YWc9YTt0aGlzLmtleT1jO3RoaXMuc2libGluZz10aGlzLmNoaWxkPXRoaXMucmV0dXJuPXRoaXMuc3RhdGVOb2RlPXRoaXMudHlwZT10aGlzLmVsZW1lbnRUeXBlPW51bGw7dGhpcy5pbmRleD0wO3RoaXMucmVmPW51bGw7dGhpcy5wZW5kaW5nUHJvcHM9Yjt0aGlzLmRlcGVuZGVuY2llcz10aGlzLm1lbW9pemVkU3RhdGU9dGhpcy51cGRhdGVRdWV1ZT10aGlzLm1lbW9pemVkUHJvcHM9bnVsbDt0aGlzLm1vZGU9ZDt0aGlzLmVmZmVjdFRhZz0wO3RoaXMubGFzdEVmZmVjdD10aGlzLmZpcnN0RWZmZWN0PXRoaXMubmV4dEVmZmVjdD1udWxsO3RoaXMuY2hpbGRFeHBpcmF0aW9uVGltZT10aGlzLmV4cGlyYXRpb25UaW1lPTA7dGhpcy5hbHRlcm5hdGU9bnVsbH1mdW5jdGlvbiB4aChhLGIsYyxkKXtyZXR1cm4gbmV3IHVqKGEsYixjLGQpfVxuZnVuY3Rpb24gSGgoYSl7YT1hLnByb3RvdHlwZTtyZXR1cm4hKCFhfHwhYS5pc1JlYWN0Q29tcG9uZW50KX1mdW5jdGlvbiBzaihhKXtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgYSlyZXR1cm4gSGgoYSk/MTowO2lmKHZvaWQgMCE9PWEmJm51bGwhPT1hKXthPWEuJCR0eXBlb2Y7aWYoYT09PWdjKXJldHVybiAxMTtpZihhPT09amMpcmV0dXJuIDE0fXJldHVybiAyfVxuZnVuY3Rpb24gb2coYSxiKXt2YXIgYz1hLmFsdGVybmF0ZTtudWxsPT09Yz8oYz14aChhLnRhZyxiLGEua2V5LGEubW9kZSksYy5lbGVtZW50VHlwZT1hLmVsZW1lbnRUeXBlLGMudHlwZT1hLnR5cGUsYy5zdGF0ZU5vZGU9YS5zdGF0ZU5vZGUsYy5hbHRlcm5hdGU9YSxhLmFsdGVybmF0ZT1jKTooYy5wZW5kaW5nUHJvcHM9YixjLmVmZmVjdFRhZz0wLGMubmV4dEVmZmVjdD1udWxsLGMuZmlyc3RFZmZlY3Q9bnVsbCxjLmxhc3RFZmZlY3Q9bnVsbCk7Yy5jaGlsZEV4cGlyYXRpb25UaW1lPWEuY2hpbGRFeHBpcmF0aW9uVGltZTtjLmV4cGlyYXRpb25UaW1lPWEuZXhwaXJhdGlvblRpbWU7Yy5jaGlsZD1hLmNoaWxkO2MubWVtb2l6ZWRQcm9wcz1hLm1lbW9pemVkUHJvcHM7Yy5tZW1vaXplZFN0YXRlPWEubWVtb2l6ZWRTdGF0ZTtjLnVwZGF0ZVF1ZXVlPWEudXBkYXRlUXVldWU7Yj1hLmRlcGVuZGVuY2llcztjLmRlcGVuZGVuY2llcz1udWxsPT09Yj9udWxsOntleHBpcmF0aW9uVGltZTpiLmV4cGlyYXRpb25UaW1lLFxuZmlyc3RDb250ZXh0OmIuZmlyc3RDb250ZXh0LHJlc3BvbmRlcnM6Yi5yZXNwb25kZXJzfTtjLnNpYmxpbmc9YS5zaWJsaW5nO2MuaW5kZXg9YS5pbmRleDtjLnJlZj1hLnJlZjtyZXR1cm4gY31cbmZ1bmN0aW9uIHFnKGEsYixjLGQsZSxmKXt2YXIgaD0yO2Q9YTtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgYSlIaChhKSYmKGg9MSk7ZWxzZSBpZihcInN0cmluZ1wiPT09dHlwZW9mIGEpaD01O2Vsc2UgYTpzd2l0Y2goYSl7Y2FzZSBhYzpyZXR1cm4gc2coYy5jaGlsZHJlbixlLGYsYik7Y2FzZSBmYzpoPTg7ZXw9NzticmVhaztjYXNlIGJjOmg9ODtlfD0xO2JyZWFrO2Nhc2UgY2M6cmV0dXJuIGE9eGgoMTIsYyxiLGV8OCksYS5lbGVtZW50VHlwZT1jYyxhLnR5cGU9Y2MsYS5leHBpcmF0aW9uVGltZT1mLGE7Y2FzZSBoYzpyZXR1cm4gYT14aCgxMyxjLGIsZSksYS50eXBlPWhjLGEuZWxlbWVudFR5cGU9aGMsYS5leHBpcmF0aW9uVGltZT1mLGE7Y2FzZSBpYzpyZXR1cm4gYT14aCgxOSxjLGIsZSksYS5lbGVtZW50VHlwZT1pYyxhLmV4cGlyYXRpb25UaW1lPWYsYTtkZWZhdWx0OmlmKFwib2JqZWN0XCI9PT10eXBlb2YgYSYmbnVsbCE9PWEpc3dpdGNoKGEuJCR0eXBlb2Ype2Nhc2UgZGM6aD1cbjEwO2JyZWFrIGE7Y2FzZSBlYzpoPTk7YnJlYWsgYTtjYXNlIGdjOmg9MTE7YnJlYWsgYTtjYXNlIGpjOmg9MTQ7YnJlYWsgYTtjYXNlIGtjOmg9MTY7ZD1udWxsO2JyZWFrIGF9dGhyb3cgdChFcnJvcigxMzApLG51bGw9PWE/YTp0eXBlb2YgYSxcIlwiKTt9Yj14aChoLGMsYixlKTtiLmVsZW1lbnRUeXBlPWE7Yi50eXBlPWQ7Yi5leHBpcmF0aW9uVGltZT1mO3JldHVybiBifWZ1bmN0aW9uIHNnKGEsYixjLGQpe2E9eGgoNyxhLGQsYik7YS5leHBpcmF0aW9uVGltZT1jO3JldHVybiBhfWZ1bmN0aW9uIHBnKGEsYixjKXthPXhoKDYsYSxudWxsLGIpO2EuZXhwaXJhdGlvblRpbWU9YztyZXR1cm4gYX1cbmZ1bmN0aW9uIHJnKGEsYixjKXtiPXhoKDQsbnVsbCE9PWEuY2hpbGRyZW4/YS5jaGlsZHJlbjpbXSxhLmtleSxiKTtiLmV4cGlyYXRpb25UaW1lPWM7Yi5zdGF0ZU5vZGU9e2NvbnRhaW5lckluZm86YS5jb250YWluZXJJbmZvLHBlbmRpbmdDaGlsZHJlbjpudWxsLGltcGxlbWVudGF0aW9uOmEuaW1wbGVtZW50YXRpb259O3JldHVybiBifVxuZnVuY3Rpb24gdmooYSxiLGMpe3RoaXMudGFnPWI7dGhpcy5jdXJyZW50PW51bGw7dGhpcy5jb250YWluZXJJbmZvPWE7dGhpcy5waW5nQ2FjaGU9dGhpcy5wZW5kaW5nQ2hpbGRyZW49bnVsbDt0aGlzLmZpbmlzaGVkRXhwaXJhdGlvblRpbWU9MDt0aGlzLmZpbmlzaGVkV29yaz1udWxsO3RoaXMudGltZW91dEhhbmRsZT0tMTt0aGlzLnBlbmRpbmdDb250ZXh0PXRoaXMuY29udGV4dD1udWxsO3RoaXMuaHlkcmF0ZT1jO3RoaXMuY2FsbGJhY2tOb2RlPXRoaXMuZmlyc3RCYXRjaD1udWxsO3RoaXMucGluZ1RpbWU9dGhpcy5sYXN0UGVuZGluZ1RpbWU9dGhpcy5maXJzdFBlbmRpbmdUaW1lPXRoaXMuY2FsbGJhY2tFeHBpcmF0aW9uVGltZT0wfWZ1bmN0aW9uIHdqKGEsYixjKXthPW5ldyB2aihhLGIsYyk7Yj14aCgzLG51bGwsbnVsbCwyPT09Yj83OjE9PT1iPzM6MCk7YS5jdXJyZW50PWI7cmV0dXJuIGIuc3RhdGVOb2RlPWF9XG5mdW5jdGlvbiB4aihhLGIsYyxkLGUsZil7dmFyIGg9Yi5jdXJyZW50O2E6aWYoYyl7Yz1jLl9yZWFjdEludGVybmFsRmliZXI7Yjp7aWYoMiE9PWxkKGMpfHwxIT09Yy50YWcpdGhyb3cgdChFcnJvcigxNzApKTt2YXIgZz1jO2Rve3N3aXRjaChnLnRhZyl7Y2FzZSAzOmc9Zy5zdGF0ZU5vZGUuY29udGV4dDticmVhayBiO2Nhc2UgMTppZihOKGcudHlwZSkpe2c9Zy5zdGF0ZU5vZGUuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNZXJnZWRDaGlsZENvbnRleHQ7YnJlYWsgYn19Zz1nLnJldHVybn13aGlsZShudWxsIT09Zyk7dGhyb3cgdChFcnJvcigxNzEpKTt9aWYoMT09PWMudGFnKXt2YXIgaz1jLnR5cGU7aWYoTihrKSl7Yz1XZShjLGssZyk7YnJlYWsgYX19Yz1nfWVsc2UgYz1RZTtudWxsPT09Yi5jb250ZXh0P2IuY29udGV4dD1jOmIucGVuZGluZ0NvbnRleHQ9YztiPWY7ZT1RZihkLGUpO2UucGF5bG9hZD17ZWxlbWVudDphfTtiPXZvaWQgMD09PWI/bnVsbDpiO251bGwhPT1iJiZcbihlLmNhbGxiYWNrPWIpO1NmKGgsZSk7ZWcoaCxkKTtyZXR1cm4gZH1mdW5jdGlvbiB5aihhLGIsYyxkKXt2YXIgZT1iLmN1cnJlbnQsZj1jZygpLGg9JGYuc3VzcGVuc2U7ZT1kZyhmLGUsaCk7cmV0dXJuIHhqKGEsYixjLGUsaCxkKX1mdW5jdGlvbiB6aihhKXthPWEuY3VycmVudDtpZighYS5jaGlsZClyZXR1cm4gbnVsbDtzd2l0Y2goYS5jaGlsZC50YWcpe2Nhc2UgNTpyZXR1cm4gYS5jaGlsZC5zdGF0ZU5vZGU7ZGVmYXVsdDpyZXR1cm4gYS5jaGlsZC5zdGF0ZU5vZGV9fWZ1bmN0aW9uIEFqKGEsYixjKXt2YXIgZD0zPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1szXT9hcmd1bWVudHNbM106bnVsbDtyZXR1cm57JCR0eXBlb2Y6JGIsa2V5Om51bGw9PWQ/bnVsbDpcIlwiK2QsY2hpbGRyZW46YSxjb250YWluZXJJbmZvOmIsaW1wbGVtZW50YXRpb246Y319XG5EYj1mdW5jdGlvbihhLGIsYyl7c3dpdGNoKGIpe2Nhc2UgXCJpbnB1dFwiOkVjKGEsYyk7Yj1jLm5hbWU7aWYoXCJyYWRpb1wiPT09Yy50eXBlJiZudWxsIT1iKXtmb3IoYz1hO2MucGFyZW50Tm9kZTspYz1jLnBhcmVudE5vZGU7Yz1jLnF1ZXJ5U2VsZWN0b3JBbGwoXCJpbnB1dFtuYW1lPVwiK0pTT04uc3RyaW5naWZ5KFwiXCIrYikrJ11bdHlwZT1cInJhZGlvXCJdJyk7Zm9yKGI9MDtiPGMubGVuZ3RoO2IrKyl7dmFyIGQ9Y1tiXTtpZihkIT09YSYmZC5mb3JtPT09YS5mb3JtKXt2YXIgZT1LYShkKTtpZighZSl0aHJvdyB0KEVycm9yKDkwKSk7V2IoZCk7RWMoZCxlKX19fWJyZWFrO2Nhc2UgXCJ0ZXh0YXJlYVwiOnBlKGEsYyk7YnJlYWs7Y2FzZSBcInNlbGVjdFwiOmI9Yy52YWx1ZSxudWxsIT1iJiZtZShhLCEhYy5tdWx0aXBsZSxiLCExKX19O1xuZnVuY3Rpb24gQmooYSl7dmFyIGI9MTA3Mzc0MTgyMS0yNSooKCgxMDczNzQxODIxLWNnKCkrNTAwKS8yNXwwKSsxKTtiPD1YaSYmLS1iO3RoaXMuX2V4cGlyYXRpb25UaW1lPVhpPWI7dGhpcy5fcm9vdD1hO3RoaXMuX2NhbGxiYWNrcz10aGlzLl9uZXh0PW51bGw7dGhpcy5faGFzQ2hpbGRyZW49dGhpcy5fZGlkQ29tcGxldGU9ITE7dGhpcy5fY2hpbGRyZW49bnVsbDt0aGlzLl9kZWZlcj0hMH1Cai5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKGEpe2lmKCF0aGlzLl9kZWZlcil0aHJvdyB0KEVycm9yKDI1MCkpO3RoaXMuX2hhc0NoaWxkcmVuPSEwO3RoaXMuX2NoaWxkcmVuPWE7dmFyIGI9dGhpcy5fcm9vdC5faW50ZXJuYWxSb290LGM9dGhpcy5fZXhwaXJhdGlvblRpbWUsZD1uZXcgQ2o7eGooYSxiLG51bGwsYyxudWxsLGQuX29uQ29tbWl0KTtyZXR1cm4gZH07XG5Cai5wcm90b3R5cGUudGhlbj1mdW5jdGlvbihhKXtpZih0aGlzLl9kaWRDb21wbGV0ZSlhKCk7ZWxzZXt2YXIgYj10aGlzLl9jYWxsYmFja3M7bnVsbD09PWImJihiPXRoaXMuX2NhbGxiYWNrcz1bXSk7Yi5wdXNoKGEpfX07XG5Cai5wcm90b3R5cGUuY29tbWl0PWZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5fcm9vdC5faW50ZXJuYWxSb290LGI9YS5maXJzdEJhdGNoO2lmKCF0aGlzLl9kZWZlcnx8bnVsbD09PWIpdGhyb3cgdChFcnJvcigyNTEpKTtpZih0aGlzLl9oYXNDaGlsZHJlbil7dmFyIGM9dGhpcy5fZXhwaXJhdGlvblRpbWU7aWYoYiE9PXRoaXMpe3RoaXMuX2hhc0NoaWxkcmVuJiYoYz10aGlzLl9leHBpcmF0aW9uVGltZT1iLl9leHBpcmF0aW9uVGltZSx0aGlzLnJlbmRlcih0aGlzLl9jaGlsZHJlbikpO2Zvcih2YXIgZD1udWxsLGU9YjtlIT09dGhpczspZD1lLGU9ZS5fbmV4dDtpZihudWxsPT09ZCl0aHJvdyB0KEVycm9yKDI1MSkpO2QuX25leHQ9ZS5fbmV4dDt0aGlzLl9uZXh0PWI7YS5maXJzdEJhdGNoPXRoaXN9dGhpcy5fZGVmZXI9ITE7Yj1jO2lmKChVJihDaXxEaSkpIT09VCl0aHJvdyB0KEVycm9yKDI1MykpO3hmKFouYmluZChudWxsLGEsYikpO08oKTtiPXRoaXMuX25leHQ7dGhpcy5fbmV4dD1cbm51bGw7Yj1hLmZpcnN0QmF0Y2g9YjtudWxsIT09YiYmYi5faGFzQ2hpbGRyZW4mJmIucmVuZGVyKGIuX2NoaWxkcmVuKX1lbHNlIHRoaXMuX25leHQ9bnVsbCx0aGlzLl9kZWZlcj0hMX07QmoucHJvdG90eXBlLl9vbkNvbXBsZXRlPWZ1bmN0aW9uKCl7aWYoIXRoaXMuX2RpZENvbXBsZXRlKXt0aGlzLl9kaWRDb21wbGV0ZT0hMDt2YXIgYT10aGlzLl9jYWxsYmFja3M7aWYobnVsbCE9PWEpZm9yKHZhciBiPTA7YjxhLmxlbmd0aDtiKyspKDAsYVtiXSkoKX19O2Z1bmN0aW9uIENqKCl7dGhpcy5fY2FsbGJhY2tzPW51bGw7dGhpcy5fZGlkQ29tbWl0PSExO3RoaXMuX29uQ29tbWl0PXRoaXMuX29uQ29tbWl0LmJpbmQodGhpcyl9Q2oucHJvdG90eXBlLnRoZW49ZnVuY3Rpb24oYSl7aWYodGhpcy5fZGlkQ29tbWl0KWEoKTtlbHNle3ZhciBiPXRoaXMuX2NhbGxiYWNrcztudWxsPT09YiYmKGI9dGhpcy5fY2FsbGJhY2tzPVtdKTtiLnB1c2goYSl9fTtcbkNqLnByb3RvdHlwZS5fb25Db21taXQ9ZnVuY3Rpb24oKXtpZighdGhpcy5fZGlkQ29tbWl0KXt0aGlzLl9kaWRDb21taXQ9ITA7dmFyIGE9dGhpcy5fY2FsbGJhY2tzO2lmKG51bGwhPT1hKWZvcih2YXIgYj0wO2I8YS5sZW5ndGg7YisrKXt2YXIgYz1hW2JdO2lmKFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBjKXRocm93IHQoRXJyb3IoMTkxKSxjKTtjKCl9fX07ZnVuY3Rpb24gRGooYSxiLGMpe3RoaXMuX2ludGVybmFsUm9vdD13aihhLGIsYyl9ZnVuY3Rpb24gRWooYSxiKXt0aGlzLl9pbnRlcm5hbFJvb3Q9d2ooYSwyLGIpfUVqLnByb3RvdHlwZS5yZW5kZXI9RGoucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuX2ludGVybmFsUm9vdCxkPW5ldyBDajtiPXZvaWQgMD09PWI/bnVsbDpiO251bGwhPT1iJiZkLnRoZW4oYik7eWooYSxjLG51bGwsZC5fb25Db21taXQpO3JldHVybiBkfTtcbkVqLnByb3RvdHlwZS51bm1vdW50PURqLnByb3RvdHlwZS51bm1vdW50PWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuX2ludGVybmFsUm9vdCxjPW5ldyBDajthPXZvaWQgMD09PWE/bnVsbDphO251bGwhPT1hJiZjLnRoZW4oYSk7eWoobnVsbCxiLG51bGwsYy5fb25Db21taXQpO3JldHVybiBjfTtFai5wcm90b3R5cGUuY3JlYXRlQmF0Y2g9ZnVuY3Rpb24oKXt2YXIgYT1uZXcgQmoodGhpcyksYj1hLl9leHBpcmF0aW9uVGltZSxjPXRoaXMuX2ludGVybmFsUm9vdCxkPWMuZmlyc3RCYXRjaDtpZihudWxsPT09ZCljLmZpcnN0QmF0Y2g9YSxhLl9uZXh0PW51bGw7ZWxzZXtmb3IoYz1udWxsO251bGwhPT1kJiZkLl9leHBpcmF0aW9uVGltZT49YjspYz1kLGQ9ZC5fbmV4dDthLl9uZXh0PWQ7bnVsbCE9PWMmJihjLl9uZXh0PWEpfXJldHVybiBhfTtcbmZ1bmN0aW9uIEhqKGEpe3JldHVybiEoIWF8fDEhPT1hLm5vZGVUeXBlJiY5IT09YS5ub2RlVHlwZSYmMTEhPT1hLm5vZGVUeXBlJiYoOCE9PWEubm9kZVR5cGV8fFwiIHJlYWN0LW1vdW50LXBvaW50LXVuc3RhYmxlIFwiIT09YS5ub2RlVmFsdWUpKX1KYj1lajtLYj1majtMYj1hajtNYj1mdW5jdGlvbihhLGIpe3ZhciBjPVU7VXw9Mjt0cnl7cmV0dXJuIGEoYil9ZmluYWxseXtVPWMsVT09PVQmJk8oKX19O2Z1bmN0aW9uIElqKGEsYil7Ynx8KGI9YT85PT09YS5ub2RlVHlwZT9hLmRvY3VtZW50RWxlbWVudDphLmZpcnN0Q2hpbGQ6bnVsbCxiPSEoIWJ8fDEhPT1iLm5vZGVUeXBlfHwhYi5oYXNBdHRyaWJ1dGUoXCJkYXRhLXJlYWN0cm9vdFwiKSkpO2lmKCFiKWZvcih2YXIgYztjPWEubGFzdENoaWxkOylhLnJlbW92ZUNoaWxkKGMpO3JldHVybiBuZXcgRGooYSwwLGIpfVxuZnVuY3Rpb24gSmooYSxiLGMsZCxlKXt2YXIgZj1jLl9yZWFjdFJvb3RDb250YWluZXIsaD12b2lkIDA7aWYoZil7aD1mLl9pbnRlcm5hbFJvb3Q7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGUpe3ZhciBnPWU7ZT1mdW5jdGlvbigpe3ZhciBhPXpqKGgpO2cuY2FsbChhKX19eWooYixoLGEsZSl9ZWxzZXtmPWMuX3JlYWN0Um9vdENvbnRhaW5lcj1JaihjLGQpO2g9Zi5faW50ZXJuYWxSb290O2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBlKXt2YXIgaz1lO2U9ZnVuY3Rpb24oKXt2YXIgYT16aihoKTtrLmNhbGwoYSl9fWdqKGZ1bmN0aW9uKCl7eWooYixoLGEsZSl9KX1yZXR1cm4gemooaCl9ZnVuY3Rpb24gS2ooYSxiKXt2YXIgYz0yPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06bnVsbDtpZighSGooYikpdGhyb3cgdChFcnJvcigyMDApKTtyZXR1cm4gQWooYSxiLG51bGwsYyl9XG52YXIgTmo9e2NyZWF0ZVBvcnRhbDpLaixmaW5kRE9NTm9kZTpmdW5jdGlvbihhKXtpZihudWxsPT1hKWE9bnVsbDtlbHNlIGlmKDEhPT1hLm5vZGVUeXBlKXt2YXIgYj1hLl9yZWFjdEludGVybmFsRmliZXI7aWYodm9pZCAwPT09Yil7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGEucmVuZGVyKXRocm93IHQoRXJyb3IoMTg4KSk7dGhyb3cgdChFcnJvcigyNjgpLE9iamVjdC5rZXlzKGEpKTt9YT1xZChiKTthPW51bGw9PT1hP251bGw6YS5zdGF0ZU5vZGV9cmV0dXJuIGF9LGh5ZHJhdGU6ZnVuY3Rpb24oYSxiLGMpe2lmKCFIaihiKSl0aHJvdyB0KEVycm9yKDIwMCkpO3JldHVybiBKaihudWxsLGEsYiwhMCxjKX0scmVuZGVyOmZ1bmN0aW9uKGEsYixjKXtpZighSGooYikpdGhyb3cgdChFcnJvcigyMDApKTtyZXR1cm4gSmoobnVsbCxhLGIsITEsYyl9LHVuc3RhYmxlX3JlbmRlclN1YnRyZWVJbnRvQ29udGFpbmVyOmZ1bmN0aW9uKGEsYixjLGQpe2lmKCFIaihjKSl0aHJvdyB0KEVycm9yKDIwMCkpO1xuaWYobnVsbD09YXx8dm9pZCAwPT09YS5fcmVhY3RJbnRlcm5hbEZpYmVyKXRocm93IHQoRXJyb3IoMzgpKTtyZXR1cm4gSmooYSxiLGMsITEsZCl9LHVubW91bnRDb21wb25lbnRBdE5vZGU6ZnVuY3Rpb24oYSl7aWYoIUhqKGEpKXRocm93IHQoRXJyb3IoNDApKTtyZXR1cm4gYS5fcmVhY3RSb290Q29udGFpbmVyPyhnaihmdW5jdGlvbigpe0pqKG51bGwsbnVsbCxhLCExLGZ1bmN0aW9uKCl7YS5fcmVhY3RSb290Q29udGFpbmVyPW51bGx9KX0pLCEwKTohMX0sdW5zdGFibGVfY3JlYXRlUG9ydGFsOmZ1bmN0aW9uKCl7cmV0dXJuIEtqLmFwcGx5KHZvaWQgMCxhcmd1bWVudHMpfSx1bnN0YWJsZV9iYXRjaGVkVXBkYXRlczplaix1bnN0YWJsZV9pbnRlcmFjdGl2ZVVwZGF0ZXM6ZnVuY3Rpb24oYSxiLGMsZCl7YWooKTtyZXR1cm4gZmooYSxiLGMsZCl9LHVuc3RhYmxlX2Rpc2NyZXRlVXBkYXRlczpmaix1bnN0YWJsZV9mbHVzaERpc2NyZXRlVXBkYXRlczphaixmbHVzaFN5bmM6ZnVuY3Rpb24oYSxcbmIpe2lmKChVJihDaXxEaSkpIT09VCl0aHJvdyB0KEVycm9yKDE4NykpO3ZhciBjPVU7VXw9MTt0cnl7cmV0dXJuIHZmKDk5LGEuYmluZChudWxsLGIpKX1maW5hbGx5e1U9YyxPKCl9fSx1bnN0YWJsZV9jcmVhdGVSb290OkxqLHVuc3RhYmxlX2NyZWF0ZVN5bmNSb290Ok1qLHVuc3RhYmxlX2ZsdXNoQ29udHJvbGxlZDpmdW5jdGlvbihhKXt2YXIgYj1VO1V8PTE7dHJ5e3ZmKDk5LGEpfWZpbmFsbHl7VT1iLFU9PT1UJiZPKCl9fSxfX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRDp7RXZlbnRzOltJYSxKYSxLYSxDYS5pbmplY3RFdmVudFBsdWdpbnNCeU5hbWUsZmEsUWEsZnVuY3Rpb24oYSl7eWEoYSxQYSl9LEhiLEliLFVkLEJhLGNqLHtjdXJyZW50OiExfV19fTtcbmZ1bmN0aW9uIExqKGEsYil7aWYoIUhqKGEpKXRocm93IHQoRXJyb3IoMjk5KSxcInVuc3RhYmxlX2NyZWF0ZVJvb3RcIik7cmV0dXJuIG5ldyBFaihhLG51bGwhPWImJiEwPT09Yi5oeWRyYXRlKX1mdW5jdGlvbiBNaihhLGIpe2lmKCFIaihhKSl0aHJvdyB0KEVycm9yKDI5OSksXCJ1bnN0YWJsZV9jcmVhdGVSb290XCIpO3JldHVybiBuZXcgRGooYSwxLG51bGwhPWImJiEwPT09Yi5oeWRyYXRlKX1cbihmdW5jdGlvbihhKXt2YXIgYj1hLmZpbmRGaWJlckJ5SG9zdEluc3RhbmNlO3JldHVybiB0aihtKHt9LGEse292ZXJyaWRlSG9va1N0YXRlOm51bGwsb3ZlcnJpZGVQcm9wczpudWxsLHNldFN1c3BlbnNlSGFuZGxlcjpudWxsLHNjaGVkdWxlVXBkYXRlOm51bGwsY3VycmVudERpc3BhdGNoZXJSZWY6WGIuUmVhY3RDdXJyZW50RGlzcGF0Y2hlcixmaW5kSG9zdEluc3RhbmNlQnlGaWJlcjpmdW5jdGlvbihhKXthPXFkKGEpO3JldHVybiBudWxsPT09YT9udWxsOmEuc3RhdGVOb2RlfSxmaW5kRmliZXJCeUhvc3RJbnN0YW5jZTpmdW5jdGlvbihhKXtyZXR1cm4gYj9iKGEpOm51bGx9LGZpbmRIb3N0SW5zdGFuY2VzRm9yUmVmcmVzaDpudWxsLHNjaGVkdWxlUmVmcmVzaDpudWxsLHNjaGVkdWxlUm9vdDpudWxsLHNldFJlZnJlc2hIYW5kbGVyOm51bGwsZ2V0Q3VycmVudEZpYmVyOm51bGx9KSl9KSh7ZmluZEZpYmVyQnlIb3N0SW5zdGFuY2U6SGEsYnVuZGxlVHlwZTowLHZlcnNpb246XCIxNi45LjBcIixcbnJlbmRlcmVyUGFja2FnZU5hbWU6XCJyZWFjdC1kb21cIn0pO3ZhciBPaj17ZGVmYXVsdDpOan0sUGo9T2omJk5qfHxPajttb2R1bGUuZXhwb3J0cz1Qai5kZWZhdWx0fHxQajtcbiIsIid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9zY2hlZHVsZXIucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvc2NoZWR1bGVyLmRldmVsb3BtZW50LmpzJyk7XG59XG4iLCIvKiogQGxpY2Vuc2UgUmVhY3QgdjAuMTUuMFxuICogc2NoZWR1bGVyLnByb2R1Y3Rpb24ubWluLmpzXG4gKlxuICogQ29weXJpZ2h0IChjKSBGYWNlYm9vaywgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO09iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO3ZhciBkPXZvaWQgMCxlPXZvaWQgMCxnPXZvaWQgMCxtPXZvaWQgMCxuPXZvaWQgMDtleHBvcnRzLnVuc3RhYmxlX25vdz12b2lkIDA7ZXhwb3J0cy51bnN0YWJsZV9mb3JjZUZyYW1lUmF0ZT12b2lkIDA7XG5pZihcInVuZGVmaW5lZFwiPT09dHlwZW9mIHdpbmRvd3x8XCJmdW5jdGlvblwiIT09dHlwZW9mIE1lc3NhZ2VDaGFubmVsKXt2YXIgcD1udWxsLHE9bnVsbCxyPWZ1bmN0aW9uKCl7aWYobnVsbCE9PXApdHJ5e3ZhciBhPWV4cG9ydHMudW5zdGFibGVfbm93KCk7cCghMCxhKTtwPW51bGx9Y2F0Y2goYil7dGhyb3cgc2V0VGltZW91dChyLDApLGI7fX07ZXhwb3J0cy51bnN0YWJsZV9ub3c9ZnVuY3Rpb24oKXtyZXR1cm4gRGF0ZS5ub3coKX07ZD1mdW5jdGlvbihhKXtudWxsIT09cD9zZXRUaW1lb3V0KGQsMCxhKToocD1hLHNldFRpbWVvdXQociwwKSl9O2U9ZnVuY3Rpb24oYSxiKXtxPXNldFRpbWVvdXQoYSxiKX07Zz1mdW5jdGlvbigpe2NsZWFyVGltZW91dChxKX07bT1mdW5jdGlvbigpe3JldHVybiExfTtuPWV4cG9ydHMudW5zdGFibGVfZm9yY2VGcmFtZVJhdGU9ZnVuY3Rpb24oKXt9fWVsc2V7dmFyIHQ9d2luZG93LnBlcmZvcm1hbmNlLHU9d2luZG93LkRhdGUsdj13aW5kb3cuc2V0VGltZW91dCxcbnc9d2luZG93LmNsZWFyVGltZW91dCx4PXdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUseT13aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWU7XCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBjb25zb2xlJiYoXCJmdW5jdGlvblwiIT09dHlwZW9mIHgmJmNvbnNvbGUuZXJyb3IoXCJUaGlzIGJyb3dzZXIgZG9lc24ndCBzdXBwb3J0IHJlcXVlc3RBbmltYXRpb25GcmFtZS4gTWFrZSBzdXJlIHRoYXQgeW91IGxvYWQgYSBwb2x5ZmlsbCBpbiBvbGRlciBicm93c2Vycy4gaHR0cHM6Ly9mYi5tZS9yZWFjdC1wb2x5ZmlsbHNcIiksXCJmdW5jdGlvblwiIT09dHlwZW9mIHkmJmNvbnNvbGUuZXJyb3IoXCJUaGlzIGJyb3dzZXIgZG9lc24ndCBzdXBwb3J0IGNhbmNlbEFuaW1hdGlvbkZyYW1lLiBNYWtlIHN1cmUgdGhhdCB5b3UgbG9hZCBhIHBvbHlmaWxsIGluIG9sZGVyIGJyb3dzZXJzLiBodHRwczovL2ZiLm1lL3JlYWN0LXBvbHlmaWxsc1wiKSk7ZXhwb3J0cy51bnN0YWJsZV9ub3c9XCJvYmplY3RcIj09PXR5cGVvZiB0JiZcblwiZnVuY3Rpb25cIj09PXR5cGVvZiB0Lm5vdz9mdW5jdGlvbigpe3JldHVybiB0Lm5vdygpfTpmdW5jdGlvbigpe3JldHVybiB1Lm5vdygpfTt2YXIgej0hMSxBPW51bGwsQj0tMSxDPS0xLEQ9MzMuMzMsRT0tMSxGPS0xLEc9MCxIPSExO209ZnVuY3Rpb24oKXtyZXR1cm4gZXhwb3J0cy51bnN0YWJsZV9ub3coKT49R307bj1mdW5jdGlvbigpe307ZXhwb3J0cy51bnN0YWJsZV9mb3JjZUZyYW1lUmF0ZT1mdW5jdGlvbihhKXswPmF8fDEyNTxhP2NvbnNvbGUuZXJyb3IoXCJmb3JjZUZyYW1lUmF0ZSB0YWtlcyBhIHBvc2l0aXZlIGludCBiZXR3ZWVuIDAgYW5kIDEyNSwgZm9yY2luZyBmcmFtZXJhdGVzIGhpZ2hlciB0aGFuIDEyNSBmcHMgaXMgbm90IHVuc3VwcG9ydGVkXCIpOjA8YT8oRD1NYXRoLmZsb29yKDFFMy9hKSxIPSEwKTooRD0zMy4zMyxIPSExKX07dmFyIEo9ZnVuY3Rpb24oKXtpZihudWxsIT09QSl7dmFyIGE9ZXhwb3J0cy51bnN0YWJsZV9ub3coKSxiPTA8Ry1hO3RyeXtBKGIsXG5hKXx8KEE9bnVsbCl9Y2F0Y2goYyl7dGhyb3cgSS5wb3N0TWVzc2FnZShudWxsKSxjO319fSxLPW5ldyBNZXNzYWdlQ2hhbm5lbCxJPUsucG9ydDI7Sy5wb3J0MS5vbm1lc3NhZ2U9Sjt2YXIgTD1mdW5jdGlvbihhKXtpZihudWxsPT09QSlGPUU9LTEsej0hMTtlbHNle3o9ITA7eChmdW5jdGlvbihhKXt3KEIpO0woYSl9KTt2YXIgYj1mdW5jdGlvbigpe0c9ZXhwb3J0cy51bnN0YWJsZV9ub3coKStELzI7SigpO0I9dihiLDMqRCl9O0I9dihiLDMqRCk7aWYoLTEhPT1FJiYuMTxhLUUpe3ZhciBjPWEtRTshSCYmLTEhPT1GJiZjPEQmJkY8RCYmKEQ9YzxGP0Y6Yyw4LjMzPkQmJihEPTguMzMpKTtGPWN9RT1hO0c9YStEO0kucG9zdE1lc3NhZ2UobnVsbCl9fTtkPWZ1bmN0aW9uKGEpe0E9YTt6fHwoej0hMCx4KGZ1bmN0aW9uKGEpe0woYSl9KSl9O2U9ZnVuY3Rpb24oYSxiKXtDPXYoZnVuY3Rpb24oKXthKGV4cG9ydHMudW5zdGFibGVfbm93KCkpfSxiKX07Zz1mdW5jdGlvbigpe3coQyk7XG5DPS0xfX12YXIgTT1udWxsLE49bnVsbCxPPW51bGwsUD0zLFE9ITEsUj0hMSxTPSExO1xuZnVuY3Rpb24gVChhLGIpe3ZhciBjPWEubmV4dDtpZihjPT09YSlNPW51bGw7ZWxzZXthPT09TSYmKE09Yyk7dmFyIGY9YS5wcmV2aW91cztmLm5leHQ9YztjLnByZXZpb3VzPWZ9YS5uZXh0PWEucHJldmlvdXM9bnVsbDtjPWEuY2FsbGJhY2s7Zj1QO3ZhciBsPU87UD1hLnByaW9yaXR5TGV2ZWw7Tz1hO3RyeXt2YXIgaD1hLmV4cGlyYXRpb25UaW1lPD1iO3N3aXRjaChQKXtjYXNlIDE6dmFyIGs9YyhoKTticmVhaztjYXNlIDI6az1jKGgpO2JyZWFrO2Nhc2UgMzprPWMoaCk7YnJlYWs7Y2FzZSA0Oms9YyhoKTticmVhaztjYXNlIDU6az1jKGgpfX1jYXRjaChaKXt0aHJvdyBaO31maW5hbGx5e1A9ZixPPWx9aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGspaWYoYj1hLmV4cGlyYXRpb25UaW1lLGEuY2FsbGJhY2s9ayxudWxsPT09TSlNPWEubmV4dD1hLnByZXZpb3VzPWE7ZWxzZXtrPW51bGw7aD1NO2Rve2lmKGI8PWguZXhwaXJhdGlvblRpbWUpe2s9aDticmVha31oPWgubmV4dH13aGlsZShoIT09XG5NKTtudWxsPT09az9rPU06az09PU0mJihNPWEpO2I9ay5wcmV2aW91cztiLm5leHQ9ay5wcmV2aW91cz1hO2EubmV4dD1rO2EucHJldmlvdXM9Yn19ZnVuY3Rpb24gVShhKXtpZihudWxsIT09TiYmTi5zdGFydFRpbWU8PWEpe2Rve3ZhciBiPU4sYz1iLm5leHQ7aWYoYj09PWMpTj1udWxsO2Vsc2V7Tj1jO3ZhciBmPWIucHJldmlvdXM7Zi5uZXh0PWM7Yy5wcmV2aW91cz1mfWIubmV4dD1iLnByZXZpb3VzPW51bGw7VihiLGIuZXhwaXJhdGlvblRpbWUpfXdoaWxlKG51bGwhPT1OJiZOLnN0YXJ0VGltZTw9YSl9fWZ1bmN0aW9uIFcoYSl7Uz0hMTtVKGEpO1J8fChudWxsIT09TT8oUj0hMCxkKFgpKTpudWxsIT09TiYmZShXLE4uc3RhcnRUaW1lLWEpKX1cbmZ1bmN0aW9uIFgoYSxiKXtSPSExO1MmJihTPSExLGcoKSk7VShiKTtRPSEwO3RyeXtpZighYSlmb3IoO251bGwhPT1NJiZNLmV4cGlyYXRpb25UaW1lPD1iOylUKE0sYiksYj1leHBvcnRzLnVuc3RhYmxlX25vdygpLFUoYik7ZWxzZSBpZihudWxsIT09TSl7ZG8gVChNLGIpLGI9ZXhwb3J0cy51bnN0YWJsZV9ub3coKSxVKGIpO3doaWxlKG51bGwhPT1NJiYhbSgpKX1pZihudWxsIT09TSlyZXR1cm4hMDtudWxsIT09TiYmZShXLE4uc3RhcnRUaW1lLWIpO3JldHVybiExfWZpbmFsbHl7UT0hMX19ZnVuY3Rpb24gWShhKXtzd2l0Y2goYSl7Y2FzZSAxOnJldHVybi0xO2Nhc2UgMjpyZXR1cm4gMjUwO2Nhc2UgNTpyZXR1cm4gMTA3Mzc0MTgyMztjYXNlIDQ6cmV0dXJuIDFFNDtkZWZhdWx0OnJldHVybiA1RTN9fVxuZnVuY3Rpb24gVihhLGIpe2lmKG51bGw9PT1NKU09YS5uZXh0PWEucHJldmlvdXM9YTtlbHNle3ZhciBjPW51bGwsZj1NO2Rve2lmKGI8Zi5leHBpcmF0aW9uVGltZSl7Yz1mO2JyZWFrfWY9Zi5uZXh0fXdoaWxlKGYhPT1NKTtudWxsPT09Yz9jPU06Yz09PU0mJihNPWEpO2I9Yy5wcmV2aW91cztiLm5leHQ9Yy5wcmV2aW91cz1hO2EubmV4dD1jO2EucHJldmlvdXM9Yn19dmFyIGFhPW47ZXhwb3J0cy51bnN0YWJsZV9JbW1lZGlhdGVQcmlvcml0eT0xO2V4cG9ydHMudW5zdGFibGVfVXNlckJsb2NraW5nUHJpb3JpdHk9MjtleHBvcnRzLnVuc3RhYmxlX05vcm1hbFByaW9yaXR5PTM7ZXhwb3J0cy51bnN0YWJsZV9JZGxlUHJpb3JpdHk9NTtleHBvcnRzLnVuc3RhYmxlX0xvd1ByaW9yaXR5PTQ7XG5leHBvcnRzLnVuc3RhYmxlX3J1bldpdGhQcmlvcml0eT1mdW5jdGlvbihhLGIpe3N3aXRjaChhKXtjYXNlIDE6Y2FzZSAyOmNhc2UgMzpjYXNlIDQ6Y2FzZSA1OmJyZWFrO2RlZmF1bHQ6YT0zfXZhciBjPVA7UD1hO3RyeXtyZXR1cm4gYigpfWZpbmFsbHl7UD1jfX07ZXhwb3J0cy51bnN0YWJsZV9uZXh0PWZ1bmN0aW9uKGEpe3N3aXRjaChQKXtjYXNlIDE6Y2FzZSAyOmNhc2UgMzp2YXIgYj0zO2JyZWFrO2RlZmF1bHQ6Yj1QfXZhciBjPVA7UD1iO3RyeXtyZXR1cm4gYSgpfWZpbmFsbHl7UD1jfX07XG5leHBvcnRzLnVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2s9ZnVuY3Rpb24oYSxiLGMpe3ZhciBmPWV4cG9ydHMudW5zdGFibGVfbm93KCk7aWYoXCJvYmplY3RcIj09PXR5cGVvZiBjJiZudWxsIT09Yyl7dmFyIGw9Yy5kZWxheTtsPVwibnVtYmVyXCI9PT10eXBlb2YgbCYmMDxsP2YrbDpmO2M9XCJudW1iZXJcIj09PXR5cGVvZiBjLnRpbWVvdXQ/Yy50aW1lb3V0OlkoYSl9ZWxzZSBjPVkoYSksbD1mO2M9bCtjO2E9e2NhbGxiYWNrOmIscHJpb3JpdHlMZXZlbDphLHN0YXJ0VGltZTpsLGV4cGlyYXRpb25UaW1lOmMsbmV4dDpudWxsLHByZXZpb3VzOm51bGx9O2lmKGw+Zil7Yz1sO2lmKG51bGw9PT1OKU49YS5uZXh0PWEucHJldmlvdXM9YTtlbHNle2I9bnVsbDt2YXIgaD1OO2Rve2lmKGM8aC5zdGFydFRpbWUpe2I9aDticmVha31oPWgubmV4dH13aGlsZShoIT09Tik7bnVsbD09PWI/Yj1OOmI9PT1OJiYoTj1hKTtjPWIucHJldmlvdXM7Yy5uZXh0PWIucHJldmlvdXM9YTthLm5leHQ9YjthLnByZXZpb3VzPVxuY31udWxsPT09TSYmTj09PWEmJihTP2coKTpTPSEwLGUoVyxsLWYpKX1lbHNlIFYoYSxjKSxSfHxRfHwoUj0hMCxkKFgpKTtyZXR1cm4gYX07ZXhwb3J0cy51bnN0YWJsZV9jYW5jZWxDYWxsYmFjaz1mdW5jdGlvbihhKXt2YXIgYj1hLm5leHQ7aWYobnVsbCE9PWIpe2lmKGE9PT1iKWE9PT1NP009bnVsbDphPT09TiYmKE49bnVsbCk7ZWxzZXthPT09TT9NPWI6YT09PU4mJihOPWIpO3ZhciBjPWEucHJldmlvdXM7Yy5uZXh0PWI7Yi5wcmV2aW91cz1jfWEubmV4dD1hLnByZXZpb3VzPW51bGx9fTtleHBvcnRzLnVuc3RhYmxlX3dyYXBDYWxsYmFjaz1mdW5jdGlvbihhKXt2YXIgYj1QO3JldHVybiBmdW5jdGlvbigpe3ZhciBjPVA7UD1iO3RyeXtyZXR1cm4gYS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZmluYWxseXtQPWN9fX07ZXhwb3J0cy51bnN0YWJsZV9nZXRDdXJyZW50UHJpb3JpdHlMZXZlbD1mdW5jdGlvbigpe3JldHVybiBQfTtcbmV4cG9ydHMudW5zdGFibGVfc2hvdWxkWWllbGQ9ZnVuY3Rpb24oKXt2YXIgYT1leHBvcnRzLnVuc3RhYmxlX25vdygpO1UoYSk7cmV0dXJuIG51bGwhPT1PJiZudWxsIT09TSYmTS5zdGFydFRpbWU8PWEmJk0uZXhwaXJhdGlvblRpbWU8Ty5leHBpcmF0aW9uVGltZXx8bSgpfTtleHBvcnRzLnVuc3RhYmxlX3JlcXVlc3RQYWludD1hYTtleHBvcnRzLnVuc3RhYmxlX2NvbnRpbnVlRXhlY3V0aW9uPWZ1bmN0aW9uKCl7Unx8UXx8KFI9ITAsZChYKSl9O2V4cG9ydHMudW5zdGFibGVfcGF1c2VFeGVjdXRpb249ZnVuY3Rpb24oKXt9O2V4cG9ydHMudW5zdGFibGVfZ2V0Rmlyc3RDYWxsYmFja05vZGU9ZnVuY3Rpb24oKXtyZXR1cm4gTX07XG4iLCIvKiogQGxpY2Vuc2UgSVNDIExpY2Vuc2UgKGMpIGNvcHlyaWdodCAyMDE2IG9yaWdpbmFsIGFuZCBjdXJyZW50IGF1dGhvcnMgKi9cbi8qKiBAYXV0aG9yIElhbiBIb2ZtYW5uLUhpY2tzIChldmlsKSAqL1xuXG52YXIgY3VycnkgPSByZXF1aXJlKCcuL2N1cnJ5JylcbnZhciBpc0FycmF5ID0gcmVxdWlyZSgnLi9pc0FycmF5JylcbnZhciBpc0VtcHR5ID0gcmVxdWlyZSgnLi9pc0VtcHR5JylcbnZhciBpc0Z1bmN0aW9uID0gcmVxdWlyZSgnLi9pc0Z1bmN0aW9uJylcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4vaXNPYmplY3QnKVxudmFyIGlzU3RyaW5nID0gcmVxdWlyZSgnLi9pc1N0cmluZycpXG5cbnZhciBjb25zdGFudCA9IGZ1bmN0aW9uICh4KSB7IHJldHVybiBmdW5jdGlvbiAoKSB7IHJldHVybiB4OyB9OyB9XG5cbnZhciBpc0RlZmluaXRpb24gPVxuICBmdW5jdGlvbiAoeCkgeyByZXR1cm4gaXNTdHJpbmcoeCkgJiYgeC5sZW5ndGg7IH1cblxuZnVuY3Rpb24gY2FzZU9mKGRlZnMpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKGNhc2VzLCBtKSB7XG4gICAgdmFyIHRhZyA9IG0udGFnXG4gICAgdmFyIGRlZiA9IGRlZnNbdGFnKCldXG5cbiAgICB2YXIgYXJncyA9IGRlZi5yZWR1Y2UoXG4gICAgICBmdW5jdGlvbiAoeHMsIHgpIHsgcmV0dXJuIHhzLmNvbmNhdChbIG1beF0udmFsdWUoKSBdKTsgfSxcbiAgICAgIFtdXG4gICAgKVxuXG4gICAgcmV0dXJuIGNhc2VzW3RhZygpXS5hcHBseShudWxsLCBhcmdzKVxuICB9XG59XG5cbnZhciBpbmNsdWRlcyA9XG4gIGZ1bmN0aW9uIChkZWZzKSB7IHJldHVybiBmdW5jdGlvbiAobSkgeyByZXR1cm4gISFtICYmIGlzRnVuY3Rpb24obS50YWcpICYmIE9iamVjdC5rZXlzKGRlZnMpLmluZGV4T2YobS50YWcoKSkgIT09IC0xOyB9OyB9XG5cbmZ1bmN0aW9uIGNvbnN0cnVjdGlvbihkZWYsIHRhZykge1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgdmFyIGFyZ3MgPSBbXSwgbGVuID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgICB3aGlsZSAoIGxlbi0tICkgYXJnc1sgbGVuIF0gPSBhcmd1bWVudHNbIGxlbiBdO1xuXG4gICAgcmV0dXJuIGRlZi5yZWR1Y2UoZnVuY3Rpb24ob2JqLCBrZXksIGluZGV4KSB7XG4gICAgICBvYmpba2V5XSA9IHsgdmFsdWU6IGNvbnN0YW50KGFyZ3NbaW5kZXhdKSB9XG4gICAgICByZXR1cm4gb2JqXG4gICAgfSwgeyB0YWc6IGNvbnN0YW50KHRhZykgfSlcbiAgfVxufVxuXG5mdW5jdGlvbiBkZWZpbmVVbmlvbihkZWZzKSB7XG4gIGlmKCFpc09iamVjdChkZWZzKSB8fCBpc0VtcHR5KGRlZnMpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignZGVmaW5lVW5pb246IEFyZ3VtZW50IG11c3QgYmUgYW4gT2JqZWN0IGNvbnRhaW5pbmcgZGVmaW5pdGlvbiBsaXN0cycpXG4gIH1cblxuICByZXR1cm4gT2JqZWN0LmtleXMoZGVmcykucmVkdWNlKGZ1bmN0aW9uKG9iaiwgdGFnKSB7XG4gICAgdmFyIGRlZiA9IGRlZnNbdGFnXVxuXG4gICAgaWYoIWlzQXJyYXkoZGVmKSB8fCAhZGVmLnJlZHVjZShmdW5jdGlvbiAoeCwgeSkgeyByZXR1cm4geCAmJiBpc0RlZmluaXRpb24oeSk7IH0sIHRydWUpKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdkZWZpbmVVbmlvbjogRGVmaW5pdGlvbnMgbXVzdCBiZSBhIGxpc3Qgb2Ygbm9uLWVtcHR5IHN0cmluZyBpZGVudGlmaWVycycpXG4gICAgfVxuXG4gICAgb2JqW3RhZ10gPSBjb25zdHJ1Y3Rpb24oZGVmLCB0YWcpXG5cbiAgICByZXR1cm4gb2JqXG4gIH0sIHsgY2FzZU9mOiBjdXJyeShjYXNlT2YoZGVmcykpLCBpbmNsdWRlczogY3VycnkoaW5jbHVkZXMoZGVmcykpIH0pXG59XG5cbm1vZHVsZS5leHBvcnRzID0gZGVmaW5lVW5pb25cbiIsIi8qKiBAbGljZW5zZSBJU0MgTGljZW5zZSAoYykgY29weXJpZ2h0IDIwMTYgb3JpZ2luYWwgYW5kIGN1cnJlbnQgYXV0aG9ycyAqL1xuLyoqIEBhdXRob3IgSWFuIEhvZm1hbm4tSGlja3MgKGV2aWwpICovXG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL2lzT2JqZWN0JylcbnZhciBpc01vbm9pZCA9IHJlcXVpcmUoJy4vaXNNb25vaWQnKVxudmFyIGVxdWFscyA9IHJlcXVpcmUoJy4vZXF1YWxzJylcbnZhciBmbCA9IHJlcXVpcmUoJy4vZmxOYW1lcycpXG5cbmZ1bmN0aW9uIGlzRW1wdHkoeCkge1xuICBpZihpc01vbm9pZCh4KSkge1xuICAgIHZhciBlbXB0eSA9IHguY29uc3RydWN0b3JbZmxbJ2VtcHR5J11dIHx8IHguY29uc3RydWN0b3JbJ2VtcHR5J10gfHwgeFsnZW1wdHknXVxuXG4gICAgcmV0dXJuIGVxdWFscyh4LCBlbXB0eSgpKVxuICB9XG5cbiAgaWYoaXNPYmplY3QoeCkpIHtcbiAgICByZXR1cm4gIU9iamVjdC5rZXlzKHgpLmxlbmd0aFxuICB9XG5cbiAgaWYoeCAmJiB4Lmxlbmd0aCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuICF4Lmxlbmd0aFxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc0VtcHR5XG4iLCIvKiogQGxpY2Vuc2UgSVNDIExpY2Vuc2UgKGMpIGNvcHlyaWdodCAyMDE2IG9yaWdpbmFsIGFuZCBjdXJyZW50IGF1dGhvcnMgKi9cbi8qKiBAYXV0aG9yIElhbiBIb2ZtYW5uLUhpY2tzIChldmlsKSAqL1xuXG52YXIgaGFzQWxnID0gcmVxdWlyZSgnLi9oYXNBbGcnKVxudmFyIGlzU2VtaWdyb3VwID0gcmVxdWlyZSgnLi9pc1NlbWlncm91cCcpXG5cbi8vIGlzTW9ub2lkIDo6IGEgLT4gQm9vbGVhblxuZnVuY3Rpb24gaXNNb25vaWQobSkge1xuICByZXR1cm4gaXNTZW1pZ3JvdXAobSlcbiAgICAmJiAoaGFzQWxnKCdlbXB0eScsIG0pIHx8IGhhc0FsZygnZW1wdHknLCBtLmNvbnN0cnVjdG9yKSlcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc01vbm9pZFxuIiwiLyoqIEBsaWNlbnNlIElTQyBMaWNlbnNlIChjKSBjb3B5cmlnaHQgMjAxNyBvcmlnaW5hbCBhbmQgY3VycmVudCBhdXRob3JzICovXG4vKiogQGF1dGhvciBJYW4gSG9mbWFubi1IaWNrcyAoZXZpbCkgKi9cblxuLy8gaXNTYW1lIDogKGEsIGIpIC0+IEJvb2xlYW5cbmZ1bmN0aW9uIGlzU2FtZSh4LCB5KSB7XG4gIGlmKHggPT09IHkpIHtcbiAgICByZXR1cm4geCAhPT0gMCB8fCAxIC8geCA9PT0gMSAvIHlcbiAgfVxuXG4gIHJldHVybiB4ICE9PSB4ICYmIHkgIT09IHlcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc1NhbWVcbiIsIi8qKiBAbGljZW5zZSBJU0MgTGljZW5zZSAoYykgY29weXJpZ2h0IDIwMTcgb3JpZ2luYWwgYW5kIGN1cnJlbnQgYXV0aG9ycyAqL1xuLyoqIEBhdXRob3IgSWFuIEhvZm1hbm4tSGlja3MgKGV2aWwpICovXG5cbnZhciBmdWxmaWxscyA9XG4gIGZ1bmN0aW9uIChhbGdzKSB7IHJldHVybiBmdW5jdGlvbiAodGVzdCkgeyByZXR1cm4gYWxncy5pbmRleE9mKHRlc3QpICE9PSAtMTsgfTsgfVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bGZpbGxzXG4iLCIvKiogQGxpY2Vuc2UgSVNDIExpY2Vuc2UgKGMpIGNvcHlyaWdodCAyMDE3IG9yaWdpbmFsIGFuZCBjdXJyZW50IGF1dGhvcnMgKi9cbi8qKiBAYXV0aG9yIElhbiBIb2ZtYW5uLUhpY2tzIChldmlsKSAqL1xuXG52YXIgaXNTYW1lVHlwZSA9IHJlcXVpcmUoJy4vaXNTYW1lVHlwZScpXG52YXIgaXNTZW1pZ3JvdXAgPSByZXF1aXJlKCcuL2lzU2VtaWdyb3VwJylcblxuZnVuY3Rpb24gaW5uZXJDb25jYXQobWV0aG9kLCBtKSB7XG4gIHJldHVybiBmdW5jdGlvbihsZWZ0KSB7XG4gICAgaWYoIWlzU2VtaWdyb3VwKGxlZnQpKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKChtZXRob2QgKyBcIjogQm90aCBjb250YWluZXJzIG11c3QgY29udGFpbiBTZW1pZ3JvdXBzIG9mIHRoZSBzYW1lIHR5cGVcIikpXG4gICAgfVxuXG4gICAgcmV0dXJuIG0ubWFwKGZ1bmN0aW9uIChyaWdodCkge1xuICAgICAgaWYoIWlzU2FtZVR5cGUobGVmdCwgcmlnaHQpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoKG1ldGhvZCArIFwiOiBCb3RoIGNvbnRhaW5lcnMgbXVzdCBjb250YWluIFNlbWlncm91cHMgb2YgdGhlIHNhbWUgdHlwZVwiKSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGxlZnQuY29uY2F0KHJpZ2h0KVxuICAgIH0pXG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpbm5lckNvbmNhdFxuIiwiLyoqIEBsaWNlbnNlIElTQyBMaWNlbnNlIChjKSBjb3B5cmlnaHQgMjAxNiBvcmlnaW5hbCBhbmQgY3VycmVudCBhdXRob3JzICovXG4vKiogQGF1dGhvciBJYW4gSG9mbWFubi1IaWNrcyAoZXZpbCkgKi9cblxudmFyIGlzQXJyYXkgPSByZXF1aXJlKCcuL2lzQXJyYXknKVxudmFyIGlzRnVuY3Rpb24gPSByZXF1aXJlKCcuL2lzRnVuY3Rpb24nKVxudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9pc09iamVjdCcpXG52YXIgaXNTdHJpbmcgPSByZXF1aXJlKCcuL2lzU3RyaW5nJylcbnZhciBpc1N5bWJvbCA9IHJlcXVpcmUoJy4vaXNTeW1ib2wnKVxudmFyIGlzRGF0ZSA9IHJlcXVpcmUoJy4vaXNEYXRlJylcblxuZnVuY3Rpb24gYXJyYXlJbnNwZWN0KHhzKSB7XG4gIHJldHVybiB4cy5sZW5ndGhcbiAgICA/IHhzLm1hcChpbnNwZWN0KS5yZWR1Y2UoZnVuY3Rpb24gKGEsIHgpIHsgcmV0dXJuIGEgKyAnLCcgKyB4OyB9KVxuICAgIDogeHNcbn1cblxuLy8gaW5zcGVjdCA6IGEgLT4gU3RyaW5nXG5mdW5jdGlvbiBpbnNwZWN0KHgpIHtcbiAgaWYoeCAmJiBpc0Z1bmN0aW9uKHguaW5zcGVjdCkpIHtcbiAgICByZXR1cm4gKFwiIFwiICsgKHguaW5zcGVjdCgpKSlcbiAgfVxuXG4gIGlmKGlzRnVuY3Rpb24oeCkpIHtcbiAgICByZXR1cm4gJyBGdW5jdGlvbidcbiAgfVxuXG4gIGlmKGlzQXJyYXkoeCkpIHtcbiAgICByZXR1cm4gKFwiIFtcIiArIChhcnJheUluc3BlY3QoeCkpICsgXCIgXVwiKVxuICB9XG5cbiAgaWYoaXNPYmplY3QoeCkpIHtcbiAgICByZXR1cm4gKFwiIHsgXCIgKyAoT2JqZWN0LmtleXMoeCkucmVkdWNlKGZ1bmN0aW9uIChhY2MsIGtleSkge1xuICAgICAgcmV0dXJuIGFjYy5jb25jYXQoWyAoa2V5ICsgXCI6XCIgKyAoaW5zcGVjdCh4W2tleV0pKSkgXSlcbiAgICB9LCBbXSkuam9pbignLCAnKSkgKyBcIiB9XCIpXG4gIH1cblxuICBpZihpc1N0cmluZyh4KSkge1xuICAgIHJldHVybiAoXCIgXFxcIlwiICsgeCArIFwiXFxcIlwiKVxuICB9XG5cbiAgaWYoaXNTeW1ib2woeCkgfHwgaXNEYXRlKHgpKSB7XG4gICAgcmV0dXJuIChcIiBcIiArICh4LnRvU3RyaW5nKCkpKVxuICB9XG5cbiAgcmV0dXJuIChcIiBcIiArIHgpXG59XG5cbm1vZHVsZS5leHBvcnRzID0gaW5zcGVjdFxuIiwiLyoqIEBsaWNlbnNlIElTQyBMaWNlbnNlIChjKSBjb3B5cmlnaHQgMjAxOCBvcmlnaW5hbCBhbmQgY3VycmVudCBhdXRob3JzICovXG4vKiogQGF1dGhvciBSb2JlcnQgUGVhcmNlIChycGVhcmNlKSAqL1xuXG4vLyBpc1N5bWJvbCA6IGEgLT4gQm9vbGVhblxuZnVuY3Rpb24gaXNTeW1ib2woeCkge1xuICByZXR1cm4gdHlwZW9mIHggPT09ICdzeW1ib2wnXG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNTeW1ib2xcbiIsIi8qKiBAbGljZW5zZSBJU0MgTGljZW5zZSAoYykgY29weXJpZ2h0IDIwMTggb3JpZ2luYWwgYW5kIGN1cnJlbnQgYXV0aG9ycyAqL1xuLyoqIEBhdXRob3IgRGFsZSBGcmFuY2lzIChkYWxlZnJhbmNpczg4KSAqL1xuXG4vLyBpc0RhdGUgOiBhIC0+IEJvb2xlYW5cbmZ1bmN0aW9uIGlzRGF0ZSh4KSB7XG4gIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmFwcGx5KHgpID09PSAnW29iamVjdCBEYXRlXSdcbiAgICAmJiAhaXNOYU4oeC52YWx1ZU9mKCkpXG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNEYXRlXG5cbiIsIi8qKiBAbGljZW5zZSBJU0MgTGljZW5zZSAoYykgY29weXJpZ2h0IDIwMTggb3JpZ2luYWwgYW5kIGN1cnJlbnQgYXV0aG9ycyAqL1xuLyoqIEBhdXRob3IgSWFuIEhvZm1hbm4tSGlja3MgKGV2aWwpICovXG5cbnZhciBpc0FwcGxpY2F0aXZlID0gcmVxdWlyZSgnLi9pc0FwcGxpY2F0aXZlJylcbnZhciBpc1R5cGVSZXBPZiA9IHJlcXVpcmUoJy4vaXNUeXBlUmVwT2YnKVxuXG52YXIgYXBPckZ1bmMgPSBmdW5jdGlvbiAoYWYpIHsgcmV0dXJuIGZ1bmN0aW9uICh4KSB7IHJldHVybiBpc0FwcGxpY2F0aXZlKGFmKVxuICAgID8gYWYub2YoeClcbiAgICA6IGlzVHlwZVJlcE9mKEFycmF5LCBhZikgPyBbIHggXSA6IGFmKHgpOyB9OyB9XG5cbm1vZHVsZS5leHBvcnRzID0gYXBPckZ1bmNcbiIsIi8qKiBAbGljZW5zZSBJU0MgTGljZW5zZSAoYykgY29weXJpZ2h0IDIwMTYgb3JpZ2luYWwgYW5kIGN1cnJlbnQgYXV0aG9ycyAqL1xuLyoqIEBhdXRob3IgSWFuIEhvZm1hbm4tSGlja3MgKGV2aWwpICovXG5cbnZhciBoYXNBbGcgPSByZXF1aXJlKCcuL2hhc0FsZycpXG5cbi8vIGlzRnVuY3RvciA6IGEgLT4gQm9vbGVhblxuZnVuY3Rpb24gaXNGdW5jdG9yKG0pIHtcbiAgcmV0dXJuICEhbSAmJiBoYXNBbGcoJ21hcCcsIG0pXG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNGdW5jdG9yXG4iLCIvKiogQGxpY2Vuc2UgSVNDIExpY2Vuc2UgKGMpIGNvcHlyaWdodCAyMDE4IG9yaWdpbmFsIGFuZCBjdXJyZW50IGF1dGhvcnMgKi9cbi8qKiBAYXV0aG9yIElhbiBIb2ZtYW5uLUhpY2tzIChldmlsKSAqL1xuXG52YXIgaXNGdW5jdGlvbiA9IHJlcXVpcmUoJy4vaXNGdW5jdGlvbicpXG5cbnZhciBpc1R5cGVSZXBPZiA9IGZ1bmN0aW9uICh4LCB5KSB7IHJldHVybiBpc0Z1bmN0aW9uKHkpXG4gICAgJiYgKHggPT09IHkgfHwgeC5uYW1lID09PSB5Lm5hbWUpOyB9XG5cbm1vZHVsZS5leHBvcnRzID0gaXNUeXBlUmVwT2ZcbiIsIi8qKiBAbGljZW5zZSBJU0MgTGljZW5zZSAoYykgY29weXJpZ2h0IDIwMTYgb3JpZ2luYWwgYW5kIGN1cnJlbnQgYXV0aG9ycyAqL1xuLyoqIEBhdXRob3IgSWFuIEhvZm1hbm4tSGlja3MgKGV2aWwpICovXG5cbi8vIENvbXBvc2l0aW9uIChCbHVlYmlyZClcbi8vIGNvbXBvc2UgOiAoYiAtPiBjKSAtPiAoYSAtPiBiKSAtPiBhIC0+IGNcbmZ1bmN0aW9uIGNvbXBvc2UoZiwgZykge1xuICByZXR1cm4gZnVuY3Rpb24oeCkge1xuICAgIHJldHVybiBmKGcoeCkpXG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjb21wb3NlXG4iLCIvKiogQGxpY2Vuc2UgSVNDIExpY2Vuc2UgKGMpIGNvcHlyaWdodCAyMDE3IG9yaWdpbmFsIGFuZCBjdXJyZW50IGF1dGhvcnMgKi9cbi8qKiBAYXV0aG9yIElhbiBIb2ZtYW5uLUhpY2tzIChldmlsKSAqL1xuXG52YXIgaXNGdW5jdGlvbiA9IHJlcXVpcmUoJy4vaXNGdW5jdGlvbicpXG5cbmZ1bmN0aW9uIHByZWRPckZ1bmMocHJlZCwgeCkge1xuICBpZihpc0Z1bmN0aW9uKHByZWQpKSB7XG4gICAgcmV0dXJuIHByZWQoeClcbiAgfVxuICByZXR1cm4gcHJlZC5ydW5XaXRoKHgpXG59XG5cbm1vZHVsZS5leHBvcnRzID0gcHJlZE9yRnVuY1xuIiwiLyoqIEBsaWNlbnNlIElTQyBMaWNlbnNlIChjKSBjb3B5cmlnaHQgMjAxOCBvcmlnaW5hbCBhbmQgY3VycmVudCBhdXRob3JzICovXG4vKiogQGF1dGhvciBEYWxlIEZyYW5jaXMgKGRhbGVmcmFuY2lzODgpICovXG5cbnZhciBQcmVkID0gcmVxdWlyZSgnLi90eXBlcycpLnByb3h5KCdQcmVkJylcblxudmFyIGlzRnVuY3Rpb24gPSByZXF1aXJlKCcuL2lzRnVuY3Rpb24nKVxudmFyIGlzU2FtZVR5cGUgPSByZXF1aXJlKCcuL2lzU2FtZVR5cGUnKVxuXG4vLyBpc1ByZWRPckZ1bmMgOjogKChhIC0+IGIpIHwgcHJlZCkgLT4gYm9vbFxudmFyIGlzUHJlZE9yRnVuYyA9IGZ1bmN0aW9uIChwcmVkT3JGdW5jKSB7IHJldHVybiBpc0Z1bmN0aW9uKHByZWRPckZ1bmMpIHx8IGlzU2FtZVR5cGUoUHJlZCwgcHJlZE9yRnVuYyk7IH1cblxubW9kdWxlLmV4cG9ydHMgPSBpc1ByZWRPckZ1bmNcbiIsImZ1bmN0aW9uIF9hcnJheVdpdGhIb2xlcyhhcnIpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoYXJyKSkgcmV0dXJuIGFycjtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfYXJyYXlXaXRoSG9sZXM7XG5tb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7IiwiZnVuY3Rpb24gX2l0ZXJhYmxlVG9BcnJheUxpbWl0KGFyciwgaSkge1xuICB2YXIgX2kgPSBhcnIgJiYgKHR5cGVvZiBTeW1ib2wgIT09IFwidW5kZWZpbmVkXCIgJiYgYXJyW1N5bWJvbC5pdGVyYXRvcl0gfHwgYXJyW1wiQEBpdGVyYXRvclwiXSk7XG5cbiAgaWYgKF9pID09IG51bGwpIHJldHVybjtcbiAgdmFyIF9hcnIgPSBbXTtcbiAgdmFyIF9uID0gdHJ1ZTtcbiAgdmFyIF9kID0gZmFsc2U7XG5cbiAgdmFyIF9zLCBfZTtcblxuICB0cnkge1xuICAgIGZvciAoX2kgPSBfaS5jYWxsKGFycik7ICEoX24gPSAoX3MgPSBfaS5uZXh0KCkpLmRvbmUpOyBfbiA9IHRydWUpIHtcbiAgICAgIF9hcnIucHVzaChfcy52YWx1ZSk7XG5cbiAgICAgIGlmIChpICYmIF9hcnIubGVuZ3RoID09PSBpKSBicmVhaztcbiAgICB9XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIF9kID0gdHJ1ZTtcbiAgICBfZSA9IGVycjtcbiAgfSBmaW5hbGx5IHtcbiAgICB0cnkge1xuICAgICAgaWYgKCFfbiAmJiBfaVtcInJldHVyblwiXSAhPSBudWxsKSBfaVtcInJldHVyblwiXSgpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpZiAoX2QpIHRocm93IF9lO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBfYXJyO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9pdGVyYWJsZVRvQXJyYXlMaW1pdDtcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiLCJmdW5jdGlvbiBfbm9uSXRlcmFibGVSZXN0KCkge1xuICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9ub25JdGVyYWJsZVJlc3Q7XG5tb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihvcmlnaW5hbE1vZHVsZSkge1xuXHRpZiAoIW9yaWdpbmFsTW9kdWxlLndlYnBhY2tQb2x5ZmlsbCkge1xuXHRcdHZhciBtb2R1bGUgPSBPYmplY3QuY3JlYXRlKG9yaWdpbmFsTW9kdWxlKTtcblx0XHQvLyBtb2R1bGUucGFyZW50ID0gdW5kZWZpbmVkIGJ5IGRlZmF1bHRcblx0XHRpZiAoIW1vZHVsZS5jaGlsZHJlbikgbW9kdWxlLmNoaWxkcmVuID0gW107XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KG1vZHVsZSwgXCJsb2FkZWRcIiwge1xuXHRcdFx0ZW51bWVyYWJsZTogdHJ1ZSxcblx0XHRcdGdldDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdHJldHVybiBtb2R1bGUubDtcblx0XHRcdH1cblx0XHR9KTtcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkobW9kdWxlLCBcImlkXCIsIHtcblx0XHRcdGVudW1lcmFibGU6IHRydWUsXG5cdFx0XHRnZXQ6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRyZXR1cm4gbW9kdWxlLmk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KG1vZHVsZSwgXCJleHBvcnRzXCIsIHtcblx0XHRcdGVudW1lcmFibGU6IHRydWVcblx0XHR9KTtcblx0XHRtb2R1bGUud2VicGFja1BvbHlmaWxsID0gMTtcblx0fVxuXHRyZXR1cm4gbW9kdWxlO1xufTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIG5vcm1hbFZpZXdCb3ggPSAnMCAwIDEwMjQgMTAyNCc7XG52YXIgbmV3Vmlld0JveCA9ICc2NCA2NCA4OTYgODk2JztcbnZhciBmaWxsID0gJ2ZpbGwnO1xudmFyIG91dGxpbmUgPSAnb3V0bGluZSc7XG52YXIgdHdvdG9uZSA9ICd0d290b25lJztcbmZ1bmN0aW9uIGdldE5vZGUodmlld0JveCkge1xuICAgIHZhciBwYXRocyA9IFtdO1xuICAgIGZvciAodmFyIF9pID0gMTsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7XG4gICAgICAgIHBhdGhzW19pIC0gMV0gPSBhcmd1bWVudHNbX2ldO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICB0YWc6ICdzdmcnLFxuICAgICAgICBhdHRyczogeyB2aWV3Qm94OiB2aWV3Qm94LCBmb2N1c2FibGU6IGZhbHNlIH0sXG4gICAgICAgIGNoaWxkcmVuOiBwYXRocy5tYXAoZnVuY3Rpb24gKHBhdGgpIHtcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHBhdGgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgdGFnOiAncGF0aCcsXG4gICAgICAgICAgICAgICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsOiBwYXRoWzBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgZDogcGF0aFsxXVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgdGFnOiAncGF0aCcsXG4gICAgICAgICAgICAgICAgYXR0cnM6IHtcbiAgICAgICAgICAgICAgICAgICAgZDogcGF0aFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pXG4gICAgfTtcbn1cbmZ1bmN0aW9uIGdldEljb24obmFtZSwgdGhlbWUsIGljb24pIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBuYW1lOiBuYW1lLFxuICAgICAgICB0aGVtZTogdGhlbWUsXG4gICAgICAgIGljb246IGljb25cbiAgICB9O1xufVxuZXhwb3J0cy5BY2NvdW50Qm9va0ZpbGwgPSBnZXRJY29uKCdhY2NvdW50LWJvb2snLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDE4NEg3MTJ2LTY0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2NEgzODR2LTY0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2NEgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjE2YzAtMTcuNy0xNC4zLTMyLTMyLTMyek02NDguMyA0MjYuOGwtODcuNyAxNjEuMWg0NS43YzUuNSAwIDEwIDQuNSAxMCAxMHYyMS4zYzAgNS41LTQuNSAxMC0xMCAxMGgtNjMuNHYyOS43aDYzLjRjNS41IDAgMTAgNC41IDEwIDEwdjIxLjNjMCA1LjUtNC41IDEwLTEwIDEwaC02My40Vjc1MmMwIDUuNS00LjUgMTAtMTAgMTBoLTQxLjNjLTUuNSAwLTEwLTQuNS0xMC0xMHYtNTEuOGgtNjMuMWMtNS41IDAtMTAtNC41LTEwLTEwdi0yMS4zYzAtNS41IDQuNS0xMCAxMC0xMGg2My4xdi0yOS43aC02My4xYy01LjUgMC0xMC00LjUtMTAtMTB2LTIxLjNjMC01LjUgNC41LTEwIDEwLTEwaDQ1LjJsLTg4LTE2MS4xYy0yLjYtNC44LS45LTEwLjkgNC0xMy42IDEuNS0uOCAzLjEtMS4yIDQuOC0xLjJoNDZjMy44IDAgNy4yIDIuMSA4LjkgNS41bDcyLjkgMTQ0LjMgNzMuMi0xNDQuM2ExMCAxMCAwIDAgMSA4LjktNS41aDQ1YzUuNSAwIDEwIDQuNSAxMCAxMCAuMSAxLjctLjMgMy4zLTEuMSA0Ljh6JykpO1xuZXhwb3J0cy5BbGVydEZpbGwgPSBnZXRJY29uKCdhbGVydCcsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgMjQ0YzE3Ni4xOCAwIDMxOSAxNDIuODIgMzE5IDMxOXYyMzNhMzIgMzIgMCAwIDEtMzIgMzJIMjI1YTMyIDMyIDAgMCAxLTMyLTMyVjU2M2MwLTE3Ni4xOCAxNDIuODItMzE5IDMxOS0zMTl6TTQ4NCA2OGg1NmE4IDggMCAwIDEgOCA4djk2YTggOCAwIDAgMS04IDhoLTU2YTggOCAwIDAgMS04LThWNzZhOCA4IDAgMCAxIDgtOHpNMTc3LjI1IDE5MS42NmE4IDggMCAwIDEgMTEuMzIgMGw2Ny44OCA2Ny44OGE4IDggMCAwIDEgMCAxMS4zMWwtMzkuNiAzOS42YTggOCAwIDAgMS0xMS4zMSAwbC02Ny44OC02Ny44OGE4IDggMCAwIDEgMC0xMS4zMWwzOS42LTM5LjZ6bTY2OS42IDBsMzkuNiAzOS42YTggOCAwIDAgMSAwIDExLjNsLTY3Ljg4IDY3LjlhOCA4IDAgMCAxLTExLjMyIDBsLTM5LjYtMzkuNmE4IDggMCAwIDEgMC0xMS4zMmw2Ny44OS02Ny44OGE4IDggMCAwIDEgMTEuMzEgMHpNMTkyIDg5Mmg2NDBhMzIgMzIgMCAwIDEgMzIgMzJ2MjRhOCA4IDAgMCAxLTggOEgxNjhhOCA4IDAgMCAxLTgtOHYtMjRhMzIgMzIgMCAwIDEgMzItMzJ6bTE0OC0zMTd2MjUzaDY0VjU3NWgtNjR6JykpO1xuZXhwb3J0cy5BbGlwYXlTcXVhcmVGaWxsID0gZ2V0SWNvbignYWxpcGF5LXNxdWFyZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ00zMDguNiA1NDUuN2MtMTkuOCAyLTU3LjEgMTAuNy03Ny40IDI4LjYtNjEgNTMtMjQuNSAxNTAgOTkgMTUwIDcxLjggMCAxNDMuNS00NS43IDE5OS44LTExOS04MC4yLTM4LjktMTQ4LjEtNjYuOC0yMjEuNC01OS42ek04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bTI5LjQgNjYzLjJTNzAzIDY4OS40IDU5OC43IDYzOS41QzUyOC44IDcyNS4yIDQzOC42IDc3Ny4zIDM0NSA3NzcuM2MtMTU4LjQgMC0yMTIuMS0xMzguMS0xMzcuMi0yMjkgMTYuMy0xOS44IDQ0LjItMzguNyA4Ny4zLTQ5LjQgNjcuNS0xNi41IDE3NSAxMC4zIDI3NS43IDQzLjQgMTguMS0zMy4zIDMzLjQtNjkuOSA0NC43LTEwOC45SDMwNS4xVjQwMmgxNjB2LTU2LjJIMjcxLjN2LTMxLjNoMTkzLjh2LTgwLjFzMC0xMy41IDEzLjctMTMuNUg1NTd2OTMuNmgxOTEuN3YzMS4zSDU1Ny4xVjQwMmgxNTYuNGMtMTUgNjEuMS0zNy43IDExNy40LTY2LjIgMTY2LjggNDcuNSAxNy4xIDkwLjEgMzMuMyAxMjEuOCA0My45IDExNC4zIDM4LjIgMTQwLjIgNDAuMiAxNDAuMiA0MC4ydjEyMi4zeicpKTtcbmV4cG9ydHMuQWxpd2FuZ3dhbmdGaWxsID0gZ2V0SWNvbignYWxpd2FuZ3dhbmcnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODY4LjIgMzc3LjRjLTE4LjktNDUuMS00Ni4zLTg1LjYtODEuMi0xMjAuNmEzNzcuMjYgMzc3LjI2IDAgMCAwLTEyMC41LTgxLjJBMzc1LjY1IDM3NS42NSAwIDAgMCA1MTkgMTQ1LjhjLTQxLjkgMC04Mi45IDYuNy0xMjEuOSAyMEMzMDYgMTIzLjMgMjAwLjggMTIwIDE3MC42IDEyMGMtMi4yIDAtNy40IDAtOS40LjItMTEuOS40LTIyLjggNi41LTI5LjIgMTYuNC02LjUgOS45LTcuNyAyMi40LTMuNCAzMy41bDY0LjMgMTYxLjZhMzc4LjU5IDM3OC41OSAwIDAgMC01Mi44IDE5My4yYzAgNTEuNCAxMCAxMDEgMjkuOCAxNDcuNiAxOC45IDQ1IDQ2LjIgODUuNiA4MS4yIDEyMC41IDM0LjcgMzQuOCA3NS40IDYyLjEgMTIwLjUgODEuMkM0MTguMyA4OTQgNDY3LjkgOTA0IDUxOSA5MDRjNTEuMyAwIDEwMC45LTEwIDE0Ny43LTI5LjggNDQuOS0xOC45IDg1LjUtNDYuMyAxMjAuNC04MS4yIDM0LjctMzQuOCA2Mi4xLTc1LjQgODEuMi0xMjAuNmEzNzYuNSAzNzYuNSAwIDAgMCAyOS44LTE0Ny42Yy0uMi01MS4yLTEwLjEtMTAwLjgtMjkuOS0xNDcuNHptLTMyNS4yIDc5YzAgMjAuNC0xNi42IDM3LjEtMzcuMSAzNy4xLTIwLjQgMC0zNy4xLTE2LjctMzcuMS0zNy4xdi01NS4xYzAtMjAuNCAxNi42LTM3LjEgMzcuMS0zNy4xIDIwLjQgMCAzNy4xIDE2LjYgMzcuMSAzNy4xdjU1LjF6bTE3NS4yIDBjMCAyMC40LTE2LjYgMzcuMS0zNy4xIDM3LjFTNjQ0IDQ3Ni44IDY0NCA0NTYuNHYtNTUuMWMwLTIwLjQgMTYuNy0zNy4xIDM3LjEtMzcuMSAyMC40IDAgMzcuMSAxNi42IDM3LjEgMzcuMXY1NS4xeicpKTtcbmV4cG9ydHMuQWxpcGF5Q2lyY2xlRmlsbCA9IGdldEljb24oJ2FsaXBheS1jaXJjbGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMzA4LjYgNTQ1LjdjLTE5LjggMi01Ny4xIDEwLjctNzcuNCAyOC42LTYxIDUzLTI0LjUgMTUwIDk5IDE1MCA3MS44IDAgMTQzLjUtNDUuNyAxOTkuOC0xMTktODAuMi0zOC45LTE0OC4xLTY2LjgtMjIxLjQtNTkuNnptNDYwLjUgNjdjMTAwLjEgMzMuNCAxNTQuNyA0MyAxNjYuNyA0NC44QTQ0NS45IDQ0NS45IDAgMCAwIDk2MCA1MTJjMC0yNDcuNC0yMDAuNi00NDgtNDQ4LTQ0OFM2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDhjMTU1LjkgMCAyOTMuMi03OS43IDM3My41LTIwMC41LTc1LjYtMjkuOC0yMTMuNi04NS0yODYuOC0xMjAuMS02OS45IDg1LjctMTYwLjEgMTM3LjgtMjUzLjcgMTM3LjgtMTU4LjQgMC0yMTIuMS0xMzguMS0xMzcuMi0yMjkgMTYuMy0xOS44IDQ0LjItMzguNyA4Ny4zLTQ5LjQgNjcuNS0xNi41IDE3NSAxMC4zIDI3NS43IDQzLjQgMTguMS0zMy4zIDMzLjQtNjkuOSA0NC43LTEwOC45SDMwNS4xVjQwMmgxNjB2LTU2LjJIMjcxLjN2LTMxLjNoMTkzLjh2LTgwLjFzMC0xMy41IDEzLjctMTMuNUg1NTd2OTMuNmgxOTEuN3YzMS4zSDU1Ny4xVjQwMmgxNTYuNGMtMTUgNjEuMS0zNy43IDExNy40LTY2LjIgMTY2LjggNDcuNSAxNy4xIDkwLjEgMzMuMyAxMjEuOCA0My45eicpKTtcbmV4cG9ydHMuQW1hem9uQ2lyY2xlRmlsbCA9IGdldEljb24oJ2FtYXpvbi1jaXJjbGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNDg1IDQ2Ny41Yy0xMS42IDQuOS0yMC45IDEyLjItMjcuOCAyMi02LjkgOS44LTEwLjQgMjEuNi0xMC40IDM1LjUgMCAxNy44IDcuNSAzMS41IDIyLjQgNDEuMiAxNC4xIDkuMSAyOC45IDExLjQgNDQuNCA2LjggMTcuOS01LjIgMzAtMTcuOSAzNi40LTM4LjEgMy05LjMgNC41LTE5LjcgNC41LTMxLjN2LTUwLjJjLTEyLjYuNC0yNC40IDEuNi0zNS41IDMuNy0xMS4xIDIuMS0yMi40IDUuNi0zNCAxMC40ek01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMzUuOCAyNjIuN2MtNy4yLTEwLjktMjAuMS0xNi40LTM4LjctMTYuNC0xLjMgMC0zIC4xLTUuMy4zLTIuMi4yLTYuNiAxLjUtMTIuOSAzLjdhNzkuNCA3OS40IDAgMCAwLTE3LjkgOS4xYy01LjUgMy44LTExLjUgMTAtMTggMTguNC02LjQgOC41LTExLjUgMTguNC0xNS4zIDI5LjhsLTk0LTguNGMwLTEyLjQgMi40LTI0LjcgNy0zNi45IDQuNy0xMi4yIDExLjgtMjMuOSAyMS40LTM1IDkuNi0xMS4yIDIxLjEtMjEgMzQuNS0yOS40IDEzLjQtOC41IDI5LjYtMTUuMiA0OC40LTIwLjMgMTguOS01LjEgMzkuMS03LjYgNjAuOS03LjYgMjEuMyAwIDQwLjYgMi42IDU3LjggNy43IDE3LjIgNS4yIDMxLjEgMTEuNSA0MS40IDE5LjFhMTE3IDExNyAwIDAgMSAyNS45IDI1LjdjNi45IDkuNiAxMS43IDE4LjUgMTQuNCAyNi43IDIuNyA4LjIgNCAxNS43IDQgMjIuOHYxODIuNWMwIDYuNCAxLjQgMTMgNC4zIDE5LjggMi45IDYuOCA2LjMgMTIuOCAxMC4yIDE4IDMuOSA1LjIgNy45IDkuOSAxMiAxNC4zIDQuMSA0LjMgNy42IDcuNyAxMC42IDkuOWw0LjEgMy40LTcyLjUgNjkuNGMtOC41LTcuNy0xNi45LTE1LjQtMjUuMi0yMy40LTguMy04LTE0LjUtMTQtMTguNS0xOC4xbC02LjEtNi4yYy0yLjQtMi4zLTUtNS43LTgtMTAuMi04LjEgMTIuMi0xOC41IDIyLjgtMzEuMSAzMS44LTEyLjcgOS0yNi4zIDE1LjYtNDAuNyAxOS43LTE0LjUgNC4xLTI5LjQgNi41LTQ0LjcgNy4xLTE1LjMuNi0zMC0xLjUtNDMuOS02LjUtMTMuOS01LTI2LjUtMTEuNy0zNy42LTIwLjMtMTEuMS04LjYtMTkuOS0yMC4yLTI2LjUtMzUtNi42LTE0LjgtOS45LTMxLjUtOS45LTUwLjQgMC0xNy40IDMtMzMuMyA4LjktNDcuNyA2LTE0LjUgMTMuNi0yNi41IDIzLTM2LjEgOS40LTkuNiAyMC43LTE4LjIgMzQtMjUuN3MyNi40LTEzLjQgMzkuMi0xNy43YzEyLjgtNC4yIDI2LjYtNy44IDQxLjUtMTAuNyAxNC45LTIuOSAyNy42LTQuOCAzOC4yLTUuNyAxMC42LS45IDIxLjItMS42IDMxLjgtMnYtMzkuNGMwLTEzLjUtMi4zLTIzLjUtNi43LTMwLjF6bTE4MC41IDM3OS42Yy0yLjggMy4zLTcuNSA3LjgtMTQuMSAxMy41cy0xNi44IDEyLjctMzAuNSAyMS4xYy0xMy43IDguNC0yOC44IDE2LTQ1IDIyLjktMTYuMyA2LjktMzYuMyAxMi45LTYwLjEgMTgtMjMuNyA1LjEtNDguMiA3LjYtNzMuMyA3LjYtMjUuNCAwLTUwLjctMy4yLTc2LjEtOS42LTI1LjQtNi40LTQ3LjYtMTQuMy02Ni44LTIzLjctMTkuMS05LjQtMzcuNi0yMC4yLTU1LjEtMzIuMi0xNy42LTEyLjEtMzEuNy0yMi45LTQyLjQtMzIuNS0xMC42LTkuNi0xOS42LTE4LjctMjYuOC0yNy4xLTEuNy0xLjktMi44LTMuNi0zLjItNS4xLS40LTEuNS0uMy0yLjguMy0zLjcuNi0uOSAxLjUtMS42IDIuNi0yLjJhNy40MiA3LjQyIDAgMCAxIDcuNC44YzQwLjkgMjQuMiA3Mi45IDQxLjMgOTUuOSA1MS40IDgyLjkgMzYuNCAxNjggNDUuNyAyNTUuMyAyNy45IDQwLjUtOC4zIDgyLjEtMjIuMiAxMjQuOS00MS44IDMuMi0xLjIgNi0xLjUgOC4zLS45IDIuMy42IDMuNSAyLjQgMy41IDUuNCAwIDIuOC0xLjYgNi4zLTQuOCAxMC4yem01OS45LTI5Yy0xLjggMTEuMS00LjkgMjEuNi05LjEgMzEuOC03LjIgMTcuMS0xNi4zIDMwLTI3LjEgMzguNC0zLjYgMi45LTYuNCAzLjgtOC4zIDIuOC0xLjktMS0xLjktMy41IDAtNy40IDQuNS05LjMgOS4yLTIxLjggMTQuMi0zNy43IDUtMTUuOCA1LjctMjYgMi4xLTMwLjUtMS4xLTEuNS0yLjctMi42LTUtMy42LTIuMi0uOS01LjEtMS41LTguNi0xLjlzLTYuNy0uNi05LjQtLjhjLTIuOC0uMi02LjUtLjItMTEuMiAwLTQuNy4yLTggLjQtMTAuMS42YTg3NC40IDg3NC40IDAgMCAxLTE3LjEgMS41Yy0xLjMuMi0yLjcuNC00LjEuNS0xLjUuMS0yLjcuMi0zLjUuM2wtMi43LjNjLTEgLjEtMS43LjItMi4yLjJoLTMuMmwtMS0uMi0uNi0uNS0uNS0uOWMtMS4zLTMuMyAzLjctNy40IDE1LTEyLjRzMjIuMy04LjEgMzIuOS05LjNjOS44LTEuNSAyMS4zLTEuNSAzNC41LS4zczIxLjMgMy43IDI0LjMgNy40YzIuMyAzLjUgMi41IDEwLjcuNyAyMS43eicpKTtcbmV4cG9ydHMuQW5kcm9pZEZpbGwgPSBnZXRJY29uKCdhbmRyb2lkJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTI3MC4xIDc0MS43YzAgMjMuNCAxOS4xIDQyLjUgNDIuNiA0Mi41aDQ4Ljd2MTIwLjRjMCAzMC41IDI0LjUgNTUuNCA1NC42IDU1LjQgMzAuMiAwIDU0LjYtMjQuOCA1NC42LTU1LjRWNzg0LjFoODV2MTIwLjRjMCAzMC41IDI0LjUgNTUuNCA1NC42IDU1LjQgMzAuMiAwIDU0LjYtMjQuOCA1NC42LTU1LjRWNzg0LjFoNDguN2MyMy41IDAgNDIuNi0xOS4xIDQyLjYtNDIuNVYzNDYuNGgtNDg2djM5NS4zem0zNTcuMS02MDAuMWw0NC45LTY1YzIuNi0zLjggMi04LjktMS41LTExLjQtMy41LTIuNC04LjUtMS4yLTExLjEgMi42bC00Ni42IDY3LjZjLTMwLjctMTIuMS02NC45LTE4LjgtMTAwLjgtMTguOC0zNS45IDAtNzAuMSA2LjctMTAwLjggMTguOGwtNDYuNi02Ny41Yy0yLjYtMy44LTcuNi01LjEtMTEuMS0yLjYtMy41IDIuNC00LjEgNy40LTEuNSAxMS40bDQ0LjkgNjVjLTcxLjQgMzMuMi0xMjEuNCA5Ni4xLTEyNy44IDE2OS42aDQ4NmMtNi42LTczLjYtNTYuNy0xMzYuNS0xMjgtMTY5Ljd6TTQwOS41IDI0NC4xYTI2LjkgMjYuOSAwIDEgMSAyNi45LTI2LjkgMjYuOTcgMjYuOTcgMCAwIDEtMjYuOSAyNi45em0yMDguNCAwYTI2LjkgMjYuOSAwIDEgMSAyNi45LTI2LjkgMjYuOTcgMjYuOTcgMCAwIDEtMjYuOSAyNi45em0yMjMuNCAxMDAuN2MtMzAuMiAwLTU0LjYgMjQuOC01NC42IDU1LjR2MjE2LjRjMCAzMC41IDI0LjUgNTUuNCA1NC42IDU1LjQgMzAuMiAwIDU0LjYtMjQuOCA1NC42LTU1LjRWNDAwLjFjLjEtMzAuNi0yNC4zLTU1LjMtNTQuNi01NS4zem0tNjU4LjYgMGMtMzAuMiAwLTU0LjYgMjQuOC01NC42IDU1LjR2MjE2LjRjMCAzMC41IDI0LjUgNTUuNCA1NC42IDU1LjQgMzAuMiAwIDU0LjYtMjQuOCA1NC42LTU1LjRWNDAwLjFjMC0zMC42LTI0LjUtNTUuMy01NC42LTU1LjN6JykpO1xuZXhwb3J0cy5BbWF6b25TcXVhcmVGaWxsID0gZ2V0SWNvbignYW1hem9uLXNxdWFyZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTU0Ny44IDMyNi43Yy03LjItMTAuOS0yMC4xLTE2LjQtMzguNy0xNi40LTEuMyAwLTMgLjEtNS4zLjMtMi4yLjItNi42IDEuNS0xMi45IDMuN2E3OS40IDc5LjQgMCAwIDAtMTcuOSA5LjFjLTUuNSAzLjgtMTEuNSAxMC0xOCAxOC40LTYuNCA4LjUtMTEuNSAxOC40LTE1LjMgMjkuOGwtOTQtOC40YzAtMTIuNCAyLjQtMjQuNyA3LTM2LjlzMTEuOC0yMy45IDIxLjQtMzVjOS42LTExLjIgMjEuMS0yMSAzNC41LTI5LjQgMTMuNC04LjUgMjkuNi0xNS4yIDQ4LjQtMjAuMyAxOC45LTUuMSAzOS4xLTcuNiA2MC45LTcuNiAyMS4zIDAgNDAuNiAyLjYgNTcuOCA3LjcgMTcuMiA1LjIgMzEuMSAxMS41IDQxLjQgMTkuMWExMTcgMTE3IDAgMCAxIDI1LjkgMjUuN2M2LjkgOS42IDExLjcgMTguNSAxNC40IDI2LjcgMi43IDguMiA0IDE1LjcgNCAyMi44djE4Mi41YzAgNi40IDEuNCAxMyA0LjMgMTkuOCAyLjkgNi44IDYuMyAxMi44IDEwLjIgMTggMy45IDUuMiA3LjkgOS45IDEyIDE0LjMgNC4xIDQuMyA3LjYgNy43IDEwLjYgOS45bDQuMSAzLjQtNzIuNSA2OS40Yy04LjUtNy43LTE2LjktMTUuNC0yNS4yLTIzLjQtOC4zLTgtMTQuNS0xNC0xOC41LTE4LjFsLTYuMS02LjJjLTIuNC0yLjMtNS01LjctOC0xMC4yLTguMSAxMi4yLTE4LjUgMjIuOC0zMS4xIDMxLjgtMTIuNyA5LTI2LjMgMTUuNi00MC43IDE5LjctMTQuNSA0LjEtMjkuNCA2LjUtNDQuNyA3LjEtMTUuMy42LTMwLTEuNS00My45LTYuNS0xMy45LTUtMjYuNS0xMS43LTM3LjYtMjAuMy0xMS4xLTguNi0xOS45LTIwLjItMjYuNS0zNS02LjYtMTQuOC05LjktMzEuNS05LjktNTAuNCAwLTE3LjQgMy0zMy4zIDguOS00Ny43IDYtMTQuNSAxMy42LTI2LjUgMjMtMzYuMSA5LjQtOS42IDIwLjctMTguMiAzNC0yNS43czI2LjQtMTMuNCAzOS4yLTE3LjdjMTIuOC00LjIgMjYuNi03LjggNDEuNS0xMC43IDE0LjktMi45IDI3LjYtNC44IDM4LjItNS43IDEwLjYtLjkgMjEuMi0xLjYgMzEuOC0ydi0zOS40YzAtMTMuNS0yLjMtMjMuNS02LjctMzAuMXptMTgwLjUgMzc5LjZjLTIuOCAzLjMtNy41IDcuOC0xNC4xIDEzLjVzLTE2LjggMTIuNy0zMC41IDIxLjFjLTEzLjcgOC40LTI4LjggMTYtNDUgMjIuOS0xNi4zIDYuOS0zNi4zIDEyLjktNjAuMSAxOC0yMy43IDUuMS00OC4yIDcuNi03My4zIDcuNi0yNS40IDAtNTAuNy0zLjItNzYuMS05LjYtMjUuNC02LjQtNDcuNi0xNC4zLTY2LjgtMjMuNy0xOS4xLTkuNC0zNy42LTIwLjItNTUuMS0zMi4yLTE3LjYtMTIuMS0zMS43LTIyLjktNDIuNC0zMi41LTEwLjYtOS42LTE5LjYtMTguNy0yNi44LTI3LjEtMS43LTEuOS0yLjgtMy42LTMuMi01LjEtLjQtMS41LS4zLTIuOC4zLTMuNy42LS45IDEuNS0xLjYgMi42LTIuMmE3LjQyIDcuNDIgMCAwIDEgNy40LjhjNDAuOSAyNC4yIDcyLjkgNDEuMyA5NS45IDUxLjQgODIuOSAzNi40IDE2OCA0NS43IDI1NS4zIDI3LjkgNDAuNS04LjMgODIuMS0yMi4yIDEyNC45LTQxLjggMy4yLTEuMiA2LTEuNSA4LjMtLjkgMi4zLjYgMy41IDIuNCAzLjUgNS40IDAgMi44LTEuNiA2LjMtNC44IDEwLjJ6bTU5LjktMjljLTEuOCAxMS4xLTQuOSAyMS42LTkuMSAzMS44LTcuMiAxNy4xLTE2LjMgMzAtMjcuMSAzOC40LTMuNiAyLjktNi40IDMuOC04LjMgMi44LTEuOS0xLTEuOS0zLjUgMC03LjQgNC41LTkuMyA5LjItMjEuOCAxNC4yLTM3LjcgNS0xNS44IDUuNy0yNiAyLjEtMzAuNS0xLjEtMS41LTIuNy0yLjYtNS0zLjYtMi4yLS45LTUuMS0xLjUtOC42LTEuOXMtNi43LS42LTkuNC0uOGMtMi44LS4yLTYuNS0uMi0xMS4yIDAtNC43LjItOCAuNC0xMC4xLjZhODc0LjQgODc0LjQgMCAwIDEtMTcuMSAxLjVjLTEuMy4yLTIuNy40LTQuMS41LTEuNS4xLTIuNy4yLTMuNS4zbC0yLjcuM2MtMSAuMS0xLjcuMi0yLjIuMmgtMy4ybC0xLS4yLS42LS41LS41LS45Yy0xLjMtMy4zIDMuNy03LjQgMTUtMTIuNHMyMi4zLTguMSAzMi45LTkuM2M5LjgtMS41IDIxLjMtMS41IDM0LjUtLjNzMjEuMyAzLjcgMjQuMyA3LjRjMi4zIDMuNSAyLjUgMTAuNy43IDIxLjd6TTQ4NSA0NjcuNWMtMTEuNiA0LjktMjAuOSAxMi4yLTI3LjggMjItNi45IDkuOC0xMC40IDIxLjYtMTAuNCAzNS41IDAgMTcuOCA3LjUgMzEuNSAyMi40IDQxLjIgMTQuMSA5LjEgMjguOSAxMS40IDQ0LjQgNi44IDE3LjktNS4yIDMwLTE3LjkgMzYuNC0zOC4xIDMtOS4zIDQuNS0xOS43IDQuNS0zMS4zdi01MC4yYy0xMi42LjQtMjQuNCAxLjYtMzUuNSAzLjctMTEuMSAyLjEtMjIuNCA1LjYtMzQgMTAuNHonKSk7XG5leHBvcnRzLkFwaUZpbGwgPSBnZXRJY29uKCdhcGknLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTE3LjcgMTQ4LjhsLTQyLjQtNDIuNGMtMS42LTEuNi0zLjYtMi4zLTUuNy0yLjNzLTQuMS44LTUuNyAyLjNsLTc2LjEgNzYuMWExOTkuMjcgMTk5LjI3IDAgMCAwLTExMi4xLTM0LjNjLTUxLjIgMC0xMDIuNCAxOS41LTE0MS41IDU4LjZMNDMyLjMgMzA4LjdhOC4wMyA4LjAzIDAgMCAwIDAgMTEuM0w3MDQgNTkxLjdjMS42IDEuNiAzLjYgMi4zIDUuNyAyLjMgMiAwIDQuMS0uOCA1LjctMi4zbDEwMS45LTEwMS45YzY4LjktNjkgNzctMTc1LjcgMjQuMy0yNTMuNWw3Ni4xLTc2LjFjMy4xLTMuMiAzLjEtOC4zIDAtMTEuNHpNNTc4LjkgNTQ2LjdhOC4wMyA4LjAzIDAgMCAwLTExLjMgMEw1MDEgNjEzLjMgNDEwLjcgNTIzbDY2LjctNjYuN2MzLjEtMy4xIDMuMS04LjIgMC0xMS4zTDQ0MSA0MDguNmE4LjAzIDguMDMgMCAwIDAtMTEuMyAwTDM2MyA0NzUuM2wtNDMtNDNhNy44NSA3Ljg1IDAgMCAwLTUuNy0yLjNjLTIgMC00LjEuOC01LjcgMi4zTDIwNi44IDUzNC4yYy02OC45IDY4LjktNzcgMTc1LjctMjQuMyAyNTMuNWwtNzYuMSA3Ni4xYTguMDMgOC4wMyAwIDAgMCAwIDExLjNsNDIuNCA0Mi40YzEuNiAxLjYgMy42IDIuMyA1LjcgMi4zczQuMS0uOCA1LjctMi4zbDc2LjEtNzYuMWMzMy43IDIyLjkgNzIuOSAzNC4zIDExMi4xIDM0LjMgNTEuMiAwIDEwMi40LTE5LjUgMTQxLjUtNTguNmwxMDEuOS0xMDEuOWMzLjEtMy4xIDMuMS04LjIgMC0xMS4zbC00My00MyA2Ni43LTY2LjdjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM2wtMzYuNi0zNi4yeicpKTtcbmV4cG9ydHMuQXBwc3RvcmVGaWxsID0gZ2V0SWNvbignYXBwc3RvcmUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODY0IDE0NEg1NjBjLTguOCAwLTE2IDcuMi0xNiAxNnYzMDRjMCA4LjggNy4yIDE2IDE2IDE2aDMwNGM4LjggMCAxNi03LjIgMTYtMTZWMTYwYzAtOC44LTcuMi0xNi0xNi0xNnptMCA0MDBINTYwYy04LjggMC0xNiA3LjItMTYgMTZ2MzA0YzAgOC44IDcuMiAxNiAxNiAxNmgzMDRjOC44IDAgMTYtNy4yIDE2LTE2VjU2MGMwLTguOC03LjItMTYtMTYtMTZ6TTQ2NCAxNDRIMTYwYy04LjggMC0xNiA3LjItMTYgMTZ2MzA0YzAgOC44IDcuMiAxNiAxNiAxNmgzMDRjOC44IDAgMTYtNy4yIDE2LTE2VjE2MGMwLTguOC03LjItMTYtMTYtMTZ6bTAgNDAwSDE2MGMtOC44IDAtMTYgNy4yLTE2IDE2djMwNGMwIDguOCA3LjIgMTYgMTYgMTZoMzA0YzguOCAwIDE2LTcuMiAxNi0xNlY1NjBjMC04LjgtNy4yLTE2LTE2LTE2eicpKTtcbmV4cG9ydHMuQXVkaW9GaWxsID0gZ2V0SWNvbignYXVkaW8nLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDYyNGM5My45IDAgMTcwLTc1LjIgMTcwLTE2OFYyMzJjMC05Mi44LTc2LjEtMTY4LTE3MC0xNjhzLTE3MCA3NS4yLTE3MCAxNjh2MjI0YzAgOTIuOCA3Ni4xIDE2OCAxNzAgMTY4em0zMzAtMTcwYzAtNC40LTMuNi04LTgtOGgtNjBjLTQuNCAwLTggMy42LTggOCAwIDE0MC4zLTExMy43IDI1NC0yNTQgMjU0UzI1OCA1OTQuMyAyNTggNDU0YzAtNC40LTMuNi04LTgtOGgtNjBjLTQuNCAwLTggMy42LTggOCAwIDE2OC43IDEyNi42IDMwNy45IDI5MCAzMjcuNlY4ODRIMzI2LjdjLTEzLjcgMC0yNC43IDE0LjMtMjQuNyAzMnYzNmMwIDQuNCAyLjggOCA2LjIgOGg0MDcuNmMzLjQgMCA2LjItMy42IDYuMi04di0zNmMwLTE3LjctMTEtMzItMjQuNy0zMkg1NDhWNzgyLjFjMTY1LjMtMTggMjk0LTE1OCAyOTQtMzI4LjF6JykpO1xuZXhwb3J0cy5BcHBsZUZpbGwgPSBnZXRJY29uKCdhcHBsZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ003NDcuNCA1MzUuN2MtLjQtNjguMiAzMC41LTExOS42IDkyLjktMTU3LjUtMzQuOS01MC04Ny43LTc3LjUtMTU3LjMtODIuOC02NS45LTUuMi0xMzggMzguNC0xNjQuNCAzOC40LTI3LjkgMC05MS43LTM2LjYtMTQxLjktMzYuNkMyNzMuMSAyOTguOCAxNjMgMzc5LjggMTYzIDU0NC42YzAgNDguNyA4LjkgOTkgMjYuNyAxNTAuOCAyMy44IDY4LjIgMTA5LjYgMjM1LjMgMTk5LjEgMjMyLjYgNDYuOC0xLjEgNzkuOS0zMy4yIDE0MC44LTMzLjIgNTkuMSAwIDg5LjcgMzMuMiAxNDEuOSAzMy4yIDkwLjMtMS4zIDE2Ny45LTE1My4yIDE5MC41LTIyMS42LTEyMS4xLTU3LjEtMTE0LjYtMTY3LjItMTE0LjYtMTcwLjd6bS0xMDUuMS0zMDVjNTAuNy02MC4yIDQ2LjEtMTE1IDQ0LjYtMTM0LjctNDQuOCAyLjYtOTYuNiAzMC41LTEyNi4xIDY0LjgtMzIuNSAzNi44LTUxLjYgODIuMy00Ny41IDEzMy42IDQ4LjQgMy43IDkyLjYtMjEuMiAxMjktNjMuN3onKSk7XG5leHBvcnRzLkJhY2t3YXJkRmlsbCA9IGdldEljb24oJ2JhY2t3YXJkJywgZmlsbCwgZ2V0Tm9kZShub3JtYWxWaWV3Qm94LCAnTTQ4NS42IDI0OS45TDE5OC4yIDQ5OGMtOC4zIDcuMS04LjMgMjAuOCAwIDI3LjlsMjg3LjQgMjQ4LjJjMTAuNyA5LjIgMjYuNC45IDI2LjQtMTRWMjYzLjhjMC0xNC44LTE1LjctMjMuMi0yNi40LTEzLjl6bTMyMCAwTDUxOC4yIDQ5OGExOC42IDE4LjYgMCAwIDAtNi4yIDE0YzAgNS4yIDIuMSAxMC40IDYuMiAxNGwyODcuNCAyNDguMmMxMC43IDkuMiAyNi40LjkgMjYuNC0xNFYyNjMuOGMwLTE0LjgtMTUuNy0yMy4yLTI2LjQtMTMuOXonKSk7XG5leHBvcnRzLkJhbmtGaWxsID0gZ2V0SWNvbignYmFuaycsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004OTQgNDYyYzMwLjkgMCA0My44LTM5LjcgMTguNy01OEw1MzAuOCAxMjYuMmEzMS44MSAzMS44MSAwIDAgMC0zNy42IDBMMTExLjMgNDA0Yy0yNS4xIDE4LjItMTIuMiA1OCAxOC44IDU4SDE5MnYzNzRoLTcyYy00LjQgMC04IDMuNi04IDh2NTJjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTUyYzAtNC40LTMuNi04LTgtOGgtNzJWNDYyaDYyek0zODEgODM2SDI2NFY0NjJoMTE3djM3NHptMTg5IDBINDUzVjQ2MmgxMTd2Mzc0em0xOTAgMEg2NDJWNDYyaDExOHYzNzR6JykpO1xuZXhwb3J0cy5CZWhhbmNlQ2lyY2xlRmlsbCA9IGdldEljb24oJ2JlaGFuY2UtY2lyY2xlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTQyMC4zIDQ3MC4zYzguNy02LjMgMTIuOS0xNi43IDEyLjktMzEgLjMtNi44LTEuMS0xMy41LTQuMS0xOS42LTIuNy00LjktNi43LTktMTEuNi0xMS45YTQ0LjggNDQuOCAwIDAgMC0xNi42LTZjLTYuNC0xLjItMTIuOS0xLjgtMTkuMy0xLjdoLTcwLjN2NzkuN2g3Ni4xYzEzLjEuMSAyNC4yLTMuMSAzMi45LTkuNXptMTEuOCA3MmMtOS44LTcuNS0yMi45LTExLjItMzkuMi0xMS4yaC04MS44djk0aDgwLjJjNy41IDAgMTQuNC0uNyAyMS4xLTIuMWE1MC41IDUwLjUgMCAwIDAgMTcuOC03LjJjNS4xLTMuMyA5LjItNy44IDEyLjMtMTMuNiAzLTUuOCA0LjUtMTMuMiA0LjUtMjIuMSAwLTE3LjctNS0zMC4yLTE0LjktMzcuOHpNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTg2LjUgMjg2LjloMTM4LjR2MzMuN0g1OTguNXYtMzMuN3pNNTEyIDYyOC44YTg5LjUyIDg5LjUyIDAgMCAxLTI3IDMxYy0xMS44IDguMi0yNC45IDE0LjItMzguOCAxNy43YTE2Ny40IDE2Ny40IDAgMCAxLTQ0LjYgNS43SDIzNlYzNDIuMWgxNjFjMTYuMyAwIDMxLjEgMS41IDQ0LjYgNC4zIDEzLjQgMi44IDI0LjggNy42IDM0LjQgMTQuMSA5LjUgNi41IDE3IDE1LjIgMjIuMyAyNiA1LjIgMTAuNyA3LjkgMjQuMSA3LjkgNDAgMCAxNy4yLTMuOSAzMS40LTExLjcgNDIuOS03LjkgMTEuNS0xOS4zIDIwLjgtMzQuOCAyOC4xIDIxLjEgNiAzNi42IDE2LjcgNDYuOCAzMS43IDEwLjQgMTUuMiAxNS41IDMzLjQgMTUuNSA1NC44IDAgMTcuNC0zLjMgMzIuMy0xMCA0NC44ek03OTAuOCA1NzZINjEyLjRjMCAxOS40IDYuNyAzOCAxNi44IDQ4IDEwLjIgOS45IDI0LjggMTQuOSA0My45IDE0LjkgMTMuOCAwIDI1LjUtMy41IDM1LjUtMTAuNCA5LjktNi45IDE1LjktMTQuMiAxOC4xLTIxLjhoNTkuOGMtOS42IDI5LjctMjQuMiA1MC45LTQ0IDYzLjctMTkuNiAxMi44LTQzLjYgMTkuMi03MS41IDE5LjItMTkuNSAwLTM3LTMuMi01Mi43LTkuMy0xNS4xLTUuOS0yOC43LTE0LjktMzkuOS0yNi41YTEyMS4yIDEyMS4yIDAgMCAxLTI1LjEtNDEuMmMtNi4xLTE2LjktOS4xLTM0LjctOC45LTUyLjYgMC0xOC41IDMuMS0zNS43IDkuMS01MS43IDExLjUtMzEuMSAzNS40LTU2IDY1LjktNjguOSAxNi4zLTYuOCAzMy44LTEwLjIgNTEuNS0xMCAyMSAwIDM5LjIgNCA1NSAxMi4yYTExMS42IDExMS42IDAgMCAxIDM4LjYgMzIuOGMxMC4xIDEzLjcgMTcuMiAyOS4zIDIxLjcgNDYuOSA0LjMgMTcuMyA1LjggMzUuNSA0LjYgNTQuN3ptLTEyMi05NS42Yy0xMC44IDAtMTkuOSAxLjktMjYuOSA1LjYtNyAzLjctMTIuOCA4LjMtMTcuMiAxMy42YTQ4LjQgNDguNCAwIDAgMC05LjEgMTcuNGMtMS42IDUuMy0yLjcgMTAuNy0zLjEgMTYuMkg3MjNjLTEuNi0xNy4zLTcuNi0zMC4xLTE1LjYtMzkuMS04LjQtOC45LTIxLjktMTMuNy0zOC42LTEzLjd6JykpO1xuZXhwb3J0cy5CZWxsRmlsbCA9IGdldEljb24oJ2JlbGwnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODE2IDc2OGgtMjRWNDI4YzAtMTQxLjEtMTA0LjMtMjU3LjgtMjQwLTI3Ny4yVjExMmMwLTIyLjEtMTcuOS00MC00MC00MHMtNDAgMTcuOS00MCA0MHYzOC44QzMzNi4zIDE3MC4yIDIzMiAyODYuOSAyMzIgNDI4djM0MGgtMjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjMyYzAgNC40IDMuNiA4IDggOGgyMTZjMCA2MS44IDUwLjIgMTEyIDExMiAxMTJzMTEyLTUwLjIgMTEyLTExMmgyMTZjNC40IDAgOC0zLjYgOC04di0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNTEyIDg4OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhoOTZjMCAyNi41LTIxLjUgNDgtNDggNDh6JykpO1xuZXhwb3J0cy5CZWhhbmNlU3F1YXJlRmlsbCA9IGdldEljb24oJ2JlaGFuY2Utc3F1YXJlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNTk4LjUgMzUwLjloMTM4LjR2MzMuN0g1OTguNXYtMzMuN3pNNTEyIDYyOC44YTg5LjUyIDg5LjUyIDAgMCAxLTI3IDMxYy0xMS44IDguMi0yNC45IDE0LjItMzguOCAxNy43YTE2Ny40IDE2Ny40IDAgMCAxLTQ0LjYgNS43SDIzNlYzNDIuMWgxNjFjMTYuMyAwIDMxLjEgMS41IDQ0LjYgNC4zIDEzLjQgMi44IDI0LjggNy42IDM0LjQgMTQuMSA5LjUgNi41IDE3IDE1LjIgMjIuMyAyNiA1LjIgMTAuNyA3LjkgMjQuMSA3LjkgNDAgMCAxNy4yLTMuOSAzMS40LTExLjcgNDIuOS03LjkgMTEuNS0xOS4zIDIwLjgtMzQuOCAyOC4xIDIxLjEgNiAzNi42IDE2LjcgNDYuOCAzMS43IDEwLjQgMTUuMiAxNS41IDMzLjQgMTUuNSA1NC44IDAgMTcuNC0zLjMgMzIuMy0xMCA0NC44ek03OTAuOCA1NzZINjEyLjRjMCAxOS40IDYuNyAzOCAxNi44IDQ4IDEwLjIgOS45IDI0LjggMTQuOSA0My45IDE0LjkgMTMuOCAwIDI1LjUtMy41IDM1LjUtMTAuNCA5LjktNi45IDE1LjktMTQuMiAxOC4xLTIxLjhoNTkuOGMtOS42IDI5LjctMjQuMiA1MC45LTQ0IDYzLjctMTkuNiAxMi44LTQzLjYgMTkuMi03MS41IDE5LjItMTkuNSAwLTM3LTMuMi01Mi43LTkuMy0xNS4xLTUuOS0yOC43LTE0LjktMzkuOS0yNi41YTEyMS4yIDEyMS4yIDAgMCAxLTI1LjEtNDEuMmMtNi4xLTE2LjktOS4xLTM0LjctOC45LTUyLjYgMC0xOC41IDMuMS0zNS43IDkuMS01MS43IDExLjUtMzEuMSAzNS40LTU2IDY1LjktNjguOSAxNi4zLTYuOCAzMy44LTEwLjIgNTEuNS0xMCAyMSAwIDM5LjIgNCA1NSAxMi4yYTExMS42IDExMS42IDAgMCAxIDM4LjYgMzIuOGMxMC4xIDEzLjcgMTcuMiAyOS4zIDIxLjcgNDYuOSA0LjMgMTcuMyA1LjggMzUuNSA0LjYgNTQuN3ptLTEyMi05NS42Yy0xMC44IDAtMTkuOSAxLjktMjYuOSA1LjYtNyAzLjctMTIuOCA4LjMtMTcuMiAxMy42YTQ4LjQgNDguNCAwIDAgMC05LjEgMTcuNGMtMS42IDUuMy0yLjcgMTAuNy0zLjEgMTYuMkg3MjNjLTEuNi0xNy4zLTcuNi0zMC4xLTE1LjYtMzkuMS04LjQtOC45LTIxLjktMTMuNy0zOC42LTEzLjd6bS0yNDguNS0xMC4xYzguNy02LjMgMTIuOS0xNi43IDEyLjktMzEgLjMtNi44LTEuMS0xMy41LTQuMS0xOS42LTIuNy00LjktNi43LTktMTEuNi0xMS45YTQ0LjggNDQuOCAwIDAgMC0xNi42LTZjLTYuNC0xLjItMTIuOS0xLjgtMTkuMy0xLjdoLTcwLjN2NzkuN2g3Ni4xYzEzLjEuMSAyNC4yLTMuMSAzMi45LTkuNXptMTEuOCA3MmMtOS44LTcuNS0yMi45LTExLjItMzkuMi0xMS4yaC04MS44djk0aDgwLjJjNy41IDAgMTQuNC0uNyAyMS4xLTIuMXMxMi43LTMuOCAxNy44LTcuMmM1LjEtMy4zIDkuMi03LjggMTIuMy0xMy42IDMtNS44IDQuNS0xMy4yIDQuNS0yMi4xIDAtMTcuNy01LTMwLjItMTQuOS0zNy44eicpKTtcbmV4cG9ydHMuQm9va0ZpbGwgPSBnZXRJY29uKCdib29rJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTgzMiA2NEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6TTY2OCAzNDUuOUw2MjEuNSAzMTIgNTcyIDM0Ny40VjEyNGg5NnYyMjEuOXonKSk7XG5leHBvcnRzLkJveFBsb3RGaWxsID0gZ2V0SWNvbignYm94LXBsb3QnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTUyIDIyNGgtNTJjLTQuNCAwLTggMy42LTggOHYyNDhoLTkyVjMwNGMwLTQuNC0zLjYtOC04LThINDQ4djQzMmgzNDRjNC40IDAgOC0zLjYgOC04VjU0OGg5MnYyNDRjMCA0LjQgMy42IDggOCA4aDUyYzQuNCAwIDgtMy42IDgtOFYyMzJjMC00LjQtMy42LTgtOC04em0tNzI4IDgwdjE3NmgtOTJWMjMyYzAtNC40LTMuNi04LTgtOEg3MmMtNC40IDAtOCAzLjYtOCA4djU2MGMwIDQuNCAzLjYgOCA4IDhoNTJjNC40IDAgOC0zLjYgOC04VjU0OGg5MnYxNzJjMCA0LjQgMy42IDggOCA4aDE1MlYyOTZIMjMyYy00LjQgMC04IDMuNi04IDh6JykpO1xuZXhwb3J0cy5CdWdGaWxsID0gZ2V0SWNvbignYnVnJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTMwNCAyODBoNDE2YzQuNCAwIDgtMy42IDgtOCAwLTQwLTguOC03Ni43LTI1LjktMTA4LjFhMTg0LjMxIDE4NC4zMSAwIDAgMC03NC03NEM1OTYuNyA3Mi44IDU2MCA2NCA1MjAgNjRoLTE2Yy00MCAwLTc2LjcgOC44LTEwOC4xIDI1LjlhMTg0LjMxIDE4NC4zMSAwIDAgMC03NCA3NEMzMDQuOCAxOTUuMyAyOTYgMjMyIDI5NiAyNzJjMCA0LjQgMy42IDggOCA4eicsICdNOTQwIDUxMkg3OTJWNDEyYzc2LjggMCAxMzktNjIuMiAxMzktMTM5IDAtNC40LTMuNi04LTgtOGgtNjBjLTQuNCAwLTggMy42LTggOGE2MyA2MyAwIDAgMS02MyA2M0gyMzJhNjMgNjMgMCAwIDEtNjMtNjNjMC00LjQtMy42LTgtOC04aC02MGMtNC40IDAtOCAzLjYtOCA4IDAgNzYuOCA2Mi4yIDEzOSAxMzkgMTM5djEwMEg4NGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGgxNDh2OTZjMCA2LjUuMiAxMyAuNyAxOS4zQzE2NC4xIDcyOC42IDExNiA3OTYuNyAxMTYgODc2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTggMC00NC4yIDIzLjktODIuOSA1OS42LTEwMy43YTI3MyAyNzMgMCAwIDAgMjIuNyA0OWMyNC4zIDQxLjUgNTkgNzYuMiAxMDAuNSAxMDAuNSAyOC45IDE2LjkgNjEgMjguOCA5NS4zIDM0LjUgNC40IDAgOC0zLjYgOC04VjQ4NGMwLTQuNCAzLjYtOCA4LThoNjBjNC40IDAgOCAzLjYgOCA4djQ2NC4yYzAgNC40IDMuNiA4IDggOCAzNC4zLTUuNyA2Ni40LTE3LjYgOTUuMy0zNC41YTI4MS4zOCAyODEuMzggMCAwIDAgMTIzLjItMTQ5LjVBMTIwLjQgMTIwLjQgMCAwIDEgODM2IDg3NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04IDAtNzkuMy00OC4xLTE0Ny40LTExNi43LTE3Ni43LjQtNi40LjctMTIuOC43LTE5LjN2LTk2aDE0OGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHonKSk7XG5leHBvcnRzLkNhbGN1bGF0b3JGaWxsID0gZ2V0SWNvbignY2FsY3VsYXRvcicsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTQ0MC4yIDc2NWgtNTAuOGMtMi4yIDAtNC41LTEuMS01LjktMi45TDM0OCA3MTguNmwtMzUuNSA0My41YTcuMzggNy4zOCAwIDAgMS01LjkgMi45aC01MC44Yy02LjYgMC0xMC4yLTcuOS01LjgtMTMuMWw2Mi43LTc2LjgtNjEuMi03NC45Yy00LjMtNS4yLS43LTEzLjEgNS45LTEzLjFoNTAuOWMyLjIgMCA0LjUgMS4xIDUuOSAyLjlsMzQgNDEuNiAzNC00MS42YzEuNS0xLjkgMy42LTIuOSA1LjktMi45aDUwLjhjNi42IDAgMTAuMiA3LjkgNS45IDEzLjFMMzgzLjUgNjc1bDYyLjcgNzYuOGM0LjIgNS4zLjYgMTMuMi02IDEzLjJ6bTcuOC0zODJjMCAyLjItMS40IDQtMy4yIDRIMzc2djY4LjdjMCAxLjktMS44IDMuMy00IDMuM2gtNDhjLTIuMiAwLTQtMS40LTQtMy4yVjM4N2gtNjguOGMtMS44IDAtMy4yLTEuOC0zLjItNHYtNDhjMC0yLjIgMS40LTQgMy4yLTRIMzIwdi02OC44YzAtMS44IDEuOC0zLjIgNC0zLjJoNDhjMi4yIDAgNCAxLjQgNCAzLjJWMzMxaDY4LjdjMS45IDAgMy4zIDEuOCAzLjMgNHY0OHptMzI4IDM2OWMwIDIuMi0xLjQgNC0zLjIgNEg1NzkuMmMtMS44IDAtMy4yLTEuOC0zLjItNHYtNDhjMC0yLjIgMS40LTQgMy4yLTRoMTkzLjVjMS45IDAgMy4zIDEuOCAzLjMgNHY0OHptMC0xMDRjMCAyLjItMS40IDQtMy4yIDRINTc5LjJjLTEuOCAwLTMuMi0xLjgtMy4yLTR2LTQ4YzAtMi4yIDEuNC00IDMuMi00aDE5My41YzEuOSAwIDMuMyAxLjggMy4zIDR2NDh6bTAtMjY1YzAgMi4yLTEuNCA0LTMuMiA0SDU3OS4yYy0xLjggMC0zLjItMS44LTMuMi00di00OGMwLTIuMiAxLjQtNCAzLjItNGgxOTMuNWMxLjkgMCAzLjMgMS44IDMuMyA0djQ4eicpKTtcbmV4cG9ydHMuQnVsYkZpbGwgPSBnZXRJY29uKCdidWxiJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTM0OCA2NzYuMUMyNTAgNjE5LjQgMTg0IDUxMy40IDE4NCAzOTJjMC0xODEuMSAxNDYuOS0zMjggMzI4LTMyOHMzMjggMTQ2LjkgMzI4IDMyOGMwIDEyMS40LTY2IDIyNy40LTE2NCAyODQuMVY3OTJjMCAxNy43LTE0LjMgMzItMzIgMzJIMzgwYy0xNy43IDAtMzItMTQuMy0zMi0zMlY2NzYuMXpNMzkyIDg4OGgyNDBjNC40IDAgOCAzLjYgOCA4djMyYzAgMTcuNy0xNC4zIDMyLTMyIDMySDQxNmMtMTcuNyAwLTMyLTE0LjMtMzItMzJ2LTMyYzAtNC40IDMuNi04IDgtOHonKSk7XG5leHBvcnRzLkJ1aWxkRmlsbCA9IGdldEljb24oJ2J1aWxkJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkxNiAyMTBIMzc2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYyMzZIMTA4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYyNzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNTQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjU0NmgyMzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjQyYzAtMTcuNy0xNC4zLTMyLTMyLTMyek02MTIgNzQ2SDQxMlY1NDZoMjAwdjIwMHptMjY4LTI2OEg2ODBWMjc4aDIwMHYyMDB6JykpO1xuZXhwb3J0cy5DYWxlbmRhckZpbGwgPSBnZXRJY29uKCdjYWxlbmRhcicsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ00xMTIgODgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlY0NjBIMTEydjQyMHptNzY4LTY5Nkg3MTJ2LTY0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2NEgzODR2LTY0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2NEgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjE3Nmg4MDBWMjE2YzAtMTcuNy0xNC4zLTMyLTMyLTMyeicpKTtcbmV4cG9ydHMuQ2FtZXJhRmlsbCA9IGdldEljb24oJ2NhbWVyYScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NjQgMjYwSDcyOGwtMzIuNC05MC44YTMyLjA3IDMyLjA3IDAgMCAwLTMwLjItMjEuMkgzNTguNmMtMTMuNSAwLTI1LjYgOC41LTMwLjEgMjEuMkwyOTYgMjYwSDE2MGMtNDQuMiAwLTgwIDM1LjgtODAgODB2NDU2YzAgNDQuMiAzNS44IDgwIDgwIDgwaDcwNGM0NC4yIDAgODAtMzUuOCA4MC04MFYzNDBjMC00NC4yLTM1LjgtODAtODAtODB6TTUxMiA3MTZjLTg4LjQgMC0xNjAtNzEuNi0xNjAtMTYwczcxLjYtMTYwIDE2MC0xNjAgMTYwIDcxLjYgMTYwIDE2MC03MS42IDE2MC0xNjAgMTYwem0tOTYtMTYwYTk2IDk2IDAgMSAwIDE5MiAwIDk2IDk2IDAgMSAwLTE5MiAweicpKTtcbmV4cG9ydHMuQ2FyRmlsbCA9IGdldEljb24oJ2NhcicsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ005NTkgNDEzLjRMOTM1LjMgMzcyYTggOCAwIDAgMC0xMC45LTIuOWwtNTAuNyAyOS42LTc4LjMtMjE2LjJhNjMuOSA2My45IDAgMCAwLTYwLjktNDQuNEgzMDEuMmMtMzQuNyAwLTY1LjUgMjIuNC03Ni4yIDU1LjVsLTc0LjYgMjA1LjItNTAuOC0yOS42YTggOCAwIDAgMC0xMC45IDIuOUw2NSA0MTMuNGMtMi4yIDMuOC0uOSA4LjYgMi45IDEwLjhsNjAuNCAzNS4yLTE0LjUgNDBjLTEuMiAzLjItMS44IDYuNi0xLjggMTB2MzQ4LjJjMCAxNS43IDExLjggMjguNCAyNi4zIDI4LjRoNjcuNmMxMi4zIDAgMjMtOS4zIDI1LjYtMjIuM2w3LjctMzcuN2g1NDUuNmw3LjcgMzcuN2MyLjcgMTMgMTMuMyAyMi4zIDI1LjYgMjIuM2g2Ny42YzE0LjUgMCAyNi4zLTEyLjcgMjYuMy0yOC40VjUwOS40YzAtMy40LS42LTYuOC0xLjgtMTBsLTE0LjUtNDAgNjAuMy0zNS4yYTggOCAwIDAgMCAzLTEwLjh6TTI2NCA2MjFjLTIyLjEgMC00MC0xNy45LTQwLTQwczE3LjktNDAgNDAtNDAgNDAgMTcuOSA0MCA0MC0xNy45IDQwLTQwIDQwem0zODggNzVjMCA0LjQtMy42IDgtOCA4SDM4MGMtNC40IDAtOC0zLjYtOC04di04NGMwLTQuNCAzLjYtOCA4LThoNDBjNC40IDAgOCAzLjYgOCA4djM2aDE2OHYtMzZjMC00LjQgMy42LTggOC04aDQwYzQuNCAwIDggMy42IDggOHY4NHptMTA4LTc1Yy0yMi4xIDAtNDAtMTcuOS00MC00MHMxNy45LTQwIDQwLTQwIDQwIDE3LjkgNDAgNDAtMTcuOSA0MC00MCA0MHpNMjIwIDQxOGw3Mi43LTE5OS45LjUtMS4zLjQtMS4zYzEuMS0zLjMgNC4xLTUuNSA3LjYtNS41aDQyNy42bDc1LjQgMjA4SDIyMHonKSk7XG5leHBvcnRzLkNhcmV0RG93bkZpbGwgPSBnZXRJY29uKCdjYXJldC1kb3duJywgZmlsbCwgZ2V0Tm9kZShub3JtYWxWaWV3Qm94LCAnTTg0MC40IDMwMEgxODMuNmMtMTkuNyAwLTMwLjcgMjAuOC0xOC41IDM1bDMyOC40IDM4MC44YzkuNCAxMC45IDI3LjUgMTAuOSAzNyAwTDg1OC45IDMzNWMxMi4yLTE0LjIgMS4yLTM1LTE4LjUtMzV6JykpO1xuZXhwb3J0cy5DYXJldExlZnRGaWxsID0gZ2V0SWNvbignY2FyZXQtbGVmdCcsIGZpbGwsIGdldE5vZGUobm9ybWFsVmlld0JveCwgJ002ODkgMTY1LjFMMzA4LjIgNDkzLjVjLTEwLjkgOS40LTEwLjkgMjcuNSAwIDM3TDY4OSA4NTguOWMxNC4yIDEyLjIgMzUgMS4yIDM1LTE4LjVWMTgzLjZjMC0xOS43LTIwLjgtMzAuNy0zNS0xOC41eicpKTtcbmV4cG9ydHMuQ2FyZXRSaWdodEZpbGwgPSBnZXRJY29uKCdjYXJldC1yaWdodCcsIGZpbGwsIGdldE5vZGUobm9ybWFsVmlld0JveCwgJ003MTUuOCA0OTMuNUwzMzUgMTY1LjFjLTE0LjItMTIuMi0zNS0xLjItMzUgMTguNXY2NTYuOGMwIDE5LjcgMjAuOCAzMC43IDM1IDE4LjVsMzgwLjgtMzI4LjRjMTAuOS05LjQgMTAuOS0yNy42IDAtMzd6JykpO1xuZXhwb3J0cy5DYXJyeU91dEZpbGwgPSBnZXRJY29uKCdjYXJyeS1vdXQnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDE4NEg3MTJ2LTY0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2NEgzODR2LTY0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2NEgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjE2YzAtMTcuNy0xNC4zLTMyLTMyLTMyek02OTQuNSA0MzIuN0w0ODEuOSA3MjUuNGExNi4xIDE2LjEgMCAwIDEtMjYgMGwtMTI2LjQtMTc0Yy0zLjgtNS4zIDAtMTIuNyA2LjUtMTIuN2g1NS4yYzUuMSAwIDEwIDIuNSAxMyA2LjZsNjQuNyA4OSAxNTAuOS0yMDcuOGMzLTQuMSA3LjgtNi42IDEzLTYuNkg2ODhjNi41LjEgMTAuMyA3LjUgNi41IDEyLjh6JykpO1xuZXhwb3J0cy5DYXJldFVwRmlsbCA9IGdldEljb24oJ2NhcmV0LXVwJywgZmlsbCwgZ2V0Tm9kZShub3JtYWxWaWV3Qm94LCAnTTg1OC45IDY4OUw1MzAuNSAzMDguMmMtOS40LTEwLjktMjcuNS0xMC45LTM3IDBMMTY1LjEgNjg5Yy0xMi4yIDE0LjItMS4yIDM1IDE4LjUgMzVoNjU2LjhjMTkuNyAwIDMwLjctMjAuOCAxOC41LTM1eicpKTtcbmV4cG9ydHMuQ2hlY2tDaXJjbGVGaWxsID0gZ2V0SWNvbignY2hlY2stY2lyY2xlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0xOTMuNSAzMDEuN2wtMjEwLjYgMjkyYTMxLjggMzEuOCAwIDAgMS01MS43IDBMMzE4LjUgNDg0LjljLTMuOC01LjMgMC0xMi43IDYuNS0xMi43aDQ2LjljMTAuMiAwIDE5LjkgNC45IDI1LjkgMTMuM2w3MS4yIDk4LjggMTU3LjItMjE4YzYtOC4zIDE1LjYtMTMuMyAyNS45LTEzLjNINjk5YzYuNSAwIDEwLjMgNy40IDYuNSAxMi43eicpKTtcbmV4cG9ydHMuQ2hlY2tTcXVhcmVGaWxsID0gZ2V0SWNvbignY2hlY2stc3F1YXJlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNjk1LjUgMzY1LjdsLTIxMC42IDI5MmEzMS44IDMxLjggMCAwIDEtNTEuNyAwTDMwOC41IDQ4NC45Yy0zLjgtNS4zIDAtMTIuNyA2LjUtMTIuN2g0Ni45YzEwLjIgMCAxOS45IDQuOSAyNS45IDEzLjNsNzEuMiA5OC44IDE1Ny4yLTIxOGM2LTguMyAxNS42LTEzLjMgMjUuOS0xMy4zSDY4OWM2LjUgMCAxMC4zIDcuNCA2LjUgMTIuN3onKSk7XG5leHBvcnRzLkNocm9tZUZpbGwgPSBnZXRJY29uKCdjaHJvbWUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMzcxLjggNTEyYzAgNzcuNSA2Mi43IDE0MC4yIDE0MC4yIDE0MC4yUzY1Mi4yIDU4OS41IDY1Mi4yIDUxMiA1ODkuNSAzNzEuOCA1MTIgMzcxLjggMzcxLjggNDM0LjQgMzcxLjggNTEyek05MDAgMzYyLjRsLTIzNC4zIDEyLjFjNjMuNiA3NC4zIDY0LjYgMTgxLjUgMTEuMSAyNjMuN2wtMTg4IDI4OS4yYzc4IDQuMiAxNTguNC0xMi45IDIzMS4yLTU1LjIgMTgwLTEwNCAyNTMtMzIyLjEgMTgwLTUwOS44ek0zMjAuMyA1OTEuOUwxNjMuOCAyODQuMUE0MTUuMzUgNDE1LjM1IDAgMCAwIDk2IDUxMmMwIDIwOCAxNTIuMyAzODAuMyAzNTEuNCA0MTAuOGwxMDYuOS0yMDkuNGMtOTYuNiAxOC4yLTE4OS45LTM0LjgtMjM0LTEyMS41em0yMTguNS0yODUuNWwzNDQuNCAxOC4xQzg0OCAyNTQuNyA3OTIuNiAxOTQgNzE5LjggMTUxLjcgNjUzLjkgMTEzLjYgNTgxLjUgOTUuNSA1MTAuNSA5NmMtMTIyLjUuNS0yNDIuMiA1NS4yLTMyMi4xIDE1NC41bDEyOC4yIDE5Ni45YzMyLTkxLjkgMTI0LjgtMTQ2LjcgMjIyLjItMTQxeicpKTtcbmV4cG9ydHMuQ2lDaXJjbGVGaWxsID0gZ2V0SWNvbignY2ktY2lyY2xlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0tNjMuNiA2NTZjLTEwMyAwLTE2Mi40LTY4LjYtMTYyLjQtMTgyLjZ2LTQ5QzI4NiAzNzMuNSAzNDUuNCAzMDQgNDQ4LjMgMzA0Yzg4LjMgMCAxNTIuMyA1Ni45IDE1Mi4zIDEzOC4xIDAgMi40LTIgNC40LTQuNCA0LjRoLTUyLjZjLTQuMiAwLTcuNi0zLjItOC03LjQtNC00Ni4xLTM3LjYtNzcuNi04Ny03Ny42LTYxLjEgMC05NS42IDQ1LjQtOTUuNiAxMjYuOXY0OS4zYzAgODAuMyAzNC41IDEyNS4xIDk1LjYgMTI1LjEgNDkuMyAwIDgyLjgtMjkuNSA4Ny03Mi40LjQtNC4xIDMuOC03LjMgOC03LjNoNTIuN2MyLjQgMCA0LjQgMiA0LjQgNC40IDAgNzcuNC02NC4zIDEzMi41LTE1Mi4zIDEzMi41ek03MzggNzA0LjFjMCA0LjQtMy42IDgtOCA4aC01MC40Yy00LjQgMC04LTMuNi04LThWMzE5LjljMC00LjQgMy42LTggOC04SDczMGM0LjQgMCA4IDMuNiA4IDh2Mzg0LjJ6JykpO1xuZXhwb3J0cy5DbG9ja0NpcmNsZUZpbGwgPSBnZXRJY29uKCdjbG9jay1jaXJjbGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTE3Ni41IDU4NS43bC0yOC42IDM5YTcuOTkgNy45OSAwIDAgMS0xMS4yIDEuN0w0ODMuMyA1NjkuOGE3LjkyIDcuOTIgMCAwIDEtMy4zLTYuNVYyODhjMC00LjQgMy42LTggOC04aDQ4LjFjNC40IDAgOCAzLjYgOCA4djI0Ny41bDE0Mi42IDEwMy4xYzMuNiAyLjUgNC40IDcuNSAxLjggMTEuMXonKSk7XG5leHBvcnRzLkNsb3NlQ2lyY2xlRmlsbCA9IGdldEljb24oJ2Nsb3NlLWNpcmNsZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMTY1LjQgNjE4LjJsLTY2LS4zTDUxMiA1NjMuNGwtOTkuMyAxMTguNC02Ni4xLjNjLTQuNCAwLTgtMy41LTgtOCAwLTEuOS43LTMuNyAxLjktNS4ybDEzMC4xLTE1NUwzNDAuNSAzNTlhOC4zMiA4LjMyIDAgMCAxLTEuOS01LjJjMC00LjQgMy42LTggOC04bDY2LjEuM0w1MTIgNDY0LjZsOTkuMy0xMTguNCA2Ni0uM2M0LjQgMCA4IDMuNSA4IDggMCAxLjktLjcgMy43LTEuOSA1LjJMNTUzLjUgNTE0bDEzMCAxNTVjMS4yIDEuNSAxLjkgMy4zIDEuOSA1LjIgMCA0LjQtMy42IDgtOCA4eicpKTtcbmV4cG9ydHMuQ2xvdWRGaWxsID0gZ2V0SWNvbignY2xvdWQnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODExLjQgNDE4LjdDNzY1LjYgMjk3LjkgNjQ4LjkgMjEyIDUxMi4yIDIxMlMyNTguOCAyOTcuOCAyMTMgNDE4LjZDMTI3LjMgNDQxLjEgNjQgNTE5LjEgNjQgNjEyYzAgMTEwLjUgODkuNSAyMDAgMTk5LjkgMjAwaDQ5Ni4yQzg3MC41IDgxMiA5NjAgNzIyLjUgOTYwIDYxMmMwLTkyLjctNjMuMS0xNzAuNy0xNDguNi0xOTMuM3onKSk7XG5leHBvcnRzLkNsb3NlU3F1YXJlRmlsbCA9IGdldEljb24oJ2Nsb3NlLXNxdWFyZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTY3Ni4xIDY1Ny45YzQuNCA1LjIuNyAxMy4xLTYuMSAxMy4xaC01OC45Yy00LjcgMC05LjItMi4xLTEyLjMtNS43TDUxMiA1NjEuOGwtODYuOCAxMDMuNWMtMyAzLjYtNy41IDUuNy0xMi4zIDUuN0gzNTRjLTYuOCAwLTEwLjUtNy45LTYuMS0xMy4xTDQ3MC4yIDUxMiAzNDcuOSAzNjYuMUE3Ljk1IDcuOTUgMCAwIDEgMzU0IDM1M2g1OC45YzQuNyAwIDkuMiAyLjEgMTIuMyA1LjdMNTEyIDQ2Mi4ybDg2LjgtMTAzLjVjMy0zLjYgNy41LTUuNyAxMi4zLTUuN0g2NzBjNi44IDAgMTAuNSA3LjkgNi4xIDEzLjFMNTUzLjggNTEybDEyMi4zIDE0NS45eicpKTtcbmV4cG9ydHMuQ29kZVNhbmRib3hTcXVhcmVGaWxsID0gZ2V0SWNvbignY29kZS1zYW5kYm94LXNxdWFyZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ00zMDcuOSA1MzYuN2w4Ny42IDQ5LjlWNjgxbDk2LjcgNTUuOVY1MjQuOEwzMDcuOSA0MTguNHpNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek03NTUuNyA2NTMuMkw1MTIgNzk0IDI2OC4zIDY1My4yVjM3MS44bDExMC02My42LS40LS4yaC4yTDUxMiAyMzFsMTM0IDc3aC0uMmwtLjMuMiAxMTAuMSA2My42djI4MS40em0tMjIzLjkgODMuN2w5Ny4zLTU2LjJ2LTk0LjFsODctNDkuNVY0MTguNUw1MzEuOCA1MjV6bS0yMC0zNTJMNDE4IDMzMWwtOTEuMSA1Mi42IDE4NS4yIDEwNyAxODUuMi0xMDYuOS05MS40LTUyLjh6JykpO1xuZXhwb3J0cy5Db2RlU2FuZGJveENpcmNsZUZpbGwgPSBnZXRJY29uKCdjb2RlLXNhbmRib3gtY2lyY2xlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0yNDMuNyA1ODkuMkw1MTIgNzk0IDI2OC4zIDY1My4yVjM3MS44bDExMC02My42LS40LS4yaC4yTDUxMiAyMzFsMTM0IDc3aC0uMmwtLjMuMiAxMTAuMSA2My42djI4MS40ek0zMDcuOSA1MzYuN2w4Ny42IDQ5LjlWNjgxbDk2LjcgNTUuOVY1MjQuOEwzMDcuOSA0MTguNHptMjAzLjktMTUxLjhMNDE4IDMzMWwtOTEuMSA1Mi42IDE4NS4yIDEwNyAxODUuMi0xMDYuOS05MS40LTUyLjh6bTIwIDM1Mmw5Ny4zLTU2LjJ2LTk0LjFsODctNDkuNVY0MTguNUw1MzEuOCA1MjV6JykpO1xuZXhwb3J0cy5Db2RlRmlsbCA9IGdldEljb24oJ2NvZGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek01MTMuMSA1MTguMWwtMTkyIDE2MWMtNS4yIDQuNC0xMy4xLjctMTMuMS02LjF2LTYyLjdjMC0yLjMgMS4xLTQuNiAyLjktNi4xTDQyMC43IDUxMmwtMTA5LjgtOTIuMmE3LjYzIDcuNjMgMCAwIDEtMi45LTYuMVYzNTFjMC02LjggNy45LTEwLjUgMTMuMS02LjFsMTkyIDE2MC45YzMuOSAzLjIgMy45IDkuMSAwIDEyLjN6TTcxNiA2NzNjMCA0LjQtMy40IDgtNy41IDhoLTE4NWMtNC4xIDAtNy41LTMuNi03LjUtOHYtNDhjMC00LjQgMy40LTggNy41LThoMTg1YzQuMSAwIDcuNSAzLjYgNy41IDh2NDh6JykpO1xuZXhwb3J0cy5Db21wYXNzRmlsbCA9IGdldEljb24oJ2NvbXBhc3MnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6TTMyNy4zIDcwMi40Yy0yIC45LTQuNCAwLTUuMy0yLjEtLjQtMS0uNC0yLjIgMC0zLjJsOTguNy0yMjUuNSAxMzIuMSAxMzIuMS0yMjUuNSA5OC43em0zNzUuMS0zNzUuMWwtOTguNyAyMjUuNS0xMzIuMS0xMzIuMUw2OTcuMSAzMjJjMi0uOSA0LjQgMCA1LjMgMi4xLjQgMSAuNCAyLjEgMCAzLjJ6JykpO1xuZXhwb3J0cy5Db2RlcGVuQ2lyY2xlRmlsbCA9IGdldEljb24oJ2NvZGVwZW4tY2lyY2xlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTQ4OC4xIDQxNC43VjMwMy40TDMwMC45IDQyOGw4My42IDU1Ljh6bTI1NC4xIDEzNy43di03OS44bC01OS44IDM5Ljl6TTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0yNzggNTMzYzAgMS4xLS4xIDIuMS0uMiAzLjEgMCAuNC0uMS43LS4yIDFhMTQuMTYgMTQuMTYgMCAwIDEtLjggMy4yYy0uMi42LS40IDEuMi0uNiAxLjctLjIuNC0uNC44LS41IDEuMi0uMy41LS41IDEuMS0uOCAxLjYtLjIuNC0uNC43LS43IDEuMS0uMy41LS43IDEtMSAxLjUtLjMuNC0uNS43LS44IDEtLjQuNC0uOC45LTEuMiAxLjMtLjMuMy0uNi42LTEgLjktLjQuNC0uOS44LTEuNCAxLjEtLjQuMy0uNy42LTEuMS44LS4xLjEtLjMuMi0uNC4zTDUyNS4yIDc4NmMtNCAyLjctOC42IDQtMTMuMiA0LTQuNyAwLTkuMy0xLjQtMTMuMy00TDI0NC42IDYxNi45Yy0uMS0uMS0uMy0uMi0uNC0uM2wtMS4xLS44Yy0uNS0uNC0uOS0uNy0xLjMtMS4xLS4zLS4zLS42LS42LTEtLjktLjQtLjQtLjgtLjgtMS4yLTEuM2E3IDcgMCAwIDEtLjgtMWMtLjQtLjUtLjctMS0xLTEuNS0uMi0uNC0uNS0uNy0uNy0xLjEtLjMtLjUtLjYtMS4xLS44LTEuNi0uMi0uNC0uNC0uOC0uNS0xLjItLjItLjYtLjQtMS4yLS42LTEuNy0uMS0uNC0uMy0uOC0uNC0xLjItLjItLjctLjMtMS4zLS40LTItLjEtLjMtLjEtLjctLjItMS0uMS0xLS4yLTIuMS0uMi0zLjFWNDI3LjljMC0xIC4xLTIuMS4yLTMuMS4xLS4zLjEtLjcuMi0xYTE0LjE2IDE0LjE2IDAgMCAxIC44LTMuMmMuMi0uNi40LTEuMi42LTEuNy4yLS40LjQtLjguNS0xLjIuMi0uNS41LTEuMS44LTEuNi4yLS40LjQtLjcuNy0xLjEuNi0uOSAxLjItMS43IDEuOC0yLjUuNC0uNC44LS45IDEuMi0xLjMuMy0uMy42LS42IDEtLjkuNC0uNC45LS44IDEuMy0xLjEuNC0uMy43LS42IDEuMS0uOC4xLS4xLjMtLjIuNC0uM0w0OTguNyAyMzljOC01LjMgMTguNS01LjMgMjYuNSAwbDI1NC4xIDE2OS4xYy4xLjEuMy4yLjQuM2wxLjEuOCAxLjQgMS4xYy4zLjMuNi42IDEgLjkuNC40LjguOCAxLjIgMS4zLjcuOCAxLjMgMS42IDEuOCAyLjUuMi40LjUuNy43IDEuMS4zLjUuNiAxIC44IDEuNi4yLjQuNC44LjUgMS4yLjIuNi40IDEuMi42IDEuNy4xLjQuMy44LjQgMS4yLjIuNy4zIDEuMy40IDIgLjEuMy4xLjcuMiAxIC4xIDEgLjIgMi4xLjIgMy4xVjU5N3ptLTI1NC4xIDEzLjN2MTExLjNMNzIzLjEgNTk3bC04My42LTU1Ljh6TTI4MS44IDQ3Mi42djc5LjhsNTkuOC0zOS45ek01MTIgNDU2LjFsLTg0LjUgNTYuNCA4NC41IDU2LjQgODQuNS01Ni40ek03MjMuMSA0MjhMNTM1LjkgMzAzLjR2MTExLjNsMTAzLjYgNjkuMXpNMzg0LjUgNTQxLjJMMzAwLjkgNTk3bDE4Ny4yIDEyNC42VjYxMC4zbC0xMDMuNi02OS4xeicpKTtcbmV4cG9ydHMuQ29kZXBlblNxdWFyZUZpbGwgPSBnZXRJY29uKCdjb2RlcGVuLXNxdWFyZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ003MjMuMSA0MjhMNTM1LjkgMzAzLjR2MTExLjNsMTAzLjYgNjkuMXpNNTEyIDQ1Ni4xbC04NC41IDU2LjQgODQuNSA1Ni40IDg0LjUtNTYuNHptMjMuOSAxNTQuMnYxMTEuM0w3MjMuMSA1OTdsLTgzLjYtNTUuOHptLTE1MS40LTY5LjFMMzAwLjkgNTk3bDE4Ny4yIDEyNC42VjYxMC4zbC0xMDMuNi02OS4xek04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS05MCA0ODVjMCAxLjEtLjEgMi4xLS4yIDMuMSAwIC40LS4xLjctLjIgMWExNC4xNiAxNC4xNiAwIDAgMS0uOCAzLjJjLS4yLjYtLjQgMS4yLS42IDEuNy0uMi40LS40LjgtLjUgMS4yLS4zLjUtLjUgMS4xLS44IDEuNi0uMi40LS40LjctLjcgMS4xLS4zLjUtLjcgMS0xIDEuNS0uMy40LS41LjctLjggMS0uNC40LS44LjktMS4yIDEuMy0uMy4zLS42LjYtMSAuOS0uNC40LS45LjgtMS40IDEuMS0uNC4zLS43LjYtMS4xLjgtLjEuMS0uMy4yLS40LjNMNTI1LjIgNzg2Yy00IDIuNy04LjYgNC0xMy4yIDQtNC43IDAtOS4zLTEuNC0xMy4zLTRMMjQ0LjYgNjE2LjljLS4xLS4xLS4zLS4yLS40LS4zbC0xLjEtLjhjLS41LS40LS45LS43LTEuMy0xLjEtLjMtLjMtLjYtLjYtMS0uOS0uNC0uNC0uOC0uOC0xLjItMS4zYTcgNyAwIDAgMS0uOC0xYy0uNC0uNS0uNy0xLTEtMS41LS4yLS40LS41LS43LS43LTEuMS0uMy0uNS0uNi0xLjEtLjgtMS42LS4yLS40LS40LS44LS41LTEuMi0uMi0uNi0uNC0xLjItLjYtMS43LS4xLS40LS4zLS44LS40LTEuMi0uMi0uNy0uMy0xLjMtLjQtMi0uMS0uMy0uMS0uNy0uMi0xLS4xLTEtLjItMi4xLS4yLTMuMVY0MjcuOWMwLTEgLjEtMi4xLjItMy4xLjEtLjMuMS0uNy4yLTFhMTQuMTYgMTQuMTYgMCAwIDEgLjgtMy4yYy4yLS42LjQtMS4yLjYtMS43LjItLjQuNC0uOC41LTEuMi4yLS41LjUtMS4xLjgtMS42LjItLjQuNC0uNy43LTEuMS42LS45IDEuMi0xLjcgMS44LTIuNS40LS40LjgtLjkgMS4yLTEuMy4zLS4zLjYtLjYgMS0uOS40LS40LjktLjggMS4zLTEuMS40LS4zLjctLjYgMS4xLS44LjEtLjEuMy0uMi40LS4zTDQ5OC43IDIzOWM4LTUuMyAxOC41LTUuMyAyNi41IDBsMjU0LjEgMTY5LjFjLjEuMS4zLjIuNC4zbDEuMS44IDEuNCAxLjFjLjMuMy42LjYgMSAuOS40LjQuOC44IDEuMiAxLjMuNy44IDEuMyAxLjYgMS44IDIuNS4yLjQuNS43LjcgMS4xLjMuNS42IDEgLjggMS42LjIuNC40LjguNSAxLjIuMi42LjQgMS4yLjYgMS43LjEuNC4zLjguNCAxLjIuMi43LjMgMS4zLjQgMiAuMS4zLjEuNy4yIDEgLjEgMSAuMiAyLjEuMiAzLjFWNTk3em0tNDcuOC00NC42di03OS44bC01OS44IDM5Ljl6bS00NjAuNC03OS44djc5LjhsNTkuOC0zOS45em0yMDYuMy01Ny45VjMwMy40TDMwMC45IDQyOGw4My42IDU1Ljh6JykpO1xuZXhwb3J0cy5Db250YWN0c0ZpbGwgPSBnZXRJY29uKCdjb250YWN0cycsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MjggMjI0SDc2OHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2SDU0OHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2SDMyOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2SDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY1NzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoODMyYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjI1NmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNjYxIDczNmgtNDMuOWMtNC4yIDAtNy42LTMuMy03LjktNy41LTMuOC01MC42LTQ2LTkwLjUtOTcuMi05MC41cy05My40IDQwLTk3LjIgOTAuNWMtLjMgNC4yLTMuNyA3LjUtNy45IDcuNUgzNjNhOCA4IDAgMCAxLTgtOC40YzIuOC01My4zIDMyLTk5LjcgNzQuNi0xMjYuMWExMTEuOCAxMTEuOCAwIDAgMS0yOS4xLTc1LjVjMC02MS45IDQ5LjktMTEyIDExMS40LTExMiA2MS41IDAgMTExLjQgNTAuMSAxMTEuNCAxMTIgMCAyOS4xLTExIDU1LjUtMjkuMSA3NS41IDQyLjcgMjYuNSA3MS44IDcyLjggNzQuNiAxMjYuMS40IDQuNi0zLjIgOC40LTcuOCA4LjR6TTUxMiA0NzRjLTI4LjUgMC01MS43IDIzLjMtNTEuNyA1MnMyMy4yIDUyIDUxLjcgNTJjMjguNSAwIDUxLjctMjMuMyA1MS43LTUycy0yMy4yLTUyLTUxLjctNTJ6JykpO1xuZXhwb3J0cy5Db250cm9sRmlsbCA9IGdldEljb24oJ2NvbnRyb2wnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek00MDQgNjgzdjc3YzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOHYtNzdjLTQxLjctMTMuNi03Mi01Mi44LTcyLTk5czMwLjMtODUuNSA3Mi05OVYyNjRjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHYyMjFjNDEuNyAxMy42IDcyIDUyLjggNzIgOTlzLTMwLjMgODUuNS03MiA5OXptMjc5LjYtMTQzLjljLjIgMCAuMy0uMS40LS4xdjIyMWMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LThWNTM5Yy4yIDAgLjMuMS40LjEtNDItMTMuNC03Mi40LTUyLjctNzIuNC05OS4xIDAtNDYuNCAzMC40LTg1LjcgNzIuNC05OS4xLS4yIDAtLjMuMS0uNC4xdi03N2MwLTQuNCAzLjYtOCA4LThoNDhjNC40IDAgOCAzLjYgOCA4djc3Yy0uMiAwLS4zLS4xLS40LS4xIDQyIDEzLjQgNzIuNCA1Mi43IDcyLjQgOTkuMSAwIDQ2LjQtMzAuNCA4NS43LTcyLjQgOTkuMXpNNjE2IDQ0MGEzNiAzNiAwIDEgMCA3MiAwIDM2IDM2IDAgMSAwLTcyIDB6TTQwMy40IDU2Ni41bC0xLjUtMi40YzAtLjEtLjEtLjEtLjEtLjJsLS45LTEuMmMtLjEtLjEtLjItLjItLjItLjMtMS0xLjMtMi0yLjUtMy4yLTMuNmwtLjItLjJjLS40LS40LS44LS44LTEuMi0xLjEtLjgtLjgtMS43LTEuNS0yLjYtMi4xaC0uMWwtMS4yLS45Yy0uMS0uMS0uMy0uMi0uNC0uMy0xLjItLjgtMi41LTEuNi0zLjktMi4yLS4yLS4xLS41LS4yLS43LS40LS40LS4yLS43LS4zLTEuMS0uNS0uMy0uMS0uNy0uMy0xLS40LS41LS4yLTEtLjQtMS41LS41LS40LS4xLS45LS4zLTEuMy0uNGwtLjktLjMtMS40LS4zYy0uMi0uMS0uNS0uMS0uNy0uMi0uNy0uMS0xLjQtLjMtMi4xLS40LS4yIDAtLjQgMC0uNi0uMS0uNi0uMS0xLjEtLjEtMS43LS4yLS4yIDAtLjQgMC0uNy0uMS0uOCAwLTEuNS0uMS0yLjMtLjFzLTEuNSAwLTIuMy4xYy0uMiAwLS40IDAtLjcuMS0uNiAwLTEuMi4xLTEuNy4yLS4yIDAtLjQgMC0uNi4xLS43LjEtMS40LjItMi4xLjQtLjIuMS0uNS4xLS43LjJsLTEuNC4zLS45LjNjLS40LjEtLjkuMy0xLjMuNC0uNS4yLTEgLjQtMS41LjUtLjMuMS0uNy4zLTEgLjQtLjQuMi0uNy4zLTEuMS41LS4yLjEtLjUuMi0uNy40LTEuMy43LTIuNiAxLjQtMy45IDIuMi0uMS4xLS4zLjItLjQuM2wtMS4yLjloLS4xYy0uOS43LTEuOCAxLjQtMi42IDIuMS0uNC40LS44LjctMS4yIDEuMWwtLjIuMmE1NC44IDU0LjggMCAwIDAtMy4yIDMuNmMtLjEuMS0uMi4yLS4yLjNsLS45IDEuMmMwIC4xLS4xLjEtLjEuMmwtMS41IDIuNGMtLjEuMi0uMi4zLS4zLjUtMi43IDUuMS00LjMgMTAuOS00LjMgMTdzMS42IDEyIDQuMyAxN2MuMS4yLjIuMy4zLjVsMS41IDIuNGMwIC4xLjEuMS4xLjJsLjkgMS4yYy4xLjEuMi4yLjIuMyAxIDEuMyAyIDIuNSAzLjIgMy42bC4yLjJjLjQuNC44LjggMS4yIDEuMS44LjggMS43IDEuNSAyLjYgMi4xaC4xbDEuMi45Yy4xLjEuMy4yLjQuMyAxLjIuOCAyLjUgMS42IDMuOSAyLjIuMi4xLjUuMi43LjQuNC4yLjcuMyAxLjEuNS4zLjEuNy4zIDEgLjQuNS4yIDEgLjQgMS41LjUuNC4xLjkuMyAxLjMuNGwuOS4zIDEuNC4zYy4yLjEuNS4xLjcuMi43LjEgMS40LjMgMi4xLjQuMiAwIC40IDAgLjYuMS42LjEgMS4xLjEgMS43LjIuMiAwIC40IDAgLjcuMS44IDAgMS41LjEgMi4zLjFzMS41IDAgMi4zLS4xYy4yIDAgLjQgMCAuNy0uMS42IDAgMS4yLS4xIDEuNy0uMi4yIDAgLjQgMCAuNi0uMS43LS4xIDEuNC0uMiAyLjEtLjQuMi0uMS41LS4xLjctLjJsMS40LS4zLjktLjNjLjQtLjEuOS0uMyAxLjMtLjQuNS0uMiAxLS40IDEuNS0uNS4zLS4xLjctLjMgMS0uNC40LS4yLjctLjMgMS4xLS41LjItLjEuNS0uMi43LS40IDEuMy0uNyAyLjYtMS40IDMuOS0yLjIuMS0uMS4zLS4yLjQtLjNsMS4yLS45aC4xYy45LS43IDEuOC0xLjQgMi42LTIuMS40LS40LjgtLjcgMS4yLTEuMWwuMi0uMmMxLjEtMS4xIDIuMi0yLjQgMy4yLTMuNi4xLS4xLjItLjIuMi0uM2wuOS0xLjJjMC0uMS4xLS4xLjEtLjJsMS41LTIuNGMuMS0uMi4yLS4zLjMtLjUgMi43LTUuMSA0LjMtMTAuOSA0LjMtMTdzLTEuNi0xMi00LjMtMTdjLS4xLS4yLS4yLS40LS4zLS41eicpKTtcbmV4cG9ydHMuQ29udGFpbmVyRmlsbCA9IGdldEljb24oJ2NvbnRhaW5lcicsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004MzIgNjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY1MjljMC0uNi40LTEgMS0xaDIxOS4zbDUuMiAyNC43QzM5Ny42IDcwOC41IDQ1MC44IDc1MiA1MTIgNzUyczExNC40LTQzLjUgMTI2LjQtMTAzLjNsNS4yLTI0LjdIODYzYy42IDAgMSAuNCAxIDFWOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6TTcxMiA0OTNjMCA0LjQtMy42IDgtOCA4SDMyMGMtNC40IDAtOC0zLjYtOC04di00OGMwLTQuNCAzLjYtOCA4LThoMzg0YzQuNCAwIDggMy42IDggOHY0OHptMC0xNjBjMCA0LjQtMy42IDgtOCA4SDMyMGMtNC40IDAtOC0zLjYtOC04di00OGMwLTQuNCAzLjYtOCA4LThoMzg0YzQuNCAwIDggMy42IDggOHY0OHptMTUxIDM1NEg2OTQuMWMtMTEuNiAzMi44LTMyIDYyLjMtNTkuMSA4NC43LTM0LjUgMjguNi03OC4yIDQ0LjMtMTIzIDQ0LjNzLTg4LjUtMTUuOC0xMjMtNDQuM2ExOTQuMDIgMTk0LjAyIDAgMCAxLTU5LjEtODQuN0gxNjFjLS42IDAtMS0uNC0xLTF2MjQyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlY2ODZjMCAuNi0uNCAxLTEgMXonKSk7XG5leHBvcnRzLkNvcHlGaWxsID0gZ2V0SWNvbignY29weScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004MzIgNjRIMjk2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDQ5NnY2ODhjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFY5NmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNzA0IDE5MkgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjUzMC43YzAgOC41IDMuNCAxNi42IDkuNCAyMi42bDE3My4zIDE3My4zYzIuMiAyLjIgNC43IDQgNy40IDUuNXYxLjloNC4yYzMuNSAxLjMgNy4yIDIgMTEgMkg3MDRjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjI0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek0zODIgODk2aC0uMkwyMzIgNzQ2LjJ2LS4yaDE1MHYxNTB6JykpO1xuZXhwb3J0cy5Db3B5cmlnaHRDaXJjbGVGaWxsID0gZ2V0SWNvbignY29weXJpZ2h0LWNpcmNsZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptNS40IDY3MGMtMTEwIDAtMTczLjQtNzMuMi0xNzMuNC0xOTQuOXYtNTIuM0MzNDQgMzY0LjIgNDA3LjQgMjkwIDUxNy4zIDI5MGM5NC4zIDAgMTYyLjcgNjAuNyAxNjIuNyAxNDcuNCAwIDIuNi0yLjEgNC43LTQuNyA0LjdoLTU2LjdjLTQuMiAwLTcuNi0zLjItOC03LjQtNC00OS41LTQwLTgzLjQtOTMtODMuNC02NS4zIDAtMTAyLjEgNDguNS0xMDIuMSAxMzUuNXY1Mi42YzAgODUuNyAzNi45IDEzMy42IDEwMi4xIDEzMy42IDUyLjggMCA4OC43LTMxLjcgOTMtNzcuOC40LTQuMSAzLjgtNy4zIDgtNy4zaDU2LjhjMi42IDAgNC43IDIuMSA0LjcgNC43IDAgODIuNi02OC43IDE0MS40LTE2Mi43IDE0MS40eicpKTtcbmV4cG9ydHMuQ3JlZGl0Q2FyZEZpbGwgPSBnZXRJY29uKCdjcmVkaXQtY2FyZCcsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MjggMTYwSDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYxNjBoODk2VjE5MmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNjQgODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDgzMmMxNy43IDAgMzItMTQuMyAzMi0zMlY0NDBINjR2Mzkyem01NzktMTg0YzAtNC40IDMuNi04IDgtOGgxNjVjNC40IDAgOCAzLjYgOCA4djcyYzAgNC40LTMuNiA4LTggOEg2NTFjLTQuNCAwLTgtMy42LTgtOHYtNzJ6JykpO1xuZXhwb3J0cy5Dcm93bkZpbGwgPSBnZXRJY29uKCdjcm93bicsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004OTkuNiAyNzYuNUw3MDUgMzk2LjQgNTE4LjQgMTQ3LjVhOC4wNiA4LjA2IDAgMCAwLTEyLjkgMEwzMTkgMzk2LjQgMTI0LjMgMjc2LjVjLTUuNy0zLjUtMTMuMSAxLjItMTIuMiA3LjlMMTg4LjUgODY1YzEuMSA3LjkgNy45IDE0IDE2IDE0aDYxNS4xYzggMCAxNC45LTYgMTUuOS0xNGw3Ni40LTU4MC42Yy44LTYuNy02LjUtMTEuNC0xMi4zLTcuOXpNNTEyIDczNC4yYy02Mi4xIDAtMTEyLjYtNTAuNS0xMTIuNi0xMTIuNlM0NDkuOSA1MDkgNTEyIDUwOXMxMTIuNiA1MC41IDExMi42IDExMi42UzU3NC4xIDczNC4yIDUxMiA3MzQuMnptMC0xNjAuOWMtMjYuNiAwLTQ4LjIgMjEuNi00OC4yIDQ4LjMgMCAyNi42IDIxLjYgNDguMyA0OC4yIDQ4LjNzNDguMi0yMS42IDQ4LjItNDguM2MwLTI2LjYtMjEuNi00OC4zLTQ4LjItNDguM3onKSk7XG5leHBvcnRzLkN1c3RvbWVyU2VydmljZUZpbGwgPSBnZXRJY29uKCdjdXN0b21lci1zZXJ2aWNlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiAxMjhjLTIxMi4xIDAtMzg0IDE3MS45LTM4NCAzODR2MzYwYzAgMTMuMyAxMC43IDI0IDI0IDI0aDE4NGMzNS4zIDAgNjQtMjguNyA2NC02NFY2MjRjMC0zNS4zLTI4LjctNjQtNjQtNjRIMjAwdi00OGMwLTE3Mi4zIDEzOS43LTMxMiAzMTItMzEyczMxMiAxMzkuNyAzMTIgMzEydjQ4SDY4OGMtMzUuMyAwLTY0IDI4LjctNjQgNjR2MjA4YzAgMzUuMyAyOC43IDY0IDY0IDY0aDE4NGMxMy4zIDAgMjQtMTAuNyAyNC0yNFY1MTJjMC0yMTIuMS0xNzEuOS0zODQtMzg0LTM4NHonKSk7XG5leHBvcnRzLkRhc2hib2FyZEZpbGwgPSBnZXRJY29uKCdkYXNoYm9hcmQnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTI0LjggMzg1LjZhNDQ2LjcgNDQ2LjcgMCAwIDAtOTYtMTQyLjQgNDQ2LjcgNDQ2LjcgMCAwIDAtMTQyLjQtOTZDNjMxLjEgMTIzLjggNTcyLjUgMTEyIDUxMiAxMTJzLTExOS4xIDExLjgtMTc0LjQgMzUuMmE0NDYuNyA0NDYuNyAwIDAgMC0xNDIuNCA5NiA0NDYuNyA0NDYuNyAwIDAgMC05NiAxNDIuNEM3NS44IDQ0MC45IDY0IDQ5OS41IDY0IDU2MGMwIDEzMi43IDU4LjMgMjU3LjcgMTU5LjkgMzQzLjFsMS43IDEuNGM1LjggNC44IDEzLjEgNy41IDIwLjYgNy41aDUzMS43YzcuNSAwIDE0LjgtMi43IDIwLjYtNy41bDEuNy0xLjRDOTAxLjcgODE3LjcgOTYwIDY5Mi43IDk2MCA1NjBjMC02MC41LTExLjktMTE5LjEtMzUuMi0xNzQuNHpNNDgyIDIzMmMwLTQuNCAzLjYtOCA4LThoNDRjNC40IDAgOCAzLjYgOCA4djgwYzAgNC40LTMuNiA4LTggOGgtNDRjLTQuNCAwLTgtMy42LTgtOHYtODB6TTI3MCA1ODJjMCA0LjQtMy42IDgtOCA4aC04MGMtNC40IDAtOC0zLjYtOC04di00NGMwLTQuNCAzLjYtOCA4LThoODBjNC40IDAgOCAzLjYgOCA4djQ0em05MC43LTIwNC41bC0zMS4xIDMxLjFhOC4wMyA4LjAzIDAgMCAxLTExLjMgMEwyNjEuNyAzNTJhOC4wMyA4LjAzIDAgMCAxIDAtMTEuM2wzMS4xLTMxLjFjMy4xLTMuMSA4LjItMy4xIDExLjMgMGw1Ni42IDU2LjZjMy4xIDMuMSAzLjEgOC4yIDAgMTEuM3ptMjkxLjEgODMuNmwtODQuNSA4NC41YzUgMTguNy4yIDM5LjQtMTQuNSA1NC4xYTU1Ljk1IDU1Ljk1IDAgMCAxLTc5LjIgMCA1NS45NSA1NS45NSAwIDAgMSAwLTc5LjIgNTUuODcgNTUuODcgMCAwIDEgNTQuMS0xNC41bDg0LjUtODQuNWMzLjEtMy4xIDguMi0zLjEgMTEuMyAwbDI4LjMgMjguM2MzLjEgMy4xIDMuMSA4LjEgMCAxMS4zem00My01Mi40bC0zMS4xLTMxLjFhOC4wMyA4LjAzIDAgMCAxIDAtMTEuM2w1Ni42LTU2LjZjMy4xLTMuMSA4LjItMy4xIDExLjMgMGwzMS4xIDMxLjFjMy4xIDMuMSAzLjEgOC4yIDAgMTEuM2wtNTYuNiA1Ni42YTguMDMgOC4wMyAwIDAgMS0xMS4zIDB6TTg0NiA1ODJjMCA0LjQtMy42IDgtOCA4aC04MGMtNC40IDAtOC0zLjYtOC04di00NGMwLTQuNCAzLjYtOCA4LThoODBjNC40IDAgOCAzLjYgOCA4djQ0eicpKTtcbmV4cG9ydHMuRGVsZXRlRmlsbCA9IGdldEljb24oJ2RlbGV0ZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NjQgMjU2SDczNnYtODBjMC0zNS4zLTI4LjctNjQtNjQtNjRIMzUyYy0zNS4zIDAtNjQgMjguNy02NCA2NHY4MEgxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjMyYzAgNC40IDMuNiA4IDggOGg2MC40bDI0LjcgNTIzYzEuNiAzNC4xIDI5LjggNjEgNjMuOSA2MWg0NTRjMzQuMiAwIDYyLjMtMjYuOCA2My45LTYxbDI0LjctNTIzSDg4OGM0LjQgMCA4LTMuNiA4LTh2LTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tMjAwIDBIMzYwdi03MmgzMDR2NzJ6JykpO1xuZXhwb3J0cy5EaWZmRmlsbCA9IGdldEljb24oJ2RpZmYnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODU0LjIgMzA2LjZMNjExLjMgNzIuOWMtNi01LjctMTMuOS04LjktMjIuMi04LjlIMjk2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDI3N2wyMTkgMjEwLjZWODI0YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LThWMzI5LjZjMC04LjctMy41LTE3LTkuOC0yM3pNNTUzLjQgMjAxLjRjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjcwNGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg1MTJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzk3LjNjMC04LjUtMy40LTE2LjYtOS40LTIyLjZMNTUzLjQgMjAxLjR6TTU2OCA3NTNjMCAzLjgtMy40IDctNy41IDdoLTIyNWMtNC4xIDAtNy41LTMuMi03LjUtN3YtNDJjMC0zLjggMy40LTcgNy41LTdoMjI1YzQuMSAwIDcuNSAzLjIgNy41IDd2NDJ6bTAtMjIwYzAgMy44LTMuNCA3LTcuNSA3SDQ3NnY4NC45YzAgMy45LTMuMSA3LjEtNyA3LjFoLTQyYy0zLjggMC03LTMuMi03LTcuMVY1NDBoLTg0LjVjLTQuMSAwLTcuNS0zLjItNy41LTd2LTQyYzAtMy45IDMuNC03IDcuNS03SDQyMHYtODQuOWMwLTMuOSAzLjItNy4xIDctNy4xaDQyYzMuOSAwIDcgMy4yIDcgNy4xVjQ4NGg4NC41YzQuMSAwIDcuNSAzLjEgNy41IDd2NDJ6JykpO1xuZXhwb3J0cy5EaW5ndGFsa0NpcmNsZUZpbGwgPSBnZXRJY29uKCdkaW5ndGFsay1jaXJjbGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTIyNyAzODUuM2MtMSA0LjItMy41IDEwLjQtNyAxNy44aC4xbC0uNC43Yy0yMC4zIDQzLjEtNzMuMSAxMjcuNy03My4xIDEyNy43cy0uMS0uMi0uMy0uNWwtMTUuNSAyNi44aDc0LjVMNTc1LjEgODEwbDMyLjMtMTI4aC01OC42bDIwLjQtODQuN2MtMTYuNSAzLjktMzUuOSA5LjQtNTkgMTYuOCAwIDAtMzEuMiAxOC4yLTg5LjktMzUgMCAwLTM5LjYtMzQuNy0xNi42LTQzLjQgOS44LTMuNyA0Ny40LTguNCA3Ny0xMi4zIDQwLTUuNCA2NC42LTguMiA2NC42LTguMlM0MjIgNTE3IDM5Mi43IDUxMi41Yy0yOS4zLTQuNi02Ni40LTUzLjEtNzQuMy05NS44IDAgMC0xMi4yLTIzLjQgMjYuMy0xMi4zIDM4LjUgMTEuMSAxOTcuOSA0My4yIDE5Ny45IDQzLjJzLTIwNy40LTYzLjMtMjIxLjItNzguN2MtMTMuOC0xNS40LTQwLjYtODQuMi0zNy4xLTEyNi41IDAgMCAxLjUtMTAuNSAxMi40LTcuNyAwIDAgMTUzLjMgNjkuNyAyNTguMSAxMDcuOSAxMDQuOCAzNy45IDE5NS45IDU3LjMgMTg0LjIgMTA2Ljd6JykpO1xuZXhwb3J0cy5EYXRhYmFzZUZpbGwgPSBnZXRJY29uKCdkYXRhYmFzZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004MzIgNjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnYyMjRoNzA0Vjk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyek0yODggMjMyYy0yMi4xIDAtNDAtMTcuOS00MC00MHMxNy45LTQwIDQwLTQwIDQwIDE3LjkgNDAgNDAtMTcuOSA0MC00MCA0MHpNMTYwIDkyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWNzA0SDE2MHYyMjR6bTEyOC0xMzZjMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDAtNDAtMTcuOS00MC00MCAxNy45LTQwIDQwLTQwek0xNjAgNjQwaDcwNFYzODRIMTYwdjI1NnptMTI4LTE2OGMyMi4xIDAgNDAgMTcuOSA0MCA0MHMtMTcuOSA0MC00MCA0MC00MC0xNy45LTQwLTQwIDE3LjktNDAgNDAtNDB6JykpO1xuZXhwb3J0cy5EaW5ndGFsa1NxdWFyZUZpbGwgPSBnZXRJY29uKCdkaW5ndGFsay1zcXVhcmUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek03MzkgNDQ5LjNjLTEgNC4yLTMuNSAxMC40LTcgMTcuOGguMWwtLjQuN2MtMjAuMyA0My4xLTczLjEgMTI3LjctNzMuMSAxMjcuN3MtLjEtLjItLjMtLjVsLTE1LjUgMjYuOGg3NC41TDU3NS4xIDgxMGwzMi4zLTEyOGgtNTguNmwyMC40LTg0LjdjLTE2LjUgMy45LTM1LjkgOS40LTU5IDE2LjggMCAwLTMxLjIgMTguMi04OS45LTM1IDAgMC0zOS42LTM0LjctMTYuNi00My40IDkuOC0zLjcgNDcuNC04LjQgNzctMTIuMyA0MC01LjQgNjQuNi04LjIgNjQuNi04LjJTNDIyIDUxNyAzOTIuNyA1MTIuNWMtMjkuMy00LjYtNjYuNC01My4xLTc0LjMtOTUuOCAwIDAtMTIuMi0yMy40IDI2LjMtMTIuMyAzOC41IDExLjEgMTk3LjkgNDMuMiAxOTcuOSA0My4ycy0yMDcuNC02My4zLTIyMS4yLTc4LjdjLTEzLjgtMTUuNC00MC42LTg0LjItMzcuMS0xMjYuNSAwIDAgMS41LTEwLjUgMTIuNC03LjcgMCAwIDE1My4zIDY5LjcgMjU4LjEgMTA3LjkgMTA0LjggMzcuOSAxOTUuOSA1Ny4zIDE4NC4yIDEwNi43eicpKTtcbmV4cG9ydHMuRGlzbGlrZUZpbGwgPSBnZXRJY29uKCdkaXNsaWtlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4NS45IDQ5MC4zYzMuNi0xMiA1LjQtMjQuNCA1LjQtMzcgMC0yOC4zLTkuMy01NS41LTI2LjEtNzcuNyAzLjYtMTIgNS40LTI0LjQgNS40LTM3IDAtMjguMy05LjMtNTUuNS0yNi4xLTc3LjcgMy42LTEyIDUuNC0yNC40IDUuNC0zNyAwLTUxLjYtMzAuNy05OC4xLTc4LjMtMTE4LjRhNjYuMSA2Ni4xIDAgMCAwLTI2LjUtNS40SDI3M3Y0MjhoLjNsODUuOCAzMTAuOEMzNzIuOSA4ODkgNDE4LjkgOTI0IDQ3MC45IDkyNGMyOS43IDAgNTcuNC0xMS44IDc3LjktMzMuNCAyMC41LTIxLjUgMzEtNDkuNyAyOS41LTc5LjRsLTYtMTIyLjloMjM5LjljMTIuMSAwIDIzLjktMy4yIDM0LjMtOS4zIDQwLjQtMjMuNSA2NS41LTY2LjEgNjUuNS0xMTEgMC0yOC4zLTkuMy01NS41LTI2LjEtNzcuN3pNMTEyIDEzMnYzNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjVWMTAwaC02NWMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6JykpO1xuZXhwb3J0cy5Eb2xsYXJDaXJjbGVGaWxsID0gZ2V0SWNvbignZG9sbGFyLWNpcmNsZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMjIuMyA2NjUuMmwuMiAzMS43YzAgNC40LTMuNiA4LjEtOCA4LjFoLTI4LjRjLTQuNCAwLTgtMy42LTgtOHYtMzEuNEM0MDEuMyA3MjMgMzU5LjUgNjcyLjQgMzU1IDYxNy40Yy0uNC00LjcgMy4zLTguNyA4LTguN2g0Ni4yYzMuOSAwIDcuMyAyLjggNy45IDYuNiA1LjEgMzEuNyAyOS44IDU1LjQgNzQuMSA2MS4zVjUzMy45bC0yNC43LTYuM2MtNTIuMy0xMi41LTEwMi4xLTQ1LjEtMTAyLjEtMTEyLjcgMC03Mi45IDU1LjQtMTEyLjEgMTI2LjItMTE5di0zM2MwLTQuNCAzLjYtOCA4LThoMjguMWM0LjQgMCA4IDMuNiA4IDh2MzIuN2M2OC41IDYuOSAxMTkuOSA0Ni45IDEyNS45IDEwOS4yLjUgNC43LTMuMiA4LjgtOCA4LjhoLTQ0LjljLTQgMC03LjQtMy03LjktNi45LTQtMjkuMi0yNy40LTUzLTY1LjUtNTguMnYxMzQuM2wyNS40IDUuOWM2NC44IDE2IDEwOC45IDQ3IDEwOC45IDExNi40IDAgNzUuMy01NiAxMTcuMy0xMzQuMyAxMjQuMXpNNDI2LjYgNDEwLjNjMCAyNS40IDE1LjcgNDUuMSA0OS41IDU3LjMgNC43IDEuOSA5LjQgMy40IDE1IDV2LTEyNGMtMzYuOSA0LjctNjQuNSAyNS40LTY0LjUgNjEuN3ptMTE2LjUgMTM1LjJjLTIuOC0uNi01LjYtMS4zLTguOC0yLjJWNjc3YzQyLjYtMy44IDcyLTI3LjIgNzItNjYuNCAwLTMwLjctMTUuOS01MC43LTYzLjItNjUuMXonKSk7XG5leHBvcnRzLkRvd25DaXJjbGVGaWxsID0gZ2V0SWNvbignZG93bi1jaXJjbGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTE4NC41IDM1My43bC0xNzggMjQ2YTcuOTUgNy45NSAwIDAgMS0xMi45IDBsLTE3OC0yNDZjLTMuOC01LjMgMC0xMi43IDYuNS0xMi43SDM4MWMxMC4yIDAgMTkuOSA0LjkgMjUuOSAxMy4yTDUxMiA1NjMuNmwxMDUuMi0xNDUuNGM2LTguMyAxNS42LTEzLjIgMjUuOS0xMy4ySDY5MGM2LjUgMCAxMC4zIDcuNCA2LjUgMTIuN3onKSk7XG5leHBvcnRzLkRvd25TcXVhcmVGaWxsID0gZ2V0SWNvbignZG93bi1zcXVhcmUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek02OTYuNSA0MTIuN2wtMTc4IDI0NmE3Ljk1IDcuOTUgMCAwIDEtMTIuOSAwbC0xNzgtMjQ2Yy0zLjgtNS4zIDAtMTIuNyA2LjUtMTIuN0gzODFjMTAuMiAwIDE5LjkgNC45IDI1LjkgMTMuMkw1MTIgNTU4LjZsMTA1LjItMTQ1LjRjNi04LjMgMTUuNi0xMy4yIDI1LjktMTMuMkg2OTBjNi41IDAgMTAuMyA3LjQgNi41IDEyLjd6JykpO1xuZXhwb3J0cy5EcmliYmJsZUNpcmNsZUZpbGwgPSBnZXRJY29uKCdkcmliYmJsZS1jaXJjbGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNjc1LjEgMzI4LjNhMjQ1LjIgMjQ1LjIgMCAwIDAtMjIwLjgtNTUuMWM2LjggOS4xIDUxLjUgNjkuOSA5MS44IDE0NCA4Ny41LTMyLjggMTI0LjUtODIuNiAxMjktODguOXpNNTU0IDU1Mi44Yy0xMzguNyA0OC4zLTE4OC42IDE0NC42LTE5MyAxNTMuNiA0MS43IDMyLjUgOTQuMSA1MS45IDE1MSA1MS45IDM0LjEgMCA2Ni42LTYuOSA5Ni4xLTE5LjUtMy43LTIxLjYtMTcuOS05Ni44LTUyLjUtMTg2LjZsLTEuNi42em00Ny43LTExLjljMzIuMiA4OC40IDQ1LjMgMTYwLjQgNDcuOCAxNzUuNCA1NS4yLTM3LjMgOTQuNS05Ni40IDEwNS40LTE2NC45LTguNC0yLjYtNzYuMS0yMi44LTE1My4yLTEwLjV6TTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDczNmMtMTU4LjggMC0yODgtMTI5LjItMjg4LTI4OHMxMjkuMi0yODggMjg4LTI4OCAyODggMTI5LjIgMjg4IDI4OC0xMjkuMiAyODgtMjg4IDI4OHptNTMuMS0zNDYuMmM1LjcgMTEuNyAxMS4yIDIzLjYgMTYuMyAzNS42IDEuOCA0LjIgMy42IDguNCA1LjMgMTIuNyA4MS44LTEwLjMgMTYzLjIgNi4yIDE3MS4zIDcuOS0uNS01OC4xLTIxLjMtMTExLjQtNTUuNS0xNTMuMy01LjMgNy4xLTQ2LjUgNjAtMTM3LjQgOTcuMXpNNDk4LjYgNDMyYy00MC44LTcyLjUtODQuNy0xMzMuNC05MS4yLTE0Mi4zLTY4LjggMzIuNS0xMjAuMyA5NS45LTEzNi4yIDE3Mi4yIDExIC4yIDExMi40LjcgMjI3LjQtMjkuOXptMzAuNiA4Mi41YzMuMi0xIDYuNC0yIDkuNy0yLjktNi4yLTE0LTEyLjktMjgtMTkuOS00MS43LTEyMi44IDM2LjgtMjQyLjEgMzUuMi0yNTIuOCAzNS0uMSAyLjUtLjEgNS0uMSA3LjUgMCA2My4yIDIzLjkgMTIwLjkgNjMuMiAxNjQuNSA1LjUtOS42IDczLTEyMS40IDE5OS45LTE2Mi40eicpKTtcbmV4cG9ydHMuRHJpYmJibGVTcXVhcmVGaWxsID0gZ2V0SWNvbignZHJpYmJibGUtc3F1YXJlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTQ5OC42IDQzMmMtNDAuOC03Mi41LTg0LjctMTMzLjQtOTEuMi0xNDIuMy02OC44IDMyLjUtMTIwLjMgOTUuOS0xMzYuMiAxNzIuMiAxMSAuMiAxMTIuNC43IDIyNy40LTI5Ljl6bTY2LjUgMjEuOGM1LjcgMTEuNyAxMS4yIDIzLjYgMTYuMyAzNS42IDEuOCA0LjIgMy42IDguNCA1LjMgMTIuNyA4MS44LTEwLjMgMTYzLjIgNi4yIDE3MS4zIDcuOS0uNS01OC4xLTIxLjMtMTExLjQtNTUuNS0xNTMuMy01LjMgNy4xLTQ2LjUgNjAtMTM3LjQgOTcuMXpNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek01MTIgODAwYy0xNTguOCAwLTI4OC0xMjkuMi0yODgtMjg4czEyOS4yLTI4OCAyODgtMjg4IDI4OCAxMjkuMiAyODggMjg4LTEyOS4yIDI4OC0yODggMjg4em04OS43LTI1OS4xYzMyLjIgODguNCA0NS4zIDE2MC40IDQ3LjggMTc1LjQgNTUuMi0zNy4zIDk0LjUtOTYuNCAxMDUuNC0xNjQuOS04LjQtMi42LTc2LjEtMjIuOC0xNTMuMi0xMC41em0tNzIuNS0yNi40YzMuMi0xIDYuNC0yIDkuNy0yLjktNi4yLTE0LTEyLjktMjgtMTkuOS00MS43LTEyMi44IDM2LjgtMjQyLjEgMzUuMi0yNTIuOCAzNS0uMSAyLjUtLjEgNS0uMSA3LjUgMCA2My4yIDIzLjkgMTIwLjkgNjMuMiAxNjQuNSA1LjUtOS42IDczLTEyMS40IDE5OS45LTE2Mi40em0xNDUuOS0xODYuMmEyNDUuMiAyNDUuMiAwIDAgMC0yMjAuOC01NS4xYzYuOCA5LjEgNTEuNSA2OS45IDkxLjggMTQ0IDg3LjUtMzIuOCAxMjQuNS04Mi42IDEyOS04OC45ek01NTQgNTUyLjhjLTEzOC43IDQ4LjMtMTg4LjYgMTQ0LjYtMTkzIDE1My42IDQxLjcgMzIuNSA5NC4xIDUxLjkgMTUxIDUxLjkgMzQuMSAwIDY2LjYtNi45IDk2LjEtMTkuNS0zLjctMjEuNi0xNy45LTk2LjgtNTIuNS0xODYuNmwtMS42LjZ6JykpO1xuZXhwb3J0cy5Ecm9wYm94Q2lyY2xlRmlsbCA9IGdldEljb24oJ2Ryb3Bib3gtY2lyY2xlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTY2My44IDQ1NS41em0tMTUxLjUtOTMuOGwtMTUxLjggOTMuOCAxNTEuOCA5My45IDE1MS41LTkzLjl6TTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0xNTEuMiA1OTUuNUw1MTIuNiA3NTBsLTE1MS05MC41di0zMy4xbDQ1LjQgMjkuNCAxMDUuNi04Ny43IDEwNS42IDg3LjcgNDUuMS0yOS40djMzLjF6bS00NS42LTIyLjRsLTEwNS4zLTg3LjdMNDA3IDYzNy4xbC0xNTEtOTkuMiAxMDQuNS04Mi40TDI1NiAzNzEuMiA0MDcgMjc0bDEwNS4zIDg3LjdMNjE3LjYgMjc0IDc2OCAzNzIuMWwtMTA0LjIgODMuNUw3NjggNTM5bC0xNTAuNCA5OC4xeicpKTtcbmV4cG9ydHMuRHJvcGJveFNxdWFyZUZpbGwgPSBnZXRJY29uKCdkcm9wYm94LXNxdWFyZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTY2My4yIDY1OS41TDUxMi42IDc1MGwtMTUxLTkwLjV2LTMzLjFsNDUuNCAyOS40IDEwNS42LTg3LjcgMTA1LjYgODcuNyA0NS4xLTI5LjR2MzMuMXptLTQ1LjYtMjIuNGwtMTA1LjMtODcuN0w0MDcgNjM3LjFsLTE1MS05OS4yIDEwNC41LTgyLjRMMjU2IDM3MS4yIDQwNyAyNzRsMTA1LjMgODcuN0w2MTcuNiAyNzQgNzY4IDM3Mi4xbC0xMDQuMiA4My41TDc2OCA1MzlsLTE1MC40IDk4LjF6TTUxMi4zIDM2MS43bC0xNTEuOCA5My44IDE1MS44IDkzLjkgMTUxLjUtOTMuOXptMTUxLjUgOTMuOHonKSk7XG5leHBvcnRzLkVudmlyb25tZW50RmlsbCA9IGdldEljb24oJ2Vudmlyb25tZW50JywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiAzMjdjLTI5LjkgMC01OCAxMS42LTc5LjIgMzIuOEExMTEuNiAxMTEuNiAwIDAgMCA0MDAgNDM5YzAgMjkuOSAxMS43IDU4IDMyLjggNzkuMkExMTEuNiAxMTEuNiAwIDAgMCA1MTIgNTUxYzI5LjkgMCA1OC0xMS43IDc5LjItMzIuOEM2MTIuNCA0OTcgNjI0IDQ2OC45IDYyNCA0MzljMC0yOS45LTExLjYtNTgtMzIuOC03OS4yUzU0MS45IDMyNyA1MTIgMzI3em0zNDIuNi0zNy45YTM2Mi40OSAzNjIuNDkgMCAwIDAtNzkuOS0xMTUuNyAzNzAuODMgMzcwLjgzIDAgMCAwLTExOC4yLTc3LjhDNjEwLjcgNzYuNiA1NjIuMSA2NyA1MTIgNjdjLTUwLjEgMC05OC43IDkuNi0xNDQuNSAyOC41LTQ0LjMgMTguMy04NCA0NC41LTExOC4yIDc3LjhBMzYzLjYgMzYzLjYgMCAwIDAgMTY5LjQgMjg5Yy0xOS41IDQ1LTI5LjQgOTIuOC0yOS40IDE0MiAwIDcwLjYgMTYuOSAxNDAuOSA1MC4xIDIwOC43IDI2LjcgNTQuNSA2NCAxMDcuNiAxMTEgMTU4LjEgODAuMyA4Ni4yIDE2NC41IDEzOC45IDE4OC40IDE1M2E0My45IDQzLjkgMCAwIDAgMjIuNCA2LjFjNy44IDAgMTUuNS0yIDIyLjQtNi4xIDIzLjktMTQuMSAxMDguMS02Ni44IDE4OC40LTE1MyA0Ny01MC40IDg0LjMtMTAzLjYgMTExLTE1OC4xQzg2Ny4xIDU3MiA4ODQgNTAxLjggODg0IDQzMS4xYzAtNDkuMi05LjktOTctMjkuNC0xNDJ6TTUxMiA2MTVjLTk3LjIgMC0xNzYtNzguOC0xNzYtMTc2czc4LjgtMTc2IDE3Ni0xNzYgMTc2IDc4LjggMTc2IDE3Ni03OC44IDE3Ni0xNzYgMTc2eicpKTtcbmV4cG9ydHMuRWRpdEZpbGwgPSBnZXRJY29uKCdlZGl0JywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MCA4MzZIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYzNmMwIDQuNCAzLjYgOCA4IDhoNzg0YzQuNCAwIDgtMy42IDgtOHYtMzZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS02MjIuMy04NGMyIDAgNC0uMiA2LS41TDQzMS45IDcyMmMyLS40IDMuOS0xLjMgNS4zLTIuOGw0MjMuOS00MjMuOWE5Ljk2IDkuOTYgMCAwIDAgMC0xNC4xTDY5NC45IDExNC45Yy0xLjktMS45LTQuNC0yLjktNy4xLTIuOXMtNS4yIDEtNy4xIDIuOUwyNTYuOCA1MzguOGMtMS41IDEuNS0yLjQgMy4zLTIuOCA1LjNsLTI5LjUgMTY4LjJhMzMuNSAzMy41IDAgMCAwIDkuNCAyOS44YzYuNiA2LjQgMTQuOSA5LjkgMjMuOCA5Ljl6JykpO1xuZXhwb3J0cy5FeGNsYW1hdGlvbkNpcmNsZUZpbGwgPSBnZXRJY29uKCdleGNsYW1hdGlvbi1jaXJjbGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bS0zMiAyMzJjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHYyNzJjMCA0LjQtMy42IDgtOCA4aC00OGMtNC40IDAtOC0zLjYtOC04VjI5NnptMzIgNDQwYTQ4LjAxIDQ4LjAxIDAgMCAxIDAtOTYgNDguMDEgNDguMDEgMCAwIDEgMCA5NnonKSk7XG5leHBvcnRzLkV1cm9DaXJjbGVGaWxsID0gZ2V0SWNvbignZXVyby1jaXJjbGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTYzLjUgMzc1LjhjNC40IDAgOCAzLjYgOCA4VjQ3NWMwIDQuNC0zLjYgOC04IDhoLTEzNmMtLjMgNC40LS4zIDkuMS0uMyAxMy44djM2aDEzNi4yYzQuNCAwIDggMy42IDggOFY1NjhjMCA0LjQtMy42IDgtOCA4SDQ0NC45YzE1LjMgNjIgNjEuMyA5OC42IDEyOS44IDk4LjYgMTkuOSAwIDM3LjEtMS4yIDUxLjgtNC4xIDQuOS0xIDkuNSAyLjggOS41IDcuOHY0Mi44YzAgMy44LTIuNyA3LTYuNCA3LjgtMTUuOSAzLjQtMzQuMyA1LjEtNTUuMyA1LjEtMTA5LjggMC0xODMtNTguOC0yMDAuMi0xNThIMzQ0Yy00LjQgMC04LTMuNi04LTh2LTI3LjJjMC00LjQgMy42LTggOC04aDI2LjF2LTM2LjljMC00LjQgMC04LjguMy0xMi44SDM0NGMtNC40IDAtOC0zLjYtOC04di0yNy4yYzAtNC40IDMuNi04IDgtOGgzMS43YzE5LjctOTQuMiA5Mi0xNDkuOSAxOTguNi0xNDkuOSAyMC45IDAgMzkuNCAxLjkgNTUuMyA1LjQgMy43LjggNi4zIDQgNi4zIDcuOFYzNDZoLjFjMCA1LjEtNC42IDguOC05LjYgNy44LTE0LjctMi45LTMxLjgtNC40LTUxLjctNC40LTY1LjQgMC0xMTAuNCAzMy41LTEyNy42IDkwLjRoMTI4LjR6JykpO1xuZXhwb3J0cy5FeHBlcmltZW50RmlsbCA9IGdldEljb24oJ2V4cGVyaW1lbnQnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMjE4LjkgNjM2LjNsNDIuNiAyNi42Yy4xLjEuMy4yLjQuM2wxMi43IDggLjMuM2ExODYuOSAxODYuOSAwIDAgMCA5NC4xIDI1LjFjNDQuOSAwIDg3LjItMTUuNyAxMjEtNDMuOGEyNTYuMjcgMjU2LjI3IDAgMCAxIDE2NC45LTU5LjljNTIuMyAwIDEwMi4yIDE1LjcgMTQ0LjYgNDQuNWw3LjkgNS0xMTEuNi0yODlWMTc5LjhoNjMuNWM0LjQgMCA4LTMuNiA4LThWMTIwYzAtNC40LTMuNi04LTgtOEgyNjQuN2MtNC40IDAtOCAzLjYtOCA4djUxLjljMCA0LjQgMy42IDggOCA4aDYzLjV2MTczLjZMMjE4LjkgNjM2LjN6bTMzMy0yMDMuMWMyMiAwIDM5LjkgMTcuOSAzOS45IDM5LjlTNTczLjkgNTEzIDU1MS45IDUxMyA1MTIgNDk1LjEgNTEyIDQ3My4xczE3LjktMzkuOSAzOS45LTM5Ljl6TTg3OCA4MjUuMWwtMjkuOS03Ny40LTg1LjctNTMuNS0uMS4xYy0uNy0uNS0xLjUtMS0yLjItMS41bC04LjEtNS0uMy0uM2MtMjktMTcuNS02Mi4zLTI2LjgtOTctMjYuOC00NC45IDAtODcuMiAxNS43LTEyMSA0My44YTI1Ni4yNyAyNTYuMjcgMCAwIDEtMTY0LjkgNTkuOWMtNTMgMC0xMDMuNS0xNi4xLTE0Ni4yLTQ1LjZsLTI4LjktMTguMUwxNDYgODI1LjFjLTIuOCA3LjQtNC4zIDE1LjItNC4zIDIzIDAgMzUuMiAyOC42IDYzLjggNjMuOCA2My44aDYxMi45YzcuOSAwIDE1LjctMS41IDIzLTQuM2E2My42IDYzLjYgMCAwIDAgMzYuNi04Mi41eicpKTtcbmV4cG9ydHMuRXllSW52aXNpYmxlRmlsbCA9IGdldEljb24oJ2V5ZS1pbnZpc2libGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTA4IDYyNGExMTIgMTEyIDAgMCAwIDExMi0xMTJjMC0zLjI4LS4xNS02LjUzLS40My05Ljc0TDQ5OC4yNiA2MjMuNTdjMy4yMS4yOCA2LjQ1LjQzIDkuNzQuNDN6bTM3MC43Mi00NTguNDRMODM2IDEyMi44OGE4IDggMCAwIDAtMTEuMzEgMEw3MTUuMzcgMjMyLjIzUTYyNC45MSAxODYgNTEyIDE4NnEtMjg4LjMgMC00MzAuMiAzMDAuM2E2MC4zIDYwLjMgMCAwIDAgMCA1MS41cTU2LjcgMTE5LjQzIDEzNi41NSAxOTEuNDVMMTEyLjU2IDgzNWE4IDggMCAwIDAgMCAxMS4zMUwxNTUuMjUgODg5YTggOCAwIDAgMCAxMS4zMSAwbDcxMi4xNi03MTIuMTJhOCA4IDAgMCAwIDAtMTEuMzJ6TTMzMiA1MTJhMTc2IDE3NiAwIDAgMSAyNTguODgtMTU1LjI4bC00OC42MiA0OC42MmExMTIuMDggMTEyLjA4IDAgMCAwLTE0MC45MiAxNDAuOTJsLTQ4LjYyIDQ4LjYyQTE3NS4wOSAxNzUuMDkgMCAwIDEgMzMyIDUxMnonLCAnTTk0Mi4yIDQ4Ni4yUTg4OS40IDM3NSA4MTYuNTEgMzA0Ljg1TDY3Mi4zNyA0NDlBMTc2LjA4IDE3Ni4wOCAwIDAgMSA0NDUgNjc2LjM3TDMyMi43NCA3OTguNjNRNDA3LjgyIDgzOCA1MTIgODM4cTI4OC4zIDAgNDMwLjItMzAwLjNhNjAuMjkgNjAuMjkgMCAwIDAgMC01MS41eicpKTtcbmV4cG9ydHMuRXllRmlsbCA9IGdldEljb24oJ2V5ZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ00zOTYgNTEyYTExMiAxMTIgMCAxIDAgMjI0IDAgMTEyIDExMiAwIDEgMC0yMjQgMHptNTQ2LjItMjUuOEM4NDcuNCAyODYuNSA3MDQuMSAxODYgNTEyIDE4NmMtMTkyLjIgMC0zMzUuNCAxMDAuNS00MzAuMiAzMDAuM2E2MC4zIDYwLjMgMCAwIDAgMCA1MS41QzE3Ni42IDczNy41IDMxOS45IDgzOCA1MTIgODM4YzE5Mi4yIDAgMzM1LjQtMTAwLjUgNDMwLjItMzAwLjMgNy43LTE2LjIgNy43LTM1IDAtNTEuNXpNNTA4IDY4OGMtOTcuMiAwLTE3Ni03OC44LTE3Ni0xNzZzNzguOC0xNzYgMTc2LTE3NiAxNzYgNzguOCAxNzYgMTc2LTc4LjggMTc2LTE3NiAxNzZ6JykpO1xuZXhwb3J0cy5GYWNlYm9va0ZpbGwgPSBnZXRJY29uKCdmYWNlYm9vaycsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS05Mi40IDIzMy41aC02My45Yy01MC4xIDAtNTkuOCAyMy44LTU5LjggNTguOHY3Ny4xaDExOS42bC0xNS42IDEyMC43aC0xMDRWOTEySDUzOS4yVjYwMi4ySDQzNC45VjQ4MS40aDEwNC4zdi04OWMwLTEwMy4zIDYzLjEtMTU5LjYgMTU1LjMtMTU5LjYgNDQuMiAwIDgyLjEgMy4zIDkzLjIgNC44djEwNy45eicpKTtcbmV4cG9ydHMuRmFzdEJhY2t3YXJkRmlsbCA9IGdldEljb24oJ2Zhc3QtYmFja3dhcmQnLCBmaWxsLCBnZXROb2RlKG5vcm1hbFZpZXdCb3gsICdNNTE3LjYgMjczLjVMMjMwLjIgNDk5LjNhMTYuMTQgMTYuMTQgMCAwIDAgMCAyNS40bDI4Ny40IDIyNS44YzEwLjcgOC40IDI2LjQuOCAyNi40LTEyLjdWMjg2LjJjMC0xMy41LTE1LjctMjEuMS0yNi40LTEyLjd6bTMyMCAwTDU1MC4yIDQ5OS4zYTE2LjE0IDE2LjE0IDAgMCAwIDAgMjUuNGwyODcuNCAyMjUuOGMxMC43IDguNCAyNi40LjggMjYuNC0xMi43VjI4Ni4yYzAtMTMuNS0xNS43LTIxLjEtMjYuNC0xMi43em0tNjIwLTI1LjVoLTUxLjJjLTMuNSAwLTYuNCAyLjctNi40IDZ2NTE2YzAgMy4zIDIuOSA2IDYuNCA2aDUxLjJjMy41IDAgNi40LTIuNyA2LjQtNlYyNTRjMC0zLjMtMi45LTYtNi40LTZ6JykpO1xuZXhwb3J0cy5GYXN0Rm9yd2FyZEZpbGwgPSBnZXRJY29uKCdmYXN0LWZvcndhcmQnLCBmaWxsLCBnZXROb2RlKG5vcm1hbFZpZXdCb3gsICdNNzkzLjggNDk5LjNMNTA2LjQgMjczLjVjLTEwLjctOC40LTI2LjQtLjgtMjYuNCAxMi43djQ1MS42YzAgMTMuNSAxNS43IDIxLjEgMjYuNCAxMi43bDI4Ny40LTIyNS44YTE2LjE0IDE2LjE0IDAgMCAwIDAtMjUuNHptLTMyMCAwTDE4Ni40IDI3My41Yy0xMC43LTguNC0yNi40LS44LTI2LjQgMTIuN3Y0NTEuNWMwIDEzLjUgMTUuNyAyMS4xIDI2LjQgMTIuN2wyODcuNC0yMjUuOGM0LjEtMy4yIDYuMi04IDYuMi0xMi43IDAtNC42LTIuMS05LjQtNi4yLTEyLjZ6TTg1Ny42IDI0OGgtNTEuMmMtMy41IDAtNi40IDIuNy02LjQgNnY1MTZjMCAzLjMgMi45IDYgNi40IDZoNTEuMmMzLjUgMCA2LjQtMi43IDYuNC02VjI1NGMwLTMuMy0yLjktNi02LjQtNnonKSk7XG5leHBvcnRzLkZpbGVBZGRGaWxsID0gZ2V0SWNvbignZmlsZS1hZGQnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNDgwIDU4MEgzNzJhOCA4IDAgMCAwLTggOHY0OGE4IDggMCAwIDAgOCA4aDEwOHYxMDhhOCA4IDAgMCAwIDggOGg0OGE4IDggMCAwIDAgOC04VjY0NGgxMDhhOCA4IDAgMCAwIDgtOHYtNDhhOCA4IDAgMCAwLTgtOEg1NDRWNDcyYTggOCAwIDAgMC04LThoLTQ4YTggOCAwIDAgMC04IDh2MTA4em0zNzQuNi0yOTEuM2M2IDYgOS40IDE0LjEgOS40IDIyLjZWOTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMySDE5MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWOTZjMC0xNy43IDE0LjMtMzIgMzItMzJoNDI0LjdjOC41IDAgMTYuNyAzLjQgMjIuNyA5LjRsMjE1LjIgMjE1LjN6TTc5MC4yIDMyNkw2MDIgMTM3LjhWMzI2aDE4OC4yeicpKTtcbmV4cG9ydHMuRmlsZUV4Y2VsRmlsbCA9IGdldEljb24oJ2ZpbGUtZXhjZWwnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODU0LjYgMjg4LjdjNiA2IDkuNCAxNC4xIDkuNCAyMi42VjkyOGMwIDE3LjctMTQuMyAzMi0zMiAzMkgxOTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyaDQyNC43YzguNSAwIDE2LjcgMy40IDIyLjcgOS40bDIxNS4yIDIxNS4zek03OTAuMiAzMjZMNjAyIDEzNy44VjMyNmgxODguMnpNNTc1LjM0IDQ3Ny44NGwtNjEuMjIgMTAyLjNMNDUyLjMgNDc3LjhhMTIgMTIgMCAwIDAtMTAuMjctNS43OWgtMzguNDRhMTIgMTIgMCAwIDAtNi40IDEuODUgMTIgMTIgMCAwIDAtMy43NSAxNi41Nmw4Mi4zNCAxMzAuNDItODMuNDUgMTMyLjc4YTEyIDEyIDAgMCAwLTEuODQgNi4zOSAxMiAxMiAwIDAgMCAxMiAxMmgzNC40NmExMiAxMiAwIDAgMCAxMC4yMS01LjdsNjIuNy0xMDEuNDcgNjIuMyAxMDEuNDVhMTIgMTIgMCAwIDAgMTAuMjMgNS43MmgzNy40OGExMiAxMiAwIDAgMCA2LjQ4LTEuOSAxMiAxMiAwIDAgMCAzLjYyLTE2LjU4bC04My44My0xMzAuNTUgODUuMy0xMzIuNDdhMTIgMTIgMCAwIDAgMS45LTYuNSAxMiAxMiAwIDAgMC0xMi0xMmgtMzUuN2ExMiAxMiAwIDAgMC0xMC4yOSA1Ljg0eicpKTtcbmV4cG9ydHMuRmlsZUV4Y2xhbWF0aW9uRmlsbCA9IGdldEljb24oJ2ZpbGUtZXhjbGFtYXRpb24nLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODU0LjYgMjg4LjdjNiA2IDkuNCAxNC4xIDkuNCAyMi42VjkyOGMwIDE3LjctMTQuMyAzMi0zMiAzMkgxOTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyaDQyNC43YzguNSAwIDE2LjcgMy40IDIyLjcgOS40bDIxNS4yIDIxNS4zek03OTAuMiAzMjZMNjAyIDEzNy44VjMyNmgxODguMnpNNTEyIDc4NGE0MCA0MCAwIDEgMCAwLTgwIDQwIDQwIDAgMCAwIDAgODB6bTMyLTE1MlY0NDhhOCA4IDAgMCAwLTgtOGgtNDhhOCA4IDAgMCAwLTggOHYxODRhOCA4IDAgMCAwIDggOGg0OGE4IDggMCAwIDAgOC04eicpKTtcbmV4cG9ydHMuRmlsZUltYWdlRmlsbCA9IGdldEljb24oJ2ZpbGUtaW1hZ2UnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODU0LjYgMjg4LjdMNjM5LjQgNzMuNGMtNi02LTE0LjItOS40LTIyLjctOS40SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlYzMTEuM2MwLTguNS0zLjQtMTYuNi05LjQtMjIuNnpNNDAwIDQwMmMyMi4xIDAgNDAgMTcuOSA0MCA0MHMtMTcuOSA0MC00MCA0MC00MC0xNy45LTQwLTQwIDE3LjktNDAgNDAtNDB6bTI5NiAyOTRIMzI4Yy02LjcgMC0xMC40LTcuNy02LjMtMTIuOWw5OS44LTEyNy4yYTggOCAwIDAgMSAxMi42IDBsNDEuMSA1Mi40IDc3LjgtOTkuMmE4IDggMCAwIDEgMTIuNiAwbDEzNi41IDE3NGM0LjMgNS4yLjUgMTIuOS02LjEgMTIuOXptLTk0LTM3MFYxMzcuOEw3OTAuMiAzMjZINjAyeicpKTtcbmV4cG9ydHMuRmlsZU1hcmtkb3duRmlsbCA9IGdldEljb24oJ2ZpbGUtbWFya2Rvd24nLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODU0LjYgMjg4LjdjNiA2IDkuNCAxNC4xIDkuNCAyMi42VjkyOGMwIDE3LjctMTQuMyAzMi0zMiAzMkgxOTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyaDQyNC43YzguNSAwIDE2LjcgMy40IDIyLjcgOS40bDIxNS4yIDIxNS4zek03OTAuMiAzMjZMNjAyIDEzNy44VjMyNmgxODguMnpNNDI2LjEzIDYwMC45M2w1OS4xMSAxMzIuOTdhMTYgMTYgMCAwIDAgMTQuNjIgOS41aDI0LjA2YTE2IDE2IDAgMCAwIDE0LjYzLTkuNTFsNTkuMS0xMzMuMzVWNzU4YTE2IDE2IDAgMCAwIDE2LjAxIDE2SDY0MWExNiAxNiAwIDAgMCAxNi0xNlY0ODZhMTYgMTYgMCAwIDAtMTYtMTZoLTM0Ljc1YTE2IDE2IDAgMCAwLTE0LjY3IDkuNjJMNTEyLjEgNjYyLjJsLTc5LjQ4LTE4Mi41OWExNiAxNiAwIDAgMC0xNC42Ny05LjYxSDM4M2ExNiAxNiAwIDAgMC0xNiAxNnYyNzJhMTYgMTYgMCAwIDAgMTYgMTZoMjcuMTNhMTYgMTYgMCAwIDAgMTYtMTZWNjAwLjkzeicpKTtcbmV4cG9ydHMuRmlsZVBkZkZpbGwgPSBnZXRJY29uKCdmaWxlLXBkZicsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NTQuNiAyODguN2M2IDYgOS40IDE0LjEgOS40IDIyLjZWOTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMySDE5MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWOTZjMC0xNy43IDE0LjMtMzIgMzItMzJoNDI0LjdjOC41IDAgMTYuNyAzLjQgMjIuNyA5LjRsMjE1LjIgMjE1LjN6TTc5MC4yIDMyNkw2MDIgMTM3LjhWMzI2aDE4OC4yek02MzMuMjIgNjM3LjI2Yy0xNS4xOC0uNS0zMS4zMi42Ny00OS42NSAyLjk2LTI0LjMtMTQuOTktNDAuNjYtMzUuNTgtNTIuMjgtNjUuODNsMS4wNy00LjM4IDEuMjQtNS4xOGM0LjMtMTguMTMgNi42MS0zMS4zNiA3LjMtNDQuNy41Mi0xMC4wNy0uMDQtMTkuMzYtMS44My0yNy45Ny0zLjMtMTguNTktMTYuNDUtMjkuNDYtMzMuMDItMzAuMTMtMTUuNDUtLjYzLTI5LjY1IDgtMzMuMjggMjEuMzctNS45MSAyMS42Mi0yLjQ1IDUwLjA3IDEwLjA4IDk4LjU5LTE1Ljk2IDM4LjA1LTM3LjA1IDgyLjY2LTUxLjIgMTA3LjU0LTE4Ljg5IDkuNzQtMzMuNiAxOC42LTQ1Ljk2IDI4LjQyLTE2LjMgMTIuOTctMjYuNDggMjYuMy0yOS4yOCA0MC4zLTEuMzYgNi40OS42OSAxNC45NyA1LjM2IDIxLjkyIDUuMyA3Ljg4IDEzLjI4IDEzIDIyLjg1IDEzLjc0IDI0LjE1IDEuODcgNTMuODMtMjMuMDMgODYuNi03OS4yNiAzLjI5LTEuMSA2Ljc3LTIuMjYgMTEuMDItMy43bDExLjktNC4wMmM3LjUzLTIuNTQgMTIuOTktNC4zNiAxOC4zOS02LjExIDIzLjQtNy42MiA0MS4xLTEyLjQzIDU3LjItMTUuMTcgMjcuOTggMTQuOTggNjAuMzIgMjQuOCA4Mi4xIDI0LjggMTcuOTggMCAzMC4xMy05LjMyIDM0LjUyLTIzLjk5IDMuODUtMTIuODguOC0yNy44Mi03LjQ4LTM2LjA4LTguNTYtOC40MS0yNC4zLTEyLjQzLTQ1LjY1LTEzLjEyek0zODUuMjMgNzY1LjY4di0uMzZsLjEzLS4zNGE1NC44NiA1NC44NiAwIDAgMSA1LjYtMTAuNzZjNC4yOC02LjU4IDEwLjE3LTEzLjUgMTcuNDctMjAuODcgMy45Mi0zLjk1IDgtNy44IDEyLjc5LTEyLjEyIDEuMDctLjk2IDcuOTEtNy4wNSA5LjE5LTguMjVsMTEuMTctMTAuNC04LjEyIDEyLjkzYy0xMi4zMiAxOS42NC0yMy40NiAzMy43OC0zMyA0My0zLjUxIDMuNC02LjYgNS45LTkuMSA3LjUxYTE2LjQzIDE2LjQzIDAgMCAxLTIuNjEgMS40MmMtLjQxLjE3LS43Ny4yNy0xLjEzLjNhMi4yIDIuMiAwIDAgMS0xLjEyLS4xNSAyLjA3IDIuMDcgMCAwIDEtMS4yNy0xLjkxek01MTEuMTcgNTQ3LjRsLTIuMjYgNC0xLjQtNC4zOGMtMy4xLTkuODMtNS4zOC0yNC42NC02LjAxLTM4LS43Mi0xNS4yLjQ5LTI0LjMyIDUuMjktMjQuMzIgNi43NCAwIDkuODMgMTAuOCAxMC4wNyAyNy4wNS4yMiAxNC4yOC0yLjAzIDI5LjE0LTUuNyAzNS42NXptLTUuODEgNTguNDZsMS41My00LjA1IDIuMDkgMy44YzExLjY5IDIxLjI0IDI2Ljg2IDM4Ljk2IDQzLjU0IDUxLjMxbDMuNiAyLjY2LTQuMzkuOWMtMTYuMzMgMy4zOC0zMS41NCA4LjQ2LTUyLjM0IDE2Ljg1IDIuMTctLjg4LTIxLjYyIDguODYtMjcuNjQgMTEuMTdsLTUuMjUgMi4wMSAyLjgtNC44OGMxMi4zNS0yMS41IDIzLjc2LTQ3LjMyIDM2LjA1LTc5Ljc3em0xNTcuNjIgNzYuMjZjLTcuODYgMy4xLTI0Ljc4LjMzLTU0LjU3LTEyLjM5bC03LjU2LTMuMjIgOC4yLS42YzIzLjMtMS43MyAzOS44LS40NSA0OS40MiAzLjA3IDQuMSAxLjUgNi44MyAzLjM5IDguMDQgNS41NWE0LjY0IDQuNjQgMCAwIDEtMS4zNiA2LjMxIDYuNyA2LjcgMCAwIDEtMi4xNyAxLjI4eicpKTtcbmV4cG9ydHMuRmlsZVBwdEZpbGwgPSBnZXRJY29uKCdmaWxlLXBwdCcsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NTQuNiAyODguN2M2IDYgOS40IDE0LjEgOS40IDIyLjZWOTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMySDE5MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWOTZjMC0xNy43IDE0LjMtMzIgMzItMzJoNDI0LjdjOC41IDAgMTYuNyAzLjQgMjIuNyA5LjRsMjE1LjIgMjE1LjN6TTc5MC4yIDMyNkw2MDIgMTM3LjhWMzI2aDE4OC4yek00NjguNTMgNzYwdi05MS41NGg1OS4yN2M2MC41NyAwIDEwMC4yLTM5LjY1IDEwMC4yLTk4LjEyIDAtNTguMjItMzkuNTgtOTguMzQtOTkuOTgtOTguMzRINDI0YTEyIDEyIDAgMCAwLTEyIDEydjI3NmExMiAxMiAwIDAgMCAxMiAxMmgzMi41M2ExMiAxMiAwIDAgMCAxMi0xMnptMC0xMzkuMzNoMzQuOWM0Ny44MiAwIDY3LjE5LTEyLjkzIDY3LjE5LTUwLjMzIDAtMzIuMDUtMTguMTItNTAuMTItNDkuODctNTAuMTJoLTUyLjIydjEwMC40NXonKSk7XG5leHBvcnRzLkZpbGVUZXh0RmlsbCA9IGdldEljb24oJ2ZpbGUtdGV4dCcsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NTQuNiAyODguN2M2IDYgOS40IDE0LjEgOS40IDIyLjZWOTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMySDE5MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWOTZjMC0xNy43IDE0LjMtMzIgMzItMzJoNDI0LjdjOC41IDAgMTYuNyAzLjQgMjIuNyA5LjRsMjE1LjIgMjE1LjN6TTc5MC4yIDMyNkw2MDIgMTM3LjhWMzI2aDE4OC4yek0zMjAgNDgyYTggOCAwIDAgMC04IDh2NDhhOCA4IDAgMCAwIDggOGgzODRhOCA4IDAgMCAwIDgtOHYtNDhhOCA4IDAgMCAwLTgtOEgzMjB6bTAgMTM2YTggOCAwIDAgMC04IDh2NDhhOCA4IDAgMCAwIDggOGgxODRhOCA4IDAgMCAwIDgtOHYtNDhhOCA4IDAgMCAwLTgtOEgzMjB6JykpO1xuZXhwb3J0cy5GaWxlV29yZEZpbGwgPSBnZXRJY29uKCdmaWxlLXdvcmQnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODU0LjYgMjg4LjdjNiA2IDkuNCAxNC4xIDkuNCAyMi42VjkyOGMwIDE3LjctMTQuMyAzMi0zMiAzMkgxOTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyaDQyNC43YzguNSAwIDE2LjcgMy40IDIyLjcgOS40bDIxNS4yIDIxNS4zek03OTAuMiAzMjZMNjAyIDEzNy44VjMyNmgxODguMnpNNTEyIDU2Ni4xbDUyLjgxIDE5N2ExMiAxMiAwIDAgMCAxMS42IDguOWgzMS43N2ExMiAxMiAwIDAgMCAxMS42LTguODhsNzQuMzctMjc2YTEyIDEyIDAgMCAwIC40LTMuMTIgMTIgMTIgMCAwIDAtMTItMTJoLTM1LjU3YTEyIDEyIDAgMCAwLTExLjcgOS4zMWwtNDUuNzggMTk5LjEtNDkuNzYtMTk5LjMyQTEyIDEyIDAgMCAwIDUyOC4xIDQ3MmgtMzIuMmExMiAxMiAwIDAgMC0xMS42NCA5LjFMNDM0LjYgNjgwLjAxIDM4OC41IDQ4MS4zYTEyIDEyIDAgMCAwLTExLjY4LTkuMjloLTM1LjM5YTEyIDEyIDAgMCAwLTMuMTEuNDEgMTIgMTIgMCAwIDAtOC40NyAxNC43bDc0LjE3IDI3NkExMiAxMiAwIDAgMCA0MTUuNiA3NzJoMzEuOTlhMTIgMTIgMCAwIDAgMTEuNTktOC45bDUyLjgxLTE5N3onKSk7XG5leHBvcnRzLkZpbGVVbmtub3duRmlsbCA9IGdldEljb24oJ2ZpbGUtdW5rbm93bicsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NTQuNiAyODguN2M2IDYgOS40IDE0LjEgOS40IDIyLjZWOTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMySDE5MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWOTZjMC0xNy43IDE0LjMtMzIgMzItMzJoNDI0LjdjOC41IDAgMTYuNyAzLjQgMjIuNyA5LjRsMjE1LjIgMjE1LjN6TTc5MC4yIDMyNkw2MDIgMTM3LjhWMzI2aDE4OC4yek00MDIgNTQ5YzAgNS40IDQuNCA5LjUgOS44IDkuNWgzMi40YzUuNCAwIDkuOC00LjIgOS44LTkuNCAwLTI4LjIgMjUuOC01MS42IDU4LTUxLjZzNTggMjMuNCA1OCA1MS41YzAgMjUuMy0yMSA0Ny4yLTQ5LjMgNTAuOS0xOS4zIDIuOC0zNC41IDIwLjMtMzQuNyA0MC4xdjMyYzAgNS41IDQuNSAxMCAxMCAxMGgzMmM1LjUgMCAxMC00LjUgMTAtMTB2LTEyLjJjMC02IDQtMTEuNSA5LjctMTMuMyA0NC42LTE0LjQgNzUtNTQgNzQuMy05OC45LS44LTU1LjUtNDkuMi0xMDAuOC0xMDguNS0xMDEuNi02MS40LS43LTExMS41IDQ1LjYtMTExLjUgMTAzem0xMTAgMjI3YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAwIDAgMCA2NHonKSk7XG5leHBvcnRzLkZpbGVaaXBGaWxsID0gZ2V0SWNvbignZmlsZS16aXAnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODU0LjYgMjg4LjdjNiA2IDkuNCAxNC4xIDkuNCAyMi42VjkyOGMwIDE3LjctMTQuMyAzMi0zMiAzMkgxOTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyaDQyNC43YzguNSAwIDE2LjcgMy40IDIyLjcgOS40bDIxNS4yIDIxNS4zek03OTAuMiAzMjZMNjAyIDEzNy44VjMyNmgxODguMnpNMjk2IDEzNnY2NGg2NHYtNjRoLTY0em02NCA2NHY2NGg2NHYtNjRoLTY0em0tNjQgNjR2NjRoNjR2LTY0aC02NHptNjQgNjR2NjRoNjR2LTY0aC02NHptLTY0IDY0djY0aDY0di02NGgtNjR6bTY0IDY0djY0aDY0di02NGgtNjR6bS02NCA2NHY2NGg2NHYtNjRoLTY0em0wIDY0djE2MGgxMjhWNTg0SDI5NnptNDggNDhoMzJ2NjRoLTMydi02NHonKSk7XG5leHBvcnRzLkZpbGVGaWxsID0gZ2V0SWNvbignZmlsZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NTQuNiAyODguN2M2IDYgOS40IDE0LjEgOS40IDIyLjZWOTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMySDE5MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWOTZjMC0xNy43IDE0LjMtMzIgMzItMzJoNDI0LjdjOC41IDAgMTYuNyAzLjQgMjIuNyA5LjRsMjE1LjIgMjE1LjN6TTc5MC4yIDMyNkw2MDIgMTM3LjhWMzI2aDE4OC4yeicpKTtcbmV4cG9ydHMuRmlsdGVyRmlsbCA9IGdldEljb24oJ2ZpbHRlcicsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ00zNDkgODM4YzAgMTcuNyAxNC4yIDMyIDMxLjggMzJoMjYyLjRjMTcuNiAwIDMxLjgtMTQuMyAzMS44LTMyVjY0MkgzNDl2MTk2em01MzEuMS02ODRIMTQzLjljLTI0LjUgMC0zOS44IDI2LjctMjcuNSA0OGwyMjEuMyAzNzZoMzQ4LjhsMjIxLjMtMzc2YzEyLjEtMjEuMy0zLjItNDgtMjcuNy00OHonKSk7XG5leHBvcnRzLkZpcmVGaWxsID0gZ2V0SWNvbignZmlyZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004MzQuMSA0NjkuMkEzNDcuNDkgMzQ3LjQ5IDAgMCAwIDc1MS4yIDM1NGwtMjkuMS0yNi43YTguMDkgOC4wOSAwIDAgMC0xMyAzLjNsLTEzIDM3LjNjLTguMSAyMy40LTIzIDQ3LjMtNDQuMSA3MC44LTEuNCAxLjUtMyAxLjktNC4xIDItMS4xLjEtMi44LS4xLTQuMy0xLjUtMS40LTEuMi0yLjEtMy0yLTQuOCAzLjctNjAuMi0xNC4zLTEyOC4xLTUzLjctMjAyQzU1NS4zIDE3MSA1MTAgMTIzLjEgNDUzLjQgODkuN2wtNDEuMy0yNC4zYy01LjQtMy4yLTEyLjMgMS0xMiA3LjNsMi4yIDQ4YzEuNSAzMi44LTIuMyA2MS44LTExLjMgODUuOS0xMSAyOS41LTI2LjggNTYuOS00NyA4MS41YTI5NS42NCAyOTUuNjQgMCAwIDEtNDcuNSA0Ni4xIDM1Mi42IDM1Mi42IDAgMCAwLTEwMC4zIDEyMS41QTM0Ny43NSAzNDcuNzUgMCAwIDAgMTYwIDYxMGMwIDQ3LjIgOS4zIDkyLjkgMjcuNyAxMzZhMzQ5LjQgMzQ5LjQgMCAwIDAgNzUuNSAxMTAuOWMzMi40IDMyIDcwIDU3LjIgMTExLjkgNzQuN0M0MTguNSA5NDkuOCA0NjQuNSA5NTkgNTEyIDk1OXM5My41LTkuMiAxMzYuOS0yNy4zQTM0OC42IDM0OC42IDAgMCAwIDc2MC44IDg1N2MzMi40LTMyIDU3LjgtNjkuNCA3NS41LTExMC45YTM0NC4yIDM0NC4yIDAgMCAwIDI3LjctMTM2YzAtNDguOC0xMC05Ni4yLTI5LjktMTQwLjl6JykpO1xuZXhwb3J0cy5GbGFnRmlsbCA9IGdldEljb24oJ2ZsYWcnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDMwNUg2MjRWMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMySDE4NHYtNDBjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djc4NGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04VjY0MGgyNDh2MTEzYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDQxNmMxNy43IDAgMzItMTQuMyAzMi0zMlYzMzdjMC0xNy43LTE0LjMtMzItMzItMzJ6JykpO1xuZXhwb3J0cy5Gb2xkZXJBZGRGaWxsID0gZ2V0SWNvbignZm9sZGVyLWFkZCcsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMjk4LjRINTIxTDQwMy43IDE4Ni4yYTguMTUgOC4xNSAwIDAgMC01LjUtMi4ySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NTkyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYzMzAuNGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNjMyIDU3N2MwIDMuOC0zLjQgNy03LjUgN0g1NDB2ODQuOWMwIDMuOS0zLjIgNy4xLTcgNy4xaC00MmMtMy44IDAtNy0zLjItNy03LjFWNTg0aC04NC41Yy00LjEgMC03LjUtMy4yLTcuNS03di00MmMwLTMuOCAzLjQtNyA3LjUtN0g0ODR2LTg0LjljMC0zLjkgMy4yLTcuMSA3LTcuMWg0MmMzLjggMCA3IDMuMiA3IDcuMVY1MjhoODQuNWM0LjEgMCA3LjUgMy4yIDcuNSA3djQyeicpKTtcbmV4cG9ydHMuRm9sZGVyRmlsbCA9IGdldEljb24oJ2ZvbGRlcicsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMjk4LjRINTIxTDQwMy43IDE4Ni4yYTguMTUgOC4xNSAwIDAgMC01LjUtMi4ySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NTkyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYzMzAuNGMwLTE3LjctMTQuMy0zMi0zMi0zMnonKSk7XG5leHBvcnRzLkZvbGRlck9wZW5GaWxsID0gZ2V0SWNvbignZm9sZGVyLW9wZW4nLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTI4IDQ0NEg4MjBWMzMwLjRjMC0xNy43LTE0LjMtMzItMzItMzJINDczTDM1NS43IDE4Ni4yYTguMTUgOC4xNSAwIDAgMC01LjUtMi4ySDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY1OTJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjk4YzEzIDAgMjQuOC03LjkgMjkuNy0yMGwxMzQtMzMyYzEuNS0zLjggMi4zLTcuOSAyLjMtMTIgMC0xNy43LTE0LjMtMzItMzItMzJ6bS0xODAgMEgyMzhjLTEzIDAtMjQuOCA3LjktMjkuNyAyMEwxMzYgNjQzLjJWMjU2aDE4OC41bDExOS42IDExNC40SDc0OFY0NDR6JykpO1xuZXhwb3J0cy5Gb3J3YXJkRmlsbCA9IGdldEljb24oJ2ZvcndhcmQnLCBmaWxsLCBnZXROb2RlKG5vcm1hbFZpZXdCb3gsICdNODI1LjggNDk4TDUzOC40IDI0OS45Yy0xMC43LTkuMi0yNi40LS45LTI2LjQgMTR2NDk2LjNjMCAxNC45IDE1LjcgMjMuMiAyNi40IDE0TDgyNS44IDUyNmM4LjMtNy4yIDguMy0yMC44IDAtMjh6bS0zMjAgMEwyMTguNCAyNDkuOWMtMTAuNy05LjItMjYuNC0uOS0yNi40IDE0djQ5Ni4zYzAgMTQuOSAxNS43IDIzLjIgMjYuNCAxNEw1MDUuOCA1MjZjNC4xLTMuNiA2LjItOC44IDYuMi0xNCAwLTUuMi0yLjEtMTAuNC02LjItMTR6JykpO1xuZXhwb3J0cy5Gcm93bkZpbGwgPSBnZXRJY29uKCdmcm93bicsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHpNMjg4IDQyMWE0OC4wMSA0OC4wMSAwIDAgMSA5NiAwIDQ4LjAxIDQ4LjAxIDAgMCAxLTk2IDB6bTM3NiAyNzJoLTQ4LjFjLTQuMiAwLTcuOC0zLjItOC4xLTcuNEM2MDQgNjM2LjEgNTYyLjUgNTk3IDUxMiA1OTdzLTkyLjEgMzkuMS05NS44IDg4LjZjLS4zIDQuMi0zLjkgNy40LTguMSA3LjRIMzYwYTggOCAwIDAgMS04LTguNGM0LjQtODQuMyA3NC41LTE1MS42IDE2MC0xNTEuNnMxNTUuNiA2Ny4zIDE2MCAxNTEuNmE4IDggMCAwIDEtOCA4LjR6bTI0LTIyNGE0OC4wMSA0OC4wMSAwIDAgMSAwLTk2IDQ4LjAxIDQ4LjAxIDAgMCAxIDAgOTZ6JykpO1xuZXhwb3J0cy5GdW5kRmlsbCA9IGdldEljb24oJ2Z1bmQnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTI2IDE2NEg5NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjQwYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDgzMmMxNy43IDAgMzItMTQuMyAzMi0zMlYxOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS05Mi4zIDE5NC40bC0yOTcgMjk3LjJhOC4wMyA4LjAzIDAgMCAxLTExLjMgMEw0MTAuOSA1NDEuMSAyMzguNCA3MTMuN2E4LjAzIDguMDMgMCAwIDEtMTEuMyAwbC0zNi44LTM2LjhhOC4wMyA4LjAzIDAgMCAxIDAtMTEuM2wyMTQuOS0yMTVjMy4xLTMuMSA4LjItMy4xIDExLjMgMEw1MzEgNTY1bDI1NC41LTI1NC42YzMuMS0zLjEgOC4yLTMuMSAxMS4zIDBsMzYuOCAzNi44YzMuMiAzIDMuMiA4LjEuMSAxMS4yeicpKTtcbmV4cG9ydHMuRnVubmVsUGxvdEZpbGwgPSBnZXRJY29uKCdmdW5uZWwtcGxvdCcsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ00zMzYuNyA1ODZoMzUwLjZsODQuOS0xNDhIMjUxLjh6bTU0My40LTQzMkgxNDMuOWMtMjQuNSAwLTM5LjggMjYuNy0yNy41IDQ4TDIxNSAzNzRoNTk0bDk4LjctMTcyYzEyLjItMjEuMy0zLjEtNDgtMjcuNi00OHpNMzQ5IDgzOGMwIDE3LjcgMTQuMiAzMiAzMS44IDMyaDI2Mi40YzE3LjYgMCAzMS44LTE0LjMgMzEuOC0zMlY2NTBIMzQ5djE4OHonKSk7XG5leHBvcnRzLkdpZnRGaWxsID0gZ2V0SWNvbignZ2lmdCcsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ00xNjAgODk0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDI4NlY1NTBIMTYwdjM0NHptMzg2IDMyaDI4NmMxNy43IDAgMzItMTQuMyAzMi0zMlY1NTBINTQ2djM3NnptMzM0LTYxNkg3MzIuNGMxMy42LTIxLjQgMjEuNi00Ni44IDIxLjYtNzQgMC03Ni4xLTYxLjktMTM4LTEzOC0xMzgtNDEuNCAwLTc4LjcgMTguNC0xMDQgNDcuNC0yNS4zLTI5LTYyLjYtNDcuNC0xMDQtNDcuNC03Ni4xIDAtMTM4IDYxLjktMTM4IDEzOCAwIDI3LjIgNy45IDUyLjYgMjEuNiA3NEgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjE0MGgzNjZWMzEwaDY4djE3MmgzNjZWMzQyYzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAyLTRoLTcwYy0zOC42IDAtNzAtMzEuNC03MC03MHMzMS40LTcwIDcwLTcwIDcwIDMxLjQgNzAgNzB2NzB6bTEzOCAwaC03MHYtNzBjMC0zOC42IDMxLjQtNzAgNzAtNzBzNzAgMzEuNCA3MCA3MC0zMS40IDcwLTcwIDcweicpKTtcbmV4cG9ydHMuR2l0aHViRmlsbCA9IGdldEljb24oJ2dpdGh1YicsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTEuNiA3Ni4zQzI2NC4zIDc2LjIgNjQgMjc2LjQgNjQgNTIzLjUgNjQgNzE4LjkgMTg5LjMgODg1IDM2My44IDk0NmMyMy41IDUuOSAxOS45LTEwLjggMTkuOS0yMi4ydi03Ny41Yy0xMzUuNyAxNS45LTE0MS4yLTczLjktMTUwLjMtODguOUMyMTUgNzI2IDE3MS41IDcxOCAxODQuNSA3MDNjMzAuOS0xNS45IDYyLjQgNCA5OC45IDU3LjkgMjYuNCAzOS4xIDc3LjkgMzIuNSAxMDQgMjYgNS43LTIzLjUgMTcuOS00NC41IDM0LjctNjAuOC0xNDAuNi0yNS4yLTE5OS4yLTExMS0xOTkuMi0yMTMgMC00OS41IDE2LjMtOTUgNDguMy0xMzEuNy0yMC40LTYwLjUgMS45LTExMi4zIDQuOS0xMjAgNTguMS01LjIgMTE4LjUgNDEuNiAxMjMuMiA0NS4zIDMzLTguOSA3MC43LTEzLjYgMTEyLjktMTMuNiA0Mi40IDAgODAuMiA0LjkgMTEzLjUgMTMuOSAxMS4zLTguNiA2Ny4zLTQ4LjggMTIxLjMtNDMuOSAyLjkgNy43IDI0LjcgNTguMyA1LjUgMTE4IDMyLjQgMzYuOCA0OC45IDgyLjcgNDguOSAxMzIuMyAwIDEwMi4yLTU5IDE4OC4xLTIwMCAyMTIuOWExMjcuNSAxMjcuNSAwIDAgMSAzOC4xIDkxdjExMi41Yy44IDkgMCAxNy45IDE1IDE3LjkgMTc3LjEtNTkuNyAzMDQuNi0yMjcgMzA0LjYtNDI0LjEgMC0yNDcuMi0yMDAuNC00NDcuMy00NDcuNS00NDcuM3onKSk7XG5leHBvcnRzLkdpdGxhYkZpbGwgPSBnZXRJY29uKCdnaXRsYWInLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTEwLjUgNTUzLjJsLTEwOS0zNzAuOGMtNi44LTIwLjQtMjMuMS0zNC4xLTQ0LjktMzQuMXMtMzkuNSAxMi4zLTQ2LjMgMzIuN2wtNzIuMiAyMTUuNEgzODYuMkwzMTQgMTgxLjFjLTYuOC0yMC40LTI0LjUtMzIuNy00Ni4zLTMyLjdzLTM5LjUgMTMuNi00NC45IDM0LjFMMTEzLjkgNTUzLjJjLTQuMSAxMy42IDEuNCAyOC42IDEyLjMgMzYuOGwzODUuNCAyODkgMzg2LjctMjg5YzEwLjgtOC4xIDE2LjMtMjMuMSAxMi4yLTM2Ljh6JykpO1xuZXhwb3J0cy5Hb2xkZW5GaWxsID0gZ2V0SWNvbignZ29sZGVuJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkwNS45IDgwNi43bC00MC4yLTI0OGMtLjYtMy45LTQtNi43LTcuOS02LjdINTk2LjJjLTMuOSAwLTcuMyAyLjgtNy45IDYuN2wtNDAuMiAyNDhjLS4xLjQtLjEuOS0uMSAxLjMgMCA0LjQgMy42IDggOCA4aDM0MmMuNCAwIC45IDAgMS4zLS4xIDQuMy0uNyA3LjMtNC44IDYuNi05LjJ6bS00NzAuMi0yNDhjLS42LTMuOS00LTYuNy03LjktNi43SDE2Ni4yYy0zLjkgMC03LjMgMi44LTcuOSA2LjdsLTQwLjIgMjQ4Yy0uMS40LS4xLjktLjEgMS4zIDAgNC40IDMuNiA4IDggOGgzNDJjLjQgMCAuOSAwIDEuMy0uMSA0LjQtLjcgNy4zLTQuOCA2LjYtOS4ybC00MC4yLTI0OHpNMzQyIDQ3MmgzNDJjLjQgMCAuOSAwIDEuMy0uMSA0LjQtLjcgNy4zLTQuOCA2LjYtOS4ybC00MC4yLTI0OGMtLjYtMy45LTQtNi43LTcuOS02LjdIMzgyLjJjLTMuOSAwLTcuMyAyLjgtNy45IDYuN2wtNDAuMiAyNDhjLS4xLjQtLjEuOS0uMSAxLjMgMCA0LjQgMy42IDggOCA4eicpKTtcbmV4cG9ydHMuR29vZ2xlQ2lyY2xlRmlsbCA9IGdldEljb24oJ2dvb2dsZS1jaXJjbGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTE2NyA2MzMuNkM2MzguNCA3MzUgNTgzIDc1NyA1MTYuOSA3NTdjLTk1LjcgMC0xNzguNS01NC45LTIxOC44LTEzNC45QzI4MS41IDU4OSAyNzIgNTUxLjYgMjcyIDUxMnM5LjUtNzcgMjYuMS0xMTAuMWM0MC4zLTgwLjEgMTIzLjEtMTM1IDIxOC44LTEzNSA2NiAwIDEyMS40IDI0LjMgMTYzLjkgNjMuOEw2MTAuNiA0MDFjLTI1LjQtMjQuMy01Ny43LTM2LjYtOTMuNi0zNi42LTYzLjggMC0xMTcuOCA0My4xLTEzNy4xIDEwMS00LjkgMTQuNy03LjcgMzAuNC03LjcgNDYuNnMyLjggMzEuOSA3LjcgNDYuNmMxOS4zIDU3LjkgNzMuMyAxMDEgMTM3IDEwMSAzMyAwIDYxLTguNyA4Mi45LTIzLjQgMjYtMTcuNCA0My4yLTQzLjMgNDguOS03NEg1MTYuOXYtOTQuOGgyMzAuN2MyLjkgMTYuMSA0LjQgMzIuOCA0LjQgNTAuMSAwIDc0LjctMjYuNyAxMzcuNC03MyAxODAuMXonKSk7XG5leHBvcnRzLkdvb2dsZVBsdXNDaXJjbGVGaWxsID0gZ2V0SWNvbignZ29vZ2xlLXBsdXMtY2lyY2xlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0zNi41IDU1OC44Yy00My45IDYxLjgtMTMyLjEgNzkuOC0yMDAuOSA1My4zLTY5LTI2LjMtMTE4LTk5LjItMTEyLjEtMTczLjUgMS41LTkwLjkgODUuMi0xNzAuNiAxNzYuMS0xNjcuNSA0My42LTIgODQuNiAxNi45IDExOCA0My42LTE0LjMgMTYuMi0yOSAzMS44LTQ0LjggNDYuMy00MC4xLTI3LjctOTcuMi0zNS42LTEzNy4zLTMuNi01Ny40IDM5LjctNjAgMTMzLjQtNC44IDE3Ni4xIDUzLjcgNDguNyAxNTUuMiAyNC41IDE3MC4xLTUwLjEtMzMuNi0uNS02Ny40IDAtMTAxLTEuMS0uMS0yMC4xLS4yLTQwLjEtLjEtNjAuMiA1Ni4yLS4yIDExMi41LS4zIDE2OC44LjIgMy4zIDQ3LjMtMyA5Ny41LTMyIDEzNi41ek03OTEgNTM2LjVjLTE2LjguMi0zMy42LjMtNTAuNC40LS4yIDE2LjgtLjMgMzMuNi0uMyA1MC40SDY5MGMtLjItMTYuOC0uMi0zMy41LS4zLTUwLjMtMTYuOC0uMi0zMy42LS4zLTUwLjQtLjV2LTUwLjFjMTYuOC0uMiAzMy42LS4zIDUwLjQtLjMuMS0xNi44LjMtMzMuNi40LTUwLjRoNTAuMmwuMyA1MC40YzE2LjguMiAzMy42LjIgNTAuNC4zdjUwLjF6JykpO1xuZXhwb3J0cy5Hb29nbGVQbHVzU3F1YXJlRmlsbCA9IGdldEljb24oJ2dvb2dsZS1wbHVzLXNxdWFyZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTU0OC41IDYyMi44Yy00My45IDYxLjgtMTMyLjEgNzkuOC0yMDAuOSA1My4zLTY5LTI2LjMtMTE4LTk5LjItMTEyLjEtMTczLjUgMS41LTkwLjkgODUuMi0xNzAuNiAxNzYuMS0xNjcuNSA0My42LTIgODQuNiAxNi45IDExOCA0My42LTE0LjMgMTYuMi0yOSAzMS44LTQ0LjggNDYuMy00MC4xLTI3LjctOTcuMi0zNS42LTEzNy4zLTMuNi01Ny40IDM5LjctNjAgMTMzLjQtNC44IDE3Ni4xIDUzLjcgNDguNyAxNTUuMiAyNC41IDE3MC4xLTUwLjEtMzMuNi0uNS02Ny40IDAtMTAxLTEuMS0uMS0yMC4xLS4yLTQwLjEtLjEtNjAuMiA1Ni4yLS4yIDExMi41LS4zIDE2OC44LjIgMy4zIDQ3LjMtMyA5Ny41LTMyIDEzNi41ek03OTEgNTM2LjVjLTE2LjguMi0zMy42LjMtNTAuNC40LS4yIDE2LjgtLjMgMzMuNi0uMyA1MC40SDY5MGMtLjItMTYuOC0uMi0zMy41LS4zLTUwLjMtMTYuOC0uMi0zMy42LS4zLTUwLjQtLjV2LTUwLjFjMTYuOC0uMiAzMy42LS4zIDUwLjQtLjMuMS0xNi44LjMtMzMuNi40LTUwLjRoNTAuMmwuMyA1MC40YzE2LjguMiAzMy42LjIgNTAuNC4zdjUwLjF6JykpO1xuZXhwb3J0cy5Hb29nbGVTcXVhcmVGaWxsID0gZ2V0SWNvbignZ29vZ2xlLXNxdWFyZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTY3OSA2OTcuNkM2MzguNCA3MzUgNTgzIDc1NyA1MTYuOSA3NTdjLTk1LjcgMC0xNzguNS01NC45LTIxOC44LTEzNC45QTI0NS4wMiAyNDUuMDIgMCAwIDEgMjcyIDUxMmMwLTM5LjYgOS41LTc3IDI2LjEtMTEwLjEgNDAuMy04MC4xIDEyMy4xLTEzNSAyMTguOC0xMzUgNjYgMCAxMjEuNCAyNC4zIDE2My45IDYzLjhMNjEwLjYgNDAxYy0yNS40LTI0LjMtNTcuNy0zNi42LTkzLjYtMzYuNi02My44IDAtMTE3LjggNDMuMS0xMzcuMSAxMDEtNC45IDE0LjctNy43IDMwLjQtNy43IDQ2LjZzMi44IDMxLjkgNy43IDQ2LjZjMTkuMyA1Ny45IDczLjMgMTAxIDEzNyAxMDEgMzMgMCA2MS04LjcgODIuOS0yMy40IDI2LTE3LjQgNDMuMi00My4zIDQ4LjktNzRINTE2Ljl2LTk0LjhoMjMwLjdjMi45IDE2LjEgNC40IDMyLjggNC40IDUwLjEgMCA3NC43LTI2LjcgMTM3LjQtNzMgMTgwLjF6JykpO1xuZXhwb3J0cy5IZGRGaWxsID0gZ2V0SWNvbignaGRkJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTgzMiA2NEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjIyNGg3MDRWOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6TTQ1NiAyMTZjMCA0LjQtMy42IDgtOCA4SDI2NGMtNC40IDAtOC0zLjYtOC04di00OGMwLTQuNCAzLjYtOCA4LThoMTg0YzQuNCAwIDggMy42IDggOHY0OHpNMTYwIDkyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWNzA0SDE2MHYyMjR6bTU3Ni0xMzZjMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDAtNDAtMTcuOS00MC00MCAxNy45LTQwIDQwLTQwek0xNjAgNjQwaDcwNFYzODRIMTYwdjI1NnptOTYtMTUyYzAtNC40IDMuNi04IDgtOGgxODRjNC40IDAgOCAzLjYgOCA4djQ4YzAgNC40LTMuNiA4LTggOEgyNjRjLTQuNCAwLTgtMy42LTgtOHYtNDh6JykpO1xuZXhwb3J0cy5IZWFydEZpbGwgPSBnZXRJY29uKCdoZWFydCcsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MjMgMjgzLjZhMjYwLjA0IDI2MC4wNCAwIDAgMC01Ni45LTgyLjggMjY0LjQgMjY0LjQgMCAwIDAtODQtNTUuNUEyNjUuMzQgMjY1LjM0IDAgMCAwIDY3OS43IDEyNWMtNDkuMyAwLTk3LjQgMTMuNS0xMzkuMiAzOS0xMCA2LjEtMTkuNSAxMi44LTI4LjUgMjAuMS05LTcuMy0xOC41LTE0LTI4LjUtMjAuMS00MS44LTI1LjUtODkuOS0zOS0xMzkuMi0zOS0zNS41IDAtNjkuOSA2LjgtMTAyLjQgMjAuMy0zMS40IDEzLTU5LjcgMzEuNy04NCA1NS41YTI1OC40NCAyNTguNDQgMCAwIDAtNTYuOSA4Mi44Yy0xMy45IDMyLjMtMjEgNjYuNi0yMSAxMDEuOSAwIDMzLjMgNi44IDY4IDIwLjMgMTAzLjMgMTEuMyAyOS41IDI3LjUgNjAuMSA0OC4yIDkxIDMyLjggNDguOSA3Ny45IDk5LjkgMTMzLjkgMTUxLjYgOTIuOCA4NS43IDE4NC43IDE0NC45IDE4OC42IDE0Ny4zbDIzLjcgMTUuMmMxMC41IDYuNyAyNCA2LjcgMzQuNSAwbDIzLjctMTUuMmMzLjktMi41IDk1LjctNjEuNiAxODguNi0xNDcuMyA1Ni01MS43IDEwMS4xLTEwMi43IDEzMy45LTE1MS42IDIwLjctMzAuOSAzNy02MS41IDQ4LjItOTEgMTMuNS0zNS4zIDIwLjMtNzAgMjAuMy0xMDMuMy4xLTM1LjMtNy02OS42LTIwLjktMTAxLjl6JykpO1xuZXhwb3J0cy5IaWdobGlnaHRGaWxsID0gZ2V0SWNvbignaGlnaGxpZ2h0JywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTk1Ny42IDUwNy40TDYwMy4yIDE1OC4yYTcuOSA3LjkgMCAwIDAtMTEuMiAwTDM1My4zIDM5My40YTguMDMgOC4wMyAwIDAgMC0uMSAxMS4zbC4xLjEgNDAgMzkuNC0xMTcuMiAxMTUuM2E4LjAzIDguMDMgMCAwIDAtLjEgMTEuM2wuMS4xIDM5LjUgMzguOS0xODkuMSAxODdINzIuMWMtNC40IDAtOC4xIDMuNi04LjEgOFY4NjBjMCA0LjQgMy42IDggOCA4aDM0NC45YzIuMSAwIDQuMS0uOCA1LjYtMi4zbDc2LjEtNzUuNiA0MC40IDM5LjhhNy45IDcuOSAwIDAgMCAxMS4yIDBsMTE3LjEtMTE1LjYgNDAuMSAzOS41YTcuOSA3LjkgMCAwIDAgMTEuMiAwbDIzOC43LTIzNS4yYzMuNC0zIDMuNC04IC4zLTExLjJ6JykpO1xuZXhwb3J0cy5Ib21lRmlsbCA9IGdldEljb24oJ2hvbWUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTQ2LjUgNTA1TDUzNC42IDkzLjRhMzEuOTMgMzEuOTMgMCAwIDAtNDUuMiAwTDc3LjUgNTA1Yy0xMiAxMi0xOC44IDI4LjMtMTguOCA0NS4zIDAgMzUuMyAyOC43IDY0IDY0IDY0aDQzLjRWOTA4YzAgMTcuNyAxNC4zIDMyIDMyIDMySDQ0OFY3MTZoMTEydjIyNGgyNjUuOWMxNy43IDAgMzItMTQuMyAzMi0zMlY2MTQuM2g0My40YzE3IDAgMzMuMy02LjcgNDUuMy0xOC44IDI0LjktMjUgMjQuOS02NS41LS4xLTkwLjV6JykpO1xuZXhwb3J0cy5Ib3VyZ2xhc3NGaWxsID0gZ2V0SWNvbignaG91cmdsYXNzJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTc0MiAzMThWMTg0aDg2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04SDE5NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg4NnYxMzRjMCA4MS41IDQyLjQgMTUzLjIgMTA2LjQgMTk0LTY0IDQwLjgtMTA2LjQgMTEyLjUtMTA2LjQgMTk0djEzNGgtODZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNjMyYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC04NlY3MDZjMC04MS41LTQyLjQtMTUzLjItMTA2LjQtMTk0IDY0LTQwLjggMTA2LjQtMTEyLjUgMTA2LjQtMTk0eicpKTtcbmV4cG9ydHMuSHRtbDVGaWxsID0gZ2V0SWNvbignaHRtbDUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMTQ1LjIgOTZsNjYgNzQ2LjZMNTEyIDkyOGwyOTkuNi04NS40TDg3OC45IDk2SDE0NS4yem01OTUgMTc3LjFsLTQuOCA0Ny4yLTEuNyAxOS41SDM4Mi4zbDguMiA5NC4yaDMzNS4xbC0zLjMgMjQuMy0yMS4yIDI0Mi4yLTEuNyAxNi4yLTE4NyA1MS42di4zaC0xLjJsLS4zLjF2LS4xaC0uMWwtMTg4LjYtNTJMMzEwLjggNTcyaDkxLjFsNi41IDczLjIgMTAyLjQgMjcuN2guNGwxMDItMjcuNiAxMS40LTExOC42SDUxMC45di0uMUgzMDZsLTIyLjgtMjUzLjUtMS43LTI0LjNoNDYwLjNsLTEuNiAyNC4zeicpKTtcbmV4cG9ydHMuSWRjYXJkRmlsbCA9IGdldEljb24oJ2lkY2FyZCcsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ00zNzMgNDExYy0yOC41IDAtNTEuNyAyMy4zLTUxLjcgNTJzMjMuMiA1MiA1MS43IDUyIDUxLjctMjMuMyA1MS43LTUyLTIzLjItNTItNTEuNy01MnptNTU1LTI1MUg5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjQwYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDgzMmMxNy43IDAgMzItMTQuMyAzMi0zMlYxOTJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTYwOCA0MjBjMC00LjQgMS04IDIuMy04aDEyMy40YzEuMyAwIDIuMyAzLjYgMi4zIDh2NDhjMCA0LjQtMSA4LTIuMyA4SDYxMC4zYy0xLjMgMC0yLjMtMy42LTIuMy04di00OHptLTg2IDI1M2gtNDMuOWMtNC4yIDAtNy42LTMuMy03LjktNy41LTMuOC01MC41LTQ2LTkwLjUtOTcuMi05MC41cy05My40IDQwLTk3LjIgOTAuNWMtLjMgNC4yLTMuNyA3LjUtNy45IDcuNUgyMjRhOCA4IDAgMCAxLTgtOC40YzIuOC01My4zIDMyLTk5LjcgNzQuNi0xMjYuMWExMTEuOCAxMTEuOCAwIDAgMS0yOS4xLTc1LjVjMC02MS45IDQ5LjktMTEyIDExMS40LTExMnMxMTEuNCA1MC4xIDExMS40IDExMmMwIDI5LjEtMTEgNTUuNS0yOS4xIDc1LjUgNDIuNyAyNi41IDcxLjggNzIuOCA3NC42IDEyNi4xLjQgNC42LTMuMiA4LjQtNy44IDguNHptMjc4LjktNTNINjE1LjFjLTMuOSAwLTcuMS0zLjYtNy4xLTh2LTQ4YzAtNC40IDMuMi04IDcuMS04aDE4NS43YzMuOSAwIDcuMSAzLjYgNy4xIDh2NDhoLjFjMCA0LjQtMy4yIDgtNy4xIDh6JykpO1xuZXhwb3J0cy5JZUNpcmNsZUZpbGwgPSBnZXRJY29uKCdpZS1jaXJjbGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNjkzLjYgMjg0LjRjLTI0IDAtNTEuMSAxMS43LTcyLjYgMjIgNDYuMyAxOCA4NiA1Ny4zIDExMi4zIDk5LjYgNy4xLTE4LjkgMTQuNi00Ny45IDE0LjYtNjcuOSAwLTMyLTIyLjgtNTMuNy01NC4zLTUzLjd6TTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0yNTMuOSA0OTIuOUg0MzcuMWMwIDEwMC40IDE0NC4zIDEzNiAxOTYuOCA0Ny40aDEyMC44Yy0zMi42IDkxLjctMTE5LjcgMTQ2LTIxNi44IDE0Ni0zNS4xIDAtNzAuMy0uMS0xMDEuNy0xNS42LTg3LjQgNDQuNS0xODAuMyA1Ni42LTE4MC4zLTQyIDAtNDUuOCAyMy4yLTEwNy4xIDQ0LTE0NUMzMzUgNDg0IDM4MS4zIDQyMi44IDQzNS42IDM3NC41Yy00My43IDE4LjktOTEuMSA2Ni4zLTEyMiAxMDEuMiAyNS45LTExMi44IDEyOS41LTE5My42IDIzNy4xLTE4Ni41IDEzMC01OS44IDIwOS43LTM0LjEgMjA5LjcgMzguNiAwIDI3LjQtMTAuNiA2My4zLTIxLjQgODcuOSAyNS4yIDQ1LjUgMzMuMyA5Ny42IDI2LjkgMTQxLjJ6TTU0MC41IDM5OS4xYy01My43IDAtMTAyIDM5LjctMTA0IDk0LjloMjA4Yy0yLTU1LjEtNTAuNi05NC45LTEwNC05NC45ek0zMjAuNiA2MDIuOWMtNzMgMTUyLjQgMTEuNSAxNzIuMiAxMDAuMyAxMjMuMy00Ni42LTI3LjUtODIuNi03Mi4yLTEwMC4zLTEyMy4zeicpKTtcbmV4cG9ydHMuSWVTcXVhcmVGaWxsID0gZ2V0SWNvbignaWUtc3F1YXJlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNzY1LjkgNTU2LjlINDM3LjFjMCAxMDAuNCAxNDQuMyAxMzYgMTk2LjggNDcuNGgxMjAuOGMtMzIuNiA5MS43LTExOS43IDE0Ni0yMTYuOCAxNDYtMzUuMSAwLTcwLjMtLjEtMTAxLjctMTUuNi04Ny40IDQ0LjUtMTgwLjMgNTYuNi0xODAuMy00MiAwLTQ1LjggMjMuMi0xMDcuMSA0NC0xNDVDMzM1IDQ4NCAzODEuMyA0MjIuOCA0MzUuNiAzNzQuNWMtNDMuNyAxOC45LTkxLjEgNjYuMy0xMjIgMTAxLjIgMjUuOS0xMTIuOCAxMjkuNS0xOTMuNiAyMzcuMS0xODYuNSAxMzAtNTkuOCAyMDkuNy0zNC4xIDIwOS43IDM4LjYgMCAyNy40LTEwLjYgNjMuMy0yMS40IDg3LjkgMjUuMiA0NS41IDMzLjMgOTcuNiAyNi45IDE0MS4yem0tNzIuMy0yNzIuNWMtMjQgMC01MS4xIDExLjctNzIuNiAyMiA0Ni4zIDE4IDg2IDU3LjMgMTEyLjMgOTkuNiA3LjEtMTguOSAxNC42LTQ3LjkgMTQuNi02Ny45IDAtMzItMjIuOC01My43LTU0LjMtNTMuN3pNNTQwLjUgMzk5LjFjLTUzLjcgMC0xMDIgMzkuNy0xMDQgOTQuOWgyMDhjLTItNTUuMS01MC42LTk0LjktMTA0LTk0Ljl6TTMyMC42IDYwMi45Yy03MyAxNTIuNCAxMS41IDE3Mi4yIDEwMC4zIDEyMy4zLTQ2LjYtMjcuNS04Mi42LTcyLjItMTAwLjMtMTIzLjN6JykpO1xuZXhwb3J0cy5JbmZvQ2lyY2xlRmlsbCA9IGdldEljb24oJ2luZm8tY2lyY2xlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0zMiA2NjRjMCA0LjQtMy42IDgtOCA4aC00OGMtNC40IDAtOC0zLjYtOC04VjQ1NmMwLTQuNCAzLjYtOCA4LThoNDhjNC40IDAgOCAzLjYgOCA4djI3MnptLTMyLTM0NGE0OC4wMSA0OC4wMSAwIDAgMSAwLTk2IDQ4LjAxIDQ4LjAxIDAgMCAxIDAgOTZ6JykpO1xuZXhwb3J0cy5JbnN0YWdyYW1GaWxsID0gZ2V0SWNvbignaW5zdGFncmFtJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiAzNzguN2MtNzMuNCAwLTEzMy4zIDU5LjktMTMzLjMgMTMzLjNTNDM4LjYgNjQ1LjMgNTEyIDY0NS4zIDY0NS4zIDU4NS40IDY0NS4zIDUxMiA1ODUuNCAzNzguNyA1MTIgMzc4Ljd6TTkxMS44IDUxMmMwLTU1LjIuNS0xMDkuOS0yLjYtMTY1LTMuMS02NC0xNy43LTEyMC44LTY0LjUtMTY3LjYtNDYuOS00Ni45LTEwMy42LTYxLjQtMTY3LjYtNjQuNS01NS4yLTMuMS0xMDkuOS0yLjYtMTY1LTIuNi01NS4yIDAtMTA5LjktLjUtMTY1IDIuNi02NCAzLjEtMTIwLjggMTcuNy0xNjcuNiA2NC41QzEzMi42IDIyNi4zIDExOC4xIDI4MyAxMTUgMzQ3Yy0zLjEgNTUuMi0yLjYgMTA5LjktMi42IDE2NXMtLjUgMTA5LjkgMi42IDE2NWMzLjEgNjQgMTcuNyAxMjAuOCA2NC41IDE2Ny42IDQ2LjkgNDYuOSAxMDMuNiA2MS40IDE2Ny42IDY0LjUgNTUuMiAzLjEgMTA5LjkgMi42IDE2NSAyLjYgNTUuMiAwIDEwOS45LjUgMTY1LTIuNiA2NC0zLjEgMTIwLjgtMTcuNyAxNjcuNi02NC41IDQ2LjktNDYuOSA2MS40LTEwMy42IDY0LjUtMTY3LjYgMy4yLTU1LjEgMi42LTEwOS44IDIuNi0xNjV6TTUxMiA3MTcuMWMtMTEzLjUgMC0yMDUuMS05MS42LTIwNS4xLTIwNS4xUzM5OC41IDMwNi45IDUxMiAzMDYuOSA3MTcuMSAzOTguNSA3MTcuMSA1MTIgNjI1LjUgNzE3LjEgNTEyIDcxNy4xem0yMTMuNS0zNzAuN2MtMjYuNSAwLTQ3LjktMjEuNC00Ny45LTQ3LjlzMjEuNC00Ny45IDQ3LjktNDcuOSA0Ny45IDIxLjQgNDcuOSA0Ny45YTQ3Ljg0IDQ3Ljg0IDAgMCAxLTQ3LjkgNDcuOXonKSk7XG5leHBvcnRzLkluc3VyYW5jZUZpbGwgPSBnZXRJY29uKCdpbnN1cmFuY2UnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTE5LjkgMzU4LjhoOTcuOXY0MS42aC05Ny45em0zNDctMTg4LjlMNTI3LjEgNTQuMUM1MjMgNTIuNyA1MTcuNSA1MiA1MTIgNTJzLTExIC43LTE1LjEgMi4xTDE1Ny4xIDE2OS45Yy04LjMgMi44LTE1LjEgMTIuNC0xNS4xIDIxLjJ2NDgyLjRjMCA4LjggNS43IDIwLjQgMTIuNiAyNS45TDQ5OS4zIDk2OGMzLjUgMi43IDggNC4xIDEyLjYgNC4xczkuMi0xLjQgMTIuNi00LjFsMzQ0LjctMjY4LjZjNi45LTUuNCAxMi42LTE3IDEyLjYtMjUuOVYxOTEuMWMuMi04LjgtNi42LTE4LjMtMTQuOS0yMS4yek00MTEuMyA2NTZoLS4yYzAgNC40LTMuNiA4LTggOGgtMzcuM2MtNC40IDAtOC0zLjYtOC04VjQ3MS40Yy03LjcgOS4yLTE1LjQgMTcuOS0yMy4xIDI2YTYuMDQgNi4wNCAwIDAgMS0xMC4yLTIuNGwtMTMuMi00My41Yy0uNi0yLS4yLTQuMSAxLjItNS42IDM3LTQzLjQgNjQuNy05NS4xIDgyLjItMTUzLjYgMS4xLTMuNSA1LTUuMyA4LjQtMy43bDM4LjYgMTguM2MyLjcgMS4zIDQuMSA0LjQgMy4yIDcuMmE0MjkuMiA0MjkuMiAwIDAgMS0zMy42IDc5VjY1NnptMjk2LjUtNDkuMmwtMjYuMyAzNS4zYTUuOTIgNS45MiAwIDAgMS04LjkuN2MtMzAuNi0yOS4zLTU2LjgtNjUuMi03OC4xLTEwNi45VjY1NmMwIDQuNC0zLjYgOC04IDhoLTM2LjJjLTQuNCAwLTgtMy42LTgtOFY1MzZjLTIyIDQ0LjctNDkgODAuOC04MC42IDEwNy42YTUuOSA1LjkgMCAwIDEtOC45LTEuNEw0MzAgNjA1LjdhNiA2IDAgMCAxIDEuNi04LjFjMjguNi0yMC4zIDUxLjktNDUuMiA3MS03NmgtNTUuMWMtNC40IDAtOC0zLjYtOC04VjQ3OGMwLTQuNCAzLjYtOCA4LThoOTQuOXYtMTguNmgtNjUuOWMtNC40IDAtOC0zLjYtOC04VjMxNmMwLTQuNCAzLjYtOCA4LThoMTg0LjdjNC40IDAgOCAzLjYgOCA4djEyNy4yYzAgNC40LTMuNiA4LTggOGgtNjYuN3YxOC42aDk4LjhjNC40IDAgOCAzLjYgOCA4djM1LjZjMCA0LjQtMy42IDgtOCA4aC01OWMxOC4xIDI5LjEgNDEuOCA1NC4zIDcyLjMgNzYuOSAyLjYgMi4xIDMuMiA1LjkgMS4yIDguNXonKSk7XG5leHBvcnRzLkludGVyYWN0aW9uRmlsbCA9IGdldEljb24oJ2ludGVyYWN0aW9uJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNzI2IDU4NS43YzAgNTUuMy00NC43IDEwMC4xLTk5LjcgMTAwLjFINDIwLjZ2NTMuNGMwIDUuNy02LjUgOC44LTEwLjkgNS4zbC0xMDkuMS04NS43Yy0zLjUtMi43LTMuNS04IDAtMTAuN2wxMDkuMS04NS43YzQuNC0zLjUgMTAuOS0uMyAxMC45IDUuM3Y1My40aDIwNS43YzE5LjYgMCAzNS41LTE2IDM1LjUtMzUuNnYtNzguOWMwLTMuNyAzLTYuOCA2LjgtNi44aDUwLjdjMy43IDAgNi44IDMgNi44IDYuOHY3OS4xem0tMi42LTIwOS45bC0xMDkuMSA4NS43Yy00LjQgMy41LTEwLjkuMy0xMC45LTUuM3YtNTMuNEgzOTcuN2MtMTkuNiAwLTM1LjUgMTYtMzUuNSAzNS42djc4LjljMCAzLjctMyA2LjgtNi44IDYuOGgtNTAuN2MtMy43IDAtNi44LTMtNi44LTYuOHYtNzguOWMwLTU1LjMgNDQuNy0xMDAuMSA5OS43LTEwMC4xaDIwNS43di01My40YzAtNS43IDYuNS04LjggMTAuOS01LjNsMTA5LjEgODUuN2MzLjYgMi41IDMuNiA3LjguMSAxMC41eicpKTtcbmV4cG9ydHMuSW50ZXJhdGlvbkZpbGwgPSBnZXRJY29uKCdpbnRlcmF0aW9uJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNzI2IDU4NS43YzAgNTUuMy00NC43IDEwMC4xLTk5LjcgMTAwLjFINDIwLjZ2NTMuNGMwIDUuNy02LjUgOC44LTEwLjkgNS4zbC0xMDkuMS04NS43Yy0zLjUtMi43LTMuNS04IDAtMTAuN2wxMDkuMS04NS43YzQuNC0zLjUgMTAuOS0uMyAxMC45IDUuM3Y1My40aDIwNS43YzE5LjYgMCAzNS41LTE2IDM1LjUtMzUuNnYtNzguOWMwLTMuNyAzLTYuOCA2LjgtNi44aDUwLjdjMy43IDAgNi44IDMgNi44IDYuOHY3OS4xem0tMi42LTIwOS45bC0xMDkuMSA4NS43Yy00LjQgMy41LTEwLjkuMy0xMC45LTUuM3YtNTMuNEgzOTcuN2MtMTkuNiAwLTM1LjUgMTYtMzUuNSAzNS42djc4LjljMCAzLjctMyA2LjgtNi44IDYuOGgtNTAuN2MtMy43IDAtNi44LTMtNi44LTYuOHYtNzguOWMwLTU1LjMgNDQuNy0xMDAuMSA5OS43LTEwMC4xaDIwNS43di01My40YzAtNS43IDYuNS04LjggMTAuOS01LjNsMTA5LjEgODUuN2MzLjYgMi41IDMuNiA3LjguMSAxMC41eicpKTtcbmV4cG9ydHMuTGF5b3V0RmlsbCA9IGdldEljb24oJ2xheW91dCcsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ00zODQgOTEyaDQ5NmMxNy43IDAgMzItMTQuMyAzMi0zMlYzNDBIMzg0djU3MnptNDk2LTgwMEgzODR2MTY0aDUyOFYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS03NjggMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDE3NlYxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnonKSk7XG5leHBvcnRzLkxlZnRDaXJjbGVGaWxsID0gZ2V0SWNvbignbGVmdC1jaXJjbGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTEwNCAzMTYuOWMwIDEwLjItNC45IDE5LjktMTMuMiAyNS45TDQ1Ny40IDUxMmwxNDUuNCAxMDUuMmM4LjMgNiAxMy4yIDE1LjYgMTMuMiAyNS45VjY5MGMwIDYuNS03LjQgMTAuMy0xMi43IDYuNWwtMjQ2LTE3OGE3Ljk1IDcuOTUgMCAwIDEgMC0xMi45bDI0Ni0xNzhhOCA4IDAgMCAxIDEyLjcgNi41djQ2Ljh6JykpO1xuZXhwb3J0cy5MZWZ0U3F1YXJlRmlsbCA9IGdldEljb24oJ2xlZnQtc3F1YXJlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNjI0IDM4MC45YzAgMTAuMi00LjkgMTkuOS0xMy4yIDI1LjlMNDY1LjQgNTEybDE0NS40IDEwNS4yYzguMyA2IDEzLjIgMTUuNiAxMy4yIDI1LjlWNjkwYzAgNi41LTcuNCAxMC4zLTEyLjcgNi41bC0yNDYtMTc4YTcuOTUgNy45NSAwIDAgMSAwLTEyLjlsMjQ2LTE3OGM1LjMtMy44IDEyLjcgMCAxMi43IDYuNXY0Ni44eicpKTtcbmV4cG9ydHMuTGlrZUZpbGwgPSBnZXRJY29uKCdsaWtlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4NS45IDUzMy43YzE2LjgtMjIuMiAyNi4xLTQ5LjQgMjYuMS03Ny43IDAtNDQuOS0yNS4xLTg3LjQtNjUuNS0xMTEuMWE2Ny42NyA2Ny42NyAwIDAgMC0zNC4zLTkuM0g1NzIuNGw2LTEyMi45YzEuNC0yOS43LTkuMS01Ny45LTI5LjUtNzkuNEExMDYuNjIgMTA2LjYyIDAgMCAwIDQ3MSA5OS45Yy01MiAwLTk4IDM1LTExMS44IDg1LjFsLTg1LjkgMzExaC0uM3Y0MjhoNDcyLjNjOS4yIDAgMTguMi0xLjggMjYuNS01LjQgNDcuNi0yMC4zIDc4LjMtNjYuOCA3OC4zLTExOC40IDAtMTIuNi0xLjgtMjUtNS40LTM3IDE2LjgtMjIuMiAyNi4xLTQ5LjQgMjYuMS03Ny43IDAtMTIuNi0xLjgtMjUtNS40LTM3IDE2LjgtMjIuMiAyNi4xLTQ5LjQgMjYuMS03Ny43LS4yLTEyLjYtMi0yNS4xLTUuNi0zNy4xek0xMTIgNTI4djM2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NVY0OTZoLTY1Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnonKSk7XG5leHBvcnRzLkxvY2tGaWxsID0gZ2V0SWNvbignbG9jaycsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004MzIgNDY0aC02OFYyNDBjMC03MC43LTU3LjMtMTI4LTEyOC0xMjhIMzg4Yy03MC43IDAtMTI4IDU3LjMtMTI4IDEyOHYyMjRoLTY4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYzODRjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjQ5NmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNTQwIDcwMXY1M2MwIDQuNC0zLjYgOC04IDhoLTQwYy00LjQgMC04LTMuNi04LTh2LTUzYTQ4LjAxIDQ4LjAxIDAgMSAxIDU2IDB6bTE1Mi0yMzdIMzMyVjI0MGMwLTMwLjkgMjUuMS01NiA1Ni01NmgyNDhjMzAuOSAwIDU2IDI1LjEgNTYgNTZ2MjI0eicpKTtcbmV4cG9ydHMuTGlua2VkaW5GaWxsID0gZ2V0SWNvbignbGlua2VkaW4nLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek0zNDkuMyA3OTMuN0gyMzAuNlY0MTEuOWgxMTguN3YzODEuOHptLTU5LjMtNDM0YTY4LjggNjguOCAwIDEgMSA2OC44LTY4LjhjLS4xIDM4LTMwLjkgNjguOC02OC44IDY4Ljh6bTUwMy43IDQzNEg2NzUuMVY2MDhjMC00NC4zLS44LTEwMS4yLTYxLjctMTAxLjItNjEuNyAwLTcxLjIgNDguMi03MS4yIDk4djE4OC45SDQyMy43VjQxMS45aDExMy44djUyLjJoMS42YzE1LjgtMzAgNTQuNS02MS43IDExMi4zLTYxLjcgMTIwLjIgMCAxNDIuMyA3OS4xIDE0Mi4zIDE4MS45djIwOS40eicpKTtcbmV4cG9ydHMuTWFpbEZpbGwgPSBnZXRJY29uKCdtYWlsJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkyOCAxNjBIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY0MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg4MzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tODAuOCAxMDguOUw1MzEuNyA1MTQuNGMtNy44IDYuMS0xOC43IDYuMS0yNi41IDBMMTg5LjYgMjY4LjlBNy4yIDcuMiAwIDAgMSAxOTQgMjU2aDY0OC44YTcuMiA3LjIgMCAwIDEgNC40IDEyLjl6JykpO1xuZXhwb3J0cy5NZWRpY2luZUJveEZpbGwgPSBnZXRJY29uKCdtZWRpY2luZS1ib3gnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODM5LjIgMjc4LjFhMzIgMzIgMCAwIDAtMzAuNC0yMi4xSDczNlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJIMzIwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnYxMTJoLTcyLjhhMzEuOSAzMS45IDAgMCAwLTMwLjQgMjIuMUwxMTIgNTAydjM3OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWNTAybC03Mi44LTIyMy45ek02NjAgNjI4YzAgNC40LTMuNiA4LTggOEg1NDR2MTA4YzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOFY2MzZIMzcyYy00LjQgMC04LTMuNi04LTh2LTQ4YzAtNC40IDMuNi04IDgtOGgxMDhWNDY0YzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh2MTA4aDEwOGM0LjQgMCA4IDMuNiA4IDh2NDh6bTQtMzcySDM2MHYtNzJoMzA0djcyeicpKTtcbmV4cG9ydHMuTWVkaXVtQ2lyY2xlRmlsbCA9IGdldEljb24oJ21lZGl1bS1jaXJjbGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTI1NiAyNTMuN2wtNDAuOCAzOS4xYy0zLjYgMi43LTUuMyA3LjEtNC42IDExLjR2Mjg3LjdjLS43IDQuNCAxIDguOCA0LjYgMTEuNGw0MCAzOS4xdjguN0g1NjYuNHYtOC4zbDQxLjMtNDAuMWM0LjEtNC4xIDQuMS01LjMgNC4xLTExLjRWNDIyLjVsLTExNSAyOTEuNmgtMTUuNUwzNDcuNSA0MjIuNVY2MThjLTEuMiA4LjIgMS43IDE2LjUgNy41IDIyLjRsNTMuOCA2NS4xdjguN0gyNTZ2LTguN2w1My44LTY1LjFhMjYuMSAyNi4xIDAgMCAwIDctMjIuNFYzOTJjLjctNi4zLTEuNy0xMi40LTYuNS0xNi43bC00Ny44LTU3LjZWMzA5SDQxMWwxMTQuNiAyNTEuNSAxMDAuOS0yNTEuM0g3Njh2OC41eicpKTtcbmV4cG9ydHMuTWVkaXVtU3F1YXJlRmlsbCA9IGdldEljb24oJ21lZGl1bS1zcXVhcmUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek03NjggMzE3LjdsLTQwLjggMzkuMWMtMy42IDIuNy01LjMgNy4xLTQuNiAxMS40djI4Ny43Yy0uNyA0LjQgMSA4LjggNC42IDExLjRsNDAgMzkuMXY4LjdINTY2LjR2LTguM2w0MS4zLTQwLjFjNC4xLTQuMSA0LjEtNS4zIDQuMS0xMS40VjQyMi41bC0xMTUgMjkxLjZoLTE1LjVMMzQ3LjUgNDIyLjVWNjE4Yy0xLjIgOC4yIDEuNyAxNi41IDcuNSAyMi40bDUzLjggNjUuMXY4LjdIMjU2di04LjdsNTMuOC02NS4xYTI2LjEgMjYuMSAwIDAgMCA3LTIyLjRWMzkyYy43LTYuMy0xLjctMTIuNC02LjUtMTYuN2wtNDcuOC01Ny42VjMwOUg0MTFsMTE0LjYgMjUxLjUgMTAwLjktMjUxLjNINzY4djguNXonKSk7XG5leHBvcnRzLk1laEZpbGwgPSBnZXRJY29uKCdtZWgnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6TTI4OCA0MjFhNDguMDEgNDguMDEgMCAwIDEgOTYgMCA0OC4wMSA0OC4wMSAwIDAgMS05NiAwem0zODQgMjAwYzAgNC40LTMuNiA4LTggOEgzNjBjLTQuNCAwLTgtMy42LTgtOHYtNDhjMC00LjQgMy42LTggOC04aDMwNGM0LjQgMCA4IDMuNiA4IDh2NDh6bTE2LTE1MmE0OC4wMSA0OC4wMSAwIDAgMSAwLTk2IDQ4LjAxIDQ4LjAxIDAgMCAxIDAgOTZ6JykpO1xuZXhwb3J0cy5NZXNzYWdlRmlsbCA9IGdldEljb24oJ21lc3NhZ2UnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTI0LjMgMzM4LjRhNDQ3LjU3IDQ0Ny41NyAwIDAgMC05Ni4xLTE0My4zIDQ0My4wOSA0NDMuMDkgMCAwIDAtMTQzLTk2LjNBNDQzLjkxIDQ0My45MSAwIDAgMCA1MTIgNjRoLTJjLTYwLjUuMy0xMTkgMTIuMy0xNzQuMSAzNS45YTQ0NC4wOCA0NDQuMDggMCAwIDAtMTQxLjcgOTYuNSA0NDUgNDQ1IDAgMCAwLTk1IDE0Mi44QTQ0OS44OSA0NDkuODkgMCAwIDAgNjUgNTE0LjFjLjMgNjkuNCAxNi45IDEzOC4zIDQ3LjkgMTk5Ljl2MTUyYzAgMjUuNCAyMC42IDQ2IDQ1LjkgNDZoMTUxLjhhNDQ3LjcyIDQ0Ny43MiAwIDAgMCAxOTkuNSA0OGgyLjFjNTkuOCAwIDExNy43LTExLjYgMTcyLjMtMzQuM0E0NDMuMiA0NDMuMiAwIDAgMCA4MjcgODMwLjVjNDEuMi00MC45IDczLjYtODguNyA5Ni4zLTE0MiAyMy41LTU1LjIgMzUuNS0xMTMuOSAzNS44LTE3NC41LjItNjAuOS0xMS42LTEyMC0zNC44LTE3NS42ek0zMTIuNCA1NjBjLTI2LjQgMC00Ny45LTIxLjUtNDcuOS00OHMyMS41LTQ4IDQ3LjktNDggNDcuOSAyMS41IDQ3LjkgNDgtMjEuNCA0OC00Ny45IDQ4em0xOTkuNiAwYy0yNi40IDAtNDcuOS0yMS41LTQ3LjktNDhzMjEuNS00OCA0Ny45LTQ4IDQ3LjkgMjEuNSA0Ny45IDQ4LTIxLjUgNDgtNDcuOSA0OHptMTk5LjYgMGMtMjYuNCAwLTQ3LjktMjEuNS00Ny45LTQ4czIxLjUtNDggNDcuOS00OCA0Ny45IDIxLjUgNDcuOSA0OC0yMS41IDQ4LTQ3LjkgNDh6JykpO1xuZXhwb3J0cy5NaW51c0NpcmNsZUZpbGwgPSBnZXRJY29uKCdtaW51cy1jaXJjbGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTE5MiA0NzJjMCA0LjQtMy42IDgtOCA4SDMyOGMtNC40IDAtOC0zLjYtOC04di00OGMwLTQuNCAzLjYtOCA4LThoMzY4YzQuNCAwIDggMy42IDggOHY0OHonKSk7XG5leHBvcnRzLk1pbnVzU3F1YXJlRmlsbCA9IGdldEljb24oJ21pbnVzLXNxdWFyZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTcwNCA1MzZjMCA0LjQtMy42IDgtOCA4SDMyOGMtNC40IDAtOC0zLjYtOC04di00OGMwLTQuNCAzLjYtOCA4LThoMzY4YzQuNCAwIDggMy42IDggOHY0OHonKSk7XG5leHBvcnRzLk1vYmlsZUZpbGwgPSBnZXRJY29uKCdtb2JpbGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNzQ0IDYySDI4MGMtMzUuMyAwLTY0IDI4LjctNjQgNjR2NzY4YzAgMzUuMyAyOC43IDY0IDY0IDY0aDQ2NGMzNS4zIDAgNjQtMjguNyA2NC02NFYxMjZjMC0zNS4zLTI4LjctNjQtNjQtNjR6TTUxMiA4MjRjLTIyLjEgMC00MC0xNy45LTQwLTQwczE3LjktNDAgNDAtNDAgNDAgMTcuOSA0MCA0MC0xNy45IDQwLTQwIDQweicpKTtcbmV4cG9ydHMuTW9uZXlDb2xsZWN0RmlsbCA9IGdldEljb24oJ21vbmV5LWNvbGxlY3QnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTExLjUgNjk5LjdhOCA4IDAgMCAwLTEwLjMtNC44TDg0MCA3MTcuMlYxNzljMC0zNy42LTMwLjQtNjgtNjgtNjhIMjUyYy0zNy42IDAtNjggMzAuNC02OCA2OHY1MzguMmwtNjEuMy0yMi4zYy0uOS0uMy0xLjgtLjUtMi43LS41LTQuNCAwLTggMy42LTggOFY3NjJjMCAzLjMgMi4xIDYuMyA1LjMgNy41TDUwMSA5MDkuMWM3LjEgMi42IDE0LjggMi42IDIxLjkgMGwzODMuOC0xMzkuNWMzLjItMS4yIDUuMy00LjIgNS4zLTcuNXYtNTkuNmMwLTEtLjItMS45LS41LTIuOHptLTI0My44LTM3N0w1NjQgNTE0LjNoNTcuNmM0LjQgMCA4IDMuNiA4IDh2MjcuMWMwIDQuNC0zLjYgOC04IDhoLTc2LjN2MzloNzYuM2M0LjQgMCA4IDMuNiA4IDh2MjcuMWMwIDQuNC0zLjYgOC04IDhoLTc2LjNWNzAzYzAgNC40LTMuNiA4LTggOGgtNDkuOWMtNC40IDAtOC0zLjYtOC04di02My40aC03NmMtNC40IDAtOC0zLjYtOC04di0yNy4xYzAtNC40IDMuNi04IDgtOGg3NnYtMzloLTc2Yy00LjQgMC04LTMuNi04LTh2LTI3LjFjMC00LjQgMy42LTggOC04aDU3TDM1Ni41IDMyMi44Yy0yLjEtMy44LS43LTguNyAzLjItMTAuOCAxLjItLjcgMi41LTEgMy44LTFoNTUuN2E4IDggMCAwIDEgNy4xIDQuNEw1MTEgNDg0LjJoMy4zTDU5OSAzMTUuNGMxLjMtMi43IDQuMS00LjQgNy4xLTQuNGg1NC41YzQuNCAwIDggMy42IDguMSA3LjkgMCAxLjMtLjQgMi42LTEgMy44eicpKTtcbmV4cG9ydHMuUGF1c2VDaXJjbGVGaWxsID0gZ2V0SWNvbigncGF1c2UtY2lyY2xlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0tODAgNjAwYzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOFYzNjBjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHYzMDR6bTIyNCAwYzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOFYzNjBjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHYzMDR6JykpO1xuZXhwb3J0cy5QYXlDaXJjbGVGaWxsID0gZ2V0SWNvbigncGF5LWNpcmNsZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMTY2LjYgMjQ2LjhMNTY3LjUgNTE1LjZoNjJjNC40IDAgOCAzLjYgOCA4djI5LjljMCA0LjQtMy42IDgtOCA4aC04MlY2MDNoODJjNC40IDAgOCAzLjYgOCA4djI5LjljMCA0LjQtMy42IDgtOCA4aC04MlY3MTdjMCA0LjQtMy42IDgtOCA4aC01NC4zYy00LjQgMC04LTMuNi04LTh2LTY4LjFoLTgxLjdjLTQuNCAwLTgtMy42LTgtOFY2MTFjMC00LjQgMy42LTggOC04aDgxLjd2LTQxLjVoLTgxLjdjLTQuNCAwLTgtMy42LTgtOHYtMjkuOWMwLTQuNCAzLjYtOCA4LThoNjEuNEwzNDUuNCAzMTAuOGE4LjA3IDguMDcgMCAwIDEgNy0xMS45aDYwLjdjMyAwIDUuOCAxLjcgNy4xIDQuNGw5MC42IDE4MGgzLjRsOTAuNi0xODBhOCA4IDAgMCAxIDcuMS00LjRoNTkuNWM0LjQgMCA4IDMuNiA4IDggLjIgMS40LS4yIDIuNy0uOCAzLjl6JykpO1xuZXhwb3J0cy5Ob3RpZmljYXRpb25GaWxsID0gZ2V0SWNvbignbm90aWZpY2F0aW9uJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MCAxMTJjLTMuOCAwLTcuNy43LTExLjYgMi4zTDI5MiAzNDUuOUgxMjhjLTguOCAwLTE2IDcuNC0xNiAxNi42djI5OWMwIDkuMiA3LjIgMTYuNiAxNiAxNi42aDEwMS42Yy0zLjcgMTEuNi01LjYgMjMuOS01LjYgMzYuNCAwIDY1LjkgNTMuOCAxMTkuNSAxMjAgMTE5LjUgNTUuNCAwIDEwMi4xLTM3LjYgMTE1LjktODguNGw0MDguNiAxNjQuMmMzLjkgMS41IDcuOCAyLjMgMTEuNiAyLjMgMTYuOSAwIDMyLTE0LjIgMzItMzMuMlYxNDUuMkM5MTIgMTI2LjIgODk3IDExMiA4ODAgMTEyek0zNDQgNzYyLjNjLTI2LjUgMC00OC0yMS40LTQ4LTQ3LjggMC0xMS4yIDMuOS0yMS45IDExLTMwLjRsODQuOSAzNC4xYy0yIDI0LjYtMjIuNyA0NC4xLTQ3LjkgNDQuMXonKSk7XG5leHBvcnRzLlBob25lRmlsbCA9IGdldEljb24oJ3Bob25lJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4NS42IDIzMC4yTDc3OS4xIDEyMy44YTgwLjgzIDgwLjgzIDAgMCAwLTU3LjMtMjMuOGMtMjEuNyAwLTQyLjEgOC41LTU3LjQgMjMuOEw1NDkuOCAyMzguNGE4MC44MyA4MC44MyAwIDAgMC0yMy44IDU3LjNjMCAyMS43IDguNSA0Mi4xIDIzLjggNTcuNGw4My44IDgzLjhBMzkzLjgyIDM5My44MiAwIDAgMSA1NTMuMSA1NTMgMzk1LjM0IDM5NS4zNCAwIDAgMSA0MzcgNjMzLjhMMzUzLjIgNTUwYTgwLjgzIDgwLjgzIDAgMCAwLTU3LjMtMjMuOGMtMjEuNyAwLTQyLjEgOC41LTU3LjQgMjMuOEwxMjMuOCA2NjQuNWE4MC44OSA4MC44OSAwIDAgMC0yMy44IDU3LjRjMCAyMS43IDguNSA0Mi4xIDIzLjggNTcuNGwxMDYuMyAxMDYuM2MyNC40IDI0LjUgNTguMSAzOC40IDkyLjcgMzguNCA3LjMgMCAxNC4zLS42IDIxLjItMS44IDEzNC44LTIyLjIgMjY4LjUtOTMuOSAzNzYuNC0yMDEuN0M4MjguMiA2MTIuOCA4OTkuOCA0NzkuMiA5MjIuMyAzNDRjNi44LTQxLjMtNi45LTgzLjgtMzYuNy0xMTMuOHonKSk7XG5leHBvcnRzLlBpY3R1cmVGaWxsID0gZ2V0SWNvbigncGljdHVyZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MjggMTYwSDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY2NDBjMCAxNy43IDE0LjMgMzIgMzIgMzJoODMyYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE5MmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMzM4IDMwNGMzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NC02NC0yOC43LTY0LTY0IDI4LjctNjQgNjQtNjR6bTUxMy45IDQzNy4xYTguMTEgOC4xMSAwIDAgMS01LjIgMS45SDE3Ny4yYy00LjQgMC04LTMuNi04LTggMC0xLjkuNy0zLjcgMS45LTUuMmwxNzAuMy0yMDJjMi44LTMuNCA3LjktMy44IDExLjMtMSAuMy4zLjcuNiAxIDFsOTkuNCAxMTggMTU4LjEtMTg3LjVjMi44LTMuNCA3LjktMy44IDExLjMtMSAuMy4zLjcuNiAxIDFsMjI5LjYgMjcxLjZjMi42IDMuMyAyLjIgOC40LTEuMiAxMS4yeicpKTtcbmV4cG9ydHMuUGllQ2hhcnRGaWxsID0gZ2V0SWNvbigncGllLWNoYXJ0JywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg2My4xIDUxOC41SDUwNS41VjE2MC45YzAtNC40LTMuNi04LTgtOGgtMjZhMzk4LjU3IDM5OC41NyAwIDAgMC0yODIuNSAxMTcgMzk3LjQ3IDM5Ny40NyAwIDAgMC04NS42IDEyN0M4Mi42IDQ0Ni4yIDcyIDQ5OC41IDcyIDU1Mi41UzgyLjYgNjU4LjcgMTAzLjQgNzA4YzIwLjEgNDcuNSA0OC45IDkwLjMgODUuNiAxMjcgMzYuNyAzNi43IDc5LjQgNjUuNSAxMjcgODUuNmEzOTYuNjQgMzk2LjY0IDAgMCAwIDE1NS42IDMxLjUgMzk4LjU3IDM5OC41NyAwIDAgMCAyODIuNS0xMTdjMzYuNy0zNi43IDY1LjUtNzkuNCA4NS42LTEyN2EzOTYuNjQgMzk2LjY0IDAgMCAwIDMxLjUtMTU1LjZ2LTI2Yy0uMS00LjQtMy43LTgtOC4xLTh6TTk1MSA0NjNsLTIuNi0yOC4yYy04LjUtOTItNDkuMy0xNzguOC0xMTUuMS0yNDQuM0EzOTguNSAzOTguNSAwIDAgMCA1ODguNCA3NS42TDU2MC4xIDczYy00LjctLjQtOC43IDMuMi04LjcgNy45djM4My43YzAgNC40IDMuNiA4IDggOGwzODMuNi0xYzQuNy0uMSA4LjQtNCA4LTguNnonKSk7XG5leHBvcnRzLlBsYXlDaXJjbGVGaWxsID0gZ2V0SWNvbigncGxheS1jaXJjbGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTE0NC4xIDQ1NC45TDQzNy43IDY3Ny44YTguMDIgOC4wMiAwIDAgMS0xMi43LTYuNVYzNTMuN2E4IDggMCAwIDEgMTIuNy02LjVMNjU2LjEgNTA2YTcuOSA3LjkgMCAwIDEgMCAxMi45eicpKTtcbmV4cG9ydHMuUGxheVNxdWFyZUZpbGwgPSBnZXRJY29uKCdwbGF5LXNxdWFyZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTY0MS43IDUyMC44TDQ0Mi4zIDY3Ny42Yy03LjQgNS44LTE4LjMuNi0xOC4zLTguOFYzNTUuM2MwLTkuNCAxMC45LTE0LjcgMTguMy04LjhsMTk5LjQgMTU2LjdhMTEuMiAxMS4yIDAgMCAxIDAgMTcuNnonKSk7XG5leHBvcnRzLlBsdXNDaXJjbGVGaWxsID0gZ2V0SWNvbigncGx1cy1jaXJjbGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTE5MiA0NzJjMCA0LjQtMy42IDgtOCA4SDU0NHYxNTJjMCA0LjQtMy42IDgtOCA4aC00OGMtNC40IDAtOC0zLjYtOC04VjU0NEgzMjhjLTQuNCAwLTgtMy42LTgtOHYtNDhjMC00LjQgMy42LTggOC04aDE1MlYzMjhjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHYxNTJoMTUyYzQuNCAwIDggMy42IDggOHY0OHonKSk7XG5leHBvcnRzLlBsdXNTcXVhcmVGaWxsID0gZ2V0SWNvbigncGx1cy1zcXVhcmUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek03MDQgNTM2YzAgNC40LTMuNiA4LTggOEg1NDR2MTUyYzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOFY1NDRIMzI4Yy00LjQgMC04LTMuNi04LTh2LTQ4YzAtNC40IDMuNi04IDgtOGgxNTJWMzI4YzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh2MTUyaDE1MmM0LjQgMCA4IDMuNiA4IDh2NDh6JykpO1xuZXhwb3J0cy5Qb3VuZENpcmNsZUZpbGwgPSBnZXRJY29uKCdwb3VuZC1jaXJjbGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTE0NiA2NThjMCA0LjQtMy42IDgtOCA4SDM3Ni4yYy00LjQgMC04LTMuNi04LTh2LTM4LjVjMC0zLjcgMi41LTYuOSA2LjEtNy44IDQ0LTEwLjkgNzIuOC00OSA3Mi44LTk0LjIgMC0xNC43LTIuNS0yOS40LTUuOS00NC4ySDM3NGMtNC40IDAtOC0zLjYtOC04di0zMGMwLTQuNCAzLjYtOCA4LThoNTMuN2MtNy44LTI1LjEtMTQuNi01MC43LTE0LjYtNzcuMSAwLTc1LjggNTguNi0xMjAuMyAxNTEuNS0xMjAuMyAyNi41IDAgNTEuNCA1LjUgNzAuMyAxMi43IDMuMSAxLjIgNS4yIDQuMiA1LjIgNy41djM5LjVhOCA4IDAgMCAxLTEwLjYgNy42Yy0xNy45LTYuNC0zOS0xMC41LTYwLjQtMTAuNS01My4zIDAtODcuMyAyNi42LTg3LjMgNzAuMiAwIDI0LjcgNi4yIDQ3LjkgMTMuNCA3MC41aDExMmM0LjQgMCA4IDMuNiA4IDh2MzBjMCA0LjQtMy42IDgtOCA4aC05OC42YzMuMSAxMy4yIDUuMyAyNi45IDUuMyA0MSAwIDQwLjctMTYuNSA3My45LTQzLjkgOTEuMXY0LjdoMTgwYzQuNCAwIDggMy42IDggOFY3MjJ6JykpO1xuZXhwb3J0cy5QcmludGVyRmlsbCA9IGdldEljb24oJ3ByaW50ZXInLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNzMyIDEyMGMwLTQuNC0zLjYtOC04LThIMzAwYy00LjQgMC04IDMuNi04IDh2MTQ4aDQ0MFYxMjB6bTEyMCAyMTJIMTcyYy00NC4yIDAtODAgMzUuOC04MCA4MHYzMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJoMTY4djEzMmMwIDQuNCAzLjYgOCA4IDhoNDI0YzQuNCAwIDgtMy42IDgtOFY3NzJoMTY4YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjQxMmMwLTQ0LjItMzUuOC04MC04MC04MHpNNjY0IDg0NEgzNjBWNTY4aDMwNHYyNzZ6bTE2NC0zNjBjMCA0LjQtMy42IDgtOCA4aC00MGMtNC40IDAtOC0zLjYtOC04di00MGMwLTQuNCAzLjYtOCA4LThoNDBjNC40IDAgOCAzLjYgOCA4djQweicpKTtcbmV4cG9ydHMuUHJvZmlsZUZpbGwgPSBnZXRJY29uKCdwcm9maWxlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMzgwIDY5NmMtMjIuMSAwLTQwLTE3LjktNDAtNDBzMTcuOS00MCA0MC00MCA0MCAxNy45IDQwIDQwLTE3LjkgNDAtNDAgNDB6bTAtMTQ0Yy0yMi4xIDAtNDAtMTcuOS00MC00MHMxNy45LTQwIDQwLTQwIDQwIDE3LjkgNDAgNDAtMTcuOSA0MC00MCA0MHptMC0xNDRjLTIyLjEgMC00MC0xNy45LTQwLTQwczE3LjktNDAgNDAtNDAgNDAgMTcuOSA0MCA0MC0xNy45IDQwLTQwIDQwem0zMDQgMjcyYzAgNC40LTMuNiA4LTggOEg0OTJjLTQuNCAwLTgtMy42LTgtOHYtNDhjMC00LjQgMy42LTggOC04aDE4NGM0LjQgMCA4IDMuNiA4IDh2NDh6bTAtMTQ0YzAgNC40LTMuNiA4LTggOEg0OTJjLTQuNCAwLTgtMy42LTgtOHYtNDhjMC00LjQgMy42LTggOC04aDE4NGM0LjQgMCA4IDMuNiA4IDh2NDh6bTAtMTQ0YzAgNC40LTMuNiA4LTggOEg0OTJjLTQuNCAwLTgtMy42LTgtOHYtNDhjMC00LjQgMy42LTggOC04aDE4NGM0LjQgMCA4IDMuNiA4IDh2NDh6JykpO1xuZXhwb3J0cy5Qcm9qZWN0RmlsbCA9IGdldEljb24oJ3Byb2plY3QnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek0zNjggNzQ0YzAgNC40LTMuNiA4LTggOGgtODBjLTQuNCAwLTgtMy42LTgtOFYyODBjMC00LjQgMy42LTggOC04aDgwYzQuNCAwIDggMy42IDggOHY0NjR6bTE5Mi0yODBjMCA0LjQtMy42IDgtOCA4aC04MGMtNC40IDAtOC0zLjYtOC04VjI4MGMwLTQuNCAzLjYtOCA4LThoODBjNC40IDAgOCAzLjYgOCA4djE4NHptMTkyIDcyYzAgNC40LTMuNiA4LTggOGgtODBjLTQuNCAwLTgtMy42LTgtOFYyODBjMC00LjQgMy42LTggOC04aDgwYzQuNCAwIDggMy42IDggOHYyNTZ6JykpO1xuZXhwb3J0cy5QdXNocGluRmlsbCA9IGdldEljb24oJ3B1c2hwaW4nLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODc4LjMgMzkyLjFMNjMxLjkgMTQ1LjdjLTYuNS02LjUtMTUtOS43LTIzLjUtOS43cy0xNyAzLjItMjMuNSA5LjdMNDIzLjggMzA2LjljLTEyLjItMS40LTI0LjUtMi0zNi44LTItNzMuMiAwLTE0Ni40IDI0LjEtMjA2LjUgNzIuMy0xNS40IDEyLjMtMTYuNiAzNS40LTIuNyA0OS40bDE4MS43IDE4MS43LTIxNS40IDIxNS4yYTE1LjggMTUuOCAwIDAgMC00LjYgOS44bC0zLjQgMzcuMmMtLjkgOS40IDYuNiAxNy40IDE1LjkgMTcuNC41IDAgMSAwIDEuNS0uMWwzNy4yLTMuNGMzLjctLjMgNy4yLTIgOS44LTQuNmwyMTUuNC0yMTUuNCAxODEuNyAxODEuN2M2LjUgNi41IDE1IDkuNyAyMy41IDkuNyA5LjcgMCAxOS4zLTQuMiAyNS45LTEyLjQgNTYuMy03MC4zIDc5LjctMTU4LjMgNzAuMi0yNDMuNGwxNjEuMS0xNjEuMWMxMi45LTEyLjggMTIuOS0zMy44IDAtNDYuOHonKSk7XG5leHBvcnRzLlByb3BlcnR5U2FmZXR5RmlsbCA9IGdldEljb24oJ3Byb3BlcnR5LXNhZmV0eScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NjYuOSAxNjkuOUw1MjcuMSA1NC4xQzUyMyA1Mi43IDUxNy41IDUyIDUxMiA1MnMtMTEgLjctMTUuMSAyLjFMMTU3LjEgMTY5LjljLTguMyAyLjgtMTUuMSAxMi40LTE1LjEgMjEuMnY0ODIuNGMwIDguOCA1LjcgMjAuNCAxMi42IDI1LjlMNDk5LjMgOTY4YzMuNSAyLjcgOCA0LjEgMTIuNiA0LjFzOS4yLTEuNCAxMi42LTQuMWwzNDQuNy0yNjguNmM2LjktNS40IDEyLjYtMTcgMTIuNi0yNS45VjE5MS4xYy4yLTguOC02LjYtMTguMy0xNC45LTIxLjJ6TTY0OC4zIDMzMi44bC04Ny43IDE2MS4xaDQ1LjdjNS41IDAgMTAgNC41IDEwIDEwdjIxLjNjMCA1LjUtNC41IDEwLTEwIDEwaC02My40djI5LjdoNjMuNGM1LjUgMCAxMCA0LjUgMTAgMTB2MjEuM2MwIDUuNS00LjUgMTAtMTAgMTBoLTYzLjRWNjU4YzAgNS41LTQuNSAxMC0xMCAxMGgtNDEuM2MtNS41IDAtMTAtNC41LTEwLTEwdi01MS44aC02My4xYy01LjUgMC0xMC00LjUtMTAtMTB2LTIxLjNjMC01LjUgNC41LTEwIDEwLTEwaDYzLjF2LTI5LjdoLTYzLjFjLTUuNSAwLTEwLTQuNS0xMC0xMHYtMjEuM2MwLTUuNSA0LjUtMTAgMTAtMTBoNDUuMmwtODgtMTYxLjFjLTIuNi00LjgtLjktMTAuOSA0LTEzLjYgMS41LS44IDMuMS0xLjIgNC44LTEuMmg0NmMzLjggMCA3LjIgMi4xIDguOSA1LjVsNzIuOSAxNDQuMyA3My4yLTE0NC4zYTEwIDEwIDAgMCAxIDguOS01LjVoNDVjNS41IDAgMTAgNC41IDEwIDEwIC4xIDEuNy0uMyAzLjMtMS4xIDQuOHonKSk7XG5leHBvcnRzLlFxQ2lyY2xlRmlsbCA9IGdldEljb24oJ3FxLWNpcmNsZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMjEwLjUgNjEyLjRjLTExLjUgMS40LTQ0LjktNTIuNy00NC45LTUyLjcgMCAzMS4zLTE2LjIgNzIuMi01MS4xIDEwMS44IDE2LjkgNS4yIDU0LjkgMTkuMiA0NS45IDM0LjQtNy4zIDEyLjMtMTI1LjYgNy45LTE1OS44IDQtMzQuMiAzLjgtMTUyLjUgOC4zLTE1OS44LTQtOS4xLTE1LjIgMjguOS0yOS4yIDQ1LjgtMzQuNC0zNS0yOS41LTUxLjEtNzAuNC01MS4xLTEwMS44IDAgMC0zMy40IDU0LjEtNDQuOSA1Mi43LTUuNC0uNy0xMi40LTI5LjYgOS40LTk5LjcgMTAuMy0zMyAyMi02MC41IDQwLjItMTA1LjgtMy4xLTExNi45IDQ1LjMtMjE1IDE2MC40LTIxNSAxMTMuOSAwIDE2My4zIDk2LjEgMTYwLjQgMjE1IDE4LjEgNDUuMiAyOS45IDcyLjggNDAuMiAxMDUuOCAyMS43IDcwLjEgMTQuNiA5OS4xIDkuMyA5OS43eicpKTtcbmV4cG9ydHMuUXFTcXVhcmVGaWxsID0gZ2V0SWNvbigncXEtc3F1YXJlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNzIyLjUgNjc2LjRjLTExLjUgMS40LTQ0LjktNTIuNy00NC45LTUyLjcgMCAzMS4zLTE2LjIgNzIuMi01MS4xIDEwMS44IDE2LjkgNS4yIDU0LjkgMTkuMiA0NS45IDM0LjQtNy4zIDEyLjMtMTI1LjYgNy45LTE1OS44IDQtMzQuMiAzLjgtMTUyLjUgOC4zLTE1OS44LTQtOS4xLTE1LjIgMjguOS0yOS4yIDQ1LjgtMzQuNC0zNS0yOS41LTUxLjEtNzAuNC01MS4xLTEwMS44IDAgMC0zMy40IDU0LjEtNDQuOSA1Mi43LTUuNC0uNy0xMi40LTI5LjYgOS40LTk5LjcgMTAuMy0zMyAyMi02MC41IDQwLjItMTA1LjgtMy4xLTExNi45IDQ1LjMtMjE1IDE2MC40LTIxNSAxMTMuOSAwIDE2My4zIDk2LjEgMTYwLjQgMjE1IDE4LjEgNDUuMiAyOS45IDcyLjggNDAuMiAxMDUuOCAyMS43IDcwLjEgMTQuNiA5OS4xIDkuMyA5OS43eicpKTtcbmV4cG9ydHMuUXVlc3Rpb25DaXJjbGVGaWxsID0gZ2V0SWNvbigncXVlc3Rpb24tY2lyY2xlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDcwOGMtMjIuMSAwLTQwLTE3LjktNDAtNDBzMTcuOS00MCA0MC00MCA0MCAxNy45IDQwIDQwLTE3LjkgNDAtNDAgNDB6bTYyLjktMjE5LjVhNDguMyA0OC4zIDAgMCAwLTMwLjkgNDQuOFY2MjBjMCA0LjQtMy42IDgtOCA4aC00OGMtNC40IDAtOC0zLjYtOC04di0yMS41YzAtMjMuMSA2LjctNDUuOSAxOS45LTY0LjkgMTIuOS0xOC42IDMwLjktMzIuOCA1Mi4xLTQwLjkgMzQtMTMuMSA1Ni00MS42IDU2LTcyLjcgMC00NC4xLTQzLjEtODAtOTYtODBzLTk2IDM1LjktOTYgODB2Ny42YzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOFY0MjBjMC0zOS4zIDE3LjItNzYgNDguNC0xMDMuM0M0MzAuNCAyOTAuNCA0NzAgMjc2IDUxMiAyNzZzODEuNiAxNC41IDExMS42IDQwLjdDNjU0LjggMzQ0IDY3MiAzODAuNyA2NzIgNDIwYzAgNTcuOC0zOC4xIDEwOS44LTk3LjEgMTMyLjV6JykpO1xuZXhwb3J0cy5SZWFkRmlsbCA9IGdldEljb24oJ3JlYWQnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTI4IDE2MUg2OTkuMmMtNDkuMSAwLTk3LjEgMTQuMS0xMzguNCA0MC43TDUxMiAyMzNsLTQ4LjgtMzEuM0EyNTUuMiAyNTUuMiAwIDAgMCAzMjQuOCAxNjFIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjU2OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmgyMjguOGM0OS4xIDAgOTcuMSAxNC4xIDEzOC40IDQwLjdsNDQuNCAyOC42YzEuMy44IDIuOCAxLjMgNC4zIDEuM3MzLS40IDQuMy0xLjNsNDQuNC0yOC42QzYwMiA4MDcuMSA2NTAuMSA3OTMgNjk5LjIgNzkzSDkyOGMxNy43IDAgMzItMTQuMyAzMi0zMlYxOTNjMC0xNy43LTE0LjMtMzItMzItMzJ6TTQwNCA1NTMuNWMwIDQuMS0zLjIgNy41LTcuMSA3LjVIMjExLjFjLTMuOSAwLTcuMS0zLjQtNy4xLTcuNXYtNDVjMC00LjEgMy4yLTcuNSA3LjEtNy41aDE4NS43YzMuOSAwIDcuMSAzLjQgNy4xIDcuNXY0NXptMC0xNDBjMCA0LjEtMy4yIDcuNS03LjEgNy41SDIxMS4xYy0zLjkgMC03LjEtMy40LTcuMS03LjV2LTQ1YzAtNC4xIDMuMi03LjUgNy4xLTcuNWgxODUuN2MzLjkgMCA3LjEgMy40IDcuMSA3LjV2NDV6bTQxNiAxNDBjMCA0LjEtMy4yIDcuNS03LjEgNy41SDYyNy4xYy0zLjkgMC03LjEtMy40LTcuMS03LjV2LTQ1YzAtNC4xIDMuMi03LjUgNy4xLTcuNWgxODUuN2MzLjkgMCA3LjEgMy40IDcuMSA3LjV2NDV6bTAtMTQwYzAgNC4xLTMuMiA3LjUtNy4xIDcuNUg2MjcuMWMtMy45IDAtNy4xLTMuNC03LjEtNy41di00NWMwLTQuMSAzLjItNy41IDcuMS03LjVoMTg1LjdjMy45IDAgNy4xIDMuNCA3LjEgNy41djQ1eicpKTtcbmV4cG9ydHMuUmVjb25jaWxpYXRpb25GaWxsID0gZ2V0SWNvbigncmVjb25jaWxpYXRpb24nLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNjc2IDYyM2MtMTguOCAwLTM0IDE1LjItMzQgMzRzMTUuMiAzNCAzNCAzNCAzNC0xNS4yIDM0LTM0LTE1LjItMzQtMzQtMzR6bTIwNC00NTVINjY4YzAtMzAuOS0yNS4xLTU2LTU2LTU2aC04MGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZIMjY0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYyMDBoLTg4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJoMzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMydi0xNmgzNjhjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjAwYzAtMTcuNy0xNC4zLTMyLTMyLTMyek00NDggODQ4SDE3NlY2MTZoMjcydjIzMnptMC0yOTZIMTc2di04OGgyNzJ2ODh6bTIwLTI3MnYtNDhoNzJ2LTU2aDY0djU2aDcydjQ4SDQ2OHptMTgwIDE2OHY1NmMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LTh2LTU2YzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh6bTI4IDMwMWMtNTAuOCAwLTkyLTQxLjItOTItOTJzNDEuMi05MiA5Mi05MiA5MiA0MS4yIDkyIDkyLTQxLjIgOTItOTIgOTJ6bTkyLTI0NWMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LTh2LTk2YzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh2OTZ6bS05MiA2MWMtNTAuOCAwLTkyIDQxLjItOTIgOTJzNDEuMiA5MiA5MiA5MiA5Mi00MS4yIDkyLTkyLTQxLjItOTItOTItOTJ6bTAgMTI2Yy0xOC44IDAtMzQtMTUuMi0zNC0zNHMxNS4yLTM0IDM0LTM0IDM0IDE1LjIgMzQgMzQtMTUuMiAzNC0zNCAzNHonKSk7XG5leHBvcnRzLlJlZEVudmVsb3BlRmlsbCA9IGdldEljb24oJ3JlZC1lbnZlbG9wZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004MzIgNjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyek02NDcgNDcwLjRsLTg3LjIgMTYxaDQ1LjljNC42IDAgOC40IDMuOCA4LjQgOC40djI1LjFjMCA0LjYtMy44IDguNC04LjQgOC40aC02My4zdjI4LjZoNjMuM2M0LjYgMCA4LjQgMy44IDguNCA4LjR2MjVjLjIgNC42LTMuNiA4LjUtOC4yIDguNWgtNjMuM3Y0OS45YzAgNC42LTMuOCA4LjQtOC40IDguNGgtNDMuN2MtNC42IDAtOC40LTMuOC04LjQtOC40di00OS45aC02M2MtNC42IDAtOC40LTMuOC04LjQtOC40di0yNS4xYzAtNC42IDMuOC04LjQgOC40LTguNGg2M3YtMjguNmgtNjNjLTQuNiAwLTguNC0zLjgtOC40LTguNHYtMjUuMWMwLTQuNiAzLjgtOC40IDguNC04LjRoNDUuNGwtODcuNS0xNjFjLTIuMi00LjEtLjctOS4xIDMuNC0xMS40IDEuMy0uNiAyLjYtMSAzLjktMWg0OC44YzMuMiAwIDYuMSAxLjggNy41IDQuNmw3MS45IDE0MS44IDcxLjktMTQxLjlhOC41IDguNSAwIDAgMSA3LjUtNC42aDQ3LjhjNC42IDAgOC40IDMuOCA4LjQgOC40LS4xIDEuNS0uNSAyLjktMS4xIDQuMXpNNTEyLjYgMzIzTDI4OSAxNDhoNDQ2TDUxMi42IDMyM3onKSk7XG5leHBvcnRzLlJlZGRpdENpcmNsZUZpbGwgPSBnZXRJY29uKCdyZWRkaXQtY2lyY2xlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTU4NCA1NDhhMzYgMzYgMCAxIDAgNzIgMCAzNiAzNiAwIDEgMC03MiAwem0xNDQtMTA4YTM1LjkgMzUuOSAwIDAgMC0zMi41IDIwLjZjMTguOCAxNC4zIDM0LjQgMzAuNyA0NS45IDQ4LjhBMzUuOTggMzUuOTggMCAwIDAgNzI4IDQ0MHpNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTI0NSA0NzcuOWM0LjYgMTMuNSA3IDI3LjYgNyA0Mi4xIDAgOTkuNC0xMTIuOCAxODAtMjUyIDE4MHMtMjUyLTgwLjYtMjUyLTE4MGMwLTE0LjUgMi40LTI4LjYgNy00Mi4xQTcyLjAxIDcyLjAxIDAgMCAxIDI5NiA0MDRjMjcuMSAwIDUwLjYgMTQuOSA2Mi45IDM3IDM2LjItMTkuOCA4MC4yLTMyLjggMTI4LjEtMzYuMWw1OC40LTEzMS4xYzQuMy05LjggMTUuMi0xNC44IDI1LjUtMTEuOGw5MS42IDI2LjVhNTQuMDMgNTQuMDMgMCAwIDEgMTAxLjYgMjUuNmMwIDI5LjgtMjQuMiA1NC01NCA1NC0yMy41IDAtNDMuNS0xNS4xLTUwLjktMzYuMUw1NzcgMzA4LjNsLTQzIDk2LjVjNDkuMSAzIDk0LjIgMTYuMSAxMzEuMiAzNi4zIDEyLjMtMjIuMSAzNS44LTM3IDYyLjktMzcgMzkuOCAwIDcyIDMyLjIgNzIgNzItLjEgMjkuMy0xNy44IDU0LjYtNDMuMSA2NS44em0tMTcxLjMgODNjLTE0LjkgMTEuNy00NC4zIDI0LjMtNzMuNyAyNC4zcy01OC45LTEyLjYtNzMuNy0yNC4zYy05LjMtNy4zLTIyLjctNS43LTMwIDMuNi03LjMgOS4zLTUuNyAyMi43IDMuNiAzMCAyNS43IDIwLjQgNjUgMzMuNSAxMDAuMSAzMy41IDM1LjEgMCA3NC40LTEzLjEgMTAwLjItMzMuNSA5LjMtNy4zIDEwLjktMjAuOCAzLjYtMzBhMjEuNDYgMjEuNDYgMCAwIDAtMzAuMS0zLjZ6TTI5NiA0NDBhMzUuOTggMzUuOTggMCAwIDAtMTMuNCA2OS40YzExLjUtMTguMSAyNy4xLTM0LjUgNDUuOS00OC44QTM1LjkgMzUuOSAwIDAgMCAyOTYgNDQwem03MiAxMDhhMzYgMzYgMCAxIDAgNzIgMCAzNiAzNiAwIDEgMC03MiAweicpKTtcbmV4cG9ydHMuUmVkZGl0U3F1YXJlRmlsbCA9IGdldEljb24oJ3JlZGRpdC1zcXVhcmUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMjk2IDQ0MGEzNS45OCAzNS45OCAwIDAgMC0xMy40IDY5LjRjMTEuNS0xOC4xIDI3LjEtMzQuNSA0NS45LTQ4LjhBMzUuOSAzNS45IDAgMCAwIDI5NiA0NDB6bTI4OS43IDE4NC45Yy0xNC45IDExLjctNDQuMyAyNC4zLTczLjcgMjQuM3MtNTguOS0xMi42LTczLjctMjQuM2MtOS4zLTcuMy0yMi43LTUuNy0zMCAzLjYtNy4zIDkuMy01LjcgMjIuNyAzLjYgMzAgMjUuNyAyMC40IDY1IDMzLjUgMTAwLjEgMzMuNSAzNS4xIDAgNzQuNC0xMy4xIDEwMC4yLTMzLjUgOS4zLTcuMyAxMC45LTIwLjggMy42LTMwYTIxLjQ2IDIxLjQ2IDAgMCAwLTMwLjEtMy42ek04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTc1NyA1NDEuOWM0LjYgMTMuNSA3IDI3LjYgNyA0Mi4xIDAgOTkuNC0xMTIuOCAxODAtMjUyIDE4MHMtMjUyLTgwLjYtMjUyLTE4MGMwLTE0LjUgMi40LTI4LjYgNy00Mi4xQTcyLjAxIDcyLjAxIDAgMCAxIDI5NiA0MDRjMjcuMSAwIDUwLjYgMTQuOSA2Mi45IDM3IDM2LjItMTkuOCA4MC4yLTMyLjggMTI4LjEtMzYuMWw1OC40LTEzMS4xYzQuMy05LjggMTUuMi0xNC44IDI1LjUtMTEuOGw5MS42IDI2LjVhNTQuMDMgNTQuMDMgMCAwIDEgMTAxLjYgMjUuNmMwIDI5LjgtMjQuMiA1NC01NCA1NC0yMy41IDAtNDMuNS0xNS4xLTUwLjktMzYuMUw1NzcgMzA4LjNsLTQzIDk2LjVjNDkuMSAzIDk0LjIgMTYuMSAxMzEuMiAzNi4zIDEyLjMtMjIuMSAzNS44LTM3IDYyLjktMzcgMzkuOCAwIDcyIDMyLjIgNzIgNzItLjEgMjkuMy0xNy44IDU0LjYtNDMuMSA2NS44ek01ODQgNTQ4YTM2IDM2IDAgMSAwIDcyIDAgMzYgMzYgMCAxIDAtNzIgMHptMTQ0LTEwOGEzNS45IDM1LjkgMCAwIDAtMzIuNSAyMC42YzE4LjggMTQuMyAzNC40IDMwLjcgNDUuOSA0OC44QTM1Ljk4IDM1Ljk4IDAgMCAwIDcyOCA0NDB6TTM2OCA1NDhhMzYgMzYgMCAxIDAgNzIgMCAzNiAzNiAwIDEgMC03MiAweicpKTtcbmV4cG9ydHMuUmVzdEZpbGwgPSBnZXRJY29uKCdyZXN0JywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTgzMiAyNTZoLTI4LjFsLTM1LjctMTIwLjljLTQtMTMuNy0xNi41LTIzLjEtMzAuNy0yMy4xaC00NTFjLTE0LjMgMC0yNi44IDkuNC0zMC43IDIzLjFMMjIwLjEgMjU2SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MjhjMCA0LjQgMy42IDggOCA4aDQ1LjhsNDcuNyA1NTguN2EzMiAzMiAwIDAgMCAzMS45IDI5LjNoNDI5LjJhMzIgMzIgMCAwIDAgMzEuOS0yOS4zTDgwMi4yIDMyNEg4NTZjNC40IDAgOC0zLjYgOC04di0yOGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNTA4IDcwNGMtNzkuNSAwLTE0NC02NC41LTE0NC0xNDRzNjQuNS0xNDQgMTQ0LTE0NCAxNDQgNjQuNSAxNDQgMTQ0LTY0LjUgMTQ0LTE0NCAxNDR6TTI5MSAyNTZsMjIuNC03NmgzOTcuMmwyMi40IDc2SDI5MXptMTM3IDMwNGE4MCA4MCAwIDEgMCAxNjAgMCA4MCA4MCAwIDEgMC0xNjAgMHonKSk7XG5leHBvcnRzLlJpZ2h0Q2lyY2xlRmlsbCA9IGdldEljb24oJ3JpZ2h0LWNpcmNsZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMTU0LjcgNDU0LjVsLTI0NiAxNzhjLTUuMyAzLjgtMTIuNyAwLTEyLjctNi41di00Ni45YzAtMTAuMiA0LjktMTkuOSAxMy4yLTI1LjlMNTY2LjYgNTEyIDQyMS4yIDQwNi44Yy04LjMtNi0xMy4yLTE1LjYtMTMuMi0yNS45VjMzNGMwLTYuNSA3LjQtMTAuMyAxMi43LTYuNWwyNDYgMTc4YzQuNCAzLjIgNC40IDkuOCAwIDEzeicpKTtcbmV4cG9ydHMuUm9ja2V0RmlsbCA9IGdldEljb24oJ3JvY2tldCcsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NjQgNzM2YzAtMTExLjYtNjUuNC0yMDgtMTYwLTI1Mi45VjMxNy4zYzAtMTUuMS01LjMtMjkuNy0xNS4xLTQxLjJMNTM2LjUgOTUuNEM1MzAuMSA4Ny44IDUyMSA4NCA1MTIgODRzLTE4LjEgMy44LTI0LjUgMTEuNEwzMzUuMSAyNzYuMWE2My45NyA2My45NyAwIDAgMC0xNS4xIDQxLjJ2MTY1LjhDMjI1LjQgNTI4IDE2MCA2MjQuNCAxNjAgNzM2aDE1Ni41Yy0yLjMgNy4yLTMuNSAxNS0zLjUgMjMuOCAwIDIyLjEgNy42IDQzLjcgMjEuNCA2MC44YTk3LjIgOTcuMiAwIDAgMCA0My4xIDMwLjZjMjMuMSA1NCA3NS42IDg4LjggMTM0LjUgODguOCAyOS4xIDAgNTcuMy04LjYgODEuNC0yNC44IDIzLjYtMTUuOCA0MS45LTM3LjkgNTMtNjRhOTcgOTcgMCAwIDAgNDMuMS0zMC41IDk3LjUyIDk3LjUyIDAgMCAwIDIxLjQtNjAuOGMwLTguNC0xLjEtMTYuNC0zLjEtMjMuOEw4NjQgNzM2ek01MTIgMzUyYTQ4LjAxIDQ4LjAxIDAgMCAxIDAgOTYgNDguMDEgNDguMDEgMCAwIDEgMC05NnptMTE2LjEgNDMyLjJjLTUuMiAzLTExLjIgNC4yLTE3LjEgMy40bC0xOS41LTIuNC0yLjggMTkuNGMtNS40IDM3LjktMzguNCA2Ni41LTc2LjcgNjYuNXMtNzEuMy0yOC42LTc2LjctNjYuNWwtMi44LTE5LjUtMTkuNSAyLjVhMjcuNyAyNy43IDAgMCAxLTE3LjEtMy41Yy04LjctNS0xNC4xLTE0LjMtMTQuMS0yNC40IDAtMTAuNiA1LjktMTkuNCAxNC42LTIzLjhoMjMxLjNjOC44IDQuNSAxNC42IDEzLjMgMTQuNiAyMy44LS4xIDEwLjItNS41IDE5LjYtMTQuMiAyNC41eicpKTtcbmV4cG9ydHMuUmlnaHRTcXVhcmVGaWxsID0gZ2V0SWNvbigncmlnaHQtc3F1YXJlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNjU4LjcgNTE4LjVsLTI0NiAxNzhjLTUuMyAzLjgtMTIuNyAwLTEyLjctNi41di00Ni45YzAtMTAuMiA0LjktMTkuOSAxMy4yLTI1LjlMNTU4LjYgNTEyIDQxMy4yIDQwNi44Yy04LjMtNi0xMy4yLTE1LjYtMTMuMi0yNS45VjMzNGMwLTYuNSA3LjQtMTAuMyAxMi43LTYuNWwyNDYgMTc4YzQuNCAzLjIgNC40IDkuOCAwIDEzeicpKTtcbmV4cG9ydHMuU2FmZXR5Q2VydGlmaWNhdGVGaWxsID0gZ2V0SWNvbignc2FmZXR5LWNlcnRpZmljYXRlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg2Ni45IDE2OS45TDUyNy4xIDU0LjFDNTIzIDUyLjcgNTE3LjUgNTIgNTEyIDUycy0xMSAuNy0xNS4xIDIuMUwxNTcuMSAxNjkuOWMtOC4zIDIuOC0xNS4xIDEyLjQtMTUuMSAyMS4ydjQ4Mi40YzAgOC44IDUuNyAyMC40IDEyLjYgMjUuOUw0OTkuMyA5NjhjMy41IDIuNyA4IDQuMSAxMi42IDQuMXM5LjItMS40IDEyLjYtNC4xbDM0NC43LTI2OC42YzYuOS01LjQgMTIuNi0xNyAxMi42LTI1LjlWMTkxLjFjLjItOC44LTYuNi0xOC4zLTE0LjktMjEuMnpNNjk0LjUgMzQwLjdMNDgxLjkgNjMzLjRhMTYuMSAxNi4xIDAgMCAxLTI2IDBsLTEyNi40LTE3NGMtMy44LTUuMyAwLTEyLjcgNi41LTEyLjdoNTUuMmM1LjEgMCAxMCAyLjUgMTMgNi42bDY0LjcgODkgMTUwLjktMjA3LjhjMy00LjEgNy44LTYuNiAxMy02LjZINjg4YzYuNS4xIDEwLjMgNy41IDYuNSAxMi44eicpKTtcbmV4cG9ydHMuU2F2ZUZpbGwgPSBnZXRJY29uKCdzYXZlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg5My4zIDI5My4zTDczMC43IDEzMC43Yy0xMi0xMi0yOC4zLTE4LjctNDUuMy0xOC43SDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYzMzguNWMwLTE3LTYuNy0zMy4yLTE4LjctNDUuMnpNMzg0IDE3NmgyNTZ2MTEySDM4NFYxNzZ6bTEyOCA1NTRjLTc5LjUgMC0xNDQtNjQuNS0xNDQtMTQ0czY0LjUtMTQ0IDE0NC0xNDQgMTQ0IDY0LjUgMTQ0IDE0NC02NC41IDE0NC0xNDQgMTQ0em0wLTIyNGMtNDQuMiAwLTgwIDM1LjgtODAgODBzMzUuOCA4MCA4MCA4MCA4MC0zNS44IDgwLTgwLTM1LjgtODAtODAtODB6JykpO1xuZXhwb3J0cy5TY2hlZHVsZUZpbGwgPSBnZXRJY29uKCdzY2hlZHVsZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MjggMjI0SDc2OHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2SDU0OHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2SDMyOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2SDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY1NzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoODMyYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjI1NmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNDI0IDY4OGMwIDQuNC0zLjYgOC04IDhIMjMyYy00LjQgMC04LTMuNi04LTh2LTQ4YzAtNC40IDMuNi04IDgtOGgxODRjNC40IDAgOCAzLjYgOCA4djQ4em0wLTEzNmMwIDQuNC0zLjYgOC04IDhIMjMyYy00LjQgMC04LTMuNi04LTh2LTQ4YzAtNC40IDMuNi04IDgtOGgxODRjNC40IDAgOCAzLjYgOCA4djQ4em0zNzQuNS05MS4zbC0xNjUgMjI4LjdhMTUuOSAxNS45IDAgMCAxLTI1LjggMEw0OTMuNSA1MzEuMmMtMy44LTUuMyAwLTEyLjcgNi41LTEyLjdoNTQuOWM1LjEgMCA5LjkgMi41IDEyLjkgNi42bDUyLjggNzMuMSAxMDMuNy0xNDMuN2MzLTQuMiA3LjgtNi42IDEyLjktNi42SDc5MmM2LjUuMSAxMC4zIDcuNSA2LjUgMTIuOHonKSk7XG5leHBvcnRzLlNlY3VyaXR5U2NhbkZpbGwgPSBnZXRJY29uKCdzZWN1cml0eS1zY2FuJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg2Ni45IDE2OS45TDUyNy4xIDU0LjFDNTIzIDUyLjcgNTE3LjUgNTIgNTEyIDUycy0xMSAuNy0xNS4xIDIuMUwxNTcuMSAxNjkuOWMtOC4zIDIuOC0xNS4xIDEyLjQtMTUuMSAyMS4ydjQ4Mi40YzAgOC44IDUuNyAyMC40IDEyLjYgMjUuOUw0OTkuMyA5NjhjMy41IDIuNyA4IDQuMSAxMi42IDQuMXM5LjItMS40IDEyLjYtNC4xbDM0NC43LTI2OC42YzYuOS01LjQgMTIuNi0xNyAxMi42LTI1LjlWMTkxLjFjLjItOC44LTYuNi0xOC4zLTE0LjktMjEuMnpNNjI2LjggNTU0Yy00OC41IDQ4LjUtMTIzIDU1LjItMTc4LjYgMjAuMWwtNzcuNSA3Ny41YTguMDMgOC4wMyAwIDAgMS0xMS4zIDBsLTM0LTM0YTguMDMgOC4wMyAwIDAgMSAwLTExLjNsNzcuNS03Ny41Yy0zNS4xLTU1LjctMjguNC0xMzAuMSAyMC4xLTE3OC42IDU2LjMtNTYuMyAxNDcuNS01Ni4zIDIwMy44IDAgNTYuMyA1Ni4zIDU2LjMgMTQ3LjUgMCAyMDMuOHptLTE1OC41NC00NS4yN2E4MC4xIDgwLjEgMCAxIDAgMTEzLjI3LTExMy4yOCA4MC4xIDgwLjEgMCAxIDAtMTEzLjI3IDExMy4yOHonKSk7XG5leHBvcnRzLlNldHRpbmdGaWxsID0gZ2V0SWNvbignc2V0dGluZycsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIuNSAzOTAuNmMtMjkuOSAwLTU3LjkgMTEuNi03OS4xIDMyLjgtMjEuMSAyMS4yLTMyLjggNDkuMi0zMi44IDc5LjEgMCAyOS45IDExLjcgNTcuOSAzMi44IDc5LjEgMjEuMiAyMS4xIDQ5LjIgMzIuOCA3OS4xIDMyLjggMjkuOSAwIDU3LjktMTEuNyA3OS4xLTMyLjggMjEuMS0yMS4yIDMyLjgtNDkuMiAzMi44LTc5LjEgMC0yOS45LTExLjctNTcuOS0zMi44LTc5LjFhMTEwLjk2IDExMC45NiAwIDAgMC03OS4xLTMyLjh6bTQxMi4zIDIzNS41bC02NS40LTU1LjljMy4xLTE5IDQuNy0zOC40IDQuNy01Ny43cy0xLjYtMzguOC00LjctNTcuN2w2NS40LTU1LjlhMzIuMDMgMzIuMDMgMCAwIDAgOS4zLTM1LjJsLS45LTIuNmE0NDIuNSA0NDIuNSAwIDAgMC03OS42LTEzNy43bC0xLjgtMi4xYTMyLjEyIDMyLjEyIDAgMCAwLTM1LjEtOS41bC04MS4yIDI4LjljLTMwLTI0LjYtNjMuNC00NC05OS42LTU3LjVsLTE1LjctODQuOWEzMi4wNSAzMi4wNSAwIDAgMC0yNS44LTI1LjdsLTIuNy0uNWMtNTItOS40LTEwNi44LTkuNC0xNTguOCAwbC0yLjcuNWEzMi4wNSAzMi4wNSAwIDAgMC0yNS44IDI1LjdsLTE1LjggODUuM2EzNTMuNDQgMzUzLjQ0IDAgMCAwLTk4LjkgNTcuM2wtODEuOC0yOS4xYTMyIDMyIDAgMCAwLTM1LjEgOS41bC0xLjggMi4xYTQ0NS45MyA0NDUuOTMgMCAwIDAtNzkuNiAxMzcuN2wtLjkgMi42Yy00LjUgMTIuNS0uOCAyNi41IDkuMyAzNS4ybDY2LjIgNTYuNWMtMy4xIDE4LjgtNC42IDM4LTQuNiA1NyAwIDE5LjIgMS41IDM4LjQgNC42IDU3bC02NiA1Ni41YTMyLjAzIDMyLjAzIDAgMCAwLTkuMyAzNS4ybC45IDIuNmMxOC4xIDUwLjMgNDQuOCA5Ni44IDc5LjYgMTM3LjdsMS44IDIuMWEzMi4xMiAzMi4xMiAwIDAgMCAzNS4xIDkuNWw4MS44LTI5LjFjMjkuOCAyNC41IDYzIDQzLjkgOTguOSA1Ny4zbDE1LjggODUuM2EzMi4wNSAzMi4wNSAwIDAgMCAyNS44IDI1LjdsMi43LjVhNDQ4LjI3IDQ0OC4yNyAwIDAgMCAxNTguOCAwbDIuNy0uNWEzMi4wNSAzMi4wNSAwIDAgMCAyNS44LTI1LjdsMTUuNy04NC45YzM2LjItMTMuNiA2OS42LTMyLjkgOTkuNi01Ny41bDgxLjIgMjguOWEzMiAzMiAwIDAgMCAzNS4xLTkuNWwxLjgtMi4xYzM0LjgtNDEuMSA2MS41LTg3LjQgNzkuNi0xMzcuN2wuOS0yLjZjNC4zLTEyLjQuNi0yNi4zLTkuNS0zNXptLTQxMi4zIDUyLjJjLTk3LjEgMC0xNzUuOC03OC43LTE3NS44LTE3NS44czc4LjctMTc1LjggMTc1LjgtMTc1LjggMTc1LjggNzguNyAxNzUuOCAxNzUuOC03OC43IDE3NS44LTE3NS44IDE3NS44eicpKTtcbmV4cG9ydHMuU2hvcEZpbGwgPSBnZXRJY29uKCdzaG9wJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MiAyNzIuMVYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJIMTc0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYxMjguMWMtMTYuNyAxLTMwIDE0LjktMzAgMzEuOXYxMzEuN2ExNzcgMTc3IDAgMCAwIDE0LjQgNzAuNGM0LjMgMTAuMiA5LjYgMTkuOCAxNS42IDI4Ljl2MzQ1YzAgMTcuNiAxNC4zIDMyIDMyIDMyaDI3NFY3MzZoMTI4djE3NmgyNzRjMTcuNyAwIDMyLTE0LjMgMzItMzJWNTM1YTE3NSAxNzUgMCAwIDAgMTUuNi0yOC45YzkuNS0yMi4zIDE0LjQtNDYgMTQuNC03MC40VjMwNGMwLTE3LTEzLjMtMzAuOS0zMC0zMS45em0tNzIgNTY4SDY0MFY3MDRjMC0xNy43LTE0LjMtMzItMzItMzJINDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYxMzYuMUgyMTRWNTk3LjljMi45IDEuNCA1LjkgMi44IDkgNCAyMi4zIDkuNCA0NiAxNC4xIDcwLjQgMTQuMXM0OC00LjcgNzAuNC0xNC4xYzEzLjgtNS44IDI2LjgtMTMuMiAzOC43LTIyLjEuMi0uMS40LS4xLjYgMGExODAuNCAxODAuNCAwIDAgMCAzOC43IDIyLjFjMjIuMyA5LjQgNDYgMTQuMSA3MC40IDE0LjEgMjQuNCAwIDQ4LTQuNyA3MC40LTE0LjEgMTMuOC01LjggMjYuOC0xMy4yIDM4LjctMjIuMS4yLS4xLjQtLjEuNiAwYTE4MC40IDE4MC40IDAgMCAwIDM4LjcgMjIuMWMyMi4zIDkuNCA0NiAxNC4xIDcwLjQgMTQuMSAyNC40IDAgNDgtNC43IDcwLjQtMTQuMSAzLTEuMyA2LTIuNiA5LTR2MjQyLjJ6bTAtNTY4LjFIMjE0di04OGg1OTZ2ODh6JykpO1xuZXhwb3J0cy5TaG9wcGluZ0ZpbGwgPSBnZXRJY29uKCdzaG9wcGluZycsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004MzIgMzEySDY5NnYtMTZjMC0xMDEuNi04Mi40LTE4NC0xODQtMTg0cy0xODQgODIuNC0xODQgMTg0djE2SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NTM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlYzNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS0yMDggMEg0MDB2LTE2YzAtNjEuOSA1MC4xLTExMiAxMTItMTEyczExMiA1MC4xIDExMiAxMTJ2MTZ6JykpO1xuZXhwb3J0cy5Ta2V0Y2hDaXJjbGVGaWxsID0gZ2V0SWNvbignc2tldGNoLWNpcmNsZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ001ODIuMyA2MjUuNmwxNDcuOS0xNjYuM2gtNjMuNHptOTAtMjAyLjNoNjIuNWwtOTIuMS0xMTUuMXptLTI3NC43IDM2TDUxMiA2ODQuNWwxMTQuNC0yMjUuMnpNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTI4Ni43IDM4MC4yTDUxNS44IDc2Mi4zYy0xIDEuMS0yLjQgMS43LTMuOCAxLjdzLTIuOC0uNi0zLjgtMS43TDIyNS4zIDQ0NC4yYTUuMTQgNS4xNCAwIDAgMS0uMi02LjZMMzY1LjYgMjYyYzEtMS4yIDIuNC0xLjkgNC0xLjloMjg0LjZjMS42IDAgMyAuNyA0IDEuOWwxNDAuNSAxNzUuNmE0LjkgNC45IDAgMCAxIDAgNi42em0tMTkwLjUtMjAuOUw1MTIgMzI2LjFsLTk2LjIgOTcuMnpNNDIwLjMgMzAxLjFsLTIzLjEgODkuOCA4OC44LTg5Ljh6bTE4My40IDBINTM4bDg4LjggODkuOHptLTIyMi40IDcuMWwtOTIuMSAxMTUuMWg2Mi41em0tODcuNSAxNTEuMWwxNDcuOSAxNjYuMy04NC41LTE2Ni4zeicpKTtcbmV4cG9ydHMuU2tldGNoU3F1YXJlRmlsbCA9IGdldEljb24oJ3NrZXRjaC1zcXVhcmUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNjA4LjIgNDIzLjNMNTEyIDMyNi4xbC05Ni4yIDk3LjJ6bS0yNS45IDIwMi4zbDE0Ny45LTE2Ni4zaC02My40em05MC0yMDIuM2g2Mi41bC05Mi4xLTExNS4xek04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS04MS4zIDMzMi4yTDUxNS44IDc2Mi4zYy0xIDEuMS0yLjQgMS43LTMuOCAxLjdzLTIuOC0uNi0zLjgtMS43TDIyNS4zIDQ0NC4yYTUuMTQgNS4xNCAwIDAgMS0uMi02LjZMMzY1LjYgMjYyYzEtMS4yIDIuNC0xLjkgNC0xLjloMjg0LjZjMS42IDAgMyAuNyA0IDEuOWwxNDAuNSAxNzUuNmE0LjkgNC45IDAgMCAxIDAgNi42em0tNDAxLjEgMTUuMUw1MTIgNjg0LjVsMTE0LjQtMjI1LjJ6bS0xNi4zLTE1MS4xbC05Mi4xIDExNS4xaDYyLjV6bS04Ny41IDE1MS4xbDE0Ny45IDE2Ni4zLTg0LjUtMTY2LjN6bTEyNi41LTE1OC4ybC0yMy4xIDg5LjggODguOC04OS44em0xODMuNCAwSDUzOGw4OC44IDg5Ljh6JykpO1xuZXhwb3J0cy5Ta2luRmlsbCA9IGdldEljb24oJ3NraW4nLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODcwIDEyNkg2NjMuOGMtMTcuNCAwLTMyLjkgMTEuOS0zNyAyOS4zQzYxNC4zIDIwOC4xIDU2NyAyNDYgNTEyIDI0NnMtMTAyLjMtMzcuOS0xMTQuOC05MC43YTM3LjkzIDM3LjkzIDAgMCAwLTM3LTI5LjNIMTU0YTQ0IDQ0IDAgMCAwLTQ0IDQ0djI1MmE0NCA0NCAwIDAgMCA0NCA0NGg3NXYzODhhNDQgNDQgMCAwIDAgNDQgNDRoNDc4YTQ0IDQ0IDAgMCAwIDQ0LTQ0VjQ2Nmg3NWE0NCA0NCAwIDAgMCA0NC00NFYxNzBhNDQgNDQgMCAwIDAtNDQtNDR6JykpO1xuZXhwb3J0cy5TbGFja0NpcmNsZUZpbGwgPSBnZXRJY29uKCdzbGFjay1jaXJjbGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6TTM2MS41IDU4MC4yYzAgMjcuOC0yMi41IDUwLjQtNTAuMyA1MC40YTUwLjM1IDUwLjM1IDAgMCAxLTUwLjMtNTAuNGMwLTI3LjggMjIuNS01MC40IDUwLjMtNTAuNGg1MC4zdjUwLjR6bTEzNCAxMzQuNGMwIDI3LjgtMjIuNSA1MC40LTUwLjMgNTAuNC0yNy44IDAtNTAuMy0yMi42LTUwLjMtNTAuNFY1ODAuMmMwLTI3LjggMjIuNS01MC40IDUwLjMtNTAuNGE1MC4zNSA1MC4zNSAwIDAgMSA1MC4zIDUwLjR2MTM0LjR6bS01MC4yLTIxOC40aC0xMzRjLTI3LjggMC01MC4zLTIyLjYtNTAuMy01MC40IDAtMjcuOCAyMi41LTUwLjQgNTAuMy01MC40aDEzNGMyNy44IDAgNTAuMyAyMi42IDUwLjMgNTAuNC0uMSAyNy45LTIyLjYgNTAuNC01MC4zIDUwLjR6bTAtMTM0LjRjLTEzLjMgMC0yNi4xLTUuMy0zNS42LTE0LjhTMzk1IDMyNC44IDM5NSAzMTEuNGMwLTI3LjggMjIuNS01MC40IDUwLjMtNTAuNCAyNy44IDAgNTAuMyAyMi42IDUwLjMgNTAuNHY1MC40aC01MC4zem04My43LTUwLjRjMC0yNy44IDIyLjUtNTAuNCA1MC4zLTUwLjQgMjcuOCAwIDUwLjMgMjIuNiA1MC4zIDUwLjR2MTM0LjRjMCAyNy44LTIyLjUgNTAuNC01MC4zIDUwLjQtMjcuOCAwLTUwLjMtMjIuNi01MC4zLTUwLjRWMzExLjR6TTU3OS4zIDc2NWMtMjcuOCAwLTUwLjMtMjIuNi01MC4zLTUwLjR2LTUwLjRoNTAuM2MyNy44IDAgNTAuMyAyMi42IDUwLjMgNTAuNCAwIDI3LjgtMjIuNSA1MC40LTUwLjMgNTAuNHptMTM0LTEzNC40aC0xMzRjLTEzLjMgMC0yNi4xLTUuMy0zNS42LTE0LjhTNTI5IDU5My42IDUyOSA1ODAuMmMwLTI3LjggMjIuNS01MC40IDUwLjMtNTAuNGgxMzRjMjcuOCAwIDUwLjMgMjIuNiA1MC4zIDUwLjQgMCAyNy44LTIyLjUgNTAuNC01MC4zIDUwLjR6bTAtMTM0LjRINjYzdi01MC40YzAtMjcuOCAyMi41LTUwLjQgNTAuMy01MC40czUwLjMgMjIuNiA1MC4zIDUwLjRjMCAyNy44LTIyLjUgNTAuNC01MC4zIDUwLjR6JykpO1xuZXhwb3J0cy5TbGFja1NxdWFyZUZpbGwgPSBnZXRJY29uKCdzbGFjay1zcXVhcmUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek01MjkgMzExLjRjMC0yNy44IDIyLjUtNTAuNCA1MC4zLTUwLjQgMjcuOCAwIDUwLjMgMjIuNiA1MC4zIDUwLjR2MTM0LjRjMCAyNy44LTIyLjUgNTAuNC01MC4zIDUwLjQtMjcuOCAwLTUwLjMtMjIuNi01MC4zLTUwLjRWMzExLjR6TTM2MS41IDU4MC4yYzAgMjcuOC0yMi41IDUwLjQtNTAuMyA1MC40YTUwLjM1IDUwLjM1IDAgMCAxLTUwLjMtNTAuNGMwLTI3LjggMjIuNS01MC40IDUwLjMtNTAuNGg1MC4zdjUwLjR6bTEzNCAxMzQuNGMwIDI3LjgtMjIuNSA1MC40LTUwLjMgNTAuNC0yNy44IDAtNTAuMy0yMi42LTUwLjMtNTAuNFY1ODAuMmMwLTI3LjggMjIuNS01MC40IDUwLjMtNTAuNGE1MC4zNSA1MC4zNSAwIDAgMSA1MC4zIDUwLjR2MTM0LjR6bS01MC4yLTIxOC40aC0xMzRjLTI3LjggMC01MC4zLTIyLjYtNTAuMy01MC40IDAtMjcuOCAyMi41LTUwLjQgNTAuMy01MC40aDEzNGMyNy44IDAgNTAuMyAyMi42IDUwLjMgNTAuNC0uMSAyNy45LTIyLjYgNTAuNC01MC4zIDUwLjR6bTAtMTM0LjRjLTEzLjMgMC0yNi4xLTUuMy0zNS42LTE0LjhTMzk1IDMyNC44IDM5NSAzMTEuNGMwLTI3LjggMjIuNS01MC40IDUwLjMtNTAuNCAyNy44IDAgNTAuMyAyMi42IDUwLjMgNTAuNHY1MC40aC01MC4zem0xMzQgNDAzLjJjLTI3LjggMC01MC4zLTIyLjYtNTAuMy01MC40di01MC40aDUwLjNjMjcuOCAwIDUwLjMgMjIuNiA1MC4zIDUwLjQgMCAyNy44LTIyLjUgNTAuNC01MC4zIDUwLjR6bTEzNC0xMzQuNGgtMTM0YTUwLjM1IDUwLjM1IDAgMCAxLTUwLjMtNTAuNGMwLTI3LjggMjIuNS01MC40IDUwLjMtNTAuNGgxMzRjMjcuOCAwIDUwLjMgMjIuNiA1MC4zIDUwLjQgMCAyNy44LTIyLjUgNTAuNC01MC4zIDUwLjR6bTAtMTM0LjRINjYzdi01MC40YzAtMjcuOCAyMi41LTUwLjQgNTAuMy01MC40czUwLjMgMjIuNiA1MC4zIDUwLjRjMCAyNy44LTIyLjUgNTAuNC01MC4zIDUwLjR6JykpO1xuZXhwb3J0cy5Ta3lwZUZpbGwgPSBnZXRJY29uKCdza3lwZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODMuNyA1NzguNmM0LjEtMjIuNSA2LjMtNDUuNSA2LjMtNjguNSAwLTUxLTEwLTEwMC41LTI5LjctMTQ3LTE5LTQ1LTQ2LjMtODUuNC04MS0xMjAuMWEzNzUuNzkgMzc1Ljc5IDAgMCAwLTEyMC4xLTgwLjljLTQ2LjYtMTkuNy05Ni0yOS43LTE0Ny0yOS43LTI0IDAtNDguMSAyLjMtNzEuNSA2LjhBMjI1LjEgMjI1LjEgMCAwIDAgMzM1LjYgMTEzYy01OS43IDAtMTE1LjkgMjMuMy0xNTguMSA2NS41QTIyMi4yNSAyMjIuMjUgMCAwIDAgMTEyIDMzNi42YzAgMzggOS44IDc1LjQgMjguMSAxMDguNC0zLjcgMjEuNC01LjcgNDMuMy01LjcgNjUuMSAwIDUxIDEwIDEwMC41IDI5LjcgMTQ3IDE5IDQ1IDQ2LjIgODUuNCA4MC45IDEyMC4xIDM0LjcgMzQuNyA3NS4xIDYxLjkgMTIwLjEgODAuOSA0Ni42IDE5LjcgOTYgMjkuNyAxNDcgMjkuNyAyMi4yIDAgNDQuNC0yIDY2LjItNS45IDMzLjUgMTguOSA3MS4zIDI5IDExMCAyOSA1OS43IDAgMTE1LjktMjMuMiAxNTguMS02NS41IDQyLjMtNDIuMiA2NS41LTk4LjQgNjUuNS0xNTguMS4xLTM4LTkuNy03NS41LTI4LjItMTA4Ljd6bS0zNzAgMTYyLjljLTEzNC4yIDAtMTk0LjItNjYtMTk0LjItMTE1LjQgMC0yNS40IDE4LjctNDMuMSA0NC41LTQzLjEgNTcuNCAwIDQyLjYgODIuNSAxNDkuNyA4Mi41IDU0LjkgMCA4NS4yLTI5LjggODUuMi02MC4zIDAtMTguMy05LTM4LjctNDUuMi00Ny42bC0xMTkuNC0yOS44Yy05Ni4xLTI0LjEtMTEzLjYtNzYuMS0xMTMuNi0xMjQuOSAwLTEwMS40IDk1LjUtMTM5LjUgMTg1LjItMTM5LjUgODIuNiAwIDE4MCA0NS43IDE4MCAxMDYuNSAwIDI2LjEtMjIuNiA0MS4yLTQ4LjQgNDEuMi00OSAwLTQwLTY3LjgtMTM4LjctNjcuOC00OSAwLTc2LjEgMjIuMi03Ni4xIDUzLjlzMzguNyA0MS44IDcyLjMgNDkuNWw4OC40IDE5LjZjOTYuOCAyMS42IDEyMS4zIDc4LjEgMTIxLjMgMTMxLjMgMCA4Mi4zLTYzLjMgMTQzLjktMTkxIDE0My45eicpKTtcbmV4cG9ydHMuU2xpZGVyc0ZpbGwgPSBnZXRJY29uKCdzbGlkZXJzJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkwNCAyOTZoLTY2di05NmMwLTQuNC0zLjYtOC04LThoLTUyYy00LjQgMC04IDMuNi04IDh2OTZoLTY2Yy00LjQgMC04IDMuNi04IDh2NDE2YzAgNC40IDMuNiA4IDggOGg2NnY5NmMwIDQuNCAzLjYgOCA4IDhoNTJjNC40IDAgOC0zLjYgOC04di05Nmg2NmM0LjQgMCA4LTMuNiA4LThWMzA0YzAtNC40LTMuNi04LTgtOHptLTU4NC03MmgtNjZ2LTU2YzAtNC40LTMuNi04LTgtOGgtNTJjLTQuNCAwLTggMy42LTggOHY1NmgtNjZjLTQuNCAwLTggMy42LTggOHY1NjBjMCA0LjQgMy42IDggOCA4aDY2djU2YzAgNC40IDMuNiA4IDggOGg1MmM0LjQgMCA4LTMuNiA4LTh2LTU2aDY2YzQuNCAwIDgtMy42IDgtOFYyMzJjMC00LjQtMy42LTgtOC04em0yOTIgMTgwaC02NlYyMzJjMC00LjQtMy42LTgtOC04aC01MmMtNC40IDAtOCAzLjYtOCA4djE3MmgtNjZjLTQuNCAwLTggMy42LTggOHYyMDBjMCA0LjQgMy42IDggOCA4aDY2djE3MmMwIDQuNCAzLjYgOCA4IDhoNTJjNC40IDAgOC0zLjYgOC04VjYyMGg2NmM0LjQgMCA4LTMuNiA4LThWNDEyYzAtNC40LTMuNi04LTgtOHonKSk7XG5leHBvcnRzLlNtaWxlRmlsbCA9IGdldEljb24oJ3NtaWxlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0ek0yODggNDIxYTQ4LjAxIDQ4LjAxIDAgMCAxIDk2IDAgNDguMDEgNDguMDEgMCAwIDEtOTYgMHptMjI0IDI3MmMtODUuNSAwLTE1NS42LTY3LjMtMTYwLTE1MS42YTggOCAwIDAgMSA4LTguNGg0OC4xYzQuMiAwIDcuOCAzLjIgOC4xIDcuNEM0MjAgNTg5LjkgNDYxLjUgNjI5IDUxMiA2MjlzOTIuMS0zOS4xIDk1LjgtODguNmMuMy00LjIgMy45LTcuNCA4LjEtNy40SDY2NGE4IDggMCAwIDEgOCA4LjRDNjY3LjYgNjI1LjcgNTk3LjUgNjkzIDUxMiA2OTN6bTE3Ni0yMjRhNDguMDEgNDguMDEgMCAwIDEgMC05NiA0OC4wMSA0OC4wMSAwIDAgMSAwIDk2eicpKTtcbmV4cG9ydHMuU25pcHBldHNGaWxsID0gZ2V0SWNvbignc25pcHBldHMnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODMyIDExMkg3MjRWNzJjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djQwSDUwMFY3MmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NDBIMzIwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnYxMjBoLTk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY2MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNTEyYzE3LjcgMCAzMi0xNC4zIDMyLTMydi05Nmg5NmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTY2NCA0ODZINTE0VjMzNmguMkw2NjQgNDg1Ljh2LjJ6bTEyOCAyNzRoLTU2VjQ1Nkw1NDQgMjY0SDM2MHYtODBoNjh2MzJjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtMzJoMTUydjMyYzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTMyaDY4djU3NnonKSk7XG5leHBvcnRzLlNvdW5kRmlsbCA9IGdldEljb24oJ3NvdW5kJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg5Mi4xIDczNy44bC0xMTAuMy02My43YTE1LjkgMTUuOSAwIDAgMC0yMS43IDUuOWwtMTkuOSAzNC41Yy00LjQgNy42LTEuOCAxNy40IDUuOCAyMS44TDg1Ni4zIDgwMGExNS45IDE1LjkgMCAwIDAgMjEuNy01LjlsMTkuOS0zNC41YzQuNC03LjYgMS43LTE3LjQtNS44LTIxLjh6TTc2MCAzNDRhMTUuOSAxNS45IDAgMCAwIDIxLjcgNS45TDg5MiAyODYuMmM3LjYtNC40IDEwLjItMTQuMiA1LjgtMjEuOEw4NzggMjMwYTE1LjkgMTUuOSAwIDAgMC0yMS43LTUuOUw3NDYgMjg3LjhhMTUuOTkgMTUuOTkgMCAwIDAtNS44IDIxLjhMNzYwIDM0NHptMTc0IDEzMkg4MDZjLTguOCAwLTE2IDcuMi0xNiAxNnY0MGMwIDguOCA3LjIgMTYgMTYgMTZoMTI4YzguOCAwIDE2LTcuMiAxNi0xNnYtNDBjMC04LjgtNy4yLTE2LTE2LTE2ek02MjUuOSAxMTVjLTUuOSAwLTExLjkgMS42LTE3LjQgNS4zTDI1NCAzNTJIOTBjLTguOCAwLTE2IDcuMi0xNiAxNnYyODhjMCA4LjggNy4yIDE2IDE2IDE2aDE2NGwzNTQuNSAyMzEuN2M1LjUgMy42IDExLjYgNS4zIDE3LjQgNS4zIDE2LjcgMCAzMi4xLTEzLjMgMzIuMS0zMi4xVjE0Ny4xYzAtMTguOC0xNS40LTMyLjEtMzIuMS0zMi4xeicpKTtcbmV4cG9ydHMuU3RhckZpbGwgPSBnZXRJY29uKCdzdGFyJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkwOC4xIDM1My4xbC0yNTMuOS0zNi45TDU0MC43IDg2LjFjLTMuMS02LjMtOC4yLTExLjQtMTQuNS0xNC41LTE1LjgtNy44LTM1LTEuMy00Mi45IDE0LjVMMzY5LjggMzE2LjJsLTI1My45IDM2LjljLTcgMS0xMy40IDQuMy0xOC4zIDkuM2EzMi4wNSAzMi4wNSAwIDAgMCAuNiA0NS4zbDE4My43IDE3OS4xLTQzLjQgMjUyLjlhMzEuOTUgMzEuOTUgMCAwIDAgNDYuNCAzMy43TDUxMiA3NTRsMjI3LjEgMTE5LjRjNi4yIDMuMyAxMy40IDQuNCAyMC4zIDMuMiAxNy40LTMgMjkuMS0xOS41IDI2LjEtMzYuOWwtNDMuNC0yNTIuOSAxODMuNy0xNzkuMWM1LTQuOSA4LjMtMTEuMyA5LjMtMTguMyAyLjctMTcuNS05LjUtMzMuNy0yNy0zNi4zeicpKTtcbmV4cG9ydHMuU3RlcEJhY2t3YXJkRmlsbCA9IGdldEljb24oJ3N0ZXAtYmFja3dhcmQnLCBmaWxsLCBnZXROb2RlKG5vcm1hbFZpZXdCb3gsICdNMzQ3LjYgNTI4Ljk1bDM4My4yIDMwMS4wMmMxNC4yNSAxMS4yIDM1LjIgMS4xIDM1LjItMTYuOTVWMjEwLjk3YzAtMTguMDUtMjAuOTUtMjguMTQtMzUuMi0xNi45NEwzNDcuNiA0OTUuMDVhMjEuNTMgMjEuNTMgMCAwIDAgMCAzMy45TTMzMCA4NjRoLTY0YTggOCAwIDAgMS04LThWMTY4YTggOCAwIDAgMSA4LThoNjRhOCA4IDAgMCAxIDggOHY2ODhhOCA4IDAgMCAxLTggOCcpKTtcbmV4cG9ydHMuU3RlcEZvcndhcmRGaWxsID0gZ2V0SWNvbignc3RlcC1mb3J3YXJkJywgZmlsbCwgZ2V0Tm9kZShub3JtYWxWaWV3Qm94LCAnTTY3Ni40IDUyOC45NUwyOTMuMiA4MjkuOTdjLTE0LjI1IDExLjItMzUuMiAxLjEtMzUuMi0xNi45NVYyMTAuOTdjMC0xOC4wNSAyMC45NS0yOC4xNCAzNS4yLTE2Ljk0bDM4My4yIDMwMS4wMmEyMS41MyAyMS41MyAwIDAgMSAwIDMzLjlNNjk0IDg2NGg2NGE4IDggMCAwIDAgOC04VjE2OGE4IDggMCAwIDAtOC04aC02NGE4IDggMCAwIDAtOCA4djY4OGE4IDggMCAwIDAgOCA4JykpO1xuZXhwb3J0cy5TdG9wRmlsbCA9IGdldEljb24oJ3N0b3AnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTIzNC44IDczNi41TDIyMy41IDI3Ny4yYzE2LTE5LjcgMzQtMzcuNyA1My43LTUzLjdsNTIzLjMgNTIzLjNjLTE2IDE5LjYtMzQgMzcuNy01My43IDUzLjd6JykpO1xuZXhwb3J0cy5Td2l0Y2hlckZpbGwgPSBnZXRJY29uKCdzd2l0Y2hlcicsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ003NTIgMjQwSDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjA4YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDYwOGMxNy43IDAgMzItMTQuMyAzMi0zMlYyNzJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTU5NiA2MDZjMCA0LjQtMy42IDgtOCA4SDMwOGMtNC40IDAtOC0zLjYtOC04di00OGMwLTQuNCAzLjYtOCA4LThoMjgwYzQuNCAwIDggMy42IDggOHY0OHptMjg0LTQ5NEgyNjRjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTc2djU3NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04VjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnonKSk7XG5leHBvcnRzLlRhYmxldEZpbGwgPSBnZXRJY29uKCd0YWJsZXQnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODAwIDY0SDIyNGMtMzUuMyAwLTY0IDI4LjctNjQgNjR2NzY4YzAgMzUuMyAyOC43IDY0IDY0IDY0aDU3NmMzNS4zIDAgNjQtMjguNyA2NC02NFYxMjhjMC0zNS4zLTI4LjctNjQtNjQtNjR6TTUxMiA4MjRjLTIyLjEgMC00MC0xNy45LTQwLTQwczE3LjktNDAgNDAtNDAgNDAgMTcuOSA0MCA0MC0xNy45IDQwLTQwIDQweicpKTtcbmV4cG9ydHMuVGFnRmlsbCA9IGdldEljb24oJ3RhZycsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MzggNDU4LjhsLTI5LjYtMzEyLjZjLTEuNS0xNi4yLTE0LjQtMjktMzAuNi0zMC42TDU2NS4yIDg2aC0uNGMtMy4yIDAtNS43IDEtNy42IDIuOUw4OC45IDU1Ny4yYTkuOTYgOS45NiAwIDAgMCAwIDE0LjFsMzYzLjggMzYzLjhjMS45IDEuOSA0LjQgMi45IDcuMSAyLjlzNS4yLTEgNy4xLTIuOWw0NjguMy00NjguM2MyLTIuMSAzLTUgMi44LTh6TTY5OSAzODdjLTM1LjMgMC02NC0yOC43LTY0LTY0czI4LjctNjQgNjQtNjQgNjQgMjguNyA2NCA2NC0yOC43IDY0LTY0IDY0eicpKTtcbmV4cG9ydHMuVGFnc0ZpbGwgPSBnZXRJY29uKCd0YWdzJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTQ4My4yIDc5MC4zTDg2MS40IDQxMmMxLjctMS43IDIuNS00IDIuMy02LjNsLTI1LjUtMzAxLjRjLS43LTcuOC02LjgtMTMuOS0xNC42LTE0LjZMNTIyLjIgNjQuM2MtMi4zLS4yLTQuNy42LTYuMyAyLjNMMTM3LjcgNDQ0LjhhOC4wMyA4LjAzIDAgMCAwIDAgMTEuM2wzMzQuMiAzMzQuMmMzLjEgMy4yIDguMiAzLjIgMTEuMyAwem0xMjIuNy01MzMuNGMxOC43LTE4LjcgNDkuMS0xOC43IDY3LjkgMCAxOC43IDE4LjcgMTguNyA0OS4xIDAgNjcuOS0xOC43IDE4LjctNDkuMSAxOC43LTY3LjkgMC0xOC43LTE4LjctMTguNy00OS4xIDAtNjcuOXptMjgzLjggMjgyLjlsLTM5LjYtMzkuNWE4LjAzIDguMDMgMCAwIDAtMTEuMyAwbC0zNjIgMzYxLjMtMjM3LjYtMjM3YTguMDMgOC4wMyAwIDAgMC0xMS4zIDBsLTM5LjYgMzkuNWE4LjAzIDguMDMgMCAwIDAgMCAxMS4zbDI0My4yIDI0Mi44IDM5LjYgMzkuNWMzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDQwNy4zLTQwNi42YzMuMS0zLjEgMy4xLTguMiAwLTExLjN6JykpO1xuZXhwb3J0cy5UYW9iYW9DaXJjbGVGaWxsID0gZ2V0SWNvbigndGFvYmFvLWNpcmNsZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHpNMzE1LjcgMjkxLjVjMjcuMyAwIDQ5LjUgMjIuMSA0OS41IDQ5LjRzLTIyLjEgNDkuNC00OS41IDQ5LjRhNDkuNCA0OS40IDAgMSAxIDAtOTguOHpNMzY2LjkgNTc4Yy0xMy42IDQyLjMtMTAuMiAyNi43LTY0LjQgMTQ0LjVsLTc4LjUtNDlzODcuNy03OS44IDEwNS42LTExNi4yYzE5LjItMzguNC0yMS4xLTU4LjktMjEuMS01OC45bC02MC4yLTM3LjUgMzIuNy01MC4yYzQ1LjQgMzMuNyA0OC43IDM2LjYgNzkuMiA2Ny4yIDIzLjggMjMuOSAyMC43IDU2LjggNi43IDEwMC4xem00MjcuMiA1NWMtMTUuMyAxNDMuOC0yMDIuNCA5MC4zLTIwMi40IDkwLjNsMTAuMi00MS4xIDQzLjMgOS4zYzgwIDUgNzIuMy02NC45IDcyLjMtNjQuOVY0MjNjLjYtNzcuMy03Mi42LTg1LjQtMjA0LjItMzguM2wzMC42IDguM2MtMi41IDktMTIuNSAyMy4yLTI1LjIgMzguNmgxNzZ2MzUuNmgtOTkuMXY0NC41aDk4Ljd2MzUuN2gtOTguN1Y2MjJjMTQuOS00LjggMjguNi0xMS41IDQwLjUtMjAuNWwtOC43LTMyLjUgNDYuNS0xNC40IDM4LjggOTQuOS01Ny4zIDIzLjktMTAuMi0zNy44Yy0yNS42IDE5LjUtNzguOCA0OC0xNzEuOCA0NS40LTk5LjIgMi42LTczLjctMTEyLTczLjctMTEybDIuNS0xLjNINDcyYy0uNSAxNC43LTYuNiAzOC43IDEuNyA1MS44IDYuOCAxMC44IDI0LjIgMTIuNiAzNS4zIDEzLjEgMS4zLjEgMi42LjEgMy45LjF2LTg1LjNoLTEwMXYtMzUuN2gxMDF2LTQ0LjVINDg3Yy0yMi43IDI0LjEtNDMuNSA0NC4xLTQzLjUgNDQuMWwtMzAuNi0yNi43YzIxLjctMjIuOSA0My4zLTU5LjEgNTYuOC04My4yLTEwLjkgNC40LTIyIDkuMi0zMy42IDE0LjItMTEuMiAxNC4zLTI0LjIgMjktMzguNyA0My41LjUuOC01MC0yOC40LTUwLTI4LjQgNTIuMi00NC40IDgxLjQtMTM5LjkgODEuNC0xMzkuOWw3Mi41IDIwLjRzLTUuOSAxNC0xOC40IDM1LjZjMjkwLjMtODIuMyAzMDcuNCA1MC41IDMwNy40IDUwLjVzMTkuMSA5MS44IDMuOCAyMzUuN3onKSk7XG5leHBvcnRzLlRhb2Jhb1NxdWFyZUZpbGwgPSBnZXRJY29uKCd0YW9iYW8tc3F1YXJlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMzE1LjcgMjkxLjVjMjcuMyAwIDQ5LjUgMjIuMSA0OS41IDQ5LjRzLTIyLjEgNDkuNC00OS41IDQ5LjRhNDkuNCA0OS40IDAgMSAxIDAtOTguOHpNMzY2LjkgNTc4Yy0xMy42IDQyLjMtMTAuMiAyNi43LTY0LjQgMTQ0LjVsLTc4LjUtNDlzODcuNy03OS44IDEwNS42LTExNi4yYzE5LjItMzguNC0yMS4xLTU4LjktMjEuMS01OC45bC02MC4yLTM3LjUgMzIuNy01MC4yYzQ1LjQgMzMuNyA0OC43IDM2LjYgNzkuMiA2Ny4yIDIzLjggMjMuOSAyMC43IDU2LjggNi43IDEwMC4xem00MjcuMiA1NWMtMTUuMyAxNDMuOC0yMDIuNCA5MC4zLTIwMi40IDkwLjNsMTAuMi00MS4xIDQzLjMgOS4zYzgwIDUgNzIuMy02NC45IDcyLjMtNjQuOVY0MjNjLjYtNzcuMy03Mi42LTg1LjQtMjA0LjItMzguM2wzMC42IDguM2MtMi41IDktMTIuNSAyMy4yLTI1LjIgMzguNmgxNzZ2MzUuNmgtOTkuMXY0NC41aDk4Ljd2MzUuN2gtOTguN1Y2MjJjMTQuOS00LjggMjguNi0xMS41IDQwLjUtMjAuNWwtOC43LTMyLjUgNDYuNS0xNC40IDM4LjggOTQuOS01Ny4zIDIzLjktMTAuMi0zNy44Yy0yNS42IDE5LjUtNzguOCA0OC0xNzEuOCA0NS40LTk5LjIgMi42LTczLjctMTEyLTczLjctMTEybDIuNS0xLjNINDcyYy0uNSAxNC43LTYuNiAzOC43IDEuNyA1MS44IDYuOCAxMC44IDI0LjIgMTIuNiAzNS4zIDEzLjEgMS4zLjEgMi42LjEgMy45LjF2LTg1LjNoLTEwMXYtMzUuN2gxMDF2LTQ0LjVINDg3Yy0yMi43IDI0LjEtNDMuNSA0NC4xLTQzLjUgNDQuMWwtMzAuNi0yNi43YzIxLjctMjIuOSA0My4zLTU5LjEgNTYuOC04My4yLTEwLjkgNC40LTIyIDkuMi0zMy42IDE0LjItMTEuMiAxNC4zLTI0LjIgMjktMzguNyA0My41LjUuOC01MC0yOC40LTUwLTI4LjQgNTIuMi00NC40IDgxLjQtMTM5LjkgODEuNC0xMzkuOWw3Mi41IDIwLjRzLTUuOSAxNC0xOC40IDM1LjZjMjkwLjMtODIuMyAzMDcuNCA1MC41IDMwNy40IDUwLjVzMTkuMSA5MS44IDMuOCAyMzUuN3onKSk7XG5leHBvcnRzLlRvb2xGaWxsID0gZ2V0SWNvbigndG9vbCcsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NjUuMyAyNDQuN2MtLjMtLjMtNjEuMSA1OS44LTE4Mi4xIDE4MC42bC04NC45LTg0LjkgMTgwLjktMTgwLjljLTk1LjItNTcuMy0yMTcuNS00Mi42LTI5Ni44IDM2LjdBMjQ0LjQyIDI0NC40MiAwIDAgMCA0MTkgNDMybDEuOCA2LjctMjgzLjUgMjgzLjRjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42bDE0MS40IDE0MS40YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwbDI4My4zLTI4My4zIDYuNyAxLjhjODMuNyAyMi4zIDE3My42LS45IDIzNi02My4zIDc5LjQtNzkuMyA5NC4xLTIwMS42IDM4LTI5Ni42eicpKTtcbmV4cG9ydHMuVGh1bmRlcmJvbHRGaWxsID0gZ2V0SWNvbigndGh1bmRlcmJvbHQnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODQ4IDM1OS4zSDYyNy43TDgyNS44IDEwOWM0LjEtNS4zLjQtMTMtNi4zLTEzSDQzNmMtMi44IDAtNS41IDEuNS02LjkgNEwxNzAgNTQ3LjVjLTMuMSA1LjMuNyAxMiA2LjkgMTJoMTc0LjRsLTg5LjQgMzU3LjZjLTEuOSA3LjggNy41IDEzLjMgMTMuMyA3LjdMODUzLjUgMzczYzUuMi00LjkgMS43LTEzLjctNS41LTEzLjd6JykpO1xuZXhwb3J0cy5UcmFkZW1hcmtDaXJjbGVGaWxsID0gZ2V0SWNvbigndHJhZGVtYXJrLWNpcmNsZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMTY0LjcgNjYwLjJjLTEuMS41LTIuMy44LTMuNS44aC02MmMtMy4xIDAtNS45LTEuOC03LjItNC42bC03NC42LTE1OS4yaC04OC43VjcxN2MwIDQuNC0zLjYgOC04IDhIMzc4Yy00LjQgMC04LTMuNi04LThWMzA3YzAtNC40IDMuNi04IDgtOGgxNTUuNmM5OC44IDAgMTQ0LjIgNTkuOSAxNDQuMiAxMzEuMSAwIDcwLjItNDMuNiAxMDYuNC03OC40IDExOS4ybDgwLjggMTY0LjJjMi4xIDMuOS40IDguNy0zLjUgMTAuN3pNNTIzLjkgMzU3aC04My40djE0OEg1MjJjNTMgMCA4Mi44LTI1LjYgODIuOC03Mi40IDAtNTAuMy0zMi45LTc1LjYtODAuOS03NS42eicpKTtcbmV4cG9ydHMuVHdpdHRlckNpcmNsZUZpbGwgPSBnZXRJY29uKCd0d2l0dGVyLWNpcmNsZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMjE1LjMgMzM3LjdjLjMgNC43LjMgOS42LjMgMTQuNCAwIDE0Ni44LTExMS44IDMxNS45LTMxNi4xIDMxNS45LTYzIDAtMTIxLjQtMTguMy0xNzAuNi00OS44IDkgMSAxNy42IDEuNCAyNi44IDEuNCA1MiAwIDk5LjgtMTcuNiAxMzcuOS00Ny40LTQ4LjgtMS04OS44LTMzLTEwMy44LTc3IDE3LjEgMi41IDMyLjUgMi41IDUwLjEtMmExMTEgMTExIDAgMCAxLTg4LjktMTA5di0xLjRjMTQuNyA4LjMgMzIgMTMuNCA1MC4xIDE0LjFhMTExLjEzIDExMS4xMyAwIDAgMS00OS41LTkyLjRjMC0yMC43IDUuNC0zOS42IDE1LjEtNTZhMzE1LjI4IDMxNS4yOCAwIDAgMCAyMjkgMTE2LjFDNDkyIDM1My4xIDU0OC40IDI5MiA2MTYuMiAyOTJjMzIgMCA2MC44IDEzLjQgODEuMSAzNSAyNS4xLTQuNyA0OS4xLTE0LjEgNzAuNS0yNi43LTguMyAyNS43LTI1LjcgNDcuNC00OC44IDYxLjEgMjIuNC0yLjQgNDQtOC42IDY0LTE3LjMtMTUuMSAyMi4yLTM0IDQxLjktNTUuNyA1Ny42eicpKTtcbmV4cG9ydHMuVHJvcGh5RmlsbCA9IGdldEljb24oJ3Ryb3BoeScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NjggMTYwaC05MnYtNDBjMC00LjQtMy42LTgtOC04SDI1NmMtNC40IDAtOCAzLjYtOCA4djQwaC05MmE0NCA0NCAwIDAgMC00NCA0NHYxNDhjMCA4MS43IDYwIDE0OS42IDEzOC4yIDE2MkMyNjUuNiA2MzAuMiAzNTkgNzIxLjggNDc2IDczNC41djEwNS4ySDI4MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJWOTA0YzAgNC40IDMuNiA4IDggOGg1MTJjNC40IDAgOC0zLjYgOC04di0zMi4zYzAtMTcuNy0xNC4zLTMyLTMyLTMySDU0OFY3MzQuNUM2NjUgNzIxLjggNzU4LjQgNjMwLjIgNzczLjggNTE0IDg1MiA1MDEuNiA5MTIgNDMzLjcgOTEyIDM1MlYyMDRhNDQgNDQgMCAwIDAtNDQtNDR6TTI0OCA0MzkuNmMtMzcuMS0xMS45LTY0LTQ2LjctNjQtODcuNlYyMzJoNjR2MjA3LjZ6TTg0MCAzNTJjMCA0MS0yNi45IDc1LjgtNjQgODcuNlYyMzJoNjR2MTIweicpKTtcbmV4cG9ydHMuVHdpdHRlclNxdWFyZUZpbGwgPSBnZXRJY29uKCd0d2l0dGVyLXNxdWFyZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTcyNy4zIDQwMS43Yy4zIDQuNy4zIDkuNi4zIDE0LjQgMCAxNDYuOC0xMTEuOCAzMTUuOS0zMTYuMSAzMTUuOS02MyAwLTEyMS40LTE4LjMtMTcwLjYtNDkuOCA5IDEgMTcuNiAxLjQgMjYuOCAxLjQgNTIgMCA5OS44LTE3LjYgMTM3LjktNDcuNC00OC44LTEtODkuOC0zMy0xMDMuOC03NyAxNy4xIDIuNSAzMi41IDIuNSA1MC4xLTJhMTExIDExMSAwIDAgMS04OC45LTEwOXYtMS40YzE0LjcgOC4zIDMyIDEzLjQgNTAuMSAxNC4xYTExMS4xMyAxMTEuMTMgMCAwIDEtNDkuNS05Mi40YzAtMjAuNyA1LjQtMzkuNiAxNS4xLTU2YTMxNS4yOCAzMTUuMjggMCAwIDAgMjI5IDExNi4xQzQ5MiAzNTMuMSA1NDguNCAyOTIgNjE2LjIgMjkyYzMyIDAgNjAuOCAxMy40IDgxLjEgMzUgMjUuMS00LjcgNDkuMS0xNC4xIDcwLjUtMjYuNy04LjMgMjUuNy0yNS43IDQ3LjQtNDguOCA2MS4xIDIyLjQtMi40IDQ0LTguNiA2NC0xNy4zLTE1LjEgMjIuMi0zNCA0MS45LTU1LjcgNTcuNnonKSk7XG5leHBvcnRzLlVubG9ja0ZpbGwgPSBnZXRJY29uKCd1bmxvY2snLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODMyIDQ2NEgzMzJWMjQwYzAtMzAuOSAyNS4xLTU2IDU2LTU2aDI0OGMzMC45IDAgNTYgMjUuMSA1NiA1NnY2OGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di02OGMwLTcwLjctNTcuMy0xMjgtMTI4LTEyOEgzODhjLTcwLjcgMC0xMjggNTcuMy0xMjggMTI4djIyNGgtNjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjM4NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWNDk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyek01NDAgNzAxdjUzYzAgNC40LTMuNiA4LTggOGgtNDBjLTQuNCAwLTgtMy42LTgtOHYtNTNhNDguMDEgNDguMDEgMCAxIDEgNTYgMHonKSk7XG5leHBvcnRzLlVwQ2lyY2xlRmlsbCA9IGdldEljb24oJ3VwLWNpcmNsZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMTc4IDU1NWgtNDYuOWMtMTAuMiAwLTE5LjktNC45LTI1LjktMTMuMkw1MTIgNDYwLjQgNDA2LjggNjA1LjhjLTYgOC4zLTE1LjYgMTMuMi0yNS45IDEzLjJIMzM0Yy02LjUgMC0xMC4zLTcuNC02LjUtMTIuN2wxNzgtMjQ2YzMuMi00LjQgOS43LTQuNCAxMi45IDBsMTc4IDI0NmMzLjkgNS4zLjEgMTIuNy02LjQgMTIuN3onKSk7XG5leHBvcnRzLlVwU3F1YXJlRmlsbCA9IGdldEljb24oJ3VwLXNxdWFyZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTY5MCA2MjRoLTQ2LjljLTEwLjIgMC0xOS45LTQuOS0yNS45LTEzLjJMNTEyIDQ2NS40IDQwNi44IDYxMC44Yy02IDguMy0xNS42IDEzLjItMjUuOSAxMy4ySDMzNGMtNi41IDAtMTAuMy03LjQtNi41LTEyLjdsMTc4LTI0NmMzLjItNC40IDkuNy00LjQgMTIuOSAwbDE3OCAyNDZjMy45IDUuMy4xIDEyLjctNi40IDEyLjd6JykpO1xuZXhwb3J0cy5Vc2JGaWxsID0gZ2V0SWNvbigndXNiJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTQwOCAzMTJoNDhjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4em0zNTIgMTIwVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMkgyOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjI4OGMtNjYuMiAwLTEyMCA1Mi4xLTEyMCAxMTZ2MzU2YzAgNC40IDMuNiA4IDggOGg3MjBjNC40IDAgOC0zLjYgOC04VjU0OGMwLTYzLjktNTMuOC0xMTYtMTIwLTExNnptLTcyIDBIMzM2VjE4NGgzNTJ2MjQ4ek01NjggMzEyaDQ4YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04aC00OGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOHonKSk7XG5leHBvcnRzLldhbGxldEZpbGwgPSBnZXRJY29uKCd3YWxsZXQnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tMzIgNDY0SDUyOFY0NDhoMzIwdjEyOHptLTI2OC02NGE0MCA0MCAwIDEgMCA4MCAwIDQwIDQwIDAgMSAwLTgwIDB6JykpO1xuZXhwb3J0cy5WaWRlb0NhbWVyYUZpbGwgPSBnZXRJY29uKCd2aWRlby1jYW1lcmEnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTEyIDMwMi4zTDc4NCAzNzZWMjI0YzAtMzUuMy0yOC43LTY0LTY0LTY0SDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjR2NTc2YzAgMzUuMyAyOC43IDY0IDY0IDY0aDU5MmMzNS4zIDAgNjQtMjguNyA2NC02NFY2NDhsMTI4IDczLjdjMjEuMyAxMi4zIDQ4LTMuMSA0OC0yNy42VjMzMGMwLTI0LjYtMjYuNy00MC00OC0yNy43ek0zMjggMzUyYzAgNC40LTMuNiA4LTggOEgyMDhjLTQuNCAwLTgtMy42LTgtOHYtNDhjMC00LjQgMy42LTggOC04aDExMmM0LjQgMCA4IDMuNiA4IDh2NDh6bTU2MCAyNzNsLTEwNC01OS44VjQ1OC45TDg4OCAzOTl2MjI2eicpKTtcbmV4cG9ydHMuV2FybmluZ0ZpbGwgPSBnZXRJY29uKCd3YXJuaW5nJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTk1NS43IDg1NmwtNDE2LTcyMGMtNi4yLTEwLjctMTYuOS0xNi0yNy43LTE2cy0yMS42IDUuMy0yNy43IDE2bC00MTYgNzIwQzU2IDg3Ny40IDcxLjQgOTA0IDk2IDkwNGg4MzJjMjQuNiAwIDQwLTI2LjYgMjcuNy00OHpNNDgwIDQxNmMwLTQuNCAzLjYtOCA4LThoNDhjNC40IDAgOCAzLjYgOCA4djE4NGMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LThWNDE2em0zMiAzNTJhNDguMDEgNDguMDEgMCAwIDEgMC05NiA0OC4wMSA0OC4wMSAwIDAgMSAwIDk2eicpKTtcbmV4cG9ydHMuV2VpYm9DaXJjbGVGaWxsID0gZ2V0SWNvbignd2VpYm8tY2lyY2xlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0tNDQuNCA2NzJDMzUzLjEgNzM2IDIzNiA2ODAuNCAyMzYgNTg4LjljMC00Ny44IDMwLjItMTAzLjEgODIuMy0xNTUuMyA2OS41LTY5LjYgMTUwLjYtMTAxLjQgMTgxLjEtNzAuOCAxMy41IDEzLjUgMTQuOCAzNi44IDYuMSA2NC42LTQuNSAxNCAxMy4xIDYuMyAxMy4xIDYuMyA1Ni4yLTIzLjYgMTA1LjItMjUgMTIzLjEuNyA5LjYgMTMuNyA4LjYgMzIuOC0uMiA1NS4xLTQuMSAxMC4yIDEuMyAxMS44IDkgMTQuMSAzMS43IDkuOCA2Ni45IDMzLjYgNjYuOSA3NS41LjIgNjkuNS05OS43IDE1Ni45LTI0OS44IDE1Ni45em0yMDcuMy0yOTAuOGEzNC45IDM0LjkgMCAwIDAtNy4yLTM0LjEgMzQuNjggMzQuNjggMCAwIDAtMzMuMS0xMC43IDE4LjI0IDE4LjI0IDAgMCAxLTcuNi0zNS43YzI0LjEtNS4xIDUwLjEgMi4zIDY3LjcgMjEuOSAxNy43IDE5LjYgMjIuNCA0Ni4zIDE0LjkgNjkuOGExOC4xMyAxOC4xMyAwIDAgMS0yMi45IDExLjcgMTguMTggMTguMTggMCAwIDEtMTEuOC0yMi45em0xMDYgMzQuM3MwIC4xIDAgMGEyMS4xIDIxLjEgMCAwIDEtMjYuNiAxMy43IDIxLjE5IDIxLjE5IDAgMCAxLTEzLjYtMjYuN2MxMS0zNC4yIDQtNzMuMi0yMS43LTEwMS44YTEwNC4wNCAxMDQuMDQgMCAwIDAtOTguOS0zMi4xIDIxLjE0IDIxLjE0IDAgMCAxLTI1LjEtMTYuMyAyMS4wNyAyMS4wNyAwIDAgMSAxNi4yLTI1LjFjNDkuNC0xMC41IDEwMi44IDQuOCAxMzkuMSA0NS4xIDM2LjMgNDAuMiA0Ni4xIDk1LjEgMzAuNiAxNDMuMnptLTMzNC41IDYuMWMtOTEuNCA5LTE2MC43IDY1LjEtMTU0LjcgMTI1LjIgNS45IDYwLjEgODQuOCAxMDEuNSAxNzYuMiA5Mi41IDkxLjQtOS4xIDE2MC43LTY1LjEgMTU0LjctMTI1LjMtNS45LTYwLjEtODQuOC0xMDEuNS0xNzYuMi05Mi40em04MC4yIDE0MS43Yy0xOC43IDQyLjMtNzIuMyA2NC44LTExNy44IDUwLjEtNDMuOS0xNC4yLTYyLjUtNTcuNy00My4zLTk2LjggMTguOS0zOC40IDY4LTYwLjEgMTExLjUtNDguOCA0NSAxMS43IDY4IDU0LjIgNDkuNiA5NS41em0tOTMtMzIuMmMtMTQuMi01LjktMzIuNC4yLTQxLjIgMTMuOS04LjggMTMuOC00LjcgMzAuMiA5LjMgMzYuNiAxNC4zIDYuNSAzMy4yLjMgNDItMTMuOCA4LjgtMTQuMyA0LjItMzAuNi0xMC4xLTM2Ljd6bTM0LjktMTQuNWMtNS40LTIuMi0xMi4yLjUtMTUuNCA1LjgtMy4xIDUuNC0xLjQgMTEuNSA0LjEgMTMuOCA1LjUgMi4zIDEyLjYtLjMgMTUuOC01LjggMy01LjYgMS0xMS44LTQuNS0xMy44eicpKTtcbmV4cG9ydHMuV2VjaGF0RmlsbCA9IGdldEljb24oJ3dlY2hhdCcsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ002OTAuMSAzNzcuNGM1LjkgMCAxMS44LjIgMTcuNi41LTI0LjQtMTI4LjctMTU4LjMtMjI3LjEtMzE5LjktMjI3LjFDMjA5IDE1MC44IDY0IDI3MS40IDY0IDQyMC4yYzAgODEuMSA0My42IDE1NC4yIDExMS45IDIwMy42YTIxLjUgMjEuNSAwIDAgMSA5LjEgMTcuNmMwIDIuNC0uNSA0LjYtMS4xIDYuOS01LjUgMjAuMy0xNC4yIDUyLjgtMTQuNiA1NC4zLS43IDIuNi0xLjcgNS4yLTEuNyA3LjkgMCA1LjkgNC44IDEwLjggMTAuOCAxMC44IDIuMyAwIDQuMi0uOSA2LjItMmw3MC45LTQwLjljNS4zLTMuMSAxMS01IDE3LjItNSAzLjIgMCA2LjQuNSA5LjUgMS40IDMzLjEgOS41IDY4LjggMTQuOCAxMDUuNyAxNC44IDYgMCAxMS45LS4xIDE3LjgtLjQtNy4xLTIxLTEwLjktNDMuMS0xMC45LTY2IDAtMTM1LjggMTMyLjItMjQ1LjggMjk1LjMtMjQ1Ljh6bS0xOTQuMy04Ni41YzIzLjggMCA0My4yIDE5LjMgNDMuMiA0My4xcy0xOS4zIDQzLjEtNDMuMiA0My4xYy0yMy44IDAtNDMuMi0xOS4zLTQzLjItNDMuMXMxOS40LTQzLjEgNDMuMi00My4xem0tMjE1LjkgODYuMmMtMjMuOCAwLTQzLjItMTkuMy00My4yLTQzLjFzMTkuMy00My4xIDQzLjItNDMuMSA0My4yIDE5LjMgNDMuMiA0My4xLTE5LjQgNDMuMS00My4yIDQzLjF6bTU4Ni44IDQxNS42YzU2LjktNDEuMiA5My4yLTEwMiA5My4yLTE2OS43IDAtMTI0LTEyMC44LTIyNC41LTI2OS45LTIyNC41LTE0OSAwLTI2OS45IDEwMC41LTI2OS45IDIyNC41UzU0MC45IDg0Ny41IDY5MCA4NDcuNWMzMC44IDAgNjAuNi00LjQgODguMS0xMi4zIDIuNi0uOCA1LjItMS4yIDcuOS0xLjIgNS4yIDAgOS45IDEuNiAxNC4zIDQuMWw1OS4xIDM0YzEuNyAxIDMuMyAxLjcgNS4yIDEuN2E5IDkgMCAwIDAgNi40LTIuNiA5IDkgMCAwIDAgMi42LTYuNGMwLTIuMi0uOS00LjQtMS40LTYuNi0uMy0xLjItNy42LTI4LjMtMTIuMi00NS4zLS41LTEuOS0uOS0zLjgtLjktNS43LjEtNS45IDMuMS0xMS4yIDcuNi0xNC41ek02MDAuMiA1ODcuMmMtMTkuOSAwLTM2LTE2LjEtMzYtMzUuOSAwLTE5LjggMTYuMS0zNS45IDM2LTM1LjlzMzYgMTYuMSAzNiAzNS45YzAgMTkuOC0xNi4yIDM1LjktMzYgMzUuOXptMTc5LjkgMGMtMTkuOSAwLTM2LTE2LjEtMzYtMzUuOSAwLTE5LjggMTYuMS0zNS45IDM2LTM1LjlzMzYgMTYuMSAzNiAzNS45YTM2LjA4IDM2LjA4IDAgMCAxLTM2IDM1Ljl6JykpO1xuZXhwb3J0cy5XaW5kb3dzRmlsbCA9IGdldEljb24oJ3dpbmRvd3MnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTIzLjggMTkxLjR2Mjg4LjloMzgyVjEyOC4xem0wIDY0Mi4ybDM4MiA2Mi4ydi0zNTJoLTM4MnpNMTIwLjEgNDgwLjJINDQzVjIwMS45bC0zMjIuOSA1My41em0wIDI5MC40TDQ0MyA4MjMuMlY1NDMuOEgxMjAuMXonKSk7XG5leHBvcnRzLllhaG9vRmlsbCA9IGdldEljb24oJ3lhaG9vJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkzNy4zIDIzMUg4MjQuN2MtMTUuNSAwLTI3LjcgMTIuNi0yNy4xIDI4LjFsMTMuMSAzNjZoODQuNGw2NS40LTM2Ni40YzIuNy0xNS4yLTcuOC0yNy43LTIzLjItMjcuN3ptLTc3LjQgNDUwLjRoLTE0LjFjLTI3LjEgMC00OS4yIDIyLjItNDkuMiA0OS4zdjE0LjFjMCAyNy4xIDIyLjIgNDkuMyA0OS4yIDQ5LjNoMTQuMWMyNy4xIDAgNDkuMi0yMi4yIDQ5LjItNDkuM3YtMTQuMWMwLTI3LjEtMjIuMi00OS4zLTQ5LjItNDkuM3pNNDAyLjYgMjMxQzIxNi4yIDIzMSA2NSAzNTcgNjUgNTEyLjVTMjE2LjIgNzk0IDQwMi42IDc5NHMzMzcuNi0xMjYgMzM3LjYtMjgxLjVTNTg5LjEgMjMxIDQwMi42IDIzMXptMjI1LjIgMjI1LjJoLTY1LjNMNDU4LjkgNTU5Ljh2NjUuM2g4NC40djU2LjNIMzE4LjJ2LTU2LjNoODQuNHYtNjUuM0wyNDIuOSAzOTkuOWgtMzd2LTU2LjNoMTY4LjV2NTYuM2gtMzdsOTMuNCA5My41IDI4LjEtMjguMVY0MDBoMTY4Ljh2NTYuMnonKSk7XG5leHBvcnRzLldlaWJvU3F1YXJlRmlsbCA9IGdldEljb24oJ3dlaWJvLXNxdWFyZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ000MzMuNiA1OTUuMWMtMTQuMi01LjktMzIuNC4yLTQxLjIgMTMuOS04LjggMTMuOC00LjcgMzAuMiA5LjMgMzYuNiAxNC4zIDYuNSAzMy4yLjMgNDItMTMuOCA4LjgtMTQuMyA0LjItMzAuNi0xMC4xLTM2Ljd6TTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNDY3LjYgNzM2QzM1My4xIDczNiAyMzYgNjgwLjQgMjM2IDU4OC45YzAtNDcuOCAzMC4yLTEwMy4xIDgyLjMtMTU1LjMgNjkuNS02OS42IDE1MC42LTEwMS40IDE4MS4xLTcwLjggMTMuNSAxMy41IDE0LjggMzYuOCA2LjEgNjQuNi00LjUgMTQgMTMuMSA2LjMgMTMuMSA2LjMgNTYuMi0yMy42IDEwNS4yLTI1IDEyMy4xLjcgOS42IDEzLjcgOC42IDMyLjgtLjIgNTUuMS00LjEgMTAuMiAxLjMgMTEuOCA5IDE0LjEgMzEuNyA5LjggNjYuOSAzMy42IDY2LjkgNzUuNS4yIDY5LjUtOTkuNyAxNTYuOS0yNDkuOCAxNTYuOXptMjA3LjMtMjkwLjhhMzQuOSAzNC45IDAgMCAwLTcuMi0zNC4xIDM0LjY4IDM0LjY4IDAgMCAwLTMzLjEtMTAuNyAxOC4yNCAxOC4yNCAwIDAgMS03LjYtMzUuN2MyNC4xLTUuMSA1MC4xIDIuMyA2Ny43IDIxLjkgMTcuNyAxOS42IDIyLjQgNDYuMyAxNC45IDY5LjhhMTguMTMgMTguMTMgMCAwIDEtMjIuOSAxMS43IDE4LjE4IDE4LjE4IDAgMCAxLTExLjgtMjIuOXptMTA2IDM0LjNzMCAuMSAwIDBhMjEuMSAyMS4xIDAgMCAxLTI2LjYgMTMuNyAyMS4xOSAyMS4xOSAwIDAgMS0xMy42LTI2LjdjMTEtMzQuMiA0LTczLjItMjEuNy0xMDEuOGExMDQuMDQgMTA0LjA0IDAgMCAwLTk4LjktMzIuMSAyMS4xNCAyMS4xNCAwIDAgMS0yNS4xLTE2LjMgMjEuMDcgMjEuMDcgMCAwIDEgMTYuMi0yNS4xYzQ5LjQtMTAuNSAxMDIuOCA0LjggMTM5LjEgNDUuMSAzNi4zIDQwLjIgNDYuMSA5NS4xIDMwLjYgMTQzLjJ6bS0zMzQuNSA2LjFjLTkxLjQgOS0xNjAuNyA2NS4xLTE1NC43IDEyNS4yIDUuOSA2MC4xIDg0LjggMTAxLjUgMTc2LjIgOTIuNSA5MS40LTkuMSAxNjAuNy02NS4xIDE1NC43LTEyNS4zLTUuOS02MC4xLTg0LjgtMTAxLjUtMTc2LjItOTIuNHptODAuMiAxNDEuN2MtMTguNyA0Mi4zLTcyLjMgNjQuOC0xMTcuOCA1MC4xLTQzLjktMTQuMi02Mi41LTU3LjctNDMuMy05Ni44IDE4LjktMzguNCA2OC02MC4xIDExMS41LTQ4LjggNDUgMTEuNyA2OCA1NC4yIDQ5LjYgOTUuNXptLTU4LjEtNDYuN2MtNS40LTIuMi0xMi4yLjUtMTUuNCA1LjgtMy4xIDUuNC0xLjQgMTEuNSA0LjEgMTMuOCA1LjUgMi4zIDEyLjYtLjMgMTUuOC01LjggMy01LjYgMS0xMS44LTQuNS0xMy44eicpKTtcbmV4cG9ydHMuWXVxdWVGaWxsID0gZ2V0SWNvbigneXVxdWUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODU0LjYgMzcwLjZjLTkuOS0zOS40IDkuOS0xMDIuMiA3My40LTEyNC40bC02Ny45LTMuNnMtMjUuNy05MC0xNDMuNi05OGMtMTE3LjktOC4xLTE5NS0zLTE5NS0zczg3LjQgNTUuNiA1Mi40IDE1NC43Yy0yNS42IDUyLjUtNjUuOCA5NS42LTEwOC44IDE0NC43LTEuMyAxLjMtMi41IDIuNi0zLjUgMy43QzMxOS40IDYwNSA5NiA4NjAgOTYgODYwYzI0NS45IDY0LjQgNDEwLjctNi4zIDUwOC4yLTkxLjEgMjAuNS0uMiAzNS45LS4zIDQ2LjMtLjMgMTM1LjggMCAyNTAuNi0xMTcuNiAyNDUuOS0yNDguNC0zLjItODkuOS0zMS45LTExMC4yLTQxLjgtMTQ5LjZ6JykpO1xuZXhwb3J0cy5Zb3V0dWJlRmlsbCA9IGdldEljb24oJ3lvdXR1YmUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTQxLjMgMjk2LjFhMTEyLjMgMTEyLjMgMCAwIDAtNzkuMi03OS4zQzc5Mi4yIDE5OCA1MTIgMTk4IDUxMiAxOThzLTI4MC4yIDAtMzUwLjEgMTguN0ExMTIuMTIgMTEyLjEyIDAgMCAwIDgyLjcgMjk2QzY0IDM2NiA2NCA1MTIgNjQgNTEyczAgMTQ2IDE4LjcgMjE1LjljMTAuMyAzOC42IDQwLjcgNjkgNzkuMiA3OS4zQzIzMS44IDgyNiA1MTIgODI2IDUxMiA4MjZzMjgwLjIgMCAzNTAuMS0xOC44YzM4LjYtMTAuMyA2OC45LTQwLjcgNzkuMi03OS4zQzk2MCA2NTggOTYwIDUxMiA5NjAgNTEyczAtMTQ2LTE4LjctMjE1Ljl6TTQyMyA2NDZWMzc4bDIzMiAxMzMtMjMyIDEzNXonKSk7XG5leHBvcnRzLlpoaWh1U3F1YXJlRmlsbCA9IGdldEljb24oJ3poaWh1LXNxdWFyZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTQzMi4zIDU5Mi44bDcxIDgwLjdjOS4yIDMzLTMuMyA2My4xLTMuMyA2My4xbC05NS43LTExMS45di0uMWMtOC45IDI5LTIwLjEgNTcuMy0zMy4zIDg0LjctMjIuNiA0NS43LTU1LjIgNTQuNy04OS41IDU3LjctMzQuNCAzLTIzLjMtNS4zLTIzLjMtNS4zIDY4LTU1LjUgNzgtODcuOCA5Ni44LTEyMy4xIDExLjktMjIuMyAyMC40LTY0LjMgMjUuMy05Ni44SDI2NC4xczQuOC0zMS4yIDE5LjItNDEuN2gxMDEuNmMuNi0xNS4zLTEuMy0xMDIuOC0yLTEzMS40aC00OS40Yy05LjIgNDUtNDEgNTYuNy00OC4xIDYwLjEtNyAzLjQtMjMuNiA3LjEtMjEuMSAwIDIuNi03LjEgMjctNDYuMiA0My4yLTExMC43IDE2LjMtNjQuNiA2My45LTYyIDYzLjktNjItMTIuOCAyMi41LTIyLjQgNzMuNi0yMi40IDczLjZoMTU5LjdjMTAuMSAwIDEwLjYgMzkgMTAuNiAzOWgtOTAuOGMtLjcgMjIuNy0yLjggODMuOC01IDEzMS40SDUxOXMxMi4yIDE1LjQgMTIuMiA0MS43aC0xMTBsLS4xIDEuNWMtMS41IDIwLjQtNi4zIDQzLjktMTIuOSA2Ny42bDI0LjEtMTguMXptMzM1LjUgMTE2aC04Ny42bC02OS41IDQ2LjYtMTYuNC00Ni42aC00MC4xVjMyMS41aDIxMy42djM4Ny4zek00MDguMiA2MTFzMC0uMSAwIDB6bTIxNiA5NC4zbDU2LjgtMzguMWg0NS42LS4xVjM2NC43SDU5Ni43djMwMi41aDE0LjF6JykpO1xuZXhwb3J0cy5aaGlodUNpcmNsZUZpbGwgPSBnZXRJY29uKCd6aGlodS1jaXJjbGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bS05MC43IDQ3Ny44bC0uMSAxLjVjLTEuNSAyMC40LTYuMyA0My45LTEyLjkgNjcuNmwyNC0xOC4xIDcxIDgwLjdjOS4yIDMzLTMuMyA2My4xLTMuMyA2My4xbC05NS43LTExMS45di0uMWMtOC45IDI5LTIwLjEgNTcuMy0zMy4zIDg0LjctMjIuNiA0NS43LTU1LjIgNTQuNy04OS41IDU3LjctMzQuNCAzLTIzLjMtNS4zLTIzLjMtNS4zIDY4LTU1LjUgNzgtODcuOCA5Ni44LTEyMy4xIDExLjktMjIuMyAyMC40LTY0LjMgMjUuMy05Ni44SDI2NC4xczQuOC0zMS4yIDE5LjItNDEuN2gxMDEuNmMuNi0xNS4zLTEuMy0xMDIuOC0yLTEzMS40aC00OS40Yy05LjIgNDUtNDEgNTYuNy00OC4xIDYwLjEtNyAzLjQtMjMuNiA3LjEtMjEuMSAwIDIuNi03LjEgMjctNDYuMiA0My4yLTExMC43IDE2LjMtNjQuNiA2My45LTYyIDYzLjktNjItMTIuOCAyMi41LTIyLjQgNzMuNi0yMi40IDczLjZoMTU5LjdjMTAuMSAwIDEwLjYgMzkgMTAuNiAzOWgtOTAuOGMtLjcgMjIuNy0yLjggODMuOC01IDEzMS40SDUxOXMxMi4yIDE1LjQgMTIuMiA0MS43SDQyMS4zem0zNDYuNSAxNjdoLTg3LjZsLTY5LjUgNDYuNi0xNi40LTQ2LjZoLTQwLjFWMzIxLjVoMjEzLjZ2Mzg3LjN6TTQwOC4yIDYxMXMwLS4xIDAgMHptMjE2IDk0LjNsNTYuOC0zOC4xaDQ1LjYtLjFWMzY0LjdINTk2Ljd2MzAyLjVoMTQuMXonKSk7XG5leHBvcnRzLkFjY291bnRCb29rT3V0bGluZSA9IGdldEljb24oJ2FjY291bnQtYm9vaycsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMTg0SDcxMnYtNjRjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djY0SDM4NHYtNjRjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djY0SDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYyMTZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA2NTZIMTg0VjI1NmgxMjh2NDhjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNDhoMjU2djQ4YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTQ4aDEyOHY1ODR6TTYzOS41IDQxNGgtNDVjLTMgMC01LjggMS43LTcuMSA0LjRMNTE0IDU2My44aC0yLjhsLTczLjQtMTQ1LjRhOCA4IDAgMCAwLTcuMS00LjRoLTQ2Yy0xLjMgMC0yLjcuMy0zLjggMS0zLjkgMi4xLTUuMyA3LTMuMiAxMC45bDg5LjMgMTY0aC00OC42Yy00LjQgMC04IDMuNi04IDh2MjEuM2MwIDQuNCAzLjYgOCA4IDhoNjUuMXYzMy43aC02NS4xYy00LjQgMC04IDMuNi04IDh2MjEuM2MwIDQuNCAzLjYgOCA4IDhoNjUuMVY3NTJjMCA0LjQgMy42IDggOCA4aDQxLjNjNC40IDAgOC0zLjYgOC04di01My44aDY1LjRjNC40IDAgOC0zLjYgOC04di0yMS4zYzAtNC40LTMuNi04LTgtOGgtNjUuNHYtMzMuN2g2NS40YzQuNCAwIDgtMy42IDgtOHYtMjEuM2MwLTQuNC0zLjYtOC04LThoLTQ5LjFsODkuMy0xNjQuMWMuNi0xLjIgMS0yLjUgMS0zLjguMS00LjQtMy40LTgtNy45LTh6JykpO1xuZXhwb3J0cy5BbGVydE91dGxpbmUgPSBnZXRJY29uKCdhbGVydCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ00xOTMgNzk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDU3NGMxNy43IDAgMzItMTQuMyAzMi0zMlY1NjNjMC0xNzYuMi0xNDIuOC0zMTktMzE5LTMxOVMxOTMgMzg2LjggMTkzIDU2M3YyMzN6bTcyLTIzM2MwLTEzNi40IDExMC42LTI0NyAyNDctMjQ3czI0NyAxMTAuNiAyNDcgMjQ3djE5M0g0MDRWNTg1YzAtNS41LTQuNS0xMC0xMC0xMGgtNDRjLTUuNSAwLTEwIDQuNS0xMCAxMHYxNzFoLTc1VjU2M3ptLTQ4LjEtMjUyLjVsMzkuNi0zOS42YzMuMS0zLjEgMy4xLTguMiAwLTExLjNsLTY3LjktNjcuOWE4LjAzIDguMDMgMCAwIDAtMTEuMyAwbC0zOS42IDM5LjZhOC4wMyA4LjAzIDAgMCAwIDAgMTEuM2w2Ny45IDY3LjljMy4xIDMuMSA4LjEgMy4xIDExLjMgMHptNjY5LjYtNzkuMmwtMzkuNi0zOS42YTguMDMgOC4wMyAwIDAgMC0xMS4zIDBsLTY3LjkgNjcuOWE4LjAzIDguMDMgMCAwIDAgMCAxMS4zbDM5LjYgMzkuNmMzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDY3LjktNjcuOWMzLjEtMy4yIDMuMS04LjIgMC0xMS4zek04MzIgODkySDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MjRjMCA0LjQgMy42IDggOCA4aDY4OGM0LjQgMCA4LTMuNiA4LTh2LTI0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek00ODQgMTgwaDU2YzQuNCAwIDgtMy42IDgtOFY3NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2OTZjMCA0LjQgMy42IDggOCA4eicpKTtcbmV4cG9ydHMuQWxpcGF5Q2lyY2xlT3V0bGluZSA9IGdldEljb24oJ2FsaXBheS1jaXJjbGUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMzA4LjYgNTQ1LjdjLTE5LjggMi01Ny4xIDEwLjctNzcuNCAyOC42LTYxIDUzLTI0LjUgMTUwIDk5IDE1MCA3MS44IDAgMTQzLjUtNDUuNyAxOTkuOC0xMTktODAuMi0zOC45LTE0OC4xLTY2LjgtMjIxLjQtNTkuNnptNDYwLjUgNjdjMTAwLjEgMzMuNCAxNTQuNyA0MyAxNjYuNyA0NC44QTQ0NS45IDQ0NS45IDAgMCAwIDk2MCA1MTJjMC0yNDcuNC0yMDAuNi00NDgtNDQ4LTQ0OFM2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDhjMTU1LjkgMCAyOTMuMi03OS43IDM3My41LTIwMC41LTc1LjYtMjkuOC0yMTMuNi04NS0yODYuOC0xMjAuMS02OS45IDg1LjctMTYwLjEgMTM3LjgtMjUzLjcgMTM3LjgtMTU4LjQgMC0yMTIuMS0xMzguMS0xMzcuMi0yMjkgMTYuMy0xOS44IDQ0LjItMzguNyA4Ny4zLTQ5LjQgNjcuNS0xNi41IDE3NSAxMC4zIDI3NS43IDQzLjQgMTguMS0zMy4zIDMzLjQtNjkuOSA0NC43LTEwOC45SDMwNS4xVjQwMmgxNjB2LTU2LjJIMjcxLjN2LTMxLjNoMTkzLjh2LTgwLjFzMC0xMy41IDEzLjctMTMuNUg1NTd2OTMuNmgxOTEuN3YzMS4zSDU1Ny4xVjQwMmgxNTYuNGMtMTUgNjEuMS0zNy43IDExNy40LTY2LjIgMTY2LjggNDcuNSAxNy4xIDkwLjEgMzMuMyAxMjEuOCA0My45eicpKTtcbmV4cG9ydHMuQWxpd2FuZ3dhbmdPdXRsaW5lID0gZ2V0SWNvbignYWxpd2FuZ3dhbmcnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODY4LjIgMzc3LjRjLTE4LjktNDUuMS00Ni4zLTg1LjYtODEuMi0xMjAuNmEzNzcuMjYgMzc3LjI2IDAgMCAwLTEyMC41LTgxLjJBMzc1LjY1IDM3NS42NSAwIDAgMCA1MTkgMTQ1LjhjLTQxLjkgMC04Mi45IDYuNy0xMjEuOSAyMEMzMDYgMTIzLjMgMjAwLjggMTIwIDE3MC42IDEyMGMtMi4yIDAtNy40IDAtOS40LjItMTEuOS40LTIyLjggNi41LTI5LjIgMTYuNC02LjUgOS45LTcuNyAyMi40LTMuNCAzMy41bDY0LjMgMTYxLjZhMzc4LjU5IDM3OC41OSAwIDAgMC01Mi44IDE5My4yYzAgNTEuNCAxMCAxMDEgMjkuOCAxNDcuNiAxOC45IDQ1IDQ2LjIgODUuNiA4MS4yIDEyMC41IDM0LjcgMzQuOCA3NS40IDYyLjEgMTIwLjUgODEuMkM0MTguMyA4OTQgNDY3LjkgOTA0IDUxOSA5MDRjNTEuMyAwIDEwMC45LTEwLjEgMTQ3LjctMjkuOCA0NC45LTE4LjkgODUuNS00Ni4zIDEyMC40LTgxLjIgMzQuNy0zNC44IDYyLjEtNzUuNCA4MS4yLTEyMC42YTM3Ni41IDM3Ni41IDAgMCAwIDI5LjgtMTQ3LjZjLS4yLTUxLjItMTAuMS0xMDAuOC0yOS45LTE0Ny40em0tNjYuNCAyNjYuNWEzMDcuMDggMzA3LjA4IDAgMCAxLTY1LjkgOThjLTI4LjQgMjguNS02MS4zIDUwLjctOTcuNyA2NS45aC0uMWMtMzggMTYtNzguMyAyNC4yLTExOS45IDI0LjJhMzA2LjUxIDMwNi41MSAwIDAgMS0yMTcuNS05MC4yYy0yOC40LTI4LjUtNTAuNi02MS40LTY1LjgtOTcuOHYtLjFjLTE2LTM3LjgtMjQuMS03OC4yLTI0LjEtMTE5LjkgMC01NS40IDE0LjgtMTA5LjcgNDIuOC0xNTdsMTMuMi0yMi4xLTkuNS0yMy45TDIwNiAxOTJjMTQuOS42IDM1LjkgMi4xIDU5LjcgNS42IDQzLjggNi41IDgyLjUgMTcuNSAxMTQuOSAzMi42bDE5IDguOSAxOS45LTYuOGMzMS41LTEwLjggNjQuOC0xNi4yIDk4LjktMTYuMmEzMDYuNTEgMzA2LjUxIDAgMCAxIDIxNy41IDkwLjJjMjguNCAyOC41IDUwLjYgNjEuNCA2NS44IDk3LjhsLjEuMS4xLjFjMTYgMzcuNiAyNC4xIDc4IDI0LjIgMTE5LjgtLjEgNDEuNy04LjMgODItMjQuMyAxMTkuOHpNNjgxLjEgMzY0LjJjLTIwLjQgMC0zNy4xIDE2LjctMzcuMSAzNy4xdjU1LjFjMCAyMC40IDE2LjYgMzcuMSAzNy4xIDM3LjFzMzcuMS0xNi43IDM3LjEtMzcuMXYtNTUuMWMwLTIwLjUtMTYuNy0zNy4xLTM3LjEtMzcuMXptLTE3NS4yIDBjLTIwLjUgMC0zNy4xIDE2LjctMzcuMSAzNy4xdjU1LjFjMCAyMC40IDE2LjcgMzcuMSAzNy4xIDM3LjEgMjAuNSAwIDM3LjEtMTYuNyAzNy4xLTM3LjF2LTU1LjFjMC0yMC41LTE2LjctMzcuMS0zNy4xLTM3LjF6JykpO1xuZXhwb3J0cy5BbmRyb2lkT3V0bGluZSA9IGdldEljb24oJ2FuZHJvaWQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNDQ4LjMgMjI1LjJjLTE4LjYgMC0zMiAxMy40LTMyIDMxLjlzMTMuNSAzMS45IDMyIDMxLjljMTguNiAwIDMyLTEzLjQgMzItMzEuOS4xLTE4LjQtMTMuNC0zMS45LTMyLTMxLjl6bTM5My45IDk2LjRjLTEzLjgtMTMuOC0zMi43LTIxLjUtNTMuMi0yMS41LTMuOSAwLTcuNC40LTEwLjcgMXYtMWgtMy42Yy01LjUtMzAuNi0xOC42LTYwLjUtMzguMS04Ny40LTE4LjctMjUuNy00My00Ny45LTcwLjgtNjQuOWwyNS4xLTM1Ljh2LTMuM2MwLS44LjQtMi4zLjctMy44LjYtMi40IDEuNC01LjUgMS40LTguOSAwLTE4LjUtMTMuNS0zMS45LTMyLTMxLjktOS44IDAtMTkuNSA1LjctMjUuOSAxNS40bC0yOS4zIDQyLjFjLTMwLTkuOC02Mi40LTE1LTkzLjgtMTUtMzEuMyAwLTYzLjcgNS4yLTkzLjggMTVMMzg5IDc5LjRjLTYuNi05LjYtMTYuMS0xNS40LTI2LTE1LjQtMTguNiAwLTMyIDEzLjQtMzIgMzEuOSAwIDYuMiAyLjUgMTIuOCA2LjcgMTcuNGwyMi42IDMyLjNjLTI4LjcgMTctNTMuNSAzOS40LTcyLjIgNjUuMS0xOS40IDI2LjktMzIgNTYuOC0zNi43IDg3LjRoLTUuNXYxYy0zLjItLjYtNi43LTEtMTAuNy0xLTIwLjMgMC0zOS4yIDcuNS01My4xIDIxLjMtMTMuOCAxMy44LTIxLjUgMzIuNi0yMS41IDUzdjIzNWMwIDIwLjMgNy41IDM5LjEgMjEuNCA1Mi45IDEzLjggMTMuOCAzMi44IDIxLjUgNTMuMiAyMS41IDMuOSAwIDcuNC0uNCAxMC43LTF2OTMuNWMwIDI5LjIgMjMuOSA1My4xIDUzLjIgNTMuMUgzMzF2NTguM2MwIDIwLjMgNy41IDM5LjEgMjEuNCA1Mi45IDEzLjggMTMuOCAzMi44IDIxLjUgNTMuMiAyMS41IDIwLjMgMCAzOS4yLTcuNSA1My4xLTIxLjMgMTMuOC0xMy44IDIxLjUtMzIuNiAyMS41LTUzdi01OC4ySDU0NHY1OC4xYzAgMjAuMyA3LjUgMzkuMSAyMS40IDUyLjkgMTMuOCAxMy44IDMyLjggMjEuNSA1My4yIDIxLjUgMjAuNCAwIDM5LjItNy41IDUzLjEtMjEuNiAxMy44LTEzLjggMjEuNS0zMi42IDIxLjUtNTN2LTU4LjJoMzEuOWMyOS4zIDAgNTMuMi0yMy44IDUzLjItNTMuMXYtOTEuNGMzLjIuNiA2LjcgMSAxMC43IDEgMjAuMyAwIDM5LjItNy41IDUzLjEtMjEuMyAxMy44LTEzLjggMjEuNS0zMi42IDIxLjUtNTN2LTIzNWMtLjEtMjAuMy03LjYtMzktMjEuNC01Mi45ek0yNDYgNjA5LjZjMCA2LjgtMy45IDEwLjYtMTAuNyAxMC42LTYuOCAwLTEwLjctMy44LTEwLjctMTAuNlYzNzQuNWMwLTYuOCAzLjktMTAuNiAxMC43LTEwLjYgNi44IDAgMTAuNyAzLjggMTAuNyAxMC42djIzNS4xem0xMzEuMS0zOTYuOGMzNy41LTI3LjMgODUuMy00Mi4zIDEzNS00Mi4zczk3LjUgMTUuMSAxMzUgNDIuNWMzMi40IDIzLjcgNTQuMiA1NC4yIDYyLjcgODcuNUgzMTQuNGM4LjUtMzMuNCAzMC41LTY0IDYyLjctODcuN3ptMzkuMyA2NzQuN2MtLjYgNS42LTQuNCA4LjctMTAuNSA4LjctNi44IDAtMTAuNy0zLjgtMTAuNy0xMC42di01OC4yaDIxLjJ2NjAuMXptMjAyLjMgOC43Yy02LjggMC0xMC43LTMuOC0xMC43LTEwLjZ2LTU4LjJoMjEuMnY2MC4xYy0uNiA1LjYtNC4zIDguNy0xMC41IDguN3ptOTUuOC0xMzIuNkgzMDkuOVYzNjRoNDA0LjZ2Mzk5LjZ6bTg1LjItMTU0YzAgNi44LTMuOSAxMC42LTEwLjcgMTAuNi02LjggMC0xMC43LTMuOC0xMC43LTEwLjZWMzc0LjVjMC02LjggMy45LTEwLjYgMTAuNy0xMC42IDYuOCAwIDEwLjcgMy44IDEwLjcgMTAuNnYyMzUuMXpNNTc2LjEgMjI1LjJjLTE4LjYgMC0zMiAxMy40LTMyIDMxLjlzMTMuNSAzMS45IDMyIDMxLjljMTguNiAwIDMyLjEtMTMuNCAzMi4xLTMyLS4xLTE4LjYtMTMuNC0zMS44LTMyLjEtMzEuOHonKSk7XG5leHBvcnRzLkFwaU91dGxpbmUgPSBnZXRJY29uKCdhcGknLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTE3LjcgMTQ4LjhsLTQyLjQtNDIuNGMtMS42LTEuNi0zLjYtMi4zLTUuNy0yLjNzLTQuMS44LTUuNyAyLjNsLTc2LjEgNzYuMWExOTkuMjcgMTk5LjI3IDAgMCAwLTExMi4xLTM0LjNjLTUxLjIgMC0xMDIuNCAxOS41LTE0MS41IDU4LjZMNDMyLjMgMzA4LjdhOC4wMyA4LjAzIDAgMCAwIDAgMTEuM0w3MDQgNTkxLjdjMS42IDEuNiAzLjYgMi4zIDUuNyAyLjMgMiAwIDQuMS0uOCA1LjctMi4zbDEwMS45LTEwMS45YzY4LjktNjkgNzctMTc1LjcgMjQuMy0yNTMuNWw3Ni4xLTc2LjFjMy4xLTMuMiAzLjEtOC4zIDAtMTEuNHpNNzY5LjEgNDQxLjdsLTU5LjQgNTkuNC0xODYuOC0xODYuOCA1OS40LTU5LjRjMjQuOS0yNC45IDU4LjEtMzguNyA5My40LTM4LjcgMzUuMyAwIDY4LjQgMTMuNyA5My40IDM4LjcgMjQuOSAyNC45IDM4LjcgNTguMSAzOC43IDkzLjQgMCAzNS4zLTEzLjggNjguNC0zOC43IDkzLjR6bS0xOTAuMiAxMDVhOC4wMyA4LjAzIDAgMCAwLTExLjMgMEw1MDEgNjEzLjMgNDEwLjcgNTIzbDY2LjctNjYuN2MzLjEtMy4xIDMuMS04LjIgMC0xMS4zTDQ0MSA0MDguNmE4LjAzIDguMDMgMCAwIDAtMTEuMyAwTDM2MyA0NzUuM2wtNDMtNDNhNy44NSA3Ljg1IDAgMCAwLTUuNy0yLjNjLTIgMC00LjEuOC01LjcgMi4zTDIwNi44IDUzNC4yYy02OC45IDY5LTc3IDE3NS43LTI0LjMgMjUzLjVsLTc2LjEgNzYuMWE4LjAzIDguMDMgMCAwIDAgMCAxMS4zbDQyLjQgNDIuNGMxLjYgMS42IDMuNiAyLjMgNS43IDIuM3M0LjEtLjggNS43LTIuM2w3Ni4xLTc2LjFjMzMuNyAyMi45IDcyLjkgMzQuMyAxMTIuMSAzNC4zIDUxLjIgMCAxMDIuNC0xOS41IDE0MS41LTU4LjZsMTAxLjktMTAxLjljMy4xLTMuMSAzLjEtOC4yIDAtMTEuM2wtNDMtNDMgNjYuNy02Ni43YzMuMS0zLjEgMy4xLTguMiAwLTExLjNsLTM2LjYtMzYuMnpNNDQxLjcgNzY5LjFhMTMxLjMyIDEzMS4zMiAwIDAgMS05My40IDM4LjdjLTM1LjMgMC02OC40LTEzLjctOTMuNC0zOC43YTEzMS4zMiAxMzEuMzIgMCAwIDEtMzguNy05My40YzAtMzUuMyAxMy43LTY4LjQgMzguNy05My40bDU5LjQtNTkuNCAxODYuOCAxODYuOC01OS40IDU5LjR6JykpO1xuZXhwb3J0cy5BcHBzdG9yZU91dGxpbmUgPSBnZXRJY29uKCdhcHBzdG9yZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ000NjQgMTQ0SDE2MGMtOC44IDAtMTYgNy4yLTE2IDE2djMwNGMwIDguOCA3LjIgMTYgMTYgMTZoMzA0YzguOCAwIDE2LTcuMiAxNi0xNlYxNjBjMC04LjgtNy4yLTE2LTE2LTE2em0tNTIgMjY4SDIxMlYyMTJoMjAwdjIwMHptNDUyLTI2OEg1NjBjLTguOCAwLTE2IDcuMi0xNiAxNnYzMDRjMCA4LjggNy4yIDE2IDE2IDE2aDMwNGM4LjggMCAxNi03LjIgMTYtMTZWMTYwYzAtOC44LTcuMi0xNi0xNi0xNnptLTUyIDI2OEg2MTJWMjEyaDIwMHYyMDB6TTQ2NCA1NDRIMTYwYy04LjggMC0xNiA3LjItMTYgMTZ2MzA0YzAgOC44IDcuMiAxNiAxNiAxNmgzMDRjOC44IDAgMTYtNy4yIDE2LTE2VjU2MGMwLTguOC03LjItMTYtMTYtMTZ6bS01MiAyNjhIMjEyVjYxMmgyMDB2MjAwem00NTItMjY4SDU2MGMtOC44IDAtMTYgNy4yLTE2IDE2djMwNGMwIDguOCA3LjIgMTYgMTYgMTZoMzA0YzguOCAwIDE2LTcuMiAxNi0xNlY1NjBjMC04LjgtNy4yLTE2LTE2LTE2em0tNTIgMjY4SDYxMlY2MTJoMjAwdjIwMHonKSk7XG5leHBvcnRzLkF1ZGlvT3V0bGluZSA9IGdldEljb24oJ2F1ZGlvJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg0MiA0NTRjMC00LjQtMy42LTgtOC04aC02MGMtNC40IDAtOCAzLjYtOCA4IDAgMTQwLjMtMTEzLjcgMjU0LTI1NCAyNTRTMjU4IDU5NC4zIDI1OCA0NTRjMC00LjQtMy42LTgtOC04aC02MGMtNC40IDAtOCAzLjYtOCA4IDAgMTY4LjcgMTI2LjYgMzA3LjkgMjkwIDMyNy42Vjg4NEgzMjYuN2MtMTMuNyAwLTI0LjcgMTQuMy0yNC43IDMydjM2YzAgNC40IDIuOCA4IDYuMiA4aDQwNy42YzMuNCAwIDYuMi0zLjYgNi4yLTh2LTM2YzAtMTcuNy0xMS0zMi0yNC43LTMySDU0OFY3ODIuMWMxNjUuMy0xOCAyOTQtMTU4IDI5NC0zMjguMXpNNTEyIDYyNGM5My45IDAgMTcwLTc1LjIgMTcwLTE2OFYyMzJjMC05Mi44LTc2LjEtMTY4LTE3MC0xNjhzLTE3MCA3NS4yLTE3MCAxNjh2MjI0YzAgOTIuOCA3Ni4xIDE2OCAxNzAgMTY4em0tOTQtMzkyYzAtNTAuNiA0MS45LTkyIDk0LTkyczk0IDQxLjQgOTQgOTJ2MjI0YzAgNTAuNi00MS45IDkyLTk0IDkycy05NC00MS40LTk0LTkyVjIzMnonKSk7XG5leHBvcnRzLkFwcGxlT3V0bGluZSA9IGdldEljb24oJ2FwcGxlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTc0Ny40IDUzNS43Yy0uNC02OC4yIDMwLjUtMTE5LjYgOTIuOS0xNTcuNS0zNC45LTUwLTg3LjctNzcuNS0xNTcuMy04Mi44LTY1LjktNS4yLTEzOCAzOC40LTE2NC40IDM4LjQtMjcuOSAwLTkxLjctMzYuNi0xNDEuOS0zNi42QzI3My4xIDI5OC44IDE2MyAzNzkuOCAxNjMgNTQ0LjZjMCA0OC43IDguOSA5OSAyNi43IDE1MC44IDIzLjggNjguMiAxMDkuNiAyMzUuMyAxOTkuMSAyMzIuNiA0Ni44LTEuMSA3OS45LTMzLjIgMTQwLjgtMzMuMiA1OS4xIDAgODkuNyAzMy4yIDE0MS45IDMzLjIgOTAuMy0xLjMgMTY3LjktMTUzLjIgMTkwLjUtMjIxLjYtMTIxLjEtNTcuMS0xMTQuNi0xNjcuMi0xMTQuNi0xNzAuN3ptLTEwLjYgMjY3Yy0xNC4zIDE5LjktMjguNyAzNS42LTQxLjkgNDUuNy0xMC41IDgtMTguNiAxMS40LTI0IDExLjYtOS0uMS0xNy43LTIuMy0zNC43LTguOC0xLjItLjUtMi41LTEtNC4yLTEuNmwtNC40LTEuN2MtMTcuNC02LjctMjcuOC0xMC4zLTQxLjEtMTMuOC0xOC42LTQuOC0zNy4xLTcuNC01Ni45LTcuNC0yMC4yIDAtMzkuMiAyLjUtNTguMSA3LjItMTMuOSAzLjUtMjUuNiA3LjQtNDIuNyAxMy44LS43LjMtOC4xIDMuMS0xMC4yIDMuOS0zLjUgMS4zLTYuMiAyLjMtOC43IDMuMi0xMC40IDMuNi0xNyA1LjEtMjIuOSA1LjItLjcgMC0xLjMtLjEtMS44LS4yLTEuMS0uMi0yLjUtLjYtNC4xLTEuMy00LjUtMS44LTkuOS01LjEtMTYtOS44LTE0LTEwLjktMjkuNC0yOC00NS4xLTQ5LjktMjcuNS0zOC42LTUzLjUtODkuOC02Ni0xMjUuNy0xNS40LTQ0LjgtMjMtODcuNy0yMy0xMjguNiAwLTYwLjIgMTcuOC0xMDYgNDguNC0xMzcuMSAyNi4zLTI2LjYgNjEuNy00MS41IDk3LjgtNDIuMyA1LjkuMSAxNC41IDEuNSAyNS40IDQuNSA4LjYgMi4zIDE4IDUuNCAzMC43IDkuOSAzLjggMS40IDE2LjkgNi4xIDE4LjUgNi43IDcuNyAyLjggMTMuNSA0LjggMTkuMiA2LjYgMTguMiA1LjggMzIuMyA5IDQ3LjYgOSAxNS41IDAgMjguOC0zLjMgNDcuNy05LjggNy4xLTIuNCAzMi45LTEyIDM3LjUtMTMuNiAyNS42LTkuMSA0NC41LTE0IDYwLjgtMTUuMiA0LjgtLjQgOS4xLS40IDEzLjItLjEgMjIuNyAxLjggNDIuMSA2LjMgNTguNiAxMy44LTM3LjYgNDMuNC01NyA5Ni41LTU2LjkgMTU4LjQtLjMgMTQuNy45IDMxLjcgNS4xIDUxLjggNi40IDMwLjUgMTguNiA2MC43IDM3LjkgODkgMTQuNyAyMS41IDMyLjkgNDAuOSA1NC43IDU3LjgtMTEuNSAyMy43LTI1LjYgNDguMi00MC40IDY4Ljh6bS05NC41LTU3MmM1MC43LTYwLjIgNDYuMS0xMTUgNDQuNi0xMzQuNy00NC44IDIuNi05Ni42IDMwLjUtMTI2LjEgNjQuOC0zMi41IDM2LjgtNTEuNiA4Mi4zLTQ3LjUgMTMzLjYgNDguNCAzLjcgOTIuNi0yMS4yIDEyOS02My43eicpKTtcbmV4cG9ydHMuQmFja3dhcmRPdXRsaW5lID0gZ2V0SWNvbignYmFja3dhcmQnLCBvdXRsaW5lLCBnZXROb2RlKG5vcm1hbFZpZXdCb3gsICdNNDg1LjYgMjQ5LjlMMTk4LjIgNDk4Yy04LjMgNy4xLTguMyAyMC44IDAgMjcuOWwyODcuNCAyNDguMmMxMC43IDkuMiAyNi40LjkgMjYuNC0xNFYyNjMuOGMwLTE0LjgtMTUuNy0yMy4yLTI2LjQtMTMuOXptMzIwIDBMNTE4LjIgNDk4YTE4LjYgMTguNiAwIDAgMC02LjIgMTRjMCA1LjIgMi4xIDEwLjQgNi4yIDE0bDI4Ny40IDI0OC4yYzEwLjcgOS4yIDI2LjQuOSAyNi40LTE0VjI2My44YzAtMTQuOC0xNS43LTIzLjItMjYuNC0xMy45eicpKTtcbmV4cG9ydHMuQmFua091dGxpbmUgPSBnZXRJY29uKCdiYW5rJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg5NCA0NjJjMzAuOSAwIDQzLjgtMzkuNyAxOC43LTU4TDUzMC44IDEyNi4yYTMxLjgxIDMxLjgxIDAgMCAwLTM3LjYgMEwxMTEuMyA0MDRjLTI1LjEgMTguMi0xMi4yIDU4IDE4LjggNThIMTkydjM3NGgtNzJjLTQuNCAwLTggMy42LTggOHY1MmMwIDQuNCAzLjYgOCA4IDhoNzg0YzQuNCAwIDgtMy42IDgtOHYtNTJjMC00LjQtMy42LTgtOC04aC03MlY0NjJoNjJ6TTUxMiAxOTYuN2wyNzEuMSAxOTcuMkgyNDAuOUw1MTIgMTk2Ljd6TTI2NCA0NjJoMTE3djM3NEgyNjRWNDYyem0xODkgMGgxMTd2Mzc0SDQ1M1Y0NjJ6bTMwNyAzNzRINjQyVjQ2MmgxMTh2Mzc0eicpKTtcbmV4cG9ydHMuQmVsbE91dGxpbmUgPSBnZXRJY29uKCdiZWxsJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTgxNiA3NjhoLTI0VjQyOGMwLTE0MS4xLTEwNC4zLTI1Ny43LTI0MC0yNzcuMVYxMTJjMC0yMi4xLTE3LjktNDAtNDAtNDBzLTQwIDE3LjktNDAgNDB2MzguOWMtMTM1LjcgMTkuNC0yNDAgMTM2LTI0MCAyNzcuMXYzNDBoLTI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYzMmMwIDQuNCAzLjYgOCA4IDhoMjE2YzAgNjEuOCA1MC4yIDExMiAxMTIgMTEyczExMi01MC4yIDExMi0xMTJoMjE2YzQuNCAwIDgtMy42IDgtOHYtMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTUxMiA4ODhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4aDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4ek0zMDQgNzY4VjQyOGMwLTU1LjYgMjEuNi0xMDcuOCA2MC45LTE0Ny4xUzQ1Ni40IDIyMCA1MTIgMjIwYzU1LjYgMCAxMDcuOCAyMS42IDE0Ny4xIDYwLjlTNzIwIDM3Mi40IDcyMCA0Mjh2MzQwSDMwNHonKSk7XG5leHBvcnRzLkJlaGFuY2VTcXVhcmVPdXRsaW5lID0gZ2V0SWNvbignYmVoYW5jZS1zcXVhcmUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek01OTguNSAzNTAuOWgxMzguNHYzMy43SDU5OC41di0zMy43ek01MTIgNjI4LjhhODkuNTIgODkuNTIgMCAwIDEtMjcgMzFjLTExLjggOC4yLTI0LjkgMTQuMi0zOC44IDE3LjdhMTY3LjQgMTY3LjQgMCAwIDEtNDQuNiA1LjdIMjM2VjM0Mi4xaDE2MWMxNi4zIDAgMzEuMSAxLjUgNDQuNiA0LjMgMTMuNCAyLjggMjQuOCA3LjYgMzQuNCAxNC4xIDkuNSA2LjUgMTcgMTUuMiAyMi4zIDI2IDUuMiAxMC43IDcuOSAyNC4xIDcuOSA0MCAwIDE3LjItMy45IDMxLjQtMTEuNyA0Mi45LTcuOSAxMS41LTE5LjMgMjAuOC0zNC44IDI4LjEgMjEuMSA2IDM2LjYgMTYuNyA0Ni44IDMxLjcgMTAuNCAxNS4yIDE1LjUgMzMuNCAxNS41IDU0LjggMCAxNy40LTMuMyAzMi4zLTEwIDQ0Ljh6TTc5MC44IDU3Nkg2MTIuNGMwIDE5LjQgNi43IDM4IDE2LjggNDggMTAuMiA5LjkgMjQuOCAxNC45IDQzLjkgMTQuOSAxMy44IDAgMjUuNS0zLjUgMzUuNS0xMC40IDkuOS02LjkgMTUuOS0xNC4yIDE4LjEtMjEuOGg1OS44Yy05LjYgMjkuNy0yNC4yIDUwLjktNDQgNjMuNy0xOS42IDEyLjgtNDMuNiAxOS4yLTcxLjUgMTkuMi0xOS41IDAtMzctMy4yLTUyLjctOS4zLTE1LjEtNS45LTI4LjctMTQuOS0zOS45LTI2LjVhMTIxLjIgMTIxLjIgMCAwIDEtMjUuMS00MS4yYy02LjEtMTYuOS05LjEtMzQuNy04LjktNTIuNiAwLTE4LjUgMy4xLTM1LjcgOS4xLTUxLjcgMTEuNS0zMS4xIDM1LjQtNTYgNjUuOS02OC45IDE2LjMtNi44IDMzLjgtMTAuMiA1MS41LTEwIDIxIDAgMzkuMiA0IDU1IDEyLjJhMTExLjYgMTExLjYgMCAwIDEgMzguNiAzMi44YzEwLjEgMTMuNyAxNy4yIDI5LjMgMjEuNyA0Ni45IDQuMyAxNy4zIDUuOCAzNS41IDQuNiA1NC43em0tMTIyLTk1LjZjLTEwLjggMC0xOS45IDEuOS0yNi45IDUuNi03IDMuNy0xMi44IDguMy0xNy4yIDEzLjZhNDguNCA0OC40IDAgMCAwLTkuMSAxNy40Yy0xLjYgNS4zLTIuNyAxMC43LTMuMSAxNi4ySDcyM2MtMS42LTE3LjMtNy42LTMwLjEtMTUuNi0zOS4xLTguNC04LjktMjEuOS0xMy43LTM4LjYtMTMuN3ptLTI0OC41LTEwLjFjOC43LTYuMyAxMi45LTE2LjcgMTIuOS0zMSAuMy02LjgtMS4xLTEzLjUtNC4xLTE5LjYtMi43LTQuOS02LjctOS0xMS42LTExLjlhNDQuOCA0NC44IDAgMCAwLTE2LjYtNmMtNi40LTEuMi0xMi45LTEuOC0xOS4zLTEuN2gtNzAuM3Y3OS43aDc2LjFjMTMuMS4xIDI0LjItMy4xIDMyLjktOS41em0xMS44IDcyYy05LjgtNy41LTIyLjktMTEuMi0zOS4yLTExLjJoLTgxLjh2OTRoODAuMmM3LjUgMCAxNC40LS43IDIxLjEtMi4xczEyLjctMy44IDE3LjgtNy4yYzUuMS0zLjMgOS4yLTcuOCAxMi4zLTEzLjYgMy01LjggNC41LTEzLjIgNC41LTIyLjEgMC0xNy43LTUtMzAuMi0xNC45LTM3Ljh6JykpO1xuZXhwb3J0cy5Cb29rT3V0bGluZSA9IGdldEljb24oJ2Jvb2snLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODMyIDY0SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlY5NmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTI2MCA3Mmg5NnYyMDkuOUw2MjEuNSAzMTIgNTcyIDM0Ny40VjEzNnptMjIwIDc1MkgyMzJWMTM2aDI4MHYyOTYuOWMwIDMuMyAxIDYuNiAzIDkuM2ExNS45IDE1LjkgMCAwIDAgMjIuMyAzLjdsODMuOC01OS45IDgxLjQgNTkuNGMyLjcgMiA2IDMuMSA5LjQgMy4xIDguOCAwIDE2LTcuMiAxNi0xNlYxMzZoNjR2NzUyeicpKTtcbmV4cG9ydHMuQm94UGxvdE91dGxpbmUgPSBnZXRJY29uKCdib3gtcGxvdCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ005NTIgMjI0aC01MmMtNC40IDAtOCAzLjYtOCA4djI0OGgtOTJWMzA0YzAtNC40LTMuNi04LTgtOEgyMzJjLTQuNCAwLTggMy42LTggOHYxNzZoLTkyVjIzMmMwLTQuNC0zLjYtOC04LThINzJjLTQuNCAwLTggMy42LTggOHY1NjBjMCA0LjQgMy42IDggOCA4aDUyYzQuNCAwIDgtMy42IDgtOFY1NDhoOTJ2MTcyYzAgNC40IDMuNiA4IDggOGg1NjBjNC40IDAgOC0zLjYgOC04VjU0OGg5MnYyNDRjMCA0LjQgMy42IDggOCA4aDUyYzQuNCAwIDgtMy42IDgtOFYyMzJjMC00LjQtMy42LTgtOC04ek0yOTYgMzY4aDg4djI4OGgtODhWMzY4em00MzIgMjg4SDQ0OFYzNjhoMjgwdjI4OHonKSk7XG5leHBvcnRzLkJ1bGJPdXRsaW5lID0gZ2V0SWNvbignYnVsYicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ002MzIgODg4SDM5MmMtNC40IDAtOCAzLjYtOCA4djMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDE5MmMxNy43IDAgMzItMTQuMyAzMi0zMnYtMzJjMC00LjQtMy42LTgtOC04ek01MTIgNjRjLTE4MS4xIDAtMzI4IDE0Ni45LTMyOCAzMjggMCAxMjEuNCA2NiAyMjcuNCAxNjQgMjg0LjFWNzkyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDI2NGMxNy43IDAgMzItMTQuMyAzMi0zMlY2NzYuMWM5OC01Ni43IDE2NC0xNjIuNyAxNjQtMjg0LjEgMC0xODEuMS0xNDYuOS0zMjgtMzI4LTMyOHptMTI3LjkgNTQ5LjhMNjA0IDYzNC42Vjc1Mkg0MjBWNjM0LjZsLTM1LjktMjAuOEMzMDUuNCA1NjguMyAyNTYgNDg0LjUgMjU2IDM5MmMwLTE0MS40IDExNC42LTI1NiAyNTYtMjU2czI1NiAxMTQuNiAyNTYgMjU2YzAgOTIuNS00OS40IDE3Ni4zLTEyOC4xIDIyMS44eicpKTtcbmV4cG9ydHMuQnVnT3V0bGluZSA9IGdldEljb24oJ2J1ZycsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ00zMDQgMjgwaDU2YzQuNCAwIDgtMy42IDgtOCAwLTI4LjMgNS45LTUzLjIgMTcuMS03My41IDEwLjYtMTkuNCAyNi0zNC44IDQ1LjQtNDUuNEM0NTAuOSAxNDIgNDc1LjcgMTM2IDUwNCAxMzZoMTZjMjguMyAwIDUzLjIgNS45IDczLjUgMTcuMSAxOS40IDEwLjYgMzQuOCAyNiA0NS40IDQ1LjRDNjUwIDIxOC45IDY1NiAyNDMuNyA2NTYgMjcyYzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTggMC00MC04LjgtNzYuNy0yNS45LTEwOC4xYTE4NC4zMSAxODQuMzEgMCAwIDAtNzQtNzRDNTk2LjcgNzIuOCA1NjAgNjQgNTIwIDY0aC0xNmMtNDAgMC03Ni43IDguOC0xMDguMSAyNS45YTE4NC4zMSAxODQuMzEgMCAwIDAtNzQgNzRDMzA0LjggMTk1LjMgMjk2IDIzMiAyOTYgMjcyYzAgNC40IDMuNiA4IDggOHonLCAnTTk0MCA1MTJINzkyVjQxMmM3Ni44IDAgMTM5LTYyLjIgMTM5LTEzOSAwLTQuNC0zLjYtOC04LThoLTYwYy00LjQgMC04IDMuNi04IDhhNjMgNjMgMCAwIDEtNjMgNjNIMjMyYTYzIDYzIDAgMCAxLTYzLTYzYzAtNC40LTMuNi04LTgtOGgtNjBjLTQuNCAwLTggMy42LTggOCAwIDc2LjggNjIuMiAxMzkgMTM5IDEzOXYxMDBIODRjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoMTQ4djk2YzAgNi41LjIgMTMgLjcgMTkuM0MxNjQuMSA3MjguNiAxMTYgNzk2LjcgMTE2IDg3NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04IDAtNDQuMiAyMy45LTgyLjkgNTkuNi0xMDMuN2EyNzMgMjczIDAgMCAwIDIyLjcgNDljMjQuMyA0MS41IDU5IDc2LjIgMTAwLjUgMTAwLjVTNDYwLjUgOTYwIDUxMiA5NjBzOTkuOC0xMy45IDE0MS4zLTM4LjJhMjgxLjM4IDI4MS4zOCAwIDAgMCAxMjMuMi0xNDkuNUExMjAgMTIwIDAgMCAxIDgzNiA4NzZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOCAwLTc5LjMtNDguMS0xNDcuNC0xMTYuNy0xNzYuNy40LTYuNC43LTEyLjguNy0xOS4zdi05NmgxNDhjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6TTcxNiA2ODBjMCAzNi44LTkuNyA3Mi0yNy44IDEwMi45LTE3LjcgMzAuMy00MyA1NS42LTczLjMgNzMuM0M1ODQgODc0LjMgNTQ4LjggODg0IDUxMiA4ODRzLTcyLTkuNy0xMDIuOS0yNy44Yy0zMC4zLTE3LjctNTUuNi00My03My4zLTczLjNBMjAyLjc1IDIwMi43NSAwIDAgMSAzMDggNjgwVjQxMmg0MDh2MjY4eicpKTtcbmV4cG9ydHMuQ2FsY3VsYXRvck91dGxpbmUgPSBnZXRJY29uKCdjYWxjdWxhdG9yJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTI1MS4yIDM4N0gzMjB2NjguOGMwIDEuOCAxLjggMy4yIDQgMy4yaDQ4YzIuMiAwIDQtMS40IDQtMy4zVjM4N2g2OC44YzEuOCAwIDMuMi0xLjggMy4yLTR2LTQ4YzAtMi4yLTEuNC00LTMuMy00SDM3NnYtNjguOGMwLTEuOC0xLjgtMy4yLTQtMy4yaC00OGMtMi4yIDAtNCAxLjQtNCAzLjJWMzMxaC02OC44Yy0xLjggMC0zLjIgMS44LTMuMiA0djQ4YzAgMi4yIDEuNCA0IDMuMiA0em0zMjggMGgxOTMuNmMxLjggMCAzLjItMS44IDMuMi00di00OGMwLTIuMi0xLjQtNC0zLjMtNEg1NzkuMmMtMS44IDAtMy4yIDEuOC0zLjIgNHY0OGMwIDIuMiAxLjQgNCAzLjIgNHptMCAyNjVoMTkzLjZjMS44IDAgMy4yLTEuOCAzLjItNHYtNDhjMC0yLjItMS40LTQtMy4zLTRINTc5LjJjLTEuOCAwLTMuMiAxLjgtMy4yIDR2NDhjMCAyLjIgMS40IDQgMy4yIDR6bTAgMTA0aDE5My42YzEuOCAwIDMuMi0xLjggMy4yLTR2LTQ4YzAtMi4yLTEuNC00LTMuMy00SDU3OS4yYy0xLjggMC0zLjIgMS44LTMuMiA0djQ4YzAgMi4yIDEuNCA0IDMuMiA0em0tMTk1LjctODFsNjEuMi03NC45YzQuMy01LjIuNy0xMy4xLTUuOS0xMy4xSDM4OGMtMi4zIDAtNC41IDEtNS45IDIuOWwtMzQgNDEuNi0zNC00MS42YTcuODUgNy44NSAwIDAgMC01LjktMi45aC01MC45Yy02LjYgMC0xMC4yIDcuOS01LjkgMTMuMWw2MS4yIDc0LjktNjIuNyA3Ni44Yy00LjQgNS4yLS44IDEzLjEgNS44IDEzLjFoNTAuOGMyLjMgMCA0LjUtMSA1LjktMi45bDM1LjUtNDMuNSAzNS41IDQzLjVjMS41IDEuOCAzLjcgMi45IDUuOSAyLjloNTAuOGM2LjYgMCAxMC4yLTcuOSA1LjktMTMuMUwzODMuNSA2NzV6TTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTM2IDczMkgxODBWMTgwaDY2NHY2NjR6JykpO1xuZXhwb3J0cy5CdWlsZE91dGxpbmUgPSBnZXRJY29uKCdidWlsZCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MTYgMjEwSDM3NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MjM2SDEwOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MjcyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDU0MGMxNy43IDAgMzItMTQuMyAzMi0zMlY1NDZoMjM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjI0MmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTUwNCA2OGgyMDB2MjAwSDQxMlYyNzh6bS02OCA0NjhIMTQ0VjU0NmgyMDB2MjAwem0yNjggMEg0MTJWNTQ2aDIwMHYyMDB6bTI2OC0yNjhINjgwVjI3OGgyMDB2MjAweicpKTtcbmV4cG9ydHMuQ2FsZW5kYXJPdXRsaW5lID0gZ2V0SWNvbignY2FsZW5kYXInLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDE4NEg3MTJ2LTY0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2NEgzODR2LTY0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2NEgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjE2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNjU2SDE4NFY0NjBoNjU2djM4MHpNMTg0IDM5MlYyNTZoMTI4djQ4YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTQ4aDI1NnY0OGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di00OGgxMjh2MTM2SDE4NHonKSk7XG5leHBvcnRzLkNhbWVyYU91dGxpbmUgPSBnZXRJY29uKCdjYW1lcmEnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODY0IDI0OEg3MjhsLTMyLjQtOTAuOGEzMi4wNyAzMi4wNyAwIDAgMC0zMC4yLTIxLjJIMzU4LjZjLTEzLjUgMC0yNS42IDguNS0zMC4xIDIxLjJMMjk2IDI0OEgxNjBjLTQ0LjIgMC04MCAzNS44LTgwIDgwdjQ1NmMwIDQ0LjIgMzUuOCA4MCA4MCA4MGg3MDRjNDQuMiAwIDgwLTM1LjggODAtODBWMzI4YzAtNDQuMi0zNS44LTgwLTgwLTgwem04IDUzNmMwIDQuNC0zLjYgOC04IDhIMTYwYy00LjQgMC04LTMuNi04LThWMzI4YzAtNC40IDMuNi04IDgtOGgxODYuN2wxNy4xLTQ3LjggMjIuOS02NC4yaDI1MC41bDIyLjkgNjQuMiAxNy4xIDQ3LjhIODY0YzQuNCAwIDggMy42IDggOHY0NTZ6TTUxMiAzODRjLTg4LjQgMC0xNjAgNzEuNi0xNjAgMTYwczcxLjYgMTYwIDE2MCAxNjAgMTYwLTcxLjYgMTYwLTE2MC03MS42LTE2MC0xNjAtMTYwem0wIDI1NmMtNTMgMC05Ni00My05Ni05NnM0My05NiA5Ni05NiA5NiA0MyA5NiA5Ni00MyA5Ni05NiA5NnonKSk7XG5leHBvcnRzLkNhck91dGxpbmUgPSBnZXRJY29uKCdjYXInLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMzgwIDcwNGgyNjRjNC40IDAgOC0zLjYgOC04di04NGMwLTQuNC0zLjYtOC04LThoLTQwYy00LjQgMC04IDMuNi04IDh2MzZINDI4di0zNmMwLTQuNC0zLjYtOC04LThoLTQwYy00LjQgMC04IDMuNi04IDh2ODRjMCA0LjQgMy42IDggOCA4em0zNDAtMTIzYTQwIDQwIDAgMSAwIDgwIDAgNDAgNDAgMCAxIDAtODAgMHptMjM5LTE2Ny42TDkzNS4zIDM3MmE4IDggMCAwIDAtMTAuOS0yLjlsLTUwLjcgMjkuNi03OC4zLTIxNi4yYTYzLjkgNjMuOSAwIDAgMC02MC45LTQ0LjRIMzAxLjJjLTM0LjcgMC02NS41IDIyLjQtNzYuMiA1NS41bC03NC42IDIwNS4yLTUwLjgtMjkuNmE4IDggMCAwIDAtMTAuOSAyLjlMNjUgNDEzLjRjLTIuMiAzLjgtLjkgOC42IDIuOSAxMC44bDYwLjQgMzUuMi0xNC41IDQwYy0xLjIgMy4yLTEuOCA2LjYtMS44IDEwdjM0OC4yYzAgMTUuNyAxMS44IDI4LjQgMjYuMyAyOC40aDY3LjZjMTIuMyAwIDIzLTkuMyAyNS42LTIyLjNsNy43LTM3LjdoNTQ1LjZsNy43IDM3LjdjMi43IDEzIDEzLjMgMjIuMyAyNS42IDIyLjNoNjcuNmMxNC41IDAgMjYuMy0xMi43IDI2LjMtMjguNFY1MDkuNGMwLTMuNC0uNi02LjgtMS44LTEwbC0xNC41LTQwIDYwLjMtMzUuMmE4IDggMCAwIDAgMy0xMC44ek04NDAgNTE3djIzN0gxODRWNTE3bDE1LjYtNDNoNjI0LjhsMTUuNiA0M3pNMjkyLjcgMjE4LjFsLjUtMS4zLjQtMS4zYzEuMS0zLjMgNC4xLTUuNSA3LjYtNS41aDQyNy42bDc1LjQgMjA4SDIyMGw3Mi43LTE5OS45ek0yMjQgNTgxYTQwIDQwIDAgMSAwIDgwIDAgNDAgNDAgMCAxIDAtODAgMHonKSk7XG5leHBvcnRzLkNhcmV0RG93bk91dGxpbmUgPSBnZXRJY29uKCdjYXJldC1kb3duJywgb3V0bGluZSwgZ2V0Tm9kZShub3JtYWxWaWV3Qm94LCAnTTg0MC40IDMwMEgxODMuNmMtMTkuNyAwLTMwLjcgMjAuOC0xOC41IDM1bDMyOC40IDM4MC44YzkuNCAxMC45IDI3LjUgMTAuOSAzNyAwTDg1OC45IDMzNWMxMi4yLTE0LjIgMS4yLTM1LTE4LjUtMzV6JykpO1xuZXhwb3J0cy5DYXJldExlZnRPdXRsaW5lID0gZ2V0SWNvbignY2FyZXQtbGVmdCcsIG91dGxpbmUsIGdldE5vZGUobm9ybWFsVmlld0JveCwgJ002ODkgMTY1LjFMMzA4LjIgNDkzLjVjLTEwLjkgOS40LTEwLjkgMjcuNSAwIDM3TDY4OSA4NTguOWMxNC4yIDEyLjIgMzUgMS4yIDM1LTE4LjVWMTgzLjZjMC0xOS43LTIwLjgtMzAuNy0zNS0xOC41eicpKTtcbmV4cG9ydHMuQ2FyZXRSaWdodE91dGxpbmUgPSBnZXRJY29uKCdjYXJldC1yaWdodCcsIG91dGxpbmUsIGdldE5vZGUobm9ybWFsVmlld0JveCwgJ003MTUuOCA0OTMuNUwzMzUgMTY1LjFjLTE0LjItMTIuMi0zNS0xLjItMzUgMTguNXY2NTYuOGMwIDE5LjcgMjAuOCAzMC43IDM1IDE4LjVsMzgwLjgtMzI4LjRjMTAuOS05LjQgMTAuOS0yNy42IDAtMzd6JykpO1xuZXhwb3J0cy5DYXJyeU91dE91dGxpbmUgPSBnZXRJY29uKCdjYXJyeS1vdXQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDE4NEg3MTJ2LTY0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2NEgzODR2LTY0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2NEgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjE2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNjU2SDE4NFYyNTZoMTI4djQ4YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTQ4aDI1NnY0OGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di00OGgxMjh2NTg0ek02ODggNDIwaC01NS4yYy01LjEgMC0xMCAyLjUtMTMgNi42TDQ2OC45IDYzNC40bC02NC43LTg5Yy0zLTQuMS03LjgtNi42LTEzLTYuNkgzMzZjLTYuNSAwLTEwLjMgNy40LTYuNSAxMi43bDEyNi40IDE3NGExNi4xIDE2LjEgMCAwIDAgMjYgMGwyMTIuNi0yOTIuN2MzLjgtNS40IDAtMTIuOC02LjUtMTIuOHonKSk7XG5leHBvcnRzLkNoZWNrQ2lyY2xlT3V0bGluZSA9IGdldEljb24oJ2NoZWNrLWNpcmNsZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ002OTkgMzUzaC00Ni45Yy0xMC4yIDAtMTkuOSA0LjktMjUuOSAxMy4zTDQ2OSA1ODQuM2wtNzEuMi05OC44Yy02LTguMy0xNS42LTEzLjMtMjUuOS0xMy4zSDMyNWMtNi41IDAtMTAuMyA3LjQtNi41IDEyLjdsMTI0LjYgMTcyLjhhMzEuOCAzMS44IDAgMCAwIDUxLjcgMGwyMTAuNi0yOTJjMy45LTUuMy4xLTEyLjctNi40LTEyLjd6JywgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6JykpO1xuZXhwb3J0cy5DYXJldFVwT3V0bGluZSA9IGdldEljb24oJ2NhcmV0LXVwJywgb3V0bGluZSwgZ2V0Tm9kZShub3JtYWxWaWV3Qm94LCAnTTg1OC45IDY4OUw1MzAuNSAzMDguMmMtOS40LTEwLjktMjcuNS0xMC45LTM3IDBMMTY1LjEgNjg5Yy0xMi4yIDE0LjItMS4yIDM1IDE4LjUgMzVoNjU2LjhjMTkuNyAwIDMwLjctMjAuOCAxOC41LTM1eicpKTtcbmV4cG9ydHMuQ2hlY2tTcXVhcmVPdXRsaW5lID0gZ2V0SWNvbignY2hlY2stc3F1YXJlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTQzMy4xIDY1Ny43YTMxLjggMzEuOCAwIDAgMCA1MS43IDBsMjEwLjYtMjkyYzMuOC01LjMgMC0xMi43LTYuNS0xMi43SDY0MmMtMTAuMiAwLTE5LjkgNC45LTI1LjkgMTMuM0w0NTkgNTg0LjNsLTcxLjItOTguOGMtNi04LjMtMTUuNi0xMy4zLTI1LjktMTMuM0gzMTVjLTYuNSAwLTEwLjMgNy40LTYuNSAxMi43bDEyNC42IDE3Mi44eicsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNzI4SDE4NFYxODRoNjU2djY1NnonKSk7XG5leHBvcnRzLkNocm9tZU91dGxpbmUgPSBnZXRJY29uKCdjaHJvbWUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTI4IDUxMi4zdi0uM2MwLTIyOS44LTE4Ni4yLTQxNi00MTYtNDE2Uzk2IDI4Mi4yIDk2IDUxMnYuNGMwIDIyOS44IDE4Ni4yIDQxNiA0MTYgNDE2czQxNi0xODYuMiA0MTYtNDE2di0uMy4yem0tNi43LTc0LjZsLjYgMy4zLS42LTMuM3pNNjc2LjcgNjM4LjJjNTMuNS04Mi4yIDUyLjUtMTg5LjQtMTEuMS0yNjMuN2wxNjIuNC04LjRjMjAuNSA0NC40IDMyIDkzLjggMzIgMTQ1LjkgMCAxODUuMi0xNDQuNiAzMzYuNi0zMjcuMSAzNDcuNGwxNDMuOC0yMjEuMnpNNTEyIDY1Mi4zYy03Ny41IDAtMTQwLjItNjIuNy0xNDAuMi0xNDAuMiAwLTc3LjcgNjIuNy0xNDAuMiAxNDAuMi0xNDAuMlM2NTIuMiA0MzQuNSA2NTIuMiA1MTIgNTg5LjUgNjUyLjMgNTEyIDY1Mi4zem0zNjkuMi0zMzEuN2wtMy01LjcgMyA1Ljd6TTUxMiAxNjRjMTIxLjMgMCAyMjguMiA2Mi4xIDI5MC40IDE1Ni4ybC0yNjMuNi0xMy45Yy05Ny41LTUuNy0xOTAuMiA0OS4yLTIyMi4zIDE0MS4xTDIyNy44IDMxMWM2My4xLTg4LjkgMTY2LjktMTQ3IDI4NC4yLTE0N3pNMTAyLjUgNTg1LjhjMjYgMTQ1IDEyNy4xIDI2NCAyNjEuNiAzMTUuMUMyMjkuNiA4NTAgMTI4LjUgNzMxIDEwMi41IDU4NS44ek0xNjQgNTEyYzAtNTUuOSAxMy4yLTEwOC43IDM2LjYtMTU1LjVsMTE5LjcgMjM1LjRjNDQuMSA4Ni43IDEzNy40IDEzOS43IDIzNCAxMjEuNmwtNzQgMTQ1LjFDMzAyLjkgODQyLjUgMTY0IDY5My41IDE2NCA1MTJ6bTMyNC43IDQxNS40YzQgLjIgOCAuNCAxMiAuNS00LS4yLTgtLjMtMTItLjV6JykpO1xuZXhwb3J0cy5DbG9ja0NpcmNsZU91dGxpbmUgPSBnZXRJY29uKCdjbG9jay1jaXJjbGUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeicsICdNNjg2LjcgNjM4LjZMNTQ0LjEgNTM1LjVWMjg4YzAtNC40LTMuNi04LTgtOEg0ODhjLTQuNCAwLTggMy42LTggOHYyNzUuNGMwIDIuNiAxLjIgNSAzLjMgNi41bDE2NS40IDEyMC42YzMuNiAyLjYgOC42IDEuOCAxMS4yLTEuN2wyOC42LTM5YzIuNi0zLjcgMS44LTguNy0xLjgtMTEuMnonKSk7XG5leHBvcnRzLkNsb3NlQ2lyY2xlT3V0bGluZSA9IGdldEljb24oJ2Nsb3NlLWNpcmNsZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ002ODUuNCAzNTQuOGMwLTQuNC0zLjYtOC04LThsLTY2IC4zTDUxMiA0NjUuNmwtOTkuMy0xMTguNC02Ni4xLS4zYy00LjQgMC04IDMuNS04IDggMCAxLjkuNyAzLjcgMS45IDUuMmwxMzAuMSAxNTVMMzQwLjUgNjcwYTguMzIgOC4zMiAwIDAgMC0xLjkgNS4yYzAgNC40IDMuNiA4IDggOGw2Ni4xLS4zTDUxMiA1NjQuNGw5OS4zIDExOC40IDY2IC4zYzQuNCAwIDgtMy41IDgtOCAwLTEuOS0uNy0zLjctMS45LTUuMkw1NTMuNSA1MTVsMTMwLjEtMTU1YzEuMi0xLjQgMS44LTMuMyAxLjgtNS4yeicsICdNNTEyIDY1QzI2NC42IDY1IDY0IDI2NS42IDY0IDUxM3MyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NSA1MTIgNjV6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeicpKTtcbmV4cG9ydHMuQ2xvdWRPdXRsaW5lID0gZ2V0SWNvbignY2xvdWQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODExLjQgNDE4LjdDNzY1LjYgMjk3LjkgNjQ4LjkgMjEyIDUxMi4yIDIxMlMyNTguOCAyOTcuOCAyMTMgNDE4LjZDMTI3LjMgNDQxLjEgNjQgNTE5LjEgNjQgNjEyYzAgMTEwLjUgODkuNSAyMDAgMTk5LjkgMjAwaDQ5Ni4yQzg3MC41IDgxMiA5NjAgNzIyLjUgOTYwIDYxMmMwLTkyLjctNjMuMS0xNzAuNy0xNDguNi0xOTMuM3ptMzYuMyAyODFhMTIzLjA3IDEyMy4wNyAwIDAgMS04Ny42IDM2LjNIMjYzLjljLTMzLjEgMC02NC4yLTEyLjktODcuNi0zNi4zQTEyMy4zIDEyMy4zIDAgMCAxIDE0MCA2MTJjMC0yOCA5LjEtNTQuMyAyNi4yLTc2LjNhMTI1LjcgMTI1LjcgMCAwIDEgNjYuMS00My43bDM3LjktOS45IDEzLjktMzYuNmM4LjYtMjIuOCAyMC42LTQ0LjEgMzUuNy02My40YTI0NS42IDI0NS42IDAgMCAxIDUyLjQtNDkuOWM0MS4xLTI4LjkgODkuNS00NC4yIDE0MC00NC4yczk4LjkgMTUuMyAxNDAgNDQuMmMxOS45IDE0IDM3LjUgMzAuOCA1Mi40IDQ5LjkgMTUuMSAxOS4zIDI3LjEgNDAuNyAzNS43IDYzLjRsMTMuOCAzNi41IDM3LjggMTBjNTQuMyAxNC41IDkyLjEgNjMuOCA5Mi4xIDEyMCAwIDMzLjEtMTIuOSA2NC4zLTM2LjMgODcuN3onKSk7XG5leHBvcnRzLkNsb3NlU3F1YXJlT3V0bGluZSA9IGdldEljb24oJ2Nsb3NlLXNxdWFyZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ00zNTQgNjcxaDU4LjljNC43IDAgOS4yLTIuMSAxMi4zLTUuN0w1MTIgNTYxLjhsODYuOCAxMDMuNWMzIDMuNiA3LjUgNS43IDEyLjMgNS43SDY3MGM2LjggMCAxMC41LTcuOSA2LjEtMTMuMUw1NTMuOCA1MTJsMTIyLjQtMTQ1LjljNC40LTUuMi43LTEzLjEtNi4xLTEzLjFoLTU4LjljLTQuNyAwLTkuMiAyLjEtMTIuMyA1LjdMNTEyIDQ2Mi4ybC04Ni44LTEwMy41Yy0zLTMuNi03LjUtNS43LTEyLjMtNS43SDM1NGMtNi44IDAtMTAuNSA3LjktNi4xIDEzLjFMNDcwLjIgNTEyIDM0Ny45IDY1Ny45QTcuOTUgNy45NSAwIDAgMCAzNTQgNjcxeicsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNzI4SDE4NFYxODRoNjU2djY1NnonKSk7XG5leHBvcnRzLkNvZGVPdXRsaW5lID0gZ2V0SWNvbignY29kZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTYgNjczYzAgNC40IDMuNCA4IDcuNSA4aDE4NWM0LjEgMCA3LjUtMy42IDcuNS04di00OGMwLTQuNC0zLjQtOC03LjUtOGgtMTg1Yy00LjEgMC03LjUgMy42LTcuNSA4djQ4em0tMTk0LjkgNi4xbDE5Mi0xNjFjMy44LTMuMiAzLjgtOS4xIDAtMTIuM2wtMTkyLTE2MC45QTcuOTUgNy45NSAwIDAgMCAzMDggMzUxdjYyLjdjMCAyLjQgMSA0LjYgMi45IDYuMUw0MjAuNyA1MTJsLTEwOS44IDkyLjJhOC4xIDguMSAwIDAgMC0yLjkgNi4xVjY3M2MwIDYuOCA3LjkgMTAuNSAxMy4xIDYuMXpNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNzI4SDE4NFYxODRoNjU2djY1NnonKSk7XG5leHBvcnRzLkNvZGVwZW5DaXJjbGVPdXRsaW5lID0gZ2V0SWNvbignY29kZXBlbi1jaXJjbGUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNDg4LjEgNDE0LjdWMzAzLjRMMzAwLjkgNDI4bDgzLjYgNTUuOHptMjU0LjEgMTM3Ljd2LTc5LjhsLTU5LjggMzkuOXpNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTI3OCA1MzNjMCAxLjEtLjEgMi4xLS4yIDMuMSAwIC40LS4xLjctLjIgMWExNC4xNiAxNC4xNiAwIDAgMS0uOCAzLjJjLS4yLjYtLjQgMS4yLS42IDEuNy0uMi40LS40LjgtLjUgMS4yLS4zLjUtLjUgMS4xLS44IDEuNi0uMi40LS40LjctLjcgMS4xLS4zLjUtLjcgMS0xIDEuNS0uMy40LS41LjctLjggMS0uNC40LS44LjktMS4yIDEuMy0uMy4zLS42LjYtMSAuOS0uNC40LS45LjgtMS40IDEuMS0uNC4zLS43LjYtMS4xLjgtLjEuMS0uMy4yLS40LjNMNTI1LjIgNzg2Yy00IDIuNy04LjYgNC0xMy4yIDQtNC43IDAtOS4zLTEuNC0xMy4zLTRMMjQ0LjYgNjE2LjljLS4xLS4xLS4zLS4yLS40LS4zbC0xLjEtLjhjLS41LS40LS45LS43LTEuMy0xLjEtLjMtLjMtLjYtLjYtMS0uOS0uNC0uNC0uOC0uOC0xLjItMS4zYTcgNyAwIDAgMS0uOC0xYy0uNC0uNS0uNy0xLTEtMS41LS4yLS40LS41LS43LS43LTEuMS0uMy0uNS0uNi0xLjEtLjgtMS42LS4yLS40LS40LS44LS41LTEuMi0uMi0uNi0uNC0xLjItLjYtMS43LS4xLS40LS4zLS44LS40LTEuMi0uMi0uNy0uMy0xLjMtLjQtMi0uMS0uMy0uMS0uNy0uMi0xLS4xLTEtLjItMi4xLS4yLTMuMVY0MjcuOWMwLTEgLjEtMi4xLjItMy4xLjEtLjMuMS0uNy4yLTFhMTQuMTYgMTQuMTYgMCAwIDEgLjgtMy4yYy4yLS42LjQtMS4yLjYtMS43LjItLjQuNC0uOC41LTEuMi4yLS41LjUtMS4xLjgtMS42LjItLjQuNC0uNy43LTEuMS42LS45IDEuMi0xLjcgMS44LTIuNS40LS40LjgtLjkgMS4yLTEuMy4zLS4zLjYtLjYgMS0uOS40LS40LjktLjggMS4zLTEuMS40LS4zLjctLjYgMS4xLS44LjEtLjEuMy0uMi40LS4zTDQ5OC43IDIzOWM4LTUuMyAxOC41LTUuMyAyNi41IDBsMjU0LjEgMTY5LjFjLjEuMS4zLjIuNC4zbDEuMS44IDEuNCAxLjFjLjMuMy42LjYgMSAuOS40LjQuOC44IDEuMiAxLjMuNy44IDEuMyAxLjYgMS44IDIuNS4yLjQuNS43LjcgMS4xLjMuNS42IDEgLjggMS42LjIuNC40LjguNSAxLjIuMi42LjQgMS4yLjYgMS43LjEuNC4zLjguNCAxLjIuMi43LjMgMS4zLjQgMiAuMS4zLjEuNy4yIDEgLjEgMSAuMiAyLjEuMiAzLjFWNTk3em0tMjU0LjEgMTMuM3YxMTEuM0w3MjMuMSA1OTdsLTgzLjYtNTUuOHpNMjgxLjggNDcyLjZ2NzkuOGw1OS44LTM5Ljl6TTUxMiA0NTYuMWwtODQuNSA1Ni40IDg0LjUgNTYuNCA4NC41LTU2LjR6TTcyMy4xIDQyOEw1MzUuOSAzMDMuNHYxMTEuM2wxMDMuNiA2OS4xek0zODQuNSA1NDEuMkwzMDAuOSA1OTdsMTg3LjIgMTI0LjZWNjEwLjNsLTEwMy42LTY5LjF6JykpO1xuZXhwb3J0cy5Db21wYXNzT3V0bGluZSA9IGdldEljb24oJ2NvbXBhc3MnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyem0xOTguNC01ODguMWEzMiAzMiAwIDAgMC0yNC41LjVMNDE0LjkgNDE1IDI5Ni40IDY4NmMtMy42IDguMi0zLjYgMTcuNSAwIDI1LjcgMy40IDcuOCA5LjcgMTMuOSAxNy43IDE3IDMuOCAxLjUgNy43IDIuMiAxMS43IDIuMiA0LjQgMCA4LjctLjkgMTIuOC0yLjdsMjcxLTExOC42IDExOC41LTI3MWEzMi4wNiAzMi4wNiAwIDAgMC0xNy43LTQyLjd6TTU3Ni44IDUzNC40bDI2LjIgMjYuMi00Mi40IDQyLjQtMjYuMi0yNi4yTDM4MCA2NDQuNCA0NDcuNSA0OTAgNDIyIDQ2NC40bDQyLjQtNDIuNCAyNS41IDI1LjVMNjQ0LjQgMzgwbC02Ny42IDE1NC40ek00NjQuNCA0MjJMNDIyIDQ2NC40bDI1LjUgMjUuNiA4Ni45IDg2LjggMjYuMiAyNi4yIDQyLjQtNDIuNC0yNi4yLTI2LjItODYuOC04Ni45eicpKTtcbmV4cG9ydHMuQ29udGFjdHNPdXRsaW5lID0gZ2V0SWNvbignY29udGFjdHMnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTk0LjMgNjAxLjVhMTExLjggMTExLjggMCAwIDAgMjkuMS03NS41YzAtNjEuOS00OS45LTExMi0xMTEuNC0xMTJzLTExMS40IDUwLjEtMTExLjQgMTEyYzAgMjkuMSAxMSA1NS41IDI5LjEgNzUuNWExNTguMDkgMTU4LjA5IDAgMCAwLTc0LjYgMTI2LjEgOCA4IDAgMCAwIDggOC40SDQwN2M0LjIgMCA3LjYtMy4zIDcuOS03LjUgMy44LTUwLjYgNDYtOTAuNSA5Ny4yLTkwLjVzOTMuNCA0MCA5Ny4yIDkwLjVjLjMgNC4yIDMuNyA3LjUgNy45IDcuNUg2NjFhOCA4IDAgMCAwIDgtOC40Yy0yLjgtNTMuMy0zMi05OS43LTc0LjctMTI2LjF6TTUxMiA1NzhjLTI4LjUgMC01MS43LTIzLjMtNTEuNy01MnMyMy4yLTUyIDUxLjctNTIgNTEuNyAyMy4zIDUxLjcgNTItMjMuMiA1Mi01MS43IDUyem00MTYtMzU0SDc2OHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2SDU0OHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2SDMyOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2SDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY1NzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoODMyYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjI1NmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDU2OEgxMzZWMjk2aDEyMHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmgxNDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZoMTQ4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2aDEyMHY0OTZ6JykpO1xuZXhwb3J0cy5Db250YWluZXJPdXRsaW5lID0gZ2V0SWNvbignY29udGFpbmVyJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTgzMiA2NEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA4MjRIMjMyVjY4N2g5Ny45YzExLjYgMzIuOCAzMiA2Mi4zIDU5LjEgODQuNyAzNC41IDI4LjUgNzguMiA0NC4zIDEyMyA0NC4zczg4LjUtMTUuNyAxMjMtNDQuM2MyNy4xLTIyLjQgNDcuNS01MS45IDU5LjEtODQuN0g3OTJ2LTYzSDY0My42bC01LjIgMjQuN0M2MjYuNCA3MDguNSA1NzMuMiA3NTIgNTEyIDc1MnMtMTE0LjQtNDMuNS0xMjYuNS0xMDMuM2wtNS4yLTI0LjdIMjMyVjEzNmg1NjB2NzUyek0zMjAgMzQxaDM4NGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOEgzMjBjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDh6bTAgMTYwaDM4NGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOEgzMjBjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDh6JykpO1xuZXhwb3J0cy5Db250cm9sT3V0bGluZSA9IGdldEljb24oJ2NvbnRyb2wnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNzI4SDE4NFYxODRoNjU2djY1NnpNMzQwIDY4M3Y3N2MwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04di03N2MtMTAuMSAzLjMtMjAuOCA1LTMyIDVzLTIxLjktMS44LTMyLTV6bTY0LTE5OFYyNjRjMC00LjQtMy42LTgtOC04aC00OGMtNC40IDAtOCAzLjYtOCA4djIyMWMxMC4xLTMuMyAyMC44LTUgMzItNXMyMS45IDEuOCAzMiA1em0tNjQgMTk4YzEwLjEgMy4zIDIwLjggNSAzMiA1czIxLjktMS44IDMyLTVjNDEuOC0xMy41IDcyLTUyLjcgNzItOTlzLTMwLjItODUuNS03Mi05OWMtMTAuMS0zLjMtMjAuOC01LTMyLTVzLTIxLjkgMS44LTMyIDVjLTQxLjggMTMuNS03MiA1Mi43LTcyIDk5czMwLjIgODUuNSA3MiA5OXptLjEtMTE1LjdjLjMtLjYuNy0xLjIgMS0xLjh2LS4xbDEuMi0xLjhjLjEtLjIuMi0uMy4zLS41LjMtLjUuNy0uOSAxLTEuNC4xLS4xLjItLjMuMy0uNC41LS42LjktMS4xIDEuNC0xLjZsLjMtLjMgMS4yLTEuMi40LS40Yy41LS41IDEtLjkgMS42LTEuNC42LS41IDEuMS0uOSAxLjctMS4zLjItLjEuMy0uMi41LS4zLjUtLjMuOS0uNyAxLjQtMSAuMS0uMS4zLS4yLjQtLjMuNi0uNCAxLjItLjcgMS45LTEuMS4xLS4xLjMtLjEuNC0uMi41LS4zIDEtLjUgMS42LS44bC42LS4zYy43LS4zIDEuMy0uNiAyLS44LjctLjMgMS40LS41IDIuMS0uNy4yLS4xLjQtLjEuNi0uMi42LS4yIDEuMS0uMyAxLjctLjQuMiAwIC4zLS4xLjUtLjEuNy0uMiAxLjUtLjMgMi4yLS40LjIgMCAuMyAwIC41LS4xLjYtLjEgMS4yLS4xIDEuOC0uMmguNmMuOCAwIDEuNS0uMSAyLjMtLjFzMS41IDAgMi4zLjFoLjZjLjYgMCAxLjIuMSAxLjguMi4yIDAgLjMgMCAuNS4xLjcuMSAxLjUuMiAyLjIuNC4yIDAgLjMuMS41LjEuNi4xIDEuMi4zIDEuNy40LjIuMS40LjEuNi4yLjcuMiAxLjQuNCAyLjEuNy43LjIgMS4zLjUgMiAuOGwuNi4zYy41LjIgMS4xLjUgMS42LjguMS4xLjMuMS40LjIuNi4zIDEuMy43IDEuOSAxLjEuMS4xLjMuMi40LjMuNS4zIDEgLjYgMS40IDEgLjIuMS4zLjIuNS4zLjYuNCAxLjIuOSAxLjcgMS4zczEuMS45IDEuNiAxLjRsLjQuNCAxLjIgMS4yLjMuM2MuNS41IDEgMS4xIDEuNCAxLjYuMS4xLjIuMy4zLjQuNC40LjcuOSAxIDEuNC4xLjIuMi4zLjMuNWwxLjIgMS44czAgLjEuMS4xYTM2LjE4IDM2LjE4IDAgMCAxIDUuMSAxOC41YzAgNi0xLjUgMTEuNy00LjEgMTYuNy0uMy42LS43IDEuMi0xIDEuOCAwIDAgMCAuMS0uMS4xbC0xLjIgMS44Yy0uMS4yLS4yLjMtLjMuNS0uMy41LS43LjktMSAxLjQtLjEuMS0uMi4zLS4zLjQtLjUuNi0uOSAxLjEtMS40IDEuNmwtLjMuMy0xLjIgMS4yLS40LjRjLS41LjUtMSAuOS0xLjYgMS40LS42LjUtMS4xLjktMS43IDEuMy0uMi4xLS4zLjItLjUuMy0uNS4zLS45LjctMS40IDEtLjEuMS0uMy4yLS40LjMtLjYuNC0xLjIuNy0xLjkgMS4xLS4xLjEtLjMuMS0uNC4yLS41LjMtMSAuNS0xLjYuOGwtLjYuM2MtLjcuMy0xLjMuNi0yIC44LS43LjMtMS40LjUtMi4xLjctLjIuMS0uNC4xLS42LjItLjYuMi0xLjEuMy0xLjcuNC0uMiAwLS4zLjEtLjUuMS0uNy4yLTEuNS4zLTIuMi40LS4yIDAtLjMgMC0uNS4xLS42LjEtMS4yLjEtMS44LjJoLS42Yy0uOCAwLTEuNS4xLTIuMy4xcy0xLjUgMC0yLjMtLjFoLS42Yy0uNiAwLTEuMi0uMS0xLjgtLjItLjIgMC0uMyAwLS41LS4xLS43LS4xLTEuNS0uMi0yLjItLjQtLjIgMC0uMy0uMS0uNS0uMS0uNi0uMS0xLjItLjMtMS43LS40LS4yLS4xLS40LS4xLS42LS4yLS43LS4yLTEuNC0uNC0yLjEtLjctLjctLjItMS4zLS41LTItLjhsLS42LS4zYy0uNS0uMi0xLjEtLjUtMS42LS44LS4xLS4xLS4zLS4xLS40LS4yLS42LS4zLTEuMy0uNy0xLjktMS4xLS4xLS4xLS4zLS4yLS40LS4zLS41LS4zLTEtLjYtMS40LTEtLjItLjEtLjMtLjItLjUtLjMtLjYtLjQtMS4yLS45LTEuNy0xLjNzLTEuMS0uOS0xLjYtMS40bC0uNC0uNC0xLjItMS4yLS4zLS4zYy0uNS0uNS0xLTEuMS0xLjQtMS42LS4xLS4xLS4yLS4zLS4zLS40LS40LS40LS43LS45LTEtMS40LS4xLS4yLS4yLS4zLS4zLS41bC0xLjItMS44di0uMWMtLjQtLjYtLjctMS4yLTEtMS44LTIuNi01LTQuMS0xMC43LTQuMS0xNi43czEuNS0xMS43IDQuMS0xNi43ek02MjAgNTM5djIyMWMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04VjUzOWMtMTAuMSAzLjMtMjAuOCA1LTMyIDVzLTIxLjktMS44LTMyLTV6bTY0LTE5OHYtNzdjMC00LjQtMy42LTgtOC04aC00OGMtNC40IDAtOCAzLjYtOCA4djc3YzEwLjEtMy4zIDIwLjgtNSAzMi01czIxLjkgMS44IDMyIDV6bS02NCAxOThjMTAuMSAzLjMgMjAuOCA1IDMyIDVzMjEuOS0xLjggMzItNWM0MS44LTEzLjUgNzItNTIuNyA3Mi05OXMtMzAuMi04NS41LTcyLTk5Yy0xMC4xLTMuMy0yMC44LTUtMzItNXMtMjEuOSAxLjgtMzIgNWMtNDEuOCAxMy41LTcyIDUyLjctNzIgOTlzMzAuMiA4NS41IDcyIDk5em0uMS0xMTUuN2MuMy0uNi43LTEuMiAxLTEuOHYtLjFsMS4yLTEuOGMuMS0uMi4yLS4zLjMtLjUuMy0uNS43LS45IDEtMS40LjEtLjEuMi0uMy4zLS40LjUtLjYuOS0xLjEgMS40LTEuNmwuMy0uMyAxLjItMS4yLjQtLjRjLjUtLjUgMS0uOSAxLjYtMS40LjYtLjUgMS4xLS45IDEuNy0xLjMuMi0uMS4zLS4yLjUtLjMuNS0uMy45LS43IDEuNC0xIC4xLS4xLjMtLjIuNC0uMy42LS40IDEuMi0uNyAxLjktMS4xLjEtLjEuMy0uMS40LS4yLjUtLjMgMS0uNSAxLjYtLjhsLjYtLjNjLjctLjMgMS4zLS42IDItLjguNy0uMyAxLjQtLjUgMi4xLS43LjItLjEuNC0uMS42LS4yLjYtLjIgMS4xLS4zIDEuNy0uNC4yIDAgLjMtLjEuNS0uMS43LS4yIDEuNS0uMyAyLjItLjQuMiAwIC4zIDAgLjUtLjEuNi0uMSAxLjItLjEgMS44LS4yaC42Yy44IDAgMS41LS4xIDIuMy0uMXMxLjUgMCAyLjMuMWguNmMuNiAwIDEuMi4xIDEuOC4yLjIgMCAuMyAwIC41LjEuNy4xIDEuNS4yIDIuMi40LjIgMCAuMy4xLjUuMS42LjEgMS4yLjMgMS43LjQuMi4xLjQuMS42LjIuNy4yIDEuNC40IDIuMS43LjcuMiAxLjMuNSAyIC44bC42LjNjLjUuMiAxLjEuNSAxLjYuOC4xLjEuMy4xLjQuMi42LjMgMS4zLjcgMS45IDEuMS4xLjEuMy4yLjQuMy41LjMgMSAuNiAxLjQgMSAuMi4xLjMuMi41LjMuNi40IDEuMi45IDEuNyAxLjNzMS4xLjkgMS42IDEuNGwuNC40IDEuMiAxLjIuMy4zYy41LjUgMSAxLjEgMS40IDEuNi4xLjEuMi4zLjMuNC40LjQuNy45IDEgMS40LjEuMi4yLjMuMy41bDEuMiAxLjh2LjFhMzYuMTggMzYuMTggMCAwIDEgNS4xIDE4LjVjMCA2LTEuNSAxMS43LTQuMSAxNi43LS4zLjYtLjcgMS4yLTEgMS44di4xbC0xLjIgMS44Yy0uMS4yLS4yLjMtLjMuNS0uMy41LS43LjktMSAxLjQtLjEuMS0uMi4zLS4zLjQtLjUuNi0uOSAxLjEtMS40IDEuNmwtLjMuMy0xLjIgMS4yLS40LjRjLS41LjUtMSAuOS0xLjYgMS40LS42LjUtMS4xLjktMS43IDEuMy0uMi4xLS4zLjItLjUuMy0uNS4zLS45LjctMS40IDEtLjEuMS0uMy4yLS40LjMtLjYuNC0xLjIuNy0xLjkgMS4xLS4xLjEtLjMuMS0uNC4yLS41LjMtMSAuNS0xLjYuOGwtLjYuM2MtLjcuMy0xLjMuNi0yIC44LS43LjMtMS40LjUtMi4xLjctLjIuMS0uNC4xLS42LjItLjYuMi0xLjEuMy0xLjcuNC0uMiAwLS4zLjEtLjUuMS0uNy4yLTEuNS4zLTIuMi40LS4yIDAtLjMgMC0uNS4xLS42LjEtMS4yLjEtMS44LjJoLS42Yy0uOCAwLTEuNS4xLTIuMy4xcy0xLjUgMC0yLjMtLjFoLS42Yy0uNiAwLTEuMi0uMS0xLjgtLjItLjIgMC0uMyAwLS41LS4xLS43LS4xLTEuNS0uMi0yLjItLjQtLjIgMC0uMy0uMS0uNS0uMS0uNi0uMS0xLjItLjMtMS43LS40LS4yLS4xLS40LS4xLS42LS4yLS43LS4yLTEuNC0uNC0yLjEtLjctLjctLjItMS4zLS41LTItLjhsLS42LS4zYy0uNS0uMi0xLjEtLjUtMS42LS44LS4xLS4xLS4zLS4xLS40LS4yLS42LS4zLTEuMy0uNy0xLjktMS4xLS4xLS4xLS4zLS4yLS40LS4zLS41LS4zLTEtLjYtMS40LTEtLjItLjEtLjMtLjItLjUtLjMtLjYtLjQtMS4yLS45LTEuNy0xLjNzLTEuMS0uOS0xLjYtMS40bC0uNC0uNC0xLjItMS4yLS4zLS4zYy0uNS0uNS0xLTEuMS0xLjQtMS42LS4xLS4xLS4yLS4zLS4zLS40LS40LS40LS43LS45LTEtMS40LS4xLS4yLS4yLS4zLS4zLS41bC0xLjItMS44di0uMWMtLjQtLjYtLjctMS4yLTEtMS44LTIuNi01LTQuMS0xMC43LTQuMS0xNi43czEuNS0xMS43IDQuMS0xNi43eicpKTtcbmV4cG9ydHMuQ29weU91dGxpbmUgPSBnZXRJY29uKCdjb3B5Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTgzMiA2NEgyOTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNDk2djY4OGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04Vjk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyek03MDQgMTkySDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NTMwLjdjMCA4LjUgMy40IDE2LjYgOS40IDIyLjZsMTczLjMgMTczLjNjMi4yIDIuMiA0LjcgNCA3LjQgNS41djEuOWg0LjJjMy41IDEuMyA3LjIgMiAxMSAySDcwNGMxNy43IDAgMzItMTQuMyAzMi0zMlYyMjRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTM1MCA4NTYuMkwyNjMuOSA3NzBIMzUwdjg2LjJ6TTY2NCA4ODhINDE0Vjc0NmMwLTIyLjEtMTcuOS00MC00MC00MEgyMzJWMjY0aDQzMnY2MjR6JykpO1xuZXhwb3J0cy5DcmVkaXRDYXJkT3V0bGluZSA9IGdldEljb24oJ2NyZWRpdC1jYXJkJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkyOCAxNjBIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY0MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg4MzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNzkyIDcyaDc1MnYxMjBIMTM2VjIzMnptNzUyIDU2MEgxMzZWNDQwaDc1MnYzNTJ6bS0yMzctNjRoMTY1YzQuNCAwIDgtMy42IDgtOHYtNzJjMC00LjQtMy42LTgtOC04SDY1MWMtNC40IDAtOCAzLjYtOCA4djcyYzAgNC40IDMuNiA4IDggOHonKSk7XG5leHBvcnRzLkNyb3duT3V0bGluZSA9IGdldEljb24oJ2Nyb3duJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg5OS42IDI3Ni41TDcwNSAzOTYuNCA1MTguNCAxNDcuNWE4LjA2IDguMDYgMCAwIDAtMTIuOSAwTDMxOSAzOTYuNCAxMjQuMyAyNzYuNWMtNS43LTMuNS0xMy4xIDEuMi0xMi4yIDcuOUwxODguNSA4NjVjMS4xIDcuOSA3LjkgMTQgMTYgMTRoNjE1LjFjOCAwIDE0LjktNiAxNS45LTE0bDc2LjQtNTgwLjZjLjgtNi43LTYuNS0xMS40LTEyLjMtNy45em0tMTI2IDUzNC4xSDI1MC4zbC01My44LTQwOS40IDEzOS44IDg2LjFMNTEyIDI1Mi45bDE3NS43IDIzNC40IDEzOS44LTg2LjEtNTMuOSA0MDkuNHpNNTEyIDUwOWMtNjIuMSAwLTExMi42IDUwLjUtMTEyLjYgMTEyLjZTNDQ5LjkgNzM0LjIgNTEyIDczNC4yczExMi42LTUwLjUgMTEyLjYtMTEyLjZTNTc0LjEgNTA5IDUxMiA1MDl6bTAgMTYwLjljLTI2LjYgMC00OC4yLTIxLjYtNDguMi00OC4zIDAtMjYuNiAyMS42LTQ4LjMgNDguMi00OC4zczQ4LjIgMjEuNiA0OC4yIDQ4LjNjMCAyNi42LTIxLjYgNDguMy00OC4yIDQ4LjN6JykpO1xuZXhwb3J0cy5DdXN0b21lclNlcnZpY2VPdXRsaW5lID0gZ2V0SWNvbignY3VzdG9tZXItc2VydmljZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgMTI4Yy0yMTIuMSAwLTM4NCAxNzEuOS0zODQgMzg0djM2MGMwIDEzLjMgMTAuNyAyNCAyNCAyNGgxODRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWNjI0YzAtMzUuMy0yOC43LTY0LTY0LTY0SDIwMHYtNDhjMC0xNzIuMyAxMzkuNy0zMTIgMzEyLTMxMnMzMTIgMTM5LjcgMzEyIDMxMnY0OEg2ODhjLTM1LjMgMC02NCAyOC43LTY0IDY0djIwOGMwIDM1LjMgMjguNyA2NCA2NCA2NGgxODRjMTMuMyAwIDI0LTEwLjcgMjQtMjRWNTEyYzAtMjEyLjEtMTcxLjktMzg0LTM4NC0zODR6TTMyOCA2MzJ2MTkySDIwMFY2MzJoMTI4em00OTYgMTkySDY5NlY2MzJoMTI4djE5MnonKSk7XG5leHBvcnRzLkRhc2hib2FyZE91dGxpbmUgPSBnZXRJY29uKCdkYXNoYm9hcmQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTI0LjggMzg1LjZhNDQ2LjcgNDQ2LjcgMCAwIDAtOTYtMTQyLjQgNDQ2LjcgNDQ2LjcgMCAwIDAtMTQyLjQtOTZDNjMxLjEgMTIzLjggNTcyLjUgMTEyIDUxMiAxMTJzLTExOS4xIDExLjgtMTc0LjQgMzUuMmE0NDYuNyA0NDYuNyAwIDAgMC0xNDIuNCA5NiA0NDYuNyA0NDYuNyAwIDAgMC05NiAxNDIuNEM3NS44IDQ0MC45IDY0IDQ5OS41IDY0IDU2MGMwIDEzMi43IDU4LjMgMjU3LjcgMTU5LjkgMzQzLjFsMS43IDEuNGM1LjggNC44IDEzLjEgNy41IDIwLjYgNy41aDUzMS43YzcuNSAwIDE0LjgtMi43IDIwLjYtNy41bDEuNy0xLjRDOTAxLjcgODE3LjcgOTYwIDY5Mi43IDk2MCA1NjBjMC02MC41LTExLjktMTE5LjEtMzUuMi0xNzQuNHpNNzYxLjQgODM2SDI2Mi42QTM3MS4xMiAzNzEuMTIgMCAwIDEgMTQwIDU2MGMwLTk5LjQgMzguNy0xOTIuOCAxMDktMjYzIDcwLjMtNzAuMyAxNjMuNy0xMDkgMjYzLTEwOSA5OS40IDAgMTkyLjggMzguNyAyNjMgMTA5IDcwLjMgNzAuMyAxMDkgMTYzLjcgMTA5IDI2MyAwIDEwNS42LTQ0LjUgMjA1LjUtMTIyLjYgMjc2ek02MjMuNSA0MjEuNWE4LjAzIDguMDMgMCAwIDAtMTEuMyAwTDUyNy43IDUwNmMtMTguNy01LTM5LjQtLjItNTQuMSAxNC41YTU1Ljk1IDU1Ljk1IDAgMCAwIDAgNzkuMiA1NS45NSA1NS45NSAwIDAgMCA3OS4yIDAgNTUuODcgNTUuODcgMCAwIDAgMTQuNS01NC4xbDg0LjUtODQuNWMzLjEtMy4xIDMuMS04LjIgMC0xMS4zbC0yOC4zLTI4LjN6TTQ5MCAzMjBoNDRjNC40IDAgOC0zLjYgOC04di04MGMwLTQuNC0zLjYtOC04LThoLTQ0Yy00LjQgMC04IDMuNi04IDh2ODBjMCA0LjQgMy42IDggOCA4em0yNjAgMjE4djQ0YzAgNC40IDMuNiA4IDggOGg4MGM0LjQgMCA4LTMuNiA4LTh2LTQ0YzAtNC40LTMuNi04LTgtOGgtODBjLTQuNCAwLTggMy42LTggOHptMTIuNy0xOTcuMmwtMzEuMS0zMS4xYTguMDMgOC4wMyAwIDAgMC0xMS4zIDBsLTU2LjYgNTYuNmE4LjAzIDguMDMgMCAwIDAgMCAxMS4zbDMxLjEgMzEuMWMzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDU2LjYtNTYuNmMzLjEtMy4xIDMuMS04LjIgMC0xMS4zem0tNDU4LjYtMzEuMWE4LjAzIDguMDMgMCAwIDAtMTEuMyAwbC0zMS4xIDMxLjFhOC4wMyA4LjAzIDAgMCAwIDAgMTEuM2w1Ni42IDU2LjZjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGwzMS4xLTMxLjFjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM2wtNTYuNi01Ni42ek0yNjIgNTMwaC04MGMtNC40IDAtOCAzLjYtOCA4djQ0YzAgNC40IDMuNiA4IDggOGg4MGM0LjQgMCA4LTMuNiA4LTh2LTQ0YzAtNC40LTMuNi04LTgtOHonKSk7XG5leHBvcnRzLkRlbGV0ZU91dGxpbmUgPSBnZXRJY29uKCdkZWxldGUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMzYwIDE4NGgtOGM0LjQgMCA4LTMuNiA4LTh2OGgzMDR2LThjMCA0LjQgMy42IDggOCA4aC04djcyaDcydi04MGMwLTM1LjMtMjguNy02NC02NC02NEgzNTJjLTM1LjMgMC02NCAyOC43LTY0IDY0djgwaDcydi03MnptNTA0IDcySDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MzJjMCA0LjQgMy42IDggOCA4aDYwLjRsMjQuNyA1MjNjMS42IDM0LjEgMjkuOCA2MSA2My45IDYxaDQ1NGMzNC4yIDAgNjIuMy0yNi44IDYzLjktNjFsMjQuNy01MjNIODg4YzQuNCAwIDgtMy42IDgtOHYtMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTczMS4zIDg0MEgyOTIuN2wtMjQuMi01MTJoNDg3bC0yNC4yIDUxMnonKSk7XG5leHBvcnRzLkRpZmZPdXRsaW5lID0gZ2V0SWNvbignZGlmZicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ000NzYgMzk5LjFjMC0zLjktMy4xLTcuMS03LTcuMWgtNDJjLTMuOCAwLTcgMy4yLTcgNy4xVjQ4NGgtODQuNWMtNC4xIDAtNy41IDMuMS03LjUgN3Y0MmMwIDMuOCAzLjQgNyA3LjUgN0g0MjB2ODQuOWMwIDMuOSAzLjIgNy4xIDcgNy4xaDQyYzMuOSAwIDctMy4yIDctNy4xVjU0MGg4NC41YzQuMSAwIDcuNS0zLjIgNy41LTd2LTQyYzAtMy45LTMuNC03LTcuNS03SDQ3NnYtODQuOXpNNTYwLjUgNzA0aC0yMjVjLTQuMSAwLTcuNSAzLjItNy41IDd2NDJjMCAzLjggMy40IDcgNy41IDdoMjI1YzQuMSAwIDcuNS0zLjIgNy41LTd2LTQyYzAtMy44LTMuNC03LTcuNS03em0tNy4xLTUwMi42Yy02LTYtMTQuMS05LjQtMjIuNi05LjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MDRjMCAxNy43IDE0LjMgMzIgMzIgMzJoNTEyYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjM5Ny4zYzAtOC41LTMuNC0xNi42LTkuNC0yMi42TDU1My40IDIwMS40ek02NjQgODg4SDIzMlYyNjRoMjgyLjJMNjY0IDQxMy44Vjg4OHptMTkwLjItNTgxLjRMNjExLjMgNzIuOWMtNi01LjctMTMuOS04LjktMjIuMi04LjlIMjk2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDI3N2wyMTkgMjEwLjZWODI0YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LThWMzI5LjZjMC04LjctMy41LTE3LTkuOC0yM3onKSk7XG5leHBvcnRzLkRhdGFiYXNlT3V0bGluZSA9IGdldEljb24oJ2RhdGFiYXNlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTgzMiA2NEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS02MDAgNzJoNTYwdjIwOEgyMzJWMTM2em01NjAgNDgwSDIzMlY0MDhoNTYwdjIwOHptMCAyNzJIMjMyVjY4MGg1NjB2MjA4ek0zMDQgMjQwYTQwIDQwIDAgMSAwIDgwIDAgNDAgNDAgMCAxIDAtODAgMHptMCAyNzJhNDAgNDAgMCAxIDAgODAgMCA0MCA0MCAwIDEgMC04MCAwem0wIDI3MmE0MCA0MCAwIDEgMCA4MCAwIDQwIDQwIDAgMSAwLTgwIDB6JykpO1xuZXhwb3J0cy5EaXNsaWtlT3V0bGluZSA9IGdldEljb24oJ2Rpc2xpa2UnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODg1LjkgNDkwLjNjMy42LTEyIDUuNC0yNC40IDUuNC0zNyAwLTI4LjMtOS4zLTU1LjUtMjYuMS03Ny43IDMuNi0xMiA1LjQtMjQuNCA1LjQtMzcgMC0yOC4zLTkuMy01NS41LTI2LjEtNzcuNyAzLjYtMTIgNS40LTI0LjQgNS40LTM3IDAtNTEuNi0zMC43LTk4LjEtNzguMy0xMTguNGE2Ni4xIDY2LjEgMCAwIDAtMjYuNS01LjRIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYzNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJoMTI5LjNsODUuOCAzMTAuOEMzNzIuOSA4ODkgNDE4LjkgOTI0IDQ3MC45IDkyNGMyOS43IDAgNTcuNC0xMS44IDc3LjktMzMuNCAyMC41LTIxLjUgMzEtNDkuNyAyOS41LTc5LjRsLTYtMTIyLjloMjM5LjljMTIuMSAwIDIzLjktMy4yIDM0LjMtOS4zIDQwLjQtMjMuNSA2NS41LTY2LjEgNjUuNS0xMTEgMC0yOC4zLTkuMy01NS41LTI2LjEtNzcuN3pNMTg0IDQ1NlYxNzJoODF2Mjg0aC04MXptNjI3LjIgMTYwLjRINDk2LjhsOS42IDE5OC40Yy42IDExLjktNC43IDIzLjEtMTQuNiAzMC41LTYuMSA0LjUtMTMuNiA2LjgtMjEuMSA2LjdhNDQuMjggNDQuMjggMCAwIDEtNDIuMi0zMi4zTDMyOSA0NTkuMlYxNzJoNDE1LjRhNTYuODUgNTYuODUgMCAwIDEgMzMuNiA1MS44YzAgOS43LTIuMyAxOC45LTYuOSAyNy4zbC0xMy45IDI1LjQgMjEuOSAxOWE1Ni43NiA1Ni43NiAwIDAgMSAxOS42IDQzYzAgOS43LTIuMyAxOC45LTYuOSAyNy4zbC0xMy45IDI1LjQgMjEuOSAxOWE1Ni43NiA1Ni43NiAwIDAgMSAxOS42IDQzYzAgOS43LTIuMyAxOC45LTYuOSAyNy4zbC0xNCAyNS41IDIxLjkgMTlhNTYuNzYgNTYuNzYgMCAwIDEgMTkuNiA0M2MwIDE5LjEtMTEgMzcuNS0yOC44IDQ4LjR6JykpO1xuZXhwb3J0cy5Eb3duQ2lyY2xlT3V0bGluZSA9IGdldEljb24oJ2Rvd24tY2lyY2xlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTY5MCA0MDVoLTQ2LjljLTEwLjIgMC0xOS45IDQuOS0yNS45IDEzLjJMNTEyIDU2My42IDQwNi44IDQxOC4yYy02LTguMy0xNS42LTEzLjItMjUuOS0xMy4ySDMzNGMtNi41IDAtMTAuMyA3LjQtNi41IDEyLjdsMTc4IDI0NmMzLjIgNC40IDkuNyA0LjQgMTIuOSAwbDE3OC0yNDZjMy45LTUuMy4xLTEyLjctNi40LTEyLjd6JywgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6JykpO1xuZXhwb3J0cy5Eb3duU3F1YXJlT3V0bGluZSA9IGdldEljb24oJ2Rvd24tc3F1YXJlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUwNS41IDY1OC43YzMuMiA0LjQgOS43IDQuNCAxMi45IDBsMTc4LTI0NmMzLjgtNS4zIDAtMTIuNy02LjUtMTIuN0g2NDNjLTEwLjIgMC0xOS45IDQuOS0yNS45IDEzLjJMNTEyIDU1OC42IDQwNi44IDQxMy4yYy02LTguMy0xNS42LTEzLjItMjUuOS0xMy4ySDMzNGMtNi41IDAtMTAuMyA3LjQtNi41IDEyLjdsMTc4IDI0NnonLCAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6JykpO1xuZXhwb3J0cy5EcmliYmJsZVNxdWFyZU91dGxpbmUgPSBnZXRJY29uKCdkcmliYmJsZS1zcXVhcmUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNDk4LjYgNDMyYy00MC44LTcyLjUtODQuNy0xMzMuNC05MS4yLTE0Mi4zLTY4LjggMzIuNS0xMjAuMyA5NS45LTEzNi4yIDE3Mi4yIDExIC4yIDExMi40LjcgMjI3LjQtMjkuOXptNjYuNSAyMS44YzUuNyAxMS43IDExLjIgMjMuNiAxNi4zIDM1LjYgMS44IDQuMiAzLjYgOC40IDUuMyAxMi43IDgxLjgtMTAuMyAxNjMuMiA2LjIgMTcxLjMgNy45LS41LTU4LjEtMjEuMy0xMTEuNC01NS41LTE1My4zLTUuMyA3LjEtNDYuNSA2MC0xMzcuNCA5Ny4xek04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTUxMiA4MDBjLTE1OC44IDAtMjg4LTEyOS4yLTI4OC0yODhzMTI5LjItMjg4IDI4OC0yODggMjg4IDEyOS4yIDI4OCAyODgtMTI5LjIgMjg4LTI4OCAyODh6bTg5LjctMjU5LjFjMzIuMiA4OC40IDQ1LjMgMTYwLjQgNDcuOCAxNzUuNCA1NS4yLTM3LjMgOTQuNS05Ni40IDEwNS40LTE2NC45LTguNC0yLjYtNzYuMS0yMi44LTE1My4yLTEwLjV6bS03Mi41LTI2LjRjMy4yLTEgNi40LTIgOS43LTIuOS02LjItMTQtMTIuOS0yOC0xOS45LTQxLjctMTIyLjggMzYuOC0yNDIuMSAzNS4yLTI1Mi44IDM1LS4xIDIuNS0uMSA1LS4xIDcuNSAwIDYzLjIgMjMuOSAxMjAuOSA2My4yIDE2NC41IDUuNS05LjYgNzMtMTIxLjQgMTk5LjktMTYyLjR6bTE0NS45LTE4Ni4yYTI0NS4yIDI0NS4yIDAgMCAwLTIyMC44LTU1LjFjNi44IDkuMSA1MS41IDY5LjkgOTEuOCAxNDQgODcuNS0zMi44IDEyNC41LTgyLjYgMTI5LTg4Ljl6TTU1NCA1NTIuOGMtMTM4LjcgNDguMy0xODguNiAxNDQuNi0xOTMgMTUzLjYgNDEuNyAzMi41IDk0LjEgNTEuOSAxNTEgNTEuOSAzNC4xIDAgNjYuNi02LjkgOTYuMS0xOS41LTMuNy0yMS42LTE3LjktOTYuOC01Mi41LTE4Ni42bC0xLjYuNnonKSk7XG5leHBvcnRzLkVudmlyb25tZW50T3V0bGluZSA9IGdldEljb24oJ2Vudmlyb25tZW50Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg1NC42IDI4OS4xYTM2Mi40OSAzNjIuNDkgMCAwIDAtNzkuOS0xMTUuNyAzNzAuODMgMzcwLjgzIDAgMCAwLTExOC4yLTc3LjhDNjEwLjcgNzYuNiA1NjIuMSA2NyA1MTIgNjdjLTUwLjEgMC05OC43IDkuNi0xNDQuNSAyOC41LTQ0LjMgMTguMy04NCA0NC41LTExOC4yIDc3LjhBMzYzLjYgMzYzLjYgMCAwIDAgMTY5LjQgMjg5Yy0xOS41IDQ1LTI5LjQgOTIuOC0yOS40IDE0MiAwIDcwLjYgMTYuOSAxNDAuOSA1MC4xIDIwOC43IDI2LjcgNTQuNSA2NCAxMDcuNiAxMTEgMTU4LjEgODAuMyA4Ni4yIDE2NC41IDEzOC45IDE4OC40IDE1M2E0My45IDQzLjkgMCAwIDAgMjIuNCA2LjFjNy44IDAgMTUuNS0yIDIyLjQtNi4xIDIzLjktMTQuMSAxMDguMS02Ni44IDE4OC40LTE1MyA0Ny01MC40IDg0LjMtMTAzLjYgMTExLTE1OC4xQzg2Ny4xIDU3MiA4ODQgNTAxLjggODg0IDQzMS4xYzAtNDkuMi05LjktOTctMjkuNC0xNDJ6TTUxMiA4ODAuMmMtNjUuOS00MS45LTMwMC0yMDcuOC0zMDAtNDQ5LjEgMC03Ny45IDMxLjEtMTUxLjEgODcuNi0yMDYuM0MzNTYuMyAxNjkuNSA0MzEuNyAxMzkgNTEyIDEzOXMxNTUuNyAzMC41IDIxMi40IDg1LjlDNzgwLjkgMjgwIDgxMiAzNTMuMiA4MTIgNDMxLjFjMCAyNDEuMy0yMzQuMSA0MDcuMi0zMDAgNDQ5LjF6bTAtNjE3LjJjLTk3LjIgMC0xNzYgNzguOC0xNzYgMTc2czc4LjggMTc2IDE3NiAxNzYgMTc2LTc4LjggMTc2LTE3Ni03OC44LTE3Ni0xNzYtMTc2em03OS4yIDI1NS4yQTExMS42IDExMS42IDAgMCAxIDUxMiA1NTFjLTI5LjkgMC01OC0xMS43LTc5LjItMzIuOEExMTEuNiAxMTEuNiAwIDAgMSA0MDAgNDM5YzAtMjkuOSAxMS43LTU4IDMyLjgtNzkuMkM0NTQgMzM4LjYgNDgyLjEgMzI3IDUxMiAzMjdjMjkuOSAwIDU4IDExLjYgNzkuMiAzMi44QzYxMi40IDM4MSA2MjQgNDA5LjEgNjI0IDQzOWMwIDI5LjktMTEuNiA1OC0zMi44IDc5LjJ6JykpO1xuZXhwb3J0cy5FZGl0T3V0bGluZSA9IGdldEljb24oJ2VkaXQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMjU3LjcgNzUyYzIgMCA0LS4yIDYtLjVMNDMxLjkgNzIyYzItLjQgMy45LTEuMyA1LjMtMi44bDQyMy45LTQyMy45YTkuOTYgOS45NiAwIDAgMCAwLTE0LjFMNjk0LjkgMTE0LjljLTEuOS0xLjktNC40LTIuOS03LjEtMi45cy01LjIgMS03LjEgMi45TDI1Ni44IDUzOC44Yy0xLjUgMS41LTIuNCAzLjMtMi44IDUuM2wtMjkuNSAxNjguMmEzMy41IDMzLjUgMCAwIDAgOS40IDI5LjhjNi42IDYuNCAxNC45IDkuOSAyMy44IDkuOXptNjcuNC0xNzQuNEw2ODcuOCAyMTVsNzMuMyA3My4zLTM2Mi43IDM2Mi42LTg4LjkgMTUuNyAxNS42LTg5ek04ODAgODM2SDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MzZjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTM2YzAtMTcuNy0xNC4zLTMyLTMyLTMyeicpKTtcbmV4cG9ydHMuRXhjbGFtYXRpb25DaXJjbGVPdXRsaW5lID0gZ2V0SWNvbignZXhjbGFtYXRpb24tY2lyY2xlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnonLCAnTTQ2NCA2ODhhNDggNDggMCAxIDAgOTYgMCA0OCA0OCAwIDEgMC05NiAwem0yNC0xMTJoNDhjNC40IDAgOC0zLjYgOC04VjI5NmMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2MjcyYzAgNC40IDMuNiA4IDggOHonKSk7XG5leHBvcnRzLkV4cGVyaW1lbnRPdXRsaW5lID0gZ2V0SWNvbignZXhwZXJpbWVudCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgNDcyYTQwIDQwIDAgMSAwIDgwIDAgNDAgNDAgMCAxIDAtODAgMHptMzY3IDM1Mi45TDY5Ni4zIDM1MlYxNzhINzY4di02OEgyNTZ2NjhoNzEuN3YxNzRMMTQ1IDgyNC45Yy0yLjggNy40LTQuMyAxNS4yLTQuMyAyMy4xIDAgMzUuMyAyOC43IDY0IDY0IDY0aDYxNC42YzcuOSAwIDE1LjctMS41IDIzLjEtNC4zIDMzLTEyLjcgNDkuNC00OS44IDM2LjYtODIuOHpNMzk1LjcgMzY0LjdWMTgwaDIzMi42djE4NC43TDcxOS4yIDYwMGMtMjAuNy01LjMtNDIuMS04LTYzLjktOC02MS4yIDAtMTE5LjIgMjEuNS0xNjUuMyA2MGExODguNzggMTg4Ljc4IDAgMCAxLTEyMS4zIDQzLjljLTMyLjcgMC02NC4xLTguMy05MS44LTIzLjdsMTE4LjgtMzA3LjV6TTIxMC41IDg0NGw0MS43LTEwNy44YzM1LjcgMTguMSA3NS40IDI3LjggMTE2LjYgMjcuOCA2MS4yIDAgMTE5LjItMjEuNSAxNjUuMy02MCAzMy45LTI4LjIgNzYuMy00My45IDEyMS4zLTQzLjkgMzUgMCA2OC40IDkuNSA5Ny42IDI3LjFMODEzLjUgODQ0aC02MDN6JykpO1xuZXhwb3J0cy5FeWVJbnZpc2libGVPdXRsaW5lID0gZ2V0SWNvbignZXllLWludmlzaWJsZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ005NDIuMiA0ODYuMlE4ODkuNDcgMzc1LjExIDgxNi43IDMwNWwtNTAuODggNTAuODhDODA3LjMxIDM5NS41MyA4NDMuNDUgNDQ3LjQgODc0LjcgNTEyIDc5MS41IDY4NC4yIDY3My40IDc2NiA1MTIgNzY2cS03Mi42NyAwLTEzMy44Ny0yMi4zOEwzMjMgNzk4Ljc1UTQwOCA4MzggNTEyIDgzOHEyODguMyAwIDQzMC4yLTMwMC4zYTYwLjI5IDYwLjI5IDAgMCAwIDAtNTEuNXptLTYzLjU3LTMyMC42NEw4MzYgMTIyLjg4YTggOCAwIDAgMC0xMS4zMiAwTDcxNS4zMSAyMzIuMlE2MjQuODYgMTg2IDUxMiAxODZxLTI4OC4zIDAtNDMwLjIgMzAwLjNhNjAuMyA2MC4zIDAgMCAwIDAgNTEuNXE1Ni42OSAxMTkuNCAxMzYuNSAxOTEuNDFMMTEyLjQ4IDgzNWE4IDggMCAwIDAgMCAxMS4zMUwxNTUuMTcgODg5YTggOCAwIDAgMCAxMS4zMSAwbDcxMi4xNS03MTIuMTJhOCA4IDAgMCAwIDAtMTEuMzJ6TTE0OS4zIDUxMkMyMzIuNiAzMzkuOCAzNTAuNyAyNTggNTEyIDI1OGM1NC41NCAwIDEwNC4xMyA5LjM2IDE0OS4xMiAyOC4zOWwtNzAuMyA3MC4zYTE3NiAxNzYgMCAwIDAtMjM4LjEzIDIzOC4xM2wtODMuNDIgODMuNDJDMjIzLjEgNjM3LjQ5IDE4My4zIDU4Mi4yOCAxNDkuMyA1MTJ6bTI0Ni43IDBhMTEyLjExIDExMi4xMSAwIDAgMSAxNDYuMi0xMDYuNjlMNDAxLjMxIDU0Ni4yQTExMiAxMTIgMCAwIDEgMzk2IDUxMnonLCAnTTUwOCA2MjRjLTMuNDYgMC02Ljg3LS4xNi0xMC4yNS0uNDdsLTUyLjgyIDUyLjgyYTE3Ni4wOSAxNzYuMDkgMCAwIDAgMjI3LjQyLTIyNy40MmwtNTIuODIgNTIuODJjLjMxIDMuMzguNDcgNi43OS40NyAxMC4yNWExMTEuOTQgMTExLjk0IDAgMCAxLTExMiAxMTJ6JykpO1xuZXhwb3J0cy5FeWVPdXRsaW5lID0gZ2V0SWNvbignZXllJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTk0Mi4yIDQ4Ni4yQzg0Ny40IDI4Ni41IDcwNC4xIDE4NiA1MTIgMTg2Yy0xOTIuMiAwLTMzNS40IDEwMC41LTQzMC4yIDMwMC4zYTYwLjMgNjAuMyAwIDAgMCAwIDUxLjVDMTc2LjYgNzM3LjUgMzE5LjkgODM4IDUxMiA4MzhjMTkyLjIgMCAzMzUuNC0xMDAuNSA0MzAuMi0zMDAuMyA3LjctMTYuMiA3LjctMzUgMC01MS41ek01MTIgNzY2Yy0xNjEuMyAwLTI3OS40LTgxLjgtMzYyLjctMjU0QzIzMi42IDMzOS44IDM1MC43IDI1OCA1MTIgMjU4YzE2MS4zIDAgMjc5LjQgODEuOCAzNjIuNyAyNTRDNzkxLjUgNjg0LjIgNjczLjQgNzY2IDUxMiA3NjZ6bS00LTQzMGMtOTcuMiAwLTE3NiA3OC44LTE3NiAxNzZzNzguOCAxNzYgMTc2IDE3NiAxNzYtNzguOCAxNzYtMTc2LTc4LjgtMTc2LTE3Ni0xNzZ6bTAgMjg4Yy02MS45IDAtMTEyLTUwLjEtMTEyLTExMnM1MC4xLTExMiAxMTItMTEyIDExMiA1MC4xIDExMiAxMTItNTAuMSAxMTItMTEyIDExMnonKSk7XG5leHBvcnRzLkZhY2Vib29rT3V0bGluZSA9IGdldEljb24oJ2ZhY2Vib29rJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTMyIDczNkg2NjMuOVY2MDIuMmgxMDRsMTUuNi0xMjAuN0g2NjMuOXYtNzcuMWMwLTM1IDkuNy01OC44IDU5LjgtNTguOGg2My45di0xMDhjLTExLjEtMS41LTQ5LTQuOC05My4yLTQuOC05Mi4yIDAtMTU1LjMgNTYuMy0xNTUuMyAxNTkuNnY4OUg0MzQuOXYxMjAuN2gxMDQuM1Y4NDhIMTc2VjE3Nmg2NzJ2NjcyeicpKTtcbmV4cG9ydHMuRmFzdEJhY2t3YXJkT3V0bGluZSA9IGdldEljb24oJ2Zhc3QtYmFja3dhcmQnLCBvdXRsaW5lLCBnZXROb2RlKG5vcm1hbFZpZXdCb3gsICdNNTE3LjYgMjczLjVMMjMwLjIgNDk5LjNhMTYuMTQgMTYuMTQgMCAwIDAgMCAyNS40bDI4Ny40IDIyNS44YzEwLjcgOC40IDI2LjQuOCAyNi40LTEyLjdWMjg2LjJjMC0xMy41LTE1LjctMjEuMS0yNi40LTEyLjd6bTMyMCAwTDU1MC4yIDQ5OS4zYTE2LjE0IDE2LjE0IDAgMCAwIDAgMjUuNGwyODcuNCAyMjUuOGMxMC43IDguNCAyNi40LjggMjYuNC0xMi43VjI4Ni4yYzAtMTMuNS0xNS43LTIxLjEtMjYuNC0xMi43em0tNjIwLTI1LjVoLTUxLjJjLTMuNSAwLTYuNCAyLjctNi40IDZ2NTE2YzAgMy4zIDIuOSA2IDYuNCA2aDUxLjJjMy41IDAgNi40LTIuNyA2LjQtNlYyNTRjMC0zLjMtMi45LTYtNi40LTZ6JykpO1xuZXhwb3J0cy5GYXN0Rm9yd2FyZE91dGxpbmUgPSBnZXRJY29uKCdmYXN0LWZvcndhcmQnLCBvdXRsaW5lLCBnZXROb2RlKG5vcm1hbFZpZXdCb3gsICdNNzkzLjggNDk5LjNMNTA2LjQgMjczLjVjLTEwLjctOC40LTI2LjQtLjgtMjYuNCAxMi43djQ1MS42YzAgMTMuNSAxNS43IDIxLjEgMjYuNCAxMi43bDI4Ny40LTIyNS44YTE2LjE0IDE2LjE0IDAgMCAwIDAtMjUuNHptLTMyMCAwTDE4Ni40IDI3My41Yy0xMC43LTguNC0yNi40LS44LTI2LjQgMTIuN3Y0NTEuNWMwIDEzLjUgMTUuNyAyMS4xIDI2LjQgMTIuN2wyODcuNC0yMjUuOGM0LjEtMy4yIDYuMi04IDYuMi0xMi43IDAtNC42LTIuMS05LjQtNi4yLTEyLjZ6TTg1Ny42IDI0OGgtNTEuMmMtMy41IDAtNi40IDIuNy02LjQgNnY1MTZjMCAzLjMgMi45IDYgNi40IDZoNTEuMmMzLjUgMCA2LjQtMi43IDYuNC02VjI1NGMwLTMuMy0yLjktNi02LjQtNnonKSk7XG5leHBvcnRzLkZpbGVBZGRPdXRsaW5lID0gZ2V0SWNvbignZmlsZS1hZGQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODU0LjYgMjg4LjZMNjM5LjQgNzMuNGMtNi02LTE0LjEtOS40LTIyLjYtOS40SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlYzMTEuM2MwLTguNS0zLjQtMTYuNy05LjQtMjIuN3pNNzkwLjIgMzI2SDYwMlYxMzcuOEw3OTAuMiAzMjZ6bTEuOCA1NjJIMjMyVjEzNmgzMDJ2MjE2YTQyIDQyIDAgMCAwIDQyIDQyaDIxNnY0OTR6TTU0NCA0NzJjMC00LjQtMy42LTgtOC04aC00OGMtNC40IDAtOCAzLjYtOCA4djEwOEgzNzJjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMTA4djEwOGMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04VjY0NGgxMDhjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThINTQ0VjQ3MnonKSk7XG5leHBvcnRzLkZpbGVFeGNlbE91dGxpbmUgPSBnZXRJY29uKCdmaWxlLWV4Y2VsJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg1NC42IDI4OC42TDYzOS40IDczLjRjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzExLjNjMC04LjUtMy40LTE2LjctOS40LTIyLjd6TTc5MC4yIDMyNkg2MDJWMTM3LjhMNzkwLjIgMzI2em0xLjggNTYySDIzMlYxMzZoMzAydjIxNmE0MiA0MiAwIDAgMCA0MiA0MmgyMTZ2NDk0ek01MTQuMSA1ODAuMWwtNjEuOC0xMDIuNGMtMi4yLTMuNi02LjEtNS44LTEwLjMtNS44aC0zOC40Yy0yLjMgMC00LjUuNi02LjQgMS45LTUuNiAzLjUtNy4zIDEwLjktMy43IDE2LjZsODIuMyAxMzAuNC04My40IDEzMi44YTEyLjA0IDEyLjA0IDAgMCAwIDEwLjIgMTguNGgzNC41YzQuMiAwIDgtMi4yIDEwLjItNS43TDUxMCA2NjQuOGw2Mi4zIDEwMS40YzIuMiAzLjYgNi4xIDUuNyAxMC4yIDUuN0g2MjBjMi4zIDAgNC41LS43IDYuNS0xLjkgNS42LTMuNiA3LjItMTEgMy42LTE2LjZsLTg0LTEzMC40IDg1LjMtMTMyLjVhMTIuMDQgMTIuMDQgMCAwIDAtMTAuMS0xOC41aC0zNS43Yy00LjIgMC04LjEgMi4yLTEwLjMgNS44bC02MS4yIDEwMi4zeicpKTtcbmV4cG9ydHMuRmlsZUV4Y2xhbWF0aW9uT3V0bGluZSA9IGdldEljb24oJ2ZpbGUtZXhjbGFtYXRpb24nLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODU0LjYgMjg4LjZMNjM5LjQgNzMuNGMtNi02LTE0LjEtOS40LTIyLjYtOS40SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlYzMTEuM2MwLTguNS0zLjQtMTYuNy05LjQtMjIuN3pNNzkwLjIgMzI2SDYwMlYxMzcuOEw3OTAuMiAzMjZ6bTEuOCA1NjJIMjMyVjEzNmgzMDJ2MjE2YTQyIDQyIDAgMCAwIDQyIDQyaDIxNnY0OTR6TTQ3MiA3NDRhNDAgNDAgMCAxIDAgODAgMCA0MCA0MCAwIDEgMC04MCAwem0xNi0xMDRoNDhjNC40IDAgOC0zLjYgOC04VjQ0OGMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2MTg0YzAgNC40IDMuNiA4IDggOHonKSk7XG5leHBvcnRzLkZpbGVJbWFnZU91dGxpbmUgPSBnZXRJY29uKCdmaWxlLWltYWdlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTU1My4xIDUwOS4xbC03Ny44IDk5LjItNDEuMS01Mi40YTggOCAwIDAgMC0xMi42IDBsLTk5LjggMTI3LjJhNy45OCA3Ljk4IDAgMCAwIDYuMyAxMi45SDY5NmM2LjcgMCAxMC40LTcuNyA2LjMtMTIuOWwtMTM2LjUtMTc0YTguMSA4LjEgMCAwIDAtMTIuNyAwek0zNjAgNDQyYTQwIDQwIDAgMSAwIDgwIDAgNDAgNDAgMCAxIDAtODAgMHptNDk0LjYtMTUzLjRMNjM5LjQgNzMuNGMtNi02LTE0LjEtOS40LTIyLjYtOS40SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlYzMTEuM2MwLTguNS0zLjQtMTYuNy05LjQtMjIuN3pNNzkwLjIgMzI2SDYwMlYxMzcuOEw3OTAuMiAzMjZ6bTEuOCA1NjJIMjMyVjEzNmgzMDJ2MjE2YTQyIDQyIDAgMCAwIDQyIDQyaDIxNnY0OTR6JykpO1xuZXhwb3J0cy5GaWxlTWFya2Rvd25PdXRsaW5lID0gZ2V0SWNvbignZmlsZS1tYXJrZG93bicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NTQuNiAyODguNkw2MzkuNCA3My40Yy02LTYtMTQuMS05LjQtMjIuNi05LjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMxMS4zYzAtOC41LTMuNC0xNi43LTkuNC0yMi43ek03OTAuMiAzMjZINjAyVjEzNy44TDc5MC4yIDMyNnptMS44IDU2MkgyMzJWMTM2aDMwMnYyMTZhNDIgNDIgMCAwIDAgNDIgNDJoMjE2djQ5NHpNNDI5IDQ4MS4yYy0xLjktNC40LTYuMi03LjItMTEtNy4yaC0zNWMtNi42IDAtMTIgNS40LTEyIDEydjI3MmMwIDYuNiA1LjQgMTIgMTIgMTJoMjcuMWM2LjYgMCAxMi01LjQgMTItMTJWNTgyLjFsNjYuOCAxNTAuMmExMiAxMiAwIDAgMCAxMSA3LjFINTI0YzQuNyAwIDktMi44IDExLTcuMWw2Ni44LTE1MC42Vjc1OGMwIDYuNiA1LjQgMTIgMTIgMTJINjQxYzYuNiAwIDEyLTUuNCAxMi0xMlY0ODZjMC02LjYtNS40LTEyLTEyLTEyaC0zNC43Yy00LjggMC05LjEgMi44LTExIDcuMmwtODMuMSAxOTEtODMuMi0xOTF6JykpO1xuZXhwb3J0cy5GaWxlUHB0T3V0bGluZSA9IGdldEljb24oJ2ZpbGUtcHB0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTQyNCA0NzZjLTQuNCAwLTggMy42LTggOHYyNzZjMCA0LjQgMy42IDggOCA4aDMyLjVjNC40IDAgOC0zLjYgOC04di05NS41aDYzLjNjNTkuNCAwIDk2LjItMzguOSA5Ni4yLTk0LjEgMC01NC41LTM2LjMtOTQuMy05Ni05NC4zSDQyNHptMTUwLjYgOTQuM2MwIDQzLjQtMjYuNSA1NC4zLTcxLjIgNTQuM2gtMzguOVY1MTYuMmg1Ni4yYzMzLjggMCA1My45IDE5LjcgNTMuOSA1NC4xem0yODAtMjgxLjdMNjM5LjQgNzMuNGMtNi02LTE0LjEtOS40LTIyLjYtOS40SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlYzMTEuM2MwLTguNS0zLjQtMTYuNy05LjQtMjIuN3pNNzkwLjIgMzI2SDYwMlYxMzcuOEw3OTAuMiAzMjZ6bTEuOCA1NjJIMjMyVjEzNmgzMDJ2MjE2YTQyIDQyIDAgMCAwIDQyIDQyaDIxNnY0OTR6JykpO1xuZXhwb3J0cy5GaWxlVGV4dE91dGxpbmUgPSBnZXRJY29uKCdmaWxlLXRleHQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODU0LjYgMjg4LjZMNjM5LjQgNzMuNGMtNi02LTE0LjEtOS40LTIyLjYtOS40SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlYzMTEuM2MwLTguNS0zLjQtMTYuNy05LjQtMjIuN3pNNzkwLjIgMzI2SDYwMlYxMzcuOEw3OTAuMiAzMjZ6bTEuOCA1NjJIMjMyVjEzNmgzMDJ2MjE2YTQyIDQyIDAgMCAwIDQyIDQyaDIxNnY0OTR6TTUwNCA2MThIMzIwYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDE4NGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOHpNMzEyIDQ5MHY0OGMwIDQuNCAzLjYgOCA4IDhoMzg0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04SDMyMGMtNC40IDAtOCAzLjYtOCA4eicpKTtcbmV4cG9ydHMuRmlsZVBkZk91dGxpbmUgPSBnZXRJY29uKCdmaWxlLXBkZicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MzEuMyA1NzQuNGwuMy0xLjRjNS44LTIzLjkgMTMuMS01My43IDcuNC04MC43LTMuOC0yMS4zLTE5LjUtMjkuNi0zMi45LTMwLjItMTUuOC0uNy0yOS45IDguMy0zMy40IDIxLjQtNi42IDI0LS43IDU2LjggMTAuMSA5OC42LTEzLjYgMzIuNC0zNS4zIDc5LjUtNTEuMiAxMDcuNS0yOS42IDE1LjMtNjkuMyAzOC45LTc1LjIgNjguNy0xLjIgNS41LjIgMTIuNSAzLjUgMTguOCAzLjcgNyA5LjYgMTIuNCAxNi41IDE1IDMgMS4xIDYuNiAyIDEwLjggMiAxNy42IDAgNDYuMS0xNC4yIDg0LjEtNzkuNCA1LjgtMS45IDExLjgtMy45IDE3LjYtNS45IDI3LjItOS4yIDU1LjQtMTguOCA4MC45LTIzLjEgMjguMiAxNS4xIDYwLjMgMjQuOCA4Mi4xIDI0LjggMjEuNiAwIDMwLjEtMTIuOCAzMy4zLTIwLjUgNS42LTEzLjUgMi45LTMwLjUtNi4yLTM5LjYtMTMuMi0xMy00NS4zLTE2LjQtOTUuMy0xMC4yLTI0LjYtMTUtNDAuNy0zNS40LTUyLjQtNjUuOHpNNDIxLjYgNzI2LjNjLTEzLjkgMjAuMi0yNC40IDMwLjMtMzAuMSAzNC43IDYuNy0xMi4zIDE5LjgtMjUuMyAzMC4xLTM0Ljd6bTg3LjYtMjM1LjVjNS4yIDguOSA0LjUgMzUuOC41IDQ5LjQtNC45LTE5LjktNS42LTQ4LjEtMi43LTUxLjQuOC4xIDEuNS43IDIuMiAyem0tMS42IDEyMC41YzEwLjcgMTguNSAyNC4yIDM0LjQgMzkuMSA0Ni4yLTIxLjYgNC45LTQxLjMgMTMtNTguOSAyMC4yLTQuMiAxLjctOC4zIDMuNC0xMi4zIDUgMTMuMy0yNC4xIDI0LjQtNTEuNCAzMi4xLTcxLjR6bTE1NS42IDY1LjVjLjEuMi4yLjUtLjQuOWgtLjJsLS4yLjNjLS44LjUtOSA1LjMtNDQuMy04LjYgNDAuNi0xLjkgNDUgNy4zIDQ1LjEgNy40em0xOTEuNC0zODguMkw2MzkuNCA3My40Yy02LTYtMTQuMS05LjQtMjIuNi05LjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMxMS4zYzAtOC41LTMuNC0xNi43LTkuNC0yMi43ek03OTAuMiAzMjZINjAyVjEzNy44TDc5MC4yIDMyNnptMS44IDU2MkgyMzJWMTM2aDMwMnYyMTZhNDIgNDIgMCAwIDAgNDIgNDJoMjE2djQ5NHonKSk7XG5leHBvcnRzLkZpbGVaaXBPdXRsaW5lID0gZ2V0SWNvbignZmlsZS16aXAnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMjk2IDM5Mmg2NHY2NGgtNjR6bTAgMTkwdjE2MGgxMjhWNTgyaC02NHYtNjJoLTY0djYyem04MCA0OHY2NGgtMzJ2LTY0aDMyem0tMTYtMzAyaDY0djY0aC02NHptLTY0LTY0aDY0djY0aC02NHptNjQgMTkyaDY0djY0aC02NHptMC0yNTZoNjR2NjRoLTY0em00OTQuNiA4OC42TDYzOS40IDczLjRjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzExLjNjMC04LjUtMy40LTE2LjctOS40LTIyLjd6TTc5MC4yIDMyNkg2MDJWMTM3LjhMNzkwLjIgMzI2em0xLjggNTYySDIzMlYxMzZoNjR2NjRoNjR2LTY0aDE3NHYyMTZhNDIgNDIgMCAwIDAgNDIgNDJoMjE2djQ5NHonKSk7XG5leHBvcnRzLkZpbGVPdXRsaW5lID0gZ2V0SWNvbignZmlsZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NTQuNiAyODguNkw2MzkuNCA3My40Yy02LTYtMTQuMS05LjQtMjIuNi05LjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMxMS4zYzAtOC41LTMuNC0xNi43LTkuNC0yMi43ek03OTAuMiAzMjZINjAyVjEzNy44TDc5MC4yIDMyNnptMS44IDU2MkgyMzJWMTM2aDMwMnYyMTZhNDIgNDIgMCAwIDAgNDIgNDJoMjE2djQ5NHonKSk7XG5leHBvcnRzLkZpbHRlck91dGxpbmUgPSBnZXRJY29uKCdmaWx0ZXInLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwLjEgMTU0SDE0My45Yy0yNC41IDAtMzkuOCAyNi43LTI3LjUgNDhMMzQ5IDU5Ny40VjgzOGMwIDE3LjcgMTQuMiAzMiAzMS44IDMyaDI2Mi40YzE3LjYgMCAzMS44LTE0LjMgMzEuOC0zMlY1OTcuNEw5MDcuNyAyMDJjMTIuMi0yMS4zLTMuMS00OC0yNy42LTQ4ek02MDMuNCA3OThINDIwLjZWNjQyaDE4Mi45djE1NnptOS42LTIzNi42bC05LjUgMTYuNmgtMTgzbC05LjUtMTYuNkwyMTIuNyAyMjZoNTk4LjZMNjEzIDU2MS40eicpKTtcbmV4cG9ydHMuRmlsZVdvcmRPdXRsaW5lID0gZ2V0SWNvbignZmlsZS13b3JkJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg1NC42IDI4OC42TDYzOS40IDczLjRjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzExLjNjMC04LjUtMy40LTE2LjctOS40LTIyLjd6TTc5MC4yIDMyNkg2MDJWMTM3LjhMNzkwLjIgMzI2em0xLjggNTYySDIzMlYxMzZoMzAydjIxNmE0MiA0MiAwIDAgMCA0MiA0MmgyMTZ2NDk0ek01MjguMSA0NzJoLTMyLjJjLTUuNSAwLTEwLjMgMy43LTExLjYgOS4xTDQzNC42IDY4MGwtNDYuMS0xOTguN2MtMS4zLTUuNC02LjEtOS4zLTExLjctOS4zaC0zNS40YTEyLjAyIDEyLjAyIDAgMCAwLTExLjYgMTUuMWw3NC4yIDI3NmMxLjQgNS4yIDYuMiA4LjkgMTEuNiA4LjloMzJjNS40IDAgMTAuMi0zLjYgMTEuNi04LjlsNTIuOC0xOTcgNTIuOCAxOTdjMS40IDUuMiA2LjIgOC45IDExLjYgOC45aDMxLjhjNS40IDAgMTAuMi0zLjYgMTEuNi04LjlsNzQuNC0yNzZhMTIuMDQgMTIuMDQgMCAwIDAtMTEuNi0xNS4xSDY0N2MtNS42IDAtMTAuNCAzLjktMTEuNyA5LjNsLTQ1LjggMTk5LjEtNDkuOC0xOTkuM2MtMS4zLTUuNC02LjEtOS4xLTExLjYtOS4xeicpKTtcbmV4cG9ydHMuRmlyZU91dGxpbmUgPSBnZXRJY29uKCdmaXJlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTgzNC4xIDQ2OS4yQTM0Ny40OSAzNDcuNDkgMCAwIDAgNzUxLjIgMzU0bC0yOS4xLTI2LjdhOC4wOSA4LjA5IDAgMCAwLTEzIDMuM2wtMTMgMzcuM2MtOC4xIDIzLjQtMjMgNDcuMy00NC4xIDcwLjgtMS40IDEuNS0zIDEuOS00LjEgMi0xLjEuMS0yLjgtLjEtNC4zLTEuNS0xLjQtMS4yLTIuMS0zLTItNC44IDMuNy02MC4yLTE0LjMtMTI4LjEtNTMuNy0yMDJDNTU1LjMgMTcxIDUxMCAxMjMuMSA0NTMuNCA4OS43bC00MS4zLTI0LjNjLTUuNC0zLjItMTIuMyAxLTEyIDcuM2wyLjIgNDhjMS41IDMyLjgtMi4zIDYxLjgtMTEuMyA4NS45LTExIDI5LjUtMjYuOCA1Ni45LTQ3IDgxLjVhMjk1LjY0IDI5NS42NCAwIDAgMS00Ny41IDQ2LjEgMzUyLjYgMzUyLjYgMCAwIDAtMTAwLjMgMTIxLjVBMzQ3Ljc1IDM0Ny43NSAwIDAgMCAxNjAgNjEwYzAgNDcuMiA5LjMgOTIuOSAyNy43IDEzNmEzNDkuNCAzNDkuNCAwIDAgMCA3NS41IDExMC45YzMyLjQgMzIgNzAgNTcuMiAxMTEuOSA3NC43QzQxOC41IDk0OS44IDQ2NC41IDk1OSA1MTIgOTU5czkzLjUtOS4yIDEzNi45LTI3LjNBMzQ4LjYgMzQ4LjYgMCAwIDAgNzYwLjggODU3YzMyLjQtMzIgNTcuOC02OS40IDc1LjUtMTEwLjlhMzQ0LjIgMzQ0LjIgMCAwIDAgMjcuNy0xMzZjMC00OC44LTEwLTk2LjItMjkuOS0xNDAuOXpNNzEzIDgwOC41Yy01My43IDUzLjItMTI1IDgyLjQtMjAxIDgyLjRzLTE0Ny4zLTI5LjItMjAxLTgyLjRjLTUzLjUtNTMuMS04My0xMjMuNS04My0xOTguNCAwLTQzLjUgOS44LTg1LjIgMjkuMS0xMjQgMTguOC0zNy45IDQ2LjgtNzEuOCA4MC44LTk3LjlhMzQ5LjYgMzQ5LjYgMCAwIDAgNTguNi01Ni44YzI1LTMwLjUgNDQuNi02NC41IDU4LjItMTAxYTI0MCAyNDAgMCAwIDAgMTIuMS00Ni41YzI0LjEgMjIuMiA0NC4zIDQ5IDYxLjIgODAuNCAzMy40IDYyLjYgNDguOCAxMTguMyA0NS44IDE2NS43YTc0LjAxIDc0LjAxIDAgMCAwIDI0LjQgNTkuOCA3My4zNiA3My4zNiAwIDAgMCA1My40IDE4LjhjMTkuNy0xIDM3LjgtOS43IDUxLTI0LjQgMTMuMy0xNC45IDI0LjgtMzAuMSAzNC40LTQ1LjYgMTQgMTcuOSAyNS43IDM3LjQgMzUgNTguNCAxNS45IDM1LjggMjQgNzMuOSAyNCAxMTMuMSAwIDc0LjktMjkuNSAxNDUuNC04MyAxOTguNHonKSk7XG5leHBvcnRzLkZpbGVVbmtub3duT3V0bGluZSA9IGdldEljb24oJ2ZpbGUtdW5rbm93bicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NTQuNiAyODguN0w2MzkuNCA3My40Yy02LTYtMTQuMi05LjQtMjIuNy05LjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMxMS4zYzAtOC41LTMuNC0xNi42LTkuNC0yMi42ek03OTAuMiAzMjZINjAyVjEzNy44TDc5MC4yIDMyNnptMS44IDU2MkgyMzJWMTM2aDMwMnYyMTZhNDIgNDIgMCAwIDAgNDIgNDJoMjE2djQ5NHpNNDAyIDU0OWMwIDUuNCA0LjQgOS41IDkuOCA5LjVoMzIuNGM1LjQgMCA5LjgtNC4yIDkuOC05LjQgMC0yOC4yIDI1LjgtNTEuNiA1OC01MS42czU4IDIzLjQgNTggNTEuNWMwIDI1LjMtMjEgNDcuMi00OS4zIDUwLjktMTkuMyAyLjgtMzQuNSAyMC4zLTM0LjcgNDAuMXYzMmMwIDUuNSA0LjUgMTAgMTAgMTBoMzJjNS41IDAgMTAtNC41IDEwLTEwdi0xMi4yYzAtNiA0LTExLjUgOS43LTEzLjMgNDQuNi0xNC40IDc1LTU0IDc0LjMtOTguOS0uOC01NS41LTQ5LjItMTAwLjgtMTA4LjUtMTAxLjYtNjEuNC0uNy0xMTEuNSA0NS42LTExMS41IDEwM3ptNzggMTk1YTMyIDMyIDAgMSAwIDY0IDAgMzIgMzIgMCAxIDAtNjQgMHonKSk7XG5leHBvcnRzLkZsYWdPdXRsaW5lID0gZ2V0SWNvbignZmxhZycsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMzA1SDYyNFYxOTJjMC0xNy43LTE0LjMtMzItMzItMzJIMTg0di00MGMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2Nzg0YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LThWNjQwaDI0OHYxMTNjMCAxNy43IDE0LjMgMzIgMzIgMzJoNDE2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMzN2MwLTE3LjctMTQuMy0zMi0zMi0zMnpNMTg0IDU2OFYyMzJoMzY4djMzNkgxODR6bTY1NiAxNDVINTA0di03M2gxMTJjNC40IDAgOC0zLjYgOC04VjM3N2gyMTZ2MzM2eicpKTtcbmV4cG9ydHMuRm9sZGVyQWRkT3V0bGluZSA9IGdldEljb24oJ2ZvbGRlci1hZGQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNDg0IDQ0My4xVjUyOGgtODQuNWMtNC4xIDAtNy41IDMuMS03LjUgN3Y0MmMwIDMuOCAzLjQgNyA3LjUgN0g0ODR2ODQuOWMwIDMuOSAzLjIgNy4xIDcgNy4xaDQyYzMuOSAwIDctMy4yIDctNy4xVjU4NGg4NC41YzQuMSAwIDcuNS0zLjIgNy41LTd2LTQyYzAtMy45LTMuNC03LTcuNS03SDU0MHYtODQuOWMwLTMuOS0zLjEtNy4xLTctNy4xaC00MmMtMy44IDAtNyAzLjItNyA3LjF6bTM5Ni0xNDQuN0g1MjFMNDAzLjcgMTg2LjJhOC4xNSA4LjE1IDAgMCAwLTUuNS0yLjJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY1OTJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMzMC40YzAtMTcuNy0xNC4zLTMyLTMyLTMyek04NDAgNzY4SDE4NFYyNTZoMTg4LjVsMTE5LjYgMTE0LjRIODQwVjc2OHonKSk7XG5leHBvcnRzLkZvbGRlck91dGxpbmUgPSBnZXRJY29uKCdmb2xkZXInLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDI5OC40SDUyMUw0MDMuNyAxODYuMmE4LjE1IDguMTUgMCAwIDAtNS41LTIuMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjU5MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzMwLjRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTg0MCA3NjhIMTg0VjI1NmgxODguNWwxMTkuNiAxMTQuNEg4NDBWNzY4eicpKTtcbmV4cG9ydHMuRm9sZGVyT3Blbk91dGxpbmUgPSBnZXRJY29uKCdmb2xkZXItb3BlbicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MjggNDQ0SDgyMFYzMzAuNGMwLTE3LjctMTQuMy0zMi0zMi0zMkg0NzNMMzU1LjcgMTg2LjJhOC4xNSA4LjE1IDAgMCAwLTUuNS0yLjJIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjU5MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2OThjMTMgMCAyNC44LTcuOSAyOS43LTIwbDEzNC0zMzJjMS41LTMuOCAyLjMtNy45IDIuMy0xMiAwLTE3LjctMTQuMy0zMi0zMi0zMnpNMTM2IDI1NmgxODguNWwxMTkuNiAxMTQuNEg3NDhWNDQ0SDIzOGMtMTMgMC0yNC44IDcuOS0yOS43IDIwTDEzNiA2NDMuMlYyNTZ6bTYzNS4zIDUxMkgxNTlsMTAzLjMtMjU2aDYxMi40TDc3MS4zIDc2OHonKSk7XG5leHBvcnRzLkZvcndhcmRPdXRsaW5lID0gZ2V0SWNvbignZm9yd2FyZCcsIG91dGxpbmUsIGdldE5vZGUobm9ybWFsVmlld0JveCwgJ004MjUuOCA0OThMNTM4LjQgMjQ5LjljLTEwLjctOS4yLTI2LjQtLjktMjYuNCAxNHY0OTYuM2MwIDE0LjkgMTUuNyAyMy4yIDI2LjQgMTRMODI1LjggNTI2YzguMy03LjIgOC4zLTIwLjggMC0yOHptLTMyMCAwTDIxOC40IDI0OS45Yy0xMC43LTkuMi0yNi40LS45LTI2LjQgMTR2NDk2LjNjMCAxNC45IDE1LjcgMjMuMiAyNi40IDE0TDUwNS44IDUyNmM0LjEtMy42IDYuMi04LjggNi4yLTE0IDAtNS4yLTIuMS0xMC40LTYuMi0xNHonKSk7XG5leHBvcnRzLkZyb3duT3V0bGluZSA9IGdldEljb24oJ2Zyb3duJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTI4OCA0MjFhNDggNDggMCAxIDAgOTYgMCA0OCA0OCAwIDEgMC05NiAwem0zNTIgMGE0OCA0OCAwIDEgMCA5NiAwIDQ4IDQ4IDAgMSAwLTk2IDB6TTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0yNjMgNzExYy0zNC4yIDM0LjItNzQgNjEtMTE4LjMgNzkuOEM2MTEgODc0LjIgNTYyLjMgODg0IDUxMiA4ODRjLTUwLjMgMC05OS05LjgtMTQ0LjgtMjkuMkEzNzAuNCAzNzAuNCAwIDAgMSAyNDguOSA3NzVjLTM0LjItMzQuMi02MS03NC03OS44LTExOC4zQzE0OS44IDYxMSAxNDAgNTYyLjMgMTQwIDUxMnM5LjgtOTkgMjkuMi0xNDQuOEEzNzAuNCAzNzAuNCAwIDAgMSAyNDkgMjQ4LjljMzQuMi0zNC4yIDc0LTYxIDExOC4zLTc5LjhDNDEzIDE0OS44IDQ2MS43IDE0MCA1MTIgMTQwYzUwLjMgMCA5OSA5LjggMTQ0LjggMjkuMkEzNzAuNCAzNzAuNCAwIDAgMSA3NzUuMSAyNDljMzQuMiAzNC4yIDYxIDc0IDc5LjggMTE4LjNDODc0LjIgNDEzIDg4NCA0NjEuNyA4ODQgNTEycy05LjggOTktMjkuMiAxNDQuOEEzNjguODkgMzY4Ljg5IDAgMCAxIDc3NSA3NzV6TTUxMiA1MzNjLTg1LjUgMC0xNTUuNiA2Ny4zLTE2MCAxNTEuNmE4IDggMCAwIDAgOCA4LjRoNDguMWM0LjIgMCA3LjgtMy4yIDguMS03LjRDNDIwIDYzNi4xIDQ2MS41IDU5NyA1MTIgNTk3czkyLjEgMzkuMSA5NS44IDg4LjZjLjMgNC4yIDMuOSA3LjQgOC4xIDcuNEg2NjRhOCA4IDAgMCAwIDgtOC40QzY2Ny42IDYwMC4zIDU5Ny41IDUzMyA1MTIgNTMzeicpKTtcbmV4cG9ydHMuRnVuZE91dGxpbmUgPSBnZXRJY29uKCdmdW5kJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkyNiAxNjRIOTRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY0MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg4MzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNjMySDEzNFYyMzZoNzUydjU2MHptLTY1OC45LTgyLjNjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGwxNzIuNS0xNzIuNSAxMTQuNCAxMTQuNWMzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDI5Ny0yOTcuMmMzLjEtMy4xIDMuMS04LjIgMC0xMS4zbC0zNi44LTM2LjhhOC4wMyA4LjAzIDAgMCAwLTExLjMgMEw1MzEgNTY1IDQxNi42IDQ1MC41YTguMDMgOC4wMyAwIDAgMC0xMS4zIDBsLTIxNC45IDIxNWE4LjAzIDguMDMgMCAwIDAgMCAxMS4zbDM2LjcgMzYuOXonKSk7XG5leHBvcnRzLkZ1bm5lbFBsb3RPdXRsaW5lID0gZ2V0SWNvbignZnVubmVsLXBsb3QnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwLjEgMTU0SDE0My45Yy0yNC41IDAtMzkuOCAyNi43LTI3LjUgNDhMMzQ5IDYwNy40VjgzOGMwIDE3LjcgMTQuMiAzMiAzMS44IDMyaDI2Mi40YzE3LjYgMCAzMS44LTE0LjMgMzEuOC0zMlY2MDcuNEw5MDcuNyAyMDJjMTIuMi0yMS4zLTMuMS00OC0yNy42LTQ4ek02MDMuNCA3OThINDIwLjZWNjUwaDE4Mi45djE0OHptOS42LTIyNi42bC04LjQgMTQuNkg0MTkuM2wtOC40LTE0LjZMMzM0LjQgNDM4aDM1NS4yTDYxMyA1NzEuNHpNNzI2LjMgMzc0SDI5Ny43bC04NS0xNDhoNTk4LjZsLTg1IDE0OHonKSk7XG5leHBvcnRzLkdpZnRPdXRsaW5lID0gZ2V0SWNvbignZ2lmdCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMzEwSDczMi40YzEzLjYtMjEuNCAyMS42LTQ2LjggMjEuNi03NCAwLTc2LjEtNjEuOS0xMzgtMTM4LTEzOC00MS40IDAtNzguNyAxOC40LTEwNCA0Ny40LTI1LjMtMjktNjIuNi00Ny40LTEwNC00Ny40LTc2LjEgMC0xMzggNjEuOS0xMzggMTM4IDAgMjcuMiA3LjkgNTIuNiAyMS42IDc0SDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MjAwYzAgNC40IDMuNiA4IDggOGg0MHYzNDRjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjU1MGg0MGM0LjQgMCA4LTMuNiA4LThWMzQyYzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tMzM0LTc0YzAtMzguNiAzMS40LTcwIDcwLTcwczcwIDMxLjQgNzAgNzAtMzEuNCA3MC03MCA3MGgtNzB2LTcwem0tMTM4LTcwYzM4LjYgMCA3MCAzMS40IDcwIDcwdjcwaC03MGMtMzguNiAwLTcwLTMxLjQtNzAtNzBzMzEuNC03MCA3MC03MHpNMTgwIDQ4MlYzNzhoMjk4djEwNEgxODB6bTQ4IDY4aDI1MHYzMDhIMjI4VjU1MHptNTY4IDMwOEg1NDZWNTUwaDI1MHYzMDh6bTQ4LTM3Nkg1NDZWMzc4aDI5OHYxMDR6JykpO1xuZXhwb3J0cy5HaXRodWJPdXRsaW5lID0gZ2V0SWNvbignZ2l0aHViJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMS42IDc2LjNDMjY0LjMgNzYuMiA2NCAyNzYuNCA2NCA1MjMuNSA2NCA3MTguOSAxODkuMyA4ODUgMzYzLjggOTQ2YzIzLjUgNS45IDE5LjktMTAuOCAxOS45LTIyLjJ2LTc3LjVjLTEzNS43IDE1LjktMTQxLjItNzMuOS0xNTAuMy04OC45QzIxNSA3MjYgMTcxLjUgNzE4IDE4NC41IDcwM2MzMC45LTE1LjkgNjIuNCA0IDk4LjkgNTcuOSAyNi40IDM5LjEgNzcuOSAzMi41IDEwNCAyNiA1LjctMjMuNSAxNy45LTQ0LjUgMzQuNy02MC44LTE0MC42LTI1LjItMTk5LjItMTExLTE5OS4yLTIxMyAwLTQ5LjUgMTYuMy05NSA0OC4zLTEzMS43LTIwLjQtNjAuNSAxLjktMTEyLjMgNC45LTEyMCA1OC4xLTUuMiAxMTguNSA0MS42IDEyMy4yIDQ1LjMgMzMtOC45IDcwLjctMTMuNiAxMTIuOS0xMy42IDQyLjQgMCA4MC4yIDQuOSAxMTMuNSAxMy45IDExLjMtOC42IDY3LjMtNDguOCAxMjEuMy00My45IDIuOSA3LjcgMjQuNyA1OC4zIDUuNSAxMTggMzIuNCAzNi44IDQ4LjkgODIuNyA0OC45IDEzMi4zIDAgMTAyLjItNTkgMTg4LjEtMjAwIDIxMi45YTEyNy41IDEyNy41IDAgMCAxIDM4LjEgOTF2MTEyLjVjLjggOSAwIDE3LjkgMTUgMTcuOSAxNzcuMS01OS43IDMwNC42LTIyNyAzMDQuNi00MjQuMSAwLTI0Ny4yLTIwMC40LTQ0Ny4zLTQ0Ny41LTQ0Ny4zeicpKTtcbmV4cG9ydHMuR2l0bGFiT3V0bGluZSA9IGdldEljb24oJ2dpdGxhYicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MTMuOSA1NTIuMkw4MDUgMTgxLjR2LS4xYy03LjYtMjIuOS0yNS43LTM2LjUtNDguMy0zNi41LTIzLjQgMC00Mi41IDEzLjUtNDkuNyAzNS4ybC03MS40IDIxM0gzODguOGwtNzEuNC0yMTNjLTcuMi0yMS43LTI2LjMtMzUuMi00OS43LTM1LjItMjMuMSAwLTQyLjUgMTQuOC00OC40IDM2LjZMMTEwLjUgNTUyLjJjLTQuNCAxNC43IDEuMiAzMS40IDEzLjUgNDAuN2wzNjguNSAyNzYuNGMyLjYgMy42IDYuMiA2LjMgMTAuNCA3LjhsOC42IDYuNCA4LjUtNi40YzQuOS0xLjcgOS00LjcgMTEuOS04LjlsMzY4LjQtMjc1LjRjMTIuNC05LjIgMTgtMjUuOSAxMy42LTQwLjZ6TTc1MS43IDE5My40YzEtMS44IDIuOS0xLjkgMy41LTEuOSAxLjEgMCAyLjUuMyAzLjQgM0w4MTggMzk0LjNINjg0LjVsNjcuMi0yMDAuOXptLTQ4Ny40IDFjLjktMi42IDIuMy0yLjkgMy40LTIuOSAyLjcgMCAyLjkuMSAzLjQgMS43bDY3LjMgMjAxLjJIMjA2LjVsNTcuOC0yMDB6TTE1OC44IDU1OC43bDI4LjItOTcuMyAyMDIuNCAyNzAuMi0yMzAuNi0xNzIuOXptNzMuOS0xMTYuNGgxMjIuMWw5MC44IDI4NC4zLTIxMi45LTI4NC4zek01MTIuOSA3NzZMNDA1LjcgNDQyLjNINjIwTDUxMi45IDc3NnptMTU3LjktMzMzLjdoMTE5LjVMNTgwIDcyMy4xbDkwLjgtMjgwLjh6bS00MC43IDI5My45bDIwNy4zLTI3Ni43IDI5LjUgOTkuMi0yMzYuOCAxNzcuNXonKSk7XG5leHBvcnRzLkhlYXJ0T3V0bGluZSA9IGdldEljb24oJ2hlYXJ0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkyMyAyODMuNmEyNjAuMDQgMjYwLjA0IDAgMCAwLTU2LjktODIuOCAyNjQuNCAyNjQuNCAwIDAgMC04NC01NS41QTI2NS4zNCAyNjUuMzQgMCAwIDAgNjc5LjcgMTI1Yy00OS4zIDAtOTcuNCAxMy41LTEzOS4yIDM5LTEwIDYuMS0xOS41IDEyLjgtMjguNSAyMC4xLTktNy4zLTE4LjUtMTQtMjguNS0yMC4xLTQxLjgtMjUuNS04OS45LTM5LTEzOS4yLTM5LTM1LjUgMC02OS45IDYuOC0xMDIuNCAyMC4zLTMxLjQgMTMtNTkuNyAzMS43LTg0IDU1LjVhMjU4LjQ0IDI1OC40NCAwIDAgMC01Ni45IDgyLjhjLTEzLjkgMzIuMy0yMSA2Ni42LTIxIDEwMS45IDAgMzMuMyA2LjggNjggMjAuMyAxMDMuMyAxMS4zIDI5LjUgMjcuNSA2MC4xIDQ4LjIgOTEgMzIuOCA0OC45IDc3LjkgOTkuOSAxMzMuOSAxNTEuNiA5Mi44IDg1LjcgMTg0LjcgMTQ0LjkgMTg4LjYgMTQ3LjNsMjMuNyAxNS4yYzEwLjUgNi43IDI0IDYuNyAzNC41IDBsMjMuNy0xNS4yYzMuOS0yLjUgOTUuNy02MS42IDE4OC42LTE0Ny4zIDU2LTUxLjcgMTAxLjEtMTAyLjcgMTMzLjktMTUxLjYgMjAuNy0zMC45IDM3LTYxLjUgNDguMi05MSAxMy41LTM1LjMgMjAuMy03MCAyMC4zLTEwMy4zLjEtMzUuMy03LTY5LjYtMjAuOS0xMDEuOXpNNTEyIDgxNC44UzE1NiA1ODYuNyAxNTYgMzg1LjVDMTU2IDI4My42IDI0MC4zIDIwMSAzNDQuMyAyMDFjNzMuMSAwIDEzNi41IDQwLjggMTY3LjcgMTAwLjRDNTQzLjIgMjQxLjggNjA2LjYgMjAxIDY3OS43IDIwMWMxMDQgMCAxODguMyA4Mi42IDE4OC4zIDE4NC41IDAgMjAxLjItMzU2IDQyOS4zLTM1NiA0MjkuM3onKSk7XG5leHBvcnRzLkhkZE91dGxpbmUgPSBnZXRJY29uKCdoZGQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODMyIDY0SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlY5NmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTYwMCA3Mmg1NjB2MjA4SDIzMlYxMzZ6bTU2MCA0ODBIMjMyVjQwOGg1NjB2MjA4em0wIDI3MkgyMzJWNjgwaDU2MHYyMDh6TTQ5NiAyMDhIMzEyYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDE4NGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOHpNMzEyIDU0NGgxODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThIMzEyYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4em0zMjggMjQ0YTQwIDQwIDAgMSAwIDgwIDAgNDAgNDAgMCAxIDAtODAgMHonKSk7XG5leHBvcnRzLkhpZ2hsaWdodE91dGxpbmUgPSBnZXRJY29uKCdoaWdobGlnaHQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTU3LjYgNTA3LjRMNjAzLjIgMTU4LjJhNy45IDcuOSAwIDAgMC0xMS4yIDBMMzUzLjMgMzkzLjRhOC4wMyA4LjAzIDAgMCAwLS4xIDExLjNsLjEuMSA0MCAzOS40LTExNy4yIDExNS4zYTguMDMgOC4wMyAwIDAgMC0uMSAxMS4zbC4xLjEgMzkuNSAzOC45LTE4OS4xIDE4N0g3Mi4xYy00LjQgMC04LjEgMy42LTguMSA4Vjg2MGMwIDQuNCAzLjYgOCA4IDhoMzQ0LjljMi4xIDAgNC4xLS44IDUuNi0yLjNsNzYuMS03NS42IDQwLjQgMzkuOGE3LjkgNy45IDAgMCAwIDExLjIgMGwxMTcuMS0xMTUuNiA0MC4xIDM5LjVhNy45IDcuOSAwIDAgMCAxMS4yIDBsMjM4LjctMjM1LjJjMy40LTMgMy40LTggLjMtMTEuMnpNMzg5LjggNzk2LjJIMjI5LjZsMTM0LjQtMTMzIDgwLjEgNzguOS01NC4zIDU0LjF6bTE1NC44LTYyLjFMMzczLjIgNTY1LjJsNjguNi02Ny42IDE3MS40IDE2OC45LTY4LjYgNjcuNnpNNzEzLjEgNjU4TDQ1MC4zIDM5OS4xIDU5Ny42IDI1NGwyNjIuOCAyNTktMTQ3LjMgMTQ1eicpKTtcbmV4cG9ydHMuSG9tZU91dGxpbmUgPSBnZXRJY29uKCdob21lJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTk0Ni41IDUwNUw1NjAuMSAxMTguOGwtMjUuOS0yNS45YTMxLjUgMzEuNSAwIDAgMC00NC40IDBMNzcuNSA1MDVhNjMuOSA2My45IDAgMCAwLTE4LjggNDZjLjQgMzUuMiAyOS43IDYzLjMgNjQuOSA2My4zaDQyLjVWOTQwaDY5MS44VjYxNC4zaDQzLjRjMTcuMSAwIDMzLjItNi43IDQ1LjMtMTguOGE2My42IDYzLjYgMCAwIDAgMTguNy00NS4zYzAtMTctNi43LTMzLjEtMTguOC00NS4yek01NjggODY4SDQ1NlY2NjRoMTEydjIwNHptMjE3LjktMzI1LjdWODY4SDYzMlY2NDBjMC0yMi4xLTE3LjktNDAtNDAtNDBINDMyYy0yMi4xIDAtNDAgMTcuOS00MCA0MHYyMjhIMjM4LjFWNTQyLjNoLTk2bDM3MC0zNjkuNyAyMy4xIDIzLjFMODgyIDU0Mi4zaC05Ni4xeicpKTtcbmV4cG9ydHMuSG91cmdsYXNzT3V0bGluZSA9IGdldEljb24oJ2hvdXJnbGFzcycsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ003NDIgMzE4VjE4NGg4NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOEgxOTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoODZ2MTM0YzAgODEuNSA0Mi40IDE1My4yIDEwNi40IDE5NC02NCA0MC44LTEwNi40IDExMi41LTEwNi40IDE5NHYxMzRoLTg2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDYzMmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtODZWNzA2YzAtODEuNS00Mi40LTE1My4yLTEwNi40LTE5NCA2NC00MC44IDEwNi40LTExMi41IDEwNi40LTE5NHptLTcyIDM4OHYxMzRIMzU0VjcwNmMwLTQyLjIgMTYuNC04MS45IDQ2LjMtMTExLjdDNDMwLjEgNTY0LjQgNDY5LjggNTQ4IDUxMiA1NDhzODEuOSAxNi40IDExMS43IDQ2LjNDNjUzLjYgNjI0LjEgNjcwIDY2My44IDY3MCA3MDZ6bTAtMzg4YzAgNDIuMi0xNi40IDgxLjktNDYuMyAxMTEuN0M1OTMuOSA0NTkuNiA1NTQuMiA0NzYgNTEyIDQ3NnMtODEuOS0xNi40LTExMS43LTQ2LjNBMTU2LjYzIDE1Ni42MyAwIDAgMSAzNTQgMzE4VjE4NGgzMTZ2MTM0eicpKTtcbmV4cG9ydHMuSHRtbDVPdXRsaW5lID0gZ2V0SWNvbignaHRtbDUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMTQ1IDk2bDY2IDc0Ni42TDUxMS44IDkyOGwyOTkuNi04NS40TDg3OC43IDk2SDE0NXptNjEwLjkgNzAwLjZsLTI0NC4xIDY5LjYtMjQ1LjItNjkuNi01Ni43LTY0MS4yaDYwMy44bC01Ny44IDY0MS4yek0yODEgMjQ5bDEuNyAyNC4zIDIyLjcgMjUzLjVoMjA2LjV2LS4xaDExMi45bC0xMS40IDExOC41TDUxMSA2NzIuOXYuMmgtLjhsLTEwMi40LTI3LjctNi41LTczLjJoLTkxbDExLjMgMTQ0LjcgMTg4LjYgNTJoMS43di0uNGwxODcuNy01MS43IDEuNy0xNi4zIDIxLjItMjQyLjIgMy4yLTI0LjNINTExdi4ySDM4OS45bC04LjItOTQuMmgzNTIuMWwxLjctMTkuNSA0LjgtNDcuMkw3NDIgMjQ5SDUxMXonKSk7XG5leHBvcnRzLklkY2FyZE91dGxpbmUgPSBnZXRJY29uKCdpZGNhcmQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTI4IDE2MEg5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjQwYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDgzMmMxNy43IDAgMzItMTQuMyAzMi0zMlYxOTJjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA2MzJIMTM2VjIzMmg3NTJ2NTYwek02MTAuMyA0NzZoMTIzLjRjMS4zIDAgMi4zLTMuNiAyLjMtOHYtNDhjMC00LjQtMS04LTIuMy04SDYxMC4zYy0xLjMgMC0yLjMgMy42LTIuMyA4djQ4YzAgNC40IDEgOCAyLjMgOHptNC44IDE0NGgxODUuN2MzLjkgMCA3LjEtMy42IDcuMS04di00OGMwLTQuNC0zLjItOC03LjEtOEg2MTUuMWMtMy45IDAtNy4xIDMuNi03LjEgOHY0OGMwIDQuNCAzLjIgOCA3LjEgOHpNMjI0IDY3M2g0My45YzQuMiAwIDcuNi0zLjMgNy45LTcuNSAzLjgtNTAuNSA0Ni05MC41IDk3LjItOTAuNXM5My40IDQwIDk3LjIgOTAuNWMuMyA0LjIgMy43IDcuNSA3LjkgNy41SDUyMmE4IDggMCAwIDAgOC04LjRjLTIuOC01My4zLTMyLTk5LjctNzQuNi0xMjYuMWExMTEuOCAxMTEuOCAwIDAgMCAyOS4xLTc1LjVjMC02MS45LTQ5LjktMTEyLTExMS40LTExMnMtMTExLjQgNTAuMS0xMTEuNCAxMTJjMCAyOS4xIDExIDU1LjUgMjkuMSA3NS41YTE1OC4wOSAxNTguMDkgMCAwIDAtNzQuNiAxMjYuMWMtLjQgNC42IDMuMiA4LjQgNy44IDguNHptMTQ5LTI2MmMyOC41IDAgNTEuNyAyMy4zIDUxLjcgNTJzLTIzLjIgNTItNTEuNyA1Mi01MS43LTIzLjMtNTEuNy01MiAyMy4yLTUyIDUxLjctNTJ6JykpO1xuZXhwb3J0cy5JbmZvQ2lyY2xlT3V0bGluZSA9IGdldEljb24oJ2luZm8tY2lyY2xlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnonLCAnTTQ2NCAzMzZhNDggNDggMCAxIDAgOTYgMCA0OCA0OCAwIDEgMC05NiAwem03MiAxMTJoLTQ4Yy00LjQgMC04IDMuNi04IDh2MjcyYzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LThWNDU2YzAtNC40LTMuNi04LTgtOHonKSk7XG5leHBvcnRzLkluc3RhZ3JhbU91dGxpbmUgPSBnZXRJY29uKCdpbnN0YWdyYW0nLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDMwNi45Yy0xMTMuNSAwLTIwNS4xIDkxLjYtMjA1LjEgMjA1LjFTMzk4LjUgNzE3LjEgNTEyIDcxNy4xIDcxNy4xIDYyNS41IDcxNy4xIDUxMiA2MjUuNSAzMDYuOSA1MTIgMzA2Ljl6bTAgMzM4LjRjLTczLjQgMC0xMzMuMy01OS45LTEzMy4zLTEzMy4zUzQzOC42IDM3OC43IDUxMiAzNzguNyA2NDUuMyA0MzguNiA2NDUuMyA1MTIgNTg1LjQgNjQ1LjMgNTEyIDY0NS4zem0yMTMuNS0zOTQuNmMtMjYuNSAwLTQ3LjkgMjEuNC00Ny45IDQ3LjlzMjEuNCA0Ny45IDQ3LjkgNDcuOSA0Ny45LTIxLjMgNDcuOS00Ny45YTQ3Ljg0IDQ3Ljg0IDAgMCAwLTQ3LjktNDcuOXpNOTExLjggNTEyYzAtNTUuMi41LTEwOS45LTIuNi0xNjUtMy4xLTY0LTE3LjctMTIwLjgtNjQuNS0xNjcuNi00Ni45LTQ2LjktMTAzLjYtNjEuNC0xNjcuNi02NC41LTU1LjItMy4xLTEwOS45LTIuNi0xNjUtMi42LTU1LjIgMC0xMDkuOS0uNS0xNjUgMi42LTY0IDMuMS0xMjAuOCAxNy43LTE2Ny42IDY0LjVDMTMyLjYgMjI2LjMgMTE4LjEgMjgzIDExNSAzNDdjLTMuMSA1NS4yLTIuNiAxMDkuOS0yLjYgMTY1cy0uNSAxMDkuOSAyLjYgMTY1YzMuMSA2NCAxNy43IDEyMC44IDY0LjUgMTY3LjYgNDYuOSA0Ni45IDEwMy42IDYxLjQgMTY3LjYgNjQuNSA1NS4yIDMuMSAxMDkuOSAyLjYgMTY1IDIuNiA1NS4yIDAgMTA5LjkuNSAxNjUtMi42IDY0LTMuMSAxMjAuOC0xNy43IDE2Ny42LTY0LjUgNDYuOS00Ni45IDYxLjQtMTAzLjYgNjQuNS0xNjcuNiAzLjItNTUuMSAyLjYtMTA5LjggMi42LTE2NXptLTg4IDIzNS44Yy03LjMgMTguMi0xNi4xIDMxLjgtMzAuMiA0NS44LTE0LjEgMTQuMS0yNy42IDIyLjktNDUuOCAzMC4yQzY5NS4yIDg0NC43IDU3MC4zIDg0MCA1MTIgODQwYy01OC4zIDAtMTgzLjMgNC43LTIzNS45LTE2LjEtMTguMi03LjMtMzEuOC0xNi4xLTQ1LjgtMzAuMi0xNC4xLTE0LjEtMjIuOS0yNy42LTMwLjItNDUuOEMxNzkuMyA2OTUuMiAxODQgNTcwLjMgMTg0IDUxMmMwLTU4LjMtNC43LTE4My4zIDE2LjEtMjM1LjkgNy4zLTE4LjIgMTYuMS0zMS44IDMwLjItNDUuOHMyNy42LTIyLjkgNDUuOC0zMC4yQzMyOC43IDE3OS4zIDQ1My43IDE4NCA1MTIgMTg0czE4My4zLTQuNyAyMzUuOSAxNi4xYzE4LjIgNy4zIDMxLjggMTYuMSA0NS44IDMwLjIgMTQuMSAxNC4xIDIyLjkgMjcuNiAzMC4yIDQ1LjhDODQ0LjcgMzI4LjcgODQwIDQ1My43IDg0MCA1MTJjMCA1OC4zIDQuNyAxODMuMi0xNi4yIDIzNS44eicpKTtcbmV4cG9ydHMuSW5zdXJhbmNlT3V0bGluZSA9IGdldEljb24oJ2luc3VyYW5jZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ000NDEuNiAzMDYuOEw0MDMgMjg4LjZhNi4xIDYuMSAwIDAgMC04LjQgMy43Yy0xNy41IDU4LjUtNDUuMiAxMTAuMS04Mi4yIDE1My42YTYuMDUgNi4wNSAwIDAgMC0xLjIgNS42bDEzLjIgNDMuNWMxLjMgNC40IDcgNS43IDEwLjIgMi40IDcuNy04LjEgMTUuNC0xNi45IDIzLjEtMjZWNjU2YzAgNC40IDMuNiA4IDggOEg0MDNjNC40IDAgOC0zLjYgOC04VjM5My4xYTQyOS4yIDQyOS4yIDAgMCAwIDMzLjYtNzljMS0yLjktLjMtNi0zLTcuM3ptMjYuOCA5LjJ2MTI3LjJjMCA0LjQgMy42IDggOCA4aDY1Ljl2MTguNmgtOTQuOWMtNC40IDAtOCAzLjYtOCA4djM1LjZjMCA0LjQgMy42IDggOCA4aDU1LjFjLTE5LjEgMzAuOC00Mi40IDU1LjctNzEgNzZhNiA2IDAgMCAwLTEuNiA4LjFsMjIuOCAzNi41YzEuOSAzLjEgNi4yIDMuOCA4LjkgMS40IDMxLjYtMjYuOCA1OC43LTYyLjkgODAuNi0xMDcuNnYxMjBjMCA0LjQgMy42IDggOCA4aDM2LjJjNC40IDAgOC0zLjYgOC04VjUzNmMyMS4zIDQxLjcgNDcuNSA3Ny41IDc4LjEgMTA2LjkgMi42IDIuNSA2LjggMi4xIDguOS0uN2wyNi4zLTM1LjNjMi0yLjcgMS40LTYuNS0xLjItOC40LTMwLjUtMjIuNi01NC4yLTQ3LjgtNzIuMy03Ni45aDU5YzQuNCAwIDgtMy42IDgtOFY0NzhjMC00LjQtMy42LTgtOC04aC05OC44di0xOC42aDY2LjdjNC40IDAgOC0zLjYgOC04VjMxNmMwLTQuNC0zLjYtOC04LThINDc2LjRjLTQuNCAwLTggMy42LTggOHptNTEuNSA0Mi44aDk3Ljl2NDEuNmgtOTcuOXYtNDEuNnptMzQ3LTE4OC45TDUyNy4xIDU0LjFDNTIzIDUyLjcgNTE3LjUgNTIgNTEyIDUycy0xMSAuNy0xNS4xIDIuMUwxNTcuMSAxNjkuOWMtOC4zIDIuOC0xNS4xIDEyLjQtMTUuMSAyMS4ydjQ4Mi40YzAgOC44IDUuNyAyMC40IDEyLjYgMjUuOUw0OTkuMyA5NjhjMy41IDIuNyA4IDQuMSAxMi42IDQuMXM5LjItMS40IDEyLjYtNC4xbDM0NC43LTI2OC42YzYuOS01LjQgMTIuNi0xNyAxMi42LTI1LjlWMTkxLjFjLjItOC44LTYuNi0xOC4zLTE0LjktMjEuMnpNODEwIDY1NC4zTDUxMiA4ODYuNSAyMTQgNjU0LjNWMjI2LjdsMjk4LTEwMS42IDI5OCAxMDEuNnY0MjcuNnonKSk7XG5leHBvcnRzLkludGVyYWN0aW9uT3V0bGluZSA9IGdldEljb24oJ2ludGVyYWN0aW9uJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6TTMwNC44IDUyNGg1MC43YzMuNyAwIDYuOC0zIDYuOC02Ljh2LTc4LjljMC0xOS43IDE1LjktMzUuNiAzNS41LTM1LjZoMjA1Ljd2NTMuNGMwIDUuNyA2LjUgOC44IDEwLjkgNS4zbDEwOS4xLTg1LjdjMy41LTIuNyAzLjUtOCAwLTEwLjdsLTEwOS4xLTg1LjdjLTQuNC0zLjUtMTAuOS0uMy0xMC45IDUuM1YzMzhIMzk3LjdjLTU1LjEgMC05OS43IDQ0LjgtOTkuNyAxMDAuMVY1MTdjMCA0IDMgNyA2LjggN3ptLTQuMiAxMzQuOWwxMDkuMSA4NS43YzQuNCAzLjUgMTAuOS4zIDEwLjktNS4zdi01My40aDIwNS43YzU1LjEgMCA5OS43LTQ0LjggOTkuNy0xMDAuMXYtNzguOWMwLTMuNy0zLTYuOC02LjgtNi44aC01MC43Yy0zLjcgMC02LjggMy02LjggNi44djc4LjljMCAxOS43LTE1LjkgMzUuNi0zNS41IDM1LjZINDIwLjZWNTY4YzAtNS43LTYuNS04LjgtMTAuOS01LjNsLTEwOS4xIDg1LjdjLTMuNSAyLjUtMy41IDcuOCAwIDEwLjV6JykpO1xuZXhwb3J0cy5JbnRlcmF0aW9uT3V0bGluZSA9IGdldEljb24oJ2ludGVyYXRpb24nLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNzI4SDE4NFYxODRoNjU2djY1NnpNMzA0LjggNTI0aDUwLjdjMy43IDAgNi44LTMgNi44LTYuOHYtNzguOWMwLTE5LjcgMTUuOS0zNS42IDM1LjUtMzUuNmgyMDUuN3Y1My40YzAgNS43IDYuNSA4LjggMTAuOSA1LjNsMTA5LjEtODUuN2MzLjUtMi43IDMuNS04IDAtMTAuN2wtMTA5LjEtODUuN2MtNC40LTMuNS0xMC45LS4zLTEwLjkgNS4zVjMzOEgzOTcuN2MtNTUuMSAwLTk5LjcgNDQuOC05OS43IDEwMC4xVjUxN2MwIDQgMyA3IDYuOCA3em0tNC4yIDEzNC45bDEwOS4xIDg1LjdjNC40IDMuNSAxMC45LjMgMTAuOS01LjN2LTUzLjRoMjA1LjdjNTUuMSAwIDk5LjctNDQuOCA5OS43LTEwMC4xdi03OC45YzAtMy43LTMtNi44LTYuOC02LjhoLTUwLjdjLTMuNyAwLTYuOCAzLTYuOCA2Ljh2NzguOWMwIDE5LjctMTUuOSAzNS42LTM1LjUgMzUuNkg0MjAuNlY1NjhjMC01LjctNi41LTguOC0xMC45LTUuM2wtMTA5LjEgODUuN2MtMy41IDIuNS0zLjUgNy44IDAgMTAuNXonKSk7XG5leHBvcnRzLkxheW91dE91dGxpbmUgPSBnZXRJY29uKCdsYXlvdXQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNjk2IDcyaDEzNnY2NTZIMTg0VjE4NHptNjU2IDY1NkgzODRWMzg0aDQ1NnY0NTZ6TTM4NCAzMjBWMTg0aDQ1NnYxMzZIMzg0eicpKTtcbmV4cG9ydHMuTGVmdENpcmNsZU91dGxpbmUgPSBnZXRJY29uKCdsZWZ0LWNpcmNsZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ002MDMuMyAzMjcuNWwtMjQ2IDE3OGE3Ljk1IDcuOTUgMCAwIDAgMCAxMi45bDI0NiAxNzhjNS4zIDMuOCAxMi43IDAgMTIuNy02LjVWNjQzYzAtMTAuMi00LjktMTkuOS0xMy4yLTI1LjlMNDU3LjQgNTEybDE0NS40LTEwNS4yYzguMy02IDEzLjItMTUuNiAxMy4yLTI1LjlWMzM0YzAtNi41LTcuNC0xMC4zLTEyLjctNi41eicsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeicpKTtcbmV4cG9ydHMuTGVmdFNxdWFyZU91dGxpbmUgPSBnZXRJY29uKCdsZWZ0LXNxdWFyZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ00zNjUuMyA1MTguNWwyNDYgMTc4YzUuMyAzLjggMTIuNyAwIDEyLjctNi41di00Ni45YzAtMTAuMi00LjktMTkuOS0xMy4yLTI1LjlMNDY1LjQgNTEybDE0NS40LTEwNS4yYzguMy02IDEzLjItMTUuNiAxMy4yLTI1LjlWMzM0YzAtNi41LTcuNC0xMC4zLTEyLjctNi41bC0yNDYgMTc4YTguMDUgOC4wNSAwIDAgMCAwIDEzeicsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNzI4SDE4NFYxODRoNjU2djY1NnonKSk7XG5leHBvcnRzLkxpa2VPdXRsaW5lID0gZ2V0SWNvbignbGlrZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODUuOSA1MzMuN2MxNi44LTIyLjIgMjYuMS00OS40IDI2LjEtNzcuNyAwLTQ0LjktMjUuMS04Ny40LTY1LjUtMTExLjFhNjcuNjcgNjcuNjcgMCAwIDAtMzQuMy05LjNINTcyLjRsNi0xMjIuOWMxLjQtMjkuNy05LjEtNTcuOS0yOS41LTc5LjRBMTA2LjYyIDEwNi42MiAwIDAgMCA0NzEgOTkuOWMtNTIgMC05OCAzNS0xMTEuOCA4NS4xbC04NS45IDMxMUgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjM2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2MDEuM2M5LjIgMCAxOC4yLTEuOCAyNi41LTUuNCA0Ny42LTIwLjMgNzguMy02Ni44IDc4LjMtMTE4LjQgMC0xMi42LTEuOC0yNS01LjQtMzcgMTYuOC0yMi4yIDI2LjEtNDkuNCAyNi4xLTc3LjcgMC0xMi42LTEuOC0yNS01LjQtMzcgMTYuOC0yMi4yIDI2LjEtNDkuNCAyNi4xLTc3LjctLjItMTIuNi0yLTI1LjEtNS42LTM3LjF6TTE4NCA4NTJWNTY4aDgxdjI4NGgtODF6bTYzNi40LTM1M2wtMjEuOSAxOSAxMy45IDI1LjRhNTYuMiA1Ni4yIDAgMCAxIDYuOSAyNy4zYzAgMTYuNS03LjIgMzIuMi0xOS42IDQzbC0yMS45IDE5IDEzLjkgMjUuNGE1Ni4yIDU2LjIgMCAwIDEgNi45IDI3LjNjMCAxNi41LTcuMiAzMi4yLTE5LjYgNDNsLTIxLjkgMTkgMTMuOSAyNS40YTU2LjIgNTYuMiAwIDAgMSA2LjkgMjcuM2MwIDIyLjQtMTMuMiA0Mi42LTMzLjYgNTEuOEgzMjlWNTY0LjhsOTkuNS0zNjAuNWE0NC4xIDQ0LjEgMCAwIDEgNDIuMi0zMi4zYzcuNiAwIDE1LjEgMi4yIDIxLjEgNi43IDkuOSA3LjQgMTUuMiAxOC42IDE0LjYgMzAuNWwtOS42IDE5OC40aDMxNC40QzgyOSA0MTguNSA4NDAgNDM2LjkgODQwIDQ1NmMwIDE2LjUtNy4yIDMyLjEtMTkuNiA0M3onKSk7XG5leHBvcnRzLkxpbmtlZGluT3V0bGluZSA9IGdldEljb24oJ2xpbmtlZGluJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg0Ny43IDExMkgxNzYuM2MtMzUuNSAwLTY0LjMgMjguOC02NC4zIDY0LjN2NjcxLjRjMCAzNS41IDI4LjggNjQuMyA2NC4zIDY0LjNoNjcxLjRjMzUuNSAwIDY0LjMtMjguOCA2NC4zLTY0LjNWMTc2LjNjMC0zNS41LTI4LjgtNjQuMy02NC4zLTY0LjN6bTAgNzM2Yy00NDcuOC0uMS02NzEuNy0uMi02NzEuNy0uMy4xLTQ0Ny44LjItNjcxLjcuMy02NzEuNyA0NDcuOC4xIDY3MS43LjIgNjcxLjcuMy0uMSA0NDcuOC0uMiA2NzEuNy0uMyA2NzEuN3pNMjMwLjYgNDExLjloMTE4Ljd2MzgxLjhIMjMwLjZ6bTU5LjQtNTIuMmMzNy45IDAgNjguOC0zMC44IDY4LjgtNjguOGE2OC44IDY4LjggMCAxIDAtMTM3LjYgMGMtLjEgMzggMzAuNyA2OC44IDY4LjggNjguOHptMjUyLjMgMjQ1LjFjMC00OS44IDkuNS05OCA3MS4yLTk4IDYwLjggMCA2MS43IDU2LjkgNjEuNyAxMDEuMnYxODUuN2gxMTguNlY1ODQuM2MwLTEwMi44LTIyLjItMTgxLjktMTQyLjMtMTgxLjktNTcuNyAwLTk2LjQgMzEuNy0xMTIuMyA2MS43aC0xLjZ2LTUyLjJINDIzLjd2MzgxLjhoMTE4LjZWNjA0Ljh6JykpO1xuZXhwb3J0cy5Mb2NrT3V0bGluZSA9IGdldEljb24oJ2xvY2snLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODMyIDQ2NGgtNjhWMjQwYzAtNzAuNy01Ny4zLTEyOC0xMjgtMTI4SDM4OGMtNzAuNyAwLTEyOCA1Ny4zLTEyOCAxMjh2MjI0aC02OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2Mzg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlY0OTZjMC0xNy43LTE0LjMtMzItMzItMzJ6TTMzMiAyNDBjMC0zMC45IDI1LjEtNTYgNTYtNTZoMjQ4YzMwLjkgMCA1NiAyNS4xIDU2IDU2djIyNEgzMzJWMjQwem00NjAgNjAwSDIzMlY1MzZoNTYwdjMwNHpNNDg0IDcwMXY1M2MwIDQuNCAzLjYgOCA4IDhoNDBjNC40IDAgOC0zLjYgOC04di01M2E0OC4wMSA0OC4wMSAwIDEgMC01NiAweicpKTtcbmV4cG9ydHMuTWVkaWNpbmVCb3hPdXRsaW5lID0gZ2V0SWNvbignbWVkaWNpbmUtYm94Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTgzOS4yIDI3OC4xYTMyIDMyIDAgMCAwLTMwLjQtMjIuMUg3MzZWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMySDMyMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MTEyaC03Mi44YTMxLjkgMzEuOSAwIDAgMC0zMC40IDIyLjFMMTEyIDUwMnYzNzhjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjUwMmwtNzIuOC0yMjMuOXpNMzYwIDE4NGgzMDR2NzJIMzYwdi03MnptNDgwIDY1NkgxODRWNTEzLjRMMjQ0LjMgMzI4aDUzNS40TDg0MCA1MTMuNFY4NDB6TTY1MiA1NzJINTQ0VjQ2NGMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2MTA4SDM3MmMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgxMDh2MTA4YzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LThWNjM2aDEwOGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOHonKSk7XG5leHBvcnRzLk1laE91dGxpbmUgPSBnZXRJY29uKCdtZWgnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMjg4IDQyMWE0OCA0OCAwIDEgMCA5NiAwIDQ4IDQ4IDAgMSAwLTk2IDB6bTM1MiAwYTQ4IDQ4IDAgMSAwIDk2IDAgNDggNDggMCAxIDAtOTYgMHpNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTI2MyA3MTFjLTM0LjIgMzQuMi03NCA2MS0xMTguMyA3OS44QzYxMSA4NzQuMiA1NjIuMyA4ODQgNTEyIDg4NGMtNTAuMyAwLTk5LTkuOC0xNDQuOC0yOS4yQTM3MC40IDM3MC40IDAgMCAxIDI0OC45IDc3NWMtMzQuMi0zNC4yLTYxLTc0LTc5LjgtMTE4LjNDMTQ5LjggNjExIDE0MCA1NjIuMyAxNDAgNTEyczkuOC05OSAyOS4yLTE0NC44QTM3MC40IDM3MC40IDAgMCAxIDI0OSAyNDguOWMzNC4yLTM0LjIgNzQtNjEgMTE4LjMtNzkuOEM0MTMgMTQ5LjggNDYxLjcgMTQwIDUxMiAxNDBjNTAuMyAwIDk5IDkuOCAxNDQuOCAyOS4yQTM3MC40IDM3MC40IDAgMCAxIDc3NS4xIDI0OWMzNC4yIDM0LjIgNjEgNzQgNzkuOCAxMTguM0M4NzQuMiA0MTMgODg0IDQ2MS43IDg4NCA1MTJzLTkuOCA5OS0yOS4yIDE0NC44QTM2OC44OSAzNjguODkgMCAwIDEgNzc1IDc3NXpNNjY0IDU2NUgzNjBjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMzA0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04eicpKTtcbmV4cG9ydHMuTWFpbE91dGxpbmUgPSBnZXRJY29uKCdtYWlsJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkyOCAxNjBIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY0MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg4MzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgMTEwLjhWNzkySDEzNlYyNzAuOGwtMjcuNi0yMS41IDM5LjMtNTAuNSA0Mi44IDMzLjNoNjQzLjFsNDIuOC0zMy4zIDM5LjMgNTAuNS0yNy43IDIxLjV6TTgzMy42IDIzMkw1MTIgNDgyIDE5MC40IDIzMmwtNDIuOC0zMy4zLTM5LjMgNTAuNSAyNy42IDIxLjUgMzQxLjYgMjY1LjZhNTUuOTkgNTUuOTkgMCAwIDAgNjguNyAwTDg4OCAyNzAuOGwyNy42LTIxLjUtMzkuMy01MC41LTQyLjcgMzMuMnonKSk7XG5leHBvcnRzLk1lc3NhZ2VPdXRsaW5lID0gZ2V0SWNvbignbWVzc2FnZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ000NjQgNTEyYTQ4IDQ4IDAgMSAwIDk2IDAgNDggNDggMCAxIDAtOTYgMHptMjAwIDBhNDggNDggMCAxIDAgOTYgMCA0OCA0OCAwIDEgMC05NiAwem0tNDAwIDBhNDggNDggMCAxIDAgOTYgMCA0OCA0OCAwIDEgMC05NiAwem02NjEuMi0xNzMuNmMtMjIuNi01My43LTU1LTEwMS45LTk2LjMtMTQzLjNhNDQ0LjM1IDQ0NC4zNSAwIDAgMC0xNDMuMy05Ni4zQzYzMC42IDc1LjcgNTcyLjIgNjQgNTEyIDY0aC0yYy02MC42LjMtMTE5LjMgMTIuMy0xNzQuNSAzNS45YTQ0NS4zNSA0NDUuMzUgMCAwIDAtMTQyIDk2LjVjLTQwLjkgNDEuMy03MyA4OS4zLTk1LjIgMTQyLjgtMjMgNTUuNC0zNC42IDExNC4zLTM0LjMgMTc0LjlBNDQ5LjQgNDQ5LjQgMCAwIDAgMTEyIDcxNHYxNTJhNDYgNDYgMCAwIDAgNDYgNDZoMTUyLjFBNDQ5LjQgNDQ5LjQgMCAwIDAgNTEwIDk2MGgyLjFjNTkuOSAwIDExOC0xMS42IDE3Mi43LTM0LjNhNDQ0LjQ4IDQ0NC40OCAwIDAgMCAxNDIuOC05NS4yYzQxLjMtNDAuOSA3My44LTg4LjcgOTYuNS0xNDIgMjMuNi01NS4yIDM1LjYtMTEzLjkgMzUuOS0xNzQuNS4zLTYwLjktMTEuNS0xMjAtMzQuOC0xNzUuNnptLTE1MS4xIDQzOEM3MDQgODQ1LjggNjExIDg4NCA1MTIgODg0aC0xLjdjLTYwLjMtLjMtMTIwLjItMTUuMy0xNzMuMS00My41bC04LjQtNC41SDE4OFY2OTUuMmwtNC41LTguNEMxNTUuMyA2MzMuOSAxNDAuMyA1NzQgMTQwIDUxMy43Yy0uNC05OS43IDM3LjctMTkzLjMgMTA3LjYtMjYzLjggNjkuOC03MC41IDE2My4xLTEwOS41IDI2Mi44LTEwOS45aDEuN2M1MCAwIDk4LjUgOS43IDE0NC4yIDI4LjkgNDQuNiAxOC43IDg0LjYgNDUuNiAxMTkgODAgMzQuMyAzNC4zIDYxLjMgNzQuNCA4MCAxMTkgMTkuNCA0Ni4yIDI5LjEgOTUuMiAyOC45IDE0NS44LS42IDk5LjYtMzkuNyAxOTIuOS0xMTAuMSAyNjIuN3onKSk7XG5leHBvcnRzLk1pbnVzQ2lyY2xlT3V0bGluZSA9IGdldEljb24oJ21pbnVzLWNpcmNsZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ002OTYgNDgwSDMyOGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgzNjhjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6JywgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6JykpO1xuZXhwb3J0cy5NaW51c1NxdWFyZU91dGxpbmUgPSBnZXRJY29uKCdtaW51cy1zcXVhcmUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMzI4IDU0NGgzNjhjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThIMzI4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4eicsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNzI4SDE4NFYxODRoNjU2djY1NnonKSk7XG5leHBvcnRzLk1vYmlsZU91dGxpbmUgPSBnZXRJY29uKCdtb2JpbGUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNzQ0IDYySDI4MGMtMzUuMyAwLTY0IDI4LjctNjQgNjR2NzY4YzAgMzUuMyAyOC43IDY0IDY0IDY0aDQ2NGMzNS4zIDAgNjQtMjguNyA2NC02NFYxMjZjMC0zNS4zLTI4LjctNjQtNjQtNjR6bS04IDgyNEgyODhWMTM0aDQ0OHY3NTJ6TTQ3MiA3ODRhNDAgNDAgMCAxIDAgODAgMCA0MCA0MCAwIDEgMC04MCAweicpKTtcbmV4cG9ydHMuTW9uZXlDb2xsZWN0T3V0bGluZSA9IGdldEljb24oJ21vbmV5LWNvbGxlY3QnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTExLjUgNzAwLjdhOCA4IDAgMCAwLTEwLjMtNC44TDg0MCA3MTguMlYxODBjMC0zNy42LTMwLjQtNjgtNjgtNjhIMjUyYy0zNy42IDAtNjggMzAuNC02OCA2OHY1MzguMmwtNjEuMy0yMi4zYy0uOS0uMy0xLjgtLjUtMi43LS41LTQuNCAwLTggMy42LTggOFY3NjNjMCAzLjMgMi4xIDYuMyA1LjMgNy41TDUwMSA5MTAuMWM3LjEgMi42IDE0LjggMi42IDIxLjkgMGwzODMuOC0xMzkuNWMzLjItMS4yIDUuMy00LjIgNS4zLTcuNXYtNTkuNmMwLTEtLjItMS45LS41LTIuOHpNNTEyIDgzNy41bC0yNTYtOTMuMVYxODRoNTEydjU2MC40bC0yNTYgOTMuMXpNNjYwLjYgMzEyaC01NC41Yy0zIDAtNS44IDEuNy03LjEgNC40bC04NC43IDE2OC44SDUxMWwtODQuNy0xNjguOGE4IDggMCAwIDAtNy4xLTQuNGgtNTUuN2MtMS4zIDAtMi42LjMtMy44IDEtMy45IDIuMS01LjMgNy0zLjIgMTAuOGwxMDMuOSAxOTEuNmgtNTdjLTQuNCAwLTggMy42LTggOHYyNy4xYzAgNC40IDMuNiA4IDggOGg3NnYzOWgtNzZjLTQuNCAwLTggMy42LTggOHYyNy4xYzAgNC40IDMuNiA4IDggOGg3NlY3MDRjMCA0LjQgMy42IDggOCA4aDQ5LjljNC40IDAgOC0zLjYgOC04di02My41aDc2LjNjNC40IDAgOC0zLjYgOC04di0yNy4xYzAtNC40LTMuNi04LTgtOGgtNzYuM3YtMzloNzYuM2M0LjQgMCA4LTMuNiA4LTh2LTI3LjFjMC00LjQtMy42LTgtOC04SDU2NGwxMDMuNy0xOTEuNmMuNi0xLjIgMS0yLjUgMS0zLjgtLjEtNC4zLTMuNy03LjktOC4xLTcuOXonKSk7XG5leHBvcnRzLlBhdXNlQ2lyY2xlT3V0bGluZSA9IGdldEljb24oJ3BhdXNlLWNpcmNsZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6bS04OC01MzJoLTQ4Yy00LjQgMC04IDMuNi04IDh2MzA0YzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LThWMzYwYzAtNC40LTMuNi04LTgtOHptMjI0IDBoLTQ4Yy00LjQgMC04IDMuNi04IDh2MzA0YzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LThWMzYwYzAtNC40LTMuNi04LTgtOHonKSk7XG5leHBvcnRzLlBheUNpcmNsZU91dGxpbmUgPSBnZXRJY29uKCdwYXktY2lyY2xlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnptMTU5LjYtNTg1aC01OS41Yy0zIDAtNS44IDEuNy03LjEgNC40bC05MC42IDE4MEg1MTFsLTkwLjYtMTgwYTggOCAwIDAgMC03LjEtNC40aC02MC43Yy0xLjMgMC0yLjYuMy0zLjggMS0zLjkgMi4xLTUuMyA3LTMuMiAxMC45TDQ1NyA1MTUuN2gtNjEuNGMtNC40IDAtOCAzLjYtOCA4djI5LjljMCA0LjQgMy42IDggOCA4aDgxLjdWNjAzaC04MS43Yy00LjQgMC04IDMuNi04IDh2MjkuOWMwIDQuNCAzLjYgOCA4IDhoODEuN1Y3MTdjMCA0LjQgMy42IDggOCA4aDU0LjNjNC40IDAgOC0zLjYgOC04di02OC4xaDgyYzQuNCAwIDgtMy42IDgtOFY2MTFjMC00LjQtMy42LTgtOC04aC04MnYtNDEuNWg4MmM0LjQgMCA4LTMuNiA4LTh2LTI5LjljMC00LjQtMy42LTgtOC04aC02MmwxMTEuMS0yMDQuOGMuNi0xLjIgMS0yLjUgMS0zLjgtLjEtNC40LTMuNy04LTguMS04eicpKTtcbmV4cG9ydHMuTm90aWZpY2F0aW9uT3V0bGluZSA9IGdldEljb24oJ25vdGlmaWNhdGlvbicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMTEyYy0zLjggMC03LjcuNy0xMS42IDIuM0wyOTIgMzQ1LjlIMTI4Yy04LjggMC0xNiA3LjQtMTYgMTYuNnYyOTljMCA5LjIgNy4yIDE2LjYgMTYgMTYuNmgxMDEuN2MtMy43IDExLjYtNS43IDIzLjktNS43IDM2LjQgMCA2NS45IDUzLjggMTE5LjUgMTIwIDExOS41IDU1LjQgMCAxMDIuMS0zNy42IDExNS45LTg4LjRsNDA4LjYgMTY0LjJjMy45IDEuNSA3LjggMi4zIDExLjYgMi4zIDE2LjkgMCAzMi0xNC4yIDMyLTMzLjJWMTQ1LjJDOTEyIDEyNi4yIDg5NyAxMTIgODgwIDExMnpNMzQ0IDc2Mi4zYy0yNi41IDAtNDgtMjEuNC00OC00Ny44IDAtMTEuMiAzLjktMjEuOSAxMS0zMC40bDg0LjkgMzQuMWMtMiAyNC42LTIyLjcgNDQuMS00Ny45IDQ0LjF6bTQ5NiA1OC40TDMxOC44IDYxMS4zbC0xMi45LTUuMkgxODRWNDE3LjloMTIxLjlsMTIuOS01LjJMODQwIDIwMy4zdjYxNy40eicpKTtcbmV4cG9ydHMuUGhvbmVPdXRsaW5lID0gZ2V0SWNvbigncGhvbmUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODc3LjEgMjM4LjdMNzcwLjYgMTMyLjNjLTEzLTEzLTMwLjQtMjAuMy00OC44LTIwLjNzLTM1LjggNy4yLTQ4LjggMjAuM0w1NTguMyAyNDYuOGMtMTMgMTMtMjAuMyAzMC41LTIwLjMgNDguOSAwIDE4LjUgNy4yIDM1LjggMjAuMyA0OC45bDg5LjYgODkuN2E0MDUuNDYgNDA1LjQ2IDAgMCAxLTg2LjQgMTI3LjNjLTM2LjcgMzYuOS03OS42IDY2LTEyNy4yIDg2LjZsLTg5LjYtODkuN2MtMTMtMTMtMzAuNC0yMC4zLTQ4LjgtMjAuM2E2OC4yIDY4LjIgMCAwIDAtNDguOCAyMC4zTDEzMi4zIDY3M2MtMTMgMTMtMjAuMyAzMC41LTIwLjMgNDguOSAwIDE4LjUgNy4yIDM1LjggMjAuMyA0OC45bDEwNi40IDEwNi40YzIyLjIgMjIuMiA1Mi44IDM0LjkgODQuMiAzNC45IDYuNSAwIDEyLjgtLjUgMTkuMi0xLjYgMTMyLjQtMjEuOCAyNjMuOC05Mi4zIDM2OS45LTE5OC4zQzgxOCA2MDYgODg4LjQgNDc0LjYgOTEwLjQgMzQyLjFjNi4zLTM3LjYtNi4zLTc2LjMtMzMuMy0xMDMuNHptLTM3LjYgOTEuNWMtMTkuNSAxMTcuOS04Mi45IDIzNS41LTE3OC40IDMzMXMtMjEzIDE1OC45LTMzMC45IDE3OC40Yy0xNC44IDIuNS0zMC0yLjUtNDAuOC0xMy4yTDE4NC45IDcyMS45IDI5NS43IDYxMWwxMTkuOCAxMjAgLjkuOSAyMS42LThhNDgxLjI5IDQ4MS4yOSAwIDAgMCAyODUuNy0yODUuOGw4LTIxLjYtMTIwLjgtMTIwLjcgMTEwLjgtMTEwLjkgMTA0LjUgMTA0LjVjMTAuOCAxMC44IDE1LjggMjYgMTMuMyA0MC44eicpKTtcbmV4cG9ydHMuUGljdHVyZU91dGxpbmUgPSBnZXRJY29uKCdwaWN0dXJlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkyOCAxNjBIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY0MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg4MzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNjMySDEzNnYtMzkuOWwxMzguNS0xNjQuMyAxNTAuMSAxNzhMNjU4LjEgNDg5IDg4OCA3NjEuNlY3OTJ6bTAtMTI5LjhMNjY0LjIgMzk2LjhjLTMuMi0zLjgtOS0zLjgtMTIuMiAwTDQyNC42IDY2Ni40bC0xNDQtMTcwLjdjLTMuMi0zLjgtOS0zLjgtMTIuMiAwTDEzNiA2NTIuN1YyMzJoNzUydjQzMC4yek0zMDQgNDU2YTg4IDg4IDAgMSAwIDAtMTc2IDg4IDg4IDAgMCAwIDAgMTc2em0wLTExNmMxNS41IDAgMjggMTIuNSAyOCAyOHMtMTIuNSAyOC0yOCAyOC0yOC0xMi41LTI4LTI4IDEyLjUtMjggMjgtMjh6JykpO1xuZXhwb3J0cy5QaWVDaGFydE91dGxpbmUgPSBnZXRJY29uKCdwaWUtY2hhcnQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODY0IDUxOEg1MDZWMTYwYzAtNC40LTMuNi04LTgtOGgtMjZhMzk4LjQ2IDM5OC40NiAwIDAgMC0yODIuOCAxMTcuMSAzOTguMTkgMzk4LjE5IDAgMCAwLTg1LjcgMTI3LjFBMzk3LjYxIDM5Ny42MSAwIDAgMCA3MiA1NTJhMzk4LjQ2IDM5OC40NiAwIDAgMCAxMTcuMSAyODIuOGMzNi43IDM2LjcgNzkuNSA2NS42IDEyNy4xIDg1LjdBMzk3LjYxIDM5Ny42MSAwIDAgMCA0NzIgOTUyYTM5OC40NiAzOTguNDYgMCAwIDAgMjgyLjgtMTE3LjFjMzYuNy0zNi43IDY1LjYtNzkuNSA4NS43LTEyNy4xQTM5Ny42MSAzOTcuNjEgMCAwIDAgODcyIDU1MnYtMjZjMC00LjQtMy42LTgtOC04ek03MDUuNyA3ODcuOEEzMzEuNTkgMzMxLjU5IDAgMCAxIDQ3MC40IDg4NGMtODguMS0uNC0xNzAuOS0zNC45LTIzMy4yLTk3LjJDMTc0LjUgNzI0LjEgMTQwIDY0MC43IDE0MCA1NTJjMC04OC43IDM0LjUtMTcyLjEgOTcuMi0yMzQuOCA1NC42LTU0LjYgMTI0LjktODcuOSAyMDAuOC05NS41VjU4NmgzNjQuM2MtNy43IDc2LjMtNDEuMyAxNDctOTYuNiAyMDEuOHpNOTUyIDQ2Mi40bC0yLjYtMjguMmMtOC41LTkyLjEtNDkuNC0xNzktMTE1LjItMjQ0LjZBMzk5LjQgMzk5LjQgMCAwIDAgNTg5IDc0LjZMNTYwLjcgNzJjLTQuNy0uNC04LjcgMy4yLTguNyA3LjlWNDY0YzAgNC40IDMuNiA4IDggOGwzODQtMWM0LjcgMCA4LjQtNCA4LTguNnptLTMzMi4yLTU4LjJWMTQ3LjZhMzMyLjI0IDMzMi4yNCAwIDAgMSAxNjYuNCA4OS44YzQ1LjcgNDUuNiA3NyAxMDMuNiA5MCAxNjYuMWwtMjU2LjQuN3onKSk7XG5leHBvcnRzLlBsYXlTcXVhcmVPdXRsaW5lID0gZ2V0SWNvbigncGxheS1zcXVhcmUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNDQyLjMgNjc3LjZsMTk5LjQtMTU2LjdhMTEuMyAxMS4zIDAgMCAwIDAtMTcuN0w0NDIuMyAzNDYuNGMtNy40LTUuOC0xOC4zLS42LTE4LjMgOC44djMxMy41YzAgOS40IDEwLjkgMTQuNyAxOC4zIDguOXonLCAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6JykpO1xuZXhwb3J0cy5QbGF5Q2lyY2xlT3V0bGluZSA9IGdldEljb24oJ3BsYXktY2lyY2xlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnonLCAnTTcxOS40IDQ5OS4xbC0yOTYuMS0yMTVBMTUuOSAxNS45IDAgMCAwIDM5OCAyOTd2NDMwYzAgMTMuMSAxNC44IDIwLjUgMjUuMyAxMi45bDI5Ni4xLTIxNWExNS45IDE1LjkgMCAwIDAgMC0yNS44em0tMjU3LjYgMTM0VjM5MC45TDYyOC41IDUxMiA0NjEuOCA2MzMuMXonKSk7XG5leHBvcnRzLlBsdXNDaXJjbGVPdXRsaW5lID0gZ2V0SWNvbigncGx1cy1jaXJjbGUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNjk2IDQ4MEg1NDRWMzI4YzAtNC40LTMuNi04LTgtOGgtNDhjLTQuNCAwLTggMy42LTggOHYxNTJIMzI4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDE1MnYxNTJjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOFY1NDRoMTUyYzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04eicsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeicpKTtcbmV4cG9ydHMuUHJpbnRlck91dGxpbmUgPSBnZXRJY29uKCdwcmludGVyJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTgyMCA0MzZoLTQwYy00LjQgMC04IDMuNi04IDh2NDBjMCA0LjQgMy42IDggOCA4aDQwYzQuNCAwIDgtMy42IDgtOHYtNDBjMC00LjQtMy42LTgtOC04em0zMi0xMDRINzMyVjEyMGMwLTQuNC0zLjYtOC04LThIMzAwYy00LjQgMC04IDMuNi04IDh2MjEySDE3MmMtNDQuMiAwLTgwIDM1LjgtODAgODB2MzI4YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDE2OHYxMzJjMCA0LjQgMy42IDggOCA4aDQyNGM0LjQgMCA4LTMuNiA4LThWNzcyaDE2OGMxNy43IDAgMzItMTQuMyAzMi0zMlY0MTJjMC00NC4yLTM1LjgtODAtODAtODB6TTM2MCAxODBoMzA0djE1MkgzNjBWMTgwem0zMDQgNjY0SDM2MFY1NjhoMzA0djI3NnptMjAwLTE0MEg3MzJWNTAwSDI5MnYyMDRIMTYwVjQxMmMwLTYuNiA1LjQtMTIgMTItMTJoNjgwYzYuNiAwIDEyIDUuNCAxMiAxMnYyOTJ6JykpO1xuZXhwb3J0cy5QbHVzU3F1YXJlT3V0bGluZSA9IGdldEljb24oJ3BsdXMtc3F1YXJlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTMyOCA1NDRoMTUydjE1MmMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04VjU0NGgxNTJjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThINTQ0VjMyOGMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2MTUySDMyOGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOHonLCAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6JykpO1xuZXhwb3J0cy5Qcm9maWxlT3V0bGluZSA9IGdldEljb24oJ3Byb2ZpbGUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNzI4SDE4NFYxODRoNjU2djY1NnpNNDkyIDQwMGgxODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThINDkyYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4em0wIDE0NGgxODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThINDkyYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4em0wIDE0NGgxODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThINDkyYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4ek0zNDAgMzY4YTQwIDQwIDAgMSAwIDgwIDAgNDAgNDAgMCAxIDAtODAgMHptMCAxNDRhNDAgNDAgMCAxIDAgODAgMCA0MCA0MCAwIDEgMC04MCAwem0wIDE0NGE0MCA0MCAwIDEgMCA4MCAwIDQwIDQwIDAgMSAwLTgwIDB6JykpO1xuZXhwb3J0cy5Qcm9qZWN0T3V0bGluZSA9IGdldEljb24oJ3Byb2plY3QnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMjgwIDc1Mmg4MGM0LjQgMCA4LTMuNiA4LThWMjgwYzAtNC40LTMuNi04LTgtOGgtODBjLTQuNCAwLTggMy42LTggOHY0NjRjMCA0LjQgMy42IDggOCA4em0xOTItMjgwaDgwYzQuNCAwIDgtMy42IDgtOFYyODBjMC00LjQtMy42LTgtOC04aC04MGMtNC40IDAtOCAzLjYtOCA4djE4NGMwIDQuNCAzLjYgOCA4IDh6bTE5MiA3Mmg4MGM0LjQgMCA4LTMuNiA4LThWMjgwYzAtNC40LTMuNi04LTgtOGgtODBjLTQuNCAwLTggMy42LTggOHYyNTZjMCA0LjQgMy42IDggOCA4em0yMTYtNDMySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2eicpKTtcbmV4cG9ydHMuUHVzaHBpbk91dGxpbmUgPSBnZXRJY29uKCdwdXNocGluJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg3OC4zIDM5Mi4xTDYzMS45IDE0NS43Yy02LjUtNi41LTE1LTkuNy0yMy41LTkuN3MtMTcgMy4yLTIzLjUgOS43TDQyMy44IDMwNi45Yy0xMi4yLTEuNC0yNC41LTItMzYuOC0yLTczLjIgMC0xNDYuNCAyNC4xLTIwNi41IDcyLjNhMzMuMjMgMzMuMjMgMCAwIDAtMi43IDQ5LjRsMTgxLjcgMTgxLjctMjE1LjQgMjE1LjJhMTUuOCAxNS44IDAgMCAwLTQuNiA5LjhsLTMuNCAzNy4yYy0uOSA5LjQgNi42IDE3LjQgMTUuOSAxNy40LjUgMCAxIDAgMS41LS4xbDM3LjItMy40YzMuNy0uMyA3LjItMiA5LjgtNC42bDIxNS40LTIxNS40IDE4MS43IDE4MS43YzYuNSA2LjUgMTUgOS43IDIzLjUgOS43IDkuNyAwIDE5LjMtNC4yIDI1LjktMTIuNCA1Ni4zLTcwLjMgNzkuNy0xNTguMyA3MC4yLTI0My40bDE2MS4xLTE2MS4xYzEyLjktMTIuOCAxMi45LTMzLjggMC00Ni44ek02NjYuMiA1NDkuM2wtMjQuNSAyNC41IDMuOCAzNC40YTI1OS45MiAyNTkuOTIgMCAwIDEtMzAuNCAxNTMuOUwyNjIgNDA4LjhjMTIuOS03LjEgMjYuMy0xMy4xIDQwLjMtMTcuOSAyNy4yLTkuNCA1NS43LTE0LjEgODQuNy0xNC4xIDkuNiAwIDE5LjMuNSAyOC45IDEuNmwzNC40IDMuOCAyNC41LTI0LjVMNjA4LjUgMjI0IDgwMCA0MTUuNSA2NjYuMiA1NDkuM3onKSk7XG5leHBvcnRzLlByb3BlcnR5U2FmZXR5T3V0bGluZSA9IGdldEljb24oJ3Byb3BlcnR5LXNhZmV0eScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NjYuOSAxNjkuOUw1MjcuMSA1NC4xQzUyMyA1Mi43IDUxNy41IDUyIDUxMiA1MnMtMTEgLjctMTUuMSAyLjFMMTU3LjEgMTY5LjljLTguMyAyLjgtMTUuMSAxMi40LTE1LjEgMjEuMnY0ODIuNGMwIDguOCA1LjcgMjAuNCAxMi42IDI1LjlMNDk5LjMgOTY4YzMuNSAyLjcgOCA0LjEgMTIuNiA0LjFzOS4yLTEuNCAxMi42LTQuMWwzNDQuNy0yNjguNmM2LjktNS40IDEyLjYtMTcgMTIuNi0yNS45VjE5MS4xYy4yLTguOC02LjYtMTguMy0xNC45LTIxLjJ6TTgxMCA2NTQuM0w1MTIgODg2LjUgMjE0IDY1NC4zVjIyNi43bDI5OC0xMDEuNiAyOTggMTAxLjZ2NDI3LjZ6TTQzMC41IDMxOGgtNDZjLTEuNyAwLTMuMy40LTQuOCAxLjJhMTAuMSAxMC4xIDAgMCAwLTQgMTMuNmw4OCAxNjEuMWgtNDUuMmMtNS41IDAtMTAgNC41LTEwIDEwdjIxLjNjMCA1LjUgNC41IDEwIDEwIDEwaDYzLjF2MjkuN2gtNjMuMWMtNS41IDAtMTAgNC41LTEwIDEwdjIxLjNjMCA1LjUgNC41IDEwIDEwIDEwaDYzLjFWNjU4YzAgNS41IDQuNSAxMCAxMCAxMGg0MS4zYzUuNSAwIDEwLTQuNSAxMC0xMHYtNTEuOGg2My40YzUuNSAwIDEwLTQuNSAxMC0xMHYtMjEuM2MwLTUuNS00LjUtMTAtMTAtMTBoLTYzLjR2LTI5LjdoNjMuNGM1LjUgMCAxMC00LjUgMTAtMTB2LTIxLjNjMC01LjUtNC41LTEwLTEwLTEwaC00NS43bDg3LjctMTYxLjFhMTAuMDUgMTAuMDUgMCAwIDAtOC44LTE0LjhoLTQ1Yy0zLjggMC03LjIgMi4xLTguOSA1LjVsLTczLjIgMTQ0LjMtNzIuOS0xNDQuM2MtMS43LTMuNC01LjItNS41LTktNS41eicpKTtcbmV4cG9ydHMuUXVlc3Rpb25DaXJjbGVPdXRsaW5lID0gZ2V0SWNvbigncXVlc3Rpb24tY2lyY2xlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnonLCAnTTYyMy42IDMxNi43QzU5My42IDI5MC40IDU1NCAyNzYgNTEyIDI3NnMtODEuNiAxNC41LTExMS42IDQwLjdDMzY5LjIgMzQ0IDM1MiAzODAuNyAzNTIgNDIwdjcuNmMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04VjQyMGMwLTQ0LjEgNDMuMS04MCA5Ni04MHM5NiAzNS45IDk2IDgwYzAgMzEuMS0yMiA1OS42LTU2LjEgNzIuNy0yMS4yIDguMS0zOS4yIDIyLjMtNTIuMSA0MC45LTEzLjEgMTktMTkuOSA0MS44LTE5LjkgNjQuOVY2MjBjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOHYtMjIuN2E0OC4zIDQ4LjMgMCAwIDEgMzAuOS00NC44YzU5LTIyLjcgOTcuMS03NC43IDk3LjEtMTMyLjUuMS0zOS4zLTE3LjEtNzYtNDguMy0xMDMuM3pNNDcyIDczMmE0MCA0MCAwIDEgMCA4MCAwIDQwIDQwIDAgMSAwLTgwIDB6JykpO1xuZXhwb3J0cy5SZWFkT3V0bGluZSA9IGdldEljb24oJ3JlYWQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTI4IDE2MUg2OTkuMmMtNDkuMSAwLTk3LjEgMTQuMS0xMzguNCA0MC43TDUxMiAyMzNsLTQ4LjgtMzEuM0EyNTUuMiAyNTUuMiAwIDAgMCAzMjQuOCAxNjFIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjU2OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmgyMjguOGM0OS4xIDAgOTcuMSAxNC4xIDEzOC40IDQwLjdsNDQuNCAyOC42YzEuMy44IDIuOCAxLjMgNC4zIDEuM3MzLS40IDQuMy0xLjNsNDQuNC0yOC42QzYwMiA4MDcuMSA2NTAuMSA3OTMgNjk5LjIgNzkzSDkyOGMxNy43IDAgMzItMTQuMyAzMi0zMlYxOTNjMC0xNy43LTE0LjMtMzItMzItMzJ6TTMyNC44IDcyMUgxMzZWMjMzaDE4OC44YzM1LjQgMCA2OS44IDEwLjEgOTkuNSAyOS4ybDQ4LjggMzEuMyA2LjkgNC41djQ2MmMtNDcuNi0yNS42LTEwMC44LTM5LTE1NS4yLTM5em01NjMuMiAwSDY5OS4yYy01NC40IDAtMTA3LjYgMTMuNC0xNTUuMiAzOVYyOThsNi45LTQuNSA0OC44LTMxLjNjMjkuNy0xOS4xIDY0LjEtMjkuMiA5OS41LTI5LjJIODg4djQ4OHpNMzk2LjkgMzYxSDIxMS4xYy0zLjkgMC03LjEgMy40LTcuMSA3LjV2NDVjMCA0LjEgMy4yIDcuNSA3LjEgNy41aDE4NS43YzMuOSAwIDcuMS0zLjQgNy4xLTcuNXYtNDVjLjEtNC4xLTMuMS03LjUtNy03LjV6bTIyMy4xIDcuNXY0NWMwIDQuMSAzLjIgNy41IDcuMSA3LjVoMTg1LjdjMy45IDAgNy4xLTMuNCA3LjEtNy41di00NWMwLTQuMS0zLjItNy41LTcuMS03LjVINjI3LjFjLTMuOSAwLTcuMSAzLjQtNy4xIDcuNXpNMzk2LjkgNTAxSDIxMS4xYy0zLjkgMC03LjEgMy40LTcuMSA3LjV2NDVjMCA0LjEgMy4yIDcuNSA3LjEgNy41aDE4NS43YzMuOSAwIDcuMS0zLjQgNy4xLTcuNXYtNDVjLjEtNC4xLTMuMS03LjUtNy03LjV6bTQxNiAwSDYyNy4xYy0zLjkgMC03LjEgMy40LTcuMSA3LjV2NDVjMCA0LjEgMy4yIDcuNSA3LjEgNy41aDE4NS43YzMuOSAwIDcuMS0zLjQgNy4xLTcuNXYtNDVjLjEtNC4xLTMuMS03LjUtNy03LjV6JykpO1xuZXhwb3J0cy5SZWNvbmNpbGlhdGlvbk91dGxpbmUgPSBnZXRJY29uKCdyZWNvbmNpbGlhdGlvbicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ002NzYgNTY1Yy01MC44IDAtOTIgNDEuMi05MiA5MnM0MS4yIDkyIDkyIDkyIDkyLTQxLjIgOTItOTItNDEuMi05Mi05Mi05MnptMCAxMjZjLTE4LjggMC0zNC0xNS4yLTM0LTM0czE1LjItMzQgMzQtMzQgMzQgMTUuMiAzNCAzNC0xNS4yIDM0LTM0IDM0em0yMDQtNTIzSDY2OGMwLTMwLjktMjUuMS01Ni01Ni01NmgtODBjLTMwLjkgMC01NiAyNS4xLTU2IDU2SDI2NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MjAwaC04OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDMzNmMxNy43IDAgMzItMTQuMyAzMi0zMnYtMTZoMzY4YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjIwMGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQxMiA2NGg3MnYtNTZoNjR2NTZoNzJ2NDhINDY4di00OHptLTIwIDYxNkgxNzZWNjE2aDI3MnYyMzJ6bTAtMjk2SDE3NnYtODhoMjcydjg4em0zOTIgMjQwSDUxMlY0MzJjMC0xNy43LTE0LjMtMzItMzItMzJIMzA0VjI0MGgxMDB2MTA0aDMzNlYyNDBoMTAwdjU1MnpNNzA0IDQwOHY5NmMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04di05NmMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh6TTU5MiA1MTJoNDhjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4eicpKTtcbmV4cG9ydHMuUmVkRW52ZWxvcGVPdXRsaW5lID0gZ2V0SWNvbigncmVkLWVudmVsb3BlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTQ0MC42IDQ2Mi42YTguMzggOC4zOCAwIDAgMC03LjUtNC42aC00OC44Yy0xLjMgMC0yLjYuNC0zLjkgMWE4LjQgOC40IDAgMCAwLTMuNCAxMS40bDg3LjQgMTYxLjFINDE5Yy00LjYgMC04LjQgMy44LTguNCA4LjRWNjY1YzAgNC42IDMuOCA4LjQgOC40IDguNGg2M1Y3MDJoLTYzYy00LjYgMC04LjQgMy44LTguNCA4LjR2MjUuMWMwIDQuNiAzLjggOC40IDguNCA4LjRoNjN2NDkuOWMwIDQuNiAzLjggOC40IDguNCA4LjRoNDMuN2M0LjYgMCA4LjQtMy44IDguNC04LjR2LTQ5LjloNjMuM2M0LjcgMCA4LjQtMy44IDguMi04LjV2LTI1YzAtNC42LTMuOC04LjQtOC40LTguNGgtNjMuM3YtMjguNmg2My4zYzQuNiAwIDguNC0zLjggOC40LTguNHYtMjUuMWMwLTQuNi0zLjgtOC40LTguNC04LjRoLTQ1LjlsODcuMi0xNjFhOC40NSA4LjQ1IDAgMCAwLTcuNC0xMi40aC00Ny44Yy0zLjEgMC02IDEuOC03LjUgNC42bC03MS45IDE0MS45LTcxLjctMTQyek04MzIgNjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgODI0SDIzMlYxOTMuMWwyNjAuMyAyMDQuMWMxMS42IDkuMSAyNy45IDkuMSAzOS41IDBMNzkyIDE5My4xVjg4OHptMC03NTEuM2gtMzEuN0w1MTIgMzMxLjMgMjYzLjcgMTM2LjdIMjMydi0uN2g1NjB2Ljd6JykpO1xuZXhwb3J0cy5SZXN0T3V0bGluZSA9IGdldEljb24oJ3Jlc3QnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTA4IDcwNGM3OS41IDAgMTQ0LTY0LjUgMTQ0LTE0NHMtNjQuNS0xNDQtMTQ0LTE0NC0xNDQgNjQuNS0xNDQgMTQ0IDY0LjUgMTQ0IDE0NCAxNDR6bTAtMjI0YzQ0LjIgMCA4MCAzNS44IDgwIDgwcy0zNS44IDgwLTgwIDgwLTgwLTM1LjgtODAtODAgMzUuOC04MCA4MC04MHonLCAnTTgzMiAyNTZoLTI4LjFsLTM1LjctMTIwLjljLTQtMTMuNy0xNi41LTIzLjEtMzAuNy0yMy4xaC00NTFjLTE0LjMgMC0yNi44IDkuNC0zMC43IDIzLjFMMjIwLjEgMjU2SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MjhjMCA0LjQgMy42IDggOCA4aDQ1LjhsNDcuNyA1NTguN2EzMiAzMiAwIDAgMCAzMS45IDI5LjNoNDI5LjJhMzIgMzIgMCAwIDAgMzEuOS0yOS4zTDgwMi4yIDMyNEg4NTZjNC40IDAgOC0zLjYgOC04di0yOGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTUxOC42LTc2aDM5Ny4ybDIyLjQgNzZIMjkxbDIyLjQtNzZ6bTM3Ni4yIDY2NEgzMjYuNEwyODIgMzI0aDQ1MS45bC00NC4zIDUyMHonKSk7XG5leHBvcnRzLlJpZ2h0Q2lyY2xlT3V0bGluZSA9IGdldEljb24oJ3JpZ2h0LWNpcmNsZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ002NjYuNyA1MDUuNWwtMjQ2LTE3OEE4IDggMCAwIDAgNDA4IDMzNHY0Ni45YzAgMTAuMiA0LjkgMTkuOSAxMy4yIDI1LjlMNTY2LjYgNTEyIDQyMS4yIDYxNy4yYy04LjMgNi0xMy4yIDE1LjYtMTMuMiAyNS45VjY5MGMwIDYuNSA3LjQgMTAuMyAxMi43IDYuNWwyNDYtMTc4YzQuNC0zLjIgNC40LTkuOCAwLTEzeicsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeicpKTtcbmV4cG9ydHMuUm9ja2V0T3V0bGluZSA9IGdldEljb24oJ3JvY2tldCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NjQgNzM2YzAtMTExLjYtNjUuNC0yMDgtMTYwLTI1Mi45VjMxNy4zYzAtMTUuMS01LjMtMjkuNy0xNS4xLTQxLjJMNTM2LjUgOTUuNEM1MzAuMSA4Ny44IDUyMSA4NCA1MTIgODRzLTE4LjEgMy44LTI0LjUgMTEuNEwzMzUuMSAyNzYuMWE2My45NyA2My45NyAwIDAgMC0xNS4xIDQxLjJ2MTY1LjhDMjI1LjQgNTI4IDE2MCA2MjQuNCAxNjAgNzM2aDE1Ni41Yy0yLjMgNy4yLTMuNSAxNS0zLjUgMjMuOCAwIDIyLjEgNy42IDQzLjcgMjEuNCA2MC44YTk3LjIgOTcuMiAwIDAgMCA0My4xIDMwLjZjMjMuMSA1NCA3NS42IDg4LjggMTM0LjUgODguOCAyOS4xIDAgNTcuMy04LjYgODEuNC0yNC44IDIzLjYtMTUuOCA0MS45LTM3LjkgNTMtNjRhOTcgOTcgMCAwIDAgNDMuMS0zMC41IDk3LjUyIDk3LjUyIDAgMCAwIDIxLjQtNjAuOGMwLTguNC0xLjEtMTYuNC0zLjEtMjMuOEg4NjR6TTc2Mi4zIDYyMS40YzkuNCAxNC42IDE3IDMwLjMgMjIuNSA0Ni42SDcwMFY1NTguN2EyMTEuNiAyMTEuNiAwIDAgMSA2Mi4zIDYyLjd6TTM4OCA0ODMuMVYzMTguOGwxMjQtMTQ3IDEyNCAxNDdWNjY4SDM4OFY0ODMuMXpNMjM5LjIgNjY4YzUuNS0xNi4zIDEzLjEtMzIgMjIuNS00Ni42IDE2LjMtMjUuMiAzNy41LTQ2LjUgNjIuMy02Mi43VjY2OGgtODQuOHptMzg4LjkgMTE2LjJjLTUuMiAzLTExLjIgNC4yLTE3LjEgMy40bC0xOS41LTIuNC0yLjggMTkuNGMtNS40IDM3LjktMzguNCA2Ni41LTc2LjcgNjYuNS0zOC4zIDAtNzEuMy0yOC42LTc2LjctNjYuNWwtMi44LTE5LjUtMTkuNSAyLjVhMjcuNyAyNy43IDAgMCAxLTE3LjEtMy41Yy04LjctNS0xNC4xLTE0LjMtMTQuMS0yNC40IDAtMTAuNiA1LjktMTkuNCAxNC42LTIzLjhoMjMxLjNjOC44IDQuNSAxNC42IDEzLjMgMTQuNiAyMy44LS4xIDEwLjItNS41IDE5LjYtMTQuMiAyNC41ek00NjQgNDAwYTQ4IDQ4IDAgMSAwIDk2IDAgNDggNDggMCAxIDAtOTYgMHonKSk7XG5leHBvcnRzLlJpZ2h0U3F1YXJlT3V0bGluZSA9IGdldEljb24oJ3JpZ2h0LXNxdWFyZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ000MTIuNyA2OTYuNWwyNDYtMTc4YzQuNC0zLjIgNC40LTkuNyAwLTEyLjlsLTI0Ni0xNzhjLTUuMy0zLjgtMTIuNyAwLTEyLjcgNi41VjM4MWMwIDEwLjIgNC45IDE5LjkgMTMuMiAyNS45TDU1OC42IDUxMiA0MTMuMiA2MTcuMmMtOC4zIDYtMTMuMiAxNS42LTEzLjIgMjUuOVY2OTBjMCA2LjUgNy40IDEwLjMgMTIuNyA2LjV6JywgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2eicpKTtcbmV4cG9ydHMuU2FmZXR5Q2VydGlmaWNhdGVPdXRsaW5lID0gZ2V0SWNvbignc2FmZXR5LWNlcnRpZmljYXRlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg2Ni45IDE2OS45TDUyNy4xIDU0LjFDNTIzIDUyLjcgNTE3LjUgNTIgNTEyIDUycy0xMSAuNy0xNS4xIDIuMUwxNTcuMSAxNjkuOWMtOC4zIDIuOC0xNS4xIDEyLjQtMTUuMSAyMS4ydjQ4Mi40YzAgOC44IDUuNyAyMC40IDEyLjYgMjUuOUw0OTkuMyA5NjhjMy41IDIuNyA4IDQuMSAxMi42IDQuMXM5LjItMS40IDEyLjYtNC4xbDM0NC43LTI2OC42YzYuOS01LjQgMTIuNi0xNyAxMi42LTI1LjlWMTkxLjFjLjItOC44LTYuNi0xOC4zLTE0LjktMjEuMnpNODEwIDY1NC4zTDUxMiA4ODYuNSAyMTQgNjU0LjNWMjI2LjdsMjk4LTEwMS42IDI5OCAxMDEuNnY0MjcuNnptLTQwNS44LTIwMWMtMy00LjEtNy44LTYuNi0xMy02LjZIMzM2Yy02LjUgMC0xMC4zIDcuNC02LjUgMTIuN2wxMjYuNCAxNzRhMTYuMSAxNi4xIDAgMCAwIDI2IDBsMjEyLjYtMjkyLjdjMy44LTUuMyAwLTEyLjctNi41LTEyLjdoLTU1LjJjLTUuMSAwLTEwIDIuNS0xMyA2LjZMNDY4LjkgNTQyLjRsLTY0LjctODkuMXonKSk7XG5leHBvcnRzLlNjaGVkdWxlT3V0bGluZSA9IGdldEljb24oJ3NjaGVkdWxlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkyOCAyMjRINzY4di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZINTQ4di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZIMzI4di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjU3NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg4MzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjU2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNTY4SDEzNlYyOTZoMTIwdjU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2aDE0OHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmgxNDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZoMTIwdjQ5NnpNNDE2IDQ5NkgyMzJjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMTg0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04em0wIDEzNkgyMzJjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMTg0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04em0zMDguMi0xNzcuNEw2MjAuNiA1OTguM2wtNTIuOC03My4xYy0zLTQuMi03LjgtNi42LTEyLjktNi42SDUwMGMtNi41IDAtMTAuMyA3LjQtNi41IDEyLjdsMTE0LjEgMTU4LjJhMTUuOSAxNS45IDAgMCAwIDI1LjggMGwxNjUtMjI4LjdjMy44LTUuMyAwLTEyLjctNi41LTEyLjdINzM3Yy01LS4xLTkuOCAyLjQtMTIuOCA2LjV6JykpO1xuZXhwb3J0cy5TYXZlT3V0bGluZSA9IGdldEljb24oJ3NhdmUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODkzLjMgMjkzLjNMNzMwLjcgMTMwLjdjLTcuNS03LjUtMTYuNy0xMy0yNi43LTE2VjExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzM4LjVjMC0xNy02LjctMzMuMi0xOC43LTQ1LjJ6TTM4NCAxODRoMjU2djEwNEgzODRWMTg0em00NTYgNjU2SDE4NFYxODRoMTM2djEzNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmgzMjBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjA1LjhsMTM2IDEzNlY4NDB6TTUxMiA0NDJjLTc5LjUgMC0xNDQgNjQuNS0xNDQgMTQ0czY0LjUgMTQ0IDE0NCAxNDQgMTQ0LTY0LjUgMTQ0LTE0NC02NC41LTE0NC0xNDQtMTQ0em0wIDIyNGMtNDQuMiAwLTgwLTM1LjgtODAtODBzMzUuOC04MCA4MC04MCA4MCAzNS44IDgwIDgwLTM1LjggODAtODAgODB6JykpO1xuZXhwb3J0cy5TZWN1cml0eVNjYW5PdXRsaW5lID0gZ2V0SWNvbignc2VjdXJpdHktc2NhbicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NjYuOSAxNjkuOUw1MjcuMSA1NC4xQzUyMyA1Mi43IDUxNy41IDUyIDUxMiA1MnMtMTEgLjctMTUuMSAyLjFMMTU3LjEgMTY5LjljLTguMyAyLjgtMTUuMSAxMi40LTE1LjEgMjEuMnY0ODIuNGMwIDguOCA1LjcgMjAuNCAxMi42IDI1LjlMNDk5LjMgOTY4YzMuNSAyLjcgOCA0LjEgMTIuNiA0LjFzOS4yLTEuNCAxMi42LTQuMWwzNDQuNy0yNjguNmM2LjktNS40IDEyLjYtMTcgMTIuNi0yNS45VjE5MS4xYy4yLTguOC02LjYtMTguMy0xNC45LTIxLjJ6TTgxMCA2NTQuM0w1MTIgODg2LjUgMjE0IDY1NC4zVjIyNi43bDI5OC0xMDEuNiAyOTggMTAxLjZ2NDI3LjZ6TTQwMi45IDUyOC44bC03Ny41IDc3LjVhOC4wMyA4LjAzIDAgMCAwIDAgMTEuM2wzNCAzNGMzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDc3LjUtNzcuNWM1NS43IDM1LjEgMTMwLjEgMjguNCAxNzguNi0yMC4xIDU2LjMtNTYuMyA1Ni4zLTE0Ny41IDAtMjAzLjgtNTYuMy01Ni4zLTE0Ny41LTU2LjMtMjAzLjggMC00OC41IDQ4LjUtNTUuMiAxMjMtMjAuMSAxNzguNnptNjUuNC0xMzMuM2MzMS4zLTMxLjMgODItMzEuMyAxMTMuMiAwIDMxLjMgMzEuMyAzMS4zIDgyIDAgMTEzLjItMzEuMyAzMS4zLTgyIDMxLjMtMTEzLjIgMHMtMzEuMy04MS45IDAtMTEzLjJ6JykpO1xuZXhwb3J0cy5TZXR0aW5nT3V0bGluZSA9IGdldEljb24oJ3NldHRpbmcnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTI0LjggNjI1LjdsLTY1LjUtNTZjMy4xLTE5IDQuNy0zOC40IDQuNy01Ny44cy0xLjYtMzguOC00LjctNTcuOGw2NS41LTU2YTMyLjAzIDMyLjAzIDAgMCAwIDkuMy0zNS4ybC0uOS0yLjZhNDQzLjc0IDQ0My43NCAwIDAgMC03OS43LTEzNy45bC0xLjgtMi4xYTMyLjEyIDMyLjEyIDAgMCAwLTM1LjEtOS41bC04MS4zIDI4LjljLTMwLTI0LjYtNjMuNS00NC05OS43LTU3LjZsLTE1LjctODVhMzIuMDUgMzIuMDUgMCAwIDAtMjUuOC0yNS43bC0yLjctLjVjLTUyLjEtOS40LTEwNi45LTkuNC0xNTkgMGwtMi43LjVhMzIuMDUgMzIuMDUgMCAwIDAtMjUuOCAyNS43bC0xNS44IDg1LjRhMzUxLjg2IDM1MS44NiAwIDAgMC05OSA1Ny40bC04MS45LTI5LjFhMzIgMzIgMCAwIDAtMzUuMSA5LjVsLTEuOCAyLjFhNDQ2LjAyIDQ0Ni4wMiAwIDAgMC03OS43IDEzNy45bC0uOSAyLjZjLTQuNSAxMi41LS44IDI2LjUgOS4zIDM1LjJsNjYuMyA1Ni42Yy0zLjEgMTguOC00LjYgMzgtNC42IDU3LjEgMCAxOS4yIDEuNSAzOC40IDQuNiA1Ny4xTDk5IDYyNS41YTMyLjAzIDMyLjAzIDAgMCAwLTkuMyAzNS4ybC45IDIuNmMxOC4xIDUwLjQgNDQuOSA5Ni45IDc5LjcgMTM3LjlsMS44IDIuMWEzMi4xMiAzMi4xMiAwIDAgMCAzNS4xIDkuNWw4MS45LTI5LjFjMjkuOCAyNC41IDYzLjEgNDMuOSA5OSA1Ny40bDE1LjggODUuNGEzMi4wNSAzMi4wNSAwIDAgMCAyNS44IDI1LjdsMi43LjVhNDQ5LjQgNDQ5LjQgMCAwIDAgMTU5IDBsMi43LS41YTMyLjA1IDMyLjA1IDAgMCAwIDI1LjgtMjUuN2wxNS43LTg1YTM1MCAzNTAgMCAwIDAgOTkuNy01Ny42bDgxLjMgMjguOWEzMiAzMiAwIDAgMCAzNS4xLTkuNWwxLjgtMi4xYzM0LjgtNDEuMSA2MS42LTg3LjUgNzkuNy0xMzcuOWwuOS0yLjZjNC41LTEyLjMuOC0yNi4zLTkuMy0zNXpNNzg4LjMgNDY1LjljMi41IDE1LjEgMy44IDMwLjYgMy44IDQ2LjFzLTEuMyAzMS0zLjggNDYuMWwtNi42IDQwLjEgNzQuNyA2My45YTM3MC4wMyAzNzAuMDMgMCAwIDEtNDIuNiA3My42TDcyMSA3MDIuOGwtMzEuNCAyNS44Yy0yMy45IDE5LjYtNTAuNSAzNS03OS4zIDQ1LjhsLTM4LjEgMTQuMy0xNy45IDk3YTM3Ny41IDM3Ny41IDAgMCAxLTg1IDBsLTE3LjktOTcuMi0zNy44LTE0LjVjLTI4LjUtMTAuOC01NS0yNi4yLTc4LjctNDUuN2wtMzEuNC0yNS45LTkzLjQgMzMuMmMtMTctMjIuOS0zMS4yLTQ3LjYtNDIuNi03My42bDc1LjUtNjQuNS02LjUtNDBjLTIuNC0xNC45LTMuNy0zMC4zLTMuNy00NS41IDAtMTUuMyAxLjItMzAuNiAzLjctNDUuNWw2LjUtNDAtNzUuNS02NC41YzExLjMtMjYuMSAyNS42LTUwLjcgNDIuNi03My42bDkzLjQgMzMuMiAzMS40LTI1LjljMjMuNy0xOS41IDUwLjItMzQuOSA3OC43LTQ1LjdsMzcuOS0xNC4zIDE3LjktOTcuMmMyOC4xLTMuMiA1Ni44LTMuMiA4NSAwbDE3LjkgOTcgMzguMSAxNC4zYzI4LjcgMTAuOCA1NS40IDI2LjIgNzkuMyA0NS44bDMxLjQgMjUuOCA5Mi44LTMyLjljMTcgMjIuOSAzMS4yIDQ3LjYgNDIuNiA3My42TDc4MS44IDQyNmw2LjUgMzkuOXpNNTEyIDMyNmMtOTcuMiAwLTE3NiA3OC44LTE3NiAxNzZzNzguOCAxNzYgMTc2IDE3NiAxNzYtNzguOCAxNzYtMTc2LTc4LjgtMTc2LTE3Ni0xNzZ6bTc5LjIgMjU1LjJBMTExLjYgMTExLjYgMCAwIDEgNTEyIDYxNGMtMjkuOSAwLTU4LTExLjctNzkuMi0zMi44QTExMS42IDExMS42IDAgMCAxIDQwMCA1MDJjMC0yOS45IDExLjctNTggMzIuOC03OS4yQzQ1NCA0MDEuNiA0ODIuMSAzOTAgNTEyIDM5MGMyOS45IDAgNTggMTEuNiA3OS4yIDMyLjhBMTExLjYgMTExLjYgMCAwIDEgNjI0IDUwMmMwIDI5LjktMTEuNyA1OC0zMi44IDc5LjJ6JykpO1xuZXhwb3J0cy5TaG9wcGluZ091dGxpbmUgPSBnZXRJY29uKCdzaG9wcGluZycsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004MzIgMzEySDY5NnYtMTZjMC0xMDEuNi04Mi40LTE4NC0xODQtMTg0cy0xODQgODIuNC0xODQgMTg0djE2SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NTM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlYzNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MzItMTZjMC02MS45IDUwLjEtMTEyIDExMi0xMTJzMTEyIDUwLjEgMTEyIDExMnYxNkg0MDB2LTE2em0zOTIgNTQ0SDIzMlYzODRoOTZ2ODhjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtODhoMjI0djg4YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTg4aDk2djQ1NnonKSk7XG5leHBvcnRzLlNraW5PdXRsaW5lID0gZ2V0SWNvbignc2tpbicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NzAgMTI2SDY2My44Yy0xNy40IDAtMzIuOSAxMS45LTM3IDI5LjNDNjE0LjMgMjA4LjEgNTY3IDI0NiA1MTIgMjQ2cy0xMDIuMy0zNy45LTExNC44LTkwLjdhMzcuOTMgMzcuOTMgMCAwIDAtMzctMjkuM0gxNTRhNDQgNDQgMCAwIDAtNDQgNDR2MjUyYTQ0IDQ0IDAgMCAwIDQ0IDQ0aDc1djM4OGE0NCA0NCAwIDAgMCA0NCA0NGg0NzhhNDQgNDQgMCAwIDAgNDQtNDRWNDY2aDc1YTQ0IDQ0IDAgMCAwIDQ0LTQ0VjE3MGE0NCA0NCAwIDAgMC00NC00NHptLTI4IDI2OEg3MjN2NDMySDMwMVYzOTRIMTgyVjE5OGgxNTMuM2MyOC4yIDcxLjIgOTcuNSAxMjAgMTc2LjcgMTIwczE0OC41LTQ4LjggMTc2LjctMTIwSDg0MnYxOTZ6JykpO1xuZXhwb3J0cy5Ta3lwZU91dGxpbmUgPSBnZXRJY29uKCdza3lwZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODMuNyA1NzguNmM0LjEtMjIuNSA2LjMtNDUuNSA2LjMtNjguNSAwLTUxLTEwLTEwMC41LTI5LjctMTQ3LTE5LTQ1LTQ2LjMtODUuNC04MS0xMjAuMWEzNzUuNzkgMzc1Ljc5IDAgMCAwLTEyMC4xLTgwLjljLTQ2LjYtMTkuNy05Ni0yOS43LTE0Ny0yOS43LTI0IDAtNDguMSAyLjMtNzEuNSA2LjhBMjI1LjEgMjI1LjEgMCAwIDAgMzM1LjYgMTEzYy01OS43IDAtMTE1LjkgMjMuMy0xNTguMSA2NS41QTIyMi4yNSAyMjIuMjUgMCAwIDAgMTEyIDMzNi42YzAgMzggOS44IDc1LjQgMjguMSAxMDguNC0zLjcgMjEuNC01LjcgNDMuMy01LjcgNjUuMSAwIDUxIDEwIDEwMC41IDI5LjcgMTQ3IDE5IDQ1IDQ2LjIgODUuNCA4MC45IDEyMC4xIDM0LjcgMzQuNyA3NS4xIDYxLjkgMTIwLjEgODAuOSA0Ni42IDE5LjcgOTYgMjkuNyAxNDcgMjkuNyAyMi4yIDAgNDQuNC0yIDY2LjItNS45IDMzLjUgMTguOSA3MS4zIDI5IDExMCAyOSA1OS43IDAgMTE1LjktMjMuMiAxNTguMS02NS41IDQyLjMtNDIuMiA2NS41LTk4LjQgNjUuNS0xNTguMS4xLTM4LTkuNy03NS41LTI4LjItMTA4Ljd6bS04OC4xIDIxNkM3NjYuOSA4MjMuNCA3MjkgODM5IDY4OC40IDgzOWMtMjYuMSAwLTUxLjgtNi44LTc0LjYtMTkuN2wtMjIuNS0xMi43LTI1LjUgNC41Yy0xNy44IDMuMi0zNS44IDQuOC01My42IDQuOC00MS40IDAtODEuMy04LjEtMTE5LjEtMjQuMS0zNi4zLTE1LjMtNjktMzcuMy05Ny4yLTY1LjVhMzA0LjI5IDMwNC4yOSAwIDAgMS02NS41LTk3LjFjLTE2LTM3LjctMjQtNzcuNi0yNC0xMTkgMC0xNy40IDEuNi0zNS4yIDQuNi01Mi44bDQuNC0yNS4xTDIwMyA0MTBhMTUxLjAyIDE1MS4wMiAwIDAgMS0xOS4xLTczLjRjMC00MC42IDE1LjctNzguNSA0NC40LTEwNy4yQzI1Ny4xIDIwMC43IDI5NSAxODUgMzM1LjYgMTg1YTE1MyAxNTMgMCAwIDEgNzEuNCAxNy45bDIyLjQgMTEuOCAyNC44LTQuOGMxOC45LTMuNiAzOC40LTUuNSA1OC01LjUgNDEuNCAwIDgxLjMgOC4xIDExOSAyNCAzNi41IDE1LjQgNjkuMSAzNy40IDk3LjIgNjUuNSAyOC4yIDI4LjEgNTAuMiA2MC44IDY1LjYgOTcuMiAxNiAzNy43IDI0IDc3LjYgMjQgMTE5IDAgMTguNC0xLjcgMzctNS4xIDU1LjVsLTQuNyAyNS41IDEyLjYgMjIuNmMxMi42IDIyLjUgMTkuMiA0OCAxOS4yIDczLjcgMCA0MC43LTE1LjcgNzguNS00NC40IDEwNy4yek01ODMuNCA0NjYuMkw0OTUgNDQ2LjZjLTMzLjYtNy43LTcyLjMtMTcuOC03Mi4zLTQ5LjVzMjcuMS01My45IDc2LjEtNTMuOWM5OC43IDAgODkuNyA2Ny44IDEzOC43IDY3LjggMjUuOCAwIDQ4LjQtMTUuMiA0OC40LTQxLjIgMC02MC44LTk3LjQtMTA2LjUtMTgwLTEwNi41LTg5LjcgMC0xODUuMiAzOC4xLTE4NS4yIDEzOS41IDAgNDguOCAxNy40IDEwMC44IDExMy42IDEyNC45bDExOS40IDI5LjhjMzYuMSA4LjkgNDUuMiAyOS4yIDQ1LjIgNDcuNiAwIDMwLjUtMzAuMyA2MC4zLTg1LjIgNjAuMy0xMDcuMiAwLTkyLjMtODIuNS0xNDkuNy04Mi41LTI1LjggMC00NC41IDE3LjgtNDQuNSA0My4xIDAgNDkuNCA2MCAxMTUuNCAxOTQuMiAxMTUuNCAxMjcuNyAwIDE5MS02MS41IDE5MS0xNDQgMC01My4xLTI0LjUtMTA5LjYtMTIxLjMtMTMxLjJ6JykpO1xuZXhwb3J0cy5TbGFja1NxdWFyZU91dGxpbmUgPSBnZXRJY29uKCdzbGFjay1zcXVhcmUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek01MjkgMzExLjRjMC0yNy44IDIyLjUtNTAuNCA1MC4zLTUwLjQgMjcuOCAwIDUwLjMgMjIuNiA1MC4zIDUwLjR2MTM0LjRjMCAyNy44LTIyLjUgNTAuNC01MC4zIDUwLjQtMjcuOCAwLTUwLjMtMjIuNi01MC4zLTUwLjRWMzExLjR6TTM2MS41IDU4MC4yYzAgMjcuOC0yMi41IDUwLjQtNTAuMyA1MC40YTUwLjM1IDUwLjM1IDAgMCAxLTUwLjMtNTAuNGMwLTI3LjggMjIuNS01MC40IDUwLjMtNTAuNGg1MC4zdjUwLjR6bTEzNCAxMzQuNGMwIDI3LjgtMjIuNSA1MC40LTUwLjMgNTAuNC0yNy44IDAtNTAuMy0yMi42LTUwLjMtNTAuNFY1ODAuMmMwLTI3LjggMjIuNS01MC40IDUwLjMtNTAuNGE1MC4zNSA1MC4zNSAwIDAgMSA1MC4zIDUwLjR2MTM0LjR6bS01MC4yLTIxOC40aC0xMzRjLTI3LjggMC01MC4zLTIyLjYtNTAuMy01MC40IDAtMjcuOCAyMi41LTUwLjQgNTAuMy01MC40aDEzNGMyNy44IDAgNTAuMyAyMi42IDUwLjMgNTAuNC0uMSAyNy45LTIyLjYgNTAuNC01MC4zIDUwLjR6bTAtMTM0LjRjLTEzLjMgMC0yNi4xLTUuMy0zNS42LTE0LjhTMzk1IDMyNC44IDM5NSAzMTEuNGMwLTI3LjggMjIuNS01MC40IDUwLjMtNTAuNCAyNy44IDAgNTAuMyAyMi42IDUwLjMgNTAuNHY1MC40aC01MC4zem0xMzQgNDAzLjJjLTI3LjggMC01MC4zLTIyLjYtNTAuMy01MC40di01MC40aDUwLjNjMjcuOCAwIDUwLjMgMjIuNiA1MC4zIDUwLjQgMCAyNy44LTIyLjUgNTAuNC01MC4zIDUwLjR6bTEzNC0xMzQuNGgtMTM0YTUwLjM1IDUwLjM1IDAgMCAxLTUwLjMtNTAuNGMwLTI3LjggMjIuNS01MC40IDUwLjMtNTAuNGgxMzRjMjcuOCAwIDUwLjMgMjIuNiA1MC4zIDUwLjQgMCAyNy44LTIyLjUgNTAuNC01MC4zIDUwLjR6bTAtMTM0LjRINjYzdi01MC40YzAtMjcuOCAyMi41LTUwLjQgNTAuMy01MC40czUwLjMgMjIuNiA1MC4zIDUwLjRjMCAyNy44LTIyLjUgNTAuNC01MC4zIDUwLjR6JykpO1xuZXhwb3J0cy5TbGlkZXJzT3V0bGluZSA9IGdldEljb24oJ3NsaWRlcnMnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMzIwIDIyNGgtNjZ2LTU2YzAtNC40LTMuNi04LTgtOGgtNTJjLTQuNCAwLTggMy42LTggOHY1NmgtNjZjLTQuNCAwLTggMy42LTggOHY1NjBjMCA0LjQgMy42IDggOCA4aDY2djU2YzAgNC40IDMuNiA4IDggOGg1MmM0LjQgMCA4LTMuNiA4LTh2LTU2aDY2YzQuNCAwIDgtMy42IDgtOFYyMzJjMC00LjQtMy42LTgtOC04em0tNjAgNTA4aC04MFYyOTJoODB2NDQwem02NDQtNDM2aC02NnYtOTZjMC00LjQtMy42LTgtOC04aC01MmMtNC40IDAtOCAzLjYtOCA4djk2aC02NmMtNC40IDAtOCAzLjYtOCA4djQxNmMwIDQuNCAzLjYgOCA4IDhoNjZ2OTZjMCA0LjQgMy42IDggOCA4aDUyYzQuNCAwIDgtMy42IDgtOHYtOTZoNjZjNC40IDAgOC0zLjYgOC04VjMwNGMwLTQuNC0zLjYtOC04LTh6bS02MCAzNjRoLTgwVjM2NGg4MHYyOTZ6TTYxMiA0MDRoLTY2VjIzMmMwLTQuNC0zLjYtOC04LThoLTUyYy00LjQgMC04IDMuNi04IDh2MTcyaC02NmMtNC40IDAtOCAzLjYtOCA4djIwMGMwIDQuNCAzLjYgOCA4IDhoNjZ2MTcyYzAgNC40IDMuNiA4IDggOGg1MmM0LjQgMCA4LTMuNiA4LThWNjIwaDY2YzQuNCAwIDgtMy42IDgtOFY0MTJjMC00LjQtMy42LTgtOC04em0tNjAgMTQ1YTMgMyAwIDAgMS0zIDNoLTc0YTMgMyAwIDAgMS0zLTN2LTc0YTMgMyAwIDAgMSAzLTNoNzRhMyAzIDAgMCAxIDMgM3Y3NHonKSk7XG5leHBvcnRzLlNtaWxlT3V0bGluZSA9IGdldEljb24oJ3NtaWxlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTI4OCA0MjFhNDggNDggMCAxIDAgOTYgMCA0OCA0OCAwIDEgMC05NiAwem0zNTIgMGE0OCA0OCAwIDEgMCA5NiAwIDQ4IDQ4IDAgMSAwLTk2IDB6TTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0yNjMgNzExYy0zNC4yIDM0LjItNzQgNjEtMTE4LjMgNzkuOEM2MTEgODc0LjIgNTYyLjMgODg0IDUxMiA4ODRjLTUwLjMgMC05OS05LjgtMTQ0LjgtMjkuMkEzNzAuNCAzNzAuNCAwIDAgMSAyNDguOSA3NzVjLTM0LjItMzQuMi02MS03NC03OS44LTExOC4zQzE0OS44IDYxMSAxNDAgNTYyLjMgMTQwIDUxMnM5LjgtOTkgMjkuMi0xNDQuOEEzNzAuNCAzNzAuNCAwIDAgMSAyNDkgMjQ4LjljMzQuMi0zNC4yIDc0LTYxIDExOC4zLTc5LjhDNDEzIDE0OS44IDQ2MS43IDE0MCA1MTIgMTQwYzUwLjMgMCA5OSA5LjggMTQ0LjggMjkuMkEzNzAuNCAzNzAuNCAwIDAgMSA3NzUuMSAyNDljMzQuMiAzNC4yIDYxIDc0IDc5LjggMTE4LjNDODc0LjIgNDEzIDg4NCA0NjEuNyA4ODQgNTEycy05LjggOTktMjkuMiAxNDQuOEEzNjguODkgMzY4Ljg5IDAgMCAxIDc3NSA3NzV6TTY2NCA1MzNoLTQ4LjFjLTQuMiAwLTcuOCAzLjItOC4xIDcuNEM2MDQgNTg5LjkgNTYyLjUgNjI5IDUxMiA2MjlzLTkyLjEtMzkuMS05NS44LTg4LjZjLS4zLTQuMi0zLjktNy40LTguMS03LjRIMzYwYTggOCAwIDAgMC04IDguNGM0LjQgODQuMyA3NC41IDE1MS42IDE2MCAxNTEuNnMxNTUuNi02Ny4zIDE2MC0xNTEuNmE4IDggMCAwIDAtOC04LjR6JykpO1xuZXhwb3J0cy5TbmlwcGV0c091dGxpbmUgPSBnZXRJY29uKCdzbmlwcGV0cycsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004MzIgMTEySDcyNFY3MmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NDBINTAwVjcyYzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY0MEgzMjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjEyMGgtOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjYzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg1MTJjMTcuNyAwIDMyLTE0LjMgMzItMzJ2LTk2aDk2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNjY0IDg4OEgyMzJWMzM2aDIxOHYxNzRjMCAyMi4xIDE3LjkgNDAgNDAgNDBoMTc0djMzOHptMC00MDJINTE0VjMzNmguMkw2NjQgNDg1Ljh2LjJ6bTEyOCAyNzRoLTU2VjQ1Nkw1NDQgMjY0SDM2MHYtODBoNjh2MzJjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtMzJoMTUydjMyYzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTMyaDY4djU3NnonKSk7XG5leHBvcnRzLlNvdW5kT3V0bGluZSA9IGdldEljb24oJ3NvdW5kJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTYyNS45IDExNWMtNS45IDAtMTEuOSAxLjYtMTcuNCA1LjNMMjU0IDM1Mkg5MGMtOC44IDAtMTYgNy4yLTE2IDE2djI4OGMwIDguOCA3LjIgMTYgMTYgMTZoMTY0bDM1NC41IDIzMS43YzUuNSAzLjYgMTEuNiA1LjMgMTcuNCA1LjMgMTYuNyAwIDMyLjEtMTMuMyAzMi4xLTMyLjFWMTQ3LjFjMC0xOC44LTE1LjQtMzIuMS0zMi4xLTMyLjF6TTU4NiA4MDNMMjkzLjQgNjExLjdsLTE4LTExLjdIMTQ2VjQyNGgxMjkuNGwxNy45LTExLjdMNTg2IDIyMXY1ODJ6bTM0OC0zMjdIODA2Yy04LjggMC0xNiA3LjItMTYgMTZ2NDBjMCA4LjggNy4yIDE2IDE2IDE2aDEyOGM4LjggMCAxNi03LjIgMTYtMTZ2LTQwYzAtOC44LTcuMi0xNi0xNi0xNnptLTQxLjkgMjYxLjhsLTExMC4zLTYzLjdhMTUuOSAxNS45IDAgMCAwLTIxLjcgNS45bC0xOS45IDM0LjVjLTQuNCA3LjYtMS44IDE3LjQgNS44IDIxLjhMODU2LjMgODAwYTE1LjkgMTUuOSAwIDAgMCAyMS43LTUuOWwxOS45LTM0LjVjNC40LTcuNiAxLjctMTcuNC01LjgtMjEuOHpNNzYwIDM0NGExNS45IDE1LjkgMCAwIDAgMjEuNyA1LjlMODkyIDI4Ni4yYzcuNi00LjQgMTAuMi0xNC4yIDUuOC0yMS44TDg3OCAyMzBhMTUuOSAxNS45IDAgMCAwLTIxLjctNS45TDc0NiAyODcuOGExNS45OSAxNS45OSAwIDAgMC01LjggMjEuOEw3NjAgMzQ0eicpKTtcbmV4cG9ydHMuU3Rhck91dGxpbmUgPSBnZXRJY29uKCdzdGFyJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkwOC4xIDM1My4xbC0yNTMuOS0zNi45TDU0MC43IDg2LjFjLTMuMS02LjMtOC4yLTExLjQtMTQuNS0xNC41LTE1LjgtNy44LTM1LTEuMy00Mi45IDE0LjVMMzY5LjggMzE2LjJsLTI1My45IDM2LjljLTcgMS0xMy40IDQuMy0xOC4zIDkuM2EzMi4wNSAzMi4wNSAwIDAgMCAuNiA0NS4zbDE4My43IDE3OS4xLTQzLjQgMjUyLjlhMzEuOTUgMzEuOTUgMCAwIDAgNDYuNCAzMy43TDUxMiA3NTRsMjI3LjEgMTE5LjRjNi4yIDMuMyAxMy40IDQuNCAyMC4zIDMuMiAxNy40LTMgMjkuMS0xOS41IDI2LjEtMzYuOWwtNDMuNC0yNTIuOSAxODMuNy0xNzkuMWM1LTQuOSA4LjMtMTEuMyA5LjMtMTguMyAyLjctMTcuNS05LjUtMzMuNy0yNy0zNi4zek02NjQuOCA1NjEuNmwzNi4xIDIxMC4zTDUxMiA2NzIuNyAzMjMuMSA3NzJsMzYuMS0yMTAuMy0xNTIuOC0xNDlMNDE3LjYgMzgyIDUxMiAxOTAuNyA2MDYuNCAzODJsMjExLjIgMzAuNy0xNTIuOCAxNDguOXonKSk7XG5leHBvcnRzLlN0ZXBCYWNrd2FyZE91dGxpbmUgPSBnZXRJY29uKCdzdGVwLWJhY2t3YXJkJywgb3V0bGluZSwgZ2V0Tm9kZShub3JtYWxWaWV3Qm94LCAnTTM0Ny42IDUyOC45NWwzODMuMiAzMDEuMDJjMTQuMjUgMTEuMiAzNS4yIDEuMSAzNS4yLTE2Ljk1VjIxMC45N2MwLTE4LjA1LTIwLjk1LTI4LjE0LTM1LjItMTYuOTRMMzQ3LjYgNDk1LjA1YTIxLjUzIDIxLjUzIDAgMCAwIDAgMzMuOU0zMzAgODY0aC02NGE4IDggMCAwIDEtOC04VjE2OGE4IDggMCAwIDEgOC04aDY0YTggOCAwIDAgMSA4IDh2Njg4YTggOCAwIDAgMS04IDgnKSk7XG5leHBvcnRzLlN0ZXBGb3J3YXJkT3V0bGluZSA9IGdldEljb24oJ3N0ZXAtZm9yd2FyZCcsIG91dGxpbmUsIGdldE5vZGUobm9ybWFsVmlld0JveCwgJ002NzYuNCA1MjguOTVMMjkzLjIgODI5Ljk3Yy0xNC4yNSAxMS4yLTM1LjIgMS4xLTM1LjItMTYuOTVWMjEwLjk3YzAtMTguMDUgMjAuOTUtMjguMTQgMzUuMi0xNi45NGwzODMuMiAzMDEuMDJhMjEuNTMgMjEuNTMgMCAwIDEgMCAzMy45TTY5NCA4NjRoNjRhOCA4IDAgMCAwIDgtOFYxNjhhOCA4IDAgMCAwLTgtOGgtNjRhOCA4IDAgMCAwLTggOHY2ODhhOCA4IDAgMCAwIDggOCcpKTtcbmV4cG9ydHMuU3RvcE91dGxpbmUgPSBnZXRJY29uKCdzdG9wJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MiAwLTg5IDMxLjMtMTcwLjggODMuNS0yMzQuOGw1MjMuMyA1MjMuM0M2ODIuOCA4NTIuNyA2MDEgODg0IDUxMiA4ODR6bTI4OC41LTEzNy4yTDI3Ny4yIDIyMy41QzM0MS4yIDE3MS4zIDQyMyAxNDAgNTEyIDE0MGMyMDUuNCAwIDM3MiAxNjYuNiAzNzIgMzcyIDAgODktMzEuMyAxNzAuOC04My41IDIzNC44eicpKTtcbmV4cG9ydHMuU3dpdGNoZXJPdXRsaW5lID0gZ2V0SWNvbignc3dpdGNoZXInLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNzUyIDI0MEgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjYwOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2MDhjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjcyYzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNjAwSDE4NFYzMTJoNTI4djUyOHptMTY4LTcyOEgyNjRjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTc2djU3NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04VjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMzAwIDU1MGgyOTZ2NjRIMzAweicpKTtcbmV4cG9ydHMuVGFnT3V0bGluZSA9IGdldEljb24oJ3RhZycsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MzggNDU4LjhsLTI5LjYtMzEyLjZjLTEuNS0xNi4yLTE0LjQtMjktMzAuNi0zMC42TDU2NS4yIDg2aC0uNGMtMy4yIDAtNS43IDEtNy42IDIuOUw4OC45IDU1Ny4yYTkuOTYgOS45NiAwIDAgMCAwIDE0LjFsMzYzLjggMzYzLjhjMS45IDEuOSA0LjQgMi45IDcuMSAyLjlzNS4yLTEgNy4xLTIuOWw0NjguMy00NjguM2MyLTIuMSAzLTUgMi44LTh6TTQ1OS43IDgzNC43TDE4OS4zIDU2NC4zIDU4OSAxNjQuNiA4MzYgMTg4bDIzLjQgMjQ3LTM5OS43IDM5OS43ek02ODAgMjU2Yy00OC41IDAtODggMzkuNS04OCA4OHMzOS41IDg4IDg4IDg4IDg4LTM5LjUgODgtODgtMzkuNS04OC04OC04OHptMCAxMjBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyeicpKTtcbmV4cG9ydHMuVGFibGV0T3V0bGluZSA9IGdldEljb24oJ3RhYmxldCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004MDAgNjRIMjI0Yy0zNS4zIDAtNjQgMjguNy02NCA2NHY3NjhjMCAzNS4zIDI4LjcgNjQgNjQgNjRoNTc2YzM1LjMgMCA2NC0yOC43IDY0LTY0VjEyOGMwLTM1LjMtMjguNy02NC02NC02NHptLTggODI0SDIzMlYxMzZoNTYwdjc1MnpNNDcyIDc4NGE0MCA0MCAwIDEgMCA4MCAwIDQwIDQwIDAgMSAwLTgwIDB6JykpO1xuZXhwb3J0cy5TaG9wT3V0bGluZSA9IGdldEljb24oJ3Nob3AnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgyIDI3Mi4xVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMkgxNzRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjEyOC4xYy0xNi43IDEtMzAgMTQuOS0zMCAzMS45djEzMS43YTE3NyAxNzcgMCAwIDAgMTQuNCA3MC40YzQuMyAxMC4yIDkuNiAxOS44IDE1LjYgMjguOXYzNDVjMCAxNy42IDE0LjMgMzIgMzIgMzJoNjc2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjUzNWExNzUgMTc1IDAgMCAwIDE1LjYtMjguOWM5LjUtMjIuMyAxNC40LTQ2IDE0LjQtNzAuNFYzMDRjMC0xNy0xMy4zLTMwLjktMzAtMzEuOXpNMjE0IDE4NGg1OTZ2ODhIMjE0di04OHptMzYyIDY1Ni4xSDQ0OFY3MzZoMTI4djEwNC4xem0yMzQgMEg2NDBWNzA0YzAtMTcuNy0xNC4zLTMyLTMyLTMySDQxNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MTM2LjFIMjE0VjU5Ny45YzIuOSAxLjQgNS45IDIuOCA5IDQgMjIuMyA5LjQgNDYgMTQuMSA3MC40IDE0LjFzNDgtNC43IDcwLjQtMTQuMWMxMy44LTUuOCAyNi44LTEzLjIgMzguNy0yMi4xLjItLjEuNC0uMS42IDBhMTgwLjQgMTgwLjQgMCAwIDAgMzguNyAyMi4xYzIyLjMgOS40IDQ2IDE0LjEgNzAuNCAxNC4xIDI0LjQgMCA0OC00LjcgNzAuNC0xNC4xIDEzLjgtNS44IDI2LjgtMTMuMiAzOC43LTIyLjEuMi0uMS40LS4xLjYgMGExODAuNCAxODAuNCAwIDAgMCAzOC43IDIyLjFjMjIuMyA5LjQgNDYgMTQuMSA3MC40IDE0LjEgMjQuNCAwIDQ4LTQuNyA3MC40LTE0LjEgMy0xLjMgNi0yLjYgOS00djI0Mi4yem0zMC00MDQuNGMwIDU5LjgtNDkgMTA4LjMtMTA5LjMgMTA4LjMtNDAuOCAwLTc2LjQtMjIuMS05NS4yLTU0LjktMi45LTUtOC4xLTguMS0xMy45LTguMWgtLjZjLTUuNyAwLTExIDMuMS0xMy45IDguMUExMDkuMjQgMTA5LjI0IDAgMCAxIDUxMiA1NDRjLTQwLjcgMC03Ni4yLTIyLTk1LTU0LjctMy01LjEtOC40LTguMy0xNC4zLTguM3MtMTEuNCAzLjItMTQuMyA4LjNhMTA5LjYzIDEwOS42MyAwIDAgMS05NS4xIDU0LjdDMjMzIDU0NCAxODQgNDk1LjUgMTg0IDQzNS43di05MS4yYzAtLjMuMi0uNS41LS41aDY1NWMuMyAwIC41LjIuNS41djkxLjJ6JykpO1xuZXhwb3J0cy5UYWdzT3V0bGluZSA9IGdldEljb24oJ3RhZ3MnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNDgzLjIgNzkwLjNMODYxLjQgNDEyYzEuNy0xLjcgMi41LTQgMi4zLTYuM2wtMjUuNS0zMDEuNGMtLjctNy44LTYuOC0xMy45LTE0LjYtMTQuNkw1MjIuMiA2NC4zYy0yLjMtLjItNC43LjYtNi4zIDIuM0wxMzcuNyA0NDQuOGE4LjAzIDguMDMgMCAwIDAgMCAxMS4zbDMzNC4yIDMzNC4yYzMuMSAzLjIgOC4yIDMuMiAxMS4zIDB6bTYyLjYtNjUxLjdsMjI0LjYgMTkgMTkgMjI0LjZMNDc3LjUgNjk0IDIzMy45IDQ1MC41bDMxMS45LTMxMS45em02MC4xNiAxODYuMjNhNDggNDggMCAxIDAgNjcuODgtNjcuODkgNDggNDggMCAxIDAtNjcuODggNjcuODl6TTg4OS43IDUzOS44bC0zOS42LTM5LjVhOC4wMyA4LjAzIDAgMCAwLTExLjMgMGwtMzYyIDM2MS4zLTIzNy42LTIzN2E4LjAzIDguMDMgMCAwIDAtMTEuMyAwbC0zOS42IDM5LjVhOC4wMyA4LjAzIDAgMCAwIDAgMTEuM2wyNDMuMiAyNDIuOCAzOS42IDM5LjVjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGw0MDcuMy00MDYuNmMzLjEtMy4xIDMuMS04LjIgMC0xMS4zeicpKTtcbmV4cG9ydHMuVGFvYmFvQ2lyY2xlT3V0bGluZSA9IGdldEljb24oJ3Rhb2Jhby1jaXJjbGUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6TTMxNS43IDI5MS41YzI3LjMgMCA0OS41IDIyLjEgNDkuNSA0OS40cy0yMi4xIDQ5LjQtNDkuNSA0OS40YTQ5LjQgNDkuNCAwIDEgMSAwLTk4Ljh6TTM2Ni45IDU3OGMtMTMuNiA0Mi4zLTEwLjIgMjYuNy02NC40IDE0NC41bC03OC41LTQ5czg3LjctNzkuOCAxMDUuNi0xMTYuMmMxOS4yLTM4LjQtMjEuMS01OC45LTIxLjEtNTguOWwtNjAuMi0zNy41IDMyLjctNTAuMmM0NS40IDMzLjcgNDguNyAzNi42IDc5LjIgNjcuMiAyMy44IDIzLjkgMjAuNyA1Ni44IDYuNyAxMDAuMXptNDI3LjIgNTVjLTE1LjMgMTQzLjgtMjAyLjQgOTAuMy0yMDIuNCA5MC4zbDEwLjItNDEuMSA0My4zIDkuM2M4MCA1IDcyLjMtNjQuOSA3Mi4zLTY0LjlWNDIzYy42LTc3LjMtNzIuNi04NS40LTIwNC4yLTM4LjNsMzAuNiA4LjNjLTIuNSA5LTEyLjUgMjMuMi0yNS4yIDM4LjZoMTc2djM1LjZoLTk5LjF2NDQuNWg5OC43djM1LjdoLTk4LjdWNjIyYzE0LjktNC44IDI4LjYtMTEuNSA0MC41LTIwLjVsLTguNy0zMi41IDQ2LjUtMTQuNCAzOC44IDk0LjktNTcuMyAyMy45LTEwLjItMzcuOGMtMjUuNiAxOS41LTc4LjggNDgtMTcxLjggNDUuNC05OS4yIDIuNi03My43LTExMi03My43LTExMmwyLjUtMS4zSDQ3MmMtLjUgMTQuNy02LjYgMzguNyAxLjcgNTEuOCA2LjggMTAuOCAyNC4yIDEyLjYgMzUuMyAxMy4xIDEuMy4xIDIuNi4xIDMuOS4xdi04NS4zaC0xMDF2LTM1LjdoMTAxdi00NC41SDQ4N2MtMjIuNyAyNC4xLTQzLjUgNDQuMS00My41IDQ0LjFsLTMwLjYtMjYuN2MyMS43LTIyLjkgNDMuMy01OS4xIDU2LjgtODMuMi0xMC45IDQuNC0yMiA5LjItMzMuNiAxNC4yLTExLjIgMTQuMy0yNC4yIDI5LTM4LjcgNDMuNS41LjgtNTAtMjguNC01MC0yOC40IDUyLjItNDQuNCA4MS40LTEzOS45IDgxLjQtMTM5LjlsNzIuNSAyMC40cy01LjkgMTQtMTguNCAzNS42YzI5MC4zLTgyLjMgMzA3LjQgNTAuNSAzMDcuNCA1MC41czE5LjEgOTEuOCAzLjggMjM1Ljd6JykpO1xuZXhwb3J0cy5Ub29sT3V0bGluZSA9IGdldEljb24oJ3Rvb2wnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODc2LjYgMjM5LjVjLS41LS45LTEuMi0xLjgtMi0yLjUtNS01LTEzLjEtNS0xOC4xIDBMNjg0LjIgNDA5LjNsLTY3LjktNjcuOUw3ODguNyAxNjljLjgtLjggMS40LTEuNiAyLTIuNSAzLjYtNi4xIDEuNi0xMy45LTQuNS0xNy41LTk4LjItNTgtMjI2LjgtNDQuNy0zMTEuMyAzOS43LTY3IDY3LTg5LjIgMTYyLTY2LjUgMjQ3LjRsLTI5MyAyOTNjLTMgMy0yLjggNy45LjMgMTFsMTY5LjcgMTY5LjdjMy4xIDMuMSA4LjEgMy4zIDExIC4zbDI5Mi45LTI5Mi45Yzg1LjUgMjIuOCAxODAuNS43IDI0Ny42LTY2LjQgODQuNC04NC41IDk3LjctMjEzLjEgMzkuNy0zMTEuM3pNNzg2IDQ5OS44Yy01OC4xIDU4LjEtMTQ1LjMgNjkuMy0yMTQuNiAzMy42bC04LjggOC44LS4xLS4xLTI3NCAyNzQuMS03OS4yLTc5LjIgMjMwLjEtMjMwLjFzMCAuMS4xLjFsNTIuOC01Mi44Yy0zNS43LTY5LjMtMjQuNS0xNTYuNSAzMy42LTIxNC42YTE4NC4yIDE4NC4yIDAgMCAxIDE0NC01My41TDUzNyAzMTguOWEzMi4wNSAzMi4wNSAwIDAgMCAwIDQ1LjNsMTI0LjUgMTI0LjVhMzIuMDUgMzIuMDUgMCAwIDAgNDUuMyAwbDEzMi44LTEzMi44YzMuNyA1MS44LTE0LjQgMTA0LjgtNTMuNiAxNDMuOXonKSk7XG5leHBvcnRzLlRodW5kZXJib2x0T3V0bGluZSA9IGdldEljb24oJ3RodW5kZXJib2x0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg0OCAzNTkuM0g2MjcuN0w4MjUuOCAxMDljNC4xLTUuMy40LTEzLTYuMy0xM0g0MzZjLTIuOCAwLTUuNSAxLjUtNi45IDRMMTcwIDU0Ny41Yy0zLjEgNS4zLjcgMTIgNi45IDEyaDE3NC40bC04OS40IDM1Ny42Yy0xLjkgNy44IDcuNSAxMy4zIDEzLjMgNy43TDg1My41IDM3M2M1LjItNC45IDEuNy0xMy43LTUuNS0xMy43ek0zNzguMiA3MzIuNWw2MC4zLTI0MUgyODEuMWwxODkuNi0zMjcuNGgyMjQuNkw0ODcgNDI3LjRoMjExTDM3OC4yIDczMi41eicpKTtcbmV4cG9ydHMuVHJvcGh5T3V0bGluZSA9IGdldEljb24oJ3Ryb3BoeScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NjggMTYwaC05MnYtNDBjMC00LjQtMy42LTgtOC04SDI1NmMtNC40IDAtOCAzLjYtOCA4djQwaC05MmE0NCA0NCAwIDAgMC00NCA0NHYxNDhjMCA4MS43IDYwIDE0OS42IDEzOC4yIDE2MkMyNjUuNyA2MzAuMiAzNTkgNzIxLjcgNDc2IDczNC41djEwNS4ySDI4MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJWOTA0YzAgNC40IDMuNiA4IDggOGg1MTJjNC40IDAgOC0zLjYgOC04di0zMi4zYzAtMTcuNy0xNC4zLTMyLTMyLTMySDU0OFY3MzQuNUM2NjUgNzIxLjcgNzU4LjMgNjMwLjIgNzczLjggNTE0IDg1MiA1MDEuNiA5MTIgNDMzLjcgOTEyIDM1MlYyMDRhNDQgNDQgMCAwIDAtNDQtNDR6TTE4NCAzNTJWMjMyaDY0djIwNy42YTkxLjk5IDkxLjk5IDAgMCAxLTY0LTg3LjZ6bTUyMCAxMjhjMCA0OS4xLTE5LjEgOTUuNC01My45IDEzMC4xLTM0LjggMzQuOC04MSA1My45LTEzMC4xIDUzLjloLTE2Yy00OS4xIDAtOTUuNC0xOS4xLTEzMC4xLTUzLjktMzQuOC0zNC44LTUzLjktODEtNTMuOS0xMzAuMVYxODRoMzg0djI5NnptMTM2LTEyOGMwIDQxLTI2LjkgNzUuOC02NCA4Ny42VjIzMmg2NHYxMjB6JykpO1xuZXhwb3J0cy5VbmxvY2tPdXRsaW5lID0gZ2V0SWNvbigndW5sb2NrJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTgzMiA0NjRIMzMyVjI0MGMwLTMwLjkgMjUuMS01NiA1Ni01NmgyNDhjMzAuOSAwIDU2IDI1LjEgNTYgNTZ2NjhjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNjhjMC03MC43LTU3LjMtMTI4LTEyOC0xMjhIMzg4Yy03MC43IDAtMTI4IDU3LjMtMTI4IDEyOHYyMjRoLTY4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYzODRjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjQ5NmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDM3NkgyMzJWNTM2aDU2MHYzMDR6TTQ4NCA3MDF2NTNjMCA0LjQgMy42IDggOCA4aDQwYzQuNCAwIDgtMy42IDgtOHYtNTNhNDguMDEgNDguMDEgMCAxIDAtNTYgMHonKSk7XG5leHBvcnRzLlVwQ2lyY2xlT3V0bGluZSA9IGdldEljb24oJ3VwLWNpcmNsZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTguNSAzNjAuM2E3Ljk1IDcuOTUgMCAwIDAtMTIuOSAwbC0xNzggMjQ2Yy0zLjggNS4zIDAgMTIuNyA2LjUgMTIuN0gzODFjMTAuMiAwIDE5LjktNC45IDI1LjktMTMuMkw1MTIgNDYwLjRsMTA1LjIgMTQ1LjRjNiA4LjMgMTUuNiAxMy4yIDI1LjkgMTMuMkg2OTBjNi41IDAgMTAuMy03LjQgNi41LTEyLjdsLTE3OC0yNDZ6JywgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6JykpO1xuZXhwb3J0cy5VcFNxdWFyZU91dGxpbmUgPSBnZXRJY29uKCd1cC1zcXVhcmUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMzM0IDYyNGg0Ni45YzEwLjIgMCAxOS45LTQuOSAyNS45LTEzLjJMNTEyIDQ2NS40bDEwNS4yIDE0NS40YzYgOC4zIDE1LjYgMTMuMiAyNS45IDEzLjJINjkwYzYuNSAwIDEwLjMtNy40IDYuNS0xMi43bC0xNzgtMjQ2YTcuOTUgNy45NSAwIDAgMC0xMi45IDBsLTE3OCAyNDZBNy45NiA3Ljk2IDAgMCAwIDMzNCA2MjR6JywgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2eicpKTtcbmV4cG9ydHMuVXNiT3V0bGluZSA9IGdldEljb24oJ3VzYicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ003NjAgNDMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMkgyOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjI4OGMtNjYuMiAwLTEyMCA1Mi4xLTEyMCAxMTZ2MzU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LThWNTQ4YzAtMjQuMyAyMS42LTQ0IDQ4LjEtNDRoNDk1LjhjMjYuNSAwIDQ4LjEgMTkuNyA0OC4xIDQ0djM1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04VjU0OGMwLTYzLjktNTMuOC0xMTYtMTIwLTExNnptLTQyNCAwVjE4NGgzNTJ2MjQ4SDMzNnptMTIwLTE4NGgtNDhjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6bTE2MCAwaC00OGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOHonKSk7XG5leHBvcnRzLlZpZGVvQ2FtZXJhT3V0bGluZSA9IGdldEljb24oJ3ZpZGVvLWNhbWVyYScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MTIgMzAyLjNMNzg0IDM3NlYyMjRjMC0zNS4zLTI4LjctNjQtNjQtNjRIMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NHY1NzZjMCAzNS4zIDI4LjcgNjQgNjQgNjRoNTkyYzM1LjMgMCA2NC0yOC43IDY0LTY0VjY0OGwxMjggNzMuN2MyMS4zIDEyLjMgNDgtMy4xIDQ4LTI3LjZWMzMwYzAtMjQuNi0yNi43LTQwLTQ4LTI3Ljd6TTcxMiA3OTJIMTM2VjIzMmg1NzZ2NTYwem0xNzYtMTY3bC0xMDQtNTkuOFY0NTguOUw4ODggMzk5djIyNnpNMjA4IDM2MGgxMTJjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThIMjA4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4eicpKTtcbmV4cG9ydHMuV2FsbGV0T3V0bGluZSA9IGdldEljb24oJ3dhbGxldCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA0NjRINTI4VjQ0OGgzMTJ2MTI4em0wIDI2NEgxODRWMTg0aDY1NnYyMDBINDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYxOTJjMCAxNy43IDE0LjMgMzIgMzIgMzJoMzQ0djIwMHpNNTgwIDUxMmE0MCA0MCAwIDEgMCA4MCAwIDQwIDQwIDAgMSAwLTgwIDB6JykpO1xuZXhwb3J0cy5XYXJuaW5nT3V0bGluZSA9IGdldEljb24oJ3dhcm5pbmcnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNDY0IDcyMGE0OCA0OCAwIDEgMCA5NiAwIDQ4IDQ4IDAgMSAwLTk2IDB6bTE2LTMwNHYxODRjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOFY0MTZjMC00LjQtMy42LTgtOC04aC00OGMtNC40IDAtOCAzLjYtOCA4em00NzUuNyA0NDBsLTQxNi03MjBjLTYuMi0xMC43LTE2LjktMTYtMjcuNy0xNnMtMjEuNiA1LjMtMjcuNyAxNmwtNDE2IDcyMEM1NiA4NzcuNCA3MS40IDkwNCA5NiA5MDRoODMyYzI0LjYgMCA0MC0yNi42IDI3LjctNDh6bS03ODMuNS0yNy45TDUxMiAyMzkuOWwzMzkuOCA1ODguMkgxNzIuMnonKSk7XG5leHBvcnRzLldlY2hhdE91dGxpbmUgPSBnZXRJY29uKCd3ZWNoYXQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNjkwLjEgMzc3LjRjNS45IDAgMTEuOC4yIDE3LjYuNS0yNC40LTEyOC43LTE1OC4zLTIyNy4xLTMxOS45LTIyNy4xQzIwOSAxNTAuOCA2NCAyNzEuNCA2NCA0MjAuMmMwIDgxLjEgNDMuNiAxNTQuMiAxMTEuOSAyMDMuNmEyMS41IDIxLjUgMCAwIDEgOS4xIDE3LjZjMCAyLjQtLjUgNC42LTEuMSA2LjktNS41IDIwLjMtMTQuMiA1Mi44LTE0LjYgNTQuMy0uNyAyLjYtMS43IDUuMi0xLjcgNy45IDAgNS45IDQuOCAxMC44IDEwLjggMTAuOCAyLjMgMCA0LjItLjkgNi4yLTJsNzAuOS00MC45YzUuMy0zLjEgMTEtNSAxNy4yLTUgMy4yIDAgNi40LjUgOS41IDEuNCAzMy4xIDkuNSA2OC44IDE0LjggMTA1LjcgMTQuOCA2IDAgMTEuOS0uMSAxNy44LS40LTcuMS0yMS0xMC45LTQzLjEtMTAuOS02NiAwLTEzNS44IDEzMi4yLTI0NS44IDI5NS4zLTI0NS44em0tMTk0LjMtODYuNWMyMy44IDAgNDMuMiAxOS4zIDQzLjIgNDMuMXMtMTkuMyA0My4xLTQzLjIgNDMuMWMtMjMuOCAwLTQzLjItMTkuMy00My4yLTQzLjFzMTkuNC00My4xIDQzLjItNDMuMXptLTIxNS45IDg2LjJjLTIzLjggMC00My4yLTE5LjMtNDMuMi00My4xczE5LjMtNDMuMSA0My4yLTQzLjEgNDMuMiAxOS4zIDQzLjIgNDMuMS0xOS40IDQzLjEtNDMuMiA0My4xem01ODYuOCA0MTUuNmM1Ni45LTQxLjIgOTMuMi0xMDIgOTMuMi0xNjkuNyAwLTEyNC0xMjAuOC0yMjQuNS0yNjkuOS0yMjQuNS0xNDkgMC0yNjkuOSAxMDAuNS0yNjkuOSAyMjQuNVM1NDAuOSA4NDcuNSA2OTAgODQ3LjVjMzAuOCAwIDYwLjYtNC40IDg4LjEtMTIuMyAyLjYtLjggNS4yLTEuMiA3LjktMS4yIDUuMiAwIDkuOSAxLjYgMTQuMyA0LjFsNTkuMSAzNGMxLjcgMSAzLjMgMS43IDUuMiAxLjdhOSA5IDAgMCAwIDYuNC0yLjYgOSA5IDAgMCAwIDIuNi02LjRjMC0yLjItLjktNC40LTEuNC02LjYtLjMtMS4yLTcuNi0yOC4zLTEyLjItNDUuMy0uNS0xLjktLjktMy44LS45LTUuNy4xLTUuOSAzLjEtMTEuMiA3LjYtMTQuNXpNNjAwLjIgNTg3LjJjLTE5LjkgMC0zNi0xNi4xLTM2LTM1LjkgMC0xOS44IDE2LjEtMzUuOSAzNi0zNS45czM2IDE2LjEgMzYgMzUuOWMwIDE5LjgtMTYuMiAzNS45LTM2IDM1Ljl6bTE3OS45IDBjLTE5LjkgMC0zNi0xNi4xLTM2LTM1LjkgMC0xOS44IDE2LjEtMzUuOSAzNi0zNS45czM2IDE2LjEgMzYgMzUuOWEzNi4wOCAzNi4wOCAwIDAgMS0zNiAzNS45eicpKTtcbmV4cG9ydHMuV2VpYm9DaXJjbGVPdXRsaW5lID0gZ2V0SWNvbignd2VpYm8tY2lyY2xlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0tNDQuNCA2NzJDMzUzLjEgNzM2IDIzNiA2ODAuNCAyMzYgNTg4LjljMC00Ny44IDMwLjItMTAzLjEgODIuMy0xNTUuMyA2OS41LTY5LjYgMTUwLjYtMTAxLjQgMTgxLjEtNzAuOCAxMy41IDEzLjUgMTQuOCAzNi44IDYuMSA2NC42LTQuNSAxNCAxMy4xIDYuMyAxMy4xIDYuMyA1Ni4yLTIzLjYgMTA1LjItMjUgMTIzLjEuNyA5LjYgMTMuNyA4LjYgMzIuOC0uMiA1NS4xLTQuMSAxMC4yIDEuMyAxMS44IDkgMTQuMSAzMS43IDkuOCA2Ni45IDMzLjYgNjYuOSA3NS41LjIgNjkuNS05OS43IDE1Ni45LTI0OS44IDE1Ni45em0yMDcuMy0yOTAuOGEzNC45IDM0LjkgMCAwIDAtNy4yLTM0LjEgMzQuNjggMzQuNjggMCAwIDAtMzMuMS0xMC43IDE4LjI0IDE4LjI0IDAgMCAxLTcuNi0zNS43YzI0LjEtNS4xIDUwLjEgMi4zIDY3LjcgMjEuOSAxNy43IDE5LjYgMjIuNCA0Ni4zIDE0LjkgNjkuOGExOC4xMyAxOC4xMyAwIDAgMS0yMi45IDExLjcgMTguMTggMTguMTggMCAwIDEtMTEuOC0yMi45em0xMDYgMzQuM3MwIC4xIDAgMGEyMS4xIDIxLjEgMCAwIDEtMjYuNiAxMy43IDIxLjE5IDIxLjE5IDAgMCAxLTEzLjYtMjYuN2MxMS0zNC4yIDQtNzMuMi0yMS43LTEwMS44YTEwNC4wNCAxMDQuMDQgMCAwIDAtOTguOS0zMi4xIDIxLjE0IDIxLjE0IDAgMCAxLTI1LjEtMTYuMyAyMS4wNyAyMS4wNyAwIDAgMSAxNi4yLTI1LjFjNDkuNC0xMC41IDEwMi44IDQuOCAxMzkuMSA0NS4xIDM2LjMgNDAuMiA0Ni4xIDk1LjEgMzAuNiAxNDMuMnptLTMzNC41IDYuMWMtOTEuNCA5LTE2MC43IDY1LjEtMTU0LjcgMTI1LjIgNS45IDYwLjEgODQuOCAxMDEuNSAxNzYuMiA5Mi41IDkxLjQtOS4xIDE2MC43LTY1LjEgMTU0LjctMTI1LjMtNS45LTYwLjEtODQuOC0xMDEuNS0xNzYuMi05Mi40em04MC4yIDE0MS43Yy0xOC43IDQyLjMtNzIuMyA2NC44LTExNy44IDUwLjEtNDMuOS0xNC4yLTYyLjUtNTcuNy00My4zLTk2LjggMTguOS0zOC40IDY4LTYwLjEgMTExLjUtNDguOCA0NSAxMS43IDY4IDU0LjIgNDkuNiA5NS41em0tOTMtMzIuMmMtMTQuMi01LjktMzIuNC4yLTQxLjIgMTMuOS04LjggMTMuOC00LjcgMzAuMiA5LjMgMzYuNiAxNC4zIDYuNSAzMy4yLjMgNDItMTMuOCA4LjgtMTQuMyA0LjItMzAuNi0xMC4xLTM2Ljd6bTM0LjktMTQuNWMtNS40LTIuMi0xMi4yLjUtMTUuNCA1LjgtMy4xIDUuNC0xLjQgMTEuNSA0LjEgMTMuOCA1LjUgMi4zIDEyLjYtLjMgMTUuOC01LjggMy01LjYgMS0xMS44LTQuNS0xMy44eicpKTtcbmV4cG9ydHMuV2luZG93c091dGxpbmUgPSBnZXRJY29uKCd3aW5kb3dzJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTEyMC4xIDc3MC42TDQ0MyA4MjMuMlY1NDMuOEgxMjAuMXYyMjYuOHptNjMuNC0xNjMuNWgxOTYuMnYxNDEuNmwtMTk2LjItMzEuOVY2MDcuMXptMzQwLjMgMjI2LjVsMzgyIDYyLjJ2LTM1MmgtMzgydjI4OS44em02My40LTIyNi41aDI1NS4zdjIxNC40bC0yNTUuMy00MS42VjYwNy4xem0tNjMuNC00MTUuN3YyODguOGgzODJWMTI4LjFsLTM4MiA2My4zem0zMTguNyAyMjUuNUg1ODcuM1YyNDVsMjU1LjMtNDIuM3YyMTQuMnptLTcyMi40IDYzLjNINDQzVjIwMS45bC0zMjIuOSA1My41djIyNC44ek0xODMuNSAzMDlsMTk2LjItMzIuNXYxNDAuNEgxODMuNVYzMDl6JykpO1xuZXhwb3J0cy5ZYWhvb091dGxpbmUgPSBnZXRJY29uKCd5YWhvbycsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NTkuOSA2ODEuNGgtMTQuMWMtMjcuMSAwLTQ5LjIgMjIuMi00OS4yIDQ5LjN2MTQuMWMwIDI3LjEgMjIuMiA0OS4zIDQ5LjIgNDkuM2gxNC4xYzI3LjEgMCA0OS4yLTIyLjIgNDkuMi00OS4zdi0xNC4xYzAtMjcuMS0yMi4yLTQ5LjMtNDkuMi00OS4zek00MDIuNiAyMzFDMjE2LjIgMjMxIDY1IDM1NyA2NSA1MTIuNVMyMTYuMiA3OTQgNDAyLjYgNzk0czMzNy42LTEyNiAzMzcuNi0yODEuNVM1ODkuMSAyMzEgNDAyLjYgMjMxem0wIDUwN0MyNDUuMSA3MzggMTIxIDYzNC42IDEyMSA1MTIuNWMwLTYyLjMgMzIuMy0xMTkuNyA4NC45LTE2MXY0OC40aDM3bDE1OS44IDE1OS45djY1LjNoLTg0LjR2NTYuM2gyMjUuMXYtNTYuM0g0NTl2LTY1LjNsMTAzLjUtMTAzLjZoNjUuM3YtNTYuM0g0NTl2NjUuM2wtMjguMSAyOC4xLTkzLjQtOTMuNWgzN3YtNTYuM0gyMTYuNGM0OS40LTM1IDExNC4zLTU2LjYgMTg2LjItNTYuNiAxNTcuNiAwIDI4MS42IDEwMy40IDI4MS42IDIyNS41UzU2MC4yIDczOCA0MDIuNiA3Mzh6bTUzNC43LTUwN0g4MjQuN2MtMTUuNSAwLTI3LjcgMTIuNi0yNy4xIDI4LjFsMTMuMSAzNjZoODQuNGw2NS40LTM2Ni40YzIuNy0xNS4yLTcuOC0yNy43LTIzLjItMjcuN3onKSk7XG5leHBvcnRzLldlaWJvU3F1YXJlT3V0bGluZSA9IGdldEljb24oJ3dlaWJvLXNxdWFyZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ000MzMuNiA1OTUuMWMtMTQuMi01LjktMzIuNC4yLTQxLjIgMTMuOS04LjggMTMuOC00LjcgMzAuMiA5LjMgMzYuNiAxNC4zIDYuNSAzMy4yLjMgNDItMTMuOCA4LjgtMTQuMyA0LjItMzAuNi0xMC4xLTM2Ljd6TTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNDY3LjYgNzM2QzM1My4xIDczNiAyMzYgNjgwLjQgMjM2IDU4OC45YzAtNDcuOCAzMC4yLTEwMy4xIDgyLjMtMTU1LjMgNjkuNS02OS42IDE1MC42LTEwMS40IDE4MS4xLTcwLjggMTMuNSAxMy41IDE0LjggMzYuOCA2LjEgNjQuNi00LjUgMTQgMTMuMSA2LjMgMTMuMSA2LjMgNTYuMi0yMy42IDEwNS4yLTI1IDEyMy4xLjcgOS42IDEzLjcgOC42IDMyLjgtLjIgNTUuMS00LjEgMTAuMiAxLjMgMTEuOCA5IDE0LjEgMzEuNyA5LjggNjYuOSAzMy42IDY2LjkgNzUuNS4yIDY5LjUtOTkuNyAxNTYuOS0yNDkuOCAxNTYuOXptMjA3LjMtMjkwLjhhMzQuOSAzNC45IDAgMCAwLTcuMi0zNC4xIDM0LjY4IDM0LjY4IDAgMCAwLTMzLjEtMTAuNyAxOC4yNCAxOC4yNCAwIDAgMS03LjYtMzUuN2MyNC4xLTUuMSA1MC4xIDIuMyA2Ny43IDIxLjkgMTcuNyAxOS42IDIyLjQgNDYuMyAxNC45IDY5LjhhMTguMTMgMTguMTMgMCAwIDEtMjIuOSAxMS43IDE4LjE4IDE4LjE4IDAgMCAxLTExLjgtMjIuOXptMTA2IDM0LjNzMCAuMSAwIDBhMjEuMSAyMS4xIDAgMCAxLTI2LjYgMTMuNyAyMS4xOSAyMS4xOSAwIDAgMS0xMy42LTI2LjdjMTEtMzQuMiA0LTczLjItMjEuNy0xMDEuOGExMDQuMDQgMTA0LjA0IDAgMCAwLTk4LjktMzIuMSAyMS4xNCAyMS4xNCAwIDAgMS0yNS4xLTE2LjMgMjEuMDcgMjEuMDcgMCAwIDEgMTYuMi0yNS4xYzQ5LjQtMTAuNSAxMDIuOCA0LjggMTM5LjEgNDUuMSAzNi4zIDQwLjIgNDYuMSA5NS4xIDMwLjYgMTQzLjJ6bS0zMzQuNSA2LjFjLTkxLjQgOS0xNjAuNyA2NS4xLTE1NC43IDEyNS4yIDUuOSA2MC4xIDg0LjggMTAxLjUgMTc2LjIgOTIuNSA5MS40LTkuMSAxNjAuNy02NS4xIDE1NC43LTEyNS4zLTUuOS02MC4xLTg0LjgtMTAxLjUtMTc2LjItOTIuNHptODAuMiAxNDEuN2MtMTguNyA0Mi4zLTcyLjMgNjQuOC0xMTcuOCA1MC4xLTQzLjktMTQuMi02Mi41LTU3LjctNDMuMy05Ni44IDE4LjktMzguNCA2OC02MC4xIDExMS41LTQ4LjggNDUgMTEuNyA2OCA1NC4yIDQ5LjYgOTUuNXptLTU4LjEtNDYuN2MtNS40LTIuMi0xMi4yLjUtMTUuNCA1LjgtMy4xIDUuNC0xLjQgMTEuNSA0LjEgMTMuOCA1LjUgMi4zIDEyLjYtLjMgMTUuOC01LjggMy01LjYgMS0xMS44LTQuNS0xMy44eicpKTtcbmV4cG9ydHMuWXVxdWVPdXRsaW5lID0gZ2V0SWNvbigneXVxdWUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODU0LjYgMzcwLjZjLTkuOS0zOS40IDkuOS0xMDIuMiA3My40LTEyNC40bC02Ny45LTMuNnMtMjUuNy05MC0xNDMuNi05OGMtMTE3LjgtOC4xLTE5NC45LTMtMTk1LTMgLjEgMCA4Ny40IDU1LjYgNTIuNCAxNTQuNy0yNS42IDUyLjUtNjUuOCA5NS42LTEwOC44IDE0NC43LTEuMyAxLjMtMi41IDIuNi0zLjUgMy43QzMxOS40IDYwNSA5NiA4NjAgOTYgODYwYzI0NS45IDY0LjQgNDEwLjctNi4zIDUwOC4yLTkxLjEgMjAuNS0uMiAzNS45LS4zIDQ2LjMtLjMgMTM1LjggMCAyNTAuNi0xMTcuNiAyNDUuOS0yNDguNC0zLjItODkuOS0zMS45LTExMC4yLTQxLjgtMTQ5LjZ6bS0yMDQuMSAzMzRjLTEwLjYgMC0yNi4yLjEtNDYuOC4zbC0yMy42LjItMTcuOCAxNS41Yy00Ny4xIDQxLTEwNC40IDcxLjUtMTcxLjQgODcuNi01Mi41IDEyLjYtMTEwIDE2LjItMTcyLjcgOS42IDE4LTIwLjUgMzYuNS00MS42IDU1LjQtNjMuMSA5Mi0xMDQuNiAxNzMuOC0xOTcuNSAyMzYuOS0yNjguNWwxLjQtMS40IDEuMy0xLjVjNC4xLTQuNiAyMC42LTIzLjMgMjQuNy0yOC4xIDkuNy0xMS4xIDE3LjMtMTkuOSAyNC41LTI4LjYgMzAuNy0zNi43IDUyLjItNjcuOCA2OS0xMDIuMmwxLjYtMy4zIDEuMi0zLjRjMTMuNy0zOC44IDE1LjQtNzYuOSA2LjItMTEyLjggMjIuNS43IDQ2LjUgMS45IDcxLjcgMy42IDMzLjMgMi4zIDU1LjUgMTIuOSA3MS4xIDI5LjIgNS44IDYgMTAuMiAxMi41IDEzLjQgMTguNyAxIDIgMS43IDMuNiAyLjMgNWw1IDE3LjdjLTE1LjcgMzQuNS0xOS45IDczLjMtMTEuNCAxMDcuMiAzIDExLjggNi45IDIyLjQgMTIuMyAzNC40IDIuMSA0LjcgOS41IDIwLjEgMTEgMjMuMyAxMC4zIDIyLjcgMTUuNCA0MyAxNi43IDc4LjcgMy4zIDk0LjYtODIuNyAxODEuOS0xODIgMTgxLjl6JykpO1xuZXhwb3J0cy5Zb3V0dWJlT3V0bGluZSA9IGdldEljb24oJ3lvdXR1YmUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTYwIDUwOS4yYzAtMi4yIDAtNC43LS4xLTcuNi0uMS04LjEtLjMtMTcuMi0uNS0yNi45LS44LTI3LjktMi4yLTU1LjctNC40LTgxLjktMy0zNi4xLTcuNC02Ni4yLTEzLjQtODguOGExMzkuNTIgMTM5LjUyIDAgMCAwLTk4LjMtOTguNWMtMjguMy03LjYtODMuNy0xMi4zLTE2MS43LTE1LjItMzcuMS0xLjQtNzYuOC0yLjMtMTE2LjUtMi44LTEzLjktLjItMjYuOC0uMy0zOC40LS40aC0yOS40Yy0xMS42LjEtMjQuNS4yLTM4LjQuNC0zOS43LjUtNzkuNCAxLjQtMTE2LjUgMi44LTc4IDMtMTMzLjUgNy43LTE2MS43IDE1LjJBMTM5LjM1IDEzOS4zNSAwIDAgMCA4Mi40IDMwNEM3Ni4zIDMyNi42IDcyIDM1Ni43IDY5IDM5Mi44Yy0yLjIgMjYuMi0zLjYgNTQtNC40IDgxLjktLjMgOS43LS40IDE4LjgtLjUgMjYuOSAwIDIuOS0uMSA1LjQtLjEgNy42djUuNmMwIDIuMiAwIDQuNy4xIDcuNi4xIDguMS4zIDE3LjIuNSAyNi45LjggMjcuOSAyLjIgNTUuNyA0LjQgODEuOSAzIDM2LjEgNy40IDY2LjIgMTMuNCA4OC44IDEyLjggNDcuOSA1MC40IDg1LjcgOTguMyA5OC41IDI4LjIgNy42IDgzLjcgMTIuMyAxNjEuNyAxNS4yIDM3LjEgMS40IDc2LjggMi4zIDExNi41IDIuOCAxMy45LjIgMjYuOC4zIDM4LjQuNGgyOS40YzExLjYtLjEgMjQuNS0uMiAzOC40LS40IDM5LjctLjUgNzkuNC0xLjQgMTE2LjUtMi44IDc4LTMgMTMzLjUtNy43IDE2MS43LTE1LjIgNDcuOS0xMi44IDg1LjUtNTAuNSA5OC4zLTk4LjUgNi4xLTIyLjYgMTAuNC01Mi43IDEzLjQtODguOCAyLjItMjYuMiAzLjYtNTQgNC40LTgxLjkuMy05LjcuNC0xOC44LjUtMjYuOSAwLTIuOS4xLTUuNC4xLTcuNnYtNS42em0tNzIgNS4yYzAgMi4xIDAgNC40LS4xIDcuMS0uMSA3LjgtLjMgMTYuNC0uNSAyNS43LS43IDI2LjYtMi4xIDUzLjItNC4yIDc3LjktMi43IDMyLjItNi41IDU4LjYtMTEuMiA3Ni4zLTYuMiAyMy4xLTI0LjQgNDEuNC00Ny40IDQ3LjUtMjEgNS42LTczLjkgMTAuMS0xNDUuOCAxMi44LTM2LjQgMS40LTc1LjYgMi4zLTExNC43IDIuOC0xMy43LjItMjYuNC4zLTM3LjguM2gtMjguNmwtMzcuOC0uM2MtMzkuMS0uNS03OC4yLTEuNC0xMTQuNy0yLjgtNzEuOS0yLjgtMTI0LjktNy4yLTE0NS44LTEyLjgtMjMtNi4yLTQxLjItMjQuNC00Ny40LTQ3LjUtNC43LTE3LjctOC41LTQ0LjEtMTEuMi03Ni4zLTIuMS0yNC43LTMuNC01MS4zLTQuMi03Ny45LS4zLTkuMy0uNC0xOC0uNS0yNS43IDAtMi43LS4xLTUuMS0uMS03LjF2LTQuOGMwLTIuMSAwLTQuNC4xLTcuMS4xLTcuOC4zLTE2LjQuNS0yNS43LjctMjYuNiAyLjEtNTMuMiA0LjItNzcuOSAyLjctMzIuMiA2LjUtNTguNiAxMS4yLTc2LjMgNi4yLTIzLjEgMjQuNC00MS40IDQ3LjQtNDcuNSAyMS01LjYgNzMuOS0xMC4xIDE0NS44LTEyLjggMzYuNC0xLjQgNzUuNi0yLjMgMTE0LjctMi44IDEzLjctLjIgMjYuNC0uMyAzNy44LS4zaDI4LjZsMzcuOC4zYzM5LjEuNSA3OC4yIDEuNCAxMTQuNyAyLjggNzEuOSAyLjggMTI0LjkgNy4yIDE0NS44IDEyLjggMjMgNi4yIDQxLjIgMjQuNCA0Ny40IDQ3LjUgNC43IDE3LjcgOC41IDQ0LjEgMTEuMiA3Ni4zIDIuMSAyNC43IDMuNCA1MS4zIDQuMiA3Ny45LjMgOS4zLjQgMTggLjUgMjUuNyAwIDIuNy4xIDUuMS4xIDcuMXY0Ljh6TTQyMyA2NDZsMjMyLTEzNS0yMzItMTMzeicpKTtcbmV4cG9ydHMuQWxpYmFiYU91dGxpbmUgPSBnZXRJY29uKCdhbGliYWJhJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTYwMi45IDY2OS44Yy0zNy4yIDIuNi0zMy42LTE3LjMtMTEuNS00Ni4yIDUwLjQtNjcuMiAxNDMuNy0xNTguNSAxNDcuOS0yMjUuMiA1LjgtODYuNi04MS4zLTExMy40LTE3MS0xMTMuNC02Mi40IDEuNi0xMjcgMTguOS0xNzEgMzQuNi0xNTEuNiA1My41LTI0Ni42IDEzNy41LTMwNi45IDIzMi02Mi40IDkzLjQtNDMgMTgzLjIgOTEuOCAxODUuOCAxMDEuOC00LjIgMTcwLjUtMzIuNSAyMzkuNy02OC4yLjUgMC0xOTIuNSA1NS4xLTI2My45IDE0LjctNy45LTQuMi0xNS43LTEwLTE3LjgtMjYuMiAwLTMzLjEgNTQuNi02Ny43IDg2LjYtNzguN3YtNTYuN2M2NC41IDIyLjYgMTQwLjYgMTYuMyAyMDUuNy0zMiAyLjEgNS44IDQuMiAxMy4xIDMuNyAyMWgxMWMyLjYtMjIuNi0xMi42LTQ0LjYtMzcuOC00Ni4yIDcuMyA1LjggMTIuNiAxMC41IDE1LjIgMTQuN2wtMSAxLS41LjVjLTgzLjkgNTguOC0xNjUuMyAzMS41LTE3My4xIDI5LjlsNDYuNy00NS43LTEzLjEtMzMuMWM5Mi45LTMyLjUgMTY5LjUtNTYuMiAyOTYuOS03OC43bC0yOC41LTIzIDE0LjctOC45Yzc1LjUgMjEgMTI2LjQgMzYuNyAxMjMuOCA3Ni42LTEgNi44LTMuNyAxNC43LTcuOSAyMy4xQzY2MC4xIDQ2Ni4xIDU5NCA1MzggNTY3LjIgNTY5Yy0xNy4zIDIwLjUtMzQuNiAzOS40LTQ2LjcgNTguMy0xMy42IDE5LjQtMjAuNSAzNy4zLTIxIDUzLjUgMi42IDEzMS44IDM5MS40LTYxLjkgNDY4LTExMi45LTExMS43IDQ3LjgtMjMyLjkgOTMuNS0zNjQuNiAxMDEuOXptODUtMzAyLjljMi44IDUuMiA0LjEgMTEuNiA0LjEgMTkuMS0uMS02LjgtMS40LTEzLjMtNC4xLTE5LjF6JykpO1xuZXhwb3J0cy5BbGlnbkNlbnRlck91dGxpbmUgPSBnZXRJY29uKCdhbGlnbi1jZW50ZXInLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMjY0IDIzMGg0OTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThIMjY0Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em00OTYgNDI0YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04SDI2NGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg0OTZ6bTE0NCAxNDBIMTIwYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC00MjRIMTIwYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHonKSk7XG5leHBvcnRzLkFsaWduTGVmdE91dGxpbmUgPSBnZXRJY29uKCdhbGlnbi1sZWZ0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTEyMCAyMzBoNDk2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04SDEyMGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptMCA0MjRoNDk2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04SDEyMGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptNzg0IDE0MEgxMjBjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNzg0YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wLTQyNEgxMjBjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNzg0YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04eicpKTtcbmV4cG9ydHMuQWxpZ25SaWdodE91dGxpbmUgPSBnZXRJY29uKCdhbGlnbi1yaWdodCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MDQgMTU4SDQwOGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg0OTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgNDI0SDQwOGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg0OTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgMjEySDEyMGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg3ODRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtNDI0SDEyMGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg3ODRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6JykpO1xuZXhwb3J0cy5BbGlwYXlPdXRsaW5lID0gZ2V0SWNvbignYWxpcGF5Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTc4OSA2MTAuM2MtMzguNy0xMi45LTkwLjctMzIuNy0xNDguNS01My42IDM0LjgtNjAuMyA2Mi41LTEyOSA4MC43LTIwMy42SDUzMC41di02OC42aDIzMy42di0zOC4zSDUzMC41VjEzMmgtOTUuNGMtMTYuNyAwLTE2LjcgMTYuNS0xNi43IDE2LjV2OTcuOEgxODIuMnYzOC4zaDIzNi4zdjY4LjZIMjIzLjR2MzguM2gzNzguNGE2NjcuMTggNjY3LjE4IDAgMCAxLTU0LjUgMTMyLjljLTEyMi44LTQwLjQtMjUzLjgtNzMuMi0zMzYuMS01My01Mi42IDEzLTg2LjUgMzYuMS0xMDYuNSA2MC4zLTkxLjQgMTExLTI1LjkgMjc5LjYgMTY3LjIgMjc5LjZDMzg2IDgxMS4yIDQ5NiA3NDcuNiA1ODEuMiA2NDMgNzA4LjMgNzA0IDk2MCA4MDguNyA5NjAgODA4LjdWNjU5LjRzLTMxLjYtMi41LTE3MS00OS4xek0yNTMuOSA3NDYuNmMtMTUwLjUgMC0xOTUtMTE4LjMtMTIwLjYtMTgzLjEgMjQuOC0yMS45IDcwLjItMzIuNiA5NC40LTM1IDg5LjQtOC44IDE3Mi4yIDI1LjIgMjY5LjkgNzIuOC02OC44IDg5LjUtMTU2LjMgMTQ1LjMtMjQzLjcgMTQ1LjN6JykpO1xuZXhwb3J0cy5BbGl5dW5PdXRsaW5lID0gZ2V0SWNvbignYWxpeXVuJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTk1OS4yIDM4My45Yy0uMy04Mi4xLTY2LjktMTQ4LjYtMTQ5LjEtMTQ4LjZINTc1LjlsMjEuNiA4NS4yIDIwMSA0My43YTQyLjU4IDQyLjU4IDAgMCAxIDMyLjkgMzkuN2MuMS41LjEgMjE2LjEgMCAyMTYuNmE0Mi41OCA0Mi41OCAwIDAgMS0zMi45IDM5LjdsLTIwMSA0My43LTIxLjYgODUuM2gyMzQuMmM4Mi4xIDAgMTQ4LjgtNjYuNSAxNDkuMS0xNDguNlYzODMuOXpNMjI1LjUgNjYwLjRhNDIuNTggNDIuNTggMCAwIDEtMzIuOS0zOS43Yy0uMS0uNi0uMS0yMTYuMSAwLTIxNi42LjgtMTkuNCAxNC42LTM1LjUgMzIuOS0zOS43bDIwMS00My43IDIxLjYtODUuMkgyMTMuOGMtODIuMSAwLTE0OC44IDY2LjQtMTQ5LjEgMTQ4LjZWNjQxYy4zIDgyLjEgNjcgMTQ4LjYgMTQ5LjEgMTQ4LjZINDQ4bC0yMS42LTg1LjMtMjAwLjktNDMuOXptMjAwLjktMTU4LjhoMTcxdjIxLjNoLTE3MXonKSk7XG5leHBvcnRzLkFtYXpvbk91dGxpbmUgPSBnZXRJY29uKCdhbWF6b24nLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODI1IDc2OC45Yy0zLjMtLjktNy4zLS40LTExLjkgMS4zLTYxLjYgMjguMi0xMjEuNSA0OC4zLTE3OS43IDYwLjJDNTA3LjcgODU2IDM4NS4yIDg0Mi42IDI2NiA3OTAuM2MtMzMuMS0xNC42LTc5LjEtMzkuMi0xMzgtNzRhOS4zNiA5LjM2IDAgMCAwLTUuMy0yYy0yLS4xLTMuNy4xLTUuMy45LTEuNi44LTIuOCAxLjgtMy43IDMuMS0uOSAxLjMtMS4xIDMuMS0uNCA1LjQuNiAyLjIgMi4xIDQuNyA0LjYgNy40IDEwLjQgMTIuMiAyMy4zIDI1LjIgMzguNiAzOXMzNS42IDI5LjQgNjAuOSA0Ni44YzI1LjMgMTcuNCA1MS44IDMyLjkgNzkuMyA0Ni40IDI3LjYgMTMuNSA1OS42IDI0LjkgOTYuMSAzNC4xczczIDEzLjggMTA5LjQgMTMuOGMzNi4yIDAgNzEuNC0zLjcgMTA1LjUtMTAuOSAzNC4yLTcuMyA2My0xNS45IDg2LjUtMjUuOSAyMy40LTkuOSA0NS0yMSA2NC44LTMzIDE5LjgtMTIgMzQuNC0yMi4yIDQzLjktMzAuMyA5LjUtOC4yIDE2LjMtMTQuNiAyMC4yLTE5LjQgNC42LTUuNyA2LjktMTAuNiA2LjktMTQuOS4xLTQuNS0xLjctNy4xLTUtNy45ek01MjcuNCAzNDguMWMtMTUuMiAxLjMtMzMuNSA0LjEtNTUgOC4zLTIxLjUgNC4xLTQxLjQgOS4zLTU5LjggMTUuNHMtMzcuMiAxNC42LTU2LjMgMjUuNGMtMTkuMiAxMC44LTM1LjUgMjMuMi00OSAzN3MtMjQuNSAzMS4xLTMzLjEgNTJjLTguNiAyMC44LTEyLjkgNDMuNy0xMi45IDY4LjcgMCAyNy4xIDQuNyA1MS4yIDE0LjMgNzIuNSA5LjUgMjEuMyAyMi4yIDM4IDM4LjIgNTAuNCAxNS45IDEyLjQgMzQgMjIuMSA1NCAyOS4yIDIwIDcuMSA0MS4yIDEwLjMgNjMuMiA5LjQgMjItLjkgNDMuNS00LjMgNjQuNC0xMC4zIDIwLjgtNS45IDQwLjQtMTUuNCA1OC42LTI4LjMgMTguMi0xMi45IDMzLjEtMjguMiA0NC44LTQ1LjcgNC4zIDYuNiA4LjEgMTEuNSAxMS41IDE0LjdsOC43IDguOWM1LjggNS45IDE0LjcgMTQuNiAyNi43IDI2LjEgMTEuOSAxMS41IDI0LjEgMjIuNyAzNi4zIDMzLjdsMTA0LjQtOTkuOS02LTQuOWMtNC4zLTMuMy05LjQtOC0xNS4yLTE0LjMtNS44LTYuMi0xMS42LTEzLjEtMTcuMi0yMC41LTUuNy03LjQtMTAuNi0xNi4xLTE0LjctMjUuOS00LjEtOS44LTYuMi0xOS4zLTYuMi0yOC41VjI1OC43YzAtMTAuMS0xLjktMjEtNS43LTMyLjgtMy45LTExLjctMTAuNy0yNC41LTIwLjctMzguMy0xMC0xMy44LTIyLjQtMjYuMi0zNy4yLTM3LTE0LjktMTAuOC0zNC43LTIwLTU5LjYtMjcuNC0yNC44LTcuNC01Mi42LTExLjEtODMuMi0xMS4xLTMxLjMgMC02MC40IDMuNy04Ny42IDEwLjktMjcuMSA3LjMtNTAuMyAxNy02OS43IDI5LjItMTkuMyAxMi4yLTM1LjkgMjYuMy00OS43IDQyLjQtMTMuOCAxNi4xLTI0LjEgMzIuOS0zMC44IDUwLjQtNi43IDE3LjUtMTAuMSAzNS4yLTEwLjEgNTMuMUw0MDggMzEwYzUuNS0xNi40IDEyLjktMzAuNiAyMi00Mi44IDkuMi0xMi4yIDE3LjktMjEgMjUuOC0yNi41IDgtNS41IDE2LjYtOS45IDI1LjctMTMuMiA5LjItMy4zIDE1LjQtNSAxOC42LTUuNCAzLjItLjMgNS43LS40IDcuNi0uNCAyNi43IDAgNDUuMiA3LjkgNTUuNiAyMy42IDYuNSA5LjUgOS43IDIzLjkgOS43IDQzLjN2NTYuNmMtMTUuMi42LTMwLjQgMS42LTQ1LjYgMi45ek01NzMuMSA1MDBjMCAxNi42LTIuMiAzMS43LTYuNSA0NS05LjIgMjkuMS0yNi43IDQ3LjQtNTIuNCA1NC44LTIyLjQgNi42LTQzLjcgMy4zLTYzLjktOS44LTIxLjUtMTQtMzIuMi0zMy44LTMyLjItNTkuMyAwLTE5LjkgNS0zNi45IDE1LTUxLjEgMTAtMTQuMSAyMy4zLTI0LjcgNDAtMzEuN3MzMy0xMiA0OS0xNC45YzE1LjktMyAzMy00LjggNTEtNS40VjUwMHptMzM1LjIgMjE4LjljLTQuMy01LjQtMTUuOS04LjktMzQuOS0xMC43LTE5LTEuOC0zNS41LTEuNy00OS43LjQtMTUuMyAxLjgtMzEuMSA2LjItNDcuMyAxMy40LTE2LjMgNy4xLTIzLjQgMTMuMS0yMS42IDE3LjhsLjcgMS4zLjkuNyAxLjQuMmg0LjZjLjggMCAxLjgtLjEgMy4yLS4yIDEuNC0uMSAyLjctLjMgMy45LS40IDEuMi0uMSAyLjktLjMgNS4xLS40IDIuMS0uMSA0LjEtLjQgNi0uNy4zIDAgMy43LS4zIDEwLjMtLjkgNi42LS42IDExLjQtMSAxNC4zLTEuMyAyLjktLjMgNy44LS42IDE0LjUtLjkgNi43LS4zIDEyLjEtLjMgMTYuMSAwIDQgLjMgOC41LjcgMTMuNiAxLjEgNS4xLjQgOS4yIDEuMyAxMi40IDIuNyAzLjIgMS4zIDUuNiAzIDcuMSA1LjEgNS4yIDYuNiA0LjIgMjEuMi0zIDQzLjlzLTE0IDQwLjgtMjAuNCA1NC4yYy0yLjggNS43LTIuOCA5LjIgMCAxMC43czYuNy4xIDExLjktNGMxNS42LTEyLjIgMjguNi0zMC42IDM5LjEtNTUuMyA2LjEtMTQuNiAxMC41LTI5LjggMTMuMS00NS43IDIuNC0xNS45IDItMjYuMi0xLjMtMzF6JykpO1xuZXhwb3J0cy5BbnRDbG91ZE91dGxpbmUgPSBnZXRJY29uKCdhbnQtY2xvdWQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMzc4LjkgNzM4Yy0zLjEgMC02LjEtLjUtOC44LTEuNWw0LjQgMzAuN2gyNi4zbC0xNS41LTI5LjljLTIuMS41LTQuMi43LTYuNC43em00MjEtMjkxLjJjLTEyLjYgMC0yNC44IDEuNS0zNi41IDQuMi0yMS40LTM4LjQtNjIuMy02NC4zLTEwOS4zLTY0LjMtNi45IDAtMTMuNi42LTIwLjIgMS42LTM1LjQtNzcuNC0xMTMuNC0xMzEuMS0yMDMuOS0xMzEuMS0xMTIuMyAwLTIwNS4zIDgyLjYtMjIxLjYgMTkwLjRDMTI3LjMgNDU1LjUgNjQgNTIzLjggNjQgNjA3YzAgODguNCA3MS42IDE2MC4xIDE2MCAxNjAuMmg1MGwxMy4yLTI3LjZjLTI2LjItOC4zLTQzLjMtMjktMzkuMS00OC44IDQuNi0yMS42IDMyLjgtMzMuOSA2My4xLTI3LjUgMjIuOSA0LjkgNDAuNCAxOS4xIDQ1LjUgMzUuMWEyNi4xIDI2LjEgMCAwIDEgMjIuMS0xMi40aC4yYy0uOC0zLjItMS4yLTYuNS0xLjItOS45IDAtMjAuMSAxNC44LTM2LjcgMzQuMS0zOS42di0yNS40YzAtNC40IDMuNi04IDgtOHM4IDMuNiA4IDh2MjYuM2M0LjYgMS4yIDguOCAzLjIgMTIuNiA1LjhsMTkuNS0yMS40YzMtMy4zIDgtMy41IDExLjMtLjUgMy4zIDMgMy41IDggLjUgMTEuM2wtMjAgMjItLjIuMmE0MCA0MCAwIDAgMS00Ni45IDU5LjJjLS40IDUuNi0yLjYgMTAuNy02IDE0LjhsMjAgMzguNEg4MDR2LS4xYzg2LjUtMi4yIDE1Ni03MyAxNTYtMTYwLjEgMC04OC41LTcxLjctMTYwLjItMTYwLjEtMTYwLjJ6TTMzOC4yIDczNy4ybC00LjMgMzBoMjQuNGwtNS45LTQxLjVjLTMuNSA0LjYtOC4zIDguNS0xNC4yIDExLjV6TTc5Ny41IDMwNWE0OCA0OCAwIDEgMCA5NiAwIDQ4IDQ4IDAgMSAwLTk2IDB6bS02NS43IDYxLjNhMjQgMjQgMCAxIDAgNDggMCAyNCAyNCAwIDEgMC00OCAwek0zMDMuNCA3NDIuOWwtMTEuNiAyNC4zaDI2bDMuNS0yNC43Yy01LjcuOC0xMS43IDEtMTcuOS40eicpKTtcbmV4cG9ydHMuQXBhcnRtZW50T3V0bGluZSA9IGdldEljb24oJ2FwYXJ0bWVudCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MDggNjQwSDgwNFY0ODhjMC00LjQtMy42LTgtOC04SDU0OHYtOTZoMTA4YzguOCAwIDE2LTcuMiAxNi0xNlY4MGMwLTguOC03LjItMTYtMTYtMTZIMzY4Yy04LjggMC0xNiA3LjItMTYgMTZ2Mjg4YzAgOC44IDcuMiAxNiAxNiAxNmgxMDh2OTZIMjI4Yy00LjQgMC04IDMuNi04IDh2MTUySDExNmMtOC44IDAtMTYgNy4yLTE2IDE2djI4OGMwIDguOCA3LjIgMTYgMTYgMTZoMjg4YzguOCAwIDE2LTcuMiAxNi0xNlY2NTZjMC04LjgtNy4yLTE2LTE2LTE2SDI5MnYtODhoNDQwdjg4SDYyMGMtOC44IDAtMTYgNy4yLTE2IDE2djI4OGMwIDguOCA3LjIgMTYgMTYgMTZoMjg4YzguOCAwIDE2LTcuMiAxNi0xNlY2NTZjMC04LjgtNy4yLTE2LTE2LTE2em0tNTY0IDc2djE2OEgxNzZWNzE2aDE2OHptODQtNDA4VjE0MGgxNjh2MTY4SDQyOHptNDIwIDU3Nkg2ODBWNzE2aDE2OHYxNjh6JykpO1xuZXhwb3J0cy5BbnREZXNpZ25PdXRsaW5lID0gZ2V0SWNvbignYW50LWRlc2lnbicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ003MTYuMyAzMTMuOGMxOS0xOC45IDE5LTQ5LjcgMC02OC42bC02OS45LTY5LjkuMS4xYy0xOC41LTE4LjUtNTAuMy01MC4zLTk1LjMtOTUuMi0yMS4yLTIwLjctNTUuNS0yMC41LTc2LjUuNUw4MC45IDQ3NC4yYTUzLjg0IDUzLjg0IDAgMCAwIDAgNzYuNEw0NzQuNiA5NDRhNTQuMTQgNTQuMTQgMCAwIDAgNzYuNSAwbDE2NS4xLTE2NWMxOS0xOC45IDE5LTQ5LjcgMC02OC42YTQ4LjcgNDguNyAwIDAgMC02OC43IDBsLTEyNSAxMjUuMmMtNS4yIDUuMi0xMy4zIDUuMi0xOC41IDBMMTg5LjUgNTIxLjRjLTUuMi01LjItNS4yLTEzLjMgMC0xOC41bDMxNC40LTMxNC4yYy40LS40LjktLjcgMS4zLTEuMSA1LjItNC4xIDEyLjQtMy43IDE3LjIgMS4xbDEyNS4yIDEyNS4xYzE5IDE5IDQ5LjggMTkgNjguNyAwek00MDguNiA1MTQuNGExMDYuMyAxMDYuMiAwIDEgMCAyMTIuNiAwIDEwNi4zIDEwNi4yIDAgMSAwLTIxMi42IDB6bTUzNi4yLTM4LjZMODIxLjkgMzUzLjVjLTE5LTE4LjktNDkuOC0xOC45LTY4LjcuMWE0OC40IDQ4LjQgMCAwIDAgMCA2OC42bDgzIDgyLjljNS4yIDUuMiA1LjIgMTMuMyAwIDE4LjVsLTgxLjggODEuN2E0OC40IDQ4LjQgMCAwIDAgMCA2OC42IDQ4LjcgNDguNyAwIDAgMCA2OC43IDBsMTIxLjgtMTIxLjdhNTMuOTMgNTMuOTMgMCAwIDAtLjEtNzYuNHonKSk7XG5leHBvcnRzLkFyZWFDaGFydE91dGxpbmUgPSBnZXRJY29uKCdhcmVhLWNoYXJ0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4OCA3OTJIMjAwVjE2OGMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2Njg4YzAgNC40IDMuNiA4IDggOGg3NTJjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS02MTYtNjRoNTM2YzQuNCAwIDgtMy42IDgtOFYyODRjMC03LjItOC43LTEwLjctMTMuNy01LjdMNTkyIDQ4OC42bC0xMjUuNC0xMjRhOC4wMyA4LjAzIDAgMCAwLTExLjMgMGwtMTg5IDE4OS42YTcuODcgNy44NyAwIDAgMC0yLjMgNS42VjcyMGMwIDQuNCAzLjYgOCA4IDh6JykpO1xuZXhwb3J0cy5BcnJvd0xlZnRPdXRsaW5lID0gZ2V0SWNvbignYXJyb3ctbGVmdCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NzIgNDc0SDI4Ni45bDM1MC4yLTMwNGM1LjYtNC45IDIuMi0xNC01LjItMTRoLTg4LjVjLTMuOSAwLTcuNiAxLjQtMTAuNSAzLjlMMTU1IDQ4Ny44YTMxLjk2IDMxLjk2IDAgMCAwIDAgNDguM0w1MzUuMSA4NjZjMS41IDEuMyAzLjMgMiA1LjIgMmg5MS41YzcuNCAwIDEwLjgtOS4yIDUuMi0xNEwyODYuOSA1NTBIODcyYzQuNCAwIDgtMy42IDgtOHYtNjBjMC00LjQtMy42LTgtOC04eicpKTtcbmV4cG9ydHMuQXJyb3dEb3duT3V0bGluZSA9IGdldEljb24oJ2Fycm93LWRvd24nLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODYyIDQ2NS4zaC04MWMtNC42IDAtOSAyLTEyLjEgNS41TDU1MCA3MjMuMVYxNjBjMC00LjQtMy42LTgtOC04aC02MGMtNC40IDAtOCAzLjYtOCA4djU2My4xTDI1NS4xIDQ3MC44Yy0zLTMuNS03LjQtNS41LTEyLjEtNS41aC04MWMtNi44IDAtMTAuNSA4LjEtNiAxMy4yTDQ4Ny45IDg2MWEzMS45NiAzMS45NiAwIDAgMCA0OC4zIDBMODY4IDQ3OC41YzQuNS01LjIuOC0xMy4yLTYtMTMuMnonKSk7XG5leHBvcnRzLkFycm93VXBPdXRsaW5lID0gZ2V0SWNvbignYXJyb3ctdXAnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODY4IDU0NS41TDUzNi4xIDE2M2EzMS45NiAzMS45NiAwIDAgMC00OC4zIDBMMTU2IDU0NS41YTcuOTcgNy45NyAwIDAgMCA2IDEzLjJoODFjNC42IDAgOS0yIDEyLjEtNS41TDQ3NCAzMDAuOVY4NjRjMCA0LjQgMy42IDggOCA4aDYwYzQuNCAwIDgtMy42IDgtOFYzMDAuOWwyMTguOSAyNTIuM2MzIDMuNSA3LjQgNS41IDEyLjEgNS41aDgxYzYuOCAwIDEwLjUtOCA2LTEzLjJ6JykpO1xuZXhwb3J0cy5BcnJvd3NBbHRPdXRsaW5lID0gZ2V0SWNvbignYXJyb3dzLWFsdCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NTUgMTYwLjFsLTE4OS4yIDIzLjVjLTYuNi44LTkuMyA4LjgtNC43IDEzLjVsNTQuNyA1NC43LTE1My41IDE1My41YTguMDMgOC4wMyAwIDAgMCAwIDExLjNsNDUuMSA0NS4xYzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBsMTUzLjYtMTUzLjYgNTQuNyA1NC43YTcuOTQgNy45NCAwIDAgMCAxMy41LTQuN0w4NjMuOSAxNjlhNy45IDcuOSAwIDAgMC04LjktOC45ek00MTYuNiA1NjIuM2E4LjAzIDguMDMgMCAwIDAtMTEuMyAwTDI1MS44IDcxNS45bC01NC43LTU0LjdhNy45NCA3Ljk0IDAgMCAwLTEzLjUgNC43TDE2MC4xIDg1NWMtLjYgNS4yIDMuNyA5LjUgOC45IDguOWwxODkuMi0yMy41YzYuNi0uOCA5LjMtOC44IDQuNy0xMy41bC01NC43LTU0LjcgMTUzLjYtMTUzLjZjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM2wtNDUuMi00NXonKSk7XG5leHBvcnRzLkFycm93UmlnaHRPdXRsaW5lID0gZ2V0SWNvbignYXJyb3ctcmlnaHQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODY5IDQ4Ny44TDQ5MS4yIDE1OS45Yy0yLjktMi41LTYuNi0zLjktMTAuNS0zLjloLTg4LjVjLTcuNCAwLTEwLjggOS4yLTUuMiAxNGwzNTAuMiAzMDRIMTUyYy00LjQgMC04IDMuNi04IDh2NjBjMCA0LjQgMy42IDggOCA4aDU4NS4xTDM4Ni45IDg1NGMtNS42IDQuOS0yLjIgMTQgNS4yIDE0aDkxLjVjMS45IDAgMy44LS43IDUuMi0yTDg2OSA1MzYuMmEzMi4wNyAzMi4wNyAwIDAgMCAwLTQ4LjR6JykpO1xuZXhwb3J0cy5BdWRpdE91dGxpbmUgPSBnZXRJY29uKCdhdWRpdCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ00yOTYgMjUwYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDM4NGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOEgyOTZ6bTE4NCAxNDRIMjk2Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDE4NGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOHptLTQ4IDQ1OEgyMDhWMTQ4aDU2MHYzMjBjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFYxMDhjMC0xNy43LTE0LjMtMzItMzItMzJIMTY4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3ODRjMCAxNy43IDE0LjMgMzIgMzIgMzJoMjY0YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em00NDAtODhINzI4di0zNi42YzQ2LjMtMTMuOCA4MC01Ni42IDgwLTEwNy40IDAtNjEuOS01MC4xLTExMi0xMTItMTEycy0xMTIgNTAuMS0xMTIgMTEyYzAgNTAuNyAzMy43IDkzLjYgODAgMTA3LjRWNzY0SDUyMGMtOC44IDAtMTYgNy4yLTE2IDE2djE1MmMwIDguOCA3LjIgMTYgMTYgMTZoMzUyYzguOCAwIDE2LTcuMiAxNi0xNlY3ODBjMC04LjgtNy4yLTE2LTE2LTE2ek02NDYgNjIwYzAtMjcuNiAyMi40LTUwIDUwLTUwczUwIDIyLjQgNTAgNTAtMjIuNCA1MC01MCA1MC01MC0yMi40LTUwLTUwem0xODAgMjY2SDU2NnYtNjBoMjYwdjYweicpKTtcbmV4cG9ydHMuQmFyQ2hhcnRPdXRsaW5lID0gZ2V0SWNvbignYmFyLWNoYXJ0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4OCA3OTJIMjAwVjE2OGMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2Njg4YzAgNC40IDMuNiA4IDggOGg3NTJjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS02MDAtODBoNTZjNC40IDAgOC0zLjYgOC04VjU2MGMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2MTQ0YzAgNC40IDMuNiA4IDggOHptMTUyIDBoNTZjNC40IDAgOC0zLjYgOC04VjM4NGMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2MzIwYzAgNC40IDMuNiA4IDggOHptMTUyIDBoNTZjNC40IDAgOC0zLjYgOC04VjQ2MmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2MjQyYzAgNC40IDMuNiA4IDggOHptMTUyIDBoNTZjNC40IDAgOC0zLjYgOC04VjMwNGMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NDAwYzAgNC40IDMuNiA4IDggOHonKSk7XG5leHBvcnRzLkJhcmNvZGVPdXRsaW5lID0gZ2V0SWNvbignYmFyY29kZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ00xMjAgMTYwSDcyYy00LjQgMC04IDMuNi04IDh2Njg4YzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LThWMTY4YzAtNC40LTMuNi04LTgtOHptODMzIDBoLTQ4Yy00LjQgMC04IDMuNi04IDh2Njg4YzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LThWMTY4YzAtNC40LTMuNi04LTgtOHpNMjAwIDczNmgxMTJjNC40IDAgOC0zLjYgOC04VjE2OGMwLTQuNC0zLjYtOC04LThIMjAwYy00LjQgMC04IDMuNi04IDh2NTYwYzAgNC40IDMuNiA4IDggOHptMzIxIDBoNDhjNC40IDAgOC0zLjYgOC04VjE2OGMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2NTYwYzAgNC40IDMuNiA4IDggOHptMTI2IDBoMTc4YzQuNCAwIDgtMy42IDgtOFYxNjhjMC00LjQtMy42LTgtOC04SDY0N2MtNC40IDAtOCAzLjYtOCA4djU2MGMwIDQuNCAzLjYgOCA4IDh6bS0yNTUgMGg0OGM0LjQgMCA4LTMuNiA4LThWMTY4YzAtNC40LTMuNi04LTgtOGgtNDhjLTQuNCAwLTggMy42LTggOHY1NjBjMCA0LjQgMy42IDggOCA4em0tNzkgNjRIMjAxYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDExMmM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOHptMjU3IDBoLTQ4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04em0yNTYgMEg2NDhjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMTc4YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04em0tMzg1IDBoLTQ4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04eicpKTtcbmV4cG9ydHMuQmFyc091dGxpbmUgPSBnZXRJY29uKCdiYXJzJywgb3V0bGluZSwgZ2V0Tm9kZShub3JtYWxWaWV3Qm94LCAnTTkxMiAxOTJIMzI4Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCAyODRIMzI4Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCAyODRIMzI4Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNMTA0IDIyOGE1NiA1NiAwIDEgMCAxMTIgMCA1NiA1NiAwIDEgMC0xMTIgMHptMCAyODRhNTYgNTYgMCAxIDAgMTEyIDAgNTYgNTYgMCAxIDAtMTEyIDB6bTAgMjg0YTU2IDU2IDAgMSAwIDExMiAwIDU2IDU2IDAgMSAwLTExMiAweicpKTtcbmV4cG9ydHMuQmdDb2xvcnNPdXRsaW5lID0gZ2V0SWNvbignYmctY29sb3JzJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTc2Ni40IDc0NC4zYzQzLjcgMCA3OS40LTM2LjIgNzkuNC04MC41IDAtNTMuNS03OS40LTE0MC44LTc5LjQtMTQwLjhTNjg3IDYxMC4zIDY4NyA2NjMuOGMwIDQ0LjMgMzUuNyA4MC41IDc5LjQgODAuNXptLTM3Ny4xLTQ0LjFjNy4xIDcuMSAxOC42IDcuMSAyNS42IDBsMjU2LjEtMjU2YzcuMS03LjEgNy4xLTE4LjYgMC0yNS42bC0yNTYtMjU2Yy0uNi0uNi0xLjMtMS4yLTItMS43bC03OC4yLTc4LjJhOS4xMSA5LjExIDAgMCAwLTEyLjggMGwtNDggNDhhOS4xMSA5LjExIDAgMCAwIDAgMTIuOGw2Ny4yIDY3LjItMjA3LjggMjA3LjljLTcuMSA3LjEtNy4xIDE4LjYgMCAyNS42bDI1NS45IDI1NnptMTIuOS00NDguNmwxNzguOSAxNzguOUgyMjMuNGwxNzguOC0xNzguOXpNOTA0IDgxNkgxMjBjLTQuNCAwLTggMy42LTggOHY4MGMwIDQuNCAzLjYgOCA4IDhoNzg0YzQuNCAwIDgtMy42IDgtOHYtODBjMC00LjQtMy42LTgtOC04eicpKTtcbmV4cG9ydHMuQmVoYW5jZU91dGxpbmUgPSBnZXRJY29uKCdiZWhhbmNlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTYzNCAyOTQuM2gxOTkuNXY0OC40SDYzNHpNNDM0LjEgNDg1LjhjNDQuMS0yMS4xIDY3LjItNTMuMiA2Ny4yLTEwMi44IDAtOTguMS03My0xMjEuOS0xNTcuMy0xMjEuOUgxMTJ2NDkyLjRoMjM4LjVjODkuNCAwIDE3My4zLTQzIDE3My4zLTE0MyAwLTYxLjgtMjkuMi0xMDcuNS04OS43LTEyNC43ek0yMjAuMiAzNDUuMWgxMDEuNWMzOS4xIDAgNzQuMiAxMC45IDc0LjIgNTYuMyAwIDQxLjgtMjcuMyA1OC42LTY2IDU4LjZIMjIwLjJWMzQ1LjF6bTExNS41IDMyNC44SDIyMC4xVjUzNC4zSDMzOGM0Ny42IDAgNzcuNyAxOS45IDc3LjcgNzAuMyAwIDQ5LjYtMzUuOSA2NS4zLTgwIDY1LjN6bTU3NS44LTg5LjVjMC0xMDUuNS02MS43LTE5My40LTE3My4zLTE5My40LTEwOC41IDAtMTgyLjMgODEuNy0xODIuMyAxODguOCAwIDExMSA2OS45IDE4Ny4yIDE4Mi4zIDE4Ny4yIDg1LjEgMCAxNDAuMi0zOC4zIDE2Ni43LTEyMGgtODYuM2MtOS40IDMwLjUtNDcuNiA0Ni41LTc3LjMgNDYuNS01Ny40IDAtODcuNC0zMy42LTg3LjQtOTAuN2gyNTYuOWMuMy01LjkuNy0xMi4xLjctMTguNHpNNjUzLjkgNTM3YzMuMS00Ni45IDM0LjQtNzYuMiA4MS4yLTc2LjIgNDkuMiAwIDczLjggMjguOSA3OC4xIDc2LjJINjUzLjl6JykpO1xuZXhwb3J0cy5CbG9ja091dGxpbmUgPSBnZXRJY29uKCdibG9jaycsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NTYgMzc2SDY0OFYxNjhjMC04LjgtNy4yLTE2LTE2LTE2SDE2OGMtOC44IDAtMTYgNy4yLTE2IDE2djQ2NGMwIDguOCA3LjIgMTYgMTYgMTZoMjA4djIwOGMwIDguOCA3LjIgMTYgMTYgMTZoNDY0YzguOCAwIDE2LTcuMiAxNi0xNlYzOTJjMC04LjgtNy4yLTE2LTE2LTE2em0tNDgwIDE2djE4OEgyMjBWMjIwaDM2MHYxNTZIMzkyYy04LjggMC0xNiA3LjItMTYgMTZ6bTIwNCA1MnYxMzZINDQ0VjQ0NGgxMzZ6bTIyNCAzNjBINDQ0VjY0OGgxODhjOC44IDAgMTYtNy4yIDE2LTE2VjQ0NGgxNTZ2MzYweicpKTtcbmV4cG9ydHMuQm9sZE91dGxpbmUgPSBnZXRJY29uKCdib2xkJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTY5Ny44IDQ4MS40YzMzLjYtMzUgNTQuMi04Mi4zIDU0LjItMTM0LjN2LTEwLjJDNzUyIDIyOS4zIDY2My45IDE0MiA1NTUuMyAxNDJIMjU5LjRjLTE1LjEgMC0yNy40IDEyLjMtMjcuNCAyNy40djY3OS4xYzAgMTYuMyAxMy4yIDI5LjUgMjkuNSAyOS41aDMxOC43YzExNyAwIDIxMS44LTk0LjIgMjExLjgtMjEwLjV2LTExYzAtNzMtMzcuNC0xMzcuMy05NC4yLTE3NS4xek0zMjggMjM4aDIyNC43YzU3LjEgMCAxMDMuMyA0NC40IDEwMy4zIDk5LjN2OS41YzAgNTQuOC00Ni4zIDk5LjMtMTAzLjMgOTkuM0gzMjhWMjM4em0zNjYuNiA0MjkuNGMwIDYyLjktNTEuNyAxMTMuOS0xMTUuNSAxMTMuOUgzMjhWNTQyLjdoMjUxLjFjNjMuOCAwIDExNS41IDUxIDExNS41IDExMy45djEwLjh6JykpO1xuZXhwb3J0cy5Cb3JkZXJCb3R0b21PdXRsaW5lID0gZ2V0SWNvbignYm9yZGVyLWJvdHRvbScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NzIgODA4SDE1MmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg3MjBjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS03MjAtOTRoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em0wLTQ5OGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6bTAgMzMyaDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptMC0xNjZoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em0xNjYgMTY2aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptMC0zMzJoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em0zMzIgMGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6bTAgMzMyaDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptMjIyLTcyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptLTM4OCA3Mmg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6bTM4OC00MDRoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0tMzg4IDcyaDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptMzg4IDQyNmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS0zODggNzJoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em0zODgtNDA0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptLTM4OCA3Mmg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6JykpO1xuZXhwb3J0cy5Cb3JkZXJMZWZ0T3V0bGluZSA9IGdldEljb24oJ2JvcmRlci1sZWZ0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTIwOCAxNDRoLTU2Yy00LjQgMC04IDMuNi04IDh2NzIwYzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LThWMTUyYzAtNC40LTMuNi04LTgtOHptMTY2IDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em00OTggMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS0zMzIgMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTE2NiAwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNNTQwIDMxMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTMzMiAwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCAzMzJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0tMzMyIDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wIDE2NmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtMzMyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMzMyIDMzMmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtMzMyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNMzc0IDgwOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtMzMyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMzMyIDMzMmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtMzMyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHonKSk7XG5leHBvcnRzLkJvcmRlck91dGVyT3V0bGluZSA9IGdldEljb24oJ2JvcmRlci1vdXRlcicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2ek00ODQgMzY2aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHpNMzAyIDU0OGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6bTM2NCAwaDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptLTE4MiAwaDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptMCAxODJoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4eicpKTtcbmV4cG9ydHMuQm9yZGVySW5uZXJPdXRsaW5lID0gZ2V0SWNvbignYm9yZGVyLWlubmVyJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg3MiA0NzZINTQ4VjE0NGgtNzJ2MzMySDE1MmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGgzMjR2MzMyaDcyVjU0OGgzMjRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtMTY2aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCA0OThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wLTY2NGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgNDk4aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNNjUwIDIxNmg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6bTU2IDU5MmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS0zMzIgMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS01Ni01OTJoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em0tMTY2IDBoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em01NiA1OTJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0tNTYtNDI2aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptNTYgMjYwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHonKSk7XG5leHBvcnRzLkJvcmRlclJpZ2h0T3V0bGluZSA9IGdldEljb24oJ2JvcmRlci1yaWdodCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NzIgMTQ0aC01NmMtNC40IDAtOCAzLjYtOCA4djcyMGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04VjE1MmMwLTQuNC0zLjYtOC04LTh6bS0xNjYgMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS00OTggMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTMzMiAwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptLTE2NiAwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMTY2IDE2NmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS0zMzIgMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgMzMyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMzMyIDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wIDE2NmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtMzMyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNMjA4IDgwOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtMzMyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptNDk4IDMzMmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtMzMyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNMzc0IDgwOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtMzMyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHonKSk7XG5leHBvcnRzLkJvcmRlckhvcml6b250YWxPdXRsaW5lID0gZ2V0SWNvbignYm9yZGVyLWhvcml6b250YWwnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTQwIDE0NGgtNTZjLTQuNCAwLTggMy42LTggOHY3MjBjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFYxNTJjMC00LjQtMy42LTgtOC04em0tMTY2IDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em00OTggMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS02NjQgMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTQ5OCAwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNMjA4IDMxMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTY2NCAwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCAzMzJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0tNjY0IDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wIDE2NmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtMzMyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptNjY0IDMzMmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtMzMyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNMzc0IDgwOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtMzMyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMzMyIDMzMmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtMzMyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHonKSk7XG5leHBvcnRzLkJvcmRlclRvcE91dGxpbmUgPSBnZXRJY29uKCdib3JkZXItdG9wJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg3MiAxNDRIMTUyYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDcyMGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNMjA4IDMxMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgNDk4aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC0zMzJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wIDE2NmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTE2Ni0xNjZoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wIDMzMmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTMzMiAwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC0zMzJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0xNjYgMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS0zMzIgMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTMzMiAzMzJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0tMzMyIDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0zMzItNDk4aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptLTMzMiAwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMzMyIDMzMmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS0zMzIgMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6JykpO1xuZXhwb3J0cy5Cb3JkZXJWZXJ0aWNsZU91dGxpbmUgPSBnZXRJY29uKCdib3JkZXItdmVydGljbGUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODcyIDQ3NkgxNTJjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNzIwYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wLTE2NmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgNDk4aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC02NjRoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wIDQ5OGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6TTY1MCAyMTZoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em01NiA1OTJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0tMzMyIDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0tNTYtNTkyaDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptLTE2NiAwaDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptMzMyIDBoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4ek0yMDggODA4aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMzMyIDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04ek0xNTIgMzgyaDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptMzMyIDBoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4ek0yMDggNjQyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMzMyIDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04eicpKTtcbmV4cG9ydHMuQm9yZGVyT3V0bGluZSA9IGdldEljb24oJ2JvcmRlcicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2eicpKTtcbmV4cG9ydHMuQnJhbmNoZXNPdXRsaW5lID0gZ2V0SWNvbignYnJhbmNoZXMnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNzQwIDE2MWMtNjEuOCAwLTExMiA1MC4yLTExMiAxMTIgMCA1MC4xIDMzLjEgOTIuNiA3OC41IDEwNi45djk1LjlMMzIwIDYwMi40VjMxOC4xYzQ0LjItMTUgNzYtNTYuOSA3Ni0xMDYuMSAwLTYxLjgtNTAuMi0xMTItMTEyLTExMnMtMTEyIDUwLjItMTEyIDExMmMwIDQ5LjIgMzEuOCA5MSA3NiAxMDYuMVY3MDZjLTQ0LjIgMTUtNzYgNTYuOS03NiAxMDYuMSAwIDYxLjggNTAuMiAxMTIgMTEyIDExMnMxMTItNTAuMiAxMTItMTEyYzAtNDkuMi0zMS44LTkxLTc2LTEwNi4xdi0yNy44bDQyMy41LTEzOC43YTUwLjUyIDUwLjUyIDAgMCAwIDM0LjktNDguMlYzNzguMmM0Mi45LTE1LjggNzMuNi01NyA3My42LTEwNS4yIDAtNjEuOC01MC4yLTExMi0xMTItMTEyem0tNTA0IDUxYTQ4LjAxIDQ4LjAxIDAgMCAxIDk2IDAgNDguMDEgNDguMDEgMCAwIDEtOTYgMHptOTYgNjAwYTQ4LjAxIDQ4LjAxIDAgMCAxLTk2IDAgNDguMDEgNDguMDEgMCAwIDEgOTYgMHptNDA4LTQ5MWE0OC4wMSA0OC4wMSAwIDAgMSAwLTk2IDQ4LjAxIDQ4LjAxIDAgMCAxIDAgOTZ6JykpO1xuZXhwb3J0cy5DaGVja091dGxpbmUgPSBnZXRJY29uKCdjaGVjaycsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MTIgMTkwaC02OS45Yy05LjggMC0xOS4xIDQuNS0yNS4xIDEyLjJMNDA0LjcgNzI0LjUgMjA3IDQ3NGEzMiAzMiAwIDAgMC0yNS4xLTEyLjJIMTEyYy02LjcgMC0xMC40IDcuNy02LjMgMTIuOWwyNzMuOSAzNDdjMTIuOCAxNi4yIDM3LjQgMTYuMiA1MC4zIDBsNDg4LjQtNjE4LjljNC4xLTUuMS40LTEyLjgtNi4zLTEyLjh6JykpO1xuZXhwb3J0cy5DaU91dGxpbmUgPSBnZXRJY29uKCdjaScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6bTIxOC01NzIuMWgtNTAuNGMtNC40IDAtOCAzLjYtOCA4djM4NC4yYzAgNC40IDMuNiA4IDggOEg3MzBjNC40IDAgOC0zLjYgOC04VjMxOS45YzAtNC40LTMuNi04LTgtOHptLTI4MS40IDQ5LjZjNDkuNSAwIDgzLjEgMzEuNSA4NyA3Ny42LjQgNC4yIDMuOCA3LjQgOCA3LjRoNTIuNmMyLjQgMCA0LjQtMiA0LjQtNC40IDAtODEuMi02NC0xMzguMS0xNTIuMy0xMzguMUMzNDUuNCAzMDQgMjg2IDM3My41IDI4NiA0ODguNHY0OWMwIDExNCA1OS40IDE4Mi42IDE2Mi4zIDE4Mi42IDg4IDAgMTUyLjMtNTUuMSAxNTIuMy0xMzIuNSAwLTIuNC0yLTQuNC00LjQtNC40aC01Mi43Yy00LjIgMC03LjYgMy4yLTggNy4zLTQuMiA0My0zNy43IDcyLjQtODcgNzIuNC02MS4xIDAtOTUuNi00NC45LTk1LjYtMTI1LjJ2LTQ5LjNjLjEtODEuNCAzNC42LTEyNi44IDk1LjctMTI2Ljh6JykpO1xuZXhwb3J0cy5DbG9zZU91dGxpbmUgPSBnZXRJY29uKCdjbG9zZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ001NjMuOCA1MTJsMjYyLjUtMzEyLjljNC40LTUuMi43LTEzLjEtNi4xLTEzLjFoLTc5LjhjLTQuNyAwLTkuMiAyLjEtMTIuMyA1LjdMNTExLjYgNDQ5LjggMjk1LjEgMTkxLjdjLTMtMy42LTcuNS01LjctMTIuMy01LjdIMjAzYy02LjggMC0xMC41IDcuOS02LjEgMTMuMUw0NTkuNCA1MTIgMTk2LjkgODI0LjlBNy45NSA3Ljk1IDAgMCAwIDIwMyA4MzhoNzkuOGM0LjcgMCA5LjItMi4xIDEyLjMtNS43bDIxNi41LTI1OC4xIDIxNi41IDI1OC4xYzMgMy42IDcuNSA1LjcgMTIuMyA1LjdoNzkuOGM2LjggMCAxMC41LTcuOSA2LjEtMTMuMUw1NjMuOCA1MTJ6JykpO1xuZXhwb3J0cy5DbG91ZERvd25sb2FkT3V0bGluZSA9IGdldEljb24oJ2Nsb3VkLWRvd25sb2FkJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTYyNCA3MDYuM2gtNzQuMVY0NjRjMC00LjQtMy42LTgtOC04aC02MGMtNC40IDAtOCAzLjYtOCA4djI0Mi4zSDQwMGMtNi43IDAtMTAuNCA3LjctNi4zIDEyLjlsMTEyIDE0MS43YTggOCAwIDAgMCAxMi42IDBsMTEyLTE0MS43YzQuMS01LjIuNC0xMi45LTYuMy0xMi45eicsICdNODExLjQgMzY2LjdDNzY1LjYgMjQ1LjkgNjQ4LjkgMTYwIDUxMi4yIDE2MFMyNTguOCAyNDUuOCAyMTMgMzY2LjZDMTI3LjMgMzg5LjEgNjQgNDY3LjIgNjQgNTYwYzAgMTEwLjUgODkuNSAyMDAgMTk5LjkgMjAwSDMwNGM0LjQgMCA4LTMuNiA4LTh2LTYwYzAtNC40LTMuNi04LTgtOGgtNDAuMWMtMzMuNyAwLTY1LjQtMTMuNC04OS0zNy43LTIzLjUtMjQuMi0zNi01Ni44LTM0LjktOTAuNi45LTI2LjQgOS45LTUxLjIgMjYuMi03Mi4xIDE2LjctMjEuMyA0MC4xLTM2LjggNjYuMS00My43bDM3LjktOS45IDEzLjktMzYuNmM4LjYtMjIuOCAyMC42LTQ0LjEgMzUuNy02My40YTI0NS42IDI0NS42IDAgMCAxIDUyLjQtNDkuOWM0MS4xLTI4LjkgODkuNS00NC4yIDE0MC00NC4yczk4LjkgMTUuMyAxNDAgNDQuMmMxOS45IDE0IDM3LjUgMzAuOCA1Mi40IDQ5LjkgMTUuMSAxOS4zIDI3LjEgNDAuNyAzNS43IDYzLjRsMTMuOCAzNi41IDM3LjggMTBDODQ2LjEgNDU0LjUgODg0IDUwMy44IDg4NCA1NjBjMCAzMy4xLTEyLjkgNjQuMy0zNi4zIDg3LjdhMTIzLjA3IDEyMy4wNyAwIDAgMS04Ny42IDM2LjNINzIwYy00LjQgMC04IDMuNi04IDh2NjBjMCA0LjQgMy42IDggOCA4aDQwLjFDODcwLjUgNzYwIDk2MCA2NzAuNSA5NjAgNTYwYzAtOTIuNy02My4xLTE3MC43LTE0OC42LTE5My4zeicpKTtcbmV4cG9ydHMuQ2xvdWRTZXJ2ZXJPdXRsaW5lID0gZ2V0SWNvbignY2xvdWQtc2VydmVyJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTcwNCA0NDZIMzIwYy00LjQgMC04IDMuNi04IDh2NDAyYzAgNC40IDMuNiA4IDggOGgzODRjNC40IDAgOC0zLjYgOC04VjQ1NGMwLTQuNC0zLjYtOC04LTh6bS0zMjggNjRoMjcydjExN0gzNzZWNTEwem0yNzIgMjkwSDM3NlY2ODNoMjcydjExN3onLCAnTTQyNCA3NDhhMzIgMzIgMCAxIDAgNjQgMCAzMiAzMiAwIDEgMC02NCAwem0wLTE3OGEzMiAzMiAwIDEgMCA2NCAwIDMyIDMyIDAgMSAwLTY0IDB6JywgJ004MTEuNCAzNjguOUM3NjUuNiAyNDggNjQ4LjkgMTYyIDUxMi4yIDE2MlMyNTguOCAyNDcuOSAyMTMgMzY4LjhDMTI2LjkgMzkxLjUgNjMuNSA0NzAuMiA2NCA1NjMuNiA2NC42IDY2OCAxNDUuNiA3NTIuOSAyNDcuNiA3NjJjNC43LjQgOC43LTMuMyA4LjctOHYtNjAuNGMwLTQtMy03LjQtNy03LjktMjctMy40LTUyLjUtMTUuMi03Mi4xLTM0LjUtMjQtMjMuNS0zNy4yLTU1LjEtMzcuMi04OC42IDAtMjggOS4xLTU0LjQgMjYuMi03Ni40IDE2LjctMjEuNCA0MC4yLTM2LjkgNjYuMS00My43bDM3LjktMTAgMTMuOS0zNi43YzguNi0yMi44IDIwLjYtNDQuMiAzNS43LTYzLjUgMTQuOS0xOS4yIDMyLjYtMzYgNTIuNC01MCA0MS4xLTI4LjkgODkuNS00NC4yIDE0MC00NC4yczk4LjkgMTUuMyAxNDAgNDQuM2MxOS45IDE0IDM3LjUgMzAuOCA1Mi40IDUwIDE1LjEgMTkuMyAyNy4xIDQwLjcgMzUuNyA2My41bDEzLjggMzYuNiAzNy44IDEwYzU0LjIgMTQuNCA5Mi4xIDYzLjcgOTIuMSAxMjAgMCAzMy42LTEzLjIgNjUuMS0zNy4yIDg4LjYtMTkuNSAxOS4yLTQ0LjkgMzEuMS03MS45IDM0LjUtNCAuNS02LjkgMy45LTYuOSA3LjlWNzU0YzAgNC43IDQuMSA4LjQgOC44IDggMTAxLjctOS4yIDE4Mi41LTk0IDE4My4yLTE5OC4yLjYtOTMuNC02Mi43LTE3Mi4xLTE0OC42LTE5NC45eicpKTtcbmV4cG9ydHMuQ2xvdWRTeW5jT3V0bGluZSA9IGdldEljb24oJ2Nsb3VkLXN5bmMnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODExLjQgMzY4LjlDNzY1LjYgMjQ4IDY0OC45IDE2MiA1MTIuMiAxNjJTMjU4LjggMjQ3LjkgMjEzIDM2OC44QzEyNi45IDM5MS41IDYzLjUgNDcwLjIgNjQgNTYzLjYgNjQuNiA2NjggMTQ1LjYgNzUyLjkgMjQ3LjYgNzYyYzQuNy40IDguNy0zLjMgOC43LTh2LTYwLjRjMC00LTMtNy40LTctNy45LTI3LTMuNC01Mi41LTE1LjItNzIuMS0zNC41LTI0LTIzLjUtMzcuMi01NS4xLTM3LjItODguNiAwLTI4IDkuMS01NC40IDI2LjItNzYuNCAxNi43LTIxLjQgNDAuMi0zNi45IDY2LjEtNDMuN2wzNy45LTEwIDEzLjktMzYuN2M4LjYtMjIuOCAyMC42LTQ0LjIgMzUuNy02My41IDE0LjktMTkuMiAzMi42LTM2IDUyLjQtNTAgNDEuMS0yOC45IDg5LjUtNDQuMiAxNDAtNDQuMnM5OC45IDE1LjMgMTQwIDQ0LjNjMTkuOSAxNCAzNy41IDMwLjggNTIuNCA1MCAxNS4xIDE5LjMgMjcuMSA0MC43IDM1LjcgNjMuNWwxMy44IDM2LjYgMzcuOCAxMGM1NC4yIDE0LjQgOTIuMSA2My43IDkyLjEgMTIwIDAgMzMuNi0xMy4yIDY1LjEtMzcuMiA4OC42LTE5LjUgMTkuMi00NC45IDMxLjEtNzEuOSAzNC41LTQgLjUtNi45IDMuOS02LjkgNy45Vjc1NGMwIDQuNyA0LjEgOC40IDguOCA4IDEwMS43LTkuMiAxODIuNS05NCAxODMuMi0xOTguMi42LTkzLjQtNjIuNy0xNzIuMS0xNDguNi0xOTQuOXonLCAnTTM3Ni45IDY1Ni40YzEuOC0zMy41IDE1LjctNjQuNyAzOS41LTg4LjYgMjUuNC0yNS41IDYwLTM5LjggOTYtMzkuOCAzNi4yIDAgNzAuMyAxNC4xIDk2IDM5LjggMS40IDEuNCAyLjcgMi44IDQuMSA0LjNsLTI1IDE5LjZhOCA4IDAgMCAwIDMgMTQuMWw5OC4yIDI0YzUgMS4yIDkuOS0yLjYgOS45LTcuN2wuNS0xMDEuM2MwLTYuNy03LjYtMTAuNS0xMi45LTYuM0w2NjMgNTMyLjdjLTM2LjYtNDItOTAuNC02OC42LTE1MC41LTY4LjYtMTA3LjQgMC0xOTUgODUuMS0xOTkuNCAxOTEuNy0uMiA0LjUgMy40IDguMyA4IDguM0gzNjljNC4yLS4xIDcuNy0zLjQgNy45LTcuN3pNNzAzIDY2NGgtNDcuOWMtNC4yIDAtNy43IDMuMy04IDcuNi0xLjggMzMuNS0xNS43IDY0LjctMzkuNSA4OC42LTI1LjQgMjUuNS02MCAzOS44LTk2IDM5LjgtMzYuMiAwLTcwLjMtMTQuMS05Ni0zOS44LTEuNC0xLjQtMi43LTIuOC00LjEtNC4zbDI1LTE5LjZhOCA4IDAgMCAwLTMtMTQuMWwtOTguMi0yNGMtNS0xLjItOS45IDIuNi05LjkgNy43bC0uNCAxMDEuNGMwIDYuNyA3LjYgMTAuNSAxMi45IDYuM2wyMy4yLTE4LjJjMzYuNiA0MiA5MC40IDY4LjYgMTUwLjUgNjguNiAxMDcuNCAwIDE5NS04NS4xIDE5OS40LTE5MS43LjItNC41LTMuNC04LjMtOC04LjN6JykpO1xuZXhwb3J0cy5DbG91ZFVwbG9hZE91dGxpbmUgPSBnZXRJY29uKCdjbG91ZC11cGxvYWQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTE4LjMgNDU5YTggOCAwIDAgMC0xMi42IDBsLTExMiAxNDEuN2E3Ljk4IDcuOTggMCAwIDAgNi4zIDEyLjloNzMuOVY4NTZjMCA0LjQgMy42IDggOCA4aDYwYzQuNCAwIDgtMy42IDgtOFY2MTMuN0g2MjRjNi43IDAgMTAuNC03LjcgNi4zLTEyLjlMNTE4LjMgNDU5eicsICdNODExLjQgMzY2LjdDNzY1LjYgMjQ1LjkgNjQ4LjkgMTYwIDUxMi4yIDE2MFMyNTguOCAyNDUuOCAyMTMgMzY2LjZDMTI3LjMgMzg5LjEgNjQgNDY3LjIgNjQgNTYwYzAgMTEwLjUgODkuNSAyMDAgMTk5LjkgMjAwSDMwNGM0LjQgMCA4LTMuNiA4LTh2LTYwYzAtNC40LTMuNi04LTgtOGgtNDAuMWMtMzMuNyAwLTY1LjQtMTMuNC04OS0zNy43LTIzLjUtMjQuMi0zNi01Ni44LTM0LjktOTAuNi45LTI2LjQgOS45LTUxLjIgMjYuMi03Mi4xIDE2LjctMjEuMyA0MC4xLTM2LjggNjYuMS00My43bDM3LjktOS45IDEzLjktMzYuNmM4LjYtMjIuOCAyMC42LTQ0LjEgMzUuNy02My40YTI0NS42IDI0NS42IDAgMCAxIDUyLjQtNDkuOWM0MS4xLTI4LjkgODkuNS00NC4yIDE0MC00NC4yczk4LjkgMTUuMyAxNDAgNDQuMmMxOS45IDE0IDM3LjUgMzAuOCA1Mi40IDQ5LjkgMTUuMSAxOS4zIDI3LjEgNDAuNyAzNS43IDYzLjRsMTMuOCAzNi41IDM3LjggMTBDODQ2LjEgNDU0LjUgODg0IDUwMy44IDg4NCA1NjBjMCAzMy4xLTEyLjkgNjQuMy0zNi4zIDg3LjdhMTIzLjA3IDEyMy4wNyAwIDAgMS04Ny42IDM2LjNINzIwYy00LjQgMC04IDMuNi04IDh2NjBjMCA0LjQgMy42IDggOCA4aDQwLjFDODcwLjUgNzYwIDk2MCA2NzAuNSA5NjAgNTYwYzAtOTIuNy02My4xLTE3MC43LTE0OC42LTE5My4zeicpKTtcbmV4cG9ydHMuQ2x1c3Rlck91dGxpbmUgPSBnZXRJY29uKCdjbHVzdGVyJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4OCA2ODBoLTU0VjU0MEg1NDZ2LTkyaDIzOGM4LjggMCAxNi03LjIgMTYtMTZWMTY4YzAtOC44LTcuMi0xNi0xNi0xNkgyNDBjLTguOCAwLTE2IDcuMi0xNiAxNnYyNjRjMCA4LjggNy4yIDE2IDE2IDE2aDIzOHY5MkgxOTB2MTQwaC01NGMtNC40IDAtOCAzLjYtOCA4djE3NmMwIDQuNCAzLjYgOCA4IDhoMTc2YzQuNCAwIDgtMy42IDgtOFY2ODhjMC00LjQtMy42LTgtOC04aC01NHYtNzJoMjIwdjcyaC01NGMtNC40IDAtOCAzLjYtOCA4djE3NmMwIDQuNCAzLjYgOCA4IDhoMTc2YzQuNCAwIDgtMy42IDgtOFY2ODhjMC00LjQtMy42LTgtOC04aC01NHYtNzJoMjIwdjcyaC01NGMtNC40IDAtOCAzLjYtOCA4djE3NmMwIDQuNCAzLjYgOCA4IDhoMTc2YzQuNCAwIDgtMy42IDgtOFY2ODhjMC00LjQtMy42LTgtOC04ek0yNTYgODA1LjNjMCAxLjUtMS4yIDIuNy0yLjcgMi43aC01OC43Yy0xLjUgMC0yLjctMS4yLTIuNy0yLjd2LTU4LjdjMC0xLjUgMS4yLTIuNyAyLjctMi43aDU4LjdjMS41IDAgMi43IDEuMiAyLjcgMi43djU4Ljd6bTI4OCAwYzAgMS41LTEuMiAyLjctMi43IDIuN2gtNTguN2MtMS41IDAtMi43LTEuMi0yLjctMi43di01OC43YzAtMS41IDEuMi0yLjcgMi43LTIuN2g1OC43YzEuNSAwIDIuNyAxLjIgMi43IDIuN3Y1OC43ek0yODggMzg0VjIxNmg0NDh2MTY4SDI4OHptNTQ0IDQyMS4zYzAgMS41LTEuMiAyLjctMi43IDIuN2gtNTguN2MtMS41IDAtMi43LTEuMi0yLjctMi43di01OC43YzAtMS41IDEuMi0yLjcgMi43LTIuN2g1OC43YzEuNSAwIDIuNyAxLjIgMi43IDIuN3Y1OC43ek0zNjAgMzAwYTQwIDQwIDAgMSAwIDgwIDAgNDAgNDAgMCAxIDAtODAgMHonKSk7XG5leHBvcnRzLkNvZGVwZW5PdXRsaW5lID0gZ2V0SWNvbignY29kZXBlbicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MTEuNyAzODUuM2wtLjMtMS41Yy0uMi0xLS4zLTEuOS0uNi0yLjktLjItLjYtLjQtMS4xLS41LTEuNy0uMy0uOC0uNS0xLjctLjktMi41LS4yLS42LS41LTEuMS0uOC0xLjctLjQtLjgtLjgtMS41LTEuMi0yLjMtLjMtLjUtLjYtMS4xLTEtMS42LS44LTEuMi0xLjctMi40LTIuNi0zLjYtLjUtLjYtMS4xLTEuMy0xLjctMS45LS40LS41LS45LS45LTEuNC0xLjMtLjYtLjYtMS4zLTEuMS0xLjktMS42LS41LS40LTEtLjgtMS42LTEuMi0uMi0uMS0uNC0uMy0uNi0uNEw1MzEuMSAxMTcuOGEzNC4zIDM0LjMgMCAwIDAtMzguMSAwTDEyNy4zIDM2MS4zYy0uMi4xLS40LjMtLjYuNC0uNS40LTEgLjgtMS42IDEuMi0uNy41LTEuMyAxLjEtMS45IDEuNi0uNS40LS45LjktMS40IDEuMy0uNi42LTEuMiAxLjItMS43IDEuOS0xIDEuMS0xLjggMi4zLTIuNiAzLjYtLjMuNS0uNyAxLTEgMS42LS40LjctLjggMS41LTEuMiAyLjMtLjMuNS0uNSAxLjEtLjggMS43LS4zLjgtLjYgMS43LS45IDIuNS0uMi42LS40IDEuMS0uNSAxLjctLjIuOS0uNCAxLjktLjYgMi45bC0uMyAxLjVjLS4yIDEuNS0uMyAzLS4zIDQuNXYyNDMuNWMwIDEuNS4xIDMgLjMgNC41bC4zIDEuNS42IDIuOWMuMi42LjMgMS4xLjUgMS43LjMuOS42IDEuNy45IDIuNS4yLjYuNSAxLjEuOCAxLjcuNC44LjcgMS41IDEuMiAyLjMuMy41LjYgMS4xIDEgMS42LjUuNy45IDEuNCAxLjUgMi4xbDEuMiAxLjVjLjUuNiAxLjEgMS4zIDEuNyAxLjkuNC41LjkuOSAxLjQgMS4zLjYuNiAxLjMgMS4xIDEuOSAxLjYuNS40IDEgLjggMS42IDEuMi4yLjEuNC4zLjYuNEw0OTMgOTA1LjdjNS42IDMuOCAxMi4zIDUuOCAxOS4xIDUuOCA2LjYgMCAxMy4zLTEuOSAxOS4xLTUuOGwzNjUuNi0yNDMuNWMuMi0uMS40LS4zLjYtLjQuNS0uNCAxLS44IDEuNi0xLjIuNy0uNSAxLjMtMS4xIDEuOS0xLjYuNS0uNC45LS45IDEuNC0xLjMuNi0uNiAxLjItMS4yIDEuNy0xLjlsMS4yLTEuNSAxLjUtMi4xYy4zLS41LjctMSAxLTEuNi40LS44LjgtMS41IDEuMi0yLjMuMy0uNS41LTEuMS44LTEuNy4zLS44LjYtMS43LjktMi41LjItLjUuNC0xLjEuNS0xLjcuMy0uOS40LTEuOS42LTIuOWwuMy0xLjVjLjItMS41LjMtMyAuMy00LjVWMzg5LjhjLS4zLTEuNS0uNC0zLS42LTQuNXpNNTQ2LjQgMjEwLjVsMjY5LjQgMTc5LjQtMTIwLjMgODAuNC0xNDktOTkuNlYyMTAuNXptLTY4LjggMHYxNjAuMmwtMTQ5IDk5LjYtMTIwLjMtODAuNCAyNjkuMy0xNzkuNHpNMTgwLjcgNDU0LjFsODYgNTcuNS04NiA1Ny41di0xMTV6bTI5Ni45IDM1OC41TDIwOC4zIDYzMy4ybDEyMC4zLTgwLjQgMTQ5IDk5LjZ2MTYwLjJ6TTUxMiA1OTIuOGwtMTIxLjYtODEuMkw1MTIgNDMwLjNsMTIxLjYgODEuMkw1MTIgNTkyLjh6bTM0LjQgMjE5LjhWNjUyLjRsMTQ5LTk5LjYgMTIwLjMgODAuNC0yNjkuMyAxNzkuNHpNODQzLjMgNTY5bC04Ni01Ny41IDg2LTU3LjV2MTE1eicpKTtcbmV4cG9ydHMuQ29kZVNhbmRib3hPdXRsaW5lID0gZ2V0SWNvbignY29kZS1zYW5kYm94Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTcwOS42IDIxMGwuNC0uMmguMkw1MTIgOTYgMzEzLjkgMjA5LjhoLS4ybC43LjNMMTUxLjUgMzA0djQxNkw1MTIgOTI4bDM2MC41LTIwOFYzMDRsLTE2Mi45LTk0ek00ODIuNyA4NDMuNkwzMzkuNiA3NjFWNjIxLjRMMjEwIDU0Ny44VjM3Mi45bDI3Mi43IDE1Ny4zdjMxMy40ek0yMzguMiAzMjEuNWwxMzQuNy03Ny44IDEzOC45IDc5LjcgMTM5LjEtNzkuOSAxMzUuMiA3OC0yNzMuOSAxNTgtMjc0LTE1OHpNODE0IDU0OC4zbC0xMjguOCA3My4xdjEzOS4xbC0xNDMuOSA4M1Y1MzAuNEw4MTQgMzczLjF2MTc1LjJ6JykpO1xuZXhwb3J0cy5Db2x1bUhlaWdodE91dGxpbmUgPSBnZXRJY29uKCdjb2x1bS1oZWlnaHQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODQwIDgzNkgxODRjLTQuNCAwLTggMy42LTggOHY2MGMwIDQuNCAzLjYgOCA4IDhoNjU2YzQuNCAwIDgtMy42IDgtOHYtNjBjMC00LjQtMy42LTgtOC04em0wLTcyNEgxODRjLTQuNCAwLTggMy42LTggOHY2MGMwIDQuNCAzLjYgOCA4IDhoNjU2YzQuNCAwIDgtMy42IDgtOHYtNjBjMC00LjQtMy42LTgtOC04ek02MTAuOCAzNzhjNiAwIDkuNC03IDUuNy0xMS43TDUxNS43IDIzOC43YTcuMTQgNy4xNCAwIDAgMC0xMS4zIDBMNDAzLjYgMzY2LjNhNy4yMyA3LjIzIDAgMCAwIDUuNyAxMS43SDQ3NnYyNjhoLTYyLjhjLTYgMC05LjQgNy01LjcgMTEuN2wxMDAuOCAxMjcuNWMyLjkgMy43IDguNSAzLjcgMTEuMyAwbDEwMC44LTEyNy41YzMuNy00LjcuNC0xMS43LTUuNy0xMS43SDU0OFYzNzhoNjIuOHonKSk7XG5leHBvcnRzLkNvbHVtbldpZHRoT3V0bGluZSA9IGdldEljb24oJ2NvbHVtbi13aWR0aCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ00xODAgMTc2aC02MGMtNC40IDAtOCAzLjYtOCA4djY1NmMwIDQuNCAzLjYgOCA4IDhoNjBjNC40IDAgOC0zLjYgOC04VjE4NGMwLTQuNC0zLjYtOC04LTh6bTcyNCAwaC02MGMtNC40IDAtOCAzLjYtOCA4djY1NmMwIDQuNCAzLjYgOCA4IDhoNjBjNC40IDAgOC0zLjYgOC04VjE4NGMwLTQuNC0zLjYtOC04LTh6TTc4NS4zIDUwNC4zTDY1Ny43IDQwMy42YTcuMjMgNy4yMyAwIDAgMC0xMS43IDUuN1Y0NzZIMzc4di02Mi44YzAtNi03LTkuNC0xMS43LTUuN0wyMzguNyA1MDguM2E3LjE0IDcuMTQgMCAwIDAgMCAxMS4zbDEyNy41IDEwMC44YzQuNyAzLjcgMTEuNy40IDExLjctNS43VjU0OGgyNjh2NjIuOGMwIDYgNyA5LjQgMTEuNyA1LjdsMTI3LjUtMTAwLjhjMy44LTIuOSAzLjgtOC41LjItMTEuNHonKSk7XG5leHBvcnRzLkNvbHVtbkhlaWdodE91dGxpbmUgPSBnZXRJY29uKCdjb2x1bW4taGVpZ2h0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg0MCA4MzZIMTg0Yy00LjQgMC04IDMuNi04IDh2NjBjMCA0LjQgMy42IDggOCA4aDY1NmM0LjQgMCA4LTMuNiA4LTh2LTYwYzAtNC40LTMuNi04LTgtOHptMC03MjRIMTg0Yy00LjQgMC04IDMuNi04IDh2NjBjMCA0LjQgMy42IDggOCA4aDY1NmM0LjQgMCA4LTMuNiA4LTh2LTYwYzAtNC40LTMuNi04LTgtOHpNNjEwLjggMzc4YzYgMCA5LjQtNyA1LjctMTEuN0w1MTUuNyAyMzguN2E3LjE0IDcuMTQgMCAwIDAtMTEuMyAwTDQwMy42IDM2Ni4zYTcuMjMgNy4yMyAwIDAgMCA1LjcgMTEuN0g0NzZ2MjY4aC02Mi44Yy02IDAtOS40IDctNS43IDExLjdsMTAwLjggMTI3LjVjMi45IDMuNyA4LjUgMy43IDExLjMgMGwxMDAuOC0xMjcuNWMzLjctNC43LjQtMTEuNy01LjctMTEuN0g1NDhWMzc4aDYyLjh6JykpO1xuZXhwb3J0cy5Db2ZmZWVPdXRsaW5lID0gZ2V0SWNvbignY29mZmVlJywgb3V0bGluZSwgZ2V0Tm9kZShub3JtYWxWaWV3Qm94LCAnTTI3NSAyODFjMTkuOSAwIDM2LTE2LjEgMzYtMzZWMzZjMC0xOS45LTE2LjEtMzYtMzYtMzZzLTM2IDE2LjEtMzYgMzZ2MjA5YzAgMTkuOSAxNi4xIDM2IDM2IDM2em02MTMgMTQ0SDc2OGMwLTM5LjgtMzIuMi03Mi03Mi03MkgyMDBjLTM5LjggMC03MiAzMi4yLTcyIDcydjI0OGMwIDMuNC4yIDYuNy43IDkuOS0uNSA3LS43IDE0LS43IDIxLjEgMCAxNzYuNyAxNDMuMyAzMjAgMzIwIDMyMCAxNjAuMSAwIDI5Mi43LTExNy41IDMxNi4zLTI3MUg4ODhjMzkuOCAwIDcyLTMyLjIgNzItNzJWNDk3YzAtMzkuOC0zMi4yLTcyLTcyLTcyek02OTYgNjgxaC0xLjFjLjcgNy42IDEuMSAxNS4yIDEuMSAyMyAwIDEzNy0xMTEgMjQ4LTI0OCAyNDhTMjAwIDg0MSAyMDAgNzA0YzAtNy44LjQtMTUuNCAxLjEtMjNIMjAwVjQyNWg0OTZ2MjU2em0xOTItOEg3NzZWNDk3aDExMnYxNzZ6TTYxMyAyODFjMTkuOSAwIDM2LTE2LjEgMzYtMzZWMzZjMC0xOS45LTE2LjEtMzYtMzYtMzZzLTM2IDE2LjEtMzYgMzZ2MjA5YzAgMTkuOSAxNi4xIDM2IDM2IDM2em0tMTcwIDBjMTkuOSAwIDM2LTE2LjEgMzYtMzZWMzZjMC0xOS45LTE2LjEtMzYtMzYtMzZzLTM2IDE2LjEtMzYgMzZ2MjA5YzAgMTkuOSAxNi4xIDM2IDM2IDM2eicpKTtcbmV4cG9ydHMuQ29weXJpZ2h0T3V0bGluZSA9IGdldEljb24oJ2NvcHlyaWdodCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6bTUuNi01MzIuN2M1MyAwIDg5IDMzLjggOTMgODMuNC4zIDQuMiAzLjggNy40IDggNy40aDU2LjdjMi42IDAgNC43LTIuMSA0LjctNC43IDAtODYuNy02OC40LTE0Ny40LTE2Mi43LTE0Ny40QzQwNy40IDI5MCAzNDQgMzY0LjIgMzQ0IDQ4Ni44djUyLjNDMzQ0IDY2MC44IDQwNy40IDczNCA1MTcuMyA3MzRjOTQgMCAxNjIuNy01OC44IDE2Mi43LTE0MS40IDAtMi42LTIuMS00LjctNC43LTQuN2gtNTYuOGMtNC4yIDAtNy42IDMuMi04IDcuMy00LjIgNDYuMS00MC4xIDc3LjgtOTMgNzcuOC02NS4zIDAtMTAyLjEtNDcuOS0xMDIuMS0xMzMuNnYtNTIuNmMuMS04NyAzNy0xMzUuNSAxMDIuMi0xMzUuNXonKSk7XG5leHBvcnRzLkRhc2hPdXRsaW5lID0gZ2V0SWNvbignZGFzaCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ00xMTIgNDc2aDE2MHY3MkgxMTJ6bTMyMCAwaDE2MHY3Mkg0MzJ6bTMyMCAwaDE2MHY3Mkg3NTJ6JykpO1xuZXhwb3J0cy5EZXBsb3ltZW50VW5pdE91dGxpbmUgPSBnZXRJY29uKCdkZXBsb3ltZW50LXVuaXQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODg4LjMgNjkzLjJjLTQyLjUtMjQuNi05NC4zLTE4LTEyOS4yIDEyLjhsLTUzLTMwLjdWNTIzLjZjMC0xNS43LTguNC0zMC4zLTIyLTM4LjFsLTEzNi03OC4zdi02Ny4xYzQ0LjItMTUgNzYtNTYuOCA3Ni0xMDYuMSAwLTYxLjktNTAuMS0xMTItMTEyLTExMnMtMTEyIDUwLjEtMTEyIDExMmMwIDQ5LjMgMzEuOCA5MS4xIDc2IDEwNi4xdjY3LjFsLTEzNiA3OC4zYy0xMy42IDcuOC0yMiAyMi40LTIyIDM4LjF2MTUxLjZsLTUzIDMwLjdjLTM0LjktMzAuOC04Ni44LTM3LjQtMTI5LjItMTIuOC01My41IDMxLTcxLjcgOTkuNC00MSAxNTIuOSAzMC44IDUzLjUgOTguOSA3MS45IDE1Mi4yIDQxIDQyLjUtMjQuNiA2Mi43LTczIDUzLjYtMTE4LjhsNDguNy0yOC4zIDE0MC42IDgxYzYuOCAzLjkgMTQuNCA1LjkgMjIgNS45czE1LjItMiAyMi01LjlMNjc0LjUgNzQwbDQ4LjcgMjguM2MtOS4xIDQ1LjcgMTEuMiA5NC4yIDUzLjYgMTE4LjggNTMuMyAzMC45IDEyMS41IDEyLjYgMTUyLjItNDEgMzAuOC01My42IDEyLjYtMTIyLTQwLjctMTUyLjl6bS02NzMgMTM4LjRhNDcuNiA0Ny42IDAgMCAxLTY1LjItMTcuNmMtMTMuMi0yMi45LTUuNC01Mi4zIDE3LjUtNjUuNWE0Ny42IDQ3LjYgMCAwIDEgNjUuMiAxNy42YzEzLjIgMjIuOSA1LjQgNTIuMy0xNy41IDY1LjV6TTUyMiA0NjMuOHpNNDY0IDIzNGE0OC4wMSA0OC4wMSAwIDAgMSA5NiAwIDQ4LjAxIDQ4LjAxIDAgMCAxLTk2IDB6bTE3MCA0NDYuMmwtMTIyIDcwLjMtMTIyLTcwLjNWNTM5LjhsMTIyLTcwLjMgMTIyIDcwLjN2MTQwLjR6bTIzOS45IDEzMy45Yy0xMy4yIDIyLjktNDIuNCAzMC44LTY1LjIgMTcuNi0yMi44LTEzLjItMzAuNy00Mi42LTE3LjUtNjUuNXM0Mi40LTMwLjggNjUuMi0xNy42YzIyLjkgMTMuMiAzMC43IDQyLjUgMTcuNSA2NS41eicpKTtcbmV4cG9ydHMuRGVza3RvcE91dGxpbmUgPSBnZXRJY29uKCdkZXNrdG9wJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkyOCAxNDBIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjQ5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmgzODB2MTEySDMwNGMtOC44IDAtMTYgNy4yLTE2IDE2djQ4YzAgNC40IDMuNiA4IDggOGg0MzJjNC40IDAgOC0zLjYgOC04di00OGMwLTguOC03LjItMTYtMTYtMTZINTQ4VjcwMGgzODBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTcyYzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNDg4SDEzNlYyMTJoNzUydjQxNnonKSk7XG5leHBvcnRzLkRpbmdkaW5nT3V0bGluZSA9IGdldEljb24oJ2RpbmdkaW5nJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTU3My43IDI1Mi41QzQyMi41IDE5Ny40IDIwMS4zIDk2LjcgMjAxLjMgOTYuN2MtMTUuNy00LjEtMTcuOSAxMS4xLTE3LjkgMTEuMS01IDYxLjEgMzMuNiAxNjAuNSA1My42IDE4Mi44IDE5LjkgMjIuMyAzMTkuMSAxMTMuNyAzMTkuMSAxMTMuN1MzMjYgMzU3LjkgMjcwLjUgMzQxLjljLTU1LjYtMTYtMzcuOSAxNy44LTM3LjkgMTcuOCAxMS40IDYxLjcgNjQuOSAxMzEuOCAxMDcuMiAxMzguNCA0Mi4yIDYuNiAyMjAuMSA0IDIyMC4xIDRzLTM1LjUgNC4xLTkzLjIgMTEuOWMtNDIuNyA1LjgtOTcgMTIuNS0xMTEuMSAxNy44LTMzLjEgMTIuNSAyNCA2Mi42IDI0IDYyLjYgODQuNyA3Ni44IDEyOS43IDUwLjUgMTI5LjcgNTAuNSAzMy4zLTEwLjcgNjEuNC0xOC41IDg1LjItMjQuMkw1NjUgNzQzLjFoODQuNkw2MDMgOTI4bDIwNS4zLTI3MS45SDcwMC44bDIyLjMtMzguN2MuMy41LjQuOC40LjhTNzk5LjggNDk2LjEgODI5IDQzMy44bC42LTFoLS4xYzUtMTAuOCA4LjYtMTkuNyAxMC0yNS44IDE3LTcxLjMtMTE0LjUtOTkuNC0yNjUuOC0xNTQuNXonKSk7XG5leHBvcnRzLkRpc2Nvbm5lY3RPdXRsaW5lID0gZ2V0SWNvbignZGlzY29ubmVjdCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004MzIuNiAxOTEuNGMtODQuNi04NC42LTIyMS41LTg0LjYtMzA2IDBsLTk2LjkgOTYuOSA1MSA1MSA5Ni45LTk2LjljNTMuOC01My44IDE0NC42LTU5LjUgMjA0IDAgNTkuNSA1OS41IDUzLjggMTUwLjIgMCAyMDRsLTk2LjkgOTYuOSA1MS4xIDUxLjEgOTYuOS05Ni45Yzg0LjQtODQuNiA4NC40LTIyMS41LS4xLTMwNi4xek00NDYuNSA3ODEuNmMtNTMuOCA1My44LTE0NC42IDU5LjUtMjA0IDAtNTkuNS01OS41LTUzLjgtMTUwLjIgMC0yMDRsOTYuOS05Ni45LTUxLjEtNTEuMS05Ni45IDk2LjljLTg0LjYgODQuNi04NC42IDIyMS41IDAgMzA2czIyMS41IDg0LjYgMzA2IDBsOTYuOS05Ni45LTUxLTUxLTk2LjggOTd6TTI2MC4zIDIwOS40YTguMDMgOC4wMyAwIDAgMC0xMS4zIDBMMjA5LjQgMjQ5YTguMDMgOC4wMyAwIDAgMCAwIDExLjNsNTU0LjQgNTU0LjRjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGwzOS42LTM5LjZjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM0wyNjAuMyAyMDkuNHonKSk7XG5leHBvcnRzLkRvbGxhck91dGxpbmUgPSBnZXRJY29uKCdkb2xsYXInLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyem00Ny43LTM5NS4ybC0yNS40LTUuOVYzNDguNmMzOCA1LjIgNjEuNSAyOSA2NS41IDU4LjIuNSA0IDMuOSA2LjkgNy45IDYuOWg0NC45YzQuNyAwIDguNC00LjEgOC04LjgtNi4xLTYyLjMtNTcuNC0xMDIuMy0xMjUuOS0xMDkuMlYyNjNjMC00LjQtMy42LTgtOC04aC0yOC4xYy00LjQgMC04IDMuNi04IDh2MzNjLTcwLjggNi45LTEyNi4yIDQ2LTEyNi4yIDExOSAwIDY3LjYgNDkuOCAxMDAuMiAxMDIuMSAxMTIuN2wyNC43IDYuM3YxNDIuN2MtNDQuMi01LjktNjktMjkuNS03NC4xLTYxLjMtLjYtMy44LTQtNi42LTcuOS02LjZIMzYzYy00LjcgMC04LjQgNC04IDguNyA0LjUgNTUgNDYuMiAxMDUuNiAxMzUuMiAxMTIuMVY3NjFjMCA0LjQgMy42IDggOCA4aDI4LjRjNC40IDAgOC0zLjYgOC04LjFsLS4yLTMxLjdjNzguMy02LjkgMTM0LjMtNDguOCAxMzQuMy0xMjQtLjEtNjkuNC00NC4yLTEwMC40LTEwOS0xMTYuNHptLTY4LjYtMTYuMmMtNS42LTEuNi0xMC4zLTMuMS0xNS01LTMzLjgtMTIuMi00OS41LTMxLjktNDkuNS01Ny4zIDAtMzYuMyAyNy41LTU3IDY0LjUtNjEuN3YxMjR6TTUzNC4zIDY3N1Y1NDMuM2MzLjEuOSA1LjkgMS42IDguOCAyLjIgNDcuMyAxNC40IDYzLjIgMzQuNCA2My4yIDY1LjEgMCAzOS4xLTI5LjQgNjIuNi03MiA2Ni40eicpKTtcbmV4cG9ydHMuRG91YmxlUmlnaHRPdXRsaW5lID0gZ2V0SWNvbignZG91YmxlLXJpZ2h0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUzMy4yIDQ5Mi4zTDI3Ny45IDE2Ni4xYy0zLTMuOS03LjctNi4xLTEyLjYtNi4xSDE4OGMtNi43IDAtMTAuNCA3LjctNi4zIDEyLjlMNDQ3LjEgNTEyIDE4MS43IDg1MS4xQTcuOTggNy45OCAwIDAgMCAxODggODY0aDc3LjNjNC45IDAgOS42LTIuMyAxMi42LTYuMWwyNTUuMy0zMjYuMWM5LjEtMTEuNyA5LjEtMjcuOSAwLTM5LjV6bTMwNCAwTDU4MS45IDE2Ni4xYy0zLTMuOS03LjctNi4xLTEyLjYtNi4xSDQ5MmMtNi43IDAtMTAuNCA3LjctNi4zIDEyLjlMNzUxLjEgNTEyIDQ4NS43IDg1MS4xQTcuOTggNy45OCAwIDAgMCA0OTIgODY0aDc3LjNjNC45IDAgOS42LTIuMyAxMi42LTYuMWwyNTUuMy0zMjYuMWM5LjEtMTEuNyA5LjEtMjcuOSAwLTM5LjV6JykpO1xuZXhwb3J0cy5Eb3RDaGFydE91dGxpbmUgPSBnZXRJY29uKCdkb3QtY2hhcnQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODg4IDc5MkgyMDBWMTY4YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2ODhjMCA0LjQgMy42IDggOCA4aDc1MmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNMjg4IDYwNGE2NCA2NCAwIDEgMCAxMjggMCA2NCA2NCAwIDEgMC0xMjggMHptMTE4LTIyNGE0OCA0OCAwIDEgMCA5NiAwIDQ4IDQ4IDAgMSAwLTk2IDB6bTE1OCAyMjhhOTYgOTYgMCAxIDAgMTkyIDAgOTYgOTYgMCAxIDAtMTkyIDB6bTE0OC0zMTRhNTYgNTYgMCAxIDAgMTEyIDAgNTYgNTYgMCAxIDAtMTEyIDB6JykpO1xuZXhwb3J0cy5Eb3VibGVMZWZ0T3V0bGluZSA9IGdldEljb24oJ2RvdWJsZS1sZWZ0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTI3Mi45IDUxMmwyNjUuNC0zMzkuMWM0LjEtNS4yLjQtMTIuOS02LjMtMTIuOWgtNzcuM2MtNC45IDAtOS42IDIuMy0xMi42IDYuMUwxODYuOCA0OTIuM2EzMS45OSAzMS45OSAwIDAgMCAwIDM5LjVsMjU1LjMgMzI2LjFjMyAzLjkgNy43IDYuMSAxMi42IDYuMUg1MzJjNi43IDAgMTAuNC03LjcgNi4zLTEyLjlMMjcyLjkgNTEyem0zMDQgMGwyNjUuNC0zMzkuMWM0LjEtNS4yLjQtMTIuOS02LjMtMTIuOWgtNzcuM2MtNC45IDAtOS42IDIuMy0xMi42IDYuMUw0OTAuOCA0OTIuM2EzMS45OSAzMS45OSAwIDAgMCAwIDM5LjVsMjU1LjMgMzI2LjFjMyAzLjkgNy43IDYuMSAxMi42IDYuMUg4MzZjNi43IDAgMTAuNC03LjcgNi4zLTEyLjlMNTc2LjkgNTEyeicpKTtcbmV4cG9ydHMuRG93bmxvYWRPdXRsaW5lID0gZ2V0SWNvbignZG93bmxvYWQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTA1LjcgNjYxYTggOCAwIDAgMCAxMi42IDBsMTEyLTE0MS43YzQuMS01LjIuNC0xMi45LTYuMy0xMi45aC03NC4xVjE2OGMwLTQuNC0zLjYtOC04LThoLTYwYy00LjQgMC04IDMuNi04IDh2MzM4LjNINDAwYy02LjcgMC0xMC40IDcuNy02LjMgMTIuOWwxMTIgMTQxLjh6TTg3OCA2MjZoLTYwYy00LjQgMC04IDMuNi04IDh2MTU0SDIxNFY2MzRjMC00LjQtMy42LTgtOC04aC02MGMtNC40IDAtOCAzLjYtOCA4djE5OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2ODRjMTcuNyAwIDMyLTE0LjMgMzItMzJWNjM0YzAtNC40LTMuNi04LTgtOHonKSk7XG5leHBvcnRzLkRyaWJiYmxlT3V0bGluZSA9IGdldEljb24oJ2RyaWJiYmxlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA5NkMyODIuNiA5NiA5NiAyODIuNiA5NiA1MTJzMTg2LjYgNDE2IDQxNiA0MTYgNDE2LTE4Ni42IDQxNi00MTZTNzQxLjQgOTYgNTEyIDk2em0yNzUuMSAxOTEuOGM0OS41IDYwLjUgNzkuNSAxMzcuNSA4MC4yIDIyMS40LTExLjctMi41LTEyOS4yLTI2LjMtMjQ3LjQtMTEuNC0yLjUtNi4xLTUtMTIuMi03LjYtMTguMy03LjQtMTcuMy0xNS4zLTM0LjYtMjMuNi01MS41QzcyMCAzNzQuMyA3NzkuNiAyOTggNzg3LjEgMjg3Ljh6TTUxMiAxNTcuMmM5MC4zIDAgMTcyLjggMzMuOSAyMzUuNSA4OS41LTYuNCA5LjEtNTkuOSA4MS0xODYuMiAxMjguNC01OC4yLTEwNy0xMjIuNy0xOTQuOC0xMzIuNi0yMDggMjcuMy02LjYgNTUuMi05LjkgODMuMy05Ljl6TTM2MC45IDE5MWM5LjQgMTIuOCA3Mi45IDEwMC45IDEzMS43IDIwNS41QzMyNi40IDQ0MC42IDE4MCA0NDAgMTY0LjEgNDM5LjhjMjMuMS0xMTAuMyA5Ny40LTIwMS45IDE5Ni44LTI0OC44ek0xNTYuNyA1MTIuNWMwLTMuNi4xLTcuMy4yLTEwLjkgMTUuNS4zIDE4Ny43IDIuNSAzNjUuMi01MC42IDEwLjIgMTkuOSAxOS45IDQwLjEgMjguOCA2MC4zLTQuNyAxLjMtOS40IDIuNy0xNCA0LjJDMzUzLjYgNTc0LjkgMjU2LjEgNzM2LjQgMjQ4IDc1MC4xYy01Ni43LTYzLTkxLjMtMTQ2LjMtOTEuMy0yMzcuNnpNNTEyIDg2Ny44Yy04Mi4yIDAtMTU3LjktMjgtMjE4LjEtNzUgNi40LTEzLjEgNzguMy0xNTIgMjc4LjctMjIxLjlsMi4zLS44YzQ5LjkgMTI5LjYgNzAuNSAyMzguMyA3NS44IDI2OS41QTM1MC40NiAzNTAuNDYgMCAwIDEgNTEyIDg2Ny44em0xOTguNS02MC43Yy0zLjYtMjEuNi0yMi41LTEyNS42LTY5LTI1My4zQzc1Mi45IDUzNiA4NTAuNyA1NjUuMiA4NjIuOCA1NjljLTE1LjggOTguOC03Mi41IDE4NC4yLTE1Mi4zIDIzOC4xeicpKTtcbmV4cG9ydHMuRHJvcGJveE91dGxpbmUgPSBnZXRJY29uKCdkcm9wYm94Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTY0IDU1Ni45bDI2NC4yIDE3My41TDUxMi41IDU3NyAyNDYuOCA0MTIuN3ptODk2LTI5MC4zem0wIDBMNjk2LjggOTUgNTEyLjUgMjQ4LjVsMjY1LjIgMTY0LjJMNTEyLjUgNTc3bDE4NC4zIDE1My40TDk2MCA1NTguOCA3NzcuNyA0MTIuN3pNNTEzIDYwOS44TDMyOC4yIDc2My4zbC03OS40LTUxLjV2NTcuOEw1MTMgOTI4bDI2My43LTE1OC40di01Ny44bC03OC45IDUxLjV6TTMyOC4yIDk1TDY0IDI2NS4xbDE4Mi44IDE0Ny42IDI2NS43LTE2NC4yek02NCA1NTYuOXonKSk7XG5leHBvcnRzLkVsbGlwc2lzT3V0bGluZSA9IGdldEljb24oJ2VsbGlwc2lzJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTE3NiA1MTFhNTYgNTYgMCAxIDAgMTEyIDAgNTYgNTYgMCAxIDAtMTEyIDB6bTI4MCAwYTU2IDU2IDAgMSAwIDExMiAwIDU2IDU2IDAgMSAwLTExMiAwem0yODAgMGE1NiA1NiAwIDEgMCAxMTIgMCA1NiA1NiAwIDEgMC0xMTIgMHonKSk7XG5leHBvcnRzLkVudGVyT3V0bGluZSA9IGdldEljb24oJ2VudGVyJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg2NCAxNzBoLTYwYy00LjQgMC04IDMuNi04IDh2NTE4SDMxMHYtNzNjMC02LjctNy44LTEwLjUtMTMtNi4zbC0xNDEuOSAxMTJhOCA4IDAgMCAwIDAgMTIuNmwxNDEuOSAxMTJjNS4zIDQuMiAxMyAuNCAxMy02LjN2LTc1aDQ5OGMzNS4zIDAgNjQtMjguNyA2NC02NFYxNzhjMC00LjQtMy42LTgtOC04eicpKTtcbmV4cG9ydHMuRXVyb091dGxpbmUgPSBnZXRJY29uKCdldXJvJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnptMTE3LjctNTg4LjZjLTE1LjktMy41LTM0LjQtNS40LTU1LjMtNS40LTEwNi43IDAtMTc4LjkgNTUuNy0xOTguNiAxNDkuOUgzNDRjLTQuNCAwLTggMy42LTggOHYyNy4yYzAgNC40IDMuNiA4IDggOGgyNi40Yy0uMyA0LjEtLjMgOC40LS4zIDEyLjh2MzYuOUgzNDRjLTQuNCAwLTggMy42LTggOFY1NjhjMCA0LjQgMy42IDggOCA4aDMwLjJjMTcuMiA5OS4yIDkwLjQgMTU4IDIwMC4yIDE1OCAyMC45IDAgMzkuNC0xLjcgNTUuMy01LjEgMy43LS44IDYuNC00IDYuNC03Ljh2LTQyLjhjMC01LTQuNi04LjgtOS41LTcuOC0xNC43IDIuOC0zMS45IDQuMS01MS44IDQuMS02OC41IDAtMTE0LjUtMzYuNi0xMjkuOC05OC42aDEzMC42YzQuNCAwIDgtMy42IDgtOHYtMjcuMmMwLTQuNC0zLjYtOC04LThINDM5LjJ2LTM2YzAtNC43IDAtOS40LjMtMTMuOGgxMzUuOWM0LjQgMCA4LTMuNiA4LTh2LTI3LjJjMC00LjQtMy42LTgtOC04SDQ0Ny4xYzE3LjItNTYuOSA2Mi4zLTkwLjQgMTI3LjYtOTAuNCAxOS45IDAgMzcuMSAxLjUgNTEuNyA0LjRhOCA4IDAgMCAwIDkuNi03Ljh2LTQyLjhjMC0zLjgtMi42LTctNi4zLTcuOHonKSk7XG5leHBvcnRzLkV4Y2VwdGlvbk91dGxpbmUgPSBnZXRJY29uKCdleGNlcHRpb24nLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNjg4IDMxMnYtNDhjMC00LjQtMy42LTgtOC04SDI5NmMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgzODRjNC40IDAgOC0zLjYgOC04em0tMzkyIDg4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDE4NGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOEgyOTZ6bTM3NiAxMTZjLTExOS4zIDAtMjE2IDk2LjctMjE2IDIxNnM5Ni43IDIxNiAyMTYgMjE2IDIxNi05Ni43IDIxNi0yMTYtOTYuNy0yMTYtMjE2LTIxNnptMTA3LjUgMzIzLjVDNzUwLjggODY4LjIgNzEyLjYgODg0IDY3MiA4ODRzLTc4LjgtMTUuOC0xMDcuNS00NC41QzUzNS44IDgxMC44IDUyMCA3NzIuNiA1MjAgNzMyczE1LjgtNzguOCA0NC41LTEwNy41QzU5My4yIDU5NS44IDYzMS40IDU4MCA2NzIgNTgwczc4LjggMTUuOCAxMDcuNSA0NC41QzgwOC4yIDY1My4yIDgyNCA2OTEuNCA4MjQgNzMycy0xNS44IDc4LjgtNDQuNSAxMDcuNXpNNjQwIDgxMmEzMiAzMiAwIDEgMCA2NCAwIDMyIDMyIDAgMSAwLTY0IDB6bTEyLTY0aDQwYzQuNCAwIDgtMy42IDgtOFY2MjhjMC00LjQtMy42LTgtOC04aC00MGMtNC40IDAtOCAzLjYtOCA4djExMmMwIDQuNCAzLjYgOCA4IDh6TTQ0MCA4NTJIMjA4VjE0OGg1NjB2MzQ0YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LThWMTA4YzAtMTcuNy0xNC4zLTMyLTMyLTMySDE2OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2Nzg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDI3MmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHonKSk7XG5leHBvcnRzLkV4Y2xhbWF0aW9uT3V0bGluZSA9IGdldEljb24oJ2V4Y2xhbWF0aW9uJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTQ0OCA4MDRhNjQgNjQgMCAxIDAgMTI4IDAgNjQgNjQgMCAxIDAtMTI4IDB6bTMyLTE2OGg2NGM0LjQgMCA4LTMuNiA4LThWMTY0YzAtNC40LTMuNi04LTgtOGgtNjRjLTQuNCAwLTggMy42LTggOHY0NjRjMCA0LjQgMy42IDggOCA4eicpKTtcbmV4cG9ydHMuRXhwb3J0T3V0bGluZSA9IGdldEljb24oJ2V4cG9ydCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODguMyA3NTcuNGgtNTMuOGMtNC4yIDAtNy43IDMuNS03LjcgNy43djYxLjhIMTk3LjFWMTk3LjFoNjI5Ljh2NjEuOGMwIDQuMiAzLjUgNy43IDcuNyA3LjdoNTMuOGM0LjIgMCA3LjctMy40IDcuNy03LjdWMTU4LjdjMC0xNy0xMy43LTMwLjctMzAuNy0zMC43SDE1OC43Yy0xNyAwLTMwLjcgMTMuNy0zMC43IDMwLjd2NzA2LjZjMCAxNyAxMy43IDMwLjcgMzAuNyAzMC43aDcwNi42YzE3IDAgMzAuNy0xMy43IDMwLjctMzAuN1Y3NjUuMWMwLTQuMy0zLjUtNy43LTcuNy03Ljd6bTE4LjYtMjUxLjdMNzY1IDM5My43Yy01LjMtNC4yLTEzLS40LTEzIDYuM3Y3Nkg0MzhjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoMzE0djc2YzAgNi43IDcuOCAxMC41IDEzIDYuM2wxNDEuOS0xMTJhOCA4IDAgMCAwIDAtMTIuNnonKSk7XG5leHBvcnRzLkZhbGxPdXRsaW5lID0gZ2V0SWNvbignZmFsbCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MjUuOSA4MDRsLTI0LTE5OS4yYy0uOC02LjYtOC45LTkuNC0xMy42LTQuN0w4MjkgNjU5LjUgNTU3LjcgMzg4LjNjLTYuMy02LjItMTYuNC02LjItMjIuNiAwTDQzMy4zIDQ5MCAxNTYuNiAyMTMuM2E4LjAzIDguMDMgMCAwIDAtMTEuMyAwbC00NSA0NS4yYTguMDMgOC4wMyAwIDAgMCAwIDExLjNMNDIyIDU5MS43YzYuMiA2LjMgMTYuNCA2LjMgMjIuNiAwTDU0Ni40IDQ5MGwyMjYuMSAyMjYtNTkuMyA1OS4zYTguMDEgOC4wMSAwIDAgMCA0LjcgMTMuNmwxOTkuMiAyNGM1LjEuNyA5LjUtMy43IDguOC04Ljl6JykpO1xuZXhwb3J0cy5GaWxlRG9uZU91dGxpbmUgPSBnZXRJY29uKCdmaWxlLWRvbmUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNjg4IDMxMnYtNDhjMC00LjQtMy42LTgtOC04SDI5NmMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgzODRjNC40IDAgOC0zLjYgOC04em0tMzkyIDg4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDE4NGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOEgyOTZ6bTM3NiAxMTZjLTExOS4zIDAtMjE2IDk2LjctMjE2IDIxNnM5Ni43IDIxNiAyMTYgMjE2IDIxNi05Ni43IDIxNi0yMTYtOTYuNy0yMTYtMjE2LTIxNnptMTA3LjUgMzIzLjVDNzUwLjggODY4LjIgNzEyLjYgODg0IDY3MiA4ODRzLTc4LjgtMTUuOC0xMDcuNS00NC41QzUzNS44IDgxMC44IDUyMCA3NzIuNiA1MjAgNzMyczE1LjgtNzguOCA0NC41LTEwNy41QzU5My4yIDU5NS44IDYzMS40IDU4MCA2NzIgNTgwczc4LjggMTUuOCAxMDcuNSA0NC41QzgwOC4yIDY1My4yIDgyNCA2OTEuNCA4MjQgNzMycy0xNS44IDc4LjgtNDQuNSAxMDcuNXpNNzYxIDY1NmgtNDQuM2MtMi42IDAtNSAxLjItNi41IDMuM2wtNjMuNSA4Ny44LTIzLjEtMzEuOWE3LjkyIDcuOTIgMCAwIDAtNi41LTMuM0g1NzNjLTYuNSAwLTEwLjMgNy40LTYuNSAxMi43bDczLjggMTAyLjFjMy4yIDQuNCA5LjcgNC40IDEyLjkgMGwxMTQuMi0xNThjMy45LTUuMy4xLTEyLjctNi40LTEyLjd6TTQ0MCA4NTJIMjA4VjE0OGg1NjB2MzQ0YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LThWMTA4YzAtMTcuNy0xNC4zLTMyLTMyLTMySDE2OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2Nzg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDI3MmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHonKSk7XG5leHBvcnRzLkZpbGVTeW5jT3V0bGluZSA9IGdldEljb24oJ2ZpbGUtc3luYycsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ00yOTYgMjU2Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDM4NGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOEgyOTZ6bTE5MiAyMDB2LTQ4YzAtNC40LTMuNi04LTgtOEgyOTZjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMTg0YzQuNCAwIDgtMy42IDgtOHptLTQ4IDM5NkgyMDhWMTQ4aDU2MHYzNDRjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFYxMDhjMC0xNy43LTE0LjMtMzItMzItMzJIMTY4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3ODRjMCAxNy43IDE0LjMgMzIgMzIgMzJoMjcyYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0xMDQuMS0xMTUuNmMxLjgtMzQuNSAxNi4yLTY2LjggNDAuOC05MS40IDI2LjItMjYuMiA2Mi00MSA5OS4xLTQxIDM3LjQgMCA3Mi42IDE0LjYgOTkuMSA0MSAzLjIgMy4yIDYuMyA2LjYgOS4yIDEwLjFMNzY5LjIgNjczYTggOCAwIDAgMCAzIDE0LjFsOTMuMyAyMi41YzUgMS4yIDkuOC0yLjYgOS45LTcuN2wuNi05NS40YTggOCAwIDAgMC0xMi45LTYuNGwtMjAuMyAxNS44QzgwNS40IDU2OS42IDc0OC4xIDU0MCA2ODQgNTQwYy0xMDkuOSAwLTE5OS42IDg2LjktMjA0IDE5NS43LS4yIDQuNSAzLjUgOC4zIDggOC4zaDQ4LjFjNC4zIDAgNy44LTMuMyA4LTcuNnpNODgwIDc0NGgtNDguMWMtNC4zIDAtNy44IDMuMy04IDcuNi0xLjggMzQuNS0xNi4yIDY2LjgtNDAuOCA5MS40LTI2LjIgMjYuMi02MiA0MS05OS4xIDQxLTM3LjQgMC03Mi42LTE0LjYtOTkuMS00MS0zLjItMy4yLTYuMy02LjYtOS4yLTEwLjFsMjMuMS0xNy45YTggOCAwIDAgMC0zLTE0LjFsLTkzLjMtMjIuNWMtNS0xLjItOS44IDIuNi05LjkgNy43bC0uNiA5NS40YTggOCAwIDAgMCAxMi45IDYuNGwyMC4zLTE1LjhDNTYyLjYgOTE4LjQgNjE5LjkgOTQ4IDY4NCA5NDhjMTA5LjkgMCAxOTkuNi04Ni45IDIwNC0xOTUuNy4yLTQuNS0zLjUtOC4zLTgtOC4zeicpKTtcbmV4cG9ydHMuRmlsZVByb3RlY3RPdXRsaW5lID0gZ2V0SWNvbignZmlsZS1wcm90ZWN0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTY0NC43IDY2OS4yYTcuOTIgNy45MiAwIDAgMC02LjUtMy4zSDU5NGMtNi41IDAtMTAuMyA3LjQtNi41IDEyLjdsNzMuOCAxMDIuMWMzLjIgNC40IDkuNyA0LjQgMTIuOSAwbDExNC4yLTE1OGMzLjgtNS4zIDAtMTIuNy02LjUtMTIuN2gtNDQuM2MtMi42IDAtNSAxLjItNi41IDMuM2wtNjMuNSA4Ny44LTIyLjktMzEuOXpNNjg4IDMwNnYtNDhjMC00LjQtMy42LTgtOC04SDI5NmMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgzODRjNC40IDAgOC0zLjYgOC04em0tMzkyIDg4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDE4NGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOEgyOTZ6bTE4NCA0NThIMjA4VjE0OGg1NjB2Mjk2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LThWMTA4YzAtMTcuNy0xNC4zLTMyLTMyLTMySDE2OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2Nzg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDMxMmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptNDAyLjYtMzIwLjhsLTE5Mi02Ni43Yy0uOS0uMy0xLjctLjQtMi42LS40cy0xLjguMS0yLjYuNGwtMTkyIDY2LjdhNy45NiA3Ljk2IDAgMCAwLTUuNCA3LjV2MjUxLjFjMCAyLjUgMS4xIDQuOCAzLjEgNi4zbDE5MiAxNTAuMmMxLjQgMS4xIDMuMiAxLjcgNC45IDEuN3MzLjUtLjYgNC45LTEuN2wxOTItMTUwLjJjMS45LTEuNSAzLjEtMy44IDMuMS02LjNWNTM4LjdjMC0zLjQtMi4yLTYuNC01LjQtNy41ek04MjYgNzYzLjdMNjg4IDg3MS42IDU1MCA3NjMuN1Y1NzdsMTM4LTQ4IDEzOCA0OHYxODYuN3onKSk7XG5leHBvcnRzLkZpbGVTZWFyY2hPdXRsaW5lID0gZ2V0SWNvbignZmlsZS1zZWFyY2gnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNjg4IDMxMnYtNDhjMC00LjQtMy42LTgtOC04SDI5NmMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgzODRjNC40IDAgOC0zLjYgOC04em0tMzkyIDg4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDE4NGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOEgyOTZ6bTE0NCA0NTJIMjA4VjE0OGg1NjB2MzQ0YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LThWMTA4YzAtMTcuNy0xNC4zLTMyLTMyLTMySDE2OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2Nzg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDI3MmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptNDQ1LjcgNTEuNWwtOTMuMy05My4zQzgxNC43IDc4MC43IDgyOCA3NDMuOSA4MjggNzA0YzAtOTcuMi03OC44LTE3Ni0xNzYtMTc2cy0xNzYgNzguOC0xNzYgMTc2IDc4LjggMTc2IDE3NiAxNzZjMzUuOCAwIDY5LTEwLjcgOTYuOC0yOWw5NC43IDk0LjdjMS42IDEuNiAzLjYgMi4zIDUuNiAyLjNzNC4xLS44IDUuNi0yLjNsMzEtMzFhNy45IDcuOSAwIDAgMCAwLTExLjJ6TTY1MiA4MTZjLTYxLjkgMC0xMTItNTAuMS0xMTItMTEyczUwLjEtMTEyIDExMi0xMTIgMTEyIDUwLjEgMTEyIDExMi01MC4xIDExMi0xMTIgMTEyeicpKTtcbmV4cG9ydHMuRmlsZUpwZ091dGxpbmUgPSBnZXRJY29uKCdmaWxlLWpwZycsIG91dGxpbmUsIGdldE5vZGUobm9ybWFsVmlld0JveCwgJ004NzQuNiAzMDEuOEw1OTYuOCAyMS4zYy00LjUtNC41LTkuNC04LjMtMTQuNy0xMS41LTEuNC0uOC0yLjgtMS42LTQuMy0yLjMtLjktLjUtMS45LS45LTIuOC0xLjMtOS00LTE4LjktNi4yLTI5LTYuMkgyMDFjLTM5LjggMC03MyAzMi4yLTczIDcydjg4MGMwIDM5LjggMzMuMiA3MiA3MyA3Mmg2MjNjMzkuOCAwIDcxLTMyLjIgNzEtNzJWMzUyLjVjMC0xOS03LTM3LjItMjAuNC01MC43ek01ODMgMTEwLjRMNzgzLjggMzEySDU4M1YxMTAuNHpNODIzIDk1MkgyMDBWNzJoMzExdjI0MGMwIDM5LjggMzMuMiA3MiA3MyA3MmgyMzl2NTY4ek0zNTAgNjk2LjVjMCAyNC4yLTcuNSAzMS40LTIxLjkgMzEuNC05IDAtMTguNC01LjgtMjQuOC0xOC41TDI3Mi45IDczMmMxMy40IDIyLjkgMzIuMyAzNC4yIDYxLjMgMzQuMiA0MS42IDAgNjAuOC0yOS45IDYwLjgtNjYuMlY1NzdoLTQ1djExOS41ek01MDEuMyA1NzdINDM3djE4Nmg0NHYtNjJoMjEuNmMzOS4xIDAgNzMuMS0xOS42IDczLjEtNjMuNiAwLTQ1LjgtMzMuNS02MC40LTc0LjQtNjAuNHptLS44IDg5SDQ4MXYtNTNoMTguMmMyMS41IDAgMzMuNCA2LjIgMzMuNCAyNC45IDAgMTguMS0xMC41IDI4LjEtMzIuMSAyOC4xem0xODIuNS05djM2aDMwdjMwLjFjLTQgMi45LTExIDQuNy0xNy43IDQuNy0zNC4zIDAtNTAuNy0yMS40LTUwLjctNTguMiAwLTM2LjEgMTkuNy01Ny40IDQ3LjEtNTcuNCAxNS4zIDAgMjUgNi4yIDM0IDE0LjRsMjMuNy0yOC4zYy0xMi43LTEyLjgtMzIuMS0yNC4yLTU5LjItMjQuMi00OS42IDAtOTEuMSAzNS4zLTkxLjEgOTcgMCA2Mi43IDQwIDk1LjEgOTEuNSA5NS4xIDI1LjkgMCA0OS4yLTEwLjIgNjEuNS0yMi42VjY1N0g2ODN6JykpO1xuZXhwb3J0cy5Gb250Q29sb3JzT3V0bGluZSA9IGdldEljb24oJ2ZvbnQtY29sb3JzJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkwNCA4MTZIMTIwYy00LjQgMC04IDMuNi04IDh2ODBjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTgwYzAtNC40LTMuNi04LTgtOHptLTY1MC4zLTgwaDg1YzQuMiAwIDgtMi43IDkuMy02LjhsNTMuNy0xNjZoMjE5LjJsNTMuMiAxNjZjMS4zIDQgNSA2LjggOS4zIDYuOGg4OS4xYzEuMSAwIDIuMi0uMiAzLjItLjVhOS43IDkuNyAwIDAgMCA2LTEyLjRMNTczLjYgMTE4LjZhOS45IDkuOSAwIDAgMC05LjItNi42SDQ2Mi4xYy00LjIgMC03LjkgMi42LTkuMiA2LjZMMjQ0LjUgNzIzLjFjLS40IDEtLjUgMi4xLS41IDMuMi0uMSA1LjMgNC4zIDkuNyA5LjcgOS43em0yNTUuOS01MTYuMWg0LjFsODMuOCAyNjMuOEg0MjQuOWw4NC43LTI2My44eicpKTtcbmV4cG9ydHMuRm9udFNpemVPdXRsaW5lID0gZ2V0SWNvbignZm9udC1zaXplJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkyMCA0MTZINjE2Yy00LjQgMC04IDMuNi04IDh2MTEyYzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LTh2LTU2aDYwdjMyMGgtNDZjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMTY0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04aC00NlY0ODBoNjB2NTZjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOFY0MjRjMC00LjQtMy42LTgtOC04ek02NTYgMjk2VjE2OGMwLTQuNC0zLjYtOC04LThIMTA0Yy00LjQgMC04IDMuNi04IDh2MTI4YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTY0aDE2OHY1NjBoLTkyYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDI2NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtOTJWMjMyaDE2OHY2NGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04eicpKTtcbmV4cG9ydHMuRm9ya091dGxpbmUgPSBnZXRJY29uKCdmb3JrJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTc1MiAxMDBjLTYxLjggMC0xMTIgNTAuMi0xMTIgMTEyIDAgNDcuNyAyOS45IDg4LjUgNzIgMTA0LjZ2MjcuNkw1MTIgNjAxLjQgMzEyIDM0NC4ydi0yNy42YzQyLjEtMTYuMSA3Mi01Ni45IDcyLTEwNC42IDAtNjEuOC01MC4yLTExMi0xMTItMTEycy0xMTIgNTAuMi0xMTIgMTEyYzAgNTAuNiAzMy44IDkzLjUgODAgMTA3LjN2MzQuNGMwIDkuNyAzLjMgMTkuMyA5LjMgMjdMNDc2IDY3Mi4zdjMzLjZjLTQ0LjIgMTUtNzYgNTYuOS03NiAxMDYuMSAwIDYxLjggNTAuMiAxMTIgMTEyIDExMnMxMTItNTAuMiAxMTItMTEyYzAtNDkuMi0zMS44LTkxLTc2LTEwNi4xdi0zMy42bDIyNi43LTI5MS42YzYtNy43IDkuMy0xNy4zIDkuMy0yN3YtMzQuNGM0Ni4yLTEzLjggODAtNTYuNyA4MC0xMDcuMyAwLTYxLjgtNTAuMi0xMTItMTEyLTExMnpNMjI0IDIxMmE0OC4wMSA0OC4wMSAwIDAgMSA5NiAwIDQ4LjAxIDQ4LjAxIDAgMCAxLTk2IDB6bTMzNiA2MDBhNDguMDEgNDguMDEgMCAwIDEtOTYgMCA0OC4wMSA0OC4wMSAwIDAgMSA5NiAwem0xOTItNTUyYTQ4LjAxIDQ4LjAxIDAgMCAxIDAtOTYgNDguMDEgNDguMDEgMCAwIDEgMCA5NnonKSk7XG5leHBvcnRzLkZvcm1PdXRsaW5lID0gZ2V0SWNvbignZm9ybScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MDQgNTEyaC01NmMtNC40IDAtOCAzLjYtOCA4djMyMEgxODRWMTg0aDMyMGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOEgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWNTIwYzAtNC40LTMuNi04LTgtOHonLCAnTTM1NS45IDUzNC45TDM1NCA2NTMuOGMtLjEgOC45IDcuMSAxNi4yIDE2IDE2LjJoLjRsMTE4LTIuOWMyLS4xIDQtLjkgNS40LTIuM2w0MTUuOS00MTVjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM0w3ODUuNCAxMTQuM2MtMS42LTEuNi0zLjYtMi4zLTUuNy0yLjNzLTQuMS44LTUuNyAyLjNsLTQxNS44IDQxNWE4LjMgOC4zIDAgMCAwLTIuMyA1LjZ6bTYzLjUgMjMuNkw3NzkuNyAxOTlsNDUuMiA0NS4xLTM2MC41IDM1OS43LTQ1LjcgMS4xLjctNDYuNHonKSk7XG5leHBvcnRzLkZ1bGxzY3JlZW5FeGl0T3V0bGluZSA9IGdldEljb24oJ2Z1bGxzY3JlZW4tZXhpdCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ00zOTEgMjQwLjljLS44LTYuNi04LjktOS40LTEzLjYtNC43bC00My43IDQzLjdMMjAwIDE0Ni4zYTguMDMgOC4wMyAwIDAgMC0xMS4zIDBsLTQyLjQgNDIuM2E4LjAzIDguMDMgMCAwIDAgMCAxMS4zTDI4MCAzMzMuNmwtNDMuOSA0My45YTguMDEgOC4wMSAwIDAgMCA0LjcgMTMuNkw0MDEgNDEwYzUuMS42IDkuNS0zLjcgOC45LTguOUwzOTEgMjQwLjl6bTEwLjEgMzczLjJMMjQwLjggNjMzYy02LjYuOC05LjQgOC45LTQuNyAxMy42bDQzLjkgNDMuOUwxNDYuMyA4MjRhOC4wMyA4LjAzIDAgMCAwIDAgMTEuM2w0Mi40IDQyLjNjMy4xIDMuMSA4LjIgMy4xIDExLjMgMEwzMzMuNyA3NDRsNDMuNyA0My43QTguMDEgOC4wMSAwIDAgMCAzOTEgNzgzbDE4LjktMTYwLjFjLjYtNS4xLTMuNy05LjQtOC44LTguOHptMjIxLjgtMjA0LjJMNzgzLjIgMzkxYzYuNi0uOCA5LjQtOC45IDQuNy0xMy42TDc0NCAzMzMuNiA4NzcuNyAyMDBjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM2wtNDIuNC00Mi4zYTguMDMgOC4wMyAwIDAgMC0xMS4zIDBMNjkwLjMgMjc5LjlsLTQzLjctNDMuN2E4LjAxIDguMDEgMCAwIDAtMTMuNiA0LjdMNjE0LjEgNDAxYy0uNiA1LjIgMy43IDkuNSA4LjggOC45ek03NDQgNjkwLjRsNDMuOS00My45YTguMDEgOC4wMSAwIDAgMC00LjctMTMuNkw2MjMgNjE0Yy01LjEtLjYtOS41IDMuNy04LjkgOC45TDYzMyA3ODMuMWMuOCA2LjYgOC45IDkuNCAxMy42IDQuN2w0My43LTQzLjdMODI0IDg3Ny43YzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBsNDIuNC00Mi4zYzMuMS0zLjEgMy4xLTguMiAwLTExLjNMNzQ0IDY5MC40eicpKTtcbmV4cG9ydHMuRnVsbHNjcmVlbk91dGxpbmUgPSBnZXRJY29uKCdmdWxsc2NyZWVuJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTI5MCAyMzYuNGw0My45LTQzLjlhOC4wMSA4LjAxIDAgMCAwLTQuNy0xMy42TDE2OSAxNjBjLTUuMS0uNi05LjUgMy43LTguOSA4LjlMMTc5IDMyOS4xYy44IDYuNiA4LjkgOS40IDEzLjYgNC43bDQzLjctNDMuN0wzNzAgNDIzLjdjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGw0Mi40LTQyLjNjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM0wyOTAgMjM2LjR6bTM1Mi43IDE4Ny4zYzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBsMTMzLjctMTMzLjYgNDMuNyA0My43YTguMDEgOC4wMSAwIDAgMCAxMy42LTQuN0w4NjMuOSAxNjljLjYtNS4xLTMuNy05LjUtOC45LTguOUw2OTQuOCAxNzljLTYuNi44LTkuNCA4LjktNC43IDEzLjZsNDMuOSA0My45TDYwMC4zIDM3MGE4LjAzIDguMDMgMCAwIDAgMCAxMS4zbDQyLjQgNDIuNHpNODQ1IDY5NC45Yy0uOC02LjYtOC45LTkuNC0xMy42LTQuN2wtNDMuNyA0My43TDY1NCA2MDAuM2E4LjAzIDguMDMgMCAwIDAtMTEuMyAwbC00Mi40IDQyLjNhOC4wMyA4LjAzIDAgMCAwIDAgMTEuM0w3MzQgNzg3LjZsLTQzLjkgNDMuOWE4LjAxIDguMDEgMCAwIDAgNC43IDEzLjZMODU1IDg2NGM1LjEuNiA5LjUtMy43IDguOS04LjlMODQ1IDY5NC45em0tNDYzLjctOTQuNmE4LjAzIDguMDMgMCAwIDAtMTEuMyAwTDIzNi4zIDczMy45bC00My43LTQzLjdhOC4wMSA4LjAxIDAgMCAwLTEzLjYgNC43TDE2MC4xIDg1NWMtLjYgNS4xIDMuNyA5LjUgOC45IDguOUwzMjkuMiA4NDVjNi42LS44IDkuNC04LjkgNC43LTEzLjZMMjkwIDc4Ny42IDQyMy43IDY1NGMzLjEtMy4xIDMuMS04LjIgMC0xMS4zbC00Mi40LTQyLjR6JykpO1xuZXhwb3J0cy5HYXRld2F5T3V0bGluZSA9IGdldEljb24oJ2dhdGV3YXknLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTI4IDM5MmM4LjggMCAxNi03LjIgMTYtMTZWMTkyYzAtOC44LTcuMi0xNi0xNi0xNkg3NDRjLTguOCAwLTE2IDcuMi0xNiAxNnY1NkgyOTZ2LTU2YzAtOC44LTcuMi0xNi0xNi0xNkg5NmMtOC44IDAtMTYgNy4yLTE2IDE2djE4NGMwIDguOCA3LjIgMTYgMTYgMTZoNTZ2MjQwSDk2Yy04LjggMC0xNiA3LjItMTYgMTZ2MTg0YzAgOC44IDcuMiAxNiAxNiAxNmgxODRjOC44IDAgMTYtNy4yIDE2LTE2di01Nmg0MzJ2NTZjMCA4LjggNy4yIDE2IDE2IDE2aDE4NGM4LjggMCAxNi03LjIgMTYtMTZWNjQ4YzAtOC44LTcuMi0xNi0xNi0xNmgtNTZWMzkyaDU2ek03OTIgMjQwaDg4djg4aC04OHYtODh6bS02NDggODh2LTg4aDg4djg4aC04OHptODggNDU2aC04OHYtODhoODh2ODh6bTY0OC04OHY4OGgtODh2LTg4aDg4em0tODAtNjRoLTU2Yy04LjggMC0xNiA3LjItMTYgMTZ2NTZIMjk2di01NmMwLTguOC03LjItMTYtMTYtMTZoLTU2VjM5Mmg1NmM4LjggMCAxNi03LjIgMTYtMTZ2LTU2aDQzMnY1NmMwIDguOCA3LjIgMTYgMTYgMTZoNTZ2MjQweicpKTtcbmV4cG9ydHMuRG93bk91dGxpbmUgPSBnZXRJY29uKCdkb3duJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4NCAyNTZoLTc1Yy01LjEgMC05LjkgMi41LTEyLjkgNi42TDUxMiA2NTQuMiAyMjcuOSAyNjIuNmMtMy00LjEtNy44LTYuNi0xMi45LTYuNmgtNzVjLTYuNSAwLTEwLjMgNy40LTYuNSAxMi43bDM1Mi42IDQ4Ni4xYzEyLjggMTcuNiAzOSAxNy42IDUxLjcgMGwzNTIuNi00ODYuMWMzLjktNS4zLjEtMTIuNy02LjQtMTIuN3onKSk7XG5leHBvcnRzLkRyYWdPdXRsaW5lID0gZ2V0SWNvbignZHJhZycsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MDkuMyA1MDYuM0w3ODEuNyA0MDUuNmE3LjIzIDcuMjMgMCAwIDAtMTEuNyA1LjdWNDc2SDU0OFYyNTRoNjQuOGM2IDAgOS40LTcgNS43LTExLjdMNTE3LjcgMTE0LjdhNy4xNCA3LjE0IDAgMCAwLTExLjMgMEw0MDUuNiAyNDIuM2E3LjIzIDcuMjMgMCAwIDAgNS43IDExLjdINDc2djIyMkgyNTR2LTY0LjhjMC02LTctOS40LTExLjctNS43TDExNC43IDUwNi4zYTcuMTQgNy4xNCAwIDAgMCAwIDExLjNsMTI3LjUgMTAwLjhjNC43IDMuNyAxMS43LjQgMTEuNy01LjdWNTQ4aDIyMnYyMjJoLTY0LjhjLTYgMC05LjQgNy01LjcgMTEuN2wxMDAuOCAxMjcuNWMyLjkgMy43IDguNSAzLjcgMTEuMyAwbDEwMC44LTEyNy41YzMuNy00LjcuNC0xMS43LTUuNy0xMS43SDU0OFY1NDhoMjIydjY0LjhjMCA2IDcgOS40IDExLjcgNS43bDEyNy41LTEwMC44YTcuMyA3LjMgMCAwIDAgLjEtMTEuNHonKSk7XG5leHBvcnRzLkdsb2JhbE91dGxpbmUgPSBnZXRJY29uKCdnbG9iYWwnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODU0LjQgODAwLjljLjItLjMuNS0uNi43LS45QzkyMC42IDcyMi4xIDk2MCA2MjEuNyA5NjAgNTEycy0zOS40LTIxMC4xLTEwNC44LTI4OGMtLjItLjMtLjUtLjUtLjctLjgtMS4xLTEuMy0yLjEtMi41LTMuMi0zLjctLjQtLjUtLjgtLjktMS4yLTEuNGwtNC4xLTQuNy0uMS0uMWMtMS41LTEuNy0zLjEtMy40LTQuNi01LjFsLS4xLS4xYy0zLjItMy40LTYuNC02LjgtOS43LTEwLjFsLS4xLS4xLTQuOC00LjgtLjMtLjNjLTEuNS0xLjUtMy0yLjktNC41LTQuMy0uNS0uNS0xLTEtMS42LTEuNS0xLTEtMi0xLjktMy0yLjgtLjMtLjMtLjctLjYtMS0xQzczNi40IDEwOS4yIDYyOS41IDY0IDUxMiA2NHMtMjI0LjQgNDUuMi0zMDQuMyAxMTkuMmMtLjMuMy0uNy42LTEgMS0xIC45LTIgMS45LTMgMi45LS41LjUtMSAxLTEuNiAxLjUtMS41IDEuNC0zIDIuOS00LjUgNC4zbC0uMy4zLTQuOCA0LjgtLjEuMWMtMy4zIDMuMy02LjUgNi43LTkuNyAxMC4xbC0uMS4xYy0xLjYgMS43LTMuMSAzLjQtNC42IDUuMWwtLjEuMWMtMS40IDEuNS0yLjggMy4xLTQuMSA0LjctLjQuNS0uOC45LTEuMiAxLjQtMS4xIDEuMi0yLjEgMi41LTMuMiAzLjctLjIuMy0uNS41LS43LjhDMTAzLjQgMzAxLjkgNjQgNDAyLjMgNjQgNTEyczM5LjQgMjEwLjEgMTA0LjggMjg4Yy4yLjMuNS42LjcuOWwzLjEgMy43Yy40LjUuOC45IDEuMiAxLjRsNC4xIDQuN2MwIC4xLjEuMS4xLjIgMS41IDEuNyAzIDMuNCA0LjYgNWwuMS4xYzMuMiAzLjQgNi40IDYuOCA5LjYgMTAuMWwuMS4xYzEuNiAxLjYgMy4xIDMuMiA0LjcgNC43bC4zLjNjMy4zIDMuMyA2LjcgNi41IDEwLjEgOS42IDgwLjEgNzQgMTg3IDExOS4yIDMwNC41IDExOS4yczIyNC40LTQ1LjIgMzA0LjMtMTE5LjJhMzAwIDMwMCAwIDAgMCAxMC05LjZsLjMtLjNjMS42LTEuNiAzLjItMy4xIDQuNy00LjdsLjEtLjFjMy4zLTMuMyA2LjUtNi43IDkuNi0xMC4xbC4xLS4xYzEuNS0xLjcgMy4xLTMuMyA0LjYtNSAwLS4xLjEtLjEuMS0uMiAxLjQtMS41IDIuOC0zLjEgNC4xLTQuNy40LS41LjgtLjkgMS4yLTEuNGE5OSA5OSAwIDAgMCAzLjMtMy43em00LjEtMTQyLjZjLTEzLjggMzIuNi0zMiA2Mi44LTU0LjIgOTAuMmE0NDQuMDcgNDQ0LjA3IDAgMCAwLTgxLjUtNTUuOWMxMS42LTQ2LjkgMTguOC05OC40IDIwLjctMTUyLjZIODg3Yy0zIDQwLjktMTIuNiA4MC42LTI4LjUgMTE4LjN6TTg4NyA0ODRINzQzLjVjLTEuOS01NC4yLTkuMS0xMDUuNy0yMC43LTE1Mi42IDI5LjMtMTUuNiA1Ni42LTM0LjQgODEuNS01NS45QTM3My44NiAzNzMuODYgMCAwIDEgODg3IDQ4NHpNNjU4LjMgMTY1LjVjMzkuNyAxNi44IDc1LjggNDAgMTA3LjYgNjkuMmEzOTQuNzIgMzk0LjcyIDAgMCAxLTU5LjQgNDEuOGMtMTUuNy00NS0zNS44LTg0LjEtNTkuMi0xMTUuNCAzLjcgMS40IDcuNCAyLjkgMTEgNC40em0tOTAuNiA3MDAuNmMtOS4yIDcuMi0xOC40IDEyLjctMjcuNyAxNi40VjY5N2EzODkuMSAzODkuMSAwIDAgMSAxMTUuNyAyNi4yYy04LjMgMjQuNi0xNy45IDQ3LjMtMjkgNjcuOC0xNy40IDMyLjQtMzcuOCA1OC4zLTU5IDc1LjF6bTU5LTYzMy4xYzExIDIwLjYgMjAuNyA0My4zIDI5IDY3LjhBMzg5LjEgMzg5LjEgMCAwIDEgNTQwIDMyN1YxNDEuNmM5LjIgMy43IDE4LjUgOS4xIDI3LjcgMTYuNCAyMS4yIDE2LjcgNDEuNiA0Mi42IDU5IDc1ek01NDAgNjQwLjlWNTQwaDE0Ny41Yy0xLjYgNDQuMi03LjEgODcuMS0xNi4zIDEyNy44bC0uMyAxLjJBNDQ1LjAyIDQ0NS4wMiAwIDAgMCA1NDAgNjQwLjl6bTAtMTU2LjlWMzgzLjFjNDUuOC0yLjggODkuOC0xMi41IDEzMC45LTI4LjFsLjMgMS4yYzkuMiA0MC43IDE0LjcgODMuNSAxNi4zIDEyNy44SDU0MHptLTU2IDU2djEwMC45Yy00NS44IDIuOC04OS44IDEyLjUtMTMwLjkgMjguMWwtLjMtMS4yYy05LjItNDAuNy0xNC43LTgzLjUtMTYuMy0xMjcuOEg0ODR6bS0xNDcuNS01NmMxLjYtNDQuMiA3LjEtODcuMSAxNi4zLTEyNy44bC4zLTEuMmM0MS4xIDE1LjYgODUgMjUuMyAxMzAuOSAyOC4xVjQ4NEgzMzYuNXpNNDg0IDY5N3YxODUuNGMtOS4yLTMuNy0xOC41LTkuMS0yNy43LTE2LjQtMjEuMi0xNi43LTQxLjctNDIuNy01OS4xLTc1LjEtMTEtMjAuNi0yMC43LTQzLjMtMjktNjcuOCAzNy4yLTE0LjYgNzUuOS0yMy4zIDExNS44LTI2LjF6bTAtMzcwYTM4OS4xIDM4OS4xIDAgMCAxLTExNS43LTI2LjJjOC4zLTI0LjYgMTcuOS00Ny4zIDI5LTY3LjggMTcuNC0zMi40IDM3LjgtNTguNCA1OS4xLTc1LjEgOS4yLTcuMiAxOC40LTEyLjcgMjcuNy0xNi40VjMyN3pNMzY1LjcgMTY1LjVjMy43LTEuNSA3LjMtMyAxMS00LjQtMjMuNCAzMS4zLTQzLjUgNzAuNC01OS4yIDExNS40LTIxLTEyLTQwLjktMjYtNTkuNC00MS44IDMxLjgtMjkuMiA2Ny45LTUyLjQgMTA3LjYtNjkuMnpNMTY1LjUgMzY1LjdjMTMuOC0zMi42IDMyLTYyLjggNTQuMi05MC4yIDI0LjkgMjEuNSA1Mi4yIDQwLjMgODEuNSA1NS45LTExLjYgNDYuOS0xOC44IDk4LjQtMjAuNyAxNTIuNkgxMzdjMy00MC45IDEyLjYtODAuNiAyOC41LTExOC4zek0xMzcgNTQwaDE0My41YzEuOSA1NC4yIDkuMSAxMDUuNyAyMC43IDE1Mi42YTQ0NC4wNyA0NDQuMDcgMCAwIDAtODEuNSA1NS45QTM3My44NiAzNzMuODYgMCAwIDEgMTM3IDU0MHptMjI4LjcgMzE4LjVjLTM5LjctMTYuOC03NS44LTQwLTEwNy42LTY5LjIgMTguNS0xNS44IDM4LjQtMjkuNyA1OS40LTQxLjggMTUuNyA0NSAzNS44IDg0LjEgNTkuMiAxMTUuNC0zLjctMS40LTcuNC0yLjktMTEtNC40em0yOTIuNiAwYy0zLjcgMS41LTcuMyAzLTExIDQuNCAyMy40LTMxLjMgNDMuNS03MC40IDU5LjItMTE1LjQgMjEgMTIgNDAuOSAyNiA1OS40IDQxLjhhMzczLjgxIDM3My44MSAwIDAgMS0xMDcuNiA2OS4yeicpKTtcbmV4cG9ydHMuR29vZ2xlUGx1c091dGxpbmUgPSBnZXRJY29uKCdnb29nbGUtcGx1cycsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NzkuNSA0NzAuNGMtLjMtMjctLjQtNTQuMi0uNS04MS4zaC04MC44Yy0uMyAyNy0uNSA1NC4xLS43IDgxLjMtMjcuMi4xLTU0LjIuMy04MS4yLjZ2ODAuOWMyNyAuMyA1NC4yLjUgODEuMi44LjMgMjcgLjMgNTQuMS41IDgxLjFoODAuOWMuMS0yNyAuMy01NC4xLjUtODEuMyAyNy4yLS4zIDU0LjItLjQgODEuMi0uN3YtODAuOWMtMjYuOS0uMi01NC4xLS4yLTgxLjEtLjV6bS01MzAgLjRjLS4xIDMyLjMgMCA2NC43LjEgOTcgNTQuMiAxLjggMTA4LjUgMSAxNjIuNyAxLjgtMjMuOSAxMjAuMy0xODcuNCAxNTkuMy0yNzMuOSA4MC43LTg5LTY4LjktODQuOC0yMjAgNy43LTI4NCA2NC43LTUxLjYgMTU2LjYtMzguOSAyMjEuMyA1LjggMjUuNC0yMy41IDQ5LjItNDguNyA3Mi4xLTc0LjctNTMuOC00Mi45LTExOS44LTczLjUtMTkwLTcwLjMtMTQ2LjYtNC45LTI4MS4zIDEyMy41LTI4My43IDI3MC4yLTkuNCAxMTkuOSA2OS40IDIzNy40IDE4MC42IDI3OS44IDExMC44IDQyLjcgMjUyLjkgMTMuNiAzMjMuNy04NiA0Ni43LTYyLjkgNTYuOC0xNDMuOSA1MS4zLTIyMC05MC43LS43LTE4MS4zLS42LTI3MS45LS4zeicpKTtcbmV4cG9ydHMuR29vZ2xlT3V0bGluZSA9IGdldEljb24oJ2dvb2dsZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODEgNDQyLjRINTE5Ljd2MTQ4LjVoMjA2LjRjLTguOSA0OC0zNS45IDg4LjYtNzYuNiAxMTUuOC0zNC40IDIzLTc4LjMgMzYuNi0xMjkuOSAzNi42LTk5LjkgMC0xODQuNC02Ny41LTIxNC42LTE1OC4yLTcuNi0yMy0xMi00Ny42LTEyLTcyLjlzNC40LTQ5LjkgMTItNzIuOWMzMC4zLTkwLjYgMTE0LjgtMTU4LjEgMjE0LjctMTU4LjEgNTYuMyAwIDEwNi44IDE5LjQgMTQ2LjYgNTcuNGwxMTAtMTEwLjFjLTY2LjUtNjItMTUzLjItMTAwLTI1Ni42LTEwMC0xNDkuOSAwLTI3OS42IDg2LTM0Mi43IDIxMS40LTI2IDUxLjgtNDAuOCAxMTAuNC00MC44IDE3Mi40UzE1MSA2MzIuOCAxNzcgNjg0LjZDMjQwLjEgODEwIDM2OS44IDg5NiA1MTkuNyA4OTZjMTAzLjYgMCAxOTAuNC0zNC40IDI1My44LTkzIDcyLjUtNjYuOCAxMTQuNC0xNjUuMiAxMTQuNC0yODIuMSAwLTI3LjItMi40LTUzLjMtNi45LTc4LjV6JykpO1xuZXhwb3J0cy5IZWF0TWFwT3V0bGluZSA9IGdldEljb24oJ2hlYXQtbWFwJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTk1NS43IDg1NmwtNDE2LTcyMGMtNi4yLTEwLjctMTYuOS0xNi0yNy43LTE2cy0yMS42IDUuMy0yNy43IDE2bC00MTYgNzIwQzU2IDg3Ny40IDcxLjQgOTA0IDk2IDkwNGg4MzJjMjQuNiAwIDQwLTI2LjYgMjcuNy00OHptLTc5MC40LTIzLjlMNTEyIDIzMS45IDg1OC43IDgzMkgxNjUuM3ptMzE5LTQ3NC4xbC0yMjggMzk0Yy0xMi4zIDIxLjMgMy4xIDQ4IDI3LjcgNDhoNDU1LjhjMjQuNyAwIDQwLjEtMjYuNyAyNy43LTQ4TDUzOS43IDM1OGMtNi4yLTEwLjctMTctMTYtMjcuNy0xNi0xMC44IDAtMjEuNiA1LjMtMjcuNyAxNnptMjE0IDM4NkgzMjUuN0w1MTIgNDIybDE4Ni4zIDMyMnptLTIxNC0xOTQuMWwtNTcgOTguNEM0MTUgNjY5LjUgNDMwLjQgNjk2IDQ1NSA2OTZoMTE0YzI0LjYgMCAzOS45LTI2LjUgMjcuNy00Ny43bC01Ny05OC40Yy02LjEtMTAuNi0xNi45LTE1LjktMjcuNy0xNS45cy0yMS41IDUuMy0yNy43IDE1Ljl6bTU3LjEgOTguNGgtNTguN2wyOS40LTUwLjcgMjkuMyA1MC43eicpKTtcbmV4cG9ydHMuR29sZE91dGxpbmUgPSBnZXRJY29uKCdnb2xkJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTM0MiA0NzJoMzQyYy40IDAgLjkgMCAxLjMtLjEgNC40LS43IDcuMy00LjggNi42LTkuMmwtNDAuMi0yNDhjLS42LTMuOS00LTYuNy03LjktNi43SDM4Mi4yYy0zLjkgMC03LjMgMi44LTcuOSA2LjdsLTQwLjIgMjQ4Yy0uMS40LS4xLjktLjEgMS4zIDAgNC40IDMuNiA4IDggOHptOTEuMi0xOTZoMTU5LjVsMjAuNyAxMjhoLTIwMWwyMC44LTEyOHptMi41IDI4Mi43Yy0uNi0zLjktNC02LjctNy45LTYuN0gxNjYuMmMtMy45IDAtNy4zIDIuOC03LjkgNi43bC00MC4yIDI0OGMtLjEuNC0uMS45LS4xIDEuMyAwIDQuNCAzLjYgOCA4IDhoMzQyYy40IDAgLjkgMCAxLjMtLjEgNC40LS43IDcuMy00LjggNi42LTkuMmwtNDAuMi0yNDh6TTE5Ni41IDc0OGwyMC43LTEyOGgxNTkuNWwyMC43IDEyOEgxOTYuNXptNzA5LjQgNTguN2wtNDAuMi0yNDhjLS42LTMuOS00LTYuNy03LjktNi43SDU5Ni4yYy0zLjkgMC03LjMgMi44LTcuOSA2LjdsLTQwLjIgMjQ4Yy0uMS40LS4xLjktLjEgMS4zIDAgNC40IDMuNiA4IDggOGgzNDJjLjQgMCAuOSAwIDEuMy0uMSA0LjMtLjcgNy4zLTQuOCA2LjYtOS4yek02MjYuNSA3NDhsMjAuNy0xMjhoMTU5LjVsMjAuNyAxMjhINjI2LjV6JykpO1xuZXhwb3J0cy5IaXN0b3J5T3V0bGluZSA9IGdldEljb24oJ2hpc3RvcnknLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTM2LjEgMjczSDQ4OGMtNC40IDAtOCAzLjYtOCA4djI3NS4zYzAgMi42IDEuMiA1IDMuMyA2LjVsMTY1LjMgMTIwLjdjMy42IDIuNiA4LjYgMS45IDExLjItMS43bDI4LjYtMzljMi43LTMuNyAxLjktOC43LTEuNy0xMS4yTDU0NC4xIDUyOC41VjI4MWMwLTQuNC0zLjYtOC04LTh6bTIxOS44IDc1LjJsMTU2LjggMzguM2M1IDEuMiA5LjktMi42IDkuOS03LjdsLjgtMTYxLjVjMC02LjctNy43LTEwLjUtMTIuOS02LjNMNzUyLjkgMzM0LjFhOCA4IDAgMCAwIDMgMTQuMXptMTY3LjcgMzAxLjFsLTU2LjctMTkuNWE4IDggMCAwIDAtMTAuMSA0LjhjLTEuOSA1LjEtMy45IDEwLjEtNiAxNS4xLTE3LjggNDIuMS00My4zIDgwLTc1LjkgMTEyLjVhMzUzIDM1MyAwIDAgMS0xMTIuNSA3NS45IDM1Mi4xOCAzNTIuMTggMCAwIDEtMTM3LjcgMjcuOGMtNDcuOCAwLTk0LjEtOS4zLTEzNy43LTI3LjhhMzUzIDM1MyAwIDAgMS0xMTIuNS03NS45Yy0zMi41LTMyLjUtNTgtNzAuNC03NS45LTExMi41QTM1My40NCAzNTMuNDQgMCAwIDEgMTcxIDUxMmMwLTQ3LjggOS4zLTk0LjIgMjcuOC0xMzcuOCAxNy44LTQyLjEgNDMuMy04MCA3NS45LTExMi41YTM1MyAzNTMgMCAwIDEgMTEyLjUtNzUuOUM0MzAuNiAxNjcuMyA0NzcgMTU4IDUyNC44IDE1OHM5NC4xIDkuMyAxMzcuNyAyNy44QTM1MyAzNTMgMCAwIDEgNzc1IDI2MS43YzEwLjIgMTAuMyAxOS44IDIxIDI4LjYgMzIuM2w1OS44LTQ2LjhDNzg0LjcgMTQ2LjYgNjYyLjIgODEuOSA1MjQuNiA4MiAyODUgODIuMSA5Mi42IDI3Ni43IDk1IDUxNi40IDk3LjQgNzUxLjkgMjg4LjkgOTQyIDUyNC44IDk0MmMxODUuNSAwIDM0My41LTExNy42IDQwMy43LTI4Mi4zIDEuNS00LjItLjctOC45LTQuOS0xMC40eicpKTtcbmV4cG9ydHMuSWVPdXRsaW5lID0gZ2V0SWNvbignaWUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODUyLjYgMzY3LjZjMTYuMy0zNi45IDMyLjEtOTAuNyAzMi4xLTEzMS44IDAtMTA5LjEtMTE5LjUtMTQ3LjYtMzE0LjUtNTcuOS0xNjEuNC0xMC44LTMxNi44IDExMC41LTM1NS42IDI3OS43IDQ2LjMtNTIuMyAxMTcuNC0xMjMuNCAxODMtMTUxLjdDMzE2LjEgMzc4LjMgMjQ2LjcgNDcwIDE5NCA1NjUuNmMtMzEuMSA1Ni45LTY2IDE0OC44LTY2IDIxNy41IDAgMTQ3LjkgMTM5LjMgMTI5LjggMjcwLjQgNjMgNDcuMSAyMy4xIDk5LjggMjMuNCAxNTIuNSAyMy40IDE0NS43IDAgMjc2LjQtODEuNCAzMjUuMi0yMTlINjk0LjljLTc4LjggMTMyLjktMjk1LjIgNzkuNS0yOTUuMi03MS4yaDQ5My4yYzkuNi02NS40LTIuNS0xNDMuNi00MC4zLTIxMS43ek0yMjQuOCA2NDguM2MyNi42IDc2LjcgODAuNiAxNDMuOCAxNTAuNCAxODUtMTMzLjEgNzMuNC0yNTkuOSA0My42LTE1MC40LTE4NXptMTc0LTE2My4zYzMtODIuNyA3NS40LTE0Mi4zIDE1Ni0xNDIuMyA4MC4xIDAgMTUzIDU5LjYgMTU2IDE0Mi4zaC0zMTJ6bTI3Ni44LTI4MS40YzMyLjEtMTUuNCA3Mi44LTMzIDEwOC44LTMzIDQ3LjEgMCA4MS40IDMyLjYgODEuNCA4MC42IDAgMzAtMTEuMSA3My41LTIxLjkgMTAxLjgtMzkuMy02My41LTk4LjktMTIyLjQtMTY4LjMtMTQ5LjR6JykpO1xuZXhwb3J0cy5JbmJveE91dGxpbmUgPSBnZXRJY29uKCdpbmJveCcsIG91dGxpbmUsIGdldE5vZGUobm9ybWFsVmlld0JveCwgJ004ODUuMiA0NDYuM2wtLjItLjgtMTEyLjItMjg1LjFjLTUtMTYuMS0xOS45LTI3LjItMzYuOC0yNy4ySDI4MS4yYy0xNyAwLTMyLjEgMTEuMy0zNi45IDI3LjZMMTM5LjQgNDQzbC0uMy43LS4yLjhjLTEuMyA0LjktMS43IDkuOS0xIDE0LjgtLjEgMS42LS4yIDMuMi0uMiA0LjhWODMwYTYwLjkgNjAuOSAwIDAgMCA2MC44IDYwLjhoNjI3LjJjMzMuNSAwIDYwLjgtMjcuMyA2MC45LTYwLjhWNDY0LjFjMC0xLjMgMC0yLjYtLjEtMy43LjQtNC45IDAtOS42LTEuMy0xNC4xem0tMjk1LjgtNDNsLS4zIDE1LjdjLS44IDQ0LjktMzEuOCA3NS4xLTc3LjEgNzUuMS0yMi4xIDAtNDEuMS03LjEtNTQuOC0yMC42UzQzNiA0NDEuMiA0MzUuNiA0MTlsLS4zLTE1LjdIMjI5LjVMMzA5IDIxMGgzOTkuMmw4MS43IDE5My4zSDU4OS40em0tMzc1IDc2LjhoMTU3LjNjMjQuMyA1Ny4xIDc2IDkwLjggMTQwLjQgOTAuOCAzMy43IDAgNjUtOS40IDkwLjMtMjcuMiAyMi4yLTE1LjYgMzkuNS0zNy40IDUwLjctNjMuNmgxNTYuNVY4MTRIMjE0LjRWNDgwLjF6JykpO1xuZXhwb3J0cy5JbXBvcnRPdXRsaW5lID0gZ2V0SWNvbignaW1wb3J0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4OC4zIDc1Ny40aC01My44Yy00LjIgMC03LjcgMy41LTcuNyA3Ljd2NjEuOEgxOTcuMVYxOTcuMWg2MjkuOHY2MS44YzAgNC4yIDMuNSA3LjcgNy43IDcuN2g1My44YzQuMiAwIDcuNy0zLjQgNy43LTcuN1YxNTguN2MwLTE3LTEzLjctMzAuNy0zMC43LTMwLjdIMTU4LjdjLTE3IDAtMzAuNyAxMy43LTMwLjcgMzAuN3Y3MDYuNmMwIDE3IDEzLjcgMzAuNyAzMC43IDMwLjdoNzA2LjZjMTcgMCAzMC43LTEzLjcgMzAuNy0zMC43Vjc2NS4xYzAtNC4zLTMuNS03LjctNy43LTcuN3pNOTAyIDQ3Nkg1ODh2LTc2YzAtNi43LTcuOC0xMC41LTEzLTYuM2wtMTQxLjkgMTEyYTggOCAwIDAgMCAwIDEyLjZsMTQxLjkgMTEyYzUuMyA0LjIgMTMgLjQgMTMtNi4zdi03NmgzMTRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6JykpO1xuZXhwb3J0cy5JbmZvT3V0bGluZSA9IGdldEljb24oJ2luZm8nLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNDQ4IDIyNGE2NCA2NCAwIDEgMCAxMjggMCA2NCA2NCAwIDEgMC0xMjggMHptOTYgMTY4aC02NGMtNC40IDAtOCAzLjYtOCA4djQ2NGMwIDQuNCAzLjYgOCA4IDhoNjRjNC40IDAgOC0zLjYgOC04VjQwMGMwLTQuNC0zLjYtOC04LTh6JykpO1xuZXhwb3J0cy5JdGFsaWNPdXRsaW5lID0gZ2V0SWNvbignaXRhbGljJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTc5OCAxNjBIMzY2Yy00LjQgMC04IDMuNi04IDh2NjRjMCA0LjQgMy42IDggOCA4aDE4MS4ybC0xNTYgNTQ0SDIyOWMtNC40IDAtOCAzLjYtOCA4djY0YzAgNC40IDMuNiA4IDggOGg0MzJjNC40IDAgOC0zLjYgOC04di02NGMwLTQuNC0zLjYtOC04LThINDc0LjRsMTU2LTU0NEg3OThjNC40IDAgOC0zLjYgOC04di02NGMwLTQuNC0zLjYtOC04LTh6JykpO1xuZXhwb3J0cy5Jc3N1ZXNDbG9zZU91dGxpbmUgPSBnZXRJY29uKCdpc3N1ZXMtY2xvc2UnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNDY0IDY4OGE0OCA0OCAwIDEgMCA5NiAwIDQ4IDQ4IDAgMSAwLTk2IDB6bTcyLTExMmM0LjQgMCA4LTMuNiA4LThWMjk2YzAtNC40LTMuNi04LTgtOGgtNDhjLTQuNCAwLTggMy42LTggOHYyNzJjMCA0LjQgMy42IDggOCA4aDQ4em00MDAtMTg4aC01OS4zYy0yLjYgMC01IDEuMi02LjUgMy4zTDc2My43IDUzOC4xbC00OS45LTY4LjhhNy45MiA3LjkyIDAgMCAwLTYuNS0zLjNINjQ4Yy02LjUgMC0xMC4zIDcuNC02LjUgMTIuN2wxMDkuMiAxNTAuN2ExNi4xIDE2LjEgMCAwIDAgMjYgMGwxNjUuOC0yMjguN2MzLjgtNS4zIDAtMTIuNy02LjUtMTIuN3ptLTQ0IDMwNmgtNjQuMmMtNS41IDAtMTAuNiAyLjktMTMuNiA3LjVhMzUyLjIgMzUyLjIgMCAwIDEtNDkuOCA2Mi4yQTM1NS45MiAzNTUuOTIgMCAwIDEgNjUxLjEgODQwYTM1NSAzNTUgMCAwIDEtMTM4LjcgMjcuOWMtNDguMSAwLTk0LjgtOS40LTEzOC43LTI3LjlhMzU1LjkyIDM1NS45MiAwIDAgMS0xMTMuMy03Ni4zQTM1My4wNiAzNTMuMDYgMCAwIDEgMTg0IDY1MC41Yy0xOC42LTQzLjgtMjgtOTAuNS0yOC0xMzguNXM5LjQtOTQuNyAyOC0xMzguNWMxNy45LTQyLjQgNDMuNi04MC41IDc2LjQtMTEzLjIgMzIuOC0zMi43IDcwLjktNTguNCAxMTMuMy03Ni4zYTM1NSAzNTUgMCAwIDEgMTM4LjctMjcuOWM0OC4xIDAgOTQuOCA5LjQgMTM4LjcgMjcuOSA0Mi40IDE3LjkgODAuNSA0My42IDExMy4zIDc2LjMgMTkgMTkgMzUuNiAzOS44IDQ5LjggNjIuMiAyLjkgNC43IDguMSA3LjUgMTMuNiA3LjVIODkyYzYgMCA5LjgtNi4zIDcuMi0xMS42QzgyOC44IDE3OC41IDY4NC43IDgyIDUxNy43IDgwIDI3OC45IDc3LjIgODAuNSAyNzIuNSA4MCA1MTEuMiA3OS41IDc1MC4xIDI3My4zIDk0NCA1MTIuNCA5NDRjMTY5LjIgMCAzMTUuNi05NyAzODYuNy0yMzguNEE4IDggMCAwIDAgODkyIDY5NHonKSk7XG5leHBvcnRzLktleU91dGxpbmUgPSBnZXRJY29uKCdrZXknLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNjA4IDExMmMtMTY3LjkgMC0zMDQgMTM2LjEtMzA0IDMwNCAwIDcwLjMgMjMuOSAxMzUgNjMuOSAxODYuNWwtNDEuMSA0MS4xLTYyLjMtNjIuM2E4LjE1IDguMTUgMCAwIDAtMTEuNCAwbC0zOS44IDM5LjhhOC4xNSA4LjE1IDAgMCAwIDAgMTEuNGw2Mi4zIDYyLjMtNDQuOSA0NC45LTYyLjMtNjIuM2E4LjE1IDguMTUgMCAwIDAtMTEuNCAwbC0zOS44IDM5LjhhOC4xNSA4LjE1IDAgMCAwIDAgMTEuNGw2Mi4zIDYyLjMtNjUuMyA2NS4zYTguMDMgOC4wMyAwIDAgMCAwIDExLjNsNDIuMyA0Mi4zYzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBsMjUzLjYtMjUzLjZBMzA0LjA2IDMwNC4wNiAwIDAgMCA2MDggNzIwYzE2Ny45IDAgMzA0LTEzNi4xIDMwNC0zMDRTNzc1LjkgMTEyIDYwOCAxMTJ6bTE2MS4yIDQ2NS4yQzcyNi4yIDYyMC4zIDY2OC45IDY0NCA2MDggNjQ0Yy02MC45IDAtMTE4LjItMjMuNy0xNjEuMi02Ni44LTQzLjEtNDMtNjYuOC0xMDAuMy02Ni44LTE2MS4yIDAtNjAuOSAyMy43LTExOC4yIDY2LjgtMTYxLjIgNDMtNDMuMSAxMDAuMy02Ni44IDE2MS4yLTY2LjggNjAuOSAwIDExOC4yIDIzLjcgMTYxLjIgNjYuOCA0My4xIDQzIDY2LjggMTAwLjMgNjYuOCAxNjEuMiAwIDYwLjktMjMuNyAxMTguMi02Ni44IDE2MS4yeicpKTtcbmV4cG9ydHMuTGFwdG9wT3V0bGluZSA9IGdldEljb24oJ2xhcHRvcCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ005NTYuOSA4NDUuMUw4OTYuNCA2MzJWMTY4YzAtMTcuNy0xNC4zLTMyLTMyLTMyaC03MDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjQ2NEw2Ny45IDg0NS4xQzYwLjQgODY2IDc1LjggODg4IDk4IDg4OGg4MjguOGMyMi4yIDAgMzcuNi0yMiAzMC4xLTQyLjl6TTIwMC40IDIwOGg2MjR2Mzk1aC02MjRWMjA4em0yMjguMyA2MDhsOC4xLTM3aDE1MC4zbDguMSAzN0g0MjguN3ptMjI0IDBsLTE5LjEtODYuN2MtLjgtMy43LTQuMS02LjMtNy44LTYuM0gzOTguMmMtMy44IDAtNyAyLjYtNy44IDYuM0wzNzEuMyA4MTZIMTUxbDQyLjMtMTQ5aDYzOC4ybDQyLjMgMTQ5SDY1Mi43eicpKTtcbmV4cG9ydHMuTGVmdE91dGxpbmUgPSBnZXRJY29uKCdsZWZ0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTcyNCAyMTguM1YxNDFjMC02LjctNy43LTEwLjQtMTIuOS02LjNMMjYwLjMgNDg2LjhhMzEuODYgMzEuODYgMCAwIDAgMCA1MC4zbDQ1MC44IDM1Mi4xYzUuMyA0LjEgMTIuOS40IDEyLjktNi4zdi03Ny4zYzAtNC45LTIuMy05LjYtNi4xLTEyLjZsLTM2MC0yODEgMzYwLTI4MS4xYzMuOC0zIDYuMS03LjcgNi4xLTEyLjZ6JykpO1xuZXhwb3J0cy5MaW5rT3V0bGluZSA9IGdldEljb24oJ2xpbmsnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTc0IDY2NS40YTguMDMgOC4wMyAwIDAgMC0xMS4zIDBMNDQ2LjUgNzgxLjZjLTUzLjggNTMuOC0xNDQuNiA1OS41LTIwNCAwLTU5LjUtNTkuNS01My44LTE1MC4yIDAtMjA0bDExNi4yLTExNi4yYzMuMS0zLjEgMy4xLTguMiAwLTExLjNsLTM5LjgtMzkuOGE4LjAzIDguMDMgMCAwIDAtMTEuMyAwTDE5MS40IDUyNi41Yy04NC42IDg0LjYtODQuNiAyMjEuNSAwIDMwNnMyMjEuNSA4NC42IDMwNiAwbDExNi4yLTExNi4yYzMuMS0zLjEgMy4xLTguMiAwLTExLjNMNTc0IDY2NS40em0yNTguNi00NzRjLTg0LjYtODQuNi0yMjEuNS04NC42LTMwNiAwTDQxMC4zIDMwNy42YTguMDMgOC4wMyAwIDAgMCAwIDExLjNsMzkuNyAzOS43YzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBsMTE2LjItMTE2LjJjNTMuOC01My44IDE0NC42LTU5LjUgMjA0IDAgNTkuNSA1OS41IDUzLjggMTUwLjIgMCAyMDRMNjY1LjMgNTYyLjZhOC4wMyA4LjAzIDAgMCAwIDAgMTEuM2wzOS44IDM5LjhjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGwxMTYuMi0xMTYuMmM4NC41LTg0LjYgODQuNS0yMjEuNSAwLTMwNi4xek02MTAuMSAzNzIuM2E4LjAzIDguMDMgMCAwIDAtMTEuMyAwTDM3Mi4zIDU5OC43YTguMDMgOC4wMyAwIDAgMCAwIDExLjNsMzkuNiAzOS42YzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBsMjI2LjQtMjI2LjRjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM2wtMzkuNS0zOS42eicpKTtcbmV4cG9ydHMuTGluZUNoYXJ0T3V0bGluZSA9IGdldEljb24oJ2xpbmUtY2hhcnQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODg4IDc5MkgyMDBWMTY4YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2ODhjMCA0LjQgMy42IDggOCA4aDc1MmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNMzA1LjggNjM3LjdjMy4xIDMuMSA4LjEgMy4xIDExLjMgMGwxMzguMy0xMzcuNkw1ODMgNjI4LjVjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGwyNzUuNC0yNzUuM2MzLjEtMy4xIDMuMS04LjIgMC0xMS4zbC0zOS42LTM5LjZhOC4wMyA4LjAzIDAgMCAwLTExLjMgMGwtMjMwIDIyOS45TDQ2MS40IDQwNGE4LjAzIDguMDMgMCAwIDAtMTEuMyAwTDI2Ni4zIDU4Ni43YTguMDMgOC4wMyAwIDAgMCAwIDExLjNsMzkuNSAzOS43eicpKTtcbmV4cG9ydHMuTGluZUhlaWdodE91dGxpbmUgPSBnZXRJY29uKCdsaW5lLWhlaWdodCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ002NDggMTYwSDEwNGMtNC40IDAtOCAzLjYtOCA4djEyOGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di02NGgxNjh2NTYwaC05MmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGgyNjRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTkyVjIzMmgxNjh2NjRjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFYxNjhjMC00LjQtMy42LTgtOC04em0yNzIuOCA1NDZIODU2VjMxOGg2NC44YzYgMCA5LjQtNyA1LjctMTEuN0w4MjUuNyAxNzguN2E3LjE0IDcuMTQgMCAwIDAtMTEuMyAwTDcxMy42IDMwNi4zYTcuMjMgNy4yMyAwIDAgMCA1LjcgMTEuN0g3ODR2Mzg4aC02NC44Yy02IDAtOS40IDctNS43IDExLjdsMTAwLjggMTI3LjVjMi45IDMuNyA4LjUgMy43IDExLjMgMGwxMDAuOC0xMjcuNWE3LjIgNy4yIDAgMCAwLTUuNi0xMS43eicpKTtcbmV4cG9ydHMuTGluZU91dGxpbmUgPSBnZXRJY29uKCdsaW5lJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkwNCA0NzZIMTIwYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHonKSk7XG5leHBvcnRzLkxvYWRpbmczUXVhcnRlcnNPdXRsaW5lID0gZ2V0SWNvbignbG9hZGluZy0zLXF1YXJ0ZXJzJywgb3V0bGluZSwgZ2V0Tm9kZShub3JtYWxWaWV3Qm94LCAnTTUxMiAxMDI0Yy02OS4xIDAtMTM2LjItMTMuNS0xOTkuMy00MC4yQzI1MS43IDk1OCAxOTcgOTIxIDE1MCA4NzRjLTQ3LTQ3LTg0LTEwMS43LTEwOS44LTE2Mi43QzEzLjUgNjQ4LjIgMCA1ODEuMSAwIDUxMmMwLTE5LjkgMTYuMS0zNiAzNi0zNnMzNiAxNi4xIDM2IDM2YzAgNTkuNCAxMS42IDExNyAzNC42IDE3MS4zIDIyLjIgNTIuNCA1My45IDk5LjUgOTQuMyAxMzkuOSA0MC40IDQwLjQgODcuNSA3Mi4yIDEzOS45IDk0LjNDMzk1IDk0MC40IDQ1Mi42IDk1MiA1MTIgOTUyYzU5LjQgMCAxMTctMTEuNiAxNzEuMy0zNC42IDUyLjQtMjIuMiA5OS41LTUzLjkgMTM5LjktOTQuMyA0MC40LTQwLjQgNzIuMi04Ny41IDk0LjMtMTM5LjlDOTQwLjQgNjI5IDk1MiA1NzEuNCA5NTIgNTEyYzAtNTkuNC0xMS42LTExNy0zNC42LTE3MS4zYTQ0MC40NSA0NDAuNDUgMCAwIDAtOTQuMy0xMzkuOSA0MzcuNzEgNDM3LjcxIDAgMCAwLTEzOS45LTk0LjNDNjI5IDgzLjYgNTcxLjQgNzIgNTEyIDcyYy0xOS45IDAtMzYtMTYuMS0zNi0zNnMxNi4xLTM2IDM2LTM2YzY5LjEgMCAxMzYuMiAxMy41IDE5OS4zIDQwLjJDNzcyLjMgNjYgODI3IDEwMyA4NzQgMTUwYzQ3IDQ3IDgzLjkgMTAxLjggMTA5LjcgMTYyLjcgMjYuNyA2My4xIDQwLjIgMTMwLjIgNDAuMiAxOTkuM3MtMTMuNSAxMzYuMi00MC4yIDE5OS4zQzk1OCA3NzIuMyA5MjEgODI3IDg3NCA4NzRjLTQ3IDQ3LTEwMS44IDgzLjktMTYyLjcgMTA5LjctNjMuMSAyNi44LTEzMC4yIDQwLjMtMTk5LjMgNDAuM3onKSk7XG5leHBvcnRzLkxvYWRpbmdPdXRsaW5lID0gZ2V0SWNvbignbG9hZGluZycsIG91dGxpbmUsIGdldE5vZGUobm9ybWFsVmlld0JveCwgJ005ODggNTQ4Yy0xOS45IDAtMzYtMTYuMS0zNi0zNiAwLTU5LjQtMTEuNi0xMTctMzQuNi0xNzEuM2E0NDAuNDUgNDQwLjQ1IDAgMCAwLTk0LjMtMTM5LjkgNDM3LjcxIDQzNy43MSAwIDAgMC0xMzkuOS05NC4zQzYyOSA4My42IDU3MS40IDcyIDUxMiA3MmMtMTkuOSAwLTM2LTE2LjEtMzYtMzZzMTYuMS0zNiAzNi0zNmM2OS4xIDAgMTM2LjIgMTMuNSAxOTkuMyA0MC4zQzc3Mi4zIDY2IDgyNyAxMDMgODc0IDE1MGM0NyA0NyA4My45IDEwMS44IDEwOS43IDE2Mi43IDI2LjcgNjMuMSA0MC4yIDEzMC4yIDQwLjIgMTk5LjMuMSAxOS45LTE2IDM2LTM1LjkgMzZ6JykpO1xuZXhwb3J0cy5Mb2dpbk91dGxpbmUgPSBnZXRJY29uKCdsb2dpbicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MjEuNyA4MmMtMTUyLjUtLjQtMjg2LjcgNzguNS0zNjMuNCAxOTcuNy0zLjQgNS4zLjQgMTIuMyA2LjcgMTIuM2g3MC4zYzQuOCAwIDkuMy0yLjEgMTIuMy01LjggNy04LjUgMTQuNS0xNi43IDIyLjQtMjQuNSAzMi42LTMyLjUgNzAuNS01OC4xIDExMi43LTc1LjkgNDMuNi0xOC40IDkwLTI3LjggMTM3LjktMjcuOCA0Ny45IDAgOTQuMyA5LjMgMTM3LjkgMjcuOCA0Mi4yIDE3LjggODAuMSA0My40IDExMi43IDc1LjkgMzIuNiAzMi41IDU4LjEgNzAuNCA3NiAxMTIuNUM4NjUuNyA0MTcuOCA4NzUgNDY0LjEgODc1IDUxMmMwIDQ3LjktOS40IDk0LjItMjcuOCAxMzcuOC0xNy44IDQyLjEtNDMuNCA4MC03NiAxMTIuNXMtNzAuNSA1OC4xLTExMi43IDc1LjlBMzUyLjggMzUyLjggMCAwIDEgNTIwLjYgODY2Yy00Ny45IDAtOTQuMy05LjQtMTM3LjktMjcuOEEzNTMuODQgMzUzLjg0IDAgMCAxIDI3MCA3NjIuM2MtNy45LTcuOS0xNS4zLTE2LjEtMjIuNC0yNC41LTMtMy43LTcuNi01LjgtMTIuMy01LjhIMTY1Yy02LjMgMC0xMC4yIDctNi43IDEyLjNDMjM0LjkgODYzLjIgMzY4LjUgOTQyIDUyMC42IDk0MmMyMzYuMiAwIDQyOC0xOTAuMSA0MzAuNC00MjUuNkM5NTMuNCAyNzcuMSA3NjEuMyA4Mi42IDUyMS43IDgyek0zOTUuMDIgNjI0di03NmgtMzE0Yy00LjQgMC04LTMuNi04LTh2LTU2YzAtNC40IDMuNi04IDgtOGgzMTR2LTc2YzAtNi43IDcuOC0xMC41IDEzLTYuM2wxNDEuOSAxMTJhOCA4IDAgMCAxIDAgMTIuNmwtMTQxLjkgMTEyYy01LjIgNC4xLTEzIC40LTEzLTYuM3onKSk7XG5leHBvcnRzLkxvZ291dE91dGxpbmUgPSBnZXRJY29uKCdsb2dvdXQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODY4IDczMmgtNzAuM2MtNC44IDAtOS4zIDIuMS0xMi4zIDUuOC03IDguNS0xNC41IDE2LjctMjIuNCAyNC41YTM1My44NCAzNTMuODQgMCAwIDEtMTEyLjcgNzUuOUEzNTIuOCAzNTIuOCAwIDAgMSA1MTIuNCA4NjZjLTQ3LjkgMC05NC4zLTkuNC0xMzcuOS0yNy44YTM1My44NCAzNTMuODQgMCAwIDEtMTEyLjctNzUuOSAzNTMuMjggMzUzLjI4IDAgMCAxLTc2LTExMi41QzE2Ny4zIDYwNi4yIDE1OCA1NTkuOSAxNTggNTEyczkuNC05NC4yIDI3LjgtMTM3LjhjMTcuOC00Mi4xIDQzLjQtODAgNzYtMTEyLjVzNzAuNS01OC4xIDExMi43LTc1LjljNDMuNi0xOC40IDkwLTI3LjggMTM3LjktMjcuOCA0Ny45IDAgOTQuMyA5LjMgMTM3LjkgMjcuOCA0Mi4yIDE3LjggODAuMSA0My40IDExMi43IDc1LjkgNy45IDcuOSAxNS4zIDE2LjEgMjIuNCAyNC41IDMgMy43IDcuNiA1LjggMTIuMyA1LjhIODY4YzYuMyAwIDEwLjItNyA2LjctMTIuM0M3OTggMTYwLjUgNjYzLjggODEuNiA1MTEuMyA4MiAyNzEuNyA4Mi42IDc5LjYgMjc3LjEgODIgNTE2LjQgODQuNCA3NTEuOSAyNzYuMiA5NDIgNTEyLjQgOTQyYzE1Mi4xIDAgMjg1LjctNzguOCAzNjIuMy0xOTcuNyAzLjQtNS4zLS40LTEyLjMtNi43LTEyLjN6bTg4LjktMjI2LjNMODE1IDM5My43Yy01LjMtNC4yLTEzLS40LTEzIDYuM3Y3Nkg0ODhjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoMzE0djc2YzAgNi43IDcuOCAxMC41IDEzIDYuM2wxNDEuOS0xMTJhOCA4IDAgMCAwIDAtMTIuNnonKSk7XG5leHBvcnRzLk1hbk91dGxpbmUgPSBnZXRJY29uKCdtYW4nLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODc0IDEyMEg2MjJjLTMuMyAwLTYgMi43LTYgNnY1NmMwIDMuMyAyLjcgNiA2IDZoMTYwLjRMNTgzLjEgMzg3LjNjLTUwLTM4LjUtMTExLTU5LjMtMTc1LjEtNTkuMy03Ni45IDAtMTQ5LjMgMzAtMjAzLjYgODQuNFMxMjAgNTM5LjEgMTIwIDYxNnMzMCAxNDkuMyA4NC40IDIwMy42QzI1OC43IDg3NCAzMzEuMSA5MDQgNDA4IDkwNHMxNDkuMy0zMCAyMDMuNi04NC40QzY2NiA3NjUuMyA2OTYgNjkyLjkgNjk2IDYxNmMwLTY0LjEtMjAuOC0xMjQuOS01OS4yLTE3NC45TDgzNiAyNDEuOVY0MDJjMCAzLjMgMi43IDYgNiA2aDU2YzMuMyAwIDYtMi43IDYtNlYxNTBjMC0xNi41LTEzLjUtMzAtMzAtMzB6TTQwOCA4MjhjLTExNi45IDAtMjEyLTk1LjEtMjEyLTIxMnM5NS4xLTIxMiAyMTItMjEyIDIxMiA5NS4xIDIxMiAyMTItOTUuMSAyMTItMjEyIDIxMnonKSk7XG5leHBvcnRzLk1lZGl1bU91dGxpbmUgPSBnZXRJY29uKCdtZWRpdW0nLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODM0LjcgMjc5LjhsNjEuMy01OC45VjIwOEg2ODMuN0w1MzIuNCA1ODYuNCAzNjAuMyAyMDhIMTM3Ljd2MTIuOWw3MS42IDg2LjZjNyA2LjQgMTAuNiAxNS44IDkuNyAyNS4yVjY3M2MyLjIgMTIuMy0xLjcgMjQuOC0xMC4zIDMzLjdMMTI4IDgwNXYxMi43aDIyOC42di0xMi45bC04MC42LTk4YTM5Ljk5IDM5Ljk5IDAgMCAxLTExLjEtMzMuN1YzNzguN2wyMDAuNyA0MzkuMmgyMy4zbDE3Mi42LTQzOS4ydjM0OS45YzAgOS4yIDAgMTEuMS02IDE3LjJsLTYyLjEgNjAuM1Y4MTloMzAxLjJ2LTEyLjlsLTU5LjktNTguOWMtNS4yLTQtNy45LTEwLjctNi44LTE3LjJWMjk3YTE4LjEgMTguMSAwIDAgMSA2LjgtMTcuMnonKSk7XG5leHBvcnRzLk1lZGl1bVdvcmttYXJrT3V0bGluZSA9IGdldEljb24oJ21lZGl1bS13b3JrbWFyaycsIG91dGxpbmUsIGdldE5vZGUobm9ybWFsVmlld0JveCwgJ001MTcuMiA1OTAuNTVjMCAzLjU1IDAgNC4zNiAyLjQgNi41NWwxMy40MyAxMy4yNXYuNTdoLTU5LjU3di0yNS40N2E0MS40NCA0MS40NCAwIDAgMS0zOS41IDI3LjY1Yy0zMC42MSAwLTUyLjg0LTI0LjI1LTUyLjg0LTY4Ljg3IDAtNDEuOCAyMy45OS02OS42OSA1Ny42NS02OS42OWEzNS4xNSAzNS4xNSAwIDAgMSAzNC42MSAyMS42N3YtNTYuMTlhNi45OSA2Ljk5IDAgMCAwLTIuNzEtNi43OWwtMTIuOC0xMi40NXYtLjU2bDU5LjMzLTcuMDR2MTc3LjM3em0tNDMuNzQtOC4wOXYtODMuODNhMjIuMiAyMi4yIDAgMCAwLTE3Ljc0LTguNGMtMTQuNDggMC0yOC40NyAxMy4yNS0yOC40NyA1Mi42MiAwIDM2Ljg2IDEyLjA3IDQ5Ljg4IDI3LjEgNDkuODhhMjMuOTEgMjMuOTEgMCAwIDAgMTkuMTEtMTAuMjd6bTgzLjIzIDI4LjQ2VjQ5Ny43NGE3LjY1IDcuNjUgMCAwIDAtMi40LTYuNzlsLTEzLjE5LTEzLjc0di0uNTdoNTkuNTZ2MTE0LjhjMCAzLjU1IDAgNC4zNiAyLjQgNi41NGwxMy4xMiAxMi40NXYuNTdsLTU5LjQ5LS4wOHptLTIuMTYtMTc1LjY3YzAtMTMuNCAxMC43NC0yNC4yNSAyMy45OS0yNC4yNSAxMy4yNSAwIDIzLjk4IDEwLjg2IDIzLjk4IDI0LjI1IDAgMTMuNC0xMC43MyAyNC4yNS0yMy45OCAyNC4yNXMtMjMuOTktMTAuODUtMjMuOTktMjQuMjV6bTIwNi44MyAxNTUuMDZjMCAzLjU1IDAgNC42IDIuNCA2Ljc5bDEzLjQzIDEzLjI1di41N2gtNTkuODhWNTgxLjlhNDMuNCA0My40IDAgMCAxLTQxLjAxIDMxLjJjLTI2LjU1IDAtNDAuNzgtMTkuNTYtNDAuNzgtNTYuNTkgMC0xNy44NiAwLTM3LjQzLjU2LTU5LjQxYTYuOTEgNi45MSAwIDAgMC0yLjQtNi41NUw2MjAuNSA0NzcuMnYtLjU3aDU5LjA5djczLjgxYzAgMjQuMjUgMy41MSA0MC40MiAxOC41NCA0MC40MmEyMy45NiAyMy45NiAwIDAgMCAxOS4zNS0xMi4ydi04MC44NWE3LjY1IDcuNjUgMCAwIDAtMi40LTYuNzlsLTEzLjI3LTEzLjgydi0uNTdoNTkuNTZWNTkwLjN6bTIwMi43NiAyMC42YzAtNC4zNi44LTU5Ljk3LjgtNzIuNzUgMC0yNC4yNS0zLjc2LTQwLjk4LTIwLjYzLTQwLjk4YTI2LjcgMjYuNyAwIDAgMC0yMS4xOSAxMS42NCA5OS42OCA5OS42OCAwIDAgMSAyLjQgMjMuMDRjMCAxNi44MS0uNTYgMzguMjMtLjggNTkuNjZhNi45MSA2LjkxIDAgMCAwIDIuNCA2LjU1bDEzLjQzIDEyLjQ1di41NmgtNjAuMTJjMC00LjA0LjgtNTkuOTguOC03Mi43NiAwLTI0LjY1LTMuNzYtNDAuOTgtMjAuMzktNDAuOTgtOC4yLjMtMTUuNjggNC44LTE5LjgzIDExLjk2djgyLjQ2YzAgMy41NiAwIDQuMzcgMi40IDYuNTVsMTMuMTEgMTIuNDV2LjU2aC01OS40OFY0OTguMTVhNy42NSA3LjY1IDAgMCAwLTIuNC02LjhsLTEzLjE5LTE0LjE0di0uNTdIODQxdjI4Ljc4YzUuNTMtMTkgMjMuMTMtMzEuNzYgNDIuNy0zMC45NiAxOS44MiAwIDMzLjI2IDExLjE2IDM4LjkzIDMyLjM0YTQ2LjQxIDQ2LjQxIDAgMCAxIDQ0Ljc3LTMyLjM0YzI2LjU1IDAgNDEuNTggMTkuOCA0MS41OCA1Ny4yMyAwIDE3Ljg3LS41NiAzOC4yNC0uOCA1OS42NmE2LjUgNi41IDAgMCAwIDIuNzIgNi41NWwxMy4xMSAxMi40NXYuNTdoLTU5Ljg4ek0yMTUuODcgNTkzLjNsMTcuNjYgMTcuMDV2LjU3aC04OS42MnYtLjU3bDE3Ljk5LTE3LjA1YTYuOTEgNi45MSAwIDAgMCAyLjQtNi41NVY0NzcuNjljMC00LjYgMC0xMC44My44LTE2LjE2TDEwNC42NiA2MTMuMWgtLjcybC02Mi42LTEzOS40NWMtMS4zNy0zLjQ3LTEuNzctMy43Mi0yLjY1LTYuMDZ2OTEuNDNhMzIuMDggMzIuMDggMCAwIDAgMi45NiAxNy44N2wyNS4xOSAzMy40NnYuNTdIMHYtLjU3bDI1LjE4LTMzLjU1YTMyLjE2IDMyLjE2IDAgMCAwIDIuOTYtMTcuNzhWNDU3Ljk3QTE5LjcxIDE5LjcxIDAgMCAwIDI0IDQ0NC4xNUw2LjE2IDQyMC43OHYtLjU2aDYzLjk2bDUzLjU2IDExOC4xIDQ3LjE3LTExOC4xaDYyLjZ2LjU2bC0xNy41OCAxOS44YTYuOTkgNi45OSAwIDAgMC0yLjcyIDYuOHYxMzkuMzdhNi41IDYuNSAwIDAgMCAyLjcyIDYuNTV6bTcwLjExLTU0LjY1di41NmMwIDM0LjYgMTcuNjcgNDguNSAzOC4zOCA0OC41YTQzLjUgNDMuNSAwIDAgMCA0MC43Ny0yNC45N2guNTZjLTcuMiAzNC4yLTI4LjE0IDUwLjM2LTU5LjQ4IDUwLjM2LTMzLjgyIDAtNjUuNzItMjAuNjEtNjUuNzItNjguMzkgMC01MC4yIDMxLjk4LTcwLjI1IDY3LjMyLTcwLjI1IDI4LjQ2IDAgNTguNzYgMTMuNTggNTguNzYgNTcuMjR2Ni45NWgtODAuNTl6bTAtNi45NWgzOS40MnYtNy4wNGMwLTM1LjU3LTcuMjgtNDUuMDMtMTguMjMtNDUuMDMtMTMuMjcgMC0yMS4zNSAxNC4xNS0yMS4zNSA1Mi4wN2guMTZ6JykpO1xuZXhwb3J0cy5NZW51VW5mb2xkT3V0bGluZSA9IGdldEljb24oJ21lbnUtdW5mb2xkJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTQwOCA0NDJoNDgwYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04SDQwOGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptLTggMjA0YzAgNC40IDMuNiA4IDggOGg0ODBjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThINDA4Yy00LjQgMC04IDMuNi04IDh2NTZ6bTUwNC00ODZIMTIwYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCA2MzJIMTIwYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNMTQyLjQgNjQyLjFMMjk4LjcgNTE5YTguODQgOC44NCAwIDAgMCAwLTEzLjlMMTQyLjQgMzgxLjljLTUuOC00LjYtMTQuNC0uNS0xNC40IDYuOXYyNDYuM2E4LjkgOC45IDAgMCAwIDE0LjQgN3onKSk7XG5leHBvcnRzLk1lbnVGb2xkT3V0bGluZSA9IGdldEljb24oJ21lbnUtZm9sZCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ000MDggNDQyaDQ4MGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOEg0MDhjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6bS04IDIwNGMwIDQuNCAzLjYgOCA4IDhoNDgwYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04SDQwOGMtNC40IDAtOCAzLjYtOCA4djU2em01MDQtNDg2SDEyMGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg3ODRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgNjMySDEyMGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg3ODRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6TTExNS40IDUxOC45TDI3MS43IDY0MmM1LjggNC42IDE0LjQuNSAxNC40LTYuOVYzODguOWMwLTcuNC04LjUtMTEuNS0xNC40LTYuOUwxMTUuNCA1MDUuMWE4Ljc0IDguNzQgMCAwIDAgMCAxMy44eicpKTtcbmV4cG9ydHMuTWVudU91dGxpbmUgPSBnZXRJY29uKCdtZW51Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkwNCAxNjBIMTIwYy00LjQgMC04IDMuNi04IDh2NjRjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTY0YzAtNC40LTMuNi04LTgtOHptMCA2MjRIMTIwYy00LjQgMC04IDMuNi04IDh2NjRjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTY0YzAtNC40LTMuNi04LTgtOHptMC0zMTJIMTIwYy00LjQgMC04IDMuNi04IDh2NjRjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTY0YzAtNC40LTMuNi04LTgtOHonKSk7XG5leHBvcnRzLk1pbnVzT3V0bGluZSA9IGdldEljb24oJ21pbnVzJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg3MiA0NzRIMTUyYy00LjQgMC04IDMuNi04IDh2NjBjMCA0LjQgMy42IDggOCA4aDcyMGM0LjQgMCA4LTMuNiA4LTh2LTYwYzAtNC40LTMuNi04LTgtOHonKSk7XG5leHBvcnRzLk1vbml0b3JPdXRsaW5lID0gZ2V0SWNvbignbW9uaXRvcicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ002OTIuOCA0MTIuN2wuMi0uMi0zNC42LTQ0LjNhNy45NyA3Ljk3IDAgMCAwLTExLjItMS40bC01MC40IDM5LjMtNzAuNS05MC4xYTcuOTcgNy45NyAwIDAgMC0xMS4yLTEuNGwtMzcuOSAyOS43YTcuOTcgNy45NyAwIDAgMC0xLjQgMTEuMmw3MC41IDkwLjItLjIuMSAzNC42IDQ0LjNjMi43IDMuNSA3LjcgNC4xIDExLjIgMS40bDUwLjQtMzkuMyA2NC4xIDgyYzIuNyAzLjUgNy43IDQuMSAxMS4yIDEuNGwzNy45LTI5LjZjMy41LTIuNyA0LjEtNy43IDEuNC0xMS4ybC02NC4xLTgyLjF6TTYwOCAxMTJjLTE2Ny45IDAtMzA0IDEzNi4xLTMwNCAzMDQgMCA3MC4zIDIzLjkgMTM1IDYzLjkgMTg2LjVMMTE0LjMgODU2LjFhOC4wMyA4LjAzIDAgMCAwIDAgMTEuM2w0Mi4zIDQyLjNjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGwyNTMuNi0yNTMuNkM0NzMgNjk2LjEgNTM3LjcgNzIwIDYwOCA3MjBjMTY3LjkgMCAzMDQtMTM2LjEgMzA0LTMwNFM3NzUuOSAxMTIgNjA4IDExMnptMTYxLjIgNDY1LjJDNzI2LjIgNjIwLjMgNjY4LjkgNjQ0IDYwOCA2NDRzLTExOC4yLTIzLjctMTYxLjItNjYuOEM0MDMuNyA1MzQuMiAzODAgNDc2LjkgMzgwIDQxNnMyMy43LTExOC4yIDY2LjgtMTYxLjJjNDMtNDMuMSAxMDAuMy02Ni44IDE2MS4yLTY2LjhzMTE4LjIgMjMuNyAxNjEuMiA2Ni44YzQzLjEgNDMgNjYuOCAxMDAuMyA2Ni44IDE2MS4ycy0yMy43IDExOC4yLTY2LjggMTYxLjJ6JykpO1xuZXhwb3J0cy5Nb3JlT3V0bGluZSA9IGdldEljb24oJ21vcmUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNDU2IDIzMWE1NiA1NiAwIDEgMCAxMTIgMCA1NiA1NiAwIDEgMC0xMTIgMHptMCAyODBhNTYgNTYgMCAxIDAgMTEyIDAgNTYgNTYgMCAxIDAtMTEyIDB6bTAgMjgwYTU2IDU2IDAgMSAwIDExMiAwIDU2IDU2IDAgMSAwLTExMiAweicpKTtcbmV4cG9ydHMuT3JkZXJlZExpc3RPdXRsaW5lID0gZ2V0SWNvbignb3JkZXJlZC1saXN0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkyMCA3NjBIMzM2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC01NjhIMzM2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCAyODRIMzM2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNMjE2IDcxMkgxMDBjLTIuMiAwLTQgMS44LTQgNHYzNGMwIDIuMiAxLjggNCA0IDRoNzIuNHYyMC41aC0zNS43Yy0yLjIgMC00IDEuOC00IDR2MzRjMCAyLjIgMS44IDQgNCA0aDM1LjdWODM4SDEwMGMtMi4yIDAtNCAxLjgtNCA0djM0YzAgMi4yIDEuOCA0IDQgNGgxMTZjMi4yIDAgNC0xLjggNC00VjcxNmMwLTIuMi0xLjgtNC00LTR6TTEwMCAxODhoMzh2MTIwYzAgMi4yIDEuOCA0IDQgNGg0MGMyLjIgMCA0LTEuOCA0LTRWMTUyYzAtNC40LTMuNi04LTgtOGgtNzhjLTIuMiAwLTQgMS44LTQgNHYzNmMwIDIuMiAxLjggNCA0IDR6bTExNiAyNDBIMTAwYy0yLjIgMC00IDEuOC00IDR2MzZjMCAyLjIgMS44IDQgNCA0aDY4LjRsLTcwLjMgNzcuN2E4LjMgOC4zIDAgMCAwLTIuMSA1LjRWNTkyYzAgMi4yIDEuOCA0IDQgNGgxMTZjMi4yIDAgNC0xLjggNC00di0zNmMwLTIuMi0xLjgtNC00LTRoLTY4LjRsNzAuMy03Ny43YTguMyA4LjMgMCAwIDAgMi4xLTUuNFY0MzJjMC0yLjItMS44LTQtNC00eicpKTtcbmV4cG9ydHMuTnVtYmVyT3V0bGluZSA9IGdldEljb24oJ251bWJlcicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NzIgMzk0YzQuNCAwIDgtMy42IDgtOHYtNjBjMC00LjQtMy42LTgtOC04SDcwOFYxNTJjMC00LjQtMy42LTgtOC04aC02NGMtNC40IDAtOCAzLjYtOCA4djE2Nkg0MDBWMTUyYzAtNC40LTMuNi04LTgtOGgtNjRjLTQuNCAwLTggMy42LTggOHYxNjZIMTUyYy00LjQgMC04IDMuNi04IDh2NjBjMCA0LjQgMy42IDggOCA4aDE2OHYyMzZIMTUyYy00LjQgMC04IDMuNi04IDh2NjBjMCA0LjQgMy42IDggOCA4aDE2OHYxNjZjMCA0LjQgMy42IDggOCA4aDY0YzQuNCAwIDgtMy42IDgtOFY3MDZoMjI4djE2NmMwIDQuNCAzLjYgOCA4IDhoNjRjNC40IDAgOC0zLjYgOC04VjcwNmgxNjRjNC40IDAgOC0zLjYgOC04di02MGMwLTQuNC0zLjYtOC04LThINzA4VjM5NGgxNjR6TTYyOCA2MzBINDAwVjM5NGgyMjh2MjM2eicpKTtcbmV4cG9ydHMuUGF1c2VPdXRsaW5lID0gZ2V0SWNvbigncGF1c2UnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMzA0IDE3Nmg4MHY2NzJoLTgwem00MDggMGgtNjRjLTQuNCAwLTggMy42LTggOHY2NTZjMCA0LjQgMy42IDggOCA4aDY0YzQuNCAwIDgtMy42IDgtOFYxODRjMC00LjQtMy42LTgtOC04eicpKTtcbmV4cG9ydHMuUGVyY2VudGFnZU91dGxpbmUgPSBnZXRJY29uKCdwZXJjZW50YWdlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg1NS43IDIxMC44bC00Mi40LTQyLjRhOC4wMyA4LjAzIDAgMCAwLTExLjMgMEwxNjguMyA4MDEuOWE4LjAzIDguMDMgMCAwIDAgMCAxMS4zbDQyLjQgNDIuNGMzLjEgMy4xIDguMiAzLjEgMTEuMyAwTDg1NS42IDIyMmMzLjItMyAzLjItOC4xLjEtMTEuMnpNMzA0IDQ0OGM3OS40IDAgMTQ0LTY0LjYgMTQ0LTE0NHMtNjQuNi0xNDQtMTQ0LTE0NC0xNDQgNjQuNi0xNDQgMTQ0IDY0LjYgMTQ0IDE0NCAxNDR6bTAtMjE2YzM5LjcgMCA3MiAzMi4zIDcyIDcycy0zMi4zIDcyLTcyIDcyLTcyLTMyLjMtNzItNzIgMzIuMy03MiA3Mi03MnptNDE2IDM0NGMtNzkuNCAwLTE0NCA2NC42LTE0NCAxNDRzNjQuNiAxNDQgMTQ0IDE0NCAxNDQtNjQuNiAxNDQtMTQ0LTY0LjYtMTQ0LTE0NC0xNDR6bTAgMjE2Yy0zOS43IDAtNzItMzIuMy03Mi03MnMzMi4zLTcyIDcyLTcyIDcyIDMyLjMgNzIgNzItMzIuMyA3Mi03MiA3MnonKSk7XG5leHBvcnRzLlBhcGVyQ2xpcE91dGxpbmUgPSBnZXRJY29uKCdwYXBlci1jbGlwJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTc3OS4zIDE5Ni42Yy05NC4yLTk0LjItMjQ3LjYtOTQuMi0zNDEuNyAwbC0yNjEgMjYwLjhjLTEuNyAxLjctMi42IDQtMi42IDYuNHMuOSA0LjcgMi42IDYuNGwzNi45IDM2LjlhOSA5IDAgMCAwIDEyLjcgMGwyNjEtMjYwLjhjMzIuNC0zMi40IDc1LjUtNTAuMiAxMjEuMy01MC4yczg4LjkgMTcuOCAxMjEuMiA1MC4yYzMyLjQgMzIuNCA1MC4yIDc1LjUgNTAuMiAxMjEuMiAwIDQ1LjgtMTcuOCA4OC44LTUwLjIgMTIxLjJsLTI2NiAyNjUuOS00My4xIDQzLjFjLTQwLjMgNDAuMy0xMDUuOCA0MC4zLTE0Ni4xIDAtMTkuNS0xOS41LTMwLjItNDUuNC0zMC4yLTczczEwLjctNTMuNSAzMC4yLTczbDI2My45LTI2My44YzYuNy02LjYgMTUuNS0xMC4zIDI0LjktMTAuM2guMWM5LjQgMCAxOC4xIDMuNyAyNC43IDEwLjMgNi43IDYuNyAxMC4zIDE1LjUgMTAuMyAyNC45IDAgOS4zLTMuNyAxOC4xLTEwLjMgMjQuN0wzNzIuNCA2NTNjLTEuNyAxLjctMi42IDQtMi42IDYuNHMuOSA0LjcgMi42IDYuNGwzNi45IDM2LjlhOSA5IDAgMCAwIDEyLjcgMGwyMTUuNi0yMTUuNmMxOS45LTE5LjkgMzAuOC00Ni4zIDMwLjgtNzQuNHMtMTEtNTQuNi0zMC44LTc0LjRjLTQxLjEtNDEuMS0xMDcuOS00MS0xNDkgMEw0NjMgMzY0IDIyNC44IDYwMi4xQTE3Mi4yMiAxNzIuMjIgMCAwIDAgMTc0IDcyNC44YzAgNDYuMyAxOC4xIDg5LjggNTAuOCAxMjIuNSAzMy45IDMzLjggNzguMyA1MC43IDEyMi43IDUwLjcgNDQuNCAwIDg4LjgtMTYuOSAxMjIuNi01MC43bDMwOS4yLTMwOUM4MjQuOCA0OTIuNyA4NTAgNDMyIDg1MCAzNjcuNWMuMS02NC42LTI1LjEtMTI1LjMtNzAuNy0xNzAuOXonKSk7XG5leHBvcnRzLlBpY0NlbnRlck91dGxpbmUgPSBnZXRJY29uKCdwaWMtY2VudGVyJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTk1MiA3OTJINzJjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoODgwYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wLTYzMkg3MmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg4ODBjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6TTg0OCA2NjBjOC44IDAgMTYtNy4yIDE2LTE2VjM4MGMwLTguOC03LjItMTYtMTYtMTZIMTc2Yy04LjggMC0xNiA3LjItMTYgMTZ2MjY0YzAgOC44IDcuMiAxNiAxNiAxNmg2NzJ6TTIzMiA0MzZoNTYwdjE1MkgyMzJWNDM2eicpKTtcbmV4cG9ydHMuUGljTGVmdE91dGxpbmUgPSBnZXRJY29uKCdwaWMtbGVmdCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ005NTIgNzkySDcyYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDg4MGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC02MzJINzJjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoODgwYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04ek02MDggNjYwYzguOCAwIDE2LTcuMiAxNi0xNlYzODBjMC04LjgtNy4yLTE2LTE2LTE2SDk2Yy04LjggMC0xNiA3LjItMTYgMTZ2MjY0YzAgOC44IDcuMiAxNiAxNiAxNmg1MTJ6TTE1MiA0MzZoNDAwdjE1MkgxNTJWNDM2em01NTIgMjEwYzAgNC40IDMuNiA4IDggOGgyMjRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThINzEyYy00LjQgMC04IDMuNi04IDh2NTZ6bTgtMjA0aDIyNGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOEg3MTJjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6JykpO1xuZXhwb3J0cy5QbHVzT3V0bGluZSA9IGdldEljb24oJ3BsdXMnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNDgyIDE1Mmg2MHE4IDAgOCA4djcwNHEwIDgtOCA4aC02MHEtOCAwLTgtOFYxNjBxMC04IDgtOHonLCAnTTE3NiA0NzRoNjcycTggMCA4IDh2NjBxMCA4LTggOEgxNzZxLTggMC04LTh2LTYwcTAtOCA4LTh6JykpO1xuZXhwb3J0cy5QaWNSaWdodE91dGxpbmUgPSBnZXRJY29uKCdwaWMtcmlnaHQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTUyIDc5Mkg3MmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg4ODBjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtNjMySDcyYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDg4MGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptLTI0IDUwMGM4LjggMCAxNi03LjIgMTYtMTZWMzgwYzAtOC44LTcuMi0xNi0xNi0xNkg0MTZjLTguOCAwLTE2IDcuMi0xNiAxNnYyNjRjMCA4LjggNy4yIDE2IDE2IDE2aDUxMnpNNDcyIDQzNmg0MDB2MTUySDQ3MlY0MzZ6TTgwIDY0NmMwIDQuNCAzLjYgOCA4IDhoMjI0YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04SDg4Yy00LjQgMC04IDMuNi04IDh2NTZ6bTgtMjA0aDIyNGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOEg4OGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHonKSk7XG5leHBvcnRzLlBvdW5kT3V0bGluZSA9IGdldEljb24oJ3BvdW5kJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnptMTM4LTIwOS44SDQ2OS44di00LjdjMjcuNC0xNy4yIDQzLjktNTAuNCA0My45LTkxLjEgMC0xNC4xLTIuMi0yNy45LTUuMy00MUg2MDdjNC40IDAgOC0zLjYgOC04di0zMGMwLTQuNC0zLjYtOC04LThINDk1Yy03LjItMjIuNi0xMy40LTQ1LjctMTMuNC03MC41IDAtNDMuNSAzNC03MC4yIDg3LjMtNzAuMiAyMS41IDAgNDIuNSA0LjEgNjAuNCAxMC41IDUuMiAxLjkgMTAuNi0yIDEwLjYtNy42di0zOS41YzAtMy4zLTIuMS02LjMtNS4yLTcuNS0xOC44LTcuMi00My44LTEyLjctNzAuMy0xMi43LTkyLjkgMC0xNTEuNSA0NC41LTE1MS41IDEyMC4zIDAgMjYuMyA2LjkgNTIgMTQuNiA3Ny4xSDM3NGMtNC40IDAtOCAzLjYtOCA4djMwYzAgNC40IDMuNiA4IDggOGg2Ny4xYzMuNCAxNC43IDUuOSAyOS40IDUuOSA0NC4yIDAgNDUuMi0yOC44IDgzLjMtNzIuOCA5NC4yLTMuNi45LTYuMSA0LjEtNi4xIDcuOFY3MjJjMCA0LjQgMy42IDggOCA4SDY1MGM0LjQgMCA4LTMuNiA4LTh2LTM5LjhjMC00LjQtMy42LTgtOC04eicpKTtcbmV4cG9ydHMuUG93ZXJvZmZPdXRsaW5lID0gZ2V0SWNvbigncG93ZXJvZmYnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNzA1LjYgMTI0LjlhOCA4IDAgMCAwLTExLjYgNy4ydjY0LjJjMCA1LjUgMi45IDEwLjYgNy41IDEzLjZhMzUyLjIgMzUyLjIgMCAwIDEgNjIuMiA0OS44YzMyLjcgMzIuOCA1OC40IDcwLjkgNzYuMyAxMTMuM2EzNTUgMzU1IDAgMCAxIDI3LjkgMTM4LjdjMCA0OC4xLTkuNCA5NC44LTI3LjkgMTM4LjdhMzU1LjkyIDM1NS45MiAwIDAgMS03Ni4zIDExMy4zIDM1My4wNiAzNTMuMDYgMCAwIDEtMTEzLjIgNzYuNGMtNDMuOCAxOC42LTkwLjUgMjgtMTM4LjUgMjhzLTk0LjctOS40LTEzOC41LTI4YTM1My4wNiAzNTMuMDYgMCAwIDEtMTEzLjItNzYuNEEzNTUuOTIgMzU1LjkyIDAgMCAxIDE4NCA2NTAuNGEzNTUgMzU1IDAgMCAxLTI3LjktMTM4LjdjMC00OC4xIDkuNC05NC44IDI3LjktMTM4LjcgMTcuOS00Mi40IDQzLjYtODAuNSA3Ni4zLTExMy4zIDE5LTE5IDM5LjgtMzUuNiA2Mi4yLTQ5LjggNC43LTIuOSA3LjUtOC4xIDcuNS0xMy42VjEzMmMwLTYtNi4zLTkuOC0xMS42LTcuMkMxNzguNSAxOTUuMiA4MiAzMzkuMyA4MCA1MDYuMyA3Ny4yIDc0NS4xIDI3Mi41IDk0My41IDUxMS4yIDk0NGMyMzkgLjUgNDMyLjgtMTkzLjMgNDMyLjgtNDMyLjQgMC0xNjkuMi05Ny0zMTUuNy0yMzguNC0zODYuN3pNNDgwIDU2MGg2NGM0LjQgMCA4LTMuNiA4LThWODhjMC00LjQtMy42LTgtOC04aC02NGMtNC40IDAtOCAzLjYtOCA4djQ2NGMwIDQuNCAzLjYgOCA4IDh6JykpO1xuZXhwb3J0cy5QdWxsUmVxdWVzdE91dGxpbmUgPSBnZXRJY29uKCdwdWxsLXJlcXVlc3QnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNzg4IDcwNS45VjE5MmMwLTguOC03LjItMTYtMTYtMTZINjAydi02OC44YzAtNi03LTkuNC0xMS43LTUuN0w0NjIuNyAyMDIuM2E3LjE0IDcuMTQgMCAwIDAgMCAxMS4zbDEyNy41IDEwMC44YzQuNyAzLjcgMTEuNy40IDExLjctNS43VjI0MGgxMTR2NDY1LjljLTQ0LjIgMTUtNzYgNTYuOS03NiAxMDYuMSAwIDYxLjggNTAuMiAxMTIgMTEyIDExMnMxMTItNTAuMiAxMTItMTEyYy4xLTQ5LjItMzEuNy05MS03NS45LTEwNi4xek03NTIgODYwYTQ4LjAxIDQ4LjAxIDAgMCAxIDAtOTYgNDguMDEgNDguMDEgMCAwIDEgMCA5NnpNMzg0IDIxMmMwLTYxLjgtNTAuMi0xMTItMTEyLTExMnMtMTEyIDUwLjItMTEyIDExMmMwIDQ5LjIgMzEuOCA5MSA3NiAxMDYuMVY3MDZjLTQ0LjIgMTUtNzYgNTYuOS03NiAxMDYuMSAwIDYxLjggNTAuMiAxMTIgMTEyIDExMnMxMTItNTAuMiAxMTItMTEyYzAtNDkuMi0zMS44LTkxLTc2LTEwNi4xVjMxOC4xYzQ0LjItMTUuMSA3Ni01Ni45IDc2LTEwNi4xem0tMTYwIDBhNDguMDEgNDguMDEgMCAwIDEgOTYgMCA0OC4wMSA0OC4wMSAwIDAgMS05NiAwem05NiA2MDBhNDguMDEgNDguMDEgMCAwIDEtOTYgMCA0OC4wMSA0OC4wMSAwIDAgMSA5NiAweicpKTtcbmV4cG9ydHMuUXFPdXRsaW5lID0gZ2V0SWNvbigncXEnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODI0LjggNjEzLjJjLTE2LTUxLjQtMzQuNC05NC42LTYyLjctMTY1LjNDNzY2LjUgMjYyLjIgNjg5LjMgMTEyIDUxMS41IDExMiAzMzEuNyAxMTIgMjU2LjIgMjY1LjIgMjYxIDQ0Ny45Yy0yOC40IDcwLjgtNDYuNyAxMTMuNy02Mi43IDE2NS4zLTM0IDEwOS41LTIzIDE1NC44LTE0LjYgMTU1LjggMTggMi4yIDcwLjEtODIuNCA3MC4xLTgyLjQgMCA0OSAyNS4yIDExMi45IDc5LjggMTU5LTI2LjQgOC4xLTg1LjcgMjkuOS03MS42IDUzLjggMTEuNCAxOS4zIDE5Ni4yIDEyLjMgMjQ5LjUgNi4zIDUzLjMgNiAyMzguMSAxMyAyNDkuNS02LjMgMTQuMS0yMy44LTQ1LjMtNDUuNy03MS42LTUzLjggNTQuNi00Ni4yIDc5LjgtMTEwLjEgNzkuOC0xNTkgMCAwIDUyLjEgODQuNiA3MC4xIDgyLjQgOC41LTEuMSAxOS41LTQ2LjQtMTQuNS0xNTUuOHonKSk7XG5leHBvcnRzLlF1ZXN0aW9uT3V0bGluZSA9IGdldEljb24oJ3F1ZXN0aW9uJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTc2NCAyODAuOWMtMTQtMzAuNi0zMy45LTU4LjEtNTkuMy04MS42QzY1My4xIDE1MS40IDU4NC42IDEyNSA1MTIgMTI1cy0xNDEuMSAyNi40LTE5Mi43IDc0LjJjLTI1LjQgMjMuNi00NS4zIDUxLTU5LjMgODEuNy0xNC42IDMyLTIyIDY1LjktMjIgMTAwLjl2MjdjMCA2LjIgNSAxMS4yIDExLjIgMTEuMmg1NGM2LjIgMCAxMS4yLTUgMTEuMi0xMS4ydi0yN2MwLTk5LjUgODguNi0xODAuNCAxOTcuNi0xODAuNHMxOTcuNiA4MC45IDE5Ny42IDE4MC40YzAgNDAuOC0xNC41IDc5LjItNDIgMTExLjItMjcuMiAzMS43LTY1LjYgNTQuNC0xMDguMSA2NC0yNC4zIDUuNS00Ni4yIDE5LjItNjEuNyAzOC44YTExMC44NSAxMTAuODUgMCAwIDAtMjMuOSA2OC42djMxLjRjMCA2LjIgNSAxMS4yIDExLjIgMTEuMmg1NGM2LjIgMCAxMS4yLTUgMTEuMi0xMS4ydi0zMS40YzAtMTUuNyAxMC45LTI5LjUgMjYtMzIuOSA1OC40LTEzLjIgMTExLjQtNDQuNyAxNDkuMy04OC43IDE5LjEtMjIuMyAzNC00Ny4xIDQ0LjMtNzQgMTAuNy0yNy45IDE2LjEtNTcuMiAxNi4xLTg3IDAtMzUtNy40LTY5LTIyLTEwMC45ek01MTIgNzg3Yy0zMC45IDAtNTYgMjUuMS01NiA1NnMyNS4xIDU2IDU2IDU2IDU2LTI1LjEgNTYtNTYtMjUuMS01Ni01Ni01NnonKSk7XG5leHBvcnRzLlJhZGFyQ2hhcnRPdXRsaW5lID0gZ2V0SWNvbigncmFkYXItY2hhcnQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTI2LjggMzk3LjFsLTM5Ni0yODhhMzEuODEgMzEuODEgMCAwIDAtMzcuNiAwbC0zOTYgMjg4YTMxLjk5IDMxLjk5IDAgMCAwLTExLjYgMzUuOGwxNTEuMyA0NjZhMzIgMzIgMCAwIDAgMzAuNCAyMi4xaDQ4OS41YzEzLjkgMCAyNi4xLTguOSAzMC40LTIyLjFsMTUxLjMtNDY2YzQuMi0xMy4yLS41LTI3LjYtMTEuNy0zNS44ek04MzguNiA0MTdsLTk4LjUgMzItMjAwLTE0NC43VjE5OS45TDgzOC42IDQxN3pNNDY2IDU2Ny4ybC04OS4xIDEyMi4zLTU1LjItMTY5LjJMNDY2IDU2Ny4yem0tMTE2LjMtOTYuOEw0ODQgMzczLjN2MTQwLjhsLTEzNC4zLTQzLjd6TTUxMiA1OTkuMmw5My45IDEyOC45SDQxOC4xTDUxMiA1OTkuMnptMjguMS0yMjUuOWwxMzQuMiA5Ny4xTDU0MC4xIDUxNFYzNzMuM3pNNTU4IDU2Ny4ybDE0NC4zLTQ2LjktNTUuMiAxNjkuMkw1NTggNTY3LjJ6bS03NC0zNjcuM3YxMDQuNEwyODMuOSA0NDlsLTk4LjUtMzJMNDg0IDE5OS45ek0xNjkuMyA0NzAuOGw4Ni41IDI4LjEgODAuNCAyNDYuNC01My44IDczLjktMTEzLjEtMzQ4LjR6TTMyNy4xIDg1M2w1MC4zLTY5aDI2OS4zbDUwLjMgNjlIMzI3LjF6bTQxNC41LTMzLjhsLTUzLjgtNzMuOSA4MC40LTI0Ni40IDg2LjUtMjguMS0xMTMuMSAzNDguNHonKSk7XG5leHBvcnRzLlFyY29kZU91dGxpbmUgPSBnZXRJY29uKCdxcmNvZGUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNDY4IDEyOEgxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjMwOGMwIDQuNCAzLjYgOCA4IDhoMzMyYzQuNCAwIDgtMy42IDgtOFYxMzZjMC00LjQtMy42LTgtOC04em0tNTYgMjg0SDE5MlYxOTJoMjIwdjIyMHptLTEzOC03NGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6bTE5NCAyMTBIMTM2Yy00LjQgMC04IDMuNi04IDh2MzA4YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDMwOGM0LjQgMCA4LTMuNiA4LThWNTU2YzAtNC40LTMuNi04LTgtOHptLTU2IDI4NEgxOTJWNjEyaDIyMHYyMjB6bS0xMzgtNzRoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em01OTAtNjMwSDU1NmMtNC40IDAtOCAzLjYtOCA4djMzMmMwIDQuNCAzLjYgOCA4IDhoMzMyYzQuNCAwIDgtMy42IDgtOFYxNjBjMC0xNy43LTE0LjMtMzItMzItMzJ6bS0zMiAyODRINjEyVjE5MmgyMjB2MjIwem0tMTM4LTc0aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptMTk0IDIxMGgtNDhjLTQuNCAwLTggMy42LTggOHYxMzRoLTc4VjU1NmMwLTQuNC0zLjYtOC04LThINTU2Yy00LjQgMC04IDMuNi04IDh2MzMyYzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LThWNjQ0aDc4djEwMmMwIDQuNCAzLjYgOCA4IDhoMTkwYzQuNCAwIDgtMy42IDgtOFY1NTZjMC00LjQtMy42LTgtOC04ek03NDYgODMyaC00OGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOHptMTQyIDBoLTQ4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04eicpKTtcbmV4cG9ydHMuUmFkaXVzQm90dG9tbGVmdE91dGxpbmUgPSBnZXRJY29uKCdyYWRpdXMtYm90dG9tbGVmdCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ003MTIgODI0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMi02OTZoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04ek0xMzYgMzc0aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptMC0xNzRoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em03NTIgNjI0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC0xNzRoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wLTE3NGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtMTc0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC0xNzRoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0tMzQ4IDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0tMjMwIDcyaDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptMjMwIDYyNEgzNThjLTg3LjMgMC0xNTgtNzAuNy0xNTgtMTU4VjQ4NGMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2MTgyYzAgMTI3IDEwMyAyMzAgMjMwIDIzMGgxODJjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6JykpO1xuZXhwb3J0cy5SYWRpdXNCb3R0b21yaWdodE91dGxpbmUgPSBnZXRJY29uKCdyYWRpdXMtYm90dG9tcmlnaHQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMzY4IDgyNGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS01OC02MjRoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em01NzggMTAyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC0xNzRoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04ek0xOTIgODI0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC0xNzRoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wLTE3NGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtMTc0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC0xNzRoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0yOTIgNzJoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em0xNzQgMGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6bTIzMCAyNzZoLTU2Yy00LjQgMC04IDMuNi04IDh2MTgyYzAgODcuMy03MC43IDE1OC0xNTggMTU4SDQ4NGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGgxODJjMTI3IDAgMjMwLTEwMyAyMzAtMjMwVjQ4NGMwLTQuNC0zLjYtOC04LTh6JykpO1xuZXhwb3J0cy5SYWRpdXNVcGxlZnRPdXRsaW5lID0gZ2V0SWNvbigncmFkaXVzLXVwbGVmdCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ002NTYgMjAwaDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptNTggNjI0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNMTkyIDY1MGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgMTc0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptNjk2LTY5NmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgMTc0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCAxNzRoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wIDE3NGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgMTc0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptLTM0OCAwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptLTE3NCAwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMTc0LTY5NkgzNThjLTEyNyAwLTIzMCAxMDMtMjMwIDIzMHYxODJjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFYzNThjMC04Ny4zIDcwLjctMTU4IDE1OC0xNThoMTgyYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04eicpKTtcbmV4cG9ydHMuUmFkaXVzVXByaWdodE91dGxpbmUgPSBnZXRJY29uKCdyYWRpdXMtdXByaWdodCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ00zNjggMTI4aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptLTIgNjk2aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptNTIyLTE3NGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgMTc0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNMTkyIDEyOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgMTc0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCAxNzRoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wIDE3NGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgMTc0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMzQ4IDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0xNzQgMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS00OC02OTZINDg0Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDE4MmM4Ny4zIDAgMTU4IDcwLjcgMTU4IDE1OHYxODJjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFYzNThjMC0xMjctMTAzLTIzMC0yMzAtMjMweicpKTtcbmV4cG9ydHMuUmFkaXVzU2V0dGluZ091dGxpbmUgPSBnZXRJY29uKCdyYWRpdXMtc2V0dGluZycsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ00zOTYgMTQwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptLTQ0IDY4NGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTUyNC0yMDRoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04ek0xOTIgMzQ0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCAxNjBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wIDE2MGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgMTYwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMzIwIDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0xNjAgMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTE0MC0yODRjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFYzNzBjMC0xMjctMTAzLTIzMC0yMzAtMjMwSDQ4NGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGgxNzBjODcuMyAwIDE1OCA3MC43IDE1OCAxNTh2MTcwek0yMzYgOTZIOTJjLTQuNCAwLTggMy42LTggOHYxNDRjMCA0LjQgMy42IDggOCA4aDE0NGM0LjQgMCA4LTMuNiA4LThWMTA0YzAtNC40LTMuNi04LTgtOHptLTQ4IDEwMS42YzAgMS4zLTEuMSAyLjQtMi40IDIuNGgtNDMuMmMtMS4zIDAtMi40LTEuMS0yLjQtMi40di00My4yYzAtMS4zIDEuMS0yLjQgMi40LTIuNGg0My4yYzEuMyAwIDIuNCAxLjEgMi40IDIuNHY0My4yek05MjAgNzgwSDc3NmMtNC40IDAtOCAzLjYtOCA4djE0NGMwIDQuNCAzLjYgOCA4IDhoMTQ0YzQuNCAwIDgtMy42IDgtOFY3ODhjMC00LjQtMy42LTgtOC04em0tNDggMTAxLjZjMCAxLjMtMS4xIDIuNC0yLjQgMi40aC00My4yYy0xLjMgMC0yLjQtMS4xLTIuNC0yLjR2LTQzLjJjMC0xLjMgMS4xLTIuNCAyLjQtMi40aDQzLjJjMS4zIDAgMi40IDEuMSAyLjQgMi40djQzLjJ6JykpO1xuZXhwb3J0cy5SZWRkaXRPdXRsaW5lID0gZ2V0SWNvbigncmVkZGl0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTI4OCA1NjhhNTYgNTYgMCAxIDAgMTEyIDAgNTYgNTYgMCAxIDAtMTEyIDB6bTMzOC43IDExOS43Yy0yMy4xIDE4LjItNjguOSAzNy44LTExNC43IDM3LjhzLTkxLjYtMTkuNi0xMTQuNy0zNy44Yy0xNC40LTExLjMtMzUuMy04LjktNDYuNyA1LjVzLTguOSAzNS4zIDUuNSA0Ni43QzM5Ni4zIDc3MS42IDQ1Ny41IDc5MiA1MTIgNzkyczExNS43LTIwLjQgMTU1LjktNTIuMWEzMy4yNSAzMy4yNSAwIDEgMC00MS4yLTUyLjJ6TTk2MCA0NTZjMC02MS45LTUwLjEtMTEyLTExMi0xMTItNDIuMSAwLTc4LjcgMjMuMi05Ny45IDU3LjYtNTcuNi0zMS41LTEyNy43LTUxLjgtMjA0LjEtNTYuNUw2MTIuOSAxOTVsMTI3LjkgMzYuOWMxMS41IDMyLjYgNDIuNiA1Ni4xIDc5LjIgNTYuMSA0Ni40IDAgODQtMzcuNiA4NC04NHMtMzcuNi04NC04NC04NGMtMzIgMC01OS44IDE3LjktNzQgNDQuMkw2MDMuNSAxMjNhMzMuMiAzMy4yIDAgMCAwLTM5LjYgMTguNGwtOTAuOCAyMDMuOWMtNzQuNSA1LjItMTQyLjkgMjUuNC0xOTkuMiA1Ni4yQTExMS45NCAxMTEuOTQgMCAwIDAgMTc2IDM0NGMtNjEuOSAwLTExMiA1MC4xLTExMiAxMTIgMCA0NS44IDI3LjUgODUuMSA2Ni44IDEwMi41LTcuMSAyMS0xMC44IDQzLTEwLjggNjUuNSAwIDE1NC42IDE3NS41IDI4MCAzOTIgMjgwczM5Mi0xMjUuNCAzOTItMjgwYzAtMjIuNi0zLjgtNDQuNS0xMC44LTY1LjVDOTMyLjUgNTQxLjEgOTYwIDUwMS44IDk2MCA0NTZ6TTgyMCAxNzIuNWEzMS41IDMxLjUgMCAxIDEgMCA2MyAzMS41IDMxLjUgMCAwIDEgMC02M3pNMTIwIDQ1NmMwLTMwLjkgMjUuMS01NiA1Ni01NmE1NiA1NiAwIDAgMSA1MC42IDMyLjFjLTI5LjMgMjIuMi01My41IDQ3LjgtNzEuNSA3NS45YTU2LjIzIDU2LjIzIDAgMCAxLTM1LjEtNTJ6bTM5MiAzODEuNWMtMTc5LjggMC0zMjUuNS05NS42LTMyNS41LTIxMy41UzMzMi4yIDQxMC41IDUxMiA0MTAuNSA4MzcuNSA1MDYuMSA4MzcuNSA2MjQgNjkxLjggODM3LjUgNTEyIDgzNy41ek04NjguOCA1MDhjLTE3LjktMjguMS00Mi4yLTUzLjctNzEuNS03NS45IDktMTguOSAyOC4zLTMyLjEgNTAuNi0zMi4xIDMwLjkgMCA1NiAyNS4xIDU2IDU2IC4xIDIzLjUtMTQuNSA0My43LTM1LjEgNTJ6TTYyNCA1NjhhNTYgNTYgMCAxIDAgMTEyIDAgNTYgNTYgMCAxIDAtMTEyIDB6JykpO1xuZXhwb3J0cy5SZWRvT3V0bGluZSA9IGdldEljb24oJ3JlZG8nLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNzU4LjIgODM5LjFDODUxLjggNzY1LjkgOTEyIDY1MS45IDkxMiA1MjMuOSA5MTIgMzAzIDczMy41IDEyNC4zIDUxMi42IDEyNCAyOTEuNCAxMjMuNyAxMTIgMzAyLjggMTEyIDUyMy45YzAgMTI1LjIgNTcuNSAyMzYuOSAxNDcuNiAzMTAuMiAzLjUgMi44IDguNiAyLjIgMTEuNC0xLjNsMzkuNC01MC41YzIuNy0zLjQgMi4xLTguMy0xLjItMTEuMS04LjEtNi42LTE1LjktMTMuNy0yMy40LTIxLjJhMzE4LjY0IDMxOC42NCAwIDAgMS02OC42LTEwMS43QzIwMC40IDYwOSAxOTIgNTY3LjEgMTkyIDUyMy45czguNC04NS4xIDI1LjEtMTI0LjVjMTYuMS0zOC4xIDM5LjItNzIuMyA2OC42LTEwMS43IDI5LjQtMjkuNCA2My42LTUyLjUgMTAxLjctNjguNkM0MjYuOSAyMTIuNCA0NjguOCAyMDQgNTEyIDIwNHM4NS4xIDguNCAxMjQuNSAyNS4xYzM4LjEgMTYuMSA3Mi4zIDM5LjIgMTAxLjcgNjguNiAyOS40IDI5LjQgNTIuNSA2My42IDY4LjYgMTAxLjcgMTYuNyAzOS40IDI1LjEgODEuMyAyNS4xIDEyNC41cy04LjQgODUuMS0yNS4xIDEyNC41YTMxOC42NCAzMTguNjQgMCAwIDEtNjguNiAxMDEuN2MtOS4zIDkuMy0xOS4xIDE4LTI5LjMgMjZMNjY4LjIgNzI0YTggOCAwIDAgMC0xNC4xIDNsLTM5LjYgMTYyLjJjLTEuMiA1IDIuNiA5LjkgNy43IDkuOWwxNjcgLjhjNi43IDAgMTAuNS03LjcgNi4zLTEyLjlsLTM3LjMtNDcuOXonKSk7XG5leHBvcnRzLlJlbG9hZE91dGxpbmUgPSBnZXRJY29uKCdyZWxvYWQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTA5LjEgMjA5LjNsLTU2LjQgNDQuMUM3NzUuOCAxNTUuMSA2NTYuMiA5MiA1MjEuOSA5MiAyOTAgOTIgMTAyLjMgMjc5LjUgMTAyIDUxMS41IDEwMS43IDc0My43IDI4OS44IDkzMiA1MjEuOSA5MzJjMTgxLjMgMCAzMzUuOC0xMTUgMzk0LjYtMjc2LjEgMS41LTQuMi0uNy04LjktNC45LTEwLjNsLTU2LjctMTkuNWE4IDggMCAwIDAtMTAuMSA0LjhjLTEuOCA1LTMuOCAxMC01LjkgMTQuOS0xNy4zIDQxLTQyLjEgNzcuOC03My43IDEwOS40QTM0NC43NyAzNDQuNzcgMCAwIDEgNjU1LjkgODI5Yy00Mi4zIDE3LjktODcuNCAyNy0xMzMuOCAyNy00Ni41IDAtOTEuNS05LjEtMTMzLjgtMjdBMzQxLjUgMzQxLjUgMCAwIDEgMjc5IDc1NS4yYTM0Mi4xNiAzNDIuMTYgMCAwIDEtNzMuNy0xMDkuNGMtMTcuOS00Mi40LTI3LTg3LjQtMjctMTMzLjlzOS4xLTkxLjUgMjctMTMzLjljMTcuMy00MSA0Mi4xLTc3LjggNzMuNy0xMDkuNCAzMS42LTMxLjYgNjguNC01Ni40IDEwOS4zLTczLjggNDIuMy0xNy45IDg3LjQtMjcgMTMzLjgtMjcgNDYuNSAwIDkxLjUgOS4xIDEzMy44IDI3YTM0MS41IDM0MS41IDAgMCAxIDEwOS4zIDczLjhjOS45IDkuOSAxOS4yIDIwLjQgMjcuOCAzMS40bC02MC4yIDQ3YTggOCAwIDAgMCAzIDE0LjFsMTc1LjYgNDNjNSAxLjIgOS45LTIuNiA5LjktNy43bC44LTE4MC45Yy0uMS02LjYtNy44LTEwLjMtMTMtNi4yeicpKTtcbmV4cG9ydHMuUmV0d2VldE91dGxpbmUgPSBnZXRJY29uKCdyZXR3ZWV0Jywgb3V0bGluZSwgZ2V0Tm9kZShub3JtYWxWaWV3Qm94LCAnTTEzNiA1NTJoNjMuNmM0LjQgMCA4LTMuNiA4LThWMjg4LjdoNTI4LjZ2NzIuNmMwIDEuOS42IDMuNyAxLjggNS4yYTguMyA4LjMgMCAwIDAgMTEuNyAxLjRMODkzIDI1NS40YzQuMy01IDMuNi0xMC4zIDAtMTMuMkw3NDkuNyAxMjkuOGE4LjIyIDguMjIgMCAwIDAtNS4yLTEuOGMtNC42IDAtOC40IDMuOC04LjQgOC40VjIwOUgxOTkuN2MtMzkuNSAwLTcxLjcgMzIuMi03MS43IDcxLjhWNTQ0YzAgNC40IDMuNiA4IDggOHptNzUyLTgwaC02My42Yy00LjQgMC04IDMuNi04IDh2MjU1LjNIMjg3Ljh2LTcyLjZjMC0xLjktLjYtMy43LTEuOC01LjJhOC4zIDguMyAwIDAgMC0xMS43LTEuNEwxMzEgNzY4LjZjLTQuMyA1LTMuNiAxMC4zIDAgMTMuMmwxNDMuMyAxMTIuNGMxLjUgMS4yIDMuMyAxLjggNS4yIDEuOCA0LjYgMCA4LjQtMy44IDguNC04LjRWODE1aDUzNi42YzM5LjUgMCA3MS43LTMyLjIgNzEuNy03MS44VjQ4MGMtLjItNC40LTMuOC04LTguMi04eicpKTtcbmV4cG9ydHMuUmlnaHRPdXRsaW5lID0gZ2V0SWNvbigncmlnaHQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNzY1LjcgNDg2LjhMMzE0LjkgMTM0LjdBNy45NyA3Ljk3IDAgMCAwIDMwMiAxNDF2NzcuM2MwIDQuOSAyLjMgOS42IDYuMSAxMi42bDM2MCAyODEuMS0zNjAgMjgxLjFjLTMuOSAzLTYuMSA3LjctNi4xIDEyLjZWODgzYzAgNi43IDcuNyAxMC40IDEyLjkgNi4zbDQ1MC44LTM1Mi4xYTMxLjk2IDMxLjk2IDAgMCAwIDAtNTAuNHonKSk7XG5leHBvcnRzLlJpc2VPdXRsaW5lID0gZ2V0SWNvbigncmlzZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MTcgMjExLjFsLTE5OS4yIDI0Yy02LjYuOC05LjQgOC45LTQuNyAxMy42bDU5LjMgNTkuMy0yMjYgMjI2LTEwMS44LTEwMS43Yy02LjMtNi4zLTE2LjQtNi4yLTIyLjYgMEwxMDAuMyA3NTQuMWE4LjAzIDguMDMgMCAwIDAgMCAxMS4zbDQ1IDQ1LjJjMy4xIDMuMSA4LjIgMy4xIDExLjMgMEw0MzMuMyA1MzQgNTM1IDYzNS43YzYuMyA2LjIgMTYuNCA2LjIgMjIuNiAwTDgyOSAzNjQuNWw1OS4zIDU5LjNhOC4wMSA4LjAxIDAgMCAwIDEzLjYtNC43bDI0LTE5OS4yYy43LTUuMS0zLjctOS41LTguOS04Ljh6JykpO1xuZXhwb3J0cy5Sb2xsYmFja091dGxpbmUgPSBnZXRJY29uKCdyb2xsYmFjaycsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ003OTMgMjQySDM2NnYtNzRjMC02LjctNy43LTEwLjQtMTIuOS02LjNsLTE0MiAxMTJhOCA4IDAgMCAwIDAgMTIuNmwxNDIgMTEyYzUuMiA0LjEgMTIuOS40IDEyLjktNi4zdi03NGg0MTV2NDcwSDE3NWMtNC40IDAtOCAzLjYtOCA4djYwYzAgNC40IDMuNiA4IDggOGg2MThjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMzA2YzAtMzUuMy0yOC43LTY0LTY0LTY0eicpKTtcbmV4cG9ydHMuU2FmZXR5T3V0bGluZSA9IGdldEljb24oJ3NhZmV0eScsIG91dGxpbmUsIGdldE5vZGUobm9ybWFsVmlld0JveCwgJ001MTIgNjRMMTI4IDE5MnYzODRjMCAyMTIuMSAxNzEuOSAzODQgMzg0IDM4NHMzODQtMTcxLjkgMzg0LTM4NFYxOTJMNTEyIDY0em0zMTIgNTEyYzAgMTcyLjMtMTM5LjcgMzEyLTMxMiAzMTJTMjAwIDc0OC4zIDIwMCA1NzZWMjQ2bDMxMi0xMTAgMzEyIDExMHYzMzB6JywgJ00zNzguNCA0NzUuMWEzNS45MSAzNS45MSAwIDAgMC01MC45IDAgMzUuOTEgMzUuOTEgMCAwIDAgMCA1MC45bDEyOS40IDEyOS40IDIuMSAyLjFhMzMuOTggMzMuOTggMCAwIDAgNDguMSAwTDczMC42IDQzNGEzMy45OCAzMy45OCAwIDAgMCAwLTQ4LjFsLTIuOC0yLjhhMzMuOTggMzMuOTggMCAwIDAtNDguMSAwTDQ4MyA1NzkuNyAzNzguNCA0NzUuMXonKSk7XG5leHBvcnRzLlJvYm90T3V0bGluZSA9IGdldEljb24oJ3JvYm90Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTMwMCAzMjhhNjAgNjAgMCAxIDAgMTIwIDAgNjAgNjAgMCAxIDAtMTIwIDB6TTg1MiA2NEgxNzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2ODBjMTcuNyAwIDMyLTE0LjMgMzItMzJWOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS0zMiA2NjBIMjA0VjEyOGg2MTZ2NTk2ek02MDQgMzI4YTYwIDYwIDAgMSAwIDEyMCAwIDYwIDYwIDAgMSAwLTEyMCAwem0yNTAuMiA1NTZIMTY5LjhjLTE2LjUgMC0yOS44IDE0LjMtMjkuOCAzMnYzNmMwIDQuNCAzLjMgOCA3LjQgOGg3MjkuMWM0LjEgMCA3LjQtMy42IDcuNC04di0zNmMuMS0xNy43LTEzLjItMzItMjkuNy0zMnpNNjY0IDUwOEgzNjBjLTQuNCAwLTggMy42LTggOHY2MGMwIDQuNCAzLjYgOCA4IDhoMzA0YzQuNCAwIDgtMy42IDgtOHYtNjBjMC00LjQtMy42LTgtOC04eicpKTtcbmV4cG9ydHMuU2VhcmNoT3V0bGluZSA9IGdldEljb24oJ3NlYXJjaCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MDkuNiA4NTQuNUw2NDkuOSA1OTQuOEM2OTAuMiA1NDIuNyA3MTIgNDc5IDcxMiA0MTJjMC04MC4yLTMxLjMtMTU1LjQtODcuOS0yMTIuMS01Ni42LTU2LjctMTMyLTg3LjktMjEyLjEtODcuOXMtMTU1LjUgMzEuMy0yMTIuMSA4Ny45QzE0My4yIDI1Ni41IDExMiAzMzEuOCAxMTIgNDEyYzAgODAuMSAzMS4zIDE1NS41IDg3LjkgMjEyLjFDMjU2LjUgNjgwLjggMzMxLjggNzEyIDQxMiA3MTJjNjcgMCAxMzAuNi0yMS44IDE4Mi43LTYybDI1OS43IDI1OS42YTguMiA4LjIgMCAwIDAgMTEuNiAwbDQzLjYtNDMuNWE4LjIgOC4yIDAgMCAwIDAtMTEuNnpNNTcwLjQgNTcwLjRDNTI4IDYxMi43IDQ3MS44IDYzNiA0MTIgNjM2cy0xMTYtMjMuMy0xNTguNC02NS42QzIxMS4zIDUyOCAxODggNDcxLjggMTg4IDQxMnMyMy4zLTExNi4xIDY1LjYtMTU4LjRDMjk2IDIxMS4zIDM1Mi4yIDE4OCA0MTIgMTg4czExNi4xIDIzLjIgMTU4LjQgNjUuNlM2MzYgMzUyLjIgNjM2IDQxMnMtMjMuMyAxMTYuMS02NS42IDE1OC40eicpKTtcbmV4cG9ydHMuU2Nhbk91dGxpbmUgPSBnZXRJY29uKCdzY2FuJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTEzNiAzODRoNTZjNC40IDAgOC0zLjYgOC04VjIwMGgxNzZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThIMTk2Yy0zNy42IDAtNjggMzAuNC02OCA2OHYxODBjMCA0LjQgMy42IDggOCA4em01MTItMTg0aDE3NnYxNzZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFYxOTZjMC0zNy42LTMwLjQtNjgtNjgtNjhINjQ4Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4ek0zNzYgODI0SDIwMFY2NDhjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djE4MGMwIDM3LjYgMzAuNCA2OCA2OCA2OGgxODBjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTUxMi0xODRoLTU2Yy00LjQgMC04IDMuNi04IDh2MTc2SDY0OGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGgxODBjMzcuNiAwIDY4LTMwLjQgNjgtNjhWNjQ4YzAtNC40LTMuNi04LTgtOHptMTYtMTY0SDEyMGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg3ODRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6JykpO1xuZXhwb3J0cy5TY2lzc29yT3V0bGluZSA9IGdldEljb24oJ3NjaXNzb3InLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTY3LjEgNTEybDMxOC41LTMxOS4zYzUtNSAxLjUtMTMuNy01LjYtMTMuN2gtOTAuNWMtMi4xIDAtNC4yLjgtNS42IDIuM2wtMjczLjMgMjc0LTkwLjItOTAuNWMxMi41LTIyLjEgMTkuNy00Ny42IDE5LjctNzQuOCAwLTgzLjktNjguMS0xNTItMTUyLTE1MnMtMTUyIDY4LjEtMTUyIDE1MiA2OC4xIDE1MiAxNTIgMTUyYzI3LjcgMCA1My42LTcuNCA3NS45LTIwLjNsOTAgOTAuMy05MC4xIDkwLjNBMTUxLjA0IDE1MS4wNCAwIDAgMCAyODggNTgyYy04My45IDAtMTUyIDY4LjEtMTUyIDE1MnM2OC4xIDE1MiAxNTIgMTUyIDE1Mi02OC4xIDE1Mi0xNTJjMC0yNy4yLTcuMi01Mi43LTE5LjctNzQuOGw5MC4yLTkwLjUgMjczLjMgMjc0YzEuNSAxLjUgMy41IDIuMyA1LjYgMi4zSDg4MGM3LjEgMCAxMC43LTguNiA1LjYtMTMuN0w1NjcuMSA1MTJ6TTI4OCAzNzBjLTQ0LjEgMC04MC0zNS45LTgwLTgwczM1LjktODAgODAtODAgODAgMzUuOSA4MCA4MC0zNS45IDgwLTgwIDgwem0wIDQ0NGMtNDQuMSAwLTgwLTM1LjktODAtODBzMzUuOS04MCA4MC04MCA4MCAzNS45IDgwIDgwLTM1LjkgODAtODAgODB6JykpO1xuZXhwb3J0cy5TZWxlY3RPdXRsaW5lID0gZ2V0SWNvbignc2VsZWN0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoMzYwYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04SDE4NFYxODRoNjU2djMyMGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04VjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNjUzLjMgNTk5LjRsNTIuMi01Mi4yYTguMDEgOC4wMSAwIDAgMC00LjctMTMuNmwtMTc5LjQtMjFjLTUuMS0uNi05LjUgMy43LTguOSA4LjlsMjEgMTc5LjRjLjggNi42IDguOSA5LjQgMTMuNiA0LjdsNTIuNC01Mi40IDI1Ni4yIDI1Ni4yYzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBsNDIuNC00Mi40YzMuMS0zLjEgMy4xLTguMiAwLTExLjNMNjUzLjMgNTk5LjR6JykpO1xuZXhwb3J0cy5TaGFrZU91dGxpbmUgPSBnZXRJY29uKCdzaGFrZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ00zMjQgNjY2YTQ4IDQ4IDAgMSAwIDk2IDAgNDggNDggMCAxIDAtOTYgMHptNjE2LjctMzA5LjZMNjY3LjYgODMuMkM2NTUuMiA3MC45IDYzOC43IDY0IDYyMS4xIDY0cy0zNC4xIDYuOC00Ni41IDE5LjJMODMuMyA1NzQuNWE2NS44NSA2NS44NSAwIDAgMCAwIDkzLjFsMjczLjIgMjczLjJjMTIuMyAxMi4zIDI4LjkgMTkuMiA0Ni41IDE5LjJzMzQuMS02LjggNDYuNS0xOS4ybDQ5MS4zLTQ5MS4zYzI1LjYtMjUuNyAyNS42LTY3LjUtLjEtOTMuMXpNNDAzIDg4MC4xTDE0My45IDYyMWw0NzcuMi00NzcuMiAyNTkgMjU5LjJMNDAzIDg4MC4xek0xNTIuOCAzNzMuN2E3LjkgNy45IDAgMCAwIDExLjIgMEwzNzMuNyAxNjRhNy45IDcuOSAwIDAgMCAwLTExLjJsLTM4LjQtMzguNGE3LjkgNy45IDAgMCAwLTExLjIgMEwxMTQuMyAzMjMuOWE3LjkgNy45IDAgMCAwIDAgMTEuMmwzOC41IDM4LjZ6bTcxOC42IDI3Ni42YTcuOSA3LjkgMCAwIDAtMTEuMiAwTDY1MC4zIDg2MC4xYTcuOSA3LjkgMCAwIDAgMCAxMS4ybDM4LjQgMzguNGE3LjkgNy45IDAgMCAwIDExLjIgMEw5MDkuNyA3MDBhNy45IDcuOSAwIDAgMCAwLTExLjJsLTM4LjMtMzguNXonKSk7XG5leHBvcnRzLlNoYXJlQWx0T3V0bGluZSA9IGdldEljb24oJ3NoYXJlLWFsdCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ003NTIgNjY0Yy0yOC41IDAtNTQuOCAxMC03NS40IDI2LjdMNDY5LjQgNTQwLjhhMTYwLjY4IDE2MC42OCAwIDAgMCAwLTU3LjZsMjA3LjItMTQ5LjlDNjk3LjIgMzUwIDcyMy41IDM2MCA3NTIgMzYwYzY2LjIgMCAxMjAtNTMuOCAxMjAtMTIwcy01My44LTEyMC0xMjAtMTIwLTEyMCA1My44LTEyMCAxMjBjMCAxMS42IDEuNiAyMi43IDQuNyAzMy4zTDQzOS45IDQxNS44QzQxMC43IDM3Ny4xIDM2NC4zIDM1MiAzMTIgMzUyYy04OC40IDAtMTYwIDcxLjYtMTYwIDE2MHM3MS42IDE2MCAxNjAgMTYwYzUyLjMgMCA5OC43LTI1LjEgMTI3LjktNjMuOGwxOTYuOCAxNDIuNWMtMy4xIDEwLjYtNC43IDIxLjgtNC43IDMzLjMgMCA2Ni4yIDUzLjggMTIwIDEyMCAxMjBzMTIwLTUzLjggMTIwLTEyMC01My44LTEyMC0xMjAtMTIwem0wLTQ3NmMyOC43IDAgNTIgMjMuMyA1MiA1MnMtMjMuMyA1Mi01MiA1Mi01Mi0yMy4zLTUyLTUyIDIzLjMtNTIgNTItNTJ6TTMxMiA2MDBjLTQ4LjUgMC04OC0zOS41LTg4LTg4czM5LjUtODggODgtODggODggMzkuNSA4OCA4OC0zOS41IDg4LTg4IDg4em00NDAgMjM2Yy0yOC43IDAtNTItMjMuMy01Mi01MnMyMy4zLTUyIDUyLTUyIDUyIDIzLjMgNTIgNTItMjMuMyA1Mi01MiA1MnonKSk7XG5leHBvcnRzLlNob3BwaW5nQ2FydE91dGxpbmUgPSBnZXRJY29uKCdzaG9wcGluZy1jYXJ0Jywgb3V0bGluZSwgZ2V0Tm9kZShub3JtYWxWaWV3Qm94LCAnTTkyMi45IDcwMS45SDMyNy40bDI5LjktNjAuOSA0OTYuOC0uOWMxNi44IDAgMzEuMi0xMiAzNC4yLTI4LjZsNjguOC0zODUuMWMxLjgtMTAuMS0uOS0yMC41LTcuNS0yOC40YTM0Ljk5IDM0Ljk5IDAgMCAwLTI2LjYtMTIuNWwtNjMyLTIuMS01LjQtMjUuNGMtMy40LTE2LjItMTgtMjgtMzQuNi0yOEg5Ni41YTM1LjMgMzUuMyAwIDEgMCAwIDcwLjZoMTI1LjlMMjQ2IDMxMi44bDU4LjEgMjgxLjMtNzQuOCAxMjIuMWEzNC45NiAzNC45NiAwIDAgMC0zIDM2LjhjNiAxMS45IDE4LjEgMTkuNCAzMS41IDE5LjRoNjIuOGExMDIuNDMgMTAyLjQzIDAgMCAwLTIwLjYgNjEuN2MwIDU2LjYgNDYgMTAyLjYgMTAyLjYgMTAyLjZzMTAyLjYtNDYgMTAyLjYtMTAyLjZjMC0yMi4zLTcuNC00NC0yMC42LTYxLjdoMTYxLjFhMTAyLjQzIDEwMi40MyAwIDAgMC0yMC42IDYxLjdjMCA1Ni42IDQ2IDEwMi42IDEwMi42IDEwMi42czEwMi42LTQ2IDEwMi42LTEwMi42YzAtMjIuMy03LjQtNDQtMjAuNi02MS43SDkyM2MxOS40IDAgMzUuMy0xNS44IDM1LjMtMzUuM2EzNS40MiAzNS40MiAwIDAgMC0zNS40LTM1LjJ6TTMwNS43IDI1M2w1NzUuOCAxLjktNTYuNCAzMTUuOC00NTIuMy44TDMwNS43IDI1M3ptOTYuOSA2MTIuN2MtMTcuNCAwLTMxLjYtMTQuMi0zMS42LTMxLjYgMC0xNy40IDE0LjItMzEuNiAzMS42LTMxLjZzMzEuNiAxNC4yIDMxLjYgMzEuNmEzMS42IDMxLjYgMCAwIDEtMzEuNiAzMS42em0zMjUuMSAwYy0xNy40IDAtMzEuNi0xNC4yLTMxLjYtMzEuNiAwLTE3LjQgMTQuMi0zMS42IDMxLjYtMzEuNnMzMS42IDE0LjIgMzEuNiAzMS42YTMxLjYgMzEuNiAwIDAgMS0zMS42IDMxLjZ6JykpO1xuZXhwb3J0cy5TaHJpbmtPdXRsaW5lID0gZ2V0SWNvbignc2hyaW5rJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MS43IDE4Ny40bC00NS4xLTQ1LjFhOC4wMyA4LjAzIDAgMCAwLTExLjMgMEw2NjcuOCAyOTkuOWwtNTQuNy01NC43YTcuOTQgNy45NCAwIDAgMC0xMy41IDQuN0w1NzYuMSA0MzljLS42IDUuMiAzLjcgOS41IDguOSA4LjlsMTg5LjItMjMuNWM2LjYtLjggOS4zLTguOCA0LjctMTMuNWwtNTQuNy01NC43IDE1Ny42LTE1Ny42YzMtMyAzLTguMS0uMS0xMS4yek00MzkgNTc2LjFsLTE4OS4yIDIzLjVjLTYuNi44LTkuMyA4LjktNC43IDEzLjVsNTQuNyA1NC43LTE1Ny41IDE1Ny41YTguMDMgOC4wMyAwIDAgMCAwIDExLjNsNDUuMSA0NS4xYzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBsMTU3LjYtMTU3LjYgNTQuNyA1NC43YTcuOTQgNy45NCAwIDAgMCAxMy41LTQuN0w0NDcuOSA1ODVhNy45IDcuOSAwIDAgMC04LjktOC45eicpKTtcbmV4cG9ydHMuU2xhY2tPdXRsaW5lID0gZ2V0SWNvbignc2xhY2snLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNDA5LjQgMTI4Yy00Mi40IDAtNzYuNyAzNC40LTc2LjcgNzYuOCAwIDIwLjMgOC4xIDM5LjkgMjIuNCA1NC4zYTc2Ljc0IDc2Ljc0IDAgMCAwIDU0LjMgMjIuNWg3Ni43di03Ni44YzAtNDIuMy0zNC4zLTc2LjctNzYuNy03Ni44em0wIDIwNC44SDIwNC43Yy00Mi40IDAtNzYuNyAzNC40LTc2LjcgNzYuOHMzNC40IDc2LjggNzYuNyA3Ni44aDIwNC42YzQyLjQgMCA3Ni43LTM0LjQgNzYuNy03Ni44LjEtNDIuNC0zNC4zLTc2LjgtNzYuNi03Ni44ek02MTQgNDg2LjRjNDIuNCAwIDc2LjgtMzQuNCA3Ni43LTc2LjhWMjA0LjhjMC00Mi40LTM0LjMtNzYuOC03Ni43LTc2LjgtNDIuNCAwLTc2LjcgMzQuNC03Ni43IDc2Ljh2MjA0LjhjMCA0Mi41IDM0LjMgNzYuOCA3Ni43IDc2Ljh6bTI4MS40LTc2LjhjMC00Mi40LTM0LjQtNzYuOC03Ni43LTc2LjhTNzQyIDM2Ny4yIDc0MiA0MDkuNnY3Ni44aDc2LjdjNDIuMyAwIDc2LjctMzQuNCA3Ni43LTc2Ljh6bS03Ni44IDEyOEg2MTRjLTQyLjQgMC03Ni43IDM0LjQtNzYuNyA3Ni44IDAgMjAuMyA4LjEgMzkuOSAyMi40IDU0LjNhNzYuNzQgNzYuNzQgMCAwIDAgNTQuMyAyMi41aDIwNC42YzQyLjQgMCA3Ni43LTM0LjQgNzYuNy03Ni44LjEtNDIuNC0zNC4zLTc2LjctNzYuNy03Ni44ek02MTQgNzQyLjRoLTc2Ljd2NzYuOGMwIDQyLjQgMzQuNCA3Ni44IDc2LjcgNzYuOCA0Mi40IDAgNzYuOC0zNC40IDc2LjctNzYuOC4xLTQyLjQtMzQuMy03Ni43LTc2LjctNzYuOHpNNDA5LjQgNTM3LjZjLTQyLjQgMC03Ni43IDM0LjQtNzYuNyA3Ni44djIwNC44YzAgNDIuNCAzNC40IDc2LjggNzYuNyA3Ni44IDQyLjQgMCA3Ni44LTM0LjQgNzYuNy03Ni44VjYxNC40YzAtMjAuMy04LjEtMzkuOS0yMi40LTU0LjNhNzYuOTIgNzYuOTIgMCAwIDAtNTQuMy0yMi41ek0xMjggNjE0LjRjMCAyMC4zIDguMSAzOS45IDIyLjQgNTQuM2E3Ni43NCA3Ni43NCAwIDAgMCA1NC4zIDIyLjVjNDIuNCAwIDc2LjgtMzQuNCA3Ni43LTc2Ljh2LTc2LjhoLTc2LjdjLTQyLjMgMC03Ni43IDM0LjQtNzYuNyA3Ni44eicpKTtcbmV4cG9ydHMuU21hbGxEYXNoT3V0bGluZSA9IGdldEljb24oJ3NtYWxsLWRhc2gnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMTEyIDQ3Nmg3MnY3MmgtNzJ6bTE4MiAwaDcydjcyaC03MnptMzY0IDBoNzJ2NzJoLTcyem0xODIgMGg3MnY3MmgtNzJ6bS0zNjQgMGg3MnY3MmgtNzJ6JykpO1xuZXhwb3J0cy5Tb2x1dGlvbk91dGxpbmUgPSBnZXRJY29uKCdzb2x1dGlvbicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ002ODggMjY0YzAtNC40LTMuNi04LTgtOEgyOTZjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMzg0YzQuNCAwIDgtMy42IDgtOHYtNDh6bS04IDEzNkgyOTZjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMzg0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04ek00ODAgNTQ0SDI5NmMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgxODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6bS00OCAzMDhIMjA4VjE0OGg1NjB2MzQ0YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LThWMTA4YzAtMTcuNy0xNC4zLTMyLTMyLTMySDE2OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2Nzg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDI2NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMzU2LjgtNzQuNGMyOS0yNi4zIDQ3LjItNjQuMyA0Ny4yLTEwNi42IDAtNzkuNS02NC41LTE0NC0xNDQtMTQ0cy0xNDQgNjQuNS0xNDQgMTQ0YzAgNDIuMyAxOC4yIDgwLjMgNDcuMiAxMDYuNi01NyAzMi41LTk2LjIgOTIuNy05OS4yIDE2Mi4xLS4yIDQuNSAzLjUgOC4zIDggOC4zaDQ4LjFjNC4yIDAgNy43LTMuMyA4LTcuNkM1NjQgODcxLjIgNjIxLjcgODE2IDY5MiA4MTZzMTI4IDU1LjIgMTMxLjkgMTI0LjRjLjIgNC4yIDMuNyA3LjYgOCA3LjZIODgwYzQuNiAwIDguMi0zLjggOC04LjMtMi45LTY5LjUtNDIuMi0xMjkuNi05OS4yLTE2Mi4xek02OTIgNTkxYzQ0LjIgMCA4MCAzNS44IDgwIDgwcy0zNS44IDgwLTgwIDgwLTgwLTM1LjgtODAtODAgMzUuOC04MCA4MC04MHonKSk7XG5leHBvcnRzLlNrZXRjaE91dGxpbmUgPSBnZXRJY29uKCdza2V0Y2gnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTI1LjYgNDA1LjFsLTIwMy0yNTMuN2E2LjUgNi41IDAgMCAwLTUtMi40SDMwNi40Yy0xLjkgMC0zLjguOS01IDIuNGwtMjAzIDI1My43YTYuNSA2LjUgMCAwIDAgLjIgOC4zbDQwOC42IDQ1OS41YzEuMiAxLjQgMyAyLjEgNC44IDIuMSAxLjggMCAzLjUtLjggNC44LTIuMWw0MDguNi00NTkuNWE2LjUgNi41IDAgMCAwIC4yLTguM3pNNjQ1LjIgMjA2LjRsMzQuNCAxMzMuOS0xMzIuNS0xMzMuOWg5OC4xem04LjIgMTc4LjVIMzcwLjZMNTEyIDI0MmwxNDEuNCAxNDIuOXpNMzc4LjggMjA2LjRoOTguMUwzNDQuMyAzNDAuM2wzNC41LTEzMy45em0tNTMuNCA3bC00NC4xIDE3MS41aC05My4xbDEzNy4yLTE3MS41ek0xOTQuNiA0MzQuOUgyODlsMTI1LjggMjQ3LjctMjIwLjItMjQ3Ljd6TTUxMiA3NjMuNEwzNDUuMSA0MzQuOWgzMzMuN0w1MTIgNzYzLjR6bTk3LjEtODAuOEw3MzUgNDM0LjloOTQuNEw2MDkuMSA2ODIuNnptMTMzLjYtMjk3LjdsLTQ0LjEtMTcxLjUgMTM3LjIgMTcxLjVoLTkzLjF6JykpO1xuZXhwb3J0cy5Tb3J0RGVzY2VuZGluZ091dGxpbmUgPSBnZXRJY29uKCdzb3J0LWRlc2NlbmRpbmcnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODM5LjYgNDMzLjhMNzQ5IDE1MC41YTkuMjQgOS4yNCAwIDAgMC04LjktNi41aC03Ny40Yy00LjEgMC03LjYgMi42LTguOSA2LjVsLTkxLjMgMjgzLjNjLS4zLjktLjUgMS45LS41IDIuOSAwIDUuMSA0LjIgOS4zIDkuMyA5LjNoNTYuNGM0LjIgMCA3LjgtMi44IDktNi44bDE3LjUtNjEuNmg4OWwxNy4zIDYxLjVjMS4xIDQgNC44IDYuOCA5IDYuOGg2MS4yYzEgMCAxLjktLjEgMi44LS40IDIuNC0uOCA0LjMtMi40IDUuNS00LjYgMS4xLTIuMiAxLjMtNC43LjYtNy4xek02NjMuMyAzMjUuNWwzMi44LTExNi45aDYuM2wzMi4xIDExNi45aC03MS4yem0xNDMuNSA0OTIuOUg2NzcuMnYtLjRsMTMyLjYtMTg4LjljMS4xLTEuNiAxLjctMy40IDEuNy01LjR2LTM2LjRjMC01LjEtNC4yLTkuMy05LjMtOS4zaC0yMDRjLTUuMSAwLTkuMyA0LjItOS4zIDkuM3Y0M2MwIDUuMSA0LjIgOS4zIDkuMyA5LjNoMTIyLjZ2LjRMNTg3LjcgODI4LjlhOS4zNSA5LjM1IDAgMCAwLTEuNyA1LjR2MzYuNGMwIDUuMSA0LjIgOS4zIDkuMyA5LjNoMjExLjRjNS4xIDAgOS4zLTQuMiA5LjMtOS4zdi00M2E5LjIgOS4yIDAgMCAwLTkuMi05LjN6TTMxMC4zIDE2Ny4xYTggOCAwIDAgMC0xMi42IDBMMTg1LjcgMzA5Yy00LjIgNS4zLS40IDEzIDYuMyAxM2g3NnY1MzBjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFYzMjJoNzZjNi43IDAgMTAuNS03LjggNi4zLTEzbC0xMTItMTQxLjl6JykpO1xuZXhwb3J0cy5Tb3J0QXNjZW5kaW5nT3V0bGluZSA9IGdldEljb24oJ3NvcnQtYXNjZW5kaW5nJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTgzOS42IDQzMy44TDc0OSAxNTAuNWE5LjI0IDkuMjQgMCAwIDAtOC45LTYuNWgtNzcuNGMtNC4xIDAtNy42IDIuNi04LjkgNi41bC05MS4zIDI4My4zYy0uMy45LS41IDEuOS0uNSAyLjkgMCA1LjEgNC4yIDkuMyA5LjMgOS4zaDU2LjRjNC4yIDAgNy44LTIuOCA5LTYuOGwxNy41LTYxLjZoODlsMTcuMyA2MS41YzEuMSA0IDQuOCA2LjggOSA2LjhoNjEuMmMxIDAgMS45LS4xIDIuOC0uNCAyLjQtLjggNC4zLTIuNCA1LjUtNC42IDEuMS0yLjIgMS4zLTQuNy42LTcuMXpNNjYzLjMgMzI1LjVsMzIuOC0xMTYuOWg2LjNsMzIuMSAxMTYuOWgtNzEuMnptMTQzLjUgNDkyLjlINjc3LjJ2LS40bDEzMi42LTE4OC45YzEuMS0xLjYgMS43LTMuNCAxLjctNS40di0zNi40YzAtNS4xLTQuMi05LjMtOS4zLTkuM2gtMjA0Yy01LjEgMC05LjMgNC4yLTkuMyA5LjN2NDNjMCA1LjEgNC4yIDkuMyA5LjMgOS4zaDEyMi42di40TDU4Ny43IDgyOC45YTkuMzUgOS4zNSAwIDAgMC0xLjcgNS40djM2LjRjMCA1LjEgNC4yIDkuMyA5LjMgOS4zaDIxMS40YzUuMSAwIDkuMy00LjIgOS4zLTkuM3YtNDNhOS4yIDkuMiAwIDAgMC05LjItOS4zek00MTYgNzAyaC03NlYxNzJjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djUzMGgtNzZjLTYuNyAwLTEwLjUgNy44LTYuMyAxM2wxMTIgMTQxLjlhOCA4IDAgMCAwIDEyLjYgMGwxMTItMTQxLjljNC4xLTUuMi40LTEzLTYuMy0xM3onKSk7XG5leHBvcnRzLlN0b2NrT3V0bGluZSA9IGdldEljb24oJ3N0b2NrJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkwNCA3NDdIMTIwYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNMTY1LjcgNjIxLjhsMzkuNyAzOS41YzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBsMjM0LjctMjMzLjkgOTcuNiA5Ny4zYTMyLjExIDMyLjExIDAgMCAwIDQ1LjIgMGwyNjQuMi0yNjMuMmMzLjEtMy4xIDMuMS04LjIgMC0xMS4zbC0zOS43LTM5LjZhOC4wMyA4LjAzIDAgMCAwLTExLjMgMGwtMjM1LjcgMjM1LTk3LjctOTcuM2EzMi4xMSAzMi4xMSAwIDAgMC00NS4yIDBMMTY1LjcgNjEwLjVhNy45NCA3Ljk0IDAgMCAwIDAgMTEuM3onKSk7XG5leHBvcnRzLlN3YXBMZWZ0T3V0bGluZSA9IGdldEljb24oJ3N3YXAtbGVmdCcsIG91dGxpbmUsIGdldE5vZGUobm9ybWFsVmlld0JveCwgJ004NzIgNTcySDI2Ni44bDE0NC4zLTE4M2M0LjEtNS4yLjQtMTMtNi4zLTEzSDM0MGMtOS44IDAtMTkuMSA0LjUtMjUuMSAxMi4ybC0xNjQgMjA4Yy0xNi41IDIxLTEuNiA1MS44IDI1LjEgNTEuOGg2OTZjNC40IDAgOC0zLjYgOC04di02MGMwLTQuNC0zLjYtOC04LTh6JykpO1xuZXhwb3J0cy5Td2FwUmlnaHRPdXRsaW5lID0gZ2V0SWNvbignc3dhcC1yaWdodCcsIG91dGxpbmUsIGdldE5vZGUobm9ybWFsVmlld0JveCwgJ004NzMuMSA1OTYuMmwtMTY0LTIwOEEzMiAzMiAwIDAgMCA2ODQgMzc2aC02NC44Yy02LjcgMC0xMC40IDcuNy02LjMgMTNsMTQ0LjMgMTgzSDE1MmMtNC40IDAtOCAzLjYtOCA4djYwYzAgNC40IDMuNiA4IDggOGg2OTUuOWMyNi44IDAgNDEuNy0zMC44IDI1LjItNTEuOHonKSk7XG5leHBvcnRzLlN0cmlrZXRocm91Z2hPdXRsaW5lID0gZ2V0SWNvbignc3RyaWtldGhyb3VnaCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ005NTIgNDc0SDU2OS45Yy0xMC0yLTIwLjUtNC0zMS42LTYtMTUuOS0yLjktMjIuMi00LjEtMzAuOC01LjgtNTEuMy0xMC04Mi4yLTIwLTEwNi44LTM0LjItMzUuMS0yMC41LTUyLjItNDguMy01Mi4yLTg1LjEgMC0zNyAxNS4yLTY3LjcgNDQtODkgMjguNC0yMSA2OC44LTMyLjEgMTE2LjgtMzIuMSA1NC44IDAgOTcuMSAxNC40IDEyNS44IDQyLjggMTQuNiAxNC40IDI1LjMgMzIuMSAzMS44IDUyLjYgMS4zIDQuMSAyLjggMTAgNC4zIDE3LjguOSA0LjggNS4yIDguMiA5LjkgOC4yaDcyLjhjNS42IDAgMTAuMS00LjYgMTAuMS0xMC4xdi0xYy0uNy02LjgtMS4zLTEyLjEtMi0xNi03LjMtNDMuNS0yOC04MS43LTU5LjctMTEwLjMtNDQuNC00MC41LTEwOS43LTYxLjgtMTg4LjctNjEuOC03Mi4zIDAtMTM3LjQgMTguMS0xODMuMyA1MC45LTI1LjYgMTguNC00NS40IDQxLjItNTguNiA2Ny43LTEzLjUgMjcuMS0yMC4zIDU4LjQtMjAuMyA5Mi45IDAgMjkuNSA1LjcgNTQuNSAxNy4zIDc2LjUgOC4zIDE1LjcgMTkuNiAyOS41IDM0LjEgNDJINzJjLTQuNCAwLTggMy42LTggOHY2MGMwIDQuNCAzLjYgOCA4IDhoNDMzLjJjMi4xLjQgMy45LjggNS45IDEuMiAzMC45IDYuMiA0OS41IDEwLjQgNjYuNiAxNS4yIDIzIDYuNSA0MC42IDEzLjMgNTUuMiAyMS41IDM1LjggMjAuMiA1My4zIDQ5LjIgNTMuMyA4OSAwIDM1LjMtMTUuNSA2Ni44LTQzLjYgODguOC0zMC41IDIzLjktNzUuNiAzNi40LTEzMC41IDM2LjQtNDMuNyAwLTgwLjctOC41LTExMC4yLTI1LTI5LjEtMTYuMy00OS4xLTM5LjgtNTkuNy02OS41LS44LTIuMi0xLjctNS4yLTIuNy05LTEuMi00LjQtNS4zLTcuNS05LjctNy41aC03OS43Yy01LjYgMC0xMC4xIDQuNi0xMC4xIDEwLjF2MWMuMiAyLjMuNCA0LjIuNiA1LjcgNi41IDQ4LjggMzAuMyA4OC44IDcwLjcgMTE4LjggNDcuMSAzNC44IDExMy40IDUzLjIgMTkxLjggNTMuMiA4NC4yIDAgMTU0LjgtMTkuOCAyMDQuMi01Ny4zIDI1LTE4LjkgNDQuMi00Mi4yIDU3LjEtNjkgMTMtMjcuMSAxOS43LTU3LjkgMTkuNy05MS41IDAtMzEuOC01LjgtNTguNC0xNy44LTgxLjQtNS44LTExLjItMTMuMS0yMS41LTIxLjgtMzAuOEg5NTJjNC40IDAgOC0zLjYgOC04di02MGE4IDggMCAwIDAtOC03Ljl6JykpO1xuZXhwb3J0cy5Td2FwT3V0bGluZSA9IGdldEljb24oJ3N3YXAnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODQ3LjkgNTkySDE1MmMtNC40IDAtOCAzLjYtOCA4djYwYzAgNC40IDMuNiA4IDggOGg2MDUuMkw2MTIuOSA4NTFjLTQuMSA1LjItLjQgMTMgNi4zIDEzaDcyLjVjNC45IDAgOS41LTIuMiAxMi42LTYuMWwxNjguOC0yMTQuMWMxNi41LTIxIDEuNi01MS44LTI1LjItNTEuOHpNODcyIDM1NkgyNjYuOGwxNDQuMy0xODNjNC4xLTUuMi40LTEzLTYuMy0xM2gtNzIuNWMtNC45IDAtOS41IDIuMi0xMi42IDYuMUwxNTAuOSAzODAuMmMtMTYuNSAyMS0xLjYgNTEuOCAyNS4xIDUxLjhoNjk2YzQuNCAwIDgtMy42IDgtOHYtNjBjMC00LjQtMy42LTgtOC04eicpKTtcbmV4cG9ydHMuU3luY091dGxpbmUgPSBnZXRJY29uKCdzeW5jJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTE2OCA1MDQuMmMxLTQzLjcgMTAtODYuMSAyNi45LTEyNiAxNy4zLTQxIDQyLjEtNzcuNyA3My43LTEwOS40UzMzNyAyMTIuMyAzNzggMTk1YzQyLjQtMTcuOSA4Ny40LTI3IDEzMy45LTI3czkxLjUgOS4xIDEzMy44IDI3QTM0MS41IDM0MS41IDAgMCAxIDc1NSAyNjguOGM5LjkgOS45IDE5LjIgMjAuNCAyNy44IDMxLjRsLTYwLjIgNDdhOCA4IDAgMCAwIDMgMTQuMWwxNzUuNyA0M2M1IDEuMiA5LjktMi42IDkuOS03LjdsLjgtMTgwLjljMC02LjctNy43LTEwLjUtMTIuOS02LjNsLTU2LjQgNDQuMUM3NjUuOCAxNTUuMSA2NDYuMiA5MiA1MTEuOCA5MiAyODIuNyA5MiA5Ni4zIDI3NS42IDkyIDUwMy44YTggOCAwIDAgMCA4IDguMmg2MGM0LjQgMCA3LjktMy41IDgtNy44em03NTYgNy44aC02MGMtNC40IDAtNy45IDMuNS04IDcuOC0xIDQzLjctMTAgODYuMS0yNi45IDEyNi0xNy4zIDQxLTQyLjEgNzcuOC03My43IDEwOS40QTM0Mi40NSAzNDIuNDUgMCAwIDEgNTEyLjEgODU2YTM0Mi4yNCAzNDIuMjQgMCAwIDEtMjQzLjItMTAwLjhjLTkuOS05LjktMTkuMi0yMC40LTI3LjgtMzEuNGw2MC4yLTQ3YTggOCAwIDAgMC0zLTE0LjFsLTE3NS43LTQzYy01LTEuMi05LjkgMi42LTkuOSA3LjdsLS43IDE4MWMwIDYuNyA3LjcgMTAuNSAxMi45IDYuM2w1Ni40LTQ0LjFDMjU4LjIgODY4LjkgMzc3LjggOTMyIDUxMi4yIDkzMmMyMjkuMiAwIDQxNS41LTE4My43IDQxOS44LTQxMS44YTggOCAwIDAgMC04LTguMnonKSk7XG5leHBvcnRzLlRhYmxlT3V0bGluZSA9IGdldEljb24oJ3RhYmxlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkyOCAxNjBIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY0MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg4MzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgMjA4SDY3NlYyMzJoMjEydjEzNnptMCAyMjRINjc2VjQzMmgyMTJ2MTYwek00MTIgNDMyaDIwMHYxNjBINDEyVjQzMnptMjAwLTY0SDQxMlYyMzJoMjAwdjEzNnptLTQ3NiA2NGgyMTJ2MTYwSDEzNlY0MzJ6bTAtMjAwaDIxMnYxMzZIMTM2VjIzMnptMCA0MjRoMjEydjEzNkgxMzZWNjU2em0yNzYgMGgyMDB2MTM2SDQxMlY2NTZ6bTQ3NiAxMzZINjc2VjY1NmgyMTJ2MTM2eicpKTtcbmV4cG9ydHMuVGVhbU91dGxpbmUgPSBnZXRJY29uKCd0ZWFtJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTgyNC4yIDY5OS45YTMwMS41NSAzMDEuNTUgMCAwIDAtODYuNC02MC40Qzc4My4xIDYwMi44IDgxMiA1NDYuOCA4MTIgNDg0YzAtMTEwLjgtOTIuNC0yMDEuNy0yMDMuMi0yMDAtMTA5LjEgMS43LTE5NyA5MC42LTE5NyAyMDAgMCA2Mi44IDI5IDExOC44IDc0LjIgMTU1LjVhMzAwLjk1IDMwMC45NSAwIDAgMC04Ni40IDYwLjRDMzQ1IDc1NC42IDMxNCA4MjYuOCAzMTIgOTAzLjhhOCA4IDAgMCAwIDggOC4yaDU2YzQuMyAwIDcuOS0zLjQgOC03LjcgMS45LTU4IDI1LjQtMTEyLjMgNjYuNy0xNTMuNUEyMjYuNjIgMjI2LjYyIDAgMCAxIDYxMiA2ODRjNjAuOSAwIDExOC4yIDIzLjcgMTYxLjMgNjYuOEM4MTQuNSA3OTIgODM4IDg0Ni4zIDg0MCA5MDQuM2MuMSA0LjMgMy43IDcuNyA4IDcuN2g1NmE4IDggMCAwIDAgOC04LjJjLTItNzctMzMtMTQ5LjItODcuOC0yMDMuOXpNNjEyIDYxMmMtMzQuMiAwLTY2LjQtMTMuMy05MC41LTM3LjVhMTI2Ljg2IDEyNi44NiAwIDAgMS0zNy41LTkxLjhjLjMtMzIuOCAxMy40LTY0LjUgMzYuMy04OCAyNC0yNC42IDU2LjEtMzguMyA5MC40LTM4LjcgMzMuOS0uMyA2Ni44IDEyLjkgOTEgMzYuNiAyNC44IDI0LjMgMzguNCA1Ni44IDM4LjQgOTEuNCAwIDM0LjItMTMuMyA2Ni4zLTM3LjUgOTAuNUExMjcuMyAxMjcuMyAwIDAgMSA2MTIgNjEyek0zNjEuNSA1MTAuNGMtLjktOC43LTEuNC0xNy41LTEuNC0yNi40IDAtMTUuOSAxLjUtMzEuNCA0LjMtNDYuNS43LTMuNi0xLjItNy4zLTQuNS04LjgtMTMuNi02LjEtMjYuMS0xNC41LTM2LjktMjUuMWExMjcuNTQgMTI3LjU0IDAgMCAxLTM4LjctOTUuNGMuOS0zMi4xIDEzLjgtNjIuNiAzNi4zLTg1LjYgMjQuNy0yNS4zIDU3LjktMzkuMSA5My4yLTM4LjcgMzEuOS4zIDYyLjcgMTIuNiA4NiAzNC40IDcuOSA3LjQgMTQuNyAxNS42IDIwLjQgMjQuNCAyIDMuMSA1LjkgNC40IDkuMyAzLjIgMTcuNi02LjEgMzYuMi0xMC40IDU1LjMtMTIuNCA1LjYtLjYgOC44LTYuNiA2LjMtMTEuNi0zMi41LTY0LjMtOTguOS0xMDguNy0xNzUuNy0xMDkuOS0xMTAuOS0xLjctMjAzLjMgODkuMi0yMDMuMyAxOTkuOSAwIDYyLjggMjguOSAxMTguOCA3NC4yIDE1NS41LTMxLjggMTQuNy02MS4xIDM1LTg2LjUgNjAuNC01NC44IDU0LjctODUuOCAxMjYuOS04Ny44IDIwNGE4IDggMCAwIDAgOCA4LjJoNTYuMWM0LjMgMCA3LjktMy40IDgtNy43IDEuOS01OCAyNS40LTExMi4zIDY2LjctMTUzLjUgMjkuNC0yOS40IDY1LjQtNDkuOCAxMDQuNy01OS43IDMuOS0xIDYuNS00LjcgNi04Ljd6JykpO1xuZXhwb3J0cy5UYW9iYW9PdXRsaW5lID0gZ2V0SWNvbigndGFvYmFvJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTE2OC41IDI3My43YTY4LjcgNjguNyAwIDEgMCAxMzcuNCAwIDY4LjcgNjguNyAwIDEgMC0xMzcuNCAwem03MzAgNzkuMnMtMjMuNy0xODQuNC00MjYuOS03MC4xYzE3LjMtMzAgMjUuNi00OS41IDI1LjYtNDkuNUwzOTYuNCAyMDVzLTQwLjYgMTMyLjYtMTEzIDE5NC40YzAgMCA3MC4xIDQwLjYgNjkuNCAzOS40IDIwLjEtMjAuMSAzOC4yLTQwLjYgNTMuNy02MC40IDE2LjEtNyAzMS41LTEzLjYgNDYuNy0xOS44LTE4LjYgMzMuNS00OC43IDgzLjgtNzguOCAxMTUuNmw0Mi40IDM3czI4LjgtMjcuNyA2MC40LTYxLjJoMzZ2NjEuOEgzNzIuOXY0OS41aDE0MC4zdjExOC41Yy0xLjcgMC0zLjYgMC01LjQtLjItMTUuNC0uNy0zOS41LTMuMy00OS0xOC4yLTExLjUtMTguMS0zLTUxLjUtMi40LTcxLjloLTk3bC0zLjQgMS44cy0zNS41IDE1OS4xIDEwMi4zIDE1NS41YzEyOS4xIDMuNiAyMDMtMzYgMjM4LjYtNjMuMWwxNC4yIDUyLjYgNzkuNi0zMy4yLTUzLjktMTMxLjktNjQuNiAyMC4xIDEyLjEgNDUuMmMtMTYuNiAxMi40LTM1LjYgMjEuNy01Ni4yIDI4LjRWNTYxLjNoMTM3LjF2LTQ5LjVINjI4LjFWNDUwaDEzNy42di00OS41SDUyMS4zYzE3LjYtMjEuNCAzMS41LTQxLjEgMzUtNTMuNmwtNDIuNS0xMS42YzE4Mi44LTY1LjUgMjg0LjUtNTQuMiAyODMuNiA1My4ydjI4Mi44czEwLjggOTcuMS0xMDAuNCA5MC4xbC02MC4yLTEyLjktMTQuMiA1Ny4xUzg4Mi41IDg4MCA5MDMuNyA2ODAuMmMyMS4zLTIwMC01LjItMzI3LjMtNS4yLTMyNy4zem0tNzA3LjQgMTguM2wtNDUuNCA2OS43IDgzLjYgNTIuMXM1NiAyOC41IDI5LjQgODEuOUMyMzMuOCA2MjUuNSAxMTIgNzM2LjMgMTEyIDczNi4zbDEwOSA2OC4xYzc1LjQtMTYzLjcgNzAuNS0xNDIgODkuNS0yMDAuNyAxOS41LTYwLjEgMjMuNy0xMDUuOS05LjQtMTM5LjEtNDIuNC00Mi42LTQ3LTQ2LjYtMTEwLTkzLjR6JykpO1xuZXhwb3J0cy5Ub1RvcE91dGxpbmUgPSBnZXRJY29uKCd0by10b3AnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODg1IDc4MEgxNjVjLTQuNCAwLTggMy42LTggOHY2MGMwIDQuNCAzLjYgOCA4IDhoNzIwYzQuNCAwIDgtMy42IDgtOHYtNjBjMC00LjQtMy42LTgtOC04ek00MDAgMzI1LjdoNzMuOVY2NjRjMCA0LjQgMy42IDggOCA4aDYwYzQuNCAwIDgtMy42IDgtOFYzMjUuN0g2MjRjNi43IDAgMTAuNC03LjcgNi4zLTEyLjlMNTE4LjMgMTcxYTggOCAwIDAgMC0xMi42IDBsLTExMiAxNDEuN2MtNC4xIDUuMy0uNCAxMyA2LjMgMTN6JykpO1xuZXhwb3J0cy5UcmFkZW1hcmtPdXRsaW5lID0gZ2V0SWNvbigndHJhZGVtYXJrJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnptODcuNS0zMzQuN2MzNC44LTEyLjggNzguNC00OSA3OC40LTExOS4yIDAtNzEuMi00NS41LTEzMS4xLTE0NC4yLTEzMS4xSDM3OGMtNC40IDAtOCAzLjYtOCA4djQxMGMwIDQuNCAzLjYgOCA4IDhoNTQuNWM0LjQgMCA4LTMuNiA4LThWNTYxLjJoODguN2w3NC42IDE1OS4yYzEuMyAyLjggNC4xIDQuNiA3LjIgNC42aDYyYTcuOSA3LjkgMCAwIDAgNy4xLTExLjVsLTgwLjYtMTY0LjJ6TTUyMiA1MDVoLTgxLjVWMzU3aDgzLjRjNDggMCA4MC45IDI1LjMgODAuOSA3NS41IDAgNDYuOS0yOS44IDcyLjUtODIuOCA3Mi41eicpKTtcbmV4cG9ydHMuVHJhbnNhY3Rpb25PdXRsaW5lID0gZ2V0SWNvbigndHJhbnNhY3Rpb24nLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNjY4LjYgMzIwYzAtNC40LTMuNi04LTgtOGgtNTQuNWMtMyAwLTUuOCAxLjctNy4xIDQuNGwtODQuNyAxNjguOEg1MTFsLTg0LjctMTY4LjhhOCA4IDAgMCAwLTcuMS00LjRoLTU1LjdjLTEuMyAwLTIuNi4zLTMuOCAxLTMuOSAyLjEtNS4zIDctMy4yIDEwLjhsMTAzLjkgMTkxLjZoLTU3Yy00LjQgMC04IDMuNi04IDh2MjcuMWMwIDQuNCAzLjYgOCA4IDhoNzZ2MzloLTc2Yy00LjQgMC04IDMuNi04IDh2MjcuMWMwIDQuNCAzLjYgOCA4IDhoNzZWNzA0YzAgNC40IDMuNiA4IDggOGg0OS45YzQuNCAwIDgtMy42IDgtOHYtNjMuNWg3Ni4zYzQuNCAwIDgtMy42IDgtOHYtMjcuMWMwLTQuNC0zLjYtOC04LThoLTc2LjN2LTM5aDc2LjNjNC40IDAgOC0zLjYgOC04di0yNy4xYzAtNC40LTMuNi04LTgtOEg1NjRsMTAzLjctMTkxLjZjLjUtMS4xLjktMi40LjktMy43ek0xNTcuOSA1MDQuMmEzNTIuNyAzNTIuNyAwIDAgMSAxMDMuNS0yNDIuNGMzMi41LTMyLjUgNzAuMy01OC4xIDExMi40LTc1LjkgNDMuNi0xOC40IDg5LjktMjcuOCAxMzcuNi0yNy44IDQ3LjggMCA5NC4xIDkuMyAxMzcuNiAyNy44IDQyLjEgMTcuOCA3OS45IDQzLjQgMTEyLjQgNzUuOSAxMCAxMCAxOS4zIDIwLjUgMjcuOSAzMS40bC01MCAzOS4xYTggOCAwIDAgMCAzIDE0LjFsMTU2LjggMzguM2M1IDEuMiA5LjktMi42IDkuOS03LjdsLjgtMTYxLjVjMC02LjctNy43LTEwLjUtMTIuOS02LjNsLTQ3LjggMzcuNEM3NzAuNyAxNDYuMyA2NDguNiA4MiA1MTEuNSA4MiAyNzcgODIgODYuMyAyNzAuMSA4MiA1MDMuOGE4IDggMCAwIDAgOCA4LjJoNjBjNC4zIDAgNy44LTMuNSA3LjktNy44ek05MzQgNTEyaC02MGMtNC4zIDAtNy45IDMuNS04IDcuOGEzNTIuNyAzNTIuNyAwIDAgMS0xMDMuNSAyNDIuNCAzNTIuNTcgMzUyLjU3IDAgMCAxLTExMi40IDc1LjljLTQzLjYgMTguNC04OS45IDI3LjgtMTM3LjYgMjcuOHMtOTQuMS05LjMtMTM3LjYtMjcuOGEzNTIuNTcgMzUyLjU3IDAgMCAxLTExMi40LTc1LjljLTEwLTEwLTE5LjMtMjAuNS0yNy45LTMxLjRsNDkuOS0zOS4xYTggOCAwIDAgMC0zLTE0LjFsLTE1Ni44LTM4LjNjLTUtMS4yLTkuOSAyLjYtOS45IDcuN2wtLjggMTYxLjdjMCA2LjcgNy43IDEwLjUgMTIuOSA2LjNsNDcuOC0zNy40QzI1My4zIDg3Ny43IDM3NS40IDk0MiA1MTIuNSA5NDIgNzQ3IDk0MiA5MzcuNyA3NTMuOSA5NDIgNTIwLjJhOCA4IDAgMCAwLTgtOC4yeicpKTtcbmV4cG9ydHMuVHdpdHRlck91dGxpbmUgPSBnZXRJY29uKCd0d2l0dGVyJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkyOCAyNTQuM2MtMzAuNiAxMy4yLTYzLjkgMjIuNy05OC4yIDI2LjRhMTcwLjEgMTcwLjEgMCAwIDAgNzUtOTQgMzM2LjY0IDMzNi42NCAwIDAgMS0xMDguMiA0MS4yQTE3MC4xIDE3MC4xIDAgMCAwIDY3MiAxNzRjLTk0LjUgMC0xNzAuNSA3Ni42LTE3MC41IDE3MC42IDAgMTMuMiAxLjYgMjYuNCA0LjIgMzkuMS0xNDEuNS03LjQtMjY3LjctNzUtMzUxLjYtMTc4LjVhMTY5LjMyIDE2OS4zMiAwIDAgMC0yMy4yIDg2LjFjMCA1OS4yIDMwLjEgMTExLjQgNzYgMTQyLjFhMTcyIDE3MiAwIDAgMS03Ny4xLTIxLjd2Mi4xYzAgODIuOSA1OC42IDE1MS42IDEzNi43IDE2Ny40YTE4MC42IDE4MC42IDAgMCAxLTQ0LjkgNS44Yy0xMS4xIDAtMjEuNi0xLjEtMzIuMi0yLjZDMjExIDY1MiAyNzMuOSA3MDEuMSAzNDguOCA3MDIuN2MtNTguNiA0NS45LTEzMiA3Mi45LTIxMS43IDcyLjktMTQuMyAwLTI3LjUtLjUtNDEuMi0yLjFDMTcxLjUgODIyIDI2MS4yIDg1MCAzNTcuOCA4NTAgNjcxLjQgODUwIDg0MyA1OTAuMiA4NDMgMzY0LjdjMC03LjQgMC0xNC44LS41LTIyLjIgMzMuMi0yNC4zIDYyLjMtNTQuNCA4NS41LTg4LjJ6JykpO1xuZXhwb3J0cy5VbmRlcmxpbmVPdXRsaW5lID0gZ2V0SWNvbigndW5kZXJsaW5lJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTgyNCA4MDRIMjAwYy00LjQgMC04IDMuNC04IDcuNnY2MC44YzAgNC4yIDMuNiA3LjYgOCA3LjZoNjI0YzQuNCAwIDgtMy40IDgtNy42di02MC44YzAtNC4yLTMuNi03LjYtOC03LjZ6bS0zMTItNzZjNjkuNCAwIDEzNC42LTI3LjEgMTgzLjgtNzYuMkM3NDUgNjAyLjcgNzcyIDUzNy40IDc3MiA0NjhWMTU2YzAtNi42LTUuNC0xMi0xMi0xMmgtNjBjLTYuNiAwLTEyIDUuNC0xMiAxMnYzMTJjMCA5Ny03OSAxNzYtMTc2IDE3NnMtMTc2LTc5LTE3Ni0xNzZWMTU2YzAtNi42LTUuNC0xMi0xMi0xMmgtNjBjLTYuNiAwLTEyIDUuNC0xMiAxMnYzMTJjMCA2OS40IDI3LjEgMTM0LjYgNzYuMiAxODMuOEMzNzcuMyA3MDEgNDQyLjYgNzI4IDUxMiA3Mjh6JykpO1xuZXhwb3J0cy5VbmRvT3V0bGluZSA9IGdldEljb24oJ3VuZG8nLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTExLjQgMTI0QzI5MC41IDEyNC4zIDExMiAzMDMgMTEyIDUyMy45YzAgMTI4IDYwLjIgMjQyIDE1My44IDMxNS4ybC0zNy41IDQ4Yy00LjEgNS4zLS4zIDEzIDYuMyAxMi45bDE2Ny0uOGM1LjIgMCA5LTQuOSA3LjctOS45TDM2OS44IDcyN2E4IDggMCAwIDAtMTQuMS0zTDMxNSA3NzYuMWMtMTAuMi04LTIwLTE2LjctMjkuMy0yNmEzMTguNjQgMzE4LjY0IDAgMCAxLTY4LjYtMTAxLjdDMjAwLjQgNjA5IDE5MiA1NjcuMSAxOTIgNTIzLjlzOC40LTg1LjEgMjUuMS0xMjQuNWMxNi4xLTM4LjEgMzkuMi03Mi4zIDY4LjYtMTAxLjcgMjkuNC0yOS40IDYzLjYtNTIuNSAxMDEuNy02OC42QzQyNi45IDIxMi40IDQ2OC44IDIwNCA1MTIgMjA0czg1LjEgOC40IDEyNC41IDI1LjFjMzguMSAxNi4xIDcyLjMgMzkuMiAxMDEuNyA2OC42IDI5LjQgMjkuNCA1Mi41IDYzLjYgNjguNiAxMDEuNyAxNi43IDM5LjQgMjUuMSA4MS4zIDI1LjEgMTI0LjVzLTguNCA4NS4xLTI1LjEgMTI0LjVhMzE4LjY0IDMxOC42NCAwIDAgMS02OC42IDEwMS43Yy03LjUgNy41LTE1LjMgMTQuNS0yMy40IDIxLjJhNy45MyA3LjkzIDAgMCAwLTEuMiAxMS4xbDM5LjQgNTAuNWMyLjggMy41IDcuOSA0LjEgMTEuNCAxLjNDODU0LjUgNzYwLjggOTEyIDY0OS4xIDkxMiA1MjMuOWMwLTIyMS4xLTE3OS40LTQwMC4yLTQwMC42LTM5OS45eicpKTtcbmV4cG9ydHMuVW5vcmRlcmVkTGlzdE91dGxpbmUgPSBnZXRJY29uKCd1bm9yZGVyZWQtbGlzdCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MTIgMTkySDMyOGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1ODRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgMjg0SDMyOGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1ODRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgMjg0SDMyOGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1ODRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6TTEwNCAyMjhhNTYgNTYgMCAxIDAgMTEyIDAgNTYgNTYgMCAxIDAtMTEyIDB6bTAgMjg0YTU2IDU2IDAgMSAwIDExMiAwIDU2IDU2IDAgMSAwLTExMiAwem0wIDI4NGE1NiA1NiAwIDEgMCAxMTIgMCA1NiA1NiAwIDEgMC0xMTIgMHonKSk7XG5leHBvcnRzLlVwT3V0bGluZSA9IGdldEljb24oJ3VwJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg5MC41IDc1NS4zTDUzNy45IDI2OS4yYy0xMi44LTE3LjYtMzktMTcuNi01MS43IDBMMTMzLjUgNzU1LjNBOCA4IDAgMCAwIDE0MCA3NjhoNzVjNS4xIDAgOS45LTIuNSAxMi45LTYuNkw1MTIgMzY5LjhsMjg0LjEgMzkxLjZjMyA0LjEgNy44IDYuNiAxMi45IDYuNmg3NWM2LjUgMCAxMC4zLTcuNCA2LjUtMTIuN3onKSk7XG5leHBvcnRzLlVwbG9hZE91dGxpbmUgPSBnZXRJY29uKCd1cGxvYWQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNDAwIDMxNy43aDczLjlWNjU2YzAgNC40IDMuNiA4IDggOGg2MGM0LjQgMCA4LTMuNiA4LThWMzE3LjdINjI0YzYuNyAwIDEwLjQtNy43IDYuMy0xMi45TDUxOC4zIDE2M2E4IDggMCAwIDAtMTIuNiAwbC0xMTIgMTQxLjdjLTQuMSA1LjMtLjQgMTMgNi4zIDEzek04NzggNjI2aC02MGMtNC40IDAtOCAzLjYtOCA4djE1NEgyMTRWNjM0YzAtNC40LTMuNi04LTgtOGgtNjBjLTQuNCAwLTggMy42LTggOHYxOThjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjg0YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjYzNGMwLTQuNC0zLjYtOC04LTh6JykpO1xuZXhwb3J0cy5Vc2VyQWRkT3V0bGluZSA9IGdldEljb24oJ3VzZXItYWRkJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTY3OC4zIDY0Mi40YzI0LjItMTMgNTEuOS0yMC40IDgxLjQtMjAuNGguMWMzIDAgNC40LTMuNiAyLjItNS42YTM3MS42NyAzNzEuNjcgMCAwIDAtMTAzLjctNjUuOGMtLjQtLjItLjgtLjMtMS4yLS41QzcxOS4yIDUwNSA3NTkuNiA0MzEuNyA3NTkuNiAzNDljMC0xMzctMTEwLjgtMjQ4LTI0Ny41LTI0OFMyNjQuNyAyMTIgMjY0LjcgMzQ5YzAgODIuNyA0MC40IDE1NiAxMDIuNiAyMDEuMS0uNC4yLS44LjMtMS4yLjUtNDQuNyAxOC45LTg0LjggNDYtMTE5LjMgODAuNmEzNzMuNDIgMzczLjQyIDAgMCAwLTgwLjQgMTE5LjVBMzczLjYgMzczLjYgMCAwIDAgMTM3IDg4OC44YTggOCAwIDAgMCA4IDguMmg1OS45YzQuMyAwIDcuOS0zLjUgOC03LjggMi03Ny4yIDMyLjktMTQ5LjUgODcuNi0yMDQuM0MzNTcgNjI4LjIgNDMyLjIgNTk3IDUxMi4yIDU5N2M1Ni43IDAgMTExLjEgMTUuNyAxNTggNDUuMWE4LjEgOC4xIDAgMCAwIDguMS4zek01MTIuMiA1MjFjLTQ1LjggMC04OC45LTE3LjktMTIxLjQtNTAuNEExNzEuMiAxNzEuMiAwIDAgMSAzNDAuNSAzNDljMC00NS45IDE3LjktODkuMSA1MC4zLTEyMS42UzQ2Ni4zIDE3NyA1MTIuMiAxNzdzODguOSAxNy45IDEyMS40IDUwLjRBMTcxLjIgMTcxLjIgMCAwIDEgNjgzLjkgMzQ5YzAgNDUuOS0xNy45IDg5LjEtNTAuMyAxMjEuNkM2MDEuMSA1MDMuMSA1NTggNTIxIDUxMi4yIDUyMXpNODgwIDc1OWgtODR2LTg0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY4NGgtODRjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoODR2ODRjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtODRoODRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6JykpO1xuZXhwb3J0cy5Vc2VyZ3JvdXBBZGRPdXRsaW5lID0gZ2V0SWNvbigndXNlcmdyb3VwLWFkZCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004OTIgNzcyaC04MHYtODBjMC00LjQtMy42LTgtOC04aC00OGMtNC40IDAtOCAzLjYtOCA4djgwaC04MGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGg4MHY4MGMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04di04MGg4MGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOHpNMzczLjUgNDk4LjRjLS45LTguNy0xLjQtMTcuNS0xLjQtMjYuNCAwLTE1LjkgMS41LTMxLjQgNC4zLTQ2LjUuNy0zLjYtMS4yLTcuMy00LjUtOC44LTEzLjYtNi4xLTI2LjEtMTQuNS0zNi45LTI1LjFhMTI3LjU0IDEyNy41NCAwIDAgMS0zOC43LTk1LjRjLjktMzIuMSAxMy44LTYyLjYgMzYuMy04NS42IDI0LjctMjUuMyA1Ny45LTM5LjEgOTMuMi0zOC43IDMxLjkuMyA2Mi43IDEyLjYgODYgMzQuNCA3LjkgNy40IDE0LjcgMTUuNiAyMC40IDI0LjQgMiAzLjEgNS45IDQuNCA5LjMgMy4yIDE3LjYtNi4xIDM2LjItMTAuNCA1NS4zLTEyLjQgNS42LS42IDguOC02LjYgNi4zLTExLjYtMzIuNS02NC4zLTk4LjktMTA4LjctMTc1LjctMTA5LjktMTEwLjgtMS43LTIwMy4yIDg5LjItMjAzLjIgMjAwIDAgNjIuOCAyOC45IDExOC44IDc0LjIgMTU1LjUtMzEuOCAxNC43LTYxLjEgMzUtODYuNSA2MC40LTU0LjggNTQuNy04NS44IDEyNi45LTg3LjggMjA0YTggOCAwIDAgMCA4IDguMmg1Ni4xYzQuMyAwIDcuOS0zLjQgOC03LjcgMS45LTU4IDI1LjQtMTEyLjMgNjYuNy0xNTMuNSAyOS40LTI5LjQgNjUuNC00OS44IDEwNC43LTU5LjcgMy44LTEuMSA2LjQtNC44IDUuOS04Ljh6TTgyNCA0NzJjMC0xMDkuNC04Ny45LTE5OC4zLTE5Ni45LTIwMEM1MTYuMyAyNzAuMyA0MjQgMzYxLjIgNDI0IDQ3MmMwIDYyLjggMjkgMTE4LjggNzQuMiAxNTUuNWEzMDAuOTUgMzAwLjk1IDAgMCAwLTg2LjQgNjAuNEMzNTcgNzQyLjYgMzI2IDgxNC44IDMyNCA4OTEuOGE4IDggMCAwIDAgOCA4LjJoNTZjNC4zIDAgNy45LTMuNCA4LTcuNyAxLjktNTggMjUuNC0xMTIuMyA2Ni43LTE1My41QzUwNS44IDY5NS43IDU2MyA2NzIgNjI0IDY3MmMxMTAuNCAwIDIwMC04OS41IDIwMC0yMDB6bS0xMDkuNSA5MC41QzY5MC4zIDU4Ni43IDY1OC4yIDYwMCA2MjQgNjAwcy02Ni4zLTEzLjMtOTAuNS0zNy41YTEyNy4yNiAxMjcuMjYgMCAwIDEtMzcuNS05MS44Yy4zLTMyLjggMTMuNC02NC41IDM2LjMtODggMjQtMjQuNiA1Ni4xLTM4LjMgOTAuNC0zOC43IDMzLjktLjMgNjYuOCAxMi45IDkxIDM2LjYgMjQuOCAyNC4zIDM4LjQgNTYuOCAzOC40IDkxLjQtLjEgMzQuMi0xMy40IDY2LjMtMzcuNiA5MC41eicpKTtcbmV4cG9ydHMuVXNlck91dGxpbmUgPSBnZXRJY29uKCd1c2VyJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg1OC41IDc2My42YTM3NCAzNzQgMCAwIDAtODAuNi0xMTkuNSAzNzUuNjMgMzc1LjYzIDAgMCAwLTExOS41LTgwLjZjLS40LS4yLS44LS4zLTEuMi0uNUM3MTkuNSA1MTggNzYwIDQ0NC43IDc2MCAzNjJjMC0xMzctMTExLTI0OC0yNDgtMjQ4UzI2NCAyMjUgMjY0IDM2MmMwIDgyLjcgNDAuNSAxNTYgMTAyLjggMjAxLjEtLjQuMi0uOC4zLTEuMi41LTQ0LjggMTguOS04NSA0Ni0xMTkuNSA4MC42YTM3NS42MyAzNzUuNjMgMCAwIDAtODAuNiAxMTkuNUEzNzEuNyAzNzEuNyAwIDAgMCAxMzYgOTAxLjhhOCA4IDAgMCAwIDggOC4yaDYwYzQuNCAwIDcuOS0zLjUgOC03LjggMi03Ny4yIDMzLTE0OS41IDg3LjgtMjA0LjMgNTYuNy01Ni43IDEzMi04Ny45IDIxMi4yLTg3LjlzMTU1LjUgMzEuMiAyMTIuMiA4Ny45Qzc3OSA3NTIuNyA4MTAgODI1IDgxMiA5MDIuMmMuMSA0LjQgMy42IDcuOCA4IDcuOGg2MGE4IDggMCAwIDAgOC04LjJjLTEtNDcuOC0xMC45LTk0LjMtMjkuNS0xMzguMnpNNTEyIDUzNGMtNDUuOSAwLTg5LjEtMTcuOS0xMjEuNi01MC40UzM0MCA0MDcuOSAzNDAgMzYyYzAtNDUuOSAxNy45LTg5LjEgNTAuNC0xMjEuNlM0NjYuMSAxOTAgNTEyIDE5MHM4OS4xIDE3LjkgMTIxLjYgNTAuNFM2ODQgMzE2LjEgNjg0IDM2MmMwIDQ1LjktMTcuOSA4OS4xLTUwLjQgMTIxLjZTNTU3LjkgNTM0IDUxMiA1MzR6JykpO1xuZXhwb3J0cy5Vc2VyRGVsZXRlT3V0bGluZSA9IGdldEljb24oJ3VzZXItZGVsZXRlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTY3OC4zIDY1NS40YzI0LjItMTMgNTEuOS0yMC40IDgxLjQtMjAuNGguMWMzIDAgNC40LTMuNiAyLjItNS42YTM3MS42NyAzNzEuNjcgMCAwIDAtMTAzLjctNjUuOGMtLjQtLjItLjgtLjMtMS4yLS41QzcxOS4yIDUxOCA3NTkuNiA0NDQuNyA3NTkuNiAzNjJjMC0xMzctMTEwLjgtMjQ4LTI0Ny41LTI0OFMyNjQuNyAyMjUgMjY0LjcgMzYyYzAgODIuNyA0MC40IDE1NiAxMDIuNiAyMDEuMS0uNC4yLS44LjMtMS4yLjUtNDQuNyAxOC45LTg0LjggNDYtMTE5LjMgODAuNmEzNzMuNDIgMzczLjQyIDAgMCAwLTgwLjQgMTE5LjVBMzczLjYgMzczLjYgMCAwIDAgMTM3IDkwMS44YTggOCAwIDAgMCA4IDguMmg1OS45YzQuMyAwIDcuOS0zLjUgOC03LjggMi03Ny4yIDMyLjktMTQ5LjUgODcuNi0yMDQuM0MzNTcgNjQxLjIgNDMyLjIgNjEwIDUxMi4yIDYxMGM1Ni43IDAgMTExLjEgMTUuNyAxNTggNDUuMWE4LjEgOC4xIDAgMCAwIDguMS4zek01MTIuMiA1MzRjLTQ1LjggMC04OC45LTE3LjktMTIxLjQtNTAuNEExNzEuMiAxNzEuMiAwIDAgMSAzNDAuNSAzNjJjMC00NS45IDE3LjktODkuMSA1MC4zLTEyMS42UzQ2Ni4zIDE5MCA1MTIuMiAxOTBzODguOSAxNy45IDEyMS40IDUwLjRBMTcxLjIgMTcxLjIgMCAwIDEgNjgzLjkgMzYyYzAgNDUuOS0xNy45IDg5LjEtNTAuMyAxMjEuNkM2MDEuMSA1MTYuMSA1NTggNTM0IDUxMi4yIDUzNHpNODgwIDc3Mkg2NDBjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoMjQwYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04eicpKTtcbmV4cG9ydHMuVXNlcmdyb3VwRGVsZXRlT3V0bGluZSA9IGdldEljb24oJ3VzZXJncm91cC1kZWxldGUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODg4IDc4NEg2NjRjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMjI0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04ek0zNzMuNSA1MTAuNGMtLjktOC43LTEuNC0xNy41LTEuNC0yNi40IDAtMTUuOSAxLjUtMzEuNCA0LjMtNDYuNS43LTMuNi0xLjItNy4zLTQuNS04LjgtMTMuNi02LjEtMjYuMS0xNC41LTM2LjktMjUuMWExMjcuNTQgMTI3LjU0IDAgMCAxLTM4LjctOTUuNGMuOS0zMi4xIDEzLjgtNjIuNiAzNi4zLTg1LjYgMjQuNy0yNS4zIDU3LjktMzkuMSA5My4yLTM4LjcgMzEuOS4zIDYyLjcgMTIuNiA4NiAzNC40IDcuOSA3LjQgMTQuNyAxNS42IDIwLjQgMjQuNCAyIDMuMSA1LjkgNC40IDkuMyAzLjIgMTcuNi02LjEgMzYuMi0xMC40IDU1LjMtMTIuNCA1LjYtLjYgOC44LTYuNiA2LjMtMTEuNi0zMi41LTY0LjMtOTguOS0xMDguNy0xNzUuNy0xMDkuOS0xMTAuOS0xLjctMjAzLjMgODkuMi0yMDMuMyAxOTkuOSAwIDYyLjggMjguOSAxMTguOCA3NC4yIDE1NS41LTMxLjggMTQuNy02MS4xIDM1LTg2LjUgNjAuNC01NC44IDU0LjctODUuOCAxMjYuOS04Ny44IDIwNGE4IDggMCAwIDAgOCA4LjJoNTYuMWM0LjMgMCA3LjktMy40IDgtNy43IDEuOS01OCAyNS40LTExMi4zIDY2LjctMTUzLjUgMjkuNC0yOS40IDY1LjQtNDkuOCAxMDQuNy01OS43IDMuOS0xIDYuNS00LjcgNi04Ljd6TTgyNCA0ODRjMC0xMDkuNC04Ny45LTE5OC4zLTE5Ni45LTIwMEM1MTYuMyAyODIuMyA0MjQgMzczLjIgNDI0IDQ4NGMwIDYyLjggMjkgMTE4LjggNzQuMiAxNTUuNWEzMDAuOTUgMzAwLjk1IDAgMCAwLTg2LjQgNjAuNEMzNTcgNzU0LjYgMzI2IDgyNi44IDMyNCA5MDMuOGE4IDggMCAwIDAgOCA4LjJoNTZjNC4zIDAgNy45LTMuNCA4LTcuNyAxLjktNTggMjUuNC0xMTIuMyA2Ni43LTE1My41QzUwNS44IDcwNy43IDU2MyA2ODQgNjI0IDY4NGMxMTAuNCAwIDIwMC04OS41IDIwMC0yMDB6bS0xMDkuNSA5MC41QzY5MC4zIDU5OC43IDY1OC4yIDYxMiA2MjQgNjEycy02Ni4zLTEzLjMtOTAuNS0zNy41YTEyNy4yNiAxMjcuMjYgMCAwIDEtMzcuNS05MS44Yy4zLTMyLjggMTMuNC02NC41IDM2LjMtODggMjQtMjQuNiA1Ni4xLTM4LjMgOTAuNC0zOC43IDMzLjktLjMgNjYuOCAxMi45IDkxIDM2LjYgMjQuOCAyNC4zIDM4LjQgNTYuOCAzOC40IDkxLjQtLjEgMzQuMi0xMy40IDY2LjMtMzcuNiA5MC41eicpKTtcbmV4cG9ydHMuVmVydGljYWxBbGlnbkJvdHRvbU91dGxpbmUgPSBnZXRJY29uKCd2ZXJ0aWNhbC1hbGlnbi1ib3R0b20nLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODU5LjkgNzgwSDE2NC4xYy00LjUgMC04LjEgMy42LTguMSA4djYwYzAgNC40IDMuNiA4IDguMSA4aDY5NS44YzQuNSAwIDguMS0zLjYgOC4xLTh2LTYwYzAtNC40LTMuNi04LTguMS04ek01MDUuNyA2NjlhOCA4IDAgMCAwIDEyLjYgMGwxMTItMTQxLjdjNC4xLTUuMi40LTEyLjktNi4zLTEyLjloLTc0LjFWMTc2YzAtNC40LTMuNi04LTgtOGgtNjBjLTQuNCAwLTggMy42LTggOHYzMzguM0g0MDBjLTYuNyAwLTEwLjQgNy43LTYuMyAxMi45bDExMiAxNDEuOHonKSk7XG5leHBvcnRzLlZlcnRpY2FsQWxpZ25NaWRkbGVPdXRsaW5lID0gZ2V0SWNvbigndmVydGljYWwtYWxpZ24tbWlkZGxlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg1OS45IDQ3NEgxNjQuMWMtNC41IDAtOC4xIDMuNi04LjEgOHY2MGMwIDQuNCAzLjYgOCA4LjEgOGg2OTUuOGM0LjUgMCA4LjEtMy42IDguMS04di02MGMwLTQuNC0zLjYtOC04LjEtOHptLTM1My42LTc0LjdjMi45IDMuNyA4LjUgMy43IDExLjMgMGwxMDAuOC0xMjcuNWMzLjctNC43LjQtMTEuNy01LjctMTEuN0g1NTBWMTA0YzAtNC40LTMuNi04LTgtOGgtNjBjLTQuNCAwLTggMy42LTggOHYxNTZoLTYyLjhjLTYgMC05LjQgNy01LjcgMTEuN2wxMDAuOCAxMjcuNnptMTEuNCAyMjUuNGE3LjE0IDcuMTQgMCAwIDAtMTEuMyAwTDQwNS42IDc1Mi4zYTcuMjMgNy4yMyAwIDAgMCA1LjcgMTEuN0g0NzR2MTU2YzAgNC40IDMuNiA4IDggOGg2MGM0LjQgMCA4LTMuNiA4LThWNzY0aDYyLjhjNiAwIDkuNC03IDUuNy0xMS43TDUxNy43IDYyNC43eicpKTtcbmV4cG9ydHMuVmVydGljYWxBbGlnblRvcE91dGxpbmUgPSBnZXRJY29uKCd2ZXJ0aWNhbC1hbGlnbi10b3AnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODU5LjkgMTY4SDE2NC4xYy00LjUgMC04LjEgMy42LTguMSA4djYwYzAgNC40IDMuNiA4IDguMSA4aDY5NS44YzQuNSAwIDguMS0zLjYgOC4xLTh2LTYwYzAtNC40LTMuNi04LTguMS04ek01MTguMyAzNTVhOCA4IDAgMCAwLTEyLjYgMGwtMTEyIDE0MS43YTcuOTggNy45OCAwIDAgMCA2LjMgMTIuOWg3My45Vjg0OGMwIDQuNCAzLjYgOCA4IDhoNjBjNC40IDAgOC0zLjYgOC04VjUwOS43SDYyNGM2LjcgMCAxMC40LTcuNyA2LjMtMTIuOUw1MTguMyAzNTV6JykpO1xuZXhwb3J0cy5WZXJ0aWNhbFJpZ2h0T3V0bGluZSA9IGdldEljb24oJ3ZlcnRpY2FsLXJpZ2h0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTMyNiAxNjRoLTY0Yy00LjQgMC04IDMuNi04IDh2Njg4YzAgNC40IDMuNiA4IDggOGg2NGM0LjQgMCA4LTMuNiA4LThWMTcyYzAtNC40LTMuNi04LTgtOHptNDQ0IDcyLjRWMTY0YzAtNi44LTcuOS0xMC41LTEzLjEtNi4xTDMzNSA1MTJsNDIxLjkgMzU0LjFjNS4yIDQuNCAxMy4xLjcgMTMuMS02LjF2LTcyLjRjMC05LjQtNC4yLTE4LjQtMTEuNC0yNC41TDQ1OS40IDUxMmwyOTkuMi0yNTEuMWM3LjItNi4xIDExLjQtMTUuMSAxMS40LTI0LjV6JykpO1xuZXhwb3J0cy5WZXJ0aWNhbExlZnRPdXRsaW5lID0gZ2V0SWNvbigndmVydGljYWwtbGVmdCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ003NjIgMTY0aC02NGMtNC40IDAtOCAzLjYtOCA4djY4OGMwIDQuNCAzLjYgOCA4IDhoNjRjNC40IDAgOC0zLjYgOC04VjE3MmMwLTQuNC0zLjYtOC04LTh6bS01MDggMHY3Mi40YzAgOS41IDQuMiAxOC40IDExLjQgMjQuNUw1NjQuNiA1MTIgMjY1LjQgNzYzLjFjLTcuMiA2LjEtMTEuNCAxNS0xMS40IDI0LjVWODYwYzAgNi44IDcuOSAxMC41IDEzLjEgNi4xTDY4OSA1MTIgMjY3LjEgMTU3LjlBNy45NSA3Ljk1IDAgMCAwIDI1NCAxNjR6JykpO1xuZXhwb3J0cy5XaWZpT3V0bGluZSA9IGdldEljb24oJ3dpZmknLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNzIzIDYyMC41QzY2Ni44IDU3MS42IDU5My40IDU0MiA1MTMgNTQycy0xNTMuOCAyOS42LTIxMC4xIDc4LjZhOC4xIDguMSAwIDAgMC0uOCAxMS4ybDM2IDQyLjljMi45IDMuNCA4IDMuOCAxMS40LjlDMzkzLjEgNjM3LjIgNDUwLjMgNjE0IDUxMyA2MTRzMTE5LjkgMjMuMiAxNjMuNSA2MS41YzMuNCAyLjkgOC41IDIuNSAxMS40LS45bDM2LTQyLjljMi44LTMuMyAyLjQtOC4zLS45LTExLjJ6bTExNy40LTE0MC4xQzc1MS43IDQwNi41IDYzNy42IDM2MiA1MTMgMzYycy0yMzguNyA0NC41LTMyNy41IDExOC40YTguMDUgOC4wNSAwIDAgMC0xIDExLjNsMzYgNDIuOWMyLjggMy40IDcuOSAzLjggMTEuMiAxQzMwOCA0NzIuMiA0MDYuMSA0MzQgNTEzIDQzNHMyMDUgMzguMiAyODEuMiAxMDEuNmMzLjQgMi44IDguNCAyLjQgMTEuMi0xbDM2LTQyLjljMi44LTMuNCAyLjQtOC41LTEtMTEuM3ptMTE2LjctMTM5QzgzNS43IDI0MS44IDY4MC4zIDE4MiA1MTEgMTgyYy0xNjguMiAwLTMyMi42IDU5LTQ0My43IDE1Ny40YTggOCAwIDAgMC0xLjEgMTEuNGwzNiA0Mi45YzIuOCAzLjMgNy44IDMuOCAxMS4xIDEuMUMyMjIgMzA2LjcgMzYwLjMgMjU0IDUxMSAyNTRjMTUxLjggMCAyOTEgNTMuNSA0MDAgMTQyLjcgMy40IDIuOCA4LjQgMi4zIDExLjItMS4xbDM2LTQyLjljMi45LTMuNCAyLjQtOC41LTEuMS0xMS4zek00NDggNzc4YTY0IDY0IDAgMSAwIDEyOCAwIDY0IDY0IDAgMSAwLTEyOCAweicpKTtcbmV4cG9ydHMuWmhpaHVPdXRsaW5lID0gZ2V0SWNvbignemhpaHUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTY0LjcgMjMwLjFWODAzaDYwbDI1LjIgNzEuNEw3NTYuMyA4MDNoMTMxLjVWMjMwLjFINTY0Ljd6bTI0Ny43IDQ5N2gtNTkuOWwtNzUuMSA1MC40LTE3LjgtNTAuNGgtMThWMzA4LjNoMTcwLjd2NDE4Ljh6TTUyNi4xIDQ4Ni45SDM5My4zYzIuMS00NC45IDQuMy0xMDQuMyA2LjYtMTcyLjloMTMwLjlsLS4xLTguMWMwLS42LS4yLTE0LjctMi4zLTI5LjEtMi4xLTE1LTYuNi0zNC45LTIxLTM0LjlIMjg3LjhjNC40LTIwLjYgMTUuNy02OS43IDI5LjQtOTMuOGw2LjQtMTEuMi0xMi45LS43Yy0uOCAwLTE5LjYtLjktNDEuNCAxMC42LTM1LjcgMTktNTEuNyA1Ni40LTU4LjcgODQuNC0xOC40IDczLjEtNDQuNiAxMjMuOS01NS43IDE0NS42LTMuMyA2LjQtNS4zIDEwLjItNi4yIDEyLjgtMS44IDQuOS0uOCA5LjggMi44IDEzIDEwLjUgOS41IDM4LjItMi45IDM4LjUtMyAuNi0uMyAxLjMtLjYgMi4yLTEgMTMuOS02LjMgNTUuMS0yNSA2OS44LTg0LjVoNTYuN2MuNyAzMi4yIDMuMSAxMzguNCAyLjkgMTcyLjloLTE0MWwtMi4xIDEuNWMtMjMuMSAxNi45LTMwLjUgNjMuMi0zMC44IDY1LjJsLTEuNCA5LjJoMTY3Yy0xMi4zIDc4LjMtMjYuNSAxMTMuNC0zNCAxMjcuNC0zLjcgNy03LjMgMTQtMTAuNyAyMC44LTIxLjMgNDIuMi00My40IDg1LjgtMTI2LjMgMTUzLjYtMy42IDIuOC03IDgtNC44IDEzLjcgMi40IDYuMyA5LjMgOS4xIDI0LjYgOS4xIDUuNCAwIDExLjgtLjMgMTkuNC0xIDQ5LjktNC40IDEwMC44LTE4IDEzNS4xLTg3LjYgMTctMzUuMSAzMS43LTcxLjcgNDMuOS0xMDguOUw0OTcgODUwbDUtMTJjLjgtMS45IDE5LTQ2LjMgNS4xLTk1LjlsLS41LTEuOC0xMDguMS0xMjMtMjIgMTYuNmM2LjQtMjYuMSAxMC42LTQ5LjkgMTIuNS03MS4xaDE1OC43di04YzAtNDAuMS0xOC41LTYzLjktMTkuMi02NC45bC0yLjQtM3onKSk7XG5leHBvcnRzLldlaWJvT3V0bGluZSA9IGdldEljb24oJ3dlaWJvJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTQ1Ny4zIDU0M2MtNjguMS0xNy43LTE0NSAxNi4yLTE3NC42IDc2LjItMzAuMSA2MS4yLTEgMTI5LjEgNjcuOCAxNTEuMyA3MS4yIDIzIDE1NS4yLTEyLjIgMTg0LjQtNzguMyAyOC43LTY0LjYtNy4yLTEzMS03Ny42LTE0OS4yem0tNTIgMTU2LjJjLTEzLjggMjIuMS00My41IDMxLjctNjUuOCAyMS42LTIyLTEwLTI4LjUtMzUuNy0xNC42LTU3LjIgMTMuNy0yMS40IDQyLjMtMzEgNjQuNC0yMS43IDIyLjQgOS41IDI5LjYgMzUgMTYgNTcuM3ptNDUuNS01OC41Yy01IDguNi0xNi4xIDEyLjctMjQuNyA5LjEtOC41LTMuNS0xMS4yLTEzLjEtNi40LTIxLjUgNS04LjQgMTUuNi0xMi40IDI0LjEtOS4xIDguNyAzLjIgMTEuOCAxMi45IDcgMjEuNXptMzM0LjUtMTk3LjJjMTUgNC44IDMxLTMuNCAzNS45LTE4LjMgMTEuOC0zNi42IDQuNC03OC40LTIzLjItMTA5YTExMS4zOSAxMTEuMzkgMCAwIDAtMTA2LTM0LjMgMjguNDUgMjguNDUgMCAwIDAtMjEuOSAzMy44IDI4LjM5IDI4LjM5IDAgMCAwIDMzLjggMjEuOGMxOC40LTMuOSAzOC4zIDEuOCA1MS45IDE2LjdhNTQuMiA1NC4yIDAgMCAxIDExLjMgNTMuMyAyOC40NSAyOC40NSAwIDAgMCAxOC4yIDM2em05OS44LTIwNmMtNTYuNy02Mi45LTE0MC40LTg2LjktMjE3LjctNzAuNWEzMi45OCAzMi45OCAwIDAgMC0yNS40IDM5LjMgMzMuMTIgMzMuMTIgMCAwIDAgMzkuMyAyNS41YzU1LTExLjcgMTE0LjQgNS40IDE1NC44IDUwLjEgNDAuMyA0NC43IDUxLjIgMTA1LjcgMzQgMTU5LjEtNS42IDE3LjQgMy45IDM2IDIxLjMgNDEuNyAxNy40IDUuNiAzNi0zLjkgNDEuNi0yMS4ydi0uMWMyNC4xLTc1LjQgOC45LTE2MS4xLTQ3LjktMjIzLjl6TTcyOSA0OTljLTEyLjItMy42LTIwLjUtNi4xLTE0LjEtMjIuMSAxMy44LTM0LjcgMTUuMi02NC43LjMtODYtMjgtNDAuMS0xMDQuOC0zNy45LTE5Mi44LTEuMSAwIDAtMjcuNiAxMi4xLTIwLjYtOS44IDEzLjUtNDMuNSAxMS41LTc5LjktOS42LTEwMS00Ny43LTQ3LjgtMTc0LjYgMS44LTI4My41IDExMC42QzEyNy4zIDQ3MS4xIDgwIDU1Ny41IDgwIDYzMi4yIDgwIDc3NS4xIDI2My4yIDg2MiA0NDIuNSA4NjJjMjM1IDAgMzkxLjMtMTM2LjUgMzkxLjMtMjQ1IDAtNjUuNS01NS4yLTEwMi42LTEwNC44LTExOHpNNDQzIDgxMC44Yy0xNDMgMTQuMS0yNjYuNS01MC41LTI3NS44LTE0NC41LTkuMy05My45IDk5LjItMTgxLjUgMjQyLjItMTk1LjYgMTQzLTE0LjIgMjY2LjUgNTAuNSAyNzUuOCAxNDQuNEM2OTQuNCA3MDkgNTg2IDc5Ni42IDQ0MyA4MTAuOHonKSk7XG5leHBvcnRzLldvbWFuT3V0bGluZSA9IGdldEljb24oJ3dvbWFuJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTcxMi44IDU0OC44YzUzLjYtNTMuNiA4My4yLTEyNSA4My4yLTIwMC44IDAtNzUuOS0yOS41LTE0Ny4yLTgzLjItMjAwLjhDNjU5LjIgOTMuNiA1ODcuOCA2NCA1MTIgNjRzLTE0Ny4yIDI5LjUtMjAwLjggODMuMkMyNTcuNiAyMDAuOSAyMjggMjcyLjEgMjI4IDM0OGMwIDYzLjggMjAuOSAxMjQuNCA1OS40IDE3My45IDcuMyA5LjQgMTUuMiAxOC4zIDIzLjcgMjYuOSA4LjUgOC41IDE3LjUgMTYuNCAyNi44IDIzLjcgMzkuNiAzMC44IDg2LjMgNTAuNCAxMzYuMSA1N1Y3MzZIMzYwYy00LjQgMC04IDMuNi04IDh2NjBjMCA0LjQgMy42IDggOCA4aDExNHYxNDBjMCA0LjQgMy42IDggOCA4aDYwYzQuNCAwIDgtMy42IDgtOFY4MTJoMTE0YzQuNCAwIDgtMy42IDgtOHYtNjBjMC00LjQtMy42LTgtOC04SDU1MFY2MjkuNWM2MS41LTguMiAxMTguMi0zNi4xIDE2Mi44LTgwLjd6TTUxMiA1NTZjLTU1LjYgMC0xMDcuNy0yMS42LTE0Ny4xLTYwLjlDMzI1LjYgNDU1LjggMzA0IDQwMy42IDMwNCAzNDhzMjEuNi0xMDcuNyA2MC45LTE0Ny4xQzQwNC4yIDE2MS41IDQ1Ni40IDE0MCA1MTIgMTQwczEwNy43IDIxLjYgMTQ3LjEgNjAuOUM2OTguNCAyNDAuMiA3MjAgMjkyLjQgNzIwIDM0OHMtMjEuNiAxMDcuNy02MC45IDE0Ny4xQzYxOS43IDUzNC40IDU2Ny42IDU1NiA1MTIgNTU2eicpKTtcbmV4cG9ydHMuWm9vbUluT3V0bGluZSA9IGdldEljb24oJ3pvb20taW4nLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNjM3IDQ0M0g1MTlWMzA5YzAtNC40LTMuNi04LTgtOGgtNjBjLTQuNCAwLTggMy42LTggOHYxMzRIMzI1Yy00LjQgMC04IDMuNi04IDh2NjBjMCA0LjQgMy42IDggOCA4aDExOHYxMzRjMCA0LjQgMy42IDggOCA4aDYwYzQuNCAwIDgtMy42IDgtOFY1MTloMTE4YzQuNCAwIDgtMy42IDgtOHYtNjBjMC00LjQtMy42LTgtOC04em0yODQgNDI0TDc3NSA3MjFjMTIyLjEtMTQ4LjkgMTEzLjYtMzY5LjUtMjYtNTA5LTE0OC0xNDguMS0zODguNC0xNDguMS01MzcgMC0xNDguMSAxNDguNi0xNDguMSAzODkgMCA1MzcgMTM5LjUgMTM5LjYgMzYwLjEgMTQ4LjEgNTA5IDI2bDE0NiAxNDZjMy4yIDIuOCA4LjMgMi44IDExIDBsNDMtNDNjMi44LTIuNyAyLjgtNy44IDAtMTF6TTY5NiA2OTZjLTExOC44IDExOC43LTMxMS4yIDExOC43LTQzMCAwLTExOC43LTExOC44LTExOC43LTMxMS4yIDAtNDMwIDExOC44LTExOC43IDMxMS4yLTExOC43IDQzMCAwIDExOC43IDExOC44IDExOC43IDMxMS4yIDAgNDMweicpKTtcbmV4cG9ydHMuQWNjb3VudEJvb2tUd29Ub25lID0gZ2V0SWNvbignYWNjb3VudC1ib29rJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTcxMiAzMDRjMCA0LjQtMy42IDgtOCA4aC01NmMtNC40IDAtOC0zLjYtOC04di00OEgzODR2NDhjMCA0LjQtMy42IDgtOCA4aC01NmMtNC40IDAtOC0zLjYtOC04di00OEgxODR2NTg0aDY1NlYyNTZINzEydjQ4em0tNjUuNiAxMjEuOGwtODkuMyAxNjQuMWg0OS4xYzQuNCAwIDggMy42IDggOHYyMS4zYzAgNC40LTMuNiA4LTggOGgtNjUuNHYzMy43aDY1LjRjNC40IDAgOCAzLjYgOCA4djIxLjNjMCA0LjQtMy42IDgtOCA4aC02NS40Vjc1MmMwIDQuNC0zLjYgOC04IDhoLTQxLjNjLTQuNCAwLTgtMy42LTgtOHYtNTMuOGgtNjUuMWMtNC40IDAtOC0zLjYtOC04di0yMS4zYzAtNC40IDMuNi04IDgtOGg2NS4xdi0zMy43aC02NS4xYy00LjQgMC04LTMuNi04LTh2LTIxLjNjMC00LjQgMy42LTggOC04SDQ2N2wtODkuMy0xNjRjLTIuMS0zLjktLjctOC44IDMuMi0xMC45IDEuMS0uNyAyLjUtMSAzLjgtMWg0NmE4IDggMCAwIDEgNy4xIDQuNGw3My40IDE0NS40aDIuOGw3My40LTE0NS40YzEuMy0yLjcgNC4xLTQuNCA3LjEtNC40aDQ1YzQuNSAwIDggMy42IDcuOSA4IDAgMS4zLS40IDIuNi0xIDMuOHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNjM5LjUgNDE0aC00NWMtMyAwLTUuOCAxLjctNy4xIDQuNEw1MTQgNTYzLjhoLTIuOGwtNzMuNC0xNDUuNGE4IDggMCAwIDAtNy4xLTQuNGgtNDZjLTEuMyAwLTIuNy4zLTMuOCAxLTMuOSAyLjEtNS4zIDctMy4yIDEwLjlsODkuMyAxNjRoLTQ4LjZjLTQuNCAwLTggMy42LTggOHYyMS4zYzAgNC40IDMuNiA4IDggOGg2NS4xdjMzLjdoLTY1LjFjLTQuNCAwLTggMy42LTggOHYyMS4zYzAgNC40IDMuNiA4IDggOGg2NS4xVjc1MmMwIDQuNCAzLjYgOCA4IDhoNDEuM2M0LjQgMCA4LTMuNiA4LTh2LTUzLjhoNjUuNGM0LjQgMCA4LTMuNiA4LTh2LTIxLjNjMC00LjQtMy42LTgtOC04aC02NS40di0zMy43aDY1LjRjNC40IDAgOC0zLjYgOC04di0yMS4zYzAtNC40LTMuNi04LTgtOGgtNDkuMWw4OS4zLTE2NC4xYy42LTEuMiAxLTIuNSAxLTMuOC4xLTQuNC0zLjQtOC03LjktOHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODgwIDE4NEg3MTJ2LTY0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2NEgzODR2LTY0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2NEgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjE2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNjU2SDE4NFYyNTZoMTI4djQ4YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTQ4aDI1NnY0OGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di00OGgxMjh2NTg0eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5ab29tT3V0T3V0bGluZSA9IGdldEljb24oJ3pvb20tb3V0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTYzNyA0NDNIMzI1Yy00LjQgMC04IDMuNi04IDh2NjBjMCA0LjQgMy42IDggOCA4aDMxMmM0LjQgMCA4LTMuNiA4LTh2LTYwYzAtNC40LTMuNi04LTgtOHptMjg0IDQyNEw3NzUgNzIxYzEyMi4xLTE0OC45IDExMy42LTM2OS41LTI2LTUwOS0xNDgtMTQ4LjEtMzg4LjQtMTQ4LjEtNTM3IDAtMTQ4LjEgMTQ4LjYtMTQ4LjEgMzg5IDAgNTM3IDEzOS41IDEzOS42IDM2MC4xIDE0OC4xIDUwOSAyNmwxNDYgMTQ2YzMuMiAyLjggOC4zIDIuOCAxMSAwbDQzLTQzYzIuOC0yLjcgMi44LTcuOCAwLTExek02OTYgNjk2Yy0xMTguOCAxMTguNy0zMTEuMiAxMTguNy00MzAgMC0xMTguNy0xMTguOC0xMTguNy0zMTEuMiAwLTQzMCAxMTguOC0xMTguNyAzMTEuMi0xMTguNyA0MzAgMCAxMTguNyAxMTguOCAxMTguNyAzMTEuMiAwIDQzMHonKSk7XG5leHBvcnRzLkFsZXJ0VHdvVG9uZSA9IGdldEljb24oJ2FsZXJ0JywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTM0MCA1ODVjMC01LjUgNC41LTEwIDEwLTEwaDQ0YzUuNSAwIDEwIDQuNSAxMCAxMHYxNzFoMzU1VjU2M2MwLTEzNi40LTExMC42LTI0Ny0yNDctMjQ3UzI2NSA0MjYuNiAyNjUgNTYzdjE5M2g3NVY1ODV6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTIxNi45IDMxMC41bDM5LjYtMzkuNmMzLjEtMy4xIDMuMS04LjIgMC0xMS4zbC02Ny45LTY3LjlhOC4wMyA4LjAzIDAgMCAwLTExLjMgMGwtMzkuNiAzOS42YTguMDMgOC4wMyAwIDAgMCAwIDExLjNsNjcuOSA2Ny45YzMuMSAzLjEgOC4xIDMuMSAxMS4zIDB6bTY2OS42LTc5LjJsLTM5LjYtMzkuNmE4LjAzIDguMDMgMCAwIDAtMTEuMyAwbC02Ny45IDY3LjlhOC4wMyA4LjAzIDAgMCAwIDAgMTEuM2wzOS42IDM5LjZjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGw2Ny45LTY3LjljMy4xLTMuMiAzLjEtOC4yIDAtMTEuM3pNNDg0IDE4MGg1NmM0LjQgMCA4LTMuNiA4LThWNzZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djk2YzAgNC40IDMuNiA4IDggOHptMzQ4IDcxMkgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjI0YzAgNC40IDMuNiA4IDggOGg2ODhjNC40IDAgOC0zLjYgOC04di0yNGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTYzOS05NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg1NzRjMTcuNyAwIDMyLTE0LjMgMzItMzJWNTYzYzAtMTc2LjItMTQyLjgtMzE5LTMxOS0zMTlTMTkzIDM4Ni44IDE5MyA1NjN2MjMzem03Mi0yMzNjMC0xMzYuNCAxMTAuNi0yNDcgMjQ3LTI0N3MyNDcgMTEwLjYgMjQ3IDI0N3YxOTNINDA0VjU4NWMwLTUuNS00LjUtMTAtMTAtMTBoLTQ0Yy01LjUgMC0xMCA0LjUtMTAgMTB2MTcxaC03NVY1NjN6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkFwaVR3b1RvbmUgPSBnZXRJY29uKCdhcGknLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMTQ4LjIgNjc0LjZ6bTEwNi43LTkyLjNjLTI1IDI1LTM4LjcgNTguMS0zOC43IDkzLjRzMTMuOCA2OC41IDM4LjcgOTMuNGMyNSAyNSA1OC4xIDM4LjcgOTMuNCAzOC43IDM1LjMgMCA2OC41LTEzLjggOTMuNC0zOC43bDU5LjQtNTkuNC0xODYuOC0xODYuOC01OS40IDU5LjR6bTQyMC44LTM2Ni4xYy0zNS4zIDAtNjguNSAxMy44LTkzLjQgMzguN2wtNTkuNCA1OS40IDE4Ni44IDE4Ni44IDU5LjQtNTkuNGMyNC45LTI1IDM4LjctNTguMSAzOC43LTkzLjRzLTEzLjgtNjguNS0zOC43LTkzLjRjLTI1LTI1LTU4LjEtMzguNy05My40LTM4Ljd6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTU3OC45IDU0Ni43YTguMDMgOC4wMyAwIDAgMC0xMS4zIDBMNTAxIDYxMy4zIDQxMC43IDUyM2w2Ni43LTY2LjdjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM0w0NDEgNDA4LjZhOC4wMyA4LjAzIDAgMCAwLTExLjMgMEwzNjMgNDc1LjNsLTQzLTQzYTcuODUgNy44NSAwIDAgMC01LjctMi4zYy0yIDAtNC4xLjgtNS43IDIuM0wyMDYuOCA1MzQuMmExOTkuNDUgMTk5LjQ1IDAgMCAwLTU4LjYgMTQwLjRjLS4yIDM5LjUgMTEuMiA3OS4xIDM0LjMgMTEzLjFsLTc2LjEgNzYuMWE4LjAzIDguMDMgMCAwIDAgMCAxMS4zbDQyLjQgNDIuNGMxLjYgMS42IDMuNiAyLjMgNS43IDIuM3M0LjEtLjggNS43LTIuM2w3Ni4xLTc2LjFjMzMuNyAyMi45IDcyLjkgMzQuMyAxMTIuMSAzNC4zIDUxLjIgMCAxMDIuNC0xOS41IDE0MS41LTU4LjZsMTAxLjktMTAxLjljMy4xLTMuMSAzLjEtOC4yIDAtMTEuM2wtNDMtNDMgNjYuNy02Ni43YzMuMS0zLjEgMy4xLTguMiAwLTExLjNsLTM2LjYtMzYuMnpNNDQxLjcgNzY5LjFhMTMxLjMyIDEzMS4zMiAwIDAgMS05My40IDM4LjdjLTM1LjMgMC02OC40LTEzLjctOTMuNC0zOC43LTI0LjktMjQuOS0zOC43LTU4LjEtMzguNy05My40czEzLjctNjguNCAzOC43LTkzLjRsNTkuNC01OS40IDE4Ni44IDE4Ni44LTU5LjQgNTkuNHptNDc2LTYyMC4zbC00Mi40LTQyLjRjLTEuNi0xLjYtMy42LTIuMy01LjctMi4zcy00LjEuOC01LjcgMi4zbC03Ni4xIDc2LjFhMTk5LjI3IDE5OS4yNyAwIDAgMC0xMTIuMS0zNC4zYy01MS4yIDAtMTAyLjQgMTkuNS0xNDEuNSA1OC42TDQzMi4zIDMwOC43YTguMDMgOC4wMyAwIDAgMCAwIDExLjNMNzA0IDU5MS43YzEuNiAxLjYgMy42IDIuMyA1LjcgMi4zIDIgMCA0LjEtLjggNS43LTIuM2wxMDEuOS0xMDEuOWM2OC45LTY5IDc3LTE3NS43IDI0LjMtMjUzLjVsNzYuMS03Ni4xYzMuMS0zLjIgMy4xLTguMyAwLTExLjR6TTc2OS4xIDQ0MS43bC01OS40IDU5LjQtMTg2LjgtMTg2LjggNTkuNC01OS40YzI0LjktMjQuOSA1OC4xLTM4LjcgOTMuNC0zOC43czY4LjQgMTMuNyA5My40IDM4LjdjMjQuOSAyNC45IDM4LjcgNTguMSAzOC43IDkzLjRzLTEzLjggNjguNC0zOC43IDkzLjR6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkFwcHN0b3JlVHdvVG9uZSA9IGdldEljb24oJ2FwcHN0b3JlJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004NjQgMTQ0SDU2MGMtOC44IDAtMTYgNy4yLTE2IDE2djMwNGMwIDguOCA3LjIgMTYgMTYgMTZoMzA0YzguOCAwIDE2LTcuMiAxNi0xNlYxNjBjMC04LjgtNy4yLTE2LTE2LTE2em0tNTIgMjY4SDYxMlYyMTJoMjAwdjIwMHpNNDY0IDU0NEgxNjBjLTguOCAwLTE2IDcuMi0xNiAxNnYzMDRjMCA4LjggNy4yIDE2IDE2IDE2aDMwNGM4LjggMCAxNi03LjIgMTYtMTZWNTYwYzAtOC44LTcuMi0xNi0xNi0xNnptLTUyIDI2OEgyMTJWNjEyaDIwMHYyMDB6bTUyLTY2OEgxNjBjLTguOCAwLTE2IDcuMi0xNiAxNnYzMDRjMCA4LjggNy4yIDE2IDE2IDE2aDMwNGM4LjggMCAxNi03LjIgMTYtMTZWMTYwYzAtOC44LTcuMi0xNi0xNi0xNnptLTUyIDI2OEgyMTJWMjEyaDIwMHYyMDB6bTQ1MiAxMzJINTYwYy04LjggMC0xNiA3LjItMTYgMTZ2MzA0YzAgOC44IDcuMiAxNiAxNiAxNmgzMDRjOC44IDAgMTYtNy4yIDE2LTE2VjU2MGMwLTguOC03LjItMTYtMTYtMTZ6bS01MiAyNjhINjEyVjYxMmgyMDB2MjAweidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTIxMiAyMTJoMjAwdjIwMEgyMTJ6bTQwMCAwaDIwMHYyMDBINjEyek0yMTIgNjEyaDIwMHYyMDBIMjEyem00MDAgMGgyMDB2MjAwSDYxMnonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuQmFua1R3b1RvbmUgPSBnZXRJY29uKCdiYW5rJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbc2Vjb25kYXJ5Q29sb3IsICdNMjQwLjkgMzkzLjloNTQyLjJMNTEyIDE5Ni43eiddLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004OTQgNDYyYzMwLjkgMCA0My44LTM5LjcgMTguNy01OEw1MzAuOCAxMjYuMmEzMS44MSAzMS44MSAwIDAgMC0zNy42IDBMMTExLjMgNDA0Yy0yNS4xIDE4LjItMTIuMiA1OCAxOC44IDU4SDE5MnYzNzRoLTcyYy00LjQgMC04IDMuNi04IDh2NTJjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTUyYzAtNC40LTMuNi04LTgtOGgtNzJWNDYyaDYyek0zODEgODM2SDI2NFY0NjJoMTE3djM3NHptMTg5IDBINDUzVjQ2MmgxMTd2Mzc0em0xOTAgMEg2NDJWNDYyaDExOHYzNzR6TTI0MC45IDM5My45TDUxMiAxOTYuN2wyNzEuMSAxOTcuMkgyNDAuOXonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuQXVkaW9Ud29Ub25lID0gZ2V0SWNvbignYXVkaW8nLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDU1MmM1NC4zIDAgOTgtNDMuMiA5OC05NlYyMzJjMC01Mi44LTQzLjctOTYtOTgtOTZzLTk4IDQzLjItOTggOTZ2MjI0YzAgNTIuOCA0My43IDk2IDk4IDk2eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004NDIgNDU0YzAtNC40LTMuNi04LTgtOGgtNjBjLTQuNCAwLTggMy42LTggOCAwIDE0MC4zLTExMy43IDI1NC0yNTQgMjU0UzI1OCA1OTQuMyAyNTggNDU0YzAtNC40LTMuNi04LTgtOGgtNjBjLTQuNCAwLTggMy42LTggOCAwIDE2OC43IDEyNi42IDMwNy45IDI5MCAzMjcuNlY4ODRIMzI2LjdjLTEzLjcgMC0yNC43IDE0LjMtMjQuNyAzMnYzNmMwIDQuNCAyLjggOCA2LjIgOGg0MDcuNmMzLjQgMCA2LjItMy42IDYuMi04di0zNmMwLTE3LjctMTEtMzItMjQuNy0zMkg1NDhWNzgyLjFjMTY1LjMtMTggMjk0LTE1OCAyOTQtMzI4LjF6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTUxMiA2MjRjOTMuOSAwIDE3MC03NS4yIDE3MC0xNjhWMjMyYzAtOTIuOC03Ni4xLTE2OC0xNzAtMTY4cy0xNzAgNzUuMi0xNzAgMTY4djIyNGMwIDkyLjggNzYuMSAxNjggMTcwIDE2OHptLTk4LTM5MmMwLTUyLjggNDMuNy05NiA5OC05NnM5OCA0My4yIDk4IDk2djIyNGMwIDUyLjgtNDMuNyA5Ni05OCA5NnMtOTgtNDMuMi05OC05NlYyMzJ6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkJlbGxUd29Ub25lID0gZ2V0SWNvbignYmVsbCcsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ001MTIgMjIwYy01NS42IDAtMTA3LjggMjEuNi0xNDcuMSA2MC45UzMwNCAzNzIuNCAzMDQgNDI4djM0MGg0MTZWNDI4YzAtNTUuNi0yMS42LTEwNy44LTYwLjktMTQ3LjFTNTY3LjYgMjIwIDUxMiAyMjB6bTI4MCAyMDhjMC0xNDEuMS0xMDQuMy0yNTcuOC0yNDAtMjc3LjJ2LjFjMTM1LjcgMTkuNCAyNDAgMTM2IDI0MCAyNzcuMXpNNDcyIDE1MC45di0uMUMzMzYuMyAxNzAuMiAyMzIgMjg2LjkgMjMyIDQyOGMwLTE0MS4xIDEwNC4zLTI1Ny43IDI0MC0yNzcuMXonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODE2IDc2OGgtMjRWNDI4YzAtMTQxLjEtMTA0LjMtMjU3LjctMjQwLTI3Ny4xVjExMmMwLTIyLjEtMTcuOS00MC00MC00MHMtNDAgMTcuOS00MCA0MHYzOC45Yy0xMzUuNyAxOS40LTI0MCAxMzYtMjQwIDI3Ny4xdjM0MGgtMjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjMyYzAgNC40IDMuNiA4IDggOGgyMTZjMCA2MS44IDUwLjIgMTEyIDExMiAxMTJzMTEyLTUwLjIgMTEyLTExMmgyMTZjNC40IDAgOC0zLjYgOC04di0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNTEyIDg4OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhoOTZjMCAyNi41LTIxLjUgNDgtNDggNDh6bTIwOC0xMjBIMzA0VjQyOGMwLTU1LjYgMjEuNi0xMDcuOCA2MC45LTE0Ny4xUzQ1Ni40IDIyMCA1MTIgMjIwYzU1LjYgMCAxMDcuOCAyMS42IDE0Ny4xIDYwLjlTNzIwIDM3Mi40IDcyMCA0Mjh2MzQweidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5Cb29rVHdvVG9uZSA9IGdldEljb24oJ2Jvb2snLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTgzMiA2NEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS0yNjAgNzJoOTZ2MjA5LjlMNjIxLjUgMzEyIDU3MiAzNDcuNFYxMzZ6TTIzMiA4ODhWMTM2aDI4MHYyOTYuOWMwIDMuMyAxIDYuNiAzIDkuM2ExNS45IDE1LjkgMCAwIDAgMjIuMyAzLjdsODMuOC01OS45IDgxLjQgNTkuNGMyLjcgMiA2IDMuMSA5LjQgMy4xIDguOCAwIDE2LTcuMiAxNi0xNlYxMzZoNjR2NzUySDIzMnonXG4gICAgXSwgW3NlY29uZGFyeUNvbG9yLCAnTTY2OCAzNDUuOVYxMzZoLTk2djIxMS40bDQ5LjUtMzUuNHonXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ003MjcuOSAxMzZ2Mjk2LjVjMCA4LjgtNy4yIDE2LTE2IDE2LTMuNCAwLTYuNy0xLjEtOS40LTMuMUw2MjEuMSAzODZsLTgzLjggNTkuOWExNS45IDE1LjkgMCAwIDEtMjIuMy0zLjdjLTItMi43LTMtNi0zLTkuM1YxMzZIMjMydjc1Mmg1NTkuOVYxMzZoLTY0eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5Cb3hQbG90VHdvVG9uZSA9IGdldEljb24oJ2JveC1wbG90JywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbc2Vjb25kYXJ5Q29sb3IsICdNMjk2IDM2OGg4OHYyODhoLTg4em0xNTIgMGgyODB2Mjg4SDQ0OHonXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNOTUyIDIyNGgtNTJjLTQuNCAwLTggMy42LTggOHYyNDhoLTkyVjMwNGMwLTQuNC0zLjYtOC04LThIMjMyYy00LjQgMC04IDMuNi04IDh2MTc2aC05MlYyMzJjMC00LjQtMy42LTgtOC04SDcyYy00LjQgMC04IDMuNi04IDh2NTYwYzAgNC40IDMuNiA4IDggOGg1MmM0LjQgMCA4LTMuNiA4LThWNTQ4aDkydjE3MmMwIDQuNCAzLjYgOCA4IDhoNTYwYzQuNCAwIDgtMy42IDgtOFY1NDhoOTJ2MjQ0YzAgNC40IDMuNiA4IDggOGg1MmM0LjQgMCA4LTMuNiA4LThWMjMyYzAtNC40LTMuNi04LTgtOHpNMzg0IDY1NmgtODhWMzY4aDg4djI4OHptMzQ0IDBINDQ4VjM2OGgyODB2Mjg4eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5CdWdUd29Ub25lID0gZ2V0SWNvbignYnVnJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ00zMDggNDEydjI2OGMwIDM2Ljc4IDkuNjggNzEuOTYgMjcuOCAxMDIuOWEyMDUuMzkgMjA1LjM5IDAgMCAwIDczLjMgNzMuM0EyMDIuNjggMjAyLjY4IDAgMCAwIDUxMiA4ODRjMzYuNzggMCA3MS45Ni05LjY4IDEwMi45LTI3LjhhMjA1LjM5IDIwNS4zOSAwIDAgMCA3My4zLTczLjNBMjAyLjY4IDIwMi42OCAwIDAgMCA3MTYgNjgwVjQxMkgzMDh6bTQ4NCAxNzJ2OTZjMCA2LjUtLjIyIDEyLjk1LS42NiAxOS4zNUM4NTkuOTQgNzI4LjY0IDkwOCA3OTYuNyA5MDggODc2YTggOCAwIDAgMS04IDhoLTU2YTggOCAwIDAgMS04LThjMC00NC4yNC0yMy45NC04Mi44OS01OS41Ny0xMDMuN2EyNzguNjMgMjc4LjYzIDAgMCAxLTIyLjY2IDQ5LjAyIDI4MS4zOSAyODEuMzkgMCAwIDEtMTAwLjQ1IDEwMC40NUM2MTEuODQgOTQ2LjA3IDU2My41NSA5NjAgNTEyIDk2MHMtOTkuODQtMTMuOTMtMTQxLjMyLTM4LjIzYTI4MS4zOSAyODEuMzkgMCAwIDEtMTAwLjQ1LTEwMC40NSAyNzguNjMgMjc4LjYzIDAgMCAxLTIyLjY2LTQ5LjAyQTExOS45NSAxMTkuOTUgMCAwIDAgMTg4IDg3NmE4IDggMCAwIDEtOCA4aC01NmE4IDggMCAwIDEtOC04YzAtNzkuMyA0OC4wNy0xNDcuMzYgMTE2LjY2LTE3Ni42NUEyODQuMTIgMjg0LjEyIDAgMCAxIDIzMiA2ODB2LTk2SDg0YTggOCAwIDAgMS04LTh2LTU2YTggOCAwIDAgMSA4LThoMTQ4VjQxMmMtNzYuNzcgMC0xMzktNjIuMjMtMTM5LTEzOWE4IDggMCAwIDEgOC04aDYwYTggOCAwIDAgMSA4IDggNjMgNjMgMCAwIDAgNjMgNjNoNTYwYTYzIDYzIDAgMCAwIDYzLTYzIDggOCAwIDAgMSA4LThoNjBhOCA4IDAgMCAxIDggOGMwIDc2Ljc3LTYyLjIzIDEzOS0xMzkgMTM5djEwMGgxNDhhOCA4IDAgMCAxIDggOHY1NmE4IDggMCAwIDEtOCA4SDc5MnpNMzY4IDI3MmE4IDggMCAwIDEtOCA4aC01NmE4IDggMCAwIDEtOC04YzAtNDAuMDQgOC43OC03Ni43NSAyNS45LTEwOC4wN2ExODQuNTcgMTg0LjU3IDAgMCAxIDc0LjAzLTc0LjAzQzQyNy4yNSA3Mi43OCA0NjMuOTYgNjQgNTA0IDY0aDE2YzQwLjA0IDAgNzYuNzUgOC43OCAxMDguMDcgMjUuOWExODQuNTcgMTg0LjU3IDAgMCAxIDc0LjAzIDc0LjAzQzcxOS4yMiAxOTUuMjUgNzI4IDIzMS45NiA3MjggMjcyYTggOCAwIDAgMS04IDhoLTU2YTggOCAwIDAgMS04LThjMC0yOC4zMy01Ljk0LTUzLjE1LTE3LjA4LTczLjUzYTExMi41NiAxMTIuNTYgMCAwIDAtNDUuMzktNDUuNEM1NzMuMTUgMTQxLjk1IDU0OC4zMyAxMzYgNTIwIDEzNmgtMTZjLTI4LjMzIDAtNTMuMTUgNS45NC03My41MyAxNy4wOGExMTIuNTYgMTEyLjU2IDAgMCAwLTQ1LjQgNDUuMzlDMzczLjk1IDIxOC44NSAzNjggMjQzLjY3IDM2OCAyNzJ6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMzA4IDQxMnYyNjhjMCAzNi43OCA5LjY4IDcxLjk2IDI3LjggMTAyLjlhMjA1LjM5IDIwNS4zOSAwIDAgMCA3My4zIDczLjNBMjAyLjY4IDIwMi42OCAwIDAgMCA1MTIgODg0YzM2Ljc4IDAgNzEuOTYtOS42OCAxMDIuOS0yNy44YTIwNS4zOSAyMDUuMzkgMCAwIDAgNzMuMy03My4zQTIwMi42OCAyMDIuNjggMCAwIDAgNzE2IDY4MFY0MTJIMzA4eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5CdWxiVHdvVG9uZSA9IGdldEljb24oJ2J1bGInLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDEzNmMtMTQxLjQgMC0yNTYgMTE0LjYtMjU2IDI1NiAwIDkyLjUgNDkuNCAxNzYuMyAxMjguMSAyMjEuOGwzNS45IDIwLjhWNzUyaDE4NFY2MzQuNmwzNS45LTIwLjhDNzE4LjYgNTY4LjMgNzY4IDQ4NC41IDc2OCAzOTJjMC0xNDEuNC0xMTQuNi0yNTYtMjU2LTI1NnonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNjMyIDg4OEgzOTJjLTQuNCAwLTggMy42LTggOHYzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmgxOTJjMTcuNyAwIDMyLTE0LjMgMzItMzJ2LTMyYzAtNC40LTMuNi04LTgtOHpNNTEyIDY0Yy0xODEuMSAwLTMyOCAxNDYuOS0zMjggMzI4IDAgMTIxLjQgNjYgMjI3LjQgMTY0IDI4NC4xVjc5MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmgyNjRjMTcuNyAwIDMyLTE0LjMgMzItMzJWNjc2LjFjOTgtNTYuNyAxNjQtMTYyLjcgMTY0LTI4NC4xIDAtMTgxLjEtMTQ2LjktMzI4LTMyOC0zMjh6bTEyNy45IDU0OS44TDYwNCA2MzQuNlY3NTJINDIwVjYzNC42bC0zNS45LTIwLjhDMzA1LjQgNTY4LjMgMjU2IDQ4NC41IDI1NiAzOTJjMC0xNDEuNCAxMTQuNi0yNTYgMjU2LTI1NnMyNTYgMTE0LjYgMjU2IDI1NmMwIDkyLjUtNDkuNCAxNzYuMy0xMjguMSAyMjEuOHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuQ2FsY3VsYXRvclR3b1RvbmUgPSBnZXRJY29uKCdjYWxjdWxhdG9yJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2eidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTE4NCA4NDBoNjU2VjE4NEgxODR2NjU2em0yNTYuMi03NWgtNTAuOGMtMi4yIDAtNC41LTEuMS01LjktMi45TDM0OCA3MTguNmwtMzUuNSA0My41YTcuMzggNy4zOCAwIDAgMS01LjkgMi45aC01MC44Yy02LjYgMC0xMC4yLTcuOS01LjgtMTMuMWw2Mi43LTc2LjgtNjEuMi03NC45Yy00LjMtNS4yLS43LTEzLjEgNS45LTEzLjFoNTAuOWMyLjIgMCA0LjUgMS4xIDUuOSAyLjlsMzQgNDEuNiAzNC00MS42YzEuNS0xLjkgMy42LTIuOSA1LjktMi45aDUwLjhjNi42IDAgMTAuMiA3LjkgNS45IDEzLjFMMzgzLjUgNjc1bDYyLjcgNzYuOGM0LjIgNS4zLjYgMTMuMi02IDEzLjJ6TTU3NiAzMzVjMC0yLjIgMS40LTQgMy4yLTRoMTkzLjVjMS45IDAgMy4zIDEuOCAzLjMgNHY0OGMwIDIuMi0xLjQgNC0zLjIgNEg1NzkuMmMtMS44IDAtMy4yLTEuOC0zLjItNHYtNDh6bTAgMjY1YzAtMi4yIDEuNC00IDMuMi00aDE5My41YzEuOSAwIDMuMyAxLjggMy4zIDR2NDhjMCAyLjItMS40IDQtMy4yIDRINTc5LjJjLTEuOCAwLTMuMi0xLjgtMy4yLTR2LTQ4em0wIDEwNGMwLTIuMiAxLjQtNCAzLjItNGgxOTMuNWMxLjkgMCAzLjMgMS44IDMuMyA0djQ4YzAgMi4yLTEuNCA0LTMuMiA0SDU3OS4yYy0xLjggMC0zLjItMS44LTMuMi00di00OHpNMjQ4IDMzNWMwLTIuMiAxLjQtNCAzLjItNEgzMjB2LTY4LjhjMC0xLjggMS44LTMuMiA0LTMuMmg0OGMyLjIgMCA0IDEuNCA0IDMuMlYzMzFoNjguN2MxLjkgMCAzLjMgMS44IDMuMyA0djQ4YzAgMi4yLTEuNCA0LTMuMiA0SDM3NnY2OC43YzAgMS45LTEuOCAzLjMtNCAzLjNoLTQ4Yy0yLjIgMC00LTEuNC00LTMuMlYzODdoLTY4LjhjLTEuOCAwLTMuMi0xLjgtMy4yLTR2LTQ4eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ00zODMuNSA2NzVsNjEuMy03NC44YzQuMy01LjIuNy0xMy4xLTUuOS0xMy4xaC01MC44Yy0yLjMgMC00LjQgMS01LjkgMi45bC0zNCA0MS42LTM0LTQxLjZhNy42OSA3LjY5IDAgMCAwLTUuOS0yLjloLTUwLjljLTYuNiAwLTEwLjIgNy45LTUuOSAxMy4xbDYxLjIgNzQuOS02Mi43IDc2LjhjLTQuNCA1LjItLjggMTMuMSA1LjggMTMuMWg1MC44YzIuMyAwIDQuNC0xIDUuOS0yLjlsMzUuNS00My41IDM1LjUgNDMuNWMxLjQgMS44IDMuNyAyLjkgNS45IDIuOWg1MC44YzYuNiAwIDEwLjItNy45IDYtMTMuMkwzODMuNSA2NzV6TTI1MS4yIDM4N0gzMjB2NjguOGMwIDEuOCAxLjggMy4yIDQgMy4yaDQ4YzIuMiAwIDQtMS40IDQtMy4zVjM4N2g2OC44YzEuOCAwIDMuMi0xLjggMy4yLTR2LTQ4YzAtMi4yLTEuNC00LTMuMy00SDM3NnYtNjguOGMwLTEuOC0xLjgtMy4yLTQtMy4yaC00OGMtMi4yIDAtNCAxLjQtNCAzLjJWMzMxaC02OC44Yy0xLjggMC0zLjIgMS44LTMuMiA0djQ4YzAgMi4yIDEuNCA0IDMuMiA0em0zMjggMzY5aDE5My42YzEuOCAwIDMuMi0xLjggMy4yLTR2LTQ4YzAtMi4yLTEuNC00LTMuMy00SDU3OS4yYy0xLjggMC0zLjIgMS44LTMuMiA0djQ4YzAgMi4yIDEuNCA0IDMuMiA0em0wLTEwNGgxOTMuNmMxLjggMCAzLjItMS44IDMuMi00di00OGMwLTIuMi0xLjQtNC0zLjMtNEg1NzkuMmMtMS44IDAtMy4yIDEuOC0zLjIgNHY0OGMwIDIuMiAxLjQgNCAzLjIgNHptMC0yNjVoMTkzLjZjMS44IDAgMy4yLTEuOCAzLjItNHYtNDhjMC0yLjItMS40LTQtMy4zLTRINTc5LjJjLTEuOCAwLTMuMiAxLjgtMy4yIDR2NDhjMCAyLjIgMS40IDQgMy4yIDR6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkJ1aWxkVHdvVG9uZSA9IGdldEljb24oJ2J1aWxkJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbc2Vjb25kYXJ5Q29sb3IsICdNMTQ0IDU0NmgyMDB2MjAwSDE0NHptMjY4LTI2OGgyMDB2MjAwSDQxMnonXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNOTE2IDIxMEgzNzZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjIzNkgxMDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjI3MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg1NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWNTQ2aDIzNmMxNy43IDAgMzItMTQuMyAzMi0zMlYyNDJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTM0NCA3NDZIMTQ0VjU0NmgyMDB2MjAwem0yNjggMEg0MTJWNTQ2aDIwMHYyMDB6bTAtMjY4SDQxMlYyNzhoMjAwdjIwMHptMjY4IDBINjgwVjI3OGgyMDB2MjAweidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5DYWxlbmRhclR3b1RvbmUgPSBnZXRJY29uKCdjYWxlbmRhcicsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ003MTIgMzA0YzAgNC40LTMuNiA4LTggOGgtNTZjLTQuNCAwLTgtMy42LTgtOHYtNDhIMzg0djQ4YzAgNC40LTMuNiA4LTggOGgtNTZjLTQuNCAwLTgtMy42LTgtOHYtNDhIMTg0djEzNmg2NTZWMjU2SDcxMnY0OHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODgwIDE4NEg3MTJ2LTY0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2NEgzODR2LTY0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2NEgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjE2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNjU2SDE4NFY0NjBoNjU2djM4MHptMC00NDhIMTg0VjI1NmgxMjh2NDhjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNDhoMjU2djQ4YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTQ4aDEyOHYxMzZ6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkNhbWVyYVR3b1RvbmUgPSBnZXRJY29uKCdjYW1lcmEnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNODY0IDMyMEg2NzcuMmwtMTcuMS00Ny44LTIyLjktNjQuMkgzODYuN2wtMjIuOSA2NC4yLTE3LjEgNDcuOEgxNjBjLTQuNCAwLTggMy42LTggOHY0NTZjMCA0LjQgMy42IDggOCA4aDcwNGM0LjQgMCA4LTMuNiA4LThWMzI4YzAtNC40LTMuNi04LTgtOHpNNTEyIDcwNGMtODguNCAwLTE2MC03MS42LTE2MC0xNjBzNzEuNi0xNjAgMTYwLTE2MCAxNjAgNzEuNiAxNjAgMTYwLTcxLjYgMTYwLTE2MCAxNjB6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTUxMiAzODRjLTg4LjQgMC0xNjAgNzEuNi0xNjAgMTYwczcxLjYgMTYwIDE2MCAxNjAgMTYwLTcxLjYgMTYwLTE2MC03MS42LTE2MC0xNjAtMTYwem0wIDI1NmMtNTMgMC05Ni00My05Ni05NnM0My05NiA5Ni05NiA5NiA0MyA5NiA5Ni00MyA5Ni05NiA5NnonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODY0IDI0OEg3MjhsLTMyLjQtOTAuOGEzMi4wNyAzMi4wNyAwIDAgMC0zMC4yLTIxLjJIMzU4LjZjLTEzLjUgMC0yNS42IDguNS0zMC4xIDIxLjJMMjk2IDI0OEgxNjBjLTQ0LjIgMC04MCAzNS44LTgwIDgwdjQ1NmMwIDQ0LjIgMzUuOCA4MCA4MCA4MGg3MDRjNDQuMiAwIDgwLTM1LjggODAtODBWMzI4YzAtNDQuMi0zNS44LTgwLTgwLTgwem04IDUzNmMwIDQuNC0zLjYgOC04IDhIMTYwYy00LjQgMC04LTMuNi04LThWMzI4YzAtNC40IDMuNi04IDgtOGgxODYuN2wxNy4xLTQ3LjggMjIuOS02NC4yaDI1MC41bDIyLjkgNjQuMiAxNy4xIDQ3LjhIODY0YzQuNCAwIDggMy42IDggOHY0NTZ6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkNhclR3b1RvbmUgPSBnZXRJY29uKCdjYXInLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMTk5LjYgNDc0TDE4NCA1MTd2MjM3aDY1NlY1MTdsLTE1LjYtNDNIMTk5LjZ6TTI2NCA2MjFjLTIyLjEgMC00MC0xNy45LTQwLTQwczE3LjktNDAgNDAtNDAgNDAgMTcuOSA0MCA0MC0xNy45IDQwLTQwIDQwem0zODggNzVjMCA0LjQtMy42IDgtOCA4SDM4MGMtNC40IDAtOC0zLjYtOC04di04NGMwLTQuNCAzLjYtOCA4LThoNDBjNC40IDAgOCAzLjYgOCA4djM2aDE2OHYtMzZjMC00LjQgMy42LTggOC04aDQwYzQuNCAwIDggMy42IDggOHY4NHptMTA4LTc1Yy0yMi4xIDAtNDAtMTcuOS00MC00MHMxNy45LTQwIDQwLTQwIDQwIDE3LjkgNDAgNDAtMTcuOSA0MC00MCA0MHonXG4gICAgXSwgW3ByaW1hcnlDb2xvciwgJ003MjAgNTgxYTQwIDQwIDAgMSAwIDgwIDAgNDAgNDAgMCAxIDAtODAgMHonXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNOTU5IDQxMy40TDkzNS4zIDM3MmE4IDggMCAwIDAtMTAuOS0yLjlsLTUwLjcgMjkuNi03OC4zLTIxNi4yYTYzLjkgNjMuOSAwIDAgMC02MC45LTQ0LjRIMzAxLjJjLTM0LjcgMC02NS41IDIyLjQtNzYuMiA1NS41bC03NC42IDIwNS4yLTUwLjgtMjkuNmE4IDggMCAwIDAtMTAuOSAyLjlMNjUgNDEzLjRjLTIuMiAzLjgtLjkgOC42IDIuOSAxMC44bDYwLjQgMzUuMi0xNC41IDQwYy0xLjIgMy4yLTEuOCA2LjYtMS44IDEwdjM0OC4yYzAgMTUuNyAxMS44IDI4LjQgMjYuMyAyOC40aDY3LjZjMTIuMyAwIDIzLTkuMyAyNS42LTIyLjNsNy43LTM3LjdoNTQ1LjZsNy43IDM3LjdjMi43IDEzIDEzLjMgMjIuMyAyNS42IDIyLjNoNjcuNmMxNC41IDAgMjYuMy0xMi43IDI2LjMtMjguNFY1MDkuNGMwLTMuNC0uNi02LjgtMS44LTEwbC0xNC41LTQwIDYwLjMtMzUuMmE4IDggMCAwIDAgMy0xMC44ek0yOTIuNyAyMTguMWwuNS0xLjMuNC0xLjNjMS4xLTMuMyA0LjEtNS41IDcuNi01LjVoNDI3LjZsNzUuNCAyMDhIMjIwbDcyLjctMTk5Ljl6TTg0MCA3NTRIMTg0VjUxN2wxNS42LTQzaDYyNC44bDE1LjYgNDN2MjM3eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ00yMjQgNTgxYTQwIDQwIDAgMSAwIDgwIDAgNDAgNDAgMCAxIDAtODAgMHptNDIwIDIzaC00MGMtNC40IDAtOCAzLjYtOCA4djM2SDQyOHYtMzZjMC00LjQtMy42LTgtOC04aC00MGMtNC40IDAtOCAzLjYtOCA4djg0YzAgNC40IDMuNiA4IDggOGgyNjRjNC40IDAgOC0zLjYgOC04di04NGMwLTQuNC0zLjYtOC04LTh6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkNhcnJ5T3V0VHdvVG9uZSA9IGdldEljb24oJ2NhcnJ5LW91dCcsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODgwIDE4NEg3MTJ2LTY0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2NEgzODR2LTY0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2NEgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjE2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNjU2SDE4NFYyNTZoMTI4djQ4YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTQ4aDI1NnY0OGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di00OGgxMjh2NTg0eidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTcxMiAzMDRjMCA0LjQtMy42IDgtOCA4aC01NmMtNC40IDAtOC0zLjYtOC04di00OEgzODR2NDhjMCA0LjQtMy42IDgtOCA4aC01NmMtNC40IDAtOC0zLjYtOC04di00OEgxODR2NTg0aDY1NlYyNTZINzEydjQ4em0tMTcuNSAxMjguOEw0ODEuOSA3MjUuNWExNi4xIDE2LjEgMCAwIDEtMjYgMGwtMTI2LjQtMTc0Yy0zLjgtNS4zIDAtMTIuNyA2LjUtMTIuN2g1NS4yYzUuMiAwIDEwIDIuNSAxMyA2LjZsNjQuNyA4OSAxNTAuOS0yMDcuOGMzLTQuMSA3LjktNi42IDEzLTYuNkg2ODhjNi41IDAgMTAuMyA3LjQgNi41IDEyLjh6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTY4OCA0MjBoLTU1LjJjLTUuMSAwLTEwIDIuNS0xMyA2LjZMNDY4LjkgNjM0LjRsLTY0LjctODljLTMtNC4xLTcuOC02LjYtMTMtNi42SDMzNmMtNi41IDAtMTAuMyA3LjQtNi41IDEyLjdsMTI2LjQgMTc0YTE2LjEgMTYuMSAwIDAgMCAyNiAwbDIxMi42LTI5Mi43YzMuOC01LjQgMC0xMi44LTYuNS0xMi44eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5DaGVja0NpcmNsZVR3b1RvbmUgPSBnZXRJY29uKCdjaGVjay1jaXJjbGUnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ001MTIgMTQwYy0yMDUuNCAwLTM3MiAxNjYuNi0zNzIgMzcyczE2Ni42IDM3MiAzNzIgMzcyIDM3Mi0xNjYuNiAzNzItMzcyLTE2Ni42LTM3Mi0zNzItMzcyem0xOTMuNCAyMjUuN2wtMjEwLjYgMjkyYTMxLjggMzEuOCAwIDAgMS01MS43IDBMMzE4LjUgNDg0LjljLTMuOC01LjMgMC0xMi43IDYuNS0xMi43aDQ2LjljMTAuMyAwIDE5LjkgNSAyNS45IDEzLjNsNzEuMiA5OC44IDE1Ny4yLTIxOGM2LTguNCAxNS43LTEzLjMgMjUuOS0xMy4zSDY5OWM2LjUgMCAxMC4zIDcuNCA2LjQgMTIuN3onXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNjk5IDM1M2gtNDYuOWMtMTAuMiAwLTE5LjkgNC45LTI1LjkgMTMuM0w0NjkgNTg0LjNsLTcxLjItOTguOGMtNi04LjMtMTUuNi0xMy4zLTI1LjktMTMuM0gzMjVjLTYuNSAwLTEwLjMgNy40LTYuNSAxMi43bDEyNC42IDE3Mi44YTMxLjggMzEuOCAwIDAgMCA1MS43IDBsMjEwLjYtMjkyYzMuOS01LjMuMS0xMi43LTYuNC0xMi43eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5DaGVja1NxdWFyZVR3b1RvbmUgPSBnZXRJY29uKCdjaGVjay1zcXVhcmUnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMTg0IDg0MGg2NTZWMTg0SDE4NHY2NTZ6bTEzMC0zNjcuOGg0Ni45YzEwLjIgMCAxOS45IDQuOSAyNS45IDEzLjNsNzEuMiA5OC44IDE1Ny4yLTIxOGM2LTguMyAxNS42LTEzLjMgMjUuOS0xMy4zSDY4OGM2LjUgMCAxMC4zIDcuNCA2LjUgMTIuN2wtMjEwLjYgMjkyYTMxLjggMzEuOCAwIDAgMS01MS43IDBMMzA3LjUgNDg0LjljLTMuOC01LjMgMC0xMi43IDYuNS0xMi43eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ000MzIuMiA2NTcuN2EzMS44IDMxLjggMCAwIDAgNTEuNyAwbDIxMC42LTI5MmMzLjgtNS4zIDAtMTIuNy02LjUtMTIuN2gtNDYuOWMtMTAuMyAwLTE5LjkgNS0yNS45IDEzLjNMNDU4IDU4NC4zbC03MS4yLTk4LjhjLTYtOC40LTE1LjctMTMuMy0yNS45LTEzLjNIMzE0Yy02LjUgMC0xMC4zIDcuNC02LjUgMTIuN2wxMjQuNyAxNzIuOHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuQ2xvY2tDaXJjbGVUd29Ub25lID0gZ2V0SWNvbignY2xvY2stY2lyY2xlJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDE0MGMtMjA1LjQgMC0zNzIgMTY2LjYtMzcyIDM3MnMxNjYuNiAzNzIgMzcyIDM3MiAzNzItMTY2LjYgMzcyLTM3Mi0xNjYuNi0zNzItMzcyLTM3MnptMTc2LjUgNTA5LjdsLTI4LjYgMzlhNy45OSA3Ljk5IDAgMCAxLTExLjIgMS43TDQ4My4zIDU2OS44YTcuOTIgNy45MiAwIDAgMS0zLjMtNi41VjI4OGMwLTQuNCAzLjYtOCA4LThoNDguMWM0LjQgMCA4IDMuNiA4IDh2MjQ3LjVsMTQyLjYgMTAzLjFjMy42IDIuNSA0LjQgNy41IDEuOCAxMS4xeidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ002ODYuNyA2MzguNkw1NDQuMSA1MzUuNVYyODhjMC00LjQtMy42LTgtOC04SDQ4OGMtNC40IDAtOCAzLjYtOCA4djI3NS4zYzAgMi42IDEuMiA1IDMuMyA2LjVsMTY1LjQgMTIwLjZjMy42IDIuNiA4LjYgMS45IDExLjItMS43bDI4LjYtMzljMi42LTMuNiAxLjgtOC42LTEuOC0xMS4xeidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5DbG9zZUNpcmNsZVR3b1RvbmUgPSBnZXRJY29uKCdjbG9zZS1jaXJjbGUnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ001MTIgMTQwYy0yMDUuNCAwLTM3MiAxNjYuNi0zNzIgMzcyczE2Ni42IDM3MiAzNzIgMzcyIDM3Mi0xNjYuNiAzNzItMzcyLTE2Ni42LTM3Mi0zNzItMzcyem0xNzEuOCA1MjcuMWMxLjIgMS41IDEuOSAzLjMgMS45IDUuMiAwIDQuNS0zLjYgOC04IDhsLTY2LS4zLTk5LjMtMTE4LjQtOTkuMyAxMTguNS02Ni4xLjNjLTQuNCAwLTgtMy42LTgtOCAwLTEuOS43LTMuNyAxLjktNS4yTDQ3MSA1MTIuM2wtMTMwLjEtMTU1YTguMzIgOC4zMiAwIDAgMS0xLjktNS4yYzAtNC41IDMuNi04IDgtOGw2Ni4xLjMgOTkuMyAxMTguNCA5OS40LTExOC41IDY2LS4zYzQuNCAwIDggMy42IDggOCAwIDEuOS0uNiAzLjgtMS44IDUuMmwtMTMwLjEgMTU1IDEyOS45IDE1NC45eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ002ODUuOCAzNTJjMC00LjQtMy42LTgtOC04bC02NiAuMy05OS40IDExOC41LTk5LjMtMTE4LjQtNjYuMS0uM2MtNC40IDAtOCAzLjUtOCA4IDAgMS45LjcgMy43IDEuOSA1LjJsMTMwLjEgMTU1LTEzMC4xIDE1NC45YTguMzIgOC4zMiAwIDAgMC0xLjkgNS4yYzAgNC40IDMuNiA4IDggOGw2Ni4xLS4zIDk5LjMtMTE4LjVMNjExLjcgNjgwbDY2IC4zYzQuNCAwIDgtMy41IDgtOCAwLTEuOS0uNy0zLjctMS45LTUuMkw1NTMuOSA1MTIuMmwxMzAuMS0xNTVjMS4yLTEuNCAxLjgtMy4zIDEuOC01LjJ6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkNsb3VkVHdvVG9uZSA9IGdldEljb24oJ2Nsb3VkJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTc5MS45IDQ5MmwtMzcuOC0xMC0xMy44LTM2LjVjLTguNi0yMi43LTIwLjYtNDQuMS0zNS43LTYzLjRhMjQ1LjczIDI0NS43MyAwIDAgMC01Mi40LTQ5LjljLTQxLjEtMjguOS04OS41LTQ0LjItMTQwLTQ0LjJzLTk4LjkgMTUuMy0xNDAgNDQuMmEyNDUuNiAyNDUuNiAwIDAgMC01Mi40IDQ5LjkgMjQwLjQ3IDI0MC40NyAwIDAgMC0zNS43IDYzLjRsLTEzLjkgMzYuNi0zNy45IDkuOWExMjUuNyAxMjUuNyAwIDAgMC02Ni4xIDQzLjdBMTIzLjEgMTIzLjEgMCAwIDAgMTQwIDYxMmMwIDMzLjEgMTIuOSA2NC4zIDM2LjMgODcuNyAyMy40IDIzLjQgNTQuNSAzNi4zIDg3LjYgMzYuM2g0OTYuMmMzMy4xIDAgNjQuMi0xMi45IDg3LjYtMzYuM0ExMjMuMyAxMjMuMyAwIDAgMCA4ODQgNjEyYzAtNTYuMi0zNy44LTEwNS41LTkyLjEtMTIweidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004MTEuNCA0MTguN0M3NjUuNiAyOTcuOSA2NDguOSAyMTIgNTEyLjIgMjEyUzI1OC44IDI5Ny44IDIxMyA0MTguNkMxMjcuMyA0NDEuMSA2NCA1MTkuMSA2NCA2MTJjMCAxMTAuNSA4OS41IDIwMCAxOTkuOSAyMDBoNDk2LjJDODcwLjUgODEyIDk2MCA3MjIuNSA5NjAgNjEyYzAtOTIuNy02My4xLTE3MC43LTE0OC42LTE5My4zem0zNi4zIDI4MWExMjMuMDcgMTIzLjA3IDAgMCAxLTg3LjYgMzYuM0gyNjMuOWMtMzMuMSAwLTY0LjItMTIuOS04Ny42LTM2LjNBMTIzLjMgMTIzLjMgMCAwIDEgMTQwIDYxMmMwLTI4IDkuMS01NC4zIDI2LjItNzYuM2ExMjUuNyAxMjUuNyAwIDAgMSA2Ni4xLTQzLjdsMzcuOS05LjkgMTMuOS0zNi42YzguNi0yMi44IDIwLjYtNDQuMSAzNS43LTYzLjRhMjQ1LjYgMjQ1LjYgMCAwIDEgNTIuNC00OS45YzQxLjEtMjguOSA4OS41LTQ0LjIgMTQwLTQ0LjJzOTguOSAxNS4zIDE0MCA0NC4yYzE5LjkgMTQgMzcuNSAzMC44IDUyLjQgNDkuOSAxNS4xIDE5LjMgMjcuMSA0MC43IDM1LjcgNjMuNGwxMy44IDM2LjUgMzcuOCAxMGM1NC4zIDE0LjUgOTIuMSA2My44IDkyLjEgMTIwIDAgMzMuMS0xMi45IDY0LjMtMzYuMyA4Ny43eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5DbG9zZVNxdWFyZVR3b1RvbmUgPSBnZXRJY29uKCdjbG9zZS1zcXVhcmUnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMTg0IDg0MGg2NTZWMTg0SDE4NHY2NTZ6bTE2My45LTQ3My45QTcuOTUgNy45NSAwIDAgMSAzNTQgMzUzaDU4LjljNC43IDAgOS4yIDIuMSAxMi4zIDUuN0w1MTIgNDYyLjJsODYuOC0xMDMuNWMzLTMuNiA3LjUtNS43IDEyLjMtNS43SDY3MGM2LjggMCAxMC41IDcuOSA2LjEgMTMuMUw1NTMuOCA1MTJsMTIyLjMgMTQ1LjljNC40IDUuMi43IDEzLjEtNi4xIDEzLjFoLTU4LjljLTQuNyAwLTkuMi0yLjEtMTIuMy01LjdMNTEyIDU2MS44bC04Ni44IDEwMy41Yy0zIDMuNi03LjUgNS43LTEyLjMgNS43SDM1NGMtNi44IDAtMTAuNS03LjktNi4xLTEzLjFMNDcwLjIgNTEyIDM0Ny45IDM2Ni4xeidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ00zNTQgNjcxaDU4LjljNC44IDAgOS4zLTIuMSAxMi4zLTUuN0w1MTIgNTYxLjhsODYuOCAxMDMuNWMzLjEgMy42IDcuNiA1LjcgMTIuMyA1LjdINjcwYzYuOCAwIDEwLjUtNy45IDYuMS0xMy4xTDU1My44IDUxMmwxMjIuMy0xNDUuOWM0LjQtNS4yLjctMTMuMS02LjEtMTMuMWgtNTguOWMtNC44IDAtOS4zIDIuMS0xMi4zIDUuN0w1MTIgNDYyLjJsLTg2LjgtMTAzLjVjLTMuMS0zLjYtNy42LTUuNy0xMi4zLTUuN0gzNTRjLTYuOCAwLTEwLjUgNy45LTYuMSAxMy4xTDQ3MC4yIDUxMiAzNDcuOSA2NTcuOUE3Ljk1IDcuOTUgMCAwIDAgMzU0IDY3MXonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuQ29kZVR3b1RvbmUgPSBnZXRJY29uKCdjb2RlJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2eidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTE4NCA4NDBoNjU2VjE4NEgxODR2NjU2em0zMzkuNS0yMjNoMTg1YzQuMSAwIDcuNSAzLjYgNy41IDh2NDhjMCA0LjQtMy40IDgtNy41IDhoLTE4NWMtNC4xIDAtNy41LTMuNi03LjUtOHYtNDhjMC00LjQgMy40LTggNy41LTh6TTMwOCA2MTAuM2MwLTIuMyAxLjEtNC42IDIuOS02LjFMNDIwLjcgNTEybC0xMDkuOC05Mi4yYTcuNjMgNy42MyAwIDAgMS0yLjktNi4xVjM1MWMwLTYuOCA3LjktMTAuNSAxMy4xLTYuMWwxOTIgMTYwLjljMy45IDMuMiAzLjkgOS4xIDAgMTIuM2wtMTkyIDE2MWMtNS4yIDQuNC0xMy4xLjctMTMuMS02LjF2LTYyLjd6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTMyMS4xIDY3OS4xbDE5Mi0xNjFjMy45LTMuMiAzLjktOS4xIDAtMTIuM2wtMTkyLTE2MC45QTcuOTUgNy45NSAwIDAgMCAzMDggMzUxdjYyLjdjMCAyLjQgMSA0LjYgMi45IDYuMUw0MjAuNyA1MTJsLTEwOS44IDkyLjJhOC4xIDguMSAwIDAgMC0yLjkgNi4xVjY3M2MwIDYuOCA3LjkgMTAuNSAxMy4xIDYuMXpNNTE2IDY3M2MwIDQuNCAzLjQgOCA3LjUgOGgxODVjNC4xIDAgNy41LTMuNiA3LjUtOHYtNDhjMC00LjQtMy40LTgtNy41LThoLTE4NWMtNC4xIDAtNy41IDMuNi03LjUgOHY0OHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuQ29tcGFzc1R3b1RvbmUgPSBnZXRJY29uKCdjb21wYXNzJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTUxMiAxNDBjLTIwNS40IDAtMzcyIDE2Ni42LTM3MiAzNzJzMTY2LjYgMzcyIDM3MiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzItMTY2LjYtMzcyLTM3Mi0zNzJ6TTMyNy42IDcwMS43Yy0yIC45LTQuNCAwLTUuMy0yLjEtLjQtMS0uNC0yLjIgMC0zLjJMNDIxIDQ3MC45IDU1My4xIDYwM2wtMjI1LjUgOTguN3ptMzc1LjEtMzc1LjFMNjA0IDU1Mi4xIDQ3MS45IDQyMGwyMjUuNS05OC43YzItLjkgNC40IDAgNS4zIDIuMS40IDEgLjQgMi4xIDAgMy4yeidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ00zMjIuMyA2OTYuNGMtLjQgMS0uNCAyLjIgMCAzLjIuOSAyLjEgMy4zIDMgNS4zIDIuMUw1NTMuMSA2MDMgNDIxIDQ3MC45bC05OC43IDIyNS41em0zNzUuMS0zNzUuMUw0NzEuOSA0MjAgNjA0IDU1Mi4xbDk4LjctMjI1LjVjLjQtMS4xLjQtMi4yIDAtMy4yLS45LTIuMS0zLjMtMy01LjMtMi4xeidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkNvbnRhY3RzVHdvVG9uZSA9IGdldEljb24oJ2NvbnRhY3RzJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTQ2MC4zIDUyNmE1MS43IDUyIDAgMSAwIDEwMy40IDAgNTEuNyA1MiAwIDEgMC0xMDMuNCAweidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTc2OCAzNTJjMCA0LjQtMy42IDgtOCA4aC01NmMtNC40IDAtOC0zLjYtOC04di01Nkg1NDh2NTZjMCA0LjQtMy42IDgtOCA4aC01NmMtNC40IDAtOC0zLjYtOC04di01NkgzMjh2NTZjMCA0LjQtMy42IDgtOCA4aC01NmMtNC40IDAtOC0zLjYtOC04di01NkgxMzZ2NDk2aDc1MlYyOTZINzY4djU2ek02NjEgNzM2aC00My44Yy00LjIgMC03LjYtMy4zLTcuOS03LjUtMy44LTUwLjUtNDYtOTAuNS05Ny4yLTkwLjVzLTkzLjQgMzkuOS05Ny4yIDkwLjVjLS4zIDQuMi0zLjcgNy41LTcuOSA3LjVoLTQzLjlhOCA4IDAgMCAxLTgtOC40YzIuOC01My4zIDMxLjktOTkuNiA3NC42LTEyNi4xLTE4LjEtMjAtMjkuMS00Ni40LTI5LjEtNzUuNSAwLTYxLjkgNDkuOS0xMTIgMTExLjQtMTEyczExMS40IDUwLjEgMTExLjQgMTEyYzAgMjkuMS0xMSA1NS42LTI5LjEgNzUuNSA0Mi43IDI2LjQgNzEuOSA3Mi44IDc0LjcgMTI2LjFhOCA4IDAgMCAxLTggOC40eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ001OTQuMyA2MDEuNWExMTEuOCAxMTEuOCAwIDAgMCAyOS4xLTc1LjVjMC02MS45LTQ5LjktMTEyLTExMS40LTExMnMtMTExLjQgNTAuMS0xMTEuNCAxMTJjMCAyOS4xIDExIDU1LjUgMjkuMSA3NS41YTE1OC4wOSAxNTguMDkgMCAwIDAtNzQuNiAxMjYuMSA4IDggMCAwIDAgOCA4LjRINDA3YzQuMiAwIDcuNi0zLjMgNy45LTcuNSAzLjgtNTAuNiA0Ni05MC41IDk3LjItOTAuNXM5My40IDQwIDk3LjIgOTAuNWMuMyA0LjIgMy43IDcuNSA3LjkgNy41SDY2MWE4IDggMCAwIDAgOC04LjRjLTIuOC01My4zLTMyLTk5LjctNzQuNy0xMjYuMXpNNTEyIDU3OGMtMjguNSAwLTUxLjctMjMuMy01MS43LTUyczIzLjItNTIgNTEuNy01MiA1MS43IDIzLjMgNTEuNyA1Mi0yMy4yIDUyLTUxLjcgNTJ6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTkyOCAyMjRINzY4di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZINTQ4di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZIMzI4di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjU3NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg4MzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjU2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNTY4SDEzNlYyOTZoMTIwdjU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2aDE0OHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmgxNDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZoMTIwdjQ5NnonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuQ29udGFpbmVyVHdvVG9uZSA9IGdldEljb24oJ2NvbnRhaW5lcicsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ002MzUgNzcxLjdjLTM0LjUgMjguNi03OC4yIDQ0LjMtMTIzIDQ0LjNzLTg4LjUtMTUuOC0xMjMtNDQuM2ExOTQuMDIgMTk0LjAyIDAgMCAxLTU5LjEtODQuN0gyMzJ2MjAxaDU2MFY2ODdoLTk3LjljLTExLjYgMzIuOC0zMiA2Mi4zLTU5LjEgODQuN3onXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNMzIwIDUwMWgzODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThIMzIwYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004MzIgNjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgODI0SDIzMlY2ODdoOTcuOWMxMS42IDMyLjggMzIgNjIuMyA1OS4xIDg0LjcgMzQuNSAyOC41IDc4LjIgNDQuMyAxMjMgNDQuM3M4OC41LTE1LjcgMTIzLTQ0LjNjMjcuMS0yMi40IDQ3LjUtNTEuOSA1OS4xLTg0LjdINzkydjIwMXptMC0yNjRINjQzLjZsLTUuMiAyNC43QzYyNi40IDcwOC41IDU3My4yIDc1MiA1MTIgNzUycy0xMTQuNC00My41LTEyNi41LTEwMy4zbC01LjItMjQuN0gyMzJWMTM2aDU2MHY0ODh6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTMyMCAzNDFoMzg0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04SDMyMGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuQ29udHJvbFR3b1RvbmUgPSBnZXRJY29uKCdjb250cm9sJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2eidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTYxNiA0NDBhMzYgMzYgMCAxIDAgNzIgMCAzNiAzNiAwIDEgMC03MiAwek0zNDAuNCA2MDEuNWwxLjUgMi40YzAgLjEuMS4xLjEuMmwuOSAxLjJjLjEuMS4yLjIuMi4zIDEgMS4zIDIgMi41IDMuMiAzLjZsLjIuMmMuNC40LjguOCAxLjIgMS4xLjguOCAxLjcgMS41IDIuNiAyLjFoLjFsMS4yLjljLjEuMS4zLjIuNC4zIDEuMi44IDIuNSAxLjYgMy45IDIuMi4yLjEuNS4yLjcuNC40LjIuNy4zIDEuMS41LjMuMS43LjMgMSAuNC41LjIgMSAuNCAxLjUuNS40LjEuOS4zIDEuMy40bC45LjMgMS40LjNjLjIuMS41LjEuNy4yLjcuMSAxLjQuMyAyLjEuNC4yIDAgLjQgMCAuNi4xLjYuMSAxLjEuMSAxLjcuMi4yIDAgLjQgMCAuNy4xLjggMCAxLjUuMSAyLjMuMXMxLjUgMCAyLjMtLjFjLjIgMCAuNCAwIC43LS4xLjYgMCAxLjItLjEgMS43LS4yLjIgMCAuNCAwIC42LS4xLjctLjEgMS40LS4yIDIuMS0uNC4yLS4xLjUtLjEuNy0uMmwxLjQtLjMuOS0uM2MuNC0uMS45LS4zIDEuMy0uNC41LS4yIDEtLjQgMS41LS41LjMtLjEuNy0uMyAxLS40LjQtLjIuNy0uMyAxLjEtLjUuMi0uMS41LS4yLjctLjQgMS4zLS43IDIuNi0xLjQgMy45LTIuMi4xLS4xLjMtLjIuNC0uM2wxLjItLjloLjFjLjktLjcgMS44LTEuNCAyLjYtMi4xLjQtLjQuOC0uNyAxLjItMS4xbC4yLS4yYzEuMS0xLjEgMi4yLTIuNCAzLjItMy42LjEtLjEuMi0uMi4yLS4zbC45LTEuMmMwLS4xLjEtLjEuMS0uMmwxLjUtMi40Yy4xLS4yLjItLjMuMy0uNSAyLjctNS4xIDQuMy0xMC45IDQuMy0xN3MtMS42LTEyLTQuMy0xN2MtLjEtLjItLjItLjQtLjMtLjVsLTEuNS0yLjRjMC0uMS0uMS0uMS0uMS0uMmwtLjktMS4yYy0uMS0uMS0uMi0uMi0uMi0uMy0xLTEuMy0yLTIuNS0zLjItMy42bC0uMi0uMmMtLjQtLjQtLjgtLjgtMS4yLTEuMS0uOC0uOC0xLjctMS41LTIuNi0yLjFoLS4xbC0xLjItLjljLS4xLS4xLS4zLS4yLS40LS4zLTEuMi0uOC0yLjUtMS42LTMuOS0yLjItLjItLjEtLjUtLjItLjctLjQtLjQtLjItLjctLjMtMS4xLS41LS4zLS4xLS43LS4zLTEtLjQtLjUtLjItMS0uNC0xLjUtLjUtLjQtLjEtLjktLjMtMS4zLS40bC0uOS0uMy0xLjQtLjNjLS4yLS4xLS41LS4xLS43LS4yLS43LS4xLTEuNC0uMy0yLjEtLjQtLjIgMC0uNCAwLS42LS4xLS42LS4xLTEuMS0uMS0xLjctLjItLjIgMC0uNCAwLS43LS4xLS44IDAtMS41LS4xLTIuMy0uMXMtMS41IDAtMi4zLjFjLS4yIDAtLjQgMC0uNy4xLS42IDAtMS4yLjEtMS43LjItLjIgMC0uNCAwLS42LjEtLjcuMS0xLjQuMi0yLjEuNC0uMi4xLS41LjEtLjcuMmwtMS40LjMtLjkuM2MtLjQuMS0uOS4zLTEuMy40LS41LjItMSAuNC0xLjUuNS0uMy4xLS43LjMtMSAuNC0uNC4yLS43LjMtMS4xLjUtLjIuMS0uNS4yLS43LjQtMS4zLjctMi42IDEuNC0zLjkgMi4yLS4xLjEtLjMuMi0uNC4zbC0xLjIuOWgtLjFjLS45LjctMS44IDEuNC0yLjYgMi4xLS40LjQtLjguNy0xLjIgMS4xbC0uMi4yYTU0LjggNTQuOCAwIDAgMC0zLjIgMy42Yy0uMS4xLS4yLjItLjIuM2wtLjkgMS4yYzAgLjEtLjEuMS0uMS4ybC0xLjUgMi40Yy0uMS4yLS4yLjMtLjMuNS0yLjcgNS4xLTQuMyAxMC45LTQuMyAxN3MxLjYgMTIgNC4zIDE3Yy4xLjIuMi4zLjMuNXonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ00xODQgODQwaDY1NlYxODRIMTg0djY1NnptNDM2LjQtNDk5LjFjLS4yIDAtLjMuMS0uNC4xdi03N2MwLTQuNCAzLjYtOCA4LThoNDhjNC40IDAgOCAzLjYgOCA4djc3Yy0uMiAwLS4zLS4xLS40LS4xIDQyIDEzLjQgNzIuNCA1Mi43IDcyLjQgOTkuMSAwIDQ2LjQtMzAuNCA4NS43LTcyLjQgOTkuMS4yIDAgLjMtLjEuNC0uMXYyMjFjMCA0LjQtMy42IDgtOCA4aC00OGMtNC40IDAtOC0zLjYtOC04VjUzOWMuMiAwIC4zLjEuNC4xLTQyLTEzLjQtNzIuNC01Mi43LTcyLjQtOTkuMSAwLTQ2LjQgMzAuNC04NS43IDcyLjQtOTkuMXpNMzQwIDQ4NVYyNjRjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHYyMjFjNDEuNyAxMy42IDcyIDUyLjggNzIgOTlzLTMwLjMgODUuNS03MiA5OXY3N2MwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LTh2LTc3Yy00MS43LTEzLjYtNzItNTIuOC03Mi05OXMzMC4zLTg1LjUgNzItOTl6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTM0MCA2ODN2NzdjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOHYtNzdjNDEuNy0xMy41IDcyLTUyLjggNzItOTlzLTMwLjMtODUuNC03Mi05OVYyNjRjMC00LjQtMy42LTgtOC04aC00OGMtNC40IDAtOCAzLjYtOCA4djIyMWMtNDEuNyAxMy41LTcyIDUyLjgtNzIgOTlzMzAuMyA4NS40IDcyIDk5em0uMS0xMTZjLjEtLjIuMi0uMy4zLS41bDEuNS0yLjRjMC0uMS4xLS4xLjEtLjJsLjktMS4yYzAtLjEuMS0uMi4yLS4zIDEtMS4yIDIuMS0yLjUgMy4yLTMuNmwuMi0uMmMuNC0uNC44LS43IDEuMi0xLjEuOC0uNyAxLjctMS40IDIuNi0yLjFoLjFsMS4yLS45Yy4xLS4xLjMtLjIuNC0uMyAxLjMtLjggMi42LTEuNSAzLjktMi4yLjItLjIuNS0uMy43LS40LjQtLjIuNy0uMyAxLjEtLjUuMy0uMS43LS4zIDEtLjQuNS0uMSAxLS4zIDEuNS0uNS40LS4xLjktLjMgMS4zLS40bC45LS4zIDEuNC0uM2MuMi0uMS41LS4xLjctLjIuNy0uMiAxLjQtLjMgMi4xLS40LjItLjEuNC0uMS42LS4xLjUtLjEgMS4xLS4yIDEuNy0uMi4zLS4xLjUtLjEuNy0uMS44LS4xIDEuNS0uMSAyLjMtLjFzMS41LjEgMi4zLjFjLjMuMS41LjEuNy4xLjYuMSAxLjEuMSAxLjcuMi4yLjEuNC4xLjYuMS43LjEgMS40LjMgMi4xLjQuMi4xLjUuMS43LjJsMS40LjMuOS4zYy40LjEuOS4zIDEuMy40LjUuMSAxIC4zIDEuNS41LjMuMS43LjMgMSAuNC40LjIuNy4zIDEuMS41LjIuMi41LjMuNy40IDEuNC42IDIuNyAxLjQgMy45IDIuMi4xLjEuMy4yLjQuM2wxLjIuOWguMWMuOS42IDEuOCAxLjMgMi42IDIuMS40LjMuOC43IDEuMiAxLjFsLjIuMmMxLjIgMS4xIDIuMiAyLjMgMy4yIDMuNiAwIC4xLjEuMi4yLjNsLjkgMS4yYzAgLjEuMS4xLjEuMmwxLjUgMi40QTM2LjAzIDM2LjAzIDAgMCAxIDQwOCA1ODRjMCA2LjEtMS42IDExLjktNC4zIDE3LS4xLjItLjIuMy0uMy41bC0xLjUgMi40YzAgLjEtLjEuMS0uMS4ybC0uOSAxLjJjMCAuMS0uMS4yLS4yLjMtMSAxLjItMi4xIDIuNS0zLjIgMy42bC0uMi4yYy0uNC40LS44LjctMS4yIDEuMS0uOC43LTEuNyAxLjQtMi42IDIuMWgtLjFsLTEuMi45Yy0uMS4xLS4zLjItLjQuMy0xLjMuOC0yLjYgMS41LTMuOSAyLjItLjIuMi0uNS4zLS43LjQtLjQuMi0uNy4zLTEuMS41LS4zLjEtLjcuMy0xIC40LS41LjEtMSAuMy0xLjUuNS0uNC4xLS45LjMtMS4zLjRsLS45LjMtMS40LjNjLS4yLjEtLjUuMS0uNy4yLS43LjItMS40LjMtMi4xLjQtLjIuMS0uNC4xLS42LjEtLjUuMS0xLjEuMi0xLjcuMi0uMy4xLS41LjEtLjcuMS0uOC4xLTEuNS4xLTIuMy4xcy0xLjUtLjEtMi4zLS4xYy0uMy0uMS0uNS0uMS0uNy0uMS0uNi0uMS0xLjEtLjEtMS43LS4yLS4yLS4xLS40LS4xLS42LS4xLS43LS4xLTEuNC0uMy0yLjEtLjQtLjItLjEtLjUtLjEtLjctLjJsLTEuNC0uMy0uOS0uM2MtLjQtLjEtLjktLjMtMS4zLS40LS41LS4xLTEtLjMtMS41LS41LS4zLS4xLS43LS4zLTEtLjQtLjQtLjItLjctLjMtMS4xLS41LS4yLS4yLS41LS4zLS43LS40LTEuNC0uNi0yLjctMS40LTMuOS0yLjItLjEtLjEtLjMtLjItLjQtLjNsLTEuMi0uOWgtLjFjLS45LS42LTEuOC0xLjMtMi42LTIuMS0uNC0uMy0uOC0uNy0xLjItMS4xbC0uMi0uMmMtMS4yLTEuMS0yLjItMi4zLTMuMi0zLjYgMC0uMS0uMS0uMi0uMi0uM2wtLjktMS4yYzAtLjEtLjEtLjEtLjEtLjJsLTEuNS0yLjRjLS4xLS4yLS4yLS4zLS4zLS41LTIuNy01LTQuMy0xMC45LTQuMy0xN3MxLjYtMTEuOSA0LjMtMTd6bTI4MC4zLTI3LjljLS4xIDAtLjItLjEtLjQtLjF2MjIxYzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LThWNTM5Yy0uMSAwLS4yLjEtLjQuMSA0Mi0xMy40IDcyLjQtNTIuNyA3Mi40LTk5LjEgMC00Ni40LTMwLjQtODUuNy03Mi40LTk5LjEuMSAwIC4yLjEuNC4xdi03N2MwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2NzdjLjEgMCAuMi0uMS40LS4xLTQyIDEzLjQtNzIuNCA1Mi43LTcyLjQgOTkuMSAwIDQ2LjQgMzAuNCA4NS43IDcyLjQgOTkuMXpNNjUyIDQwNGMxOS45IDAgMzYgMTYuMSAzNiAzNnMtMTYuMSAzNi0zNiAzNi0zNi0xNi4xLTM2LTM2IDE2LjEtMzYgMzYtMzZ6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkNvcHlUd29Ub25lID0gZ2V0SWNvbignY29weScsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW3NlY29uZGFyeUNvbG9yLCAnTTIzMiA3MDZoMTQyYzIyLjEgMCA0MCAxNy45IDQwIDQwdjE0MmgyNTBWMjY0SDIzMnY0NDJ6J10sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTgzMiA2NEgyOTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNDk2djY4OGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04Vjk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyeidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ003MDQgMTkySDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NTMwLjdjMCA4LjUgMy40IDE2LjYgOS40IDIyLjZsMTczLjMgMTczLjNjMi4yIDIuMiA0LjcgNCA3LjQgNS41djEuOWg0LjJjMy41IDEuMyA3LjIgMiAxMSAySDcwNGMxNy43IDAgMzItMTQuMyAzMi0zMlYyMjRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTM1MCA4NTYuMkwyNjMuOSA3NzBIMzUwdjg2LjJ6TTY2NCA4ODhINDE0Vjc0NmMwLTIyLjEtMTcuOS00MC00MC00MEgyMzJWMjY0aDQzMnY2MjR6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkNyZWRpdENhcmRUd29Ub25lID0gZ2V0SWNvbignY3JlZGl0LWNhcmQnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMTM2IDc5Mmg3NTJWNDQwSDEzNnYzNTJ6bTUwNy0xNDRjMC00LjQgMy42LTggOC04aDE2NWM0LjQgMCA4IDMuNiA4IDh2NzJjMCA0LjQtMy42IDgtOCA4SDY1MWMtNC40IDAtOC0zLjYtOC04di03MnpNMTM2IDIzMmg3NTJ2MTIwSDEzNnonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNjUxIDcyOGgxNjVjNC40IDAgOC0zLjYgOC04di03MmMwLTQuNC0zLjYtOC04LThINjUxYy00LjQgMC04IDMuNi04IDh2NzJjMCA0LjQgMy42IDggOCA4eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ005MjggMTYwSDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY2NDBjMCAxNy43IDE0LjMgMzIgMzIgMzJoODMyYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE5MmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDYzMkgxMzZWNDQwaDc1MnYzNTJ6bTAtNDQwSDEzNlYyMzJoNzUydjEyMHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuQ3Jvd25Ud29Ub25lID0gZ2V0SWNvbignY3Jvd24nLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNOTExLjkgMjgzLjl2LjVMODM1LjUgODY1Yy0xIDgtNy45IDE0LTE1LjkgMTRIMjA0LjVjLTguMSAwLTE0LjktNi4xLTE2LTE0bC03Ni40LTU4MC42di0uNiAxLjZMMTg4LjUgODY2YzEuMSA3LjkgNy45IDE0IDE2IDE0aDYxNS4xYzggMCAxNC45LTYgMTUuOS0xNGw3Ni40LTU4MC42Yy4xLS41LjEtMSAwLTEuNXonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ003NzMuNiA4MTAuNmw1My45LTQwOS40LTEzOS44IDg2LjFMNTEyIDI1Mi45IDMzNi4zIDQ4Ny4zbC0xMzkuOC04Ni4xIDUzLjggNDA5LjRoNTIzLjN6bS0zNzQuMi0xODljMC02Mi4xIDUwLjUtMTEyLjYgMTEyLjYtMTEyLjZzMTEyLjYgNTAuNSAxMTIuNiAxMTIuNnYxYzAgNjIuMS01MC41IDExMi42LTExMi42IDExMi42cy0xMTIuNi01MC41LTExMi42LTExMi42di0xeidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ001MTIgNzM0LjJjNjEuOSAwIDExMi4zLTUwLjIgMTEyLjYtMTEyLjF2LS41YzAtNjIuMS01MC41LTExMi42LTExMi42LTExMi42cy0xMTIuNiA1MC41LTExMi42IDExMi42di41Yy4zIDYxLjkgNTAuNyAxMTIuMSAxMTIuNiAxMTIuMXptMC0xNjAuOWMyNi42IDAgNDguMiAyMS42IDQ4LjIgNDguMyAwIDI2LjYtMjEuNiA0OC4zLTQ4LjIgNDguM3MtNDguMi0yMS42LTQ4LjItNDguM2MwLTI2LjYgMjEuNi00OC4zIDQ4LjItNDguM3onXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNMTg4LjUgODY1YzEuMSA3LjkgNy45IDE0IDE2IDE0aDYxNS4xYzggMCAxNC45LTYgMTUuOS0xNGw3Ni40LTU4MC42di0uNWMuMy02LjQtNi43LTEwLjgtMTIuMy03LjRMNzA1IDM5Ni40IDUxOC40IDE0Ny41YTguMDYgOC4wNiAwIDAgMC0xMi45IDBMMzE5IDM5Ni40IDEyNC4zIDI3Ni41Yy01LjUtMy40LTEyLjYuOS0xMi4yIDcuM3YuNkwxODguNSA4NjV6bTE0Ny44LTM3Ny43TDUxMiAyNTIuOWwxNzUuNyAyMzQuNCAxMzkuOC04Ni4xLTUzLjkgNDA5LjRIMjUwLjNsLTUzLjgtNDA5LjQgMTM5LjggODYuMXonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuQ3VzdG9tZXJTZXJ2aWNlVHdvVG9uZSA9IGdldEljb24oJ2N1c3RvbWVyLXNlcnZpY2UnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtzZWNvbmRhcnlDb2xvciwgJ002OTYgNjMyaDEyOHYxOTJINjk2em0tNDk2IDBoMTI4djE5MkgyMDB6J10sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTUxMiAxMjhjLTIxMi4xIDAtMzg0IDE3MS45LTM4NCAzODR2MzYwYzAgMTMuMyAxMC43IDI0IDI0IDI0aDE4NGMzNS4zIDAgNjQtMjguNyA2NC02NFY2MjRjMC0zNS4zLTI4LjctNjQtNjQtNjRIMjAwdi00OGMwLTE3Mi4zIDEzOS43LTMxMiAzMTItMzEyczMxMiAxMzkuNyAzMTIgMzEydjQ4SDY4OGMtMzUuMyAwLTY0IDI4LjctNjQgNjR2MjA4YzAgMzUuMyAyOC43IDY0IDY0IDY0aDE4NGMxMy4zIDAgMjQtMTAuNyAyNC0yNFY1MTJjMC0yMTIuMS0xNzEuOS0zODQtMzg0LTM4NHpNMzI4IDYzMnYxOTJIMjAwVjYzMmgxMjh6bTQ5NiAxOTJINjk2VjYzMmgxMjh2MTkyeidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5EYXNoYm9hcmRUd29Ub25lID0gZ2V0SWNvbignZGFzaGJvYXJkJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTUxMiAxODhjLTk5LjMgMC0xOTIuNyAzOC43LTI2MyAxMDktNzAuMyA3MC4yLTEwOSAxNjMuNi0xMDkgMjYzIDAgMTA1LjYgNDQuNSAyMDUuNSAxMjIuNiAyNzZoNDk4LjhBMzcxLjEyIDM3MS4xMiAwIDAgMCA4ODQgNTYwYzAtOTkuMy0zOC43LTE5Mi43LTEwOS0yNjMtNzAuMi03MC4zLTE2My42LTEwOS0yNjMtMTA5em0tMzAgNDRjMC00LjQgMy42LTggOC04aDQ0YzQuNCAwIDggMy42IDggOHY4MGMwIDQuNC0zLjYgOC04IDhoLTQ0Yy00LjQgMC04LTMuNi04LTh2LTgwek0yNzAgNTgyYzAgNC40LTMuNiA4LTggOGgtODBjLTQuNCAwLTgtMy42LTgtOHYtNDRjMC00LjQgMy42LTggOC04aDgwYzQuNCAwIDggMy42IDggOHY0NHptOTAuNy0yMDQuNGwtMzEuMSAzMS4xYTguMDMgOC4wMyAwIDAgMS0xMS4zIDBsLTU2LjYtNTYuNmE4LjAzIDguMDMgMCAwIDEgMC0xMS4zbDMxLjEtMzEuMWMzLjEtMy4xIDguMi0zLjEgMTEuMyAwbDU2LjYgNTYuNmMzLjEgMy4xIDMuMSA4LjIgMCAxMS4zem0yOTEuMSA4My41bC04NC41IDg0LjVjNSAxOC43LjIgMzkuNC0xNC41IDU0LjFhNTUuOTUgNTUuOTUgMCAwIDEtNzkuMiAwIDU1Ljk1IDU1Ljk1IDAgMCAxIDAtNzkuMiA1NS44NyA1NS44NyAwIDAgMSA1NC4xLTE0LjVsODQuNS04NC41YzMuMS0zLjEgOC4yLTMuMSAxMS4zIDBsMjguMyAyOC4zYzMuMSAzLjEgMy4xIDguMiAwIDExLjN6bTQzLTUyLjRsLTMxLjEtMzEuMWE4LjAzIDguMDMgMCAwIDEgMC0xMS4zbDU2LjYtNTYuNmMzLjEtMy4xIDguMi0zLjEgMTEuMyAwbDMxLjEgMzEuMWMzLjEgMy4xIDMuMSA4LjIgMCAxMS4zbC01Ni42IDU2LjZhOC4wMyA4LjAzIDAgMCAxLTExLjMgMHpNODQ2IDUzOHY0NGMwIDQuNC0zLjYgOC04IDhoLTgwYy00LjQgMC04LTMuNi04LTh2LTQ0YzAtNC40IDMuNi04IDgtOGg4MGM0LjQgMCA4IDMuNiA4IDh6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTYyMy41IDQyMS41YTguMDMgOC4wMyAwIDAgMC0xMS4zIDBMNTI3LjcgNTA2Yy0xOC43LTUtMzkuNC0uMi01NC4xIDE0LjVhNTUuOTUgNTUuOTUgMCAwIDAgMCA3OS4yIDU1Ljk1IDU1Ljk1IDAgMCAwIDc5LjIgMCA1NS44NyA1NS44NyAwIDAgMCAxNC41LTU0LjFsODQuNS04NC41YzMuMS0zLjEgMy4xLTguMiAwLTExLjNsLTI4LjMtMjguM3pNNDkwIDMyMGg0NGM0LjQgMCA4LTMuNiA4LTh2LTgwYzAtNC40LTMuNi04LTgtOGgtNDRjLTQuNCAwLTggMy42LTggOHY4MGMwIDQuNCAzLjYgOCA4IDh6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTkyNC44IDM4NS42YTQ0Ni43IDQ0Ni43IDAgMCAwLTk2LTE0Mi40IDQ0Ni43IDQ0Ni43IDAgMCAwLTE0Mi40LTk2QzYzMS4xIDEyMy44IDU3Mi41IDExMiA1MTIgMTEycy0xMTkuMSAxMS44LTE3NC40IDM1LjJhNDQ2LjcgNDQ2LjcgMCAwIDAtMTQyLjQgOTYgNDQ2LjcgNDQ2LjcgMCAwIDAtOTYgMTQyLjRDNzUuOCA0NDAuOSA2NCA0OTkuNSA2NCA1NjBjMCAxMzIuNyA1OC4zIDI1Ny43IDE1OS45IDM0My4xbDEuNyAxLjRjNS44IDQuOCAxMy4xIDcuNSAyMC42IDcuNWg1MzEuN2M3LjUgMCAxNC44LTIuNyAyMC42LTcuNWwxLjctMS40QzkwMS43IDgxNy43IDk2MCA2OTIuNyA5NjAgNTYwYzAtNjAuNS0xMS45LTExOS4xLTM1LjItMTc0LjR6TTc2MS40IDgzNkgyNjIuNkEzNzEuMTIgMzcxLjEyIDAgMCAxIDE0MCA1NjBjMC05OS40IDM4LjctMTkyLjggMTA5LTI2MyA3MC4zLTcwLjMgMTYzLjctMTA5IDI2My0xMDkgOTkuNCAwIDE5Mi44IDM4LjcgMjYzIDEwOSA3MC4zIDcwLjMgMTA5IDE2My43IDEwOSAyNjMgMCAxMDUuNi00NC41IDIwNS41LTEyMi42IDI3NnonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNzYyLjcgMzQwLjhsLTMxLjEtMzEuMWE4LjAzIDguMDMgMCAwIDAtMTEuMyAwbC01Ni42IDU2LjZhOC4wMyA4LjAzIDAgMCAwIDAgMTEuM2wzMS4xIDMxLjFjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGw1Ni42LTU2LjZjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM3pNNzUwIDUzOHY0NGMwIDQuNCAzLjYgOCA4IDhoODBjNC40IDAgOC0zLjYgOC04di00NGMwLTQuNC0zLjYtOC04LThoLTgwYy00LjQgMC04IDMuNi04IDh6TTMwNC4xIDMwOS43YTguMDMgOC4wMyAwIDAgMC0xMS4zIDBsLTMxLjEgMzEuMWE4LjAzIDguMDMgMCAwIDAgMCAxMS4zbDU2LjYgNTYuNmMzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDMxLjEtMzEuMWMzLjEtMy4xIDMuMS04LjIgMC0xMS4zbC01Ni42LTU2LjZ6TTI2MiA1MzBoLTgwYy00LjQgMC04IDMuNi04IDh2NDRjMCA0LjQgMy42IDggOCA4aDgwYzQuNCAwIDgtMy42IDgtOHYtNDRjMC00LjQtMy42LTgtOC04eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5EZWxldGVUd29Ub25lID0gZ2V0SWNvbignZGVsZXRlJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbc2Vjb25kYXJ5Q29sb3IsICdNMjkyLjcgODQwaDQzOC42bDI0LjItNTEyaC00ODd6J10sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg2NCAyNTZINzM2di04MGMwLTM1LjMtMjguNy02NC02NC02NEgzNTJjLTM1LjMgMC02NCAyOC43LTY0IDY0djgwSDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MzJjMCA0LjQgMy42IDggOCA4aDYwLjRsMjQuNyA1MjNjMS42IDM0LjEgMjkuOCA2MSA2My45IDYxaDQ1NGMzNC4yIDAgNjIuMy0yNi44IDYzLjktNjFsMjQuNy01MjNIODg4YzQuNCAwIDgtMy42IDgtOHYtMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6bS01MDQtNzJoMzA0djcySDM2MHYtNzJ6bTM3MS4zIDY1NkgyOTIuN2wtMjQuMi01MTJoNDg3bC0yNC4yIDUxMnonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuRGlmZlR3b1RvbmUgPSBnZXRJY29uKCdkaWZmJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTIzMiAyNjR2NjI0aDQzMlY0MTMuOEw1MTQuMiAyNjRIMjMyem0zMzYgNDg5YzAgMy44LTMuNCA3LTcuNSA3aC0yMjVjLTQuMSAwLTcuNS0zLjItNy41LTd2LTQyYzAtMy44IDMuNC03IDcuNS03aDIyNWM0LjEgMCA3LjUgMy4yIDcuNSA3djQyem0wLTI2MnY0MmMwIDMuOC0zLjQgNy03LjUgN0g0NzZ2ODQuOWMwIDMuOS0zLjEgNy4xLTcgNy4xaC00MmMtMy44IDAtNy0zLjItNy03LjFWNTQwaC04NC41Yy00LjEgMC03LjUtMy4yLTcuNS03di00MmMwLTMuOSAzLjQtNyA3LjUtN0g0MjB2LTg0LjljMC0zLjkgMy4yLTcuMSA3LTcuMWg0MmMzLjkgMCA3IDMuMiA3IDcuMVY0ODRoODQuNWM0LjEgMCA3LjUgMy4xIDcuNSA3eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004NTQuMiAzMDYuNkw2MTEuMyA3Mi45Yy02LTUuNy0xMy45LTguOS0yMi4yLTguOUgyOTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoMjc3bDIxOSAyMTAuNlY4MjRjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFYzMjkuNmMwLTguNy0zLjUtMTctOS44LTIzeidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ001NTMuNCAyMDEuNGMtNi02LTE0LjEtOS40LTIyLjYtOS40SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzA0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDUxMmMxNy43IDAgMzItMTQuMyAzMi0zMlYzOTcuM2MwLTguNS0zLjQtMTYuNi05LjQtMjIuNkw1NTMuNCAyMDEuNHpNNjY0IDg4OEgyMzJWMjY0aDI4Mi4yTDY2NCA0MTMuOFY4ODh6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTQ3NiAzOTkuMWMwLTMuOS0zLjEtNy4xLTctNy4xaC00MmMtMy44IDAtNyAzLjItNyA3LjFWNDg0aC04NC41Yy00LjEgMC03LjUgMy4xLTcuNSA3djQyYzAgMy44IDMuNCA3IDcuNSA3SDQyMHY4NC45YzAgMy45IDMuMiA3LjEgNyA3LjFoNDJjMy45IDAgNy0zLjIgNy03LjFWNTQwaDg0LjVjNC4xIDAgNy41LTMuMiA3LjUtN3YtNDJjMC0zLjktMy40LTctNy41LTdINDc2di04NC45ek01NjAuNSA3MDRoLTIyNWMtNC4xIDAtNy41IDMuMi03LjUgN3Y0MmMwIDMuOCAzLjQgNyA3LjUgN2gyMjVjNC4xIDAgNy41LTMuMiA3LjUtN3YtNDJjMC0zLjgtMy40LTctNy41LTd6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkRhdGFiYXNlVHdvVG9uZSA9IGdldEljb24oJ2RhdGFiYXNlJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTIzMiA2MTZoNTYwVjQwOEgyMzJ2MjA4em0xMTItMTQ0YzIyLjEgMCA0MCAxNy45IDQwIDQwcy0xNy45IDQwLTQwIDQwLTQwLTE3LjktNDAtNDAgMTcuOS00MCA0MC00MHpNMjMyIDg4OGg1NjBWNjgwSDIzMnYyMDh6bTExMi0xNDRjMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDAtNDAtMTcuOS00MC00MCAxNy45LTQwIDQwLTQwek0yMzIgMzQ0aDU2MFYxMzZIMjMydjIwOHptMTEyLTE0NGMyMi4xIDAgNDAgMTcuOSA0MCA0MHMtMTcuOSA0MC00MCA0MC00MC0xNy45LTQwLTQwIDE3LjktNDAgNDAtNDB6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTMwNCA1MTJhNDAgNDAgMCAxIDAgODAgMCA0MCA0MCAwIDEgMC04MCAwem0wIDI3MmE0MCA0MCAwIDEgMCA4MCAwIDQwIDQwIDAgMSAwLTgwIDB6bTAtNTQ0YTQwIDQwIDAgMSAwIDgwIDAgNDAgNDAgMCAxIDAtODAgMHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODMyIDY0SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlY5NmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDgyNEgyMzJWNjgwaDU2MHYyMDh6bTAtMjcySDIzMlY0MDhoNTYwdjIwOHptMC0yNzJIMjMyVjEzNmg1NjB2MjA4eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5EaXNsaWtlVHdvVG9uZSA9IGdldEljb24oJ2Rpc2xpa2UnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMjczIDEwMC4xdjQyOGguM2wtLjMtNDI4ek04MjAuNCA1MjVsLTIxLjktMTkgMTQtMjUuNWE1Ni4yIDU2LjIgMCAwIDAgNi45LTI3LjNjMC0xNi41LTcuMS0zMi4yLTE5LjYtNDNsLTIxLjktMTkgMTMuOS0yNS40YTU2LjIgNTYuMiAwIDAgMCA2LjktMjcuM2MwLTE2LjUtNy4xLTMyLjItMTkuNi00M2wtMjEuOS0xOSAxMy45LTI1LjRhNTYuMiA1Ni4yIDAgMCAwIDYuOS0yNy4zYzAtMjIuNC0xMy4yLTQyLjYtMzMuNi01MS44SDM0NXYzNDUuMmMxOC42IDY3LjIgNDYuNCAxNjggODMuNSAzMDIuNWE0NC4yOCA0NC4yOCAwIDAgMCA0Mi4yIDMyLjNjNy41LjEgMTUtMi4yIDIxLjEtNi43IDkuOS03LjQgMTUuMi0xOC42IDE0LjYtMzAuNWwtOS42LTE5OC40aDMxNC40QzgyOSA2MDUuNSA4NDAgNTg3LjEgODQwIDU2OGMwLTE2LjUtNy4xLTMyLjItMTkuNi00M3onXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNMTEyIDEzMnYzNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjVWMTAwaC02NWMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6bTc3My45IDM1OC4zYzMuNi0xMiA1LjQtMjQuNCA1LjQtMzcgMC0yOC4zLTkuMy01NS41LTI2LjEtNzcuNyAzLjYtMTIgNS40LTI0LjQgNS40LTM3IDAtMjguMy05LjMtNTUuNS0yNi4xLTc3LjcgMy42LTEyIDUuNC0yNC40IDUuNC0zNyAwLTUxLjYtMzAuNy05OC4xLTc4LjMtMTE4LjRhNjYuMSA2Ni4xIDAgMCAwLTI2LjUtNS40SDI3M2wuMyA0MjggODUuOCAzMTAuOEMzNzIuOSA4ODkgNDE4LjkgOTI0IDQ3MC45IDkyNGMyOS43IDAgNTcuNC0xMS44IDc3LjktMzMuNCAyMC41LTIxLjUgMzEtNDkuNyAyOS41LTc5LjRsLTYtMTIyLjloMjM5LjljMTIuMSAwIDIzLjktMy4yIDM0LjMtOS4zIDQwLjQtMjMuNSA2NS41LTY2LjEgNjUuNS0xMTEgMC0yOC4zLTkuMy01NS41LTI2LjEtNzcuN3ptLTc0LjcgMTI2LjFINDk2LjhsOS42IDE5OC40Yy42IDExLjktNC43IDIzLjEtMTQuNiAzMC41LTYuMSA0LjUtMTMuNiA2LjgtMjEuMSA2LjdhNDQuMjggNDQuMjggMCAwIDEtNDIuMi0zMi4zYy0zNy4xLTEzNC40LTY0LjktMjM1LjItODMuNS0zMDIuNVYxNzJoMzk5LjRhNTYuODUgNTYuODUgMCAwIDEgMzMuNiA1MS44YzAgOS43LTIuMyAxOC45LTYuOSAyNy4zbC0xMy45IDI1LjQgMjEuOSAxOWE1Ni43NiA1Ni43NiAwIDAgMSAxOS42IDQzYzAgOS43LTIuMyAxOC45LTYuOSAyNy4zbC0xMy45IDI1LjQgMjEuOSAxOWE1Ni43NiA1Ni43NiAwIDAgMSAxOS42IDQzYzAgOS43LTIuMyAxOC45LTYuOSAyNy4zbC0xNCAyNS41IDIxLjkgMTlhNTYuNzYgNTYuNzYgMCAwIDEgMTkuNiA0M2MwIDE5LjEtMTEgMzcuNS0yOC44IDQ4LjR6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkRvd25DaXJjbGVUd29Ub25lID0gZ2V0SWNvbignZG93bi1jaXJjbGUnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDE0MGMtMjA1LjQgMC0zNzIgMTY2LjYtMzcyIDM3MnMxNjYuNiAzNzIgMzcyIDM3MiAzNzItMTY2LjYgMzcyLTM3Mi0xNjYuNi0zNzItMzcyLTM3MnptMTg0LjQgMjc3LjdsLTE3OCAyNDZhNy45NSA3Ljk1IDAgMCAxLTEyLjkgMGwtMTc4LTI0NmMtMy44LTUuMyAwLTEyLjcgNi41LTEyLjdoNDYuOWMxMC4zIDAgMTkuOSA0LjkgMjUuOSAxMy4yTDUxMiA1NjMuNmwxMDUuMi0xNDUuNGM2LTguMyAxNS43LTEzLjIgMjUuOS0xMy4ySDY5MGM2LjUgMCAxMC4zIDcuNCA2LjQgMTIuN3onXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ002OTAgNDA1aC00Ni45Yy0xMC4yIDAtMTkuOSA0LjktMjUuOSAxMy4yTDUxMiA1NjMuNiA0MDYuOCA0MTguMmMtNi04LjMtMTUuNi0xMy4yLTI1LjktMTMuMkgzMzRjLTYuNSAwLTEwLjMgNy40LTYuNSAxMi43bDE3OCAyNDZjMy4yIDQuNCA5LjcgNC40IDEyLjkgMGwxNzgtMjQ2YzMuOS01LjMuMS0xMi43LTYuNC0xMi43eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5Eb3duU3F1YXJlVHdvVG9uZSA9IGdldEljb24oJ2Rvd24tc3F1YXJlJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2eidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTE4NCA4NDBoNjU2VjE4NEgxODR2NjU2em0xNTAtNDQwaDQ2LjljMTAuMyAwIDE5LjkgNC45IDI1LjkgMTMuMkw1MTIgNTU4LjZsMTA1LjItMTQ1LjRjNi04LjMgMTUuNy0xMy4yIDI1LjktMTMuMkg2OTBjNi41IDAgMTAuMyA3LjQgNi40IDEyLjdsLTE3OCAyNDZhNy45NSA3Ljk1IDAgMCAxLTEyLjkgMGwtMTc4LTI0NmMtMy44LTUuMyAwLTEyLjcgNi41LTEyLjd6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTUwNS41IDY1OC43YzMuMiA0LjQgOS43IDQuNCAxMi45IDBsMTc4LTI0NmMzLjktNS4zLjEtMTIuNy02LjQtMTIuN2gtNDYuOWMtMTAuMiAwLTE5LjkgNC45LTI1LjkgMTMuMkw1MTIgNTU4LjYgNDA2LjggNDEzLjJjLTYtOC4zLTE1LjYtMTMuMi0yNS45LTEzLjJIMzM0Yy02LjUgMC0xMC4zIDcuNC02LjUgMTIuN2wxNzggMjQ2eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5FbnZpcm9ubWVudFR3b1RvbmUgPSBnZXRJY29uKCdlbnZpcm9ubWVudCcsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ003MjQuNCAyMjQuOUM2NjcuNyAxNjkuNSA1OTIuMyAxMzkgNTEyIDEzOXMtMTU1LjcgMzAuNS0yMTIuNCA4NS44QzI0My4xIDI4MCAyMTIgMzUzLjIgMjEyIDQzMS4xYzAgMjQxLjMgMjM0LjEgNDA3LjIgMzAwIDQ0OS4xIDY1LjktNDEuOSAzMDAtMjA3LjggMzAwLTQ0OS4xIDAtNzcuOS0zMS4xLTE1MS4xLTg3LjYtMjA2LjJ6TTUxMiA2MTVjLTk3LjIgMC0xNzYtNzguOC0xNzYtMTc2czc4LjgtMTc2IDE3Ni0xNzYgMTc2IDc4LjggMTc2IDE3Ni03OC44IDE3Ni0xNzYgMTc2eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ001MTIgMjYzYy05Ny4yIDAtMTc2IDc4LjgtMTc2IDE3NnM3OC44IDE3NiAxNzYgMTc2IDE3Ni03OC44IDE3Ni0xNzYtNzguOC0xNzYtMTc2LTE3NnptNzkuMiAyNTUuMkExMTEuNiAxMTEuNiAwIDAgMSA1MTIgNTUxYy0yOS45IDAtNTgtMTEuNy03OS4yLTMyLjhBMTExLjYgMTExLjYgMCAwIDEgNDAwIDQzOWMwLTI5LjkgMTEuNy01OCAzMi44LTc5LjJDNDU0IDMzOC42IDQ4Mi4xIDMyNyA1MTIgMzI3YzI5LjkgMCA1OCAxMS42IDc5LjIgMzIuOFM2MjQgNDA5LjEgNjI0IDQzOWMwIDI5LjktMTEuNiA1OC0zMi44IDc5LjJ6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg1NC42IDI4OS4xYTM2Mi40OSAzNjIuNDkgMCAwIDAtNzkuOS0xMTUuNyAzNzAuODMgMzcwLjgzIDAgMCAwLTExOC4yLTc3LjhDNjEwLjcgNzYuNiA1NjIuMSA2NyA1MTIgNjdjLTUwLjEgMC05OC43IDkuNi0xNDQuNSAyOC41LTQ0LjMgMTguMy04NCA0NC41LTExOC4yIDc3LjhBMzYzLjYgMzYzLjYgMCAwIDAgMTY5LjQgMjg5Yy0xOS41IDQ1LTI5LjQgOTIuOC0yOS40IDE0MiAwIDcwLjYgMTYuOSAxNDAuOSA1MC4xIDIwOC43IDI2LjcgNTQuNSA2NCAxMDcuNiAxMTEgMTU4LjEgODAuMyA4Ni4yIDE2NC41IDEzOC45IDE4OC40IDE1M2E0My45IDQzLjkgMCAwIDAgMjIuNCA2LjFjNy44IDAgMTUuNS0yIDIyLjQtNi4xIDIzLjktMTQuMSAxMDguMS02Ni44IDE4OC40LTE1MyA0Ny01MC40IDg0LjMtMTAzLjYgMTExLTE1OC4xQzg2Ny4xIDU3MiA4ODQgNTAxLjggODg0IDQzMS4xYzAtNDkuMi05LjktOTctMjkuNC0xNDJ6TTUxMiA4ODAuMmMtNjUuOS00MS45LTMwMC0yMDcuOC0zMDAtNDQ5LjEgMC03Ny45IDMxLjEtMTUxLjEgODcuNi0yMDYuM0MzNTYuMyAxNjkuNSA0MzEuNyAxMzkgNTEyIDEzOXMxNTUuNyAzMC41IDIxMi40IDg1LjlDNzgwLjkgMjgwIDgxMiAzNTMuMiA4MTIgNDMxLjFjMCAyNDEuMy0yMzQuMSA0MDcuMi0zMDAgNDQ5LjF6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkVkaXRUd29Ub25lID0gZ2V0SWNvbignZWRpdCcsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW3NlY29uZGFyeUNvbG9yLCAnTTc2MS4xIDI4OC4zTDY4Ny44IDIxNSAzMjUuMSA1NzcuNmwtMTUuNiA4OSA4OC45LTE1Ljd6J10sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg4MCA4MzZIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYzNmMwIDQuNCAzLjYgOCA4IDhoNzg0YzQuNCAwIDgtMy42IDgtOHYtMzZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS02MjIuMy04NGMyIDAgNC0uMiA2LS41TDQzMS45IDcyMmMyLS40IDMuOS0xLjMgNS4zLTIuOGw0MjMuOS00MjMuOWE5Ljk2IDkuOTYgMCAwIDAgMC0xNC4xTDY5NC45IDExNC45Yy0xLjktMS45LTQuNC0yLjktNy4xLTIuOXMtNS4yIDEtNy4xIDIuOUwyNTYuOCA1MzguOGMtMS41IDEuNS0yLjQgMy4zLTIuOCA1LjNsLTI5LjUgMTY4LjJhMzMuNSAzMy41IDAgMCAwIDkuNCAyOS44YzYuNiA2LjQgMTQuOSA5LjkgMjMuOCA5Ljl6bTY3LjQtMTc0LjRMNjg3LjggMjE1bDczLjMgNzMuMy0zNjIuNyAzNjIuNi04OC45IDE1LjcgMTUuNi04OXonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuRXhjbGFtYXRpb25DaXJjbGVUd29Ub25lID0gZ2V0SWNvbignZXhjbGFtYXRpb24tY2lyY2xlJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDE0MGMtMjA1LjQgMC0zNzIgMTY2LjYtMzcyIDM3MnMxNjYuNiAzNzIgMzcyIDM3MiAzNzItMTY2LjYgMzcyLTM3Mi0xNjYuNi0zNzItMzcyLTM3MnptLTMyIDE1NmMwLTQuNCAzLjYtOCA4LThoNDhjNC40IDAgOCAzLjYgOCA4djI3MmMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LThWMjk2em0zMiA0NDBhNDguMDEgNDguMDEgMCAwIDEgMC05NiA0OC4wMSA0OC4wMSAwIDAgMSAwIDk2eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ000ODggNTc2aDQ4YzQuNCAwIDgtMy42IDgtOFYyOTZjMC00LjQtMy42LTgtOC04aC00OGMtNC40IDAtOCAzLjYtOCA4djI3MmMwIDQuNCAzLjYgOCA4IDh6bS0yNCAxMTJhNDggNDggMCAxIDAgOTYgMCA0OCA0OCAwIDEgMC05NiAweidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5FeHBlcmltZW50VHdvVG9uZSA9IGdldEljb24oJ2V4cGVyaW1lbnQnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTUxLjkgNTEzYzE5LjYgMCAzNS45LTE0LjIgMzkuMy0zMi44QTQwLjAyIDQwLjAyIDAgMCAxIDU1MiA1MTJhNDAgNDAgMCAwIDEtNDAtMzkuNHYuNWMwIDIyIDE3LjkgMzkuOSAzOS45IDM5Ljl6TTc1MiA2ODcuOGwtLjMtLjNjLTI5LTE3LjUtNjIuMy0yNi44LTk3LTI2LjgtNDQuOSAwLTg3LjIgMTUuNy0xMjEgNDMuOGEyNTYuMjcgMjU2LjI3IDAgMCAxLTE2NC45IDU5LjljLTQxLjIgMC04MS05LjgtMTE2LjctMjhMMjEwLjUgODQ0aDYwM2wtNTkuOS0xNTUuMi0xLjYtMXonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODc5IDgyNC45TDY5Ni4zIDM1MlYxNzhINzY4di02OEgyNTZ2NjhoNzEuN3YxNzRMMTQ1IDgyNC45Yy0yLjggNy40LTQuMyAxNS4yLTQuMyAyMy4xIDAgMzUuMyAyOC43IDY0IDY0IDY0aDYxNC42YzcuOSAwIDE1LjctMS41IDIzLjEtNC4zIDMzLTEyLjcgNDkuNC00OS44IDM2LjYtODIuOHpNMzk1LjcgMzY0LjdWMTgwaDIzMi42djE4NC43TDcxOS4yIDYwMGMtMjAuNy01LjMtNDIuMS04LTYzLjktOC02MS4yIDAtMTE5LjIgMjEuNS0xNjUuMyA2MGExODguNzggMTg4Ljc4IDAgMCAxLTEyMS4zIDQzLjljLTMyLjcgMC02NC4xLTguMy05MS44LTIzLjdsMTE4LjgtMzA3LjV6TTIxMC41IDg0NGw0MS42LTEwNy42LjEtLjJjMzUuNyAxOC4xIDc1LjQgMjcuOCAxMTYuNiAyNy44IDYxLjIgMCAxMTkuMi0yMS41IDE2NS4zLTYwIDMzLjktMjguMiA3Ni4zLTQzLjkgMTIxLjMtNDMuOSAzNSAwIDY4LjQgOS41IDk3LjYgMjcuMWwuNiAxLjZMODEzLjUgODQ0aC02MDN6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTU1MiA1MTJjMTkuMyAwIDM1LjQtMTMuNiAzOS4yLTMxLjguNi0yLjcuOC01LjQuOC04LjIgMC0yMi4xLTE3LjktNDAtNDAtNDBzLTQwIDE3LjktNDAgNDB2LjZhNDAgNDAgMCAwIDAgNDAgMzkuNHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuRXllSW52aXNpYmxlVHdvVG9uZSA9IGdldEljb24oJ2V5ZS1pbnZpc2libGUnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMjU0Ljg5IDc1OC44NWwxMjUuNTctMTI1LjU3YTE3NiAxNzYgMCAwIDEgMjQ4LjgyLTI0OC44Mkw3NTcgMjU2LjcyUTY1MS42OSAxODYuMDcgNTEyIDE4NnEtMjg4LjMgMC00MzAuMiAzMDAuM2E2MC4zIDYwLjMgMCAwIDAgMCA1MS41cTY5LjI3IDE0NS45MSAxNzMuMDkgMjIxLjA1ek05NDIuMiA0ODYuMlE4ODkuNDYgMzc1LjExIDgxNi43IDMwNUw2NzIuNDggNDQ5LjI3YTE3Ni4wOSAxNzYuMDkgMCAwIDEtMjI3LjIyIDIyNy4yMUwzMjMgNzk4Ljc1UTQwOCA4MzggNTEyIDgzOHEyODguMyAwIDQzMC4yLTMwMC4zYTYwLjI5IDYwLjI5IDAgMCAwIDAtNTEuNXonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNOTQyLjIgNDg2LjJRODg5LjQ3IDM3NS4xMSA4MTYuNyAzMDVsLTUwLjg4IDUwLjg4QzgwNy4zMSAzOTUuNTMgODQzLjQ1IDQ0Ny40IDg3NC43IDUxMiA3OTEuNSA2ODQuMiA2NzMuNCA3NjYgNTEyIDc2NnEtNzIuNjcgMC0xMzMuODctMjIuMzhMMzIzIDc5OC43NVE0MDggODM4IDUxMiA4MzhxMjg4LjMgMCA0MzAuMi0zMDAuM2E2MC4yOSA2MC4yOSAwIDAgMCAwLTUxLjV6TTg3OC42MyAxNjUuNTZMODM2IDEyMi44OGE4IDggMCAwIDAtMTEuMzIgMEw3MTUuMzEgMjMyLjJRNjI0Ljg2IDE4NiA1MTIgMTg2cS0yODguMyAwLTQzMC4yIDMwMC4zYTYwLjMgNjAuMyAwIDAgMCAwIDUxLjVxNTYuNjkgMTE5LjQgMTM2LjUgMTkxLjQxTDExMi40OCA4MzVhOCA4IDAgMCAwIDAgMTEuMzFMMTU1LjE3IDg4OWE4IDggMCAwIDAgMTEuMzEgMGw3MTIuMTUtNzEyLjEyYTggOCAwIDAgMCAwLTExLjMyek0xNDkuMyA1MTJDMjMyLjYgMzM5LjggMzUwLjcgMjU4IDUxMiAyNThjNTQuNTQgMCAxMDQuMTMgOS4zNiAxNDkuMTIgMjguMzlsLTcwLjMgNzAuM2ExNzYgMTc2IDAgMCAwLTIzOC4xMyAyMzguMTNsLTgzLjQyIDgzLjQyQzIyMy4xIDYzNy40OSAxODMuMyA1ODIuMjggMTQ5LjMgNTEyem0yNDYuNyAwYTExMi4xMSAxMTIuMTEgMCAwIDEgMTQ2LjItMTA2LjY5TDQwMS4zMSA1NDYuMkExMTIgMTEyIDAgMCAxIDM5NiA1MTJ6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTUwOCA2MjRjLTMuNDYgMC02Ljg3LS4xNi0xMC4yNS0uNDdsLTUyLjgyIDUyLjgyYTE3Ni4wOSAxNzYuMDkgMCAwIDAgMjI3LjQyLTIyNy40MmwtNTIuODIgNTIuODJjLjMxIDMuMzguNDcgNi43OS40NyAxMC4yNWExMTEuOTQgMTExLjk0IDAgMCAxLTExMiAxMTJ6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkV5ZVR3b1RvbmUgPSBnZXRJY29uKCdleWUnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNODEuOCA1MzcuOGE2MC4zIDYwLjMgMCAwIDEgMC01MS41QzE3Ni42IDI4Ni41IDMxOS44IDE4NiA1MTIgMTg2Yy0xOTIuMiAwLTMzNS40IDEwMC41LTQzMC4yIDMwMC4zYTYwLjMgNjAuMyAwIDAgMCAwIDUxLjVDMTc2LjYgNzM3LjUgMzE5LjkgODM4IDUxMiA4MzhjLTE5Mi4xIDAtMzM1LjQtMTAwLjUtNDMwLjItMzAwLjJ6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDI1OGMtMTYxLjMgMC0yNzkuNCA4MS44LTM2Mi43IDI1NEMyMzIuNiA2ODQuMiAzNTAuNyA3NjYgNTEyIDc2NmMxNjEuNCAwIDI3OS41LTgxLjggMzYyLjctMjU0Qzc5MS40IDMzOS44IDY3My4zIDI1OCA1MTIgMjU4em0tNCA0MzBjLTk3LjIgMC0xNzYtNzguOC0xNzYtMTc2czc4LjgtMTc2IDE3Ni0xNzYgMTc2IDc4LjggMTc2IDE3Ni03OC44IDE3Ni0xNzYgMTc2eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ005NDIuMiA0ODYuMkM4NDcuNCAyODYuNSA3MDQuMSAxODYgNTEyIDE4NmMtMTkyLjIgMC0zMzUuNCAxMDAuNS00MzAuMiAzMDAuM2E2MC4zIDYwLjMgMCAwIDAgMCA1MS41QzE3Ni42IDczNy41IDMxOS45IDgzOCA1MTIgODM4YzE5Mi4yIDAgMzM1LjQtMTAwLjUgNDMwLjItMzAwLjMgNy43LTE2LjIgNy43LTM1IDAtNTEuNXpNNTEyIDc2NmMtMTYxLjMgMC0yNzkuNC04MS44LTM2Mi43LTI1NEMyMzIuNiAzMzkuOCAzNTAuNyAyNTggNTEyIDI1OHMyNzkuNCA4MS44IDM2Mi43IDI1NEM3OTEuNSA2ODQuMiA2NzMuNCA3NjYgNTEyIDc2NnonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNTA4IDMzNmMtOTcuMiAwLTE3NiA3OC44LTE3NiAxNzZzNzguOCAxNzYgMTc2IDE3NiAxNzYtNzguOCAxNzYtMTc2LTc4LjgtMTc2LTE3Ni0xNzZ6bTAgMjg4Yy02MS45IDAtMTEyLTUwLjEtMTEyLTExMnM1MC4xLTExMiAxMTItMTEyIDExMiA1MC4xIDExMiAxMTItNTAuMSAxMTItMTEyIDExMnonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuRmlsZUFkZFR3b1RvbmUgPSBnZXRJY29uKCdmaWxlLWFkZCcsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ001MzQgMzUyVjEzNkgyMzJ2NzUyaDU2MFYzOTRINTc2YTQyIDQyIDAgMCAxLTQyLTQyem0xMjYgMjM2djQ4YzAgNC40LTMuNiA4LTggOEg1NDR2MTA4YzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOFY2NDRIMzcyYy00LjQgMC04LTMuNi04LTh2LTQ4YzAtNC40IDMuNi04IDgtOGgxMDhWNDcyYzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh2MTA4aDEwOGM0LjQgMCA4IDMuNiA4IDh6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg1NC42IDI4OC42TDYzOS40IDczLjRjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzExLjNjMC04LjUtMy40LTE2LjctOS40LTIyLjd6TTYwMiAxMzcuOEw3OTAuMiAzMjZINjAyVjEzNy44ek03OTIgODg4SDIzMlYxMzZoMzAydjIxNmE0MiA0MiAwIDAgMCA0MiA0MmgyMTZ2NDk0eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ001NDQgNDcyYzAtNC40LTMuNi04LTgtOGgtNDhjLTQuNCAwLTggMy42LTggOHYxMDhIMzcyYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDEwOHYxMDhjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOFY2NDRoMTA4YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04SDU0NFY0NzJ6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkZpbGVFeGNsYW1hdGlvblR3b1RvbmUgPSBnZXRJY29uKCdmaWxlLWV4Y2xhbWF0aW9uJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTUzNCAzNTJWMTM2SDIzMnY3NTJoNTYwVjM5NEg1NzZhNDIgNDIgMCAwIDEtNDItNDJ6bS01NCA5NmMwLTQuNCAzLjYtOCA4LThoNDhjNC40IDAgOCAzLjYgOCA4djE4NGMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LThWNDQ4em0zMiAzMzZjLTIyLjEgMC00MC0xNy45LTQwLTQwczE3LjktNDAgNDAtNDAgNDAgMTcuOSA0MCA0MC0xNy45IDQwLTQwIDQweidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004NTQuNiAyODguNkw2MzkuNCA3My40Yy02LTYtMTQuMS05LjQtMjIuNi05LjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMxMS4zYzAtOC41LTMuNC0xNi43LTkuNC0yMi43ek02MDIgMTM3LjhMNzkwLjIgMzI2SDYwMlYxMzcuOHpNNzkyIDg4OEgyMzJWMTM2aDMwMnYyMTZhNDIgNDIgMCAwIDAgNDIgNDJoMjE2djQ5NHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNDg4IDY0MGg0OGM0LjQgMCA4LTMuNiA4LThWNDQ4YzAtNC40LTMuNi04LTgtOGgtNDhjLTQuNCAwLTggMy42LTggOHYxODRjMCA0LjQgMy42IDggOCA4em0tMTYgMTA0YTQwIDQwIDAgMSAwIDgwIDAgNDAgNDAgMCAxIDAtODAgMHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuRmlsZUltYWdlVHdvVG9uZSA9IGdldEljb24oJ2ZpbGUtaW1hZ2UnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTM0IDM1MlYxMzZIMjMydjc1Mmg1NjBWMzk0SDU3NmE0MiA0MiAwIDAgMS00Mi00MnptLTEzNCA1MGMyMi4xIDAgNDAgMTcuOSA0MCA0MHMtMTcuOSA0MC00MCA0MC00MC0xNy45LTQwLTQwIDE3LjktNDAgNDAtNDB6bTI5NiAyOTRIMzI4LjFjLTYuNyAwLTEwLjQtNy43LTYuMy0xMi45bDk5LjgtMTI3LjJhOCA4IDAgMCAxIDEyLjYgMGw0MS4xIDUyLjQgNzcuOC05OS4yYTguMSA4LjEgMCAwIDEgMTIuNyAwbDEzNi41IDE3NGM0LjEgNS4yLjQgMTIuOS02LjMgMTIuOXonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODU0LjYgMjg4LjZMNjM5LjQgNzMuNGMtNi02LTE0LjEtOS40LTIyLjYtOS40SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlYzMTEuM2MwLTguNS0zLjQtMTYuNy05LjQtMjIuN3pNNjAyIDEzNy44TDc5MC4yIDMyNkg2MDJWMTM3Ljh6TTc5MiA4ODhIMjMyVjEzNmgzMDJ2MjE2YTQyIDQyIDAgMCAwIDQyIDQyaDIxNnY0OTR6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTU1My4xIDUwOS4xbC03Ny44IDk5LjItNDEuMS01Mi40YTggOCAwIDAgMC0xMi42IDBsLTk5LjggMTI3LjJhNy45OCA3Ljk4IDAgMCAwIDYuMyAxMi45SDY5NmM2LjcgMCAxMC40LTcuNyA2LjMtMTIuOWwtMTM2LjUtMTc0YTguMSA4LjEgMCAwIDAtMTIuNyAwek0zNjAgNDQyYTQwIDQwIDAgMSAwIDgwIDAgNDAgNDAgMCAxIDAtODAgMHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuRmlsZUV4Y2VsVHdvVG9uZSA9IGdldEljb24oJ2ZpbGUtZXhjZWwnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTM0IDM1MlYxMzZIMjMydjc1Mmg1NjBWMzk0SDU3NmE0MiA0MiAwIDAgMS00Mi00MnptNTEuNiAxMjBoMzUuN2ExMi4wNCAxMi4wNCAwIDAgMSAxMC4xIDE4LjVMNTQ2LjEgNjIzbDg0IDEzMC40YzMuNiA1LjYgMiAxMy0zLjYgMTYuNi0yIDEuMi00LjIgMS45LTYuNSAxLjloLTM3LjVjLTQuMSAwLTgtMi4xLTEwLjItNS43TDUxMCA2NjQuOGwtNjIuNyAxMDEuNWMtMi4yIDMuNS02IDUuNy0xMC4yIDUuN2gtMzQuNWExMi4wNCAxMi4wNCAwIDAgMS0xMC4yLTE4LjRsODMuNC0xMzIuOC04Mi4zLTEzMC40Yy0zLjYtNS43LTEuOS0xMy4xIDMuNy0xNi42IDEuOS0xLjMgNC4xLTEuOSA2LjQtMS45SDQ0MmM0LjIgMCA4LjEgMi4yIDEwLjMgNS44bDYxLjggMTAyLjQgNjEuMi0xMDIuM2MyLjItMy42IDYuMS01LjggMTAuMy01Ljh6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg1NC42IDI4OC42TDYzOS40IDczLjRjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzExLjNjMC04LjUtMy40LTE2LjctOS40LTIyLjd6TTYwMiAxMzcuOEw3OTAuMiAzMjZINjAyVjEzNy44ek03OTIgODg4SDIzMlYxMzZoMzAydjIxNmE0MiA0MiAwIDAgMCA0MiA0MmgyMTZ2NDk0eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ001MTQuMSA1ODAuMWwtNjEuOC0xMDIuNGMtMi4yLTMuNi02LjEtNS44LTEwLjMtNS44aC0zOC40Yy0yLjMgMC00LjUuNi02LjQgMS45LTUuNiAzLjUtNy4zIDEwLjktMy43IDE2LjZsODIuMyAxMzAuNC04My40IDEzMi44YTEyLjA0IDEyLjA0IDAgMCAwIDEwLjIgMTguNGgzNC41YzQuMiAwIDgtMi4yIDEwLjItNS43TDUxMCA2NjQuOGw2Mi4zIDEwMS40YzIuMiAzLjYgNi4xIDUuNyAxMC4yIDUuN0g2MjBjMi4zIDAgNC41LS43IDYuNS0xLjkgNS42LTMuNiA3LjItMTEgMy42LTE2LjZsLTg0LTEzMC40IDg1LjMtMTMyLjVhMTIuMDQgMTIuMDQgMCAwIDAtMTAuMS0xOC41aC0zNS43Yy00LjIgMC04LjEgMi4yLTEwLjMgNS44bC02MS4yIDEwMi4zeidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5GaWxlTWFya2Rvd25Ud29Ub25lID0gZ2V0SWNvbignZmlsZS1tYXJrZG93bicsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ001MzQgMzUyVjEzNkgyMzJ2NzUyaDU2MFYzOTRINTc2YTQyIDQyIDAgMCAxLTQyLTQyem03Mi4zIDEyMkg2NDFjNi42IDAgMTIgNS40IDEyIDEydjI3MmMwIDYuNi01LjQgMTItMTIgMTJoLTI3LjJjLTYuNiAwLTEyLTUuNC0xMi0xMlY1ODEuN0w1MzUgNzMyLjNjLTIgNC4zLTYuMyA3LjEtMTEgNy4xaC0yNC4xYTEyIDEyIDAgMCAxLTExLTcuMWwtNjYuOC0xNTAuMlY3NThjMCA2LjYtNS40IDEyLTEyIDEySDM4M2MtNi42IDAtMTItNS40LTEyLTEyVjQ4NmMwLTYuNiA1LjQtMTIgMTItMTJoMzVjNC44IDAgOS4xIDIuOCAxMSA3LjJsODMuMiAxOTEgODMuMS0xOTFjMS45LTQuNCA2LjItNy4yIDExLTcuMnonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODU0LjYgMjg4LjZMNjM5LjQgNzMuNGMtNi02LTE0LjEtOS40LTIyLjYtOS40SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlYzMTEuM2MwLTguNS0zLjQtMTYuNy05LjQtMjIuN3pNNjAyIDEzNy44TDc5MC4yIDMyNkg2MDJWMTM3Ljh6TTc5MiA4ODhIMjMyVjEzNmgzMDJ2MjE2YTQyIDQyIDAgMCAwIDQyIDQyaDIxNnY0OTR6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTQyOSA0ODEuMmMtMS45LTQuNC02LjItNy4yLTExLTcuMmgtMzVjLTYuNiAwLTEyIDUuNC0xMiAxMnYyNzJjMCA2LjYgNS40IDEyIDEyIDEyaDI3LjFjNi42IDAgMTItNS40IDEyLTEyVjU4Mi4xbDY2LjggMTUwLjJhMTIgMTIgMCAwIDAgMTEgNy4xSDUyNGM0LjcgMCA5LTIuOCAxMS03LjFsNjYuOC0xNTAuNlY3NThjMCA2LjYgNS40IDEyIDEyIDEySDY0MWM2LjYgMCAxMi01LjQgMTItMTJWNDg2YzAtNi42LTUuNC0xMi0xMi0xMmgtMzQuN2MtNC44IDAtOS4xIDIuOC0xMSA3LjJsLTgzLjEgMTkxLTgzLjItMTkxeidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5GaWxlUGRmVHdvVG9uZSA9IGdldEljb24oJ2ZpbGUtcGRmJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTUwOS4yIDQ5MC44Yy0uNy0xLjMtMS40LTEuOS0yLjItMi0yLjkgMy4zLTIuMiAzMS41IDIuNyA1MS40IDQtMTMuNiA0LjctNDAuNS0uNS00OS40em0tMS42IDEyMC41Yy03LjcgMjAtMTguOCA0Ny4zLTMyLjEgNzEuNCA0LTEuNiA4LjEtMy4zIDEyLjMtNSAxNy42LTcuMiAzNy4zLTE1LjMgNTguOS0yMC4yLTE0LjktMTEuOC0yOC40LTI3LjctMzkuMS00Ni4yeidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTUzNCAzNTJWMTM2SDIzMnY3NTJoNTYwVjM5NEg1NzZhNDIgNDIgMCAwIDEtNDItNDJ6bTU1IDI4Ny42YzE2LjEtMS45IDMwLjYtMi44IDQ0LjMtMi4zIDEyLjguNCAyMy42IDIgMzIgNS4xLjIuMS4zLjEuNS4yLjQuMi44LjMgMS4yLjUuNS4yIDEuMS40IDEuNi43LjEuMS4zLjEuNC4yIDQuMSAxLjggNy41IDQgMTAuMSA2LjYgOS4xIDkuMSAxMS44IDI2LjEgNi4yIDM5LjYtMy4yIDcuNy0xMS43IDIwLjUtMzMuMyAyMC41LTIxLjggMC01My45LTkuNy04Mi4xLTI0LjgtMjUuNSA0LjMtNTMuNyAxMy45LTgwLjkgMjMuMS01LjggMi0xMS44IDQtMTcuNiA1LjktMzggNjUuMi02Ni41IDc5LjQtODQuMSA3OS40LTQuMiAwLTcuOC0uOS0xMC44LTItNi45LTIuNi0xMi44LTgtMTYuNS0xNS0uOS0xLjctMS42LTMuNC0yLjItNS4yLTEuNi00LjgtMi4xLTkuNi0xLjMtMTMuNmwuNi0yLjdjLjEtLjIuMS0uNC4yLS42LjItLjcuNC0xLjQuNy0yLjEgMC0uMS4xLS4yLjEtLjMgNC4xLTExLjkgMTMuNi0yMy40IDI3LjctMzQuNiAxMi4zLTkuOCAyNy4xLTE4LjcgNDUuOS0yOC40IDE1LjktMjggMzcuNi03NS4xIDUxLjItMTA3LjQtMTAuOC00MS44LTE2LjctNzQuNi0xMC4xLTk4LjYuOS0zLjMgMi41LTYuNCA0LjYtOS4xLjItLjIuMy0uNC41LS42LjEtLjEuMS0uMi4yLS4yIDYuMy03LjUgMTYuOS0xMS45IDI4LjEtMTEuNSAxNi42LjcgMjkuNyAxMS41IDMzIDMwLjEgMS43IDggMi4yIDE2LjUgMS45IDI1Ljd2LjdjMCAuNSAwIDEtLjEgMS41LS43IDEzLjMtMyAyNi42LTcuMyA0NC43LS40IDEuNi0uOCAzLjItMS4yIDUuMmwtMSA0LjEtLjEuM2MuMS4yLjEuMy4yLjVsMS44IDQuNWMuMS4zLjMuNy40IDEgLjcgMS42IDEuNCAzLjMgMi4xIDQuOHYuMWM4LjcgMTguOCAxOS43IDMzLjQgMzMuOSA0NS4xIDQuMyAzLjUgOC45IDYuNyAxMy45IDkuOCAxLjgtLjUgMy41LS43IDUuMy0uOXonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ00zOTEuNSA3NjFjNS43LTQuNCAxNi4yLTE0LjUgMzAuMS0zNC43LTEwLjMgOS40LTIzLjQgMjIuNC0zMC4xIDM0Ljd6bTI3MC45LTgzbC4yLS4zaC4yYy42LS40LjUtLjcuNC0uOS0uMS0uMS00LjUtOS4zLTQ1LjEtNy40IDM1LjMgMTMuOSA0My41IDkuMSA0NC4zIDguNnonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODU0LjYgMjg4LjZMNjM5LjQgNzMuNGMtNi02LTE0LjEtOS40LTIyLjYtOS40SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlYzMTEuM2MwLTguNS0zLjQtMTYuNy05LjQtMjIuN3pNNjAyIDEzNy44TDc5MC4yIDMyNkg2MDJWMTM3Ljh6TTc5MiA4ODhIMjMyVjEzNmgzMDJ2MjE2YTQyIDQyIDAgMCAwIDQyIDQyaDIxNnY0OTR6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTUzNS45IDU4NS4zYy0uOC0xLjctMS41LTMuMy0yLjItNC45LS4xLS4zLS4zLS43LS40LTFsLTEuOC00LjVjLS4xLS4yLS4xLS4zLS4yLS41bC4xLS4zLjItMS4xYzQtMTYuMyA4LjYtMzUuMyA5LjQtNTQuNHYtLjdjLjMtOC42LS4yLTE3LjItMi0yNS42LTMuOC0yMS4zLTE5LjUtMjkuNi0zMi45LTMwLjItMTEuMy0uNS0yMS44IDQtMjguMSAxMS40LS4xLjEtLjEuMi0uMi4yLS4yLjItLjQuNC0uNS42LTIuMSAyLjctMy43IDUuOC00LjYgOS4xLTYuNiAyNC0uNyA1Ni44IDEwLjEgOTguNi0xMy42IDMyLjQtMzUuMyA3OS40LTUxLjIgMTA3LjR2LjFjLTI3LjcgMTQuMy02NC4xIDM1LjgtNzMuNiA2Mi45IDAgLjEtLjEuMi0uMS4zLS4yLjctLjUgMS40LS43IDIuMS0uMS4yLS4xLjQtLjIuNi0uMi45LS41IDEuOC0uNiAyLjctLjkgNC0uNCA4LjggMS4zIDEzLjYuNiAxLjggMS4zIDMuNSAyLjIgNS4yIDMuNyA3IDkuNiAxMi40IDE2LjUgMTUgMyAxLjEgNi42IDIgMTAuOCAyIDE3LjYgMCA0Ni4xLTE0LjIgODQuMS03OS40IDUuOC0xLjkgMTEuOC0zLjkgMTcuNi01LjkgMjcuMi05LjIgNTUuNC0xOC44IDgwLjktMjMuMSAyOC4yIDE1LjEgNjAuMyAyNC44IDgyLjEgMjQuOCAyMS42IDAgMzAuMS0xMi44IDMzLjMtMjAuNSA1LjYtMTMuNSAyLjktMzAuNS02LjItMzkuNi0yLjYtMi42LTYtNC44LTEwLjEtNi42LS4xLS4xLS4zLS4xLS40LS4yLS41LS4yLTEuMS0uNC0xLjYtLjctLjQtLjItLjgtLjMtMS4yLS41LS4yLS4xLS4zLS4xLS41LS4yLTE2LjItNS44LTQxLjctNi43LTc2LjMtMi44bC01LjMuNmMtNS0zLTkuNi02LjMtMTMuOS05LjgtMTQuMi0xMS4zLTI1LjEtMjUuOC0zMy44LTQ0Ljd6TTM5MS41IDc2MWM2LjctMTIuMyAxOS44LTI1LjMgMzAuMS0zNC43LTEzLjkgMjAuMi0yNC40IDMwLjMtMzAuMSAzNC43ek01MDcgNDg4LjhjLjguMSAxLjUuNyAyLjIgMiA1LjIgOC45IDQuNSAzNS44LjUgNDkuNC00LjktMTkuOS01LjYtNDguMS0yLjctNTEuNHptLTE5LjIgMTg4LjljLTQuMiAxLjctOC4zIDMuNC0xMi4zIDUgMTMuMy0yNC4xIDI0LjQtNTEuNCAzMi4xLTcxLjQgMTAuNyAxOC41IDI0LjIgMzQuNCAzOS4xIDQ2LjItMjEuNiA0LjktNDEuMyAxMy01OC45IDIwLjJ6bTE3NS40LS45Yy4xLjIuMi41LS40LjloLS4ybC0uMi4zYy0uOC41LTkgNS4zLTQ0LjMtOC42IDQwLjYtMS45IDQ1IDcuMyA0NS4xIDcuNHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuRmlsZVBwdFR3b1RvbmUgPSBnZXRJY29uKCdmaWxlLXBwdCcsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ000NjQuNSA1MTYuMnYxMDguNGgzOC45YzQ0LjcgMCA3MS4yLTEwLjkgNzEuMi01NC4zIDAtMzQuNC0yMC4xLTU0LjEtNTMuOS01NC4xaC01Ni4yeidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTUzNCAzNTJWMTM2SDIzMnY3NTJoNTYwVjM5NEg1NzZhNDIgNDIgMCAwIDEtNDItNDJ6bTkwIDIxOC40YzAgNTUuMi0zNi44IDk0LjEtOTYuMiA5NC4xaC02My4zVjc2MGMwIDQuNC0zLjYgOC04IDhINDI0Yy00LjQgMC04LTMuNi04LThWNDg0YzAtNC40IDMuNi04IDgtOHYuMWgxMDRjNTkuNyAwIDk2IDM5LjggOTYgOTQuM3onXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODU0LjYgMjg4LjZMNjM5LjQgNzMuNGMtNi02LTE0LjEtOS40LTIyLjYtOS40SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlYzMTEuM2MwLTguNS0zLjQtMTYuNy05LjQtMjIuN3pNNjAyIDEzNy44TDc5MC4yIDMyNkg2MDJWMTM3Ljh6TTc5MiA4ODhIMjMyVjEzNmgzMDJ2MjE2YTQyIDQyIDAgMCAwIDQyIDQyaDIxNnY0OTR6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTQyNCA0NzYuMWMtNC40LS4xLTggMy41LTggNy45djI3NmMwIDQuNCAzLjYgOCA4IDhoMzIuNWM0LjQgMCA4LTMuNiA4LTh2LTk1LjVoNjMuM2M1OS40IDAgOTYuMi0zOC45IDk2LjItOTQuMSAwLTU0LjUtMzYuMy05NC4zLTk2LTk0LjNINDI0em0xNTAuNiA5NC4yYzAgNDMuNC0yNi41IDU0LjMtNzEuMiA1NC4zaC0zOC45VjUxNi4yaDU2LjJjMzMuOCAwIDUzLjkgMTkuNyA1My45IDU0LjF6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkZpbGVUZXh0VHdvVG9uZSA9IGdldEljb24oJ2ZpbGUtdGV4dCcsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ001MzQgMzUyVjEzNkgyMzJ2NzUyaDU2MFYzOTRINTc2YTQyIDQyIDAgMCAxLTQyLTQyem0tMjIgMzIyYzAgNC40LTMuNiA4LTggOEgzMjBjLTQuNCAwLTgtMy42LTgtOHYtNDhjMC00LjQgMy42LTggOC04aDE4NGM0LjQgMCA4IDMuNiA4IDh2NDh6bTIwMC0xODR2NDhjMCA0LjQtMy42IDgtOCA4SDMyMGMtNC40IDAtOC0zLjYtOC04di00OGMwLTQuNCAzLjYtOCA4LThoMzg0YzQuNCAwIDggMy42IDggOHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODU0LjYgMjg4LjZMNjM5LjQgNzMuNGMtNi02LTE0LjEtOS40LTIyLjYtOS40SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlYzMTEuM2MwLTguNS0zLjQtMTYuNy05LjQtMjIuN3pNNjAyIDEzNy44TDc5MC4yIDMyNkg2MDJWMTM3Ljh6TTc5MiA4ODhIMjMyVjEzNmgzMDJ2MjE2YTQyIDQyIDAgMCAwIDQyIDQyaDIxNnY0OTR6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTMxMiA0OTB2NDhjMCA0LjQgMy42IDggOCA4aDM4NGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOEgzMjBjLTQuNCAwLTggMy42LTggOHptMTkyIDEyOEgzMjBjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMTg0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5GaWxlVW5rbm93blR3b1RvbmUgPSBnZXRJY29uKCdmaWxlLXVua25vd24nLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTM0IDM1MlYxMzZIMjMydjc1Mmg1NjBWMzk0SDU3NmE0MiA0MiAwIDAgMS00Mi00MnptLTIyIDQyNGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzJ6bTExMC0yMjguNGMuNyA0NC45LTI5LjcgODQuNS03NC4zIDk4LjktNS43IDEuOC05LjcgNy4zLTkuNyAxMy4zVjY3MmMwIDUuNS00LjUgMTAtMTAgMTBoLTMyYy01LjUgMC0xMC00LjUtMTAtMTB2LTMyYy4yLTE5LjggMTUuNC0zNy4zIDM0LjctNDAuMUM1NDkgNTk2LjIgNTcwIDU3NC4zIDU3MCA1NDljMC0yOC4xLTI1LjgtNTEuNS01OC01MS41cy01OCAyMy40LTU4IDUxLjZjMCA1LjItNC40IDkuNC05LjggOS40aC0zMi40Yy01LjQgMC05LjgtNC4xLTkuOC05LjUgMC01Ny40IDUwLjEtMTAzLjcgMTExLjUtMTAzIDU5LjMuOCAxMDcuNyA0Ni4xIDEwOC41IDEwMS42eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004NTQuNiAyODguN0w2MzkuNCA3My40Yy02LTYtMTQuMi05LjQtMjIuNy05LjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMxMS4zYzAtOC41LTMuNC0xNi42LTkuNC0yMi42ek02MDIgMTM3LjhMNzkwLjIgMzI2SDYwMlYxMzcuOHpNNzkyIDg4OEgyMzJWMTM2aDMwMnYyMTZhNDIgNDIgMCAwIDAgNDIgNDJoMjE2djQ5NHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNDgwIDc0NGEzMiAzMiAwIDEgMCA2NCAwIDMyIDMyIDAgMSAwLTY0IDB6bS03OC0xOTVjMCA1LjQgNC40IDkuNSA5LjggOS41aDMyLjRjNS40IDAgOS44LTQuMiA5LjgtOS40IDAtMjguMiAyNS44LTUxLjYgNTgtNTEuNnM1OCAyMy40IDU4IDUxLjVjMCAyNS4zLTIxIDQ3LjItNDkuMyA1MC45LTE5LjMgMi44LTM0LjUgMjAuMy0zNC43IDQwLjF2MzJjMCA1LjUgNC41IDEwIDEwIDEwaDMyYzUuNSAwIDEwLTQuNSAxMC0xMHYtMTIuMmMwLTYgNC0xMS41IDkuNy0xMy4zIDQ0LjYtMTQuNCA3NS01NCA3NC4zLTk4LjktLjgtNTUuNS00OS4yLTEwMC44LTEwOC41LTEwMS42LTYxLjQtLjctMTExLjUgNDUuNi0xMTEuNSAxMDN6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkZpbGVaaXBUd29Ub25lID0gZ2V0SWNvbignZmlsZS16aXAnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtzZWNvbmRhcnlDb2xvciwgJ00zNDQgNjMwaDMydjJoLTMyeiddLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTUzNCAzNTJWMTM2SDM2MHY2NGg2NHY2NGgtNjR2NjRoNjR2NjRoLTY0djY0aDY0djY0aC02NHY2Mmg2NHYxNjBIMjk2VjUyMGg2NHYtNjRoLTY0di02NGg2NHYtNjRoLTY0di02NGg2NHYtNjRoLTY0di02NGgtNjR2NzUyaDU2MFYzOTRINTc2YTQyIDQyIDAgMCAxLTQyLTQyeidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004NTQuNiAyODguNkw2MzkuNCA3My40Yy02LTYtMTQuMS05LjQtMjIuNi05LjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMxMS4zYzAtOC41LTMuNC0xNi43LTkuNC0yMi43ek02MDIgMTM3LjhMNzkwLjIgMzI2SDYwMlYxMzcuOHpNNzkyIDg4OEgyMzJWMTM2aDY0djY0aDY0di02NGgxNzR2MjE2YTQyIDQyIDAgMCAwIDQyIDQyaDIxNnY0OTR6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTI5NiAzOTJoNjR2NjRoLTY0em0wLTEyOGg2NHY2NGgtNjR6bTAgMzE4djE2MGgxMjhWNTgyaC02NHYtNjJoLTY0djYyem00OCA1MHYtMmgzMnY2NGgtMzJ2LTYyem0xNi00MzJoNjR2NjRoLTY0em0wIDI1Nmg2NHY2NGgtNjR6bTAtMTI4aDY0djY0aC02NHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuRmlsZVdvcmRUd29Ub25lID0gZ2V0SWNvbignZmlsZS13b3JkJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTUzNCAzNTJWMTM2SDIzMnY3NTJoNTYwVjM5NEg1NzZhNDIgNDIgMCAwIDEtNDItNDJ6bTEwMS4zIDEyOS4zYzEuMy01LjQgNi4xLTkuMyAxMS43LTkuM2gzNS42YTEyLjA0IDEyLjA0IDAgMCAxIDExLjYgMTUuMWwtNzQuNCAyNzZjLTEuNCA1LjMtNi4yIDguOS0xMS42IDguOWgtMzEuOGMtNS40IDAtMTAuMi0zLjctMTEuNi04LjlsLTUyLjgtMTk3LTUyLjggMTk3Yy0xLjQgNS4zLTYuMiA4LjktMTEuNiA4LjloLTMyYy01LjQgMC0xMC4yLTMuNy0xMS42LTguOWwtNzQuMi0yNzZhMTIuMDIgMTIuMDIgMCAwIDEgMTEuNi0xNS4xaDM1LjRjNS42IDAgMTAuNCAzLjkgMTEuNyA5LjNMNDM0LjYgNjgwbDQ5LjctMTk4LjljMS4zLTUuNCA2LjEtOS4xIDExLjYtOS4xaDMyLjJjNS41IDAgMTAuMyAzLjcgMTEuNiA5LjFsNDkuOCAxOTkuMyA0NS44LTE5OS4xeidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004NTQuNiAyODguNkw2MzkuNCA3My40Yy02LTYtMTQuMS05LjQtMjIuNi05LjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMxMS4zYzAtOC41LTMuNC0xNi43LTkuNC0yMi43ek02MDIgMTM3LjhMNzkwLjIgMzI2SDYwMlYxMzcuOHpNNzkyIDg4OEgyMzJWMTM2aDMwMnYyMTZhNDIgNDIgMCAwIDAgNDIgNDJoMjE2djQ5NHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNTI4LjEgNDcyaC0zMi4yYy01LjUgMC0xMC4zIDMuNy0xMS42IDkuMUw0MzQuNiA2ODBsLTQ2LjEtMTk4LjdjLTEuMy01LjQtNi4xLTkuMy0xMS43LTkuM2gtMzUuNGExMi4wMiAxMi4wMiAwIDAgMC0xMS42IDE1LjFsNzQuMiAyNzZjMS40IDUuMiA2LjIgOC45IDExLjYgOC45aDMyYzUuNCAwIDEwLjItMy42IDExLjYtOC45bDUyLjgtMTk3IDUyLjggMTk3YzEuNCA1LjIgNi4yIDguOSAxMS42IDguOWgzMS44YzUuNCAwIDEwLjItMy42IDExLjYtOC45bDc0LjQtMjc2YTEyLjA0IDEyLjA0IDAgMCAwLTExLjYtMTUuMUg2NDdjLTUuNiAwLTEwLjQgMy45LTExLjcgOS4zbC00NS44IDE5OS4xLTQ5LjgtMTk5LjNjLTEuMy01LjQtNi4xLTkuMS0xMS42LTkuMXonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuRmlsZVR3b1RvbmUgPSBnZXRJY29uKCdmaWxlJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbc2Vjb25kYXJ5Q29sb3IsICdNNTM0IDM1MlYxMzZIMjMydjc1Mmg1NjBWMzk0SDU3NmE0MiA0MiAwIDAgMS00Mi00MnonXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODU0LjYgMjg4LjZMNjM5LjQgNzMuNGMtNi02LTE0LjEtOS40LTIyLjYtOS40SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlYzMTEuM2MwLTguNS0zLjQtMTYuNy05LjQtMjIuN3pNNjAyIDEzNy44TDc5MC4yIDMyNkg2MDJWMTM3Ljh6TTc5MiA4ODhIMjMyVjEzNmgzMDJ2MjE2YTQyIDQyIDAgMCAwIDQyIDQyaDIxNnY0OTR6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkZpbHRlclR3b1RvbmUgPSBnZXRJY29uKCdmaWx0ZXInLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNDIwLjYgNzk4aDE4Mi45VjY0Mkg0MjAuNnpNNDExIDU2MS40bDkuNSAxNi42aDE4M2w5LjUtMTYuNkw4MTEuMyAyMjZIMjEyLjd6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg4MC4xIDE1NEgxNDMuOWMtMjQuNSAwLTM5LjggMjYuNy0yNy41IDQ4TDM0OSA1OTcuNFY4MzhjMCAxNy43IDE0LjIgMzIgMzEuOCAzMmgyNjIuNGMxNy42IDAgMzEuOC0xNC4zIDMxLjgtMzJWNTk3LjRMOTA3LjcgMjAyYzEyLjItMjEuMy0zLjEtNDgtMjcuNi00OHpNNjAzLjUgNzk4SDQyMC42VjY0MmgxODIuOXYxNTZ6bTkuNS0yMzYuNmwtOS41IDE2LjZoLTE4M2wtOS41LTE2LjZMMjEyLjcgMjI2aDU5OC42TDYxMyA1NjEuNHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuRmlyZVR3b1RvbmUgPSBnZXRJY29uKCdmaXJlJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTczNyA0MzguNmMtOS42IDE1LjUtMjEuMSAzMC43LTM0LjQgNDUuNmE3My4xIDczLjEgMCAwIDEtNTEgMjQuNCA3My4zNiA3My4zNiAwIDAgMS01My40LTE4LjggNzQuMDEgNzQuMDEgMCAwIDEtMjQuNC01OS44YzMtNDcuNC0xMi40LTEwMy4xLTQ1LjgtMTY1LjctMTYuOS0zMS40LTM3LjEtNTguMi02MS4yLTgwLjRhMjQwIDI0MCAwIDAgMS0xMi4xIDQ2LjUgMzU0LjI2IDM1NC4yNiAwIDAgMS01OC4yIDEwMSAzNDkuNiAzNDkuNiAwIDAgMS01OC42IDU2LjhjLTM0IDI2LjEtNjIgNjAtODAuOCA5Ny45YTI3NS45NiAyNzUuOTYgMCAwIDAtMjkuMSAxMjRjMCA3NC45IDI5LjUgMTQ1LjMgODMgMTk4LjQgNTMuNyA1My4yIDEyNSA4Mi40IDIwMSA4Mi40czE0Ny4zLTI5LjIgMjAxLTgyLjRjNTMuNS01MyA4My0xMjMuNSA4My0xOTguNCAwLTM5LjItOC4xLTc3LjMtMjQtMTEzLjEtOS4zLTIxLTIxLTQwLjUtMzUtNTguNHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODM0LjEgNDY5LjJBMzQ3LjQ5IDM0Ny40OSAwIDAgMCA3NTEuMiAzNTRsLTI5LjEtMjYuN2E4LjA5IDguMDkgMCAwIDAtMTMgMy4zbC0xMyAzNy4zYy04LjEgMjMuNC0yMyA0Ny4zLTQ0LjEgNzAuOC0xLjQgMS41LTMgMS45LTQuMSAyLTEuMS4xLTIuOC0uMS00LjMtMS41LTEuNC0xLjItMi4xLTMtMi00LjggMy43LTYwLjItMTQuMy0xMjguMS01My43LTIwMkM1NTUuMyAxNzEgNTEwIDEyMy4xIDQ1My40IDg5LjdsLTQxLjMtMjQuM2MtNS40LTMuMi0xMi4zIDEtMTIgNy4zbDIuMiA0OGMxLjUgMzIuOC0yLjMgNjEuOC0xMS4zIDg1LjktMTEgMjkuNS0yNi44IDU2LjktNDcgODEuNWEyOTUuNjQgMjk1LjY0IDAgMCAxLTQ3LjUgNDYuMSAzNTIuNiAzNTIuNiAwIDAgMC0xMDAuMyAxMjEuNUEzNDcuNzUgMzQ3Ljc1IDAgMCAwIDE2MCA2MTBjMCA0Ny4yIDkuMyA5Mi45IDI3LjcgMTM2YTM0OS40IDM0OS40IDAgMCAwIDc1LjUgMTEwLjljMzIuNCAzMiA3MCA1Ny4yIDExMS45IDc0LjdDNDE4LjUgOTQ5LjggNDY0LjUgOTU5IDUxMiA5NTlzOTMuNS05LjIgMTM2LjktMjcuM0EzNDguNiAzNDguNiAwIDAgMCA3NjAuOCA4NTdjMzIuNC0zMiA1Ny44LTY5LjQgNzUuNS0xMTAuOWEzNDQuMiAzNDQuMiAwIDAgMCAyNy43LTEzNmMwLTQ4LjgtMTAtOTYuMi0yOS45LTE0MC45ek03MTMgODA4LjVjLTUzLjcgNTMuMi0xMjUgODIuNC0yMDEgODIuNHMtMTQ3LjMtMjkuMi0yMDEtODIuNGMtNTMuNS01My4xLTgzLTEyMy41LTgzLTE5OC40IDAtNDMuNSA5LjgtODUuMiAyOS4xLTEyNCAxOC44LTM3LjkgNDYuOC03MS44IDgwLjgtOTcuOWEzNDkuNiAzNDkuNiAwIDAgMCA1OC42LTU2LjhjMjUtMzAuNSA0NC42LTY0LjUgNTguMi0xMDFhMjQwIDI0MCAwIDAgMCAxMi4xLTQ2LjVjMjQuMSAyMi4yIDQ0LjMgNDkgNjEuMiA4MC40IDMzLjQgNjIuNiA0OC44IDExOC4zIDQ1LjggMTY1LjdhNzQuMDEgNzQuMDEgMCAwIDAgMjQuNCA1OS44IDczLjM2IDczLjM2IDAgMCAwIDUzLjQgMTguOGMxOS43LTEgMzcuOC05LjcgNTEtMjQuNCAxMy4zLTE0LjkgMjQuOC0zMC4xIDM0LjQtNDUuNiAxNCAxNy45IDI1LjcgMzcuNCAzNSA1OC40IDE1LjkgMzUuOCAyNCA3My45IDI0IDExMy4xIDAgNzQuOS0yOS41IDE0NS40LTgzIDE5OC40eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5Gb2xkZXJBZGRUd29Ub25lID0gZ2V0SWNvbignZm9sZGVyLWFkZCcsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ00zNzIuNSAyNTZIMTg0djUxMmg2NTZWMzcwLjRINDkyLjFMMzcyLjUgMjU2ek01NDAgNDQzLjFWNTI4aDg0LjVjNC4xIDAgNy41IDMuMSA3LjUgN3Y0MmMwIDMuOC0zLjQgNy03LjUgN0g1NDB2ODQuOWMwIDMuOS0zLjEgNy4xLTcgNy4xaC00MmMtMy44IDAtNy0zLjItNy03LjFWNTg0aC04NC41Yy00LjEgMC03LjUtMy4yLTcuNS03di00MmMwLTMuOSAzLjQtNyA3LjUtN0g0ODR2LTg0LjljMC0zLjkgMy4yLTcuMSA3LTcuMWg0MmMzLjkgMCA3IDMuMiA3IDcuMXonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODgwIDI5OC40SDUyMUw0MDMuNyAxODYuMmE4LjE1IDguMTUgMCAwIDAtNS41LTIuMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjU5MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzMwLjRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTg0MCA3NjhIMTg0VjI1NmgxODguNWwxMTkuNiAxMTQuNEg4NDBWNzY4eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ000ODQgNDQzLjFWNTI4aC04NC41Yy00LjEgMC03LjUgMy4xLTcuNSA3djQyYzAgMy44IDMuNCA3IDcuNSA3SDQ4NHY4NC45YzAgMy45IDMuMiA3LjEgNyA3LjFoNDJjMy45IDAgNy0zLjIgNy03LjFWNTg0aDg0LjVjNC4xIDAgNy41LTMuMiA3LjUtN3YtNDJjMC0zLjktMy40LTctNy41LTdINTQwdi04NC45YzAtMy45LTMuMS03LjEtNy03LjFoLTQyYy0zLjggMC03IDMuMi03IDcuMXonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuRmxhZ1R3b1RvbmUgPSBnZXRJY29uKCdmbGFnJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbc2Vjb25kYXJ5Q29sb3IsICdNMTg0IDIzMmgzNjh2MzM2SDE4NHonXSwgW3NlY29uZGFyeUNvbG9yLCAnTTYyNCA2MzJjMCA0LjQtMy42IDgtOCA4SDUwNHY3M2gzMzZWMzc3SDYyNHYyNTV6J10sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg4MCAzMDVINjI0VjE5MmMwLTE3LjctMTQuMy0zMi0zMi0zMkgxODR2LTQwYzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY3ODRjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFY2NDBoMjQ4djExM2MwIDE3LjcgMTQuMyAzMiAzMiAzMmg0MTZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzM3YzAtMTcuNy0xNC4zLTMyLTMyLTMyek0xODQgNTY4VjIzMmgzNjh2MzM2SDE4NHptNjU2IDE0NUg1MDR2LTczaDExMmM0LjQgMCA4LTMuNiA4LThWMzc3aDIxNnYzMzZ6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkZvbGRlclR3b1RvbmUgPSBnZXRJY29uKCdmb2xkZXInLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg4MCAyOTguNEg1MjFMNDAzLjcgMTg2LjJhOC4xNSA4LjE1IDAgMCAwLTUuNS0yLjJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY1OTJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMzMC40YzAtMTcuNy0xNC4zLTMyLTMyLTMyek04NDAgNzY4SDE4NFYyNTZoMTg4LjVsMTE5LjYgMTE0LjRIODQwVjc2OHonXG4gICAgXSwgW3NlY29uZGFyeUNvbG9yLCAnTTM3Mi41IDI1NkgxODR2NTEyaDY1NlYzNzAuNEg0OTIuMXonXSk7XG59KTtcbmV4cG9ydHMuRm9sZGVyT3BlblR3b1RvbmUgPSBnZXRJY29uKCdmb2xkZXItb3BlbicsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW3NlY29uZGFyeUNvbG9yLCAnTTE1OSA3NjhoNjEyLjNsMTAzLjQtMjU2SDI2Mi4zeiddLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ005MjggNDQ0SDgyMFYzMzAuNGMwLTE3LjctMTQuMy0zMi0zMi0zMkg0NzNMMzU1LjcgMTg2LjJhOC4xNSA4LjE1IDAgMCAwLTUuNS0yLjJIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjU5MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2OThjMTMgMCAyNC44LTcuOSAyOS43LTIwbDEzNC0zMzJjMS41LTMuOCAyLjMtNy45IDIuMy0xMiAwLTE3LjctMTQuMy0zMi0zMi0zMnpNMTM2IDI1NmgxODguNWwxMTkuNiAxMTQuNEg3NDhWNDQ0SDIzOGMtMTMgMC0yNC44IDcuOS0yOS43IDIwTDEzNiA2NDMuMlYyNTZ6bTYzNS4zIDUxMkgxNTlsMTAzLjMtMjU2aDYxMi40TDc3MS4zIDc2OHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuRnJvd25Ud29Ub25lID0gZ2V0SWNvbignZnJvd24nLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ001MTIgMTQwYy0yMDUuNCAwLTM3MiAxNjYuNi0zNzIgMzcyczE2Ni42IDM3MiAzNzIgMzcyIDM3Mi0xNjYuNiAzNzItMzcyLTE2Ni42LTM3Mi0zNzItMzcyek0yODggNDIxYTQ4LjAxIDQ4LjAxIDAgMCAxIDk2IDAgNDguMDEgNDguMDEgMCAwIDEtOTYgMHptMzc2IDI3MmgtNDguMWMtNC4yIDAtNy44LTMuMi04LjEtNy40QzYwNCA2MzYuMSA1NjIuNSA1OTcgNTEyIDU5N3MtOTIuMSAzOS4xLTk1LjggODguNmMtLjMgNC4yLTMuOSA3LjQtOC4xIDcuNEgzNjBhOCA4IDAgMCAxLTgtOC40YzQuNC04NC4zIDc0LjUtMTUxLjYgMTYwLTE1MS42czE1NS42IDY3LjMgMTYwIDE1MS42YTggOCAwIDAgMS04IDguNHptMjQtMjI0YTQ4LjAxIDQ4LjAxIDAgMCAxIDAtOTYgNDguMDEgNDguMDEgMCAwIDEgMCA5NnonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNMjg4IDQyMWE0OCA0OCAwIDEgMCA5NiAwIDQ4IDQ4IDAgMSAwLTk2IDB6bTIyNCAxMTJjLTg1LjUgMC0xNTUuNiA2Ny4zLTE2MCAxNTEuNmE4IDggMCAwIDAgOCA4LjRoNDguMWM0LjIgMCA3LjgtMy4yIDguMS03LjQgMy43LTQ5LjUgNDUuMy04OC42IDk1LjgtODguNnM5MiAzOS4xIDk1LjggODguNmMuMyA0LjIgMy45IDcuNCA4LjEgNy40SDY2NGE4IDggMCAwIDAgOC04LjRDNjY3LjYgNjAwLjMgNTk3LjUgNTMzIDUxMiA1MzN6bTEyOC0xMTJhNDggNDggMCAxIDAgOTYgMCA0OCA0OCAwIDEgMC05NiAweidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5GdW5kVHdvVG9uZSA9IGdldEljb24oJ2Z1bmQnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTkyOCAxNjBIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY0MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg4MzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNjMySDEzNlYyMzJoNzUydjU2MHonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ00xMzYgNzkyaDc1MlYyMzJIMTM2djU2MHptNTYuNC0xMzAuNWwyMTQuOS0yMTVjMy4xLTMuMSA4LjItMy4xIDExLjMgMEw1MzMgNTYxbDI1NC41LTI1NC42YzMuMS0zLjEgOC4yLTMuMSAxMS4zIDBsMzYuOCAzNi44YzMuMSAzLjEgMy4xIDguMiAwIDExLjNsLTI5NyAyOTcuMmE4LjAzIDguMDMgMCAwIDEtMTEuMyAwTDQxMi45IDUzNy4yIDI0MC40IDcwOS43YTguMDMgOC4wMyAwIDAgMS0xMS4zIDBsLTM2LjctMzYuOWE4LjAzIDguMDMgMCAwIDEgMC0xMS4zeidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ00yMjkuMSA3MDkuN2MzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDE3Mi41LTE3Mi41IDExNC40IDExNC41YzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBsMjk3LTI5Ny4yYzMuMS0zLjEgMy4xLTguMiAwLTExLjNsLTM2LjgtMzYuOGE4LjAzIDguMDMgMCAwIDAtMTEuMyAwTDUzMyA1NjEgNDE4LjYgNDQ2LjVhOC4wMyA4LjAzIDAgMCAwLTExLjMgMGwtMjE0LjkgMjE1YTguMDMgOC4wMyAwIDAgMCAwIDExLjNsMzYuNyAzNi45eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5GdW5uZWxQbG90VHdvVG9uZSA9IGdldEljb24oJ2Z1bm5lbC1wbG90JywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTQyMC42IDc5OGgxODIuOVY2NTBINDIwLjZ6TTI5Ny43IDM3NGg0MjguNmw4NS0xNDhIMjEyLjd6bTExMy4yIDE5Ny40bDguNCAxNC42aDE4NS4zbDguNC0xNC42TDY4OS42IDQzOEgzMzQuNHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODgwLjEgMTU0SDE0My45Yy0yNC41IDAtMzkuOCAyNi43LTI3LjUgNDhMMzQ5IDYwNy40VjgzOGMwIDE3LjcgMTQuMiAzMiAzMS44IDMyaDI2Mi40YzE3LjYgMCAzMS44LTE0LjMgMzEuOC0zMlY2MDcuNEw5MDcuNyAyMDJjMTIuMi0yMS4zLTMuMS00OC0yNy42LTQ4ek02MDMuNSA3OThINDIwLjZWNjUwaDE4Mi45djE0OHptOS41LTIyNi42bC04LjQgMTQuNkg0MTkuM2wtOC40LTE0LjZMMzM0LjQgNDM4aDM1NS4yTDYxMyA1NzEuNHpNNzI2LjMgMzc0SDI5Ny43bC04NS0xNDhoNTk4LjZsLTg1IDE0OHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuR2lmdFR3b1RvbmUgPSBnZXRJY29uKCdnaWZ0JywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTU0NiAzNzhoMjk4djEwNEg1NDZ6TTIyOCA1NTBoMjUwdjMwOEgyMjh6bS00OC0xNzJoMjk4djEwNEgxODB6bTM2NiAxNzJoMjUwdjMwOEg1NDZ6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg4MCAzMTBINzMyLjRjMTMuNi0yMS40IDIxLjYtNDYuOCAyMS42LTc0IDAtNzYuMS02MS45LTEzOC0xMzgtMTM4LTQxLjQgMC03OC43IDE4LjQtMTA0IDQ3LjQtMjUuMy0yOS02Mi42LTQ3LjQtMTA0LTQ3LjQtNzYuMSAwLTEzOCA2MS45LTEzOCAxMzggMCAyNy4yIDcuOSA1Mi42IDIxLjYgNzRIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYyMDBjMCA0LjQgMy42IDggOCA4aDQwdjM0NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWNTUwaDQwYzQuNCAwIDgtMy42IDgtOFYzNDJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTQ3OCA4NThIMjI4VjU1MGgyNTB2MzA4em0wLTM3NkgxODBWMzc4aDI5OHYxMDR6bTAtMTc2aC03MGMtMzguNiAwLTcwLTMxLjQtNzAtNzBzMzEuNC03MCA3MC03MCA3MCAzMS40IDcwIDcwdjcwem02OC03MGMwLTM4LjYgMzEuNC03MCA3MC03MHM3MCAzMS40IDcwIDcwLTMxLjQgNzAtNzAgNzBoLTcwdi03MHptMjUwIDYyMkg1NDZWNTUwaDI1MHYzMDh6bTQ4LTM3Nkg1NDZWMzc4aDI5OHYxMDR6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkhkZFR3b1RvbmUgPSBnZXRJY29uKCdoZGQnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMjMyIDg4OGg1NjBWNjgwSDIzMnYyMDh6bTQ0OC0xNDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDAtNDAtMTcuOS00MC00MCAxNy45LTQwIDQwLTQwek0yMzIgNjE2aDU2MFY0MDhIMjMydjIwOHptNzItMTI4YzAtNC40IDMuNi04IDgtOGgxODRjNC40IDAgOCAzLjYgOCA4djQ4YzAgNC40LTMuNiA4LTggOEgzMTJjLTQuNCAwLTgtMy42LTgtOHYtNDh6bS03Mi0xNDRoNTYwVjEzNkgyMzJ2MjA4em03Mi0xMjhjMC00LjQgMy42LTggOC04aDE4NGM0LjQgMCA4IDMuNiA4IDh2NDhjMCA0LjQtMy42IDgtOCA4SDMxMmMtNC40IDAtOC0zLjYtOC04di00OHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODMyIDY0SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlY5NmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDgyNEgyMzJWNjgwaDU2MHYyMDh6bTAtMjcySDIzMlY0MDhoNTYwdjIwOHptMC0yNzJIMjMyVjEzNmg1NjB2MjA4eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ00zMTIgNTQ0aDE4NGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOEgzMTJjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDh6bTAtMjcyaDE4NGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOEgzMTJjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDh6bTMyOCA1MTZhNDAgNDAgMCAxIDAgODAgMCA0MCA0MCAwIDEgMC04MCAweidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5IZWFydFR3b1RvbmUgPSBnZXRJY29uKCdoZWFydCcsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNOTIzIDI4My42YTI2MC4wNCAyNjAuMDQgMCAwIDAtNTYuOS04Mi44IDI2NC40IDI2NC40IDAgMCAwLTg0LTU1LjVBMjY1LjM0IDI2NS4zNCAwIDAgMCA2NzkuNyAxMjVjLTQ5LjMgMC05Ny40IDEzLjUtMTM5LjIgMzktMTAgNi4xLTE5LjUgMTIuOC0yOC41IDIwLjEtOS03LjMtMTguNS0xNC0yOC41LTIwLjEtNDEuOC0yNS41LTg5LjktMzktMTM5LjItMzktMzUuNSAwLTY5LjkgNi44LTEwMi40IDIwLjMtMzEuNCAxMy01OS43IDMxLjctODQgNTUuNWEyNTguNDQgMjU4LjQ0IDAgMCAwLTU2LjkgODIuOGMtMTMuOSAzMi4zLTIxIDY2LjYtMjEgMTAxLjkgMCAzMy4zIDYuOCA2OCAyMC4zIDEwMy4zIDExLjMgMjkuNSAyNy41IDYwLjEgNDguMiA5MSAzMi44IDQ4LjkgNzcuOSA5OS45IDEzMy45IDE1MS42IDkyLjggODUuNyAxODQuNyAxNDQuOSAxODguNiAxNDcuM2wyMy43IDE1LjJjMTAuNSA2LjcgMjQgNi43IDM0LjUgMGwyMy43LTE1LjJjMy45LTIuNSA5NS43LTYxLjYgMTg4LjYtMTQ3LjMgNTYtNTEuNyAxMDEuMS0xMDIuNyAxMzMuOS0xNTEuNiAyMC43LTMwLjkgMzctNjEuNSA0OC4yLTkxIDEzLjUtMzUuMyAyMC4zLTcwIDIwLjMtMTAzLjMuMS0zNS4zLTctNjkuNi0yMC45LTEwMS45ek01MTIgODE0LjhTMTU2IDU4Ni43IDE1NiAzODUuNUMxNTYgMjgzLjYgMjQwLjMgMjAxIDM0NC4zIDIwMWM3My4xIDAgMTM2LjUgNDAuOCAxNjcuNyAxMDAuNEM1NDMuMiAyNDEuOCA2MDYuNiAyMDEgNjc5LjcgMjAxYzEwNCAwIDE4OC4zIDgyLjYgMTg4LjMgMTg0LjUgMCAyMDEuMi0zNTYgNDI5LjMtMzU2IDQyOS4zeidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTY3OS43IDIwMWMtNzMuMSAwLTEzNi41IDQwLjgtMTY3LjcgMTAwLjRDNDgwLjggMjQxLjggNDE3LjQgMjAxIDM0NC4zIDIwMWMtMTA0IDAtMTg4LjMgODIuNi0xODguMyAxODQuNSAwIDIwMS4yIDM1NiA0MjkuMyAzNTYgNDI5LjNzMzU2LTIyOC4xIDM1Ni00MjkuM0M4NjggMjgzLjYgNzgzLjcgMjAxIDY3OS43IDIwMXonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuSGlnaGxpZ2h0VHdvVG9uZSA9IGdldEljb24oJ2hpZ2hsaWdodCcsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ00yMjkuNiA3OTYuM2gxNjAuMmw1NC4zLTU0LjEtODAuMS03OC45em0yMjAuNy0zOTcuMWwyNjIuOCAyNTguOSAxNDcuMy0xNDUtMjYyLjgtMjU5em0tNzcuMSAxNjYuMWwxNzEuNCAxNjguOSA2OC42LTY3LjYtMTcxLjQtMTY4Ljl6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTk1Ny42IDUwNy41TDYwMy4yIDE1OC4zYTcuOSA3LjkgMCAwIDAtMTEuMiAwTDM1My4zIDM5My41YTguMDMgOC4wMyAwIDAgMC0uMSAxMS4zbC4xLjEgNDAgMzkuNC0xMTcuMiAxMTUuM2E4LjAzIDguMDMgMCAwIDAtLjEgMTEuM2wuMS4xIDM5LjUgMzguOS0xODkuMSAxODdINzIuMWMtNC40IDAtOC4xIDMuNi04LjEgOHY1NS4yYzAgNC40IDMuNiA4IDggOGgzNDQuOWMyLjEgMCA0LjEtLjggNS42LTIuM2w3Ni4xLTc1LjZMNTM5IDgzMGE3LjkgNy45IDAgMCAwIDExLjIgMGwxMTcuMS0xMTUuNiA0MC4xIDM5LjVhNy45IDcuOSAwIDAgMCAxMS4yIDBsMjM4LjctMjM1LjJjMy40LTMgMy40LTggLjMtMTEuMnpNMzg5LjggNzk2LjNIMjI5LjZsMTM0LjQtMTMzIDgwLjEgNzguOS01NC4zIDU0LjF6bTE1NC44LTYyLjFMMzczLjIgNTY1LjNsNjguNi02Ny42IDE3MS40IDE2OC45LTY4LjYgNjcuNnptMTY4LjUtNzYuMUw0NTAuMyAzOTkuMmwxNDcuMy0xNDUuMSAyNjIuOCAyNTktMTQ3LjMgMTQ1eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5Ib21lVHdvVG9uZSA9IGdldEljb24oJ2hvbWUnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyLjEgMTcyLjZsLTM3MCAzNjkuN2g5NlY4NjhIMzkyVjY0MGMwLTIyLjEgMTcuOS00MCA0MC00MGgxNjBjMjIuMSAwIDQwIDE3LjkgNDAgNDB2MjI4aDE1My45VjU0Mi4zSDg4Mkw1MzUuMiAxOTUuN2wtMjMuMS0yMy4xem00MzQuNSA0MjIuOWMtNiA2LTEzLjEgMTAuOC0yMC44IDEzLjkgNy43LTMuMiAxNC44LTcuOSAyMC44LTEzLjl6bS04ODctMzQuN2M1IDMwLjMgMzEuNCA1My41IDYzLjEgNTMuNWguOWMtMzEuOSAwLTU4LjktMjMtNjQtNTMuNXptLS45LTEwLjV2LTEuOSAxLjl6bS4xLTIuNmMuMS0zLjEuNS02LjEgMS05LjEtLjYgMi45LS45IDYtMSA5LjF6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTk1MSA1MTBjMC0uMS0uMS0uMS0uMS0uMmwtMS44LTIuMWMtLjEtLjEtLjItLjMtLjQtLjQtLjctLjgtMS41LTEuNi0yLjItMi40TDU2MC4xIDExOC44bC0yNS45LTI1LjlhMzEuNSAzMS41IDAgMCAwLTQ0LjQgMEw3Ny41IDUwNWE2My42IDYzLjYgMCAwIDAtMTYgMjYuNmwtLjYgMi4xLS4zIDEuMS0uMyAxLjJjLS4yLjctLjMgMS40LS40IDIuMSAwIC4xIDAgLjMtLjEuNC0uNiAzLS45IDYtMSA5LjF2My4zYzAgLjUgMCAxIC4xIDEuNSAwIC41IDAgLjkuMSAxLjQgMCAuNS4xIDEgLjEgMS41IDAgLjYuMSAxLjIuMiAxLjggMCAuMy4xLjYuMS45bC4zIDIuNXYuMWM1LjEgMzAuNSAzMi4yIDUzLjUgNjQgNTMuNWg0Mi41Vjk0MGg2OTEuN1Y2MTQuM2g0My40YzguNiAwIDE2LjktMS43IDI0LjUtNC45czE0LjctNy45IDIwLjgtMTMuOWE2My42IDYzLjYgMCAwIDAgMTguNy00NS4zYzAtMTQuNy01LTI4LjgtMTQuMy00MC4yek01NjggODY4SDQ1NlY2NjRoMTEydjIwNHptMjE3LjktMzI1LjdWODY4SDYzMlY2NDBjMC0yMi4xLTE3LjktNDAtNDAtNDBINDMyYy0yMi4xIDAtNDAgMTcuOS00MCA0MHYyMjhIMjM4LjFWNTQyLjNoLTk2bDM3MC0zNjkuNyAyMy4xIDIzLjFMODgyIDU0Mi4zaC05Ni4xeidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5Ib3VyZ2xhc3NUd29Ub25lID0gZ2V0SWNvbignaG91cmdsYXNzJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTUxMiA1NDhjLTQyLjIgMC04MS45IDE2LjQtMTExLjcgNDYuM0ExNTYuNjMgMTU2LjYzIDAgMCAwIDM1NCA3MDZ2MTM0aDMxNlY3MDZjMC00Mi4yLTE2LjQtODEuOS00Ni4zLTExMS43QTE1Ni42MyAxNTYuNjMgMCAwIDAgNTEyIDU0OHpNMzU0IDMxOGMwIDQyLjIgMTYuNCA4MS45IDQ2LjMgMTExLjdDNDMwLjEgNDU5LjYgNDY5LjggNDc2IDUxMiA0NzZzODEuOS0xNi40IDExMS43LTQ2LjNDNjUzLjYgMzk5LjkgNjcwIDM2MC4yIDY3MCAzMThWMTg0SDM1NHYxMzR6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTc0MiAzMThWMTg0aDg2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04SDE5NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg4NnYxMzRjMCA4MS41IDQyLjQgMTUzLjIgMTA2LjQgMTk0LTY0IDQwLjgtMTA2LjQgMTEyLjUtMTA2LjQgMTk0djEzNGgtODZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNjMyYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC04NlY3MDZjMC04MS41LTQyLjQtMTUzLjItMTA2LjQtMTk0IDY0LTQwLjggMTA2LjQtMTEyLjUgMTA2LjQtMTk0em0tNzIgMzg4djEzNEgzNTRWNzA2YzAtNDIuMiAxNi40LTgxLjkgNDYuMy0xMTEuN0M0MzAuMSA1NjQuNCA0NjkuOCA1NDggNTEyIDU0OHM4MS45IDE2LjQgMTExLjcgNDYuM0M2NTMuNiA2MjQuMSA2NzAgNjYzLjggNjcwIDcwNnptMC0zODhjMCA0Mi4yLTE2LjQgODEuOS00Ni4zIDExMS43QzU5My45IDQ1OS42IDU1NC4yIDQ3NiA1MTIgNDc2cy04MS45LTE2LjQtMTExLjctNDYuM0ExNTYuNjMgMTU2LjYzIDAgMCAxIDM1NCAzMThWMTg0aDMxNnYxMzR6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkh0bWw1VHdvVG9uZSA9IGdldEljb24oJ2h0bWw1JywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ00xNDUgOTZsNjYgNzQ2LjZMNTExLjggOTI4bDI5OS42LTg1LjRMODc4LjcgOTZIMTQ1em02MTAuOSA3MDAuNmwtMjQ0LjEgNjkuNi0yNDUuMi02OS42LTU2LjctNjQxLjJoNjAzLjhsLTU3LjggNjQxLjJ6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMjA5LjkgMTU1LjRsNTYuNyA2NDEuMiAyNDUuMiA2OS42IDI0NC4xLTY5LjYgNTcuOC02NDEuMkgyMDkuOXptNTMwLjQgMTE3LjlsLTQuOCA0Ny4yLTEuNyAxOS41SDM4MS43bDguMiA5NC4ySDUxMXYtLjJoMjE0LjdsLTMuMiAyNC4zLTIxLjIgMjQyLjItMS43IDE2LjMtMTg3LjcgNTEuN3YuNGgtMS43bC0xODguNi01Mi0xMS4zLTE0NC43aDkxbDYuNSA3My4yIDEwMi40IDI3LjdoLjh2LS4ybDEwMi40LTI3LjcgMTEuNC0xMTguNUg1MTEuOXYuMUgzMDUuNGwtMjIuNy0yNTMuNUwyODEgMjQ5aDQ2MWwtMS43IDI0LjN6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTI4MSAyNDlsMS43IDI0LjMgMjIuNyAyNTMuNWgyMDYuNXYtLjFoMTEyLjlsLTExLjQgMTE4LjVMNTExIDY3Mi45di4yaC0uOGwtMTAyLjQtMjcuNy02LjUtNzMuMmgtOTFsMTEuMyAxNDQuNyAxODguNiA1MmgxLjd2LS40bDE4Ny43LTUxLjcgMS43LTE2LjMgMjEuMi0yNDIuMiAzLjItMjQuM0g1MTF2LjJIMzg5LjlsLTguMi05NC4yaDM1Mi4xbDEuNy0xOS41IDQuOC00Ny4yTDc0MiAyNDlINTExeidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5JZGNhcmRUd29Ub25lID0gZ2V0SWNvbignaWRjYXJkJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ005MjggMTYwSDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY2NDBjMCAxNy43IDE0LjMgMzIgMzIgMzJoODMyYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE5MmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDYzMkgxMzZWMjMyaDc1MnY1NjB6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMTM2IDc5Mmg3NTJWMjMySDEzNnY1NjB6bTQ3Mi0zNzJjMC00LjQgMS04IDIuMy04aDEyMy40YzEuMyAwIDIuMyAzLjYgMi4zIDh2NDhjMCA0LjQtMSA4LTIuMyA4SDYxMC4zYy0xLjMgMC0yLjMtMy42LTIuMy04di00OHptMCAxNDRjMC00LjQgMy4yLTggNy4xLThoMTg1LjdjMy45IDAgNy4xIDMuNiA3LjEgOHY0OGMwIDQuNC0zLjIgOC03LjEgOEg2MTUuMWMtMy45IDAtNy4xLTMuNi03LjEtOHYtNDh6TTIxNi4yIDY2NC42YzIuOC01My4zIDMxLjktOTkuNiA3NC42LTEyNi4xLTE4LjEtMjAtMjkuMS00Ni40LTI5LjEtNzUuNSAwLTYxLjkgNDkuOS0xMTIgMTExLjQtMTEyczExMS40IDUwLjEgMTExLjQgMTEyYzAgMjkuMS0xMSA1NS42LTI5LjEgNzUuNSA0Mi42IDI2LjQgNzEuOCA3Mi44IDc0LjYgMTI2LjFhOCA4IDAgMCAxLTggOC40aC00My45Yy00LjIgMC03LjYtMy4zLTcuOS03LjUtMy44LTUwLjUtNDYtOTAuNS05Ny4yLTkwLjVzLTkzLjQgNDAtOTcuMiA5MC41Yy0uMyA0LjItMy43IDcuNS03LjkgNy41SDIyNGMtNC42IDAtOC4yLTMuOC03LjgtOC40eidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTMyMS4zIDQ2M2E1MS43IDUyIDAgMSAwIDEwMy40IDAgNTEuNyA1MiAwIDEgMC0xMDMuNCAweidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ002MTAuMyA0NzZoMTIzLjRjMS4zIDAgMi4zLTMuNiAyLjMtOHYtNDhjMC00LjQtMS04LTIuMy04SDYxMC4zYy0xLjMgMC0yLjMgMy42LTIuMyA4djQ4YzAgNC40IDEgOCAyLjMgOHptNC44IDE0NGgxODUuN2MzLjkgMCA3LjEtMy42IDcuMS04di00OGMwLTQuNC0zLjItOC03LjEtOEg2MTUuMWMtMy45IDAtNy4xIDMuNi03LjEgOHY0OGMwIDQuNCAzLjIgOCA3LjEgOHpNMjI0IDY3M2g0My45YzQuMiAwIDcuNi0zLjMgNy45LTcuNSAzLjgtNTAuNSA0Ni05MC41IDk3LjItOTAuNXM5My40IDQwIDk3LjIgOTAuNWMuMyA0LjIgMy43IDcuNSA3LjkgNy41SDUyMmE4IDggMCAwIDAgOC04LjRjLTIuOC01My4zLTMyLTk5LjctNzQuNi0xMjYuMWExMTEuOCAxMTEuOCAwIDAgMCAyOS4xLTc1LjVjMC02MS45LTQ5LjktMTEyLTExMS40LTExMnMtMTExLjQgNTAuMS0xMTEuNCAxMTJjMCAyOS4xIDExIDU1LjUgMjkuMSA3NS41YTE1OC4wOSAxNTguMDkgMCAwIDAtNzQuNiAxMjYuMWMtLjQgNC42IDMuMiA4LjQgNy44IDguNHptMTQ5LTI2MmMyOC41IDAgNTEuNyAyMy4zIDUxLjcgNTJzLTIzLjIgNTItNTEuNyA1Mi01MS43LTIzLjMtNTEuNy01MiAyMy4yLTUyIDUxLjctNTJ6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkluZm9DaXJjbGVUd29Ub25lID0gZ2V0SWNvbignaW5mby1jaXJjbGUnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ001MTIgMTQwYy0yMDUuNCAwLTM3MiAxNjYuNi0zNzIgMzcyczE2Ni42IDM3MiAzNzIgMzcyIDM3Mi0xNjYuNiAzNzItMzcyLTE2Ni42LTM3Mi0zNzItMzcyem0zMiA1ODhjMCA0LjQtMy42IDgtOCA4aC00OGMtNC40IDAtOC0zLjYtOC04VjQ1NmMwLTQuNCAzLjYtOCA4LThoNDhjNC40IDAgOCAzLjYgOCA4djI3MnptLTMyLTM0NGE0OC4wMSA0OC4wMSAwIDAgMSAwLTk2IDQ4LjAxIDQ4LjAxIDAgMCAxIDAgOTZ6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTQ2NCAzMzZhNDggNDggMCAxIDAgOTYgMCA0OCA0OCAwIDEgMC05NiAwem03MiAxMTJoLTQ4Yy00LjQgMC04IDMuNi04IDh2MjcyYzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LThWNDU2YzAtNC40LTMuNi04LTgtOHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuSW5zdXJhbmNlVHdvVG9uZSA9IGdldEljb24oJ2luc3VyYW5jZScsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODY2LjkgMTY5LjlMNTI3LjEgNTQuMUM1MjMgNTIuNyA1MTcuNSA1MiA1MTIgNTJzLTExIC43LTE1LjEgMi4xTDE1Ny4xIDE2OS45Yy04LjMgMi44LTE1LjEgMTIuNC0xNS4xIDIxLjJ2NDgyLjRjMCA4LjggNS43IDIwLjQgMTIuNiAyNS45TDQ5OS4zIDk2OGMzLjUgMi43IDggNC4xIDEyLjYgNC4xczkuMi0xLjQgMTIuNi00LjFsMzQ0LjctMjY4LjZjNi45LTUuNCAxMi42LTE3IDEyLjYtMjUuOVYxOTEuMWMuMi04LjgtNi42LTE4LjMtMTQuOS0yMS4yek04MTAgNjU0LjNMNTEyIDg4Ni41IDIxNCA2NTQuM1YyMjYuN2wyOTgtMTAxLjYgMjk4IDEwMS42djQyNy42eidcbiAgICBdLCBbc2Vjb25kYXJ5Q29sb3IsICdNNTIxLjkgMzU4LjhoOTcuOXY0MS42aC05Ny45eiddLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTIxNCAyMjYuN3Y0MjcuNmwyOTggMjMyLjIgMjk4LTIzMi4yVjIyNi43TDUxMiAxMjUuMSAyMTQgMjI2Ljd6TTQxMy4zIDY1NmgtLjJjMCA0LjQtMy42IDgtOCA4aC0zNy4zYy00LjQgMC04LTMuNi04LThWNDcxLjRjLTcuNyA5LjItMTUuNCAxNy45LTIzLjEgMjZhNi4wNCA2LjA0IDAgMCAxLTEwLjItMi40bC0xMy4yLTQzLjVjLS42LTItLjItNC4xIDEuMi01LjYgMzctNDMuNCA2NC43LTk1LjEgODIuMi0xNTMuNiAxLjEtMy41IDUtNS4zIDguNC0zLjdsMzguNiAxOC4zYzIuNyAxLjMgNC4xIDQuNCAzLjIgNy4yYTQyOS4yIDQyOS4yIDAgMCAxLTMzLjYgNzlWNjU2em0yNTcuOS0zNDB2MTI3LjJjMCA0LjQtMy42IDgtOCA4aC02Ni43djE4LjZoOTguOGM0LjQgMCA4IDMuNiA4IDh2MzUuNmMwIDQuNC0zLjYgOC04IDhoLTU5YzE4LjEgMjkuMSA0MS44IDU0LjMgNzIuMyA3Ni45IDIuNiAyLjEgMy4yIDUuOSAxLjIgOC41bC0yNi4zIDM1LjNhNS45MiA1LjkyIDAgMCAxLTguOS43Yy0zMC42LTI5LjMtNTYuOC02NS4yLTc4LjEtMTA2LjlWNjU2YzAgNC40LTMuNiA4LTggOGgtMzYuMmMtNC40IDAtOC0zLjYtOC04VjUzNmMtMjIgNDQuNy00OSA4MC44LTgwLjYgMTA3LjZhNi4zOCA2LjM4IDAgMCAxLTQuOCAxLjRjLTEuNy0uMy0zLjItMS4zLTQuMS0yLjhMNDMyIDYwNS43YTYgNiAwIDAgMSAxLjYtOC4xYzI4LjYtMjAuMyA1MS45LTQ1LjIgNzEtNzZoLTU1LjFjLTQuNCAwLTgtMy42LTgtOFY0NzhjMC00LjQgMy42LTggOC04aDk0Ljl2LTE4LjZoLTY1LjljLTQuNCAwLTgtMy42LTgtOFYzMTZjMC00LjQgMy42LTggOC04aDE4NC43YzQuNCAwIDggMy42IDggOHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNDQzLjcgMzA2LjlsLTM4LjYtMTguM2MtMy40LTEuNi03LjMuMi04LjQgMy43LTE3LjUgNTguNS00NS4yIDExMC4yLTgyLjIgMTUzLjZhNS43IDUuNyAwIDAgMC0xLjIgNS42bDEzLjIgNDMuNWMxLjQgNC41IDcgNS44IDEwLjIgMi40IDcuNy04LjEgMTUuNC0xNi44IDIzLjEtMjZWNjU2YzAgNC40IDMuNiA4IDggOGgzNy4zYzQuNCAwIDgtMy42IDgtOGguMlYzOTMuMWE0MjkuMiA0MjkuMiAwIDAgMCAzMy42LTc5Yy45LTIuOC0uNS01LjktMy4yLTcuMnptMjYuOCA5LjF2MTI3LjRjMCA0LjQgMy42IDggOCA4aDY1LjlWNDcwaC05NC45Yy00LjQgMC04IDMuNi04IDh2MzUuNmMwIDQuNCAzLjYgOCA4IDhoNTUuMWMtMTkuMSAzMC44LTQyLjQgNTUuNy03MSA3NmE2IDYgMCAwIDAtMS42IDguMWwyMi44IDM2LjVjLjkgMS41IDIuNCAyLjUgNC4xIDIuOCAxLjcuMyAzLjUtLjIgNC44LTEuNCAzMS42LTI2LjggNTguNi02Mi45IDgwLjYtMTA3LjZ2MTIwYzAgNC40IDMuNiA4IDggOGgzNi4yYzQuNCAwIDgtMy42IDgtOFY1MzUuOWMyMS4zIDQxLjcgNDcuNSA3Ny42IDc4LjEgMTA2LjkgMi42IDIuNSA2LjcgMi4yIDguOS0uN2wyNi4zLTM1LjNjMi0yLjYgMS40LTYuNC0xLjItOC41LTMwLjUtMjIuNi01NC4yLTQ3LjgtNzIuMy03Ni45aDU5YzQuNCAwIDgtMy42IDgtOHYtMzUuNmMwLTQuNC0zLjYtOC04LThoLTk4Ljh2LTE4LjZoNjYuN2M0LjQgMCA4LTMuNiA4LThWMzE2YzAtNC40LTMuNi04LTgtOEg0NzguNWMtNC40IDAtOCAzLjYtOCA4em01MS40IDQyLjhoOTcuOXY0MS42aC05Ny45di00MS42eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5JbnRlcmFjdGlvblR3b1RvbmUgPSBnZXRJY29uKCdpbnRlcmFjdGlvbicsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNzI4SDE4NFYxODRoNjU2djY1NnonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ00xODQgODQwaDY1NlYxODRIMTg0djY1NnptMTE0LTQwMS45YzAtNTUuMyA0NC42LTEwMC4xIDk5LjctMTAwLjFoMjA1Ljh2LTUzLjRjMC01LjYgNi41LTguOCAxMC45LTUuM0w3MjMuNSAzNjVjMy41IDIuNyAzLjUgOCAwIDEwLjdsLTEwOS4xIDg1LjdjLTQuNCAzLjUtMTAuOS40LTEwLjktNS4zdi01My40SDM5Ny44Yy0xOS42IDAtMzUuNSAxNS45LTM1LjUgMzUuNnY3OC45YzAgMy44LTMuMSA2LjgtNi44IDYuOGgtNTAuN2MtMy44IDAtNi44LTMtNi44LTd2LTc4Ljl6bTIuNiAyMTAuM2wxMDkuMS04NS43YzQuNC0zLjUgMTAuOS0uNCAxMC45IDUuM3Y1My40aDIwNS42YzE5LjYgMCAzNS41LTE1LjkgMzUuNS0zNS42di03OC45YzAtMy44IDMuMS02LjggNi44LTYuOGg1MC43YzMuOCAwIDYuOCAzLjEgNi44IDYuOHY3OC45YzAgNTUuMy00NC42IDEwMC4xLTk5LjcgMTAwLjFINDIwLjZ2NTMuNGMwIDUuNi02LjUgOC44LTEwLjkgNS4zbC0xMDkuMS04NS43Yy0zLjUtMi43LTMuNS04IDAtMTAuNXonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNMzA0LjggNTI0aDUwLjdjMy43IDAgNi44LTMgNi44LTYuOHYtNzguOWMwLTE5LjcgMTUuOS0zNS42IDM1LjUtMzUuNmgyMDUuN3Y1My40YzAgNS43IDYuNSA4LjggMTAuOSA1LjNsMTA5LjEtODUuN2MzLjUtMi43IDMuNS04IDAtMTAuN2wtMTA5LjEtODUuN2MtNC40LTMuNS0xMC45LS4zLTEwLjkgNS4zVjMzOEgzOTcuN2MtNTUuMSAwLTk5LjcgNDQuOC05OS43IDEwMC4xVjUxN2MwIDQgMyA3IDYuOCA3em0tNC4yIDEzNC45bDEwOS4xIDg1LjdjNC40IDMuNSAxMC45LjMgMTAuOS01LjN2LTUzLjRoMjA1LjdjNTUuMSAwIDk5LjctNDQuOCA5OS43LTEwMC4xdi03OC45YzAtMy43LTMtNi44LTYuOC02LjhoLTUwLjdjLTMuNyAwLTYuOCAzLTYuOCA2Ljh2NzguOWMwIDE5LjctMTUuOSAzNS42LTM1LjUgMzUuNkg0MjAuNlY1NjhjMC01LjctNi41LTguOC0xMC45LTUuM2wtMTA5LjEgODUuN2MtMy41IDIuNS0zLjUgNy44IDAgMTAuNXonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuSW50ZXJhdGlvblR3b1RvbmUgPSBnZXRJY29uKCdpbnRlcmF0aW9uJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2eidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTE4NCA4NDBoNjU2VjE4NEgxODR2NjU2em0xMTQtNDAxLjljMC01NS4zIDQ0LjYtMTAwLjEgOTkuNy0xMDAuMWgyMDUuOHYtNTMuNGMwLTUuNiA2LjUtOC44IDEwLjktNS4zTDcyMy41IDM2NWMzLjUgMi43IDMuNSA4IDAgMTAuN2wtMTA5LjEgODUuN2MtNC40IDMuNS0xMC45LjQtMTAuOS01LjN2LTUzLjRIMzk3LjhjLTE5LjYgMC0zNS41IDE1LjktMzUuNSAzNS42djc4LjljMCAzLjgtMy4xIDYuOC02LjggNi44aC01MC43Yy0zLjggMC02LjgtMy02LjgtN3YtNzguOXptMi42IDIxMC4zbDEwOS4xLTg1LjdjNC40LTMuNSAxMC45LS40IDEwLjkgNS4zdjUzLjRoMjA1LjZjMTkuNiAwIDM1LjUtMTUuOSAzNS41LTM1LjZ2LTc4LjljMC0zLjggMy4xLTYuOCA2LjgtNi44aDUwLjdjMy44IDAgNi44IDMuMSA2LjggNi44djc4LjljMCA1NS4zLTQ0LjYgMTAwLjEtOTkuNyAxMDAuMUg0MjAuNnY1My40YzAgNS42LTYuNSA4LjgtMTAuOSA1LjNsLTEwOS4xLTg1LjdjLTMuNS0yLjctMy41LTggMC0xMC41eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ00zMDQuOCA1MjRoNTAuN2MzLjcgMCA2LjgtMyA2LjgtNi44di03OC45YzAtMTkuNyAxNS45LTM1LjYgMzUuNS0zNS42aDIwNS43djUzLjRjMCA1LjcgNi41IDguOCAxMC45IDUuM2wxMDkuMS04NS43YzMuNS0yLjcgMy41LTggMC0xMC43bC0xMDkuMS04NS43Yy00LjQtMy41LTEwLjktLjMtMTAuOSA1LjNWMzM4SDM5Ny43Yy01NS4xIDAtOTkuNyA0NC44LTk5LjcgMTAwLjFWNTE3YzAgNCAzIDcgNi44IDd6bS00LjIgMTM0LjlsMTA5LjEgODUuN2M0LjQgMy41IDEwLjkuMyAxMC45LTUuM3YtNTMuNGgyMDUuN2M1NS4xIDAgOTkuNy00NC44IDk5LjctMTAwLjF2LTc4LjljMC0zLjctMy02LjgtNi44LTYuOGgtNTAuN2MtMy43IDAtNi44IDMtNi44IDYuOHY3OC45YzAgMTkuNy0xNS45IDM1LjYtMzUuNSAzNS42SDQyMC42VjU2OGMwLTUuNy02LjUtOC44LTEwLjktNS4zbC0xMDkuMSA4NS43Yy0zLjUgMi41LTMuNSA3LjggMCAxMC41eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5MYXlvdXRUd29Ub25lID0gZ2V0SWNvbignbGF5b3V0JywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTM4NCAxODVoNDU2djEzNkgzODR6bS0yMDAgMGgxMzZ2NjU2SDE4NHptNjk2LTczSDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MWMwLTE3LjcgMTQuMy0zMiAzMi0zMmg3MzZjMTcuNyAwIDMyIDE0LjMgMzIgMzJ2LTFjMC0xNy43LTE0LjMtMzItMzItMzJ6TTM4NCAzODVoNDU2djQ1NkgzODR6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg4MCAxMTNIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NWMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMzIwIDg0MUgxODRWMTg1aDEzNnY2NTZ6bTUyMCAwSDM4NFYzODVoNDU2djQ1NnptMC01MjBIMzg0VjE4NWg0NTZ2MTM2eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5MZWZ0Q2lyY2xlVHdvVG9uZSA9IGdldEljb24oJ2xlZnQtY2lyY2xlJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTUxMiAxNDBjLTIwNS40IDAtMzcyIDE2Ni42LTM3MiAzNzJzMTY2LjYgMzcyIDM3MiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzItMTY2LjYtMzcyLTM3Mi0zNzJ6bTEwNCAyNDAuOWMwIDEwLjMtNC45IDE5LjktMTMuMiAyNS45TDQ1Ny40IDUxMmwxNDUuNCAxMDUuMWM4LjMgNiAxMy4yIDE1LjcgMTMuMiAyNS45djQ2LjljMCA2LjUtNy40IDEwLjMtMTIuNyA2LjVsLTI0Ni0xNzhhNy45NSA3Ljk1IDAgMCAxIDAtMTIuOWwyNDYtMTc4YzUuMy0zLjggMTIuNyAwIDEyLjcgNi41djQ2Ljl6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNjAzLjMgMzI3LjVsLTI0NiAxNzhhNy45NSA3Ljk1IDAgMCAwIDAgMTIuOWwyNDYgMTc4YzUuMyAzLjggMTIuNyAwIDEyLjctNi41VjY0M2MwLTEwLjItNC45LTE5LjktMTMuMi0yNS45TDQ1Ny40IDUxMmwxNDUuNC0xMDUuMmM4LjMtNiAxMy4yLTE1LjYgMTMuMi0yNS45VjMzNGMwLTYuNS03LjQtMTAuMy0xMi43LTYuNXonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuTGVmdFNxdWFyZVR3b1RvbmUgPSBnZXRJY29uKCdsZWZ0LXNxdWFyZScsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNzI4SDE4NFYxODRoNjU2djY1NnonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ00xODQgODQwaDY1NlYxODRIMTg0djY1NnptMTgxLjMtMzM0LjVsMjQ2LTE3OGM1LjMtMy44IDEyLjcgMCAxMi43IDYuNXY0Ni45YzAgMTAuMy00LjkgMTkuOS0xMy4yIDI1LjlMNDY1LjQgNTEybDE0NS40IDEwNS4yYzguMyA2IDEzLjIgMTUuNyAxMy4yIDI1LjlWNjkwYzAgNi41LTcuNCAxMC4zLTEyLjcgNi40bC0yNDYtMTc4YTcuOTUgNy45NSAwIDAgMSAwLTEyLjl6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTM2NS4zIDUxOC40bDI0NiAxNzhjNS4zIDMuOSAxMi43LjEgMTIuNy02LjR2LTQ2LjljMC0xMC4yLTQuOS0xOS45LTEzLjItMjUuOUw0NjUuNCA1MTJsMTQ1LjQtMTA1LjJjOC4zLTYgMTMuMi0xNS42IDEzLjItMjUuOVYzMzRjMC02LjUtNy40LTEwLjMtMTIuNy02LjVsLTI0NiAxNzhhNy45NSA3Ljk1IDAgMCAwIDAgMTIuOXonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuTGlrZVR3b1RvbmUgPSBnZXRJY29uKCdsaWtlJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTI3MyA0OTUuOXY0MjhsLjMtNDI4em01MzguMi04OC4zSDQ5Ni44bDkuNi0xOTguNGMuNi0xMS45LTQuNy0yMy4xLTE0LjYtMzAuNS02LjEtNC41LTEzLjYtNi44LTIxLjEtNi43LTE5LjYuMS0zNi45IDEzLjQtNDIuMiAzMi4zLTM3LjEgMTM0LjQtNjQuOSAyMzUuMi04My41IDMwMi41Vjg1MmgzOTkuNGE1Ni44NSA1Ni44NSAwIDAgMCAzMy42LTUxLjhjMC05LjctMi4zLTE4LjktNi45LTI3LjNsLTEzLjktMjUuNCAyMS45LTE5YTU2Ljc2IDU2Ljc2IDAgMCAwIDE5LjYtNDNjMC05LjctMi4zLTE4LjktNi45LTI3LjNsLTEzLjktMjUuNCAyMS45LTE5YTU2Ljc2IDU2Ljc2IDAgMCAwIDE5LjYtNDNjMC05LjctMi4zLTE4LjktNi45LTI3LjNsLTE0LTI1LjUgMjEuOS0xOWE1Ni43NiA1Ni43NiAwIDAgMCAxOS42LTQzYzAtMTkuMS0xMS0zNy41LTI4LjgtNDguNHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNMTEyIDUyOHYzNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjVWNDk2aC02NWMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6bTc3My45IDUuN2MxNi44LTIyLjIgMjYuMS00OS40IDI2LjEtNzcuNyAwLTQ0LjktMjUuMS04Ny41LTY1LjUtMTExYTY3LjY3IDY3LjY3IDAgMCAwLTM0LjMtOS4zSDU3Mi4zbDYtMTIyLjljMS41LTI5LjctOS01Ny45LTI5LjUtNzkuNGExMDYuNCAxMDYuNCAwIDAgMC03Ny45LTMzLjRjLTUyIDAtOTggMzUtMTExLjggODUuMWwtODUuOCAzMTAuOC0uMyA0MjhoNDcyLjFjOS4zIDAgMTguMi0xLjggMjYuNS01LjQgNDcuNi0yMC4zIDc4LjMtNjYuOCA3OC4zLTExOC40IDAtMTIuNi0xLjgtMjUtNS40LTM3IDE2LjgtMjIuMiAyNi4xLTQ5LjQgMjYuMS03Ny43IDAtMTIuNi0xLjgtMjUtNS40LTM3IDE2LjgtMjIuMiAyNi4xLTQ5LjQgMjYuMS03Ny43IDAtMTIuNi0xLjgtMjUtNS40LTM3ek04MjAuNCA0OTlsLTIxLjkgMTkgMTQgMjUuNWE1Ni4yIDU2LjIgMCAwIDEgNi45IDI3LjNjMCAxNi41LTcuMSAzMi4yLTE5LjYgNDNsLTIxLjkgMTkgMTMuOSAyNS40YTU2LjIgNTYuMiAwIDAgMSA2LjkgMjcuM2MwIDE2LjUtNy4xIDMyLjItMTkuNiA0M2wtMjEuOSAxOSAxMy45IDI1LjRhNTYuMiA1Ni4yIDAgMCAxIDYuOSAyNy4zYzAgMjIuNC0xMy4yIDQyLjYtMzMuNiA1MS44SDM0NVY1MDYuOGMxOC42LTY3LjIgNDYuNC0xNjggODMuNS0zMDIuNWE0NC4yOCA0NC4yOCAwIDAgMSA0Mi4yLTMyLjNjNy41LS4xIDE1IDIuMiAyMS4xIDYuNyA5LjkgNy40IDE1LjIgMTguNiAxNC42IDMwLjVsLTkuNiAxOTguNGgzMTQuNEM4MjkgNDE4LjUgODQwIDQzNi45IDg0MCA0NTZjMCAxNi41LTcuMSAzMi4yLTE5LjYgNDN6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkxvY2tUd29Ub25lID0gZ2V0SWNvbignbG9jaycsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODMyIDQ2NGgtNjhWMjQwYzAtNzAuNy01Ny4zLTEyOC0xMjgtMTI4SDM4OGMtNzAuNyAwLTEyOCA1Ny4zLTEyOCAxMjh2MjI0aC02OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2Mzg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlY0OTZjMC0xNy43LTE0LjMtMzItMzItMzJ6TTMzMiAyNDBjMC0zMC45IDI1LjEtNTYgNTYtNTZoMjQ4YzMwLjkgMCA1NiAyNS4xIDU2IDU2djIyNEgzMzJWMjQwem00NjAgNjAwSDIzMlY1MzZoNTYwdjMwNHonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ00yMzIgODQwaDU2MFY1MzZIMjMydjMwNHptMjgwLTIyNmE0OC4wMSA0OC4wMSAwIDAgMSAyOCA4N3Y1M2MwIDQuNC0zLjYgOC04IDhoLTQwYy00LjQgMC04LTMuNi04LTh2LTUzYTQ4LjAxIDQ4LjAxIDAgMCAxIDI4LTg3eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ000ODQgNzAxdjUzYzAgNC40IDMuNiA4IDggOGg0MGM0LjQgMCA4LTMuNiA4LTh2LTUzYTQ4LjAxIDQ4LjAxIDAgMSAwLTU2IDB6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLk1haWxUd29Ub25lID0gZ2V0SWNvbignbWFpbCcsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ000NzcuNSA1MzYuM0wxMzUuOSAyNzAuN2wtMjcuNS0yMS40IDI3LjYgMjEuNVY3OTJoNzUyVjI3MC44TDU0Ni4yIDUzNi4zYTU1Ljk5IDU1Ljk5IDAgMCAxLTY4LjcgMHonXG4gICAgXSwgW3NlY29uZGFyeUNvbG9yLCAnTTg3Ni4zIDE5OC44bDM5LjMgNTAuNS0yNy42IDIxLjUgMjcuNy0yMS41LTM5LjMtNTAuNXonXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNOTI4IDE2MEg5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjQwYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDgzMmMxNy43IDAgMzItMTQuMyAzMi0zMlYxOTJjMC0xNy43LTE0LjMtMzItMzItMzJ6bS05NC41IDcyLjFMNTEyIDQ4MiAxOTAuNSAyMzIuMWg2NDN6bTU0LjUgMzguN1Y3OTJIMTM2VjI3MC44bC0yNy42LTIxLjUgMjcuNSAyMS40IDM0MS42IDI2NS42YTU1Ljk5IDU1Ljk5IDAgMCAwIDY4LjcgMEw4ODggMjcwLjhsMjcuNi0yMS41LTM5LjMtNTAuNWguMWwzOS4zIDUwLjUtMjcuNyAyMS41eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5NZWRpY2luZUJveFR3b1RvbmUgPSBnZXRJY29uKCdtZWRpY2luZS1ib3gnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMjQ0LjMgMzI4TDE4NCA1MTMuNFY4NDBoNjU2VjUxMy40TDc3OS43IDMyOEgyNDQuM3pNNjYwIDYyOGMwIDQuNC0zLjYgOC04IDhINTQ0djEwOGMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LThWNjM2SDM3MmMtNC40IDAtOC0zLjYtOC04di00OGMwLTQuNCAzLjYtOCA4LThoMTA4VjQ2NGMwLTQuNCAzLjYtOCA4LThoNDhjNC40IDAgOCAzLjYgOCA4djEwOGgxMDhjNC40IDAgOCAzLjYgOCA4djQ4eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ002NTIgNTcySDU0NFY0NjRjMC00LjQtMy42LTgtOC04aC00OGMtNC40IDAtOCAzLjYtOCA4djEwOEgzNzJjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMTA4djEwOGMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04VjYzNmgxMDhjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTgzOS4yIDI3OC4xYTMyIDMyIDAgMCAwLTMwLjQtMjIuMUg3MzZWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMySDMyMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MTEyaC03Mi44YTMxLjkgMzEuOSAwIDAgMC0zMC40IDIyLjFMMTEyIDUwMnYzNzhjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjUwMmwtNzIuOC0yMjMuOXpNMzYwIDE4NGgzMDR2NzJIMzYwdi03MnptNDgwIDY1NkgxODRWNTEzLjRMMjQ0LjMgMzI4aDUzNS40TDg0MCA1MTMuNFY4NDB6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLk1laFR3b1RvbmUgPSBnZXRJY29uKCdtZWgnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ001MTIgMTQwYy0yMDUuNCAwLTM3MiAxNjYuNi0zNzIgMzcyczE2Ni42IDM3MiAzNzIgMzcyIDM3Mi0xNjYuNiAzNzItMzcyLTE2Ni42LTM3Mi0zNzItMzcyek0yODggNDIxYTQ4LjAxIDQ4LjAxIDAgMCAxIDk2IDAgNDguMDEgNDguMDEgMCAwIDEtOTYgMHptMzg0IDIwMGMwIDQuNC0zLjYgOC04IDhIMzYwYy00LjQgMC04LTMuNi04LTh2LTQ4YzAtNC40IDMuNi04IDgtOGgzMDRjNC40IDAgOCAzLjYgOCA4djQ4em0xNi0xNTJhNDguMDEgNDguMDEgMCAwIDEgMC05NiA0OC4wMSA0OC4wMSAwIDAgMSAwIDk2eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ00yODggNDIxYTQ4IDQ4IDAgMSAwIDk2IDAgNDggNDggMCAxIDAtOTYgMHptMzc2IDE0NEgzNjBjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMzA0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04em0tMjQtMTQ0YTQ4IDQ4IDAgMSAwIDk2IDAgNDggNDggMCAxIDAtOTYgMHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuTWVzc2FnZVR3b1RvbmUgPSBnZXRJY29uKCdtZXNzYWdlJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTc3NS4zIDI0OC45YTM2OS42MiAzNjkuNjIgMCAwIDAtMTE5LTgwQTM3MC4yIDM3MC4yIDAgMCAwIDUxMi4xIDE0MGgtMS43Yy05OS43LjQtMTkzIDM5LjQtMjYyLjggMTA5LjktNjkuOSA3MC41LTEwOCAxNjQuMS0xMDcuNiAyNjMuOC4zIDYwLjMgMTUuMyAxMjAuMiA0My41IDE3My4xbDQuNSA4LjRWODM2aDE0MC44bDguNCA0LjVjNTIuOSAyOC4yIDExMi44IDQzLjIgMTczLjEgNDMuNWgxLjdjOTkgMCAxOTItMzguMiAyNjIuMS0xMDcuNiA3MC40LTY5LjggMTA5LjUtMTYzLjEgMTEwLjEtMjYyLjcuMi01MC42LTkuNS05OS42LTI4LjktMTQ1LjhhMzcwLjE1IDM3MC4xNSAwIDAgMC04MC0xMTl6TTMxMiA1NjBhNDguMDEgNDguMDEgMCAwIDEgMC05NiA0OC4wMSA0OC4wMSAwIDAgMSAwIDk2em0yMDAgMGE0OC4wMSA0OC4wMSAwIDAgMSAwLTk2IDQ4LjAxIDQ4LjAxIDAgMCAxIDAgOTZ6bTIwMCAwYTQ4LjAxIDQ4LjAxIDAgMCAxIDAtOTYgNDguMDEgNDguMDEgMCAwIDEgMCA5NnonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNjY0IDUxMmE0OCA0OCAwIDEgMCA5NiAwIDQ4IDQ4IDAgMSAwLTk2IDB6bS00MDAgMGE0OCA0OCAwIDEgMCA5NiAwIDQ4IDQ4IDAgMSAwLTk2IDB6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTkyNS4yIDMzOC40Yy0yMi42LTUzLjctNTUtMTAxLjktOTYuMy0xNDMuM2E0NDQuMzUgNDQ0LjM1IDAgMCAwLTE0My4zLTk2LjNDNjMwLjYgNzUuNyA1NzIuMiA2NCA1MTIgNjRoLTJjLTYwLjYuMy0xMTkuMyAxMi4zLTE3NC41IDM1LjlhNDQ1LjM1IDQ0NS4zNSAwIDAgMC0xNDIgOTYuNWMtNDAuOSA0MS4zLTczIDg5LjMtOTUuMiAxNDIuOC0yMyA1NS40LTM0LjYgMTE0LjMtMzQuMyAxNzQuOUE0NDkuNCA0NDkuNCAwIDAgMCAxMTIgNzE0djE1MmE0NiA0NiAwIDAgMCA0NiA0NmgxNTIuMUE0NDkuNCA0NDkuNCAwIDAgMCA1MTAgOTYwaDIuMWM1OS45IDAgMTE4LTExLjYgMTcyLjctMzQuM2E0NDQuNDggNDQ0LjQ4IDAgMCAwIDE0Mi44LTk1LjJjNDEuMy00MC45IDczLjgtODguNyA5Ni41LTE0MiAyMy42LTU1LjIgMzUuNi0xMTMuOSAzNS45LTE3NC41LjMtNjAuOS0xMS41LTEyMC0zNC44LTE3NS42em0tMTUxLjEgNDM4QzcwNCA4NDUuOCA2MTEgODg0IDUxMiA4ODRoLTEuN2MtNjAuMy0uMy0xMjAuMi0xNS4zLTE3My4xLTQzLjVsLTguNC00LjVIMTg4VjY5NS4ybC00LjUtOC40QzE1NS4zIDYzMy45IDE0MC4zIDU3NCAxNDAgNTEzLjdjLS40LTk5LjcgMzcuNy0xOTMuMyAxMDcuNi0yNjMuOCA2OS44LTcwLjUgMTYzLjEtMTA5LjUgMjYyLjgtMTA5LjloMS43YzUwIDAgOTguNSA5LjcgMTQ0LjIgMjguOSA0NC42IDE4LjcgODQuNiA0NS42IDExOSA4MCAzNC4zIDM0LjMgNjEuMyA3NC40IDgwIDExOSAxOS40IDQ2LjIgMjkuMSA5NS4yIDI4LjkgMTQ1LjgtLjYgOTkuNi0zOS43IDE5Mi45LTExMC4xIDI2Mi43eidcbiAgICBdLCBbcHJpbWFyeUNvbG9yLCAnTTQ2NCA1MTJhNDggNDggMCAxIDAgOTYgMCA0OCA0OCAwIDEgMC05NiAweiddKTtcbn0pO1xuZXhwb3J0cy5NaW51c0NpcmNsZVR3b1RvbmUgPSBnZXRJY29uKCdtaW51cy1jaXJjbGUnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ001MTIgMTQwYy0yMDUuNCAwLTM3MiAxNjYuNi0zNzIgMzcyczE2Ni42IDM3MiAzNzIgMzcyIDM3Mi0xNjYuNiAzNzItMzcyLTE2Ni42LTM3Mi0zNzItMzcyem0xOTIgMzk2YzAgNC40LTMuNiA4LTggOEgzMjhjLTQuNCAwLTgtMy42LTgtOHYtNDhjMC00LjQgMy42LTggOC04aDM2OGM0LjQgMCA4IDMuNiA4IDh2NDh6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTY5NiA0ODBIMzI4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDM2OGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuTWludXNTcXVhcmVUd29Ub25lID0gZ2V0SWNvbignbWludXMtc3F1YXJlJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2eidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTE4NCA4NDBoNjU2VjE4NEgxODR2NjU2em0xMzYtMzUyYzAtNC40IDMuNi04IDgtOGgzNjhjNC40IDAgOCAzLjYgOCA4djQ4YzAgNC40LTMuNiA4LTggOEgzMjhjLTQuNCAwLTgtMy42LTgtOHYtNDh6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTMyOCA1NDRoMzY4YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04SDMyOGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuTW9iaWxlVHdvVG9uZSA9IGdldEljb24oJ21vYmlsZScsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNzQ0IDY0SDI4MGMtMzUuMyAwLTY0IDI4LjctNjQgNjR2NzY4YzAgMzUuMyAyOC43IDY0IDY0IDY0aDQ2NGMzNS4zIDAgNjQtMjguNyA2NC02NFYxMjhjMC0zNS4zLTI4LjctNjQtNjQtNjR6bS04IDgyNEgyODhWMTM2aDQ0OHY3NTJ6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMjg4IDg4OGg0NDhWMTM2SDI4OHY3NTJ6bTIyNC0xNDJjMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDAtNDAtMTcuOS00MC00MCAxNy45LTQwIDQwLTQweidcbiAgICBdLCBbcHJpbWFyeUNvbG9yLCAnTTQ3MiA3ODZhNDAgNDAgMCAxIDAgODAgMCA0MCA0MCAwIDEgMC04MCAweiddKTtcbn0pO1xuZXhwb3J0cy5QYXVzZUNpcmNsZVR3b1RvbmUgPSBnZXRJY29uKCdwYXVzZS1jaXJjbGUnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ001MTIgMTQwYy0yMDUuNCAwLTM3MiAxNjYuNi0zNzIgMzcyczE2Ni42IDM3MiAzNzIgMzcyIDM3Mi0xNjYuNiAzNzItMzcyLTE2Ni42LTM3Mi0zNzItMzcyem0tODAgNTI0YzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOFYzNjBjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHYzMDR6bTIyNCAwYzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOFYzNjBjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHYzMDR6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTQyNCAzNTJoLTQ4Yy00LjQgMC04IDMuNi04IDh2MzA0YzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LThWMzYwYzAtNC40LTMuNi04LTgtOHptMjI0IDBoLTQ4Yy00LjQgMC04IDMuNi04IDh2MzA0YzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LThWMzYwYzAtNC40LTMuNi04LTgtOHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuTW9uZXlDb2xsZWN0VHdvVG9uZSA9IGdldEljb24oJ21vbmV5LWNvbGxlY3QnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMjU2IDc0NC40bDI1NiA5My4xIDI1Ni05My4xVjE4NEgyNTZ2NTYwLjR6TTM1OS43IDMxM2MxLjItLjcgMi41LTEgMy44LTFoNTUuN2E4IDggMCAwIDEgNy4xIDQuNEw1MTEgNDg1LjJoMy4zTDU5OSAzMTYuNGMxLjMtMi43IDQuMS00LjQgNy4xLTQuNGg1NC41YzQuNCAwIDggMy42IDguMSA3LjkgMCAxLjMtLjQgMi42LTEgMy44TDU2NCA1MTUuM2g1Ny42YzQuNCAwIDggMy42IDggOHYyNy4xYzAgNC40LTMuNiA4LTggOGgtNzYuM3YzOWg3Ni4zYzQuNCAwIDggMy42IDggOHYyNy4xYzAgNC40LTMuNiA4LTggOGgtNzYuM1Y3MDRjMCA0LjQtMy42IDgtOCA4aC00OS45Yy00LjQgMC04LTMuNi04LTh2LTYzLjRoLTc2Yy00LjQgMC04LTMuNi04LTh2LTI3LjFjMC00LjQgMy42LTggOC04aDc2di0zOWgtNzZjLTQuNCAwLTgtMy42LTgtOHYtMjcuMWMwLTQuNCAzLjYtOCA4LThoNTdMMzU2LjUgMzIzLjhjLTIuMS0zLjgtLjctOC43IDMuMi0xMC44eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ005MTEuNSA3MDAuN2E4IDggMCAwIDAtMTAuMy00LjhMODQwIDcxOC4yVjE4MGMwLTM3LjYtMzAuNC02OC02OC02OEgyNTJjLTM3LjYgMC02OCAzMC40LTY4IDY4djUzOC4ybC02MS4zLTIyLjNjLS45LS4zLTEuOC0uNS0yLjctLjUtNC40IDAtOCAzLjYtOCA4Vjc2M2MwIDMuMyAyLjEgNi4zIDUuMyA3LjVMNTAxIDkxMC4xYzcuMSAyLjYgMTQuOCAyLjYgMjEuOSAwbDM4My44LTEzOS41YzMuMi0xLjIgNS4zLTQuMiA1LjMtNy41di01OS42YzAtMS0uMi0xLjktLjUtMi44ek03NjggNzQ0LjRsLTI1NiA5My4xLTI1Ni05My4xVjE4NGg1MTJ2NTYwLjR6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTQ2MC40IDUxNS40aC01N2MtNC40IDAtOCAzLjYtOCA4djI3LjFjMCA0LjQgMy42IDggOCA4aDc2djM5aC03NmMtNC40IDAtOCAzLjYtOCA4djI3LjFjMCA0LjQgMy42IDggOCA4aDc2VjcwNGMwIDQuNCAzLjYgOCA4IDhoNDkuOWM0LjQgMCA4LTMuNiA4LTh2LTYzLjVoNzYuM2M0LjQgMCA4LTMuNiA4LTh2LTI3LjFjMC00LjQtMy42LTgtOC04aC03Ni4zdi0zOWg3Ni4zYzQuNCAwIDgtMy42IDgtOHYtMjcuMWMwLTQuNC0zLjYtOC04LThINTY0bDEwMy43LTE5MS42Yy42LTEuMiAxLTIuNSAxLTMuOC0uMS00LjMtMy43LTcuOS04LjEtNy45aC01NC41Yy0zIDAtNS44IDEuNy03LjEgNC40bC04NC43IDE2OC44SDUxMWwtODQuNy0xNjguOGE4IDggMCAwIDAtNy4xLTQuNGgtNTUuN2MtMS4zIDAtMi42LjMtMy44IDEtMy45IDIuMS01LjMgNy0zLjIgMTAuOGwxMDMuOSAxOTEuNnonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuTm90aWZpY2F0aW9uVHdvVG9uZSA9IGdldEljb24oJ25vdGlmaWNhdGlvbicsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ00yMjkuNiA2NzguMWMtMy43IDExLjYtNS42IDIzLjktNS42IDM2LjQgMC0xMi41IDItMjQuOCA1LjctMzYuNGgtLjF6bTc2LjMtMjYwLjJIMTg0djE4OC4yaDEyMS45bDEyLjkgNS4yTDg0MCA4MjAuN1YyMDMuM0wzMTguOCA0MTIuN3onXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODgwIDExMmMtMy44IDAtNy43LjctMTEuNiAyLjNMMjkyIDM0NS45SDEyOGMtOC44IDAtMTYgNy40LTE2IDE2LjZ2Mjk5YzAgOS4yIDcuMiAxNi42IDE2IDE2LjZoMTAxLjdjLTMuNyAxMS42LTUuNyAyMy45LTUuNyAzNi40IDAgNjUuOSA1My44IDExOS41IDEyMCAxMTkuNSA1NS40IDAgMTAyLjEtMzcuNiAxMTUuOS04OC40bDQwOC42IDE2NC4yYzMuOSAxLjUgNy44IDIuMyAxMS42IDIuMyAxNi45IDAgMzItMTQuMiAzMi0zMy4yVjE0NS4yQzkxMiAxMjYuMiA4OTcgMTEyIDg4MCAxMTJ6TTM0NCA3NjIuM2MtMjYuNSAwLTQ4LTIxLjQtNDgtNDcuOCAwLTExLjIgMy45LTIxLjkgMTEtMzAuNGw4NC45IDM0LjFjLTIgMjQuNi0yMi43IDQ0LjEtNDcuOSA0NC4xem00OTYgNTguNEwzMTguOCA2MTEuM2wtMTIuOS01LjJIMTg0VjQxNy45aDEyMS45bDEyLjktNS4yTDg0MCAyMDMuM3Y2MTcuNHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuUGhvbmVUd29Ub25lID0gZ2V0SWNvbigncGhvbmUnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNzIxLjcgMTg0LjlMNjEwLjkgMjk1LjhsMTIwLjggMTIwLjctOCAyMS42QTQ4MS4yOSA0ODEuMjkgMCAwIDEgNDM4IDcyMy45bC0yMS42IDgtLjktLjktMTE5LjgtMTIwLTExMC44IDExMC45IDEwNC41IDEwNC41YzEwLjggMTAuNyAyNiAxNS43IDQwLjggMTMuMiAxMTcuOS0xOS41IDIzNS40LTgyLjkgMzMwLjktMTc4LjRzMTU4LjktMjEzLjEgMTc4LjQtMzMxYzIuNS0xNC44LTIuNS0zMC0xMy4zLTQwLjhMNzIxLjcgMTg0Ljl6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg3Ny4xIDIzOC43TDc3MC42IDEzMi4zYy0xMy0xMy0zMC40LTIwLjMtNDguOC0yMC4zcy0zNS44IDcuMi00OC44IDIwLjNMNTU4LjMgMjQ2LjhjLTEzIDEzLTIwLjMgMzAuNS0yMC4zIDQ4LjkgMCAxOC41IDcuMiAzNS44IDIwLjMgNDguOWw4OS42IDg5LjdhNDA1LjQ2IDQwNS40NiAwIDAgMS04Ni40IDEyNy4zYy0zNi43IDM2LjktNzkuNiA2Ni0xMjcuMiA4Ni42bC04OS42LTg5LjdjLTEzLTEzLTMwLjQtMjAuMy00OC44LTIwLjNhNjguMiA2OC4yIDAgMCAwLTQ4LjggMjAuM0wxMzIuMyA2NzNjLTEzIDEzLTIwLjMgMzAuNS0yMC4zIDQ4LjkgMCAxOC41IDcuMiAzNS44IDIwLjMgNDguOWwxMDYuNCAxMDYuNGMyMi4yIDIyLjIgNTIuOCAzNC45IDg0LjIgMzQuOSA2LjUgMCAxMi44LS41IDE5LjItMS42IDEzMi40LTIxLjggMjYzLjgtOTIuMyAzNjkuOS0xOTguM0M4MTggNjA2IDg4OC40IDQ3NC42IDkxMC40IDM0Mi4xYzYuMy0zNy42LTYuMy03Ni4zLTMzLjMtMTAzLjR6bS0zNy42IDkxLjVjLTE5LjUgMTE3LjktODIuOSAyMzUuNS0xNzguNCAzMzFzLTIxMyAxNTguOS0zMzAuOSAxNzguNGMtMTQuOCAyLjUtMzAtMi41LTQwLjgtMTMuMkwxODQuOSA3MjEuOSAyOTUuNyA2MTFsMTE5LjggMTIwIC45LjkgMjEuNi04YTQ4MS4yOSA0ODEuMjkgMCAwIDAgMjg1LjctMjg1LjhsOC0yMS42LTEyMC44LTEyMC43IDExMC44LTExMC45IDEwNC41IDEwNC41YzEwLjggMTAuOCAxNS44IDI2IDEzLjMgNDAuOHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuUGljdHVyZVR3b1RvbmUgPSBnZXRJY29uKCdwaWN0dXJlJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ005MjggMTYwSDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY2NDBjMCAxNy43IDE0LjMgMzIgMzIgMzJoODMyYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE5MmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDYzMkgxMzZ2LTM5LjlsMTM4LjUtMTY0LjMgMTUwLjEgMTc4TDY1OC4xIDQ4OSA4ODggNzYxLjZWNzkyem0wLTEyOS44TDY2NC4yIDM5Ni44Yy0zLjItMy44LTktMy44LTEyLjIgMEw0MjQuNiA2NjYuNGwtMTQ0LTE3MC43Yy0zLjItMy44LTktMy44LTEyLjIgMEwxMzYgNjUyLjdWMjMyaDc1MnY0MzAuMnonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ000MjQuNiA3NjUuOGwtMTUwLjEtMTc4TDEzNiA3NTIuMVY3OTJoNzUydi0zMC40TDY1OC4xIDQ4OXonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ00xMzYgNjUyLjdsMTMyLjQtMTU3YzMuMi0zLjggOS0zLjggMTIuMiAwbDE0NCAxNzAuN0w2NTIgMzk2LjhjMy4yLTMuOCA5LTMuOCAxMi4yIDBMODg4IDY2Mi4yVjIzMkgxMzZ2NDIwLjd6TTMwNCAyODBhODggODggMCAxIDEgMCAxNzYgODggODggMCAwIDEgMC0xNzZ6J1xuICAgIF0sIFtzZWNvbmRhcnlDb2xvciwgJ00yNzYgMzY4YTI4IDI4IDAgMSAwIDU2IDAgMjggMjggMCAxIDAtNTYgMHonXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNMzA0IDQ1NmE4OCA4OCAwIDEgMCAwLTE3NiA4OCA4OCAwIDAgMCAwIDE3NnptMC0xMTZjMTUuNSAwIDI4IDEyLjUgMjggMjhzLTEyLjUgMjgtMjggMjgtMjgtMTIuNS0yOC0yOCAxMi41LTI4IDI4LTI4eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5QbGF5Q2lyY2xlVHdvVG9uZSA9IGdldEljb24oJ3BsYXktY2lyY2xlJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDE0MGMtMjA1LjQgMC0zNzIgMTY2LjYtMzcyIDM3MnMxNjYuNiAzNzIgMzcyIDM3MiAzNzItMTY2LjYgMzcyLTM3Mi0xNjYuNi0zNzItMzcyLTM3MnptMTY0LjEgMzc4LjJMNDU3LjcgNjc3LjFhOC4wMiA4LjAyIDAgMCAxLTEyLjctNi41VjM1M2E4IDggMCAwIDEgMTIuNy02LjVsMjE4LjQgMTU4LjhhNy45IDcuOSAwIDAgMSAwIDEyLjl6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTY3Ni4xIDUwNS4zTDQ1Ny43IDM0Ni41QTggOCAwIDAgMCA0NDUgMzUzdjMxNy42YTguMDIgOC4wMiAwIDAgMCAxMi43IDYuNWwyMTguNC0xNTguOWE3LjkgNy45IDAgMCAwIDAtMTIuOXonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuUGxheVNxdWFyZVR3b1RvbmUgPSBnZXRJY29uKCdwbGF5LXNxdWFyZScsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNzI4SDE4NFYxODRoNjU2djY1NnonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ00xODQgODQwaDY1NlYxODRIMTg0djY1NnptMjQwLTQ4NC43YzAtOS40IDEwLjktMTQuNyAxOC4zLTguOGwxOTkuNCAxNTYuN2ExMS4yIDExLjIgMCAwIDEgMCAxNy42TDQ0Mi4zIDY3Ny42Yy03LjQgNS44LTE4LjMuNi0xOC4zLTguOFYzNTUuM3onXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNDQyLjMgNjc3LjZsMTk5LjQtMTU2LjhhMTEuMiAxMS4yIDAgMCAwIDAtMTcuNkw0NDIuMyAzNDYuNWMtNy40LTUuOS0xOC4zLS42LTE4LjMgOC44djMxMy41YzAgOS40IDEwLjkgMTQuNiAxOC4zIDguOHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuUGllQ2hhcnRUd29Ub25lID0gZ2V0SWNvbigncGllLWNoYXJ0JywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTMxNi4yIDkyMC41Yy00Ny42LTIwLjEtOTAuNC00OS0xMjcuMS04NS43YTM5OC4xOSAzOTguMTkgMCAwIDEtODUuNy0xMjcuMUEzOTcuMTIgMzk3LjEyIDAgMCAxIDcyIDU1Mi4ydi4yYTM5OC41NyAzOTguNTcgMCAwIDAgMTE3IDI4Mi41YzM2LjcgMzYuNyA3OS40IDY1LjUgMTI3IDg1LjZBMzk2LjY0IDM5Ni42NCAwIDAgMCA0NzEuNiA5NTJjMjcgMCA1My42LTIuNyA3OS43LTcuOS0yNS45IDUuMi01Mi40IDcuOC03OS4zIDcuOC01NCAuMS0xMDYuNC0xMC41LTE1NS44LTMxLjR6TTU2MCA0NzJjLTQuNCAwLTgtMy42LTgtOFY3OS45YzAtMS4zLjMtMi41LjktMy42LS45IDEuMy0xLjUgMi45LTEuNSA0LjZ2MzgzLjdjMCA0LjQgMy42IDggOCA4bDM4My42LTFjMS42IDAgMy4xLS41IDQuNC0xLjMtMSAuNS0yLjIuNy0zLjQuN2wtMzg0IDF6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNjE5LjggMTQ3LjZ2MjU2LjZsMjU2LjQtLjdjLTEzLTYyLjUtNDQuMy0xMjAuNS05MC0xNjYuMWEzMzIuMjQgMzMyLjI0IDAgMCAwLTE2Ni40LTg5Ljh6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNDM4IDIyMS43Yy03NS45IDcuNi0xNDYuMiA0MC45LTIwMC44IDk1LjVDMTc0LjUgMzc5LjkgMTQwIDQ2My4zIDE0MCA1NTJzMzQuNSAxNzIuMSA5Ny4yIDIzNC44YzYyLjMgNjIuMyAxNDUuMSA5Ni44IDIzMy4yIDk3LjIgODguMi40IDE3Mi43LTM0LjEgMjM1LjMtOTYuMkM3NjEgNzMzIDc5NC42IDY2Mi4zIDgwMi4zIDU4Nkg0MzhWMjIxLjd6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg2NCA1MThINTA2VjE2MGMwLTQuNC0zLjYtOC04LThoLTI2YTM5OC40NiAzOTguNDYgMCAwIDAtMjgyLjggMTE3LjEgMzk4LjE5IDM5OC4xOSAwIDAgMC04NS43IDEyNy4xQTM5Ny42MSAzOTcuNjEgMCAwIDAgNzIgNTUydi4yYzAgNTMuOSAxMC42IDEwNi4yIDMxLjQgMTU1LjUgMjAuMSA0Ny42IDQ5IDkwLjQgODUuNyAxMjcuMSAzNi43IDM2LjcgNzkuNSA2NS42IDEyNy4xIDg1LjdBMzk3LjYxIDM5Ny42MSAwIDAgMCA0NzIgOTUyYzI2LjkgMCA1My40LTIuNiA3OS4zLTcuOCAyNi4xLTUuMyA1MS43LTEzLjEgNzYuNC0yMy42IDQ3LjYtMjAuMSA5MC40LTQ5IDEyNy4xLTg1LjcgMzYuNy0zNi43IDY1LjYtNzkuNSA4NS43LTEyNy4xQTM5Ny42MSAzOTcuNjEgMCAwIDAgODcyIDU1MnYtMjZjMC00LjQtMy42LTgtOC04ek03MDUuNyA3ODcuOEEzMzEuNTkgMzMxLjU5IDAgMCAxIDQ3MC40IDg4NGMtODguMS0uNC0xNzAuOS0zNC45LTIzMy4yLTk3LjJDMTc0LjUgNzI0LjEgMTQwIDY0MC43IDE0MCA1NTJzMzQuNS0xNzIuMSA5Ny4yLTIzNC44YzU0LjYtNTQuNiAxMjQuOS04Ny45IDIwMC44LTk1LjVWNTg2aDM2NC4zYy03LjcgNzYuMy00MS4zIDE0Ny05Ni42IDIwMS44eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ005NTIgNDYyLjRsLTIuNi0yOC4yYy04LjUtOTIuMS00OS40LTE3OS0xMTUuMi0yNDQuNkEzOTkuNCAzOTkuNCAwIDAgMCA1ODkgNzQuNkw1NjAuNyA3MmMtMy40LS4zLTYuNCAxLjUtNy44IDQuM2E4LjcgOC43IDAgMCAwLS45IDMuNlY0NjRjMCA0LjQgMy42IDggOCA4bDM4NC0xYzEuMiAwIDIuMy0uMyAzLjQtLjdhOC4xIDguMSAwIDAgMCA0LjYtNy45em0tMzMyLjItNTguMlYxNDcuNmEzMzIuMjQgMzMyLjI0IDAgMCAxIDE2Ni40IDg5LjhjNDUuNyA0NS42IDc3IDEwMy42IDkwIDE2Ni4xbC0yNTYuNC43eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5QbHVzQ2lyY2xlVHdvVG9uZSA9IGdldEljb24oJ3BsdXMtY2lyY2xlJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDE0MGMtMjA1LjQgMC0zNzIgMTY2LjYtMzcyIDM3MnMxNjYuNiAzNzIgMzcyIDM3MiAzNzItMTY2LjYgMzcyLTM3Mi0xNjYuNi0zNzItMzcyLTM3MnptMTkyIDM5NmMwIDQuNC0zLjYgOC04IDhINTQ0djE1MmMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LThWNTQ0SDMyOGMtNC40IDAtOC0zLjYtOC04di00OGMwLTQuNCAzLjYtOCA4LThoMTUyVjMyOGMwLTQuNCAzLjYtOCA4LThoNDhjNC40IDAgOCAzLjYgOCA4djE1MmgxNTJjNC40IDAgOCAzLjYgOCA4djQ4eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ002OTYgNDgwSDU0NFYzMjhjMC00LjQtMy42LTgtOC04aC00OGMtNC40IDAtOCAzLjYtOCA4djE1MkgzMjhjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMTUydjE1MmMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04VjU0NGgxNTJjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLlBsdXNTcXVhcmVUd29Ub25lID0gZ2V0SWNvbigncGx1cy1zcXVhcmUnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMTg0IDg0MGg2NTZWMTg0SDE4NHY2NTZ6bTEzNi0zNTJjMC00LjQgMy42LTggOC04aDE1MlYzMjhjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHYxNTJoMTUyYzQuNCAwIDggMy42IDggOHY0OGMwIDQuNC0zLjYgOC04IDhINTQ0djE1MmMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LThWNTQ0SDMyOGMtNC40IDAtOC0zLjYtOC04di00OHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNMzI4IDU0NGgxNTJ2MTUyYzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LThWNTQ0aDE1MmM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOEg1NDRWMzI4YzAtNC40LTMuNi04LTgtOGgtNDhjLTQuNCAwLTggMy42LTggOHYxNTJIMzI4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5Qb3VuZENpcmNsZVR3b1RvbmUgPSBnZXRJY29uKCdwb3VuZC1jaXJjbGUnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ001MTIgMTQwYy0yMDUuNCAwLTM3MiAxNjYuNi0zNzIgMzcyczE2Ni42IDM3MiAzNzIgMzcyIDM3Mi0xNjYuNiAzNzItMzcyLTE2Ni42LTM3Mi0zNzItMzcyem0xNDYgNTgyLjFjMCA0LjQtMy42IDgtOCA4SDM3Ni4yYy00LjQgMC04LTMuNi04LTh2LTM4LjVjMC0zLjcgMi41LTYuOSA2LjEtNy44IDQ0LTEwLjkgNzIuOC00OSA3Mi44LTk0LjIgMC0xNC43LTIuNS0yOS40LTUuOS00NC4ySDM3NGMtNC40IDAtOC0zLjYtOC04di0zMGMwLTQuNCAzLjYtOCA4LThoNTMuN2MtNy44LTI1LjEtMTQuNi01MC43LTE0LjYtNzcuMSAwLTc1LjggNTguNi0xMjAuMyAxNTEuNS0xMjAuMyAyNi41IDAgNTEuNCA1LjUgNzAuMyAxMi43IDMuMSAxLjIgNS4yIDQuMiA1LjIgNy41djM5LjVhOCA4IDAgMCAxLTEwLjYgNy42Yy0xNy45LTYuNC0zOS0xMC41LTYwLjQtMTAuNS01My4zIDAtODcuMyAyNi42LTg3LjMgNzAuMiAwIDI0LjcgNi4yIDQ3LjkgMTMuNCA3MC41aDExMmM0LjQgMCA4IDMuNiA4IDh2MzBjMCA0LjQtMy42IDgtOCA4aC05OC42YzMuMSAxMy4yIDUuMyAyNi45IDUuMyA0MSAwIDQwLjctMTYuNSA3My45LTQzLjkgOTEuMXY0LjdoMTgwYzQuNCAwIDggMy42IDggOHYzOS44eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ002NTAgNjc0LjNINDcwdi00LjdjMjcuNC0xNy4yIDQzLjktNTAuNCA0My45LTkxLjEgMC0xNC4xLTIuMi0yNy44LTUuMy00MWg5OC42YzQuNCAwIDgtMy42IDgtOHYtMzBjMC00LjQtMy42LTgtOC04aC0xMTJjLTcuMi0yMi42LTEzLjQtNDUuOC0xMy40LTcwLjUgMC00My42IDM0LTcwLjIgODcuMy03MC4yIDIxLjQgMCA0Mi41IDQuMSA2MC40IDEwLjVhOCA4IDAgMCAwIDEwLjYtNy42di0zOS41YzAtMy4zLTIuMS02LjMtNS4yLTcuNS0xOC45LTcuMi00My44LTEyLjctNzAuMy0xMi43LTkyLjkgMC0xNTEuNSA0NC41LTE1MS41IDEyMC4zIDAgMjYuNCA2LjggNTIgMTQuNiA3Ny4xSDM3NGMtNC40IDAtOCAzLjYtOCA4djMwYzAgNC40IDMuNiA4IDggOGg2Ny4yYzMuNCAxNC44IDUuOSAyOS41IDUuOSA0NC4yIDAgNDUuMi0yOC44IDgzLjMtNzIuOCA5NC4yLTMuNi45LTYuMSA0LjEtNi4xIDcuOHYzOC41YzAgNC40IDMuNiA4IDggOEg2NTBjNC40IDAgOC0zLjYgOC04di0zOS44YzAtNC40LTMuNi04LTgtOHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuUHJpbnRlclR3b1RvbmUgPSBnZXRJY29uKCdwcmludGVyJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTM2MCAxODBoMzA0djE1MkgzNjB6bTQ5MiAyMjBIMTcyYy02LjYgMC0xMiA1LjQtMTIgMTJ2MjkyaDEzMlY1MDBoNDQwdjIwNGgxMzJWNDEyYzAtNi42LTUuNC0xMi0xMi0xMnptLTI0IDg0YzAgNC40LTMuNiA4LTggOGgtNDBjLTQuNCAwLTgtMy42LTgtOHYtNDBjMC00LjQgMy42LTggOC04aDQwYzQuNCAwIDggMy42IDggOHY0MHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODUyIDMzMkg3MzJWMTIwYzAtNC40LTMuNi04LTgtOEgzMDBjLTQuNCAwLTggMy42LTggOHYyMTJIMTcyYy00NC4yIDAtODAgMzUuOC04MCA4MHYzMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJoMTY4djEzMmMwIDQuNCAzLjYgOCA4IDhoNDI0YzQuNCAwIDgtMy42IDgtOFY3NzJoMTY4YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjQxMmMwLTQ0LjItMzUuOC04MC04MC04MHpNMzYwIDE4MGgzMDR2MTUySDM2MFYxODB6bTMwNCA2NjRIMzYwVjU2OGgzMDR2Mjc2em0yMDAtMTQwSDczMlY1MDBIMjkydjIwNEgxNjBWNDEyYzAtNi42IDUuNC0xMiAxMi0xMmg2ODBjNi42IDAgMTIgNS40IDEyIDEydjI5MnonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODIwIDQzNmgtNDBjLTQuNCAwLTggMy42LTggOHY0MGMwIDQuNCAzLjYgOCA4IDhoNDBjNC40IDAgOC0zLjYgOC04di00MGMwLTQuNC0zLjYtOC04LTh6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLlByb2ZpbGVUd29Ub25lID0gZ2V0SWNvbigncHJvZmlsZScsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNzI4SDE4NFYxODRoNjU2djY1NnonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ00xODQgODQwaDY1NlYxODRIMTg0djY1NnptMzAwLTQ5NmMwLTQuNCAzLjYtOCA4LThoMTg0YzQuNCAwIDggMy42IDggOHY0OGMwIDQuNC0zLjYgOC04IDhINDkyYy00LjQgMC04LTMuNi04LTh2LTQ4em0wIDE0NGMwLTQuNCAzLjYtOCA4LThoMTg0YzQuNCAwIDggMy42IDggOHY0OGMwIDQuNC0zLjYgOC04IDhINDkyYy00LjQgMC04LTMuNi04LTh2LTQ4em0wIDE0NGMwLTQuNCAzLjYtOCA4LThoMTg0YzQuNCAwIDggMy42IDggOHY0OGMwIDQuNC0zLjYgOC04IDhINDkyYy00LjQgMC04LTMuNi04LTh2LTQ4ek0zODAgMzI4YzIyLjEgMCA0MCAxNy45IDQwIDQwcy0xNy45IDQwLTQwIDQwLTQwLTE3LjktNDAtNDAgMTcuOS00MCA0MC00MHptMCAxNDRjMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDAtNDAtMTcuOS00MC00MCAxNy45LTQwIDQwLTQwem0wIDE0NGMyMi4xIDAgNDAgMTcuOSA0MCA0MHMtMTcuOSA0MC00MCA0MC00MC0xNy45LTQwLTQwIDE3LjktNDAgNDAtNDB6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTM0MCA2NTZhNDAgNDAgMCAxIDAgODAgMCA0MCA0MCAwIDEgMC04MCAwem0wLTE0NGE0MCA0MCAwIDEgMCA4MCAwIDQwIDQwIDAgMSAwLTgwIDB6bTAtMTQ0YTQwIDQwIDAgMSAwIDgwIDAgNDAgNDAgMCAxIDAtODAgMHptMTUyIDMyMGgxODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThINDkyYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4em0wLTE0NGgxODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThINDkyYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4em0wLTE0NGgxODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThINDkyYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5Qcm9qZWN0VHdvVG9uZSA9IGdldEljb24oJ3Byb2plY3QnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMTg0IDg0MGg2NTZWMTg0SDE4NHY2NTZ6bTQ3Mi01NjBjMC00LjQgMy42LTggOC04aDgwYzQuNCAwIDggMy42IDggOHYyNTZjMCA0LjQtMy42IDgtOCA4aC04MGMtNC40IDAtOC0zLjYtOC04VjI4MHptLTE5MiAwYzAtNC40IDMuNi04IDgtOGg4MGM0LjQgMCA4IDMuNiA4IDh2MTg0YzAgNC40LTMuNiA4LTggOGgtODBjLTQuNCAwLTgtMy42LTgtOFYyODB6bS0xOTIgMGMwLTQuNCAzLjYtOCA4LThoODBjNC40IDAgOCAzLjYgOCA4djQ2NGMwIDQuNC0zLjYgOC04IDhoLTgwYy00LjQgMC04LTMuNi04LThWMjgweidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ00yODAgNzUyaDgwYzQuNCAwIDgtMy42IDgtOFYyODBjMC00LjQtMy42LTgtOC04aC04MGMtNC40IDAtOCAzLjYtOCA4djQ2NGMwIDQuNCAzLjYgOCA4IDh6bTE5Mi0yODBoODBjNC40IDAgOC0zLjYgOC04VjI4MGMwLTQuNC0zLjYtOC04LThoLTgwYy00LjQgMC04IDMuNi04IDh2MTg0YzAgNC40IDMuNiA4IDggOHptMTkyIDcyaDgwYzQuNCAwIDgtMy42IDgtOFYyODBjMC00LjQtMy42LTgtOC04aC04MGMtNC40IDAtOCAzLjYtOCA4djI1NmMwIDQuNCAzLjYgOCA4IDh6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLlB1c2hwaW5Ud29Ub25lID0gZ2V0SWNvbigncHVzaHBpbicsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ000NzQuOCAzNTcuN2wtMjQuNSAyNC41LTM0LjQtMy44Yy05LjYtMS4xLTE5LjMtMS42LTI4LjktMS42LTI5IDAtNTcuNSA0LjctODQuNyAxNC4xLTE0IDQuOC0yNy40IDEwLjgtNDAuMyAxNy45bDM1My4xIDM1My4zYTI1OS45MiAyNTkuOTIgMCAwIDAgMzAuNC0xNTMuOWwtMy44LTM0LjQgMjQuNS0yNC41TDgwMCA0MTUuNSA2MDguNSAyMjQgNDc0LjggMzU3Ljd6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg3OC4zIDM5Mi4xTDYzMS45IDE0NS43Yy02LjUtNi41LTE1LTkuNy0yMy41LTkuN3MtMTcgMy4yLTIzLjUgOS43TDQyMy44IDMwNi45Yy0xMi4yLTEuNC0yNC41LTItMzYuOC0yLTczLjIgMC0xNDYuNCAyNC4xLTIwNi41IDcyLjNhMzMuMjMgMzMuMjMgMCAwIDAtMi43IDQ5LjRsMTgxLjcgMTgxLjctMjE1LjQgMjE1LjJhMTUuOCAxNS44IDAgMCAwLTQuNiA5LjhsLTMuNCAzNy4yYy0uOSA5LjQgNi42IDE3LjQgMTUuOSAxNy40LjUgMCAxIDAgMS41LS4xbDM3LjItMy40YzMuNy0uMyA3LjItMiA5LjgtNC42bDIxNS40LTIxNS40IDE4MS43IDE4MS43YzYuNSA2LjUgMTUgOS43IDIzLjUgOS43IDkuNyAwIDE5LjMtNC4yIDI1LjktMTIuNCA1Ni4zLTcwLjMgNzkuNy0xNTguMyA3MC4yLTI0My40bDE2MS4xLTE2MS4xYzEyLjktMTIuOCAxMi45LTMzLjggMC00Ni44ek02NjYuMiA1NDkuM2wtMjQuNSAyNC41IDMuOCAzNC40YTI1OS45MiAyNTkuOTIgMCAwIDEtMzAuNCAxNTMuOUwyNjIgNDA4LjhjMTIuOS03LjEgMjYuMy0xMy4xIDQwLjMtMTcuOSAyNy4yLTkuNCA1NS43LTE0LjEgODQuNy0xNC4xIDkuNiAwIDE5LjMuNSAyOC45IDEuNmwzNC40IDMuOCAyNC41LTI0LjVMNjA4LjUgMjI0IDgwMCA0MTUuNSA2NjYuMiA1NDkuM3onXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuUHJvcGVydHlTYWZldHlUd29Ub25lID0gZ2V0SWNvbigncHJvcGVydHktc2FmZXR5JywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004NjYuOSAxNjkuOUw1MjcuMSA1NC4xQzUyMyA1Mi43IDUxNy41IDUyIDUxMiA1MnMtMTEgLjctMTUuMSAyLjFMMTU3LjEgMTY5LjljLTguMyAyLjgtMTUuMSAxMi40LTE1LjEgMjEuMnY0ODIuNGMwIDguOCA1LjcgMjAuNCAxMi42IDI1LjlMNDk5LjMgOTY4YzMuNSAyLjcgOCA0LjEgMTIuNiA0LjFzOS4yLTEuNCAxMi42LTQuMWwzNDQuNy0yNjguNmM2LjktNS40IDEyLjYtMTcgMTIuNi0yNS45VjE5MS4xYy4yLTguOC02LjYtMTguMy0xNC45LTIxLjJ6TTgxMCA2NTQuM0w1MTIgODg2LjUgMjE0IDY1NC4zVjIyNi43bDI5OC0xMDEuNiAyOTggMTAxLjZ2NDI3LjZ6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMjE0IDIyNi43djQyNy42bDI5OCAyMzIuMiAyOTgtMjMyLjJWMjI2LjdMNTEyIDEyNS4xIDIxNCAyMjYuN3pNNTkzLjkgMzE4aDQ1YzUuNSAwIDEwIDQuNSAxMCAxMCAuMSAxLjctLjMgMy4zLTEuMSA0LjhsLTg3LjcgMTYxLjFoNDUuN2M1LjUgMCAxMCA0LjUgMTAgMTB2MjEuM2MwIDUuNS00LjUgMTAtMTAgMTBoLTYzLjR2MjkuN2g2My40YzUuNSAwIDEwIDQuNSAxMCAxMHYyMS4zYzAgNS41LTQuNSAxMC0xMCAxMGgtNjMuNFY2NThjMCA1LjUtNC41IDEwLTEwIDEwaC00MS4zYy01LjUgMC0xMC00LjUtMTAtMTB2LTUxLjhINDE4Yy01LjUgMC0xMC00LjUtMTAtMTB2LTIxLjNjMC01LjUgNC41LTEwIDEwLTEwaDYzLjF2LTI5LjdINDE4Yy01LjUgMC0xMC00LjUtMTAtMTB2LTIxLjNjMC01LjUgNC41LTEwIDEwLTEwaDQ1LjJsLTg4LTE2MS4xYy0yLjYtNC44LS45LTEwLjkgNC0xMy42IDEuNS0uOCAzLjEtMS4yIDQuOC0xLjJoNDZjMy44IDAgNy4yIDIuMSA4LjkgNS41bDcyLjkgMTQ0LjNMNTg1IDMyMy41YTEwIDEwIDAgMCAxIDguOS01LjV6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTQzOC45IDMyMy41YTkuODggOS44OCAwIDAgMC04LjktNS41aC00NmMtMS43IDAtMy4zLjQtNC44IDEuMi00LjkgMi43LTYuNiA4LjgtNCAxMy42bDg4IDE2MS4xSDQxOGMtNS41IDAtMTAgNC41LTEwIDEwdjIxLjNjMCA1LjUgNC41IDEwIDEwIDEwaDYzLjF2MjkuN0g0MThjLTUuNSAwLTEwIDQuNS0xMCAxMHYyMS4zYzAgNS41IDQuNSAxMCAxMCAxMGg2My4xVjY1OGMwIDUuNSA0LjUgMTAgMTAgMTBoNDEuM2M1LjUgMCAxMC00LjUgMTAtMTB2LTUxLjhoNjMuNGM1LjUgMCAxMC00LjUgMTAtMTB2LTIxLjNjMC01LjUtNC41LTEwLTEwLTEwaC02My40di0yOS43aDYzLjRjNS41IDAgMTAtNC41IDEwLTEwdi0yMS4zYzAtNS41LTQuNS0xMC0xMC0xMGgtNDUuN2w4Ny43LTE2MS4xYy44LTEuNSAxLjItMy4xIDEuMS00LjggMC01LjUtNC41LTEwLTEwLTEwaC00NWExMCAxMCAwIDAgMC04LjkgNS41bC03My4yIDE0NC4zLTcyLjktMTQ0LjN6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLlF1ZXN0aW9uQ2lyY2xlVHdvVG9uZSA9IGdldEljb24oJ3F1ZXN0aW9uLWNpcmNsZScsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTUxMiAxNDBjLTIwNS40IDAtMzcyIDE2Ni42LTM3MiAzNzJzMTY2LjYgMzcyIDM3MiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzItMTY2LjYtMzcyLTM3Mi0zNzJ6bTAgNjMyYy0yMi4xIDAtNDAtMTcuOS00MC00MHMxNy45LTQwIDQwLTQwIDQwIDE3LjkgNDAgNDAtMTcuOSA0MC00MCA0MHptNjIuOS0yMTkuNWE0OC4zIDQ4LjMgMCAwIDAtMzAuOSA0NC44VjYyMGMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LTh2LTIxLjVjMC0yMy4xIDYuNy00NS45IDE5LjktNjQuOSAxMi45LTE4LjYgMzAuOS0zMi44IDUyLjEtNDAuOSAzNC0xMy4xIDU2LTQxLjYgNTYtNzIuNyAwLTQ0LjEtNDMuMS04MC05Ni04MHMtOTYgMzUuOS05NiA4MHY3LjZjMCA0LjQtMy42IDgtOCA4aC00OGMtNC40IDAtOC0zLjYtOC04VjQyMGMwLTM5LjMgMTcuMi03NiA0OC40LTEwMy4zQzQzMC40IDI5MC40IDQ3MCAyNzYgNTEyIDI3NnM4MS42IDE0LjUgMTExLjYgNDAuN0M2NTQuOCAzNDQgNjcyIDM4MC43IDY3MiA0MjBjMCA1Ny44LTM4LjEgMTA5LjgtOTcuMSAxMzIuNXonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNDcyIDczMmE0MCA0MCAwIDEgMCA4MCAwIDQwIDQwIDAgMSAwLTgwIDB6bTE1MS42LTQxNS4zQzU5My42IDI5MC41IDU1NCAyNzYgNTEyIDI3NnMtODEuNiAxNC40LTExMS42IDQwLjdDMzY5LjIgMzQ0IDM1MiAzODAuNyAzNTIgNDIwdjcuNmMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04VjQyMGMwLTQ0LjEgNDMuMS04MCA5Ni04MHM5NiAzNS45IDk2IDgwYzAgMzEuMS0yMiA1OS42LTU2IDcyLjctMjEuMiA4LjEtMzkuMiAyMi4zLTUyLjEgNDAuOS0xMy4yIDE5LTE5LjkgNDEuOC0xOS45IDY0LjlWNjIwYzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LTh2LTIyLjdhNDguMyA0OC4zIDAgMCAxIDMwLjktNDQuOGM1OS0yMi43IDk3LjEtNzQuNyA5Ny4xLTEzMi41IDAtMzkuMy0xNy4yLTc2LTQ4LjQtMTAzLjN6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLlJlY29uY2lsaWF0aW9uVHdvVG9uZSA9IGdldEljb24oJ3JlY29uY2lsaWF0aW9uJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTc0MCAzNDRINDA0VjI0MEgzMDR2MTYwaDE3NmMxNy43IDAgMzIgMTQuMyAzMiAzMnYzNjBoMzI4VjI0MEg3NDB2MTA0ek01ODQgNDQ4YzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh2NTZjMCA0LjQtMy42IDgtOCA4aC00OGMtNC40IDAtOC0zLjYtOC04di01NnptOTIgMzAxYy01MC44IDAtOTItNDEuMi05Mi05MnM0MS4yLTkyIDkyLTkyIDkyIDQxLjIgOTIgOTItNDEuMiA5Mi05MiA5MnptOTItMzQxdjk2YzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOHYtOTZjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHonXG4gICAgXSwgW3NlY29uZGFyeUNvbG9yLCAnTTY0MiA2NTdhMzQgMzQgMCAxIDAgNjggMCAzNCAzNCAwIDEgMC02OCAweiddLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ001OTIgNTEyaDQ4YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC00OGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptMTEyLTEwNHY5NmMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04di05NmMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg4MCAxNjhINjY4YzAtMzAuOS0yNS4xLTU2LTU2LTU2aC04MGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZIMjY0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYyMDBoLTg4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJoMzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMydi0xNmgzNjhjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjAwYzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDEyIDY0aDcydi01Nmg2NHY1Nmg3MnY0OEg0Njh2LTQ4em0tMjAgNjE2SDE3NlY2MTZoMjcydjIzMnptMC0yOTZIMTc2di04OGgyNzJ2ODh6bTM5MiAyNDBINTEyVjQzMmMwLTE3LjctMTQuMy0zMi0zMi0zMkgzMDRWMjQwaDEwMHYxMDRoMzM2VjI0MGgxMDB2NTUyeidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ002NzYgNTY1Yy01MC44IDAtOTIgNDEuMi05MiA5MnM0MS4yIDkyIDkyIDkyIDkyLTQxLjIgOTItOTItNDEuMi05Mi05Mi05MnptMCAxMjZjLTE4LjggMC0zNC0xNS4yLTM0LTM0czE1LjItMzQgMzQtMzQgMzQgMTUuMiAzNCAzNC0xNS4yIDM0LTM0IDM0eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5SZWRFbnZlbG9wZVR3b1RvbmUgPSBnZXRJY29uKCdyZWQtZW52ZWxvcGUnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTgzMiA2NEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA4MjRIMjMyVjE5My4xbDI2MC4zIDIwNC4xYzExLjYgOS4xIDI3LjkgOS4xIDM5LjUgMEw3OTIgMTkzLjFWODg4em0wLTc1MS4zaC0zMS43TDUxMiAzMzEuMyAyNjMuNyAxMzYuN0gyMzJ2LS43aDU2MHYuN3onXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ000OTIuMyAzOTcuMkwyMzIgMTkzLjFWODg4aDU2MFYxOTMuMUw1MzEuOCAzOTcuMmEzMS45OSAzMS45OSAwIDAgMS0zOS41IDB6bTk5LjQgNjAuOWg0Ny44YTguNDUgOC40NSAwIDAgMSA3LjQgMTIuNGwtODcuMiAxNjFoNDUuOWM0LjYgMCA4LjQgMy44IDguNCA4LjRWNjY1YzAgNC42LTMuOCA4LjQtOC40IDguNGgtNjMuM1Y3MDJoNjMuM2M0LjYgMCA4LjQgMy44IDguNCA4LjR2MjVjLjIgNC43LTMuNSA4LjUtOC4yIDguNWgtNjMuM3Y0OS45YzAgNC42LTMuOCA4LjQtOC40IDguNGgtNDMuN2MtNC42IDAtOC40LTMuOC04LjQtOC40di00OS45aC02M2MtNC42IDAtOC40LTMuOC04LjQtOC40di0yNS4xYzAtNC42IDMuOC04LjQgOC40LTguNGg2M3YtMjguNmgtNjNjLTQuNiAwLTguNC0zLjgtOC40LTguNHYtMjUuMWMwLTQuNiAzLjgtOC40IDguNC04LjRoNDUuNEwzNzcgNDcwLjRhOC40IDguNCAwIDAgMSAzLjQtMTEuNGMxLjMtLjYgMi42LTEgMy45LTFoNDguOGMzLjIgMCA2LjEgMS44IDcuNSA0LjZsNzEuNyAxNDIgNzEuOS0xNDEuOWE4LjYgOC42IDAgMCAxIDcuNS00LjZ6J1xuICAgIF0sIFtzZWNvbmRhcnlDb2xvciwgJ00yMzIgMTM2LjdoMzEuN0w1MTIgMzMxLjNsMjQ4LjMtMTk0LjZINzkydi0uN0gyMzJ6J10sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTQ0MC42IDQ2Mi42YTguMzggOC4zOCAwIDAgMC03LjUtNC42aC00OC44Yy0xLjMgMC0yLjYuNC0zLjkgMWE4LjQgOC40IDAgMCAwLTMuNCAxMS40bDg3LjQgMTYxLjFINDE5Yy00LjYgMC04LjQgMy44LTguNCA4LjRWNjY1YzAgNC42IDMuOCA4LjQgOC40IDguNGg2M1Y3MDJoLTYzYy00LjYgMC04LjQgMy44LTguNCA4LjR2MjUuMWMwIDQuNiAzLjggOC40IDguNCA4LjRoNjN2NDkuOWMwIDQuNiAzLjggOC40IDguNCA4LjRoNDMuN2M0LjYgMCA4LjQtMy44IDguNC04LjR2LTQ5LjloNjMuM2M0LjcgMCA4LjQtMy44IDguMi04LjV2LTI1YzAtNC42LTMuOC04LjQtOC40LTguNGgtNjMuM3YtMjguNmg2My4zYzQuNiAwIDguNC0zLjggOC40LTguNHYtMjUuMWMwLTQuNi0zLjgtOC40LTguNC04LjRoLTQ1LjlsODcuMi0xNjFhOC40NSA4LjQ1IDAgMCAwLTcuNC0xMi40aC00Ny44Yy0zLjEgMC02IDEuOC03LjUgNC42bC03MS45IDE0MS45LTcxLjctMTQyeidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5SZXN0VHdvVG9uZSA9IGdldEljb24oJ3Jlc3QnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMzI2LjQgODQ0aDM2My4ybDQ0LjMtNTIwSDI4Mmw0NC40IDUyMHpNNTA4IDQxNmM3OS41IDAgMTQ0IDY0LjUgMTQ0IDE0NHMtNjQuNSAxNDQtMTQ0IDE0NC0xNDQtNjQuNS0xNDQtMTQ0IDY0LjUtMTQ0IDE0NC0xNDR6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTUwOCA3MDRjNzkuNSAwIDE0NC02NC41IDE0NC0xNDRzLTY0LjUtMTQ0LTE0NC0xNDQtMTQ0IDY0LjUtMTQ0IDE0NCA2NC41IDE0NCAxNDQgMTQ0em0wLTIyNGM0NC4yIDAgODAgMzUuOCA4MCA4MHMtMzUuOCA4MC04MCA4MC04MC0zNS44LTgwLTgwIDM1LjgtODAgODAtODB6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTgzMiAyNTZoLTI4LjFsLTM1LjctMTIwLjljLTQtMTMuNy0xNi41LTIzLjEtMzAuNy0yMy4xaC00NTFjLTE0LjMgMC0yNi44IDkuNC0zMC43IDIzLjFMMjIwLjEgMjU2SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MjhjMCA0LjQgMy42IDggOCA4aDQ1LjhsNDcuNyA1NTguN2EzMiAzMiAwIDAgMCAzMS45IDI5LjNoNDI5LjJhMzIgMzIgMCAwIDAgMzEuOS0yOS4zTDgwMi4yIDMyNEg4NTZjNC40IDAgOC0zLjYgOC04di0yOGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTUxOC42LTc2aDM5Ny4ybDIyLjQgNzZIMjkxbDIyLjQtNzZ6bTM3Ni4yIDY2NEgzMjYuNEwyODIgMzI0aDQ1MS45bC00NC4zIDUyMHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuUmlnaHRDaXJjbGVUd29Ub25lID0gZ2V0SWNvbigncmlnaHQtY2lyY2xlJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTUxMiAxNDBjLTIwNS40IDAtMzcyIDE2Ni42LTM3MiAzNzJzMTY2LjYgMzcyIDM3MiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzItMTY2LjYtMzcyLTM3Mi0zNzJ6bTE1NC43IDM3OC40bC0yNDYgMTc4Yy01LjMgMy44LTEyLjcgMC0xMi43LTYuNVY2NDNjMC0xMC4yIDQuOS0xOS45IDEzLjItMjUuOUw1NjYuNiA1MTIgNDIxLjIgNDA2LjhjLTguMy02LTEzLjItMTUuNi0xMy4yLTI1LjlWMzM0YzAtNi41IDcuNC0xMC4zIDEyLjctNi41bDI0NiAxNzhjNC40IDMuMiA0LjQgOS43IDAgMTIuOXonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ002NjYuNyA1MDUuNWwtMjQ2LTE3OGMtNS4zLTMuOC0xMi43IDAtMTIuNyA2LjV2NDYuOWMwIDEwLjMgNC45IDE5LjkgMTMuMiAyNS45TDU2Ni42IDUxMiA0MjEuMiA2MTcuMWMtOC4zIDYtMTMuMiAxNS43LTEzLjIgMjUuOXY0Ni45YzAgNi41IDcuNCAxMC4zIDEyLjcgNi41bDI0Ni0xNzhjNC40LTMuMiA0LjQtOS43IDAtMTIuOXonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuUm9ja2V0VHdvVG9uZSA9IGdldEljb24oJ3JvY2tldCcsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ00yNjEuNyA2MjEuNGMtOS40IDE0LjYtMTcgMzAuMy0yMi41IDQ2LjZIMzI0VjU1OC43Yy0yNC44IDE2LjItNDYgMzcuNS02Mi4zIDYyLjd6TTcwMCA1NTguN1Y2NjhoODQuOGMtNS41LTE2LjMtMTMuMS0zMi0yMi41LTQ2LjZhMjExLjYgMjExLjYgMCAwIDAtNjIuMy02Mi43em0tNjQtMjM5LjlsLTEyNC0xNDctMTI0IDE0N1Y2NjhoMjQ4VjMxOC44ek01MTIgNDQ4YTQ4LjAxIDQ4LjAxIDAgMCAxIDAtOTYgNDguMDEgNDguMDEgMCAwIDEgMCA5NnonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODY0IDczNmMwLTExMS42LTY1LjQtMjA4LTE2MC0yNTIuOVYzMTcuM2MwLTE1LjEtNS4zLTI5LjctMTUuMS00MS4yTDUzNi41IDk1LjRDNTMwLjEgODcuOCA1MjEgODQgNTEyIDg0cy0xOC4xIDMuOC0yNC41IDExLjRMMzM1LjEgMjc2LjFhNjMuOTcgNjMuOTcgMCAwIDAtMTUuMSA0MS4ydjE2NS44QzIyNS40IDUyOCAxNjAgNjI0LjQgMTYwIDczNmgxNTYuNWMtMi4zIDcuMi0zLjUgMTUtMy41IDIzLjggMCAyMi4xIDcuNiA0My43IDIxLjQgNjAuOGE5Ny4yIDk3LjIgMCAwIDAgNDMuMSAzMC42YzIzLjEgNTQgNzUuNiA4OC44IDEzNC41IDg4LjggMjkuMSAwIDU3LjMtOC42IDgxLjQtMjQuOCAyMy42LTE1LjggNDEuOS0zNy45IDUzLTY0YTk3IDk3IDAgMCAwIDQzLjEtMzAuNSA5Ny41MiA5Ny41MiAwIDAgMCAyMS40LTYwLjhjMC04LjQtMS4xLTE2LjQtMy4xLTIzLjhMODY0IDczNnptLTU0MC02OGgtODQuOGM1LjUtMTYuMyAxMy4xLTMyIDIyLjUtNDYuNiAxNi4zLTI1LjIgMzcuNS00Ni41IDYyLjMtNjIuN1Y2Njh6bTY0LTE4NC45VjMxOC44bDEyNC0xNDcgMTI0IDE0N1Y2NjhIMzg4VjQ4My4xem0yNDAuMSAzMDEuMWMtNS4yIDMtMTEuMiA0LjItMTcuMSAzLjRsLTE5LjUtMi40LTIuOCAxOS40Yy01LjQgMzcuOS0zOC40IDY2LjUtNzYuNyA2Ni41cy03MS4zLTI4LjYtNzYuNy02Ni41bC0yLjgtMTkuNS0xOS41IDIuNWEyNy43IDI3LjcgMCAwIDEtMTcuMS0zLjVjLTguNy01LTE0LjEtMTQuMy0xNC4xLTI0LjQgMC0xMC42IDUuOS0xOS40IDE0LjYtMjMuOGgyMzEuM2M4LjggNC41IDE0LjYgMTMuMyAxNC42IDIzLjgtLjEgMTAuMi01LjUgMTkuNi0xNC4yIDI0LjV6TTcwMCA2NjhWNTU4LjdhMjExLjYgMjExLjYgMCAwIDEgNjIuMyA2Mi43YzkuNCAxNC42IDE3IDMwLjMgMjIuNSA0Ni42SDcwMHonXG4gICAgXSwgW3ByaW1hcnlDb2xvciwgJ000NjQgNDAwYTQ4IDQ4IDAgMSAwIDk2IDAgNDggNDggMCAxIDAtOTYgMHonXSk7XG59KTtcbmV4cG9ydHMuUmlnaHRTcXVhcmVUd29Ub25lID0gZ2V0SWNvbigncmlnaHQtc3F1YXJlJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2eidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTE4NCA4NDBoNjU2VjE4NEgxODR2NjU2em0yMTYtMTk2LjljMC0xMC4yIDQuOS0xOS45IDEzLjItMjUuOUw1NTguNiA1MTIgNDEzLjIgNDA2LjhjLTguMy02LTEzLjItMTUuNi0xMy4yLTI1LjlWMzM0YzAtNi41IDcuNC0xMC4zIDEyLjctNi41bDI0NiAxNzhjNC40IDMuMiA0LjQgOS43IDAgMTIuOWwtMjQ2IDE3OGMtNS4zIDMuOS0xMi43LjEtMTIuNy02LjR2LTQ2Ljl6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTQxMi43IDY5Ni40bDI0Ni0xNzhjNC40LTMuMiA0LjQtOS43IDAtMTIuOWwtMjQ2LTE3OGMtNS4zLTMuOC0xMi43IDAtMTIuNyA2LjV2NDYuOWMwIDEwLjMgNC45IDE5LjkgMTMuMiAyNS45TDU1OC42IDUxMiA0MTMuMiA2MTcuMmMtOC4zIDYtMTMuMiAxNS43LTEzLjIgMjUuOVY2OTBjMCA2LjUgNy40IDEwLjMgMTIuNyA2LjR6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLlNhZmV0eUNlcnRpZmljYXRlVHdvVG9uZSA9IGdldEljb24oJ3NhZmV0eS1jZXJ0aWZpY2F0ZScsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODY2LjkgMTY5LjlMNTI3LjEgNTQuMUM1MjMgNTIuNyA1MTcuNSA1MiA1MTIgNTJzLTExIC43LTE1LjEgMi4xTDE1Ny4xIDE2OS45Yy04LjMgMi44LTE1LjEgMTIuNC0xNS4xIDIxLjJ2NDgyLjRjMCA4LjggNS43IDIwLjQgMTIuNiAyNS45TDQ5OS4zIDk2OGMzLjUgMi43IDggNC4xIDEyLjYgNC4xczkuMi0xLjQgMTIuNi00LjFsMzQ0LjctMjY4LjZjNi45LTUuNCAxMi42LTE3IDEyLjYtMjUuOVYxOTEuMWMuMi04LjgtNi42LTE4LjMtMTQuOS0yMS4yek04MTAgNjU0LjNMNTEyIDg4Ni41IDIxNCA2NTQuM1YyMjYuN2wyOTgtMTAxLjYgMjk4IDEwMS42djQyNy42eidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTIxNCAyMjYuN3Y0MjcuNmwyOTggMjMyLjIgMjk4LTIzMi4yVjIyNi43TDUxMiAxMjUuMSAyMTQgMjI2Ljd6TTYzMi44IDMyOEg2ODhjNi41IDAgMTAuMyA3LjQgNi41IDEyLjdMNDgxLjkgNjMzLjRhMTYuMSAxNi4xIDAgMCAxLTI2IDBsLTEyNi40LTE3NGMtMy44LTUuMyAwLTEyLjcgNi41LTEyLjdoNTUuMmM1LjIgMCAxMCAyLjUgMTMgNi42bDY0LjcgODkuMSAxNTAuOS0yMDcuOGMzLTQuMSA3LjktNi42IDEzLTYuNnonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNDA0LjIgNDUzLjNjLTMtNC4xLTcuOC02LjYtMTMtNi42SDMzNmMtNi41IDAtMTAuMyA3LjQtNi41IDEyLjdsMTI2LjQgMTc0YTE2LjEgMTYuMSAwIDAgMCAyNiAwbDIxMi42LTI5Mi43YzMuOC01LjMgMC0xMi43LTYuNS0xMi43aC01NS4yYy01LjEgMC0xMCAyLjUtMTMgNi42TDQ2OC45IDU0Mi40bC02NC43LTg5LjF6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLlNhdmVUd29Ub25lID0gZ2V0SWNvbignc2F2ZScsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ003MDQgMzIwYzAgMTcuNy0xNC4zIDMyLTMyIDMySDM1MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMTg0SDE4NHY2NTZoNjU2VjM0MS44bC0xMzYtMTM2VjMyMHpNNTEyIDczMGMtNzkuNSAwLTE0NC02NC41LTE0NC0xNDRzNjQuNS0xNDQgMTQ0LTE0NCAxNDQgNjQuNSAxNDQgMTQ0LTY0LjUgMTQ0LTE0NCAxNDR6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTUxMiA0NDJjLTc5LjUgMC0xNDQgNjQuNS0xNDQgMTQ0czY0LjUgMTQ0IDE0NCAxNDQgMTQ0LTY0LjUgMTQ0LTE0NC02NC41LTE0NC0xNDQtMTQ0em0wIDIyNGMtNDQuMiAwLTgwLTM1LjgtODAtODBzMzUuOC04MCA4MC04MCA4MCAzNS44IDgwIDgwLTM1LjggODAtODAgODB6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg5My4zIDI5My4zTDczMC43IDEzMC43Yy0uNy0uNy0xLjQtMS4zLTIuMS0yLS4xLS4xLS4zLS4yLS40LS4zLS43LS43LTEuNS0xLjMtMi4yLTEuOWE2NCA2NCAwIDAgMC0yMi0xMS43VjExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzM4LjVjMC0xNy02LjctMzMuMi0xOC43LTQ1LjJ6TTM4NCAxODRoMjU2djEwNEgzODRWMTg0em00NTYgNjU2SDE4NFYxODRoMTM2djEzNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmgzMjBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjA1LjhsMTM2IDEzNlY4NDB6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLlNjaGVkdWxlVHdvVG9uZSA9IGdldEljb24oJ3NjaGVkdWxlJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTc2OCAzNTJjMCA0LjQtMy42IDgtOCA4aC01NmMtNC40IDAtOC0zLjYtOC04di01Nkg1NDh2NTZjMCA0LjQtMy42IDgtOCA4aC01NmMtNC40IDAtOC0zLjYtOC04di01NkgzMjh2NTZjMCA0LjQtMy42IDgtOCA4aC01NmMtNC40IDAtOC0zLjYtOC04di01NkgxMzZ2NDk2aDc1MlYyOTZINzY4djU2ek00MjQgNjg4YzAgNC40LTMuNiA4LTggOEgyMzJjLTQuNCAwLTgtMy42LTgtOHYtNDhjMC00LjQgMy42LTggOC04aDE4NGM0LjQgMCA4IDMuNiA4IDh2NDh6bTAtMTM2YzAgNC40LTMuNiA4LTggOEgyMzJjLTQuNCAwLTgtMy42LTgtOHYtNDhjMC00LjQgMy42LTggOC04aDE4NGM0LjQgMCA4IDMuNiA4IDh2NDh6bTM3NC40LTkxLjJsLTE2NSAyMjguN2ExNS45IDE1LjkgMCAwIDEtMjUuOCAwTDQ5My41IDUzMS4zYy0zLjgtNS4zIDAtMTIuNyA2LjUtMTIuN2g1NC45YzUuMSAwIDkuOSAyLjQgMTIuOSA2LjZsNTIuOCA3My4xIDEwMy42LTE0My43YzMtNC4xIDcuOC02LjYgMTIuOC02LjVoNTQuOWM2LjUgMCAxMC4zIDcuNCA2LjUgMTIuN3onXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNzI0LjIgNDU0LjZMNjIwLjYgNTk4LjNsLTUyLjgtNzMuMWMtMy00LjItNy44LTYuNi0xMi45LTYuNkg1MDBjLTYuNSAwLTEwLjMgNy40LTYuNSAxMi43bDExNC4xIDE1OC4yYTE1LjkgMTUuOSAwIDAgMCAyNS44IDBsMTY1LTIyOC43YzMuOC01LjMgMC0xMi43LTYuNS0xMi43SDczN2MtNS0uMS05LjggMi40LTEyLjggNi41ek00MTYgNDk2SDIzMmMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgxODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTkyOCAyMjRINzY4di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZINTQ4di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZIMzI4di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjU3NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg4MzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjU2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNTY4SDEzNlYyOTZoMTIwdjU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2aDE0OHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmgxNDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZoMTIwdjQ5NnonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNDE2IDYzMkgyMzJjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMTg0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5TZWN1cml0eVNjYW5Ud29Ub25lID0gZ2V0SWNvbignc2VjdXJpdHktc2NhbicsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODY2LjkgMTY5LjlMNTI3LjEgNTQuMUM1MjMgNTIuNyA1MTcuNSA1MiA1MTIgNTJzLTExIC43LTE1LjEgMi4xTDE1Ny4xIDE2OS45Yy04LjMgMi44LTE1LjEgMTIuNC0xNS4xIDIxLjJ2NDgyLjRjMCA4LjggNS43IDIwLjQgMTIuNiAyNS45TDQ5OS4zIDk2OGMzLjUgMi43IDggNC4xIDEyLjYgNC4xczkuMi0xLjQgMTIuNi00LjFsMzQ0LjctMjY4LjZjNi45LTUuNCAxMi42LTE3IDEyLjYtMjUuOVYxOTEuMWMuMi04LjgtNi42LTE4LjMtMTQuOS0yMS4yek04MTAgNjU0LjNMNTEyIDg4Ni41IDIxNCA2NTQuM1YyMjYuN2wyOTgtMTAxLjYgMjk4IDEwMS42djQyNy42eidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTQ2MC43IDQ1MS4xYTgwLjEgODAuMSAwIDEgMCAxNjAuMiAwIDgwLjEgODAuMSAwIDEgMC0xNjAuMiAweidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTIxNCAyMjYuN3Y0MjcuNmwyOTggMjMyLjIgMjk4LTIzMi4yVjIyNi43TDUxMiAxMjUuMSAyMTQgMjI2Ljd6bTQyOC43IDEyMi41YzU2LjMgNTYuMyA1Ni4zIDE0Ny41IDAgMjAzLjgtNDguNSA0OC41LTEyMyA1NS4yLTE3OC42IDIwLjFsLTc3LjUgNzcuNWE4LjAzIDguMDMgMCAwIDEtMTEuMyAwbC0zNC0zNGE4LjAzIDguMDMgMCAwIDEgMC0xMS4zbDc3LjUtNzcuNWMtMzUuMS01NS43LTI4LjQtMTMwLjEgMjAuMS0xNzguNiA1Ni4zLTU2LjMgMTQ3LjUtNTYuMyAyMDMuOCAweidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ000MTguOCA1MjcuOGwtNzcuNSA3Ny41YTguMDMgOC4wMyAwIDAgMCAwIDExLjNsMzQgMzRjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGw3Ny41LTc3LjVjNTUuNiAzNS4xIDEzMC4xIDI4LjQgMTc4LjYtMjAuMSA1Ni4zLTU2LjMgNTYuMy0xNDcuNSAwLTIwMy44LTU2LjMtNTYuMy0xNDcuNS01Ni4zLTIwMy44IDAtNDguNSA0OC41LTU1LjIgMTIyLjktMjAuMSAxNzguNnptNjUuNC0xMzMuM2E4MC4xIDgwLjEgMCAwIDEgMTEzLjMgMCA4MC4xIDgwLjEgMCAwIDEgMCAxMTMuM2MtMzEuMyAzMS4zLTgyIDMxLjMtMTEzLjMgMHMtMzEuMy04MiAwLTExMy4zeidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5TZXR0aW5nVHdvVG9uZSA9IGdldEljb24oJ3NldHRpbmcnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNODU5LjMgNTY5LjdsLjIuMWMzLjEtMTguOSA0LjYtMzguMiA0LjYtNTcuMyAwLTE3LjEtMS4zLTM0LjMtMy43LTUxLjEgMi40IDE2LjcgMy42IDMzLjYgMy42IDUwLjUgMCAxOS40LTEuNiAzOC44LTQuNyA1Ny44ek05OSAzOTguMWMtLjUtLjQtLjktLjgtMS40LTEuMy43LjcgMS40IDEuNCAyLjIgMi4xbDY1LjUgNTUuOXYtLjFMOTkgMzk4LjF6bTUzNi42LTIxNmguMWwtMTUuNS04My44Yy0uMi0xLS40LTEuOS0uNy0yLjguMS41LjMgMS4xLjQgMS42bDE1LjcgODV6bTU0IDU0Ni41bDMxLjQtMjUuOCA5Mi44IDMyLjljMTctMjIuOSAzMS4zLTQ3LjUgNDIuNi03My42bC03NC43LTYzLjkgNi42LTQwLjFjMi41LTE1LjEgMy44LTMwLjYgMy44LTQ2LjFzLTEuMy0zMS0zLjgtNDYuMWwtNi41LTM5LjkgNzQuNy02My45Yy0xMS40LTI2LTI1LjYtNTAuNy00Mi42LTczLjZsLTkyLjggMzIuOS0zMS40LTI1LjhjLTIzLjktMTkuNi01MC42LTM1LTc5LjMtNDUuOGwtMzguMS0xNC4zLTE3LjktOTdhMzc3LjUgMzc3LjUgMCAwIDAtODUgMGwtMTcuOSA5Ny4yLTM3LjkgMTQuM2MtMjguNSAxMC44LTU1IDI2LjItNzguNyA0NS43bC0zMS40IDI1LjktOTMuNC0zMy4yYy0xNyAyMi45LTMxLjMgNDcuNS00Mi42IDczLjZsNzUuNSA2NC41LTYuNSA0MGMtMi41IDE0LjktMy43IDMwLjItMy43IDQ1LjUgMCAxNS4yIDEuMyAzMC42IDMuNyA0NS41bDYuNSA0MC03NS41IDY0LjVjMTEuNCAyNiAyNS42IDUwLjcgNDIuNiA3My42bDkzLjQtMzMuMiAzMS40IDI1LjljMjMuNyAxOS41IDUwLjIgMzQuOSA3OC43IDQ1LjdsMzcuOCAxNC41IDE3LjkgOTcuMmMyOC4yIDMuMiA1Ni45IDMuMiA4NSAwbDE3LjktOTcgMzguMS0xNC4zYzI4LjgtMTAuOCA1NS40LTI2LjIgNzkuMy00NS44em0tMTc3LjEtNTAuM2MtMzAuNSAwLTU5LjItNy44LTg0LjMtMjEuNUMzNzMuMyA2MjcgMzM2IDU2OC45IDMzNiA1MDJjMC05Ny4yIDc4LjgtMTc2IDE3Ni0xNzYgNjYuOSAwIDEyNSAzNy4zIDE1NC44IDkyLjIgMTMuNyAyNSAyMS41IDUzLjcgMjEuNSA4NC4zIDAgOTcuMS03OC43IDE3NS44LTE3NS44IDE3NS44ek0yMDcuMiA4MTIuOGMtNS41IDEuOS0xMS4yIDIuMy0xNi42IDEuMiA1LjcgMS4yIDExLjcgMSAxNy41LTFsODEuNC0yOWMtLjEtLjEtLjMtLjItLjQtLjNsLTgxLjkgMjkuMXptNzE3LjYtNDE0LjdsLTY1LjUgNTZjMCAuMi4xLjUuMS43bDY1LjQtNTUuOWM3LjEtNi4xIDExLjEtMTQuOSAxMS4yLTI0LS4zIDguOC00LjMgMTcuMy0xMS4yIDIzLjJ6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNOTM1LjggNjQ2LjZjLjUgNC43IDAgOS41LTEuNyAxNC4xbC0uOSAyLjZhNDQ2LjAyIDQ0Ni4wMiAwIDAgMS03OS43IDEzNy45bC0xLjggMi4xYTMyIDMyIDAgMCAxLTM1LjEgOS41bC04MS4zLTI4LjlhMzUwIDM1MCAwIDAgMS05OS43IDU3LjZsLTE1LjcgODVhMzIuMDUgMzIuMDUgMCAwIDEtMjUuOCAyNS43bC0yLjcuNWE0NDUuMiA0NDUuMiAwIDAgMS03OS4yIDcuMWguM2MyNi43IDAgNTMuNC0yLjQgNzkuNC03LjFsMi43LS41YTMyLjA1IDMyLjA1IDAgMCAwIDI1LjgtMjUuN2wxNS43LTg0LjljMzYuMi0xMy42IDY5LjYtMzIuOSA5OS42LTU3LjVsODEuMiAyOC45YTMyIDMyIDAgMCAwIDM1LjEtOS41bDEuOC0yLjFjMzQuOC00MS4xIDYxLjUtODcuNCA3OS42LTEzNy43bC45LTIuNmMxLjYtNC43IDIuMS05LjcgMS41LTE0LjV6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTY4OCA1MDJjMC0zMC4zLTcuNy01OC45LTIxLjItODMuOEM2MzcgMzYzLjMgNTc4LjkgMzI2IDUxMiAzMjZjLTk3LjIgMC0xNzYgNzguOC0xNzYgMTc2IDAgNjYuOSAzNy4zIDEyNSA5Mi4yIDE1NC44IDI0LjkgMTMuNSA1My40IDIxLjIgODMuOCAyMS4yIDk3LjIgMCAxNzYtNzguOCAxNzYtMTc2em0tMjg4IDBjMC0yOS45IDExLjctNTggMzIuOC03OS4yQzQ1NCA0MDEuNiA0ODIuMSAzOTAgNTEyIDM5MGMyOS45IDAgNTggMTEuNiA3OS4yIDMyLjhBMTExLjYgMTExLjYgMCAwIDEgNjI0IDUwMmMwIDI5LjktMTEuNyA1OC0zMi44IDc5LjJBMTExLjYgMTExLjYgMCAwIDEgNTEyIDYxNGMtMjkuOSAwLTU4LTExLjctNzkuMi0zMi44QTExMS42IDExMS42IDAgMCAxIDQwMCA1MDJ6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTU5NC4xIDk1Mi4yYTMyLjA1IDMyLjA1IDAgMCAwIDI1LjgtMjUuN2wxNS43LTg1YTM1MCAzNTAgMCAwIDAgOTkuNy01Ny42bDgxLjMgMjguOWEzMiAzMiAwIDAgMCAzNS4xLTkuNWwxLjgtMi4xYzM0LjgtNDEuMSA2MS42LTg3LjUgNzkuNy0xMzcuOWwuOS0yLjZjMS43LTQuNiAyLjItOS40IDEuNy0xNC4xLS45LTcuOS00LjctMTUuNC0xMS0yMC45bC02NS4zLTU1LjktLjItLjFjMy4xLTE5IDQuNy0zOC40IDQuNy01Ny44IDAtMTYuOS0xLjItMzMuOS0zLjYtNTAuNS0uMy0yLjItLjctNC40LTEtNi42IDAtLjItLjEtLjUtLjEtLjdsNjUuNS01NmM2LjktNS45IDEwLjktMTQuNCAxMS4yLTIzLjIuMS00LS41LTguMS0xLjktMTJsLS45LTIuNmE0NDMuNzQgNDQzLjc0IDAgMCAwLTc5LjctMTM3LjlsLTEuOC0yLjFhMzIuMTIgMzIuMTIgMCAwIDAtMzUuMS05LjVsLTgxLjMgMjguOWMtMzAtMjQuNi02My40LTQ0LTk5LjYtNTcuNmgtLjFsLTE1LjctODVjLS4xLS41LS4yLTEuMS0uNC0xLjZhMzIuMDggMzIuMDggMCAwIDAtMjUuNC0yNC4xbC0yLjctLjVjLTUyLjEtOS40LTEwNi45LTkuNC0xNTkgMGwtMi43LjVhMzIuMDUgMzIuMDUgMCAwIDAtMjUuOCAyNS43bC0xNS44IDg1LjRhMzUxLjg2IDM1MS44NiAwIDAgMC05OSA1Ny40bC04MS45LTI5LjFhMzIgMzIgMCAwIDAtMzUuMSA5LjVsLTEuOCAyLjFhNDQ2LjAyIDQ0Ni4wMiAwIDAgMC03OS43IDEzNy45bC0uOSAyLjZhMzIuMDkgMzIuMDkgMCAwIDAgNy45IDMzLjljLjUuNC45LjkgMS40IDEuM2w2Ni4zIDU2LjZ2LjFjLTMuMSAxOC44LTQuNiAzNy45LTQuNiA1NyAwIDE5LjIgMS41IDM4LjQgNC42IDU3LjFMOTkgNjI1LjVhMzIuMDMgMzIuMDMgMCAwIDAtOS4zIDM1LjJsLjkgMi42YzE4LjEgNTAuNCA0NC45IDk2LjkgNzkuNyAxMzcuOWwxLjggMi4xYzQuOSA1LjcgMTEuNCA5LjQgMTguNSAxMC43IDUuNCAxIDExLjEuNyAxNi42LTEuMmw4MS45LTI5LjFjLjEuMS4zLjIuNC4zIDI5LjcgMjQuMyA2Mi44IDQzLjYgOTguNiA1Ny4xbDE1LjggODUuNGEzMi4wNSAzMi4wNSAwIDAgMCAyNS44IDI1LjdsMi43LjVjMjYuMSA0LjcgNTIuOCA3LjEgNzkuNSA3LjFoLjNjMjYuNiAwIDUzLjMtMi40IDc5LjItNy4xbDIuNy0uNXptLTM5LjgtNjYuNWEzNzcuNSAzNzcuNSAwIDAgMS04NSAwbC0xNy45LTk3LjItMzcuOC0xNC41Yy0yOC41LTEwLjgtNTUtMjYuMi03OC43LTQ1LjdsLTMxLjQtMjUuOS05My40IDMzLjJjLTE3LTIyLjktMzEuMi00Ny42LTQyLjYtNzMuNmw3NS41LTY0LjUtNi41LTQwYy0yLjQtMTQuOS0zLjctMzAuMy0zLjctNDUuNSAwLTE1LjMgMS4yLTMwLjYgMy43LTQ1LjVsNi41LTQwLTc1LjUtNjQuNWMxMS4zLTI2LjEgMjUuNi01MC43IDQyLjYtNzMuNmw5My40IDMzLjIgMzEuNC0yNS45YzIzLjctMTkuNSA1MC4yLTM0LjkgNzguNy00NS43bDM3LjktMTQuMyAxNy45LTk3LjJjMjguMS0zLjIgNTYuOC0zLjIgODUgMGwxNy45IDk3IDM4LjEgMTQuM2MyOC43IDEwLjggNTUuNCAyNi4yIDc5LjMgNDUuOGwzMS40IDI1LjggOTIuOC0zMi45YzE3IDIyLjkgMzEuMiA0Ny42IDQyLjYgNzMuNkw3ODEuOCA0MjZsNi41IDM5LjljMi41IDE1LjEgMy44IDMwLjYgMy44IDQ2LjFzLTEuMyAzMS0zLjggNDYuMWwtNi42IDQwLjEgNzQuNyA2My45YTM3MC4wMyAzNzAuMDMgMCAwIDEtNDIuNiA3My42TDcyMSA3MDIuOGwtMzEuNCAyNS44Yy0yMy45IDE5LjYtNTAuNSAzNS03OS4zIDQ1LjhsLTM4LjEgMTQuMy0xNy45IDk3eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5TaG9wVHdvVG9uZSA9IGdldEljb24oJ3Nob3AnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNODM5LjUgMzQ0aC02NTVjLS4zIDAtLjUuMi0uNS41djkxLjJjMCA1OS44IDQ5IDEwOC4zIDEwOS4zIDEwOC4zIDQwLjcgMCA3Ni4yLTIyIDk1LjEtNTQuNyAyLjktNS4xIDguNC04LjMgMTQuMy04LjNzMTEuMyAzLjIgMTQuMyA4LjNjMTguOCAzMi43IDU0LjMgNTQuNyA5NSA1NC43IDQwLjggMCA3Ni40LTIyLjEgOTUuMS01NC45IDIuOS01IDguMi04LjEgMTMuOS04LjFoLjZjNS44IDAgMTEgMy4xIDEzLjkgOC4xIDE4LjggMzIuOCA1NC40IDU0LjkgOTUuMiA1NC45Qzc5MSA1NDQgODQwIDQ5NS41IDg0MCA0MzUuN3YtOTEuMmMwLS4zLS4yLS41LS41LS41eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004ODIgMjcyLjFWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMySDE3NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MTI4LjFjLTE2LjcgMS0zMCAxNC45LTMwIDMxLjl2MTMxLjdhMTc3IDE3NyAwIDAgMCAxNC40IDcwLjRjNC4zIDEwLjIgOS42IDE5LjggMTUuNiAyOC45djM0NWMwIDE3LjYgMTQuMyAzMiAzMiAzMmg2NzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWNTM1YTE3NSAxNzUgMCAwIDAgMTUuNi0yOC45YzkuNS0yMi4zIDE0LjQtNDYgMTQuNC03MC40VjMwNGMwLTE3LTEzLjMtMzAuOS0zMC0zMS45ek0yMTQgMTg0aDU5NnY4OEgyMTR2LTg4em0zNjIgNjU2LjFINDQ4VjczNmgxMjh2MTA0LjF6bTIzNC40IDBINjQwVjcwNGMwLTE3LjctMTQuMy0zMi0zMi0zMkg0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjEzNi4xSDIxNFY1OTcuOWMyLjkgMS40IDUuOSAyLjggOSA0IDIyLjMgOS40IDQ2IDE0LjEgNzAuNCAxNC4xIDI0LjQgMCA0OC00LjcgNzAuNC0xNC4xIDEzLjgtNS44IDI2LjgtMTMuMiAzOC43LTIyLjEuMi0uMS40LS4xLjYgMGExODAuNCAxODAuNCAwIDAgMCAzOC43IDIyLjFjMjIuMyA5LjQgNDYgMTQuMSA3MC40IDE0LjFzNDgtNC43IDcwLjQtMTQuMWMxMy44LTUuOCAyNi44LTEzLjIgMzguNy0yMi4xLjItLjEuNC0uMS42IDBhMTgwLjQgMTgwLjQgMCAwIDAgMzguNyAyMi4xYzIyLjMgOS40IDQ2IDE0LjEgNzAuNCAxNC4xczQ4LTQuNyA3MC40LTE0LjFjMy0xLjMgNi0yLjYgOS00djI0Mi4yek04NDAgNDM1LjdjMCA1OS44LTQ5IDEwOC4zLTEwOS4zIDEwOC4zLTQwLjggMC03Ni40LTIyLjEtOTUuMi01NC45LTIuOS01LTguMS04LjEtMTMuOS04LjFoLS42Yy01LjcgMC0xMSAzLjEtMTMuOSA4LjFBMTA5LjI0IDEwOS4yNCAwIDAgMSA1MTIgNTQ0Yy00MC43IDAtNzYuMi0yMi05NS01NC43LTMtNS4xLTguNC04LjMtMTQuMy04LjNzLTExLjQgMy4yLTE0LjMgOC4zYTEwOS42MyAxMDkuNjMgMCAwIDEtOTUuMSA1NC43QzIzMyA1NDQgMTg0IDQ5NS41IDE4NCA0MzUuN3YtOTEuMmMwLS4zLjItLjUuNS0uNWg2NTVjLjMgMCAuNS4yLjUuNXY5MS4yeidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5TaG9wcGluZ1R3b1RvbmUgPSBnZXRJY29uKCdzaG9wcGluZycsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ002OTYgNDcyYzAgNC40LTMuNiA4LTggOGgtNTZjLTQuNCAwLTgtMy42LTgtOHYtODhINDAwdjg4YzAgNC40LTMuNiA4LTggOGgtNTZjLTQuNCAwLTgtMy42LTgtOHYtODhoLTk2djQ1Nmg1NjBWMzg0aC05NnY4OHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODMyIDMxMkg2OTZ2LTE2YzAtMTAxLjYtODIuNC0xODQtMTg0LTE4NHMtMTg0IDgyLjQtMTg0IDE4NHYxNkgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjUzNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDMyLTE2YzAtNjEuOSA1MC4xLTExMiAxMTItMTEyczExMiA1MC4xIDExMiAxMTJ2MTZINDAwdi0xNnptMzkyIDU0NEgyMzJWMzg0aDk2djg4YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTg4aDIyNHY4OGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di04OGg5NnY0NTZ6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLlNraW5Ud29Ub25lID0gZ2V0SWNvbignc2tpbicsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ001MTIgMzE4Yy03OS4yIDAtMTQ4LjUtNDguOC0xNzYuNy0xMjBIMTgydjE5NmgxMTl2NDMyaDQyMlYzOTRoMTE5VjE5OEg2ODguN2MtMjguMiA3MS4yLTk3LjUgMTIwLTE3Ni43IDEyMHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODcwIDEyNkg2NjMuOGMtMTcuNCAwLTMyLjkgMTEuOS0zNyAyOS4zQzYxNC4zIDIwOC4xIDU2NyAyNDYgNTEyIDI0NnMtMTAyLjMtMzcuOS0xMTQuOC05MC43YTM3LjkzIDM3LjkzIDAgMCAwLTM3LTI5LjNIMTU0YTQ0IDQ0IDAgMCAwLTQ0IDQ0djI1MmE0NCA0NCAwIDAgMCA0NCA0NGg3NXYzODhhNDQgNDQgMCAwIDAgNDQgNDRoNDc4YTQ0IDQ0IDAgMCAwIDQ0LTQ0VjQ2Nmg3NWE0NCA0NCAwIDAgMCA0NC00NFYxNzBhNDQgNDQgMCAwIDAtNDQtNDR6bS0yOCAyNjhINzIzdjQzMkgzMDFWMzk0SDE4MlYxOThoMTUzLjNjMjguMiA3MS4yIDk3LjUgMTIwIDE3Ni43IDEyMHMxNDguNS00OC44IDE3Ni43LTEyMEg4NDJ2MTk2eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5TbGlkZXJzVHdvVG9uZSA9IGdldEljb24oJ3NsaWRlcnMnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMTgwIDI5Mmg4MHY0NDBoLTgwem0zNjkgMTgwaC03NGEzIDMgMCAwIDAtMyAzdjc0YTMgMyAwIDAgMCAzIDNoNzRhMyAzIDAgMCAwIDMtM3YtNzRhMyAzIDAgMCAwLTMtM3ptMjE1LTEwOGg4MHYyOTZoLTgweidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ005MDQgMjk2aC02NnYtOTZjMC00LjQtMy42LTgtOC04aC01MmMtNC40IDAtOCAzLjYtOCA4djk2aC02NmMtNC40IDAtOCAzLjYtOCA4djQxNmMwIDQuNCAzLjYgOCA4IDhoNjZ2OTZjMCA0LjQgMy42IDggOCA4aDUyYzQuNCAwIDgtMy42IDgtOHYtOTZoNjZjNC40IDAgOC0zLjYgOC04VjMwNGMwLTQuNC0zLjYtOC04LTh6bS02MCAzNjRoLTgwVjM2NGg4MHYyOTZ6TTYxMiA0MDRoLTY2VjIzMmMwLTQuNC0zLjYtOC04LThoLTUyYy00LjQgMC04IDMuNi04IDh2MTcyaC02NmMtNC40IDAtOCAzLjYtOCA4djIwMGMwIDQuNCAzLjYgOCA4IDhoNjZ2MTcyYzAgNC40IDMuNiA4IDggOGg1MmM0LjQgMCA4LTMuNiA4LThWNjIwaDY2YzQuNCAwIDgtMy42IDgtOFY0MTJjMC00LjQtMy42LTgtOC04em0tNjAgMTQ1YTMgMyAwIDAgMS0zIDNoLTc0YTMgMyAwIDAgMS0zLTN2LTc0YTMgMyAwIDAgMSAzLTNoNzRhMyAzIDAgMCAxIDMgM3Y3NHpNMzIwIDIyNGgtNjZ2LTU2YzAtNC40LTMuNi04LTgtOGgtNTJjLTQuNCAwLTggMy42LTggOHY1NmgtNjZjLTQuNCAwLTggMy42LTggOHY1NjBjMCA0LjQgMy42IDggOCA4aDY2djU2YzAgNC40IDMuNiA4IDggOGg1MmM0LjQgMCA4LTMuNiA4LTh2LTU2aDY2YzQuNCAwIDgtMy42IDgtOFYyMzJjMC00LjQtMy42LTgtOC04em0tNjAgNTA4aC04MFYyOTJoODB2NDQweidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5TbWlsZVR3b1RvbmUgPSBnZXRJY29uKCdzbWlsZScsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTUxMiAxNDBjLTIwNS40IDAtMzcyIDE2Ni42LTM3MiAzNzJzMTY2LjYgMzcyIDM3MiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzItMTY2LjYtMzcyLTM3Mi0zNzJ6TTI4OCA0MjFhNDguMDEgNDguMDEgMCAwIDEgOTYgMCA0OC4wMSA0OC4wMSAwIDAgMS05NiAwem0yMjQgMjcyYy04NS41IDAtMTU1LjYtNjcuMy0xNjAtMTUxLjZhOCA4IDAgMCAxIDgtOC40aDQ4LjFjNC4yIDAgNy44IDMuMiA4LjEgNy40QzQyMCA1ODkuOSA0NjEuNSA2MjkgNTEyIDYyOXM5Mi4xLTM5LjEgOTUuOC04OC42Yy4zLTQuMiAzLjktNy40IDguMS03LjRINjY0YTggOCAwIDAgMSA4IDguNEM2NjcuNiA2MjUuNyA1OTcuNSA2OTMgNTEyIDY5M3ptMTc2LTIyNGE0OC4wMSA0OC4wMSAwIDAgMSAwLTk2IDQ4LjAxIDQ4LjAxIDAgMCAxIDAgOTZ6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTI4OCA0MjFhNDggNDggMCAxIDAgOTYgMCA0OCA0OCAwIDEgMC05NiAwem0zNzYgMTEyaC00OC4xYy00LjIgMC03LjggMy4yLTguMSA3LjQtMy43IDQ5LjUtNDUuMyA4OC42LTk1LjggODguNnMtOTItMzkuMS05NS44LTg4LjZjLS4zLTQuMi0zLjktNy40LTguMS03LjRIMzYwYTggOCAwIDAgMC04IDguNGM0LjQgODQuMyA3NC41IDE1MS42IDE2MCAxNTEuNnMxNTUuNi02Ny4zIDE2MC0xNTEuNmE4IDggMCAwIDAtOC04LjR6bS0yNC0xMTJhNDggNDggMCAxIDAgOTYgMCA0OCA0OCAwIDEgMC05NiAweidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5TbmlwcGV0c1R3b1RvbmUgPSBnZXRJY29uKCdzbmlwcGV0cycsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ000NTAgNTEwVjMzNkgyMzJ2NTUyaDQzMlY1NTBINDkwYy0yMi4xIDAtNDAtMTcuOS00MC00MHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODMyIDExMkg3MjRWNzJjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djQwSDUwMFY3MmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NDBIMzIwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnYxMjBoLTk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY2MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNTEyYzE3LjcgMCAzMi0xNC4zIDMyLTMydi05Nmg5NmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTY2NCA4ODhIMjMyVjMzNmgyMTh2MTc0YzAgMjIuMSAxNy45IDQwIDQwIDQwaDE3NHYzMzh6bTAtNDAySDUxNFYzMzZoLjJMNjY0IDQ4NS44di4yem0xMjggMjc0aC01NlY0NTZMNTQ0IDI2NEgzNjB2LTgwaDY4djMyYzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTMyaDE1MnYzMmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di0zMmg2OHY1NzZ6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLlNvdW5kVHdvVG9uZSA9IGdldEljb24oJ3NvdW5kJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTI3NS40IDQyNEgxNDZ2MTc2aDEyOS40bDE4IDExLjdMNTg2IDgwM1YyMjFMMjkzLjMgNDEyLjN6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg5Mi4xIDczNy44bC0xMTAuMy02My43YTE1LjkgMTUuOSAwIDAgMC0yMS43IDUuOWwtMTkuOSAzNC41Yy00LjQgNy42LTEuOCAxNy40IDUuOCAyMS44TDg1Ni4zIDgwMGExNS45IDE1LjkgMCAwIDAgMjEuNy01LjlsMTkuOS0zNC41YzQuNC03LjYgMS43LTE3LjQtNS44LTIxLjh6TTkzNCA0NzZIODA2Yy04LjggMC0xNiA3LjItMTYgMTZ2NDBjMCA4LjggNy4yIDE2IDE2IDE2aDEyOGM4LjggMCAxNi03LjIgMTYtMTZ2LTQwYzAtOC44LTcuMi0xNi0xNi0xNnpNNzYwIDM0NGExNS45IDE1LjkgMCAwIDAgMjEuNyA1LjlMODkyIDI4Ni4yYzcuNi00LjQgMTAuMi0xNC4yIDUuOC0yMS44TDg3OCAyMzBhMTUuOSAxNS45IDAgMCAwLTIxLjctNS45TDc0NiAyODcuOGExNS45OSAxNS45OSAwIDAgMC01LjggMjEuOEw3NjAgMzQ0ek02MjUuOSAxMTVjLTUuOSAwLTExLjkgMS42LTE3LjQgNS4zTDI1NCAzNTJIOTBjLTguOCAwLTE2IDcuMi0xNiAxNnYyODhjMCA4LjggNy4yIDE2IDE2IDE2aDE2NGwzNTQuNSAyMzEuN2M1LjUgMy42IDExLjYgNS4zIDE3LjQgNS4zIDE2LjcgMCAzMi4xLTEzLjMgMzIuMS0zMi4xVjE0Ny4xYzAtMTguOC0xNS40LTMyLjEtMzIuMS0zMi4xek01ODYgODAzTDI5My40IDYxMS43bC0xOC0xMS43SDE0NlY0MjRoMTI5LjRsMTcuOS0xMS43TDU4NiAyMjF2NTgyeidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5TdGFyVHdvVG9uZSA9IGdldEljb24oJ3N0YXInLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyLjUgMTkwLjRsLTk0LjQgMTkxLjMtMjExLjIgMzAuNyAxNTIuOCAxNDktMzYuMSAyMTAuMyAxODguOS05OS4zIDE4OC45IDk5LjItMzYuMS0yMTAuMyAxNTIuOC0xNDguOS0yMTEuMi0zMC43eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ005MDguNiAzNTIuOGwtMjUzLjktMzYuOUw1NDEuMiA4NS44Yy0zLjEtNi4zLTguMi0xMS40LTE0LjUtMTQuNS0xNS44LTcuOC0zNS0xLjMtNDIuOSAxNC41TDM3MC4zIDMxNS45bC0yNTMuOSAzNi45Yy03IDEtMTMuNCA0LjMtMTguMyA5LjNhMzIuMDUgMzIuMDUgMCAwIDAgLjYgNDUuM2wxODMuNyAxNzkuMUwyMzkgODM5LjRhMzEuOTUgMzEuOTUgMCAwIDAgNDYuNCAzMy43bDIyNy4xLTExOS40IDIyNy4xIDExOS40YzYuMiAzLjMgMTMuNCA0LjQgMjAuMyAzLjIgMTcuNC0zIDI5LjEtMTkuNSAyNi4xLTM2LjlsLTQzLjQtMjUyLjkgMTgzLjctMTc5LjFjNS00LjkgOC4zLTExLjMgOS4zLTE4LjMgMi43LTE3LjUtOS41LTMzLjctMjctMzYuM3pNNjY1LjMgNTYxLjNsMzYuMSAyMTAuMy0xODguOS05OS4yLTE4OC45IDk5LjMgMzYuMS0yMTAuMy0xNTIuOC0xNDkgMjExLjItMzAuNyA5NC40LTE5MS4zIDk0LjQgMTkxLjMgMjExLjIgMzAuNy0xNTIuOCAxNDguOXonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuU3RvcFR3b1RvbmUgPSBnZXRJY29uKCdzdG9wJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMjg4LjUgNjgyLjhMMjc3LjcgMjI0QzI1OCAyNDAgMjQwIDI1OCAyMjQgMjc3LjdsNTIyLjggNTIyLjhDNjgyLjggODUyLjcgNjAxIDg4NCA1MTIgODg0Yy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyYzAgODktMzEuMyAxNzAuOC04My41IDIzNC44eidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTUxMiAxNDBjLTIwNS40IDAtMzcyIDE2Ni42LTM3MiAzNzJzMTY2LjYgMzcyIDM3MiAzNzJjODkgMCAxNzAuOC0zMS4zIDIzNC44LTgzLjVMMjI0IDI3Ny43YzE2LTE5LjcgMzQtMzcuNyA1My43LTUzLjdsNTIyLjggNTIyLjhDODUyLjcgNjgyLjggODg0IDYwMSA4ODQgNTEyYzAtMjA1LjQtMTY2LjYtMzcyLTM3Mi0zNzJ6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLlN3aXRjaGVyVHdvVG9uZSA9IGdldEljb24oJ3N3aXRjaGVyJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbc2Vjb25kYXJ5Q29sb3IsICdNMTg0IDg0MGg1MjhWMzEySDE4NHY1Mjh6bTExNi0yOTBoMjk2djY0SDMwMHYtNjR6J10sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg4MCAxMTJIMjY0Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU3NnY1NzZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTc1MiAyNDBIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY2MDhjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjA4YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjI3MmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDYwMEgxODRWMzEyaDUyOHY1Mjh6J1xuICAgIF0sIFtwcmltYXJ5Q29sb3IsICdNMzAwIDU1MGgyOTZ2NjRIMzAweiddKTtcbn0pO1xuZXhwb3J0cy5UYWJsZXRUd29Ub25lID0gZ2V0SWNvbigndGFibGV0JywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004MDAgNjRIMjI0Yy0zNS4zIDAtNjQgMjguNy02NCA2NHY3NjhjMCAzNS4zIDI4LjcgNjQgNjQgNjRoNTc2YzM1LjMgMCA2NC0yOC43IDY0LTY0VjEyOGMwLTM1LjMtMjguNy02NC02NC02NHptLTggODI0SDIzMlYxMzZoNTYwdjc1MnonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ00yMzIgODg4aDU2MFYxMzZIMjMydjc1MnptMjgwLTE0NGMyMi4xIDAgNDAgMTcuOSA0MCA0MHMtMTcuOSA0MC00MCA0MC00MC0xNy45LTQwLTQwIDE3LjktNDAgNDAtNDB6J1xuICAgIF0sIFtwcmltYXJ5Q29sb3IsICdNNDcyIDc4NGE0MCA0MCAwIDEgMCA4MCAwIDQwIDQwIDAgMSAwLTgwIDB6J10pO1xufSk7XG5leHBvcnRzLlRhZ1R3b1RvbmUgPSBnZXRJY29uKCd0YWcnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTg5IDE2NC42TDE4OS4zIDU2NC4zbDI3MC40IDI3MC40TDg1OS40IDQzNSA4MzYgMTg4bC0yNDctMjMuNHpNNjgwIDQzMmMtNDguNSAwLTg4LTM5LjUtODgtODhzMzkuNS04OCA4OC04OCA4OCAzOS41IDg4IDg4LTM5LjUgODgtODggODh6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTY4MCAyNTZjLTQ4LjUgMC04OCAzOS41LTg4IDg4czM5LjUgODggODggODggODgtMzkuNSA4OC04OC0zOS41LTg4LTg4LTg4em0wIDEyMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzJ6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTkzOCA0NTguOGwtMjkuNi0zMTIuNmMtMS41LTE2LjItMTQuNC0yOS0zMC42LTMwLjZMNTY1LjIgODZoLS40Yy0zLjIgMC01LjcgMS03LjYgMi45TDg4LjkgNTU3LjJhOS45NiA5Ljk2IDAgMCAwIDAgMTQuMWwzNjMuOCAzNjMuOGE5LjkgOS45IDAgMCAwIDcuMSAyLjljMi43IDAgNS4yLTEgNy4xLTIuOWw0NjguMy00NjguM2MyLTIuMSAzLTUgMi44LTh6TTQ1OS43IDgzNC43TDE4OS4zIDU2NC4zIDU4OSAxNjQuNiA4MzYgMTg4bDIzLjQgMjQ3LTM5OS43IDM5OS43eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5UYWdzVHdvVG9uZSA9IGdldEljb24oJ3RhZ3MnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNDc3LjUgNjk0bDMxMS45LTMxMS44LTE5LTIyNC42LTIyNC42LTE5LTMxMS45IDMxMS45TDQ3Ny41IDY5NHptMTE2LTQxNS41YTQ3LjgxIDQ3LjgxIDAgMCAxIDMzLjktMzMuOWMxNi42LTQuNCAzNC4yLjMgNDYuNCAxMi40YTQ3LjkzIDQ3LjkzIDAgMCAxIDEyLjQgNDYuNCA0Ny44MSA0Ny44MSAwIDAgMS0zMy45IDMzLjljLTE2LjYgNC40LTM0LjItLjMtNDYuNC0xMi40YTQ4LjMgNDguMyAwIDAgMS0xMi40LTQ2LjR6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNDc2LjYgNzkyLjZjLTEuNy0uMi0zLjQtMS00LjctMi4zTDEzNy43IDQ1Ni4xYTguMDMgOC4wMyAwIDAgMSAwLTExLjNMNTE1LjkgNjYuNmMxLjItMS4zIDIuOS0yLjEgNC43LTIuM2gtLjRjLTIuMy0uMi00LjcuNi02LjMgMi4zTDEzNS43IDQ0NC44YTguMDMgOC4wMyAwIDAgMCAwIDExLjNsMzM0LjIgMzM0LjJjMS44IDEuOSA0LjMgMi42IDYuNyAyLjN6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg4OS43IDUzOS44bC0zOS42LTM5LjVhOC4wMyA4LjAzIDAgMCAwLTExLjMgMGwtMzYyIDM2MS4zLTIzNy42LTIzN2E4LjAzIDguMDMgMCAwIDAtMTEuMyAwbC0zOS42IDM5LjVhOC4wMyA4LjAzIDAgMCAwIDAgMTEuM2wyNDMuMiAyNDIuOCAzOS42IDM5LjVjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGw0MDcuMy00MDYuNmMzLjEtMy4xIDMuMS04LjIgMC0xMS4zek02NTIuMyAzMzcuM2E0Ny44MSA0Ny44MSAwIDAgMCAzMy45LTMzLjljNC40LTE2LjYtLjMtMzQuMi0xMi40LTQ2LjRhNDcuOTMgNDcuOTMgMCAwIDAtNDYuNC0xMi40IDQ3LjgxIDQ3LjgxIDAgMCAwLTMzLjkgMzMuOWMtNC40IDE2LjYuMyAzNC4yIDEyLjQgNDYuNGE0OC4zIDQ4LjMgMCAwIDAgNDYuNCAxMi40eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ00xMzcuNyA0NDQuOGE4LjAzIDguMDMgMCAwIDAgMCAxMS4zbDMzNC4yIDMzNC4yYzEuMyAxLjMgMi45IDIuMSA0LjcgMi4zIDIuNC4zIDQuOC0uNSA2LjYtMi4zTDg2MS40IDQxMmMxLjctMS43IDIuNS00IDIuMy02LjNsLTI1LjUtMzAxLjRjLS43LTcuOC02LjgtMTMuOS0xNC42LTE0LjZMNTIyLjIgNjQuM2gtMS42Yy0xLjguMi0zLjQgMS00LjcgMi4zTDEzNy43IDQ0NC44em00MDguMS0zMDYuMmwyMjQuNiAxOSAxOSAyMjQuNkw0NzcuNSA2OTQgMjMzLjkgNDUwLjVsMzExLjktMzExLjl6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLlRvb2xUd29Ub25lID0gZ2V0SWNvbigndG9vbCcsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ003MDYuOCA0ODguN2EzMi4wNSAzMi4wNSAwIDAgMS00NS4zIDBMNTM3IDM2NC4yYTMyLjA1IDMyLjA1IDAgMCAxIDAtNDUuM2wxMzIuOS0xMzIuOGExODQuMiAxODQuMiAwIDAgMC0xNDQgNTMuNWMtNTguMSA1OC4xLTY5LjMgMTQ1LjMtMzMuNiAyMTQuNkw0MzkuNSA1MDdjLS4xIDAtLjEtLjEtLjEtLjFMMjA5LjMgNzM3bDc5LjIgNzkuMiAyNzQtMjc0LjEuMS4xIDguOC04LjhjNjkuMyAzNS43IDE1Ni41IDI0LjUgMjE0LjYtMzMuNiAzOS4yLTM5LjEgNTcuMy05Mi4xIDUzLjYtMTQzLjlMNzA2LjggNDg4Ljd6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg3Ni42IDIzOS41Yy0uNS0uOS0xLjItMS44LTItMi41LTUtNS0xMy4xLTUtMTguMSAwTDY4NC4yIDQwOS4zbC02Ny45LTY3LjlMNzg4LjcgMTY5Yy44LS44IDEuNC0xLjYgMi0yLjUgMy42LTYuMSAxLjYtMTMuOS00LjUtMTcuNS05OC4yLTU4LTIyNi44LTQ0LjctMzExLjMgMzkuNy02NyA2Ny04OS4yIDE2Mi02Ni41IDI0Ny40bC0yOTMgMjkzYy0zIDMtMi44IDcuOS4zIDExbDE2OS43IDE2OS43YzMuMSAzLjEgOC4xIDMuMyAxMSAuM2wyOTIuOS0yOTIuOWM4NS41IDIyLjggMTgwLjUuNyAyNDcuNi02Ni40IDg0LjQtODQuNSA5Ny43LTIxMy4xIDM5LjctMzExLjN6TTc4NiA0OTkuOGMtNTguMSA1OC4xLTE0NS4zIDY5LjMtMjE0LjYgMzMuNmwtOC44IDguOC0uMS0uMS0yNzQgMjc0LjEtNzkuMi03OS4yIDIzMC4xLTIzMC4xczAgLjEuMS4xbDUyLjgtNTIuOGMtMzUuNy02OS4zLTI0LjUtMTU2LjUgMzMuNi0yMTQuNmExODQuMiAxODQuMiAwIDAgMSAxNDQtNTMuNUw1MzcgMzE4LjlhMzIuMDUgMzIuMDUgMCAwIDAgMCA0NS4zbDEyNC41IDEyNC41YTMyLjA1IDMyLjA1IDAgMCAwIDQ1LjMgMGwxMzIuOC0xMzIuOGMzLjcgNTEuOC0xNC40IDEwNC44LTUzLjYgMTQzLjl6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLlRyYWRlbWFya0NpcmNsZVR3b1RvbmUgPSBnZXRJY29uKCd0cmFkZW1hcmstY2lyY2xlJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDE0MGMtMjA1LjQgMC0zNzIgMTY2LjYtMzcyIDM3MnMxNjYuNiAzNzIgMzcyIDM3MiAzNzItMTY2LjYgMzcyLTM3Mi0xNjYuNi0zNzItMzcyLTM3MnptMTcwLjcgNTg0LjJjLTEuMS41LTIuMy44LTMuNS44aC02MmMtMy4xIDAtNS45LTEuOC03LjItNC42bC03NC42LTE1OS4yaC04OC43VjcxN2MwIDQuNC0zLjYgOC04IDhIMzg0Yy00LjQgMC04LTMuNi04LThWMzA3YzAtNC40IDMuNi04IDgtOGgxNTUuNmM5OC44IDAgMTQ0LjIgNTkuOSAxNDQuMiAxMzEuMSAwIDcwLjItNDMuNiAxMDYuNC03OC40IDExOS4ybDgwLjggMTY0LjJjMi4xIDMuOS40IDguNy0zLjUgMTAuN3onXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ001MjkuOSAzNTdoLTgzLjR2MTQ4SDUyOGM1MyAwIDgyLjgtMjUuNiA4Mi44LTcyLjQgMC01MC4zLTMyLjktNzUuNi04MC45LTc1LjZ6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTYwNS40IDU0OS4zYzM0LjgtMTIuOCA3OC40LTQ5IDc4LjQtMTE5LjIgMC03MS4yLTQ1LjQtMTMxLjEtMTQ0LjItMTMxLjFIMzg0Yy00LjQgMC04IDMuNi04IDh2NDEwYzAgNC40IDMuNiA4IDggOGg1NC43YzQuNCAwIDgtMy42IDgtOFY1NjEuMmg4OC43TDYxMCA3MjAuNGMxLjMgMi44IDQuMSA0LjYgNy4yIDQuNmg2MmMxLjIgMCAyLjQtLjMgMy41LS44IDMuOS0yIDUuNi02LjggMy41LTEwLjdsLTgwLjgtMTY0LjJ6TTUyOCA1MDVoLTgxLjVWMzU3aDgzLjRjNDggMCA4MC45IDI1LjMgODAuOSA3NS42IDAgNDYuOC0yOS44IDcyLjQtODIuOCA3Mi40eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5VbmxvY2tUd29Ub25lID0gZ2V0SWNvbigndW5sb2NrJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTIzMiA4NDBoNTYwVjUzNkgyMzJ2MzA0em0yODAtMjI2YTQ4LjAxIDQ4LjAxIDAgMCAxIDI4IDg3djUzYzAgNC40LTMuNiA4LTggOGgtNDBjLTQuNCAwLTgtMy42LTgtOHYtNTNhNDguMDEgNDguMDEgMCAwIDEgMjgtODd6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTQ4NCA3MDF2NTNjMCA0LjQgMy42IDggOCA4aDQwYzQuNCAwIDgtMy42IDgtOHYtNTNhNDguMDEgNDguMDEgMCAxIDAtNTYgMHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODMyIDQ2NEgzMzJWMjQwYzAtMzAuOSAyNS4xLTU2IDU2LTU2aDI0OGMzMC45IDAgNTYgMjUuMSA1NiA1NnY2OGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di02OGMwLTcwLjctNTcuMy0xMjgtMTI4LTEyOEgzODhjLTcwLjcgMC0xMjggNTcuMy0xMjggMTI4djIyNGgtNjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjM4NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWNDk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgMzc2SDIzMlY1MzZoNTYwdjMwNHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuVHJvcGh5VHdvVG9uZSA9IGdldEljb24oJ3Ryb3BoeScsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ00zMjAgNDgwYzAgNDkuMSAxOS4xIDk1LjMgNTMuOSAxMzAuMSAzNC43IDM0LjggODEgNTMuOSAxMzAuMSA1My45aDE2YzQ5LjEgMCA5NS4zLTE5LjEgMTMwLjEtNTMuOSAzNC44LTM0LjcgNTMuOS04MSA1My45LTEzMC4xVjE4NEgzMjB2Mjk2ek0xODQgMzUyYzAgNDEgMjYuOSA3NS44IDY0IDg3LjYtMzcuMS0xMS45LTY0LTQ2LjctNjQtODcuNnptMzY0IDM4Mi41QzY2NSA3MjEuOCA3NTguNCA2MzAuMiA3NzMuOCA1MTQgNzU4LjMgNjMwLjIgNjY1IDcyMS43IDU0OCA3MzQuNXpNMjUwLjIgNTE0QzI2NS42IDYzMC4yIDM1OSA3MjEuOCA0NzYgNzM0LjUgMzU5IDcyMS43IDI2NS43IDYzMC4yIDI1MC4yIDUxNHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODY4IDE2MGgtOTJ2LTQwYzAtNC40LTMuNi04LTgtOEgyNTZjLTQuNCAwLTggMy42LTggOHY0MGgtOTJhNDQgNDQgMCAwIDAtNDQgNDR2MTQ4YzAgODEuNyA2MCAxNDkuNiAxMzguMiAxNjJDMjY1LjcgNjMwLjIgMzU5IDcyMS43IDQ3NiA3MzQuNXYxMDUuMkgyODBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyVjkwNGMwIDQuNCAzLjYgOCA4IDhoNTEyYzQuNCAwIDgtMy42IDgtOHYtMzIuM2MwLTE3LjctMTQuMy0zMi0zMi0zMkg1NDhWNzM0LjVDNjY1IDcyMS43IDc1OC4zIDYzMC4yIDc3My44IDUxNCA4NTIgNTAxLjYgOTEyIDQzMy43IDkxMiAzNTJWMjA0YTQ0IDQ0IDAgMCAwLTQ0LTQ0ek0yNDggNDM5LjZhOTEuOTkgOTEuOTkgMCAwIDEtNjQtODcuNlYyMzJoNjR2MjA3LjZ6TTcwNCA0ODBjMCA0OS4xLTE5LjEgOTUuNC01My45IDEzMC4xLTM0LjggMzQuOC04MSA1My45LTEzMC4xIDUzLjloLTE2Yy00OS4xIDAtOTUuNC0xOS4xLTEzMC4xLTUzLjktMzQuOC0zNC44LTUzLjktODEtNTMuOS0xMzAuMVYxODRoMzg0djI5NnptMTM2LTEyOGMwIDQxLTI2LjkgNzUuOC02NCA4Ny42VjIzMmg2NHYxMjB6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLlVwQ2lyY2xlVHdvVG9uZSA9IGdldEljb24oJ3VwLWNpcmNsZScsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ001MTIgMTQwYy0yMDUuNCAwLTM3MiAxNjYuNi0zNzIgMzcyczE2Ni42IDM3MiAzNzIgMzcyIDM3Mi0xNjYuNiAzNzItMzcyLTE2Ni42LTM3Mi0zNzItMzcyem0xNzggNDc5aC00Ni45Yy0xMC4yIDAtMTkuOS00LjktMjUuOS0xMy4yTDUxMiA0NjAuNCA0MDYuOCA2MDUuOGMtNiA4LjMtMTUuNiAxMy4yLTI1LjkgMTMuMkgzMzRjLTYuNSAwLTEwLjMtNy40LTYuNS0xMi43bDE3OC0yNDZjMy4yLTQuNCA5LjctNC40IDEyLjkgMGwxNzggMjQ2YzMuOSA1LjMuMSAxMi43LTYuNCAxMi43eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTUxOC40IDM2MC4zYTcuOTUgNy45NSAwIDAgMC0xMi45IDBsLTE3OCAyNDZjLTMuOCA1LjMgMCAxMi43IDYuNSAxMi43aDQ2LjljMTAuMyAwIDE5LjktNC45IDI1LjktMTMuMkw1MTIgNDYwLjRsMTA1LjIgMTQ1LjRjNiA4LjMgMTUuNyAxMy4yIDI1LjkgMTMuMkg2OTBjNi41IDAgMTAuMy03LjQgNi40LTEyLjdsLTE3OC0yNDZ6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLlRodW5kZXJib2x0VHdvVG9uZSA9IGdldEljb24oJ3RodW5kZXJib2x0JywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTY5NS40IDE2NC4xSDQ3MC44TDI4MS4yIDQ5MS41aDE1Ny40bC02MC4zIDI0MSAzMTkuOC0zMDUuMWgtMjExeidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004NDguMSAzNTkuM0g2MjcuOEw4MjUuOSAxMDljNC4xLTUuMy40LTEzLTYuMy0xM0g0MzYuMWMtMi44IDAtNS41IDEuNS02LjkgNEwxNzAuMSA1NDcuNWMtMy4xIDUuMy43IDEyIDYuOSAxMmgxNzQuNEwyNjIgOTE3LjFjLTEuOSA3LjggNy41IDEzLjMgMTMuMyA3LjdMODUzLjYgMzczYzUuMi00LjkgMS43LTEzLjctNS41LTEzLjd6TTM3OC4zIDczMi41bDYwLjMtMjQxSDI4MS4ybDE4OS42LTMyNy40aDIyNC42TDQ4Ny4xIDQyNy40aDIxMUwzNzguMyA3MzIuNXonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuVXBTcXVhcmVUd29Ub25lID0gZ2V0SWNvbigndXAtc3F1YXJlJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2eidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTE4NCA4NDBoNjU2VjE4NEgxODR2NjU2em0xNDMuNS0yMjguN2wxNzgtMjQ2YzMuMi00LjQgOS43LTQuNCAxMi45IDBsMTc4IDI0NmMzLjkgNS4zLjEgMTIuNy02LjQgMTIuN2gtNDYuOWMtMTAuMiAwLTE5LjktNC45LTI1LjktMTMuMkw1MTIgNDY1LjQgNDA2LjggNjEwLjhjLTYgOC4zLTE1LjYgMTMuMi0yNS45IDEzLjJIMzM0Yy02LjUgMC0xMC4zLTcuNC02LjUtMTIuN3onXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNMzM0IDYyNGg0Ni45YzEwLjMgMCAxOS45LTQuOSAyNS45LTEzLjJMNTEyIDQ2NS40bDEwNS4yIDE0NS40YzYgOC4zIDE1LjcgMTMuMiAyNS45IDEzLjJINjkwYzYuNSAwIDEwLjMtNy40IDYuNC0xMi43bC0xNzgtMjQ2YTcuOTUgNy45NSAwIDAgMC0xMi45IDBsLTE3OCAyNDZjLTMuOCA1LjMgMCAxMi43IDYuNSAxMi43eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5Vc2JUd29Ub25lID0gZ2V0SWNvbigndXNiJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTc1OS45IDUwNEgyNjQuMWMtMjYuNSAwLTQ4LjEgMTkuNy00OC4xIDQ0djI5Mmg1OTJWNTQ4YzAtMjQuMy0yMS42LTQ0LTQ4LjEtNDR6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTQ1NiAyNDhoLTQ4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04em0xNjAgMGgtNDhjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTc2MCA0MzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMySDI5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2Mjg4Yy02Ni4yIDAtMTIwIDUyLjEtMTIwIDExNnYzNTZjMCA0LjQgMy42IDggOCA4aDcyMGM0LjQgMCA4LTMuNiA4LThWNTQ4YzAtNjMuOS01My44LTExNi0xMjAtMTE2ek0zMzYgMTg0aDM1MnYyNDhIMzM2VjE4NHptNDcyIDY1NkgyMTZWNTQ4YzAtMjQuMyAyMS42LTQ0IDQ4LjEtNDRoNDk1LjhjMjYuNSAwIDQ4LjEgMTkuNyA0OC4xIDQ0djI5MnonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuVmlkZW9DYW1lcmFUd29Ub25lID0gZ2V0SWNvbigndmlkZW8tY2FtZXJhJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTEzNiA3OTJoNTc2VjIzMkgxMzZ2NTYwem02NC00ODhjMC00LjQgMy42LTggOC04aDExMmM0LjQgMCA4IDMuNiA4IDh2NDhjMCA0LjQtMy42IDgtOCA4SDIwOGMtNC40IDAtOC0zLjYtOC04di00OHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNOTEyIDMwMi4zTDc4NCAzNzZWMjI0YzAtMzUuMy0yOC43LTY0LTY0LTY0SDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjR2NTc2YzAgMzUuMyAyOC43IDY0IDY0IDY0aDU5MmMzNS4zIDAgNjQtMjguNyA2NC02NFY2NDhsMTI4IDczLjdjMjEuMyAxMi4zIDQ4LTMuMSA0OC0yNy42VjMzMGMwLTI0LjYtMjYuNy00MC00OC0yNy43ek03MTIgNzkySDEzNlYyMzJoNTc2djU2MHptMTc2LTE2N2wtMTA0LTU5LjhWNDU4LjlMODg4IDM5OXYyMjZ6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTIwOCAzNjBoMTEyYzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04SDIwOGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuV2FsbGV0VHdvVG9uZSA9IGdldEljb24oJ3dhbGxldCcsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNDY0SDUyOFY0NDhoMzEydjEyOHptMC0xOTJINDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYxOTJjMCAxNy43IDE0LjMgMzIgMzIgMzJoMzQ0djIwMEgxODRWMTg0aDY1NnYyMDB6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTI4IDU3NmgzMTJWNDQ4SDUyOHYxMjh6bTkyLTEwNGMyMi4xIDAgNDAgMTcuOSA0MCA0MHMtMTcuOSA0MC00MCA0MC00MC0xNy45LTQwLTQwIDE3LjktNDAgNDAtNDB6J1xuICAgIF0sIFtwcmltYXJ5Q29sb3IsICdNNTgwIDUxMmE0MCA0MCAwIDEgMCA4MCAwIDQwIDQwIDAgMSAwLTgwIDB6J10sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMTg0IDg0MGg2NTZWNjQwSDQ5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWNDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMyaDM0NFYxODRIMTg0djY1NnonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuV2FybmluZ1R3b1RvbmUgPSBnZXRJY29uKCd3YXJuaW5nJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ005NTUuNyA4NTZsLTQxNi03MjBjLTYuMi0xMC43LTE2LjktMTYtMjcuNy0xNnMtMjEuNiA1LjMtMjcuNyAxNmwtNDE2IDcyMEM1NiA4NzcuNCA3MS40IDkwNCA5NiA5MDRoODMyYzI0LjYgMCA0MC0yNi42IDI3LjctNDh6bS03ODMuNS0yNy45TDUxMiAyMzkuOWwzMzkuOCA1ODguMkgxNzIuMnonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ00xNzIuMiA4MjguMWg2NzkuNkw1MTIgMjM5LjkgMTcyLjIgODI4LjF6TTU2MCA3MjBhNDguMDEgNDguMDEgMCAwIDEtOTYgMCA0OC4wMSA0OC4wMSAwIDAgMSA5NiAwem0tMTYtMzA0djE4NGMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LThWNDE2YzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTQ2NCA3MjBhNDggNDggMCAxIDAgOTYgMCA0OCA0OCAwIDEgMC05NiAwem0xNi0zMDR2MTg0YzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LThWNDE2YzAtNC40LTMuNi04LTgtOGgtNDhjLTQuNCAwLTggMy42LTggOHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuQ2lUd29Ub25lID0gZ2V0SWNvbignY2knLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ001MTIgMTQwYy0yMDUuNCAwLTM3MiAxNjYuNi0zNzIgMzcyczE2Ni42IDM3MiAzNzIgMzcyIDM3Mi0xNjYuNiAzNzItMzcyLTE2Ni42LTM3Mi0zNzItMzcyem0tNjMuNSA1MjIuOGM0OS4zIDAgODIuOC0yOS40IDg3LTcyLjQuNC00LjEgMy44LTcuMyA4LTcuM2g1Mi43YzIuNCAwIDQuNCAyIDQuNCA0LjQgMCA3Ny40LTY0LjMgMTMyLjUtMTUyLjMgMTMyLjVDMzQ1LjQgNzIwIDI4NiA2NTEuNCAyODYgNTM3LjR2LTQ5QzI4NiAzNzMuNSAzNDUuNCAzMDQgNDQ4LjMgMzA0Yzg4LjMgMCAxNTIuMyA1Ni45IDE1Mi4zIDEzOC4xIDAgMi40LTIgNC40LTQuNCA0LjRoLTUyLjZjLTQuMiAwLTcuNi0zLjItOC03LjQtMy45LTQ2LjEtMzcuNS03Ny42LTg3LTc3LjYtNjEuMSAwLTk1LjYgNDUuNC05NS43IDEyNi44djQ5LjNjMCA4MC4zIDM0LjUgMTI1LjIgOTUuNiAxMjUuMnpNNzM4IDcwNC4xYzAgNC40LTMuNiA4LTggOGgtNTAuNGMtNC40IDAtOC0zLjYtOC04VjMxOS45YzAtNC40IDMuNi04IDgtOEg3MzBjNC40IDAgOCAzLjYgOCA4djM4NC4yeidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ003MzAgMzExLjloLTUwLjRjLTQuNCAwLTggMy42LTggOHYzODQuMmMwIDQuNCAzLjYgOCA4IDhINzMwYzQuNCAwIDgtMy42IDgtOFYzMTkuOWMwLTQuNC0zLjYtOC04LTh6bS0yODEuNCA0OS42YzQ5LjUgMCA4My4xIDMxLjUgODcgNzcuNi40IDQuMiAzLjggNy40IDggNy40aDUyLjZjMi40IDAgNC40LTIgNC40LTQuNCAwLTgxLjItNjQtMTM4LjEtMTUyLjMtMTM4LjFDMzQ1LjQgMzA0IDI4NiAzNzMuNSAyODYgNDg4LjR2NDljMCAxMTQgNTkuNCAxODIuNiAxNjIuMyAxODIuNiA4OCAwIDE1Mi4zLTU1LjEgMTUyLjMtMTMyLjUgMC0yLjQtMi00LjQtNC40LTQuNGgtNTIuN2MtNC4yIDAtNy42IDMuMi04IDcuMy00LjIgNDMtMzcuNyA3Mi40LTg3IDcyLjQtNjEuMSAwLTk1LjYtNDQuOS05NS42LTEyNS4ydi00OS4zYy4xLTgxLjQgMzQuNi0xMjYuOCA5NS43LTEyNi44eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5Db3B5cmlnaHRUd29Ub25lID0gZ2V0SWNvbignY29weXJpZ2h0JywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDE0MGMtMjA1LjQgMC0zNzIgMTY2LjYtMzcyIDM3MnMxNjYuNiAzNzIgMzcyIDM3MiAzNzItMTY2LjYgMzcyLTM3Mi0xNjYuNi0zNzItMzcyLTM3MnptNS41IDUzM2M1Mi45IDAgODguOC0zMS43IDkzLTc3LjguNC00LjEgMy44LTcuMyA4LTcuM2g1Ni44YzIuNiAwIDQuNyAyLjEgNC43IDQuNyAwIDgyLjYtNjguNyAxNDEuNC0xNjIuNyAxNDEuNEM0MDcuNCA3MzQgMzQ0IDY2MC44IDM0NCA1MzkuMXYtNTIuM0MzNDQgMzY0LjIgNDA3LjQgMjkwIDUxNy4zIDI5MGM5NC4zIDAgMTYyLjcgNjAuNyAxNjIuNyAxNDcuNCAwIDIuNi0yLjEgNC43LTQuNyA0LjdoLTU2LjdjLTQuMiAwLTcuNy0zLjItOC03LjQtNC00OS42LTQwLTgzLjQtOTMtODMuNC02NS4yIDAtMTAyLjEgNDguNS0xMDIuMiAxMzUuNXY1Mi42YzAgODUuNyAzNi44IDEzMy42IDEwMi4xIDEzMy42eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ001MTcuNiAzNTEuM2M1MyAwIDg5IDMzLjggOTMgODMuNC4zIDQuMiAzLjggNy40IDggNy40aDU2LjdjMi42IDAgNC43LTIuMSA0LjctNC43IDAtODYuNy02OC40LTE0Ny40LTE2Mi43LTE0Ny40QzQwNy40IDI5MCAzNDQgMzY0LjIgMzQ0IDQ4Ni44djUyLjNDMzQ0IDY2MC44IDQwNy40IDczNCA1MTcuMyA3MzRjOTQgMCAxNjIuNy01OC44IDE2Mi43LTE0MS40IDAtMi42LTIuMS00LjctNC43LTQuN2gtNTYuOGMtNC4yIDAtNy42IDMuMi04IDcuMy00LjIgNDYuMS00MC4xIDc3LjgtOTMgNzcuOC02NS4zIDAtMTAyLjEtNDcuOS0xMDIuMS0xMzMuNnYtNTIuNmMuMS04NyAzNy0xMzUuNSAxMDIuMi0xMzUuNXonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuRG9sbGFyVHdvVG9uZSA9IGdldEljb24oJ2RvbGxhcicsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTQyNi42IDQxMC4zYzAgMjUuNCAxNS43IDQ1LjEgNDkuNSA1Ny4zIDQuNyAxLjkgOS40IDMuNCAxNSA1di0xMjRjLTM3IDQuNy02NC41IDI1LjQtNjQuNSA2MS43em0xMTYuNSAxMzUuMmMtMi45LS42LTUuNy0xLjMtOC44LTIuMlY2NzdjNDIuNi0zLjggNzItMjcuMyA3Mi02Ni40IDAtMzAuNy0xNS45LTUwLjctNjMuMi02NS4xeidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTUxMiAxNDBjLTIwNS40IDAtMzcyIDE2Ni42LTM3MiAzNzJzMTY2LjYgMzcyIDM3MiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzItMTY2LjYtMzcyLTM3Mi0zNzJ6bTIyLjQgNTg5LjJsLjIgMzEuN2MwIDQuNS0zLjYgOC4xLTggOC4xaC0yOC40Yy00LjQgMC04LTMuNi04LTh2LTMxLjRjLTg5LTYuNS0xMzAuNy01Ny4xLTEzNS4yLTExMi4xLS40LTQuNyAzLjMtOC43IDgtOC43aDQ2LjJjMy45IDAgNy4zIDIuOCA3LjkgNi42IDUuMSAzMS44IDI5LjkgNTUuNCA3NC4xIDYxLjNWNTM0bC0yNC43LTYuM2MtNTIuMy0xMi41LTEwMi4xLTQ1LjEtMTAyLjEtMTEyLjcgMC03MyA1NS40LTExMi4xIDEyNi4yLTExOXYtMzNjMC00LjQgMy42LTggOC04aDI4LjFjNC40IDAgOCAzLjYgOCA4djMyLjdjNjguNSA2LjkgMTE5LjggNDYuOSAxMjUuOSAxMDkuMmE4LjEgOC4xIDAgMCAxLTggOC44aC00NC45Yy00IDAtNy40LTIuOS03LjktNi45LTQtMjkuMi0yNy41LTUzLTY1LjUtNTguMnYxMzQuM2wyNS40IDUuOWM2NC44IDE2IDEwOC45IDQ3IDEwOSAxMTYuNCAwIDc1LjItNTYgMTE3LjEtMTM0LjMgMTI0eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ001NTkuNyA0ODguOGwtMjUuNC01LjlWMzQ4LjZjMzggNS4yIDYxLjUgMjkgNjUuNSA1OC4yLjUgNCAzLjkgNi45IDcuOSA2LjloNDQuOWM0LjcgMCA4LjQtNC4xIDgtOC44LTYuMS02Mi4zLTU3LjQtMTAyLjMtMTI1LjktMTA5LjJWMjYzYzAtNC40LTMuNi04LTgtOGgtMjguMWMtNC40IDAtOCAzLjYtOCA4djMzYy03MC44IDYuOS0xMjYuMiA0Ni0xMjYuMiAxMTkgMCA2Ny42IDQ5LjggMTAwLjIgMTAyLjEgMTEyLjdsMjQuNyA2LjN2MTQyLjdjLTQ0LjItNS45LTY5LTI5LjUtNzQuMS02MS4zLS42LTMuOC00LTYuNi03LjktNi42SDM2M2MtNC43IDAtOC40IDQtOCA4LjcgNC41IDU1IDQ2LjIgMTA1LjYgMTM1LjIgMTEyLjFWNzYxYzAgNC40IDMuNiA4IDggOGgyOC40YzQuNCAwIDgtMy42IDgtOC4xbC0uMi0zMS43Yzc4LjMtNi45IDEzNC4zLTQ4LjggMTM0LjMtMTI0LS4xLTY5LjQtNDQuMi0xMDAuNC0xMDktMTE2LjR6bS02OC42LTE2LjJjLTUuNi0xLjYtMTAuMy0zLjEtMTUtNS0zMy44LTEyLjItNDkuNS0zMS45LTQ5LjUtNTcuMyAwLTM2LjMgMjcuNS01NyA2NC41LTYxLjd2MTI0ek01MzQuMyA2NzdWNTQzLjNjMy4xLjkgNS45IDEuNiA4LjggMi4yIDQ3LjMgMTQuNCA2My4yIDM0LjQgNjMuMiA2NS4xIDAgMzkuMS0yOS40IDYyLjYtNzIgNjYuNHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuRXVyb1R3b1RvbmUgPSBnZXRJY29uKCdldXJvJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDE0MGMtMjA1LjQgMC0zNzIgMTY2LjYtMzcyIDM3MnMxNjYuNiAzNzIgMzcyIDM3MiAzNzItMTY2LjYgMzcyLTM3Mi0xNjYuNi0zNzItMzcyLTM3MnptMTE3LjEgNTgxLjFjMCAzLjgtMi43IDctNi40IDcuOC0xNS45IDMuNC0zNC40IDUuMS01NS4zIDUuMS0xMDkuOCAwLTE4My01OC44LTIwMC4yLTE1OEgzMzdjLTQuNCAwLTgtMy42LTgtOHYtMjcuMmMwLTQuNCAzLjYtOCA4LThoMjYuMXYtMzYuOWMwLTQuNCAwLTguNy4zLTEyLjhIMzM3Yy00LjQgMC04LTMuNi04LTh2LTI3LjJjMC00LjQgMy42LTggOC04aDMxLjhDMzg4LjUgMzQ1LjcgNDYwLjcgMjkwIDU2Ny40IDI5MGMyMC45IDAgMzkuNCAxLjkgNTUuMyA1LjQgMy43LjggNi4zIDQgNi4zIDcuOFYzNDZhOCA4IDAgMCAxLTkuNiA3LjhjLTE0LjYtMi45LTMxLjgtNC40LTUxLjctNC40LTY1LjMgMC0xMTAuNCAzMy41LTEyNy42IDkwLjRoMTI4LjNjNC40IDAgOCAzLjYgOCA4VjQ3NWMwIDQuNC0zLjYgOC04IDhINDMyLjVjLS4zIDQuNC0uMyA5LjEtLjMgMTMuOHYzNmgxMzYuNGM0LjQgMCA4IDMuNiA4IDhWNTY4YzAgNC40LTMuNiA4LTggOEg0MzhjMTUuMyA2MiA2MS4zIDk4LjYgMTI5LjggOTguNiAxOS45IDAgMzcuMS0xLjMgNTEuOC00LjEgNC45LTEgOS41IDIuOCA5LjUgNy44djQyLjh6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTYxOS42IDY3MC41Yy0xNC43IDIuOC0zMS45IDQuMS01MS44IDQuMS02OC41IDAtMTE0LjUtMzYuNi0xMjkuOC05OC42aDEzMC42YzQuNCAwIDgtMy42IDgtOHYtMjcuMmMwLTQuNC0zLjYtOC04LThINDMyLjJ2LTM2YzAtNC43IDAtOS40LjMtMTMuOGgxMzUuOWM0LjQgMCA4LTMuNiA4LTh2LTI3LjJjMC00LjQtMy42LTgtOC04SDQ0MC4xYzE3LjItNTYuOSA2Mi4zLTkwLjQgMTI3LjYtOTAuNCAxOS45IDAgMzcuMSAxLjUgNTEuNyA0LjRhOCA4IDAgMCAwIDkuNi03Ljh2LTQyLjhjMC0zLjgtMi42LTctNi4zLTcuOC0xNS45LTMuNS0zNC40LTUuNC01NS4zLTUuNC0xMDYuNyAwLTE3OC45IDU1LjctMTk4LjYgMTQ5LjlIMzM3Yy00LjQgMC04IDMuNi04IDh2MjcuMmMwIDQuNCAzLjYgOCA4IDhoMjYuNGMtLjMgNC4xLS4zIDguNC0uMyAxMi44djM2LjlIMzM3Yy00LjQgMC04IDMuNi04IDhWNTY4YzAgNC40IDMuNiA4IDggOGgzMC4yYzE3LjIgOTkuMiA5MC40IDE1OCAyMDAuMiAxNTggMjAuOSAwIDM5LjQtMS43IDU1LjMtNS4xIDMuNy0uOCA2LjQtNCA2LjQtNy44di00Mi44YzAtNS00LjYtOC44LTkuNS03Ljh6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkdvbGRUd29Ub25lID0gZ2V0SWNvbignZ29sZCcsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNDM1LjcgNTU4LjdjLS42LTMuOS00LTYuNy03LjktNi43SDE2Ni4yYy0zLjkgMC03LjMgMi44LTcuOSA2LjdsLTQwLjIgMjQ4Yy0uMS40LS4xLjktLjEgMS4zIDAgNC40IDMuNiA4IDggOGgzNDJjLjQgMCAuOSAwIDEuMy0uMSA0LjQtLjcgNy4zLTQuOCA2LjYtOS4ybC00MC4yLTI0OHpNMTk2LjUgNzQ4bDIwLjctMTI4aDE1OS41bDIwLjcgMTI4SDE5Ni41em03MDkuNCA1OC43bC00MC4yLTI0OGMtLjYtMy45LTQtNi43LTcuOS02LjdINTk2LjJjLTMuOSAwLTcuMyAyLjgtNy45IDYuN2wtNDAuMiAyNDhjLS4xLjQtLjEuOS0uMSAxLjMgMCA0LjQgMy42IDggOCA4aDM0MmMuNCAwIC45IDAgMS4zLS4xIDQuMy0uNyA3LjMtNC44IDYuNi05LjJ6TTYyNi41IDc0OGwyMC43LTEyOGgxNTkuNWwyMC43IDEyOEg2MjYuNXpNMzQyIDQ3MmgzNDJjLjQgMCAuOSAwIDEuMy0uMSA0LjQtLjcgNy4zLTQuOCA2LjYtOS4ybC00MC4yLTI0OGMtLjYtMy45LTQtNi43LTcuOS02LjdIMzgyLjJjLTMuOSAwLTcuMyAyLjgtNy45IDYuN2wtNDAuMiAyNDhjLS4xLjQtLjEuOS0uMSAxLjMgMCA0LjQgMy42IDggOCA4em05MS4yLTE5NmgxNTkuNWwyMC43IDEyOGgtMjAxbDIwLjgtMTI4eidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTU5Mi43IDI3Nkg0MzMuMmwtMjAuOCAxMjhoMjAxek0yMTcuMiA2MjBsLTIwLjcgMTI4aDIwMC45bC0yMC43LTEyOHptNDMwIDBsLTIwLjcgMTI4aDIwMC45bC0yMC43LTEyOHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuQ2FubGVuZGFyVHdvVG9uZSA9IGdldEljb24oJ2NhbmxlbmRhcicsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ003MTIgMzA0YzAgNC40LTMuNiA4LTggOGgtNTZjLTQuNCAwLTgtMy42LTgtOHYtNDhIMzg0djQ4YzAgNC40LTMuNiA4LTggOGgtNTZjLTQuNCAwLTgtMy42LTgtOHYtNDhIMTg0djEzNmg2NTZWMjU2SDcxMnY0OHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODgwIDE4NEg3MTJ2LTY0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2NEgzODR2LTY0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2NEgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjE2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNjU2SDE4NFY0NjBoNjU2djM4MHptMC00NDhIMTg0VjI1NmgxMjh2NDhjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNDhoMjU2djQ4YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTQ4aDEyOHYxMzZ6J1xuICAgIF0pO1xufSk7XG4iLCJyZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzNi5vYmplY3QuZGVmaW5lLXByb3BlcnR5Jyk7XG52YXIgJE9iamVjdCA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZXMvX2NvcmUnKS5PYmplY3Q7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGRlZmluZVByb3BlcnR5KGl0LCBrZXksIGRlc2MpIHtcbiAgcmV0dXJuICRPYmplY3QuZGVmaW5lUHJvcGVydHkoaXQsIGtleSwgZGVzYyk7XG59O1xuIiwidmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcbi8vIDE5LjEuMi40IC8gMTUuMi4zLjYgT2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIFAsIEF0dHJpYnV0ZXMpXG4kZXhwb3J0KCRleHBvcnQuUyArICRleHBvcnQuRiAqICFyZXF1aXJlKCcuL19kZXNjcmlwdG9ycycpLCAnT2JqZWN0JywgeyBkZWZpbmVQcm9wZXJ0eTogcmVxdWlyZSgnLi9fb2JqZWN0LWRwJykuZiB9KTtcbiIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIGlmICh0eXBlb2YgaXQgIT0gJ2Z1bmN0aW9uJykgdGhyb3cgVHlwZUVycm9yKGl0ICsgJyBpcyBub3QgYSBmdW5jdGlvbiEnKTtcbiAgcmV0dXJuIGl0O1xufTtcbiIsIm1vZHVsZS5leHBvcnRzID0geyBcImRlZmF1bHRcIjogcmVxdWlyZShcImNvcmUtanMvbGlicmFyeS9mbi9vYmplY3QvYXNzaWduXCIpLCBfX2VzTW9kdWxlOiB0cnVlIH07IiwicmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lczYub2JqZWN0LmFzc2lnbicpO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGVzL19jb3JlJykuT2JqZWN0LmFzc2lnbjtcbiIsIi8vIDE5LjEuMy4xIE9iamVjdC5hc3NpZ24odGFyZ2V0LCBzb3VyY2UpXG52YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xuXG4kZXhwb3J0KCRleHBvcnQuUyArICRleHBvcnQuRiwgJ09iamVjdCcsIHsgYXNzaWduOiByZXF1aXJlKCcuL19vYmplY3QtYXNzaWduJykgfSk7XG4iLCIndXNlIHN0cmljdCc7XG4vLyAxOS4xLjIuMSBPYmplY3QuYXNzaWduKHRhcmdldCwgc291cmNlLCAuLi4pXG52YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuL19kZXNjcmlwdG9ycycpO1xudmFyIGdldEtleXMgPSByZXF1aXJlKCcuL19vYmplY3Qta2V5cycpO1xudmFyIGdPUFMgPSByZXF1aXJlKCcuL19vYmplY3QtZ29wcycpO1xudmFyIHBJRSA9IHJlcXVpcmUoJy4vX29iamVjdC1waWUnKTtcbnZhciB0b09iamVjdCA9IHJlcXVpcmUoJy4vX3RvLW9iamVjdCcpO1xudmFyIElPYmplY3QgPSByZXF1aXJlKCcuL19pb2JqZWN0Jyk7XG52YXIgJGFzc2lnbiA9IE9iamVjdC5hc3NpZ247XG5cbi8vIHNob3VsZCB3b3JrIHdpdGggc3ltYm9scyBhbmQgc2hvdWxkIGhhdmUgZGV0ZXJtaW5pc3RpYyBwcm9wZXJ0eSBvcmRlciAoVjggYnVnKVxubW9kdWxlLmV4cG9ydHMgPSAhJGFzc2lnbiB8fCByZXF1aXJlKCcuL19mYWlscycpKGZ1bmN0aW9uICgpIHtcbiAgdmFyIEEgPSB7fTtcbiAgdmFyIEIgPSB7fTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVmXG4gIHZhciBTID0gU3ltYm9sKCk7XG4gIHZhciBLID0gJ2FiY2RlZmdoaWprbG1ub3BxcnN0JztcbiAgQVtTXSA9IDc7XG4gIEsuc3BsaXQoJycpLmZvckVhY2goZnVuY3Rpb24gKGspIHsgQltrXSA9IGs7IH0pO1xuICByZXR1cm4gJGFzc2lnbih7fSwgQSlbU10gIT0gNyB8fCBPYmplY3Qua2V5cygkYXNzaWduKHt9LCBCKSkuam9pbignJykgIT0gSztcbn0pID8gZnVuY3Rpb24gYXNzaWduKHRhcmdldCwgc291cmNlKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW51c2VkLXZhcnNcbiAgdmFyIFQgPSB0b09iamVjdCh0YXJnZXQpO1xuICB2YXIgYUxlbiA9IGFyZ3VtZW50cy5sZW5ndGg7XG4gIHZhciBpbmRleCA9IDE7XG4gIHZhciBnZXRTeW1ib2xzID0gZ09QUy5mO1xuICB2YXIgaXNFbnVtID0gcElFLmY7XG4gIHdoaWxlIChhTGVuID4gaW5kZXgpIHtcbiAgICB2YXIgUyA9IElPYmplY3QoYXJndW1lbnRzW2luZGV4KytdKTtcbiAgICB2YXIga2V5cyA9IGdldFN5bWJvbHMgPyBnZXRLZXlzKFMpLmNvbmNhdChnZXRTeW1ib2xzKFMpKSA6IGdldEtleXMoUyk7XG4gICAgdmFyIGxlbmd0aCA9IGtleXMubGVuZ3RoO1xuICAgIHZhciBqID0gMDtcbiAgICB2YXIga2V5O1xuICAgIHdoaWxlIChsZW5ndGggPiBqKSB7XG4gICAgICBrZXkgPSBrZXlzW2orK107XG4gICAgICBpZiAoIURFU0NSSVBUT1JTIHx8IGlzRW51bS5jYWxsKFMsIGtleSkpIFRba2V5XSA9IFNba2V5XTtcbiAgICB9XG4gIH0gcmV0dXJuIFQ7XG59IDogJGFzc2lnbjtcbiIsIi8vIGZhbHNlIC0+IEFycmF5I2luZGV4T2Zcbi8vIHRydWUgIC0+IEFycmF5I2luY2x1ZGVzXG52YXIgdG9JT2JqZWN0ID0gcmVxdWlyZSgnLi9fdG8taW9iamVjdCcpO1xudmFyIHRvTGVuZ3RoID0gcmVxdWlyZSgnLi9fdG8tbGVuZ3RoJyk7XG52YXIgdG9BYnNvbHV0ZUluZGV4ID0gcmVxdWlyZSgnLi9fdG8tYWJzb2x1dGUtaW5kZXgnKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKElTX0lOQ0xVREVTKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoJHRoaXMsIGVsLCBmcm9tSW5kZXgpIHtcbiAgICB2YXIgTyA9IHRvSU9iamVjdCgkdGhpcyk7XG4gICAgdmFyIGxlbmd0aCA9IHRvTGVuZ3RoKE8ubGVuZ3RoKTtcbiAgICB2YXIgaW5kZXggPSB0b0Fic29sdXRlSW5kZXgoZnJvbUluZGV4LCBsZW5ndGgpO1xuICAgIHZhciB2YWx1ZTtcbiAgICAvLyBBcnJheSNpbmNsdWRlcyB1c2VzIFNhbWVWYWx1ZVplcm8gZXF1YWxpdHkgYWxnb3JpdGhtXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtY29tcGFyZVxuICAgIGlmIChJU19JTkNMVURFUyAmJiBlbCAhPSBlbCkgd2hpbGUgKGxlbmd0aCA+IGluZGV4KSB7XG4gICAgICB2YWx1ZSA9IE9baW5kZXgrK107XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2VsZi1jb21wYXJlXG4gICAgICBpZiAodmFsdWUgIT0gdmFsdWUpIHJldHVybiB0cnVlO1xuICAgIC8vIEFycmF5I2luZGV4T2YgaWdub3JlcyBob2xlcywgQXJyYXkjaW5jbHVkZXMgLSBub3RcbiAgICB9IGVsc2UgZm9yICg7bGVuZ3RoID4gaW5kZXg7IGluZGV4KyspIGlmIChJU19JTkNMVURFUyB8fCBpbmRleCBpbiBPKSB7XG4gICAgICBpZiAoT1tpbmRleF0gPT09IGVsKSByZXR1cm4gSVNfSU5DTFVERVMgfHwgaW5kZXggfHwgMDtcbiAgICB9IHJldHVybiAhSVNfSU5DTFVERVMgJiYgLTE7XG4gIH07XG59O1xuIiwiLy8gNy4xLjE1IFRvTGVuZ3RoXG52YXIgdG9JbnRlZ2VyID0gcmVxdWlyZSgnLi9fdG8taW50ZWdlcicpO1xudmFyIG1pbiA9IE1hdGgubWluO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGl0ID4gMCA/IG1pbih0b0ludGVnZXIoaXQpLCAweDFmZmZmZmZmZmZmZmZmKSA6IDA7IC8vIHBvdygyLCA1MykgLSAxID09IDkwMDcxOTkyNTQ3NDA5OTFcbn07XG4iLCJ2YXIgdG9JbnRlZ2VyID0gcmVxdWlyZSgnLi9fdG8taW50ZWdlcicpO1xudmFyIG1heCA9IE1hdGgubWF4O1xudmFyIG1pbiA9IE1hdGgubWluO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaW5kZXgsIGxlbmd0aCkge1xuICBpbmRleCA9IHRvSW50ZWdlcihpbmRleCk7XG4gIHJldHVybiBpbmRleCA8IDAgPyBtYXgoaW5kZXggKyBsZW5ndGgsIDApIDogbWluKGluZGV4LCBsZW5ndGgpO1xufTtcbiIsIm1vZHVsZS5leHBvcnRzID0geyBcImRlZmF1bHRcIjogcmVxdWlyZShcImNvcmUtanMvbGlicmFyeS9mbi9zeW1ib2wvaXRlcmF0b3JcIiksIF9fZXNNb2R1bGU6IHRydWUgfTsiLCJyZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzNi5zdHJpbmcuaXRlcmF0b3InKTtcbnJlcXVpcmUoJy4uLy4uL21vZHVsZXMvd2ViLmRvbS5pdGVyYWJsZScpO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGVzL193a3MtZXh0JykuZignaXRlcmF0b3InKTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkYXQgPSByZXF1aXJlKCcuL19zdHJpbmctYXQnKSh0cnVlKTtcblxuLy8gMjEuMS4zLjI3IFN0cmluZy5wcm90b3R5cGVbQEBpdGVyYXRvcl0oKVxucmVxdWlyZSgnLi9faXRlci1kZWZpbmUnKShTdHJpbmcsICdTdHJpbmcnLCBmdW5jdGlvbiAoaXRlcmF0ZWQpIHtcbiAgdGhpcy5fdCA9IFN0cmluZyhpdGVyYXRlZCk7IC8vIHRhcmdldFxuICB0aGlzLl9pID0gMDsgICAgICAgICAgICAgICAgLy8gbmV4dCBpbmRleFxuLy8gMjEuMS41LjIuMSAlU3RyaW5nSXRlcmF0b3JQcm90b3R5cGUlLm5leHQoKVxufSwgZnVuY3Rpb24gKCkge1xuICB2YXIgTyA9IHRoaXMuX3Q7XG4gIHZhciBpbmRleCA9IHRoaXMuX2k7XG4gIHZhciBwb2ludDtcbiAgaWYgKGluZGV4ID49IE8ubGVuZ3RoKSByZXR1cm4geyB2YWx1ZTogdW5kZWZpbmVkLCBkb25lOiB0cnVlIH07XG4gIHBvaW50ID0gJGF0KE8sIGluZGV4KTtcbiAgdGhpcy5faSArPSBwb2ludC5sZW5ndGg7XG4gIHJldHVybiB7IHZhbHVlOiBwb2ludCwgZG9uZTogZmFsc2UgfTtcbn0pO1xuIiwidmFyIHRvSW50ZWdlciA9IHJlcXVpcmUoJy4vX3RvLWludGVnZXInKTtcbnZhciBkZWZpbmVkID0gcmVxdWlyZSgnLi9fZGVmaW5lZCcpO1xuLy8gdHJ1ZSAgLT4gU3RyaW5nI2F0XG4vLyBmYWxzZSAtPiBTdHJpbmcjY29kZVBvaW50QXRcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKFRPX1NUUklORykge1xuICByZXR1cm4gZnVuY3Rpb24gKHRoYXQsIHBvcykge1xuICAgIHZhciBzID0gU3RyaW5nKGRlZmluZWQodGhhdCkpO1xuICAgIHZhciBpID0gdG9JbnRlZ2VyKHBvcyk7XG4gICAgdmFyIGwgPSBzLmxlbmd0aDtcbiAgICB2YXIgYSwgYjtcbiAgICBpZiAoaSA8IDAgfHwgaSA+PSBsKSByZXR1cm4gVE9fU1RSSU5HID8gJycgOiB1bmRlZmluZWQ7XG4gICAgYSA9IHMuY2hhckNvZGVBdChpKTtcbiAgICByZXR1cm4gYSA8IDB4ZDgwMCB8fCBhID4gMHhkYmZmIHx8IGkgKyAxID09PSBsIHx8IChiID0gcy5jaGFyQ29kZUF0KGkgKyAxKSkgPCAweGRjMDAgfHwgYiA+IDB4ZGZmZlxuICAgICAgPyBUT19TVFJJTkcgPyBzLmNoYXJBdChpKSA6IGFcbiAgICAgIDogVE9fU1RSSU5HID8gcy5zbGljZShpLCBpICsgMikgOiAoYSAtIDB4ZDgwMCA8PCAxMCkgKyAoYiAtIDB4ZGMwMCkgKyAweDEwMDAwO1xuICB9O1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBjcmVhdGUgPSByZXF1aXJlKCcuL19vYmplY3QtY3JlYXRlJyk7XG52YXIgZGVzY3JpcHRvciA9IHJlcXVpcmUoJy4vX3Byb3BlcnR5LWRlc2MnKTtcbnZhciBzZXRUb1N0cmluZ1RhZyA9IHJlcXVpcmUoJy4vX3NldC10by1zdHJpbmctdGFnJyk7XG52YXIgSXRlcmF0b3JQcm90b3R5cGUgPSB7fTtcblxuLy8gMjUuMS4yLjEuMSAlSXRlcmF0b3JQcm90b3R5cGUlW0BAaXRlcmF0b3JdKClcbnJlcXVpcmUoJy4vX2hpZGUnKShJdGVyYXRvclByb3RvdHlwZSwgcmVxdWlyZSgnLi9fd2tzJykoJ2l0ZXJhdG9yJyksIGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChDb25zdHJ1Y3RvciwgTkFNRSwgbmV4dCkge1xuICBDb25zdHJ1Y3Rvci5wcm90b3R5cGUgPSBjcmVhdGUoSXRlcmF0b3JQcm90b3R5cGUsIHsgbmV4dDogZGVzY3JpcHRvcigxLCBuZXh0KSB9KTtcbiAgc2V0VG9TdHJpbmdUYWcoQ29uc3RydWN0b3IsIE5BTUUgKyAnIEl0ZXJhdG9yJyk7XG59O1xuIiwidmFyIGRQID0gcmVxdWlyZSgnLi9fb2JqZWN0LWRwJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuL19hbi1vYmplY3QnKTtcbnZhciBnZXRLZXlzID0gcmVxdWlyZSgnLi9fb2JqZWN0LWtleXMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL19kZXNjcmlwdG9ycycpID8gT2JqZWN0LmRlZmluZVByb3BlcnRpZXMgOiBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKE8sIFByb3BlcnRpZXMpIHtcbiAgYW5PYmplY3QoTyk7XG4gIHZhciBrZXlzID0gZ2V0S2V5cyhQcm9wZXJ0aWVzKTtcbiAgdmFyIGxlbmd0aCA9IGtleXMubGVuZ3RoO1xuICB2YXIgaSA9IDA7XG4gIHZhciBQO1xuICB3aGlsZSAobGVuZ3RoID4gaSkgZFAuZihPLCBQID0ga2V5c1tpKytdLCBQcm9wZXJ0aWVzW1BdKTtcbiAgcmV0dXJuIE87XG59O1xuIiwidmFyIGRvY3VtZW50ID0gcmVxdWlyZSgnLi9fZ2xvYmFsJykuZG9jdW1lbnQ7XG5tb2R1bGUuZXhwb3J0cyA9IGRvY3VtZW50ICYmIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcbiIsIi8vIDE5LjEuMi45IC8gMTUuMi4zLjIgT2JqZWN0LmdldFByb3RvdHlwZU9mKE8pXG52YXIgaGFzID0gcmVxdWlyZSgnLi9faGFzJyk7XG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuL190by1vYmplY3QnKTtcbnZhciBJRV9QUk9UTyA9IHJlcXVpcmUoJy4vX3NoYXJlZC1rZXknKSgnSUVfUFJPVE8nKTtcbnZhciBPYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbm1vZHVsZS5leHBvcnRzID0gT2JqZWN0LmdldFByb3RvdHlwZU9mIHx8IGZ1bmN0aW9uIChPKSB7XG4gIE8gPSB0b09iamVjdChPKTtcbiAgaWYgKGhhcyhPLCBJRV9QUk9UTykpIHJldHVybiBPW0lFX1BST1RPXTtcbiAgaWYgKHR5cGVvZiBPLmNvbnN0cnVjdG9yID09ICdmdW5jdGlvbicgJiYgTyBpbnN0YW5jZW9mIE8uY29uc3RydWN0b3IpIHtcbiAgICByZXR1cm4gTy5jb25zdHJ1Y3Rvci5wcm90b3R5cGU7XG4gIH0gcmV0dXJuIE8gaW5zdGFuY2VvZiBPYmplY3QgPyBPYmplY3RQcm90byA6IG51bGw7XG59O1xuIiwicmVxdWlyZSgnLi9lczYuYXJyYXkuaXRlcmF0b3InKTtcbnZhciBnbG9iYWwgPSByZXF1aXJlKCcuL19nbG9iYWwnKTtcbnZhciBoaWRlID0gcmVxdWlyZSgnLi9faGlkZScpO1xudmFyIEl0ZXJhdG9ycyA9IHJlcXVpcmUoJy4vX2l0ZXJhdG9ycycpO1xudmFyIFRPX1NUUklOR19UQUcgPSByZXF1aXJlKCcuL193a3MnKSgndG9TdHJpbmdUYWcnKTtcblxudmFyIERPTUl0ZXJhYmxlcyA9ICgnQ1NTUnVsZUxpc3QsQ1NTU3R5bGVEZWNsYXJhdGlvbixDU1NWYWx1ZUxpc3QsQ2xpZW50UmVjdExpc3QsRE9NUmVjdExpc3QsRE9NU3RyaW5nTGlzdCwnICtcbiAgJ0RPTVRva2VuTGlzdCxEYXRhVHJhbnNmZXJJdGVtTGlzdCxGaWxlTGlzdCxIVE1MQWxsQ29sbGVjdGlvbixIVE1MQ29sbGVjdGlvbixIVE1MRm9ybUVsZW1lbnQsSFRNTFNlbGVjdEVsZW1lbnQsJyArXG4gICdNZWRpYUxpc3QsTWltZVR5cGVBcnJheSxOYW1lZE5vZGVNYXAsTm9kZUxpc3QsUGFpbnRSZXF1ZXN0TGlzdCxQbHVnaW4sUGx1Z2luQXJyYXksU1ZHTGVuZ3RoTGlzdCxTVkdOdW1iZXJMaXN0LCcgK1xuICAnU1ZHUGF0aFNlZ0xpc3QsU1ZHUG9pbnRMaXN0LFNWR1N0cmluZ0xpc3QsU1ZHVHJhbnNmb3JtTGlzdCxTb3VyY2VCdWZmZXJMaXN0LFN0eWxlU2hlZXRMaXN0LFRleHRUcmFja0N1ZUxpc3QsJyArXG4gICdUZXh0VHJhY2tMaXN0LFRvdWNoTGlzdCcpLnNwbGl0KCcsJyk7XG5cbmZvciAodmFyIGkgPSAwOyBpIDwgRE9NSXRlcmFibGVzLmxlbmd0aDsgaSsrKSB7XG4gIHZhciBOQU1FID0gRE9NSXRlcmFibGVzW2ldO1xuICB2YXIgQ29sbGVjdGlvbiA9IGdsb2JhbFtOQU1FXTtcbiAgdmFyIHByb3RvID0gQ29sbGVjdGlvbiAmJiBDb2xsZWN0aW9uLnByb3RvdHlwZTtcbiAgaWYgKHByb3RvICYmICFwcm90b1tUT19TVFJJTkdfVEFHXSkgaGlkZShwcm90bywgVE9fU1RSSU5HX1RBRywgTkFNRSk7XG4gIEl0ZXJhdG9yc1tOQU1FXSA9IEl0ZXJhdG9ycy5BcnJheTtcbn1cbiIsIid1c2Ugc3RyaWN0JztcbnZhciBhZGRUb1Vuc2NvcGFibGVzID0gcmVxdWlyZSgnLi9fYWRkLXRvLXVuc2NvcGFibGVzJyk7XG52YXIgc3RlcCA9IHJlcXVpcmUoJy4vX2l0ZXItc3RlcCcpO1xudmFyIEl0ZXJhdG9ycyA9IHJlcXVpcmUoJy4vX2l0ZXJhdG9ycycpO1xudmFyIHRvSU9iamVjdCA9IHJlcXVpcmUoJy4vX3RvLWlvYmplY3QnKTtcblxuLy8gMjIuMS4zLjQgQXJyYXkucHJvdG90eXBlLmVudHJpZXMoKVxuLy8gMjIuMS4zLjEzIEFycmF5LnByb3RvdHlwZS5rZXlzKClcbi8vIDIyLjEuMy4yOSBBcnJheS5wcm90b3R5cGUudmFsdWVzKClcbi8vIDIyLjEuMy4zMCBBcnJheS5wcm90b3R5cGVbQEBpdGVyYXRvcl0oKVxubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL19pdGVyLWRlZmluZScpKEFycmF5LCAnQXJyYXknLCBmdW5jdGlvbiAoaXRlcmF0ZWQsIGtpbmQpIHtcbiAgdGhpcy5fdCA9IHRvSU9iamVjdChpdGVyYXRlZCk7IC8vIHRhcmdldFxuICB0aGlzLl9pID0gMDsgICAgICAgICAgICAgICAgICAgLy8gbmV4dCBpbmRleFxuICB0aGlzLl9rID0ga2luZDsgICAgICAgICAgICAgICAgLy8ga2luZFxuLy8gMjIuMS41LjIuMSAlQXJyYXlJdGVyYXRvclByb3RvdHlwZSUubmV4dCgpXG59LCBmdW5jdGlvbiAoKSB7XG4gIHZhciBPID0gdGhpcy5fdDtcbiAgdmFyIGtpbmQgPSB0aGlzLl9rO1xuICB2YXIgaW5kZXggPSB0aGlzLl9pKys7XG4gIGlmICghTyB8fCBpbmRleCA+PSBPLmxlbmd0aCkge1xuICAgIHRoaXMuX3QgPSB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHN0ZXAoMSk7XG4gIH1cbiAgaWYgKGtpbmQgPT0gJ2tleXMnKSByZXR1cm4gc3RlcCgwLCBpbmRleCk7XG4gIGlmIChraW5kID09ICd2YWx1ZXMnKSByZXR1cm4gc3RlcCgwLCBPW2luZGV4XSk7XG4gIHJldHVybiBzdGVwKDAsIFtpbmRleCwgT1tpbmRleF1dKTtcbn0sICd2YWx1ZXMnKTtcblxuLy8gYXJndW1lbnRzTGlzdFtAQGl0ZXJhdG9yXSBpcyAlQXJyYXlQcm90b192YWx1ZXMlICg5LjQuNC42LCA5LjQuNC43KVxuSXRlcmF0b3JzLkFyZ3VtZW50cyA9IEl0ZXJhdG9ycy5BcnJheTtcblxuYWRkVG9VbnNjb3BhYmxlcygna2V5cycpO1xuYWRkVG9VbnNjb3BhYmxlcygndmFsdWVzJyk7XG5hZGRUb1Vuc2NvcGFibGVzKCdlbnRyaWVzJyk7XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICgpIHsgLyogZW1wdHkgKi8gfTtcbiIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGRvbmUsIHZhbHVlKSB7XG4gIHJldHVybiB7IHZhbHVlOiB2YWx1ZSwgZG9uZTogISFkb25lIH07XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSB7IFwiZGVmYXVsdFwiOiByZXF1aXJlKFwiY29yZS1qcy9saWJyYXJ5L2ZuL3N5bWJvbFwiKSwgX19lc01vZHVsZTogdHJ1ZSB9OyIsInJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXM2LnN5bWJvbCcpO1xucmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lczYub2JqZWN0LnRvLXN0cmluZycpO1xucmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lczcuc3ltYm9sLmFzeW5jLWl0ZXJhdG9yJyk7XG5yZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzNy5zeW1ib2wub2JzZXJ2YWJsZScpO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGVzL19jb3JlJykuU3ltYm9sO1xuIiwiJ3VzZSBzdHJpY3QnO1xuLy8gRUNNQVNjcmlwdCA2IHN5bWJvbHMgc2hpbVxudmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpO1xudmFyIGhhcyA9IHJlcXVpcmUoJy4vX2hhcycpO1xudmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi9fZGVzY3JpcHRvcnMnKTtcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG52YXIgcmVkZWZpbmUgPSByZXF1aXJlKCcuL19yZWRlZmluZScpO1xudmFyIE1FVEEgPSByZXF1aXJlKCcuL19tZXRhJykuS0VZO1xudmFyICRmYWlscyA9IHJlcXVpcmUoJy4vX2ZhaWxzJyk7XG52YXIgc2hhcmVkID0gcmVxdWlyZSgnLi9fc2hhcmVkJyk7XG52YXIgc2V0VG9TdHJpbmdUYWcgPSByZXF1aXJlKCcuL19zZXQtdG8tc3RyaW5nLXRhZycpO1xudmFyIHVpZCA9IHJlcXVpcmUoJy4vX3VpZCcpO1xudmFyIHdrcyA9IHJlcXVpcmUoJy4vX3drcycpO1xudmFyIHdrc0V4dCA9IHJlcXVpcmUoJy4vX3drcy1leHQnKTtcbnZhciB3a3NEZWZpbmUgPSByZXF1aXJlKCcuL193a3MtZGVmaW5lJyk7XG52YXIgZW51bUtleXMgPSByZXF1aXJlKCcuL19lbnVtLWtleXMnKTtcbnZhciBpc0FycmF5ID0gcmVxdWlyZSgnLi9faXMtYXJyYXknKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4vX2FuLW9iamVjdCcpO1xudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9faXMtb2JqZWN0Jyk7XG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuL190by1vYmplY3QnKTtcbnZhciB0b0lPYmplY3QgPSByZXF1aXJlKCcuL190by1pb2JqZWN0Jyk7XG52YXIgdG9QcmltaXRpdmUgPSByZXF1aXJlKCcuL190by1wcmltaXRpdmUnKTtcbnZhciBjcmVhdGVEZXNjID0gcmVxdWlyZSgnLi9fcHJvcGVydHktZGVzYycpO1xudmFyIF9jcmVhdGUgPSByZXF1aXJlKCcuL19vYmplY3QtY3JlYXRlJyk7XG52YXIgZ09QTkV4dCA9IHJlcXVpcmUoJy4vX29iamVjdC1nb3BuLWV4dCcpO1xudmFyICRHT1BEID0gcmVxdWlyZSgnLi9fb2JqZWN0LWdvcGQnKTtcbnZhciAkR09QUyA9IHJlcXVpcmUoJy4vX29iamVjdC1nb3BzJyk7XG52YXIgJERQID0gcmVxdWlyZSgnLi9fb2JqZWN0LWRwJyk7XG52YXIgJGtleXMgPSByZXF1aXJlKCcuL19vYmplY3Qta2V5cycpO1xudmFyIGdPUEQgPSAkR09QRC5mO1xudmFyIGRQID0gJERQLmY7XG52YXIgZ09QTiA9IGdPUE5FeHQuZjtcbnZhciAkU3ltYm9sID0gZ2xvYmFsLlN5bWJvbDtcbnZhciAkSlNPTiA9IGdsb2JhbC5KU09OO1xudmFyIF9zdHJpbmdpZnkgPSAkSlNPTiAmJiAkSlNPTi5zdHJpbmdpZnk7XG52YXIgUFJPVE9UWVBFID0gJ3Byb3RvdHlwZSc7XG52YXIgSElEREVOID0gd2tzKCdfaGlkZGVuJyk7XG52YXIgVE9fUFJJTUlUSVZFID0gd2tzKCd0b1ByaW1pdGl2ZScpO1xudmFyIGlzRW51bSA9IHt9LnByb3BlcnR5SXNFbnVtZXJhYmxlO1xudmFyIFN5bWJvbFJlZ2lzdHJ5ID0gc2hhcmVkKCdzeW1ib2wtcmVnaXN0cnknKTtcbnZhciBBbGxTeW1ib2xzID0gc2hhcmVkKCdzeW1ib2xzJyk7XG52YXIgT1BTeW1ib2xzID0gc2hhcmVkKCdvcC1zeW1ib2xzJyk7XG52YXIgT2JqZWN0UHJvdG8gPSBPYmplY3RbUFJPVE9UWVBFXTtcbnZhciBVU0VfTkFUSVZFID0gdHlwZW9mICRTeW1ib2wgPT0gJ2Z1bmN0aW9uJyAmJiAhISRHT1BTLmY7XG52YXIgUU9iamVjdCA9IGdsb2JhbC5RT2JqZWN0O1xuLy8gRG9uJ3QgdXNlIHNldHRlcnMgaW4gUXQgU2NyaXB0LCBodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9pc3N1ZXMvMTczXG52YXIgc2V0dGVyID0gIVFPYmplY3QgfHwgIVFPYmplY3RbUFJPVE9UWVBFXSB8fCAhUU9iamVjdFtQUk9UT1RZUEVdLmZpbmRDaGlsZDtcblxuLy8gZmFsbGJhY2sgZm9yIG9sZCBBbmRyb2lkLCBodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9Njg3XG52YXIgc2V0U3ltYm9sRGVzYyA9IERFU0NSSVBUT1JTICYmICRmYWlscyhmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBfY3JlYXRlKGRQKHt9LCAnYScsIHtcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGRQKHRoaXMsICdhJywgeyB2YWx1ZTogNyB9KS5hOyB9XG4gIH0pKS5hICE9IDc7XG59KSA/IGZ1bmN0aW9uIChpdCwga2V5LCBEKSB7XG4gIHZhciBwcm90b0Rlc2MgPSBnT1BEKE9iamVjdFByb3RvLCBrZXkpO1xuICBpZiAocHJvdG9EZXNjKSBkZWxldGUgT2JqZWN0UHJvdG9ba2V5XTtcbiAgZFAoaXQsIGtleSwgRCk7XG4gIGlmIChwcm90b0Rlc2MgJiYgaXQgIT09IE9iamVjdFByb3RvKSBkUChPYmplY3RQcm90bywga2V5LCBwcm90b0Rlc2MpO1xufSA6IGRQO1xuXG52YXIgd3JhcCA9IGZ1bmN0aW9uICh0YWcpIHtcbiAgdmFyIHN5bSA9IEFsbFN5bWJvbHNbdGFnXSA9IF9jcmVhdGUoJFN5bWJvbFtQUk9UT1RZUEVdKTtcbiAgc3ltLl9rID0gdGFnO1xuICByZXR1cm4gc3ltO1xufTtcblxudmFyIGlzU3ltYm9sID0gVVNFX05BVElWRSAmJiB0eXBlb2YgJFN5bWJvbC5pdGVyYXRvciA9PSAnc3ltYm9sJyA/IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gdHlwZW9mIGl0ID09ICdzeW1ib2wnO1xufSA6IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gaXQgaW5zdGFuY2VvZiAkU3ltYm9sO1xufTtcblxudmFyICRkZWZpbmVQcm9wZXJ0eSA9IGZ1bmN0aW9uIGRlZmluZVByb3BlcnR5KGl0LCBrZXksIEQpIHtcbiAgaWYgKGl0ID09PSBPYmplY3RQcm90bykgJGRlZmluZVByb3BlcnR5KE9QU3ltYm9scywga2V5LCBEKTtcbiAgYW5PYmplY3QoaXQpO1xuICBrZXkgPSB0b1ByaW1pdGl2ZShrZXksIHRydWUpO1xuICBhbk9iamVjdChEKTtcbiAgaWYgKGhhcyhBbGxTeW1ib2xzLCBrZXkpKSB7XG4gICAgaWYgKCFELmVudW1lcmFibGUpIHtcbiAgICAgIGlmICghaGFzKGl0LCBISURERU4pKSBkUChpdCwgSElEREVOLCBjcmVhdGVEZXNjKDEsIHt9KSk7XG4gICAgICBpdFtISURERU5dW2tleV0gPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoaGFzKGl0LCBISURERU4pICYmIGl0W0hJRERFTl1ba2V5XSkgaXRbSElEREVOXVtrZXldID0gZmFsc2U7XG4gICAgICBEID0gX2NyZWF0ZShELCB7IGVudW1lcmFibGU6IGNyZWF0ZURlc2MoMCwgZmFsc2UpIH0pO1xuICAgIH0gcmV0dXJuIHNldFN5bWJvbERlc2MoaXQsIGtleSwgRCk7XG4gIH0gcmV0dXJuIGRQKGl0LCBrZXksIEQpO1xufTtcbnZhciAkZGVmaW5lUHJvcGVydGllcyA9IGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXMoaXQsIFApIHtcbiAgYW5PYmplY3QoaXQpO1xuICB2YXIga2V5cyA9IGVudW1LZXlzKFAgPSB0b0lPYmplY3QoUCkpO1xuICB2YXIgaSA9IDA7XG4gIHZhciBsID0ga2V5cy5sZW5ndGg7XG4gIHZhciBrZXk7XG4gIHdoaWxlIChsID4gaSkgJGRlZmluZVByb3BlcnR5KGl0LCBrZXkgPSBrZXlzW2krK10sIFBba2V5XSk7XG4gIHJldHVybiBpdDtcbn07XG52YXIgJGNyZWF0ZSA9IGZ1bmN0aW9uIGNyZWF0ZShpdCwgUCkge1xuICByZXR1cm4gUCA9PT0gdW5kZWZpbmVkID8gX2NyZWF0ZShpdCkgOiAkZGVmaW5lUHJvcGVydGllcyhfY3JlYXRlKGl0KSwgUCk7XG59O1xudmFyICRwcm9wZXJ0eUlzRW51bWVyYWJsZSA9IGZ1bmN0aW9uIHByb3BlcnR5SXNFbnVtZXJhYmxlKGtleSkge1xuICB2YXIgRSA9IGlzRW51bS5jYWxsKHRoaXMsIGtleSA9IHRvUHJpbWl0aXZlKGtleSwgdHJ1ZSkpO1xuICBpZiAodGhpcyA9PT0gT2JqZWN0UHJvdG8gJiYgaGFzKEFsbFN5bWJvbHMsIGtleSkgJiYgIWhhcyhPUFN5bWJvbHMsIGtleSkpIHJldHVybiBmYWxzZTtcbiAgcmV0dXJuIEUgfHwgIWhhcyh0aGlzLCBrZXkpIHx8ICFoYXMoQWxsU3ltYm9scywga2V5KSB8fCBoYXModGhpcywgSElEREVOKSAmJiB0aGlzW0hJRERFTl1ba2V5XSA/IEUgOiB0cnVlO1xufTtcbnZhciAkZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID0gZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGl0LCBrZXkpIHtcbiAgaXQgPSB0b0lPYmplY3QoaXQpO1xuICBrZXkgPSB0b1ByaW1pdGl2ZShrZXksIHRydWUpO1xuICBpZiAoaXQgPT09IE9iamVjdFByb3RvICYmIGhhcyhBbGxTeW1ib2xzLCBrZXkpICYmICFoYXMoT1BTeW1ib2xzLCBrZXkpKSByZXR1cm47XG4gIHZhciBEID0gZ09QRChpdCwga2V5KTtcbiAgaWYgKEQgJiYgaGFzKEFsbFN5bWJvbHMsIGtleSkgJiYgIShoYXMoaXQsIEhJRERFTikgJiYgaXRbSElEREVOXVtrZXldKSkgRC5lbnVtZXJhYmxlID0gdHJ1ZTtcbiAgcmV0dXJuIEQ7XG59O1xudmFyICRnZXRPd25Qcm9wZXJ0eU5hbWVzID0gZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlOYW1lcyhpdCkge1xuICB2YXIgbmFtZXMgPSBnT1BOKHRvSU9iamVjdChpdCkpO1xuICB2YXIgcmVzdWx0ID0gW107XG4gIHZhciBpID0gMDtcbiAgdmFyIGtleTtcbiAgd2hpbGUgKG5hbWVzLmxlbmd0aCA+IGkpIHtcbiAgICBpZiAoIWhhcyhBbGxTeW1ib2xzLCBrZXkgPSBuYW1lc1tpKytdKSAmJiBrZXkgIT0gSElEREVOICYmIGtleSAhPSBNRVRBKSByZXN1bHQucHVzaChrZXkpO1xuICB9IHJldHVybiByZXN1bHQ7XG59O1xudmFyICRnZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPSBmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMoaXQpIHtcbiAgdmFyIElTX09QID0gaXQgPT09IE9iamVjdFByb3RvO1xuICB2YXIgbmFtZXMgPSBnT1BOKElTX09QID8gT1BTeW1ib2xzIDogdG9JT2JqZWN0KGl0KSk7XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgdmFyIGkgPSAwO1xuICB2YXIga2V5O1xuICB3aGlsZSAobmFtZXMubGVuZ3RoID4gaSkge1xuICAgIGlmIChoYXMoQWxsU3ltYm9scywga2V5ID0gbmFtZXNbaSsrXSkgJiYgKElTX09QID8gaGFzKE9iamVjdFByb3RvLCBrZXkpIDogdHJ1ZSkpIHJlc3VsdC5wdXNoKEFsbFN5bWJvbHNba2V5XSk7XG4gIH0gcmV0dXJuIHJlc3VsdDtcbn07XG5cbi8vIDE5LjQuMS4xIFN5bWJvbChbZGVzY3JpcHRpb25dKVxuaWYgKCFVU0VfTkFUSVZFKSB7XG4gICRTeW1ib2wgPSBmdW5jdGlvbiBTeW1ib2woKSB7XG4gICAgaWYgKHRoaXMgaW5zdGFuY2VvZiAkU3ltYm9sKSB0aHJvdyBUeXBlRXJyb3IoJ1N5bWJvbCBpcyBub3QgYSBjb25zdHJ1Y3RvciEnKTtcbiAgICB2YXIgdGFnID0gdWlkKGFyZ3VtZW50cy5sZW5ndGggPiAwID8gYXJndW1lbnRzWzBdIDogdW5kZWZpbmVkKTtcbiAgICB2YXIgJHNldCA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgaWYgKHRoaXMgPT09IE9iamVjdFByb3RvKSAkc2V0LmNhbGwoT1BTeW1ib2xzLCB2YWx1ZSk7XG4gICAgICBpZiAoaGFzKHRoaXMsIEhJRERFTikgJiYgaGFzKHRoaXNbSElEREVOXSwgdGFnKSkgdGhpc1tISURERU5dW3RhZ10gPSBmYWxzZTtcbiAgICAgIHNldFN5bWJvbERlc2ModGhpcywgdGFnLCBjcmVhdGVEZXNjKDEsIHZhbHVlKSk7XG4gICAgfTtcbiAgICBpZiAoREVTQ1JJUFRPUlMgJiYgc2V0dGVyKSBzZXRTeW1ib2xEZXNjKE9iamVjdFByb3RvLCB0YWcsIHsgY29uZmlndXJhYmxlOiB0cnVlLCBzZXQ6ICRzZXQgfSk7XG4gICAgcmV0dXJuIHdyYXAodGFnKTtcbiAgfTtcbiAgcmVkZWZpbmUoJFN5bWJvbFtQUk9UT1RZUEVdLCAndG9TdHJpbmcnLCBmdW5jdGlvbiB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5faztcbiAgfSk7XG5cbiAgJEdPUEQuZiA9ICRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG4gICREUC5mID0gJGRlZmluZVByb3BlcnR5O1xuICByZXF1aXJlKCcuL19vYmplY3QtZ29wbicpLmYgPSBnT1BORXh0LmYgPSAkZ2V0T3duUHJvcGVydHlOYW1lcztcbiAgcmVxdWlyZSgnLi9fb2JqZWN0LXBpZScpLmYgPSAkcHJvcGVydHlJc0VudW1lcmFibGU7XG4gICRHT1BTLmYgPSAkZ2V0T3duUHJvcGVydHlTeW1ib2xzO1xuXG4gIGlmIChERVNDUklQVE9SUyAmJiAhcmVxdWlyZSgnLi9fbGlicmFyeScpKSB7XG4gICAgcmVkZWZpbmUoT2JqZWN0UHJvdG8sICdwcm9wZXJ0eUlzRW51bWVyYWJsZScsICRwcm9wZXJ0eUlzRW51bWVyYWJsZSwgdHJ1ZSk7XG4gIH1cblxuICB3a3NFeHQuZiA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgcmV0dXJuIHdyYXAod2tzKG5hbWUpKTtcbiAgfTtcbn1cblxuJGV4cG9ydCgkZXhwb3J0LkcgKyAkZXhwb3J0LlcgKyAkZXhwb3J0LkYgKiAhVVNFX05BVElWRSwgeyBTeW1ib2w6ICRTeW1ib2wgfSk7XG5cbmZvciAodmFyIGVzNlN5bWJvbHMgPSAoXG4gIC8vIDE5LjQuMi4yLCAxOS40LjIuMywgMTkuNC4yLjQsIDE5LjQuMi42LCAxOS40LjIuOCwgMTkuNC4yLjksIDE5LjQuMi4xMCwgMTkuNC4yLjExLCAxOS40LjIuMTIsIDE5LjQuMi4xMywgMTkuNC4yLjE0XG4gICdoYXNJbnN0YW5jZSxpc0NvbmNhdFNwcmVhZGFibGUsaXRlcmF0b3IsbWF0Y2gscmVwbGFjZSxzZWFyY2gsc3BlY2llcyxzcGxpdCx0b1ByaW1pdGl2ZSx0b1N0cmluZ1RhZyx1bnNjb3BhYmxlcydcbikuc3BsaXQoJywnKSwgaiA9IDA7IGVzNlN5bWJvbHMubGVuZ3RoID4gajspd2tzKGVzNlN5bWJvbHNbaisrXSk7XG5cbmZvciAodmFyIHdlbGxLbm93blN5bWJvbHMgPSAka2V5cyh3a3Muc3RvcmUpLCBrID0gMDsgd2VsbEtub3duU3ltYm9scy5sZW5ndGggPiBrOykgd2tzRGVmaW5lKHdlbGxLbm93blN5bWJvbHNbaysrXSk7XG5cbiRleHBvcnQoJGV4cG9ydC5TICsgJGV4cG9ydC5GICogIVVTRV9OQVRJVkUsICdTeW1ib2wnLCB7XG4gIC8vIDE5LjQuMi4xIFN5bWJvbC5mb3Ioa2V5KVxuICAnZm9yJzogZnVuY3Rpb24gKGtleSkge1xuICAgIHJldHVybiBoYXMoU3ltYm9sUmVnaXN0cnksIGtleSArPSAnJylcbiAgICAgID8gU3ltYm9sUmVnaXN0cnlba2V5XVxuICAgICAgOiBTeW1ib2xSZWdpc3RyeVtrZXldID0gJFN5bWJvbChrZXkpO1xuICB9LFxuICAvLyAxOS40LjIuNSBTeW1ib2wua2V5Rm9yKHN5bSlcbiAga2V5Rm9yOiBmdW5jdGlvbiBrZXlGb3Ioc3ltKSB7XG4gICAgaWYgKCFpc1N5bWJvbChzeW0pKSB0aHJvdyBUeXBlRXJyb3Ioc3ltICsgJyBpcyBub3QgYSBzeW1ib2whJyk7XG4gICAgZm9yICh2YXIga2V5IGluIFN5bWJvbFJlZ2lzdHJ5KSBpZiAoU3ltYm9sUmVnaXN0cnlba2V5XSA9PT0gc3ltKSByZXR1cm4ga2V5O1xuICB9LFxuICB1c2VTZXR0ZXI6IGZ1bmN0aW9uICgpIHsgc2V0dGVyID0gdHJ1ZTsgfSxcbiAgdXNlU2ltcGxlOiBmdW5jdGlvbiAoKSB7IHNldHRlciA9IGZhbHNlOyB9XG59KTtcblxuJGV4cG9ydCgkZXhwb3J0LlMgKyAkZXhwb3J0LkYgKiAhVVNFX05BVElWRSwgJ09iamVjdCcsIHtcbiAgLy8gMTkuMS4yLjIgT2JqZWN0LmNyZWF0ZShPIFssIFByb3BlcnRpZXNdKVxuICBjcmVhdGU6ICRjcmVhdGUsXG4gIC8vIDE5LjEuMi40IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCBQLCBBdHRyaWJ1dGVzKVxuICBkZWZpbmVQcm9wZXJ0eTogJGRlZmluZVByb3BlcnR5LFxuICAvLyAxOS4xLjIuMyBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhPLCBQcm9wZXJ0aWVzKVxuICBkZWZpbmVQcm9wZXJ0aWVzOiAkZGVmaW5lUHJvcGVydGllcyxcbiAgLy8gMTkuMS4yLjYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihPLCBQKVxuICBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I6ICRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsXG4gIC8vIDE5LjEuMi43IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKE8pXG4gIGdldE93blByb3BlcnR5TmFtZXM6ICRnZXRPd25Qcm9wZXJ0eU5hbWVzLFxuICAvLyAxOS4xLjIuOCBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKE8pXG4gIGdldE93blByb3BlcnR5U3ltYm9sczogJGdldE93blByb3BlcnR5U3ltYm9sc1xufSk7XG5cbi8vIENocm9tZSAzOCBhbmQgMzkgYE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHNgIGZhaWxzIG9uIHByaW1pdGl2ZXNcbi8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTM0NDNcbnZhciBGQUlMU19PTl9QUklNSVRJVkVTID0gJGZhaWxzKGZ1bmN0aW9uICgpIHsgJEdPUFMuZigxKTsgfSk7XG5cbiRleHBvcnQoJGV4cG9ydC5TICsgJGV4cG9ydC5GICogRkFJTFNfT05fUFJJTUlUSVZFUywgJ09iamVjdCcsIHtcbiAgZ2V0T3duUHJvcGVydHlTeW1ib2xzOiBmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMoaXQpIHtcbiAgICByZXR1cm4gJEdPUFMuZih0b09iamVjdChpdCkpO1xuICB9XG59KTtcblxuLy8gMjQuMy4yIEpTT04uc3RyaW5naWZ5KHZhbHVlIFssIHJlcGxhY2VyIFssIHNwYWNlXV0pXG4kSlNPTiAmJiAkZXhwb3J0KCRleHBvcnQuUyArICRleHBvcnQuRiAqICghVVNFX05BVElWRSB8fCAkZmFpbHMoZnVuY3Rpb24gKCkge1xuICB2YXIgUyA9ICRTeW1ib2woKTtcbiAgLy8gTVMgRWRnZSBjb252ZXJ0cyBzeW1ib2wgdmFsdWVzIHRvIEpTT04gYXMge31cbiAgLy8gV2ViS2l0IGNvbnZlcnRzIHN5bWJvbCB2YWx1ZXMgdG8gSlNPTiBhcyBudWxsXG4gIC8vIFY4IHRocm93cyBvbiBib3hlZCBzeW1ib2xzXG4gIHJldHVybiBfc3RyaW5naWZ5KFtTXSkgIT0gJ1tudWxsXScgfHwgX3N0cmluZ2lmeSh7IGE6IFMgfSkgIT0gJ3t9JyB8fCBfc3RyaW5naWZ5KE9iamVjdChTKSkgIT0gJ3t9Jztcbn0pKSwgJ0pTT04nLCB7XG4gIHN0cmluZ2lmeTogZnVuY3Rpb24gc3RyaW5naWZ5KGl0KSB7XG4gICAgdmFyIGFyZ3MgPSBbaXRdO1xuICAgIHZhciBpID0gMTtcbiAgICB2YXIgcmVwbGFjZXIsICRyZXBsYWNlcjtcbiAgICB3aGlsZSAoYXJndW1lbnRzLmxlbmd0aCA+IGkpIGFyZ3MucHVzaChhcmd1bWVudHNbaSsrXSk7XG4gICAgJHJlcGxhY2VyID0gcmVwbGFjZXIgPSBhcmdzWzFdO1xuICAgIGlmICghaXNPYmplY3QocmVwbGFjZXIpICYmIGl0ID09PSB1bmRlZmluZWQgfHwgaXNTeW1ib2woaXQpKSByZXR1cm47IC8vIElFOCByZXR1cm5zIHN0cmluZyBvbiB1bmRlZmluZWRcbiAgICBpZiAoIWlzQXJyYXkocmVwbGFjZXIpKSByZXBsYWNlciA9IGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XG4gICAgICBpZiAodHlwZW9mICRyZXBsYWNlciA9PSAnZnVuY3Rpb24nKSB2YWx1ZSA9ICRyZXBsYWNlci5jYWxsKHRoaXMsIGtleSwgdmFsdWUpO1xuICAgICAgaWYgKCFpc1N5bWJvbCh2YWx1ZSkpIHJldHVybiB2YWx1ZTtcbiAgICB9O1xuICAgIGFyZ3NbMV0gPSByZXBsYWNlcjtcbiAgICByZXR1cm4gX3N0cmluZ2lmeS5hcHBseSgkSlNPTiwgYXJncyk7XG4gIH1cbn0pO1xuXG4vLyAxOS40LjMuNCBTeW1ib2wucHJvdG90eXBlW0BAdG9QcmltaXRpdmVdKGhpbnQpXG4kU3ltYm9sW1BST1RPVFlQRV1bVE9fUFJJTUlUSVZFXSB8fCByZXF1aXJlKCcuL19oaWRlJykoJFN5bWJvbFtQUk9UT1RZUEVdLCBUT19QUklNSVRJVkUsICRTeW1ib2xbUFJPVE9UWVBFXS52YWx1ZU9mKTtcbi8vIDE5LjQuMy41IFN5bWJvbC5wcm90b3R5cGVbQEB0b1N0cmluZ1RhZ11cbnNldFRvU3RyaW5nVGFnKCRTeW1ib2wsICdTeW1ib2wnKTtcbi8vIDIwLjIuMS45IE1hdGhbQEB0b1N0cmluZ1RhZ11cbnNldFRvU3RyaW5nVGFnKE1hdGgsICdNYXRoJywgdHJ1ZSk7XG4vLyAyNC4zLjMgSlNPTltAQHRvU3RyaW5nVGFnXVxuc2V0VG9TdHJpbmdUYWcoZ2xvYmFsLkpTT04sICdKU09OJywgdHJ1ZSk7XG4iLCJ2YXIgTUVUQSA9IHJlcXVpcmUoJy4vX3VpZCcpKCdtZXRhJyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL19pcy1vYmplY3QnKTtcbnZhciBoYXMgPSByZXF1aXJlKCcuL19oYXMnKTtcbnZhciBzZXREZXNjID0gcmVxdWlyZSgnLi9fb2JqZWN0LWRwJykuZjtcbnZhciBpZCA9IDA7XG52YXIgaXNFeHRlbnNpYmxlID0gT2JqZWN0LmlzRXh0ZW5zaWJsZSB8fCBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0cnVlO1xufTtcbnZhciBGUkVFWkUgPSAhcmVxdWlyZSgnLi9fZmFpbHMnKShmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBpc0V4dGVuc2libGUoT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKHt9KSk7XG59KTtcbnZhciBzZXRNZXRhID0gZnVuY3Rpb24gKGl0KSB7XG4gIHNldERlc2MoaXQsIE1FVEEsIHsgdmFsdWU6IHtcbiAgICBpOiAnTycgKyArK2lkLCAvLyBvYmplY3QgSURcbiAgICB3OiB7fSAgICAgICAgICAvLyB3ZWFrIGNvbGxlY3Rpb25zIElEc1xuICB9IH0pO1xufTtcbnZhciBmYXN0S2V5ID0gZnVuY3Rpb24gKGl0LCBjcmVhdGUpIHtcbiAgLy8gcmV0dXJuIHByaW1pdGl2ZSB3aXRoIHByZWZpeFxuICBpZiAoIWlzT2JqZWN0KGl0KSkgcmV0dXJuIHR5cGVvZiBpdCA9PSAnc3ltYm9sJyA/IGl0IDogKHR5cGVvZiBpdCA9PSAnc3RyaW5nJyA/ICdTJyA6ICdQJykgKyBpdDtcbiAgaWYgKCFoYXMoaXQsIE1FVEEpKSB7XG4gICAgLy8gY2FuJ3Qgc2V0IG1ldGFkYXRhIHRvIHVuY2F1Z2h0IGZyb3plbiBvYmplY3RcbiAgICBpZiAoIWlzRXh0ZW5zaWJsZShpdCkpIHJldHVybiAnRic7XG4gICAgLy8gbm90IG5lY2Vzc2FyeSB0byBhZGQgbWV0YWRhdGFcbiAgICBpZiAoIWNyZWF0ZSkgcmV0dXJuICdFJztcbiAgICAvLyBhZGQgbWlzc2luZyBtZXRhZGF0YVxuICAgIHNldE1ldGEoaXQpO1xuICAvLyByZXR1cm4gb2JqZWN0IElEXG4gIH0gcmV0dXJuIGl0W01FVEFdLmk7XG59O1xudmFyIGdldFdlYWsgPSBmdW5jdGlvbiAoaXQsIGNyZWF0ZSkge1xuICBpZiAoIWhhcyhpdCwgTUVUQSkpIHtcbiAgICAvLyBjYW4ndCBzZXQgbWV0YWRhdGEgdG8gdW5jYXVnaHQgZnJvemVuIG9iamVjdFxuICAgIGlmICghaXNFeHRlbnNpYmxlKGl0KSkgcmV0dXJuIHRydWU7XG4gICAgLy8gbm90IG5lY2Vzc2FyeSB0byBhZGQgbWV0YWRhdGFcbiAgICBpZiAoIWNyZWF0ZSkgcmV0dXJuIGZhbHNlO1xuICAgIC8vIGFkZCBtaXNzaW5nIG1ldGFkYXRhXG4gICAgc2V0TWV0YShpdCk7XG4gIC8vIHJldHVybiBoYXNoIHdlYWsgY29sbGVjdGlvbnMgSURzXG4gIH0gcmV0dXJuIGl0W01FVEFdLnc7XG59O1xuLy8gYWRkIG1ldGFkYXRhIG9uIGZyZWV6ZS1mYW1pbHkgbWV0aG9kcyBjYWxsaW5nXG52YXIgb25GcmVlemUgPSBmdW5jdGlvbiAoaXQpIHtcbiAgaWYgKEZSRUVaRSAmJiBtZXRhLk5FRUQgJiYgaXNFeHRlbnNpYmxlKGl0KSAmJiAhaGFzKGl0LCBNRVRBKSkgc2V0TWV0YShpdCk7XG4gIHJldHVybiBpdDtcbn07XG52YXIgbWV0YSA9IG1vZHVsZS5leHBvcnRzID0ge1xuICBLRVk6IE1FVEEsXG4gIE5FRUQ6IGZhbHNlLFxuICBmYXN0S2V5OiBmYXN0S2V5LFxuICBnZXRXZWFrOiBnZXRXZWFrLFxuICBvbkZyZWV6ZTogb25GcmVlemVcbn07XG4iLCIvLyBhbGwgZW51bWVyYWJsZSBvYmplY3Qga2V5cywgaW5jbHVkZXMgc3ltYm9sc1xudmFyIGdldEtleXMgPSByZXF1aXJlKCcuL19vYmplY3Qta2V5cycpO1xudmFyIGdPUFMgPSByZXF1aXJlKCcuL19vYmplY3QtZ29wcycpO1xudmFyIHBJRSA9IHJlcXVpcmUoJy4vX29iamVjdC1waWUnKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHZhciByZXN1bHQgPSBnZXRLZXlzKGl0KTtcbiAgdmFyIGdldFN5bWJvbHMgPSBnT1BTLmY7XG4gIGlmIChnZXRTeW1ib2xzKSB7XG4gICAgdmFyIHN5bWJvbHMgPSBnZXRTeW1ib2xzKGl0KTtcbiAgICB2YXIgaXNFbnVtID0gcElFLmY7XG4gICAgdmFyIGkgPSAwO1xuICAgIHZhciBrZXk7XG4gICAgd2hpbGUgKHN5bWJvbHMubGVuZ3RoID4gaSkgaWYgKGlzRW51bS5jYWxsKGl0LCBrZXkgPSBzeW1ib2xzW2krK10pKSByZXN1bHQucHVzaChrZXkpO1xuICB9IHJldHVybiByZXN1bHQ7XG59O1xuIiwiLy8gNy4yLjIgSXNBcnJheShhcmd1bWVudClcbnZhciBjb2YgPSByZXF1aXJlKCcuL19jb2YnKTtcbm1vZHVsZS5leHBvcnRzID0gQXJyYXkuaXNBcnJheSB8fCBmdW5jdGlvbiBpc0FycmF5KGFyZykge1xuICByZXR1cm4gY29mKGFyZykgPT0gJ0FycmF5Jztcbn07XG4iLCIvLyBmYWxsYmFjayBmb3IgSUUxMSBidWdneSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyB3aXRoIGlmcmFtZSBhbmQgd2luZG93XG52YXIgdG9JT2JqZWN0ID0gcmVxdWlyZSgnLi9fdG8taW9iamVjdCcpO1xudmFyIGdPUE4gPSByZXF1aXJlKCcuL19vYmplY3QtZ29wbicpLmY7XG52YXIgdG9TdHJpbmcgPSB7fS50b1N0cmluZztcblxudmFyIHdpbmRvd05hbWVzID0gdHlwZW9mIHdpbmRvdyA9PSAnb2JqZWN0JyAmJiB3aW5kb3cgJiYgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXNcbiAgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh3aW5kb3cpIDogW107XG5cbnZhciBnZXRXaW5kb3dOYW1lcyA9IGZ1bmN0aW9uIChpdCkge1xuICB0cnkge1xuICAgIHJldHVybiBnT1BOKGl0KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiB3aW5kb3dOYW1lcy5zbGljZSgpO1xuICB9XG59O1xuXG5tb2R1bGUuZXhwb3J0cy5mID0gZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlOYW1lcyhpdCkge1xuICByZXR1cm4gd2luZG93TmFtZXMgJiYgdG9TdHJpbmcuY2FsbChpdCkgPT0gJ1tvYmplY3QgV2luZG93XScgPyBnZXRXaW5kb3dOYW1lcyhpdCkgOiBnT1BOKHRvSU9iamVjdChpdCkpO1xufTtcbiIsInJlcXVpcmUoJy4vX3drcy1kZWZpbmUnKSgnYXN5bmNJdGVyYXRvcicpO1xuIiwicmVxdWlyZSgnLi9fd2tzLWRlZmluZScpKCdvYnNlcnZhYmxlJyk7XG4iLCJtb2R1bGUuZXhwb3J0cyA9IHsgXCJkZWZhdWx0XCI6IHJlcXVpcmUoXCJjb3JlLWpzL2xpYnJhcnkvZm4vb2JqZWN0L3NldC1wcm90b3R5cGUtb2ZcIiksIF9fZXNNb2R1bGU6IHRydWUgfTsiLCJyZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzNi5vYmplY3Quc2V0LXByb3RvdHlwZS1vZicpO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGVzL19jb3JlJykuT2JqZWN0LnNldFByb3RvdHlwZU9mO1xuIiwiLy8gMTkuMS4zLjE5IE9iamVjdC5zZXRQcm90b3R5cGVPZihPLCBwcm90bylcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG4kZXhwb3J0KCRleHBvcnQuUywgJ09iamVjdCcsIHsgc2V0UHJvdG90eXBlT2Y6IHJlcXVpcmUoJy4vX3NldC1wcm90bycpLnNldCB9KTtcbiIsIi8vIFdvcmtzIHdpdGggX19wcm90b19fIG9ubHkuIE9sZCB2OCBjYW4ndCB3b3JrIHdpdGggbnVsbCBwcm90byBvYmplY3RzLlxuLyogZXNsaW50LWRpc2FibGUgbm8tcHJvdG8gKi9cbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4vX2lzLW9iamVjdCcpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi9fYW4tb2JqZWN0Jyk7XG52YXIgY2hlY2sgPSBmdW5jdGlvbiAoTywgcHJvdG8pIHtcbiAgYW5PYmplY3QoTyk7XG4gIGlmICghaXNPYmplY3QocHJvdG8pICYmIHByb3RvICE9PSBudWxsKSB0aHJvdyBUeXBlRXJyb3IocHJvdG8gKyBcIjogY2FuJ3Qgc2V0IGFzIHByb3RvdHlwZSFcIik7XG59O1xubW9kdWxlLmV4cG9ydHMgPSB7XG4gIHNldDogT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8ICgnX19wcm90b19fJyBpbiB7fSA/IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcbiAgICBmdW5jdGlvbiAodGVzdCwgYnVnZ3ksIHNldCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgc2V0ID0gcmVxdWlyZSgnLi9fY3R4JykoRnVuY3Rpb24uY2FsbCwgcmVxdWlyZSgnLi9fb2JqZWN0LWdvcGQnKS5mKE9iamVjdC5wcm90b3R5cGUsICdfX3Byb3RvX18nKS5zZXQsIDIpO1xuICAgICAgICBzZXQodGVzdCwgW10pO1xuICAgICAgICBidWdneSA9ICEodGVzdCBpbnN0YW5jZW9mIEFycmF5KTtcbiAgICAgIH0gY2F0Y2ggKGUpIHsgYnVnZ3kgPSB0cnVlOyB9XG4gICAgICByZXR1cm4gZnVuY3Rpb24gc2V0UHJvdG90eXBlT2YoTywgcHJvdG8pIHtcbiAgICAgICAgY2hlY2soTywgcHJvdG8pO1xuICAgICAgICBpZiAoYnVnZ3kpIE8uX19wcm90b19fID0gcHJvdG87XG4gICAgICAgIGVsc2Ugc2V0KE8sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIE87XG4gICAgICB9O1xuICAgIH0oe30sIGZhbHNlKSA6IHVuZGVmaW5lZCksXG4gIGNoZWNrOiBjaGVja1xufTtcbiIsIm1vZHVsZS5leHBvcnRzID0geyBcImRlZmF1bHRcIjogcmVxdWlyZShcImNvcmUtanMvbGlicmFyeS9mbi9vYmplY3QvY3JlYXRlXCIpLCBfX2VzTW9kdWxlOiB0cnVlIH07IiwicmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lczYub2JqZWN0LmNyZWF0ZScpO1xudmFyICRPYmplY3QgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGVzL19jb3JlJykuT2JqZWN0O1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBjcmVhdGUoUCwgRCkge1xuICByZXR1cm4gJE9iamVjdC5jcmVhdGUoUCwgRCk7XG59O1xuIiwidmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcbi8vIDE5LjEuMi4yIC8gMTUuMi4zLjUgT2JqZWN0LmNyZWF0ZShPIFssIFByb3BlcnRpZXNdKVxuJGV4cG9ydCgkZXhwb3J0LlMsICdPYmplY3QnLCB7IGNyZWF0ZTogcmVxdWlyZSgnLi9fb2JqZWN0LWNyZWF0ZScpIH0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdGlueWNvbG9yMl8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJ0aW55Y29sb3IyXCIpKTtcbnZhciBodWVTdGVwID0gMjsgLy8g6Imy55u46Zi25qKvXG52YXIgc2F0dXJhdGlvblN0ZXAgPSAxNjsgLy8g6aWx5ZKM5bqm6Zi25qKv77yM5rWF6Imy6YOo5YiGXG52YXIgc2F0dXJhdGlvblN0ZXAyID0gNTsgLy8g6aWx5ZKM5bqm6Zi25qKv77yM5rex6Imy6YOo5YiGXG52YXIgYnJpZ2h0bmVzc1N0ZXAxID0gNTsgLy8g5Lqu5bqm6Zi25qKv77yM5rWF6Imy6YOo5YiGXG52YXIgYnJpZ2h0bmVzc1N0ZXAyID0gMTU7IC8vIOS6ruW6pumYtuair++8jOa3seiJsumDqOWIhlxudmFyIGxpZ2h0Q29sb3JDb3VudCA9IDU7IC8vIOa1heiJsuaVsOmHj++8jOS4u+iJsuS4ilxudmFyIGRhcmtDb2xvckNvdW50ID0gNDsgLy8g5rex6Imy5pWw6YeP77yM5Li76Imy5LiLXG5mdW5jdGlvbiBnZXRIdWUoaHN2LCBpLCBsaWdodCkge1xuICAgIHZhciBodWU7XG4gICAgLy8g5qC55o2u6Imy55u45LiN5ZCM77yM6Imy55u46L2s5ZCR5LiN5ZCMXG4gICAgaWYgKE1hdGgucm91bmQoaHN2LmgpID49IDYwICYmIE1hdGgucm91bmQoaHN2LmgpIDw9IDI0MCkge1xuICAgICAgICBodWUgPSBsaWdodCA/IE1hdGgucm91bmQoaHN2LmgpIC0gaHVlU3RlcCAqIGkgOiBNYXRoLnJvdW5kKGhzdi5oKSArIGh1ZVN0ZXAgKiBpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgaHVlID0gbGlnaHQgPyBNYXRoLnJvdW5kKGhzdi5oKSArIGh1ZVN0ZXAgKiBpIDogTWF0aC5yb3VuZChoc3YuaCkgLSBodWVTdGVwICogaTtcbiAgICB9XG4gICAgaWYgKGh1ZSA8IDApIHtcbiAgICAgICAgaHVlICs9IDM2MDtcbiAgICB9XG4gICAgZWxzZSBpZiAoaHVlID49IDM2MCkge1xuICAgICAgICBodWUgLT0gMzYwO1xuICAgIH1cbiAgICByZXR1cm4gaHVlO1xufVxuZnVuY3Rpb24gZ2V0U2F0dXJhdGlvbihoc3YsIGksIGxpZ2h0KSB7XG4gICAgLy8gZ3JleSBjb2xvciBkb24ndCBjaGFuZ2Ugc2F0dXJhdGlvblxuICAgIGlmIChoc3YuaCA9PT0gMCAmJiBoc3YucyA9PT0gMCkge1xuICAgICAgICByZXR1cm4gaHN2LnM7XG4gICAgfVxuICAgIHZhciBzYXR1cmF0aW9uO1xuICAgIGlmIChsaWdodCkge1xuICAgICAgICBzYXR1cmF0aW9uID0gTWF0aC5yb3VuZChoc3YucyAqIDEwMCkgLSBzYXR1cmF0aW9uU3RlcCAqIGk7XG4gICAgfVxuICAgIGVsc2UgaWYgKGkgPT09IGRhcmtDb2xvckNvdW50KSB7XG4gICAgICAgIHNhdHVyYXRpb24gPSBNYXRoLnJvdW5kKGhzdi5zICogMTAwKSArIHNhdHVyYXRpb25TdGVwO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgc2F0dXJhdGlvbiA9IE1hdGgucm91bmQoaHN2LnMgKiAxMDApICsgc2F0dXJhdGlvblN0ZXAyICogaTtcbiAgICB9XG4gICAgLy8g6L6555WM5YC85L+u5q2jXG4gICAgaWYgKHNhdHVyYXRpb24gPiAxMDApIHtcbiAgICAgICAgc2F0dXJhdGlvbiA9IDEwMDtcbiAgICB9XG4gICAgLy8g56ys5LiA5qC855qEIHMg6ZmQ5Yi25ZyoIDYtMTAg5LmL6Ze0XG4gICAgaWYgKGxpZ2h0ICYmIGkgPT09IGxpZ2h0Q29sb3JDb3VudCAmJiBzYXR1cmF0aW9uID4gMTApIHtcbiAgICAgICAgc2F0dXJhdGlvbiA9IDEwO1xuICAgIH1cbiAgICBpZiAoc2F0dXJhdGlvbiA8IDYpIHtcbiAgICAgICAgc2F0dXJhdGlvbiA9IDY7XG4gICAgfVxuICAgIHJldHVybiBzYXR1cmF0aW9uO1xufVxuZnVuY3Rpb24gZ2V0VmFsdWUoaHN2LCBpLCBsaWdodCkge1xuICAgIGlmIChsaWdodCkge1xuICAgICAgICByZXR1cm4gTWF0aC5yb3VuZChoc3YudiAqIDEwMCkgKyBicmlnaHRuZXNzU3RlcDEgKiBpO1xuICAgIH1cbiAgICByZXR1cm4gTWF0aC5yb3VuZChoc3YudiAqIDEwMCkgLSBicmlnaHRuZXNzU3RlcDIgKiBpO1xufVxuZnVuY3Rpb24gZ2VuZXJhdGUoY29sb3IpIHtcbiAgICB2YXIgcGF0dGVybnMgPSBbXTtcbiAgICB2YXIgcENvbG9yID0gdGlueWNvbG9yMl8xLmRlZmF1bHQoY29sb3IpO1xuICAgIGZvciAodmFyIGkgPSBsaWdodENvbG9yQ291bnQ7IGkgPiAwOyBpIC09IDEpIHtcbiAgICAgICAgdmFyIGhzdiA9IHBDb2xvci50b0hzdigpO1xuICAgICAgICB2YXIgY29sb3JTdHJpbmcgPSB0aW55Y29sb3IyXzEuZGVmYXVsdCh7XG4gICAgICAgICAgICBoOiBnZXRIdWUoaHN2LCBpLCB0cnVlKSxcbiAgICAgICAgICAgIHM6IGdldFNhdHVyYXRpb24oaHN2LCBpLCB0cnVlKSxcbiAgICAgICAgICAgIHY6IGdldFZhbHVlKGhzdiwgaSwgdHJ1ZSksXG4gICAgICAgIH0pLnRvSGV4U3RyaW5nKCk7XG4gICAgICAgIHBhdHRlcm5zLnB1c2goY29sb3JTdHJpbmcpO1xuICAgIH1cbiAgICBwYXR0ZXJucy5wdXNoKHBDb2xvci50b0hleFN0cmluZygpKTtcbiAgICBmb3IgKHZhciBpID0gMTsgaSA8PSBkYXJrQ29sb3JDb3VudDsgaSArPSAxKSB7XG4gICAgICAgIHZhciBoc3YgPSBwQ29sb3IudG9Ic3YoKTtcbiAgICAgICAgdmFyIGNvbG9yU3RyaW5nID0gdGlueWNvbG9yMl8xLmRlZmF1bHQoe1xuICAgICAgICAgICAgaDogZ2V0SHVlKGhzdiwgaSksXG4gICAgICAgICAgICBzOiBnZXRTYXR1cmF0aW9uKGhzdiwgaSksXG4gICAgICAgICAgICB2OiBnZXRWYWx1ZShoc3YsIGkpLFxuICAgICAgICB9KS50b0hleFN0cmluZygpO1xuICAgICAgICBwYXR0ZXJucy5wdXNoKGNvbG9yU3RyaW5nKTtcbiAgICB9XG4gICAgcmV0dXJuIHBhdHRlcm5zO1xufVxuZXhwb3J0cy5kZWZhdWx0ID0gZ2VuZXJhdGU7XG4iLCIvLyBUaW55Q29sb3IgdjEuNC4xXG4vLyBodHRwczovL2dpdGh1Yi5jb20vYmdyaW5zL1RpbnlDb2xvclxuLy8gQnJpYW4gR3JpbnN0ZWFkLCBNSVQgTGljZW5zZVxuXG4oZnVuY3Rpb24oTWF0aCkge1xuXG52YXIgdHJpbUxlZnQgPSAvXlxccysvLFxuICAgIHRyaW1SaWdodCA9IC9cXHMrJC8sXG4gICAgdGlueUNvdW50ZXIgPSAwLFxuICAgIG1hdGhSb3VuZCA9IE1hdGgucm91bmQsXG4gICAgbWF0aE1pbiA9IE1hdGgubWluLFxuICAgIG1hdGhNYXggPSBNYXRoLm1heCxcbiAgICBtYXRoUmFuZG9tID0gTWF0aC5yYW5kb207XG5cbmZ1bmN0aW9uIHRpbnljb2xvciAoY29sb3IsIG9wdHMpIHtcblxuICAgIGNvbG9yID0gKGNvbG9yKSA/IGNvbG9yIDogJyc7XG4gICAgb3B0cyA9IG9wdHMgfHwgeyB9O1xuXG4gICAgLy8gSWYgaW5wdXQgaXMgYWxyZWFkeSBhIHRpbnljb2xvciwgcmV0dXJuIGl0c2VsZlxuICAgIGlmIChjb2xvciBpbnN0YW5jZW9mIHRpbnljb2xvcikge1xuICAgICAgIHJldHVybiBjb2xvcjtcbiAgICB9XG4gICAgLy8gSWYgd2UgYXJlIGNhbGxlZCBhcyBhIGZ1bmN0aW9uLCBjYWxsIHVzaW5nIG5ldyBpbnN0ZWFkXG4gICAgaWYgKCEodGhpcyBpbnN0YW5jZW9mIHRpbnljb2xvcikpIHtcbiAgICAgICAgcmV0dXJuIG5ldyB0aW55Y29sb3IoY29sb3IsIG9wdHMpO1xuICAgIH1cblxuICAgIHZhciByZ2IgPSBpbnB1dFRvUkdCKGNvbG9yKTtcbiAgICB0aGlzLl9vcmlnaW5hbElucHV0ID0gY29sb3IsXG4gICAgdGhpcy5fciA9IHJnYi5yLFxuICAgIHRoaXMuX2cgPSByZ2IuZyxcbiAgICB0aGlzLl9iID0gcmdiLmIsXG4gICAgdGhpcy5fYSA9IHJnYi5hLFxuICAgIHRoaXMuX3JvdW5kQSA9IG1hdGhSb3VuZCgxMDAqdGhpcy5fYSkgLyAxMDAsXG4gICAgdGhpcy5fZm9ybWF0ID0gb3B0cy5mb3JtYXQgfHwgcmdiLmZvcm1hdDtcbiAgICB0aGlzLl9ncmFkaWVudFR5cGUgPSBvcHRzLmdyYWRpZW50VHlwZTtcblxuICAgIC8vIERvbid0IGxldCB0aGUgcmFuZ2Ugb2YgWzAsMjU1XSBjb21lIGJhY2sgaW4gWzAsMV0uXG4gICAgLy8gUG90ZW50aWFsbHkgbG9zZSBhIGxpdHRsZSBiaXQgb2YgcHJlY2lzaW9uIGhlcmUsIGJ1dCB3aWxsIGZpeCBpc3N1ZXMgd2hlcmVcbiAgICAvLyAuNSBnZXRzIGludGVycHJldGVkIGFzIGhhbGYgb2YgdGhlIHRvdGFsLCBpbnN0ZWFkIG9mIGhhbGYgb2YgMVxuICAgIC8vIElmIGl0IHdhcyBzdXBwb3NlZCB0byBiZSAxMjgsIHRoaXMgd2FzIGFscmVhZHkgdGFrZW4gY2FyZSBvZiBieSBgaW5wdXRUb1JnYmBcbiAgICBpZiAodGhpcy5fciA8IDEpIHsgdGhpcy5fciA9IG1hdGhSb3VuZCh0aGlzLl9yKTsgfVxuICAgIGlmICh0aGlzLl9nIDwgMSkgeyB0aGlzLl9nID0gbWF0aFJvdW5kKHRoaXMuX2cpOyB9XG4gICAgaWYgKHRoaXMuX2IgPCAxKSB7IHRoaXMuX2IgPSBtYXRoUm91bmQodGhpcy5fYik7IH1cblxuICAgIHRoaXMuX29rID0gcmdiLm9rO1xuICAgIHRoaXMuX3RjX2lkID0gdGlueUNvdW50ZXIrKztcbn1cblxudGlueWNvbG9yLnByb3RvdHlwZSA9IHtcbiAgICBpc0Rhcms6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRCcmlnaHRuZXNzKCkgPCAxMjg7XG4gICAgfSxcbiAgICBpc0xpZ2h0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmlzRGFyaygpO1xuICAgIH0sXG4gICAgaXNWYWxpZDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vaztcbiAgICB9LFxuICAgIGdldE9yaWdpbmFsSW5wdXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHRoaXMuX29yaWdpbmFsSW5wdXQ7XG4gICAgfSxcbiAgICBnZXRGb3JtYXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZm9ybWF0O1xuICAgIH0sXG4gICAgZ2V0QWxwaGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYTtcbiAgICB9LFxuICAgIGdldEJyaWdodG5lc3M6IGZ1bmN0aW9uKCkge1xuICAgICAgICAvL2h0dHA6Ly93d3cudzMub3JnL1RSL0FFUlQjY29sb3ItY29udHJhc3RcbiAgICAgICAgdmFyIHJnYiA9IHRoaXMudG9SZ2IoKTtcbiAgICAgICAgcmV0dXJuIChyZ2IuciAqIDI5OSArIHJnYi5nICogNTg3ICsgcmdiLmIgKiAxMTQpIC8gMTAwMDtcbiAgICB9LFxuICAgIGdldEx1bWluYW5jZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIC8vaHR0cDovL3d3dy53My5vcmcvVFIvMjAwOC9SRUMtV0NBRzIwLTIwMDgxMjExLyNyZWxhdGl2ZWx1bWluYW5jZWRlZlxuICAgICAgICB2YXIgcmdiID0gdGhpcy50b1JnYigpO1xuICAgICAgICB2YXIgUnNSR0IsIEdzUkdCLCBCc1JHQiwgUiwgRywgQjtcbiAgICAgICAgUnNSR0IgPSByZ2Iuci8yNTU7XG4gICAgICAgIEdzUkdCID0gcmdiLmcvMjU1O1xuICAgICAgICBCc1JHQiA9IHJnYi5iLzI1NTtcblxuICAgICAgICBpZiAoUnNSR0IgPD0gMC4wMzkyOCkge1IgPSBSc1JHQiAvIDEyLjkyO30gZWxzZSB7UiA9IE1hdGgucG93KCgoUnNSR0IgKyAwLjA1NSkgLyAxLjA1NSksIDIuNCk7fVxuICAgICAgICBpZiAoR3NSR0IgPD0gMC4wMzkyOCkge0cgPSBHc1JHQiAvIDEyLjkyO30gZWxzZSB7RyA9IE1hdGgucG93KCgoR3NSR0IgKyAwLjA1NSkgLyAxLjA1NSksIDIuNCk7fVxuICAgICAgICBpZiAoQnNSR0IgPD0gMC4wMzkyOCkge0IgPSBCc1JHQiAvIDEyLjkyO30gZWxzZSB7QiA9IE1hdGgucG93KCgoQnNSR0IgKyAwLjA1NSkgLyAxLjA1NSksIDIuNCk7fVxuICAgICAgICByZXR1cm4gKDAuMjEyNiAqIFIpICsgKDAuNzE1MiAqIEcpICsgKDAuMDcyMiAqIEIpO1xuICAgIH0sXG4gICAgc2V0QWxwaGE6IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuX2EgPSBib3VuZEFscGhhKHZhbHVlKTtcbiAgICAgICAgdGhpcy5fcm91bmRBID0gbWF0aFJvdW5kKDEwMCp0aGlzLl9hKSAvIDEwMDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSxcbiAgICB0b0hzdjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBoc3YgPSByZ2JUb0hzdih0aGlzLl9yLCB0aGlzLl9nLCB0aGlzLl9iKTtcbiAgICAgICAgcmV0dXJuIHsgaDogaHN2LmggKiAzNjAsIHM6IGhzdi5zLCB2OiBoc3YudiwgYTogdGhpcy5fYSB9O1xuICAgIH0sXG4gICAgdG9Ic3ZTdHJpbmc6IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgaHN2ID0gcmdiVG9Ic3YodGhpcy5fciwgdGhpcy5fZywgdGhpcy5fYik7XG4gICAgICAgIHZhciBoID0gbWF0aFJvdW5kKGhzdi5oICogMzYwKSwgcyA9IG1hdGhSb3VuZChoc3YucyAqIDEwMCksIHYgPSBtYXRoUm91bmQoaHN2LnYgKiAxMDApO1xuICAgICAgICByZXR1cm4gKHRoaXMuX2EgPT0gMSkgP1xuICAgICAgICAgIFwiaHN2KFwiICArIGggKyBcIiwgXCIgKyBzICsgXCIlLCBcIiArIHYgKyBcIiUpXCIgOlxuICAgICAgICAgIFwiaHN2YShcIiArIGggKyBcIiwgXCIgKyBzICsgXCIlLCBcIiArIHYgKyBcIiUsIFwiKyB0aGlzLl9yb3VuZEEgKyBcIilcIjtcbiAgICB9LFxuICAgIHRvSHNsOiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIGhzbCA9IHJnYlRvSHNsKHRoaXMuX3IsIHRoaXMuX2csIHRoaXMuX2IpO1xuICAgICAgICByZXR1cm4geyBoOiBoc2wuaCAqIDM2MCwgczogaHNsLnMsIGw6IGhzbC5sLCBhOiB0aGlzLl9hIH07XG4gICAgfSxcbiAgICB0b0hzbFN0cmluZzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBoc2wgPSByZ2JUb0hzbCh0aGlzLl9yLCB0aGlzLl9nLCB0aGlzLl9iKTtcbiAgICAgICAgdmFyIGggPSBtYXRoUm91bmQoaHNsLmggKiAzNjApLCBzID0gbWF0aFJvdW5kKGhzbC5zICogMTAwKSwgbCA9IG1hdGhSb3VuZChoc2wubCAqIDEwMCk7XG4gICAgICAgIHJldHVybiAodGhpcy5fYSA9PSAxKSA/XG4gICAgICAgICAgXCJoc2woXCIgICsgaCArIFwiLCBcIiArIHMgKyBcIiUsIFwiICsgbCArIFwiJSlcIiA6XG4gICAgICAgICAgXCJoc2xhKFwiICsgaCArIFwiLCBcIiArIHMgKyBcIiUsIFwiICsgbCArIFwiJSwgXCIrIHRoaXMuX3JvdW5kQSArIFwiKVwiO1xuICAgIH0sXG4gICAgdG9IZXg6IGZ1bmN0aW9uKGFsbG93M0NoYXIpIHtcbiAgICAgICAgcmV0dXJuIHJnYlRvSGV4KHRoaXMuX3IsIHRoaXMuX2csIHRoaXMuX2IsIGFsbG93M0NoYXIpO1xuICAgIH0sXG4gICAgdG9IZXhTdHJpbmc6IGZ1bmN0aW9uKGFsbG93M0NoYXIpIHtcbiAgICAgICAgcmV0dXJuICcjJyArIHRoaXMudG9IZXgoYWxsb3czQ2hhcik7XG4gICAgfSxcbiAgICB0b0hleDg6IGZ1bmN0aW9uKGFsbG93NENoYXIpIHtcbiAgICAgICAgcmV0dXJuIHJnYmFUb0hleCh0aGlzLl9yLCB0aGlzLl9nLCB0aGlzLl9iLCB0aGlzLl9hLCBhbGxvdzRDaGFyKTtcbiAgICB9LFxuICAgIHRvSGV4OFN0cmluZzogZnVuY3Rpb24oYWxsb3c0Q2hhcikge1xuICAgICAgICByZXR1cm4gJyMnICsgdGhpcy50b0hleDgoYWxsb3c0Q2hhcik7XG4gICAgfSxcbiAgICB0b1JnYjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB7IHI6IG1hdGhSb3VuZCh0aGlzLl9yKSwgZzogbWF0aFJvdW5kKHRoaXMuX2cpLCBiOiBtYXRoUm91bmQodGhpcy5fYiksIGE6IHRoaXMuX2EgfTtcbiAgICB9LFxuICAgIHRvUmdiU3RyaW5nOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLl9hID09IDEpID9cbiAgICAgICAgICBcInJnYihcIiAgKyBtYXRoUm91bmQodGhpcy5fcikgKyBcIiwgXCIgKyBtYXRoUm91bmQodGhpcy5fZykgKyBcIiwgXCIgKyBtYXRoUm91bmQodGhpcy5fYikgKyBcIilcIiA6XG4gICAgICAgICAgXCJyZ2JhKFwiICsgbWF0aFJvdW5kKHRoaXMuX3IpICsgXCIsIFwiICsgbWF0aFJvdW5kKHRoaXMuX2cpICsgXCIsIFwiICsgbWF0aFJvdW5kKHRoaXMuX2IpICsgXCIsIFwiICsgdGhpcy5fcm91bmRBICsgXCIpXCI7XG4gICAgfSxcbiAgICB0b1BlcmNlbnRhZ2VSZ2I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4geyByOiBtYXRoUm91bmQoYm91bmQwMSh0aGlzLl9yLCAyNTUpICogMTAwKSArIFwiJVwiLCBnOiBtYXRoUm91bmQoYm91bmQwMSh0aGlzLl9nLCAyNTUpICogMTAwKSArIFwiJVwiLCBiOiBtYXRoUm91bmQoYm91bmQwMSh0aGlzLl9iLCAyNTUpICogMTAwKSArIFwiJVwiLCBhOiB0aGlzLl9hIH07XG4gICAgfSxcbiAgICB0b1BlcmNlbnRhZ2VSZ2JTdHJpbmc6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gKHRoaXMuX2EgPT0gMSkgP1xuICAgICAgICAgIFwicmdiKFwiICArIG1hdGhSb3VuZChib3VuZDAxKHRoaXMuX3IsIDI1NSkgKiAxMDApICsgXCIlLCBcIiArIG1hdGhSb3VuZChib3VuZDAxKHRoaXMuX2csIDI1NSkgKiAxMDApICsgXCIlLCBcIiArIG1hdGhSb3VuZChib3VuZDAxKHRoaXMuX2IsIDI1NSkgKiAxMDApICsgXCIlKVwiIDpcbiAgICAgICAgICBcInJnYmEoXCIgKyBtYXRoUm91bmQoYm91bmQwMSh0aGlzLl9yLCAyNTUpICogMTAwKSArIFwiJSwgXCIgKyBtYXRoUm91bmQoYm91bmQwMSh0aGlzLl9nLCAyNTUpICogMTAwKSArIFwiJSwgXCIgKyBtYXRoUm91bmQoYm91bmQwMSh0aGlzLl9iLCAyNTUpICogMTAwKSArIFwiJSwgXCIgKyB0aGlzLl9yb3VuZEEgKyBcIilcIjtcbiAgICB9LFxuICAgIHRvTmFtZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIGlmICh0aGlzLl9hID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJ0cmFuc3BhcmVudFwiO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuX2EgPCAxKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaGV4TmFtZXNbcmdiVG9IZXgodGhpcy5fciwgdGhpcy5fZywgdGhpcy5fYiwgdHJ1ZSldIHx8IGZhbHNlO1xuICAgIH0sXG4gICAgdG9GaWx0ZXI6IGZ1bmN0aW9uKHNlY29uZENvbG9yKSB7XG4gICAgICAgIHZhciBoZXg4U3RyaW5nID0gJyMnICsgcmdiYVRvQXJnYkhleCh0aGlzLl9yLCB0aGlzLl9nLCB0aGlzLl9iLCB0aGlzLl9hKTtcbiAgICAgICAgdmFyIHNlY29uZEhleDhTdHJpbmcgPSBoZXg4U3RyaW5nO1xuICAgICAgICB2YXIgZ3JhZGllbnRUeXBlID0gdGhpcy5fZ3JhZGllbnRUeXBlID8gXCJHcmFkaWVudFR5cGUgPSAxLCBcIiA6IFwiXCI7XG5cbiAgICAgICAgaWYgKHNlY29uZENvbG9yKSB7XG4gICAgICAgICAgICB2YXIgcyA9IHRpbnljb2xvcihzZWNvbmRDb2xvcik7XG4gICAgICAgICAgICBzZWNvbmRIZXg4U3RyaW5nID0gJyMnICsgcmdiYVRvQXJnYkhleChzLl9yLCBzLl9nLCBzLl9iLCBzLl9hKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChcIitncmFkaWVudFR5cGUrXCJzdGFydENvbG9yc3RyPVwiK2hleDhTdHJpbmcrXCIsZW5kQ29sb3JzdHI9XCIrc2Vjb25kSGV4OFN0cmluZytcIilcIjtcbiAgICB9LFxuICAgIHRvU3RyaW5nOiBmdW5jdGlvbihmb3JtYXQpIHtcbiAgICAgICAgdmFyIGZvcm1hdFNldCA9ICEhZm9ybWF0O1xuICAgICAgICBmb3JtYXQgPSBmb3JtYXQgfHwgdGhpcy5fZm9ybWF0O1xuXG4gICAgICAgIHZhciBmb3JtYXR0ZWRTdHJpbmcgPSBmYWxzZTtcbiAgICAgICAgdmFyIGhhc0FscGhhID0gdGhpcy5fYSA8IDEgJiYgdGhpcy5fYSA+PSAwO1xuICAgICAgICB2YXIgbmVlZHNBbHBoYUZvcm1hdCA9ICFmb3JtYXRTZXQgJiYgaGFzQWxwaGEgJiYgKGZvcm1hdCA9PT0gXCJoZXhcIiB8fCBmb3JtYXQgPT09IFwiaGV4NlwiIHx8IGZvcm1hdCA9PT0gXCJoZXgzXCIgfHwgZm9ybWF0ID09PSBcImhleDRcIiB8fCBmb3JtYXQgPT09IFwiaGV4OFwiIHx8IGZvcm1hdCA9PT0gXCJuYW1lXCIpO1xuXG4gICAgICAgIGlmIChuZWVkc0FscGhhRm9ybWF0KSB7XG4gICAgICAgICAgICAvLyBTcGVjaWFsIGNhc2UgZm9yIFwidHJhbnNwYXJlbnRcIiwgYWxsIG90aGVyIG5vbi1hbHBoYSBmb3JtYXRzXG4gICAgICAgICAgICAvLyB3aWxsIHJldHVybiByZ2JhIHdoZW4gdGhlcmUgaXMgdHJhbnNwYXJlbmN5LlxuICAgICAgICAgICAgaWYgKGZvcm1hdCA9PT0gXCJuYW1lXCIgJiYgdGhpcy5fYSA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRvTmFtZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMudG9SZ2JTdHJpbmcoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZm9ybWF0ID09PSBcInJnYlwiKSB7XG4gICAgICAgICAgICBmb3JtYXR0ZWRTdHJpbmcgPSB0aGlzLnRvUmdiU3RyaW5nKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZvcm1hdCA9PT0gXCJwcmdiXCIpIHtcbiAgICAgICAgICAgIGZvcm1hdHRlZFN0cmluZyA9IHRoaXMudG9QZXJjZW50YWdlUmdiU3RyaW5nKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZvcm1hdCA9PT0gXCJoZXhcIiB8fCBmb3JtYXQgPT09IFwiaGV4NlwiKSB7XG4gICAgICAgICAgICBmb3JtYXR0ZWRTdHJpbmcgPSB0aGlzLnRvSGV4U3RyaW5nKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZvcm1hdCA9PT0gXCJoZXgzXCIpIHtcbiAgICAgICAgICAgIGZvcm1hdHRlZFN0cmluZyA9IHRoaXMudG9IZXhTdHJpbmcodHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZvcm1hdCA9PT0gXCJoZXg0XCIpIHtcbiAgICAgICAgICAgIGZvcm1hdHRlZFN0cmluZyA9IHRoaXMudG9IZXg4U3RyaW5nKHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChmb3JtYXQgPT09IFwiaGV4OFwiKSB7XG4gICAgICAgICAgICBmb3JtYXR0ZWRTdHJpbmcgPSB0aGlzLnRvSGV4OFN0cmluZygpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChmb3JtYXQgPT09IFwibmFtZVwiKSB7XG4gICAgICAgICAgICBmb3JtYXR0ZWRTdHJpbmcgPSB0aGlzLnRvTmFtZSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChmb3JtYXQgPT09IFwiaHNsXCIpIHtcbiAgICAgICAgICAgIGZvcm1hdHRlZFN0cmluZyA9IHRoaXMudG9Ic2xTdHJpbmcoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZm9ybWF0ID09PSBcImhzdlwiKSB7XG4gICAgICAgICAgICBmb3JtYXR0ZWRTdHJpbmcgPSB0aGlzLnRvSHN2U3RyaW5nKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZm9ybWF0dGVkU3RyaW5nIHx8IHRoaXMudG9IZXhTdHJpbmcoKTtcbiAgICB9LFxuICAgIGNsb25lOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRpbnljb2xvcih0aGlzLnRvU3RyaW5nKCkpO1xuICAgIH0sXG5cbiAgICBfYXBwbHlNb2RpZmljYXRpb246IGZ1bmN0aW9uKGZuLCBhcmdzKSB7XG4gICAgICAgIHZhciBjb2xvciA9IGZuLmFwcGx5KG51bGwsIFt0aGlzXS5jb25jYXQoW10uc2xpY2UuY2FsbChhcmdzKSkpO1xuICAgICAgICB0aGlzLl9yID0gY29sb3IuX3I7XG4gICAgICAgIHRoaXMuX2cgPSBjb2xvci5fZztcbiAgICAgICAgdGhpcy5fYiA9IGNvbG9yLl9iO1xuICAgICAgICB0aGlzLnNldEFscGhhKGNvbG9yLl9hKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSxcbiAgICBsaWdodGVuOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FwcGx5TW9kaWZpY2F0aW9uKGxpZ2h0ZW4sIGFyZ3VtZW50cyk7XG4gICAgfSxcbiAgICBicmlnaHRlbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hcHBseU1vZGlmaWNhdGlvbihicmlnaHRlbiwgYXJndW1lbnRzKTtcbiAgICB9LFxuICAgIGRhcmtlbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hcHBseU1vZGlmaWNhdGlvbihkYXJrZW4sIGFyZ3VtZW50cyk7XG4gICAgfSxcbiAgICBkZXNhdHVyYXRlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FwcGx5TW9kaWZpY2F0aW9uKGRlc2F0dXJhdGUsIGFyZ3VtZW50cyk7XG4gICAgfSxcbiAgICBzYXR1cmF0ZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hcHBseU1vZGlmaWNhdGlvbihzYXR1cmF0ZSwgYXJndW1lbnRzKTtcbiAgICB9LFxuICAgIGdyZXlzY2FsZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hcHBseU1vZGlmaWNhdGlvbihncmV5c2NhbGUsIGFyZ3VtZW50cyk7XG4gICAgfSxcbiAgICBzcGluOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FwcGx5TW9kaWZpY2F0aW9uKHNwaW4sIGFyZ3VtZW50cyk7XG4gICAgfSxcblxuICAgIF9hcHBseUNvbWJpbmF0aW9uOiBmdW5jdGlvbihmbiwgYXJncykge1xuICAgICAgICByZXR1cm4gZm4uYXBwbHkobnVsbCwgW3RoaXNdLmNvbmNhdChbXS5zbGljZS5jYWxsKGFyZ3MpKSk7XG4gICAgfSxcbiAgICBhbmFsb2dvdXM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXBwbHlDb21iaW5hdGlvbihhbmFsb2dvdXMsIGFyZ3VtZW50cyk7XG4gICAgfSxcbiAgICBjb21wbGVtZW50OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FwcGx5Q29tYmluYXRpb24oY29tcGxlbWVudCwgYXJndW1lbnRzKTtcbiAgICB9LFxuICAgIG1vbm9jaHJvbWF0aWM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXBwbHlDb21iaW5hdGlvbihtb25vY2hyb21hdGljLCBhcmd1bWVudHMpO1xuICAgIH0sXG4gICAgc3BsaXRjb21wbGVtZW50OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FwcGx5Q29tYmluYXRpb24oc3BsaXRjb21wbGVtZW50LCBhcmd1bWVudHMpO1xuICAgIH0sXG4gICAgdHJpYWQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXBwbHlDb21iaW5hdGlvbih0cmlhZCwgYXJndW1lbnRzKTtcbiAgICB9LFxuICAgIHRldHJhZDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hcHBseUNvbWJpbmF0aW9uKHRldHJhZCwgYXJndW1lbnRzKTtcbiAgICB9XG59O1xuXG4vLyBJZiBpbnB1dCBpcyBhbiBvYmplY3QsIGZvcmNlIDEgaW50byBcIjEuMFwiIHRvIGhhbmRsZSByYXRpb3MgcHJvcGVybHlcbi8vIFN0cmluZyBpbnB1dCByZXF1aXJlcyBcIjEuMFwiIGFzIGlucHV0LCBzbyAxIHdpbGwgYmUgdHJlYXRlZCBhcyAxXG50aW55Y29sb3IuZnJvbVJhdGlvID0gZnVuY3Rpb24oY29sb3IsIG9wdHMpIHtcbiAgICBpZiAodHlwZW9mIGNvbG9yID09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgdmFyIG5ld0NvbG9yID0ge307XG4gICAgICAgIGZvciAodmFyIGkgaW4gY29sb3IpIHtcbiAgICAgICAgICAgIGlmIChjb2xvci5oYXNPd25Qcm9wZXJ0eShpKSkge1xuICAgICAgICAgICAgICAgIGlmIChpID09PSBcImFcIikge1xuICAgICAgICAgICAgICAgICAgICBuZXdDb2xvcltpXSA9IGNvbG9yW2ldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbmV3Q29sb3JbaV0gPSBjb252ZXJ0VG9QZXJjZW50YWdlKGNvbG9yW2ldKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29sb3IgPSBuZXdDb2xvcjtcbiAgICB9XG5cbiAgICByZXR1cm4gdGlueWNvbG9yKGNvbG9yLCBvcHRzKTtcbn07XG5cbi8vIEdpdmVuIGEgc3RyaW5nIG9yIG9iamVjdCwgY29udmVydCB0aGF0IGlucHV0IHRvIFJHQlxuLy8gUG9zc2libGUgc3RyaW5nIGlucHV0czpcbi8vXG4vLyAgICAgXCJyZWRcIlxuLy8gICAgIFwiI2YwMFwiIG9yIFwiZjAwXCJcbi8vICAgICBcIiNmZjAwMDBcIiBvciBcImZmMDAwMFwiXG4vLyAgICAgXCIjZmYwMDAwMDBcIiBvciBcImZmMDAwMDAwXCJcbi8vICAgICBcInJnYiAyNTUgMCAwXCIgb3IgXCJyZ2IgKDI1NSwgMCwgMClcIlxuLy8gICAgIFwicmdiIDEuMCAwIDBcIiBvciBcInJnYiAoMSwgMCwgMClcIlxuLy8gICAgIFwicmdiYSAoMjU1LCAwLCAwLCAxKVwiIG9yIFwicmdiYSAyNTUsIDAsIDAsIDFcIlxuLy8gICAgIFwicmdiYSAoMS4wLCAwLCAwLCAxKVwiIG9yIFwicmdiYSAxLjAsIDAsIDAsIDFcIlxuLy8gICAgIFwiaHNsKDAsIDEwMCUsIDUwJSlcIiBvciBcImhzbCAwIDEwMCUgNTAlXCJcbi8vICAgICBcImhzbGEoMCwgMTAwJSwgNTAlLCAxKVwiIG9yIFwiaHNsYSAwIDEwMCUgNTAlLCAxXCJcbi8vICAgICBcImhzdigwLCAxMDAlLCAxMDAlKVwiIG9yIFwiaHN2IDAgMTAwJSAxMDAlXCJcbi8vXG5mdW5jdGlvbiBpbnB1dFRvUkdCKGNvbG9yKSB7XG5cbiAgICB2YXIgcmdiID0geyByOiAwLCBnOiAwLCBiOiAwIH07XG4gICAgdmFyIGEgPSAxO1xuICAgIHZhciBzID0gbnVsbDtcbiAgICB2YXIgdiA9IG51bGw7XG4gICAgdmFyIGwgPSBudWxsO1xuICAgIHZhciBvayA9IGZhbHNlO1xuICAgIHZhciBmb3JtYXQgPSBmYWxzZTtcblxuICAgIGlmICh0eXBlb2YgY29sb3IgPT0gXCJzdHJpbmdcIikge1xuICAgICAgICBjb2xvciA9IHN0cmluZ0lucHV0VG9PYmplY3QoY29sb3IpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgY29sb3IgPT0gXCJvYmplY3RcIikge1xuICAgICAgICBpZiAoaXNWYWxpZENTU1VuaXQoY29sb3IucikgJiYgaXNWYWxpZENTU1VuaXQoY29sb3IuZykgJiYgaXNWYWxpZENTU1VuaXQoY29sb3IuYikpIHtcbiAgICAgICAgICAgIHJnYiA9IHJnYlRvUmdiKGNvbG9yLnIsIGNvbG9yLmcsIGNvbG9yLmIpO1xuICAgICAgICAgICAgb2sgPSB0cnVlO1xuICAgICAgICAgICAgZm9ybWF0ID0gU3RyaW5nKGNvbG9yLnIpLnN1YnN0cigtMSkgPT09IFwiJVwiID8gXCJwcmdiXCIgOiBcInJnYlwiO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGlzVmFsaWRDU1NVbml0KGNvbG9yLmgpICYmIGlzVmFsaWRDU1NVbml0KGNvbG9yLnMpICYmIGlzVmFsaWRDU1NVbml0KGNvbG9yLnYpKSB7XG4gICAgICAgICAgICBzID0gY29udmVydFRvUGVyY2VudGFnZShjb2xvci5zKTtcbiAgICAgICAgICAgIHYgPSBjb252ZXJ0VG9QZXJjZW50YWdlKGNvbG9yLnYpO1xuICAgICAgICAgICAgcmdiID0gaHN2VG9SZ2IoY29sb3IuaCwgcywgdik7XG4gICAgICAgICAgICBvayA9IHRydWU7XG4gICAgICAgICAgICBmb3JtYXQgPSBcImhzdlwiO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGlzVmFsaWRDU1NVbml0KGNvbG9yLmgpICYmIGlzVmFsaWRDU1NVbml0KGNvbG9yLnMpICYmIGlzVmFsaWRDU1NVbml0KGNvbG9yLmwpKSB7XG4gICAgICAgICAgICBzID0gY29udmVydFRvUGVyY2VudGFnZShjb2xvci5zKTtcbiAgICAgICAgICAgIGwgPSBjb252ZXJ0VG9QZXJjZW50YWdlKGNvbG9yLmwpO1xuICAgICAgICAgICAgcmdiID0gaHNsVG9SZ2IoY29sb3IuaCwgcywgbCk7XG4gICAgICAgICAgICBvayA9IHRydWU7XG4gICAgICAgICAgICBmb3JtYXQgPSBcImhzbFwiO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNvbG9yLmhhc093blByb3BlcnR5KFwiYVwiKSkge1xuICAgICAgICAgICAgYSA9IGNvbG9yLmE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhID0gYm91bmRBbHBoYShhKTtcblxuICAgIHJldHVybiB7XG4gICAgICAgIG9rOiBvayxcbiAgICAgICAgZm9ybWF0OiBjb2xvci5mb3JtYXQgfHwgZm9ybWF0LFxuICAgICAgICByOiBtYXRoTWluKDI1NSwgbWF0aE1heChyZ2IuciwgMCkpLFxuICAgICAgICBnOiBtYXRoTWluKDI1NSwgbWF0aE1heChyZ2IuZywgMCkpLFxuICAgICAgICBiOiBtYXRoTWluKDI1NSwgbWF0aE1heChyZ2IuYiwgMCkpLFxuICAgICAgICBhOiBhXG4gICAgfTtcbn1cblxuXG4vLyBDb252ZXJzaW9uIEZ1bmN0aW9uc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gYHJnYlRvSHNsYCwgYHJnYlRvSHN2YCwgYGhzbFRvUmdiYCwgYGhzdlRvUmdiYCBtb2RpZmllZCBmcm9tOlxuLy8gPGh0dHA6Ly9tamlqYWNrc29uLmNvbS8yMDA4LzAyL3JnYi10by1oc2wtYW5kLXJnYi10by1oc3YtY29sb3ItbW9kZWwtY29udmVyc2lvbi1hbGdvcml0aG1zLWluLWphdmFzY3JpcHQ+XG5cbi8vIGByZ2JUb1JnYmBcbi8vIEhhbmRsZSBib3VuZHMgLyBwZXJjZW50YWdlIGNoZWNraW5nIHRvIGNvbmZvcm0gdG8gQ1NTIGNvbG9yIHNwZWNcbi8vIDxodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLWNvbG9yLz5cbi8vICpBc3N1bWVzOiogciwgZywgYiBpbiBbMCwgMjU1XSBvciBbMCwgMV1cbi8vICpSZXR1cm5zOiogeyByLCBnLCBiIH0gaW4gWzAsIDI1NV1cbmZ1bmN0aW9uIHJnYlRvUmdiKHIsIGcsIGIpe1xuICAgIHJldHVybiB7XG4gICAgICAgIHI6IGJvdW5kMDEociwgMjU1KSAqIDI1NSxcbiAgICAgICAgZzogYm91bmQwMShnLCAyNTUpICogMjU1LFxuICAgICAgICBiOiBib3VuZDAxKGIsIDI1NSkgKiAyNTVcbiAgICB9O1xufVxuXG4vLyBgcmdiVG9Ic2xgXG4vLyBDb252ZXJ0cyBhbiBSR0IgY29sb3IgdmFsdWUgdG8gSFNMLlxuLy8gKkFzc3VtZXM6KiByLCBnLCBhbmQgYiBhcmUgY29udGFpbmVkIGluIFswLCAyNTVdIG9yIFswLCAxXVxuLy8gKlJldHVybnM6KiB7IGgsIHMsIGwgfSBpbiBbMCwxXVxuZnVuY3Rpb24gcmdiVG9Ic2wociwgZywgYikge1xuXG4gICAgciA9IGJvdW5kMDEociwgMjU1KTtcbiAgICBnID0gYm91bmQwMShnLCAyNTUpO1xuICAgIGIgPSBib3VuZDAxKGIsIDI1NSk7XG5cbiAgICB2YXIgbWF4ID0gbWF0aE1heChyLCBnLCBiKSwgbWluID0gbWF0aE1pbihyLCBnLCBiKTtcbiAgICB2YXIgaCwgcywgbCA9IChtYXggKyBtaW4pIC8gMjtcblxuICAgIGlmKG1heCA9PSBtaW4pIHtcbiAgICAgICAgaCA9IHMgPSAwOyAvLyBhY2hyb21hdGljXG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB2YXIgZCA9IG1heCAtIG1pbjtcbiAgICAgICAgcyA9IGwgPiAwLjUgPyBkIC8gKDIgLSBtYXggLSBtaW4pIDogZCAvIChtYXggKyBtaW4pO1xuICAgICAgICBzd2l0Y2gobWF4KSB7XG4gICAgICAgICAgICBjYXNlIHI6IGggPSAoZyAtIGIpIC8gZCArIChnIDwgYiA/IDYgOiAwKTsgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIGc6IGggPSAoYiAtIHIpIC8gZCArIDI7IGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBiOiBoID0gKHIgLSBnKSAvIGQgKyA0OyBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGggLz0gNjtcbiAgICB9XG5cbiAgICByZXR1cm4geyBoOiBoLCBzOiBzLCBsOiBsIH07XG59XG5cbi8vIGBoc2xUb1JnYmBcbi8vIENvbnZlcnRzIGFuIEhTTCBjb2xvciB2YWx1ZSB0byBSR0IuXG4vLyAqQXNzdW1lczoqIGggaXMgY29udGFpbmVkIGluIFswLCAxXSBvciBbMCwgMzYwXSBhbmQgcyBhbmQgbCBhcmUgY29udGFpbmVkIFswLCAxXSBvciBbMCwgMTAwXVxuLy8gKlJldHVybnM6KiB7IHIsIGcsIGIgfSBpbiB0aGUgc2V0IFswLCAyNTVdXG5mdW5jdGlvbiBoc2xUb1JnYihoLCBzLCBsKSB7XG4gICAgdmFyIHIsIGcsIGI7XG5cbiAgICBoID0gYm91bmQwMShoLCAzNjApO1xuICAgIHMgPSBib3VuZDAxKHMsIDEwMCk7XG4gICAgbCA9IGJvdW5kMDEobCwgMTAwKTtcblxuICAgIGZ1bmN0aW9uIGh1ZTJyZ2IocCwgcSwgdCkge1xuICAgICAgICBpZih0IDwgMCkgdCArPSAxO1xuICAgICAgICBpZih0ID4gMSkgdCAtPSAxO1xuICAgICAgICBpZih0IDwgMS82KSByZXR1cm4gcCArIChxIC0gcCkgKiA2ICogdDtcbiAgICAgICAgaWYodCA8IDEvMikgcmV0dXJuIHE7XG4gICAgICAgIGlmKHQgPCAyLzMpIHJldHVybiBwICsgKHEgLSBwKSAqICgyLzMgLSB0KSAqIDY7XG4gICAgICAgIHJldHVybiBwO1xuICAgIH1cblxuICAgIGlmKHMgPT09IDApIHtcbiAgICAgICAgciA9IGcgPSBiID0gbDsgLy8gYWNocm9tYXRpY1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgdmFyIHEgPSBsIDwgMC41ID8gbCAqICgxICsgcykgOiBsICsgcyAtIGwgKiBzO1xuICAgICAgICB2YXIgcCA9IDIgKiBsIC0gcTtcbiAgICAgICAgciA9IGh1ZTJyZ2IocCwgcSwgaCArIDEvMyk7XG4gICAgICAgIGcgPSBodWUycmdiKHAsIHEsIGgpO1xuICAgICAgICBiID0gaHVlMnJnYihwLCBxLCBoIC0gMS8zKTtcbiAgICB9XG5cbiAgICByZXR1cm4geyByOiByICogMjU1LCBnOiBnICogMjU1LCBiOiBiICogMjU1IH07XG59XG5cbi8vIGByZ2JUb0hzdmBcbi8vIENvbnZlcnRzIGFuIFJHQiBjb2xvciB2YWx1ZSB0byBIU1Zcbi8vICpBc3N1bWVzOiogciwgZywgYW5kIGIgYXJlIGNvbnRhaW5lZCBpbiB0aGUgc2V0IFswLCAyNTVdIG9yIFswLCAxXVxuLy8gKlJldHVybnM6KiB7IGgsIHMsIHYgfSBpbiBbMCwxXVxuZnVuY3Rpb24gcmdiVG9Ic3YociwgZywgYikge1xuXG4gICAgciA9IGJvdW5kMDEociwgMjU1KTtcbiAgICBnID0gYm91bmQwMShnLCAyNTUpO1xuICAgIGIgPSBib3VuZDAxKGIsIDI1NSk7XG5cbiAgICB2YXIgbWF4ID0gbWF0aE1heChyLCBnLCBiKSwgbWluID0gbWF0aE1pbihyLCBnLCBiKTtcbiAgICB2YXIgaCwgcywgdiA9IG1heDtcblxuICAgIHZhciBkID0gbWF4IC0gbWluO1xuICAgIHMgPSBtYXggPT09IDAgPyAwIDogZCAvIG1heDtcblxuICAgIGlmKG1heCA9PSBtaW4pIHtcbiAgICAgICAgaCA9IDA7IC8vIGFjaHJvbWF0aWNcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHN3aXRjaChtYXgpIHtcbiAgICAgICAgICAgIGNhc2UgcjogaCA9IChnIC0gYikgLyBkICsgKGcgPCBiID8gNiA6IDApOyBicmVhaztcbiAgICAgICAgICAgIGNhc2UgZzogaCA9IChiIC0gcikgLyBkICsgMjsgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIGI6IGggPSAociAtIGcpIC8gZCArIDQ7IGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGggLz0gNjtcbiAgICB9XG4gICAgcmV0dXJuIHsgaDogaCwgczogcywgdjogdiB9O1xufVxuXG4vLyBgaHN2VG9SZ2JgXG4vLyBDb252ZXJ0cyBhbiBIU1YgY29sb3IgdmFsdWUgdG8gUkdCLlxuLy8gKkFzc3VtZXM6KiBoIGlzIGNvbnRhaW5lZCBpbiBbMCwgMV0gb3IgWzAsIDM2MF0gYW5kIHMgYW5kIHYgYXJlIGNvbnRhaW5lZCBpbiBbMCwgMV0gb3IgWzAsIDEwMF1cbi8vICpSZXR1cm5zOiogeyByLCBnLCBiIH0gaW4gdGhlIHNldCBbMCwgMjU1XVxuIGZ1bmN0aW9uIGhzdlRvUmdiKGgsIHMsIHYpIHtcblxuICAgIGggPSBib3VuZDAxKGgsIDM2MCkgKiA2O1xuICAgIHMgPSBib3VuZDAxKHMsIDEwMCk7XG4gICAgdiA9IGJvdW5kMDEodiwgMTAwKTtcblxuICAgIHZhciBpID0gTWF0aC5mbG9vcihoKSxcbiAgICAgICAgZiA9IGggLSBpLFxuICAgICAgICBwID0gdiAqICgxIC0gcyksXG4gICAgICAgIHEgPSB2ICogKDEgLSBmICogcyksXG4gICAgICAgIHQgPSB2ICogKDEgLSAoMSAtIGYpICogcyksXG4gICAgICAgIG1vZCA9IGkgJSA2LFxuICAgICAgICByID0gW3YsIHEsIHAsIHAsIHQsIHZdW21vZF0sXG4gICAgICAgIGcgPSBbdCwgdiwgdiwgcSwgcCwgcF1bbW9kXSxcbiAgICAgICAgYiA9IFtwLCBwLCB0LCB2LCB2LCBxXVttb2RdO1xuXG4gICAgcmV0dXJuIHsgcjogciAqIDI1NSwgZzogZyAqIDI1NSwgYjogYiAqIDI1NSB9O1xufVxuXG4vLyBgcmdiVG9IZXhgXG4vLyBDb252ZXJ0cyBhbiBSR0IgY29sb3IgdG8gaGV4XG4vLyBBc3N1bWVzIHIsIGcsIGFuZCBiIGFyZSBjb250YWluZWQgaW4gdGhlIHNldCBbMCwgMjU1XVxuLy8gUmV0dXJucyBhIDMgb3IgNiBjaGFyYWN0ZXIgaGV4XG5mdW5jdGlvbiByZ2JUb0hleChyLCBnLCBiLCBhbGxvdzNDaGFyKSB7XG5cbiAgICB2YXIgaGV4ID0gW1xuICAgICAgICBwYWQyKG1hdGhSb3VuZChyKS50b1N0cmluZygxNikpLFxuICAgICAgICBwYWQyKG1hdGhSb3VuZChnKS50b1N0cmluZygxNikpLFxuICAgICAgICBwYWQyKG1hdGhSb3VuZChiKS50b1N0cmluZygxNikpXG4gICAgXTtcblxuICAgIC8vIFJldHVybiBhIDMgY2hhcmFjdGVyIGhleCBpZiBwb3NzaWJsZVxuICAgIGlmIChhbGxvdzNDaGFyICYmIGhleFswXS5jaGFyQXQoMCkgPT0gaGV4WzBdLmNoYXJBdCgxKSAmJiBoZXhbMV0uY2hhckF0KDApID09IGhleFsxXS5jaGFyQXQoMSkgJiYgaGV4WzJdLmNoYXJBdCgwKSA9PSBoZXhbMl0uY2hhckF0KDEpKSB7XG4gICAgICAgIHJldHVybiBoZXhbMF0uY2hhckF0KDApICsgaGV4WzFdLmNoYXJBdCgwKSArIGhleFsyXS5jaGFyQXQoMCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGhleC5qb2luKFwiXCIpO1xufVxuXG4vLyBgcmdiYVRvSGV4YFxuLy8gQ29udmVydHMgYW4gUkdCQSBjb2xvciBwbHVzIGFscGhhIHRyYW5zcGFyZW5jeSB0byBoZXhcbi8vIEFzc3VtZXMgciwgZywgYiBhcmUgY29udGFpbmVkIGluIHRoZSBzZXQgWzAsIDI1NV0gYW5kXG4vLyBhIGluIFswLCAxXS4gUmV0dXJucyBhIDQgb3IgOCBjaGFyYWN0ZXIgcmdiYSBoZXhcbmZ1bmN0aW9uIHJnYmFUb0hleChyLCBnLCBiLCBhLCBhbGxvdzRDaGFyKSB7XG5cbiAgICB2YXIgaGV4ID0gW1xuICAgICAgICBwYWQyKG1hdGhSb3VuZChyKS50b1N0cmluZygxNikpLFxuICAgICAgICBwYWQyKG1hdGhSb3VuZChnKS50b1N0cmluZygxNikpLFxuICAgICAgICBwYWQyKG1hdGhSb3VuZChiKS50b1N0cmluZygxNikpLFxuICAgICAgICBwYWQyKGNvbnZlcnREZWNpbWFsVG9IZXgoYSkpXG4gICAgXTtcblxuICAgIC8vIFJldHVybiBhIDQgY2hhcmFjdGVyIGhleCBpZiBwb3NzaWJsZVxuICAgIGlmIChhbGxvdzRDaGFyICYmIGhleFswXS5jaGFyQXQoMCkgPT0gaGV4WzBdLmNoYXJBdCgxKSAmJiBoZXhbMV0uY2hhckF0KDApID09IGhleFsxXS5jaGFyQXQoMSkgJiYgaGV4WzJdLmNoYXJBdCgwKSA9PSBoZXhbMl0uY2hhckF0KDEpICYmIGhleFszXS5jaGFyQXQoMCkgPT0gaGV4WzNdLmNoYXJBdCgxKSkge1xuICAgICAgICByZXR1cm4gaGV4WzBdLmNoYXJBdCgwKSArIGhleFsxXS5jaGFyQXQoMCkgKyBoZXhbMl0uY2hhckF0KDApICsgaGV4WzNdLmNoYXJBdCgwKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaGV4LmpvaW4oXCJcIik7XG59XG5cbi8vIGByZ2JhVG9BcmdiSGV4YFxuLy8gQ29udmVydHMgYW4gUkdCQSBjb2xvciB0byBhbiBBUkdCIEhleDggc3RyaW5nXG4vLyBSYXJlbHkgdXNlZCwgYnV0IHJlcXVpcmVkIGZvciBcInRvRmlsdGVyKClcIlxuZnVuY3Rpb24gcmdiYVRvQXJnYkhleChyLCBnLCBiLCBhKSB7XG5cbiAgICB2YXIgaGV4ID0gW1xuICAgICAgICBwYWQyKGNvbnZlcnREZWNpbWFsVG9IZXgoYSkpLFxuICAgICAgICBwYWQyKG1hdGhSb3VuZChyKS50b1N0cmluZygxNikpLFxuICAgICAgICBwYWQyKG1hdGhSb3VuZChnKS50b1N0cmluZygxNikpLFxuICAgICAgICBwYWQyKG1hdGhSb3VuZChiKS50b1N0cmluZygxNikpXG4gICAgXTtcblxuICAgIHJldHVybiBoZXguam9pbihcIlwiKTtcbn1cblxuLy8gYGVxdWFsc2Bcbi8vIENhbiBiZSBjYWxsZWQgd2l0aCBhbnkgdGlueWNvbG9yIGlucHV0XG50aW55Y29sb3IuZXF1YWxzID0gZnVuY3Rpb24gKGNvbG9yMSwgY29sb3IyKSB7XG4gICAgaWYgKCFjb2xvcjEgfHwgIWNvbG9yMikgeyByZXR1cm4gZmFsc2U7IH1cbiAgICByZXR1cm4gdGlueWNvbG9yKGNvbG9yMSkudG9SZ2JTdHJpbmcoKSA9PSB0aW55Y29sb3IoY29sb3IyKS50b1JnYlN0cmluZygpO1xufTtcblxudGlueWNvbG9yLnJhbmRvbSA9IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiB0aW55Y29sb3IuZnJvbVJhdGlvKHtcbiAgICAgICAgcjogbWF0aFJhbmRvbSgpLFxuICAgICAgICBnOiBtYXRoUmFuZG9tKCksXG4gICAgICAgIGI6IG1hdGhSYW5kb20oKVxuICAgIH0pO1xufTtcblxuXG4vLyBNb2RpZmljYXRpb24gRnVuY3Rpb25zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBUaGFua3MgdG8gbGVzcy5qcyBmb3Igc29tZSBvZiB0aGUgYmFzaWNzIGhlcmVcbi8vIDxodHRwczovL2dpdGh1Yi5jb20vY2xvdWRoZWFkL2xlc3MuanMvYmxvYi9tYXN0ZXIvbGliL2xlc3MvZnVuY3Rpb25zLmpzPlxuXG5mdW5jdGlvbiBkZXNhdHVyYXRlKGNvbG9yLCBhbW91bnQpIHtcbiAgICBhbW91bnQgPSAoYW1vdW50ID09PSAwKSA/IDAgOiAoYW1vdW50IHx8IDEwKTtcbiAgICB2YXIgaHNsID0gdGlueWNvbG9yKGNvbG9yKS50b0hzbCgpO1xuICAgIGhzbC5zIC09IGFtb3VudCAvIDEwMDtcbiAgICBoc2wucyA9IGNsYW1wMDEoaHNsLnMpO1xuICAgIHJldHVybiB0aW55Y29sb3IoaHNsKTtcbn1cblxuZnVuY3Rpb24gc2F0dXJhdGUoY29sb3IsIGFtb3VudCkge1xuICAgIGFtb3VudCA9IChhbW91bnQgPT09IDApID8gMCA6IChhbW91bnQgfHwgMTApO1xuICAgIHZhciBoc2wgPSB0aW55Y29sb3IoY29sb3IpLnRvSHNsKCk7XG4gICAgaHNsLnMgKz0gYW1vdW50IC8gMTAwO1xuICAgIGhzbC5zID0gY2xhbXAwMShoc2wucyk7XG4gICAgcmV0dXJuIHRpbnljb2xvcihoc2wpO1xufVxuXG5mdW5jdGlvbiBncmV5c2NhbGUoY29sb3IpIHtcbiAgICByZXR1cm4gdGlueWNvbG9yKGNvbG9yKS5kZXNhdHVyYXRlKDEwMCk7XG59XG5cbmZ1bmN0aW9uIGxpZ2h0ZW4gKGNvbG9yLCBhbW91bnQpIHtcbiAgICBhbW91bnQgPSAoYW1vdW50ID09PSAwKSA/IDAgOiAoYW1vdW50IHx8IDEwKTtcbiAgICB2YXIgaHNsID0gdGlueWNvbG9yKGNvbG9yKS50b0hzbCgpO1xuICAgIGhzbC5sICs9IGFtb3VudCAvIDEwMDtcbiAgICBoc2wubCA9IGNsYW1wMDEoaHNsLmwpO1xuICAgIHJldHVybiB0aW55Y29sb3IoaHNsKTtcbn1cblxuZnVuY3Rpb24gYnJpZ2h0ZW4oY29sb3IsIGFtb3VudCkge1xuICAgIGFtb3VudCA9IChhbW91bnQgPT09IDApID8gMCA6IChhbW91bnQgfHwgMTApO1xuICAgIHZhciByZ2IgPSB0aW55Y29sb3IoY29sb3IpLnRvUmdiKCk7XG4gICAgcmdiLnIgPSBtYXRoTWF4KDAsIG1hdGhNaW4oMjU1LCByZ2IuciAtIG1hdGhSb3VuZCgyNTUgKiAtIChhbW91bnQgLyAxMDApKSkpO1xuICAgIHJnYi5nID0gbWF0aE1heCgwLCBtYXRoTWluKDI1NSwgcmdiLmcgLSBtYXRoUm91bmQoMjU1ICogLSAoYW1vdW50IC8gMTAwKSkpKTtcbiAgICByZ2IuYiA9IG1hdGhNYXgoMCwgbWF0aE1pbigyNTUsIHJnYi5iIC0gbWF0aFJvdW5kKDI1NSAqIC0gKGFtb3VudCAvIDEwMCkpKSk7XG4gICAgcmV0dXJuIHRpbnljb2xvcihyZ2IpO1xufVxuXG5mdW5jdGlvbiBkYXJrZW4gKGNvbG9yLCBhbW91bnQpIHtcbiAgICBhbW91bnQgPSAoYW1vdW50ID09PSAwKSA/IDAgOiAoYW1vdW50IHx8IDEwKTtcbiAgICB2YXIgaHNsID0gdGlueWNvbG9yKGNvbG9yKS50b0hzbCgpO1xuICAgIGhzbC5sIC09IGFtb3VudCAvIDEwMDtcbiAgICBoc2wubCA9IGNsYW1wMDEoaHNsLmwpO1xuICAgIHJldHVybiB0aW55Y29sb3IoaHNsKTtcbn1cblxuLy8gU3BpbiB0YWtlcyBhIHBvc2l0aXZlIG9yIG5lZ2F0aXZlIGFtb3VudCB3aXRoaW4gWy0zNjAsIDM2MF0gaW5kaWNhdGluZyB0aGUgY2hhbmdlIG9mIGh1ZS5cbi8vIFZhbHVlcyBvdXRzaWRlIG9mIHRoaXMgcmFuZ2Ugd2lsbCBiZSB3cmFwcGVkIGludG8gdGhpcyByYW5nZS5cbmZ1bmN0aW9uIHNwaW4oY29sb3IsIGFtb3VudCkge1xuICAgIHZhciBoc2wgPSB0aW55Y29sb3IoY29sb3IpLnRvSHNsKCk7XG4gICAgdmFyIGh1ZSA9IChoc2wuaCArIGFtb3VudCkgJSAzNjA7XG4gICAgaHNsLmggPSBodWUgPCAwID8gMzYwICsgaHVlIDogaHVlO1xuICAgIHJldHVybiB0aW55Y29sb3IoaHNsKTtcbn1cblxuLy8gQ29tYmluYXRpb24gRnVuY3Rpb25zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFRoYW5rcyB0byBqUXVlcnkgeENvbG9yIGZvciBzb21lIG9mIHRoZSBpZGVhcyBiZWhpbmQgdGhlc2Vcbi8vIDxodHRwczovL2dpdGh1Yi5jb20vaW5mdXNpb24valF1ZXJ5LXhjb2xvci9ibG9iL21hc3Rlci9qcXVlcnkueGNvbG9yLmpzPlxuXG5mdW5jdGlvbiBjb21wbGVtZW50KGNvbG9yKSB7XG4gICAgdmFyIGhzbCA9IHRpbnljb2xvcihjb2xvcikudG9Ic2woKTtcbiAgICBoc2wuaCA9IChoc2wuaCArIDE4MCkgJSAzNjA7XG4gICAgcmV0dXJuIHRpbnljb2xvcihoc2wpO1xufVxuXG5mdW5jdGlvbiB0cmlhZChjb2xvcikge1xuICAgIHZhciBoc2wgPSB0aW55Y29sb3IoY29sb3IpLnRvSHNsKCk7XG4gICAgdmFyIGggPSBoc2wuaDtcbiAgICByZXR1cm4gW1xuICAgICAgICB0aW55Y29sb3IoY29sb3IpLFxuICAgICAgICB0aW55Y29sb3IoeyBoOiAoaCArIDEyMCkgJSAzNjAsIHM6IGhzbC5zLCBsOiBoc2wubCB9KSxcbiAgICAgICAgdGlueWNvbG9yKHsgaDogKGggKyAyNDApICUgMzYwLCBzOiBoc2wucywgbDogaHNsLmwgfSlcbiAgICBdO1xufVxuXG5mdW5jdGlvbiB0ZXRyYWQoY29sb3IpIHtcbiAgICB2YXIgaHNsID0gdGlueWNvbG9yKGNvbG9yKS50b0hzbCgpO1xuICAgIHZhciBoID0gaHNsLmg7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgdGlueWNvbG9yKGNvbG9yKSxcbiAgICAgICAgdGlueWNvbG9yKHsgaDogKGggKyA5MCkgJSAzNjAsIHM6IGhzbC5zLCBsOiBoc2wubCB9KSxcbiAgICAgICAgdGlueWNvbG9yKHsgaDogKGggKyAxODApICUgMzYwLCBzOiBoc2wucywgbDogaHNsLmwgfSksXG4gICAgICAgIHRpbnljb2xvcih7IGg6IChoICsgMjcwKSAlIDM2MCwgczogaHNsLnMsIGw6IGhzbC5sIH0pXG4gICAgXTtcbn1cblxuZnVuY3Rpb24gc3BsaXRjb21wbGVtZW50KGNvbG9yKSB7XG4gICAgdmFyIGhzbCA9IHRpbnljb2xvcihjb2xvcikudG9Ic2woKTtcbiAgICB2YXIgaCA9IGhzbC5oO1xuICAgIHJldHVybiBbXG4gICAgICAgIHRpbnljb2xvcihjb2xvciksXG4gICAgICAgIHRpbnljb2xvcih7IGg6IChoICsgNzIpICUgMzYwLCBzOiBoc2wucywgbDogaHNsLmx9KSxcbiAgICAgICAgdGlueWNvbG9yKHsgaDogKGggKyAyMTYpICUgMzYwLCBzOiBoc2wucywgbDogaHNsLmx9KVxuICAgIF07XG59XG5cbmZ1bmN0aW9uIGFuYWxvZ291cyhjb2xvciwgcmVzdWx0cywgc2xpY2VzKSB7XG4gICAgcmVzdWx0cyA9IHJlc3VsdHMgfHwgNjtcbiAgICBzbGljZXMgPSBzbGljZXMgfHwgMzA7XG5cbiAgICB2YXIgaHNsID0gdGlueWNvbG9yKGNvbG9yKS50b0hzbCgpO1xuICAgIHZhciBwYXJ0ID0gMzYwIC8gc2xpY2VzO1xuICAgIHZhciByZXQgPSBbdGlueWNvbG9yKGNvbG9yKV07XG5cbiAgICBmb3IgKGhzbC5oID0gKChoc2wuaCAtIChwYXJ0ICogcmVzdWx0cyA+PiAxKSkgKyA3MjApICUgMzYwOyAtLXJlc3VsdHM7ICkge1xuICAgICAgICBoc2wuaCA9IChoc2wuaCArIHBhcnQpICUgMzYwO1xuICAgICAgICByZXQucHVzaCh0aW55Y29sb3IoaHNsKSk7XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG59XG5cbmZ1bmN0aW9uIG1vbm9jaHJvbWF0aWMoY29sb3IsIHJlc3VsdHMpIHtcbiAgICByZXN1bHRzID0gcmVzdWx0cyB8fCA2O1xuICAgIHZhciBoc3YgPSB0aW55Y29sb3IoY29sb3IpLnRvSHN2KCk7XG4gICAgdmFyIGggPSBoc3YuaCwgcyA9IGhzdi5zLCB2ID0gaHN2LnY7XG4gICAgdmFyIHJldCA9IFtdO1xuICAgIHZhciBtb2RpZmljYXRpb24gPSAxIC8gcmVzdWx0cztcblxuICAgIHdoaWxlIChyZXN1bHRzLS0pIHtcbiAgICAgICAgcmV0LnB1c2godGlueWNvbG9yKHsgaDogaCwgczogcywgdjogdn0pKTtcbiAgICAgICAgdiA9ICh2ICsgbW9kaWZpY2F0aW9uKSAlIDE7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJldDtcbn1cblxuLy8gVXRpbGl0eSBGdW5jdGlvbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG50aW55Y29sb3IubWl4ID0gZnVuY3Rpb24oY29sb3IxLCBjb2xvcjIsIGFtb3VudCkge1xuICAgIGFtb3VudCA9IChhbW91bnQgPT09IDApID8gMCA6IChhbW91bnQgfHwgNTApO1xuXG4gICAgdmFyIHJnYjEgPSB0aW55Y29sb3IoY29sb3IxKS50b1JnYigpO1xuICAgIHZhciByZ2IyID0gdGlueWNvbG9yKGNvbG9yMikudG9SZ2IoKTtcblxuICAgIHZhciBwID0gYW1vdW50IC8gMTAwO1xuXG4gICAgdmFyIHJnYmEgPSB7XG4gICAgICAgIHI6ICgocmdiMi5yIC0gcmdiMS5yKSAqIHApICsgcmdiMS5yLFxuICAgICAgICBnOiAoKHJnYjIuZyAtIHJnYjEuZykgKiBwKSArIHJnYjEuZyxcbiAgICAgICAgYjogKChyZ2IyLmIgLSByZ2IxLmIpICogcCkgKyByZ2IxLmIsXG4gICAgICAgIGE6ICgocmdiMi5hIC0gcmdiMS5hKSAqIHApICsgcmdiMS5hXG4gICAgfTtcblxuICAgIHJldHVybiB0aW55Y29sb3IocmdiYSk7XG59O1xuXG5cbi8vIFJlYWRhYmlsaXR5IEZ1bmN0aW9uc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyA8aHR0cDovL3d3dy53My5vcmcvVFIvMjAwOC9SRUMtV0NBRzIwLTIwMDgxMjExLyNjb250cmFzdC1yYXRpb2RlZiAoV0NBRyBWZXJzaW9uIDIpXG5cbi8vIGBjb250cmFzdGBcbi8vIEFuYWx5emUgdGhlIDIgY29sb3JzIGFuZCByZXR1cm5zIHRoZSBjb2xvciBjb250cmFzdCBkZWZpbmVkIGJ5IChXQ0FHIFZlcnNpb24gMilcbnRpbnljb2xvci5yZWFkYWJpbGl0eSA9IGZ1bmN0aW9uKGNvbG9yMSwgY29sb3IyKSB7XG4gICAgdmFyIGMxID0gdGlueWNvbG9yKGNvbG9yMSk7XG4gICAgdmFyIGMyID0gdGlueWNvbG9yKGNvbG9yMik7XG4gICAgcmV0dXJuIChNYXRoLm1heChjMS5nZXRMdW1pbmFuY2UoKSxjMi5nZXRMdW1pbmFuY2UoKSkrMC4wNSkgLyAoTWF0aC5taW4oYzEuZ2V0THVtaW5hbmNlKCksYzIuZ2V0THVtaW5hbmNlKCkpKzAuMDUpO1xufTtcblxuLy8gYGlzUmVhZGFibGVgXG4vLyBFbnN1cmUgdGhhdCBmb3JlZ3JvdW5kIGFuZCBiYWNrZ3JvdW5kIGNvbG9yIGNvbWJpbmF0aW9ucyBtZWV0IFdDQUcyIGd1aWRlbGluZXMuXG4vLyBUaGUgdGhpcmQgYXJndW1lbnQgaXMgYW4gb3B0aW9uYWwgT2JqZWN0LlxuLy8gICAgICB0aGUgJ2xldmVsJyBwcm9wZXJ0eSBzdGF0ZXMgJ0FBJyBvciAnQUFBJyAtIGlmIG1pc3Npbmcgb3IgaW52YWxpZCwgaXQgZGVmYXVsdHMgdG8gJ0FBJztcbi8vICAgICAgdGhlICdzaXplJyBwcm9wZXJ0eSBzdGF0ZXMgJ2xhcmdlJyBvciAnc21hbGwnIC0gaWYgbWlzc2luZyBvciBpbnZhbGlkLCBpdCBkZWZhdWx0cyB0byAnc21hbGwnLlxuLy8gSWYgdGhlIGVudGlyZSBvYmplY3QgaXMgYWJzZW50LCBpc1JlYWRhYmxlIGRlZmF1bHRzIHRvIHtsZXZlbDpcIkFBXCIsc2l6ZTpcInNtYWxsXCJ9LlxuXG4vLyAqRXhhbXBsZSpcbi8vICAgIHRpbnljb2xvci5pc1JlYWRhYmxlKFwiIzAwMFwiLCBcIiMxMTFcIikgPT4gZmFsc2Vcbi8vICAgIHRpbnljb2xvci5pc1JlYWRhYmxlKFwiIzAwMFwiLCBcIiMxMTFcIix7bGV2ZWw6XCJBQVwiLHNpemU6XCJsYXJnZVwifSkgPT4gZmFsc2VcbnRpbnljb2xvci5pc1JlYWRhYmxlID0gZnVuY3Rpb24oY29sb3IxLCBjb2xvcjIsIHdjYWcyKSB7XG4gICAgdmFyIHJlYWRhYmlsaXR5ID0gdGlueWNvbG9yLnJlYWRhYmlsaXR5KGNvbG9yMSwgY29sb3IyKTtcbiAgICB2YXIgd2NhZzJQYXJtcywgb3V0O1xuXG4gICAgb3V0ID0gZmFsc2U7XG5cbiAgICB3Y2FnMlBhcm1zID0gdmFsaWRhdGVXQ0FHMlBhcm1zKHdjYWcyKTtcbiAgICBzd2l0Y2ggKHdjYWcyUGFybXMubGV2ZWwgKyB3Y2FnMlBhcm1zLnNpemUpIHtcbiAgICAgICAgY2FzZSBcIkFBc21hbGxcIjpcbiAgICAgICAgY2FzZSBcIkFBQWxhcmdlXCI6XG4gICAgICAgICAgICBvdXQgPSByZWFkYWJpbGl0eSA+PSA0LjU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcIkFBbGFyZ2VcIjpcbiAgICAgICAgICAgIG91dCA9IHJlYWRhYmlsaXR5ID49IDM7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcIkFBQXNtYWxsXCI6XG4gICAgICAgICAgICBvdXQgPSByZWFkYWJpbGl0eSA+PSA3O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHJldHVybiBvdXQ7XG5cbn07XG5cbi8vIGBtb3N0UmVhZGFibGVgXG4vLyBHaXZlbiBhIGJhc2UgY29sb3IgYW5kIGEgbGlzdCBvZiBwb3NzaWJsZSBmb3JlZ3JvdW5kIG9yIGJhY2tncm91bmRcbi8vIGNvbG9ycyBmb3IgdGhhdCBiYXNlLCByZXR1cm5zIHRoZSBtb3N0IHJlYWRhYmxlIGNvbG9yLlxuLy8gT3B0aW9uYWxseSByZXR1cm5zIEJsYWNrIG9yIFdoaXRlIGlmIHRoZSBtb3N0IHJlYWRhYmxlIGNvbG9yIGlzIHVucmVhZGFibGUuXG4vLyAqRXhhbXBsZSpcbi8vICAgIHRpbnljb2xvci5tb3N0UmVhZGFibGUodGlueWNvbG9yLm1vc3RSZWFkYWJsZShcIiMxMjNcIiwgW1wiIzEyNFwiLCBcIiMxMjVcIl0se2luY2x1ZGVGYWxsYmFja0NvbG9yczpmYWxzZX0pLnRvSGV4U3RyaW5nKCk7IC8vIFwiIzExMjI1NVwiXG4vLyAgICB0aW55Y29sb3IubW9zdFJlYWRhYmxlKHRpbnljb2xvci5tb3N0UmVhZGFibGUoXCIjMTIzXCIsIFtcIiMxMjRcIiwgXCIjMTI1XCJdLHtpbmNsdWRlRmFsbGJhY2tDb2xvcnM6dHJ1ZX0pLnRvSGV4U3RyaW5nKCk7ICAvLyBcIiNmZmZmZmZcIlxuLy8gICAgdGlueWNvbG9yLm1vc3RSZWFkYWJsZShcIiNhODAxNWFcIiwgW1wiI2ZhZjNmM1wiXSx7aW5jbHVkZUZhbGxiYWNrQ29sb3JzOnRydWUsbGV2ZWw6XCJBQUFcIixzaXplOlwibGFyZ2VcIn0pLnRvSGV4U3RyaW5nKCk7IC8vIFwiI2ZhZjNmM1wiXG4vLyAgICB0aW55Y29sb3IubW9zdFJlYWRhYmxlKFwiI2E4MDE1YVwiLCBbXCIjZmFmM2YzXCJdLHtpbmNsdWRlRmFsbGJhY2tDb2xvcnM6dHJ1ZSxsZXZlbDpcIkFBQVwiLHNpemU6XCJzbWFsbFwifSkudG9IZXhTdHJpbmcoKTsgLy8gXCIjZmZmZmZmXCJcbnRpbnljb2xvci5tb3N0UmVhZGFibGUgPSBmdW5jdGlvbihiYXNlQ29sb3IsIGNvbG9yTGlzdCwgYXJncykge1xuICAgIHZhciBiZXN0Q29sb3IgPSBudWxsO1xuICAgIHZhciBiZXN0U2NvcmUgPSAwO1xuICAgIHZhciByZWFkYWJpbGl0eTtcbiAgICB2YXIgaW5jbHVkZUZhbGxiYWNrQ29sb3JzLCBsZXZlbCwgc2l6ZSA7XG4gICAgYXJncyA9IGFyZ3MgfHwge307XG4gICAgaW5jbHVkZUZhbGxiYWNrQ29sb3JzID0gYXJncy5pbmNsdWRlRmFsbGJhY2tDb2xvcnMgO1xuICAgIGxldmVsID0gYXJncy5sZXZlbDtcbiAgICBzaXplID0gYXJncy5zaXplO1xuXG4gICAgZm9yICh2YXIgaT0gMDsgaSA8IGNvbG9yTGlzdC5sZW5ndGggOyBpKyspIHtcbiAgICAgICAgcmVhZGFiaWxpdHkgPSB0aW55Y29sb3IucmVhZGFiaWxpdHkoYmFzZUNvbG9yLCBjb2xvckxpc3RbaV0pO1xuICAgICAgICBpZiAocmVhZGFiaWxpdHkgPiBiZXN0U2NvcmUpIHtcbiAgICAgICAgICAgIGJlc3RTY29yZSA9IHJlYWRhYmlsaXR5O1xuICAgICAgICAgICAgYmVzdENvbG9yID0gdGlueWNvbG9yKGNvbG9yTGlzdFtpXSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGlueWNvbG9yLmlzUmVhZGFibGUoYmFzZUNvbG9yLCBiZXN0Q29sb3IsIHtcImxldmVsXCI6bGV2ZWwsXCJzaXplXCI6c2l6ZX0pIHx8ICFpbmNsdWRlRmFsbGJhY2tDb2xvcnMpIHtcbiAgICAgICAgcmV0dXJuIGJlc3RDb2xvcjtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGFyZ3MuaW5jbHVkZUZhbGxiYWNrQ29sb3JzPWZhbHNlO1xuICAgICAgICByZXR1cm4gdGlueWNvbG9yLm1vc3RSZWFkYWJsZShiYXNlQ29sb3IsW1wiI2ZmZlwiLCBcIiMwMDBcIl0sYXJncyk7XG4gICAgfVxufTtcblxuXG4vLyBCaWcgTGlzdCBvZiBDb2xvcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gPGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtY29sb3IvI3N2Zy1jb2xvcj5cbnZhciBuYW1lcyA9IHRpbnljb2xvci5uYW1lcyA9IHtcbiAgICBhbGljZWJsdWU6IFwiZjBmOGZmXCIsXG4gICAgYW50aXF1ZXdoaXRlOiBcImZhZWJkN1wiLFxuICAgIGFxdWE6IFwiMGZmXCIsXG4gICAgYXF1YW1hcmluZTogXCI3ZmZmZDRcIixcbiAgICBhenVyZTogXCJmMGZmZmZcIixcbiAgICBiZWlnZTogXCJmNWY1ZGNcIixcbiAgICBiaXNxdWU6IFwiZmZlNGM0XCIsXG4gICAgYmxhY2s6IFwiMDAwXCIsXG4gICAgYmxhbmNoZWRhbG1vbmQ6IFwiZmZlYmNkXCIsXG4gICAgYmx1ZTogXCIwMGZcIixcbiAgICBibHVldmlvbGV0OiBcIjhhMmJlMlwiLFxuICAgIGJyb3duOiBcImE1MmEyYVwiLFxuICAgIGJ1cmx5d29vZDogXCJkZWI4ODdcIixcbiAgICBidXJudHNpZW5uYTogXCJlYTdlNWRcIixcbiAgICBjYWRldGJsdWU6IFwiNWY5ZWEwXCIsXG4gICAgY2hhcnRyZXVzZTogXCI3ZmZmMDBcIixcbiAgICBjaG9jb2xhdGU6IFwiZDI2OTFlXCIsXG4gICAgY29yYWw6IFwiZmY3ZjUwXCIsXG4gICAgY29ybmZsb3dlcmJsdWU6IFwiNjQ5NWVkXCIsXG4gICAgY29ybnNpbGs6IFwiZmZmOGRjXCIsXG4gICAgY3JpbXNvbjogXCJkYzE0M2NcIixcbiAgICBjeWFuOiBcIjBmZlwiLFxuICAgIGRhcmtibHVlOiBcIjAwMDA4YlwiLFxuICAgIGRhcmtjeWFuOiBcIjAwOGI4YlwiLFxuICAgIGRhcmtnb2xkZW5yb2Q6IFwiYjg4NjBiXCIsXG4gICAgZGFya2dyYXk6IFwiYTlhOWE5XCIsXG4gICAgZGFya2dyZWVuOiBcIjAwNjQwMFwiLFxuICAgIGRhcmtncmV5OiBcImE5YTlhOVwiLFxuICAgIGRhcmtraGFraTogXCJiZGI3NmJcIixcbiAgICBkYXJrbWFnZW50YTogXCI4YjAwOGJcIixcbiAgICBkYXJrb2xpdmVncmVlbjogXCI1NTZiMmZcIixcbiAgICBkYXJrb3JhbmdlOiBcImZmOGMwMFwiLFxuICAgIGRhcmtvcmNoaWQ6IFwiOTkzMmNjXCIsXG4gICAgZGFya3JlZDogXCI4YjAwMDBcIixcbiAgICBkYXJrc2FsbW9uOiBcImU5OTY3YVwiLFxuICAgIGRhcmtzZWFncmVlbjogXCI4ZmJjOGZcIixcbiAgICBkYXJrc2xhdGVibHVlOiBcIjQ4M2Q4YlwiLFxuICAgIGRhcmtzbGF0ZWdyYXk6IFwiMmY0ZjRmXCIsXG4gICAgZGFya3NsYXRlZ3JleTogXCIyZjRmNGZcIixcbiAgICBkYXJrdHVycXVvaXNlOiBcIjAwY2VkMVwiLFxuICAgIGRhcmt2aW9sZXQ6IFwiOTQwMGQzXCIsXG4gICAgZGVlcHBpbms6IFwiZmYxNDkzXCIsXG4gICAgZGVlcHNreWJsdWU6IFwiMDBiZmZmXCIsXG4gICAgZGltZ3JheTogXCI2OTY5NjlcIixcbiAgICBkaW1ncmV5OiBcIjY5Njk2OVwiLFxuICAgIGRvZGdlcmJsdWU6IFwiMWU5MGZmXCIsXG4gICAgZmlyZWJyaWNrOiBcImIyMjIyMlwiLFxuICAgIGZsb3JhbHdoaXRlOiBcImZmZmFmMFwiLFxuICAgIGZvcmVzdGdyZWVuOiBcIjIyOGIyMlwiLFxuICAgIGZ1Y2hzaWE6IFwiZjBmXCIsXG4gICAgZ2FpbnNib3JvOiBcImRjZGNkY1wiLFxuICAgIGdob3N0d2hpdGU6IFwiZjhmOGZmXCIsXG4gICAgZ29sZDogXCJmZmQ3MDBcIixcbiAgICBnb2xkZW5yb2Q6IFwiZGFhNTIwXCIsXG4gICAgZ3JheTogXCI4MDgwODBcIixcbiAgICBncmVlbjogXCIwMDgwMDBcIixcbiAgICBncmVlbnllbGxvdzogXCJhZGZmMmZcIixcbiAgICBncmV5OiBcIjgwODA4MFwiLFxuICAgIGhvbmV5ZGV3OiBcImYwZmZmMFwiLFxuICAgIGhvdHBpbms6IFwiZmY2OWI0XCIsXG4gICAgaW5kaWFucmVkOiBcImNkNWM1Y1wiLFxuICAgIGluZGlnbzogXCI0YjAwODJcIixcbiAgICBpdm9yeTogXCJmZmZmZjBcIixcbiAgICBraGFraTogXCJmMGU2OGNcIixcbiAgICBsYXZlbmRlcjogXCJlNmU2ZmFcIixcbiAgICBsYXZlbmRlcmJsdXNoOiBcImZmZjBmNVwiLFxuICAgIGxhd25ncmVlbjogXCI3Y2ZjMDBcIixcbiAgICBsZW1vbmNoaWZmb246IFwiZmZmYWNkXCIsXG4gICAgbGlnaHRibHVlOiBcImFkZDhlNlwiLFxuICAgIGxpZ2h0Y29yYWw6IFwiZjA4MDgwXCIsXG4gICAgbGlnaHRjeWFuOiBcImUwZmZmZlwiLFxuICAgIGxpZ2h0Z29sZGVucm9keWVsbG93OiBcImZhZmFkMlwiLFxuICAgIGxpZ2h0Z3JheTogXCJkM2QzZDNcIixcbiAgICBsaWdodGdyZWVuOiBcIjkwZWU5MFwiLFxuICAgIGxpZ2h0Z3JleTogXCJkM2QzZDNcIixcbiAgICBsaWdodHBpbms6IFwiZmZiNmMxXCIsXG4gICAgbGlnaHRzYWxtb246IFwiZmZhMDdhXCIsXG4gICAgbGlnaHRzZWFncmVlbjogXCIyMGIyYWFcIixcbiAgICBsaWdodHNreWJsdWU6IFwiODdjZWZhXCIsXG4gICAgbGlnaHRzbGF0ZWdyYXk6IFwiNzg5XCIsXG4gICAgbGlnaHRzbGF0ZWdyZXk6IFwiNzg5XCIsXG4gICAgbGlnaHRzdGVlbGJsdWU6IFwiYjBjNGRlXCIsXG4gICAgbGlnaHR5ZWxsb3c6IFwiZmZmZmUwXCIsXG4gICAgbGltZTogXCIwZjBcIixcbiAgICBsaW1lZ3JlZW46IFwiMzJjZDMyXCIsXG4gICAgbGluZW46IFwiZmFmMGU2XCIsXG4gICAgbWFnZW50YTogXCJmMGZcIixcbiAgICBtYXJvb246IFwiODAwMDAwXCIsXG4gICAgbWVkaXVtYXF1YW1hcmluZTogXCI2NmNkYWFcIixcbiAgICBtZWRpdW1ibHVlOiBcIjAwMDBjZFwiLFxuICAgIG1lZGl1bW9yY2hpZDogXCJiYTU1ZDNcIixcbiAgICBtZWRpdW1wdXJwbGU6IFwiOTM3MGRiXCIsXG4gICAgbWVkaXVtc2VhZ3JlZW46IFwiM2NiMzcxXCIsXG4gICAgbWVkaXVtc2xhdGVibHVlOiBcIjdiNjhlZVwiLFxuICAgIG1lZGl1bXNwcmluZ2dyZWVuOiBcIjAwZmE5YVwiLFxuICAgIG1lZGl1bXR1cnF1b2lzZTogXCI0OGQxY2NcIixcbiAgICBtZWRpdW12aW9sZXRyZWQ6IFwiYzcxNTg1XCIsXG4gICAgbWlkbmlnaHRibHVlOiBcIjE5MTk3MFwiLFxuICAgIG1pbnRjcmVhbTogXCJmNWZmZmFcIixcbiAgICBtaXN0eXJvc2U6IFwiZmZlNGUxXCIsXG4gICAgbW9jY2FzaW46IFwiZmZlNGI1XCIsXG4gICAgbmF2YWpvd2hpdGU6IFwiZmZkZWFkXCIsXG4gICAgbmF2eTogXCIwMDAwODBcIixcbiAgICBvbGRsYWNlOiBcImZkZjVlNlwiLFxuICAgIG9saXZlOiBcIjgwODAwMFwiLFxuICAgIG9saXZlZHJhYjogXCI2YjhlMjNcIixcbiAgICBvcmFuZ2U6IFwiZmZhNTAwXCIsXG4gICAgb3JhbmdlcmVkOiBcImZmNDUwMFwiLFxuICAgIG9yY2hpZDogXCJkYTcwZDZcIixcbiAgICBwYWxlZ29sZGVucm9kOiBcImVlZThhYVwiLFxuICAgIHBhbGVncmVlbjogXCI5OGZiOThcIixcbiAgICBwYWxldHVycXVvaXNlOiBcImFmZWVlZVwiLFxuICAgIHBhbGV2aW9sZXRyZWQ6IFwiZGI3MDkzXCIsXG4gICAgcGFwYXlhd2hpcDogXCJmZmVmZDVcIixcbiAgICBwZWFjaHB1ZmY6IFwiZmZkYWI5XCIsXG4gICAgcGVydTogXCJjZDg1M2ZcIixcbiAgICBwaW5rOiBcImZmYzBjYlwiLFxuICAgIHBsdW06IFwiZGRhMGRkXCIsXG4gICAgcG93ZGVyYmx1ZTogXCJiMGUwZTZcIixcbiAgICBwdXJwbGU6IFwiODAwMDgwXCIsXG4gICAgcmViZWNjYXB1cnBsZTogXCI2NjMzOTlcIixcbiAgICByZWQ6IFwiZjAwXCIsXG4gICAgcm9zeWJyb3duOiBcImJjOGY4ZlwiLFxuICAgIHJveWFsYmx1ZTogXCI0MTY5ZTFcIixcbiAgICBzYWRkbGVicm93bjogXCI4YjQ1MTNcIixcbiAgICBzYWxtb246IFwiZmE4MDcyXCIsXG4gICAgc2FuZHlicm93bjogXCJmNGE0NjBcIixcbiAgICBzZWFncmVlbjogXCIyZThiNTdcIixcbiAgICBzZWFzaGVsbDogXCJmZmY1ZWVcIixcbiAgICBzaWVubmE6IFwiYTA1MjJkXCIsXG4gICAgc2lsdmVyOiBcImMwYzBjMFwiLFxuICAgIHNreWJsdWU6IFwiODdjZWViXCIsXG4gICAgc2xhdGVibHVlOiBcIjZhNWFjZFwiLFxuICAgIHNsYXRlZ3JheTogXCI3MDgwOTBcIixcbiAgICBzbGF0ZWdyZXk6IFwiNzA4MDkwXCIsXG4gICAgc25vdzogXCJmZmZhZmFcIixcbiAgICBzcHJpbmdncmVlbjogXCIwMGZmN2ZcIixcbiAgICBzdGVlbGJsdWU6IFwiNDY4MmI0XCIsXG4gICAgdGFuOiBcImQyYjQ4Y1wiLFxuICAgIHRlYWw6IFwiMDA4MDgwXCIsXG4gICAgdGhpc3RsZTogXCJkOGJmZDhcIixcbiAgICB0b21hdG86IFwiZmY2MzQ3XCIsXG4gICAgdHVycXVvaXNlOiBcIjQwZTBkMFwiLFxuICAgIHZpb2xldDogXCJlZTgyZWVcIixcbiAgICB3aGVhdDogXCJmNWRlYjNcIixcbiAgICB3aGl0ZTogXCJmZmZcIixcbiAgICB3aGl0ZXNtb2tlOiBcImY1ZjVmNVwiLFxuICAgIHllbGxvdzogXCJmZjBcIixcbiAgICB5ZWxsb3dncmVlbjogXCI5YWNkMzJcIlxufTtcblxuLy8gTWFrZSBpdCBlYXN5IHRvIGFjY2VzcyBjb2xvcnMgdmlhIGBoZXhOYW1lc1toZXhdYFxudmFyIGhleE5hbWVzID0gdGlueWNvbG9yLmhleE5hbWVzID0gZmxpcChuYW1lcyk7XG5cblxuLy8gVXRpbGl0aWVzXG4vLyAtLS0tLS0tLS1cblxuLy8gYHsgJ25hbWUxJzogJ3ZhbDEnIH1gIGJlY29tZXMgYHsgJ3ZhbDEnOiAnbmFtZTEnIH1gXG5mdW5jdGlvbiBmbGlwKG8pIHtcbiAgICB2YXIgZmxpcHBlZCA9IHsgfTtcbiAgICBmb3IgKHZhciBpIGluIG8pIHtcbiAgICAgICAgaWYgKG8uaGFzT3duUHJvcGVydHkoaSkpIHtcbiAgICAgICAgICAgIGZsaXBwZWRbb1tpXV0gPSBpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmbGlwcGVkO1xufVxuXG4vLyBSZXR1cm4gYSB2YWxpZCBhbHBoYSB2YWx1ZSBbMCwxXSB3aXRoIGFsbCBpbnZhbGlkIHZhbHVlcyBiZWluZyBzZXQgdG8gMVxuZnVuY3Rpb24gYm91bmRBbHBoYShhKSB7XG4gICAgYSA9IHBhcnNlRmxvYXQoYSk7XG5cbiAgICBpZiAoaXNOYU4oYSkgfHwgYSA8IDAgfHwgYSA+IDEpIHtcbiAgICAgICAgYSA9IDE7XG4gICAgfVxuXG4gICAgcmV0dXJuIGE7XG59XG5cbi8vIFRha2UgaW5wdXQgZnJvbSBbMCwgbl0gYW5kIHJldHVybiBpdCBhcyBbMCwgMV1cbmZ1bmN0aW9uIGJvdW5kMDEobiwgbWF4KSB7XG4gICAgaWYgKGlzT25lUG9pbnRaZXJvKG4pKSB7IG4gPSBcIjEwMCVcIjsgfVxuXG4gICAgdmFyIHByb2Nlc3NQZXJjZW50ID0gaXNQZXJjZW50YWdlKG4pO1xuICAgIG4gPSBtYXRoTWluKG1heCwgbWF0aE1heCgwLCBwYXJzZUZsb2F0KG4pKSk7XG5cbiAgICAvLyBBdXRvbWF0aWNhbGx5IGNvbnZlcnQgcGVyY2VudGFnZSBpbnRvIG51bWJlclxuICAgIGlmIChwcm9jZXNzUGVyY2VudCkge1xuICAgICAgICBuID0gcGFyc2VJbnQobiAqIG1heCwgMTApIC8gMTAwO1xuICAgIH1cblxuICAgIC8vIEhhbmRsZSBmbG9hdGluZyBwb2ludCByb3VuZGluZyBlcnJvcnNcbiAgICBpZiAoKE1hdGguYWJzKG4gLSBtYXgpIDwgMC4wMDAwMDEpKSB7XG4gICAgICAgIHJldHVybiAxO1xuICAgIH1cblxuICAgIC8vIENvbnZlcnQgaW50byBbMCwgMV0gcmFuZ2UgaWYgaXQgaXNuJ3QgYWxyZWFkeVxuICAgIHJldHVybiAobiAlIG1heCkgLyBwYXJzZUZsb2F0KG1heCk7XG59XG5cbi8vIEZvcmNlIGEgbnVtYmVyIGJldHdlZW4gMCBhbmQgMVxuZnVuY3Rpb24gY2xhbXAwMSh2YWwpIHtcbiAgICByZXR1cm4gbWF0aE1pbigxLCBtYXRoTWF4KDAsIHZhbCkpO1xufVxuXG4vLyBQYXJzZSBhIGJhc2UtMTYgaGV4IHZhbHVlIGludG8gYSBiYXNlLTEwIGludGVnZXJcbmZ1bmN0aW9uIHBhcnNlSW50RnJvbUhleCh2YWwpIHtcbiAgICByZXR1cm4gcGFyc2VJbnQodmFsLCAxNik7XG59XG5cbi8vIE5lZWQgdG8gaGFuZGxlIDEuMCBhcyAxMDAlLCBzaW5jZSBvbmNlIGl0IGlzIGEgbnVtYmVyLCB0aGVyZSBpcyBubyBkaWZmZXJlbmNlIGJldHdlZW4gaXQgYW5kIDFcbi8vIDxodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzc0MjIwNzIvamF2YXNjcmlwdC1ob3ctdG8tZGV0ZWN0LW51bWJlci1hcy1hLWRlY2ltYWwtaW5jbHVkaW5nLTEtMD5cbmZ1bmN0aW9uIGlzT25lUG9pbnRaZXJvKG4pIHtcbiAgICByZXR1cm4gdHlwZW9mIG4gPT0gXCJzdHJpbmdcIiAmJiBuLmluZGV4T2YoJy4nKSAhPSAtMSAmJiBwYXJzZUZsb2F0KG4pID09PSAxO1xufVxuXG4vLyBDaGVjayB0byBzZWUgaWYgc3RyaW5nIHBhc3NlZCBpbiBpcyBhIHBlcmNlbnRhZ2VcbmZ1bmN0aW9uIGlzUGVyY2VudGFnZShuKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBuID09PSBcInN0cmluZ1wiICYmIG4uaW5kZXhPZignJScpICE9IC0xO1xufVxuXG4vLyBGb3JjZSBhIGhleCB2YWx1ZSB0byBoYXZlIDIgY2hhcmFjdGVyc1xuZnVuY3Rpb24gcGFkMihjKSB7XG4gICAgcmV0dXJuIGMubGVuZ3RoID09IDEgPyAnMCcgKyBjIDogJycgKyBjO1xufVxuXG4vLyBSZXBsYWNlIGEgZGVjaW1hbCB3aXRoIGl0J3MgcGVyY2VudGFnZSB2YWx1ZVxuZnVuY3Rpb24gY29udmVydFRvUGVyY2VudGFnZShuKSB7XG4gICAgaWYgKG4gPD0gMSkge1xuICAgICAgICBuID0gKG4gKiAxMDApICsgXCIlXCI7XG4gICAgfVxuXG4gICAgcmV0dXJuIG47XG59XG5cbi8vIENvbnZlcnRzIGEgZGVjaW1hbCB0byBhIGhleCB2YWx1ZVxuZnVuY3Rpb24gY29udmVydERlY2ltYWxUb0hleChkKSB7XG4gICAgcmV0dXJuIE1hdGgucm91bmQocGFyc2VGbG9hdChkKSAqIDI1NSkudG9TdHJpbmcoMTYpO1xufVxuLy8gQ29udmVydHMgYSBoZXggdmFsdWUgdG8gYSBkZWNpbWFsXG5mdW5jdGlvbiBjb252ZXJ0SGV4VG9EZWNpbWFsKGgpIHtcbiAgICByZXR1cm4gKHBhcnNlSW50RnJvbUhleChoKSAvIDI1NSk7XG59XG5cbnZhciBtYXRjaGVycyA9IChmdW5jdGlvbigpIHtcblxuICAgIC8vIDxodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLXZhbHVlcy8jaW50ZWdlcnM+XG4gICAgdmFyIENTU19JTlRFR0VSID0gXCJbLVxcXFwrXT9cXFxcZCslP1wiO1xuXG4gICAgLy8gPGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtdmFsdWVzLyNudW1iZXItdmFsdWU+XG4gICAgdmFyIENTU19OVU1CRVIgPSBcIlstXFxcXCtdP1xcXFxkKlxcXFwuXFxcXGQrJT9cIjtcblxuICAgIC8vIEFsbG93IHBvc2l0aXZlL25lZ2F0aXZlIGludGVnZXIvbnVtYmVyLiAgRG9uJ3QgY2FwdHVyZSB0aGUgZWl0aGVyL29yLCBqdXN0IHRoZSBlbnRpcmUgb3V0Y29tZS5cbiAgICB2YXIgQ1NTX1VOSVQgPSBcIig/OlwiICsgQ1NTX05VTUJFUiArIFwiKXwoPzpcIiArIENTU19JTlRFR0VSICsgXCIpXCI7XG5cbiAgICAvLyBBY3R1YWwgbWF0Y2hpbmcuXG4gICAgLy8gUGFyZW50aGVzZXMgYW5kIGNvbW1hcyBhcmUgb3B0aW9uYWwsIGJ1dCBub3QgcmVxdWlyZWQuXG4gICAgLy8gV2hpdGVzcGFjZSBjYW4gdGFrZSB0aGUgcGxhY2Ugb2YgY29tbWFzIG9yIG9wZW5pbmcgcGFyZW5cbiAgICB2YXIgUEVSTUlTU0lWRV9NQVRDSDMgPSBcIltcXFxcc3xcXFxcKF0rKFwiICsgQ1NTX1VOSVQgKyBcIilbLHxcXFxcc10rKFwiICsgQ1NTX1VOSVQgKyBcIilbLHxcXFxcc10rKFwiICsgQ1NTX1VOSVQgKyBcIilcXFxccypcXFxcKT9cIjtcbiAgICB2YXIgUEVSTUlTU0lWRV9NQVRDSDQgPSBcIltcXFxcc3xcXFxcKF0rKFwiICsgQ1NTX1VOSVQgKyBcIilbLHxcXFxcc10rKFwiICsgQ1NTX1VOSVQgKyBcIilbLHxcXFxcc10rKFwiICsgQ1NTX1VOSVQgKyBcIilbLHxcXFxcc10rKFwiICsgQ1NTX1VOSVQgKyBcIilcXFxccypcXFxcKT9cIjtcblxuICAgIHJldHVybiB7XG4gICAgICAgIENTU19VTklUOiBuZXcgUmVnRXhwKENTU19VTklUKSxcbiAgICAgICAgcmdiOiBuZXcgUmVnRXhwKFwicmdiXCIgKyBQRVJNSVNTSVZFX01BVENIMyksXG4gICAgICAgIHJnYmE6IG5ldyBSZWdFeHAoXCJyZ2JhXCIgKyBQRVJNSVNTSVZFX01BVENINCksXG4gICAgICAgIGhzbDogbmV3IFJlZ0V4cChcImhzbFwiICsgUEVSTUlTU0lWRV9NQVRDSDMpLFxuICAgICAgICBoc2xhOiBuZXcgUmVnRXhwKFwiaHNsYVwiICsgUEVSTUlTU0lWRV9NQVRDSDQpLFxuICAgICAgICBoc3Y6IG5ldyBSZWdFeHAoXCJoc3ZcIiArIFBFUk1JU1NJVkVfTUFUQ0gzKSxcbiAgICAgICAgaHN2YTogbmV3IFJlZ0V4cChcImhzdmFcIiArIFBFUk1JU1NJVkVfTUFUQ0g0KSxcbiAgICAgICAgaGV4MzogL14jPyhbMC05YS1mQS1GXXsxfSkoWzAtOWEtZkEtRl17MX0pKFswLTlhLWZBLUZdezF9KSQvLFxuICAgICAgICBoZXg2OiAvXiM/KFswLTlhLWZBLUZdezJ9KShbMC05YS1mQS1GXXsyfSkoWzAtOWEtZkEtRl17Mn0pJC8sXG4gICAgICAgIGhleDQ6IC9eIz8oWzAtOWEtZkEtRl17MX0pKFswLTlhLWZBLUZdezF9KShbMC05YS1mQS1GXXsxfSkoWzAtOWEtZkEtRl17MX0pJC8sXG4gICAgICAgIGhleDg6IC9eIz8oWzAtOWEtZkEtRl17Mn0pKFswLTlhLWZBLUZdezJ9KShbMC05YS1mQS1GXXsyfSkoWzAtOWEtZkEtRl17Mn0pJC9cbiAgICB9O1xufSkoKTtcblxuLy8gYGlzVmFsaWRDU1NVbml0YFxuLy8gVGFrZSBpbiBhIHNpbmdsZSBzdHJpbmcgLyBudW1iZXIgYW5kIGNoZWNrIHRvIHNlZSBpZiBpdCBsb29rcyBsaWtlIGEgQ1NTIHVuaXRcbi8vIChzZWUgYG1hdGNoZXJzYCBhYm92ZSBmb3IgZGVmaW5pdGlvbikuXG5mdW5jdGlvbiBpc1ZhbGlkQ1NTVW5pdChjb2xvcikge1xuICAgIHJldHVybiAhIW1hdGNoZXJzLkNTU19VTklULmV4ZWMoY29sb3IpO1xufVxuXG4vLyBgc3RyaW5nSW5wdXRUb09iamVjdGBcbi8vIFBlcm1pc3NpdmUgc3RyaW5nIHBhcnNpbmcuICBUYWtlIGluIGEgbnVtYmVyIG9mIGZvcm1hdHMsIGFuZCBvdXRwdXQgYW4gb2JqZWN0XG4vLyBiYXNlZCBvbiBkZXRlY3RlZCBmb3JtYXQuICBSZXR1cm5zIGB7IHIsIGcsIGIgfWAgb3IgYHsgaCwgcywgbCB9YCBvciBgeyBoLCBzLCB2fWBcbmZ1bmN0aW9uIHN0cmluZ0lucHV0VG9PYmplY3QoY29sb3IpIHtcblxuICAgIGNvbG9yID0gY29sb3IucmVwbGFjZSh0cmltTGVmdCwnJykucmVwbGFjZSh0cmltUmlnaHQsICcnKS50b0xvd2VyQ2FzZSgpO1xuICAgIHZhciBuYW1lZCA9IGZhbHNlO1xuICAgIGlmIChuYW1lc1tjb2xvcl0pIHtcbiAgICAgICAgY29sb3IgPSBuYW1lc1tjb2xvcl07XG4gICAgICAgIG5hbWVkID0gdHJ1ZTtcbiAgICB9XG4gICAgZWxzZSBpZiAoY29sb3IgPT0gJ3RyYW5zcGFyZW50Jykge1xuICAgICAgICByZXR1cm4geyByOiAwLCBnOiAwLCBiOiAwLCBhOiAwLCBmb3JtYXQ6IFwibmFtZVwiIH07XG4gICAgfVxuXG4gICAgLy8gVHJ5IHRvIG1hdGNoIHN0cmluZyBpbnB1dCB1c2luZyByZWd1bGFyIGV4cHJlc3Npb25zLlxuICAgIC8vIEtlZXAgbW9zdCBvZiB0aGUgbnVtYmVyIGJvdW5kaW5nIG91dCBvZiB0aGlzIGZ1bmN0aW9uIC0gZG9uJ3Qgd29ycnkgYWJvdXQgWzAsMV0gb3IgWzAsMTAwXSBvciBbMCwzNjBdXG4gICAgLy8gSnVzdCByZXR1cm4gYW4gb2JqZWN0IGFuZCBsZXQgdGhlIGNvbnZlcnNpb24gZnVuY3Rpb25zIGhhbmRsZSB0aGF0LlxuICAgIC8vIFRoaXMgd2F5IHRoZSByZXN1bHQgd2lsbCBiZSB0aGUgc2FtZSB3aGV0aGVyIHRoZSB0aW55Y29sb3IgaXMgaW5pdGlhbGl6ZWQgd2l0aCBzdHJpbmcgb3Igb2JqZWN0LlxuICAgIHZhciBtYXRjaDtcbiAgICBpZiAoKG1hdGNoID0gbWF0Y2hlcnMucmdiLmV4ZWMoY29sb3IpKSkge1xuICAgICAgICByZXR1cm4geyByOiBtYXRjaFsxXSwgZzogbWF0Y2hbMl0sIGI6IG1hdGNoWzNdIH07XG4gICAgfVxuICAgIGlmICgobWF0Y2ggPSBtYXRjaGVycy5yZ2JhLmV4ZWMoY29sb3IpKSkge1xuICAgICAgICByZXR1cm4geyByOiBtYXRjaFsxXSwgZzogbWF0Y2hbMl0sIGI6IG1hdGNoWzNdLCBhOiBtYXRjaFs0XSB9O1xuICAgIH1cbiAgICBpZiAoKG1hdGNoID0gbWF0Y2hlcnMuaHNsLmV4ZWMoY29sb3IpKSkge1xuICAgICAgICByZXR1cm4geyBoOiBtYXRjaFsxXSwgczogbWF0Y2hbMl0sIGw6IG1hdGNoWzNdIH07XG4gICAgfVxuICAgIGlmICgobWF0Y2ggPSBtYXRjaGVycy5oc2xhLmV4ZWMoY29sb3IpKSkge1xuICAgICAgICByZXR1cm4geyBoOiBtYXRjaFsxXSwgczogbWF0Y2hbMl0sIGw6IG1hdGNoWzNdLCBhOiBtYXRjaFs0XSB9O1xuICAgIH1cbiAgICBpZiAoKG1hdGNoID0gbWF0Y2hlcnMuaHN2LmV4ZWMoY29sb3IpKSkge1xuICAgICAgICByZXR1cm4geyBoOiBtYXRjaFsxXSwgczogbWF0Y2hbMl0sIHY6IG1hdGNoWzNdIH07XG4gICAgfVxuICAgIGlmICgobWF0Y2ggPSBtYXRjaGVycy5oc3ZhLmV4ZWMoY29sb3IpKSkge1xuICAgICAgICByZXR1cm4geyBoOiBtYXRjaFsxXSwgczogbWF0Y2hbMl0sIHY6IG1hdGNoWzNdLCBhOiBtYXRjaFs0XSB9O1xuICAgIH1cbiAgICBpZiAoKG1hdGNoID0gbWF0Y2hlcnMuaGV4OC5leGVjKGNvbG9yKSkpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHI6IHBhcnNlSW50RnJvbUhleChtYXRjaFsxXSksXG4gICAgICAgICAgICBnOiBwYXJzZUludEZyb21IZXgobWF0Y2hbMl0pLFxuICAgICAgICAgICAgYjogcGFyc2VJbnRGcm9tSGV4KG1hdGNoWzNdKSxcbiAgICAgICAgICAgIGE6IGNvbnZlcnRIZXhUb0RlY2ltYWwobWF0Y2hbNF0pLFxuICAgICAgICAgICAgZm9ybWF0OiBuYW1lZCA/IFwibmFtZVwiIDogXCJoZXg4XCJcbiAgICAgICAgfTtcbiAgICB9XG4gICAgaWYgKChtYXRjaCA9IG1hdGNoZXJzLmhleDYuZXhlYyhjb2xvcikpKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICByOiBwYXJzZUludEZyb21IZXgobWF0Y2hbMV0pLFxuICAgICAgICAgICAgZzogcGFyc2VJbnRGcm9tSGV4KG1hdGNoWzJdKSxcbiAgICAgICAgICAgIGI6IHBhcnNlSW50RnJvbUhleChtYXRjaFszXSksXG4gICAgICAgICAgICBmb3JtYXQ6IG5hbWVkID8gXCJuYW1lXCIgOiBcImhleFwiXG4gICAgICAgIH07XG4gICAgfVxuICAgIGlmICgobWF0Y2ggPSBtYXRjaGVycy5oZXg0LmV4ZWMoY29sb3IpKSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcjogcGFyc2VJbnRGcm9tSGV4KG1hdGNoWzFdICsgJycgKyBtYXRjaFsxXSksXG4gICAgICAgICAgICBnOiBwYXJzZUludEZyb21IZXgobWF0Y2hbMl0gKyAnJyArIG1hdGNoWzJdKSxcbiAgICAgICAgICAgIGI6IHBhcnNlSW50RnJvbUhleChtYXRjaFszXSArICcnICsgbWF0Y2hbM10pLFxuICAgICAgICAgICAgYTogY29udmVydEhleFRvRGVjaW1hbChtYXRjaFs0XSArICcnICsgbWF0Y2hbNF0pLFxuICAgICAgICAgICAgZm9ybWF0OiBuYW1lZCA/IFwibmFtZVwiIDogXCJoZXg4XCJcbiAgICAgICAgfTtcbiAgICB9XG4gICAgaWYgKChtYXRjaCA9IG1hdGNoZXJzLmhleDMuZXhlYyhjb2xvcikpKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICByOiBwYXJzZUludEZyb21IZXgobWF0Y2hbMV0gKyAnJyArIG1hdGNoWzFdKSxcbiAgICAgICAgICAgIGc6IHBhcnNlSW50RnJvbUhleChtYXRjaFsyXSArICcnICsgbWF0Y2hbMl0pLFxuICAgICAgICAgICAgYjogcGFyc2VJbnRGcm9tSGV4KG1hdGNoWzNdICsgJycgKyBtYXRjaFszXSksXG4gICAgICAgICAgICBmb3JtYXQ6IG5hbWVkID8gXCJuYW1lXCIgOiBcImhleFwiXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZVdDQUcyUGFybXMocGFybXMpIHtcbiAgICAvLyByZXR1cm4gdmFsaWQgV0NBRzIgcGFybXMgZm9yIGlzUmVhZGFibGUuXG4gICAgLy8gSWYgaW5wdXQgcGFybXMgYXJlIGludmFsaWQsIHJldHVybiB7XCJsZXZlbFwiOlwiQUFcIiwgXCJzaXplXCI6XCJzbWFsbFwifVxuICAgIHZhciBsZXZlbCwgc2l6ZTtcbiAgICBwYXJtcyA9IHBhcm1zIHx8IHtcImxldmVsXCI6XCJBQVwiLCBcInNpemVcIjpcInNtYWxsXCJ9O1xuICAgIGxldmVsID0gKHBhcm1zLmxldmVsIHx8IFwiQUFcIikudG9VcHBlckNhc2UoKTtcbiAgICBzaXplID0gKHBhcm1zLnNpemUgfHwgXCJzbWFsbFwiKS50b0xvd2VyQ2FzZSgpO1xuICAgIGlmIChsZXZlbCAhPT0gXCJBQVwiICYmIGxldmVsICE9PSBcIkFBQVwiKSB7XG4gICAgICAgIGxldmVsID0gXCJBQVwiO1xuICAgIH1cbiAgICBpZiAoc2l6ZSAhPT0gXCJzbWFsbFwiICYmIHNpemUgIT09IFwibGFyZ2VcIikge1xuICAgICAgICBzaXplID0gXCJzbWFsbFwiO1xuICAgIH1cbiAgICByZXR1cm4ge1wibGV2ZWxcIjpsZXZlbCwgXCJzaXplXCI6c2l6ZX07XG59XG5cbi8vIE5vZGU6IEV4cG9ydCBmdW5jdGlvblxuaWYgKHR5cGVvZiBtb2R1bGUgIT09IFwidW5kZWZpbmVkXCIgJiYgbW9kdWxlLmV4cG9ydHMpIHtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IHRpbnljb2xvcjtcbn1cbi8vIEFNRC9yZXF1aXJlanM6IERlZmluZSB0aGUgbW9kdWxlXG5lbHNlIGlmICh0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpIHtcbiAgICBkZWZpbmUoZnVuY3Rpb24gKCkge3JldHVybiB0aW55Y29sb3I7fSk7XG59XG4vLyBCcm93c2VyOiBFeHBvc2UgdG8gd2luZG93XG5lbHNlIHtcbiAgICB3aW5kb3cudGlueWNvbG9yID0gdGlueWNvbG9yO1xufVxuXG59KShNYXRoKTtcbiIsIlwidXNlIHN0cmljdFwiO1xuXG5mdW5jdGlvbiBfdHlwZW9mKG9iaikgeyBcIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mXCI7IGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIHR5cGVvZiBvYmo7IH07IH0gZWxzZSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajsgfTsgfSByZXR1cm4gX3R5cGVvZihvYmopOyB9XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IGNyZWF0ZTtcblxudmFyIFJlYWN0ID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcblxudmFyIF9pbmRleCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vaW5kZXhcIikpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyBpZiAodHlwZW9mIFdlYWtNYXAgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIG51bGw7IHZhciBjYWNoZSA9IG5ldyBXZWFrTWFwKCk7IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSA9IGZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgcmV0dXJuIGNhY2hlOyB9OyByZXR1cm4gY2FjaGU7IH1cblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqKSB7IGlmIChvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHsgcmV0dXJuIG9iajsgfSBpZiAob2JqID09PSBudWxsIHx8IF90eXBlb2Yob2JqKSAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygb2JqICE9PSBcImZ1bmN0aW9uXCIpIHsgcmV0dXJuIHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9IHZhciBjYWNoZSA9IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpOyBpZiAoY2FjaGUgJiYgY2FjaGUuaGFzKG9iaikpIHsgcmV0dXJuIGNhY2hlLmdldChvYmopOyB9IHZhciBuZXdPYmogPSB7fTsgdmFyIGhhc1Byb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOyBmb3IgKHZhciBrZXkgaW4gb2JqKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7IHZhciBkZXNjID0gaGFzUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiBudWxsOyBpZiAoZGVzYyAmJiAoZGVzYy5nZXQgfHwgZGVzYy5zZXQpKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXdPYmosIGtleSwgZGVzYyk7IH0gZWxzZSB7IG5ld09ialtrZXldID0gb2JqW2tleV07IH0gfSB9IG5ld09ialtcImRlZmF1bHRcIl0gPSBvYmo7IGlmIChjYWNoZSkgeyBjYWNoZS5zZXQob2JqLCBuZXdPYmopOyB9IHJldHVybiBuZXdPYmo7IH1cblxuZnVuY3Rpb24gX2V4dGVuZHMoKSB7IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTsgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH1cblxudmFyIF9fcmVzdCA9IHZvaWQgMCAmJiAodm9pZCAwKS5fX3Jlc3QgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgdmFyIHQgPSB7fTtcblxuICBmb3IgKHZhciBwIGluIHMpIHtcbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApIHRbcF0gPSBzW3BdO1xuICB9XG5cbiAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKSBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKSB0W3BbaV1dID0gc1twW2ldXTtcbiAgfVxuICByZXR1cm4gdDtcbn07XG5cbnZhciBjdXN0b21DYWNoZSA9IG5ldyBTZXQoKTtcblxuZnVuY3Rpb24gY3JlYXRlKCkge1xuICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge307XG4gIHZhciBzY3JpcHRVcmwgPSBvcHRpb25zLnNjcmlwdFVybCxcbiAgICAgIF9vcHRpb25zJGV4dHJhQ29tbW9uUCA9IG9wdGlvbnMuZXh0cmFDb21tb25Qcm9wcyxcbiAgICAgIGV4dHJhQ29tbW9uUHJvcHMgPSBfb3B0aW9ucyRleHRyYUNvbW1vblAgPT09IHZvaWQgMCA/IHt9IDogX29wdGlvbnMkZXh0cmFDb21tb25QO1xuICAvKipcbiAgICogRE9NIEFQSSByZXF1aXJlZC5cbiAgICogTWFrZSBzdXJlIGluIGJyb3dzZXIgZW52aXJvbm1lbnQuXG4gICAqIFRoZSBDdXN0b20gSWNvbiB3aWxsIGNyZWF0ZSBhIDxzY3JpcHQvPlxuICAgKiB0aGF0IGxvYWRzIFNWRyBzeW1ib2xzIGFuZCBpbnNlcnQgdGhlIFNWRyBFbGVtZW50IGludG8gdGhlIGRvY3VtZW50IGJvZHkuXG4gICAqL1xuXG4gIGlmICh0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBkb2N1bWVudC5jcmVhdGVFbGVtZW50ID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBzY3JpcHRVcmwgPT09ICdzdHJpbmcnICYmIHNjcmlwdFVybC5sZW5ndGggJiYgIWN1c3RvbUNhY2hlLmhhcyhzY3JpcHRVcmwpKSB7XG4gICAgdmFyIHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgIHNjcmlwdC5zZXRBdHRyaWJ1dGUoJ3NyYycsIHNjcmlwdFVybCk7XG4gICAgc2NyaXB0LnNldEF0dHJpYnV0ZSgnZGF0YS1uYW1lc3BhY2UnLCBzY3JpcHRVcmwpO1xuICAgIGN1c3RvbUNhY2hlLmFkZChzY3JpcHRVcmwpO1xuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcbiAgfVxuXG4gIHZhciBJY29uZm9udCA9IGZ1bmN0aW9uIEljb25mb250KHByb3BzKSB7XG4gICAgdmFyIHR5cGUgPSBwcm9wcy50eXBlLFxuICAgICAgICBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLFxuICAgICAgICByZXN0UHJvcHMgPSBfX3Jlc3QocHJvcHMsIFtcInR5cGVcIiwgXCJjaGlsZHJlblwiXSk7IC8vIGNvbXBvbmVudCA+IGNoaWxkcmVuID4gdHlwZVxuXG5cbiAgICB2YXIgY29udGVudCA9IG51bGw7XG5cbiAgICBpZiAocHJvcHMudHlwZSkge1xuICAgICAgY29udGVudCA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwidXNlXCIsIHtcbiAgICAgICAgeGxpbmtIcmVmOiBcIiNcIi5jb25jYXQodHlwZSlcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChjaGlsZHJlbikge1xuICAgICAgY29udGVudCA9IGNoaWxkcmVuO1xuICAgIH1cblxuICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfaW5kZXhbXCJkZWZhdWx0XCJdLCBfZXh0ZW5kcyh7fSwgZXh0cmFDb21tb25Qcm9wcywgcmVzdFByb3BzKSwgY29udGVudCk7XG4gIH07XG5cbiAgSWNvbmZvbnQuZGlzcGxheU5hbWUgPSAnSWNvbmZvbnQnO1xuICByZXR1cm4gSWNvbmZvbnQ7XG59IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmdldFRoZW1lRnJvbVR5cGVOYW1lID0gZ2V0VGhlbWVGcm9tVHlwZU5hbWU7XG5leHBvcnRzLnJlbW92ZVR5cGVUaGVtZSA9IHJlbW92ZVR5cGVUaGVtZTtcbmV4cG9ydHMud2l0aFRoZW1lU3VmZml4ID0gd2l0aFRoZW1lU3VmZml4O1xuZXhwb3J0cy5hbGlhcyA9IGFsaWFzO1xuZXhwb3J0cy5zdmdCYXNlUHJvcHMgPSB2b2lkIDA7XG5cbnZhciBfd2FybmluZyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uL191dGlsL3dhcm5pbmdcIikpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuLy8gVGhlc2UgcHJvcHMgbWFrZSBzdXJlIHRoYXQgdGhlIFNWRyBiZWhhdmlvdXJzIGxpa2UgZ2VuZXJhbCB0ZXh0LlxuLy8gUmVmZXJlbmNlOiBodHRwczovL2Jsb2cucHJvdG90eXByLmlvL2FsaWduLXN2Zy1pY29ucy10by10ZXh0LWFuZC1zYXktZ29vZGJ5ZS10by1mb250LWljb25zLWQ0NGIzZDdiMjZiNFxudmFyIHN2Z0Jhc2VQcm9wcyA9IHtcbiAgd2lkdGg6ICcxZW0nLFxuICBoZWlnaHQ6ICcxZW0nLFxuICBmaWxsOiAnY3VycmVudENvbG9yJyxcbiAgJ2FyaWEtaGlkZGVuJzogdHJ1ZSxcbiAgZm9jdXNhYmxlOiAnZmFsc2UnXG59O1xuZXhwb3J0cy5zdmdCYXNlUHJvcHMgPSBzdmdCYXNlUHJvcHM7XG52YXIgZmlsbFRlc3RlciA9IC8tZmlsbCQvO1xudmFyIG91dGxpbmVUZXN0ZXIgPSAvLW8kLztcbnZhciB0d29Ub25lVGVzdGVyID0gLy10d290b25lJC87XG5cbmZ1bmN0aW9uIGdldFRoZW1lRnJvbVR5cGVOYW1lKHR5cGUpIHtcbiAgdmFyIHJlc3VsdCA9IG51bGw7XG5cbiAgaWYgKGZpbGxUZXN0ZXIudGVzdCh0eXBlKSkge1xuICAgIHJlc3VsdCA9ICdmaWxsZWQnO1xuICB9IGVsc2UgaWYgKG91dGxpbmVUZXN0ZXIudGVzdCh0eXBlKSkge1xuICAgIHJlc3VsdCA9ICdvdXRsaW5lZCc7XG4gIH0gZWxzZSBpZiAodHdvVG9uZVRlc3Rlci50ZXN0KHR5cGUpKSB7XG4gICAgcmVzdWx0ID0gJ3R3b1RvbmUnO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gcmVtb3ZlVHlwZVRoZW1lKHR5cGUpIHtcbiAgcmV0dXJuIHR5cGUucmVwbGFjZShmaWxsVGVzdGVyLCAnJykucmVwbGFjZShvdXRsaW5lVGVzdGVyLCAnJykucmVwbGFjZSh0d29Ub25lVGVzdGVyLCAnJyk7XG59XG5cbmZ1bmN0aW9uIHdpdGhUaGVtZVN1ZmZpeCh0eXBlLCB0aGVtZSkge1xuICB2YXIgcmVzdWx0ID0gdHlwZTtcblxuICBpZiAodGhlbWUgPT09ICdmaWxsZWQnKSB7XG4gICAgcmVzdWx0ICs9ICctZmlsbCc7XG4gIH0gZWxzZSBpZiAodGhlbWUgPT09ICdvdXRsaW5lZCcpIHtcbiAgICByZXN1bHQgKz0gJy1vJztcbiAgfSBlbHNlIGlmICh0aGVtZSA9PT0gJ3R3b1RvbmUnKSB7XG4gICAgcmVzdWx0ICs9ICctdHdvdG9uZSc7XG4gIH0gZWxzZSB7XG4gICAgKDAsIF93YXJuaW5nW1wiZGVmYXVsdFwiXSkoZmFsc2UsICdJY29uJywgXCJUaGlzIGljb24gJ1wiLmNvbmNhdCh0eXBlLCBcIicgaGFzIHVua25vd24gdGhlbWUgJ1wiKS5jb25jYXQodGhlbWUsIFwiJ1wiKSk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufSAvLyBGb3IgYWxpYXMgb3IgY29tcGF0aWJpbGl0eVxuXG5cbmZ1bmN0aW9uIGFsaWFzKHR5cGUpIHtcbiAgdmFyIG5ld1R5cGUgPSB0eXBlO1xuXG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgJ2Nyb3NzJzpcbiAgICAgIG5ld1R5cGUgPSAnY2xvc2UnO1xuICAgICAgYnJlYWs7XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2FudC1kZXNpZ24vYW50LWRlc2lnbi9pc3N1ZXMvMTMwMDdcblxuICAgIGNhc2UgJ2ludGVyYXRpb24nOlxuICAgICAgbmV3VHlwZSA9ICdpbnRlcmFjdGlvbic7XG4gICAgICBicmVhaztcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vYW50LWRlc2lnbi9hbnQtZGVzaWduL2lzc3Vlcy8xNjgxMFxuXG4gICAgY2FzZSAnY2FubGVuZGFyJzpcbiAgICAgIG5ld1R5cGUgPSAnY2FsZW5kYXInO1xuICAgICAgYnJlYWs7XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2FudC1kZXNpZ24vYW50LWRlc2lnbi9pc3N1ZXMvMTc0NDhcblxuICAgIGNhc2UgJ2NvbHVtLWhlaWdodCc6XG4gICAgICBuZXdUeXBlID0gJ2NvbHVtbi1oZWlnaHQnO1xuICAgICAgYnJlYWs7XG5cbiAgICBkZWZhdWx0OlxuICB9XG5cbiAgKDAsIF93YXJuaW5nW1wiZGVmYXVsdFwiXSkobmV3VHlwZSA9PT0gdHlwZSwgJ0ljb24nLCBcIkljb24gJ1wiLmNvbmNhdCh0eXBlLCBcIicgd2FzIGEgdHlwbyBhbmQgaXMgbm93IGRlcHJlY2F0ZWQsIHBsZWFzZSB1c2UgJ1wiKS5jb25jYXQobmV3VHlwZSwgXCInIGluc3RlYWQuXCIpKTtcbiAgcmV0dXJuIG5ld1R5cGU7XG59IiwiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBSZWFjdFByb3BUeXBlc1NlY3JldCA9IHJlcXVpcmUoJy4vbGliL1JlYWN0UHJvcFR5cGVzU2VjcmV0Jyk7XG5cbmZ1bmN0aW9uIGVtcHR5RnVuY3Rpb24oKSB7fVxuZnVuY3Rpb24gZW1wdHlGdW5jdGlvbldpdGhSZXNldCgpIHt9XG5lbXB0eUZ1bmN0aW9uV2l0aFJlc2V0LnJlc2V0V2FybmluZ0NhY2hlID0gZW1wdHlGdW5jdGlvbjtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbigpIHtcbiAgZnVuY3Rpb24gc2hpbShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUsIHNlY3JldCkge1xuICAgIGlmIChzZWNyZXQgPT09IFJlYWN0UHJvcFR5cGVzU2VjcmV0KSB7XG4gICAgICAvLyBJdCBpcyBzdGlsbCBzYWZlIHdoZW4gY2FsbGVkIGZyb20gUmVhY3QuXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoXG4gICAgICAnQ2FsbGluZyBQcm9wVHlwZXMgdmFsaWRhdG9ycyBkaXJlY3RseSBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBgcHJvcC10eXBlc2AgcGFja2FnZS4gJyArXG4gICAgICAnVXNlIFByb3BUeXBlcy5jaGVja1Byb3BUeXBlcygpIHRvIGNhbGwgdGhlbS4gJyArXG4gICAgICAnUmVhZCBtb3JlIGF0IGh0dHA6Ly9mYi5tZS91c2UtY2hlY2stcHJvcC10eXBlcydcbiAgICApO1xuICAgIGVyci5uYW1lID0gJ0ludmFyaWFudCBWaW9sYXRpb24nO1xuICAgIHRocm93IGVycjtcbiAgfTtcbiAgc2hpbS5pc1JlcXVpcmVkID0gc2hpbTtcbiAgZnVuY3Rpb24gZ2V0U2hpbSgpIHtcbiAgICByZXR1cm4gc2hpbTtcbiAgfTtcbiAgLy8gSW1wb3J0YW50IVxuICAvLyBLZWVwIHRoaXMgbGlzdCBpbiBzeW5jIHdpdGggcHJvZHVjdGlvbiB2ZXJzaW9uIGluIGAuL2ZhY3RvcnlXaXRoVHlwZUNoZWNrZXJzLmpzYC5cbiAgdmFyIFJlYWN0UHJvcFR5cGVzID0ge1xuICAgIGFycmF5OiBzaGltLFxuICAgIGJvb2w6IHNoaW0sXG4gICAgZnVuYzogc2hpbSxcbiAgICBudW1iZXI6IHNoaW0sXG4gICAgb2JqZWN0OiBzaGltLFxuICAgIHN0cmluZzogc2hpbSxcbiAgICBzeW1ib2w6IHNoaW0sXG5cbiAgICBhbnk6IHNoaW0sXG4gICAgYXJyYXlPZjogZ2V0U2hpbSxcbiAgICBlbGVtZW50OiBzaGltLFxuICAgIGVsZW1lbnRUeXBlOiBzaGltLFxuICAgIGluc3RhbmNlT2Y6IGdldFNoaW0sXG4gICAgbm9kZTogc2hpbSxcbiAgICBvYmplY3RPZjogZ2V0U2hpbSxcbiAgICBvbmVPZjogZ2V0U2hpbSxcbiAgICBvbmVPZlR5cGU6IGdldFNoaW0sXG4gICAgc2hhcGU6IGdldFNoaW0sXG4gICAgZXhhY3Q6IGdldFNoaW0sXG5cbiAgICBjaGVja1Byb3BUeXBlczogZW1wdHlGdW5jdGlvbldpdGhSZXNldCxcbiAgICByZXNldFdhcm5pbmdDYWNoZTogZW1wdHlGdW5jdGlvblxuICB9O1xuXG4gIFJlYWN0UHJvcFR5cGVzLlByb3BUeXBlcyA9IFJlYWN0UHJvcFR5cGVzO1xuXG4gIHJldHVybiBSZWFjdFByb3BUeXBlcztcbn07XG4iLCIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIFJlYWN0UHJvcFR5cGVzU2VjcmV0ID0gJ1NFQ1JFVF9ET19OT1RfUEFTU19USElTX09SX1lPVV9XSUxMX0JFX0ZJUkVEJztcblxubW9kdWxlLmV4cG9ydHMgPSBSZWFjdFByb3BUeXBlc1NlY3JldDtcbiIsIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSB2b2lkIDA7XG5cbnZhciBfZGVmYXVsdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuLi9sb2NhbGUvZGVmYXVsdFwiKSk7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfVxuXG52YXIgX2RlZmF1bHQgPSBfZGVmYXVsdDJbXCJkZWZhdWx0XCJdO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBfZGVmYXVsdDsiLCIndXNlIHN0cmljdCc7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzWydkZWZhdWx0J10gPSB7XG4gIC8vIE9wdGlvbnMuanN4XG4gIGl0ZW1zX3Blcl9wYWdlOiAnLyBwYWdlJyxcbiAganVtcF90bzogJ0dvIHRvJyxcbiAganVtcF90b19jb25maXJtOiAnY29uZmlybScsXG4gIHBhZ2U6ICcnLFxuXG4gIC8vIFBhZ2luYXRpb24uanN4XG4gIHByZXZfcGFnZTogJ1ByZXZpb3VzIFBhZ2UnLFxuICBuZXh0X3BhZ2U6ICdOZXh0IFBhZ2UnLFxuICBwcmV2XzU6ICdQcmV2aW91cyA1IFBhZ2VzJyxcbiAgbmV4dF81OiAnTmV4dCA1IFBhZ2VzJyxcbiAgcHJldl8zOiAnUHJldmlvdXMgMyBQYWdlcycsXG4gIG5leHRfMzogJ05leHQgMyBQYWdlcydcbn07XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTsiLCIndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzWydkZWZhdWx0J10gPSB7XG4gIHRvZGF5OiAnVG9kYXknLFxuICBub3c6ICdOb3cnLFxuICBiYWNrVG9Ub2RheTogJ0JhY2sgdG8gdG9kYXknLFxuICBvazogJ09rJyxcbiAgY2xlYXI6ICdDbGVhcicsXG4gIG1vbnRoOiAnTW9udGgnLFxuICB5ZWFyOiAnWWVhcicsXG4gIHRpbWVTZWxlY3Q6ICdzZWxlY3QgdGltZScsXG4gIGRhdGVTZWxlY3Q6ICdzZWxlY3QgZGF0ZScsXG4gIHdlZWtTZWxlY3Q6ICdDaG9vc2UgYSB3ZWVrJyxcbiAgbW9udGhTZWxlY3Q6ICdDaG9vc2UgYSBtb250aCcsXG4gIHllYXJTZWxlY3Q6ICdDaG9vc2UgYSB5ZWFyJyxcbiAgZGVjYWRlU2VsZWN0OiAnQ2hvb3NlIGEgZGVjYWRlJyxcbiAgeWVhckZvcm1hdDogJ1lZWVknLFxuICBkYXRlRm9ybWF0OiAnTS9EL1lZWVknLFxuICBkYXlGb3JtYXQ6ICdEJyxcbiAgZGF0ZVRpbWVGb3JtYXQ6ICdNL0QvWVlZWSBISDptbTpzcycsXG4gIG1vbnRoQmVmb3JlWWVhcjogdHJ1ZSxcbiAgcHJldmlvdXNNb250aDogJ1ByZXZpb3VzIG1vbnRoIChQYWdlVXApJyxcbiAgbmV4dE1vbnRoOiAnTmV4dCBtb250aCAoUGFnZURvd24pJyxcbiAgcHJldmlvdXNZZWFyOiAnTGFzdCB5ZWFyIChDb250cm9sICsgbGVmdCknLFxuICBuZXh0WWVhcjogJ05leHQgeWVhciAoQ29udHJvbCArIHJpZ2h0KScsXG4gIHByZXZpb3VzRGVjYWRlOiAnTGFzdCBkZWNhZGUnLFxuICBuZXh0RGVjYWRlOiAnTmV4dCBkZWNhZGUnLFxuICBwcmV2aW91c0NlbnR1cnk6ICdMYXN0IGNlbnR1cnknLFxuICBuZXh0Q2VudHVyeTogJ05leHQgY2VudHVyeSdcbn07XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTsiLCJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gdm9pZCAwO1xuXG52YXIgX2VuX1VTID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vLi4vZGF0ZS1waWNrZXIvbG9jYWxlL2VuX1VTXCIpKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbnZhciBfZGVmYXVsdCA9IF9lbl9VU1tcImRlZmF1bHRcIl07XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IF9kZWZhdWx0OyIsIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5zZXRUd29Ub25lQ29sb3IgPSBzZXRUd29Ub25lQ29sb3I7XG5leHBvcnRzLmdldFR3b1RvbmVDb2xvciA9IGdldFR3b1RvbmVDb2xvcjtcblxudmFyIF9pY29uc1JlYWN0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGFudC1kZXNpZ24vaWNvbnMtcmVhY3RcIikpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gc2V0VHdvVG9uZUNvbG9yKHByaW1hcnlDb2xvcikge1xuICByZXR1cm4gX2ljb25zUmVhY3RbXCJkZWZhdWx0XCJdLnNldFR3b1RvbmVDb2xvcnMoe1xuICAgIHByaW1hcnlDb2xvcjogcHJpbWFyeUNvbG9yXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBnZXRUd29Ub25lQ29sb3IoKSB7XG4gIHZhciBjb2xvcnMgPSBfaWNvbnNSZWFjdFtcImRlZmF1bHRcIl0uZ2V0VHdvVG9uZUNvbG9ycygpO1xuXG4gIHJldHVybiBjb2xvcnMucHJpbWFyeUNvbG9yO1xufSIsIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBleHBvcnRzLkFOVF9NQVJLID0gdm9pZCAwO1xuXG52YXIgUmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgUHJvcFR5cGVzID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInByb3AtdHlwZXNcIikpO1xuXG52YXIgbW9tZW50ID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcIm1vbWVudFwiKSk7XG5cbnZhciBfaW50ZXJvcERlZmF1bHQgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuLi9fdXRpbC9pbnRlcm9wRGVmYXVsdFwiKSk7XG5cbnZhciBfbG9jYWxlID0gcmVxdWlyZShcIi4uL21vZGFsL2xvY2FsZVwiKTtcblxudmFyIF93YXJuaW5nID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vX3V0aWwvd2FybmluZ1wiKSk7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7IGlmICh0eXBlb2YgV2Vha01hcCAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gbnVsbDsgdmFyIGNhY2hlID0gbmV3IFdlYWtNYXAoKTsgX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlID0gZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyByZXR1cm4gY2FjaGU7IH07IHJldHVybiBjYWNoZTsgfVxuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChvYmopIHsgaWYgKG9iaiAmJiBvYmouX19lc01vZHVsZSkgeyByZXR1cm4gb2JqOyB9IGlmIChvYmogPT09IG51bGwgfHwgX3R5cGVvZihvYmopICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiBvYmogIT09IFwiZnVuY3Rpb25cIikgeyByZXR1cm4geyBcImRlZmF1bHRcIjogb2JqIH07IH0gdmFyIGNhY2hlID0gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCk7IGlmIChjYWNoZSAmJiBjYWNoZS5oYXMob2JqKSkgeyByZXR1cm4gY2FjaGUuZ2V0KG9iaik7IH0gdmFyIG5ld09iaiA9IHt9OyB2YXIgaGFzUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7IGZvciAodmFyIGtleSBpbiBvYmopIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHsgdmFyIGRlc2MgPSBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IG51bGw7IGlmIChkZXNjICYmIChkZXNjLmdldCB8fCBkZXNjLnNldCkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTsgfSBlbHNlIHsgbmV3T2JqW2tleV0gPSBvYmpba2V5XTsgfSB9IH0gbmV3T2JqW1wiZGVmYXVsdFwiXSA9IG9iajsgaWYgKGNhY2hlKSB7IGNhY2hlLnNldChvYmosIG5ld09iaik7IH0gcmV0dXJuIG5ld09iajsgfVxuXG5mdW5jdGlvbiBfdHlwZW9mKG9iaikgeyBcIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mXCI7IGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIHR5cGVvZiBvYmo7IH07IH0gZWxzZSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajsgfTsgfSByZXR1cm4gX3R5cGVvZihvYmopOyB9XG5cbmZ1bmN0aW9uIF9leHRlbmRzKCkgeyBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07IHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH1cblxuZnVuY3Rpb24gX2NyZWF0ZUNsYXNzKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIF9zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcyk7IH1cblxuZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgX3NldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IGZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7IG8uX19wcm90b19fID0gcDsgcmV0dXJuIG87IH07IHJldHVybiBfc2V0UHJvdG90eXBlT2YobywgcCk7IH1cblxuZnVuY3Rpb24gX2NyZWF0ZVN1cGVyKERlcml2ZWQpIHsgdmFyIGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QgPSBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCk7IHJldHVybiBmdW5jdGlvbiBfY3JlYXRlU3VwZXJJbnRlcm5hbCgpIHsgdmFyIFN1cGVyID0gX2dldFByb3RvdHlwZU9mKERlcml2ZWQpLCByZXN1bHQ7IGlmIChoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KSB7IHZhciBOZXdUYXJnZXQgPSBfZ2V0UHJvdG90eXBlT2YodGhpcykuY29uc3RydWN0b3I7IHJlc3VsdCA9IFJlZmxlY3QuY29uc3RydWN0KFN1cGVyLCBhcmd1bWVudHMsIE5ld1RhcmdldCk7IH0gZWxzZSB7IHJlc3VsdCA9IFN1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH0gcmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIHJlc3VsdCk7IH07IH1cblxuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkgeyBpZiAoY2FsbCAmJiAoX3R5cGVvZihjYWxsKSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSkgeyByZXR1cm4gY2FsbDsgfSByZXR1cm4gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKTsgfVxuXG5mdW5jdGlvbiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpIHsgaWYgKHNlbGYgPT09IHZvaWQgMCkgeyB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7IH0gcmV0dXJuIHNlbGY7IH1cblxuZnVuY3Rpb24gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpIHsgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcInVuZGVmaW5lZFwiIHx8ICFSZWZsZWN0LmNvbnN0cnVjdCkgcmV0dXJuIGZhbHNlOyBpZiAoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSkgcmV0dXJuIGZhbHNlOyBpZiAodHlwZW9mIFByb3h5ID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiB0cnVlOyB0cnkgeyBEYXRlLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFJlZmxlY3QuY29uc3RydWN0KERhdGUsIFtdLCBmdW5jdGlvbiAoKSB7fSkpOyByZXR1cm4gdHJ1ZTsgfSBjYXRjaCAoZSkgeyByZXR1cm4gZmFsc2U7IH0gfVxuXG5mdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyBfZ2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3QuZ2V0UHJvdG90eXBlT2YgOiBmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyByZXR1cm4gby5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKG8pOyB9OyByZXR1cm4gX2dldFByb3RvdHlwZU9mKG8pOyB9XG5cbnZhciBBTlRfTUFSSyA9ICdpbnRlcm5hbE1hcmsnO1xuZXhwb3J0cy5BTlRfTUFSSyA9IEFOVF9NQVJLO1xuXG5mdW5jdGlvbiBzZXRNb21lbnRMb2NhbGUobG9jYWxlKSB7XG4gIGlmIChsb2NhbGUgJiYgbG9jYWxlLmxvY2FsZSkge1xuICAgICgwLCBfaW50ZXJvcERlZmF1bHRbXCJkZWZhdWx0XCJdKShtb21lbnQpLmxvY2FsZShsb2NhbGUubG9jYWxlKTtcbiAgfSBlbHNlIHtcbiAgICAoMCwgX2ludGVyb3BEZWZhdWx0W1wiZGVmYXVsdFwiXSkobW9tZW50KS5sb2NhbGUoJ2VuJyk7XG4gIH1cbn1cblxudmFyIExvY2FsZVByb3ZpZGVyID0gLyojX19QVVJFX18qL2Z1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhMb2NhbGVQcm92aWRlciwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgdmFyIF9zdXBlciA9IF9jcmVhdGVTdXBlcihMb2NhbGVQcm92aWRlcik7XG5cbiAgZnVuY3Rpb24gTG9jYWxlUHJvdmlkZXIocHJvcHMpIHtcbiAgICB2YXIgX3RoaXM7XG5cbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgTG9jYWxlUHJvdmlkZXIpO1xuXG4gICAgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBwcm9wcyk7XG4gICAgc2V0TW9tZW50TG9jYWxlKHByb3BzLmxvY2FsZSk7XG4gICAgKDAsIF9sb2NhbGUuY2hhbmdlQ29uZmlybUxvY2FsZSkocHJvcHMubG9jYWxlICYmIHByb3BzLmxvY2FsZS5Nb2RhbCk7XG4gICAgKDAsIF93YXJuaW5nW1wiZGVmYXVsdFwiXSkocHJvcHMuX0FOVF9NQVJLX18gPT09IEFOVF9NQVJLLCAnTG9jYWxlUHJvdmlkZXInLCAnYExvY2FsZVByb3ZpZGVyYCBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIGBsb2NhbGVgIHdpdGggYENvbmZpZ1Byb3ZpZGVyYCBpbnN0ZWFkOiBodHRwOi8vdS5hbnQuZGVzaWduL2xvY2FsZScpO1xuICAgIHJldHVybiBfdGhpcztcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhMb2NhbGVQcm92aWRlciwgW3tcbiAgICBrZXk6IFwiZ2V0Q2hpbGRDb250ZXh0XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldENoaWxkQ29udGV4dCgpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGFudExvY2FsZTogX2V4dGVuZHMoX2V4dGVuZHMoe30sIHRoaXMucHJvcHMubG9jYWxlKSwge1xuICAgICAgICAgIGV4aXN0OiB0cnVlXG4gICAgICAgIH0pXG4gICAgICB9O1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJjb21wb25lbnREaWRVcGRhdGVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wcykge1xuICAgICAgdmFyIGxvY2FsZSA9IHRoaXMucHJvcHMubG9jYWxlO1xuXG4gICAgICBpZiAocHJldlByb3BzLmxvY2FsZSAhPT0gbG9jYWxlKSB7XG4gICAgICAgIHNldE1vbWVudExvY2FsZShsb2NhbGUpO1xuICAgICAgICAoMCwgX2xvY2FsZS5jaGFuZ2VDb25maXJtTG9jYWxlKShsb2NhbGUgJiYgbG9jYWxlLk1vZGFsKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiY29tcG9uZW50V2lsbFVubW91bnRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICAoMCwgX2xvY2FsZS5jaGFuZ2VDb25maXJtTG9jYWxlKSgpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJyZW5kZXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMuY2hpbGRyZW47XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIExvY2FsZVByb3ZpZGVyO1xufShSZWFjdC5Db21wb25lbnQpO1xuXG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IExvY2FsZVByb3ZpZGVyO1xuTG9jYWxlUHJvdmlkZXIucHJvcFR5cGVzID0ge1xuICBsb2NhbGU6IFByb3BUeXBlcy5vYmplY3Rcbn07XG5Mb2NhbGVQcm92aWRlci5kZWZhdWx0UHJvcHMgPSB7XG4gIGxvY2FsZToge31cbn07XG5Mb2NhbGVQcm92aWRlci5jaGlsZENvbnRleHRUeXBlcyA9IHtcbiAgYW50TG9jYWxlOiBQcm9wVHlwZXMub2JqZWN0XG59OyIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24obW9kdWxlKSB7XG5cdGlmICghbW9kdWxlLndlYnBhY2tQb2x5ZmlsbCkge1xuXHRcdG1vZHVsZS5kZXByZWNhdGUgPSBmdW5jdGlvbigpIHt9O1xuXHRcdG1vZHVsZS5wYXRocyA9IFtdO1xuXHRcdC8vIG1vZHVsZS5wYXJlbnQgPSB1bmRlZmluZWQgYnkgZGVmYXVsdFxuXHRcdGlmICghbW9kdWxlLmNoaWxkcmVuKSBtb2R1bGUuY2hpbGRyZW4gPSBbXTtcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkobW9kdWxlLCBcImxvYWRlZFwiLCB7XG5cdFx0XHRlbnVtZXJhYmxlOiB0cnVlLFxuXHRcdFx0Z2V0OiBmdW5jdGlvbigpIHtcblx0XHRcdFx0cmV0dXJuIG1vZHVsZS5sO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShtb2R1bGUsIFwiaWRcIiwge1xuXHRcdFx0ZW51bWVyYWJsZTogdHJ1ZSxcblx0XHRcdGdldDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdHJldHVybiBtb2R1bGUuaTtcblx0XHRcdH1cblx0XHR9KTtcblx0XHRtb2R1bGUud2VicGFja1BvbHlmaWxsID0gMTtcblx0fVxuXHRyZXR1cm4gbW9kdWxlO1xufTtcbiIsInZhciBtYXAgPSB7XG5cdFwiLi9hZlwiOiAxMTIsXG5cdFwiLi9hZi5qc1wiOiAxMTIsXG5cdFwiLi9hclwiOiAxMTMsXG5cdFwiLi9hci1kelwiOiAxMTQsXG5cdFwiLi9hci1kei5qc1wiOiAxMTQsXG5cdFwiLi9hci1rd1wiOiAxMTUsXG5cdFwiLi9hci1rdy5qc1wiOiAxMTUsXG5cdFwiLi9hci1seVwiOiAxMTYsXG5cdFwiLi9hci1seS5qc1wiOiAxMTYsXG5cdFwiLi9hci1tYVwiOiAxMTcsXG5cdFwiLi9hci1tYS5qc1wiOiAxMTcsXG5cdFwiLi9hci1zYVwiOiAxMTgsXG5cdFwiLi9hci1zYS5qc1wiOiAxMTgsXG5cdFwiLi9hci10blwiOiAxMTksXG5cdFwiLi9hci10bi5qc1wiOiAxMTksXG5cdFwiLi9hci5qc1wiOiAxMTMsXG5cdFwiLi9helwiOiAxMjAsXG5cdFwiLi9hei5qc1wiOiAxMjAsXG5cdFwiLi9iZVwiOiAxMjEsXG5cdFwiLi9iZS5qc1wiOiAxMjEsXG5cdFwiLi9iZ1wiOiAxMjIsXG5cdFwiLi9iZy5qc1wiOiAxMjIsXG5cdFwiLi9ibVwiOiAxMjMsXG5cdFwiLi9ibS5qc1wiOiAxMjMsXG5cdFwiLi9iblwiOiAxMjQsXG5cdFwiLi9ibi5qc1wiOiAxMjQsXG5cdFwiLi9ib1wiOiAxMjUsXG5cdFwiLi9iby5qc1wiOiAxMjUsXG5cdFwiLi9iclwiOiAxMjYsXG5cdFwiLi9ici5qc1wiOiAxMjYsXG5cdFwiLi9ic1wiOiAxMjcsXG5cdFwiLi9icy5qc1wiOiAxMjcsXG5cdFwiLi9jYVwiOiAxMjgsXG5cdFwiLi9jYS5qc1wiOiAxMjgsXG5cdFwiLi9jc1wiOiAxMjksXG5cdFwiLi9jcy5qc1wiOiAxMjksXG5cdFwiLi9jdlwiOiAxMzAsXG5cdFwiLi9jdi5qc1wiOiAxMzAsXG5cdFwiLi9jeVwiOiAxMzEsXG5cdFwiLi9jeS5qc1wiOiAxMzEsXG5cdFwiLi9kYVwiOiAxMzIsXG5cdFwiLi9kYS5qc1wiOiAxMzIsXG5cdFwiLi9kZVwiOiAxMzMsXG5cdFwiLi9kZS1hdFwiOiAxMzQsXG5cdFwiLi9kZS1hdC5qc1wiOiAxMzQsXG5cdFwiLi9kZS1jaFwiOiAxMzUsXG5cdFwiLi9kZS1jaC5qc1wiOiAxMzUsXG5cdFwiLi9kZS5qc1wiOiAxMzMsXG5cdFwiLi9kdlwiOiAxMzYsXG5cdFwiLi9kdi5qc1wiOiAxMzYsXG5cdFwiLi9lbFwiOiAxMzcsXG5cdFwiLi9lbC5qc1wiOiAxMzcsXG5cdFwiLi9lbi1hdVwiOiAxMzgsXG5cdFwiLi9lbi1hdS5qc1wiOiAxMzgsXG5cdFwiLi9lbi1jYVwiOiAxMzksXG5cdFwiLi9lbi1jYS5qc1wiOiAxMzksXG5cdFwiLi9lbi1nYlwiOiAxNDAsXG5cdFwiLi9lbi1nYi5qc1wiOiAxNDAsXG5cdFwiLi9lbi1pZVwiOiAxNDEsXG5cdFwiLi9lbi1pZS5qc1wiOiAxNDEsXG5cdFwiLi9lbi1pbFwiOiAxNDIsXG5cdFwiLi9lbi1pbC5qc1wiOiAxNDIsXG5cdFwiLi9lbi1pblwiOiAxNDMsXG5cdFwiLi9lbi1pbi5qc1wiOiAxNDMsXG5cdFwiLi9lbi1uelwiOiAxNDQsXG5cdFwiLi9lbi1uei5qc1wiOiAxNDQsXG5cdFwiLi9lbi1zZ1wiOiAxNDUsXG5cdFwiLi9lbi1zZy5qc1wiOiAxNDUsXG5cdFwiLi9lb1wiOiAxNDYsXG5cdFwiLi9lby5qc1wiOiAxNDYsXG5cdFwiLi9lc1wiOiAxNDcsXG5cdFwiLi9lcy1kb1wiOiAxNDgsXG5cdFwiLi9lcy1kby5qc1wiOiAxNDgsXG5cdFwiLi9lcy11c1wiOiAxNDksXG5cdFwiLi9lcy11cy5qc1wiOiAxNDksXG5cdFwiLi9lcy5qc1wiOiAxNDcsXG5cdFwiLi9ldFwiOiAxNTAsXG5cdFwiLi9ldC5qc1wiOiAxNTAsXG5cdFwiLi9ldVwiOiAxNTEsXG5cdFwiLi9ldS5qc1wiOiAxNTEsXG5cdFwiLi9mYVwiOiAxNTIsXG5cdFwiLi9mYS5qc1wiOiAxNTIsXG5cdFwiLi9maVwiOiAxNTMsXG5cdFwiLi9maS5qc1wiOiAxNTMsXG5cdFwiLi9maWxcIjogMTU0LFxuXHRcIi4vZmlsLmpzXCI6IDE1NCxcblx0XCIuL2ZvXCI6IDE1NSxcblx0XCIuL2ZvLmpzXCI6IDE1NSxcblx0XCIuL2ZyXCI6IDE1Nixcblx0XCIuL2ZyLWNhXCI6IDE1Nyxcblx0XCIuL2ZyLWNhLmpzXCI6IDE1Nyxcblx0XCIuL2ZyLWNoXCI6IDE1OCxcblx0XCIuL2ZyLWNoLmpzXCI6IDE1OCxcblx0XCIuL2ZyLmpzXCI6IDE1Nixcblx0XCIuL2Z5XCI6IDE1OSxcblx0XCIuL2Z5LmpzXCI6IDE1OSxcblx0XCIuL2dhXCI6IDE2MCxcblx0XCIuL2dhLmpzXCI6IDE2MCxcblx0XCIuL2dkXCI6IDE2MSxcblx0XCIuL2dkLmpzXCI6IDE2MSxcblx0XCIuL2dsXCI6IDE2Mixcblx0XCIuL2dsLmpzXCI6IDE2Mixcblx0XCIuL2dvbS1kZXZhXCI6IDE2Myxcblx0XCIuL2dvbS1kZXZhLmpzXCI6IDE2Myxcblx0XCIuL2dvbS1sYXRuXCI6IDE2NCxcblx0XCIuL2dvbS1sYXRuLmpzXCI6IDE2NCxcblx0XCIuL2d1XCI6IDE2NSxcblx0XCIuL2d1LmpzXCI6IDE2NSxcblx0XCIuL2hlXCI6IDE2Nixcblx0XCIuL2hlLmpzXCI6IDE2Nixcblx0XCIuL2hpXCI6IDE2Nyxcblx0XCIuL2hpLmpzXCI6IDE2Nyxcblx0XCIuL2hyXCI6IDE2OCxcblx0XCIuL2hyLmpzXCI6IDE2OCxcblx0XCIuL2h1XCI6IDE2OSxcblx0XCIuL2h1LmpzXCI6IDE2OSxcblx0XCIuL2h5LWFtXCI6IDE3MCxcblx0XCIuL2h5LWFtLmpzXCI6IDE3MCxcblx0XCIuL2lkXCI6IDE3MSxcblx0XCIuL2lkLmpzXCI6IDE3MSxcblx0XCIuL2lzXCI6IDE3Mixcblx0XCIuL2lzLmpzXCI6IDE3Mixcblx0XCIuL2l0XCI6IDE3Myxcblx0XCIuL2l0LWNoXCI6IDE3NCxcblx0XCIuL2l0LWNoLmpzXCI6IDE3NCxcblx0XCIuL2l0LmpzXCI6IDE3Myxcblx0XCIuL2phXCI6IDE3NSxcblx0XCIuL2phLmpzXCI6IDE3NSxcblx0XCIuL2p2XCI6IDE3Nixcblx0XCIuL2p2LmpzXCI6IDE3Nixcblx0XCIuL2thXCI6IDE3Nyxcblx0XCIuL2thLmpzXCI6IDE3Nyxcblx0XCIuL2trXCI6IDE3OCxcblx0XCIuL2trLmpzXCI6IDE3OCxcblx0XCIuL2ttXCI6IDE3OSxcblx0XCIuL2ttLmpzXCI6IDE3OSxcblx0XCIuL2tuXCI6IDE4MCxcblx0XCIuL2tuLmpzXCI6IDE4MCxcblx0XCIuL2tvXCI6IDE4MSxcblx0XCIuL2tvLmpzXCI6IDE4MSxcblx0XCIuL2t1XCI6IDE4Mixcblx0XCIuL2t1LmpzXCI6IDE4Mixcblx0XCIuL2t5XCI6IDE4Myxcblx0XCIuL2t5LmpzXCI6IDE4Myxcblx0XCIuL2xiXCI6IDE4NCxcblx0XCIuL2xiLmpzXCI6IDE4NCxcblx0XCIuL2xvXCI6IDE4NSxcblx0XCIuL2xvLmpzXCI6IDE4NSxcblx0XCIuL2x0XCI6IDE4Nixcblx0XCIuL2x0LmpzXCI6IDE4Nixcblx0XCIuL2x2XCI6IDE4Nyxcblx0XCIuL2x2LmpzXCI6IDE4Nyxcblx0XCIuL21lXCI6IDE4OCxcblx0XCIuL21lLmpzXCI6IDE4OCxcblx0XCIuL21pXCI6IDE4OSxcblx0XCIuL21pLmpzXCI6IDE4OSxcblx0XCIuL21rXCI6IDE5MCxcblx0XCIuL21rLmpzXCI6IDE5MCxcblx0XCIuL21sXCI6IDE5MSxcblx0XCIuL21sLmpzXCI6IDE5MSxcblx0XCIuL21uXCI6IDE5Mixcblx0XCIuL21uLmpzXCI6IDE5Mixcblx0XCIuL21yXCI6IDE5Myxcblx0XCIuL21yLmpzXCI6IDE5Myxcblx0XCIuL21zXCI6IDE5NCxcblx0XCIuL21zLW15XCI6IDE5NSxcblx0XCIuL21zLW15LmpzXCI6IDE5NSxcblx0XCIuL21zLmpzXCI6IDE5NCxcblx0XCIuL210XCI6IDE5Nixcblx0XCIuL210LmpzXCI6IDE5Nixcblx0XCIuL215XCI6IDE5Nyxcblx0XCIuL215LmpzXCI6IDE5Nyxcblx0XCIuL25iXCI6IDE5OCxcblx0XCIuL25iLmpzXCI6IDE5OCxcblx0XCIuL25lXCI6IDE5OSxcblx0XCIuL25lLmpzXCI6IDE5OSxcblx0XCIuL25sXCI6IDIwMCxcblx0XCIuL25sLWJlXCI6IDIwMSxcblx0XCIuL25sLWJlLmpzXCI6IDIwMSxcblx0XCIuL25sLmpzXCI6IDIwMCxcblx0XCIuL25uXCI6IDIwMixcblx0XCIuL25uLmpzXCI6IDIwMixcblx0XCIuL29jLWxuY1wiOiAyMDMsXG5cdFwiLi9vYy1sbmMuanNcIjogMjAzLFxuXHRcIi4vcGEtaW5cIjogMjA0LFxuXHRcIi4vcGEtaW4uanNcIjogMjA0LFxuXHRcIi4vcGxcIjogMjA1LFxuXHRcIi4vcGwuanNcIjogMjA1LFxuXHRcIi4vcHRcIjogMjA2LFxuXHRcIi4vcHQtYnJcIjogMjA3LFxuXHRcIi4vcHQtYnIuanNcIjogMjA3LFxuXHRcIi4vcHQuanNcIjogMjA2LFxuXHRcIi4vcm9cIjogMjA4LFxuXHRcIi4vcm8uanNcIjogMjA4LFxuXHRcIi4vcnVcIjogMjA5LFxuXHRcIi4vcnUuanNcIjogMjA5LFxuXHRcIi4vc2RcIjogMjEwLFxuXHRcIi4vc2QuanNcIjogMjEwLFxuXHRcIi4vc2VcIjogMjExLFxuXHRcIi4vc2UuanNcIjogMjExLFxuXHRcIi4vc2lcIjogMjEyLFxuXHRcIi4vc2kuanNcIjogMjEyLFxuXHRcIi4vc2tcIjogMjEzLFxuXHRcIi4vc2suanNcIjogMjEzLFxuXHRcIi4vc2xcIjogMjE0LFxuXHRcIi4vc2wuanNcIjogMjE0LFxuXHRcIi4vc3FcIjogMjE1LFxuXHRcIi4vc3EuanNcIjogMjE1LFxuXHRcIi4vc3JcIjogMjE2LFxuXHRcIi4vc3ItY3lybFwiOiAyMTcsXG5cdFwiLi9zci1jeXJsLmpzXCI6IDIxNyxcblx0XCIuL3NyLmpzXCI6IDIxNixcblx0XCIuL3NzXCI6IDIxOCxcblx0XCIuL3NzLmpzXCI6IDIxOCxcblx0XCIuL3N2XCI6IDIxOSxcblx0XCIuL3N2LmpzXCI6IDIxOSxcblx0XCIuL3N3XCI6IDIyMCxcblx0XCIuL3N3LmpzXCI6IDIyMCxcblx0XCIuL3RhXCI6IDIyMSxcblx0XCIuL3RhLmpzXCI6IDIyMSxcblx0XCIuL3RlXCI6IDIyMixcblx0XCIuL3RlLmpzXCI6IDIyMixcblx0XCIuL3RldFwiOiAyMjMsXG5cdFwiLi90ZXQuanNcIjogMjIzLFxuXHRcIi4vdGdcIjogMjI0LFxuXHRcIi4vdGcuanNcIjogMjI0LFxuXHRcIi4vdGhcIjogMjI1LFxuXHRcIi4vdGguanNcIjogMjI1LFxuXHRcIi4vdGtcIjogMjI2LFxuXHRcIi4vdGsuanNcIjogMjI2LFxuXHRcIi4vdGwtcGhcIjogMjI3LFxuXHRcIi4vdGwtcGguanNcIjogMjI3LFxuXHRcIi4vdGxoXCI6IDIyOCxcblx0XCIuL3RsaC5qc1wiOiAyMjgsXG5cdFwiLi90clwiOiAyMjksXG5cdFwiLi90ci5qc1wiOiAyMjksXG5cdFwiLi90emxcIjogMjMwLFxuXHRcIi4vdHpsLmpzXCI6IDIzMCxcblx0XCIuL3R6bVwiOiAyMzEsXG5cdFwiLi90em0tbGF0blwiOiAyMzIsXG5cdFwiLi90em0tbGF0bi5qc1wiOiAyMzIsXG5cdFwiLi90em0uanNcIjogMjMxLFxuXHRcIi4vdWctY25cIjogMjMzLFxuXHRcIi4vdWctY24uanNcIjogMjMzLFxuXHRcIi4vdWtcIjogMjM0LFxuXHRcIi4vdWsuanNcIjogMjM0LFxuXHRcIi4vdXJcIjogMjM1LFxuXHRcIi4vdXIuanNcIjogMjM1LFxuXHRcIi4vdXpcIjogMjM2LFxuXHRcIi4vdXotbGF0blwiOiAyMzcsXG5cdFwiLi91ei1sYXRuLmpzXCI6IDIzNyxcblx0XCIuL3V6LmpzXCI6IDIzNixcblx0XCIuL3ZpXCI6IDIzOCxcblx0XCIuL3ZpLmpzXCI6IDIzOCxcblx0XCIuL3gtcHNldWRvXCI6IDIzOSxcblx0XCIuL3gtcHNldWRvLmpzXCI6IDIzOSxcblx0XCIuL3lvXCI6IDI0MCxcblx0XCIuL3lvLmpzXCI6IDI0MCxcblx0XCIuL3poLWNuXCI6IDI0MSxcblx0XCIuL3poLWNuLmpzXCI6IDI0MSxcblx0XCIuL3poLWhrXCI6IDI0Mixcblx0XCIuL3poLWhrLmpzXCI6IDI0Mixcblx0XCIuL3poLW1vXCI6IDI0Myxcblx0XCIuL3poLW1vLmpzXCI6IDI0Myxcblx0XCIuL3poLXR3XCI6IDI0NCxcblx0XCIuL3poLXR3LmpzXCI6IDI0NFxufTtcblxuXG5mdW5jdGlvbiB3ZWJwYWNrQ29udGV4dChyZXEpIHtcblx0dmFyIGlkID0gd2VicGFja0NvbnRleHRSZXNvbHZlKHJlcSk7XG5cdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKGlkKTtcbn1cbmZ1bmN0aW9uIHdlYnBhY2tDb250ZXh0UmVzb2x2ZShyZXEpIHtcblx0aWYoIV9fd2VicGFja19yZXF1aXJlX18ubyhtYXAsIHJlcSkpIHtcblx0XHR2YXIgZSA9IG5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIgKyByZXEgKyBcIidcIik7XG5cdFx0ZS5jb2RlID0gJ01PRFVMRV9OT1RfRk9VTkQnO1xuXHRcdHRocm93IGU7XG5cdH1cblx0cmV0dXJuIG1hcFtyZXFdO1xufVxud2VicGFja0NvbnRleHQua2V5cyA9IGZ1bmN0aW9uIHdlYnBhY2tDb250ZXh0S2V5cygpIHtcblx0cmV0dXJuIE9iamVjdC5rZXlzKG1hcCk7XG59O1xud2VicGFja0NvbnRleHQucmVzb2x2ZSA9IHdlYnBhY2tDb250ZXh0UmVzb2x2ZTtcbm1vZHVsZS5leHBvcnRzID0gd2VicGFja0NvbnRleHQ7XG53ZWJwYWNrQ29udGV4dC5pZCA9IDM1MjsiLCJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gaW50ZXJvcERlZmF1bHQ7XG5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9tb21lbnQvbW9tZW50L2lzc3Vlcy8zNjUwXG4vLyBzaW5jZSB3ZSBhcmUgdXNpbmcgdHMgMy41LjEsIGl0IHNob3VsZCBiZSBzYWZlIHRvIHJlbW92ZS5cbmZ1bmN0aW9uIGludGVyb3BEZWZhdWx0KG0pIHtcbiAgcmV0dXJuIG1bXCJkZWZhdWx0XCJdIHx8IG07XG59IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmNoYW5nZUNvbmZpcm1Mb2NhbGUgPSBjaGFuZ2VDb25maXJtTG9jYWxlO1xuZXhwb3J0cy5nZXRDb25maXJtTG9jYWxlID0gZ2V0Q29uZmlybUxvY2FsZTtcblxudmFyIF9kZWZhdWx0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vbG9jYWxlL2RlZmF1bHRcIikpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2V4dGVuZHMoKSB7IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTsgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH1cblxudmFyIHJ1bnRpbWVMb2NhbGUgPSBfZXh0ZW5kcyh7fSwgX2RlZmF1bHRbXCJkZWZhdWx0XCJdLk1vZGFsKTtcblxuZnVuY3Rpb24gY2hhbmdlQ29uZmlybUxvY2FsZShuZXdMb2NhbGUpIHtcbiAgaWYgKG5ld0xvY2FsZSkge1xuICAgIHJ1bnRpbWVMb2NhbGUgPSBfZXh0ZW5kcyhfZXh0ZW5kcyh7fSwgcnVudGltZUxvY2FsZSksIG5ld0xvY2FsZSk7XG4gIH0gZWxzZSB7XG4gICAgcnVudGltZUxvY2FsZSA9IF9leHRlbmRzKHt9LCBfZGVmYXVsdFtcImRlZmF1bHRcIl0uTW9kYWwpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldENvbmZpcm1Mb2NhbGUoKSB7XG4gIHJldHVybiBydW50aW1lTG9jYWxlO1xufSIsIlwidXNlIHN0cmljdFwiO1xuXG5mdW5jdGlvbiBfdHlwZW9mKG9iaikgeyBcIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mXCI7IGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIHR5cGVvZiBvYmo7IH07IH0gZWxzZSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajsgfTsgfSByZXR1cm4gX3R5cGVvZihvYmopOyB9XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLndpdGhDb25maWdDb25zdW1lciA9IHdpdGhDb25maWdDb25zdW1lcjtcbmV4cG9ydHMuQ29uZmlnQ29uc3VtZXIgPSBleHBvcnRzLkNvbmZpZ0NvbnRleHQgPSB2b2lkIDA7XG5cbnZhciBSZWFjdCA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5cbnZhciBfY3JlYXRlUmVhY3RDb250ZXh0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGFudC1kZXNpZ24vY3JlYXRlLXJlYWN0LWNvbnRleHRcIikpO1xuXG52YXIgX3JlbmRlckVtcHR5ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi9yZW5kZXJFbXB0eVwiKSk7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7IGlmICh0eXBlb2YgV2Vha01hcCAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gbnVsbDsgdmFyIGNhY2hlID0gbmV3IFdlYWtNYXAoKTsgX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlID0gZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyByZXR1cm4gY2FjaGU7IH07IHJldHVybiBjYWNoZTsgfVxuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChvYmopIHsgaWYgKG9iaiAmJiBvYmouX19lc01vZHVsZSkgeyByZXR1cm4gb2JqOyB9IGlmIChvYmogPT09IG51bGwgfHwgX3R5cGVvZihvYmopICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiBvYmogIT09IFwiZnVuY3Rpb25cIikgeyByZXR1cm4geyBcImRlZmF1bHRcIjogb2JqIH07IH0gdmFyIGNhY2hlID0gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCk7IGlmIChjYWNoZSAmJiBjYWNoZS5oYXMob2JqKSkgeyByZXR1cm4gY2FjaGUuZ2V0KG9iaik7IH0gdmFyIG5ld09iaiA9IHt9OyB2YXIgaGFzUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7IGZvciAodmFyIGtleSBpbiBvYmopIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHsgdmFyIGRlc2MgPSBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IG51bGw7IGlmIChkZXNjICYmIChkZXNjLmdldCB8fCBkZXNjLnNldCkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTsgfSBlbHNlIHsgbmV3T2JqW2tleV0gPSBvYmpba2V5XTsgfSB9IH0gbmV3T2JqW1wiZGVmYXVsdFwiXSA9IG9iajsgaWYgKGNhY2hlKSB7IGNhY2hlLnNldChvYmosIG5ld09iaik7IH0gcmV0dXJuIG5ld09iajsgfVxuXG5mdW5jdGlvbiBfZXh0ZW5kcygpIHsgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9OyByZXR1cm4gX2V4dGVuZHMuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfVxuXG52YXIgQ29uZmlnQ29udGV4dCA9ICgwLCBfY3JlYXRlUmVhY3RDb250ZXh0W1wiZGVmYXVsdFwiXSkoe1xuICAvLyBXZSBwcm92aWRlIGEgZGVmYXVsdCBmdW5jdGlvbiBmb3IgQ29udGV4dCB3aXRob3V0IHByb3ZpZGVyXG4gIGdldFByZWZpeENsczogZnVuY3Rpb24gZ2V0UHJlZml4Q2xzKHN1ZmZpeENscywgY3VzdG9taXplUHJlZml4Q2xzKSB7XG4gICAgaWYgKGN1c3RvbWl6ZVByZWZpeENscykgcmV0dXJuIGN1c3RvbWl6ZVByZWZpeENscztcbiAgICByZXR1cm4gXCJhbnQtXCIuY29uY2F0KHN1ZmZpeENscyk7XG4gIH0sXG4gIHJlbmRlckVtcHR5OiBfcmVuZGVyRW1wdHlbXCJkZWZhdWx0XCJdXG59KTtcbmV4cG9ydHMuQ29uZmlnQ29udGV4dCA9IENvbmZpZ0NvbnRleHQ7XG52YXIgQ29uZmlnQ29uc3VtZXIgPSBDb25maWdDb250ZXh0LkNvbnN1bWVyO1xuZXhwb3J0cy5Db25maWdDb25zdW1lciA9IENvbmZpZ0NvbnN1bWVyO1xuXG5mdW5jdGlvbiB3aXRoQ29uZmlnQ29uc3VtZXIoY29uZmlnKSB7XG4gIHJldHVybiBmdW5jdGlvbiB3aXRoQ29uZmlnQ29uc3VtZXJGdW5jKENvbXBvbmVudCkge1xuICAgIC8vIFdyYXAgd2l0aCBDb25maWdDb25zdW1lci4gU2luY2Ugd2UgbmVlZCBjb21wYXRpYmxlIHdpdGggcmVhY3QgMTUsIGJlIGNhcmUgd2hlbiB1c2luZyByZWYgbWV0aG9kc1xuICAgIHZhciBTRkMgPSBmdW5jdGlvbiBTRkMocHJvcHMpIHtcbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChDb25maWdDb25zdW1lciwgbnVsbCwgZnVuY3Rpb24gKGNvbmZpZ1Byb3BzKSB7XG4gICAgICAgIHZhciBiYXNpY1ByZWZpeENscyA9IGNvbmZpZy5wcmVmaXhDbHM7XG4gICAgICAgIHZhciBnZXRQcmVmaXhDbHMgPSBjb25maWdQcm9wcy5nZXRQcmVmaXhDbHM7XG4gICAgICAgIHZhciBjdXN0b21pemVQcmVmaXhDbHMgPSBwcm9wcy5wcmVmaXhDbHM7XG4gICAgICAgIHZhciBwcmVmaXhDbHMgPSBnZXRQcmVmaXhDbHMoYmFzaWNQcmVmaXhDbHMsIGN1c3RvbWl6ZVByZWZpeENscyk7XG4gICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChDb21wb25lbnQsIF9leHRlbmRzKHt9LCBjb25maWdQcm9wcywgcHJvcHMsIHtcbiAgICAgICAgICBwcmVmaXhDbHM6IHByZWZpeENsc1xuICAgICAgICB9KSk7XG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgdmFyIGNvbnMgPSBDb21wb25lbnQuY29uc3RydWN0b3I7XG4gICAgdmFyIG5hbWUgPSBjb25zICYmIGNvbnMuZGlzcGxheU5hbWUgfHwgQ29tcG9uZW50Lm5hbWUgfHwgJ0NvbXBvbmVudCc7XG4gICAgU0ZDLmRpc3BsYXlOYW1lID0gXCJ3aXRoQ29uZmlnQ29uc3VtZXIoXCIuY29uY2F0KG5hbWUsIFwiKVwiKTtcbiAgICByZXR1cm4gU0ZDO1xuICB9O1xufSIsIid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxudmFyIF9yZWFjdCA9IHJlcXVpcmUoJ3JlYWN0Jyk7XG5cbnZhciBfcmVhY3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcmVhY3QpO1xuXG52YXIgX3Byb3BUeXBlcyA9IHJlcXVpcmUoJ3Byb3AtdHlwZXMnKTtcblxudmFyIF9wcm9wVHlwZXMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcHJvcFR5cGVzKTtcblxudmFyIF9ndWQgPSByZXF1aXJlKCdndWQnKTtcblxudmFyIF9ndWQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfZ3VkKTtcblxudmFyIF93YXJuaW5nID0gcmVxdWlyZSgnd2FybmluZycpO1xuXG52YXIgX3dhcm5pbmcyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfd2FybmluZyk7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbmZ1bmN0aW9uIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHNlbGYsIGNhbGwpIHsgaWYgKCFzZWxmKSB7IHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTsgfSByZXR1cm4gY2FsbCAmJiAodHlwZW9mIGNhbGwgPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIGNhbGwgPT09IFwiZnVuY3Rpb25cIikgPyBjYWxsIDogc2VsZjsgfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSBcImZ1bmN0aW9uXCIgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCBcIiArIHR5cGVvZiBzdXBlckNsYXNzKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCBlbnVtZXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LnNldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKSA6IHN1YkNsYXNzLl9fcHJvdG9fXyA9IHN1cGVyQ2xhc3M7IH1cblxudmFyIE1BWF9TSUdORURfMzFfQklUX0lOVCA9IDEwNzM3NDE4MjM7XG5cbi8vIElubGluZWQgT2JqZWN0LmlzIHBvbHlmaWxsLlxuLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvT2JqZWN0L2lzXG5mdW5jdGlvbiBvYmplY3RJcyh4LCB5KSB7XG4gIGlmICh4ID09PSB5KSB7XG4gICAgcmV0dXJuIHggIT09IDAgfHwgMSAvIHggPT09IDEgLyB5O1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB4ICE9PSB4ICYmIHkgIT09IHk7XG4gIH1cbn1cblxuZnVuY3Rpb24gY3JlYXRlRXZlbnRFbWl0dGVyKHZhbHVlKSB7XG4gIHZhciBoYW5kbGVycyA9IFtdO1xuICByZXR1cm4ge1xuICAgIG9uOiBmdW5jdGlvbiBvbihoYW5kbGVyKSB7XG4gICAgICBoYW5kbGVycy5wdXNoKGhhbmRsZXIpO1xuICAgIH0sXG4gICAgb2ZmOiBmdW5jdGlvbiBvZmYoaGFuZGxlcikge1xuICAgICAgaGFuZGxlcnMgPSBoYW5kbGVycy5maWx0ZXIoZnVuY3Rpb24gKGgpIHtcbiAgICAgICAgcmV0dXJuIGggIT09IGhhbmRsZXI7XG4gICAgICB9KTtcbiAgICB9LFxuICAgIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0sXG4gICAgc2V0OiBmdW5jdGlvbiBzZXQobmV3VmFsdWUsIGNoYW5nZWRCaXRzKSB7XG4gICAgICB2YWx1ZSA9IG5ld1ZhbHVlO1xuICAgICAgaGFuZGxlcnMuZm9yRWFjaChmdW5jdGlvbiAoaGFuZGxlcikge1xuICAgICAgICByZXR1cm4gaGFuZGxlcih2YWx1ZSwgY2hhbmdlZEJpdHMpO1xuICAgICAgfSk7XG4gICAgfVxuICB9O1xufVxuXG5mdW5jdGlvbiBvbmx5Q2hpbGQoY2hpbGRyZW4pIHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pID8gY2hpbGRyZW5bMF0gOiBjaGlsZHJlbjtcbn1cblxuZnVuY3Rpb24gY3JlYXRlUmVhY3RDb250ZXh0KGRlZmF1bHRWYWx1ZSwgY2FsY3VsYXRlQ2hhbmdlZEJpdHMpIHtcbiAgdmFyIF9Qcm92aWRlciRjaGlsZENvbnRleCwgX0NvbnN1bWVyJGNvbnRleHRUeXBlO1xuXG4gIHZhciBjb250ZXh0UHJvcCA9ICdfX2NyZWF0ZS1yZWFjdC1jb250ZXh0LScgKyAoMCwgX2d1ZDIuZGVmYXVsdCkoKSArICdfXyc7XG5cbiAgdmFyIFByb3ZpZGVyID0gZnVuY3Rpb24gKF9Db21wb25lbnQpIHtcbiAgICBfaW5oZXJpdHMoUHJvdmlkZXIsIF9Db21wb25lbnQpO1xuXG4gICAgZnVuY3Rpb24gUHJvdmlkZXIoKSB7XG4gICAgICB2YXIgX3RlbXAsIF90aGlzLCBfcmV0O1xuXG4gICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUHJvdmlkZXIpO1xuXG4gICAgICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IEFycmF5KF9sZW4pLCBfa2V5ID0gMDsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgICAgICBhcmdzW19rZXldID0gYXJndW1lbnRzW19rZXldO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gX3JldCA9IChfdGVtcCA9IChfdGhpcyA9IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIF9Db21wb25lbnQuY2FsbC5hcHBseShfQ29tcG9uZW50LCBbdGhpc10uY29uY2F0KGFyZ3MpKSksIF90aGlzKSwgX3RoaXMuZW1pdHRlciA9IGNyZWF0ZUV2ZW50RW1pdHRlcihfdGhpcy5wcm9wcy52YWx1ZSksIF90ZW1wKSwgX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oX3RoaXMsIF9yZXQpO1xuICAgIH1cblxuICAgIFByb3ZpZGVyLnByb3RvdHlwZS5nZXRDaGlsZENvbnRleHQgPSBmdW5jdGlvbiBnZXRDaGlsZENvbnRleHQoKSB7XG4gICAgICB2YXIgX3JlZjtcblxuICAgICAgcmV0dXJuIF9yZWYgPSB7fSwgX3JlZltjb250ZXh0UHJvcF0gPSB0aGlzLmVtaXR0ZXIsIF9yZWY7XG4gICAgfTtcblxuICAgIFByb3ZpZGVyLnByb3RvdHlwZS5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzID0gZnVuY3Rpb24gY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXh0UHJvcHMpIHtcbiAgICAgIGlmICh0aGlzLnByb3BzLnZhbHVlICE9PSBuZXh0UHJvcHMudmFsdWUpIHtcbiAgICAgICAgdmFyIG9sZFZhbHVlID0gdGhpcy5wcm9wcy52YWx1ZTtcbiAgICAgICAgdmFyIG5ld1ZhbHVlID0gbmV4dFByb3BzLnZhbHVlO1xuICAgICAgICB2YXIgY2hhbmdlZEJpdHMgPSB2b2lkIDA7XG5cbiAgICAgICAgaWYgKG9iamVjdElzKG9sZFZhbHVlLCBuZXdWYWx1ZSkpIHtcbiAgICAgICAgICBjaGFuZ2VkQml0cyA9IDA7IC8vIE5vIGNoYW5nZVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNoYW5nZWRCaXRzID0gdHlwZW9mIGNhbGN1bGF0ZUNoYW5nZWRCaXRzID09PSAnZnVuY3Rpb24nID8gY2FsY3VsYXRlQ2hhbmdlZEJpdHMob2xkVmFsdWUsIG5ld1ZhbHVlKSA6IE1BWF9TSUdORURfMzFfQklUX0lOVDtcbiAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgICAgKDAsIF93YXJuaW5nMi5kZWZhdWx0KSgoY2hhbmdlZEJpdHMgJiBNQVhfU0lHTkVEXzMxX0JJVF9JTlQpID09PSBjaGFuZ2VkQml0cywgJ2NhbGN1bGF0ZUNoYW5nZWRCaXRzOiBFeHBlY3RlZCB0aGUgcmV0dXJuIHZhbHVlIHRvIGJlIGEgJyArICczMS1iaXQgaW50ZWdlci4gSW5zdGVhZCByZWNlaXZlZDogJXMnLCBjaGFuZ2VkQml0cyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY2hhbmdlZEJpdHMgfD0gMDtcblxuICAgICAgICAgIGlmIChjaGFuZ2VkQml0cyAhPT0gMCkge1xuICAgICAgICAgICAgdGhpcy5lbWl0dGVyLnNldChuZXh0UHJvcHMudmFsdWUsIGNoYW5nZWRCaXRzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuXG4gICAgUHJvdmlkZXIucHJvdG90eXBlLnJlbmRlciA9IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLmNoaWxkcmVuO1xuICAgIH07XG5cbiAgICByZXR1cm4gUHJvdmlkZXI7XG4gIH0oX3JlYWN0LkNvbXBvbmVudCk7XG5cbiAgUHJvdmlkZXIuY2hpbGRDb250ZXh0VHlwZXMgPSAoX1Byb3ZpZGVyJGNoaWxkQ29udGV4ID0ge30sIF9Qcm92aWRlciRjaGlsZENvbnRleFtjb250ZXh0UHJvcF0gPSBfcHJvcFR5cGVzMi5kZWZhdWx0Lm9iamVjdC5pc1JlcXVpcmVkLCBfUHJvdmlkZXIkY2hpbGRDb250ZXgpO1xuXG4gIHZhciBDb25zdW1lciA9IGZ1bmN0aW9uIChfQ29tcG9uZW50Mikge1xuICAgIF9pbmhlcml0cyhDb25zdW1lciwgX0NvbXBvbmVudDIpO1xuXG4gICAgZnVuY3Rpb24gQ29uc3VtZXIoKSB7XG4gICAgICB2YXIgX3RlbXAyLCBfdGhpczIsIF9yZXQyO1xuXG4gICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgQ29uc3VtZXIpO1xuXG4gICAgICBmb3IgKHZhciBfbGVuMiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBBcnJheShfbGVuMiksIF9rZXkyID0gMDsgX2tleTIgPCBfbGVuMjsgX2tleTIrKykge1xuICAgICAgICBhcmdzW19rZXkyXSA9IGFyZ3VtZW50c1tfa2V5Ml07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBfcmV0MiA9IChfdGVtcDIgPSAoX3RoaXMyID0gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgX0NvbXBvbmVudDIuY2FsbC5hcHBseShfQ29tcG9uZW50MiwgW3RoaXNdLmNvbmNhdChhcmdzKSkpLCBfdGhpczIpLCBfdGhpczIuc3RhdGUgPSB7XG4gICAgICAgIHZhbHVlOiBfdGhpczIuZ2V0VmFsdWUoKVxuICAgICAgfSwgX3RoaXMyLm9uVXBkYXRlID0gZnVuY3Rpb24gKG5ld1ZhbHVlLCBjaGFuZ2VkQml0cykge1xuICAgICAgICB2YXIgb2JzZXJ2ZWRCaXRzID0gX3RoaXMyLm9ic2VydmVkQml0cyB8IDA7XG4gICAgICAgIGlmICgob2JzZXJ2ZWRCaXRzICYgY2hhbmdlZEJpdHMpICE9PSAwKSB7XG4gICAgICAgICAgX3RoaXMyLnNldFN0YXRlKHsgdmFsdWU6IF90aGlzMi5nZXRWYWx1ZSgpIH0pO1xuICAgICAgICB9XG4gICAgICB9LCBfdGVtcDIpLCBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihfdGhpczIsIF9yZXQyKTtcbiAgICB9XG5cbiAgICBDb25zdW1lci5wcm90b3R5cGUuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyA9IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobmV4dFByb3BzKSB7XG4gICAgICB2YXIgb2JzZXJ2ZWRCaXRzID0gbmV4dFByb3BzLm9ic2VydmVkQml0cztcblxuICAgICAgdGhpcy5vYnNlcnZlZEJpdHMgPSBvYnNlcnZlZEJpdHMgPT09IHVuZGVmaW5lZCB8fCBvYnNlcnZlZEJpdHMgPT09IG51bGwgPyBNQVhfU0lHTkVEXzMxX0JJVF9JTlQgLy8gU3Vic2NyaWJlIHRvIGFsbCBjaGFuZ2VzIGJ5IGRlZmF1bHRcbiAgICAgIDogb2JzZXJ2ZWRCaXRzO1xuICAgIH07XG5cbiAgICBDb25zdW1lci5wcm90b3R5cGUuY29tcG9uZW50RGlkTW91bnQgPSBmdW5jdGlvbiBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgIGlmICh0aGlzLmNvbnRleHRbY29udGV4dFByb3BdKSB7XG4gICAgICAgIHRoaXMuY29udGV4dFtjb250ZXh0UHJvcF0ub24odGhpcy5vblVwZGF0ZSk7XG4gICAgICB9XG4gICAgICB2YXIgb2JzZXJ2ZWRCaXRzID0gdGhpcy5wcm9wcy5vYnNlcnZlZEJpdHM7XG5cbiAgICAgIHRoaXMub2JzZXJ2ZWRCaXRzID0gb2JzZXJ2ZWRCaXRzID09PSB1bmRlZmluZWQgfHwgb2JzZXJ2ZWRCaXRzID09PSBudWxsID8gTUFYX1NJR05FRF8zMV9CSVRfSU5UIC8vIFN1YnNjcmliZSB0byBhbGwgY2hhbmdlcyBieSBkZWZhdWx0XG4gICAgICA6IG9ic2VydmVkQml0cztcbiAgICB9O1xuXG4gICAgQ29uc3VtZXIucHJvdG90eXBlLmNvbXBvbmVudFdpbGxVbm1vdW50ID0gZnVuY3Rpb24gY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICBpZiAodGhpcy5jb250ZXh0W2NvbnRleHRQcm9wXSkge1xuICAgICAgICB0aGlzLmNvbnRleHRbY29udGV4dFByb3BdLm9mZih0aGlzLm9uVXBkYXRlKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgQ29uc3VtZXIucHJvdG90eXBlLmdldFZhbHVlID0gZnVuY3Rpb24gZ2V0VmFsdWUoKSB7XG4gICAgICBpZiAodGhpcy5jb250ZXh0W2NvbnRleHRQcm9wXSkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250ZXh0W2NvbnRleHRQcm9wXS5nZXQoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7XG4gICAgICB9XG4gICAgfTtcblxuICAgIENvbnN1bWVyLnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICByZXR1cm4gb25seUNoaWxkKHRoaXMucHJvcHMuY2hpbGRyZW4pKHRoaXMuc3RhdGUudmFsdWUpO1xuICAgIH07XG5cbiAgICByZXR1cm4gQ29uc3VtZXI7XG4gIH0oX3JlYWN0LkNvbXBvbmVudCk7XG5cbiAgQ29uc3VtZXIuY29udGV4dFR5cGVzID0gKF9Db25zdW1lciRjb250ZXh0VHlwZSA9IHt9LCBfQ29uc3VtZXIkY29udGV4dFR5cGVbY29udGV4dFByb3BdID0gX3Byb3BUeXBlczIuZGVmYXVsdC5vYmplY3QsIF9Db25zdW1lciRjb250ZXh0VHlwZSk7XG5cblxuICByZXR1cm4ge1xuICAgIFByb3ZpZGVyOiBQcm92aWRlcixcbiAgICBDb25zdW1lcjogQ29uc3VtZXJcbiAgfTtcbn1cblxuZXhwb3J0cy5kZWZhdWx0ID0gY3JlYXRlUmVhY3RDb250ZXh0O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107IiwiLy8gQGZsb3dcbid1c2Ugc3RyaWN0JztcblxudmFyIGtleSA9ICdfX2dsb2JhbF91bmlxdWVfaWRfXyc7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiBnbG9iYWxba2V5XSA9IChnbG9iYWxba2V5XSB8fCAwKSArIDE7XG59O1xuIiwiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTQtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbi8qKlxuICogU2ltaWxhciB0byBpbnZhcmlhbnQgYnV0IG9ubHkgbG9ncyBhIHdhcm5pbmcgaWYgdGhlIGNvbmRpdGlvbiBpcyBub3QgbWV0LlxuICogVGhpcyBjYW4gYmUgdXNlZCB0byBsb2cgaXNzdWVzIGluIGRldmVsb3BtZW50IGVudmlyb25tZW50cyBpbiBjcml0aWNhbFxuICogcGF0aHMuIFJlbW92aW5nIHRoZSBsb2dnaW5nIGNvZGUgZm9yIHByb2R1Y3Rpb24gZW52aXJvbm1lbnRzIHdpbGwga2VlcCB0aGVcbiAqIHNhbWUgbG9naWMgYW5kIGZvbGxvdyB0aGUgc2FtZSBjb2RlIHBhdGhzLlxuICovXG5cbnZhciBfX0RFVl9fID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJztcblxudmFyIHdhcm5pbmcgPSBmdW5jdGlvbigpIHt9O1xuXG5pZiAoX19ERVZfXykge1xuICB2YXIgcHJpbnRXYXJuaW5nID0gZnVuY3Rpb24gcHJpbnRXYXJuaW5nKGZvcm1hdCwgYXJncykge1xuICAgIHZhciBsZW4gPSBhcmd1bWVudHMubGVuZ3RoO1xuICAgIGFyZ3MgPSBuZXcgQXJyYXkobGVuID4gMSA/IGxlbiAtIDEgOiAwKTtcbiAgICBmb3IgKHZhciBrZXkgPSAxOyBrZXkgPCBsZW47IGtleSsrKSB7XG4gICAgICBhcmdzW2tleSAtIDFdID0gYXJndW1lbnRzW2tleV07XG4gICAgfVxuICAgIHZhciBhcmdJbmRleCA9IDA7XG4gICAgdmFyIG1lc3NhZ2UgPSAnV2FybmluZzogJyArXG4gICAgICBmb3JtYXQucmVwbGFjZSgvJXMvZywgZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBhcmdzW2FyZ0luZGV4KytdO1xuICAgICAgfSk7XG4gICAgaWYgKHR5cGVvZiBjb25zb2xlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgY29uc29sZS5lcnJvcihtZXNzYWdlKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIC8vIC0tLSBXZWxjb21lIHRvIGRlYnVnZ2luZyBSZWFjdCAtLS1cbiAgICAgIC8vIFRoaXMgZXJyb3Igd2FzIHRocm93biBhcyBhIGNvbnZlbmllbmNlIHNvIHRoYXQgeW91IGNhbiB1c2UgdGhpcyBzdGFja1xuICAgICAgLy8gdG8gZmluZCB0aGUgY2FsbHNpdGUgdGhhdCBjYXVzZWQgdGhpcyB3YXJuaW5nIHRvIGZpcmUuXG4gICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XG4gICAgfSBjYXRjaCAoeCkge31cbiAgfVxuXG4gIHdhcm5pbmcgPSBmdW5jdGlvbihjb25kaXRpb24sIGZvcm1hdCwgYXJncykge1xuICAgIHZhciBsZW4gPSBhcmd1bWVudHMubGVuZ3RoO1xuICAgIGFyZ3MgPSBuZXcgQXJyYXkobGVuID4gMiA/IGxlbiAtIDIgOiAwKTtcbiAgICBmb3IgKHZhciBrZXkgPSAyOyBrZXkgPCBsZW47IGtleSsrKSB7XG4gICAgICBhcmdzW2tleSAtIDJdID0gYXJndW1lbnRzW2tleV07XG4gICAgfVxuICAgIGlmIChmb3JtYXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICdgd2FybmluZyhjb25kaXRpb24sIGZvcm1hdCwgLi4uYXJncylgIHJlcXVpcmVzIGEgd2FybmluZyAnICtcbiAgICAgICAgICAnbWVzc2FnZSBhcmd1bWVudCdcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICghY29uZGl0aW9uKSB7XG4gICAgICBwcmludFdhcm5pbmcuYXBwbHkobnVsbCwgW2Zvcm1hdF0uY29uY2F0KGFyZ3MpKTtcbiAgICB9XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gd2FybmluZztcbiIsIlwidXNlIHN0cmljdFwiO1xuXG5mdW5jdGlvbiBfdHlwZW9mKG9iaikgeyBcIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mXCI7IGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIHR5cGVvZiBvYmo7IH07IH0gZWxzZSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajsgfTsgfSByZXR1cm4gX3R5cGVvZihvYmopOyB9XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IHZvaWQgMDtcblxudmFyIFJlYWN0ID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcblxudmFyIF9lbXB0eSA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uL2VtcHR5XCIpKTtcblxudmFyIF8gPSByZXF1aXJlKFwiLlwiKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgaWYgKHR5cGVvZiBXZWFrTWFwICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBudWxsOyB2YXIgY2FjaGUgPSBuZXcgV2Vha01hcCgpOyBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUgPSBmdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7IHJldHVybiBjYWNoZTsgfTsgcmV0dXJuIGNhY2hlOyB9XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKG9iaikgeyBpZiAob2JqICYmIG9iai5fX2VzTW9kdWxlKSB7IHJldHVybiBvYmo7IH0gaWYgKG9iaiA9PT0gbnVsbCB8fCBfdHlwZW9mKG9iaikgIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIG9iaiAhPT0gXCJmdW5jdGlvblwiKSB7IHJldHVybiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfSB2YXIgY2FjaGUgPSBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKTsgaWYgKGNhY2hlICYmIGNhY2hlLmhhcyhvYmopKSB7IHJldHVybiBjYWNoZS5nZXQob2JqKTsgfSB2YXIgbmV3T2JqID0ge307IHZhciBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjsgZm9yICh2YXIga2V5IGluIG9iaikgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkgeyB2YXIgZGVzYyA9IGhhc1Byb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDogbnVsbDsgaWYgKGRlc2MgJiYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpOyB9IGVsc2UgeyBuZXdPYmpba2V5XSA9IG9ialtrZXldOyB9IH0gfSBuZXdPYmpbXCJkZWZhdWx0XCJdID0gb2JqOyBpZiAoY2FjaGUpIHsgY2FjaGUuc2V0KG9iaiwgbmV3T2JqKTsgfSByZXR1cm4gbmV3T2JqOyB9XG5cbnZhciByZW5kZXJFbXB0eSA9IGZ1bmN0aW9uIHJlbmRlckVtcHR5KGNvbXBvbmVudE5hbWUpIHtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF8uQ29uZmlnQ29uc3VtZXIsIG51bGwsIGZ1bmN0aW9uIChfcmVmKSB7XG4gICAgdmFyIGdldFByZWZpeENscyA9IF9yZWYuZ2V0UHJlZml4Q2xzO1xuICAgIHZhciBwcmVmaXggPSBnZXRQcmVmaXhDbHMoJ2VtcHR5Jyk7XG5cbiAgICBzd2l0Y2ggKGNvbXBvbmVudE5hbWUpIHtcbiAgICAgIGNhc2UgJ1RhYmxlJzpcbiAgICAgIGNhc2UgJ0xpc3QnOlxuICAgICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX2VtcHR5W1wiZGVmYXVsdFwiXSwge1xuICAgICAgICAgIGltYWdlOiBfZW1wdHlbXCJkZWZhdWx0XCJdLlBSRVNFTlRFRF9JTUFHRV9TSU1QTEVcbiAgICAgICAgfSk7XG5cbiAgICAgIGNhc2UgJ1NlbGVjdCc6XG4gICAgICBjYXNlICdUcmVlU2VsZWN0JzpcbiAgICAgIGNhc2UgJ0Nhc2NhZGVyJzpcbiAgICAgIGNhc2UgJ1RyYW5zZmVyJzpcbiAgICAgIGNhc2UgJ01lbnRpb25zJzpcbiAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9lbXB0eVtcImRlZmF1bHRcIl0sIHtcbiAgICAgICAgICBpbWFnZTogX2VtcHR5W1wiZGVmYXVsdFwiXS5QUkVTRU5URURfSU1BR0VfU0lNUExFLFxuICAgICAgICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4LCBcIi1zbWFsbFwiKVxuICAgICAgICB9KTtcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9lbXB0eVtcImRlZmF1bHRcIl0sIG51bGwpO1xuICAgIH1cbiAgfSk7XG59O1xuXG52YXIgX2RlZmF1bHQgPSByZW5kZXJFbXB0eTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gX2RlZmF1bHQ7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbmZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjsgaWYgKHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09PSBcInN5bWJvbFwiKSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gdHlwZW9mIG9iajsgfTsgfSBlbHNlIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiBvYmogJiYgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG9iaiAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqOyB9OyB9IHJldHVybiBfdHlwZW9mKG9iaik7IH1cblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gdm9pZCAwO1xuXG52YXIgUmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgX2NsYXNzbmFtZXMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJjbGFzc25hbWVzXCIpKTtcblxudmFyIF9jb25maWdQcm92aWRlciA9IHJlcXVpcmUoXCIuLi9jb25maWctcHJvdmlkZXJcIik7XG5cbnZhciBfTG9jYWxlUmVjZWl2ZXIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuLi9sb2NhbGUtcHJvdmlkZXIvTG9jYWxlUmVjZWl2ZXJcIikpO1xuXG52YXIgX2VtcHR5ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi9lbXB0eVwiKSk7XG5cbnZhciBfc2ltcGxlID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi9zaW1wbGVcIikpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyBpZiAodHlwZW9mIFdlYWtNYXAgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIG51bGw7IHZhciBjYWNoZSA9IG5ldyBXZWFrTWFwKCk7IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSA9IGZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgcmV0dXJuIGNhY2hlOyB9OyByZXR1cm4gY2FjaGU7IH1cblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqKSB7IGlmIChvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHsgcmV0dXJuIG9iajsgfSBpZiAob2JqID09PSBudWxsIHx8IF90eXBlb2Yob2JqKSAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygb2JqICE9PSBcImZ1bmN0aW9uXCIpIHsgcmV0dXJuIHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9IHZhciBjYWNoZSA9IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpOyBpZiAoY2FjaGUgJiYgY2FjaGUuaGFzKG9iaikpIHsgcmV0dXJuIGNhY2hlLmdldChvYmopOyB9IHZhciBuZXdPYmogPSB7fTsgdmFyIGhhc1Byb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOyBmb3IgKHZhciBrZXkgaW4gb2JqKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7IHZhciBkZXNjID0gaGFzUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiBudWxsOyBpZiAoZGVzYyAmJiAoZGVzYy5nZXQgfHwgZGVzYy5zZXQpKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXdPYmosIGtleSwgZGVzYyk7IH0gZWxzZSB7IG5ld09ialtrZXldID0gb2JqW2tleV07IH0gfSB9IG5ld09ialtcImRlZmF1bHRcIl0gPSBvYmo7IGlmIChjYWNoZSkgeyBjYWNoZS5zZXQob2JqLCBuZXdPYmopOyB9IHJldHVybiBuZXdPYmo7IH1cblxuZnVuY3Rpb24gX2V4dGVuZHMoKSB7IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTsgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH1cblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnR5KG9iaiwga2V5LCB2YWx1ZSkgeyBpZiAoa2V5IGluIG9iaikgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHsgdmFsdWU6IHZhbHVlLCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUsIHdyaXRhYmxlOiB0cnVlIH0pOyB9IGVsc2UgeyBvYmpba2V5XSA9IHZhbHVlOyB9IHJldHVybiBvYmo7IH1cblxudmFyIF9fcmVzdCA9IHZvaWQgMCAmJiAodm9pZCAwKS5fX3Jlc3QgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgdmFyIHQgPSB7fTtcblxuICBmb3IgKHZhciBwIGluIHMpIHtcbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApIHRbcF0gPSBzW3BdO1xuICB9XG5cbiAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKSBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKSB0W3BbaV1dID0gc1twW2ldXTtcbiAgfVxuICByZXR1cm4gdDtcbn07XG5cbnZhciBkZWZhdWx0RW1wdHlJbWcgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfZW1wdHlbXCJkZWZhdWx0XCJdLCBudWxsKTtcbnZhciBzaW1wbGVFbXB0eUltZyA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9zaW1wbGVbXCJkZWZhdWx0XCJdLCBudWxsKTtcblxudmFyIEVtcHR5ID0gZnVuY3Rpb24gRW1wdHkocHJvcHMpIHtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9jb25maWdQcm92aWRlci5Db25maWdDb25zdW1lciwgbnVsbCwgZnVuY3Rpb24gKF9yZWYpIHtcbiAgICB2YXIgZ2V0UHJlZml4Q2xzID0gX3JlZi5nZXRQcmVmaXhDbHM7XG5cbiAgICB2YXIgY2xhc3NOYW1lID0gcHJvcHMuY2xhc3NOYW1lLFxuICAgICAgICBjdXN0b21pemVQcmVmaXhDbHMgPSBwcm9wcy5wcmVmaXhDbHMsXG4gICAgICAgIF9wcm9wcyRpbWFnZSA9IHByb3BzLmltYWdlLFxuICAgICAgICBpbWFnZSA9IF9wcm9wcyRpbWFnZSA9PT0gdm9pZCAwID8gZGVmYXVsdEVtcHR5SW1nIDogX3Byb3BzJGltYWdlLFxuICAgICAgICBkZXNjcmlwdGlvbiA9IHByb3BzLmRlc2NyaXB0aW9uLFxuICAgICAgICBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLFxuICAgICAgICBpbWFnZVN0eWxlID0gcHJvcHMuaW1hZ2VTdHlsZSxcbiAgICAgICAgcmVzdFByb3BzID0gX19yZXN0KHByb3BzLCBbXCJjbGFzc05hbWVcIiwgXCJwcmVmaXhDbHNcIiwgXCJpbWFnZVwiLCBcImRlc2NyaXB0aW9uXCIsIFwiY2hpbGRyZW5cIiwgXCJpbWFnZVN0eWxlXCJdKTtcblxuICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfTG9jYWxlUmVjZWl2ZXJbXCJkZWZhdWx0XCJdLCB7XG4gICAgICBjb21wb25lbnROYW1lOiBcIkVtcHR5XCJcbiAgICB9LCBmdW5jdGlvbiAobG9jYWxlKSB7XG4gICAgICB2YXIgcHJlZml4Q2xzID0gZ2V0UHJlZml4Q2xzKCdlbXB0eScsIGN1c3RvbWl6ZVByZWZpeENscyk7XG4gICAgICB2YXIgZGVzID0gdHlwZW9mIGRlc2NyaXB0aW9uICE9PSAndW5kZWZpbmVkJyA/IGRlc2NyaXB0aW9uIDogbG9jYWxlLmRlc2NyaXB0aW9uO1xuICAgICAgdmFyIGFsdCA9IHR5cGVvZiBkZXMgPT09ICdzdHJpbmcnID8gZGVzIDogJ2VtcHR5JztcbiAgICAgIHZhciBpbWFnZU5vZGUgPSBudWxsO1xuXG4gICAgICBpZiAodHlwZW9mIGltYWdlID09PSAnc3RyaW5nJykge1xuICAgICAgICBpbWFnZU5vZGUgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImltZ1wiLCB7XG4gICAgICAgICAgYWx0OiBhbHQsXG4gICAgICAgICAgc3JjOiBpbWFnZVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGltYWdlTm9kZSA9IGltYWdlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgX2V4dGVuZHMoe1xuICAgICAgICBjbGFzc05hbWU6ICgwLCBfY2xhc3NuYW1lc1tcImRlZmF1bHRcIl0pKHByZWZpeENscywgX2RlZmluZVByb3BlcnR5KHt9LCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLW5vcm1hbFwiKSwgaW1hZ2UgPT09IHNpbXBsZUVtcHR5SW1nKSwgY2xhc3NOYW1lKVxuICAgICAgfSwgcmVzdFByb3BzKSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeENscywgXCItaW1hZ2VcIiksXG4gICAgICAgIHN0eWxlOiBpbWFnZVN0eWxlXG4gICAgICB9LCBpbWFnZU5vZGUpLCBkZXMgJiYgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwXCIsIHtcbiAgICAgICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWRlc2NyaXB0aW9uXCIpXG4gICAgICB9LCBkZXMpLCBjaGlsZHJlbiAmJiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1mb290ZXJcIilcbiAgICAgIH0sIGNoaWxkcmVuKSk7XG4gICAgfSk7XG4gIH0pO1xufTtcblxuRW1wdHkuUFJFU0VOVEVEX0lNQUdFX0RFRkFVTFQgPSBkZWZhdWx0RW1wdHlJbWc7XG5FbXB0eS5QUkVTRU5URURfSU1BR0VfU0lNUExFID0gc2ltcGxlRW1wdHlJbWc7XG52YXIgX2RlZmF1bHQgPSBFbXB0eTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gX2RlZmF1bHQ7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbmZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjsgaWYgKHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09PSBcInN5bWJvbFwiKSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gdHlwZW9mIG9iajsgfTsgfSBlbHNlIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiBvYmogJiYgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG9iaiAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqOyB9OyB9IHJldHVybiBfdHlwZW9mKG9iaik7IH1cblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gdm9pZCAwO1xuXG52YXIgUmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG5mdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7IGlmICh0eXBlb2YgV2Vha01hcCAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gbnVsbDsgdmFyIGNhY2hlID0gbmV3IFdlYWtNYXAoKTsgX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlID0gZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyByZXR1cm4gY2FjaGU7IH07IHJldHVybiBjYWNoZTsgfVxuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChvYmopIHsgaWYgKG9iaiAmJiBvYmouX19lc01vZHVsZSkgeyByZXR1cm4gb2JqOyB9IGlmIChvYmogPT09IG51bGwgfHwgX3R5cGVvZihvYmopICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiBvYmogIT09IFwiZnVuY3Rpb25cIikgeyByZXR1cm4geyBcImRlZmF1bHRcIjogb2JqIH07IH0gdmFyIGNhY2hlID0gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCk7IGlmIChjYWNoZSAmJiBjYWNoZS5oYXMob2JqKSkgeyByZXR1cm4gY2FjaGUuZ2V0KG9iaik7IH0gdmFyIG5ld09iaiA9IHt9OyB2YXIgaGFzUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7IGZvciAodmFyIGtleSBpbiBvYmopIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHsgdmFyIGRlc2MgPSBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IG51bGw7IGlmIChkZXNjICYmIChkZXNjLmdldCB8fCBkZXNjLnNldCkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTsgfSBlbHNlIHsgbmV3T2JqW2tleV0gPSBvYmpba2V5XTsgfSB9IH0gbmV3T2JqW1wiZGVmYXVsdFwiXSA9IG9iajsgaWYgKGNhY2hlKSB7IGNhY2hlLnNldChvYmosIG5ld09iaik7IH0gcmV0dXJuIG5ld09iajsgfVxuXG52YXIgRW1wdHkgPSBmdW5jdGlvbiBFbXB0eSgpIHtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3ZnXCIsIHtcbiAgICB3aWR0aDogXCIxODRcIixcbiAgICBoZWlnaHQ6IFwiMTUyXCIsXG4gICAgdmlld0JveDogXCIwIDAgMTg0IDE1MlwiLFxuICAgIHhtbG5zOiBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJnXCIsIHtcbiAgICBmaWxsOiBcIm5vbmVcIixcbiAgICBmaWxsUnVsZTogXCJldmVub2RkXCJcbiAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJnXCIsIHtcbiAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKDI0IDMxLjY3KVwiXG4gIH0sIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZWxsaXBzZVwiLCB7XG4gICAgZmlsbE9wYWNpdHk6IFwiLjhcIixcbiAgICBmaWxsOiBcIiNGNUY1RjdcIixcbiAgICBjeDogXCI2Ny43OTdcIixcbiAgICBjeTogXCIxMDYuODlcIixcbiAgICByeDogXCI2Ny43OTdcIixcbiAgICByeTogXCIxMi42NjhcIlxuICB9KSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBkOiBcIk0xMjIuMDM0IDY5LjY3NEw5OC4xMDkgNDAuMjI5Yy0xLjE0OC0xLjM4Ni0yLjgyNi0yLjIyNS00LjU5My0yLjIyNWgtNTEuNDRjLTEuNzY2IDAtMy40NDQuODM5LTQuNTkyIDIuMjI1TDEzLjU2IDY5LjY3NHYxNS4zODNoMTA4LjQ3NVY2OS42NzR6XCIsXG4gICAgZmlsbDogXCIjQUVCOEMyXCJcbiAgfSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgZDogXCJNMTAxLjUzNyA4Ni4yMTRMODAuNjMgNjEuMTAyYy0xLjAwMS0xLjIwNy0yLjUwNy0xLjg2Ny00LjA0OC0xLjg2N0gzMS43MjRjLTEuNTQgMC0zLjA0Ny42Ni00LjA0OCAxLjg2N0w2Ljc2OSA4Ni4yMTR2MTMuNzkyaDk0Ljc2OFY4Ni4yMTR6XCIsXG4gICAgZmlsbDogXCJ1cmwoI2xpbmVhckdyYWRpZW50LTEpXCIsXG4gICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSgxMy41NilcIlxuICB9KSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBkOiBcIk0zMy44MyAwaDY3LjkzM2E0IDQgMCAwIDEgNCA0djkzLjM0NGE0IDQgMCAwIDEtNCA0SDMzLjgzYTQgNCAwIDAgMS00LTRWNGE0IDQgMCAwIDEgNC00elwiLFxuICAgIGZpbGw6IFwiI0Y1RjVGN1wiXG4gIH0pLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwge1xuICAgIGQ6IFwiTTQyLjY3OCA5Ljk1M2g1MC4yMzdhMiAyIDAgMCAxIDIgMlYzNi45MWEyIDIgMCAwIDEtMiAySDQyLjY3OGEyIDIgMCAwIDEtMi0yVjExLjk1M2EyIDIgMCAwIDEgMi0yek00Mi45NCA0OS43NjdoNDkuNzEzYTIuMjYyIDIuMjYyIDAgMSAxIDAgNC41MjRINDIuOTRhMi4yNjIgMi4yNjIgMCAwIDEgMC00LjUyNHpNNDIuOTQgNjEuNTNoNDkuNzEzYTIuMjYyIDIuMjYyIDAgMSAxIDAgNC41MjVINDIuOTRhMi4yNjIgMi4yNjIgMCAwIDEgMC00LjUyNXpNMTIxLjgxMyAxMDUuMDMyYy0uNzc1IDMuMDcxLTMuNDk3IDUuMzYtNi43MzUgNS4zNkgyMC41MTVjLTMuMjM4IDAtNS45Ni0yLjI5LTYuNzM0LTUuMzZhNy4zMDkgNy4zMDkgMCAwIDEtLjIyMi0xLjc5VjY5LjY3NWgyNi4zMThjMi45MDcgMCA1LjI1IDIuNDQ4IDUuMjUgNS40MnYuMDRjMCAyLjk3MSAyLjM3IDUuMzcgNS4yNzcgNS4zN2gzNC43ODVjMi45MDcgMCA1LjI3Ny0yLjQyMSA1LjI3Ny01LjM5M1Y3NS4xYzAtMi45NzIgMi4zNDMtNS40MjYgNS4yNS01LjQyNmgyNi4zMTh2MzMuNTY5YzAgLjYxNy0uMDc3IDEuMjE2LS4yMjEgMS43ODl6XCIsXG4gICAgZmlsbDogXCIjRENFMEU2XCJcbiAgfSkpLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwge1xuICAgIGQ6IFwiTTE0OS4xMjEgMzMuMjkybC02LjgzIDIuNjVhMSAxIDAgMCAxLTEuMzE3LTEuMjNsMS45MzctNi4yMDdjLTIuNTg5LTIuOTQ0LTQuMTA5LTYuNTM0LTQuMTA5LTEwLjQwOEMxMzguODAyIDguMTAyIDE0OC45MiAwIDE2MS40MDIgMCAxNzMuODgxIDAgMTg0IDguMTAyIDE4NCAxOC4wOTdjMCA5Ljk5NS0xMC4xMTggMTguMDk3LTIyLjU5OSAxOC4wOTctNC41MjggMC04Ljc0NC0xLjA2Ni0xMi4yOC0yLjkwMnpcIixcbiAgICBmaWxsOiBcIiNEQ0UwRTZcIlxuICB9KSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJnXCIsIHtcbiAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKDE0OS42NSAxNS4zODMpXCIsXG4gICAgZmlsbDogXCIjRkZGXCJcbiAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJlbGxpcHNlXCIsIHtcbiAgICBjeDogXCIyMC42NTRcIixcbiAgICBjeTogXCIzLjE2N1wiLFxuICAgIHJ4OiBcIjIuODQ5XCIsXG4gICAgcnk6IFwiMi44MTVcIlxuICB9KSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBkOiBcIk01LjY5OCA1LjYzSDBMMi44OTguNzA0ek05LjI1OS43MDRoNC45ODVWNS42M0g5LjI1OXpcIlxuICB9KSkpKTtcbn07XG5cbnZhciBfZGVmYXVsdCA9IEVtcHR5O1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBfZGVmYXVsdDsiLCJcInVzZSBzdHJpY3RcIjtcblxuZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiOyBpZiAodHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT09IFwic3ltYm9sXCIpIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiB0eXBlb2Ygb2JqOyB9OyB9IGVsc2UgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIG9iaiAmJiB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgb2JqICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvYmo7IH07IH0gcmV0dXJuIF90eXBlb2Yob2JqKTsgfVxuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSB2b2lkIDA7XG5cbnZhciBSZWFjdCA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5cbmZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgaWYgKHR5cGVvZiBXZWFrTWFwICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBudWxsOyB2YXIgY2FjaGUgPSBuZXcgV2Vha01hcCgpOyBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUgPSBmdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7IHJldHVybiBjYWNoZTsgfTsgcmV0dXJuIGNhY2hlOyB9XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKG9iaikgeyBpZiAob2JqICYmIG9iai5fX2VzTW9kdWxlKSB7IHJldHVybiBvYmo7IH0gaWYgKG9iaiA9PT0gbnVsbCB8fCBfdHlwZW9mKG9iaikgIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIG9iaiAhPT0gXCJmdW5jdGlvblwiKSB7IHJldHVybiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfSB2YXIgY2FjaGUgPSBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKTsgaWYgKGNhY2hlICYmIGNhY2hlLmhhcyhvYmopKSB7IHJldHVybiBjYWNoZS5nZXQob2JqKTsgfSB2YXIgbmV3T2JqID0ge307IHZhciBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjsgZm9yICh2YXIga2V5IGluIG9iaikgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkgeyB2YXIgZGVzYyA9IGhhc1Byb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDogbnVsbDsgaWYgKGRlc2MgJiYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpOyB9IGVsc2UgeyBuZXdPYmpba2V5XSA9IG9ialtrZXldOyB9IH0gfSBuZXdPYmpbXCJkZWZhdWx0XCJdID0gb2JqOyBpZiAoY2FjaGUpIHsgY2FjaGUuc2V0KG9iaiwgbmV3T2JqKTsgfSByZXR1cm4gbmV3T2JqOyB9XG5cbnZhciBTaW1wbGUgPSBmdW5jdGlvbiBTaW1wbGUoKSB7XG4gIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInN2Z1wiLCB7XG4gICAgd2lkdGg6IFwiNjRcIixcbiAgICBoZWlnaHQ6IFwiNDFcIixcbiAgICB2aWV3Qm94OiBcIjAgMCA2NCA0MVwiLFxuICAgIHhtbG5zOiBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJnXCIsIHtcbiAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKDAgMSlcIixcbiAgICBmaWxsOiBcIm5vbmVcIixcbiAgICBmaWxsUnVsZTogXCJldmVub2RkXCJcbiAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJlbGxpcHNlXCIsIHtcbiAgICBmaWxsOiBcIiNGNUY1RjVcIixcbiAgICBjeDogXCIzMlwiLFxuICAgIGN5OiBcIjMzXCIsXG4gICAgcng6IFwiMzJcIixcbiAgICByeTogXCI3XCJcbiAgfSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZ1wiLCB7XG4gICAgZmlsbFJ1bGU6IFwibm9uemVyb1wiLFxuICAgIHN0cm9rZTogXCIjRDlEOUQ5XCJcbiAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBkOiBcIk01NSAxMi43Nkw0NC44NTQgMS4yNThDNDQuMzY3LjQ3NCA0My42NTYgMCA0Mi45MDcgMEgyMS4wOTNjLS43NDkgMC0xLjQ2LjQ3NC0xLjk0NyAxLjI1N0w5IDEyLjc2MVYyMmg0NnYtOS4yNHpcIlxuICB9KSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBkOiBcIk00MS42MTMgMTUuOTMxYzAtMS42MDUuOTk0LTIuOTMgMi4yMjctMi45MzFINTV2MTguMTM3QzU1IDMzLjI2IDUzLjY4IDM1IDUyLjA1IDM1aC00MC4xQzEwLjMyIDM1IDkgMzMuMjU5IDkgMzEuMTM3VjEzaDExLjE2YzEuMjMzIDAgMi4yMjcgMS4zMjMgMi4yMjcgMi45Mjh2LjAyMmMwIDEuNjA1IDEuMDA1IDIuOTAxIDIuMjM3IDIuOTAxaDE0Ljc1MmMxLjIzMiAwIDIuMjM3LTEuMzA4IDIuMjM3LTIuOTEzdi0uMDA3elwiLFxuICAgIGZpbGw6IFwiI0ZBRkFGQVwiXG4gIH0pKSkpO1xufTtcblxudmFyIF9kZWZhdWx0ID0gU2ltcGxlO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBfZGVmYXVsdDsiLCJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gdm9pZCAwO1xuXG52YXIgUmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgX3JlYWN0TGlmZWN5Y2xlc0NvbXBhdCA9IHJlcXVpcmUoXCJyZWFjdC1saWZlY3ljbGVzLWNvbXBhdFwiKTtcblxudmFyIF9yY1Jlc2l6ZU9ic2VydmVyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmMtcmVzaXplLW9ic2VydmVyXCIpKTtcblxudmFyIF9vbWl0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwib21pdC5qc1wiKSk7XG5cbnZhciBfY2xhc3NuYW1lcyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcImNsYXNzbmFtZXNcIikpO1xuXG52YXIgX2NhbGN1bGF0ZU5vZGVIZWlnaHQgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuL2NhbGN1bGF0ZU5vZGVIZWlnaHRcIikpO1xuXG52YXIgX3JhZiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uL191dGlsL3JhZlwiKSk7XG5cbnZhciBfd2FybmluZyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uL191dGlsL3dhcm5pbmdcIikpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyBpZiAodHlwZW9mIFdlYWtNYXAgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIG51bGw7IHZhciBjYWNoZSA9IG5ldyBXZWFrTWFwKCk7IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSA9IGZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgcmV0dXJuIGNhY2hlOyB9OyByZXR1cm4gY2FjaGU7IH1cblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqKSB7IGlmIChvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHsgcmV0dXJuIG9iajsgfSBpZiAob2JqID09PSBudWxsIHx8IF90eXBlb2Yob2JqKSAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygb2JqICE9PSBcImZ1bmN0aW9uXCIpIHsgcmV0dXJuIHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9IHZhciBjYWNoZSA9IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpOyBpZiAoY2FjaGUgJiYgY2FjaGUuaGFzKG9iaikpIHsgcmV0dXJuIGNhY2hlLmdldChvYmopOyB9IHZhciBuZXdPYmogPSB7fTsgdmFyIGhhc1Byb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOyBmb3IgKHZhciBrZXkgaW4gb2JqKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7IHZhciBkZXNjID0gaGFzUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiBudWxsOyBpZiAoZGVzYyAmJiAoZGVzYy5nZXQgfHwgZGVzYy5zZXQpKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXdPYmosIGtleSwgZGVzYyk7IH0gZWxzZSB7IG5ld09ialtrZXldID0gb2JqW2tleV07IH0gfSB9IG5ld09ialtcImRlZmF1bHRcIl0gPSBvYmo7IGlmIChjYWNoZSkgeyBjYWNoZS5zZXQob2JqLCBuZXdPYmopOyB9IHJldHVybiBuZXdPYmo7IH1cblxuZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiOyBpZiAodHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT09IFwic3ltYm9sXCIpIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiB0eXBlb2Ygb2JqOyB9OyB9IGVsc2UgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIG9iaiAmJiB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgb2JqICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvYmo7IH07IH0gcmV0dXJuIF90eXBlb2Yob2JqKTsgfVxuXG5mdW5jdGlvbiBfZXh0ZW5kcygpIHsgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9OyByZXR1cm4gX2V4dGVuZHMuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfVxuXG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHZhbHVlKSB7IGlmIChrZXkgaW4gb2JqKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgeyB2YWx1ZTogdmFsdWUsIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRydWUgfSk7IH0gZWxzZSB7IG9ialtrZXldID0gdmFsdWU7IH0gcmV0dXJuIG9iajsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7IGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHsgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTsgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlOyBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7IGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTsgfSB9XG5cbmZ1bmN0aW9uIF9jcmVhdGVDbGFzcyhDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsgaWYgKHByb3RvUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7IGlmIChzdGF0aWNQcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTsgcmV0dXJuIENvbnN0cnVjdG9yOyB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09IFwiZnVuY3Rpb25cIiAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvblwiKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBfc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpOyB9XG5cbmZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7IF9zZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCBmdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkgeyBvLl9fcHJvdG9fXyA9IHA7IHJldHVybiBvOyB9OyByZXR1cm4gX3NldFByb3RvdHlwZU9mKG8sIHApOyB9XG5cbmZ1bmN0aW9uIF9jcmVhdGVTdXBlcihEZXJpdmVkKSB7IHZhciBoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0ID0gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpOyByZXR1cm4gZnVuY3Rpb24gX2NyZWF0ZVN1cGVySW50ZXJuYWwoKSB7IHZhciBTdXBlciA9IF9nZXRQcm90b3R5cGVPZihEZXJpdmVkKSwgcmVzdWx0OyBpZiAoaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCkgeyB2YXIgTmV3VGFyZ2V0ID0gX2dldFByb3RvdHlwZU9mKHRoaXMpLmNvbnN0cnVjdG9yOyByZXN1bHQgPSBSZWZsZWN0LmNvbnN0cnVjdChTdXBlciwgYXJndW1lbnRzLCBOZXdUYXJnZXQpOyB9IGVsc2UgeyByZXN1bHQgPSBTdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9IHJldHVybiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCByZXN1bHQpOyB9OyB9XG5cbmZ1bmN0aW9uIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHNlbGYsIGNhbGwpIHsgaWYgKGNhbGwgJiYgKF90eXBlb2YoY2FsbCkgPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIGNhbGwgPT09IFwiZnVuY3Rpb25cIikpIHsgcmV0dXJuIGNhbGw7IH0gcmV0dXJuIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZik7IH1cblxuZnVuY3Rpb24gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKSB7IGlmIChzZWxmID09PSB2b2lkIDApIHsgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpOyB9IHJldHVybiBzZWxmOyB9XG5cbmZ1bmN0aW9uIF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKSB7IGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJ1bmRlZmluZWRcIiB8fCAhUmVmbGVjdC5jb25zdHJ1Y3QpIHJldHVybiBmYWxzZTsgaWYgKFJlZmxlY3QuY29uc3RydWN0LnNoYW0pIHJldHVybiBmYWxzZTsgaWYgKHR5cGVvZiBQcm94eSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gdHJ1ZTsgdHJ5IHsgRGF0ZS5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChEYXRlLCBbXSwgZnVuY3Rpb24gKCkge30pKTsgcmV0dXJuIHRydWU7IH0gY2F0Y2ggKGUpIHsgcmV0dXJuIGZhbHNlOyB9IH1cblxuZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHsgX2dldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LmdldFByb3RvdHlwZU9mIDogZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHsgcmV0dXJuIG8uX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihvKTsgfTsgcmV0dXJuIF9nZXRQcm90b3R5cGVPZihvKTsgfVxuXG52YXIgUmVzaXphYmxlVGV4dEFyZWEgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgX2luaGVyaXRzKFJlc2l6YWJsZVRleHRBcmVhLCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICB2YXIgX3N1cGVyID0gX2NyZWF0ZVN1cGVyKFJlc2l6YWJsZVRleHRBcmVhKTtcblxuICBmdW5jdGlvbiBSZXNpemFibGVUZXh0QXJlYShwcm9wcykge1xuICAgIHZhciBfdGhpcztcblxuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXNpemFibGVUZXh0QXJlYSk7XG5cbiAgICBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIHByb3BzKTtcblxuICAgIF90aGlzLnNhdmVUZXh0QXJlYSA9IGZ1bmN0aW9uICh0ZXh0QXJlYSkge1xuICAgICAgX3RoaXMudGV4dEFyZWEgPSB0ZXh0QXJlYTtcbiAgICB9O1xuXG4gICAgX3RoaXMucmVzaXplT25OZXh0RnJhbWUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBfcmFmW1wiZGVmYXVsdFwiXS5jYW5jZWwoX3RoaXMubmV4dEZyYW1lQWN0aW9uSWQpO1xuXG4gICAgICBfdGhpcy5uZXh0RnJhbWVBY3Rpb25JZCA9ICgwLCBfcmFmW1wiZGVmYXVsdFwiXSkoX3RoaXMucmVzaXplVGV4dGFyZWEpO1xuICAgIH07XG5cbiAgICBfdGhpcy5yZXNpemVUZXh0YXJlYSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBhdXRvU2l6ZSA9IF90aGlzLnByb3BzLmF1dG9TaXplIHx8IF90aGlzLnByb3BzLmF1dG9zaXplO1xuXG4gICAgICBpZiAoIWF1dG9TaXplIHx8ICFfdGhpcy50ZXh0QXJlYSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHZhciBtaW5Sb3dzID0gYXV0b1NpemUubWluUm93cyxcbiAgICAgICAgICBtYXhSb3dzID0gYXV0b1NpemUubWF4Um93cztcbiAgICAgIHZhciB0ZXh0YXJlYVN0eWxlcyA9ICgwLCBfY2FsY3VsYXRlTm9kZUhlaWdodFtcImRlZmF1bHRcIl0pKF90aGlzLnRleHRBcmVhLCBmYWxzZSwgbWluUm93cywgbWF4Um93cyk7XG5cbiAgICAgIF90aGlzLnNldFN0YXRlKHtcbiAgICAgICAgdGV4dGFyZWFTdHlsZXM6IHRleHRhcmVhU3R5bGVzLFxuICAgICAgICByZXNpemluZzogdHJ1ZVxuICAgICAgfSwgZnVuY3Rpb24gKCkge1xuICAgICAgICBfcmFmW1wiZGVmYXVsdFwiXS5jYW5jZWwoX3RoaXMucmVzaXplRnJhbWVJZCk7XG5cbiAgICAgICAgX3RoaXMucmVzaXplRnJhbWVJZCA9ICgwLCBfcmFmW1wiZGVmYXVsdFwiXSkoZnVuY3Rpb24gKCkge1xuICAgICAgICAgIF90aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgIHJlc2l6aW5nOiBmYWxzZVxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgX3RoaXMuZml4RmlyZWZveEF1dG9TY3JvbGwoKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgX3RoaXMucmVuZGVyVGV4dEFyZWEgPSBmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgX3RoaXMkcHJvcHMgPSBfdGhpcy5wcm9wcyxcbiAgICAgICAgICBwcmVmaXhDbHMgPSBfdGhpcyRwcm9wcy5wcmVmaXhDbHMsXG4gICAgICAgICAgYXV0b1NpemUgPSBfdGhpcyRwcm9wcy5hdXRvU2l6ZSxcbiAgICAgICAgICBhdXRvc2l6ZSA9IF90aGlzJHByb3BzLmF1dG9zaXplLFxuICAgICAgICAgIGNsYXNzTmFtZSA9IF90aGlzJHByb3BzLmNsYXNzTmFtZSxcbiAgICAgICAgICBkaXNhYmxlZCA9IF90aGlzJHByb3BzLmRpc2FibGVkO1xuICAgICAgdmFyIF90aGlzJHN0YXRlID0gX3RoaXMuc3RhdGUsXG4gICAgICAgICAgdGV4dGFyZWFTdHlsZXMgPSBfdGhpcyRzdGF0ZS50ZXh0YXJlYVN0eWxlcyxcbiAgICAgICAgICByZXNpemluZyA9IF90aGlzJHN0YXRlLnJlc2l6aW5nO1xuICAgICAgKDAsIF93YXJuaW5nW1wiZGVmYXVsdFwiXSkoYXV0b3NpemUgPT09IHVuZGVmaW5lZCwgJ0lucHV0LlRleHRBcmVhJywgJ2F1dG9zaXplIGlzIGRlcHJlY2F0ZWQsIHBsZWFzZSB1c2UgYXV0b1NpemUgaW5zdGVhZC4nKTtcbiAgICAgIHZhciBvdGhlclByb3BzID0gKDAsIF9vbWl0W1wiZGVmYXVsdFwiXSkoX3RoaXMucHJvcHMsIFsncHJlZml4Q2xzJywgJ29uUHJlc3NFbnRlcicsICdhdXRvU2l6ZScsICdhdXRvc2l6ZScsICdkZWZhdWx0VmFsdWUnLCAnYWxsb3dDbGVhciddKTtcbiAgICAgIHZhciBjbHMgPSAoMCwgX2NsYXNzbmFtZXNbXCJkZWZhdWx0XCJdKShwcmVmaXhDbHMsIGNsYXNzTmFtZSwgX2RlZmluZVByb3BlcnR5KHt9LCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWRpc2FibGVkXCIpLCBkaXNhYmxlZCkpOyAvLyBGaXggaHR0cHM6Ly9naXRodWIuY29tL2FudC1kZXNpZ24vYW50LWRlc2lnbi9pc3N1ZXMvNjc3NlxuICAgICAgLy8gTWFrZSBzdXJlIGl0IGNvdWxkIGJlIHJlc2V0IHdoZW4gdXNpbmcgZm9ybS5nZXRGaWVsZERlY29yYXRvclxuXG4gICAgICBpZiAoJ3ZhbHVlJyBpbiBvdGhlclByb3BzKSB7XG4gICAgICAgIG90aGVyUHJvcHMudmFsdWUgPSBvdGhlclByb3BzLnZhbHVlIHx8ICcnO1xuICAgICAgfVxuXG4gICAgICB2YXIgc3R5bGUgPSBfZXh0ZW5kcyhfZXh0ZW5kcyhfZXh0ZW5kcyh7fSwgX3RoaXMucHJvcHMuc3R5bGUpLCB0ZXh0YXJlYVN0eWxlcyksIHJlc2l6aW5nID8ge1xuICAgICAgICBvdmVyZmxvd1g6ICdoaWRkZW4nLFxuICAgICAgICBvdmVyZmxvd1k6ICdoaWRkZW4nXG4gICAgICB9IDogbnVsbCk7XG5cbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfcmNSZXNpemVPYnNlcnZlcltcImRlZmF1bHRcIl0sIHtcbiAgICAgICAgb25SZXNpemU6IF90aGlzLnJlc2l6ZU9uTmV4dEZyYW1lLFxuICAgICAgICBkaXNhYmxlZDogIShhdXRvU2l6ZSB8fCBhdXRvc2l6ZSlcbiAgICAgIH0sIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwidGV4dGFyZWFcIiwgX2V4dGVuZHMoe30sIG90aGVyUHJvcHMsIHtcbiAgICAgICAgY2xhc3NOYW1lOiBjbHMsXG4gICAgICAgIHN0eWxlOiBzdHlsZSxcbiAgICAgICAgcmVmOiBfdGhpcy5zYXZlVGV4dEFyZWFcbiAgICAgIH0pKSk7XG4gICAgfTtcblxuICAgIF90aGlzLnN0YXRlID0ge1xuICAgICAgdGV4dGFyZWFTdHlsZXM6IHt9LFxuICAgICAgcmVzaXppbmc6IGZhbHNlXG4gICAgfTtcbiAgICByZXR1cm4gX3RoaXM7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoUmVzaXphYmxlVGV4dEFyZWEsIFt7XG4gICAga2V5OiBcImNvbXBvbmVudERpZE1vdW50XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgdGhpcy5yZXNpemVUZXh0YXJlYSgpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJjb21wb25lbnREaWRVcGRhdGVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wcykge1xuICAgICAgLy8gUmUtcmVuZGVyIHdpdGggdGhlIG5ldyBjb250ZW50IHRoZW4gcmVjYWxjdWxhdGUgdGhlIGhlaWdodCBhcyByZXF1aXJlZC5cbiAgICAgIGlmIChwcmV2UHJvcHMudmFsdWUgIT09IHRoaXMucHJvcHMudmFsdWUpIHtcbiAgICAgICAgdGhpcy5yZXNpemVUZXh0YXJlYSgpO1xuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJjb21wb25lbnRXaWxsVW5tb3VudFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgIF9yYWZbXCJkZWZhdWx0XCJdLmNhbmNlbCh0aGlzLm5leHRGcmFtZUFjdGlvbklkKTtcblxuICAgICAgX3JhZltcImRlZmF1bHRcIl0uY2FuY2VsKHRoaXMucmVzaXplRnJhbWVJZCk7XG4gICAgfSAvLyBodHRwczovL2dpdGh1Yi5jb20vYW50LWRlc2lnbi9hbnQtZGVzaWduL2lzc3Vlcy8yMTg3MFxuXG4gIH0sIHtcbiAgICBrZXk6IFwiZml4RmlyZWZveEF1dG9TY3JvbGxcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZml4RmlyZWZveEF1dG9TY3JvbGwoKSB7XG4gICAgICB0cnkge1xuICAgICAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gdGhpcy50ZXh0QXJlYSkge1xuICAgICAgICAgIHZhciBjdXJyZW50U3RhcnQgPSB0aGlzLnRleHRBcmVhLnNlbGVjdGlvblN0YXJ0O1xuICAgICAgICAgIHZhciBjdXJyZW50RW5kID0gdGhpcy50ZXh0QXJlYS5zZWxlY3Rpb25FbmQ7XG4gICAgICAgICAgdGhpcy50ZXh0QXJlYS5zZXRTZWxlY3Rpb25SYW5nZShjdXJyZW50U3RhcnQsIGN1cnJlbnRFbmQpO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlKSB7Ly8gRml4IGVycm9yIGluIENocm9tZTpcbiAgICAgICAgLy8gRmFpbGVkIHRvIHJlYWQgdGhlICdzZWxlY3Rpb25TdGFydCcgcHJvcGVydHkgZnJvbSAnSFRNTElucHV0RWxlbWVudCdcbiAgICAgICAgLy8gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3EvMjExNzc0ODkvMzA0MDYwNVxuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJyZW5kZXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgcmV0dXJuIHRoaXMucmVuZGVyVGV4dEFyZWEoKTtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gUmVzaXphYmxlVGV4dEFyZWE7XG59KFJlYWN0LkNvbXBvbmVudCk7XG5cbigwLCBfcmVhY3RMaWZlY3ljbGVzQ29tcGF0LnBvbHlmaWxsKShSZXNpemFibGVUZXh0QXJlYSk7XG52YXIgX2RlZmF1bHQgPSBSZXNpemFibGVUZXh0QXJlYTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gX2RlZmF1bHQ7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbmZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIHR5cGVvZiBvYmo7IH07IH0gZWxzZSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajsgfTsgfSByZXR1cm4gX3R5cGVvZihvYmopOyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH1cblxuZnVuY3Rpb24gX2NyZWF0ZUNsYXNzKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH1cblxuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkgeyBpZiAoY2FsbCAmJiAoX3R5cGVvZihjYWxsKSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSkgeyByZXR1cm4gY2FsbDsgfSByZXR1cm4gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKTsgfVxuXG5mdW5jdGlvbiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpIHsgaWYgKHNlbGYgPT09IHZvaWQgMCkgeyB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7IH0gcmV0dXJuIHNlbGY7IH1cblxuZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHsgX2dldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LmdldFByb3RvdHlwZU9mIDogZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHsgcmV0dXJuIG8uX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihvKTsgfTsgcmV0dXJuIF9nZXRQcm90b3R5cGVPZihvKTsgfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSBcImZ1bmN0aW9uXCIgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb25cIik7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgX3NldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKTsgfVxuXG5mdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkgeyBfc2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgby5fX3Byb3RvX18gPSBwOyByZXR1cm4gbzsgfTsgcmV0dXJuIF9zZXRQcm90b3R5cGVPZihvLCBwKTsgfVxuXG52YXIgX19pbXBvcnRTdGFyID0gdGhpcyAmJiB0aGlzLl9faW1wb3J0U3RhciB8fCBmdW5jdGlvbiAobW9kKSB7XG4gIGlmIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpIHJldHVybiBtb2Q7XG4gIHZhciByZXN1bHQgPSB7fTtcbiAgaWYgKG1vZCAhPSBudWxsKSBmb3IgKHZhciBrIGluIG1vZCkge1xuICAgIGlmIChPYmplY3QuaGFzT3duUHJvcGVydHkuY2FsbChtb2QsIGspKSByZXN1bHRba10gPSBtb2Rba107XG4gIH1cbiAgcmVzdWx0W1wiZGVmYXVsdFwiXSA9IG1vZDtcbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbnZhciBfX2ltcG9ydERlZmF1bHQgPSB0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0IHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgcmV0dXJuIG1vZCAmJiBtb2QuX19lc01vZHVsZSA/IG1vZCA6IHtcbiAgICBcImRlZmF1bHRcIjogbW9kXG4gIH07XG59O1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuXG52YXIgUmVhY3QgPSBfX2ltcG9ydFN0YXIocmVxdWlyZShcInJlYWN0XCIpKTtcblxudmFyIGZpbmRET01Ob2RlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcInJjLXV0aWwvbGliL0RvbS9maW5kRE9NTm9kZVwiKSk7XG5cbnZhciB0b0FycmF5XzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcInJjLXV0aWwvbGliL0NoaWxkcmVuL3RvQXJyYXlcIikpO1xuXG52YXIgd2FybmluZ18xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJyYy11dGlsL2xpYi93YXJuaW5nXCIpKTtcblxudmFyIHJlZl8xID0gcmVxdWlyZShcInJjLXV0aWwvbGliL3JlZlwiKTtcblxudmFyIHJlc2l6ZV9vYnNlcnZlcl9wb2x5ZmlsbF8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJyZXNpemUtb2JzZXJ2ZXItcG9seWZpbGxcIikpO1xuXG52YXIgdXRpbF8xID0gcmVxdWlyZShcIi4vdXRpbFwiKTtcblxudmFyIElOVEVSTkFMX1BSRUZJWF9LRVkgPSAncmMtb2JzZXJ2ZXIta2V5JzsgLy8gU3RpbGwgbmVlZCB0byBiZSBjb21wYXRpYmxlIHdpdGggUmVhY3QgMTUsIHdlIHVzZSBjbGFzcyBjb21wb25lbnQgaGVyZVxuXG52YXIgUmVhY3RSZXNpemVPYnNlcnZlciA9XG4vKiNfX1BVUkVfXyovXG5mdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoUmVhY3RSZXNpemVPYnNlcnZlciwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgZnVuY3Rpb24gUmVhY3RSZXNpemVPYnNlcnZlcigpIHtcbiAgICB2YXIgX3RoaXM7XG5cbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVhY3RSZXNpemVPYnNlcnZlcik7XG5cbiAgICBfdGhpcyA9IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIF9nZXRQcm90b3R5cGVPZihSZWFjdFJlc2l6ZU9ic2VydmVyKS5hcHBseSh0aGlzLCBhcmd1bWVudHMpKTtcbiAgICBfdGhpcy5yZXNpemVPYnNlcnZlciA9IG51bGw7XG4gICAgX3RoaXMuY2hpbGROb2RlID0gbnVsbDtcbiAgICBfdGhpcy5jdXJyZW50RWxlbWVudCA9IG51bGw7XG4gICAgX3RoaXMuc3RhdGUgPSB7XG4gICAgICB3aWR0aDogMCxcbiAgICAgIGhlaWdodDogMFxuICAgIH07XG5cbiAgICBfdGhpcy5vblJlc2l6ZSA9IGZ1bmN0aW9uIChlbnRyaWVzKSB7XG4gICAgICB2YXIgb25SZXNpemUgPSBfdGhpcy5wcm9wcy5vblJlc2l6ZTtcbiAgICAgIHZhciB0YXJnZXQgPSBlbnRyaWVzWzBdLnRhcmdldDtcblxuICAgICAgdmFyIF90YXJnZXQkZ2V0Qm91bmRpbmdDbCA9IHRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxcbiAgICAgICAgICB3aWR0aCA9IF90YXJnZXQkZ2V0Qm91bmRpbmdDbC53aWR0aCxcbiAgICAgICAgICBoZWlnaHQgPSBfdGFyZ2V0JGdldEJvdW5kaW5nQ2wuaGVpZ2h0O1xuICAgICAgLyoqXG4gICAgICAgKiBSZXNpemUgb2JzZXJ2ZXIgdHJpZ2dlciB3aGVuIGNvbnRlbnQgc2l6ZSBjaGFuZ2VkLlxuICAgICAgICogSW4gbW9zdCBjYXNlIHdlIGp1c3QgY2FyZSBhYm91dCBlbGVtZW50IHNpemUsXG4gICAgICAgKiBsZXQncyB1c2UgYGJvdW5kYXJ5YCBpbnN0ZWFkIG9mIGBjb250ZW50UmVjdGAgaGVyZSB0byBhdm9pZCBzaGFraW5nLlxuICAgICAgICovXG5cblxuICAgICAgdmFyIGZpeGVkV2lkdGggPSBNYXRoLmZsb29yKHdpZHRoKTtcbiAgICAgIHZhciBmaXhlZEhlaWdodCA9IE1hdGguZmxvb3IoaGVpZ2h0KTtcblxuICAgICAgaWYgKF90aGlzLnN0YXRlLndpZHRoICE9PSBmaXhlZFdpZHRoIHx8IF90aGlzLnN0YXRlLmhlaWdodCAhPT0gZml4ZWRIZWlnaHQpIHtcbiAgICAgICAgdmFyIHNpemUgPSB7XG4gICAgICAgICAgd2lkdGg6IGZpeGVkV2lkdGgsXG4gICAgICAgICAgaGVpZ2h0OiBmaXhlZEhlaWdodFxuICAgICAgICB9O1xuXG4gICAgICAgIF90aGlzLnNldFN0YXRlKHNpemUpO1xuXG4gICAgICAgIGlmIChvblJlc2l6ZSkge1xuICAgICAgICAgIG9uUmVzaXplKHNpemUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcblxuICAgIF90aGlzLnNldENoaWxkTm9kZSA9IGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICBfdGhpcy5jaGlsZE5vZGUgPSBub2RlO1xuICAgIH07XG5cbiAgICByZXR1cm4gX3RoaXM7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoUmVhY3RSZXNpemVPYnNlcnZlciwgW3tcbiAgICBrZXk6IFwiY29tcG9uZW50RGlkTW91bnRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICB0aGlzLm9uQ29tcG9uZW50VXBkYXRlZCgpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJjb21wb25lbnREaWRVcGRhdGVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50RGlkVXBkYXRlKCkge1xuICAgICAgdGhpcy5vbkNvbXBvbmVudFVwZGF0ZWQoKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiY29tcG9uZW50V2lsbFVubW91bnRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICB0aGlzLmRlc3Ryb3lPYnNlcnZlcigpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJvbkNvbXBvbmVudFVwZGF0ZWRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gb25Db21wb25lbnRVcGRhdGVkKCkge1xuICAgICAgdmFyIGRpc2FibGVkID0gdGhpcy5wcm9wcy5kaXNhYmxlZDsgLy8gVW5yZWdpc3RlciBpZiBkaXNhYmxlZFxuXG4gICAgICBpZiAoZGlzYWJsZWQpIHtcbiAgICAgICAgdGhpcy5kZXN0cm95T2JzZXJ2ZXIoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfSAvLyBVbnJlZ2lzdGVyIGlmIGVsZW1lbnQgY2hhbmdlZFxuXG5cbiAgICAgIHZhciBlbGVtZW50ID0gZmluZERPTU5vZGVfMS5kZWZhdWx0KHRoaXMuY2hpbGROb2RlIHx8IHRoaXMpO1xuICAgICAgdmFyIGVsZW1lbnRDaGFuZ2VkID0gZWxlbWVudCAhPT0gdGhpcy5jdXJyZW50RWxlbWVudDtcblxuICAgICAgaWYgKGVsZW1lbnRDaGFuZ2VkKSB7XG4gICAgICAgIHRoaXMuZGVzdHJveU9ic2VydmVyKCk7XG4gICAgICAgIHRoaXMuY3VycmVudEVsZW1lbnQgPSBlbGVtZW50O1xuICAgICAgfVxuXG4gICAgICBpZiAoIXRoaXMucmVzaXplT2JzZXJ2ZXIgJiYgZWxlbWVudCkge1xuICAgICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyID0gbmV3IHJlc2l6ZV9vYnNlcnZlcl9wb2x5ZmlsbF8xLmRlZmF1bHQodGhpcy5vblJlc2l6ZSk7XG4gICAgICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShlbGVtZW50KTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZGVzdHJveU9ic2VydmVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGRlc3Ryb3lPYnNlcnZlcigpIHtcbiAgICAgIGlmICh0aGlzLnJlc2l6ZU9ic2VydmVyKSB7XG4gICAgICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHZhciBjaGlsZHJlbiA9IHRoaXMucHJvcHMuY2hpbGRyZW47XG4gICAgICB2YXIgY2hpbGROb2RlcyA9IHRvQXJyYXlfMS5kZWZhdWx0KGNoaWxkcmVuKTtcblxuICAgICAgaWYgKGNoaWxkTm9kZXMubGVuZ3RoID4gMSkge1xuICAgICAgICB3YXJuaW5nXzEuZGVmYXVsdChmYWxzZSwgJ0ZpbmQgbW9yZSB0aGFuIG9uZSBjaGlsZCBub2RlIHdpdGggYGNoaWxkcmVuYCBpbiBSZXNpemVPYnNlcnZlci4gV2lsbCBvbmx5IG9ic2VydmUgZmlyc3Qgb25lLicpO1xuICAgICAgfSBlbHNlIGlmIChjaGlsZE5vZGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB3YXJuaW5nXzEuZGVmYXVsdChmYWxzZSwgJ2BjaGlsZHJlbmAgb2YgUmVzaXplT2JzZXJ2ZXIgaXMgZW1wdHkuIE5vdGhpbmcgaXMgaW4gb2JzZXJ2ZS4nKTtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIHZhciBjaGlsZE5vZGUgPSBjaGlsZE5vZGVzWzBdO1xuXG4gICAgICBpZiAoUmVhY3QuaXNWYWxpZEVsZW1lbnQoY2hpbGROb2RlKSAmJiB1dGlsXzEuc3VwcG9ydFJlZihjaGlsZE5vZGUpKSB7XG4gICAgICAgIHZhciByZWYgPSBjaGlsZE5vZGUucmVmO1xuICAgICAgICBjaGlsZE5vZGVzWzBdID0gUmVhY3QuY2xvbmVFbGVtZW50KGNoaWxkTm9kZSwge1xuICAgICAgICAgIHJlZjogcmVmXzEuY29tcG9zZVJlZihyZWYsIHRoaXMuc2V0Q2hpbGROb2RlKVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGNoaWxkTm9kZXMubGVuZ3RoID09PSAxID8gY2hpbGROb2Rlc1swXSA6IGNoaWxkTm9kZXMubWFwKGZ1bmN0aW9uIChub2RlLCBpbmRleCkge1xuICAgICAgICBpZiAoIVJlYWN0LmlzVmFsaWRFbGVtZW50KG5vZGUpIHx8ICdrZXknIGluIG5vZGUgJiYgbm9kZS5rZXkgIT09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gbm9kZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBSZWFjdC5jbG9uZUVsZW1lbnQobm9kZSwge1xuICAgICAgICAgIGtleTogXCJcIi5jb25jYXQoSU5URVJOQUxfUFJFRklYX0tFWSwgXCItXCIpLmNvbmNhdChpbmRleClcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gUmVhY3RSZXNpemVPYnNlcnZlcjtcbn0oUmVhY3QuQ29tcG9uZW50KTtcblxuUmVhY3RSZXNpemVPYnNlcnZlci5kaXNwbGF5TmFtZSA9ICdSZXNpemVPYnNlcnZlcic7XG5leHBvcnRzLmRlZmF1bHQgPSBSZWFjdFJlc2l6ZU9ic2VydmVyOyIsIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gZmluZERPTU5vZGU7XG5cbnZhciBfcmVhY3REb20gPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyZWFjdC1kb21cIikpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTsgfVxuXG4vKipcbiAqIFJldHVybiBpZiBhIG5vZGUgaXMgYSBET00gbm9kZS4gRWxzZSB3aWxsIHJldHVybiBieSBgZmluZERPTU5vZGVgXG4gKi9cbmZ1bmN0aW9uIGZpbmRET01Ob2RlKG5vZGUpIHtcbiAgaWYgKG5vZGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuICAgIHJldHVybiBub2RlO1xuICB9XG5cbiAgcmV0dXJuIF9yZWFjdERvbS5kZWZhdWx0LmZpbmRET01Ob2RlKG5vZGUpO1xufSIsIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gdG9BcnJheTtcblxudmFyIF9yZWFjdCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcInJlYWN0XCIpKTtcblxudmFyIF9yZWFjdElzID0gcmVxdWlyZShcInJlYWN0LWlzXCIpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTsgfVxuXG5mdW5jdGlvbiB0b0FycmF5KGNoaWxkcmVuKSB7XG4gIHZhciByZXQgPSBbXTtcblxuICBfcmVhY3QuZGVmYXVsdC5DaGlsZHJlbi5mb3JFYWNoKGNoaWxkcmVuLCBmdW5jdGlvbiAoY2hpbGQpIHtcbiAgICBpZiAoY2hpbGQgPT09IHVuZGVmaW5lZCB8fCBjaGlsZCA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChBcnJheS5pc0FycmF5KGNoaWxkKSkge1xuICAgICAgcmV0ID0gcmV0LmNvbmNhdCh0b0FycmF5KGNoaWxkKSk7XG4gICAgfSBlbHNlIGlmICgoMCwgX3JlYWN0SXMuaXNGcmFnbWVudCkoY2hpbGQpICYmIGNoaWxkLnByb3BzKSB7XG4gICAgICByZXQgPSByZXQuY29uY2F0KHRvQXJyYXkoY2hpbGQucHJvcHMuY2hpbGRyZW4pKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0LnB1c2goY2hpbGQpO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHJldDtcbn0iLCIndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtaXMucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtaXMuZGV2ZWxvcG1lbnQuanMnKTtcbn1cbiIsIi8qKiBAbGljZW5zZSBSZWFjdCB2MTYuMTMuMVxuICogcmVhY3QtaXMucHJvZHVjdGlvbi5taW4uanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIEZhY2Vib29rLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7dmFyIGI9XCJmdW5jdGlvblwiPT09dHlwZW9mIFN5bWJvbCYmU3ltYm9sLmZvcixjPWI/U3ltYm9sLmZvcihcInJlYWN0LmVsZW1lbnRcIik6NjAxMDMsZD1iP1N5bWJvbC5mb3IoXCJyZWFjdC5wb3J0YWxcIik6NjAxMDYsZT1iP1N5bWJvbC5mb3IoXCJyZWFjdC5mcmFnbWVudFwiKTo2MDEwNyxmPWI/U3ltYm9sLmZvcihcInJlYWN0LnN0cmljdF9tb2RlXCIpOjYwMTA4LGc9Yj9TeW1ib2wuZm9yKFwicmVhY3QucHJvZmlsZXJcIik6NjAxMTQsaD1iP1N5bWJvbC5mb3IoXCJyZWFjdC5wcm92aWRlclwiKTo2MDEwOSxrPWI/U3ltYm9sLmZvcihcInJlYWN0LmNvbnRleHRcIik6NjAxMTAsbD1iP1N5bWJvbC5mb3IoXCJyZWFjdC5hc3luY19tb2RlXCIpOjYwMTExLG09Yj9TeW1ib2wuZm9yKFwicmVhY3QuY29uY3VycmVudF9tb2RlXCIpOjYwMTExLG49Yj9TeW1ib2wuZm9yKFwicmVhY3QuZm9yd2FyZF9yZWZcIik6NjAxMTIscD1iP1N5bWJvbC5mb3IoXCJyZWFjdC5zdXNwZW5zZVwiKTo2MDExMyxxPWI/XG5TeW1ib2wuZm9yKFwicmVhY3Quc3VzcGVuc2VfbGlzdFwiKTo2MDEyMCxyPWI/U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9cIik6NjAxMTUsdD1iP1N5bWJvbC5mb3IoXCJyZWFjdC5sYXp5XCIpOjYwMTE2LHY9Yj9TeW1ib2wuZm9yKFwicmVhY3QuYmxvY2tcIik6NjAxMjEsdz1iP1N5bWJvbC5mb3IoXCJyZWFjdC5mdW5kYW1lbnRhbFwiKTo2MDExNyx4PWI/U3ltYm9sLmZvcihcInJlYWN0LnJlc3BvbmRlclwiKTo2MDExOCx5PWI/U3ltYm9sLmZvcihcInJlYWN0LnNjb3BlXCIpOjYwMTE5O1xuZnVuY3Rpb24geihhKXtpZihcIm9iamVjdFwiPT09dHlwZW9mIGEmJm51bGwhPT1hKXt2YXIgdT1hLiQkdHlwZW9mO3N3aXRjaCh1KXtjYXNlIGM6c3dpdGNoKGE9YS50eXBlLGEpe2Nhc2UgbDpjYXNlIG06Y2FzZSBlOmNhc2UgZzpjYXNlIGY6Y2FzZSBwOnJldHVybiBhO2RlZmF1bHQ6c3dpdGNoKGE9YSYmYS4kJHR5cGVvZixhKXtjYXNlIGs6Y2FzZSBuOmNhc2UgdDpjYXNlIHI6Y2FzZSBoOnJldHVybiBhO2RlZmF1bHQ6cmV0dXJuIHV9fWNhc2UgZDpyZXR1cm4gdX19fWZ1bmN0aW9uIEEoYSl7cmV0dXJuIHooYSk9PT1tfWV4cG9ydHMuQXN5bmNNb2RlPWw7ZXhwb3J0cy5Db25jdXJyZW50TW9kZT1tO2V4cG9ydHMuQ29udGV4dENvbnN1bWVyPWs7ZXhwb3J0cy5Db250ZXh0UHJvdmlkZXI9aDtleHBvcnRzLkVsZW1lbnQ9YztleHBvcnRzLkZvcndhcmRSZWY9bjtleHBvcnRzLkZyYWdtZW50PWU7ZXhwb3J0cy5MYXp5PXQ7ZXhwb3J0cy5NZW1vPXI7ZXhwb3J0cy5Qb3J0YWw9ZDtcbmV4cG9ydHMuUHJvZmlsZXI9ZztleHBvcnRzLlN0cmljdE1vZGU9ZjtleHBvcnRzLlN1c3BlbnNlPXA7ZXhwb3J0cy5pc0FzeW5jTW9kZT1mdW5jdGlvbihhKXtyZXR1cm4gQShhKXx8eihhKT09PWx9O2V4cG9ydHMuaXNDb25jdXJyZW50TW9kZT1BO2V4cG9ydHMuaXNDb250ZXh0Q29uc3VtZXI9ZnVuY3Rpb24oYSl7cmV0dXJuIHooYSk9PT1rfTtleHBvcnRzLmlzQ29udGV4dFByb3ZpZGVyPWZ1bmN0aW9uKGEpe3JldHVybiB6KGEpPT09aH07ZXhwb3J0cy5pc0VsZW1lbnQ9ZnVuY3Rpb24oYSl7cmV0dXJuXCJvYmplY3RcIj09PXR5cGVvZiBhJiZudWxsIT09YSYmYS4kJHR5cGVvZj09PWN9O2V4cG9ydHMuaXNGb3J3YXJkUmVmPWZ1bmN0aW9uKGEpe3JldHVybiB6KGEpPT09bn07ZXhwb3J0cy5pc0ZyYWdtZW50PWZ1bmN0aW9uKGEpe3JldHVybiB6KGEpPT09ZX07ZXhwb3J0cy5pc0xhenk9ZnVuY3Rpb24oYSl7cmV0dXJuIHooYSk9PT10fTtcbmV4cG9ydHMuaXNNZW1vPWZ1bmN0aW9uKGEpe3JldHVybiB6KGEpPT09cn07ZXhwb3J0cy5pc1BvcnRhbD1mdW5jdGlvbihhKXtyZXR1cm4geihhKT09PWR9O2V4cG9ydHMuaXNQcm9maWxlcj1mdW5jdGlvbihhKXtyZXR1cm4geihhKT09PWd9O2V4cG9ydHMuaXNTdHJpY3RNb2RlPWZ1bmN0aW9uKGEpe3JldHVybiB6KGEpPT09Zn07ZXhwb3J0cy5pc1N1c3BlbnNlPWZ1bmN0aW9uKGEpe3JldHVybiB6KGEpPT09cH07XG5leHBvcnRzLmlzVmFsaWRFbGVtZW50VHlwZT1mdW5jdGlvbihhKXtyZXR1cm5cInN0cmluZ1wiPT09dHlwZW9mIGF8fFwiZnVuY3Rpb25cIj09PXR5cGVvZiBhfHxhPT09ZXx8YT09PW18fGE9PT1nfHxhPT09Znx8YT09PXB8fGE9PT1xfHxcIm9iamVjdFwiPT09dHlwZW9mIGEmJm51bGwhPT1hJiYoYS4kJHR5cGVvZj09PXR8fGEuJCR0eXBlb2Y9PT1yfHxhLiQkdHlwZW9mPT09aHx8YS4kJHR5cGVvZj09PWt8fGEuJCR0eXBlb2Y9PT1ufHxhLiQkdHlwZW9mPT09d3x8YS4kJHR5cGVvZj09PXh8fGEuJCR0eXBlb2Y9PT15fHxhLiQkdHlwZW9mPT09dil9O2V4cG9ydHMudHlwZU9mPXo7XG4iLCJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZmlsbFJlZiA9IGZpbGxSZWY7XG5leHBvcnRzLmNvbXBvc2VSZWYgPSBjb21wb3NlUmVmO1xuZXhwb3J0cy5zdXBwb3J0UmVmID0gc3VwcG9ydFJlZjtcblxuZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiOyBpZiAodHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT09IFwic3ltYm9sXCIpIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiB0eXBlb2Ygb2JqOyB9OyB9IGVsc2UgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIG9iaiAmJiB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgb2JqICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvYmo7IH07IH0gcmV0dXJuIF90eXBlb2Yob2JqKTsgfVxuXG5mdW5jdGlvbiBmaWxsUmVmKHJlZiwgbm9kZSkge1xuICBpZiAodHlwZW9mIHJlZiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJlZihub2RlKTtcbiAgfSBlbHNlIGlmIChfdHlwZW9mKHJlZikgPT09ICdvYmplY3QnICYmIHJlZiAmJiAnY3VycmVudCcgaW4gcmVmKSB7XG4gICAgcmVmLmN1cnJlbnQgPSBub2RlO1xuICB9XG59XG4vKipcbiAqIE1lcmdlIHJlZnMgaW50byBvbmUgcmVmIGZ1bmN0aW9uIHRvIHN1cHBvcnQgcmVmIHBhc3NpbmcuXG4gKi9cblxuXG5mdW5jdGlvbiBjb21wb3NlUmVmKCkge1xuICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgcmVmcyA9IG5ldyBBcnJheShfbGVuKSwgX2tleSA9IDA7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICByZWZzW19rZXldID0gYXJndW1lbnRzW19rZXldO1xuICB9XG5cbiAgcmV0dXJuIGZ1bmN0aW9uIChub2RlKSB7XG4gICAgcmVmcy5mb3JFYWNoKGZ1bmN0aW9uIChyZWYpIHtcbiAgICAgIGZpbGxSZWYocmVmLCBub2RlKTtcbiAgICB9KTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gc3VwcG9ydFJlZihub2RlT3JDb21wb25lbnQpIHtcbiAgLy8gRnVuY3Rpb24gY29tcG9uZW50IG5vZGVcbiAgaWYgKG5vZGVPckNvbXBvbmVudC50eXBlICYmIG5vZGVPckNvbXBvbmVudC50eXBlLnByb3RvdHlwZSAmJiAhbm9kZU9yQ29tcG9uZW50LnR5cGUucHJvdG90eXBlLnJlbmRlcikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfSAvLyBDbGFzcyBjb21wb25lbnRcblxuXG4gIGlmICh0eXBlb2Ygbm9kZU9yQ29tcG9uZW50ID09PSAnZnVuY3Rpb24nICYmIG5vZGVPckNvbXBvbmVudC5wcm90b3R5cGUgJiYgIW5vZGVPckNvbXBvbmVudC5wcm90b3R5cGUucmVuZGVyKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG4vKiBlc2xpbnQtZW5hYmxlICovIiwiLyoqXHJcbiAqIEEgY29sbGVjdGlvbiBvZiBzaGltcyB0aGF0IHByb3ZpZGUgbWluaW1hbCBmdW5jdGlvbmFsaXR5IG9mIHRoZSBFUzYgY29sbGVjdGlvbnMuXHJcbiAqXHJcbiAqIFRoZXNlIGltcGxlbWVudGF0aW9ucyBhcmUgbm90IG1lYW50IHRvIGJlIHVzZWQgb3V0c2lkZSBvZiB0aGUgUmVzaXplT2JzZXJ2ZXJcclxuICogbW9kdWxlcyBhcyB0aGV5IGNvdmVyIG9ubHkgYSBsaW1pdGVkIHJhbmdlIG9mIHVzZSBjYXNlcy5cclxuICovXHJcbi8qIGVzbGludC1kaXNhYmxlIHJlcXVpcmUtanNkb2MsIHZhbGlkLWpzZG9jICovXHJcbnZhciBNYXBTaGltID0gKGZ1bmN0aW9uICgpIHtcclxuICAgIGlmICh0eXBlb2YgTWFwICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgIHJldHVybiBNYXA7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgaW5kZXggaW4gcHJvdmlkZWQgYXJyYXkgdGhhdCBtYXRjaGVzIHRoZSBzcGVjaWZpZWQga2V5LlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7QXJyYXk8QXJyYXk+fSBhcnJcclxuICAgICAqIEBwYXJhbSB7Kn0ga2V5XHJcbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfVxyXG4gICAgICovXHJcbiAgICBmdW5jdGlvbiBnZXRJbmRleChhcnIsIGtleSkge1xyXG4gICAgICAgIHZhciByZXN1bHQgPSAtMTtcclxuICAgICAgICBhcnIuc29tZShmdW5jdGlvbiAoZW50cnksIGluZGV4KSB7XHJcbiAgICAgICAgICAgIGlmIChlbnRyeVswXSA9PT0ga2V5KSB7XHJcbiAgICAgICAgICAgICAgICByZXN1bHQgPSBpbmRleDtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICBmdW5jdGlvbiBjbGFzc18xKCkge1xyXG4gICAgICAgICAgICB0aGlzLl9fZW50cmllc19fID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjbGFzc18xLnByb3RvdHlwZSwgXCJzaXplXCIsIHtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIEByZXR1cm5zIHtib29sZWFufVxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fX2VudHJpZXNfXy5sZW5ndGg7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXHJcbiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBwYXJhbSB7Kn0ga2V5XHJcbiAgICAgICAgICogQHJldHVybnMgeyp9XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgY2xhc3NfMS5wcm90b3R5cGUuZ2V0ID0gZnVuY3Rpb24gKGtleSkge1xyXG4gICAgICAgICAgICB2YXIgaW5kZXggPSBnZXRJbmRleCh0aGlzLl9fZW50cmllc19fLCBrZXkpO1xyXG4gICAgICAgICAgICB2YXIgZW50cnkgPSB0aGlzLl9fZW50cmllc19fW2luZGV4XTtcclxuICAgICAgICAgICAgcmV0dXJuIGVudHJ5ICYmIGVudHJ5WzFdO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQHBhcmFtIHsqfSBrZXlcclxuICAgICAgICAgKiBAcGFyYW0geyp9IHZhbHVlXHJcbiAgICAgICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgY2xhc3NfMS5wcm90b3R5cGUuc2V0ID0gZnVuY3Rpb24gKGtleSwgdmFsdWUpIHtcclxuICAgICAgICAgICAgdmFyIGluZGV4ID0gZ2V0SW5kZXgodGhpcy5fX2VudHJpZXNfXywga2V5KTtcclxuICAgICAgICAgICAgaWYgKH5pbmRleCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fX2VudHJpZXNfX1tpbmRleF1bMV0gPSB2YWx1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX19lbnRyaWVzX18ucHVzaChba2V5LCB2YWx1ZV0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBAcGFyYW0geyp9IGtleVxyXG4gICAgICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGNsYXNzXzEucHJvdG90eXBlLmRlbGV0ZSA9IGZ1bmN0aW9uIChrZXkpIHtcclxuICAgICAgICAgICAgdmFyIGVudHJpZXMgPSB0aGlzLl9fZW50cmllc19fO1xyXG4gICAgICAgICAgICB2YXIgaW5kZXggPSBnZXRJbmRleChlbnRyaWVzLCBrZXkpO1xyXG4gICAgICAgICAgICBpZiAofmluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICBlbnRyaWVzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBwYXJhbSB7Kn0ga2V5XHJcbiAgICAgICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgY2xhc3NfMS5wcm90b3R5cGUuaGFzID0gZnVuY3Rpb24gKGtleSkge1xyXG4gICAgICAgICAgICByZXR1cm4gISF+Z2V0SW5kZXgodGhpcy5fX2VudHJpZXNfXywga2V5KTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGNsYXNzXzEucHJvdG90eXBlLmNsZWFyID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICB0aGlzLl9fZW50cmllc19fLnNwbGljZSgwKTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrXHJcbiAgICAgICAgICogQHBhcmFtIHsqfSBbY3R4PW51bGxdXHJcbiAgICAgICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgY2xhc3NfMS5wcm90b3R5cGUuZm9yRWFjaCA9IGZ1bmN0aW9uIChjYWxsYmFjaywgY3R4KSB7XHJcbiAgICAgICAgICAgIGlmIChjdHggPT09IHZvaWQgMCkgeyBjdHggPSBudWxsOyB9XHJcbiAgICAgICAgICAgIGZvciAodmFyIF9pID0gMCwgX2EgPSB0aGlzLl9fZW50cmllc19fOyBfaSA8IF9hLmxlbmd0aDsgX2krKykge1xyXG4gICAgICAgICAgICAgICAgdmFyIGVudHJ5ID0gX2FbX2ldO1xyXG4gICAgICAgICAgICAgICAgY2FsbGJhY2suY2FsbChjdHgsIGVudHJ5WzFdLCBlbnRyeVswXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIHJldHVybiBjbGFzc18xO1xyXG4gICAgfSgpKTtcclxufSkoKTtcblxuLyoqXHJcbiAqIERldGVjdHMgd2hldGhlciB3aW5kb3cgYW5kIGRvY3VtZW50IG9iamVjdHMgYXJlIGF2YWlsYWJsZSBpbiBjdXJyZW50IGVudmlyb25tZW50LlxyXG4gKi9cclxudmFyIGlzQnJvd3NlciA9IHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93LmRvY3VtZW50ID09PSBkb2N1bWVudDtcblxuLy8gUmV0dXJucyBnbG9iYWwgb2JqZWN0IG9mIGEgY3VycmVudCBlbnZpcm9ubWVudC5cclxudmFyIGdsb2JhbCQxID0gKGZ1bmN0aW9uICgpIHtcclxuICAgIGlmICh0eXBlb2YgZ2xvYmFsICE9PSAndW5kZWZpbmVkJyAmJiBnbG9iYWwuTWF0aCA9PT0gTWF0aCkge1xyXG4gICAgICAgIHJldHVybiBnbG9iYWw7XHJcbiAgICB9XHJcbiAgICBpZiAodHlwZW9mIHNlbGYgIT09ICd1bmRlZmluZWQnICYmIHNlbGYuTWF0aCA9PT0gTWF0aCkge1xyXG4gICAgICAgIHJldHVybiBzZWxmO1xyXG4gICAgfVxyXG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5NYXRoID09PSBNYXRoKSB7XHJcbiAgICAgICAgcmV0dXJuIHdpbmRvdztcclxuICAgIH1cclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1uZXctZnVuY1xyXG4gICAgcmV0dXJuIEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCk7XHJcbn0pKCk7XG5cbi8qKlxyXG4gKiBBIHNoaW0gZm9yIHRoZSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgd2hpY2ggZmFsbHMgYmFjayB0byB0aGUgc2V0VGltZW91dCBpZlxyXG4gKiBmaXJzdCBvbmUgaXMgbm90IHN1cHBvcnRlZC5cclxuICpcclxuICogQHJldHVybnMge251bWJlcn0gUmVxdWVzdHMnIGlkZW50aWZpZXIuXHJcbiAqL1xyXG52YXIgcmVxdWVzdEFuaW1hdGlvbkZyYW1lJDEgPSAoZnVuY3Rpb24gKCkge1xyXG4gICAgaWYgKHR5cGVvZiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAvLyBJdCdzIHJlcXVpcmVkIHRvIHVzZSBhIGJvdW5kZWQgZnVuY3Rpb24gYmVjYXVzZSBJRSBzb21ldGltZXMgdGhyb3dzXHJcbiAgICAgICAgLy8gYW4gXCJJbnZhbGlkIGNhbGxpbmcgb2JqZWN0XCIgZXJyb3IgaWYgckFGIGlzIGludm9rZWQgd2l0aG91dCB0aGUgZ2xvYmFsXHJcbiAgICAgICAgLy8gb2JqZWN0IG9uIHRoZSBsZWZ0IGhhbmQgc2lkZS5cclxuICAgICAgICByZXR1cm4gcmVxdWVzdEFuaW1hdGlvbkZyYW1lLmJpbmQoZ2xvYmFsJDEpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZ1bmN0aW9uIChjYWxsYmFjaykgeyByZXR1cm4gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7IHJldHVybiBjYWxsYmFjayhEYXRlLm5vdygpKTsgfSwgMTAwMCAvIDYwKTsgfTtcclxufSkoKTtcblxuLy8gRGVmaW5lcyBtaW5pbXVtIHRpbWVvdXQgYmVmb3JlIGFkZGluZyBhIHRyYWlsaW5nIGNhbGwuXHJcbnZhciB0cmFpbGluZ1RpbWVvdXQgPSAyO1xyXG4vKipcclxuICogQ3JlYXRlcyBhIHdyYXBwZXIgZnVuY3Rpb24gd2hpY2ggZW5zdXJlcyB0aGF0IHByb3ZpZGVkIGNhbGxiYWNrIHdpbGwgYmVcclxuICogaW52b2tlZCBvbmx5IG9uY2UgZHVyaW5nIHRoZSBzcGVjaWZpZWQgZGVsYXkgcGVyaW9kLlxyXG4gKlxyXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsYmFjayAtIEZ1bmN0aW9uIHRvIGJlIGludm9rZWQgYWZ0ZXIgdGhlIGRlbGF5IHBlcmlvZC5cclxuICogQHBhcmFtIHtudW1iZXJ9IGRlbGF5IC0gRGVsYXkgYWZ0ZXIgd2hpY2ggdG8gaW52b2tlIGNhbGxiYWNrLlxyXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259XHJcbiAqL1xyXG5mdW5jdGlvbiB0aHJvdHRsZSAoY2FsbGJhY2ssIGRlbGF5KSB7XHJcbiAgICB2YXIgbGVhZGluZ0NhbGwgPSBmYWxzZSwgdHJhaWxpbmdDYWxsID0gZmFsc2UsIGxhc3RDYWxsVGltZSA9IDA7XHJcbiAgICAvKipcclxuICAgICAqIEludm9rZXMgdGhlIG9yaWdpbmFsIGNhbGxiYWNrIGZ1bmN0aW9uIGFuZCBzY2hlZHVsZXMgbmV3IGludm9jYXRpb24gaWZcclxuICAgICAqIHRoZSBcInByb3h5XCIgd2FzIGNhbGxlZCBkdXJpbmcgY3VycmVudCByZXF1ZXN0LlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICovXHJcbiAgICBmdW5jdGlvbiByZXNvbHZlUGVuZGluZygpIHtcclxuICAgICAgICBpZiAobGVhZGluZ0NhbGwpIHtcclxuICAgICAgICAgICAgbGVhZGluZ0NhbGwgPSBmYWxzZTtcclxuICAgICAgICAgICAgY2FsbGJhY2soKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRyYWlsaW5nQ2FsbCkge1xyXG4gICAgICAgICAgICBwcm94eSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogQ2FsbGJhY2sgaW52b2tlZCBhZnRlciB0aGUgc3BlY2lmaWVkIGRlbGF5LiBJdCB3aWxsIGZ1cnRoZXIgcG9zdHBvbmVcclxuICAgICAqIGludm9jYXRpb24gb2YgdGhlIG9yaWdpbmFsIGZ1bmN0aW9uIGRlbGVnYXRpbmcgaXQgdG8gdGhlXHJcbiAgICAgKiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgKi9cclxuICAgIGZ1bmN0aW9uIHRpbWVvdXRDYWxsYmFjaygpIHtcclxuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUkMShyZXNvbHZlUGVuZGluZyk7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFNjaGVkdWxlcyBpbnZvY2F0aW9uIG9mIHRoZSBvcmlnaW5hbCBmdW5jdGlvbi5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cclxuICAgICAqL1xyXG4gICAgZnVuY3Rpb24gcHJveHkoKSB7XHJcbiAgICAgICAgdmFyIHRpbWVTdGFtcCA9IERhdGUubm93KCk7XHJcbiAgICAgICAgaWYgKGxlYWRpbmdDYWxsKSB7XHJcbiAgICAgICAgICAgIC8vIFJlamVjdCBpbW1lZGlhdGVseSBmb2xsb3dpbmcgY2FsbHMuXHJcbiAgICAgICAgICAgIGlmICh0aW1lU3RhbXAgLSBsYXN0Q2FsbFRpbWUgPCB0cmFpbGluZ1RpbWVvdXQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyBTY2hlZHVsZSBuZXcgY2FsbCB0byBiZSBpbiBpbnZva2VkIHdoZW4gdGhlIHBlbmRpbmcgb25lIGlzIHJlc29sdmVkLlxyXG4gICAgICAgICAgICAvLyBUaGlzIGlzIGltcG9ydGFudCBmb3IgXCJ0cmFuc2l0aW9uc1wiIHdoaWNoIG5ldmVyIGFjdHVhbGx5IHN0YXJ0XHJcbiAgICAgICAgICAgIC8vIGltbWVkaWF0ZWx5IHNvIHRoZXJlIGlzIGEgY2hhbmNlIHRoYXQgd2UgbWlnaHQgbWlzcyBvbmUgaWYgY2hhbmdlXHJcbiAgICAgICAgICAgIC8vIGhhcHBlbnMgYW1pZHMgdGhlIHBlbmRpbmcgaW52b2NhdGlvbi5cclxuICAgICAgICAgICAgdHJhaWxpbmdDYWxsID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGxlYWRpbmdDYWxsID0gdHJ1ZTtcclxuICAgICAgICAgICAgdHJhaWxpbmdDYWxsID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQodGltZW91dENhbGxiYWNrLCBkZWxheSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxhc3RDYWxsVGltZSA9IHRpbWVTdGFtcDtcclxuICAgIH1cclxuICAgIHJldHVybiBwcm94eTtcclxufVxuXG4vLyBNaW5pbXVtIGRlbGF5IGJlZm9yZSBpbnZva2luZyB0aGUgdXBkYXRlIG9mIG9ic2VydmVycy5cclxudmFyIFJFRlJFU0hfREVMQVkgPSAyMDtcclxuLy8gQSBsaXN0IG9mIHN1YnN0cmluZ3Mgb2YgQ1NTIHByb3BlcnRpZXMgdXNlZCB0byBmaW5kIHRyYW5zaXRpb24gZXZlbnRzIHRoYXRcclxuLy8gbWlnaHQgYWZmZWN0IGRpbWVuc2lvbnMgb2Ygb2JzZXJ2ZWQgZWxlbWVudHMuXHJcbnZhciB0cmFuc2l0aW9uS2V5cyA9IFsndG9wJywgJ3JpZ2h0JywgJ2JvdHRvbScsICdsZWZ0JywgJ3dpZHRoJywgJ2hlaWdodCcsICdzaXplJywgJ3dlaWdodCddO1xyXG4vLyBDaGVjayBpZiBNdXRhdGlvbk9ic2VydmVyIGlzIGF2YWlsYWJsZS5cclxudmFyIG11dGF0aW9uT2JzZXJ2ZXJTdXBwb3J0ZWQgPSB0eXBlb2YgTXV0YXRpb25PYnNlcnZlciAhPT0gJ3VuZGVmaW5lZCc7XHJcbi8qKlxyXG4gKiBTaW5nbGV0b24gY29udHJvbGxlciBjbGFzcyB3aGljaCBoYW5kbGVzIHVwZGF0ZXMgb2YgUmVzaXplT2JzZXJ2ZXIgaW5zdGFuY2VzLlxyXG4gKi9cclxudmFyIFJlc2l6ZU9ic2VydmVyQ29udHJvbGxlciA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiBSZXNpemVPYnNlcnZlckNvbnRyb2xsZXIuXHJcbiAgICAgKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgZnVuY3Rpb24gUmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyKCkge1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEluZGljYXRlcyB3aGV0aGVyIERPTSBsaXN0ZW5lcnMgaGF2ZSBiZWVuIGFkZGVkLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQHByaXZhdGUge2Jvb2xlYW59XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5jb25uZWN0ZWRfID0gZmFsc2U7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGVsbHMgdGhhdCBjb250cm9sbGVyIGhhcyBzdWJzY3JpYmVkIGZvciBNdXRhdGlvbiBFdmVudHMuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAcHJpdmF0ZSB7Ym9vbGVhbn1cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLm11dGF0aW9uRXZlbnRzQWRkZWRfID0gZmFsc2U7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogS2VlcHMgcmVmZXJlbmNlIHRvIHRoZSBpbnN0YW5jZSBvZiBNdXRhdGlvbk9ic2VydmVyLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQHByaXZhdGUge011dGF0aW9uT2JzZXJ2ZXJ9XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5tdXRhdGlvbnNPYnNlcnZlcl8gPSBudWxsO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEEgbGlzdCBvZiBjb25uZWN0ZWQgb2JzZXJ2ZXJzLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQHByaXZhdGUge0FycmF5PFJlc2l6ZU9ic2VydmVyU1BJPn1cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLm9ic2VydmVyc18gPSBbXTtcclxuICAgICAgICB0aGlzLm9uVHJhbnNpdGlvbkVuZF8gPSB0aGlzLm9uVHJhbnNpdGlvbkVuZF8uYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLnJlZnJlc2ggPSB0aHJvdHRsZSh0aGlzLnJlZnJlc2guYmluZCh0aGlzKSwgUkVGUkVTSF9ERUxBWSk7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIEFkZHMgb2JzZXJ2ZXIgdG8gb2JzZXJ2ZXJzIGxpc3QuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtSZXNpemVPYnNlcnZlclNQSX0gb2JzZXJ2ZXIgLSBPYnNlcnZlciB0byBiZSBhZGRlZC5cclxuICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICovXHJcbiAgICBSZXNpemVPYnNlcnZlckNvbnRyb2xsZXIucHJvdG90eXBlLmFkZE9ic2VydmVyID0gZnVuY3Rpb24gKG9ic2VydmVyKSB7XHJcbiAgICAgICAgaWYgKCF+dGhpcy5vYnNlcnZlcnNfLmluZGV4T2Yob2JzZXJ2ZXIpKSB7XHJcbiAgICAgICAgICAgIHRoaXMub2JzZXJ2ZXJzXy5wdXNoKG9ic2VydmVyKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gQWRkIGxpc3RlbmVycyBpZiB0aGV5IGhhdmVuJ3QgYmVlbiBhZGRlZCB5ZXQuXHJcbiAgICAgICAgaWYgKCF0aGlzLmNvbm5lY3RlZF8pIHtcclxuICAgICAgICAgICAgdGhpcy5jb25uZWN0XygpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIFJlbW92ZXMgb2JzZXJ2ZXIgZnJvbSBvYnNlcnZlcnMgbGlzdC5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1Jlc2l6ZU9ic2VydmVyU1BJfSBvYnNlcnZlciAtIE9ic2VydmVyIHRvIGJlIHJlbW92ZWQuXHJcbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyLnByb3RvdHlwZS5yZW1vdmVPYnNlcnZlciA9IGZ1bmN0aW9uIChvYnNlcnZlcikge1xyXG4gICAgICAgIHZhciBvYnNlcnZlcnMgPSB0aGlzLm9ic2VydmVyc187XHJcbiAgICAgICAgdmFyIGluZGV4ID0gb2JzZXJ2ZXJzLmluZGV4T2Yob2JzZXJ2ZXIpO1xyXG4gICAgICAgIC8vIFJlbW92ZSBvYnNlcnZlciBpZiBpdCdzIHByZXNlbnQgaW4gcmVnaXN0cnkuXHJcbiAgICAgICAgaWYgKH5pbmRleCkge1xyXG4gICAgICAgICAgICBvYnNlcnZlcnMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gUmVtb3ZlIGxpc3RlbmVycyBpZiBjb250cm9sbGVyIGhhcyBubyBjb25uZWN0ZWQgb2JzZXJ2ZXJzLlxyXG4gICAgICAgIGlmICghb2JzZXJ2ZXJzLmxlbmd0aCAmJiB0aGlzLmNvbm5lY3RlZF8pIHtcclxuICAgICAgICAgICAgdGhpcy5kaXNjb25uZWN0XygpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIEludm9rZXMgdGhlIHVwZGF0ZSBvZiBvYnNlcnZlcnMuIEl0IHdpbGwgY29udGludWUgcnVubmluZyB1cGRhdGVzIGluc29mYXJcclxuICAgICAqIGl0IGRldGVjdHMgY2hhbmdlcy5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyLnByb3RvdHlwZS5yZWZyZXNoID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHZhciBjaGFuZ2VzRGV0ZWN0ZWQgPSB0aGlzLnVwZGF0ZU9ic2VydmVyc18oKTtcclxuICAgICAgICAvLyBDb250aW51ZSBydW5uaW5nIHVwZGF0ZXMgaWYgY2hhbmdlcyBoYXZlIGJlZW4gZGV0ZWN0ZWQgYXMgdGhlcmUgbWlnaHRcclxuICAgICAgICAvLyBiZSBmdXR1cmUgb25lcyBjYXVzZWQgYnkgQ1NTIHRyYW5zaXRpb25zLlxyXG4gICAgICAgIGlmIChjaGFuZ2VzRGV0ZWN0ZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5yZWZyZXNoKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogVXBkYXRlcyBldmVyeSBvYnNlcnZlciBmcm9tIG9ic2VydmVycyBsaXN0IGFuZCBub3RpZmllcyB0aGVtIG9mIHF1ZXVlZFxyXG4gICAgICogZW50cmllcy5cclxuICAgICAqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgXCJ0cnVlXCIgaWYgYW55IG9ic2VydmVyIGhhcyBkZXRlY3RlZCBjaGFuZ2VzIGluXHJcbiAgICAgKiAgICAgIGRpbWVuc2lvbnMgb2YgaXQncyBlbGVtZW50cy5cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyLnByb3RvdHlwZS51cGRhdGVPYnNlcnZlcnNfID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIC8vIENvbGxlY3Qgb2JzZXJ2ZXJzIHRoYXQgaGF2ZSBhY3RpdmUgb2JzZXJ2YXRpb25zLlxyXG4gICAgICAgIHZhciBhY3RpdmVPYnNlcnZlcnMgPSB0aGlzLm9ic2VydmVyc18uZmlsdGVyKGZ1bmN0aW9uIChvYnNlcnZlcikge1xyXG4gICAgICAgICAgICByZXR1cm4gb2JzZXJ2ZXIuZ2F0aGVyQWN0aXZlKCksIG9ic2VydmVyLmhhc0FjdGl2ZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8vIERlbGl2ZXIgbm90aWZpY2F0aW9ucyBpbiBhIHNlcGFyYXRlIGN5Y2xlIGluIG9yZGVyIHRvIGF2b2lkIGFueVxyXG4gICAgICAgIC8vIGNvbGxpc2lvbnMgYmV0d2VlbiBvYnNlcnZlcnMsIGUuZy4gd2hlbiBtdWx0aXBsZSBpbnN0YW5jZXMgb2ZcclxuICAgICAgICAvLyBSZXNpemVPYnNlcnZlciBhcmUgdHJhY2tpbmcgdGhlIHNhbWUgZWxlbWVudCBhbmQgdGhlIGNhbGxiYWNrIG9mIG9uZVxyXG4gICAgICAgIC8vIG9mIHRoZW0gY2hhbmdlcyBjb250ZW50IGRpbWVuc2lvbnMgb2YgdGhlIG9ic2VydmVkIHRhcmdldC4gU29tZXRpbWVzXHJcbiAgICAgICAgLy8gdGhpcyBtYXkgcmVzdWx0IGluIG5vdGlmaWNhdGlvbnMgYmVpbmcgYmxvY2tlZCBmb3IgdGhlIHJlc3Qgb2Ygb2JzZXJ2ZXJzLlxyXG4gICAgICAgIGFjdGl2ZU9ic2VydmVycy5mb3JFYWNoKGZ1bmN0aW9uIChvYnNlcnZlcikgeyByZXR1cm4gb2JzZXJ2ZXIuYnJvYWRjYXN0QWN0aXZlKCk7IH0pO1xyXG4gICAgICAgIHJldHVybiBhY3RpdmVPYnNlcnZlcnMubGVuZ3RoID4gMDtcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIEluaXRpYWxpemVzIERPTSBsaXN0ZW5lcnMuXHJcbiAgICAgKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICovXHJcbiAgICBSZXNpemVPYnNlcnZlckNvbnRyb2xsZXIucHJvdG90eXBlLmNvbm5lY3RfID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIC8vIERvIG5vdGhpbmcgaWYgcnVubmluZyBpbiBhIG5vbi1icm93c2VyIGVudmlyb25tZW50IG9yIGlmIGxpc3RlbmVyc1xyXG4gICAgICAgIC8vIGhhdmUgYmVlbiBhbHJlYWR5IGFkZGVkLlxyXG4gICAgICAgIGlmICghaXNCcm93c2VyIHx8IHRoaXMuY29ubmVjdGVkXykge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIFN1YnNjcmlwdGlvbiB0byB0aGUgXCJUcmFuc2l0aW9uZW5kXCIgZXZlbnQgaXMgdXNlZCBhcyBhIHdvcmthcm91bmQgZm9yXHJcbiAgICAgICAgLy8gZGVsYXllZCB0cmFuc2l0aW9ucy4gVGhpcyB3YXkgaXQncyBwb3NzaWJsZSB0byBjYXB0dXJlIGF0IGxlYXN0IHRoZVxyXG4gICAgICAgIC8vIGZpbmFsIHN0YXRlIG9mIGFuIGVsZW1lbnQuXHJcbiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndHJhbnNpdGlvbmVuZCcsIHRoaXMub25UcmFuc2l0aW9uRW5kXyk7XHJcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMucmVmcmVzaCk7XHJcbiAgICAgICAgaWYgKG11dGF0aW9uT2JzZXJ2ZXJTdXBwb3J0ZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5tdXRhdGlvbnNPYnNlcnZlcl8gPSBuZXcgTXV0YXRpb25PYnNlcnZlcih0aGlzLnJlZnJlc2gpO1xyXG4gICAgICAgICAgICB0aGlzLm11dGF0aW9uc09ic2VydmVyXy5vYnNlcnZlKGRvY3VtZW50LCB7XHJcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgY2hpbGRMaXN0OiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgY2hhcmFjdGVyRGF0YTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIHN1YnRyZWU6IHRydWVcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01TdWJ0cmVlTW9kaWZpZWQnLCB0aGlzLnJlZnJlc2gpO1xyXG4gICAgICAgICAgICB0aGlzLm11dGF0aW9uRXZlbnRzQWRkZWRfID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jb25uZWN0ZWRfID0gdHJ1ZTtcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIFJlbW92ZXMgRE9NIGxpc3RlbmVycy5cclxuICAgICAqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgKi9cclxuICAgIFJlc2l6ZU9ic2VydmVyQ29udHJvbGxlci5wcm90b3R5cGUuZGlzY29ubmVjdF8gPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgLy8gRG8gbm90aGluZyBpZiBydW5uaW5nIGluIGEgbm9uLWJyb3dzZXIgZW52aXJvbm1lbnQgb3IgaWYgbGlzdGVuZXJzXHJcbiAgICAgICAgLy8gaGF2ZSBiZWVuIGFscmVhZHkgcmVtb3ZlZC5cclxuICAgICAgICBpZiAoIWlzQnJvd3NlciB8fCAhdGhpcy5jb25uZWN0ZWRfKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndHJhbnNpdGlvbmVuZCcsIHRoaXMub25UcmFuc2l0aW9uRW5kXyk7XHJcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMucmVmcmVzaCk7XHJcbiAgICAgICAgaWYgKHRoaXMubXV0YXRpb25zT2JzZXJ2ZXJfKSB7XHJcbiAgICAgICAgICAgIHRoaXMubXV0YXRpb25zT2JzZXJ2ZXJfLmRpc2Nvbm5lY3QoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMubXV0YXRpb25FdmVudHNBZGRlZF8pIHtcclxuICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignRE9NU3VidHJlZU1vZGlmaWVkJywgdGhpcy5yZWZyZXNoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5tdXRhdGlvbnNPYnNlcnZlcl8gPSBudWxsO1xyXG4gICAgICAgIHRoaXMubXV0YXRpb25FdmVudHNBZGRlZF8gPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmNvbm5lY3RlZF8gPSBmYWxzZTtcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIFwiVHJhbnNpdGlvbmVuZFwiIGV2ZW50IGhhbmRsZXIuXHJcbiAgICAgKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEBwYXJhbSB7VHJhbnNpdGlvbkV2ZW50fSBldmVudFxyXG4gICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgKi9cclxuICAgIFJlc2l6ZU9ic2VydmVyQ29udHJvbGxlci5wcm90b3R5cGUub25UcmFuc2l0aW9uRW5kXyA9IGZ1bmN0aW9uIChfYSkge1xyXG4gICAgICAgIHZhciBfYiA9IF9hLnByb3BlcnR5TmFtZSwgcHJvcGVydHlOYW1lID0gX2IgPT09IHZvaWQgMCA/ICcnIDogX2I7XHJcbiAgICAgICAgLy8gRGV0ZWN0IHdoZXRoZXIgdHJhbnNpdGlvbiBtYXkgYWZmZWN0IGRpbWVuc2lvbnMgb2YgYW4gZWxlbWVudC5cclxuICAgICAgICB2YXIgaXNSZWZsb3dQcm9wZXJ0eSA9IHRyYW5zaXRpb25LZXlzLnNvbWUoZnVuY3Rpb24gKGtleSkge1xyXG4gICAgICAgICAgICByZXR1cm4gISF+cHJvcGVydHlOYW1lLmluZGV4T2Yoa2V5KTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAoaXNSZWZsb3dQcm9wZXJ0eSkge1xyXG4gICAgICAgICAgICB0aGlzLnJlZnJlc2goKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIGluc3RhbmNlIG9mIHRoZSBSZXNpemVPYnNlcnZlckNvbnRyb2xsZXIuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMge1Jlc2l6ZU9ic2VydmVyQ29udHJvbGxlcn1cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyLmdldEluc3RhbmNlID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5pbnN0YW5jZV8pIHtcclxuICAgICAgICAgICAgdGhpcy5pbnN0YW5jZV8gPSBuZXcgUmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLmluc3RhbmNlXztcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIEhvbGRzIHJlZmVyZW5jZSB0byB0aGUgY29udHJvbGxlcidzIGluc3RhbmNlLlxyXG4gICAgICpcclxuICAgICAqIEBwcml2YXRlIHtSZXNpemVPYnNlcnZlckNvbnRyb2xsZXJ9XHJcbiAgICAgKi9cclxuICAgIFJlc2l6ZU9ic2VydmVyQ29udHJvbGxlci5pbnN0YW5jZV8gPSBudWxsO1xyXG4gICAgcmV0dXJuIFJlc2l6ZU9ic2VydmVyQ29udHJvbGxlcjtcclxufSgpKTtcblxuLyoqXHJcbiAqIERlZmluZXMgbm9uLXdyaXRhYmxlL2VudW1lcmFibGUgcHJvcGVydGllcyBvZiB0aGUgcHJvdmlkZWQgdGFyZ2V0IG9iamVjdC5cclxuICpcclxuICogQHBhcmFtIHtPYmplY3R9IHRhcmdldCAtIE9iamVjdCBmb3Igd2hpY2ggdG8gZGVmaW5lIHByb3BlcnRpZXMuXHJcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIFByb3BlcnRpZXMgdG8gYmUgZGVmaW5lZC5cclxuICogQHJldHVybnMge09iamVjdH0gVGFyZ2V0IG9iamVjdC5cclxuICovXHJcbnZhciBkZWZpbmVDb25maWd1cmFibGUgPSAoZnVuY3Rpb24gKHRhcmdldCwgcHJvcHMpIHtcclxuICAgIGZvciAodmFyIF9pID0gMCwgX2EgPSBPYmplY3Qua2V5cyhwcm9wcyk7IF9pIDwgX2EubGVuZ3RoOyBfaSsrKSB7XHJcbiAgICAgICAgdmFyIGtleSA9IF9hW19pXTtcclxuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHtcclxuICAgICAgICAgICAgdmFsdWU6IHByb3BzW2tleV0sXHJcbiAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxyXG4gICAgICAgICAgICB3cml0YWJsZTogZmFsc2UsXHJcbiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRhcmdldDtcclxufSk7XG5cbi8qKlxyXG4gKiBSZXR1cm5zIHRoZSBnbG9iYWwgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCBwcm92aWRlZCBlbGVtZW50LlxyXG4gKlxyXG4gKiBAcGFyYW0ge09iamVjdH0gdGFyZ2V0XHJcbiAqIEByZXR1cm5zIHtPYmplY3R9XHJcbiAqL1xyXG52YXIgZ2V0V2luZG93T2YgPSAoZnVuY3Rpb24gKHRhcmdldCkge1xyXG4gICAgLy8gQXNzdW1lIHRoYXQgdGhlIGVsZW1lbnQgaXMgYW4gaW5zdGFuY2Ugb2YgTm9kZSwgd2hpY2ggbWVhbnMgdGhhdCBpdFxyXG4gICAgLy8gaGFzIHRoZSBcIm93bmVyRG9jdW1lbnRcIiBwcm9wZXJ0eSBmcm9tIHdoaWNoIHdlIGNhbiByZXRyaWV2ZSBhXHJcbiAgICAvLyBjb3JyZXNwb25kaW5nIGdsb2JhbCBvYmplY3QuXHJcbiAgICB2YXIgb3duZXJHbG9iYWwgPSB0YXJnZXQgJiYgdGFyZ2V0Lm93bmVyRG9jdW1lbnQgJiYgdGFyZ2V0Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXc7XHJcbiAgICAvLyBSZXR1cm4gdGhlIGxvY2FsIGdsb2JhbCBvYmplY3QgaWYgaXQncyBub3QgcG9zc2libGUgZXh0cmFjdCBvbmUgZnJvbVxyXG4gICAgLy8gcHJvdmlkZWQgZWxlbWVudC5cclxuICAgIHJldHVybiBvd25lckdsb2JhbCB8fCBnbG9iYWwkMTtcclxufSk7XG5cbi8vIFBsYWNlaG9sZGVyIG9mIGFuIGVtcHR5IGNvbnRlbnQgcmVjdGFuZ2xlLlxyXG52YXIgZW1wdHlSZWN0ID0gY3JlYXRlUmVjdEluaXQoMCwgMCwgMCwgMCk7XHJcbi8qKlxyXG4gKiBDb252ZXJ0cyBwcm92aWRlZCBzdHJpbmcgdG8gYSBudW1iZXIuXHJcbiAqXHJcbiAqIEBwYXJhbSB7bnVtYmVyfHN0cmluZ30gdmFsdWVcclxuICogQHJldHVybnMge251bWJlcn1cclxuICovXHJcbmZ1bmN0aW9uIHRvRmxvYXQodmFsdWUpIHtcclxuICAgIHJldHVybiBwYXJzZUZsb2F0KHZhbHVlKSB8fCAwO1xyXG59XHJcbi8qKlxyXG4gKiBFeHRyYWN0cyBib3JkZXJzIHNpemUgZnJvbSBwcm92aWRlZCBzdHlsZXMuXHJcbiAqXHJcbiAqIEBwYXJhbSB7Q1NTU3R5bGVEZWNsYXJhdGlvbn0gc3R5bGVzXHJcbiAqIEBwYXJhbSB7Li4uc3RyaW5nfSBwb3NpdGlvbnMgLSBCb3JkZXJzIHBvc2l0aW9ucyAodG9wLCByaWdodCwgLi4uKVxyXG4gKiBAcmV0dXJucyB7bnVtYmVyfVxyXG4gKi9cclxuZnVuY3Rpb24gZ2V0Qm9yZGVyc1NpemUoc3R5bGVzKSB7XHJcbiAgICB2YXIgcG9zaXRpb25zID0gW107XHJcbiAgICBmb3IgKHZhciBfaSA9IDE7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykge1xyXG4gICAgICAgIHBvc2l0aW9uc1tfaSAtIDFdID0gYXJndW1lbnRzW19pXTtcclxuICAgIH1cclxuICAgIHJldHVybiBwb3NpdGlvbnMucmVkdWNlKGZ1bmN0aW9uIChzaXplLCBwb3NpdGlvbikge1xyXG4gICAgICAgIHZhciB2YWx1ZSA9IHN0eWxlc1snYm9yZGVyLScgKyBwb3NpdGlvbiArICctd2lkdGgnXTtcclxuICAgICAgICByZXR1cm4gc2l6ZSArIHRvRmxvYXQodmFsdWUpO1xyXG4gICAgfSwgMCk7XHJcbn1cclxuLyoqXHJcbiAqIEV4dHJhY3RzIHBhZGRpbmdzIHNpemVzIGZyb20gcHJvdmlkZWQgc3R5bGVzLlxyXG4gKlxyXG4gKiBAcGFyYW0ge0NTU1N0eWxlRGVjbGFyYXRpb259IHN0eWxlc1xyXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBQYWRkaW5ncyBib3guXHJcbiAqL1xyXG5mdW5jdGlvbiBnZXRQYWRkaW5ncyhzdHlsZXMpIHtcclxuICAgIHZhciBwb3NpdGlvbnMgPSBbJ3RvcCcsICdyaWdodCcsICdib3R0b20nLCAnbGVmdCddO1xyXG4gICAgdmFyIHBhZGRpbmdzID0ge307XHJcbiAgICBmb3IgKHZhciBfaSA9IDAsIHBvc2l0aW9uc18xID0gcG9zaXRpb25zOyBfaSA8IHBvc2l0aW9uc18xLmxlbmd0aDsgX2krKykge1xyXG4gICAgICAgIHZhciBwb3NpdGlvbiA9IHBvc2l0aW9uc18xW19pXTtcclxuICAgICAgICB2YXIgdmFsdWUgPSBzdHlsZXNbJ3BhZGRpbmctJyArIHBvc2l0aW9uXTtcclxuICAgICAgICBwYWRkaW5nc1twb3NpdGlvbl0gPSB0b0Zsb2F0KHZhbHVlKTtcclxuICAgIH1cclxuICAgIHJldHVybiBwYWRkaW5ncztcclxufVxyXG4vKipcclxuICogQ2FsY3VsYXRlcyBjb250ZW50IHJlY3RhbmdsZSBvZiBwcm92aWRlZCBTVkcgZWxlbWVudC5cclxuICpcclxuICogQHBhcmFtIHtTVkdHcmFwaGljc0VsZW1lbnR9IHRhcmdldCAtIEVsZW1lbnQgY29udGVudCByZWN0YW5nbGUgb2Ygd2hpY2ggbmVlZHNcclxuICogICAgICB0byBiZSBjYWxjdWxhdGVkLlxyXG4gKiBAcmV0dXJucyB7RE9NUmVjdEluaXR9XHJcbiAqL1xyXG5mdW5jdGlvbiBnZXRTVkdDb250ZW50UmVjdCh0YXJnZXQpIHtcclxuICAgIHZhciBiYm94ID0gdGFyZ2V0LmdldEJCb3goKTtcclxuICAgIHJldHVybiBjcmVhdGVSZWN0SW5pdCgwLCAwLCBiYm94LndpZHRoLCBiYm94LmhlaWdodCk7XHJcbn1cclxuLyoqXHJcbiAqIENhbGN1bGF0ZXMgY29udGVudCByZWN0YW5nbGUgb2YgcHJvdmlkZWQgSFRNTEVsZW1lbnQuXHJcbiAqXHJcbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IHRhcmdldCAtIEVsZW1lbnQgZm9yIHdoaWNoIHRvIGNhbGN1bGF0ZSB0aGUgY29udGVudCByZWN0YW5nbGUuXHJcbiAqIEByZXR1cm5zIHtET01SZWN0SW5pdH1cclxuICovXHJcbmZ1bmN0aW9uIGdldEhUTUxFbGVtZW50Q29udGVudFJlY3QodGFyZ2V0KSB7XHJcbiAgICAvLyBDbGllbnQgd2lkdGggJiBoZWlnaHQgcHJvcGVydGllcyBjYW4ndCBiZVxyXG4gICAgLy8gdXNlZCBleGNsdXNpdmVseSBhcyB0aGV5IHByb3ZpZGUgcm91bmRlZCB2YWx1ZXMuXHJcbiAgICB2YXIgY2xpZW50V2lkdGggPSB0YXJnZXQuY2xpZW50V2lkdGgsIGNsaWVudEhlaWdodCA9IHRhcmdldC5jbGllbnRIZWlnaHQ7XHJcbiAgICAvLyBCeSB0aGlzIGNvbmRpdGlvbiB3ZSBjYW4gY2F0Y2ggYWxsIG5vbi1yZXBsYWNlZCBpbmxpbmUsIGhpZGRlbiBhbmRcclxuICAgIC8vIGRldGFjaGVkIGVsZW1lbnRzLiBUaG91Z2ggZWxlbWVudHMgd2l0aCB3aWR0aCAmIGhlaWdodCBwcm9wZXJ0aWVzIGxlc3NcclxuICAgIC8vIHRoYW4gMC41IHdpbGwgYmUgZGlzY2FyZGVkIGFzIHdlbGwuXHJcbiAgICAvL1xyXG4gICAgLy8gV2l0aG91dCBpdCB3ZSB3b3VsZCBuZWVkIHRvIGltcGxlbWVudCBzZXBhcmF0ZSBtZXRob2RzIGZvciBlYWNoIG9mXHJcbiAgICAvLyB0aG9zZSBjYXNlcyBhbmQgaXQncyBub3QgcG9zc2libGUgdG8gcGVyZm9ybSBhIHByZWNpc2UgYW5kIHBlcmZvcm1hbmNlXHJcbiAgICAvLyBlZmZlY3RpdmUgdGVzdCBmb3IgaGlkZGVuIGVsZW1lbnRzLiBFLmcuIGV2ZW4galF1ZXJ5J3MgJzp2aXNpYmxlJyBmaWx0ZXJcclxuICAgIC8vIGdpdmVzIHdyb25nIHJlc3VsdHMgZm9yIGVsZW1lbnRzIHdpdGggd2lkdGggJiBoZWlnaHQgbGVzcyB0aGFuIDAuNS5cclxuICAgIGlmICghY2xpZW50V2lkdGggJiYgIWNsaWVudEhlaWdodCkge1xyXG4gICAgICAgIHJldHVybiBlbXB0eVJlY3Q7XHJcbiAgICB9XHJcbiAgICB2YXIgc3R5bGVzID0gZ2V0V2luZG93T2YodGFyZ2V0KS5nZXRDb21wdXRlZFN0eWxlKHRhcmdldCk7XHJcbiAgICB2YXIgcGFkZGluZ3MgPSBnZXRQYWRkaW5ncyhzdHlsZXMpO1xyXG4gICAgdmFyIGhvcml6UGFkID0gcGFkZGluZ3MubGVmdCArIHBhZGRpbmdzLnJpZ2h0O1xyXG4gICAgdmFyIHZlcnRQYWQgPSBwYWRkaW5ncy50b3AgKyBwYWRkaW5ncy5ib3R0b207XHJcbiAgICAvLyBDb21wdXRlZCBzdHlsZXMgb2Ygd2lkdGggJiBoZWlnaHQgYXJlIGJlaW5nIHVzZWQgYmVjYXVzZSB0aGV5IGFyZSB0aGVcclxuICAgIC8vIG9ubHkgZGltZW5zaW9ucyBhdmFpbGFibGUgdG8gSlMgdGhhdCBjb250YWluIG5vbi1yb3VuZGVkIHZhbHVlcy4gSXQgY291bGRcclxuICAgIC8vIGJlIHBvc3NpYmxlIHRvIHV0aWxpemUgdGhlIGdldEJvdW5kaW5nQ2xpZW50UmVjdCBpZiBvbmx5IGl0J3MgZGF0YSB3YXNuJ3RcclxuICAgIC8vIGFmZmVjdGVkIGJ5IENTUyB0cmFuc2Zvcm1hdGlvbnMgbGV0IGFsb25lIHBhZGRpbmdzLCBib3JkZXJzIGFuZCBzY3JvbGwgYmFycy5cclxuICAgIHZhciB3aWR0aCA9IHRvRmxvYXQoc3R5bGVzLndpZHRoKSwgaGVpZ2h0ID0gdG9GbG9hdChzdHlsZXMuaGVpZ2h0KTtcclxuICAgIC8vIFdpZHRoICYgaGVpZ2h0IGluY2x1ZGUgcGFkZGluZ3MgYW5kIGJvcmRlcnMgd2hlbiB0aGUgJ2JvcmRlci1ib3gnIGJveFxyXG4gICAgLy8gbW9kZWwgaXMgYXBwbGllZCAoZXhjZXB0IGZvciBJRSkuXHJcbiAgICBpZiAoc3R5bGVzLmJveFNpemluZyA9PT0gJ2JvcmRlci1ib3gnKSB7XHJcbiAgICAgICAgLy8gRm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIHJlcXVpcmVkIHRvIGhhbmRsZSBJbnRlcm5ldCBFeHBsb3JlciB3aGljaFxyXG4gICAgICAgIC8vIGRvZXNuJ3QgaW5jbHVkZSBwYWRkaW5ncyBhbmQgYm9yZGVycyB0byBjb21wdXRlZCBDU1MgZGltZW5zaW9ucy5cclxuICAgICAgICAvL1xyXG4gICAgICAgIC8vIFdlIGNhbiBzYXkgdGhhdCBpZiBDU1MgZGltZW5zaW9ucyArIHBhZGRpbmdzIGFyZSBlcXVhbCB0byB0aGUgXCJjbGllbnRcIlxyXG4gICAgICAgIC8vIHByb3BlcnRpZXMgdGhlbiBpdCdzIGVpdGhlciBJRSwgYW5kIHRodXMgd2UgZG9uJ3QgbmVlZCB0byBzdWJ0cmFjdFxyXG4gICAgICAgIC8vIGFueXRoaW5nLCBvciBhbiBlbGVtZW50IG1lcmVseSBkb2Vzbid0IGhhdmUgcGFkZGluZ3MvYm9yZGVycyBzdHlsZXMuXHJcbiAgICAgICAgaWYgKE1hdGgucm91bmQod2lkdGggKyBob3JpelBhZCkgIT09IGNsaWVudFdpZHRoKSB7XHJcbiAgICAgICAgICAgIHdpZHRoIC09IGdldEJvcmRlcnNTaXplKHN0eWxlcywgJ2xlZnQnLCAncmlnaHQnKSArIGhvcml6UGFkO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoTWF0aC5yb3VuZChoZWlnaHQgKyB2ZXJ0UGFkKSAhPT0gY2xpZW50SGVpZ2h0KSB7XHJcbiAgICAgICAgICAgIGhlaWdodCAtPSBnZXRCb3JkZXJzU2l6ZShzdHlsZXMsICd0b3AnLCAnYm90dG9tJykgKyB2ZXJ0UGFkO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIEZvbGxvd2luZyBzdGVwcyBjYW4ndCBiZSBhcHBsaWVkIHRvIHRoZSBkb2N1bWVudCdzIHJvb3QgZWxlbWVudCBhcyBpdHNcclxuICAgIC8vIGNsaWVudFtXaWR0aC9IZWlnaHRdIHByb3BlcnRpZXMgcmVwcmVzZW50IHZpZXdwb3J0IGFyZWEgb2YgdGhlIHdpbmRvdy5cclxuICAgIC8vIEJlc2lkZXMsIGl0J3MgYXMgd2VsbCBub3QgbmVjZXNzYXJ5IGFzIHRoZSA8aHRtbD4gaXRzZWxmIG5laXRoZXIgaGFzXHJcbiAgICAvLyByZW5kZXJlZCBzY3JvbGwgYmFycyBub3IgaXQgY2FuIGJlIGNsaXBwZWQuXHJcbiAgICBpZiAoIWlzRG9jdW1lbnRFbGVtZW50KHRhcmdldCkpIHtcclxuICAgICAgICAvLyBJbiBzb21lIGJyb3dzZXJzIChvbmx5IGluIEZpcmVmb3gsIGFjdHVhbGx5KSBDU1Mgd2lkdGggJiBoZWlnaHRcclxuICAgICAgICAvLyBpbmNsdWRlIHNjcm9sbCBiYXJzIHNpemUgd2hpY2ggY2FuIGJlIHJlbW92ZWQgYXQgdGhpcyBzdGVwIGFzIHNjcm9sbFxyXG4gICAgICAgIC8vIGJhcnMgYXJlIHRoZSBvbmx5IGRpZmZlcmVuY2UgYmV0d2VlbiByb3VuZGVkIGRpbWVuc2lvbnMgKyBwYWRkaW5nc1xyXG4gICAgICAgIC8vIGFuZCBcImNsaWVudFwiIHByb3BlcnRpZXMsIHRob3VnaCB0aGF0IGlzIG5vdCBhbHdheXMgdHJ1ZSBpbiBDaHJvbWUuXHJcbiAgICAgICAgdmFyIHZlcnRTY3JvbGxiYXIgPSBNYXRoLnJvdW5kKHdpZHRoICsgaG9yaXpQYWQpIC0gY2xpZW50V2lkdGg7XHJcbiAgICAgICAgdmFyIGhvcml6U2Nyb2xsYmFyID0gTWF0aC5yb3VuZChoZWlnaHQgKyB2ZXJ0UGFkKSAtIGNsaWVudEhlaWdodDtcclxuICAgICAgICAvLyBDaHJvbWUgaGFzIGEgcmF0aGVyIHdlaXJkIHJvdW5kaW5nIG9mIFwiY2xpZW50XCIgcHJvcGVydGllcy5cclxuICAgICAgICAvLyBFLmcuIGZvciBhbiBlbGVtZW50IHdpdGggY29udGVudCB3aWR0aCBvZiAzMTQuMnB4IGl0IHNvbWV0aW1lcyBnaXZlc1xyXG4gICAgICAgIC8vIHRoZSBjbGllbnQgd2lkdGggb2YgMzE1cHggYW5kIGZvciB0aGUgd2lkdGggb2YgMzE0LjdweCBpdCBtYXkgZ2l2ZVxyXG4gICAgICAgIC8vIDMxNHB4LiBBbmQgaXQgZG9lc24ndCBoYXBwZW4gYWxsIHRoZSB0aW1lLiBTbyBqdXN0IGlnbm9yZSB0aGlzIGRlbHRhXHJcbiAgICAgICAgLy8gYXMgYSBub24tcmVsZXZhbnQuXHJcbiAgICAgICAgaWYgKE1hdGguYWJzKHZlcnRTY3JvbGxiYXIpICE9PSAxKSB7XHJcbiAgICAgICAgICAgIHdpZHRoIC09IHZlcnRTY3JvbGxiYXI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChNYXRoLmFicyhob3JpelNjcm9sbGJhcikgIT09IDEpIHtcclxuICAgICAgICAgICAgaGVpZ2h0IC09IGhvcml6U2Nyb2xsYmFyO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBjcmVhdGVSZWN0SW5pdChwYWRkaW5ncy5sZWZ0LCBwYWRkaW5ncy50b3AsIHdpZHRoLCBoZWlnaHQpO1xyXG59XHJcbi8qKlxyXG4gKiBDaGVja3Mgd2hldGhlciBwcm92aWRlZCBlbGVtZW50IGlzIGFuIGluc3RhbmNlIG9mIHRoZSBTVkdHcmFwaGljc0VsZW1lbnQuXHJcbiAqXHJcbiAqIEBwYXJhbSB7RWxlbWVudH0gdGFyZ2V0IC0gRWxlbWVudCB0byBiZSBjaGVja2VkLlxyXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cclxuICovXHJcbnZhciBpc1NWR0dyYXBoaWNzRWxlbWVudCA9IChmdW5jdGlvbiAoKSB7XHJcbiAgICAvLyBTb21lIGJyb3dzZXJzLCBuYW1lbHkgSUUgYW5kIEVkZ2UsIGRvbid0IGhhdmUgdGhlIFNWR0dyYXBoaWNzRWxlbWVudFxyXG4gICAgLy8gaW50ZXJmYWNlLlxyXG4gICAgaWYgKHR5cGVvZiBTVkdHcmFwaGljc0VsZW1lbnQgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQpIHsgcmV0dXJuIHRhcmdldCBpbnN0YW5jZW9mIGdldFdpbmRvd09mKHRhcmdldCkuU1ZHR3JhcGhpY3NFbGVtZW50OyB9O1xyXG4gICAgfVxyXG4gICAgLy8gSWYgaXQncyBzbywgdGhlbiBjaGVjayB0aGF0IGVsZW1lbnQgaXMgYXQgbGVhc3QgYW4gaW5zdGFuY2Ugb2YgdGhlXHJcbiAgICAvLyBTVkdFbGVtZW50IGFuZCB0aGF0IGl0IGhhcyB0aGUgXCJnZXRCQm94XCIgbWV0aG9kLlxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWV4dHJhLXBhcmVuc1xyXG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQpIHsgcmV0dXJuICh0YXJnZXQgaW5zdGFuY2VvZiBnZXRXaW5kb3dPZih0YXJnZXQpLlNWR0VsZW1lbnQgJiZcclxuICAgICAgICB0eXBlb2YgdGFyZ2V0LmdldEJCb3ggPT09ICdmdW5jdGlvbicpOyB9O1xyXG59KSgpO1xyXG4vKipcclxuICogQ2hlY2tzIHdoZXRoZXIgcHJvdmlkZWQgZWxlbWVudCBpcyBhIGRvY3VtZW50IGVsZW1lbnQgKDxodG1sPikuXHJcbiAqXHJcbiAqIEBwYXJhbSB7RWxlbWVudH0gdGFyZ2V0IC0gRWxlbWVudCB0byBiZSBjaGVja2VkLlxyXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cclxuICovXHJcbmZ1bmN0aW9uIGlzRG9jdW1lbnRFbGVtZW50KHRhcmdldCkge1xyXG4gICAgcmV0dXJuIHRhcmdldCA9PT0gZ2V0V2luZG93T2YodGFyZ2V0KS5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XHJcbn1cclxuLyoqXHJcbiAqIENhbGN1bGF0ZXMgYW4gYXBwcm9wcmlhdGUgY29udGVudCByZWN0YW5nbGUgZm9yIHByb3ZpZGVkIGh0bWwgb3Igc3ZnIGVsZW1lbnQuXHJcbiAqXHJcbiAqIEBwYXJhbSB7RWxlbWVudH0gdGFyZ2V0IC0gRWxlbWVudCBjb250ZW50IHJlY3RhbmdsZSBvZiB3aGljaCBuZWVkcyB0byBiZSBjYWxjdWxhdGVkLlxyXG4gKiBAcmV0dXJucyB7RE9NUmVjdEluaXR9XHJcbiAqL1xyXG5mdW5jdGlvbiBnZXRDb250ZW50UmVjdCh0YXJnZXQpIHtcclxuICAgIGlmICghaXNCcm93c2VyKSB7XHJcbiAgICAgICAgcmV0dXJuIGVtcHR5UmVjdDtcclxuICAgIH1cclxuICAgIGlmIChpc1NWR0dyYXBoaWNzRWxlbWVudCh0YXJnZXQpKSB7XHJcbiAgICAgICAgcmV0dXJuIGdldFNWR0NvbnRlbnRSZWN0KHRhcmdldCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZ2V0SFRNTEVsZW1lbnRDb250ZW50UmVjdCh0YXJnZXQpO1xyXG59XHJcbi8qKlxyXG4gKiBDcmVhdGVzIHJlY3RhbmdsZSB3aXRoIGFuIGludGVyZmFjZSBvZiB0aGUgRE9NUmVjdFJlYWRPbmx5LlxyXG4gKiBTcGVjOiBodHRwczovL2RyYWZ0cy5meHRmLm9yZy9nZW9tZXRyeS8jZG9tcmVjdHJlYWRvbmx5XHJcbiAqXHJcbiAqIEBwYXJhbSB7RE9NUmVjdEluaXR9IHJlY3RJbml0IC0gT2JqZWN0IHdpdGggcmVjdGFuZ2xlJ3MgeC95IGNvb3JkaW5hdGVzIGFuZCBkaW1lbnNpb25zLlxyXG4gKiBAcmV0dXJucyB7RE9NUmVjdFJlYWRPbmx5fVxyXG4gKi9cclxuZnVuY3Rpb24gY3JlYXRlUmVhZE9ubHlSZWN0KF9hKSB7XHJcbiAgICB2YXIgeCA9IF9hLngsIHkgPSBfYS55LCB3aWR0aCA9IF9hLndpZHRoLCBoZWlnaHQgPSBfYS5oZWlnaHQ7XHJcbiAgICAvLyBJZiBET01SZWN0UmVhZE9ubHkgaXMgYXZhaWxhYmxlIHVzZSBpdCBhcyBhIHByb3RvdHlwZSBmb3IgdGhlIHJlY3RhbmdsZS5cclxuICAgIHZhciBDb25zdHIgPSB0eXBlb2YgRE9NUmVjdFJlYWRPbmx5ICE9PSAndW5kZWZpbmVkJyA/IERPTVJlY3RSZWFkT25seSA6IE9iamVjdDtcclxuICAgIHZhciByZWN0ID0gT2JqZWN0LmNyZWF0ZShDb25zdHIucHJvdG90eXBlKTtcclxuICAgIC8vIFJlY3RhbmdsZSdzIHByb3BlcnRpZXMgYXJlIG5vdCB3cml0YWJsZSBhbmQgbm9uLWVudW1lcmFibGUuXHJcbiAgICBkZWZpbmVDb25maWd1cmFibGUocmVjdCwge1xyXG4gICAgICAgIHg6IHgsIHk6IHksIHdpZHRoOiB3aWR0aCwgaGVpZ2h0OiBoZWlnaHQsXHJcbiAgICAgICAgdG9wOiB5LFxyXG4gICAgICAgIHJpZ2h0OiB4ICsgd2lkdGgsXHJcbiAgICAgICAgYm90dG9tOiBoZWlnaHQgKyB5LFxyXG4gICAgICAgIGxlZnQ6IHhcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHJlY3Q7XHJcbn1cclxuLyoqXHJcbiAqIENyZWF0ZXMgRE9NUmVjdEluaXQgb2JqZWN0IGJhc2VkIG9uIHRoZSBwcm92aWRlZCBkaW1lbnNpb25zIGFuZCB0aGUgeC95IGNvb3JkaW5hdGVzLlxyXG4gKiBTcGVjOiBodHRwczovL2RyYWZ0cy5meHRmLm9yZy9nZW9tZXRyeS8jZGljdGRlZi1kb21yZWN0aW5pdFxyXG4gKlxyXG4gKiBAcGFyYW0ge251bWJlcn0geCAtIFggY29vcmRpbmF0ZS5cclxuICogQHBhcmFtIHtudW1iZXJ9IHkgLSBZIGNvb3JkaW5hdGUuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSB3aWR0aCAtIFJlY3RhbmdsZSdzIHdpZHRoLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gaGVpZ2h0IC0gUmVjdGFuZ2xlJ3MgaGVpZ2h0LlxyXG4gKiBAcmV0dXJucyB7RE9NUmVjdEluaXR9XHJcbiAqL1xyXG5mdW5jdGlvbiBjcmVhdGVSZWN0SW5pdCh4LCB5LCB3aWR0aCwgaGVpZ2h0KSB7XHJcbiAgICByZXR1cm4geyB4OiB4LCB5OiB5LCB3aWR0aDogd2lkdGgsIGhlaWdodDogaGVpZ2h0IH07XHJcbn1cblxuLyoqXHJcbiAqIENsYXNzIHRoYXQgaXMgcmVzcG9uc2libGUgZm9yIGNvbXB1dGF0aW9ucyBvZiB0aGUgY29udGVudCByZWN0YW5nbGUgb2ZcclxuICogcHJvdmlkZWQgRE9NIGVsZW1lbnQgYW5kIGZvciBrZWVwaW5nIHRyYWNrIG9mIGl0J3MgY2hhbmdlcy5cclxuICovXHJcbnZhciBSZXNpemVPYnNlcnZhdGlvbiA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBSZXNpemVPYnNlcnZhdGlvbi5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge0VsZW1lbnR9IHRhcmdldCAtIEVsZW1lbnQgdG8gYmUgb2JzZXJ2ZWQuXHJcbiAgICAgKi9cclxuICAgIGZ1bmN0aW9uIFJlc2l6ZU9ic2VydmF0aW9uKHRhcmdldCkge1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEJyb2FkY2FzdGVkIHdpZHRoIG9mIGNvbnRlbnQgcmVjdGFuZ2xlLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmJyb2FkY2FzdFdpZHRoID0gMDtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBCcm9hZGNhc3RlZCBoZWlnaHQgb2YgY29udGVudCByZWN0YW5nbGUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuYnJvYWRjYXN0SGVpZ2h0ID0gMDtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBSZWZlcmVuY2UgdG8gdGhlIGxhc3Qgb2JzZXJ2ZWQgY29udGVudCByZWN0YW5nbGUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAcHJpdmF0ZSB7RE9NUmVjdEluaXR9XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5jb250ZW50UmVjdF8gPSBjcmVhdGVSZWN0SW5pdCgwLCAwLCAwLCAwKTtcclxuICAgICAgICB0aGlzLnRhcmdldCA9IHRhcmdldDtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogVXBkYXRlcyBjb250ZW50IHJlY3RhbmdsZSBhbmQgdGVsbHMgd2hldGhlciBpdCdzIHdpZHRoIG9yIGhlaWdodCBwcm9wZXJ0aWVzXHJcbiAgICAgKiBoYXZlIGNoYW5nZWQgc2luY2UgdGhlIGxhc3QgYnJvYWRjYXN0LlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHtib29sZWFufVxyXG4gICAgICovXHJcbiAgICBSZXNpemVPYnNlcnZhdGlvbi5wcm90b3R5cGUuaXNBY3RpdmUgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdmFyIHJlY3QgPSBnZXRDb250ZW50UmVjdCh0aGlzLnRhcmdldCk7XHJcbiAgICAgICAgdGhpcy5jb250ZW50UmVjdF8gPSByZWN0O1xyXG4gICAgICAgIHJldHVybiAocmVjdC53aWR0aCAhPT0gdGhpcy5icm9hZGNhc3RXaWR0aCB8fFxyXG4gICAgICAgICAgICByZWN0LmhlaWdodCAhPT0gdGhpcy5icm9hZGNhc3RIZWlnaHQpO1xyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogVXBkYXRlcyAnYnJvYWRjYXN0V2lkdGgnIGFuZCAnYnJvYWRjYXN0SGVpZ2h0JyBwcm9wZXJ0aWVzIHdpdGggYSBkYXRhXHJcbiAgICAgKiBmcm9tIHRoZSBjb3JyZXNwb25kaW5nIHByb3BlcnRpZXMgb2YgdGhlIGxhc3Qgb2JzZXJ2ZWQgY29udGVudCByZWN0YW5nbGUuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMge0RPTVJlY3RJbml0fSBMYXN0IG9ic2VydmVkIGNvbnRlbnQgcmVjdGFuZ2xlLlxyXG4gICAgICovXHJcbiAgICBSZXNpemVPYnNlcnZhdGlvbi5wcm90b3R5cGUuYnJvYWRjYXN0UmVjdCA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICB2YXIgcmVjdCA9IHRoaXMuY29udGVudFJlY3RfO1xyXG4gICAgICAgIHRoaXMuYnJvYWRjYXN0V2lkdGggPSByZWN0LndpZHRoO1xyXG4gICAgICAgIHRoaXMuYnJvYWRjYXN0SGVpZ2h0ID0gcmVjdC5oZWlnaHQ7XHJcbiAgICAgICAgcmV0dXJuIHJlY3Q7XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIFJlc2l6ZU9ic2VydmF0aW9uO1xyXG59KCkpO1xuXG52YXIgUmVzaXplT2JzZXJ2ZXJFbnRyeSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBSZXNpemVPYnNlcnZlckVudHJ5LlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7RWxlbWVudH0gdGFyZ2V0IC0gRWxlbWVudCB0aGF0IGlzIGJlaW5nIG9ic2VydmVkLlxyXG4gICAgICogQHBhcmFtIHtET01SZWN0SW5pdH0gcmVjdEluaXQgLSBEYXRhIG9mIHRoZSBlbGVtZW50J3MgY29udGVudCByZWN0YW5nbGUuXHJcbiAgICAgKi9cclxuICAgIGZ1bmN0aW9uIFJlc2l6ZU9ic2VydmVyRW50cnkodGFyZ2V0LCByZWN0SW5pdCkge1xyXG4gICAgICAgIHZhciBjb250ZW50UmVjdCA9IGNyZWF0ZVJlYWRPbmx5UmVjdChyZWN0SW5pdCk7XHJcbiAgICAgICAgLy8gQWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpY2F0aW9uIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBub3Qgd3JpdGFibGVcclxuICAgICAgICAvLyBhbmQgYXJlIGFsc28gbm90IGVudW1lcmFibGUgaW4gdGhlIG5hdGl2ZSBpbXBsZW1lbnRhdGlvbi5cclxuICAgICAgICAvL1xyXG4gICAgICAgIC8vIFByb3BlcnR5IGFjY2Vzc29ycyBhcmUgbm90IGJlaW5nIHVzZWQgYXMgdGhleSdkIHJlcXVpcmUgdG8gZGVmaW5lIGFcclxuICAgICAgICAvLyBwcml2YXRlIFdlYWtNYXAgc3RvcmFnZSB3aGljaCBtYXkgY2F1c2UgbWVtb3J5IGxlYWtzIGluIGJyb3dzZXJzIHRoYXRcclxuICAgICAgICAvLyBkb24ndCBzdXBwb3J0IHRoaXMgdHlwZSBvZiBjb2xsZWN0aW9ucy5cclxuICAgICAgICBkZWZpbmVDb25maWd1cmFibGUodGhpcywgeyB0YXJnZXQ6IHRhcmdldCwgY29udGVudFJlY3Q6IGNvbnRlbnRSZWN0IH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFJlc2l6ZU9ic2VydmVyRW50cnk7XHJcbn0oKSk7XG5cbnZhciBSZXNpemVPYnNlcnZlclNQSSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiBSZXNpemVPYnNlcnZlci5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1Jlc2l6ZU9ic2VydmVyQ2FsbGJhY2t9IGNhbGxiYWNrIC0gQ2FsbGJhY2sgZnVuY3Rpb24gdGhhdCBpcyBpbnZva2VkXHJcbiAgICAgKiAgICAgIHdoZW4gb25lIG9mIHRoZSBvYnNlcnZlZCBlbGVtZW50cyBjaGFuZ2VzIGl0J3MgY29udGVudCBkaW1lbnNpb25zLlxyXG4gICAgICogQHBhcmFtIHtSZXNpemVPYnNlcnZlckNvbnRyb2xsZXJ9IGNvbnRyb2xsZXIgLSBDb250cm9sbGVyIGluc3RhbmNlIHdoaWNoXHJcbiAgICAgKiAgICAgIGlzIHJlc3BvbnNpYmxlIGZvciB0aGUgdXBkYXRlcyBvZiBvYnNlcnZlci5cclxuICAgICAqIEBwYXJhbSB7UmVzaXplT2JzZXJ2ZXJ9IGNhbGxiYWNrQ3R4IC0gUmVmZXJlbmNlIHRvIHRoZSBwdWJsaWNcclxuICAgICAqICAgICAgUmVzaXplT2JzZXJ2ZXIgaW5zdGFuY2Ugd2hpY2ggd2lsbCBiZSBwYXNzZWQgdG8gY2FsbGJhY2sgZnVuY3Rpb24uXHJcbiAgICAgKi9cclxuICAgIGZ1bmN0aW9uIFJlc2l6ZU9ic2VydmVyU1BJKGNhbGxiYWNrLCBjb250cm9sbGVyLCBjYWxsYmFja0N0eCkge1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIENvbGxlY3Rpb24gb2YgcmVzaXplIG9ic2VydmF0aW9ucyB0aGF0IGhhdmUgZGV0ZWN0ZWQgY2hhbmdlcyBpbiBkaW1lbnNpb25zXHJcbiAgICAgICAgICogb2YgZWxlbWVudHMuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAcHJpdmF0ZSB7QXJyYXk8UmVzaXplT2JzZXJ2YXRpb24+fVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuYWN0aXZlT2JzZXJ2YXRpb25zXyA9IFtdO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFJlZ2lzdHJ5IG9mIHRoZSBSZXNpemVPYnNlcnZhdGlvbiBpbnN0YW5jZXMuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAcHJpdmF0ZSB7TWFwPEVsZW1lbnQsIFJlc2l6ZU9ic2VydmF0aW9uPn1cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLm9ic2VydmF0aW9uc18gPSBuZXcgTWFwU2hpbSgpO1xyXG4gICAgICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgIT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlIGNhbGxiYWNrIHByb3ZpZGVkIGFzIHBhcmFtZXRlciAxIGlzIG5vdCBhIGZ1bmN0aW9uLicpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNhbGxiYWNrXyA9IGNhbGxiYWNrO1xyXG4gICAgICAgIHRoaXMuY29udHJvbGxlcl8gPSBjb250cm9sbGVyO1xyXG4gICAgICAgIHRoaXMuY2FsbGJhY2tDdHhfID0gY2FsbGJhY2tDdHg7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFN0YXJ0cyBvYnNlcnZpbmcgcHJvdmlkZWQgZWxlbWVudC5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge0VsZW1lbnR9IHRhcmdldCAtIEVsZW1lbnQgdG8gYmUgb2JzZXJ2ZWQuXHJcbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2ZXJTUEkucHJvdG90eXBlLm9ic2VydmUgPSBmdW5jdGlvbiAodGFyZ2V0KSB7XHJcbiAgICAgICAgaWYgKCFhcmd1bWVudHMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJzEgYXJndW1lbnQgcmVxdWlyZWQsIGJ1dCBvbmx5IDAgcHJlc2VudC4nKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gRG8gbm90aGluZyBpZiBjdXJyZW50IGVudmlyb25tZW50IGRvZXNuJ3QgaGF2ZSB0aGUgRWxlbWVudCBpbnRlcmZhY2UuXHJcbiAgICAgICAgaWYgKHR5cGVvZiBFbGVtZW50ID09PSAndW5kZWZpbmVkJyB8fCAhKEVsZW1lbnQgaW5zdGFuY2VvZiBPYmplY3QpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCEodGFyZ2V0IGluc3RhbmNlb2YgZ2V0V2luZG93T2YodGFyZ2V0KS5FbGVtZW50KSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdwYXJhbWV0ZXIgMSBpcyBub3Qgb2YgdHlwZSBcIkVsZW1lbnRcIi4nKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIG9ic2VydmF0aW9ucyA9IHRoaXMub2JzZXJ2YXRpb25zXztcclxuICAgICAgICAvLyBEbyBub3RoaW5nIGlmIGVsZW1lbnQgaXMgYWxyZWFkeSBiZWluZyBvYnNlcnZlZC5cclxuICAgICAgICBpZiAob2JzZXJ2YXRpb25zLmhhcyh0YXJnZXQpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgb2JzZXJ2YXRpb25zLnNldCh0YXJnZXQsIG5ldyBSZXNpemVPYnNlcnZhdGlvbih0YXJnZXQpKTtcclxuICAgICAgICB0aGlzLmNvbnRyb2xsZXJfLmFkZE9ic2VydmVyKHRoaXMpO1xyXG4gICAgICAgIC8vIEZvcmNlIHRoZSB1cGRhdGUgb2Ygb2JzZXJ2YXRpb25zLlxyXG4gICAgICAgIHRoaXMuY29udHJvbGxlcl8ucmVmcmVzaCgpO1xyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogU3RvcHMgb2JzZXJ2aW5nIHByb3ZpZGVkIGVsZW1lbnQuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtFbGVtZW50fSB0YXJnZXQgLSBFbGVtZW50IHRvIHN0b3Agb2JzZXJ2aW5nLlxyXG4gICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgKi9cclxuICAgIFJlc2l6ZU9ic2VydmVyU1BJLnByb3RvdHlwZS51bm9ic2VydmUgPSBmdW5jdGlvbiAodGFyZ2V0KSB7XHJcbiAgICAgICAgaWYgKCFhcmd1bWVudHMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJzEgYXJndW1lbnQgcmVxdWlyZWQsIGJ1dCBvbmx5IDAgcHJlc2VudC4nKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gRG8gbm90aGluZyBpZiBjdXJyZW50IGVudmlyb25tZW50IGRvZXNuJ3QgaGF2ZSB0aGUgRWxlbWVudCBpbnRlcmZhY2UuXHJcbiAgICAgICAgaWYgKHR5cGVvZiBFbGVtZW50ID09PSAndW5kZWZpbmVkJyB8fCAhKEVsZW1lbnQgaW5zdGFuY2VvZiBPYmplY3QpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCEodGFyZ2V0IGluc3RhbmNlb2YgZ2V0V2luZG93T2YodGFyZ2V0KS5FbGVtZW50KSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdwYXJhbWV0ZXIgMSBpcyBub3Qgb2YgdHlwZSBcIkVsZW1lbnRcIi4nKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIG9ic2VydmF0aW9ucyA9IHRoaXMub2JzZXJ2YXRpb25zXztcclxuICAgICAgICAvLyBEbyBub3RoaW5nIGlmIGVsZW1lbnQgaXMgbm90IGJlaW5nIG9ic2VydmVkLlxyXG4gICAgICAgIGlmICghb2JzZXJ2YXRpb25zLmhhcyh0YXJnZXQpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgb2JzZXJ2YXRpb25zLmRlbGV0ZSh0YXJnZXQpO1xyXG4gICAgICAgIGlmICghb2JzZXJ2YXRpb25zLnNpemUpIHtcclxuICAgICAgICAgICAgdGhpcy5jb250cm9sbGVyXy5yZW1vdmVPYnNlcnZlcih0aGlzKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBTdG9wcyBvYnNlcnZpbmcgYWxsIGVsZW1lbnRzLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICovXHJcbiAgICBSZXNpemVPYnNlcnZlclNQSS5wcm90b3R5cGUuZGlzY29ubmVjdCA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICB0aGlzLmNsZWFyQWN0aXZlKCk7XHJcbiAgICAgICAgdGhpcy5vYnNlcnZhdGlvbnNfLmNsZWFyKCk7XHJcbiAgICAgICAgdGhpcy5jb250cm9sbGVyXy5yZW1vdmVPYnNlcnZlcih0aGlzKTtcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIENvbGxlY3RzIG9ic2VydmF0aW9uIGluc3RhbmNlcyB0aGUgYXNzb2NpYXRlZCBlbGVtZW50IG9mIHdoaWNoIGhhcyBjaGFuZ2VkXHJcbiAgICAgKiBpdCdzIGNvbnRlbnQgcmVjdGFuZ2xlLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICovXHJcbiAgICBSZXNpemVPYnNlcnZlclNQSS5wcm90b3R5cGUuZ2F0aGVyQWN0aXZlID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XHJcbiAgICAgICAgdGhpcy5jbGVhckFjdGl2ZSgpO1xyXG4gICAgICAgIHRoaXMub2JzZXJ2YXRpb25zXy5mb3JFYWNoKGZ1bmN0aW9uIChvYnNlcnZhdGlvbikge1xyXG4gICAgICAgICAgICBpZiAob2JzZXJ2YXRpb24uaXNBY3RpdmUoKSkge1xyXG4gICAgICAgICAgICAgICAgX3RoaXMuYWN0aXZlT2JzZXJ2YXRpb25zXy5wdXNoKG9ic2VydmF0aW9uKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogSW52b2tlcyBpbml0aWFsIGNhbGxiYWNrIGZ1bmN0aW9uIHdpdGggYSBsaXN0IG9mIFJlc2l6ZU9ic2VydmVyRW50cnlcclxuICAgICAqIGluc3RhbmNlcyBjb2xsZWN0ZWQgZnJvbSBhY3RpdmUgcmVzaXplIG9ic2VydmF0aW9ucy5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2ZXJTUEkucHJvdG90eXBlLmJyb2FkY2FzdEFjdGl2ZSA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAvLyBEbyBub3RoaW5nIGlmIG9ic2VydmVyIGRvZXNuJ3QgaGF2ZSBhY3RpdmUgb2JzZXJ2YXRpb25zLlxyXG4gICAgICAgIGlmICghdGhpcy5oYXNBY3RpdmUoKSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciBjdHggPSB0aGlzLmNhbGxiYWNrQ3R4XztcclxuICAgICAgICAvLyBDcmVhdGUgUmVzaXplT2JzZXJ2ZXJFbnRyeSBpbnN0YW5jZSBmb3IgZXZlcnkgYWN0aXZlIG9ic2VydmF0aW9uLlxyXG4gICAgICAgIHZhciBlbnRyaWVzID0gdGhpcy5hY3RpdmVPYnNlcnZhdGlvbnNfLm1hcChmdW5jdGlvbiAob2JzZXJ2YXRpb24pIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBSZXNpemVPYnNlcnZlckVudHJ5KG9ic2VydmF0aW9uLnRhcmdldCwgb2JzZXJ2YXRpb24uYnJvYWRjYXN0UmVjdCgpKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmNhbGxiYWNrXy5jYWxsKGN0eCwgZW50cmllcywgY3R4KTtcclxuICAgICAgICB0aGlzLmNsZWFyQWN0aXZlKCk7XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBDbGVhcnMgdGhlIGNvbGxlY3Rpb24gb2YgYWN0aXZlIG9ic2VydmF0aW9ucy5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2ZXJTUEkucHJvdG90eXBlLmNsZWFyQWN0aXZlID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHRoaXMuYWN0aXZlT2JzZXJ2YXRpb25zXy5zcGxpY2UoMCk7XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBUZWxscyB3aGV0aGVyIG9ic2VydmVyIGhhcyBhY3RpdmUgb2JzZXJ2YXRpb25zLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHtib29sZWFufVxyXG4gICAgICovXHJcbiAgICBSZXNpemVPYnNlcnZlclNQSS5wcm90b3R5cGUuaGFzQWN0aXZlID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmFjdGl2ZU9ic2VydmF0aW9uc18ubGVuZ3RoID4gMDtcclxuICAgIH07XHJcbiAgICByZXR1cm4gUmVzaXplT2JzZXJ2ZXJTUEk7XHJcbn0oKSk7XG5cbi8vIFJlZ2lzdHJ5IG9mIGludGVybmFsIG9ic2VydmVycy4gSWYgV2Vha01hcCBpcyBub3QgYXZhaWxhYmxlIHVzZSBjdXJyZW50IHNoaW1cclxuLy8gZm9yIHRoZSBNYXAgY29sbGVjdGlvbiBhcyBpdCBoYXMgYWxsIHJlcXVpcmVkIG1ldGhvZHMgYW5kIGJlY2F1c2UgV2Vha01hcFxyXG4vLyBjYW4ndCBiZSBmdWxseSBwb2x5ZmlsbGVkIGFueXdheS5cclxudmFyIG9ic2VydmVycyA9IHR5cGVvZiBXZWFrTWFwICE9PSAndW5kZWZpbmVkJyA/IG5ldyBXZWFrTWFwKCkgOiBuZXcgTWFwU2hpbSgpO1xyXG4vKipcclxuICogUmVzaXplT2JzZXJ2ZXIgQVBJLiBFbmNhcHN1bGF0ZXMgdGhlIFJlc2l6ZU9ic2VydmVyIFNQSSBpbXBsZW1lbnRhdGlvblxyXG4gKiBleHBvc2luZyBvbmx5IHRob3NlIG1ldGhvZHMgYW5kIHByb3BlcnRpZXMgdGhhdCBhcmUgZGVmaW5lZCBpbiB0aGUgc3BlYy5cclxuICovXHJcbnZhciBSZXNpemVPYnNlcnZlciA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiBSZXNpemVPYnNlcnZlci5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1Jlc2l6ZU9ic2VydmVyQ2FsbGJhY2t9IGNhbGxiYWNrIC0gQ2FsbGJhY2sgdGhhdCBpcyBpbnZva2VkIHdoZW5cclxuICAgICAqICAgICAgZGltZW5zaW9ucyBvZiB0aGUgb2JzZXJ2ZWQgZWxlbWVudHMgY2hhbmdlLlxyXG4gICAgICovXHJcbiAgICBmdW5jdGlvbiBSZXNpemVPYnNlcnZlcihjYWxsYmFjaykge1xyXG4gICAgICAgIGlmICghKHRoaXMgaW5zdGFuY2VvZiBSZXNpemVPYnNlcnZlcikpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uLicpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIWFyZ3VtZW50cy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignMSBhcmd1bWVudCByZXF1aXJlZCwgYnV0IG9ubHkgMCBwcmVzZW50LicpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2YXIgY29udHJvbGxlciA9IFJlc2l6ZU9ic2VydmVyQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpO1xyXG4gICAgICAgIHZhciBvYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlclNQSShjYWxsYmFjaywgY29udHJvbGxlciwgdGhpcyk7XHJcbiAgICAgICAgb2JzZXJ2ZXJzLnNldCh0aGlzLCBvYnNlcnZlcik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gUmVzaXplT2JzZXJ2ZXI7XHJcbn0oKSk7XHJcbi8vIEV4cG9zZSBwdWJsaWMgbWV0aG9kcyBvZiBSZXNpemVPYnNlcnZlci5cclxuW1xyXG4gICAgJ29ic2VydmUnLFxyXG4gICAgJ3Vub2JzZXJ2ZScsXHJcbiAgICAnZGlzY29ubmVjdCdcclxuXS5mb3JFYWNoKGZ1bmN0aW9uIChtZXRob2QpIHtcclxuICAgIFJlc2l6ZU9ic2VydmVyLnByb3RvdHlwZVttZXRob2RdID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHZhciBfYTtcclxuICAgICAgICByZXR1cm4gKF9hID0gb2JzZXJ2ZXJzLmdldCh0aGlzKSlbbWV0aG9kXS5hcHBseShfYSwgYXJndW1lbnRzKTtcclxuICAgIH07XHJcbn0pO1xuXG52YXIgaW5kZXggPSAoZnVuY3Rpb24gKCkge1xyXG4gICAgLy8gRXhwb3J0IGV4aXN0aW5nIGltcGxlbWVudGF0aW9uIGlmIGF2YWlsYWJsZS5cclxuICAgIGlmICh0eXBlb2YgZ2xvYmFsJDEuUmVzaXplT2JzZXJ2ZXIgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgcmV0dXJuIGdsb2JhbCQxLlJlc2l6ZU9ic2VydmVyO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFJlc2l6ZU9ic2VydmVyO1xyXG59KSgpO1xuXG5leHBvcnQgZGVmYXVsdCBpbmRleDtcbiIsIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuXG5mdW5jdGlvbiBzdXBwb3J0UmVmKG5vZGUpIHtcbiAgLy8gRnVuY3Rpb24gY29tcG9uZW50XG4gIGlmIChub2RlLnR5cGUgJiYgbm9kZS50eXBlLnByb3RvdHlwZSAmJiAhbm9kZS50eXBlLnByb3RvdHlwZS5yZW5kZXIpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZXhwb3J0cy5zdXBwb3J0UmVmID0gc3VwcG9ydFJlZjsiLCJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuY2FsY3VsYXRlTm9kZVN0eWxpbmcgPSBjYWxjdWxhdGVOb2RlU3R5bGluZztcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gY2FsY3VsYXRlTm9kZUhlaWdodDtcbi8vIFRoYW5rcyB0byBodHRwczovL2dpdGh1Yi5jb20vYW5kcmV5cG9wcC9yZWFjdC10ZXh0YXJlYS1hdXRvc2l6ZS9cblxuLyoqXG4gKiBjYWxjdWxhdGVOb2RlSGVpZ2h0KHVpVGV4dE5vZGUsIHVzZUNhY2hlID0gZmFsc2UpXG4gKi9cbnZhciBISURERU5fVEVYVEFSRUFfU1RZTEUgPSBcIlxcbiAgbWluLWhlaWdodDowICFpbXBvcnRhbnQ7XFxuICBtYXgtaGVpZ2h0Om5vbmUgIWltcG9ydGFudDtcXG4gIGhlaWdodDowICFpbXBvcnRhbnQ7XFxuICB2aXNpYmlsaXR5OmhpZGRlbiAhaW1wb3J0YW50O1xcbiAgb3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnQ7XFxuICBwb3NpdGlvbjphYnNvbHV0ZSAhaW1wb3J0YW50O1xcbiAgei1pbmRleDotMTAwMCAhaW1wb3J0YW50O1xcbiAgdG9wOjAgIWltcG9ydGFudDtcXG4gIHJpZ2h0OjAgIWltcG9ydGFudFxcblwiO1xudmFyIFNJWklOR19TVFlMRSA9IFsnbGV0dGVyLXNwYWNpbmcnLCAnbGluZS1oZWlnaHQnLCAncGFkZGluZy10b3AnLCAncGFkZGluZy1ib3R0b20nLCAnZm9udC1mYW1pbHknLCAnZm9udC13ZWlnaHQnLCAnZm9udC1zaXplJywgJ2ZvbnQtdmFyaWFudCcsICd0ZXh0LXJlbmRlcmluZycsICd0ZXh0LXRyYW5zZm9ybScsICd3aWR0aCcsICd0ZXh0LWluZGVudCcsICdwYWRkaW5nLWxlZnQnLCAncGFkZGluZy1yaWdodCcsICdib3JkZXItd2lkdGgnLCAnYm94LXNpemluZyddO1xudmFyIGNvbXB1dGVkU3R5bGVDYWNoZSA9IHt9O1xudmFyIGhpZGRlblRleHRhcmVhO1xuXG5mdW5jdGlvbiBjYWxjdWxhdGVOb2RlU3R5bGluZyhub2RlKSB7XG4gIHZhciB1c2VDYWNoZSA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDogZmFsc2U7XG4gIHZhciBub2RlUmVmID0gbm9kZS5nZXRBdHRyaWJ1dGUoJ2lkJykgfHwgbm9kZS5nZXRBdHRyaWJ1dGUoJ2RhdGEtcmVhY3RpZCcpIHx8IG5vZGUuZ2V0QXR0cmlidXRlKCduYW1lJyk7XG5cbiAgaWYgKHVzZUNhY2hlICYmIGNvbXB1dGVkU3R5bGVDYWNoZVtub2RlUmVmXSkge1xuICAgIHJldHVybiBjb21wdXRlZFN0eWxlQ2FjaGVbbm9kZVJlZl07XG4gIH1cblxuICB2YXIgc3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShub2RlKTtcbiAgdmFyIGJveFNpemluZyA9IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ2JveC1zaXppbmcnKSB8fCBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCctbW96LWJveC1zaXppbmcnKSB8fCBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWJveC1zaXppbmcnKTtcbiAgdmFyIHBhZGRpbmdTaXplID0gcGFyc2VGbG9hdChzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCdwYWRkaW5nLWJvdHRvbScpKSArIHBhcnNlRmxvYXQoc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgncGFkZGluZy10b3AnKSk7XG4gIHZhciBib3JkZXJTaXplID0gcGFyc2VGbG9hdChzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCdib3JkZXItYm90dG9tLXdpZHRoJykpICsgcGFyc2VGbG9hdChzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCdib3JkZXItdG9wLXdpZHRoJykpO1xuICB2YXIgc2l6aW5nU3R5bGUgPSBTSVpJTkdfU1RZTEUubWFwKGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgcmV0dXJuIFwiXCIuY29uY2F0KG5hbWUsIFwiOlwiKS5jb25jYXQoc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShuYW1lKSk7XG4gIH0pLmpvaW4oJzsnKTtcbiAgdmFyIG5vZGVJbmZvID0ge1xuICAgIHNpemluZ1N0eWxlOiBzaXppbmdTdHlsZSxcbiAgICBwYWRkaW5nU2l6ZTogcGFkZGluZ1NpemUsXG4gICAgYm9yZGVyU2l6ZTogYm9yZGVyU2l6ZSxcbiAgICBib3hTaXppbmc6IGJveFNpemluZ1xuICB9O1xuXG4gIGlmICh1c2VDYWNoZSAmJiBub2RlUmVmKSB7XG4gICAgY29tcHV0ZWRTdHlsZUNhY2hlW25vZGVSZWZdID0gbm9kZUluZm87XG4gIH1cblxuICByZXR1cm4gbm9kZUluZm87XG59XG5cbmZ1bmN0aW9uIGNhbGN1bGF0ZU5vZGVIZWlnaHQodWlUZXh0Tm9kZSkge1xuICB2YXIgdXNlQ2FjaGUgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IGZhbHNlO1xuICB2YXIgbWluUm93cyA9IGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIGFyZ3VtZW50c1syXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzJdIDogbnVsbDtcbiAgdmFyIG1heFJvd3MgPSBhcmd1bWVudHMubGVuZ3RoID4gMyAmJiBhcmd1bWVudHNbM10gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1szXSA6IG51bGw7XG5cbiAgaWYgKCFoaWRkZW5UZXh0YXJlYSkge1xuICAgIGhpZGRlblRleHRhcmVhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGV4dGFyZWEnKTtcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGhpZGRlblRleHRhcmVhKTtcbiAgfSAvLyBGaXggd3JhcD1cIm9mZlwiIGlzc3VlXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2FudC1kZXNpZ24vaXNzdWVzLzY1NzdcblxuXG4gIGlmICh1aVRleHROb2RlLmdldEF0dHJpYnV0ZSgnd3JhcCcpKSB7XG4gICAgaGlkZGVuVGV4dGFyZWEuc2V0QXR0cmlidXRlKCd3cmFwJywgdWlUZXh0Tm9kZS5nZXRBdHRyaWJ1dGUoJ3dyYXAnKSk7XG4gIH0gZWxzZSB7XG4gICAgaGlkZGVuVGV4dGFyZWEucmVtb3ZlQXR0cmlidXRlKCd3cmFwJyk7XG4gIH0gLy8gQ29weSBhbGwgQ1NTIHByb3BlcnRpZXMgdGhhdCBoYXZlIGFuIGltcGFjdCBvbiB0aGUgaGVpZ2h0IG9mIHRoZSBjb250ZW50IGluXG4gIC8vIHRoZSB0ZXh0Ym94XG5cblxuICB2YXIgX2NhbGN1bGF0ZU5vZGVTdHlsaW5nID0gY2FsY3VsYXRlTm9kZVN0eWxpbmcodWlUZXh0Tm9kZSwgdXNlQ2FjaGUpLFxuICAgICAgcGFkZGluZ1NpemUgPSBfY2FsY3VsYXRlTm9kZVN0eWxpbmcucGFkZGluZ1NpemUsXG4gICAgICBib3JkZXJTaXplID0gX2NhbGN1bGF0ZU5vZGVTdHlsaW5nLmJvcmRlclNpemUsXG4gICAgICBib3hTaXppbmcgPSBfY2FsY3VsYXRlTm9kZVN0eWxpbmcuYm94U2l6aW5nLFxuICAgICAgc2l6aW5nU3R5bGUgPSBfY2FsY3VsYXRlTm9kZVN0eWxpbmcuc2l6aW5nU3R5bGU7IC8vIE5lZWQgdG8gaGF2ZSB0aGUgb3ZlcmZsb3cgYXR0cmlidXRlIHRvIGhpZGUgdGhlIHNjcm9sbGJhciBvdGhlcndpc2VcbiAgLy8gdGV4dC1saW5lcyB3aWxsIG5vdCBjYWxjdWxhdGVkIHByb3Blcmx5IGFzIHRoZSBzaGFkb3cgd2lsbCB0ZWNobmljYWxseSBiZVxuICAvLyBuYXJyb3dlciBmb3IgY29udGVudFxuXG5cbiAgaGlkZGVuVGV4dGFyZWEuc2V0QXR0cmlidXRlKCdzdHlsZScsIFwiXCIuY29uY2F0KHNpemluZ1N0eWxlLCBcIjtcIikuY29uY2F0KEhJRERFTl9URVhUQVJFQV9TVFlMRSkpO1xuICBoaWRkZW5UZXh0YXJlYS52YWx1ZSA9IHVpVGV4dE5vZGUudmFsdWUgfHwgdWlUZXh0Tm9kZS5wbGFjZWhvbGRlciB8fCAnJztcbiAgdmFyIG1pbkhlaWdodCA9IE51bWJlci5NSU5fU0FGRV9JTlRFR0VSO1xuICB2YXIgbWF4SGVpZ2h0ID0gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVI7XG4gIHZhciBoZWlnaHQgPSBoaWRkZW5UZXh0YXJlYS5zY3JvbGxIZWlnaHQ7XG4gIHZhciBvdmVyZmxvd1k7XG5cbiAgaWYgKGJveFNpemluZyA9PT0gJ2JvcmRlci1ib3gnKSB7XG4gICAgLy8gYm9yZGVyLWJveDogYWRkIGJvcmRlciwgc2luY2UgaGVpZ2h0ID0gY29udGVudCArIHBhZGRpbmcgKyBib3JkZXJcbiAgICBoZWlnaHQgKz0gYm9yZGVyU2l6ZTtcbiAgfSBlbHNlIGlmIChib3hTaXppbmcgPT09ICdjb250ZW50LWJveCcpIHtcbiAgICAvLyByZW1vdmUgcGFkZGluZywgc2luY2UgaGVpZ2h0ID0gY29udGVudFxuICAgIGhlaWdodCAtPSBwYWRkaW5nU2l6ZTtcbiAgfVxuXG4gIGlmIChtaW5Sb3dzICE9PSBudWxsIHx8IG1heFJvd3MgIT09IG51bGwpIHtcbiAgICAvLyBtZWFzdXJlIGhlaWdodCBvZiBhIHRleHRhcmVhIHdpdGggYSBzaW5nbGUgcm93XG4gICAgaGlkZGVuVGV4dGFyZWEudmFsdWUgPSAnICc7XG4gICAgdmFyIHNpbmdsZVJvd0hlaWdodCA9IGhpZGRlblRleHRhcmVhLnNjcm9sbEhlaWdodCAtIHBhZGRpbmdTaXplO1xuXG4gICAgaWYgKG1pblJvd3MgIT09IG51bGwpIHtcbiAgICAgIG1pbkhlaWdodCA9IHNpbmdsZVJvd0hlaWdodCAqIG1pblJvd3M7XG5cbiAgICAgIGlmIChib3hTaXppbmcgPT09ICdib3JkZXItYm94Jykge1xuICAgICAgICBtaW5IZWlnaHQgPSBtaW5IZWlnaHQgKyBwYWRkaW5nU2l6ZSArIGJvcmRlclNpemU7XG4gICAgICB9XG5cbiAgICAgIGhlaWdodCA9IE1hdGgubWF4KG1pbkhlaWdodCwgaGVpZ2h0KTtcbiAgICB9XG5cbiAgICBpZiAobWF4Um93cyAhPT0gbnVsbCkge1xuICAgICAgbWF4SGVpZ2h0ID0gc2luZ2xlUm93SGVpZ2h0ICogbWF4Um93cztcblxuICAgICAgaWYgKGJveFNpemluZyA9PT0gJ2JvcmRlci1ib3gnKSB7XG4gICAgICAgIG1heEhlaWdodCA9IG1heEhlaWdodCArIHBhZGRpbmdTaXplICsgYm9yZGVyU2l6ZTtcbiAgICAgIH1cblxuICAgICAgb3ZlcmZsb3dZID0gaGVpZ2h0ID4gbWF4SGVpZ2h0ID8gJycgOiAnaGlkZGVuJztcbiAgICAgIGhlaWdodCA9IE1hdGgubWluKG1heEhlaWdodCwgaGVpZ2h0KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGhlaWdodDogaGVpZ2h0LFxuICAgIG1pbkhlaWdodDogbWluSGVpZ2h0LFxuICAgIG1heEhlaWdodDogbWF4SGVpZ2h0LFxuICAgIG92ZXJmbG93WTogb3ZlcmZsb3dZXG4gIH07XG59IiwidmFyIG5vdyA9IHJlcXVpcmUoJ3BlcmZvcm1hbmNlLW5vdycpXG4gICwgcm9vdCA9IHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnID8gZ2xvYmFsIDogd2luZG93XG4gICwgdmVuZG9ycyA9IFsnbW96JywgJ3dlYmtpdCddXG4gICwgc3VmZml4ID0gJ0FuaW1hdGlvbkZyYW1lJ1xuICAsIHJhZiA9IHJvb3RbJ3JlcXVlc3QnICsgc3VmZml4XVxuICAsIGNhZiA9IHJvb3RbJ2NhbmNlbCcgKyBzdWZmaXhdIHx8IHJvb3RbJ2NhbmNlbFJlcXVlc3QnICsgc3VmZml4XVxuXG5mb3IodmFyIGkgPSAwOyAhcmFmICYmIGkgPCB2ZW5kb3JzLmxlbmd0aDsgaSsrKSB7XG4gIHJhZiA9IHJvb3RbdmVuZG9yc1tpXSArICdSZXF1ZXN0JyArIHN1ZmZpeF1cbiAgY2FmID0gcm9vdFt2ZW5kb3JzW2ldICsgJ0NhbmNlbCcgKyBzdWZmaXhdXG4gICAgICB8fCByb290W3ZlbmRvcnNbaV0gKyAnQ2FuY2VsUmVxdWVzdCcgKyBzdWZmaXhdXG59XG5cbi8vIFNvbWUgdmVyc2lvbnMgb2YgRkYgaGF2ZSByQUYgYnV0IG5vdCBjQUZcbmlmKCFyYWYgfHwgIWNhZikge1xuICB2YXIgbGFzdCA9IDBcbiAgICAsIGlkID0gMFxuICAgICwgcXVldWUgPSBbXVxuICAgICwgZnJhbWVEdXJhdGlvbiA9IDEwMDAgLyA2MFxuXG4gIHJhZiA9IGZ1bmN0aW9uKGNhbGxiYWNrKSB7XG4gICAgaWYocXVldWUubGVuZ3RoID09PSAwKSB7XG4gICAgICB2YXIgX25vdyA9IG5vdygpXG4gICAgICAgICwgbmV4dCA9IE1hdGgubWF4KDAsIGZyYW1lRHVyYXRpb24gLSAoX25vdyAtIGxhc3QpKVxuICAgICAgbGFzdCA9IG5leHQgKyBfbm93XG4gICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgY3AgPSBxdWV1ZS5zbGljZSgwKVxuICAgICAgICAvLyBDbGVhciBxdWV1ZSBoZXJlIHRvIHByZXZlbnRcbiAgICAgICAgLy8gY2FsbGJhY2tzIGZyb20gYXBwZW5kaW5nIGxpc3RlbmVyc1xuICAgICAgICAvLyB0byB0aGUgY3VycmVudCBmcmFtZSdzIHF1ZXVlXG4gICAgICAgIHF1ZXVlLmxlbmd0aCA9IDBcbiAgICAgICAgZm9yKHZhciBpID0gMDsgaSA8IGNwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgaWYoIWNwW2ldLmNhbmNlbGxlZCkge1xuICAgICAgICAgICAgdHJ5e1xuICAgICAgICAgICAgICBjcFtpXS5jYWxsYmFjayhsYXN0KVxuICAgICAgICAgICAgfSBjYXRjaChlKSB7XG4gICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHRocm93IGUgfSwgMClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sIE1hdGgucm91bmQobmV4dCkpXG4gICAgfVxuICAgIHF1ZXVlLnB1c2goe1xuICAgICAgaGFuZGxlOiArK2lkLFxuICAgICAgY2FsbGJhY2s6IGNhbGxiYWNrLFxuICAgICAgY2FuY2VsbGVkOiBmYWxzZVxuICAgIH0pXG4gICAgcmV0dXJuIGlkXG4gIH1cblxuICBjYWYgPSBmdW5jdGlvbihoYW5kbGUpIHtcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgcXVldWUubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmKHF1ZXVlW2ldLmhhbmRsZSA9PT0gaGFuZGxlKSB7XG4gICAgICAgIHF1ZXVlW2ldLmNhbmNlbGxlZCA9IHRydWVcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihmbikge1xuICAvLyBXcmFwIGluIGEgbmV3IGZ1bmN0aW9uIHRvIHByZXZlbnRcbiAgLy8gYGNhbmNlbGAgcG90ZW50aWFsbHkgYmVpbmcgYXNzaWduZWRcbiAgLy8gdG8gdGhlIG5hdGl2ZSByQUYgZnVuY3Rpb25cbiAgcmV0dXJuIHJhZi5jYWxsKHJvb3QsIGZuKVxufVxubW9kdWxlLmV4cG9ydHMuY2FuY2VsID0gZnVuY3Rpb24oKSB7XG4gIGNhZi5hcHBseShyb290LCBhcmd1bWVudHMpXG59XG5tb2R1bGUuZXhwb3J0cy5wb2x5ZmlsbCA9IGZ1bmN0aW9uKG9iamVjdCkge1xuICBpZiAoIW9iamVjdCkge1xuICAgIG9iamVjdCA9IHJvb3Q7XG4gIH1cbiAgb2JqZWN0LnJlcXVlc3RBbmltYXRpb25GcmFtZSA9IHJhZlxuICBvYmplY3QuY2FuY2VsQW5pbWF0aW9uRnJhbWUgPSBjYWZcbn1cbiIsIi8vIEdlbmVyYXRlZCBieSBDb2ZmZWVTY3JpcHQgMS4xMi4yXG4oZnVuY3Rpb24oKSB7XG4gIHZhciBnZXROYW5vU2Vjb25kcywgaHJ0aW1lLCBsb2FkVGltZSwgbW9kdWxlTG9hZFRpbWUsIG5vZGVMb2FkVGltZSwgdXBUaW1lO1xuXG4gIGlmICgodHlwZW9mIHBlcmZvcm1hbmNlICE9PSBcInVuZGVmaW5lZFwiICYmIHBlcmZvcm1hbmNlICE9PSBudWxsKSAmJiBwZXJmb3JtYW5jZS5ub3cpIHtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHBlcmZvcm1hbmNlLm5vdygpO1xuICAgIH07XG4gIH0gZWxzZSBpZiAoKHR5cGVvZiBwcm9jZXNzICE9PSBcInVuZGVmaW5lZFwiICYmIHByb2Nlc3MgIT09IG51bGwpICYmIHByb2Nlc3MuaHJ0aW1lKSB7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiAoZ2V0TmFub1NlY29uZHMoKSAtIG5vZGVMb2FkVGltZSkgLyAxZTY7XG4gICAgfTtcbiAgICBocnRpbWUgPSBwcm9jZXNzLmhydGltZTtcbiAgICBnZXROYW5vU2Vjb25kcyA9IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIGhyO1xuICAgICAgaHIgPSBocnRpbWUoKTtcbiAgICAgIHJldHVybiBoclswXSAqIDFlOSArIGhyWzFdO1xuICAgIH07XG4gICAgbW9kdWxlTG9hZFRpbWUgPSBnZXROYW5vU2Vjb25kcygpO1xuICAgIHVwVGltZSA9IHByb2Nlc3MudXB0aW1lKCkgKiAxZTk7XG4gICAgbm9kZUxvYWRUaW1lID0gbW9kdWxlTG9hZFRpbWUgLSB1cFRpbWU7XG4gIH0gZWxzZSBpZiAoRGF0ZS5ub3cpIHtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIERhdGUubm93KCkgLSBsb2FkVGltZTtcbiAgICB9O1xuICAgIGxvYWRUaW1lID0gRGF0ZS5ub3coKTtcbiAgfSBlbHNlIHtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC0gbG9hZFRpbWU7XG4gICAgfTtcbiAgICBsb2FkVGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICB9XG5cbn0pLmNhbGwodGhpcyk7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBlcmZvcm1hbmNlLW5vdy5qcy5tYXBcbiIsIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSB2b2lkIDA7XG5cbnZhciBSZWFjdCA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5cbnZhciBQcm9wVHlwZXMgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicHJvcC10eXBlc1wiKSk7XG5cbnZhciBfY2xhc3NuYW1lcyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcImNsYXNzbmFtZXNcIikpO1xuXG52YXIgX3JlYWN0TGlmZWN5Y2xlc0NvbXBhdCA9IHJlcXVpcmUoXCJyZWFjdC1saWZlY3ljbGVzLWNvbXBhdFwiKTtcblxudmFyIF9vbWl0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwib21pdC5qc1wiKSk7XG5cbnZhciBfaWNvbiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uL2ljb25cIikpO1xuXG52YXIgX2NvbmZpZ1Byb3ZpZGVyID0gcmVxdWlyZShcIi4uL2NvbmZpZy1wcm92aWRlclwiKTtcblxudmFyIF93YXZlID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vX3V0aWwvd2F2ZVwiKSk7XG5cbnZhciBfdHlwZSA9IHJlcXVpcmUoXCIuLi9fdXRpbC90eXBlXCIpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyBpZiAodHlwZW9mIFdlYWtNYXAgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIG51bGw7IHZhciBjYWNoZSA9IG5ldyBXZWFrTWFwKCk7IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSA9IGZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgcmV0dXJuIGNhY2hlOyB9OyByZXR1cm4gY2FjaGU7IH1cblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqKSB7IGlmIChvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHsgcmV0dXJuIG9iajsgfSBpZiAob2JqID09PSBudWxsIHx8IF90eXBlb2Yob2JqKSAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygb2JqICE9PSBcImZ1bmN0aW9uXCIpIHsgcmV0dXJuIHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9IHZhciBjYWNoZSA9IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpOyBpZiAoY2FjaGUgJiYgY2FjaGUuaGFzKG9iaikpIHsgcmV0dXJuIGNhY2hlLmdldChvYmopOyB9IHZhciBuZXdPYmogPSB7fTsgdmFyIGhhc1Byb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOyBmb3IgKHZhciBrZXkgaW4gb2JqKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7IHZhciBkZXNjID0gaGFzUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiBudWxsOyBpZiAoZGVzYyAmJiAoZGVzYy5nZXQgfHwgZGVzYy5zZXQpKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXdPYmosIGtleSwgZGVzYyk7IH0gZWxzZSB7IG5ld09ialtrZXldID0gb2JqW2tleV07IH0gfSB9IG5ld09ialtcImRlZmF1bHRcIl0gPSBvYmo7IGlmIChjYWNoZSkgeyBjYWNoZS5zZXQob2JqLCBuZXdPYmopOyB9IHJldHVybiBuZXdPYmo7IH1cblxuZnVuY3Rpb24gX2V4dGVuZHMoKSB7IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTsgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH1cblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnR5KG9iaiwga2V5LCB2YWx1ZSkgeyBpZiAoa2V5IGluIG9iaikgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHsgdmFsdWU6IHZhbHVlLCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUsIHdyaXRhYmxlOiB0cnVlIH0pOyB9IGVsc2UgeyBvYmpba2V5XSA9IHZhbHVlOyB9IHJldHVybiBvYmo7IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfVxuXG5mdW5jdGlvbiBfY3JlYXRlQ2xhc3MoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7IGlmIChwcm90b1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSBcImZ1bmN0aW9uXCIgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb25cIik7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgX3NldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKTsgfVxuXG5mdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkgeyBfc2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgby5fX3Byb3RvX18gPSBwOyByZXR1cm4gbzsgfTsgcmV0dXJuIF9zZXRQcm90b3R5cGVPZihvLCBwKTsgfVxuXG5mdW5jdGlvbiBfY3JlYXRlU3VwZXIoRGVyaXZlZCkgeyB2YXIgaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCA9IF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKTsgcmV0dXJuIGZ1bmN0aW9uIF9jcmVhdGVTdXBlckludGVybmFsKCkgeyB2YXIgU3VwZXIgPSBfZ2V0UHJvdG90eXBlT2YoRGVyaXZlZCksIHJlc3VsdDsgaWYgKGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QpIHsgdmFyIE5ld1RhcmdldCA9IF9nZXRQcm90b3R5cGVPZih0aGlzKS5jb25zdHJ1Y3RvcjsgcmVzdWx0ID0gUmVmbGVjdC5jb25zdHJ1Y3QoU3VwZXIsIGFyZ3VtZW50cywgTmV3VGFyZ2V0KTsgfSBlbHNlIHsgcmVzdWx0ID0gU3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfSByZXR1cm4gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgcmVzdWx0KTsgfTsgfVxuXG5mdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLCBjYWxsKSB7IGlmIChjYWxsICYmIChfdHlwZW9mKGNhbGwpID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpKSB7IHJldHVybiBjYWxsOyB9IHJldHVybiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpOyB9XG5cbmZ1bmN0aW9uIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZikgeyBpZiAoc2VsZiA9PT0gdm9pZCAwKSB7IHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTsgfSByZXR1cm4gc2VsZjsgfVxuXG5mdW5jdGlvbiBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCkgeyBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwidW5kZWZpbmVkXCIgfHwgIVJlZmxlY3QuY29uc3RydWN0KSByZXR1cm4gZmFsc2U7IGlmIChSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKSByZXR1cm4gZmFsc2U7IGlmICh0eXBlb2YgUHJveHkgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIHRydWU7IHRyeSB7IERhdGUucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoRGF0ZSwgW10sIGZ1bmN0aW9uICgpIHt9KSk7IHJldHVybiB0cnVlOyB9IGNhdGNoIChlKSB7IHJldHVybiBmYWxzZTsgfSB9XG5cbmZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IF9nZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5nZXRQcm90b3R5cGVPZiA6IGZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IHJldHVybiBvLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2Yobyk7IH07IHJldHVybiBfZ2V0UHJvdG90eXBlT2Yobyk7IH1cblxuZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiOyBpZiAodHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT09IFwic3ltYm9sXCIpIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiB0eXBlb2Ygb2JqOyB9OyB9IGVsc2UgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIG9iaiAmJiB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgb2JqICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvYmo7IH07IH0gcmV0dXJuIF90eXBlb2Yob2JqKTsgfVxuXG52YXIgX19yZXN0ID0gdm9pZCAwICYmICh2b2lkIDApLl9fcmVzdCB8fCBmdW5jdGlvbiAocywgZSkge1xuICB2YXIgdCA9IHt9O1xuXG4gIGZvciAodmFyIHAgaW4gcykge1xuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMCkgdFtwXSA9IHNbcF07XG4gIH1cblxuICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpIHRbcFtpXV0gPSBzW3BbaV1dO1xuICB9XG4gIHJldHVybiB0O1xufTtcbi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L2J1dHRvbi1oYXMtdHlwZSAqL1xuXG5cbnZhciByeFR3b0NOQ2hhciA9IC9eW1xcdTRlMDAtXFx1OWZhNV17Mn0kLztcbnZhciBpc1R3b0NOQ2hhciA9IHJ4VHdvQ05DaGFyLnRlc3QuYmluZChyeFR3b0NOQ2hhcik7XG5cbmZ1bmN0aW9uIGlzU3RyaW5nKHN0cikge1xuICByZXR1cm4gdHlwZW9mIHN0ciA9PT0gJ3N0cmluZyc7XG59IC8vIEluc2VydCBvbmUgc3BhY2UgYmV0d2VlbiB0d28gY2hpbmVzZSBjaGFyYWN0ZXJzIGF1dG9tYXRpY2FsbHkuXG5cblxuZnVuY3Rpb24gaW5zZXJ0U3BhY2UoY2hpbGQsIG5lZWRJbnNlcnRlZCkge1xuICAvLyBDaGVjayB0aGUgY2hpbGQgaWYgaXMgdW5kZWZpbmVkIG9yIG51bGwuXG4gIGlmIChjaGlsZCA9PSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdmFyIFNQQUNFID0gbmVlZEluc2VydGVkID8gJyAnIDogJyc7IC8vIHN0cmljdE51bGxDaGVja3Mgb29wcy5cblxuICBpZiAodHlwZW9mIGNoaWxkICE9PSAnc3RyaW5nJyAmJiB0eXBlb2YgY2hpbGQgIT09ICdudW1iZXInICYmIGlzU3RyaW5nKGNoaWxkLnR5cGUpICYmIGlzVHdvQ05DaGFyKGNoaWxkLnByb3BzLmNoaWxkcmVuKSkge1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY2xvbmVFbGVtZW50KGNoaWxkLCB7fSwgY2hpbGQucHJvcHMuY2hpbGRyZW4uc3BsaXQoJycpLmpvaW4oU1BBQ0UpKTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgY2hpbGQgPT09ICdzdHJpbmcnKSB7XG4gICAgaWYgKGlzVHdvQ05DaGFyKGNoaWxkKSkge1xuICAgICAgY2hpbGQgPSBjaGlsZC5zcGxpdCgnJykuam9pbihTUEFDRSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCBudWxsLCBjaGlsZCk7XG4gIH1cblxuICByZXR1cm4gY2hpbGQ7XG59XG5cbmZ1bmN0aW9uIHNwYWNlQ2hpbGRyZW4oY2hpbGRyZW4sIG5lZWRJbnNlcnRlZCkge1xuICB2YXIgaXNQcmV2Q2hpbGRQdXJlID0gZmFsc2U7XG4gIHZhciBjaGlsZExpc3QgPSBbXTtcbiAgUmVhY3QuQ2hpbGRyZW4uZm9yRWFjaChjaGlsZHJlbiwgZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgdmFyIHR5cGUgPSBfdHlwZW9mKGNoaWxkKTtcblxuICAgIHZhciBpc0N1cnJlbnRDaGlsZFB1cmUgPSB0eXBlID09PSAnc3RyaW5nJyB8fCB0eXBlID09PSAnbnVtYmVyJztcblxuICAgIGlmIChpc1ByZXZDaGlsZFB1cmUgJiYgaXNDdXJyZW50Q2hpbGRQdXJlKSB7XG4gICAgICB2YXIgbGFzdEluZGV4ID0gY2hpbGRMaXN0Lmxlbmd0aCAtIDE7XG4gICAgICB2YXIgbGFzdENoaWxkID0gY2hpbGRMaXN0W2xhc3RJbmRleF07XG4gICAgICBjaGlsZExpc3RbbGFzdEluZGV4XSA9IFwiXCIuY29uY2F0KGxhc3RDaGlsZCkuY29uY2F0KGNoaWxkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2hpbGRMaXN0LnB1c2goY2hpbGQpO1xuICAgIH1cblxuICAgIGlzUHJldkNoaWxkUHVyZSA9IGlzQ3VycmVudENoaWxkUHVyZTtcbiAgfSk7IC8vIFBhc3MgdG8gUmVhY3QuQ2hpbGRyZW4ubWFwIHRvIGF1dG8gZmlsbCBrZXlcblxuICByZXR1cm4gUmVhY3QuQ2hpbGRyZW4ubWFwKGNoaWxkTGlzdCwgZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgcmV0dXJuIGluc2VydFNwYWNlKGNoaWxkLCBuZWVkSW5zZXJ0ZWQpO1xuICB9KTtcbn1cblxudmFyIEJ1dHRvblR5cGVzID0gKDAsIF90eXBlLnR1cGxlKSgnZGVmYXVsdCcsICdwcmltYXJ5JywgJ2dob3N0JywgJ2Rhc2hlZCcsICdkYW5nZXInLCAnbGluaycpO1xudmFyIEJ1dHRvblNoYXBlcyA9ICgwLCBfdHlwZS50dXBsZSkoJ2NpcmNsZScsICdjaXJjbGUtb3V0bGluZScsICdyb3VuZCcpO1xudmFyIEJ1dHRvblNpemVzID0gKDAsIF90eXBlLnR1cGxlKSgnbGFyZ2UnLCAnZGVmYXVsdCcsICdzbWFsbCcpO1xudmFyIEJ1dHRvbkhUTUxUeXBlcyA9ICgwLCBfdHlwZS50dXBsZSkoJ3N1Ym1pdCcsICdidXR0b24nLCAncmVzZXQnKTtcblxudmFyIEJ1dHRvbiA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoQnV0dG9uLCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICB2YXIgX3N1cGVyID0gX2NyZWF0ZVN1cGVyKEJ1dHRvbik7XG5cbiAgZnVuY3Rpb24gQnV0dG9uKHByb3BzKSB7XG4gICAgdmFyIF90aGlzO1xuXG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEJ1dHRvbik7XG5cbiAgICBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIHByb3BzKTtcblxuICAgIF90aGlzLnNhdmVCdXR0b25SZWYgPSBmdW5jdGlvbiAobm9kZSkge1xuICAgICAgX3RoaXMuYnV0dG9uTm9kZSA9IG5vZGU7XG4gICAgfTtcblxuICAgIF90aGlzLmhhbmRsZUNsaWNrID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgIHZhciBsb2FkaW5nID0gX3RoaXMuc3RhdGUubG9hZGluZztcbiAgICAgIHZhciBvbkNsaWNrID0gX3RoaXMucHJvcHMub25DbGljaztcblxuICAgICAgaWYgKGxvYWRpbmcpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAob25DbGljaykge1xuICAgICAgICBvbkNsaWNrKGUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBfdGhpcy5yZW5kZXJCdXR0b24gPSBmdW5jdGlvbiAoX3JlZikge1xuICAgICAgdmFyIF9jbGFzc05hbWVzO1xuXG4gICAgICB2YXIgZ2V0UHJlZml4Q2xzID0gX3JlZi5nZXRQcmVmaXhDbHMsXG4gICAgICAgICAgYXV0b0luc2VydFNwYWNlSW5CdXR0b24gPSBfcmVmLmF1dG9JbnNlcnRTcGFjZUluQnV0dG9uO1xuXG4gICAgICB2YXIgX2EgPSBfdGhpcy5wcm9wcyxcbiAgICAgICAgICBjdXN0b21pemVQcmVmaXhDbHMgPSBfYS5wcmVmaXhDbHMsXG4gICAgICAgICAgdHlwZSA9IF9hLnR5cGUsXG4gICAgICAgICAgc2hhcGUgPSBfYS5zaGFwZSxcbiAgICAgICAgICBzaXplID0gX2Euc2l6ZSxcbiAgICAgICAgICBjbGFzc05hbWUgPSBfYS5jbGFzc05hbWUsXG4gICAgICAgICAgY2hpbGRyZW4gPSBfYS5jaGlsZHJlbixcbiAgICAgICAgICBpY29uID0gX2EuaWNvbixcbiAgICAgICAgICBnaG9zdCA9IF9hLmdob3N0LFxuICAgICAgICAgIGJsb2NrID0gX2EuYmxvY2ssXG4gICAgICAgICAgcmVzdCA9IF9fcmVzdChfYSwgW1wicHJlZml4Q2xzXCIsIFwidHlwZVwiLCBcInNoYXBlXCIsIFwic2l6ZVwiLCBcImNsYXNzTmFtZVwiLCBcImNoaWxkcmVuXCIsIFwiaWNvblwiLCBcImdob3N0XCIsIFwiYmxvY2tcIl0pO1xuXG4gICAgICB2YXIgX3RoaXMkc3RhdGUgPSBfdGhpcy5zdGF0ZSxcbiAgICAgICAgICBsb2FkaW5nID0gX3RoaXMkc3RhdGUubG9hZGluZyxcbiAgICAgICAgICBoYXNUd29DTkNoYXIgPSBfdGhpcyRzdGF0ZS5oYXNUd29DTkNoYXI7XG4gICAgICB2YXIgcHJlZml4Q2xzID0gZ2V0UHJlZml4Q2xzKCdidG4nLCBjdXN0b21pemVQcmVmaXhDbHMpO1xuICAgICAgdmFyIGF1dG9JbnNlcnRTcGFjZSA9IGF1dG9JbnNlcnRTcGFjZUluQnV0dG9uICE9PSBmYWxzZTsgLy8gbGFyZ2UgPT4gbGdcbiAgICAgIC8vIHNtYWxsID0+IHNtXG5cbiAgICAgIHZhciBzaXplQ2xzID0gJyc7XG5cbiAgICAgIHN3aXRjaCAoc2l6ZSkge1xuICAgICAgICBjYXNlICdsYXJnZSc6XG4gICAgICAgICAgc2l6ZUNscyA9ICdsZyc7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnc21hbGwnOlxuICAgICAgICAgIHNpemVDbHMgPSAnc20nO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIHZhciBpY29uVHlwZSA9IGxvYWRpbmcgPyAnbG9hZGluZycgOiBpY29uO1xuICAgICAgdmFyIGNsYXNzZXMgPSAoMCwgX2NsYXNzbmFtZXNbXCJkZWZhdWx0XCJdKShwcmVmaXhDbHMsIGNsYXNzTmFtZSwgKF9jbGFzc05hbWVzID0ge30sIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1cIikuY29uY2F0KHR5cGUpLCB0eXBlKSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc05hbWVzLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLVwiKS5jb25jYXQoc2hhcGUpLCBzaGFwZSksIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1cIikuY29uY2F0KHNpemVDbHMpLCBzaXplQ2xzKSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc05hbWVzLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWljb24tb25seVwiKSwgIWNoaWxkcmVuICYmIGNoaWxkcmVuICE9PSAwICYmIGljb25UeXBlKSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc05hbWVzLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWxvYWRpbmdcIiksICEhbG9hZGluZyksIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1iYWNrZ3JvdW5kLWdob3N0XCIpLCBnaG9zdCksIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi10d28tY2hpbmVzZS1jaGFyc1wiKSwgaGFzVHdvQ05DaGFyICYmIGF1dG9JbnNlcnRTcGFjZSksIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1ibG9ja1wiKSwgYmxvY2spLCBfY2xhc3NOYW1lcykpO1xuICAgICAgdmFyIGljb25Ob2RlID0gaWNvblR5cGUgPyAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfaWNvbltcImRlZmF1bHRcIl0sIHtcbiAgICAgICAgdHlwZTogaWNvblR5cGVcbiAgICAgIH0pIDogbnVsbDtcbiAgICAgIHZhciBraWRzID0gY2hpbGRyZW4gfHwgY2hpbGRyZW4gPT09IDAgPyBzcGFjZUNoaWxkcmVuKGNoaWxkcmVuLCBfdGhpcy5pc05lZWRJbnNlcnRlZCgpICYmIGF1dG9JbnNlcnRTcGFjZSkgOiBudWxsO1xuICAgICAgdmFyIGxpbmtCdXR0b25SZXN0UHJvcHMgPSAoMCwgX29taXRbXCJkZWZhdWx0XCJdKShyZXN0LCBbJ2h0bWxUeXBlJywgJ2xvYWRpbmcnXSk7XG5cbiAgICAgIGlmIChsaW5rQnV0dG9uUmVzdFByb3BzLmhyZWYgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJhXCIsIF9leHRlbmRzKHt9LCBsaW5rQnV0dG9uUmVzdFByb3BzLCB7XG4gICAgICAgICAgY2xhc3NOYW1lOiBjbGFzc2VzLFxuICAgICAgICAgIG9uQ2xpY2s6IF90aGlzLmhhbmRsZUNsaWNrLFxuICAgICAgICAgIHJlZjogX3RoaXMuc2F2ZUJ1dHRvblJlZlxuICAgICAgICB9KSwgaWNvbk5vZGUsIGtpZHMpO1xuICAgICAgfSAvLyBSZWFjdCBkb2VzIG5vdCByZWNvZ25pemUgdGhlIGBodG1sVHlwZWAgcHJvcCBvbiBhIERPTSBlbGVtZW50LiBIZXJlIHdlIHBpY2sgaXQgb3V0IG9mIGByZXN0YC5cblxuXG4gICAgICB2YXIgX2IgPSByZXN0LFxuICAgICAgICAgIGh0bWxUeXBlID0gX2IuaHRtbFR5cGUsXG4gICAgICAgICAgb3RoZXJQcm9wcyA9IF9fcmVzdChfYiwgW1wiaHRtbFR5cGVcIl0pO1xuXG4gICAgICB2YXIgYnV0dG9uTm9kZSA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiYnV0dG9uXCIsIF9leHRlbmRzKHt9LCAoMCwgX29taXRbXCJkZWZhdWx0XCJdKShvdGhlclByb3BzLCBbJ2xvYWRpbmcnXSksIHtcbiAgICAgICAgdHlwZTogaHRtbFR5cGUsXG4gICAgICAgIGNsYXNzTmFtZTogY2xhc3NlcyxcbiAgICAgICAgb25DbGljazogX3RoaXMuaGFuZGxlQ2xpY2ssXG4gICAgICAgIHJlZjogX3RoaXMuc2F2ZUJ1dHRvblJlZlxuICAgICAgfSksIGljb25Ob2RlLCBraWRzKTtcblxuICAgICAgaWYgKHR5cGUgPT09ICdsaW5rJykge1xuICAgICAgICByZXR1cm4gYnV0dG9uTm9kZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF93YXZlW1wiZGVmYXVsdFwiXSwgbnVsbCwgYnV0dG9uTm9kZSk7XG4gICAgfTtcblxuICAgIF90aGlzLnN0YXRlID0ge1xuICAgICAgbG9hZGluZzogcHJvcHMubG9hZGluZyxcbiAgICAgIGhhc1R3b0NOQ2hhcjogZmFsc2VcbiAgICB9O1xuICAgIHJldHVybiBfdGhpcztcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhCdXR0b24sIFt7XG4gICAga2V5OiBcImNvbXBvbmVudERpZE1vdW50XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgdGhpcy5maXhUd29DTkNoYXIoKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiY29tcG9uZW50RGlkVXBkYXRlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgICB0aGlzLmZpeFR3b0NOQ2hhcigpO1xuXG4gICAgICBpZiAocHJldlByb3BzLmxvYWRpbmcgJiYgdHlwZW9mIHByZXZQcm9wcy5sb2FkaW5nICE9PSAnYm9vbGVhbicpIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuZGVsYXlUaW1lb3V0KTtcbiAgICAgIH1cblxuICAgICAgdmFyIGxvYWRpbmcgPSB0aGlzLnByb3BzLmxvYWRpbmc7XG5cbiAgICAgIGlmIChsb2FkaW5nICYmIHR5cGVvZiBsb2FkaW5nICE9PSAnYm9vbGVhbicgJiYgbG9hZGluZy5kZWxheSkge1xuICAgICAgICB0aGlzLmRlbGF5VGltZW91dCA9IHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBfdGhpczIuc2V0U3RhdGUoe1xuICAgICAgICAgICAgbG9hZGluZzogbG9hZGluZ1xuICAgICAgICAgIH0pO1xuICAgICAgICB9LCBsb2FkaW5nLmRlbGF5KTtcbiAgICAgIH0gZWxzZSBpZiAocHJldlByb3BzLmxvYWRpbmcgIT09IGxvYWRpbmcpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L25vLWRpZC11cGRhdGUtc2V0LXN0YXRlXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgIGxvYWRpbmc6IGxvYWRpbmdcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImNvbXBvbmVudFdpbGxVbm1vdW50XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgaWYgKHRoaXMuZGVsYXlUaW1lb3V0KSB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLmRlbGF5VGltZW91dCk7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImZpeFR3b0NOQ2hhclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBmaXhUd29DTkNoYXIoKSB7XG4gICAgICAvLyBGaXggZm9yIEhPQyB1c2FnZSBsaWtlIDxGb3JtYXRNZXNzYWdlIC8+XG4gICAgICBpZiAoIXRoaXMuYnV0dG9uTm9kZSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHZhciBidXR0b25UZXh0ID0gdGhpcy5idXR0b25Ob2RlLnRleHRDb250ZW50O1xuXG4gICAgICBpZiAodGhpcy5pc05lZWRJbnNlcnRlZCgpICYmIGlzVHdvQ05DaGFyKGJ1dHRvblRleHQpKSB7XG4gICAgICAgIGlmICghdGhpcy5zdGF0ZS5oYXNUd29DTkNoYXIpIHtcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgIGhhc1R3b0NOQ2hhcjogdHJ1ZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuc3RhdGUuaGFzVHdvQ05DaGFyKSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgIGhhc1R3b0NOQ2hhcjogZmFsc2VcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImlzTmVlZEluc2VydGVkXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGlzTmVlZEluc2VydGVkKCkge1xuICAgICAgdmFyIF90aGlzJHByb3BzID0gdGhpcy5wcm9wcyxcbiAgICAgICAgICBpY29uID0gX3RoaXMkcHJvcHMuaWNvbixcbiAgICAgICAgICBjaGlsZHJlbiA9IF90aGlzJHByb3BzLmNoaWxkcmVuLFxuICAgICAgICAgIHR5cGUgPSBfdGhpcyRwcm9wcy50eXBlO1xuICAgICAgcmV0dXJuIFJlYWN0LkNoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA9PT0gMSAmJiAhaWNvbiAmJiB0eXBlICE9PSAnbGluayc7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbmRlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX2NvbmZpZ1Byb3ZpZGVyLkNvbmZpZ0NvbnN1bWVyLCBudWxsLCB0aGlzLnJlbmRlckJ1dHRvbik7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIEJ1dHRvbjtcbn0oUmVhY3QuQ29tcG9uZW50KTtcblxuQnV0dG9uLl9fQU5UX0JVVFRPTiA9IHRydWU7XG5CdXR0b24uZGVmYXVsdFByb3BzID0ge1xuICBsb2FkaW5nOiBmYWxzZSxcbiAgZ2hvc3Q6IGZhbHNlLFxuICBibG9jazogZmFsc2UsXG4gIGh0bWxUeXBlOiAnYnV0dG9uJ1xufTtcbkJ1dHRvbi5wcm9wVHlwZXMgPSB7XG4gIHR5cGU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHNoYXBlOiBQcm9wVHlwZXMub25lT2YoQnV0dG9uU2hhcGVzKSxcbiAgc2l6ZTogUHJvcFR5cGVzLm9uZU9mKEJ1dHRvblNpemVzKSxcbiAgaHRtbFR5cGU6IFByb3BUeXBlcy5vbmVPZihCdXR0b25IVE1MVHlwZXMpLFxuICBvbkNsaWNrOiBQcm9wVHlwZXMuZnVuYyxcbiAgbG9hZGluZzogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLmJvb2wsIFByb3BUeXBlcy5vYmplY3RdKSxcbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBpY29uOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBibG9jazogUHJvcFR5cGVzLmJvb2wsXG4gIHRpdGxlOiBQcm9wVHlwZXMuc3RyaW5nXG59O1xuKDAsIF9yZWFjdExpZmVjeWNsZXNDb21wYXQucG9seWZpbGwpKEJ1dHRvbik7XG52YXIgX2RlZmF1bHQgPSBCdXR0b247XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IF9kZWZhdWx0OyIsIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSB2b2lkIDA7XG5cbnZhciBSZWFjdCA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5cbnZhciBfcmVhY3REb20gPSByZXF1aXJlKFwicmVhY3QtZG9tXCIpO1xuXG52YXIgX0V2ZW50ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiY3NzLWFuaW1hdGlvbi9saWIvRXZlbnRcIikpO1xuXG52YXIgX3JhZiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vcmFmXCIpKTtcblxudmFyIF9jb25maWdQcm92aWRlciA9IHJlcXVpcmUoXCIuLi9jb25maWctcHJvdmlkZXJcIik7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7IGlmICh0eXBlb2YgV2Vha01hcCAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gbnVsbDsgdmFyIGNhY2hlID0gbmV3IFdlYWtNYXAoKTsgX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlID0gZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyByZXR1cm4gY2FjaGU7IH07IHJldHVybiBjYWNoZTsgfVxuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChvYmopIHsgaWYgKG9iaiAmJiBvYmouX19lc01vZHVsZSkgeyByZXR1cm4gb2JqOyB9IGlmIChvYmogPT09IG51bGwgfHwgX3R5cGVvZihvYmopICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiBvYmogIT09IFwiZnVuY3Rpb25cIikgeyByZXR1cm4geyBcImRlZmF1bHRcIjogb2JqIH07IH0gdmFyIGNhY2hlID0gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCk7IGlmIChjYWNoZSAmJiBjYWNoZS5oYXMob2JqKSkgeyByZXR1cm4gY2FjaGUuZ2V0KG9iaik7IH0gdmFyIG5ld09iaiA9IHt9OyB2YXIgaGFzUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7IGZvciAodmFyIGtleSBpbiBvYmopIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHsgdmFyIGRlc2MgPSBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IG51bGw7IGlmIChkZXNjICYmIChkZXNjLmdldCB8fCBkZXNjLnNldCkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTsgfSBlbHNlIHsgbmV3T2JqW2tleV0gPSBvYmpba2V5XTsgfSB9IH0gbmV3T2JqW1wiZGVmYXVsdFwiXSA9IG9iajsgaWYgKGNhY2hlKSB7IGNhY2hlLnNldChvYmosIG5ld09iaik7IH0gcmV0dXJuIG5ld09iajsgfVxuXG5mdW5jdGlvbiBfdHlwZW9mKG9iaikgeyBcIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mXCI7IGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIHR5cGVvZiBvYmo7IH07IH0gZWxzZSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajsgfTsgfSByZXR1cm4gX3R5cGVvZihvYmopOyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH1cblxuZnVuY3Rpb24gX2NyZWF0ZUNsYXNzKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIF9zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcyk7IH1cblxuZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgX3NldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IGZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7IG8uX19wcm90b19fID0gcDsgcmV0dXJuIG87IH07IHJldHVybiBfc2V0UHJvdG90eXBlT2YobywgcCk7IH1cblxuZnVuY3Rpb24gX2NyZWF0ZVN1cGVyKERlcml2ZWQpIHsgdmFyIGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QgPSBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCk7IHJldHVybiBmdW5jdGlvbiBfY3JlYXRlU3VwZXJJbnRlcm5hbCgpIHsgdmFyIFN1cGVyID0gX2dldFByb3RvdHlwZU9mKERlcml2ZWQpLCByZXN1bHQ7IGlmIChoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KSB7IHZhciBOZXdUYXJnZXQgPSBfZ2V0UHJvdG90eXBlT2YodGhpcykuY29uc3RydWN0b3I7IHJlc3VsdCA9IFJlZmxlY3QuY29uc3RydWN0KFN1cGVyLCBhcmd1bWVudHMsIE5ld1RhcmdldCk7IH0gZWxzZSB7IHJlc3VsdCA9IFN1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH0gcmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIHJlc3VsdCk7IH07IH1cblxuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkgeyBpZiAoY2FsbCAmJiAoX3R5cGVvZihjYWxsKSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSkgeyByZXR1cm4gY2FsbDsgfSByZXR1cm4gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKTsgfVxuXG5mdW5jdGlvbiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpIHsgaWYgKHNlbGYgPT09IHZvaWQgMCkgeyB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7IH0gcmV0dXJuIHNlbGY7IH1cblxuZnVuY3Rpb24gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpIHsgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcInVuZGVmaW5lZFwiIHx8ICFSZWZsZWN0LmNvbnN0cnVjdCkgcmV0dXJuIGZhbHNlOyBpZiAoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSkgcmV0dXJuIGZhbHNlOyBpZiAodHlwZW9mIFByb3h5ID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiB0cnVlOyB0cnkgeyBEYXRlLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFJlZmxlY3QuY29uc3RydWN0KERhdGUsIFtdLCBmdW5jdGlvbiAoKSB7fSkpOyByZXR1cm4gdHJ1ZTsgfSBjYXRjaCAoZSkgeyByZXR1cm4gZmFsc2U7IH0gfVxuXG5mdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyBfZ2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3QuZ2V0UHJvdG90eXBlT2YgOiBmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyByZXR1cm4gby5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKG8pOyB9OyByZXR1cm4gX2dldFByb3RvdHlwZU9mKG8pOyB9XG5cbnZhciBzdHlsZUZvclBlc3VkbzsgLy8gV2hlcmUgZWwgaXMgdGhlIERPTSBlbGVtZW50IHlvdSdkIGxpa2UgdG8gdGVzdCBmb3IgdmlzaWJpbGl0eVxuXG5mdW5jdGlvbiBpc0hpZGRlbihlbGVtZW50KSB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Rlc3QnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuICFlbGVtZW50IHx8IGVsZW1lbnQub2Zmc2V0UGFyZW50ID09PSBudWxsO1xufVxuXG5mdW5jdGlvbiBpc05vdEdyZXkoY29sb3IpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtZXNjYXBlXG4gIHZhciBtYXRjaCA9IChjb2xvciB8fCAnJykubWF0Y2goL3JnYmE/XFwoKFxcZCopLCAoXFxkKiksIChcXGQqKSgsIFtcXC5cXGRdKik/XFwpLyk7XG5cbiAgaWYgKG1hdGNoICYmIG1hdGNoWzFdICYmIG1hdGNoWzJdICYmIG1hdGNoWzNdKSB7XG4gICAgcmV0dXJuICEobWF0Y2hbMV0gPT09IG1hdGNoWzJdICYmIG1hdGNoWzJdID09PSBtYXRjaFszXSk7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxudmFyIFdhdmUgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgX2luaGVyaXRzKFdhdmUsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gIHZhciBfc3VwZXIgPSBfY3JlYXRlU3VwZXIoV2F2ZSk7XG5cbiAgZnVuY3Rpb24gV2F2ZSgpIHtcbiAgICB2YXIgX3RoaXM7XG5cbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgV2F2ZSk7XG5cbiAgICBfdGhpcyA9IF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgIF90aGlzLmFuaW1hdGlvblN0YXJ0ID0gZmFsc2U7XG4gICAgX3RoaXMuZGVzdHJveSA9IGZhbHNlO1xuXG4gICAgX3RoaXMub25DbGljayA9IGZ1bmN0aW9uIChub2RlLCB3YXZlQ29sb3IpIHtcbiAgICAgIGlmICghbm9kZSB8fCBpc0hpZGRlbihub2RlKSB8fCBub2RlLmNsYXNzTmFtZS5pbmRleE9mKCctbGVhdmUnKSA+PSAwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdmFyIGluc2VydEV4dHJhTm9kZSA9IF90aGlzLnByb3BzLmluc2VydEV4dHJhTm9kZTtcbiAgICAgIF90aGlzLmV4dHJhTm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuXG4gICAgICB2YXIgX2Fzc2VydFRoaXNJbml0aWFsaXplID0gX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksXG4gICAgICAgICAgZXh0cmFOb2RlID0gX2Fzc2VydFRoaXNJbml0aWFsaXplLmV4dHJhTm9kZTtcblxuICAgICAgZXh0cmFOb2RlLmNsYXNzTmFtZSA9ICdhbnQtY2xpY2stYW5pbWF0aW5nLW5vZGUnO1xuXG4gICAgICB2YXIgYXR0cmlidXRlTmFtZSA9IF90aGlzLmdldEF0dHJpYnV0ZU5hbWUoKTtcblxuICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSwgJ3RydWUnKTsgLy8gTm90IHdoaXRlIG9yIHRyYW5zcGFybnQgb3IgZ3JleVxuXG4gICAgICBzdHlsZUZvclBlc3VkbyA9IHN0eWxlRm9yUGVzdWRvIHx8IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG5cbiAgICAgIGlmICh3YXZlQ29sb3IgJiYgd2F2ZUNvbG9yICE9PSAnI2ZmZmZmZicgJiYgd2F2ZUNvbG9yICE9PSAncmdiKDI1NSwgMjU1LCAyNTUpJyAmJiBpc05vdEdyZXkod2F2ZUNvbG9yKSAmJiAhL3JnYmFcXChcXGQqLCBcXGQqLCBcXGQqLCAwXFwpLy50ZXN0KHdhdmVDb2xvcikgJiYgLy8gYW55IHRyYW5zcGFyZW50IHJnYmEgY29sb3JcbiAgICAgIHdhdmVDb2xvciAhPT0gJ3RyYW5zcGFyZW50Jykge1xuICAgICAgICAvLyBBZGQgbm9uY2UgaWYgQ1NQIGV4aXN0XG4gICAgICAgIGlmIChfdGhpcy5jc3AgJiYgX3RoaXMuY3NwLm5vbmNlKSB7XG4gICAgICAgICAgc3R5bGVGb3JQZXN1ZG8ubm9uY2UgPSBfdGhpcy5jc3Aubm9uY2U7XG4gICAgICAgIH1cblxuICAgICAgICBleHRyYU5vZGUuc3R5bGUuYm9yZGVyQ29sb3IgPSB3YXZlQ29sb3I7XG4gICAgICAgIHN0eWxlRm9yUGVzdWRvLmlubmVySFRNTCA9IFwiXFxuICAgICAgW2FudC1jbGljay1hbmltYXRpbmctd2l0aG91dC1leHRyYS1ub2RlPSd0cnVlJ106OmFmdGVyLCAuYW50LWNsaWNrLWFuaW1hdGluZy1ub2RlIHtcXG4gICAgICAgIC0tYW50ZC13YXZlLXNoYWRvdy1jb2xvcjogXCIuY29uY2F0KHdhdmVDb2xvciwgXCI7XFxuICAgICAgfVwiKTtcblxuICAgICAgICBpZiAoIWRvY3VtZW50LmJvZHkuY29udGFpbnMoc3R5bGVGb3JQZXN1ZG8pKSB7XG4gICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzdHlsZUZvclBlc3Vkbyk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGluc2VydEV4dHJhTm9kZSkge1xuICAgICAgICBub2RlLmFwcGVuZENoaWxkKGV4dHJhTm9kZSk7XG4gICAgICB9XG5cbiAgICAgIF9FdmVudFtcImRlZmF1bHRcIl0uYWRkU3RhcnRFdmVudExpc3RlbmVyKG5vZGUsIF90aGlzLm9uVHJhbnNpdGlvblN0YXJ0KTtcblxuICAgICAgX0V2ZW50W1wiZGVmYXVsdFwiXS5hZGRFbmRFdmVudExpc3RlbmVyKG5vZGUsIF90aGlzLm9uVHJhbnNpdGlvbkVuZCk7XG4gICAgfTtcblxuICAgIF90aGlzLm9uVHJhbnNpdGlvblN0YXJ0ID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgIGlmIChfdGhpcy5kZXN0cm95KSByZXR1cm47XG4gICAgICB2YXIgbm9kZSA9ICgwLCBfcmVhY3REb20uZmluZERPTU5vZGUpKF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpKTtcblxuICAgICAgaWYgKCFlIHx8IGUudGFyZ2V0ICE9PSBub2RlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKCFfdGhpcy5hbmltYXRpb25TdGFydCkge1xuICAgICAgICBfdGhpcy5yZXNldEVmZmVjdChub2RlKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgX3RoaXMub25UcmFuc2l0aW9uRW5kID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgIGlmICghZSB8fCBlLmFuaW1hdGlvbk5hbWUgIT09ICdmYWRlRWZmZWN0Jykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIF90aGlzLnJlc2V0RWZmZWN0KGUudGFyZ2V0KTtcbiAgICB9O1xuXG4gICAgX3RoaXMuYmluZEFuaW1hdGlvbkV2ZW50ID0gZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgIGlmICghbm9kZSB8fCAhbm9kZS5nZXRBdHRyaWJ1dGUgfHwgbm9kZS5nZXRBdHRyaWJ1dGUoJ2Rpc2FibGVkJykgfHwgbm9kZS5jbGFzc05hbWUuaW5kZXhPZignZGlzYWJsZWQnKSA+PSAwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdmFyIG9uQ2xpY2sgPSBmdW5jdGlvbiBvbkNsaWNrKGUpIHtcbiAgICAgICAgLy8gRml4IHJhZGlvIGJ1dHRvbiBjbGljayB0d2ljZVxuICAgICAgICBpZiAoZS50YXJnZXQudGFnTmFtZSA9PT0gJ0lOUFVUJyB8fCBpc0hpZGRlbihlLnRhcmdldCkpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBfdGhpcy5yZXNldEVmZmVjdChub2RlKTsgLy8gR2V0IHdhdmUgY29sb3IgZnJvbSB0YXJnZXRcblxuXG4gICAgICAgIHZhciB3YXZlQ29sb3IgPSBnZXRDb21wdXRlZFN0eWxlKG5vZGUpLmdldFByb3BlcnR5VmFsdWUoJ2JvcmRlci10b3AtY29sb3InKSB8fCAvLyBGaXJlZm94IENvbXBhdGlibGVcbiAgICAgICAgZ2V0Q29tcHV0ZWRTdHlsZShub2RlKS5nZXRQcm9wZXJ0eVZhbHVlKCdib3JkZXItY29sb3InKSB8fCBnZXRDb21wdXRlZFN0eWxlKG5vZGUpLmdldFByb3BlcnR5VmFsdWUoJ2JhY2tncm91bmQtY29sb3InKTtcbiAgICAgICAgX3RoaXMuY2xpY2tXYXZlVGltZW91dElkID0gd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBfdGhpcy5vbkNsaWNrKG5vZGUsIHdhdmVDb2xvcik7XG4gICAgICAgIH0sIDApO1xuXG4gICAgICAgIF9yYWZbXCJkZWZhdWx0XCJdLmNhbmNlbChfdGhpcy5hbmltYXRpb25TdGFydElkKTtcblxuICAgICAgICBfdGhpcy5hbmltYXRpb25TdGFydCA9IHRydWU7IC8vIFJlbmRlciB0byB0cmlnZ2VyIHRyYW5zaXRpb24gZXZlbnQgY29zdCAzIGZyYW1lcy4gTGV0J3MgZGVsYXkgMTAgZnJhbWVzIHRvIHJlc2V0IHRoaXMuXG5cbiAgICAgICAgX3RoaXMuYW5pbWF0aW9uU3RhcnRJZCA9ICgwLCBfcmFmW1wiZGVmYXVsdFwiXSkoZnVuY3Rpb24gKCkge1xuICAgICAgICAgIF90aGlzLmFuaW1hdGlvblN0YXJ0ID0gZmFsc2U7XG4gICAgICAgIH0sIDEwKTtcbiAgICAgIH07XG5cbiAgICAgIG5vZGUuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBvbkNsaWNrLCB0cnVlKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNhbmNlbDogZnVuY3Rpb24gY2FuY2VsKCkge1xuICAgICAgICAgIG5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCBvbkNsaWNrLCB0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9O1xuXG4gICAgX3RoaXMucmVuZGVyV2F2ZSA9IGZ1bmN0aW9uIChfcmVmKSB7XG4gICAgICB2YXIgY3NwID0gX3JlZi5jc3A7XG4gICAgICB2YXIgY2hpbGRyZW4gPSBfdGhpcy5wcm9wcy5jaGlsZHJlbjtcbiAgICAgIF90aGlzLmNzcCA9IGNzcDtcbiAgICAgIHJldHVybiBjaGlsZHJlbjtcbiAgICB9O1xuXG4gICAgcmV0dXJuIF90aGlzO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKFdhdmUsIFt7XG4gICAga2V5OiBcImNvbXBvbmVudERpZE1vdW50XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgdmFyIG5vZGUgPSAoMCwgX3JlYWN0RG9tLmZpbmRET01Ob2RlKSh0aGlzKTtcblxuICAgICAgaWYgKCFub2RlIHx8IG5vZGUubm9kZVR5cGUgIT09IDEpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmluc3RhbmNlID0gdGhpcy5iaW5kQW5pbWF0aW9uRXZlbnQobm9kZSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImNvbXBvbmVudFdpbGxVbm1vdW50XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgaWYgKHRoaXMuaW5zdGFuY2UpIHtcbiAgICAgICAgdGhpcy5pbnN0YW5jZS5jYW5jZWwoKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuY2xpY2tXYXZlVGltZW91dElkKSB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLmNsaWNrV2F2ZVRpbWVvdXRJZCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZGVzdHJveSA9IHRydWU7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImdldEF0dHJpYnV0ZU5hbWVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0QXR0cmlidXRlTmFtZSgpIHtcbiAgICAgIHZhciBpbnNlcnRFeHRyYU5vZGUgPSB0aGlzLnByb3BzLmluc2VydEV4dHJhTm9kZTtcbiAgICAgIHJldHVybiBpbnNlcnRFeHRyYU5vZGUgPyAnYW50LWNsaWNrLWFuaW1hdGluZycgOiAnYW50LWNsaWNrLWFuaW1hdGluZy13aXRob3V0LWV4dHJhLW5vZGUnO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJyZXNldEVmZmVjdFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZXNldEVmZmVjdChub2RlKSB7XG4gICAgICBpZiAoIW5vZGUgfHwgbm9kZSA9PT0gdGhpcy5leHRyYU5vZGUgfHwgIShub2RlIGluc3RhbmNlb2YgRWxlbWVudCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB2YXIgaW5zZXJ0RXh0cmFOb2RlID0gdGhpcy5wcm9wcy5pbnNlcnRFeHRyYU5vZGU7XG4gICAgICB2YXIgYXR0cmlidXRlTmFtZSA9IHRoaXMuZ2V0QXR0cmlidXRlTmFtZSgpO1xuICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSwgJ2ZhbHNlJyk7IC8vIGVkZ2UgaGFzIGJ1ZyBvbiBgcmVtb3ZlQXR0cmlidXRlYCAjMTQ0NjZcblxuICAgICAgaWYgKHN0eWxlRm9yUGVzdWRvKSB7XG4gICAgICAgIHN0eWxlRm9yUGVzdWRvLmlubmVySFRNTCA9ICcnO1xuICAgICAgfVxuXG4gICAgICBpZiAoaW5zZXJ0RXh0cmFOb2RlICYmIHRoaXMuZXh0cmFOb2RlICYmIG5vZGUuY29udGFpbnModGhpcy5leHRyYU5vZGUpKSB7XG4gICAgICAgIG5vZGUucmVtb3ZlQ2hpbGQodGhpcy5leHRyYU5vZGUpO1xuICAgICAgfVxuXG4gICAgICBfRXZlbnRbXCJkZWZhdWx0XCJdLnJlbW92ZVN0YXJ0RXZlbnRMaXN0ZW5lcihub2RlLCB0aGlzLm9uVHJhbnNpdGlvblN0YXJ0KTtcblxuICAgICAgX0V2ZW50W1wiZGVmYXVsdFwiXS5yZW1vdmVFbmRFdmVudExpc3RlbmVyKG5vZGUsIHRoaXMub25UcmFuc2l0aW9uRW5kKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfY29uZmlnUHJvdmlkZXIuQ29uZmlnQ29uc3VtZXIsIG51bGwsIHRoaXMucmVuZGVyV2F2ZSk7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIFdhdmU7XG59KFJlYWN0LkNvbXBvbmVudCk7XG5cbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gV2F2ZTsiLCIndXNlIHN0cmljdCc7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG52YXIgU1RBUlRfRVZFTlRfTkFNRV9NQVAgPSB7XG4gIHRyYW5zaXRpb25zdGFydDoge1xuICAgIHRyYW5zaXRpb246ICd0cmFuc2l0aW9uc3RhcnQnLFxuICAgIFdlYmtpdFRyYW5zaXRpb246ICd3ZWJraXRUcmFuc2l0aW9uU3RhcnQnLFxuICAgIE1velRyYW5zaXRpb246ICdtb3pUcmFuc2l0aW9uU3RhcnQnLFxuICAgIE9UcmFuc2l0aW9uOiAnb1RyYW5zaXRpb25TdGFydCcsXG4gICAgbXNUcmFuc2l0aW9uOiAnTVNUcmFuc2l0aW9uU3RhcnQnXG4gIH0sXG5cbiAgYW5pbWF0aW9uc3RhcnQ6IHtcbiAgICBhbmltYXRpb246ICdhbmltYXRpb25zdGFydCcsXG4gICAgV2Via2l0QW5pbWF0aW9uOiAnd2Via2l0QW5pbWF0aW9uU3RhcnQnLFxuICAgIE1vekFuaW1hdGlvbjogJ21vekFuaW1hdGlvblN0YXJ0JyxcbiAgICBPQW5pbWF0aW9uOiAnb0FuaW1hdGlvblN0YXJ0JyxcbiAgICBtc0FuaW1hdGlvbjogJ01TQW5pbWF0aW9uU3RhcnQnXG4gIH1cbn07XG5cbnZhciBFTkRfRVZFTlRfTkFNRV9NQVAgPSB7XG4gIHRyYW5zaXRpb25lbmQ6IHtcbiAgICB0cmFuc2l0aW9uOiAndHJhbnNpdGlvbmVuZCcsXG4gICAgV2Via2l0VHJhbnNpdGlvbjogJ3dlYmtpdFRyYW5zaXRpb25FbmQnLFxuICAgIE1velRyYW5zaXRpb246ICdtb3pUcmFuc2l0aW9uRW5kJyxcbiAgICBPVHJhbnNpdGlvbjogJ29UcmFuc2l0aW9uRW5kJyxcbiAgICBtc1RyYW5zaXRpb246ICdNU1RyYW5zaXRpb25FbmQnXG4gIH0sXG5cbiAgYW5pbWF0aW9uZW5kOiB7XG4gICAgYW5pbWF0aW9uOiAnYW5pbWF0aW9uZW5kJyxcbiAgICBXZWJraXRBbmltYXRpb246ICd3ZWJraXRBbmltYXRpb25FbmQnLFxuICAgIE1vekFuaW1hdGlvbjogJ21vekFuaW1hdGlvbkVuZCcsXG4gICAgT0FuaW1hdGlvbjogJ29BbmltYXRpb25FbmQnLFxuICAgIG1zQW5pbWF0aW9uOiAnTVNBbmltYXRpb25FbmQnXG4gIH1cbn07XG5cbnZhciBzdGFydEV2ZW50cyA9IFtdO1xudmFyIGVuZEV2ZW50cyA9IFtdO1xuXG5mdW5jdGlvbiBkZXRlY3RFdmVudHMoKSB7XG4gIHZhciB0ZXN0RWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgdmFyIHN0eWxlID0gdGVzdEVsLnN0eWxlO1xuXG4gIGlmICghKCdBbmltYXRpb25FdmVudCcgaW4gd2luZG93KSkge1xuICAgIGRlbGV0ZSBTVEFSVF9FVkVOVF9OQU1FX01BUC5hbmltYXRpb25zdGFydC5hbmltYXRpb247XG4gICAgZGVsZXRlIEVORF9FVkVOVF9OQU1FX01BUC5hbmltYXRpb25lbmQuYW5pbWF0aW9uO1xuICB9XG5cbiAgaWYgKCEoJ1RyYW5zaXRpb25FdmVudCcgaW4gd2luZG93KSkge1xuICAgIGRlbGV0ZSBTVEFSVF9FVkVOVF9OQU1FX01BUC50cmFuc2l0aW9uc3RhcnQudHJhbnNpdGlvbjtcbiAgICBkZWxldGUgRU5EX0VWRU5UX05BTUVfTUFQLnRyYW5zaXRpb25lbmQudHJhbnNpdGlvbjtcbiAgfVxuXG4gIGZ1bmN0aW9uIHByb2Nlc3MoRVZFTlRfTkFNRV9NQVAsIGV2ZW50cykge1xuICAgIGZvciAodmFyIGJhc2VFdmVudE5hbWUgaW4gRVZFTlRfTkFNRV9NQVApIHtcbiAgICAgIGlmIChFVkVOVF9OQU1FX01BUC5oYXNPd25Qcm9wZXJ0eShiYXNlRXZlbnROYW1lKSkge1xuICAgICAgICB2YXIgYmFzZUV2ZW50cyA9IEVWRU5UX05BTUVfTUFQW2Jhc2VFdmVudE5hbWVdO1xuICAgICAgICBmb3IgKHZhciBzdHlsZU5hbWUgaW4gYmFzZUV2ZW50cykge1xuICAgICAgICAgIGlmIChzdHlsZU5hbWUgaW4gc3R5bGUpIHtcbiAgICAgICAgICAgIGV2ZW50cy5wdXNoKGJhc2VFdmVudHNbc3R5bGVOYW1lXSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm9jZXNzKFNUQVJUX0VWRU5UX05BTUVfTUFQLCBzdGFydEV2ZW50cyk7XG4gIHByb2Nlc3MoRU5EX0VWRU5UX05BTUVfTUFQLCBlbmRFdmVudHMpO1xufVxuXG5pZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJykge1xuICBkZXRlY3RFdmVudHMoKTtcbn1cblxuZnVuY3Rpb24gYWRkRXZlbnRMaXN0ZW5lcihub2RlLCBldmVudE5hbWUsIGV2ZW50TGlzdGVuZXIpIHtcbiAgbm9kZS5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgZXZlbnRMaXN0ZW5lciwgZmFsc2UpO1xufVxuXG5mdW5jdGlvbiByZW1vdmVFdmVudExpc3RlbmVyKG5vZGUsIGV2ZW50TmFtZSwgZXZlbnRMaXN0ZW5lcikge1xuICBub2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBldmVudExpc3RlbmVyLCBmYWxzZSk7XG59XG5cbnZhciBUcmFuc2l0aW9uRXZlbnRzID0ge1xuICAvLyBTdGFydCBldmVudHNcbiAgc3RhcnRFdmVudHM6IHN0YXJ0RXZlbnRzLFxuXG4gIGFkZFN0YXJ0RXZlbnRMaXN0ZW5lcjogZnVuY3Rpb24gYWRkU3RhcnRFdmVudExpc3RlbmVyKG5vZGUsIGV2ZW50TGlzdGVuZXIpIHtcbiAgICBpZiAoc3RhcnRFdmVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICB3aW5kb3cuc2V0VGltZW91dChldmVudExpc3RlbmVyLCAwKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgc3RhcnRFdmVudHMuZm9yRWFjaChmdW5jdGlvbiAoc3RhcnRFdmVudCkge1xuICAgICAgYWRkRXZlbnRMaXN0ZW5lcihub2RlLCBzdGFydEV2ZW50LCBldmVudExpc3RlbmVyKTtcbiAgICB9KTtcbiAgfSxcbiAgcmVtb3ZlU3RhcnRFdmVudExpc3RlbmVyOiBmdW5jdGlvbiByZW1vdmVTdGFydEV2ZW50TGlzdGVuZXIobm9kZSwgZXZlbnRMaXN0ZW5lcikge1xuICAgIGlmIChzdGFydEV2ZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgc3RhcnRFdmVudHMuZm9yRWFjaChmdW5jdGlvbiAoc3RhcnRFdmVudCkge1xuICAgICAgcmVtb3ZlRXZlbnRMaXN0ZW5lcihub2RlLCBzdGFydEV2ZW50LCBldmVudExpc3RlbmVyKTtcbiAgICB9KTtcbiAgfSxcblxuXG4gIC8vIEVuZCBldmVudHNcbiAgZW5kRXZlbnRzOiBlbmRFdmVudHMsXG5cbiAgYWRkRW5kRXZlbnRMaXN0ZW5lcjogZnVuY3Rpb24gYWRkRW5kRXZlbnRMaXN0ZW5lcihub2RlLCBldmVudExpc3RlbmVyKSB7XG4gICAgaWYgKGVuZEV2ZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGV2ZW50TGlzdGVuZXIsIDApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBlbmRFdmVudHMuZm9yRWFjaChmdW5jdGlvbiAoZW5kRXZlbnQpIHtcbiAgICAgIGFkZEV2ZW50TGlzdGVuZXIobm9kZSwgZW5kRXZlbnQsIGV2ZW50TGlzdGVuZXIpO1xuICAgIH0pO1xuICB9LFxuICByZW1vdmVFbmRFdmVudExpc3RlbmVyOiBmdW5jdGlvbiByZW1vdmVFbmRFdmVudExpc3RlbmVyKG5vZGUsIGV2ZW50TGlzdGVuZXIpIHtcbiAgICBpZiAoZW5kRXZlbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBlbmRFdmVudHMuZm9yRWFjaChmdW5jdGlvbiAoZW5kRXZlbnQpIHtcbiAgICAgIHJlbW92ZUV2ZW50TGlzdGVuZXIobm9kZSwgZW5kRXZlbnQsIGV2ZW50TGlzdGVuZXIpO1xuICAgIH0pO1xuICB9XG59O1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBUcmFuc2l0aW9uRXZlbnRzO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbmZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjsgaWYgKHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09PSBcInN5bWJvbFwiKSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gdHlwZW9mIG9iajsgfTsgfSBlbHNlIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiBvYmogJiYgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG9iaiAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqOyB9OyB9IHJldHVybiBfdHlwZW9mKG9iaik7IH1cblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gdm9pZCAwO1xuXG52YXIgUmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgX2NsYXNzbmFtZXMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJjbGFzc25hbWVzXCIpKTtcblxudmFyIF9jb25maWdQcm92aWRlciA9IHJlcXVpcmUoXCIuLi9jb25maWctcHJvdmlkZXJcIik7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7IGlmICh0eXBlb2YgV2Vha01hcCAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gbnVsbDsgdmFyIGNhY2hlID0gbmV3IFdlYWtNYXAoKTsgX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlID0gZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyByZXR1cm4gY2FjaGU7IH07IHJldHVybiBjYWNoZTsgfVxuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChvYmopIHsgaWYgKG9iaiAmJiBvYmouX19lc01vZHVsZSkgeyByZXR1cm4gb2JqOyB9IGlmIChvYmogPT09IG51bGwgfHwgX3R5cGVvZihvYmopICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiBvYmogIT09IFwiZnVuY3Rpb25cIikgeyByZXR1cm4geyBcImRlZmF1bHRcIjogb2JqIH07IH0gdmFyIGNhY2hlID0gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCk7IGlmIChjYWNoZSAmJiBjYWNoZS5oYXMob2JqKSkgeyByZXR1cm4gY2FjaGUuZ2V0KG9iaik7IH0gdmFyIG5ld09iaiA9IHt9OyB2YXIgaGFzUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7IGZvciAodmFyIGtleSBpbiBvYmopIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHsgdmFyIGRlc2MgPSBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IG51bGw7IGlmIChkZXNjICYmIChkZXNjLmdldCB8fCBkZXNjLnNldCkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTsgfSBlbHNlIHsgbmV3T2JqW2tleV0gPSBvYmpba2V5XTsgfSB9IH0gbmV3T2JqW1wiZGVmYXVsdFwiXSA9IG9iajsgaWYgKGNhY2hlKSB7IGNhY2hlLnNldChvYmosIG5ld09iaik7IH0gcmV0dXJuIG5ld09iajsgfVxuXG5mdW5jdGlvbiBfZXh0ZW5kcygpIHsgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9OyByZXR1cm4gX2V4dGVuZHMuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfVxuXG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHZhbHVlKSB7IGlmIChrZXkgaW4gb2JqKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgeyB2YWx1ZTogdmFsdWUsIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRydWUgfSk7IH0gZWxzZSB7IG9ialtrZXldID0gdmFsdWU7IH0gcmV0dXJuIG9iajsgfVxuXG52YXIgX19yZXN0ID0gdm9pZCAwICYmICh2b2lkIDApLl9fcmVzdCB8fCBmdW5jdGlvbiAocywgZSkge1xuICB2YXIgdCA9IHt9O1xuXG4gIGZvciAodmFyIHAgaW4gcykge1xuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMCkgdFtwXSA9IHNbcF07XG4gIH1cblxuICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpIHRbcFtpXV0gPSBzW3BbaV1dO1xuICB9XG4gIHJldHVybiB0O1xufTtcblxudmFyIEJ1dHRvbkdyb3VwID0gZnVuY3Rpb24gQnV0dG9uR3JvdXAocHJvcHMpIHtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9jb25maWdQcm92aWRlci5Db25maWdDb25zdW1lciwgbnVsbCwgZnVuY3Rpb24gKF9yZWYpIHtcbiAgICB2YXIgZ2V0UHJlZml4Q2xzID0gX3JlZi5nZXRQcmVmaXhDbHM7XG5cbiAgICB2YXIgY3VzdG9taXplUHJlZml4Q2xzID0gcHJvcHMucHJlZml4Q2xzLFxuICAgICAgICBzaXplID0gcHJvcHMuc2l6ZSxcbiAgICAgICAgY2xhc3NOYW1lID0gcHJvcHMuY2xhc3NOYW1lLFxuICAgICAgICBvdGhlcnMgPSBfX3Jlc3QocHJvcHMsIFtcInByZWZpeENsc1wiLCBcInNpemVcIiwgXCJjbGFzc05hbWVcIl0pO1xuXG4gICAgdmFyIHByZWZpeENscyA9IGdldFByZWZpeENscygnYnRuLWdyb3VwJywgY3VzdG9taXplUHJlZml4Q2xzKTsgLy8gbGFyZ2UgPT4gbGdcbiAgICAvLyBzbWFsbCA9PiBzbVxuXG4gICAgdmFyIHNpemVDbHMgPSAnJztcblxuICAgIHN3aXRjaCAoc2l6ZSkge1xuICAgICAgY2FzZSAnbGFyZ2UnOlxuICAgICAgICBzaXplQ2xzID0gJ2xnJztcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ3NtYWxsJzpcbiAgICAgICAgc2l6ZUNscyA9ICdzbSc7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICB2YXIgY2xhc3NlcyA9ICgwLCBfY2xhc3NuYW1lc1tcImRlZmF1bHRcIl0pKHByZWZpeENscywgX2RlZmluZVByb3BlcnR5KHt9LCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLVwiKS5jb25jYXQoc2l6ZUNscyksIHNpemVDbHMpLCBjbGFzc05hbWUpO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCBfZXh0ZW5kcyh7fSwgb3RoZXJzLCB7XG4gICAgICBjbGFzc05hbWU6IGNsYXNzZXNcbiAgICB9KSk7XG4gIH0pO1xufTtcblxudmFyIF9kZWZhdWx0ID0gQnV0dG9uR3JvdXA7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IF9kZWZhdWx0OyIsIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSB2b2lkIDA7XG5cbnZhciBSZWFjdCA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5cbnZhciBfY2xhc3NuYW1lcyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcImNsYXNzbmFtZXNcIikpO1xuXG52YXIgUHJvcFR5cGVzID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInByb3AtdHlwZXNcIikpO1xuXG52YXIgX2NvbmZpZ1Byb3ZpZGVyID0gcmVxdWlyZShcIi4uL2NvbmZpZy1wcm92aWRlclwiKTtcblxudmFyIF9Sb3dDb250ZXh0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi9Sb3dDb250ZXh0XCIpKTtcblxudmFyIF90eXBlID0gcmVxdWlyZShcIi4uL191dGlsL3R5cGVcIik7XG5cbnZhciBfcmVzcG9uc2l2ZU9ic2VydmUgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwiLi4vX3V0aWwvcmVzcG9uc2l2ZU9ic2VydmVcIikpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyBpZiAodHlwZW9mIFdlYWtNYXAgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIG51bGw7IHZhciBjYWNoZSA9IG5ldyBXZWFrTWFwKCk7IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSA9IGZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgcmV0dXJuIGNhY2hlOyB9OyByZXR1cm4gY2FjaGU7IH1cblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqKSB7IGlmIChvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHsgcmV0dXJuIG9iajsgfSBpZiAob2JqID09PSBudWxsIHx8IF90eXBlb2Yob2JqKSAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygb2JqICE9PSBcImZ1bmN0aW9uXCIpIHsgcmV0dXJuIHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9IHZhciBjYWNoZSA9IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpOyBpZiAoY2FjaGUgJiYgY2FjaGUuaGFzKG9iaikpIHsgcmV0dXJuIGNhY2hlLmdldChvYmopOyB9IHZhciBuZXdPYmogPSB7fTsgdmFyIGhhc1Byb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOyBmb3IgKHZhciBrZXkgaW4gb2JqKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7IHZhciBkZXNjID0gaGFzUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiBudWxsOyBpZiAoZGVzYyAmJiAoZGVzYy5nZXQgfHwgZGVzYy5zZXQpKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXdPYmosIGtleSwgZGVzYyk7IH0gZWxzZSB7IG5ld09ialtrZXldID0gb2JqW2tleV07IH0gfSB9IG5ld09ialtcImRlZmF1bHRcIl0gPSBvYmo7IGlmIChjYWNoZSkgeyBjYWNoZS5zZXQob2JqLCBuZXdPYmopOyB9IHJldHVybiBuZXdPYmo7IH1cblxuZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiOyBpZiAodHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT09IFwic3ltYm9sXCIpIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiB0eXBlb2Ygb2JqOyB9OyB9IGVsc2UgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIG9iaiAmJiB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgb2JqICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvYmo7IH07IH0gcmV0dXJuIF90eXBlb2Yob2JqKTsgfVxuXG5mdW5jdGlvbiBfZXh0ZW5kcygpIHsgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9OyByZXR1cm4gX2V4dGVuZHMuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfVxuXG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHZhbHVlKSB7IGlmIChrZXkgaW4gb2JqKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgeyB2YWx1ZTogdmFsdWUsIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRydWUgfSk7IH0gZWxzZSB7IG9ialtrZXldID0gdmFsdWU7IH0gcmV0dXJuIG9iajsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7IGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHsgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTsgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlOyBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7IGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTsgfSB9XG5cbmZ1bmN0aW9uIF9jcmVhdGVDbGFzcyhDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsgaWYgKHByb3RvUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7IGlmIChzdGF0aWNQcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTsgcmV0dXJuIENvbnN0cnVjdG9yOyB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09IFwiZnVuY3Rpb25cIiAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvblwiKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBfc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpOyB9XG5cbmZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7IF9zZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCBmdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkgeyBvLl9fcHJvdG9fXyA9IHA7IHJldHVybiBvOyB9OyByZXR1cm4gX3NldFByb3RvdHlwZU9mKG8sIHApOyB9XG5cbmZ1bmN0aW9uIF9jcmVhdGVTdXBlcihEZXJpdmVkKSB7IHZhciBoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0ID0gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpOyByZXR1cm4gZnVuY3Rpb24gX2NyZWF0ZVN1cGVySW50ZXJuYWwoKSB7IHZhciBTdXBlciA9IF9nZXRQcm90b3R5cGVPZihEZXJpdmVkKSwgcmVzdWx0OyBpZiAoaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCkgeyB2YXIgTmV3VGFyZ2V0ID0gX2dldFByb3RvdHlwZU9mKHRoaXMpLmNvbnN0cnVjdG9yOyByZXN1bHQgPSBSZWZsZWN0LmNvbnN0cnVjdChTdXBlciwgYXJndW1lbnRzLCBOZXdUYXJnZXQpOyB9IGVsc2UgeyByZXN1bHQgPSBTdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9IHJldHVybiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCByZXN1bHQpOyB9OyB9XG5cbmZ1bmN0aW9uIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHNlbGYsIGNhbGwpIHsgaWYgKGNhbGwgJiYgKF90eXBlb2YoY2FsbCkgPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIGNhbGwgPT09IFwiZnVuY3Rpb25cIikpIHsgcmV0dXJuIGNhbGw7IH0gcmV0dXJuIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZik7IH1cblxuZnVuY3Rpb24gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKSB7IGlmIChzZWxmID09PSB2b2lkIDApIHsgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpOyB9IHJldHVybiBzZWxmOyB9XG5cbmZ1bmN0aW9uIF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKSB7IGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJ1bmRlZmluZWRcIiB8fCAhUmVmbGVjdC5jb25zdHJ1Y3QpIHJldHVybiBmYWxzZTsgaWYgKFJlZmxlY3QuY29uc3RydWN0LnNoYW0pIHJldHVybiBmYWxzZTsgaWYgKHR5cGVvZiBQcm94eSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gdHJ1ZTsgdHJ5IHsgRGF0ZS5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChEYXRlLCBbXSwgZnVuY3Rpb24gKCkge30pKTsgcmV0dXJuIHRydWU7IH0gY2F0Y2ggKGUpIHsgcmV0dXJuIGZhbHNlOyB9IH1cblxuZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHsgX2dldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LmdldFByb3RvdHlwZU9mIDogZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHsgcmV0dXJuIG8uX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihvKTsgfTsgcmV0dXJuIF9nZXRQcm90b3R5cGVPZihvKTsgfVxuXG52YXIgX19yZXN0ID0gdm9pZCAwICYmICh2b2lkIDApLl9fcmVzdCB8fCBmdW5jdGlvbiAocywgZSkge1xuICB2YXIgdCA9IHt9O1xuXG4gIGZvciAodmFyIHAgaW4gcykge1xuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMCkgdFtwXSA9IHNbcF07XG4gIH1cblxuICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpIHRbcFtpXV0gPSBzW3BbaV1dO1xuICB9XG4gIHJldHVybiB0O1xufTtcblxudmFyIFJvd0FsaWducyA9ICgwLCBfdHlwZS50dXBsZSkoJ3RvcCcsICdtaWRkbGUnLCAnYm90dG9tJywgJ3N0cmV0Y2gnKTtcbnZhciBSb3dKdXN0aWZ5ID0gKDAsIF90eXBlLnR1cGxlKSgnc3RhcnQnLCAnZW5kJywgJ2NlbnRlcicsICdzcGFjZS1hcm91bmQnLCAnc3BhY2UtYmV0d2VlbicpO1xuXG52YXIgUm93ID0gLyojX19QVVJFX18qL2Z1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhSb3csIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gIHZhciBfc3VwZXIgPSBfY3JlYXRlU3VwZXIoUm93KTtcblxuICBmdW5jdGlvbiBSb3coKSB7XG4gICAgdmFyIF90aGlzO1xuXG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJvdyk7XG5cbiAgICBfdGhpcyA9IF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgIF90aGlzLnN0YXRlID0ge1xuICAgICAgc2NyZWVuczoge31cbiAgICB9O1xuXG4gICAgX3RoaXMucmVuZGVyUm93ID0gZnVuY3Rpb24gKF9yZWYpIHtcbiAgICAgIHZhciBfY2xhc3NOYW1lcztcblxuICAgICAgdmFyIGdldFByZWZpeENscyA9IF9yZWYuZ2V0UHJlZml4Q2xzO1xuXG4gICAgICB2YXIgX2EgPSBfdGhpcy5wcm9wcyxcbiAgICAgICAgICBjdXN0b21pemVQcmVmaXhDbHMgPSBfYS5wcmVmaXhDbHMsXG4gICAgICAgICAgdHlwZSA9IF9hLnR5cGUsXG4gICAgICAgICAganVzdGlmeSA9IF9hLmp1c3RpZnksXG4gICAgICAgICAgYWxpZ24gPSBfYS5hbGlnbixcbiAgICAgICAgICBjbGFzc05hbWUgPSBfYS5jbGFzc05hbWUsXG4gICAgICAgICAgc3R5bGUgPSBfYS5zdHlsZSxcbiAgICAgICAgICBjaGlsZHJlbiA9IF9hLmNoaWxkcmVuLFxuICAgICAgICAgIG90aGVycyA9IF9fcmVzdChfYSwgW1wicHJlZml4Q2xzXCIsIFwidHlwZVwiLCBcImp1c3RpZnlcIiwgXCJhbGlnblwiLCBcImNsYXNzTmFtZVwiLCBcInN0eWxlXCIsIFwiY2hpbGRyZW5cIl0pO1xuXG4gICAgICB2YXIgcHJlZml4Q2xzID0gZ2V0UHJlZml4Q2xzKCdyb3cnLCBjdXN0b21pemVQcmVmaXhDbHMpO1xuXG4gICAgICB2YXIgZ3V0dGVyID0gX3RoaXMuZ2V0R3V0dGVyKCk7XG5cbiAgICAgIHZhciBjbGFzc2VzID0gKDAsIF9jbGFzc25hbWVzW1wiZGVmYXVsdFwiXSkoKF9jbGFzc05hbWVzID0ge30sIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgcHJlZml4Q2xzLCAhdHlwZSksIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1cIikuY29uY2F0KHR5cGUpLCB0eXBlKSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc05hbWVzLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLVwiKS5jb25jYXQodHlwZSwgXCItXCIpLmNvbmNhdChqdXN0aWZ5KSwgdHlwZSAmJiBqdXN0aWZ5KSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc05hbWVzLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLVwiKS5jb25jYXQodHlwZSwgXCItXCIpLmNvbmNhdChhbGlnbiksIHR5cGUgJiYgYWxpZ24pLCBfY2xhc3NOYW1lcyksIGNsYXNzTmFtZSk7XG5cbiAgICAgIHZhciByb3dTdHlsZSA9IF9leHRlbmRzKF9leHRlbmRzKF9leHRlbmRzKHt9LCBndXR0ZXJbMF0gPiAwID8ge1xuICAgICAgICBtYXJnaW5MZWZ0OiBndXR0ZXJbMF0gLyAtMixcbiAgICAgICAgbWFyZ2luUmlnaHQ6IGd1dHRlclswXSAvIC0yXG4gICAgICB9IDoge30pLCBndXR0ZXJbMV0gPiAwID8ge1xuICAgICAgICBtYXJnaW5Ub3A6IGd1dHRlclsxXSAvIC0yLFxuICAgICAgICBtYXJnaW5Cb3R0b206IGd1dHRlclsxXSAvIC0yXG4gICAgICB9IDoge30pLCBzdHlsZSk7XG5cbiAgICAgIHZhciBvdGhlclByb3BzID0gX2V4dGVuZHMoe30sIG90aGVycyk7XG5cbiAgICAgIGRlbGV0ZSBvdGhlclByb3BzLmd1dHRlcjtcbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfUm93Q29udGV4dFtcImRlZmF1bHRcIl0uUHJvdmlkZXIsIHtcbiAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICBndXR0ZXI6IGd1dHRlclxuICAgICAgICB9XG4gICAgICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCBfZXh0ZW5kcyh7fSwgb3RoZXJQcm9wcywge1xuICAgICAgICBjbGFzc05hbWU6IGNsYXNzZXMsXG4gICAgICAgIHN0eWxlOiByb3dTdHlsZVxuICAgICAgfSksIGNoaWxkcmVuKSk7XG4gICAgfTtcblxuICAgIHJldHVybiBfdGhpcztcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhSb3csIFt7XG4gICAga2V5OiBcImNvbXBvbmVudERpZE1vdW50XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgICAgIHRoaXMudG9rZW4gPSBfcmVzcG9uc2l2ZU9ic2VydmVbXCJkZWZhdWx0XCJdLnN1YnNjcmliZShmdW5jdGlvbiAoc2NyZWVucykge1xuICAgICAgICB2YXIgZ3V0dGVyID0gX3RoaXMyLnByb3BzLmd1dHRlcjtcblxuICAgICAgICBpZiAoX3R5cGVvZihndXR0ZXIpID09PSAnb2JqZWN0JyB8fCBBcnJheS5pc0FycmF5KGd1dHRlcikgJiYgKF90eXBlb2YoZ3V0dGVyWzBdKSA9PT0gJ29iamVjdCcgfHwgX3R5cGVvZihndXR0ZXJbMV0pID09PSAnb2JqZWN0JykpIHtcbiAgICAgICAgICBfdGhpczIuc2V0U3RhdGUoe1xuICAgICAgICAgICAgc2NyZWVuczogc2NyZWVuc1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiY29tcG9uZW50V2lsbFVubW91bnRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICBfcmVzcG9uc2l2ZU9ic2VydmVbXCJkZWZhdWx0XCJdLnVuc3Vic2NyaWJlKHRoaXMudG9rZW4pO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJnZXRHdXR0ZXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0R3V0dGVyKCkge1xuICAgICAgdmFyIHJlc3VsdHMgPSBbMCwgMF07XG4gICAgICB2YXIgZ3V0dGVyID0gdGhpcy5wcm9wcy5ndXR0ZXI7XG4gICAgICB2YXIgc2NyZWVucyA9IHRoaXMuc3RhdGUuc2NyZWVucztcbiAgICAgIHZhciBub3JtYWxpemVkR3V0dGVyID0gQXJyYXkuaXNBcnJheShndXR0ZXIpID8gZ3V0dGVyIDogW2d1dHRlciwgMF07XG4gICAgICBub3JtYWxpemVkR3V0dGVyLmZvckVhY2goZnVuY3Rpb24gKGcsIGluZGV4KSB7XG4gICAgICAgIGlmIChfdHlwZW9mKGcpID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgX3Jlc3BvbnNpdmVPYnNlcnZlLnJlc3BvbnNpdmVBcnJheS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdmFyIGJyZWFrcG9pbnQgPSBfcmVzcG9uc2l2ZU9ic2VydmUucmVzcG9uc2l2ZUFycmF5W2ldO1xuXG4gICAgICAgICAgICBpZiAoc2NyZWVuc1ticmVha3BvaW50XSAmJiBnW2JyZWFrcG9pbnRdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgcmVzdWx0c1tpbmRleF0gPSBnW2JyZWFrcG9pbnRdO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzdWx0c1tpbmRleF0gPSBnIHx8IDA7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbmRlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX2NvbmZpZ1Byb3ZpZGVyLkNvbmZpZ0NvbnN1bWVyLCBudWxsLCB0aGlzLnJlbmRlclJvdyk7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIFJvdztcbn0oUmVhY3QuQ29tcG9uZW50KTtcblxuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBSb3c7XG5Sb3cuZGVmYXVsdFByb3BzID0ge1xuICBndXR0ZXI6IDBcbn07XG5Sb3cucHJvcFR5cGVzID0ge1xuICB0eXBlOiBQcm9wVHlwZXMub25lT2YoWydmbGV4J10pLFxuICBhbGlnbjogUHJvcFR5cGVzLm9uZU9mKFJvd0FsaWducyksXG4gIGp1c3RpZnk6IFByb3BUeXBlcy5vbmVPZihSb3dKdXN0aWZ5KSxcbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGUsXG4gIGd1dHRlcjogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLm9iamVjdCwgUHJvcFR5cGVzLm51bWJlciwgUHJvcFR5cGVzLmFycmF5XSksXG4gIHByZWZpeENsczogUHJvcFR5cGVzLnN0cmluZ1xufTsiLCJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gZXhwb3J0cy5yZXNwb25zaXZlTWFwID0gZXhwb3J0cy5yZXNwb25zaXZlQXJyYXkgPSB2b2lkIDA7XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHsgaWYgKGtleSBpbiBvYmopIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7IHZhbHVlOiB2YWx1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSB9KTsgfSBlbHNlIHsgb2JqW2tleV0gPSB2YWx1ZTsgfSByZXR1cm4gb2JqOyB9XG5cbmZ1bmN0aW9uIF9leHRlbmRzKCkgeyBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07IHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9XG5cbi8vIG1hdGNoTWVkaWEgcG9seWZpbGwgZm9yXG4vLyBodHRwczovL2dpdGh1Yi5jb20vV2lja3lOaWxsaWFtcy9lbnF1aXJlLmpzL2lzc3Vlcy84MlxudmFyIGVucXVpcmU7IC8vIFRPRE86IFdpbGwgYmUgcmVtb3ZlZCBpbiBhbnRkIDQuMCBiZWNhdXNlIHdlIHdpbGwgbm8gbG9uZ2VyIHN1cHBvcnQgaWU5XG5cbmlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICB2YXIgbWF0Y2hNZWRpYVBvbHlmaWxsID0gZnVuY3Rpb24gbWF0Y2hNZWRpYVBvbHlmaWxsKG1lZGlhUXVlcnkpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbWVkaWE6IG1lZGlhUXVlcnksXG4gICAgICBtYXRjaGVzOiBmYWxzZSxcbiAgICAgIGFkZExpc3RlbmVyOiBmdW5jdGlvbiBhZGRMaXN0ZW5lcigpIHt9LFxuICAgICAgcmVtb3ZlTGlzdGVuZXI6IGZ1bmN0aW9uIHJlbW92ZUxpc3RlbmVyKCkge31cbiAgICB9O1xuICB9OyAvLyByZWY6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2FudC1kZXNpZ24vaXNzdWVzLzE4Nzc0XG5cblxuICBpZiAoIXdpbmRvdy5tYXRjaE1lZGlhKSB3aW5kb3cubWF0Y2hNZWRpYSA9IG1hdGNoTWVkaWFQb2x5ZmlsbDsgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGdsb2JhbC1yZXF1aXJlXG5cbiAgZW5xdWlyZSA9IHJlcXVpcmUoJ2VucXVpcmUuanMnKTtcbn1cblxudmFyIHJlc3BvbnNpdmVBcnJheSA9IFsneHhsJywgJ3hsJywgJ2xnJywgJ21kJywgJ3NtJywgJ3hzJ107XG5leHBvcnRzLnJlc3BvbnNpdmVBcnJheSA9IHJlc3BvbnNpdmVBcnJheTtcbnZhciByZXNwb25zaXZlTWFwID0ge1xuICB4czogJyhtYXgtd2lkdGg6IDU3NXB4KScsXG4gIHNtOiAnKG1pbi13aWR0aDogNTc2cHgpJyxcbiAgbWQ6ICcobWluLXdpZHRoOiA3NjhweCknLFxuICBsZzogJyhtaW4td2lkdGg6IDk5MnB4KScsXG4gIHhsOiAnKG1pbi13aWR0aDogMTIwMHB4KScsXG4gIHh4bDogJyhtaW4td2lkdGg6IDE2MDBweCknXG59O1xuZXhwb3J0cy5yZXNwb25zaXZlTWFwID0gcmVzcG9uc2l2ZU1hcDtcbnZhciBzdWJzY3JpYmVycyA9IFtdO1xudmFyIHN1YlVpZCA9IC0xO1xudmFyIHNjcmVlbnMgPSB7fTtcbnZhciByZXNwb25zaXZlT2JzZXJ2ZSA9IHtcbiAgZGlzcGF0Y2g6IGZ1bmN0aW9uIGRpc3BhdGNoKHBvaW50TWFwKSB7XG4gICAgc2NyZWVucyA9IHBvaW50TWFwO1xuXG4gICAgaWYgKHN1YnNjcmliZXJzLmxlbmd0aCA8IDEpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBzdWJzY3JpYmVycy5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICBpdGVtLmZ1bmMoc2NyZWVucyk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0sXG4gIHN1YnNjcmliZTogZnVuY3Rpb24gc3Vic2NyaWJlKGZ1bmMpIHtcbiAgICBpZiAoc3Vic2NyaWJlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLnJlZ2lzdGVyKCk7XG4gICAgfVxuXG4gICAgdmFyIHRva2VuID0gKCsrc3ViVWlkKS50b1N0cmluZygpO1xuICAgIHN1YnNjcmliZXJzLnB1c2goe1xuICAgICAgdG9rZW46IHRva2VuLFxuICAgICAgZnVuYzogZnVuY1xuICAgIH0pO1xuICAgIGZ1bmMoc2NyZWVucyk7XG4gICAgcmV0dXJuIHRva2VuO1xuICB9LFxuICB1bnN1YnNjcmliZTogZnVuY3Rpb24gdW5zdWJzY3JpYmUodG9rZW4pIHtcbiAgICBzdWJzY3JpYmVycyA9IHN1YnNjcmliZXJzLmZpbHRlcihmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgcmV0dXJuIGl0ZW0udG9rZW4gIT09IHRva2VuO1xuICAgIH0pO1xuXG4gICAgaWYgKHN1YnNjcmliZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy51bnJlZ2lzdGVyKCk7XG4gICAgfVxuICB9LFxuICB1bnJlZ2lzdGVyOiBmdW5jdGlvbiB1bnJlZ2lzdGVyKCkge1xuICAgIE9iamVjdC5rZXlzKHJlc3BvbnNpdmVNYXApLm1hcChmdW5jdGlvbiAoc2NyZWVuKSB7XG4gICAgICByZXR1cm4gZW5xdWlyZS51bnJlZ2lzdGVyKHJlc3BvbnNpdmVNYXBbc2NyZWVuXSk7XG4gICAgfSk7XG4gIH0sXG4gIHJlZ2lzdGVyOiBmdW5jdGlvbiByZWdpc3RlcigpIHtcbiAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgT2JqZWN0LmtleXMocmVzcG9uc2l2ZU1hcCkubWFwKGZ1bmN0aW9uIChzY3JlZW4pIHtcbiAgICAgIHJldHVybiBlbnF1aXJlLnJlZ2lzdGVyKHJlc3BvbnNpdmVNYXBbc2NyZWVuXSwge1xuICAgICAgICBtYXRjaDogZnVuY3Rpb24gbWF0Y2goKSB7XG4gICAgICAgICAgdmFyIHBvaW50TWFwID0gX2V4dGVuZHMoX2V4dGVuZHMoe30sIHNjcmVlbnMpLCBfZGVmaW5lUHJvcGVydHkoe30sIHNjcmVlbiwgdHJ1ZSkpO1xuXG4gICAgICAgICAgX3RoaXMuZGlzcGF0Y2gocG9pbnRNYXApO1xuICAgICAgICB9LFxuICAgICAgICB1bm1hdGNoOiBmdW5jdGlvbiB1bm1hdGNoKCkge1xuICAgICAgICAgIHZhciBwb2ludE1hcCA9IF9leHRlbmRzKF9leHRlbmRzKHt9LCBzY3JlZW5zKSwgX2RlZmluZVByb3BlcnR5KHt9LCBzY3JlZW4sIGZhbHNlKSk7XG5cbiAgICAgICAgICBfdGhpcy5kaXNwYXRjaChwb2ludE1hcCk7XG4gICAgICAgIH0sXG4gICAgICAgIC8vIEtlZXAgYSBlbXB0eSBkZXN0b3J5IHRvIGF2b2lkIHRyaWdnZXJpbmcgdW5tYXRjaCB3aGVuIHVucmVnaXN0ZXJcbiAgICAgICAgZGVzdHJveTogZnVuY3Rpb24gZGVzdHJveSgpIHt9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxufTtcbnZhciBfZGVmYXVsdCA9IHJlc3BvbnNpdmVPYnNlcnZlO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBfZGVmYXVsdDsiLCJ2YXIgTWVkaWFRdWVyeURpc3BhdGNoID0gcmVxdWlyZSgnLi9NZWRpYVF1ZXJ5RGlzcGF0Y2gnKTtcbm1vZHVsZS5leHBvcnRzID0gbmV3IE1lZGlhUXVlcnlEaXNwYXRjaCgpO1xuIiwidmFyIE1lZGlhUXVlcnkgPSByZXF1aXJlKCcuL01lZGlhUXVlcnknKTtcbnZhciBVdGlsID0gcmVxdWlyZSgnLi9VdGlsJyk7XG52YXIgZWFjaCA9IFV0aWwuZWFjaDtcbnZhciBpc0Z1bmN0aW9uID0gVXRpbC5pc0Z1bmN0aW9uO1xudmFyIGlzQXJyYXkgPSBVdGlsLmlzQXJyYXk7XG5cbi8qKlxuICogQWxsb3dzIGZvciByZWdpc3RyYXRpb24gb2YgcXVlcnkgaGFuZGxlcnMuXG4gKiBNYW5hZ2VzIHRoZSBxdWVyeSBoYW5kbGVyJ3Mgc3RhdGUgYW5kIGlzIHJlc3BvbnNpYmxlIGZvciB3aXJpbmcgdXAgYnJvd3NlciBldmVudHNcbiAqXG4gKiBAY29uc3RydWN0b3JcbiAqL1xuZnVuY3Rpb24gTWVkaWFRdWVyeURpc3BhdGNoICgpIHtcbiAgICBpZighd2luZG93Lm1hdGNoTWVkaWEpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdtYXRjaE1lZGlhIG5vdCBwcmVzZW50LCBsZWdhY3kgYnJvd3NlcnMgcmVxdWlyZSBhIHBvbHlmaWxsJyk7XG4gICAgfVxuXG4gICAgdGhpcy5xdWVyaWVzID0ge307XG4gICAgdGhpcy5icm93c2VySXNJbmNhcGFibGUgPSAhd2luZG93Lm1hdGNoTWVkaWEoJ29ubHkgYWxsJykubWF0Y2hlcztcbn1cblxuTWVkaWFRdWVyeURpc3BhdGNoLnByb3RvdHlwZSA9IHtcblxuICAgIGNvbnN0cnVjdG9yIDogTWVkaWFRdWVyeURpc3BhdGNoLFxuXG4gICAgLyoqXG4gICAgICogUmVnaXN0ZXJzIGEgaGFuZGxlciBmb3IgdGhlIGdpdmVuIG1lZGlhIHF1ZXJ5XG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gcSB0aGUgbWVkaWEgcXVlcnlcbiAgICAgKiBAcGFyYW0ge29iamVjdCB8fCBBcnJheSB8fCBGdW5jdGlvbn0gb3B0aW9ucyBlaXRoZXIgYSBzaW5nbGUgcXVlcnkgaGFuZGxlciBvYmplY3QsIGEgZnVuY3Rpb24sIG9yIGFuIGFycmF5IG9mIHF1ZXJ5IGhhbmRsZXJzXG4gICAgICogQHBhcmFtIHtmdW5jdGlvbn0gb3B0aW9ucy5tYXRjaCBmaXJlZCB3aGVuIHF1ZXJ5IG1hdGNoZWRcbiAgICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBbb3B0aW9ucy51bm1hdGNoXSBmaXJlZCB3aGVuIGEgcXVlcnkgaXMgbm8gbG9uZ2VyIG1hdGNoZWRcbiAgICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBbb3B0aW9ucy5zZXR1cF0gZmlyZWQgd2hlbiBoYW5kbGVyIGZpcnN0IHRyaWdnZXJlZFxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMuZGVmZXJTZXR1cD1mYWxzZV0gd2hldGhlciBzZXR1cCBzaG91bGQgYmUgcnVuIGltbWVkaWF0ZWx5IG9yIGRlZmVycmVkIHVudGlsIHF1ZXJ5IGlzIGZpcnN0IG1hdGNoZWRcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtzaG91bGREZWdyYWRlPWZhbHNlXSB3aGV0aGVyIHRoaXMgcGFydGljdWxhciBtZWRpYSBxdWVyeSBzaG91bGQgYWx3YXlzIHJ1biBvbiBpbmNhcGFibGUgYnJvd3NlcnNcbiAgICAgKi9cbiAgICByZWdpc3RlciA6IGZ1bmN0aW9uKHEsIG9wdGlvbnMsIHNob3VsZERlZ3JhZGUpIHtcbiAgICAgICAgdmFyIHF1ZXJpZXMgICAgICAgICA9IHRoaXMucXVlcmllcyxcbiAgICAgICAgICAgIGlzVW5jb25kaXRpb25hbCA9IHNob3VsZERlZ3JhZGUgJiYgdGhpcy5icm93c2VySXNJbmNhcGFibGU7XG5cbiAgICAgICAgaWYoIXF1ZXJpZXNbcV0pIHtcbiAgICAgICAgICAgIHF1ZXJpZXNbcV0gPSBuZXcgTWVkaWFRdWVyeShxLCBpc1VuY29uZGl0aW9uYWwpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy9ub3JtYWxpc2UgdG8gb2JqZWN0IGluIGFuIGFycmF5XG4gICAgICAgIGlmKGlzRnVuY3Rpb24ob3B0aW9ucykpIHtcbiAgICAgICAgICAgIG9wdGlvbnMgPSB7IG1hdGNoIDogb3B0aW9ucyB9O1xuICAgICAgICB9XG4gICAgICAgIGlmKCFpc0FycmF5KG9wdGlvbnMpKSB7XG4gICAgICAgICAgICBvcHRpb25zID0gW29wdGlvbnNdO1xuICAgICAgICB9XG4gICAgICAgIGVhY2gob3B0aW9ucywgZnVuY3Rpb24oaGFuZGxlcikge1xuICAgICAgICAgICAgaWYgKGlzRnVuY3Rpb24oaGFuZGxlcikpIHtcbiAgICAgICAgICAgICAgICBoYW5kbGVyID0geyBtYXRjaCA6IGhhbmRsZXIgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHF1ZXJpZXNbcV0uYWRkSGFuZGxlcihoYW5kbGVyKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIHVucmVnaXN0ZXJzIGEgcXVlcnkgYW5kIGFsbCBpdCdzIGhhbmRsZXJzLCBvciBhIHNwZWNpZmljIGhhbmRsZXIgZm9yIGEgcXVlcnlcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBxIHRoZSBtZWRpYSBxdWVyeSB0byB0YXJnZXRcbiAgICAgKiBAcGFyYW0ge29iamVjdCB8fCBmdW5jdGlvbn0gW2hhbmRsZXJdIHNwZWNpZmljIGhhbmRsZXIgdG8gdW5yZWdpc3RlclxuICAgICAqL1xuICAgIHVucmVnaXN0ZXIgOiBmdW5jdGlvbihxLCBoYW5kbGVyKSB7XG4gICAgICAgIHZhciBxdWVyeSA9IHRoaXMucXVlcmllc1txXTtcblxuICAgICAgICBpZihxdWVyeSkge1xuICAgICAgICAgICAgaWYoaGFuZGxlcikge1xuICAgICAgICAgICAgICAgIHF1ZXJ5LnJlbW92ZUhhbmRsZXIoaGFuZGxlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBxdWVyeS5jbGVhcigpO1xuICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLnF1ZXJpZXNbcV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IE1lZGlhUXVlcnlEaXNwYXRjaDtcbiIsInZhciBRdWVyeUhhbmRsZXIgPSByZXF1aXJlKCcuL1F1ZXJ5SGFuZGxlcicpO1xudmFyIGVhY2ggPSByZXF1aXJlKCcuL1V0aWwnKS5lYWNoO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBzaW5nbGUgbWVkaWEgcXVlcnksIG1hbmFnZXMgaXQncyBzdGF0ZSBhbmQgcmVnaXN0ZXJlZCBoYW5kbGVycyBmb3IgdGhpcyBxdWVyeVxuICpcbiAqIEBjb25zdHJ1Y3RvclxuICogQHBhcmFtIHtzdHJpbmd9IHF1ZXJ5IHRoZSBtZWRpYSBxdWVyeSBzdHJpbmdcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzVW5jb25kaXRpb25hbD1mYWxzZV0gd2hldGhlciB0aGUgbWVkaWEgcXVlcnkgc2hvdWxkIHJ1biByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlIGNvbmRpdGlvbnMgYXJlIG1ldC4gUHJpbWFyaWx5IGZvciBoZWxwaW5nIG9sZGVyIGJyb3dzZXJzIGRlYWwgd2l0aCBtb2JpbGUtZmlyc3QgZGVzaWduXG4gKi9cbmZ1bmN0aW9uIE1lZGlhUXVlcnkocXVlcnksIGlzVW5jb25kaXRpb25hbCkge1xuICAgIHRoaXMucXVlcnkgPSBxdWVyeTtcbiAgICB0aGlzLmlzVW5jb25kaXRpb25hbCA9IGlzVW5jb25kaXRpb25hbDtcbiAgICB0aGlzLmhhbmRsZXJzID0gW107XG4gICAgdGhpcy5tcWwgPSB3aW5kb3cubWF0Y2hNZWRpYShxdWVyeSk7XG5cbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgdGhpcy5saXN0ZW5lciA9IGZ1bmN0aW9uKG1xbCkge1xuICAgICAgICAvLyBDaHJvbWUgcGFzc2VzIGFuIE1lZGlhUXVlcnlMaXN0RXZlbnQgb2JqZWN0LCB3aGlsZSBvdGhlciBicm93c2VycyBwYXNzIE1lZGlhUXVlcnlMaXN0IGRpcmVjdGx5XG4gICAgICAgIHNlbGYubXFsID0gbXFsLmN1cnJlbnRUYXJnZXQgfHwgbXFsO1xuICAgICAgICBzZWxmLmFzc2VzcygpO1xuICAgIH07XG4gICAgdGhpcy5tcWwuYWRkTGlzdGVuZXIodGhpcy5saXN0ZW5lcik7XG59XG5cbk1lZGlhUXVlcnkucHJvdG90eXBlID0ge1xuXG4gICAgY29uc3R1Y3RvciA6IE1lZGlhUXVlcnksXG5cbiAgICAvKipcbiAgICAgKiBhZGQgYSBoYW5kbGVyIGZvciB0aGlzIHF1ZXJ5LCB0cmlnZ2VyaW5nIGlmIGFscmVhZHkgYWN0aXZlXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gaGFuZGxlclxuICAgICAqIEBwYXJhbSB7ZnVuY3Rpb259IGhhbmRsZXIubWF0Y2ggY2FsbGJhY2sgZm9yIHdoZW4gcXVlcnkgaXMgYWN0aXZhdGVkXG4gICAgICogQHBhcmFtIHtmdW5jdGlvbn0gW2hhbmRsZXIudW5tYXRjaF0gY2FsbGJhY2sgZm9yIHdoZW4gcXVlcnkgaXMgZGVhY3RpdmF0ZWRcbiAgICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBbaGFuZGxlci5zZXR1cF0gY2FsbGJhY2sgZm9yIGltbWVkaWF0ZSBleGVjdXRpb24gd2hlbiBhIHF1ZXJ5IGhhbmRsZXIgaXMgcmVnaXN0ZXJlZFxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2hhbmRsZXIuZGVmZXJTZXR1cD1mYWxzZV0gc2hvdWxkIHRoZSBzZXR1cCBjYWxsYmFjayBiZSBkZWZlcnJlZCB1bnRpbCB0aGUgZmlyc3QgdGltZSB0aGUgaGFuZGxlciBpcyBtYXRjaGVkP1xuICAgICAqL1xuICAgIGFkZEhhbmRsZXIgOiBmdW5jdGlvbihoYW5kbGVyKSB7XG4gICAgICAgIHZhciBxaCA9IG5ldyBRdWVyeUhhbmRsZXIoaGFuZGxlcik7XG4gICAgICAgIHRoaXMuaGFuZGxlcnMucHVzaChxaCk7XG5cbiAgICAgICAgdGhpcy5tYXRjaGVzKCkgJiYgcWgub24oKTtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogcmVtb3ZlcyB0aGUgZ2l2ZW4gaGFuZGxlciBmcm9tIHRoZSBjb2xsZWN0aW9uLCBhbmQgY2FsbHMgaXQncyBkZXN0cm95IG1ldGhvZHNcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7b2JqZWN0IHx8IGZ1bmN0aW9ufSBoYW5kbGVyIHRoZSBoYW5kbGVyIHRvIHJlbW92ZVxuICAgICAqL1xuICAgIHJlbW92ZUhhbmRsZXIgOiBmdW5jdGlvbihoYW5kbGVyKSB7XG4gICAgICAgIHZhciBoYW5kbGVycyA9IHRoaXMuaGFuZGxlcnM7XG4gICAgICAgIGVhY2goaGFuZGxlcnMsIGZ1bmN0aW9uKGgsIGkpIHtcbiAgICAgICAgICAgIGlmKGguZXF1YWxzKGhhbmRsZXIpKSB7XG4gICAgICAgICAgICAgICAgaC5kZXN0cm95KCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuICFoYW5kbGVycy5zcGxpY2UoaSwxKTsgLy9yZW1vdmUgZnJvbSBhcnJheSBhbmQgZXhpdCBlYWNoIGVhcmx5XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBEZXRlcm1pbmUgd2hldGhlciB0aGUgbWVkaWEgcXVlcnkgc2hvdWxkIGJlIGNvbnNpZGVyZWQgYSBtYXRjaFxuICAgICAqXG4gICAgICogQHJldHVybiB7Qm9vbGVhbn0gdHJ1ZSBpZiBtZWRpYSBxdWVyeSBjYW4gYmUgY29uc2lkZXJlZCBhIG1hdGNoLCBmYWxzZSBvdGhlcndpc2VcbiAgICAgKi9cbiAgICBtYXRjaGVzIDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1xbC5tYXRjaGVzIHx8IHRoaXMuaXNVbmNvbmRpdGlvbmFsO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBDbGVhcnMgYWxsIGhhbmRsZXJzIGFuZCB1bmJpbmRzIGV2ZW50c1xuICAgICAqL1xuICAgIGNsZWFyIDogZnVuY3Rpb24oKSB7XG4gICAgICAgIGVhY2godGhpcy5oYW5kbGVycywgZnVuY3Rpb24oaGFuZGxlcikge1xuICAgICAgICAgICAgaGFuZGxlci5kZXN0cm95KCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLm1xbC5yZW1vdmVMaXN0ZW5lcih0aGlzLmxpc3RlbmVyKTtcbiAgICAgICAgdGhpcy5oYW5kbGVycy5sZW5ndGggPSAwOyAvL2NsZWFyIGFycmF5XG4gICAgfSxcblxuICAgIC8qXG4gICAgICAgICogQXNzZXNzZXMgdGhlIHF1ZXJ5LCB0dXJuaW5nIG9uIGFsbCBoYW5kbGVycyBpZiBpdCBtYXRjaGVzLCB0dXJuaW5nIHRoZW0gb2ZmIGlmIGl0IGRvZXNuJ3QgbWF0Y2hcbiAgICAgICAgKi9cbiAgICBhc3Nlc3MgOiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIGFjdGlvbiA9IHRoaXMubWF0Y2hlcygpID8gJ29uJyA6ICdvZmYnO1xuXG4gICAgICAgIGVhY2godGhpcy5oYW5kbGVycywgZnVuY3Rpb24oaGFuZGxlcikge1xuICAgICAgICAgICAgaGFuZGxlclthY3Rpb25dKCk7XG4gICAgICAgIH0pO1xuICAgIH1cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gTWVkaWFRdWVyeTtcbiIsIi8qKlxuICogRGVsZWdhdGUgdG8gaGFuZGxlIGEgbWVkaWEgcXVlcnkgYmVpbmcgbWF0Y2hlZCBhbmQgdW5tYXRjaGVkLlxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSBvcHRpb25zXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBvcHRpb25zLm1hdGNoIGNhbGxiYWNrIGZvciB3aGVuIHRoZSBtZWRpYSBxdWVyeSBpcyBtYXRjaGVkXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBbb3B0aW9ucy51bm1hdGNoXSBjYWxsYmFjayBmb3Igd2hlbiB0aGUgbWVkaWEgcXVlcnkgaXMgdW5tYXRjaGVkXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBbb3B0aW9ucy5zZXR1cF0gb25lLXRpbWUgY2FsbGJhY2sgdHJpZ2dlcmVkIHRoZSBmaXJzdCB0aW1lIGEgcXVlcnkgaXMgbWF0Y2hlZFxuICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5kZWZlclNldHVwPWZhbHNlXSBzaG91bGQgdGhlIHNldHVwIGNhbGxiYWNrIGJlIHJ1biBpbW1lZGlhdGVseSwgcmF0aGVyIHRoYW4gZmlyc3QgdGltZSBxdWVyeSBpcyBtYXRjaGVkP1xuICogQGNvbnN0cnVjdG9yXG4gKi9cbmZ1bmN0aW9uIFF1ZXJ5SGFuZGxlcihvcHRpb25zKSB7XG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICAhb3B0aW9ucy5kZWZlclNldHVwICYmIHRoaXMuc2V0dXAoKTtcbn1cblxuUXVlcnlIYW5kbGVyLnByb3RvdHlwZSA9IHtcblxuICAgIGNvbnN0cnVjdG9yIDogUXVlcnlIYW5kbGVyLFxuXG4gICAgLyoqXG4gICAgICogY29vcmRpbmF0ZXMgc2V0dXAgb2YgdGhlIGhhbmRsZXJcbiAgICAgKlxuICAgICAqIEBmdW5jdGlvblxuICAgICAqL1xuICAgIHNldHVwIDogZnVuY3Rpb24oKSB7XG4gICAgICAgIGlmKHRoaXMub3B0aW9ucy5zZXR1cCkge1xuICAgICAgICAgICAgdGhpcy5vcHRpb25zLnNldHVwKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbml0aWFsaXNlZCA9IHRydWU7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIGNvb3JkaW5hdGVzIHNldHVwIGFuZCB0cmlnZ2VyaW5nIG9mIHRoZSBoYW5kbGVyXG4gICAgICpcbiAgICAgKiBAZnVuY3Rpb25cbiAgICAgKi9cbiAgICBvbiA6IGZ1bmN0aW9uKCkge1xuICAgICAgICAhdGhpcy5pbml0aWFsaXNlZCAmJiB0aGlzLnNldHVwKCk7XG4gICAgICAgIHRoaXMub3B0aW9ucy5tYXRjaCAmJiB0aGlzLm9wdGlvbnMubWF0Y2goKTtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogY29vcmRpbmF0ZXMgdGhlIHVubWF0Y2ggZXZlbnQgZm9yIHRoZSBoYW5kbGVyXG4gICAgICpcbiAgICAgKiBAZnVuY3Rpb25cbiAgICAgKi9cbiAgICBvZmYgOiBmdW5jdGlvbigpIHtcbiAgICAgICAgdGhpcy5vcHRpb25zLnVubWF0Y2ggJiYgdGhpcy5vcHRpb25zLnVubWF0Y2goKTtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogY2FsbGVkIHdoZW4gYSBoYW5kbGVyIGlzIHRvIGJlIGRlc3Ryb3llZC5cbiAgICAgKiBkZWxlZ2F0ZXMgdG8gdGhlIGRlc3Ryb3kgb3IgdW5tYXRjaCBjYWxsYmFja3MsIGRlcGVuZGluZyBvbiBhdmFpbGFiaWxpdHkuXG4gICAgICpcbiAgICAgKiBAZnVuY3Rpb25cbiAgICAgKi9cbiAgICBkZXN0cm95IDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHRoaXMub3B0aW9ucy5kZXN0cm95ID8gdGhpcy5vcHRpb25zLmRlc3Ryb3koKSA6IHRoaXMub2ZmKCk7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIGRldGVybWluZXMgZXF1YWxpdHkgYnkgcmVmZXJlbmNlLlxuICAgICAqIGlmIG9iamVjdCBpcyBzdXBwbGllZCBjb21wYXJlIG9wdGlvbnMsIGlmIGZ1bmN0aW9uLCBjb21wYXJlIG1hdGNoIGNhbGxiYWNrXG4gICAgICpcbiAgICAgKiBAZnVuY3Rpb25cbiAgICAgKiBAcGFyYW0ge29iamVjdCB8fCBmdW5jdGlvbn0gW3RhcmdldF0gdGhlIHRhcmdldCBmb3IgY29tcGFyaXNvblxuICAgICAqL1xuICAgIGVxdWFscyA6IGZ1bmN0aW9uKHRhcmdldCkge1xuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zID09PSB0YXJnZXQgfHwgdGhpcy5vcHRpb25zLm1hdGNoID09PSB0YXJnZXQ7XG4gICAgfVxuXG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IFF1ZXJ5SGFuZGxlcjtcbiIsIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSB2b2lkIDA7XG5cbnZhciBSZWFjdCA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5cbnZhciBQcm9wVHlwZXMgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicHJvcC10eXBlc1wiKSk7XG5cbnZhciBfY2xhc3NuYW1lcyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcImNsYXNzbmFtZXNcIikpO1xuXG52YXIgX1Jvd0NvbnRleHQgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuL1Jvd0NvbnRleHRcIikpO1xuXG52YXIgX2NvbmZpZ1Byb3ZpZGVyID0gcmVxdWlyZShcIi4uL2NvbmZpZy1wcm92aWRlclwiKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgaWYgKHR5cGVvZiBXZWFrTWFwICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBudWxsOyB2YXIgY2FjaGUgPSBuZXcgV2Vha01hcCgpOyBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUgPSBmdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7IHJldHVybiBjYWNoZTsgfTsgcmV0dXJuIGNhY2hlOyB9XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKG9iaikgeyBpZiAob2JqICYmIG9iai5fX2VzTW9kdWxlKSB7IHJldHVybiBvYmo7IH0gaWYgKG9iaiA9PT0gbnVsbCB8fCBfdHlwZW9mKG9iaikgIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIG9iaiAhPT0gXCJmdW5jdGlvblwiKSB7IHJldHVybiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfSB2YXIgY2FjaGUgPSBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKTsgaWYgKGNhY2hlICYmIGNhY2hlLmhhcyhvYmopKSB7IHJldHVybiBjYWNoZS5nZXQob2JqKTsgfSB2YXIgbmV3T2JqID0ge307IHZhciBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjsgZm9yICh2YXIga2V5IGluIG9iaikgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkgeyB2YXIgZGVzYyA9IGhhc1Byb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDogbnVsbDsgaWYgKGRlc2MgJiYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpOyB9IGVsc2UgeyBuZXdPYmpba2V5XSA9IG9ialtrZXldOyB9IH0gfSBuZXdPYmpbXCJkZWZhdWx0XCJdID0gb2JqOyBpZiAoY2FjaGUpIHsgY2FjaGUuc2V0KG9iaiwgbmV3T2JqKTsgfSByZXR1cm4gbmV3T2JqOyB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHsgaWYgKGtleSBpbiBvYmopIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7IHZhbHVlOiB2YWx1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSB9KTsgfSBlbHNlIHsgb2JqW2tleV0gPSB2YWx1ZTsgfSByZXR1cm4gb2JqOyB9XG5cbmZ1bmN0aW9uIF9leHRlbmRzKCkgeyBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07IHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9XG5cbmZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjsgaWYgKHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09PSBcInN5bWJvbFwiKSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gdHlwZW9mIG9iajsgfTsgfSBlbHNlIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiBvYmogJiYgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG9iaiAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqOyB9OyB9IHJldHVybiBfdHlwZW9mKG9iaik7IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfVxuXG5mdW5jdGlvbiBfY3JlYXRlQ2xhc3MoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7IGlmIChwcm90b1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSBcImZ1bmN0aW9uXCIgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb25cIik7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgX3NldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKTsgfVxuXG5mdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkgeyBfc2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgby5fX3Byb3RvX18gPSBwOyByZXR1cm4gbzsgfTsgcmV0dXJuIF9zZXRQcm90b3R5cGVPZihvLCBwKTsgfVxuXG5mdW5jdGlvbiBfY3JlYXRlU3VwZXIoRGVyaXZlZCkgeyB2YXIgaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCA9IF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKTsgcmV0dXJuIGZ1bmN0aW9uIF9jcmVhdGVTdXBlckludGVybmFsKCkgeyB2YXIgU3VwZXIgPSBfZ2V0UHJvdG90eXBlT2YoRGVyaXZlZCksIHJlc3VsdDsgaWYgKGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QpIHsgdmFyIE5ld1RhcmdldCA9IF9nZXRQcm90b3R5cGVPZih0aGlzKS5jb25zdHJ1Y3RvcjsgcmVzdWx0ID0gUmVmbGVjdC5jb25zdHJ1Y3QoU3VwZXIsIGFyZ3VtZW50cywgTmV3VGFyZ2V0KTsgfSBlbHNlIHsgcmVzdWx0ID0gU3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfSByZXR1cm4gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgcmVzdWx0KTsgfTsgfVxuXG5mdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLCBjYWxsKSB7IGlmIChjYWxsICYmIChfdHlwZW9mKGNhbGwpID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpKSB7IHJldHVybiBjYWxsOyB9IHJldHVybiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpOyB9XG5cbmZ1bmN0aW9uIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZikgeyBpZiAoc2VsZiA9PT0gdm9pZCAwKSB7IHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTsgfSByZXR1cm4gc2VsZjsgfVxuXG5mdW5jdGlvbiBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCkgeyBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwidW5kZWZpbmVkXCIgfHwgIVJlZmxlY3QuY29uc3RydWN0KSByZXR1cm4gZmFsc2U7IGlmIChSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKSByZXR1cm4gZmFsc2U7IGlmICh0eXBlb2YgUHJveHkgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIHRydWU7IHRyeSB7IERhdGUucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoRGF0ZSwgW10sIGZ1bmN0aW9uICgpIHt9KSk7IHJldHVybiB0cnVlOyB9IGNhdGNoIChlKSB7IHJldHVybiBmYWxzZTsgfSB9XG5cbmZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IF9nZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5nZXRQcm90b3R5cGVPZiA6IGZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IHJldHVybiBvLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2Yobyk7IH07IHJldHVybiBfZ2V0UHJvdG90eXBlT2Yobyk7IH1cblxudmFyIF9fcmVzdCA9IHZvaWQgMCAmJiAodm9pZCAwKS5fX3Jlc3QgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgdmFyIHQgPSB7fTtcblxuICBmb3IgKHZhciBwIGluIHMpIHtcbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApIHRbcF0gPSBzW3BdO1xuICB9XG5cbiAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKSBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKSB0W3BbaV1dID0gc1twW2ldXTtcbiAgfVxuICByZXR1cm4gdDtcbn07XG5cbnZhciBvYmplY3RPck51bWJlciA9IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5vYmplY3QsIFByb3BUeXBlcy5udW1iZXJdKTtcblxudmFyIENvbCA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoQ29sLCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICB2YXIgX3N1cGVyID0gX2NyZWF0ZVN1cGVyKENvbCk7XG5cbiAgZnVuY3Rpb24gQ29sKCkge1xuICAgIHZhciBfdGhpcztcblxuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBDb2wpO1xuXG4gICAgX3RoaXMgPSBfc3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcblxuICAgIF90aGlzLnJlbmRlckNvbCA9IGZ1bmN0aW9uIChfcmVmKSB7XG4gICAgICB2YXIgX2NsYXNzTmFtZXM7XG5cbiAgICAgIHZhciBnZXRQcmVmaXhDbHMgPSBfcmVmLmdldFByZWZpeENscztcblxuICAgICAgdmFyIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZSA9IF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLFxuICAgICAgICAgIHByb3BzID0gX2Fzc2VydFRoaXNJbml0aWFsaXplLnByb3BzO1xuXG4gICAgICB2YXIgY3VzdG9taXplUHJlZml4Q2xzID0gcHJvcHMucHJlZml4Q2xzLFxuICAgICAgICAgIHNwYW4gPSBwcm9wcy5zcGFuLFxuICAgICAgICAgIG9yZGVyID0gcHJvcHMub3JkZXIsXG4gICAgICAgICAgb2Zmc2V0ID0gcHJvcHMub2Zmc2V0LFxuICAgICAgICAgIHB1c2ggPSBwcm9wcy5wdXNoLFxuICAgICAgICAgIHB1bGwgPSBwcm9wcy5wdWxsLFxuICAgICAgICAgIGNsYXNzTmFtZSA9IHByb3BzLmNsYXNzTmFtZSxcbiAgICAgICAgICBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLFxuICAgICAgICAgIG90aGVycyA9IF9fcmVzdChwcm9wcywgW1wicHJlZml4Q2xzXCIsIFwic3BhblwiLCBcIm9yZGVyXCIsIFwib2Zmc2V0XCIsIFwicHVzaFwiLCBcInB1bGxcIiwgXCJjbGFzc05hbWVcIiwgXCJjaGlsZHJlblwiXSk7XG5cbiAgICAgIHZhciBwcmVmaXhDbHMgPSBnZXRQcmVmaXhDbHMoJ2NvbCcsIGN1c3RvbWl6ZVByZWZpeENscyk7XG4gICAgICB2YXIgc2l6ZUNsYXNzT2JqID0ge307XG4gICAgICBbJ3hzJywgJ3NtJywgJ21kJywgJ2xnJywgJ3hsJywgJ3h4bCddLmZvckVhY2goZnVuY3Rpb24gKHNpemUpIHtcbiAgICAgICAgdmFyIF9leHRlbmRzMjtcblxuICAgICAgICB2YXIgc2l6ZVByb3BzID0ge307XG4gICAgICAgIHZhciBwcm9wU2l6ZSA9IHByb3BzW3NpemVdO1xuXG4gICAgICAgIGlmICh0eXBlb2YgcHJvcFNpemUgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgc2l6ZVByb3BzLnNwYW4gPSBwcm9wU2l6ZTtcbiAgICAgICAgfSBlbHNlIGlmIChfdHlwZW9mKHByb3BTaXplKSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBzaXplUHJvcHMgPSBwcm9wU2l6ZSB8fCB7fTtcbiAgICAgICAgfVxuXG4gICAgICAgIGRlbGV0ZSBvdGhlcnNbc2l6ZV07XG4gICAgICAgIHNpemVDbGFzc09iaiA9IF9leHRlbmRzKF9leHRlbmRzKHt9LCBzaXplQ2xhc3NPYmopLCAoX2V4dGVuZHMyID0ge30sIF9kZWZpbmVQcm9wZXJ0eShfZXh0ZW5kczIsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItXCIpLmNvbmNhdChzaXplLCBcIi1cIikuY29uY2F0KHNpemVQcm9wcy5zcGFuKSwgc2l6ZVByb3BzLnNwYW4gIT09IHVuZGVmaW5lZCksIF9kZWZpbmVQcm9wZXJ0eShfZXh0ZW5kczIsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItXCIpLmNvbmNhdChzaXplLCBcIi1vcmRlci1cIikuY29uY2F0KHNpemVQcm9wcy5vcmRlciksIHNpemVQcm9wcy5vcmRlciB8fCBzaXplUHJvcHMub3JkZXIgPT09IDApLCBfZGVmaW5lUHJvcGVydHkoX2V4dGVuZHMyLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLVwiKS5jb25jYXQoc2l6ZSwgXCItb2Zmc2V0LVwiKS5jb25jYXQoc2l6ZVByb3BzLm9mZnNldCksIHNpemVQcm9wcy5vZmZzZXQgfHwgc2l6ZVByb3BzLm9mZnNldCA9PT0gMCksIF9kZWZpbmVQcm9wZXJ0eShfZXh0ZW5kczIsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItXCIpLmNvbmNhdChzaXplLCBcIi1wdXNoLVwiKS5jb25jYXQoc2l6ZVByb3BzLnB1c2gpLCBzaXplUHJvcHMucHVzaCB8fCBzaXplUHJvcHMucHVzaCA9PT0gMCksIF9kZWZpbmVQcm9wZXJ0eShfZXh0ZW5kczIsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItXCIpLmNvbmNhdChzaXplLCBcIi1wdWxsLVwiKS5jb25jYXQoc2l6ZVByb3BzLnB1bGwpLCBzaXplUHJvcHMucHVsbCB8fCBzaXplUHJvcHMucHVsbCA9PT0gMCksIF9leHRlbmRzMikpO1xuICAgICAgfSk7XG4gICAgICB2YXIgY2xhc3NlcyA9ICgwLCBfY2xhc3NuYW1lc1tcImRlZmF1bHRcIl0pKHByZWZpeENscywgKF9jbGFzc05hbWVzID0ge30sIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1cIikuY29uY2F0KHNwYW4pLCBzcGFuICE9PSB1bmRlZmluZWQpLCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzTmFtZXMsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItb3JkZXItXCIpLmNvbmNhdChvcmRlciksIG9yZGVyKSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc05hbWVzLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLW9mZnNldC1cIikuY29uY2F0KG9mZnNldCksIG9mZnNldCksIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1wdXNoLVwiKS5jb25jYXQocHVzaCksIHB1c2gpLCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzTmFtZXMsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItcHVsbC1cIikuY29uY2F0KHB1bGwpLCBwdWxsKSwgX2NsYXNzTmFtZXMpLCBjbGFzc05hbWUsIHNpemVDbGFzc09iaik7XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX1Jvd0NvbnRleHRbXCJkZWZhdWx0XCJdLkNvbnN1bWVyLCBudWxsLCBmdW5jdGlvbiAoX3JlZjIpIHtcbiAgICAgICAgdmFyIGd1dHRlciA9IF9yZWYyLmd1dHRlcjtcbiAgICAgICAgdmFyIHN0eWxlID0gb3RoZXJzLnN0eWxlO1xuXG4gICAgICAgIGlmIChndXR0ZXIpIHtcbiAgICAgICAgICBzdHlsZSA9IF9leHRlbmRzKF9leHRlbmRzKF9leHRlbmRzKHt9LCBndXR0ZXJbMF0gPiAwID8ge1xuICAgICAgICAgICAgcGFkZGluZ0xlZnQ6IGd1dHRlclswXSAvIDIsXG4gICAgICAgICAgICBwYWRkaW5nUmlnaHQ6IGd1dHRlclswXSAvIDJcbiAgICAgICAgICB9IDoge30pLCBndXR0ZXJbMV0gPiAwID8ge1xuICAgICAgICAgICAgcGFkZGluZ1RvcDogZ3V0dGVyWzFdIC8gMixcbiAgICAgICAgICAgIHBhZGRpbmdCb3R0b206IGd1dHRlclsxXSAvIDJcbiAgICAgICAgICB9IDoge30pLCBzdHlsZSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgX2V4dGVuZHMoe30sIG90aGVycywge1xuICAgICAgICAgIHN0eWxlOiBzdHlsZSxcbiAgICAgICAgICBjbGFzc05hbWU6IGNsYXNzZXNcbiAgICAgICAgfSksIGNoaWxkcmVuKTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICByZXR1cm4gX3RoaXM7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoQ29sLCBbe1xuICAgIGtleTogXCJyZW5kZXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9jb25maWdQcm92aWRlci5Db25maWdDb25zdW1lciwgbnVsbCwgdGhpcy5yZW5kZXJDb2wpO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBDb2w7XG59KFJlYWN0LkNvbXBvbmVudCk7XG5cbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gQ29sO1xuQ29sLnByb3BUeXBlcyA9IHtcbiAgc3BhbjogUHJvcFR5cGVzLm51bWJlcixcbiAgb3JkZXI6IFByb3BUeXBlcy5udW1iZXIsXG4gIG9mZnNldDogUHJvcFR5cGVzLm51bWJlcixcbiAgcHVzaDogUHJvcFR5cGVzLm51bWJlcixcbiAgcHVsbDogUHJvcFR5cGVzLm51bWJlcixcbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGUsXG4gIHhzOiBvYmplY3RPck51bWJlcixcbiAgc206IG9iamVjdE9yTnVtYmVyLFxuICBtZDogb2JqZWN0T3JOdW1iZXIsXG4gIGxnOiBvYmplY3RPck51bWJlcixcbiAgeGw6IG9iamVjdE9yTnVtYmVyLFxuICB4eGw6IG9iamVjdE9yTnVtYmVyXG59OyIsIid1c2Ugc3RyaWN0Jztcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKHN0cikge1xuXHRyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KHN0cikucmVwbGFjZSgvWyEnKCkqXS9nLCBmdW5jdGlvbiAoYykge1xuXHRcdHJldHVybiAnJScgKyBjLmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCk7XG5cdH0pO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciB0b2tlbiA9ICclW2EtZjAtOV17Mn0nO1xudmFyIHNpbmdsZU1hdGNoZXIgPSBuZXcgUmVnRXhwKHRva2VuLCAnZ2knKTtcbnZhciBtdWx0aU1hdGNoZXIgPSBuZXcgUmVnRXhwKCcoJyArIHRva2VuICsgJykrJywgJ2dpJyk7XG5cbmZ1bmN0aW9uIGRlY29kZUNvbXBvbmVudHMoY29tcG9uZW50cywgc3BsaXQpIHtcblx0dHJ5IHtcblx0XHQvLyBUcnkgdG8gZGVjb2RlIHRoZSBlbnRpcmUgc3RyaW5nIGZpcnN0XG5cdFx0cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChjb21wb25lbnRzLmpvaW4oJycpKTtcblx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0Ly8gRG8gbm90aGluZ1xuXHR9XG5cblx0aWYgKGNvbXBvbmVudHMubGVuZ3RoID09PSAxKSB7XG5cdFx0cmV0dXJuIGNvbXBvbmVudHM7XG5cdH1cblxuXHRzcGxpdCA9IHNwbGl0IHx8IDE7XG5cblx0Ly8gU3BsaXQgdGhlIGFycmF5IGluIDIgcGFydHNcblx0dmFyIGxlZnQgPSBjb21wb25lbnRzLnNsaWNlKDAsIHNwbGl0KTtcblx0dmFyIHJpZ2h0ID0gY29tcG9uZW50cy5zbGljZShzcGxpdCk7XG5cblx0cmV0dXJuIEFycmF5LnByb3RvdHlwZS5jb25jYXQuY2FsbChbXSwgZGVjb2RlQ29tcG9uZW50cyhsZWZ0KSwgZGVjb2RlQ29tcG9uZW50cyhyaWdodCkpO1xufVxuXG5mdW5jdGlvbiBkZWNvZGUoaW5wdXQpIHtcblx0dHJ5IHtcblx0XHRyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGlucHV0KTtcblx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0dmFyIHRva2VucyA9IGlucHV0Lm1hdGNoKHNpbmdsZU1hdGNoZXIpO1xuXG5cdFx0Zm9yICh2YXIgaSA9IDE7IGkgPCB0b2tlbnMubGVuZ3RoOyBpKyspIHtcblx0XHRcdGlucHV0ID0gZGVjb2RlQ29tcG9uZW50cyh0b2tlbnMsIGkpLmpvaW4oJycpO1xuXG5cdFx0XHR0b2tlbnMgPSBpbnB1dC5tYXRjaChzaW5nbGVNYXRjaGVyKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gaW5wdXQ7XG5cdH1cbn1cblxuZnVuY3Rpb24gY3VzdG9tRGVjb2RlVVJJQ29tcG9uZW50KGlucHV0KSB7XG5cdC8vIEtlZXAgdHJhY2sgb2YgYWxsIHRoZSByZXBsYWNlbWVudHMgYW5kIHByZWZpbGwgdGhlIG1hcCB3aXRoIHRoZSBgQk9NYFxuXHR2YXIgcmVwbGFjZU1hcCA9IHtcblx0XHQnJUZFJUZGJzogJ1xcdUZGRkRcXHVGRkZEJyxcblx0XHQnJUZGJUZFJzogJ1xcdUZGRkRcXHVGRkZEJ1xuXHR9O1xuXG5cdHZhciBtYXRjaCA9IG11bHRpTWF0Y2hlci5leGVjKGlucHV0KTtcblx0d2hpbGUgKG1hdGNoKSB7XG5cdFx0dHJ5IHtcblx0XHRcdC8vIERlY29kZSBhcyBiaWcgY2h1bmtzIGFzIHBvc3NpYmxlXG5cdFx0XHRyZXBsYWNlTWFwW21hdGNoWzBdXSA9IGRlY29kZVVSSUNvbXBvbmVudChtYXRjaFswXSk7XG5cdFx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0XHR2YXIgcmVzdWx0ID0gZGVjb2RlKG1hdGNoWzBdKTtcblxuXHRcdFx0aWYgKHJlc3VsdCAhPT0gbWF0Y2hbMF0pIHtcblx0XHRcdFx0cmVwbGFjZU1hcFttYXRjaFswXV0gPSByZXN1bHQ7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0bWF0Y2ggPSBtdWx0aU1hdGNoZXIuZXhlYyhpbnB1dCk7XG5cdH1cblxuXHQvLyBBZGQgYCVDMmAgYXQgdGhlIGVuZCBvZiB0aGUgbWFwIHRvIG1ha2Ugc3VyZSBpdCBkb2VzIG5vdCByZXBsYWNlIHRoZSBjb21iaW5hdG9yIGJlZm9yZSBldmVyeXRoaW5nIGVsc2Vcblx0cmVwbGFjZU1hcFsnJUMyJ10gPSAnXFx1RkZGRCc7XG5cblx0dmFyIGVudHJpZXMgPSBPYmplY3Qua2V5cyhyZXBsYWNlTWFwKTtcblxuXHRmb3IgKHZhciBpID0gMDsgaSA8IGVudHJpZXMubGVuZ3RoOyBpKyspIHtcblx0XHQvLyBSZXBsYWNlIGFsbCBkZWNvZGVkIGNvbXBvbmVudHNcblx0XHR2YXIga2V5ID0gZW50cmllc1tpXTtcblx0XHRpbnB1dCA9IGlucHV0LnJlcGxhY2UobmV3IFJlZ0V4cChrZXksICdnJyksIHJlcGxhY2VNYXBba2V5XSk7XG5cdH1cblxuXHRyZXR1cm4gaW5wdXQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGVuY29kZWRVUkkpIHtcblx0aWYgKHR5cGVvZiBlbmNvZGVkVVJJICE9PSAnc3RyaW5nJykge1xuXHRcdHRocm93IG5ldyBUeXBlRXJyb3IoJ0V4cGVjdGVkIGBlbmNvZGVkVVJJYCB0byBiZSBvZiB0eXBlIGBzdHJpbmdgLCBnb3QgYCcgKyB0eXBlb2YgZW5jb2RlZFVSSSArICdgJyk7XG5cdH1cblxuXHR0cnkge1xuXHRcdGVuY29kZWRVUkkgPSBlbmNvZGVkVVJJLnJlcGxhY2UoL1xcKy9nLCAnICcpO1xuXG5cdFx0Ly8gVHJ5IHRoZSBidWlsdCBpbiBkZWNvZGVyIGZpcnN0XG5cdFx0cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChlbmNvZGVkVVJJKTtcblx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0Ly8gRmFsbGJhY2sgdG8gYSBtb3JlIGFkdmFuY2VkIGRlY29kZXJcblx0XHRyZXR1cm4gY3VzdG9tRGVjb2RlVVJJQ29tcG9uZW50KGVuY29kZWRVUkkpO1xuXHR9XG59O1xuIiwidmFyIGFycmF5TGlrZVRvQXJyYXkgPSByZXF1aXJlKFwiLi9hcnJheUxpa2VUb0FycmF5LmpzXCIpO1xuXG5mdW5jdGlvbiBfYXJyYXlXaXRob3V0SG9sZXMoYXJyKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KGFycikpIHJldHVybiBhcnJheUxpa2VUb0FycmF5KGFycik7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX2FycmF5V2l0aG91dEhvbGVzO1xubW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlOyIsImZ1bmN0aW9uIF9pdGVyYWJsZVRvQXJyYXkoaXRlcikge1xuICBpZiAodHlwZW9mIFN5bWJvbCAhPT0gXCJ1bmRlZmluZWRcIiAmJiBpdGVyW1N5bWJvbC5pdGVyYXRvcl0gIT0gbnVsbCB8fCBpdGVyW1wiQEBpdGVyYXRvclwiXSAhPSBudWxsKSByZXR1cm4gQXJyYXkuZnJvbShpdGVyKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfaXRlcmFibGVUb0FycmF5O1xubW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlOyIsInZhciBhcnJheUxpa2VUb0FycmF5ID0gcmVxdWlyZShcIi4vYXJyYXlMaWtlVG9BcnJheS5qc1wiKTtcblxuZnVuY3Rpb24gX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5KG8sIG1pbkxlbikge1xuICBpZiAoIW8pIHJldHVybjtcbiAgaWYgKHR5cGVvZiBvID09PSBcInN0cmluZ1wiKSByZXR1cm4gYXJyYXlMaWtlVG9BcnJheShvLCBtaW5MZW4pO1xuICB2YXIgbiA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvKS5zbGljZSg4LCAtMSk7XG4gIGlmIChuID09PSBcIk9iamVjdFwiICYmIG8uY29uc3RydWN0b3IpIG4gPSBvLmNvbnN0cnVjdG9yLm5hbWU7XG4gIGlmIChuID09PSBcIk1hcFwiIHx8IG4gPT09IFwiU2V0XCIpIHJldHVybiBBcnJheS5mcm9tKG8pO1xuICBpZiAobiA9PT0gXCJBcmd1bWVudHNcIiB8fCAvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKSkgcmV0dXJuIGFycmF5TGlrZVRvQXJyYXkobywgbWluTGVuKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXk7XG5tb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7IiwiZnVuY3Rpb24gX25vbkl0ZXJhYmxlU3ByZWFkKCkge1xuICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfbm9uSXRlcmFibGVTcHJlYWQ7XG5tb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7IiwiLyoqXG4gKiBAaWdub3JlXG4gKiBldmVudCBvYmplY3QgZm9yIGRvbVxuICogQGF1dGhvciB5aW1pbmdoZUBnbWFpbC5jb21cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbnZhciBfRXZlbnRCYXNlT2JqZWN0ID0gcmVxdWlyZSgnLi9FdmVudEJhc2VPYmplY3QnKTtcblxudmFyIF9FdmVudEJhc2VPYmplY3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfRXZlbnRCYXNlT2JqZWN0KTtcblxudmFyIF9vYmplY3RBc3NpZ24gPSByZXF1aXJlKCdvYmplY3QtYXNzaWduJyk7XG5cbnZhciBfb2JqZWN0QXNzaWduMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX29iamVjdEFzc2lnbik7XG5cbnZhciBUUlVFID0gdHJ1ZTtcbnZhciBGQUxTRSA9IGZhbHNlO1xudmFyIGNvbW1vblByb3BzID0gWydhbHRLZXknLCAnYnViYmxlcycsICdjYW5jZWxhYmxlJywgJ2N0cmxLZXknLCAnY3VycmVudFRhcmdldCcsICdldmVudFBoYXNlJywgJ21ldGFLZXknLCAnc2hpZnRLZXknLCAndGFyZ2V0JywgJ3RpbWVTdGFtcCcsICd2aWV3JywgJ3R5cGUnXTtcblxuZnVuY3Rpb24gaXNOdWxsT3JVbmRlZmluZWQodykge1xuICByZXR1cm4gdyA9PT0gbnVsbCB8fCB3ID09PSB1bmRlZmluZWQ7XG59XG5cbnZhciBldmVudE5vcm1hbGl6ZXJzID0gW3tcbiAgcmVnOiAvXmtleS8sXG4gIHByb3BzOiBbJ2NoYXInLCAnY2hhckNvZGUnLCAna2V5JywgJ2tleUNvZGUnLCAnd2hpY2gnXSxcbiAgZml4OiBmdW5jdGlvbiBmaXgoZXZlbnQsIG5hdGl2ZUV2ZW50KSB7XG4gICAgaWYgKGlzTnVsbE9yVW5kZWZpbmVkKGV2ZW50LndoaWNoKSkge1xuICAgICAgZXZlbnQud2hpY2ggPSAhaXNOdWxsT3JVbmRlZmluZWQobmF0aXZlRXZlbnQuY2hhckNvZGUpID8gbmF0aXZlRXZlbnQuY2hhckNvZGUgOiBuYXRpdmVFdmVudC5rZXlDb2RlO1xuICAgIH1cblxuICAgIC8vIGFkZCBtZXRhS2V5IHRvIG5vbi1NYWMgYnJvd3NlcnMgKHVzZSBjdHJsIGZvciBQQyAncyBhbmQgTWV0YSBmb3IgTWFjcylcbiAgICBpZiAoZXZlbnQubWV0YUtleSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBldmVudC5tZXRhS2V5ID0gZXZlbnQuY3RybEtleTtcbiAgICB9XG4gIH1cbn0sIHtcbiAgcmVnOiAvXnRvdWNoLyxcbiAgcHJvcHM6IFsndG91Y2hlcycsICdjaGFuZ2VkVG91Y2hlcycsICd0YXJnZXRUb3VjaGVzJ11cbn0sIHtcbiAgcmVnOiAvXmhhc2hjaGFuZ2UkLyxcbiAgcHJvcHM6IFsnbmV3VVJMJywgJ29sZFVSTCddXG59LCB7XG4gIHJlZzogL15nZXN0dXJlY2hhbmdlJC9pLFxuICBwcm9wczogWydyb3RhdGlvbicsICdzY2FsZSddXG59LCB7XG4gIHJlZzogL14obW91c2V3aGVlbHxET01Nb3VzZVNjcm9sbCkkLyxcbiAgcHJvcHM6IFtdLFxuICBmaXg6IGZ1bmN0aW9uIGZpeChldmVudCwgbmF0aXZlRXZlbnQpIHtcbiAgICB2YXIgZGVsdGFYID0gdW5kZWZpbmVkO1xuICAgIHZhciBkZWx0YVkgPSB1bmRlZmluZWQ7XG4gICAgdmFyIGRlbHRhID0gdW5kZWZpbmVkO1xuICAgIHZhciB3aGVlbERlbHRhID0gbmF0aXZlRXZlbnQud2hlZWxEZWx0YTtcbiAgICB2YXIgYXhpcyA9IG5hdGl2ZUV2ZW50LmF4aXM7XG4gICAgdmFyIHdoZWVsRGVsdGFZID0gbmF0aXZlRXZlbnQud2hlZWxEZWx0YVk7XG4gICAgdmFyIHdoZWVsRGVsdGFYID0gbmF0aXZlRXZlbnQud2hlZWxEZWx0YVg7XG4gICAgdmFyIGRldGFpbCA9IG5hdGl2ZUV2ZW50LmRldGFpbDtcblxuICAgIC8vIGllL3dlYmtpdFxuICAgIGlmICh3aGVlbERlbHRhKSB7XG4gICAgICBkZWx0YSA9IHdoZWVsRGVsdGEgLyAxMjA7XG4gICAgfVxuXG4gICAgLy8gZ2Vja29cbiAgICBpZiAoZGV0YWlsKSB7XG4gICAgICAvLyBwcmVzcyBjb250cm9sIGUuZGV0YWlsID09IDEgZWxzZSBlLmRldGFpbCA9PSAzXG4gICAgICBkZWx0YSA9IDAgLSAoZGV0YWlsICUgMyA9PT0gMCA/IGRldGFpbCAvIDMgOiBkZXRhaWwpO1xuICAgIH1cblxuICAgIC8vIEdlY2tvXG4gICAgaWYgKGF4aXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKGF4aXMgPT09IGV2ZW50LkhPUklaT05UQUxfQVhJUykge1xuICAgICAgICBkZWx0YVkgPSAwO1xuICAgICAgICBkZWx0YVggPSAwIC0gZGVsdGE7XG4gICAgICB9IGVsc2UgaWYgKGF4aXMgPT09IGV2ZW50LlZFUlRJQ0FMX0FYSVMpIHtcbiAgICAgICAgZGVsdGFYID0gMDtcbiAgICAgICAgZGVsdGFZID0gZGVsdGE7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gV2Via2l0XG4gICAgaWYgKHdoZWVsRGVsdGFZICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGRlbHRhWSA9IHdoZWVsRGVsdGFZIC8gMTIwO1xuICAgIH1cbiAgICBpZiAod2hlZWxEZWx0YVggIT09IHVuZGVmaW5lZCkge1xuICAgICAgZGVsdGFYID0gLTEgKiB3aGVlbERlbHRhWCAvIDEyMDtcbiAgICB9XG5cbiAgICAvLyDpu5jorqQgZGVsdGFZIChpZSlcbiAgICBpZiAoIWRlbHRhWCAmJiAhZGVsdGFZKSB7XG4gICAgICBkZWx0YVkgPSBkZWx0YTtcbiAgICB9XG5cbiAgICBpZiAoZGVsdGFYICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIC8qKlxuICAgICAgICogZGVsdGFYIG9mIG1vdXNld2hlZWwgZXZlbnRcbiAgICAgICAqIEBwcm9wZXJ0eSBkZWx0YVhcbiAgICAgICAqIEBtZW1iZXIgRXZlbnQuRG9tRXZlbnQuT2JqZWN0XG4gICAgICAgKi9cbiAgICAgIGV2ZW50LmRlbHRhWCA9IGRlbHRhWDtcbiAgICB9XG5cbiAgICBpZiAoZGVsdGFZICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIC8qKlxuICAgICAgICogZGVsdGFZIG9mIG1vdXNld2hlZWwgZXZlbnRcbiAgICAgICAqIEBwcm9wZXJ0eSBkZWx0YVlcbiAgICAgICAqIEBtZW1iZXIgRXZlbnQuRG9tRXZlbnQuT2JqZWN0XG4gICAgICAgKi9cbiAgICAgIGV2ZW50LmRlbHRhWSA9IGRlbHRhWTtcbiAgICB9XG5cbiAgICBpZiAoZGVsdGEgIT09IHVuZGVmaW5lZCkge1xuICAgICAgLyoqXG4gICAgICAgKiBkZWx0YSBvZiBtb3VzZXdoZWVsIGV2ZW50XG4gICAgICAgKiBAcHJvcGVydHkgZGVsdGFcbiAgICAgICAqIEBtZW1iZXIgRXZlbnQuRG9tRXZlbnQuT2JqZWN0XG4gICAgICAgKi9cbiAgICAgIGV2ZW50LmRlbHRhID0gZGVsdGE7XG4gICAgfVxuICB9XG59LCB7XG4gIHJlZzogL15tb3VzZXxjb250ZXh0bWVudXxjbGlja3xtc3BvaW50ZXJ8KF5ET01Nb3VzZVNjcm9sbCQpL2ksXG4gIHByb3BzOiBbJ2J1dHRvbnMnLCAnY2xpZW50WCcsICdjbGllbnRZJywgJ2J1dHRvbicsICdvZmZzZXRYJywgJ3JlbGF0ZWRUYXJnZXQnLCAnd2hpY2gnLCAnZnJvbUVsZW1lbnQnLCAndG9FbGVtZW50JywgJ29mZnNldFknLCAncGFnZVgnLCAncGFnZVknLCAnc2NyZWVuWCcsICdzY3JlZW5ZJ10sXG4gIGZpeDogZnVuY3Rpb24gZml4KGV2ZW50LCBuYXRpdmVFdmVudCkge1xuICAgIHZhciBldmVudERvYyA9IHVuZGVmaW5lZDtcbiAgICB2YXIgZG9jID0gdW5kZWZpbmVkO1xuICAgIHZhciBib2R5ID0gdW5kZWZpbmVkO1xuICAgIHZhciB0YXJnZXQgPSBldmVudC50YXJnZXQ7XG4gICAgdmFyIGJ1dHRvbiA9IG5hdGl2ZUV2ZW50LmJ1dHRvbjtcblxuICAgIC8vIENhbGN1bGF0ZSBwYWdlWC9ZIGlmIG1pc3NpbmcgYW5kIGNsaWVudFgvWSBhdmFpbGFibGVcbiAgICBpZiAodGFyZ2V0ICYmIGlzTnVsbE9yVW5kZWZpbmVkKGV2ZW50LnBhZ2VYKSAmJiAhaXNOdWxsT3JVbmRlZmluZWQobmF0aXZlRXZlbnQuY2xpZW50WCkpIHtcbiAgICAgIGV2ZW50RG9jID0gdGFyZ2V0Lm93bmVyRG9jdW1lbnQgfHwgZG9jdW1lbnQ7XG4gICAgICBkb2MgPSBldmVudERvYy5kb2N1bWVudEVsZW1lbnQ7XG4gICAgICBib2R5ID0gZXZlbnREb2MuYm9keTtcbiAgICAgIGV2ZW50LnBhZ2VYID0gbmF0aXZlRXZlbnQuY2xpZW50WCArIChkb2MgJiYgZG9jLnNjcm9sbExlZnQgfHwgYm9keSAmJiBib2R5LnNjcm9sbExlZnQgfHwgMCkgLSAoZG9jICYmIGRvYy5jbGllbnRMZWZ0IHx8IGJvZHkgJiYgYm9keS5jbGllbnRMZWZ0IHx8IDApO1xuICAgICAgZXZlbnQucGFnZVkgPSBuYXRpdmVFdmVudC5jbGllbnRZICsgKGRvYyAmJiBkb2Muc2Nyb2xsVG9wIHx8IGJvZHkgJiYgYm9keS5zY3JvbGxUb3AgfHwgMCkgLSAoZG9jICYmIGRvYy5jbGllbnRUb3AgfHwgYm9keSAmJiBib2R5LmNsaWVudFRvcCB8fCAwKTtcbiAgICB9XG5cbiAgICAvLyB3aGljaCBmb3IgY2xpY2s6IDEgPT09IGxlZnQ7IDIgPT09IG1pZGRsZTsgMyA9PT0gcmlnaHRcbiAgICAvLyBkbyBub3QgdXNlIGJ1dHRvblxuICAgIGlmICghZXZlbnQud2hpY2ggJiYgYnV0dG9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmIChidXR0b24gJiAxKSB7XG4gICAgICAgIGV2ZW50LndoaWNoID0gMTtcbiAgICAgIH0gZWxzZSBpZiAoYnV0dG9uICYgMikge1xuICAgICAgICBldmVudC53aGljaCA9IDM7XG4gICAgICB9IGVsc2UgaWYgKGJ1dHRvbiAmIDQpIHtcbiAgICAgICAgZXZlbnQud2hpY2ggPSAyO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXZlbnQud2hpY2ggPSAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGFkZCByZWxhdGVkVGFyZ2V0LCBpZiBuZWNlc3NhcnlcbiAgICBpZiAoIWV2ZW50LnJlbGF0ZWRUYXJnZXQgJiYgZXZlbnQuZnJvbUVsZW1lbnQpIHtcbiAgICAgIGV2ZW50LnJlbGF0ZWRUYXJnZXQgPSBldmVudC5mcm9tRWxlbWVudCA9PT0gdGFyZ2V0ID8gZXZlbnQudG9FbGVtZW50IDogZXZlbnQuZnJvbUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIGV2ZW50O1xuICB9XG59XTtcblxuZnVuY3Rpb24gcmV0VHJ1ZSgpIHtcbiAgcmV0dXJuIFRSVUU7XG59XG5cbmZ1bmN0aW9uIHJldEZhbHNlKCkge1xuICByZXR1cm4gRkFMU0U7XG59XG5cbmZ1bmN0aW9uIERvbUV2ZW50T2JqZWN0KG5hdGl2ZUV2ZW50KSB7XG4gIHZhciB0eXBlID0gbmF0aXZlRXZlbnQudHlwZTtcblxuICB2YXIgaXNOYXRpdmUgPSB0eXBlb2YgbmF0aXZlRXZlbnQuc3RvcFByb3BhZ2F0aW9uID09PSAnZnVuY3Rpb24nIHx8IHR5cGVvZiBuYXRpdmVFdmVudC5jYW5jZWxCdWJibGUgPT09ICdib29sZWFuJztcblxuICBfRXZlbnRCYXNlT2JqZWN0MlsnZGVmYXVsdCddLmNhbGwodGhpcyk7XG5cbiAgdGhpcy5uYXRpdmVFdmVudCA9IG5hdGl2ZUV2ZW50O1xuXG4gIC8vIGluIGNhc2UgZG9tIGV2ZW50IGhhcyBiZWVuIG1hcmsgYXMgZGVmYXVsdCBwcmV2ZW50ZWQgYnkgbG93ZXIgZG9tIG5vZGVcbiAgdmFyIGlzRGVmYXVsdFByZXZlbnRlZCA9IHJldEZhbHNlO1xuICBpZiAoJ2RlZmF1bHRQcmV2ZW50ZWQnIGluIG5hdGl2ZUV2ZW50KSB7XG4gICAgaXNEZWZhdWx0UHJldmVudGVkID0gbmF0aXZlRXZlbnQuZGVmYXVsdFByZXZlbnRlZCA/IHJldFRydWUgOiByZXRGYWxzZTtcbiAgfSBlbHNlIGlmICgnZ2V0UHJldmVudERlZmF1bHQnIGluIG5hdGl2ZUV2ZW50KSB7XG4gICAgLy8gaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkxMTUxXG4gICAgaXNEZWZhdWx0UHJldmVudGVkID0gbmF0aXZlRXZlbnQuZ2V0UHJldmVudERlZmF1bHQoKSA/IHJldFRydWUgOiByZXRGYWxzZTtcbiAgfSBlbHNlIGlmICgncmV0dXJuVmFsdWUnIGluIG5hdGl2ZUV2ZW50KSB7XG4gICAgaXNEZWZhdWx0UHJldmVudGVkID0gbmF0aXZlRXZlbnQucmV0dXJuVmFsdWUgPT09IEZBTFNFID8gcmV0VHJ1ZSA6IHJldEZhbHNlO1xuICB9XG5cbiAgdGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQgPSBpc0RlZmF1bHRQcmV2ZW50ZWQ7XG5cbiAgdmFyIGZpeEZucyA9IFtdO1xuICB2YXIgZml4Rm4gPSB1bmRlZmluZWQ7XG4gIHZhciBsID0gdW5kZWZpbmVkO1xuICB2YXIgcHJvcCA9IHVuZGVmaW5lZDtcbiAgdmFyIHByb3BzID0gY29tbW9uUHJvcHMuY29uY2F0KCk7XG5cbiAgZXZlbnROb3JtYWxpemVycy5mb3JFYWNoKGZ1bmN0aW9uIChub3JtYWxpemVyKSB7XG4gICAgaWYgKHR5cGUubWF0Y2gobm9ybWFsaXplci5yZWcpKSB7XG4gICAgICBwcm9wcyA9IHByb3BzLmNvbmNhdChub3JtYWxpemVyLnByb3BzKTtcbiAgICAgIGlmIChub3JtYWxpemVyLmZpeCkge1xuICAgICAgICBmaXhGbnMucHVzaChub3JtYWxpemVyLmZpeCk7XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICBsID0gcHJvcHMubGVuZ3RoO1xuXG4gIC8vIGNsb25lIHByb3BlcnRpZXMgb2YgdGhlIG9yaWdpbmFsIGV2ZW50IG9iamVjdFxuICB3aGlsZSAobCkge1xuICAgIHByb3AgPSBwcm9wc1stLWxdO1xuICAgIHRoaXNbcHJvcF0gPSBuYXRpdmVFdmVudFtwcm9wXTtcbiAgfVxuXG4gIC8vIGZpeCB0YXJnZXQgcHJvcGVydHksIGlmIG5lY2Vzc2FyeVxuICBpZiAoIXRoaXMudGFyZ2V0ICYmIGlzTmF0aXZlKSB7XG4gICAgdGhpcy50YXJnZXQgPSBuYXRpdmVFdmVudC5zcmNFbGVtZW50IHx8IGRvY3VtZW50OyAvLyBzcmNFbGVtZW50IG1pZ2h0IG5vdCBiZSBkZWZpbmVkIGVpdGhlclxuICB9XG5cbiAgLy8gY2hlY2sgaWYgdGFyZ2V0IGlzIGEgdGV4dCBub2RlIChzYWZhcmkpXG4gIGlmICh0aGlzLnRhcmdldCAmJiB0aGlzLnRhcmdldC5ub2RlVHlwZSA9PT0gMykge1xuICAgIHRoaXMudGFyZ2V0ID0gdGhpcy50YXJnZXQucGFyZW50Tm9kZTtcbiAgfVxuXG4gIGwgPSBmaXhGbnMubGVuZ3RoO1xuXG4gIHdoaWxlIChsKSB7XG4gICAgZml4Rm4gPSBmaXhGbnNbLS1sXTtcbiAgICBmaXhGbih0aGlzLCBuYXRpdmVFdmVudCk7XG4gIH1cblxuICB0aGlzLnRpbWVTdGFtcCA9IG5hdGl2ZUV2ZW50LnRpbWVTdGFtcCB8fCBEYXRlLm5vdygpO1xufVxuXG52YXIgRXZlbnRCYXNlT2JqZWN0UHJvdG8gPSBfRXZlbnRCYXNlT2JqZWN0MlsnZGVmYXVsdCddLnByb3RvdHlwZTtcblxuKDAsIF9vYmplY3RBc3NpZ24yWydkZWZhdWx0J10pKERvbUV2ZW50T2JqZWN0LnByb3RvdHlwZSwgRXZlbnRCYXNlT2JqZWN0UHJvdG8sIHtcbiAgY29uc3RydWN0b3I6IERvbUV2ZW50T2JqZWN0LFxuXG4gIHByZXZlbnREZWZhdWx0OiBmdW5jdGlvbiBwcmV2ZW50RGVmYXVsdCgpIHtcbiAgICB2YXIgZSA9IHRoaXMubmF0aXZlRXZlbnQ7XG5cbiAgICAvLyBpZiBwcmV2ZW50RGVmYXVsdCBleGlzdHMgcnVuIGl0IG9uIHRoZSBvcmlnaW5hbCBldmVudFxuICAgIGlmIChlLnByZXZlbnREZWZhdWx0KSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIG90aGVyd2lzZSBzZXQgdGhlIHJldHVyblZhbHVlIHByb3BlcnR5IG9mIHRoZSBvcmlnaW5hbCBldmVudCB0byBGQUxTRSAoSUUpXG4gICAgICBlLnJldHVyblZhbHVlID0gRkFMU0U7XG4gICAgfVxuXG4gICAgRXZlbnRCYXNlT2JqZWN0UHJvdG8ucHJldmVudERlZmF1bHQuY2FsbCh0aGlzKTtcbiAgfSxcblxuICBzdG9wUHJvcGFnYXRpb246IGZ1bmN0aW9uIHN0b3BQcm9wYWdhdGlvbigpIHtcbiAgICB2YXIgZSA9IHRoaXMubmF0aXZlRXZlbnQ7XG5cbiAgICAvLyBpZiBzdG9wUHJvcGFnYXRpb24gZXhpc3RzIHJ1biBpdCBvbiB0aGUgb3JpZ2luYWwgZXZlbnRcbiAgICBpZiAoZS5zdG9wUHJvcGFnYXRpb24pIHtcbiAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIG90aGVyd2lzZSBzZXQgdGhlIGNhbmNlbEJ1YmJsZSBwcm9wZXJ0eSBvZiB0aGUgb3JpZ2luYWwgZXZlbnQgdG8gVFJVRSAoSUUpXG4gICAgICBlLmNhbmNlbEJ1YmJsZSA9IFRSVUU7XG4gICAgfVxuXG4gICAgRXZlbnRCYXNlT2JqZWN0UHJvdG8uc3RvcFByb3BhZ2F0aW9uLmNhbGwodGhpcyk7XG4gIH1cbn0pO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBEb21FdmVudE9iamVjdDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddOyIsIi8qKlxuICogQGlnbm9yZVxuICogYmFzZSBldmVudCBvYmplY3QgZm9yIGN1c3RvbSBhbmQgZG9tIGV2ZW50LlxuICogQGF1dGhvciB5aW1pbmdoZUBnbWFpbC5jb21cbiAqL1xuXG5cInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmZ1bmN0aW9uIHJldHVybkZhbHNlKCkge1xuICByZXR1cm4gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIHJldHVyblRydWUoKSB7XG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiBFdmVudEJhc2VPYmplY3QoKSB7XG4gIHRoaXMudGltZVN0YW1wID0gRGF0ZS5ub3coKTtcbiAgdGhpcy50YXJnZXQgPSB1bmRlZmluZWQ7XG4gIHRoaXMuY3VycmVudFRhcmdldCA9IHVuZGVmaW5lZDtcbn1cblxuRXZlbnRCYXNlT2JqZWN0LnByb3RvdHlwZSA9IHtcbiAgaXNFdmVudE9iamVjdDogMSxcblxuICBjb25zdHJ1Y3RvcjogRXZlbnRCYXNlT2JqZWN0LFxuXG4gIGlzRGVmYXVsdFByZXZlbnRlZDogcmV0dXJuRmFsc2UsXG5cbiAgaXNQcm9wYWdhdGlvblN0b3BwZWQ6IHJldHVybkZhbHNlLFxuXG4gIGlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkOiByZXR1cm5GYWxzZSxcblxuICBwcmV2ZW50RGVmYXVsdDogZnVuY3Rpb24gcHJldmVudERlZmF1bHQoKSB7XG4gICAgdGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQgPSByZXR1cm5UcnVlO1xuICB9LFxuXG4gIHN0b3BQcm9wYWdhdGlvbjogZnVuY3Rpb24gc3RvcFByb3BhZ2F0aW9uKCkge1xuICAgIHRoaXMuaXNQcm9wYWdhdGlvblN0b3BwZWQgPSByZXR1cm5UcnVlO1xuICB9LFxuXG4gIHN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbjogZnVuY3Rpb24gc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCkge1xuICAgIHRoaXMuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQgPSByZXR1cm5UcnVlO1xuICAgIC8vIGZpeGVkIDEuMlxuICAgIC8vIGNhbGwgc3RvcFByb3BhZ2F0aW9uIGltcGxpY2l0bHlcbiAgICB0aGlzLnN0b3BQcm9wYWdhdGlvbigpO1xuICB9LFxuXG4gIGhhbHQ6IGZ1bmN0aW9uIGhhbHQoaW1tZWRpYXRlKSB7XG4gICAgaWYgKGltbWVkaWF0ZSkge1xuICAgICAgdGhpcy5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG4gICAgdGhpcy5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG59O1xuXG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IEV2ZW50QmFzZU9iamVjdDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1tcImRlZmF1bHRcIl07IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmdldE92ZXJmbG93T3B0aW9ucyA9IGdldE92ZXJmbG93T3B0aW9ucztcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gZ2V0UGxhY2VtZW50cztcblxudmFyIF9wbGFjZW1lbnRzID0gcmVxdWlyZShcInJjLXRvb2x0aXAvbGliL3BsYWNlbWVudHNcIik7XG5cbmZ1bmN0aW9uIF9leHRlbmRzKCkgeyBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07IHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9XG5cbnZhciBhdXRvQWRqdXN0T3ZlcmZsb3dFbmFibGVkID0ge1xuICBhZGp1c3RYOiAxLFxuICBhZGp1c3RZOiAxXG59O1xudmFyIGF1dG9BZGp1c3RPdmVyZmxvd0Rpc2FibGVkID0ge1xuICBhZGp1c3RYOiAwLFxuICBhZGp1c3RZOiAwXG59O1xudmFyIHRhcmdldE9mZnNldCA9IFswLCAwXTtcblxuZnVuY3Rpb24gZ2V0T3ZlcmZsb3dPcHRpb25zKGF1dG9BZGp1c3RPdmVyZmxvdykge1xuICBpZiAodHlwZW9mIGF1dG9BZGp1c3RPdmVyZmxvdyA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgcmV0dXJuIGF1dG9BZGp1c3RPdmVyZmxvdyA/IGF1dG9BZGp1c3RPdmVyZmxvd0VuYWJsZWQgOiBhdXRvQWRqdXN0T3ZlcmZsb3dEaXNhYmxlZDtcbiAgfVxuXG4gIHJldHVybiBfZXh0ZW5kcyhfZXh0ZW5kcyh7fSwgYXV0b0FkanVzdE92ZXJmbG93RGlzYWJsZWQpLCBhdXRvQWRqdXN0T3ZlcmZsb3cpO1xufVxuXG5mdW5jdGlvbiBnZXRQbGFjZW1lbnRzKCkge1xuICB2YXIgY29uZmlnID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fTtcbiAgdmFyIF9jb25maWckYXJyb3dXaWR0aCA9IGNvbmZpZy5hcnJvd1dpZHRoLFxuICAgICAgYXJyb3dXaWR0aCA9IF9jb25maWckYXJyb3dXaWR0aCA9PT0gdm9pZCAwID8gNSA6IF9jb25maWckYXJyb3dXaWR0aCxcbiAgICAgIF9jb25maWckaG9yaXpvbnRhbEFyciA9IGNvbmZpZy5ob3Jpem9udGFsQXJyb3dTaGlmdCxcbiAgICAgIGhvcml6b250YWxBcnJvd1NoaWZ0ID0gX2NvbmZpZyRob3Jpem9udGFsQXJyID09PSB2b2lkIDAgPyAxNiA6IF9jb25maWckaG9yaXpvbnRhbEFycixcbiAgICAgIF9jb25maWckdmVydGljYWxBcnJvdyA9IGNvbmZpZy52ZXJ0aWNhbEFycm93U2hpZnQsXG4gICAgICB2ZXJ0aWNhbEFycm93U2hpZnQgPSBfY29uZmlnJHZlcnRpY2FsQXJyb3cgPT09IHZvaWQgMCA/IDEyIDogX2NvbmZpZyR2ZXJ0aWNhbEFycm93LFxuICAgICAgX2NvbmZpZyRhdXRvQWRqdXN0T3ZlID0gY29uZmlnLmF1dG9BZGp1c3RPdmVyZmxvdyxcbiAgICAgIGF1dG9BZGp1c3RPdmVyZmxvdyA9IF9jb25maWckYXV0b0FkanVzdE92ZSA9PT0gdm9pZCAwID8gdHJ1ZSA6IF9jb25maWckYXV0b0FkanVzdE92ZTtcbiAgdmFyIHBsYWNlbWVudE1hcCA9IHtcbiAgICBsZWZ0OiB7XG4gICAgICBwb2ludHM6IFsnY3InLCAnY2wnXSxcbiAgICAgIG9mZnNldDogWy00LCAwXVxuICAgIH0sXG4gICAgcmlnaHQ6IHtcbiAgICAgIHBvaW50czogWydjbCcsICdjciddLFxuICAgICAgb2Zmc2V0OiBbNCwgMF1cbiAgICB9LFxuICAgIHRvcDoge1xuICAgICAgcG9pbnRzOiBbJ2JjJywgJ3RjJ10sXG4gICAgICBvZmZzZXQ6IFswLCAtNF1cbiAgICB9LFxuICAgIGJvdHRvbToge1xuICAgICAgcG9pbnRzOiBbJ3RjJywgJ2JjJ10sXG4gICAgICBvZmZzZXQ6IFswLCA0XVxuICAgIH0sXG4gICAgdG9wTGVmdDoge1xuICAgICAgcG9pbnRzOiBbJ2JsJywgJ3RjJ10sXG4gICAgICBvZmZzZXQ6IFstKGhvcml6b250YWxBcnJvd1NoaWZ0ICsgYXJyb3dXaWR0aCksIC00XVxuICAgIH0sXG4gICAgbGVmdFRvcDoge1xuICAgICAgcG9pbnRzOiBbJ3RyJywgJ2NsJ10sXG4gICAgICBvZmZzZXQ6IFstNCwgLSh2ZXJ0aWNhbEFycm93U2hpZnQgKyBhcnJvd1dpZHRoKV1cbiAgICB9LFxuICAgIHRvcFJpZ2h0OiB7XG4gICAgICBwb2ludHM6IFsnYnInLCAndGMnXSxcbiAgICAgIG9mZnNldDogW2hvcml6b250YWxBcnJvd1NoaWZ0ICsgYXJyb3dXaWR0aCwgLTRdXG4gICAgfSxcbiAgICByaWdodFRvcDoge1xuICAgICAgcG9pbnRzOiBbJ3RsJywgJ2NyJ10sXG4gICAgICBvZmZzZXQ6IFs0LCAtKHZlcnRpY2FsQXJyb3dTaGlmdCArIGFycm93V2lkdGgpXVxuICAgIH0sXG4gICAgYm90dG9tUmlnaHQ6IHtcbiAgICAgIHBvaW50czogWyd0cicsICdiYyddLFxuICAgICAgb2Zmc2V0OiBbaG9yaXpvbnRhbEFycm93U2hpZnQgKyBhcnJvd1dpZHRoLCA0XVxuICAgIH0sXG4gICAgcmlnaHRCb3R0b206IHtcbiAgICAgIHBvaW50czogWydibCcsICdjciddLFxuICAgICAgb2Zmc2V0OiBbNCwgdmVydGljYWxBcnJvd1NoaWZ0ICsgYXJyb3dXaWR0aF1cbiAgICB9LFxuICAgIGJvdHRvbUxlZnQ6IHtcbiAgICAgIHBvaW50czogWyd0bCcsICdiYyddLFxuICAgICAgb2Zmc2V0OiBbLShob3Jpem9udGFsQXJyb3dTaGlmdCArIGFycm93V2lkdGgpLCA0XVxuICAgIH0sXG4gICAgbGVmdEJvdHRvbToge1xuICAgICAgcG9pbnRzOiBbJ2JyJywgJ2NsJ10sXG4gICAgICBvZmZzZXQ6IFstNCwgdmVydGljYWxBcnJvd1NoaWZ0ICsgYXJyb3dXaWR0aF1cbiAgICB9XG4gIH07XG4gIE9iamVjdC5rZXlzKHBsYWNlbWVudE1hcCkuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgcGxhY2VtZW50TWFwW2tleV0gPSBjb25maWcuYXJyb3dQb2ludEF0Q2VudGVyID8gX2V4dGVuZHMoX2V4dGVuZHMoe30sIHBsYWNlbWVudE1hcFtrZXldKSwge1xuICAgICAgb3ZlcmZsb3c6IGdldE92ZXJmbG93T3B0aW9ucyhhdXRvQWRqdXN0T3ZlcmZsb3cpLFxuICAgICAgdGFyZ2V0T2Zmc2V0OiB0YXJnZXRPZmZzZXRcbiAgICB9KSA6IF9leHRlbmRzKF9leHRlbmRzKHt9LCBfcGxhY2VtZW50cy5wbGFjZW1lbnRzW2tleV0pLCB7XG4gICAgICBvdmVyZmxvdzogZ2V0T3ZlcmZsb3dPcHRpb25zKGF1dG9BZGp1c3RPdmVyZmxvdylcbiAgICB9KTtcbiAgICBwbGFjZW1lbnRNYXBba2V5XS5pZ25vcmVTaGFrZSA9IHRydWU7XG4gIH0pO1xuICByZXR1cm4gcGxhY2VtZW50TWFwO1xufSIsIid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbnZhciBhdXRvQWRqdXN0T3ZlcmZsb3cgPSB7XG4gIGFkanVzdFg6IDEsXG4gIGFkanVzdFk6IDFcbn07XG5cbnZhciB0YXJnZXRPZmZzZXQgPSBbMCwgMF07XG5cbnZhciBwbGFjZW1lbnRzID0gZXhwb3J0cy5wbGFjZW1lbnRzID0ge1xuICBsZWZ0OiB7XG4gICAgcG9pbnRzOiBbJ2NyJywgJ2NsJ10sXG4gICAgb3ZlcmZsb3c6IGF1dG9BZGp1c3RPdmVyZmxvdyxcbiAgICBvZmZzZXQ6IFstNCwgMF0sXG4gICAgdGFyZ2V0T2Zmc2V0OiB0YXJnZXRPZmZzZXRcbiAgfSxcbiAgcmlnaHQ6IHtcbiAgICBwb2ludHM6IFsnY2wnLCAnY3InXSxcbiAgICBvdmVyZmxvdzogYXV0b0FkanVzdE92ZXJmbG93LFxuICAgIG9mZnNldDogWzQsIDBdLFxuICAgIHRhcmdldE9mZnNldDogdGFyZ2V0T2Zmc2V0XG4gIH0sXG4gIHRvcDoge1xuICAgIHBvaW50czogWydiYycsICd0YyddLFxuICAgIG92ZXJmbG93OiBhdXRvQWRqdXN0T3ZlcmZsb3csXG4gICAgb2Zmc2V0OiBbMCwgLTRdLFxuICAgIHRhcmdldE9mZnNldDogdGFyZ2V0T2Zmc2V0XG4gIH0sXG4gIGJvdHRvbToge1xuICAgIHBvaW50czogWyd0YycsICdiYyddLFxuICAgIG92ZXJmbG93OiBhdXRvQWRqdXN0T3ZlcmZsb3csXG4gICAgb2Zmc2V0OiBbMCwgNF0sXG4gICAgdGFyZ2V0T2Zmc2V0OiB0YXJnZXRPZmZzZXRcbiAgfSxcbiAgdG9wTGVmdDoge1xuICAgIHBvaW50czogWydibCcsICd0bCddLFxuICAgIG92ZXJmbG93OiBhdXRvQWRqdXN0T3ZlcmZsb3csXG4gICAgb2Zmc2V0OiBbMCwgLTRdLFxuICAgIHRhcmdldE9mZnNldDogdGFyZ2V0T2Zmc2V0XG4gIH0sXG4gIGxlZnRUb3A6IHtcbiAgICBwb2ludHM6IFsndHInLCAndGwnXSxcbiAgICBvdmVyZmxvdzogYXV0b0FkanVzdE92ZXJmbG93LFxuICAgIG9mZnNldDogWy00LCAwXSxcbiAgICB0YXJnZXRPZmZzZXQ6IHRhcmdldE9mZnNldFxuICB9LFxuICB0b3BSaWdodDoge1xuICAgIHBvaW50czogWydicicsICd0ciddLFxuICAgIG92ZXJmbG93OiBhdXRvQWRqdXN0T3ZlcmZsb3csXG4gICAgb2Zmc2V0OiBbMCwgLTRdLFxuICAgIHRhcmdldE9mZnNldDogdGFyZ2V0T2Zmc2V0XG4gIH0sXG4gIHJpZ2h0VG9wOiB7XG4gICAgcG9pbnRzOiBbJ3RsJywgJ3RyJ10sXG4gICAgb3ZlcmZsb3c6IGF1dG9BZGp1c3RPdmVyZmxvdyxcbiAgICBvZmZzZXQ6IFs0LCAwXSxcbiAgICB0YXJnZXRPZmZzZXQ6IHRhcmdldE9mZnNldFxuICB9LFxuICBib3R0b21SaWdodDoge1xuICAgIHBvaW50czogWyd0cicsICdiciddLFxuICAgIG92ZXJmbG93OiBhdXRvQWRqdXN0T3ZlcmZsb3csXG4gICAgb2Zmc2V0OiBbMCwgNF0sXG4gICAgdGFyZ2V0T2Zmc2V0OiB0YXJnZXRPZmZzZXRcbiAgfSxcbiAgcmlnaHRCb3R0b206IHtcbiAgICBwb2ludHM6IFsnYmwnLCAnYnInXSxcbiAgICBvdmVyZmxvdzogYXV0b0FkanVzdE92ZXJmbG93LFxuICAgIG9mZnNldDogWzQsIDBdLFxuICAgIHRhcmdldE9mZnNldDogdGFyZ2V0T2Zmc2V0XG4gIH0sXG4gIGJvdHRvbUxlZnQ6IHtcbiAgICBwb2ludHM6IFsndGwnLCAnYmwnXSxcbiAgICBvdmVyZmxvdzogYXV0b0FkanVzdE92ZXJmbG93LFxuICAgIG9mZnNldDogWzAsIDRdLFxuICAgIHRhcmdldE9mZnNldDogdGFyZ2V0T2Zmc2V0XG4gIH0sXG4gIGxlZnRCb3R0b206IHtcbiAgICBwb2ludHM6IFsnYnInLCAnYmwnXSxcbiAgICBvdmVyZmxvdzogYXV0b0FkanVzdE92ZXJmbG93LFxuICAgIG9mZnNldDogWy00LCAwXSxcbiAgICB0YXJnZXRPZmZzZXQ6IHRhcmdldE9mZnNldFxuICB9XG59O1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBwbGFjZW1lbnRzOyIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIEFMUEhBX0lOREVYID0ge1xuICAgICcmbHQnOiAnPCcsXG4gICAgJyZndCc6ICc+JyxcbiAgICAnJnF1b3QnOiAnXCInLFxuICAgICcmYXBvcyc6ICdcXCcnLFxuICAgICcmYW1wJzogJyYnLFxuICAgICcmbHQ7JzogJzwnLFxuICAgICcmZ3Q7JzogJz4nLFxuICAgICcmcXVvdDsnOiAnXCInLFxuICAgICcmYXBvczsnOiAnXFwnJyxcbiAgICAnJmFtcDsnOiAnJidcbn07XG52YXIgQ0hBUl9JTkRFWCA9IHtcbiAgICA2MDogJ2x0JyxcbiAgICA2MjogJ2d0JyxcbiAgICAzNDogJ3F1b3QnLFxuICAgIDM5OiAnYXBvcycsXG4gICAgMzg6ICdhbXAnXG59O1xudmFyIENIQVJfU19JTkRFWCA9IHtcbiAgICAnPCc6ICcmbHQ7JyxcbiAgICAnPic6ICcmZ3Q7JyxcbiAgICAnXCInOiAnJnF1b3Q7JyxcbiAgICAnXFwnJzogJyZhcG9zOycsXG4gICAgJyYnOiAnJmFtcDsnXG59O1xudmFyIFhtbEVudGl0aWVzID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIFhtbEVudGl0aWVzKCkge1xuICAgIH1cbiAgICBYbWxFbnRpdGllcy5wcm90b3R5cGUuZW5jb2RlID0gZnVuY3Rpb24gKHN0cikge1xuICAgICAgICBpZiAoIXN0ciB8fCAhc3RyLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdHIucmVwbGFjZSgvWzw+XCInJl0vZywgZnVuY3Rpb24gKHMpIHtcbiAgICAgICAgICAgIHJldHVybiBDSEFSX1NfSU5ERVhbc107XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgWG1sRW50aXRpZXMuZW5jb2RlID0gZnVuY3Rpb24gKHN0cikge1xuICAgICAgICByZXR1cm4gbmV3IFhtbEVudGl0aWVzKCkuZW5jb2RlKHN0cik7XG4gICAgfTtcbiAgICBYbWxFbnRpdGllcy5wcm90b3R5cGUuZGVjb2RlID0gZnVuY3Rpb24gKHN0cikge1xuICAgICAgICBpZiAoIXN0ciB8fCAhc3RyLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdHIucmVwbGFjZSgvJiM/WzAtOWEtekEtWl0rOz8vZywgZnVuY3Rpb24gKHMpIHtcbiAgICAgICAgICAgIGlmIChzLmNoYXJBdCgxKSA9PT0gJyMnKSB7XG4gICAgICAgICAgICAgICAgdmFyIGNvZGUgPSBzLmNoYXJBdCgyKS50b0xvd2VyQ2FzZSgpID09PSAneCcgP1xuICAgICAgICAgICAgICAgICAgICBwYXJzZUludChzLnN1YnN0cigzKSwgMTYpIDpcbiAgICAgICAgICAgICAgICAgICAgcGFyc2VJbnQocy5zdWJzdHIoMikpO1xuICAgICAgICAgICAgICAgIGlmIChpc05hTihjb2RlKSB8fCBjb2RlIDwgLTMyNzY4IHx8IGNvZGUgPiA2NTUzNSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGNvZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIEFMUEhBX0lOREVYW3NdIHx8IHM7XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgWG1sRW50aXRpZXMuZGVjb2RlID0gZnVuY3Rpb24gKHN0cikge1xuICAgICAgICByZXR1cm4gbmV3IFhtbEVudGl0aWVzKCkuZGVjb2RlKHN0cik7XG4gICAgfTtcbiAgICBYbWxFbnRpdGllcy5wcm90b3R5cGUuZW5jb2RlTm9uVVRGID0gZnVuY3Rpb24gKHN0cikge1xuICAgICAgICBpZiAoIXN0ciB8fCAhc3RyLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgICAgIHZhciBzdHJMZW5ndGggPSBzdHIubGVuZ3RoO1xuICAgICAgICB2YXIgcmVzdWx0ID0gJyc7XG4gICAgICAgIHZhciBpID0gMDtcbiAgICAgICAgd2hpbGUgKGkgPCBzdHJMZW5ndGgpIHtcbiAgICAgICAgICAgIHZhciBjID0gc3RyLmNoYXJDb2RlQXQoaSk7XG4gICAgICAgICAgICB2YXIgYWxwaGEgPSBDSEFSX0lOREVYW2NdO1xuICAgICAgICAgICAgaWYgKGFscGhhKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0ICs9IFwiJlwiICsgYWxwaGEgKyBcIjtcIjtcbiAgICAgICAgICAgICAgICBpKys7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoYyA8IDMyIHx8IGMgPiAxMjYpIHtcbiAgICAgICAgICAgICAgICByZXN1bHQgKz0gJyYjJyArIGMgKyAnOyc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXN1bHQgKz0gc3RyLmNoYXJBdChpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGkrKztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH07XG4gICAgWG1sRW50aXRpZXMuZW5jb2RlTm9uVVRGID0gZnVuY3Rpb24gKHN0cikge1xuICAgICAgICByZXR1cm4gbmV3IFhtbEVudGl0aWVzKCkuZW5jb2RlTm9uVVRGKHN0cik7XG4gICAgfTtcbiAgICBYbWxFbnRpdGllcy5wcm90b3R5cGUuZW5jb2RlTm9uQVNDSUkgPSBmdW5jdGlvbiAoc3RyKSB7XG4gICAgICAgIGlmICghc3RyIHx8ICFzdHIubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHN0ckxlbmdodCA9IHN0ci5sZW5ndGg7XG4gICAgICAgIHZhciByZXN1bHQgPSAnJztcbiAgICAgICAgdmFyIGkgPSAwO1xuICAgICAgICB3aGlsZSAoaSA8IHN0ckxlbmdodCkge1xuICAgICAgICAgICAgdmFyIGMgPSBzdHIuY2hhckNvZGVBdChpKTtcbiAgICAgICAgICAgIGlmIChjIDw9IDI1NSkge1xuICAgICAgICAgICAgICAgIHJlc3VsdCArPSBzdHJbaSsrXTtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlc3VsdCArPSAnJiMnICsgYyArICc7JztcbiAgICAgICAgICAgIGkrKztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH07XG4gICAgWG1sRW50aXRpZXMuZW5jb2RlTm9uQVNDSUkgPSBmdW5jdGlvbiAoc3RyKSB7XG4gICAgICAgIHJldHVybiBuZXcgWG1sRW50aXRpZXMoKS5lbmNvZGVOb25BU0NJSShzdHIpO1xuICAgIH07XG4gICAgcmV0dXJuIFhtbEVudGl0aWVzO1xufSgpKTtcbmV4cG9ydHMuWG1sRW50aXRpZXMgPSBYbWxFbnRpdGllcztcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIEhUTUxfQUxQSEEgPSBbJ2Fwb3MnLCAnbmJzcCcsICdpZXhjbCcsICdjZW50JywgJ3BvdW5kJywgJ2N1cnJlbicsICd5ZW4nLCAnYnJ2YmFyJywgJ3NlY3QnLCAndW1sJywgJ2NvcHknLCAnb3JkZicsICdsYXF1bycsICdub3QnLCAnc2h5JywgJ3JlZycsICdtYWNyJywgJ2RlZycsICdwbHVzbW4nLCAnc3VwMicsICdzdXAzJywgJ2FjdXRlJywgJ21pY3JvJywgJ3BhcmEnLCAnbWlkZG90JywgJ2NlZGlsJywgJ3N1cDEnLCAnb3JkbScsICdyYXF1bycsICdmcmFjMTQnLCAnZnJhYzEyJywgJ2ZyYWMzNCcsICdpcXVlc3QnLCAnQWdyYXZlJywgJ0FhY3V0ZScsICdBY2lyYycsICdBdGlsZGUnLCAnQXVtbCcsICdBcmluZycsICdBZWxpZycsICdDY2VkaWwnLCAnRWdyYXZlJywgJ0VhY3V0ZScsICdFY2lyYycsICdFdW1sJywgJ0lncmF2ZScsICdJYWN1dGUnLCAnSWNpcmMnLCAnSXVtbCcsICdFVEgnLCAnTnRpbGRlJywgJ09ncmF2ZScsICdPYWN1dGUnLCAnT2NpcmMnLCAnT3RpbGRlJywgJ091bWwnLCAndGltZXMnLCAnT3NsYXNoJywgJ1VncmF2ZScsICdVYWN1dGUnLCAnVWNpcmMnLCAnVXVtbCcsICdZYWN1dGUnLCAnVEhPUk4nLCAnc3psaWcnLCAnYWdyYXZlJywgJ2FhY3V0ZScsICdhY2lyYycsICdhdGlsZGUnLCAnYXVtbCcsICdhcmluZycsICdhZWxpZycsICdjY2VkaWwnLCAnZWdyYXZlJywgJ2VhY3V0ZScsICdlY2lyYycsICdldW1sJywgJ2lncmF2ZScsICdpYWN1dGUnLCAnaWNpcmMnLCAnaXVtbCcsICdldGgnLCAnbnRpbGRlJywgJ29ncmF2ZScsICdvYWN1dGUnLCAnb2NpcmMnLCAnb3RpbGRlJywgJ291bWwnLCAnZGl2aWRlJywgJ29zbGFzaCcsICd1Z3JhdmUnLCAndWFjdXRlJywgJ3VjaXJjJywgJ3V1bWwnLCAneWFjdXRlJywgJ3Rob3JuJywgJ3l1bWwnLCAncXVvdCcsICdhbXAnLCAnbHQnLCAnZ3QnLCAnT0VsaWcnLCAnb2VsaWcnLCAnU2Nhcm9uJywgJ3NjYXJvbicsICdZdW1sJywgJ2NpcmMnLCAndGlsZGUnLCAnZW5zcCcsICdlbXNwJywgJ3RoaW5zcCcsICd6d25qJywgJ3p3aicsICdscm0nLCAncmxtJywgJ25kYXNoJywgJ21kYXNoJywgJ2xzcXVvJywgJ3JzcXVvJywgJ3NicXVvJywgJ2xkcXVvJywgJ3JkcXVvJywgJ2JkcXVvJywgJ2RhZ2dlcicsICdEYWdnZXInLCAncGVybWlsJywgJ2xzYXF1bycsICdyc2FxdW8nLCAnZXVybycsICdmbm9mJywgJ0FscGhhJywgJ0JldGEnLCAnR2FtbWEnLCAnRGVsdGEnLCAnRXBzaWxvbicsICdaZXRhJywgJ0V0YScsICdUaGV0YScsICdJb3RhJywgJ0thcHBhJywgJ0xhbWJkYScsICdNdScsICdOdScsICdYaScsICdPbWljcm9uJywgJ1BpJywgJ1JobycsICdTaWdtYScsICdUYXUnLCAnVXBzaWxvbicsICdQaGknLCAnQ2hpJywgJ1BzaScsICdPbWVnYScsICdhbHBoYScsICdiZXRhJywgJ2dhbW1hJywgJ2RlbHRhJywgJ2Vwc2lsb24nLCAnemV0YScsICdldGEnLCAndGhldGEnLCAnaW90YScsICdrYXBwYScsICdsYW1iZGEnLCAnbXUnLCAnbnUnLCAneGknLCAnb21pY3JvbicsICdwaScsICdyaG8nLCAnc2lnbWFmJywgJ3NpZ21hJywgJ3RhdScsICd1cHNpbG9uJywgJ3BoaScsICdjaGknLCAncHNpJywgJ29tZWdhJywgJ3RoZXRhc3ltJywgJ3Vwc2loJywgJ3BpdicsICdidWxsJywgJ2hlbGxpcCcsICdwcmltZScsICdQcmltZScsICdvbGluZScsICdmcmFzbCcsICd3ZWllcnAnLCAnaW1hZ2UnLCAncmVhbCcsICd0cmFkZScsICdhbGVmc3ltJywgJ2xhcnInLCAndWFycicsICdyYXJyJywgJ2RhcnInLCAnaGFycicsICdjcmFycicsICdsQXJyJywgJ3VBcnInLCAnckFycicsICdkQXJyJywgJ2hBcnInLCAnZm9yYWxsJywgJ3BhcnQnLCAnZXhpc3QnLCAnZW1wdHknLCAnbmFibGEnLCAnaXNpbicsICdub3RpbicsICduaScsICdwcm9kJywgJ3N1bScsICdtaW51cycsICdsb3dhc3QnLCAncmFkaWMnLCAncHJvcCcsICdpbmZpbicsICdhbmcnLCAnYW5kJywgJ29yJywgJ2NhcCcsICdjdXAnLCAnaW50JywgJ3RoZXJlNCcsICdzaW0nLCAnY29uZycsICdhc3ltcCcsICduZScsICdlcXVpdicsICdsZScsICdnZScsICdzdWInLCAnc3VwJywgJ25zdWInLCAnc3ViZScsICdzdXBlJywgJ29wbHVzJywgJ290aW1lcycsICdwZXJwJywgJ3Nkb3QnLCAnbGNlaWwnLCAncmNlaWwnLCAnbGZsb29yJywgJ3JmbG9vcicsICdsYW5nJywgJ3JhbmcnLCAnbG96JywgJ3NwYWRlcycsICdjbHVicycsICdoZWFydHMnLCAnZGlhbXMnXTtcbnZhciBIVE1MX0NPREVTID0gWzM5LCAxNjAsIDE2MSwgMTYyLCAxNjMsIDE2NCwgMTY1LCAxNjYsIDE2NywgMTY4LCAxNjksIDE3MCwgMTcxLCAxNzIsIDE3MywgMTc0LCAxNzUsIDE3NiwgMTc3LCAxNzgsIDE3OSwgMTgwLCAxODEsIDE4MiwgMTgzLCAxODQsIDE4NSwgMTg2LCAxODcsIDE4OCwgMTg5LCAxOTAsIDE5MSwgMTkyLCAxOTMsIDE5NCwgMTk1LCAxOTYsIDE5NywgMTk4LCAxOTksIDIwMCwgMjAxLCAyMDIsIDIwMywgMjA0LCAyMDUsIDIwNiwgMjA3LCAyMDgsIDIwOSwgMjEwLCAyMTEsIDIxMiwgMjEzLCAyMTQsIDIxNSwgMjE2LCAyMTcsIDIxOCwgMjE5LCAyMjAsIDIyMSwgMjIyLCAyMjMsIDIyNCwgMjI1LCAyMjYsIDIyNywgMjI4LCAyMjksIDIzMCwgMjMxLCAyMzIsIDIzMywgMjM0LCAyMzUsIDIzNiwgMjM3LCAyMzgsIDIzOSwgMjQwLCAyNDEsIDI0MiwgMjQzLCAyNDQsIDI0NSwgMjQ2LCAyNDcsIDI0OCwgMjQ5LCAyNTAsIDI1MSwgMjUyLCAyNTMsIDI1NCwgMjU1LCAzNCwgMzgsIDYwLCA2MiwgMzM4LCAzMzksIDM1MiwgMzUzLCAzNzYsIDcxMCwgNzMyLCA4MTk0LCA4MTk1LCA4MjAxLCA4MjA0LCA4MjA1LCA4MjA2LCA4MjA3LCA4MjExLCA4MjEyLCA4MjE2LCA4MjE3LCA4MjE4LCA4MjIwLCA4MjIxLCA4MjIyLCA4MjI0LCA4MjI1LCA4MjQwLCA4MjQ5LCA4MjUwLCA4MzY0LCA0MDIsIDkxMywgOTE0LCA5MTUsIDkxNiwgOTE3LCA5MTgsIDkxOSwgOTIwLCA5MjEsIDkyMiwgOTIzLCA5MjQsIDkyNSwgOTI2LCA5MjcsIDkyOCwgOTI5LCA5MzEsIDkzMiwgOTMzLCA5MzQsIDkzNSwgOTM2LCA5MzcsIDk0NSwgOTQ2LCA5NDcsIDk0OCwgOTQ5LCA5NTAsIDk1MSwgOTUyLCA5NTMsIDk1NCwgOTU1LCA5NTYsIDk1NywgOTU4LCA5NTksIDk2MCwgOTYxLCA5NjIsIDk2MywgOTY0LCA5NjUsIDk2NiwgOTY3LCA5NjgsIDk2OSwgOTc3LCA5NzgsIDk4MiwgODIyNiwgODIzMCwgODI0MiwgODI0MywgODI1NCwgODI2MCwgODQ3MiwgODQ2NSwgODQ3NiwgODQ4MiwgODUwMSwgODU5MiwgODU5MywgODU5NCwgODU5NSwgODU5NiwgODYyOSwgODY1NiwgODY1NywgODY1OCwgODY1OSwgODY2MCwgODcwNCwgODcwNiwgODcwNywgODcwOSwgODcxMSwgODcxMiwgODcxMywgODcxNSwgODcxOSwgODcyMSwgODcyMiwgODcyNywgODczMCwgODczMywgODczNCwgODczNiwgODc0MywgODc0NCwgODc0NSwgODc0NiwgODc0NywgODc1NiwgODc2NCwgODc3MywgODc3NiwgODgwMCwgODgwMSwgODgwNCwgODgwNSwgODgzNCwgODgzNSwgODgzNiwgODgzOCwgODgzOSwgODg1MywgODg1NSwgODg2OSwgODkwMSwgODk2OCwgODk2OSwgODk3MCwgODk3MSwgOTAwMSwgOTAwMiwgOTY3NCwgOTgyNCwgOTgyNywgOTgyOSwgOTgzMF07XG52YXIgYWxwaGFJbmRleCA9IHt9O1xudmFyIG51bUluZGV4ID0ge307XG4oZnVuY3Rpb24gKCkge1xuICAgIHZhciBpID0gMDtcbiAgICB2YXIgbGVuZ3RoID0gSFRNTF9BTFBIQS5sZW5ndGg7XG4gICAgd2hpbGUgKGkgPCBsZW5ndGgpIHtcbiAgICAgICAgdmFyIGEgPSBIVE1MX0FMUEhBW2ldO1xuICAgICAgICB2YXIgYyA9IEhUTUxfQ09ERVNbaV07XG4gICAgICAgIGFscGhhSW5kZXhbYV0gPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGMpO1xuICAgICAgICBudW1JbmRleFtjXSA9IGE7XG4gICAgICAgIGkrKztcbiAgICB9XG59KSgpO1xudmFyIEh0bWw0RW50aXRpZXMgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gSHRtbDRFbnRpdGllcygpIHtcbiAgICB9XG4gICAgSHRtbDRFbnRpdGllcy5wcm90b3R5cGUuZGVjb2RlID0gZnVuY3Rpb24gKHN0cikge1xuICAgICAgICBpZiAoIXN0ciB8fCAhc3RyLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdHIucmVwbGFjZSgvJigjP1tcXHdcXGRdKyk7Py9nLCBmdW5jdGlvbiAocywgZW50aXR5KSB7XG4gICAgICAgICAgICB2YXIgY2hyO1xuICAgICAgICAgICAgaWYgKGVudGl0eS5jaGFyQXQoMCkgPT09IFwiI1wiKSB7XG4gICAgICAgICAgICAgICAgdmFyIGNvZGUgPSBlbnRpdHkuY2hhckF0KDEpLnRvTG93ZXJDYXNlKCkgPT09ICd4JyA/XG4gICAgICAgICAgICAgICAgICAgIHBhcnNlSW50KGVudGl0eS5zdWJzdHIoMiksIDE2KSA6XG4gICAgICAgICAgICAgICAgICAgIHBhcnNlSW50KGVudGl0eS5zdWJzdHIoMSkpO1xuICAgICAgICAgICAgICAgIGlmICghKGlzTmFOKGNvZGUpIHx8IGNvZGUgPCAtMzI3NjggfHwgY29kZSA+IDY1NTM1KSkge1xuICAgICAgICAgICAgICAgICAgICBjaHIgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGNvZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGNociA9IGFscGhhSW5kZXhbZW50aXR5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBjaHIgfHwgcztcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBIdG1sNEVudGl0aWVzLmRlY29kZSA9IGZ1bmN0aW9uIChzdHIpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBIdG1sNEVudGl0aWVzKCkuZGVjb2RlKHN0cik7XG4gICAgfTtcbiAgICBIdG1sNEVudGl0aWVzLnByb3RvdHlwZS5lbmNvZGUgPSBmdW5jdGlvbiAoc3RyKSB7XG4gICAgICAgIGlmICghc3RyIHx8ICFzdHIubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHN0ckxlbmd0aCA9IHN0ci5sZW5ndGg7XG4gICAgICAgIHZhciByZXN1bHQgPSAnJztcbiAgICAgICAgdmFyIGkgPSAwO1xuICAgICAgICB3aGlsZSAoaSA8IHN0ckxlbmd0aCkge1xuICAgICAgICAgICAgdmFyIGFscGhhID0gbnVtSW5kZXhbc3RyLmNoYXJDb2RlQXQoaSldO1xuICAgICAgICAgICAgcmVzdWx0ICs9IGFscGhhID8gXCImXCIgKyBhbHBoYSArIFwiO1wiIDogc3RyLmNoYXJBdChpKTtcbiAgICAgICAgICAgIGkrKztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH07XG4gICAgSHRtbDRFbnRpdGllcy5lbmNvZGUgPSBmdW5jdGlvbiAoc3RyKSB7XG4gICAgICAgIHJldHVybiBuZXcgSHRtbDRFbnRpdGllcygpLmVuY29kZShzdHIpO1xuICAgIH07XG4gICAgSHRtbDRFbnRpdGllcy5wcm90b3R5cGUuZW5jb2RlTm9uVVRGID0gZnVuY3Rpb24gKHN0cikge1xuICAgICAgICBpZiAoIXN0ciB8fCAhc3RyLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgICAgIHZhciBzdHJMZW5ndGggPSBzdHIubGVuZ3RoO1xuICAgICAgICB2YXIgcmVzdWx0ID0gJyc7XG4gICAgICAgIHZhciBpID0gMDtcbiAgICAgICAgd2hpbGUgKGkgPCBzdHJMZW5ndGgpIHtcbiAgICAgICAgICAgIHZhciBjYyA9IHN0ci5jaGFyQ29kZUF0KGkpO1xuICAgICAgICAgICAgdmFyIGFscGhhID0gbnVtSW5kZXhbY2NdO1xuICAgICAgICAgICAgaWYgKGFscGhhKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0ICs9IFwiJlwiICsgYWxwaGEgKyBcIjtcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGNjIDwgMzIgfHwgY2MgPiAxMjYpIHtcbiAgICAgICAgICAgICAgICByZXN1bHQgKz0gXCImI1wiICsgY2MgKyBcIjtcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlc3VsdCArPSBzdHIuY2hhckF0KGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaSsrO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfTtcbiAgICBIdG1sNEVudGl0aWVzLmVuY29kZU5vblVURiA9IGZ1bmN0aW9uIChzdHIpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBIdG1sNEVudGl0aWVzKCkuZW5jb2RlTm9uVVRGKHN0cik7XG4gICAgfTtcbiAgICBIdG1sNEVudGl0aWVzLnByb3RvdHlwZS5lbmNvZGVOb25BU0NJSSA9IGZ1bmN0aW9uIChzdHIpIHtcbiAgICAgICAgaWYgKCFzdHIgfHwgIXN0ci5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuICAgICAgICB2YXIgc3RyTGVuZ3RoID0gc3RyLmxlbmd0aDtcbiAgICAgICAgdmFyIHJlc3VsdCA9ICcnO1xuICAgICAgICB2YXIgaSA9IDA7XG4gICAgICAgIHdoaWxlIChpIDwgc3RyTGVuZ3RoKSB7XG4gICAgICAgICAgICB2YXIgYyA9IHN0ci5jaGFyQ29kZUF0KGkpO1xuICAgICAgICAgICAgaWYgKGMgPD0gMjU1KSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0ICs9IHN0cltpKytdO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVzdWx0ICs9ICcmIycgKyBjICsgJzsnO1xuICAgICAgICAgICAgaSsrO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfTtcbiAgICBIdG1sNEVudGl0aWVzLmVuY29kZU5vbkFTQ0lJID0gZnVuY3Rpb24gKHN0cikge1xuICAgICAgICByZXR1cm4gbmV3IEh0bWw0RW50aXRpZXMoKS5lbmNvZGVOb25BU0NJSShzdHIpO1xuICAgIH07XG4gICAgcmV0dXJuIEh0bWw0RW50aXRpZXM7XG59KCkpO1xuZXhwb3J0cy5IdG1sNEVudGl0aWVzID0gSHRtbDRFbnRpdGllcztcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIEVOVElUSUVTID0gW1snQWFjdXRlJywgWzE5M11dLCBbJ2FhY3V0ZScsIFsyMjVdXSwgWydBYnJldmUnLCBbMjU4XV0sIFsnYWJyZXZlJywgWzI1OV1dLCBbJ2FjJywgWzg3NjZdXSwgWydhY2QnLCBbODc2N11dLCBbJ2FjRScsIFs4NzY2LCA4MTldXSwgWydBY2lyYycsIFsxOTRdXSwgWydhY2lyYycsIFsyMjZdXSwgWydhY3V0ZScsIFsxODBdXSwgWydBY3knLCBbMTA0MF1dLCBbJ2FjeScsIFsxMDcyXV0sIFsnQUVsaWcnLCBbMTk4XV0sIFsnYWVsaWcnLCBbMjMwXV0sIFsnYWYnLCBbODI4OV1dLCBbJ0FmcicsIFsxMjAwNjhdXSwgWydhZnInLCBbMTIwMDk0XV0sIFsnQWdyYXZlJywgWzE5Ml1dLCBbJ2FncmF2ZScsIFsyMjRdXSwgWydhbGVmc3ltJywgWzg1MDFdXSwgWydhbGVwaCcsIFs4NTAxXV0sIFsnQWxwaGEnLCBbOTEzXV0sIFsnYWxwaGEnLCBbOTQ1XV0sIFsnQW1hY3InLCBbMjU2XV0sIFsnYW1hY3InLCBbMjU3XV0sIFsnYW1hbGcnLCBbMTA4MTVdXSwgWydhbXAnLCBbMzhdXSwgWydBTVAnLCBbMzhdXSwgWydhbmRhbmQnLCBbMTA4MzddXSwgWydBbmQnLCBbMTA4MzVdXSwgWydhbmQnLCBbODc0M11dLCBbJ2FuZGQnLCBbMTA4NDRdXSwgWydhbmRzbG9wZScsIFsxMDg0MF1dLCBbJ2FuZHYnLCBbMTA4NDJdXSwgWydhbmcnLCBbODczNl1dLCBbJ2FuZ2UnLCBbMTA2NjBdXSwgWydhbmdsZScsIFs4NzM2XV0sIFsnYW5nbXNkYWEnLCBbMTA2NjRdXSwgWydhbmdtc2RhYicsIFsxMDY2NV1dLCBbJ2FuZ21zZGFjJywgWzEwNjY2XV0sIFsnYW5nbXNkYWQnLCBbMTA2NjddXSwgWydhbmdtc2RhZScsIFsxMDY2OF1dLCBbJ2FuZ21zZGFmJywgWzEwNjY5XV0sIFsnYW5nbXNkYWcnLCBbMTA2NzBdXSwgWydhbmdtc2RhaCcsIFsxMDY3MV1dLCBbJ2FuZ21zZCcsIFs4NzM3XV0sIFsnYW5ncnQnLCBbODczNV1dLCBbJ2FuZ3J0dmInLCBbODg5NF1dLCBbJ2FuZ3J0dmJkJywgWzEwNjUzXV0sIFsnYW5nc3BoJywgWzg3MzhdXSwgWydhbmdzdCcsIFsxOTddXSwgWydhbmd6YXJyJywgWzkwODRdXSwgWydBb2dvbicsIFsyNjBdXSwgWydhb2dvbicsIFsyNjFdXSwgWydBb3BmJywgWzEyMDEyMF1dLCBbJ2FvcGYnLCBbMTIwMTQ2XV0sIFsnYXBhY2lyJywgWzEwODYzXV0sIFsnYXAnLCBbODc3Nl1dLCBbJ2FwRScsIFsxMDg2NF1dLCBbJ2FwZScsIFs4Nzc4XV0sIFsnYXBpZCcsIFs4Nzc5XV0sIFsnYXBvcycsIFszOV1dLCBbJ0FwcGx5RnVuY3Rpb24nLCBbODI4OV1dLCBbJ2FwcHJveCcsIFs4Nzc2XV0sIFsnYXBwcm94ZXEnLCBbODc3OF1dLCBbJ0FyaW5nJywgWzE5N11dLCBbJ2FyaW5nJywgWzIyOV1dLCBbJ0FzY3InLCBbMTE5OTY0XV0sIFsnYXNjcicsIFsxMTk5OTBdXSwgWydBc3NpZ24nLCBbODc4OF1dLCBbJ2FzdCcsIFs0Ml1dLCBbJ2FzeW1wJywgWzg3NzZdXSwgWydhc3ltcGVxJywgWzg3ODFdXSwgWydBdGlsZGUnLCBbMTk1XV0sIFsnYXRpbGRlJywgWzIyN11dLCBbJ0F1bWwnLCBbMTk2XV0sIFsnYXVtbCcsIFsyMjhdXSwgWydhd2NvbmludCcsIFs4NzU1XV0sIFsnYXdpbnQnLCBbMTA3NjldXSwgWydiYWNrY29uZycsIFs4NzgwXV0sIFsnYmFja2Vwc2lsb24nLCBbMTAxNF1dLCBbJ2JhY2twcmltZScsIFs4MjQ1XV0sIFsnYmFja3NpbScsIFs4NzY1XV0sIFsnYmFja3NpbWVxJywgWzg5MDldXSwgWydCYWNrc2xhc2gnLCBbODcyNl1dLCBbJ0JhcnYnLCBbMTA5ODNdXSwgWydiYXJ2ZWUnLCBbODg5M11dLCBbJ2JhcndlZCcsIFs4OTY1XV0sIFsnQmFyd2VkJywgWzg5NjZdXSwgWydiYXJ3ZWRnZScsIFs4OTY1XV0sIFsnYmJyaycsIFs5MTQxXV0sIFsnYmJya3RicmsnLCBbOTE0Ml1dLCBbJ2Jjb25nJywgWzg3ODBdXSwgWydCY3knLCBbMTA0MV1dLCBbJ2JjeScsIFsxMDczXV0sIFsnYmRxdW8nLCBbODIyMl1dLCBbJ2JlY2F1cycsIFs4NzU3XV0sIFsnYmVjYXVzZScsIFs4NzU3XV0sIFsnQmVjYXVzZScsIFs4NzU3XV0sIFsnYmVtcHR5dicsIFsxMDY3Ml1dLCBbJ2JlcHNpJywgWzEwMTRdXSwgWydiZXJub3UnLCBbODQ5Ml1dLCBbJ0Jlcm5vdWxsaXMnLCBbODQ5Ml1dLCBbJ0JldGEnLCBbOTE0XV0sIFsnYmV0YScsIFs5NDZdXSwgWydiZXRoJywgWzg1MDJdXSwgWydiZXR3ZWVuJywgWzg4MTJdXSwgWydCZnInLCBbMTIwMDY5XV0sIFsnYmZyJywgWzEyMDA5NV1dLCBbJ2JpZ2NhcCcsIFs4ODk4XV0sIFsnYmlnY2lyYycsIFs5NzExXV0sIFsnYmlnY3VwJywgWzg4OTldXSwgWydiaWdvZG90JywgWzEwNzUyXV0sIFsnYmlnb3BsdXMnLCBbMTA3NTNdXSwgWydiaWdvdGltZXMnLCBbMTA3NTRdXSwgWydiaWdzcWN1cCcsIFsxMDc1OF1dLCBbJ2JpZ3N0YXInLCBbOTczM11dLCBbJ2JpZ3RyaWFuZ2xlZG93bicsIFs5NjYxXV0sIFsnYmlndHJpYW5nbGV1cCcsIFs5NjUxXV0sIFsnYmlndXBsdXMnLCBbMTA3NTZdXSwgWydiaWd2ZWUnLCBbODg5N11dLCBbJ2JpZ3dlZGdlJywgWzg4OTZdXSwgWydia2Fyb3cnLCBbMTA1MDldXSwgWydibGFja2xvemVuZ2UnLCBbMTA3MzFdXSwgWydibGFja3NxdWFyZScsIFs5NjQyXV0sIFsnYmxhY2t0cmlhbmdsZScsIFs5NjUyXV0sIFsnYmxhY2t0cmlhbmdsZWRvd24nLCBbOTY2Ml1dLCBbJ2JsYWNrdHJpYW5nbGVsZWZ0JywgWzk2NjZdXSwgWydibGFja3RyaWFuZ2xlcmlnaHQnLCBbOTY1Nl1dLCBbJ2JsYW5rJywgWzkyNTFdXSwgWydibGsxMicsIFs5NjE4XV0sIFsnYmxrMTQnLCBbOTYxN11dLCBbJ2JsazM0JywgWzk2MTldXSwgWydibG9jaycsIFs5NjA4XV0sIFsnYm5lJywgWzYxLCA4NDIxXV0sIFsnYm5lcXVpdicsIFs4ODAxLCA4NDIxXV0sIFsnYk5vdCcsIFsxMDk4OV1dLCBbJ2Jub3QnLCBbODk3Nl1dLCBbJ0JvcGYnLCBbMTIwMTIxXV0sIFsnYm9wZicsIFsxMjAxNDddXSwgWydib3QnLCBbODg2OV1dLCBbJ2JvdHRvbScsIFs4ODY5XV0sIFsnYm93dGllJywgWzg5MDRdXSwgWydib3hib3gnLCBbMTA2OTddXSwgWydib3hkbCcsIFs5NDg4XV0sIFsnYm94ZEwnLCBbOTU1N11dLCBbJ2JveERsJywgWzk1NThdXSwgWydib3hETCcsIFs5NTU5XV0sIFsnYm94ZHInLCBbOTQ4NF1dLCBbJ2JveGRSJywgWzk1NTRdXSwgWydib3hEcicsIFs5NTU1XV0sIFsnYm94RFInLCBbOTU1Nl1dLCBbJ2JveGgnLCBbOTQ3Ml1dLCBbJ2JveEgnLCBbOTU1Ml1dLCBbJ2JveGhkJywgWzk1MTZdXSwgWydib3hIZCcsIFs5NTcyXV0sIFsnYm94aEQnLCBbOTU3M11dLCBbJ2JveEhEJywgWzk1NzRdXSwgWydib3hodScsIFs5NTI0XV0sIFsnYm94SHUnLCBbOTU3NV1dLCBbJ2JveGhVJywgWzk1NzZdXSwgWydib3hIVScsIFs5NTc3XV0sIFsnYm94bWludXMnLCBbODg2M11dLCBbJ2JveHBsdXMnLCBbODg2Ml1dLCBbJ2JveHRpbWVzJywgWzg4NjRdXSwgWydib3h1bCcsIFs5NDk2XV0sIFsnYm94dUwnLCBbOTU2M11dLCBbJ2JveFVsJywgWzk1NjRdXSwgWydib3hVTCcsIFs5NTY1XV0sIFsnYm94dXInLCBbOTQ5Ml1dLCBbJ2JveHVSJywgWzk1NjBdXSwgWydib3hVcicsIFs5NTYxXV0sIFsnYm94VVInLCBbOTU2Ml1dLCBbJ2JveHYnLCBbOTQ3NF1dLCBbJ2JveFYnLCBbOTU1M11dLCBbJ2JveHZoJywgWzk1MzJdXSwgWydib3h2SCcsIFs5NTc4XV0sIFsnYm94VmgnLCBbOTU3OV1dLCBbJ2JveFZIJywgWzk1ODBdXSwgWydib3h2bCcsIFs5NTA4XV0sIFsnYm94dkwnLCBbOTU2OV1dLCBbJ2JveFZsJywgWzk1NzBdXSwgWydib3hWTCcsIFs5NTcxXV0sIFsnYm94dnInLCBbOTUwMF1dLCBbJ2JveHZSJywgWzk1NjZdXSwgWydib3hWcicsIFs5NTY3XV0sIFsnYm94VlInLCBbOTU2OF1dLCBbJ2JwcmltZScsIFs4MjQ1XV0sIFsnYnJldmUnLCBbNzI4XV0sIFsnQnJldmUnLCBbNzI4XV0sIFsnYnJ2YmFyJywgWzE2Nl1dLCBbJ2JzY3InLCBbMTE5OTkxXV0sIFsnQnNjcicsIFs4NDkyXV0sIFsnYnNlbWknLCBbODI3MV1dLCBbJ2JzaW0nLCBbODc2NV1dLCBbJ2JzaW1lJywgWzg5MDldXSwgWydic29sYicsIFsxMDY5M11dLCBbJ2Jzb2wnLCBbOTJdXSwgWydic29saHN1YicsIFsxMDE4NF1dLCBbJ2J1bGwnLCBbODIyNl1dLCBbJ2J1bGxldCcsIFs4MjI2XV0sIFsnYnVtcCcsIFs4NzgyXV0sIFsnYnVtcEUnLCBbMTA5MjZdXSwgWydidW1wZScsIFs4NzgzXV0sIFsnQnVtcGVxJywgWzg3ODJdXSwgWydidW1wZXEnLCBbODc4M11dLCBbJ0NhY3V0ZScsIFsyNjJdXSwgWydjYWN1dGUnLCBbMjYzXV0sIFsnY2FwYW5kJywgWzEwODIwXV0sIFsnY2FwYnJjdXAnLCBbMTA4MjVdXSwgWydjYXBjYXAnLCBbMTA4MjddXSwgWydjYXAnLCBbODc0NV1dLCBbJ0NhcCcsIFs4OTE0XV0sIFsnY2FwY3VwJywgWzEwODIzXV0sIFsnY2FwZG90JywgWzEwODE2XV0sIFsnQ2FwaXRhbERpZmZlcmVudGlhbEQnLCBbODUxN11dLCBbJ2NhcHMnLCBbODc0NSwgNjUwMjRdXSwgWydjYXJldCcsIFs4MjU3XV0sIFsnY2Fyb24nLCBbNzExXV0sIFsnQ2F5bGV5cycsIFs4NDkzXV0sIFsnY2NhcHMnLCBbMTA4MjldXSwgWydDY2Fyb24nLCBbMjY4XV0sIFsnY2Nhcm9uJywgWzI2OV1dLCBbJ0NjZWRpbCcsIFsxOTldXSwgWydjY2VkaWwnLCBbMjMxXV0sIFsnQ2NpcmMnLCBbMjY0XV0sIFsnY2NpcmMnLCBbMjY1XV0sIFsnQ2NvbmludCcsIFs4NzUyXV0sIFsnY2N1cHMnLCBbMTA4MjhdXSwgWydjY3Vwc3NtJywgWzEwODMyXV0sIFsnQ2RvdCcsIFsyNjZdXSwgWydjZG90JywgWzI2N11dLCBbJ2NlZGlsJywgWzE4NF1dLCBbJ0NlZGlsbGEnLCBbMTg0XV0sIFsnY2VtcHR5dicsIFsxMDY3NF1dLCBbJ2NlbnQnLCBbMTYyXV0sIFsnY2VudGVyZG90JywgWzE4M11dLCBbJ0NlbnRlckRvdCcsIFsxODNdXSwgWydjZnInLCBbMTIwMDk2XV0sIFsnQ2ZyJywgWzg0OTNdXSwgWydDSGN5JywgWzEwNjNdXSwgWydjaGN5JywgWzEwOTVdXSwgWydjaGVjaycsIFsxMDAwM11dLCBbJ2NoZWNrbWFyaycsIFsxMDAwM11dLCBbJ0NoaScsIFs5MzVdXSwgWydjaGknLCBbOTY3XV0sIFsnY2lyYycsIFs3MTBdXSwgWydjaXJjZXEnLCBbODc5MV1dLCBbJ2NpcmNsZWFycm93bGVmdCcsIFs4NjM0XV0sIFsnY2lyY2xlYXJyb3dyaWdodCcsIFs4NjM1XV0sIFsnY2lyY2xlZGFzdCcsIFs4ODU5XV0sIFsnY2lyY2xlZGNpcmMnLCBbODg1OF1dLCBbJ2NpcmNsZWRkYXNoJywgWzg4NjFdXSwgWydDaXJjbGVEb3QnLCBbODg1N11dLCBbJ2NpcmNsZWRSJywgWzE3NF1dLCBbJ2NpcmNsZWRTJywgWzk0MTZdXSwgWydDaXJjbGVNaW51cycsIFs4ODU0XV0sIFsnQ2lyY2xlUGx1cycsIFs4ODUzXV0sIFsnQ2lyY2xlVGltZXMnLCBbODg1NV1dLCBbJ2NpcicsIFs5Njc1XV0sIFsnY2lyRScsIFsxMDY5MV1dLCBbJ2NpcmUnLCBbODc5MV1dLCBbJ2NpcmZuaW50JywgWzEwNzY4XV0sIFsnY2lybWlkJywgWzEwOTkxXV0sIFsnY2lyc2NpcicsIFsxMDY5MF1dLCBbJ0Nsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbCcsIFs4NzU0XV0sIFsnY2x1YnMnLCBbOTgyN11dLCBbJ2NsdWJzdWl0JywgWzk4MjddXSwgWydjb2xvbicsIFs1OF1dLCBbJ0NvbG9uJywgWzg3NTldXSwgWydDb2xvbmUnLCBbMTA4NjhdXSwgWydjb2xvbmUnLCBbODc4OF1dLCBbJ2NvbG9uZXEnLCBbODc4OF1dLCBbJ2NvbW1hJywgWzQ0XV0sIFsnY29tbWF0JywgWzY0XV0sIFsnY29tcCcsIFs4NzA1XV0sIFsnY29tcGZuJywgWzg3MjhdXSwgWydjb21wbGVtZW50JywgWzg3MDVdXSwgWydjb21wbGV4ZXMnLCBbODQ1MF1dLCBbJ2NvbmcnLCBbODc3M11dLCBbJ2Nvbmdkb3QnLCBbMTA4NjFdXSwgWydDb25ncnVlbnQnLCBbODgwMV1dLCBbJ2NvbmludCcsIFs4NzUwXV0sIFsnQ29uaW50JywgWzg3NTFdXSwgWydDb250b3VySW50ZWdyYWwnLCBbODc1MF1dLCBbJ2NvcGYnLCBbMTIwMTQ4XV0sIFsnQ29wZicsIFs4NDUwXV0sIFsnY29wcm9kJywgWzg3MjBdXSwgWydDb3Byb2R1Y3QnLCBbODcyMF1dLCBbJ2NvcHknLCBbMTY5XV0sIFsnQ09QWScsIFsxNjldXSwgWydjb3B5c3InLCBbODQ3MV1dLCBbJ0NvdW50ZXJDbG9ja3dpc2VDb250b3VySW50ZWdyYWwnLCBbODc1NV1dLCBbJ2NyYXJyJywgWzg2MjldXSwgWydjcm9zcycsIFsxMDAwN11dLCBbJ0Nyb3NzJywgWzEwNzk5XV0sIFsnQ3NjcicsIFsxMTk5NjZdXSwgWydjc2NyJywgWzExOTk5Ml1dLCBbJ2NzdWInLCBbMTA5NTldXSwgWydjc3ViZScsIFsxMDk2MV1dLCBbJ2NzdXAnLCBbMTA5NjBdXSwgWydjc3VwZScsIFsxMDk2Ml1dLCBbJ2N0ZG90JywgWzg5NDNdXSwgWydjdWRhcnJsJywgWzEwNTUyXV0sIFsnY3VkYXJycicsIFsxMDU0OV1dLCBbJ2N1ZXByJywgWzg5MjZdXSwgWydjdWVzYycsIFs4OTI3XV0sIFsnY3VsYXJyJywgWzg2MzBdXSwgWydjdWxhcnJwJywgWzEwNTU3XV0sIFsnY3VwYnJjYXAnLCBbMTA4MjRdXSwgWydjdXBjYXAnLCBbMTA4MjJdXSwgWydDdXBDYXAnLCBbODc4MV1dLCBbJ2N1cCcsIFs4NzQ2XV0sIFsnQ3VwJywgWzg5MTVdXSwgWydjdXBjdXAnLCBbMTA4MjZdXSwgWydjdXBkb3QnLCBbODg0NV1dLCBbJ2N1cG9yJywgWzEwODIxXV0sIFsnY3VwcycsIFs4NzQ2LCA2NTAyNF1dLCBbJ2N1cmFycicsIFs4NjMxXV0sIFsnY3VyYXJybScsIFsxMDU1Nl1dLCBbJ2N1cmx5ZXFwcmVjJywgWzg5MjZdXSwgWydjdXJseWVxc3VjYycsIFs4OTI3XV0sIFsnY3VybHl2ZWUnLCBbODkxMF1dLCBbJ2N1cmx5d2VkZ2UnLCBbODkxMV1dLCBbJ2N1cnJlbicsIFsxNjRdXSwgWydjdXJ2ZWFycm93bGVmdCcsIFs4NjMwXV0sIFsnY3VydmVhcnJvd3JpZ2h0JywgWzg2MzFdXSwgWydjdXZlZScsIFs4OTEwXV0sIFsnY3V3ZWQnLCBbODkxMV1dLCBbJ2N3Y29uaW50JywgWzg3NTRdXSwgWydjd2ludCcsIFs4NzUzXV0sIFsnY3lsY3R5JywgWzkwMDVdXSwgWydkYWdnZXInLCBbODIyNF1dLCBbJ0RhZ2dlcicsIFs4MjI1XV0sIFsnZGFsZXRoJywgWzg1MDRdXSwgWydkYXJyJywgWzg1OTVdXSwgWydEYXJyJywgWzg2MDldXSwgWydkQXJyJywgWzg2NTldXSwgWydkYXNoJywgWzgyMDhdXSwgWydEYXNodicsIFsxMDk4MF1dLCBbJ2Rhc2h2JywgWzg4NjddXSwgWydkYmthcm93JywgWzEwNTExXV0sIFsnZGJsYWMnLCBbNzMzXV0sIFsnRGNhcm9uJywgWzI3MF1dLCBbJ2RjYXJvbicsIFsyNzFdXSwgWydEY3knLCBbMTA0NF1dLCBbJ2RjeScsIFsxMDc2XV0sIFsnZGRhZ2dlcicsIFs4MjI1XV0sIFsnZGRhcnInLCBbODY1MF1dLCBbJ0REJywgWzg1MTddXSwgWydkZCcsIFs4NTE4XV0sIFsnRERvdHJhaGQnLCBbMTA1MTNdXSwgWydkZG90c2VxJywgWzEwODcxXV0sIFsnZGVnJywgWzE3Nl1dLCBbJ0RlbCcsIFs4NzExXV0sIFsnRGVsdGEnLCBbOTE2XV0sIFsnZGVsdGEnLCBbOTQ4XV0sIFsnZGVtcHR5dicsIFsxMDY3M11dLCBbJ2RmaXNodCcsIFsxMDYyM11dLCBbJ0RmcicsIFsxMjAwNzFdXSwgWydkZnInLCBbMTIwMDk3XV0sIFsnZEhhcicsIFsxMDU5N11dLCBbJ2RoYXJsJywgWzg2NDNdXSwgWydkaGFycicsIFs4NjQyXV0sIFsnRGlhY3JpdGljYWxBY3V0ZScsIFsxODBdXSwgWydEaWFjcml0aWNhbERvdCcsIFs3MjldXSwgWydEaWFjcml0aWNhbERvdWJsZUFjdXRlJywgWzczM11dLCBbJ0RpYWNyaXRpY2FsR3JhdmUnLCBbOTZdXSwgWydEaWFjcml0aWNhbFRpbGRlJywgWzczMl1dLCBbJ2RpYW0nLCBbODkwMF1dLCBbJ2RpYW1vbmQnLCBbODkwMF1dLCBbJ0RpYW1vbmQnLCBbODkwMF1dLCBbJ2RpYW1vbmRzdWl0JywgWzk4MzBdXSwgWydkaWFtcycsIFs5ODMwXV0sIFsnZGllJywgWzE2OF1dLCBbJ0RpZmZlcmVudGlhbEQnLCBbODUxOF1dLCBbJ2RpZ2FtbWEnLCBbOTg5XV0sIFsnZGlzaW4nLCBbODk0Nl1dLCBbJ2RpdicsIFsyNDddXSwgWydkaXZpZGUnLCBbMjQ3XV0sIFsnZGl2aWRlb250aW1lcycsIFs4OTAzXV0sIFsnZGl2b254JywgWzg5MDNdXSwgWydESmN5JywgWzEwMjZdXSwgWydkamN5JywgWzExMDZdXSwgWydkbGNvcm4nLCBbODk5MF1dLCBbJ2RsY3JvcCcsIFs4OTczXV0sIFsnZG9sbGFyJywgWzM2XV0sIFsnRG9wZicsIFsxMjAxMjNdXSwgWydkb3BmJywgWzEyMDE0OV1dLCBbJ0RvdCcsIFsxNjhdXSwgWydkb3QnLCBbNzI5XV0sIFsnRG90RG90JywgWzg0MTJdXSwgWydkb3RlcScsIFs4Nzg0XV0sIFsnZG90ZXFkb3QnLCBbODc4NV1dLCBbJ0RvdEVxdWFsJywgWzg3ODRdXSwgWydkb3RtaW51cycsIFs4NzYwXV0sIFsnZG90cGx1cycsIFs4NzI0XV0sIFsnZG90c3F1YXJlJywgWzg4NjVdXSwgWydkb3VibGViYXJ3ZWRnZScsIFs4OTY2XV0sIFsnRG91YmxlQ29udG91ckludGVncmFsJywgWzg3NTFdXSwgWydEb3VibGVEb3QnLCBbMTY4XV0sIFsnRG91YmxlRG93bkFycm93JywgWzg2NTldXSwgWydEb3VibGVMZWZ0QXJyb3cnLCBbODY1Nl1dLCBbJ0RvdWJsZUxlZnRSaWdodEFycm93JywgWzg2NjBdXSwgWydEb3VibGVMZWZ0VGVlJywgWzEwOTgwXV0sIFsnRG91YmxlTG9uZ0xlZnRBcnJvdycsIFsxMDIzMl1dLCBbJ0RvdWJsZUxvbmdMZWZ0UmlnaHRBcnJvdycsIFsxMDIzNF1dLCBbJ0RvdWJsZUxvbmdSaWdodEFycm93JywgWzEwMjMzXV0sIFsnRG91YmxlUmlnaHRBcnJvdycsIFs4NjU4XV0sIFsnRG91YmxlUmlnaHRUZWUnLCBbODg3Ml1dLCBbJ0RvdWJsZVVwQXJyb3cnLCBbODY1N11dLCBbJ0RvdWJsZVVwRG93bkFycm93JywgWzg2NjFdXSwgWydEb3VibGVWZXJ0aWNhbEJhcicsIFs4NzQxXV0sIFsnRG93bkFycm93QmFyJywgWzEwNTE1XV0sIFsnZG93bmFycm93JywgWzg1OTVdXSwgWydEb3duQXJyb3cnLCBbODU5NV1dLCBbJ0Rvd25hcnJvdycsIFs4NjU5XV0sIFsnRG93bkFycm93VXBBcnJvdycsIFs4NjkzXV0sIFsnRG93bkJyZXZlJywgWzc4NV1dLCBbJ2Rvd25kb3duYXJyb3dzJywgWzg2NTBdXSwgWydkb3duaGFycG9vbmxlZnQnLCBbODY0M11dLCBbJ2Rvd25oYXJwb29ucmlnaHQnLCBbODY0Ml1dLCBbJ0Rvd25MZWZ0UmlnaHRWZWN0b3InLCBbMTA1NzZdXSwgWydEb3duTGVmdFRlZVZlY3RvcicsIFsxMDU5MF1dLCBbJ0Rvd25MZWZ0VmVjdG9yQmFyJywgWzEwNTgyXV0sIFsnRG93bkxlZnRWZWN0b3InLCBbODYzN11dLCBbJ0Rvd25SaWdodFRlZVZlY3RvcicsIFsxMDU5MV1dLCBbJ0Rvd25SaWdodFZlY3RvckJhcicsIFsxMDU4M11dLCBbJ0Rvd25SaWdodFZlY3RvcicsIFs4NjQxXV0sIFsnRG93blRlZUFycm93JywgWzg2MTVdXSwgWydEb3duVGVlJywgWzg4NjhdXSwgWydkcmJrYXJvdycsIFsxMDUxMl1dLCBbJ2RyY29ybicsIFs4OTkxXV0sIFsnZHJjcm9wJywgWzg5NzJdXSwgWydEc2NyJywgWzExOTk2N11dLCBbJ2RzY3InLCBbMTE5OTkzXV0sIFsnRFNjeScsIFsxMDI5XV0sIFsnZHNjeScsIFsxMTA5XV0sIFsnZHNvbCcsIFsxMDc0Ml1dLCBbJ0RzdHJvaycsIFsyNzJdXSwgWydkc3Ryb2snLCBbMjczXV0sIFsnZHRkb3QnLCBbODk0NV1dLCBbJ2R0cmknLCBbOTY2M11dLCBbJ2R0cmlmJywgWzk2NjJdXSwgWydkdWFycicsIFs4NjkzXV0sIFsnZHVoYXInLCBbMTA2MDddXSwgWydkd2FuZ2xlJywgWzEwNjYyXV0sIFsnRFpjeScsIFsxMDM5XV0sIFsnZHpjeScsIFsxMTE5XV0sIFsnZHppZ3JhcnInLCBbMTAyMzldXSwgWydFYWN1dGUnLCBbMjAxXV0sIFsnZWFjdXRlJywgWzIzM11dLCBbJ2Vhc3RlcicsIFsxMDg2Ml1dLCBbJ0VjYXJvbicsIFsyODJdXSwgWydlY2Fyb24nLCBbMjgzXV0sIFsnRWNpcmMnLCBbMjAyXV0sIFsnZWNpcmMnLCBbMjM0XV0sIFsnZWNpcicsIFs4NzkwXV0sIFsnZWNvbG9uJywgWzg3ODldXSwgWydFY3knLCBbMTA2OV1dLCBbJ2VjeScsIFsxMTAxXV0sIFsnZUREb3QnLCBbMTA4NzFdXSwgWydFZG90JywgWzI3OF1dLCBbJ2Vkb3QnLCBbMjc5XV0sIFsnZURvdCcsIFs4Nzg1XV0sIFsnZWUnLCBbODUxOV1dLCBbJ2VmRG90JywgWzg3ODZdXSwgWydFZnInLCBbMTIwMDcyXV0sIFsnZWZyJywgWzEyMDA5OF1dLCBbJ2VnJywgWzEwOTA2XV0sIFsnRWdyYXZlJywgWzIwMF1dLCBbJ2VncmF2ZScsIFsyMzJdXSwgWydlZ3MnLCBbMTA5MDJdXSwgWydlZ3Nkb3QnLCBbMTA5MDRdXSwgWydlbCcsIFsxMDkwNV1dLCBbJ0VsZW1lbnQnLCBbODcxMl1dLCBbJ2VsaW50ZXJzJywgWzkxOTFdXSwgWydlbGwnLCBbODQ2N11dLCBbJ2VscycsIFsxMDkwMV1dLCBbJ2Vsc2RvdCcsIFsxMDkwM11dLCBbJ0VtYWNyJywgWzI3NF1dLCBbJ2VtYWNyJywgWzI3NV1dLCBbJ2VtcHR5JywgWzg3MDldXSwgWydlbXB0eXNldCcsIFs4NzA5XV0sIFsnRW1wdHlTbWFsbFNxdWFyZScsIFs5NzIzXV0sIFsnZW1wdHl2JywgWzg3MDldXSwgWydFbXB0eVZlcnlTbWFsbFNxdWFyZScsIFs5NjQzXV0sIFsnZW1zcDEzJywgWzgxOTZdXSwgWydlbXNwMTQnLCBbODE5N11dLCBbJ2Vtc3AnLCBbODE5NV1dLCBbJ0VORycsIFszMzBdXSwgWydlbmcnLCBbMzMxXV0sIFsnZW5zcCcsIFs4MTk0XV0sIFsnRW9nb24nLCBbMjgwXV0sIFsnZW9nb24nLCBbMjgxXV0sIFsnRW9wZicsIFsxMjAxMjRdXSwgWydlb3BmJywgWzEyMDE1MF1dLCBbJ2VwYXInLCBbODkxN11dLCBbJ2VwYXJzbCcsIFsxMDcyM11dLCBbJ2VwbHVzJywgWzEwODY1XV0sIFsnZXBzaScsIFs5NDldXSwgWydFcHNpbG9uJywgWzkxN11dLCBbJ2Vwc2lsb24nLCBbOTQ5XV0sIFsnZXBzaXYnLCBbMTAxM11dLCBbJ2VxY2lyYycsIFs4NzkwXV0sIFsnZXFjb2xvbicsIFs4Nzg5XV0sIFsnZXFzaW0nLCBbODc3MF1dLCBbJ2Vxc2xhbnRndHInLCBbMTA5MDJdXSwgWydlcXNsYW50bGVzcycsIFsxMDkwMV1dLCBbJ0VxdWFsJywgWzEwODY5XV0sIFsnZXF1YWxzJywgWzYxXV0sIFsnRXF1YWxUaWxkZScsIFs4NzcwXV0sIFsnZXF1ZXN0JywgWzg3OTldXSwgWydFcXVpbGlicml1bScsIFs4NjUyXV0sIFsnZXF1aXYnLCBbODgwMV1dLCBbJ2VxdWl2REQnLCBbMTA4NzJdXSwgWydlcXZwYXJzbCcsIFsxMDcyNV1dLCBbJ2VyYXJyJywgWzEwNjA5XV0sIFsnZXJEb3QnLCBbODc4N11dLCBbJ2VzY3InLCBbODQ5NV1dLCBbJ0VzY3InLCBbODQ5Nl1dLCBbJ2VzZG90JywgWzg3ODRdXSwgWydFc2ltJywgWzEwODY3XV0sIFsnZXNpbScsIFs4NzcwXV0sIFsnRXRhJywgWzkxOV1dLCBbJ2V0YScsIFs5NTFdXSwgWydFVEgnLCBbMjA4XV0sIFsnZXRoJywgWzI0MF1dLCBbJ0V1bWwnLCBbMjAzXV0sIFsnZXVtbCcsIFsyMzVdXSwgWydldXJvJywgWzgzNjRdXSwgWydleGNsJywgWzMzXV0sIFsnZXhpc3QnLCBbODcwN11dLCBbJ0V4aXN0cycsIFs4NzA3XV0sIFsnZXhwZWN0YXRpb24nLCBbODQ5Nl1dLCBbJ2V4cG9uZW50aWFsZScsIFs4NTE5XV0sIFsnRXhwb25lbnRpYWxFJywgWzg1MTldXSwgWydmYWxsaW5nZG90c2VxJywgWzg3ODZdXSwgWydGY3knLCBbMTA2MF1dLCBbJ2ZjeScsIFsxMDkyXV0sIFsnZmVtYWxlJywgWzk3OTJdXSwgWydmZmlsaWcnLCBbNjQyNTldXSwgWydmZmxpZycsIFs2NDI1Nl1dLCBbJ2ZmbGxpZycsIFs2NDI2MF1dLCBbJ0ZmcicsIFsxMjAwNzNdXSwgWydmZnInLCBbMTIwMDk5XV0sIFsnZmlsaWcnLCBbNjQyNTddXSwgWydGaWxsZWRTbWFsbFNxdWFyZScsIFs5NzI0XV0sIFsnRmlsbGVkVmVyeVNtYWxsU3F1YXJlJywgWzk2NDJdXSwgWydmamxpZycsIFsxMDIsIDEwNl1dLCBbJ2ZsYXQnLCBbOTgzN11dLCBbJ2ZsbGlnJywgWzY0MjU4XV0sIFsnZmx0bnMnLCBbOTY0OV1dLCBbJ2Zub2YnLCBbNDAyXV0sIFsnRm9wZicsIFsxMjAxMjVdXSwgWydmb3BmJywgWzEyMDE1MV1dLCBbJ2ZvcmFsbCcsIFs4NzA0XV0sIFsnRm9yQWxsJywgWzg3MDRdXSwgWydmb3JrJywgWzg5MTZdXSwgWydmb3JrdicsIFsxMDk2OV1dLCBbJ0ZvdXJpZXJ0cmYnLCBbODQ5N11dLCBbJ2ZwYXJ0aW50JywgWzEwNzY1XV0sIFsnZnJhYzEyJywgWzE4OV1dLCBbJ2ZyYWMxMycsIFs4NTMxXV0sIFsnZnJhYzE0JywgWzE4OF1dLCBbJ2ZyYWMxNScsIFs4NTMzXV0sIFsnZnJhYzE2JywgWzg1MzddXSwgWydmcmFjMTgnLCBbODUzOV1dLCBbJ2ZyYWMyMycsIFs4NTMyXV0sIFsnZnJhYzI1JywgWzg1MzRdXSwgWydmcmFjMzQnLCBbMTkwXV0sIFsnZnJhYzM1JywgWzg1MzVdXSwgWydmcmFjMzgnLCBbODU0MF1dLCBbJ2ZyYWM0NScsIFs4NTM2XV0sIFsnZnJhYzU2JywgWzg1MzhdXSwgWydmcmFjNTgnLCBbODU0MV1dLCBbJ2ZyYWM3OCcsIFs4NTQyXV0sIFsnZnJhc2wnLCBbODI2MF1dLCBbJ2Zyb3duJywgWzg5OTRdXSwgWydmc2NyJywgWzExOTk5NV1dLCBbJ0ZzY3InLCBbODQ5N11dLCBbJ2dhY3V0ZScsIFs1MDFdXSwgWydHYW1tYScsIFs5MTVdXSwgWydnYW1tYScsIFs5NDddXSwgWydHYW1tYWQnLCBbOTg4XV0sIFsnZ2FtbWFkJywgWzk4OV1dLCBbJ2dhcCcsIFsxMDg4Nl1dLCBbJ0dicmV2ZScsIFsyODZdXSwgWydnYnJldmUnLCBbMjg3XV0sIFsnR2NlZGlsJywgWzI5MF1dLCBbJ0djaXJjJywgWzI4NF1dLCBbJ2djaXJjJywgWzI4NV1dLCBbJ0djeScsIFsxMDQzXV0sIFsnZ2N5JywgWzEwNzVdXSwgWydHZG90JywgWzI4OF1dLCBbJ2dkb3QnLCBbMjg5XV0sIFsnZ2UnLCBbODgwNV1dLCBbJ2dFJywgWzg4MDddXSwgWydnRWwnLCBbMTA4OTJdXSwgWydnZWwnLCBbODkyM11dLCBbJ2dlcScsIFs4ODA1XV0sIFsnZ2VxcScsIFs4ODA3XV0sIFsnZ2Vxc2xhbnQnLCBbMTA4NzhdXSwgWydnZXNjYycsIFsxMDkyMV1dLCBbJ2dlcycsIFsxMDg3OF1dLCBbJ2dlc2RvdCcsIFsxMDg4MF1dLCBbJ2dlc2RvdG8nLCBbMTA4ODJdXSwgWydnZXNkb3RvbCcsIFsxMDg4NF1dLCBbJ2dlc2wnLCBbODkyMywgNjUwMjRdXSwgWydnZXNsZXMnLCBbMTA5MDBdXSwgWydHZnInLCBbMTIwMDc0XV0sIFsnZ2ZyJywgWzEyMDEwMF1dLCBbJ2dnJywgWzg4MTFdXSwgWydHZycsIFs4OTIxXV0sIFsnZ2dnJywgWzg5MjFdXSwgWydnaW1lbCcsIFs4NTAzXV0sIFsnR0pjeScsIFsxMDI3XV0sIFsnZ2pjeScsIFsxMTA3XV0sIFsnZ2xhJywgWzEwOTE3XV0sIFsnZ2wnLCBbODgyM11dLCBbJ2dsRScsIFsxMDg5OF1dLCBbJ2dsaicsIFsxMDkxNl1dLCBbJ2duYXAnLCBbMTA4OTBdXSwgWydnbmFwcHJveCcsIFsxMDg5MF1dLCBbJ2duZScsIFsxMDg4OF1dLCBbJ2duRScsIFs4ODA5XV0sIFsnZ25lcScsIFsxMDg4OF1dLCBbJ2duZXFxJywgWzg4MDldXSwgWydnbnNpbScsIFs4OTM1XV0sIFsnR29wZicsIFsxMjAxMjZdXSwgWydnb3BmJywgWzEyMDE1Ml1dLCBbJ2dyYXZlJywgWzk2XV0sIFsnR3JlYXRlckVxdWFsJywgWzg4MDVdXSwgWydHcmVhdGVyRXF1YWxMZXNzJywgWzg5MjNdXSwgWydHcmVhdGVyRnVsbEVxdWFsJywgWzg4MDddXSwgWydHcmVhdGVyR3JlYXRlcicsIFsxMDkxNF1dLCBbJ0dyZWF0ZXJMZXNzJywgWzg4MjNdXSwgWydHcmVhdGVyU2xhbnRFcXVhbCcsIFsxMDg3OF1dLCBbJ0dyZWF0ZXJUaWxkZScsIFs4ODE5XV0sIFsnR3NjcicsIFsxMTk5NzBdXSwgWydnc2NyJywgWzg0NThdXSwgWydnc2ltJywgWzg4MTldXSwgWydnc2ltZScsIFsxMDg5NF1dLCBbJ2dzaW1sJywgWzEwODk2XV0sIFsnZ3RjYycsIFsxMDkxOV1dLCBbJ2d0Y2lyJywgWzEwODc0XV0sIFsnZ3QnLCBbNjJdXSwgWydHVCcsIFs2Ml1dLCBbJ0d0JywgWzg4MTFdXSwgWydndGRvdCcsIFs4OTE5XV0sIFsnZ3RsUGFyJywgWzEwNjQ1XV0sIFsnZ3RxdWVzdCcsIFsxMDg3Nl1dLCBbJ2d0cmFwcHJveCcsIFsxMDg4Nl1dLCBbJ2d0cmFycicsIFsxMDYxNl1dLCBbJ2d0cmRvdCcsIFs4OTE5XV0sIFsnZ3RyZXFsZXNzJywgWzg5MjNdXSwgWydndHJlcXFsZXNzJywgWzEwODkyXV0sIFsnZ3RybGVzcycsIFs4ODIzXV0sIFsnZ3Ryc2ltJywgWzg4MTldXSwgWydndmVydG5lcXEnLCBbODgwOSwgNjUwMjRdXSwgWydndm5FJywgWzg4MDksIDY1MDI0XV0sIFsnSGFjZWsnLCBbNzExXV0sIFsnaGFpcnNwJywgWzgyMDJdXSwgWydoYWxmJywgWzE4OV1dLCBbJ2hhbWlsdCcsIFs4NDU5XV0sIFsnSEFSRGN5JywgWzEwNjZdXSwgWydoYXJkY3knLCBbMTA5OF1dLCBbJ2hhcnJjaXInLCBbMTA1NjhdXSwgWydoYXJyJywgWzg1OTZdXSwgWydoQXJyJywgWzg2NjBdXSwgWydoYXJydycsIFs4NjIxXV0sIFsnSGF0JywgWzk0XV0sIFsnaGJhcicsIFs4NDYzXV0sIFsnSGNpcmMnLCBbMjkyXV0sIFsnaGNpcmMnLCBbMjkzXV0sIFsnaGVhcnRzJywgWzk4MjldXSwgWydoZWFydHN1aXQnLCBbOTgyOV1dLCBbJ2hlbGxpcCcsIFs4MjMwXV0sIFsnaGVyY29uJywgWzg4ODldXSwgWydoZnInLCBbMTIwMTAxXV0sIFsnSGZyJywgWzg0NjBdXSwgWydIaWxiZXJ0U3BhY2UnLCBbODQ1OV1dLCBbJ2hrc2Vhcm93JywgWzEwNTMzXV0sIFsnaGtzd2Fyb3cnLCBbMTA1MzRdXSwgWydob2FycicsIFs4NzAzXV0sIFsnaG9tdGh0JywgWzg3NjNdXSwgWydob29rbGVmdGFycm93JywgWzg2MTddXSwgWydob29rcmlnaHRhcnJvdycsIFs4NjE4XV0sIFsnaG9wZicsIFsxMjAxNTNdXSwgWydIb3BmJywgWzg0NjFdXSwgWydob3JiYXInLCBbODIxM11dLCBbJ0hvcml6b250YWxMaW5lJywgWzk0NzJdXSwgWydoc2NyJywgWzExOTk5N11dLCBbJ0hzY3InLCBbODQ1OV1dLCBbJ2hzbGFzaCcsIFs4NDYzXV0sIFsnSHN0cm9rJywgWzI5NF1dLCBbJ2hzdHJvaycsIFsyOTVdXSwgWydIdW1wRG93bkh1bXAnLCBbODc4Ml1dLCBbJ0h1bXBFcXVhbCcsIFs4NzgzXV0sIFsnaHlidWxsJywgWzgyNTldXSwgWydoeXBoZW4nLCBbODIwOF1dLCBbJ0lhY3V0ZScsIFsyMDVdXSwgWydpYWN1dGUnLCBbMjM3XV0sIFsnaWMnLCBbODI5MV1dLCBbJ0ljaXJjJywgWzIwNl1dLCBbJ2ljaXJjJywgWzIzOF1dLCBbJ0ljeScsIFsxMDQ4XV0sIFsnaWN5JywgWzEwODBdXSwgWydJZG90JywgWzMwNF1dLCBbJ0lFY3knLCBbMTA0NV1dLCBbJ2llY3knLCBbMTA3N11dLCBbJ2lleGNsJywgWzE2MV1dLCBbJ2lmZicsIFs4NjYwXV0sIFsnaWZyJywgWzEyMDEwMl1dLCBbJ0lmcicsIFs4NDY1XV0sIFsnSWdyYXZlJywgWzIwNF1dLCBbJ2lncmF2ZScsIFsyMzZdXSwgWydpaScsIFs4NTIwXV0sIFsnaWlpaW50JywgWzEwNzY0XV0sIFsnaWlpbnQnLCBbODc0OV1dLCBbJ2lpbmZpbicsIFsxMDcxNl1dLCBbJ2lpb3RhJywgWzg0ODldXSwgWydJSmxpZycsIFszMDZdXSwgWydpamxpZycsIFszMDddXSwgWydJbWFjcicsIFsyOThdXSwgWydpbWFjcicsIFsyOTldXSwgWydpbWFnZScsIFs4NDY1XV0sIFsnSW1hZ2luYXJ5SScsIFs4NTIwXV0sIFsnaW1hZ2xpbmUnLCBbODQ2NF1dLCBbJ2ltYWdwYXJ0JywgWzg0NjVdXSwgWydpbWF0aCcsIFszMDVdXSwgWydJbScsIFs4NDY1XV0sIFsnaW1vZicsIFs4ODg3XV0sIFsnaW1wZWQnLCBbNDM3XV0sIFsnSW1wbGllcycsIFs4NjU4XV0sIFsnaW5jYXJlJywgWzg0NTNdXSwgWydpbicsIFs4NzEyXV0sIFsnaW5maW4nLCBbODczNF1dLCBbJ2luZmludGllJywgWzEwNzE3XV0sIFsnaW5vZG90JywgWzMwNV1dLCBbJ2ludGNhbCcsIFs4ODkwXV0sIFsnaW50JywgWzg3NDddXSwgWydJbnQnLCBbODc0OF1dLCBbJ2ludGVnZXJzJywgWzg0ODRdXSwgWydJbnRlZ3JhbCcsIFs4NzQ3XV0sIFsnaW50ZXJjYWwnLCBbODg5MF1dLCBbJ0ludGVyc2VjdGlvbicsIFs4ODk4XV0sIFsnaW50bGFyaGsnLCBbMTA3NzVdXSwgWydpbnRwcm9kJywgWzEwODEyXV0sIFsnSW52aXNpYmxlQ29tbWEnLCBbODI5MV1dLCBbJ0ludmlzaWJsZVRpbWVzJywgWzgyOTBdXSwgWydJT2N5JywgWzEwMjVdXSwgWydpb2N5JywgWzExMDVdXSwgWydJb2dvbicsIFszMDJdXSwgWydpb2dvbicsIFszMDNdXSwgWydJb3BmJywgWzEyMDEyOF1dLCBbJ2lvcGYnLCBbMTIwMTU0XV0sIFsnSW90YScsIFs5MjFdXSwgWydpb3RhJywgWzk1M11dLCBbJ2lwcm9kJywgWzEwODEyXV0sIFsnaXF1ZXN0JywgWzE5MV1dLCBbJ2lzY3InLCBbMTE5OTk4XV0sIFsnSXNjcicsIFs4NDY0XV0sIFsnaXNpbicsIFs4NzEyXV0sIFsnaXNpbmRvdCcsIFs4OTQ5XV0sIFsnaXNpbkUnLCBbODk1M11dLCBbJ2lzaW5zJywgWzg5NDhdXSwgWydpc2luc3YnLCBbODk0N11dLCBbJ2lzaW52JywgWzg3MTJdXSwgWydpdCcsIFs4MjkwXV0sIFsnSXRpbGRlJywgWzI5Nl1dLCBbJ2l0aWxkZScsIFsyOTddXSwgWydJdWtjeScsIFsxMDMwXV0sIFsnaXVrY3knLCBbMTExMF1dLCBbJ0l1bWwnLCBbMjA3XV0sIFsnaXVtbCcsIFsyMzldXSwgWydKY2lyYycsIFszMDhdXSwgWydqY2lyYycsIFszMDldXSwgWydKY3knLCBbMTA0OV1dLCBbJ2pjeScsIFsxMDgxXV0sIFsnSmZyJywgWzEyMDA3N11dLCBbJ2pmcicsIFsxMjAxMDNdXSwgWydqbWF0aCcsIFs1NjddXSwgWydKb3BmJywgWzEyMDEyOV1dLCBbJ2pvcGYnLCBbMTIwMTU1XV0sIFsnSnNjcicsIFsxMTk5NzNdXSwgWydqc2NyJywgWzExOTk5OV1dLCBbJ0pzZXJjeScsIFsxMDMyXV0sIFsnanNlcmN5JywgWzExMTJdXSwgWydKdWtjeScsIFsxMDI4XV0sIFsnanVrY3knLCBbMTEwOF1dLCBbJ0thcHBhJywgWzkyMl1dLCBbJ2thcHBhJywgWzk1NF1dLCBbJ2thcHBhdicsIFsxMDA4XV0sIFsnS2NlZGlsJywgWzMxMF1dLCBbJ2tjZWRpbCcsIFszMTFdXSwgWydLY3knLCBbMTA1MF1dLCBbJ2tjeScsIFsxMDgyXV0sIFsnS2ZyJywgWzEyMDA3OF1dLCBbJ2tmcicsIFsxMjAxMDRdXSwgWydrZ3JlZW4nLCBbMzEyXV0sIFsnS0hjeScsIFsxMDYxXV0sIFsna2hjeScsIFsxMDkzXV0sIFsnS0pjeScsIFsxMDM2XV0sIFsna2pjeScsIFsxMTE2XV0sIFsnS29wZicsIFsxMjAxMzBdXSwgWydrb3BmJywgWzEyMDE1Nl1dLCBbJ0tzY3InLCBbMTE5OTc0XV0sIFsna3NjcicsIFsxMjAwMDBdXSwgWydsQWFycicsIFs4NjY2XV0sIFsnTGFjdXRlJywgWzMxM11dLCBbJ2xhY3V0ZScsIFszMTRdXSwgWydsYWVtcHR5dicsIFsxMDY3Nl1dLCBbJ2xhZ3JhbicsIFs4NDY2XV0sIFsnTGFtYmRhJywgWzkyM11dLCBbJ2xhbWJkYScsIFs5NTVdXSwgWydsYW5nJywgWzEwMjE2XV0sIFsnTGFuZycsIFsxMDIxOF1dLCBbJ2xhbmdkJywgWzEwNjQxXV0sIFsnbGFuZ2xlJywgWzEwMjE2XV0sIFsnbGFwJywgWzEwODg1XV0sIFsnTGFwbGFjZXRyZicsIFs4NDY2XV0sIFsnbGFxdW8nLCBbMTcxXV0sIFsnbGFycmInLCBbODY3Nl1dLCBbJ2xhcnJiZnMnLCBbMTA1MjddXSwgWydsYXJyJywgWzg1OTJdXSwgWydMYXJyJywgWzg2MDZdXSwgWydsQXJyJywgWzg2NTZdXSwgWydsYXJyZnMnLCBbMTA1MjVdXSwgWydsYXJyaGsnLCBbODYxN11dLCBbJ2xhcnJscCcsIFs4NjE5XV0sIFsnbGFycnBsJywgWzEwNTUzXV0sIFsnbGFycnNpbScsIFsxMDYxMV1dLCBbJ2xhcnJ0bCcsIFs4NjEwXV0sIFsnbGF0YWlsJywgWzEwNTIxXV0sIFsnbEF0YWlsJywgWzEwNTIzXV0sIFsnbGF0JywgWzEwOTIzXV0sIFsnbGF0ZScsIFsxMDkyNV1dLCBbJ2xhdGVzJywgWzEwOTI1LCA2NTAyNF1dLCBbJ2xiYXJyJywgWzEwNTA4XV0sIFsnbEJhcnInLCBbMTA1MTBdXSwgWydsYmJyaycsIFsxMDA5OF1dLCBbJ2xicmFjZScsIFsxMjNdXSwgWydsYnJhY2snLCBbOTFdXSwgWydsYnJrZScsIFsxMDYzNV1dLCBbJ2xicmtzbGQnLCBbMTA2MzldXSwgWydsYnJrc2x1JywgWzEwNjM3XV0sIFsnTGNhcm9uJywgWzMxN11dLCBbJ2xjYXJvbicsIFszMThdXSwgWydMY2VkaWwnLCBbMzE1XV0sIFsnbGNlZGlsJywgWzMxNl1dLCBbJ2xjZWlsJywgWzg5NjhdXSwgWydsY3ViJywgWzEyM11dLCBbJ0xjeScsIFsxMDUxXV0sIFsnbGN5JywgWzEwODNdXSwgWydsZGNhJywgWzEwNTUwXV0sIFsnbGRxdW8nLCBbODIyMF1dLCBbJ2xkcXVvcicsIFs4MjIyXV0sIFsnbGRyZGhhcicsIFsxMDU5OV1dLCBbJ2xkcnVzaGFyJywgWzEwNTcxXV0sIFsnbGRzaCcsIFs4NjI2XV0sIFsnbGUnLCBbODgwNF1dLCBbJ2xFJywgWzg4MDZdXSwgWydMZWZ0QW5nbGVCcmFja2V0JywgWzEwMjE2XV0sIFsnTGVmdEFycm93QmFyJywgWzg2NzZdXSwgWydsZWZ0YXJyb3cnLCBbODU5Ml1dLCBbJ0xlZnRBcnJvdycsIFs4NTkyXV0sIFsnTGVmdGFycm93JywgWzg2NTZdXSwgWydMZWZ0QXJyb3dSaWdodEFycm93JywgWzg2NDZdXSwgWydsZWZ0YXJyb3d0YWlsJywgWzg2MTBdXSwgWydMZWZ0Q2VpbGluZycsIFs4OTY4XV0sIFsnTGVmdERvdWJsZUJyYWNrZXQnLCBbMTAyMTRdXSwgWydMZWZ0RG93blRlZVZlY3RvcicsIFsxMDU5M11dLCBbJ0xlZnREb3duVmVjdG9yQmFyJywgWzEwNTg1XV0sIFsnTGVmdERvd25WZWN0b3InLCBbODY0M11dLCBbJ0xlZnRGbG9vcicsIFs4OTcwXV0sIFsnbGVmdGhhcnBvb25kb3duJywgWzg2MzddXSwgWydsZWZ0aGFycG9vbnVwJywgWzg2MzZdXSwgWydsZWZ0bGVmdGFycm93cycsIFs4NjQ3XV0sIFsnbGVmdHJpZ2h0YXJyb3cnLCBbODU5Nl1dLCBbJ0xlZnRSaWdodEFycm93JywgWzg1OTZdXSwgWydMZWZ0cmlnaHRhcnJvdycsIFs4NjYwXV0sIFsnbGVmdHJpZ2h0YXJyb3dzJywgWzg2NDZdXSwgWydsZWZ0cmlnaHRoYXJwb29ucycsIFs4NjUxXV0sIFsnbGVmdHJpZ2h0c3F1aWdhcnJvdycsIFs4NjIxXV0sIFsnTGVmdFJpZ2h0VmVjdG9yJywgWzEwNTc0XV0sIFsnTGVmdFRlZUFycm93JywgWzg2MTJdXSwgWydMZWZ0VGVlJywgWzg4NjddXSwgWydMZWZ0VGVlVmVjdG9yJywgWzEwNTg2XV0sIFsnbGVmdHRocmVldGltZXMnLCBbODkwN11dLCBbJ0xlZnRUcmlhbmdsZUJhcicsIFsxMDcwM11dLCBbJ0xlZnRUcmlhbmdsZScsIFs4ODgyXV0sIFsnTGVmdFRyaWFuZ2xlRXF1YWwnLCBbODg4NF1dLCBbJ0xlZnRVcERvd25WZWN0b3InLCBbMTA1NzddXSwgWydMZWZ0VXBUZWVWZWN0b3InLCBbMTA1OTJdXSwgWydMZWZ0VXBWZWN0b3JCYXInLCBbMTA1ODRdXSwgWydMZWZ0VXBWZWN0b3InLCBbODYzOV1dLCBbJ0xlZnRWZWN0b3JCYXInLCBbMTA1NzhdXSwgWydMZWZ0VmVjdG9yJywgWzg2MzZdXSwgWydsRWcnLCBbMTA4OTFdXSwgWydsZWcnLCBbODkyMl1dLCBbJ2xlcScsIFs4ODA0XV0sIFsnbGVxcScsIFs4ODA2XV0sIFsnbGVxc2xhbnQnLCBbMTA4NzddXSwgWydsZXNjYycsIFsxMDkyMF1dLCBbJ2xlcycsIFsxMDg3N11dLCBbJ2xlc2RvdCcsIFsxMDg3OV1dLCBbJ2xlc2RvdG8nLCBbMTA4ODFdXSwgWydsZXNkb3RvcicsIFsxMDg4M11dLCBbJ2xlc2cnLCBbODkyMiwgNjUwMjRdXSwgWydsZXNnZXMnLCBbMTA4OTldXSwgWydsZXNzYXBwcm94JywgWzEwODg1XV0sIFsnbGVzc2RvdCcsIFs4OTE4XV0sIFsnbGVzc2VxZ3RyJywgWzg5MjJdXSwgWydsZXNzZXFxZ3RyJywgWzEwODkxXV0sIFsnTGVzc0VxdWFsR3JlYXRlcicsIFs4OTIyXV0sIFsnTGVzc0Z1bGxFcXVhbCcsIFs4ODA2XV0sIFsnTGVzc0dyZWF0ZXInLCBbODgyMl1dLCBbJ2xlc3NndHInLCBbODgyMl1dLCBbJ0xlc3NMZXNzJywgWzEwOTEzXV0sIFsnbGVzc3NpbScsIFs4ODE4XV0sIFsnTGVzc1NsYW50RXF1YWwnLCBbMTA4NzddXSwgWydMZXNzVGlsZGUnLCBbODgxOF1dLCBbJ2xmaXNodCcsIFsxMDYyMF1dLCBbJ2xmbG9vcicsIFs4OTcwXV0sIFsnTGZyJywgWzEyMDA3OV1dLCBbJ2xmcicsIFsxMjAxMDVdXSwgWydsZycsIFs4ODIyXV0sIFsnbGdFJywgWzEwODk3XV0sIFsnbEhhcicsIFsxMDU5NF1dLCBbJ2xoYXJkJywgWzg2MzddXSwgWydsaGFydScsIFs4NjM2XV0sIFsnbGhhcnVsJywgWzEwNjAyXV0sIFsnbGhibGsnLCBbOTYwNF1dLCBbJ0xKY3knLCBbMTAzM11dLCBbJ2xqY3knLCBbMTExM11dLCBbJ2xsYXJyJywgWzg2NDddXSwgWydsbCcsIFs4ODEwXV0sIFsnTGwnLCBbODkyMF1dLCBbJ2xsY29ybmVyJywgWzg5OTBdXSwgWydMbGVmdGFycm93JywgWzg2NjZdXSwgWydsbGhhcmQnLCBbMTA2MDNdXSwgWydsbHRyaScsIFs5NzIyXV0sIFsnTG1pZG90JywgWzMxOV1dLCBbJ2xtaWRvdCcsIFszMjBdXSwgWydsbW91c3RhY2hlJywgWzkxMzZdXSwgWydsbW91c3QnLCBbOTEzNl1dLCBbJ2xuYXAnLCBbMTA4ODldXSwgWydsbmFwcHJveCcsIFsxMDg4OV1dLCBbJ2xuZScsIFsxMDg4N11dLCBbJ2xuRScsIFs4ODA4XV0sIFsnbG5lcScsIFsxMDg4N11dLCBbJ2xuZXFxJywgWzg4MDhdXSwgWydsbnNpbScsIFs4OTM0XV0sIFsnbG9hbmcnLCBbMTAyMjBdXSwgWydsb2FycicsIFs4NzAxXV0sIFsnbG9icmsnLCBbMTAyMTRdXSwgWydsb25nbGVmdGFycm93JywgWzEwMjI5XV0sIFsnTG9uZ0xlZnRBcnJvdycsIFsxMDIyOV1dLCBbJ0xvbmdsZWZ0YXJyb3cnLCBbMTAyMzJdXSwgWydsb25nbGVmdHJpZ2h0YXJyb3cnLCBbMTAyMzFdXSwgWydMb25nTGVmdFJpZ2h0QXJyb3cnLCBbMTAyMzFdXSwgWydMb25nbGVmdHJpZ2h0YXJyb3cnLCBbMTAyMzRdXSwgWydsb25nbWFwc3RvJywgWzEwMjM2XV0sIFsnbG9uZ3JpZ2h0YXJyb3cnLCBbMTAyMzBdXSwgWydMb25nUmlnaHRBcnJvdycsIFsxMDIzMF1dLCBbJ0xvbmdyaWdodGFycm93JywgWzEwMjMzXV0sIFsnbG9vcGFycm93bGVmdCcsIFs4NjE5XV0sIFsnbG9vcGFycm93cmlnaHQnLCBbODYyMF1dLCBbJ2xvcGFyJywgWzEwNjI5XV0sIFsnTG9wZicsIFsxMjAxMzFdXSwgWydsb3BmJywgWzEyMDE1N11dLCBbJ2xvcGx1cycsIFsxMDc5N11dLCBbJ2xvdGltZXMnLCBbMTA4MDRdXSwgWydsb3dhc3QnLCBbODcyN11dLCBbJ2xvd2JhcicsIFs5NV1dLCBbJ0xvd2VyTGVmdEFycm93JywgWzg2MDFdXSwgWydMb3dlclJpZ2h0QXJyb3cnLCBbODYwMF1dLCBbJ2xveicsIFs5Njc0XV0sIFsnbG96ZW5nZScsIFs5Njc0XV0sIFsnbG96ZicsIFsxMDczMV1dLCBbJ2xwYXInLCBbNDBdXSwgWydscGFybHQnLCBbMTA2NDNdXSwgWydscmFycicsIFs4NjQ2XV0sIFsnbHJjb3JuZXInLCBbODk5MV1dLCBbJ2xyaGFyJywgWzg2NTFdXSwgWydscmhhcmQnLCBbMTA2MDVdXSwgWydscm0nLCBbODIwNl1dLCBbJ2xydHJpJywgWzg4OTVdXSwgWydsc2FxdW8nLCBbODI0OV1dLCBbJ2xzY3InLCBbMTIwMDAxXV0sIFsnTHNjcicsIFs4NDY2XV0sIFsnbHNoJywgWzg2MjRdXSwgWydMc2gnLCBbODYyNF1dLCBbJ2xzaW0nLCBbODgxOF1dLCBbJ2xzaW1lJywgWzEwODkzXV0sIFsnbHNpbWcnLCBbMTA4OTVdXSwgWydsc3FiJywgWzkxXV0sIFsnbHNxdW8nLCBbODIxNl1dLCBbJ2xzcXVvcicsIFs4MjE4XV0sIFsnTHN0cm9rJywgWzMyMV1dLCBbJ2xzdHJvaycsIFszMjJdXSwgWydsdGNjJywgWzEwOTE4XV0sIFsnbHRjaXInLCBbMTA4NzNdXSwgWydsdCcsIFs2MF1dLCBbJ0xUJywgWzYwXV0sIFsnTHQnLCBbODgxMF1dLCBbJ2x0ZG90JywgWzg5MThdXSwgWydsdGhyZWUnLCBbODkwN11dLCBbJ2x0aW1lcycsIFs4OTA1XV0sIFsnbHRsYXJyJywgWzEwNjE0XV0sIFsnbHRxdWVzdCcsIFsxMDg3NV1dLCBbJ2x0cmknLCBbOTY2N11dLCBbJ2x0cmllJywgWzg4ODRdXSwgWydsdHJpZicsIFs5NjY2XV0sIFsnbHRyUGFyJywgWzEwNjQ2XV0sIFsnbHVyZHNoYXInLCBbMTA1NzBdXSwgWydsdXJ1aGFyJywgWzEwNTk4XV0sIFsnbHZlcnRuZXFxJywgWzg4MDgsIDY1MDI0XV0sIFsnbHZuRScsIFs4ODA4LCA2NTAyNF1dLCBbJ21hY3InLCBbMTc1XV0sIFsnbWFsZScsIFs5Nzk0XV0sIFsnbWFsdCcsIFsxMDAxNl1dLCBbJ21hbHRlc2UnLCBbMTAwMTZdXSwgWydNYXAnLCBbMTA1MDFdXSwgWydtYXAnLCBbODYxNF1dLCBbJ21hcHN0bycsIFs4NjE0XV0sIFsnbWFwc3RvZG93bicsIFs4NjE1XV0sIFsnbWFwc3RvbGVmdCcsIFs4NjEyXV0sIFsnbWFwc3RvdXAnLCBbODYxM11dLCBbJ21hcmtlcicsIFs5NjQ2XV0sIFsnbWNvbW1hJywgWzEwNzkzXV0sIFsnTWN5JywgWzEwNTJdXSwgWydtY3knLCBbMTA4NF1dLCBbJ21kYXNoJywgWzgyMTJdXSwgWydtRERvdCcsIFs4NzYyXV0sIFsnbWVhc3VyZWRhbmdsZScsIFs4NzM3XV0sIFsnTWVkaXVtU3BhY2UnLCBbODI4N11dLCBbJ01lbGxpbnRyZicsIFs4NDk5XV0sIFsnTWZyJywgWzEyMDA4MF1dLCBbJ21mcicsIFsxMjAxMDZdXSwgWydtaG8nLCBbODQ4N11dLCBbJ21pY3JvJywgWzE4MV1dLCBbJ21pZGFzdCcsIFs0Ml1dLCBbJ21pZGNpcicsIFsxMDk5Ml1dLCBbJ21pZCcsIFs4NzM5XV0sIFsnbWlkZG90JywgWzE4M11dLCBbJ21pbnVzYicsIFs4ODYzXV0sIFsnbWludXMnLCBbODcyMl1dLCBbJ21pbnVzZCcsIFs4NzYwXV0sIFsnbWludXNkdScsIFsxMDc5NF1dLCBbJ01pbnVzUGx1cycsIFs4NzIzXV0sIFsnbWxjcCcsIFsxMDk3MV1dLCBbJ21sZHInLCBbODIzMF1dLCBbJ21ucGx1cycsIFs4NzIzXV0sIFsnbW9kZWxzJywgWzg4NzFdXSwgWydNb3BmJywgWzEyMDEzMl1dLCBbJ21vcGYnLCBbMTIwMTU4XV0sIFsnbXAnLCBbODcyM11dLCBbJ21zY3InLCBbMTIwMDAyXV0sIFsnTXNjcicsIFs4NDk5XV0sIFsnbXN0cG9zJywgWzg3NjZdXSwgWydNdScsIFs5MjRdXSwgWydtdScsIFs5NTZdXSwgWydtdWx0aW1hcCcsIFs4ODg4XV0sIFsnbXVtYXAnLCBbODg4OF1dLCBbJ25hYmxhJywgWzg3MTFdXSwgWydOYWN1dGUnLCBbMzIzXV0sIFsnbmFjdXRlJywgWzMyNF1dLCBbJ25hbmcnLCBbODczNiwgODQwMl1dLCBbJ25hcCcsIFs4Nzc3XV0sIFsnbmFwRScsIFsxMDg2NCwgODI0XV0sIFsnbmFwaWQnLCBbODc3OSwgODI0XV0sIFsnbmFwb3MnLCBbMzI5XV0sIFsnbmFwcHJveCcsIFs4Nzc3XV0sIFsnbmF0dXJhbCcsIFs5ODM4XV0sIFsnbmF0dXJhbHMnLCBbODQ2OV1dLCBbJ25hdHVyJywgWzk4MzhdXSwgWyduYnNwJywgWzE2MF1dLCBbJ25idW1wJywgWzg3ODIsIDgyNF1dLCBbJ25idW1wZScsIFs4NzgzLCA4MjRdXSwgWyduY2FwJywgWzEwODE5XV0sIFsnTmNhcm9uJywgWzMyN11dLCBbJ25jYXJvbicsIFszMjhdXSwgWydOY2VkaWwnLCBbMzI1XV0sIFsnbmNlZGlsJywgWzMyNl1dLCBbJ25jb25nJywgWzg3NzVdXSwgWyduY29uZ2RvdCcsIFsxMDg2MSwgODI0XV0sIFsnbmN1cCcsIFsxMDgxOF1dLCBbJ05jeScsIFsxMDUzXV0sIFsnbmN5JywgWzEwODVdXSwgWyduZGFzaCcsIFs4MjExXV0sIFsnbmVhcmhrJywgWzEwNTMyXV0sIFsnbmVhcnInLCBbODU5OV1dLCBbJ25lQXJyJywgWzg2NjNdXSwgWyduZWFycm93JywgWzg1OTldXSwgWyduZScsIFs4ODAwXV0sIFsnbmVkb3QnLCBbODc4NCwgODI0XV0sIFsnTmVnYXRpdmVNZWRpdW1TcGFjZScsIFs4MjAzXV0sIFsnTmVnYXRpdmVUaGlja1NwYWNlJywgWzgyMDNdXSwgWydOZWdhdGl2ZVRoaW5TcGFjZScsIFs4MjAzXV0sIFsnTmVnYXRpdmVWZXJ5VGhpblNwYWNlJywgWzgyMDNdXSwgWyduZXF1aXYnLCBbODgwMl1dLCBbJ25lc2VhcicsIFsxMDUzNl1dLCBbJ25lc2ltJywgWzg3NzAsIDgyNF1dLCBbJ05lc3RlZEdyZWF0ZXJHcmVhdGVyJywgWzg4MTFdXSwgWydOZXN0ZWRMZXNzTGVzcycsIFs4ODEwXV0sIFsnbmV4aXN0JywgWzg3MDhdXSwgWyduZXhpc3RzJywgWzg3MDhdXSwgWydOZnInLCBbMTIwMDgxXV0sIFsnbmZyJywgWzEyMDEwN11dLCBbJ25nRScsIFs4ODA3LCA4MjRdXSwgWyduZ2UnLCBbODgxN11dLCBbJ25nZXEnLCBbODgxN11dLCBbJ25nZXFxJywgWzg4MDcsIDgyNF1dLCBbJ25nZXFzbGFudCcsIFsxMDg3OCwgODI0XV0sIFsnbmdlcycsIFsxMDg3OCwgODI0XV0sIFsnbkdnJywgWzg5MjEsIDgyNF1dLCBbJ25nc2ltJywgWzg4MjFdXSwgWyduR3QnLCBbODgxMSwgODQwMl1dLCBbJ25ndCcsIFs4ODE1XV0sIFsnbmd0cicsIFs4ODE1XV0sIFsnbkd0dicsIFs4ODExLCA4MjRdXSwgWyduaGFycicsIFs4NjIyXV0sIFsnbmhBcnInLCBbODY1NF1dLCBbJ25ocGFyJywgWzEwOTk0XV0sIFsnbmknLCBbODcxNV1dLCBbJ25pcycsIFs4OTU2XV0sIFsnbmlzZCcsIFs4OTU0XV0sIFsnbml2JywgWzg3MTVdXSwgWydOSmN5JywgWzEwMzRdXSwgWyduamN5JywgWzExMTRdXSwgWydubGFycicsIFs4NjAyXV0sIFsnbmxBcnInLCBbODY1M11dLCBbJ25sZHInLCBbODIyOV1dLCBbJ25sRScsIFs4ODA2LCA4MjRdXSwgWydubGUnLCBbODgxNl1dLCBbJ25sZWZ0YXJyb3cnLCBbODYwMl1dLCBbJ25MZWZ0YXJyb3cnLCBbODY1M11dLCBbJ25sZWZ0cmlnaHRhcnJvdycsIFs4NjIyXV0sIFsnbkxlZnRyaWdodGFycm93JywgWzg2NTRdXSwgWydubGVxJywgWzg4MTZdXSwgWydubGVxcScsIFs4ODA2LCA4MjRdXSwgWydubGVxc2xhbnQnLCBbMTA4NzcsIDgyNF1dLCBbJ25sZXMnLCBbMTA4NzcsIDgyNF1dLCBbJ25sZXNzJywgWzg4MTRdXSwgWyduTGwnLCBbODkyMCwgODI0XV0sIFsnbmxzaW0nLCBbODgyMF1dLCBbJ25MdCcsIFs4ODEwLCA4NDAyXV0sIFsnbmx0JywgWzg4MTRdXSwgWydubHRyaScsIFs4OTM4XV0sIFsnbmx0cmllJywgWzg5NDBdXSwgWyduTHR2JywgWzg4MTAsIDgyNF1dLCBbJ25taWQnLCBbODc0MF1dLCBbJ05vQnJlYWsnLCBbODI4OF1dLCBbJ05vbkJyZWFraW5nU3BhY2UnLCBbMTYwXV0sIFsnbm9wZicsIFsxMjAxNTldXSwgWydOb3BmJywgWzg0NjldXSwgWydOb3QnLCBbMTA5ODhdXSwgWydub3QnLCBbMTcyXV0sIFsnTm90Q29uZ3J1ZW50JywgWzg4MDJdXSwgWydOb3RDdXBDYXAnLCBbODgxM11dLCBbJ05vdERvdWJsZVZlcnRpY2FsQmFyJywgWzg3NDJdXSwgWydOb3RFbGVtZW50JywgWzg3MTNdXSwgWydOb3RFcXVhbCcsIFs4ODAwXV0sIFsnTm90RXF1YWxUaWxkZScsIFs4NzcwLCA4MjRdXSwgWydOb3RFeGlzdHMnLCBbODcwOF1dLCBbJ05vdEdyZWF0ZXInLCBbODgxNV1dLCBbJ05vdEdyZWF0ZXJFcXVhbCcsIFs4ODE3XV0sIFsnTm90R3JlYXRlckZ1bGxFcXVhbCcsIFs4ODA3LCA4MjRdXSwgWydOb3RHcmVhdGVyR3JlYXRlcicsIFs4ODExLCA4MjRdXSwgWydOb3RHcmVhdGVyTGVzcycsIFs4ODI1XV0sIFsnTm90R3JlYXRlclNsYW50RXF1YWwnLCBbMTA4NzgsIDgyNF1dLCBbJ05vdEdyZWF0ZXJUaWxkZScsIFs4ODIxXV0sIFsnTm90SHVtcERvd25IdW1wJywgWzg3ODIsIDgyNF1dLCBbJ05vdEh1bXBFcXVhbCcsIFs4NzgzLCA4MjRdXSwgWydub3RpbicsIFs4NzEzXV0sIFsnbm90aW5kb3QnLCBbODk0OSwgODI0XV0sIFsnbm90aW5FJywgWzg5NTMsIDgyNF1dLCBbJ25vdGludmEnLCBbODcxM11dLCBbJ25vdGludmInLCBbODk1MV1dLCBbJ25vdGludmMnLCBbODk1MF1dLCBbJ05vdExlZnRUcmlhbmdsZUJhcicsIFsxMDcwMywgODI0XV0sIFsnTm90TGVmdFRyaWFuZ2xlJywgWzg5MzhdXSwgWydOb3RMZWZ0VHJpYW5nbGVFcXVhbCcsIFs4OTQwXV0sIFsnTm90TGVzcycsIFs4ODE0XV0sIFsnTm90TGVzc0VxdWFsJywgWzg4MTZdXSwgWydOb3RMZXNzR3JlYXRlcicsIFs4ODI0XV0sIFsnTm90TGVzc0xlc3MnLCBbODgxMCwgODI0XV0sIFsnTm90TGVzc1NsYW50RXF1YWwnLCBbMTA4NzcsIDgyNF1dLCBbJ05vdExlc3NUaWxkZScsIFs4ODIwXV0sIFsnTm90TmVzdGVkR3JlYXRlckdyZWF0ZXInLCBbMTA5MTQsIDgyNF1dLCBbJ05vdE5lc3RlZExlc3NMZXNzJywgWzEwOTEzLCA4MjRdXSwgWydub3RuaScsIFs4NzE2XV0sIFsnbm90bml2YScsIFs4NzE2XV0sIFsnbm90bml2YicsIFs4OTU4XV0sIFsnbm90bml2YycsIFs4OTU3XV0sIFsnTm90UHJlY2VkZXMnLCBbODgzMl1dLCBbJ05vdFByZWNlZGVzRXF1YWwnLCBbMTA5MjcsIDgyNF1dLCBbJ05vdFByZWNlZGVzU2xhbnRFcXVhbCcsIFs4OTI4XV0sIFsnTm90UmV2ZXJzZUVsZW1lbnQnLCBbODcxNl1dLCBbJ05vdFJpZ2h0VHJpYW5nbGVCYXInLCBbMTA3MDQsIDgyNF1dLCBbJ05vdFJpZ2h0VHJpYW5nbGUnLCBbODkzOV1dLCBbJ05vdFJpZ2h0VHJpYW5nbGVFcXVhbCcsIFs4OTQxXV0sIFsnTm90U3F1YXJlU3Vic2V0JywgWzg4NDcsIDgyNF1dLCBbJ05vdFNxdWFyZVN1YnNldEVxdWFsJywgWzg5MzBdXSwgWydOb3RTcXVhcmVTdXBlcnNldCcsIFs4ODQ4LCA4MjRdXSwgWydOb3RTcXVhcmVTdXBlcnNldEVxdWFsJywgWzg5MzFdXSwgWydOb3RTdWJzZXQnLCBbODgzNCwgODQwMl1dLCBbJ05vdFN1YnNldEVxdWFsJywgWzg4NDBdXSwgWydOb3RTdWNjZWVkcycsIFs4ODMzXV0sIFsnTm90U3VjY2VlZHNFcXVhbCcsIFsxMDkyOCwgODI0XV0sIFsnTm90U3VjY2VlZHNTbGFudEVxdWFsJywgWzg5MjldXSwgWydOb3RTdWNjZWVkc1RpbGRlJywgWzg4MzEsIDgyNF1dLCBbJ05vdFN1cGVyc2V0JywgWzg4MzUsIDg0MDJdXSwgWydOb3RTdXBlcnNldEVxdWFsJywgWzg4NDFdXSwgWydOb3RUaWxkZScsIFs4NzY5XV0sIFsnTm90VGlsZGVFcXVhbCcsIFs4NzcyXV0sIFsnTm90VGlsZGVGdWxsRXF1YWwnLCBbODc3NV1dLCBbJ05vdFRpbGRlVGlsZGUnLCBbODc3N11dLCBbJ05vdFZlcnRpY2FsQmFyJywgWzg3NDBdXSwgWyducGFyYWxsZWwnLCBbODc0Ml1dLCBbJ25wYXInLCBbODc0Ml1dLCBbJ25wYXJzbCcsIFsxMTAwNSwgODQyMV1dLCBbJ25wYXJ0JywgWzg3MDYsIDgyNF1dLCBbJ25wb2xpbnQnLCBbMTA3NzJdXSwgWyducHInLCBbODgzMl1dLCBbJ25wcmN1ZScsIFs4OTI4XV0sIFsnbnByZWMnLCBbODgzMl1dLCBbJ25wcmVjZXEnLCBbMTA5MjcsIDgyNF1dLCBbJ25wcmUnLCBbMTA5MjcsIDgyNF1dLCBbJ25yYXJyYycsIFsxMDU0NywgODI0XV0sIFsnbnJhcnInLCBbODYwM11dLCBbJ25yQXJyJywgWzg2NTVdXSwgWyducmFycncnLCBbODYwNSwgODI0XV0sIFsnbnJpZ2h0YXJyb3cnLCBbODYwM11dLCBbJ25SaWdodGFycm93JywgWzg2NTVdXSwgWyducnRyaScsIFs4OTM5XV0sIFsnbnJ0cmllJywgWzg5NDFdXSwgWyduc2MnLCBbODgzM11dLCBbJ25zY2N1ZScsIFs4OTI5XV0sIFsnbnNjZScsIFsxMDkyOCwgODI0XV0sIFsnTnNjcicsIFsxMTk5NzddXSwgWyduc2NyJywgWzEyMDAwM11dLCBbJ25zaG9ydG1pZCcsIFs4NzQwXV0sIFsnbnNob3J0cGFyYWxsZWwnLCBbODc0Ml1dLCBbJ25zaW0nLCBbODc2OV1dLCBbJ25zaW1lJywgWzg3NzJdXSwgWyduc2ltZXEnLCBbODc3Ml1dLCBbJ25zbWlkJywgWzg3NDBdXSwgWyduc3BhcicsIFs4NzQyXV0sIFsnbnNxc3ViZScsIFs4OTMwXV0sIFsnbnNxc3VwZScsIFs4OTMxXV0sIFsnbnN1YicsIFs4ODM2XV0sIFsnbnN1YkUnLCBbMTA5NDksIDgyNF1dLCBbJ25zdWJlJywgWzg4NDBdXSwgWyduc3Vic2V0JywgWzg4MzQsIDg0MDJdXSwgWyduc3Vic2V0ZXEnLCBbODg0MF1dLCBbJ25zdWJzZXRlcXEnLCBbMTA5NDksIDgyNF1dLCBbJ25zdWNjJywgWzg4MzNdXSwgWyduc3VjY2VxJywgWzEwOTI4LCA4MjRdXSwgWyduc3VwJywgWzg4MzddXSwgWyduc3VwRScsIFsxMDk1MCwgODI0XV0sIFsnbnN1cGUnLCBbODg0MV1dLCBbJ25zdXBzZXQnLCBbODgzNSwgODQwMl1dLCBbJ25zdXBzZXRlcScsIFs4ODQxXV0sIFsnbnN1cHNldGVxcScsIFsxMDk1MCwgODI0XV0sIFsnbnRnbCcsIFs4ODI1XV0sIFsnTnRpbGRlJywgWzIwOV1dLCBbJ250aWxkZScsIFsyNDFdXSwgWydudGxnJywgWzg4MjRdXSwgWydudHJpYW5nbGVsZWZ0JywgWzg5MzhdXSwgWydudHJpYW5nbGVsZWZ0ZXEnLCBbODk0MF1dLCBbJ250cmlhbmdsZXJpZ2h0JywgWzg5MzldXSwgWydudHJpYW5nbGVyaWdodGVxJywgWzg5NDFdXSwgWydOdScsIFs5MjVdXSwgWydudScsIFs5NTddXSwgWydudW0nLCBbMzVdXSwgWydudW1lcm8nLCBbODQ3MF1dLCBbJ251bXNwJywgWzgxOTldXSwgWydudmFwJywgWzg3ODEsIDg0MDJdXSwgWydudmRhc2gnLCBbODg3Nl1dLCBbJ252RGFzaCcsIFs4ODc3XV0sIFsnblZkYXNoJywgWzg4NzhdXSwgWyduVkRhc2gnLCBbODg3OV1dLCBbJ252Z2UnLCBbODgwNSwgODQwMl1dLCBbJ252Z3QnLCBbNjIsIDg0MDJdXSwgWydudkhhcnInLCBbMTA1MDBdXSwgWydudmluZmluJywgWzEwNzE4XV0sIFsnbnZsQXJyJywgWzEwNDk4XV0sIFsnbnZsZScsIFs4ODA0LCA4NDAyXV0sIFsnbnZsdCcsIFs2MCwgODQwMl1dLCBbJ252bHRyaWUnLCBbODg4NCwgODQwMl1dLCBbJ252ckFycicsIFsxMDQ5OV1dLCBbJ252cnRyaWUnLCBbODg4NSwgODQwMl1dLCBbJ252c2ltJywgWzg3NjQsIDg0MDJdXSwgWydud2FyaGsnLCBbMTA1MzFdXSwgWydud2FycicsIFs4NTk4XV0sIFsnbndBcnInLCBbODY2Ml1dLCBbJ253YXJyb3cnLCBbODU5OF1dLCBbJ253bmVhcicsIFsxMDUzNV1dLCBbJ09hY3V0ZScsIFsyMTFdXSwgWydvYWN1dGUnLCBbMjQzXV0sIFsnb2FzdCcsIFs4ODU5XV0sIFsnT2NpcmMnLCBbMjEyXV0sIFsnb2NpcmMnLCBbMjQ0XV0sIFsnb2NpcicsIFs4ODU4XV0sIFsnT2N5JywgWzEwNTRdXSwgWydvY3knLCBbMTA4Nl1dLCBbJ29kYXNoJywgWzg4NjFdXSwgWydPZGJsYWMnLCBbMzM2XV0sIFsnb2RibGFjJywgWzMzN11dLCBbJ29kaXYnLCBbMTA4MDhdXSwgWydvZG90JywgWzg4NTddXSwgWydvZHNvbGQnLCBbMTA2ODRdXSwgWydPRWxpZycsIFszMzhdXSwgWydvZWxpZycsIFszMzldXSwgWydvZmNpcicsIFsxMDY4N11dLCBbJ09mcicsIFsxMjAwODJdXSwgWydvZnInLCBbMTIwMTA4XV0sIFsnb2dvbicsIFs3MzFdXSwgWydPZ3JhdmUnLCBbMjEwXV0sIFsnb2dyYXZlJywgWzI0Ml1dLCBbJ29ndCcsIFsxMDY4OV1dLCBbJ29oYmFyJywgWzEwNjc3XV0sIFsnb2htJywgWzkzN11dLCBbJ29pbnQnLCBbODc1MF1dLCBbJ29sYXJyJywgWzg2MzRdXSwgWydvbGNpcicsIFsxMDY4Nl1dLCBbJ29sY3Jvc3MnLCBbMTA2ODNdXSwgWydvbGluZScsIFs4MjU0XV0sIFsnb2x0JywgWzEwNjg4XV0sIFsnT21hY3InLCBbMzMyXV0sIFsnb21hY3InLCBbMzMzXV0sIFsnT21lZ2EnLCBbOTM3XV0sIFsnb21lZ2EnLCBbOTY5XV0sIFsnT21pY3JvbicsIFs5MjddXSwgWydvbWljcm9uJywgWzk1OV1dLCBbJ29taWQnLCBbMTA2NzhdXSwgWydvbWludXMnLCBbODg1NF1dLCBbJ09vcGYnLCBbMTIwMTM0XV0sIFsnb29wZicsIFsxMjAxNjBdXSwgWydvcGFyJywgWzEwNjc5XV0sIFsnT3BlbkN1cmx5RG91YmxlUXVvdGUnLCBbODIyMF1dLCBbJ09wZW5DdXJseVF1b3RlJywgWzgyMTZdXSwgWydvcGVycCcsIFsxMDY4MV1dLCBbJ29wbHVzJywgWzg4NTNdXSwgWydvcmFycicsIFs4NjM1XV0sIFsnT3InLCBbMTA4MzZdXSwgWydvcicsIFs4NzQ0XV0sIFsnb3JkJywgWzEwODQ1XV0sIFsnb3JkZXInLCBbODUwMF1dLCBbJ29yZGVyb2YnLCBbODUwMF1dLCBbJ29yZGYnLCBbMTcwXV0sIFsnb3JkbScsIFsxODZdXSwgWydvcmlnb2YnLCBbODg4Nl1dLCBbJ29yb3InLCBbMTA4MzhdXSwgWydvcnNsb3BlJywgWzEwODM5XV0sIFsnb3J2JywgWzEwODQzXV0sIFsnb1MnLCBbOTQxNl1dLCBbJ09zY3InLCBbMTE5OTc4XV0sIFsnb3NjcicsIFs4NTAwXV0sIFsnT3NsYXNoJywgWzIxNl1dLCBbJ29zbGFzaCcsIFsyNDhdXSwgWydvc29sJywgWzg4NTZdXSwgWydPdGlsZGUnLCBbMjEzXV0sIFsnb3RpbGRlJywgWzI0NV1dLCBbJ290aW1lc2FzJywgWzEwODA2XV0sIFsnT3RpbWVzJywgWzEwODA3XV0sIFsnb3RpbWVzJywgWzg4NTVdXSwgWydPdW1sJywgWzIxNF1dLCBbJ291bWwnLCBbMjQ2XV0sIFsnb3ZiYXInLCBbOTAyMV1dLCBbJ092ZXJCYXInLCBbODI1NF1dLCBbJ092ZXJCcmFjZScsIFs5MTgyXV0sIFsnT3ZlckJyYWNrZXQnLCBbOTE0MF1dLCBbJ092ZXJQYXJlbnRoZXNpcycsIFs5MTgwXV0sIFsncGFyYScsIFsxODJdXSwgWydwYXJhbGxlbCcsIFs4NzQxXV0sIFsncGFyJywgWzg3NDFdXSwgWydwYXJzaW0nLCBbMTA5OTVdXSwgWydwYXJzbCcsIFsxMTAwNV1dLCBbJ3BhcnQnLCBbODcwNl1dLCBbJ1BhcnRpYWxEJywgWzg3MDZdXSwgWydQY3knLCBbMTA1NV1dLCBbJ3BjeScsIFsxMDg3XV0sIFsncGVyY250JywgWzM3XV0sIFsncGVyaW9kJywgWzQ2XV0sIFsncGVybWlsJywgWzgyNDBdXSwgWydwZXJwJywgWzg4NjldXSwgWydwZXJ0ZW5rJywgWzgyNDFdXSwgWydQZnInLCBbMTIwMDgzXV0sIFsncGZyJywgWzEyMDEwOV1dLCBbJ1BoaScsIFs5MzRdXSwgWydwaGknLCBbOTY2XV0sIFsncGhpdicsIFs5ODFdXSwgWydwaG1tYXQnLCBbODQ5OV1dLCBbJ3Bob25lJywgWzk3NDJdXSwgWydQaScsIFs5MjhdXSwgWydwaScsIFs5NjBdXSwgWydwaXRjaGZvcmsnLCBbODkxNl1dLCBbJ3BpdicsIFs5ODJdXSwgWydwbGFuY2snLCBbODQ2M11dLCBbJ3BsYW5ja2gnLCBbODQ2Ml1dLCBbJ3BsYW5rdicsIFs4NDYzXV0sIFsncGx1c2FjaXInLCBbMTA3ODddXSwgWydwbHVzYicsIFs4ODYyXV0sIFsncGx1c2NpcicsIFsxMDc4Nl1dLCBbJ3BsdXMnLCBbNDNdXSwgWydwbHVzZG8nLCBbODcyNF1dLCBbJ3BsdXNkdScsIFsxMDc4OV1dLCBbJ3BsdXNlJywgWzEwODY2XV0sIFsnUGx1c01pbnVzJywgWzE3N11dLCBbJ3BsdXNtbicsIFsxNzddXSwgWydwbHVzc2ltJywgWzEwNzkwXV0sIFsncGx1c3R3bycsIFsxMDc5MV1dLCBbJ3BtJywgWzE3N11dLCBbJ1BvaW5jYXJlcGxhbmUnLCBbODQ2MF1dLCBbJ3BvaW50aW50JywgWzEwNzczXV0sIFsncG9wZicsIFsxMjAxNjFdXSwgWydQb3BmJywgWzg0NzNdXSwgWydwb3VuZCcsIFsxNjNdXSwgWydwcmFwJywgWzEwOTM1XV0sIFsnUHInLCBbMTA5MzldXSwgWydwcicsIFs4ODI2XV0sIFsncHJjdWUnLCBbODgyOF1dLCBbJ3ByZWNhcHByb3gnLCBbMTA5MzVdXSwgWydwcmVjJywgWzg4MjZdXSwgWydwcmVjY3VybHllcScsIFs4ODI4XV0sIFsnUHJlY2VkZXMnLCBbODgyNl1dLCBbJ1ByZWNlZGVzRXF1YWwnLCBbMTA5MjddXSwgWydQcmVjZWRlc1NsYW50RXF1YWwnLCBbODgyOF1dLCBbJ1ByZWNlZGVzVGlsZGUnLCBbODgzMF1dLCBbJ3ByZWNlcScsIFsxMDkyN11dLCBbJ3ByZWNuYXBwcm94JywgWzEwOTM3XV0sIFsncHJlY25lcXEnLCBbMTA5MzNdXSwgWydwcmVjbnNpbScsIFs4OTM2XV0sIFsncHJlJywgWzEwOTI3XV0sIFsncHJFJywgWzEwOTMxXV0sIFsncHJlY3NpbScsIFs4ODMwXV0sIFsncHJpbWUnLCBbODI0Ml1dLCBbJ1ByaW1lJywgWzgyNDNdXSwgWydwcmltZXMnLCBbODQ3M11dLCBbJ3BybmFwJywgWzEwOTM3XV0sIFsncHJuRScsIFsxMDkzM11dLCBbJ3BybnNpbScsIFs4OTM2XV0sIFsncHJvZCcsIFs4NzE5XV0sIFsnUHJvZHVjdCcsIFs4NzE5XV0sIFsncHJvZmFsYXInLCBbOTAwNl1dLCBbJ3Byb2ZsaW5lJywgWzg5NzhdXSwgWydwcm9mc3VyZicsIFs4OTc5XV0sIFsncHJvcCcsIFs4NzMzXV0sIFsnUHJvcG9ydGlvbmFsJywgWzg3MzNdXSwgWydQcm9wb3J0aW9uJywgWzg3NTldXSwgWydwcm9wdG8nLCBbODczM11dLCBbJ3Byc2ltJywgWzg4MzBdXSwgWydwcnVyZWwnLCBbODg4MF1dLCBbJ1BzY3InLCBbMTE5OTc5XV0sIFsncHNjcicsIFsxMjAwMDVdXSwgWydQc2knLCBbOTM2XV0sIFsncHNpJywgWzk2OF1dLCBbJ3B1bmNzcCcsIFs4MjAwXV0sIFsnUWZyJywgWzEyMDA4NF1dLCBbJ3FmcicsIFsxMjAxMTBdXSwgWydxaW50JywgWzEwNzY0XV0sIFsncW9wZicsIFsxMjAxNjJdXSwgWydRb3BmJywgWzg0NzRdXSwgWydxcHJpbWUnLCBbODI3OV1dLCBbJ1FzY3InLCBbMTE5OTgwXV0sIFsncXNjcicsIFsxMjAwMDZdXSwgWydxdWF0ZXJuaW9ucycsIFs4NDYxXV0sIFsncXVhdGludCcsIFsxMDc3NF1dLCBbJ3F1ZXN0JywgWzYzXV0sIFsncXVlc3RlcScsIFs4Nzk5XV0sIFsncXVvdCcsIFszNF1dLCBbJ1FVT1QnLCBbMzRdXSwgWydyQWFycicsIFs4NjY3XV0sIFsncmFjZScsIFs4NzY1LCA4MTddXSwgWydSYWN1dGUnLCBbMzQwXV0sIFsncmFjdXRlJywgWzM0MV1dLCBbJ3JhZGljJywgWzg3MzBdXSwgWydyYWVtcHR5dicsIFsxMDY3NV1dLCBbJ3JhbmcnLCBbMTAyMTddXSwgWydSYW5nJywgWzEwMjE5XV0sIFsncmFuZ2QnLCBbMTA2NDJdXSwgWydyYW5nZScsIFsxMDY2MV1dLCBbJ3JhbmdsZScsIFsxMDIxN11dLCBbJ3JhcXVvJywgWzE4N11dLCBbJ3JhcnJhcCcsIFsxMDYxM11dLCBbJ3JhcnJiJywgWzg2NzddXSwgWydyYXJyYmZzJywgWzEwNTI4XV0sIFsncmFycmMnLCBbMTA1NDddXSwgWydyYXJyJywgWzg1OTRdXSwgWydSYXJyJywgWzg2MDhdXSwgWydyQXJyJywgWzg2NThdXSwgWydyYXJyZnMnLCBbMTA1MjZdXSwgWydyYXJyaGsnLCBbODYxOF1dLCBbJ3JhcnJscCcsIFs4NjIwXV0sIFsncmFycnBsJywgWzEwNTY1XV0sIFsncmFycnNpbScsIFsxMDYxMl1dLCBbJ1JhcnJ0bCcsIFsxMDUxOF1dLCBbJ3JhcnJ0bCcsIFs4NjExXV0sIFsncmFycncnLCBbODYwNV1dLCBbJ3JhdGFpbCcsIFsxMDUyMl1dLCBbJ3JBdGFpbCcsIFsxMDUyNF1dLCBbJ3JhdGlvJywgWzg3NThdXSwgWydyYXRpb25hbHMnLCBbODQ3NF1dLCBbJ3JiYXJyJywgWzEwNTA5XV0sIFsnckJhcnInLCBbMTA1MTFdXSwgWydSQmFycicsIFsxMDUxMl1dLCBbJ3JiYnJrJywgWzEwMDk5XV0sIFsncmJyYWNlJywgWzEyNV1dLCBbJ3JicmFjaycsIFs5M11dLCBbJ3JicmtlJywgWzEwNjM2XV0sIFsncmJya3NsZCcsIFsxMDYzOF1dLCBbJ3JicmtzbHUnLCBbMTA2NDBdXSwgWydSY2Fyb24nLCBbMzQ0XV0sIFsncmNhcm9uJywgWzM0NV1dLCBbJ1JjZWRpbCcsIFszNDJdXSwgWydyY2VkaWwnLCBbMzQzXV0sIFsncmNlaWwnLCBbODk2OV1dLCBbJ3JjdWInLCBbMTI1XV0sIFsnUmN5JywgWzEwNTZdXSwgWydyY3knLCBbMTA4OF1dLCBbJ3JkY2EnLCBbMTA1NTFdXSwgWydyZGxkaGFyJywgWzEwNjAxXV0sIFsncmRxdW8nLCBbODIyMV1dLCBbJ3JkcXVvcicsIFs4MjIxXV0sIFsnQ2xvc2VDdXJseURvdWJsZVF1b3RlJywgWzgyMjFdXSwgWydyZHNoJywgWzg2MjddXSwgWydyZWFsJywgWzg0NzZdXSwgWydyZWFsaW5lJywgWzg0NzVdXSwgWydyZWFscGFydCcsIFs4NDc2XV0sIFsncmVhbHMnLCBbODQ3N11dLCBbJ1JlJywgWzg0NzZdXSwgWydyZWN0JywgWzk2NDVdXSwgWydyZWcnLCBbMTc0XV0sIFsnUkVHJywgWzE3NF1dLCBbJ1JldmVyc2VFbGVtZW50JywgWzg3MTVdXSwgWydSZXZlcnNlRXF1aWxpYnJpdW0nLCBbODY1MV1dLCBbJ1JldmVyc2VVcEVxdWlsaWJyaXVtJywgWzEwNjA3XV0sIFsncmZpc2h0JywgWzEwNjIxXV0sIFsncmZsb29yJywgWzg5NzFdXSwgWydyZnInLCBbMTIwMTExXV0sIFsnUmZyJywgWzg0NzZdXSwgWydySGFyJywgWzEwNTk2XV0sIFsncmhhcmQnLCBbODY0MV1dLCBbJ3JoYXJ1JywgWzg2NDBdXSwgWydyaGFydWwnLCBbMTA2MDRdXSwgWydSaG8nLCBbOTI5XV0sIFsncmhvJywgWzk2MV1dLCBbJ3Job3YnLCBbMTAwOV1dLCBbJ1JpZ2h0QW5nbGVCcmFja2V0JywgWzEwMjE3XV0sIFsnUmlnaHRBcnJvd0JhcicsIFs4Njc3XV0sIFsncmlnaHRhcnJvdycsIFs4NTk0XV0sIFsnUmlnaHRBcnJvdycsIFs4NTk0XV0sIFsnUmlnaHRhcnJvdycsIFs4NjU4XV0sIFsnUmlnaHRBcnJvd0xlZnRBcnJvdycsIFs4NjQ0XV0sIFsncmlnaHRhcnJvd3RhaWwnLCBbODYxMV1dLCBbJ1JpZ2h0Q2VpbGluZycsIFs4OTY5XV0sIFsnUmlnaHREb3VibGVCcmFja2V0JywgWzEwMjE1XV0sIFsnUmlnaHREb3duVGVlVmVjdG9yJywgWzEwNTg5XV0sIFsnUmlnaHREb3duVmVjdG9yQmFyJywgWzEwNTgxXV0sIFsnUmlnaHREb3duVmVjdG9yJywgWzg2NDJdXSwgWydSaWdodEZsb29yJywgWzg5NzFdXSwgWydyaWdodGhhcnBvb25kb3duJywgWzg2NDFdXSwgWydyaWdodGhhcnBvb251cCcsIFs4NjQwXV0sIFsncmlnaHRsZWZ0YXJyb3dzJywgWzg2NDRdXSwgWydyaWdodGxlZnRoYXJwb29ucycsIFs4NjUyXV0sIFsncmlnaHRyaWdodGFycm93cycsIFs4NjQ5XV0sIFsncmlnaHRzcXVpZ2Fycm93JywgWzg2MDVdXSwgWydSaWdodFRlZUFycm93JywgWzg2MTRdXSwgWydSaWdodFRlZScsIFs4ODY2XV0sIFsnUmlnaHRUZWVWZWN0b3InLCBbMTA1ODddXSwgWydyaWdodHRocmVldGltZXMnLCBbODkwOF1dLCBbJ1JpZ2h0VHJpYW5nbGVCYXInLCBbMTA3MDRdXSwgWydSaWdodFRyaWFuZ2xlJywgWzg4ODNdXSwgWydSaWdodFRyaWFuZ2xlRXF1YWwnLCBbODg4NV1dLCBbJ1JpZ2h0VXBEb3duVmVjdG9yJywgWzEwNTc1XV0sIFsnUmlnaHRVcFRlZVZlY3RvcicsIFsxMDU4OF1dLCBbJ1JpZ2h0VXBWZWN0b3JCYXInLCBbMTA1ODBdXSwgWydSaWdodFVwVmVjdG9yJywgWzg2MzhdXSwgWydSaWdodFZlY3RvckJhcicsIFsxMDU3OV1dLCBbJ1JpZ2h0VmVjdG9yJywgWzg2NDBdXSwgWydyaW5nJywgWzczMF1dLCBbJ3Jpc2luZ2RvdHNlcScsIFs4Nzg3XV0sIFsncmxhcnInLCBbODY0NF1dLCBbJ3JsaGFyJywgWzg2NTJdXSwgWydybG0nLCBbODIwN11dLCBbJ3Jtb3VzdGFjaGUnLCBbOTEzN11dLCBbJ3Jtb3VzdCcsIFs5MTM3XV0sIFsncm5taWQnLCBbMTA5OTBdXSwgWydyb2FuZycsIFsxMDIyMV1dLCBbJ3JvYXJyJywgWzg3MDJdXSwgWydyb2JyaycsIFsxMDIxNV1dLCBbJ3JvcGFyJywgWzEwNjMwXV0sIFsncm9wZicsIFsxMjAxNjNdXSwgWydSb3BmJywgWzg0NzddXSwgWydyb3BsdXMnLCBbMTA3OThdXSwgWydyb3RpbWVzJywgWzEwODA1XV0sIFsnUm91bmRJbXBsaWVzJywgWzEwNjA4XV0sIFsncnBhcicsIFs0MV1dLCBbJ3JwYXJndCcsIFsxMDY0NF1dLCBbJ3JwcG9saW50JywgWzEwNzcwXV0sIFsncnJhcnInLCBbODY0OV1dLCBbJ1JyaWdodGFycm93JywgWzg2NjddXSwgWydyc2FxdW8nLCBbODI1MF1dLCBbJ3JzY3InLCBbMTIwMDA3XV0sIFsnUnNjcicsIFs4NDc1XV0sIFsncnNoJywgWzg2MjVdXSwgWydSc2gnLCBbODYyNV1dLCBbJ3JzcWInLCBbOTNdXSwgWydyc3F1bycsIFs4MjE3XV0sIFsncnNxdW9yJywgWzgyMTddXSwgWydDbG9zZUN1cmx5UXVvdGUnLCBbODIxN11dLCBbJ3J0aHJlZScsIFs4OTA4XV0sIFsncnRpbWVzJywgWzg5MDZdXSwgWydydHJpJywgWzk2NTddXSwgWydydHJpZScsIFs4ODg1XV0sIFsncnRyaWYnLCBbOTY1Nl1dLCBbJ3J0cmlsdHJpJywgWzEwNzAyXV0sIFsnUnVsZURlbGF5ZWQnLCBbMTA3NDBdXSwgWydydWx1aGFyJywgWzEwNjAwXV0sIFsncngnLCBbODQ3OF1dLCBbJ1NhY3V0ZScsIFszNDZdXSwgWydzYWN1dGUnLCBbMzQ3XV0sIFsnc2JxdW8nLCBbODIxOF1dLCBbJ3NjYXAnLCBbMTA5MzZdXSwgWydTY2Fyb24nLCBbMzUyXV0sIFsnc2Nhcm9uJywgWzM1M11dLCBbJ1NjJywgWzEwOTQwXV0sIFsnc2MnLCBbODgyN11dLCBbJ3NjY3VlJywgWzg4MjldXSwgWydzY2UnLCBbMTA5MjhdXSwgWydzY0UnLCBbMTA5MzJdXSwgWydTY2VkaWwnLCBbMzUwXV0sIFsnc2NlZGlsJywgWzM1MV1dLCBbJ1NjaXJjJywgWzM0OF1dLCBbJ3NjaXJjJywgWzM0OV1dLCBbJ3NjbmFwJywgWzEwOTM4XV0sIFsnc2NuRScsIFsxMDkzNF1dLCBbJ3NjbnNpbScsIFs4OTM3XV0sIFsnc2Nwb2xpbnQnLCBbMTA3NzFdXSwgWydzY3NpbScsIFs4ODMxXV0sIFsnU2N5JywgWzEwNTddXSwgWydzY3knLCBbMTA4OV1dLCBbJ3Nkb3RiJywgWzg4NjVdXSwgWydzZG90JywgWzg5MDFdXSwgWydzZG90ZScsIFsxMDg1NF1dLCBbJ3NlYXJoaycsIFsxMDUzM11dLCBbJ3NlYXJyJywgWzg2MDBdXSwgWydzZUFycicsIFs4NjY0XV0sIFsnc2VhcnJvdycsIFs4NjAwXV0sIFsnc2VjdCcsIFsxNjddXSwgWydzZW1pJywgWzU5XV0sIFsnc2Vzd2FyJywgWzEwNTM3XV0sIFsnc2V0bWludXMnLCBbODcyNl1dLCBbJ3NldG1uJywgWzg3MjZdXSwgWydzZXh0JywgWzEwMDM4XV0sIFsnU2ZyJywgWzEyMDA4Nl1dLCBbJ3NmcicsIFsxMjAxMTJdXSwgWydzZnJvd24nLCBbODk5NF1dLCBbJ3NoYXJwJywgWzk4MzldXSwgWydTSENIY3knLCBbMTA2NV1dLCBbJ3NoY2hjeScsIFsxMDk3XV0sIFsnU0hjeScsIFsxMDY0XV0sIFsnc2hjeScsIFsxMDk2XV0sIFsnU2hvcnREb3duQXJyb3cnLCBbODU5NV1dLCBbJ1Nob3J0TGVmdEFycm93JywgWzg1OTJdXSwgWydzaG9ydG1pZCcsIFs4NzM5XV0sIFsnc2hvcnRwYXJhbGxlbCcsIFs4NzQxXV0sIFsnU2hvcnRSaWdodEFycm93JywgWzg1OTRdXSwgWydTaG9ydFVwQXJyb3cnLCBbODU5M11dLCBbJ3NoeScsIFsxNzNdXSwgWydTaWdtYScsIFs5MzFdXSwgWydzaWdtYScsIFs5NjNdXSwgWydzaWdtYWYnLCBbOTYyXV0sIFsnc2lnbWF2JywgWzk2Ml1dLCBbJ3NpbScsIFs4NzY0XV0sIFsnc2ltZG90JywgWzEwODU4XV0sIFsnc2ltZScsIFs4NzcxXV0sIFsnc2ltZXEnLCBbODc3MV1dLCBbJ3NpbWcnLCBbMTA5MTBdXSwgWydzaW1nRScsIFsxMDkxMl1dLCBbJ3NpbWwnLCBbMTA5MDldXSwgWydzaW1sRScsIFsxMDkxMV1dLCBbJ3NpbW5lJywgWzg3NzRdXSwgWydzaW1wbHVzJywgWzEwNzg4XV0sIFsnc2ltcmFycicsIFsxMDYxMF1dLCBbJ3NsYXJyJywgWzg1OTJdXSwgWydTbWFsbENpcmNsZScsIFs4NzI4XV0sIFsnc21hbGxzZXRtaW51cycsIFs4NzI2XV0sIFsnc21hc2hwJywgWzEwODAzXV0sIFsnc21lcGFyc2wnLCBbMTA3MjRdXSwgWydzbWlkJywgWzg3MzldXSwgWydzbWlsZScsIFs4OTk1XV0sIFsnc210JywgWzEwOTIyXV0sIFsnc210ZScsIFsxMDkyNF1dLCBbJ3NtdGVzJywgWzEwOTI0LCA2NTAyNF1dLCBbJ1NPRlRjeScsIFsxMDY4XV0sIFsnc29mdGN5JywgWzExMDBdXSwgWydzb2xiYXInLCBbOTAyM11dLCBbJ3NvbGInLCBbMTA2OTJdXSwgWydzb2wnLCBbNDddXSwgWydTb3BmJywgWzEyMDEzOF1dLCBbJ3NvcGYnLCBbMTIwMTY0XV0sIFsnc3BhZGVzJywgWzk4MjRdXSwgWydzcGFkZXN1aXQnLCBbOTgyNF1dLCBbJ3NwYXInLCBbODc0MV1dLCBbJ3NxY2FwJywgWzg4NTFdXSwgWydzcWNhcHMnLCBbODg1MSwgNjUwMjRdXSwgWydzcWN1cCcsIFs4ODUyXV0sIFsnc3FjdXBzJywgWzg4NTIsIDY1MDI0XV0sIFsnU3FydCcsIFs4NzMwXV0sIFsnc3FzdWInLCBbODg0N11dLCBbJ3Nxc3ViZScsIFs4ODQ5XV0sIFsnc3FzdWJzZXQnLCBbODg0N11dLCBbJ3Nxc3Vic2V0ZXEnLCBbODg0OV1dLCBbJ3Nxc3VwJywgWzg4NDhdXSwgWydzcXN1cGUnLCBbODg1MF1dLCBbJ3Nxc3Vwc2V0JywgWzg4NDhdXSwgWydzcXN1cHNldGVxJywgWzg4NTBdXSwgWydzcXVhcmUnLCBbOTYzM11dLCBbJ1NxdWFyZScsIFs5NjMzXV0sIFsnU3F1YXJlSW50ZXJzZWN0aW9uJywgWzg4NTFdXSwgWydTcXVhcmVTdWJzZXQnLCBbODg0N11dLCBbJ1NxdWFyZVN1YnNldEVxdWFsJywgWzg4NDldXSwgWydTcXVhcmVTdXBlcnNldCcsIFs4ODQ4XV0sIFsnU3F1YXJlU3VwZXJzZXRFcXVhbCcsIFs4ODUwXV0sIFsnU3F1YXJlVW5pb24nLCBbODg1Ml1dLCBbJ3NxdWFyZicsIFs5NjQyXV0sIFsnc3F1JywgWzk2MzNdXSwgWydzcXVmJywgWzk2NDJdXSwgWydzcmFycicsIFs4NTk0XV0sIFsnU3NjcicsIFsxMTk5ODJdXSwgWydzc2NyJywgWzEyMDAwOF1dLCBbJ3NzZXRtbicsIFs4NzI2XV0sIFsnc3NtaWxlJywgWzg5OTVdXSwgWydzc3RhcmYnLCBbODkwMl1dLCBbJ1N0YXInLCBbODkwMl1dLCBbJ3N0YXInLCBbOTczNF1dLCBbJ3N0YXJmJywgWzk3MzNdXSwgWydzdHJhaWdodGVwc2lsb24nLCBbMTAxM11dLCBbJ3N0cmFpZ2h0cGhpJywgWzk4MV1dLCBbJ3N0cm5zJywgWzE3NV1dLCBbJ3N1YicsIFs4ODM0XV0sIFsnU3ViJywgWzg5MTJdXSwgWydzdWJkb3QnLCBbMTA5NDFdXSwgWydzdWJFJywgWzEwOTQ5XV0sIFsnc3ViZScsIFs4ODM4XV0sIFsnc3ViZWRvdCcsIFsxMDk0N11dLCBbJ3N1Ym11bHQnLCBbMTA5NDVdXSwgWydzdWJuRScsIFsxMDk1NV1dLCBbJ3N1Ym5lJywgWzg4NDJdXSwgWydzdWJwbHVzJywgWzEwOTQzXV0sIFsnc3VicmFycicsIFsxMDYxN11dLCBbJ3N1YnNldCcsIFs4ODM0XV0sIFsnU3Vic2V0JywgWzg5MTJdXSwgWydzdWJzZXRlcScsIFs4ODM4XV0sIFsnc3Vic2V0ZXFxJywgWzEwOTQ5XV0sIFsnU3Vic2V0RXF1YWwnLCBbODgzOF1dLCBbJ3N1YnNldG5lcScsIFs4ODQyXV0sIFsnc3Vic2V0bmVxcScsIFsxMDk1NV1dLCBbJ3N1YnNpbScsIFsxMDk1MV1dLCBbJ3N1YnN1YicsIFsxMDk2NV1dLCBbJ3N1YnN1cCcsIFsxMDk2M11dLCBbJ3N1Y2NhcHByb3gnLCBbMTA5MzZdXSwgWydzdWNjJywgWzg4MjddXSwgWydzdWNjY3VybHllcScsIFs4ODI5XV0sIFsnU3VjY2VlZHMnLCBbODgyN11dLCBbJ1N1Y2NlZWRzRXF1YWwnLCBbMTA5MjhdXSwgWydTdWNjZWVkc1NsYW50RXF1YWwnLCBbODgyOV1dLCBbJ1N1Y2NlZWRzVGlsZGUnLCBbODgzMV1dLCBbJ3N1Y2NlcScsIFsxMDkyOF1dLCBbJ3N1Y2NuYXBwcm94JywgWzEwOTM4XV0sIFsnc3VjY25lcXEnLCBbMTA5MzRdXSwgWydzdWNjbnNpbScsIFs4OTM3XV0sIFsnc3VjY3NpbScsIFs4ODMxXV0sIFsnU3VjaFRoYXQnLCBbODcxNV1dLCBbJ3N1bScsIFs4NzIxXV0sIFsnU3VtJywgWzg3MjFdXSwgWydzdW5nJywgWzk4MzRdXSwgWydzdXAxJywgWzE4NV1dLCBbJ3N1cDInLCBbMTc4XV0sIFsnc3VwMycsIFsxNzldXSwgWydzdXAnLCBbODgzNV1dLCBbJ1N1cCcsIFs4OTEzXV0sIFsnc3VwZG90JywgWzEwOTQyXV0sIFsnc3VwZHN1YicsIFsxMDk2OF1dLCBbJ3N1cEUnLCBbMTA5NTBdXSwgWydzdXBlJywgWzg4MzldXSwgWydzdXBlZG90JywgWzEwOTQ4XV0sIFsnU3VwZXJzZXQnLCBbODgzNV1dLCBbJ1N1cGVyc2V0RXF1YWwnLCBbODgzOV1dLCBbJ3N1cGhzb2wnLCBbMTAxODVdXSwgWydzdXBoc3ViJywgWzEwOTY3XV0sIFsnc3VwbGFycicsIFsxMDYxOV1dLCBbJ3N1cG11bHQnLCBbMTA5NDZdXSwgWydzdXBuRScsIFsxMDk1Nl1dLCBbJ3N1cG5lJywgWzg4NDNdXSwgWydzdXBwbHVzJywgWzEwOTQ0XV0sIFsnc3Vwc2V0JywgWzg4MzVdXSwgWydTdXBzZXQnLCBbODkxM11dLCBbJ3N1cHNldGVxJywgWzg4MzldXSwgWydzdXBzZXRlcXEnLCBbMTA5NTBdXSwgWydzdXBzZXRuZXEnLCBbODg0M11dLCBbJ3N1cHNldG5lcXEnLCBbMTA5NTZdXSwgWydzdXBzaW0nLCBbMTA5NTJdXSwgWydzdXBzdWInLCBbMTA5NjRdXSwgWydzdXBzdXAnLCBbMTA5NjZdXSwgWydzd2FyaGsnLCBbMTA1MzRdXSwgWydzd2FycicsIFs4NjAxXV0sIFsnc3dBcnInLCBbODY2NV1dLCBbJ3N3YXJyb3cnLCBbODYwMV1dLCBbJ3N3bndhcicsIFsxMDUzOF1dLCBbJ3N6bGlnJywgWzIyM11dLCBbJ1RhYicsIFs5XV0sIFsndGFyZ2V0JywgWzg5ODJdXSwgWydUYXUnLCBbOTMyXV0sIFsndGF1JywgWzk2NF1dLCBbJ3RicmsnLCBbOTE0MF1dLCBbJ1RjYXJvbicsIFszNTZdXSwgWyd0Y2Fyb24nLCBbMzU3XV0sIFsnVGNlZGlsJywgWzM1NF1dLCBbJ3RjZWRpbCcsIFszNTVdXSwgWydUY3knLCBbMTA1OF1dLCBbJ3RjeScsIFsxMDkwXV0sIFsndGRvdCcsIFs4NDExXV0sIFsndGVscmVjJywgWzg5ODFdXSwgWydUZnInLCBbMTIwMDg3XV0sIFsndGZyJywgWzEyMDExM11dLCBbJ3RoZXJlNCcsIFs4NzU2XV0sIFsndGhlcmVmb3JlJywgWzg3NTZdXSwgWydUaGVyZWZvcmUnLCBbODc1Nl1dLCBbJ1RoZXRhJywgWzkyMF1dLCBbJ3RoZXRhJywgWzk1Ml1dLCBbJ3RoZXRhc3ltJywgWzk3N11dLCBbJ3RoZXRhdicsIFs5NzddXSwgWyd0aGlja2FwcHJveCcsIFs4Nzc2XV0sIFsndGhpY2tzaW0nLCBbODc2NF1dLCBbJ1RoaWNrU3BhY2UnLCBbODI4NywgODIwMl1dLCBbJ1RoaW5TcGFjZScsIFs4MjAxXV0sIFsndGhpbnNwJywgWzgyMDFdXSwgWyd0aGthcCcsIFs4Nzc2XV0sIFsndGhrc2ltJywgWzg3NjRdXSwgWydUSE9STicsIFsyMjJdXSwgWyd0aG9ybicsIFsyNTRdXSwgWyd0aWxkZScsIFs3MzJdXSwgWydUaWxkZScsIFs4NzY0XV0sIFsnVGlsZGVFcXVhbCcsIFs4NzcxXV0sIFsnVGlsZGVGdWxsRXF1YWwnLCBbODc3M11dLCBbJ1RpbGRlVGlsZGUnLCBbODc3Nl1dLCBbJ3RpbWVzYmFyJywgWzEwODAxXV0sIFsndGltZXNiJywgWzg4NjRdXSwgWyd0aW1lcycsIFsyMTVdXSwgWyd0aW1lc2QnLCBbMTA4MDBdXSwgWyd0aW50JywgWzg3NDldXSwgWyd0b2VhJywgWzEwNTM2XV0sIFsndG9wYm90JywgWzkwMTRdXSwgWyd0b3BjaXInLCBbMTA5OTNdXSwgWyd0b3AnLCBbODg2OF1dLCBbJ1RvcGYnLCBbMTIwMTM5XV0sIFsndG9wZicsIFsxMjAxNjVdXSwgWyd0b3Bmb3JrJywgWzEwOTcwXV0sIFsndG9zYScsIFsxMDUzN11dLCBbJ3RwcmltZScsIFs4MjQ0XV0sIFsndHJhZGUnLCBbODQ4Ml1dLCBbJ1RSQURFJywgWzg0ODJdXSwgWyd0cmlhbmdsZScsIFs5NjUzXV0sIFsndHJpYW5nbGVkb3duJywgWzk2NjNdXSwgWyd0cmlhbmdsZWxlZnQnLCBbOTY2N11dLCBbJ3RyaWFuZ2xlbGVmdGVxJywgWzg4ODRdXSwgWyd0cmlhbmdsZXEnLCBbODc5Nl1dLCBbJ3RyaWFuZ2xlcmlnaHQnLCBbOTY1N11dLCBbJ3RyaWFuZ2xlcmlnaHRlcScsIFs4ODg1XV0sIFsndHJpZG90JywgWzk3MDhdXSwgWyd0cmllJywgWzg3OTZdXSwgWyd0cmltaW51cycsIFsxMDgxMF1dLCBbJ1RyaXBsZURvdCcsIFs4NDExXV0sIFsndHJpcGx1cycsIFsxMDgwOV1dLCBbJ3RyaXNiJywgWzEwNzAxXV0sIFsndHJpdGltZScsIFsxMDgxMV1dLCBbJ3RycGV6aXVtJywgWzkxODZdXSwgWydUc2NyJywgWzExOTk4M11dLCBbJ3RzY3InLCBbMTIwMDA5XV0sIFsnVFNjeScsIFsxMDYyXV0sIFsndHNjeScsIFsxMDk0XV0sIFsnVFNIY3knLCBbMTAzNV1dLCBbJ3RzaGN5JywgWzExMTVdXSwgWydUc3Ryb2snLCBbMzU4XV0sIFsndHN0cm9rJywgWzM1OV1dLCBbJ3R3aXh0JywgWzg4MTJdXSwgWyd0d29oZWFkbGVmdGFycm93JywgWzg2MDZdXSwgWyd0d29oZWFkcmlnaHRhcnJvdycsIFs4NjA4XV0sIFsnVWFjdXRlJywgWzIxOF1dLCBbJ3VhY3V0ZScsIFsyNTBdXSwgWyd1YXJyJywgWzg1OTNdXSwgWydVYXJyJywgWzg2MDddXSwgWyd1QXJyJywgWzg2NTddXSwgWydVYXJyb2NpcicsIFsxMDU2OV1dLCBbJ1VicmN5JywgWzEwMzhdXSwgWyd1YnJjeScsIFsxMTE4XV0sIFsnVWJyZXZlJywgWzM2NF1dLCBbJ3VicmV2ZScsIFszNjVdXSwgWydVY2lyYycsIFsyMTldXSwgWyd1Y2lyYycsIFsyNTFdXSwgWydVY3knLCBbMTA1OV1dLCBbJ3VjeScsIFsxMDkxXV0sIFsndWRhcnInLCBbODY0NV1dLCBbJ1VkYmxhYycsIFszNjhdXSwgWyd1ZGJsYWMnLCBbMzY5XV0sIFsndWRoYXInLCBbMTA2MDZdXSwgWyd1ZmlzaHQnLCBbMTA2MjJdXSwgWydVZnInLCBbMTIwMDg4XV0sIFsndWZyJywgWzEyMDExNF1dLCBbJ1VncmF2ZScsIFsyMTddXSwgWyd1Z3JhdmUnLCBbMjQ5XV0sIFsndUhhcicsIFsxMDU5NV1dLCBbJ3VoYXJsJywgWzg2MzldXSwgWyd1aGFycicsIFs4NjM4XV0sIFsndWhibGsnLCBbOTYwMF1dLCBbJ3VsY29ybicsIFs4OTg4XV0sIFsndWxjb3JuZXInLCBbODk4OF1dLCBbJ3VsY3JvcCcsIFs4OTc1XV0sIFsndWx0cmknLCBbOTcyMF1dLCBbJ1VtYWNyJywgWzM2Ml1dLCBbJ3VtYWNyJywgWzM2M11dLCBbJ3VtbCcsIFsxNjhdXSwgWydVbmRlckJhcicsIFs5NV1dLCBbJ1VuZGVyQnJhY2UnLCBbOTE4M11dLCBbJ1VuZGVyQnJhY2tldCcsIFs5MTQxXV0sIFsnVW5kZXJQYXJlbnRoZXNpcycsIFs5MTgxXV0sIFsnVW5pb24nLCBbODg5OV1dLCBbJ1VuaW9uUGx1cycsIFs4ODQ2XV0sIFsnVW9nb24nLCBbMzcwXV0sIFsndW9nb24nLCBbMzcxXV0sIFsnVW9wZicsIFsxMjAxNDBdXSwgWyd1b3BmJywgWzEyMDE2Nl1dLCBbJ1VwQXJyb3dCYXInLCBbMTA1MTRdXSwgWyd1cGFycm93JywgWzg1OTNdXSwgWydVcEFycm93JywgWzg1OTNdXSwgWydVcGFycm93JywgWzg2NTddXSwgWydVcEFycm93RG93bkFycm93JywgWzg2NDVdXSwgWyd1cGRvd25hcnJvdycsIFs4NTk3XV0sIFsnVXBEb3duQXJyb3cnLCBbODU5N11dLCBbJ1VwZG93bmFycm93JywgWzg2NjFdXSwgWydVcEVxdWlsaWJyaXVtJywgWzEwNjA2XV0sIFsndXBoYXJwb29ubGVmdCcsIFs4NjM5XV0sIFsndXBoYXJwb29ucmlnaHQnLCBbODYzOF1dLCBbJ3VwbHVzJywgWzg4NDZdXSwgWydVcHBlckxlZnRBcnJvdycsIFs4NTk4XV0sIFsnVXBwZXJSaWdodEFycm93JywgWzg1OTldXSwgWyd1cHNpJywgWzk2NV1dLCBbJ1Vwc2knLCBbOTc4XV0sIFsndXBzaWgnLCBbOTc4XV0sIFsnVXBzaWxvbicsIFs5MzNdXSwgWyd1cHNpbG9uJywgWzk2NV1dLCBbJ1VwVGVlQXJyb3cnLCBbODYxM11dLCBbJ1VwVGVlJywgWzg4NjldXSwgWyd1cHVwYXJyb3dzJywgWzg2NDhdXSwgWyd1cmNvcm4nLCBbODk4OV1dLCBbJ3VyY29ybmVyJywgWzg5ODldXSwgWyd1cmNyb3AnLCBbODk3NF1dLCBbJ1VyaW5nJywgWzM2Nl1dLCBbJ3VyaW5nJywgWzM2N11dLCBbJ3VydHJpJywgWzk3MjFdXSwgWydVc2NyJywgWzExOTk4NF1dLCBbJ3VzY3InLCBbMTIwMDEwXV0sIFsndXRkb3QnLCBbODk0NF1dLCBbJ1V0aWxkZScsIFszNjBdXSwgWyd1dGlsZGUnLCBbMzYxXV0sIFsndXRyaScsIFs5NjUzXV0sIFsndXRyaWYnLCBbOTY1Ml1dLCBbJ3V1YXJyJywgWzg2NDhdXSwgWydVdW1sJywgWzIyMF1dLCBbJ3V1bWwnLCBbMjUyXV0sIFsndXdhbmdsZScsIFsxMDY2M11dLCBbJ3ZhbmdydCcsIFsxMDY1Ml1dLCBbJ3ZhcmVwc2lsb24nLCBbMTAxM11dLCBbJ3ZhcmthcHBhJywgWzEwMDhdXSwgWyd2YXJub3RoaW5nJywgWzg3MDldXSwgWyd2YXJwaGknLCBbOTgxXV0sIFsndmFycGknLCBbOTgyXV0sIFsndmFycHJvcHRvJywgWzg3MzNdXSwgWyd2YXJyJywgWzg1OTddXSwgWyd2QXJyJywgWzg2NjFdXSwgWyd2YXJyaG8nLCBbMTAwOV1dLCBbJ3ZhcnNpZ21hJywgWzk2Ml1dLCBbJ3ZhcnN1YnNldG5lcScsIFs4ODQyLCA2NTAyNF1dLCBbJ3ZhcnN1YnNldG5lcXEnLCBbMTA5NTUsIDY1MDI0XV0sIFsndmFyc3Vwc2V0bmVxJywgWzg4NDMsIDY1MDI0XV0sIFsndmFyc3Vwc2V0bmVxcScsIFsxMDk1NiwgNjUwMjRdXSwgWyd2YXJ0aGV0YScsIFs5NzddXSwgWyd2YXJ0cmlhbmdsZWxlZnQnLCBbODg4Ml1dLCBbJ3ZhcnRyaWFuZ2xlcmlnaHQnLCBbODg4M11dLCBbJ3ZCYXInLCBbMTA5ODRdXSwgWydWYmFyJywgWzEwOTg3XV0sIFsndkJhcnYnLCBbMTA5ODVdXSwgWydWY3knLCBbMTA0Ml1dLCBbJ3ZjeScsIFsxMDc0XV0sIFsndmRhc2gnLCBbODg2Nl1dLCBbJ3ZEYXNoJywgWzg4NzJdXSwgWydWZGFzaCcsIFs4ODczXV0sIFsnVkRhc2gnLCBbODg3NV1dLCBbJ1ZkYXNobCcsIFsxMDk4Ml1dLCBbJ3ZlZWJhcicsIFs4ODkxXV0sIFsndmVlJywgWzg3NDRdXSwgWydWZWUnLCBbODg5N11dLCBbJ3ZlZWVxJywgWzg3OTRdXSwgWyd2ZWxsaXAnLCBbODk0Ml1dLCBbJ3ZlcmJhcicsIFsxMjRdXSwgWydWZXJiYXInLCBbODIxNF1dLCBbJ3ZlcnQnLCBbMTI0XV0sIFsnVmVydCcsIFs4MjE0XV0sIFsnVmVydGljYWxCYXInLCBbODczOV1dLCBbJ1ZlcnRpY2FsTGluZScsIFsxMjRdXSwgWydWZXJ0aWNhbFNlcGFyYXRvcicsIFsxMDA3Ml1dLCBbJ1ZlcnRpY2FsVGlsZGUnLCBbODc2OF1dLCBbJ1ZlcnlUaGluU3BhY2UnLCBbODIwMl1dLCBbJ1ZmcicsIFsxMjAwODldXSwgWyd2ZnInLCBbMTIwMTE1XV0sIFsndmx0cmknLCBbODg4Ml1dLCBbJ3Zuc3ViJywgWzg4MzQsIDg0MDJdXSwgWyd2bnN1cCcsIFs4ODM1LCA4NDAyXV0sIFsnVm9wZicsIFsxMjAxNDFdXSwgWyd2b3BmJywgWzEyMDE2N11dLCBbJ3Zwcm9wJywgWzg3MzNdXSwgWyd2cnRyaScsIFs4ODgzXV0sIFsnVnNjcicsIFsxMTk5ODVdXSwgWyd2c2NyJywgWzEyMDAxMV1dLCBbJ3ZzdWJuRScsIFsxMDk1NSwgNjUwMjRdXSwgWyd2c3VibmUnLCBbODg0MiwgNjUwMjRdXSwgWyd2c3VwbkUnLCBbMTA5NTYsIDY1MDI0XV0sIFsndnN1cG5lJywgWzg4NDMsIDY1MDI0XV0sIFsnVnZkYXNoJywgWzg4NzRdXSwgWyd2emlnemFnJywgWzEwNjUwXV0sIFsnV2NpcmMnLCBbMzcyXV0sIFsnd2NpcmMnLCBbMzczXV0sIFsnd2VkYmFyJywgWzEwODQ3XV0sIFsnd2VkZ2UnLCBbODc0M11dLCBbJ1dlZGdlJywgWzg4OTZdXSwgWyd3ZWRnZXEnLCBbODc5M11dLCBbJ3dlaWVycCcsIFs4NDcyXV0sIFsnV2ZyJywgWzEyMDA5MF1dLCBbJ3dmcicsIFsxMjAxMTZdXSwgWydXb3BmJywgWzEyMDE0Ml1dLCBbJ3dvcGYnLCBbMTIwMTY4XV0sIFsnd3AnLCBbODQ3Ml1dLCBbJ3dyJywgWzg3NjhdXSwgWyd3cmVhdGgnLCBbODc2OF1dLCBbJ1dzY3InLCBbMTE5OTg2XV0sIFsnd3NjcicsIFsxMjAwMTJdXSwgWyd4Y2FwJywgWzg4OThdXSwgWyd4Y2lyYycsIFs5NzExXV0sIFsneGN1cCcsIFs4ODk5XV0sIFsneGR0cmknLCBbOTY2MV1dLCBbJ1hmcicsIFsxMjAwOTFdXSwgWyd4ZnInLCBbMTIwMTE3XV0sIFsneGhhcnInLCBbMTAyMzFdXSwgWyd4aEFycicsIFsxMDIzNF1dLCBbJ1hpJywgWzkyNl1dLCBbJ3hpJywgWzk1OF1dLCBbJ3hsYXJyJywgWzEwMjI5XV0sIFsneGxBcnInLCBbMTAyMzJdXSwgWyd4bWFwJywgWzEwMjM2XV0sIFsneG5pcycsIFs4OTU1XV0sIFsneG9kb3QnLCBbMTA3NTJdXSwgWydYb3BmJywgWzEyMDE0M11dLCBbJ3hvcGYnLCBbMTIwMTY5XV0sIFsneG9wbHVzJywgWzEwNzUzXV0sIFsneG90aW1lJywgWzEwNzU0XV0sIFsneHJhcnInLCBbMTAyMzBdXSwgWyd4ckFycicsIFsxMDIzM11dLCBbJ1hzY3InLCBbMTE5OTg3XV0sIFsneHNjcicsIFsxMjAwMTNdXSwgWyd4c3FjdXAnLCBbMTA3NThdXSwgWyd4dXBsdXMnLCBbMTA3NTZdXSwgWyd4dXRyaScsIFs5NjUxXV0sIFsneHZlZScsIFs4ODk3XV0sIFsneHdlZGdlJywgWzg4OTZdXSwgWydZYWN1dGUnLCBbMjIxXV0sIFsneWFjdXRlJywgWzI1M11dLCBbJ1lBY3knLCBbMTA3MV1dLCBbJ3lhY3knLCBbMTEwM11dLCBbJ1ljaXJjJywgWzM3NF1dLCBbJ3ljaXJjJywgWzM3NV1dLCBbJ1ljeScsIFsxMDY3XV0sIFsneWN5JywgWzEwOTldXSwgWyd5ZW4nLCBbMTY1XV0sIFsnWWZyJywgWzEyMDA5Ml1dLCBbJ3lmcicsIFsxMjAxMThdXSwgWydZSWN5JywgWzEwMzFdXSwgWyd5aWN5JywgWzExMTFdXSwgWydZb3BmJywgWzEyMDE0NF1dLCBbJ3lvcGYnLCBbMTIwMTcwXV0sIFsnWXNjcicsIFsxMTk5ODhdXSwgWyd5c2NyJywgWzEyMDAxNF1dLCBbJ1lVY3knLCBbMTA3MF1dLCBbJ3l1Y3knLCBbMTEwMl1dLCBbJ3l1bWwnLCBbMjU1XV0sIFsnWXVtbCcsIFszNzZdXSwgWydaYWN1dGUnLCBbMzc3XV0sIFsnemFjdXRlJywgWzM3OF1dLCBbJ1pjYXJvbicsIFszODFdXSwgWyd6Y2Fyb24nLCBbMzgyXV0sIFsnWmN5JywgWzEwNDddXSwgWyd6Y3knLCBbMTA3OV1dLCBbJ1pkb3QnLCBbMzc5XV0sIFsnemRvdCcsIFszODBdXSwgWyd6ZWV0cmYnLCBbODQ4OF1dLCBbJ1plcm9XaWR0aFNwYWNlJywgWzgyMDNdXSwgWydaZXRhJywgWzkxOF1dLCBbJ3pldGEnLCBbOTUwXV0sIFsnemZyJywgWzEyMDExOV1dLCBbJ1pmcicsIFs4NDg4XV0sIFsnWkhjeScsIFsxMDQ2XV0sIFsnemhjeScsIFsxMDc4XV0sIFsnemlncmFycicsIFs4NjY5XV0sIFsnem9wZicsIFsxMjAxNzFdXSwgWydab3BmJywgWzg0ODRdXSwgWydac2NyJywgWzExOTk4OV1dLCBbJ3pzY3InLCBbMTIwMDE1XV0sIFsnendqJywgWzgyMDVdXSwgWyd6d25qJywgWzgyMDRdXV07XG52YXIgYWxwaGFJbmRleCA9IHt9O1xudmFyIGNoYXJJbmRleCA9IHt9O1xuY3JlYXRlSW5kZXhlcyhhbHBoYUluZGV4LCBjaGFySW5kZXgpO1xudmFyIEh0bWw1RW50aXRpZXMgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gSHRtbDVFbnRpdGllcygpIHtcbiAgICB9XG4gICAgSHRtbDVFbnRpdGllcy5wcm90b3R5cGUuZGVjb2RlID0gZnVuY3Rpb24gKHN0cikge1xuICAgICAgICBpZiAoIXN0ciB8fCAhc3RyLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdHIucmVwbGFjZSgvJigjP1tcXHdcXGRdKyk7Py9nLCBmdW5jdGlvbiAocywgZW50aXR5KSB7XG4gICAgICAgICAgICB2YXIgY2hyO1xuICAgICAgICAgICAgaWYgKGVudGl0eS5jaGFyQXQoMCkgPT09IFwiI1wiKSB7XG4gICAgICAgICAgICAgICAgdmFyIGNvZGUgPSBlbnRpdHkuY2hhckF0KDEpID09PSAneCcgP1xuICAgICAgICAgICAgICAgICAgICBwYXJzZUludChlbnRpdHkuc3Vic3RyKDIpLnRvTG93ZXJDYXNlKCksIDE2KSA6XG4gICAgICAgICAgICAgICAgICAgIHBhcnNlSW50KGVudGl0eS5zdWJzdHIoMSkpO1xuICAgICAgICAgICAgICAgIGlmICghKGlzTmFOKGNvZGUpIHx8IGNvZGUgPCAtMzI3NjggfHwgY29kZSA+IDY1NTM1KSkge1xuICAgICAgICAgICAgICAgICAgICBjaHIgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGNvZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGNociA9IGFscGhhSW5kZXhbZW50aXR5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBjaHIgfHwgcztcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBIdG1sNUVudGl0aWVzLmRlY29kZSA9IGZ1bmN0aW9uIChzdHIpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBIdG1sNUVudGl0aWVzKCkuZGVjb2RlKHN0cik7XG4gICAgfTtcbiAgICBIdG1sNUVudGl0aWVzLnByb3RvdHlwZS5lbmNvZGUgPSBmdW5jdGlvbiAoc3RyKSB7XG4gICAgICAgIGlmICghc3RyIHx8ICFzdHIubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHN0ckxlbmd0aCA9IHN0ci5sZW5ndGg7XG4gICAgICAgIHZhciByZXN1bHQgPSAnJztcbiAgICAgICAgdmFyIGkgPSAwO1xuICAgICAgICB3aGlsZSAoaSA8IHN0ckxlbmd0aCkge1xuICAgICAgICAgICAgdmFyIGNoYXJJbmZvID0gY2hhckluZGV4W3N0ci5jaGFyQ29kZUF0KGkpXTtcbiAgICAgICAgICAgIGlmIChjaGFySW5mbykge1xuICAgICAgICAgICAgICAgIHZhciBhbHBoYSA9IGNoYXJJbmZvW3N0ci5jaGFyQ29kZUF0KGkgKyAxKV07XG4gICAgICAgICAgICAgICAgaWYgKGFscGhhKSB7XG4gICAgICAgICAgICAgICAgICAgIGkrKztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGFscGhhID0gY2hhckluZm9bJyddO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoYWxwaGEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IFwiJlwiICsgYWxwaGEgKyBcIjtcIjtcbiAgICAgICAgICAgICAgICAgICAgaSsrO1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXN1bHQgKz0gc3RyLmNoYXJBdChpKTtcbiAgICAgICAgICAgIGkrKztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH07XG4gICAgSHRtbDVFbnRpdGllcy5lbmNvZGUgPSBmdW5jdGlvbiAoc3RyKSB7XG4gICAgICAgIHJldHVybiBuZXcgSHRtbDVFbnRpdGllcygpLmVuY29kZShzdHIpO1xuICAgIH07XG4gICAgSHRtbDVFbnRpdGllcy5wcm90b3R5cGUuZW5jb2RlTm9uVVRGID0gZnVuY3Rpb24gKHN0cikge1xuICAgICAgICBpZiAoIXN0ciB8fCAhc3RyLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgICAgIHZhciBzdHJMZW5ndGggPSBzdHIubGVuZ3RoO1xuICAgICAgICB2YXIgcmVzdWx0ID0gJyc7XG4gICAgICAgIHZhciBpID0gMDtcbiAgICAgICAgd2hpbGUgKGkgPCBzdHJMZW5ndGgpIHtcbiAgICAgICAgICAgIHZhciBjID0gc3RyLmNoYXJDb2RlQXQoaSk7XG4gICAgICAgICAgICB2YXIgY2hhckluZm8gPSBjaGFySW5kZXhbY107XG4gICAgICAgICAgICBpZiAoY2hhckluZm8pIHtcbiAgICAgICAgICAgICAgICB2YXIgYWxwaGEgPSBjaGFySW5mb1tzdHIuY2hhckNvZGVBdChpICsgMSldO1xuICAgICAgICAgICAgICAgIGlmIChhbHBoYSkge1xuICAgICAgICAgICAgICAgICAgICBpKys7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBhbHBoYSA9IGNoYXJJbmZvWycnXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGFscGhhKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSBcIiZcIiArIGFscGhhICsgXCI7XCI7XG4gICAgICAgICAgICAgICAgICAgIGkrKztcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGMgPCAzMiB8fCBjID4gMTI2KSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0ICs9ICcmIycgKyBjICsgJzsnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0ICs9IHN0ci5jaGFyQXQoaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpKys7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xuICAgIEh0bWw1RW50aXRpZXMuZW5jb2RlTm9uVVRGID0gZnVuY3Rpb24gKHN0cikge1xuICAgICAgICByZXR1cm4gbmV3IEh0bWw1RW50aXRpZXMoKS5lbmNvZGVOb25VVEYoc3RyKTtcbiAgICB9O1xuICAgIEh0bWw1RW50aXRpZXMucHJvdG90eXBlLmVuY29kZU5vbkFTQ0lJID0gZnVuY3Rpb24gKHN0cikge1xuICAgICAgICBpZiAoIXN0ciB8fCAhc3RyLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgICAgIHZhciBzdHJMZW5ndGggPSBzdHIubGVuZ3RoO1xuICAgICAgICB2YXIgcmVzdWx0ID0gJyc7XG4gICAgICAgIHZhciBpID0gMDtcbiAgICAgICAgd2hpbGUgKGkgPCBzdHJMZW5ndGgpIHtcbiAgICAgICAgICAgIHZhciBjID0gc3RyLmNoYXJDb2RlQXQoaSk7XG4gICAgICAgICAgICBpZiAoYyA8PSAyNTUpIHtcbiAgICAgICAgICAgICAgICByZXN1bHQgKz0gc3RyW2krK107XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXN1bHQgKz0gJyYjJyArIGMgKyAnOyc7XG4gICAgICAgICAgICBpKys7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xuICAgIEh0bWw1RW50aXRpZXMuZW5jb2RlTm9uQVNDSUkgPSBmdW5jdGlvbiAoc3RyKSB7XG4gICAgICAgIHJldHVybiBuZXcgSHRtbDVFbnRpdGllcygpLmVuY29kZU5vbkFTQ0lJKHN0cik7XG4gICAgfTtcbiAgICByZXR1cm4gSHRtbDVFbnRpdGllcztcbn0oKSk7XG5leHBvcnRzLkh0bWw1RW50aXRpZXMgPSBIdG1sNUVudGl0aWVzO1xuZnVuY3Rpb24gY3JlYXRlSW5kZXhlcyhhbHBoYUluZGV4LCBjaGFySW5kZXgpIHtcbiAgICB2YXIgaSA9IEVOVElUSUVTLmxlbmd0aDtcbiAgICB3aGlsZSAoaS0tKSB7XG4gICAgICAgIHZhciBlID0gRU5USVRJRVNbaV07XG4gICAgICAgIHZhciBhbHBoYSA9IGVbMF07XG4gICAgICAgIHZhciBjaGFycyA9IGVbMV07XG4gICAgICAgIHZhciBjaHIgPSBjaGFyc1swXTtcbiAgICAgICAgdmFyIGFkZENoYXIgPSAoY2hyIDwgMzIgfHwgY2hyID4gMTI2KSB8fCBjaHIgPT09IDYyIHx8IGNociA9PT0gNjAgfHwgY2hyID09PSAzOCB8fCBjaHIgPT09IDM0IHx8IGNociA9PT0gMzk7XG4gICAgICAgIHZhciBjaGFySW5mbyA9IHZvaWQgMDtcbiAgICAgICAgaWYgKGFkZENoYXIpIHtcbiAgICAgICAgICAgIGNoYXJJbmZvID0gY2hhckluZGV4W2Nocl0gPSBjaGFySW5kZXhbY2hyXSB8fCB7fTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2hhcnNbMV0pIHtcbiAgICAgICAgICAgIHZhciBjaHIyID0gY2hhcnNbMV07XG4gICAgICAgICAgICBhbHBoYUluZGV4W2FscGhhXSA9IFN0cmluZy5mcm9tQ2hhckNvZGUoY2hyKSArIFN0cmluZy5mcm9tQ2hhckNvZGUoY2hyMik7XG4gICAgICAgICAgICBhZGRDaGFyICYmIChjaGFySW5mb1tjaHIyXSA9IGFscGhhKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGFscGhhSW5kZXhbYWxwaGFdID0gU3RyaW5nLmZyb21DaGFyQ29kZShjaHIpO1xuICAgICAgICAgICAgYWRkQ2hhciAmJiAoY2hhckluZm9bJyddID0gYWxwaGEpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX3BpcGUoZiwgZykge1xuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBnLmNhbGwodGhpcywgZi5hcHBseSh0aGlzLCBhcmd1bWVudHMpKTtcbiAgfTtcbn0iLCJpbXBvcnQgX2N1cnJ5MSBmcm9tIFwiLi9fY3VycnkxLmpzXCI7XG5pbXBvcnQgX2N1cnJ5MiBmcm9tIFwiLi9fY3VycnkyLmpzXCI7XG5pbXBvcnQgX2lzUGxhY2Vob2xkZXIgZnJvbSBcIi4vX2lzUGxhY2Vob2xkZXIuanNcIjtcbi8qKlxuICogT3B0aW1pemVkIGludGVybmFsIHRocmVlLWFyaXR5IGN1cnJ5IGZ1bmN0aW9uLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuIFRoZSBmdW5jdGlvbiB0byBjdXJyeS5cbiAqIEByZXR1cm4ge0Z1bmN0aW9ufSBUaGUgY3VycmllZCBmdW5jdGlvbi5cbiAqL1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfY3VycnkzKGZuKSB7XG4gIHJldHVybiBmdW5jdGlvbiBmMyhhLCBiLCBjKSB7XG4gICAgc3dpdGNoIChhcmd1bWVudHMubGVuZ3RoKSB7XG4gICAgICBjYXNlIDA6XG4gICAgICAgIHJldHVybiBmMztcblxuICAgICAgY2FzZSAxOlxuICAgICAgICByZXR1cm4gX2lzUGxhY2Vob2xkZXIoYSkgPyBmMyA6IF9jdXJyeTIoZnVuY3Rpb24gKF9iLCBfYykge1xuICAgICAgICAgIHJldHVybiBmbihhLCBfYiwgX2MpO1xuICAgICAgICB9KTtcblxuICAgICAgY2FzZSAyOlxuICAgICAgICByZXR1cm4gX2lzUGxhY2Vob2xkZXIoYSkgJiYgX2lzUGxhY2Vob2xkZXIoYikgPyBmMyA6IF9pc1BsYWNlaG9sZGVyKGEpID8gX2N1cnJ5MihmdW5jdGlvbiAoX2EsIF9jKSB7XG4gICAgICAgICAgcmV0dXJuIGZuKF9hLCBiLCBfYyk7XG4gICAgICAgIH0pIDogX2lzUGxhY2Vob2xkZXIoYikgPyBfY3VycnkyKGZ1bmN0aW9uIChfYiwgX2MpIHtcbiAgICAgICAgICByZXR1cm4gZm4oYSwgX2IsIF9jKTtcbiAgICAgICAgfSkgOiBfY3VycnkxKGZ1bmN0aW9uIChfYykge1xuICAgICAgICAgIHJldHVybiBmbihhLCBiLCBfYyk7XG4gICAgICAgIH0pO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gX2lzUGxhY2Vob2xkZXIoYSkgJiYgX2lzUGxhY2Vob2xkZXIoYikgJiYgX2lzUGxhY2Vob2xkZXIoYykgPyBmMyA6IF9pc1BsYWNlaG9sZGVyKGEpICYmIF9pc1BsYWNlaG9sZGVyKGIpID8gX2N1cnJ5MihmdW5jdGlvbiAoX2EsIF9iKSB7XG4gICAgICAgICAgcmV0dXJuIGZuKF9hLCBfYiwgYyk7XG4gICAgICAgIH0pIDogX2lzUGxhY2Vob2xkZXIoYSkgJiYgX2lzUGxhY2Vob2xkZXIoYykgPyBfY3VycnkyKGZ1bmN0aW9uIChfYSwgX2MpIHtcbiAgICAgICAgICByZXR1cm4gZm4oX2EsIGIsIF9jKTtcbiAgICAgICAgfSkgOiBfaXNQbGFjZWhvbGRlcihiKSAmJiBfaXNQbGFjZWhvbGRlcihjKSA/IF9jdXJyeTIoZnVuY3Rpb24gKF9iLCBfYykge1xuICAgICAgICAgIHJldHVybiBmbihhLCBfYiwgX2MpO1xuICAgICAgICB9KSA6IF9pc1BsYWNlaG9sZGVyKGEpID8gX2N1cnJ5MShmdW5jdGlvbiAoX2EpIHtcbiAgICAgICAgICByZXR1cm4gZm4oX2EsIGIsIGMpO1xuICAgICAgICB9KSA6IF9pc1BsYWNlaG9sZGVyKGIpID8gX2N1cnJ5MShmdW5jdGlvbiAoX2IpIHtcbiAgICAgICAgICByZXR1cm4gZm4oYSwgX2IsIGMpO1xuICAgICAgICB9KSA6IF9pc1BsYWNlaG9sZGVyKGMpID8gX2N1cnJ5MShmdW5jdGlvbiAoX2MpIHtcbiAgICAgICAgICByZXR1cm4gZm4oYSwgYiwgX2MpO1xuICAgICAgICB9KSA6IGZuKGEsIGIsIGMpO1xuICAgIH1cbiAgfTtcbn0iLCIvKipcbiAqIFRlc3RzIHdoZXRoZXIgb3Igbm90IGFuIG9iamVjdCBpcyBhbiBhcnJheS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWwgVGhlIG9iamVjdCB0byB0ZXN0LlxuICogQHJldHVybiB7Qm9vbGVhbn0gYHRydWVgIGlmIGB2YWxgIGlzIGFuIGFycmF5LCBgZmFsc2VgIG90aGVyd2lzZS5cbiAqIEBleGFtcGxlXG4gKlxuICogICAgICBfaXNBcnJheShbXSk7IC8vPT4gdHJ1ZVxuICogICAgICBfaXNBcnJheShudWxsKTsgLy89PiBmYWxzZVxuICogICAgICBfaXNBcnJheSh7fSk7IC8vPT4gZmFsc2VcbiAqL1xuZXhwb3J0IGRlZmF1bHQgQXJyYXkuaXNBcnJheSB8fCBmdW5jdGlvbiBfaXNBcnJheSh2YWwpIHtcbiAgcmV0dXJuIHZhbCAhPSBudWxsICYmIHZhbC5sZW5ndGggPj0gMCAmJiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsKSA9PT0gJ1tvYmplY3QgQXJyYXldJztcbn07IiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX2lzU3RyaW5nKHgpIHtcbiAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh4KSA9PT0gJ1tvYmplY3QgU3RyaW5nXSc7XG59IiwiaW1wb3J0IF9jdXJyeTEgZnJvbSBcIi4vX2N1cnJ5MS5qc1wiO1xuaW1wb3J0IF9pc0FycmF5IGZyb20gXCIuL19pc0FycmF5LmpzXCI7XG5pbXBvcnQgX2lzU3RyaW5nIGZyb20gXCIuL19pc1N0cmluZy5qc1wiO1xuLyoqXG4gKiBUZXN0cyB3aGV0aGVyIG9yIG5vdCBhbiBvYmplY3QgaXMgc2ltaWxhciB0byBhbiBhcnJheS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQGNhdGVnb3J5IFR5cGVcbiAqIEBjYXRlZ29yeSBMaXN0XG4gKiBAc2lnICogLT4gQm9vbGVhblxuICogQHBhcmFtIHsqfSB4IFRoZSBvYmplY3QgdG8gdGVzdC5cbiAqIEByZXR1cm4ge0Jvb2xlYW59IGB0cnVlYCBpZiBgeGAgaGFzIGEgbnVtZXJpYyBsZW5ndGggcHJvcGVydHkgYW5kIGV4dHJlbWUgaW5kaWNlcyBkZWZpbmVkOyBgZmFsc2VgIG90aGVyd2lzZS5cbiAqIEBleGFtcGxlXG4gKlxuICogICAgICBfaXNBcnJheUxpa2UoW10pOyAvLz0+IHRydWVcbiAqICAgICAgX2lzQXJyYXlMaWtlKHRydWUpOyAvLz0+IGZhbHNlXG4gKiAgICAgIF9pc0FycmF5TGlrZSh7fSk7IC8vPT4gZmFsc2VcbiAqICAgICAgX2lzQXJyYXlMaWtlKHtsZW5ndGg6IDEwfSk7IC8vPT4gZmFsc2VcbiAqICAgICAgX2lzQXJyYXlMaWtlKHswOiAnemVybycsIDk6ICduaW5lJywgbGVuZ3RoOiAxMH0pOyAvLz0+IHRydWVcbiAqL1xuXG52YXIgX2lzQXJyYXlMaWtlID1cbi8qI19fUFVSRV9fKi9cbl9jdXJyeTEoZnVuY3Rpb24gaXNBcnJheUxpa2UoeCkge1xuICBpZiAoX2lzQXJyYXkoeCkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlmICgheCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgeCAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoX2lzU3RyaW5nKHgpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKHgubm9kZVR5cGUgPT09IDEpIHtcbiAgICByZXR1cm4gISF4Lmxlbmd0aDtcbiAgfVxuXG4gIGlmICh4Lmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaWYgKHgubGVuZ3RoID4gMCkge1xuICAgIHJldHVybiB4Lmhhc093blByb3BlcnR5KDApICYmIHguaGFzT3duUHJvcGVydHkoeC5sZW5ndGggLSAxKTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBfaXNBcnJheUxpa2U7IiwidmFyIFhXcmFwID1cbi8qI19fUFVSRV9fKi9cbmZ1bmN0aW9uICgpIHtcbiAgZnVuY3Rpb24gWFdyYXAoZm4pIHtcbiAgICB0aGlzLmYgPSBmbjtcbiAgfVxuXG4gIFhXcmFwLnByb3RvdHlwZVsnQEB0cmFuc2R1Y2VyL2luaXQnXSA9IGZ1bmN0aW9uICgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2luaXQgbm90IGltcGxlbWVudGVkIG9uIFhXcmFwJyk7XG4gIH07XG5cbiAgWFdyYXAucHJvdG90eXBlWydAQHRyYW5zZHVjZXIvcmVzdWx0J10gPSBmdW5jdGlvbiAoYWNjKSB7XG4gICAgcmV0dXJuIGFjYztcbiAgfTtcblxuICBYV3JhcC5wcm90b3R5cGVbJ0BAdHJhbnNkdWNlci9zdGVwJ10gPSBmdW5jdGlvbiAoYWNjLCB4KSB7XG4gICAgcmV0dXJuIHRoaXMuZihhY2MsIHgpO1xuICB9O1xuXG4gIHJldHVybiBYV3JhcDtcbn0oKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX3h3cmFwKGZuKSB7XG4gIHJldHVybiBuZXcgWFdyYXAoZm4pO1xufSIsImltcG9ydCBfYXJpdHkgZnJvbSBcIi4vaW50ZXJuYWwvX2FyaXR5LmpzXCI7XG5pbXBvcnQgX2N1cnJ5MiBmcm9tIFwiLi9pbnRlcm5hbC9fY3VycnkyLmpzXCI7XG4vKipcbiAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGlzIGJvdW5kIHRvIGEgY29udGV4dC5cbiAqIE5vdGU6IGBSLmJpbmRgIGRvZXMgbm90IHByb3ZpZGUgdGhlIGFkZGl0aW9uYWwgYXJndW1lbnQtYmluZGluZyBjYXBhYmlsaXRpZXMgb2ZcbiAqIFtGdW5jdGlvbi5wcm90b3R5cGUuYmluZF0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvRnVuY3Rpb24vYmluZCkuXG4gKlxuICogQGZ1bmNcbiAqIEBtZW1iZXJPZiBSXG4gKiBAc2luY2UgdjAuNi4wXG4gKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAqIEBjYXRlZ29yeSBPYmplY3RcbiAqIEBzaWcgKCogLT4gKikgLT4geyp9IC0+ICgqIC0+ICopXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmbiBUaGUgZnVuY3Rpb24gdG8gYmluZCB0byBjb250ZXh0XG4gKiBAcGFyYW0ge09iamVjdH0gdGhpc09iaiBUaGUgY29udGV4dCB0byBiaW5kIGBmbmAgdG9cbiAqIEByZXR1cm4ge0Z1bmN0aW9ufSBBIGZ1bmN0aW9uIHRoYXQgd2lsbCBleGVjdXRlIGluIHRoZSBjb250ZXh0IG9mIGB0aGlzT2JqYC5cbiAqIEBzZWUgUi5wYXJ0aWFsXG4gKiBAZXhhbXBsZVxuICpcbiAqICAgICAgY29uc3QgbG9nID0gUi5iaW5kKGNvbnNvbGUubG9nLCBjb25zb2xlKTtcbiAqICAgICAgUi5waXBlKFIuYXNzb2MoJ2EnLCAyKSwgUi50YXAobG9nKSwgUi5hc3NvYygnYScsIDMpKSh7YTogMX0pOyAvLz0+IHthOiAzfVxuICogICAgICAvLyBsb2dzIHthOiAyfVxuICogQHN5bWIgUi5iaW5kKGYsIG8pKGEsIGIpID0gZi5jYWxsKG8sIGEsIGIpXG4gKi9cblxudmFyIGJpbmQgPVxuLyojX19QVVJFX18qL1xuX2N1cnJ5MihmdW5jdGlvbiBiaW5kKGZuLCB0aGlzT2JqKSB7XG4gIHJldHVybiBfYXJpdHkoZm4ubGVuZ3RoLCBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGZuLmFwcGx5KHRoaXNPYmosIGFyZ3VtZW50cyk7XG4gIH0pO1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IGJpbmQ7IiwiaW1wb3J0IF9pc0FycmF5TGlrZSBmcm9tIFwiLi9faXNBcnJheUxpa2UuanNcIjtcbmltcG9ydCBfeHdyYXAgZnJvbSBcIi4vX3h3cmFwLmpzXCI7XG5pbXBvcnQgYmluZCBmcm9tIFwiLi4vYmluZC5qc1wiO1xuXG5mdW5jdGlvbiBfYXJyYXlSZWR1Y2UoeGYsIGFjYywgbGlzdCkge1xuICB2YXIgaWR4ID0gMDtcbiAgdmFyIGxlbiA9IGxpc3QubGVuZ3RoO1xuXG4gIHdoaWxlIChpZHggPCBsZW4pIHtcbiAgICBhY2MgPSB4ZlsnQEB0cmFuc2R1Y2VyL3N0ZXAnXShhY2MsIGxpc3RbaWR4XSk7XG5cbiAgICBpZiAoYWNjICYmIGFjY1snQEB0cmFuc2R1Y2VyL3JlZHVjZWQnXSkge1xuICAgICAgYWNjID0gYWNjWydAQHRyYW5zZHVjZXIvdmFsdWUnXTtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGlkeCArPSAxO1xuICB9XG5cbiAgcmV0dXJuIHhmWydAQHRyYW5zZHVjZXIvcmVzdWx0J10oYWNjKTtcbn1cblxuZnVuY3Rpb24gX2l0ZXJhYmxlUmVkdWNlKHhmLCBhY2MsIGl0ZXIpIHtcbiAgdmFyIHN0ZXAgPSBpdGVyLm5leHQoKTtcblxuICB3aGlsZSAoIXN0ZXAuZG9uZSkge1xuICAgIGFjYyA9IHhmWydAQHRyYW5zZHVjZXIvc3RlcCddKGFjYywgc3RlcC52YWx1ZSk7XG5cbiAgICBpZiAoYWNjICYmIGFjY1snQEB0cmFuc2R1Y2VyL3JlZHVjZWQnXSkge1xuICAgICAgYWNjID0gYWNjWydAQHRyYW5zZHVjZXIvdmFsdWUnXTtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHN0ZXAgPSBpdGVyLm5leHQoKTtcbiAgfVxuXG4gIHJldHVybiB4ZlsnQEB0cmFuc2R1Y2VyL3Jlc3VsdCddKGFjYyk7XG59XG5cbmZ1bmN0aW9uIF9tZXRob2RSZWR1Y2UoeGYsIGFjYywgb2JqLCBtZXRob2ROYW1lKSB7XG4gIHJldHVybiB4ZlsnQEB0cmFuc2R1Y2VyL3Jlc3VsdCddKG9ialttZXRob2ROYW1lXShiaW5kKHhmWydAQHRyYW5zZHVjZXIvc3RlcCddLCB4ZiksIGFjYykpO1xufVxuXG52YXIgc3ltSXRlcmF0b3IgPSB0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyA/IFN5bWJvbC5pdGVyYXRvciA6ICdAQGl0ZXJhdG9yJztcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9yZWR1Y2UoZm4sIGFjYywgbGlzdCkge1xuICBpZiAodHlwZW9mIGZuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgZm4gPSBfeHdyYXAoZm4pO1xuICB9XG5cbiAgaWYgKF9pc0FycmF5TGlrZShsaXN0KSkge1xuICAgIHJldHVybiBfYXJyYXlSZWR1Y2UoZm4sIGFjYywgbGlzdCk7XG4gIH1cblxuICBpZiAodHlwZW9mIGxpc3RbJ2ZhbnRhc3ktbGFuZC9yZWR1Y2UnXSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBfbWV0aG9kUmVkdWNlKGZuLCBhY2MsIGxpc3QsICdmYW50YXN5LWxhbmQvcmVkdWNlJyk7XG4gIH1cblxuICBpZiAobGlzdFtzeW1JdGVyYXRvcl0gIT0gbnVsbCkge1xuICAgIHJldHVybiBfaXRlcmFibGVSZWR1Y2UoZm4sIGFjYywgbGlzdFtzeW1JdGVyYXRvcl0oKSk7XG4gIH1cblxuICBpZiAodHlwZW9mIGxpc3QubmV4dCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBfaXRlcmFibGVSZWR1Y2UoZm4sIGFjYywgbGlzdCk7XG4gIH1cblxuICBpZiAodHlwZW9mIGxpc3QucmVkdWNlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIF9tZXRob2RSZWR1Y2UoZm4sIGFjYywgbGlzdCwgJ3JlZHVjZScpO1xuICB9XG5cbiAgdGhyb3cgbmV3IFR5cGVFcnJvcigncmVkdWNlOiBsaXN0IG11c3QgYmUgYXJyYXkgb3IgaXRlcmFibGUnKTtcbn0iLCJpbXBvcnQgX2N1cnJ5MyBmcm9tIFwiLi9pbnRlcm5hbC9fY3VycnkzLmpzXCI7XG5pbXBvcnQgX3JlZHVjZSBmcm9tIFwiLi9pbnRlcm5hbC9fcmVkdWNlLmpzXCI7XG4vKipcbiAqIFJldHVybnMgYSBzaW5nbGUgaXRlbSBieSBpdGVyYXRpbmcgdGhyb3VnaCB0aGUgbGlzdCwgc3VjY2Vzc2l2ZWx5IGNhbGxpbmdcbiAqIHRoZSBpdGVyYXRvciBmdW5jdGlvbiBhbmQgcGFzc2luZyBpdCBhbiBhY2N1bXVsYXRvciB2YWx1ZSBhbmQgdGhlIGN1cnJlbnRcbiAqIHZhbHVlIGZyb20gdGhlIGFycmF5LCBhbmQgdGhlbiBwYXNzaW5nIHRoZSByZXN1bHQgdG8gdGhlIG5leHQgY2FsbC5cbiAqXG4gKiBUaGUgaXRlcmF0b3IgZnVuY3Rpb24gcmVjZWl2ZXMgdHdvIHZhbHVlczogKihhY2MsIHZhbHVlKSouIEl0IG1heSB1c2VcbiAqIFtgUi5yZWR1Y2VkYF0oI3JlZHVjZWQpIHRvIHNob3J0Y3V0IHRoZSBpdGVyYXRpb24uXG4gKlxuICogVGhlIGFyZ3VtZW50cycgb3JkZXIgb2YgW2ByZWR1Y2VSaWdodGBdKCNyZWR1Y2VSaWdodCkncyBpdGVyYXRvciBmdW5jdGlvblxuICogaXMgKih2YWx1ZSwgYWNjKSouXG4gKlxuICogTm90ZTogYFIucmVkdWNlYCBkb2VzIG5vdCBza2lwIGRlbGV0ZWQgb3IgdW5hc3NpZ25lZCBpbmRpY2VzIChzcGFyc2VcbiAqIGFycmF5cyksIHVubGlrZSB0aGUgbmF0aXZlIGBBcnJheS5wcm90b3R5cGUucmVkdWNlYCBtZXRob2QuIEZvciBtb3JlIGRldGFpbHNcbiAqIG9uIHRoaXMgYmVoYXZpb3IsIHNlZTpcbiAqIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0FycmF5L3JlZHVjZSNEZXNjcmlwdGlvblxuICpcbiAqIERpc3BhdGNoZXMgdG8gdGhlIGByZWR1Y2VgIG1ldGhvZCBvZiB0aGUgdGhpcmQgYXJndW1lbnQsIGlmIHByZXNlbnQuIFdoZW5cbiAqIGRvaW5nIHNvLCBpdCBpcyB1cCB0byB0aGUgdXNlciB0byBoYW5kbGUgdGhlIFtgUi5yZWR1Y2VkYF0oI3JlZHVjZWQpXG4gKiBzaG9ydGN1dGluZywgYXMgdGhpcyBpcyBub3QgaW1wbGVtZW50ZWQgYnkgYHJlZHVjZWAuXG4gKlxuICogQGZ1bmNcbiAqIEBtZW1iZXJPZiBSXG4gKiBAc2luY2UgdjAuMS4wXG4gKiBAY2F0ZWdvcnkgTGlzdFxuICogQHNpZyAoKGEsIGIpIC0+IGEpIC0+IGEgLT4gW2JdIC0+IGFcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuIFRoZSBpdGVyYXRvciBmdW5jdGlvbi4gUmVjZWl2ZXMgdHdvIHZhbHVlcywgdGhlIGFjY3VtdWxhdG9yIGFuZCB0aGVcbiAqICAgICAgICBjdXJyZW50IGVsZW1lbnQgZnJvbSB0aGUgYXJyYXkuXG4gKiBAcGFyYW0geyp9IGFjYyBUaGUgYWNjdW11bGF0b3IgdmFsdWUuXG4gKiBAcGFyYW0ge0FycmF5fSBsaXN0IFRoZSBsaXN0IHRvIGl0ZXJhdGUgb3Zlci5cbiAqIEByZXR1cm4geyp9IFRoZSBmaW5hbCwgYWNjdW11bGF0ZWQgdmFsdWUuXG4gKiBAc2VlIFIucmVkdWNlZCwgUi5hZGRJbmRleCwgUi5yZWR1Y2VSaWdodFxuICogQGV4YW1wbGVcbiAqXG4gKiAgICAgIFIucmVkdWNlKFIuc3VidHJhY3QsIDAsIFsxLCAyLCAzLCA0XSkgLy8gPT4gKCgoKDAgLSAxKSAtIDIpIC0gMykgLSA0KSA9IC0xMFxuICogICAgICAvLyAgICAgICAgICAtICAgICAgICAgICAgICAgLTEwXG4gKiAgICAgIC8vICAgICAgICAgLyBcXCAgICAgICAgICAgICAgLyBcXFxuICogICAgICAvLyAgICAgICAgLSAgIDQgICAgICAgICAgIC02ICAgNFxuICogICAgICAvLyAgICAgICAvIFxcICAgICAgICAgICAgICAvIFxcXG4gKiAgICAgIC8vICAgICAgLSAgIDMgICA9PT4gICAgIC0zICAgM1xuICogICAgICAvLyAgICAgLyBcXCAgICAgICAgICAgICAgLyBcXFxuICogICAgICAvLyAgICAtICAgMiAgICAgICAgICAgLTEgICAyXG4gKiAgICAgIC8vICAgLyBcXCAgICAgICAgICAgICAgLyBcXFxuICogICAgICAvLyAgMCAgIDEgICAgICAgICAgICAwICAgMVxuICpcbiAqIEBzeW1iIFIucmVkdWNlKGYsIGEsIFtiLCBjLCBkXSkgPSBmKGYoZihhLCBiKSwgYyksIGQpXG4gKi9cblxudmFyIHJlZHVjZSA9XG4vKiNfX1BVUkVfXyovXG5fY3VycnkzKF9yZWR1Y2UpO1xuXG5leHBvcnQgZGVmYXVsdCByZWR1Y2U7IiwiaW1wb3J0IF9pc0FycmF5IGZyb20gXCIuL19pc0FycmF5LmpzXCI7XG4vKipcbiAqIFRoaXMgY2hlY2tzIHdoZXRoZXIgYSBmdW5jdGlvbiBoYXMgYSBbbWV0aG9kbmFtZV0gZnVuY3Rpb24uIElmIGl0IGlzbid0IGFuXG4gKiBhcnJheSBpdCB3aWxsIGV4ZWN1dGUgdGhhdCBmdW5jdGlvbiBvdGhlcndpc2UgaXQgd2lsbCBkZWZhdWx0IHRvIHRoZSByYW1kYVxuICogaW1wbGVtZW50YXRpb24uXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuIHJhbWRhIGltcGxlbXRhdGlvblxuICogQHBhcmFtIHtTdHJpbmd9IG1ldGhvZG5hbWUgcHJvcGVydHkgdG8gY2hlY2sgZm9yIGEgY3VzdG9tIGltcGxlbWVudGF0aW9uXG4gKiBAcmV0dXJuIHtPYmplY3R9IFdoYXRldmVyIHRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIG1ldGhvZCBpcy5cbiAqL1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfY2hlY2tGb3JNZXRob2QobWV0aG9kbmFtZSwgZm4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgbGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aDtcblxuICAgIGlmIChsZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBmbigpO1xuICAgIH1cblxuICAgIHZhciBvYmogPSBhcmd1bWVudHNbbGVuZ3RoIC0gMV07XG4gICAgcmV0dXJuIF9pc0FycmF5KG9iaikgfHwgdHlwZW9mIG9ialttZXRob2RuYW1lXSAhPT0gJ2Z1bmN0aW9uJyA/IGZuLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgOiBvYmpbbWV0aG9kbmFtZV0uYXBwbHkob2JqLCBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDAsIGxlbmd0aCAtIDEpKTtcbiAgfTtcbn0iLCJpbXBvcnQgX2NoZWNrRm9yTWV0aG9kIGZyb20gXCIuL2ludGVybmFsL19jaGVja0Zvck1ldGhvZC5qc1wiO1xuaW1wb3J0IF9jdXJyeTMgZnJvbSBcIi4vaW50ZXJuYWwvX2N1cnJ5My5qc1wiO1xuLyoqXG4gKiBSZXR1cm5zIHRoZSBlbGVtZW50cyBvZiB0aGUgZ2l2ZW4gbGlzdCBvciBzdHJpbmcgKG9yIG9iamVjdCB3aXRoIGEgYHNsaWNlYFxuICogbWV0aG9kKSBmcm9tIGBmcm9tSW5kZXhgIChpbmNsdXNpdmUpIHRvIGB0b0luZGV4YCAoZXhjbHVzaXZlKS5cbiAqXG4gKiBEaXNwYXRjaGVzIHRvIHRoZSBgc2xpY2VgIG1ldGhvZCBvZiB0aGUgdGhpcmQgYXJndW1lbnQsIGlmIHByZXNlbnQuXG4gKlxuICogQGZ1bmNcbiAqIEBtZW1iZXJPZiBSXG4gKiBAc2luY2UgdjAuMS40XG4gKiBAY2F0ZWdvcnkgTGlzdFxuICogQHNpZyBOdW1iZXIgLT4gTnVtYmVyIC0+IFthXSAtPiBbYV1cbiAqIEBzaWcgTnVtYmVyIC0+IE51bWJlciAtPiBTdHJpbmcgLT4gU3RyaW5nXG4gKiBAcGFyYW0ge051bWJlcn0gZnJvbUluZGV4IFRoZSBzdGFydCBpbmRleCAoaW5jbHVzaXZlKS5cbiAqIEBwYXJhbSB7TnVtYmVyfSB0b0luZGV4IFRoZSBlbmQgaW5kZXggKGV4Y2x1c2l2ZSkuXG4gKiBAcGFyYW0geyp9IGxpc3RcbiAqIEByZXR1cm4geyp9XG4gKiBAZXhhbXBsZVxuICpcbiAqICAgICAgUi5zbGljZSgxLCAzLCBbJ2EnLCAnYicsICdjJywgJ2QnXSk7ICAgICAgICAvLz0+IFsnYicsICdjJ11cbiAqICAgICAgUi5zbGljZSgxLCBJbmZpbml0eSwgWydhJywgJ2InLCAnYycsICdkJ10pOyAvLz0+IFsnYicsICdjJywgJ2QnXVxuICogICAgICBSLnNsaWNlKDAsIC0xLCBbJ2EnLCAnYicsICdjJywgJ2QnXSk7ICAgICAgIC8vPT4gWydhJywgJ2InLCAnYyddXG4gKiAgICAgIFIuc2xpY2UoLTMsIC0xLCBbJ2EnLCAnYicsICdjJywgJ2QnXSk7ICAgICAgLy89PiBbJ2InLCAnYyddXG4gKiAgICAgIFIuc2xpY2UoMCwgMywgJ3JhbWRhJyk7ICAgICAgICAgICAgICAgICAgICAgLy89PiAncmFtJ1xuICovXG5cbnZhciBzbGljZSA9XG4vKiNfX1BVUkVfXyovXG5fY3VycnkzKFxuLyojX19QVVJFX18qL1xuX2NoZWNrRm9yTWV0aG9kKCdzbGljZScsIGZ1bmN0aW9uIHNsaWNlKGZyb21JbmRleCwgdG9JbmRleCwgbGlzdCkge1xuICByZXR1cm4gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwobGlzdCwgZnJvbUluZGV4LCB0b0luZGV4KTtcbn0pKTtcblxuZXhwb3J0IGRlZmF1bHQgc2xpY2U7IiwiaW1wb3J0IF9jaGVja0Zvck1ldGhvZCBmcm9tIFwiLi9pbnRlcm5hbC9fY2hlY2tGb3JNZXRob2QuanNcIjtcbmltcG9ydCBfY3VycnkxIGZyb20gXCIuL2ludGVybmFsL19jdXJyeTEuanNcIjtcbmltcG9ydCBzbGljZSBmcm9tIFwiLi9zbGljZS5qc1wiO1xuLyoqXG4gKiBSZXR1cm5zIGFsbCBidXQgdGhlIGZpcnN0IGVsZW1lbnQgb2YgdGhlIGdpdmVuIGxpc3Qgb3Igc3RyaW5nIChvciBvYmplY3RcbiAqIHdpdGggYSBgdGFpbGAgbWV0aG9kKS5cbiAqXG4gKiBEaXNwYXRjaGVzIHRvIHRoZSBgc2xpY2VgIG1ldGhvZCBvZiB0aGUgZmlyc3QgYXJndW1lbnQsIGlmIHByZXNlbnQuXG4gKlxuICogQGZ1bmNcbiAqIEBtZW1iZXJPZiBSXG4gKiBAc2luY2UgdjAuMS4wXG4gKiBAY2F0ZWdvcnkgTGlzdFxuICogQHNpZyBbYV0gLT4gW2FdXG4gKiBAc2lnIFN0cmluZyAtPiBTdHJpbmdcbiAqIEBwYXJhbSB7Kn0gbGlzdFxuICogQHJldHVybiB7Kn1cbiAqIEBzZWUgUi5oZWFkLCBSLmluaXQsIFIubGFzdFxuICogQGV4YW1wbGVcbiAqXG4gKiAgICAgIFIudGFpbChbMSwgMiwgM10pOyAgLy89PiBbMiwgM11cbiAqICAgICAgUi50YWlsKFsxLCAyXSk7ICAgICAvLz0+IFsyXVxuICogICAgICBSLnRhaWwoWzFdKTsgICAgICAgIC8vPT4gW11cbiAqICAgICAgUi50YWlsKFtdKTsgICAgICAgICAvLz0+IFtdXG4gKlxuICogICAgICBSLnRhaWwoJ2FiYycpOyAgLy89PiAnYmMnXG4gKiAgICAgIFIudGFpbCgnYWInKTsgICAvLz0+ICdiJ1xuICogICAgICBSLnRhaWwoJ2EnKTsgICAgLy89PiAnJ1xuICogICAgICBSLnRhaWwoJycpOyAgICAgLy89PiAnJ1xuICovXG5cbnZhciB0YWlsID1cbi8qI19fUFVSRV9fKi9cbl9jdXJyeTEoXG4vKiNfX1BVUkVfXyovXG5fY2hlY2tGb3JNZXRob2QoJ3RhaWwnLFxuLyojX19QVVJFX18qL1xuc2xpY2UoMSwgSW5maW5pdHkpKSk7XG5cbmV4cG9ydCBkZWZhdWx0IHRhaWw7IiwiaW1wb3J0IF9hcml0eSBmcm9tIFwiLi9pbnRlcm5hbC9fYXJpdHkuanNcIjtcbmltcG9ydCBfcGlwZSBmcm9tIFwiLi9pbnRlcm5hbC9fcGlwZS5qc1wiO1xuaW1wb3J0IHJlZHVjZSBmcm9tIFwiLi9yZWR1Y2UuanNcIjtcbmltcG9ydCB0YWlsIGZyb20gXCIuL3RhaWwuanNcIjtcbi8qKlxuICogUGVyZm9ybXMgbGVmdC10by1yaWdodCBmdW5jdGlvbiBjb21wb3NpdGlvbi4gVGhlIGZpcnN0IGFyZ3VtZW50IG1heSBoYXZlXG4gKiBhbnkgYXJpdHk7IHRoZSByZW1haW5pbmcgYXJndW1lbnRzIG11c3QgYmUgdW5hcnkuXG4gKlxuICogSW4gc29tZSBsaWJyYXJpZXMgdGhpcyBmdW5jdGlvbiBpcyBuYW1lZCBgc2VxdWVuY2VgLlxuICpcbiAqICoqTm90ZToqKiBUaGUgcmVzdWx0IG9mIHBpcGUgaXMgbm90IGF1dG9tYXRpY2FsbHkgY3VycmllZC5cbiAqXG4gKiBAZnVuY1xuICogQG1lbWJlck9mIFJcbiAqIEBzaW5jZSB2MC4xLjBcbiAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICogQHNpZyAoKChhLCBiLCAuLi4sIG4pIC0+IG8pLCAobyAtPiBwKSwgLi4uLCAoeCAtPiB5KSwgKHkgLT4geikpIC0+ICgoYSwgYiwgLi4uLCBuKSAtPiB6KVxuICogQHBhcmFtIHsuLi5GdW5jdGlvbn0gZnVuY3Rpb25zXG4gKiBAcmV0dXJuIHtGdW5jdGlvbn1cbiAqIEBzZWUgUi5jb21wb3NlXG4gKiBAZXhhbXBsZVxuICpcbiAqICAgICAgY29uc3QgZiA9IFIucGlwZShNYXRoLnBvdywgUi5uZWdhdGUsIFIuaW5jKTtcbiAqXG4gKiAgICAgIGYoMywgNCk7IC8vIC0oM140KSArIDFcbiAqIEBzeW1iIFIucGlwZShmLCBnLCBoKShhLCBiKSA9IGgoZyhmKGEsIGIpKSlcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBwaXBlKCkge1xuICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcigncGlwZSByZXF1aXJlcyBhdCBsZWFzdCBvbmUgYXJndW1lbnQnKTtcbiAgfVxuXG4gIHJldHVybiBfYXJpdHkoYXJndW1lbnRzWzBdLmxlbmd0aCwgcmVkdWNlKF9waXBlLCBhcmd1bWVudHNbMF0sIHRhaWwoYXJndW1lbnRzKSkpO1xufSIsIi8qKlxuICogRGV0ZXJtaW5lIGlmIHRoZSBwYXNzZWQgYXJndW1lbnQgaXMgYW4gaW50ZWdlci5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSBuXG4gKiBAY2F0ZWdvcnkgVHlwZVxuICogQHJldHVybiB7Qm9vbGVhbn1cbiAqL1xuZXhwb3J0IGRlZmF1bHQgTnVtYmVyLmlzSW50ZWdlciB8fCBmdW5jdGlvbiBfaXNJbnRlZ2VyKG4pIHtcbiAgcmV0dXJuIG4gPDwgMCA9PT0gbjtcbn07IiwiaW1wb3J0IF9jdXJyeTIgZnJvbSBcIi4vaW50ZXJuYWwvX2N1cnJ5Mi5qc1wiO1xuaW1wb3J0IF9pc1N0cmluZyBmcm9tIFwiLi9pbnRlcm5hbC9faXNTdHJpbmcuanNcIjtcbi8qKlxuICogUmV0dXJucyB0aGUgbnRoIGVsZW1lbnQgb2YgdGhlIGdpdmVuIGxpc3Qgb3Igc3RyaW5nLiBJZiBuIGlzIG5lZ2F0aXZlIHRoZVxuICogZWxlbWVudCBhdCBpbmRleCBsZW5ndGggKyBuIGlzIHJldHVybmVkLlxuICpcbiAqIEBmdW5jXG4gKiBAbWVtYmVyT2YgUlxuICogQHNpbmNlIHYwLjEuMFxuICogQGNhdGVnb3J5IExpc3RcbiAqIEBzaWcgTnVtYmVyIC0+IFthXSAtPiBhIHwgVW5kZWZpbmVkXG4gKiBAc2lnIE51bWJlciAtPiBTdHJpbmcgLT4gU3RyaW5nXG4gKiBAcGFyYW0ge051bWJlcn0gb2Zmc2V0XG4gKiBAcGFyYW0geyp9IGxpc3RcbiAqIEByZXR1cm4geyp9XG4gKiBAZXhhbXBsZVxuICpcbiAqICAgICAgY29uc3QgbGlzdCA9IFsnZm9vJywgJ2JhcicsICdiYXonLCAncXV1eCddO1xuICogICAgICBSLm50aCgxLCBsaXN0KTsgLy89PiAnYmFyJ1xuICogICAgICBSLm50aCgtMSwgbGlzdCk7IC8vPT4gJ3F1dXgnXG4gKiAgICAgIFIubnRoKC05OSwgbGlzdCk7IC8vPT4gdW5kZWZpbmVkXG4gKlxuICogICAgICBSLm50aCgyLCAnYWJjJyk7IC8vPT4gJ2MnXG4gKiAgICAgIFIubnRoKDMsICdhYmMnKTsgLy89PiAnJ1xuICogQHN5bWIgUi5udGgoLTEsIFthLCBiLCBjXSkgPSBjXG4gKiBAc3ltYiBSLm50aCgwLCBbYSwgYiwgY10pID0gYVxuICogQHN5bWIgUi5udGgoMSwgW2EsIGIsIGNdKSA9IGJcbiAqL1xuXG52YXIgbnRoID1cbi8qI19fUFVSRV9fKi9cbl9jdXJyeTIoZnVuY3Rpb24gbnRoKG9mZnNldCwgbGlzdCkge1xuICB2YXIgaWR4ID0gb2Zmc2V0IDwgMCA/IGxpc3QubGVuZ3RoICsgb2Zmc2V0IDogb2Zmc2V0O1xuICByZXR1cm4gX2lzU3RyaW5nKGxpc3QpID8gbGlzdC5jaGFyQXQoaWR4KSA6IGxpc3RbaWR4XTtcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBudGg7IiwiaW1wb3J0IF9jdXJyeTIgZnJvbSBcIi4vaW50ZXJuYWwvX2N1cnJ5Mi5qc1wiO1xuaW1wb3J0IF9pc0ludGVnZXIgZnJvbSBcIi4vaW50ZXJuYWwvX2lzSW50ZWdlci5qc1wiO1xuaW1wb3J0IG50aCBmcm9tIFwiLi9udGguanNcIjtcbi8qKlxuICogUmV0cmlldmVzIHRoZSB2YWx1ZXMgYXQgZ2l2ZW4gcGF0aHMgb2YgYW4gb2JqZWN0LlxuICpcbiAqIEBmdW5jXG4gKiBAbWVtYmVyT2YgUlxuICogQHNpbmNlIHYwLjI3LjBcbiAqIEBjYXRlZ29yeSBPYmplY3RcbiAqIEB0eXBlZGVmbiBJZHggPSBbU3RyaW5nIHwgSW50XVxuICogQHNpZyBbSWR4XSAtPiB7YX0gLT4gW2EgfCBVbmRlZmluZWRdXG4gKiBAcGFyYW0ge0FycmF5fSBwYXRoc0FycmF5IFRoZSBhcnJheSBvZiBwYXRocyB0byBiZSBmZXRjaGVkLlxuICogQHBhcmFtIHtPYmplY3R9IG9iaiBUaGUgb2JqZWN0IHRvIHJldHJpZXZlIHRoZSBuZXN0ZWQgcHJvcGVydGllcyBmcm9tLlxuICogQHJldHVybiB7QXJyYXl9IEEgbGlzdCBjb25zaXN0aW5nIG9mIHZhbHVlcyBhdCBwYXRocyBzcGVjaWZpZWQgYnkgXCJwYXRoc0FycmF5XCIuXG4gKiBAc2VlIFIucGF0aFxuICogQGV4YW1wbGVcbiAqXG4gKiAgICAgIFIucGF0aHMoW1snYScsICdiJ10sIFsncCcsIDAsICdxJ11dLCB7YToge2I6IDJ9LCBwOiBbe3E6IDN9XX0pOyAvLz0+IFsyLCAzXVxuICogICAgICBSLnBhdGhzKFtbJ2EnLCAnYiddLCBbJ3AnLCAnciddXSwge2E6IHtiOiAyfSwgcDogW3txOiAzfV19KTsgLy89PiBbMiwgdW5kZWZpbmVkXVxuICovXG5cbnZhciBwYXRocyA9XG4vKiNfX1BVUkVfXyovXG5fY3VycnkyKGZ1bmN0aW9uIHBhdGhzKHBhdGhzQXJyYXksIG9iaikge1xuICByZXR1cm4gcGF0aHNBcnJheS5tYXAoZnVuY3Rpb24gKHBhdGhzKSB7XG4gICAgdmFyIHZhbCA9IG9iajtcbiAgICB2YXIgaWR4ID0gMDtcbiAgICB2YXIgcDtcblxuICAgIHdoaWxlIChpZHggPCBwYXRocy5sZW5ndGgpIHtcbiAgICAgIGlmICh2YWwgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHAgPSBwYXRoc1tpZHhdO1xuICAgICAgdmFsID0gX2lzSW50ZWdlcihwKSA/IG50aChwLCB2YWwpIDogdmFsW3BdO1xuICAgICAgaWR4ICs9IDE7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbDtcbiAgfSk7XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgcGF0aHM7IiwiaW1wb3J0IF9jdXJyeTIgZnJvbSBcIi4vaW50ZXJuYWwvX2N1cnJ5Mi5qc1wiO1xuaW1wb3J0IHBhdGhzIGZyb20gXCIuL3BhdGhzLmpzXCI7XG4vKipcbiAqIFJldHJpZXZlIHRoZSB2YWx1ZSBhdCBhIGdpdmVuIHBhdGguXG4gKlxuICogQGZ1bmNcbiAqIEBtZW1iZXJPZiBSXG4gKiBAc2luY2UgdjAuMi4wXG4gKiBAY2F0ZWdvcnkgT2JqZWN0XG4gKiBAdHlwZWRlZm4gSWR4ID0gU3RyaW5nIHwgSW50XG4gKiBAc2lnIFtJZHhdIC0+IHthfSAtPiBhIHwgVW5kZWZpbmVkXG4gKiBAcGFyYW0ge0FycmF5fSBwYXRoIFRoZSBwYXRoIHRvIHVzZS5cbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmogVGhlIG9iamVjdCB0byByZXRyaWV2ZSB0aGUgbmVzdGVkIHByb3BlcnR5IGZyb20uXG4gKiBAcmV0dXJuIHsqfSBUaGUgZGF0YSBhdCBgcGF0aGAuXG4gKiBAc2VlIFIucHJvcCwgUi5udGhcbiAqIEBleGFtcGxlXG4gKlxuICogICAgICBSLnBhdGgoWydhJywgJ2InXSwge2E6IHtiOiAyfX0pOyAvLz0+IDJcbiAqICAgICAgUi5wYXRoKFsnYScsICdiJ10sIHtjOiB7YjogMn19KTsgLy89PiB1bmRlZmluZWRcbiAqICAgICAgUi5wYXRoKFsnYScsICdiJywgMF0sIHthOiB7YjogWzEsIDIsIDNdfX0pOyAvLz0+IDFcbiAqICAgICAgUi5wYXRoKFsnYScsICdiJywgLTJdLCB7YToge2I6IFsxLCAyLCAzXX19KTsgLy89PiAyXG4gKi9cblxudmFyIHBhdGggPVxuLyojX19QVVJFX18qL1xuX2N1cnJ5MihmdW5jdGlvbiBwYXRoKHBhdGhBciwgb2JqKSB7XG4gIHJldHVybiBwYXRocyhbcGF0aEFyXSwgb2JqKVswXTtcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBwYXRoOyIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9pc1RyYW5zZm9ybWVyKG9iaikge1xuICByZXR1cm4gb2JqICE9IG51bGwgJiYgdHlwZW9mIG9ialsnQEB0cmFuc2R1Y2VyL3N0ZXAnXSA9PT0gJ2Z1bmN0aW9uJztcbn0iLCJpbXBvcnQgX2lzQXJyYXkgZnJvbSBcIi4vX2lzQXJyYXkuanNcIjtcbmltcG9ydCBfaXNUcmFuc2Zvcm1lciBmcm9tIFwiLi9faXNUcmFuc2Zvcm1lci5qc1wiO1xuLyoqXG4gKiBSZXR1cm5zIGEgZnVuY3Rpb24gdGhhdCBkaXNwYXRjaGVzIHdpdGggZGlmZmVyZW50IHN0cmF0ZWdpZXMgYmFzZWQgb24gdGhlXG4gKiBvYmplY3QgaW4gbGlzdCBwb3NpdGlvbiAobGFzdCBhcmd1bWVudCkuIElmIGl0IGlzIGFuIGFycmF5LCBleGVjdXRlcyBbZm5dLlxuICogT3RoZXJ3aXNlLCBpZiBpdCBoYXMgYSBmdW5jdGlvbiB3aXRoIG9uZSBvZiB0aGUgZ2l2ZW4gbWV0aG9kIG5hbWVzLCBpdCB3aWxsXG4gKiBleGVjdXRlIHRoYXQgZnVuY3Rpb24gKGZ1bmN0b3IgY2FzZSkuIE90aGVyd2lzZSwgaWYgaXQgaXMgYSB0cmFuc2Zvcm1lcixcbiAqIHVzZXMgdHJhbnNkdWNlciBbeGZdIHRvIHJldHVybiBhIG5ldyB0cmFuc2Zvcm1lciAodHJhbnNkdWNlciBjYXNlKS5cbiAqIE90aGVyd2lzZSwgaXQgd2lsbCBkZWZhdWx0IHRvIGV4ZWN1dGluZyBbZm5dLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBtZXRob2ROYW1lcyBwcm9wZXJ0aWVzIHRvIGNoZWNrIGZvciBhIGN1c3RvbSBpbXBsZW1lbnRhdGlvblxuICogQHBhcmFtIHtGdW5jdGlvbn0geGYgdHJhbnNkdWNlciB0byBpbml0aWFsaXplIGlmIG9iamVjdCBpcyB0cmFuc2Zvcm1lclxuICogQHBhcmFtIHtGdW5jdGlvbn0gZm4gZGVmYXVsdCByYW1kYSBpbXBsZW1lbnRhdGlvblxuICogQHJldHVybiB7RnVuY3Rpb259IEEgZnVuY3Rpb24gdGhhdCBkaXNwYXRjaGVzIG9uIG9iamVjdCBpbiBsaXN0IHBvc2l0aW9uXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX2Rpc3BhdGNoYWJsZShtZXRob2ROYW1lcywgeGYsIGZuKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBmbigpO1xuICAgIH1cblxuICAgIHZhciBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAwKTtcbiAgICB2YXIgb2JqID0gYXJncy5wb3AoKTtcblxuICAgIGlmICghX2lzQXJyYXkob2JqKSkge1xuICAgICAgdmFyIGlkeCA9IDA7XG5cbiAgICAgIHdoaWxlIChpZHggPCBtZXRob2ROYW1lcy5sZW5ndGgpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBvYmpbbWV0aG9kTmFtZXNbaWR4XV0gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICByZXR1cm4gb2JqW21ldGhvZE5hbWVzW2lkeF1dLmFwcGx5KG9iaiwgYXJncyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZHggKz0gMTtcbiAgICAgIH1cblxuICAgICAgaWYgKF9pc1RyYW5zZm9ybWVyKG9iaikpIHtcbiAgICAgICAgdmFyIHRyYW5zZHVjZXIgPSB4Zi5hcHBseShudWxsLCBhcmdzKTtcbiAgICAgICAgcmV0dXJuIHRyYW5zZHVjZXIob2JqKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZm4uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfTtcbn0iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfbWFwKGZuLCBmdW5jdG9yKSB7XG4gIHZhciBpZHggPSAwO1xuICB2YXIgbGVuID0gZnVuY3Rvci5sZW5ndGg7XG4gIHZhciByZXN1bHQgPSBBcnJheShsZW4pO1xuXG4gIHdoaWxlIChpZHggPCBsZW4pIHtcbiAgICByZXN1bHRbaWR4XSA9IGZuKGZ1bmN0b3JbaWR4XSk7XG4gICAgaWR4ICs9IDE7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufSIsImV4cG9ydCBkZWZhdWx0IHtcbiAgaW5pdDogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzLnhmWydAQHRyYW5zZHVjZXIvaW5pdCddKCk7XG4gIH0sXG4gIHJlc3VsdDogZnVuY3Rpb24gKHJlc3VsdCkge1xuICAgIHJldHVybiB0aGlzLnhmWydAQHRyYW5zZHVjZXIvcmVzdWx0J10ocmVzdWx0KTtcbiAgfVxufTsiLCJpbXBvcnQgX2N1cnJ5MiBmcm9tIFwiLi9fY3VycnkyLmpzXCI7XG5pbXBvcnQgX3hmQmFzZSBmcm9tIFwiLi9feGZCYXNlLmpzXCI7XG5cbnZhciBYTWFwID1cbi8qI19fUFVSRV9fKi9cbmZ1bmN0aW9uICgpIHtcbiAgZnVuY3Rpb24gWE1hcChmLCB4Zikge1xuICAgIHRoaXMueGYgPSB4ZjtcbiAgICB0aGlzLmYgPSBmO1xuICB9XG5cbiAgWE1hcC5wcm90b3R5cGVbJ0BAdHJhbnNkdWNlci9pbml0J10gPSBfeGZCYXNlLmluaXQ7XG4gIFhNYXAucHJvdG90eXBlWydAQHRyYW5zZHVjZXIvcmVzdWx0J10gPSBfeGZCYXNlLnJlc3VsdDtcblxuICBYTWFwLnByb3RvdHlwZVsnQEB0cmFuc2R1Y2VyL3N0ZXAnXSA9IGZ1bmN0aW9uIChyZXN1bHQsIGlucHV0KSB7XG4gICAgcmV0dXJuIHRoaXMueGZbJ0BAdHJhbnNkdWNlci9zdGVwJ10ocmVzdWx0LCB0aGlzLmYoaW5wdXQpKTtcbiAgfTtcblxuICByZXR1cm4gWE1hcDtcbn0oKTtcblxudmFyIF94bWFwID1cbi8qI19fUFVSRV9fKi9cbl9jdXJyeTIoZnVuY3Rpb24gX3htYXAoZiwgeGYpIHtcbiAgcmV0dXJuIG5ldyBYTWFwKGYsIHhmKTtcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBfeG1hcDsiLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfaGFzKHByb3AsIG9iaikge1xuICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCk7XG59IiwiaW1wb3J0IF9oYXMgZnJvbSBcIi4vX2hhcy5qc1wiO1xudmFyIHRvU3RyaW5nID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztcblxudmFyIF9pc0FyZ3VtZW50cyA9XG4vKiNfX1BVUkVfXyovXG5mdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0b1N0cmluZy5jYWxsKGFyZ3VtZW50cykgPT09ICdbb2JqZWN0IEFyZ3VtZW50c10nID8gZnVuY3Rpb24gX2lzQXJndW1lbnRzKHgpIHtcbiAgICByZXR1cm4gdG9TdHJpbmcuY2FsbCh4KSA9PT0gJ1tvYmplY3QgQXJndW1lbnRzXSc7XG4gIH0gOiBmdW5jdGlvbiBfaXNBcmd1bWVudHMoeCkge1xuICAgIHJldHVybiBfaGFzKCdjYWxsZWUnLCB4KTtcbiAgfTtcbn0oKTtcblxuZXhwb3J0IGRlZmF1bHQgX2lzQXJndW1lbnRzOyIsImltcG9ydCBfY3VycnkxIGZyb20gXCIuL2ludGVybmFsL19jdXJyeTEuanNcIjtcbmltcG9ydCBfaGFzIGZyb20gXCIuL2ludGVybmFsL19oYXMuanNcIjtcbmltcG9ydCBfaXNBcmd1bWVudHMgZnJvbSBcIi4vaW50ZXJuYWwvX2lzQXJndW1lbnRzLmpzXCI7IC8vIGNvdmVyIElFIDwgOSBrZXlzIGlzc3Vlc1xuXG52YXIgaGFzRW51bUJ1ZyA9ICFcbi8qI19fUFVSRV9fKi9cbntcbiAgdG9TdHJpbmc6IG51bGxcbn0ucHJvcGVydHlJc0VudW1lcmFibGUoJ3RvU3RyaW5nJyk7XG52YXIgbm9uRW51bWVyYWJsZVByb3BzID0gWydjb25zdHJ1Y3RvcicsICd2YWx1ZU9mJywgJ2lzUHJvdG90eXBlT2YnLCAndG9TdHJpbmcnLCAncHJvcGVydHlJc0VudW1lcmFibGUnLCAnaGFzT3duUHJvcGVydHknLCAndG9Mb2NhbGVTdHJpbmcnXTsgLy8gU2FmYXJpIGJ1Z1xuXG52YXIgaGFzQXJnc0VudW1CdWcgPVxuLyojX19QVVJFX18qL1xuZnVuY3Rpb24gKCkge1xuICAndXNlIHN0cmljdCc7XG5cbiAgcmV0dXJuIGFyZ3VtZW50cy5wcm9wZXJ0eUlzRW51bWVyYWJsZSgnbGVuZ3RoJyk7XG59KCk7XG5cbnZhciBjb250YWlucyA9IGZ1bmN0aW9uIGNvbnRhaW5zKGxpc3QsIGl0ZW0pIHtcbiAgdmFyIGlkeCA9IDA7XG5cbiAgd2hpbGUgKGlkeCA8IGxpc3QubGVuZ3RoKSB7XG4gICAgaWYgKGxpc3RbaWR4XSA9PT0gaXRlbSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWR4ICs9IDE7XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59O1xuLyoqXG4gKiBSZXR1cm5zIGEgbGlzdCBjb250YWluaW5nIHRoZSBuYW1lcyBvZiBhbGwgdGhlIGVudW1lcmFibGUgb3duIHByb3BlcnRpZXMgb2ZcbiAqIHRoZSBzdXBwbGllZCBvYmplY3QuXG4gKiBOb3RlIHRoYXQgdGhlIG9yZGVyIG9mIHRoZSBvdXRwdXQgYXJyYXkgaXMgbm90IGd1YXJhbnRlZWQgdG8gYmUgY29uc2lzdGVudFxuICogYWNyb3NzIGRpZmZlcmVudCBKUyBwbGF0Zm9ybXMuXG4gKlxuICogQGZ1bmNcbiAqIEBtZW1iZXJPZiBSXG4gKiBAc2luY2UgdjAuMS4wXG4gKiBAY2F0ZWdvcnkgT2JqZWN0XG4gKiBAc2lnIHtrOiB2fSAtPiBba11cbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmogVGhlIG9iamVjdCB0byBleHRyYWN0IHByb3BlcnRpZXMgZnJvbVxuICogQHJldHVybiB7QXJyYXl9IEFuIGFycmF5IG9mIHRoZSBvYmplY3QncyBvd24gcHJvcGVydGllcy5cbiAqIEBzZWUgUi5rZXlzSW4sIFIudmFsdWVzXG4gKiBAZXhhbXBsZVxuICpcbiAqICAgICAgUi5rZXlzKHthOiAxLCBiOiAyLCBjOiAzfSk7IC8vPT4gWydhJywgJ2InLCAnYyddXG4gKi9cblxuXG52YXIga2V5cyA9IHR5cGVvZiBPYmplY3Qua2V5cyA9PT0gJ2Z1bmN0aW9uJyAmJiAhaGFzQXJnc0VudW1CdWcgP1xuLyojX19QVVJFX18qL1xuX2N1cnJ5MShmdW5jdGlvbiBrZXlzKG9iaikge1xuICByZXR1cm4gT2JqZWN0KG9iaikgIT09IG9iaiA/IFtdIDogT2JqZWN0LmtleXMob2JqKTtcbn0pIDpcbi8qI19fUFVSRV9fKi9cbl9jdXJyeTEoZnVuY3Rpb24ga2V5cyhvYmopIHtcbiAgaWYgKE9iamVjdChvYmopICE9PSBvYmopIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICB2YXIgcHJvcCwgbklkeDtcbiAgdmFyIGtzID0gW107XG5cbiAgdmFyIGNoZWNrQXJnc0xlbmd0aCA9IGhhc0FyZ3NFbnVtQnVnICYmIF9pc0FyZ3VtZW50cyhvYmopO1xuXG4gIGZvciAocHJvcCBpbiBvYmopIHtcbiAgICBpZiAoX2hhcyhwcm9wLCBvYmopICYmICghY2hlY2tBcmdzTGVuZ3RoIHx8IHByb3AgIT09ICdsZW5ndGgnKSkge1xuICAgICAga3Nba3MubGVuZ3RoXSA9IHByb3A7XG4gICAgfVxuICB9XG5cbiAgaWYgKGhhc0VudW1CdWcpIHtcbiAgICBuSWR4ID0gbm9uRW51bWVyYWJsZVByb3BzLmxlbmd0aCAtIDE7XG5cbiAgICB3aGlsZSAobklkeCA+PSAwKSB7XG4gICAgICBwcm9wID0gbm9uRW51bWVyYWJsZVByb3BzW25JZHhdO1xuXG4gICAgICBpZiAoX2hhcyhwcm9wLCBvYmopICYmICFjb250YWlucyhrcywgcHJvcCkpIHtcbiAgICAgICAga3Nba3MubGVuZ3RoXSA9IHByb3A7XG4gICAgICB9XG5cbiAgICAgIG5JZHggLT0gMTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ga3M7XG59KTtcbmV4cG9ydCBkZWZhdWx0IGtleXM7IiwiaW1wb3J0IF9jdXJyeTIgZnJvbSBcIi4vaW50ZXJuYWwvX2N1cnJ5Mi5qc1wiO1xuaW1wb3J0IF9kaXNwYXRjaGFibGUgZnJvbSBcIi4vaW50ZXJuYWwvX2Rpc3BhdGNoYWJsZS5qc1wiO1xuaW1wb3J0IF9tYXAgZnJvbSBcIi4vaW50ZXJuYWwvX21hcC5qc1wiO1xuaW1wb3J0IF9yZWR1Y2UgZnJvbSBcIi4vaW50ZXJuYWwvX3JlZHVjZS5qc1wiO1xuaW1wb3J0IF94bWFwIGZyb20gXCIuL2ludGVybmFsL194bWFwLmpzXCI7XG5pbXBvcnQgY3VycnlOIGZyb20gXCIuL2N1cnJ5Ti5qc1wiO1xuaW1wb3J0IGtleXMgZnJvbSBcIi4va2V5cy5qc1wiO1xuLyoqXG4gKiBUYWtlcyBhIGZ1bmN0aW9uIGFuZFxuICogYSBbZnVuY3Rvcl0oaHR0cHM6Ly9naXRodWIuY29tL2ZhbnRhc3lsYW5kL2ZhbnRhc3ktbGFuZCNmdW5jdG9yKSxcbiAqIGFwcGxpZXMgdGhlIGZ1bmN0aW9uIHRvIGVhY2ggb2YgdGhlIGZ1bmN0b3IncyB2YWx1ZXMsIGFuZCByZXR1cm5zXG4gKiBhIGZ1bmN0b3Igb2YgdGhlIHNhbWUgc2hhcGUuXG4gKlxuICogUmFtZGEgcHJvdmlkZXMgc3VpdGFibGUgYG1hcGAgaW1wbGVtZW50YXRpb25zIGZvciBgQXJyYXlgIGFuZCBgT2JqZWN0YCxcbiAqIHNvIHRoaXMgZnVuY3Rpb24gbWF5IGJlIGFwcGxpZWQgdG8gYFsxLCAyLCAzXWAgb3IgYHt4OiAxLCB5OiAyLCB6OiAzfWAuXG4gKlxuICogRGlzcGF0Y2hlcyB0byB0aGUgYG1hcGAgbWV0aG9kIG9mIHRoZSBzZWNvbmQgYXJndW1lbnQsIGlmIHByZXNlbnQuXG4gKlxuICogQWN0cyBhcyBhIHRyYW5zZHVjZXIgaWYgYSB0cmFuc2Zvcm1lciBpcyBnaXZlbiBpbiBsaXN0IHBvc2l0aW9uLlxuICpcbiAqIEFsc28gdHJlYXRzIGZ1bmN0aW9ucyBhcyBmdW5jdG9ycyBhbmQgd2lsbCBjb21wb3NlIHRoZW0gdG9nZXRoZXIuXG4gKlxuICogQGZ1bmNcbiAqIEBtZW1iZXJPZiBSXG4gKiBAc2luY2UgdjAuMS4wXG4gKiBAY2F0ZWdvcnkgTGlzdFxuICogQHNpZyBGdW5jdG9yIGYgPT4gKGEgLT4gYikgLT4gZiBhIC0+IGYgYlxuICogQHBhcmFtIHtGdW5jdGlvbn0gZm4gVGhlIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBvbiBldmVyeSBlbGVtZW50IG9mIHRoZSBpbnB1dCBgbGlzdGAuXG4gKiBAcGFyYW0ge0FycmF5fSBsaXN0IFRoZSBsaXN0IHRvIGJlIGl0ZXJhdGVkIG92ZXIuXG4gKiBAcmV0dXJuIHtBcnJheX0gVGhlIG5ldyBsaXN0LlxuICogQHNlZSBSLnRyYW5zZHVjZSwgUi5hZGRJbmRleFxuICogQGV4YW1wbGVcbiAqXG4gKiAgICAgIGNvbnN0IGRvdWJsZSA9IHggPT4geCAqIDI7XG4gKlxuICogICAgICBSLm1hcChkb3VibGUsIFsxLCAyLCAzXSk7IC8vPT4gWzIsIDQsIDZdXG4gKlxuICogICAgICBSLm1hcChkb3VibGUsIHt4OiAxLCB5OiAyLCB6OiAzfSk7IC8vPT4ge3g6IDIsIHk6IDQsIHo6IDZ9XG4gKiBAc3ltYiBSLm1hcChmLCBbYSwgYl0pID0gW2YoYSksIGYoYildXG4gKiBAc3ltYiBSLm1hcChmLCB7IHg6IGEsIHk6IGIgfSkgPSB7IHg6IGYoYSksIHk6IGYoYikgfVxuICogQHN5bWIgUi5tYXAoZiwgZnVuY3Rvcl9vKSA9IGZ1bmN0b3Jfby5tYXAoZilcbiAqL1xuXG52YXIgbWFwID1cbi8qI19fUFVSRV9fKi9cbl9jdXJyeTIoXG4vKiNfX1BVUkVfXyovXG5fZGlzcGF0Y2hhYmxlKFsnZmFudGFzeS1sYW5kL21hcCcsICdtYXAnXSwgX3htYXAsIGZ1bmN0aW9uIG1hcChmbiwgZnVuY3Rvcikge1xuICBzd2l0Y2ggKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChmdW5jdG9yKSkge1xuICAgIGNhc2UgJ1tvYmplY3QgRnVuY3Rpb25dJzpcbiAgICAgIHJldHVybiBjdXJyeU4oZnVuY3Rvci5sZW5ndGgsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGZuLmNhbGwodGhpcywgZnVuY3Rvci5hcHBseSh0aGlzLCBhcmd1bWVudHMpKTtcbiAgICAgIH0pO1xuXG4gICAgY2FzZSAnW29iamVjdCBPYmplY3RdJzpcbiAgICAgIHJldHVybiBfcmVkdWNlKGZ1bmN0aW9uIChhY2MsIGtleSkge1xuICAgICAgICBhY2Nba2V5XSA9IGZuKGZ1bmN0b3Jba2V5XSk7XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9LCB7fSwga2V5cyhmdW5jdG9yKSk7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIF9tYXAoZm4sIGZ1bmN0b3IpO1xuICB9XG59KSk7XG5cbmV4cG9ydCBkZWZhdWx0IG1hcDsiLCJpbXBvcnQgX2N1cnJ5MiBmcm9tIFwiLi9pbnRlcm5hbC9fY3VycnkyLmpzXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwiLi9wYXRoLmpzXCI7XG4vKipcbiAqIFJldHVybnMgYSBmdW5jdGlvbiB0aGF0IHdoZW4gc3VwcGxpZWQgYW4gb2JqZWN0IHJldHVybnMgdGhlIGluZGljYXRlZFxuICogcHJvcGVydHkgb2YgdGhhdCBvYmplY3QsIGlmIGl0IGV4aXN0cy5cbiAqXG4gKiBAZnVuY1xuICogQG1lbWJlck9mIFJcbiAqIEBzaW5jZSB2MC4xLjBcbiAqIEBjYXRlZ29yeSBPYmplY3RcbiAqIEB0eXBlZGVmbiBJZHggPSBTdHJpbmcgfCBJbnRcbiAqIEBzaWcgSWR4IC0+IHtzOiBhfSAtPiBhIHwgVW5kZWZpbmVkXG4gKiBAcGFyYW0ge1N0cmluZ3xOdW1iZXJ9IHAgVGhlIHByb3BlcnR5IG5hbWUgb3IgYXJyYXkgaW5kZXhcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmogVGhlIG9iamVjdCB0byBxdWVyeVxuICogQHJldHVybiB7Kn0gVGhlIHZhbHVlIGF0IGBvYmoucGAuXG4gKiBAc2VlIFIucGF0aCwgUi5udGhcbiAqIEBleGFtcGxlXG4gKlxuICogICAgICBSLnByb3AoJ3gnLCB7eDogMTAwfSk7IC8vPT4gMTAwXG4gKiAgICAgIFIucHJvcCgneCcsIHt9KTsgLy89PiB1bmRlZmluZWRcbiAqICAgICAgUi5wcm9wKDAsIFsxMDBdKTsgLy89PiAxMDBcbiAqICAgICAgUi5jb21wb3NlKFIuaW5jLCBSLnByb3AoJ3gnKSkoeyB4OiAzIH0pIC8vPT4gNFxuICovXG5cbnZhciBwcm9wID1cbi8qI19fUFVSRV9fKi9cbl9jdXJyeTIoZnVuY3Rpb24gcHJvcChwLCBvYmopIHtcbiAgcmV0dXJuIHBhdGgoW3BdLCBvYmopO1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IHByb3A7IiwiaW1wb3J0IF9jdXJyeTIgZnJvbSBcIi4vaW50ZXJuYWwvX2N1cnJ5Mi5qc1wiO1xuaW1wb3J0IG1hcCBmcm9tIFwiLi9tYXAuanNcIjtcbmltcG9ydCBwcm9wIGZyb20gXCIuL3Byb3AuanNcIjtcbi8qKlxuICogUmV0dXJucyBhIG5ldyBsaXN0IGJ5IHBsdWNraW5nIHRoZSBzYW1lIG5hbWVkIHByb3BlcnR5IG9mZiBhbGwgb2JqZWN0cyBpblxuICogdGhlIGxpc3Qgc3VwcGxpZWQuXG4gKlxuICogYHBsdWNrYCB3aWxsIHdvcmsgb25cbiAqIGFueSBbZnVuY3Rvcl0oaHR0cHM6Ly9naXRodWIuY29tL2ZhbnRhc3lsYW5kL2ZhbnRhc3ktbGFuZCNmdW5jdG9yKSBpblxuICogYWRkaXRpb24gdG8gYXJyYXlzLCBhcyBpdCBpcyBlcXVpdmFsZW50IHRvIGBSLm1hcChSLnByb3AoayksIGYpYC5cbiAqXG4gKiBAZnVuY1xuICogQG1lbWJlck9mIFJcbiAqIEBzaW5jZSB2MC4xLjBcbiAqIEBjYXRlZ29yeSBMaXN0XG4gKiBAc2lnIEZ1bmN0b3IgZiA9PiBrIC0+IGYge2s6IHZ9IC0+IGYgdlxuICogQHBhcmFtIHtOdW1iZXJ8U3RyaW5nfSBrZXkgVGhlIGtleSBuYW1lIHRvIHBsdWNrIG9mZiBvZiBlYWNoIG9iamVjdC5cbiAqIEBwYXJhbSB7QXJyYXl9IGYgVGhlIGFycmF5IG9yIGZ1bmN0b3IgdG8gY29uc2lkZXIuXG4gKiBAcmV0dXJuIHtBcnJheX0gVGhlIGxpc3Qgb2YgdmFsdWVzIGZvciB0aGUgZ2l2ZW4ga2V5LlxuICogQHNlZSBSLnByb3BzXG4gKiBAZXhhbXBsZVxuICpcbiAqICAgICAgdmFyIGdldEFnZXMgPSBSLnBsdWNrKCdhZ2UnKTtcbiAqICAgICAgZ2V0QWdlcyhbe25hbWU6ICdmcmVkJywgYWdlOiAyOX0sIHtuYW1lOiAnd2lsbWEnLCBhZ2U6IDI3fV0pOyAvLz0+IFsyOSwgMjddXG4gKlxuICogICAgICBSLnBsdWNrKDAsIFtbMSwgMl0sIFszLCA0XV0pOyAgICAgICAgICAgICAgIC8vPT4gWzEsIDNdXG4gKiAgICAgIFIucGx1Y2soJ3ZhbCcsIHthOiB7dmFsOiAzfSwgYjoge3ZhbDogNX19KTsgLy89PiB7YTogMywgYjogNX1cbiAqIEBzeW1iIFIucGx1Y2soJ3gnLCBbe3g6IDEsIHk6IDJ9LCB7eDogMywgeTogNH0sIHt4OiA1LCB5OiA2fV0pID0gWzEsIDMsIDVdXG4gKiBAc3ltYiBSLnBsdWNrKDAsIFtbMSwgMl0sIFszLCA0XSwgWzUsIDZdXSkgPSBbMSwgMywgNV1cbiAqL1xuXG52YXIgcGx1Y2sgPVxuLyojX19QVVJFX18qL1xuX2N1cnJ5MihmdW5jdGlvbiBwbHVjayhwLCBsaXN0KSB7XG4gIHJldHVybiBtYXAocHJvcChwKSwgbGlzdCk7XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgcGx1Y2s7IiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX2lkZW50aXR5KHgpIHtcbiAgcmV0dXJuIHg7XG59IiwiaW1wb3J0IF9jdXJyeTEgZnJvbSBcIi4vaW50ZXJuYWwvX2N1cnJ5MS5qc1wiO1xuaW1wb3J0IF9pZGVudGl0eSBmcm9tIFwiLi9pbnRlcm5hbC9faWRlbnRpdHkuanNcIjtcbi8qKlxuICogQSBmdW5jdGlvbiB0aGF0IGRvZXMgbm90aGluZyBidXQgcmV0dXJuIHRoZSBwYXJhbWV0ZXIgc3VwcGxpZWQgdG8gaXQuIEdvb2RcbiAqIGFzIGEgZGVmYXVsdCBvciBwbGFjZWhvbGRlciBmdW5jdGlvbi5cbiAqXG4gKiBAZnVuY1xuICogQG1lbWJlck9mIFJcbiAqIEBzaW5jZSB2MC4xLjBcbiAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICogQHNpZyBhIC0+IGFcbiAqIEBwYXJhbSB7Kn0geCBUaGUgdmFsdWUgdG8gcmV0dXJuLlxuICogQHJldHVybiB7Kn0gVGhlIGlucHV0IHZhbHVlLCBgeGAuXG4gKiBAZXhhbXBsZVxuICpcbiAqICAgICAgUi5pZGVudGl0eSgxKTsgLy89PiAxXG4gKlxuICogICAgICBjb25zdCBvYmogPSB7fTtcbiAqICAgICAgUi5pZGVudGl0eShvYmopID09PSBvYmo7IC8vPT4gdHJ1ZVxuICogQHN5bWIgUi5pZGVudGl0eShhKSA9IGFcbiAqL1xuXG52YXIgaWRlbnRpdHkgPVxuLyojX19QVVJFX18qL1xuX2N1cnJ5MShfaWRlbnRpdHkpO1xuXG5leHBvcnQgZGVmYXVsdCBpZGVudGl0eTsiLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfYXJyYXlGcm9tSXRlcmF0b3IoaXRlcikge1xuICB2YXIgbGlzdCA9IFtdO1xuICB2YXIgbmV4dDtcblxuICB3aGlsZSAoIShuZXh0ID0gaXRlci5uZXh0KCkpLmRvbmUpIHtcbiAgICBsaXN0LnB1c2gobmV4dC52YWx1ZSk7XG4gIH1cblxuICByZXR1cm4gbGlzdDtcbn0iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfaW5jbHVkZXNXaXRoKHByZWQsIHgsIGxpc3QpIHtcbiAgdmFyIGlkeCA9IDA7XG4gIHZhciBsZW4gPSBsaXN0Lmxlbmd0aDtcblxuICB3aGlsZSAoaWR4IDwgbGVuKSB7XG4gICAgaWYgKHByZWQoeCwgbGlzdFtpZHhdKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWR4ICs9IDE7XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59IiwiLy8gQmFzZWQgb24gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvT2JqZWN0L2lzXG5mdW5jdGlvbiBfb2JqZWN0SXMoYSwgYikge1xuICAvLyBTYW1lVmFsdWUgYWxnb3JpdGhtXG4gIGlmIChhID09PSBiKSB7XG4gICAgLy8gU3RlcHMgMS01LCA3LTEwXG4gICAgLy8gU3RlcHMgNi5iLTYuZTogKzAgIT0gLTBcbiAgICByZXR1cm4gYSAhPT0gMCB8fCAxIC8gYSA9PT0gMSAvIGI7XG4gIH0gZWxzZSB7XG4gICAgLy8gU3RlcCA2LmE6IE5hTiA9PSBOYU5cbiAgICByZXR1cm4gYSAhPT0gYSAmJiBiICE9PSBiO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHR5cGVvZiBPYmplY3QuaXMgPT09ICdmdW5jdGlvbicgPyBPYmplY3QuaXMgOiBfb2JqZWN0SXM7IiwiaW1wb3J0IF9jdXJyeTEgZnJvbSBcIi4vaW50ZXJuYWwvX2N1cnJ5MS5qc1wiO1xuLyoqXG4gKiBHaXZlcyBhIHNpbmdsZS13b3JkIHN0cmluZyBkZXNjcmlwdGlvbiBvZiB0aGUgKG5hdGl2ZSkgdHlwZSBvZiBhIHZhbHVlLFxuICogcmV0dXJuaW5nIHN1Y2ggYW5zd2VycyBhcyAnT2JqZWN0JywgJ051bWJlcicsICdBcnJheScsIG9yICdOdWxsJy4gRG9lcyBub3RcbiAqIGF0dGVtcHQgdG8gZGlzdGluZ3Vpc2ggdXNlciBPYmplY3QgdHlwZXMgYW55IGZ1cnRoZXIsIHJlcG9ydGluZyB0aGVtIGFsbCBhc1xuICogJ09iamVjdCcuXG4gKlxuICogQGZ1bmNcbiAqIEBtZW1iZXJPZiBSXG4gKiBAc2luY2UgdjAuOC4wXG4gKiBAY2F0ZWdvcnkgVHlwZVxuICogQHNpZyAoKiAtPiB7Kn0pIC0+IFN0cmluZ1xuICogQHBhcmFtIHsqfSB2YWwgVGhlIHZhbHVlIHRvIHRlc3RcbiAqIEByZXR1cm4ge1N0cmluZ31cbiAqIEBleGFtcGxlXG4gKlxuICogICAgICBSLnR5cGUoe30pOyAvLz0+IFwiT2JqZWN0XCJcbiAqICAgICAgUi50eXBlKDEpOyAvLz0+IFwiTnVtYmVyXCJcbiAqICAgICAgUi50eXBlKGZhbHNlKTsgLy89PiBcIkJvb2xlYW5cIlxuICogICAgICBSLnR5cGUoJ3MnKTsgLy89PiBcIlN0cmluZ1wiXG4gKiAgICAgIFIudHlwZShudWxsKTsgLy89PiBcIk51bGxcIlxuICogICAgICBSLnR5cGUoW10pOyAvLz0+IFwiQXJyYXlcIlxuICogICAgICBSLnR5cGUoL1tBLXpdLyk7IC8vPT4gXCJSZWdFeHBcIlxuICogICAgICBSLnR5cGUoKCkgPT4ge30pOyAvLz0+IFwiRnVuY3Rpb25cIlxuICogICAgICBSLnR5cGUodW5kZWZpbmVkKTsgLy89PiBcIlVuZGVmaW5lZFwiXG4gKi9cblxudmFyIHR5cGUgPVxuLyojX19QVVJFX18qL1xuX2N1cnJ5MShmdW5jdGlvbiB0eXBlKHZhbCkge1xuICByZXR1cm4gdmFsID09PSBudWxsID8gJ051bGwnIDogdmFsID09PSB1bmRlZmluZWQgPyAnVW5kZWZpbmVkJyA6IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh2YWwpLnNsaWNlKDgsIC0xKTtcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCB0eXBlOyIsImltcG9ydCBfYXJyYXlGcm9tSXRlcmF0b3IgZnJvbSBcIi4vX2FycmF5RnJvbUl0ZXJhdG9yLmpzXCI7XG5pbXBvcnQgX2luY2x1ZGVzV2l0aCBmcm9tIFwiLi9faW5jbHVkZXNXaXRoLmpzXCI7XG5pbXBvcnQgX2Z1bmN0aW9uTmFtZSBmcm9tIFwiLi9fZnVuY3Rpb25OYW1lLmpzXCI7XG5pbXBvcnQgX2hhcyBmcm9tIFwiLi9faGFzLmpzXCI7XG5pbXBvcnQgX29iamVjdElzIGZyb20gXCIuL19vYmplY3RJcy5qc1wiO1xuaW1wb3J0IGtleXMgZnJvbSBcIi4uL2tleXMuanNcIjtcbmltcG9ydCB0eXBlIGZyb20gXCIuLi90eXBlLmpzXCI7XG4vKipcbiAqIHByaXZhdGUgX3VuaXFDb250ZW50RXF1YWxzIGZ1bmN0aW9uLlxuICogVGhhdCBmdW5jdGlvbiBpcyBjaGVja2luZyBlcXVhbGl0eSBvZiAyIGl0ZXJhdG9yIGNvbnRlbnRzIHdpdGggMiBhc3N1bXB0aW9uc1xuICogLSBpdGVyYXRvcnMgbGVuZ3RocyBhcmUgdGhlIHNhbWVcbiAqIC0gaXRlcmF0b3JzIHZhbHVlcyBhcmUgdW5pcXVlXG4gKlxuICogZmFsc2UtcG9zaXRpdmUgcmVzdWx0IHdpbGwgYmUgcmV0dXJuZWQgZm9yIGNvbXBhcmlzaW9uIG9mLCBlLmcuXG4gKiAtIFsxLDIsM10gYW5kIFsxLDIsMyw0XVxuICogLSBbMSwxLDFdIGFuZCBbMSwyLDNdXG4gKiAqL1xuXG5mdW5jdGlvbiBfdW5pcUNvbnRlbnRFcXVhbHMoYUl0ZXJhdG9yLCBiSXRlcmF0b3IsIHN0YWNrQSwgc3RhY2tCKSB7XG4gIHZhciBhID0gX2FycmF5RnJvbUl0ZXJhdG9yKGFJdGVyYXRvcik7XG5cbiAgdmFyIGIgPSBfYXJyYXlGcm9tSXRlcmF0b3IoYkl0ZXJhdG9yKTtcblxuICBmdW5jdGlvbiBlcShfYSwgX2IpIHtcbiAgICByZXR1cm4gX2VxdWFscyhfYSwgX2IsIHN0YWNrQS5zbGljZSgpLCBzdGFja0Iuc2xpY2UoKSk7XG4gIH0gLy8gaWYgKmEqIGFycmF5IGNvbnRhaW5zIGFueSBlbGVtZW50IHRoYXQgaXMgbm90IGluY2x1ZGVkIGluICpiKlxuXG5cbiAgcmV0dXJuICFfaW5jbHVkZXNXaXRoKGZ1bmN0aW9uIChiLCBhSXRlbSkge1xuICAgIHJldHVybiAhX2luY2x1ZGVzV2l0aChlcSwgYUl0ZW0sIGIpO1xuICB9LCBiLCBhKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX2VxdWFscyhhLCBiLCBzdGFja0EsIHN0YWNrQikge1xuICBpZiAoX29iamVjdElzKGEsIGIpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICB2YXIgdHlwZUEgPSB0eXBlKGEpO1xuXG4gIGlmICh0eXBlQSAhPT0gdHlwZShiKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmIChhID09IG51bGwgfHwgYiA9PSBudWxsKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBhWydmYW50YXN5LWxhbmQvZXF1YWxzJ10gPT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIGJbJ2ZhbnRhc3ktbGFuZC9lcXVhbHMnXSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiB0eXBlb2YgYVsnZmFudGFzeS1sYW5kL2VxdWFscyddID09PSAnZnVuY3Rpb24nICYmIGFbJ2ZhbnRhc3ktbGFuZC9lcXVhbHMnXShiKSAmJiB0eXBlb2YgYlsnZmFudGFzeS1sYW5kL2VxdWFscyddID09PSAnZnVuY3Rpb24nICYmIGJbJ2ZhbnRhc3ktbGFuZC9lcXVhbHMnXShhKTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgYS5lcXVhbHMgPT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIGIuZXF1YWxzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBhLmVxdWFscyA9PT0gJ2Z1bmN0aW9uJyAmJiBhLmVxdWFscyhiKSAmJiB0eXBlb2YgYi5lcXVhbHMgPT09ICdmdW5jdGlvbicgJiYgYi5lcXVhbHMoYSk7XG4gIH1cblxuICBzd2l0Y2ggKHR5cGVBKSB7XG4gICAgY2FzZSAnQXJndW1lbnRzJzpcbiAgICBjYXNlICdBcnJheSc6XG4gICAgY2FzZSAnT2JqZWN0JzpcbiAgICAgIGlmICh0eXBlb2YgYS5jb25zdHJ1Y3RvciA9PT0gJ2Z1bmN0aW9uJyAmJiBfZnVuY3Rpb25OYW1lKGEuY29uc3RydWN0b3IpID09PSAnUHJvbWlzZScpIHtcbiAgICAgICAgcmV0dXJuIGEgPT09IGI7XG4gICAgICB9XG5cbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnQm9vbGVhbic6XG4gICAgY2FzZSAnTnVtYmVyJzpcbiAgICBjYXNlICdTdHJpbmcnOlxuICAgICAgaWYgKCEodHlwZW9mIGEgPT09IHR5cGVvZiBiICYmIF9vYmplY3RJcyhhLnZhbHVlT2YoKSwgYi52YWx1ZU9mKCkpKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnRGF0ZSc6XG4gICAgICBpZiAoIV9vYmplY3RJcyhhLnZhbHVlT2YoKSwgYi52YWx1ZU9mKCkpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdFcnJvcic6XG4gICAgICByZXR1cm4gYS5uYW1lID09PSBiLm5hbWUgJiYgYS5tZXNzYWdlID09PSBiLm1lc3NhZ2U7XG5cbiAgICBjYXNlICdSZWdFeHAnOlxuICAgICAgaWYgKCEoYS5zb3VyY2UgPT09IGIuc291cmNlICYmIGEuZ2xvYmFsID09PSBiLmdsb2JhbCAmJiBhLmlnbm9yZUNhc2UgPT09IGIuaWdub3JlQ2FzZSAmJiBhLm11bHRpbGluZSA9PT0gYi5tdWx0aWxpbmUgJiYgYS5zdGlja3kgPT09IGIuc3RpY2t5ICYmIGEudW5pY29kZSA9PT0gYi51bmljb2RlKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgdmFyIGlkeCA9IHN0YWNrQS5sZW5ndGggLSAxO1xuXG4gIHdoaWxlIChpZHggPj0gMCkge1xuICAgIGlmIChzdGFja0FbaWR4XSA9PT0gYSkge1xuICAgICAgcmV0dXJuIHN0YWNrQltpZHhdID09PSBiO1xuICAgIH1cblxuICAgIGlkeCAtPSAxO1xuICB9XG5cbiAgc3dpdGNoICh0eXBlQSkge1xuICAgIGNhc2UgJ01hcCc6XG4gICAgICBpZiAoYS5zaXplICE9PSBiLnNpemUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gX3VuaXFDb250ZW50RXF1YWxzKGEuZW50cmllcygpLCBiLmVudHJpZXMoKSwgc3RhY2tBLmNvbmNhdChbYV0pLCBzdGFja0IuY29uY2F0KFtiXSkpO1xuXG4gICAgY2FzZSAnU2V0JzpcbiAgICAgIGlmIChhLnNpemUgIT09IGIuc2l6ZSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBfdW5pcUNvbnRlbnRFcXVhbHMoYS52YWx1ZXMoKSwgYi52YWx1ZXMoKSwgc3RhY2tBLmNvbmNhdChbYV0pLCBzdGFja0IuY29uY2F0KFtiXSkpO1xuXG4gICAgY2FzZSAnQXJndW1lbnRzJzpcbiAgICBjYXNlICdBcnJheSc6XG4gICAgY2FzZSAnT2JqZWN0JzpcbiAgICBjYXNlICdCb29sZWFuJzpcbiAgICBjYXNlICdOdW1iZXInOlxuICAgIGNhc2UgJ1N0cmluZyc6XG4gICAgY2FzZSAnRGF0ZSc6XG4gICAgY2FzZSAnRXJyb3InOlxuICAgIGNhc2UgJ1JlZ0V4cCc6XG4gICAgY2FzZSAnSW50OEFycmF5JzpcbiAgICBjYXNlICdVaW50OEFycmF5JzpcbiAgICBjYXNlICdVaW50OENsYW1wZWRBcnJheSc6XG4gICAgY2FzZSAnSW50MTZBcnJheSc6XG4gICAgY2FzZSAnVWludDE2QXJyYXknOlxuICAgIGNhc2UgJ0ludDMyQXJyYXknOlxuICAgIGNhc2UgJ1VpbnQzMkFycmF5JzpcbiAgICBjYXNlICdGbG9hdDMyQXJyYXknOlxuICAgIGNhc2UgJ0Zsb2F0NjRBcnJheSc6XG4gICAgY2FzZSAnQXJyYXlCdWZmZXInOlxuICAgICAgYnJlYWs7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgLy8gVmFsdWVzIG9mIG90aGVyIHR5cGVzIGFyZSBvbmx5IGVxdWFsIGlmIGlkZW50aWNhbC5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHZhciBrZXlzQSA9IGtleXMoYSk7XG5cbiAgaWYgKGtleXNBLmxlbmd0aCAhPT0ga2V5cyhiKS5sZW5ndGgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB2YXIgZXh0ZW5kZWRTdGFja0EgPSBzdGFja0EuY29uY2F0KFthXSk7XG4gIHZhciBleHRlbmRlZFN0YWNrQiA9IHN0YWNrQi5jb25jYXQoW2JdKTtcbiAgaWR4ID0ga2V5c0EubGVuZ3RoIC0gMTtcblxuICB3aGlsZSAoaWR4ID49IDApIHtcbiAgICB2YXIga2V5ID0ga2V5c0FbaWR4XTtcblxuICAgIGlmICghKF9oYXMoa2V5LCBiKSAmJiBfZXF1YWxzKGJba2V5XSwgYVtrZXldLCBleHRlbmRlZFN0YWNrQSwgZXh0ZW5kZWRTdGFja0IpKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlkeCAtPSAxO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59IiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX2Z1bmN0aW9uTmFtZShmKSB7XG4gIC8vIFN0cmluZyh4ID0+IHgpIGV2YWx1YXRlcyB0byBcInggPT4geFwiLCBzbyB0aGUgcGF0dGVybiBtYXkgbm90IG1hdGNoLlxuICB2YXIgbWF0Y2ggPSBTdHJpbmcoZikubWF0Y2goL15mdW5jdGlvbiAoXFx3KikvKTtcbiAgcmV0dXJuIG1hdGNoID09IG51bGwgPyAnJyA6IG1hdGNoWzFdO1xufSIsImltcG9ydCBfY3VycnkyIGZyb20gXCIuL2ludGVybmFsL19jdXJyeTIuanNcIjtcbmltcG9ydCBfZXF1YWxzIGZyb20gXCIuL2ludGVybmFsL19lcXVhbHMuanNcIjtcbi8qKlxuICogUmV0dXJucyBgdHJ1ZWAgaWYgaXRzIGFyZ3VtZW50cyBhcmUgZXF1aXZhbGVudCwgYGZhbHNlYCBvdGhlcndpc2UuIEhhbmRsZXNcbiAqIGN5Y2xpY2FsIGRhdGEgc3RydWN0dXJlcy5cbiAqXG4gKiBEaXNwYXRjaGVzIHN5bW1ldHJpY2FsbHkgdG8gdGhlIGBlcXVhbHNgIG1ldGhvZHMgb2YgYm90aCBhcmd1bWVudHMsIGlmXG4gKiBwcmVzZW50LlxuICpcbiAqIEBmdW5jXG4gKiBAbWVtYmVyT2YgUlxuICogQHNpbmNlIHYwLjE1LjBcbiAqIEBjYXRlZ29yeSBSZWxhdGlvblxuICogQHNpZyBhIC0+IGIgLT4gQm9vbGVhblxuICogQHBhcmFtIHsqfSBhXG4gKiBAcGFyYW0geyp9IGJcbiAqIEByZXR1cm4ge0Jvb2xlYW59XG4gKiBAZXhhbXBsZVxuICpcbiAqICAgICAgUi5lcXVhbHMoMSwgMSk7IC8vPT4gdHJ1ZVxuICogICAgICBSLmVxdWFscygxLCAnMScpOyAvLz0+IGZhbHNlXG4gKiAgICAgIFIuZXF1YWxzKFsxLCAyLCAzXSwgWzEsIDIsIDNdKTsgLy89PiB0cnVlXG4gKlxuICogICAgICBjb25zdCBhID0ge307IGEudiA9IGE7XG4gKiAgICAgIGNvbnN0IGIgPSB7fTsgYi52ID0gYjtcbiAqICAgICAgUi5lcXVhbHMoYSwgYik7IC8vPT4gdHJ1ZVxuICovXG5cbnZhciBlcXVhbHMgPVxuLyojX19QVVJFX18qL1xuX2N1cnJ5MihmdW5jdGlvbiBlcXVhbHMoYSwgYikge1xuICByZXR1cm4gX2VxdWFscyhhLCBiLCBbXSwgW10pO1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IGVxdWFsczsiLCJpbXBvcnQgZXF1YWxzIGZyb20gXCIuLi9lcXVhbHMuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9pbmRleE9mKGxpc3QsIGEsIGlkeCkge1xuICB2YXIgaW5mLCBpdGVtOyAvLyBBcnJheS5wcm90b3R5cGUuaW5kZXhPZiBkb2Vzbid0IGV4aXN0IGJlbG93IElFOVxuXG4gIGlmICh0eXBlb2YgbGlzdC5pbmRleE9mID09PSAnZnVuY3Rpb24nKSB7XG4gICAgc3dpdGNoICh0eXBlb2YgYSkge1xuICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgICAgaWYgKGEgPT09IDApIHtcbiAgICAgICAgICAvLyBtYW51YWxseSBjcmF3bCB0aGUgbGlzdCB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuICswIGFuZCAtMFxuICAgICAgICAgIGluZiA9IDEgLyBhO1xuXG4gICAgICAgICAgd2hpbGUgKGlkeCA8IGxpc3QubGVuZ3RoKSB7XG4gICAgICAgICAgICBpdGVtID0gbGlzdFtpZHhdO1xuXG4gICAgICAgICAgICBpZiAoaXRlbSA9PT0gMCAmJiAxIC8gaXRlbSA9PT0gaW5mKSB7XG4gICAgICAgICAgICAgIHJldHVybiBpZHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlkeCArPSAxO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgfSBlbHNlIGlmIChhICE9PSBhKSB7XG4gICAgICAgICAgLy8gTmFOXG4gICAgICAgICAgd2hpbGUgKGlkeCA8IGxpc3QubGVuZ3RoKSB7XG4gICAgICAgICAgICBpdGVtID0gbGlzdFtpZHhdO1xuXG4gICAgICAgICAgICBpZiAodHlwZW9mIGl0ZW0gPT09ICdudW1iZXInICYmIGl0ZW0gIT09IGl0ZW0pIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGlkeDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWR4ICs9IDE7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICB9IC8vIG5vbi16ZXJvIG51bWJlcnMgY2FuIHV0aWxpc2UgU2V0XG5cblxuICAgICAgICByZXR1cm4gbGlzdC5pbmRleE9mKGEsIGlkeCk7XG4gICAgICAvLyBhbGwgdGhlc2UgdHlwZXMgY2FuIHV0aWxpc2UgU2V0XG5cbiAgICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICBjYXNlICdib29sZWFuJzpcbiAgICAgIGNhc2UgJ2Z1bmN0aW9uJzpcbiAgICAgIGNhc2UgJ3VuZGVmaW5lZCc6XG4gICAgICAgIHJldHVybiBsaXN0LmluZGV4T2YoYSwgaWR4KTtcblxuICAgICAgY2FzZSAnb2JqZWN0JzpcbiAgICAgICAgaWYgKGEgPT09IG51bGwpIHtcbiAgICAgICAgICAvLyBudWxsIGNhbiB1dGlsaXNlIFNldFxuICAgICAgICAgIHJldHVybiBsaXN0LmluZGV4T2YoYSwgaWR4KTtcbiAgICAgICAgfVxuXG4gICAgfVxuICB9IC8vIGFueXRoaW5nIGVsc2Ugbm90IGNvdmVyZWQgYWJvdmUsIGRlZmVyIHRvIFIuZXF1YWxzXG5cblxuICB3aGlsZSAoaWR4IDwgbGlzdC5sZW5ndGgpIHtcbiAgICBpZiAoZXF1YWxzKGxpc3RbaWR4XSwgYSkpIHtcbiAgICAgIHJldHVybiBpZHg7XG4gICAgfVxuXG4gICAgaWR4ICs9IDE7XG4gIH1cblxuICByZXR1cm4gLTE7XG59IiwiaW1wb3J0IF9pbmRleE9mIGZyb20gXCIuL19pbmRleE9mLmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfaW5jbHVkZXMoYSwgbGlzdCkge1xuICByZXR1cm4gX2luZGV4T2YobGlzdCwgYSwgMCkgPj0gMDtcbn0iLCJpbXBvcnQgX2luY2x1ZGVzIGZyb20gXCIuL19pbmNsdWRlcy5qc1wiO1xuXG52YXIgX1NldCA9XG4vKiNfX1BVUkVfXyovXG5mdW5jdGlvbiAoKSB7XG4gIGZ1bmN0aW9uIF9TZXQoKSB7XG4gICAgLyogZ2xvYmFscyBTZXQgKi9cbiAgICB0aGlzLl9uYXRpdmVTZXQgPSB0eXBlb2YgU2V0ID09PSAnZnVuY3Rpb24nID8gbmV3IFNldCgpIDogbnVsbDtcbiAgICB0aGlzLl9pdGVtcyA9IHt9O1xuICB9XG5cbiAgLy8gdW50aWwgd2UgZmlndXJlIG91dCB3aHkganNkb2MgY2hva2VzIG9uIHRoaXNcbiAgLy8gQHBhcmFtIGl0ZW0gVGhlIGl0ZW0gdG8gYWRkIHRvIHRoZSBTZXRcbiAgLy8gQHJldHVybnMge2Jvb2xlYW59IHRydWUgaWYgdGhlIGl0ZW0gZGlkIG5vdCBleGlzdCBwcmlvciwgb3RoZXJ3aXNlIGZhbHNlXG4gIC8vXG4gIF9TZXQucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgcmV0dXJuICFoYXNPckFkZChpdGVtLCB0cnVlLCB0aGlzKTtcbiAgfTsgLy9cbiAgLy8gQHBhcmFtIGl0ZW0gVGhlIGl0ZW0gdG8gY2hlY2sgZm9yIGV4aXN0ZW5jZSBpbiB0aGUgU2V0XG4gIC8vIEByZXR1cm5zIHtib29sZWFufSB0cnVlIGlmIHRoZSBpdGVtIGV4aXN0cyBpbiB0aGUgU2V0LCBvdGhlcndpc2UgZmFsc2VcbiAgLy9cblxuXG4gIF9TZXQucHJvdG90eXBlLmhhcyA9IGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgcmV0dXJuIGhhc09yQWRkKGl0ZW0sIGZhbHNlLCB0aGlzKTtcbiAgfTsgLy9cbiAgLy8gQ29tYmluZXMgdGhlIGxvZ2ljIGZvciBjaGVja2luZyB3aGV0aGVyIGFuIGl0ZW0gaXMgYSBtZW1iZXIgb2YgdGhlIHNldCBhbmRcbiAgLy8gZm9yIGFkZGluZyBhIG5ldyBpdGVtIHRvIHRoZSBzZXQuXG4gIC8vXG4gIC8vIEBwYXJhbSBpdGVtICAgICAgIFRoZSBpdGVtIHRvIGNoZWNrIG9yIGFkZCB0byB0aGUgU2V0IGluc3RhbmNlLlxuICAvLyBAcGFyYW0gc2hvdWxkQWRkICBJZiB0cnVlLCB0aGUgaXRlbSB3aWxsIGJlIGFkZGVkIHRvIHRoZSBzZXQgaWYgaXQgZG9lc24ndFxuICAvLyAgICAgICAgICAgICAgICAgICBhbHJlYWR5IGV4aXN0LlxuICAvLyBAcGFyYW0gc2V0ICAgICAgICBUaGUgc2V0IGluc3RhbmNlIHRvIGNoZWNrIG9yIGFkZCB0by5cbiAgLy8gQHJldHVybiB7Ym9vbGVhbn0gdHJ1ZSBpZiB0aGUgaXRlbSBhbHJlYWR5IGV4aXN0ZWQsIG90aGVyd2lzZSBmYWxzZS5cbiAgLy9cblxuXG4gIHJldHVybiBfU2V0O1xufSgpO1xuXG5mdW5jdGlvbiBoYXNPckFkZChpdGVtLCBzaG91bGRBZGQsIHNldCkge1xuICB2YXIgdHlwZSA9IHR5cGVvZiBpdGVtO1xuICB2YXIgcHJldlNpemUsIG5ld1NpemU7XG5cbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSAnc3RyaW5nJzpcbiAgICBjYXNlICdudW1iZXInOlxuICAgICAgLy8gZGlzdGluZ3Vpc2ggYmV0d2VlbiArMCBhbmQgLTBcbiAgICAgIGlmIChpdGVtID09PSAwICYmIDEgLyBpdGVtID09PSAtSW5maW5pdHkpIHtcbiAgICAgICAgaWYgKHNldC5faXRlbXNbJy0wJ10pIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoc2hvdWxkQWRkKSB7XG4gICAgICAgICAgICBzZXQuX2l0ZW1zWyctMCddID0gdHJ1ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0gLy8gdGhlc2UgdHlwZXMgY2FuIGFsbCB1dGlsaXNlIHRoZSBuYXRpdmUgU2V0XG5cblxuICAgICAgaWYgKHNldC5fbmF0aXZlU2V0ICE9PSBudWxsKSB7XG4gICAgICAgIGlmIChzaG91bGRBZGQpIHtcbiAgICAgICAgICBwcmV2U2l6ZSA9IHNldC5fbmF0aXZlU2V0LnNpemU7XG5cbiAgICAgICAgICBzZXQuX25hdGl2ZVNldC5hZGQoaXRlbSk7XG5cbiAgICAgICAgICBuZXdTaXplID0gc2V0Ll9uYXRpdmVTZXQuc2l6ZTtcbiAgICAgICAgICByZXR1cm4gbmV3U2l6ZSA9PT0gcHJldlNpemU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHNldC5fbmF0aXZlU2V0LmhhcyhpdGVtKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKCEodHlwZSBpbiBzZXQuX2l0ZW1zKSkge1xuICAgICAgICAgIGlmIChzaG91bGRBZGQpIHtcbiAgICAgICAgICAgIHNldC5faXRlbXNbdHlwZV0gPSB7fTtcbiAgICAgICAgICAgIHNldC5faXRlbXNbdHlwZV1baXRlbV0gPSB0cnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSBlbHNlIGlmIChpdGVtIGluIHNldC5faXRlbXNbdHlwZV0pIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoc2hvdWxkQWRkKSB7XG4gICAgICAgICAgICBzZXQuX2l0ZW1zW3R5cGVdW2l0ZW1dID0gdHJ1ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgLy8gc2V0Ll9pdGVtc1snYm9vbGVhbiddIGhvbGRzIGEgdHdvIGVsZW1lbnQgYXJyYXlcbiAgICAgIC8vIHJlcHJlc2VudGluZyBbIGZhbHNlRXhpc3RzLCB0cnVlRXhpc3RzIF1cbiAgICAgIGlmICh0eXBlIGluIHNldC5faXRlbXMpIHtcbiAgICAgICAgdmFyIGJJZHggPSBpdGVtID8gMSA6IDA7XG5cbiAgICAgICAgaWYgKHNldC5faXRlbXNbdHlwZV1bYklkeF0pIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoc2hvdWxkQWRkKSB7XG4gICAgICAgICAgICBzZXQuX2l0ZW1zW3R5cGVdW2JJZHhdID0gdHJ1ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChzaG91bGRBZGQpIHtcbiAgICAgICAgICBzZXQuX2l0ZW1zW3R5cGVdID0gaXRlbSA/IFtmYWxzZSwgdHJ1ZV0gOiBbdHJ1ZSwgZmFsc2VdO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgY2FzZSAnZnVuY3Rpb24nOlxuICAgICAgLy8gY29tcGFyZSBmdW5jdGlvbnMgZm9yIHJlZmVyZW5jZSBlcXVhbGl0eVxuICAgICAgaWYgKHNldC5fbmF0aXZlU2V0ICE9PSBudWxsKSB7XG4gICAgICAgIGlmIChzaG91bGRBZGQpIHtcbiAgICAgICAgICBwcmV2U2l6ZSA9IHNldC5fbmF0aXZlU2V0LnNpemU7XG5cbiAgICAgICAgICBzZXQuX25hdGl2ZVNldC5hZGQoaXRlbSk7XG5cbiAgICAgICAgICBuZXdTaXplID0gc2V0Ll9uYXRpdmVTZXQuc2l6ZTtcbiAgICAgICAgICByZXR1cm4gbmV3U2l6ZSA9PT0gcHJldlNpemU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHNldC5fbmF0aXZlU2V0LmhhcyhpdGVtKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKCEodHlwZSBpbiBzZXQuX2l0ZW1zKSkge1xuICAgICAgICAgIGlmIChzaG91bGRBZGQpIHtcbiAgICAgICAgICAgIHNldC5faXRlbXNbdHlwZV0gPSBbaXRlbV07XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFfaW5jbHVkZXMoaXRlbSwgc2V0Ll9pdGVtc1t0eXBlXSkpIHtcbiAgICAgICAgICBpZiAoc2hvdWxkQWRkKSB7XG4gICAgICAgICAgICBzZXQuX2l0ZW1zW3R5cGVdLnB1c2goaXRlbSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICBjYXNlICd1bmRlZmluZWQnOlxuICAgICAgaWYgKHNldC5faXRlbXNbdHlwZV0pIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoc2hvdWxkQWRkKSB7XG4gICAgICAgICAgc2V0Ll9pdGVtc1t0eXBlXSA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICBjYXNlICdvYmplY3QnOlxuICAgICAgaWYgKGl0ZW0gPT09IG51bGwpIHtcbiAgICAgICAgaWYgKCFzZXQuX2l0ZW1zWydudWxsJ10pIHtcbiAgICAgICAgICBpZiAoc2hvdWxkQWRkKSB7XG4gICAgICAgICAgICBzZXQuX2l0ZW1zWydudWxsJ10gPSB0cnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgLyogZmFsbHMgdGhyb3VnaCAqL1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIC8vIHJlZHVjZSB0aGUgc2VhcmNoIHNpemUgb2YgaGV0ZXJvZ2VuZW91cyBzZXRzIGJ5IGNyZWF0aW5nIGJ1Y2tldHNcbiAgICAgIC8vIGZvciBlYWNoIHR5cGUuXG4gICAgICB0eXBlID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGl0ZW0pO1xuXG4gICAgICBpZiAoISh0eXBlIGluIHNldC5faXRlbXMpKSB7XG4gICAgICAgIGlmIChzaG91bGRBZGQpIHtcbiAgICAgICAgICBzZXQuX2l0ZW1zW3R5cGVdID0gW2l0ZW1dO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfSAvLyBzY2FuIHRocm91Z2ggYWxsIHByZXZpb3VzbHkgYXBwbGllZCBpdGVtc1xuXG5cbiAgICAgIGlmICghX2luY2x1ZGVzKGl0ZW0sIHNldC5faXRlbXNbdHlwZV0pKSB7XG4gICAgICAgIGlmIChzaG91bGRBZGQpIHtcbiAgICAgICAgICBzZXQuX2l0ZW1zW3R5cGVdLnB1c2goaXRlbSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0cnVlO1xuICB9XG59IC8vIEEgc2ltcGxlIFNldCB0eXBlIHRoYXQgaG9ub3VycyBSLmVxdWFscyBzZW1hbnRpY3NcblxuXG5leHBvcnQgZGVmYXVsdCBfU2V0OyIsImltcG9ydCBpZGVudGl0eSBmcm9tIFwiLi9pZGVudGl0eS5qc1wiO1xuaW1wb3J0IHVuaXFCeSBmcm9tIFwiLi91bmlxQnkuanNcIjtcbi8qKlxuICogUmV0dXJucyBhIG5ldyBsaXN0IGNvbnRhaW5pbmcgb25seSBvbmUgY29weSBvZiBlYWNoIGVsZW1lbnQgaW4gdGhlIG9yaWdpbmFsXG4gKiBsaXN0LiBbYFIuZXF1YWxzYF0oI2VxdWFscykgaXMgdXNlZCB0byBkZXRlcm1pbmUgZXF1YWxpdHkuXG4gKlxuICogQGZ1bmNcbiAqIEBtZW1iZXJPZiBSXG4gKiBAc2luY2UgdjAuMS4wXG4gKiBAY2F0ZWdvcnkgTGlzdFxuICogQHNpZyBbYV0gLT4gW2FdXG4gKiBAcGFyYW0ge0FycmF5fSBsaXN0IFRoZSBhcnJheSB0byBjb25zaWRlci5cbiAqIEByZXR1cm4ge0FycmF5fSBUaGUgbGlzdCBvZiB1bmlxdWUgaXRlbXMuXG4gKiBAZXhhbXBsZVxuICpcbiAqICAgICAgUi51bmlxKFsxLCAxLCAyLCAxXSk7IC8vPT4gWzEsIDJdXG4gKiAgICAgIFIudW5pcShbMSwgJzEnXSk7ICAgICAvLz0+IFsxLCAnMSddXG4gKiAgICAgIFIudW5pcShbWzQyXSwgWzQyXV0pOyAvLz0+IFtbNDJdXVxuICovXG5cbnZhciB1bmlxID1cbi8qI19fUFVSRV9fKi9cbnVuaXFCeShpZGVudGl0eSk7XG5leHBvcnQgZGVmYXVsdCB1bmlxOyIsImltcG9ydCBfU2V0IGZyb20gXCIuL2ludGVybmFsL19TZXQuanNcIjtcbmltcG9ydCBfY3VycnkyIGZyb20gXCIuL2ludGVybmFsL19jdXJyeTIuanNcIjtcbi8qKlxuICogUmV0dXJucyBhIG5ldyBsaXN0IGNvbnRhaW5pbmcgb25seSBvbmUgY29weSBvZiBlYWNoIGVsZW1lbnQgaW4gdGhlIG9yaWdpbmFsXG4gKiBsaXN0LCBiYXNlZCB1cG9uIHRoZSB2YWx1ZSByZXR1cm5lZCBieSBhcHBseWluZyB0aGUgc3VwcGxpZWQgZnVuY3Rpb24gdG9cbiAqIGVhY2ggbGlzdCBlbGVtZW50LiBQcmVmZXJzIHRoZSBmaXJzdCBpdGVtIGlmIHRoZSBzdXBwbGllZCBmdW5jdGlvbiBwcm9kdWNlc1xuICogdGhlIHNhbWUgdmFsdWUgb24gdHdvIGl0ZW1zLiBbYFIuZXF1YWxzYF0oI2VxdWFscykgaXMgdXNlZCBmb3IgY29tcGFyaXNvbi5cbiAqXG4gKiBAZnVuY1xuICogQG1lbWJlck9mIFJcbiAqIEBzaW5jZSB2MC4xNi4wXG4gKiBAY2F0ZWdvcnkgTGlzdFxuICogQHNpZyAoYSAtPiBiKSAtPiBbYV0gLT4gW2FdXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmbiBBIGZ1bmN0aW9uIHVzZWQgdG8gcHJvZHVjZSBhIHZhbHVlIHRvIHVzZSBkdXJpbmcgY29tcGFyaXNvbnMuXG4gKiBAcGFyYW0ge0FycmF5fSBsaXN0IFRoZSBhcnJheSB0byBjb25zaWRlci5cbiAqIEByZXR1cm4ge0FycmF5fSBUaGUgbGlzdCBvZiB1bmlxdWUgaXRlbXMuXG4gKiBAZXhhbXBsZVxuICpcbiAqICAgICAgUi51bmlxQnkoTWF0aC5hYnMsIFstMSwgLTUsIDIsIDEwLCAxLCAyXSk7IC8vPT4gWy0xLCAtNSwgMiwgMTBdXG4gKi9cblxudmFyIHVuaXFCeSA9XG4vKiNfX1BVUkVfXyovXG5fY3VycnkyKGZ1bmN0aW9uIHVuaXFCeShmbiwgbGlzdCkge1xuICB2YXIgc2V0ID0gbmV3IF9TZXQoKTtcbiAgdmFyIHJlc3VsdCA9IFtdO1xuICB2YXIgaWR4ID0gMDtcbiAgdmFyIGFwcGxpZWRJdGVtLCBpdGVtO1xuXG4gIHdoaWxlIChpZHggPCBsaXN0Lmxlbmd0aCkge1xuICAgIGl0ZW0gPSBsaXN0W2lkeF07XG4gICAgYXBwbGllZEl0ZW0gPSBmbihpdGVtKTtcblxuICAgIGlmIChzZXQuYWRkKGFwcGxpZWRJdGVtKSkge1xuICAgICAgcmVzdWx0LnB1c2goaXRlbSk7XG4gICAgfVxuXG4gICAgaWR4ICs9IDE7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IHVuaXFCeTsiLCJpbXBvcnQgX2N1cnJ5MiBmcm9tIFwiLi9fY3VycnkyLmpzXCI7XG5pbXBvcnQgX3hmQmFzZSBmcm9tIFwiLi9feGZCYXNlLmpzXCI7XG5cbnZhciBYRmlsdGVyID1cbi8qI19fUFVSRV9fKi9cbmZ1bmN0aW9uICgpIHtcbiAgZnVuY3Rpb24gWEZpbHRlcihmLCB4Zikge1xuICAgIHRoaXMueGYgPSB4ZjtcbiAgICB0aGlzLmYgPSBmO1xuICB9XG5cbiAgWEZpbHRlci5wcm90b3R5cGVbJ0BAdHJhbnNkdWNlci9pbml0J10gPSBfeGZCYXNlLmluaXQ7XG4gIFhGaWx0ZXIucHJvdG90eXBlWydAQHRyYW5zZHVjZXIvcmVzdWx0J10gPSBfeGZCYXNlLnJlc3VsdDtcblxuICBYRmlsdGVyLnByb3RvdHlwZVsnQEB0cmFuc2R1Y2VyL3N0ZXAnXSA9IGZ1bmN0aW9uIChyZXN1bHQsIGlucHV0KSB7XG4gICAgcmV0dXJuIHRoaXMuZihpbnB1dCkgPyB0aGlzLnhmWydAQHRyYW5zZHVjZXIvc3RlcCddKHJlc3VsdCwgaW5wdXQpIDogcmVzdWx0O1xuICB9O1xuXG4gIHJldHVybiBYRmlsdGVyO1xufSgpO1xuXG52YXIgX3hmaWx0ZXIgPVxuLyojX19QVVJFX18qL1xuX2N1cnJ5MihmdW5jdGlvbiBfeGZpbHRlcihmLCB4Zikge1xuICByZXR1cm4gbmV3IFhGaWx0ZXIoZiwgeGYpO1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IF94ZmlsdGVyOyIsImltcG9ydCBfY3VycnkyIGZyb20gXCIuL2ludGVybmFsL19jdXJyeTIuanNcIjtcbmltcG9ydCBfZGlzcGF0Y2hhYmxlIGZyb20gXCIuL2ludGVybmFsL19kaXNwYXRjaGFibGUuanNcIjtcbmltcG9ydCBfZmlsdGVyIGZyb20gXCIuL2ludGVybmFsL19maWx0ZXIuanNcIjtcbmltcG9ydCBfaXNPYmplY3QgZnJvbSBcIi4vaW50ZXJuYWwvX2lzT2JqZWN0LmpzXCI7XG5pbXBvcnQgX3JlZHVjZSBmcm9tIFwiLi9pbnRlcm5hbC9fcmVkdWNlLmpzXCI7XG5pbXBvcnQgX3hmaWx0ZXIgZnJvbSBcIi4vaW50ZXJuYWwvX3hmaWx0ZXIuanNcIjtcbmltcG9ydCBrZXlzIGZyb20gXCIuL2tleXMuanNcIjtcbi8qKlxuICogVGFrZXMgYSBwcmVkaWNhdGUgYW5kIGEgYEZpbHRlcmFibGVgLCBhbmQgcmV0dXJucyBhIG5ldyBmaWx0ZXJhYmxlIG9mIHRoZVxuICogc2FtZSB0eXBlIGNvbnRhaW5pbmcgdGhlIG1lbWJlcnMgb2YgdGhlIGdpdmVuIGZpbHRlcmFibGUgd2hpY2ggc2F0aXNmeSB0aGVcbiAqIGdpdmVuIHByZWRpY2F0ZS4gRmlsdGVyYWJsZSBvYmplY3RzIGluY2x1ZGUgcGxhaW4gb2JqZWN0cyBvciBhbnkgb2JqZWN0XG4gKiB0aGF0IGhhcyBhIGZpbHRlciBtZXRob2Qgc3VjaCBhcyBgQXJyYXlgLlxuICpcbiAqIERpc3BhdGNoZXMgdG8gdGhlIGBmaWx0ZXJgIG1ldGhvZCBvZiB0aGUgc2Vjb25kIGFyZ3VtZW50LCBpZiBwcmVzZW50LlxuICpcbiAqIEFjdHMgYXMgYSB0cmFuc2R1Y2VyIGlmIGEgdHJhbnNmb3JtZXIgaXMgZ2l2ZW4gaW4gbGlzdCBwb3NpdGlvbi5cbiAqXG4gKiBAZnVuY1xuICogQG1lbWJlck9mIFJcbiAqIEBzaW5jZSB2MC4xLjBcbiAqIEBjYXRlZ29yeSBMaXN0XG4gKiBAc2lnIEZpbHRlcmFibGUgZiA9PiAoYSAtPiBCb29sZWFuKSAtPiBmIGEgLT4gZiBhXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcmVkXG4gKiBAcGFyYW0ge0FycmF5fSBmaWx0ZXJhYmxlXG4gKiBAcmV0dXJuIHtBcnJheX0gRmlsdGVyYWJsZVxuICogQHNlZSBSLnJlamVjdCwgUi50cmFuc2R1Y2UsIFIuYWRkSW5kZXhcbiAqIEBleGFtcGxlXG4gKlxuICogICAgICBjb25zdCBpc0V2ZW4gPSBuID0+IG4gJSAyID09PSAwO1xuICpcbiAqICAgICAgUi5maWx0ZXIoaXNFdmVuLCBbMSwgMiwgMywgNF0pOyAvLz0+IFsyLCA0XVxuICpcbiAqICAgICAgUi5maWx0ZXIoaXNFdmVuLCB7YTogMSwgYjogMiwgYzogMywgZDogNH0pOyAvLz0+IHtiOiAyLCBkOiA0fVxuICovXG5cbnZhciBmaWx0ZXIgPVxuLyojX19QVVJFX18qL1xuX2N1cnJ5Mihcbi8qI19fUFVSRV9fKi9cbl9kaXNwYXRjaGFibGUoWydmaWx0ZXInXSwgX3hmaWx0ZXIsIGZ1bmN0aW9uIChwcmVkLCBmaWx0ZXJhYmxlKSB7XG4gIHJldHVybiBfaXNPYmplY3QoZmlsdGVyYWJsZSkgPyBfcmVkdWNlKGZ1bmN0aW9uIChhY2MsIGtleSkge1xuICAgIGlmIChwcmVkKGZpbHRlcmFibGVba2V5XSkpIHtcbiAgICAgIGFjY1trZXldID0gZmlsdGVyYWJsZVtrZXldO1xuICAgIH1cblxuICAgIHJldHVybiBhY2M7XG4gIH0sIHt9LCBrZXlzKGZpbHRlcmFibGUpKSA6IC8vIGVsc2VcbiAgX2ZpbHRlcihwcmVkLCBmaWx0ZXJhYmxlKTtcbn0pKTtcblxuZXhwb3J0IGRlZmF1bHQgZmlsdGVyOyIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9pc09iamVjdCh4KSB7XG4gIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoeCkgPT09ICdbb2JqZWN0IE9iamVjdF0nO1xufSIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9maWx0ZXIoZm4sIGxpc3QpIHtcbiAgdmFyIGlkeCA9IDA7XG4gIHZhciBsZW4gPSBsaXN0Lmxlbmd0aDtcbiAgdmFyIHJlc3VsdCA9IFtdO1xuXG4gIHdoaWxlIChpZHggPCBsZW4pIHtcbiAgICBpZiAoZm4obGlzdFtpZHhdKSkge1xuICAgICAgcmVzdWx0W3Jlc3VsdC5sZW5ndGhdID0gbGlzdFtpZHhdO1xuICAgIH1cblxuICAgIGlkeCArPSAxO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn0iLCJpbXBvcnQgX2NvbXBsZW1lbnQgZnJvbSBcIi4vaW50ZXJuYWwvX2NvbXBsZW1lbnQuanNcIjtcbmltcG9ydCBfY3VycnkyIGZyb20gXCIuL2ludGVybmFsL19jdXJyeTIuanNcIjtcbmltcG9ydCBmaWx0ZXIgZnJvbSBcIi4vZmlsdGVyLmpzXCI7XG4vKipcbiAqIFRoZSBjb21wbGVtZW50IG9mIFtgZmlsdGVyYF0oI2ZpbHRlcikuXG4gKlxuICogQWN0cyBhcyBhIHRyYW5zZHVjZXIgaWYgYSB0cmFuc2Zvcm1lciBpcyBnaXZlbiBpbiBsaXN0IHBvc2l0aW9uLiBGaWx0ZXJhYmxlXG4gKiBvYmplY3RzIGluY2x1ZGUgcGxhaW4gb2JqZWN0cyBvciBhbnkgb2JqZWN0IHRoYXQgaGFzIGEgZmlsdGVyIG1ldGhvZCBzdWNoXG4gKiBhcyBgQXJyYXlgLlxuICpcbiAqIEBmdW5jXG4gKiBAbWVtYmVyT2YgUlxuICogQHNpbmNlIHYwLjEuMFxuICogQGNhdGVnb3J5IExpc3RcbiAqIEBzaWcgRmlsdGVyYWJsZSBmID0+IChhIC0+IEJvb2xlYW4pIC0+IGYgYSAtPiBmIGFcbiAqIEBwYXJhbSB7RnVuY3Rpb259IHByZWRcbiAqIEBwYXJhbSB7QXJyYXl9IGZpbHRlcmFibGVcbiAqIEByZXR1cm4ge0FycmF5fVxuICogQHNlZSBSLmZpbHRlciwgUi50cmFuc2R1Y2UsIFIuYWRkSW5kZXhcbiAqIEBleGFtcGxlXG4gKlxuICogICAgICBjb25zdCBpc09kZCA9IChuKSA9PiBuICUgMiA9PT0gMTtcbiAqXG4gKiAgICAgIFIucmVqZWN0KGlzT2RkLCBbMSwgMiwgMywgNF0pOyAvLz0+IFsyLCA0XVxuICpcbiAqICAgICAgUi5yZWplY3QoaXNPZGQsIHthOiAxLCBiOiAyLCBjOiAzLCBkOiA0fSk7IC8vPT4ge2I6IDIsIGQ6IDR9XG4gKi9cblxudmFyIHJlamVjdCA9XG4vKiNfX1BVUkVfXyovXG5fY3VycnkyKGZ1bmN0aW9uIHJlamVjdChwcmVkLCBmaWx0ZXJhYmxlKSB7XG4gIHJldHVybiBmaWx0ZXIoX2NvbXBsZW1lbnQocHJlZCksIGZpbHRlcmFibGUpO1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IHJlamVjdDsiLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfY29tcGxlbWVudChmKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuICFmLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gIH07XG59IiwiLyogZ2xvYmFscyB3cCAqL1xuXG5pbXBvcnQge3NwcmludGYgYXMgc3ByaW50ZkZyb21Ob2RlfSBmcm9tICdzcHJpbnRmLWpzJztcblxuZXhwb3J0IGNvbnN0IF9fID0gKHRleHQsIGRvbWFpbikgPT4ge1xuXHRyZXR1cm4gdHlwZW9mIHdwICE9PSAndW5kZWZpbmVkJyAmJiB3cC5pMThuID8gd3AuaTE4bi5fXyh0ZXh0LCBkb21haW4pIDogdGV4dDtcbn07XG5leHBvcnQgY29uc3QgX3ggPSAodGV4dCwgY29udGV4dCwgZG9tYWluKSA9PiB7XG5cdHJldHVybiB0eXBlb2Ygd3AgIT09ICd1bmRlZmluZWQnICYmIHdwLmkxOG4gPyB3cC5pMThuLl94KHRleHQsIGNvbnRleHQsIGRvbWFpbikgOiB0ZXh0O1xufTtcbmV4cG9ydCBjb25zdCBfbiA9IChzaW5nbGUsIHBsdXJhbCwgbnVtYmVyLCBkb21haW4pID0+IHtcblx0cmV0dXJuIHR5cGVvZiB3cCAhPT0gJ3VuZGVmaW5lZCcgJiYgd3AuaTE4biA/IHdwLmkxOG4uX24oc2luZ2xlLCBwbHVyYWwsIG51bWJlciwgZG9tYWluKSA6IHNpbmdsZTtcbn07XG5leHBvcnQgY29uc3QgX254ID0gKHNpbmdsZSwgcGx1cmFsLCBudW1iZXIsIGNvbnRleHQsIGRvbWFpbikgPT4ge1xuXHRyZXR1cm4gdHlwZW9mIHdwICE9PSAndW5kZWZpbmVkJyAmJiB3cC5pMThuID8gd3AuaTE4bi5fbngoc2luZ2xlLCBwbHVyYWwsIG51bWJlciwgY29udGV4dCwgZG9tYWluKSA6IHNpbmdsZTtcbn07XG5leHBvcnQgY29uc3Qgc3ByaW50ZiA9ICguLi5hcmdzKSA9PiB7XG5cdHJldHVybiB0eXBlb2Ygd3AgIT09ICd1bmRlZmluZWQnICYmIHdwLmkxOG4gPyB3cC5pMThuLnNwcmludGYoLi4uYXJncykgOiBzcHJpbnRmRnJvbU5vZGUoLi4uYXJncyk7XG59O1xuIiwiaW1wb3J0IF9jdXJyeTIgZnJvbSBcIi4vaW50ZXJuYWwvX2N1cnJ5Mi5qc1wiO1xuLyoqXG4gKiBSZXR1cm5zIHRoZSBzZWNvbmQgYXJndW1lbnQgaWYgaXQgaXMgbm90IGBudWxsYCwgYHVuZGVmaW5lZGAgb3IgYE5hTmA7XG4gKiBvdGhlcndpc2UgdGhlIGZpcnN0IGFyZ3VtZW50IGlzIHJldHVybmVkLlxuICpcbiAqIEBmdW5jXG4gKiBAbWVtYmVyT2YgUlxuICogQHNpbmNlIHYwLjEwLjBcbiAqIEBjYXRlZ29yeSBMb2dpY1xuICogQHNpZyBhIC0+IGIgLT4gYSB8IGJcbiAqIEBwYXJhbSB7YX0gZGVmYXVsdCBUaGUgZGVmYXVsdCB2YWx1ZS5cbiAqIEBwYXJhbSB7Yn0gdmFsIGB2YWxgIHdpbGwgYmUgcmV0dXJuZWQgaW5zdGVhZCBvZiBgZGVmYXVsdGAgdW5sZXNzIGB2YWxgIGlzIGBudWxsYCwgYHVuZGVmaW5lZGAgb3IgYE5hTmAuXG4gKiBAcmV0dXJuIHsqfSBUaGUgc2Vjb25kIHZhbHVlIGlmIGl0IGlzIG5vdCBgbnVsbGAsIGB1bmRlZmluZWRgIG9yIGBOYU5gLCBvdGhlcndpc2UgdGhlIGRlZmF1bHQgdmFsdWVcbiAqIEBleGFtcGxlXG4gKlxuICogICAgICBjb25zdCBkZWZhdWx0VG80MiA9IFIuZGVmYXVsdFRvKDQyKTtcbiAqXG4gKiAgICAgIGRlZmF1bHRUbzQyKG51bGwpOyAgLy89PiA0MlxuICogICAgICBkZWZhdWx0VG80Mih1bmRlZmluZWQpOyAgLy89PiA0MlxuICogICAgICBkZWZhdWx0VG80MihmYWxzZSk7ICAvLz0+IGZhbHNlXG4gKiAgICAgIGRlZmF1bHRUbzQyKCdSYW1kYScpOyAgLy89PiAnUmFtZGEnXG4gKiAgICAgIC8vIHBhcnNlSW50KCdzdHJpbmcnKSByZXN1bHRzIGluIE5hTlxuICogICAgICBkZWZhdWx0VG80MihwYXJzZUludCgnc3RyaW5nJykpOyAvLz0+IDQyXG4gKi9cblxudmFyIGRlZmF1bHRUbyA9XG4vKiNfX1BVUkVfXyovXG5fY3VycnkyKGZ1bmN0aW9uIGRlZmF1bHRUbyhkLCB2KSB7XG4gIHJldHVybiB2ID09IG51bGwgfHwgdiAhPT0gdiA/IGQgOiB2O1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmF1bHRUbzsiLCJpbXBvcnQgX2N1cnJ5MyBmcm9tIFwiLi9pbnRlcm5hbC9fY3VycnkzLmpzXCI7XG5pbXBvcnQgZGVmYXVsdFRvIGZyb20gXCIuL2RlZmF1bHRUby5qc1wiO1xuaW1wb3J0IHBhdGggZnJvbSBcIi4vcGF0aC5qc1wiO1xuLyoqXG4gKiBJZiB0aGUgZ2l2ZW4sIG5vbi1udWxsIG9iamVjdCBoYXMgYSB2YWx1ZSBhdCB0aGUgZ2l2ZW4gcGF0aCwgcmV0dXJucyB0aGVcbiAqIHZhbHVlIGF0IHRoYXQgcGF0aC4gT3RoZXJ3aXNlIHJldHVybnMgdGhlIHByb3ZpZGVkIGRlZmF1bHQgdmFsdWUuXG4gKlxuICogQGZ1bmNcbiAqIEBtZW1iZXJPZiBSXG4gKiBAc2luY2UgdjAuMTguMFxuICogQGNhdGVnb3J5IE9iamVjdFxuICogQHR5cGVkZWZuIElkeCA9IFN0cmluZyB8IEludFxuICogQHNpZyBhIC0+IFtJZHhdIC0+IHthfSAtPiBhXG4gKiBAcGFyYW0geyp9IGQgVGhlIGRlZmF1bHQgdmFsdWUuXG4gKiBAcGFyYW0ge0FycmF5fSBwIFRoZSBwYXRoIHRvIHVzZS5cbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmogVGhlIG9iamVjdCB0byByZXRyaWV2ZSB0aGUgbmVzdGVkIHByb3BlcnR5IGZyb20uXG4gKiBAcmV0dXJuIHsqfSBUaGUgZGF0YSBhdCBgcGF0aGAgb2YgdGhlIHN1cHBsaWVkIG9iamVjdCBvciB0aGUgZGVmYXVsdCB2YWx1ZS5cbiAqIEBleGFtcGxlXG4gKlxuICogICAgICBSLnBhdGhPcignTi9BJywgWydhJywgJ2InXSwge2E6IHtiOiAyfX0pOyAvLz0+IDJcbiAqICAgICAgUi5wYXRoT3IoJ04vQScsIFsnYScsICdiJ10sIHtjOiB7YjogMn19KTsgLy89PiBcIk4vQVwiXG4gKi9cblxudmFyIHBhdGhPciA9XG4vKiNfX1BVUkVfXyovXG5fY3VycnkzKGZ1bmN0aW9uIHBhdGhPcihkLCBwLCBvYmopIHtcbiAgcmV0dXJuIGRlZmF1bHRUbyhkLCBwYXRoKHAsIG9iaikpO1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IHBhdGhPcjsiLCJpbXBvcnQgX2N1cnJ5MyBmcm9tIFwiLi9pbnRlcm5hbC9fY3VycnkzLmpzXCI7XG5pbXBvcnQgY3VycnlOIGZyb20gXCIuL2N1cnJ5Ti5qc1wiO1xuLyoqXG4gKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCB3aWxsIHByb2Nlc3MgZWl0aGVyIHRoZSBgb25UcnVlYCBvciB0aGUgYG9uRmFsc2VgXG4gKiBmdW5jdGlvbiBkZXBlbmRpbmcgdXBvbiB0aGUgcmVzdWx0IG9mIHRoZSBgY29uZGl0aW9uYCBwcmVkaWNhdGUuXG4gKlxuICogQGZ1bmNcbiAqIEBtZW1iZXJPZiBSXG4gKiBAc2luY2UgdjAuOC4wXG4gKiBAY2F0ZWdvcnkgTG9naWNcbiAqIEBzaWcgKCouLi4gLT4gQm9vbGVhbikgLT4gKCouLi4gLT4gKikgLT4gKCouLi4gLT4gKikgLT4gKCouLi4gLT4gKilcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGNvbmRpdGlvbiBBIHByZWRpY2F0ZSBmdW5jdGlvblxuICogQHBhcmFtIHtGdW5jdGlvbn0gb25UcnVlIEEgZnVuY3Rpb24gdG8gaW52b2tlIHdoZW4gdGhlIGBjb25kaXRpb25gIGV2YWx1YXRlcyB0byBhIHRydXRoeSB2YWx1ZS5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IG9uRmFsc2UgQSBmdW5jdGlvbiB0byBpbnZva2Ugd2hlbiB0aGUgYGNvbmRpdGlvbmAgZXZhbHVhdGVzIHRvIGEgZmFsc3kgdmFsdWUuXG4gKiBAcmV0dXJuIHtGdW5jdGlvbn0gQSBuZXcgZnVuY3Rpb24gdGhhdCB3aWxsIHByb2Nlc3MgZWl0aGVyIHRoZSBgb25UcnVlYCBvciB0aGUgYG9uRmFsc2VgXG4gKiAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gZGVwZW5kaW5nIHVwb24gdGhlIHJlc3VsdCBvZiB0aGUgYGNvbmRpdGlvbmAgcHJlZGljYXRlLlxuICogQHNlZSBSLnVubGVzcywgUi53aGVuLCBSLmNvbmRcbiAqIEBleGFtcGxlXG4gKlxuICogICAgICBjb25zdCBpbmNDb3VudCA9IFIuaWZFbHNlKFxuICogICAgICAgIFIuaGFzKCdjb3VudCcpLFxuICogICAgICAgIFIub3ZlcihSLmxlbnNQcm9wKCdjb3VudCcpLCBSLmluYyksXG4gKiAgICAgICAgUi5hc3NvYygnY291bnQnLCAxKVxuICogICAgICApO1xuICogICAgICBpbmNDb3VudCh7fSk7ICAgICAgICAgICAvLz0+IHsgY291bnQ6IDEgfVxuICogICAgICBpbmNDb3VudCh7IGNvdW50OiAxIH0pOyAvLz0+IHsgY291bnQ6IDIgfVxuICovXG5cbnZhciBpZkVsc2UgPVxuLyojX19QVVJFX18qL1xuX2N1cnJ5MyhmdW5jdGlvbiBpZkVsc2UoY29uZGl0aW9uLCBvblRydWUsIG9uRmFsc2UpIHtcbiAgcmV0dXJuIGN1cnJ5TihNYXRoLm1heChjb25kaXRpb24ubGVuZ3RoLCBvblRydWUubGVuZ3RoLCBvbkZhbHNlLmxlbmd0aCksIGZ1bmN0aW9uIF9pZkVsc2UoKSB7XG4gICAgcmV0dXJuIGNvbmRpdGlvbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpID8gb25UcnVlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgOiBvbkZhbHNlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gIH0pO1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IGlmRWxzZTsiLCJpbXBvcnQgX2N1cnJ5MiBmcm9tIFwiLi9pbnRlcm5hbC9fY3VycnkyLmpzXCI7XG4vKipcbiAqIFJldHVybnMgdGhlIGxhcmdlciBvZiBpdHMgdHdvIGFyZ3VtZW50cy5cbiAqXG4gKiBAZnVuY1xuICogQG1lbWJlck9mIFJcbiAqIEBzaW5jZSB2MC4xLjBcbiAqIEBjYXRlZ29yeSBSZWxhdGlvblxuICogQHNpZyBPcmQgYSA9PiBhIC0+IGEgLT4gYVxuICogQHBhcmFtIHsqfSBhXG4gKiBAcGFyYW0geyp9IGJcbiAqIEByZXR1cm4geyp9XG4gKiBAc2VlIFIubWF4QnksIFIubWluXG4gKiBAZXhhbXBsZVxuICpcbiAqICAgICAgUi5tYXgoNzg5LCAxMjMpOyAvLz0+IDc4OVxuICogICAgICBSLm1heCgnYScsICdiJyk7IC8vPT4gJ2InXG4gKi9cblxudmFyIG1heCA9XG4vKiNfX1BVUkVfXyovXG5fY3VycnkyKGZ1bmN0aW9uIG1heChhLCBiKSB7XG4gIHJldHVybiBiID4gYSA/IGIgOiBhO1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IG1heDsiLCJpbXBvcnQgX2N1cnJ5MSBmcm9tIFwiLi9pbnRlcm5hbC9fY3VycnkxLmpzXCI7XG5pbXBvcnQgY3VycnlOIGZyb20gXCIuL2N1cnJ5Ti5qc1wiO1xuaW1wb3J0IG1heCBmcm9tIFwiLi9tYXguanNcIjtcbmltcG9ydCBwbHVjayBmcm9tIFwiLi9wbHVjay5qc1wiO1xuaW1wb3J0IHJlZHVjZSBmcm9tIFwiLi9yZWR1Y2UuanNcIjtcbi8qKlxuICogVGFrZXMgYSBsaXN0IG9mIHByZWRpY2F0ZXMgYW5kIHJldHVybnMgYSBwcmVkaWNhdGUgdGhhdCByZXR1cm5zIHRydWUgZm9yIGFcbiAqIGdpdmVuIGxpc3Qgb2YgYXJndW1lbnRzIGlmIGV2ZXJ5IG9uZSBvZiB0aGUgcHJvdmlkZWQgcHJlZGljYXRlcyBpcyBzYXRpc2ZpZWRcbiAqIGJ5IHRob3NlIGFyZ3VtZW50cy5cbiAqXG4gKiBUaGUgZnVuY3Rpb24gcmV0dXJuZWQgaXMgYSBjdXJyaWVkIGZ1bmN0aW9uIHdob3NlIGFyaXR5IG1hdGNoZXMgdGhhdCBvZiB0aGVcbiAqIGhpZ2hlc3QtYXJpdHkgcHJlZGljYXRlLlxuICpcbiAqIEBmdW5jXG4gKiBAbWVtYmVyT2YgUlxuICogQHNpbmNlIHYwLjkuMFxuICogQGNhdGVnb3J5IExvZ2ljXG4gKiBAc2lnIFsoKi4uLiAtPiBCb29sZWFuKV0gLT4gKCouLi4gLT4gQm9vbGVhbilcbiAqIEBwYXJhbSB7QXJyYXl9IHByZWRpY2F0ZXMgQW4gYXJyYXkgb2YgcHJlZGljYXRlcyB0byBjaGVja1xuICogQHJldHVybiB7RnVuY3Rpb259IFRoZSBjb21iaW5lZCBwcmVkaWNhdGVcbiAqIEBzZWUgUi5hbnlQYXNzXG4gKiBAZXhhbXBsZVxuICpcbiAqICAgICAgY29uc3QgaXNRdWVlbiA9IFIucHJvcEVxKCdyYW5rJywgJ1EnKTtcbiAqICAgICAgY29uc3QgaXNTcGFkZSA9IFIucHJvcEVxKCdzdWl0JywgJ+KZoO+4jicpO1xuICogICAgICBjb25zdCBpc1F1ZWVuT2ZTcGFkZXMgPSBSLmFsbFBhc3MoW2lzUXVlZW4sIGlzU3BhZGVdKTtcbiAqXG4gKiAgICAgIGlzUXVlZW5PZlNwYWRlcyh7cmFuazogJ1EnLCBzdWl0OiAn4pmj77iOJ30pOyAvLz0+IGZhbHNlXG4gKiAgICAgIGlzUXVlZW5PZlNwYWRlcyh7cmFuazogJ1EnLCBzdWl0OiAn4pmg77iOJ30pOyAvLz0+IHRydWVcbiAqL1xuXG52YXIgYWxsUGFzcyA9XG4vKiNfX1BVUkVfXyovXG5fY3VycnkxKGZ1bmN0aW9uIGFsbFBhc3MocHJlZHMpIHtcbiAgcmV0dXJuIGN1cnJ5TihyZWR1Y2UobWF4LCAwLCBwbHVjaygnbGVuZ3RoJywgcHJlZHMpKSwgZnVuY3Rpb24gKCkge1xuICAgIHZhciBpZHggPSAwO1xuICAgIHZhciBsZW4gPSBwcmVkcy5sZW5ndGg7XG5cbiAgICB3aGlsZSAoaWR4IDwgbGVuKSB7XG4gICAgICBpZiAoIXByZWRzW2lkeF0uYXBwbHkodGhpcywgYXJndW1lbnRzKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGlkeCArPSAxO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9KTtcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBhbGxQYXNzOyIsImltcG9ydCBfY3VycnkzIGZyb20gXCIuL2ludGVybmFsL19jdXJyeTMuanNcIjtcbmltcG9ydCBlcXVhbHMgZnJvbSBcIi4vZXF1YWxzLmpzXCI7XG4vKipcbiAqIFJldHVybnMgYHRydWVgIGlmIHRoZSBzcGVjaWZpZWQgb2JqZWN0IHByb3BlcnR5IGlzIGVxdWFsLCBpblxuICogW2BSLmVxdWFsc2BdKCNlcXVhbHMpIHRlcm1zLCB0byB0aGUgZ2l2ZW4gdmFsdWU7IGBmYWxzZWAgb3RoZXJ3aXNlLlxuICogWW91IGNhbiB0ZXN0IG11bHRpcGxlIHByb3BlcnRpZXMgd2l0aCBbYFIud2hlcmVFcWBdKCN3aGVyZUVxKS5cbiAqXG4gKiBAZnVuY1xuICogQG1lbWJlck9mIFJcbiAqIEBzaW5jZSB2MC4xLjBcbiAqIEBjYXRlZ29yeSBSZWxhdGlvblxuICogQHNpZyBTdHJpbmcgLT4gYSAtPiBPYmplY3QgLT4gQm9vbGVhblxuICogQHBhcmFtIHtTdHJpbmd9IG5hbWVcbiAqIEBwYXJhbSB7Kn0gdmFsXG4gKiBAcGFyYW0geyp9IG9ialxuICogQHJldHVybiB7Qm9vbGVhbn1cbiAqIEBzZWUgUi53aGVyZUVxLCBSLnByb3BTYXRpc2ZpZXMsIFIuZXF1YWxzXG4gKiBAZXhhbXBsZVxuICpcbiAqICAgICAgY29uc3QgYWJieSA9IHtuYW1lOiAnQWJieScsIGFnZTogNywgaGFpcjogJ2Jsb25kJ307XG4gKiAgICAgIGNvbnN0IGZyZWQgPSB7bmFtZTogJ0ZyZWQnLCBhZ2U6IDEyLCBoYWlyOiAnYnJvd24nfTtcbiAqICAgICAgY29uc3QgcnVzdHkgPSB7bmFtZTogJ1J1c3R5JywgYWdlOiAxMCwgaGFpcjogJ2Jyb3duJ307XG4gKiAgICAgIGNvbnN0IGFsb2lzID0ge25hbWU6ICdBbG9pcycsIGFnZTogMTUsIGRpc3Bvc2l0aW9uOiAnc3VybHknfTtcbiAqICAgICAgY29uc3Qga2lkcyA9IFthYmJ5LCBmcmVkLCBydXN0eSwgYWxvaXNdO1xuICogICAgICBjb25zdCBoYXNCcm93bkhhaXIgPSBSLnByb3BFcSgnaGFpcicsICdicm93bicpO1xuICogICAgICBSLmZpbHRlcihoYXNCcm93bkhhaXIsIGtpZHMpOyAvLz0+IFtmcmVkLCBydXN0eV1cbiAqL1xuXG52YXIgcHJvcEVxID1cbi8qI19fUFVSRV9fKi9cbl9jdXJyeTMoZnVuY3Rpb24gcHJvcEVxKG5hbWUsIHZhbCwgb2JqKSB7XG4gIHJldHVybiBlcXVhbHModmFsLCBvYmpbbmFtZV0pO1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IHByb3BFcTsiLCJpbXBvcnQgX2NoZWNrRm9yTWV0aG9kIGZyb20gXCIuL2ludGVybmFsL19jaGVja0Zvck1ldGhvZC5qc1wiO1xuaW1wb3J0IF9jdXJyeTIgZnJvbSBcIi4vaW50ZXJuYWwvX2N1cnJ5Mi5qc1wiO1xuLyoqXG4gKiBJdGVyYXRlIG92ZXIgYW4gaW5wdXQgYGxpc3RgLCBjYWxsaW5nIGEgcHJvdmlkZWQgZnVuY3Rpb24gYGZuYCBmb3IgZWFjaFxuICogZWxlbWVudCBpbiB0aGUgbGlzdC5cbiAqXG4gKiBgZm5gIHJlY2VpdmVzIG9uZSBhcmd1bWVudDogKih2YWx1ZSkqLlxuICpcbiAqIE5vdGU6IGBSLmZvckVhY2hgIGRvZXMgbm90IHNraXAgZGVsZXRlZCBvciB1bmFzc2lnbmVkIGluZGljZXMgKHNwYXJzZVxuICogYXJyYXlzKSwgdW5saWtlIHRoZSBuYXRpdmUgYEFycmF5LnByb3RvdHlwZS5mb3JFYWNoYCBtZXRob2QuIEZvciBtb3JlXG4gKiBkZXRhaWxzIG9uIHRoaXMgYmVoYXZpb3IsIHNlZTpcbiAqIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0FycmF5L2ZvckVhY2gjRGVzY3JpcHRpb25cbiAqXG4gKiBBbHNvIG5vdGUgdGhhdCwgdW5saWtlIGBBcnJheS5wcm90b3R5cGUuZm9yRWFjaGAsIFJhbWRhJ3MgYGZvckVhY2hgIHJldHVybnNcbiAqIHRoZSBvcmlnaW5hbCBhcnJheS4gSW4gc29tZSBsaWJyYXJpZXMgdGhpcyBmdW5jdGlvbiBpcyBuYW1lZCBgZWFjaGAuXG4gKlxuICogRGlzcGF0Y2hlcyB0byB0aGUgYGZvckVhY2hgIG1ldGhvZCBvZiB0aGUgc2Vjb25kIGFyZ3VtZW50LCBpZiBwcmVzZW50LlxuICpcbiAqIEBmdW5jXG4gKiBAbWVtYmVyT2YgUlxuICogQHNpbmNlIHYwLjEuMVxuICogQGNhdGVnb3J5IExpc3RcbiAqIEBzaWcgKGEgLT4gKikgLT4gW2FdIC0+IFthXVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZm4gVGhlIGZ1bmN0aW9uIHRvIGludm9rZS4gUmVjZWl2ZXMgb25lIGFyZ3VtZW50LCBgdmFsdWVgLlxuICogQHBhcmFtIHtBcnJheX0gbGlzdCBUaGUgbGlzdCB0byBpdGVyYXRlIG92ZXIuXG4gKiBAcmV0dXJuIHtBcnJheX0gVGhlIG9yaWdpbmFsIGxpc3QuXG4gKiBAc2VlIFIuYWRkSW5kZXhcbiAqIEBleGFtcGxlXG4gKlxuICogICAgICBjb25zdCBwcmludFhQbHVzRml2ZSA9IHggPT4gY29uc29sZS5sb2coeCArIDUpO1xuICogICAgICBSLmZvckVhY2gocHJpbnRYUGx1c0ZpdmUsIFsxLCAyLCAzXSk7IC8vPT4gWzEsIDIsIDNdXG4gKiAgICAgIC8vIGxvZ3MgNlxuICogICAgICAvLyBsb2dzIDdcbiAqICAgICAgLy8gbG9ncyA4XG4gKiBAc3ltYiBSLmZvckVhY2goZiwgW2EsIGIsIGNdKSA9IFthLCBiLCBjXVxuICovXG5cbnZhciBmb3JFYWNoID1cbi8qI19fUFVSRV9fKi9cbl9jdXJyeTIoXG4vKiNfX1BVUkVfXyovXG5fY2hlY2tGb3JNZXRob2QoJ2ZvckVhY2gnLCBmdW5jdGlvbiBmb3JFYWNoKGZuLCBsaXN0KSB7XG4gIHZhciBsZW4gPSBsaXN0Lmxlbmd0aDtcbiAgdmFyIGlkeCA9IDA7XG5cbiAgd2hpbGUgKGlkeCA8IGxlbikge1xuICAgIGZuKGxpc3RbaWR4XSk7XG4gICAgaWR4ICs9IDE7XG4gIH1cblxuICByZXR1cm4gbGlzdDtcbn0pKTtcblxuZXhwb3J0IGRlZmF1bHQgZm9yRWFjaDsiLCJpbXBvcnQgJCRvYnNlcnZhYmxlIGZyb20gJ3N5bWJvbC1vYnNlcnZhYmxlJztcblxuLyoqXG4gKiBUaGVzZSBhcmUgcHJpdmF0ZSBhY3Rpb24gdHlwZXMgcmVzZXJ2ZWQgYnkgUmVkdXguXG4gKiBGb3IgYW55IHVua25vd24gYWN0aW9ucywgeW91IG11c3QgcmV0dXJuIHRoZSBjdXJyZW50IHN0YXRlLlxuICogSWYgdGhlIGN1cnJlbnQgc3RhdGUgaXMgdW5kZWZpbmVkLCB5b3UgbXVzdCByZXR1cm4gdGhlIGluaXRpYWwgc3RhdGUuXG4gKiBEbyBub3QgcmVmZXJlbmNlIHRoZXNlIGFjdGlvbiB0eXBlcyBkaXJlY3RseSBpbiB5b3VyIGNvZGUuXG4gKi9cbnZhciByYW5kb21TdHJpbmcgPSBmdW5jdGlvbiByYW5kb21TdHJpbmcoKSB7XG4gIHJldHVybiBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoNykuc3BsaXQoJycpLmpvaW4oJy4nKTtcbn07XG5cbnZhciBBY3Rpb25UeXBlcyA9IHtcbiAgSU5JVDogXCJAQHJlZHV4L0lOSVRcIiArIHJhbmRvbVN0cmluZygpLFxuICBSRVBMQUNFOiBcIkBAcmVkdXgvUkVQTEFDRVwiICsgcmFuZG9tU3RyaW5nKCksXG4gIFBST0JFX1VOS05PV05fQUNUSU9OOiBmdW5jdGlvbiBQUk9CRV9VTktOT1dOX0FDVElPTigpIHtcbiAgICByZXR1cm4gXCJAQHJlZHV4L1BST0JFX1VOS05PV05fQUNUSU9OXCIgKyByYW5kb21TdHJpbmcoKTtcbiAgfVxufTtcblxuLyoqXG4gKiBAcGFyYW0ge2FueX0gb2JqIFRoZSBvYmplY3QgdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHRoZSBhcmd1bWVudCBhcHBlYXJzIHRvIGJlIGEgcGxhaW4gb2JqZWN0LlxuICovXG5mdW5jdGlvbiBpc1BsYWluT2JqZWN0KG9iaikge1xuICBpZiAodHlwZW9mIG9iaiAhPT0gJ29iamVjdCcgfHwgb2JqID09PSBudWxsKSByZXR1cm4gZmFsc2U7XG4gIHZhciBwcm90byA9IG9iajtcblxuICB3aGlsZSAoT2JqZWN0LmdldFByb3RvdHlwZU9mKHByb3RvKSAhPT0gbnVsbCkge1xuICAgIHByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHByb3RvKTtcbiAgfVxuXG4gIHJldHVybiBPYmplY3QuZ2V0UHJvdG90eXBlT2Yob2JqKSA9PT0gcHJvdG87XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIFJlZHV4IHN0b3JlIHRoYXQgaG9sZHMgdGhlIHN0YXRlIHRyZWUuXG4gKiBUaGUgb25seSB3YXkgdG8gY2hhbmdlIHRoZSBkYXRhIGluIHRoZSBzdG9yZSBpcyB0byBjYWxsIGBkaXNwYXRjaCgpYCBvbiBpdC5cbiAqXG4gKiBUaGVyZSBzaG91bGQgb25seSBiZSBhIHNpbmdsZSBzdG9yZSBpbiB5b3VyIGFwcC4gVG8gc3BlY2lmeSBob3cgZGlmZmVyZW50XG4gKiBwYXJ0cyBvZiB0aGUgc3RhdGUgdHJlZSByZXNwb25kIHRvIGFjdGlvbnMsIHlvdSBtYXkgY29tYmluZSBzZXZlcmFsIHJlZHVjZXJzXG4gKiBpbnRvIGEgc2luZ2xlIHJlZHVjZXIgZnVuY3Rpb24gYnkgdXNpbmcgYGNvbWJpbmVSZWR1Y2Vyc2AuXG4gKlxuICogQHBhcmFtIHtGdW5jdGlvbn0gcmVkdWNlciBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyB0aGUgbmV4dCBzdGF0ZSB0cmVlLCBnaXZlblxuICogdGhlIGN1cnJlbnQgc3RhdGUgdHJlZSBhbmQgdGhlIGFjdGlvbiB0byBoYW5kbGUuXG4gKlxuICogQHBhcmFtIHthbnl9IFtwcmVsb2FkZWRTdGF0ZV0gVGhlIGluaXRpYWwgc3RhdGUuIFlvdSBtYXkgb3B0aW9uYWxseSBzcGVjaWZ5IGl0XG4gKiB0byBoeWRyYXRlIHRoZSBzdGF0ZSBmcm9tIHRoZSBzZXJ2ZXIgaW4gdW5pdmVyc2FsIGFwcHMsIG9yIHRvIHJlc3RvcmUgYVxuICogcHJldmlvdXNseSBzZXJpYWxpemVkIHVzZXIgc2Vzc2lvbi5cbiAqIElmIHlvdSB1c2UgYGNvbWJpbmVSZWR1Y2Vyc2AgdG8gcHJvZHVjZSB0aGUgcm9vdCByZWR1Y2VyIGZ1bmN0aW9uLCB0aGlzIG11c3QgYmVcbiAqIGFuIG9iamVjdCB3aXRoIHRoZSBzYW1lIHNoYXBlIGFzIGBjb21iaW5lUmVkdWNlcnNgIGtleXMuXG4gKlxuICogQHBhcmFtIHtGdW5jdGlvbn0gW2VuaGFuY2VyXSBUaGUgc3RvcmUgZW5oYW5jZXIuIFlvdSBtYXkgb3B0aW9uYWxseSBzcGVjaWZ5IGl0XG4gKiB0byBlbmhhbmNlIHRoZSBzdG9yZSB3aXRoIHRoaXJkLXBhcnR5IGNhcGFiaWxpdGllcyBzdWNoIGFzIG1pZGRsZXdhcmUsXG4gKiB0aW1lIHRyYXZlbCwgcGVyc2lzdGVuY2UsIGV0Yy4gVGhlIG9ubHkgc3RvcmUgZW5oYW5jZXIgdGhhdCBzaGlwcyB3aXRoIFJlZHV4XG4gKiBpcyBgYXBwbHlNaWRkbGV3YXJlKClgLlxuICpcbiAqIEByZXR1cm5zIHtTdG9yZX0gQSBSZWR1eCBzdG9yZSB0aGF0IGxldHMgeW91IHJlYWQgdGhlIHN0YXRlLCBkaXNwYXRjaCBhY3Rpb25zXG4gKiBhbmQgc3Vic2NyaWJlIHRvIGNoYW5nZXMuXG4gKi9cblxuZnVuY3Rpb24gY3JlYXRlU3RvcmUocmVkdWNlciwgcHJlbG9hZGVkU3RhdGUsIGVuaGFuY2VyKSB7XG4gIHZhciBfcmVmMjtcblxuICBpZiAodHlwZW9mIHByZWxvYWRlZFN0YXRlID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBlbmhhbmNlciA9PT0gJ2Z1bmN0aW9uJyB8fCB0eXBlb2YgZW5oYW5jZXIgPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIGFyZ3VtZW50c1szXSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHRocm93IG5ldyBFcnJvcignSXQgbG9va3MgbGlrZSB5b3UgYXJlIHBhc3Npbmcgc2V2ZXJhbCBzdG9yZSBlbmhhbmNlcnMgdG8gJyArICdjcmVhdGVTdG9yZSgpLiBUaGlzIGlzIG5vdCBzdXBwb3J0ZWQuIEluc3RlYWQsIGNvbXBvc2UgdGhlbSAnICsgJ3RvZ2V0aGVyIHRvIGEgc2luZ2xlIGZ1bmN0aW9uLicpO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBwcmVsb2FkZWRTdGF0ZSA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgZW5oYW5jZXIgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgZW5oYW5jZXIgPSBwcmVsb2FkZWRTdGF0ZTtcbiAgICBwcmVsb2FkZWRTdGF0ZSA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGlmICh0eXBlb2YgZW5oYW5jZXIgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgaWYgKHR5cGVvZiBlbmhhbmNlciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCB0aGUgZW5oYW5jZXIgdG8gYmUgYSBmdW5jdGlvbi4nKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZW5oYW5jZXIoY3JlYXRlU3RvcmUpKHJlZHVjZXIsIHByZWxvYWRlZFN0YXRlKTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgcmVkdWNlciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgdGhlIHJlZHVjZXIgdG8gYmUgYSBmdW5jdGlvbi4nKTtcbiAgfVxuXG4gIHZhciBjdXJyZW50UmVkdWNlciA9IHJlZHVjZXI7XG4gIHZhciBjdXJyZW50U3RhdGUgPSBwcmVsb2FkZWRTdGF0ZTtcbiAgdmFyIGN1cnJlbnRMaXN0ZW5lcnMgPSBbXTtcbiAgdmFyIG5leHRMaXN0ZW5lcnMgPSBjdXJyZW50TGlzdGVuZXJzO1xuICB2YXIgaXNEaXNwYXRjaGluZyA9IGZhbHNlO1xuICAvKipcbiAgICogVGhpcyBtYWtlcyBhIHNoYWxsb3cgY29weSBvZiBjdXJyZW50TGlzdGVuZXJzIHNvIHdlIGNhbiB1c2VcbiAgICogbmV4dExpc3RlbmVycyBhcyBhIHRlbXBvcmFyeSBsaXN0IHdoaWxlIGRpc3BhdGNoaW5nLlxuICAgKlxuICAgKiBUaGlzIHByZXZlbnRzIGFueSBidWdzIGFyb3VuZCBjb25zdW1lcnMgY2FsbGluZ1xuICAgKiBzdWJzY3JpYmUvdW5zdWJzY3JpYmUgaW4gdGhlIG1pZGRsZSBvZiBhIGRpc3BhdGNoLlxuICAgKi9cblxuICBmdW5jdGlvbiBlbnN1cmVDYW5NdXRhdGVOZXh0TGlzdGVuZXJzKCkge1xuICAgIGlmIChuZXh0TGlzdGVuZXJzID09PSBjdXJyZW50TGlzdGVuZXJzKSB7XG4gICAgICBuZXh0TGlzdGVuZXJzID0gY3VycmVudExpc3RlbmVycy5zbGljZSgpO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICogUmVhZHMgdGhlIHN0YXRlIHRyZWUgbWFuYWdlZCBieSB0aGUgc3RvcmUuXG4gICAqXG4gICAqIEByZXR1cm5zIHthbnl9IFRoZSBjdXJyZW50IHN0YXRlIHRyZWUgb2YgeW91ciBhcHBsaWNhdGlvbi5cbiAgICovXG5cblxuICBmdW5jdGlvbiBnZXRTdGF0ZSgpIHtcbiAgICBpZiAoaXNEaXNwYXRjaGluZykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdZb3UgbWF5IG5vdCBjYWxsIHN0b3JlLmdldFN0YXRlKCkgd2hpbGUgdGhlIHJlZHVjZXIgaXMgZXhlY3V0aW5nLiAnICsgJ1RoZSByZWR1Y2VyIGhhcyBhbHJlYWR5IHJlY2VpdmVkIHRoZSBzdGF0ZSBhcyBhbiBhcmd1bWVudC4gJyArICdQYXNzIGl0IGRvd24gZnJvbSB0aGUgdG9wIHJlZHVjZXIgaW5zdGVhZCBvZiByZWFkaW5nIGl0IGZyb20gdGhlIHN0b3JlLicpO1xuICAgIH1cblxuICAgIHJldHVybiBjdXJyZW50U3RhdGU7XG4gIH1cbiAgLyoqXG4gICAqIEFkZHMgYSBjaGFuZ2UgbGlzdGVuZXIuIEl0IHdpbGwgYmUgY2FsbGVkIGFueSB0aW1lIGFuIGFjdGlvbiBpcyBkaXNwYXRjaGVkLFxuICAgKiBhbmQgc29tZSBwYXJ0IG9mIHRoZSBzdGF0ZSB0cmVlIG1heSBwb3RlbnRpYWxseSBoYXZlIGNoYW5nZWQuIFlvdSBtYXkgdGhlblxuICAgKiBjYWxsIGBnZXRTdGF0ZSgpYCB0byByZWFkIHRoZSBjdXJyZW50IHN0YXRlIHRyZWUgaW5zaWRlIHRoZSBjYWxsYmFjay5cbiAgICpcbiAgICogWW91IG1heSBjYWxsIGBkaXNwYXRjaCgpYCBmcm9tIGEgY2hhbmdlIGxpc3RlbmVyLCB3aXRoIHRoZSBmb2xsb3dpbmdcbiAgICogY2F2ZWF0czpcbiAgICpcbiAgICogMS4gVGhlIHN1YnNjcmlwdGlvbnMgYXJlIHNuYXBzaG90dGVkIGp1c3QgYmVmb3JlIGV2ZXJ5IGBkaXNwYXRjaCgpYCBjYWxsLlxuICAgKiBJZiB5b3Ugc3Vic2NyaWJlIG9yIHVuc3Vic2NyaWJlIHdoaWxlIHRoZSBsaXN0ZW5lcnMgYXJlIGJlaW5nIGludm9rZWQsIHRoaXNcbiAgICogd2lsbCBub3QgaGF2ZSBhbnkgZWZmZWN0IG9uIHRoZSBgZGlzcGF0Y2goKWAgdGhhdCBpcyBjdXJyZW50bHkgaW4gcHJvZ3Jlc3MuXG4gICAqIEhvd2V2ZXIsIHRoZSBuZXh0IGBkaXNwYXRjaCgpYCBjYWxsLCB3aGV0aGVyIG5lc3RlZCBvciBub3QsIHdpbGwgdXNlIGEgbW9yZVxuICAgKiByZWNlbnQgc25hcHNob3Qgb2YgdGhlIHN1YnNjcmlwdGlvbiBsaXN0LlxuICAgKlxuICAgKiAyLiBUaGUgbGlzdGVuZXIgc2hvdWxkIG5vdCBleHBlY3QgdG8gc2VlIGFsbCBzdGF0ZSBjaGFuZ2VzLCBhcyB0aGUgc3RhdGVcbiAgICogbWlnaHQgaGF2ZSBiZWVuIHVwZGF0ZWQgbXVsdGlwbGUgdGltZXMgZHVyaW5nIGEgbmVzdGVkIGBkaXNwYXRjaCgpYCBiZWZvcmVcbiAgICogdGhlIGxpc3RlbmVyIGlzIGNhbGxlZC4gSXQgaXMsIGhvd2V2ZXIsIGd1YXJhbnRlZWQgdGhhdCBhbGwgc3Vic2NyaWJlcnNcbiAgICogcmVnaXN0ZXJlZCBiZWZvcmUgdGhlIGBkaXNwYXRjaCgpYCBzdGFydGVkIHdpbGwgYmUgY2FsbGVkIHdpdGggdGhlIGxhdGVzdFxuICAgKiBzdGF0ZSBieSB0aGUgdGltZSBpdCBleGl0cy5cbiAgICpcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gbGlzdGVuZXIgQSBjYWxsYmFjayB0byBiZSBpbnZva2VkIG9uIGV2ZXJ5IGRpc3BhdGNoLlxuICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IEEgZnVuY3Rpb24gdG8gcmVtb3ZlIHRoaXMgY2hhbmdlIGxpc3RlbmVyLlxuICAgKi9cblxuXG4gIGZ1bmN0aW9uIHN1YnNjcmliZShsaXN0ZW5lcikge1xuICAgIGlmICh0eXBlb2YgbGlzdGVuZXIgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgdGhlIGxpc3RlbmVyIHRvIGJlIGEgZnVuY3Rpb24uJyk7XG4gICAgfVxuXG4gICAgaWYgKGlzRGlzcGF0Y2hpbmcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignWW91IG1heSBub3QgY2FsbCBzdG9yZS5zdWJzY3JpYmUoKSB3aGlsZSB0aGUgcmVkdWNlciBpcyBleGVjdXRpbmcuICcgKyAnSWYgeW91IHdvdWxkIGxpa2UgdG8gYmUgbm90aWZpZWQgYWZ0ZXIgdGhlIHN0b3JlIGhhcyBiZWVuIHVwZGF0ZWQsIHN1YnNjcmliZSBmcm9tIGEgJyArICdjb21wb25lbnQgYW5kIGludm9rZSBzdG9yZS5nZXRTdGF0ZSgpIGluIHRoZSBjYWxsYmFjayB0byBhY2Nlc3MgdGhlIGxhdGVzdCBzdGF0ZS4gJyArICdTZWUgaHR0cHM6Ly9yZWR1eC5qcy5vcmcvYXBpLXJlZmVyZW5jZS9zdG9yZSNzdWJzY3JpYmVsaXN0ZW5lciBmb3IgbW9yZSBkZXRhaWxzLicpO1xuICAgIH1cblxuICAgIHZhciBpc1N1YnNjcmliZWQgPSB0cnVlO1xuICAgIGVuc3VyZUNhbk11dGF0ZU5leHRMaXN0ZW5lcnMoKTtcbiAgICBuZXh0TGlzdGVuZXJzLnB1c2gobGlzdGVuZXIpO1xuICAgIHJldHVybiBmdW5jdGlvbiB1bnN1YnNjcmliZSgpIHtcbiAgICAgIGlmICghaXNTdWJzY3JpYmVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKGlzRGlzcGF0Y2hpbmcpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdZb3UgbWF5IG5vdCB1bnN1YnNjcmliZSBmcm9tIGEgc3RvcmUgbGlzdGVuZXIgd2hpbGUgdGhlIHJlZHVjZXIgaXMgZXhlY3V0aW5nLiAnICsgJ1NlZSBodHRwczovL3JlZHV4LmpzLm9yZy9hcGktcmVmZXJlbmNlL3N0b3JlI3N1YnNjcmliZWxpc3RlbmVyIGZvciBtb3JlIGRldGFpbHMuJyk7XG4gICAgICB9XG5cbiAgICAgIGlzU3Vic2NyaWJlZCA9IGZhbHNlO1xuICAgICAgZW5zdXJlQ2FuTXV0YXRlTmV4dExpc3RlbmVycygpO1xuICAgICAgdmFyIGluZGV4ID0gbmV4dExpc3RlbmVycy5pbmRleE9mKGxpc3RlbmVyKTtcbiAgICAgIG5leHRMaXN0ZW5lcnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgIGN1cnJlbnRMaXN0ZW5lcnMgPSBudWxsO1xuICAgIH07XG4gIH1cbiAgLyoqXG4gICAqIERpc3BhdGNoZXMgYW4gYWN0aW9uLiBJdCBpcyB0aGUgb25seSB3YXkgdG8gdHJpZ2dlciBhIHN0YXRlIGNoYW5nZS5cbiAgICpcbiAgICogVGhlIGByZWR1Y2VyYCBmdW5jdGlvbiwgdXNlZCB0byBjcmVhdGUgdGhlIHN0b3JlLCB3aWxsIGJlIGNhbGxlZCB3aXRoIHRoZVxuICAgKiBjdXJyZW50IHN0YXRlIHRyZWUgYW5kIHRoZSBnaXZlbiBgYWN0aW9uYC4gSXRzIHJldHVybiB2YWx1ZSB3aWxsXG4gICAqIGJlIGNvbnNpZGVyZWQgdGhlICoqbmV4dCoqIHN0YXRlIG9mIHRoZSB0cmVlLCBhbmQgdGhlIGNoYW5nZSBsaXN0ZW5lcnNcbiAgICogd2lsbCBiZSBub3RpZmllZC5cbiAgICpcbiAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb25seSBzdXBwb3J0cyBwbGFpbiBvYmplY3QgYWN0aW9ucy4gSWYgeW91IHdhbnQgdG9cbiAgICogZGlzcGF0Y2ggYSBQcm9taXNlLCBhbiBPYnNlcnZhYmxlLCBhIHRodW5rLCBvciBzb21ldGhpbmcgZWxzZSwgeW91IG5lZWQgdG9cbiAgICogd3JhcCB5b3VyIHN0b3JlIGNyZWF0aW5nIGZ1bmN0aW9uIGludG8gdGhlIGNvcnJlc3BvbmRpbmcgbWlkZGxld2FyZS4gRm9yXG4gICAqIGV4YW1wbGUsIHNlZSB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGByZWR1eC10aHVua2AgcGFja2FnZS4gRXZlbiB0aGVcbiAgICogbWlkZGxld2FyZSB3aWxsIGV2ZW50dWFsbHkgZGlzcGF0Y2ggcGxhaW4gb2JqZWN0IGFjdGlvbnMgdXNpbmcgdGhpcyBtZXRob2QuXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBhY3Rpb24gQSBwbGFpbiBvYmplY3QgcmVwcmVzZW50aW5nIOKAnHdoYXQgY2hhbmdlZOKAnS4gSXQgaXNcbiAgICogYSBnb29kIGlkZWEgdG8ga2VlcCBhY3Rpb25zIHNlcmlhbGl6YWJsZSBzbyB5b3UgY2FuIHJlY29yZCBhbmQgcmVwbGF5IHVzZXJcbiAgICogc2Vzc2lvbnMsIG9yIHVzZSB0aGUgdGltZSB0cmF2ZWxsaW5nIGByZWR1eC1kZXZ0b29sc2AuIEFuIGFjdGlvbiBtdXN0IGhhdmVcbiAgICogYSBgdHlwZWAgcHJvcGVydHkgd2hpY2ggbWF5IG5vdCBiZSBgdW5kZWZpbmVkYC4gSXQgaXMgYSBnb29kIGlkZWEgdG8gdXNlXG4gICAqIHN0cmluZyBjb25zdGFudHMgZm9yIGFjdGlvbiB0eXBlcy5cbiAgICpcbiAgICogQHJldHVybnMge09iamVjdH0gRm9yIGNvbnZlbmllbmNlLCB0aGUgc2FtZSBhY3Rpb24gb2JqZWN0IHlvdSBkaXNwYXRjaGVkLlxuICAgKlxuICAgKiBOb3RlIHRoYXQsIGlmIHlvdSB1c2UgYSBjdXN0b20gbWlkZGxld2FyZSwgaXQgbWF5IHdyYXAgYGRpc3BhdGNoKClgIHRvXG4gICAqIHJldHVybiBzb21ldGhpbmcgZWxzZSAoZm9yIGV4YW1wbGUsIGEgUHJvbWlzZSB5b3UgY2FuIGF3YWl0KS5cbiAgICovXG5cblxuICBmdW5jdGlvbiBkaXNwYXRjaChhY3Rpb24pIHtcbiAgICBpZiAoIWlzUGxhaW5PYmplY3QoYWN0aW9uKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBY3Rpb25zIG11c3QgYmUgcGxhaW4gb2JqZWN0cy4gJyArICdVc2UgY3VzdG9tIG1pZGRsZXdhcmUgZm9yIGFzeW5jIGFjdGlvbnMuJyk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBhY3Rpb24udHlwZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQWN0aW9ucyBtYXkgbm90IGhhdmUgYW4gdW5kZWZpbmVkIFwidHlwZVwiIHByb3BlcnR5LiAnICsgJ0hhdmUgeW91IG1pc3NwZWxsZWQgYSBjb25zdGFudD8nKTtcbiAgICB9XG5cbiAgICBpZiAoaXNEaXNwYXRjaGluZykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZWR1Y2VycyBtYXkgbm90IGRpc3BhdGNoIGFjdGlvbnMuJyk7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGlzRGlzcGF0Y2hpbmcgPSB0cnVlO1xuICAgICAgY3VycmVudFN0YXRlID0gY3VycmVudFJlZHVjZXIoY3VycmVudFN0YXRlLCBhY3Rpb24pO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpc0Rpc3BhdGNoaW5nID0gZmFsc2U7XG4gICAgfVxuXG4gICAgdmFyIGxpc3RlbmVycyA9IGN1cnJlbnRMaXN0ZW5lcnMgPSBuZXh0TGlzdGVuZXJzO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaXN0ZW5lcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBsaXN0ZW5lciA9IGxpc3RlbmVyc1tpXTtcbiAgICAgIGxpc3RlbmVyKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFjdGlvbjtcbiAgfVxuICAvKipcbiAgICogUmVwbGFjZXMgdGhlIHJlZHVjZXIgY3VycmVudGx5IHVzZWQgYnkgdGhlIHN0b3JlIHRvIGNhbGN1bGF0ZSB0aGUgc3RhdGUuXG4gICAqXG4gICAqIFlvdSBtaWdodCBuZWVkIHRoaXMgaWYgeW91ciBhcHAgaW1wbGVtZW50cyBjb2RlIHNwbGl0dGluZyBhbmQgeW91IHdhbnQgdG9cbiAgICogbG9hZCBzb21lIG9mIHRoZSByZWR1Y2VycyBkeW5hbWljYWxseS4gWW91IG1pZ2h0IGFsc28gbmVlZCB0aGlzIGlmIHlvdVxuICAgKiBpbXBsZW1lbnQgYSBob3QgcmVsb2FkaW5nIG1lY2hhbmlzbSBmb3IgUmVkdXguXG4gICAqXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IG5leHRSZWR1Y2VyIFRoZSByZWR1Y2VyIGZvciB0aGUgc3RvcmUgdG8gdXNlIGluc3RlYWQuXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cblxuXG4gIGZ1bmN0aW9uIHJlcGxhY2VSZWR1Y2VyKG5leHRSZWR1Y2VyKSB7XG4gICAgaWYgKHR5cGVvZiBuZXh0UmVkdWNlciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCB0aGUgbmV4dFJlZHVjZXIgdG8gYmUgYSBmdW5jdGlvbi4nKTtcbiAgICB9XG5cbiAgICBjdXJyZW50UmVkdWNlciA9IG5leHRSZWR1Y2VyOyAvLyBUaGlzIGFjdGlvbiBoYXMgYSBzaW1pbGlhciBlZmZlY3QgdG8gQWN0aW9uVHlwZXMuSU5JVC5cbiAgICAvLyBBbnkgcmVkdWNlcnMgdGhhdCBleGlzdGVkIGluIGJvdGggdGhlIG5ldyBhbmQgb2xkIHJvb3RSZWR1Y2VyXG4gICAgLy8gd2lsbCByZWNlaXZlIHRoZSBwcmV2aW91cyBzdGF0ZS4gVGhpcyBlZmZlY3RpdmVseSBwb3B1bGF0ZXNcbiAgICAvLyB0aGUgbmV3IHN0YXRlIHRyZWUgd2l0aCBhbnkgcmVsZXZhbnQgZGF0YSBmcm9tIHRoZSBvbGQgb25lLlxuXG4gICAgZGlzcGF0Y2goe1xuICAgICAgdHlwZTogQWN0aW9uVHlwZXMuUkVQTEFDRVxuICAgIH0pO1xuICB9XG4gIC8qKlxuICAgKiBJbnRlcm9wZXJhYmlsaXR5IHBvaW50IGZvciBvYnNlcnZhYmxlL3JlYWN0aXZlIGxpYnJhcmllcy5cbiAgICogQHJldHVybnMge29ic2VydmFibGV9IEEgbWluaW1hbCBvYnNlcnZhYmxlIG9mIHN0YXRlIGNoYW5nZXMuXG4gICAqIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgdGhlIG9ic2VydmFibGUgcHJvcG9zYWw6XG4gICAqIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLW9ic2VydmFibGVcbiAgICovXG5cblxuICBmdW5jdGlvbiBvYnNlcnZhYmxlKCkge1xuICAgIHZhciBfcmVmO1xuXG4gICAgdmFyIG91dGVyU3Vic2NyaWJlID0gc3Vic2NyaWJlO1xuICAgIHJldHVybiBfcmVmID0ge1xuICAgICAgLyoqXG4gICAgICAgKiBUaGUgbWluaW1hbCBvYnNlcnZhYmxlIHN1YnNjcmlwdGlvbiBtZXRob2QuXG4gICAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JzZXJ2ZXIgQW55IG9iamVjdCB0aGF0IGNhbiBiZSB1c2VkIGFzIGFuIG9ic2VydmVyLlxuICAgICAgICogVGhlIG9ic2VydmVyIG9iamVjdCBzaG91bGQgaGF2ZSBhIGBuZXh0YCBtZXRob2QuXG4gICAgICAgKiBAcmV0dXJucyB7c3Vic2NyaXB0aW9ufSBBbiBvYmplY3Qgd2l0aCBhbiBgdW5zdWJzY3JpYmVgIG1ldGhvZCB0aGF0IGNhblxuICAgICAgICogYmUgdXNlZCB0byB1bnN1YnNjcmliZSB0aGUgb2JzZXJ2YWJsZSBmcm9tIHRoZSBzdG9yZSwgYW5kIHByZXZlbnQgZnVydGhlclxuICAgICAgICogZW1pc3Npb24gb2YgdmFsdWVzIGZyb20gdGhlIG9ic2VydmFibGUuXG4gICAgICAgKi9cbiAgICAgIHN1YnNjcmliZTogZnVuY3Rpb24gc3Vic2NyaWJlKG9ic2VydmVyKSB7XG4gICAgICAgIGlmICh0eXBlb2Ygb2JzZXJ2ZXIgIT09ICdvYmplY3QnIHx8IG9ic2VydmVyID09PSBudWxsKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgdGhlIG9ic2VydmVyIHRvIGJlIGFuIG9iamVjdC4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIG9ic2VydmVTdGF0ZSgpIHtcbiAgICAgICAgICBpZiAob2JzZXJ2ZXIubmV4dCkge1xuICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dChnZXRTdGF0ZSgpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBvYnNlcnZlU3RhdGUoKTtcbiAgICAgICAgdmFyIHVuc3Vic2NyaWJlID0gb3V0ZXJTdWJzY3JpYmUob2JzZXJ2ZVN0YXRlKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB1bnN1YnNjcmliZTogdW5zdWJzY3JpYmVcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9LCBfcmVmWyQkb2JzZXJ2YWJsZV0gPSBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9LCBfcmVmO1xuICB9IC8vIFdoZW4gYSBzdG9yZSBpcyBjcmVhdGVkLCBhbiBcIklOSVRcIiBhY3Rpb24gaXMgZGlzcGF0Y2hlZCBzbyB0aGF0IGV2ZXJ5XG4gIC8vIHJlZHVjZXIgcmV0dXJucyB0aGVpciBpbml0aWFsIHN0YXRlLiBUaGlzIGVmZmVjdGl2ZWx5IHBvcHVsYXRlc1xuICAvLyB0aGUgaW5pdGlhbCBzdGF0ZSB0cmVlLlxuXG5cbiAgZGlzcGF0Y2goe1xuICAgIHR5cGU6IEFjdGlvblR5cGVzLklOSVRcbiAgfSk7XG4gIHJldHVybiBfcmVmMiA9IHtcbiAgICBkaXNwYXRjaDogZGlzcGF0Y2gsXG4gICAgc3Vic2NyaWJlOiBzdWJzY3JpYmUsXG4gICAgZ2V0U3RhdGU6IGdldFN0YXRlLFxuICAgIHJlcGxhY2VSZWR1Y2VyOiByZXBsYWNlUmVkdWNlclxuICB9LCBfcmVmMlskJG9ic2VydmFibGVdID0gb2JzZXJ2YWJsZSwgX3JlZjI7XG59XG5cbi8qKlxuICogUHJpbnRzIGEgd2FybmluZyBpbiB0aGUgY29uc29sZSBpZiBpdCBleGlzdHMuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IG1lc3NhZ2UgVGhlIHdhcm5pbmcgbWVzc2FnZS5cbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5mdW5jdGlvbiB3YXJuaW5nKG1lc3NhZ2UpIHtcbiAgLyogZXNsaW50LWRpc2FibGUgbm8tY29uc29sZSAqL1xuICBpZiAodHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBjb25zb2xlLmVycm9yID09PSAnZnVuY3Rpb24nKSB7XG4gICAgY29uc29sZS5lcnJvcihtZXNzYWdlKTtcbiAgfVxuICAvKiBlc2xpbnQtZW5hYmxlIG5vLWNvbnNvbGUgKi9cblxuXG4gIHRyeSB7XG4gICAgLy8gVGhpcyBlcnJvciB3YXMgdGhyb3duIGFzIGEgY29udmVuaWVuY2Ugc28gdGhhdCBpZiB5b3UgZW5hYmxlXG4gICAgLy8gXCJicmVhayBvbiBhbGwgZXhjZXB0aW9uc1wiIGluIHlvdXIgY29uc29sZSxcbiAgICAvLyBpdCB3b3VsZCBwYXVzZSB0aGUgZXhlY3V0aW9uIGF0IHRoaXMgbGluZS5cbiAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XG4gIH0gY2F0Y2ggKGUpIHt9IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tZW1wdHlcblxufVxuXG5mdW5jdGlvbiBnZXRVbmRlZmluZWRTdGF0ZUVycm9yTWVzc2FnZShrZXksIGFjdGlvbikge1xuICB2YXIgYWN0aW9uVHlwZSA9IGFjdGlvbiAmJiBhY3Rpb24udHlwZTtcbiAgdmFyIGFjdGlvbkRlc2NyaXB0aW9uID0gYWN0aW9uVHlwZSAmJiBcImFjdGlvbiBcXFwiXCIgKyBTdHJpbmcoYWN0aW9uVHlwZSkgKyBcIlxcXCJcIiB8fCAnYW4gYWN0aW9uJztcbiAgcmV0dXJuIFwiR2l2ZW4gXCIgKyBhY3Rpb25EZXNjcmlwdGlvbiArIFwiLCByZWR1Y2VyIFxcXCJcIiArIGtleSArIFwiXFxcIiByZXR1cm5lZCB1bmRlZmluZWQuIFwiICsgXCJUbyBpZ25vcmUgYW4gYWN0aW9uLCB5b3UgbXVzdCBleHBsaWNpdGx5IHJldHVybiB0aGUgcHJldmlvdXMgc3RhdGUuIFwiICsgXCJJZiB5b3Ugd2FudCB0aGlzIHJlZHVjZXIgdG8gaG9sZCBubyB2YWx1ZSwgeW91IGNhbiByZXR1cm4gbnVsbCBpbnN0ZWFkIG9mIHVuZGVmaW5lZC5cIjtcbn1cblxuZnVuY3Rpb24gZ2V0VW5leHBlY3RlZFN0YXRlU2hhcGVXYXJuaW5nTWVzc2FnZShpbnB1dFN0YXRlLCByZWR1Y2VycywgYWN0aW9uLCB1bmV4cGVjdGVkS2V5Q2FjaGUpIHtcbiAgdmFyIHJlZHVjZXJLZXlzID0gT2JqZWN0LmtleXMocmVkdWNlcnMpO1xuICB2YXIgYXJndW1lbnROYW1lID0gYWN0aW9uICYmIGFjdGlvbi50eXBlID09PSBBY3Rpb25UeXBlcy5JTklUID8gJ3ByZWxvYWRlZFN0YXRlIGFyZ3VtZW50IHBhc3NlZCB0byBjcmVhdGVTdG9yZScgOiAncHJldmlvdXMgc3RhdGUgcmVjZWl2ZWQgYnkgdGhlIHJlZHVjZXInO1xuXG4gIGlmIChyZWR1Y2VyS2V5cy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gJ1N0b3JlIGRvZXMgbm90IGhhdmUgYSB2YWxpZCByZWR1Y2VyLiBNYWtlIHN1cmUgdGhlIGFyZ3VtZW50IHBhc3NlZCAnICsgJ3RvIGNvbWJpbmVSZWR1Y2VycyBpcyBhbiBvYmplY3Qgd2hvc2UgdmFsdWVzIGFyZSByZWR1Y2Vycy4nO1xuICB9XG5cbiAgaWYgKCFpc1BsYWluT2JqZWN0KGlucHV0U3RhdGUpKSB7XG4gICAgcmV0dXJuIFwiVGhlIFwiICsgYXJndW1lbnROYW1lICsgXCIgaGFzIHVuZXhwZWN0ZWQgdHlwZSBvZiBcXFwiXCIgKyB7fS50b1N0cmluZy5jYWxsKGlucHV0U3RhdGUpLm1hdGNoKC9cXHMoW2EtenxBLVpdKykvKVsxXSArIFwiXFxcIi4gRXhwZWN0ZWQgYXJndW1lbnQgdG8gYmUgYW4gb2JqZWN0IHdpdGggdGhlIGZvbGxvd2luZyBcIiArIChcImtleXM6IFxcXCJcIiArIHJlZHVjZXJLZXlzLmpvaW4oJ1wiLCBcIicpICsgXCJcXFwiXCIpO1xuICB9XG5cbiAgdmFyIHVuZXhwZWN0ZWRLZXlzID0gT2JqZWN0LmtleXMoaW5wdXRTdGF0ZSkuZmlsdGVyKGZ1bmN0aW9uIChrZXkpIHtcbiAgICByZXR1cm4gIXJlZHVjZXJzLmhhc093blByb3BlcnR5KGtleSkgJiYgIXVuZXhwZWN0ZWRLZXlDYWNoZVtrZXldO1xuICB9KTtcbiAgdW5leHBlY3RlZEtleXMuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgdW5leHBlY3RlZEtleUNhY2hlW2tleV0gPSB0cnVlO1xuICB9KTtcbiAgaWYgKGFjdGlvbiAmJiBhY3Rpb24udHlwZSA9PT0gQWN0aW9uVHlwZXMuUkVQTEFDRSkgcmV0dXJuO1xuXG4gIGlmICh1bmV4cGVjdGVkS2V5cy5sZW5ndGggPiAwKSB7XG4gICAgcmV0dXJuIFwiVW5leHBlY3RlZCBcIiArICh1bmV4cGVjdGVkS2V5cy5sZW5ndGggPiAxID8gJ2tleXMnIDogJ2tleScpICsgXCIgXCIgKyAoXCJcXFwiXCIgKyB1bmV4cGVjdGVkS2V5cy5qb2luKCdcIiwgXCInKSArIFwiXFxcIiBmb3VuZCBpbiBcIiArIGFyZ3VtZW50TmFtZSArIFwiLiBcIikgKyBcIkV4cGVjdGVkIHRvIGZpbmQgb25lIG9mIHRoZSBrbm93biByZWR1Y2VyIGtleXMgaW5zdGVhZDogXCIgKyAoXCJcXFwiXCIgKyByZWR1Y2VyS2V5cy5qb2luKCdcIiwgXCInKSArIFwiXFxcIi4gVW5leHBlY3RlZCBrZXlzIHdpbGwgYmUgaWdub3JlZC5cIik7XG4gIH1cbn1cblxuZnVuY3Rpb24gYXNzZXJ0UmVkdWNlclNoYXBlKHJlZHVjZXJzKSB7XG4gIE9iamVjdC5rZXlzKHJlZHVjZXJzKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICB2YXIgcmVkdWNlciA9IHJlZHVjZXJzW2tleV07XG4gICAgdmFyIGluaXRpYWxTdGF0ZSA9IHJlZHVjZXIodW5kZWZpbmVkLCB7XG4gICAgICB0eXBlOiBBY3Rpb25UeXBlcy5JTklUXG4gICAgfSk7XG5cbiAgICBpZiAodHlwZW9mIGluaXRpYWxTdGF0ZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIlJlZHVjZXIgXFxcIlwiICsga2V5ICsgXCJcXFwiIHJldHVybmVkIHVuZGVmaW5lZCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uIFwiICsgXCJJZiB0aGUgc3RhdGUgcGFzc2VkIHRvIHRoZSByZWR1Y2VyIGlzIHVuZGVmaW5lZCwgeW91IG11c3QgXCIgKyBcImV4cGxpY2l0bHkgcmV0dXJuIHRoZSBpbml0aWFsIHN0YXRlLiBUaGUgaW5pdGlhbCBzdGF0ZSBtYXkgXCIgKyBcIm5vdCBiZSB1bmRlZmluZWQuIElmIHlvdSBkb24ndCB3YW50IHRvIHNldCBhIHZhbHVlIGZvciB0aGlzIHJlZHVjZXIsIFwiICsgXCJ5b3UgY2FuIHVzZSBudWxsIGluc3RlYWQgb2YgdW5kZWZpbmVkLlwiKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHJlZHVjZXIodW5kZWZpbmVkLCB7XG4gICAgICB0eXBlOiBBY3Rpb25UeXBlcy5QUk9CRV9VTktOT1dOX0FDVElPTigpXG4gICAgfSkgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJSZWR1Y2VyIFxcXCJcIiArIGtleSArIFwiXFxcIiByZXR1cm5lZCB1bmRlZmluZWQgd2hlbiBwcm9iZWQgd2l0aCBhIHJhbmRvbSB0eXBlLiBcIiArIChcIkRvbid0IHRyeSB0byBoYW5kbGUgXCIgKyBBY3Rpb25UeXBlcy5JTklUICsgXCIgb3Igb3RoZXIgYWN0aW9ucyBpbiBcXFwicmVkdXgvKlxcXCIgXCIpICsgXCJuYW1lc3BhY2UuIFRoZXkgYXJlIGNvbnNpZGVyZWQgcHJpdmF0ZS4gSW5zdGVhZCwgeW91IG11c3QgcmV0dXJuIHRoZSBcIiArIFwiY3VycmVudCBzdGF0ZSBmb3IgYW55IHVua25vd24gYWN0aW9ucywgdW5sZXNzIGl0IGlzIHVuZGVmaW5lZCwgXCIgKyBcImluIHdoaWNoIGNhc2UgeW91IG11c3QgcmV0dXJuIHRoZSBpbml0aWFsIHN0YXRlLCByZWdhcmRsZXNzIG9mIHRoZSBcIiArIFwiYWN0aW9uIHR5cGUuIFRoZSBpbml0aWFsIHN0YXRlIG1heSBub3QgYmUgdW5kZWZpbmVkLCBidXQgY2FuIGJlIG51bGwuXCIpO1xuICAgIH1cbiAgfSk7XG59XG4vKipcbiAqIFR1cm5zIGFuIG9iamVjdCB3aG9zZSB2YWx1ZXMgYXJlIGRpZmZlcmVudCByZWR1Y2VyIGZ1bmN0aW9ucywgaW50byBhIHNpbmdsZVxuICogcmVkdWNlciBmdW5jdGlvbi4gSXQgd2lsbCBjYWxsIGV2ZXJ5IGNoaWxkIHJlZHVjZXIsIGFuZCBnYXRoZXIgdGhlaXIgcmVzdWx0c1xuICogaW50byBhIHNpbmdsZSBzdGF0ZSBvYmplY3QsIHdob3NlIGtleXMgY29ycmVzcG9uZCB0byB0aGUga2V5cyBvZiB0aGUgcGFzc2VkXG4gKiByZWR1Y2VyIGZ1bmN0aW9ucy5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcmVkdWNlcnMgQW4gb2JqZWN0IHdob3NlIHZhbHVlcyBjb3JyZXNwb25kIHRvIGRpZmZlcmVudFxuICogcmVkdWNlciBmdW5jdGlvbnMgdGhhdCBuZWVkIHRvIGJlIGNvbWJpbmVkIGludG8gb25lLiBPbmUgaGFuZHkgd2F5IHRvIG9idGFpblxuICogaXQgaXMgdG8gdXNlIEVTNiBgaW1wb3J0ICogYXMgcmVkdWNlcnNgIHN5bnRheC4gVGhlIHJlZHVjZXJzIG1heSBuZXZlciByZXR1cm5cbiAqIHVuZGVmaW5lZCBmb3IgYW55IGFjdGlvbi4gSW5zdGVhZCwgdGhleSBzaG91bGQgcmV0dXJuIHRoZWlyIGluaXRpYWwgc3RhdGVcbiAqIGlmIHRoZSBzdGF0ZSBwYXNzZWQgdG8gdGhlbSB3YXMgdW5kZWZpbmVkLCBhbmQgdGhlIGN1cnJlbnQgc3RhdGUgZm9yIGFueVxuICogdW5yZWNvZ25pemVkIGFjdGlvbi5cbiAqXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IEEgcmVkdWNlciBmdW5jdGlvbiB0aGF0IGludm9rZXMgZXZlcnkgcmVkdWNlciBpbnNpZGUgdGhlXG4gKiBwYXNzZWQgb2JqZWN0LCBhbmQgYnVpbGRzIGEgc3RhdGUgb2JqZWN0IHdpdGggdGhlIHNhbWUgc2hhcGUuXG4gKi9cblxuXG5mdW5jdGlvbiBjb21iaW5lUmVkdWNlcnMocmVkdWNlcnMpIHtcbiAgdmFyIHJlZHVjZXJLZXlzID0gT2JqZWN0LmtleXMocmVkdWNlcnMpO1xuICB2YXIgZmluYWxSZWR1Y2VycyA9IHt9O1xuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgcmVkdWNlcktleXMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIga2V5ID0gcmVkdWNlcktleXNbaV07XG5cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgaWYgKHR5cGVvZiByZWR1Y2Vyc1trZXldID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICB3YXJuaW5nKFwiTm8gcmVkdWNlciBwcm92aWRlZCBmb3Iga2V5IFxcXCJcIiArIGtleSArIFwiXFxcIlwiKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHJlZHVjZXJzW2tleV0gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGZpbmFsUmVkdWNlcnNba2V5XSA9IHJlZHVjZXJzW2tleV07XG4gICAgfVxuICB9XG5cbiAgdmFyIGZpbmFsUmVkdWNlcktleXMgPSBPYmplY3Qua2V5cyhmaW5hbFJlZHVjZXJzKTsgLy8gVGhpcyBpcyB1c2VkIHRvIG1ha2Ugc3VyZSB3ZSBkb24ndCB3YXJuIGFib3V0IHRoZSBzYW1lXG4gIC8vIGtleXMgbXVsdGlwbGUgdGltZXMuXG5cbiAgdmFyIHVuZXhwZWN0ZWRLZXlDYWNoZTtcblxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIHVuZXhwZWN0ZWRLZXlDYWNoZSA9IHt9O1xuICB9XG5cbiAgdmFyIHNoYXBlQXNzZXJ0aW9uRXJyb3I7XG5cbiAgdHJ5IHtcbiAgICBhc3NlcnRSZWR1Y2VyU2hhcGUoZmluYWxSZWR1Y2Vycyk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBzaGFwZUFzc2VydGlvbkVycm9yID0gZTtcbiAgfVxuXG4gIHJldHVybiBmdW5jdGlvbiBjb21iaW5hdGlvbihzdGF0ZSwgYWN0aW9uKSB7XG4gICAgaWYgKHN0YXRlID09PSB2b2lkIDApIHtcbiAgICAgIHN0YXRlID0ge307XG4gICAgfVxuXG4gICAgaWYgKHNoYXBlQXNzZXJ0aW9uRXJyb3IpIHtcbiAgICAgIHRocm93IHNoYXBlQXNzZXJ0aW9uRXJyb3I7XG4gICAgfVxuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIHZhciB3YXJuaW5nTWVzc2FnZSA9IGdldFVuZXhwZWN0ZWRTdGF0ZVNoYXBlV2FybmluZ01lc3NhZ2Uoc3RhdGUsIGZpbmFsUmVkdWNlcnMsIGFjdGlvbiwgdW5leHBlY3RlZEtleUNhY2hlKTtcblxuICAgICAgaWYgKHdhcm5pbmdNZXNzYWdlKSB7XG4gICAgICAgIHdhcm5pbmcod2FybmluZ01lc3NhZ2UpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciBoYXNDaGFuZ2VkID0gZmFsc2U7XG4gICAgdmFyIG5leHRTdGF0ZSA9IHt9O1xuXG4gICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGZpbmFsUmVkdWNlcktleXMubGVuZ3RoOyBfaSsrKSB7XG4gICAgICB2YXIgX2tleSA9IGZpbmFsUmVkdWNlcktleXNbX2ldO1xuICAgICAgdmFyIHJlZHVjZXIgPSBmaW5hbFJlZHVjZXJzW19rZXldO1xuICAgICAgdmFyIHByZXZpb3VzU3RhdGVGb3JLZXkgPSBzdGF0ZVtfa2V5XTtcbiAgICAgIHZhciBuZXh0U3RhdGVGb3JLZXkgPSByZWR1Y2VyKHByZXZpb3VzU3RhdGVGb3JLZXksIGFjdGlvbik7XG5cbiAgICAgIGlmICh0eXBlb2YgbmV4dFN0YXRlRm9yS2V5ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICB2YXIgZXJyb3JNZXNzYWdlID0gZ2V0VW5kZWZpbmVkU3RhdGVFcnJvck1lc3NhZ2UoX2tleSwgYWN0aW9uKTtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGVycm9yTWVzc2FnZSk7XG4gICAgICB9XG5cbiAgICAgIG5leHRTdGF0ZVtfa2V5XSA9IG5leHRTdGF0ZUZvcktleTtcbiAgICAgIGhhc0NoYW5nZWQgPSBoYXNDaGFuZ2VkIHx8IG5leHRTdGF0ZUZvcktleSAhPT0gcHJldmlvdXNTdGF0ZUZvcktleTtcbiAgICB9XG5cbiAgICBoYXNDaGFuZ2VkID0gaGFzQ2hhbmdlZCB8fCBmaW5hbFJlZHVjZXJLZXlzLmxlbmd0aCAhPT0gT2JqZWN0LmtleXMoc3RhdGUpLmxlbmd0aDtcbiAgICByZXR1cm4gaGFzQ2hhbmdlZCA/IG5leHRTdGF0ZSA6IHN0YXRlO1xuICB9O1xufVxuXG5mdW5jdGlvbiBiaW5kQWN0aW9uQ3JlYXRvcihhY3Rpb25DcmVhdG9yLCBkaXNwYXRjaCkge1xuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBkaXNwYXRjaChhY3Rpb25DcmVhdG9yLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykpO1xuICB9O1xufVxuLyoqXG4gKiBUdXJucyBhbiBvYmplY3Qgd2hvc2UgdmFsdWVzIGFyZSBhY3Rpb24gY3JlYXRvcnMsIGludG8gYW4gb2JqZWN0IHdpdGggdGhlXG4gKiBzYW1lIGtleXMsIGJ1dCB3aXRoIGV2ZXJ5IGZ1bmN0aW9uIHdyYXBwZWQgaW50byBhIGBkaXNwYXRjaGAgY2FsbCBzbyB0aGV5XG4gKiBtYXkgYmUgaW52b2tlZCBkaXJlY3RseS4gVGhpcyBpcyBqdXN0IGEgY29udmVuaWVuY2UgbWV0aG9kLCBhcyB5b3UgY2FuIGNhbGxcbiAqIGBzdG9yZS5kaXNwYXRjaChNeUFjdGlvbkNyZWF0b3JzLmRvU29tZXRoaW5nKCkpYCB5b3Vyc2VsZiBqdXN0IGZpbmUuXG4gKlxuICogRm9yIGNvbnZlbmllbmNlLCB5b3UgY2FuIGFsc28gcGFzcyBhbiBhY3Rpb24gY3JlYXRvciBhcyB0aGUgZmlyc3QgYXJndW1lbnQsXG4gKiBhbmQgZ2V0IGEgZGlzcGF0Y2ggd3JhcHBlZCBmdW5jdGlvbiBpbiByZXR1cm4uXG4gKlxuICogQHBhcmFtIHtGdW5jdGlvbnxPYmplY3R9IGFjdGlvbkNyZWF0b3JzIEFuIG9iamVjdCB3aG9zZSB2YWx1ZXMgYXJlIGFjdGlvblxuICogY3JlYXRvciBmdW5jdGlvbnMuIE9uZSBoYW5keSB3YXkgdG8gb2J0YWluIGl0IGlzIHRvIHVzZSBFUzYgYGltcG9ydCAqIGFzYFxuICogc3ludGF4LiBZb3UgbWF5IGFsc28gcGFzcyBhIHNpbmdsZSBmdW5jdGlvbi5cbiAqXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBkaXNwYXRjaCBUaGUgYGRpc3BhdGNoYCBmdW5jdGlvbiBhdmFpbGFibGUgb24geW91ciBSZWR1eFxuICogc3RvcmUuXG4gKlxuICogQHJldHVybnMge0Z1bmN0aW9ufE9iamVjdH0gVGhlIG9iamVjdCBtaW1pY2tpbmcgdGhlIG9yaWdpbmFsIG9iamVjdCwgYnV0IHdpdGhcbiAqIGV2ZXJ5IGFjdGlvbiBjcmVhdG9yIHdyYXBwZWQgaW50byB0aGUgYGRpc3BhdGNoYCBjYWxsLiBJZiB5b3UgcGFzc2VkIGFcbiAqIGZ1bmN0aW9uIGFzIGBhY3Rpb25DcmVhdG9yc2AsIHRoZSByZXR1cm4gdmFsdWUgd2lsbCBhbHNvIGJlIGEgc2luZ2xlXG4gKiBmdW5jdGlvbi5cbiAqL1xuXG5cbmZ1bmN0aW9uIGJpbmRBY3Rpb25DcmVhdG9ycyhhY3Rpb25DcmVhdG9ycywgZGlzcGF0Y2gpIHtcbiAgaWYgKHR5cGVvZiBhY3Rpb25DcmVhdG9ycyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBiaW5kQWN0aW9uQ3JlYXRvcihhY3Rpb25DcmVhdG9ycywgZGlzcGF0Y2gpO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBhY3Rpb25DcmVhdG9ycyAhPT0gJ29iamVjdCcgfHwgYWN0aW9uQ3JlYXRvcnMgPT09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJiaW5kQWN0aW9uQ3JlYXRvcnMgZXhwZWN0ZWQgYW4gb2JqZWN0IG9yIGEgZnVuY3Rpb24sIGluc3RlYWQgcmVjZWl2ZWQgXCIgKyAoYWN0aW9uQ3JlYXRvcnMgPT09IG51bGwgPyAnbnVsbCcgOiB0eXBlb2YgYWN0aW9uQ3JlYXRvcnMpICsgXCIuIFwiICsgXCJEaWQgeW91IHdyaXRlIFxcXCJpbXBvcnQgQWN0aW9uQ3JlYXRvcnMgZnJvbVxcXCIgaW5zdGVhZCBvZiBcXFwiaW1wb3J0ICogYXMgQWN0aW9uQ3JlYXRvcnMgZnJvbVxcXCI/XCIpO1xuICB9XG5cbiAgdmFyIGJvdW5kQWN0aW9uQ3JlYXRvcnMgPSB7fTtcblxuICBmb3IgKHZhciBrZXkgaW4gYWN0aW9uQ3JlYXRvcnMpIHtcbiAgICB2YXIgYWN0aW9uQ3JlYXRvciA9IGFjdGlvbkNyZWF0b3JzW2tleV07XG5cbiAgICBpZiAodHlwZW9mIGFjdGlvbkNyZWF0b3IgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGJvdW5kQWN0aW9uQ3JlYXRvcnNba2V5XSA9IGJpbmRBY3Rpb25DcmVhdG9yKGFjdGlvbkNyZWF0b3IsIGRpc3BhdGNoKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gYm91bmRBY3Rpb25DcmVhdG9ycztcbn1cblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnR5KG9iaiwga2V5LCB2YWx1ZSkge1xuICBpZiAoa2V5IGluIG9iaikge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwge1xuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgb2JqW2tleV0gPSB2YWx1ZTtcbiAgfVxuXG4gIHJldHVybiBvYmo7XG59XG5cbmZ1bmN0aW9uIG93bktleXMob2JqZWN0LCBlbnVtZXJhYmxlT25seSkge1xuICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKG9iamVjdCk7XG5cbiAgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHtcbiAgICBrZXlzLnB1c2guYXBwbHkoa2V5cywgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhvYmplY3QpKTtcbiAgfVxuXG4gIGlmIChlbnVtZXJhYmxlT25seSkga2V5cyA9IGtleXMuZmlsdGVyKGZ1bmN0aW9uIChzeW0pIHtcbiAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmplY3QsIHN5bSkuZW51bWVyYWJsZTtcbiAgfSk7XG4gIHJldHVybiBrZXlzO1xufVxuXG5mdW5jdGlvbiBfb2JqZWN0U3ByZWFkMih0YXJnZXQpIHtcbiAgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldICE9IG51bGwgPyBhcmd1bWVudHNbaV0gOiB7fTtcblxuICAgIGlmIChpICUgMikge1xuICAgICAgb3duS2V5cyhzb3VyY2UsIHRydWUpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgICBfZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHNvdXJjZVtrZXldKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMpIHtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoc291cmNlKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG93bktleXMoc291cmNlKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNvdXJjZSwga2V5KSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGFyZ2V0O1xufVxuXG4vKipcbiAqIENvbXBvc2VzIHNpbmdsZS1hcmd1bWVudCBmdW5jdGlvbnMgZnJvbSByaWdodCB0byBsZWZ0LiBUaGUgcmlnaHRtb3N0XG4gKiBmdW5jdGlvbiBjYW4gdGFrZSBtdWx0aXBsZSBhcmd1bWVudHMgYXMgaXQgcHJvdmlkZXMgdGhlIHNpZ25hdHVyZSBmb3JcbiAqIHRoZSByZXN1bHRpbmcgY29tcG9zaXRlIGZ1bmN0aW9uLlxuICpcbiAqIEBwYXJhbSB7Li4uRnVuY3Rpb259IGZ1bmNzIFRoZSBmdW5jdGlvbnMgdG8gY29tcG9zZS5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gQSBmdW5jdGlvbiBvYnRhaW5lZCBieSBjb21wb3NpbmcgdGhlIGFyZ3VtZW50IGZ1bmN0aW9uc1xuICogZnJvbSByaWdodCB0byBsZWZ0LiBGb3IgZXhhbXBsZSwgY29tcG9zZShmLCBnLCBoKSBpcyBpZGVudGljYWwgdG8gZG9pbmdcbiAqICguLi5hcmdzKSA9PiBmKGcoaCguLi5hcmdzKSkpLlxuICovXG5mdW5jdGlvbiBjb21wb3NlKCkge1xuICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgZnVuY3MgPSBuZXcgQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgZnVuY3NbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XG4gIH1cblxuICBpZiAoZnVuY3MubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChhcmcpIHtcbiAgICAgIHJldHVybiBhcmc7XG4gICAgfTtcbiAgfVxuXG4gIGlmIChmdW5jcy5sZW5ndGggPT09IDEpIHtcbiAgICByZXR1cm4gZnVuY3NbMF07XG4gIH1cblxuICByZXR1cm4gZnVuY3MucmVkdWNlKGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBhKGIuYXBwbHkodm9pZCAwLCBhcmd1bWVudHMpKTtcbiAgICB9O1xuICB9KTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgc3RvcmUgZW5oYW5jZXIgdGhhdCBhcHBsaWVzIG1pZGRsZXdhcmUgdG8gdGhlIGRpc3BhdGNoIG1ldGhvZFxuICogb2YgdGhlIFJlZHV4IHN0b3JlLiBUaGlzIGlzIGhhbmR5IGZvciBhIHZhcmlldHkgb2YgdGFza3MsIHN1Y2ggYXMgZXhwcmVzc2luZ1xuICogYXN5bmNocm9ub3VzIGFjdGlvbnMgaW4gYSBjb25jaXNlIG1hbm5lciwgb3IgbG9nZ2luZyBldmVyeSBhY3Rpb24gcGF5bG9hZC5cbiAqXG4gKiBTZWUgYHJlZHV4LXRodW5rYCBwYWNrYWdlIGFzIGFuIGV4YW1wbGUgb2YgdGhlIFJlZHV4IG1pZGRsZXdhcmUuXG4gKlxuICogQmVjYXVzZSBtaWRkbGV3YXJlIGlzIHBvdGVudGlhbGx5IGFzeW5jaHJvbm91cywgdGhpcyBzaG91bGQgYmUgdGhlIGZpcnN0XG4gKiBzdG9yZSBlbmhhbmNlciBpbiB0aGUgY29tcG9zaXRpb24gY2hhaW4uXG4gKlxuICogTm90ZSB0aGF0IGVhY2ggbWlkZGxld2FyZSB3aWxsIGJlIGdpdmVuIHRoZSBgZGlzcGF0Y2hgIGFuZCBgZ2V0U3RhdGVgIGZ1bmN0aW9uc1xuICogYXMgbmFtZWQgYXJndW1lbnRzLlxuICpcbiAqIEBwYXJhbSB7Li4uRnVuY3Rpb259IG1pZGRsZXdhcmVzIFRoZSBtaWRkbGV3YXJlIGNoYWluIHRvIGJlIGFwcGxpZWQuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IEEgc3RvcmUgZW5oYW5jZXIgYXBwbHlpbmcgdGhlIG1pZGRsZXdhcmUuXG4gKi9cblxuZnVuY3Rpb24gYXBwbHlNaWRkbGV3YXJlKCkge1xuICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgbWlkZGxld2FyZXMgPSBuZXcgQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgbWlkZGxld2FyZXNbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XG4gIH1cblxuICByZXR1cm4gZnVuY3Rpb24gKGNyZWF0ZVN0b3JlKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBzdG9yZSA9IGNyZWF0ZVN0b3JlLmFwcGx5KHZvaWQgMCwgYXJndW1lbnRzKTtcblxuICAgICAgdmFyIF9kaXNwYXRjaCA9IGZ1bmN0aW9uIGRpc3BhdGNoKCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Rpc3BhdGNoaW5nIHdoaWxlIGNvbnN0cnVjdGluZyB5b3VyIG1pZGRsZXdhcmUgaXMgbm90IGFsbG93ZWQuICcgKyAnT3RoZXIgbWlkZGxld2FyZSB3b3VsZCBub3QgYmUgYXBwbGllZCB0byB0aGlzIGRpc3BhdGNoLicpO1xuICAgICAgfTtcblxuICAgICAgdmFyIG1pZGRsZXdhcmVBUEkgPSB7XG4gICAgICAgIGdldFN0YXRlOiBzdG9yZS5nZXRTdGF0ZSxcbiAgICAgICAgZGlzcGF0Y2g6IGZ1bmN0aW9uIGRpc3BhdGNoKCkge1xuICAgICAgICAgIHJldHVybiBfZGlzcGF0Y2guYXBwbHkodm9pZCAwLCBhcmd1bWVudHMpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgdmFyIGNoYWluID0gbWlkZGxld2FyZXMubWFwKGZ1bmN0aW9uIChtaWRkbGV3YXJlKSB7XG4gICAgICAgIHJldHVybiBtaWRkbGV3YXJlKG1pZGRsZXdhcmVBUEkpO1xuICAgICAgfSk7XG4gICAgICBfZGlzcGF0Y2ggPSBjb21wb3NlLmFwcGx5KHZvaWQgMCwgY2hhaW4pKHN0b3JlLmRpc3BhdGNoKTtcbiAgICAgIHJldHVybiBfb2JqZWN0U3ByZWFkMih7fSwgc3RvcmUsIHtcbiAgICAgICAgZGlzcGF0Y2g6IF9kaXNwYXRjaFxuICAgICAgfSk7XG4gICAgfTtcbiAgfTtcbn1cblxuLypcbiAqIFRoaXMgaXMgYSBkdW1teSBmdW5jdGlvbiB0byBjaGVjayBpZiB0aGUgZnVuY3Rpb24gbmFtZSBoYXMgYmVlbiBhbHRlcmVkIGJ5IG1pbmlmaWNhdGlvbi5cbiAqIElmIHRoZSBmdW5jdGlvbiBoYXMgYmVlbiBtaW5pZmllZCBhbmQgTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJywgd2FybiB0aGUgdXNlci5cbiAqL1xuXG5mdW5jdGlvbiBpc0NydXNoZWQoKSB7fVxuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiB0eXBlb2YgaXNDcnVzaGVkLm5hbWUgPT09ICdzdHJpbmcnICYmIGlzQ3J1c2hlZC5uYW1lICE9PSAnaXNDcnVzaGVkJykge1xuICB3YXJuaW5nKCdZb3UgYXJlIGN1cnJlbnRseSB1c2luZyBtaW5pZmllZCBjb2RlIG91dHNpZGUgb2YgTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiLiAnICsgJ1RoaXMgbWVhbnMgdGhhdCB5b3UgYXJlIHJ1bm5pbmcgYSBzbG93ZXIgZGV2ZWxvcG1lbnQgYnVpbGQgb2YgUmVkdXguICcgKyAnWW91IGNhbiB1c2UgbG9vc2UtZW52aWZ5IChodHRwczovL2dpdGh1Yi5jb20vemVydG9zaC9sb29zZS1lbnZpZnkpIGZvciBicm93c2VyaWZ5ICcgKyAnb3Igc2V0dGluZyBtb2RlIHRvIHByb2R1Y3Rpb24gaW4gd2VicGFjayAoaHR0cHM6Ly93ZWJwYWNrLmpzLm9yZy9jb25jZXB0cy9tb2RlLykgJyArICd0byBlbnN1cmUgeW91IGhhdmUgdGhlIGNvcnJlY3QgY29kZSBmb3IgeW91ciBwcm9kdWN0aW9uIGJ1aWxkLicpO1xufVxuXG5leHBvcnQgeyBBY3Rpb25UeXBlcyBhcyBfX0RPX05PVF9VU0VfX0FjdGlvblR5cGVzLCBhcHBseU1pZGRsZXdhcmUsIGJpbmRBY3Rpb25DcmVhdG9ycywgY29tYmluZVJlZHVjZXJzLCBjb21wb3NlLCBjcmVhdGVTdG9yZSB9O1xuIiwiZnVuY3Rpb24gY3JlYXRlVGh1bmtNaWRkbGV3YXJlKGV4dHJhQXJndW1lbnQpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChfcmVmKSB7XG4gICAgdmFyIGRpc3BhdGNoID0gX3JlZi5kaXNwYXRjaCxcbiAgICAgICAgZ2V0U3RhdGUgPSBfcmVmLmdldFN0YXRlO1xuICAgIHJldHVybiBmdW5jdGlvbiAobmV4dCkge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uIChhY3Rpb24pIHtcbiAgICAgICAgaWYgKHR5cGVvZiBhY3Rpb24gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICByZXR1cm4gYWN0aW9uKGRpc3BhdGNoLCBnZXRTdGF0ZSwgZXh0cmFBcmd1bWVudCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbmV4dChhY3Rpb24pO1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xufVxuXG52YXIgdGh1bmsgPSBjcmVhdGVUaHVua01pZGRsZXdhcmUoKTtcbnRodW5rLndpdGhFeHRyYUFyZ3VtZW50ID0gY3JlYXRlVGh1bmtNaWRkbGV3YXJlO1xuXG5leHBvcnQgZGVmYXVsdCB0aHVuazsiLCIvKiFcbiAqIGlzLXBsYWluLW9iamVjdCA8aHR0cHM6Ly9naXRodWIuY29tL2pvbnNjaGxpbmtlcnQvaXMtcGxhaW4tb2JqZWN0PlxuICpcbiAqIENvcHlyaWdodCAoYykgMjAxNC0yMDE3LCBKb24gU2NobGlua2VydC5cbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgaXNPYmplY3QgZnJvbSAnaXNvYmplY3QnO1xuXG5mdW5jdGlvbiBpc09iamVjdE9iamVjdChvKSB7XG4gIHJldHVybiBpc09iamVjdChvKSA9PT0gdHJ1ZVxuICAgICYmIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvKSA9PT0gJ1tvYmplY3QgT2JqZWN0XSc7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGlzUGxhaW5PYmplY3Qobykge1xuICB2YXIgY3Rvcixwcm90O1xuXG4gIGlmIChpc09iamVjdE9iamVjdChvKSA9PT0gZmFsc2UpIHJldHVybiBmYWxzZTtcblxuICAvLyBJZiBoYXMgbW9kaWZpZWQgY29uc3RydWN0b3JcbiAgY3RvciA9IG8uY29uc3RydWN0b3I7XG4gIGlmICh0eXBlb2YgY3RvciAhPT0gJ2Z1bmN0aW9uJykgcmV0dXJuIGZhbHNlO1xuXG4gIC8vIElmIGhhcyBtb2RpZmllZCBwcm90b3R5cGVcbiAgcHJvdCA9IGN0b3IucHJvdG90eXBlO1xuICBpZiAoaXNPYmplY3RPYmplY3QocHJvdCkgPT09IGZhbHNlKSByZXR1cm4gZmFsc2U7XG5cbiAgLy8gSWYgY29uc3RydWN0b3IgZG9lcyBub3QgaGF2ZSBhbiBPYmplY3Qtc3BlY2lmaWMgbWV0aG9kXG4gIGlmIChwcm90Lmhhc093blByb3BlcnR5KCdpc1Byb3RvdHlwZU9mJykgPT09IGZhbHNlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLy8gTW9zdCBsaWtlbHkgYSBwbGFpbiBPYmplY3RcbiAgcmV0dXJuIHRydWU7XG59O1xuIiwiLyohXG4gKiBpc29iamVjdCA8aHR0cHM6Ly9naXRodWIuY29tL2pvbnNjaGxpbmtlcnQvaXNvYmplY3Q+XG4gKlxuICogQ29weXJpZ2h0IChjKSAyMDE0LTIwMTcsIEpvbiBTY2hsaW5rZXJ0LlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLlxuICovXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGlzT2JqZWN0KHZhbCkge1xuICByZXR1cm4gdmFsICE9IG51bGwgJiYgdHlwZW9mIHZhbCA9PT0gJ29iamVjdCcgJiYgQXJyYXkuaXNBcnJheSh2YWwpID09PSBmYWxzZTtcbn07XG4iLCJpbXBvcnQgeyBpc0RyYWZ0LCBvcmlnaW5hbCwgY3JlYXRlRHJhZnQsIGZpbmlzaERyYWZ0LCBzZXRBdXRvRnJlZXplIH0gZnJvbSAnaW1tZXItcGVhc3knO1xuaW1wb3J0IFJlYWN0LCB7IGNyZWF0ZUNvbnRleHQsIHVzZUNvbnRleHQsIHVzZVJlZiwgdXNlUmVkdWNlciwgdXNlU3RhdGUsIHVzZUVmZmVjdCwgdXNlTGF5b3V0RWZmZWN0LCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY29tcG9zZSwgY3JlYXRlU3RvcmUgYXMgY3JlYXRlU3RvcmUkMSwgYXBwbHlNaWRkbGV3YXJlIH0gZnJvbSAncmVkdXgnO1xuaW1wb3J0IHJlZHV4VGh1bmsgZnJvbSAncmVkdXgtdGh1bmsnO1xuaW1wb3J0IG1lbW9pemVyaWZpYyBmcm9tICdtZW1vaXplcmlmaWMnO1xuaW1wb3J0IGlzUGxhaW5PYmplY3QgZnJvbSAnaXMtcGxhaW4tb2JqZWN0JztcbmltcG9ydCBkZWJvdW5jZSBmcm9tICdkZWJvdW5jZSc7XG5cbnZhciBTdG9yZUNvbnRleHQgPSBjcmVhdGVDb250ZXh0KCk7XG5cbi8vIFRvIGdldCBhcm91bmQgaXQsIHdlIGNhbiBjb25kaXRpb25hbGx5IHVzZUVmZmVjdCBvbiB0aGUgc2VydmVyIChuby1vcCkgYW5kXG4vLyB1c2VMYXlvdXRFZmZlY3QgaW4gdGhlIGJyb3dzZXIuIFdlIG5lZWQgdXNlTGF5b3V0RWZmZWN0IHRvIGVuc3VyZSB0aGUgc3RvcmVcbi8vIHN1YnNjcmlwdGlvbiBjYWxsYmFjayBhbHdheXMgaGFzIHRoZSBzZWxlY3RvciBmcm9tIHRoZSBsYXRlc3QgcmVuZGVyIGNvbW1pdFxuLy8gYXZhaWxhYmxlLCBvdGhlcndpc2UgYSBzdG9yZSB1cGRhdGUgbWF5IGhhcHBlbiBiZXR3ZWVuIHJlbmRlciBhbmQgdGhlIGVmZmVjdCxcbi8vIHdoaWNoIG1heSBjYXVzZSBtaXNzZWQgdXBkYXRlczsgd2UgYWxzbyBtdXN0IGVuc3VyZSB0aGUgc3RvcmUgc3Vic2NyaXB0aW9uXG4vLyBpcyBjcmVhdGVkIHN5bmNocm9ub3VzbHksIG90aGVyd2lzZSBhIHN0b3JlIHVwZGF0ZSBtYXkgb2NjdXIgYmVmb3JlIHRoZVxuLy8gc3Vic2NyaXB0aW9uIGlzIGNyZWF0ZWQgYW5kIGFuIGluY29uc2lzdGVudCBzdGF0ZSBtYXkgYmUgb2JzZXJ2ZWRcblxudmFyIHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QgPSB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyA/IHVzZUxheW91dEVmZmVjdCA6IHVzZUVmZmVjdDtcbmZ1bmN0aW9uIGNyZWF0ZVN0b3JlU3RhdGVIb29rKENvbnRleHQpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIHVzZVN0b3JlU3RhdGUobWFwU3RhdGUsIGVxdWFsaXR5Rm4pIHtcbiAgICB2YXIgc3RvcmUgPSB1c2VDb250ZXh0KENvbnRleHQpO1xuICAgIHZhciBtYXBTdGF0ZVJlZiA9IHVzZVJlZihtYXBTdGF0ZSk7XG4gICAgdmFyIHN0YXRlUmVmID0gdXNlUmVmKCk7XG4gICAgdmFyIG1vdW50ZWRSZWYgPSB1c2VSZWYodHJ1ZSk7XG4gICAgdmFyIHN1YnNjcmlwdGlvbk1hcFN0YXRlRXJyb3IgPSB1c2VSZWYoKTtcblxuICAgIHZhciBfdXNlUmVkdWNlciA9IHVzZVJlZHVjZXIoZnVuY3Rpb24gKHMpIHtcbiAgICAgIHJldHVybiBzICsgMTtcbiAgICB9LCAwKSxcbiAgICAgICAgZm9yY2VSZW5kZXIgPSBfdXNlUmVkdWNlclsxXTtcblxuICAgIGlmIChzdWJzY3JpcHRpb25NYXBTdGF0ZUVycm9yLmN1cnJlbnQgfHwgbWFwU3RhdGVSZWYuY3VycmVudCAhPT0gbWFwU3RhdGUgfHwgc3RhdGVSZWYuY3VycmVudCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0cnkge1xuICAgICAgICBzdGF0ZVJlZi5jdXJyZW50ID0gbWFwU3RhdGUoc3RvcmUuZ2V0U3RhdGUoKSk7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgICAgdmFyIGVycm9yTWVzc2FnZSA9IFwiQW4gZXJyb3Igb2NjdXJyZWQgdHJ5aW5nIHRvIG1hcCBzdGF0ZSBpbiBhIHVzZVN0b3JlU3RhdGUgaG9vazogXCIgKyBlcnIubWVzc2FnZSArIFwiLlwiO1xuXG4gICAgICAgICAgaWYgKHN1YnNjcmlwdGlvbk1hcFN0YXRlRXJyb3IuY3VycmVudCkge1xuICAgICAgICAgICAgZXJyb3JNZXNzYWdlICs9IFwiXFxuVGhpcyBlcnJvciBtYXkgYmUgcmVsYXRlZCB0byB0aGUgZm9sbG93aW5nIGVycm9yOlxcblwiICsgc3Vic2NyaXB0aW9uTWFwU3RhdGVFcnJvci5jdXJyZW50LnN0YWNrICsgXCJcXG5cXG5PcmlnaW5hbCBzdGFjayB0cmFjZTpcIjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3JNZXNzYWdlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRocm93IHN1YnNjcmlwdGlvbk1hcFN0YXRlRXJyb3IuY3VycmVudCB8fCBlcnI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgICBtYXBTdGF0ZVJlZi5jdXJyZW50ID0gbWFwU3RhdGU7XG4gICAgICBzdWJzY3JpcHRpb25NYXBTdGF0ZUVycm9yLmN1cnJlbnQgPSB1bmRlZmluZWQ7XG4gICAgfSk7XG4gICAgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgY2hlY2tNYXBTdGF0ZSA9IGZ1bmN0aW9uIGNoZWNrTWFwU3RhdGUoKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgdmFyIG5ld1N0YXRlID0gbWFwU3RhdGVSZWYuY3VycmVudChzdG9yZS5nZXRTdGF0ZSgpKTtcbiAgICAgICAgICB2YXIgaXNTdGF0ZUVxdWFsID0gdHlwZW9mIGVxdWFsaXR5Rm4gPT09ICdmdW5jdGlvbicgPyBlcXVhbGl0eUZuKHN0YXRlUmVmLmN1cnJlbnQsIG5ld1N0YXRlKSA6IHN0YXRlUmVmLmN1cnJlbnQgPT09IG5ld1N0YXRlO1xuXG4gICAgICAgICAgaWYgKGlzU3RhdGVFcXVhbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHN0YXRlUmVmLmN1cnJlbnQgPSBuZXdTdGF0ZTtcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgLy8gc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9yZWR1eGpzL3JlYWN0LXJlZHV4L2lzc3Vlcy8xMTc5XG4gICAgICAgICAgLy8gVGhlcmUgaXMgYSBwb3NzaWJpbGl0eSBtYXBTdGF0ZSB3aWxsIGZhaWwgZHVlIHRvIHN0YWxlIHN0YXRlIG9yXG4gICAgICAgICAgLy8gcHJvcHMsIHRoZXJlZm9yZSB3ZSB3aWxsIGp1c3QgdHJhY2sgdGhlIGVycm9yIGFuZCBmb3JjZSBvdXJcbiAgICAgICAgICAvLyBjb21wb25lbnQgdG8gdXBkYXRlLiBJdCBzaG91bGQgdGhlbiByZWNlaXZlIHRoZSB1cGRhdGVkIHN0YXRlXG4gICAgICAgICAgc3Vic2NyaXB0aW9uTWFwU3RhdGVFcnJvci5jdXJyZW50ID0gZXJyO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG1vdW50ZWRSZWYuY3VycmVudCkge1xuICAgICAgICAgIGZvcmNlUmVuZGVyKHt9KTtcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgdmFyIHVuc3Vic2NyaWJlID0gc3RvcmUuc3Vic2NyaWJlKGNoZWNrTWFwU3RhdGUpO1xuICAgICAgY2hlY2tNYXBTdGF0ZSgpO1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgbW91bnRlZFJlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgICAgIHVuc3Vic2NyaWJlKCk7XG4gICAgICB9O1xuICAgIH0sIFtdKTtcbiAgICByZXR1cm4gc3RhdGVSZWYuY3VycmVudDtcbiAgfTtcbn1cbnZhciB1c2VTdG9yZVN0YXRlID0gY3JlYXRlU3RvcmVTdGF0ZUhvb2soU3RvcmVDb250ZXh0KTtcbmZ1bmN0aW9uIGNyZWF0ZVN0b3JlQWN0aW9uc0hvb2soQ29udGV4dCkge1xuICByZXR1cm4gZnVuY3Rpb24gdXNlU3RvcmVBY3Rpb25zKG1hcEFjdGlvbnMpIHtcbiAgICB2YXIgc3RvcmUgPSB1c2VDb250ZXh0KENvbnRleHQpO1xuICAgIHJldHVybiBtYXBBY3Rpb25zKHN0b3JlLmdldEFjdGlvbnMoKSk7XG4gIH07XG59XG52YXIgdXNlU3RvcmVBY3Rpb25zID0gY3JlYXRlU3RvcmVBY3Rpb25zSG9vayhTdG9yZUNvbnRleHQpO1xuZnVuY3Rpb24gY3JlYXRlU3RvcmVEaXNwYXRjaEhvb2soQ29udGV4dCkge1xuICByZXR1cm4gZnVuY3Rpb24gdXNlU3RvcmVEaXNwYXRjaCgpIHtcbiAgICB2YXIgc3RvcmUgPSB1c2VDb250ZXh0KENvbnRleHQpO1xuICAgIHJldHVybiBzdG9yZS5kaXNwYXRjaDtcbiAgfTtcbn1cbnZhciB1c2VTdG9yZURpc3BhdGNoID0gY3JlYXRlU3RvcmVEaXNwYXRjaEhvb2soU3RvcmVDb250ZXh0KTtcbmZ1bmN0aW9uIHVzZVN0b3JlKCkge1xuICByZXR1cm4gdXNlQ29udGV4dChTdG9yZUNvbnRleHQpO1xufVxuZnVuY3Rpb24gY3JlYXRlU3RvcmVSZWh5ZHJhdGVkSG9vayhDb250ZXh0KSB7XG4gIHJldHVybiBmdW5jdGlvbiB1c2VTdG9yZVJlaHlkcmF0ZWQoKSB7XG4gICAgdmFyIHN0b3JlID0gdXNlQ29udGV4dChDb250ZXh0KTtcblxuICAgIHZhciBfdXNlU3RhdGUgPSB1c2VTdGF0ZShmYWxzZSksXG4gICAgICAgIHJlaHlkcmF0ZWQgPSBfdXNlU3RhdGVbMF0sXG4gICAgICAgIHNldFJlaHlkcmF0ZWQgPSBfdXNlU3RhdGVbMV07XG5cbiAgICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgICAgc3RvcmUucGVyc2lzdC5yZXNvbHZlUmVoeWRyYXRpb24oKS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHNldFJlaHlkcmF0ZWQodHJ1ZSk7XG4gICAgICB9KTtcbiAgICB9LCBbXSk7XG4gICAgcmV0dXJuIHJlaHlkcmF0ZWQ7XG4gIH07XG59XG52YXIgdXNlU3RvcmVSZWh5ZHJhdGVkID0gY3JlYXRlU3RvcmVSZWh5ZHJhdGVkSG9vayhTdG9yZUNvbnRleHQpO1xuZnVuY3Rpb24gY3JlYXRlVHlwZWRIb29rcygpIHtcbiAgcmV0dXJuIHtcbiAgICB1c2VTdG9yZUFjdGlvbnM6IHVzZVN0b3JlQWN0aW9ucyxcbiAgICB1c2VTdG9yZURpc3BhdGNoOiB1c2VTdG9yZURpc3BhdGNoLFxuICAgIHVzZVN0b3JlU3RhdGU6IHVzZVN0b3JlU3RhdGUsXG4gICAgdXNlU3RvcmVSZWh5ZHJhdGVkOiB1c2VTdG9yZVJlaHlkcmF0ZWQsXG4gICAgdXNlU3RvcmU6IHVzZVN0b3JlXG4gIH07XG59XG5cbmZ1bmN0aW9uIF9leHRlbmRzKCkge1xuICBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkge1xuICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldO1xuXG4gICAgICBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7XG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7XG4gICAgICAgICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0YXJnZXQ7XG4gIH07XG5cbiAgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59XG5cbnZhciBhY3Rpb25TeW1ib2wgPSAnYSc7XG52YXIgYWN0aW9uT25TeW1ib2wgPSAnYU8nO1xudmFyIGNvbXB1dGVkU3ltYm9sID0gJ2MnO1xudmFyIHBlcnNpc3RTeW1ib2wgPSAncCc7XG52YXIgcmVkdWNlclN5bWJvbCA9ICdyJztcbnZhciB0aHVua09uU3ltYm9sID0gJ3RPJztcbnZhciB0aHVua1N5bWJvbCA9ICd0JztcblxudmFyIGRlYnVnID0gZnVuY3Rpb24gZGVidWcoc3RhdGUpIHtcbiAgaWYgKGlzRHJhZnQoc3RhdGUpKSB7XG4gICAgcmV0dXJuIG9yaWdpbmFsKHN0YXRlKTtcbiAgfVxuXG4gIHJldHVybiBzdGF0ZTtcbn07XG52YXIgbWVtbyA9IGZ1bmN0aW9uIG1lbW8oZm4sIGNhY2hlU2l6ZSkge1xuICByZXR1cm4gbWVtb2l6ZXJpZmljKGNhY2hlU2l6ZSkoZm4pO1xufTtcbnZhciBhY3Rpb25PbiA9IGZ1bmN0aW9uIGFjdGlvbk9uKHRhcmdldFJlc29sdmVyLCBmbikge1xuICBmblthY3Rpb25PblN5bWJvbF0gPSB7XG4gICAgdGFyZ2V0UmVzb2x2ZXI6IHRhcmdldFJlc29sdmVyXG4gIH07XG4gIHJldHVybiBmbjtcbn07XG52YXIgYWN0aW9uID0gZnVuY3Rpb24gYWN0aW9uKGZuKSB7XG4gIGZuW2FjdGlvblN5bWJvbF0gPSB7fTtcbiAgcmV0dXJuIGZuO1xufTtcbnZhciBkZWZhdWx0U3RhdGVSZXNvbHZlcnMgPSBbZnVuY3Rpb24gKHN0YXRlKSB7XG4gIHJldHVybiBzdGF0ZTtcbn1dO1xudmFyIGNvbXB1dGVkID0gZnVuY3Rpb24gY29tcHV0ZWQoZm5PclN0YXRlUmVzb2x2ZXJzLCBmbikge1xuICBpZiAodHlwZW9mIGZuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgZm5bY29tcHV0ZWRTeW1ib2xdID0ge1xuICAgICAgc3RhdGVSZXNvbHZlcnM6IGZuT3JTdGF0ZVJlc29sdmVyc1xuICAgIH07XG4gICAgcmV0dXJuIGZuO1xuICB9XG5cbiAgZm5PclN0YXRlUmVzb2x2ZXJzW2NvbXB1dGVkU3ltYm9sXSA9IHtcbiAgICBzdGF0ZVJlc29sdmVyczogZGVmYXVsdFN0YXRlUmVzb2x2ZXJzXG4gIH07XG4gIHJldHVybiBmbk9yU3RhdGVSZXNvbHZlcnM7XG59O1xudmFyIHBlcnNpc3QgPSBmdW5jdGlvbiBwZXJzaXN0KG1vZGVsLCBjb25maWcpIHtcbiAgdmFyIF9leHRlbmRzMjtcblxuICByZXR1cm4gX2V4dGVuZHMoe30sIG1vZGVsLCAoX2V4dGVuZHMyID0ge30sIF9leHRlbmRzMltwZXJzaXN0U3ltYm9sXSA9IGNvbmZpZywgX2V4dGVuZHMyKSk7XG59O1xudmFyIHRodW5rT24gPSBmdW5jdGlvbiB0aHVua09uKHRhcmdldFJlc29sdmVyLCBmbikge1xuICBmblt0aHVua09uU3ltYm9sXSA9IHtcbiAgICB0YXJnZXRSZXNvbHZlcjogdGFyZ2V0UmVzb2x2ZXJcbiAgfTtcbiAgcmV0dXJuIGZuO1xufTtcbnZhciB0aHVuayA9IGZ1bmN0aW9uIHRodW5rKGZuKSB7XG4gIGZuW3RodW5rU3ltYm9sXSA9IHt9O1xuICByZXR1cm4gZm47XG59O1xudmFyIHJlZHVjZXIgPSBmdW5jdGlvbiByZWR1Y2VyKGZuKSB7XG4gIGZuW3JlZHVjZXJTeW1ib2xdID0ge307XG4gIHJldHVybiBmbjtcbn07XG5cbnZhciBkZWVwQ2xvbmVTdGF0ZVdpdGhvdXRDb21wdXRlZCA9IGZ1bmN0aW9uIGRlZXBDbG9uZVN0YXRlV2l0aG91dENvbXB1dGVkKHNvdXJjZSkge1xuICB2YXIgcmVjdXJzaXZlQ2xvbmUgPSBmdW5jdGlvbiByZWN1cnNpdmVDbG9uZShjdXJyZW50KSB7XG4gICAgdmFyIG5leHQgPSBPYmplY3Qua2V5cyhjdXJyZW50KS5yZWR1Y2UoZnVuY3Rpb24gKGFjYywga2V5KSB7XG4gICAgICBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjdXJyZW50LCBrZXkpLmdldCA9PSBudWxsKSB7XG4gICAgICAgIGFjY1trZXldID0gY3VycmVudFtrZXldO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIHt9KTtcbiAgICBPYmplY3Qua2V5cyhuZXh0KS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgIGlmIChpc1BsYWluT2JqZWN0KG5leHRba2V5XSkpIHtcbiAgICAgICAgbmV4dFtrZXldID0gcmVjdXJzaXZlQ2xvbmUobmV4dFtrZXldKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gbmV4dDtcbiAgfTtcblxuICByZXR1cm4gcmVjdXJzaXZlQ2xvbmUoc291cmNlKTtcbn07XG52YXIgaXNQcm9taXNlID0gZnVuY3Rpb24gaXNQcm9taXNlKHgpIHtcbiAgcmV0dXJuIHggIT0gbnVsbCAmJiB0eXBlb2YgeCA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIHgudGhlbiA9PT0gJ2Z1bmN0aW9uJztcbn07XG5mdW5jdGlvbiBnZXQocGF0aCwgdGFyZ2V0KSB7XG4gIHJldHVybiBwYXRoLnJlZHVjZShmdW5jdGlvbiAoYWNjLCBjdXIpIHtcbiAgICByZXR1cm4gaXNQbGFpbk9iamVjdChhY2MpID8gYWNjW2N1cl0gOiB1bmRlZmluZWQ7XG4gIH0sIHRhcmdldCk7XG59XG5mdW5jdGlvbiBuZXdpZnkoY3VycmVudFBhdGgsIGN1cnJlbnRTdGF0ZSwgZmluYWxWYWx1ZSkge1xuICBpZiAoY3VycmVudFBhdGgubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIGZpbmFsVmFsdWU7XG4gIH1cblxuICB2YXIgbmV3U3RhdGUgPSBfZXh0ZW5kcyh7fSwgY3VycmVudFN0YXRlKTtcblxuICB2YXIga2V5ID0gY3VycmVudFBhdGhbMF07XG5cbiAgaWYgKGN1cnJlbnRQYXRoLmxlbmd0aCA9PT0gMSkge1xuICAgIG5ld1N0YXRlW2tleV0gPSBmaW5hbFZhbHVlO1xuICB9IGVsc2Uge1xuICAgIG5ld1N0YXRlW2tleV0gPSBuZXdpZnkoY3VycmVudFBhdGguc2xpY2UoMSksIG5ld1N0YXRlW2tleV0sIGZpbmFsVmFsdWUpO1xuICB9XG5cbiAgcmV0dXJuIG5ld1N0YXRlO1xufVxudmFyIHNldCA9IGZ1bmN0aW9uIHNldChwYXRoLCB0YXJnZXQsIHZhbHVlKSB7XG4gIGlmIChwYXRoLmxlbmd0aCA9PT0gMCkge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICBPYmplY3Qua2V5cyh0YXJnZXQpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgICBkZWxldGUgdGFyZ2V0W2tleV07XG4gICAgICB9KTtcbiAgICAgIE9iamVjdC5rZXlzKHZhbHVlKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgdGFyZ2V0W2tleV0gPSB2YWx1ZVtrZXldO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcGF0aC5yZWR1Y2UoZnVuY3Rpb24gKGFjYywgY3VyLCBpZHgpIHtcbiAgICBpZiAoaWR4ICsgMSA9PT0gcGF0aC5sZW5ndGgpIHtcbiAgICAgIGFjY1tjdXJdID0gdmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFjY1tjdXJdID0gYWNjW2N1cl0gfHwge307XG4gICAgfVxuXG4gICAgcmV0dXJuIGFjY1tjdXJdO1xuICB9LCB0YXJnZXQpO1xufTtcbmZ1bmN0aW9uIGNyZWF0ZVNpbXBsZVByb2R1Y2UoZGlzYWJsZUltbWVyKSB7XG4gIGlmIChkaXNhYmxlSW1tZXIgPT09IHZvaWQgMCkge1xuICAgIGRpc2FibGVJbW1lciA9IGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIGZ1bmN0aW9uIHNpbXBsZVByb2R1Y2UocGF0aCwgc3RhdGUsIGZuKSB7XG4gICAgaWYgKGRpc2FibGVJbW1lcikge1xuICAgICAgdmFyIF9jdXJyZW50ID0gZ2V0KHBhdGgsIHN0YXRlKTtcblxuICAgICAgdmFyIG5leHQgPSBmbihfY3VycmVudCk7XG5cbiAgICAgIGlmIChfY3VycmVudCAhPT0gbmV4dCkge1xuICAgICAgICByZXR1cm4gbmV3aWZ5KHBhdGgsIHN0YXRlLCBuZXh0KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHN0YXRlO1xuICAgIH1cblxuICAgIGlmIChwYXRoLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdmFyIF9kcmFmdCA9IGNyZWF0ZURyYWZ0KHN0YXRlKTtcblxuICAgICAgdmFyIF9yZXN1bHQgPSBmbihfZHJhZnQpO1xuXG4gICAgICBpZiAoX3Jlc3VsdCkge1xuICAgICAgICByZXR1cm4gaXNEcmFmdChfcmVzdWx0KSA/IGZpbmlzaERyYWZ0KF9yZXN1bHQpIDogX3Jlc3VsdDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZpbmlzaERyYWZ0KF9kcmFmdCk7XG4gICAgfVxuXG4gICAgdmFyIHBhcmVudFBhdGggPSBwYXRoLnNsaWNlKDAsIHBhdGgubGVuZ3RoIC0gMSk7XG4gICAgdmFyIGRyYWZ0ID0gY3JlYXRlRHJhZnQoc3RhdGUpO1xuICAgIHZhciBwYXJlbnQgPSBnZXQocGFyZW50UGF0aCwgc3RhdGUpO1xuICAgIHZhciBjdXJyZW50ID0gZ2V0KHBhdGgsIGRyYWZ0KTtcbiAgICB2YXIgcmVzdWx0ID0gZm4oY3VycmVudCk7XG5cbiAgICBpZiAocmVzdWx0KSB7XG4gICAgICBwYXJlbnRbcGF0aFtwYXRoLmxlbmd0aCAtIDFdXSA9IHJlc3VsdDtcbiAgICB9XG5cbiAgICByZXR1cm4gZmluaXNoRHJhZnQoZHJhZnQpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBjcmVhdGVSZWR1Y2VyKGRpc2FibGVJbW1lciwgYWN0aW9uUmVkdWNlcnNEaWN0LCBjdXN0b21SZWR1Y2VycywgY29tcHV0ZWRQcm9wZXJ0aWVzKSB7XG4gIHZhciBzaW1wbGVQcm9kdWNlID0gY3JlYXRlU2ltcGxlUHJvZHVjZShkaXNhYmxlSW1tZXIpO1xuXG4gIHZhciBydW5BY3Rpb25SZWR1Y2VyQXRQYXRoID0gZnVuY3Rpb24gcnVuQWN0aW9uUmVkdWNlckF0UGF0aChzdGF0ZSwgYWN0aW9uLCBhY3Rpb25SZWR1Y2VyLCBwYXRoKSB7XG4gICAgcmV0dXJuIHNpbXBsZVByb2R1Y2UocGF0aCwgc3RhdGUsIGZ1bmN0aW9uIChkcmFmdCkge1xuICAgICAgcmV0dXJuIGFjdGlvblJlZHVjZXIoZHJhZnQsIGFjdGlvbi5wYXlsb2FkKTtcbiAgICB9KTtcbiAgfTtcblxuICB2YXIgcmVkdWNlckZvckFjdGlvbnMgPSBmdW5jdGlvbiByZWR1Y2VyRm9yQWN0aW9ucyhzdGF0ZSwgYWN0aW9uKSB7XG4gICAgdmFyIGFjdGlvblJlZHVjZXIgPSBhY3Rpb25SZWR1Y2Vyc0RpY3RbYWN0aW9uLnR5cGVdO1xuXG4gICAgaWYgKGFjdGlvblJlZHVjZXIpIHtcbiAgICAgIHZhciBhY3Rpb25NZXRhID0gYWN0aW9uUmVkdWNlclthY3Rpb25TeW1ib2xdIHx8IGFjdGlvblJlZHVjZXJbYWN0aW9uT25TeW1ib2xdO1xuICAgICAgcmV0dXJuIHJ1bkFjdGlvblJlZHVjZXJBdFBhdGgoc3RhdGUsIGFjdGlvbiwgYWN0aW9uUmVkdWNlciwgYWN0aW9uTWV0YS5wYXJlbnQpO1xuICAgIH1cblxuICAgIHJldHVybiBzdGF0ZTtcbiAgfTtcblxuICB2YXIgcmVkdWNlckZvckN1c3RvbVJlZHVjZXJzID0gZnVuY3Rpb24gcmVkdWNlckZvckN1c3RvbVJlZHVjZXJzKHN0YXRlLCBhY3Rpb24pIHtcbiAgICByZXR1cm4gY3VzdG9tUmVkdWNlcnMucmVkdWNlKGZ1bmN0aW9uIChhY2MsIF9yZWYpIHtcbiAgICAgIHZhciBwYXJlbnRQYXRoID0gX3JlZi5wYXJlbnRQYXRoLFxuICAgICAgICAgIGtleSA9IF9yZWYua2V5LFxuICAgICAgICAgIHJlZCA9IF9yZWYucmVkdWNlcjtcbiAgICAgIHJldHVybiBzaW1wbGVQcm9kdWNlKHBhcmVudFBhdGgsIGFjYywgZnVuY3Rpb24gKGRyYWZ0KSB7XG4gICAgICAgIGRyYWZ0W2tleV0gPSByZWQoZHJhZnRba2V5XSwgYWN0aW9uKTtcbiAgICAgICAgcmV0dXJuIGRyYWZ0O1xuICAgICAgfSk7XG4gICAgfSwgc3RhdGUpO1xuICB9O1xuXG4gIHZhciByb290UmVkdWNlciA9IGZ1bmN0aW9uIHJvb3RSZWR1Y2VyKHN0YXRlLCBhY3Rpb24pIHtcbiAgICB2YXIgc3RhdGVBZnRlckFjdGlvbnMgPSByZWR1Y2VyRm9yQWN0aW9ucyhzdGF0ZSwgYWN0aW9uKTtcbiAgICB2YXIgbmV4dCA9IGN1c3RvbVJlZHVjZXJzLmxlbmd0aCA+IDAgPyByZWR1Y2VyRm9yQ3VzdG9tUmVkdWNlcnMoc3RhdGVBZnRlckFjdGlvbnMsIGFjdGlvbikgOiBzdGF0ZUFmdGVyQWN0aW9ucztcblxuICAgIGlmIChzdGF0ZSAhPT0gbmV4dCkge1xuICAgICAgY29tcHV0ZWRQcm9wZXJ0aWVzLmZvckVhY2goZnVuY3Rpb24gKF9yZWYyKSB7XG4gICAgICAgIHZhciBwYXJlbnRQYXRoID0gX3JlZjIucGFyZW50UGF0aCxcbiAgICAgICAgICAgIGJpbmRDb21wdXRlZFByb3BlcnR5ID0gX3JlZjIuYmluZENvbXB1dGVkUHJvcGVydHk7XG4gICAgICAgIGJpbmRDb21wdXRlZFByb3BlcnR5KGdldChwYXJlbnRQYXRoLCBuZXh0KSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV4dDtcbiAgfTtcblxuICByZXR1cm4gcm9vdFJlZHVjZXI7XG59XG5cbnZhciBub29wU3RvcmFnZSA9IHtcbiAgZ2V0SXRlbTogZnVuY3Rpb24gZ2V0SXRlbSgpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9LFxuICBzZXRJdGVtOiBmdW5jdGlvbiBzZXRJdGVtKCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH0sXG4gIHJlbW92ZUl0ZW06IGZ1bmN0aW9uIHJlbW92ZUl0ZW0oKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufTtcbnZhciBsb2NhbFN0b3JhZ2UgPSB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2Ygd2luZG93LmxvY2FsU3RvcmFnZSAhPT0gJ3VuZGVmaW5lZCcgPyB3aW5kb3cubG9jYWxTdG9yYWdlIDogbm9vcFN0b3JhZ2U7XG52YXIgc2Vzc2lvblN0b3JhZ2UgPSB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2Ygd2luZG93LnNlc3Npb25TdG9yYWdlICE9PSAndW5kZWZpbmVkJyA/IHdpbmRvdy5zZXNzaW9uU3RvcmFnZSA6IG5vb3BTdG9yYWdlO1xuXG5mdW5jdGlvbiBjcmVhdGVTdG9yYWdlV3JhcHBlcihzdG9yYWdlLCB0cmFuc2Zvcm1lcnMpIHtcbiAgaWYgKHN0b3JhZ2UgPT09IHZvaWQgMCkge1xuICAgIHN0b3JhZ2UgPSBzZXNzaW9uU3RvcmFnZTtcbiAgfVxuXG4gIGlmICh0cmFuc2Zvcm1lcnMgPT09IHZvaWQgMCkge1xuICAgIHRyYW5zZm9ybWVycyA9IFtdO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBzdG9yYWdlID09PSAnc3RyaW5nJykge1xuICAgIGlmIChzdG9yYWdlID09PSAnbG9jYWxTdG9yYWdlJykge1xuICAgICAgc3RvcmFnZSA9IGxvY2FsU3RvcmFnZTtcbiAgICB9IGVsc2UgaWYgKHN0b3JhZ2UgPT09ICdzZXNzaW9uU3RvcmFnZScpIHtcbiAgICAgIHN0b3JhZ2UgPSBzZXNzaW9uU3RvcmFnZTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcIkludmFsaWQgc3RvcmFnZSBwcm92aWRlciBzcGVjaWZpZWQgZm9yIEVhc3kgUGVhc3kgcGVyc2lzdDogXCIgKyBzdG9yYWdlICsgXCJcXG5WYWxpZCB2YWx1ZXMgaW5jbHVkZSBcXFwibG9jYWxTdG9yYWdlXFxcIiwgXFxcInNlc3Npb25TdG9yYWdlXFxcIiBvciBhIGN1c3RvbSBzdG9yYWdlIGVuZ2luZS5cIik7XG4gICAgICB9XG5cbiAgICAgIHN0b3JhZ2UgPSBub29wU3RvcmFnZTtcbiAgICB9XG4gIH1cblxuICB2YXIgb3V0VHJhbnNmb3JtZXJzID0gdHJhbnNmb3JtZXJzLnJldmVyc2UoKTtcblxuICB2YXIgc2VyaWFsaXplID0gZnVuY3Rpb24gc2VyaWFsaXplKGRhdGEsIGtleSkge1xuICAgIHZhciBzaW1wbGVLZXkgPSBrZXkuc3Vic3RyKGtleS5pbmRleE9mKCdAJykgKyAxKTtcbiAgICB2YXIgdHJhbnNmb3JtZWQgPSB0cmFuc2Zvcm1lcnMucmVkdWNlKGZ1bmN0aW9uIChhY2MsIGN1cikge1xuICAgICAgcmV0dXJuIGN1ci5pbihhY2MsIHNpbXBsZUtleSk7XG4gICAgfSwgZGF0YSk7XG4gICAgcmV0dXJuIHN0b3JhZ2UgPT09IGxvY2FsU3RvcmFnZSB8fCBzdG9yYWdlID09PSBzZXNzaW9uU3RvcmFnZSA/IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgIGRhdGE6IHRyYW5zZm9ybWVkXG4gICAgfSkgOiB0cmFuc2Zvcm1lZDtcbiAgfTtcblxuICB2YXIgZGVzZXJpYWxpemUgPSBmdW5jdGlvbiBkZXNlcmlhbGl6ZShkYXRhLCBrZXkpIHtcbiAgICB2YXIgc2ltcGxlS2V5ID0ga2V5LnN1YnN0cihrZXkuaW5kZXhPZignQCcpICsgMSk7XG4gICAgdmFyIHJlc3VsdCA9IHN0b3JhZ2UgPT09IGxvY2FsU3RvcmFnZSB8fCBzdG9yYWdlID09PSBzZXNzaW9uU3RvcmFnZSA/IEpTT04ucGFyc2UoZGF0YSkuZGF0YSA6IGRhdGE7XG4gICAgcmV0dXJuIG91dFRyYW5zZm9ybWVycy5yZWR1Y2UoZnVuY3Rpb24gKGFjYywgY3VyKSB7XG4gICAgICByZXR1cm4gY3VyLm91dChhY2MsIHNpbXBsZUtleSk7XG4gICAgfSwgcmVzdWx0KTtcbiAgfTtcblxuICB2YXIgaXNBc3luYyA9IGlzUHJvbWlzZShzdG9yYWdlLmdldEl0ZW0oJ18nKSk7XG4gIHJldHVybiB7XG4gICAgaXNBc3luYzogaXNBc3luYyxcbiAgICBnZXRJdGVtOiBmdW5jdGlvbiBnZXRJdGVtKGtleSkge1xuICAgICAgaWYgKGlzQXN5bmMpIHtcbiAgICAgICAgcmV0dXJuIHN0b3JhZ2UuZ2V0SXRlbShrZXkpLnRoZW4oZnVuY3Rpb24gKHdyYXBwZWQpIHtcbiAgICAgICAgICByZXR1cm4gd3JhcHBlZCAhPSBudWxsID8gZGVzZXJpYWxpemUod3JhcHBlZCwga2V5KSA6IHVuZGVmaW5lZDtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHZhciB3cmFwcGVkID0gc3RvcmFnZS5nZXRJdGVtKGtleSk7XG4gICAgICByZXR1cm4gd3JhcHBlZCAhPSBudWxsID8gZGVzZXJpYWxpemUod3JhcHBlZCwga2V5KSA6IHVuZGVmaW5lZDtcbiAgICB9LFxuICAgIHNldEl0ZW06IGZ1bmN0aW9uIHNldEl0ZW0oa2V5LCBkYXRhKSB7XG4gICAgICByZXR1cm4gc3RvcmFnZS5zZXRJdGVtKGtleSwgc2VyaWFsaXplKGRhdGEsIGtleSkpO1xuICAgIH0sXG4gICAgcmVtb3ZlSXRlbTogZnVuY3Rpb24gcmVtb3ZlSXRlbShrZXkpIHtcbiAgICAgIHJldHVybiBzdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KTtcbiAgICB9XG4gIH07XG59XG5cbmZ1bmN0aW9uIGV4dHJhY3RQZXJzaXN0Q29uZmlnKHBhdGgsIHBlcnNpc3REZWZpbml0aW9uKSB7XG4gIGlmIChwZXJzaXN0RGVmaW5pdGlvbiA9PT0gdm9pZCAwKSB7XG4gICAgcGVyc2lzdERlZmluaXRpb24gPSB7fTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgcGF0aDogcGF0aCxcbiAgICBjb25maWc6IHtcbiAgICAgIGJsYWNrbGlzdDogcGVyc2lzdERlZmluaXRpb24uYmxhY2tsaXN0IHx8IFtdLFxuICAgICAgbWVyZ2VTdHJhdGVneTogcGVyc2lzdERlZmluaXRpb24ubWVyZ2VTdHJhdGVneSB8fCAnbWVyZ2UnLFxuICAgICAgc3RvcmFnZTogY3JlYXRlU3RvcmFnZVdyYXBwZXIocGVyc2lzdERlZmluaXRpb24uc3RvcmFnZSwgcGVyc2lzdERlZmluaXRpb24udHJhbnNmb3JtZXJzKSxcbiAgICAgIHdoaXRlbGlzdDogcGVyc2lzdERlZmluaXRpb24ud2hpdGVsaXN0IHx8IFtdXG4gICAgfVxuICB9O1xufVxuXG5mdW5jdGlvbiByZXNvbHZlUGVyc2lzdFRhcmdldHModGFyZ2V0LCB3aGl0ZWxpc3QsIGJsYWNrbGlzdCkge1xuICB2YXIgdGFyZ2V0cyA9IE9iamVjdC5rZXlzKHRhcmdldCk7XG5cbiAgaWYgKHdoaXRlbGlzdC5sZW5ndGggPiAwKSB7XG4gICAgdGFyZ2V0cyA9IHRhcmdldHMucmVkdWNlKGZ1bmN0aW9uIChhY2MsIGN1cikge1xuICAgICAgaWYgKHdoaXRlbGlzdC5maW5kSW5kZXgoZnVuY3Rpb24gKHgpIHtcbiAgICAgICAgcmV0dXJuIHggPT09IGN1cjtcbiAgICAgIH0pICE9PSAtMSkge1xuICAgICAgICByZXR1cm4gW10uY29uY2F0KGFjYywgW2N1cl0pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIFtdKTtcbiAgfVxuXG4gIGlmIChibGFja2xpc3QubGVuZ3RoID4gMCkge1xuICAgIHRhcmdldHMgPSB0YXJnZXRzLnJlZHVjZShmdW5jdGlvbiAoYWNjLCBjdXIpIHtcbiAgICAgIGlmIChibGFja2xpc3QuZmluZEluZGV4KGZ1bmN0aW9uICh4KSB7XG4gICAgICAgIHJldHVybiB4ID09PSBjdXI7XG4gICAgICB9KSAhPT0gLTEpIHtcbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIFtdLmNvbmNhdChhY2MsIFtjdXJdKTtcbiAgICB9LCBbXSk7XG4gIH1cblxuICByZXR1cm4gdGFyZ2V0cztcbn1cblxuZnVuY3Rpb24gY3JlYXRlUGVyc2lzdG9yKHBlcnNpc3RLZXksIHJlZmVyZW5jZXMpIHtcbiAgcmV0dXJuIGRlYm91bmNlKGZ1bmN0aW9uICgpIHtcbiAgICByZWZlcmVuY2VzLmludGVybmFscy5wZXJzaXN0ZW5jZUNvbmZpZy5mb3JFYWNoKGZ1bmN0aW9uIChfcmVmKSB7XG4gICAgICB2YXIgcGF0aCA9IF9yZWYucGF0aCxcbiAgICAgICAgICBjb25maWcgPSBfcmVmLmNvbmZpZztcbiAgICAgIHZhciBzdG9yYWdlID0gY29uZmlnLnN0b3JhZ2UsXG4gICAgICAgICAgd2hpdGVsaXN0ID0gY29uZmlnLndoaXRlbGlzdCxcbiAgICAgICAgICBibGFja2xpc3QgPSBjb25maWcuYmxhY2tsaXN0O1xuICAgICAgdmFyIHN0YXRlID0gcmVmZXJlbmNlcy5nZXRTdGF0ZSgpO1xuICAgICAgdmFyIHBlcnNpc3RSb290ID0gZGVlcENsb25lU3RhdGVXaXRob3V0Q29tcHV0ZWQoZ2V0KHBhdGgsIHN0YXRlKSk7XG4gICAgICB2YXIgdGFyZ2V0cyA9IHJlc29sdmVQZXJzaXN0VGFyZ2V0cyhwZXJzaXN0Um9vdCwgd2hpdGVsaXN0LCBibGFja2xpc3QpO1xuICAgICAgdGFyZ2V0cy5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgdmFyIHRhcmdldFBhdGggPSBbXS5jb25jYXQocGF0aCwgW2tleV0pO1xuICAgICAgICBzdG9yYWdlLnNldEl0ZW0ocGVyc2lzdEtleSh0YXJnZXRQYXRoKSwgZ2V0KHRhcmdldFBhdGgsIHN0YXRlKSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSwgMTAwMCk7XG59XG5mdW5jdGlvbiBjcmVhdGVQZXJzaXN0TWlkZGxld2FyZShwZXJzaXN0b3IsIHJlZmVyZW5jZXMpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKG5leHQpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbiAoYWN0aW9uKSB7XG4gICAgICAgIHZhciBzdGF0ZSA9IG5leHQoYWN0aW9uKTtcblxuICAgICAgICBpZiAoYWN0aW9uICYmIGFjdGlvbi50eXBlICE9PSAnQGFjdGlvbi5lUFJTJyAmJiByZWZlcmVuY2VzLmludGVybmFscy5wZXJzaXN0ZW5jZUNvbmZpZy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgcGVyc2lzdG9yKHN0YXRlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzdGF0ZTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVBlcnNpc3RlbmNlQ2xlYXJlcihwZXJzaXN0S2V5LCByZWZlcmVuY2VzKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgIHJlZmVyZW5jZXMuaW50ZXJuYWxzLnBlcnNpc3RlbmNlQ29uZmlnLmZvckVhY2goZnVuY3Rpb24gKF9yZWYyKSB7XG4gICAgICAgIHZhciBwYXRoID0gX3JlZjIucGF0aCxcbiAgICAgICAgICAgIGNvbmZpZyA9IF9yZWYyLmNvbmZpZztcbiAgICAgICAgdmFyIHN0b3JhZ2UgPSBjb25maWcuc3RvcmFnZSxcbiAgICAgICAgICAgIHdoaXRlbGlzdCA9IGNvbmZpZy53aGl0ZWxpc3QsXG4gICAgICAgICAgICBibGFja2xpc3QgPSBjb25maWcuYmxhY2tsaXN0O1xuICAgICAgICB2YXIgcGVyc2lzdFJvb3QgPSBnZXQocGF0aCwgcmVmZXJlbmNlcy5nZXRTdGF0ZSgpKTtcbiAgICAgICAgdmFyIHRhcmdldHMgPSByZXNvbHZlUGVyc2lzdFRhcmdldHMocGVyc2lzdFJvb3QsIHdoaXRlbGlzdCwgYmxhY2tsaXN0KTtcblxuICAgICAgICBpZiAodGFyZ2V0cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgUHJvbWlzZS5hbGwodGFyZ2V0cy5tYXAoZnVuY3Rpb24gKGtleSkge1xuICAgICAgICAgICAgdmFyIHRhcmdldFBhdGggPSBbXS5jb25jYXQocGF0aCwgW2tleV0pO1xuICAgICAgICAgICAgcmV0dXJuIHN0b3JhZ2UucmVtb3ZlSXRlbShwZXJzaXN0S2V5KHRhcmdldFBhdGgpKTtcbiAgICAgICAgICB9KSkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzb2x2ZSgpO1xuICAgICAgICAgIH0sIHJlamVjdCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfTtcbn1cbmZ1bmN0aW9uIHJlaHlkcmF0ZVN0YXRlRnJvbVBlcnNpc3RJZk5lZWRlZChwZXJzaXN0S2V5LCByZXBsYWNlU3RhdGUsIHJlZmVyZW5jZXMpIHtcbiAgLy8gSWYgd2UgaGF2ZSBhbnkgcGVyc2lzdCBjb25maWdzIHdlIHdpbGwgYXR0ZW1wIHRvIHBlcmZvcm0gYSBzdGF0ZSByZWh5ZHJhdGlvblxuICB2YXIgcmVzb2x2ZVJlaHlkcmF0aW9uID0gUHJvbWlzZS5yZXNvbHZlKCk7XG5cbiAgaWYgKHJlZmVyZW5jZXMuaW50ZXJuYWxzLnBlcnNpc3RlbmNlQ29uZmlnLmxlbmd0aCA+IDApIHtcbiAgICByZWZlcmVuY2VzLmludGVybmFscy5wZXJzaXN0ZW5jZUNvbmZpZy5mb3JFYWNoKGZ1bmN0aW9uIChwZXJzaXN0SW5zdGFuY2UpIHtcbiAgICAgIHZhciBwYXRoID0gcGVyc2lzdEluc3RhbmNlLnBhdGgsXG4gICAgICAgICAgY29uZmlnID0gcGVyc2lzdEluc3RhbmNlLmNvbmZpZztcbiAgICAgIHZhciBibGFja2xpc3QgPSBjb25maWcuYmxhY2tsaXN0LFxuICAgICAgICAgIG1lcmdlU3RyYXRlZ3kgPSBjb25maWcubWVyZ2VTdHJhdGVneSxcbiAgICAgICAgICBzdG9yYWdlID0gY29uZmlnLnN0b3JhZ2UsXG4gICAgICAgICAgd2hpdGVsaXN0ID0gY29uZmlnLndoaXRlbGlzdDtcbiAgICAgIHZhciBzdGF0ZSA9IHJlZmVyZW5jZXMuaW50ZXJuYWxzLmRlZmF1bHRTdGF0ZTtcbiAgICAgIHZhciBwZXJzaXN0Um9vdCA9IGRlZXBDbG9uZVN0YXRlV2l0aG91dENvbXB1dGVkKGdldChwYXRoLCBzdGF0ZSkpO1xuICAgICAgdmFyIHRhcmdldHMgPSByZXNvbHZlUGVyc2lzdFRhcmdldHMocGVyc2lzdFJvb3QsIHdoaXRlbGlzdCwgYmxhY2tsaXN0KTtcblxuICAgICAgdmFyIGFwcGx5UmVoeWRyYXRpb25TdHJhdGVneSA9IGZ1bmN0aW9uIGFwcGx5UmVoeWRyYXRpb25TdHJhdGVneShvcmlnaW5hbFN0YXRlLCByZWh5ZHJhdGVkU3RhdGUpIHtcbiAgICAgICAgaWYgKG1lcmdlU3RyYXRlZ3kgPT09ICdvdmVyd3JpdGUnKSB7XG4gICAgICAgICAgc2V0KHBhdGgsIG9yaWdpbmFsU3RhdGUsIHJlaHlkcmF0ZWRTdGF0ZSk7XG4gICAgICAgIH0gZWxzZSBpZiAobWVyZ2VTdHJhdGVneSA9PT0gJ21lcmdlJykge1xuICAgICAgICAgIHZhciB0YXJnZXQgPSBnZXQocGF0aCwgb3JpZ2luYWxTdGF0ZSk7XG4gICAgICAgICAgT2JqZWN0LmtleXMocmVoeWRyYXRlZFN0YXRlKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgICAgIHRhcmdldFtrZXldID0gcmVoeWRyYXRlZFN0YXRlW2tleV07XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAobWVyZ2VTdHJhdGVneSA9PT0gJ21lcmdlRGVlcCcpIHtcbiAgICAgICAgICB2YXIgX3RhcmdldCA9IGdldChwYXRoLCBvcmlnaW5hbFN0YXRlKTtcblxuICAgICAgICAgIHZhciBzZXRBdCA9IGZ1bmN0aW9uIHNldEF0KGN1cnJlbnRUYXJnZXQsIGN1cnJlbnROZXh0KSB7XG4gICAgICAgICAgICBPYmplY3Qua2V5cyhjdXJyZW50TmV4dCkuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgICAgICAgIHZhciBkYXRhID0gY3VycmVudE5leHRba2V5XTtcblxuICAgICAgICAgICAgICBpZiAoaXNQbGFpbk9iamVjdChkYXRhKSkge1xuICAgICAgICAgICAgICAgIGlmICghaXNQbGFpbk9iamVjdChjdXJyZW50VGFyZ2V0W2tleV0pKSB7XG4gICAgICAgICAgICAgICAgICBjdXJyZW50VGFyZ2V0W2tleV0gPSB7fTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBzZXRBdChjdXJyZW50VGFyZ2V0W2tleV0sIGRhdGEpO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGN1cnJlbnRUYXJnZXRba2V5XSA9IGRhdGE7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH07XG5cbiAgICAgICAgICBzZXRBdChfdGFyZ2V0LCByZWh5ZHJhdGVkU3RhdGUpO1xuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICBpZiAoc3RvcmFnZS5pc0FzeW5jKSB7XG4gICAgICAgIHZhciBhc3luY1N0YXRlUmVzb2x2ZXJzID0gdGFyZ2V0cy5yZWR1Y2UoZnVuY3Rpb24gKGFjYywga2V5KSB7XG4gICAgICAgICAgdmFyIHRhcmdldFBhdGggPSBbXS5jb25jYXQocGF0aCwgW2tleV0pO1xuICAgICAgICAgIHZhciBkYXRhUHJvbWlzZSA9IHN0b3JhZ2UuZ2V0SXRlbShwZXJzaXN0S2V5KHRhcmdldFBhdGgpKTtcblxuICAgICAgICAgIGlmIChpc1Byb21pc2UoZGF0YVByb21pc2UpKSB7XG4gICAgICAgICAgICBhY2MucHVzaCh7XG4gICAgICAgICAgICAgIGtleToga2V5LFxuICAgICAgICAgICAgICBkYXRhUHJvbWlzZTogZGF0YVByb21pc2VcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sIFtdKTtcblxuICAgICAgICBpZiAoYXN5bmNTdGF0ZVJlc29sdmVycy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgcmVzb2x2ZVJlaHlkcmF0aW9uID0gUHJvbWlzZS5hbGwoYXN5bmNTdGF0ZVJlc29sdmVycy5tYXAoZnVuY3Rpb24gKHgpIHtcbiAgICAgICAgICAgIHJldHVybiB4LmRhdGFQcm9taXNlO1xuICAgICAgICAgIH0pKS50aGVuKGZ1bmN0aW9uIChyZXNvbHZlZERhdGEpIHtcbiAgICAgICAgICAgIHZhciBuZXh0ID0gcmVzb2x2ZWREYXRhLnJlZHVjZShmdW5jdGlvbiAoYWNjLCBjdXIsIGlkeCkge1xuICAgICAgICAgICAgICB2YXIga2V5ID0gYXN5bmNTdGF0ZVJlc29sdmVyc1tpZHhdLmtleTtcblxuICAgICAgICAgICAgICBpZiAoY3VyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBhY2Nba2V5XSA9IGN1cjtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgICAgICB9LCB7fSk7XG5cbiAgICAgICAgICAgIGlmIChPYmplY3Qua2V5cyhuZXh0KS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBhcHBseVJlaHlkcmF0aW9uU3RyYXRlZ3koc3RhdGUsIG5leHQpO1xuICAgICAgICAgICAgcmVwbGFjZVN0YXRlKHN0YXRlKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIG5leHQgPSB0YXJnZXRzLnJlZHVjZShmdW5jdGlvbiAoYWNjLCBrZXkpIHtcbiAgICAgICAgICB2YXIgdGFyZ2V0UGF0aCA9IFtdLmNvbmNhdChwYXRoLCBba2V5XSk7XG4gICAgICAgICAgdmFyIGRhdGEgPSBzdG9yYWdlLmdldEl0ZW0ocGVyc2lzdEtleSh0YXJnZXRQYXRoKSk7XG5cbiAgICAgICAgICBpZiAoZGF0YSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBhY2Nba2V5XSA9IGRhdGE7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSwge30pO1xuICAgICAgICBhcHBseVJlaHlkcmF0aW9uU3RyYXRlZ3koc3RhdGUsIG5leHQpO1xuICAgICAgICByZXBsYWNlU3RhdGUoc3RhdGUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHJlc29sdmVSZWh5ZHJhdGlvbjtcbn1cblxuZnVuY3Rpb24gY3JlYXRlQWN0aW9uQ3JlYXRvcihhY3Rpb25EZWZpbml0aW9uLCBtZXRhLCByZWZlcmVuY2VzKSB7XG4gIHZhciBwcmVmaXggPSBhY3Rpb25EZWZpbml0aW9uW2FjdGlvblN5bWJvbF0gPyAnQGFjdGlvbicgOiAnQGFjdGlvbk9uJztcbiAgdmFyIHR5cGUgPSBwcmVmaXggKyBcIi5cIiArIG1ldGEucGF0aC5qb2luKCcuJyk7XG4gIHZhciBhY3Rpb25NZXRhID0gYWN0aW9uRGVmaW5pdGlvblthY3Rpb25TeW1ib2xdIHx8IGFjdGlvbkRlZmluaXRpb25bYWN0aW9uT25TeW1ib2xdO1xuICBhY3Rpb25NZXRhLmFjdGlvbk5hbWUgPSBtZXRhLmtleTtcbiAgYWN0aW9uTWV0YS50eXBlID0gdHlwZTtcbiAgYWN0aW9uTWV0YS5wYXJlbnQgPSBtZXRhLnBhcmVudDtcbiAgYWN0aW9uTWV0YS5wYXRoID0gbWV0YS5wYXRoO1xuXG4gIHZhciBhY3Rpb25DcmVhdG9yID0gZnVuY3Rpb24gYWN0aW9uQ3JlYXRvcihwYXlsb2FkKSB7XG4gICAgdmFyIGFjdGlvbiA9IHtcbiAgICAgIHR5cGU6IHR5cGUsXG4gICAgICBwYXlsb2FkOiBwYXlsb2FkXG4gICAgfTtcblxuICAgIGlmIChhY3Rpb25EZWZpbml0aW9uW2FjdGlvbk9uU3ltYm9sXSAmJiBhY3Rpb25NZXRhLnJlc29sdmVkVGFyZ2V0cykge1xuICAgICAgcGF5bG9hZC5yZXNvbHZlZFRhcmdldHMgPSBbXS5jb25jYXQoYWN0aW9uTWV0YS5yZXNvbHZlZFRhcmdldHMpO1xuICAgIH1cblxuICAgIHZhciByZXN1bHQgPSByZWZlcmVuY2VzLmRpc3BhdGNoKGFjdGlvbik7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfTtcblxuICBhY3Rpb25DcmVhdG9yLnR5cGUgPSB0eXBlO1xuICByZXR1cm4gYWN0aW9uQ3JlYXRvcjtcbn1cblxuZnVuY3Rpb24gY3JlYXRlVGh1bmtIYW5kbGVyKHRodW5rRGVmaW5pdGlvbiwgbWV0YSwgcmVmZXJlbmNlcywgaW5qZWN0aW9ucywgYWN0aW9uQ3JlYXRvcnMpIHtcbiAgdmFyIHRodW5rTWV0YSA9IHRodW5rRGVmaW5pdGlvblt0aHVua1N5bWJvbF0gfHwgdGh1bmtEZWZpbml0aW9uW3RodW5rT25TeW1ib2xdO1xuICByZXR1cm4gZnVuY3Rpb24gKHBheWxvYWQpIHtcbiAgICB2YXIgaGVscGVycyA9IHtcbiAgICAgIGRpc3BhdGNoOiByZWZlcmVuY2VzLmRpc3BhdGNoLFxuICAgICAgZ2V0U3RhdGU6IGZ1bmN0aW9uIGdldFN0YXRlKCkge1xuICAgICAgICByZXR1cm4gZ2V0KG1ldGEucGFyZW50LCByZWZlcmVuY2VzLmdldFN0YXRlKCkpO1xuICAgICAgfSxcbiAgICAgIGdldFN0b3JlQWN0aW9uczogZnVuY3Rpb24gZ2V0U3RvcmVBY3Rpb25zKCkge1xuICAgICAgICByZXR1cm4gYWN0aW9uQ3JlYXRvcnM7XG4gICAgICB9LFxuICAgICAgZ2V0U3RvcmVTdGF0ZTogcmVmZXJlbmNlcy5nZXRTdGF0ZSxcbiAgICAgIGluamVjdGlvbnM6IGluamVjdGlvbnMsXG4gICAgICBtZXRhOiBtZXRhXG4gICAgfTtcblxuICAgIGlmICh0aHVua0RlZmluaXRpb25bdGh1bmtPblN5bWJvbF0gJiYgdGh1bmtNZXRhLnJlc29sdmVkVGFyZ2V0cykge1xuICAgICAgcGF5bG9hZC5yZXNvbHZlZFRhcmdldHMgPSBbXS5jb25jYXQodGh1bmtNZXRhLnJlc29sdmVkVGFyZ2V0cyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRodW5rRGVmaW5pdGlvbihnZXQobWV0YS5wYXJlbnQsIGFjdGlvbkNyZWF0b3JzKSwgcGF5bG9hZCwgaGVscGVycyk7XG4gIH07XG59XG5mdW5jdGlvbiBjcmVhdGVUaHVua0FjdGlvbnNDcmVhdG9yKHRodW5rRGVmaW5pdGlvbiwgbWV0YSwgcmVmZXJlbmNlcywgdGh1bmtIYW5kbGVyKSB7XG4gIHZhciBwcmVmaXggPSB0aHVua0RlZmluaXRpb25bdGh1bmtTeW1ib2xdID8gJ0B0aHVuaycgOiAnQHRodW5rT24nO1xuICB2YXIgdHlwZSA9IHByZWZpeCArIFwiLlwiICsgbWV0YS5wYXRoLmpvaW4oJy4nKTtcbiAgdmFyIHN0YXJ0VHlwZSA9IHR5cGUgKyBcIihzdGFydClcIjtcbiAgdmFyIHN1Y2Nlc3NUeXBlID0gdHlwZSArIFwiKHN1Y2Nlc3MpXCI7XG4gIHZhciBmYWlsVHlwZSA9IHR5cGUgKyBcIihmYWlsKVwiO1xuICB2YXIgdGh1bmtNZXRhID0gdGh1bmtEZWZpbml0aW9uW3RodW5rU3ltYm9sXSB8fCB0aHVua0RlZmluaXRpb25bdGh1bmtPblN5bWJvbF07XG4gIHRodW5rTWV0YS50eXBlID0gdHlwZTtcbiAgdGh1bmtNZXRhLmFjdGlvbk5hbWUgPSBtZXRhLmtleTtcbiAgdGh1bmtNZXRhLnBhcmVudCA9IG1ldGEucGFyZW50O1xuICB0aHVua01ldGEucGF0aCA9IG1ldGEucGF0aDtcblxuICB2YXIgYWN0aW9uQ3JlYXRvciA9IGZ1bmN0aW9uIGFjdGlvbkNyZWF0b3IocGF5bG9hZCkge1xuICAgIHZhciBkaXNwYXRjaEVycm9yID0gZnVuY3Rpb24gZGlzcGF0Y2hFcnJvcihlcnIpIHtcbiAgICAgIHJlZmVyZW5jZXMuZGlzcGF0Y2goe1xuICAgICAgICB0eXBlOiBmYWlsVHlwZSxcbiAgICAgICAgcGF5bG9hZDogcGF5bG9hZCxcbiAgICAgICAgZXJyb3I6IGVyclxuICAgICAgfSk7XG4gICAgICByZWZlcmVuY2VzLmRpc3BhdGNoKHtcbiAgICAgICAgdHlwZTogdHlwZSxcbiAgICAgICAgcGF5bG9hZDogcGF5bG9hZCxcbiAgICAgICAgZXJyb3I6IGVyclxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIHZhciBkaXNwYXRjaFN1Y2Nlc3MgPSBmdW5jdGlvbiBkaXNwYXRjaFN1Y2Nlc3MocmVzdWx0KSB7XG4gICAgICByZWZlcmVuY2VzLmRpc3BhdGNoKHtcbiAgICAgICAgdHlwZTogc3VjY2Vzc1R5cGUsXG4gICAgICAgIHBheWxvYWQ6IHBheWxvYWQsXG4gICAgICAgIHJlc3VsdDogcmVzdWx0XG4gICAgICB9KTtcbiAgICAgIHJlZmVyZW5jZXMuZGlzcGF0Y2goe1xuICAgICAgICB0eXBlOiB0eXBlLFxuICAgICAgICBwYXlsb2FkOiBwYXlsb2FkLFxuICAgICAgICByZXN1bHQ6IHJlc3VsdFxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIHJlZmVyZW5jZXMuZGlzcGF0Y2goe1xuICAgICAgdHlwZTogc3RhcnRUeXBlLFxuICAgICAgcGF5bG9hZDogcGF5bG9hZFxuICAgIH0pO1xuXG4gICAgdHJ5IHtcbiAgICAgIHZhciByZXN1bHQgPSByZWZlcmVuY2VzLmRpc3BhdGNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRodW5rSGFuZGxlcihwYXlsb2FkKTtcbiAgICAgIH0pO1xuXG4gICAgICBpZiAoaXNQcm9taXNlKHJlc3VsdCkpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdC50aGVuKGZ1bmN0aW9uIChyZXNvbHZlZCkge1xuICAgICAgICAgIGRpc3BhdGNoU3VjY2VzcyhyZXNvbHZlZCk7XG4gICAgICAgICAgcmV0dXJuIHJlc29sdmVkO1xuICAgICAgICB9KS5jYXRjaChmdW5jdGlvbiAoZXJyKSB7XG4gICAgICAgICAgZGlzcGF0Y2hFcnJvcihlcnIpO1xuICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGRpc3BhdGNoU3VjY2VzcyhyZXN1bHQpO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGRpc3BhdGNoRXJyb3IoZXJyKTtcbiAgICAgIHRocm93IGVycjtcbiAgICB9XG4gIH07XG5cbiAgYWN0aW9uQ3JlYXRvci50eXBlID0gdHlwZTtcbiAgYWN0aW9uQ3JlYXRvci5zdGFydFR5cGUgPSBzdGFydFR5cGU7XG4gIGFjdGlvbkNyZWF0b3Iuc3VjY2Vzc1R5cGUgPSBzdWNjZXNzVHlwZTtcbiAgYWN0aW9uQ3JlYXRvci5mYWlsVHlwZSA9IGZhaWxUeXBlO1xuICByZXR1cm4gYWN0aW9uQ3JlYXRvcjtcbn1cblxuZnVuY3Rpb24gY3JlYXRlTGlzdGVuZXJNaWRkbGV3YXJlKHJlZmVyZW5jZXMpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKG5leHQpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbiAoYWN0aW9uKSB7XG4gICAgICAgIHZhciByZXN1bHQgPSBuZXh0KGFjdGlvbik7XG5cbiAgICAgICAgaWYgKGFjdGlvbiAmJiByZWZlcmVuY2VzLmludGVybmFscy5saXN0ZW5lckFjdGlvbk1hcFthY3Rpb24udHlwZV0gJiYgcmVmZXJlbmNlcy5pbnRlcm5hbHMubGlzdGVuZXJBY3Rpb25NYXBbYWN0aW9uLnR5cGVdLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB2YXIgc291cmNlQWN0aW9uID0gcmVmZXJlbmNlcy5pbnRlcm5hbHMuYWN0aW9uQ3JlYXRvckRpY3RbYWN0aW9uLnR5cGVdO1xuICAgICAgICAgIHJlZmVyZW5jZXMuaW50ZXJuYWxzLmxpc3RlbmVyQWN0aW9uTWFwW2FjdGlvbi50eXBlXS5mb3JFYWNoKGZ1bmN0aW9uIChhY3Rpb25DcmVhdG9yKSB7XG4gICAgICAgICAgICBhY3Rpb25DcmVhdG9yKHtcbiAgICAgICAgICAgICAgdHlwZTogc291cmNlQWN0aW9uID8gc291cmNlQWN0aW9uLnR5cGUgOiBhY3Rpb24udHlwZSxcbiAgICAgICAgICAgICAgcGF5bG9hZDogYWN0aW9uLnBheWxvYWQsXG4gICAgICAgICAgICAgIGVycm9yOiBhY3Rpb24uZXJyb3IsXG4gICAgICAgICAgICAgIHJlc3VsdDogYWN0aW9uLnJlc3VsdFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xufVxuZnVuY3Rpb24gYmluZExpc3RlbmVyRGVmaW5pdGlvbnMobGlzdGVuZXJEZWZpbml0aW9ucywgYWN0aW9uQ3JlYXRvcnMsIGFjdGlvbkNyZWF0b3JEaWN0LCBsaXN0ZW5lckFjdGlvbk1hcCkge1xuICBsaXN0ZW5lckRlZmluaXRpb25zLmZvckVhY2goZnVuY3Rpb24gKGxpc3RlbmVyQWN0aW9uT3JUaHVuaykge1xuICAgIHZhciBsaXN0ZW5lck1ldGEgPSBsaXN0ZW5lckFjdGlvbk9yVGh1bmtbYWN0aW9uT25TeW1ib2xdIHx8IGxpc3RlbmVyQWN0aW9uT3JUaHVua1t0aHVua09uU3ltYm9sXTtcbiAgICB2YXIgdGFyZ2V0cyA9IGxpc3RlbmVyTWV0YS50YXJnZXRSZXNvbHZlcihnZXQobGlzdGVuZXJNZXRhLnBhcmVudCwgYWN0aW9uQ3JlYXRvcnMpLCBhY3Rpb25DcmVhdG9ycyk7XG4gICAgdmFyIHRhcmdldFR5cGVzID0gKEFycmF5LmlzQXJyYXkodGFyZ2V0cykgPyB0YXJnZXRzIDogW3RhcmdldHNdKS5yZWR1Y2UoZnVuY3Rpb24gKGFjYywgdGFyZ2V0KSB7XG4gICAgICBpZiAodHlwZW9mIHRhcmdldCA9PT0gJ2Z1bmN0aW9uJyAmJiB0YXJnZXQudHlwZSAmJiBhY3Rpb25DcmVhdG9yRGljdFt0YXJnZXQudHlwZV0pIHtcbiAgICAgICAgYWNjLnB1c2godGFyZ2V0LnR5cGUpO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdGFyZ2V0ID09PSAnc3RyaW5nJykge1xuICAgICAgICBhY2MucHVzaCh0YXJnZXQpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIFtdKTtcbiAgICBsaXN0ZW5lck1ldGEucmVzb2x2ZWRUYXJnZXRzID0gdGFyZ2V0VHlwZXM7XG4gICAgdGFyZ2V0VHlwZXMuZm9yRWFjaChmdW5jdGlvbiAodGFyZ2V0VHlwZSkge1xuICAgICAgdmFyIGxpc3RlbmVyUmVnID0gbGlzdGVuZXJBY3Rpb25NYXBbdGFyZ2V0VHlwZV0gfHwgW107XG4gICAgICBsaXN0ZW5lclJlZy5wdXNoKGFjdGlvbkNyZWF0b3JEaWN0W2xpc3RlbmVyTWV0YS50eXBlXSk7XG4gICAgICBsaXN0ZW5lckFjdGlvbk1hcFt0YXJnZXRUeXBlXSA9IGxpc3RlbmVyUmVnO1xuICAgIH0pO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlQ29tcHV0ZWRQcm9wZXJ0eUJpbmRlcihwYXJlbnRQYXRoLCBrZXksIGRlZmluaXRpb24sIGNvbXB1dGVkU3RhdGUsIHJlZmVyZW5jZXMpIHtcbiAgdmFyIGNvbXB1dGVkTWV0YSA9IGRlZmluaXRpb25bY29tcHV0ZWRTeW1ib2xdO1xuICB2YXIgbWVtb2lzZWRSZXN1bHRGbiA9IG1lbW9pemVyaWZpYygxKShkZWZpbml0aW9uKTtcbiAgcmV0dXJuIGZ1bmN0aW9uIGNyZWF0ZUNvbXB1dGVkUHJvcGVydHkobykge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrZXksIHtcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICBnZXQ6IGZ1bmN0aW9uIGdldCQxKCkge1xuICAgICAgICB2YXIgc3RvcmVTdGF0ZTtcblxuICAgICAgICBpZiAoY29tcHV0ZWRTdGF0ZS5pc0luUmVkdWNlcikge1xuICAgICAgICAgIHN0b3JlU3RhdGUgPSBjb21wdXRlZFN0YXRlLmN1cnJlbnRTdGF0ZTtcbiAgICAgICAgfSBlbHNlIGlmIChyZWZlcmVuY2VzLmdldFN0YXRlID09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBzdG9yZVN0YXRlID0gcmVmZXJlbmNlcy5nZXRTdGF0ZSgpO1xuICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUud2FybignSW52YWxpZCBhY2Nlc3MgYXR0ZW1wdCB0byBhIGNvbXB1dGVkIHByb3BlcnR5Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHN0YXRlID0gZ2V0KHBhcmVudFBhdGgsIHN0b3JlU3RhdGUpO1xuXG4gICAgICAgIHZhciBpbnB1dHMgPSBjb21wdXRlZE1ldGEuc3RhdGVSZXNvbHZlcnMubWFwKGZ1bmN0aW9uIChyZXNvbHZlcikge1xuICAgICAgICAgIHJldHVybiByZXNvbHZlcihzdGF0ZSwgc3RvcmVTdGF0ZSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gbWVtb2lzZWRSZXN1bHRGbi5hcHBseSh2b2lkIDAsIGlucHV0cyk7XG4gICAgICB9XG4gICAgfSk7XG4gIH07XG59XG5mdW5jdGlvbiBjcmVhdGVDb21wdXRlZFByb3BlcnRpZXNNaWRkbGV3YXJlKHJlZmVyZW5jZXMpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChzdG9yZSkge1xuICAgIHJldHVybiBmdW5jdGlvbiAobmV4dCkge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uIChhY3Rpb24pIHtcbiAgICAgICAgcmVmZXJlbmNlcy5pbnRlcm5hbHMuY29tcHV0ZWRTdGF0ZS5jdXJyZW50U3RhdGUgPSBzdG9yZS5nZXRTdGF0ZSgpO1xuICAgICAgICByZWZlcmVuY2VzLmludGVybmFscy5jb21wdXRlZFN0YXRlLmlzSW5SZWR1Y2VyID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIG5leHQoYWN0aW9uKTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gZXh0cmFjdERhdGFGcm9tTW9kZWwobW9kZWwsIGluaXRpYWxTdGF0ZSwgaW5qZWN0aW9ucywgcmVmZXJlbmNlcykge1xuICB2YXIgZGVmYXVsdFN0YXRlID0gaW5pdGlhbFN0YXRlO1xuICB2YXIgYWN0aW9uQ3JlYXRvckRpY3QgPSB7fTtcbiAgdmFyIGFjdGlvbkNyZWF0b3JzID0ge307XG4gIHZhciBhY3Rpb25SZWR1Y2Vyc0RpY3QgPSB7fTtcbiAgdmFyIGFjdGlvblRodW5rcyA9IHt9O1xuICB2YXIgY29tcHV0ZWRQcm9wZXJ0aWVzID0gW107XG4gIHZhciBjdXN0b21SZWR1Y2VycyA9IFtdO1xuICB2YXIgbGlzdGVuZXJBY3Rpb25DcmVhdG9ycyA9IHt9O1xuICB2YXIgbGlzdGVuZXJBY3Rpb25NYXAgPSB7fTtcbiAgdmFyIGxpc3RlbmVyRGVmaW5pdGlvbnMgPSBbXTtcbiAgdmFyIHBlcnNpc3RlbmNlQ29uZmlnID0gW107XG4gIHZhciBjb21wdXRlZFN0YXRlID0ge1xuICAgIGlzSW5SZWR1Y2VyOiBmYWxzZSxcbiAgICBjdXJyZW50U3RhdGU6IGRlZmF1bHRTdGF0ZVxuICB9O1xuXG4gIHZhciByZWN1cnNpdmVFeHRyYWN0RnJvbU1vZGVsID0gZnVuY3Rpb24gcmVjdXJzaXZlRXh0cmFjdEZyb21Nb2RlbChjdXJyZW50LCBwYXJlbnRQYXRoKSB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGN1cnJlbnQpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgdmFyIHZhbHVlID0gY3VycmVudFtrZXldO1xuICAgICAgdmFyIHBhdGggPSBbXS5jb25jYXQocGFyZW50UGF0aCwgW2tleV0pO1xuICAgICAgdmFyIG1ldGEgPSB7XG4gICAgICAgIHBhcmVudDogcGFyZW50UGF0aCxcbiAgICAgICAgcGF0aDogcGF0aCxcbiAgICAgICAga2V5OiBrZXlcbiAgICAgIH07XG5cbiAgICAgIHZhciBoYW5kbGVWYWx1ZUFzU3RhdGUgPSBmdW5jdGlvbiBoYW5kbGVWYWx1ZUFzU3RhdGUoKSB7XG4gICAgICAgIHZhciBpbml0aWFsUGFyZW50UmVmID0gZ2V0KHBhcmVudFBhdGgsIGluaXRpYWxTdGF0ZSk7XG5cbiAgICAgICAgaWYgKGluaXRpYWxQYXJlbnRSZWYgJiYga2V5IGluIGluaXRpYWxQYXJlbnRSZWYpIHtcbiAgICAgICAgICBzZXQocGF0aCwgZGVmYXVsdFN0YXRlLCBpbml0aWFsUGFyZW50UmVmW2tleV0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNldChwYXRoLCBkZWZhdWx0U3RhdGUsIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgaWYgKGtleSA9PT0gcGVyc2lzdFN5bWJvbCkge1xuICAgICAgICBwZXJzaXN0ZW5jZUNvbmZpZy5wdXNoKGV4dHJhY3RQZXJzaXN0Q29uZmlnKHBhcmVudFBhdGgsIHZhbHVlKSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBpZiAodmFsdWVbYWN0aW9uU3ltYm9sXSB8fCB2YWx1ZVthY3Rpb25PblN5bWJvbF0pIHtcbiAgICAgICAgICB2YXIgYWN0aW9uUmVkdWNlciA9IHZhbHVlO1xuICAgICAgICAgIHZhciBhY3Rpb25DcmVhdG9yID0gY3JlYXRlQWN0aW9uQ3JlYXRvcih2YWx1ZSwgbWV0YSwgcmVmZXJlbmNlcyk7XG4gICAgICAgICAgYWN0aW9uQ3JlYXRvckRpY3RbYWN0aW9uQ3JlYXRvci50eXBlXSA9IGFjdGlvbkNyZWF0b3I7XG4gICAgICAgICAgYWN0aW9uUmVkdWNlcnNEaWN0W2FjdGlvbkNyZWF0b3IudHlwZV0gPSBhY3Rpb25SZWR1Y2VyO1xuXG4gICAgICAgICAgaWYgKG1ldGEua2V5ICE9PSAnZVBSUycpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZVthY3Rpb25PblN5bWJvbF0pIHtcbiAgICAgICAgICAgICAgbGlzdGVuZXJEZWZpbml0aW9ucy5wdXNoKHZhbHVlKTtcbiAgICAgICAgICAgICAgc2V0KHBhdGgsIGxpc3RlbmVyQWN0aW9uQ3JlYXRvcnMsIGFjdGlvbkNyZWF0b3IpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgc2V0KHBhdGgsIGFjdGlvbkNyZWF0b3JzLCBhY3Rpb25DcmVhdG9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodmFsdWVbdGh1bmtTeW1ib2xdIHx8IHZhbHVlW3RodW5rT25TeW1ib2xdKSB7XG4gICAgICAgICAgdmFyIHRodW5rSGFuZGxlciA9IGNyZWF0ZVRodW5rSGFuZGxlcih2YWx1ZSwgbWV0YSwgcmVmZXJlbmNlcywgaW5qZWN0aW9ucywgYWN0aW9uQ3JlYXRvcnMpO1xuXG4gICAgICAgICAgdmFyIF9hY3Rpb25DcmVhdG9yID0gY3JlYXRlVGh1bmtBY3Rpb25zQ3JlYXRvcih2YWx1ZSwgbWV0YSwgcmVmZXJlbmNlcywgdGh1bmtIYW5kbGVyKTtcblxuICAgICAgICAgIHNldChwYXRoLCBhY3Rpb25UaHVua3MsIHRodW5rSGFuZGxlcik7XG4gICAgICAgICAgYWN0aW9uQ3JlYXRvckRpY3RbX2FjdGlvbkNyZWF0b3IudHlwZV0gPSBfYWN0aW9uQ3JlYXRvcjtcblxuICAgICAgICAgIGlmICh2YWx1ZVt0aHVua09uU3ltYm9sXSkge1xuICAgICAgICAgICAgbGlzdGVuZXJEZWZpbml0aW9ucy5wdXNoKHZhbHVlKTtcbiAgICAgICAgICAgIHNldChwYXRoLCBsaXN0ZW5lckFjdGlvbkNyZWF0b3JzLCBfYWN0aW9uQ3JlYXRvcik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNldChwYXRoLCBhY3Rpb25DcmVhdG9ycywgX2FjdGlvbkNyZWF0b3IpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZVtjb21wdXRlZFN5bWJvbF0pIHtcbiAgICAgICAgICB2YXIgcGFyZW50ID0gZ2V0KHBhcmVudFBhdGgsIGRlZmF1bHRTdGF0ZSk7XG4gICAgICAgICAgdmFyIGJpbmRDb21wdXRlZFByb3BlcnR5ID0gY3JlYXRlQ29tcHV0ZWRQcm9wZXJ0eUJpbmRlcihwYXJlbnRQYXRoLCBrZXksIHZhbHVlLCBjb21wdXRlZFN0YXRlLCByZWZlcmVuY2VzKTtcbiAgICAgICAgICBiaW5kQ29tcHV0ZWRQcm9wZXJ0eShwYXJlbnQpO1xuICAgICAgICAgIGNvbXB1dGVkUHJvcGVydGllcy5wdXNoKHtcbiAgICAgICAgICAgIGtleToga2V5LFxuICAgICAgICAgICAgcGFyZW50UGF0aDogcGFyZW50UGF0aCxcbiAgICAgICAgICAgIGJpbmRDb21wdXRlZFByb3BlcnR5OiBiaW5kQ29tcHV0ZWRQcm9wZXJ0eVxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKHZhbHVlW3JlZHVjZXJTeW1ib2xdKSB7XG4gICAgICAgICAgY3VzdG9tUmVkdWNlcnMucHVzaCh7XG4gICAgICAgICAgICBrZXk6IGtleSxcbiAgICAgICAgICAgIHBhcmVudFBhdGg6IHBhcmVudFBhdGgsXG4gICAgICAgICAgICByZWR1Y2VyOiB2YWx1ZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGhhbmRsZVZhbHVlQXNTdGF0ZSgpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGlzUGxhaW5PYmplY3QodmFsdWUpKSB7XG4gICAgICAgIHZhciBleGlzdGluZyA9IGdldChwYXRoLCBkZWZhdWx0U3RhdGUpO1xuXG4gICAgICAgIGlmIChleGlzdGluZyA9PSBudWxsKSB7XG4gICAgICAgICAgc2V0KHBhdGgsIGRlZmF1bHRTdGF0ZSwge30pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmVjdXJzaXZlRXh0cmFjdEZyb21Nb2RlbCh2YWx1ZSwgcGF0aCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBoYW5kbGVWYWx1ZUFzU3RhdGUoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcblxuICByZWN1cnNpdmVFeHRyYWN0RnJvbU1vZGVsKG1vZGVsLCBbXSk7XG4gIGJpbmRMaXN0ZW5lckRlZmluaXRpb25zKGxpc3RlbmVyRGVmaW5pdGlvbnMsIGFjdGlvbkNyZWF0b3JzLCBhY3Rpb25DcmVhdG9yRGljdCwgbGlzdGVuZXJBY3Rpb25NYXApO1xuICByZXR1cm4ge1xuICAgIGFjdGlvbkNyZWF0b3JEaWN0OiBhY3Rpb25DcmVhdG9yRGljdCxcbiAgICBhY3Rpb25DcmVhdG9yczogYWN0aW9uQ3JlYXRvcnMsXG4gICAgYWN0aW9uUmVkdWNlcnNEaWN0OiBhY3Rpb25SZWR1Y2Vyc0RpY3QsXG4gICAgY29tcHV0ZWRQcm9wZXJ0aWVzOiBjb21wdXRlZFByb3BlcnRpZXMsXG4gICAgY3VzdG9tUmVkdWNlcnM6IGN1c3RvbVJlZHVjZXJzLFxuICAgIGNvbXB1dGVkU3RhdGU6IGNvbXB1dGVkU3RhdGUsXG4gICAgZGVmYXVsdFN0YXRlOiBkZWZhdWx0U3RhdGUsXG4gICAgbGlzdGVuZXJBY3Rpb25DcmVhdG9yczogbGlzdGVuZXJBY3Rpb25DcmVhdG9ycyxcbiAgICBsaXN0ZW5lckFjdGlvbk1hcDogbGlzdGVuZXJBY3Rpb25NYXAsXG4gICAgcGVyc2lzdGVuY2VDb25maWc6IHBlcnNpc3RlbmNlQ29uZmlnXG4gIH07XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVN0b3JlSW50ZXJuYWxzKF9yZWYpIHtcbiAgdmFyIGRpc2FibGVJbW1lciA9IF9yZWYuZGlzYWJsZUltbWVyLFxuICAgICAgaW5pdGlhbFN0YXRlID0gX3JlZi5pbml0aWFsU3RhdGUsXG4gICAgICBpbmplY3Rpb25zID0gX3JlZi5pbmplY3Rpb25zLFxuICAgICAgbW9kZWwgPSBfcmVmLm1vZGVsLFxuICAgICAgcmVkdWNlckVuaGFuY2VyID0gX3JlZi5yZWR1Y2VyRW5oYW5jZXIsXG4gICAgICByZWZlcmVuY2VzID0gX3JlZi5yZWZlcmVuY2VzO1xuXG4gIHZhciBfZXh0cmFjdERhdGFGcm9tTW9kZWwgPSBleHRyYWN0RGF0YUZyb21Nb2RlbChtb2RlbCwgaW5pdGlhbFN0YXRlLCBpbmplY3Rpb25zLCByZWZlcmVuY2VzKSxcbiAgICAgIGFjdGlvbkNyZWF0b3JEaWN0ID0gX2V4dHJhY3REYXRhRnJvbU1vZGVsLmFjdGlvbkNyZWF0b3JEaWN0LFxuICAgICAgYWN0aW9uQ3JlYXRvcnMgPSBfZXh0cmFjdERhdGFGcm9tTW9kZWwuYWN0aW9uQ3JlYXRvcnMsXG4gICAgICBhY3Rpb25SZWR1Y2Vyc0RpY3QgPSBfZXh0cmFjdERhdGFGcm9tTW9kZWwuYWN0aW9uUmVkdWNlcnNEaWN0LFxuICAgICAgY29tcHV0ZWRTdGF0ZSA9IF9leHRyYWN0RGF0YUZyb21Nb2RlbC5jb21wdXRlZFN0YXRlLFxuICAgICAgY29tcHV0ZWRQcm9wZXJ0aWVzID0gX2V4dHJhY3REYXRhRnJvbU1vZGVsLmNvbXB1dGVkUHJvcGVydGllcyxcbiAgICAgIGN1c3RvbVJlZHVjZXJzID0gX2V4dHJhY3REYXRhRnJvbU1vZGVsLmN1c3RvbVJlZHVjZXJzLFxuICAgICAgZGVmYXVsdFN0YXRlID0gX2V4dHJhY3REYXRhRnJvbU1vZGVsLmRlZmF1bHRTdGF0ZSxcbiAgICAgIGxpc3RlbmVyQWN0aW9uQ3JlYXRvcnMgPSBfZXh0cmFjdERhdGFGcm9tTW9kZWwubGlzdGVuZXJBY3Rpb25DcmVhdG9ycyxcbiAgICAgIGxpc3RlbmVyQWN0aW9uTWFwID0gX2V4dHJhY3REYXRhRnJvbU1vZGVsLmxpc3RlbmVyQWN0aW9uTWFwLFxuICAgICAgcGVyc2lzdGVuY2VDb25maWcgPSBfZXh0cmFjdERhdGFGcm9tTW9kZWwucGVyc2lzdGVuY2VDb25maWc7XG5cbiAgdmFyIHJvb3RSZWR1Y2VyID0gY3JlYXRlUmVkdWNlcihkaXNhYmxlSW1tZXIsIGFjdGlvblJlZHVjZXJzRGljdCwgY3VzdG9tUmVkdWNlcnMsIGNvbXB1dGVkUHJvcGVydGllcyk7XG4gIHJldHVybiB7XG4gICAgYWN0aW9uQ3JlYXRvckRpY3Q6IGFjdGlvbkNyZWF0b3JEaWN0LFxuICAgIGFjdGlvbkNyZWF0b3JzOiBhY3Rpb25DcmVhdG9ycyxcbiAgICBjb21wdXRlZFByb3BlcnRpZXM6IGNvbXB1dGVkUHJvcGVydGllcyxcbiAgICBjb21wdXRlZFN0YXRlOiBjb21wdXRlZFN0YXRlLFxuICAgIGRlZmF1bHRTdGF0ZTogZGVmYXVsdFN0YXRlLFxuICAgIGxpc3RlbmVyQWN0aW9uQ3JlYXRvcnM6IGxpc3RlbmVyQWN0aW9uQ3JlYXRvcnMsXG4gICAgbGlzdGVuZXJBY3Rpb25NYXA6IGxpc3RlbmVyQWN0aW9uTWFwLFxuICAgIHBlcnNpc3RlbmNlQ29uZmlnOiBwZXJzaXN0ZW5jZUNvbmZpZyxcbiAgICByZWR1Y2VyOiByZWR1Y2VyRW5oYW5jZXIocm9vdFJlZHVjZXIpXG4gIH07XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVN0b3JlKG1vZGVsLCBvcHRpb25zKSB7XG4gIGlmIChvcHRpb25zID09PSB2b2lkIDApIHtcbiAgICBvcHRpb25zID0ge307XG4gIH1cblxuICB2YXIgbW9kZWxDbG9uZSA9IGRlZXBDbG9uZVN0YXRlV2l0aG91dENvbXB1dGVkKG1vZGVsKTtcbiAgdmFyIF9vcHRpb25zID0gb3B0aW9ucyxcbiAgICAgIGNvbXBvc2UkMSA9IF9vcHRpb25zLmNvbXBvc2UsXG4gICAgICBfb3B0aW9ucyRkZXZUb29scyA9IF9vcHRpb25zLmRldlRvb2xzLFxuICAgICAgZGV2VG9vbHMgPSBfb3B0aW9ucyRkZXZUb29scyA9PT0gdm9pZCAwID8gdHJ1ZSA6IF9vcHRpb25zJGRldlRvb2xzLFxuICAgICAgX29wdGlvbnMkZGlzYWJsZUltbWVyID0gX29wdGlvbnMuZGlzYWJsZUltbWVyLFxuICAgICAgZGlzYWJsZUltbWVyID0gX29wdGlvbnMkZGlzYWJsZUltbWVyID09PSB2b2lkIDAgPyBmYWxzZSA6IF9vcHRpb25zJGRpc2FibGVJbW1lcixcbiAgICAgIF9vcHRpb25zJGVuaGFuY2VycyA9IF9vcHRpb25zLmVuaGFuY2VycyxcbiAgICAgIGVuaGFuY2VycyA9IF9vcHRpb25zJGVuaGFuY2VycyA9PT0gdm9pZCAwID8gW10gOiBfb3B0aW9ucyRlbmhhbmNlcnMsXG4gICAgICBfb3B0aW9ucyRpbml0aWFsU3RhdGUgPSBfb3B0aW9ucy5pbml0aWFsU3RhdGUsXG4gICAgICBpbml0aWFsU3RhdGUgPSBfb3B0aW9ucyRpbml0aWFsU3RhdGUgPT09IHZvaWQgMCA/IHt9IDogX29wdGlvbnMkaW5pdGlhbFN0YXRlLFxuICAgICAgaW5qZWN0aW9ucyA9IF9vcHRpb25zLmluamVjdGlvbnMsXG4gICAgICBfb3B0aW9ucyRtaWRkbGV3YXJlID0gX29wdGlvbnMubWlkZGxld2FyZSxcbiAgICAgIG1pZGRsZXdhcmUgPSBfb3B0aW9ucyRtaWRkbGV3YXJlID09PSB2b2lkIDAgPyBbXSA6IF9vcHRpb25zJG1pZGRsZXdhcmUsXG4gICAgICBfb3B0aW9ucyRtb2NrQWN0aW9ucyA9IF9vcHRpb25zLm1vY2tBY3Rpb25zLFxuICAgICAgbW9ja0FjdGlvbnMgPSBfb3B0aW9ucyRtb2NrQWN0aW9ucyA9PT0gdm9pZCAwID8gZmFsc2UgOiBfb3B0aW9ucyRtb2NrQWN0aW9ucyxcbiAgICAgIF9vcHRpb25zJG5hbWUgPSBfb3B0aW9ucy5uYW1lLFxuICAgICAgc3RvcmVOYW1lID0gX29wdGlvbnMkbmFtZSA9PT0gdm9pZCAwID8gXCJFYXN5UGVhc3lTdG9yZVwiIDogX29wdGlvbnMkbmFtZSxcbiAgICAgIF9vcHRpb25zJHJlZHVjZXJFbmhhbiA9IF9vcHRpb25zLnJlZHVjZXJFbmhhbmNlcixcbiAgICAgIHJlZHVjZXJFbmhhbmNlciA9IF9vcHRpb25zJHJlZHVjZXJFbmhhbiA9PT0gdm9pZCAwID8gZnVuY3Rpb24gKHJvb3RSZWR1Y2VyKSB7XG4gICAgcmV0dXJuIHJvb3RSZWR1Y2VyO1xuICB9IDogX29wdGlvbnMkcmVkdWNlckVuaGFuO1xuXG4gIHZhciBiaW5kUmVwbGFjZVN0YXRlID0gZnVuY3Rpb24gYmluZFJlcGxhY2VTdGF0ZShtb2RlbERlZikge1xuICAgIHJldHVybiBfZXh0ZW5kcyh7fSwgbW9kZWxEZWYsIHtcbiAgICAgIGVQUlM6IGFjdGlvbihmdW5jdGlvbiAoXywgcGF5bG9hZCkge1xuICAgICAgICByZXR1cm4gcGF5bG9hZDtcbiAgICAgIH0pXG4gICAgfSk7XG4gIH07XG5cbiAgdmFyIHJlZmVyZW5jZXMgPSB7fTtcbiAgdmFyIG1vZGVsRGVmaW5pdGlvbiA9IGJpbmRSZXBsYWNlU3RhdGUobW9kZWxDbG9uZSk7XG4gIHZhciBtb2NrZWRBY3Rpb25zID0gW107XG5cbiAgdmFyIHBlcnNpc3RLZXkgPSBmdW5jdGlvbiBwZXJzaXN0S2V5KHRhcmdldFBhdGgpIHtcbiAgICByZXR1cm4gXCJbXCIgKyBzdG9yZU5hbWUgKyBcIl1AXCIgKyB0YXJnZXRQYXRoLmpvaW4oJy4nKTtcbiAgfTtcblxuICB2YXIgcGVyc2lzdG9yID0gY3JlYXRlUGVyc2lzdG9yKHBlcnNpc3RLZXksIHJlZmVyZW5jZXMpO1xuICB2YXIgcGVyc2lzdE1pZGRsZXdhcmUgPSBjcmVhdGVQZXJzaXN0TWlkZGxld2FyZShwZXJzaXN0b3IsIHJlZmVyZW5jZXMpO1xuICB2YXIgY2xlYXJQZXJzaXN0YW5jZSA9IGNyZWF0ZVBlcnNpc3RlbmNlQ2xlYXJlcihwZXJzaXN0S2V5LCByZWZlcmVuY2VzKTtcblxuICB2YXIgcmVwbGFjZVN0YXRlID0gZnVuY3Rpb24gcmVwbGFjZVN0YXRlKG5leHRTdGF0ZSkge1xuICAgIHJldHVybiByZWZlcmVuY2VzLmludGVybmFscy5hY3Rpb25DcmVhdG9yRGljdFsnQGFjdGlvbi5lUFJTJ10obmV4dFN0YXRlKTtcbiAgfTtcblxuICB2YXIgYmluZFN0b3JlSW50ZXJuYWxzID0gZnVuY3Rpb24gYmluZFN0b3JlSW50ZXJuYWxzKHN0YXRlKSB7XG4gICAgaWYgKHN0YXRlID09PSB2b2lkIDApIHtcbiAgICAgIHN0YXRlID0ge307XG4gICAgfVxuXG4gICAgcmVmZXJlbmNlcy5pbnRlcm5hbHMgPSBjcmVhdGVTdG9yZUludGVybmFscyh7XG4gICAgICBkaXNhYmxlSW1tZXI6IGRpc2FibGVJbW1lcixcbiAgICAgIGluaXRpYWxTdGF0ZTogc3RhdGUsXG4gICAgICBpbmplY3Rpb25zOiBpbmplY3Rpb25zLFxuICAgICAgbW9kZWw6IG1vZGVsRGVmaW5pdGlvbixcbiAgICAgIHJlZHVjZXJFbmhhbmNlcjogcmVkdWNlckVuaGFuY2VyLFxuICAgICAgcmVmZXJlbmNlczogcmVmZXJlbmNlc1xuICAgIH0pO1xuICB9O1xuXG4gIHZhciBtb2NrQWN0aW9uc01pZGRsZXdhcmUgPSBmdW5jdGlvbiBtb2NrQWN0aW9uc01pZGRsZXdhcmUoKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbiAoYWN0aW9uKSB7XG4gICAgICAgIGlmIChhY3Rpb24gIT0gbnVsbCkge1xuICAgICAgICAgIG1vY2tlZEFjdGlvbnMucHVzaChhY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcblxuICB2YXIgY29tcG9zZUVuaGFuY2VycyA9IGNvbXBvc2UkMSB8fCAoZGV2VG9vbHMgJiYgdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93Ll9fUkVEVVhfREVWVE9PTFNfRVhURU5TSU9OX0NPTVBPU0VfXyA/IHdpbmRvdy5fX1JFRFVYX0RFVlRPT0xTX0VYVEVOU0lPTl9DT01QT1NFX18oe1xuICAgIG5hbWU6IHN0b3JlTmFtZVxuICB9KSA6IGNvbXBvc2UpO1xuICBiaW5kU3RvcmVJbnRlcm5hbHMoaW5pdGlhbFN0YXRlKTtcbiAgdmFyIGVhc3lQZWFzeU1pZGRsZXdhcmUgPSBbY3JlYXRlQ29tcHV0ZWRQcm9wZXJ0aWVzTWlkZGxld2FyZShyZWZlcmVuY2VzKSwgcmVkdXhUaHVua10uY29uY2F0KG1pZGRsZXdhcmUsIFtjcmVhdGVMaXN0ZW5lck1pZGRsZXdhcmUocmVmZXJlbmNlcyksIHBlcnNpc3RNaWRkbGV3YXJlXSk7XG5cbiAgaWYgKG1vY2tBY3Rpb25zKSB7XG4gICAgZWFzeVBlYXN5TWlkZGxld2FyZS5wdXNoKG1vY2tBY3Rpb25zTWlkZGxld2FyZSk7XG4gIH1cblxuICB2YXIgc3RvcmUgPSBjcmVhdGVTdG9yZSQxKHJlZmVyZW5jZXMuaW50ZXJuYWxzLnJlZHVjZXIsIHJlZmVyZW5jZXMuaW50ZXJuYWxzLmRlZmF1bHRTdGF0ZSwgY29tcG9zZUVuaGFuY2Vycy5hcHBseSh2b2lkIDAsIFthcHBseU1pZGRsZXdhcmUuYXBwbHkodm9pZCAwLCBlYXN5UGVhc3lNaWRkbGV3YXJlKV0uY29uY2F0KGVuaGFuY2VycykpKTtcbiAgc3RvcmUuc3Vic2NyaWJlKGZ1bmN0aW9uICgpIHtcbiAgICByZWZlcmVuY2VzLmludGVybmFscy5jb21wdXRlZFN0YXRlLmlzSW5SZWR1Y2VyID0gZmFsc2U7XG4gIH0pO1xuICByZWZlcmVuY2VzLmRpc3BhdGNoID0gc3RvcmUuZGlzcGF0Y2g7XG4gIHJlZmVyZW5jZXMuZ2V0U3RhdGUgPSBzdG9yZS5nZXRTdGF0ZTtcblxuICB2YXIgYmluZEFjdGlvbkNyZWF0b3JzID0gZnVuY3Rpb24gYmluZEFjdGlvbkNyZWF0b3JzKCkge1xuICAgIE9iamVjdC5rZXlzKHN0b3JlLmRpc3BhdGNoKS5mb3JFYWNoKGZ1bmN0aW9uIChhY3Rpb25zS2V5KSB7XG4gICAgICBkZWxldGUgc3RvcmUuZGlzcGF0Y2hbYWN0aW9uc0tleV07XG4gICAgfSk7XG4gICAgT2JqZWN0LmtleXMocmVmZXJlbmNlcy5pbnRlcm5hbHMuYWN0aW9uQ3JlYXRvcnMpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgc3RvcmUuZGlzcGF0Y2hba2V5XSA9IHJlZmVyZW5jZXMuaW50ZXJuYWxzLmFjdGlvbkNyZWF0b3JzW2tleV07XG4gICAgfSk7XG4gIH07XG5cbiAgYmluZEFjdGlvbkNyZWF0b3JzKCk7XG5cbiAgdmFyIHJlYmluZFN0b3JlID0gZnVuY3Rpb24gcmViaW5kU3RvcmUocmVtb3ZlS2V5KSB7XG4gICAgdmFyIGN1cnJlbnRTdGF0ZSA9IHN0b3JlLmdldFN0YXRlKCk7XG5cbiAgICBpZiAocmVtb3ZlS2V5KSB7XG4gICAgICBkZWxldGUgY3VycmVudFN0YXRlW3JlbW92ZUtleV07XG4gICAgfVxuXG4gICAgYmluZFN0b3JlSW50ZXJuYWxzKGN1cnJlbnRTdGF0ZSk7XG4gICAgc3RvcmUucmVwbGFjZVJlZHVjZXIocmVmZXJlbmNlcy5pbnRlcm5hbHMucmVkdWNlcik7XG4gICAgcmVwbGFjZVN0YXRlKHJlZmVyZW5jZXMuaW50ZXJuYWxzLmRlZmF1bHRTdGF0ZSk7XG4gICAgYmluZEFjdGlvbkNyZWF0b3JzKCk7XG4gIH07XG5cbiAgdmFyIF9yZXNvbHZlUmVoeWRyYXRpb24gPSByZWh5ZHJhdGVTdGF0ZUZyb21QZXJzaXN0SWZOZWVkZWQocGVyc2lzdEtleSwgcmVwbGFjZVN0YXRlLCByZWZlcmVuY2VzKTtcblxuICByZXR1cm4gT2JqZWN0LmFzc2lnbihzdG9yZSwge1xuICAgIGFkZE1vZGVsOiBmdW5jdGlvbiBhZGRNb2RlbChrZXksIG1vZGVsRm9yS2V5KSB7XG4gICAgICBpZiAobW9kZWxEZWZpbml0aW9uW2tleV0gJiYgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICBjb25zb2xlLndhcm4oXCJlYXN5LXBlYXN5OiBUaGUgc3RvcmUgbW9kZWwgYWxyZWFkeSBjb250YWlucyBhIG1vZGVsIGRlZmluaXRpb24gZm9yIFxcXCJcIiArIGtleSArIFwiXFxcIlwiKTtcbiAgICAgICAgc3RvcmUucmVtb3ZlTW9kZWwoa2V5KTtcbiAgICAgIH1cblxuICAgICAgbW9kZWxEZWZpbml0aW9uW2tleV0gPSBtb2RlbEZvcktleTtcbiAgICAgIHJlYmluZFN0b3JlKCk7XG4gICAgfSxcbiAgICBjbGVhck1vY2tlZEFjdGlvbnM6IGZ1bmN0aW9uIGNsZWFyTW9ja2VkQWN0aW9ucygpIHtcbiAgICAgIG1vY2tlZEFjdGlvbnMgPSBbXTtcbiAgICB9LFxuICAgIGdldEFjdGlvbnM6IGZ1bmN0aW9uIGdldEFjdGlvbnMoKSB7XG4gICAgICByZXR1cm4gcmVmZXJlbmNlcy5pbnRlcm5hbHMuYWN0aW9uQ3JlYXRvcnM7XG4gICAgfSxcbiAgICBnZXRMaXN0ZW5lcnM6IGZ1bmN0aW9uIGdldExpc3RlbmVycygpIHtcbiAgICAgIHJldHVybiByZWZlcmVuY2VzLmludGVybmFscy5saXN0ZW5lckFjdGlvbkNyZWF0b3JzO1xuICAgIH0sXG4gICAgZ2V0TW9ja2VkQWN0aW9uczogZnVuY3Rpb24gZ2V0TW9ja2VkQWN0aW9ucygpIHtcbiAgICAgIHJldHVybiBbXS5jb25jYXQobW9ja2VkQWN0aW9ucyk7XG4gICAgfSxcbiAgICBwZXJzaXN0OiB7XG4gICAgICBjbGVhcjogY2xlYXJQZXJzaXN0YW5jZSxcbiAgICAgIGZsdXNoOiBmdW5jdGlvbiBmbHVzaCgpIHtcbiAgICAgICAgcmV0dXJuIHBlcnNpc3Rvci5mbHVzaCgpO1xuICAgICAgfSxcbiAgICAgIHJlc29sdmVSZWh5ZHJhdGlvbjogZnVuY3Rpb24gcmVzb2x2ZVJlaHlkcmF0aW9uKCkge1xuICAgICAgICByZXR1cm4gX3Jlc29sdmVSZWh5ZHJhdGlvbjtcbiAgICAgIH1cbiAgICB9LFxuICAgIHJlY29uZmlndXJlOiBmdW5jdGlvbiByZWNvbmZpZ3VyZShuZXdNb2RlbCkge1xuICAgICAgbW9kZWxEZWZpbml0aW9uID0gYmluZFJlcGxhY2VTdGF0ZShuZXdNb2RlbCk7XG4gICAgICByZWJpbmRTdG9yZSgpO1xuICAgIH0sXG4gICAgcmVtb3ZlTW9kZWw6IGZ1bmN0aW9uIHJlbW92ZU1vZGVsKGtleSkge1xuICAgICAgaWYgKCFtb2RlbERlZmluaXRpb25ba2V5XSkge1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgICAgY29uc29sZS53YXJuKFwiZWFzeS1wZWFzeTogVGhlIHN0b3JlIG1vZGVsIGRvZXMgbm90IGNvbnRhaW4gYSBtb2RlbCBkZWZpbml0aW9uIGZvciBcXFwiXCIgKyBrZXkgKyBcIlxcXCJcIik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGRlbGV0ZSBtb2RlbERlZmluaXRpb25ba2V5XTtcbiAgICAgIHJlYmluZFN0b3JlKGtleSk7XG4gICAgfVxuICB9KTtcbn1cblxuLyogZXNsaW50LWRpc2FibGUgcmVhY3QvcHJvcC10eXBlcyAqL1xuZnVuY3Rpb24gY3JlYXRlQ29udGV4dFN0b3JlKG1vZGVsLCBjb25maWcpIHtcbiAgdmFyIFN0b3JlQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQoKTtcblxuICBmdW5jdGlvbiBQcm92aWRlcihfcmVmKSB7XG4gICAgdmFyIGNoaWxkcmVuID0gX3JlZi5jaGlsZHJlbixcbiAgICAgICAgaW5pdGlhbERhdGEgPSBfcmVmLmluaXRpYWxEYXRhO1xuICAgIHZhciBzdG9yZSA9IHVzZU1lbW8oZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIGNyZWF0ZVN0b3JlKHR5cGVvZiBtb2RlbCA9PT0gJ2Z1bmN0aW9uJyA/IG1vZGVsKGluaXRpYWxEYXRhKSA6IG1vZGVsLCBjb25maWcpO1xuICAgIH0sIFtdKTtcbiAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChTdG9yZUNvbnRleHQuUHJvdmlkZXIsIHtcbiAgICAgIHZhbHVlOiBzdG9yZVxuICAgIH0sIGNoaWxkcmVuKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHVzZVN0b3JlKCkge1xuICAgIHJldHVybiB1c2VDb250ZXh0KFN0b3JlQ29udGV4dCk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIFByb3ZpZGVyOiBQcm92aWRlcixcbiAgICB1c2VTdG9yZTogdXNlU3RvcmUsXG4gICAgdXNlU3RvcmVTdGF0ZTogY3JlYXRlU3RvcmVTdGF0ZUhvb2soU3RvcmVDb250ZXh0KSxcbiAgICB1c2VTdG9yZUFjdGlvbnM6IGNyZWF0ZVN0b3JlQWN0aW9uc0hvb2soU3RvcmVDb250ZXh0KSxcbiAgICB1c2VTdG9yZURpc3BhdGNoOiBjcmVhdGVTdG9yZURpc3BhdGNoSG9vayhTdG9yZUNvbnRleHQpLFxuICAgIHVzZVN0b3JlUmVoeWRyYXRlZDogY3JlYXRlU3RvcmVSZWh5ZHJhdGVkSG9vayhTdG9yZUNvbnRleHQpXG4gIH07XG59XG5cbi8qKlxuICogU29tZSBnb29kIHJlZmVyZW5jZXMgb24gdGhlIHRvcGljIG9mIHJlaW5pdGlhbGlzYXRpb246XG4gKiAtIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMTQ4MzBcbiAqL1xuXG5mdW5jdGlvbiBjcmVhdGVDb21wb25lbnRTdG9yZShtb2RlbCwgY29uZmlnKSB7XG4gIHJldHVybiBmdW5jdGlvbiB1c2VMb2NhbFN0b3JlKGluaXRpYWxEYXRhKSB7XG4gICAgdmFyIHN0b3JlID0gdXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gY3JlYXRlU3RvcmUodHlwZW9mIG1vZGVsID09PSAnZnVuY3Rpb24nID8gbW9kZWwoaW5pdGlhbERhdGEpIDogbW9kZWwsIGNvbmZpZyk7XG4gICAgfSwgW10pO1xuICAgIHZhciBwcmV2aW91c1N0YXRlUmVmID0gdXNlUmVmKHN0b3JlLmdldFN0YXRlKCkpO1xuXG4gICAgdmFyIF91c2VTdGF0ZSA9IHVzZVN0YXRlKGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBzdG9yZS5nZXRTdGF0ZSgpO1xuICAgIH0pLFxuICAgICAgICBjdXJyZW50U3RhdGUgPSBfdXNlU3RhdGVbMF0sXG4gICAgICAgIHNldEN1cnJlbnRTdGF0ZSA9IF91c2VTdGF0ZVsxXTtcblxuICAgIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gc3RvcmUuc3Vic2NyaWJlKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIG5leHRTdGF0ZSA9IHN0b3JlLmdldFN0YXRlKCk7XG5cbiAgICAgICAgaWYgKHByZXZpb3VzU3RhdGVSZWYuY3VycmVudCAhPT0gbmV4dFN0YXRlKSB7XG4gICAgICAgICAgcHJldmlvdXNTdGF0ZVJlZi5jdXJyZW50ID0gbmV4dFN0YXRlO1xuICAgICAgICAgIHNldEN1cnJlbnRTdGF0ZShuZXh0U3RhdGUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9LCBbc3RvcmVdKTtcbiAgICByZXR1cm4gW2N1cnJlbnRTdGF0ZSwgc3RvcmUuZ2V0QWN0aW9ucygpXTtcbiAgfTtcbn1cblxuLyoqXG4gKiBUaGlzIGZpbGUgaGFzIGJlZW4gY29waWVkIGZyb20gcmVkdXgtcGVyc2lzdC5cbiAqIFRoZSBpbnRlbnRpb24gYmVpbmcgdG8gc3VwcG9ydCBhcyBtdWNoIG9mIHRoZSByZWR1eC1wZXJzaXN0IEFQSSBhcyBwb3NzaWJsZS5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlVHJhbnNmb3JtKGluYm91bmQsIG91dGJvdW5kLCBjb25maWcpIHtcbiAgaWYgKGNvbmZpZyA9PT0gdm9pZCAwKSB7XG4gICAgY29uZmlnID0ge307XG4gIH1cblxuICB2YXIgd2hpdGVsaXN0ID0gY29uZmlnLndoaXRlbGlzdCB8fCBudWxsO1xuICB2YXIgYmxhY2tsaXN0ID0gY29uZmlnLmJsYWNrbGlzdCB8fCBudWxsO1xuXG4gIGZ1bmN0aW9uIHdoaXRlbGlzdEJsYWNrbGlzdENoZWNrKGtleSkge1xuICAgIGlmICh3aGl0ZWxpc3QgJiYgd2hpdGVsaXN0LmluZGV4T2Yoa2V5KSA9PT0gLTEpIHJldHVybiB0cnVlO1xuICAgIGlmIChibGFja2xpc3QgJiYgYmxhY2tsaXN0LmluZGV4T2Yoa2V5KSAhPT0gLTEpIHJldHVybiB0cnVlO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgaW46IGZ1bmN0aW9uIF9pbihkYXRhLCBrZXksIGZ1bGxTdGF0ZSkge1xuICAgICAgcmV0dXJuICF3aGl0ZWxpc3RCbGFja2xpc3RDaGVjayhrZXkpICYmIGluYm91bmQgPyBpbmJvdW5kKGRhdGEsIGtleSwgZnVsbFN0YXRlKSA6IGRhdGE7XG4gICAgfSxcbiAgICBvdXQ6IGZ1bmN0aW9uIG91dChkYXRhLCBrZXksIGZ1bGxTdGF0ZSkge1xuICAgICAgcmV0dXJuICF3aGl0ZWxpc3RCbGFja2xpc3RDaGVjayhrZXkpICYmIG91dGJvdW5kID8gb3V0Ym91bmQoZGF0YSwga2V5LCBmdWxsU3RhdGUpIDogZGF0YTtcbiAgICB9XG4gIH07XG59XG5cbmZ1bmN0aW9uIFN0b3JlUHJvdmlkZXIoX3JlZikge1xuICB2YXIgY2hpbGRyZW4gPSBfcmVmLmNoaWxkcmVuLFxuICAgICAgc3RvcmUgPSBfcmVmLnN0b3JlO1xuICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChTdG9yZUNvbnRleHQuUHJvdmlkZXIsIHtcbiAgICB2YWx1ZTogc3RvcmVcbiAgfSwgY2hpbGRyZW4pO1xufVxuXG4vKipcbiAqIFRoZSBhdXRvIGZyZWV6ZSBmZWF0dXJlIG9mIGltbWVyIGRvZXNuJ3Qgc2VlbSB0byB3b3JrIGluIG91ciB0ZXN0aW5nLiBXZSBoYXZlXG4gKiBleHBsaWNpdGx5IGRpc2FibGVkIGl0IHRvIGF2b2lkIHBlcmYgaXNzdWVzLlxuICovXG5cbnNldEF1dG9GcmVlemUoZmFsc2UpO1xuXG5leHBvcnQgeyBTdG9yZVByb3ZpZGVyLCBhY3Rpb24sIGFjdGlvbk9uLCBjb21wdXRlZCwgY3JlYXRlQ29tcG9uZW50U3RvcmUsIGNyZWF0ZUNvbnRleHRTdG9yZSwgY3JlYXRlU3RvcmUsIGNyZWF0ZVRyYW5zZm9ybSwgY3JlYXRlVHlwZWRIb29rcywgZGVidWcsIG1lbW8sIHBlcnNpc3QsIHJlZHVjZXIsIHRodW5rLCB0aHVua09uLCB1c2VTdG9yZSwgdXNlU3RvcmVBY3Rpb25zLCB1c2VTdG9yZURpc3BhdGNoLCB1c2VTdG9yZVJlaHlkcmF0ZWQsIHVzZVN0b3JlU3RhdGUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWVhc3ktcGVhc3kuZXNtLmpzLm1hcFxuIiwiaW1wb3J0IF9jdXJyeTEgZnJvbSBcIi4vaW50ZXJuYWwvX2N1cnJ5MS5qc1wiO1xuaW1wb3J0IF9pc1N0cmluZyBmcm9tIFwiLi9pbnRlcm5hbC9faXNTdHJpbmcuanNcIjtcbi8qKlxuICogUmV0dXJucyBhIG5ldyBsaXN0IG9yIHN0cmluZyB3aXRoIHRoZSBlbGVtZW50cyBvciBjaGFyYWN0ZXJzIGluIHJldmVyc2VcbiAqIG9yZGVyLlxuICpcbiAqIEBmdW5jXG4gKiBAbWVtYmVyT2YgUlxuICogQHNpbmNlIHYwLjEuMFxuICogQGNhdGVnb3J5IExpc3RcbiAqIEBzaWcgW2FdIC0+IFthXVxuICogQHNpZyBTdHJpbmcgLT4gU3RyaW5nXG4gKiBAcGFyYW0ge0FycmF5fFN0cmluZ30gbGlzdFxuICogQHJldHVybiB7QXJyYXl8U3RyaW5nfVxuICogQGV4YW1wbGVcbiAqXG4gKiAgICAgIFIucmV2ZXJzZShbMSwgMiwgM10pOyAgLy89PiBbMywgMiwgMV1cbiAqICAgICAgUi5yZXZlcnNlKFsxLCAyXSk7ICAgICAvLz0+IFsyLCAxXVxuICogICAgICBSLnJldmVyc2UoWzFdKTsgICAgICAgIC8vPT4gWzFdXG4gKiAgICAgIFIucmV2ZXJzZShbXSk7ICAgICAgICAgLy89PiBbXVxuICpcbiAqICAgICAgUi5yZXZlcnNlKCdhYmMnKTsgICAgICAvLz0+ICdjYmEnXG4gKiAgICAgIFIucmV2ZXJzZSgnYWInKTsgICAgICAgLy89PiAnYmEnXG4gKiAgICAgIFIucmV2ZXJzZSgnYScpOyAgICAgICAgLy89PiAnYSdcbiAqICAgICAgUi5yZXZlcnNlKCcnKTsgICAgICAgICAvLz0+ICcnXG4gKi9cblxudmFyIHJldmVyc2UgPVxuLyojX19QVVJFX18qL1xuX2N1cnJ5MShmdW5jdGlvbiByZXZlcnNlKGxpc3QpIHtcbiAgcmV0dXJuIF9pc1N0cmluZyhsaXN0KSA/IGxpc3Quc3BsaXQoJycpLnJldmVyc2UoKS5qb2luKCcnKSA6IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGxpc3QsIDApLnJldmVyc2UoKTtcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCByZXZlcnNlOyIsImltcG9ydCBfY3VycnkzIGZyb20gXCIuL2ludGVybmFsL19jdXJyeTMuanNcIjtcbmltcG9ydCBwYXRoT3IgZnJvbSBcIi4vcGF0aE9yLmpzXCI7XG4vKipcbiAqIElmIHRoZSBnaXZlbiwgbm9uLW51bGwgb2JqZWN0IGhhcyBhbiBvd24gcHJvcGVydHkgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUsXG4gKiByZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGF0IHByb3BlcnR5LiBPdGhlcndpc2UgcmV0dXJucyB0aGUgcHJvdmlkZWQgZGVmYXVsdFxuICogdmFsdWUuXG4gKlxuICogQGZ1bmNcbiAqIEBtZW1iZXJPZiBSXG4gKiBAc2luY2UgdjAuNi4wXG4gKiBAY2F0ZWdvcnkgT2JqZWN0XG4gKiBAc2lnIGEgLT4gU3RyaW5nIC0+IE9iamVjdCAtPiBhXG4gKiBAcGFyYW0geyp9IHZhbCBUaGUgZGVmYXVsdCB2YWx1ZS5cbiAqIEBwYXJhbSB7U3RyaW5nfSBwIFRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSB0byByZXR1cm4uXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqIFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcmV0dXJuIHsqfSBUaGUgdmFsdWUgb2YgZ2l2ZW4gcHJvcGVydHkgb2YgdGhlIHN1cHBsaWVkIG9iamVjdCBvciB0aGUgZGVmYXVsdCB2YWx1ZS5cbiAqIEBleGFtcGxlXG4gKlxuICogICAgICBjb25zdCBhbGljZSA9IHtcbiAqICAgICAgICBuYW1lOiAnQUxJQ0UnLFxuICogICAgICAgIGFnZTogMTAxXG4gKiAgICAgIH07XG4gKiAgICAgIGNvbnN0IGZhdm9yaXRlID0gUi5wcm9wKCdmYXZvcml0ZUxpYnJhcnknKTtcbiAqICAgICAgY29uc3QgZmF2b3JpdGVXaXRoRGVmYXVsdCA9IFIucHJvcE9yKCdSYW1kYScsICdmYXZvcml0ZUxpYnJhcnknKTtcbiAqXG4gKiAgICAgIGZhdm9yaXRlKGFsaWNlKTsgIC8vPT4gdW5kZWZpbmVkXG4gKiAgICAgIGZhdm9yaXRlV2l0aERlZmF1bHQoYWxpY2UpOyAgLy89PiAnUmFtZGEnXG4gKi9cblxudmFyIHByb3BPciA9XG4vKiNfX1BVUkVfXyovXG5fY3VycnkzKGZ1bmN0aW9uIHByb3BPcih2YWwsIHAsIG9iaikge1xuICByZXR1cm4gcGF0aE9yKHZhbCwgW3BdLCBvYmopO1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IHByb3BPcjsiLCJpbXBvcnQgX2N1cnJ5MSBmcm9tIFwiLi9pbnRlcm5hbC9fY3VycnkxLmpzXCI7XG5pbXBvcnQgY3VycnlOIGZyb20gXCIuL2N1cnJ5Ti5qc1wiO1xuaW1wb3J0IG1heCBmcm9tIFwiLi9tYXguanNcIjtcbmltcG9ydCBwbHVjayBmcm9tIFwiLi9wbHVjay5qc1wiO1xuaW1wb3J0IHJlZHVjZSBmcm9tIFwiLi9yZWR1Y2UuanNcIjtcbi8qKlxuICogVGFrZXMgYSBsaXN0IG9mIHByZWRpY2F0ZXMgYW5kIHJldHVybnMgYSBwcmVkaWNhdGUgdGhhdCByZXR1cm5zIHRydWUgZm9yIGFcbiAqIGdpdmVuIGxpc3Qgb2YgYXJndW1lbnRzIGlmIGF0IGxlYXN0IG9uZSBvZiB0aGUgcHJvdmlkZWQgcHJlZGljYXRlcyBpc1xuICogc2F0aXNmaWVkIGJ5IHRob3NlIGFyZ3VtZW50cy5cbiAqXG4gKiBUaGUgZnVuY3Rpb24gcmV0dXJuZWQgaXMgYSBjdXJyaWVkIGZ1bmN0aW9uIHdob3NlIGFyaXR5IG1hdGNoZXMgdGhhdCBvZiB0aGVcbiAqIGhpZ2hlc3QtYXJpdHkgcHJlZGljYXRlLlxuICpcbiAqIEBmdW5jXG4gKiBAbWVtYmVyT2YgUlxuICogQHNpbmNlIHYwLjkuMFxuICogQGNhdGVnb3J5IExvZ2ljXG4gKiBAc2lnIFsoKi4uLiAtPiBCb29sZWFuKV0gLT4gKCouLi4gLT4gQm9vbGVhbilcbiAqIEBwYXJhbSB7QXJyYXl9IHByZWRpY2F0ZXMgQW4gYXJyYXkgb2YgcHJlZGljYXRlcyB0byBjaGVja1xuICogQHJldHVybiB7RnVuY3Rpb259IFRoZSBjb21iaW5lZCBwcmVkaWNhdGVcbiAqIEBzZWUgUi5hbGxQYXNzXG4gKiBAZXhhbXBsZVxuICpcbiAqICAgICAgY29uc3QgaXNDbHViID0gUi5wcm9wRXEoJ3N1aXQnLCAn4pmjJyk7XG4gKiAgICAgIGNvbnN0IGlzU3BhZGUgPSBSLnByb3BFcSgnc3VpdCcsICfimaAnKTtcbiAqICAgICAgY29uc3QgaXNCbGFja0NhcmQgPSBSLmFueVBhc3MoW2lzQ2x1YiwgaXNTcGFkZV0pO1xuICpcbiAqICAgICAgaXNCbGFja0NhcmQoe3Jhbms6ICcxMCcsIHN1aXQ6ICfimaMnfSk7IC8vPT4gdHJ1ZVxuICogICAgICBpc0JsYWNrQ2FyZCh7cmFuazogJ1EnLCBzdWl0OiAn4pmgJ30pOyAvLz0+IHRydWVcbiAqICAgICAgaXNCbGFja0NhcmQoe3Jhbms6ICdRJywgc3VpdDogJ+KZpid9KTsgLy89PiBmYWxzZVxuICovXG5cbnZhciBhbnlQYXNzID1cbi8qI19fUFVSRV9fKi9cbl9jdXJyeTEoZnVuY3Rpb24gYW55UGFzcyhwcmVkcykge1xuICByZXR1cm4gY3VycnlOKHJlZHVjZShtYXgsIDAsIHBsdWNrKCdsZW5ndGgnLCBwcmVkcykpLCBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGlkeCA9IDA7XG4gICAgdmFyIGxlbiA9IHByZWRzLmxlbmd0aDtcblxuICAgIHdoaWxlIChpZHggPCBsZW4pIHtcbiAgICAgIGlmIChwcmVkc1tpZHhdLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlkeCArPSAxO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfSk7XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgYW55UGFzczsiLCJpbXBvcnQgX2N1cnJ5MiBmcm9tIFwiLi9fY3VycnkyLmpzXCI7XG5pbXBvcnQgX3hmQmFzZSBmcm9tIFwiLi9feGZCYXNlLmpzXCI7XG5cbnZhciBYVGFwID1cbi8qI19fUFVSRV9fKi9cbmZ1bmN0aW9uICgpIHtcbiAgZnVuY3Rpb24gWFRhcChmLCB4Zikge1xuICAgIHRoaXMueGYgPSB4ZjtcbiAgICB0aGlzLmYgPSBmO1xuICB9XG5cbiAgWFRhcC5wcm90b3R5cGVbJ0BAdHJhbnNkdWNlci9pbml0J10gPSBfeGZCYXNlLmluaXQ7XG4gIFhUYXAucHJvdG90eXBlWydAQHRyYW5zZHVjZXIvcmVzdWx0J10gPSBfeGZCYXNlLnJlc3VsdDtcblxuICBYVGFwLnByb3RvdHlwZVsnQEB0cmFuc2R1Y2VyL3N0ZXAnXSA9IGZ1bmN0aW9uIChyZXN1bHQsIGlucHV0KSB7XG4gICAgdGhpcy5mKGlucHV0KTtcbiAgICByZXR1cm4gdGhpcy54ZlsnQEB0cmFuc2R1Y2VyL3N0ZXAnXShyZXN1bHQsIGlucHV0KTtcbiAgfTtcblxuICByZXR1cm4gWFRhcDtcbn0oKTtcblxudmFyIF94dGFwID1cbi8qI19fUFVSRV9fKi9cbl9jdXJyeTIoZnVuY3Rpb24gX3h0YXAoZiwgeGYpIHtcbiAgcmV0dXJuIG5ldyBYVGFwKGYsIHhmKTtcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBfeHRhcDsiLCJpbXBvcnQgX2N1cnJ5MiBmcm9tIFwiLi9pbnRlcm5hbC9fY3VycnkyLmpzXCI7XG5pbXBvcnQgX2Rpc3BhdGNoYWJsZSBmcm9tIFwiLi9pbnRlcm5hbC9fZGlzcGF0Y2hhYmxlLmpzXCI7XG5pbXBvcnQgX3h0YXAgZnJvbSBcIi4vaW50ZXJuYWwvX3h0YXAuanNcIjtcbi8qKlxuICogUnVucyB0aGUgZ2l2ZW4gZnVuY3Rpb24gd2l0aCB0aGUgc3VwcGxpZWQgb2JqZWN0LCB0aGVuIHJldHVybnMgdGhlIG9iamVjdC5cbiAqXG4gKiBBY3RzIGFzIGEgdHJhbnNkdWNlciBpZiBhIHRyYW5zZm9ybWVyIGlzIGdpdmVuIGFzIHNlY29uZCBwYXJhbWV0ZXIuXG4gKlxuICogQGZ1bmNcbiAqIEBtZW1iZXJPZiBSXG4gKiBAc2luY2UgdjAuMS4wXG4gKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAqIEBzaWcgKGEgLT4gKikgLT4gYSAtPiBhXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmbiBUaGUgZnVuY3Rpb24gdG8gY2FsbCB3aXRoIGB4YC4gVGhlIHJldHVybiB2YWx1ZSBvZiBgZm5gIHdpbGwgYmUgdGhyb3duIGF3YXkuXG4gKiBAcGFyYW0geyp9IHhcbiAqIEByZXR1cm4geyp9IGB4YC5cbiAqIEBleGFtcGxlXG4gKlxuICogICAgICBjb25zdCBzYXlYID0geCA9PiBjb25zb2xlLmxvZygneCBpcyAnICsgeCk7XG4gKiAgICAgIFIudGFwKHNheVgsIDEwMCk7IC8vPT4gMTAwXG4gKiAgICAgIC8vIGxvZ3MgJ3ggaXMgMTAwJ1xuICogQHN5bWIgUi50YXAoZiwgYSkgPSBhXG4gKi9cblxudmFyIHRhcCA9XG4vKiNfX1BVUkVfXyovXG5fY3VycnkyKFxuLyojX19QVVJFX18qL1xuX2Rpc3BhdGNoYWJsZShbXSwgX3h0YXAsIGZ1bmN0aW9uIHRhcChmbiwgeCkge1xuICBmbih4KTtcbiAgcmV0dXJuIHg7XG59KSk7XG5cbmV4cG9ydCBkZWZhdWx0IHRhcDsiLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfaXNGdW5jdGlvbih4KSB7XG4gIHZhciB0eXBlID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHgpO1xuICByZXR1cm4gdHlwZSA9PT0gJ1tvYmplY3QgRnVuY3Rpb25dJyB8fCB0eXBlID09PSAnW29iamVjdCBBc3luY0Z1bmN0aW9uXScgfHwgdHlwZSA9PT0gJ1tvYmplY3QgR2VuZXJhdG9yRnVuY3Rpb25dJyB8fCB0eXBlID09PSAnW29iamVjdCBBc3luY0dlbmVyYXRvckZ1bmN0aW9uXSc7XG59IiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX3F1b3RlKHMpIHtcbiAgdmFyIGVzY2FwZWQgPSBzLnJlcGxhY2UoL1xcXFwvZywgJ1xcXFxcXFxcJykucmVwbGFjZSgvW1xcYl0vZywgJ1xcXFxiJykgLy8gXFxiIG1hdGNoZXMgd29yZCBib3VuZGFyeTsgW1xcYl0gbWF0Y2hlcyBiYWNrc3BhY2VcbiAgLnJlcGxhY2UoL1xcZi9nLCAnXFxcXGYnKS5yZXBsYWNlKC9cXG4vZywgJ1xcXFxuJykucmVwbGFjZSgvXFxyL2csICdcXFxccicpLnJlcGxhY2UoL1xcdC9nLCAnXFxcXHQnKS5yZXBsYWNlKC9cXHYvZywgJ1xcXFx2JykucmVwbGFjZSgvXFwwL2csICdcXFxcMCcpO1xuICByZXR1cm4gJ1wiJyArIGVzY2FwZWQucmVwbGFjZSgvXCIvZywgJ1xcXFxcIicpICsgJ1wiJztcbn0iLCIvKipcbiAqIFBvbHlmaWxsIGZyb20gPGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0RhdGUvdG9JU09TdHJpbmc+LlxuICovXG52YXIgcGFkID0gZnVuY3Rpb24gcGFkKG4pIHtcbiAgcmV0dXJuIChuIDwgMTAgPyAnMCcgOiAnJykgKyBuO1xufTtcblxudmFyIF90b0lTT1N0cmluZyA9IHR5cGVvZiBEYXRlLnByb3RvdHlwZS50b0lTT1N0cmluZyA9PT0gJ2Z1bmN0aW9uJyA/IGZ1bmN0aW9uIF90b0lTT1N0cmluZyhkKSB7XG4gIHJldHVybiBkLnRvSVNPU3RyaW5nKCk7XG59IDogZnVuY3Rpb24gX3RvSVNPU3RyaW5nKGQpIHtcbiAgcmV0dXJuIGQuZ2V0VVRDRnVsbFllYXIoKSArICctJyArIHBhZChkLmdldFVUQ01vbnRoKCkgKyAxKSArICctJyArIHBhZChkLmdldFVUQ0RhdGUoKSkgKyAnVCcgKyBwYWQoZC5nZXRVVENIb3VycygpKSArICc6JyArIHBhZChkLmdldFVUQ01pbnV0ZXMoKSkgKyAnOicgKyBwYWQoZC5nZXRVVENTZWNvbmRzKCkpICsgJy4nICsgKGQuZ2V0VVRDTWlsbGlzZWNvbmRzKCkgLyAxMDAwKS50b0ZpeGVkKDMpLnNsaWNlKDIsIDUpICsgJ1onO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgX3RvSVNPU3RyaW5nOyIsImltcG9ydCBfY3VycnkxIGZyb20gXCIuL2ludGVybmFsL19jdXJyeTEuanNcIjtcbmltcG9ydCBfdG9TdHJpbmcgZnJvbSBcIi4vaW50ZXJuYWwvX3RvU3RyaW5nLmpzXCI7XG4vKipcbiAqIFJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgZ2l2ZW4gdmFsdWUuIGBldmFsYCdpbmcgdGhlIG91dHB1dFxuICogc2hvdWxkIHJlc3VsdCBpbiBhIHZhbHVlIGVxdWl2YWxlbnQgdG8gdGhlIGlucHV0IHZhbHVlLiBNYW55IG9mIHRoZSBidWlsdC1pblxuICogYHRvU3RyaW5nYCBtZXRob2RzIGRvIG5vdCBzYXRpc2Z5IHRoaXMgcmVxdWlyZW1lbnQuXG4gKlxuICogSWYgdGhlIGdpdmVuIHZhbHVlIGlzIGFuIGBbb2JqZWN0IE9iamVjdF1gIHdpdGggYSBgdG9TdHJpbmdgIG1ldGhvZCBvdGhlclxuICogdGhhbiBgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZ2AsIHRoaXMgbWV0aG9kIGlzIGludm9rZWQgd2l0aCBubyBhcmd1bWVudHNcbiAqIHRvIHByb2R1Y2UgdGhlIHJldHVybiB2YWx1ZS4gVGhpcyBtZWFucyB1c2VyLWRlZmluZWQgY29uc3RydWN0b3IgZnVuY3Rpb25zXG4gKiBjYW4gcHJvdmlkZSBhIHN1aXRhYmxlIGB0b1N0cmluZ2AgbWV0aG9kLiBGb3IgZXhhbXBsZTpcbiAqXG4gKiAgICAgZnVuY3Rpb24gUG9pbnQoeCwgeSkge1xuICogICAgICAgdGhpcy54ID0geDtcbiAqICAgICAgIHRoaXMueSA9IHk7XG4gKiAgICAgfVxuICpcbiAqICAgICBQb2ludC5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbigpIHtcbiAqICAgICAgIHJldHVybiAnbmV3IFBvaW50KCcgKyB0aGlzLnggKyAnLCAnICsgdGhpcy55ICsgJyknO1xuICogICAgIH07XG4gKlxuICogICAgIFIudG9TdHJpbmcobmV3IFBvaW50KDEsIDIpKTsgLy89PiAnbmV3IFBvaW50KDEsIDIpJ1xuICpcbiAqIEBmdW5jXG4gKiBAbWVtYmVyT2YgUlxuICogQHNpbmNlIHYwLjE0LjBcbiAqIEBjYXRlZ29yeSBTdHJpbmdcbiAqIEBzaWcgKiAtPiBTdHJpbmdcbiAqIEBwYXJhbSB7Kn0gdmFsXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKiBAZXhhbXBsZVxuICpcbiAqICAgICAgUi50b1N0cmluZyg0Mik7IC8vPT4gJzQyJ1xuICogICAgICBSLnRvU3RyaW5nKCdhYmMnKTsgLy89PiAnXCJhYmNcIidcbiAqICAgICAgUi50b1N0cmluZyhbMSwgMiwgM10pOyAvLz0+ICdbMSwgMiwgM10nXG4gKiAgICAgIFIudG9TdHJpbmcoe2ZvbzogMSwgYmFyOiAyLCBiYXo6IDN9KTsgLy89PiAne1wiYmFyXCI6IDIsIFwiYmF6XCI6IDMsIFwiZm9vXCI6IDF9J1xuICogICAgICBSLnRvU3RyaW5nKG5ldyBEYXRlKCcyMDAxLTAyLTAzVDA0OjA1OjA2WicpKTsgLy89PiAnbmV3IERhdGUoXCIyMDAxLTAyLTAzVDA0OjA1OjA2LjAwMFpcIiknXG4gKi9cblxudmFyIHRvU3RyaW5nID1cbi8qI19fUFVSRV9fKi9cbl9jdXJyeTEoZnVuY3Rpb24gdG9TdHJpbmcodmFsKSB7XG4gIHJldHVybiBfdG9TdHJpbmcodmFsLCBbXSk7XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgdG9TdHJpbmc7IiwiaW1wb3J0IF9pbmNsdWRlcyBmcm9tIFwiLi9faW5jbHVkZXMuanNcIjtcbmltcG9ydCBfbWFwIGZyb20gXCIuL19tYXAuanNcIjtcbmltcG9ydCBfcXVvdGUgZnJvbSBcIi4vX3F1b3RlLmpzXCI7XG5pbXBvcnQgX3RvSVNPU3RyaW5nIGZyb20gXCIuL190b0lTT1N0cmluZy5qc1wiO1xuaW1wb3J0IGtleXMgZnJvbSBcIi4uL2tleXMuanNcIjtcbmltcG9ydCByZWplY3QgZnJvbSBcIi4uL3JlamVjdC5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX3RvU3RyaW5nKHgsIHNlZW4pIHtcbiAgdmFyIHJlY3VyID0gZnVuY3Rpb24gcmVjdXIoeSkge1xuICAgIHZhciB4cyA9IHNlZW4uY29uY2F0KFt4XSk7XG4gICAgcmV0dXJuIF9pbmNsdWRlcyh5LCB4cykgPyAnPENpcmN1bGFyPicgOiBfdG9TdHJpbmcoeSwgeHMpO1xuICB9OyAvLyAgbWFwUGFpcnMgOjogKE9iamVjdCwgW1N0cmluZ10pIC0+IFtTdHJpbmddXG5cblxuICB2YXIgbWFwUGFpcnMgPSBmdW5jdGlvbiAob2JqLCBrZXlzKSB7XG4gICAgcmV0dXJuIF9tYXAoZnVuY3Rpb24gKGspIHtcbiAgICAgIHJldHVybiBfcXVvdGUoaykgKyAnOiAnICsgcmVjdXIob2JqW2tdKTtcbiAgICB9LCBrZXlzLnNsaWNlKCkuc29ydCgpKTtcbiAgfTtcblxuICBzd2l0Y2ggKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh4KSkge1xuICAgIGNhc2UgJ1tvYmplY3QgQXJndW1lbnRzXSc6XG4gICAgICByZXR1cm4gJyhmdW5jdGlvbigpIHsgcmV0dXJuIGFyZ3VtZW50czsgfSgnICsgX21hcChyZWN1ciwgeCkuam9pbignLCAnKSArICcpKSc7XG5cbiAgICBjYXNlICdbb2JqZWN0IEFycmF5XSc6XG4gICAgICByZXR1cm4gJ1snICsgX21hcChyZWN1ciwgeCkuY29uY2F0KG1hcFBhaXJzKHgsIHJlamVjdChmdW5jdGlvbiAoaykge1xuICAgICAgICByZXR1cm4gL15cXGQrJC8udGVzdChrKTtcbiAgICAgIH0sIGtleXMoeCkpKSkuam9pbignLCAnKSArICddJztcblxuICAgIGNhc2UgJ1tvYmplY3QgQm9vbGVhbl0nOlxuICAgICAgcmV0dXJuIHR5cGVvZiB4ID09PSAnb2JqZWN0JyA/ICduZXcgQm9vbGVhbignICsgcmVjdXIoeC52YWx1ZU9mKCkpICsgJyknIDogeC50b1N0cmluZygpO1xuXG4gICAgY2FzZSAnW29iamVjdCBEYXRlXSc6XG4gICAgICByZXR1cm4gJ25ldyBEYXRlKCcgKyAoaXNOYU4oeC52YWx1ZU9mKCkpID8gcmVjdXIoTmFOKSA6IF9xdW90ZShfdG9JU09TdHJpbmcoeCkpKSArICcpJztcblxuICAgIGNhc2UgJ1tvYmplY3QgTnVsbF0nOlxuICAgICAgcmV0dXJuICdudWxsJztcblxuICAgIGNhc2UgJ1tvYmplY3QgTnVtYmVyXSc6XG4gICAgICByZXR1cm4gdHlwZW9mIHggPT09ICdvYmplY3QnID8gJ25ldyBOdW1iZXIoJyArIHJlY3VyKHgudmFsdWVPZigpKSArICcpJyA6IDEgLyB4ID09PSAtSW5maW5pdHkgPyAnLTAnIDogeC50b1N0cmluZygxMCk7XG5cbiAgICBjYXNlICdbb2JqZWN0IFN0cmluZ10nOlxuICAgICAgcmV0dXJuIHR5cGVvZiB4ID09PSAnb2JqZWN0JyA/ICduZXcgU3RyaW5nKCcgKyByZWN1cih4LnZhbHVlT2YoKSkgKyAnKScgOiBfcXVvdGUoeCk7XG5cbiAgICBjYXNlICdbb2JqZWN0IFVuZGVmaW5lZF0nOlxuICAgICAgcmV0dXJuICd1bmRlZmluZWQnO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIGlmICh0eXBlb2YgeC50b1N0cmluZyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB2YXIgcmVwciA9IHgudG9TdHJpbmcoKTtcblxuICAgICAgICBpZiAocmVwciAhPT0gJ1tvYmplY3QgT2JqZWN0XScpIHtcbiAgICAgICAgICByZXR1cm4gcmVwcjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gJ3snICsgbWFwUGFpcnMoeCwga2V5cyh4KSkuam9pbignLCAnKSArICd9JztcbiAgfVxufSIsImltcG9ydCBfY3VycnkyIGZyb20gXCIuL2ludGVybmFsL19jdXJyeTIuanNcIjtcbmltcG9ydCBfaXNGdW5jdGlvbiBmcm9tIFwiLi9pbnRlcm5hbC9faXNGdW5jdGlvbi5qc1wiO1xuaW1wb3J0IGN1cnJ5TiBmcm9tIFwiLi9jdXJyeU4uanNcIjtcbmltcG9ydCB0b1N0cmluZyBmcm9tIFwiLi90b1N0cmluZy5qc1wiO1xuLyoqXG4gKiBUdXJucyBhIG5hbWVkIG1ldGhvZCB3aXRoIGEgc3BlY2lmaWVkIGFyaXR5IGludG8gYSBmdW5jdGlvbiB0aGF0IGNhbiBiZVxuICogY2FsbGVkIGRpcmVjdGx5IHN1cHBsaWVkIHdpdGggYXJndW1lbnRzIGFuZCBhIHRhcmdldCBvYmplY3QuXG4gKlxuICogVGhlIHJldHVybmVkIGZ1bmN0aW9uIGlzIGN1cnJpZWQgYW5kIGFjY2VwdHMgYGFyaXR5ICsgMWAgcGFyYW1ldGVycyB3aGVyZVxuICogdGhlIGZpbmFsIHBhcmFtZXRlciBpcyB0aGUgdGFyZ2V0IG9iamVjdC5cbiAqXG4gKiBAZnVuY1xuICogQG1lbWJlck9mIFJcbiAqIEBzaW5jZSB2MC4xLjBcbiAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICogQHNpZyBOdW1iZXIgLT4gU3RyaW5nIC0+IChhIC0+IGIgLT4gLi4uIC0+IG4gLT4gT2JqZWN0IC0+ICopXG4gKiBAcGFyYW0ge051bWJlcn0gYXJpdHkgTnVtYmVyIG9mIGFyZ3VtZW50cyB0aGUgcmV0dXJuZWQgZnVuY3Rpb24gc2hvdWxkIHRha2VcbiAqICAgICAgICBiZWZvcmUgdGhlIHRhcmdldCBvYmplY3QuXG4gKiBAcGFyYW0ge1N0cmluZ30gbWV0aG9kIE5hbWUgb2YgYW55IG9mIHRoZSB0YXJnZXQgb2JqZWN0J3MgbWV0aG9kcyB0byBjYWxsLlxuICogQHJldHVybiB7RnVuY3Rpb259IEEgbmV3IGN1cnJpZWQgZnVuY3Rpb24uXG4gKiBAc2VlIFIuY29uc3RydWN0XG4gKiBAZXhhbXBsZVxuICpcbiAqICAgICAgY29uc3Qgc2xpY2VGcm9tID0gUi5pbnZva2VyKDEsICdzbGljZScpO1xuICogICAgICBzbGljZUZyb20oNiwgJ2FiY2RlZmdoaWprbG0nKTsgLy89PiAnZ2hpamtsbSdcbiAqICAgICAgY29uc3Qgc2xpY2VGcm9tNiA9IFIuaW52b2tlcigyLCAnc2xpY2UnKSg2KTtcbiAqICAgICAgc2xpY2VGcm9tNig4LCAnYWJjZGVmZ2hpamtsbScpOyAvLz0+ICdnaCdcbiAqXG4gKiAgICAgIGNvbnN0IGRvZyA9IHtcbiAqICAgICAgICBzcGVhazogYXN5bmMgKCkgPT4gJ1dvb2YhJ1xuICogICAgICB9O1xuICogICAgICBjb25zdCBzcGVhayA9IFIuaW52b2tlcigwLCAnc3BlYWsnKTtcbiAqICAgICAgc3BlYWsoZG9nKS50aGVuKGNvbnNvbGUubG9nKSAvL34+ICdXb29mISdcbiAqXG4gKiBAc3ltYiBSLmludm9rZXIoMCwgJ21ldGhvZCcpKG8pID0gb1snbWV0aG9kJ10oKVxuICogQHN5bWIgUi5pbnZva2VyKDEsICdtZXRob2QnKShhLCBvKSA9IG9bJ21ldGhvZCddKGEpXG4gKiBAc3ltYiBSLmludm9rZXIoMiwgJ21ldGhvZCcpKGEsIGIsIG8pID0gb1snbWV0aG9kJ10oYSwgYilcbiAqL1xuXG52YXIgaW52b2tlciA9XG4vKiNfX1BVUkVfXyovXG5fY3VycnkyKGZ1bmN0aW9uIGludm9rZXIoYXJpdHksIG1ldGhvZCkge1xuICByZXR1cm4gY3VycnlOKGFyaXR5ICsgMSwgZnVuY3Rpb24gKCkge1xuICAgIHZhciB0YXJnZXQgPSBhcmd1bWVudHNbYXJpdHldO1xuXG4gICAgaWYgKHRhcmdldCAhPSBudWxsICYmIF9pc0Z1bmN0aW9uKHRhcmdldFttZXRob2RdKSkge1xuICAgICAgcmV0dXJuIHRhcmdldFttZXRob2RdLmFwcGx5KHRhcmdldCwgQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAwLCBhcml0eSkpO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBUeXBlRXJyb3IodG9TdHJpbmcodGFyZ2V0KSArICcgZG9lcyBub3QgaGF2ZSBhIG1ldGhvZCBuYW1lZCBcIicgKyBtZXRob2QgKyAnXCInKTtcbiAgfSk7XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgaW52b2tlcjsiLCJpbXBvcnQgX2FyaXR5IGZyb20gXCIuL2ludGVybmFsL19hcml0eS5qc1wiO1xuaW1wb3J0IF9jdXJyeTEgZnJvbSBcIi4vaW50ZXJuYWwvX2N1cnJ5MS5qc1wiO1xuaW1wb3J0IG1hcCBmcm9tIFwiLi9tYXAuanNcIjtcbmltcG9ydCBtYXggZnJvbSBcIi4vbWF4LmpzXCI7XG5pbXBvcnQgcmVkdWNlIGZyb20gXCIuL3JlZHVjZS5qc1wiO1xuLyoqXG4gKiBSZXR1cm5zIGEgZnVuY3Rpb24sIGBmbmAsIHdoaWNoIGVuY2Fwc3VsYXRlcyBgaWYvZWxzZSwgaWYvZWxzZSwgLi4uYCBsb2dpYy5cbiAqIGBSLmNvbmRgIHRha2VzIGEgbGlzdCBvZiBbcHJlZGljYXRlLCB0cmFuc2Zvcm1lcl0gcGFpcnMuIEFsbCBvZiB0aGUgYXJndW1lbnRzXG4gKiB0byBgZm5gIGFyZSBhcHBsaWVkIHRvIGVhY2ggb2YgdGhlIHByZWRpY2F0ZXMgaW4gdHVybiB1bnRpbCBvbmUgcmV0dXJucyBhXG4gKiBcInRydXRoeVwiIHZhbHVlLCBhdCB3aGljaCBwb2ludCBgZm5gIHJldHVybnMgdGhlIHJlc3VsdCBvZiBhcHBseWluZyBpdHNcbiAqIGFyZ3VtZW50cyB0byB0aGUgY29ycmVzcG9uZGluZyB0cmFuc2Zvcm1lci4gSWYgbm9uZSBvZiB0aGUgcHJlZGljYXRlc1xuICogbWF0Y2hlcywgYGZuYCByZXR1cm5zIHVuZGVmaW5lZC5cbiAqXG4gKiBAZnVuY1xuICogQG1lbWJlck9mIFJcbiAqIEBzaW5jZSB2MC42LjBcbiAqIEBjYXRlZ29yeSBMb2dpY1xuICogQHNpZyBbWygqLi4uIC0+IEJvb2xlYW4pLCgqLi4uIC0+ICopXV0gLT4gKCouLi4gLT4gKilcbiAqIEBwYXJhbSB7QXJyYXl9IHBhaXJzIEEgbGlzdCBvZiBbcHJlZGljYXRlLCB0cmFuc2Zvcm1lcl1cbiAqIEByZXR1cm4ge0Z1bmN0aW9ufVxuICogQHNlZSBSLmlmRWxzZSwgUi51bmxlc3MsIFIud2hlblxuICogQGV4YW1wbGVcbiAqXG4gKiAgICAgIGNvbnN0IGZuID0gUi5jb25kKFtcbiAqICAgICAgICBbUi5lcXVhbHMoMCksICAgUi5hbHdheXMoJ3dhdGVyIGZyZWV6ZXMgYXQgMMKwQycpXSxcbiAqICAgICAgICBbUi5lcXVhbHMoMTAwKSwgUi5hbHdheXMoJ3dhdGVyIGJvaWxzIGF0IDEwMMKwQycpXSxcbiAqICAgICAgICBbUi5ULCAgICAgICAgICAgdGVtcCA9PiAnbm90aGluZyBzcGVjaWFsIGhhcHBlbnMgYXQgJyArIHRlbXAgKyAnwrBDJ11cbiAqICAgICAgXSk7XG4gKiAgICAgIGZuKDApOyAvLz0+ICd3YXRlciBmcmVlemVzIGF0IDDCsEMnXG4gKiAgICAgIGZuKDUwKTsgLy89PiAnbm90aGluZyBzcGVjaWFsIGhhcHBlbnMgYXQgNTDCsEMnXG4gKiAgICAgIGZuKDEwMCk7IC8vPT4gJ3dhdGVyIGJvaWxzIGF0IDEwMMKwQydcbiAqL1xuXG52YXIgY29uZCA9XG4vKiNfX1BVUkVfXyovXG5fY3VycnkxKGZ1bmN0aW9uIGNvbmQocGFpcnMpIHtcbiAgdmFyIGFyaXR5ID0gcmVkdWNlKG1heCwgMCwgbWFwKGZ1bmN0aW9uIChwYWlyKSB7XG4gICAgcmV0dXJuIHBhaXJbMF0ubGVuZ3RoO1xuICB9LCBwYWlycykpO1xuICByZXR1cm4gX2FyaXR5KGFyaXR5LCBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGlkeCA9IDA7XG5cbiAgICB3aGlsZSAoaWR4IDwgcGFpcnMubGVuZ3RoKSB7XG4gICAgICBpZiAocGFpcnNbaWR4XVswXS5hcHBseSh0aGlzLCBhcmd1bWVudHMpKSB7XG4gICAgICAgIHJldHVybiBwYWlyc1tpZHhdWzFdLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICB9XG5cbiAgICAgIGlkeCArPSAxO1xuICAgIH1cbiAgfSk7XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgY29uZDsiLCJpbXBvcnQgX2N1cnJ5MSBmcm9tIFwiLi9pbnRlcm5hbC9fY3VycnkxLmpzXCI7XG5pbXBvcnQgX2lzTnVtYmVyIGZyb20gXCIuL2ludGVybmFsL19pc051bWJlci5qc1wiO1xuLyoqXG4gKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhlIGFycmF5IGJ5IHJldHVybmluZyBgbGlzdC5sZW5ndGhgLlxuICpcbiAqIEBmdW5jXG4gKiBAbWVtYmVyT2YgUlxuICogQHNpbmNlIHYwLjMuMFxuICogQGNhdGVnb3J5IExpc3RcbiAqIEBzaWcgW2FdIC0+IE51bWJlclxuICogQHBhcmFtIHtBcnJheX0gbGlzdCBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAqIEByZXR1cm4ge051bWJlcn0gVGhlIGxlbmd0aCBvZiB0aGUgYXJyYXkuXG4gKiBAZXhhbXBsZVxuICpcbiAqICAgICAgUi5sZW5ndGgoW10pOyAvLz0+IDBcbiAqICAgICAgUi5sZW5ndGgoWzEsIDIsIDNdKTsgLy89PiAzXG4gKi9cblxudmFyIGxlbmd0aCA9XG4vKiNfX1BVUkVfXyovXG5fY3VycnkxKGZ1bmN0aW9uIGxlbmd0aChsaXN0KSB7XG4gIHJldHVybiBsaXN0ICE9IG51bGwgJiYgX2lzTnVtYmVyKGxpc3QubGVuZ3RoKSA/IGxpc3QubGVuZ3RoIDogTmFOO1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IGxlbmd0aDsiLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfaXNOdW1iZXIoeCkge1xuICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHgpID09PSAnW29iamVjdCBOdW1iZXJdJztcbn0iLCJpbXBvcnQgX2N1cnJ5MiBmcm9tIFwiLi9pbnRlcm5hbC9fY3VycnkyLmpzXCI7XG5pbXBvcnQgbGVuZ3RoIGZyb20gXCIuL2xlbmd0aC5qc1wiO1xuaW1wb3J0IHNsaWNlIGZyb20gXCIuL3NsaWNlLmpzXCI7XG4vKipcbiAqIFNwbGl0cyBhIGdpdmVuIGxpc3Qgb3Igc3RyaW5nIGF0IGEgZ2l2ZW4gaW5kZXguXG4gKlxuICogQGZ1bmNcbiAqIEBtZW1iZXJPZiBSXG4gKiBAc2luY2UgdjAuMTkuMFxuICogQGNhdGVnb3J5IExpc3RcbiAqIEBzaWcgTnVtYmVyIC0+IFthXSAtPiBbW2FdLCBbYV1dXG4gKiBAc2lnIE51bWJlciAtPiBTdHJpbmcgLT4gW1N0cmluZywgU3RyaW5nXVxuICogQHBhcmFtIHtOdW1iZXJ9IGluZGV4IFRoZSBpbmRleCB3aGVyZSB0aGUgYXJyYXkvc3RyaW5nIGlzIHNwbGl0LlxuICogQHBhcmFtIHtBcnJheXxTdHJpbmd9IGFycmF5IFRoZSBhcnJheS9zdHJpbmcgdG8gYmUgc3BsaXQuXG4gKiBAcmV0dXJuIHtBcnJheX1cbiAqIEBleGFtcGxlXG4gKlxuICogICAgICBSLnNwbGl0QXQoMSwgWzEsIDIsIDNdKTsgICAgICAgICAgLy89PiBbWzFdLCBbMiwgM11dXG4gKiAgICAgIFIuc3BsaXRBdCg1LCAnaGVsbG8gd29ybGQnKTsgICAgICAvLz0+IFsnaGVsbG8nLCAnIHdvcmxkJ11cbiAqICAgICAgUi5zcGxpdEF0KC0xLCAnZm9vYmFyJyk7ICAgICAgICAgIC8vPT4gWydmb29iYScsICdyJ11cbiAqL1xuXG52YXIgc3BsaXRBdCA9XG4vKiNfX1BVUkVfXyovXG5fY3VycnkyKGZ1bmN0aW9uIHNwbGl0QXQoaW5kZXgsIGFycmF5KSB7XG4gIHJldHVybiBbc2xpY2UoMCwgaW5kZXgsIGFycmF5KSwgc2xpY2UoaW5kZXgsIGxlbmd0aChhcnJheSksIGFycmF5KV07XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgc3BsaXRBdDsiLCJpbXBvcnQgX2lzQXJyYXlMaWtlIGZyb20gXCIuL19pc0FycmF5TGlrZS5qc1wiO1xuLyoqXG4gKiBgX21ha2VGbGF0YCBpcyBhIGhlbHBlciBmdW5jdGlvbiB0aGF0IHJldHVybnMgYSBvbmUtbGV2ZWwgb3IgZnVsbHkgcmVjdXJzaXZlXG4gKiBmdW5jdGlvbiBiYXNlZCBvbiB0aGUgZmxhZyBwYXNzZWQgaW4uXG4gKlxuICogQHByaXZhdGVcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfbWFrZUZsYXQocmVjdXJzaXZlKSB7XG4gIHJldHVybiBmdW5jdGlvbiBmbGF0dChsaXN0KSB7XG4gICAgdmFyIHZhbHVlLCBqbGVuLCBqO1xuICAgIHZhciByZXN1bHQgPSBbXTtcbiAgICB2YXIgaWR4ID0gMDtcbiAgICB2YXIgaWxlbiA9IGxpc3QubGVuZ3RoO1xuXG4gICAgd2hpbGUgKGlkeCA8IGlsZW4pIHtcbiAgICAgIGlmIChfaXNBcnJheUxpa2UobGlzdFtpZHhdKSkge1xuICAgICAgICB2YWx1ZSA9IHJlY3Vyc2l2ZSA/IGZsYXR0KGxpc3RbaWR4XSkgOiBsaXN0W2lkeF07XG4gICAgICAgIGogPSAwO1xuICAgICAgICBqbGVuID0gdmFsdWUubGVuZ3RoO1xuXG4gICAgICAgIHdoaWxlIChqIDwgamxlbikge1xuICAgICAgICAgIHJlc3VsdFtyZXN1bHQubGVuZ3RoXSA9IHZhbHVlW2pdO1xuICAgICAgICAgIGogKz0gMTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0W3Jlc3VsdC5sZW5ndGhdID0gbGlzdFtpZHhdO1xuICAgICAgfVxuXG4gICAgICBpZHggKz0gMTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9O1xufSIsImltcG9ydCBfY3VycnkxIGZyb20gXCIuL2ludGVybmFsL19jdXJyeTEuanNcIjtcbmltcG9ydCBfbWFrZUZsYXQgZnJvbSBcIi4vaW50ZXJuYWwvX21ha2VGbGF0LmpzXCI7XG4vKipcbiAqIFJldHVybnMgYSBuZXcgbGlzdCBieSBwdWxsaW5nIGV2ZXJ5IGl0ZW0gb3V0IG9mIGl0IChhbmQgYWxsIGl0cyBzdWItYXJyYXlzKVxuICogYW5kIHB1dHRpbmcgdGhlbSBpbiBhIG5ldyBhcnJheSwgZGVwdGgtZmlyc3QuXG4gKlxuICogQGZ1bmNcbiAqIEBtZW1iZXJPZiBSXG4gKiBAc2luY2UgdjAuMS4wXG4gKiBAY2F0ZWdvcnkgTGlzdFxuICogQHNpZyBbYV0gLT4gW2JdXG4gKiBAcGFyYW0ge0FycmF5fSBsaXN0IFRoZSBhcnJheSB0byBjb25zaWRlci5cbiAqIEByZXR1cm4ge0FycmF5fSBUaGUgZmxhdHRlbmVkIGxpc3QuXG4gKiBAc2VlIFIudW5uZXN0XG4gKiBAZXhhbXBsZVxuICpcbiAqICAgICAgUi5mbGF0dGVuKFsxLCAyLCBbMywgNF0sIDUsIFs2LCBbNywgOCwgWzksIFsxMCwgMTFdLCAxMl1dXV0pO1xuICogICAgICAvLz0+IFsxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyXVxuICovXG5cbnZhciBmbGF0dGVuID1cbi8qI19fUFVSRV9fKi9cbl9jdXJyeTEoXG4vKiNfX1BVUkVfXyovXG5fbWFrZUZsYXQodHJ1ZSkpO1xuXG5leHBvcnQgZGVmYXVsdCBmbGF0dGVuOyIsImltcG9ydCBfY3VycnkyIGZyb20gXCIuL2ludGVybmFsL19jdXJyeTIuanNcIjtcbmltcG9ydCBfaW5kZXhPZiBmcm9tIFwiLi9pbnRlcm5hbC9faW5kZXhPZi5qc1wiO1xuaW1wb3J0IF9pc0FycmF5IGZyb20gXCIuL2ludGVybmFsL19pc0FycmF5LmpzXCI7XG4vKipcbiAqIFJldHVybnMgdGhlIHBvc2l0aW9uIG9mIHRoZSBmaXJzdCBvY2N1cnJlbmNlIG9mIGFuIGl0ZW0gaW4gYW4gYXJyYXksIG9yIC0xXG4gKiBpZiB0aGUgaXRlbSBpcyBub3QgaW5jbHVkZWQgaW4gdGhlIGFycmF5LiBbYFIuZXF1YWxzYF0oI2VxdWFscykgaXMgdXNlZCB0b1xuICogZGV0ZXJtaW5lIGVxdWFsaXR5LlxuICpcbiAqIEBmdW5jXG4gKiBAbWVtYmVyT2YgUlxuICogQHNpbmNlIHYwLjEuMFxuICogQGNhdGVnb3J5IExpc3RcbiAqIEBzaWcgYSAtPiBbYV0gLT4gTnVtYmVyXG4gKiBAcGFyYW0geyp9IHRhcmdldCBUaGUgaXRlbSB0byBmaW5kLlxuICogQHBhcmFtIHtBcnJheX0geHMgVGhlIGFycmF5IHRvIHNlYXJjaCBpbi5cbiAqIEByZXR1cm4ge051bWJlcn0gdGhlIGluZGV4IG9mIHRoZSB0YXJnZXQsIG9yIC0xIGlmIHRoZSB0YXJnZXQgaXMgbm90IGZvdW5kLlxuICogQHNlZSBSLmxhc3RJbmRleE9mXG4gKiBAZXhhbXBsZVxuICpcbiAqICAgICAgUi5pbmRleE9mKDMsIFsxLDIsMyw0XSk7IC8vPT4gMlxuICogICAgICBSLmluZGV4T2YoMTAsIFsxLDIsMyw0XSk7IC8vPT4gLTFcbiAqL1xuXG52YXIgaW5kZXhPZiA9XG4vKiNfX1BVUkVfXyovXG5fY3VycnkyKGZ1bmN0aW9uIGluZGV4T2YodGFyZ2V0LCB4cykge1xuICByZXR1cm4gdHlwZW9mIHhzLmluZGV4T2YgPT09ICdmdW5jdGlvbicgJiYgIV9pc0FycmF5KHhzKSA/IHhzLmluZGV4T2YodGFyZ2V0KSA6IF9pbmRleE9mKHhzLCB0YXJnZXQsIDApO1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IGluZGV4T2Y7IiwiaW1wb3J0IF9jdXJyeTIgZnJvbSBcIi4vX2N1cnJ5Mi5qc1wiO1xuaW1wb3J0IF94ZkJhc2UgZnJvbSBcIi4vX3hmQmFzZS5qc1wiO1xuXG52YXIgWERyb3AgPVxuLyojX19QVVJFX18qL1xuZnVuY3Rpb24gKCkge1xuICBmdW5jdGlvbiBYRHJvcChuLCB4Zikge1xuICAgIHRoaXMueGYgPSB4ZjtcbiAgICB0aGlzLm4gPSBuO1xuICB9XG5cbiAgWERyb3AucHJvdG90eXBlWydAQHRyYW5zZHVjZXIvaW5pdCddID0gX3hmQmFzZS5pbml0O1xuICBYRHJvcC5wcm90b3R5cGVbJ0BAdHJhbnNkdWNlci9yZXN1bHQnXSA9IF94ZkJhc2UucmVzdWx0O1xuXG4gIFhEcm9wLnByb3RvdHlwZVsnQEB0cmFuc2R1Y2VyL3N0ZXAnXSA9IGZ1bmN0aW9uIChyZXN1bHQsIGlucHV0KSB7XG4gICAgaWYgKHRoaXMubiA+IDApIHtcbiAgICAgIHRoaXMubiAtPSAxO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy54ZlsnQEB0cmFuc2R1Y2VyL3N0ZXAnXShyZXN1bHQsIGlucHV0KTtcbiAgfTtcblxuICByZXR1cm4gWERyb3A7XG59KCk7XG5cbnZhciBfeGRyb3AgPVxuLyojX19QVVJFX18qL1xuX2N1cnJ5MihmdW5jdGlvbiBfeGRyb3AobiwgeGYpIHtcbiAgcmV0dXJuIG5ldyBYRHJvcChuLCB4Zik7XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgX3hkcm9wOyIsImltcG9ydCBfY3VycnkyIGZyb20gXCIuL2ludGVybmFsL19jdXJyeTIuanNcIjtcbmltcG9ydCBfZGlzcGF0Y2hhYmxlIGZyb20gXCIuL2ludGVybmFsL19kaXNwYXRjaGFibGUuanNcIjtcbmltcG9ydCBfeGRyb3AgZnJvbSBcIi4vaW50ZXJuYWwvX3hkcm9wLmpzXCI7XG5pbXBvcnQgc2xpY2UgZnJvbSBcIi4vc2xpY2UuanNcIjtcbi8qKlxuICogUmV0dXJucyBhbGwgYnV0IHRoZSBmaXJzdCBgbmAgZWxlbWVudHMgb2YgdGhlIGdpdmVuIGxpc3QsIHN0cmluZywgb3JcbiAqIHRyYW5zZHVjZXIvdHJhbnNmb3JtZXIgKG9yIG9iamVjdCB3aXRoIGEgYGRyb3BgIG1ldGhvZCkuXG4gKlxuICogRGlzcGF0Y2hlcyB0byB0aGUgYGRyb3BgIG1ldGhvZCBvZiB0aGUgc2Vjb25kIGFyZ3VtZW50LCBpZiBwcmVzZW50LlxuICpcbiAqIEBmdW5jXG4gKiBAbWVtYmVyT2YgUlxuICogQHNpbmNlIHYwLjEuMFxuICogQGNhdGVnb3J5IExpc3RcbiAqIEBzaWcgTnVtYmVyIC0+IFthXSAtPiBbYV1cbiAqIEBzaWcgTnVtYmVyIC0+IFN0cmluZyAtPiBTdHJpbmdcbiAqIEBwYXJhbSB7TnVtYmVyfSBuXG4gKiBAcGFyYW0geyp9IGxpc3RcbiAqIEByZXR1cm4geyp9IEEgY29weSBvZiBsaXN0IHdpdGhvdXQgdGhlIGZpcnN0IGBuYCBlbGVtZW50c1xuICogQHNlZSBSLnRha2UsIFIudHJhbnNkdWNlLCBSLmRyb3BMYXN0LCBSLmRyb3BXaGlsZVxuICogQGV4YW1wbGVcbiAqXG4gKiAgICAgIFIuZHJvcCgxLCBbJ2ZvbycsICdiYXInLCAnYmF6J10pOyAvLz0+IFsnYmFyJywgJ2JheiddXG4gKiAgICAgIFIuZHJvcCgyLCBbJ2ZvbycsICdiYXInLCAnYmF6J10pOyAvLz0+IFsnYmF6J11cbiAqICAgICAgUi5kcm9wKDMsIFsnZm9vJywgJ2JhcicsICdiYXonXSk7IC8vPT4gW11cbiAqICAgICAgUi5kcm9wKDQsIFsnZm9vJywgJ2JhcicsICdiYXonXSk7IC8vPT4gW11cbiAqICAgICAgUi5kcm9wKDMsICdyYW1kYScpOyAgICAgICAgICAgICAgIC8vPT4gJ2RhJ1xuICovXG5cbnZhciBkcm9wID1cbi8qI19fUFVSRV9fKi9cbl9jdXJyeTIoXG4vKiNfX1BVUkVfXyovXG5fZGlzcGF0Y2hhYmxlKFsnZHJvcCddLCBfeGRyb3AsIGZ1bmN0aW9uIGRyb3AobiwgeHMpIHtcbiAgcmV0dXJuIHNsaWNlKE1hdGgubWF4KDAsIG4pLCBJbmZpbml0eSwgeHMpO1xufSkpO1xuXG5leHBvcnQgZGVmYXVsdCBkcm9wOyIsImltcG9ydCBfY3VycnkxIGZyb20gXCIuL2ludGVybmFsL19jdXJyeTEuanNcIjtcbi8qKlxuICogQ2hlY2tzIGlmIHRoZSBpbnB1dCB2YWx1ZSBpcyBgbnVsbGAgb3IgYHVuZGVmaW5lZGAuXG4gKlxuICogQGZ1bmNcbiAqIEBtZW1iZXJPZiBSXG4gKiBAc2luY2UgdjAuOS4wXG4gKiBAY2F0ZWdvcnkgVHlwZVxuICogQHNpZyAqIC0+IEJvb2xlYW5cbiAqIEBwYXJhbSB7Kn0geCBUaGUgdmFsdWUgdG8gdGVzdC5cbiAqIEByZXR1cm4ge0Jvb2xlYW59IGB0cnVlYCBpZiBgeGAgaXMgYHVuZGVmaW5lZGAgb3IgYG51bGxgLCBvdGhlcndpc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogICAgICBSLmlzTmlsKG51bGwpOyAvLz0+IHRydWVcbiAqICAgICAgUi5pc05pbCh1bmRlZmluZWQpOyAvLz0+IHRydWVcbiAqICAgICAgUi5pc05pbCgwKTsgLy89PiBmYWxzZVxuICogICAgICBSLmlzTmlsKFtdKTsgLy89PiBmYWxzZVxuICovXG5cbnZhciBpc05pbCA9XG4vKiNfX1BVUkVfXyovXG5fY3VycnkxKGZ1bmN0aW9uIGlzTmlsKHgpIHtcbiAgcmV0dXJuIHggPT0gbnVsbDtcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBpc05pbDsiLCJpbXBvcnQgX2N1cnJ5MSBmcm9tIFwiLi9pbnRlcm5hbC9fY3VycnkxLmpzXCI7XG4vKipcbiAqIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIHRoZSBgIWAgb2YgaXRzIGFyZ3VtZW50LiBJdCB3aWxsIHJldHVybiBgdHJ1ZWAgd2hlblxuICogcGFzc2VkIGZhbHNlLXkgdmFsdWUsIGFuZCBgZmFsc2VgIHdoZW4gcGFzc2VkIGEgdHJ1dGgteSBvbmUuXG4gKlxuICogQGZ1bmNcbiAqIEBtZW1iZXJPZiBSXG4gKiBAc2luY2UgdjAuMS4wXG4gKiBAY2F0ZWdvcnkgTG9naWNcbiAqIEBzaWcgKiAtPiBCb29sZWFuXG4gKiBAcGFyYW0geyp9IGEgYW55IHZhbHVlXG4gKiBAcmV0dXJuIHtCb29sZWFufSB0aGUgbG9naWNhbCBpbnZlcnNlIG9mIHBhc3NlZCBhcmd1bWVudC5cbiAqIEBzZWUgUi5jb21wbGVtZW50XG4gKiBAZXhhbXBsZVxuICpcbiAqICAgICAgUi5ub3QodHJ1ZSk7IC8vPT4gZmFsc2VcbiAqICAgICAgUi5ub3QoZmFsc2UpOyAvLz0+IHRydWVcbiAqICAgICAgUi5ub3QoMCk7IC8vPT4gdHJ1ZVxuICogICAgICBSLm5vdCgxKTsgLy89PiBmYWxzZVxuICovXG5cbnZhciBub3QgPVxuLyojX19QVVJFX18qL1xuX2N1cnJ5MShmdW5jdGlvbiBub3QoYSkge1xuICByZXR1cm4gIWE7XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgbm90OyIsImltcG9ydCBfaW5jbHVkZXMgZnJvbSBcIi4vaW50ZXJuYWwvX2luY2x1ZGVzLmpzXCI7XG5pbXBvcnQgX2N1cnJ5MiBmcm9tIFwiLi9pbnRlcm5hbC9fY3VycnkyLmpzXCI7XG4vKipcbiAqIFJldHVybnMgYHRydWVgIGlmIHRoZSBzcGVjaWZpZWQgdmFsdWUgaXMgZXF1YWwsIGluIFtgUi5lcXVhbHNgXSgjZXF1YWxzKVxuICogdGVybXMsIHRvIGF0IGxlYXN0IG9uZSBlbGVtZW50IG9mIHRoZSBnaXZlbiBsaXN0OyBgZmFsc2VgIG90aGVyd2lzZS5cbiAqIFdvcmtzIGFsc28gd2l0aCBzdHJpbmdzLlxuICpcbiAqIEBmdW5jXG4gKiBAbWVtYmVyT2YgUlxuICogQHNpbmNlIHYwLjI2LjBcbiAqIEBjYXRlZ29yeSBMaXN0XG4gKiBAc2lnIGEgLT4gW2FdIC0+IEJvb2xlYW5cbiAqIEBwYXJhbSB7T2JqZWN0fSBhIFRoZSBpdGVtIHRvIGNvbXBhcmUgYWdhaW5zdC5cbiAqIEBwYXJhbSB7QXJyYXl9IGxpc3QgVGhlIGFycmF5IHRvIGNvbnNpZGVyLlxuICogQHJldHVybiB7Qm9vbGVhbn0gYHRydWVgIGlmIGFuIGVxdWl2YWxlbnQgaXRlbSBpcyBpbiB0aGUgbGlzdCwgYGZhbHNlYCBvdGhlcndpc2UuXG4gKiBAc2VlIFIuYW55XG4gKiBAZXhhbXBsZVxuICpcbiAqICAgICAgUi5pbmNsdWRlcygzLCBbMSwgMiwgM10pOyAvLz0+IHRydWVcbiAqICAgICAgUi5pbmNsdWRlcyg0LCBbMSwgMiwgM10pOyAvLz0+IGZhbHNlXG4gKiAgICAgIFIuaW5jbHVkZXMoeyBuYW1lOiAnRnJlZCcgfSwgW3sgbmFtZTogJ0ZyZWQnIH1dKTsgLy89PiB0cnVlXG4gKiAgICAgIFIuaW5jbHVkZXMoWzQyXSwgW1s0Ml1dKTsgLy89PiB0cnVlXG4gKiAgICAgIFIuaW5jbHVkZXMoJ2JhJywgJ2JhbmFuYScpOyAvLz0+dHJ1ZVxuICovXG5cbnZhciBpbmNsdWRlcyA9XG4vKiNfX1BVUkVfXyovXG5fY3VycnkyKF9pbmNsdWRlcyk7XG5cbmV4cG9ydCBkZWZhdWx0IGluY2x1ZGVzOyIsIi8qKlxuICogQSBzcGVjaWFsIHBsYWNlaG9sZGVyIHZhbHVlIHVzZWQgdG8gc3BlY2lmeSBcImdhcHNcIiB3aXRoaW4gY3VycmllZCBmdW5jdGlvbnMsXG4gKiBhbGxvd2luZyBwYXJ0aWFsIGFwcGxpY2F0aW9uIG9mIGFueSBjb21iaW5hdGlvbiBvZiBhcmd1bWVudHMsIHJlZ2FyZGxlc3Mgb2ZcbiAqIHRoZWlyIHBvc2l0aW9ucy5cbiAqXG4gKiBJZiBgZ2AgaXMgYSBjdXJyaWVkIHRlcm5hcnkgZnVuY3Rpb24gYW5kIGBfYCBpcyBgUi5fX2AsIHRoZSBmb2xsb3dpbmcgYXJlXG4gKiBlcXVpdmFsZW50OlxuICpcbiAqICAgLSBgZygxLCAyLCAzKWBcbiAqICAgLSBgZyhfLCAyLCAzKSgxKWBcbiAqICAgLSBgZyhfLCBfLCAzKSgxKSgyKWBcbiAqICAgLSBgZyhfLCBfLCAzKSgxLCAyKWBcbiAqICAgLSBgZyhfLCAyLCBfKSgxLCAzKWBcbiAqICAgLSBgZyhfLCAyKSgxKSgzKWBcbiAqICAgLSBgZyhfLCAyKSgxLCAzKWBcbiAqICAgLSBgZyhfLCAyKShfLCAzKSgxKWBcbiAqXG4gKiBAbmFtZSBfX1xuICogQGNvbnN0YW50XG4gKiBAbWVtYmVyT2YgUlxuICogQHNpbmNlIHYwLjYuMFxuICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gKiBAZXhhbXBsZVxuICpcbiAqICAgICAgY29uc3QgZ3JlZXQgPSBSLnJlcGxhY2UoJ3tuYW1lfScsIFIuX18sICdIZWxsbywge25hbWV9IScpO1xuICogICAgICBncmVldCgnQWxpY2UnKTsgLy89PiAnSGVsbG8sIEFsaWNlISdcbiAqL1xuZXhwb3J0IGRlZmF1bHQge1xuICAnQEBmdW5jdGlvbmFsL3BsYWNlaG9sZGVyJzogdHJ1ZVxufTsiLCJpbXBvcnQge19fLCBwYXRoLCBwcm9wRXEsIHBpcGUsIGluY2x1ZGVzLCBpc05pbCwgbm90fSBmcm9tIFwicmFtZGFcIjtcblxuLy8gZ2V0VHJhbnNsYXRpb25TdGF0dXMgOjogbGFuZyDihpIgb2JqZWN0IOKGkiBpbnRcbmNvbnN0IGdldFRyYW5zbGF0aW9uU3RhdHVzID0gbGFuZyA9PiBwYXRoKFsndHJhbnNsYXRpb25zJywgbGFuZywgJ3N0YXR1cyddKTtcblxuLy8gaGFzTW9WYWx1ZSA6OiBsYW5nIC0+IG9iamVjdCAtPiBib29sXG5jb25zdCBoYXNNb1ZhbHVlID0gbGFuZyA9PiBwaXBlKHBhdGgoWyd0cmFuc2xhdGlvbnMnLCBsYW5nLCAnbW9fc3RyaW5nJ10pLCBpc05pbCwgbm90KTtcblxuLy8gaXNPcmlnaW5hbCA6OiBsYW5nIOKGkiBvYmplY3Qg4oaSIGJvb2xcbmV4cG9ydCBjb25zdCBpc09yaWdpbmFsID0gbGFuZyA9PiBwcm9wRXEoJ3N0cmluZ19sYW5ndWFnZScsIGxhbmcpO1xuXG4vLyBpc1RyYW5zbGF0ZWQgOjogbGFuZyDihpIgb2JqZWN0IOKGkiBib29sXG5leHBvcnQgY29uc3QgaXNUcmFuc2xhdGVkID0gbGFuZyA9PiBzdHJpbmcgPT4ge1xuXHRjb25zdCBzdGF0dXMgPSBwYXJzZUludChnZXRUcmFuc2xhdGlvblN0YXR1cyhsYW5nKShzdHJpbmcpKTtcblxuXHRyZXR1cm4gc3RhdHVzID09PSAxMCB8fCAoc3RhdHVzID09PSAwICYmIGhhc01vVmFsdWUobGFuZykoc3RyaW5nKSk7XG59O1xuXG5cbi8vIGlzV2FpdGluZ0ZvclRyYW5zbGF0b3IgOjogbGFuZyDihpIgb2JqZWN0IOKGkiBib29sXG5leHBvcnQgY29uc3QgaXNXYWl0aW5nRm9yVHJhbnNsYXRvciA9IGxhbmcgPT4gcGlwZShnZXRUcmFuc2xhdGlvblN0YXR1cyhsYW5nKSwgaW5jbHVkZXMoX18sIFsnMSddKSk7XG5cbi8vIGlzSW5Qcm9ncmVzcyA6OiBsYW5nIOKGkiBvYmplY3Qg4oaSIGJvb2xcbmV4cG9ydCBjb25zdCBpc0luUHJvZ3Jlc3MgPSBsYW5nID0+IHBpcGUoZ2V0VHJhbnNsYXRpb25TdGF0dXMobGFuZyksIGluY2x1ZGVzKF9fLCBbJzInXSkpO1xuXG4vLyBpc0Jhc2tldCA6OiBsYW5nIOKGkiBvYmplY3Qg4oaSIGJvb2xcbmV4cG9ydCBjb25zdCBpbkJhc2tldCA9IGxhbmcgPT4gcGF0aChbJ3RyYW5zbGF0aW9ucycsIGxhbmcsICdpbl9iYXNrZXQnXSk7XG5cbi8vIG5lZWRzVXBkYXRlIDo6IGxhbmcg4oaSIG9iamVjdCDihpIgYm9vbFxuZXhwb3J0IGNvbnN0IG5lZWRzVXBkYXRlID0gbGFuZyA9PiBwaXBlKGdldFRyYW5zbGF0aW9uU3RhdHVzKGxhbmcpLCBpbmNsdWRlcyhfXywgWyczJ10pKTtcblxuIiwiaW1wb3J0IHtwaXBlLCBpbmRleE9mLCBzcGxpdEF0LCByZXZlcnNlLCBmbGF0dGVuLCBkcm9wLCBhbnlQYXNzLCByZWR1Y2V9IGZyb20gXCJyYW1kYVwiO1xuaW1wb3J0IHtpc09yaWdpbmFsLCBpbkJhc2tldCwgaXNXYWl0aW5nRm9yVHJhbnNsYXRvciwgaXNJblByb2dyZXNzfSBmcm9tICcuL3RyYW5zbGF0aW9uU3RhdHVzJztcblxuY29uc3Qgcm90YXRlID0gcGlwZShzcGxpdEF0LCByZXZlcnNlLCBmbGF0dGVuKTtcblxuZXhwb3J0IGRlZmF1bHQgKGxhbmcsIG9yZGVyLCBsYW5ndWFnZXMsIHN0cmluZykgPT4ge1xuXHRjb25zdCBpbmRleCA9IGluZGV4T2YobGFuZywgbGFuZ3VhZ2VzKTtcblx0Y29uc3QgbGFuZ3VhZ2VzV2l0aEN1cnJlbnRGaXJzdCA9IHJvdGF0ZShpbmRleCwgbGFuZ3VhZ2VzKTtcblx0Y29uc3QgcmVtb3ZlQ3VycmVudExhbmcgPSBkcm9wKDEpO1xuXG5cdGNvbnN0IGZpbmRMYW5nVG9UcmFuc2xhdGUgPSAoZm91bmQsIGxhbmcpID0+IHtcblx0XHRjb25zdCBjYW5Ob3RUcmFuc2xhdGUgPSBhbnlQYXNzKFtcblx0XHRcdGlzT3JpZ2luYWwobGFuZyksXG5cdFx0XHRpbkJhc2tldChsYW5nKSxcblx0XHRcdGlzV2FpdGluZ0ZvclRyYW5zbGF0b3IobGFuZyksXG5cdFx0XHRpc0luUHJvZ3Jlc3MobGFuZylcblx0XHRdKTtcblxuXHRcdGlmIChmb3VuZCkge1xuXHRcdFx0cmV0dXJuIGZvdW5kO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gY2FuTm90VHJhbnNsYXRlKHN0cmluZykgPyAnJyA6IGxhbmc7XG5cdFx0fVxuXHR9O1xuXG5cdHJldHVybiByZWR1Y2UoZmluZExhbmdUb1RyYW5zbGF0ZSwgJycsIG9yZGVyKHJlbW92ZUN1cnJlbnRMYW5nKGxhbmd1YWdlc1dpdGhDdXJyZW50Rmlyc3QpKSk7XG59O1xuXG4iLCJpbXBvcnQge2FsbFBhc3MsIHByb3AsIHByb3BFcX0gZnJvbSBcInJhbWRhXCI7XG5cbi8vIGlzRW50ZXIgOjogZXZlbnQg4oaSIGJvb2xcbmV4cG9ydCBjb25zdCBpc0VudGVyID0gcHJvcEVxKCdrZXlDb2RlJywgMTMpO1xuXG4vLyBpc0NvbnRyb2xFbnRlciA6OiBldmVudCDihpIgYm9vbFxuZXhwb3J0IGNvbnN0IGlzU2hpZnRFbnRlciA9IGFsbFBhc3MoW3Byb3AoJ3NoaWZ0S2V5JyksIGlzRW50ZXJdKTtcblxuLy8gaXNUYWIgOjogZXZlbnQg4oaSIGJvb2xcbmV4cG9ydCBjb25zdCBpc1RhYiA9IHByb3BFcSgna2V5Q29kZScsIDkpO1xuXG4vLyBpc0VzY2FwZSA6OiBldmVudCDihpIgYm9vbFxuZXhwb3J0IGNvbnN0IGlzRXNjYXBlID0gcHJvcEVxKCdrZXlDb2RlJywgMjcpO1xuXG4iLCJpbXBvcnQgUmVhY3QsIHt1c2VFZmZlY3QsIHVzZVN0YXRlLCB1c2VSZWZ9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFRleHRBcmVhIGZyb20gXCJhbnRkL2xpYi9pbnB1dC9UZXh0QXJlYVwiO1xuaW1wb3J0ICdhbnRkL2xpYi9pbnB1dC9zdHlsZS9pbmRleC5jc3MnO1xuaW1wb3J0IHt1c2VTdG9yZUFjdGlvbnMsIHVzZVN0b3JlU3RhdGV9IGZyb20gXCJlYXN5LXBlYXN5XCI7XG5pbXBvcnQge3Byb3AsIHByb3BPciwgcHJvcEVxLCBjb25kLCBpZGVudGl0eSwgcmV2ZXJzZSwgYW55UGFzcywgdGFwLCBpbnZva2VyLCBwYXRofSBmcm9tIFwicmFtZGFcIjtcbmltcG9ydCBuZXh0QXZhaWxhYmxlTGFuZyBmcm9tICcuLi9sYW5nTmF2aWdhdGlvbic7XG5pbXBvcnQge2lzRW50ZXIsIGlzU2hpZnRFbnRlciwgaXNFc2NhcGUsIGlzVGFifSBmcm9tIFwiLi4va2V5c1wiO1xuaW1wb3J0IHtKdXN0fSBmcm9tICdjcm9ja3MvTWF5YmUnO1xuaW1wb3J0IHNhZmUgZnJvbSAnY3JvY2tzL01heWJlL3NhZmUnO1xuXG5leHBvcnQgZGVmYXVsdCAoe2xhbmcsIHZhbHVlLCBvblRyYW5zbGF0aW9uLCBkaXIsIHRyYW5zbGF0aW9uU291cmNlfSkgPT4ge1xuXHRjb25zdCBsYW5ndWFnZXMgPSB1c2VTdG9yZVN0YXRlKHByb3AoJ2xhbmd1YWdlcycpKTtcblx0Y29uc3Qgc3RyaW5nID0gdXNlU3RvcmVTdGF0ZShwcm9wKCdzdHJpbmcnKSk7XG5cdGNvbnN0IHNldFZpc2libGUgPSB1c2VTdG9yZUFjdGlvbnMocHJvcCgnc2V0VmlzaWJsZScpKTtcblx0Y29uc3QgZm9jdXMgPSB1c2VTdG9yZVN0YXRlKHBhdGgoWydmb2N1cycsIGxhbmddKSk7XG5cdGNvbnN0IHNldEZvY3VzID0gdXNlU3RvcmVBY3Rpb25zKHByb3AoJ3NldEZvY3VzJykpO1xuXG5cdGNvbnN0IFtjYXJldCwgc2V0Q2FyZXRdID0gdXNlU3RhdGUoe30pO1xuXG5cdGNvbnN0IG5leHQgPSBuZXh0QXZhaWxhYmxlTGFuZyhsYW5nLCBpZGVudGl0eSwgbGFuZ3VhZ2VzLCBzdHJpbmcpO1xuXHRjb25zdCBwcmV2ID0gbmV4dEF2YWlsYWJsZUxhbmcobGFuZywgcmV2ZXJzZSwgbGFuZ3VhZ2VzLCBzdHJpbmcpO1xuXHRjb25zdCBkaXNhYmxlUHJldiA9IHByZXYgPT09IGxhbmd1YWdlc1tsYW5ndWFnZXMubGVuZ3RoIC0gMV07XG5cdGNvbnN0IGRpc2FibGVOZXh0ID0gbmV4dCA9PT0gbGFuZ3VhZ2VzWzBdO1xuXG5cdGNvbnN0IG1vdmVUb05leHQgPSAoKSA9PiAhZGlzYWJsZU5leHQgJiYgbW92ZVRvKG5leHQpO1xuXHRjb25zdCBtb3ZlVG9QcmV2ID0gKCkgPT4gIWRpc2FibGVQcmV2ICYmIG1vdmVUbyhwcmV2KTtcblxuXHRjb25zdCBtb3ZlVG8gPSAodGFyZ2V0KSA9PiB7XG5cdFx0aWYgKHRhcmdldCkge1xuXHRcdFx0c2V0VmlzaWJsZSh7W2xhbmddOiBmYWxzZX0pO1xuXHRcdFx0c2V0VmlzaWJsZSh7W3RhcmdldF06IHRydWV9KTtcblx0XHR9XG5cdH07XG5cblx0Y29uc3Qgc2V0Q2FyZXRQb3NpdGlvbiA9ICgpID0+IHtcblx0XHRjb25zdCBwb3MgPSBwcm9wT3IoLTEsICdwb3MnLCBjYXJldCk7XG5cdFx0aWYgKHBvcyA+PSAwKSB7XG5cdFx0XHRjb25zdCB0YXJnZXQgPSBwcm9wKCd0YXJnZXQnLCBjYXJldCk7XG5cdFx0XHR0YXJnZXQuc2VsZWN0aW9uU3RhcnQgPSB0YXJnZXQuc2VsZWN0aW9uRW5kID0gcG9zO1xuXHRcdFx0c2V0Q2FyZXQoe30pO1xuXHRcdH1cblx0fTtcblx0dXNlRWZmZWN0KHNldENhcmV0UG9zaXRpb24sIFtjYXJldF0pO1xuXG5cdGNvbnN0IGlucHV0ID0gdXNlUmVmKG51bGwpO1xuXG5cdGNvbnN0IHNldEZvY3VzVG9JbnB1dCA9ICgpID0+IHtcblx0XHRpZiAoaW5wdXQuY3VycmVudCAmJiBmb2N1cykge1xuXHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdGNvbnN0IHRhcmdldCA9IGlucHV0LmN1cnJlbnQucmVzaXphYmxlVGV4dEFyZWEudGV4dEFyZWE7XG5cdFx0XHRcdHRhcmdldC5mb2N1cygpO1xuXHRcdFx0XHR0YXJnZXQuc2VsZWN0aW9uU3RhcnQgPSB0YXJnZXQuc2VsZWN0aW9uRW5kID0gMDtcblx0XHRcdH0sIDIwMCk7XG5cdFx0XHRzZXRGb2N1cyh7W2xhbmddOiBmYWxzZX0pO1xuXHRcdH1cblx0fTtcblx0dXNlRWZmZWN0KHNldEZvY3VzVG9JbnB1dCwgW2lucHV0LCBmb2N1c10pO1xuXG5cdGNvbnN0IHVwZGF0ZVNpemUgPSAoKSA9PiB7XG5cdFx0dHJhbnNsYXRpb25Tb3VyY2UuY3VycmVudC5yZXNpemFibGVUZXh0QXJlYS50ZXh0QXJlYS5zdHlsZS5oZWlnaHQgPVxuXHRcdFx0aW5wdXQuY3VycmVudC5yZXNpemFibGVUZXh0QXJlYS50ZXh0QXJlYS5zdHlsZS5oZWlnaHQ7XG5cdH07XG5cblx0dXNlRWZmZWN0KCAoKSA9PiB7XG5cdFx0XHRuZXcgTXV0YXRpb25PYnNlcnZlcih1cGRhdGVTaXplKS5vYnNlcnZlKGlucHV0LmN1cnJlbnQucmVzaXphYmxlVGV4dEFyZWEudGV4dEFyZWEsIHtcblx0XHRcdFx0YXR0cmlidXRlczogdHJ1ZSwgYXR0cmlidXRlRmlsdGVyOiBbXCJzdHlsZVwiXVxuXHRcdFx0fSk7XG5cdFx0fSxcblx0XHRbaW5wdXRdXG5cdCk7XG5cblx0Lypcblx0ICogV2UgdXNlIG91ciBvd24gZnVuY3Rpb24gaW5zdGVhZCBvZiBgYXV0b2ZvY3VzYCBwcm9wIGZvciB0aGUgVGV4QXJlYSBiZWNhdXNlIHRoZXJlIGlzIGEgYnVnXG5cdCAqIGluIEFudGQgdGhhdCBjYXVzZXMgcGFnZSBqdW1waW5nIHRvIHRvcCB3aGVuIGlucHV0IHdpdGggYXV0b2ZvY3VzIHByb3AgaXMgcGxhY2VkXG5cdCAqIGluc2lkZSB0aGUgUG9wb3ZlciBlbGVtZW50L1xuXHQgKi9cblx0Y29uc3QgYXV0b0ZvY3VzID0gKCkgPT4ge1xuXHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0Y29uc3QgdGFyZ2V0ID0gaW5wdXQuY3VycmVudC5yZXNpemFibGVUZXh0QXJlYS50ZXh0QXJlYTtcblx0XHRcdHRhcmdldC5mb2N1cygpO1xuXHRcdH0sIDIwMCk7XG5cdH07XG5cdHVzZUVmZmVjdChhdXRvRm9jdXMsIFtpbnB1dF0pO1xuXG5cdGNvbnN0IGluc2VydE5ld0xpbmUgPSB0YXJnZXQgPT4ge1xuXHRcdGNvbnN0IHBvcyA9IHRhcmdldC5zZWxlY3Rpb25TdGFydDtcblx0XHRvblRyYW5zbGF0aW9uKHZhbHVlLnNsaWNlKDAsIHBvcykgKyBcIlxcblwiICsgdmFsdWUuc2xpY2UocG9zKSk7XG5cdFx0c2V0Q2FyZXQoe3RhcmdldCwgcG9zOiBwb3MgKyAxfSk7XG5cdH07XG5cblx0Y29uc3QgZXNjYXBlQW5kRXhpdCA9ICgpID0+IHtcblx0XHRvblRyYW5zbGF0aW9uKG51bGwpO1xuXHRcdHNldFZpc2libGUoe1tsYW5nXTogZmFsc2V9KTtcblx0fTtcblxuXHRjb25zdCBvbktleSA9IGV2dCA9PiB7XG5cdFx0SnVzdChldnQpXG5cdFx0XHQuY2hhaW4oc2FmZShhbnlQYXNzKFtpc0VudGVyLCBpc1RhYiwgaXNFc2NhcGVdKSkpXG5cdFx0XHQubWFwKHRhcChpbnZva2VyKDAsICdwcmV2ZW50RGVmYXVsdCcpKSlcblx0XHRcdC5jaGFpbihzYWZlKHByb3BFcSgndHlwZScsICdrZXl1cCcpKSlcblx0XHRcdC5tYXAoY29uZChbXG5cdFx0XHRcdFtpc1NoaWZ0RW50ZXIsICgpID0+IGluc2VydE5ld0xpbmUoZXZ0LnRhcmdldCldLFxuXHRcdFx0XHRbaXNFbnRlciwgKCkgPT4gc2V0VmlzaWJsZSh7W2xhbmddOiBmYWxzZX0pXSxcblx0XHRcdFx0W2lzVGFiLCAoKSA9PiBldnQuc2hpZnRLZXkgPyBtb3ZlVG9QcmV2KCkgOiBtb3ZlVG9OZXh0KCldLFxuXHRcdFx0XHRbaXNFc2NhcGUsICgpID0+IGVzY2FwZUFuZEV4aXQoKV1cblx0XHRcdF0pKTtcblx0fTtcblxuXHRyZXR1cm4gKFxuXHRcdDxUZXh0QXJlYVxuXHRcdFx0Y2xhc3NOYW1lPSd0cmFuc2xhdGlvbidcblx0XHRcdHZhbHVlPXt2YWx1ZX1cblx0XHRcdG9uQ2hhbmdlPXtlID0+IG9uVHJhbnNsYXRpb24oZS50YXJnZXQudmFsdWUpfVxuXHRcdFx0YXV0b1NpemU9e3ttaW5Sb3dzOiA0LCBtYXhSb3dzOiA4fX1cblx0XHRcdHN0eWxlPXt7d2lkdGg6IDM1MH19XG5cdFx0XHRkaXI9e2Rpcn1cblx0XHRcdG9uS2V5VXA9e29uS2V5fVxuXHRcdFx0b25LZXlEb3duPXtvbktleX1cblx0XHRcdG9uS2V5UHJlc3M9e29uS2V5fVxuXHRcdFx0cmVmPXtpbnB1dH1cblx0XHQvPlxuXHQpO1xuXG59XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5cbmV4cG9ydCBkZWZhdWx0ICh7c3JjfSkgPT4gPHNwYW4gY2xhc3NOYW1lPVwid3BtbC10aXRsZS1mbGFnXCI+PGltZyBzcmM9e3NyY30vPjwvc3Bhbj47XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgQnV0dG9uIGZyb20gXCJhbnRkL2xpYi9idXR0b25cIjtcbmltcG9ydCBSb3cgZnJvbSAnYW50ZC9saWIvcm93JztcbmltcG9ydCBDb2wgZnJvbSAnYW50ZC9saWIvY29sJztcbmltcG9ydCAnYW50ZC9saWIvYnV0dG9uL3N0eWxlL2luZGV4LmNzcyc7XG5pbXBvcnQgJ2FudGQvbGliL2dyaWQvc3R5bGUvaW5kZXguY3NzJztcbmltcG9ydCB7cGF0aCwgcHJvcCwgaWRlbnRpdHksIHJldmVyc2V9IGZyb20gXCJyYW1kYVwiO1xuaW1wb3J0IHt1c2VTdG9yZUFjdGlvbnMsIHVzZVN0b3JlU3RhdGV9IGZyb20gXCJlYXN5LXBlYXN5XCI7XG5pbXBvcnQgRmxhZyBmcm9tIFwiLi9GbGFnXCI7XG5pbXBvcnQgbmV4dEF2YWlsYWJsZUxhbmcgZnJvbSAnLi4vbGFuZ05hdmlnYXRpb24nO1xuaW1wb3J0IHtfX30gZnJvbSBcIndwbWwtY29tbW9uLWpzLXNvdXJjZS9zcmMvaTE4blwiO1xuXG5leHBvcnQgZGVmYXVsdCAoe2xhbmd9KSA9PiB7XG5cdGNvbnN0IGxhbmd1YWdlcyA9IHVzZVN0b3JlU3RhdGUocHJvcCgnbGFuZ3VhZ2VzJykpO1xuXHRjb25zdCBsYW5nRGV0YWlscyA9IHVzZVN0b3JlU3RhdGUocHJvcCgnbGFuZ3VhZ2VEZXRhaWxzJykpO1xuXHRjb25zdCBzdHJpbmcgPSB1c2VTdG9yZVN0YXRlKHByb3AoJ3N0cmluZycpKTtcblx0Y29uc3Qgc2V0VmlzaWJsZSA9IHVzZVN0b3JlQWN0aW9ucyhwcm9wKCdzZXRWaXNpYmxlJykpO1xuXG5cdGNvbnN0IGdldEZsYWdVcmwgPSBsYW5nID0+IHBhdGgoW2xhbmcsICdmbGFnX3VybCddLCBsYW5nRGV0YWlscyk7XG5cdGNvbnN0IGdldExhbmdOYW1lID0gbGFuZyA9PiBwYXRoKFtsYW5nLCAnZGlzcGxheV9uYW1lJ10sIGxhbmdEZXRhaWxzKTtcblxuXHRjb25zdCBuZXh0ID0gbmV4dEF2YWlsYWJsZUxhbmcobGFuZywgaWRlbnRpdHksIGxhbmd1YWdlcywgc3RyaW5nKTtcblx0Y29uc3QgcHJldiA9IG5leHRBdmFpbGFibGVMYW5nKGxhbmcsIHJldmVyc2UsIGxhbmd1YWdlcywgc3RyaW5nKTtcblxuXHRjb25zdCBkaXNhYmxlUHJldiA9IHByZXYgPT09IGxhbmd1YWdlc1tsYW5ndWFnZXMubGVuZ3RoIC0gMV07XG5cdGNvbnN0IGRpc2FibGVOZXh0ID0gbmV4dCA9PT0gbGFuZ3VhZ2VzWzBdO1xuXG5cdGNvbnN0IG1vdmVUbyA9ICh0YXJnZXQpID0+IHtcblx0XHRzZXRWaXNpYmxlKHtbbGFuZ106IGZhbHNlfSk7XG5cdFx0c2V0VmlzaWJsZSh7W3RhcmdldF06IHRydWV9KTtcblx0fTtcblxuXHRjb25zdCBnZXRJY29uID0gKG5hbWUsIHRleHQ9JycpID0+IDxpIGNsYXNzTmFtZT17J290Z3MtaWNvbiBvdGdzLWljby0nICsgbmFtZX0+e3RleHR9PC9pPjtcblxuXHRjb25zdCBnb1RvTGFuZ0J1dHRvbiA9IChsYW5nLCB0eXBlKSA9PiB7XG5cdFx0Y29uc3QgZ2V0UHJldiA9ICgpID0+IHR5cGUgPT09ICdwcmV2JyA/IGdldEljb24oJ2NhcmV0LWxlZnQnKSA6IG51bGw7XG5cdFx0Y29uc3QgZ2V0TmV4dCA9ICgpID0+IHR5cGUgPT09ICduZXh0JyA/IGdldEljb24oJ2NhcmV0LXJpZ2h0JykgOiBudWxsO1xuXG5cdFx0cmV0dXJuIDxCdXR0b25cblx0XHRcdGNsYXNzTmFtZT17YHNlY29uZGFyeSBhbnQtYnRuX18ke3R5cGV9YH1cblx0XHRcdG9uQ2xpY2s9eygpID0+IG1vdmVUbyhsYW5nKX1cblx0XHRcdGRpc2FibGVkPXt0eXBlID09PSAncHJldicgPyBkaXNhYmxlUHJldiA6IGRpc2FibGVOZXh0fVxuXHRcdD5cblx0XHRcdHtnZXRQcmV2KCl9XG5cdFx0XHQ8RmxhZyBzcmM9e2dldEZsYWdVcmwobGFuZyl9Lz5cblx0XHRcdHtfXyggJ0VkaXQnLCAnd3BtbC1zdHJpbmctdHJhbnNsYXRpb24nICl9IHtnZXRMYW5nTmFtZShsYW5nKX1cblx0XHRcdHtnZXROZXh0KCl9XG5cdFx0PC9CdXR0b24+O1xuXHR9O1xuXG5cdHJldHVybiAoXG5cdFx0PGRpdiBjbGFzc05hbWU9XCJ3cG1sLWRpYWxvZy10cmFuc2xhdGVfX2FjdGlvbnNcIj5cblx0XHRcdDxSb3c+XG5cdFx0XHRcdDxDb2wgc3Bhbj17MTJ9PlxuXHRcdFx0XHRcdHtwcmV2ICYmIDxkaXY+XG5cdFx0XHRcdFx0XHR7Z29Ub0xhbmdCdXR0b24oZGlzYWJsZVByZXYgPyBsYW5nIDogcHJldiwgJ3ByZXYnKX1cblx0XHRcdFx0XHRcdDxzbWFsbD57X18oJ1NoaWZ0K1RhYicsICd3cG1sLXN0cmluZy10cmFuc2xhdGlvbicpfTwvc21hbGw+XG5cdFx0XHRcdFx0PC9kaXY+fVxuXHRcdFx0XHQ8L0NvbD5cblx0XHRcdFx0PENvbCBzcGFuPXsxMn0gc3R5bGU9e3sgdGV4dEFsaWduOiAncmlnaHQnIH19PlxuXHRcdFx0XHRcdHtuZXh0ICYmIDxkaXY+XG5cdFx0XHRcdFx0XHQ8c21hbGw+e19fKCdUYWInLCAnd3BtbC1zdHJpbmctdHJhbnNsYXRpb24nKX08L3NtYWxsPlxuXHRcdFx0XHRcdFx0e2dvVG9MYW5nQnV0dG9uKGRpc2FibGVOZXh0ID8gbGFuZyA6IG5leHQsICduZXh0Jyl9XG5cdFx0XHRcdFx0PC9kaXY+fVxuXHRcdFx0XHQ8L0NvbD5cblx0XHRcdDwvUm93PlxuXHRcdDwvZGl2PlxuXHQpO1xufVxuIiwiaW1wb3J0IFJlYWN0LCB7dXNlU3RhdGUsIHVzZUVmZmVjdCwgdXNlUmVmfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7X199IGZyb20gXCJ3cG1sLWNvbW1vbi1qcy1zb3VyY2Uvc3JjL2kxOG5cIjtcbmltcG9ydCB7cHJvcCwgcGF0aCwgcGF0aE9yLCBpZkVsc2UsIGlkZW50aXR5LCBmb3JFYWNoLCBwcm9wRXEsIGFsbFBhc3N9IGZyb20gJ3JhbWRhJztcbmltcG9ydCBUZXh0QXJlYSBmcm9tIFwiYW50ZC9saWIvaW5wdXQvVGV4dEFyZWFcIjtcbmltcG9ydCBSb3cgZnJvbSAnYW50ZC9saWIvcm93JztcbmltcG9ydCBDb2wgZnJvbSAnYW50ZC9saWIvY29sJztcbmltcG9ydCAnYW50ZC9saWIvaW5wdXQvc3R5bGUvaW5kZXguY3NzJztcbmltcG9ydCAnYW50ZC9saWIvZ3JpZC9zdHlsZS9pbmRleC5jc3MnO1xuaW1wb3J0IFRyYW5zbGF0aW9uRWRpdG9yIGZyb20gXCIuL1RyYW5zbGF0aW9uRWRpdG9yXCI7XG5pbXBvcnQgQWN0aW9ucyBmcm9tIFwiLi9BY3Rpb25zXCI7XG5pbXBvcnQge3VzZVN0b3JlU3RhdGUsIHVzZVN0b3JlQWN0aW9uc30gZnJvbSBcImVhc3ktcGVhc3lcIjtcblxuaW1wb3J0IEZsYWcgZnJvbSBcIi4vRmxhZ1wiO1xuaW1wb3J0IHtidWlsZFBheWxvYWQsIGNyZWF0ZUFqYXh9IGZyb20gXCJ3cG1sLWNvbW1vbi1qcy1zb3VyY2Uvc3JjL0FqYXhcIjtcblxuZXhwb3J0IGRlZmF1bHQgKHtsYW5nLCBvbk5ld1RyYW5zbGF0aW9ufSkgPT4ge1xuXHRjb25zdCBzdHJpbmcgPSB1c2VTdG9yZVN0YXRlKHByb3AoJ3N0cmluZycpKTtcblx0Y29uc3QgbGFuZ3VhZ2VzID0gdXNlU3RvcmVTdGF0ZShwcm9wKCdsYW5ndWFnZURldGFpbHMnKSk7XG5cdGNvbnN0IHNldEZvY3VzID0gdXNlU3RvcmVBY3Rpb25zKHByb3AoJ3NldEZvY3VzJykpO1xuXHRjb25zdCBlbmRwb2ludHMgPSB1c2VTdG9yZVN0YXRlKHByb3AoJ2VuZHBvaW50cycpKTtcblxuXHRjb25zdCBhamF4ID0gY3JlYXRlQWpheCgpO1xuXG5cdGNvbnN0IGdldExhbmdJbmZvID0gKGxhbmcsIGxhbmd1YWdlcykgPT4ge1xuXHRcdHJldHVybiB7XG5cdFx0XHRuYW1lOiBwYXRoKFtsYW5nLCAnZGlzcGxheV9uYW1lJ10sIGxhbmd1YWdlcyksXG5cdFx0XHRmbGFnOiBwYXRoKFtsYW5nLCAnZmxhZ191cmwnXSwgbGFuZ3VhZ2VzKSxcblx0XHRcdGRpcjogcGF0aChbbGFuZywgJ3J0bCddLCBsYW5ndWFnZXMpID8gJ3J0bCcgOiAnbHRyJ1xuXHRcdH07XG5cdH07XG5cblx0Y29uc3Qgb3JpZ2luYWxMYW5nID0gZ2V0TGFuZ0luZm8oc3RyaW5nLnN0cmluZ19sYW5ndWFnZSwgbGFuZ3VhZ2VzKTtcblx0Y29uc3QgdHJhbnNsYXRlZExhbmcgPSBnZXRMYW5nSW5mbyhsYW5nLCBsYW5ndWFnZXMpO1xuXG5cdGNvbnN0IG1vU3RyaW5nID0gcGF0aE9yKCcnLCBbJ3RyYW5zbGF0aW9ucycsIGxhbmcsICdtb19zdHJpbmcnXSwgc3RyaW5nKTtcblx0Y29uc3QgdHJhbnNsYXRpb24gPSBwYXRoT3IobW9TdHJpbmcsIFsndHJhbnNsYXRpb25zJywgbGFuZywgJ3ZhbHVlJ10sIHN0cmluZyk7XG5cblx0Y29uc3Qgc291cmNlSW5wdXQgPSB1c2VSZWYobnVsbCk7XG5cblx0dXNlRWZmZWN0KCgpID0+IHtcblx0XHRpZiAoIXRyYW5zbGF0aW9uKSB7XG5cblx0XHRcdGNvbnN0IHRocm93RXJyb3IgPSAoKSA9PiB7XG5cdFx0XHRcdHRocm93IG5ldyBFcnJvcignZXJyb3InKTtcblx0XHRcdH07XG5cdFx0XHRjb25zdCB2YWxpZGF0ZVJlc3BvbnNlID0gaWZFbHNlKHBhdGhPcihmYWxzZSwgWydkYXRhJywgJ3N1Y2Nlc3MnXSksIGlkZW50aXR5LCB0aHJvd0Vycm9yKTtcblxuXHRcdFx0Y29uc3QgZ2V0UGF5bG9hZCA9ICgpID0+IHtcblx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRzdHJpbmc6IHN0cmluZy52YWx1ZSxcblx0XHRcdFx0XHRzb3VyY2U6IHN0cmluZy5zdHJpbmdfbGFuZ3VhZ2UsXG5cdFx0XHRcdFx0dGFyZ2V0OiBsYW5nXG5cdFx0XHRcdH07XG5cdFx0XHR9O1xuXG5cdFx0XHRjb25zdCBhcHBseSA9IGZvdW5kID0+IHtcblx0XHRcdFx0aWYgKGFsbFBhc3MoW3Byb3BFcSgnb3JpZ2luYWwnLCBzdHJpbmcudmFsdWUpLCBwcm9wRXEoJ2xhbmd1YWdlJywgbGFuZyldKShmb3VuZCkpIHtcblx0XHRcdFx0XHRvblRyYW5zbGF0aW9uKHByb3AoJ3RyYW5zbGF0aW9uJywgZm91bmQpKTtcblx0XHRcdFx0fVxuXHRcdFx0fTtcblxuXHRcdFx0YWpheC5kb0ZldGNoKGJ1aWxkUGF5bG9hZChcblx0XHRcdFx0ZW5kcG9pbnRzLnRyYW5zbGF0aW9uTWVtb3J5Lm5vbmNlLFxuXHRcdFx0XHRlbmRwb2ludHMudHJhbnNsYXRpb25NZW1vcnkuZW5kcG9pbnQsXG5cdFx0XHRcdGdldFBheWxvYWQoKSlcblx0XHRcdCkudGhlbih2YWxpZGF0ZVJlc3BvbnNlKVxuXHRcdFx0XHQudGhlbihwYXRoT3IoW10sIFsnZGF0YScsICdkYXRhJ10pKVxuXHRcdFx0XHQudGhlbihmb3JFYWNoKGFwcGx5KSlcblx0XHRcdFx0LmNhdGNoKCgpID0+IHtcblx0XHRcdFx0fSk7XG5cblx0XHR9XG5cblx0fSwgW3RyYW5zbGF0aW9uXSk7XG5cblx0Y29uc3QgW25ld1RyYW5zbGF0aW9uLCBzZXROZXdUcmFuc2xhdGlvbl0gPSB1c2VTdGF0ZSh0cmFuc2xhdGlvbik7XG5cblx0Y29uc3Qgb25UcmFuc2xhdGlvbiA9ICh2YWx1ZSkgPT4ge1xuXHRcdGlmICh2YWx1ZSAhPT0gbnVsbCkge1xuXHRcdFx0c2V0TmV3VHJhbnNsYXRpb24odmFsdWUpO1xuXHRcdH1cblx0XHRvbk5ld1RyYW5zbGF0aW9uKHZhbHVlICE9PSB0cmFuc2xhdGlvbiA/IHZhbHVlIDogbnVsbCk7XG5cdH07XG5cblx0Y29uc3QgY29weU9yaWdpbmFsID0gKCkgPT4ge1xuXHRcdG9uVHJhbnNsYXRpb24oc3RyaW5nLnZhbHVlKTtcblx0XHRzZXRGb2N1cyh7W2xhbmddOiB0cnVlfSk7XG5cdH07XG5cblx0cmV0dXJuIChcblx0XHQ8ZGl2IGNsYXNzTmFtZT1cIndwbWwtZGlhbG9nLWJvZHkgd3BtbC1kaWFsb2ctdHJhbnNsYXRlXCI+XG5cdFx0XHQ8Um93IGNsYXNzTmFtZT1cIndwbWwtZGlhbG9nLXRyYW5zbGF0ZV9faGVhZGVyc1wiPlxuXHRcdFx0XHQ8Q29sIHNtPXsxMH0+XG5cdFx0XHRcdFx0PGgzIGNsYXNzTmFtZT1cIndwbWwtZGlhbG9nLXRyYW5zbGF0ZV9faGVhZGVycy1vcmlnaW5hbFwiPlxuXHRcdFx0XHRcdFx0e19fKCdPcmlnaW5hbDonLCAnd3BtbC1zdHJpbmctdHJhbnNsYXRpb24nKX0gPEZsYWcgc3JjPXtvcmlnaW5hbExhbmcuZmxhZ30vPlxuXHRcdFx0XHRcdFx0PHN0cm9uZz57b3JpZ2luYWxMYW5nLm5hbWV9PC9zdHJvbmc+XG5cdFx0XHRcdFx0PC9oMz5cblx0XHRcdFx0PC9Db2w+XG5cdFx0XHRcdDxDb2wgc209ezJ9PjwvQ29sPlxuXHRcdFx0XHQ8Q29sIHNtPXsxMn0+XG5cdFx0XHRcdFx0PGgzIGNsYXNzTmFtZT1cIndwbWwtZGlhbG9nLXRyYW5zbGF0ZV9faGVhZGVycy10cmFuc2xhdGlvblwiPlxuXHRcdFx0XHRcdFx0e19fKCdUcmFuc2xhdGlvbiB0bzonLCAnd3BtbC1zdHJpbmctdHJhbnNsYXRpb24nKX0gPEZsYWcgc3JjPXt0cmFuc2xhdGVkTGFuZy5mbGFnfS8+XG5cdFx0XHRcdFx0XHQ8c3Ryb25nPnt0cmFuc2xhdGVkTGFuZy5uYW1lfTwvc3Ryb25nPlxuXHRcdFx0XHRcdDwvaDM+XG5cdFx0XHRcdDwvQ29sPlxuXHRcdFx0PC9Sb3c+XG5cdFx0XHQ8Um93PlxuXHRcdFx0XHQ8Q29sIHNtPXsxMH0+XG5cdFx0XHRcdFx0PFRleHRBcmVhXG5cdFx0XHRcdFx0XHRjbGFzc05hbWU9J29yaWdpbmFsJ1xuXHRcdFx0XHRcdFx0dmFsdWU9e3N0cmluZy52YWx1ZX1cblx0XHRcdFx0XHRcdGRpc2FibGVkPXt0cnVlfVxuXHRcdFx0XHRcdFx0YXV0b1NpemU9e3ttaW5Sb3dzOiA0LCBtYXhSb3dzOiA4fX1cblx0XHRcdFx0XHRcdHN0eWxlPXt7d2lkdGg6IDMwMH19XG5cdFx0XHRcdFx0XHRkaXI9e29yaWdpbmFsTGFuZy5kaXJ9XG5cdFx0XHRcdFx0XHRyZWY9e3NvdXJjZUlucHV0fVxuXHRcdFx0XHRcdC8+XG5cdFx0XHRcdDwvQ29sPlxuXHRcdFx0XHQ8Q29sIHNtPXsyfSBzdHlsZT17e3RleHRBbGlnbjogJ2NlbnRlcid9fT5cblx0XHRcdFx0XHQ8YnV0dG9uIGNsYXNzTmFtZT1cImJ1dHRvbi1jb3B5IGJ1dHRvbi1zZWNvbmRhcnkgb3Rncy1pY28tY29weVwiXG5cdFx0XHRcdFx0ICAgICAgICB0aXRsZT17X18oJ0NvcHkgZnJvbSBvcmlnaW5hbCcsICd3cG1sLXN0cmluZy10cmFuc2xhdGlvbicpfVxuXHRcdFx0XHRcdCAgICAgICAgb25DbGljaz17Y29weU9yaWdpbmFsfVxuXHRcdFx0XHRcdCAgICAgICAgZGlzYWJsZWQ9eyEhbmV3VHJhbnNsYXRpb259XG5cdFx0XHRcdFx0PlxuXHRcdFx0XHRcdDwvYnV0dG9uPlxuXHRcdFx0XHQ8L0NvbD5cblx0XHRcdFx0PENvbCBzbT17MTJ9PlxuXHRcdFx0XHRcdDxUcmFuc2xhdGlvbkVkaXRvclxuXHRcdFx0XHRcdFx0bGFuZz17bGFuZ31cblx0XHRcdFx0XHRcdHZhbHVlPXtuZXdUcmFuc2xhdGlvbn1cblx0XHRcdFx0XHRcdG9uVHJhbnNsYXRpb249e29uVHJhbnNsYXRpb259XG5cdFx0XHRcdFx0XHRkaXI9e3RyYW5zbGF0ZWRMYW5nLmRpcn1cblx0XHRcdFx0XHRcdHRyYW5zbGF0aW9uU291cmNlPXtzb3VyY2VJbnB1dH1cblx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdDxkaXY+XG5cdFx0XHRcdFx0XHQ8c21hbGw+e19fKCdVc2UgU2hpZnQrRW50ZXIgdG8gYWRkIGEgbmV3IGxpbmUuJywgJ3dwbWwtc3RyaW5nLXRyYW5zbGF0aW9uJyl9PC9zbWFsbD5cblx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0PC9Db2w+XG5cdFx0XHQ8L1Jvdz5cblx0XHRcdDxBY3Rpb25zXG5cdFx0XHRcdGxhbmc9e2xhbmd9XG5cdFx0XHQvPlxuXHRcdDwvZGl2PlxuXHQpO1xufVxuXG5cbiIsIi8qKlxuICogUHJpdmF0ZSBgY29uY2F0YCBmdW5jdGlvbiB0byBtZXJnZSB0d28gYXJyYXktbGlrZSBvYmplY3RzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fEFyZ3VtZW50c30gW3NldDE9W11dIEFuIGFycmF5LWxpa2Ugb2JqZWN0LlxuICogQHBhcmFtIHtBcnJheXxBcmd1bWVudHN9IFtzZXQyPVtdXSBBbiBhcnJheS1saWtlIG9iamVjdC5cbiAqIEByZXR1cm4ge0FycmF5fSBBIG5ldywgbWVyZ2VkIGFycmF5LlxuICogQGV4YW1wbGVcbiAqXG4gKiAgICAgIF9jb25jYXQoWzQsIDUsIDZdLCBbMSwgMiwgM10pOyAvLz0+IFs0LCA1LCA2LCAxLCAyLCAzXVxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfY29uY2F0KHNldDEsIHNldDIpIHtcbiAgc2V0MSA9IHNldDEgfHwgW107XG4gIHNldDIgPSBzZXQyIHx8IFtdO1xuICB2YXIgaWR4O1xuICB2YXIgbGVuMSA9IHNldDEubGVuZ3RoO1xuICB2YXIgbGVuMiA9IHNldDIubGVuZ3RoO1xuICB2YXIgcmVzdWx0ID0gW107XG4gIGlkeCA9IDA7XG5cbiAgd2hpbGUgKGlkeCA8IGxlbjEpIHtcbiAgICByZXN1bHRbcmVzdWx0Lmxlbmd0aF0gPSBzZXQxW2lkeF07XG4gICAgaWR4ICs9IDE7XG4gIH1cblxuICBpZHggPSAwO1xuXG4gIHdoaWxlIChpZHggPCBsZW4yKSB7XG4gICAgcmVzdWx0W3Jlc3VsdC5sZW5ndGhdID0gc2V0MltpZHhdO1xuICAgIGlkeCArPSAxO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn0iLCJpbXBvcnQgX2FyaXR5IGZyb20gXCIuL19hcml0eS5qc1wiO1xuaW1wb3J0IF9jdXJyeTIgZnJvbSBcIi4vX2N1cnJ5Mi5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX2NyZWF0ZVBhcnRpYWxBcHBsaWNhdG9yKGNvbmNhdCkge1xuICByZXR1cm4gX2N1cnJ5MihmdW5jdGlvbiAoZm4sIGFyZ3MpIHtcbiAgICByZXR1cm4gX2FyaXR5KE1hdGgubWF4KDAsIGZuLmxlbmd0aCAtIGFyZ3MubGVuZ3RoKSwgZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIGZuLmFwcGx5KHRoaXMsIGNvbmNhdChhcmdzLCBhcmd1bWVudHMpKTtcbiAgICB9KTtcbiAgfSk7XG59IiwiaW1wb3J0IF9jb25jYXQgZnJvbSBcIi4vaW50ZXJuYWwvX2NvbmNhdC5qc1wiO1xuaW1wb3J0IF9jcmVhdGVQYXJ0aWFsQXBwbGljYXRvciBmcm9tIFwiLi9pbnRlcm5hbC9fY3JlYXRlUGFydGlhbEFwcGxpY2F0b3IuanNcIjtcbi8qKlxuICogVGFrZXMgYSBmdW5jdGlvbiBgZmAgYW5kIGEgbGlzdCBvZiBhcmd1bWVudHMsIGFuZCByZXR1cm5zIGEgZnVuY3Rpb24gYGdgLlxuICogV2hlbiBhcHBsaWVkLCBgZ2AgcmV0dXJucyB0aGUgcmVzdWx0IG9mIGFwcGx5aW5nIGBmYCB0byB0aGUgYXJndW1lbnRzXG4gKiBwcm92aWRlZCBpbml0aWFsbHkgZm9sbG93ZWQgYnkgdGhlIGFyZ3VtZW50cyBwcm92aWRlZCB0byBgZ2AuXG4gKlxuICogQGZ1bmNcbiAqIEBtZW1iZXJPZiBSXG4gKiBAc2luY2UgdjAuMTAuMFxuICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gKiBAc2lnICgoYSwgYiwgYywgLi4uLCBuKSAtPiB4KSAtPiBbYSwgYiwgYywgLi4uXSAtPiAoKGQsIGUsIGYsIC4uLiwgbikgLT4geClcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZcbiAqIEBwYXJhbSB7QXJyYXl9IGFyZ3NcbiAqIEByZXR1cm4ge0Z1bmN0aW9ufVxuICogQHNlZSBSLnBhcnRpYWxSaWdodCwgUi5jdXJyeVxuICogQGV4YW1wbGVcbiAqXG4gKiAgICAgIGNvbnN0IG11bHRpcGx5MiA9IChhLCBiKSA9PiBhICogYjtcbiAqICAgICAgY29uc3QgZG91YmxlID0gUi5wYXJ0aWFsKG11bHRpcGx5MiwgWzJdKTtcbiAqICAgICAgZG91YmxlKDIpOyAvLz0+IDRcbiAqXG4gKiAgICAgIGNvbnN0IGdyZWV0ID0gKHNhbHV0YXRpb24sIHRpdGxlLCBmaXJzdE5hbWUsIGxhc3ROYW1lKSA9PlxuICogICAgICAgIHNhbHV0YXRpb24gKyAnLCAnICsgdGl0bGUgKyAnICcgKyBmaXJzdE5hbWUgKyAnICcgKyBsYXN0TmFtZSArICchJztcbiAqXG4gKiAgICAgIGNvbnN0IHNheUhlbGxvID0gUi5wYXJ0aWFsKGdyZWV0LCBbJ0hlbGxvJ10pO1xuICogICAgICBjb25zdCBzYXlIZWxsb1RvTXMgPSBSLnBhcnRpYWwoc2F5SGVsbG8sIFsnTXMuJ10pO1xuICogICAgICBzYXlIZWxsb1RvTXMoJ0phbmUnLCAnSm9uZXMnKTsgLy89PiAnSGVsbG8sIE1zLiBKYW5lIEpvbmVzISdcbiAqIEBzeW1iIFIucGFydGlhbChmLCBbYSwgYl0pKGMsIGQpID0gZihhLCBiLCBjLCBkKVxuICovXG5cbnZhciBwYXJ0aWFsID1cbi8qI19fUFVSRV9fKi9cbl9jcmVhdGVQYXJ0aWFsQXBwbGljYXRvcihfY29uY2F0KTtcblxuZXhwb3J0IGRlZmF1bHQgcGFydGlhbDsiLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgbm90aWZpY2F0aW9uIGZyb20gJ2FudGQvbGliL25vdGlmaWNhdGlvbic7XG5pbXBvcnQgJ2FudGQvbGliL25vdGlmaWNhdGlvbi9zdHlsZS9pbmRleC5jc3MnO1xuaW1wb3J0IHtfX30gZnJvbSBcIndwbWwtY29tbW9uLWpzLXNvdXJjZS9zcmMvaTE4blwiO1xuaW1wb3J0IHtwYXJ0aWFsfSBmcm9tIFwicmFtZGFcIjtcblxuY29uc3Qgc2hvdyA9ICh0eXBlLCBtZXNzYWdlKSA9PiB7XG5cdG5vdGlmaWNhdGlvbi5kZXN0cm95KCk7XG5cdHR5cGUoe21lc3NhZ2UsIHRvcDo1MH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IHNob3dTdWNjZXNzID0gcGFydGlhbChzaG93LFxuXHRbbm90aWZpY2F0aW9uLnN1Y2Nlc3MsIF9fKCdUcmFuc2xhdGlvbiBzYXZlZC4nLCAnd3BtbC1zdHJpbmctdHJhbnNsYXRpb24nKV1cbik7XG5cbmV4cG9ydCBjb25zdCBzaG93RXJyb3IgPSBwYXJ0aWFsKHNob3csXG5cdFtub3RpZmljYXRpb24uZXJyb3IsIF9fKCdUcmFuc2xhdGlvbiB1cGRhdGUgZmFpbGVkLicsICd3cG1sLXN0cmluZy10cmFuc2xhdGlvbicpXVxuKTtcbiIsImltcG9ydCBfY3VycnkxIGZyb20gXCIuL2ludGVybmFsL19jdXJyeTEuanNcIjtcbi8qKlxuICogUmV0dXJucyBhIGZ1bmN0aW9uIHRoYXQgYWx3YXlzIHJldHVybnMgdGhlIGdpdmVuIHZhbHVlLiBOb3RlIHRoYXQgZm9yXG4gKiBub24tcHJpbWl0aXZlcyB0aGUgdmFsdWUgcmV0dXJuZWQgaXMgYSByZWZlcmVuY2UgdG8gdGhlIG9yaWdpbmFsIHZhbHVlLlxuICpcbiAqIFRoaXMgZnVuY3Rpb24gaXMga25vd24gYXMgYGNvbnN0YCwgYGNvbnN0YW50YCwgb3IgYEtgIChmb3IgSyBjb21iaW5hdG9yKSBpblxuICogb3RoZXIgbGFuZ3VhZ2VzIGFuZCBsaWJyYXJpZXMuXG4gKlxuICogQGZ1bmNcbiAqIEBtZW1iZXJPZiBSXG4gKiBAc2luY2UgdjAuMS4wXG4gKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAqIEBzaWcgYSAtPiAoKiAtPiBhKVxuICogQHBhcmFtIHsqfSB2YWwgVGhlIHZhbHVlIHRvIHdyYXAgaW4gYSBmdW5jdGlvblxuICogQHJldHVybiB7RnVuY3Rpb259IEEgRnVuY3Rpb24gOjogKiAtPiB2YWwuXG4gKiBAZXhhbXBsZVxuICpcbiAqICAgICAgY29uc3QgdCA9IFIuYWx3YXlzKCdUZWUnKTtcbiAqICAgICAgdCgpOyAvLz0+ICdUZWUnXG4gKi9cblxudmFyIGFsd2F5cyA9XG4vKiNfX1BVUkVfXyovXG5fY3VycnkxKGZ1bmN0aW9uIGFsd2F5cyh2YWwpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdmFsO1xuICB9O1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IGFsd2F5czsiLCJpbXBvcnQgX2N1cnJ5MiBmcm9tIFwiLi9pbnRlcm5hbC9fY3VycnkyLmpzXCI7XG5pbXBvcnQgX2lzQXJyYXkgZnJvbSBcIi4vaW50ZXJuYWwvX2lzQXJyYXkuanNcIjtcbmltcG9ydCBfaXNGdW5jdGlvbiBmcm9tIFwiLi9pbnRlcm5hbC9faXNGdW5jdGlvbi5qc1wiO1xuaW1wb3J0IF9pc1N0cmluZyBmcm9tIFwiLi9pbnRlcm5hbC9faXNTdHJpbmcuanNcIjtcbmltcG9ydCB0b1N0cmluZyBmcm9tIFwiLi90b1N0cmluZy5qc1wiO1xuLyoqXG4gKiBSZXR1cm5zIHRoZSByZXN1bHQgb2YgY29uY2F0ZW5hdGluZyB0aGUgZ2l2ZW4gbGlzdHMgb3Igc3RyaW5ncy5cbiAqXG4gKiBOb3RlOiBgUi5jb25jYXRgIGV4cGVjdHMgYm90aCBhcmd1bWVudHMgdG8gYmUgb2YgdGhlIHNhbWUgdHlwZSxcbiAqIHVubGlrZSB0aGUgbmF0aXZlIGBBcnJheS5wcm90b3R5cGUuY29uY2F0YCBtZXRob2QuIEl0IHdpbGwgdGhyb3dcbiAqIGFuIGVycm9yIGlmIHlvdSBgY29uY2F0YCBhbiBBcnJheSB3aXRoIGEgbm9uLUFycmF5IHZhbHVlLlxuICpcbiAqIERpc3BhdGNoZXMgdG8gdGhlIGBjb25jYXRgIG1ldGhvZCBvZiB0aGUgZmlyc3QgYXJndW1lbnQsIGlmIHByZXNlbnQuXG4gKiBDYW4gYWxzbyBjb25jYXRlbmF0ZSB0d28gbWVtYmVycyBvZiBhIFtmYW50YXN5LWxhbmRcbiAqIGNvbXBhdGlibGUgc2VtaWdyb3VwXShodHRwczovL2dpdGh1Yi5jb20vZmFudGFzeWxhbmQvZmFudGFzeS1sYW5kI3NlbWlncm91cCkuXG4gKlxuICogQGZ1bmNcbiAqIEBtZW1iZXJPZiBSXG4gKiBAc2luY2UgdjAuMS4wXG4gKiBAY2F0ZWdvcnkgTGlzdFxuICogQHNpZyBbYV0gLT4gW2FdIC0+IFthXVxuICogQHNpZyBTdHJpbmcgLT4gU3RyaW5nIC0+IFN0cmluZ1xuICogQHBhcmFtIHtBcnJheXxTdHJpbmd9IGZpcnN0TGlzdCBUaGUgZmlyc3QgbGlzdFxuICogQHBhcmFtIHtBcnJheXxTdHJpbmd9IHNlY29uZExpc3QgVGhlIHNlY29uZCBsaXN0XG4gKiBAcmV0dXJuIHtBcnJheXxTdHJpbmd9IEEgbGlzdCBjb25zaXN0aW5nIG9mIHRoZSBlbGVtZW50cyBvZiBgZmlyc3RMaXN0YCBmb2xsb3dlZCBieSB0aGUgZWxlbWVudHMgb2ZcbiAqIGBzZWNvbmRMaXN0YC5cbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqICAgICAgUi5jb25jYXQoJ0FCQycsICdERUYnKTsgLy8gJ0FCQ0RFRidcbiAqICAgICAgUi5jb25jYXQoWzQsIDUsIDZdLCBbMSwgMiwgM10pOyAvLz0+IFs0LCA1LCA2LCAxLCAyLCAzXVxuICogICAgICBSLmNvbmNhdChbXSwgW10pOyAvLz0+IFtdXG4gKi9cblxudmFyIGNvbmNhdCA9XG4vKiNfX1BVUkVfXyovXG5fY3VycnkyKGZ1bmN0aW9uIGNvbmNhdChhLCBiKSB7XG4gIGlmIChfaXNBcnJheShhKSkge1xuICAgIGlmIChfaXNBcnJheShiKSkge1xuICAgICAgcmV0dXJuIGEuY29uY2F0KGIpO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBUeXBlRXJyb3IodG9TdHJpbmcoYikgKyAnIGlzIG5vdCBhbiBhcnJheScpO1xuICB9XG5cbiAgaWYgKF9pc1N0cmluZyhhKSkge1xuICAgIGlmIChfaXNTdHJpbmcoYikpIHtcbiAgICAgIHJldHVybiBhICsgYjtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKHRvU3RyaW5nKGIpICsgJyBpcyBub3QgYSBzdHJpbmcnKTtcbiAgfVxuXG4gIGlmIChhICE9IG51bGwgJiYgX2lzRnVuY3Rpb24oYVsnZmFudGFzeS1sYW5kL2NvbmNhdCddKSkge1xuICAgIHJldHVybiBhWydmYW50YXN5LWxhbmQvY29uY2F0J10oYik7XG4gIH1cblxuICBpZiAoYSAhPSBudWxsICYmIF9pc0Z1bmN0aW9uKGEuY29uY2F0KSkge1xuICAgIHJldHVybiBhLmNvbmNhdChiKTtcbiAgfVxuXG4gIHRocm93IG5ldyBUeXBlRXJyb3IodG9TdHJpbmcoYSkgKyAnIGRvZXMgbm90IGhhdmUgYSBtZXRob2QgbmFtZWQgXCJjb25jYXRcIiBvciBcImZhbnRhc3ktbGFuZC9jb25jYXRcIicpO1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IGNvbmNhdDsiLCJpbXBvcnQgX2NvbmNhdCBmcm9tIFwiLi9pbnRlcm5hbC9fY29uY2F0LmpzXCI7XG5pbXBvcnQgX2N1cnJ5MiBmcm9tIFwiLi9pbnRlcm5hbC9fY3VycnkyLmpzXCI7XG4vKipcbiAqIFJldHVybnMgYSBuZXcgbGlzdCBjb250YWluaW5nIHRoZSBjb250ZW50cyBvZiB0aGUgZ2l2ZW4gbGlzdCwgZm9sbG93ZWQgYnlcbiAqIHRoZSBnaXZlbiBlbGVtZW50LlxuICpcbiAqIEBmdW5jXG4gKiBAbWVtYmVyT2YgUlxuICogQHNpbmNlIHYwLjEuMFxuICogQGNhdGVnb3J5IExpc3RcbiAqIEBzaWcgYSAtPiBbYV0gLT4gW2FdXG4gKiBAcGFyYW0geyp9IGVsIFRoZSBlbGVtZW50IHRvIGFkZCB0byB0aGUgZW5kIG9mIHRoZSBuZXcgbGlzdC5cbiAqIEBwYXJhbSB7QXJyYXl9IGxpc3QgVGhlIGxpc3Qgb2YgZWxlbWVudHMgdG8gYWRkIGEgbmV3IGl0ZW0gdG8uXG4gKiAgICAgICAgbGlzdC5cbiAqIEByZXR1cm4ge0FycmF5fSBBIG5ldyBsaXN0IGNvbnRhaW5pbmcgdGhlIGVsZW1lbnRzIG9mIHRoZSBvbGQgbGlzdCBmb2xsb3dlZCBieSBgZWxgLlxuICogQHNlZSBSLnByZXBlbmRcbiAqIEBleGFtcGxlXG4gKlxuICogICAgICBSLmFwcGVuZCgndGVzdHMnLCBbJ3dyaXRlJywgJ21vcmUnXSk7IC8vPT4gWyd3cml0ZScsICdtb3JlJywgJ3Rlc3RzJ11cbiAqICAgICAgUi5hcHBlbmQoJ3Rlc3RzJywgW10pOyAvLz0+IFsndGVzdHMnXVxuICogICAgICBSLmFwcGVuZChbJ3Rlc3RzJ10sIFsnd3JpdGUnLCAnbW9yZSddKTsgLy89PiBbJ3dyaXRlJywgJ21vcmUnLCBbJ3Rlc3RzJ11dXG4gKi9cblxudmFyIGFwcGVuZCA9XG4vKiNfX1BVUkVfXyovXG5fY3VycnkyKGZ1bmN0aW9uIGFwcGVuZChlbCwgbGlzdCkge1xuICByZXR1cm4gX2NvbmNhdChsaXN0LCBbZWxdKTtcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBhcHBlbmQ7IiwiaW1wb3J0IHthcHBlbmQsIGNvbmNhdCwgcGlwZX0gZnJvbSBcInJhbWRhXCI7XG5cbmNvbnN0IHdpdGhOYW1lc3BhY2UgPSBjb25jYXQoJ1dQTUwtJylcblxuZXhwb3J0IGNvbnN0IGRpc3BhdGNoID0gKG5hbWUsIGRhdGEgPSB7fSkgPT4ge1xuXHRkb2N1bWVudC5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCh3aXRoTmFtZXNwYWNlKG5hbWUpLCB7ZGV0YWlsOiBkYXRhfSkpO1xufVxuXG5leHBvcnQgY29uc3Qgc3Vic2NyaWJlID0gbmFtZSA9PiB7XG5cdGxldCBmbnMgPSBbXTtcblxuXHRjb25zdCByZXN1bHQgPSB7XG5cdFx0dGhlbiggZm4gKSB7XG5cdFx0XHRmbnMgPSBhcHBlbmQoZm4sIGZucyk7XG5cdFx0XHRyZXR1cm4gdGhpcztcblx0XHR9LFxuXHR9XG5cdGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIod2l0aE5hbWVzcGFjZShuYW1lKSwgZSA9PiB7XG5cdFx0cGlwZSguLi5mbnMpKGUuZGV0YWlsKVxuXHR9KVxuXHRyZXR1cm4gcmVzdWx0O1xufVxuIiwiaW1wb3J0IFJlYWN0LCB7dXNlU3RhdGUsIHVzZUVmZmVjdH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgVG9vbHRpcCBmcm9tICdhbnRkL2xpYi90b29sdGlwJztcbmltcG9ydCAnYW50ZC9saWIvdG9vbHRpcC9zdHlsZS9pbmRleC5jc3MnO1xuaW1wb3J0IFBvcG92ZXIgZnJvbSAnYW50ZC9saWIvcG9wb3Zlcic7XG5pbXBvcnQgJ2FudGQvbGliL3BvcG92ZXIvc3R5bGUvaW5kZXguY3NzJztcbmltcG9ydCBFZGl0VHJhbnNsYXRpb25Qb3B1cCBmcm9tIFwiLi9FZGl0VHJhbnNsYXRpb25Qb3B1cFwiO1xuaW1wb3J0IHtzaG93U3VjY2Vzcywgc2hvd0Vycm9yfSBmcm9tIFwiLi9ub3RpZmljYXRpb25cIjtcbmltcG9ydCB7X18sIHNwcmludGZ9IGZyb20gXCJ3cG1sLWNvbW1vbi1qcy1zb3VyY2Uvc3JjL2kxOG5cIjtcbmltcG9ydCB7cGF0aCwgY29uZCwgYWx3YXlzLCBpZkVsc2UsIGlkZW50aXR5LCBwYXRoT3IsIHByb3AsIHByb3BPcn0gZnJvbSAncmFtZGEnO1xuaW1wb3J0IHtjcmVhdGVBamF4LCBidWlsZFBheWxvYWR9IGZyb20gXCJ3cG1sLWNvbW1vbi1qcy1zb3VyY2Uvc3JjL0FqYXhcIjtcbmltcG9ydCB7U3RvcmVQcm92aWRlciwgdXNlU3RvcmVTdGF0ZSwgdXNlU3RvcmVBY3Rpb25zfSBmcm9tICdlYXN5LXBlYXN5JztcbmltcG9ydCB7XG5cdGlzT3JpZ2luYWwsXG5cdGluQmFza2V0LFxuXHRpc1RyYW5zbGF0ZWQsXG5cdGlzV2FpdGluZ0ZvclRyYW5zbGF0b3IsXG5cdGlzSW5Qcm9ncmVzcyxcblx0bmVlZHNVcGRhdGVcbn0gZnJvbSAnLi4vdHJhbnNsYXRpb25TdGF0dXMnO1xuaW1wb3J0IHtzdG9yZX0gZnJvbSBcIi4uL3N0b3JlXCI7XG5cbmV4cG9ydCBkZWZhdWx0ICh7bGFuZ3VhZ2VzLCBzdHJpbmcsIGxhbmd1YWdlRGV0YWlscywgZW5kcG9pbnRzfSkgPT4ge1xuXG5cdGNvbnN0IHN0cmluZ1N0b3JlID0gc3RvcmUoe2xhbmd1YWdlcywgc3RyaW5nLCBsYW5ndWFnZURldGFpbHMsIGVuZHBvaW50c30pO1xuXG5cdHJldHVybiAoXG5cdFx0PFJlYWN0LkZyYWdtZW50PlxuXHRcdFx0e2xhbmd1YWdlcy5tYXAobGFuZyA9PiB7XG5cdFx0XHRcdHJldHVybiAoXG5cdFx0XHRcdFx0PHNwYW4ga2V5PXtsYW5nfT5cblx0XHRcdFx0XHQ8U3RvcmVQcm92aWRlciBzdG9yZT17c3RyaW5nU3RvcmV9PlxuXHRcdFx0XHRcdFx0PFN0YXR1c0ljb24gbGFuZz17bGFuZ30gbGFuZ3VhZ2VEZXRhaWxzPXtsYW5ndWFnZURldGFpbHN9Lz5cblx0XHRcdFx0XHQ8L1N0b3JlUHJvdmlkZXI+XG5cdFx0XHRcdDwvc3Bhbj5cblx0XHRcdFx0KTtcblx0XHRcdH0pfVxuXHRcdDwvUmVhY3QuRnJhZ21lbnQ+XG5cdCk7XG59O1xuXG5jb25zdCBJY29uID0gKHt0ZXh0LCBjbGFzc05hbWUsIGxhbmcsIG9uQ2xpY2t9KSA9PiB7XG5cdGNvbnN0IGxhbmd1YWdlRGV0YWlscyA9IHVzZVN0b3JlU3RhdGUocHJvcCgnbGFuZ3VhZ2VEZXRhaWxzJykpO1xuXHRjb25zdCBzdHJpbmcgPSB1c2VTdG9yZVN0YXRlKHByb3AoJ3N0cmluZycpKTtcblxuXHRjb25zdCBsYW5ndWFnZU5hbWUgPSBwYXRoKFtsYW5nLCAnZGlzcGxheV9uYW1lJ10sIGxhbmd1YWdlRGV0YWlscyk7XG5cdGNvbnN0IHRvb2x0aXBUZXh0ID0gc3ByaW50Zih0ZXh0LCBsYW5ndWFnZU5hbWUpO1xuXHRyZXR1cm4gKFxuXHRcdDxUb29sdGlwIHBsYWNlbWVudD17XCJ0b3BcIn0gdGl0bGU9e3Rvb2x0aXBUZXh0fT5cblx0XHRcdDxzcGFuPlxuXHRcdFx0XHQ8YSBocmVmPVwiI1wiIG9uQ2xpY2s9eygpID0+IGZhbHNlfT5cblx0XHRcdFx0XHQ8aSBpZD17YCR7c3RyaW5nLnN0cmluZ19pZH0tJHtsYW5nfWB9IGNsYXNzTmFtZT17Y2xhc3NOYW1lfSBvbkNsaWNrPXtvbkNsaWNrfS8+XG5cdFx0XHRcdDwvYT5cblx0XHRcdDwvc3Bhbj5cblx0XHQ8L1Rvb2x0aXA+XG5cdCk7XG59O1xuXG5cbmNvbnN0IE9yaWdpbmFsSWNvbiA9ICh7bGFuZ30pID0+XG5cdDxJY29uXG5cdFx0dGV4dD17X18oXCJPcmlnaW5hbCBsYW5ndWFnZSAlc1wiLCAnd3BtbC1zdHJpbmctdHJhbnNsYXRpb24nKX1cblx0XHRjbGFzc05hbWU9eydvdGdzLWljby1vcmlnaW5hbCd9XG5cdFx0bGFuZz17bGFuZ31cblx0Lz5cblxuY29uc3QgV2FpdEljb24gPSAoe2xhbmd9KSA9PlxuXHQ8SWNvblxuXHRcdHRleHQ9e19fKFwiV2FpdGluZyBmb3IgdHJhbnNsYXRvciB0byAlc1wiLCAnd3BtbC1zdHJpbmctdHJhbnNsYXRpb24nKX1cblx0XHRjbGFzc05hbWU9eydvdGdzLWljby13YWl0aW5nJ31cblx0XHRsYW5nPXtsYW5nfVxuXHQvPlxuXG5jb25zdCBJblByb2dyZXNzSWNvbiA9ICh7bGFuZ30pID0+XG5cdDxJY29uXG5cdFx0dGV4dD17X18oXCJUcmFuc2xhdGlvbiBpbiBwcm9ncmVzcyB0byAlc1wiLCAnd3BtbC1zdHJpbmctdHJhbnNsYXRpb24nKX1cblx0XHRjbGFzc05hbWU9eydvdGdzLWljby1pbi1wcm9ncmVzcyd9XG5cdFx0bGFuZz17bGFuZ31cblx0Lz5cblxuY29uc3QgQmFza2V0SWNvbiA9ICh7bGFuZ30pID0+XG5cdDxJY29uXG5cdFx0dGV4dD17X18oXCJJbiBiYXNrZXQgZm9yIHRyYW5zbGF0aW9uIHRvICVzXCIsICd3cG1sLXN0cmluZy10cmFuc2xhdGlvbicpfVxuXHRcdGNsYXNzTmFtZT17J290Z3MtaWNvLWJhc2tldCd9XG5cdFx0bGFuZz17bGFuZ31cblx0Lz5cblxuY29uc3QgSWNvbldpdGhFZGl0b3IgPSAoe2xhbmcsIHRleHQsIGNsYXNzTmFtZSwgZGVmYXVsdFRyYW5zbGF0aW9ufSkgPT4ge1xuXHRjb25zdCBzdHJpbmcgPSB1c2VTdG9yZVN0YXRlKHByb3AoJ3N0cmluZycpKTtcblx0Y29uc3QgZW5kcG9pbnRzID0gdXNlU3RvcmVTdGF0ZShwcm9wKCdlbmRwb2ludHMnKSk7XG5cdGNvbnN0IHVwZGF0ZVRyYW5zbGF0aW9uID0gdXNlU3RvcmVBY3Rpb25zKHByb3AoJ3VwZGF0ZVRyYW5zbGF0aW9uJykpO1xuXHRjb25zdCBbdHJhbnNsYXRpb24sIHNldFRyYW5zbGF0aW9uXSA9IHVzZVN0YXRlKG51bGwpO1xuXHRjb25zdCB2aXNpYmxlID0gdXNlU3RvcmVTdGF0ZShwcm9wKCd2aXNpYmxlJykpO1xuXHRjb25zdCBzZXRWaXNpYmxlID0gdXNlU3RvcmVBY3Rpb25zKHByb3AoJ3NldFZpc2libGUnKSk7XG5cblx0Y29uc3QgYWpheCA9IGNyZWF0ZUFqYXgoKTtcblxuXHRjb25zdCB0aHJvd0Vycm9yID0gKCkgPT4ge1xuXHRcdHRocm93IG5ldyBFcnJvcignZXJyb3InKTtcblx0fTtcblx0Y29uc3QgdmFsaWRhdGVSZXNwb25zZSA9IGlmRWxzZShwYXRoT3IoZmFsc2UsIFsnZGF0YScsICdzdWNjZXNzJ10pLCBpZGVudGl0eSwgdGhyb3dFcnJvcik7XG5cblx0Y29uc3QgZ2V0UGF5bG9hZCA9ICh0cmFuc2xhdGlvbikgPT4ge1xuXHRcdHJldHVybiB7XG5cdFx0XHRpZDogc3RyaW5nLnN0cmluZ19pZCxcblx0XHRcdHRyYW5zbGF0aW9uLFxuXHRcdFx0bGFuZ1xuXHRcdH07XG5cdH07XG5cblx0Y29uc3Qgc2F2ZVRyYW5zbGF0aW9uID0gdHJhbnNsYXRpb24gPT4ge1xuXHRcdGFqYXguZG9GZXRjaChidWlsZFBheWxvYWQoXG5cdFx0XHRlbmRwb2ludHMuc2F2ZVRyYW5zbGF0aW9uLm5vbmNlLFxuXHRcdFx0ZW5kcG9pbnRzLnNhdmVUcmFuc2xhdGlvbi5lbmRwb2ludCxcblx0XHRcdGdldFBheWxvYWQodHJhbnNsYXRpb24pKVxuXHRcdCkudGhlbih2YWxpZGF0ZVJlc3BvbnNlKVxuXHRcdFx0LnRoZW4oc2hvd1N1Y2Nlc3MpXG5cdFx0XHQuY2F0Y2goc2hvd0Vycm9yKTtcblx0fTtcblxuXHRjb25zdCBpc1Zpc2libGUgPSBwcm9wT3IoZmFsc2UsIGxhbmcsIHZpc2libGUpO1xuXG5cdGNvbnN0IG9uVmlzaWJsZUNoYW5nZSA9IHZpc2libGUgPT4ge1xuXHRcdGlmICghdmlzaWJsZSAmJiB0cmFuc2xhdGlvbikge1xuXHRcdFx0dXBkYXRlVHJhbnNsYXRpb24oe2xhbmcsIHRyYW5zbGF0aW9ufSk7XG5cdFx0XHRzZXRUaW1lb3V0KCgpID0+IHNhdmVUcmFuc2xhdGlvbih0cmFuc2xhdGlvbiksIDIwMCk7XG5cdFx0XHRzZXRUcmFuc2xhdGlvbihudWxsKTtcblx0XHR9XG5cdFx0c2V0VmlzaWJsZSh7W2xhbmddOiB2aXNpYmxlfSlcblx0fTtcblxuXHR1c2VFZmZlY3QoKCkgPT4ge1xuXHRcdGlmIChpc1Zpc2libGUgJiYgZGVmYXVsdFRyYW5zbGF0aW9uICYmIHRyYW5zbGF0aW9uICE9PSBkZWZhdWx0VHJhbnNsYXRpb24pIHtcblx0XHRcdHNldFRyYW5zbGF0aW9uKGRlZmF1bHRUcmFuc2xhdGlvbik7XG5cdFx0fVxuXHRcdG9uVmlzaWJsZUNoYW5nZShpc1Zpc2libGUpO1xuXHR9LCBbdmlzaWJsZV0pO1xuXG5cdGNvbnN0IGNvbnRlbnQgPSA8RWRpdFRyYW5zbGF0aW9uUG9wdXBcblx0XHRsYW5nPXtsYW5nfVxuXHRcdG9uTmV3VHJhbnNsYXRpb249e3NldFRyYW5zbGF0aW9ufVxuXHQvPjtcblxuXHRyZXR1cm4gKFxuXHRcdDxQb3BvdmVyXG5cdFx0XHRhbGlnbj17e29mZnNldDogWzE2LCAwXX19XG5cdFx0XHRwbGFjZW1lbnQ9XCJib3R0b21SaWdodFwiXG5cdFx0XHRjb250ZW50PXtjb250ZW50fVxuXHRcdFx0dHJpZ2dlcj1cImNsaWNrXCJcblx0XHRcdHZpc2libGU9e2lzVmlzaWJsZX1cblx0XHRcdG9uVmlzaWJsZUNoYW5nZT17b25WaXNpYmxlQ2hhbmdlfVxuXHRcdFx0ZGVzdHJveVRvb2x0aXBPbkhpZGU9e3RydWV9XG5cdFx0XHR6SW5kZXg9ezk5OTl9XG5cdFx0PlxuXHRcdFx0PEljb25cblx0XHRcdFx0dGV4dD17dGV4dH1cblx0XHRcdFx0Y2xhc3NOYW1lPXtjbGFzc05hbWV9XG5cdFx0XHRcdGxhbmc9e2xhbmd9XG5cdFx0XHQvPlxuXHRcdDwvUG9wb3Zlcj5cblx0KTtcbn07XG5cbmNvbnN0IEFkZEljb24gPSAoe2xhbmd9KSA9PlxuXHQ8SWNvbldpdGhFZGl0b3Jcblx0XHRsYW5nPXtsYW5nfVxuXHRcdHRleHQ9e19fKFwiQWRkICVzIHRyYW5zbGF0aW9uXCIsICd3cG1sLXN0cmluZy10cmFuc2xhdGlvbicpfVxuXHRcdGNsYXNzTmFtZT17J290Z3MtaWNvLWFkZCd9XG5cdFx0ZGVmYXVsdFRyYW5zbGF0aW9uPXtudWxsfVxuXHQvPlxuXG5jb25zdCBFZGl0SWNvbiA9ICh7bGFuZ30pID0+XG5cdDxJY29uV2l0aEVkaXRvclxuXHRcdGxhbmc9e2xhbmd9XG5cdFx0dGV4dD17X18oXCJFZGl0ICVzIHRyYW5zbGF0aW9uXCIsICd3cG1sLXN0cmluZy10cmFuc2xhdGlvbicpfVxuXHRcdGNsYXNzTmFtZT17J290Z3MtaWNvLWVkaXQnfVxuXHRcdGRlZmF1bHRUcmFuc2xhdGlvbj17bnVsbH1cblx0Lz5cblxuY29uc3QgTmVlZHNVcGRhdGVJY29uID0gKHtsYW5nfSkgPT4ge1xuXHRjb25zdCB0cmFuc2xhdGlvbiA9IHVzZVN0b3JlU3RhdGUocGF0aChbJ3N0cmluZycsICd0cmFuc2xhdGlvbnMnLCBsYW5nLCAndmFsdWUnXSkpO1xuXG5cdHJldHVybiAoXG5cdFx0PEljb25XaXRoRWRpdG9yXG5cdFx0XHRsYW5nPXtsYW5nfVxuXHRcdFx0dGV4dD17X18oXCJFZGl0ICVzIHRyYW5zbGF0aW9uXCIsICd3cG1sLXN0cmluZy10cmFuc2xhdGlvbicpfVxuXHRcdFx0Y2xhc3NOYW1lPXsnb3Rncy1pY28tbmVlZHMtdXBkYXRlJ31cblx0XHRcdGRlZmF1bHRUcmFuc2xhdGlvbj17dHJhbnNsYXRpb259XG5cdFx0Lz5cblx0KTtcbn07XG5cbmNvbnN0IFN0YXR1c0ljb24gPSAoe2xhbmd9KSA9PiB7XG5cdGNvbnN0IHN0cmluZyA9IHVzZVN0b3JlU3RhdGUocHJvcCgnc3RyaW5nJykpO1xuXG5cdGNvbnN0IG90aGVyV2lzZSA9IGFsd2F5cyh0cnVlKTtcblxuXHRjb25zdCByZW5kZXIgPSBjb25kKFtcblx0XHRbaXNPcmlnaW5hbChsYW5nKSwgKCkgPT4gPE9yaWdpbmFsSWNvbiBsYW5nPXtsYW5nfS8+XSxcblx0XHRbaW5CYXNrZXQobGFuZyksICgpID0+IDxCYXNrZXRJY29uIGxhbmc9e2xhbmd9Lz5dLFxuXHRcdFtpc1RyYW5zbGF0ZWQobGFuZyksICgpID0+IDxFZGl0SWNvbiBsYW5nPXtsYW5nfS8+XSxcblx0XHRbbmVlZHNVcGRhdGUobGFuZyksICgpID0+IDxOZWVkc1VwZGF0ZUljb24gbGFuZz17bGFuZ30vPl0sXG5cdFx0W2lzV2FpdGluZ0ZvclRyYW5zbGF0b3IobGFuZyksICgpID0+IDxXYWl0SWNvbiBsYW5nPXtsYW5nfS8+XSxcblx0XHRbaXNJblByb2dyZXNzKGxhbmcpLCAoKSA9PiA8SW5Qcm9ncmVzc0ljb24gbGFuZz17bGFuZ30vPl0sXG5cdFx0W290aGVyV2lzZSwgKCkgPT4gPEFkZEljb24gbGFuZz17bGFuZ30vPl1cblx0XSk7XG5cdHJldHVybiByZW5kZXIoc3RyaW5nKTtcbn07XG5cbiIsImltcG9ydCB7Y3JlYXRlU3RvcmUsIGFjdGlvbn0gZnJvbSAnZWFzeS1wZWFzeSc7XG5pbXBvcnQge3N1YnNjcmliZX0gZnJvbSBcIndwbWwtY29tbW9uLWpzLXNvdXJjZS9zcmMvZXZlbnRcIjtcbmltcG9ydCB7cHJvcH0gZnJvbSBcInJhbWRhXCI7XG5cbmV4cG9ydCBjb25zdCBzdG9yZSA9ICh7bGFuZ3VhZ2VzLCBzdHJpbmcsIGxhbmd1YWdlRGV0YWlscywgZW5kcG9pbnRzfSkgPT4ge1xuXHRjb25zdCB0aGVTdG9yZSA9IGNyZWF0ZVN0b3JlKHtcblxuXHRcdHN0cmluZyxcblx0XHR1cGRhdGVUcmFuc2xhdGlvbjogYWN0aW9uKChzdGF0ZSwgcGF5bG9hZCkgPT4ge1xuXHRcdFx0aWYgKHR5cGVvZiBzdGF0ZS5zdHJpbmcudHJhbnNsYXRpb25zID09PSAndW5kZWZpbmVkJykge1xuXHRcdFx0XHRzdGF0ZS5zdHJpbmcudHJhbnNsYXRpb25zID0ge307XG5cdFx0XHR9XG5cdFx0XHRzdGF0ZS5zdHJpbmcudHJhbnNsYXRpb25zID0gT2JqZWN0LmFzc2lnbihzdGF0ZS5zdHJpbmcudHJhbnNsYXRpb25zLCB7XG5cdFx0XHRcdFtwYXlsb2FkLmxhbmddOiB7XG5cdFx0XHRcdFx0J3ZhbHVlJzogcGF5bG9hZC50cmFuc2xhdGlvbixcblx0XHRcdFx0XHQnc3RhdHVzJzogJzEwJ1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9KSxcblxuXHRcdGVuZHBvaW50cyxcblx0XHRsYW5ndWFnZURldGFpbHMsXG5cdFx0bGFuZ3VhZ2VzLFxuXG5cdFx0dmlzaWJsZToge30sXG5cdFx0c2V0VmlzaWJsZTogYWN0aW9uKChzdGF0ZSwgcGF5bG9hZCkgPT4ge1xuXHRcdFx0c3RhdGUudmlzaWJsZSA9IE9iamVjdC5hc3NpZ24oc3RhdGUudmlzaWJsZSwgcGF5bG9hZCk7XG5cdFx0fSksXG5cblx0XHRmb2N1czoge30sXG5cdFx0c2V0Rm9jdXM6IGFjdGlvbigoc3RhdGUsIHBheWxvYWQpID0+IHtcblx0XHRcdHN0YXRlLmZvY3VzID0gT2JqZWN0LmFzc2lnbihzdGF0ZS5mb2N1cywgcGF5bG9hZCk7XG5cdFx0fSlcblx0fSk7XG5cblx0c3Vic2NyaWJlKCdzdHJpbmctY29tcGxldGUtJyArIHN0cmluZy5zdHJpbmdfaWQgKVxuXHRcdC50aGVuKHByb3AoJ3N0cmluZycpKVxuXHRcdC50aGVuKHRoZVN0b3JlLmdldEFjdGlvbnMoKS51cGRhdGVUcmFuc2xhdGlvbik7XG5cblx0cmV0dXJuIHRoZVN0b3JlO1xufTtcbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBSZWFjdERPTSBmcm9tIFwicmVhY3QtZG9tXCI7XG5pbXBvcnQgc2FmZSBmcm9tIFwiY3JvY2tzL01heWJlL3NhZmVcIjtcbmltcG9ydCB7bWFwLCBwaXBlLCBwYXRoLCB1bmlxLCBwbHVjaywgZXF1YWxzLCByZWplY3QsIGhlYWQsIHByb3B9IGZyb20gXCJyYW1kYVwiO1xuaW1wb3J0IExhbmd1YWdlc0NlbGwgZnJvbSBcIi4vY29tcG9uZW50cy9MYW5ndWFnZXNDZWxsXCI7XG5pbXBvcnQgJy4uLy4uL3Njc3MvbWFpbi11aS9zdHlsZXMuc2Nzcyc7XG5pbXBvcnQge0FsbEh0bWxFbnRpdGllc30gZnJvbSAnaHRtbC1lbnRpdGllcyc7XG5pbXBvcnQge3N1YnNjcmliZSxkaXNwYXRjaH0gZnJvbSAnd3BtbC1jb21tb24tanMtc291cmNlL3NyYy9ldmVudCc7XG5pbXBvcnQge2NhbGxFbmRwb2ludH0gZnJvbSBcIndwbWwtY29tbW9uLWpzLXNvdXJjZS9zcmMvQWpheFwiO1xuXG5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgKCkgPT4ge1xuXG5cdC8vIGlzRGVmaW5lZCA6OiB4IOKGkiBib29sXG5cdGNvbnN0IGlzRGVmaW5lZCA9IHggPT4gdHlwZW9mIHggIT09ICd1bmRlZmluZWQnO1xuXG5cdC8vIGZpbmQgOjogc3RyaW5nIOKGkiBIVE1MRWxlbWVudHxudWxsXG5cdGNvbnN0IGZpbmQgPSBzZWxlY3RvciA9PiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHNlbGVjdG9yKTtcblxuXHQvLyBmaW5kIDo6IHN0cmluZyDihpIgW0hUTUxFbGVtZW50XVxuXHRjb25zdCBmaW5kQWxsID0gc2VsZWN0b3IgPT4gWy4uLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3IpXTtcblxuXHQvLyBzYWZlRmluZCA6OiBzdHJpbmcg4oaSIEp1c3QoSFRNTEVsZW1lbnQpfE5vdGhpbmcoKVxuXHRjb25zdCBzYWZlRmluZCA9IHBpcGUoZmluZCwgc2FmZShpc0RlZmluZWQpKTtcblxuXHRsZXQgbGFuZ3MgPSBzYWZlRmluZCgnLndwbWwtY29sLWxhbmd1YWdlcycpXG5cdFx0Lm1hcChwYXRoKFsnZGF0YXNldCcsICdsYW5ncyddKSlcblx0XHQubWFwKEpTT04ucGFyc2UpXG5cdFx0Lm9wdGlvbihbXSk7XG5cblx0Y29uc3QgZW50aXRpZXMgPSBuZXcgQWxsSHRtbEVudGl0aWVzKCk7XG5cblx0Ly8gZ2V0U3RyaW5nIDo6IEhUTUxFbGVtZW50IOKGkiBqc29uIG9iamVjdFxuXHRjb25zdCBnZXRTdHJpbmcgPSBlbGVtZW50ID0+IHtcblx0XHRjb25zdCBzdHJpbmcgPSBKU09OLnBhcnNlKGVsZW1lbnQucGFyZW50Tm9kZS5kYXRhc2V0LnN0cmluZyk7XG5cdFx0c3RyaW5nLnZhbHVlID0gZW50aXRpZXMuZGVjb2RlKHN0cmluZy52YWx1ZSk7XG5cblx0XHRyZXR1cm4gc3RyaW5nO1xuXHR9O1xuXG5cdC8vIGFkZFN0cmluZ0RhdGEgOjogSFRNTEVsZW1lbnQg4oaSIG9iamVjdFxuXHRjb25zdCBhZGRTdHJpbmdEYXRhID0gZWxlbWVudCA9PiAoe2VsOiBlbGVtZW50LCBzdHJpbmc6IGdldFN0cmluZyhlbGVtZW50KX0pO1xuXG5cdGNvbnN0IHN0YXR1c0VsZW1lbnRzID0gZmluZEFsbCgnLmxhbmd1YWdlcy1zdGF0dXMnKVxuXHRcdC5tYXAoYWRkU3RyaW5nRGF0YSk7XG5cblx0Ly8gb2JqZWN0IOKGkiBbbGFuZyBjb2Rlc11cblx0Y29uc3Qgb3JpZ2luYWxMYW5ndWFnZXMgPSBwaXBlKFxuXHRcdHBsdWNrKCdzdHJpbmcnKSxcblx0XHRwbHVjaygnc3RyaW5nX2xhbmd1YWdlJyksXG5cdFx0dW5pcVxuXHQpKHN0YXR1c0VsZW1lbnRzKTtcblxuXHRjb25zdCBmaW5kT3JpZ2luYWxGbGFncyA9IGxhbmcgPT5cblx0XHRmaW5kQWxsKFwiLndwbWwtY29sLWxhbmd1YWdlcyA+IHNwYW5bZGF0YS1jb2RlPSdcIiArIGxhbmcgKyBcIiddXCIpO1xuXG5cdGlmIChvcmlnaW5hbExhbmd1YWdlcy5sZW5ndGggPT09IDEpIHtcblx0XHRsYW5ncyA9IHJlamVjdChlcXVhbHMob3JpZ2luYWxMYW5ndWFnZXNbMF0pLCBsYW5ncyk7XG5cdFx0ZmluZE9yaWdpbmFsRmxhZ3Mob3JpZ2luYWxMYW5ndWFnZXNbMF0pLm1hcChlID0+IGUucmVtb3ZlKCkpO1xuXHR9XG5cblx0c3Vic2NyaWJlKCdqb2JzLWRvd25sb2FkZWQnKS50aGVuKGFzeW5jICgpID0+IHtcblx0XHRjb25zdCBzdHJpbmdzID0gc3RhdHVzRWxlbWVudHMubWFwKHBhdGgoWydzdHJpbmcnLCAnc3RyaW5nX2lkJ10pKTtcblx0XHRjb25zdCB7ZGF0YToge3N1Y2Nlc3MsIGRhdGF9fSA9IGF3YWl0IGNhbGxFbmRwb2ludCh3cG1sX3N0X21haW5fdWkuZW5kcG9pbnRzLmZldGNoU3RyaW5ncywge3N0cmluZ3N9ICk7XG5cdFx0aWYgKHN1Y2Nlc3MgJiYgZGF0YSkge1xuXHRcdFx0ZGF0YS5mb3JFYWNoKHN0cmluZz0+e1xuXHRcdFx0XHRkaXNwYXRjaCgnc3RyaW5nLWNvbXBsZXRlLScgKyBzdHJpbmcuc3RyaW5nX2lkLCB7c3RyaW5nfSk7XG5cdFx0XHR9KVxuXHRcdH1cblx0fSk7XG5cblx0c3RhdHVzRWxlbWVudHMuZm9yRWFjaChlbGVtZW50ID0+IHtcblx0XHRSZWFjdERPTS5yZW5kZXIoXG5cdFx0XHQ8TGFuZ3VhZ2VzQ2VsbFxuXHRcdFx0XHRsYW5ndWFnZXM9e2xhbmdzfVxuXHRcdFx0XHRzdHJpbmc9e2VsZW1lbnQuc3RyaW5nfVxuXHRcdFx0XHRsYW5ndWFnZURldGFpbHM9e3dwbWxfc3RfbWFpbl91aS5sYW5ndWFnZURldGFpbHN9XG5cdFx0XHRcdGVuZHBvaW50cz17d3BtbF9zdF9tYWluX3VpLmVuZHBvaW50c31cblx0XHRcdC8+LFxuXHRcdFx0ZWxlbWVudC5lbFxuXHRcdCk7XG5cdH0pO1xuXG59KTtcblxuIiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY29udGFpbnMocm9vdCwgbikge1xuICB2YXIgbm9kZSA9IG47XG5cbiAgd2hpbGUgKG5vZGUpIHtcbiAgICBpZiAobm9kZSA9PT0gcm9vdCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgbm9kZSA9IG5vZGUucGFyZW50Tm9kZTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn0iLCJpbXBvcnQgYWRkRE9NRXZlbnRMaXN0ZW5lciBmcm9tICdhZGQtZG9tLWV2ZW50LWxpc3RlbmVyJztcbmltcG9ydCBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gYWRkRXZlbnRMaXN0ZW5lcldyYXAodGFyZ2V0LCBldmVudFR5cGUsIGNiLCBvcHRpb24pIHtcbiAgLyogZXNsaW50IGNhbWVsY2FzZTogMiAqL1xuICB2YXIgY2FsbGJhY2sgPSBSZWFjdERPTS51bnN0YWJsZV9iYXRjaGVkVXBkYXRlcyA/IGZ1bmN0aW9uIHJ1bihlKSB7XG4gICAgUmVhY3RET00udW5zdGFibGVfYmF0Y2hlZFVwZGF0ZXMoY2IsIGUpO1xuICB9IDogY2I7XG4gIHJldHVybiBhZGRET01FdmVudExpc3RlbmVyKHRhcmdldCwgZXZlbnRUeXBlLCBjYWxsYmFjaywgb3B0aW9uKTtcbn0iLCJmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyBcIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mXCI7IGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIHR5cGVvZiBvYmo7IH07IH0gZWxzZSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajsgfTsgfSByZXR1cm4gX3R5cGVvZihvYmopOyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH1cblxuZnVuY3Rpb24gX2NyZWF0ZUNsYXNzKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIF9zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcyk7IH1cblxuZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgX3NldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IGZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7IG8uX19wcm90b19fID0gcDsgcmV0dXJuIG87IH07IHJldHVybiBfc2V0UHJvdG90eXBlT2YobywgcCk7IH1cblxuZnVuY3Rpb24gX2NyZWF0ZVN1cGVyKERlcml2ZWQpIHsgdmFyIGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QgPSBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCk7IHJldHVybiBmdW5jdGlvbiBfY3JlYXRlU3VwZXJJbnRlcm5hbCgpIHsgdmFyIFN1cGVyID0gX2dldFByb3RvdHlwZU9mKERlcml2ZWQpLCByZXN1bHQ7IGlmIChoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KSB7IHZhciBOZXdUYXJnZXQgPSBfZ2V0UHJvdG90eXBlT2YodGhpcykuY29uc3RydWN0b3I7IHJlc3VsdCA9IFJlZmxlY3QuY29uc3RydWN0KFN1cGVyLCBhcmd1bWVudHMsIE5ld1RhcmdldCk7IH0gZWxzZSB7IHJlc3VsdCA9IFN1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH0gcmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIHJlc3VsdCk7IH07IH1cblxuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkgeyBpZiAoY2FsbCAmJiAoX3R5cGVvZihjYWxsKSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSkgeyByZXR1cm4gY2FsbDsgfSByZXR1cm4gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKTsgfVxuXG5mdW5jdGlvbiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpIHsgaWYgKHNlbGYgPT09IHZvaWQgMCkgeyB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7IH0gcmV0dXJuIHNlbGY7IH1cblxuZnVuY3Rpb24gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpIHsgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcInVuZGVmaW5lZFwiIHx8ICFSZWZsZWN0LmNvbnN0cnVjdCkgcmV0dXJuIGZhbHNlOyBpZiAoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSkgcmV0dXJuIGZhbHNlOyBpZiAodHlwZW9mIFByb3h5ID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiB0cnVlOyB0cnkgeyBEYXRlLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFJlZmxlY3QuY29uc3RydWN0KERhdGUsIFtdLCBmdW5jdGlvbiAoKSB7fSkpOyByZXR1cm4gdHJ1ZTsgfSBjYXRjaCAoZSkgeyByZXR1cm4gZmFsc2U7IH0gfVxuXG5mdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyBfZ2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3QuZ2V0UHJvdG90eXBlT2YgOiBmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyByZXR1cm4gby5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKG8pOyB9OyByZXR1cm4gX2dldFByb3RvdHlwZU9mKG8pOyB9XG5cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5cbnZhciBDb250YWluZXJSZW5kZXIgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgX2luaGVyaXRzKENvbnRhaW5lclJlbmRlciwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgdmFyIF9zdXBlciA9IF9jcmVhdGVTdXBlcihDb250YWluZXJSZW5kZXIpO1xuXG4gIGZ1bmN0aW9uIENvbnRhaW5lclJlbmRlcigpIHtcbiAgICB2YXIgX3RoaXM7XG5cbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgQ29udGFpbmVyUmVuZGVyKTtcblxuICAgIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4pLCBfa2V5ID0gMDsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgICAgYXJnc1tfa2V5XSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgICB9XG5cbiAgICBfdGhpcyA9IF9zdXBlci5jYWxsLmFwcGx5KF9zdXBlciwgW3RoaXNdLmNvbmNhdChhcmdzKSk7XG5cbiAgICBfdGhpcy5yZW1vdmVDb250YWluZXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBpZiAoX3RoaXMuY29udGFpbmVyKSB7XG4gICAgICAgIFJlYWN0RE9NLnVubW91bnRDb21wb25lbnRBdE5vZGUoX3RoaXMuY29udGFpbmVyKTtcblxuICAgICAgICBfdGhpcy5jb250YWluZXIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChfdGhpcy5jb250YWluZXIpO1xuXG4gICAgICAgIF90aGlzLmNvbnRhaW5lciA9IG51bGw7XG4gICAgICB9XG4gICAgfTtcblxuICAgIF90aGlzLnJlbmRlckNvbXBvbmVudCA9IGZ1bmN0aW9uIChwcm9wcywgcmVhZHkpIHtcbiAgICAgIHZhciBfdGhpcyRwcm9wcyA9IF90aGlzLnByb3BzLFxuICAgICAgICAgIHZpc2libGUgPSBfdGhpcyRwcm9wcy52aXNpYmxlLFxuICAgICAgICAgIGdldENvbXBvbmVudCA9IF90aGlzJHByb3BzLmdldENvbXBvbmVudCxcbiAgICAgICAgICBmb3JjZVJlbmRlciA9IF90aGlzJHByb3BzLmZvcmNlUmVuZGVyLFxuICAgICAgICAgIGdldENvbnRhaW5lciA9IF90aGlzJHByb3BzLmdldENvbnRhaW5lcixcbiAgICAgICAgICBwYXJlbnQgPSBfdGhpcyRwcm9wcy5wYXJlbnQ7XG5cbiAgICAgIGlmICh2aXNpYmxlIHx8IHBhcmVudC5fY29tcG9uZW50IHx8IGZvcmNlUmVuZGVyKSB7XG4gICAgICAgIGlmICghX3RoaXMuY29udGFpbmVyKSB7XG4gICAgICAgICAgX3RoaXMuY29udGFpbmVyID0gZ2V0Q29udGFpbmVyKCk7XG4gICAgICAgIH1cblxuICAgICAgICBSZWFjdERPTS51bnN0YWJsZV9yZW5kZXJTdWJ0cmVlSW50b0NvbnRhaW5lcihwYXJlbnQsIGdldENvbXBvbmVudChwcm9wcyksIF90aGlzLmNvbnRhaW5lciwgZnVuY3Rpb24gY2FsbGJhY2soKSB7XG4gICAgICAgICAgaWYgKHJlYWR5KSB7XG4gICAgICAgICAgICByZWFkeS5jYWxsKHRoaXMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHJldHVybiBfdGhpcztcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhDb250YWluZXJSZW5kZXIsIFt7XG4gICAga2V5OiBcImNvbXBvbmVudERpZE1vdW50XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgaWYgKHRoaXMucHJvcHMuYXV0b01vdW50KSB7XG4gICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50KCk7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImNvbXBvbmVudERpZFVwZGF0ZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnREaWRVcGRhdGUoKSB7XG4gICAgICBpZiAodGhpcy5wcm9wcy5hdXRvTW91bnQpIHtcbiAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnQoKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiY29tcG9uZW50V2lsbFVubW91bnRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICBpZiAodGhpcy5wcm9wcy5hdXRvRGVzdHJveSkge1xuICAgICAgICB0aGlzLnJlbW92ZUNvbnRhaW5lcigpO1xuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJyZW5kZXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMuY2hpbGRyZW4oe1xuICAgICAgICByZW5kZXJDb21wb25lbnQ6IHRoaXMucmVuZGVyQ29tcG9uZW50LFxuICAgICAgICByZW1vdmVDb250YWluZXI6IHRoaXMucmVtb3ZlQ29udGFpbmVyXG4gICAgICB9KTtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gQ29udGFpbmVyUmVuZGVyO1xufShSZWFjdC5Db21wb25lbnQpO1xuXG5Db250YWluZXJSZW5kZXIucHJvcFR5cGVzID0ge1xuICBhdXRvTW91bnQ6IFByb3BUeXBlcy5ib29sLFxuICBhdXRvRGVzdHJveTogUHJvcFR5cGVzLmJvb2wsXG4gIHZpc2libGU6IFByb3BUeXBlcy5ib29sLFxuICBmb3JjZVJlbmRlcjogUHJvcFR5cGVzLmJvb2wsXG4gIHBhcmVudDogUHJvcFR5cGVzLmFueSxcbiAgZ2V0Q29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBnZXRDb250YWluZXI6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkXG59O1xuQ29udGFpbmVyUmVuZGVyLmRlZmF1bHRQcm9wcyA9IHtcbiAgYXV0b01vdW50OiB0cnVlLFxuICBhdXRvRGVzdHJveTogdHJ1ZSxcbiAgZm9yY2VSZW5kZXI6IGZhbHNlXG59O1xuZXhwb3J0IHsgQ29udGFpbmVyUmVuZGVyIGFzIGRlZmF1bHQgfTsiLCJmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyBcIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mXCI7IGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIHR5cGVvZiBvYmo7IH07IH0gZWxzZSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajsgfTsgfSByZXR1cm4gX3R5cGVvZihvYmopOyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH1cblxuZnVuY3Rpb24gX2NyZWF0ZUNsYXNzKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIF9zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcyk7IH1cblxuZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgX3NldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IGZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7IG8uX19wcm90b19fID0gcDsgcmV0dXJuIG87IH07IHJldHVybiBfc2V0UHJvdG90eXBlT2YobywgcCk7IH1cblxuZnVuY3Rpb24gX2NyZWF0ZVN1cGVyKERlcml2ZWQpIHsgdmFyIGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QgPSBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCk7IHJldHVybiBmdW5jdGlvbiBfY3JlYXRlU3VwZXJJbnRlcm5hbCgpIHsgdmFyIFN1cGVyID0gX2dldFByb3RvdHlwZU9mKERlcml2ZWQpLCByZXN1bHQ7IGlmIChoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KSB7IHZhciBOZXdUYXJnZXQgPSBfZ2V0UHJvdG90eXBlT2YodGhpcykuY29uc3RydWN0b3I7IHJlc3VsdCA9IFJlZmxlY3QuY29uc3RydWN0KFN1cGVyLCBhcmd1bWVudHMsIE5ld1RhcmdldCk7IH0gZWxzZSB7IHJlc3VsdCA9IFN1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH0gcmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIHJlc3VsdCk7IH07IH1cblxuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkgeyBpZiAoY2FsbCAmJiAoX3R5cGVvZihjYWxsKSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSkgeyByZXR1cm4gY2FsbDsgfSByZXR1cm4gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKTsgfVxuXG5mdW5jdGlvbiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpIHsgaWYgKHNlbGYgPT09IHZvaWQgMCkgeyB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7IH0gcmV0dXJuIHNlbGY7IH1cblxuZnVuY3Rpb24gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpIHsgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcInVuZGVmaW5lZFwiIHx8ICFSZWZsZWN0LmNvbnN0cnVjdCkgcmV0dXJuIGZhbHNlOyBpZiAoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSkgcmV0dXJuIGZhbHNlOyBpZiAodHlwZW9mIFByb3h5ID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiB0cnVlOyB0cnkgeyBEYXRlLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFJlZmxlY3QuY29uc3RydWN0KERhdGUsIFtdLCBmdW5jdGlvbiAoKSB7fSkpOyByZXR1cm4gdHJ1ZTsgfSBjYXRjaCAoZSkgeyByZXR1cm4gZmFsc2U7IH0gfVxuXG5mdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyBfZ2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3QuZ2V0UHJvdG90eXBlT2YgOiBmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyByZXR1cm4gby5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKG8pOyB9OyByZXR1cm4gX2dldFByb3RvdHlwZU9mKG8pOyB9XG5cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5cbnZhciBQb3J0YWwgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgX2luaGVyaXRzKFBvcnRhbCwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgdmFyIF9zdXBlciA9IF9jcmVhdGVTdXBlcihQb3J0YWwpO1xuXG4gIGZ1bmN0aW9uIFBvcnRhbCgpIHtcbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUG9ydGFsKTtcblxuICAgIHJldHVybiBfc3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhQb3J0YWwsIFt7XG4gICAga2V5OiBcImNvbXBvbmVudERpZE1vdW50XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgdGhpcy5jcmVhdGVDb250YWluZXIoKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiY29tcG9uZW50RGlkVXBkYXRlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICAgIHZhciBkaWRVcGRhdGUgPSB0aGlzLnByb3BzLmRpZFVwZGF0ZTtcblxuICAgICAgaWYgKGRpZFVwZGF0ZSkge1xuICAgICAgICBkaWRVcGRhdGUocHJldlByb3BzKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiY29tcG9uZW50V2lsbFVubW91bnRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICB0aGlzLnJlbW92ZUNvbnRhaW5lcigpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJjcmVhdGVDb250YWluZXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY3JlYXRlQ29udGFpbmVyKCkge1xuICAgICAgdGhpcy5fY29udGFpbmVyID0gdGhpcy5wcm9wcy5nZXRDb250YWluZXIoKTtcbiAgICAgIHRoaXMuZm9yY2VVcGRhdGUoKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVtb3ZlQ29udGFpbmVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbW92ZUNvbnRhaW5lcigpIHtcbiAgICAgIGlmICh0aGlzLl9jb250YWluZXIpIHtcbiAgICAgICAgdGhpcy5fY29udGFpbmVyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5fY29udGFpbmVyKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIGlmICh0aGlzLl9jb250YWluZXIpIHtcbiAgICAgICAgcmV0dXJuIFJlYWN0RE9NLmNyZWF0ZVBvcnRhbCh0aGlzLnByb3BzLmNoaWxkcmVuLCB0aGlzLl9jb250YWluZXIpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gUG9ydGFsO1xufShSZWFjdC5Db21wb25lbnQpO1xuXG5Qb3J0YWwucHJvcFR5cGVzID0ge1xuICBnZXRDb250YWluZXI6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMubm9kZS5pc1JlcXVpcmVkLFxuICBkaWRVcGRhdGU6IFByb3BUeXBlcy5mdW5jXG59O1xuZXhwb3J0IHsgUG9ydGFsIGFzIGRlZmF1bHQgfTsiLCJpbXBvcnQgX2V4dGVuZHMgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL2V4dGVuZHMnO1xuZnVuY3Rpb24gaXNQb2ludHNFcShhMSwgYTIsIGlzQWxpZ25Qb2ludCkge1xuICBpZiAoaXNBbGlnblBvaW50KSB7XG4gICAgcmV0dXJuIGExWzBdID09PSBhMlswXTtcbiAgfVxuICByZXR1cm4gYTFbMF0gPT09IGEyWzBdICYmIGExWzFdID09PSBhMlsxXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEFsaWduRnJvbVBsYWNlbWVudChidWlsdGluUGxhY2VtZW50cywgcGxhY2VtZW50U3RyLCBhbGlnbikge1xuICB2YXIgYmFzZUFsaWduID0gYnVpbHRpblBsYWNlbWVudHNbcGxhY2VtZW50U3RyXSB8fCB7fTtcbiAgcmV0dXJuIF9leHRlbmRzKHt9LCBiYXNlQWxpZ24sIGFsaWduKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEFsaWduUG9wdXBDbGFzc05hbWUoYnVpbHRpblBsYWNlbWVudHMsIHByZWZpeENscywgYWxpZ24sIGlzQWxpZ25Qb2ludCkge1xuICB2YXIgcG9pbnRzID0gYWxpZ24ucG9pbnRzO1xuICBmb3IgKHZhciBwbGFjZW1lbnQgaW4gYnVpbHRpblBsYWNlbWVudHMpIHtcbiAgICBpZiAoYnVpbHRpblBsYWNlbWVudHMuaGFzT3duUHJvcGVydHkocGxhY2VtZW50KSkge1xuICAgICAgaWYgKGlzUG9pbnRzRXEoYnVpbHRpblBsYWNlbWVudHNbcGxhY2VtZW50XS5wb2ludHMsIHBvaW50cywgaXNBbGlnblBvaW50KSkge1xuICAgICAgICByZXR1cm4gcHJlZml4Q2xzICsgJy1wbGFjZW1lbnQtJyArIHBsYWNlbWVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuICcnO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2F2ZVJlZihuYW1lLCBjb21wb25lbnQpIHtcbiAgdGhpc1tuYW1lXSA9IGNvbXBvbmVudDtcbn0iLCJ2YXIgdmVuZG9yUHJlZml4ID0gdm9pZCAwO1xuXG52YXIganNDc3NNYXAgPSB7XG4gIFdlYmtpdDogJy13ZWJraXQtJyxcbiAgTW96OiAnLW1vei0nLFxuICAvLyBJRSBkaWQgaXQgd3JvbmcgYWdhaW4gLi4uXG4gIG1zOiAnLW1zLScsXG4gIE86ICctby0nXG59O1xuXG5mdW5jdGlvbiBnZXRWZW5kb3JQcmVmaXgoKSB7XG4gIGlmICh2ZW5kb3JQcmVmaXggIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB2ZW5kb3JQcmVmaXg7XG4gIH1cbiAgdmVuZG9yUHJlZml4ID0gJyc7XG4gIHZhciBzdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3AnKS5zdHlsZTtcbiAgdmFyIHRlc3RQcm9wID0gJ1RyYW5zZm9ybSc7XG4gIGZvciAodmFyIGtleSBpbiBqc0Nzc01hcCkge1xuICAgIGlmIChrZXkgKyB0ZXN0UHJvcCBpbiBzdHlsZSkge1xuICAgICAgdmVuZG9yUHJlZml4ID0ga2V5O1xuICAgIH1cbiAgfVxuICByZXR1cm4gdmVuZG9yUHJlZml4O1xufVxuXG5mdW5jdGlvbiBnZXRUcmFuc2l0aW9uTmFtZSgpIHtcbiAgcmV0dXJuIGdldFZlbmRvclByZWZpeCgpID8gZ2V0VmVuZG9yUHJlZml4KCkgKyAnVHJhbnNpdGlvblByb3BlcnR5JyA6ICd0cmFuc2l0aW9uUHJvcGVydHknO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHJhbnNmb3JtTmFtZSgpIHtcbiAgcmV0dXJuIGdldFZlbmRvclByZWZpeCgpID8gZ2V0VmVuZG9yUHJlZml4KCkgKyAnVHJhbnNmb3JtJyA6ICd0cmFuc2Zvcm0nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0VHJhbnNpdGlvblByb3BlcnR5KG5vZGUsIHZhbHVlKSB7XG4gIHZhciBuYW1lID0gZ2V0VHJhbnNpdGlvbk5hbWUoKTtcbiAgaWYgKG5hbWUpIHtcbiAgICBub2RlLnN0eWxlW25hbWVdID0gdmFsdWU7XG4gICAgaWYgKG5hbWUgIT09ICd0cmFuc2l0aW9uUHJvcGVydHknKSB7XG4gICAgICBub2RlLnN0eWxlLnRyYW5zaXRpb25Qcm9wZXJ0eSA9IHZhbHVlO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBzZXRUcmFuc2Zvcm0obm9kZSwgdmFsdWUpIHtcbiAgdmFyIG5hbWUgPSBnZXRUcmFuc2Zvcm1OYW1lKCk7XG4gIGlmIChuYW1lKSB7XG4gICAgbm9kZS5zdHlsZVtuYW1lXSA9IHZhbHVlO1xuICAgIGlmIChuYW1lICE9PSAndHJhbnNmb3JtJykge1xuICAgICAgbm9kZS5zdHlsZS50cmFuc2Zvcm0gPSB2YWx1ZTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRyYW5zaXRpb25Qcm9wZXJ0eShub2RlKSB7XG4gIHJldHVybiBub2RlLnN0eWxlLnRyYW5zaXRpb25Qcm9wZXJ0eSB8fCBub2RlLnN0eWxlW2dldFRyYW5zaXRpb25OYW1lKCldO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHJhbnNmb3JtWFkobm9kZSkge1xuICB2YXIgc3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShub2RlLCBudWxsKTtcbiAgdmFyIHRyYW5zZm9ybSA9IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RyYW5zZm9ybScpIHx8IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoZ2V0VHJhbnNmb3JtTmFtZSgpKTtcbiAgaWYgKHRyYW5zZm9ybSAmJiB0cmFuc2Zvcm0gIT09ICdub25lJykge1xuICAgIHZhciBtYXRyaXggPSB0cmFuc2Zvcm0ucmVwbGFjZSgvW14wLTlcXC0uLF0vZywgJycpLnNwbGl0KCcsJyk7XG4gICAgcmV0dXJuIHsgeDogcGFyc2VGbG9hdChtYXRyaXhbMTJdIHx8IG1hdHJpeFs0XSwgMCksIHk6IHBhcnNlRmxvYXQobWF0cml4WzEzXSB8fCBtYXRyaXhbNV0sIDApIH07XG4gIH1cbiAgcmV0dXJuIHtcbiAgICB4OiAwLFxuICAgIHk6IDBcbiAgfTtcbn1cblxudmFyIG1hdHJpeDJkID0gL21hdHJpeFxcKCguKilcXCkvO1xudmFyIG1hdHJpeDNkID0gL21hdHJpeDNkXFwoKC4qKVxcKS87XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRUcmFuc2Zvcm1YWShub2RlLCB4eSkge1xuICB2YXIgc3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShub2RlLCBudWxsKTtcbiAgdmFyIHRyYW5zZm9ybSA9IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RyYW5zZm9ybScpIHx8IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoZ2V0VHJhbnNmb3JtTmFtZSgpKTtcbiAgaWYgKHRyYW5zZm9ybSAmJiB0cmFuc2Zvcm0gIT09ICdub25lJykge1xuICAgIHZhciBhcnIgPSB2b2lkIDA7XG4gICAgdmFyIG1hdGNoMmQgPSB0cmFuc2Zvcm0ubWF0Y2gobWF0cml4MmQpO1xuICAgIGlmIChtYXRjaDJkKSB7XG4gICAgICBtYXRjaDJkID0gbWF0Y2gyZFsxXTtcbiAgICAgIGFyciA9IG1hdGNoMmQuc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlRmxvYXQoaXRlbSwgMTApO1xuICAgICAgfSk7XG4gICAgICBhcnJbNF0gPSB4eS54O1xuICAgICAgYXJyWzVdID0geHkueTtcbiAgICAgIHNldFRyYW5zZm9ybShub2RlLCAnbWF0cml4KCcgKyBhcnIuam9pbignLCcpICsgJyknKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIG1hdGNoM2QgPSB0cmFuc2Zvcm0ubWF0Y2gobWF0cml4M2QpWzFdO1xuICAgICAgYXJyID0gbWF0Y2gzZC5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgICByZXR1cm4gcGFyc2VGbG9hdChpdGVtLCAxMCk7XG4gICAgICB9KTtcbiAgICAgIGFyclsxMl0gPSB4eS54O1xuICAgICAgYXJyWzEzXSA9IHh5Lnk7XG4gICAgICBzZXRUcmFuc2Zvcm0obm9kZSwgJ21hdHJpeDNkKCcgKyBhcnIuam9pbignLCcpICsgJyknKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgc2V0VHJhbnNmb3JtKG5vZGUsICd0cmFuc2xhdGVYKCcgKyB4eS54ICsgJ3B4KSB0cmFuc2xhdGVZKCcgKyB4eS55ICsgJ3B4KSB0cmFuc2xhdGVaKDApJyk7XG4gIH1cbn0iLCJ2YXIgX3R5cGVvZiA9IHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09PSBcInN5bWJvbFwiID8gZnVuY3Rpb24gKG9iaikgeyByZXR1cm4gdHlwZW9mIG9iajsgfSA6IGZ1bmN0aW9uIChvYmopIHsgcmV0dXJuIG9iaiAmJiB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgb2JqICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvYmo7IH07XG5cbmltcG9ydCB7IHNldFRyYW5zaXRpb25Qcm9wZXJ0eSwgZ2V0VHJhbnNpdGlvblByb3BlcnR5LCBnZXRUcmFuc2Zvcm1YWSwgc2V0VHJhbnNmb3JtWFksIGdldFRyYW5zZm9ybU5hbWUgfSBmcm9tICcuL3Byb3BlcnR5VXRpbHMnO1xuXG52YXIgUkVfTlVNID0gL1tcXC0rXT8oPzpcXGQqXFwufClcXGQrKD86W2VFXVtcXC0rXT9cXGQrfCkvLnNvdXJjZTtcblxudmFyIGdldENvbXB1dGVkU3R5bGVYID0gdm9pZCAwO1xuXG4vLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMzQ4NTY1NC8zMDQwNjA1XG5mdW5jdGlvbiBmb3JjZVJlbGF5b3V0KGVsZW0pIHtcbiAgdmFyIG9yaWdpbmFsU3R5bGUgPSBlbGVtLnN0eWxlLmRpc3BsYXk7XG4gIGVsZW0uc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgZWxlbS5vZmZzZXRIZWlnaHQ7IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcbiAgZWxlbS5zdHlsZS5kaXNwbGF5ID0gb3JpZ2luYWxTdHlsZTtcbn1cblxuZnVuY3Rpb24gY3NzKGVsLCBuYW1lLCB2KSB7XG4gIHZhciB2YWx1ZSA9IHY7XG4gIGlmICgodHlwZW9mIG5hbWUgPT09ICd1bmRlZmluZWQnID8gJ3VuZGVmaW5lZCcgOiBfdHlwZW9mKG5hbWUpKSA9PT0gJ29iamVjdCcpIHtcbiAgICBmb3IgKHZhciBpIGluIG5hbWUpIHtcbiAgICAgIGlmIChuYW1lLmhhc093blByb3BlcnR5KGkpKSB7XG4gICAgICAgIGNzcyhlbCwgaSwgbmFtZVtpXSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgICAgdmFsdWUgPSB2YWx1ZSArICdweCc7XG4gICAgfVxuICAgIGVsLnN0eWxlW25hbWVdID0gdmFsdWU7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICByZXR1cm4gZ2V0Q29tcHV0ZWRTdHlsZVgoZWwsIG5hbWUpO1xufVxuXG5mdW5jdGlvbiBnZXRDbGllbnRQb3NpdGlvbihlbGVtKSB7XG4gIHZhciBib3ggPSB2b2lkIDA7XG4gIHZhciB4ID0gdm9pZCAwO1xuICB2YXIgeSA9IHZvaWQgMDtcbiAgdmFyIGRvYyA9IGVsZW0ub3duZXJEb2N1bWVudDtcbiAgdmFyIGJvZHkgPSBkb2MuYm9keTtcbiAgdmFyIGRvY0VsZW0gPSBkb2MgJiYgZG9jLmRvY3VtZW50RWxlbWVudDtcbiAgLy8g5qC55o2uIEdCUyDmnIDmlrDmlbDmja7vvIxBLUdyYWRlIEJyb3dzZXJzIOmDveW3suaUr+aMgSBnZXRCb3VuZGluZ0NsaWVudFJlY3Qg5pa55rOV77yM5LiN55So5YaN6ICD6JmR5Lyg57uf55qE5a6e546w5pa55byPXG4gIGJveCA9IGVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgLy8g5rOo77yaalF1ZXJ5IOi/mOiAg+iZkeWHj+WOuyBkb2NFbGVtLmNsaWVudExlZnQvY2xpZW50VG9wXG4gIC8vIOS9hua1i+ivleWPkeeOsO+8jOi/meagt+WPjeiAjOS8muWvvOiHtOW9kyBodG1sIOWSjCBib2R5IOaciei+uei3nS/ovrnmoYbmoLflvI/ml7bvvIzojrflj5bnmoTlgLzkuI3mraPnoa5cbiAgLy8g5q2k5aSW77yMaWU2IOS8muW/veeVpSBodG1sIOeahCBtYXJnaW4g5YC877yM5bm46L+Q5Zyw5piv5rKh5pyJ6LCB5Lya5Y676K6+572uIGh0bWwg55qEIG1hcmdpblxuXG4gIHggPSBib3gubGVmdDtcbiAgeSA9IGJveC50b3A7XG5cbiAgLy8gSW4gSUUsIG1vc3Qgb2YgdGhlIHRpbWUsIDIgZXh0cmEgcGl4ZWxzIGFyZSBhZGRlZCB0byB0aGUgdG9wIGFuZCBsZWZ0XG4gIC8vIGR1ZSB0byB0aGUgaW1wbGljaXQgMi1waXhlbCBpbnNldCBib3JkZXIuICBJbiBJRTYvNyBxdWlya3MgbW9kZSBhbmRcbiAgLy8gSUU2IHN0YW5kYXJkcyBtb2RlLCB0aGlzIGJvcmRlciBjYW4gYmUgb3ZlcnJpZGRlbiBieSBzZXR0aW5nIHRoZVxuICAvLyBkb2N1bWVudCBlbGVtZW50J3MgYm9yZGVyIHRvIHplcm8gLS0gdGh1cywgd2UgY2Fubm90IHJlbHkgb24gdGhlXG4gIC8vIG9mZnNldCBhbHdheXMgYmVpbmcgMiBwaXhlbHMuXG5cbiAgLy8gSW4gcXVpcmtzIG1vZGUsIHRoZSBvZmZzZXQgY2FuIGJlIGRldGVybWluZWQgYnkgcXVlcnlpbmcgdGhlIGJvZHknc1xuICAvLyBjbGllbnRMZWZ0L2NsaWVudFRvcCwgYnV0IGluIHN0YW5kYXJkcyBtb2RlLCBpdCBpcyBmb3VuZCBieSBxdWVyeWluZ1xuICAvLyB0aGUgZG9jdW1lbnQgZWxlbWVudCdzIGNsaWVudExlZnQvY2xpZW50VG9wLiAgU2luY2Ugd2UgYWxyZWFkeSBjYWxsZWRcbiAgLy8gZ2V0Q2xpZW50Qm91bmRpbmdSZWN0IHdlIGhhdmUgYWxyZWFkeSBmb3JjZWQgYSByZWZsb3csIHNvIGl0IGlzIG5vdFxuICAvLyB0b28gZXhwZW5zaXZlIGp1c3QgdG8gcXVlcnkgdGhlbSBhbGwuXG5cbiAgLy8gaWUg5LiL5bqU6K+l5YeP5Y6756qX5Y+j55qE6L655qGG5ZCn77yM5q+V56uf6buY6K6kIGFic29sdXRlIOmDveaYr+ebuOWvueeql+WPo+WumuS9jeeahFxuICAvLyDnqpflj6PovrnmoYbmoIflh4bmmK/orr4gZG9jdW1lbnRFbGVtZW50ICxxdWlya3Mg5pe26K6+572uIGJvZHlcbiAgLy8g5pyA5aW956aB5q2i5ZyoIGJvZHkg5ZKMIGh0bWwg5LiK6L655qGGIO+8jOS9hiBpZSA8IDkgaHRtbCDpu5jorqTmnIkgMnB4IO+8jOWHj+WOu1xuICAvLyDkvYbmmK/pnZ4gaWUg5LiN5Y+v6IO96K6+572u56qX5Y+j6L655qGG77yMYm9keSBodG1sIOS5n+S4jeaYr+eql+WPoyAsaWUg5Y+v5Lul6YCa6L+HIGh0bWwsYm9keSDorr7nva5cbiAgLy8g5qCH5YeGIGllIOS4iyBkb2NFbGVtLmNsaWVudFRvcCDlsLHmmK8gYm9yZGVyLXRvcFxuICAvLyBpZTcgaHRtbCDljbPnqpflj6PovrnmoYbmlLnlj5jkuI3kuobjgILmsLjov5zkuLogMlxuICAvLyDkvYbmoIflh4YgZmlyZWZveC9jaHJvbWUvaWU5IOS4iyBkb2NFbGVtLmNsaWVudFRvcCDmmK/nqpflj6PovrnmoYbvvIzljbPkvb/orr7kuoYgYm9yZGVyLXRvcCDkuZ/kuLogMFxuXG4gIHggLT0gZG9jRWxlbS5jbGllbnRMZWZ0IHx8IGJvZHkuY2xpZW50TGVmdCB8fCAwO1xuICB5IC09IGRvY0VsZW0uY2xpZW50VG9wIHx8IGJvZHkuY2xpZW50VG9wIHx8IDA7XG5cbiAgcmV0dXJuIHtcbiAgICBsZWZ0OiB4LFxuICAgIHRvcDogeVxuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRTY3JvbGwodywgdG9wKSB7XG4gIHZhciByZXQgPSB3WydwYWdlJyArICh0b3AgPyAnWScgOiAnWCcpICsgJ09mZnNldCddO1xuICB2YXIgbWV0aG9kID0gJ3Njcm9sbCcgKyAodG9wID8gJ1RvcCcgOiAnTGVmdCcpO1xuICBpZiAodHlwZW9mIHJldCAhPT0gJ251bWJlcicpIHtcbiAgICB2YXIgZCA9IHcuZG9jdW1lbnQ7XG4gICAgLy8gaWU2LDcsOCBzdGFuZGFyZCBtb2RlXG4gICAgcmV0ID0gZC5kb2N1bWVudEVsZW1lbnRbbWV0aG9kXTtcbiAgICBpZiAodHlwZW9mIHJldCAhPT0gJ251bWJlcicpIHtcbiAgICAgIC8vIHF1aXJrcyBtb2RlXG4gICAgICByZXQgPSBkLmJvZHlbbWV0aG9kXTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cblxuZnVuY3Rpb24gZ2V0U2Nyb2xsTGVmdCh3KSB7XG4gIHJldHVybiBnZXRTY3JvbGwodyk7XG59XG5cbmZ1bmN0aW9uIGdldFNjcm9sbFRvcCh3KSB7XG4gIHJldHVybiBnZXRTY3JvbGwodywgdHJ1ZSk7XG59XG5cbmZ1bmN0aW9uIGdldE9mZnNldChlbCkge1xuICB2YXIgcG9zID0gZ2V0Q2xpZW50UG9zaXRpb24oZWwpO1xuICB2YXIgZG9jID0gZWwub3duZXJEb2N1bWVudDtcbiAgdmFyIHcgPSBkb2MuZGVmYXVsdFZpZXcgfHwgZG9jLnBhcmVudFdpbmRvdztcbiAgcG9zLmxlZnQgKz0gZ2V0U2Nyb2xsTGVmdCh3KTtcbiAgcG9zLnRvcCArPSBnZXRTY3JvbGxUb3Aodyk7XG4gIHJldHVybiBwb3M7XG59XG5cbi8qKlxuICogQSBjcnVkZSB3YXkgb2YgZGV0ZXJtaW5pbmcgaWYgYW4gb2JqZWN0IGlzIGEgd2luZG93XG4gKiBAbWVtYmVyIHV0aWxcbiAqL1xuZnVuY3Rpb24gaXNXaW5kb3cob2JqKSB7XG4gIC8vIG11c3QgdXNlID09IGZvciBpZThcbiAgLyogZXNsaW50IGVxZXFlcTowICovXG4gIHJldHVybiBvYmogIT09IG51bGwgJiYgb2JqICE9PSB1bmRlZmluZWQgJiYgb2JqID09IG9iai53aW5kb3c7XG59XG5cbmZ1bmN0aW9uIGdldERvY3VtZW50KG5vZGUpIHtcbiAgaWYgKGlzV2luZG93KG5vZGUpKSB7XG4gICAgcmV0dXJuIG5vZGUuZG9jdW1lbnQ7XG4gIH1cbiAgaWYgKG5vZGUubm9kZVR5cGUgPT09IDkpIHtcbiAgICByZXR1cm4gbm9kZTtcbiAgfVxuICByZXR1cm4gbm9kZS5vd25lckRvY3VtZW50O1xufVxuXG5mdW5jdGlvbiBfZ2V0Q29tcHV0ZWRTdHlsZShlbGVtLCBuYW1lLCBjcykge1xuICB2YXIgY29tcHV0ZWRTdHlsZSA9IGNzO1xuICB2YXIgdmFsID0gJyc7XG4gIHZhciBkID0gZ2V0RG9jdW1lbnQoZWxlbSk7XG4gIGNvbXB1dGVkU3R5bGUgPSBjb21wdXRlZFN0eWxlIHx8IGQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtLCBudWxsKTtcblxuICAvLyBodHRwczovL2dpdGh1Yi5jb20va2lzc3l0ZWFtL2tpc3N5L2lzc3Vlcy82MVxuICBpZiAoY29tcHV0ZWRTdHlsZSkge1xuICAgIHZhbCA9IGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShuYW1lKSB8fCBjb21wdXRlZFN0eWxlW25hbWVdO1xuICB9XG5cbiAgcmV0dXJuIHZhbDtcbn1cblxudmFyIF9SRV9OVU1fTk9fUFggPSBuZXcgUmVnRXhwKCdeKCcgKyBSRV9OVU0gKyAnKSg/IXB4KVthLXolXSskJywgJ2knKTtcbnZhciBSRV9QT1MgPSAvXih0b3B8cmlnaHR8Ym90dG9tfGxlZnQpJC87XG52YXIgQ1VSUkVOVF9TVFlMRSA9ICdjdXJyZW50U3R5bGUnO1xudmFyIFJVTlRJTUVfU1RZTEUgPSAncnVudGltZVN0eWxlJztcbnZhciBMRUZUID0gJ2xlZnQnO1xudmFyIFBYID0gJ3B4JztcblxuZnVuY3Rpb24gX2dldENvbXB1dGVkU3R5bGVJRShlbGVtLCBuYW1lKSB7XG4gIC8vIGN1cnJlbnRTdHlsZSBtYXliZSBudWxsXG4gIC8vIGh0dHA6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS9tczUzNTIzMS5hc3B4XG4gIHZhciByZXQgPSBlbGVtW0NVUlJFTlRfU1RZTEVdICYmIGVsZW1bQ1VSUkVOVF9TVFlMRV1bbmFtZV07XG5cbiAgLy8g5b2TIHdpZHRoL2hlaWdodCDorr7nva7kuLrnmb7liIbmr5Tml7bvvIzpgJrov4cgcGl4ZWxMZWZ0IOaWueW8j+i9rOaNoueahCB3aWR0aC9oZWlnaHQg5YC8XG4gIC8vIOS4gOW8gOWni+WwseWkhOeQhuS6hiEgQ1VTVE9NX1NUWUxFLmhlaWdodCxDVVNUT01fU1RZTEUud2lkdGggLGNzc0hvb2sg6Kej5YazQDIwMTEtMDgtMTlcbiAgLy8g5ZyoIGllIOS4i+S4jeWvue+8jOmcgOimgeebtOaOpeeUqCBvZmZzZXQg5pa55byPXG4gIC8vIGJvcmRlcldpZHRoIOetieWAvOS5n+aciemXrumimO+8jOS9huiAg+iZkeWIsCBib3JkZXJXaWR0aCDorr7kuLrnmb7liIbmr5TnmoTmpoLnjoflvojlsI/vvIzov5nph4zlsLHkuI3ogIPomZHkuoZcblxuICAvLyBGcm9tIHRoZSBhd2Vzb21lIGhhY2sgYnkgRGVhbiBFZHdhcmRzXG4gIC8vIGh0dHA6Ly9lcmlrLmVhZS5uZXQvYXJjaGl2ZXMvMjAwNy8wNy8yNy8xOC41NC4xNS8jY29tbWVudC0xMDIyOTFcbiAgLy8gSWYgd2UncmUgbm90IGRlYWxpbmcgd2l0aCBhIHJlZ3VsYXIgcGl4ZWwgbnVtYmVyXG4gIC8vIGJ1dCBhIG51bWJlciB0aGF0IGhhcyBhIHdlaXJkIGVuZGluZywgd2UgbmVlZCB0byBjb252ZXJ0IGl0IHRvIHBpeGVsc1xuICAvLyBleGNsdWRlIGxlZnQgcmlnaHQgZm9yIHJlbGF0aXZpdHlcbiAgaWYgKF9SRV9OVU1fTk9fUFgudGVzdChyZXQpICYmICFSRV9QT1MudGVzdChuYW1lKSkge1xuICAgIC8vIFJlbWVtYmVyIHRoZSBvcmlnaW5hbCB2YWx1ZXNcbiAgICB2YXIgc3R5bGUgPSBlbGVtLnN0eWxlO1xuICAgIHZhciBsZWZ0ID0gc3R5bGVbTEVGVF07XG4gICAgdmFyIHJzTGVmdCA9IGVsZW1bUlVOVElNRV9TVFlMRV1bTEVGVF07XG5cbiAgICAvLyBwcmV2ZW50IGZsYXNoaW5nIG9mIGNvbnRlbnRcbiAgICBlbGVtW1JVTlRJTUVfU1RZTEVdW0xFRlRdID0gZWxlbVtDVVJSRU5UX1NUWUxFXVtMRUZUXTtcblxuICAgIC8vIFB1dCBpbiB0aGUgbmV3IHZhbHVlcyB0byBnZXQgYSBjb21wdXRlZCB2YWx1ZSBvdXRcbiAgICBzdHlsZVtMRUZUXSA9IG5hbWUgPT09ICdmb250U2l6ZScgPyAnMWVtJyA6IHJldCB8fCAwO1xuICAgIHJldCA9IHN0eWxlLnBpeGVsTGVmdCArIFBYO1xuXG4gICAgLy8gUmV2ZXJ0IHRoZSBjaGFuZ2VkIHZhbHVlc1xuICAgIHN0eWxlW0xFRlRdID0gbGVmdDtcblxuICAgIGVsZW1bUlVOVElNRV9TVFlMRV1bTEVGVF0gPSByc0xlZnQ7XG4gIH1cbiAgcmV0dXJuIHJldCA9PT0gJycgPyAnYXV0bycgOiByZXQ7XG59XG5cbmlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICBnZXRDb21wdXRlZFN0eWxlWCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlID8gX2dldENvbXB1dGVkU3R5bGUgOiBfZ2V0Q29tcHV0ZWRTdHlsZUlFO1xufVxuXG5mdW5jdGlvbiBnZXRPZmZzZXREaXJlY3Rpb24oZGlyLCBvcHRpb24pIHtcbiAgaWYgKGRpciA9PT0gJ2xlZnQnKSB7XG4gICAgcmV0dXJuIG9wdGlvbi51c2VDc3NSaWdodCA/ICdyaWdodCcgOiBkaXI7XG4gIH1cbiAgcmV0dXJuIG9wdGlvbi51c2VDc3NCb3R0b20gPyAnYm90dG9tJyA6IGRpcjtcbn1cblxuZnVuY3Rpb24gb3Bwb3NpdGVPZmZzZXREaXJlY3Rpb24oZGlyKSB7XG4gIGlmIChkaXIgPT09ICdsZWZ0Jykge1xuICAgIHJldHVybiAncmlnaHQnO1xuICB9IGVsc2UgaWYgKGRpciA9PT0gJ3JpZ2h0Jykge1xuICAgIHJldHVybiAnbGVmdCc7XG4gIH0gZWxzZSBpZiAoZGlyID09PSAndG9wJykge1xuICAgIHJldHVybiAnYm90dG9tJztcbiAgfSBlbHNlIGlmIChkaXIgPT09ICdib3R0b20nKSB7XG4gICAgcmV0dXJuICd0b3AnO1xuICB9XG59XG5cbi8vIOiuvue9riBlbGVtIOebuOWvuSBlbGVtLm93bmVyRG9jdW1lbnQg55qE5Z2Q5qCHXG5mdW5jdGlvbiBzZXRMZWZ0VG9wKGVsZW0sIG9mZnNldCwgb3B0aW9uKSB7XG4gIC8vIHNldCBwb3NpdGlvbiBmaXJzdCwgaW4tY2FzZSB0b3AvbGVmdCBhcmUgc2V0IGV2ZW4gb24gc3RhdGljIGVsZW1cbiAgaWYgKGNzcyhlbGVtLCAncG9zaXRpb24nKSA9PT0gJ3N0YXRpYycpIHtcbiAgICBlbGVtLnN0eWxlLnBvc2l0aW9uID0gJ3JlbGF0aXZlJztcbiAgfVxuICB2YXIgcHJlc2V0SCA9IC05OTk7XG4gIHZhciBwcmVzZXRWID0gLTk5OTtcbiAgdmFyIGhvcml6b250YWxQcm9wZXJ0eSA9IGdldE9mZnNldERpcmVjdGlvbignbGVmdCcsIG9wdGlvbik7XG4gIHZhciB2ZXJ0aWNhbFByb3BlcnR5ID0gZ2V0T2Zmc2V0RGlyZWN0aW9uKCd0b3AnLCBvcHRpb24pO1xuICB2YXIgb3Bwb3NpdGVIb3Jpem9udGFsUHJvcGVydHkgPSBvcHBvc2l0ZU9mZnNldERpcmVjdGlvbihob3Jpem9udGFsUHJvcGVydHkpO1xuICB2YXIgb3Bwb3NpdGVWZXJ0aWNhbFByb3BlcnR5ID0gb3Bwb3NpdGVPZmZzZXREaXJlY3Rpb24odmVydGljYWxQcm9wZXJ0eSk7XG5cbiAgaWYgKGhvcml6b250YWxQcm9wZXJ0eSAhPT0gJ2xlZnQnKSB7XG4gICAgcHJlc2V0SCA9IDk5OTtcbiAgfVxuXG4gIGlmICh2ZXJ0aWNhbFByb3BlcnR5ICE9PSAndG9wJykge1xuICAgIHByZXNldFYgPSA5OTk7XG4gIH1cbiAgdmFyIG9yaWdpbmFsVHJhbnNpdGlvbiA9ICcnO1xuICB2YXIgb3JpZ2luYWxPZmZzZXQgPSBnZXRPZmZzZXQoZWxlbSk7XG4gIGlmICgnbGVmdCcgaW4gb2Zmc2V0IHx8ICd0b3AnIGluIG9mZnNldCkge1xuICAgIG9yaWdpbmFsVHJhbnNpdGlvbiA9IGdldFRyYW5zaXRpb25Qcm9wZXJ0eShlbGVtKSB8fCAnJztcbiAgICBzZXRUcmFuc2l0aW9uUHJvcGVydHkoZWxlbSwgJ25vbmUnKTtcbiAgfVxuICBpZiAoJ2xlZnQnIGluIG9mZnNldCkge1xuICAgIGVsZW0uc3R5bGVbb3Bwb3NpdGVIb3Jpem9udGFsUHJvcGVydHldID0gJyc7XG4gICAgZWxlbS5zdHlsZVtob3Jpem9udGFsUHJvcGVydHldID0gcHJlc2V0SCArICdweCc7XG4gIH1cbiAgaWYgKCd0b3AnIGluIG9mZnNldCkge1xuICAgIGVsZW0uc3R5bGVbb3Bwb3NpdGVWZXJ0aWNhbFByb3BlcnR5XSA9ICcnO1xuICAgIGVsZW0uc3R5bGVbdmVydGljYWxQcm9wZXJ0eV0gPSBwcmVzZXRWICsgJ3B4JztcbiAgfVxuICAvLyBmb3JjZSByZWxheW91dFxuICBmb3JjZVJlbGF5b3V0KGVsZW0pO1xuICB2YXIgb2xkID0gZ2V0T2Zmc2V0KGVsZW0pO1xuICB2YXIgb3JpZ2luYWxTdHlsZSA9IHt9O1xuICBmb3IgKHZhciBrZXkgaW4gb2Zmc2V0KSB7XG4gICAgaWYgKG9mZnNldC5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICB2YXIgZGlyID0gZ2V0T2Zmc2V0RGlyZWN0aW9uKGtleSwgb3B0aW9uKTtcbiAgICAgIHZhciBwcmVzZXQgPSBrZXkgPT09ICdsZWZ0JyA/IHByZXNldEggOiBwcmVzZXRWO1xuICAgICAgdmFyIG9mZiA9IG9yaWdpbmFsT2Zmc2V0W2tleV0gLSBvbGRba2V5XTtcbiAgICAgIGlmIChkaXIgPT09IGtleSkge1xuICAgICAgICBvcmlnaW5hbFN0eWxlW2Rpcl0gPSBwcmVzZXQgKyBvZmY7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvcmlnaW5hbFN0eWxlW2Rpcl0gPSBwcmVzZXQgLSBvZmY7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGNzcyhlbGVtLCBvcmlnaW5hbFN0eWxlKTtcbiAgLy8gZm9yY2UgcmVsYXlvdXRcbiAgZm9yY2VSZWxheW91dChlbGVtKTtcbiAgaWYgKCdsZWZ0JyBpbiBvZmZzZXQgfHwgJ3RvcCcgaW4gb2Zmc2V0KSB7XG4gICAgc2V0VHJhbnNpdGlvblByb3BlcnR5KGVsZW0sIG9yaWdpbmFsVHJhbnNpdGlvbik7XG4gIH1cbiAgdmFyIHJldCA9IHt9O1xuICBmb3IgKHZhciBfa2V5IGluIG9mZnNldCkge1xuICAgIGlmIChvZmZzZXQuaGFzT3duUHJvcGVydHkoX2tleSkpIHtcbiAgICAgIHZhciBfZGlyID0gZ2V0T2Zmc2V0RGlyZWN0aW9uKF9rZXksIG9wdGlvbik7XG4gICAgICB2YXIgX29mZiA9IG9mZnNldFtfa2V5XSAtIG9yaWdpbmFsT2Zmc2V0W19rZXldO1xuICAgICAgaWYgKF9rZXkgPT09IF9kaXIpIHtcbiAgICAgICAgcmV0W19kaXJdID0gb3JpZ2luYWxTdHlsZVtfZGlyXSArIF9vZmY7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXRbX2Rpcl0gPSBvcmlnaW5hbFN0eWxlW19kaXJdIC0gX29mZjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgY3NzKGVsZW0sIHJldCk7XG59XG5cbmZ1bmN0aW9uIHNldFRyYW5zZm9ybShlbGVtLCBvZmZzZXQpIHtcbiAgdmFyIG9yaWdpbmFsT2Zmc2V0ID0gZ2V0T2Zmc2V0KGVsZW0pO1xuICB2YXIgb3JpZ2luYWxYWSA9IGdldFRyYW5zZm9ybVhZKGVsZW0pO1xuICB2YXIgcmVzdWx0WFkgPSB7IHg6IG9yaWdpbmFsWFkueCwgeTogb3JpZ2luYWxYWS55IH07XG4gIGlmICgnbGVmdCcgaW4gb2Zmc2V0KSB7XG4gICAgcmVzdWx0WFkueCA9IG9yaWdpbmFsWFkueCArIG9mZnNldC5sZWZ0IC0gb3JpZ2luYWxPZmZzZXQubGVmdDtcbiAgfVxuICBpZiAoJ3RvcCcgaW4gb2Zmc2V0KSB7XG4gICAgcmVzdWx0WFkueSA9IG9yaWdpbmFsWFkueSArIG9mZnNldC50b3AgLSBvcmlnaW5hbE9mZnNldC50b3A7XG4gIH1cbiAgc2V0VHJhbnNmb3JtWFkoZWxlbSwgcmVzdWx0WFkpO1xufVxuXG5mdW5jdGlvbiBzZXRPZmZzZXQoZWxlbSwgb2Zmc2V0LCBvcHRpb24pIHtcbiAgaWYgKG9wdGlvbi5pZ25vcmVTaGFrZSkge1xuICAgIHZhciBvcmlPZmZzZXQgPSBnZXRPZmZzZXQoZWxlbSk7XG5cbiAgICB2YXIgb0xlZnQgPSBvcmlPZmZzZXQubGVmdC50b0ZpeGVkKDApO1xuICAgIHZhciBvVG9wID0gb3JpT2Zmc2V0LnRvcC50b0ZpeGVkKDApO1xuICAgIHZhciB0TGVmdCA9IG9mZnNldC5sZWZ0LnRvRml4ZWQoMCk7XG4gICAgdmFyIHRUb3AgPSBvZmZzZXQudG9wLnRvRml4ZWQoMCk7XG5cbiAgICBpZiAob0xlZnQgPT09IHRMZWZ0ICYmIG9Ub3AgPT09IHRUb3ApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBpZiAob3B0aW9uLnVzZUNzc1JpZ2h0IHx8IG9wdGlvbi51c2VDc3NCb3R0b20pIHtcbiAgICBzZXRMZWZ0VG9wKGVsZW0sIG9mZnNldCwgb3B0aW9uKTtcbiAgfSBlbHNlIGlmIChvcHRpb24udXNlQ3NzVHJhbnNmb3JtICYmIGdldFRyYW5zZm9ybU5hbWUoKSBpbiBkb2N1bWVudC5ib2R5LnN0eWxlKSB7XG4gICAgc2V0VHJhbnNmb3JtKGVsZW0sIG9mZnNldCwgb3B0aW9uKTtcbiAgfSBlbHNlIHtcbiAgICBzZXRMZWZ0VG9wKGVsZW0sIG9mZnNldCwgb3B0aW9uKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBlYWNoKGFyciwgZm4pIHtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcnIubGVuZ3RoOyBpKyspIHtcbiAgICBmbihhcnJbaV0pO1xuICB9XG59XG5cbmZ1bmN0aW9uIGlzQm9yZGVyQm94Rm4oZWxlbSkge1xuICByZXR1cm4gZ2V0Q29tcHV0ZWRTdHlsZVgoZWxlbSwgJ2JveFNpemluZycpID09PSAnYm9yZGVyLWJveCc7XG59XG5cbnZhciBCT1hfTU9ERUxTID0gWydtYXJnaW4nLCAnYm9yZGVyJywgJ3BhZGRpbmcnXTtcbnZhciBDT05URU5UX0lOREVYID0gLTE7XG52YXIgUEFERElOR19JTkRFWCA9IDI7XG52YXIgQk9SREVSX0lOREVYID0gMTtcbnZhciBNQVJHSU5fSU5ERVggPSAwO1xuXG5mdW5jdGlvbiBzd2FwKGVsZW0sIG9wdGlvbnMsIGNhbGxiYWNrKSB7XG4gIHZhciBvbGQgPSB7fTtcbiAgdmFyIHN0eWxlID0gZWxlbS5zdHlsZTtcbiAgdmFyIG5hbWUgPSB2b2lkIDA7XG5cbiAgLy8gUmVtZW1iZXIgdGhlIG9sZCB2YWx1ZXMsIGFuZCBpbnNlcnQgdGhlIG5ldyBvbmVzXG4gIGZvciAobmFtZSBpbiBvcHRpb25zKSB7XG4gICAgaWYgKG9wdGlvbnMuaGFzT3duUHJvcGVydHkobmFtZSkpIHtcbiAgICAgIG9sZFtuYW1lXSA9IHN0eWxlW25hbWVdO1xuICAgICAgc3R5bGVbbmFtZV0gPSBvcHRpb25zW25hbWVdO1xuICAgIH1cbiAgfVxuXG4gIGNhbGxiYWNrLmNhbGwoZWxlbSk7XG5cbiAgLy8gUmV2ZXJ0IHRoZSBvbGQgdmFsdWVzXG4gIGZvciAobmFtZSBpbiBvcHRpb25zKSB7XG4gICAgaWYgKG9wdGlvbnMuaGFzT3duUHJvcGVydHkobmFtZSkpIHtcbiAgICAgIHN0eWxlW25hbWVdID0gb2xkW25hbWVdO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRQQk1XaWR0aChlbGVtLCBwcm9wcywgd2hpY2gpIHtcbiAgdmFyIHZhbHVlID0gMDtcbiAgdmFyIHByb3AgPSB2b2lkIDA7XG4gIHZhciBqID0gdm9pZCAwO1xuICB2YXIgaSA9IHZvaWQgMDtcbiAgZm9yIChqID0gMDsgaiA8IHByb3BzLmxlbmd0aDsgaisrKSB7XG4gICAgcHJvcCA9IHByb3BzW2pdO1xuICAgIGlmIChwcm9wKSB7XG4gICAgICBmb3IgKGkgPSAwOyBpIDwgd2hpY2gubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIGNzc1Byb3AgPSB2b2lkIDA7XG4gICAgICAgIGlmIChwcm9wID09PSAnYm9yZGVyJykge1xuICAgICAgICAgIGNzc1Byb3AgPSAnJyArIHByb3AgKyB3aGljaFtpXSArICdXaWR0aCc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY3NzUHJvcCA9IHByb3AgKyB3aGljaFtpXTtcbiAgICAgICAgfVxuICAgICAgICB2YWx1ZSArPSBwYXJzZUZsb2F0KGdldENvbXB1dGVkU3R5bGVYKGVsZW0sIGNzc1Byb3ApKSB8fCAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gdmFsdWU7XG59XG5cbnZhciBkb21VdGlscyA9IHt9O1xuXG5lYWNoKFsnV2lkdGgnLCAnSGVpZ2h0J10sIGZ1bmN0aW9uIChuYW1lKSB7XG4gIGRvbVV0aWxzWydkb2MnICsgbmFtZV0gPSBmdW5jdGlvbiAocmVmV2luKSB7XG4gICAgdmFyIGQgPSByZWZXaW4uZG9jdW1lbnQ7XG4gICAgcmV0dXJuIE1hdGgubWF4KFxuICAgIC8vIGZpcmVmb3ggY2hyb21lIGRvY3VtZW50RWxlbWVudC5zY3JvbGxIZWlnaHQ8IGJvZHkuc2Nyb2xsSGVpZ2h0XG4gICAgLy8gaWUgc3RhbmRhcmQgbW9kZSA6IGRvY3VtZW50RWxlbWVudC5zY3JvbGxIZWlnaHQ+IGJvZHkuc2Nyb2xsSGVpZ2h0XG4gICAgZC5kb2N1bWVudEVsZW1lbnRbJ3Njcm9sbCcgKyBuYW1lXSxcbiAgICAvLyBxdWlya3MgOiBkb2N1bWVudEVsZW1lbnQuc2Nyb2xsSGVpZ2h0IOacgOWkp+etieS6juWPr+inhueql+WPo+WkmuS4gOeCue+8n1xuICAgIGQuYm9keVsnc2Nyb2xsJyArIG5hbWVdLCBkb21VdGlsc1sndmlld3BvcnQnICsgbmFtZV0oZCkpO1xuICB9O1xuXG4gIGRvbVV0aWxzWyd2aWV3cG9ydCcgKyBuYW1lXSA9IGZ1bmN0aW9uICh3aW4pIHtcbiAgICAvLyBwYyBicm93c2VyIGluY2x1ZGVzIHNjcm9sbGJhciBpbiB3aW5kb3cuaW5uZXJXaWR0aFxuICAgIHZhciBwcm9wID0gJ2NsaWVudCcgKyBuYW1lO1xuICAgIHZhciBkb2MgPSB3aW4uZG9jdW1lbnQ7XG4gICAgdmFyIGJvZHkgPSBkb2MuYm9keTtcbiAgICB2YXIgZG9jdW1lbnRFbGVtZW50ID0gZG9jLmRvY3VtZW50RWxlbWVudDtcbiAgICB2YXIgZG9jdW1lbnRFbGVtZW50UHJvcCA9IGRvY3VtZW50RWxlbWVudFtwcm9wXTtcbiAgICAvLyDmoIflh4bmqKHlvI/lj5YgZG9jdW1lbnRFbGVtZW50XG4gICAgLy8gYmFja2NvbXBhdCDlj5YgYm9keVxuICAgIHJldHVybiBkb2MuY29tcGF0TW9kZSA9PT0gJ0NTUzFDb21wYXQnICYmIGRvY3VtZW50RWxlbWVudFByb3AgfHwgYm9keSAmJiBib2R5W3Byb3BdIHx8IGRvY3VtZW50RWxlbWVudFByb3A7XG4gIH07XG59KTtcblxuLypcbiDlvpfliLDlhYPntKDnmoTlpKflsI/kv6Hmga9cbiBAcGFyYW0gZWxlbVxuIEBwYXJhbSBuYW1lXG4gQHBhcmFtIHtTdHJpbmd9IFtleHRyYV0gICdwYWRkaW5nJyA6IChjc3Mgd2lkdGgpICsgcGFkZGluZ1xuICdib3JkZXInIDogKGNzcyB3aWR0aCkgKyBwYWRkaW5nICsgYm9yZGVyXG4gJ21hcmdpbicgOiAoY3NzIHdpZHRoKSArIHBhZGRpbmcgKyBib3JkZXIgKyBtYXJnaW5cbiAqL1xuZnVuY3Rpb24gZ2V0V0goZWxlbSwgbmFtZSwgZXgpIHtcbiAgdmFyIGV4dHJhID0gZXg7XG4gIGlmIChpc1dpbmRvdyhlbGVtKSkge1xuICAgIHJldHVybiBuYW1lID09PSAnd2lkdGgnID8gZG9tVXRpbHMudmlld3BvcnRXaWR0aChlbGVtKSA6IGRvbVV0aWxzLnZpZXdwb3J0SGVpZ2h0KGVsZW0pO1xuICB9IGVsc2UgaWYgKGVsZW0ubm9kZVR5cGUgPT09IDkpIHtcbiAgICByZXR1cm4gbmFtZSA9PT0gJ3dpZHRoJyA/IGRvbVV0aWxzLmRvY1dpZHRoKGVsZW0pIDogZG9tVXRpbHMuZG9jSGVpZ2h0KGVsZW0pO1xuICB9XG4gIHZhciB3aGljaCA9IG5hbWUgPT09ICd3aWR0aCcgPyBbJ0xlZnQnLCAnUmlnaHQnXSA6IFsnVG9wJywgJ0JvdHRvbSddO1xuICB2YXIgYm9yZGVyQm94VmFsdWUgPSBuYW1lID09PSAnd2lkdGgnID8gZWxlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCA6IGVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0O1xuICB2YXIgY29tcHV0ZWRTdHlsZSA9IGdldENvbXB1dGVkU3R5bGVYKGVsZW0pO1xuICB2YXIgaXNCb3JkZXJCb3ggPSBpc0JvcmRlckJveEZuKGVsZW0sIGNvbXB1dGVkU3R5bGUpO1xuICB2YXIgY3NzQm94VmFsdWUgPSAwO1xuICBpZiAoYm9yZGVyQm94VmFsdWUgPT09IG51bGwgfHwgYm9yZGVyQm94VmFsdWUgPT09IHVuZGVmaW5lZCB8fCBib3JkZXJCb3hWYWx1ZSA8PSAwKSB7XG4gICAgYm9yZGVyQm94VmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgLy8gRmFsbCBiYWNrIHRvIGNvbXB1dGVkIHRoZW4gdW4gY29tcHV0ZWQgY3NzIGlmIG5lY2Vzc2FyeVxuICAgIGNzc0JveFZhbHVlID0gZ2V0Q29tcHV0ZWRTdHlsZVgoZWxlbSwgbmFtZSk7XG4gICAgaWYgKGNzc0JveFZhbHVlID09PSBudWxsIHx8IGNzc0JveFZhbHVlID09PSB1bmRlZmluZWQgfHwgTnVtYmVyKGNzc0JveFZhbHVlKSA8IDApIHtcbiAgICAgIGNzc0JveFZhbHVlID0gZWxlbS5zdHlsZVtuYW1lXSB8fCAwO1xuICAgIH1cbiAgICAvLyBOb3JtYWxpemUgJycsIGF1dG8sIGFuZCBwcmVwYXJlIGZvciBleHRyYVxuICAgIGNzc0JveFZhbHVlID0gcGFyc2VGbG9hdChjc3NCb3hWYWx1ZSkgfHwgMDtcbiAgfVxuICBpZiAoZXh0cmEgPT09IHVuZGVmaW5lZCkge1xuICAgIGV4dHJhID0gaXNCb3JkZXJCb3ggPyBCT1JERVJfSU5ERVggOiBDT05URU5UX0lOREVYO1xuICB9XG4gIHZhciBib3JkZXJCb3hWYWx1ZU9ySXNCb3JkZXJCb3ggPSBib3JkZXJCb3hWYWx1ZSAhPT0gdW5kZWZpbmVkIHx8IGlzQm9yZGVyQm94O1xuICB2YXIgdmFsID0gYm9yZGVyQm94VmFsdWUgfHwgY3NzQm94VmFsdWU7XG4gIGlmIChleHRyYSA9PT0gQ09OVEVOVF9JTkRFWCkge1xuICAgIGlmIChib3JkZXJCb3hWYWx1ZU9ySXNCb3JkZXJCb3gpIHtcbiAgICAgIHJldHVybiB2YWwgLSBnZXRQQk1XaWR0aChlbGVtLCBbJ2JvcmRlcicsICdwYWRkaW5nJ10sIHdoaWNoLCBjb21wdXRlZFN0eWxlKTtcbiAgICB9XG4gICAgcmV0dXJuIGNzc0JveFZhbHVlO1xuICB9IGVsc2UgaWYgKGJvcmRlckJveFZhbHVlT3JJc0JvcmRlckJveCkge1xuICAgIGlmIChleHRyYSA9PT0gQk9SREVSX0lOREVYKSB7XG4gICAgICByZXR1cm4gdmFsO1xuICAgIH1cbiAgICByZXR1cm4gdmFsICsgKGV4dHJhID09PSBQQURESU5HX0lOREVYID8gLWdldFBCTVdpZHRoKGVsZW0sIFsnYm9yZGVyJ10sIHdoaWNoLCBjb21wdXRlZFN0eWxlKSA6IGdldFBCTVdpZHRoKGVsZW0sIFsnbWFyZ2luJ10sIHdoaWNoLCBjb21wdXRlZFN0eWxlKSk7XG4gIH1cbiAgcmV0dXJuIGNzc0JveFZhbHVlICsgZ2V0UEJNV2lkdGgoZWxlbSwgQk9YX01PREVMUy5zbGljZShleHRyYSksIHdoaWNoLCBjb21wdXRlZFN0eWxlKTtcbn1cblxudmFyIGNzc1Nob3cgPSB7XG4gIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICB2aXNpYmlsaXR5OiAnaGlkZGVuJyxcbiAgZGlzcGxheTogJ2Jsb2NrJ1xufTtcblxuLy8gZml4ICMxMTkgOiBodHRwczovL2dpdGh1Yi5jb20va2lzc3l0ZWFtL2tpc3N5L2lzc3Vlcy8xMTlcbmZ1bmN0aW9uIGdldFdISWdub3JlRGlzcGxheSgpIHtcbiAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBBcnJheShfbGVuKSwgX2tleTIgPSAwOyBfa2V5MiA8IF9sZW47IF9rZXkyKyspIHtcbiAgICBhcmdzW19rZXkyXSA9IGFyZ3VtZW50c1tfa2V5Ml07XG4gIH1cblxuICB2YXIgdmFsID0gdm9pZCAwO1xuICB2YXIgZWxlbSA9IGFyZ3NbMF07XG4gIC8vIGluIGNhc2UgZWxlbSBpcyB3aW5kb3dcbiAgLy8gZWxlbS5vZmZzZXRXaWR0aCA9PT0gdW5kZWZpbmVkXG4gIGlmIChlbGVtLm9mZnNldFdpZHRoICE9PSAwKSB7XG4gICAgdmFsID0gZ2V0V0guYXBwbHkodW5kZWZpbmVkLCBhcmdzKTtcbiAgfSBlbHNlIHtcbiAgICBzd2FwKGVsZW0sIGNzc1Nob3csIGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhbCA9IGdldFdILmFwcGx5KHVuZGVmaW5lZCwgYXJncyk7XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIHZhbDtcbn1cblxuZWFjaChbJ3dpZHRoJywgJ2hlaWdodCddLCBmdW5jdGlvbiAobmFtZSkge1xuICB2YXIgZmlyc3QgPSBuYW1lLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgbmFtZS5zbGljZSgxKTtcbiAgZG9tVXRpbHNbJ291dGVyJyArIGZpcnN0XSA9IGZ1bmN0aW9uIChlbCwgaW5jbHVkZU1hcmdpbikge1xuICAgIHJldHVybiBlbCAmJiBnZXRXSElnbm9yZURpc3BsYXkoZWwsIG5hbWUsIGluY2x1ZGVNYXJnaW4gPyBNQVJHSU5fSU5ERVggOiBCT1JERVJfSU5ERVgpO1xuICB9O1xuICB2YXIgd2hpY2ggPSBuYW1lID09PSAnd2lkdGgnID8gWydMZWZ0JywgJ1JpZ2h0J10gOiBbJ1RvcCcsICdCb3R0b20nXTtcblxuICBkb21VdGlsc1tuYW1lXSA9IGZ1bmN0aW9uIChlbGVtLCB2KSB7XG4gICAgdmFyIHZhbCA9IHY7XG4gICAgaWYgKHZhbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAoZWxlbSkge1xuICAgICAgICB2YXIgY29tcHV0ZWRTdHlsZSA9IGdldENvbXB1dGVkU3R5bGVYKGVsZW0pO1xuICAgICAgICB2YXIgaXNCb3JkZXJCb3ggPSBpc0JvcmRlckJveEZuKGVsZW0pO1xuICAgICAgICBpZiAoaXNCb3JkZXJCb3gpIHtcbiAgICAgICAgICB2YWwgKz0gZ2V0UEJNV2lkdGgoZWxlbSwgWydwYWRkaW5nJywgJ2JvcmRlciddLCB3aGljaCwgY29tcHV0ZWRTdHlsZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNzcyhlbGVtLCBuYW1lLCB2YWwpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgcmV0dXJuIGVsZW0gJiYgZ2V0V0hJZ25vcmVEaXNwbGF5KGVsZW0sIG5hbWUsIENPTlRFTlRfSU5ERVgpO1xuICB9O1xufSk7XG5cbmZ1bmN0aW9uIG1peCh0bywgZnJvbSkge1xuICBmb3IgKHZhciBpIGluIGZyb20pIHtcbiAgICBpZiAoZnJvbS5oYXNPd25Qcm9wZXJ0eShpKSkge1xuICAgICAgdG9baV0gPSBmcm9tW2ldO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdG87XG59XG5cbnZhciB1dGlscyA9IHtcbiAgZ2V0V2luZG93OiBmdW5jdGlvbiBnZXRXaW5kb3cobm9kZSkge1xuICAgIGlmIChub2RlICYmIG5vZGUuZG9jdW1lbnQgJiYgbm9kZS5zZXRUaW1lb3V0KSB7XG4gICAgICByZXR1cm4gbm9kZTtcbiAgICB9XG4gICAgdmFyIGRvYyA9IG5vZGUub3duZXJEb2N1bWVudCB8fCBub2RlO1xuICAgIHJldHVybiBkb2MuZGVmYXVsdFZpZXcgfHwgZG9jLnBhcmVudFdpbmRvdztcbiAgfSxcblxuICBnZXREb2N1bWVudDogZ2V0RG9jdW1lbnQsXG4gIG9mZnNldDogZnVuY3Rpb24gb2Zmc2V0KGVsLCB2YWx1ZSwgb3B0aW9uKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHNldE9mZnNldChlbCwgdmFsdWUsIG9wdGlvbiB8fCB7fSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBnZXRPZmZzZXQoZWwpO1xuICAgIH1cbiAgfSxcblxuICBpc1dpbmRvdzogaXNXaW5kb3csXG4gIGVhY2g6IGVhY2gsXG4gIGNzczogY3NzLFxuICBjbG9uZTogZnVuY3Rpb24gY2xvbmUob2JqKSB7XG4gICAgdmFyIGkgPSB2b2lkIDA7XG4gICAgdmFyIHJldCA9IHt9O1xuICAgIGZvciAoaSBpbiBvYmopIHtcbiAgICAgIGlmIChvYmouaGFzT3duUHJvcGVydHkoaSkpIHtcbiAgICAgICAgcmV0W2ldID0gb2JqW2ldO1xuICAgICAgfVxuICAgIH1cbiAgICB2YXIgb3ZlcmZsb3cgPSBvYmoub3ZlcmZsb3c7XG4gICAgaWYgKG92ZXJmbG93KSB7XG4gICAgICBmb3IgKGkgaW4gb2JqKSB7XG4gICAgICAgIGlmIChvYmouaGFzT3duUHJvcGVydHkoaSkpIHtcbiAgICAgICAgICByZXQub3ZlcmZsb3dbaV0gPSBvYmoub3ZlcmZsb3dbaV07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJldDtcbiAgfSxcblxuICBtaXg6IG1peCxcbiAgZ2V0V2luZG93U2Nyb2xsTGVmdDogZnVuY3Rpb24gZ2V0V2luZG93U2Nyb2xsTGVmdCh3KSB7XG4gICAgcmV0dXJuIGdldFNjcm9sbExlZnQodyk7XG4gIH0sXG4gIGdldFdpbmRvd1Njcm9sbFRvcDogZnVuY3Rpb24gZ2V0V2luZG93U2Nyb2xsVG9wKHcpIHtcbiAgICByZXR1cm4gZ2V0U2Nyb2xsVG9wKHcpO1xuICB9LFxuICBtZXJnZTogZnVuY3Rpb24gbWVyZ2UoKSB7XG4gICAgdmFyIHJldCA9IHt9O1xuXG4gICAgZm9yICh2YXIgX2xlbjIgPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gQXJyYXkoX2xlbjIpLCBfa2V5MyA9IDA7IF9rZXkzIDwgX2xlbjI7IF9rZXkzKyspIHtcbiAgICAgIGFyZ3NbX2tleTNdID0gYXJndW1lbnRzW19rZXkzXTtcbiAgICB9XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyZ3MubGVuZ3RoOyBpKyspIHtcbiAgICAgIHV0aWxzLm1peChyZXQsIGFyZ3NbaV0pO1xuICAgIH1cbiAgICByZXR1cm4gcmV0O1xuICB9LFxuXG4gIHZpZXdwb3J0V2lkdGg6IDAsXG4gIHZpZXdwb3J0SGVpZ2h0OiAwXG59O1xuXG5taXgodXRpbHMsIGRvbVV0aWxzKTtcblxuZXhwb3J0IGRlZmF1bHQgdXRpbHM7IiwiaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuXG4vKipcbiAqIOW+l+WIsOS8muWvvOiHtOWFg+e0oOaYvuekuuS4jeWFqOeahOelluWFiOWFg+e0oFxuICovXG5cbmZ1bmN0aW9uIGdldE9mZnNldFBhcmVudChlbGVtZW50KSB7XG4gIGlmICh1dGlscy5pc1dpbmRvdyhlbGVtZW50KSB8fCBlbGVtZW50Lm5vZGVUeXBlID09PSA5KSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgLy8gaWUg6L+Z5Liq5Lmf5LiN5piv5a6M5YWo5Y+v6KGMXG4gIC8qXG4gICA8ZGl2IHN0eWxlPVwid2lkdGg6IDUwcHg7aGVpZ2h0OiAxMDBweDtvdmVyZmxvdzogaGlkZGVuXCI+XG4gICA8ZGl2IHN0eWxlPVwid2lkdGg6IDUwcHg7aGVpZ2h0OiAxMDBweDtwb3NpdGlvbjogcmVsYXRpdmU7XCIgaWQ9XCJkNlwiPlxuICAg5YWD57SgIDYg6auYIDEwMHB4IOWuvSA1MHB4PGJyLz5cbiAgIDwvZGl2PlxuICAgPC9kaXY+XG4gICAqL1xuICAvLyBlbGVtZW50Lm9mZnNldFBhcmVudCBkb2VzIHRoZSByaWdodCB0aGluZyBpbiBpZTcgYW5kIGJlbG93LiBSZXR1cm4gcGFyZW50IHdpdGggbGF5b3V0IVxuICAvLyAgSW4gb3RoZXIgYnJvd3NlcnMgaXQgb25seSBpbmNsdWRlcyBlbGVtZW50cyB3aXRoIHBvc2l0aW9uIGFic29sdXRlLCByZWxhdGl2ZSBvclxuICAvLyBmaXhlZCwgbm90IGVsZW1lbnRzIHdpdGggb3ZlcmZsb3cgc2V0IHRvIGF1dG8gb3Igc2Nyb2xsLlxuICAvLyAgICAgICAgaWYgKFVBLmllICYmIGllTW9kZSA8IDgpIHtcbiAgLy8gICAgICAgICAgICByZXR1cm4gZWxlbWVudC5vZmZzZXRQYXJlbnQ7XG4gIC8vICAgICAgICB9XG4gIC8vIOe7n+S4gOeahCBvZmZzZXRQYXJlbnQg5pa55rOVXG4gIHZhciBkb2MgPSB1dGlscy5nZXREb2N1bWVudChlbGVtZW50KTtcbiAgdmFyIGJvZHkgPSBkb2MuYm9keTtcbiAgdmFyIHBhcmVudCA9IHZvaWQgMDtcbiAgdmFyIHBvc2l0aW9uU3R5bGUgPSB1dGlscy5jc3MoZWxlbWVudCwgJ3Bvc2l0aW9uJyk7XG4gIHZhciBza2lwU3RhdGljID0gcG9zaXRpb25TdHlsZSA9PT0gJ2ZpeGVkJyB8fCBwb3NpdGlvblN0eWxlID09PSAnYWJzb2x1dGUnO1xuXG4gIGlmICghc2tpcFN0YXRpYykge1xuICAgIHJldHVybiBlbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdodG1sJyA/IG51bGwgOiBlbGVtZW50LnBhcmVudE5vZGU7XG4gIH1cblxuICBmb3IgKHBhcmVudCA9IGVsZW1lbnQucGFyZW50Tm9kZTsgcGFyZW50ICYmIHBhcmVudCAhPT0gYm9keTsgcGFyZW50ID0gcGFyZW50LnBhcmVudE5vZGUpIHtcbiAgICBwb3NpdGlvblN0eWxlID0gdXRpbHMuY3NzKHBhcmVudCwgJ3Bvc2l0aW9uJyk7XG4gICAgaWYgKHBvc2l0aW9uU3R5bGUgIT09ICdzdGF0aWMnKSB7XG4gICAgICByZXR1cm4gcGFyZW50O1xuICAgIH1cbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZ2V0T2Zmc2V0UGFyZW50OyIsImltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCBnZXRPZmZzZXRQYXJlbnQgZnJvbSAnLi9nZXRPZmZzZXRQYXJlbnQnO1xuaW1wb3J0IGlzQW5jZXN0b3JGaXhlZCBmcm9tICcuL2lzQW5jZXN0b3JGaXhlZCc7XG5cbi8qKlxuICog6I635b6X5YWD57Sg55qE5pi+56S66YOo5YiG55qE5Yy65Z+fXG4gKi9cbmZ1bmN0aW9uIGdldFZpc2libGVSZWN0Rm9yRWxlbWVudChlbGVtZW50KSB7XG4gIHZhciB2aXNpYmxlUmVjdCA9IHtcbiAgICBsZWZ0OiAwLFxuICAgIHJpZ2h0OiBJbmZpbml0eSxcbiAgICB0b3A6IDAsXG4gICAgYm90dG9tOiBJbmZpbml0eVxuICB9O1xuICB2YXIgZWwgPSBnZXRPZmZzZXRQYXJlbnQoZWxlbWVudCk7XG4gIHZhciBkb2MgPSB1dGlscy5nZXREb2N1bWVudChlbGVtZW50KTtcbiAgdmFyIHdpbiA9IGRvYy5kZWZhdWx0VmlldyB8fCBkb2MucGFyZW50V2luZG93O1xuICB2YXIgYm9keSA9IGRvYy5ib2R5O1xuICB2YXIgZG9jdW1lbnRFbGVtZW50ID0gZG9jLmRvY3VtZW50RWxlbWVudDtcblxuICAvLyBEZXRlcm1pbmUgdGhlIHNpemUgb2YgdGhlIHZpc2libGUgcmVjdCBieSBjbGltYmluZyB0aGUgZG9tIGFjY291bnRpbmcgZm9yXG4gIC8vIGFsbCBzY3JvbGxhYmxlIGNvbnRhaW5lcnMuXG4gIHdoaWxlIChlbCkge1xuICAgIC8vIGNsaWVudFdpZHRoIGlzIHplcm8gZm9yIGlubGluZSBibG9jayBlbGVtZW50cyBpbiBpZS5cbiAgICBpZiAoKG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZignTVNJRScpID09PSAtMSB8fCBlbC5jbGllbnRXaWR0aCAhPT0gMCkgJiZcbiAgICAvLyBib2R5IG1heSBoYXZlIG92ZXJmbG93IHNldCBvbiBpdCwgeWV0IHdlIHN0aWxsIGdldCB0aGUgZW50aXJlXG4gICAgLy8gdmlld3BvcnQuIEluIHNvbWUgYnJvd3NlcnMsIGVsLm9mZnNldFBhcmVudCBtYXkgYmVcbiAgICAvLyBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsIHNvIGNoZWNrIGZvciB0aGF0IHRvby5cbiAgICBlbCAhPT0gYm9keSAmJiBlbCAhPT0gZG9jdW1lbnRFbGVtZW50ICYmIHV0aWxzLmNzcyhlbCwgJ292ZXJmbG93JykgIT09ICd2aXNpYmxlJykge1xuICAgICAgdmFyIHBvcyA9IHV0aWxzLm9mZnNldChlbCk7XG4gICAgICAvLyBhZGQgYm9yZGVyXG4gICAgICBwb3MubGVmdCArPSBlbC5jbGllbnRMZWZ0O1xuICAgICAgcG9zLnRvcCArPSBlbC5jbGllbnRUb3A7XG4gICAgICB2aXNpYmxlUmVjdC50b3AgPSBNYXRoLm1heCh2aXNpYmxlUmVjdC50b3AsIHBvcy50b3ApO1xuICAgICAgdmlzaWJsZVJlY3QucmlnaHQgPSBNYXRoLm1pbih2aXNpYmxlUmVjdC5yaWdodCxcbiAgICAgIC8vIGNvbnNpZGVyIGFyZWEgd2l0aG91dCBzY3JvbGxCYXJcbiAgICAgIHBvcy5sZWZ0ICsgZWwuY2xpZW50V2lkdGgpO1xuICAgICAgdmlzaWJsZVJlY3QuYm90dG9tID0gTWF0aC5taW4odmlzaWJsZVJlY3QuYm90dG9tLCBwb3MudG9wICsgZWwuY2xpZW50SGVpZ2h0KTtcbiAgICAgIHZpc2libGVSZWN0LmxlZnQgPSBNYXRoLm1heCh2aXNpYmxlUmVjdC5sZWZ0LCBwb3MubGVmdCk7XG4gICAgfSBlbHNlIGlmIChlbCA9PT0gYm9keSB8fCBlbCA9PT0gZG9jdW1lbnRFbGVtZW50KSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgZWwgPSBnZXRPZmZzZXRQYXJlbnQoZWwpO1xuICB9XG5cbiAgLy8gU2V0IGVsZW1lbnQgcG9zaXRpb24gdG8gZml4ZWRcbiAgLy8gbWFrZSBzdXJlIGFic29sdXRlIGVsZW1lbnQgaXRzZWxmIGRvbid0IGFmZmVjdCBpdCdzIHZpc2libGUgYXJlYVxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vYW50LWRlc2lnbi9hbnQtZGVzaWduL2lzc3Vlcy83NjAxXG4gIHZhciBvcmlnaW5hbFBvc2l0aW9uID0gbnVsbDtcbiAgaWYgKCF1dGlscy5pc1dpbmRvdyhlbGVtZW50KSAmJiBlbGVtZW50Lm5vZGVUeXBlICE9PSA5KSB7XG4gICAgb3JpZ2luYWxQb3NpdGlvbiA9IGVsZW1lbnQuc3R5bGUucG9zaXRpb247XG4gICAgdmFyIHBvc2l0aW9uID0gdXRpbHMuY3NzKGVsZW1lbnQsICdwb3NpdGlvbicpO1xuICAgIGlmIChwb3NpdGlvbiA9PT0gJ2Fic29sdXRlJykge1xuICAgICAgZWxlbWVudC5zdHlsZS5wb3NpdGlvbiA9ICdmaXhlZCc7XG4gICAgfVxuICB9XG5cbiAgdmFyIHNjcm9sbFggPSB1dGlscy5nZXRXaW5kb3dTY3JvbGxMZWZ0KHdpbik7XG4gIHZhciBzY3JvbGxZID0gdXRpbHMuZ2V0V2luZG93U2Nyb2xsVG9wKHdpbik7XG4gIHZhciB2aWV3cG9ydFdpZHRoID0gdXRpbHMudmlld3BvcnRXaWR0aCh3aW4pO1xuICB2YXIgdmlld3BvcnRIZWlnaHQgPSB1dGlscy52aWV3cG9ydEhlaWdodCh3aW4pO1xuICB2YXIgZG9jdW1lbnRXaWR0aCA9IGRvY3VtZW50RWxlbWVudC5zY3JvbGxXaWR0aDtcbiAgdmFyIGRvY3VtZW50SGVpZ2h0ID0gZG9jdW1lbnRFbGVtZW50LnNjcm9sbEhlaWdodDtcblxuICAvLyBzY3JvbGxYWFggb24gaHRtbCBpcyBzeW5jIHdpdGggYm9keSB3aGljaCBtZWFucyBvdmVyZmxvdzogaGlkZGVuIG9uIGJvZHkgZ2V0cyB3cm9uZyBzY3JvbGxYWFguXG4gIC8vIFdlIHNob3VsZCBjdXQgdGhpcyBvdXJzZWxmLlxuICB2YXIgYm9keVN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoYm9keSk7XG4gIGlmIChib2R5U3R5bGUub3ZlcmZsb3dYID09PSAnaGlkZGVuJykge1xuICAgIGRvY3VtZW50V2lkdGggPSB3aW4uaW5uZXJXaWR0aDtcbiAgfVxuICBpZiAoYm9keVN0eWxlLm92ZXJmbG93WSA9PT0gJ2hpZGRlbicpIHtcbiAgICBkb2N1bWVudEhlaWdodCA9IHdpbi5pbm5lckhlaWdodDtcbiAgfVxuXG4gIC8vIFJlc2V0IGVsZW1lbnQgcG9zaXRpb24gYWZ0ZXIgY2FsY3VsYXRlIHRoZSB2aXNpYmxlIGFyZWFcbiAgaWYgKGVsZW1lbnQuc3R5bGUpIHtcbiAgICBlbGVtZW50LnN0eWxlLnBvc2l0aW9uID0gb3JpZ2luYWxQb3NpdGlvbjtcbiAgfVxuXG4gIGlmIChpc0FuY2VzdG9yRml4ZWQoZWxlbWVudCkpIHtcbiAgICAvLyBDbGlwIGJ5IHZpZXdwb3J0J3Mgc2l6ZS5cbiAgICB2aXNpYmxlUmVjdC5sZWZ0ID0gTWF0aC5tYXgodmlzaWJsZVJlY3QubGVmdCwgc2Nyb2xsWCk7XG4gICAgdmlzaWJsZVJlY3QudG9wID0gTWF0aC5tYXgodmlzaWJsZVJlY3QudG9wLCBzY3JvbGxZKTtcbiAgICB2aXNpYmxlUmVjdC5yaWdodCA9IE1hdGgubWluKHZpc2libGVSZWN0LnJpZ2h0LCBzY3JvbGxYICsgdmlld3BvcnRXaWR0aCk7XG4gICAgdmlzaWJsZVJlY3QuYm90dG9tID0gTWF0aC5taW4odmlzaWJsZVJlY3QuYm90dG9tLCBzY3JvbGxZICsgdmlld3BvcnRIZWlnaHQpO1xuICB9IGVsc2Uge1xuICAgIC8vIENsaXAgYnkgZG9jdW1lbnQncyBzaXplLlxuICAgIHZhciBtYXhWaXNpYmxlV2lkdGggPSBNYXRoLm1heChkb2N1bWVudFdpZHRoLCBzY3JvbGxYICsgdmlld3BvcnRXaWR0aCk7XG4gICAgdmlzaWJsZVJlY3QucmlnaHQgPSBNYXRoLm1pbih2aXNpYmxlUmVjdC5yaWdodCwgbWF4VmlzaWJsZVdpZHRoKTtcblxuICAgIHZhciBtYXhWaXNpYmxlSGVpZ2h0ID0gTWF0aC5tYXgoZG9jdW1lbnRIZWlnaHQsIHNjcm9sbFkgKyB2aWV3cG9ydEhlaWdodCk7XG4gICAgdmlzaWJsZVJlY3QuYm90dG9tID0gTWF0aC5taW4odmlzaWJsZVJlY3QuYm90dG9tLCBtYXhWaXNpYmxlSGVpZ2h0KTtcbiAgfVxuXG4gIHJldHVybiB2aXNpYmxlUmVjdC50b3AgPj0gMCAmJiB2aXNpYmxlUmVjdC5sZWZ0ID49IDAgJiYgdmlzaWJsZVJlY3QuYm90dG9tID4gdmlzaWJsZVJlY3QudG9wICYmIHZpc2libGVSZWN0LnJpZ2h0ID4gdmlzaWJsZVJlY3QubGVmdCA/IHZpc2libGVSZWN0IDogbnVsbDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZ2V0VmlzaWJsZVJlY3RGb3JFbGVtZW50OyIsImltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gaXNBbmNlc3RvckZpeGVkKGVsZW1lbnQpIHtcbiAgaWYgKHV0aWxzLmlzV2luZG93KGVsZW1lbnQpIHx8IGVsZW1lbnQubm9kZVR5cGUgPT09IDkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB2YXIgZG9jID0gdXRpbHMuZ2V0RG9jdW1lbnQoZWxlbWVudCk7XG4gIHZhciBib2R5ID0gZG9jLmJvZHk7XG4gIHZhciBwYXJlbnQgPSBudWxsO1xuICBmb3IgKHBhcmVudCA9IGVsZW1lbnQucGFyZW50Tm9kZTsgcGFyZW50ICYmIHBhcmVudCAhPT0gYm9keTsgcGFyZW50ID0gcGFyZW50LnBhcmVudE5vZGUpIHtcbiAgICB2YXIgcG9zaXRpb25TdHlsZSA9IHV0aWxzLmNzcyhwYXJlbnQsICdwb3NpdGlvbicpO1xuICAgIGlmIChwb3NpdGlvblN0eWxlID09PSAnZml4ZWQnKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufSIsImltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcblxuZnVuY3Rpb24gYWRqdXN0Rm9yVmlld3BvcnQoZWxGdXR1cmVQb3MsIGVsUmVnaW9uLCB2aXNpYmxlUmVjdCwgb3ZlcmZsb3cpIHtcbiAgdmFyIHBvcyA9IHV0aWxzLmNsb25lKGVsRnV0dXJlUG9zKTtcbiAgdmFyIHNpemUgPSB7XG4gICAgd2lkdGg6IGVsUmVnaW9uLndpZHRoLFxuICAgIGhlaWdodDogZWxSZWdpb24uaGVpZ2h0XG4gIH07XG5cbiAgaWYgKG92ZXJmbG93LmFkanVzdFggJiYgcG9zLmxlZnQgPCB2aXNpYmxlUmVjdC5sZWZ0KSB7XG4gICAgcG9zLmxlZnQgPSB2aXNpYmxlUmVjdC5sZWZ0O1xuICB9XG5cbiAgLy8gTGVmdCBlZGdlIGluc2lkZSBhbmQgcmlnaHQgZWRnZSBvdXRzaWRlIHZpZXdwb3J0LCB0cnkgdG8gcmVzaXplIGl0LlxuICBpZiAob3ZlcmZsb3cucmVzaXplV2lkdGggJiYgcG9zLmxlZnQgPj0gdmlzaWJsZVJlY3QubGVmdCAmJiBwb3MubGVmdCArIHNpemUud2lkdGggPiB2aXNpYmxlUmVjdC5yaWdodCkge1xuICAgIHNpemUud2lkdGggLT0gcG9zLmxlZnQgKyBzaXplLndpZHRoIC0gdmlzaWJsZVJlY3QucmlnaHQ7XG4gIH1cblxuICAvLyBSaWdodCBlZGdlIG91dHNpZGUgdmlld3BvcnQsIHRyeSB0byBtb3ZlIGl0LlxuICBpZiAob3ZlcmZsb3cuYWRqdXN0WCAmJiBwb3MubGVmdCArIHNpemUud2lkdGggPiB2aXNpYmxlUmVjdC5yaWdodCkge1xuICAgIC8vIOS/neivgeW3pui+ueeVjOWSjOWPr+inhuWMuuWfn+W3pui+ueeVjOWvuem9kFxuICAgIHBvcy5sZWZ0ID0gTWF0aC5tYXgodmlzaWJsZVJlY3QucmlnaHQgLSBzaXplLndpZHRoLCB2aXNpYmxlUmVjdC5sZWZ0KTtcbiAgfVxuXG4gIC8vIFRvcCBlZGdlIG91dHNpZGUgdmlld3BvcnQsIHRyeSB0byBtb3ZlIGl0LlxuICBpZiAob3ZlcmZsb3cuYWRqdXN0WSAmJiBwb3MudG9wIDwgdmlzaWJsZVJlY3QudG9wKSB7XG4gICAgcG9zLnRvcCA9IHZpc2libGVSZWN0LnRvcDtcbiAgfVxuXG4gIC8vIFRvcCBlZGdlIGluc2lkZSBhbmQgYm90dG9tIGVkZ2Ugb3V0c2lkZSB2aWV3cG9ydCwgdHJ5IHRvIHJlc2l6ZSBpdC5cbiAgaWYgKG92ZXJmbG93LnJlc2l6ZUhlaWdodCAmJiBwb3MudG9wID49IHZpc2libGVSZWN0LnRvcCAmJiBwb3MudG9wICsgc2l6ZS5oZWlnaHQgPiB2aXNpYmxlUmVjdC5ib3R0b20pIHtcbiAgICBzaXplLmhlaWdodCAtPSBwb3MudG9wICsgc2l6ZS5oZWlnaHQgLSB2aXNpYmxlUmVjdC5ib3R0b207XG4gIH1cblxuICAvLyBCb3R0b20gZWRnZSBvdXRzaWRlIHZpZXdwb3J0LCB0cnkgdG8gbW92ZSBpdC5cbiAgaWYgKG92ZXJmbG93LmFkanVzdFkgJiYgcG9zLnRvcCArIHNpemUuaGVpZ2h0ID4gdmlzaWJsZVJlY3QuYm90dG9tKSB7XG4gICAgLy8g5L+d6K+B5LiK6L6555WM5ZKM5Y+v6KeG5Yy65Z+f5LiK6L6555WM5a+56b2QXG4gICAgcG9zLnRvcCA9IE1hdGgubWF4KHZpc2libGVSZWN0LmJvdHRvbSAtIHNpemUuaGVpZ2h0LCB2aXNpYmxlUmVjdC50b3ApO1xuICB9XG5cbiAgcmV0dXJuIHV0aWxzLm1peChwb3MsIHNpemUpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBhZGp1c3RGb3JWaWV3cG9ydDsiLCJpbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5cbmZ1bmN0aW9uIGdldFJlZ2lvbihub2RlKSB7XG4gIHZhciBvZmZzZXQgPSB2b2lkIDA7XG4gIHZhciB3ID0gdm9pZCAwO1xuICB2YXIgaCA9IHZvaWQgMDtcbiAgaWYgKCF1dGlscy5pc1dpbmRvdyhub2RlKSAmJiBub2RlLm5vZGVUeXBlICE9PSA5KSB7XG4gICAgb2Zmc2V0ID0gdXRpbHMub2Zmc2V0KG5vZGUpO1xuICAgIHcgPSB1dGlscy5vdXRlcldpZHRoKG5vZGUpO1xuICAgIGggPSB1dGlscy5vdXRlckhlaWdodChub2RlKTtcbiAgfSBlbHNlIHtcbiAgICB2YXIgd2luID0gdXRpbHMuZ2V0V2luZG93KG5vZGUpO1xuICAgIG9mZnNldCA9IHtcbiAgICAgIGxlZnQ6IHV0aWxzLmdldFdpbmRvd1Njcm9sbExlZnQod2luKSxcbiAgICAgIHRvcDogdXRpbHMuZ2V0V2luZG93U2Nyb2xsVG9wKHdpbilcbiAgICB9O1xuICAgIHcgPSB1dGlscy52aWV3cG9ydFdpZHRoKHdpbik7XG4gICAgaCA9IHV0aWxzLnZpZXdwb3J0SGVpZ2h0KHdpbik7XG4gIH1cbiAgb2Zmc2V0LndpZHRoID0gdztcbiAgb2Zmc2V0LmhlaWdodCA9IGg7XG4gIHJldHVybiBvZmZzZXQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGdldFJlZ2lvbjsiLCIvKipcbiAqIOiOt+WPliBub2RlIOS4iueahCBhbGlnbiDlr7npvZDngrkg55u45a+55LqO6aG16Z2i55qE5Z2Q5qCHXG4gKi9cblxuZnVuY3Rpb24gZ2V0QWxpZ25PZmZzZXQocmVnaW9uLCBhbGlnbikge1xuICB2YXIgViA9IGFsaWduLmNoYXJBdCgwKTtcbiAgdmFyIEggPSBhbGlnbi5jaGFyQXQoMSk7XG4gIHZhciB3ID0gcmVnaW9uLndpZHRoO1xuICB2YXIgaCA9IHJlZ2lvbi5oZWlnaHQ7XG5cbiAgdmFyIHggPSByZWdpb24ubGVmdDtcbiAgdmFyIHkgPSByZWdpb24udG9wO1xuXG4gIGlmIChWID09PSAnYycpIHtcbiAgICB5ICs9IGggLyAyO1xuICB9IGVsc2UgaWYgKFYgPT09ICdiJykge1xuICAgIHkgKz0gaDtcbiAgfVxuXG4gIGlmIChIID09PSAnYycpIHtcbiAgICB4ICs9IHcgLyAyO1xuICB9IGVsc2UgaWYgKEggPT09ICdyJykge1xuICAgIHggKz0gdztcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgbGVmdDogeCxcbiAgICB0b3A6IHlcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZ2V0QWxpZ25PZmZzZXQ7IiwiaW1wb3J0IGdldEFsaWduT2Zmc2V0IGZyb20gJy4vZ2V0QWxpZ25PZmZzZXQnO1xuXG5mdW5jdGlvbiBnZXRFbEZ1dHVyZVBvcyhlbFJlZ2lvbiwgcmVmTm9kZVJlZ2lvbiwgcG9pbnRzLCBvZmZzZXQsIHRhcmdldE9mZnNldCkge1xuICB2YXIgcDEgPSBnZXRBbGlnbk9mZnNldChyZWZOb2RlUmVnaW9uLCBwb2ludHNbMV0pO1xuICB2YXIgcDIgPSBnZXRBbGlnbk9mZnNldChlbFJlZ2lvbiwgcG9pbnRzWzBdKTtcbiAgdmFyIGRpZmYgPSBbcDIubGVmdCAtIHAxLmxlZnQsIHAyLnRvcCAtIHAxLnRvcF07XG5cbiAgcmV0dXJuIHtcbiAgICBsZWZ0OiBNYXRoLnJvdW5kKGVsUmVnaW9uLmxlZnQgLSBkaWZmWzBdICsgb2Zmc2V0WzBdIC0gdGFyZ2V0T2Zmc2V0WzBdKSxcbiAgICB0b3A6IE1hdGgucm91bmQoZWxSZWdpb24udG9wIC0gZGlmZlsxXSArIG9mZnNldFsxXSAtIHRhcmdldE9mZnNldFsxXSlcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZ2V0RWxGdXR1cmVQb3M7IiwiLyoqXG4gKiBhbGlnbiBkb20gbm9kZSBmbGV4aWJseVxuICogQGF1dGhvciB5aW1pbmdoZUBnbWFpbC5jb21cbiAqL1xuXG5pbXBvcnQgdXRpbHMgZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IGdldFZpc2libGVSZWN0Rm9yRWxlbWVudCBmcm9tICcuLi9nZXRWaXNpYmxlUmVjdEZvckVsZW1lbnQnO1xuaW1wb3J0IGFkanVzdEZvclZpZXdwb3J0IGZyb20gJy4uL2FkanVzdEZvclZpZXdwb3J0JztcbmltcG9ydCBnZXRSZWdpb24gZnJvbSAnLi4vZ2V0UmVnaW9uJztcbmltcG9ydCBnZXRFbEZ1dHVyZVBvcyBmcm9tICcuLi9nZXRFbEZ1dHVyZVBvcyc7XG5cbi8vIGh0dHA6Ly95aW1pbmdoZS5pdGV5ZS5jb20vYmxvZy8xMTI0NzIwXG5cbmZ1bmN0aW9uIGlzRmFpbFgoZWxGdXR1cmVQb3MsIGVsUmVnaW9uLCB2aXNpYmxlUmVjdCkge1xuICByZXR1cm4gZWxGdXR1cmVQb3MubGVmdCA8IHZpc2libGVSZWN0LmxlZnQgfHwgZWxGdXR1cmVQb3MubGVmdCArIGVsUmVnaW9uLndpZHRoID4gdmlzaWJsZVJlY3QucmlnaHQ7XG59XG5cbmZ1bmN0aW9uIGlzRmFpbFkoZWxGdXR1cmVQb3MsIGVsUmVnaW9uLCB2aXNpYmxlUmVjdCkge1xuICByZXR1cm4gZWxGdXR1cmVQb3MudG9wIDwgdmlzaWJsZVJlY3QudG9wIHx8IGVsRnV0dXJlUG9zLnRvcCArIGVsUmVnaW9uLmhlaWdodCA+IHZpc2libGVSZWN0LmJvdHRvbTtcbn1cblxuZnVuY3Rpb24gaXNDb21wbGV0ZUZhaWxYKGVsRnV0dXJlUG9zLCBlbFJlZ2lvbiwgdmlzaWJsZVJlY3QpIHtcbiAgcmV0dXJuIGVsRnV0dXJlUG9zLmxlZnQgPiB2aXNpYmxlUmVjdC5yaWdodCB8fCBlbEZ1dHVyZVBvcy5sZWZ0ICsgZWxSZWdpb24ud2lkdGggPCB2aXNpYmxlUmVjdC5sZWZ0O1xufVxuXG5mdW5jdGlvbiBpc0NvbXBsZXRlRmFpbFkoZWxGdXR1cmVQb3MsIGVsUmVnaW9uLCB2aXNpYmxlUmVjdCkge1xuICByZXR1cm4gZWxGdXR1cmVQb3MudG9wID4gdmlzaWJsZVJlY3QuYm90dG9tIHx8IGVsRnV0dXJlUG9zLnRvcCArIGVsUmVnaW9uLmhlaWdodCA8IHZpc2libGVSZWN0LnRvcDtcbn1cblxuZnVuY3Rpb24gZmxpcChwb2ludHMsIHJlZywgbWFwKSB7XG4gIHZhciByZXQgPSBbXTtcbiAgdXRpbHMuZWFjaChwb2ludHMsIGZ1bmN0aW9uIChwKSB7XG4gICAgcmV0LnB1c2gocC5yZXBsYWNlKHJlZywgZnVuY3Rpb24gKG0pIHtcbiAgICAgIHJldHVybiBtYXBbbV07XG4gICAgfSkpO1xuICB9KTtcbiAgcmV0dXJuIHJldDtcbn1cblxuZnVuY3Rpb24gZmxpcE9mZnNldChvZmZzZXQsIGluZGV4KSB7XG4gIG9mZnNldFtpbmRleF0gPSAtb2Zmc2V0W2luZGV4XTtcbiAgcmV0dXJuIG9mZnNldDtcbn1cblxuZnVuY3Rpb24gY29udmVydE9mZnNldChzdHIsIG9mZnNldExlbikge1xuICB2YXIgbiA9IHZvaWQgMDtcbiAgaWYgKC8lJC8udGVzdChzdHIpKSB7XG4gICAgbiA9IHBhcnNlSW50KHN0ci5zdWJzdHJpbmcoMCwgc3RyLmxlbmd0aCAtIDEpLCAxMCkgLyAxMDAgKiBvZmZzZXRMZW47XG4gIH0gZWxzZSB7XG4gICAgbiA9IHBhcnNlSW50KHN0ciwgMTApO1xuICB9XG4gIHJldHVybiBuIHx8IDA7XG59XG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZU9mZnNldChvZmZzZXQsIGVsKSB7XG4gIG9mZnNldFswXSA9IGNvbnZlcnRPZmZzZXQob2Zmc2V0WzBdLCBlbC53aWR0aCk7XG4gIG9mZnNldFsxXSA9IGNvbnZlcnRPZmZzZXQob2Zmc2V0WzFdLCBlbC5oZWlnaHQpO1xufVxuXG4vKipcbiAqIEBwYXJhbSBlbFxuICogQHBhcmFtIHRndFJlZ2lvbiDlj4LnhafoioLngrnmiYDljaDnmoTljLrln586IHsgbGVmdCwgdG9wLCB3aWR0aCwgaGVpZ2h0IH1cbiAqIEBwYXJhbSBhbGlnblxuICovXG5mdW5jdGlvbiBkb0FsaWduKGVsLCB0Z3RSZWdpb24sIGFsaWduLCBpc1RndFJlZ2lvblZpc2libGUpIHtcbiAgdmFyIHBvaW50cyA9IGFsaWduLnBvaW50cztcbiAgdmFyIG9mZnNldCA9IGFsaWduLm9mZnNldCB8fCBbMCwgMF07XG4gIHZhciB0YXJnZXRPZmZzZXQgPSBhbGlnbi50YXJnZXRPZmZzZXQgfHwgWzAsIDBdO1xuICB2YXIgb3ZlcmZsb3cgPSBhbGlnbi5vdmVyZmxvdztcbiAgdmFyIHNvdXJjZSA9IGFsaWduLnNvdXJjZSB8fCBlbDtcbiAgb2Zmc2V0ID0gW10uY29uY2F0KG9mZnNldCk7XG4gIHRhcmdldE9mZnNldCA9IFtdLmNvbmNhdCh0YXJnZXRPZmZzZXQpO1xuICBvdmVyZmxvdyA9IG92ZXJmbG93IHx8IHt9O1xuICB2YXIgbmV3T3ZlcmZsb3dDZmcgPSB7fTtcbiAgdmFyIGZhaWwgPSAwO1xuICAvLyDlvZPliY3oioLngrnlj6/ku6XooqvmlL7nva7nmoTmmL7npLrljLrln59cbiAgdmFyIHZpc2libGVSZWN0ID0gZ2V0VmlzaWJsZVJlY3RGb3JFbGVtZW50KHNvdXJjZSk7XG4gIC8vIOW9k+WJjeiKgueCueaJgOWNoOeahOWMuuWfnywgbGVmdC90b3Avd2lkdGgvaGVpZ2h0XG4gIHZhciBlbFJlZ2lvbiA9IGdldFJlZ2lvbihzb3VyY2UpO1xuICAvLyDlsIYgb2Zmc2V0IOi9rOaNouaIkOaVsOWAvO+8jOaUr+aMgeeZvuWIhuavlFxuICBub3JtYWxpemVPZmZzZXQob2Zmc2V0LCBlbFJlZ2lvbik7XG4gIG5vcm1hbGl6ZU9mZnNldCh0YXJnZXRPZmZzZXQsIHRndFJlZ2lvbik7XG4gIC8vIOW9k+WJjeiKgueCueWwhuimgeiiq+aUvue9rueahOS9jee9rlxuICB2YXIgZWxGdXR1cmVQb3MgPSBnZXRFbEZ1dHVyZVBvcyhlbFJlZ2lvbiwgdGd0UmVnaW9uLCBwb2ludHMsIG9mZnNldCwgdGFyZ2V0T2Zmc2V0KTtcbiAgLy8g5b2T5YmN6IqC54K55bCG6KaB5omA5aSE55qE5Yy65Z+fXG4gIHZhciBuZXdFbFJlZ2lvbiA9IHV0aWxzLm1lcmdlKGVsUmVnaW9uLCBlbEZ1dHVyZVBvcyk7XG5cbiAgLy8g5aaC5p6c5Y+v6KeG5Yy65Z+f5LiN6IO95a6M5YWo5pS+572u5b2T5YmN6IqC54K55pe25YWB6K646LCD5pW0XG4gIGlmICh2aXNpYmxlUmVjdCAmJiAob3ZlcmZsb3cuYWRqdXN0WCB8fCBvdmVyZmxvdy5hZGp1c3RZKSAmJiBpc1RndFJlZ2lvblZpc2libGUpIHtcbiAgICBpZiAob3ZlcmZsb3cuYWRqdXN0WCkge1xuICAgICAgLy8g5aaC5p6c5qiq5ZCR5LiN6IO95pS+5LiLXG4gICAgICBpZiAoaXNGYWlsWChlbEZ1dHVyZVBvcywgZWxSZWdpb24sIHZpc2libGVSZWN0KSkge1xuICAgICAgICAvLyDlr7npvZDkvY3nva7lj43kuItcbiAgICAgICAgdmFyIG5ld1BvaW50cyA9IGZsaXAocG9pbnRzLCAvW2xyXS9pZywge1xuICAgICAgICAgIGw6ICdyJyxcbiAgICAgICAgICByOiAnbCdcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIOWBj+enu+mHj+S5n+WPjeS4i1xuICAgICAgICB2YXIgbmV3T2Zmc2V0ID0gZmxpcE9mZnNldChvZmZzZXQsIDApO1xuICAgICAgICB2YXIgbmV3VGFyZ2V0T2Zmc2V0ID0gZmxpcE9mZnNldCh0YXJnZXRPZmZzZXQsIDApO1xuICAgICAgICB2YXIgbmV3RWxGdXR1cmVQb3MgPSBnZXRFbEZ1dHVyZVBvcyhlbFJlZ2lvbiwgdGd0UmVnaW9uLCBuZXdQb2ludHMsIG5ld09mZnNldCwgbmV3VGFyZ2V0T2Zmc2V0KTtcblxuICAgICAgICBpZiAoIWlzQ29tcGxldGVGYWlsWChuZXdFbEZ1dHVyZVBvcywgZWxSZWdpb24sIHZpc2libGVSZWN0KSkge1xuICAgICAgICAgIGZhaWwgPSAxO1xuICAgICAgICAgIHBvaW50cyA9IG5ld1BvaW50cztcbiAgICAgICAgICBvZmZzZXQgPSBuZXdPZmZzZXQ7XG4gICAgICAgICAgdGFyZ2V0T2Zmc2V0ID0gbmV3VGFyZ2V0T2Zmc2V0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG92ZXJmbG93LmFkanVzdFkpIHtcbiAgICAgIC8vIOWmguaenOe6teWQkeS4jeiDveaUvuS4i1xuICAgICAgaWYgKGlzRmFpbFkoZWxGdXR1cmVQb3MsIGVsUmVnaW9uLCB2aXNpYmxlUmVjdCkpIHtcbiAgICAgICAgLy8g5a+56b2Q5L2N572u5Y+N5LiLXG4gICAgICAgIHZhciBfbmV3UG9pbnRzID0gZmxpcChwb2ludHMsIC9bdGJdL2lnLCB7XG4gICAgICAgICAgdDogJ2InLFxuICAgICAgICAgIGI6ICd0J1xuICAgICAgICB9KTtcbiAgICAgICAgLy8g5YGP56e76YeP5Lmf5Y+N5LiLXG4gICAgICAgIHZhciBfbmV3T2Zmc2V0ID0gZmxpcE9mZnNldChvZmZzZXQsIDEpO1xuICAgICAgICB2YXIgX25ld1RhcmdldE9mZnNldCA9IGZsaXBPZmZzZXQodGFyZ2V0T2Zmc2V0LCAxKTtcbiAgICAgICAgdmFyIF9uZXdFbEZ1dHVyZVBvcyA9IGdldEVsRnV0dXJlUG9zKGVsUmVnaW9uLCB0Z3RSZWdpb24sIF9uZXdQb2ludHMsIF9uZXdPZmZzZXQsIF9uZXdUYXJnZXRPZmZzZXQpO1xuXG4gICAgICAgIGlmICghaXNDb21wbGV0ZUZhaWxZKF9uZXdFbEZ1dHVyZVBvcywgZWxSZWdpb24sIHZpc2libGVSZWN0KSkge1xuICAgICAgICAgIGZhaWwgPSAxO1xuICAgICAgICAgIHBvaW50cyA9IF9uZXdQb2ludHM7XG4gICAgICAgICAgb2Zmc2V0ID0gX25ld09mZnNldDtcbiAgICAgICAgICB0YXJnZXRPZmZzZXQgPSBfbmV3VGFyZ2V0T2Zmc2V0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8g5aaC5p6c5aSx6LSl77yM6YeN5paw6K6h566X5b2T5YmN6IqC54K55bCG6KaB6KKr5pS+572u55qE5L2N572uXG4gICAgaWYgKGZhaWwpIHtcbiAgICAgIGVsRnV0dXJlUG9zID0gZ2V0RWxGdXR1cmVQb3MoZWxSZWdpb24sIHRndFJlZ2lvbiwgcG9pbnRzLCBvZmZzZXQsIHRhcmdldE9mZnNldCk7XG4gICAgICB1dGlscy5taXgobmV3RWxSZWdpb24sIGVsRnV0dXJlUG9zKTtcbiAgICB9XG4gICAgdmFyIGlzU3RpbGxGYWlsWCA9IGlzRmFpbFgoZWxGdXR1cmVQb3MsIGVsUmVnaW9uLCB2aXNpYmxlUmVjdCk7XG4gICAgdmFyIGlzU3RpbGxGYWlsWSA9IGlzRmFpbFkoZWxGdXR1cmVQb3MsIGVsUmVnaW9uLCB2aXNpYmxlUmVjdCk7XG4gICAgLy8g5qOA5p+l5Y+N5LiL5ZCO55qE5L2N572u5piv5ZCm5Y+v5Lul5pS+5LiL5LqG77yM5aaC5p6c5LuN54S25pS+5LiN5LiL77yaXG4gICAgLy8gMS4g5aSN5Y6f5L+u5pS56L+H55qE5a6a5L2N5Y+C5pWwXG4gICAgaWYgKGlzU3RpbGxGYWlsWCB8fCBpc1N0aWxsRmFpbFkpIHtcbiAgICAgIHBvaW50cyA9IGFsaWduLnBvaW50cztcbiAgICAgIG9mZnNldCA9IGFsaWduLm9mZnNldCB8fCBbMCwgMF07XG4gICAgICB0YXJnZXRPZmZzZXQgPSBhbGlnbi50YXJnZXRPZmZzZXQgfHwgWzAsIDBdO1xuICAgIH1cbiAgICAvLyAyLiDlj6rmnInmjIflrprkuoblj6/ku6XosIPmlbTlvZPliY3mlrnlkJHmiY3osIPmlbRcbiAgICBuZXdPdmVyZmxvd0NmZy5hZGp1c3RYID0gb3ZlcmZsb3cuYWRqdXN0WCAmJiBpc1N0aWxsRmFpbFg7XG4gICAgbmV3T3ZlcmZsb3dDZmcuYWRqdXN0WSA9IG92ZXJmbG93LmFkanVzdFkgJiYgaXNTdGlsbEZhaWxZO1xuXG4gICAgLy8g56Gu5a6e6KaB6LCD5pW077yM55Sa6Iez5Y+v6IO95Lya6LCD5pW06auY5bqm5a695bqmXG4gICAgaWYgKG5ld092ZXJmbG93Q2ZnLmFkanVzdFggfHwgbmV3T3ZlcmZsb3dDZmcuYWRqdXN0WSkge1xuICAgICAgbmV3RWxSZWdpb24gPSBhZGp1c3RGb3JWaWV3cG9ydChlbEZ1dHVyZVBvcywgZWxSZWdpb24sIHZpc2libGVSZWN0LCBuZXdPdmVyZmxvd0NmZyk7XG4gICAgfVxuICB9XG5cbiAgLy8gbmVlZCBqdWRnZSB0byBpbiBjYXNlIHNldCBmaXhlZCB3aXRoIGluIGNzcyBvbiBoZWlnaHQgYXV0byBlbGVtZW50XG4gIGlmIChuZXdFbFJlZ2lvbi53aWR0aCAhPT0gZWxSZWdpb24ud2lkdGgpIHtcbiAgICB1dGlscy5jc3Moc291cmNlLCAnd2lkdGgnLCB1dGlscy53aWR0aChzb3VyY2UpICsgbmV3RWxSZWdpb24ud2lkdGggLSBlbFJlZ2lvbi53aWR0aCk7XG4gIH1cblxuICBpZiAobmV3RWxSZWdpb24uaGVpZ2h0ICE9PSBlbFJlZ2lvbi5oZWlnaHQpIHtcbiAgICB1dGlscy5jc3Moc291cmNlLCAnaGVpZ2h0JywgdXRpbHMuaGVpZ2h0KHNvdXJjZSkgKyBuZXdFbFJlZ2lvbi5oZWlnaHQgLSBlbFJlZ2lvbi5oZWlnaHQpO1xuICB9XG5cbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2tpc3N5dGVhbS9raXNzeS9pc3N1ZXMvMTkwXG4gIC8vIOebuOWvueS6juWxj+W5leS9jee9ruayoeWPmO+8jOiAjCBsZWZ0L3RvcCDlj5jkuoZcbiAgLy8g5L6L5aaCIDxkaXYgJ3JlbGF0aXZlJz48ZWwgYWJzb2x1dGU+PC9kaXY+XG4gIHV0aWxzLm9mZnNldChzb3VyY2UsIHtcbiAgICBsZWZ0OiBuZXdFbFJlZ2lvbi5sZWZ0LFxuICAgIHRvcDogbmV3RWxSZWdpb24udG9wXG4gIH0sIHtcbiAgICB1c2VDc3NSaWdodDogYWxpZ24udXNlQ3NzUmlnaHQsXG4gICAgdXNlQ3NzQm90dG9tOiBhbGlnbi51c2VDc3NCb3R0b20sXG4gICAgdXNlQ3NzVHJhbnNmb3JtOiBhbGlnbi51c2VDc3NUcmFuc2Zvcm0sXG4gICAgaWdub3JlU2hha2U6IGFsaWduLmlnbm9yZVNoYWtlXG4gIH0pO1xuXG4gIHJldHVybiB7XG4gICAgcG9pbnRzOiBwb2ludHMsXG4gICAgb2Zmc2V0OiBvZmZzZXQsXG4gICAgdGFyZ2V0T2Zmc2V0OiB0YXJnZXRPZmZzZXQsXG4gICAgb3ZlcmZsb3c6IG5ld092ZXJmbG93Q2ZnXG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGRvQWxpZ247XG4vKipcbiAqICAyMDEyLTA0LTI2IHlpbWluZ2hlQGdtYWlsLmNvbVxuICogICAtIOS8mOWMluaZuuiDveWvuem9kOeul+azlVxuICogICAtIOaFjueUqCByZXNpemVYWFxuICpcbiAqICAyMDExLTA3LTEzIHlpbWluZ2hlQGdtYWlsLmNvbSBub3RlOlxuICogICAtIOWinuWKoOaZuuiDveWvuem9kO+8jOS7peWPiuWkp+Wwj+iwg+aVtOmAiemhuVxuICoqLyIsImltcG9ydCBkb0FsaWduIGZyb20gJy4vYWxpZ24nO1xuaW1wb3J0IGdldE9mZnNldFBhcmVudCBmcm9tICcuLi9nZXRPZmZzZXRQYXJlbnQnO1xuaW1wb3J0IGdldFZpc2libGVSZWN0Rm9yRWxlbWVudCBmcm9tICcuLi9nZXRWaXNpYmxlUmVjdEZvckVsZW1lbnQnO1xuaW1wb3J0IGdldFJlZ2lvbiBmcm9tICcuLi9nZXRSZWdpb24nO1xuXG5mdW5jdGlvbiBpc091dE9mVmlzaWJsZVJlY3QodGFyZ2V0KSB7XG4gIHZhciB2aXNpYmxlUmVjdCA9IGdldFZpc2libGVSZWN0Rm9yRWxlbWVudCh0YXJnZXQpO1xuICB2YXIgdGFyZ2V0UmVnaW9uID0gZ2V0UmVnaW9uKHRhcmdldCk7XG5cbiAgcmV0dXJuICF2aXNpYmxlUmVjdCB8fCB0YXJnZXRSZWdpb24ubGVmdCArIHRhcmdldFJlZ2lvbi53aWR0aCA8PSB2aXNpYmxlUmVjdC5sZWZ0IHx8IHRhcmdldFJlZ2lvbi50b3AgKyB0YXJnZXRSZWdpb24uaGVpZ2h0IDw9IHZpc2libGVSZWN0LnRvcCB8fCB0YXJnZXRSZWdpb24ubGVmdCA+PSB2aXNpYmxlUmVjdC5yaWdodCB8fCB0YXJnZXRSZWdpb24udG9wID49IHZpc2libGVSZWN0LmJvdHRvbTtcbn1cblxuZnVuY3Rpb24gYWxpZ25FbGVtZW50KGVsLCByZWZOb2RlLCBhbGlnbikge1xuICB2YXIgdGFyZ2V0ID0gYWxpZ24udGFyZ2V0IHx8IHJlZk5vZGU7XG4gIHZhciByZWZOb2RlUmVnaW9uID0gZ2V0UmVnaW9uKHRhcmdldCk7XG5cbiAgdmFyIGlzVGFyZ2V0Tm90T3V0T2ZWaXNpYmxlID0gIWlzT3V0T2ZWaXNpYmxlUmVjdCh0YXJnZXQpO1xuXG4gIHJldHVybiBkb0FsaWduKGVsLCByZWZOb2RlUmVnaW9uLCBhbGlnbiwgaXNUYXJnZXROb3RPdXRPZlZpc2libGUpO1xufVxuXG5hbGlnbkVsZW1lbnQuX19nZXRPZmZzZXRQYXJlbnQgPSBnZXRPZmZzZXRQYXJlbnQ7XG5cbmFsaWduRWxlbWVudC5fX2dldFZpc2libGVSZWN0Rm9yRWxlbWVudCA9IGdldFZpc2libGVSZWN0Rm9yRWxlbWVudDtcblxuZXhwb3J0IGRlZmF1bHQgYWxpZ25FbGVtZW50OyIsInZhciBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07XG5cbmltcG9ydCB1dGlscyBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgZG9BbGlnbiBmcm9tICcuL2FsaWduJztcblxuLyoqXG4gKiBgdGd0UG9pbnRgOiB7IHBhZ2VYLCBwYWdlWSB9IG9yIHsgY2xpZW50WCwgY2xpZW50WSB9LlxuICogSWYgY2xpZW50IHBvc2l0aW9uIHByb3ZpZGVkLCB3aWxsIGludGVybmFsIGNvbnZlcnQgdG8gcGFnZSBwb3NpdGlvbi5cbiAqL1xuXG5mdW5jdGlvbiBhbGlnblBvaW50KGVsLCB0Z3RQb2ludCwgYWxpZ24pIHtcbiAgdmFyIHBhZ2VYID0gdm9pZCAwO1xuICB2YXIgcGFnZVkgPSB2b2lkIDA7XG5cbiAgdmFyIGRvYyA9IHV0aWxzLmdldERvY3VtZW50KGVsKTtcbiAgdmFyIHdpbiA9IGRvYy5kZWZhdWx0VmlldyB8fCBkb2MucGFyZW50V2luZG93O1xuXG4gIHZhciBzY3JvbGxYID0gdXRpbHMuZ2V0V2luZG93U2Nyb2xsTGVmdCh3aW4pO1xuICB2YXIgc2Nyb2xsWSA9IHV0aWxzLmdldFdpbmRvd1Njcm9sbFRvcCh3aW4pO1xuICB2YXIgdmlld3BvcnRXaWR0aCA9IHV0aWxzLnZpZXdwb3J0V2lkdGgod2luKTtcbiAgdmFyIHZpZXdwb3J0SGVpZ2h0ID0gdXRpbHMudmlld3BvcnRIZWlnaHQod2luKTtcblxuICBpZiAoJ3BhZ2VYJyBpbiB0Z3RQb2ludCkge1xuICAgIHBhZ2VYID0gdGd0UG9pbnQucGFnZVg7XG4gIH0gZWxzZSB7XG4gICAgcGFnZVggPSBzY3JvbGxYICsgdGd0UG9pbnQuY2xpZW50WDtcbiAgfVxuXG4gIGlmICgncGFnZVknIGluIHRndFBvaW50KSB7XG4gICAgcGFnZVkgPSB0Z3RQb2ludC5wYWdlWTtcbiAgfSBlbHNlIHtcbiAgICBwYWdlWSA9IHNjcm9sbFkgKyB0Z3RQb2ludC5jbGllbnRZO1xuICB9XG5cbiAgdmFyIHRndFJlZ2lvbiA9IHtcbiAgICBsZWZ0OiBwYWdlWCxcbiAgICB0b3A6IHBhZ2VZLFxuICAgIHdpZHRoOiAwLFxuICAgIGhlaWdodDogMFxuICB9O1xuXG4gIHZhciBwb2ludEluVmlldyA9IHBhZ2VYID49IDAgJiYgcGFnZVggPD0gc2Nyb2xsWCArIHZpZXdwb3J0V2lkdGggJiYgcGFnZVkgPj0gMCAmJiBwYWdlWSA8PSBzY3JvbGxZICsgdmlld3BvcnRIZWlnaHQ7XG5cbiAgLy8gUHJvdmlkZSBkZWZhdWx0IHRhcmdldCBwb2ludFxuICB2YXIgcG9pbnRzID0gW2FsaWduLnBvaW50c1swXSwgJ2NjJ107XG5cbiAgcmV0dXJuIGRvQWxpZ24oZWwsIHRndFJlZ2lvbiwgX2V4dGVuZHMoe30sIGFsaWduLCB7IHBvaW50czogcG9pbnRzIH0pLCBwb2ludEluVmlldyk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGFsaWduUG9pbnQ7IiwiaW1wb3J0IGNvbnRhaW5zIGZyb20gJ3JjLXV0aWwvZXMvRG9tL2NvbnRhaW5zJztcblxuZXhwb3J0IGZ1bmN0aW9uIGJ1ZmZlcihmbiwgbXMpIHtcbiAgdmFyIHRpbWVyID0gdm9pZCAwO1xuXG4gIGZ1bmN0aW9uIGNsZWFyKCkge1xuICAgIGlmICh0aW1lcikge1xuICAgICAgY2xlYXJUaW1lb3V0KHRpbWVyKTtcbiAgICAgIHRpbWVyID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBidWZmZXJGbigpIHtcbiAgICBjbGVhcigpO1xuICAgIHRpbWVyID0gc2V0VGltZW91dChmbiwgbXMpO1xuICB9XG5cbiAgYnVmZmVyRm4uY2xlYXIgPSBjbGVhcjtcblxuICByZXR1cm4gYnVmZmVyRm47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1NhbWVQb2ludChwcmV2LCBuZXh0KSB7XG4gIGlmIChwcmV2ID09PSBuZXh0KSByZXR1cm4gdHJ1ZTtcbiAgaWYgKCFwcmV2IHx8ICFuZXh0KSByZXR1cm4gZmFsc2U7XG5cbiAgaWYgKCdwYWdlWCcgaW4gbmV4dCAmJiAncGFnZVknIGluIG5leHQpIHtcbiAgICByZXR1cm4gcHJldi5wYWdlWCA9PT0gbmV4dC5wYWdlWCAmJiBwcmV2LnBhZ2VZID09PSBuZXh0LnBhZ2VZO1xuICB9XG5cbiAgaWYgKCdjbGllbnRYJyBpbiBuZXh0ICYmICdjbGllbnRZJyBpbiBuZXh0KSB7XG4gICAgcmV0dXJuIHByZXYuY2xpZW50WCA9PT0gbmV4dC5jbGllbnRYICYmIHByZXYuY2xpZW50WSA9PT0gbmV4dC5jbGllbnRZO1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNXaW5kb3cob2JqKSB7XG4gIHJldHVybiBvYmogJiYgdHlwZW9mIG9iaiA9PT0gJ29iamVjdCcgJiYgb2JqLndpbmRvdyA9PT0gb2JqO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTaW1pbGFyVmFsdWUodmFsMSwgdmFsMikge1xuICB2YXIgaW50MSA9IE1hdGguZmxvb3IodmFsMSk7XG4gIHZhciBpbnQyID0gTWF0aC5mbG9vcih2YWwyKTtcbiAgcmV0dXJuIE1hdGguYWJzKGludDEgLSBpbnQyKSA8PSAxO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzdG9yZUZvY3VzKGFjdGl2ZUVsZW1lbnQsIGNvbnRhaW5lcikge1xuICAvLyBGb2N1cyBiYWNrIGlmIGlzIGluIHRoZSBjb250YWluZXJcbiAgaWYgKGFjdGl2ZUVsZW1lbnQgIT09IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgJiYgY29udGFpbnMoY29udGFpbmVyLCBhY3RpdmVFbGVtZW50KSkge1xuICAgIGFjdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxufSIsImltcG9ydCBfY2xhc3NDYWxsQ2hlY2sgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL2NsYXNzQ2FsbENoZWNrJztcbmltcG9ydCBfY3JlYXRlQ2xhc3MgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL2NyZWF0ZUNsYXNzJztcbmltcG9ydCBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybiBmcm9tICdiYWJlbC1ydW50aW1lL2hlbHBlcnMvcG9zc2libGVDb25zdHJ1Y3RvclJldHVybic7XG5pbXBvcnQgX2luaGVyaXRzIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9pbmhlcml0cyc7XG5pbXBvcnQgUmVhY3QsIHsgQ29tcG9uZW50IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IHsgYWxpZ25FbGVtZW50LCBhbGlnblBvaW50IH0gZnJvbSAnZG9tLWFsaWduJztcbmltcG9ydCBhZGRFdmVudExpc3RlbmVyIGZyb20gJ3JjLXV0aWwvZXMvRG9tL2FkZEV2ZW50TGlzdGVuZXInO1xuXG5pbXBvcnQgeyBpc1dpbmRvdywgYnVmZmVyLCBpc1NhbWVQb2ludCwgaXNTaW1pbGFyVmFsdWUsIHJlc3RvcmVGb2N1cyB9IGZyb20gJy4vdXRpbCc7XG5cbmZ1bmN0aW9uIGdldEVsZW1lbnQoZnVuYykge1xuICBpZiAodHlwZW9mIGZ1bmMgIT09ICdmdW5jdGlvbicgfHwgIWZ1bmMpIHJldHVybiBudWxsO1xuICByZXR1cm4gZnVuYygpO1xufVxuXG5mdW5jdGlvbiBnZXRQb2ludChwb2ludCkge1xuICBpZiAodHlwZW9mIHBvaW50ICE9PSAnb2JqZWN0JyB8fCAhcG9pbnQpIHJldHVybiBudWxsO1xuICByZXR1cm4gcG9pbnQ7XG59XG5cbnZhciBBbGlnbiA9IGZ1bmN0aW9uIChfQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhBbGlnbiwgX0NvbXBvbmVudCk7XG5cbiAgZnVuY3Rpb24gQWxpZ24oKSB7XG4gICAgdmFyIF9yZWY7XG5cbiAgICB2YXIgX3RlbXAsIF90aGlzLCBfcmV0O1xuXG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEFsaWduKTtcblxuICAgIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgICBhcmdzW19rZXldID0gYXJndW1lbnRzW19rZXldO1xuICAgIH1cblxuICAgIHJldHVybiBfcmV0ID0gKF90ZW1wID0gKF90aGlzID0gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgKF9yZWYgPSBBbGlnbi5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKEFsaWduKSkuY2FsbC5hcHBseShfcmVmLCBbdGhpc10uY29uY2F0KGFyZ3MpKSksIF90aGlzKSwgX3RoaXMuZm9yY2VBbGlnbiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBfdGhpcyRwcm9wcyA9IF90aGlzLnByb3BzLFxuICAgICAgICAgIGRpc2FibGVkID0gX3RoaXMkcHJvcHMuZGlzYWJsZWQsXG4gICAgICAgICAgdGFyZ2V0ID0gX3RoaXMkcHJvcHMudGFyZ2V0LFxuICAgICAgICAgIGFsaWduID0gX3RoaXMkcHJvcHMuYWxpZ24sXG4gICAgICAgICAgb25BbGlnbiA9IF90aGlzJHByb3BzLm9uQWxpZ247XG5cbiAgICAgIGlmICghZGlzYWJsZWQgJiYgdGFyZ2V0KSB7XG4gICAgICAgIHZhciBzb3VyY2UgPSBSZWFjdERPTS5maW5kRE9NTm9kZShfdGhpcyk7XG5cbiAgICAgICAgdmFyIHJlc3VsdCA9IHZvaWQgMDtcbiAgICAgICAgdmFyIGVsZW1lbnQgPSBnZXRFbGVtZW50KHRhcmdldCk7XG4gICAgICAgIHZhciBwb2ludCA9IGdldFBvaW50KHRhcmdldCk7XG5cbiAgICAgICAgLy8gSUUgbG9zZSBmb2N1cyBhZnRlciBlbGVtZW50IHJlYWxpZ25cbiAgICAgICAgLy8gV2Ugc2hvdWxkIHJlY29yZCBhY3RpdmVFbGVtZW50IGFuZCByZXN0b3JlIGxhdGVyXG4gICAgICAgIHZhciBhY3RpdmVFbGVtZW50ID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcblxuICAgICAgICBpZiAoZWxlbWVudCkge1xuICAgICAgICAgIHJlc3VsdCA9IGFsaWduRWxlbWVudChzb3VyY2UsIGVsZW1lbnQsIGFsaWduKTtcbiAgICAgICAgfSBlbHNlIGlmIChwb2ludCkge1xuICAgICAgICAgIHJlc3VsdCA9IGFsaWduUG9pbnQoc291cmNlLCBwb2ludCwgYWxpZ24pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmVzdG9yZUZvY3VzKGFjdGl2ZUVsZW1lbnQsIHNvdXJjZSk7XG5cbiAgICAgICAgaWYgKG9uQWxpZ24pIHtcbiAgICAgICAgICBvbkFsaWduKHNvdXJjZSwgcmVzdWx0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sIF90ZW1wKSwgX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oX3RoaXMsIF9yZXQpO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKEFsaWduLCBbe1xuICAgIGtleTogJ2NvbXBvbmVudERpZE1vdW50JyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICB2YXIgcHJvcHMgPSB0aGlzLnByb3BzO1xuICAgICAgLy8gaWYgcGFyZW50IHJlZiBub3QgYXR0YWNoZWQgLi4uLiB1c2UgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWRcbiAgICAgIHRoaXMuZm9yY2VBbGlnbigpO1xuICAgICAgaWYgKCFwcm9wcy5kaXNhYmxlZCAmJiBwcm9wcy5tb25pdG9yV2luZG93UmVzaXplKSB7XG4gICAgICAgIHRoaXMuc3RhcnRNb25pdG9yV2luZG93UmVzaXplKCk7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnY29tcG9uZW50RGlkVXBkYXRlJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wcykge1xuICAgICAgdmFyIHJlQWxpZ24gPSBmYWxzZTtcbiAgICAgIHZhciBwcm9wcyA9IHRoaXMucHJvcHM7XG5cbiAgICAgIGlmICghcHJvcHMuZGlzYWJsZWQpIHtcbiAgICAgICAgdmFyIHNvdXJjZSA9IFJlYWN0RE9NLmZpbmRET01Ob2RlKHRoaXMpO1xuICAgICAgICB2YXIgc291cmNlUmVjdCA9IHNvdXJjZSA/IHNvdXJjZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSA6IG51bGw7XG5cbiAgICAgICAgaWYgKHByZXZQcm9wcy5kaXNhYmxlZCkge1xuICAgICAgICAgIHJlQWxpZ24gPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZhciBsYXN0RWxlbWVudCA9IGdldEVsZW1lbnQocHJldlByb3BzLnRhcmdldCk7XG4gICAgICAgICAgdmFyIGN1cnJlbnRFbGVtZW50ID0gZ2V0RWxlbWVudChwcm9wcy50YXJnZXQpO1xuICAgICAgICAgIHZhciBsYXN0UG9pbnQgPSBnZXRQb2ludChwcmV2UHJvcHMudGFyZ2V0KTtcbiAgICAgICAgICB2YXIgY3VycmVudFBvaW50ID0gZ2V0UG9pbnQocHJvcHMudGFyZ2V0KTtcblxuICAgICAgICAgIGlmIChpc1dpbmRvdyhsYXN0RWxlbWVudCkgJiYgaXNXaW5kb3coY3VycmVudEVsZW1lbnQpKSB7XG4gICAgICAgICAgICAvLyBTa2lwIGlmIGlzIHdpbmRvd1xuICAgICAgICAgICAgcmVBbGlnbiA9IGZhbHNlO1xuICAgICAgICAgIH0gZWxzZSBpZiAobGFzdEVsZW1lbnQgIT09IGN1cnJlbnRFbGVtZW50IHx8IC8vIEVsZW1lbnQgY2hhbmdlXG4gICAgICAgICAgbGFzdEVsZW1lbnQgJiYgIWN1cnJlbnRFbGVtZW50ICYmIGN1cnJlbnRQb2ludCB8fCAvLyBDaGFuZ2UgZnJvbSBlbGVtZW50IHRvIHBvaW50XG4gICAgICAgICAgbGFzdFBvaW50ICYmIGN1cnJlbnRQb2ludCAmJiBjdXJyZW50RWxlbWVudCB8fCAvLyBDaGFuZ2UgZnJvbSBwb2ludCB0byBlbGVtZW50XG4gICAgICAgICAgY3VycmVudFBvaW50ICYmICFpc1NhbWVQb2ludChsYXN0UG9pbnQsIGN1cnJlbnRQb2ludCkpIHtcbiAgICAgICAgICAgIHJlQWxpZ24gPSB0cnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIElmIHNvdXJjZSBlbGVtZW50IHNpemUgY2hhbmdlZFxuICAgICAgICAgIHZhciBwcmVSZWN0ID0gdGhpcy5zb3VyY2VSZWN0IHx8IHt9O1xuICAgICAgICAgIGlmICghcmVBbGlnbiAmJiBzb3VyY2UgJiYgKCFpc1NpbWlsYXJWYWx1ZShwcmVSZWN0LndpZHRoLCBzb3VyY2VSZWN0LndpZHRoKSB8fCAhaXNTaW1pbGFyVmFsdWUocHJlUmVjdC5oZWlnaHQsIHNvdXJjZVJlY3QuaGVpZ2h0KSkpIHtcbiAgICAgICAgICAgIHJlQWxpZ24gPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc291cmNlUmVjdCA9IHNvdXJjZVJlY3Q7XG4gICAgICB9XG5cbiAgICAgIGlmIChyZUFsaWduKSB7XG4gICAgICAgIHRoaXMuZm9yY2VBbGlnbigpO1xuICAgICAgfVxuXG4gICAgICBpZiAocHJvcHMubW9uaXRvcldpbmRvd1Jlc2l6ZSAmJiAhcHJvcHMuZGlzYWJsZWQpIHtcbiAgICAgICAgdGhpcy5zdGFydE1vbml0b3JXaW5kb3dSZXNpemUoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc3RvcE1vbml0b3JXaW5kb3dSZXNpemUoKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdjb21wb25lbnRXaWxsVW5tb3VudCcsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgdGhpcy5zdG9wTW9uaXRvcldpbmRvd1Jlc2l6ZSgpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ3N0YXJ0TW9uaXRvcldpbmRvd1Jlc2l6ZScsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHN0YXJ0TW9uaXRvcldpbmRvd1Jlc2l6ZSgpIHtcbiAgICAgIGlmICghdGhpcy5yZXNpemVIYW5kbGVyKSB7XG4gICAgICAgIHRoaXMuYnVmZmVyTW9uaXRvciA9IGJ1ZmZlcih0aGlzLmZvcmNlQWxpZ24sIHRoaXMucHJvcHMubW9uaXRvckJ1ZmZlclRpbWUpO1xuICAgICAgICB0aGlzLnJlc2l6ZUhhbmRsZXIgPSBhZGRFdmVudExpc3RlbmVyKHdpbmRvdywgJ3Jlc2l6ZScsIHRoaXMuYnVmZmVyTW9uaXRvcik7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnc3RvcE1vbml0b3JXaW5kb3dSZXNpemUnLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBzdG9wTW9uaXRvcldpbmRvd1Jlc2l6ZSgpIHtcbiAgICAgIGlmICh0aGlzLnJlc2l6ZUhhbmRsZXIpIHtcbiAgICAgICAgdGhpcy5idWZmZXJNb25pdG9yLmNsZWFyKCk7XG4gICAgICAgIHRoaXMucmVzaXplSGFuZGxlci5yZW1vdmUoKTtcbiAgICAgICAgdGhpcy5yZXNpemVIYW5kbGVyID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdyZW5kZXInLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgICAgdmFyIF9wcm9wcyA9IHRoaXMucHJvcHMsXG4gICAgICAgICAgY2hpbGRyZW5Qcm9wcyA9IF9wcm9wcy5jaGlsZHJlblByb3BzLFxuICAgICAgICAgIGNoaWxkcmVuID0gX3Byb3BzLmNoaWxkcmVuO1xuXG4gICAgICB2YXIgY2hpbGQgPSBSZWFjdC5DaGlsZHJlbi5vbmx5KGNoaWxkcmVuKTtcbiAgICAgIGlmIChjaGlsZHJlblByb3BzKSB7XG4gICAgICAgIHZhciBuZXdQcm9wcyA9IHt9O1xuICAgICAgICB2YXIgcHJvcExpc3QgPSBPYmplY3Qua2V5cyhjaGlsZHJlblByb3BzKTtcbiAgICAgICAgcHJvcExpc3QuZm9yRWFjaChmdW5jdGlvbiAocHJvcCkge1xuICAgICAgICAgIG5ld1Byb3BzW3Byb3BdID0gX3RoaXMyLnByb3BzW2NoaWxkcmVuUHJvcHNbcHJvcF1dO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gUmVhY3QuY2xvbmVFbGVtZW50KGNoaWxkLCBuZXdQcm9wcyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gY2hpbGQ7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIEFsaWduO1xufShDb21wb25lbnQpO1xuXG5BbGlnbi5wcm9wVHlwZXMgPSB7XG4gIGNoaWxkcmVuUHJvcHM6IFByb3BUeXBlcy5vYmplY3QsXG4gIGFsaWduOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gIHRhcmdldDogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLmZ1bmMsIFByb3BUeXBlcy5zaGFwZSh7XG4gICAgY2xpZW50WDogUHJvcFR5cGVzLm51bWJlcixcbiAgICBjbGllbnRZOiBQcm9wVHlwZXMubnVtYmVyLFxuICAgIHBhZ2VYOiBQcm9wVHlwZXMubnVtYmVyLFxuICAgIHBhZ2VZOiBQcm9wVHlwZXMubnVtYmVyXG4gIH0pXSksXG4gIG9uQWxpZ246IFByb3BUeXBlcy5mdW5jLFxuICBtb25pdG9yQnVmZmVyVGltZTogUHJvcFR5cGVzLm51bWJlcixcbiAgbW9uaXRvcldpbmRvd1Jlc2l6ZTogUHJvcFR5cGVzLmJvb2wsXG4gIGRpc2FibGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgY2hpbGRyZW46IFByb3BUeXBlcy5hbnlcbn07XG5BbGlnbi5kZWZhdWx0UHJvcHMgPSB7XG4gIHRhcmdldDogZnVuY3Rpb24gdGFyZ2V0KCkge1xuICAgIHJldHVybiB3aW5kb3c7XG4gIH0sXG4gIG1vbml0b3JCdWZmZXJUaW1lOiA1MCxcbiAgbW9uaXRvcldpbmRvd1Jlc2l6ZTogZmFsc2UsXG4gIGRpc2FibGVkOiBmYWxzZVxufTtcblxuXG5leHBvcnQgZGVmYXVsdCBBbGlnbjsiLCIvLyBleHBvcnQgdGhpcyBwYWNrYWdlJ3MgYXBpXG5pbXBvcnQgQWxpZ24gZnJvbSAnLi9BbGlnbic7XG5cbmV4cG9ydCBkZWZhdWx0IEFsaWduOyIsImltcG9ydCBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzJztcbmltcG9ydCBfY2xhc3NDYWxsQ2hlY2sgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL2NsYXNzQ2FsbENoZWNrJztcbmltcG9ydCBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybiBmcm9tICdiYWJlbC1ydW50aW1lL2hlbHBlcnMvcG9zc2libGVDb25zdHJ1Y3RvclJldHVybic7XG5pbXBvcnQgX2luaGVyaXRzIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9pbmhlcml0cyc7XG5pbXBvcnQgUmVhY3QsIHsgQ29tcG9uZW50IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcblxudmFyIExhenlSZW5kZXJCb3ggPSBmdW5jdGlvbiAoX0NvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoTGF6eVJlbmRlckJveCwgX0NvbXBvbmVudCk7XG5cbiAgZnVuY3Rpb24gTGF6eVJlbmRlckJveCgpIHtcbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgTGF6eVJlbmRlckJveCk7XG5cbiAgICByZXR1cm4gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgX0NvbXBvbmVudC5hcHBseSh0aGlzLCBhcmd1bWVudHMpKTtcbiAgfVxuXG4gIExhenlSZW5kZXJCb3gucHJvdG90eXBlLnNob3VsZENvbXBvbmVudFVwZGF0ZSA9IGZ1bmN0aW9uIHNob3VsZENvbXBvbmVudFVwZGF0ZShuZXh0UHJvcHMpIHtcbiAgICByZXR1cm4gbmV4dFByb3BzLmhpZGRlbkNsYXNzTmFtZSB8fCBuZXh0UHJvcHMudmlzaWJsZTtcbiAgfTtcblxuICBMYXp5UmVuZGVyQm94LnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgdmFyIF9wcm9wcyA9IHRoaXMucHJvcHMsXG4gICAgICAgIGhpZGRlbkNsYXNzTmFtZSA9IF9wcm9wcy5oaWRkZW5DbGFzc05hbWUsXG4gICAgICAgIHZpc2libGUgPSBfcHJvcHMudmlzaWJsZSxcbiAgICAgICAgcHJvcHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoX3Byb3BzLCBbJ2hpZGRlbkNsYXNzTmFtZScsICd2aXNpYmxlJ10pO1xuXG4gICAgaWYgKGhpZGRlbkNsYXNzTmFtZSB8fCBSZWFjdC5DaGlsZHJlbi5jb3VudChwcm9wcy5jaGlsZHJlbikgPiAxKSB7XG4gICAgICBpZiAoIXZpc2libGUgJiYgaGlkZGVuQ2xhc3NOYW1lKSB7XG4gICAgICAgIHByb3BzLmNsYXNzTmFtZSArPSAnICcgKyBoaWRkZW5DbGFzc05hbWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudCgnZGl2JywgcHJvcHMpO1xuICAgIH1cblxuICAgIHJldHVybiBSZWFjdC5DaGlsZHJlbi5vbmx5KHByb3BzLmNoaWxkcmVuKTtcbiAgfTtcblxuICByZXR1cm4gTGF6eVJlbmRlckJveDtcbn0oQ29tcG9uZW50KTtcblxuTGF6eVJlbmRlckJveC5wcm9wVHlwZXMgPSB7XG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMuYW55LFxuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHZpc2libGU6IFByb3BUeXBlcy5ib29sLFxuICBoaWRkZW5DbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmdcbn07XG5cblxuZXhwb3J0IGRlZmF1bHQgTGF6eVJlbmRlckJveDsiLCJpbXBvcnQgX2NsYXNzQ2FsbENoZWNrIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9jbGFzc0NhbGxDaGVjayc7XG5pbXBvcnQgX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4gZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4nO1xuaW1wb3J0IF9pbmhlcml0cyBmcm9tICdiYWJlbC1ydW50aW1lL2hlbHBlcnMvaW5oZXJpdHMnO1xuaW1wb3J0IFJlYWN0LCB7IENvbXBvbmVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgTGF6eVJlbmRlckJveCBmcm9tICcuL0xhenlSZW5kZXJCb3gnO1xuXG52YXIgUG9wdXBJbm5lciA9IGZ1bmN0aW9uIChfQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhQb3B1cElubmVyLCBfQ29tcG9uZW50KTtcblxuICBmdW5jdGlvbiBQb3B1cElubmVyKCkge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBQb3B1cElubmVyKTtcblxuICAgIHJldHVybiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCBfQ29tcG9uZW50LmFwcGx5KHRoaXMsIGFyZ3VtZW50cykpO1xuICB9XG5cbiAgUG9wdXBJbm5lci5wcm90b3R5cGUucmVuZGVyID0gZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgIHZhciBwcm9wcyA9IHRoaXMucHJvcHM7XG4gICAgdmFyIGNsYXNzTmFtZSA9IHByb3BzLmNsYXNzTmFtZTtcbiAgICBpZiAoIXByb3BzLnZpc2libGUpIHtcbiAgICAgIGNsYXNzTmFtZSArPSAnICcgKyBwcm9wcy5oaWRkZW5DbGFzc05hbWU7XG4gICAgfVxuICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgJ2RpdicsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lLFxuICAgICAgICBvbk1vdXNlRW50ZXI6IHByb3BzLm9uTW91c2VFbnRlcixcbiAgICAgICAgb25Nb3VzZUxlYXZlOiBwcm9wcy5vbk1vdXNlTGVhdmUsXG4gICAgICAgIG9uTW91c2VEb3duOiBwcm9wcy5vbk1vdXNlRG93bixcbiAgICAgICAgb25Ub3VjaFN0YXJ0OiBwcm9wcy5vblRvdWNoU3RhcnQsXG4gICAgICAgIHN0eWxlOiBwcm9wcy5zdHlsZVxuICAgICAgfSxcbiAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgIExhenlSZW5kZXJCb3gsXG4gICAgICAgIHsgY2xhc3NOYW1lOiBwcm9wcy5wcmVmaXhDbHMgKyAnLWNvbnRlbnQnLCB2aXNpYmxlOiBwcm9wcy52aXNpYmxlIH0sXG4gICAgICAgIHByb3BzLmNoaWxkcmVuXG4gICAgICApXG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4gUG9wdXBJbm5lcjtcbn0oQ29tcG9uZW50KTtcblxuUG9wdXBJbm5lci5wcm9wVHlwZXMgPSB7XG4gIGhpZGRlbkNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBwcmVmaXhDbHM6IFByb3BUeXBlcy5zdHJpbmcsXG4gIG9uTW91c2VFbnRlcjogUHJvcFR5cGVzLmZ1bmMsXG4gIG9uTW91c2VMZWF2ZTogUHJvcFR5cGVzLmZ1bmMsXG4gIG9uTW91c2VEb3duOiBQcm9wVHlwZXMuZnVuYyxcbiAgb25Ub3VjaFN0YXJ0OiBQcm9wVHlwZXMuZnVuYyxcbiAgY2hpbGRyZW46IFByb3BUeXBlcy5hbnlcbn07XG5cblxuZXhwb3J0IGRlZmF1bHQgUG9wdXBJbm5lcjsiLCJpbXBvcnQgX2V4dGVuZHMgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL2V4dGVuZHMnO1xuaW1wb3J0IF9jbGFzc0NhbGxDaGVjayBmcm9tICdiYWJlbC1ydW50aW1lL2hlbHBlcnMvY2xhc3NDYWxsQ2hlY2snO1xuaW1wb3J0IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuJztcbmltcG9ydCBfaW5oZXJpdHMgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL2luaGVyaXRzJztcbmltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0RE9NIGZyb20gJ3JlYWN0LWRvbSc7XG5pbXBvcnQgQWxpZ24gZnJvbSAncmMtYWxpZ24nO1xuaW1wb3J0IEFuaW1hdGUgZnJvbSAncmMtYW5pbWF0ZSc7XG5pbXBvcnQgUG9wdXBJbm5lciBmcm9tICcuL1BvcHVwSW5uZXInO1xuaW1wb3J0IExhenlSZW5kZXJCb3ggZnJvbSAnLi9MYXp5UmVuZGVyQm94JztcbmltcG9ydCB7IHNhdmVSZWYgfSBmcm9tICcuL3V0aWxzJztcblxudmFyIFBvcHVwID0gZnVuY3Rpb24gKF9Db21wb25lbnQpIHtcbiAgX2luaGVyaXRzKFBvcHVwLCBfQ29tcG9uZW50KTtcblxuICBmdW5jdGlvbiBQb3B1cChwcm9wcykge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBQb3B1cCk7XG5cbiAgICB2YXIgX3RoaXMgPSBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCBfQ29tcG9uZW50LmNhbGwodGhpcywgcHJvcHMpKTtcblxuICAgIF9pbml0aWFsaXNlUHJvcHMuY2FsbChfdGhpcyk7XG5cbiAgICBfdGhpcy5zdGF0ZSA9IHtcbiAgICAgIC8vIFVzZWQgZm9yIHN0cmV0Y2hcbiAgICAgIHN0cmV0Y2hDaGVja2VkOiBmYWxzZSxcbiAgICAgIHRhcmdldFdpZHRoOiB1bmRlZmluZWQsXG4gICAgICB0YXJnZXRIZWlnaHQ6IHVuZGVmaW5lZFxuICAgIH07XG5cbiAgICBfdGhpcy5zYXZlUG9wdXBSZWYgPSBzYXZlUmVmLmJpbmQoX3RoaXMsICdwb3B1cEluc3RhbmNlJyk7XG4gICAgX3RoaXMuc2F2ZUFsaWduUmVmID0gc2F2ZVJlZi5iaW5kKF90aGlzLCAnYWxpZ25JbnN0YW5jZScpO1xuICAgIHJldHVybiBfdGhpcztcbiAgfVxuXG4gIFBvcHVwLnByb3RvdHlwZS5jb21wb25lbnREaWRNb3VudCA9IGZ1bmN0aW9uIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIHRoaXMucm9vdE5vZGUgPSB0aGlzLmdldFBvcHVwRG9tTm9kZSgpO1xuICAgIHRoaXMuc2V0U3RyZXRjaFNpemUoKTtcbiAgfTtcblxuICBQb3B1cC5wcm90b3R5cGUuY29tcG9uZW50RGlkVXBkYXRlID0gZnVuY3Rpb24gY29tcG9uZW50RGlkVXBkYXRlKCkge1xuICAgIHRoaXMuc2V0U3RyZXRjaFNpemUoKTtcbiAgfTtcblxuICAvLyBSZWNvcmQgc2l6ZSBpZiBzdHJldGNoIG5lZWRlZFxuXG5cbiAgUG9wdXAucHJvdG90eXBlLmdldFBvcHVwRG9tTm9kZSA9IGZ1bmN0aW9uIGdldFBvcHVwRG9tTm9kZSgpIHtcbiAgICByZXR1cm4gUmVhY3RET00uZmluZERPTU5vZGUodGhpcy5wb3B1cEluc3RhbmNlKTtcbiAgfTtcblxuICAvLyBgdGFyZ2V0YCBvbiBgcmMtYWxpZ25gIGNhbiBhY2NlcHQgYXMgYSBmdW5jdGlvbiB0byBnZXQgdGhlIGJpbmQgZWxlbWVudCBvciBhIHBvaW50LlxuICAvLyByZWY6IGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL3JjLWFsaWduXG5cblxuICBQb3B1cC5wcm90b3R5cGUuZ2V0TWFza1RyYW5zaXRpb25OYW1lID0gZnVuY3Rpb24gZ2V0TWFza1RyYW5zaXRpb25OYW1lKCkge1xuICAgIHZhciBwcm9wcyA9IHRoaXMucHJvcHM7XG4gICAgdmFyIHRyYW5zaXRpb25OYW1lID0gcHJvcHMubWFza1RyYW5zaXRpb25OYW1lO1xuICAgIHZhciBhbmltYXRpb24gPSBwcm9wcy5tYXNrQW5pbWF0aW9uO1xuICAgIGlmICghdHJhbnNpdGlvbk5hbWUgJiYgYW5pbWF0aW9uKSB7XG4gICAgICB0cmFuc2l0aW9uTmFtZSA9IHByb3BzLnByZWZpeENscyArICctJyArIGFuaW1hdGlvbjtcbiAgICB9XG4gICAgcmV0dXJuIHRyYW5zaXRpb25OYW1lO1xuICB9O1xuXG4gIFBvcHVwLnByb3RvdHlwZS5nZXRUcmFuc2l0aW9uTmFtZSA9IGZ1bmN0aW9uIGdldFRyYW5zaXRpb25OYW1lKCkge1xuICAgIHZhciBwcm9wcyA9IHRoaXMucHJvcHM7XG4gICAgdmFyIHRyYW5zaXRpb25OYW1lID0gcHJvcHMudHJhbnNpdGlvbk5hbWU7XG4gICAgaWYgKCF0cmFuc2l0aW9uTmFtZSAmJiBwcm9wcy5hbmltYXRpb24pIHtcbiAgICAgIHRyYW5zaXRpb25OYW1lID0gcHJvcHMucHJlZml4Q2xzICsgJy0nICsgcHJvcHMuYW5pbWF0aW9uO1xuICAgIH1cbiAgICByZXR1cm4gdHJhbnNpdGlvbk5hbWU7XG4gIH07XG5cbiAgUG9wdXAucHJvdG90eXBlLmdldENsYXNzTmFtZSA9IGZ1bmN0aW9uIGdldENsYXNzTmFtZShjdXJyZW50QWxpZ25DbGFzc05hbWUpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5wcmVmaXhDbHMgKyAnICcgKyB0aGlzLnByb3BzLmNsYXNzTmFtZSArICcgJyArIGN1cnJlbnRBbGlnbkNsYXNzTmFtZTtcbiAgfTtcblxuICBQb3B1cC5wcm90b3R5cGUuZ2V0UG9wdXBFbGVtZW50ID0gZnVuY3Rpb24gZ2V0UG9wdXBFbGVtZW50KCkge1xuICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgdmFyIHNhdmVQb3B1cFJlZiA9IHRoaXMuc2F2ZVBvcHVwUmVmO1xuICAgIHZhciBfc3RhdGUgPSB0aGlzLnN0YXRlLFxuICAgICAgICBzdHJldGNoQ2hlY2tlZCA9IF9zdGF0ZS5zdHJldGNoQ2hlY2tlZCxcbiAgICAgICAgdGFyZ2V0SGVpZ2h0ID0gX3N0YXRlLnRhcmdldEhlaWdodCxcbiAgICAgICAgdGFyZ2V0V2lkdGggPSBfc3RhdGUudGFyZ2V0V2lkdGg7XG4gICAgdmFyIF9wcm9wcyA9IHRoaXMucHJvcHMsXG4gICAgICAgIGFsaWduID0gX3Byb3BzLmFsaWduLFxuICAgICAgICB2aXNpYmxlID0gX3Byb3BzLnZpc2libGUsXG4gICAgICAgIHByZWZpeENscyA9IF9wcm9wcy5wcmVmaXhDbHMsXG4gICAgICAgIHN0eWxlID0gX3Byb3BzLnN0eWxlLFxuICAgICAgICBnZXRDbGFzc05hbWVGcm9tQWxpZ24gPSBfcHJvcHMuZ2V0Q2xhc3NOYW1lRnJvbUFsaWduLFxuICAgICAgICBkZXN0cm95UG9wdXBPbkhpZGUgPSBfcHJvcHMuZGVzdHJveVBvcHVwT25IaWRlLFxuICAgICAgICBzdHJldGNoID0gX3Byb3BzLnN0cmV0Y2gsXG4gICAgICAgIGNoaWxkcmVuID0gX3Byb3BzLmNoaWxkcmVuLFxuICAgICAgICBvbk1vdXNlRW50ZXIgPSBfcHJvcHMub25Nb3VzZUVudGVyLFxuICAgICAgICBvbk1vdXNlTGVhdmUgPSBfcHJvcHMub25Nb3VzZUxlYXZlLFxuICAgICAgICBvbk1vdXNlRG93biA9IF9wcm9wcy5vbk1vdXNlRG93bixcbiAgICAgICAgb25Ub3VjaFN0YXJ0ID0gX3Byb3BzLm9uVG91Y2hTdGFydDtcblxuICAgIHZhciBjbGFzc05hbWUgPSB0aGlzLmdldENsYXNzTmFtZSh0aGlzLmN1cnJlbnRBbGlnbkNsYXNzTmFtZSB8fCBnZXRDbGFzc05hbWVGcm9tQWxpZ24oYWxpZ24pKTtcbiAgICB2YXIgaGlkZGVuQ2xhc3NOYW1lID0gcHJlZml4Q2xzICsgJy1oaWRkZW4nO1xuXG4gICAgaWYgKCF2aXNpYmxlKSB7XG4gICAgICB0aGlzLmN1cnJlbnRBbGlnbkNsYXNzTmFtZSA9IG51bGw7XG4gICAgfVxuXG4gICAgdmFyIHNpemVTdHlsZSA9IHt9O1xuICAgIGlmIChzdHJldGNoKSB7XG4gICAgICAvLyBTdHJldGNoIHdpdGggdGFyZ2V0XG4gICAgICBpZiAoc3RyZXRjaC5pbmRleE9mKCdoZWlnaHQnKSAhPT0gLTEpIHtcbiAgICAgICAgc2l6ZVN0eWxlLmhlaWdodCA9IHRhcmdldEhlaWdodDtcbiAgICAgIH0gZWxzZSBpZiAoc3RyZXRjaC5pbmRleE9mKCdtaW5IZWlnaHQnKSAhPT0gLTEpIHtcbiAgICAgICAgc2l6ZVN0eWxlLm1pbkhlaWdodCA9IHRhcmdldEhlaWdodDtcbiAgICAgIH1cbiAgICAgIGlmIChzdHJldGNoLmluZGV4T2YoJ3dpZHRoJykgIT09IC0xKSB7XG4gICAgICAgIHNpemVTdHlsZS53aWR0aCA9IHRhcmdldFdpZHRoO1xuICAgICAgfSBlbHNlIGlmIChzdHJldGNoLmluZGV4T2YoJ21pbldpZHRoJykgIT09IC0xKSB7XG4gICAgICAgIHNpemVTdHlsZS5taW5XaWR0aCA9IHRhcmdldFdpZHRoO1xuICAgICAgfVxuXG4gICAgICAvLyBEZWxheSBmb3JjZSBhbGlnbiB0byBtYWtlcyB1aSBzbW9vdGhcbiAgICAgIGlmICghc3RyZXRjaENoZWNrZWQpIHtcbiAgICAgICAgc2l6ZVN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcbiAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgaWYgKF90aGlzMi5hbGlnbkluc3RhbmNlKSB7XG4gICAgICAgICAgICBfdGhpczIuYWxpZ25JbnN0YW5jZS5mb3JjZUFsaWduKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LCAwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgbmV3U3R5bGUgPSBfZXh0ZW5kcyh7fSwgc2l6ZVN0eWxlLCBzdHlsZSwgdGhpcy5nZXRaSW5kZXhTdHlsZSgpKTtcblxuICAgIHZhciBwb3B1cElubmVyUHJvcHMgPSB7XG4gICAgICBjbGFzc05hbWU6IGNsYXNzTmFtZSxcbiAgICAgIHByZWZpeENsczogcHJlZml4Q2xzLFxuICAgICAgcmVmOiBzYXZlUG9wdXBSZWYsXG4gICAgICBvbk1vdXNlRW50ZXI6IG9uTW91c2VFbnRlcixcbiAgICAgIG9uTW91c2VMZWF2ZTogb25Nb3VzZUxlYXZlLFxuICAgICAgb25Nb3VzZURvd246IG9uTW91c2VEb3duLFxuICAgICAgb25Ub3VjaFN0YXJ0OiBvblRvdWNoU3RhcnQsXG4gICAgICBzdHlsZTogbmV3U3R5bGVcbiAgICB9O1xuICAgIGlmIChkZXN0cm95UG9wdXBPbkhpZGUpIHtcbiAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICBBbmltYXRlLFxuICAgICAgICB7XG4gICAgICAgICAgY29tcG9uZW50OiAnJyxcbiAgICAgICAgICBleGNsdXNpdmU6IHRydWUsXG4gICAgICAgICAgdHJhbnNpdGlvbkFwcGVhcjogdHJ1ZSxcbiAgICAgICAgICB0cmFuc2l0aW9uTmFtZTogdGhpcy5nZXRUcmFuc2l0aW9uTmFtZSgpXG4gICAgICAgIH0sXG4gICAgICAgIHZpc2libGUgPyBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgIEFsaWduLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHRhcmdldDogdGhpcy5nZXRBbGlnblRhcmdldCgpLFxuICAgICAgICAgICAga2V5OiAncG9wdXAnLFxuICAgICAgICAgICAgcmVmOiB0aGlzLnNhdmVBbGlnblJlZixcbiAgICAgICAgICAgIG1vbml0b3JXaW5kb3dSZXNpemU6IHRydWUsXG4gICAgICAgICAgICBhbGlnbjogYWxpZ24sXG4gICAgICAgICAgICBvbkFsaWduOiB0aGlzLm9uQWxpZ25cbiAgICAgICAgICB9LFxuICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICBQb3B1cElubmVyLFxuICAgICAgICAgICAgX2V4dGVuZHMoe1xuICAgICAgICAgICAgICB2aXNpYmxlOiB0cnVlXG4gICAgICAgICAgICB9LCBwb3B1cElubmVyUHJvcHMpLFxuICAgICAgICAgICAgY2hpbGRyZW5cbiAgICAgICAgICApXG4gICAgICAgICkgOiBudWxsXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgQW5pbWF0ZSxcbiAgICAgIHtcbiAgICAgICAgY29tcG9uZW50OiAnJyxcbiAgICAgICAgZXhjbHVzaXZlOiB0cnVlLFxuICAgICAgICB0cmFuc2l0aW9uQXBwZWFyOiB0cnVlLFxuICAgICAgICB0cmFuc2l0aW9uTmFtZTogdGhpcy5nZXRUcmFuc2l0aW9uTmFtZSgpLFxuICAgICAgICBzaG93UHJvcDogJ3hWaXNpYmxlJ1xuICAgICAgfSxcbiAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgIEFsaWduLFxuICAgICAgICB7XG4gICAgICAgICAgdGFyZ2V0OiB0aGlzLmdldEFsaWduVGFyZ2V0KCksXG4gICAgICAgICAga2V5OiAncG9wdXAnLFxuICAgICAgICAgIHJlZjogdGhpcy5zYXZlQWxpZ25SZWYsXG4gICAgICAgICAgbW9uaXRvcldpbmRvd1Jlc2l6ZTogdHJ1ZSxcbiAgICAgICAgICB4VmlzaWJsZTogdmlzaWJsZSxcbiAgICAgICAgICBjaGlsZHJlblByb3BzOiB7IHZpc2libGU6ICd4VmlzaWJsZScgfSxcbiAgICAgICAgICBkaXNhYmxlZDogIXZpc2libGUsXG4gICAgICAgICAgYWxpZ246IGFsaWduLFxuICAgICAgICAgIG9uQWxpZ246IHRoaXMub25BbGlnblxuICAgICAgICB9LFxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgIFBvcHVwSW5uZXIsXG4gICAgICAgICAgX2V4dGVuZHMoe1xuICAgICAgICAgICAgaGlkZGVuQ2xhc3NOYW1lOiBoaWRkZW5DbGFzc05hbWVcbiAgICAgICAgICB9LCBwb3B1cElubmVyUHJvcHMpLFxuICAgICAgICAgIGNoaWxkcmVuXG4gICAgICAgIClcbiAgICAgIClcbiAgICApO1xuICB9O1xuXG4gIFBvcHVwLnByb3RvdHlwZS5nZXRaSW5kZXhTdHlsZSA9IGZ1bmN0aW9uIGdldFpJbmRleFN0eWxlKCkge1xuICAgIHZhciBzdHlsZSA9IHt9O1xuICAgIHZhciBwcm9wcyA9IHRoaXMucHJvcHM7XG4gICAgaWYgKHByb3BzLnpJbmRleCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBzdHlsZS56SW5kZXggPSBwcm9wcy56SW5kZXg7XG4gICAgfVxuICAgIHJldHVybiBzdHlsZTtcbiAgfTtcblxuICBQb3B1cC5wcm90b3R5cGUuZ2V0TWFza0VsZW1lbnQgPSBmdW5jdGlvbiBnZXRNYXNrRWxlbWVudCgpIHtcbiAgICB2YXIgcHJvcHMgPSB0aGlzLnByb3BzO1xuICAgIHZhciBtYXNrRWxlbWVudCA9IHZvaWQgMDtcbiAgICBpZiAocHJvcHMubWFzaykge1xuICAgICAgdmFyIG1hc2tUcmFuc2l0aW9uID0gdGhpcy5nZXRNYXNrVHJhbnNpdGlvbk5hbWUoKTtcbiAgICAgIG1hc2tFbGVtZW50ID0gUmVhY3QuY3JlYXRlRWxlbWVudChMYXp5UmVuZGVyQm94LCB7XG4gICAgICAgIHN0eWxlOiB0aGlzLmdldFpJbmRleFN0eWxlKCksXG4gICAgICAgIGtleTogJ21hc2snLFxuICAgICAgICBjbGFzc05hbWU6IHByb3BzLnByZWZpeENscyArICctbWFzaycsXG4gICAgICAgIGhpZGRlbkNsYXNzTmFtZTogcHJvcHMucHJlZml4Q2xzICsgJy1tYXNrLWhpZGRlbicsXG4gICAgICAgIHZpc2libGU6IHByb3BzLnZpc2libGVcbiAgICAgIH0pO1xuICAgICAgaWYgKG1hc2tUcmFuc2l0aW9uKSB7XG4gICAgICAgIG1hc2tFbGVtZW50ID0gUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICBBbmltYXRlLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGtleTogJ21hc2snLFxuICAgICAgICAgICAgc2hvd1Byb3A6ICd2aXNpYmxlJyxcbiAgICAgICAgICAgIHRyYW5zaXRpb25BcHBlYXI6IHRydWUsXG4gICAgICAgICAgICBjb21wb25lbnQ6ICcnLFxuICAgICAgICAgICAgdHJhbnNpdGlvbk5hbWU6IG1hc2tUcmFuc2l0aW9uXG4gICAgICAgICAgfSxcbiAgICAgICAgICBtYXNrRWxlbWVudFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbWFza0VsZW1lbnQ7XG4gIH07XG5cbiAgUG9wdXAucHJvdG90eXBlLnJlbmRlciA9IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICdkaXYnLFxuICAgICAgbnVsbCxcbiAgICAgIHRoaXMuZ2V0TWFza0VsZW1lbnQoKSxcbiAgICAgIHRoaXMuZ2V0UG9wdXBFbGVtZW50KClcbiAgICApO1xuICB9O1xuXG4gIHJldHVybiBQb3B1cDtcbn0oQ29tcG9uZW50KTtcblxuUG9wdXAucHJvcFR5cGVzID0ge1xuICB2aXNpYmxlOiBQcm9wVHlwZXMuYm9vbCxcbiAgc3R5bGU6IFByb3BUeXBlcy5vYmplY3QsXG4gIGdldENsYXNzTmFtZUZyb21BbGlnbjogUHJvcFR5cGVzLmZ1bmMsXG4gIG9uQWxpZ246IFByb3BUeXBlcy5mdW5jLFxuICBnZXRSb290RG9tTm9kZTogUHJvcFR5cGVzLmZ1bmMsXG4gIGFsaWduOiBQcm9wVHlwZXMuYW55LFxuICBkZXN0cm95UG9wdXBPbkhpZGU6IFByb3BUeXBlcy5ib29sLFxuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHByZWZpeENsczogUHJvcFR5cGVzLnN0cmluZyxcbiAgb25Nb3VzZUVudGVyOiBQcm9wVHlwZXMuZnVuYyxcbiAgb25Nb3VzZUxlYXZlOiBQcm9wVHlwZXMuZnVuYyxcbiAgb25Nb3VzZURvd246IFByb3BUeXBlcy5mdW5jLFxuICBvblRvdWNoU3RhcnQ6IFByb3BUeXBlcy5mdW5jLFxuICBzdHJldGNoOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGUsXG4gIHBvaW50OiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgIHBhZ2VYOiBQcm9wVHlwZXMubnVtYmVyLFxuICAgIHBhZ2VZOiBQcm9wVHlwZXMubnVtYmVyXG4gIH0pXG59O1xuXG52YXIgX2luaXRpYWxpc2VQcm9wcyA9IGZ1bmN0aW9uIF9pbml0aWFsaXNlUHJvcHMoKSB7XG4gIHZhciBfdGhpczMgPSB0aGlzO1xuXG4gIHRoaXMub25BbGlnbiA9IGZ1bmN0aW9uIChwb3B1cERvbU5vZGUsIGFsaWduKSB7XG4gICAgdmFyIHByb3BzID0gX3RoaXMzLnByb3BzO1xuICAgIHZhciBjdXJyZW50QWxpZ25DbGFzc05hbWUgPSBwcm9wcy5nZXRDbGFzc05hbWVGcm9tQWxpZ24oYWxpZ24pO1xuICAgIC8vIEZJWDogaHR0cHM6Ly9naXRodWIuY29tL3JlYWN0LWNvbXBvbmVudC90cmlnZ2VyL2lzc3Vlcy81NlxuICAgIC8vIEZJWDogaHR0cHM6Ly9naXRodWIuY29tL3JlYWN0LWNvbXBvbmVudC90b29sdGlwL2lzc3Vlcy83OVxuICAgIGlmIChfdGhpczMuY3VycmVudEFsaWduQ2xhc3NOYW1lICE9PSBjdXJyZW50QWxpZ25DbGFzc05hbWUpIHtcbiAgICAgIF90aGlzMy5jdXJyZW50QWxpZ25DbGFzc05hbWUgPSBjdXJyZW50QWxpZ25DbGFzc05hbWU7XG4gICAgICBwb3B1cERvbU5vZGUuY2xhc3NOYW1lID0gX3RoaXMzLmdldENsYXNzTmFtZShjdXJyZW50QWxpZ25DbGFzc05hbWUpO1xuICAgIH1cbiAgICBwcm9wcy5vbkFsaWduKHBvcHVwRG9tTm9kZSwgYWxpZ24pO1xuICB9O1xuXG4gIHRoaXMuc2V0U3RyZXRjaFNpemUgPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIF9wcm9wczIgPSBfdGhpczMucHJvcHMsXG4gICAgICAgIHN0cmV0Y2ggPSBfcHJvcHMyLnN0cmV0Y2gsXG4gICAgICAgIGdldFJvb3REb21Ob2RlID0gX3Byb3BzMi5nZXRSb290RG9tTm9kZSxcbiAgICAgICAgdmlzaWJsZSA9IF9wcm9wczIudmlzaWJsZTtcbiAgICB2YXIgX3N0YXRlMiA9IF90aGlzMy5zdGF0ZSxcbiAgICAgICAgc3RyZXRjaENoZWNrZWQgPSBfc3RhdGUyLnN0cmV0Y2hDaGVja2VkLFxuICAgICAgICB0YXJnZXRIZWlnaHQgPSBfc3RhdGUyLnRhcmdldEhlaWdodCxcbiAgICAgICAgdGFyZ2V0V2lkdGggPSBfc3RhdGUyLnRhcmdldFdpZHRoO1xuXG5cbiAgICBpZiAoIXN0cmV0Y2ggfHwgIXZpc2libGUpIHtcbiAgICAgIGlmIChzdHJldGNoQ2hlY2tlZCkge1xuICAgICAgICBfdGhpczMuc2V0U3RhdGUoeyBzdHJldGNoQ2hlY2tlZDogZmFsc2UgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyICRlbGUgPSBnZXRSb290RG9tTm9kZSgpO1xuICAgIGlmICghJGVsZSkgcmV0dXJuO1xuXG4gICAgdmFyIGhlaWdodCA9ICRlbGUub2Zmc2V0SGVpZ2h0O1xuICAgIHZhciB3aWR0aCA9ICRlbGUub2Zmc2V0V2lkdGg7XG5cbiAgICBpZiAodGFyZ2V0SGVpZ2h0ICE9PSBoZWlnaHQgfHwgdGFyZ2V0V2lkdGggIT09IHdpZHRoIHx8ICFzdHJldGNoQ2hlY2tlZCkge1xuICAgICAgX3RoaXMzLnNldFN0YXRlKHtcbiAgICAgICAgc3RyZXRjaENoZWNrZWQ6IHRydWUsXG4gICAgICAgIHRhcmdldEhlaWdodDogaGVpZ2h0LFxuICAgICAgICB0YXJnZXRXaWR0aDogd2lkdGhcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcblxuICB0aGlzLmdldFRhcmdldEVsZW1lbnQgPSBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIF90aGlzMy5wcm9wcy5nZXRSb290RG9tTm9kZSgpO1xuICB9O1xuXG4gIHRoaXMuZ2V0QWxpZ25UYXJnZXQgPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHBvaW50ID0gX3RoaXMzLnByb3BzLnBvaW50O1xuXG4gICAgaWYgKHBvaW50KSB7XG4gICAgICByZXR1cm4gcG9pbnQ7XG4gICAgfVxuICAgIHJldHVybiBfdGhpczMuZ2V0VGFyZ2V0RWxlbWVudDtcbiAgfTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFBvcHVwOyIsImltcG9ydCBfZXh0ZW5kcyBmcm9tICdiYWJlbC1ydW50aW1lL2hlbHBlcnMvZXh0ZW5kcyc7XG5pbXBvcnQgX2NsYXNzQ2FsbENoZWNrIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9jbGFzc0NhbGxDaGVjayc7XG5pbXBvcnQgX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4gZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4nO1xuaW1wb3J0IF9pbmhlcml0cyBmcm9tICdiYWJlbC1ydW50aW1lL2hlbHBlcnMvaW5oZXJpdHMnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyBmaW5kRE9NTm9kZSwgY3JlYXRlUG9ydGFsIH0gZnJvbSAncmVhY3QtZG9tJztcbmltcG9ydCB7IHBvbHlmaWxsIH0gZnJvbSAncmVhY3QtbGlmZWN5Y2xlcy1jb21wYXQnO1xuaW1wb3J0IGNvbnRhaW5zIGZyb20gJ3JjLXV0aWwvZXMvRG9tL2NvbnRhaW5zJztcbmltcG9ydCBhZGRFdmVudExpc3RlbmVyIGZyb20gJ3JjLXV0aWwvZXMvRG9tL2FkZEV2ZW50TGlzdGVuZXInO1xuaW1wb3J0IENvbnRhaW5lclJlbmRlciBmcm9tICdyYy11dGlsL2VzL0NvbnRhaW5lclJlbmRlcic7XG5pbXBvcnQgUG9ydGFsIGZyb20gJ3JjLXV0aWwvZXMvUG9ydGFsJztcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuXG5pbXBvcnQgeyBnZXRBbGlnbkZyb21QbGFjZW1lbnQsIGdldEFsaWduUG9wdXBDbGFzc05hbWUgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCBQb3B1cCBmcm9tICcuL1BvcHVwJztcblxuZnVuY3Rpb24gbm9vcCgpIHt9XG5cbmZ1bmN0aW9uIHJldHVybkVtcHR5U3RyaW5nKCkge1xuICByZXR1cm4gJyc7XG59XG5cbmZ1bmN0aW9uIHJldHVybkRvY3VtZW50KCkge1xuICByZXR1cm4gd2luZG93LmRvY3VtZW50O1xufVxuXG52YXIgQUxMX0hBTkRMRVJTID0gWydvbkNsaWNrJywgJ29uTW91c2VEb3duJywgJ29uVG91Y2hTdGFydCcsICdvbk1vdXNlRW50ZXInLCAnb25Nb3VzZUxlYXZlJywgJ29uRm9jdXMnLCAnb25CbHVyJywgJ29uQ29udGV4dE1lbnUnXTtcblxudmFyIElTX1JFQUNUXzE2ID0gISFjcmVhdGVQb3J0YWw7XG5cbnZhciBjb250ZXh0VHlwZXMgPSB7XG4gIHJjVHJpZ2dlcjogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICBvblBvcHVwTW91c2VEb3duOiBQcm9wVHlwZXMuZnVuY1xuICB9KVxufTtcblxudmFyIFRyaWdnZXIgPSBmdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoVHJpZ2dlciwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgZnVuY3Rpb24gVHJpZ2dlcihwcm9wcykge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBUcmlnZ2VyKTtcblxuICAgIHZhciBfdGhpcyA9IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIF9SZWFjdCRDb21wb25lbnQuY2FsbCh0aGlzLCBwcm9wcykpO1xuXG4gICAgX2luaXRpYWxpc2VQcm9wcy5jYWxsKF90aGlzKTtcblxuICAgIHZhciBwb3B1cFZpc2libGUgPSB2b2lkIDA7XG4gICAgaWYgKCdwb3B1cFZpc2libGUnIGluIHByb3BzKSB7XG4gICAgICBwb3B1cFZpc2libGUgPSAhIXByb3BzLnBvcHVwVmlzaWJsZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcG9wdXBWaXNpYmxlID0gISFwcm9wcy5kZWZhdWx0UG9wdXBWaXNpYmxlO1xuICAgIH1cblxuICAgIF90aGlzLnN0YXRlID0ge1xuICAgICAgcHJldlBvcHVwVmlzaWJsZTogcG9wdXBWaXNpYmxlLFxuICAgICAgcG9wdXBWaXNpYmxlOiBwb3B1cFZpc2libGVcbiAgICB9O1xuXG4gICAgQUxMX0hBTkRMRVJTLmZvckVhY2goZnVuY3Rpb24gKGgpIHtcbiAgICAgIF90aGlzWydmaXJlJyArIGhdID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgX3RoaXMuZmlyZUV2ZW50cyhoLCBlKTtcbiAgICAgIH07XG4gICAgfSk7XG4gICAgcmV0dXJuIF90aGlzO1xuICB9XG5cbiAgVHJpZ2dlci5wcm90b3R5cGUuZ2V0Q2hpbGRDb250ZXh0ID0gZnVuY3Rpb24gZ2V0Q2hpbGRDb250ZXh0KCkge1xuICAgIHJldHVybiB7XG4gICAgICByY1RyaWdnZXI6IHtcbiAgICAgICAgb25Qb3B1cE1vdXNlRG93bjogdGhpcy5vblBvcHVwTW91c2VEb3duXG4gICAgICB9XG4gICAgfTtcbiAgfTtcblxuICBUcmlnZ2VyLnByb3RvdHlwZS5jb21wb25lbnREaWRNb3VudCA9IGZ1bmN0aW9uIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIHRoaXMuY29tcG9uZW50RGlkVXBkYXRlKHt9LCB7XG4gICAgICBwb3B1cFZpc2libGU6IHRoaXMuc3RhdGUucG9wdXBWaXNpYmxlXG4gICAgfSk7XG4gIH07XG5cbiAgVHJpZ2dlci5wcm90b3R5cGUuY29tcG9uZW50RGlkVXBkYXRlID0gZnVuY3Rpb24gY29tcG9uZW50RGlkVXBkYXRlKF8sIHByZXZTdGF0ZSkge1xuICAgIHZhciBwcm9wcyA9IHRoaXMucHJvcHM7XG4gICAgdmFyIHN0YXRlID0gdGhpcy5zdGF0ZTtcbiAgICB2YXIgdHJpZ2dlckFmdGVyUG9wdXBWaXNpYmxlQ2hhbmdlID0gZnVuY3Rpb24gdHJpZ2dlckFmdGVyUG9wdXBWaXNpYmxlQ2hhbmdlKCkge1xuICAgICAgaWYgKHByZXZTdGF0ZS5wb3B1cFZpc2libGUgIT09IHN0YXRlLnBvcHVwVmlzaWJsZSkge1xuICAgICAgICBwcm9wcy5hZnRlclBvcHVwVmlzaWJsZUNoYW5nZShzdGF0ZS5wb3B1cFZpc2libGUpO1xuICAgICAgfVxuICAgIH07XG4gICAgaWYgKCFJU19SRUFDVF8xNikge1xuICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnQobnVsbCwgdHJpZ2dlckFmdGVyUG9wdXBWaXNpYmxlQ2hhbmdlKTtcbiAgICB9XG5cbiAgICAvLyBXZSBtdXN0IGxpc3RlbiB0byBgbW91c2Vkb3duYCBvciBgdG91Y2hzdGFydGAsIGVkZ2UgY2FzZTpcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vYW50LWRlc2lnbi9hbnQtZGVzaWduL2lzc3Vlcy81ODA0XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3JlYWN0LWNvbXBvbmVudC9jYWxlbmRhci9pc3N1ZXMvMjUwXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3JlYWN0LWNvbXBvbmVudC90cmlnZ2VyL2lzc3Vlcy81MFxuICAgIGlmIChzdGF0ZS5wb3B1cFZpc2libGUpIHtcbiAgICAgIHZhciBjdXJyZW50RG9jdW1lbnQgPSB2b2lkIDA7XG4gICAgICBpZiAoIXRoaXMuY2xpY2tPdXRzaWRlSGFuZGxlciAmJiAodGhpcy5pc0NsaWNrVG9IaWRlKCkgfHwgdGhpcy5pc0NvbnRleHRNZW51VG9TaG93KCkpKSB7XG4gICAgICAgIGN1cnJlbnREb2N1bWVudCA9IHByb3BzLmdldERvY3VtZW50KCk7XG4gICAgICAgIHRoaXMuY2xpY2tPdXRzaWRlSGFuZGxlciA9IGFkZEV2ZW50TGlzdGVuZXIoY3VycmVudERvY3VtZW50LCAnbW91c2Vkb3duJywgdGhpcy5vbkRvY3VtZW50Q2xpY2spO1xuICAgICAgfVxuICAgICAgLy8gYWx3YXlzIGhpZGUgb24gbW9iaWxlXG4gICAgICBpZiAoIXRoaXMudG91Y2hPdXRzaWRlSGFuZGxlcikge1xuICAgICAgICBjdXJyZW50RG9jdW1lbnQgPSBjdXJyZW50RG9jdW1lbnQgfHwgcHJvcHMuZ2V0RG9jdW1lbnQoKTtcbiAgICAgICAgdGhpcy50b3VjaE91dHNpZGVIYW5kbGVyID0gYWRkRXZlbnRMaXN0ZW5lcihjdXJyZW50RG9jdW1lbnQsICd0b3VjaHN0YXJ0JywgdGhpcy5vbkRvY3VtZW50Q2xpY2spO1xuICAgICAgfVxuICAgICAgLy8gY2xvc2UgcG9wdXAgd2hlbiB0cmlnZ2VyIHR5cGUgY29udGFpbnMgJ29uQ29udGV4dE1lbnUnIGFuZCBkb2N1bWVudCBpcyBzY3JvbGxpbmcuXG4gICAgICBpZiAoIXRoaXMuY29udGV4dE1lbnVPdXRzaWRlSGFuZGxlcjEgJiYgdGhpcy5pc0NvbnRleHRNZW51VG9TaG93KCkpIHtcbiAgICAgICAgY3VycmVudERvY3VtZW50ID0gY3VycmVudERvY3VtZW50IHx8IHByb3BzLmdldERvY3VtZW50KCk7XG4gICAgICAgIHRoaXMuY29udGV4dE1lbnVPdXRzaWRlSGFuZGxlcjEgPSBhZGRFdmVudExpc3RlbmVyKGN1cnJlbnREb2N1bWVudCwgJ3Njcm9sbCcsIHRoaXMub25Db250ZXh0TWVudUNsb3NlKTtcbiAgICAgIH1cbiAgICAgIC8vIGNsb3NlIHBvcHVwIHdoZW4gdHJpZ2dlciB0eXBlIGNvbnRhaW5zICdvbkNvbnRleHRNZW51JyBhbmQgd2luZG93IGlzIGJsdXIuXG4gICAgICBpZiAoIXRoaXMuY29udGV4dE1lbnVPdXRzaWRlSGFuZGxlcjIgJiYgdGhpcy5pc0NvbnRleHRNZW51VG9TaG93KCkpIHtcbiAgICAgICAgdGhpcy5jb250ZXh0TWVudU91dHNpZGVIYW5kbGVyMiA9IGFkZEV2ZW50TGlzdGVuZXIod2luZG93LCAnYmx1cicsIHRoaXMub25Db250ZXh0TWVudUNsb3NlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmNsZWFyT3V0c2lkZUhhbmRsZXIoKTtcbiAgfTtcblxuICBUcmlnZ2VyLnByb3RvdHlwZS5jb21wb25lbnRXaWxsVW5tb3VudCA9IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgIHRoaXMuY2xlYXJEZWxheVRpbWVyKCk7XG4gICAgdGhpcy5jbGVhck91dHNpZGVIYW5kbGVyKCk7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMubW91c2VEb3duVGltZW91dCk7XG4gIH07XG5cbiAgVHJpZ2dlci5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMgPSBmdW5jdGlvbiBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMoX3JlZiwgcHJldlN0YXRlKSB7XG4gICAgdmFyIHBvcHVwVmlzaWJsZSA9IF9yZWYucG9wdXBWaXNpYmxlO1xuXG4gICAgdmFyIG5ld1N0YXRlID0ge307XG5cbiAgICBpZiAocG9wdXBWaXNpYmxlICE9PSB1bmRlZmluZWQgJiYgcHJldlN0YXRlLnBvcHVwVmlzaWJsZSAhPT0gcG9wdXBWaXNpYmxlKSB7XG4gICAgICBuZXdTdGF0ZS5wb3B1cFZpc2libGUgPSBwb3B1cFZpc2libGU7XG4gICAgICBuZXdTdGF0ZS5wcmV2UG9wdXBWaXNpYmxlID0gcHJldlN0YXRlLnBvcHVwVmlzaWJsZTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3U3RhdGU7XG4gIH07XG5cbiAgVHJpZ2dlci5wcm90b3R5cGUuZ2V0UG9wdXBEb21Ob2RlID0gZnVuY3Rpb24gZ2V0UG9wdXBEb21Ob2RlKCkge1xuICAgIC8vIGZvciB0ZXN0XG4gICAgaWYgKHRoaXMuX2NvbXBvbmVudCAmJiB0aGlzLl9jb21wb25lbnQuZ2V0UG9wdXBEb21Ob2RlKSB7XG4gICAgICByZXR1cm4gdGhpcy5fY29tcG9uZW50LmdldFBvcHVwRG9tTm9kZSgpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfTtcblxuICBUcmlnZ2VyLnByb3RvdHlwZS5nZXRQb3B1cEFsaWduID0gZnVuY3Rpb24gZ2V0UG9wdXBBbGlnbigpIHtcbiAgICB2YXIgcHJvcHMgPSB0aGlzLnByb3BzO1xuICAgIHZhciBwb3B1cFBsYWNlbWVudCA9IHByb3BzLnBvcHVwUGxhY2VtZW50LFxuICAgICAgICBwb3B1cEFsaWduID0gcHJvcHMucG9wdXBBbGlnbixcbiAgICAgICAgYnVpbHRpblBsYWNlbWVudHMgPSBwcm9wcy5idWlsdGluUGxhY2VtZW50cztcblxuICAgIGlmIChwb3B1cFBsYWNlbWVudCAmJiBidWlsdGluUGxhY2VtZW50cykge1xuICAgICAgcmV0dXJuIGdldEFsaWduRnJvbVBsYWNlbWVudChidWlsdGluUGxhY2VtZW50cywgcG9wdXBQbGFjZW1lbnQsIHBvcHVwQWxpZ24pO1xuICAgIH1cbiAgICByZXR1cm4gcG9wdXBBbGlnbjtcbiAgfTtcblxuICAvKipcbiAgICogQHBhcmFtIHBvcHVwVmlzaWJsZSAgICBTaG93IG9yIG5vdCB0aGUgcG9wdXAgZWxlbWVudFxuICAgKiBAcGFyYW0gZXZlbnQgICAgICAgICAgIFN5bnRoZXRpY0V2ZW50LCB1c2VkIGZvciBgcG9pbnRBbGlnbmBcbiAgICovXG4gIFRyaWdnZXIucHJvdG90eXBlLnNldFBvcHVwVmlzaWJsZSA9IGZ1bmN0aW9uIHNldFBvcHVwVmlzaWJsZShwb3B1cFZpc2libGUsIGV2ZW50KSB7XG4gICAgdmFyIGFsaWduUG9pbnQgPSB0aGlzLnByb3BzLmFsaWduUG9pbnQ7XG4gICAgdmFyIHByZXZQb3B1cFZpc2libGUgPSB0aGlzLnN0YXRlLnBvcHVwVmlzaWJsZTtcblxuXG4gICAgdGhpcy5jbGVhckRlbGF5VGltZXIoKTtcblxuICAgIGlmIChwcmV2UG9wdXBWaXNpYmxlICE9PSBwb3B1cFZpc2libGUpIHtcbiAgICAgIGlmICghKCdwb3B1cFZpc2libGUnIGluIHRoaXMucHJvcHMpKSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBwb3B1cFZpc2libGU6IHBvcHVwVmlzaWJsZSwgcHJldlBvcHVwVmlzaWJsZTogcHJldlBvcHVwVmlzaWJsZSB9KTtcbiAgICAgIH1cbiAgICAgIHRoaXMucHJvcHMub25Qb3B1cFZpc2libGVDaGFuZ2UocG9wdXBWaXNpYmxlKTtcbiAgICB9XG5cbiAgICAvLyBBbHdheXMgcmVjb3JkIHRoZSBwb2ludCBwb3NpdGlvbiBzaW5jZSBtb3VzZUVudGVyRGVsYXkgd2lsbCBkZWxheSB0aGUgc2hvd1xuICAgIGlmIChhbGlnblBvaW50ICYmIGV2ZW50KSB7XG4gICAgICB0aGlzLnNldFBvaW50KGV2ZW50KTtcbiAgICB9XG4gIH07XG5cbiAgVHJpZ2dlci5wcm90b3R5cGUuZGVsYXlTZXRQb3B1cFZpc2libGUgPSBmdW5jdGlvbiBkZWxheVNldFBvcHVwVmlzaWJsZSh2aXNpYmxlLCBkZWxheVMsIGV2ZW50KSB7XG4gICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgICB2YXIgZGVsYXkgPSBkZWxheVMgKiAxMDAwO1xuICAgIHRoaXMuY2xlYXJEZWxheVRpbWVyKCk7XG4gICAgaWYgKGRlbGF5KSB7XG4gICAgICB2YXIgcG9pbnQgPSBldmVudCA/IHsgcGFnZVg6IGV2ZW50LnBhZ2VYLCBwYWdlWTogZXZlbnQucGFnZVkgfSA6IG51bGw7XG4gICAgICB0aGlzLmRlbGF5VGltZXIgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgX3RoaXMyLnNldFBvcHVwVmlzaWJsZSh2aXNpYmxlLCBwb2ludCk7XG4gICAgICAgIF90aGlzMi5jbGVhckRlbGF5VGltZXIoKTtcbiAgICAgIH0sIGRlbGF5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXRQb3B1cFZpc2libGUodmlzaWJsZSwgZXZlbnQpO1xuICAgIH1cbiAgfTtcblxuICBUcmlnZ2VyLnByb3RvdHlwZS5jbGVhckRlbGF5VGltZXIgPSBmdW5jdGlvbiBjbGVhckRlbGF5VGltZXIoKSB7XG4gICAgaWYgKHRoaXMuZGVsYXlUaW1lcikge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuZGVsYXlUaW1lcik7XG4gICAgICB0aGlzLmRlbGF5VGltZXIgPSBudWxsO1xuICAgIH1cbiAgfTtcblxuICBUcmlnZ2VyLnByb3RvdHlwZS5jbGVhck91dHNpZGVIYW5kbGVyID0gZnVuY3Rpb24gY2xlYXJPdXRzaWRlSGFuZGxlcigpIHtcbiAgICBpZiAodGhpcy5jbGlja091dHNpZGVIYW5kbGVyKSB7XG4gICAgICB0aGlzLmNsaWNrT3V0c2lkZUhhbmRsZXIucmVtb3ZlKCk7XG4gICAgICB0aGlzLmNsaWNrT3V0c2lkZUhhbmRsZXIgPSBudWxsO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNvbnRleHRNZW51T3V0c2lkZUhhbmRsZXIxKSB7XG4gICAgICB0aGlzLmNvbnRleHRNZW51T3V0c2lkZUhhbmRsZXIxLnJlbW92ZSgpO1xuICAgICAgdGhpcy5jb250ZXh0TWVudU91dHNpZGVIYW5kbGVyMSA9IG51bGw7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29udGV4dE1lbnVPdXRzaWRlSGFuZGxlcjIpIHtcbiAgICAgIHRoaXMuY29udGV4dE1lbnVPdXRzaWRlSGFuZGxlcjIucmVtb3ZlKCk7XG4gICAgICB0aGlzLmNvbnRleHRNZW51T3V0c2lkZUhhbmRsZXIyID0gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy50b3VjaE91dHNpZGVIYW5kbGVyKSB7XG4gICAgICB0aGlzLnRvdWNoT3V0c2lkZUhhbmRsZXIucmVtb3ZlKCk7XG4gICAgICB0aGlzLnRvdWNoT3V0c2lkZUhhbmRsZXIgPSBudWxsO1xuICAgIH1cbiAgfTtcblxuICBUcmlnZ2VyLnByb3RvdHlwZS5jcmVhdGVUd29DaGFpbnMgPSBmdW5jdGlvbiBjcmVhdGVUd29DaGFpbnMoZXZlbnQpIHtcbiAgICB2YXIgY2hpbGRQcm9zID0gdGhpcy5wcm9wcy5jaGlsZHJlbi5wcm9wcztcbiAgICB2YXIgcHJvcHMgPSB0aGlzLnByb3BzO1xuICAgIGlmIChjaGlsZFByb3NbZXZlbnRdICYmIHByb3BzW2V2ZW50XSkge1xuICAgICAgcmV0dXJuIHRoaXNbJ2ZpcmUnICsgZXZlbnRdO1xuICAgIH1cbiAgICByZXR1cm4gY2hpbGRQcm9zW2V2ZW50XSB8fCBwcm9wc1tldmVudF07XG4gIH07XG5cbiAgVHJpZ2dlci5wcm90b3R5cGUuaXNDbGlja1RvU2hvdyA9IGZ1bmN0aW9uIGlzQ2xpY2tUb1Nob3coKSB7XG4gICAgdmFyIF9wcm9wcyA9IHRoaXMucHJvcHMsXG4gICAgICAgIGFjdGlvbiA9IF9wcm9wcy5hY3Rpb24sXG4gICAgICAgIHNob3dBY3Rpb24gPSBfcHJvcHMuc2hvd0FjdGlvbjtcblxuICAgIHJldHVybiBhY3Rpb24uaW5kZXhPZignY2xpY2snKSAhPT0gLTEgfHwgc2hvd0FjdGlvbi5pbmRleE9mKCdjbGljaycpICE9PSAtMTtcbiAgfTtcblxuICBUcmlnZ2VyLnByb3RvdHlwZS5pc0NvbnRleHRNZW51VG9TaG93ID0gZnVuY3Rpb24gaXNDb250ZXh0TWVudVRvU2hvdygpIHtcbiAgICB2YXIgX3Byb3BzMiA9IHRoaXMucHJvcHMsXG4gICAgICAgIGFjdGlvbiA9IF9wcm9wczIuYWN0aW9uLFxuICAgICAgICBzaG93QWN0aW9uID0gX3Byb3BzMi5zaG93QWN0aW9uO1xuXG4gICAgcmV0dXJuIGFjdGlvbi5pbmRleE9mKCdjb250ZXh0TWVudScpICE9PSAtMSB8fCBzaG93QWN0aW9uLmluZGV4T2YoJ2NvbnRleHRNZW51JykgIT09IC0xO1xuICB9O1xuXG4gIFRyaWdnZXIucHJvdG90eXBlLmlzQ2xpY2tUb0hpZGUgPSBmdW5jdGlvbiBpc0NsaWNrVG9IaWRlKCkge1xuICAgIHZhciBfcHJvcHMzID0gdGhpcy5wcm9wcyxcbiAgICAgICAgYWN0aW9uID0gX3Byb3BzMy5hY3Rpb24sXG4gICAgICAgIGhpZGVBY3Rpb24gPSBfcHJvcHMzLmhpZGVBY3Rpb247XG5cbiAgICByZXR1cm4gYWN0aW9uLmluZGV4T2YoJ2NsaWNrJykgIT09IC0xIHx8IGhpZGVBY3Rpb24uaW5kZXhPZignY2xpY2snKSAhPT0gLTE7XG4gIH07XG5cbiAgVHJpZ2dlci5wcm90b3R5cGUuaXNNb3VzZUVudGVyVG9TaG93ID0gZnVuY3Rpb24gaXNNb3VzZUVudGVyVG9TaG93KCkge1xuICAgIHZhciBfcHJvcHM0ID0gdGhpcy5wcm9wcyxcbiAgICAgICAgYWN0aW9uID0gX3Byb3BzNC5hY3Rpb24sXG4gICAgICAgIHNob3dBY3Rpb24gPSBfcHJvcHM0LnNob3dBY3Rpb247XG5cbiAgICByZXR1cm4gYWN0aW9uLmluZGV4T2YoJ2hvdmVyJykgIT09IC0xIHx8IHNob3dBY3Rpb24uaW5kZXhPZignbW91c2VFbnRlcicpICE9PSAtMTtcbiAgfTtcblxuICBUcmlnZ2VyLnByb3RvdHlwZS5pc01vdXNlTGVhdmVUb0hpZGUgPSBmdW5jdGlvbiBpc01vdXNlTGVhdmVUb0hpZGUoKSB7XG4gICAgdmFyIF9wcm9wczUgPSB0aGlzLnByb3BzLFxuICAgICAgICBhY3Rpb24gPSBfcHJvcHM1LmFjdGlvbixcbiAgICAgICAgaGlkZUFjdGlvbiA9IF9wcm9wczUuaGlkZUFjdGlvbjtcblxuICAgIHJldHVybiBhY3Rpb24uaW5kZXhPZignaG92ZXInKSAhPT0gLTEgfHwgaGlkZUFjdGlvbi5pbmRleE9mKCdtb3VzZUxlYXZlJykgIT09IC0xO1xuICB9O1xuXG4gIFRyaWdnZXIucHJvdG90eXBlLmlzRm9jdXNUb1Nob3cgPSBmdW5jdGlvbiBpc0ZvY3VzVG9TaG93KCkge1xuICAgIHZhciBfcHJvcHM2ID0gdGhpcy5wcm9wcyxcbiAgICAgICAgYWN0aW9uID0gX3Byb3BzNi5hY3Rpb24sXG4gICAgICAgIHNob3dBY3Rpb24gPSBfcHJvcHM2LnNob3dBY3Rpb247XG5cbiAgICByZXR1cm4gYWN0aW9uLmluZGV4T2YoJ2ZvY3VzJykgIT09IC0xIHx8IHNob3dBY3Rpb24uaW5kZXhPZignZm9jdXMnKSAhPT0gLTE7XG4gIH07XG5cbiAgVHJpZ2dlci5wcm90b3R5cGUuaXNCbHVyVG9IaWRlID0gZnVuY3Rpb24gaXNCbHVyVG9IaWRlKCkge1xuICAgIHZhciBfcHJvcHM3ID0gdGhpcy5wcm9wcyxcbiAgICAgICAgYWN0aW9uID0gX3Byb3BzNy5hY3Rpb24sXG4gICAgICAgIGhpZGVBY3Rpb24gPSBfcHJvcHM3LmhpZGVBY3Rpb247XG5cbiAgICByZXR1cm4gYWN0aW9uLmluZGV4T2YoJ2ZvY3VzJykgIT09IC0xIHx8IGhpZGVBY3Rpb24uaW5kZXhPZignYmx1cicpICE9PSAtMTtcbiAgfTtcblxuICBUcmlnZ2VyLnByb3RvdHlwZS5mb3JjZVBvcHVwQWxpZ24gPSBmdW5jdGlvbiBmb3JjZVBvcHVwQWxpZ24oKSB7XG4gICAgaWYgKHRoaXMuc3RhdGUucG9wdXBWaXNpYmxlICYmIHRoaXMuX2NvbXBvbmVudCAmJiB0aGlzLl9jb21wb25lbnQuYWxpZ25JbnN0YW5jZSkge1xuICAgICAgdGhpcy5fY29tcG9uZW50LmFsaWduSW5zdGFuY2UuZm9yY2VBbGlnbigpO1xuICAgIH1cbiAgfTtcblxuICBUcmlnZ2VyLnByb3RvdHlwZS5maXJlRXZlbnRzID0gZnVuY3Rpb24gZmlyZUV2ZW50cyh0eXBlLCBlKSB7XG4gICAgdmFyIGNoaWxkQ2FsbGJhY2sgPSB0aGlzLnByb3BzLmNoaWxkcmVuLnByb3BzW3R5cGVdO1xuICAgIGlmIChjaGlsZENhbGxiYWNrKSB7XG4gICAgICBjaGlsZENhbGxiYWNrKGUpO1xuICAgIH1cbiAgICB2YXIgY2FsbGJhY2sgPSB0aGlzLnByb3BzW3R5cGVdO1xuICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgY2FsbGJhY2soZSk7XG4gICAgfVxuICB9O1xuXG4gIFRyaWdnZXIucHJvdG90eXBlLmNsb3NlID0gZnVuY3Rpb24gY2xvc2UoKSB7XG4gICAgdGhpcy5zZXRQb3B1cFZpc2libGUoZmFsc2UpO1xuICB9O1xuXG4gIFRyaWdnZXIucHJvdG90eXBlLnJlbmRlciA9IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICB2YXIgX3RoaXMzID0gdGhpcztcblxuICAgIHZhciBwb3B1cFZpc2libGUgPSB0aGlzLnN0YXRlLnBvcHVwVmlzaWJsZTtcbiAgICB2YXIgX3Byb3BzOCA9IHRoaXMucHJvcHMsXG4gICAgICAgIGNoaWxkcmVuID0gX3Byb3BzOC5jaGlsZHJlbixcbiAgICAgICAgZm9yY2VSZW5kZXIgPSBfcHJvcHM4LmZvcmNlUmVuZGVyLFxuICAgICAgICBhbGlnblBvaW50ID0gX3Byb3BzOC5hbGlnblBvaW50LFxuICAgICAgICBjbGFzc05hbWUgPSBfcHJvcHM4LmNsYXNzTmFtZTtcblxuICAgIHZhciBjaGlsZCA9IFJlYWN0LkNoaWxkcmVuLm9ubHkoY2hpbGRyZW4pO1xuICAgIHZhciBuZXdDaGlsZFByb3BzID0geyBrZXk6ICd0cmlnZ2VyJyB9O1xuXG4gICAgaWYgKHRoaXMuaXNDb250ZXh0TWVudVRvU2hvdygpKSB7XG4gICAgICBuZXdDaGlsZFByb3BzLm9uQ29udGV4dE1lbnUgPSB0aGlzLm9uQ29udGV4dE1lbnU7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5ld0NoaWxkUHJvcHMub25Db250ZXh0TWVudSA9IHRoaXMuY3JlYXRlVHdvQ2hhaW5zKCdvbkNvbnRleHRNZW51Jyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNDbGlja1RvSGlkZSgpIHx8IHRoaXMuaXNDbGlja1RvU2hvdygpKSB7XG4gICAgICBuZXdDaGlsZFByb3BzLm9uQ2xpY2sgPSB0aGlzLm9uQ2xpY2s7XG4gICAgICBuZXdDaGlsZFByb3BzLm9uTW91c2VEb3duID0gdGhpcy5vbk1vdXNlRG93bjtcbiAgICAgIG5ld0NoaWxkUHJvcHMub25Ub3VjaFN0YXJ0ID0gdGhpcy5vblRvdWNoU3RhcnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5ld0NoaWxkUHJvcHMub25DbGljayA9IHRoaXMuY3JlYXRlVHdvQ2hhaW5zKCdvbkNsaWNrJyk7XG4gICAgICBuZXdDaGlsZFByb3BzLm9uTW91c2VEb3duID0gdGhpcy5jcmVhdGVUd29DaGFpbnMoJ29uTW91c2VEb3duJyk7XG4gICAgICBuZXdDaGlsZFByb3BzLm9uVG91Y2hTdGFydCA9IHRoaXMuY3JlYXRlVHdvQ2hhaW5zKCdvblRvdWNoU3RhcnQnKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaXNNb3VzZUVudGVyVG9TaG93KCkpIHtcbiAgICAgIG5ld0NoaWxkUHJvcHMub25Nb3VzZUVudGVyID0gdGhpcy5vbk1vdXNlRW50ZXI7XG4gICAgICBpZiAoYWxpZ25Qb2ludCkge1xuICAgICAgICBuZXdDaGlsZFByb3BzLm9uTW91c2VNb3ZlID0gdGhpcy5vbk1vdXNlTW92ZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgbmV3Q2hpbGRQcm9wcy5vbk1vdXNlRW50ZXIgPSB0aGlzLmNyZWF0ZVR3b0NoYWlucygnb25Nb3VzZUVudGVyJyk7XG4gICAgfVxuICAgIGlmICh0aGlzLmlzTW91c2VMZWF2ZVRvSGlkZSgpKSB7XG4gICAgICBuZXdDaGlsZFByb3BzLm9uTW91c2VMZWF2ZSA9IHRoaXMub25Nb3VzZUxlYXZlO1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXdDaGlsZFByb3BzLm9uTW91c2VMZWF2ZSA9IHRoaXMuY3JlYXRlVHdvQ2hhaW5zKCdvbk1vdXNlTGVhdmUnKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaXNGb2N1c1RvU2hvdygpIHx8IHRoaXMuaXNCbHVyVG9IaWRlKCkpIHtcbiAgICAgIG5ld0NoaWxkUHJvcHMub25Gb2N1cyA9IHRoaXMub25Gb2N1cztcbiAgICAgIG5ld0NoaWxkUHJvcHMub25CbHVyID0gdGhpcy5vbkJsdXI7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5ld0NoaWxkUHJvcHMub25Gb2N1cyA9IHRoaXMuY3JlYXRlVHdvQ2hhaW5zKCdvbkZvY3VzJyk7XG4gICAgICBuZXdDaGlsZFByb3BzLm9uQmx1ciA9IHRoaXMuY3JlYXRlVHdvQ2hhaW5zKCdvbkJsdXInKTtcbiAgICB9XG5cbiAgICB2YXIgY2hpbGRyZW5DbGFzc05hbWUgPSBjbGFzc05hbWVzKGNoaWxkICYmIGNoaWxkLnByb3BzICYmIGNoaWxkLnByb3BzLmNsYXNzTmFtZSwgY2xhc3NOYW1lKTtcbiAgICBpZiAoY2hpbGRyZW5DbGFzc05hbWUpIHtcbiAgICAgIG5ld0NoaWxkUHJvcHMuY2xhc3NOYW1lID0gY2hpbGRyZW5DbGFzc05hbWU7XG4gICAgfVxuICAgIHZhciB0cmlnZ2VyID0gUmVhY3QuY2xvbmVFbGVtZW50KGNoaWxkLCBuZXdDaGlsZFByb3BzKTtcblxuICAgIGlmICghSVNfUkVBQ1RfMTYpIHtcbiAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICBDb250YWluZXJSZW5kZXIsXG4gICAgICAgIHtcbiAgICAgICAgICBwYXJlbnQ6IHRoaXMsXG4gICAgICAgICAgdmlzaWJsZTogcG9wdXBWaXNpYmxlLFxuICAgICAgICAgIGF1dG9Nb3VudDogZmFsc2UsXG4gICAgICAgICAgZm9yY2VSZW5kZXI6IGZvcmNlUmVuZGVyLFxuICAgICAgICAgIGdldENvbXBvbmVudDogdGhpcy5nZXRDb21wb25lbnQsXG4gICAgICAgICAgZ2V0Q29udGFpbmVyOiB0aGlzLmdldENvbnRhaW5lclxuICAgICAgICB9LFxuICAgICAgICBmdW5jdGlvbiAoX3JlZjIpIHtcbiAgICAgICAgICB2YXIgcmVuZGVyQ29tcG9uZW50ID0gX3JlZjIucmVuZGVyQ29tcG9uZW50O1xuXG4gICAgICAgICAgX3RoaXMzLnJlbmRlckNvbXBvbmVudCA9IHJlbmRlckNvbXBvbmVudDtcbiAgICAgICAgICByZXR1cm4gdHJpZ2dlcjtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG5cbiAgICB2YXIgcG9ydGFsID0gdm9pZCAwO1xuICAgIC8vIHByZXZlbnQgdW5tb3VudGluZyBhZnRlciBpdCdzIHJlbmRlcmVkXG4gICAgaWYgKHBvcHVwVmlzaWJsZSB8fCB0aGlzLl9jb21wb25lbnQgfHwgZm9yY2VSZW5kZXIpIHtcbiAgICAgIHBvcnRhbCA9IFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgIFBvcnRhbCxcbiAgICAgICAgeyBrZXk6ICdwb3J0YWwnLCBnZXRDb250YWluZXI6IHRoaXMuZ2V0Q29udGFpbmVyLCBkaWRVcGRhdGU6IHRoaXMuaGFuZGxlUG9ydGFsVXBkYXRlIH0sXG4gICAgICAgIHRoaXMuZ2V0Q29tcG9uZW50KClcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIFt0cmlnZ2VyLCBwb3J0YWxdO1xuICB9O1xuXG4gIHJldHVybiBUcmlnZ2VyO1xufShSZWFjdC5Db21wb25lbnQpO1xuXG5UcmlnZ2VyLnByb3BUeXBlcyA9IHtcbiAgY2hpbGRyZW46IFByb3BUeXBlcy5hbnksXG4gIGFjdGlvbjogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLnN0cmluZywgUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLnN0cmluZyldKSxcbiAgc2hvd0FjdGlvbjogUHJvcFR5cGVzLmFueSxcbiAgaGlkZUFjdGlvbjogUHJvcFR5cGVzLmFueSxcbiAgZ2V0UG9wdXBDbGFzc05hbWVGcm9tQWxpZ246IFByb3BUeXBlcy5hbnksXG4gIG9uUG9wdXBWaXNpYmxlQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYyxcbiAgYWZ0ZXJQb3B1cFZpc2libGVDaGFuZ2U6IFByb3BUeXBlcy5mdW5jLFxuICBwb3B1cDogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLm5vZGUsIFByb3BUeXBlcy5mdW5jXSkuaXNSZXF1aXJlZCxcbiAgcG9wdXBTdHlsZTogUHJvcFR5cGVzLm9iamVjdCxcbiAgcHJlZml4Q2xzOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBwb3B1cENsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBwb3B1cFBsYWNlbWVudDogUHJvcFR5cGVzLnN0cmluZyxcbiAgYnVpbHRpblBsYWNlbWVudHM6IFByb3BUeXBlcy5vYmplY3QsXG4gIHBvcHVwVHJhbnNpdGlvbk5hbWU6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5vYmplY3RdKSxcbiAgcG9wdXBBbmltYXRpb246IFByb3BUeXBlcy5hbnksXG4gIG1vdXNlRW50ZXJEZWxheTogUHJvcFR5cGVzLm51bWJlcixcbiAgbW91c2VMZWF2ZURlbGF5OiBQcm9wVHlwZXMubnVtYmVyLFxuICB6SW5kZXg6IFByb3BUeXBlcy5udW1iZXIsXG4gIGZvY3VzRGVsYXk6IFByb3BUeXBlcy5udW1iZXIsXG4gIGJsdXJEZWxheTogUHJvcFR5cGVzLm51bWJlcixcbiAgZ2V0UG9wdXBDb250YWluZXI6IFByb3BUeXBlcy5mdW5jLFxuICBnZXREb2N1bWVudDogUHJvcFR5cGVzLmZ1bmMsXG4gIGZvcmNlUmVuZGVyOiBQcm9wVHlwZXMuYm9vbCxcbiAgZGVzdHJveVBvcHVwT25IaWRlOiBQcm9wVHlwZXMuYm9vbCxcbiAgbWFzazogUHJvcFR5cGVzLmJvb2wsXG4gIG1hc2tDbG9zYWJsZTogUHJvcFR5cGVzLmJvb2wsXG4gIG9uUG9wdXBBbGlnbjogUHJvcFR5cGVzLmZ1bmMsXG4gIHBvcHVwQWxpZ246IFByb3BUeXBlcy5vYmplY3QsXG4gIHBvcHVwVmlzaWJsZTogUHJvcFR5cGVzLmJvb2wsXG4gIGRlZmF1bHRQb3B1cFZpc2libGU6IFByb3BUeXBlcy5ib29sLFxuICBtYXNrVHJhbnNpdGlvbk5hbWU6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5vYmplY3RdKSxcbiAgbWFza0FuaW1hdGlvbjogUHJvcFR5cGVzLnN0cmluZyxcbiAgc3RyZXRjaDogUHJvcFR5cGVzLnN0cmluZyxcbiAgYWxpZ25Qb2ludDogUHJvcFR5cGVzLmJvb2wgLy8gTWF5YmUgd2UgY2FuIHN1cHBvcnQgdXNlciBwYXNzIHBvc2l0aW9uIGluIHRoZSBmdXR1cmVcbn07XG5UcmlnZ2VyLmNvbnRleHRUeXBlcyA9IGNvbnRleHRUeXBlcztcblRyaWdnZXIuY2hpbGRDb250ZXh0VHlwZXMgPSBjb250ZXh0VHlwZXM7XG5UcmlnZ2VyLmRlZmF1bHRQcm9wcyA9IHtcbiAgcHJlZml4Q2xzOiAncmMtdHJpZ2dlci1wb3B1cCcsXG4gIGdldFBvcHVwQ2xhc3NOYW1lRnJvbUFsaWduOiByZXR1cm5FbXB0eVN0cmluZyxcbiAgZ2V0RG9jdW1lbnQ6IHJldHVybkRvY3VtZW50LFxuICBvblBvcHVwVmlzaWJsZUNoYW5nZTogbm9vcCxcbiAgYWZ0ZXJQb3B1cFZpc2libGVDaGFuZ2U6IG5vb3AsXG4gIG9uUG9wdXBBbGlnbjogbm9vcCxcbiAgcG9wdXBDbGFzc05hbWU6ICcnLFxuICBtb3VzZUVudGVyRGVsYXk6IDAsXG4gIG1vdXNlTGVhdmVEZWxheTogMC4xLFxuICBmb2N1c0RlbGF5OiAwLFxuICBibHVyRGVsYXk6IDAuMTUsXG4gIHBvcHVwU3R5bGU6IHt9LFxuICBkZXN0cm95UG9wdXBPbkhpZGU6IGZhbHNlLFxuICBwb3B1cEFsaWduOiB7fSxcbiAgZGVmYXVsdFBvcHVwVmlzaWJsZTogZmFsc2UsXG4gIG1hc2s6IGZhbHNlLFxuICBtYXNrQ2xvc2FibGU6IHRydWUsXG4gIGFjdGlvbjogW10sXG4gIHNob3dBY3Rpb246IFtdLFxuICBoaWRlQWN0aW9uOiBbXVxufTtcblxudmFyIF9pbml0aWFsaXNlUHJvcHMgPSBmdW5jdGlvbiBfaW5pdGlhbGlzZVByb3BzKCkge1xuICB2YXIgX3RoaXM0ID0gdGhpcztcblxuICB0aGlzLm9uTW91c2VFbnRlciA9IGZ1bmN0aW9uIChlKSB7XG4gICAgdmFyIG1vdXNlRW50ZXJEZWxheSA9IF90aGlzNC5wcm9wcy5tb3VzZUVudGVyRGVsYXk7XG5cbiAgICBfdGhpczQuZmlyZUV2ZW50cygnb25Nb3VzZUVudGVyJywgZSk7XG4gICAgX3RoaXM0LmRlbGF5U2V0UG9wdXBWaXNpYmxlKHRydWUsIG1vdXNlRW50ZXJEZWxheSwgbW91c2VFbnRlckRlbGF5ID8gbnVsbCA6IGUpO1xuICB9O1xuXG4gIHRoaXMub25Nb3VzZU1vdmUgPSBmdW5jdGlvbiAoZSkge1xuICAgIF90aGlzNC5maXJlRXZlbnRzKCdvbk1vdXNlTW92ZScsIGUpO1xuICAgIF90aGlzNC5zZXRQb2ludChlKTtcbiAgfTtcblxuICB0aGlzLm9uTW91c2VMZWF2ZSA9IGZ1bmN0aW9uIChlKSB7XG4gICAgX3RoaXM0LmZpcmVFdmVudHMoJ29uTW91c2VMZWF2ZScsIGUpO1xuICAgIF90aGlzNC5kZWxheVNldFBvcHVwVmlzaWJsZShmYWxzZSwgX3RoaXM0LnByb3BzLm1vdXNlTGVhdmVEZWxheSk7XG4gIH07XG5cbiAgdGhpcy5vblBvcHVwTW91c2VFbnRlciA9IGZ1bmN0aW9uICgpIHtcbiAgICBfdGhpczQuY2xlYXJEZWxheVRpbWVyKCk7XG4gIH07XG5cbiAgdGhpcy5vblBvcHVwTW91c2VMZWF2ZSA9IGZ1bmN0aW9uIChlKSB7XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3JlYWN0LWNvbXBvbmVudC90cmlnZ2VyL3B1bGwvMTNcbiAgICAvLyByZWFjdCBidWc/XG4gICAgaWYgKGUucmVsYXRlZFRhcmdldCAmJiAhZS5yZWxhdGVkVGFyZ2V0LnNldFRpbWVvdXQgJiYgX3RoaXM0Ll9jb21wb25lbnQgJiYgX3RoaXM0Ll9jb21wb25lbnQuZ2V0UG9wdXBEb21Ob2RlICYmIGNvbnRhaW5zKF90aGlzNC5fY29tcG9uZW50LmdldFBvcHVwRG9tTm9kZSgpLCBlLnJlbGF0ZWRUYXJnZXQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIF90aGlzNC5kZWxheVNldFBvcHVwVmlzaWJsZShmYWxzZSwgX3RoaXM0LnByb3BzLm1vdXNlTGVhdmVEZWxheSk7XG4gIH07XG5cbiAgdGhpcy5vbkZvY3VzID0gZnVuY3Rpb24gKGUpIHtcbiAgICBfdGhpczQuZmlyZUV2ZW50cygnb25Gb2N1cycsIGUpO1xuICAgIC8vIGluY2FzZSBmb2N1c2luIGFuZCBmb2N1c291dFxuICAgIF90aGlzNC5jbGVhckRlbGF5VGltZXIoKTtcbiAgICBpZiAoX3RoaXM0LmlzRm9jdXNUb1Nob3coKSkge1xuICAgICAgX3RoaXM0LmZvY3VzVGltZSA9IERhdGUubm93KCk7XG4gICAgICBfdGhpczQuZGVsYXlTZXRQb3B1cFZpc2libGUodHJ1ZSwgX3RoaXM0LnByb3BzLmZvY3VzRGVsYXkpO1xuICAgIH1cbiAgfTtcblxuICB0aGlzLm9uTW91c2VEb3duID0gZnVuY3Rpb24gKGUpIHtcbiAgICBfdGhpczQuZmlyZUV2ZW50cygnb25Nb3VzZURvd24nLCBlKTtcbiAgICBfdGhpczQucHJlQ2xpY2tUaW1lID0gRGF0ZS5ub3coKTtcbiAgfTtcblxuICB0aGlzLm9uVG91Y2hTdGFydCA9IGZ1bmN0aW9uIChlKSB7XG4gICAgX3RoaXM0LmZpcmVFdmVudHMoJ29uVG91Y2hTdGFydCcsIGUpO1xuICAgIF90aGlzNC5wcmVUb3VjaFRpbWUgPSBEYXRlLm5vdygpO1xuICB9O1xuXG4gIHRoaXMub25CbHVyID0gZnVuY3Rpb24gKGUpIHtcbiAgICBfdGhpczQuZmlyZUV2ZW50cygnb25CbHVyJywgZSk7XG4gICAgX3RoaXM0LmNsZWFyRGVsYXlUaW1lcigpO1xuICAgIGlmIChfdGhpczQuaXNCbHVyVG9IaWRlKCkpIHtcbiAgICAgIF90aGlzNC5kZWxheVNldFBvcHVwVmlzaWJsZShmYWxzZSwgX3RoaXM0LnByb3BzLmJsdXJEZWxheSk7XG4gICAgfVxuICB9O1xuXG4gIHRoaXMub25Db250ZXh0TWVudSA9IGZ1bmN0aW9uIChlKSB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIF90aGlzNC5maXJlRXZlbnRzKCdvbkNvbnRleHRNZW51JywgZSk7XG4gICAgX3RoaXM0LnNldFBvcHVwVmlzaWJsZSh0cnVlLCBlKTtcbiAgfTtcblxuICB0aGlzLm9uQ29udGV4dE1lbnVDbG9zZSA9IGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoX3RoaXM0LmlzQ29udGV4dE1lbnVUb1Nob3coKSkge1xuICAgICAgX3RoaXM0LmNsb3NlKCk7XG4gICAgfVxuICB9O1xuXG4gIHRoaXMub25DbGljayA9IGZ1bmN0aW9uIChldmVudCkge1xuICAgIF90aGlzNC5maXJlRXZlbnRzKCdvbkNsaWNrJywgZXZlbnQpO1xuICAgIC8vIGZvY3VzIHdpbGwgdHJpZ2dlciBjbGlja1xuICAgIGlmIChfdGhpczQuZm9jdXNUaW1lKSB7XG4gICAgICB2YXIgcHJlVGltZSA9IHZvaWQgMDtcbiAgICAgIGlmIChfdGhpczQucHJlQ2xpY2tUaW1lICYmIF90aGlzNC5wcmVUb3VjaFRpbWUpIHtcbiAgICAgICAgcHJlVGltZSA9IE1hdGgubWluKF90aGlzNC5wcmVDbGlja1RpbWUsIF90aGlzNC5wcmVUb3VjaFRpbWUpO1xuICAgICAgfSBlbHNlIGlmIChfdGhpczQucHJlQ2xpY2tUaW1lKSB7XG4gICAgICAgIHByZVRpbWUgPSBfdGhpczQucHJlQ2xpY2tUaW1lO1xuICAgICAgfSBlbHNlIGlmIChfdGhpczQucHJlVG91Y2hUaW1lKSB7XG4gICAgICAgIHByZVRpbWUgPSBfdGhpczQucHJlVG91Y2hUaW1lO1xuICAgICAgfVxuICAgICAgaWYgKE1hdGguYWJzKHByZVRpbWUgLSBfdGhpczQuZm9jdXNUaW1lKSA8IDIwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIF90aGlzNC5mb2N1c1RpbWUgPSAwO1xuICAgIH1cbiAgICBfdGhpczQucHJlQ2xpY2tUaW1lID0gMDtcbiAgICBfdGhpczQucHJlVG91Y2hUaW1lID0gMDtcblxuICAgIC8vIE9ubHkgcHJldmVudCBkZWZhdWx0IHdoZW4gYWxsIHRoZSBhY3Rpb24gaXMgY2xpY2suXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2FudC1kZXNpZ24vYW50LWRlc2lnbi9pc3N1ZXMvMTcwNDNcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vYW50LWRlc2lnbi9hbnQtZGVzaWduL2lzc3Vlcy8xNzI5MVxuICAgIGlmIChfdGhpczQuaXNDbGlja1RvU2hvdygpICYmIChfdGhpczQuaXNDbGlja1RvSGlkZSgpIHx8IF90aGlzNC5pc0JsdXJUb0hpZGUoKSkgJiYgZXZlbnQgJiYgZXZlbnQucHJldmVudERlZmF1bHQpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICAgIHZhciBuZXh0VmlzaWJsZSA9ICFfdGhpczQuc3RhdGUucG9wdXBWaXNpYmxlO1xuICAgIGlmIChfdGhpczQuaXNDbGlja1RvSGlkZSgpICYmICFuZXh0VmlzaWJsZSB8fCBuZXh0VmlzaWJsZSAmJiBfdGhpczQuaXNDbGlja1RvU2hvdygpKSB7XG4gICAgICBfdGhpczQuc2V0UG9wdXBWaXNpYmxlKCFfdGhpczQuc3RhdGUucG9wdXBWaXNpYmxlLCBldmVudCk7XG4gICAgfVxuICB9O1xuXG4gIHRoaXMub25Qb3B1cE1vdXNlRG93biA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgX2NvbnRleHQkcmNUcmlnZ2VyID0gX3RoaXM0LmNvbnRleHQucmNUcmlnZ2VyLFxuICAgICAgICByY1RyaWdnZXIgPSBfY29udGV4dCRyY1RyaWdnZXIgPT09IHVuZGVmaW5lZCA/IHt9IDogX2NvbnRleHQkcmNUcmlnZ2VyO1xuXG4gICAgX3RoaXM0Lmhhc1BvcHVwTW91c2VEb3duID0gdHJ1ZTtcblxuICAgIGNsZWFyVGltZW91dChfdGhpczQubW91c2VEb3duVGltZW91dCk7XG4gICAgX3RoaXM0Lm1vdXNlRG93blRpbWVvdXQgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgIF90aGlzNC5oYXNQb3B1cE1vdXNlRG93biA9IGZhbHNlO1xuICAgIH0sIDApO1xuXG4gICAgaWYgKHJjVHJpZ2dlci5vblBvcHVwTW91c2VEb3duKSB7XG4gICAgICByY1RyaWdnZXIub25Qb3B1cE1vdXNlRG93bi5hcHBseShyY1RyaWdnZXIsIGFyZ3VtZW50cyk7XG4gICAgfVxuICB9O1xuXG4gIHRoaXMub25Eb2N1bWVudENsaWNrID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgaWYgKF90aGlzNC5wcm9wcy5tYXNrICYmICFfdGhpczQucHJvcHMubWFza0Nsb3NhYmxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIHRhcmdldCA9IGV2ZW50LnRhcmdldDtcbiAgICB2YXIgcm9vdCA9IGZpbmRET01Ob2RlKF90aGlzNCk7XG4gICAgaWYgKCFjb250YWlucyhyb290LCB0YXJnZXQpICYmICFfdGhpczQuaGFzUG9wdXBNb3VzZURvd24pIHtcbiAgICAgIF90aGlzNC5jbG9zZSgpO1xuICAgIH1cbiAgfTtcblxuICB0aGlzLmdldFJvb3REb21Ob2RlID0gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBmaW5kRE9NTm9kZShfdGhpczQpO1xuICB9O1xuXG4gIHRoaXMuZ2V0UG9wdXBDbGFzc05hbWVGcm9tQWxpZ24gPSBmdW5jdGlvbiAoYWxpZ24pIHtcbiAgICB2YXIgY2xhc3NOYW1lID0gW107XG4gICAgdmFyIF9wcm9wczkgPSBfdGhpczQucHJvcHMsXG4gICAgICAgIHBvcHVwUGxhY2VtZW50ID0gX3Byb3BzOS5wb3B1cFBsYWNlbWVudCxcbiAgICAgICAgYnVpbHRpblBsYWNlbWVudHMgPSBfcHJvcHM5LmJ1aWx0aW5QbGFjZW1lbnRzLFxuICAgICAgICBwcmVmaXhDbHMgPSBfcHJvcHM5LnByZWZpeENscyxcbiAgICAgICAgYWxpZ25Qb2ludCA9IF9wcm9wczkuYWxpZ25Qb2ludCxcbiAgICAgICAgZ2V0UG9wdXBDbGFzc05hbWVGcm9tQWxpZ24gPSBfcHJvcHM5LmdldFBvcHVwQ2xhc3NOYW1lRnJvbUFsaWduO1xuXG4gICAgaWYgKHBvcHVwUGxhY2VtZW50ICYmIGJ1aWx0aW5QbGFjZW1lbnRzKSB7XG4gICAgICBjbGFzc05hbWUucHVzaChnZXRBbGlnblBvcHVwQ2xhc3NOYW1lKGJ1aWx0aW5QbGFjZW1lbnRzLCBwcmVmaXhDbHMsIGFsaWduLCBhbGlnblBvaW50KSk7XG4gICAgfVxuICAgIGlmIChnZXRQb3B1cENsYXNzTmFtZUZyb21BbGlnbikge1xuICAgICAgY2xhc3NOYW1lLnB1c2goZ2V0UG9wdXBDbGFzc05hbWVGcm9tQWxpZ24oYWxpZ24pKTtcbiAgICB9XG4gICAgcmV0dXJuIGNsYXNzTmFtZS5qb2luKCcgJyk7XG4gIH07XG5cbiAgdGhpcy5nZXRDb21wb25lbnQgPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIF9wcm9wczEwID0gX3RoaXM0LnByb3BzLFxuICAgICAgICBwcmVmaXhDbHMgPSBfcHJvcHMxMC5wcmVmaXhDbHMsXG4gICAgICAgIGRlc3Ryb3lQb3B1cE9uSGlkZSA9IF9wcm9wczEwLmRlc3Ryb3lQb3B1cE9uSGlkZSxcbiAgICAgICAgcG9wdXBDbGFzc05hbWUgPSBfcHJvcHMxMC5wb3B1cENsYXNzTmFtZSxcbiAgICAgICAgYWN0aW9uID0gX3Byb3BzMTAuYWN0aW9uLFxuICAgICAgICBvblBvcHVwQWxpZ24gPSBfcHJvcHMxMC5vblBvcHVwQWxpZ24sXG4gICAgICAgIHBvcHVwQW5pbWF0aW9uID0gX3Byb3BzMTAucG9wdXBBbmltYXRpb24sXG4gICAgICAgIHBvcHVwVHJhbnNpdGlvbk5hbWUgPSBfcHJvcHMxMC5wb3B1cFRyYW5zaXRpb25OYW1lLFxuICAgICAgICBwb3B1cFN0eWxlID0gX3Byb3BzMTAucG9wdXBTdHlsZSxcbiAgICAgICAgbWFzayA9IF9wcm9wczEwLm1hc2ssXG4gICAgICAgIG1hc2tBbmltYXRpb24gPSBfcHJvcHMxMC5tYXNrQW5pbWF0aW9uLFxuICAgICAgICBtYXNrVHJhbnNpdGlvbk5hbWUgPSBfcHJvcHMxMC5tYXNrVHJhbnNpdGlvbk5hbWUsXG4gICAgICAgIHpJbmRleCA9IF9wcm9wczEwLnpJbmRleCxcbiAgICAgICAgcG9wdXAgPSBfcHJvcHMxMC5wb3B1cCxcbiAgICAgICAgc3RyZXRjaCA9IF9wcm9wczEwLnN0cmV0Y2gsXG4gICAgICAgIGFsaWduUG9pbnQgPSBfcHJvcHMxMC5hbGlnblBvaW50O1xuICAgIHZhciBfc3RhdGUgPSBfdGhpczQuc3RhdGUsXG4gICAgICAgIHBvcHVwVmlzaWJsZSA9IF9zdGF0ZS5wb3B1cFZpc2libGUsXG4gICAgICAgIHBvaW50ID0gX3N0YXRlLnBvaW50O1xuXG5cbiAgICB2YXIgYWxpZ24gPSBfdGhpczQuZ2V0UG9wdXBBbGlnbigpO1xuXG4gICAgdmFyIG1vdXNlUHJvcHMgPSB7fTtcbiAgICBpZiAoX3RoaXM0LmlzTW91c2VFbnRlclRvU2hvdygpKSB7XG4gICAgICBtb3VzZVByb3BzLm9uTW91c2VFbnRlciA9IF90aGlzNC5vblBvcHVwTW91c2VFbnRlcjtcbiAgICB9XG4gICAgaWYgKF90aGlzNC5pc01vdXNlTGVhdmVUb0hpZGUoKSkge1xuICAgICAgbW91c2VQcm9wcy5vbk1vdXNlTGVhdmUgPSBfdGhpczQub25Qb3B1cE1vdXNlTGVhdmU7XG4gICAgfVxuXG4gICAgbW91c2VQcm9wcy5vbk1vdXNlRG93biA9IF90aGlzNC5vblBvcHVwTW91c2VEb3duO1xuICAgIG1vdXNlUHJvcHMub25Ub3VjaFN0YXJ0ID0gX3RoaXM0Lm9uUG9wdXBNb3VzZURvd247XG5cbiAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgIFBvcHVwLFxuICAgICAgX2V4dGVuZHMoe1xuICAgICAgICBwcmVmaXhDbHM6IHByZWZpeENscyxcbiAgICAgICAgZGVzdHJveVBvcHVwT25IaWRlOiBkZXN0cm95UG9wdXBPbkhpZGUsXG4gICAgICAgIHZpc2libGU6IHBvcHVwVmlzaWJsZSxcbiAgICAgICAgcG9pbnQ6IGFsaWduUG9pbnQgJiYgcG9pbnQsXG4gICAgICAgIGNsYXNzTmFtZTogcG9wdXBDbGFzc05hbWUsXG4gICAgICAgIGFjdGlvbjogYWN0aW9uLFxuICAgICAgICBhbGlnbjogYWxpZ24sXG4gICAgICAgIG9uQWxpZ246IG9uUG9wdXBBbGlnbixcbiAgICAgICAgYW5pbWF0aW9uOiBwb3B1cEFuaW1hdGlvbixcbiAgICAgICAgZ2V0Q2xhc3NOYW1lRnJvbUFsaWduOiBfdGhpczQuZ2V0UG9wdXBDbGFzc05hbWVGcm9tQWxpZ25cbiAgICAgIH0sIG1vdXNlUHJvcHMsIHtcbiAgICAgICAgc3RyZXRjaDogc3RyZXRjaCxcbiAgICAgICAgZ2V0Um9vdERvbU5vZGU6IF90aGlzNC5nZXRSb290RG9tTm9kZSxcbiAgICAgICAgc3R5bGU6IHBvcHVwU3R5bGUsXG4gICAgICAgIG1hc2s6IG1hc2ssXG4gICAgICAgIHpJbmRleDogekluZGV4LFxuICAgICAgICB0cmFuc2l0aW9uTmFtZTogcG9wdXBUcmFuc2l0aW9uTmFtZSxcbiAgICAgICAgbWFza0FuaW1hdGlvbjogbWFza0FuaW1hdGlvbixcbiAgICAgICAgbWFza1RyYW5zaXRpb25OYW1lOiBtYXNrVHJhbnNpdGlvbk5hbWUsXG4gICAgICAgIHJlZjogX3RoaXM0LnNhdmVQb3B1cFxuICAgICAgfSksXG4gICAgICB0eXBlb2YgcG9wdXAgPT09ICdmdW5jdGlvbicgPyBwb3B1cCgpIDogcG9wdXBcbiAgICApO1xuICB9O1xuXG4gIHRoaXMuZ2V0Q29udGFpbmVyID0gZnVuY3Rpb24gKCkge1xuICAgIHZhciBwcm9wcyA9IF90aGlzNC5wcm9wcztcblxuICAgIHZhciBwb3B1cENvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIC8vIE1ha2Ugc3VyZSBkZWZhdWx0IHBvcHVwIGNvbnRhaW5lciB3aWxsIG5ldmVyIGNhdXNlIHNjcm9sbGJhciBhcHBlYXJpbmdcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vcmVhY3QtY29tcG9uZW50L3RyaWdnZXIvaXNzdWVzLzQxXG4gICAgcG9wdXBDb250YWluZXIuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICAgIHBvcHVwQ29udGFpbmVyLnN0eWxlLnRvcCA9ICcwJztcbiAgICBwb3B1cENvbnRhaW5lci5zdHlsZS5sZWZ0ID0gJzAnO1xuICAgIHBvcHVwQ29udGFpbmVyLnN0eWxlLndpZHRoID0gJzEwMCUnO1xuICAgIHZhciBtb3VudE5vZGUgPSBwcm9wcy5nZXRQb3B1cENvbnRhaW5lciA/IHByb3BzLmdldFBvcHVwQ29udGFpbmVyKGZpbmRET01Ob2RlKF90aGlzNCkpIDogcHJvcHMuZ2V0RG9jdW1lbnQoKS5ib2R5O1xuICAgIG1vdW50Tm9kZS5hcHBlbmRDaGlsZChwb3B1cENvbnRhaW5lcik7XG4gICAgcmV0dXJuIHBvcHVwQ29udGFpbmVyO1xuICB9O1xuXG4gIHRoaXMuc2V0UG9pbnQgPSBmdW5jdGlvbiAocG9pbnQpIHtcbiAgICB2YXIgYWxpZ25Qb2ludCA9IF90aGlzNC5wcm9wcy5hbGlnblBvaW50O1xuXG4gICAgaWYgKCFhbGlnblBvaW50IHx8ICFwb2ludCkgcmV0dXJuO1xuXG4gICAgX3RoaXM0LnNldFN0YXRlKHtcbiAgICAgIHBvaW50OiB7XG4gICAgICAgIHBhZ2VYOiBwb2ludC5wYWdlWCxcbiAgICAgICAgcGFnZVk6IHBvaW50LnBhZ2VZXG4gICAgICB9XG4gICAgfSk7XG4gIH07XG5cbiAgdGhpcy5oYW5kbGVQb3J0YWxVcGRhdGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKF90aGlzNC5zdGF0ZS5wcmV2UG9wdXBWaXNpYmxlICE9PSBfdGhpczQuc3RhdGUucG9wdXBWaXNpYmxlKSB7XG4gICAgICBfdGhpczQucHJvcHMuYWZ0ZXJQb3B1cFZpc2libGVDaGFuZ2UoX3RoaXM0LnN0YXRlLnBvcHVwVmlzaWJsZSk7XG4gICAgfVxuICB9O1xuXG4gIHRoaXMuc2F2ZVBvcHVwID0gZnVuY3Rpb24gKG5vZGUpIHtcbiAgICBfdGhpczQuX2NvbXBvbmVudCA9IG5vZGU7XG4gIH07XG59O1xuXG5wb2x5ZmlsbChUcmlnZ2VyKTtcblxuZXhwb3J0IGRlZmF1bHQgVHJpZ2dlcjsiLCJ2YXIgYXV0b0FkanVzdE92ZXJmbG93ID0ge1xuICBhZGp1c3RYOiAxLFxuICBhZGp1c3RZOiAxXG59O1xuXG52YXIgdGFyZ2V0T2Zmc2V0ID0gWzAsIDBdO1xuXG5leHBvcnQgdmFyIHBsYWNlbWVudHMgPSB7XG4gIGxlZnQ6IHtcbiAgICBwb2ludHM6IFsnY3InLCAnY2wnXSxcbiAgICBvdmVyZmxvdzogYXV0b0FkanVzdE92ZXJmbG93LFxuICAgIG9mZnNldDogWy00LCAwXSxcbiAgICB0YXJnZXRPZmZzZXQ6IHRhcmdldE9mZnNldFxuICB9LFxuICByaWdodDoge1xuICAgIHBvaW50czogWydjbCcsICdjciddLFxuICAgIG92ZXJmbG93OiBhdXRvQWRqdXN0T3ZlcmZsb3csXG4gICAgb2Zmc2V0OiBbNCwgMF0sXG4gICAgdGFyZ2V0T2Zmc2V0OiB0YXJnZXRPZmZzZXRcbiAgfSxcbiAgdG9wOiB7XG4gICAgcG9pbnRzOiBbJ2JjJywgJ3RjJ10sXG4gICAgb3ZlcmZsb3c6IGF1dG9BZGp1c3RPdmVyZmxvdyxcbiAgICBvZmZzZXQ6IFswLCAtNF0sXG4gICAgdGFyZ2V0T2Zmc2V0OiB0YXJnZXRPZmZzZXRcbiAgfSxcbiAgYm90dG9tOiB7XG4gICAgcG9pbnRzOiBbJ3RjJywgJ2JjJ10sXG4gICAgb3ZlcmZsb3c6IGF1dG9BZGp1c3RPdmVyZmxvdyxcbiAgICBvZmZzZXQ6IFswLCA0XSxcbiAgICB0YXJnZXRPZmZzZXQ6IHRhcmdldE9mZnNldFxuICB9LFxuICB0b3BMZWZ0OiB7XG4gICAgcG9pbnRzOiBbJ2JsJywgJ3RsJ10sXG4gICAgb3ZlcmZsb3c6IGF1dG9BZGp1c3RPdmVyZmxvdyxcbiAgICBvZmZzZXQ6IFswLCAtNF0sXG4gICAgdGFyZ2V0T2Zmc2V0OiB0YXJnZXRPZmZzZXRcbiAgfSxcbiAgbGVmdFRvcDoge1xuICAgIHBvaW50czogWyd0cicsICd0bCddLFxuICAgIG92ZXJmbG93OiBhdXRvQWRqdXN0T3ZlcmZsb3csXG4gICAgb2Zmc2V0OiBbLTQsIDBdLFxuICAgIHRhcmdldE9mZnNldDogdGFyZ2V0T2Zmc2V0XG4gIH0sXG4gIHRvcFJpZ2h0OiB7XG4gICAgcG9pbnRzOiBbJ2JyJywgJ3RyJ10sXG4gICAgb3ZlcmZsb3c6IGF1dG9BZGp1c3RPdmVyZmxvdyxcbiAgICBvZmZzZXQ6IFswLCAtNF0sXG4gICAgdGFyZ2V0T2Zmc2V0OiB0YXJnZXRPZmZzZXRcbiAgfSxcbiAgcmlnaHRUb3A6IHtcbiAgICBwb2ludHM6IFsndGwnLCAndHInXSxcbiAgICBvdmVyZmxvdzogYXV0b0FkanVzdE92ZXJmbG93LFxuICAgIG9mZnNldDogWzQsIDBdLFxuICAgIHRhcmdldE9mZnNldDogdGFyZ2V0T2Zmc2V0XG4gIH0sXG4gIGJvdHRvbVJpZ2h0OiB7XG4gICAgcG9pbnRzOiBbJ3RyJywgJ2JyJ10sXG4gICAgb3ZlcmZsb3c6IGF1dG9BZGp1c3RPdmVyZmxvdyxcbiAgICBvZmZzZXQ6IFswLCA0XSxcbiAgICB0YXJnZXRPZmZzZXQ6IHRhcmdldE9mZnNldFxuICB9LFxuICByaWdodEJvdHRvbToge1xuICAgIHBvaW50czogWydibCcsICdiciddLFxuICAgIG92ZXJmbG93OiBhdXRvQWRqdXN0T3ZlcmZsb3csXG4gICAgb2Zmc2V0OiBbNCwgMF0sXG4gICAgdGFyZ2V0T2Zmc2V0OiB0YXJnZXRPZmZzZXRcbiAgfSxcbiAgYm90dG9tTGVmdDoge1xuICAgIHBvaW50czogWyd0bCcsICdibCddLFxuICAgIG92ZXJmbG93OiBhdXRvQWRqdXN0T3ZlcmZsb3csXG4gICAgb2Zmc2V0OiBbMCwgNF0sXG4gICAgdGFyZ2V0T2Zmc2V0OiB0YXJnZXRPZmZzZXRcbiAgfSxcbiAgbGVmdEJvdHRvbToge1xuICAgIHBvaW50czogWydicicsICdibCddLFxuICAgIG92ZXJmbG93OiBhdXRvQWRqdXN0T3ZlcmZsb3csXG4gICAgb2Zmc2V0OiBbLTQsIDBdLFxuICAgIHRhcmdldE9mZnNldDogdGFyZ2V0T2Zmc2V0XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IHBsYWNlbWVudHM7IiwiaW1wb3J0IF9jbGFzc0NhbGxDaGVjayBmcm9tICdiYWJlbC1ydW50aW1lL2hlbHBlcnMvY2xhc3NDYWxsQ2hlY2snO1xuaW1wb3J0IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuJztcbmltcG9ydCBfaW5oZXJpdHMgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL2luaGVyaXRzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuXG52YXIgQ29udGVudCA9IGZ1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhDb250ZW50LCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICBmdW5jdGlvbiBDb250ZW50KCkge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBDb250ZW50KTtcblxuICAgIHJldHVybiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCBfUmVhY3QkQ29tcG9uZW50LmFwcGx5KHRoaXMsIGFyZ3VtZW50cykpO1xuICB9XG5cbiAgQ29udGVudC5wcm90b3R5cGUuY29tcG9uZW50RGlkVXBkYXRlID0gZnVuY3Rpb24gY29tcG9uZW50RGlkVXBkYXRlKCkge1xuICAgIHZhciB0cmlnZ2VyID0gdGhpcy5wcm9wcy50cmlnZ2VyO1xuXG4gICAgaWYgKHRyaWdnZXIpIHtcbiAgICAgIHRyaWdnZXIuZm9yY2VQb3B1cEFsaWduKCk7XG4gICAgfVxuICB9O1xuXG4gIENvbnRlbnQucHJvdG90eXBlLnJlbmRlciA9IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICB2YXIgX3Byb3BzID0gdGhpcy5wcm9wcyxcbiAgICAgICAgb3ZlcmxheSA9IF9wcm9wcy5vdmVybGF5LFxuICAgICAgICBwcmVmaXhDbHMgPSBfcHJvcHMucHJlZml4Q2xzLFxuICAgICAgICBpZCA9IF9wcm9wcy5pZDtcblxuICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgJ2RpdicsXG4gICAgICB7IGNsYXNzTmFtZTogcHJlZml4Q2xzICsgJy1pbm5lcicsIGlkOiBpZCwgcm9sZTogJ3Rvb2x0aXAnIH0sXG4gICAgICB0eXBlb2Ygb3ZlcmxheSA9PT0gJ2Z1bmN0aW9uJyA/IG92ZXJsYXkoKSA6IG92ZXJsYXlcbiAgICApO1xuICB9O1xuXG4gIHJldHVybiBDb250ZW50O1xufShSZWFjdC5Db21wb25lbnQpO1xuXG5Db250ZW50LnByb3BUeXBlcyA9IHtcbiAgcHJlZml4Q2xzOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBvdmVybGF5OiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMubm9kZSwgUHJvcFR5cGVzLmZ1bmNdKS5pc1JlcXVpcmVkLFxuICBpZDogUHJvcFR5cGVzLnN0cmluZyxcbiAgdHJpZ2dlcjogUHJvcFR5cGVzLmFueVxufTtcbmV4cG9ydCBkZWZhdWx0IENvbnRlbnQ7IiwiaW1wb3J0IF9leHRlbmRzIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9leHRlbmRzJztcbmltcG9ydCBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzJztcbmltcG9ydCBfY2xhc3NDYWxsQ2hlY2sgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL2NsYXNzQ2FsbENoZWNrJztcbmltcG9ydCBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybiBmcm9tICdiYWJlbC1ydW50aW1lL2hlbHBlcnMvcG9zc2libGVDb25zdHJ1Y3RvclJldHVybic7XG5pbXBvcnQgX2luaGVyaXRzIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9pbmhlcml0cyc7XG5pbXBvcnQgUmVhY3QsIHsgQ29tcG9uZW50IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBUcmlnZ2VyIGZyb20gJ3JjLXRyaWdnZXInO1xuaW1wb3J0IHsgcGxhY2VtZW50cyB9IGZyb20gJy4vcGxhY2VtZW50cyc7XG5pbXBvcnQgQ29udGVudCBmcm9tICcuL0NvbnRlbnQnO1xuXG52YXIgVG9vbHRpcCA9IGZ1bmN0aW9uIChfQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhUb29sdGlwLCBfQ29tcG9uZW50KTtcblxuICBmdW5jdGlvbiBUb29sdGlwKCkge1xuICAgIHZhciBfdGVtcCwgX3RoaXMsIF9yZXQ7XG5cbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgVG9vbHRpcCk7XG5cbiAgICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IEFycmF5KF9sZW4pLCBfa2V5ID0gMDsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgICAgYXJnc1tfa2V5XSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgICB9XG5cbiAgICByZXR1cm4gX3JldCA9IChfdGVtcCA9IChfdGhpcyA9IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIF9Db21wb25lbnQuY2FsbC5hcHBseShfQ29tcG9uZW50LCBbdGhpc10uY29uY2F0KGFyZ3MpKSksIF90aGlzKSwgX3RoaXMuZ2V0UG9wdXBFbGVtZW50ID0gZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIF90aGlzJHByb3BzID0gX3RoaXMucHJvcHMsXG4gICAgICAgICAgYXJyb3dDb250ZW50ID0gX3RoaXMkcHJvcHMuYXJyb3dDb250ZW50LFxuICAgICAgICAgIG92ZXJsYXkgPSBfdGhpcyRwcm9wcy5vdmVybGF5LFxuICAgICAgICAgIHByZWZpeENscyA9IF90aGlzJHByb3BzLnByZWZpeENscyxcbiAgICAgICAgICBpZCA9IF90aGlzJHByb3BzLmlkO1xuXG4gICAgICByZXR1cm4gW1JlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICdkaXYnLFxuICAgICAgICB7IGNsYXNzTmFtZTogcHJlZml4Q2xzICsgJy1hcnJvdycsIGtleTogJ2Fycm93JyB9LFxuICAgICAgICBhcnJvd0NvbnRlbnRcbiAgICAgICksIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ29udGVudCwge1xuICAgICAgICBrZXk6ICdjb250ZW50JyxcbiAgICAgICAgdHJpZ2dlcjogX3RoaXMudHJpZ2dlcixcbiAgICAgICAgcHJlZml4Q2xzOiBwcmVmaXhDbHMsXG4gICAgICAgIGlkOiBpZCxcbiAgICAgICAgb3ZlcmxheTogb3ZlcmxheVxuICAgICAgfSldO1xuICAgIH0sIF90aGlzLnNhdmVUcmlnZ2VyID0gZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgIF90aGlzLnRyaWdnZXIgPSBub2RlO1xuICAgIH0sIF90ZW1wKSwgX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oX3RoaXMsIF9yZXQpO1xuICB9XG5cbiAgVG9vbHRpcC5wcm90b3R5cGUuZ2V0UG9wdXBEb21Ob2RlID0gZnVuY3Rpb24gZ2V0UG9wdXBEb21Ob2RlKCkge1xuICAgIHJldHVybiB0aGlzLnRyaWdnZXIuZ2V0UG9wdXBEb21Ob2RlKCk7XG4gIH07XG5cbiAgVG9vbHRpcC5wcm90b3R5cGUucmVuZGVyID0gZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgIHZhciBfcHJvcHMgPSB0aGlzLnByb3BzLFxuICAgICAgICBvdmVybGF5Q2xhc3NOYW1lID0gX3Byb3BzLm92ZXJsYXlDbGFzc05hbWUsXG4gICAgICAgIHRyaWdnZXIgPSBfcHJvcHMudHJpZ2dlcixcbiAgICAgICAgbW91c2VFbnRlckRlbGF5ID0gX3Byb3BzLm1vdXNlRW50ZXJEZWxheSxcbiAgICAgICAgbW91c2VMZWF2ZURlbGF5ID0gX3Byb3BzLm1vdXNlTGVhdmVEZWxheSxcbiAgICAgICAgb3ZlcmxheVN0eWxlID0gX3Byb3BzLm92ZXJsYXlTdHlsZSxcbiAgICAgICAgcHJlZml4Q2xzID0gX3Byb3BzLnByZWZpeENscyxcbiAgICAgICAgY2hpbGRyZW4gPSBfcHJvcHMuY2hpbGRyZW4sXG4gICAgICAgIG9uVmlzaWJsZUNoYW5nZSA9IF9wcm9wcy5vblZpc2libGVDaGFuZ2UsXG4gICAgICAgIGFmdGVyVmlzaWJsZUNoYW5nZSA9IF9wcm9wcy5hZnRlclZpc2libGVDaGFuZ2UsXG4gICAgICAgIHRyYW5zaXRpb25OYW1lID0gX3Byb3BzLnRyYW5zaXRpb25OYW1lLFxuICAgICAgICBhbmltYXRpb24gPSBfcHJvcHMuYW5pbWF0aW9uLFxuICAgICAgICBwbGFjZW1lbnQgPSBfcHJvcHMucGxhY2VtZW50LFxuICAgICAgICBhbGlnbiA9IF9wcm9wcy5hbGlnbixcbiAgICAgICAgZGVzdHJveVRvb2x0aXBPbkhpZGUgPSBfcHJvcHMuZGVzdHJveVRvb2x0aXBPbkhpZGUsXG4gICAgICAgIGRlZmF1bHRWaXNpYmxlID0gX3Byb3BzLmRlZmF1bHRWaXNpYmxlLFxuICAgICAgICBnZXRUb29sdGlwQ29udGFpbmVyID0gX3Byb3BzLmdldFRvb2x0aXBDb250YWluZXIsXG4gICAgICAgIHJlc3RQcm9wcyA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhfcHJvcHMsIFsnb3ZlcmxheUNsYXNzTmFtZScsICd0cmlnZ2VyJywgJ21vdXNlRW50ZXJEZWxheScsICdtb3VzZUxlYXZlRGVsYXknLCAnb3ZlcmxheVN0eWxlJywgJ3ByZWZpeENscycsICdjaGlsZHJlbicsICdvblZpc2libGVDaGFuZ2UnLCAnYWZ0ZXJWaXNpYmxlQ2hhbmdlJywgJ3RyYW5zaXRpb25OYW1lJywgJ2FuaW1hdGlvbicsICdwbGFjZW1lbnQnLCAnYWxpZ24nLCAnZGVzdHJveVRvb2x0aXBPbkhpZGUnLCAnZGVmYXVsdFZpc2libGUnLCAnZ2V0VG9vbHRpcENvbnRhaW5lciddKTtcblxuICAgIHZhciBleHRyYVByb3BzID0gX2V4dGVuZHMoe30sIHJlc3RQcm9wcyk7XG4gICAgaWYgKCd2aXNpYmxlJyBpbiB0aGlzLnByb3BzKSB7XG4gICAgICBleHRyYVByb3BzLnBvcHVwVmlzaWJsZSA9IHRoaXMucHJvcHMudmlzaWJsZTtcbiAgICB9XG4gICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICBUcmlnZ2VyLFxuICAgICAgX2V4dGVuZHMoe1xuICAgICAgICBwb3B1cENsYXNzTmFtZTogb3ZlcmxheUNsYXNzTmFtZSxcbiAgICAgICAgcmVmOiB0aGlzLnNhdmVUcmlnZ2VyLFxuICAgICAgICBwcmVmaXhDbHM6IHByZWZpeENscyxcbiAgICAgICAgcG9wdXA6IHRoaXMuZ2V0UG9wdXBFbGVtZW50LFxuICAgICAgICBhY3Rpb246IHRyaWdnZXIsXG4gICAgICAgIGJ1aWx0aW5QbGFjZW1lbnRzOiBwbGFjZW1lbnRzLFxuICAgICAgICBwb3B1cFBsYWNlbWVudDogcGxhY2VtZW50LFxuICAgICAgICBwb3B1cEFsaWduOiBhbGlnbixcbiAgICAgICAgZ2V0UG9wdXBDb250YWluZXI6IGdldFRvb2x0aXBDb250YWluZXIsXG4gICAgICAgIG9uUG9wdXBWaXNpYmxlQ2hhbmdlOiBvblZpc2libGVDaGFuZ2UsXG4gICAgICAgIGFmdGVyUG9wdXBWaXNpYmxlQ2hhbmdlOiBhZnRlclZpc2libGVDaGFuZ2UsXG4gICAgICAgIHBvcHVwVHJhbnNpdGlvbk5hbWU6IHRyYW5zaXRpb25OYW1lLFxuICAgICAgICBwb3B1cEFuaW1hdGlvbjogYW5pbWF0aW9uLFxuICAgICAgICBkZWZhdWx0UG9wdXBWaXNpYmxlOiBkZWZhdWx0VmlzaWJsZSxcbiAgICAgICAgZGVzdHJveVBvcHVwT25IaWRlOiBkZXN0cm95VG9vbHRpcE9uSGlkZSxcbiAgICAgICAgbW91c2VMZWF2ZURlbGF5OiBtb3VzZUxlYXZlRGVsYXksXG4gICAgICAgIHBvcHVwU3R5bGU6IG92ZXJsYXlTdHlsZSxcbiAgICAgICAgbW91c2VFbnRlckRlbGF5OiBtb3VzZUVudGVyRGVsYXlcbiAgICAgIH0sIGV4dHJhUHJvcHMpLFxuICAgICAgY2hpbGRyZW5cbiAgICApO1xuICB9O1xuXG4gIHJldHVybiBUb29sdGlwO1xufShDb21wb25lbnQpO1xuXG5Ub29sdGlwLnByb3BUeXBlcyA9IHtcbiAgdHJpZ2dlcjogUHJvcFR5cGVzLmFueSxcbiAgY2hpbGRyZW46IFByb3BUeXBlcy5hbnksXG4gIGRlZmF1bHRWaXNpYmxlOiBQcm9wVHlwZXMuYm9vbCxcbiAgdmlzaWJsZTogUHJvcFR5cGVzLmJvb2wsXG4gIHBsYWNlbWVudDogUHJvcFR5cGVzLnN0cmluZyxcbiAgdHJhbnNpdGlvbk5hbWU6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5vYmplY3RdKSxcbiAgYW5pbWF0aW9uOiBQcm9wVHlwZXMuYW55LFxuICBvblZpc2libGVDaGFuZ2U6IFByb3BUeXBlcy5mdW5jLFxuICBhZnRlclZpc2libGVDaGFuZ2U6IFByb3BUeXBlcy5mdW5jLFxuICBvdmVybGF5OiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMubm9kZSwgUHJvcFR5cGVzLmZ1bmNdKS5pc1JlcXVpcmVkLFxuICBvdmVybGF5U3R5bGU6IFByb3BUeXBlcy5vYmplY3QsXG4gIG92ZXJsYXlDbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHByZWZpeENsczogUHJvcFR5cGVzLnN0cmluZyxcbiAgbW91c2VFbnRlckRlbGF5OiBQcm9wVHlwZXMubnVtYmVyLFxuICBtb3VzZUxlYXZlRGVsYXk6IFByb3BUeXBlcy5udW1iZXIsXG4gIGdldFRvb2x0aXBDb250YWluZXI6IFByb3BUeXBlcy5mdW5jLFxuICBkZXN0cm95VG9vbHRpcE9uSGlkZTogUHJvcFR5cGVzLmJvb2wsXG4gIGFsaWduOiBQcm9wVHlwZXMub2JqZWN0LFxuICBhcnJvd0NvbnRlbnQ6IFByb3BUeXBlcy5hbnksXG4gIGlkOiBQcm9wVHlwZXMuc3RyaW5nXG59O1xuVG9vbHRpcC5kZWZhdWx0UHJvcHMgPSB7XG4gIHByZWZpeENsczogJ3JjLXRvb2x0aXAnLFxuICBtb3VzZUVudGVyRGVsYXk6IDAsXG4gIGRlc3Ryb3lUb29sdGlwT25IaWRlOiBmYWxzZSxcbiAgbW91c2VMZWF2ZURlbGF5OiAwLjEsXG4gIGFsaWduOiB7fSxcbiAgcGxhY2VtZW50OiAncmlnaHQnLFxuICB0cmlnZ2VyOiBbJ2hvdmVyJ10sXG4gIGFycm93Q29udGVudDogbnVsbFxufTtcblxuXG5leHBvcnQgZGVmYXVsdCBUb29sdGlwOyIsImltcG9ydCBUb29sdGlwIGZyb20gJy4vVG9vbHRpcCc7XG5cbmV4cG9ydCBkZWZhdWx0IFRvb2x0aXA7IiwiaW1wb3J0IF9kZWZpbmVQcm9wZXJ0eSBmcm9tICdiYWJlbC1ydW50aW1lL2hlbHBlcnMvZGVmaW5lUHJvcGVydHknO1xuaW1wb3J0IF9jbGFzc0NhbGxDaGVjayBmcm9tICdiYWJlbC1ydW50aW1lL2hlbHBlcnMvY2xhc3NDYWxsQ2hlY2snO1xuaW1wb3J0IF9jcmVhdGVDbGFzcyBmcm9tICdiYWJlbC1ydW50aW1lL2hlbHBlcnMvY3JlYXRlQ2xhc3MnO1xuaW1wb3J0IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuJztcbmltcG9ydCBfaW5oZXJpdHMgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL2luaGVyaXRzJztcbmltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5cbnZhciBOb3RpY2UgPSBmdW5jdGlvbiAoX0NvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoTm90aWNlLCBfQ29tcG9uZW50KTtcblxuICBmdW5jdGlvbiBOb3RpY2UoKSB7XG4gICAgdmFyIF9yZWY7XG5cbiAgICB2YXIgX3RlbXAsIF90aGlzLCBfcmV0O1xuXG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIE5vdGljZSk7XG5cbiAgICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IEFycmF5KF9sZW4pLCBfa2V5ID0gMDsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgICAgYXJnc1tfa2V5XSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgICB9XG5cbiAgICByZXR1cm4gX3JldCA9IChfdGVtcCA9IChfdGhpcyA9IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIChfcmVmID0gTm90aWNlLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2YoTm90aWNlKSkuY2FsbC5hcHBseShfcmVmLCBbdGhpc10uY29uY2F0KGFyZ3MpKSksIF90aGlzKSwgX3RoaXMuY2xvc2UgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgaWYgKGUpIHtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIH1cbiAgICAgIF90aGlzLmNsZWFyQ2xvc2VUaW1lcigpO1xuICAgICAgX3RoaXMucHJvcHMub25DbG9zZSgpO1xuICAgIH0sIF90aGlzLnN0YXJ0Q2xvc2VUaW1lciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIGlmIChfdGhpcy5wcm9wcy5kdXJhdGlvbikge1xuICAgICAgICBfdGhpcy5jbG9zZVRpbWVyID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgX3RoaXMuY2xvc2UoKTtcbiAgICAgICAgfSwgX3RoaXMucHJvcHMuZHVyYXRpb24gKiAxMDAwKTtcbiAgICAgIH1cbiAgICB9LCBfdGhpcy5jbGVhckNsb3NlVGltZXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBpZiAoX3RoaXMuY2xvc2VUaW1lcikge1xuICAgICAgICBjbGVhclRpbWVvdXQoX3RoaXMuY2xvc2VUaW1lcik7XG4gICAgICAgIF90aGlzLmNsb3NlVGltZXIgPSBudWxsO1xuICAgICAgfVxuICAgIH0sIF90ZW1wKSwgX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oX3RoaXMsIF9yZXQpO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKE5vdGljZSwgW3tcbiAgICBrZXk6ICdjb21wb25lbnREaWRNb3VudCcsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgdGhpcy5zdGFydENsb3NlVGltZXIoKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdjb21wb25lbnREaWRVcGRhdGUnLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgICBpZiAodGhpcy5wcm9wcy5kdXJhdGlvbiAhPT0gcHJldlByb3BzLmR1cmF0aW9uIHx8IHRoaXMucHJvcHMudXBkYXRlKSB7XG4gICAgICAgIHRoaXMucmVzdGFydENsb3NlVGltZXIoKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdjb21wb25lbnRXaWxsVW5tb3VudCcsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgdGhpcy5jbGVhckNsb3NlVGltZXIoKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdyZXN0YXJ0Q2xvc2VUaW1lcicsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlc3RhcnRDbG9zZVRpbWVyKCkge1xuICAgICAgdGhpcy5jbGVhckNsb3NlVGltZXIoKTtcbiAgICAgIHRoaXMuc3RhcnRDbG9zZVRpbWVyKCk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAncmVuZGVyJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgdmFyIF9jbGFzc05hbWU7XG5cbiAgICAgIHZhciBwcm9wcyA9IHRoaXMucHJvcHM7XG4gICAgICB2YXIgY29tcG9uZW50Q2xhc3MgPSBwcm9wcy5wcmVmaXhDbHMgKyAnLW5vdGljZSc7XG4gICAgICB2YXIgY2xhc3NOYW1lID0gKF9jbGFzc05hbWUgPSB7fSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc05hbWUsICcnICsgY29tcG9uZW50Q2xhc3MsIDEpLCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzTmFtZSwgY29tcG9uZW50Q2xhc3MgKyAnLWNsb3NhYmxlJywgcHJvcHMuY2xvc2FibGUpLCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzTmFtZSwgcHJvcHMuY2xhc3NOYW1lLCAhIXByb3BzLmNsYXNzTmFtZSksIF9jbGFzc05hbWUpO1xuICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICdkaXYnLFxuICAgICAgICB7XG4gICAgICAgICAgY2xhc3NOYW1lOiBjbGFzc05hbWVzKGNsYXNzTmFtZSksXG4gICAgICAgICAgc3R5bGU6IHByb3BzLnN0eWxlLFxuICAgICAgICAgIG9uTW91c2VFbnRlcjogdGhpcy5jbGVhckNsb3NlVGltZXIsXG4gICAgICAgICAgb25Nb3VzZUxlYXZlOiB0aGlzLnN0YXJ0Q2xvc2VUaW1lcixcbiAgICAgICAgICBvbkNsaWNrOiBwcm9wcy5vbkNsaWNrXG4gICAgICAgIH0sXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgeyBjbGFzc05hbWU6IGNvbXBvbmVudENsYXNzICsgJy1jb250ZW50JyB9LFxuICAgICAgICAgIHByb3BzLmNoaWxkcmVuXG4gICAgICAgICksXG4gICAgICAgIHByb3BzLmNsb3NhYmxlID8gUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAnYScsXG4gICAgICAgICAgeyB0YWJJbmRleDogJzAnLCBvbkNsaWNrOiB0aGlzLmNsb3NlLCBjbGFzc05hbWU6IGNvbXBvbmVudENsYXNzICsgJy1jbG9zZScgfSxcbiAgICAgICAgICBwcm9wcy5jbG9zZUljb24gfHwgUmVhY3QuY3JlYXRlRWxlbWVudCgnc3BhbicsIHsgY2xhc3NOYW1lOiBjb21wb25lbnRDbGFzcyArICctY2xvc2UteCcgfSlcbiAgICAgICAgKSA6IG51bGxcbiAgICAgICk7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIE5vdGljZTtcbn0oQ29tcG9uZW50KTtcblxuTm90aWNlLnByb3BUeXBlcyA9IHtcbiAgZHVyYXRpb246IFByb3BUeXBlcy5udW1iZXIsXG4gIG9uQ2xvc2U6IFByb3BUeXBlcy5mdW5jLFxuICBjaGlsZHJlbjogUHJvcFR5cGVzLmFueSxcbiAgdXBkYXRlOiBQcm9wVHlwZXMuYm9vbCxcbiAgY2xvc2VJY29uOiBQcm9wVHlwZXMubm9kZVxufTtcbk5vdGljZS5kZWZhdWx0UHJvcHMgPSB7XG4gIG9uRW5kOiBmdW5jdGlvbiBvbkVuZCgpIHt9LFxuICBvbkNsb3NlOiBmdW5jdGlvbiBvbkNsb3NlKCkge30sXG5cbiAgZHVyYXRpb246IDEuNSxcbiAgc3R5bGU6IHtcbiAgICByaWdodDogJzUwJSdcbiAgfVxufTtcbmV4cG9ydCBkZWZhdWx0IE5vdGljZTsiLCJpbXBvcnQgX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9vYmplY3RXaXRob3V0UHJvcGVydGllcyc7XG5pbXBvcnQgX2RlZmluZVByb3BlcnR5IGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9kZWZpbmVQcm9wZXJ0eSc7XG5pbXBvcnQgX2V4dGVuZHMgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL2V4dGVuZHMnO1xuaW1wb3J0IF9jbGFzc0NhbGxDaGVjayBmcm9tICdiYWJlbC1ydW50aW1lL2hlbHBlcnMvY2xhc3NDYWxsQ2hlY2snO1xuaW1wb3J0IF9jcmVhdGVDbGFzcyBmcm9tICdiYWJlbC1ydW50aW1lL2hlbHBlcnMvY3JlYXRlQ2xhc3MnO1xuaW1wb3J0IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuJztcbmltcG9ydCBfaW5oZXJpdHMgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL2luaGVyaXRzJztcbmltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0RE9NIGZyb20gJ3JlYWN0LWRvbSc7XG5pbXBvcnQgQW5pbWF0ZSBmcm9tICdyYy1hbmltYXRlJztcbmltcG9ydCBjcmVhdGVDaGFpbmVkRnVuY3Rpb24gZnJvbSAncmMtdXRpbC9lcy9jcmVhdGVDaGFpbmVkRnVuY3Rpb24nO1xuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgTm90aWNlIGZyb20gJy4vTm90aWNlJztcblxudmFyIHNlZWQgPSAwO1xudmFyIG5vdyA9IERhdGUubm93KCk7XG5cbmZ1bmN0aW9uIGdldFV1aWQoKSB7XG4gIHJldHVybiAncmNOb3RpZmljYXRpb25fJyArIG5vdyArICdfJyArIHNlZWQrKztcbn1cblxudmFyIE5vdGlmaWNhdGlvbiA9IGZ1bmN0aW9uIChfQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhOb3RpZmljYXRpb24sIF9Db21wb25lbnQpO1xuXG4gIGZ1bmN0aW9uIE5vdGlmaWNhdGlvbigpIHtcbiAgICB2YXIgX3JlZjtcblxuICAgIHZhciBfdGVtcCwgX3RoaXMsIF9yZXQ7XG5cbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgTm90aWZpY2F0aW9uKTtcblxuICAgIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgICBhcmdzW19rZXldID0gYXJndW1lbnRzW19rZXldO1xuICAgIH1cblxuICAgIHJldHVybiBfcmV0ID0gKF90ZW1wID0gKF90aGlzID0gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgKF9yZWYgPSBOb3RpZmljYXRpb24uX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihOb3RpZmljYXRpb24pKS5jYWxsLmFwcGx5KF9yZWYsIFt0aGlzXS5jb25jYXQoYXJncykpKSwgX3RoaXMpLCBfdGhpcy5zdGF0ZSA9IHtcbiAgICAgIG5vdGljZXM6IFtdXG4gICAgfSwgX3RoaXMuYWRkID0gZnVuY3Rpb24gKG5vdGljZSkge1xuICAgICAgdmFyIGtleSA9IG5vdGljZS5rZXkgPSBub3RpY2Uua2V5IHx8IGdldFV1aWQoKTtcbiAgICAgIHZhciBtYXhDb3VudCA9IF90aGlzLnByb3BzLm1heENvdW50O1xuXG4gICAgICBfdGhpcy5zZXRTdGF0ZShmdW5jdGlvbiAocHJldmlvdXNTdGF0ZSkge1xuICAgICAgICB2YXIgbm90aWNlcyA9IHByZXZpb3VzU3RhdGUubm90aWNlcztcbiAgICAgICAgdmFyIG5vdGljZUluZGV4ID0gbm90aWNlcy5tYXAoZnVuY3Rpb24gKHYpIHtcbiAgICAgICAgICByZXR1cm4gdi5rZXk7XG4gICAgICAgIH0pLmluZGV4T2Yoa2V5KTtcbiAgICAgICAgdmFyIHVwZGF0ZWROb3RpY2VzID0gbm90aWNlcy5jb25jYXQoKTtcbiAgICAgICAgaWYgKG5vdGljZUluZGV4ICE9PSAtMSkge1xuICAgICAgICAgIHVwZGF0ZWROb3RpY2VzLnNwbGljZShub3RpY2VJbmRleCwgMSwgbm90aWNlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAobWF4Q291bnQgJiYgbm90aWNlcy5sZW5ndGggPj0gbWF4Q291bnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdGljZS51cGRhdGVLZXkgPSB1cGRhdGVkTm90aWNlc1swXS51cGRhdGVLZXkgfHwgdXBkYXRlZE5vdGljZXNbMF0ua2V5O1xuICAgICAgICAgICAgdXBkYXRlZE5vdGljZXMuc2hpZnQoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdXBkYXRlZE5vdGljZXMucHVzaChub3RpY2UpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbm90aWNlczogdXBkYXRlZE5vdGljZXNcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgIH0sIF90aGlzLnJlbW92ZSA9IGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgIF90aGlzLnNldFN0YXRlKGZ1bmN0aW9uIChwcmV2aW91c1N0YXRlKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbm90aWNlczogcHJldmlvdXNTdGF0ZS5ub3RpY2VzLmZpbHRlcihmdW5jdGlvbiAobm90aWNlKSB7XG4gICAgICAgICAgICByZXR1cm4gbm90aWNlLmtleSAhPT0ga2V5O1xuICAgICAgICAgIH0pXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICB9LCBfdGVtcCksIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKF90aGlzLCBfcmV0KTtcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhOb3RpZmljYXRpb24sIFt7XG4gICAga2V5OiAnZ2V0VHJhbnNpdGlvbk5hbWUnLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRUcmFuc2l0aW9uTmFtZSgpIHtcbiAgICAgIHZhciBwcm9wcyA9IHRoaXMucHJvcHM7XG4gICAgICB2YXIgdHJhbnNpdGlvbk5hbWUgPSBwcm9wcy50cmFuc2l0aW9uTmFtZTtcbiAgICAgIGlmICghdHJhbnNpdGlvbk5hbWUgJiYgcHJvcHMuYW5pbWF0aW9uKSB7XG4gICAgICAgIHRyYW5zaXRpb25OYW1lID0gcHJvcHMucHJlZml4Q2xzICsgJy0nICsgcHJvcHMuYW5pbWF0aW9uO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRyYW5zaXRpb25OYW1lO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ3JlbmRlcicsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHZhciBfdGhpczIgPSB0aGlzLFxuICAgICAgICAgIF9jbGFzc05hbWU7XG5cbiAgICAgIHZhciBwcm9wcyA9IHRoaXMucHJvcHM7XG4gICAgICB2YXIgbm90aWNlcyA9IHRoaXMuc3RhdGUubm90aWNlcztcblxuICAgICAgdmFyIG5vdGljZU5vZGVzID0gbm90aWNlcy5tYXAoZnVuY3Rpb24gKG5vdGljZSwgaW5kZXgpIHtcbiAgICAgICAgdmFyIHVwZGF0ZSA9IEJvb2xlYW4oaW5kZXggPT09IG5vdGljZXMubGVuZ3RoIC0gMSAmJiBub3RpY2UudXBkYXRlS2V5KTtcbiAgICAgICAgdmFyIGtleSA9IG5vdGljZS51cGRhdGVLZXkgPyBub3RpY2UudXBkYXRlS2V5IDogbm90aWNlLmtleTtcbiAgICAgICAgdmFyIG9uQ2xvc2UgPSBjcmVhdGVDaGFpbmVkRnVuY3Rpb24oX3RoaXMyLnJlbW92ZS5iaW5kKF90aGlzMiwgbm90aWNlLmtleSksIG5vdGljZS5vbkNsb3NlKTtcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgTm90aWNlLFxuICAgICAgICAgIF9leHRlbmRzKHtcbiAgICAgICAgICAgIHByZWZpeENsczogcHJvcHMucHJlZml4Q2xzXG4gICAgICAgICAgfSwgbm90aWNlLCB7XG4gICAgICAgICAgICBrZXk6IGtleSxcbiAgICAgICAgICAgIHVwZGF0ZTogdXBkYXRlLFxuICAgICAgICAgICAgb25DbG9zZTogb25DbG9zZSxcbiAgICAgICAgICAgIG9uQ2xpY2s6IG5vdGljZS5vbkNsaWNrLFxuICAgICAgICAgICAgY2xvc2VJY29uOiBwcm9wcy5jbG9zZUljb25cbiAgICAgICAgICB9KSxcbiAgICAgICAgICBub3RpY2UuY29udGVudFxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgICB2YXIgY2xhc3NOYW1lID0gKF9jbGFzc05hbWUgPSB7fSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc05hbWUsIHByb3BzLnByZWZpeENscywgMSksIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lLCBwcm9wcy5jbGFzc05hbWUsICEhcHJvcHMuY2xhc3NOYW1lKSwgX2NsYXNzTmFtZSk7XG4gICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgJ2RpdicsXG4gICAgICAgIHsgY2xhc3NOYW1lOiBjbGFzc25hbWVzKGNsYXNzTmFtZSksIHN0eWxlOiBwcm9wcy5zdHlsZSB9LFxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgIEFuaW1hdGUsXG4gICAgICAgICAgeyB0cmFuc2l0aW9uTmFtZTogdGhpcy5nZXRUcmFuc2l0aW9uTmFtZSgpIH0sXG4gICAgICAgICAgbm90aWNlTm9kZXNcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gTm90aWZpY2F0aW9uO1xufShDb21wb25lbnQpO1xuXG5Ob3RpZmljYXRpb24ucHJvcFR5cGVzID0ge1xuICBwcmVmaXhDbHM6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHRyYW5zaXRpb25OYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBhbmltYXRpb246IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5vYmplY3RdKSxcbiAgc3R5bGU6IFByb3BUeXBlcy5vYmplY3QsXG4gIG1heENvdW50OiBQcm9wVHlwZXMubnVtYmVyLFxuICBjbG9zZUljb246IFByb3BUeXBlcy5ub2RlXG59O1xuTm90aWZpY2F0aW9uLmRlZmF1bHRQcm9wcyA9IHtcbiAgcHJlZml4Q2xzOiAncmMtbm90aWZpY2F0aW9uJyxcbiAgYW5pbWF0aW9uOiAnZmFkZScsXG4gIHN0eWxlOiB7XG4gICAgdG9wOiA2NSxcbiAgICBsZWZ0OiAnNTAlJ1xuICB9XG59O1xuXG5cbk5vdGlmaWNhdGlvbi5uZXdJbnN0YW5jZSA9IGZ1bmN0aW9uIG5ld05vdGlmaWNhdGlvbkluc3RhbmNlKHByb3BlcnRpZXMsIGNhbGxiYWNrKSB7XG4gIHZhciBfcmVmMiA9IHByb3BlcnRpZXMgfHwge30sXG4gICAgICBnZXRDb250YWluZXIgPSBfcmVmMi5nZXRDb250YWluZXIsXG4gICAgICBwcm9wcyA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhfcmVmMiwgWydnZXRDb250YWluZXInXSk7XG5cbiAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICBpZiAoZ2V0Q29udGFpbmVyKSB7XG4gICAgdmFyIHJvb3QgPSBnZXRDb250YWluZXIoKTtcbiAgICByb290LmFwcGVuZENoaWxkKGRpdik7XG4gIH0gZWxzZSB7XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkaXYpO1xuICB9XG4gIHZhciBjYWxsZWQgPSBmYWxzZTtcbiAgZnVuY3Rpb24gcmVmKG5vdGlmaWNhdGlvbikge1xuICAgIGlmIChjYWxsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY2FsbGVkID0gdHJ1ZTtcbiAgICBjYWxsYmFjayh7XG4gICAgICBub3RpY2U6IGZ1bmN0aW9uIG5vdGljZShub3RpY2VQcm9wcykge1xuICAgICAgICBub3RpZmljYXRpb24uYWRkKG5vdGljZVByb3BzKTtcbiAgICAgIH0sXG4gICAgICByZW1vdmVOb3RpY2U6IGZ1bmN0aW9uIHJlbW92ZU5vdGljZShrZXkpIHtcbiAgICAgICAgbm90aWZpY2F0aW9uLnJlbW92ZShrZXkpO1xuICAgICAgfSxcblxuICAgICAgY29tcG9uZW50OiBub3RpZmljYXRpb24sXG4gICAgICBkZXN0cm95OiBmdW5jdGlvbiBkZXN0cm95KCkge1xuICAgICAgICBSZWFjdERPTS51bm1vdW50Q29tcG9uZW50QXROb2RlKGRpdik7XG4gICAgICAgIGRpdi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGRpdik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgUmVhY3RET00ucmVuZGVyKFJlYWN0LmNyZWF0ZUVsZW1lbnQoTm90aWZpY2F0aW9uLCBfZXh0ZW5kcyh7fSwgcHJvcHMsIHsgcmVmOiByZWYgfSkpLCBkaXYpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgTm90aWZpY2F0aW9uOyIsIi8qKlxuICogU2FmZSBjaGFpbmVkIGZ1bmN0aW9uXG4gKlxuICogV2lsbCBvbmx5IGNyZWF0ZSBhIG5ldyBmdW5jdGlvbiBpZiBuZWVkZWQsXG4gKiBvdGhlcndpc2Ugd2lsbCBwYXNzIGJhY2sgZXhpc3RpbmcgZnVuY3Rpb25zIG9yIG51bGwuXG4gKlxuICogQHJldHVybnMge2Z1bmN0aW9ufG51bGx9XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUNoYWluZWRGdW5jdGlvbigpIHtcbiAgdmFyIGFyZ3MgPSBbXS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMCk7XG5cbiAgaWYgKGFyZ3MubGVuZ3RoID09PSAxKSB7XG4gICAgcmV0dXJuIGFyZ3NbMF07XG4gIH1cblxuICByZXR1cm4gZnVuY3Rpb24gY2hhaW5lZEZ1bmN0aW9uKCkge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJncy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKGFyZ3NbaV0gJiYgYXJnc1tpXS5hcHBseSkge1xuICAgICAgICBhcmdzW2ldLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICB9XG4gICAgfVxuICB9O1xufSIsImltcG9ydCBOb3RpZmljYXRpb24gZnJvbSAnLi9Ob3RpZmljYXRpb24nO1xuZXhwb3J0IGRlZmF1bHQgTm90aWZpY2F0aW9uOyIsImltcG9ydCBfY3VycnkxIGZyb20gXCIuL2ludGVybmFsL19jdXJyeTEuanNcIjtcbmltcG9ydCBjdXJyeU4gZnJvbSBcIi4vY3VycnlOLmpzXCI7XG4vKipcbiAqIFJldHVybnMgYSBuZXcgZnVuY3Rpb24gbXVjaCBsaWtlIHRoZSBzdXBwbGllZCBvbmUsIGV4Y2VwdCB0aGF0IHRoZSBmaXJzdCB0d29cbiAqIGFyZ3VtZW50cycgb3JkZXIgaXMgcmV2ZXJzZWQuXG4gKlxuICogQGZ1bmNcbiAqIEBtZW1iZXJPZiBSXG4gKiBAc2luY2UgdjAuMS4wXG4gKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAqIEBzaWcgKChhLCBiLCBjLCAuLi4pIC0+IHopIC0+IChiIC0+IGEgLT4gYyAtPiAuLi4gLT4geilcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuIFRoZSBmdW5jdGlvbiB0byBpbnZva2Ugd2l0aCBpdHMgZmlyc3QgdHdvIHBhcmFtZXRlcnMgcmV2ZXJzZWQuXG4gKiBAcmV0dXJuIHsqfSBUaGUgcmVzdWx0IG9mIGludm9raW5nIGBmbmAgd2l0aCBpdHMgZmlyc3QgdHdvIHBhcmFtZXRlcnMnIG9yZGVyIHJldmVyc2VkLlxuICogQGV4YW1wbGVcbiAqXG4gKiAgICAgIGNvbnN0IG1lcmdlVGhyZWUgPSAoYSwgYiwgYykgPT4gW10uY29uY2F0KGEsIGIsIGMpO1xuICpcbiAqICAgICAgbWVyZ2VUaHJlZSgxLCAyLCAzKTsgLy89PiBbMSwgMiwgM11cbiAqXG4gKiAgICAgIFIuZmxpcChtZXJnZVRocmVlKSgxLCAyLCAzKTsgLy89PiBbMiwgMSwgM11cbiAqIEBzeW1iIFIuZmxpcChmKShhLCBiLCBjKSA9IGYoYiwgYSwgYylcbiAqL1xuXG52YXIgZmxpcCA9XG4vKiNfX1BVUkVfXyovXG5fY3VycnkxKGZ1bmN0aW9uIGZsaXAoZm4pIHtcbiAgcmV0dXJuIGN1cnJ5Tihmbi5sZW5ndGgsIGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgdmFyIGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDApO1xuICAgIGFyZ3NbMF0gPSBiO1xuICAgIGFyZ3NbMV0gPSBhO1xuICAgIHJldHVybiBmbi5hcHBseSh0aGlzLCBhcmdzKTtcbiAgfSk7XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgZmxpcDsiXSwic291cmNlUm9vdCI6IiJ9
| ver. 1.4 |
Github
|
.
| PHP 7.4.3-4ubuntu2.24 | Генерация страницы: 1.1 |
proxy
|
phpinfo
|
Настройка