/*! For license information please see main.b65bdf75.js.LICENSE.txt */ (()=>{"use strict";var e,t,r,n={227:(e,t,r)=>{var n=r(7294),a=r(745),i=(0,n.createContext)(),o=r(9655),s=r(9250),l=r(5697),u=r.n(l),c=r(6574),f=r(6501),d=r(5725),m=r(3584),p=r(2658),h=r(9062);function g(e){return g="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},g(e)}function y(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=new Array(t);r=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,o=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,i=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw i}}}}(o);try{for(l.s();!(n=l.n()).done;){var u=n.value;u?"string"==typeof u?s.appendChild(a.createTextNode(u)):s.appendChild(u):s.appendChild(a.createTextNode(""))}}catch(e){l.e(e)}finally{l.f()}return s}},{key:"constructXMLDocument",value:function(e,t,r,n,a){var i=document.implementation.createDocument("http://www.srspharmacy.com/XML/PatientRefillRequest","PatientRefillRequest",null),o=i.documentElement;return o.appendChild(this.entity(i,"To",this.state.tag)),o.appendChild(this.entity(i,"From","srsrfl")),o.appendChild(this.entity(i,"Auth",this.state.hash)),o.appendChild(this.entity(i,"SentTime",(new Date).toISOString())),o.appendChild(this.entity(i,"MessageID",(new Date).getTime().toString())),o.appendChild(this.entity(i,"RxNumbers",this.entity(i,"RxNumber",this.state.rxNumber))),o.appendChild(this.entity(i,"Contact",this.entity(i,"LastName",e),this.entity(i,"FirstName",t),this.entity(i,"Phone",r),this.entity(i,"Email",n))),o.appendChild(this.entity(i,"Comment",a)),i}},{key:"load",value:function(){var e=this,t={tag:this.getStoreNumber(),rx_number:this.getRxNumber(),auth:this.getHash()};O({method:"get",endpoint:"query",params:t}).then((function(t){var r=JSON.parse(t.data);e.setState({store_name:r.name,logo:r.logo,store_address:r.address1,store_address_two:r.address2,city:r.city,state:r.state,zip:r.zip,pharmacy_phone:r.phone,store_uuid:r.store_uuid,loaded:!0,register_enabled:r.srsrfl_register,showForm:"Y"==r.srsrfl_register,patient_user:!!(r.users&&r.users.length>0)}),r.patient_uuid&&e.context.setPatient(r.patient_uuid)})).catch((function(t){var r;console.log(t);var n=null!=t&&null!==(r=t.response)&&void 0!==r&&r.data?JSON.parse(t.response.data):"";if(n)if(n.redirect)e.setState({redirect:!0,loaded:!0});else{var a=n.message;e.setState({errors:S(a),loaded:!0})}else e.setState({errors:"Something unexpected happened",loaded:!0})}))}},{key:"componentDidMount",value:function(){this.load()}},{key:"componentDidUpdate",value:function(){this.state.loaded||this.load()}},{key:"requestRefill",value:function(){var e=this,t=''+(new XMLSerializer).serializeToString(this.constructXMLDocument());O({method:"post",endpoint:"submit",headers:{"Content-Type":"text/xml"},data:t}).then((function(t){e.setState({requested:"Refill requested successfully.",showRegisterButton:"O"==e.state.register_enabled})})).catch((function(t){console.log(t),e.setState({errors:S(t),loaded:!0})}))}},{key:"render",value:function(){var e=this,t=n.createElement(A,null);if(this.state.loaded)if(this.state.redirect){var r=this.getStoreNumber();window.location.href="webrefillform/"+r}else if(this.state.errors){var a="";"Invalid data format"==this.state.errors||"Unexpected value provide"==this.state.errors?a="Missing or invalid store tag in request":"Not enough parameters supplied in request"==this.state.errors||"Unexpected/Missing query string supplied"==this.state.errors?a="Missing store tag or Rx number in query string":"Invalid data supplied in the request"==this.state.errors&&(a="Invalid hash given in the query string");var i={message:a||this.state.errors};this.state.store_name&&(i.returnTo=function(){return e.setState({errors:null})}),t=x(i)}else this.state.patient_user?window.location.href="portal.html?store_uuid="+this.state.store_uuid+"#/":t=n.createElement(d.ZP,null,n.createElement(L.Z,{position:"static"},n.createElement(W.Z,null,this.state.logo?n.createElement("img",{src:this.state.logo,alt:this.state.store_name,style:{margin:"5px",borderRadius:"5px",height:"5rem"}}):n.createElement(p.Z,null,this.state.store_name))),n.createElement(d.ZP,{container:!0,justifyContent:"center"},n.createElement(d.ZP,{item:!0},n.createElement(m.Z,null,n.createElement(p.Z,{variant:"h6"},"Refill Request for Rx# ",this.state.rxNumber)))),n.createElement("br",null),n.createElement(d.ZP,{container:!0,direction:"column",justifyContent:"space-evenly",alignItems:"center",spacing:2},n.createElement(d.ZP,{item:!0},this.state.requested?n.createElement(c.Z,{maxWidth:"lg"},n.createElement(f.Z,{square:!1,elevation:0,variant:"outlined",sx:{color:"green",py:"0.5rem",px:"1rem"}},n.createElement(p.Z,{variant:"h5",align:"center"}," ",this.state.requested))):n.createElement(n.Fragment,null)),n.createElement(d.ZP,{item:!0},this.state.showForm&&"N"!==this.state.register_enabled?n.createElement(D,{store_uuid:this.state.store_uuid,store_name:this.state.store_name,register_enabled:this.state.register_enabled}):n.createElement(n.Fragment,null)),n.createElement(d.ZP,{item:!0},this.state.showForm||this.state.showRegisterButton?n.createElement(n.Fragment,null):n.createElement("div",null,n.createElement(E.Z,{variant:"contained",color:"primary",size:"large",disabled:this.state.disable_button,onClick:function(t){t.stopPropagation(),t.preventDefault(),e.requestRefill(t),e.setState({disable_button:!0})}},"Request Refill"),n.createElement("br",null),n.createElement("br",null),n.createElement("br",null),n.createElement("br",null))),this.state.showRegisterButton?n.createElement("div",null,n.createElement(d.ZP,{container:!0,direction:"column",alignItems:"center",width:"100%"},n.createElement(d.ZP,{item:!0},n.createElement(p.Z,{sx:{textAlign:"center",margin:"2rem"}},"Optional: To make this process easier next time, press Continue to begin registering for ",this.state.store_name,"'s Patient Portal.")),n.createElement(d.ZP,{item:!0},n.createElement(E.Z,{variant:"contained",color:"primary",size:"large",onClick:function(t){t.stopPropagation(),t.preventDefault(),e.setState({showRegisterButton:!1,showForm:!0})}},"Continue"))),n.createElement("br",null)):n.createElement(n.Fragment,null)),n.createElement(d.ZP,{container:!0,direction:"row",justifyContent:"space-around",alignItems:"center"},n.createElement(d.ZP,{item:!0},n.createElement(E.Z,{variant:"outlined",size:"large",href:"/m/"+this.state.tag},"Mobile Site")),n.createElement(d.ZP,{item:!0},n.createElement(E.Z,{href:"tel://+1"+this.state.pharmacy_phone.replace(/[^+\d]/g,""),variant:"outlined",size:"large"},"Call Pharmacy"))),n.createElement("hr",null),n.createElement(d.ZP,{container:!0,direction:"column",justifyContent:"flex-end",alignItems:"center"},n.createElement(p.Z,null,this.state.store_name),n.createElement(p.Z,null,this.state.store_address),n.createElement(p.Z,null,this.state.city,", ",this.state.state," ",this.state.zip),n.createElement(p.Z,null,this.state.pharmacy_phone)));else t=n.createElement(A,null);return n.createElement("div",null,t)}}],r&&Q(t.prototype,r),Object.defineProperty(t,"prototype",{writable:!1}),s}(n.Component);Y(J,"propTypes",{prescription:u().object,setRefillResponse:u().func,themeMode:u().string.isRequired}),Y(J,"contextType",i);const K=J;var H=r(9617),$=r(2233),ee=r(6720);function te(e){return 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},te(e)}function re(){re=function(){return t};var e,t={},r=Object.prototype,n=r.hasOwnProperty,a=Object.defineProperty||function(e,t,r){e[t]=r.value},i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",l=i.toStringTag||"@@toStringTag";function u(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{u({},"")}catch(e){u=function(e,t,r){return e[t]=r}}function c(e,t,r,n){var i=t&&t.prototype instanceof y?t:y,o=Object.create(i.prototype),s=new j(n||[]);return a(o,"_invoke",{value:O(e,r,s)}),o}function f(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=c;var d="suspendedStart",m="suspendedYield",p="executing",h="completed",g={};function y(){}function v(){}function b(){}var w={};u(w,o,(function(){return this}));var A=Object.getPrototypeOf,E=A&&A(A(I([])));E&&E!==r&&n.call(E,o)&&(w=E);var P=b.prototype=y.prototype=Object.create(w);function x(e){["next","throw","return"].forEach((function(t){u(e,t,(function(e){return this._invoke(t,e)}))}))}function k(e,t){function r(a,i,o,s){var l=f(e[a],e,i);if("throw"!==l.type){var u=l.arg,c=u.value;return c&&"object"==te(c)&&n.call(c,"__await")?t.resolve(c.__await).then((function(e){r("next",e,o,s)}),(function(e){r("throw",e,o,s)})):t.resolve(c).then((function(e){u.value=e,o(u)}),(function(e){return r("throw",e,o,s)}))}s(l.arg)}var i;a(this,"_invoke",{value:function(e,n){function a(){return new t((function(t,a){r(e,n,t,a)}))}return i=i?i.then(a,a):a()}})}function O(t,r,n){var a=d;return function(i,o){if(a===p)throw new Error("Generator is already running");if(a===h){if("throw"===i)throw o;return{value:e,done:!0}}for(n.method=i,n.arg=o;;){var s=n.delegate;if(s){var l=S(s,n);if(l){if(l===g)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(a===d)throw a=h,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);a=p;var u=f(t,r,n);if("normal"===u.type){if(a=n.done?h:m,u.arg===g)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(a=h,n.method="throw",n.arg=u.arg)}}}function S(t,r){var n=r.method,a=t.iterator[n];if(a===e)return r.delegate=null,"throw"===n&&t.iterator.return&&(r.method="return",r.arg=e,S(t,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),g;var i=f(a,t.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,g;var o=i.arg;return o?o.done?(r[t.resultName]=o.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,g):o:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,g)}function C(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 Z(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function j(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(C,this),this.reset(!0)}function I(t){if(t||""===t){var r=t[o];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var a=-1,i=function r(){for(;++a=0;--i){var o=this.tryEntries[i],s=o.completion;if("root"===o.tryLoc)return a("end");if(o.tryLoc<=this.prev){var l=n.call(o,"catchLoc"),u=n.call(o,"finallyLoc");if(l&&u){if(this.prev=0;--r){var a=this.tryEntries[r];if(a.tryLoc<=this.prev&&n.call(a,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),Z(r),g}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var a=n.arg;Z(r)}return a}}throw new Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:I(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),g}},t}function ne(e,t,r,n,a,i,o){try{var s=e[i](o),l=s.value}catch(e){return void r(e)}s.done?t(l):Promise.resolve(l).then(n,a)}function ae(e){return function(){var t=this,r=arguments;return new Promise((function(n,a){var i=e.apply(t,r);function o(e){ne(i,n,a,o,s,"next",e)}function s(e){ne(i,n,a,o,s,"throw",e)}o(void 0)}))}}function ie(e,t){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:null;e||(e=window.matchMedia("(prefers-color-scheme: dark)"));var t=e.matches?"dark":"light";this.setState({theme:t})}},{key:"setPatient",value:function(e){localStorage.setItem("patient_uuid",e)}},{key:"setUsername",value:function(e){localStorage.setItem("username",e)}},{key:"getUsername",value:function(){try{return localStorage.getItem("username")}catch(e){return null}}},{key:"getPatient",value:function(){try{return localStorage.getItem("patient_uuid")}catch(e){return null}}},{key:"setTokens",value:function(e){localStorage.setItem("tokens",JSON.stringify(e)),this.setState({authTokens:e})}},{key:"setPassword",value:function(e){localStorage.setItem("password",e)}},{key:"getPassword",value:function(){try{return localStorage.getItem("password")}catch(e){return null}}},{key:"setUserUUID",value:function(e){localStorage.setItem("user_uuid",e)}},{key:"getUserUUID",value:function(){try{return localStorage.getItem("user_uuid")}catch(e){return null}}},{key:"setFirstName",value:function(e){localStorage.setItem("first_name",e)}},{key:"getFirstName",value:function(){try{return localStorage.getItem("first_name")}catch(e){return null}}},{key:"setLastName",value:function(e){localStorage.setItem("last_name",e)}},{key:"getLastName",value:function(){try{return localStorage.getItem("last_name")}catch(e){return null}}},{key:"removeItem",value:function(e){localStorage.removeItem(e)}},{key:"render",value:function(){var e={authTokens:this.state.authTokens,setUsername:this.setUsername,getUsername:this.getUsername,setPatient:this.setPatient,getPatient:this.getPatient,setPassword:this.setPassword,getPassword:this.getPassword,setUserUUID:this.setUserUUID,getUserUUID:this.getUserUUID,setFirstName:this.setFirstName,getFirstName:this.getFirstName,setLastName:this.setLastName,getLastName:this.getLastName,removeItem:this.removeItem,setAuthTokens:this.setTokens};return n.createElement(i.Provider,{value:e},n.createElement($.Z,{theme:"dark"===this.state.theme?this.themeDark:this.themeLight},n.createElement(ee.ZP,null),n.createElement("div",null,n.createElement(o.UT,null,n.createElement(s.Z5,null,n.createElement(s.AW,{path:"/",element:n.createElement(K,{themeMode:this.state.theme})}))))))}}],r&&ie(t.prototype,r),Object.defineProperty(t,"prototype",{writable:!1}),d}(n.Component);a.createRoot(document.getElementById("container")).render(n.createElement(n.StrictMode,null,n.createElement(pe,null)))}},a={};function i(e){var t=a[e];if(void 0!==t)return t.exports;var r=a[e]={exports:{}};return n[e](r,r.exports,i),r.exports}i.m=n,e=[],i.O=(t,r,n,a)=>{if(!r){var o=1/0;for(c=0;c=a)&&Object.keys(i.O).every((e=>i.O[e](r[l])))?r.splice(l--,1):(s=!1,a0&&e[c-1][2]>a;c--)e[c]=e[c-1];e[c]=[r,n,a]},i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,i.t=function(e,n){if(1&n&&(e=this(e)),8&n)return e;if("object"==typeof e&&e){if(4&n&&e.__esModule)return e;if(16&n&&"function"==typeof e.then)return e}var a=Object.create(null);i.r(a);var o={};t=t||[null,r({}),r([]),r(r)];for(var s=2&n&&e;"object"==typeof s&&!~t.indexOf(s);s=r(s))Object.getOwnPropertyNames(s).forEach((t=>o[t]=()=>e[t]));return o.default=()=>e,i.d(a,o),a},i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e={179:0};i.O.j=t=>0===e[t];var t=(t,r)=>{var n,a,[o,s,l]=r,u=0;if(o.some((t=>0!==e[t]))){for(n in s)i.o(s,n)&&(i.m[n]=s[n]);if(l)var c=l(i)}for(t&&t(r);ui(227)));o=i.O(o)})(); //# sourceMappingURL=data:application/json;charset=utf-8;base64,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a0IsQ0FDckIsSUFBSyxHQWFOekIsRUFBb0JPLEVBQUVNLEVBQUthLEdBQTBDLElBQTdCRCxFQUFnQkMsR0FHeEQsSUFBSUMsRUFBdUIsQ0FBQ0MsRUFBNEJsWSxLQUN2RCxJQUdJdVcsRUFBVXlCLEdBSFRsQixFQUFVcUIsRUFBYUMsR0FBV3BZLEVBR2hCK0wsRUFBSSxFQUMzQixHQUFHK0ssRUFBU3VCLE1BQU1qVCxHQUFnQyxJQUF4QjJTLEVBQWdCM1MsS0FBYSxDQUN0RCxJQUFJbVIsS0FBWTRCLEVBQ1o3QixFQUFvQnpLLEVBQUVzTSxFQUFhNUIsS0FDckNELEVBQW9CTSxFQUFFTCxHQUFZNEIsRUFBWTVCLElBR2hELEdBQUc2QixFQUFTLElBQUkxRSxFQUFTMEUsRUFBUTlCLEVBQ2xDLENBRUEsSUFERzRCLEdBQTRCQSxFQUEyQmxZLEdBQ3JEK0wsRUFBSStLLEVBQVNyVyxPQUFRc0wsSUFDekJpTSxFQUFVbEIsRUFBUy9LLEdBQ2hCdUssRUFBb0J6SyxFQUFFa00sRUFBaUJDLElBQVlELEVBQWdCQyxJQUNyRUQsRUFBZ0JDLEdBQVMsS0FFMUJELEVBQWdCQyxHQUFXLEVBRTVCLE9BQU8xQixFQUFvQk8sRUFBRW5ELEVBQU8sRUFHakM0RSxFQUFxQnBILEtBQStCLHlCQUFJQSxLQUErQiwwQkFBSyxHQUNoR29ILEVBQW1CMUssUUFBUXFLLEVBQXFCclYsS0FBSyxLQUFNLElBQzNEMFYsRUFBbUJuSixLQUFPOEksRUFBcUJyVixLQUFLLEtBQU0wVixFQUFtQm5KLEtBQUt2TSxLQUFLMFYsUUM3Q3ZGLElBQUlDLEVBQXNCakMsRUFBb0JPLE9BQUUzVCxFQUFXLENBQUMsRUFBRSxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksTUFBTSxJQUFPb1QsRUFBb0IsT0FDOUhpQyxFQUFzQmpDLEVBQW9CTyxFQUFFMEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9zcnNyZmwtcmVhY3Qvd2VicGFjay9ydW50aW1lL2NodW5rIGxvYWRlZCIsIndlYnBhY2s6Ly9zcnNyZmwtcmVhY3Qvd2VicGFjay9ydW50aW1lL2NyZWF0ZSBmYWtlIG5hbWVzcGFjZSBvYmplY3QiLCJ3ZWJwYWNrOi8vc3JzcmZsLXJlYWN0Ly4vc3JjL2NvbnRleHQvY29udGV4dC5qcyIsIndlYnBhY2s6Ly9zcnNyZmwtcmVhY3QvLi4vLi4vbGliL2xvYWRpbmcuanMiLCJ3ZWJwYWNrOi8vc3JzcmZsLXJlYWN0Ly4uLy4uL2xpYi9lcnJvci5qcyIsIndlYnBhY2s6Ly9zcnNyZmwtcmVhY3QvLi4vLi4vaW1nL0xvYWRpbmdDYXBzdWxlLnBuZyIsIndlYnBhY2s6Ly9zcnNyZmwtcmVhY3QvLi4vLi4vbGliL2FwaUNhbGwuanMiLCJ3ZWJwYWNrOi8vc3JzcmZsLXJlYWN0Ly4uLy4uL2xpYi9nZXRFcnJvck1lc3NhZ2UuanMiLCJ3ZWJwYWNrOi8vc3JzcmZsLXJlYWN0Ly4vc3JjL2NvbXBvbmVudHMvUmVnaXN0cmF0aW9uRm9ybS5qcyIsIndlYnBhY2s6Ly9zcnNyZmwtcmVhY3QvLi9zcmMvcGFnZXMvSG9tZS5qcyIsIndlYnBhY2s6Ly9zcnNyZmwtcmVhY3QvLi9zcmMvQXBwLmpzIiwid2VicGFjazovL3Nyc3JmbC1yZWFjdC8uL3NyYy9pbmRleC5qcyIsIndlYnBhY2s6Ly9zcnNyZmwtcmVhY3Qvd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vc3JzcmZsLXJlYWN0L3dlYnBhY2svcnVudGltZS9jb21wYXQgZ2V0IGRlZmF1bHQgZXhwb3J0Iiwid2VicGFjazovL3Nyc3JmbC1yZWFjdC93ZWJwYWNrL3J1bnRpbWUvZGVmaW5lIHByb3BlcnR5IGdldHRlcnMiLCJ3ZWJwYWNrOi8vc3JzcmZsLXJlYWN0L3dlYnBhY2svcnVudGltZS9oYXNPd25Qcm9wZXJ0eSBzaG9ydGhhbmQiLCJ3ZWJwYWNrOi8vc3JzcmZsLXJlYWN0L3dlYnBhY2svcnVudGltZS9tYWtlIG5hbWVzcGFjZSBvYmplY3QiLCJ3ZWJwYWNrOi8vc3JzcmZsLXJlYWN0L3dlYnBhY2svcnVudGltZS9qc29ucCBjaHVuayBsb2FkaW5nIiwid2VicGFjazovL3Nyc3JmbC1yZWFjdC93ZWJwYWNrL3N0YXJ0dXAiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGRlZmVycmVkID0gW107XG5fX3dlYnBhY2tfcmVxdWlyZV9fLk8gPSAocmVzdWx0LCBjaHVua0lkcywgZm4sIHByaW9yaXR5KSA9PiB7XG5cdGlmKGNodW5rSWRzKSB7XG5cdFx0cHJpb3JpdHkgPSBwcmlvcml0eSB8fCAwO1xuXHRcdGZvcih2YXIgaSA9IGRlZmVycmVkLmxlbmd0aDsgaSA+IDAgJiYgZGVmZXJyZWRbaSAtIDFdWzJdID4gcHJpb3JpdHk7IGktLSkgZGVmZXJyZWRbaV0gPSBkZWZlcnJlZFtpIC0gMV07XG5cdFx0ZGVmZXJyZWRbaV0gPSBbY2h1bmtJZHMsIGZuLCBwcmlvcml0eV07XG5cdFx0cmV0dXJuO1xuXHR9XG5cdHZhciBub3RGdWxmaWxsZWQgPSBJbmZpbml0eTtcblx0Zm9yICh2YXIgaSA9IDA7IGkgPCBkZWZlcnJlZC5sZW5ndGg7IGkrKykge1xuXHRcdHZhciBbY2h1bmtJZHMsIGZuLCBwcmlvcml0eV0gPSBkZWZlcnJlZFtpXTtcblx0XHR2YXIgZnVsZmlsbGVkID0gdHJ1ZTtcblx0XHRmb3IgKHZhciBqID0gMDsgaiA8IGNodW5rSWRzLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRpZiAoKHByaW9yaXR5ICYgMSA9PT0gMCB8fCBub3RGdWxmaWxsZWQgPj0gcHJpb3JpdHkpICYmIE9iamVjdC5rZXlzKF9fd2VicGFja19yZXF1aXJlX18uTykuZXZlcnkoKGtleSkgPT4gKF9fd2VicGFja19yZXF1aXJlX18uT1trZXldKGNodW5rSWRzW2pdKSkpKSB7XG5cdFx0XHRcdGNodW5rSWRzLnNwbGljZShqLS0sIDEpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0ZnVsZmlsbGVkID0gZmFsc2U7XG5cdFx0XHRcdGlmKHByaW9yaXR5IDwgbm90RnVsZmlsbGVkKSBub3RGdWxmaWxsZWQgPSBwcmlvcml0eTtcblx0XHRcdH1cblx0XHR9XG5cdFx0aWYoZnVsZmlsbGVkKSB7XG5cdFx0XHRkZWZlcnJlZC5zcGxpY2UoaS0tLCAxKVxuXHRcdFx0dmFyIHIgPSBmbigpO1xuXHRcdFx0aWYgKHIgIT09IHVuZGVmaW5lZCkgcmVzdWx0ID0gcjtcblx0XHR9XG5cdH1cblx0cmV0dXJuIHJlc3VsdDtcbn07IiwidmFyIGdldFByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mID8gKG9iaikgPT4gKE9iamVjdC5nZXRQcm90b3R5cGVPZihvYmopKSA6IChvYmopID0+IChvYmouX19wcm90b19fKTtcbnZhciBsZWFmUHJvdG90eXBlcztcbi8vIGNyZWF0ZSBhIGZha2UgbmFtZXNwYWNlIG9iamVjdFxuLy8gbW9kZSAmIDE6IHZhbHVlIGlzIGEgbW9kdWxlIGlkLCByZXF1aXJlIGl0XG4vLyBtb2RlICYgMjogbWVyZ2UgYWxsIHByb3BlcnRpZXMgb2YgdmFsdWUgaW50byB0aGUgbnNcbi8vIG1vZGUgJiA0OiByZXR1cm4gdmFsdWUgd2hlbiBhbHJlYWR5IG5zIG9iamVjdFxuLy8gbW9kZSAmIDE2OiByZXR1cm4gdmFsdWUgd2hlbiBpdCdzIFByb21pc2UtbGlrZVxuLy8gbW9kZSAmIDh8MTogYmVoYXZlIGxpa2UgcmVxdWlyZVxuX193ZWJwYWNrX3JlcXVpcmVfXy50ID0gZnVuY3Rpb24odmFsdWUsIG1vZGUpIHtcblx0aWYobW9kZSAmIDEpIHZhbHVlID0gdGhpcyh2YWx1ZSk7XG5cdGlmKG1vZGUgJiA4KSByZXR1cm4gdmFsdWU7XG5cdGlmKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUpIHtcblx0XHRpZigobW9kZSAmIDQpICYmIHZhbHVlLl9fZXNNb2R1bGUpIHJldHVybiB2YWx1ZTtcblx0XHRpZigobW9kZSAmIDE2KSAmJiB0eXBlb2YgdmFsdWUudGhlbiA9PT0gJ2Z1bmN0aW9uJykgcmV0dXJuIHZhbHVlO1xuXHR9XG5cdHZhciBucyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5cdF9fd2VicGFja19yZXF1aXJlX18ucihucyk7XG5cdHZhciBkZWYgPSB7fTtcblx0bGVhZlByb3RvdHlwZXMgPSBsZWFmUHJvdG90eXBlcyB8fCBbbnVsbCwgZ2V0UHJvdG8oe30pLCBnZXRQcm90byhbXSksIGdldFByb3RvKGdldFByb3RvKV07XG5cdGZvcih2YXIgY3VycmVudCA9IG1vZGUgJiAyICYmIHZhbHVlOyB0eXBlb2YgY3VycmVudCA9PSAnb2JqZWN0JyAmJiAhfmxlYWZQcm90b3R5cGVzLmluZGV4T2YoY3VycmVudCk7IGN1cnJlbnQgPSBnZXRQcm90byhjdXJyZW50KSkge1xuXHRcdE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGN1cnJlbnQpLmZvckVhY2goKGtleSkgPT4gKGRlZltrZXldID0gKCkgPT4gKHZhbHVlW2tleV0pKSk7XG5cdH1cblx0ZGVmWydkZWZhdWx0J10gPSAoKSA9PiAodmFsdWUpO1xuXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQobnMsIGRlZik7XG5cdHJldHVybiBucztcbn07IiwiaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dCB9IGZyb20gJ3JlYWN0JztcblxuZXhwb3J0IGNvbnN0IENvbnRleHQgPSBjcmVhdGVDb250ZXh0KCk7XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VBdXRoKCkge1xuICByZXR1cm4gdXNlQ29udGV4dChDb250ZXh0KTtcbn1cbiIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQge1xuICBCb3gsXG4gIENpcmN1bGFyUHJvZ3Jlc3MsXG4gIEdyaWQsXG4gIFBhcGVyLFxuICBUeXBvZ3JhcGh5LFxuICBDb250YWluZXIsXG59IGZyb20gJ0BtdWkvbWF0ZXJpYWwnO1xuY2xhc3MgTG9hZGluZyBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IGJvZHkgPSAoXG4gICAgICA8Q29udGFpbmVyIG1heFdpZHRoPSdsZyc+XG4gICAgICAgIDxQYXBlclxuICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICBwYWRkaW5nOiAnNXB4JyxcbiAgICAgICAgICAgIG1hcmdpblRvcDogJzEwcHgnLFxuICAgICAgICAgIH19XG4gICAgICAgID5cbiAgICAgICAgICA8R3JpZCBjb250YWluZXI+XG4gICAgICAgICAgICA8R3JpZCBpdGVtIHhzPXsxMn0+XG4gICAgICAgICAgICAgIDxCb3hcbiAgICAgICAgICAgICAgICBkaXNwbGF5PVwiZmxleFwiXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICBwYWRkaW5nVG9wOiAxMDAsXG4gICAgICAgICAgICAgICAgICBwYWRkaW5nQm90dG9tOiAxMCxcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFR5cG9ncmFwaHkgdmFyaWFudD0naDMnPkxvYWRpbmcuLi48L1R5cG9ncmFwaHk+XG4gICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17MTJ9PlxuICAgICAgICAgICAgICA8Qm94XG4gICAgICAgICAgICAgICAgZGlzcGxheT1cImZsZXhcIlxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgcGFkZGluZ0JvdHRvbTogMTAsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxDaXJjdWxhclByb2dyZXNzIC8+XG4gICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17MTJ9PlxuICAgICAgICAgICAgICA8Qm94XG4gICAgICAgICAgICAgICAgZGlzcGxheT1cImZsZXhcIlxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgcGFkZGluZ0JvdHRvbTogMTAwLFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8VHlwb2dyYXBoeSB2YXJpYW50PSdzdWJ0aXRsZTEnPlRoaXMgbWF5IHRha2UgYSBtb21lbnQuPC9UeXBvZ3JhcGh5PlxuICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgIDwvUGFwZXI+XG4gICAgICA8L0NvbnRhaW5lcj5cbiAgICApO1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICB7Ym9keX1cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgTG9hZGluZztcbiIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBQcm9wVHlwZXMgfSBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IEdyaWQsIFR5cG9ncmFwaHksIEJ1dHRvbiwgQ29udGFpbmVyIH0gZnJvbSAnQG11aS9tYXRlcmlhbCc7XG5pbXBvcnQgTG9hZGluZ0NhcHN1bGVJbWcgZnJvbSAnLi4vaW1nL0xvYWRpbmdDYXBzdWxlLnBuZyc7XG5cbmNvbnN0IEVycm9yID0gKHByb3BzKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPENvbnRhaW5lciBtYXhXaWR0aD0nbGcnPlxuICAgICAgPEdyaWQgY29udGFpbmVyIGRpcmVjdGlvbj0nY29sdW1uJyBqdXN0aWZ5Q29udGVudD0nY2VudGVyJyBhbGlnbkl0ZW1zPSdjZW50ZXInPlxuICAgICAgICA8R3JpZCBpdGVtPlxuICAgICAgICAgIDxpbWcgc3JjPXtMb2FkaW5nQ2Fwc3VsZUltZ30gLz5cbiAgICAgICAgPC9HcmlkPlxuICAgICAgICA8R3JpZCBpdGVtPlxuICAgICAgICAgIDxUeXBvZ3JhcGh5IHZhcmlhbnQ9J2g2Jz5cbiAgICAgICAgICAgIEVycm9yOiB7cHJvcHMubWVzc2FnZX1cbiAgICAgICAgICA8L1R5cG9ncmFwaHk+XG4gICAgICAgIDwvR3JpZD5cbiAgICAgICAgPEdyaWQgaXRlbT5cbiAgICAgICAgICB7IHByb3BzLnJldHVyblRvXG4gICAgICAgICAgICAmJiAoXG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICB2YXJpYW50PSdjb250YWluZWQnXG4gICAgICAgICAgICAgICAgd2lkdGg9JzUwJSdcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgIHByb3BzLnJldHVyblRvKCk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICBCYWNrXG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cbiAgICAgICAgPC9HcmlkPlxuICAgICAgPC9HcmlkPlxuICAgIDwvQ29udGFpbmVyPlxuICApO1xufTtcblxuRXJyb3IucHJvcFR5cGVzID0ge1xuICBtZXNzYWdlOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIHJldHVyblRvOiBQcm9wVHlwZXMuZnVuYyxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEVycm9yO1xuIiwiZXhwb3J0IGRlZmF1bHQgXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUlBQUFBQ0pDQVlBQUFEa01UQURBQUFLeG1sRFExQkpRME1nVUhKdlptbHNaUUFBU0ltVmx3ZFlVMWtXZ085N0w3M1FBaEdRRW5vVHBGY3BvWWN1SFd5RUpKQlFZa3dJS2paVUJrZHdMS2hJVXdRY0ZGRndMSUNNQmJGZ1JWRUIrd1FaVk5SeHNDQXFLdnVBSmN6c2Zydjc3WG5meWYzZmVlZWVjKzc5N3YyK0V3Q29CTFpJbEFFckFaQXB6QkpIQm5nejRoTVNHZmpmQVF3UW9Bd0F3TEE1RWhFeklpSUVaVEExL2wwKzlnQm9mTHhqT1I3cjM3Ly9WMUhtOGlRY0FLQUlsSk81RWs0bXlzZFJmY01SaWJNQVFQYWhkb09sV2FKeHZveXlxaGd0RU9WSDQ1dzZ5VVBqbkR6QkdNeUVUM1NrRDhycUFCQW9iTFk0RlFDS0lXcG5aSE5TMFRnVVg1U3RoVnlCRUdYMEhYaHcrR3d1eW1oZU1Dc3pjL0U0eTFBMlRmNUxuTlMveFV5V3gyU3pVK1U4dVpZSklmZ0tKS0lNOXZML2N6dit0MlJtU0tkeUdLTks0WXNESTlHUmp1N1p2ZlRGd1hJV0pvZUZUN0dBTytFL3dYeHBZTXdVY3lRK2lWUE1aZnNHeStkbWhJVk1jWXJBbnlXUGs4V0tubUtleEM5cWlzV0xJK1c1VXNRK3pDbG1pNmZ6U3ROajVIWStqeVdQbjhPUGpwdmliRUZzMkJSTDBxT0NwMzE4NUhheE5GSmVQMDhZNEQyZDExKys5a3pKWDlZcllNbm5adkdqQStWclowL1h6eE15cDJOSzR1VzFjWG0rZnRNK01YSi9VWmEzUEpjb0kwTHV6OHNJa05zbDJWSHl1Vm5vZ1p5ZUd5SGZ3elIyVU1RVUExL2dCMExRaHdGaWdDMndCemJvYnlnQVdieGw0MmNVK0N3V0xSY0xVdmxaRENaNnkzZ01scEJqTll0aGEyMXJEY0Q0blowOEV1L3ZUZHhGaUU2WXRvblErQzdvbVVkcXBtM0ptZ0EwbytkSWd6aHRNOXdQZ0dJOEFFMjVIS2s0ZTlJMmZwMEFGcENBSWxBRkdrQUhHQUJUWUlsVzVnamNnQmRhY1JBSUI5RWdBU3dFSE1BSG1VQU1sb0tWWUMzSUI0VmdLOWdKeWtBbHFBRUh3R0Z3RkRTRFUrQWN1QVN1Z1Z1Z0d6d0VNakFBWG9FaDhCR01RaENFaDZnUURkS0FkQ0VqeUFLeWhad2hEOGdQQ29FaW9RUW9DVXFGaEpBVVdnbXRod3FoSXFnTXFvTHFvRitnazlBNTZBclVCZDJIK3FCQjZCMzBCVVpnQ3F3S2E4UEc4R3pZR1diQ3dYQTB2QUJPaFpmQU9YQWV2Qmt1Z2F2aFEzQVRmQTYrQm5mRE12Z1ZQSXdBaEl6UUVUM0VFbkZHZkpCd0pCRkpRY1RJYXFRQUtVYXFrUWFrRmVsQTdpQXk1RFh5R1lQRDBEQU1qQ1hHRFJPSWljRndNRXN3cXpHYk1HV1lBNWdtekFYTUhVd2ZaZ2p6SFV2RmFtRXRzSzVZRmpZZW00cGRpczNIRm1OcnNTZXdGN0hkMkFIc1J4d09SOGVaNEp4d2diZ0VYQnB1Qlc0VGJqZXVFZGVHNjhMMTQ0YnhlTHdHM2dMdmpnL0hzL0ZaK0h4OEtmNFEvaXorTm40QS80bEFKdWdTYkFuK2hFU0NrTENPVUV3NFNEaER1RTE0VGhnbEtoR05pSzdFY0NLWHVKeTRoYmlQMkVxOFNSd2dqcEtVU1NZa2QxSTBLWTIwbGxSQ2FpQmRKRDBpdlNlVHlmcGtGL0pjc29DY1N5NGhIeUZmSnZlUlAxTlVLT1lVSDhwOGlwU3ltYktmMGthNVQzbFBwVktOcVY3VVJHb1dkVE8xam5xZStvVDZTWUdtWUtYQVV1QXFyRkVvVjJoU3VLM3dScEdvYUtUSVZGeW9tS05ZckhoTThhYmlheVdpa3JHU2p4SmJhYlZTdWRKSnBWNmxZV1dhc28xeXVIS204aWJsZzhwWGxGK280RldNVmZ4VXVDcDVLalVxNTFYNmFRak5nT1pENDlEVzAvYlJMdElHVkhHcUpxb3MxVFRWUXRYRHFwMnFRMm9xYXZacXNXckwxTXJWVHF2SjZBamRtTTZpWjlDMzBJL1NlK2hmWm1qUFlNN2d6ZGc0bzJIRzdSa2o2alBWdmRSNTZnWHFqZXJkNmw4MEdCcCtHdWthMnpTYU5SNXJZalROTmVkcUx0WGNvM2xSOC9WTTFabHVNemt6QzJZZW5mbEFDOVl5MTRyVVdxRlZvM1ZkYTFoYlJ6dEFXNlJkcW4xZSs3VU9YY2RMSjAxbmg4NFpuVUZkbXE2SHJrQjNoKzVaM1pjTU5RYVRrY0VvWVZ4Z0RPbHA2UVhxU2ZXcTlEcjFSdlZOOUdQMDErazM2ajgySUJrNEc2UVk3REJvTnhneTFEVU1OVnhwV0cvNHdJaG81R3pFTjlwbDFHRTBZbXhpSEdlOHdialorSVdKdWduTEpNZWszdVNSS2RYVTAzU0phYlhwWFRPY21iTlp1dGx1czF2bXNMbURPZCs4M1B5bUJXemhhQ0d3MkczUk5Rczd5MldXY0ZiMXJGNUxpaVhUTXR1eTNyTFBpbTRWWXJYT3F0bnF6V3pEMlltenQ4M3VtUDNkMnNFNnczcWY5VU1iRlpzZ20zVTJyVGJ2Yk0xdE9iYmx0bmZ0cUhiK2RtdnNXdXplMmx2WTgrejMyTjl6b0RtRU9teHdhSGY0NXVqa0tIWnNjQngwTW5SS2NxcHc2blZXZFk1dzN1UjgyUVhyNHUyeXh1V1V5MmRYUjljczE2T3VmN3BadXFXN0hYUjdNY2RrRG0vT3Zqbjk3dnJ1YlBjcWQ1a0h3eVBKWTYrSHpGUFBrKzFaN2ZuVXk4Q0w2MVhyOVp4cHhreGpIbUsrOGJiMkZudWY4Qjd4Y2ZWWjVkUG1pL2dHK0JiNGR2cXArTVg0bGZrOThkZjNUL1d2OXg4S2NBaFlFZEFXaUEwTUR0d1cyTXZTWm5GWWRheWhJS2VnVlVFWGdpbkJVY0Zsd1U5RHpFUEVJYTJoY0doUTZQYlFSMkZHWWNLdzVuQVF6Z3JmSHY0NHdpUmlTY1N2YzNGekkrYVd6MzBXYVJPNU1ySWppaGExS09wZzFNZG83K2d0MFE5alRHT2tNZTJ4aXJIelkrdGlSK0o4NDRyaVpQR3o0MWZGWDB2UVRCQWt0Q1RpRTJNVGF4T0g1L25OMnpsdllMN0QvUHo1UFF0TUZpeGJjR1doNXNLTWhhY1hLUzVpTHpxV2hFMktTenFZOUpVZHpxNW1EeWV6a2l1U2h6ZytuRjJjVjF3djdnN3VJTStkVjhSN251S2VVcFR5SXRVOWRYdnFJTitUWDh4L0xmQVJsQW5lcGdXbVZhYU5wSWVuNzA4Znk0akxhTXdrWkNabG5oU3FDTk9GRnhickxGNjJ1RXRrSWNvWHlaYTRMdG01WkVnY0xLNlZRSklGa3BZc1ZiUTV1aTQxbGY0ZzdjdjJ5QzdQL3JRMGR1bXhaY3JMaE11dUx6ZGZ2bkg1OHh6L25KOVhZRlp3VnJTdjFGdTVkbVhmS3VhcXF0WFE2dVRWN1dzTTF1U3RHY2dOeUQyd2xyUTJmZTJOZGRicml0WjlXQiszdmpWUE95ODNyLytIZ0IvcTh4WHl4Zm05Rzl3MlZQNkkrVkh3WStkR3U0MmxHNzhYY0F1dUZsb1hGaGQrM2NUWmRQVW5tNTlLZmhyYm5MSzVjNHZqbGoxYmNWdUZXM3UyZVc0N1VLUmNsRlBVdnoxMGU5TU94bzZDSFI5Mkx0cDVwZGkrdUhJWGFaZDBsNndrcEtTbDFMQjBhK25YTW41WmQ3bDNlV09GVnNYR2lwSGQzTjIzOTNqdGFhalVyaXlzL0xKWHNQZGVWVUJWVTdWeGRYRU5yaWE3NXRtKzJIMGRQenYvWEZlcldWdFkrMjIvY0wvc1FPU0JDM1ZPZFhVSHRRNXVxWWZycGZXRGgrWWZ1blhZOTNCTGcyVkRWU085c2ZBSU9DSTk4dktYcEY5NmpnWWZiVC9tZkt6aHVOSHhpaE8wRXdWTlVOUHlwcUZtZnJPc0phR2w2MlRReWZaV3Q5WVR2MXI5dXYrVTNxbnkwMnFudDV3aG5jazdNM1kyNSt4d202anQ5Ym5VYy8zdGk5b2ZubzgvZi9mQzNBdWRGNE12WHI3a2YrbDhCN1BqN0dYM3k2ZXV1RjQ1ZWRYNWF2TTF4MnROMXgydW43amhjT05FcDJObjAwMm5teTIzWEc2MWRzM3BPblBiOC9hNU83NTNMdDFsM2IzV0hkYmQxUlBUYzY5M2ZxL3NIdmZlaS9zWjk5OCt5SDR3K2pEM0VmWlJ3V09seDhWUHRKNVUvMmIyVzZQTVVYYTZ6N2Z2K3RPb3B3LzdPZjJ2ZnBmOC9uVWc3eG4xV2ZGejNlZDFMMnhmbkJyMEg3ejFjdDdMZ1ZlaVY2T3Y4LzlRL3FQaWplbWI0Mzk2L1hsOUtINW80SzM0N2RpN1RlODEzdS8vWVAraGZUaGkrTW5Iekkrakl3V2ZORDRkK096OHVlTkwzSmZubzB1LzRyK1dmRFA3MXZvOStQdWpzY3l4TVJGYnpKNW9CUkJVNFpRVUFONmhmUUkxQVFEYUxRQkk4eVo3NmdtQkp2OEhUQkQ0VHp6WmQwK0lJd0ExYlFCRTV3SVFnbzZsNkdpTXFxSVhBQkdvUm5zQjJNNU9ydjhVU1lxZDdXUXNjalBhbWhTUGpiMUgrMGU4R1FEZmVzZkdScHZIeHI3Vm9zVStBS0R0NDJRdlB5NUtod0RZdThMQktTemt4a2piTVBnWCtRZld5QklQNThza21nQUFBRlpsV0VsbVRVMEFLZ0FBQUFnQUFZZHBBQVFBQUFBQkFBQUFHZ0FBQUFBQUE1S0dBQWNBQUFBU0FBQUFSS0FDQUFRQUFBQUJBQUFBZ0tBREFBUUFBQUFCQUFBQWlRQUFBQUJCVTBOSlNRQUFBRk5qY21WbGJuTm9iM1Q3bmlIdkFBQUIxbWxVV0hSWVRVdzZZMjl0TG1Ga2IySmxMbmh0Y0FBQUFBQUFQSGc2ZUcxd2JXVjBZU0I0Yld4dWN6cDRQU0poWkc5aVpUcHVjenB0WlhSaEx5SWdlRHA0YlhCMGF6MGlXRTFRSUVOdmNtVWdOUzQwTGpBaVBnb2dJQ0E4Y21SbU9sSkVSaUI0Yld4dWN6cHlaR1k5SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZNREl2TWpJdGNtUm1MWE41Ym5SaGVDMXVjeU1pUGdvZ0lDQWdJQ0E4Y21SbU9rUmxjMk55YVhCMGFXOXVJSEprWmpwaFltOTFkRDBpSWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwbGVHbG1QU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDJWNGFXWXZNUzR3THlJK0NpQWdJQ0FnSUNBZ0lEeGxlR2xtT2xCcGVHVnNXRVJwYldWdWMybHZiajR4TWpnOEwyVjRhV1k2VUdsNFpXeFlSR2x0Wlc1emFXOXVQZ29nSUNBZ0lDQWdJQ0E4WlhocFpqcFZjMlZ5UTI5dGJXVnVkRDVUWTNKbFpXNXphRzkwUEM5bGVHbG1PbFZ6WlhKRGIyMXRaVzUwUGdvZ0lDQWdJQ0FnSUNBOFpYaHBaanBRYVhobGJGbEVhVzFsYm5OcGIyNCtNVE0zUEM5bGVHbG1PbEJwZUdWc1dVUnBiV1Z1YzJsdmJqNEtJQ0FnSUNBZ1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0NpQWdJRHd2Y21SbU9sSkVSajRLUEM5NE9uaHRjRzFsZEdFK0NudjF1Q1VBQUJiTVNVUkJWSGdCN1YwSmNCWG5mZjhEQWlSdWNVbmlFa2ppeGdaeE9CaXd6WTJkT0I3SFNXYWFlb3huUEUyYXliUk8zTTZrU1RzZXQwNlBUTnVrR1hmcVpwTFljUkxpeHJYYlNScHpHQUhHQnpFSWpJVXc2T0lRNGhRZ2NRa0VRb2orZjd2NzM5MjNiOS9UMjdmWDA5UCtOVS9mN3JmZjhmKyszKzg3OXJ1MnoxMFdpcVRYNWtEZlhwdnlLT0ZLRGtRRTZPVkVpQWdRRWFDWDUwQXZUMzVVQTBRRTZPVTUwTXVUSDlVQUVRRjZlUTcwOHVSSE5VQkVnRjZlQTcwOCtUbEJweDhEenkxWDJ1bEd4eDNLNmR1SGhnMGVRRVB5K2dldFJoU2ZsZ09CRUdCRFJUMVYxcHluVDQrMzB2R3oxOVNvK3hnWURCczBnTW9tREtmNVphTm95WnhDV2xFKzNuZ1lYZm1hQTMzOG1nemF2S2VKZnJQakNMMS80S3lhQUJQZ2tpTER5cmpDczVGREI5TGpENWJRVTJ2S3FMaGdxRGlQVEI5eXdITUN2RnQxaGw1NnE1cXFqclFReGVLcXFHOVlHVmQ2dWl4V2R6bUFaeDZlUnM5OStkNm9tZEF6eWRzTHp3aUF0djM1Vnl2cDE5c2E0alEwY0RXdUZFZVdXOWdCZElqK2VzSzNCZmw1OVB6NkJmVElmUk9WWjlFLzczTEFFd0tjYUw1R3ovNzdINmo2NkVWZE13TmI0MHA1YUxtRm5SM29la0RhQlJZdGZPdUw5OUN6VDh5eFBvcnVYZVNBYXdMVU5GMm16LzdWUmtVRkExdmp5dkpBVnpWVjBIVVB1T2pUaDlhdm5VcC95N1ZCSk43a2dLdTNnRk1YMnVoUGYvQ2VWbWs3QTExeGJmR0NKTVV0VDJMUXpmTExyUTAwc0Y5Zit1NlQ1V2JyNkRyTkhOQ2IyblQ4LzhYTHUrblUrZXZzVlFNSmh2eTBBRkhTOGNNZkl1TlhmeHMzS3ZBNitBQmRmbG80aWwvTjY4ODIxOUV2dDlaclR5TERUUTZrVFlDLzM3Q2Y5dFdlTjhBRXNKcDRBYm9BRGhOQmd4d0dRWWorN2xmN2xYRUZMY3JJU0RNSDBpTEFYZ2IrMVUyMUtqSUtNR29wVDFiU0JVQXhGWDJsbEd2VnZCbDBjV2NHWFdHQ2lXamZmK05BbXNtT3ZFa09wRVdBbC83M1U2VmFsNUt1QXdkdzVNZVhjU0FpVmxlZ1MrQ3ErZEdoOC9UMlIwMElOWkkwYzhBeEFUNDRlSTQrL0xSWmJjODVVbXViN2dSMHdCam4zb3l4a3FnNGl4Z092ZnBPMUJkSUUzdkZtMk1DdkxuenFHZWc2NHJIWVJ4bkVRTzY3bzh2RGh4cnBkMDh6eEJKZWpuZ2lBQnQ3YmRwNDI2MXlvMHJ1WWcvUWZVT09NVzlybVljeG5FVzF1QjByOUwwd0lTOHZmdWsvaXk2Y0pZRGpnaUFpWjBZSU0yQVd6cHlmb091SkZQanpCdGNLMFdTWGc0NElrQmwvWVc0VW81b0VRaCtRWUtPdm9jYXAvb0c4b2ZEelZBbEVvYzU0SWdBTlNjdTZjRW5CRjBybGVhM0FaVWE4aUNXUTFyRm9ZZHJyZDZWQjVwWEsralNCTUROOWsrMGFXYzlwT2dpbFJ4d1JJQlR6VzMySlYyd2hhbExyS1c1dGRDZGFCZHBnVzRPbnE5L1VSRS9DMm1OSjdxUHp3RkhCRGgzK2FiU0IxQ0NNUU9naHh0cjZRaDBrOWVFSmQza1JxS1VQZ25NdlEzR2JLUThqOHprT1pBeUFUbzZ1NncxdVJaeUxDcHBnODZoUVJuTUdVaU5vRVFRRzd4aVpRWWRGdkNIMzQ3OVozQWJpWU1jU0prQVdNQnBTQ3dxWVlMZTF4VDV6N1pFZzBJR1JxbGRwVXlBdmt3QUxONVVxNEhZanB3MUtpbkJlaWRONDR0VTdZalVUVWszZ3k1eFM2MVFmZHpvcU1xenlFeWNBeWtUQUVGTUdETkVINXl4QnBrSzZJbmNLRzhNV29BQ0pFd0lGRlIrcHBLdVBPQi9WcmNJcCtLVHFCbVEvRW5GZEVTQXFST0d4WVNaQ0ZCelNVL2tSa0EzZzVndTZFcFlXZ3YxbjIvWHhPZ1kzU1RQQVVjRW1GYzZTdStnQVZoRkxOVzd1V3EzdWhFdlp0QkZQYWNsM1F3NndrQzg4bGQ3OG9vRUc1bmQ1SUFqQW1EVGhpSkpRTmZqMDl3b1FMR2xFOUROYnFWV1VNS1JNRGs4QVZ0TVBWNisyRllWRFFxWjh5UFp0U01DbEJVTlZXWUM0UWtaTDlXN0hvRUFCSlBGREtScWs3aE50M09iREhRSlQ4eTdIS2Y4ZnZUYlEySWRtZDNrZ0NNQ0lLdy8vOEljQlhnOTNBd0JYZFhIVU9hb2JFSFRGWTB1N0hMQU1RRldsWTlEOFRkK2ZHbFhlaEd3OHJQMDN1M2NXc09UYWgybVZhU1V3MVRGVUVhLzRvdnRVVE1nR1pUVWRFeUEyY1VqbEFDdFFPcUE4MVByZTdyVnJSS0FqcGFxbnhlZzYwVGlJUC81Zno1VkE0NytKODBCeHdSQWFGOS9kSVlTcUJsMGZZQUFKWjdGTDlCVm9tZ1ZrSVZFMWppYkxtREplaVRKY2lBdEFxeWVQMTZwM3JzRjNReVF5Z3N1cE1hZlZiRkUxYnNaZEwyVWErRlpRVmZDMUpxZGJRZk9XYU9JN2kwNWtCWUI1cFdNNUNLb0loQUhnQmwwTFRJRGNnMDFreEtlZ0c3dVoyaDZJYVlkdkZNNWt1UTVrUGJXTUd6YmZrVW1YK0p4VmNxNVhkUkc1ODM4VkExQUQwYS9NTnlBYURHaUFXMjJzM3JiVTNlUm1ua0t1MkJFcnRsWllOZnQ3ZTNVMnRwS1Y2NWNvZXZYcjlPdFc3Zm95dFdyTkdUd1lNckp5YUhjM0Z3YU9uUW9EUjgrbkVhUEhrMzkrdlVMVERlSktHMENyQzR2b2xjc1M3SlIwdTBrU05BbGZvbHpHOWNDVHk0dkVXdmZ6VHQzN3RESnBwTjA1dXdadW5UNXNtMThiVXdHUlpnWTU1cU5wV3lGQlFVMGJ0dzRLaW9xc3ZYbmg2V3IzY0Zsejd5VkVTVmRNa1pBbDN1WUQ4NHVvRmUvdWNSczVkdDFRME1ESFR0MmpEcVpCRzVsM3R5NU5INjgvMGZscE5VSGtNUTl0YXBNTGhVVEFNalBlSUJhUVhvQld0ZEJ0ZEtkeFBjajJJRzA2NW9yOFFMVExCSmZMUGlHNi9kNTkxQnJXNGZaaStmWHpWeUtkKzdjU2ZWTUFDL0FoNEpWQnc1UVpXVWx0YlcxZWE2dk9VQlhCRmpEZzBMSkFOQjc3d1llZXR4K2dvNUlkUDd3aForRFF2WDE5YlR2NDQvcCtvMGJldHE4dXJodzhTSjk4T0VIZE9hTWY1MVpWd1JZTW11c0thMHF5b2xBTndPdWQrZ0VKWmdzWnA2b05rYnd5WWltK293RjNUeFA0ZGZyWUhWMU5UVWNPV0lvNmNOVlY5ZGQrcVNxaW80ZFArNUQ2T3BvcmF1QS8raWhFcTJDVndIUVVlUlF6YURya1NRQlhYZWpYYmdCSFVGSS9OdXF6OUgxOWs1cjhLN3VEM0FWZmZMVUtWZGhPUEZjVTFORHh4c2JuWGhKeWEyckdnQXhySjdIVThSU2RQbGVNaDJtTHE1QWw4REZURnpTRVo4MWZpSFIxbXJ2cG9qcjZ1cm8xT25UZXZLQ3VqaDgrREMvTlhnN3VPV2FBTXZ2TFlyTGRDVkRQQU5kelY0SkRvMjd1WHJIMDBTZ2c1aWdEZjU3MVF5Y1BYdVdqaHdOYnlzYW1wMmJOMjhxcWZMaW4yc0NRSWtubGhTcnVnaEtNRm1rektwM3FoUDVMeVVUcGlyeHJpVTRLK2htd0hFTmtmRE1vSnVKc25uL1dWS1d0cXZPMC9yZjFkVkZOYlhoTGptN2ZidVQwQng0Slo0UUFJTkNTcmVidFlxSDBWQlZRSElMdW9RbzRTVUNIZTdFRGN3S2wzTURlTTl2Yi9ldTlFazZuSnBudUJhNmNONmJMZkhlRUdCZWtRNjhOVEZtQU5SbjhSUkpwYVJMdUJKZXFxRERuOVFZYmdpQWFqZk1xbC9TTCtaUkhuRHlRandoQU9iL1AvOFo0eFJQQVFtbUtzR0R2cEFQbmhiZ1JZdmY3VDFGNlg0bTg3aFByMkdpbTFPemhlY1lFZzAxT3duTEV3SWd3cFZ6Qy9YcVZsVWdGblFwNVRDVHRlbXFYNlBxZGxMU0grR0JxUjg4WFU3VlAvd3N2Zm1YUzVXZ1JBc2xUbzY4Z28rNGNTcVkxUEhyUGR5cExtYjNaeng0RTBsN01zaXNDSzVYejhVRUJyTGJFQVZzN1JZZE1yTkk1eTNHVG5NaW9LbWRPTU9GVWFNWWRvOHRHazlyN2kya05Sei93UDZ4ZlA3cW1sTDY2VGFqcWtTY2FBYldzbnNua21tbFgzUnZQdDlNczJmUGx0dTBUTThJa0R1Z0g2MmJYMFJidFgzNlZ2Q2duUlYwTTZCT1FQL2kvWk1ZOUFJR3ZWQmRmcFlnNld2NEZmVW5KZ0xBMlg5L2RKTCs1YWw1Q1h6RVc5L2dJVjQvQm1EaVkzSnVndzdwdFd2WGxDbGw1NzVWSDU0UkFNR3RuanVPM3Zra3RvcnREblQ0czVMRlRBdzhoM3hsV2JFQytJbzVCYXBGQ3YvdksrT0ZLeXpXOE43bENhSVZzODNEMklrRHk5VFNMeHBmNWZVRldGT1FybmhMQUg0YmdIZ0YrdE1yU3BTU3ZuVEdtSFRUUitzNWpGL3NsR1pBYldPMjh0QndLZ1RBSW83R0V5ZlNqanNJajlEUmpYaEtnS0Y1T2JTUzI5ZnRuTUZTNnFScWg1S3BsUFN2cmk1VlN2b2k3c1Y3SVd2dktXQUNISThoNVlZUG0raWZ2bkp2dDhGbmV1bEhBdHlPQ25wS0FDaTBjbTRCYmVlZXRscldWTkJoTHlMRWtIdVkzM2hrR3EzbU5yMThjcjdaMnBQckIyYU0xc0cvYStxVmZsamZRc3VtSlNZWjV1RlBORFY1b29PZmdYUjJ1cHZrOHB3QTZJMy85WWJxbURSYlFVY1Q4YTFIcHlzOTk5bVdIY2N4SGoyNitXUHVQL3g2bHdFbTRrY3prSXdBV05uVEc4UnpBb3ppRHo0dG16bUdQcWpsSStWTWdrei96dU16dWFRWEV2WVlCaWxydVhiWm9CRkFtcVJYM211a0Y3OWsvd3FGbm5XUVU3MXU4Z0tMUzkxSTdJdXptNUJNZnBVcFlyNEg2UEpiUEcwMGZYM2QxTURCaDFxcnVNZXZORW44RDdXUjFFaDdqN2JpY1p6MHBOS1BsY1Z1eEJjQzRQMGJ3SXNnOC9mVVh5U2NNaGFXZkdueEJDWHFMcWFDL0RZZk5GYmtpbDU0clFwanJsL2lkMm9PR1RMRXFaY1k5NzRRb0NnL1Z5bHhhcW5qK1h2dWZPRlhJZDhRakZFaG1CczBBd0JlQkxYQXl6dU95NjF1OXFUU0Q2V3hwOENOK0VJQUtQUTMzTDVLcjF1YWdRcWJFdWRHZVNkK0grYlhRYW4rcFFsQTRxdWFqTk5Fc0lIanRJOExNSjNvbTRyYndZTUcwV0RlWk9KR2ZDTUF4dWNGZUZGd1o4MEYzNWRvUzF4V0V6T1dYMWd3VHQyeXpnOVJGMEEvY3pQUTAwcC9ZYUd6T1Excm51RGVOd0lVajFHWmFTMTFXNnZqMjEwN3hmeXdXM2ZQMkRoUy9taXJ1cnpyTXUvaXdVS0xuaVRZUmVSV2ZDTUFGUHMydi9hcGd2S21ydVdyNFBmdnNBVE5BS1NMYXdQNTRiNkdUeFBwYWFWLzdKZ3hOR3hZN0tsdFNJdFQ4WlVBbUhhVjRWOVV0NUN0M0E5b3UrbHU5RW9OeWZuLzNQNzk2R0dlUVlSSTh3Uno1NEVtT25zdVBHSXFDam44TjJYS0ZJYys3SjM3U29DcGhlb3JpcndGaUxrbHhGcmdJZFBRTUZjRXlsTEdQYlgrN2J5eHozWjN0Z1ZqeHlxN2lkMkZvdnIybFFDSTRyblBUZGYxbEZLMzlhQTNDeHIxZ0IxY3pKODBYQUVkNEt1MVV4OXFhUEYzNzZBRDlWSnk2bFhwUjJTK0UyQWR2MzlMOVkrZUFMcmZHL2tBSjdkTHRCRlVPbExDblZNQkh2NmgyNW1idm1kRE9xcmErc0VXOGxHakVrOWkyWHBLWXVsN3lwWEpIcFEyN1NlNmJBbHBUR0JJYm80Q3V0UkcwT2RhcCsvWklNbDJiWHBaK3FGTUlDbC9kbTJaa25BWmdvV0oyYmd3UmZvak1KRUpVa3VGcVZOM2NSZnhlLy9Ja2VvcXArN2Nwdm84RUFLWWgyR2xKbmpyWS80Q1dRaTVmcjNqRHZjQnRBOVpjeTZoV1lJYU1ETmR2Qzc5U0c4Z0JDam5zd1VGZUlrVUViL0RYeUFOV2s2MHRNYzFBUVc1N2svMDhEc2Q0L2pZbVB4ODd4Zk1CRUlBWk00M1ZrNVIyQ1lsRHFWdWN3aHZBd2UwazhTRmtEQW5EdXJ5R3ovWDRmdFIrcUZVWUFSWWg4a1lVelpnSk80M2UwNlpiSUs1M05uUW90UkdpRTM2SktYRE1yc0dHTTlEdmlOR3FDZTBlcDFMZ1JIZ002VWo5ZUZYZ0E4QklUYTUzTENwQkpUaXYzWnUvOS84K0p3T3ZIaWJtcC9aUFlDU2toSlIxWE16TUFKQTh6OTVzRGl1L2YwVmI5UUlTbDc3eUtoeGtIRDhCdkxSZkNXajNDMnI4bFAvQ1h4U21CZGovb2wwREpRQWoyTWJ1U2FvQlBEYlh0dENGWWRqMXcrS0d5L05HN2Z2MFBPL3ExUDdJUnl2OUFIV0Z0eFN2NGJ1WldRZWh1Vm42WWVhZ1JKZ1VVaytMZWFtQU1pYlIrUCs0ZmYxdnI4U3ZvZzROT0NSY0RRLytIMXU5Z2hhdldvVmxVeVpBdXVNa29rVEpyamE5Wk5LWWdJbEFCVDYydkxKaWw0Q0FNeERQQjM3M0J2K0hlLytldVZwK3VtdWt6cm9pQk95ZkV3SHJWdzBrd1lPSEVnelo4NmtWU3RYMHBUSms1Vm5tZkRQNzlLUE5BWk9nRWQ1Ym1DTnRpL1BQQnIzK3A3VDlMM2YxM21lNzIvenErYWZ2WEZJQVY4Q2wzalhMOGlQbVZYREN0dFpzMmJSeWhVcmFISnhzVGdQeFp3MGNTSzVYZkNaaXVLQkV3Qkt2ZkQ1YWRTM1gveG8zRXM3R3VuYmJ4NU9SZStVM0d4Z1VxMS9yWXFyZm1OaEtxNGh6MHhwcDRjV3lvS1YyT0R5OHZLVWJkY3JsaStuNGttVFloOEdkQmRFNlVkU1hKMFY3Q1l2WHQ5OWlyN0pKVk1FN2JQSXdza2o2TVhIcHROOWJLWWpsL2xNd0JjM05kRFBUYjEraEtOaFQ4dnliOUVMNjRwb3dZSUZLUVdQRFpoWU1kUjBNcGczRnBCdXpwdzVLZW5tMWxGb0JJRGkzOTk4aFA2MVFsMlRKd2t4TDkxKzhqNCsvR0gyR0hxTTEvS2xJaGY1VE9EWG1GZ3Z2M2VDTG1rSFF3cm80bi9xNEU3NnpvSzd0UHlCSlpUdmNIQUYrd1ZCQkw5M0RhSG1HY1FyZm9PUVVBbUFCSDV2WXozOTIvYkdtTFJLdXlTMXdvS0p3MmdGcitTWnoyYnAyQ0UwZW5CL3dyZU1yekxJSjFyYnFmcjBWWHIvU0N0dE9heCtQdDRLdWdTT040OGZMN2xGVTR1TGFQNzgrV0x0Mk1UV01SREJqdzBrNkh1NFBmWERTWUpDSndDVS9ZK2RqZlRDLzlVcmVndm81a1JJcjEzc3BCMlhlNWpKUU1menhma2Q5TFU1ZDJsQVRoOWF1bVNKSjBPcjJFVUVJbmk1bHdBZFVQUkJncEtNSUFBUysyNWRDMzMzdDdYVWNGNDk4TUFMMENVVG55NXVwelVsNnRjNE1LdFdYbDR1anp3eHIxNjlRa2VQSG5POXJCeXZvSGdMQ1ZJeWhnQ1M2SC9jZ242QnVqWGJXdElUbFhMNFJmVnVsZnRIZHRBVEpWMVVORlFhRmFKbFM1ZTYzazVsalVmdXNiY0FOVUs2SzR3eER1RjJzNmZva3FxWmNRU0E0dWpNL1p6bkNQNXIzMWxxNURZK2tkaUJqb25kSi9pUWlzWDlUdENFNFFid0NBT3phdlBtcFg1QVZLSjR1N1BIK1gzSCtEeGg4K2RndXZPRGtVZ01SZ1V0R1VrQWN5WlVObDZtZHh0YWFmL0pxMVIzcm8xT1hibEZkL2dNZlpIaGcvcFQ2ZWc4bWp0K0dOMC9aUVI5dWJ4UWVWMDdlUENnT05ITkI1WXQ4M1ZpUlk5SXUyaHBhU0VjTTlPY3dyR3VHSTdHaUdUUWt2RUVzTXVRdGx1ZDFNa2tHTVFiUFFia3hKWnl1Tis0YVZPY044eXF6ZVh2OElRaEYvbkxIeURDK1F2MmsxNmxQTjA3WThhTU1GUUxmaWpZaTFRT0daaERJL0w2MjRMZmxPQmNuNkJHMXV6U2gwL0NMVnEwaUVZbldNNGRwbTd4eGNjdUJUM0l6dTVrcnlCbTFickxJaHptZEpHYkJLdVVsWmJTZ0FFRHJOYUIzV2NWQWM1elc2dC9rOCtVaFdHV01GRURid2QyRXJadVdVV0FjelliUE5IekQySld6UTVjc2V2bzZMRDl1TlRVc2pMcTM3Ky9PQXZGekNvQ29BYXdTaEFmWDdUR2FiMjNhNWJnSnV6U0R4MnloZ0FZbjcvRkpjMHNPZnd0M2pHOGp6NU13ZmVDN1Q0ME1YM2FOT1g3d1dIcWhyaXppZ0RXelBSNkc1VTEvRlR1RTVYK0tUendrd21TTlFUQXNlNVdDYnZ0eHptK2RwOTJtVEY5ZWloZkNyZm1EKzZ6aGdEb2FGa2xqSkUxc3c2Wlh2cWhhOVlRQUo5MHMwcWZ2dUVsTDlGblptYnlpRi9mRVBXeTVsRjRPV1RWeE9XOVhhYmVjWG1TdGh1VmVrTHBSL3F5aGdCMm8ybHV6OUpQbHdDSlBqTXppMmY3c0RVOWt5UnJDR0MzaWdhdmhtRklUeW45eUp1c0lZRGRkM05hTDEyaU8zZUMzZm1iNkRNelFhLzBTWlg0V1VNQWJLREV3STlWbXB1RFBZUWlZZW5uNVY2WktGbERBR1R1V0Q0L3p5b25BMXJMajNnVGZXWm1qc3R2KzFuVDVPVjlWaEhBYnJFbnBtRHQ1Z2k4ekVRSks5R01YM0hJMjh4RVB6c3pxd2lBQk9ibDVjYWxjKysrZlhGMlhsdGM0TlUrZGh0RzdnbG9oMCs2NmNrNkFpVGExRmxiVzV0dUhuWHI3L2J0MjNUb2tMSE56ZXhoVWtoN0M4MDZKTHZPT2dLVWxKUVNQcVJnRll6Sk54NXZ0RnA3Y2w5VlZVWFhiZVlpNW9XMEJ0RkpvcktPQUVqOGRKNXNzWk5ETllkNTNYN3NYa1E3ZDZuYTRSVno3OTY5dG9zOWNhUnJKcXhGNkM0dFdVbUFJdDc5ZzEwMmRsSlRXMGZWMWRYazlvT0xXUEs5YTljdVcvQUg4Q3FmVEgzdnQrWkpqMXdXYmsxRW92dEVwVlBjbzRQbXRJM0dRQS9lOVpOOVZYVFJ3b1cycjZRU2J5YVpXVTBBVk5HVmxaV0VFY0ZrZ2wwNVdEbUVCU1IyazBxWVUwQ0p4NXJEN25iN2xQUE9JeTgrNVpKTVh5K2ZaVFVCa0ZHWUp0Ni9mMzlLdTNQZ0hoMUlUQ3lCQ0MydDloK1doRHM3V2JCZ1BoVVd1UCtRazEzWWZ0bGxQUUVrNCtycTZtelg1c2x6TnlZT21zQ0pIbjZlNStkR3YyUitldzBCa0FuWW9sVmZYMC9Zdk9tRllHSjNHaS91TE9QbDNUMVZlaFVCQktRei9ISEl4c1pHVjBUQWZyN0ovS1lSOUhadVNZTlhacThrZ0dRZXZoU0syVUlNNDE3bTYyU1N4MGZJNFZNdFkzakNDWWRNWkl2MGFnS1lRYnpMWDY5UTloWndqLzgyTHlYRGZiK2NmcnhsTzVjRzhaRXRZUzh3TmV2cTVYVkVBQzl6c3dlR2xaVWpnVDBRaDlCVWpnZ1FXdFpuUnNRUkFUSURoOUMwaUFnUVd0Wm5Sc1FSQVRJRGg5QzBpQWdRV3RablJzVC9EL3hvbHE1NmpScGxBQUFBQUVsRlRrU3VRbUNDXCIiLCJpbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnO1xuXG5jb25zdCBhcGlDYWxsID0gKG9wdHMpID0+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBvcHRzID0gb3B0cyB8fCB7fTtcbiAgICBvcHRzLmNvbnRleHQgPSBvcHRzLmNvbnRleHQgfHwgbnVsbDtcbiAgICBvcHRzLnJlc3BvbnNlVHlwZSA9IG9wdHMucmVzcG9uc2VUeXBlIHx8ICdhcHBsaWNhdGlvbi9qc29uJztcbiAgICBsZXQgdXJsID0gJyc7XG4gICAgaWYgKG9wdHMudXJsKSB7XG4gICAgICB1cmwgPSBvcHRzLnVybDtcbiAgICB9IGVsc2Uge1xuICAgICAgdXJsID0gd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lID09ICdsb2NhbGhvc3QnID8gYGh0dHBzOi8vc3JzcmZsLXN0YWdpbmcuY29tL2AgOiAnLyc7XG4gICAgfVxuICAgIGNvbnN0IGhlYWRlcnMgPSBvcHRzLmhlYWRlcnMgfHwge307XG4gICAgYXhpb3Moe1xuICAgICAgbWV0aG9kOiBvcHRzLm1ldGhvZC50b0xvd2VyQ2FzZSgpLFxuICAgICAgdXJsOiBgJHt1cmx9JHtvcHRzLmVuZHBvaW50fWAsXG4gICAgICByZXNwb25zZVR5cGU6IG9wdHMucmVzcG9uc2VUeXBlLFxuICAgICAgaGVhZGVyczogaGVhZGVycyxcbiAgICAgIHBhcmFtczogb3B0cy5wYXJhbXMsXG4gICAgICBkYXRhOiBvcHRzLmRhdGEsXG4gICAgfSkudGhlbihyZXNvbHZlKS5jYXRjaChyZWplY3QpO1xuICB9KTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGFwaUNhbGw7XG4iLCJjb25zdCBnZXRFcnJvck1lc3NhZ2UgPSAoZXJyKSA9PiB7XG4gIGxldCBlcnJvciA9ICcnO1xuICBpZiAoZXJyLnJlc3BvbnNlICYmIGVyci5yZXNwb25zZS5kYXRhKSB7XG4gICAgaWYgKGVyci5yZXNwb25zZS5kYXRhLm1lc3NhZ2UpIHtcbiAgICAgIGlmIChlcnIucmVzcG9uc2UuZGF0YS5tZXNzYWdlID09ICdzdHJpbmcnKSB7XG4gICAgICAgIGVycm9yID0gZXJyLnJlc3BvbnNlLmRhdGEubWVzc2FnZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVycm9yID0gSlNPTi5zdHJpbmdpZnkoZXJyLnJlc3BvbnNlLmRhdGEubWVzc2FnZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgZXJyLnJlc3BvbnNlLmRhdGEgPT0gJ3N0cmluZycpIHtcbiAgICAgIGlmIChlcnIucmVzcG9uc2UuZGF0YS5pbmNsdWRlcygnbWVzc2FnZScpKSB7XG4gICAgICAgIGVycm9yID0gZXJyLnJlc3BvbnNlLmRhdGEuc3Vic3RyaW5nKDEyLCAoZXJyLnJlc3BvbnNlLmRhdGEubGVuZ3RoIC0gMikpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBlcnJvciA9IEpTT04uc3RyaW5naWZ5KGVyci5yZXNwb25zZS5kYXRhKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgZXJyb3IgPSBlcnIubWVzc2FnZSA/IGVyci5tZXNzYWdlIDogSlNPTi5zdHJpbmdpZnkoZXJyKTtcbiAgfVxuICByZXR1cm4gZXJyb3I7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBnZXRFcnJvck1lc3NhZ2U7XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IGFwaUNhbGwgZnJvbSAnLi4vLi4vLi4vLi4vbGliL2FwaUNhbGwuanMnO1xuaW1wb3J0IEVycm9yIGZyb20gJy4uLy4uLy4uLy4uL2xpYi9lcnJvci5qcyc7XG5pbXBvcnQgTG9hZGluZyBmcm9tICcuLi8uLi8uLi8uLi9saWIvbG9hZGluZyc7XG5pbXBvcnQgZ2V0RXJyb3JNZXNzYWdlIGZyb20gJy4uLy4uLy4uLy4uL2xpYi9nZXRFcnJvck1lc3NhZ2UuanMnO1xuaW1wb3J0IHByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IENvbnRleHQgfSBmcm9tICcuLi9jb250ZXh0L2NvbnRleHQuanMnO1xuaW1wb3J0IHsgVHlwb2dyYXBoeSwgR3JpZCwgQ29udGFpbmVyLCBQYXBlciwgVGV4dEZpZWxkLCBCdXR0b24gfSBmcm9tICdAbXVpL21hdGVyaWFsJztcblxuY2xhc3MgUmVnaXN0cmF0aW9uRm9ybSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICBlcnJvcnM6IG51bGwsXG4gICAgICBsb2FkZWQ6IHRydWUsXG4gICAgICB2aWV3OiAnUmVnaXN0ZXInLFxuICAgICAgc3RvcmVfbmFtZTogbnVsbCxcbiAgICAgIHN0b3JlX3V1aWQ6IG51bGwsXG4gICAgICBwYXRpZW50X3V1aWQ6IG51bGwsXG4gICAgICBuZXdfcGF0aWVudF91dWlkOiBudWxsLFxuICAgICAgdXNlcl91dWlkOiBudWxsLFxuICAgICAgdXNlcm5hbWU6IG51bGwsXG4gICAgICBwYXNzd29yZDogbnVsbCxcbiAgICAgIGZpcnN0X25hbWU6IG51bGwsXG4gICAgICBsYXN0X25hbWU6IG51bGwsXG4gICAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgICBmaWVsZHM6IGZpZWxkcyxcbiAgICAgIGZpZWxkczI6IGZpZWxkczIsXG4gICAgfTtcbiAgICBjb25zdCBmaWVsZHMgPSB7XG4gICAgICBmaXJzdF9uYW1lOiB7XG4gICAgICAgIHRpdGxlOiAnRmlyc3QgTmFtZScsXG4gICAgICAgIHR5cGU6IHtcbiAgICAgICAgICB0eXBlbmFtZTogJ3RleHQnLFxuICAgICAgICB9LFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgZXJyb3I6IHRydWUsXG4gICAgICAgIG9uQ2hhbmdlOiAodmFsdWUpID0+IHtcbiAgICAgICAgICBjb25zdCBjb3B5ID0geyAuLi50aGlzLnN0YXRlIH07XG4gICAgICAgICAgaWYgKCEvXlsgLX5dezEsMjB9JC8udGVzdCh2YWx1ZS50cmltKCkpKSB7XG4gICAgICAgICAgICBmaWVsZHMuZmlyc3RfbmFtZS5lcnJvciA9IHRydWU7XG4gICAgICAgICAgICBmaWVsZHMuZmlyc3RfbmFtZS5mZWVkYmFjayA9ICdJbnZhbGlkIEZpcnN0IE5hbWUgRm9ybWF0JztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZmllbGRzLmZpcnN0X25hbWUuZXJyb3IgPSBmYWxzZTtcbiAgICAgICAgICAgIGZpZWxkcy5maXJzdF9uYW1lLmZlZWRiYWNrID0gJyc7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvcHkuZmllbGRzLmZpcnN0X25hbWUudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKGNvcHkpO1xuICAgICAgICB9LFxuICAgICAgICBmdWxsd2lkdGg6IHRydWUsXG4gICAgICAgIGZlZWRiYWNrOiAnJyxcbiAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgfSxcbiAgICAgIGxhc3RfbmFtZToge1xuICAgICAgICB0aXRsZTogJ0xhc3QgTmFtZScsXG4gICAgICAgIHR5cGU6IHtcbiAgICAgICAgICB0eXBlbmFtZTogJ3RleHQnLFxuICAgICAgICB9LFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgZXJyb3I6IHRydWUsXG4gICAgICAgIG9uQ2hhbmdlOiAodmFsdWUpID0+IHtcbiAgICAgICAgICBjb25zdCBjb3B5ID0geyAuLi50aGlzLnN0YXRlIH07XG4gICAgICAgICAgaWYgKCEvXlsgLX5dezEsMjB9JC8udGVzdCh2YWx1ZS50cmltKCkpKSB7XG4gICAgICAgICAgICBmaWVsZHMubGFzdF9uYW1lLmVycm9yID0gdHJ1ZTtcbiAgICAgICAgICAgIGZpZWxkcy5sYXN0X25hbWUuZmVlZGJhY2sgPSAnSW52YWxpZCBMYXN0IE5hbWUgRm9ybWF0JztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZmllbGRzLmxhc3RfbmFtZS5lcnJvciA9IGZhbHNlO1xuICAgICAgICAgICAgZmllbGRzLmxhc3RfbmFtZS5mZWVkYmFjayA9ICcnO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb3B5LmZpZWxkcy5sYXN0X25hbWUudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKGNvcHkpO1xuICAgICAgICB9LFxuICAgICAgICBmdWxsd2lkdGg6IHRydWUsXG4gICAgICAgIGZlZWRiYWNrOiAnJyxcbiAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgfSxcbiAgICAgIGVtYWlsOiB7XG4gICAgICAgIHRpdGxlOiAnRW1haWwgQWRkcmVzcycsXG4gICAgICAgIHR5cGU6IHtcbiAgICAgICAgICB0eXBlbmFtZTogJ3RleHQnLFxuICAgICAgICB9LFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgZXJyb3I6IHRydWUsXG4gICAgICAgIG9uQ2hhbmdlOiAodmFsdWUpID0+IHtcbiAgICAgICAgICBjb25zdCBjb3B5ID0geyAuLi50aGlzLnN0YXRlIH07XG4gICAgICAgICAgaWYgKCEvXi4rQCguK1xcLikrLiskLy50ZXN0KHZhbHVlKSkge1xuICAgICAgICAgICAgZmllbGRzLmVtYWlsLmVycm9yID0gdHJ1ZTtcbiAgICAgICAgICAgIGZpZWxkcy5lbWFpbC5mZWVkYmFjayA9ICdJbnZhbGlkIEVtYWlsIEFkZHJlc3MgRm9ybWF0JztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZmllbGRzLmVtYWlsLmVycm9yID0gZmFsc2U7XG4gICAgICAgICAgICBmaWVsZHMuZW1haWwuZmVlZGJhY2sgPSAnJztcbiAgICAgICAgICB9XG4gICAgICAgICAgY29weS5maWVsZHMuZW1haWwudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKGNvcHkpO1xuICAgICAgICB9LFxuICAgICAgICBmdWxsd2lkdGg6IHRydWUsXG4gICAgICAgIGZlZWRiYWNrOiAnJyxcbiAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgfSxcbiAgICAgIHBhc3N3b3JkOiB7XG4gICAgICAgIHRpdGxlOiAnUGFzc3dvcmQnLFxuICAgICAgICB0eXBlOiB7XG4gICAgICAgICAgdHlwZW5hbWU6ICdwYXNzd29yZCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICBlcnJvcjogdHJ1ZSxcbiAgICAgICAgb25DaGFuZ2U6ICh2YWx1ZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvcHkgPSB7IC4uLnRoaXMuc3RhdGUgfTtcbiAgICAgICAgICBjb3B5LmZpZWxkcy5wYXNzd29yZC52YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPT0gMCkge1xuICAgICAgICAgICAgZmllbGRzLnBhc3N3b3JkLmVycm9yID0gdHJ1ZTtcbiAgICAgICAgICAgIGZpZWxkcy5wYXNzd29yZC5mZWVkYmFjayA9IChcbiAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICA8bGk+QXQgbGVhc3QgOCBjaGFyYWN0ZXJzIGxvbmc8L2xpPlxuICAgICAgICAgICAgICAgIDxsaT5BdCBsZWFzdCBvbmUgc3BlY2lhbCBjaGFyYWN0ZXI8L2xpPlxuICAgICAgICAgICAgICAgIDxsaT5BdCBsZWFzdCBvbmUgY2FwaXRhbCBsZXR0ZXI8L2xpPlxuICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICghL1sgLS86LUBbLWB7LX5dLy50ZXN0KHZhbHVlKSkge1xuICAgICAgICAgICAgICBmaWVsZHMucGFzc3dvcmQuZXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgICBmaWVsZHMucGFzc3dvcmQuZmVlZGJhY2sgPSAnQXQgbGVhc3QgMSBzcGVjaWFsIGNoYXJhY3RlciBpcyByZXF1aXJlZCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCEvW0EtWl0vLnRlc3QodmFsdWUpKSB7XG4gICAgICAgICAgICAgIGZpZWxkcy5wYXNzd29yZC5lcnJvciA9IHRydWU7XG4gICAgICAgICAgICAgIGZpZWxkcy5wYXNzd29yZC5mZWVkYmFjayA9ICdBdCBsZWFzdCAxIGNhcGl0YWwgbGV0dGVyIGlzIHJlcXVpcmVkJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWUubGVuZ3RoIDwgOCkge1xuICAgICAgICAgICAgICBmaWVsZHMucGFzc3dvcmQuZXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgICBmaWVsZHMucGFzc3dvcmQuZmVlZGJhY2sgPSAnQXQgbGVhc3QgOCBjaGFyYWN0ZXJzIGlzIHJlcXVpcmVkJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGZpZWxkcy5wYXNzd29yZC5lcnJvciA9IGZhbHNlO1xuICAgICAgICAgICAgICBmaWVsZHMucGFzc3dvcmQuZmVlZGJhY2sgPSAnJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjb3B5LmZpZWxkcy5jb25maXJtLnZhbHVlICE9PSBjb3B5LmZpZWxkcy5wYXNzd29yZC52YWx1ZSkge1xuICAgICAgICAgICAgICBjb3B5LmZpZWxkcy5jb25maXJtLmVycm9yID0gdHJ1ZTtcbiAgICAgICAgICAgICAgY29weS5maWVsZHMuY29uZmlybS5mZWVkYmFjayA9ICdQYXNzd29yZHMgbXVzdCBtYXRjaCc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBjb3B5LmZpZWxkcy5jb25maXJtLmVycm9yID0gZmFsc2U7XG4gICAgICAgICAgICAgIGNvcHkuZmllbGRzLmNvbmZpcm0uZmVlZGJhY2sgPSAnJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZShjb3B5KTtcbiAgICAgICAgfSxcbiAgICAgICAgZnVsbHdpZHRoOiB0cnVlLFxuICAgICAgICBmZWVkYmFjazogKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8bGk+QXQgbGVhc3QgOCBjaGFyYWN0ZXJzIGxvbmc8L2xpPlxuICAgICAgICAgICAgPGxpPkF0IGxlYXN0IG9uZSBzcGVjaWFsIGNoYXJhY3RlcjwvbGk+XG4gICAgICAgICAgICA8bGk+QXQgbGVhc3Qgb25lIGNhcGl0YWwgbGV0dGVyPC9saT5cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKSxcbiAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgfSxcbiAgICAgIGNvbmZpcm06IHtcbiAgICAgICAgdGl0bGU6ICdDb25maXJtIFBhc3N3b3JkJyxcbiAgICAgICAgdHlwZToge1xuICAgICAgICAgIHR5cGVuYW1lOiAncGFzc3dvcmQnLFxuICAgICAgICB9LFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgZXJyb3I6IHRydWUsXG4gICAgICAgIG9uQ2hhbmdlOiAodmFsdWUpID0+IHtcbiAgICAgICAgICBjb25zdCBjb3B5ID0geyAuLi50aGlzLnN0YXRlIH07XG4gICAgICAgICAgY29weS5maWVsZHMuY29uZmlybS52YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgIGlmIChjb3B5LmZpZWxkcy5jb25maXJtLnZhbHVlLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgICAgICBjb3B5LmZpZWxkcy5jb25maXJtLmVycm9yID0gdHJ1ZTtcbiAgICAgICAgICAgIGNvcHkuZmllbGRzLmNvbmZpcm0uZmVlZGJhY2sgPSAnUGFzc3dvcmRzIG11c3QgbWF0Y2gnO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoY29weS5maWVsZHMuY29uZmlybS52YWx1ZSAhPT0gY29weS5maWVsZHMucGFzc3dvcmQudmFsdWUpIHtcbiAgICAgICAgICAgICAgY29weS5maWVsZHMuY29uZmlybS5lcnJvciA9IHRydWU7XG4gICAgICAgICAgICAgIGNvcHkuZmllbGRzLmNvbmZpcm0uZmVlZGJhY2sgPSAnUGFzc3dvcmRzIG11c3QgbWF0Y2gnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgY29weS5maWVsZHMuY29uZmlybS5lcnJvciA9IGZhbHNlO1xuICAgICAgICAgICAgICBjb3B5LmZpZWxkcy5jb25maXJtLmZlZWRiYWNrID0gJyc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoY29weSk7XG4gICAgICAgIH0sXG4gICAgICAgIGZ1bGx3aWR0aDogdHJ1ZSxcbiAgICAgICAgZmVlZGJhY2s6ICcnLFxuICAgICAgICB2YWx1ZTogJycsXG4gICAgICB9LFxuICAgICAgdmFsdWU6ICcnLFxuICAgICAgZXJyb3I6IGZhbHNlLFxuICAgICAgZmVlZGJhY2s6ICcnLFxuICAgIH07XG4gICAgY29uc3QgZmllbGRzMiA9IHtcbiAgICAgIGNvbmZpcm1hdGlvbjoge1xuICAgICAgICB0aXRsZTogJ0NvbmZpcm1hdGlvbiBDb2RlJyxcbiAgICAgICAgdHlwZToge1xuICAgICAgICAgIHR5cGVuYW1lOiAndGV4dCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICBlcnJvcjogdHJ1ZSxcbiAgICAgICAgb25DaGFuZ2U6ICh2YWx1ZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvcHkgPSB7IC4uLnRoaXMuc3RhdGUgfTtcbiAgICAgICAgICBpZiAoIS9eWyAtfl17MSwyMH0kLy50ZXN0KHZhbHVlKSkge1xuICAgICAgICAgICAgZmllbGRzMi5jb25maXJtYXRpb24uZXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgZmllbGRzMi5jb25maXJtYXRpb24uZmVlZGJhY2sgPSAnSW52YWxpZCBDb25maXJtYXRpb24gQ29kZSBGb3JtYXQnO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmaWVsZHMyLmNvbmZpcm1hdGlvbi5lcnJvciA9IGZhbHNlO1xuICAgICAgICAgICAgZmllbGRzMi5jb25maXJtYXRpb24uZmVlZGJhY2sgPSAnJztcbiAgICAgICAgICB9XG4gICAgICAgICAgY29weS5maWVsZHMyLmNvbmZpcm1hdGlvbi52YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoY29weSk7XG4gICAgICAgIH0sXG4gICAgICAgIGZ1bGx3aWR0aDogdHJ1ZSxcbiAgICAgICAgZmVlZGJhY2s6ICcnLFxuICAgICAgICB2YWx1ZTogJycsXG4gICAgICB9LFxuICAgIH07XG4gICAgdGhpcy5zdGF0ZS5maWVsZHMgPSBmaWVsZHM7XG4gICAgdGhpcy5zdGF0ZS5maWVsZHMyID0gZmllbGRzMjtcbiAgICB0aGlzLmNsZWFyRmllbGRzID0gdGhpcy5jbGVhckZpZWxkcy5iaW5kKHRoaXMpO1xuICAgIHRoaXMuY2hhbmdlVmlldyA9IHRoaXMuY2hhbmdlVmlldy5iaW5kKHRoaXMpO1xuICAgIHRoaXMucmVnaXN0ZXJVc2VyID0gdGhpcy5yZWdpc3RlclVzZXIuYmluZCh0aGlzKTtcbiAgICB0aGlzLmNsZWFyU3RhdGUgPSB0aGlzLmNsZWFyU3RhdGUuYmluZCh0aGlzKTtcbiAgfVxuXG4gIHN0YXRpYyBjb250ZXh0VHlwZSA9IENvbnRleHQ7XG5cbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBzdG9yZV91dWlkOiBwcm9wVHlwZXMuc3RyaW5nLFxuICAgIHN0b3JlX25hbWU6IHByb3BUeXBlcy5zdHJpbmcsXG4gICAgcmVnaXN0ZXJfZW5hYmxlZDogcHJvcFR5cGVzLnN0cmluZyxcbiAgfTtcblxuICBjbGVhckZpZWxkcygpIHtcbiAgICBjb25zdCBjb3B5ID0geyAuLi50aGlzLnN0YXRlIH07XG4gICAgZm9yIChjb25zdCBrZXkgaW4gY29weS5maWVsZHMpIHtcbiAgICAgIGlmIChjb3B5LmZpZWxkc1trZXldLnZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29weS5maWVsZHNba2V5XS52YWx1ZSA9ICcnO1xuICAgICAgICBpZiAoY29weS5maWVsZHNba2V5XS5yZXF1aXJlZCkge1xuICAgICAgICAgIGNvcHkuZmllbGRzW2tleV0uZXJyb3IgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChjb3B5LmZpZWxkcy5wYXNzd29yZC52YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb3B5LmZpZWxkcy5wYXNzd29yZC5mZWVkYmFjayA9IChcbiAgICAgICAgPD5cbiAgICAgICAgICA8bGk+QXQgbGVhc3QgOCBjaGFyYWN0ZXJzIGxvbmc8L2xpPlxuICAgICAgICAgIDxsaT5BdCBsZWFzdCBvbmUgc3BlY2lhbCBjaGFyYWN0ZXI8L2xpPlxuICAgICAgICAgIDxsaT5BdCBsZWFzdCBvbmUgY2FwaXRhbCBsZXR0ZXI8L2xpPlxuICAgICAgICA8Lz5cbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuc2V0U3RhdGUoY29weSk7XG4gIH1cblxuICBjaGFuZ2VWaWV3KHZpZXcpIHtcbiAgICB0aGlzLnNldFN0YXRlKHsgdmlldzogdmlldyB9KTtcbiAgfVxuXG4gIGNsZWFyU3RhdGUoKSB7XG4gICAgY29uc3QgY29weSA9IHsgLi4udGhpcy5zdGF0ZSB9O1xuICAgIGNvcHkuZXJyb3JzID0gbnVsbDtcbiAgICBjb3B5LmxvYWRlZCA9IHRydWU7XG4gICAgY29weS52aWV3ID0gJ1JlZ2lzdGVyJztcbiAgICBjb3B5LnN0b3JlX25hbWUgPSBudWxsO1xuICAgIGNvcHkuc3RvcmVfdXVpZCA9IG51bGw7XG4gICAgY29weS5wYXRpZW50X3V1aWQgPSBudWxsO1xuICAgIGNvcHkubmV3X3BhdGllbnRfdXVpZCA9IG51bGw7XG4gICAgY29weS51c2VyX3V1aWQgPSBudWxsO1xuICAgIGNvcHkudXNlcm5hbWUgPSBudWxsO1xuICAgIGNvcHkucGFzc3dvcmQgPSBudWxsO1xuICAgIHRoaXMuY29udGV4dC5yZW1vdmVJdGVtKCdwYXNzd29yZCcpO1xuICAgIHRoaXMuY29udGV4dC5yZW1vdmVJdGVtKCd1c2VyX3V1aWQnKTtcbiAgICB0aGlzLmNvbnRleHQucmVtb3ZlSXRlbSgncGF0aWVudF91dWlkJyk7XG4gICAgdGhpcy5jb250ZXh0LnJlbW92ZUl0ZW0oJ2ZpcnN0X25hbWUnKTtcbiAgICB0aGlzLmNvbnRleHQucmVtb3ZlSXRlbSgnbGFzdF9uYW1lJyk7XG4gICAgdGhpcy5zZXRTdGF0ZShjb3B5KTtcbiAgfVxuXG4gIHJlZ2lzdGVyVXNlcigpIHtcbiAgICBjb25zdCBjb3B5ID0geyAuLi50aGlzLnN0YXRlIH07XG4gICAgY29uc3QgcGFyYW1zID0ge1xuICAgICAgZmlyc3RfbmFtZTogdGhpcy5zdGF0ZS5maWVsZHMuZmlyc3RfbmFtZS52YWx1ZSxcbiAgICAgIGxhc3RfbmFtZTogdGhpcy5zdGF0ZS5maWVsZHMubGFzdF9uYW1lLnZhbHVlLFxuICAgICAgZW1haWw6IHRoaXMuc3RhdGUuZmllbGRzLmVtYWlsLnZhbHVlLFxuICAgICAgcGF0aWVudF91dWlkOiB0aGlzLmNvbnRleHQuZ2V0UGF0aWVudCgpLFxuICAgICAgc3RvcmVfdXVpZDogdGhpcy5wcm9wcy5zdG9yZV91dWlkLFxuICAgIH07XG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgdXJsOiAnaHR0cHM6Ly9hcGktc3RhZ2luZy5zcnNwaGFybWFjeS5jb20vJyxcbiAgICAgIGVuZHBvaW50OiAncHVibGljL3YxL2F1dGgvcmVnaXN0ZXInLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgfSxcbiAgICAgIGRhdGE6IHBhcmFtcyxcbiAgICB9O1xuICAgIHRoaXMuc2V0U3RhdGUoeyBsb2FkZWQ6IGZhbHNlIH0pO1xuICAgIGFwaUNhbGwob3B0aW9ucykudGhlbiggKHJlc3ApID0+IHtcbiAgICAgIGNvbnN0IHIgPSBKU09OLnBhcnNlKHJlc3AuZGF0YSk7XG4gICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgdXNlcm5hbWU6IGNvcHkuZmllbGRzLmVtYWlsLnZhbHVlLFxuICAgICAgICBwYXNzd29yZDogY29weS5maWVsZHMucGFzc3dvcmQudmFsdWUsXG4gICAgICAgIGZpcnN0X25hbWU6IGNvcHkuZmllbGRzLmZpcnN0X25hbWUudmFsdWUsXG4gICAgICAgIGxhc3RfbmFtZTogY29weS5maWVsZHMubGFzdF9uYW1lLnZhbHVlLFxuICAgICAgICB1c2VyX3V1aWQ6IHIudXNlci51c2VyX3V1aWQsXG4gICAgICAgIG5ld19wYXRpZW50X3V1aWQ6IHIucGF0aWVudF91c2VyLnBhdGllbnRfdXVpZCxcbiAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgfSk7XG4gICAgICB0aGlzLmNvbnRleHQuc2V0VXNlclVVSUQoci51c2VyLnVzZXJfdXVpZCk7XG4gICAgICB0aGlzLmNvbnRleHQuc2V0UGFzc3dvcmQodGhpcy5zdGF0ZS5maWVsZHMucGFzc3dvcmQudmFsdWUpO1xuICAgICAgdGhpcy5jb250ZXh0LnNldFVzZXJuYW1lKHRoaXMuc3RhdGUuZmllbGRzLmVtYWlsLnZhbHVlKTtcbiAgICAgIHRoaXMuY29udGV4dC5zZXRQYXRpZW50KHIucGF0aWVudF91c2VyLnBhdGllbnRfdXVpZCk7XG4gICAgICB0aGlzLmNvbnRleHQuc2V0Rmlyc3ROYW1lKHRoaXMuc3RhdGUuZmllbGRzLmZpcnN0X25hbWUudmFsdWUpO1xuICAgICAgdGhpcy5jb250ZXh0LnNldExhc3ROYW1lKHRoaXMuc3RhdGUuZmllbGRzLmxhc3RfbmFtZS52YWx1ZSk7XG4gICAgICB0aGlzLmNoYW5nZVZpZXcoJ0NvbmZpcm1hdGlvbicpO1xuICAgIH0pLmNhdGNoKCAoZXJyKSA9PiB7XG4gICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7IGVycm9yczogZ2V0RXJyb3JNZXNzYWdlKGVyciksIGxvYWRlZDogdHJ1ZSB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIGNvbmZpcm1Db2RlKCkge1xuICAgIGNvbnN0IGNvcHkgPSB7IC4uLnRoaXMuc3RhdGUgfTtcbiAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICB1c2VybmFtZTogdGhpcy5jb250ZXh0LmdldFVzZXJuYW1lKCksXG4gICAgICBwYXNzd29yZDogdGhpcy5jb250ZXh0LmdldFBhc3N3b3JkKCksXG4gICAgICBzdG9yZV91dWlkOiB0aGlzLnByb3BzLnN0b3JlX3V1aWQsXG4gICAgICB1c2VyX3V1aWQ6IHRoaXMuY29udGV4dC5nZXRVc2VyVVVJRCgpLFxuICAgICAgcGF0aWVudF91dWlkOiB0aGlzLmNvbnRleHQuZ2V0UGF0aWVudCgpLFxuICAgICAgY29kZTogdGhpcy5zdGF0ZS5maWVsZHMyLmNvbmZpcm1hdGlvbi52YWx1ZSxcbiAgICAgIGZpcnN0X25hbWU6IHRoaXMuY29udGV4dC5nZXRGaXJzdE5hbWUoKSxcbiAgICAgIGxhc3RfbmFtZTogdGhpcy5jb250ZXh0LmdldExhc3ROYW1lKCksXG4gICAgfTtcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICB1cmw6ICdodHRwczovL2FwaS1zdGFnaW5nLnNyc3BoYXJtYWN5LmNvbS8nLFxuICAgICAgZW5kcG9pbnQ6ICdhdXRoL3BhdGllbnQvbG9naW4nLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgfSxcbiAgICAgIGRhdGE6IHBhcmFtcyxcbiAgICB9O1xuICAgIGFwaUNhbGwob3B0aW9ucykudGhlbiggKHJlc3ApID0+IHtcbiAgICAgIGNvbnN0IHIgPSBKU09OLnBhcnNlKHJlc3AuZGF0YSk7XG4gICAgICB0aGlzLmNvbnRleHQuc2V0QXV0aFRva2VucyhyKTtcbiAgICAgIHRoaXMuY2xlYXJTdGF0ZSgpO1xuICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSAncG9ydGFsLmh0bWw/c3RvcmVfdXVpZD0nICsgdGhpcy5wcm9wcy5zdG9yZV91dWlkO1xuICAgIH0pLmNhdGNoKCAoZXJyKSA9PiB7XG4gICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAgY29weS5maWVsZHMyLmNvbmZpcm1hdGlvbi5lcnJvciA9IHRydWU7XG4gICAgICBjb3B5LmZpZWxkczIuY29uZmlybWF0aW9uLmZlZWRiYWNrID0gJ0luY29ycmVjdCBDb25maXJtYXRpb24gQ29kZSc7XG4gICAgICBjb3B5LmRpc2FibGVkID0gZmFsc2U7XG4gICAgICB0aGlzLnNldFN0YXRlKGNvcHkpO1xuICAgIH0pO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGxldCByZWdpc3RlclN1YnRpdGxlID0gJyc7XG4gICAgaWYgKHRoaXMucHJvcHMucmVnaXN0ZXJfZW5hYmxlZCA9PSAnWScpIHtcbiAgICAgIHJlZ2lzdGVyU3VidGl0bGUgPSBgVG8gc3VibWl0IHlvdXIgcmVmaWxsIHJlcXVlc3QsIHJlZ2lzdGVyIGZvciAke3RoaXMucHJvcHMuc3RvcmVfbmFtZX0ncyBQYXRpZW50IFBvcnRhbC5gO1xuICAgIH1cbiAgICBsZXQgYm9keSA9IChcbiAgICAgIDxwPk5vdCBJbXBsZW1lbnRlZCBZZXQ8L3A+XG4gICAgKTtcbiAgICBpZiAoIXRoaXMuc3RhdGUubG9hZGVkKSB7XG4gICAgICBib2R5ID0gKFxuICAgICAgICA8Q29udGFpbmVyIG1heFdpZHRoPSdsZycgc3g9e3sgcGFkZGluZzogJzIwcHggJyB9fT5cbiAgICAgICAgICA8TG9hZGluZy8+XG4gICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuc3RhdGUuZXJyb3JzKSB7XG4gICAgICBsZXQgZXJyb3IgPSAnJztcbiAgICAgIGlmICh0aGlzLnN0YXRlLmVycm9ycyA9PSAnSW52YWxpZCBkYXRhIGZvcm1hdCcgfHwgdGhpcy5zdGF0ZS5lcnJvcnMgPT0gJ1VuZXhwZWN0ZWQgdmFsdWUgcHJvdmlkZScpIHtcbiAgICAgICAgZXJyb3IgPSAnTWlzc2luZyBvciBpbnZhbGlkIHN0b3JlIHRhZyBpbiByZXF1ZXN0JztcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5zdGF0ZS5lcnJvcnNcbiAgICAgICAgPT0gJ05vdCBlbm91Z2ggcGFyYW1ldGVycyBzdXBwbGllZCBpbiByZXF1ZXN0J1xuICAgICAgICB8fCB0aGlzLnN0YXRlLmVycm9yc1xuICAgICAgICA9PSAnVW5leHBlY3RlZC9NaXNzaW5nIHF1ZXJ5IHN0cmluZyBzdXBwbGllZCcpIHtcbiAgICAgICAgZXJyb3IgPSAnTWlzc2luZyBzdG9yZSB0YWcgb3IgUnggbnVtYmVyIGluIHF1ZXJ5IHN0cmluZyc7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuc3RhdGUuZXJyb3JzID09ICdJbnZhbGlkIGRhdGEgc3VwcGxpZWQgaW4gdGhlIHJlcXVlc3QnKSB7XG4gICAgICAgIGVycm9yID0gJ0ludmFsaWQgaGFzaCBnaXZlbiBpbiB0aGUgcXVlcnkgc3RyaW5nJztcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5zdGF0ZS5lcnJvcnMuaW5jbHVkZXMoJ1VzZXIgYWxyZWFkeSBleGlzdCcpKSB7XG4gICAgICAgIGVycm9yID0gJ0EgdXNlciB3aXRoIHRoYXQgZW1haWwgYWxyZWFkeSBleGlzdHMuJztcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5zdGF0ZS5lcnJvcnMuaW5jbHVkZXMoJ0VtYWlsIGRvZXMgbm90IG1hdGNoIHdoYXQgaXMgYXNzb2NpYXRlZCB0byB0aGUgcGF0aWVudC4nKSkge1xuICAgICAgICBlcnJvciA9ICdFbWFpbCBkb2VzIG5vdCBtYXRjaCB3aGF0IGlzIGFzc29jaWF0ZWQgdG8gdGhlIHBhdGllbnQuICdcbiAgICAgICAgKyAnUGxlYXNlIGNvbnRhY3QgJyArIHRoaXMucHJvcHMuc3RvcmVfbmFtZSArICcgdG8gcmVnaXN0ZXIuJztcbiAgICAgIH1cbiAgICAgIGNvbnN0IHByb3BzID0ge1xuICAgICAgICBtZXNzYWdlOiBlcnJvciA/IGVycm9yIDogdGhpcy5zdGF0ZS5lcnJvcnMsXG4gICAgICB9O1xuICAgICAgYm9keSA9IChcbiAgICAgICAgPENvbnRhaW5lciBtYXhXaWR0aD0nbGcnIHN4PXt7IHBhZGRpbmc6ICcyMHB4ICcgfX0+XG4gICAgICAgICAge0Vycm9yKHByb3BzKX1cbiAgICAgICAgICA8R3JpZCBjb250YWluZXIgZGlyZWN0aW9uPSdyb3cnIGp1c3RpZnlDb250ZW50PSdzcGFjZS1hcm91bmQnIGFsaWduSXRlbXM9J2NlbnRlcic+XG4gICAgICAgICAgICA8R3JpZCBpdGVtPlxuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgdmFyaWFudD0nY29udGFpbmVkJ1xuICAgICAgICAgICAgICAgIGNvbG9yPSdwcmltYXJ5J1xuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VWaWV3KHRoaXMuc3RhdGUudmlldyk7XG4gICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgZXJyb3JzOiBmYWxzZSB9KTtcbiAgICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgIEJhY2tcbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGVycm9yID09ICdBIHVzZXIgd2l0aCB0aGF0IGVtYWlsIGFscmVhZHkgZXhpc3RzLidcbiAgICAgICAgICAgICAgPyA8R3JpZCBpdGVtPlxuICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9J2NvbnRhaW5lZCdcbiAgICAgICAgICAgICAgICAgIGNvbG9yPSdwcmltYXJ5J1xuICAgICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9ICdwb3J0YWwuaHRtbD9zdG9yZV91dWlkPScgKyB0aGlzLnByb3BzLnN0b3JlX3V1aWQ7XG4gICAgICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICAgIExvZyBJblxuICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgIDogPD48Lz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3dpdGNoICh0aGlzLnN0YXRlLnZpZXcpIHtcbiAgICAgICAgY2FzZSAnUmVnaXN0ZXInOlxuICAgICAgICAgIGlmICh0aGlzLmNvbnRleHQuZ2V0UGFzc3dvcmQoKSkge1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VWaWV3KCdDb25maXJtYXRpb24nKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYm9keSA9IChcbiAgICAgICAgICAgIDxmb3JtIGlkPSdyZWdpc3Rlcic+XG4gICAgICAgICAgICAgIDxHcmlkIGNvbnRhaW5lciBzcGFjaW5nPXsxfSBzeD17eyBwYWRkaW5nOiAnMjBweCAnIH19PlxuICAgICAgICAgICAgICAgIDxHcmlkIGl0ZW0geHM9ezEyfT5cbiAgICAgICAgICAgICAgICAgIDxUeXBvZ3JhcGh5IHZhcmlhbnQ9J2g0Jz5cbiAgICAgICAgICAgICAgICAgICAgICBVc2VyIFJlZ2lzdHJhdGlvblxuICAgICAgICAgICAgICAgICAgPC9UeXBvZ3JhcGh5PlxuICAgICAgICAgICAgICAgICAgPFR5cG9ncmFwaHkgdmFyaWFudD0nc3VidGl0bGUxJz5cbiAgICAgICAgICAgICAgICAgICAge3JlZ2lzdGVyU3VidGl0bGV9XG4gICAgICAgICAgICAgICAgICA8L1R5cG9ncmFwaHk+XG4gICAgICAgICAgICAgICAgICA8aHIvPlxuICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICA8R3JpZCBpdGVtIHhzPXsxMn0+XG4gICAgICAgICAgICAgICAgICA8R3JpZCBjb250YWluZXIgc3BhY2luZz17Mn0+XG4gICAgICAgICAgICAgICAgICAgIDxHcmlkIGl0ZW0geHM9ezEyfT5cbiAgICAgICAgICAgICAgICAgICAgICA8VGV4dEZpZWxkXG4gICAgICAgICAgICAgICAgICAgICAgICBmdWxsV2lkdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yPXt0aGlzLnN0YXRlLmZpZWxkcy5maXJzdF9uYW1lLmVycm9yfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ9e3RoaXMuc3RhdGUuZmllbGRzLmZpcnN0X25hbWUucmVxdWlyZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPSdzbWFsbCdcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9J3RleHQnXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD17dGhpcy5zdGF0ZS5maWVsZHMuZmlyc3RfbmFtZS50aXRsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGhlbHBlclRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgJiYgdGhpcy5zdGF0ZS5maWVsZHMuZmlyc3RfbmFtZS5lcnJvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnN0YXRlLmZpZWxkcy5maXJzdF9uYW1lLmZlZWRiYWNrXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICcnXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dGhpcy5zdGF0ZS5maWVsZHMuZmlyc3RfbmFtZS52YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGUudGFyZ2V0LnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlLmZpZWxkcy5maXJzdF9uYW1lLm9uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICA8R3JpZCBpdGVtIHhzPXsxMn0+XG4gICAgICAgICAgICAgICAgICAgICAgPFRleHRGaWVsZFxuICAgICAgICAgICAgICAgICAgICAgICAgZnVsbFdpZHRoXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvcj17dGhpcy5zdGF0ZS5maWVsZHMubGFzdF9uYW1lLmVycm9yfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ9e3RoaXMuc3RhdGUuZmllbGRzLmxhc3RfbmFtZS5yZXF1aXJlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9J3NtYWxsJ1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0ndGV4dCdcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXt0aGlzLnN0YXRlLmZpZWxkcy5sYXN0X25hbWUudGl0bGV9XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWxwZXJUZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlICYmIHRoaXMuc3RhdGUuZmllbGRzLmxhc3RfbmFtZS5lcnJvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnN0YXRlLmZpZWxkcy5sYXN0X25hbWUuZmVlZGJhY2tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJydcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXt0aGlzLnN0YXRlLmZpZWxkcy5sYXN0X25hbWUudmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBlLnRhcmdldC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZS5maWVsZHMubGFzdF9uYW1lLm9uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICA8R3JpZCBpdGVtIHhzPXsxMn0+XG4gICAgICAgICAgICAgICAgICAgICAgPFRleHRGaWVsZFxuICAgICAgICAgICAgICAgICAgICAgICAgZnVsbFdpZHRoXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvcj17dGhpcy5zdGF0ZS5maWVsZHMuZW1haWwuZXJyb3J9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZD17dGhpcy5zdGF0ZS5maWVsZHMuZW1haWwucmVxdWlyZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPSdzbWFsbCdcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9J3RleHQnXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD17dGhpcy5zdGF0ZS5maWVsZHMuZW1haWwudGl0bGV9XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWxwZXJUZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlICYmIHRoaXMuc3RhdGUuZmllbGRzLmVtYWlsLmVycm9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMuc3RhdGUuZmllbGRzLmVtYWlsLmZlZWRiYWNrXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICcnXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dGhpcy5zdGF0ZS5maWVsZHMuZW1haWwudmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBlLnRhcmdldC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZS5maWVsZHMuZW1haWwub25DaGFuZ2UodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgICAgIDxHcmlkIGl0ZW0geHM9ezEyfSBzeD17eyBkaXNwbGF5OiAnZmxleCcsIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyB9fT5cbiAgICAgICAgICAgICAgICAgICAgICA8VGV4dEZpZWxkXG4gICAgICAgICAgICAgICAgICAgICAgICBmdWxsV2lkdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yPXt0aGlzLnN0YXRlLmZpZWxkcy5wYXNzd29yZC5lcnJvcn1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPXt0aGlzLnN0YXRlLmZpZWxkcy5wYXNzd29yZC5yZXF1aXJlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9J3NtYWxsJ1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0ncGFzc3dvcmQnXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD17dGhpcy5zdGF0ZS5maWVsZHMucGFzc3dvcmQudGl0bGV9XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWxwZXJUZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlICYmIHRoaXMuc3RhdGUuZmllbGRzLnBhc3N3b3JkLmVycm9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMuc3RhdGUuZmllbGRzLnBhc3N3b3JkLmZlZWRiYWNrXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICcnXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dGhpcy5zdGF0ZS5maWVsZHMucGFzc3dvcmQudmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBlLnRhcmdldC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZS5maWVsZHMucGFzc3dvcmQub25DaGFuZ2UodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgICAgIDxHcmlkIGl0ZW0geHM9ezEyfSBzeD17eyBkaXNwbGF5OiAnZmxleCcsIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyB9fT5cbiAgICAgICAgICAgICAgICAgICAgICA8VGV4dEZpZWxkXG4gICAgICAgICAgICAgICAgICAgICAgICBmdWxsV2lkdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yPXt0aGlzLnN0YXRlLmZpZWxkcy5jb25maXJtLmVycm9yfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ9e3RoaXMuc3RhdGUuZmllbGRzLmNvbmZpcm0ucmVxdWlyZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPSdzbWFsbCdcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9J3Bhc3N3b3JkJ1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9e3RoaXMuc3RhdGUuZmllbGRzLmNvbmZpcm0udGl0bGV9XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWxwZXJUZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlICYmIHRoaXMuc3RhdGUuZmllbGRzLmNvbmZpcm0uZXJyb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5zdGF0ZS5maWVsZHMuY29uZmlybS5mZWVkYmFja1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3RoaXMuc3RhdGUuZmllbGRzLmNvbmZpcm0udmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBlLnRhcmdldC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZS5maWVsZHMuY29uZmlybS5vbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17MTJ9IHN4PXt7IHBhZGRpbmdUb3A6ICc1cHgnLCBiZ2NvbG9yOiAncmdiYSgwLDAsMCwuMDUnIH19PlxuICAgICAgICAgICAgICAgICAgICAgIDxHcmlkIGNvbnRhaW5lciBzcGFjaW5nPXsyfT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkIGl0ZW0geHM9ezZ9IHN4PXt7IGRpc3BsYXk6ICdmbGV4JywganVzdGlmeUNvbnRlbnQ6ICdmbGV4LXN0YXJ0JyB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT0ncmVzZXQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD0nY29udGFpbmVkJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPSdlcnJvcidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJGaWVsZHMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNldFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkIGl0ZW0geHM9ezZ9IHN4PXt7IGRpc3BsYXk6ICdmbGV4JywganVzdGlmeUNvbnRlbnQ6ICdmbGV4LWVuZCcgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9J3NhdmUnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD0nY29udGFpbmVkJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPSdwcmltYXJ5J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZmllbGRzID0gdGhpcy5zdGF0ZS5maWVsZHM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgc3VibWl0ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZmllbGQgaW4gZmllbGRzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmaWVsZHNbZmllbGRdLmVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VibWl0ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdWJtaXQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWdpc3RlclVzZXIoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJtaXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgICAgKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnQ29uZmlybWF0aW9uJzpcbiAgICAgICAgICBib2R5ID0gKFxuICAgICAgICAgICAgPGZvcm0gaWQ9J2NvbmZpcm1hdGlvbic+XG4gICAgICAgICAgICAgIDxHcmlkIGNvbnRhaW5lciBzcGFjaW5nPXsxfSBzeD17eyBwYWRkaW5nOiAnMjBweCcgfX0+XG4gICAgICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17MTJ9PlxuICAgICAgICAgICAgICAgICAgPFR5cG9ncmFwaHkgdmFyaWFudD0naDQnPkVtYWlsIENvbmZpcm1hdGlvbjwvVHlwb2dyYXBoeT5cbiAgICAgICAgICAgICAgICAgIDxUeXBvZ3JhcGh5IHZhcmlhbnQ9J3N1YnRpdGxlMSc+Q2hlY2sgeW91ciBlbWFpbCBmb3IgeW91ciBjb25maXJtYXRpb24gY29kZS48L1R5cG9ncmFwaHk+XG4gICAgICAgICAgICAgICAgICA8aHIvPlxuICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICA8R3JpZCBpdGVtIHhzPXsxMn0+XG4gICAgICAgICAgICAgICAgICA8R3JpZCBjb250YWluZXIgc3BhY2luZz17Mn0+XG4gICAgICAgICAgICAgICAgICAgIDxHcmlkIGl0ZW0geHM9ezEyfT5cbiAgICAgICAgICAgICAgICAgICAgICA8VGV4dEZpZWxkXG4gICAgICAgICAgICAgICAgICAgICAgICBmdWxsV2lkdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yPXt0aGlzLnN0YXRlLmZpZWxkczIuY29uZmlybWF0aW9uLmVycm9yfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ9e3RoaXMuc3RhdGUuZmllbGRzMi5jb25maXJtYXRpb24ucmVxdWlyZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPSdzbWFsbCdcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9J3RleHQnXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD17dGhpcy5zdGF0ZS5maWVsZHMyLmNvbmZpcm1hdGlvbi50aXRsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGhlbHBlclRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgJiYgdGhpcy5zdGF0ZS5maWVsZHMyLmNvbmZpcm1hdGlvbi5lcnJvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnN0YXRlLmZpZWxkczIuY29uZmlybWF0aW9uLmZlZWRiYWNrXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICcnXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dGhpcy5zdGF0ZS5maWVsZHMyLmNvbmZpcm1hdGlvbi52YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGUudGFyZ2V0LnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlLmZpZWxkczIuY29uZmlybWF0aW9uLm9uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICA8R3JpZCBpdGVtIHhzPXsxMn0gc3g9e3sgcGFkZGluZ1RvcDogJzVweCcsIGJnY29sb3I6ICdyZ2JhKDAsMCwwLC4wNScgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgPEdyaWQgY29udGFpbmVyIHNwYWNpbmc9ezJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17MTJ9IHN4PXt7IGRpc3BsYXk6ICdmbGV4JywganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPSdzYXZlJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9J2NvbnRhaW5lZCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj0ncHJpbWFyeSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17dGhpcy5zdGF0ZS5kaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpZWxkczIgPSB0aGlzLnN0YXRlLmZpZWxkczI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgc3VibWl0ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZmllbGQgaW4gZmllbGRzMikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmllbGRzMltmaWVsZF0uZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJtaXQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN1Ym1pdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgZGlzYWJsZWQ6IHRydWUgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlybUNvZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgU3VibWl0XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICAgICk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICA8Q29udGFpbmVyIG1heFdpZHRoPSdsZyc+XG4gICAgICAgIDxQYXBlciB2YXJpYW50PSdvdXRsaW5lZCc+XG4gICAgICAgICAge2JvZHl9XG4gICAgICAgIDwvUGFwZXI+XG4gICAgICA8L0NvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFJlZ2lzdHJhdGlvbkZvcm07XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBMb2FkaW5nIGZyb20gJy4uLy4uLy4uLy4uL2xpYi9sb2FkaW5nLmpzJztcbmltcG9ydCBFcnJvciBmcm9tICcuLi8uLi8uLi8uLi9saWIvZXJyb3IuanMnO1xuaW1wb3J0IHsgQ29udGV4dCB9IGZyb20gJy4uL2NvbnRleHQvY29udGV4dC5qcyc7XG5pbXBvcnQgYXBpQ2FsbCBmcm9tICcuLi8uLi8uLi8uLi9saWIvYXBpQ2FsbC5qcyc7XG5pbXBvcnQgZ2V0RXJyb3JNZXNzYWdlIGZyb20gJy4uLy4uLy4uLy4uL2xpYi9nZXRFcnJvck1lc3NhZ2UuanMnO1xuaW1wb3J0IFJlZ2lzdHJhdGlvbkZvcm0gZnJvbSAnLi4vY29tcG9uZW50cy9SZWdpc3RyYXRpb25Gb3JtLmpzJztcbmltcG9ydCB7IEFwcEJhciwgVG9vbGJhciwgQnV0dG9uLCBUeXBvZ3JhcGh5LCBHcmlkLCBCb3gsIFBhcGVyLCBDb250YWluZXIgfSBmcm9tICdAbXVpL21hdGVyaWFsJztcblxuXG5jbGFzcyBIb21lIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIGVycm9yczogbnVsbCxcbiAgICAgIGxvYWRlZDogZmFsc2UsXG4gICAgICBzdWJtaXQ6IGZhbHNlLFxuICAgICAgcmVkaXJlY3Q6IGZhbHNlLFxuICAgICAgdGFnOiB0aGlzLmdldFN0b3JlTnVtYmVyKCksXG4gICAgICByeE51bWJlcjogdGhpcy5nZXRSeE51bWJlcigpLFxuICAgICAgaGFzaDogdGhpcy5nZXRIYXNoKCksXG4gICAgICBwYXRpZW50X3VzZXI6IGZhbHNlLFxuICAgICAgc3RvcmVfbmFtZTogJycgfHwgbnVsbCxcbiAgICAgIGxvZ286IG51bGwsXG4gICAgICBzdG9yZV9hZGRyZXNzOiAnJyB8fCBudWxsLFxuICAgICAgc3RvcmVfYWRkcmVzc190d286ICcnIHx8IG51bGwsXG4gICAgICBjaXR5OiAnJyB8fCBudWxsLFxuICAgICAgc3RhdGU6ICcnIHx8IG51bGwsXG4gICAgICB6aXA6ICcnIHx8IG51bGwsXG4gICAgICBwaGFybWFjeV9waG9uZTogJycgfHwgbnVsbCxcbiAgICAgIHN0b3JlX3V1aWQ6ICcnIHx8IG51bGwsXG4gICAgICByZXF1ZXN0ZWQ6ICcnIHx8IG51bGwsXG4gICAgICBkaXNhYmxlX2J1dHRvbjogZmFsc2UsXG4gICAgICBzaG93Rm9ybTogZmFsc2UsXG4gICAgICByZWdpc3Rlcl9lbmFibGVkOiAnTicsXG4gICAgICBzaG93UmVnaXN0ZXJCdXR0b246IGZhbHNlLFxuICAgIH07XG4gICAgdGhpcy5yZXF1ZXN0UmVmaWxsID0gdGhpcy5yZXF1ZXN0UmVmaWxsLmJpbmQodGhpcyk7XG4gICAgdGhpcy5nZXRGdWxsQXV0aCA9IHRoaXMuZ2V0RnVsbEF1dGguYmluZCh0aGlzKTtcbiAgICB0aGlzLmdldEhhc2ggPSB0aGlzLmdldEhhc2guYmluZCh0aGlzKTtcbiAgICB0aGlzLmdldFN0b3JlTnVtYmVyID0gdGhpcy5nZXRTdG9yZU51bWJlci5iaW5kKHRoaXMpO1xuICAgIHRoaXMuZ2V0UnhOdW1iZXIgPSB0aGlzLmdldFJ4TnVtYmVyLmJpbmQodGhpcyk7XG4gICAgdGhpcy5jb25zdHJ1Y3RYTUxEb2N1bWVudCA9IHRoaXMuY29uc3RydWN0WE1MRG9jdW1lbnQuYmluZCh0aGlzKTtcbiAgICB0aGlzLmVudGl0eSA9IHRoaXMuZW50aXR5LmJpbmQodGhpcyk7XG4gICAgdGhpcy5sb2FkID0gdGhpcy5sb2FkLmJpbmQodGhpcyk7XG4gIH1cblxuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIHByZXNjcmlwdGlvbjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBzZXRSZWZpbGxSZXNwb25zZTogUHJvcFR5cGVzLmZ1bmMsXG4gICAgdGhlbWVNb2RlOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIH07XG5cbiAgc3RhdGljIGNvbnRleHRUeXBlID0gQ29udGV4dDtcblxuICBnZXRGdWxsQXV0aCgpIHtcbiAgICBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSkgPT0gJ2RlbW8nXG4gICAgfHwgd2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSkgPT0gJ3Q9ZGVtbycpIHtcbiAgICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24uaHJlZiA9ICdodHRwczovL3Nyc3JmbC1zdGFnaW5nLmNvbS8/dD0xSHMxRjJ5NzcxMDI3MTAxMDg2JztcbiAgICB9IGVsc2UgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2guc3Vic3RyaW5nKDEsIDMpID09ICd0PScpIHtcbiAgICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24uc2VhcmNoLnN1YnN0cmluZygzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5zZWFyY2guc3Vic3RyaW5nKDEpO1xuICAgIH1cbiAgfVxuXG4gIGdldEhhc2goKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RnVsbEF1dGgoKS5zdWJzdHJpbmcoMCwgNyk7XG4gIH1cblxuICBnZXRTdG9yZU51bWJlcigpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRGdWxsQXV0aCgpLnN1YnN0cmluZyg3LCAxMyk7XG4gIH1cblxuICBnZXRSeE51bWJlcigpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRGdWxsQXV0aCgpLnN1YnN0cmluZygxMykucmVwbGFjZSgvW14wLTldL2csICcnKTtcbiAgfVxuXG4gIGVudGl0eSguLi5hcmdzKSB7XG4gICAgY29uc3QgW2RvYywgZW50aXR5TmFtZSwgLi4uZXh0cmFdID0gYXJncztcbiAgICBjb25zdCBub2RlID0gZG9jLmNyZWF0ZUVsZW1lbnQoZW50aXR5TmFtZSk7XG4gICAgZm9yIChjb25zdCBhcmcgb2YgZXh0cmEpIHtcbiAgICAgIGlmICghYXJnKSB7XG4gICAgICAgIG5vZGUuYXBwZW5kQ2hpbGQoZG9jLmNyZWF0ZVRleHROb2RlKCcnKSk7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBhcmcgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIG5vZGUuYXBwZW5kQ2hpbGQoZG9jLmNyZWF0ZVRleHROb2RlKGFyZykpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbm9kZS5hcHBlbmRDaGlsZChhcmcpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbm9kZTtcbiAgfVxuXG4gIGNvbnN0cnVjdFhNTERvY3VtZW50KGxhc3RuYW1lLCBmaXJzdG5hbWUsIHBob25lLCBlbWFpbCwgbWVzc2FnZSkge1xuICAgIGNvbnN0IGRvYyA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KCdodHRwOi8vd3d3LnNyc3BoYXJtYWN5LmNvbS9YTUwvUGF0aWVudFJlZmlsbFJlcXVlc3QnLFxuICAgICAgICAnUGF0aWVudFJlZmlsbFJlcXVlc3QnLFxuICAgICAgICBudWxsKTtcblxuICAgIGNvbnN0IHJvb3QgPSBkb2MuZG9jdW1lbnRFbGVtZW50O1xuICAgIHJvb3QuYXBwZW5kQ2hpbGQodGhpcy5lbnRpdHkoZG9jLCAnVG8nLCB0aGlzLnN0YXRlLnRhZykpO1xuICAgIHJvb3QuYXBwZW5kQ2hpbGQodGhpcy5lbnRpdHkoZG9jLCAnRnJvbScsICdzcnNyZmwnKSk7XG4gICAgcm9vdC5hcHBlbmRDaGlsZCh0aGlzLmVudGl0eShkb2MsICdBdXRoJywgdGhpcy5zdGF0ZS5oYXNoKSk7XG4gICAgcm9vdC5hcHBlbmRDaGlsZCh0aGlzLmVudGl0eShkb2MsICdTZW50VGltZScsIG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSkpO1xuICAgIHJvb3QuYXBwZW5kQ2hpbGQodGhpcy5lbnRpdHkoZG9jLCAnTWVzc2FnZUlEJywgbmV3IERhdGUoKS5nZXRUaW1lKCkudG9TdHJpbmcoKSkpO1xuICAgIHJvb3QuYXBwZW5kQ2hpbGQodGhpcy5lbnRpdHkoZG9jLCAnUnhOdW1iZXJzJyxcbiAgICAgICAgdGhpcy5lbnRpdHkoZG9jLCAnUnhOdW1iZXInLCB0aGlzLnN0YXRlLnJ4TnVtYmVyKSkpO1xuICAgIHJvb3QuYXBwZW5kQ2hpbGQodGhpcy5lbnRpdHkoZG9jLCAnQ29udGFjdCcsXG4gICAgICAgIHRoaXMuZW50aXR5KGRvYywgJ0xhc3ROYW1lJywgbGFzdG5hbWUpLFxuICAgICAgICB0aGlzLmVudGl0eShkb2MsICdGaXJzdE5hbWUnLCBmaXJzdG5hbWUpLFxuICAgICAgICB0aGlzLmVudGl0eShkb2MsICdQaG9uZScsIHBob25lKSxcbiAgICAgICAgdGhpcy5lbnRpdHkoZG9jLCAnRW1haWwnLCBlbWFpbCkpKTtcbiAgICByb290LmFwcGVuZENoaWxkKHRoaXMuZW50aXR5KGRvYywgJ0NvbW1lbnQnLCBtZXNzYWdlKSk7XG4gICAgcmV0dXJuIGRvYztcbiAgfVxuXG4gIGxvYWQoKSB7XG4gICAgY29uc3QgcGFyYW1zID0ge1xuICAgICAgdGFnOiB0aGlzLmdldFN0b3JlTnVtYmVyKCksXG4gICAgICByeF9udW1iZXI6IHRoaXMuZ2V0UnhOdW1iZXIoKSxcbiAgICAgIGF1dGg6IHRoaXMuZ2V0SGFzaCgpLFxuICAgIH07XG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIG1ldGhvZDogJ2dldCcsXG4gICAgICBlbmRwb2ludDogJ3F1ZXJ5JyxcbiAgICAgIHBhcmFtczogcGFyYW1zLFxuICAgIH07XG4gICAgYXBpQ2FsbChvcHRpb25zKS50aGVuKCAocmVzcCkgPT4ge1xuICAgICAgY29uc3QgciA9IEpTT04ucGFyc2UocmVzcC5kYXRhKTtcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICBzdG9yZV9uYW1lOiByLm5hbWUsXG4gICAgICAgIGxvZ286IHIubG9nbyxcbiAgICAgICAgc3RvcmVfYWRkcmVzczogci5hZGRyZXNzMSxcbiAgICAgICAgc3RvcmVfYWRkcmVzc190d286IHIuYWRkcmVzczIsXG4gICAgICAgIGNpdHk6IHIuY2l0eSxcbiAgICAgICAgc3RhdGU6IHIuc3RhdGUsXG4gICAgICAgIHppcDogci56aXAsXG4gICAgICAgIHBoYXJtYWN5X3Bob25lOiByLnBob25lLFxuICAgICAgICBzdG9yZV91dWlkOiByLnN0b3JlX3V1aWQsXG4gICAgICAgIGxvYWRlZDogdHJ1ZSxcbiAgICAgICAgcmVnaXN0ZXJfZW5hYmxlZDogci5zcnNyZmxfcmVnaXN0ZXIsXG4gICAgICAgIHNob3dGb3JtOiByLnNyc3JmbF9yZWdpc3RlciA9PSAnWScgPyB0cnVlIDogZmFsc2UsXG4gICAgICAgIHBhdGllbnRfdXNlcjogci51c2VycyAmJiByLnVzZXJzLmxlbmd0aCA+IDAgPyB0cnVlIDogZmFsc2UsXG4gICAgICB9KTtcbiAgICAgIGlmIChyLnBhdGllbnRfdXVpZCkge1xuICAgICAgICB0aGlzLmNvbnRleHQuc2V0UGF0aWVudChyLnBhdGllbnRfdXVpZCk7XG4gICAgICB9XG4gICAgfSkuY2F0Y2goIChlcnIpID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICBjb25zdCBkYXRhID0gZXJyPy5yZXNwb25zZT8uZGF0YSA/IEpTT04ucGFyc2UoZXJyLnJlc3BvbnNlLmRhdGEpIDogJyc7XG4gICAgICBpZiAoIWRhdGEpIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGVycm9yczogJ1NvbWV0aGluZyB1bmV4cGVjdGVkIGhhcHBlbmVkJywgbG9hZGVkOiB0cnVlIH0pO1xuICAgICAgfSBlbHNlIGlmIChkYXRhLnJlZGlyZWN0KSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyByZWRpcmVjdDogdHJ1ZSwgbG9hZGVkOiB0cnVlIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGRhdGEubWVzc2FnZTtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGVycm9yczogZ2V0RXJyb3JNZXNzYWdlKG1lc3NhZ2UpLCBsb2FkZWQ6IHRydWUgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICB0aGlzLmxvYWQoKTtcbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcbiAgICBpZiAoIXRoaXMuc3RhdGUubG9hZGVkKSB7XG4gICAgICB0aGlzLmxvYWQoKTtcbiAgICB9XG4gIH1cblxuICByZXF1ZXN0UmVmaWxsKCkge1xuICAgIGNvbnN0IHJlZmlsbCA9ICc8P3htbCB2ZXJzaW9uPVwiMS4wXCI/PicgKyBuZXcgWE1MU2VyaWFsaXplcigpLnNlcmlhbGl6ZVRvU3RyaW5nKHRoaXMuY29uc3RydWN0WE1MRG9jdW1lbnQoKSk7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgZW5kcG9pbnQ6ICdzdWJtaXQnLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ3RleHQveG1sJyxcbiAgICAgIH0sXG4gICAgICBkYXRhOiByZWZpbGwsXG4gICAgfTtcbiAgICBhcGlDYWxsKG9wdGlvbnMpLnRoZW4oIChyZXNwKSA9PiB7XG4gICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgcmVxdWVzdGVkOiAnUmVmaWxsIHJlcXVlc3RlZCBzdWNjZXNzZnVsbHkuJyxcbiAgICAgICAgc2hvd1JlZ2lzdGVyQnV0dG9uOiB0aGlzLnN0YXRlLnJlZ2lzdGVyX2VuYWJsZWQgPT0gJ08nID8gdHJ1ZSA6IGZhbHNlLFxuICAgICAgfSk7XG4gICAgfSkuY2F0Y2goIChlcnIpID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICB0aGlzLnNldFN0YXRlKHsgZXJyb3JzOiBnZXRFcnJvck1lc3NhZ2UoZXJyKSwgbG9hZGVkOiB0cnVlIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGxldCBib2R5ID0gKFxuICAgICAgPExvYWRpbmcvPlxuICAgICk7XG4gICAgaWYgKCF0aGlzLnN0YXRlLmxvYWRlZCkge1xuICAgICAgYm9keSA9IChcbiAgICAgICAgPExvYWRpbmcvPlxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuc3RhdGUucmVkaXJlY3QpIHtcbiAgICAgIGNvbnN0IHN0b3JldGFnID0gdGhpcy5nZXRTdG9yZU51bWJlcigpO1xuICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSAnd2VicmVmaWxsZm9ybS8nICsgc3RvcmV0YWc7XG4gICAgfSBlbHNlIGlmICh0aGlzLnN0YXRlLmVycm9ycykge1xuICAgICAgbGV0IGVycm9yID0gJyc7XG4gICAgICBpZiAodGhpcy5zdGF0ZS5lcnJvcnMgPT0gJ0ludmFsaWQgZGF0YSBmb3JtYXQnIHx8IHRoaXMuc3RhdGUuZXJyb3JzID09ICdVbmV4cGVjdGVkIHZhbHVlIHByb3ZpZGUnKSB7XG4gICAgICAgIGVycm9yID0gJ01pc3Npbmcgb3IgaW52YWxpZCBzdG9yZSB0YWcgaW4gcmVxdWVzdCc7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbXVsdGktc3BhY2VzXG4gICAgICB9IGVsc2UgaWYgKCAgIHRoaXMuc3RhdGUuZXJyb3JzID09ICdOb3QgZW5vdWdoIHBhcmFtZXRlcnMgc3VwcGxpZWQgaW4gcmVxdWVzdCdcbiAgICAgICAgICAgICAgICAgfHwgdGhpcy5zdGF0ZS5lcnJvcnMgPT0gJ1VuZXhwZWN0ZWQvTWlzc2luZyBxdWVyeSBzdHJpbmcgc3VwcGxpZWQnKSB7XG4gICAgICAgIGVycm9yID0gJ01pc3Npbmcgc3RvcmUgdGFnIG9yIFJ4IG51bWJlciBpbiBxdWVyeSBzdHJpbmcnO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLnN0YXRlLmVycm9ycyA9PSAnSW52YWxpZCBkYXRhIHN1cHBsaWVkIGluIHRoZSByZXF1ZXN0Jykge1xuICAgICAgICBlcnJvciA9ICdJbnZhbGlkIGhhc2ggZ2l2ZW4gaW4gdGhlIHF1ZXJ5IHN0cmluZyc7XG4gICAgICB9XG4gICAgICBjb25zdCBwcm9wcyA9IHtcbiAgICAgICAgbWVzc2FnZTogZXJyb3IgPyBlcnJvciA6IHRoaXMuc3RhdGUuZXJyb3JzLFxuICAgICAgfTtcbiAgICAgIGlmICh0aGlzLnN0YXRlLnN0b3JlX25hbWUpIHtcbiAgICAgICAgcHJvcHMucmV0dXJuVG8gPSAoKSA9PiB0aGlzLnNldFN0YXRlKHsgZXJyb3JzOiBudWxsIH0pO1xuICAgICAgfVxuICAgICAgYm9keSA9IChcbiAgICAgICAgRXJyb3IocHJvcHMpXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5zdGF0ZS5wYXRpZW50X3VzZXIpIHtcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSAncG9ydGFsLmh0bWw/c3RvcmVfdXVpZD0nICsgdGhpcy5zdGF0ZS5zdG9yZV91dWlkICsgJyMvJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGJvZHkgPSAoXG4gICAgICAgICAgPEdyaWQ+XG4gICAgICAgICAgICA8QXBwQmFyIHBvc2l0aW9uPVwic3RhdGljXCI+XG4gICAgICAgICAgICAgIDxUb29sYmFyPlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUubG9nbyA/IChcbiAgICAgICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICAgIHNyYz17dGhpcy5zdGF0ZS5sb2dvfVxuICAgICAgICAgICAgICAgICAgICAgIGFsdD17dGhpcy5zdGF0ZS5zdG9yZV9uYW1lfVxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IG1hcmdpbjogJzVweCcsIGJvcmRlclJhZGl1czogJzVweCcsIGhlaWdodDogJzVyZW0nIH19XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICA8VHlwb2dyYXBoeT57dGhpcy5zdGF0ZS5zdG9yZV9uYW1lfTwvVHlwb2dyYXBoeT5cbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvVG9vbGJhcj5cbiAgICAgICAgICAgIDwvQXBwQmFyPlxuICAgICAgICAgICAgPEdyaWQgY29udGFpbmVyIGp1c3RpZnlDb250ZW50PSdjZW50ZXInPlxuICAgICAgICAgICAgICA8R3JpZCBpdGVtPlxuICAgICAgICAgICAgICAgIDxCb3g+XG4gICAgICAgICAgICAgICAgICA8VHlwb2dyYXBoeVxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PSdoNidcbiAgICAgICAgICAgICAgICAgID5SZWZpbGwgUmVxdWVzdCBmb3IgUngjIHt0aGlzLnN0YXRlLnJ4TnVtYmVyfVxuICAgICAgICAgICAgICAgICAgPC9UeXBvZ3JhcGh5PlxuICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICA8YnIgLz5cbiAgICAgICAgICAgIDxHcmlkIGNvbnRhaW5lciBkaXJlY3Rpb249J2NvbHVtbicganVzdGlmeUNvbnRlbnQ9J3NwYWNlLWV2ZW5seScgYWxpZ25JdGVtcz0nY2VudGVyJyBzcGFjaW5nPXsyfT5cbiAgICAgICAgICAgICAgPEdyaWQgaXRlbT5cbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUucmVxdWVzdGVkXG4gICAgICAgICAgICAgICAgICAgID8gKFxuICAgICAgICAgICAgICAgICAgICAgIDxDb250YWluZXIgbWF4V2lkdGg9J2xnJz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxQYXBlciBzcXVhcmU9e2ZhbHNlfSBlbGV2YXRpb249ezB9IHZhcmlhbnQ9J291dGxpbmVkJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzeD17eyBjb2xvcjogJ2dyZWVuJywgcHk6ICcwLjVyZW0nLCBweDogJzFyZW0nIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8VHlwb2dyYXBoeSB2YXJpYW50PSdoNScgYWxpZ249J2NlbnRlcic+IHt0aGlzLnN0YXRlLnJlcXVlc3RlZH08L1R5cG9ncmFwaHk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1BhcGVyPlxuICAgICAgICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgOiA8PjwvPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICA8R3JpZCBpdGVtPlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUuc2hvd0Zvcm0gJiYgdGhpcy5zdGF0ZS5yZWdpc3Rlcl9lbmFibGVkICE9PSAnTidcbiAgICAgICAgICAgICAgICAgICAgPyA8UmVnaXN0cmF0aW9uRm9ybVxuICAgICAgICAgICAgICAgICAgICAgIHN0b3JlX3V1aWQ9e3RoaXMuc3RhdGUuc3RvcmVfdXVpZH1cbiAgICAgICAgICAgICAgICAgICAgICBzdG9yZV9uYW1lPXt0aGlzLnN0YXRlLnN0b3JlX25hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgcmVnaXN0ZXJfZW5hYmxlZD17dGhpcy5zdGF0ZS5yZWdpc3Rlcl9lbmFibGVkfS8+XG4gICAgICAgICAgICAgICAgICAgIDogPD48Lz5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgPEdyaWQgaXRlbT5cbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAhdGhpcy5zdGF0ZS5zaG93Rm9ybSAmJiAhdGhpcy5zdGF0ZS5zaG93UmVnaXN0ZXJCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgPyA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJjb250YWluZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJsYXJnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17dGhpcy5zdGF0ZS5kaXNhYmxlX2J1dHRvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXF1ZXN0UmVmaWxsKGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlX2J1dHRvbjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgIFJlcXVlc3QgUmVmaWxsXG4gICAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPGJyIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPGJyIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPGJyIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPGJyIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA6IDw+PC8+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUuc2hvd1JlZ2lzdGVyQnV0dG9uXG4gICAgICAgICAgICAgICAgICA/IDxkaXY+XG4gICAgICAgICAgICAgICAgICAgIDxHcmlkIGNvbnRhaW5lciBkaXJlY3Rpb249XCJjb2x1bW5cIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgd2lkdGg9XCIxMDAlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPEdyaWQgaXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxUeXBvZ3JhcGh5IHN4PXt7IHRleHRBbGlnbjogJ2NlbnRlcicsIG1hcmdpbjogJzJyZW0nIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7LyogZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1sZW4gKi99XG4gICAgICAgICAgICAgICAgICAgICAgICAgIE9wdGlvbmFsOiBUbyBtYWtlIHRoaXMgcHJvY2VzcyBlYXNpZXIgbmV4dCB0aW1lLCBwcmVzcyBDb250aW51ZSB0byBiZWdpbiByZWdpc3RlcmluZyBmb3Ige3RoaXMuc3RhdGUuc3RvcmVfbmFtZX0mYXBvcztzIFBhdGllbnQgUG9ydGFsLlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9UeXBvZ3JhcGh5PlxuICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICAgICAgICA8R3JpZCBpdGVtID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNvbnRhaW5lZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJsYXJnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93UmVnaXN0ZXJCdXR0b246IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0Zvcm06IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICBDb250aW51ZVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgICAgIDxiciAvPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA6IDw+PC8+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgIDxHcmlkIGNvbnRhaW5lciBkaXJlY3Rpb249J3JvdycganVzdGlmeUNvbnRlbnQ9J3NwYWNlLWFyb3VuZCcgYWxpZ25JdGVtcz0nY2VudGVyJz5cbiAgICAgICAgICAgICAgPEdyaWQgaXRlbT5cbiAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PVwib3V0bGluZWRcIlxuICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgIGhyZWY9eyAnL20vJyArIHRoaXMuc3RhdGUudGFnIH1cbiAgICAgICAgICAgICAgICA+TW9iaWxlIFNpdGU8L0J1dHRvbj5cbiAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICA8R3JpZCBpdGVtPlxuICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgIGhyZWY9eyd0ZWw6Ly8rMScgKyB0aGlzLnN0YXRlLnBoYXJtYWN5X3Bob25lLnJlcGxhY2UoL1teK1xcZF0vZywgJycpfVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cIm91dGxpbmVkXCJcbiAgICAgICAgICAgICAgICAgIHNpemU9XCJsYXJnZVwiPlxuICAgICAgICAgICAgICAgICAgQ2FsbCBQaGFybWFjeVxuICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICA8aHIvPlxuICAgICAgICAgICAgPEdyaWQgY29udGFpbmVyIGRpcmVjdGlvbj0nY29sdW1uJyBqdXN0aWZ5Q29udGVudD0nZmxleC1lbmQnIGFsaWduSXRlbXM9J2NlbnRlcic+XG4gICAgICAgICAgICAgIDxUeXBvZ3JhcGh5Pnt0aGlzLnN0YXRlLnN0b3JlX25hbWV9PC9UeXBvZ3JhcGh5PlxuICAgICAgICAgICAgICA8VHlwb2dyYXBoeT57dGhpcy5zdGF0ZS5zdG9yZV9hZGRyZXNzfTwvVHlwb2dyYXBoeT5cbiAgICAgICAgICAgICAgPFR5cG9ncmFwaHk+e3RoaXMuc3RhdGUuY2l0eX0sIHt0aGlzLnN0YXRlLnN0YXRlfSB7dGhpcy5zdGF0ZS56aXB9PC9UeXBvZ3JhcGh5PlxuICAgICAgICAgICAgICA8VHlwb2dyYXBoeT57dGhpcy5zdGF0ZS5waGFybWFjeV9waG9uZX08L1R5cG9ncmFwaHk+XG4gICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgPC9HcmlkPlxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdj5cbiAgICAgICAge2JvZHl9XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEhvbWU7XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQ29udGV4dCB9IGZyb20gJy4vY29udGV4dC9jb250ZXh0LmpzJztcbmltcG9ydCB7IEhhc2hSb3V0ZXIsIFJvdXRlcywgUm91dGUgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCBIb21lIGZyb20gJy4vcGFnZXMvSG9tZS5qcyc7XG5pbXBvcnQgeyBUaGVtZVByb3ZpZGVyLCBjcmVhdGVUaGVtZSB9IGZyb20gJ0BtdWkvbWF0ZXJpYWwvc3R5bGVzJztcbmltcG9ydCB7IENzc0Jhc2VsaW5lIH0gZnJvbSAnQG11aS9tYXRlcmlhbCc7XG5cbmNsYXNzIEFwcCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gICNkYXJrTW9kZSA9IG51bGw7XG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICBlcnJvcnM6IG51bGwsXG4gICAgICB0aGVtZTogJ2xpZ2h0JyxcbiAgICB9O1xuICAgIHRoaXMudGhlbWVMaWdodCA9IGNyZWF0ZVRoZW1lKHtcbiAgICAgIHBhbGV0dGU6IHtcbiAgICAgICAgbW9kZTogJ2xpZ2h0JyxcbiAgICAgICAgYmFja2dyb3VuZDoge1xuICAgICAgICAgIGRlZmF1bHQ6ICcjZWZlZmVmJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgdGhpcy50aGVtZURhcmsgPSBjcmVhdGVUaGVtZSh7XG4gICAgICBwYWxldHRlOiB7XG4gICAgICAgIG1vZGU6ICdkYXJrJyxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgdGhpcy51cGRhdGVUaGVtZSA9IHRoaXMudXBkYXRlVGhlbWUuYmluZCh0aGlzKTtcbiAgICB0aGlzLnByZWZlcnNEYXJrTW9kZSA9IHRoaXMucHJlZmVyc0RhcmtNb2RlLmJpbmQodGhpcyk7XG4gICAgdGhpcy5zZXRQYXRpZW50ID0gdGhpcy5zZXRQYXRpZW50LmJpbmQodGhpcyk7XG4gICAgdGhpcy5zZXRVc2VybmFtZSA9IHRoaXMuc2V0VXNlcm5hbWUuYmluZCh0aGlzKTtcbiAgICB0aGlzLmdldFVzZXJuYW1lID0gdGhpcy5nZXRVc2VybmFtZS5iaW5kKHRoaXMpO1xuICAgIHRoaXMuZ2V0UGF0aWVudCA9IHRoaXMuZ2V0UGF0aWVudC5iaW5kKHRoaXMpO1xuICAgIHRoaXMuc2V0UGFzc3dvcmQgPSB0aGlzLnNldFBhc3N3b3JkLmJpbmQodGhpcyk7XG4gICAgdGhpcy5nZXRQYXNzd29yZCA9IHRoaXMuZ2V0UGFzc3dvcmQuYmluZCh0aGlzKTtcbiAgICB0aGlzLnNldFVzZXJVVUlEID0gdGhpcy5zZXRVc2VyVVVJRC5iaW5kKHRoaXMpO1xuICAgIHRoaXMuZ2V0VXNlclVVSUQgPSB0aGlzLmdldFVzZXJVVUlELmJpbmQodGhpcyk7XG4gICAgdGhpcy5zZXRGaXJzdE5hbWUgPSB0aGlzLnNldEZpcnN0TmFtZS5iaW5kKHRoaXMpO1xuICAgIHRoaXMuZ2V0Rmlyc3ROYW1lID0gdGhpcy5nZXRGaXJzdE5hbWUuYmluZCh0aGlzKTtcbiAgICB0aGlzLnNldExhc3ROYW1lID0gdGhpcy5zZXRMYXN0TmFtZS5iaW5kKHRoaXMpO1xuICAgIHRoaXMuZ2V0TGFzdE5hbWUgPSB0aGlzLmdldExhc3ROYW1lLmJpbmQodGhpcyk7XG4gICAgdGhpcy5yZW1vdmVJdGVtID0gdGhpcy5yZW1vdmVJdGVtLmJpbmQodGhpcyk7XG4gICAgdGhpcy5zZXRUb2tlbnMgPSB0aGlzLnNldFRva2Vucy5iaW5kKHRoaXMpO1xuICB9XG5cbiAgYXN5bmMgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgdGhpcy5wcmVmZXJzRGFya01vZGUoKTtcbiAgfVxuXG4gIGFzeW5jIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgIGlmICh0aGlzLiNkYXJrTW9kZSkge1xuICAgICAgdGhpcy4jZGFya01vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgdGhpcy51cGRhdGVUaGVtZSk7XG4gICAgICB0aGlzLiNkYXJrTW9kZSA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHJlZmVyc0RhcmtNb2RlKCkge1xuICAgIHRoaXMudXBkYXRlVGhlbWUoKTtcbiAgICB0aGlzLiNkYXJrTW9kZSA9IHdpbmRvdy5tYXRjaE1lZGlhKCcocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspJyk7XG4gICAgdGhpcy4jZGFya01vZGUuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgdGhpcy51cGRhdGVUaGVtZSk7XG4gIH1cblxuICB1cGRhdGVUaGVtZShlID0gbnVsbCkge1xuICAgIGlmICghZSkge1xuICAgICAgZSA9IHdpbmRvdy5tYXRjaE1lZGlhKCcocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspJyk7XG4gICAgfVxuICAgIGNvbnN0IHRoZW1lID0gZS5tYXRjaGVzID8gJ2RhcmsnIDogJ2xpZ2h0JztcbiAgICB0aGlzLnNldFN0YXRlKHsgdGhlbWUgfSk7XG4gIH1cblxuICBzZXRQYXRpZW50KGRhdGEpIHtcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgncGF0aWVudF91dWlkJywgZGF0YSk7XG4gIH1cblxuICBzZXRVc2VybmFtZShkYXRhKSB7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3VzZXJuYW1lJywgZGF0YSk7XG4gIH1cblxuICBnZXRVc2VybmFtZSgpIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd1c2VybmFtZScpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGdldFBhdGllbnQoKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgncGF0aWVudF91dWlkJyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgc2V0VG9rZW5zKGRhdGEpIHtcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgndG9rZW5zJywgSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xuICAgIHRoaXMuc2V0U3RhdGUoeyBhdXRoVG9rZW5zOiBkYXRhIH0pO1xuICB9XG5cbiAgc2V0UGFzc3dvcmQoZGF0YSkge1xuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdwYXNzd29yZCcsIGRhdGEpO1xuICB9XG5cbiAgZ2V0UGFzc3dvcmQoKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgncGFzc3dvcmQnKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBzZXRVc2VyVVVJRChkYXRhKSB7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3VzZXJfdXVpZCcsIGRhdGEpO1xuICB9XG5cbiAgZ2V0VXNlclVVSUQoKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndXNlcl91dWlkJyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgc2V0Rmlyc3ROYW1lKGRhdGEpIHtcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnZmlyc3RfbmFtZScsIGRhdGEpO1xuICB9XG5cbiAgZ2V0Rmlyc3ROYW1lKCkge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2ZpcnN0X25hbWUnKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBzZXRMYXN0TmFtZShkYXRhKSB7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2xhc3RfbmFtZScsIGRhdGEpO1xuICB9XG5cbiAgZ2V0TGFzdE5hbWUoKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbGFzdF9uYW1lJyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgcmVtb3ZlSXRlbShkYXRhKSB7XG4gICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oZGF0YSk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgdmFscyA9IHtcbiAgICAgIGF1dGhUb2tlbnM6IHRoaXMuc3RhdGUuYXV0aFRva2VucyxcbiAgICAgIHNldFVzZXJuYW1lOiB0aGlzLnNldFVzZXJuYW1lLFxuICAgICAgZ2V0VXNlcm5hbWU6IHRoaXMuZ2V0VXNlcm5hbWUsXG4gICAgICBzZXRQYXRpZW50OiB0aGlzLnNldFBhdGllbnQsXG4gICAgICBnZXRQYXRpZW50OiB0aGlzLmdldFBhdGllbnQsXG4gICAgICBzZXRQYXNzd29yZDogdGhpcy5zZXRQYXNzd29yZCxcbiAgICAgIGdldFBhc3N3b3JkOiB0aGlzLmdldFBhc3N3b3JkLFxuICAgICAgc2V0VXNlclVVSUQ6IHRoaXMuc2V0VXNlclVVSUQsXG4gICAgICBnZXRVc2VyVVVJRDogdGhpcy5nZXRVc2VyVVVJRCxcbiAgICAgIHNldEZpcnN0TmFtZTogdGhpcy5zZXRGaXJzdE5hbWUsXG4gICAgICBnZXRGaXJzdE5hbWU6IHRoaXMuZ2V0Rmlyc3ROYW1lLFxuICAgICAgc2V0TGFzdE5hbWU6IHRoaXMuc2V0TGFzdE5hbWUsXG4gICAgICBnZXRMYXN0TmFtZTogdGhpcy5nZXRMYXN0TmFtZSxcbiAgICAgIHJlbW92ZUl0ZW06IHRoaXMucmVtb3ZlSXRlbSxcbiAgICAgIHNldEF1dGhUb2tlbnM6IHRoaXMuc2V0VG9rZW5zLFxuICAgIH07XG4gICAgcmV0dXJuIChcbiAgICAgIDxDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXt2YWxzfT5cbiAgICAgICAgPFRoZW1lUHJvdmlkZXIgdGhlbWU9e3RoaXMuc3RhdGUudGhlbWUgPT09ICdkYXJrJyA/IHRoaXMudGhlbWVEYXJrIDogdGhpcy50aGVtZUxpZ2h0fT5cbiAgICAgICAgICA8Q3NzQmFzZWxpbmUvPlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8SGFzaFJvdXRlcj5cbiAgICAgICAgICAgICAgPFJvdXRlcz5cbiAgICAgICAgICAgICAgICA8Um91dGUgcGF0aD0nLycgZWxlbWVudD17PEhvbWUgdGhlbWVNb2RlPXt0aGlzLnN0YXRlLnRoZW1lfSAvPn0gLz5cbiAgICAgICAgICAgICAgPC9Sb3V0ZXM+XG4gICAgICAgICAgICA8L0hhc2hSb3V0ZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvVGhlbWVQcm92aWRlcj5cbiAgICAgIDwvQ29udGV4dC5Qcm92aWRlcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEFwcDtcbiIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tL2NsaWVudCc7XG5pbXBvcnQgQXBwIGZyb20gJy4vQXBwJztcblxuY29uc3Qgcm9vdCA9IFJlYWN0RE9NLmNyZWF0ZVJvb3QoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicpKTtcbnJvb3QucmVuZGVyKFxuICAgIDxSZWFjdC5TdHJpY3RNb2RlPlxuICAgICAgPEFwcCAvPlxuICAgIDwvUmVhY3QuU3RyaWN0TW9kZT5cbik7XG4iLCIvLyBUaGUgbW9kdWxlIGNhY2hlXG52YXIgX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fID0ge307XG5cbi8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG5mdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuXHR2YXIgY2FjaGVkTW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXTtcblx0aWYgKGNhY2hlZE1vZHVsZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0cmV0dXJuIGNhY2hlZE1vZHVsZS5leHBvcnRzO1xuXHR9XG5cdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG5cdHZhciBtb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdID0ge1xuXHRcdC8vIG5vIG1vZHVsZS5pZCBuZWVkZWRcblx0XHQvLyBubyBtb2R1bGUubG9hZGVkIG5lZWRlZFxuXHRcdGV4cG9ydHM6IHt9XG5cdH07XG5cblx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG5cdF9fd2VicGFja19tb2R1bGVzX19bbW9kdWxlSWRdKG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG5cdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG5cdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbn1cblxuLy8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbl9fd2VicGFja19yZXF1aXJlX18ubSA9IF9fd2VicGFja19tb2R1bGVzX187XG5cbiIsIi8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSAobW9kdWxlKSA9PiB7XG5cdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuXHRcdCgpID0+IChtb2R1bGVbJ2RlZmF1bHQnXSkgOlxuXHRcdCgpID0+IChtb2R1bGUpO1xuXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCB7IGE6IGdldHRlciB9KTtcblx0cmV0dXJuIGdldHRlcjtcbn07IiwiLy8gZGVmaW5lIGdldHRlciBmdW5jdGlvbnMgZm9yIGhhcm1vbnkgZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5kID0gKGV4cG9ydHMsIGRlZmluaXRpb24pID0+IHtcblx0Zm9yKHZhciBrZXkgaW4gZGVmaW5pdGlvbikge1xuXHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhkZWZpbml0aW9uLCBrZXkpICYmICFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywga2V5KSkge1xuXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGRlZmluaXRpb25ba2V5XSB9KTtcblx0XHR9XG5cdH1cbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5vID0gKG9iaiwgcHJvcCkgPT4gKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApKSIsIi8vIGRlZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uciA9IChleHBvcnRzKSA9PiB7XG5cdGlmKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykge1xuXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pO1xuXHR9XG5cdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG59OyIsIi8vIG5vIGJhc2VVUklcblxuLy8gb2JqZWN0IHRvIHN0b3JlIGxvYWRlZCBhbmQgbG9hZGluZyBjaHVua3Ncbi8vIHVuZGVmaW5lZCA9IGNodW5rIG5vdCBsb2FkZWQsIG51bGwgPSBjaHVuayBwcmVsb2FkZWQvcHJlZmV0Y2hlZFxuLy8gW3Jlc29sdmUsIHJlamVjdCwgUHJvbWlzZV0gPSBjaHVuayBsb2FkaW5nLCAwID0gY2h1bmsgbG9hZGVkXG52YXIgaW5zdGFsbGVkQ2h1bmtzID0ge1xuXHQxNzk6IDBcbn07XG5cbi8vIG5vIGNodW5rIG9uIGRlbWFuZCBsb2FkaW5nXG5cbi8vIG5vIHByZWZldGNoaW5nXG5cbi8vIG5vIHByZWxvYWRlZFxuXG4vLyBubyBITVJcblxuLy8gbm8gSE1SIG1hbmlmZXN0XG5cbl9fd2VicGFja19yZXF1aXJlX18uTy5qID0gKGNodW5rSWQpID0+IChpbnN0YWxsZWRDaHVua3NbY2h1bmtJZF0gPT09IDApO1xuXG4vLyBpbnN0YWxsIGEgSlNPTlAgY2FsbGJhY2sgZm9yIGNodW5rIGxvYWRpbmdcbnZhciB3ZWJwYWNrSnNvbnBDYWxsYmFjayA9IChwYXJlbnRDaHVua0xvYWRpbmdGdW5jdGlvbiwgZGF0YSkgPT4ge1xuXHR2YXIgW2NodW5rSWRzLCBtb3JlTW9kdWxlcywgcnVudGltZV0gPSBkYXRhO1xuXHQvLyBhZGQgXCJtb3JlTW9kdWxlc1wiIHRvIHRoZSBtb2R1bGVzIG9iamVjdCxcblx0Ly8gdGhlbiBmbGFnIGFsbCBcImNodW5rSWRzXCIgYXMgbG9hZGVkIGFuZCBmaXJlIGNhbGxiYWNrXG5cdHZhciBtb2R1bGVJZCwgY2h1bmtJZCwgaSA9IDA7XG5cdGlmKGNodW5rSWRzLnNvbWUoKGlkKSA9PiAoaW5zdGFsbGVkQ2h1bmtzW2lkXSAhPT0gMCkpKSB7XG5cdFx0Zm9yKG1vZHVsZUlkIGluIG1vcmVNb2R1bGVzKSB7XG5cdFx0XHRpZihfX3dlYnBhY2tfcmVxdWlyZV9fLm8obW9yZU1vZHVsZXMsIG1vZHVsZUlkKSkge1xuXHRcdFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLm1bbW9kdWxlSWRdID0gbW9yZU1vZHVsZXNbbW9kdWxlSWRdO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRpZihydW50aW1lKSB2YXIgcmVzdWx0ID0gcnVudGltZShfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblx0fVxuXHRpZihwYXJlbnRDaHVua0xvYWRpbmdGdW5jdGlvbikgcGFyZW50Q2h1bmtMb2FkaW5nRnVuY3Rpb24oZGF0YSk7XG5cdGZvcig7aSA8IGNodW5rSWRzLmxlbmd0aDsgaSsrKSB7XG5cdFx0Y2h1bmtJZCA9IGNodW5rSWRzW2ldO1xuXHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhpbnN0YWxsZWRDaHVua3MsIGNodW5rSWQpICYmIGluc3RhbGxlZENodW5rc1tjaHVua0lkXSkge1xuXHRcdFx0aW5zdGFsbGVkQ2h1bmtzW2NodW5rSWRdWzBdKCk7XG5cdFx0fVxuXHRcdGluc3RhbGxlZENodW5rc1tjaHVua0lkXSA9IDA7XG5cdH1cblx0cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18uTyhyZXN1bHQpO1xufVxuXG52YXIgY2h1bmtMb2FkaW5nR2xvYmFsID0gc2VsZltcIndlYnBhY2tDaHVua3Nyc3JmbF9yZWFjdFwiXSA9IHNlbGZbXCJ3ZWJwYWNrQ2h1bmtzcnNyZmxfcmVhY3RcIl0gfHwgW107XG5jaHVua0xvYWRpbmdHbG9iYWwuZm9yRWFjaCh3ZWJwYWNrSnNvbnBDYWxsYmFjay5iaW5kKG51bGwsIDApKTtcbmNodW5rTG9hZGluZ0dsb2JhbC5wdXNoID0gd2VicGFja0pzb25wQ2FsbGJhY2suYmluZChudWxsLCBjaHVua0xvYWRpbmdHbG9iYWwucHVzaC5iaW5kKGNodW5rTG9hZGluZ0dsb2JhbCkpOyIsIi8vIHN0YXJ0dXBcbi8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0c1xuLy8gVGhpcyBlbnRyeSBtb2R1bGUgZGVwZW5kcyBvbiBvdGhlciBsb2FkZWQgY2h1bmtzIGFuZCBleGVjdXRpb24gbmVlZCB0byBiZSBkZWxheWVkXG52YXIgX193ZWJwYWNrX2V4cG9ydHNfXyA9IF9fd2VicGFja19yZXF1aXJlX18uTyh1bmRlZmluZWQsIFs0LDczMiw3NTYsNjMsMjkxLDkwNywzNzMsMTA5LDM5NCwxNDNdLCAoKSA9PiAoX193ZWJwYWNrX3JlcXVpcmVfXygyMjcpKSlcbl9fd2VicGFja19leHBvcnRzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fLk8oX193ZWJwYWNrX2V4cG9ydHNfXyk7XG4iXSwibmFtZXMiOlsiZGVmZXJyZWQiLCJsZWFmUHJvdG90eXBlcyIsImdldFByb3RvIiwiQ29udGV4dCIsImNyZWF0ZUNvbnRleHQiLCJfUmVhY3QkQ29tcG9uZW50IiwiX2luaGVyaXRzIiwiTG9hZGluZyIsIl9zdXBlciIsInByb3BzIiwiX2NsYXNzQ2FsbENoZWNrIiwiY2FsbCIsImtleSIsInZhbHVlIiwiYm9keSIsIlJlYWN0IiwiQ29udGFpbmVyIiwibWF4V2lkdGgiLCJQYXBlciIsInN0eWxlIiwicGFkZGluZyIsIm1hcmdpblRvcCIsIkdyaWQiLCJjb250YWluZXIiLCJpdGVtIiwieHMiLCJCb3giLCJkaXNwbGF5IiwiYWxpZ25JdGVtcyIsImp1c3RpZnlDb250ZW50IiwicGFkZGluZ1RvcCIsInBhZGRpbmdCb3R0b20iLCJUeXBvZ3JhcGh5IiwidmFyaWFudCIsIkNpcmN1bGFyUHJvZ3Jlc3MiLCJFcnJvciIsImRpcmVjdGlvbiIsInNyYyIsIm1lc3NhZ2UiLCJyZXR1cm5UbyIsIkJ1dHRvbiIsIndpZHRoIiwib25DbGljayIsImUiLCJwcmV2ZW50RGVmYXVsdCIsInN0b3BQcm9wYWdhdGlvbiIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsInN0cmluZyIsImlzUmVxdWlyZWQiLCJmdW5jIiwib3B0cyIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwiY29udGV4dCIsInJlc3BvbnNlVHlwZSIsInVybCIsIndpbmRvdyIsImxvY2F0aW9uIiwiaG9zdG5hbWUiLCJoZWFkZXJzIiwiYXhpb3MiLCJtZXRob2QiLCJ0b0xvd2VyQ2FzZSIsImNvbmNhdCIsImVuZHBvaW50IiwicGFyYW1zIiwiZGF0YSIsInRoZW4iLCJlcnIiLCJlcnJvciIsInJlc3BvbnNlIiwiSlNPTiIsInN0cmluZ2lmeSIsImluY2x1ZGVzIiwic3Vic3RyaW5nIiwibGVuZ3RoIiwiUmVnaXN0cmF0aW9uRm9ybSIsIl90aGlzIiwic3RhdGUiLCJlcnJvcnMiLCJsb2FkZWQiLCJ2aWV3Iiwic3RvcmVfbmFtZSIsInN0b3JlX3V1aWQiLCJwYXRpZW50X3V1aWQiLCJuZXdfcGF0aWVudF91dWlkIiwidXNlcl91dWlkIiwidXNlcm5hbWUiLCJwYXNzd29yZCIsImZpcnN0X25hbWUiLCJsYXN0X25hbWUiLCJkaXNhYmxlZCIsImZpZWxkcyIsImZpZWxkczIiLCJ0aXRsZSIsInR5cGUiLCJ0eXBlbmFtZSIsInJlcXVpcmVkIiwib25DaGFuZ2UiLCJjb3B5IiwiX29iamVjdFNwcmVhZCIsInRlc3QiLCJ0cmltIiwiZmVlZGJhY2siLCJzZXRTdGF0ZSIsImZ1bGx3aWR0aCIsImVtYWlsIiwiY29uZmlybSIsImNvbmZpcm1hdGlvbiIsImNsZWFyRmllbGRzIiwiYmluZCIsIl9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQiLCJjaGFuZ2VWaWV3IiwicmVnaXN0ZXJVc2VyIiwiY2xlYXJTdGF0ZSIsInRoaXMiLCJ1bmRlZmluZWQiLCJyZW1vdmVJdGVtIiwiX3RoaXMyIiwib3B0aW9ucyIsImdldFBhdGllbnQiLCJhcGlDYWxsIiwicmVzcCIsInIiLCJwYXJzZSIsInVzZXIiLCJwYXRpZW50X3VzZXIiLCJzZXRVc2VyVVVJRCIsInNldFBhc3N3b3JkIiwic2V0VXNlcm5hbWUiLCJzZXRQYXRpZW50Iiwic2V0Rmlyc3ROYW1lIiwic2V0TGFzdE5hbWUiLCJjb25zb2xlIiwibG9nIiwiZ2V0RXJyb3JNZXNzYWdlIiwiX3RoaXMzIiwiZ2V0VXNlcm5hbWUiLCJnZXRQYXNzd29yZCIsImdldFVzZXJVVUlEIiwiY29kZSIsImdldEZpcnN0TmFtZSIsImdldExhc3ROYW1lIiwic2V0QXV0aFRva2VucyIsImhyZWYiLCJfdGhpczQiLCJyZWdpc3RlclN1YnRpdGxlIiwicmVnaXN0ZXJfZW5hYmxlZCIsInN4IiwiY29sb3IiLCJpZCIsInNwYWNpbmciLCJUZXh0RmllbGQiLCJmdWxsV2lkdGgiLCJzaXplIiwibGFiZWwiLCJoZWxwZXJUZXh0IiwidGFyZ2V0IiwiYmdjb2xvciIsImNsYXNzTmFtZSIsInN1Ym1pdCIsImZpZWxkIiwiY29uZmlybUNvZGUiLCJfZGVmaW5lUHJvcGVydHkiLCJIb21lIiwicmVkaXJlY3QiLCJ0YWciLCJnZXRTdG9yZU51bWJlciIsInJ4TnVtYmVyIiwiZ2V0UnhOdW1iZXIiLCJoYXNoIiwiZ2V0SGFzaCIsImxvZ28iLCJzdG9yZV9hZGRyZXNzIiwic3RvcmVfYWRkcmVzc190d28iLCJjaXR5IiwiemlwIiwicGhhcm1hY3lfcGhvbmUiLCJyZXF1ZXN0ZWQiLCJkaXNhYmxlX2J1dHRvbiIsInNob3dGb3JtIiwic2hvd1JlZ2lzdGVyQnV0dG9uIiwicmVxdWVzdFJlZmlsbCIsImdldEZ1bGxBdXRoIiwiY29uc3RydWN0WE1MRG9jdW1lbnQiLCJlbnRpdHkiLCJsb2FkIiwic2VhcmNoIiwicmVwbGFjZSIsIl9sZW4iLCJhcmd1bWVudHMiLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiX3N0ZXAiLCJkb2MiLCJlbnRpdHlOYW1lIiwiZXh0cmEiLCJzbGljZSIsIm5vZGUiLCJjcmVhdGVFbGVtZW50IiwiX2l0ZXJhdG9yIiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJzIiwibiIsImRvbmUiLCJhcmciLCJhcHBlbmRDaGlsZCIsImNyZWF0ZVRleHROb2RlIiwiZiIsImxhc3RuYW1lIiwiZmlyc3RuYW1lIiwicGhvbmUiLCJkb2N1bWVudCIsImltcGxlbWVudGF0aW9uIiwiY3JlYXRlRG9jdW1lbnQiLCJyb290IiwiZG9jdW1lbnRFbGVtZW50IiwiRGF0ZSIsInRvSVNPU3RyaW5nIiwiZ2V0VGltZSIsInRvU3RyaW5nIiwicnhfbnVtYmVyIiwiYXV0aCIsIm5hbWUiLCJhZGRyZXNzMSIsImFkZHJlc3MyIiwic3JzcmZsX3JlZ2lzdGVyIiwidXNlcnMiLCJfZXJyJHJlc3BvbnNlIiwicmVmaWxsIiwiWE1MU2VyaWFsaXplciIsInNlcmlhbGl6ZVRvU3RyaW5nIiwic3RvcmV0YWciLCJBcHBCYXIiLCJwb3NpdGlvbiIsIlRvb2xiYXIiLCJhbHQiLCJtYXJnaW4iLCJib3JkZXJSYWRpdXMiLCJoZWlnaHQiLCJzcXVhcmUiLCJlbGV2YXRpb24iLCJweSIsInB4IiwiYWxpZ24iLCJ0ZXh0QWxpZ24iLCJwcmVzY3JpcHRpb24iLCJzZXRSZWZpbGxSZXNwb25zZSIsInRoZW1lTW9kZSIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJ0IiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJvIiwiZGVmaW5lUHJvcGVydHkiLCJpIiwiU3ltYm9sIiwiYSIsIml0ZXJhdG9yIiwiYyIsImFzeW5jSXRlcmF0b3IiLCJ1IiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJ3cmFwIiwiR2VuZXJhdG9yIiwiY3JlYXRlIiwibWFrZUludm9rZU1ldGhvZCIsInRyeUNhdGNoIiwiaCIsImwiLCJ5IiwiR2VuZXJhdG9yRnVuY3Rpb24iLCJHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSIsInAiLCJkIiwiZ2V0UHJvdG90eXBlT2YiLCJ2IiwidmFsdWVzIiwiZyIsImRlZmluZUl0ZXJhdG9yTWV0aG9kcyIsImZvckVhY2giLCJfaW52b2tlIiwiQXN5bmNJdGVyYXRvciIsImludm9rZSIsIl90eXBlb2YiLCJfX2F3YWl0IiwiY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmciLCJkZWxlZ2F0ZSIsIm1heWJlSW52b2tlRGVsZWdhdGUiLCJzZW50IiwiX3NlbnQiLCJkaXNwYXRjaEV4Y2VwdGlvbiIsImFicnVwdCIsIlR5cGVFcnJvciIsInJlc3VsdE5hbWUiLCJuZXh0IiwibmV4dExvYyIsInB1c2hUcnlFbnRyeSIsInRyeUxvYyIsImNhdGNoTG9jIiwiZmluYWxseUxvYyIsImFmdGVyTG9jIiwidHJ5RW50cmllcyIsInB1c2giLCJyZXNldFRyeUVudHJ5IiwiY29tcGxldGlvbiIsInJlc2V0IiwiaXNOYU4iLCJkaXNwbGF5TmFtZSIsImlzR2VuZXJhdG9yRnVuY3Rpb24iLCJjb25zdHJ1Y3RvciIsIm1hcmsiLCJzZXRQcm90b3R5cGVPZiIsIl9fcHJvdG9fXyIsImF3cmFwIiwiYXN5bmMiLCJrZXlzIiwicmV2ZXJzZSIsInBvcCIsInByZXYiLCJjaGFyQXQiLCJzdG9wIiwicnZhbCIsImhhbmRsZSIsImNvbXBsZXRlIiwiZmluaXNoIiwiZGVsZWdhdGVZaWVsZCIsImFzeW5jR2VuZXJhdG9yU3RlcCIsImdlbiIsIl9uZXh0IiwiX3Rocm93IiwiaW5mbyIsIl9hc3luY1RvR2VuZXJhdG9yIiwiZm4iLCJzZWxmIiwiYXBwbHkiLCJfZGVmaW5lUHJvcGVydGllcyIsImRlc2NyaXB0b3IiLCJfdG9Qcm9wZXJ0eUtleSIsInRvUHJpbWl0aXZlIiwiU3RyaW5nIiwiX3RvUHJpbWl0aXZlIiwiX3NldFByb3RvdHlwZU9mIiwiUmVmZXJlbmNlRXJyb3IiLCJfZ2V0UHJvdG90eXBlT2YiLCJfY2xhc3NQcml2YXRlRmllbGRTZXQiLCJyZWNlaXZlciIsInByaXZhdGVNYXAiLCJzZXQiLCJfY2xhc3NBcHBseURlc2NyaXB0b3JTZXQiLCJfY2xhc3NFeHRyYWN0RmllbGREZXNjcmlwdG9yIiwiX2NsYXNzUHJpdmF0ZUZpZWxkR2V0IiwiZ2V0IiwiX2NsYXNzQXBwbHlEZXNjcmlwdG9yR2V0IiwiYWN0aW9uIiwiaGFzIiwiX2RhcmtNb2RlIiwiV2Vha01hcCIsInN1YkNsYXNzIiwic3VwZXJDbGFzcyIsIkFwcCIsIkNvbnN0cnVjdG9yIiwicHJvdG9Qcm9wcyIsIl9jb21wb25lbnRXaWxsVW5tb3VudCIsIl9jb21wb25lbnREaWRNb3VudCIsIkRlcml2ZWQiLCJoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiUmVmbGVjdCIsImNvbnN0cnVjdCIsInNoYW0iLCJQcm94eSIsIkJvb2xlYW4iLCJ2YWx1ZU9mIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsInJlc3VsdCIsIlN1cGVyIiwiTmV3VGFyZ2V0IiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4iLCJvYmoiLCJpbnN0YW5jZSIsInByaXZhdGVDb2xsZWN0aW9uIiwiX2NoZWNrUHJpdmF0ZVJlZGVjbGFyYXRpb24iLCJ0aGVtZSIsInRoZW1lTGlnaHQiLCJjcmVhdGVUaGVtZSIsInBhbGV0dGUiLCJtb2RlIiwiYmFja2dyb3VuZCIsImRlZmF1bHQiLCJ0aGVtZURhcmsiLCJ1cGRhdGVUaGVtZSIsInByZWZlcnNEYXJrTW9kZSIsInNldFRva2VucyIsIl9jYWxsZWUiLCJfY29udGV4dCIsIl9jYWxsZWUyIiwiX2NvbnRleHQyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIm1hdGNoTWVkaWEiLCJhZGRFdmVudExpc3RlbmVyIiwibWF0Y2hlcyIsImxvY2FsU3RvcmFnZSIsInNldEl0ZW0iLCJnZXRJdGVtIiwiYXV0aFRva2VucyIsInZhbHMiLCJQcm92aWRlciIsIlRoZW1lUHJvdmlkZXIiLCJDc3NCYXNlbGluZSIsIkhhc2hSb3V0ZXIiLCJSb3V0ZXMiLCJSb3V0ZSIsInBhdGgiLCJlbGVtZW50IiwiUmVhY3RET00iLCJnZXRFbGVtZW50QnlJZCIsInJlbmRlciIsIl9fd2VicGFja19tb2R1bGVfY2FjaGVfXyIsIl9fd2VicGFja19yZXF1aXJlX18iLCJtb2R1bGVJZCIsImNhY2hlZE1vZHVsZSIsImV4cG9ydHMiLCJtb2R1bGUiLCJfX3dlYnBhY2tfbW9kdWxlc19fIiwibSIsIk8iLCJjaHVua0lkcyIsInByaW9yaXR5Iiwibm90RnVsZmlsbGVkIiwiSW5maW5pdHkiLCJmdWxmaWxsZWQiLCJqIiwiZXZlcnkiLCJzcGxpY2UiLCJnZXR0ZXIiLCJfX2VzTW9kdWxlIiwibnMiLCJkZWYiLCJjdXJyZW50IiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5TmFtZXMiLCJkZWZpbml0aW9uIiwicHJvcCIsImluc3RhbGxlZENodW5rcyIsImNodW5rSWQiLCJ3ZWJwYWNrSnNvbnBDYWxsYmFjayIsInBhcmVudENodW5rTG9hZGluZ0Z1bmN0aW9uIiwibW9yZU1vZHVsZXMiLCJydW50aW1lIiwic29tZSIsImNodW5rTG9hZGluZ0dsb2JhbCIsIl9fd2VicGFja19leHBvcnRzX18iXSwic291cmNlUm9vdCI6IiJ9