/*! For license information please see main.fa8eacc5.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),m=r(5725),d=r(3584),h=r(2658),p=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;if(this.getFullAuth()){var t={tag:this.getStoreNumber(),rx_number:this.getRxNumber(),auth:this.getHash()};S({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:Z(a),loaded:!0})}else e.setState({errors:"Something unexpected happened",loaded:!0})}))}else this.setState({loaded:!0,view:"public"})}},{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());S({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:Z(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="public"===this.state.view?n.createElement(m.ZP,null,n.createElement(L.Z,{position:"static"},n.createElement(W.Z,null,n.createElement(h.Z,null,"RxReady / Smartphone Refill Request Service"))),n.createElement(c.Z,{maxWidth:!1},n.createElement(f.Z,null,n.createElement(m.ZP,{p:2},n.createElement(h.Z,{variant:"h5"},"Refill Request Services"),"This service is only available for customers of  ",n.createElement("a",{href:"https://www.srspharmacy.com/",rel:"noreferrer",target:"_blank"},"SRS Pharmacy Systems, Inc.")," pharmacy management system."),n.createElement(m.ZP,{container:!0},n.createElement(m.ZP,{item:!0,p:2},n.createElement(h.Z,{variant:"h6"},"How it Works."),"When your pharmacy has the RxReady / Smartphone Refills feature enabled the system will send SMS text messages.",n.createElement("ul",null,n.createElement("li",null,"Prescriptions are ready to be picked up."),n.createElement("li",null,"A refill is close to being due."),n.createElement("li",null,"A current prescription is out of refills and the prescriber needs to be contacted."))),n.createElement(m.ZP,{item:!0,p:2},n.createElement(h.Z,{variant:"h6"},"Pharmacy Benefits"),"Pharmacies that sign up for this feature see immediate benefits:",n.createElement("ul",null,n.createElement("li",null,"Realtime patient engagement"),n.createElement("li",null,"Fewer phone calls"),n.createElement("li",null,"More automated processing of future fills"))),n.createElement(m.ZP,{item:!0,p:2},n.createElement(h.Z,{variant:"h6"},"Questions"),"If you have any questions about this feature please contact ",n.createElement("a",{href:"https://www.srspharmacy.com/#contact"},"SRS Pharmacy Systems, Inc.")))))):n.createElement(m.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(h.Z,null,this.state.store_name))),n.createElement(m.ZP,{container:!0,justifyContent:"center"},n.createElement(m.ZP,{item:!0},n.createElement(d.Z,null,n.createElement(h.Z,{variant:"h6"},"Refill Request for Rx# ",this.state.rxNumber)))),n.createElement("br",null),n.createElement(m.ZP,{container:!0,direction:"column",justifyContent:"space-evenly",alignItems:"center",spacing:2},n.createElement(m.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(h.Z,{variant:"h5",align:"center"}," ",this.state.requested))):n.createElement(n.Fragment,null)),n.createElement(m.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(m.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(m.ZP,{container:!0,direction:"column",alignItems:"center",width:"100%"},n.createElement(m.ZP,{item:!0},n.createElement(h.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(m.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(m.ZP,{container:!0,direction:"row",justifyContent:"space-around",alignItems:"center"},n.createElement(m.ZP,{item:!0},n.createElement(E.Z,{variant:"outlined",size:"large",href:"/m/"+this.state.tag},"Mobile Site")),n.createElement(m.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(m.ZP,{container:!0,direction:"column",justifyContent:"flex-end",alignItems:"center"},n.createElement(h.Z,null,this.state.store_name),n.createElement(h.Z,null,this.state.store_address),n.createElement(h.Z,null,this.state.city,", ",this.state.state," ",this.state.zip),n.createElement(h.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:S(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 m="suspendedStart",d="suspendedYield",h="executing",p="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 S(t,r,n){var a=m;return function(i,o){if(a===h)throw new Error("Generator is already running");if(a===p){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=Z(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===m)throw a=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);a=h;var u=f(t,r,n);if("normal"===u.type){if(a=n.done?p:d,u.arg===g)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(a=p,n.method="throw",n.arg=u.arg)}}}function Z(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,Z(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 O(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 C(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function j(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(O,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),C(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;C(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}),m}(n.Component);a.createRoot(document.getElementById("container")).render(n.createElement(n.StrictMode,null,n.createElement(he,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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LEtBQU84SSxFQUFxQnRWLEtBQUssS0FBTTJWLEVBQW1CbkosS0FBS3hNLEtBQUsyVixRQzdDdkYsSUFBSUMsRUFBc0JqQyxFQUFvQk8sT0FBRTVULEVBQVcsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxNQUFNLElBQU9xVCxFQUFvQixPQUM5SGlDLEVBQXNCakMsRUFBb0JPLEVBQUUwQiIsInNvdXJjZXMiOlsid2VicGFjazovL3Nyc3JmbC1yZWFjdC93ZWJwYWNrL3J1bnRpbWUvY2h1bmsgbG9hZGVkIiwid2VicGFjazovL3Nyc3JmbC1yZWFjdC93ZWJwYWNrL3J1bnRpbWUvY3JlYXRlIGZha2UgbmFtZXNwYWNlIG9iamVjdCIsIndlYnBhY2s6Ly9zcnNyZmwtcmVhY3QvLi9zcmMvY29udGV4dC9jb250ZXh0LmpzIiwid2VicGFjazovL3Nyc3JmbC1yZWFjdC8uLi8uLi9saWIvbG9hZGluZy5qcyIsIndlYnBhY2s6Ly9zcnNyZmwtcmVhY3QvLi4vLi4vbGliL2Vycm9yLmpzIiwid2VicGFjazovL3Nyc3JmbC1yZWFjdC8uLi8uLi9pbWcvTG9hZGluZ0NhcHN1bGUucG5nIiwid2VicGFjazovL3Nyc3JmbC1yZWFjdC8uLi8uLi9saWIvYXBpQ2FsbC5qcyIsIndlYnBhY2s6Ly9zcnNyZmwtcmVhY3QvLi4vLi4vbGliL2dldEVycm9yTWVzc2FnZS5qcyIsIndlYnBhY2s6Ly9zcnNyZmwtcmVhY3QvLi9zcmMvY29tcG9uZW50cy9SZWdpc3RyYXRpb25Gb3JtLmpzIiwid2VicGFjazovL3Nyc3JmbC1yZWFjdC8uL3NyYy9wYWdlcy9Ib21lLmpzIiwid2VicGFjazovL3Nyc3JmbC1yZWFjdC8uL3NyYy9BcHAuanMiLCJ3ZWJwYWNrOi8vc3JzcmZsLXJlYWN0Ly4vc3JjL2luZGV4LmpzIiwid2VicGFjazovL3Nyc3JmbC1yZWFjdC93ZWJwYWNrL2Jvb3RzdHJhcCIsIndlYnBhY2s6Ly9zcnNyZmwtcmVhY3Qvd2VicGFjay9ydW50aW1lL2NvbXBhdCBnZXQgZGVmYXVsdCBleHBvcnQiLCJ3ZWJwYWNrOi8vc3JzcmZsLXJlYWN0L3dlYnBhY2svcnVudGltZS9kZWZpbmUgcHJvcGVydHkgZ2V0dGVycyIsIndlYnBhY2s6Ly9zcnNyZmwtcmVhY3Qvd2VicGFjay9ydW50aW1lL2hhc093blByb3BlcnR5IHNob3J0aGFuZCIsIndlYnBhY2s6Ly9zcnNyZmwtcmVhY3Qvd2VicGFjay9ydW50aW1lL21ha2UgbmFtZXNwYWNlIG9iamVjdCIsIndlYnBhY2s6Ly9zcnNyZmwtcmVhY3Qvd2VicGFjay9ydW50aW1lL2pzb25wIGNodW5rIGxvYWRpbmciLCJ3ZWJwYWNrOi8vc3JzcmZsLXJlYWN0L3dlYnBhY2svc3RhcnR1cCJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgZGVmZXJyZWQgPSBbXTtcbl9fd2VicGFja19yZXF1aXJlX18uTyA9IChyZXN1bHQsIGNodW5rSWRzLCBmbiwgcHJpb3JpdHkpID0+IHtcblx0aWYoY2h1bmtJZHMpIHtcblx0XHRwcmlvcml0eSA9IHByaW9yaXR5IHx8IDA7XG5cdFx0Zm9yKHZhciBpID0gZGVmZXJyZWQubGVuZ3RoOyBpID4gMCAmJiBkZWZlcnJlZFtpIC0gMV1bMl0gPiBwcmlvcml0eTsgaS0tKSBkZWZlcnJlZFtpXSA9IGRlZmVycmVkW2kgLSAxXTtcblx0XHRkZWZlcnJlZFtpXSA9IFtjaHVua0lkcywgZm4sIHByaW9yaXR5XTtcblx0XHRyZXR1cm47XG5cdH1cblx0dmFyIG5vdEZ1bGZpbGxlZCA9IEluZmluaXR5O1xuXHRmb3IgKHZhciBpID0gMDsgaSA8IGRlZmVycmVkLmxlbmd0aDsgaSsrKSB7XG5cdFx0dmFyIFtjaHVua0lkcywgZm4sIHByaW9yaXR5XSA9IGRlZmVycmVkW2ldO1xuXHRcdHZhciBmdWxmaWxsZWQgPSB0cnVlO1xuXHRcdGZvciAodmFyIGogPSAwOyBqIDwgY2h1bmtJZHMubGVuZ3RoOyBqKyspIHtcblx0XHRcdGlmICgocHJpb3JpdHkgJiAxID09PSAwIHx8IG5vdEZ1bGZpbGxlZCA+PSBwcmlvcml0eSkgJiYgT2JqZWN0LmtleXMoX193ZWJwYWNrX3JlcXVpcmVfXy5PKS5ldmVyeSgoa2V5KSA9PiAoX193ZWJwYWNrX3JlcXVpcmVfXy5PW2tleV0oY2h1bmtJZHNbal0pKSkpIHtcblx0XHRcdFx0Y2h1bmtJZHMuc3BsaWNlKGotLSwgMSk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRmdWxmaWxsZWQgPSBmYWxzZTtcblx0XHRcdFx0aWYocHJpb3JpdHkgPCBub3RGdWxmaWxsZWQpIG5vdEZ1bGZpbGxlZCA9IHByaW9yaXR5O1xuXHRcdFx0fVxuXHRcdH1cblx0XHRpZihmdWxmaWxsZWQpIHtcblx0XHRcdGRlZmVycmVkLnNwbGljZShpLS0sIDEpXG5cdFx0XHR2YXIgciA9IGZuKCk7XG5cdFx0XHRpZiAociAhPT0gdW5kZWZpbmVkKSByZXN1bHQgPSByO1xuXHRcdH1cblx0fVxuXHRyZXR1cm4gcmVzdWx0O1xufTsiLCJ2YXIgZ2V0UHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YgPyAob2JqKSA9PiAoT2JqZWN0LmdldFByb3RvdHlwZU9mKG9iaikpIDogKG9iaikgPT4gKG9iai5fX3Byb3RvX18pO1xudmFyIGxlYWZQcm90b3R5cGVzO1xuLy8gY3JlYXRlIGEgZmFrZSBuYW1lc3BhY2Ugb2JqZWN0XG4vLyBtb2RlICYgMTogdmFsdWUgaXMgYSBtb2R1bGUgaWQsIHJlcXVpcmUgaXRcbi8vIG1vZGUgJiAyOiBtZXJnZSBhbGwgcHJvcGVydGllcyBvZiB2YWx1ZSBpbnRvIHRoZSBuc1xuLy8gbW9kZSAmIDQ6IHJldHVybiB2YWx1ZSB3aGVuIGFscmVhZHkgbnMgb2JqZWN0XG4vLyBtb2RlICYgMTY6IHJldHVybiB2YWx1ZSB3aGVuIGl0J3MgUHJvbWlzZS1saWtlXG4vLyBtb2RlICYgOHwxOiBiZWhhdmUgbGlrZSByZXF1aXJlXG5fX3dlYnBhY2tfcmVxdWlyZV9fLnQgPSBmdW5jdGlvbih2YWx1ZSwgbW9kZSkge1xuXHRpZihtb2RlICYgMSkgdmFsdWUgPSB0aGlzKHZhbHVlKTtcblx0aWYobW9kZSAmIDgpIHJldHVybiB2YWx1ZTtcblx0aWYodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSkge1xuXHRcdGlmKChtb2RlICYgNCkgJiYgdmFsdWUuX19lc01vZHVsZSkgcmV0dXJuIHZhbHVlO1xuXHRcdGlmKChtb2RlICYgMTYpICYmIHR5cGVvZiB2YWx1ZS50aGVuID09PSAnZnVuY3Rpb24nKSByZXR1cm4gdmFsdWU7XG5cdH1cblx0dmFyIG5zID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcblx0X193ZWJwYWNrX3JlcXVpcmVfXy5yKG5zKTtcblx0dmFyIGRlZiA9IHt9O1xuXHRsZWFmUHJvdG90eXBlcyA9IGxlYWZQcm90b3R5cGVzIHx8IFtudWxsLCBnZXRQcm90byh7fSksIGdldFByb3RvKFtdKSwgZ2V0UHJvdG8oZ2V0UHJvdG8pXTtcblx0Zm9yKHZhciBjdXJyZW50ID0gbW9kZSAmIDIgJiYgdmFsdWU7IHR5cGVvZiBjdXJyZW50ID09ICdvYmplY3QnICYmICF+bGVhZlByb3RvdHlwZXMuaW5kZXhPZihjdXJyZW50KTsgY3VycmVudCA9IGdldFByb3RvKGN1cnJlbnQpKSB7XG5cdFx0T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoY3VycmVudCkuZm9yRWFjaCgoa2V5KSA9PiAoZGVmW2tleV0gPSAoKSA9PiAodmFsdWVba2V5XSkpKTtcblx0fVxuXHRkZWZbJ2RlZmF1bHQnXSA9ICgpID0+ICh2YWx1ZSk7XG5cdF9fd2VicGFja19yZXF1aXJlX18uZChucywgZGVmKTtcblx0cmV0dXJuIG5zO1xufTsiLCJpbXBvcnQgeyBjcmVhdGVDb250ZXh0LCB1c2VDb250ZXh0IH0gZnJvbSAncmVhY3QnO1xuXG5leHBvcnQgY29uc3QgQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQoKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHVzZUF1dGgoKSB7XG4gIHJldHVybiB1c2VDb250ZXh0KENvbnRleHQpO1xufVxuIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7XG4gIEJveCxcbiAgQ2lyY3VsYXJQcm9ncmVzcyxcbiAgR3JpZCxcbiAgUGFwZXIsXG4gIFR5cG9ncmFwaHksXG4gIENvbnRhaW5lcixcbn0gZnJvbSAnQG11aS9tYXRlcmlhbCc7XG5jbGFzcyBMb2FkaW5nIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgYm9keSA9IChcbiAgICAgIDxDb250YWluZXIgbWF4V2lkdGg9J2xnJz5cbiAgICAgICAgPFBhcGVyXG4gICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgIHBhZGRpbmc6ICc1cHgnLFxuICAgICAgICAgICAgbWFyZ2luVG9wOiAnMTBweCcsXG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIDxHcmlkIGNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxHcmlkIGl0ZW0geHM9ezEyfT5cbiAgICAgICAgICAgICAgPEJveFxuICAgICAgICAgICAgICAgIGRpc3BsYXk9XCJmbGV4XCJcbiAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgIHBhZGRpbmdUb3A6IDEwMCxcbiAgICAgICAgICAgICAgICAgIHBhZGRpbmdCb3R0b206IDEwLFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8VHlwb2dyYXBoeSB2YXJpYW50PSdoMyc+TG9hZGluZy4uLjwvVHlwb2dyYXBoeT5cbiAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICA8R3JpZCBpdGVtIHhzPXsxMn0+XG4gICAgICAgICAgICAgIDxCb3hcbiAgICAgICAgICAgICAgICBkaXNwbGF5PVwiZmxleFwiXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICBwYWRkaW5nQm90dG9tOiAxMCxcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENpcmN1bGFyUHJvZ3Jlc3MgLz5cbiAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICA8R3JpZCBpdGVtIHhzPXsxMn0+XG4gICAgICAgICAgICAgIDxCb3hcbiAgICAgICAgICAgICAgICBkaXNwbGF5PVwiZmxleFwiXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICBwYWRkaW5nQm90dG9tOiAxMDAsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxUeXBvZ3JhcGh5IHZhcmlhbnQ9J3N1YnRpdGxlMSc+VGhpcyBtYXkgdGFrZSBhIG1vbWVudC48L1R5cG9ncmFwaHk+XG4gICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgPC9QYXBlcj5cbiAgICAgIDwvQ29udGFpbmVyPlxuICAgICk7XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIHtib2R5fVxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBMb2FkaW5nO1xuIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFByb3BUeXBlcyB9IGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgR3JpZCwgVHlwb2dyYXBoeSwgQnV0dG9uLCBDb250YWluZXIgfSBmcm9tICdAbXVpL21hdGVyaWFsJztcbmltcG9ydCBMb2FkaW5nQ2Fwc3VsZUltZyBmcm9tICcuLi9pbWcvTG9hZGluZ0NhcHN1bGUucG5nJztcblxuY29uc3QgRXJyb3IgPSAocHJvcHMpID0+IHtcbiAgcmV0dXJuIChcbiAgICA8Q29udGFpbmVyIG1heFdpZHRoPSdsZyc+XG4gICAgICA8R3JpZCBjb250YWluZXIgZGlyZWN0aW9uPSdjb2x1bW4nIGp1c3RpZnlDb250ZW50PSdjZW50ZXInIGFsaWduSXRlbXM9J2NlbnRlcic+XG4gICAgICAgIDxHcmlkIGl0ZW0+XG4gICAgICAgICAgPGltZyBzcmM9e0xvYWRpbmdDYXBzdWxlSW1nfSAvPlxuICAgICAgICA8L0dyaWQ+XG4gICAgICAgIDxHcmlkIGl0ZW0+XG4gICAgICAgICAgeyBwcm9wcz8uaXNNZXNzYWdlID9cbiAgICAgICAgICAgIDxUeXBvZ3JhcGh5IHZhcmlhbnQ9J2g2Jz5cbiAgICAgICAgICAgICB7cHJvcHMubWVzc2FnZX1cbiAgICAgICAgICA8L1R5cG9ncmFwaHk+XG4gICAgICAgICAgIDpcbiAgICAgICAgICAgPFR5cG9ncmFwaHkgdmFyaWFudD0naDYnPlxuICAgICAgICAgICAgRXJyb3I6IHtwcm9wcy5tZXNzYWdlfVxuICAgICAgICAgIDwvVHlwb2dyYXBoeT5cbiAgICAgICAgfVxuICAgICAgICA8L0dyaWQ+XG4gICAgICAgIDxHcmlkIGl0ZW0+XG4gICAgICAgICAgeyBwcm9wcy5yZXR1cm5Ub1xuICAgICAgICAgICAgJiYgKFxuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgdmFyaWFudD0nY29udGFpbmVkJ1xuICAgICAgICAgICAgICAgIHdpZHRoPSc1MCUnXG4gICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICBwcm9wcy5yZXR1cm5UbygpO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgQmFja1xuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG4gICAgICAgIDwvR3JpZD5cbiAgICAgIDwvR3JpZD5cbiAgICA8L0NvbnRhaW5lcj5cbiAgKTtcbn07XG5cbkVycm9yLnByb3BUeXBlcyA9IHtcbiAgbWVzc2FnZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICByZXR1cm5UbzogUHJvcFR5cGVzLmZ1bmMsXG4gIGlzTWVzc2FnZTogUHJvcFR5cGVzLmJvb2wsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBFcnJvcjtcbiIsImV4cG9ydCBkZWZhdWx0IFwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFJQUFBQUNKQ0FZQUFBRGtNVEFEQUFBS3htbERRMUJKUTBNZ1VISnZabWxzWlFBQVNJbVZsd2RZVTFrV2dPOTdMNzNRQWhHUUVub1RwRmNwb1ljdUhXeUVKSkJRWWt3SUtqWlVCa2R3TEtoSVV3UWNGRkZ3TElDTUJiRmdSVkVCK3dRWlZOUnhzQ0FxS3Z1QUpjenNmcnY3N1huZnlmM2ZlZWVlYys3OTd2MitFd0NvQkxaSWxBRXJBWkFwekJKSEJuZ3o0aE1TR2ZqZkFRd1FvQXdBd0xBNUVoRXpJaUlFWlRBMS9sMCs5Z0JvZkx4ak9SN3IzNy8vVjFIbThpUWNBS0FJbEpPNUVrNG15c2RSZmNNUmliTUFRUGFoZG9PbFdhSnh2b3l5cWhndEVPVkg0NXc2eVVQam5EekJHTXlFVDNTa0Q4cnFBQkFvYkxZNEZRQ0tJV3BuWkhOUzBUZ1VYNVN0aFZ5QkVHWDBIWGh3K0d3dXltaGVNQ3N6Yy9FNHkxQTJUZjVMbk5TL3hVeVd4MlN6VStVOHVaWUpJZmdLSktJTTl2TC9jenYrdDJSbVNLZHlHS05LNFlzREk5R1JqdTdadmZURndYSVdKb2VGVDdHQU8rRS93WHhwWU13VWN5UStpVlBNWmZzR3krZG1oSVZNY1lyQW55V1BrOFdLbm1LZXhDOXFpc1dMSStXNVVzUSt6Q2xtaTZmelN0Tmo1SFkranlXUG44T1BqcHZpYkVGczJCUkwwcU9DcDMxODVIYXhORkplUDA4WTREMmQxMSsrOWt6Slg5WXJZTW5uWnZHakErVnJaMC9YenhNeXAyTks0dVcxY1htK2Z0TStNWEovVVphM1BKY29JMEx1ejhzSWtOc2wyVkh5dVZub2daeWVHeUhmd3pSMlVNUVVBMS9nQjBMUWh3RmlnQzJ3Qnpib2J5Z0FXYnhsNDJjVStDd1dMUmNMVXZsWkRDWjZ5M2dNbHBCak5ZdGhhMjFyRGNENG5aMDhFdS92VGR4RmlFNll0b25RK0M3b21VZHFwbTNKbWdBMG8rZElnemh0TTl3UGdHSThBRTI1SEtrNGU5STJmcDBBRnBDQUlsQUZHa0FIR0FCVFlJbFc1Z2pjZ0JkYWNSQUlCOUVnQVN3RUhNQUhtVUFNbG9LVllDM0lCNFZnSzlnSnlrQWxxQUVId0dGd0ZEU0RVK0FjdUFTdWdWdWdHendFTWpBQVhvRWg4QkdNUWhDRWg2Z1FEZEtBZENFanlBS3loWndoRDhnUENvRWlvUVFvQ1VxRmhKQVVXZ210aHdxaElxZ01xb0xxb0YrZ2s5QTU2QXJVQmQySCtxQkI2QjMwQlVaZ0Nxd0thOFBHOEd6WUdXYkN3WEEwdkFCT2haZkFPWEFldkJrdWdhdmhRM0FUZkE2K0JuZkRNdmdWUEl3QWhJelFFVDNFRW5GR2ZKQndKQkZKUWNUSWFxUUFLVWFxa1Fha0ZlbEE3aUF5NURYeUdZUEQwREFNakNYR0RST0lpY0Z3TUVzd3F6R2JNR1dZQTVnbXpBWE1IVXdmWmdqekhVdkZhbUV0c0s1WUZqWWVtNHBkaXMzSEZtTnJzU2V3RjdIZDJBSHNSeHdPUjhlWjRKeHdnYmdFWEJwdUJXNFRiamV1RWRlRzY4TDE0NGJ4ZUx3RzNnTHZqZy9Icy9GWitIeDhLZjRRL2l6K05uNEEvNGxBSnVnU2JBbitoRVNDa0xDT1VFdzRTRGhEdUUxNFRoZ2xLaEdOaUs3RWNDS1h1Snk0aGJpUDJFcThTUndnanBLVVNTWWtkMUkwS1kyMGxsUkNhaUJkSkQwaXZTZVR5ZnBrRi9KY3NvQ2NTeTRoSHlGZkp2ZVJQMU5VS09ZVUg4cDhpcFN5bWJLZjBrYTVUM2xQcFZLTnFWN1VSR29XZFRPMWpucWUrb1Q2U1lHbVlLWEFVdUFxckZFb1YyaFN1SzN3UnBHb2FLVElWRnlvbUtOWXJIaE04YWJpYXlXaWtyR1NqeEpiYWJWU3VkSkpwVjZsWVdXYXNvMXl1SEttOGlibGc4cFhsRitvNEZXTVZmeFV1Q3A1S2pVcTUxWDZhUWpOZ09aRDQ5RFcwL2JSTHRJR1ZIR3FKcW9zMVRUVlF0WERxcDJxUTJvcWF2WnFzV3JMMU1yVlRxdko2QWpkbU02aVo5QzMwSS9TZStoZlptalBZTTdnemRnNG8ySEc3UmtqNmpQVnZkUjU2Z1hxamVyZDZsODBHQnArR3VrYTJ6U2FOUjVyWWpUTk5lZHFMdFhjbzNsUjgvVk0xWmx1TXprekMyWWVuZmxBQzlZeTE0clVXcUZWbzNWZGExaGJSenRBVzZSZHFuMWUrN1VPWGNkTEowMW5oODRablVGZG1xNkhya0IzaCs1WjNaY01OUWFUa2NFb1lWeGdET2xwNlFYcVNmV3E5RHIxUnZWTjlHUDAxK2szNmo4MklCazRHNlFZN0RCb054Z3kxRFVNTlZ4cFdHLzR3SWhvNUd6RU45cGwxR0UwWW14aUhHZTh3YmpaK0lXSnVnbkxKTWVrM3VTUktkWFUwM1NKYWJYcFhUT2NtYk5adXRsdXMxdm1zTG1ET2QrODNQeW1CV3poYUNHdzJHM1JOUXM3eTJXV2NGYjFyRjVMaWlYVE10dXkzckxQaW00VllyWE9xdG5xeld6RDJZbXp0ODN1bVAzZDJzRTZ3M3FmOVVNYkZac2dtM1UyclRidmJNMXRPYmJsdG5mdHFIYitkbXZzV3V6ZTJsdlk4K3ozMk45em9EbUVPbXh3YUhmNDV1amtLSFpzY0J4ME1uUktjcXB3Nm5WV2RZNXczdVI4MlFYcjR1Mnl4dVdVeTJkWFI5Y3MxNk91ZjdwWnVxVzdIWFI3TWNka0RtL092am45N3ZydWJQY3FkNWtId3lQSlk2K0h6RlBQaysxWjdmblV5OENMNjFYcjlaeHB4a3hqSG1LKzhiYjJGbnVmOEI3eGNmVlo1ZFBtaS9nRytCYjRkdnFwK01YNGxmazk4ZGYzVC9Xdjl4OEtjQWhZRWRBV2lBME1EdHdXMk12U1puRllkYXloSUtlZ1ZVRVhnaW5CVWNGbHdVOUR6RVBFSWEyaGNHaFE2UGJRUjJGR1ljS3c1bkFRemdyZkh2NDR3aVJpU2NTdmMzRnpJK2FXejMwV2FSTzVNcklqaWhhMUtPcGcxTWRvNytndDBROWpUR09rTWUyeGlySHpZK3RpUitKODQ0cmlaUEd6NDFmRlgwdlFUQkFrdENUaUUyTVRheE9INS9uTjJ6bHZZTDdEL1B6NVBRdE1GaXhiY0dXaDVzS01oYWNYS1M1aUx6cVdoRTJLU3pxWTlKVWR6cTVtRHllemtpdVNoemcrbkYyY1Yxd3Y3Zzd1SU0rZFY4UjdudUtlVXBUeUl0VTlkWHZxSU4rVFg4eC9MZkFSbEFuZXBnV21WYWFOcEllbjcwOGZ5NGpMYU13a1pDWmxuaFNxQ05PRkZ4YnJMRjYydUV0a0ljb1h5WmE0THRtNVpFZ2NMSzZWUUpJRmtwWXNWYlE1dWk0MWxmNGc3Y3YyeUM3UC9yUTBkdW14WmNyTGhNdXVMemRmdm5INTh4ei9uSjlYWUZad1ZyU3YxRnU1ZG1YZkt1YXFxdFhRNnVUVjdXc00xdVN0R2NnTnlEMndsclEyZmUyTmRkYnJpdFo5V0IrM3ZqVlBPeTgzci8rSGdCL3E4eFh5eGZtOUc5dzJWUDZJK1ZId1krZEd1NDJsRzc4WGNBdXVGbG9YRmhkKzNjVFpkUFVubTU5S2ZocmJuTEs1YzR2amxqMWJjVnVGVzN1MmVXNDdVS1JjbEZQVXZ6MTBlOU1PeG82Q0hSOTJMdHA1cGRpK3VISVhhWmQwbDZ3a3BLU2wxTEIwYStuWE1uNVpkN2wzZVdPRlZzWEdpcEhkM04yMzkzanRhYWpVcml5cy9MSlhzUGRlVlVCVlU3VnhkWEVOcmlhNzV0bSsySDBkUHp2L1hGZXJXVnRZKzIyL2NML3NRT1NCQzNWT2RYVUh0UTV1cVlmcnBmV0RoK1lmdW5YWTkzQkxnMlZEVlNPOXNmQUlPQ0k5OHZLWHBGOTZqZ1lmYlQvbWZLemh1Tkh4aWhPMEV3Vk5VTlB5cHFGbWZyT3NKYUdsNjJUUXlmWld0OVlUdjFyOXV2K1UzcW55MDJxbnQ1d2huY2s3TTNZMjUreHdtNmp0OWJuVWMvM3RpOW9mbm84L2YvZkMzQXVkRjRNdlhyN2tmK2w4QjdQajdHWDN5NmV1dUY0NWVkWDVhdk0xeDJ0TjF4MnVuN2poY09ORXAyTm4wMDJubXkyM1hHNjFkczNwT25QYjgvYTVPNzUzTHQxbDNiM1dIZGJkMVJQVGM2OTNmcS9zSHZmZWkvc1o5OTgreUg0dytqRDNFZlpSd1dPbHg4VlB0SjVVLzJiMlc2UE1VWGE2ejdmdit0T29wdy83T2YydmZwZjgvblVnN3huMVdmRnozZWQxTDJ4Zm5CcjBIN3oxY3Q3TGdWZWlWNk92OC85US9xUGlqZW1iNDM5Ni9YbDlLSDVvNEszNDdkaTdUZTgxM3UvL1lQK2hmVGhpK01uSHpJK2pJd1dmTkQ0ZCtPejh1ZU5MM0pmbm8wdS80citXZkRQNzF2bzkrUHVqc2N5eE1SRmJ6SjVvQlJCVTRaUVVBTjZoZlFJMUFRRGFMUUJJOHlaNzZnbUJKdjhIVEJENFR6elpkMCtJSXdBMWJRQkU1d0lRZ282bDZHaU1xcUlYQUJHb1Juc0IyTTVPcnY4VVNZcWQ3V1FzY2pQYW1oU1BqYjFIKzBlOEdRRGZlc2ZHUnB2SHhyN1Zvc1UrQUtEdDQyUXZQeTVLaHdEWXU4TEJLU3preGtqYk1QZ1grUWZXeUJJUDU4c2ttZ0FBQUZabFdFbG1UVTBBS2dBQUFBZ0FBWWRwQUFRQUFBQUJBQUFBR2dBQUFBQUFBNUtHQUFjQUFBQVNBQUFBUktBQ0FBUUFBQUFCQUFBQWdLQURBQVFBQUFBQkFBQUFpUUFBQUFCQlUwTkpTUUFBQUZOamNtVmxibk5vYjNUN25pSHZBQUFCMW1sVVdIUllUVXc2WTI5dExtRmtiMkpsTG5odGNBQUFBQUFBUEhnNmVHMXdiV1YwWVNCNGJXeHVjenA0UFNKaFpHOWlaVHB1Y3pwdFpYUmhMeUlnZURwNGJYQjBhejBpV0UxUUlFTnZjbVVnTlM0MExqQWlQZ29nSUNBOGNtUm1PbEpFUmlCNGJXeHVjenB5WkdZOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2TURJdk1qSXRjbVJtTFhONWJuUmhlQzF1Y3lNaVBnb2dJQ0FnSUNBOGNtUm1Pa1JsYzJOeWFYQjBhVzl1SUhKa1pqcGhZbTkxZEQwaUlnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cGxlR2xtUFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwyVjRhV1l2TVM0d0x5SStDaUFnSUNBZ0lDQWdJRHhsZUdsbU9sQnBlR1ZzV0VScGJXVnVjMmx2Ymo0eE1qZzhMMlY0YVdZNlVHbDRaV3hZUkdsdFpXNXphVzl1UGdvZ0lDQWdJQ0FnSUNBOFpYaHBaanBWYzJWeVEyOXRiV1Z1ZEQ1VFkzSmxaVzV6YUc5MFBDOWxlR2xtT2xWelpYSkRiMjF0Wlc1MFBnb2dJQ0FnSUNBZ0lDQThaWGhwWmpwUWFYaGxiRmxFYVcxbGJuTnBiMjQrTVRNM1BDOWxlR2xtT2xCcGVHVnNXVVJwYldWdWMybHZiajRLSUNBZ0lDQWdQQzl5WkdZNlJHVnpZM0pwY0hScGIyNCtDaUFnSUR3dmNtUm1PbEpFUmo0S1BDOTRPbmh0Y0cxbGRHRStDbnYxdUNVQUFCYk1TVVJCVkhnQjdWMEpjQlhuZmY4REFpUnVjVW5pRWtqaXhnWnhPQml3elkyZE9CN0hTV2FhZW94blBFMmF5YlJPM002a1NUc2V0MDZQVE51a0dYZnFacExZY1JMaXhyWGJTUnB6R0FIR0J6RUlqSVV3Nk9JUTRoUWdjUWtFUW9qK2Y3djczOTIzYjkvVDI3ZlgwOVArTlUvZjdyZmY4ZisrMys4NzlydTJ6MTBXaXFUWDVrRGZYcHZ5S09GS0RrUUU2T1ZFaUFnUUVhQ1g1MEF2VDM1VUEwUUU2T1U1ME11VEg5VUFFUUY2ZVE3MDh1UkhOVUJFZ0Y2ZUE3MDgrVGxCcHg4RHp5MVgydWxHeHgzSzZkdUhoZzBlUUVQeStnZXRSaFNmbGdPQkVHQkRSVDFWMXB5blQ0KzMwdkd6MTlTbyt4Z1lEQnMwZ01vbURLZjVaYU5veVp4Q1dsRSszbmdZWGZtYUEzMzhtZ3phdktlSmZyUGpDTDEvNEt5YUFCUGdraUxEeXJqQ3M1RkRCOUxqRDViUVUydktxTGhncURpUFRCOXl3SE1DdkZ0MWhsNTZxNXFxanJRUXhlS3FxRzlZR1ZkNnVpeFdkem1BWng2ZVJzOTkrZDZvbWRBenlkc0x6d2lBdHYzNVZ5dnAxOXNhNGpRMGNEV3VGRWVXVzlnQmRJaitlc0szQmZsNTlQejZCZlRJZlJPVlo5RS83M0xBRXdLY2FMNUd6Lzc3SDZqNjZFVmRNd05iNDBwNWFMbUZuUjNvZWtEYUJSWXRmT3VMOTlDelQ4eXhQb3J1WGVTQWF3TFVORjJtei83VlJrVUZBMXZqeXZKQVZ6VlYwSFVQdU9qVGg5YXZuVXAveTdWQkpON2tnS3UzZ0ZNWDJ1aFBmL0NlVm1rN0ExMXhiZkdDSk1VdFQyTFF6ZkxMclEwMHNGOWYrdTZUNVdicjZEck5ITkNiMm5UOC84WEx1K25VK2V2c1ZRTUpodnkwQUZIUzhjTWZJdU5YZnhzM0t2QTYrQUJkZmxvNGlsL042ODgyMTlFdnQ5WnJUeUxEVFE2a1RZQy8zN0NmOXRXZU44QUVzSnA0QWJvQURoTkJneHdHUVlqKzdsZjdsWEVGTGNySVNETUgwaUxBWGdiKzFVMjFLaklLTUdvcFQxYlNCVUF4RlgybGxHdlZ2QmwwY1djR1hXR0NpV2pmZitOQW1zbU92RWtPcEVXQWwvNzNVNlZhbDVLdUF3ZHc1TWVYY1NBaVZsZWdTK0NxK2RHaDgvVDJSMDBJTlpJMGM4QXhBVDQ0ZUk0Ky9MUlpiYzg1VW11YjdnUjB3QmpuM295eGtxZzRpeGdPdmZwTzFCZElFM3ZGbTJNQ3ZMbnpxR2VnNjRySFlSeG5FUU82N284dkRoeHJwZDA4enhCSmVqbmdpQUJ0N2JkcDQyNjF5bzBydVlnL1FmVU9PTVc5cm1ZY3huRVcxdUIwcjlMMHdJUzh2ZnVrL2l5NmNKWURqZ2lBaVowWUlNMkFXenB5Zm9PdUpGUGp6QnRjSzBXU1hnNDRJa0JsL1lXNFVvNW9FUWgrUVlLT3ZvY2FwL29HOG9mRHpWQWxFb2M1NElnQU5TY3U2Y0VuQkYwcmxlYTNBWlVhOGlDV1ExckZvWWRycmQ2VkI1cFhLK2pTQk1ETjlrKzBhV2M5cE9naWxSeHdSSUJUelczMkpWMndoYWxMcktXNXRkQ2RhQmRwZ1c0T25xOS9VUkUvQzJtTko3cVB6d0ZIQkRoMythYlNCMUNDTVFPZ2h4dHI2UWgwazllRUpkM2tScUtVUGduTXZRM0diS1E4ajh6a09aQXlBVG82dTZ3MXVSWnlMQ3BwZzg2aFFSbk1HVWlOb0VRUUc3eGlaUVlkRnZDSDM0NzlaM0FiaVlNY1NKa0FXTUJwU0N3cVlZTGUxeFQ1ejdaRWcwSUdScWxkcFV5QXZrd0FMTjVVcTRIWWpwdzFLaW5CZWlkTjQ0dFU3WWpVVFVrM2d5NXhTNjFRZmR6b3FNcXp5RXljQXlrVEFFRk1HRE5FSDV5eEJwa0s2SW5jS0c4TVdvQUNKRXdJRkZSK3BwS3VQT0IvVnJjSXArS1RxQm1RL0VuRmRFU0FxUk9HeFlTWkNGQnpTVS9rUmtBM2c1Z3U2RXBZV2d2MW4yL1h4T2dZM1NUUEFVY0VtRmM2U3UrZ0FWaEZMTlc3dVdxM3VoRXZadEJGUGFjbDNRdzZ3a0M4OGxkNzhvb0VHNW5kNUlBakFtRFRoaUpKUU5majA5d29RTEdsRTlETmJxVldVTUtSTURrOEFWdE1QVjYrMkZZVkRRcVo4eVBadFNNQ2xCVU5WV1lDNFFrWkw5VzdIb0VBQkpQRkRLUnFrN2hOdDNPYkRIUUpUOHk3SEtmOGZ2VGJRMklkbWQza2dDTUNJS3cvLzhJY0JYZzkzQXdCWGRYSFVPYW9iRUhURlkwdTdITEFNUUZXbFk5RDhUZCtmR2xYZWhHdzhyUDAzdTNjV3NPVGFoMm1WYVNVdzFURlVFYS80b3Z0VVRNZ0daVFVkRXlBMmNVamxBQ3RRT3FBODFQcmU3clZyUktBanBhcW54ZWc2MFRpSVAvNWZ6NVZBNDcrSjgwQnh3UkFhRjkvZElZU3FCbDBmWUFBSlo3Rkw5QlZvbWdWa0lWRTFqaWJMbURKZWlUSmNpQXRBcXllUDE2cDNyc0YzUXlReWdzdXBNYWZWYkZFMWJzWmRMMlVhK0ZaUVZmQzFKcWRiUWZPV2FPSTdpMDVrQllCNXBXTTVDS29JaEFIZ0JsMExUSURjZzAxa3hLZWdHN3VaMmg2SWFZZHZGTTVrdVE1a1BiV01HemJma1VtWCtKeFZjcTVYZFJHNTgzOFZBMUFEMGEvTU55QWFER2lBVzIyczNyYlUzZVJtbmtLdTJCRXJ0bFpZTmZ0N2UzVTJ0cEtWNjVjb2V2WHI5T3RXN2ZveXRXck5HVHdZTXJKeWFIYzNGd2FPblFvRFI4K25FYVBIazM5K3ZVTFREZUpLRzBDckM0dm9sY3NTN0pSMHUwa1NOQWxmb2x6RzljQ1R5NHZFV3ZmelR0Mzd0REpwcE4wNXV3WnVuVDVzbTE4YlV3R1JaZ1k1NXFOcFd5RkJRVTBidHc0S2lvcXN2WG5oNldyM2NGbHo3eVZFU1ZkTWtaQWwzdVlEODR1b0ZlL3VjUnM1ZHQxUTBNREhUdDJqRHFaQkc1bDN0eTVOSDY4LzBmbHBOVUhrTVE5dGFwTUxoVVRBTWpQZUlCYVFYb0JXdGRCdGRLZHhQY2oySUcwNjVvcjhRTFRMQkpmTFBpRzYvZDU5MUJyVzRmWmkrZlh6VnlLZCs3Y1NmVk1BQy9BaDRKVkJ3NVFaV1VsdGJXMWVhNnZPVUJYQkZqRGcwTEpBTkI3N3dZZWV0eCtnbzVJZFA3d2haK0RRdlgxOWJUdjQ0L3ArbzBiZXRxOHVyaHc4U0o5OE9FSGRPYU1mNTFaVndSWU1tdXNLYTBxeW9sQU53T3VkK2dFSlpnc1pwNm9Oa2J3eVlpbStvd0YzVHhQNGRmcllIVjFOVFVjT1dJbzZjTlZWOWRkK3FTcWlvNGRQKzVENk9wb3JhdUEvK2loRXEyQ1Z3SFFVZVJRemFEcmtTUUJYWGVqWGJnQkhVRkkvTnVxejlIMTlrNXI4Szd1RDNBVmZmTFVLVmRoT1BGY1UxTkR4eHNiblhoSnlhMnJHZ0F4cko3SFU4UlNkUGxlTWgybUxxNUFsOERGVEZ6U0VaODFmaUhSMW1ydnBvanI2dXJvMU9uVGV2S0N1amg4K0RDL05YZzd1T1dhQU12dkxZckxkQ1ZEUEFOZHpWNEpEbzI3dVhySDAwU2dnNWlnRGY1NzFReWNQWHVXamh3TmJ5c2FtcDJiTjI4cXFmTGluMnNDUUlrbmxoU3J1Z2hLTUZta3pLcDNxaFA1THlVVHBpcnhyaVU0SytobXdIRU5rZkRNb0p1SnNubi9XVktXdHF2TzAvcmYxZFZGTmJYaExqbTdmYnVUMEJ4NEpaNFFBSU5DU3JlYnRZcUgwVkJWUUhJTHVvUW80U1VDSGU3RURjd0tsM01EZU05dmIvZXU5RWs2bkpwbnVCYTZjTjZiTGZIZUVHQmVrUTY4TlRGbUFOUm44UlJKcGFSTHVCSmVxcUREbjlRWWJnaUFhamZNcWwvU0wrWlJIbkR5UWp3aEFPYi9QLzhaNHhSUEFRbW1Lc0dEdnBBUG5oYmdSWXZmN1QxRjZYNG04N2hQcjJHaW0xT3poZWNZRWcwMU93bkxFd0lnd3BWekMvWHFWbFVnRm5RcDVUQ1R0ZW1xWDZQcWRsTFNIK0dCcVI4OFhVN1ZQL3dzdmZtWFM1V2dSQXNsVG82OGdvKzRjU3FZMVBIclBkeXBMbWIzWnp4NEUwbDdNc2lzQ0s1WHo4VUVCckxiRUFWczdSWWRNck5JNXkzR1RuTWlvS21kT01PRlVhTVlkbzh0R2s5cjdpMmtOUnovd1A2eGZQN3FtbEw2NlRhanFrU2NhQWJXc25zbmttbWxYM1J2UHQ5TXMyZlBsdHUwVE04SWtEdWdINjJiWDBSYnRYMzZWdkNnblJWME02Qk9RUC9pL1pNWTlBSUd2VkJkZnBZZzZXdjRGZlVuSmdMQTJYOS9kSkwrNWFsNUNYekVXOS9nSVY0L0JtRGlZM0p1Z3c3cHRXdlhsQ2xsNTc1Vkg1NFJBTUd0bmp1TzN2a2t0b3J0RG5UNHM1TEZUQXc4aDN4bFdiRUMrSW81QmFwRkN2L3ZLK09GS3l6VzhON2xDYUlWczgzRDJJa0R5OVRTTHhwZjVmVUZXRk9Rcm5oTEFINGJnSGdGK3RNclNwU1N2blRHbUhUVFIrczVqRi9zbEdaQWJXTzI4dEJ3S2dUQUlvN0dFeWZTampzSWo5RFJqWGhLZ0tGNU9iU1MyOWZ0bk1GUzZxUnFoNUtwbFBTdnJpNVZTdm9pN3NWN0lXdnZLV0FDSEk4aDVZWVBtK2lmdm5KdnQ4Rm5ldWxIQXR5T0NucEtBQ2kwY200QmJlZWV0bHJXVk5CaEx5TEVrSHVZMzNoa0dxM21OcjE4Y3I3WjJwUHJCMmFNMXNHL2ErcVZmbGpmUXN1bUpTWVo1dUZQTkRWNW9vT2ZnWFIydXB2azhwd0E2STMvOVlicW1EUmJRVWNUOGExSHB5czk5OW1XSGNjeEhqMjYrV1B1UC94Nmx3RW00a2N6a0l3QVdOblRHOFJ6QW96aUR6NHRtem1HUHFqbEkrVk1na3ovenVNenVhUVhFdllZQmlscnVYYlpvQkZBbXFSWDNtdWtGNzlrL3dxRm5uV1FVNzF1OGdLTFM5MUk3SXV6bTVCTWZwVXBZcjRINlBKYlBHMDBmWDNkMU1EQmgxcXJ1TWV2TkVuOEQ3V1IxRWg3ajdiaWNaejBwTktQbGNWdXhCY0M0UDBid0lzZzgvZlVYeVNjTWhhV2ZHbnhCQ1hxTHFhQy9EWWZORmJraWw1NHJRcGpybC9pZDJvT0dUTEVxWmNZOTc0UW9DZy9WeWx4YXFuaitYdnVmT0ZYSWQ4UWpGRWhtQnMwQXdCZUJMWEF5enVPeTYxdTlxVFNENld4cDhDTitFSUFLUFEzM0w1S3IxdWFnUXFiRXVkR2VTZCtIK2JYUWFuK3BRbEE0cXVhak5ORXNJSGp0SThMTUozb200cmJ3WU1HMFdEZVpPSkdmQ01BeHVjRmVGRndaODBGMzVkb1MxeFdFek9XWDFnd1R0Mnl6ZzlSRjBBL2N6UFEwMHAvWWFHek9RMXJudURlTndJVWoxR1phUzExVzZ2ajIxMDd4Znl3VzNmUDJEaFMvbWlydXJ6ck11L2l3VUtMbmlUWVJlUldmQ01BRlBzMnYvYXBndkttcnVXcjRQZnZzQVROQUtTTGF3UDU0YjZHVHhQcGFhVi83Smd4Tkd4WTdLbHRTSXRUOFpVQW1IYVY0VjlVdDVDdDNBOW91K2x1OUVvTnlmbi8zUDc5NkdHZVFZUkk4d1J6NTRFbU9uc3VQR0lxQ2puOE4yWEtGSWMrN0ozN1NvQ3BoZW9yaXJ3RmlMa2x4RnJnSWRQUU1GY0V5bExHUGJYKzdieXh6M1ozdGdWanh5cTdpZDJGb3ZyMmxRQ0k0cm5QVGRmMWxGSzM5YUEzQ3hyMWdCMWN6SjgwWEFFZDRLdTFVeDlxYVBGMzc2QUQ5Vkp5NmxYcFIyUytFMkFkdjM5TDlZK2VBTHJmRy9rQUo3ZEx0QkZVT2xMQ25WTUJIdjZoMjVtYnZtZERPcXJhK3NFVzhsR2pFazlpMlhwS1l1bDd5cFhKSHBRMjdTZTZiQWxwVEdCSWJvNEN1dFJHME9kYXArL1pJTWwyYlhwWitxRk1JQ2wvZG0yWmtuQVpnb1dKMmJnd1Jmb2pNSkVKVWt1RnFWTjNjUmZ4ZS8vSWtlb3FwKzdjcHZvOEVBS1loMkdsSm5qclkvNENXUWk1ZnIzakR2Y0J0QTlaY3k2aFdZSWFNRE5kdkM3OVNHOGdCQ2puc3dVRmVJa1VFYi9EWHlBTldrNjB0TWMxQVFXNTdrLzA4RHNkNC9qWW1QeDg3eGZNQkVJQVpNNDNWazVSMkNZbERxVnVjd2h2QXdlMGs4U0ZrREFuRHVyeUd6L1g0ZnRSK3FGVVlBUlloOGtZVXpaZ0pPNDNlMDZaYklLNTNOblFvdFJHaUUzNkpLWERNcnNHR005RHZpTkdxQ2UwZXAxTGdSSGdNNlVqOWVGWGdBOEJJVGE1M0xDcEJKVGl2M1p1LzkvOCtKd092SGlibXAvWlBZQ1NraEpSMVhNek1BSkE4ejk1c0RpdS9mMFZiOVFJU2w3N3lLaHhrSEQ4QnZMUmZDV2ozQzJyOGxQL0NYeFNtQmRqL29sMERKUUFqMk1idVNhb0JQRGJYdHRDRllkajF3K0tHeS9ORzdmdjBQTy9xMVA3SVJ5djlBSFdGdHhTdjRidVpXUWVodVZuNlllYWdSSmdVVWsrTGVhbUFNaWJSK1ArNGZmMXZyOFN2b2c0Tk9DUmNEUS8rSDF1OWdoYXZXb1ZsVXlaQXV1TWtva1RKcmphOVpOS1lnSWxBQlQ2MnZMSmlsNENBTXhEUEIzNzNCditIZS8rZXVWcCt1bXVrenJvaUJPeWZFd0hyVncwa3dZT0hFZ3paODZrVlN0WDBwVEprNVZubWZEUDc5S1BOQVpPZ0VkNWJtQ050aS9QUEJyMytwN1Q5TDNmMTNtZTcyL3pxK2FmdlhGSUFWOENsM2pYTDhpUG1WWERDdHRaczJiUnloVXJhSEp4c1RnUHhadzBjU0s1WGZDWml1S0JFd0JLdmZENWFkUzNYL3hvM0VzN0d1bmJieDVPUmUrVTNHeGdVcTEvcllxcmZtTmhLcTRoejB4cHA0Y1d5b0tWMk9EeTh2S1ViZGNybGkrbjRrbVRZaDhHZEJkRTZVZFNYSjBWN0NZdlh0OTlpcjdKSlZNRTdiUEl3c2tqNk1YSHB0TjliS1lqbC9sTXdCYzNOZERQVGIxK2hLTmhUOHZ5YjlFTDY0cG93WUlGS1FXUERaaFlNZFIwTXBnM0ZwQnV6cHc1S2VubTFsRm9CSURpMzk5OGhQNjFRbDJUSndreEw5MSs4ajQrL0dIMkdIcU0xL0tsSWhmNVRPRFhtRmd2djNlQ0xta0hRd3JvNG4vcTRFNzZ6b0s3dFB5QkpaVHZjSEFGK3dWQkJMOTNEYUhtR2NRcmZvT1FVQW1BQkg1dll6MzkyL2JHbUxSS3V5UzF3b0tKdzJnRnIrU1p6MmJwMkNFMGVuQi93cmVNcnpMSUoxcmJxZnIwVlhyL1NDdHRPYXgrUHQ0S3VnU09ONDhmTDdsRlU0dUxhUDc4K1dMdDJNVFdNUkRCancwazZIdTRQZlhEU1lKQ0p3Q1UvWStkamZUQy85VXJlZ3ZvNWtSSXIxM3NwQjJYZTVqSlFNZnp4ZmtkOUxVNWQybEFUaDlhdW1TSkowT3IyRVVFSW5pNWx3QWRVUFJCZ3BLTUlBQVMrMjVkQzMzM3Q3WFVjRjQ5OE1BTDBDVVRueTV1cHpVbDZ0YzRNS3RXWGw0dWp6d3hyMTY5UWtlUEhuTzlyQnl2b0hnTENWSXloZ0NTNkgvY2duNkJ1alhiV3RJVGxYTDRSZlZ1bGZ0SGR0QVRKVjFVTkZRYUZhSmxTNWU2M2s1bGpVZnVzYmNBTlVLNks0d3hEdUYyczZmb2txcVpjUVNBNHVqTS9aem5DUDVyMzFscTVEWStrZGlCam9uZEovaVFpc1g5VHRDRTRRYndDQU96YXZQbXBYNUFWS0o0dTdQSCtYM0grRHhoOCtkZ3V2T0RrVWdNUmdVdEdVa0FjeVpVTmw2bWR4dGFhZi9KcTFSM3JvMU9YYmxGZC9nTWZaSGhnL3BUNmVnOG1qdCtHTjAvWlFSOXVieFFlVjA3ZVBDZ09OSE5CNVl0ODNWaVJZOUl1MmhwYVNFY005T2N3ckd1R0k3R2lHVFFrdkVFc011UXRsdWQxTWtrR01RYlBRYmt4Slp5dU4rNGFWT2NOOHlxemVYdjhJUWhGL25MSHlEQytRdjJrMTZsUE4wN1k4YU1NRlFMZmlqWWkxUU9HWmhESS9MNjI0TGZsT0JjbjZCRzF1elNoMC9DTFZxMGlFWW5XTTRkcG03eHhjY3VCVDNJenU1a3J5Qm0xYnJMSWh6bWRKR2JCS3VVbFpiU2dBRURyTmFCM1djVkFjNXpXNnQvazgrVWhXR1dNRkVEYndkMkVyWnVXVVdBY3pZYlBOSHpEMkpXelE1Y3Nldm82TEQ5dU5UVXNqTHEzNysvT0F2RnpDb0NvQWF3U2hBZlg3VEdhYjIzYTViZ0p1elNEeDJ5aGdBWW43L0ZKYzBzT2Z3dDNqRzhqejVNd2ZlQzdUNDBNWDNhTk9YN3dXSHFocml6aWdEV3pQUjZHNVUxL0ZUdUU1WCtLVHp3a3dtU05RVEFzZTVXQ2J2dHh6bStkcDkybVRGOWVpaGZDcmZtRCs2emhnRG9hRmtsakpFMXN3NlpYdnFoYTlZUUFKOTBzMHFmdnVFbEw5Rm5abWJ5aUYvZkVQV3k1bEY0T1dUVnhPVzlYYWJlY1htU3RodVZla0xwUi9xeWhnQjJvMmx1ejlKUGx3Q0pQak16aTJmN3NEVTlreVJyQ0dDM2lnYXZobUZJVHluOXlKdXNJWURkZDNOYUwxMmlPM2VDM2ZtYjZETXpRYS8wU1pYNFdVTUFiS0RFd0k5Vm1wdURQWVFpWWVubjVWNlpLRmxEQUdUdVdENC96eW9uQTFyTGozZ1RmV1ptanN0disxblQ1T1Y5VmhIQWJyRW5wbUR0NWdpOHpFUUpLOUdNWDNISTI4eEVQenN6cXdpQUJPYmw1Y2FsYysrK2ZYRjJYbHRjNE5VK2RodEc3Z2xvaDArNjZjazZBaVRhMUZsYlc1dHVIblhyNy9idDIzVG9rTEhOemV4aFVraDdDODA2Skx2T09nS1VsSlFTUHFSZ0ZZekpOeDV2dEZwN2NsOVZWVVhYYmVZaTVvVzBCdEZKb3JLT0FFajhkSjVzc1pORE5ZZDUzWDdzWGtRN2Q2bmE0UlZ6Nzk2OXRvczljYVJySnF4RjZDNHRXVW1BSXQ3OWcxMDJkbEpUVzBmVjFkWGs5b09MV1BLOWE5Y3VXL0FIOENxZlRIM3Z0K1pKajF3V2JrMUVvdnRFcFZQY280UG10STNHUUEvZTlaTjlWWFRSd29XMnI2UVNieWFaV1UwQVZOR1ZsWldFRWNGa2dsMDVXRG1FQlNSMmswcVlVMENKeDVyRDduYjdsUFBPSXk4KzVaSk1YeStmWlRVQmtGR1lKdDYvZjM5S3UzUGdIaDFJVEN5QkNDMnQ5aCtXaERzN1diQmdQaFVXdVArUWsxM1lmdGxsUFFFazQrcnE2bXpYNXNsek55WU9tc0NKSG42ZTUrZEd2MlIrZXcwQmtBbllvbFZmWDAvWXZPbUZZR0ozR2kvdUxPUGwzVDFWZWhVQkJLUXovSEhJeHNaR1YwVEFmcjdKL0tZUjlIWnVTWU5YWnE4a2dHUWV2aFNLMlVJTTQxN202MlNTeDBmSTRWTXRZM2pDQ1lkTVpJdjBhZ0tZUWJ6TFg2OVE5aFp3ai84Mkx5WERmYitjZnJ4bE81Y0c4WkV0WVM4d05ldnE1WFZFQUM5enN3ZUdsWlVqZ1QwUWg5QlVqZ2dRV3RablJzUVJBVElEaDlDMGlBZ1FXdFpuUnNRUkFUSURoOUMwaUFnUVd0Wm5Sc1QvRC94b2xxNTZqUnBsQUFBQUFFbEZUa1N1UW1DQ1wiIiwiaW1wb3J0IGF4aW9zIGZyb20gJ2F4aW9zJztcblxuY29uc3QgYXBpQ2FsbCA9IChvcHRzKSA9PiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgb3B0cyA9IG9wdHMgfHwge307XG4gICAgb3B0cy5jb250ZXh0ID0gb3B0cy5jb250ZXh0IHx8IG51bGw7XG4gICAgb3B0cy5yZXNwb25zZVR5cGUgPSBvcHRzLnJlc3BvbnNlVHlwZSB8fCAnYXBwbGljYXRpb24vanNvbic7XG4gICAgbGV0IHVybCA9ICcnO1xuICAgIGlmIChvcHRzLnVybCkge1xuICAgICAgdXJsID0gb3B0cy51cmw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHVybCA9IHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSA9PSAnbG9jYWxob3N0JyA/IGBodHRwczovL3Nyc3JmbC1zdGFnaW5nLmNvbS9gIDogJy8nO1xuICAgIH1cbiAgICBjb25zdCBoZWFkZXJzID0gb3B0cy5oZWFkZXJzIHx8IHt9O1xuICAgIGF4aW9zKHtcbiAgICAgIG1ldGhvZDogb3B0cy5tZXRob2QudG9Mb3dlckNhc2UoKSxcbiAgICAgIHVybDogYCR7dXJsfSR7b3B0cy5lbmRwb2ludH1gLFxuICAgICAgcmVzcG9uc2VUeXBlOiBvcHRzLnJlc3BvbnNlVHlwZSxcbiAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXG4gICAgICBwYXJhbXM6IG9wdHMucGFyYW1zLFxuICAgICAgZGF0YTogb3B0cy5kYXRhLFxuICAgIH0pLnRoZW4ocmVzb2x2ZSkuY2F0Y2gocmVqZWN0KTtcbiAgfSk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBhcGlDYWxsO1xuIiwiY29uc3QgZ2V0RXJyb3JNZXNzYWdlID0gKGVycikgPT4ge1xuICBsZXQgZXJyb3IgPSAnJztcbiAgaWYgKGVyci5yZXNwb25zZSAmJiBlcnIucmVzcG9uc2UuZGF0YSkge1xuICAgIGlmIChlcnIucmVzcG9uc2UuZGF0YS5tZXNzYWdlKSB7XG4gICAgICBpZiAoZXJyLnJlc3BvbnNlLmRhdGEubWVzc2FnZSA9PSAnc3RyaW5nJykge1xuICAgICAgICBlcnJvciA9IGVyci5yZXNwb25zZS5kYXRhLm1lc3NhZ2U7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlcnJvciA9IEpTT04uc3RyaW5naWZ5KGVyci5yZXNwb25zZS5kYXRhLm1lc3NhZ2UpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodHlwZW9mIGVyci5yZXNwb25zZS5kYXRhID09ICdzdHJpbmcnKSB7XG4gICAgICBpZiAoZXJyLnJlc3BvbnNlLmRhdGEuaW5jbHVkZXMoJ21lc3NhZ2UnKSkge1xuICAgICAgICBlcnJvciA9IGVyci5yZXNwb25zZS5kYXRhLnN1YnN0cmluZygxMiwgKGVyci5yZXNwb25zZS5kYXRhLmxlbmd0aCAtIDIpKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgZXJyb3IgPSBKU09OLnN0cmluZ2lmeShlcnIucmVzcG9uc2UuZGF0YSk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGVycm9yID0gZXJyLm1lc3NhZ2UgPyBlcnIubWVzc2FnZSA6IEpTT04uc3RyaW5naWZ5KGVycik7XG4gIH1cbiAgcmV0dXJuIGVycm9yO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgZ2V0RXJyb3JNZXNzYWdlO1xuIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBhcGlDYWxsIGZyb20gJy4uLy4uLy4uLy4uL2xpYi9hcGlDYWxsLmpzJztcbmltcG9ydCBFcnJvciBmcm9tICcuLi8uLi8uLi8uLi9saWIvZXJyb3IuanMnO1xuaW1wb3J0IExvYWRpbmcgZnJvbSAnLi4vLi4vLi4vLi4vbGliL2xvYWRpbmcnO1xuaW1wb3J0IGdldEVycm9yTWVzc2FnZSBmcm9tICcuLi8uLi8uLi8uLi9saWIvZ2V0RXJyb3JNZXNzYWdlLmpzJztcbmltcG9ydCBwcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyBDb250ZXh0IH0gZnJvbSAnLi4vY29udGV4dC9jb250ZXh0LmpzJztcbmltcG9ydCB7IFR5cG9ncmFwaHksIEdyaWQsIENvbnRhaW5lciwgUGFwZXIsIFRleHRGaWVsZCwgQnV0dG9uIH0gZnJvbSAnQG11aS9tYXRlcmlhbCc7XG5cbmNsYXNzIFJlZ2lzdHJhdGlvbkZvcm0gZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgZXJyb3JzOiBudWxsLFxuICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgdmlldzogJ1JlZ2lzdGVyJyxcbiAgICAgIHN0b3JlX25hbWU6IG51bGwsXG4gICAgICBzdG9yZV91dWlkOiBudWxsLFxuICAgICAgcGF0aWVudF91dWlkOiBudWxsLFxuICAgICAgbmV3X3BhdGllbnRfdXVpZDogbnVsbCxcbiAgICAgIHVzZXJfdXVpZDogbnVsbCxcbiAgICAgIHVzZXJuYW1lOiBudWxsLFxuICAgICAgcGFzc3dvcmQ6IG51bGwsXG4gICAgICBmaXJzdF9uYW1lOiBudWxsLFxuICAgICAgbGFzdF9uYW1lOiBudWxsLFxuICAgICAgZGlzYWJsZWQ6IGZhbHNlLFxuICAgICAgZmllbGRzOiBmaWVsZHMsXG4gICAgICBmaWVsZHMyOiBmaWVsZHMyLFxuICAgIH07XG4gICAgY29uc3QgZmllbGRzID0ge1xuICAgICAgZmlyc3RfbmFtZToge1xuICAgICAgICB0aXRsZTogJ0ZpcnN0IE5hbWUnLFxuICAgICAgICB0eXBlOiB7XG4gICAgICAgICAgdHlwZW5hbWU6ICd0ZXh0JyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIGVycm9yOiB0cnVlLFxuICAgICAgICBvbkNoYW5nZTogKHZhbHVlKSA9PiB7XG4gICAgICAgICAgY29uc3QgY29weSA9IHsgLi4udGhpcy5zdGF0ZSB9O1xuICAgICAgICAgIGlmICghL15bIC1+XXsxLDIwfSQvLnRlc3QodmFsdWUudHJpbSgpKSkge1xuICAgICAgICAgICAgZmllbGRzLmZpcnN0X25hbWUuZXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgZmllbGRzLmZpcnN0X25hbWUuZmVlZGJhY2sgPSAnSW52YWxpZCBGaXJzdCBOYW1lIEZvcm1hdCc7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGZpZWxkcy5maXJzdF9uYW1lLmVycm9yID0gZmFsc2U7XG4gICAgICAgICAgICBmaWVsZHMuZmlyc3RfbmFtZS5mZWVkYmFjayA9ICcnO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb3B5LmZpZWxkcy5maXJzdF9uYW1lLnZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZShjb3B5KTtcbiAgICAgICAgfSxcbiAgICAgICAgZnVsbHdpZHRoOiB0cnVlLFxuICAgICAgICBmZWVkYmFjazogJycsXG4gICAgICAgIHZhbHVlOiAnJyxcbiAgICAgIH0sXG4gICAgICBsYXN0X25hbWU6IHtcbiAgICAgICAgdGl0bGU6ICdMYXN0IE5hbWUnLFxuICAgICAgICB0eXBlOiB7XG4gICAgICAgICAgdHlwZW5hbWU6ICd0ZXh0JyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIGVycm9yOiB0cnVlLFxuICAgICAgICBvbkNoYW5nZTogKHZhbHVlKSA9PiB7XG4gICAgICAgICAgY29uc3QgY29weSA9IHsgLi4udGhpcy5zdGF0ZSB9O1xuICAgICAgICAgIGlmICghL15bIC1+XXsxLDIwfSQvLnRlc3QodmFsdWUudHJpbSgpKSkge1xuICAgICAgICAgICAgZmllbGRzLmxhc3RfbmFtZS5lcnJvciA9IHRydWU7XG4gICAgICAgICAgICBmaWVsZHMubGFzdF9uYW1lLmZlZWRiYWNrID0gJ0ludmFsaWQgTGFzdCBOYW1lIEZvcm1hdCc7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGZpZWxkcy5sYXN0X25hbWUuZXJyb3IgPSBmYWxzZTtcbiAgICAgICAgICAgIGZpZWxkcy5sYXN0X25hbWUuZmVlZGJhY2sgPSAnJztcbiAgICAgICAgICB9XG4gICAgICAgICAgY29weS5maWVsZHMubGFzdF9uYW1lLnZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZShjb3B5KTtcbiAgICAgICAgfSxcbiAgICAgICAgZnVsbHdpZHRoOiB0cnVlLFxuICAgICAgICBmZWVkYmFjazogJycsXG4gICAgICAgIHZhbHVlOiAnJyxcbiAgICAgIH0sXG4gICAgICBlbWFpbDoge1xuICAgICAgICB0aXRsZTogJ0VtYWlsIEFkZHJlc3MnLFxuICAgICAgICB0eXBlOiB7XG4gICAgICAgICAgdHlwZW5hbWU6ICd0ZXh0JyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIGVycm9yOiB0cnVlLFxuICAgICAgICBvbkNoYW5nZTogKHZhbHVlKSA9PiB7XG4gICAgICAgICAgY29uc3QgY29weSA9IHsgLi4udGhpcy5zdGF0ZSB9O1xuICAgICAgICAgIGlmICghL14uK0AoLitcXC4pKy4rJC8udGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIGZpZWxkcy5lbWFpbC5lcnJvciA9IHRydWU7XG4gICAgICAgICAgICBmaWVsZHMuZW1haWwuZmVlZGJhY2sgPSAnSW52YWxpZCBFbWFpbCBBZGRyZXNzIEZvcm1hdCc7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGZpZWxkcy5lbWFpbC5lcnJvciA9IGZhbHNlO1xuICAgICAgICAgICAgZmllbGRzLmVtYWlsLmZlZWRiYWNrID0gJyc7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvcHkuZmllbGRzLmVtYWlsLnZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZShjb3B5KTtcbiAgICAgICAgfSxcbiAgICAgICAgZnVsbHdpZHRoOiB0cnVlLFxuICAgICAgICBmZWVkYmFjazogJycsXG4gICAgICAgIHZhbHVlOiAnJyxcbiAgICAgIH0sXG4gICAgICBwYXNzd29yZDoge1xuICAgICAgICB0aXRsZTogJ1Bhc3N3b3JkJyxcbiAgICAgICAgdHlwZToge1xuICAgICAgICAgIHR5cGVuYW1lOiAncGFzc3dvcmQnLFxuICAgICAgICB9LFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgZXJyb3I6IHRydWUsXG4gICAgICAgIG9uQ2hhbmdlOiAodmFsdWUpID0+IHtcbiAgICAgICAgICBjb25zdCBjb3B5ID0geyAuLi50aGlzLnN0YXRlIH07XG4gICAgICAgICAgY29weS5maWVsZHMucGFzc3dvcmQudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHtcbiAgICAgICAgICAgIGZpZWxkcy5wYXNzd29yZC5lcnJvciA9IHRydWU7XG4gICAgICAgICAgICBmaWVsZHMucGFzc3dvcmQuZmVlZGJhY2sgPSAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgPGxpPkF0IGxlYXN0IDggY2hhcmFjdGVycyBsb25nPC9saT5cbiAgICAgICAgICAgICAgICA8bGk+QXQgbGVhc3Qgb25lIHNwZWNpYWwgY2hhcmFjdGVyPC9saT5cbiAgICAgICAgICAgICAgICA8bGk+QXQgbGVhc3Qgb25lIGNhcGl0YWwgbGV0dGVyPC9saT5cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoIS9bIC0vOi1AWy1gey1+XS8udGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgZmllbGRzLnBhc3N3b3JkLmVycm9yID0gdHJ1ZTtcbiAgICAgICAgICAgICAgZmllbGRzLnBhc3N3b3JkLmZlZWRiYWNrID0gJ0F0IGxlYXN0IDEgc3BlY2lhbCBjaGFyYWN0ZXIgaXMgcmVxdWlyZWQnO1xuICAgICAgICAgICAgfSBlbHNlIGlmICghL1tBLVpdLy50ZXN0KHZhbHVlKSkge1xuICAgICAgICAgICAgICBmaWVsZHMucGFzc3dvcmQuZXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgICBmaWVsZHMucGFzc3dvcmQuZmVlZGJhY2sgPSAnQXQgbGVhc3QgMSBjYXBpdGFsIGxldHRlciBpcyByZXF1aXJlZCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHZhbHVlLmxlbmd0aCA8IDgpIHtcbiAgICAgICAgICAgICAgZmllbGRzLnBhc3N3b3JkLmVycm9yID0gdHJ1ZTtcbiAgICAgICAgICAgICAgZmllbGRzLnBhc3N3b3JkLmZlZWRiYWNrID0gJ0F0IGxlYXN0IDggY2hhcmFjdGVycyBpcyByZXF1aXJlZCc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBmaWVsZHMucGFzc3dvcmQuZXJyb3IgPSBmYWxzZTtcbiAgICAgICAgICAgICAgZmllbGRzLnBhc3N3b3JkLmZlZWRiYWNrID0gJyc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoY29weS5maWVsZHMuY29uZmlybS52YWx1ZSAhPT0gY29weS5maWVsZHMucGFzc3dvcmQudmFsdWUpIHtcbiAgICAgICAgICAgICAgY29weS5maWVsZHMuY29uZmlybS5lcnJvciA9IHRydWU7XG4gICAgICAgICAgICAgIGNvcHkuZmllbGRzLmNvbmZpcm0uZmVlZGJhY2sgPSAnUGFzc3dvcmRzIG11c3QgbWF0Y2gnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgY29weS5maWVsZHMuY29uZmlybS5lcnJvciA9IGZhbHNlO1xuICAgICAgICAgICAgICBjb3B5LmZpZWxkcy5jb25maXJtLmZlZWRiYWNrID0gJyc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoY29weSk7XG4gICAgICAgIH0sXG4gICAgICAgIGZ1bGx3aWR0aDogdHJ1ZSxcbiAgICAgICAgZmVlZGJhY2s6IChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgPGxpPkF0IGxlYXN0IDggY2hhcmFjdGVycyBsb25nPC9saT5cbiAgICAgICAgICAgIDxsaT5BdCBsZWFzdCBvbmUgc3BlY2lhbCBjaGFyYWN0ZXI8L2xpPlxuICAgICAgICAgICAgPGxpPkF0IGxlYXN0IG9uZSBjYXBpdGFsIGxldHRlcjwvbGk+XG4gICAgICAgICAgPC8+XG4gICAgICAgICksXG4gICAgICAgIHZhbHVlOiAnJyxcbiAgICAgIH0sXG4gICAgICBjb25maXJtOiB7XG4gICAgICAgIHRpdGxlOiAnQ29uZmlybSBQYXNzd29yZCcsXG4gICAgICAgIHR5cGU6IHtcbiAgICAgICAgICB0eXBlbmFtZTogJ3Bhc3N3b3JkJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIGVycm9yOiB0cnVlLFxuICAgICAgICBvbkNoYW5nZTogKHZhbHVlKSA9PiB7XG4gICAgICAgICAgY29uc3QgY29weSA9IHsgLi4udGhpcy5zdGF0ZSB9O1xuICAgICAgICAgIGNvcHkuZmllbGRzLmNvbmZpcm0udmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICBpZiAoY29weS5maWVsZHMuY29uZmlybS52YWx1ZS5sZW5ndGggPT0gMCkge1xuICAgICAgICAgICAgY29weS5maWVsZHMuY29uZmlybS5lcnJvciA9IHRydWU7XG4gICAgICAgICAgICBjb3B5LmZpZWxkcy5jb25maXJtLmZlZWRiYWNrID0gJ1Bhc3N3b3JkcyBtdXN0IG1hdGNoJztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGNvcHkuZmllbGRzLmNvbmZpcm0udmFsdWUgIT09IGNvcHkuZmllbGRzLnBhc3N3b3JkLnZhbHVlKSB7XG4gICAgICAgICAgICAgIGNvcHkuZmllbGRzLmNvbmZpcm0uZXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgICBjb3B5LmZpZWxkcy5jb25maXJtLmZlZWRiYWNrID0gJ1Bhc3N3b3JkcyBtdXN0IG1hdGNoJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGNvcHkuZmllbGRzLmNvbmZpcm0uZXJyb3IgPSBmYWxzZTtcbiAgICAgICAgICAgICAgY29weS5maWVsZHMuY29uZmlybS5mZWVkYmFjayA9ICcnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnNldFN0YXRlKGNvcHkpO1xuICAgICAgICB9LFxuICAgICAgICBmdWxsd2lkdGg6IHRydWUsXG4gICAgICAgIGZlZWRiYWNrOiAnJyxcbiAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgfSxcbiAgICAgIHZhbHVlOiAnJyxcbiAgICAgIGVycm9yOiBmYWxzZSxcbiAgICAgIGZlZWRiYWNrOiAnJyxcbiAgICB9O1xuICAgIGNvbnN0IGZpZWxkczIgPSB7XG4gICAgICBjb25maXJtYXRpb246IHtcbiAgICAgICAgdGl0bGU6ICdDb25maXJtYXRpb24gQ29kZScsXG4gICAgICAgIHR5cGU6IHtcbiAgICAgICAgICB0eXBlbmFtZTogJ3RleHQnLFxuICAgICAgICB9LFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgZXJyb3I6IHRydWUsXG4gICAgICAgIG9uQ2hhbmdlOiAodmFsdWUpID0+IHtcbiAgICAgICAgICBjb25zdCBjb3B5ID0geyAuLi50aGlzLnN0YXRlIH07XG4gICAgICAgICAgaWYgKCEvXlsgLX5dezEsMjB9JC8udGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIGZpZWxkczIuY29uZmlybWF0aW9uLmVycm9yID0gdHJ1ZTtcbiAgICAgICAgICAgIGZpZWxkczIuY29uZmlybWF0aW9uLmZlZWRiYWNrID0gJ0ludmFsaWQgQ29uZmlybWF0aW9uIENvZGUgRm9ybWF0JztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZmllbGRzMi5jb25maXJtYXRpb24uZXJyb3IgPSBmYWxzZTtcbiAgICAgICAgICAgIGZpZWxkczIuY29uZmlybWF0aW9uLmZlZWRiYWNrID0gJyc7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvcHkuZmllbGRzMi5jb25maXJtYXRpb24udmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKGNvcHkpO1xuICAgICAgICB9LFxuICAgICAgICBmdWxsd2lkdGg6IHRydWUsXG4gICAgICAgIGZlZWRiYWNrOiAnJyxcbiAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgfSxcbiAgICB9O1xuICAgIHRoaXMuc3RhdGUuZmllbGRzID0gZmllbGRzO1xuICAgIHRoaXMuc3RhdGUuZmllbGRzMiA9IGZpZWxkczI7XG4gICAgdGhpcy5jbGVhckZpZWxkcyA9IHRoaXMuY2xlYXJGaWVsZHMuYmluZCh0aGlzKTtcbiAgICB0aGlzLmNoYW5nZVZpZXcgPSB0aGlzLmNoYW5nZVZpZXcuYmluZCh0aGlzKTtcbiAgICB0aGlzLnJlZ2lzdGVyVXNlciA9IHRoaXMucmVnaXN0ZXJVc2VyLmJpbmQodGhpcyk7XG4gICAgdGhpcy5jbGVhclN0YXRlID0gdGhpcy5jbGVhclN0YXRlLmJpbmQodGhpcyk7XG4gIH1cblxuICBzdGF0aWMgY29udGV4dFR5cGUgPSBDb250ZXh0O1xuXG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgc3RvcmVfdXVpZDogcHJvcFR5cGVzLnN0cmluZyxcbiAgICBzdG9yZV9uYW1lOiBwcm9wVHlwZXMuc3RyaW5nLFxuICAgIHJlZ2lzdGVyX2VuYWJsZWQ6IHByb3BUeXBlcy5zdHJpbmcsXG4gIH07XG5cbiAgY2xlYXJGaWVsZHMoKSB7XG4gICAgY29uc3QgY29weSA9IHsgLi4udGhpcy5zdGF0ZSB9O1xuICAgIGZvciAoY29uc3Qga2V5IGluIGNvcHkuZmllbGRzKSB7XG4gICAgICBpZiAoY29weS5maWVsZHNba2V5XS52YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvcHkuZmllbGRzW2tleV0udmFsdWUgPSAnJztcbiAgICAgICAgaWYgKGNvcHkuZmllbGRzW2tleV0ucmVxdWlyZWQpIHtcbiAgICAgICAgICBjb3B5LmZpZWxkc1trZXldLmVycm9yID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoY29weS5maWVsZHMucGFzc3dvcmQudmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29weS5maWVsZHMucGFzc3dvcmQuZmVlZGJhY2sgPSAoXG4gICAgICAgIDw+XG4gICAgICAgICAgPGxpPkF0IGxlYXN0IDggY2hhcmFjdGVycyBsb25nPC9saT5cbiAgICAgICAgICA8bGk+QXQgbGVhc3Qgb25lIHNwZWNpYWwgY2hhcmFjdGVyPC9saT5cbiAgICAgICAgICA8bGk+QXQgbGVhc3Qgb25lIGNhcGl0YWwgbGV0dGVyPC9saT5cbiAgICAgICAgPC8+XG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLnNldFN0YXRlKGNvcHkpO1xuICB9XG5cbiAgY2hhbmdlVmlldyh2aWV3KSB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IHZpZXc6IHZpZXcgfSk7XG4gIH1cblxuICBjbGVhclN0YXRlKCkge1xuICAgIGNvbnN0IGNvcHkgPSB7IC4uLnRoaXMuc3RhdGUgfTtcbiAgICBjb3B5LmVycm9ycyA9IG51bGw7XG4gICAgY29weS5sb2FkZWQgPSB0cnVlO1xuICAgIGNvcHkudmlldyA9ICdSZWdpc3Rlcic7XG4gICAgY29weS5zdG9yZV9uYW1lID0gbnVsbDtcbiAgICBjb3B5LnN0b3JlX3V1aWQgPSBudWxsO1xuICAgIGNvcHkucGF0aWVudF91dWlkID0gbnVsbDtcbiAgICBjb3B5Lm5ld19wYXRpZW50X3V1aWQgPSBudWxsO1xuICAgIGNvcHkudXNlcl91dWlkID0gbnVsbDtcbiAgICBjb3B5LnVzZXJuYW1lID0gbnVsbDtcbiAgICBjb3B5LnBhc3N3b3JkID0gbnVsbDtcbiAgICB0aGlzLmNvbnRleHQucmVtb3ZlSXRlbSgncGFzc3dvcmQnKTtcbiAgICB0aGlzLmNvbnRleHQucmVtb3ZlSXRlbSgndXNlcl91dWlkJyk7XG4gICAgdGhpcy5jb250ZXh0LnJlbW92ZUl0ZW0oJ3BhdGllbnRfdXVpZCcpO1xuICAgIHRoaXMuY29udGV4dC5yZW1vdmVJdGVtKCdmaXJzdF9uYW1lJyk7XG4gICAgdGhpcy5jb250ZXh0LnJlbW92ZUl0ZW0oJ2xhc3RfbmFtZScpO1xuICAgIHRoaXMuc2V0U3RhdGUoY29weSk7XG4gIH1cblxuICByZWdpc3RlclVzZXIoKSB7XG4gICAgY29uc3QgY29weSA9IHsgLi4udGhpcy5zdGF0ZSB9O1xuICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgIGZpcnN0X25hbWU6IHRoaXMuc3RhdGUuZmllbGRzLmZpcnN0X25hbWUudmFsdWUsXG4gICAgICBsYXN0X25hbWU6IHRoaXMuc3RhdGUuZmllbGRzLmxhc3RfbmFtZS52YWx1ZSxcbiAgICAgIGVtYWlsOiB0aGlzLnN0YXRlLmZpZWxkcy5lbWFpbC52YWx1ZSxcbiAgICAgIHBhdGllbnRfdXVpZDogdGhpcy5jb250ZXh0LmdldFBhdGllbnQoKSxcbiAgICAgIHN0b3JlX3V1aWQ6IHRoaXMucHJvcHMuc3RvcmVfdXVpZCxcbiAgICB9O1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgIHVybDogJ2h0dHBzOi8vYXBpLXN0YWdpbmcuc3JzcGhhcm1hY3kuY29tLycsXG4gICAgICBlbmRwb2ludDogJ3B1YmxpYy92MS9hdXRoL3JlZ2lzdGVyJyxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgIH0sXG4gICAgICBkYXRhOiBwYXJhbXMsXG4gICAgfTtcbiAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGVkOiBmYWxzZSB9KTtcbiAgICBhcGlDYWxsKG9wdGlvbnMpLnRoZW4oIChyZXNwKSA9PiB7XG4gICAgICBjb25zdCByID0gSlNPTi5wYXJzZShyZXNwLmRhdGEpO1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIHVzZXJuYW1lOiBjb3B5LmZpZWxkcy5lbWFpbC52YWx1ZSxcbiAgICAgICAgcGFzc3dvcmQ6IGNvcHkuZmllbGRzLnBhc3N3b3JkLnZhbHVlLFxuICAgICAgICBmaXJzdF9uYW1lOiBjb3B5LmZpZWxkcy5maXJzdF9uYW1lLnZhbHVlLFxuICAgICAgICBsYXN0X25hbWU6IGNvcHkuZmllbGRzLmxhc3RfbmFtZS52YWx1ZSxcbiAgICAgICAgdXNlcl91dWlkOiByLnVzZXIudXNlcl91dWlkLFxuICAgICAgICBuZXdfcGF0aWVudF91dWlkOiByLnBhdGllbnRfdXNlci5wYXRpZW50X3V1aWQsXG4gICAgICAgIGxvYWRlZDogdHJ1ZSxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5jb250ZXh0LnNldFVzZXJVVUlEKHIudXNlci51c2VyX3V1aWQpO1xuICAgICAgdGhpcy5jb250ZXh0LnNldFBhc3N3b3JkKHRoaXMuc3RhdGUuZmllbGRzLnBhc3N3b3JkLnZhbHVlKTtcbiAgICAgIHRoaXMuY29udGV4dC5zZXRVc2VybmFtZSh0aGlzLnN0YXRlLmZpZWxkcy5lbWFpbC52YWx1ZSk7XG4gICAgICB0aGlzLmNvbnRleHQuc2V0UGF0aWVudChyLnBhdGllbnRfdXNlci5wYXRpZW50X3V1aWQpO1xuICAgICAgdGhpcy5jb250ZXh0LnNldEZpcnN0TmFtZSh0aGlzLnN0YXRlLmZpZWxkcy5maXJzdF9uYW1lLnZhbHVlKTtcbiAgICAgIHRoaXMuY29udGV4dC5zZXRMYXN0TmFtZSh0aGlzLnN0YXRlLmZpZWxkcy5sYXN0X25hbWUudmFsdWUpO1xuICAgICAgdGhpcy5jaGFuZ2VWaWV3KCdDb25maXJtYXRpb24nKTtcbiAgICB9KS5jYXRjaCggKGVycikgPT4ge1xuICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgIHRoaXMuc2V0U3RhdGUoeyBlcnJvcnM6IGdldEVycm9yTWVzc2FnZShlcnIpLCBsb2FkZWQ6IHRydWUgfSk7XG4gICAgfSk7XG4gIH1cblxuICBjb25maXJtQ29kZSgpIHtcbiAgICBjb25zdCBjb3B5ID0geyAuLi50aGlzLnN0YXRlIH07XG4gICAgY29uc3QgcGFyYW1zID0ge1xuICAgICAgdXNlcm5hbWU6IHRoaXMuY29udGV4dC5nZXRVc2VybmFtZSgpLFxuICAgICAgcGFzc3dvcmQ6IHRoaXMuY29udGV4dC5nZXRQYXNzd29yZCgpLFxuICAgICAgc3RvcmVfdXVpZDogdGhpcy5wcm9wcy5zdG9yZV91dWlkLFxuICAgICAgdXNlcl91dWlkOiB0aGlzLmNvbnRleHQuZ2V0VXNlclVVSUQoKSxcbiAgICAgIHBhdGllbnRfdXVpZDogdGhpcy5jb250ZXh0LmdldFBhdGllbnQoKSxcbiAgICAgIGNvZGU6IHRoaXMuc3RhdGUuZmllbGRzMi5jb25maXJtYXRpb24udmFsdWUsXG4gICAgICBmaXJzdF9uYW1lOiB0aGlzLmNvbnRleHQuZ2V0Rmlyc3ROYW1lKCksXG4gICAgICBsYXN0X25hbWU6IHRoaXMuY29udGV4dC5nZXRMYXN0TmFtZSgpLFxuICAgIH07XG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgdXJsOiAnaHR0cHM6Ly9hcGktc3RhZ2luZy5zcnNwaGFybWFjeS5jb20vJyxcbiAgICAgIGVuZHBvaW50OiAnYXV0aC9wYXRpZW50L2xvZ2luJyxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgIH0sXG4gICAgICBkYXRhOiBwYXJhbXMsXG4gICAgfTtcbiAgICBhcGlDYWxsKG9wdGlvbnMpLnRoZW4oIChyZXNwKSA9PiB7XG4gICAgICBjb25zdCByID0gSlNPTi5wYXJzZShyZXNwLmRhdGEpO1xuICAgICAgdGhpcy5jb250ZXh0LnNldEF1dGhUb2tlbnMocik7XG4gICAgICB0aGlzLmNsZWFyU3RhdGUoKTtcbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gJ3BvcnRhbC5odG1sP3N0b3JlX3V1aWQ9JyArIHRoaXMucHJvcHMuc3RvcmVfdXVpZDtcbiAgICB9KS5jYXRjaCggKGVycikgPT4ge1xuICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgIGNvcHkuZmllbGRzMi5jb25maXJtYXRpb24uZXJyb3IgPSB0cnVlO1xuICAgICAgY29weS5maWVsZHMyLmNvbmZpcm1hdGlvbi5mZWVkYmFjayA9ICdJbmNvcnJlY3QgQ29uZmlybWF0aW9uIENvZGUnO1xuICAgICAgY29weS5kaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5zZXRTdGF0ZShjb3B5KTtcbiAgICB9KTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBsZXQgcmVnaXN0ZXJTdWJ0aXRsZSA9ICcnO1xuICAgIGlmICh0aGlzLnByb3BzLnJlZ2lzdGVyX2VuYWJsZWQgPT0gJ1knKSB7XG4gICAgICByZWdpc3RlclN1YnRpdGxlID0gYFRvIHN1Ym1pdCB5b3VyIHJlZmlsbCByZXF1ZXN0LCByZWdpc3RlciBmb3IgJHt0aGlzLnByb3BzLnN0b3JlX25hbWV9J3MgUGF0aWVudCBQb3J0YWwuYDtcbiAgICB9XG4gICAgbGV0IGJvZHkgPSAoXG4gICAgICA8cD5Ob3QgSW1wbGVtZW50ZWQgWWV0PC9wPlxuICAgICk7XG4gICAgaWYgKCF0aGlzLnN0YXRlLmxvYWRlZCkge1xuICAgICAgYm9keSA9IChcbiAgICAgICAgPENvbnRhaW5lciBtYXhXaWR0aD0nbGcnIHN4PXt7IHBhZGRpbmc6ICcyMHB4ICcgfX0+XG4gICAgICAgICAgPExvYWRpbmcvPlxuICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnN0YXRlLmVycm9ycykge1xuICAgICAgbGV0IGVycm9yID0gJyc7XG4gICAgICBpZiAodGhpcy5zdGF0ZS5lcnJvcnMgPT0gJ0ludmFsaWQgZGF0YSBmb3JtYXQnIHx8IHRoaXMuc3RhdGUuZXJyb3JzID09ICdVbmV4cGVjdGVkIHZhbHVlIHByb3ZpZGUnKSB7XG4gICAgICAgIGVycm9yID0gJ01pc3Npbmcgb3IgaW52YWxpZCBzdG9yZSB0YWcgaW4gcmVxdWVzdCc7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuc3RhdGUuZXJyb3JzXG4gICAgICAgID09ICdOb3QgZW5vdWdoIHBhcmFtZXRlcnMgc3VwcGxpZWQgaW4gcmVxdWVzdCdcbiAgICAgICAgfHwgdGhpcy5zdGF0ZS5lcnJvcnNcbiAgICAgICAgPT0gJ1VuZXhwZWN0ZWQvTWlzc2luZyBxdWVyeSBzdHJpbmcgc3VwcGxpZWQnKSB7XG4gICAgICAgIGVycm9yID0gJ01pc3Npbmcgc3RvcmUgdGFnIG9yIFJ4IG51bWJlciBpbiBxdWVyeSBzdHJpbmcnO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLnN0YXRlLmVycm9ycyA9PSAnSW52YWxpZCBkYXRhIHN1cHBsaWVkIGluIHRoZSByZXF1ZXN0Jykge1xuICAgICAgICBlcnJvciA9ICdJbnZhbGlkIGhhc2ggZ2l2ZW4gaW4gdGhlIHF1ZXJ5IHN0cmluZyc7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuc3RhdGUuZXJyb3JzLmluY2x1ZGVzKCdVc2VyIGFscmVhZHkgZXhpc3QnKSkge1xuICAgICAgICBlcnJvciA9ICdBIHVzZXIgd2l0aCB0aGF0IGVtYWlsIGFscmVhZHkgZXhpc3RzLic7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuc3RhdGUuZXJyb3JzLmluY2x1ZGVzKCdFbWFpbCBkb2VzIG5vdCBtYXRjaCB3aGF0IGlzIGFzc29jaWF0ZWQgdG8gdGhlIHBhdGllbnQuJykpIHtcbiAgICAgICAgZXJyb3IgPSAnRW1haWwgZG9lcyBub3QgbWF0Y2ggd2hhdCBpcyBhc3NvY2lhdGVkIHRvIHRoZSBwYXRpZW50LiAnXG4gICAgICAgICsgJ1BsZWFzZSBjb250YWN0ICcgKyB0aGlzLnByb3BzLnN0b3JlX25hbWUgKyAnIHRvIHJlZ2lzdGVyLic7XG4gICAgICB9XG4gICAgICBjb25zdCBwcm9wcyA9IHtcbiAgICAgICAgbWVzc2FnZTogZXJyb3IgPyBlcnJvciA6IHRoaXMuc3RhdGUuZXJyb3JzLFxuICAgICAgfTtcbiAgICAgIGJvZHkgPSAoXG4gICAgICAgIDxDb250YWluZXIgbWF4V2lkdGg9J2xnJyBzeD17eyBwYWRkaW5nOiAnMjBweCAnIH19PlxuICAgICAgICAgIHtFcnJvcihwcm9wcyl9XG4gICAgICAgICAgPEdyaWQgY29udGFpbmVyIGRpcmVjdGlvbj0ncm93JyBqdXN0aWZ5Q29udGVudD0nc3BhY2UtYXJvdW5kJyBhbGlnbkl0ZW1zPSdjZW50ZXInPlxuICAgICAgICAgICAgPEdyaWQgaXRlbT5cbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIHZhcmlhbnQ9J2NvbnRhaW5lZCdcbiAgICAgICAgICAgICAgICBjb2xvcj0ncHJpbWFyeSdcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlVmlldyh0aGlzLnN0YXRlLnZpZXcpO1xuICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGVycm9yczogZmFsc2UgfSk7XG4gICAgICAgICAgICAgICAgfX0+XG4gICAgICAgICAgICBCYWNrXG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBlcnJvciA9PSAnQSB1c2VyIHdpdGggdGhhdCBlbWFpbCBhbHJlYWR5IGV4aXN0cy4nXG4gICAgICAgICAgICAgID8gPEdyaWQgaXRlbT5cbiAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PSdjb250YWluZWQnXG4gICAgICAgICAgICAgICAgICBjb2xvcj0ncHJpbWFyeSdcbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSAncG9ydGFsLmh0bWw/c3RvcmVfdXVpZD0nICsgdGhpcy5wcm9wcy5zdG9yZV91dWlkO1xuICAgICAgICAgICAgICAgICAgfX0+XG4gICAgICAgICAgICAgICAgICBMb2cgSW5cbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICA6IDw+PC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9HcmlkPlxuICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN3aXRjaCAodGhpcy5zdGF0ZS52aWV3KSB7XG4gICAgICAgIGNhc2UgJ1JlZ2lzdGVyJzpcbiAgICAgICAgICBpZiAodGhpcy5jb250ZXh0LmdldFBhc3N3b3JkKCkpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlVmlldygnQ29uZmlybWF0aW9uJyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJvZHkgPSAoXG4gICAgICAgICAgICA8Zm9ybSBpZD0ncmVnaXN0ZXInPlxuICAgICAgICAgICAgICA8R3JpZCBjb250YWluZXIgc3BhY2luZz17MX0gc3g9e3sgcGFkZGluZzogJzIwcHggJyB9fT5cbiAgICAgICAgICAgICAgICA8R3JpZCBpdGVtIHhzPXsxMn0+XG4gICAgICAgICAgICAgICAgICA8VHlwb2dyYXBoeSB2YXJpYW50PSdoNCc+XG4gICAgICAgICAgICAgICAgICAgICAgVXNlciBSZWdpc3RyYXRpb25cbiAgICAgICAgICAgICAgICAgIDwvVHlwb2dyYXBoeT5cbiAgICAgICAgICAgICAgICAgIDxUeXBvZ3JhcGh5IHZhcmlhbnQ9J3N1YnRpdGxlMSc+XG4gICAgICAgICAgICAgICAgICAgIHtyZWdpc3RlclN1YnRpdGxlfVxuICAgICAgICAgICAgICAgICAgPC9UeXBvZ3JhcGh5PlxuICAgICAgICAgICAgICAgICAgPGhyLz5cbiAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17MTJ9PlxuICAgICAgICAgICAgICAgICAgPEdyaWQgY29udGFpbmVyIHNwYWNpbmc9ezJ9PlxuICAgICAgICAgICAgICAgICAgICA8R3JpZCBpdGVtIHhzPXsxMn0+XG4gICAgICAgICAgICAgICAgICAgICAgPFRleHRGaWVsZFxuICAgICAgICAgICAgICAgICAgICAgICAgZnVsbFdpZHRoXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvcj17dGhpcy5zdGF0ZS5maWVsZHMuZmlyc3RfbmFtZS5lcnJvcn1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPXt0aGlzLnN0YXRlLmZpZWxkcy5maXJzdF9uYW1lLnJlcXVpcmVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT0nc21hbGwnXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSd0ZXh0J1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9e3RoaXMuc3RhdGUuZmllbGRzLmZpcnN0X25hbWUudGl0bGV9XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWxwZXJUZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlICYmIHRoaXMuc3RhdGUuZmllbGRzLmZpcnN0X25hbWUuZXJyb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5zdGF0ZS5maWVsZHMuZmlyc3RfbmFtZS5mZWVkYmFja1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3RoaXMuc3RhdGUuZmllbGRzLmZpcnN0X25hbWUudmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBlLnRhcmdldC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZS5maWVsZHMuZmlyc3RfbmFtZS5vbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17MTJ9PlxuICAgICAgICAgICAgICAgICAgICAgIDxUZXh0RmllbGRcbiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGxXaWR0aFxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3I9e3RoaXMuc3RhdGUuZmllbGRzLmxhc3RfbmFtZS5lcnJvcn1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPXt0aGlzLnN0YXRlLmZpZWxkcy5sYXN0X25hbWUucmVxdWlyZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPSdzbWFsbCdcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9J3RleHQnXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD17dGhpcy5zdGF0ZS5maWVsZHMubGFzdF9uYW1lLnRpdGxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgaGVscGVyVGV4dD17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSAmJiB0aGlzLnN0YXRlLmZpZWxkcy5sYXN0X25hbWUuZXJyb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5zdGF0ZS5maWVsZHMubGFzdF9uYW1lLmZlZWRiYWNrXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICcnXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dGhpcy5zdGF0ZS5maWVsZHMubGFzdF9uYW1lLnZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZS50YXJnZXQudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUuZmllbGRzLmxhc3RfbmFtZS5vbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17MTJ9PlxuICAgICAgICAgICAgICAgICAgICAgIDxUZXh0RmllbGRcbiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGxXaWR0aFxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3I9e3RoaXMuc3RhdGUuZmllbGRzLmVtYWlsLmVycm9yfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ9e3RoaXMuc3RhdGUuZmllbGRzLmVtYWlsLnJlcXVpcmVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT0nc21hbGwnXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSd0ZXh0J1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9e3RoaXMuc3RhdGUuZmllbGRzLmVtYWlsLnRpdGxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgaGVscGVyVGV4dD17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSAmJiB0aGlzLnN0YXRlLmZpZWxkcy5lbWFpbC5lcnJvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnN0YXRlLmZpZWxkcy5lbWFpbC5mZWVkYmFja1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3RoaXMuc3RhdGUuZmllbGRzLmVtYWlsLnZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZS50YXJnZXQudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUuZmllbGRzLmVtYWlsLm9uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICA8R3JpZCBpdGVtIHhzPXsxMn0gc3g9e3sgZGlzcGxheTogJ2ZsZXgnLCBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgPFRleHRGaWVsZFxuICAgICAgICAgICAgICAgICAgICAgICAgZnVsbFdpZHRoXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvcj17dGhpcy5zdGF0ZS5maWVsZHMucGFzc3dvcmQuZXJyb3J9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZD17dGhpcy5zdGF0ZS5maWVsZHMucGFzc3dvcmQucmVxdWlyZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPSdzbWFsbCdcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9J3Bhc3N3b3JkJ1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9e3RoaXMuc3RhdGUuZmllbGRzLnBhc3N3b3JkLnRpdGxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgaGVscGVyVGV4dD17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSAmJiB0aGlzLnN0YXRlLmZpZWxkcy5wYXNzd29yZC5lcnJvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnN0YXRlLmZpZWxkcy5wYXNzd29yZC5mZWVkYmFja1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3RoaXMuc3RhdGUuZmllbGRzLnBhc3N3b3JkLnZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZS50YXJnZXQudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUuZmllbGRzLnBhc3N3b3JkLm9uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICA8R3JpZCBpdGVtIHhzPXsxMn0gc3g9e3sgZGlzcGxheTogJ2ZsZXgnLCBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgPFRleHRGaWVsZFxuICAgICAgICAgICAgICAgICAgICAgICAgZnVsbFdpZHRoXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvcj17dGhpcy5zdGF0ZS5maWVsZHMuY29uZmlybS5lcnJvcn1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPXt0aGlzLnN0YXRlLmZpZWxkcy5jb25maXJtLnJlcXVpcmVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT0nc21hbGwnXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSdwYXNzd29yZCdcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXt0aGlzLnN0YXRlLmZpZWxkcy5jb25maXJtLnRpdGxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgaGVscGVyVGV4dD17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSAmJiB0aGlzLnN0YXRlLmZpZWxkcy5jb25maXJtLmVycm9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMuc3RhdGUuZmllbGRzLmNvbmZpcm0uZmVlZGJhY2tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJydcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXt0aGlzLnN0YXRlLmZpZWxkcy5jb25maXJtLnZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZS50YXJnZXQudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUuZmllbGRzLmNvbmZpcm0ub25DaGFuZ2UodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgICAgIDxHcmlkIGl0ZW0geHM9ezEyfSBzeD17eyBwYWRkaW5nVG9wOiAnNXB4JywgYmdjb2xvcjogJ3JnYmEoMCwwLDAsLjA1JyB9fT5cbiAgICAgICAgICAgICAgICAgICAgICA8R3JpZCBjb250YWluZXIgc3BhY2luZz17Mn0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8R3JpZCBpdGVtIHhzPXs2fSBzeD17eyBkaXNwbGF5OiAnZmxleCcsIGp1c3RpZnlDb250ZW50OiAnZmxleC1zdGFydCcgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9J3Jlc2V0J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9J2NvbnRhaW5lZCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj0nZXJyb3InXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNsZWFyRmllbGRzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzZXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8R3JpZCBpdGVtIHhzPXs2fSBzeD17eyBkaXNwbGF5OiAnZmxleCcsIGp1c3RpZnlDb250ZW50OiAnZmxleC1lbmQnIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPSdzYXZlJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9J2NvbnRhaW5lZCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj0ncHJpbWFyeSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpZWxkcyA9IHRoaXMuc3RhdGUuZmllbGRzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHN1Ym1pdCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGZpZWxkIGluIGZpZWxkcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmllbGRzW2ZpZWxkXS5lcnJvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1Ym1pdCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3VibWl0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVnaXN0ZXJVc2VyKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3VibWl0XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICAgICk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ0NvbmZpcm1hdGlvbic6XG4gICAgICAgICAgYm9keSA9IChcbiAgICAgICAgICAgIDxmb3JtIGlkPSdjb25maXJtYXRpb24nPlxuICAgICAgICAgICAgICA8R3JpZCBjb250YWluZXIgc3BhY2luZz17MX0gc3g9e3sgcGFkZGluZzogJzIwcHgnIH19PlxuICAgICAgICAgICAgICAgIDxHcmlkIGl0ZW0geHM9ezEyfT5cbiAgICAgICAgICAgICAgICAgIDxUeXBvZ3JhcGh5IHZhcmlhbnQ9J2g0Jz5FbWFpbCBDb25maXJtYXRpb248L1R5cG9ncmFwaHk+XG4gICAgICAgICAgICAgICAgICA8VHlwb2dyYXBoeSB2YXJpYW50PSdzdWJ0aXRsZTEnPkNoZWNrIHlvdXIgZW1haWwgZm9yIHlvdXIgY29uZmlybWF0aW9uIGNvZGUuPC9UeXBvZ3JhcGh5PlxuICAgICAgICAgICAgICAgICAgPGhyLz5cbiAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17MTJ9PlxuICAgICAgICAgICAgICAgICAgPEdyaWQgY29udGFpbmVyIHNwYWNpbmc9ezJ9PlxuICAgICAgICAgICAgICAgICAgICA8R3JpZCBpdGVtIHhzPXsxMn0+XG4gICAgICAgICAgICAgICAgICAgICAgPFRleHRGaWVsZFxuICAgICAgICAgICAgICAgICAgICAgICAgZnVsbFdpZHRoXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvcj17dGhpcy5zdGF0ZS5maWVsZHMyLmNvbmZpcm1hdGlvbi5lcnJvcn1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPXt0aGlzLnN0YXRlLmZpZWxkczIuY29uZmlybWF0aW9uLnJlcXVpcmVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT0nc21hbGwnXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSd0ZXh0J1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9e3RoaXMuc3RhdGUuZmllbGRzMi5jb25maXJtYXRpb24udGl0bGV9XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWxwZXJUZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlICYmIHRoaXMuc3RhdGUuZmllbGRzMi5jb25maXJtYXRpb24uZXJyb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5zdGF0ZS5maWVsZHMyLmNvbmZpcm1hdGlvbi5mZWVkYmFja1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3RoaXMuc3RhdGUuZmllbGRzMi5jb25maXJtYXRpb24udmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBlLnRhcmdldC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZS5maWVsZHMyLmNvbmZpcm1hdGlvbi5vbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17MTJ9IHN4PXt7IHBhZGRpbmdUb3A6ICc1cHgnLCBiZ2NvbG9yOiAncmdiYSgwLDAsMCwuMDUnIH19PlxuICAgICAgICAgICAgICAgICAgICAgIDxHcmlkIGNvbnRhaW5lciBzcGFjaW5nPXsyfT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkIGl0ZW0geHM9ezEyfSBzeD17eyBkaXNwbGF5OiAnZmxleCcsIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT0nc2F2ZSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PSdjb250YWluZWQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I9J3ByaW1hcnknXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e3RoaXMuc3RhdGUuZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmaWVsZHMyID0gdGhpcy5zdGF0ZS5maWVsZHMyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHN1Ym1pdCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGZpZWxkIGluIGZpZWxkczIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZpZWxkczJbZmllbGRdLmVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VibWl0ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdWJtaXQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGRpc2FibGVkOiB0cnVlIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpcm1Db2RlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1Ym1pdFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgIDwvZm9ybT5cbiAgICAgICAgICApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gKFxuICAgICAgPENvbnRhaW5lciBtYXhXaWR0aD0nbGcnPlxuICAgICAgICA8UGFwZXIgdmFyaWFudD0nb3V0bGluZWQnPlxuICAgICAgICAgIHtib2R5fVxuICAgICAgICA8L1BhcGVyPlxuICAgICAgPC9Db250YWluZXI+XG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBSZWdpc3RyYXRpb25Gb3JtO1xuIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgTG9hZGluZyBmcm9tICcuLi8uLi8uLi8uLi9saWIvbG9hZGluZy5qcyc7XG5pbXBvcnQgRXJyb3IgZnJvbSAnLi4vLi4vLi4vLi4vbGliL2Vycm9yLmpzJztcbmltcG9ydCB7IENvbnRleHQgfSBmcm9tICcuLi9jb250ZXh0L2NvbnRleHQuanMnO1xuaW1wb3J0IGFwaUNhbGwgZnJvbSAnLi4vLi4vLi4vLi4vbGliL2FwaUNhbGwuanMnO1xuaW1wb3J0IGdldEVycm9yTWVzc2FnZSBmcm9tICcuLi8uLi8uLi8uLi9saWIvZ2V0RXJyb3JNZXNzYWdlLmpzJztcbmltcG9ydCBSZWdpc3RyYXRpb25Gb3JtIGZyb20gJy4uL2NvbXBvbmVudHMvUmVnaXN0cmF0aW9uRm9ybS5qcyc7XG5pbXBvcnQgeyBBcHBCYXIsIFRvb2xiYXIsIEJ1dHRvbiwgVHlwb2dyYXBoeSwgR3JpZCwgQm94LCBQYXBlciwgQ29udGFpbmVyIH0gZnJvbSAnQG11aS9tYXRlcmlhbCc7XG5cblxuY2xhc3MgSG9tZSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICBlcnJvcnM6IG51bGwsXG4gICAgICBsb2FkZWQ6IGZhbHNlLFxuICAgICAgc3VibWl0OiBmYWxzZSxcbiAgICAgIHJlZGlyZWN0OiBmYWxzZSxcbiAgICAgIHRhZzogdGhpcy5nZXRTdG9yZU51bWJlcigpLFxuICAgICAgcnhOdW1iZXI6IHRoaXMuZ2V0UnhOdW1iZXIoKSxcbiAgICAgIGhhc2g6IHRoaXMuZ2V0SGFzaCgpLFxuICAgICAgcGF0aWVudF91c2VyOiBmYWxzZSxcbiAgICAgIHN0b3JlX25hbWU6ICcnIHx8IG51bGwsXG4gICAgICBsb2dvOiBudWxsLFxuICAgICAgc3RvcmVfYWRkcmVzczogJycgfHwgbnVsbCxcbiAgICAgIHN0b3JlX2FkZHJlc3NfdHdvOiAnJyB8fCBudWxsLFxuICAgICAgY2l0eTogJycgfHwgbnVsbCxcbiAgICAgIHN0YXRlOiAnJyB8fCBudWxsLFxuICAgICAgemlwOiAnJyB8fCBudWxsLFxuICAgICAgcGhhcm1hY3lfcGhvbmU6ICcnIHx8IG51bGwsXG4gICAgICBzdG9yZV91dWlkOiAnJyB8fCBudWxsLFxuICAgICAgcmVxdWVzdGVkOiAnJyB8fCBudWxsLFxuICAgICAgZGlzYWJsZV9idXR0b246IGZhbHNlLFxuICAgICAgc2hvd0Zvcm06IGZhbHNlLFxuICAgICAgcmVnaXN0ZXJfZW5hYmxlZDogJ04nLFxuICAgICAgc2hvd1JlZ2lzdGVyQnV0dG9uOiBmYWxzZSxcbiAgICAgIHZpZXc6ICdwcml2YXRlJyxcbiAgICB9O1xuICAgIHRoaXMucmVxdWVzdFJlZmlsbCA9IHRoaXMucmVxdWVzdFJlZmlsbC5iaW5kKHRoaXMpO1xuICAgIHRoaXMuZ2V0RnVsbEF1dGggPSB0aGlzLmdldEZ1bGxBdXRoLmJpbmQodGhpcyk7XG4gICAgdGhpcy5nZXRIYXNoID0gdGhpcy5nZXRIYXNoLmJpbmQodGhpcyk7XG4gICAgdGhpcy5nZXRTdG9yZU51bWJlciA9IHRoaXMuZ2V0U3RvcmVOdW1iZXIuYmluZCh0aGlzKTtcbiAgICB0aGlzLmdldFJ4TnVtYmVyID0gdGhpcy5nZXRSeE51bWJlci5iaW5kKHRoaXMpO1xuICAgIHRoaXMuY29uc3RydWN0WE1MRG9jdW1lbnQgPSB0aGlzLmNvbnN0cnVjdFhNTERvY3VtZW50LmJpbmQodGhpcyk7XG4gICAgdGhpcy5lbnRpdHkgPSB0aGlzLmVudGl0eS5iaW5kKHRoaXMpO1xuICAgIHRoaXMubG9hZCA9IHRoaXMubG9hZC5iaW5kKHRoaXMpO1xuICB9XG5cbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBwcmVzY3JpcHRpb246IFByb3BUeXBlcy5vYmplY3QsXG4gICAgc2V0UmVmaWxsUmVzcG9uc2U6IFByb3BUeXBlcy5mdW5jLFxuICAgIHRoZW1lTW9kZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIHN0YXRpYyBjb250ZXh0VHlwZSA9IENvbnRleHQ7XG5cbiAgZ2V0RnVsbEF1dGgoKSB7XG4gICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2guc3Vic3RyaW5nKDEpID09ICdkZW1vJ1xuICAgIHx8IHdpbmRvdy5sb2NhdGlvbi5zZWFyY2guc3Vic3RyaW5nKDEpID09ICd0PWRlbW8nKSB7XG4gICAgICByZXR1cm4gd2luZG93LmxvY2F0aW9uLmhyZWYgPSAnaHR0cHM6Ly9zcnNyZmwtc3RhZ2luZy5jb20vP3Q9MUhzMUYyeTc3MTAyNzEwMTA4Nic7XG4gICAgfSBlbHNlIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoLnN1YnN0cmluZygxLCAzKSA9PSAndD0nKSB7XG4gICAgICByZXR1cm4gd2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24uc2VhcmNoLnN1YnN0cmluZygxKTtcbiAgICB9XG4gIH1cblxuICBnZXRIYXNoKCkge1xuICAgIHJldHVybiB0aGlzLmdldEZ1bGxBdXRoKCkuc3Vic3RyaW5nKDAsIDcpO1xuICB9XG5cbiAgZ2V0U3RvcmVOdW1iZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RnVsbEF1dGgoKS5zdWJzdHJpbmcoNywgMTMpO1xuICB9XG5cbiAgZ2V0UnhOdW1iZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RnVsbEF1dGgoKS5zdWJzdHJpbmcoMTMpLnJlcGxhY2UoL1teMC05XS9nLCAnJyk7XG4gIH1cblxuICBlbnRpdHkoLi4uYXJncykge1xuICAgIGNvbnN0IFtkb2MsIGVudGl0eU5hbWUsIC4uLmV4dHJhXSA9IGFyZ3M7XG4gICAgY29uc3Qgbm9kZSA9IGRvYy5jcmVhdGVFbGVtZW50KGVudGl0eU5hbWUpO1xuICAgIGZvciAoY29uc3QgYXJnIG9mIGV4dHJhKSB7XG4gICAgICBpZiAoIWFyZykge1xuICAgICAgICBub2RlLmFwcGVuZENoaWxkKGRvYy5jcmVhdGVUZXh0Tm9kZSgnJykpO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgYXJnID09PSAnc3RyaW5nJykge1xuICAgICAgICBub2RlLmFwcGVuZENoaWxkKGRvYy5jcmVhdGVUZXh0Tm9kZShhcmcpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5vZGUuYXBwZW5kQ2hpbGQoYXJnKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG5vZGU7XG4gIH1cblxuICBjb25zdHJ1Y3RYTUxEb2N1bWVudChsYXN0bmFtZSwgZmlyc3RuYW1lLCBwaG9uZSwgZW1haWwsIG1lc3NhZ2UpIHtcbiAgICBjb25zdCBkb2MgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudCgnaHR0cDovL3d3dy5zcnNwaGFybWFjeS5jb20vWE1ML1BhdGllbnRSZWZpbGxSZXF1ZXN0JyxcbiAgICAgICAgJ1BhdGllbnRSZWZpbGxSZXF1ZXN0JyxcbiAgICAgICAgbnVsbCk7XG5cbiAgICBjb25zdCByb290ID0gZG9jLmRvY3VtZW50RWxlbWVudDtcbiAgICByb290LmFwcGVuZENoaWxkKHRoaXMuZW50aXR5KGRvYywgJ1RvJywgdGhpcy5zdGF0ZS50YWcpKTtcbiAgICByb290LmFwcGVuZENoaWxkKHRoaXMuZW50aXR5KGRvYywgJ0Zyb20nLCAnc3JzcmZsJykpO1xuICAgIHJvb3QuYXBwZW5kQ2hpbGQodGhpcy5lbnRpdHkoZG9jLCAnQXV0aCcsIHRoaXMuc3RhdGUuaGFzaCkpO1xuICAgIHJvb3QuYXBwZW5kQ2hpbGQodGhpcy5lbnRpdHkoZG9jLCAnU2VudFRpbWUnLCBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkpKTtcbiAgICByb290LmFwcGVuZENoaWxkKHRoaXMuZW50aXR5KGRvYywgJ01lc3NhZ2VJRCcsIG5ldyBEYXRlKCkuZ2V0VGltZSgpLnRvU3RyaW5nKCkpKTtcbiAgICByb290LmFwcGVuZENoaWxkKHRoaXMuZW50aXR5KGRvYywgJ1J4TnVtYmVycycsXG4gICAgICAgIHRoaXMuZW50aXR5KGRvYywgJ1J4TnVtYmVyJywgdGhpcy5zdGF0ZS5yeE51bWJlcikpKTtcbiAgICByb290LmFwcGVuZENoaWxkKHRoaXMuZW50aXR5KGRvYywgJ0NvbnRhY3QnLFxuICAgICAgICB0aGlzLmVudGl0eShkb2MsICdMYXN0TmFtZScsIGxhc3RuYW1lKSxcbiAgICAgICAgdGhpcy5lbnRpdHkoZG9jLCAnRmlyc3ROYW1lJywgZmlyc3RuYW1lKSxcbiAgICAgICAgdGhpcy5lbnRpdHkoZG9jLCAnUGhvbmUnLCBwaG9uZSksXG4gICAgICAgIHRoaXMuZW50aXR5KGRvYywgJ0VtYWlsJywgZW1haWwpKSk7XG4gICAgcm9vdC5hcHBlbmRDaGlsZCh0aGlzLmVudGl0eShkb2MsICdDb21tZW50JywgbWVzc2FnZSkpO1xuICAgIHJldHVybiBkb2M7XG4gIH1cblxuICBsb2FkKCkge1xuICAgIGNvbnN0IGF1dGggPSB0aGlzLmdldEZ1bGxBdXRoKCk7XG4gICAgaWYgKCFhdXRoKSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgICB2aWV3OiAncHVibGljJyxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICAgIHRhZzogdGhpcy5nZXRTdG9yZU51bWJlcigpLFxuICAgICAgICByeF9udW1iZXI6IHRoaXMuZ2V0UnhOdW1iZXIoKSxcbiAgICAgICAgYXV0aDogdGhpcy5nZXRIYXNoKCksXG4gICAgICB9O1xuICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgbWV0aG9kOiAnZ2V0JyxcbiAgICAgICAgZW5kcG9pbnQ6ICdxdWVyeScsXG4gICAgICAgIHBhcmFtczogcGFyYW1zLFxuICAgICAgfTtcbiAgICAgIGFwaUNhbGwob3B0aW9ucykudGhlbigocmVzcCkgPT4ge1xuICAgICAgICBjb25zdCByID0gSlNPTi5wYXJzZShyZXNwLmRhdGEpO1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICBzdG9yZV9uYW1lOiByLm5hbWUsXG4gICAgICAgICAgbG9nbzogci5sb2dvLFxuICAgICAgICAgIHN0b3JlX2FkZHJlc3M6IHIuYWRkcmVzczEsXG4gICAgICAgICAgc3RvcmVfYWRkcmVzc190d286IHIuYWRkcmVzczIsXG4gICAgICAgICAgY2l0eTogci5jaXR5LFxuICAgICAgICAgIHN0YXRlOiByLnN0YXRlLFxuICAgICAgICAgIHppcDogci56aXAsXG4gICAgICAgICAgcGhhcm1hY3lfcGhvbmU6IHIucGhvbmUsXG4gICAgICAgICAgc3RvcmVfdXVpZDogci5zdG9yZV91dWlkLFxuICAgICAgICAgIGxvYWRlZDogdHJ1ZSxcbiAgICAgICAgICByZWdpc3Rlcl9lbmFibGVkOiByLnNyc3JmbF9yZWdpc3RlcixcbiAgICAgICAgICBzaG93Rm9ybTogci5zcnNyZmxfcmVnaXN0ZXIgPT0gJ1knID8gdHJ1ZSA6IGZhbHNlLFxuICAgICAgICAgIHBhdGllbnRfdXNlcjogci51c2VycyAmJiByLnVzZXJzLmxlbmd0aCA+IDAgPyB0cnVlIDogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoci5wYXRpZW50X3V1aWQpIHtcbiAgICAgICAgICB0aGlzLmNvbnRleHQuc2V0UGF0aWVudChyLnBhdGllbnRfdXVpZCk7XG4gICAgICAgIH1cbiAgICAgIH0pLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IGVycj8ucmVzcG9uc2U/LmRhdGEgPyBKU09OLnBhcnNlKGVyci5yZXNwb25zZS5kYXRhKSA6ICcnO1xuICAgICAgICBpZiAoIWRhdGEpIHtcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgZXJyb3JzOiAnU29tZXRoaW5nIHVuZXhwZWN0ZWQgaGFwcGVuZWQnLCBsb2FkZWQ6IHRydWUgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAoZGF0YS5yZWRpcmVjdCkge1xuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyByZWRpcmVjdDogdHJ1ZSwgbG9hZGVkOiB0cnVlIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBkYXRhLm1lc3NhZ2U7XG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGVycm9yczogZ2V0RXJyb3JNZXNzYWdlKG1lc3NhZ2UpLCBsb2FkZWQ6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIHRoaXMubG9hZCgpO1xuICB9XG5cbiAgY29tcG9uZW50RGlkVXBkYXRlKCkge1xuICAgIGlmICghdGhpcy5zdGF0ZS5sb2FkZWQpIHtcbiAgICAgIHRoaXMubG9hZCgpO1xuICAgIH1cbiAgfVxuXG4gIHJlcXVlc3RSZWZpbGwoKSB7XG4gICAgY29uc3QgcmVmaWxsID0gJzw/eG1sIHZlcnNpb249XCIxLjBcIj8+JyArIG5ldyBYTUxTZXJpYWxpemVyKCkuc2VyaWFsaXplVG9TdHJpbmcodGhpcy5jb25zdHJ1Y3RYTUxEb2N1bWVudCgpKTtcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICBlbmRwb2ludDogJ3N1Ym1pdCcsXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgICdDb250ZW50LVR5cGUnOiAndGV4dC94bWwnLFxuICAgICAgfSxcbiAgICAgIGRhdGE6IHJlZmlsbCxcbiAgICB9O1xuICAgIGFwaUNhbGwob3B0aW9ucykudGhlbiggKHJlc3ApID0+IHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICByZXF1ZXN0ZWQ6ICdSZWZpbGwgcmVxdWVzdGVkIHN1Y2Nlc3NmdWxseS4nLFxuICAgICAgICBzaG93UmVnaXN0ZXJCdXR0b246IHRoaXMuc3RhdGUucmVnaXN0ZXJfZW5hYmxlZCA9PSAnTycgPyB0cnVlIDogZmFsc2UsXG4gICAgICB9KTtcbiAgICB9KS5jYXRjaCggKGVycikgPT4ge1xuICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgIHRoaXMuc2V0U3RhdGUoeyBlcnJvcnM6IGdldEVycm9yTWVzc2FnZShlcnIpLCBsb2FkZWQ6IHRydWUgfSk7XG4gICAgfSk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgbGV0IGJvZHkgPSAoXG4gICAgICA8TG9hZGluZy8+XG4gICAgKTtcbiAgICBpZiAoIXRoaXMuc3RhdGUubG9hZGVkKSB7XG4gICAgICBib2R5ID0gKFxuICAgICAgICA8TG9hZGluZy8+XG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zdGF0ZS5yZWRpcmVjdCkge1xuICAgICAgY29uc3Qgc3RvcmV0YWcgPSB0aGlzLmdldFN0b3JlTnVtYmVyKCk7XG4gICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9ICd3ZWJyZWZpbGxmb3JtLycgKyBzdG9yZXRhZztcbiAgICB9IGVsc2UgaWYgKHRoaXMuc3RhdGUuZXJyb3JzKSB7XG4gICAgICBsZXQgZXJyb3IgPSAnJztcbiAgICAgIGlmICh0aGlzLnN0YXRlLmVycm9ycyA9PSAnSW52YWxpZCBkYXRhIGZvcm1hdCcgfHwgdGhpcy5zdGF0ZS5lcnJvcnMgPT0gJ1VuZXhwZWN0ZWQgdmFsdWUgcHJvdmlkZScpIHtcbiAgICAgICAgZXJyb3IgPSAnTWlzc2luZyBvciBpbnZhbGlkIHN0b3JlIHRhZyBpbiByZXF1ZXN0JztcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1tdWx0aS1zcGFjZXNcbiAgICAgIH0gZWxzZSBpZiAoICAgdGhpcy5zdGF0ZS5lcnJvcnMgPT0gJ05vdCBlbm91Z2ggcGFyYW1ldGVycyBzdXBwbGllZCBpbiByZXF1ZXN0J1xuICAgICAgICAgICAgICAgICB8fCB0aGlzLnN0YXRlLmVycm9ycyA9PSAnVW5leHBlY3RlZC9NaXNzaW5nIHF1ZXJ5IHN0cmluZyBzdXBwbGllZCcpIHtcbiAgICAgICAgZXJyb3IgPSAnTWlzc2luZyBzdG9yZSB0YWcgb3IgUnggbnVtYmVyIGluIHF1ZXJ5IHN0cmluZyc7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuc3RhdGUuZXJyb3JzID09ICdJbnZhbGlkIGRhdGEgc3VwcGxpZWQgaW4gdGhlIHJlcXVlc3QnKSB7XG4gICAgICAgIGVycm9yID0gJ0ludmFsaWQgaGFzaCBnaXZlbiBpbiB0aGUgcXVlcnkgc3RyaW5nJztcbiAgICAgIH1cbiAgICAgIGNvbnN0IHByb3BzID0ge1xuICAgICAgICBtZXNzYWdlOiBlcnJvciA/IGVycm9yIDogdGhpcy5zdGF0ZS5lcnJvcnMsXG4gICAgICB9O1xuICAgICAgaWYgKHRoaXMuc3RhdGUuc3RvcmVfbmFtZSkge1xuICAgICAgICBwcm9wcy5yZXR1cm5UbyA9ICgpID0+IHRoaXMuc2V0U3RhdGUoeyBlcnJvcnM6IG51bGwgfSk7XG4gICAgICB9XG4gICAgICBib2R5ID0gKFxuICAgICAgICBFcnJvcihwcm9wcylcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLnN0YXRlLnBhdGllbnRfdXNlcikge1xuICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9ICdwb3J0YWwuaHRtbD9zdG9yZV91dWlkPScgKyB0aGlzLnN0YXRlLnN0b3JlX3V1aWQgKyAnIy8nO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLnN0YXRlLnZpZXcgPT09ICdwdWJsaWMnKSB7XG4gICAgICAgIGJvZHkgPSAoXG4gICAgICAgICAgPEdyaWQ+XG4gICAgICAgICAgICA8QXBwQmFyIHBvc2l0aW9uPVwic3RhdGljXCI+XG4gICAgICAgICAgICAgIDxUb29sYmFyPlxuICAgICAgICAgICAgICAgIDxUeXBvZ3JhcGh5PlJ4UmVhZHkgLyBTbWFydHBob25lIFJlZmlsbCBSZXF1ZXN0IFNlcnZpY2U8L1R5cG9ncmFwaHk+XG4gICAgICAgICAgICAgIDwvVG9vbGJhcj5cbiAgICAgICAgICAgIDwvQXBwQmFyPlxuICAgICAgICAgICAgPENvbnRhaW5lciBtYXhXaWR0aD17ZmFsc2V9PlxuICAgICAgICAgICAgICA8UGFwZXI+XG4gICAgICAgICAgICAgICAgPEdyaWQgcD17Mn0+XG4gICAgICAgICAgICAgICAgICA8VHlwb2dyYXBoeSB2YXJpYW50PSdoNSc+XG4gICAgICAgICAgICAgICAgICAgIFJlZmlsbCBSZXF1ZXN0IFNlcnZpY2VzXG4gICAgICAgICAgICAgICAgICA8L1R5cG9ncmFwaHk+XG4gICAgICAgICAgICAgICAgICBUaGlzIHNlcnZpY2UgaXMgb25seSBhdmFpbGFibGUgZm9yIGN1c3RvbWVycyBvZiAmbmJzcDtcbiAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCJodHRwczovL3d3dy5zcnNwaGFybWFjeS5jb20vXCIgcmVsPVwibm9yZWZlcnJlclwiIHRhcmdldD1cIl9ibGFua1wiPlxuICAgICAgICAgICAgICAgICAgICBTUlMgUGhhcm1hY3kgU3lzdGVtcywgSW5jLlxuICAgICAgICAgICAgICAgICAgPC9hPiBwaGFybWFjeSBtYW5hZ2VtZW50IHN5c3RlbS5cbiAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgPEdyaWQgY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgPEdyaWQgaXRlbSBwPXsyfT5cbiAgICAgICAgICAgICAgICAgICAgPFR5cG9ncmFwaHkgdmFyaWFudD1cImg2XCI+SG93IGl0IFdvcmtzLjwvVHlwb2dyYXBoeT5cbiAgICAgICAgICAgICAgICAgICAgV2hlbiB5b3VyIHBoYXJtYWN5IGhhcyB0aGUgUnhSZWFkeSAvIFNtYXJ0cGhvbmUgUmVmaWxscyBmZWF0dXJlIGVuYWJsZWQgdGhlIHN5c3RlbSB3aWxsXG4gICAgICAgICAgICAgICAgICAgIHNlbmQgU01TIHRleHQgbWVzc2FnZXMuXG4gICAgICAgICAgICAgICAgICAgIDx1bD5cbiAgICAgICAgICAgICAgICAgICAgICA8bGk+UHJlc2NyaXB0aW9ucyBhcmUgcmVhZHkgdG8gYmUgcGlja2VkIHVwLjwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgPGxpPkEgcmVmaWxsIGlzIGNsb3NlIHRvIGJlaW5nIGR1ZS48L2xpPlxuICAgICAgICAgICAgICAgICAgICAgIDxsaT5BIGN1cnJlbnQgcHJlc2NyaXB0aW9uIGlzIG91dCBvZiByZWZpbGxzIGFuZCB0aGUgcHJlc2NyaWJlciBuZWVkcyB0byBiZSBjb250YWN0ZWQuPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICAgIDxHcmlkIGl0ZW0gcD17Mn0+XG4gICAgICAgICAgICAgICAgICAgIDxUeXBvZ3JhcGh5IHZhcmlhbnQ9XCJoNlwiPlBoYXJtYWN5IEJlbmVmaXRzPC9UeXBvZ3JhcGh5PlxuICAgICAgICAgICAgICAgICAgICBQaGFybWFjaWVzIHRoYXQgc2lnbiB1cCBmb3IgdGhpcyBmZWF0dXJlIHNlZSBpbW1lZGlhdGUgYmVuZWZpdHM6XG4gICAgICAgICAgICAgICAgICAgIDx1bD5cbiAgICAgICAgICAgICAgICAgICAgICA8bGk+UmVhbHRpbWUgcGF0aWVudCBlbmdhZ2VtZW50PC9saT5cbiAgICAgICAgICAgICAgICAgICAgICA8bGk+RmV3ZXIgcGhvbmUgY2FsbHM8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgIDxsaT5Nb3JlIGF1dG9tYXRlZCBwcm9jZXNzaW5nIG9mIGZ1dHVyZSBmaWxsczwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgICA8R3JpZCBpdGVtIHA9ezJ9PlxuICAgICAgICAgICAgICAgICAgICA8VHlwb2dyYXBoeSB2YXJpYW50PVwiaDZcIj5RdWVzdGlvbnM8L1R5cG9ncmFwaHk+XG4gICAgICAgICAgICAgICAgICAgIElmIHlvdSBoYXZlIGFueSBxdWVzdGlvbnMgYWJvdXQgdGhpcyBmZWF0dXJlIHBsZWFzZSBjb250YWN0Jm5ic3A7XG4gICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCJodHRwczovL3d3dy5zcnNwaGFybWFjeS5jb20vI2NvbnRhY3RcIj5TUlMgUGhhcm1hY3kgU3lzdGVtcywgSW5jLjwvYT5cbiAgICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgIDwvUGFwZXI+XG4gICAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBib2R5ID0gKFxuICAgICAgICAgIDxHcmlkPlxuICAgICAgICAgICAgPEFwcEJhciBwb3NpdGlvbj1cInN0YXRpY1wiPlxuICAgICAgICAgICAgICA8VG9vbGJhcj5cbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlLmxvZ28gPyAoXG4gICAgICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgICBzcmM9e3RoaXMuc3RhdGUubG9nb31cbiAgICAgICAgICAgICAgICAgICAgICBhbHQ9e3RoaXMuc3RhdGUuc3RvcmVfbmFtZX1cbiAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBtYXJnaW46ICc1cHgnLCBib3JkZXJSYWRpdXM6ICc1cHgnLCBoZWlnaHQ6ICc1cmVtJyB9fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgPFR5cG9ncmFwaHk+e3RoaXMuc3RhdGUuc3RvcmVfbmFtZX08L1R5cG9ncmFwaHk+XG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L1Rvb2xiYXI+XG4gICAgICAgICAgICA8L0FwcEJhcj5cbiAgICAgICAgICAgIDxHcmlkIGNvbnRhaW5lciBqdXN0aWZ5Q29udGVudD0nY2VudGVyJz5cbiAgICAgICAgICAgICAgPEdyaWQgaXRlbT5cbiAgICAgICAgICAgICAgICA8Qm94PlxuICAgICAgICAgICAgICAgICAgPFR5cG9ncmFwaHlcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD0naDYnXG4gICAgICAgICAgICAgICAgICA+UmVmaWxsIFJlcXVlc3QgZm9yIFJ4IyB7dGhpcy5zdGF0ZS5yeE51bWJlcn1cbiAgICAgICAgICAgICAgICAgIDwvVHlwb2dyYXBoeT5cbiAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgPGJyIC8+XG4gICAgICAgICAgICA8R3JpZCBjb250YWluZXIgZGlyZWN0aW9uPSdjb2x1bW4nIGp1c3RpZnlDb250ZW50PSdzcGFjZS1ldmVubHknIGFsaWduSXRlbXM9J2NlbnRlcicgc3BhY2luZz17Mn0+XG4gICAgICAgICAgICAgIDxHcmlkIGl0ZW0+XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlLnJlcXVlc3RlZFxuICAgICAgICAgICAgICAgICAgICA/IChcbiAgICAgICAgICAgICAgICAgICAgICA8Q29udGFpbmVyIG1heFdpZHRoPSdsZyc+XG4gICAgICAgICAgICAgICAgICAgICAgICA8UGFwZXIgc3F1YXJlPXtmYWxzZX0gZWxldmF0aW9uPXswfSB2YXJpYW50PSdvdXRsaW5lZCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3g9e3sgY29sb3I6ICdncmVlbicsIHB5OiAnMC41cmVtJywgcHg6ICcxcmVtJyB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFR5cG9ncmFwaHkgdmFyaWFudD0naDUnIGFsaWduPSdjZW50ZXInPiB7dGhpcy5zdGF0ZS5yZXF1ZXN0ZWR9PC9UeXBvZ3JhcGh5PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9QYXBlcj5cbiAgICAgICAgICAgICAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIDogPD48Lz5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgPEdyaWQgaXRlbT5cbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlLnNob3dGb3JtICYmIHRoaXMuc3RhdGUucmVnaXN0ZXJfZW5hYmxlZCAhPT0gJ04nXG4gICAgICAgICAgICAgICAgICAgID8gPFJlZ2lzdHJhdGlvbkZvcm1cbiAgICAgICAgICAgICAgICAgICAgICBzdG9yZV91dWlkPXt0aGlzLnN0YXRlLnN0b3JlX3V1aWR9XG4gICAgICAgICAgICAgICAgICAgICAgc3RvcmVfbmFtZT17dGhpcy5zdGF0ZS5zdG9yZV9uYW1lfVxuICAgICAgICAgICAgICAgICAgICAgIHJlZ2lzdGVyX2VuYWJsZWQ9e3RoaXMuc3RhdGUucmVnaXN0ZXJfZW5hYmxlZH0vPlxuICAgICAgICAgICAgICAgICAgICA6IDw+PC8+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgIDxHcmlkIGl0ZW0+XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgIXRoaXMuc3RhdGUuc2hvd0Zvcm0gJiYgIXRoaXMuc3RhdGUuc2hvd1JlZ2lzdGVyQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgID8gPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiY29udGFpbmVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e3RoaXMuc3RhdGUuZGlzYWJsZV9idXR0b259XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVxdWVzdFJlZmlsbChlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZV9idXR0b246IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICBSZXF1ZXN0IFJlZmlsbFxuICAgICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgIDxiciAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxiciAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxiciAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxiciAvPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgOiA8PjwvPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlLnNob3dSZWdpc3RlckJ1dHRvblxuICAgICAgICAgICAgICAgICAgPyA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8R3JpZCBjb250YWluZXIgZGlyZWN0aW9uPVwiY29sdW1uXCIgYWxpZ25JdGVtcz1cImNlbnRlclwiIHdpZHRoPVwiMTAwJVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxHcmlkIGl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8VHlwb2dyYXBoeSBzeD17eyB0ZXh0QWxpZ246ICdjZW50ZXInLCBtYXJnaW46ICcycmVtJyB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgey8qIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtbGVuICovfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBPcHRpb25hbDogVG8gbWFrZSB0aGlzIHByb2Nlc3MgZWFzaWVyIG5leHQgdGltZSwgcHJlc3MgQ29udGludWUgdG8gYmVnaW4gcmVnaXN0ZXJpbmcgZm9yIHt0aGlzLnN0YXRlLnN0b3JlX25hbWV9JmFwb3M7cyBQYXRpZW50IFBvcnRhbC5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvVHlwb2dyYXBoeT5cbiAgICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgICAgICAgPEdyaWQgaXRlbSA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJjb250YWluZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1JlZ2lzdGVyQnV0dG9uOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dGb3JtOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udGludWVcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICA8YnIgLz5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgOiA8PjwvPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICA8R3JpZCBjb250YWluZXIgZGlyZWN0aW9uPSdyb3cnIGp1c3RpZnlDb250ZW50PSdzcGFjZS1hcm91bmQnIGFsaWduSXRlbXM9J2NlbnRlcic+XG4gICAgICAgICAgICAgIDxHcmlkIGl0ZW0+XG4gICAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cIm91dGxpbmVkXCJcbiAgICAgICAgICAgICAgICAgIHNpemU9XCJsYXJnZVwiXG4gICAgICAgICAgICAgICAgICBocmVmPXsgJy9tLycgKyB0aGlzLnN0YXRlLnRhZyB9XG4gICAgICAgICAgICAgICAgPk1vYmlsZSBTaXRlPC9CdXR0b24+XG4gICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgPEdyaWQgaXRlbT5cbiAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICBocmVmPXsndGVsOi8vKzEnICsgdGhpcy5zdGF0ZS5waGFybWFjeV9waG9uZS5yZXBsYWNlKC9bXitcXGRdL2csICcnKX1cbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJvdXRsaW5lZFwiXG4gICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIj5cbiAgICAgICAgICAgICAgICAgIENhbGwgUGhhcm1hY3lcbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgPGhyLz5cbiAgICAgICAgICAgIDxHcmlkIGNvbnRhaW5lciBkaXJlY3Rpb249J2NvbHVtbicganVzdGlmeUNvbnRlbnQ9J2ZsZXgtZW5kJyBhbGlnbkl0ZW1zPSdjZW50ZXInPlxuICAgICAgICAgICAgICA8VHlwb2dyYXBoeT57dGhpcy5zdGF0ZS5zdG9yZV9uYW1lfTwvVHlwb2dyYXBoeT5cbiAgICAgICAgICAgICAgPFR5cG9ncmFwaHk+e3RoaXMuc3RhdGUuc3RvcmVfYWRkcmVzc308L1R5cG9ncmFwaHk+XG4gICAgICAgICAgICAgIDxUeXBvZ3JhcGh5Pnt0aGlzLnN0YXRlLmNpdHl9LCB7dGhpcy5zdGF0ZS5zdGF0ZX0ge3RoaXMuc3RhdGUuemlwfTwvVHlwb2dyYXBoeT5cbiAgICAgICAgICAgICAgPFR5cG9ncmFwaHk+e3RoaXMuc3RhdGUucGhhcm1hY3lfcGhvbmV9PC9UeXBvZ3JhcGh5PlxuICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIHtib2R5fVxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBIb21lO1xuIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IENvbnRleHQgfSBmcm9tICcuL2NvbnRleHQvY29udGV4dC5qcyc7XG5pbXBvcnQgeyBIYXNoUm91dGVyLCBSb3V0ZXMsIFJvdXRlIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgSG9tZSBmcm9tICcuL3BhZ2VzL0hvbWUuanMnO1xuaW1wb3J0IHsgVGhlbWVQcm92aWRlciwgY3JlYXRlVGhlbWUgfSBmcm9tICdAbXVpL21hdGVyaWFsL3N0eWxlcyc7XG5pbXBvcnQgeyBDc3NCYXNlbGluZSB9IGZyb20gJ0BtdWkvbWF0ZXJpYWwnO1xuXG5jbGFzcyBBcHAgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICAjZGFya01vZGUgPSBudWxsO1xuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgZXJyb3JzOiBudWxsLFxuICAgICAgdGhlbWU6ICdsaWdodCcsXG4gICAgfTtcbiAgICB0aGlzLnRoZW1lTGlnaHQgPSBjcmVhdGVUaGVtZSh7XG4gICAgICBwYWxldHRlOiB7XG4gICAgICAgIG1vZGU6ICdsaWdodCcsXG4gICAgICAgIGJhY2tncm91bmQ6IHtcbiAgICAgICAgICBkZWZhdWx0OiAnI2VmZWZlZicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHRoaXMudGhlbWVEYXJrID0gY3JlYXRlVGhlbWUoe1xuICAgICAgcGFsZXR0ZToge1xuICAgICAgICBtb2RlOiAnZGFyaycsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHRoaXMudXBkYXRlVGhlbWUgPSB0aGlzLnVwZGF0ZVRoZW1lLmJpbmQodGhpcyk7XG4gICAgdGhpcy5wcmVmZXJzRGFya01vZGUgPSB0aGlzLnByZWZlcnNEYXJrTW9kZS5iaW5kKHRoaXMpO1xuICAgIHRoaXMuc2V0UGF0aWVudCA9IHRoaXMuc2V0UGF0aWVudC5iaW5kKHRoaXMpO1xuICAgIHRoaXMuc2V0VXNlcm5hbWUgPSB0aGlzLnNldFVzZXJuYW1lLmJpbmQodGhpcyk7XG4gICAgdGhpcy5nZXRVc2VybmFtZSA9IHRoaXMuZ2V0VXNlcm5hbWUuYmluZCh0aGlzKTtcbiAgICB0aGlzLmdldFBhdGllbnQgPSB0aGlzLmdldFBhdGllbnQuYmluZCh0aGlzKTtcbiAgICB0aGlzLnNldFBhc3N3b3JkID0gdGhpcy5zZXRQYXNzd29yZC5iaW5kKHRoaXMpO1xuICAgIHRoaXMuZ2V0UGFzc3dvcmQgPSB0aGlzLmdldFBhc3N3b3JkLmJpbmQodGhpcyk7XG4gICAgdGhpcy5zZXRVc2VyVVVJRCA9IHRoaXMuc2V0VXNlclVVSUQuYmluZCh0aGlzKTtcbiAgICB0aGlzLmdldFVzZXJVVUlEID0gdGhpcy5nZXRVc2VyVVVJRC5iaW5kKHRoaXMpO1xuICAgIHRoaXMuc2V0Rmlyc3ROYW1lID0gdGhpcy5zZXRGaXJzdE5hbWUuYmluZCh0aGlzKTtcbiAgICB0aGlzLmdldEZpcnN0TmFtZSA9IHRoaXMuZ2V0Rmlyc3ROYW1lLmJpbmQodGhpcyk7XG4gICAgdGhpcy5zZXRMYXN0TmFtZSA9IHRoaXMuc2V0TGFzdE5hbWUuYmluZCh0aGlzKTtcbiAgICB0aGlzLmdldExhc3ROYW1lID0gdGhpcy5nZXRMYXN0TmFtZS5iaW5kKHRoaXMpO1xuICAgIHRoaXMucmVtb3ZlSXRlbSA9IHRoaXMucmVtb3ZlSXRlbS5iaW5kKHRoaXMpO1xuICAgIHRoaXMuc2V0VG9rZW5zID0gdGhpcy5zZXRUb2tlbnMuYmluZCh0aGlzKTtcbiAgfVxuXG4gIGFzeW5jIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIHRoaXMucHJlZmVyc0RhcmtNb2RlKCk7XG4gIH1cblxuICBhc3luYyBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICBpZiAodGhpcy4jZGFya01vZGUpIHtcbiAgICAgIHRoaXMuI2RhcmtNb2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIHRoaXMudXBkYXRlVGhlbWUpO1xuICAgICAgdGhpcy4jZGFya01vZGUgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByZWZlcnNEYXJrTW9kZSgpIHtcbiAgICB0aGlzLnVwZGF0ZVRoZW1lKCk7XG4gICAgdGhpcy4jZGFya01vZGUgPSB3aW5kb3cubWF0Y2hNZWRpYSgnKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKScpO1xuICAgIHRoaXMuI2RhcmtNb2RlLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIHRoaXMudXBkYXRlVGhlbWUpO1xuICB9XG5cbiAgdXBkYXRlVGhlbWUoZSA9IG51bGwpIHtcbiAgICBpZiAoIWUpIHtcbiAgICAgIGUgPSB3aW5kb3cubWF0Y2hNZWRpYSgnKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKScpO1xuICAgIH1cbiAgICBjb25zdCB0aGVtZSA9IGUubWF0Y2hlcyA/ICdkYXJrJyA6ICdsaWdodCc7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IHRoZW1lIH0pO1xuICB9XG5cbiAgc2V0UGF0aWVudChkYXRhKSB7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3BhdGllbnRfdXVpZCcsIGRhdGEpO1xuICB9XG5cbiAgc2V0VXNlcm5hbWUoZGF0YSkge1xuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCd1c2VybmFtZScsIGRhdGEpO1xuICB9XG5cbiAgZ2V0VXNlcm5hbWUoKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndXNlcm5hbWUnKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBnZXRQYXRpZW50KCkge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3BhdGllbnRfdXVpZCcpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHNldFRva2VucyhkYXRhKSB7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3Rva2VucycsIEpTT04uc3RyaW5naWZ5KGRhdGEpKTtcbiAgICB0aGlzLnNldFN0YXRlKHsgYXV0aFRva2VuczogZGF0YSB9KTtcbiAgfVxuXG4gIHNldFBhc3N3b3JkKGRhdGEpIHtcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgncGFzc3dvcmQnLCBkYXRhKTtcbiAgfVxuXG4gIGdldFBhc3N3b3JkKCkge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3Bhc3N3b3JkJyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgc2V0VXNlclVVSUQoZGF0YSkge1xuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCd1c2VyX3V1aWQnLCBkYXRhKTtcbiAgfVxuXG4gIGdldFVzZXJVVUlEKCkge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3VzZXJfdXVpZCcpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHNldEZpcnN0TmFtZShkYXRhKSB7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2ZpcnN0X25hbWUnLCBkYXRhKTtcbiAgfVxuXG4gIGdldEZpcnN0TmFtZSgpIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdmaXJzdF9uYW1lJyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgc2V0TGFzdE5hbWUoZGF0YSkge1xuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdsYXN0X25hbWUnLCBkYXRhKTtcbiAgfVxuXG4gIGdldExhc3ROYW1lKCkge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2xhc3RfbmFtZScpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHJlbW92ZUl0ZW0oZGF0YSkge1xuICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGRhdGEpO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHZhbHMgPSB7XG4gICAgICBhdXRoVG9rZW5zOiB0aGlzLnN0YXRlLmF1dGhUb2tlbnMsXG4gICAgICBzZXRVc2VybmFtZTogdGhpcy5zZXRVc2VybmFtZSxcbiAgICAgIGdldFVzZXJuYW1lOiB0aGlzLmdldFVzZXJuYW1lLFxuICAgICAgc2V0UGF0aWVudDogdGhpcy5zZXRQYXRpZW50LFxuICAgICAgZ2V0UGF0aWVudDogdGhpcy5nZXRQYXRpZW50LFxuICAgICAgc2V0UGFzc3dvcmQ6IHRoaXMuc2V0UGFzc3dvcmQsXG4gICAgICBnZXRQYXNzd29yZDogdGhpcy5nZXRQYXNzd29yZCxcbiAgICAgIHNldFVzZXJVVUlEOiB0aGlzLnNldFVzZXJVVUlELFxuICAgICAgZ2V0VXNlclVVSUQ6IHRoaXMuZ2V0VXNlclVVSUQsXG4gICAgICBzZXRGaXJzdE5hbWU6IHRoaXMuc2V0Rmlyc3ROYW1lLFxuICAgICAgZ2V0Rmlyc3ROYW1lOiB0aGlzLmdldEZpcnN0TmFtZSxcbiAgICAgIHNldExhc3ROYW1lOiB0aGlzLnNldExhc3ROYW1lLFxuICAgICAgZ2V0TGFzdE5hbWU6IHRoaXMuZ2V0TGFzdE5hbWUsXG4gICAgICByZW1vdmVJdGVtOiB0aGlzLnJlbW92ZUl0ZW0sXG4gICAgICBzZXRBdXRoVG9rZW5zOiB0aGlzLnNldFRva2VucyxcbiAgICB9O1xuICAgIHJldHVybiAoXG4gICAgICA8Q29udGV4dC5Qcm92aWRlciB2YWx1ZT17dmFsc30+XG4gICAgICAgIDxUaGVtZVByb3ZpZGVyIHRoZW1lPXt0aGlzLnN0YXRlLnRoZW1lID09PSAnZGFyaycgPyB0aGlzLnRoZW1lRGFyayA6IHRoaXMudGhlbWVMaWdodH0+XG4gICAgICAgICAgPENzc0Jhc2VsaW5lLz5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPEhhc2hSb3V0ZXI+XG4gICAgICAgICAgICAgIDxSb3V0ZXM+XG4gICAgICAgICAgICAgICAgPFJvdXRlIHBhdGg9Jy8nIGVsZW1lbnQ9ezxIb21lIHRoZW1lTW9kZT17dGhpcy5zdGF0ZS50aGVtZX0gLz59IC8+XG4gICAgICAgICAgICAgIDwvUm91dGVzPlxuICAgICAgICAgICAgPC9IYXNoUm91dGVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L1RoZW1lUHJvdmlkZXI+XG4gICAgICA8L0NvbnRleHQuUHJvdmlkZXI+XG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBBcHA7XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFJlYWN0RE9NIGZyb20gJ3JlYWN0LWRvbS9jbGllbnQnO1xuaW1wb3J0IEFwcCBmcm9tICcuL0FwcCc7XG5cbmNvbnN0IHJvb3QgPSBSZWFjdERPTS5jcmVhdGVSb290KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWluZXInKSk7XG5yb290LnJlbmRlcihcbiAgICA8UmVhY3QuU3RyaWN0TW9kZT5cbiAgICAgIDxBcHAgLz5cbiAgICA8L1JlYWN0LlN0cmljdE1vZGU+XG4pO1xuIiwiLy8gVGhlIG1vZHVsZSBjYWNoZVxudmFyIF9fd2VicGFja19tb2R1bGVfY2FjaGVfXyA9IHt9O1xuXG4vLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcblx0dmFyIGNhY2hlZE1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF07XG5cdGlmIChjYWNoZWRNb2R1bGUgIT09IHVuZGVmaW5lZCkge1xuXHRcdHJldHVybiBjYWNoZWRNb2R1bGUuZXhwb3J0cztcblx0fVxuXHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuXHR2YXIgbW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXSA9IHtcblx0XHQvLyBubyBtb2R1bGUuaWQgbmVlZGVkXG5cdFx0Ly8gbm8gbW9kdWxlLmxvYWRlZCBuZWVkZWRcblx0XHRleHBvcnRzOiB7fVxuXHR9O1xuXG5cdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuXHRfX3dlYnBhY2tfbW9kdWxlc19fW21vZHVsZUlkXShtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuXHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuXHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG59XG5cbi8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG5fX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBfX3dlYnBhY2tfbW9kdWxlc19fO1xuXG4iLCIvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuX193ZWJwYWNrX3JlcXVpcmVfXy5uID0gKG1vZHVsZSkgPT4ge1xuXHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cblx0XHQoKSA9PiAobW9kdWxlWydkZWZhdWx0J10pIDpcblx0XHQoKSA9PiAobW9kdWxlKTtcblx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgeyBhOiBnZXR0ZXIgfSk7XG5cdHJldHVybiBnZXR0ZXI7XG59OyIsIi8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb25zIGZvciBoYXJtb255IGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uZCA9IChleHBvcnRzLCBkZWZpbml0aW9uKSA9PiB7XG5cdGZvcih2YXIga2V5IGluIGRlZmluaXRpb24pIHtcblx0XHRpZihfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZGVmaW5pdGlvbiwga2V5KSAmJiAhX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIGtleSkpIHtcblx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBrZXksIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBkZWZpbml0aW9uW2tleV0gfSk7XG5cdFx0fVxuXHR9XG59OyIsIl9fd2VicGFja19yZXF1aXJlX18ubyA9IChvYmosIHByb3ApID0+IChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKSkiLCIvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSAoZXhwb3J0cykgPT4ge1xuXHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcblx0fVxuXHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xufTsiLCIvLyBubyBiYXNlVVJJXG5cbi8vIG9iamVjdCB0byBzdG9yZSBsb2FkZWQgYW5kIGxvYWRpbmcgY2h1bmtzXG4vLyB1bmRlZmluZWQgPSBjaHVuayBub3QgbG9hZGVkLCBudWxsID0gY2h1bmsgcHJlbG9hZGVkL3ByZWZldGNoZWRcbi8vIFtyZXNvbHZlLCByZWplY3QsIFByb21pc2VdID0gY2h1bmsgbG9hZGluZywgMCA9IGNodW5rIGxvYWRlZFxudmFyIGluc3RhbGxlZENodW5rcyA9IHtcblx0MTc5OiAwXG59O1xuXG4vLyBubyBjaHVuayBvbiBkZW1hbmQgbG9hZGluZ1xuXG4vLyBubyBwcmVmZXRjaGluZ1xuXG4vLyBubyBwcmVsb2FkZWRcblxuLy8gbm8gSE1SXG5cbi8vIG5vIEhNUiBtYW5pZmVzdFxuXG5fX3dlYnBhY2tfcmVxdWlyZV9fLk8uaiA9IChjaHVua0lkKSA9PiAoaW5zdGFsbGVkQ2h1bmtzW2NodW5rSWRdID09PSAwKTtcblxuLy8gaW5zdGFsbCBhIEpTT05QIGNhbGxiYWNrIGZvciBjaHVuayBsb2FkaW5nXG52YXIgd2VicGFja0pzb25wQ2FsbGJhY2sgPSAocGFyZW50Q2h1bmtMb2FkaW5nRnVuY3Rpb24sIGRhdGEpID0+IHtcblx0dmFyIFtjaHVua0lkcywgbW9yZU1vZHVsZXMsIHJ1bnRpbWVdID0gZGF0YTtcblx0Ly8gYWRkIFwibW9yZU1vZHVsZXNcIiB0byB0aGUgbW9kdWxlcyBvYmplY3QsXG5cdC8vIHRoZW4gZmxhZyBhbGwgXCJjaHVua0lkc1wiIGFzIGxvYWRlZCBhbmQgZmlyZSBjYWxsYmFja1xuXHR2YXIgbW9kdWxlSWQsIGNodW5rSWQsIGkgPSAwO1xuXHRpZihjaHVua0lkcy5zb21lKChpZCkgPT4gKGluc3RhbGxlZENodW5rc1tpZF0gIT09IDApKSkge1xuXHRcdGZvcihtb2R1bGVJZCBpbiBtb3JlTW9kdWxlcykge1xuXHRcdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKG1vcmVNb2R1bGVzLCBtb2R1bGVJZCkpIHtcblx0XHRcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tW21vZHVsZUlkXSA9IG1vcmVNb2R1bGVzW21vZHVsZUlkXTtcblx0XHRcdH1cblx0XHR9XG5cdFx0aWYocnVudGltZSkgdmFyIHJlc3VsdCA9IHJ1bnRpbWUoX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cdH1cblx0aWYocGFyZW50Q2h1bmtMb2FkaW5nRnVuY3Rpb24pIHBhcmVudENodW5rTG9hZGluZ0Z1bmN0aW9uKGRhdGEpO1xuXHRmb3IoO2kgPCBjaHVua0lkcy5sZW5ndGg7IGkrKykge1xuXHRcdGNodW5rSWQgPSBjaHVua0lkc1tpXTtcblx0XHRpZihfX3dlYnBhY2tfcmVxdWlyZV9fLm8oaW5zdGFsbGVkQ2h1bmtzLCBjaHVua0lkKSAmJiBpbnN0YWxsZWRDaHVua3NbY2h1bmtJZF0pIHtcblx0XHRcdGluc3RhbGxlZENodW5rc1tjaHVua0lkXVswXSgpO1xuXHRcdH1cblx0XHRpbnN0YWxsZWRDaHVua3NbY2h1bmtJZF0gPSAwO1xuXHR9XG5cdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fLk8ocmVzdWx0KTtcbn1cblxudmFyIGNodW5rTG9hZGluZ0dsb2JhbCA9IHNlbGZbXCJ3ZWJwYWNrQ2h1bmtzcnNyZmxfcmVhY3RcIl0gPSBzZWxmW1wid2VicGFja0NodW5rc3JzcmZsX3JlYWN0XCJdIHx8IFtdO1xuY2h1bmtMb2FkaW5nR2xvYmFsLmZvckVhY2god2VicGFja0pzb25wQ2FsbGJhY2suYmluZChudWxsLCAwKSk7XG5jaHVua0xvYWRpbmdHbG9iYWwucHVzaCA9IHdlYnBhY2tKc29ucENhbGxiYWNrLmJpbmQobnVsbCwgY2h1bmtMb2FkaW5nR2xvYmFsLnB1c2guYmluZChjaHVua0xvYWRpbmdHbG9iYWwpKTsiLCIvLyBzdGFydHVwXG4vLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcbi8vIFRoaXMgZW50cnkgbW9kdWxlIGRlcGVuZHMgb24gb3RoZXIgbG9hZGVkIGNodW5rcyBhbmQgZXhlY3V0aW9uIG5lZWQgdG8gYmUgZGVsYXllZFxudmFyIF9fd2VicGFja19leHBvcnRzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fLk8odW5kZWZpbmVkLCBbNCw3MzIsNzU2LDYzLDI5MSw5MDcsMzczLDEwOSwzOTQsMTQzXSwgKCkgPT4gKF9fd2VicGFja19yZXF1aXJlX18oMjI3KSkpXG5fX3dlYnBhY2tfZXhwb3J0c19fID0gX193ZWJwYWNrX3JlcXVpcmVfXy5PKF9fd2VicGFja19leHBvcnRzX18pO1xuIl0sIm5hbWVzIjpbImRlZmVycmVkIiwibGVhZlByb3RvdHlwZXMiLCJnZXRQcm90byIsIkNvbnRleHQiLCJjcmVhdGVDb250ZXh0IiwiX1JlYWN0JENvbXBvbmVudCIsIl9pbmhlcml0cyIsIkxvYWRpbmciLCJfc3VwZXIiLCJwcm9wcyIsIl9jbGFzc0NhbGxDaGVjayIsImNhbGwiLCJrZXkiLCJ2YWx1ZSIsImJvZHkiLCJSZWFjdCIsIkNvbnRhaW5lciIsIm1heFdpZHRoIiwiUGFwZXIiLCJzdHlsZSIsInBhZGRpbmciLCJtYXJnaW5Ub3AiLCJHcmlkIiwiY29udGFpbmVyIiwiaXRlbSIsInhzIiwiQm94IiwiZGlzcGxheSIsImFsaWduSXRlbXMiLCJqdXN0aWZ5Q29udGVudCIsInBhZGRpbmdUb3AiLCJwYWRkaW5nQm90dG9tIiwiVHlwb2dyYXBoeSIsInZhcmlhbnQiLCJDaXJjdWxhclByb2dyZXNzIiwiRXJyb3IiLCJkaXJlY3Rpb24iLCJzcmMiLCJpc01lc3NhZ2UiLCJtZXNzYWdlIiwicmV0dXJuVG8iLCJCdXR0b24iLCJ3aWR0aCIsIm9uQ2xpY2siLCJlIiwicHJldmVudERlZmF1bHQiLCJzdG9wUHJvcGFnYXRpb24iLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJzdHJpbmciLCJpc1JlcXVpcmVkIiwiZnVuYyIsImJvb2wiLCJvcHRzIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJjb250ZXh0IiwicmVzcG9uc2VUeXBlIiwidXJsIiwid2luZG93IiwibG9jYXRpb24iLCJob3N0bmFtZSIsImhlYWRlcnMiLCJheGlvcyIsIm1ldGhvZCIsInRvTG93ZXJDYXNlIiwiY29uY2F0IiwiZW5kcG9pbnQiLCJwYXJhbXMiLCJkYXRhIiwidGhlbiIsImVyciIsImVycm9yIiwicmVzcG9uc2UiLCJKU09OIiwic3RyaW5naWZ5IiwiaW5jbHVkZXMiLCJzdWJzdHJpbmciLCJsZW5ndGgiLCJSZWdpc3RyYXRpb25Gb3JtIiwiX3RoaXMiLCJzdGF0ZSIsImVycm9ycyIsImxvYWRlZCIsInZpZXciLCJzdG9yZV9uYW1lIiwic3RvcmVfdXVpZCIsInBhdGllbnRfdXVpZCIsIm5ld19wYXRpZW50X3V1aWQiLCJ1c2VyX3V1aWQiLCJ1c2VybmFtZSIsInBhc3N3b3JkIiwiZmlyc3RfbmFtZSIsImxhc3RfbmFtZSIsImRpc2FibGVkIiwiZmllbGRzIiwiZmllbGRzMiIsInRpdGxlIiwidHlwZSIsInR5cGVuYW1lIiwicmVxdWlyZWQiLCJvbkNoYW5nZSIsImNvcHkiLCJfb2JqZWN0U3ByZWFkIiwidGVzdCIsInRyaW0iLCJmZWVkYmFjayIsInNldFN0YXRlIiwiZnVsbHdpZHRoIiwiZW1haWwiLCJjb25maXJtIiwiY29uZmlybWF0aW9uIiwiY2xlYXJGaWVsZHMiLCJiaW5kIiwiX2Fzc2VydFRoaXNJbml0aWFsaXplZCIsImNoYW5nZVZpZXciLCJyZWdpc3RlclVzZXIiLCJjbGVhclN0YXRlIiwidGhpcyIsInVuZGVmaW5lZCIsInJlbW92ZUl0ZW0iLCJfdGhpczIiLCJvcHRpb25zIiwiZ2V0UGF0aWVudCIsImFwaUNhbGwiLCJyZXNwIiwiciIsInBhcnNlIiwidXNlciIsInBhdGllbnRfdXNlciIsInNldFVzZXJVVUlEIiwic2V0UGFzc3dvcmQiLCJzZXRVc2VybmFtZSIsInNldFBhdGllbnQiLCJzZXRGaXJzdE5hbWUiLCJzZXRMYXN0TmFtZSIsImNvbnNvbGUiLCJsb2ciLCJnZXRFcnJvck1lc3NhZ2UiLCJfdGhpczMiLCJnZXRVc2VybmFtZSIsImdldFBhc3N3b3JkIiwiZ2V0VXNlclVVSUQiLCJjb2RlIiwiZ2V0Rmlyc3ROYW1lIiwiZ2V0TGFzdE5hbWUiLCJzZXRBdXRoVG9rZW5zIiwiaHJlZiIsIl90aGlzNCIsInJlZ2lzdGVyU3VidGl0bGUiLCJyZWdpc3Rlcl9lbmFibGVkIiwic3giLCJjb2xvciIsImlkIiwic3BhY2luZyIsIlRleHRGaWVsZCIsImZ1bGxXaWR0aCIsInNpemUiLCJsYWJlbCIsImhlbHBlclRleHQiLCJ0YXJnZXQiLCJiZ2NvbG9yIiwiY2xhc3NOYW1lIiwic3VibWl0IiwiZmllbGQiLCJjb25maXJtQ29kZSIsIl9kZWZpbmVQcm9wZXJ0eSIsIkhvbWUiLCJyZWRpcmVjdCIsInRhZyIsImdldFN0b3JlTnVtYmVyIiwicnhOdW1iZXIiLCJnZXRSeE51bWJlciIsImhhc2giLCJnZXRIYXNoIiwibG9nbyIsInN0b3JlX2FkZHJlc3MiLCJzdG9yZV9hZGRyZXNzX3R3byIsImNpdHkiLCJ6aXAiLCJwaGFybWFjeV9waG9uZSIsInJlcXVlc3RlZCIsImRpc2FibGVfYnV0dG9uIiwic2hvd0Zvcm0iLCJzaG93UmVnaXN0ZXJCdXR0b24iLCJyZXF1ZXN0UmVmaWxsIiwiZ2V0RnVsbEF1dGgiLCJjb25zdHJ1Y3RYTUxEb2N1bWVudCIsImVudGl0eSIsImxvYWQiLCJzZWFyY2giLCJyZXBsYWNlIiwiX2xlbiIsImFyZ3VtZW50cyIsImFyZ3MiLCJBcnJheSIsIl9rZXkiLCJfc3RlcCIsImRvYyIsImVudGl0eU5hbWUiLCJleHRyYSIsInNsaWNlIiwibm9kZSIsImNyZWF0ZUVsZW1lbnQiLCJfaXRlcmF0b3IiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsInMiLCJuIiwiZG9uZSIsImFyZyIsImFwcGVuZENoaWxkIiwiY3JlYXRlVGV4dE5vZGUiLCJmIiwibGFzdG5hbWUiLCJmaXJzdG5hbWUiLCJwaG9uZSIsImRvY3VtZW50IiwiaW1wbGVtZW50YXRpb24iLCJjcmVhdGVEb2N1bWVudCIsInJvb3QiLCJkb2N1bWVudEVsZW1lbnQiLCJEYXRlIiwidG9JU09TdHJpbmciLCJnZXRUaW1lIiwidG9TdHJpbmciLCJyeF9udW1iZXIiLCJhdXRoIiwibmFtZSIsImFkZHJlc3MxIiwiYWRkcmVzczIiLCJzcnNyZmxfcmVnaXN0ZXIiLCJ1c2VycyIsIl9lcnIkcmVzcG9uc2UiLCJyZWZpbGwiLCJYTUxTZXJpYWxpemVyIiwic2VyaWFsaXplVG9TdHJpbmciLCJzdG9yZXRhZyIsIkFwcEJhciIsInBvc2l0aW9uIiwiVG9vbGJhciIsInAiLCJyZWwiLCJhbHQiLCJtYXJnaW4iLCJib3JkZXJSYWRpdXMiLCJoZWlnaHQiLCJzcXVhcmUiLCJlbGV2YXRpb24iLCJweSIsInB4IiwiYWxpZ24iLCJ0ZXh0QWxpZ24iLCJwcmVzY3JpcHRpb24iLCJzZXRSZWZpbGxSZXNwb25zZSIsInRoZW1lTW9kZSIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJ0IiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJvIiwiZGVmaW5lUHJvcGVydHkiLCJpIiwiU3ltYm9sIiwiYSIsIml0ZXJhdG9yIiwiYyIsImFzeW5jSXRlcmF0b3IiLCJ1IiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJ3cmFwIiwiR2VuZXJhdG9yIiwiY3JlYXRlIiwibWFrZUludm9rZU1ldGhvZCIsInRyeUNhdGNoIiwiaCIsImwiLCJ5IiwiR2VuZXJhdG9yRnVuY3Rpb24iLCJHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSIsImQiLCJnZXRQcm90b3R5cGVPZiIsInYiLCJ2YWx1ZXMiLCJnIiwiZGVmaW5lSXRlcmF0b3JNZXRob2RzIiwiZm9yRWFjaCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiaW52b2tlIiwiX3R5cGVvZiIsIl9fYXdhaXQiLCJjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZyIsImRlbGVnYXRlIiwibWF5YmVJbnZva2VEZWxlZ2F0ZSIsInNlbnQiLCJfc2VudCIsImRpc3BhdGNoRXhjZXB0aW9uIiwiYWJydXB0IiwiVHlwZUVycm9yIiwicmVzdWx0TmFtZSIsIm5leHQiLCJuZXh0TG9jIiwicHVzaFRyeUVudHJ5IiwidHJ5TG9jIiwiY2F0Y2hMb2MiLCJmaW5hbGx5TG9jIiwiYWZ0ZXJMb2MiLCJ0cnlFbnRyaWVzIiwicHVzaCIsInJlc2V0VHJ5RW50cnkiLCJjb21wbGV0aW9uIiwicmVzZXQiLCJpc05hTiIsImRpc3BsYXlOYW1lIiwiaXNHZW5lcmF0b3JGdW5jdGlvbiIsImNvbnN0cnVjdG9yIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsImtleXMiLCJyZXZlcnNlIiwicG9wIiwicHJldiIsImNoYXJBdCIsInN0b3AiLCJydmFsIiwiaGFuZGxlIiwiY29tcGxldGUiLCJmaW5pc2giLCJkZWxlZ2F0ZVlpZWxkIiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiZ2VuIiwiX25leHQiLCJfdGhyb3ciLCJpbmZvIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJmbiIsInNlbGYiLCJhcHBseSIsIl9kZWZpbmVQcm9wZXJ0aWVzIiwiZGVzY3JpcHRvciIsIl90b1Byb3BlcnR5S2V5IiwidG9QcmltaXRpdmUiLCJTdHJpbmciLCJfdG9QcmltaXRpdmUiLCJfc2V0UHJvdG90eXBlT2YiLCJSZWZlcmVuY2VFcnJvciIsIl9nZXRQcm90b3R5cGVPZiIsIl9jbGFzc1ByaXZhdGVGaWVsZFNldCIsInJlY2VpdmVyIiwicHJpdmF0ZU1hcCIsInNldCIsIl9jbGFzc0FwcGx5RGVzY3JpcHRvclNldCIsIl9jbGFzc0V4dHJhY3RGaWVsZERlc2NyaXB0b3IiLCJfY2xhc3NQcml2YXRlRmllbGRHZXQiLCJnZXQiLCJfY2xhc3NBcHBseURlc2NyaXB0b3JHZXQiLCJhY3Rpb24iLCJoYXMiLCJfZGFya01vZGUiLCJXZWFrTWFwIiwic3ViQ2xhc3MiLCJzdXBlckNsYXNzIiwiQXBwIiwiQ29uc3RydWN0b3IiLCJwcm90b1Byb3BzIiwiX2NvbXBvbmVudFdpbGxVbm1vdW50IiwiX2NvbXBvbmVudERpZE1vdW50IiwiRGVyaXZlZCIsImhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJSZWZsZWN0IiwiY29uc3RydWN0Iiwic2hhbSIsIlByb3h5IiwiQm9vbGVhbiIsInZhbHVlT2YiLCJfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwicmVzdWx0IiwiU3VwZXIiLCJOZXdUYXJnZXQiLCJfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybiIsIm9iaiIsImluc3RhbmNlIiwicHJpdmF0ZUNvbGxlY3Rpb24iLCJfY2hlY2tQcml2YXRlUmVkZWNsYXJhdGlvbiIsInRoZW1lIiwidGhlbWVMaWdodCIsImNyZWF0ZVRoZW1lIiwicGFsZXR0ZSIsIm1vZGUiLCJiYWNrZ3JvdW5kIiwiZGVmYXVsdCIsInRoZW1lRGFyayIsInVwZGF0ZVRoZW1lIiwicHJlZmVyc0RhcmtNb2RlIiwic2V0VG9rZW5zIiwiX2NhbGxlZSIsIl9jb250ZXh0IiwiX2NhbGxlZTIiLCJfY29udGV4dDIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwibWF0Y2hNZWRpYSIsImFkZEV2ZW50TGlzdGVuZXIiLCJtYXRjaGVzIiwibG9jYWxTdG9yYWdlIiwic2V0SXRlbSIsImdldEl0ZW0iLCJhdXRoVG9rZW5zIiwidmFscyIsIlByb3ZpZGVyIiwiVGhlbWVQcm92aWRlciIsIkNzc0Jhc2VsaW5lIiwiSGFzaFJvdXRlciIsIlJvdXRlcyIsIlJvdXRlIiwicGF0aCIsImVsZW1lbnQiLCJSZWFjdERPTSIsImdldEVsZW1lbnRCeUlkIiwicmVuZGVyIiwiX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fIiwiX193ZWJwYWNrX3JlcXVpcmVfXyIsIm1vZHVsZUlkIiwiY2FjaGVkTW9kdWxlIiwiZXhwb3J0cyIsIm1vZHVsZSIsIl9fd2VicGFja19tb2R1bGVzX18iLCJtIiwiTyIsImNodW5rSWRzIiwicHJpb3JpdHkiLCJub3RGdWxmaWxsZWQiLCJJbmZpbml0eSIsImZ1bGZpbGxlZCIsImoiLCJldmVyeSIsInNwbGljZSIsImdldHRlciIsIl9fZXNNb2R1bGUiLCJucyIsImRlZiIsImN1cnJlbnQiLCJpbmRleE9mIiwiZ2V0T3duUHJvcGVydHlOYW1lcyIsImRlZmluaXRpb24iLCJwcm9wIiwiaW5zdGFsbGVkQ2h1bmtzIiwiY2h1bmtJZCIsIndlYnBhY2tKc29ucENhbGxiYWNrIiwicGFyZW50Q2h1bmtMb2FkaW5nRnVuY3Rpb24iLCJtb3JlTW9kdWxlcyIsInJ1bnRpbWUiLCJzb21lIiwiY2h1bmtMb2FkaW5nR2xvYmFsIiwiX193ZWJwYWNrX2V4cG9ydHNfXyJdLCJzb3VyY2VSb290IjoiIn0=