/*! For license information please see main.4a458159.js.LICENSE.txt */ (()=>{"use strict";var e,t,r,n={6991:(e,t,r)=>{var n=r(7294),o=r(745),i=r(9655),a=r(9250),s=r(5697),l=r.n(s),c=r(6158),u=r.n(c);function f(e){return f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},f(e)}function p(e,t){(null==t||t>e.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:o}}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,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}(this.props.addresses);try{for(i.s();!(n=i.n()).done;){var a=n.value;o++;var s="https://api.mapbox.com/geocoding/v5/mapbox.places/"+encodeURIComponent(a)+".json?"+r.toString();window.fetch(s).then((function(e){return e.json()})).then((function(r){t.push(r),o===e.props.addresses.length&&e.setState({markers:t,view:"map"},e.initMap)})).catch((function(e){return console.log(e)}))}}catch(e){i.e(e)}finally{i.f()}}},{key:"getDirections",value:function(){var e=this,t=this.props.fromCoordinates.join(", "),r=this.props.toCoordinates.join(", "),n="https://api.mapbox.com/directions/v5/mapbox/driving-traffic/".concat(t,";").concat(r),o=new URLSearchParams;o.append("geometries","geojson"),o.append("steps",!0),o.append("access_token",this.props.accessToken);var i=n+"?"+o.toString();window.fetch(i).then((function(e){return e.json()})).then((function(t){e.setState({directions:t,view:"map"},e.initMap)})).catch((function(t){e.setState({error:t.stack})}))}},{key:"initMap",value:function(){var e=this;u().accessToken=this.props.accessToken;var t=[],r={},n=null,o=null;if(r.container=this.mapRef.current.id,r.style="mapbox://styles/mapbox/streets-v12",this.props.center?r.center=this.props.center:this.state.markers.length>0&&(r.center=this.state.markers[0].features[0].center),this.props.zoom&&(r.zoom=this.props.zoom),this.props.projection&&(r.projection=this.props.projection),this.map=new(u().Map)(r),this.props.geoLocate&&(n=new(u().GeolocateControl)({positionOptions:{enableHighAccuracy:!0},showUserLocation:!0,trackUserLocation:!0,showUserHeading:!0}),this.map.addControl(n)),this.props.allowFullScreen&&(o=new(u().FullscreenControl),this.map.addControl(o)),this.props.allowNavigation&&this.map.addControl(new(u().NavigationControl),"bottom-right"),this.state.markers&&this.state.markers.length>0){var i=document.createElement("span");i.classList.add("material-icons"),i.classList.add("text-primary"),i.setAttribute("style","font-size: 3em"),i.innerText="place",i.setAttribute("title",this.state.markers[0].features[0].place_name);var a=new(u().Marker)(i);a.setLngLat(this.state.markers[0].features[0].geometry.coordinates),a.setPopup((new(u().Popup)).setHTML(""))),t.push(a)}this.map.on("style.load",(function(){e.map.setFog({})})),this.map.on("load",(function(){if(n&&n.trigger(),e.state.directions){var r,o=e.state.directions.routes[0],i={type:"Feature",properties:{},geometry:o.geometry};e.instructionsRef.current.innerHTML="";var a=""),s="

Trip duration: ".concat(Math.floor(o.duration/60)," min

");e.instructionsRef.current.innerHTML="".concat(s).concat(a),e.map.getSource("route")?e.map.getSource("route").setData(i):e.map.addLayer({id:"route",type:"line",source:{type:"geojson",data:i},layout:{"line-join":"round","line-cap":"round"},paint:{"line-color":"#3887BE","line-width":5,"line-opacity":.75}})}if(t.length>0)for(var l=0,c=t;l0&&this.geocodeMarkers(),this.props.fromCoordinates&&this.props.toCoordinates?this.getDirections():this.setState({view:"map"},(function(){e.initMap()}))}},{key:"componentDidUpdate",value:function(e,t){var r=this;e.fromCoordinates!==this.props.fromCoordinates&&(this.props.fromCoordinates&&this.props.toCoordinates?this.getDirections():this.setState({view:"map"},(function(){r.initMap()}))),e.addresses!==this.props.addresses&&this.props.addresses&&this.props.addresses.length>0&&this.geocodeMarkers()}},{key:"render",value:function(){return this.state&&this.state.error?(e=this).state.error?n.createElement("div",{className:"pad-3 bg-danger text-white",style:{display:"flex",justifyContent:"space-between",height:"4%",minHeight:"1.8em"}},e.state.error,n.createElement("button",{type:"button",onClick:function(t){e.setState({error:null})}},n.createElement("span",{className:"material-icons"},"close"))):"":this.state&&"loading"===this.state.view?n.createElement("div",null,"Loading"):n.createElement("div",{className:"grid"},n.createElement("div",{className:"row"},n.createElement("div",{ref:this.instructionsRef,style:{maxHeight:"300px",overflow:"scroll"},className:"col",id:"mapboxGLInstructions"}),n.createElement("div",{ref:this.mapRef,className:"col",style:{height:"300px"},id:"mapboxGLMap"})));var e}}])&&d(t.prototype,r),Object.defineProperty(t,"prototype",{writable:!1}),s}(n.Component);y(g,"propTypes",{accessToken:l().string.isRequired,addresses:l().array,toAddress:l().object,center:l().array,zoom:l().number,projection:l().string,geoLocate:l().bool,allowFullScreen:l().bool,allowNavigation:l().bool,fromCoordinates:l().array,toCoordinates:l().array});const w=g;var E=r(1257);const A=function(e){return new Promise((function(t,r){(e=e||{}).context=e.context||null,e.responseType=e.responseType||"application/json";var n;n=e.url?e.url:"localhost"==window.location.hostname?"https://srsrfl-staging.com/":"/";var o=e.headers||{};(0,E.Z)({method:e.method.toLowerCase(),url:"".concat(n).concat(e.endpoint),responseType:e.responseType,headers:o,params:e.params,data:e.data}).then(t).catch(r)}))},x=function(e){var t="";return e.response&&e.response.data?e.response.data.message?t="string"==e.response.data.message?e.response.data.message:JSON.stringify(e.response.data.message):"string"==typeof e.response.data?e.response.data.includes("message")&&(t=e.response.data.substring(12,e.response.data.length-2)):t=JSON.stringify(e.response.data):t=e.message?e.message:JSON.stringify(e),t};var k=r(6574),P=r(5725),O=r(2658),C=r(2574),j=function(e){return n.createElement(k.Z,{maxWidth:"lg"},n.createElement(P.ZP,{container:!0,direction:"column",justifyContent:"center",alignItems:"center"},n.createElement(P.ZP,{item:!0},n.createElement("img",{src:"data:image/png;base64,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"})),n.createElement(P.ZP,{item:!0},n.createElement(O.Z,{variant:"h6"},"Error: ",e.message)),n.createElement(P.ZP,{item:!0},e.returnTo&&n.createElement(C.Z,{variant:"contained",width:"50%",onClick:function(t){t.preventDefault(),t.stopPropagation(),e.returnTo()}},"Back"))))};j.propTypes={message:s.PropTypes.string.isRequired,returnTo:s.PropTypes.func};const S=j;var T=r(6501),Z=r(3584),L=r(9062);function M(e){return M="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},M(e)}function _(e,t){for(var r=0;r=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var l=n.call(a,"catchLoc"),c=n.call(a,"finallyLoc");if(l&&c){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),S(r),v}},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 o=n.arg;S(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:Z(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),v}},t}function ne(e,t,r,n,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void r(e)}s.done?t(l):Promise.resolve(l).then(n,o)}function oe(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var i=e.apply(t,r);function a(e){ne(i,n,o,a,s,"next",e)}function s(e){ne(i,n,o,a,s,"throw",e)}a(void 0)}))}}function ie(e,t){if(e){if("string"==typeof e)return ae(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?ae(e,t):void 0}}function ae(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0&&(t.fields.prescriptions=[{prescription_0:{title:"Prescription Number",type:{typename:"text"},required:!0,error:!0,onChange:function(t,r){var n=le({},e.state);/^\d{5,10}$/.test(t)?(n.fields.prescriptions[r]["prescription_".concat(r)].error=!1,n.fields.prescriptions[r]["prescription_".concat(r)].feedback=""):(n.fields.prescriptions[r]["prescription_".concat(r)].error=!0,n.fields.prescriptions[r]["prescription_".concat(r)].feedback="Invalid Prescription Number Format"),n.fields.prescriptions[r]["prescription_".concat(r)].value=t,e.setState(n)},fullwidth:!0,feedback:"",value:""}}],t.btn_count=0),this.setState(t)}},{key:"getFullAuth",value:function(){return"demo"==window.location.search.substring(1)||"t=demo"==window.location.search.substring(1)?"1Hs1F2y771027101086":"t="==window.location.search.substring(1,3)?window.location.search.substring(3):window.location.search.substring(1)}},{key:"getStoreNumber",value:function(){if("localhost"==window.location.hostname)return window.location.hash.substring(4);var e=window.location.pathname.split("/");return e[e.length-1]}},{key:"prescriptionData",value:function(){for(var e=[],t=this.state.fields.prescriptions,r=0;r=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}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,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}(a);try{for(l.s();!(n=l.n()).done;){var c=n.value;c?"string"==typeof c?s.appendChild(o.createTextNode(c)):s.appendChild(c):s.appendChild(o.createTextNode(""))}}catch(e){l.e(e)}finally{l.f()}return s}},{key:"constructXMLDocument",value:function(){for(var e=this,t=document.implementation.createDocument("http://www.srspharmacy.com/XML/PatientRefillRequest","PatientRefillRequest",null),r=t.documentElement,n=[],o=0;o<=this.state.btn_count;o++)this.state.fields.prescriptions[o]["prescription_".concat(o)].value&&n.push(this.state.fields.prescriptions[o]["prescription_".concat(o)].value);if(r.appendChild(this.entity(t,"To",this.state.id)),r.appendChild(this.entity(t,"From","srsweb")),r.appendChild(this.entity(t,"SentTime",(new Date).toISOString())),this.state.fields.pickup.value&&"-- Select One --"!==this.state.fields.pickup.value){var i=(new Date).getTime()+864e5,a=new Date(i).toISOString().split("T")[0],s="";"Tomorrow Morning"==this.state.fields.pickup.value?s="9":"Tomorrow Afternoon"==this.state.fields.pickup.value&&(s="12");var l="";s&&(l="".concat(a,"T").concat(s,":00:00")),r.appendChild(this.entity(t,"PickupTime",l))}r.appendChild(this.entity(t,"MessageID",(new Date).getTime().toString()));var c,u=n.map((function(r){return e.entity(t,"RxNumber",r)}));return r.appendChild(this.entity.apply(this,[t,"RxNumbers"].concat(function(e){if(Array.isArray(e))return ae(e)}(c=u)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(c)||ie(c)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()))),r.appendChild(this.entity(t,"Contact",this.entity(t,"LastName",this.state.fields.last_name.value),this.entity(t,"FirstName",this.state.fields.first_name.value),this.entity(t,"Phone",this.state.fields.phone_number.value),this.entity(t,"Email",this.state.fields.email.value),this.entity(t,"Fax",this.state.fields.fax_number.value))),"Yes"==this.state.fields.delivery.value?r.appendChild(this.entity(t,"PickupMethod","D")):r.appendChild(this.entity(t,"PickupMethod","P")),r.appendChild(this.entity(t,"Comment",this.state.fields.comments.value)),t}},{key:"getData",value:(o=oe(re().mark((function e(){var t,r;return re().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:e.prev=0,(t=le({},this.state)).data=[],e.t0=re().keys(t.fields);case 4:if((e.t1=e.t0()).done){e.next=16;break}if(r=e.t1.value,!Object.hasOwn(t.fields,r)){e.next=14;break}if(!t.fields[r].value){e.next=12;break}return e.next=10,t.data.push(t.fields[r].value);case 10:e.next=14;break;case 12:return e.next=14,t.data.push("");case 14:e.next=4;break;case 16:return e.next=18,this.setState(t);case 18:e.next=23;break;case 20:e.prev=20,e.t2=e.catch(0),console.log(e.t2);case 23:case"end":return e.stop()}}),e,this,[[0,20]])}))),function(){return o.apply(this,arguments)})},{key:"addRXNumber",value:function(){var e=this,t=le({},this.state);t.btn_count++;var r={};r["prescription_".concat(t.btn_count)]={title:"",type:{typename:"text"},required:!1,error:!1,onChange:function(t,r){var n=le({},e.state);/^\d{5,10}$/.test(t)?(n.fields.prescriptions[r]["prescription_".concat(r)].error=!1,n.fields.prescriptions[r]["prescription_".concat(r)].feedback=""):(n.fields.prescriptions[r]["prescription_".concat(r)].error=!0,n.fields.prescriptions[r]["prescription_".concat(r)].feedback="Invalid Prescription Number Format"),n.fields.prescriptions[r]["prescription_".concat(r)].value=t,e.setState(n)},fullwidth:!0,feedback:"",value:""},t.fields.prescriptions.push(r),this.setState(t)}},{key:"getGoogleMapsURL",value:function(){return"+".concat(this.state.store_address,"\n +").concat(this.state.store_address_two,"\n +").concat(this.state.city,",\n +").concat(this.state.state,"\n +").concat(this.state.zip)}},{key:"getNavigation",value:function(e){navigator&&navigator.platform&&(-1!=navigator.platform.indexOf("iPhone")||-1!=navigator.platform.indexOf("Mac")||-1!=navigator.platform.indexOf("iPad")||-1!=navigator.platform.indexOf("iPod")?window.open("maps://?q="+e):window.open("google.navigation:q="+e+"&mode=d"))}},{key:"load",value:function(){var e=this,t={tag:this.getStoreNumber()};A({method:"get",endpoint:"query",params:t}).then(function(){var t=oe(re().mark((function t(r){var n,o;return re().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:n=JSON.parse(r.data),o=[n.address1+" "+n.city+" "+n.state+" "+n.zip],e.setState({store_name:n.name,logo:n.logo,store_address:n.address1,store_address_two:n.address2,pharmacy_phone:n.phone,pharmacy_sms:n.sms,email:n.email,website:n.website,web_version:n.web_version,city:n.city,state:n.state,zip:n.zip,facebook_link:n.facebook_link,pharmacy_hours:n.store_hours,loaded:!0,pharm_coords:o});case 3:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}()).catch((function(t){console.log(t),e.setState({loaded:!0,errors:x(t)})}))}},{key:"componentDidMount",value:function(){this.load()}},{key:"componentDidUpdate",value:function(){this.state.loaded||this.load()}},{key:"submitForm",value:function(){var e=this,t=''+(new XMLSerializer).serializeToString(this.constructXMLDocument());A({method:"post",endpoint:"submit",headers:{"Content-Type":"application/json"},data:t}).then((function(t){e.changeView("success_submit")})).catch((function(t){console.log(t),e.setState({errors:x(t),loaded:!0})}))}},{key:"render",value:function(){var e=this,t="";if("mobile_site"!==this.state.view){var r=this.state.pages.find((function(t){return t.view==e.state.view}));t=n.createElement(z.Z,{sx:{padding:"5px"}},n.createElement(q.Z,{underline:"hover",color:"inherit",onClick:function(){"mobile_site"!==e.state.view&&e.clearFields(),e.changeView("mobile_site")}},"Home"),n.createElement(O.Z,{color:"text.primary"},r?r.name:"Successful Submission"))}var o=n.createElement(R,null);if(this.state.loaded)if(this.state.errors){var i="";"Pharmacy Not Found / Store License not valid"==this.state.errors&&(i="Missing or invalid store tag in request");var a={message:i||this.state.errors};o=S(a)}else switch(this.state.view){case"mobile_site":o=n.createElement("div",null,n.createElement(k.Z,{maxWidth:"lg"},n.createElement(Z.Z,{style:{height:"100vh",overflow:"auto"}},n.createElement(V.Z,{style:{padding:"unset"}},this.state.pages.map((function(t,r){var o=t.name;if("call_pharmacy"==t.view){var i="tel://+1"+e.state.pharmacy_phone.replace(/[^+\d]/g,"");o=n.createElement(q.Z,{color:"black",underline:"none",href:i},t.name)}return n.createElement(X.Z,{key:"".concat(t.name,"-").concat(r),sx:{display:"flex",justifyContent:"center",color:"black",width:"100%",gap:"0.5rem",textAlign:"center",bgcolor:"#ddd",borderBottom:"1px solid",borderColor:"#b1abab"},onClick:function(r){if(["refill_request","hours_and_directions"].includes(t.view))e.changeView(t.view);else if("add_contacts"==t.view){var n=e.addContact(),o=n.content,i=n.filename,a=n.content_type;e.downloadToFile(o,i,a)}else if("navigation"==t.view){var s=e.getGoogleMapsURL();e.getNavigation(s)}}},n.createElement(Z.Z,{sx:{width:"250px",display:"flex",justifyContent:"space-between"}},n.createElement(Z.Z,{sx:{width:"50px"}},t.icon),n.createElement(Z.Z,{sx:{display:"flex",justifyContent:"center",flexGrow:"1"}},o)))}))))));break;case"refill_request":o=n.createElement(k.Z,{maxWidth:"lg"},t,n.createElement(T.Z,{variant:"outlined"},n.createElement("form",{id:"refill-request"},n.createElement(P.ZP,{container:!0,spacing:1,sx:{padding:"20px"}},n.createElement(P.ZP,{item:!0,xs:12},n.createElement(O.Z,{variant:"h4"},"Web Refill Form"),n.createElement("hr",null)),n.createElement(P.ZP,{item:!0,xs:12},n.createElement(P.ZP,{container:!0,spacing:2},n.createElement(P.ZP,{item:!0,xs:12},n.createElement(Y.Z,{fullWidth:!0,error:this.state.fields.first_name.error,required:this.state.fields.first_name.required,size:"small",type:"text",label:this.state.fields.first_name.title,helperText:this.state&&this.state.fields.first_name.error?this.state.fields.first_name.feedback:"",value:this.state.fields.first_name.value,onChange:function(t){var r=t.target.value;e.state.fields.first_name.onChange(r)}})),n.createElement(P.ZP,{item:!0,xs:12},n.createElement(Y.Z,{fullWidth:!0,error:this.state.fields.last_name.error,required:this.state.fields.last_name.required,size:"small",type:"text",label:this.state.fields.last_name.title,helperText:this.state&&this.state.fields.last_name.error?this.state.fields.last_name.feedback:"",value:this.state.fields.last_name.value,onChange:function(t){var r=t.target.value;e.state.fields.last_name.onChange(r)}})),n.createElement(P.ZP,{item:!0,xs:12},n.createElement(Y.Z,{fullWidth:!0,error:this.state.fields.phone_number.error,required:this.state.fields.phone_number.required,size:"small",type:"text",label:this.state.fields.phone_number.title,helperText:this.state&&this.state.fields.phone_number.error?this.state.fields.phone_number.feedback:"",value:this.state.fields.phone_number.value,onChange:function(t){var r=t.target.value;e.state.fields.phone_number.onChange(r)}})),n.createElement(P.ZP,{item:!0,xs:12},n.createElement(Y.Z,{fullWidth:!0,error:this.state.fields.email.error,required:this.state.fields.email.required,size:"small",type:"text",label:this.state.fields.email.title,helperText:this.state&&this.state.fields.email.error?this.state.fields.email.feedback:"",value:this.state.fields.email.value,onChange:function(t){var r=t.target.value;e.state.fields.email.onChange(r)}})),n.createElement(P.ZP,{item:!0,xs:12},n.createElement(Y.Z,{fullWidth:!0,error:this.state.fields.fax_number.error,required:this.state.fields.fax_number.required,size:"small",type:"text",label:this.state.fields.fax_number.title,helperText:this.state&&this.state.fields.fax_number.error?this.state.fields.fax_number.feedback:"",value:this.state.fields.fax_number.value,onChange:function(t){var r=t.target.value;e.state.fields.fax_number.onChange(r)}})),this.state.fields.prescriptions.map((function(t,r){return n.createElement(P.ZP,{item:!0,xs:12,key:r},n.createElement(Y.Z,{fullWidth:!0,error:t["prescription_".concat(r)].error,required:t["prescription_".concat(r)].required,size:"small",type:"text",label:0==r?t["prescription_".concat(r)].title:"",helperText:e.state&&t["prescription_".concat(r)].error?t["prescription_".concat(r)].feedback:"",value:t["prescription_".concat(r)].value,onChange:function(e){var n=e.target.value;t["prescription_".concat(r)].onChange(n,r)}}))})),n.createElement(P.ZP,{item:!0,xs:12},n.createElement(C.Z,{fullWidth:!0,variant:"contained",color:"primary",onClick:function(t){t.stopPropagation(),t.preventDefault(),e.state.fields.prescriptions.length<=9&&e.addRXNumber()}},"Add")),10==this.state.web_version||13==this.state.web_version||15==this.state.web_version?n.createElement(P.ZP,{item:!0,xs:12},n.createElement(Q.Z,{fullWidth:!0},n.createElement(H.Z,null,this.state.fields.delivery.title),n.createElement(K.Z,{labelId:"delivery-select-label",value:this.state.fields.delivery.value,label:this.state.fields.delivery.title,size:"small",onChange:function(t){t.preventDefault(),t.stopPropagation(),e.state.fields.delivery.onChange(t.target.value)}},this.state.fields.delivery.type.options.map((function(e,t){return n.createElement(J.Z,{key:"".concat(e.value,"-").concat(t),value:e.value},e.value)}))))):n.createElement("div",null),10==this.state.web_version||13==this.state.web_version||15==this.state.web_version?n.createElement(P.ZP,{item:!0,xs:12},n.createElement(Q.Z,{fullWidth:!0},n.createElement(H.Z,null,this.state.fields.pickup.title),n.createElement(K.Z,{labelId:"pickup-select-label",id:"pickup-select",error:this.state.fields.pickup.error,required:this.state.fields.pickup.required,value:this.state.fields.pickup.value,label:this.state.fields.pickup.title,size:"small",onChange:function(t){t.preventDefault(),t.stopPropagation(),e.state.fields.pickup.onChange(t.target.value)}},this.state.fields.pickup.type.options.map((function(e,t){return n.createElement(J.Z,{key:"".concat(e.value,"-").concat(t),value:e.value},e.value)}))))):n.createElement("div",null),n.createElement(P.ZP,{item:!0,xs:12},n.createElement(Y.Z,{fullWidth:!0,multiline:!0,error:this.state.fields.comments.error,required:this.state.fields.comments.required,size:"small",label:this.state.fields.comments.title,helperText:this.state&&this.state.fields.comments.error?this.state.fields.comments.feedback:"",value:this.state.fields.comments.value,onChange:function(t){var r=t.target.value;e.state.fields.comments.onChange(r)}})),n.createElement(P.ZP,{item:!0,xs:12,sx:{paddingTop:"5px",bgcolor:"rgba(0,0,0,.05"}},n.createElement(P.ZP,{container:!0,spacing:2},n.createElement(P.ZP,{item:!0,xs:4,sx:{display:"flex",justifyContent:"flex-start"}},n.createElement(C.Z,{className:"submit",variant:"contained",color:"primary",onClick:function(t){t.stopPropagation(),t.preventDefault();var r=e.state.fields,n=!0,o=le({},e.state);for(var i in r)r[i].error||Array.isArray(r[i])&&!r[i][0].prescription_0.value?n=!1:[10,13,15].includes(e.state.web_version)&&"pickup"==i&&"-- Select One --"==r[i].value&&(n=!1,o.fields.pickup.error=!0,e.setState(o));n&&e.submitForm()}},"Submit")),n.createElement(P.ZP,{item:!0,xs:4,sx:{display:"flex",justifyContent:"center"}},n.createElement(C.Z,{className:"reset",variant:"contained",color:"error",onClick:function(t){t.stopPropagation(),t.preventDefault(),e.clearFields()}},"Reset")),n.createElement(P.ZP,{item:!0,xs:4,sx:{display:"flex",justifyContent:"flex-end"}},n.createElement(C.Z,{className:"cancel",variant:"outlined",onClick:function(t){t.stopPropagation(),t.preventDefault(),e.clearFields(),e.changeView("mobile_site")}},"Cancel"))))))))));break;case"success_submit":o=n.createElement(k.Z,{maxWidth:"lg"},t,n.createElement(T.Z,{variant:"outlined"},n.createElement(P.ZP,{container:!0,spacing:2},n.createElement(P.ZP,{item:!0,xs:12,sx:{display:"flex",justifyContent:"flex-start"}},n.createElement(O.Z,{variant:"h6",sx:{padding:"5px"}},"Fill submitted successfully!")),n.createElement(P.ZP,{item:!0,xs:12,sx:{display:"flex",justifyContent:"center"}},n.createElement("table",null,n.createElement("tbody",null,n.createElement("tr",null,n.createElement("th",null,"Patient:"),n.createElement("td",null,this.state.fields.first_name.value+" "+this.state.fields.last_name.value)),n.createElement("tr",null,n.createElement("th",null,"Phone Number:"),n.createElement("td",null,this.state.fields.phone_number.value)),this.state.fields.email.value?n.createElement("tr",null,n.createElement("th",null,"Email:"),n.createElement("td",null,this.state.fields.email.value)):"",this.state.fields.fax_number.value?n.createElement("tr",null,n.createElement("th",null,"Fax Number:"),n.createElement("td",null,this.state.fields.fax_number.value)):"",n.createElement("tr",null,n.createElement("th",null,"Prescriptions:"),this.prescriptionData()),10==this.state.web_version||13==this.state.web_version||15==this.state.web_version?n.createElement("tr",null,n.createElement("th",null,"Delivery:"),n.createElement("td",null,this.state.fields.delivery.value)):"",10==this.state.web_version||13==this.state.web_version||15==this.state.web_version?n.createElement("tr",null,n.createElement("th",null,"Pickup:"),n.createElement("td",null,this.state.fields.pickup.value)):"",this.state.fields.comments.value?n.createElement("tr",null,n.createElement("th",null,"Comments:"),n.createElement("td",null,this.state.fields.comments.value)):""))),n.createElement(P.ZP,{item:!0,xs:12,sx:{display:"flex",justifyContent:"flex-start"}},n.createElement(O.Z,{sx:{padding:"5px"}},"Would you like to submit another fill?")),n.createElement(P.ZP,{item:!0,xs:12},n.createElement(P.ZP,{container:!0,spacing:2},n.createElement(P.ZP,{item:!0,xs:6,sx:{display:"flex",justifyContent:"flex-start"}},n.createElement(C.Z,{sx:{margin:"5px"},type:"button",variant:"outlined",color:"primary",onClick:function(t){t.preventDefault(),t.stopPropagation(),e.clearFields(),e.changeView("mobile_site")}},"No")),n.createElement(P.ZP,{item:!0,xs:6,sx:{display:"flex",justifyContent:"flex-end"}},n.createElement(C.Z,{sx:{margin:"5px"},type:"button",variant:"contained",color:"primary",onClick:function(t){t.preventDefault(),t.stopPropagation(),e.clearFields(),e.changeView("refill_request")}},"Yes")))))));break;case"hours_and_directions":o=n.createElement("div",{style:{padding:"5px"}},t,n.createElement(O.Z,{variant:"h5"},"Store Hours"),n.createElement(O.Z,null,this.state.pharmacy_hours?this.state.pharmacy_hours:"No store hours available"),n.createElement("hr",null),n.createElement(O.Z,{variant:"h5"},"Directions"),n.createElement(O.Z,null,this.state.store_address),n.createElement(O.Z,null,this.state.store_address_two),n.createElement(O.Z,null,this.state.city,", ",this.state.state," ",this.state.zip),n.createElement(O.Z,null,this.state.phone_number),n.createElement("a",{onClick:function(){var t=e.getGoogleMapsURL();e.getNavigation(t)},style:{fontSize:"16px",color:"blue",cursor:"pointer",borderBottom:"1px solid blue"}},"Get Directions"),this.state.facebook_link?n.createElement(n.Fragment,null,n.createElement("br",null),n.createElement("a",{onClick:function(){window.location.href=e.state.facebook_link},style:{fontSize:"16px",color:"blue",cursor:"pointer",borderBottom:"1px solid blue"}},"Facebook Link")):"",n.createElement("hr",null),n.createElement(P.ZP,{container:!0,spacing:2},n.createElement(P.ZP,{item:!0,xs:12},n.createElement(w,{accessToken:"pk.eyJ1IjoibW1jbWlsbGFuIiwiYSI6ImNsb2oxbW9iNDAwaXAyanBwYmk0d3YzM2EifQ.5B6u1ETbrXbm6ws0HeS8Iw",addresses:this.state.pharm_coords,zoom:15,projection:"globe",allowFullScreen:!0,allowNavigation:!0}))))}else o=n.createElement(R,null);return n.createElement("div",null,n.createElement($.Z,{position:"static"},n.createElement(ee.Z,null,this.state.logo?n.createElement("img",{src:this.state.logo,style:{margin:"5px",borderRadius:"5px",height:"5rem"}}):n.createElement(O.Z,null,this.state.store_name))),o)}}],r&&ce(t.prototype,r),Object.defineProperty(t,"prototype",{writable:!1}),l}(n.Component);de(me,"propTypes",{themeMode:l().string.isRequired});const ve=me;var ye=r(9617),be=r(2233),ge=r(6720);function we(e){return we="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},we(e)}function Ee(){Ee=function(){return t};var e,t={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(e,t,r){e[t]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",l=i.toStringTag||"@@toStringTag";function c(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,r){return e[t]=r}}function u(e,t,r,n){var i=t&&t.prototype instanceof y?t:y,a=Object.create(i.prototype),s=new T(n||[]);return o(a,"_invoke",{value:O(e,r,s)}),a}function f(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=u;var p="suspendedStart",d="suspendedYield",h="executing",m="completed",v={};function y(){}function b(){}function g(){}var w={};c(w,a,(function(){return this}));var E=Object.getPrototypeOf,A=E&&E(E(Z([])));A&&A!==r&&n.call(A,a)&&(w=A);var x=g.prototype=y.prototype=Object.create(w);function k(e){["next","throw","return"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function P(e,t){function r(o,i,a,s){var l=f(e[o],e,i);if("throw"!==l.type){var c=l.arg,u=c.value;return u&&"object"==we(u)&&n.call(u,"__await")?t.resolve(u.__await).then((function(e){r("next",e,a,s)}),(function(e){r("throw",e,a,s)})):t.resolve(u).then((function(e){c.value=e,a(c)}),(function(e){return r("throw",e,a,s)}))}s(l.arg)}var i;o(this,"_invoke",{value:function(e,n){function o(){return new t((function(t,o){r(e,n,t,o)}))}return i=i?i.then(o,o):o()}})}function O(t,r,n){var o=p;return function(i,a){if(o===h)throw new Error("Generator is already running");if(o===m){if("throw"===i)throw a;return{value:e,done:!0}}for(n.method=i,n.arg=a;;){var s=n.delegate;if(s){var l=C(s,n);if(l){if(l===v)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===p)throw o=m,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=h;var c=f(t,r,n);if("normal"===c.type){if(o=n.done?m:d,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(o=m,n.method="throw",n.arg=c.arg)}}}function C(t,r){var n=r.method,o=t.iterator[n];if(o===e)return r.delegate=null,"throw"===n&&t.iterator.return&&(r.method="return",r.arg=e,C(t,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),v;var i=f(o,t.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,v;var a=i.arg;return a?a.done?(r[t.resultName]=a.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,v):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,v)}function j(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 S(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function T(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(j,this),this.reset(!0)}function Z(t){if(t||""===t){var r=t[a];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,i=function r(){for(;++o=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var l=n.call(a,"catchLoc"),c=n.call(a,"finallyLoc");if(l&&c){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),S(r),v}},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 o=n.arg;S(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:Z(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),v}},t}function Ae(e,t,r,n,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void r(e)}s.done?t(l):Promise.resolve(l).then(n,o)}function xe(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var i=e.apply(t,r);function a(e){Ae(i,n,o,a,s,"next",e)}function s(e){Ae(i,n,o,a,s,"throw",e)}a(void 0)}))}}function ke(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:"render",value:function(){return n.createElement(be.Z,{theme:"dark"===this.state.theme?this.themeDark:this.themeLight},n.createElement(ge.ZP,null),n.createElement("div",null,n.createElement(i.UT,null,n.createElement(a.Z5,null,n.createElement(a.AW,{path:"/",element:n.createElement(ve,{themeMode:this.state.theme})}),n.createElement(a.AW,{path:"mobilesite/",element:n.createElement(ve,{themeMode:this.state.theme})}),n.createElement(a.AW,{path:"m/:tag",element:n.createElement(ve,{themeMode:this.state.theme})})))))}}],r&&ke(t.prototype,r),Object.defineProperty(t,"prototype",{writable:!1}),f}(n.Component);var _e=document.getElementById("container");(0,o.s)(_e).render(n.createElement(Me,null))}},o={};function i(e){var t=o[e];if(void 0!==t)return t.exports;var r=o[e]={exports:{}};return n[e].call(r.exports,r,r.exports,i),r.exports}i.m=n,e=[],i.O=(t,r,n,o)=>{if(!r){var a=1/0;for(u=0;u=o)&&Object.keys(i.O).every((e=>i.O[e](r[l])))?r.splice(l--,1):(s=!1,o0&&e[u-1][2]>o;u--)e[u]=e[u-1];e[u]=[r,n,o]},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 o=Object.create(null);i.r(o);var a={};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=>a[t]=()=>e[t]));return a.default=()=>e,i.d(o,a),o},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,o,[a,s,l]=r,c=0;if(a.some((t=>0!==e[t]))){for(n in s)i.o(s,n)&&(i.m[n]=s[n]);if(l)var u=l(i)}for(t&&t(r);ci(6991)));a=i.O(a)})(); //# sourceMappingURL=data:application/json;charset=utf-8;base64,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SzlCLEtBQUtza0IsUUM3Q3ZGLElBQUlDLEVBQXNCN0IsRUFBb0JNLE9BQUU3UixFQUFXLENBQUMsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksTUFBTSxJQUFPdVIsRUFBb0IsUUFDakk2QixFQUFzQjdCLEVBQW9CTSxFQUFFdUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9zcnNyZmwtcmVhY3Qvd2VicGFjay9ydW50aW1lL2NodW5rIGxvYWRlZCIsIndlYnBhY2s6Ly9zcnNyZmwtcmVhY3Qvd2VicGFjay9ydW50aW1lL2NyZWF0ZSBmYWtlIG5hbWVzcGFjZSBvYmplY3QiLCJ3ZWJwYWNrOi8vc3JzcmZsLXJlYWN0Ly4vc3JjL2xpYi9NYXBib3hHTC5qcyIsIndlYnBhY2s6Ly9zcnNyZmwtcmVhY3QvLi9zcmMvbGliL3V0aWxzLmpzIiwid2VicGFjazovL3Nyc3JmbC1yZWFjdC8uLi8uLi9saWIvYXBpQ2FsbC5qcyIsIndlYnBhY2s6Ly9zcnNyZmwtcmVhY3QvLi4vLi4vbGliL2dldEVycm9yTWVzc2FnZS5qcyIsIndlYnBhY2s6Ly9zcnNyZmwtcmVhY3QvLi4vLi4vbGliL2Vycm9yLmpzIiwid2VicGFjazovL3Nyc3JmbC1yZWFjdC8uLi8uLi9pbWcvTG9hZGluZ0NhcHN1bGUucG5nIiwid2VicGFjazovL3Nyc3JmbC1yZWFjdC8uLi8uLi9saWIvbG9hZGluZy5qcyIsIndlYnBhY2s6Ly9zcnNyZmwtcmVhY3QvLi9zcmMvcGFnZXMvTW9iaWxlU2l0ZS5qcyIsIndlYnBhY2s6Ly9zcnNyZmwtcmVhY3QvLi9zcmMvQXBwLmpzIiwid2VicGFjazovL3Nyc3JmbC1yZWFjdC8uL3NyYy9pbmRleC5qcyIsIndlYnBhY2s6Ly9zcnNyZmwtcmVhY3Qvd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vc3JzcmZsLXJlYWN0L3dlYnBhY2svcnVudGltZS9jb21wYXQgZ2V0IGRlZmF1bHQgZXhwb3J0Iiwid2VicGFjazovL3Nyc3JmbC1yZWFjdC93ZWJwYWNrL3J1bnRpbWUvZGVmaW5lIHByb3BlcnR5IGdldHRlcnMiLCJ3ZWJwYWNrOi8vc3JzcmZsLXJlYWN0L3dlYnBhY2svcnVudGltZS9oYXNPd25Qcm9wZXJ0eSBzaG9ydGhhbmQiLCJ3ZWJwYWNrOi8vc3JzcmZsLXJlYWN0L3dlYnBhY2svcnVudGltZS9tYWtlIG5hbWVzcGFjZSBvYmplY3QiLCJ3ZWJwYWNrOi8vc3JzcmZsLXJlYWN0L3dlYnBhY2svcnVudGltZS9qc29ucCBjaHVuayBsb2FkaW5nIiwid2VicGFjazovL3Nyc3JmbC1yZWFjdC93ZWJwYWNrL3N0YXJ0dXAiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGRlZmVycmVkID0gW107XG5fX3dlYnBhY2tfcmVxdWlyZV9fLk8gPSAocmVzdWx0LCBjaHVua0lkcywgZm4sIHByaW9yaXR5KSA9PiB7XG5cdGlmKGNodW5rSWRzKSB7XG5cdFx0cHJpb3JpdHkgPSBwcmlvcml0eSB8fCAwO1xuXHRcdGZvcih2YXIgaSA9IGRlZmVycmVkLmxlbmd0aDsgaSA+IDAgJiYgZGVmZXJyZWRbaSAtIDFdWzJdID4gcHJpb3JpdHk7IGktLSkgZGVmZXJyZWRbaV0gPSBkZWZlcnJlZFtpIC0gMV07XG5cdFx0ZGVmZXJyZWRbaV0gPSBbY2h1bmtJZHMsIGZuLCBwcmlvcml0eV07XG5cdFx0cmV0dXJuO1xuXHR9XG5cdHZhciBub3RGdWxmaWxsZWQgPSBJbmZpbml0eTtcblx0Zm9yICh2YXIgaSA9IDA7IGkgPCBkZWZlcnJlZC5sZW5ndGg7IGkrKykge1xuXHRcdHZhciBbY2h1bmtJZHMsIGZuLCBwcmlvcml0eV0gPSBkZWZlcnJlZFtpXTtcblx0XHR2YXIgZnVsZmlsbGVkID0gdHJ1ZTtcblx0XHRmb3IgKHZhciBqID0gMDsgaiA8IGNodW5rSWRzLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRpZiAoKHByaW9yaXR5ICYgMSA9PT0gMCB8fCBub3RGdWxmaWxsZWQgPj0gcHJpb3JpdHkpICYmIE9iamVjdC5rZXlzKF9fd2VicGFja19yZXF1aXJlX18uTykuZXZlcnkoKGtleSkgPT4gKF9fd2VicGFja19yZXF1aXJlX18uT1trZXldKGNodW5rSWRzW2pdKSkpKSB7XG5cdFx0XHRcdGNodW5rSWRzLnNwbGljZShqLS0sIDEpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0ZnVsZmlsbGVkID0gZmFsc2U7XG5cdFx0XHRcdGlmKHByaW9yaXR5IDwgbm90RnVsZmlsbGVkKSBub3RGdWxmaWxsZWQgPSBwcmlvcml0eTtcblx0XHRcdH1cblx0XHR9XG5cdFx0aWYoZnVsZmlsbGVkKSB7XG5cdFx0XHRkZWZlcnJlZC5zcGxpY2UoaS0tLCAxKVxuXHRcdFx0dmFyIHIgPSBmbigpO1xuXHRcdFx0aWYgKHIgIT09IHVuZGVmaW5lZCkgcmVzdWx0ID0gcjtcblx0XHR9XG5cdH1cblx0cmV0dXJuIHJlc3VsdDtcbn07IiwidmFyIGdldFByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mID8gKG9iaikgPT4gKE9iamVjdC5nZXRQcm90b3R5cGVPZihvYmopKSA6IChvYmopID0+IChvYmouX19wcm90b19fKTtcbnZhciBsZWFmUHJvdG90eXBlcztcbi8vIGNyZWF0ZSBhIGZha2UgbmFtZXNwYWNlIG9iamVjdFxuLy8gbW9kZSAmIDE6IHZhbHVlIGlzIGEgbW9kdWxlIGlkLCByZXF1aXJlIGl0XG4vLyBtb2RlICYgMjogbWVyZ2UgYWxsIHByb3BlcnRpZXMgb2YgdmFsdWUgaW50byB0aGUgbnNcbi8vIG1vZGUgJiA0OiByZXR1cm4gdmFsdWUgd2hlbiBhbHJlYWR5IG5zIG9iamVjdFxuLy8gbW9kZSAmIDE2OiByZXR1cm4gdmFsdWUgd2hlbiBpdCdzIFByb21pc2UtbGlrZVxuLy8gbW9kZSAmIDh8MTogYmVoYXZlIGxpa2UgcmVxdWlyZVxuX193ZWJwYWNrX3JlcXVpcmVfXy50ID0gZnVuY3Rpb24odmFsdWUsIG1vZGUpIHtcblx0aWYobW9kZSAmIDEpIHZhbHVlID0gdGhpcyh2YWx1ZSk7XG5cdGlmKG1vZGUgJiA4KSByZXR1cm4gdmFsdWU7XG5cdGlmKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUpIHtcblx0XHRpZigobW9kZSAmIDQpICYmIHZhbHVlLl9fZXNNb2R1bGUpIHJldHVybiB2YWx1ZTtcblx0XHRpZigobW9kZSAmIDE2KSAmJiB0eXBlb2YgdmFsdWUudGhlbiA9PT0gJ2Z1bmN0aW9uJykgcmV0dXJuIHZhbHVlO1xuXHR9XG5cdHZhciBucyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5cdF9fd2VicGFja19yZXF1aXJlX18ucihucyk7XG5cdHZhciBkZWYgPSB7fTtcblx0bGVhZlByb3RvdHlwZXMgPSBsZWFmUHJvdG90eXBlcyB8fCBbbnVsbCwgZ2V0UHJvdG8oe30pLCBnZXRQcm90byhbXSksIGdldFByb3RvKGdldFByb3RvKV07XG5cdGZvcih2YXIgY3VycmVudCA9IG1vZGUgJiAyICYmIHZhbHVlOyB0eXBlb2YgY3VycmVudCA9PSAnb2JqZWN0JyAmJiAhfmxlYWZQcm90b3R5cGVzLmluZGV4T2YoY3VycmVudCk7IGN1cnJlbnQgPSBnZXRQcm90byhjdXJyZW50KSkge1xuXHRcdE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGN1cnJlbnQpLmZvckVhY2goKGtleSkgPT4gKGRlZltrZXldID0gKCkgPT4gKHZhbHVlW2tleV0pKSk7XG5cdH1cblx0ZGVmWydkZWZhdWx0J10gPSAoKSA9PiAodmFsdWUpO1xuXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQobnMsIGRlZik7XG5cdHJldHVybiBucztcbn07IiwiLypcbiAqIHNyYy9yZWFjdGxpYi9jb21wb25lbnRzL01hcGJveEdMLmpzXG4gKiBDb3B5cmlnaHQgKGMpMjAyMiBTUlMgUGhhcm1hY3kgU3lzdGVtcywgSW5jLlxuICovXG5cbi8vIGh0dHBzOi8vZG9jcy5tYXBib3guY29tL21hcGJveC1nbC1qcy9leGFtcGxlL1xuXG5pbXBvcnQgUmVhY3QsIHsgQ29tcG9uZW50IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBtYXBib3hnbCBmcm9tICdtYXBib3gtZ2wnO1xuaW1wb3J0IHsgcmVuZGVyRXJyb3IgfSBmcm9tICcuL3V0aWxzJztcblxuY2xhc3MgTWFwYm94R0wgZXh0ZW5kcyBDb21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIGFjY2Vzc1Rva2VuOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgYWRkcmVzc2VzOiBQcm9wVHlwZXMuYXJyYXksXG4gICAgdG9BZGRyZXNzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGNlbnRlcjogUHJvcFR5cGVzLmFycmF5LFxuICAgIHpvb206IFByb3BUeXBlcy5udW1iZXIsXG4gICAgcHJvamVjdGlvbjogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBnZW9Mb2NhdGU6IFByb3BUeXBlcy5ib29sLFxuICAgIGFsbG93RnVsbFNjcmVlbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgYWxsb3dOYXZpZ2F0aW9uOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBmcm9tQ29vcmRpbmF0ZXM6IFByb3BUeXBlcy5hcnJheSxcbiAgICB0b0Nvb3JkaW5hdGVzOiBQcm9wVHlwZXMuYXJyYXksXG4gIH07XG4gIG1hcFJlZjtcbiAgbWFwO1xuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcbiAgICB0aGlzLmluc3RydWN0aW9uc1JlZiA9IFJlYWN0LmNyZWF0ZVJlZigpO1xuICAgIHRoaXMubWFwUmVmID0gUmVhY3QuY3JlYXRlUmVmKCk7XG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIHZpZXc6ICdsb2FkaW5nJyxcbiAgICAgIGVycm9yOiBudWxsLFxuICAgICAgbWFya2VyczogW10sXG4gICAgfTtcbiAgICB0aGlzLmluaXRNYXAgPSB0aGlzLmluaXRNYXAuYmluZCh0aGlzKTtcbiAgICB0aGlzLmdlb2NvZGVNYXJrZXJzID0gdGhpcy5nZW9jb2RlTWFya2Vycy5iaW5kKHRoaXMpO1xuICAgIHRoaXMuZ2V0RGlyZWN0aW9ucyA9IHRoaXMuZ2V0RGlyZWN0aW9ucy5iaW5kKHRoaXMpO1xuICB9XG4gIGdlb2NvZGVNYXJrZXJzKCkge1xuICAgIGNvbnN0IHJlc3VsdHMgPSBbXTtcbiAgICBjb25zdCBiYXNlVXJsID0gJ2h0dHBzOi8vYXBpLm1hcGJveC5jb20vZ2VvY29kaW5nL3Y1L21hcGJveC5wbGFjZXMvJztcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XG4gICAgcGFyYW1zLmFwcGVuZCgnYWNjZXNzX3Rva2VuJywgdGhpcy5wcm9wcy5hY2Nlc3NUb2tlbik7XG4gICAgbGV0IGNudCA9IDA7XG4gICAgZm9yIChjb25zdCBhZGRyZXNzIG9mIHRoaXMucHJvcHMuYWRkcmVzc2VzKSB7XG4gICAgICBjbnQrKztcbiAgICAgIGNvbnN0IHVybCA9IGJhc2VVcmwgKyBlbmNvZGVVUklDb21wb25lbnQoYWRkcmVzcykgKyAnLmpzb24/JyArIHBhcmFtcy50b1N0cmluZygpO1xuICAgICAgd2luZG93LmZldGNoKHVybCkudGhlbigocmVzcCkgPT4gcmVzcC5qc29uKCkpLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgICAgcmVzdWx0cy5wdXNoKGRhdGEpO1xuICAgICAgICBpZiAoY250ID09PSB0aGlzLnByb3BzLmFkZHJlc3Nlcy5sZW5ndGgpIHtcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgbWFya2VyczogcmVzdWx0cywgdmlldzogJ21hcCcgfSwgdGhpcy5pbml0TWFwKTtcbiAgICAgICAgfVxuICAgICAgfSkuY2F0Y2goKGUpID0+IGNvbnNvbGUubG9nKGUpKTtcbiAgICB9XG4gIH1cbiAgZ2V0RGlyZWN0aW9ucygpIHtcbiAgICBjb25zdCBmID0gdGhpcy5wcm9wcy5mcm9tQ29vcmRpbmF0ZXMuam9pbignLCAnKTtcbiAgICBjb25zdCB0ID0gdGhpcy5wcm9wcy50b0Nvb3JkaW5hdGVzLmpvaW4oJywgJyk7XG4gICAgY29uc3QgYmFzZVVybCA9IGBodHRwczovL2FwaS5tYXBib3guY29tL2RpcmVjdGlvbnMvdjUvbWFwYm94L2RyaXZpbmctdHJhZmZpYy8ke2Z9OyR7dH1gO1xuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcbiAgICBwYXJhbXMuYXBwZW5kKCdnZW9tZXRyaWVzJywgJ2dlb2pzb24nKTtcbiAgICBwYXJhbXMuYXBwZW5kKCdzdGVwcycsIHRydWUpO1xuICAgIHBhcmFtcy5hcHBlbmQoJ2FjY2Vzc190b2tlbicsIHRoaXMucHJvcHMuYWNjZXNzVG9rZW4pO1xuICAgIGNvbnN0IHVybCA9IGJhc2VVcmwgKyAnPycgKyBwYXJhbXMudG9TdHJpbmcoKTtcbiAgICB3aW5kb3cuZmV0Y2godXJsKS50aGVuKChyZXNwKSA9PiByZXNwLmpzb24oKSkudGhlbigoZGF0YSkgPT4ge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7IGRpcmVjdGlvbnM6IGRhdGEsIHZpZXc6ICdtYXAnIH0sIHRoaXMuaW5pdE1hcCk7XG4gICAgfSkuY2F0Y2goKGUpID0+IHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoeyBlcnJvcjogZS5zdGFjayB9KTtcbiAgICB9KTtcbiAgfVxuICBpbml0TWFwKCkge1xuICAgIG1hcGJveGdsLmFjY2Vzc1Rva2VuID0gdGhpcy5wcm9wcy5hY2Nlc3NUb2tlbjtcbiAgICBjb25zdCBtYXJrZXJzID0gW107XG4gICAgY29uc3Qgb3B0aW9ucyA9IHt9O1xuICAgIGxldCBnZW9sb2NhdGUgPSBudWxsO1xuICAgIGxldCBmdWxsc2NyZWVuID0gbnVsbDtcbiAgICBvcHRpb25zLmNvbnRhaW5lciA9IHRoaXMubWFwUmVmLmN1cnJlbnQuaWQ7XG4gICAgb3B0aW9ucy5zdHlsZSA9ICdtYXBib3g6Ly9zdHlsZXMvbWFwYm94L3N0cmVldHMtdjEyJztcbiAgICBpZiAodGhpcy5wcm9wcy5jZW50ZXIpIHtcbiAgICAgIG9wdGlvbnMuY2VudGVyID0gdGhpcy5wcm9wcy5jZW50ZXI7XG4gICAgfSBlbHNlIGlmICh0aGlzLnN0YXRlLm1hcmtlcnMubGVuZ3RoID4gMCkge1xuICAgICAgb3B0aW9ucy5jZW50ZXIgPSB0aGlzLnN0YXRlLm1hcmtlcnNbMF0uZmVhdHVyZXNbMF0uY2VudGVyO1xuICAgIH1cbiAgICBpZiAodGhpcy5wcm9wcy56b29tKSB7XG4gICAgICBvcHRpb25zLnpvb20gPSB0aGlzLnByb3BzLnpvb207XG4gICAgfVxuICAgIGlmICh0aGlzLnByb3BzLnByb2plY3Rpb24pIHtcbiAgICAgIG9wdGlvbnMucHJvamVjdGlvbiA9IHRoaXMucHJvcHMucHJvamVjdGlvbjtcbiAgICB9XG4gICAgdGhpcy5tYXAgPSBuZXcgbWFwYm94Z2wuTWFwKG9wdGlvbnMpO1xuICAgIGlmICh0aGlzLnByb3BzLmdlb0xvY2F0ZSkge1xuICAgICAgZ2VvbG9jYXRlID0gbmV3IG1hcGJveGdsLkdlb2xvY2F0ZUNvbnRyb2woe1xuICAgICAgICBwb3NpdGlvbk9wdGlvbnM6IHtcbiAgICAgICAgICBlbmFibGVIaWdoQWNjdXJhY3k6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHNob3dVc2VyTG9jYXRpb246IHRydWUsXG4gICAgICAgIHRyYWNrVXNlckxvY2F0aW9uOiB0cnVlLFxuICAgICAgICBzaG93VXNlckhlYWRpbmc6IHRydWUsXG4gICAgICB9KTtcbiAgICAgIHRoaXMubWFwLmFkZENvbnRyb2woZ2VvbG9jYXRlKTtcbiAgICB9XG4gICAgaWYgKHRoaXMucHJvcHMuYWxsb3dGdWxsU2NyZWVuKSB7XG4gICAgICBmdWxsc2NyZWVuID0gbmV3IG1hcGJveGdsLkZ1bGxzY3JlZW5Db250cm9sKCk7XG4gICAgICB0aGlzLm1hcC5hZGRDb250cm9sKGZ1bGxzY3JlZW4pO1xuICAgIH1cbiAgICBpZiAodGhpcy5wcm9wcy5hbGxvd05hdmlnYXRpb24pIHtcbiAgICAgIHRoaXMubWFwLmFkZENvbnRyb2wobmV3IG1hcGJveGdsLk5hdmlnYXRpb25Db250cm9sKCksICdib3R0b20tcmlnaHQnKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuc3RhdGUubWFya2VycyAmJiB0aGlzLnN0YXRlLm1hcmtlcnMubGVuZ3RoID4gMCkge1xuICAgICAgLy8gdXNlIHRoZSBmaXJzdCBtYXJrZXIgaW5zdGVhZCBvZiBhbGwgb2YgdGhlbVxuICAgICAgY29uc3QgZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgICBlbC5jbGFzc0xpc3QuYWRkKCdtYXRlcmlhbC1pY29ucycpO1xuICAgICAgZWwuY2xhc3NMaXN0LmFkZCgndGV4dC1wcmltYXJ5Jyk7XG4gICAgICBlbC5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJ2ZvbnQtc2l6ZTogM2VtJyk7XG4gICAgICBlbC5pbm5lclRleHQgPSAoJ3BsYWNlJyk7XG4gICAgICBlbC5zZXRBdHRyaWJ1dGUoJ3RpdGxlJywgdGhpcy5zdGF0ZS5tYXJrZXJzWzBdLmZlYXR1cmVzWzBdLnBsYWNlX25hbWUpO1xuICAgICAgY29uc3QgbSA9IG5ldyBtYXBib3hnbC5NYXJrZXIoZWwpO1xuICAgICAgbS5zZXRMbmdMYXQodGhpcy5zdGF0ZS5tYXJrZXJzWzBdLmZlYXR1cmVzWzBdLmdlb21ldHJ5LmNvb3JkaW5hdGVzKTtcbiAgICAgIG0uc2V0UG9wdXAobmV3IG1hcGJveGdsLlBvcHVwKCkuc2V0SFRNTChgPHN0cm9uZyR7dGhpcy5zdGF0ZS5tYXJrZXJzWzBdLmZlYXR1cmVzWzBdLnBsYWNlX25hbWV9PHN0cm9uZz5gKSk7XG4gICAgICBtYXJrZXJzLnB1c2gobSk7XG4gICAgICAvLyBmb3IgKGNvbnN0IG1hcmtlciBvZiB0aGlzLnN0YXRlLm1hcmtlcnMpIHtcbiAgICAgIC8vICAgZm9yIChjb25zdCBmZWF0dXJlIG9mIG1hcmtlci5mZWF0dXJlcykge1xuICAgICAgLy8gICAgIGNvbnN0IGVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgICAgLy8gICAgIGVsLmNsYXNzTGlzdC5hZGQoJ21hdGVyaWFsLWljb25zJyk7XG4gICAgICAvLyAgICAgZWwuY2xhc3NMaXN0LmFkZCgndGV4dC1wcmltYXJ5Jyk7XG4gICAgICAvLyAgICAgZWwuc2V0QXR0cmlidXRlKCdzdHlsZScsICdmb250LXNpemU6IDNlbScpO1xuICAgICAgLy8gICAgIGVsLmlubmVyVGV4dCA9ICdwbGFjZSc7XG4gICAgICAvLyAgICAgZWwuc2V0QXR0cmlidXRlKCd0aXRsZScsIGZlYXR1cmUucGxhY2VfbmFtZSk7XG4gICAgICAvLyAgICAgY29uc3QgbSA9IG5ldyBtYXBib3hnbC5NYXJrZXIoZWwpO1xuICAgICAgLy8gICAgIG0uc2V0TG5nTGF0KGZlYXR1cmUuZ2VvbWV0cnkuY29vcmRpbmF0ZXMpO1xuICAgICAgLy8gICAgIG0uc2V0UG9wdXAobmV3IG1hcGJveGdsLlBvcHVwKCkuc2V0SFRNTChgPHN0cm9uZz4ke2ZlYXR1cmUucGxhY2VfbmFtZX08L3N0cm9uZz5gKSk7XG4gICAgICAvLyAgICAgbWFya2Vycy5wdXNoKG0pO1xuICAgICAgLy8gICB9XG4gICAgICAvLyB9XG4gICAgfVxuICAgIHRoaXMubWFwLm9uKCdzdHlsZS5sb2FkJywgKCkgPT4ge1xuICAgICAgdGhpcy5tYXAuc2V0Rm9nKHt9KTtcbiAgICB9KTtcbiAgICB0aGlzLm1hcC5vbignbG9hZCcsICgpID0+IHtcbiAgICAgIGlmIChnZW9sb2NhdGUpIHtcbiAgICAgICAgZ2VvbG9jYXRlLnRyaWdnZXIoKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnN0YXRlLmRpcmVjdGlvbnMpIHtcbiAgICAgICAgY29uc3Qgcm91dGUgPSB0aGlzLnN0YXRlLmRpcmVjdGlvbnMucm91dGVzWzBdO1xuICAgICAgICBjb25zdCBnZW9qc29uID0ge1xuICAgICAgICAgIHR5cGU6ICdGZWF0dXJlJyxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7fSxcbiAgICAgICAgICBnZW9tZXRyeTogcm91dGUuZ2VvbWV0cnksXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuaW5zdHJ1Y3Rpb25zUmVmLmN1cnJlbnQuaW5uZXJIVE1MID0gJyc7XG4gICAgICAgIGNvbnN0IHN0ZXBzID0gYDx1bD4ke3JvdXRlLmxlZ3NbMF0/LnN0ZXBzLm1hcCgoc3RlcCkgPT4ge1xuICAgICAgICAgIHJldHVybiBgPGxpPiR7c3RlcC5tYW5ldXZlci5pbnN0cnVjdGlvbn08L2xpPmA7XG4gICAgICAgIH0pLmpvaW4oJ1xcbicpfVxuICAgICAgICA8L3VsPmA7XG4gICAgICAgIGNvbnN0IGR1cmF0aW9uID0gYDxwPjxzdHJvbmc+VHJpcCBkdXJhdGlvbjogJHtNYXRoLmZsb29yKHJvdXRlLmR1cmF0aW9uIC8gNjApfSBtaW48L3N0cm9uZz48L3A+YDtcbiAgICAgICAgdGhpcy5pbnN0cnVjdGlvbnNSZWYuY3VycmVudC5pbm5lckhUTUwgPSBgJHtkdXJhdGlvbn0ke3N0ZXBzfWA7XG5cbiAgICAgICAgaWYgKHRoaXMubWFwLmdldFNvdXJjZSgncm91dGUnKSkge1xuICAgICAgICAgIHRoaXMubWFwLmdldFNvdXJjZSgncm91dGUnKS5zZXREYXRhKGdlb2pzb24pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMubWFwLmFkZExheWVyKHtcbiAgICAgICAgICAgIGlkOiAncm91dGUnLFxuICAgICAgICAgICAgdHlwZTogJ2xpbmUnLFxuICAgICAgICAgICAgc291cmNlOiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdnZW9qc29uJyxcbiAgICAgICAgICAgICAgZGF0YTogZ2VvanNvbixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYXlvdXQ6IHtcbiAgICAgICAgICAgICAgJ2xpbmUtam9pbic6ICdyb3VuZCcsXG4gICAgICAgICAgICAgICdsaW5lLWNhcCc6ICdyb3VuZCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcGFpbnQ6IHtcbiAgICAgICAgICAgICAgJ2xpbmUtY29sb3InOiAnIzM4ODdCRScsXG4gICAgICAgICAgICAgICdsaW5lLXdpZHRoJzogNSxcbiAgICAgICAgICAgICAgJ2xpbmUtb3BhY2l0eSc6IDAuNzUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAobWFya2Vycy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGZvciAoY29uc3QgbWFya2VyIG9mIG1hcmtlcnMpIHtcbiAgICAgICAgICBtYXJrZXIuYWRkVG8odGhpcy5tYXApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IHZpZXc6ICdtYXAnIH0pO1xuICB9XG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGlmICh0aGlzLnByb3BzLmFkZHJlc3NlcyAmJiB0aGlzLnByb3BzLmFkZHJlc3Nlcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmdlb2NvZGVNYXJrZXJzKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnByb3BzLmZyb21Db29yZGluYXRlcyAmJiB0aGlzLnByb3BzLnRvQ29vcmRpbmF0ZXMpIHtcbiAgICAgIHRoaXMuZ2V0RGlyZWN0aW9ucygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHsgdmlldzogJ21hcCcgfSwgKCkgPT4ge1xuICAgICAgICB0aGlzLmluaXRNYXAoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzLCBwcmV2U3RhdGUpIHtcbiAgICBpZiAocHJldlByb3BzLmZyb21Db29yZGluYXRlcyAhPT0gdGhpcy5wcm9wcy5mcm9tQ29vcmRpbmF0ZXMpIHtcbiAgICAgIGlmICh0aGlzLnByb3BzLmZyb21Db29yZGluYXRlcyAmJiB0aGlzLnByb3BzLnRvQ29vcmRpbmF0ZXMpIHtcbiAgICAgICAgdGhpcy5nZXREaXJlY3Rpb25zKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHsgdmlldzogJ21hcCcgfSwgKCkgPT4ge1xuICAgICAgICAgIHRoaXMuaW5pdE1hcCgpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHByZXZQcm9wcy5hZGRyZXNzZXMgIT09IHRoaXMucHJvcHMuYWRkcmVzc2VzKSB7XG4gICAgICBpZiAodGhpcy5wcm9wcy5hZGRyZXNzZXMgJiYgdGhpcy5wcm9wcy5hZGRyZXNzZXMubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLmdlb2NvZGVNYXJrZXJzKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJlbmRlcigpIHtcbiAgICBpZiAodGhpcy5zdGF0ZSAmJiB0aGlzLnN0YXRlLmVycm9yKSB7XG4gICAgICByZXR1cm4gcmVuZGVyRXJyb3IodGhpcyk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnN0YXRlICYmIHRoaXMuc3RhdGUudmlldyA9PT0gJ2xvYWRpbmcnKSB7XG4gICAgICByZXR1cm4gKDxkaXY+TG9hZGluZzwvZGl2Pik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JpZFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XG4gICAgICAgICAgICA8ZGl2IHJlZj17dGhpcy5pbnN0cnVjdGlvbnNSZWZ9IHN0eWxlPXt7XG4gICAgICAgICAgICAgIG1heEhlaWdodDogJzMwMHB4JyxcbiAgICAgICAgICAgICAgb3ZlcmZsb3c6ICdzY3JvbGwnLFxuICAgICAgICAgICAgfX0gY2xhc3NOYW1lPVwiY29sXCIgaWQ9XCJtYXBib3hHTEluc3RydWN0aW9uc1wiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiByZWY9e3RoaXMubWFwUmVmfSBjbGFzc05hbWU9XCJjb2xcIiBzdHlsZT17eyBoZWlnaHQ6ICczMDBweCcgfX0gaWQ9XCJtYXBib3hHTE1hcFwiPjwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE1hcGJveEdMO1xuIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuY29uc3QgbWFwYm94VG9rZW4gPSAncGsuZXlKMUlqb2liVzFqYldsc2JHRnVJaXdpWVNJNkltTnNiMm94Ylc5aU5EQXdhWEF5YW5Cd1ltazBkM1l6TTJFaWZRLjVCNnUxRVRiclhibTZ3czBIZVM4SXcnO1xuXG5jb25zdCByZW5kZXJFcnJvciA9IChjb21wb25lbnQpID0+IHtcbiAgaWYgKGNvbXBvbmVudC5zdGF0ZS5lcnJvcikge1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT1cInBhZC0zIGJnLWRhbmdlciB0ZXh0LXdoaXRlXCJcbiAgICAgICAgc3R5bGU9e3sgZGlzcGxheTogJ2ZsZXgnLCBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nLCBoZWlnaHQ6ICc0JScsIG1pbkhlaWdodDogJzEuOGVtJyB9fVxuICAgICAgPlxuICAgICAgICB7Y29tcG9uZW50LnN0YXRlLmVycm9yfVxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXsoZXZ0KSA9PiB7XG4gICAgICAgICAgY29tcG9uZW50LnNldFN0YXRlKHsgZXJyb3I6IG51bGwgfSk7XG4gICAgICAgIH19PlxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nbWF0ZXJpYWwtaWNvbnMnPmNsb3NlPC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG59O1xuXG5leHBvcnQge1xuICBtYXBib3hUb2tlbixcbiAgcmVuZGVyRXJyb3IsXG59O1xuIiwiaW1wb3J0IGF4aW9zIGZyb20gJ2F4aW9zJztcblxuY29uc3QgYXBpQ2FsbCA9IChvcHRzKSA9PiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgb3B0cyA9IG9wdHMgfHwge307XG4gICAgb3B0cy5jb250ZXh0ID0gb3B0cy5jb250ZXh0IHx8IG51bGw7XG4gICAgb3B0cy5yZXNwb25zZVR5cGUgPSBvcHRzLnJlc3BvbnNlVHlwZSB8fCAnYXBwbGljYXRpb24vanNvbic7XG4gICAgbGV0IHVybCA9ICcnO1xuICAgIGlmIChvcHRzLnVybCkge1xuICAgICAgdXJsID0gb3B0cy51cmw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHVybCA9IHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSA9PSAnbG9jYWxob3N0JyA/IGBodHRwczovL3Nyc3JmbC1zdGFnaW5nLmNvbS9gIDogJy8nO1xuICAgIH1cbiAgICBjb25zdCBoZWFkZXJzID0gb3B0cy5oZWFkZXJzIHx8IHt9O1xuICAgIGF4aW9zKHtcbiAgICAgIG1ldGhvZDogb3B0cy5tZXRob2QudG9Mb3dlckNhc2UoKSxcbiAgICAgIHVybDogYCR7dXJsfSR7b3B0cy5lbmRwb2ludH1gLFxuICAgICAgcmVzcG9uc2VUeXBlOiBvcHRzLnJlc3BvbnNlVHlwZSxcbiAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXG4gICAgICBwYXJhbXM6IG9wdHMucGFyYW1zLFxuICAgICAgZGF0YTogb3B0cy5kYXRhLFxuICAgIH0pLnRoZW4ocmVzb2x2ZSkuY2F0Y2gocmVqZWN0KTtcbiAgfSk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBhcGlDYWxsO1xuIiwiY29uc3QgZ2V0RXJyb3JNZXNzYWdlID0gKGVycikgPT4ge1xuICBsZXQgZXJyb3IgPSAnJztcbiAgaWYgKGVyci5yZXNwb25zZSAmJiBlcnIucmVzcG9uc2UuZGF0YSkge1xuICAgIGlmIChlcnIucmVzcG9uc2UuZGF0YS5tZXNzYWdlKSB7XG4gICAgICBpZiAoZXJyLnJlc3BvbnNlLmRhdGEubWVzc2FnZSA9PSAnc3RyaW5nJykge1xuICAgICAgICBlcnJvciA9IGVyci5yZXNwb25zZS5kYXRhLm1lc3NhZ2U7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlcnJvciA9IEpTT04uc3RyaW5naWZ5KGVyci5yZXNwb25zZS5kYXRhLm1lc3NhZ2UpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodHlwZW9mIGVyci5yZXNwb25zZS5kYXRhID09ICdzdHJpbmcnKSB7XG4gICAgICBpZiAoZXJyLnJlc3BvbnNlLmRhdGEuaW5jbHVkZXMoJ21lc3NhZ2UnKSkge1xuICAgICAgICBlcnJvciA9IGVyci5yZXNwb25zZS5kYXRhLnN1YnN0cmluZygxMiwgKGVyci5yZXNwb25zZS5kYXRhLmxlbmd0aCAtIDIpKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgZXJyb3IgPSBKU09OLnN0cmluZ2lmeShlcnIucmVzcG9uc2UuZGF0YSk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGVycm9yID0gZXJyLm1lc3NhZ2UgPyBlcnIubWVzc2FnZSA6IEpTT04uc3RyaW5naWZ5KGVycik7XG4gIH1cbiAgcmV0dXJuIGVycm9yO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgZ2V0RXJyb3JNZXNzYWdlO1xuIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFByb3BUeXBlcyB9IGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgR3JpZCwgVHlwb2dyYXBoeSwgQnV0dG9uLCBDb250YWluZXIgfSBmcm9tICdAbXVpL21hdGVyaWFsJztcbmltcG9ydCBMb2FkaW5nQ2Fwc3VsZUltZyBmcm9tICcuLi9pbWcvTG9hZGluZ0NhcHN1bGUucG5nJztcblxuY29uc3QgRXJyb3IgPSAocHJvcHMpID0+IHtcbiAgcmV0dXJuIChcbiAgICA8Q29udGFpbmVyIG1heFdpZHRoPSdsZyc+XG4gICAgICA8R3JpZCBjb250YWluZXIgZGlyZWN0aW9uPSdjb2x1bW4nIGp1c3RpZnlDb250ZW50PSdjZW50ZXInIGFsaWduSXRlbXM9J2NlbnRlcic+XG4gICAgICAgIDxHcmlkIGl0ZW0+XG4gICAgICAgICAgPGltZyBzcmM9e0xvYWRpbmdDYXBzdWxlSW1nfSAvPlxuICAgICAgICA8L0dyaWQ+XG4gICAgICAgIDxHcmlkIGl0ZW0+XG4gICAgICAgICAgPFR5cG9ncmFwaHkgdmFyaWFudD0naDYnPlxuICAgICAgICAgICAgRXJyb3I6IHtwcm9wcy5tZXNzYWdlfVxuICAgICAgICAgIDwvVHlwb2dyYXBoeT5cbiAgICAgICAgPC9HcmlkPlxuICAgICAgICA8R3JpZCBpdGVtPlxuICAgICAgICAgIHsgcHJvcHMucmV0dXJuVG9cbiAgICAgICAgICAgICYmIChcbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIHZhcmlhbnQ9J2NvbnRhaW5lZCdcbiAgICAgICAgICAgICAgICB3aWR0aD0nNTAlJ1xuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgcHJvcHMucmV0dXJuVG8oKTtcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIEJhY2tcbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuICAgICAgICA8L0dyaWQ+XG4gICAgICA8L0dyaWQ+XG4gICAgPC9Db250YWluZXI+XG4gICk7XG59O1xuXG5FcnJvci5wcm9wVHlwZXMgPSB7XG4gIG1lc3NhZ2U6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgcmV0dXJuVG86IFByb3BUeXBlcy5mdW5jLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgRXJyb3I7XG4iLCJleHBvcnQgZGVmYXVsdCBcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSUFBQUFDSkNBWUFBQURrTVRBREFBQUt4bWxEUTFCSlEwTWdVSEp2Wm1sc1pRQUFTSW1WbHdkWVUxa1dnTzk3TDczUUFoR1FFbm9UcEZjcG9ZY3VIV3lFSkpCUVlrd0lLalpVQmtkd0xLaElVd1FjRkZGd0xJQ01CYkZnUlZFQit3UVpWTlJ4c0NBcUt2dUFKY3pzZnJ2NzdYbmZ5ZjNmZWVlZWMrNzk3djIrRXdDb0JMWklsQUVyQVpBcHpCSkhCbmd6NGhNU0dmamZBUXdRb0F3QXdMQTVFaEV6SWlJRVpUQTEvbDArOWdCb2ZMeGpPUjdyMzcvL1YxSG04aVFjQUtBSWxKTzVFazRteXNkUmZjTVJpYk1BUVBhaGRvT2xXYUp4dm95eXFoZ3RFT1ZINDV3NnlVUGpuRHpCR015RVQzU2tEOHJxQUJBb2JMWTRGUUNLSVdwblpITlMwVGdVWDVTdGhWeUJFR1gwSFhodytHd3V5bWhlTUNzemMvRTR5MUEyVGY1TG5OUy94VXlXeDJTelUrVTh1WllKSWZnS0pLSU05dkwvY3p2K3QyUm1TS2R5R0tOSzRZc0RJOUdSanU3WnZmVEZ3WElXSm9lRlQ3R0FPK0Uvd1h4cFlNd1VjeVEraVZQTVpmc0d5K2RtaElWTWNZckFueVdQazhXS25tS2V4QzlxaXNXTEkrVzVVc1ErekNsbWk2ZnpTdE5qNUhZK2p5V1BuOE9QanB2aWJFRnMyQlJMMHFPQ3AzMTg1SGF4TkZKZVAwOFk0RDJkMTErKzlrekpYOVlyWU1ublp2R2pBK1ZyWjAvWHp4TXlwMk5LNHVXMWNYbStmdE0rTVhKL1VaYTNQSmNvSTBMdXo4c0lrTnNsMlZIeXVWbm9nWnllR3lIZnd6UjJVTVFVQTEvZ0IwTFFod0ZpZ0Myd0J6Ym9ieWdBV2J4bDQyY1UrQ3dXTFJjTFV2bFpEQ1o2eTNnTWxwQmpOWXRoYTIxckRjRDRuWjA4RXUvdlRkeEZpRTZZdG9uUStDN29tVWRxcG0zSm1nQTBvK2RJZ3podE05d1BnR0k4QUUyNUhLazRlOUkyZnAwQUZwQ0FJbEFGR2tBSEdBQlRZSWxXNWdqY2dCZGFjUkFJQjlFZ0FTd0VITUFIbVVBTWxvS1ZZQzNJQjRWZ0s5Z0p5a0FscUFFSHdHRndGRFNEVStBY3VBU3VnVnVnR3p3RU1qQUFYb0VoOEJHTVFoQ0VoNmdRRGRLQWRDRWp5QUt5aFp3aEQ4Z1BDb0Vpb1FRb0NVcUZoSkFVV2dtdGh3cWhJcWdNcW9McW9GK2drOUE1NkFyVUJkMkgrcUJCNkIzMEJVWmdDcXdLYThQRzhHellHV2JDd1hBMHZBQk9oWmZBT1hBZXZCa3VnYXZoUTNBVGZBNitCbmZETXZnVlBJd0FoSXpRRVQzRUVuRkdmSkJ3SkJGSlFjVElhcVFBS1VhcWtRYWtGZWxBN2lBeTVEWHlHWVBEMERBTWpDWEdEUk9JaWNGd01Fc3dxekdiTUdXWUE1Z216QVhNSFV3ZlpnanpIVXZGYW1FdHNLNVlGalllbTRwZGlzM0hGbU5yc1Nld0Y3SGQyQUhzUnh3T1I4ZVo0Snh3Z2JnRVhCcHVCVzRUYmpldUVkZUc2OEwxNDRieGVMd0czZ0x2amcvSHMvRlorSHg4S2Y0US9peitObjRBLzRsQUp1Z1NiQW4raEVTQ2tMQ09VRXc0U0RoRHVFMTRUaGdsS2hHTmlLN0VjQ0tYdUp5NGhiaVAyRXE4U1J3Z2pwS1VTU1lrZDFJMEtZMjBsbFJDYWlCZEpEMGl2U2VUeWZwa0YvSmNzb0NjU3k0aEh5RmZKdmVSUDFOVUtPWVVIOHA4aXBTeW1iS2Ywa2E1VDNsUHBWS05xVjdVUkdvV2RUTzFqbnFlK29UNlNZR21ZS1hBVXVBcXJGRW9WMmhTdUszd1JwR29hS1RJVkZ5b21LTllySGhNOGFiaWF5V2lrckdTanhKYmFiVlN1ZEpKcFY2bFlXV2FzbzF5dUhLbThpYmxnOHBYbEYrbzRGV01WZnhVdUNwNUtqVXE1MVg2YVFqTmdPWkQ0OURXMC9iUkx0SUdWSEdxSnFvczFUVFZRdFhEcXAycVEyb3Fhdlpxc1dyTDFNclZUcXZKNkFqZG1NNmlaOUMzMEkvU2UraGZabWpQWU03Z3pkZzRvMkhHN1JrajZqUFZ2ZFI1NmdYcWplcmQ2bDgwR0JwK0d1a2EyelNhTlI1cllqVE5OZWRxTHRYY28zbFI4L1ZNMVpsdU16a3pDMlllbmZsQUM5WXkxNHJVV3FGVm8zVmRhMWhiUnp0QVc2UmRxbjFlKzdVT1hjZExKMDFuaDg0Wm5VRmRtcTZIcmtCM2grNVozWmNNTlFhVGtjRW9ZVnhnRE9scDZRWHFTZldxOURyMVJ2Vk45R1AwMStrMzZqODJJQms0RzZRWTdEQm9OeGd5MURVTU5WeHBXRy80d0lobzVHekVOOXBsMUdFMFlteGlIR2U4d2JqWitJV0p1Z25MSk1lazN1U1JLZFhVMDNTSmFiWHBYVE9jbWJOWnV0bHVzMXZtc0xtRE9kKzgzUHltQld6aGFDR3cyRzNSTlFzN3kyV1djRmIxckY1TGlpWFRNdHV5M3JMUGltNFZZclhPcXRucXpXekQyWW16dDgzdW1QM2Qyc0U2dzNxZjlVTWJGWnNnbTNVMnJUYnZiTTF0T2JibHRuZnRxSGIrZG12c1d1emUybHZZOCt6MzJOOXpvRG1FT214d2FIZjQ1dWprS0hac2NCeDBNblJLY3FwdzZuVldkWTV3M3VSODJRWHI0dTJ5eHVXVXkyZFhSOWNzMTZPdWY3cFp1cVc3SFhSN01jZGtEbS9PdmpuOTd2cnViUGNxZDVrSHd5UEpZNitIekZQUGsrMVo3Zm5VeThDTDYxWHI5WnhweGt4akhtSys4YmIyRm51ZjhCN3hjZlZaNWRQbWkvZ0crQmI0ZHZxcCtNWDRsZms5OGRmM1QvV3Y5eDhLY0FoWUVkQVdpQTBNRHR3VzJNdlNabkZZZGF5aElLZWdWVUVYZ2luQlVjRmx3VTlEekVQRUlhMmhjR2hRNlBiUVIyRkdZY0t3NW5BUXpncmZIdjQ0d2lSaVNjU3ZjM0Z6SSthV3ozMFdhUk81TXJJamloYTFLT3BnMU1kbzcrZ3QwUTlqVEdPa01lMnhpckh6WSt0aVIrSjg0NHJpWlBHejQxZkZYMHZRVEJBa3RDVGlFMk1UYXhPSDUvbk4yemx2WUw3RC9QejVQUXRNRml4YmNHV2g1c0tNaGFjWEtTNWlMenFXaEUyS1N6cVk5SlVkenE1bUR5ZXpraXVTaHpnK25GMmNWMXd2N2c3dUlNK2RWOFI3bnVLZVVwVHlJdFU5ZFh2cUlOK1RYOHgvTGZBUmxBbmVwZ1dtVmFhTnBJZW43MDhmeTRqTGFNd2taQ1psbmhTcUNOT0ZGeGJyTEY2MnVFdGtJY29YeVphNEx0bTVaRWdjTEs2VlFKSUZrcFlzVmJRNXVpNDFsZjRnN2N2MnlDN1AvclEwZHVteFpjckxoTXV1THpkZnZuSDU4eHovbko5WFlGWndWclN2MUZ1NWRtWGZLdWFxcXRYUTZ1VFY3V3NNMXVTdEdjZ055RDJ3bHJRMmZlMk5kZGJyaXRaOVdCKzN2alZQT3k4M3IvK0hnQi9xOHhYeXhmbTlHOXcyVlA2SStWSHdZK2RHdTQybEc3OFhjQXV1RmxvWEZoZCszY1RaZFBVbm01OUtmaHJibkxLNWM0dmpsajFiY1Z1RlczdTJlVzQ3VUtSY2xGUFV2ejEwZTlNT3hvNkNIUjkyTHRwNXBkaSt1SElYYVpkMGw2d2twS1NsMUxCMGErblhNbjVaZDdsM2VXT0ZWc1hHaXBIZDNOMjM5M2p0YWFqVXJpeXMvTEpYc1BkZVZVQlZVN1Z4ZFhFTnJpYTc1dG0rMkgwZFB6di9YRmVyV1Z0WSsyMi9jTC9zUU9TQkMzVk9kWFVIdFE1dXFZZnJwZldEaCtZZnVuWFk5M0JMZzJWRFZTTzlzZkFJT0NJOTh2S1hwRjk2amdZZmJUL21mS3podU5IeGloTzBFd1ZOVU5QeXBxRm1mck9zSmFHbDYyVFF5ZlpXdDlZVHYxcjl1ditVM3FueTAycW50NXdobmNrN00zWTI1K3h3bTZqdDliblVjLzN0aTlvZm5vOC9mL2ZDM0F1ZEY0TXZYcjdrZitsOEI3UGo3R1gzeTZldXVGNDVlZFg1YXZNMXgydE4xeDJ1bjdqaGNPTkVwMk5uMDAybm15MjNYRzYxZHMzcE9uUGI4L2E1Tzc1M0x0MWwzYjNXSGRiZDFSUFRjNjkzZnEvc0h2ZmVpL3NaOTk4K3lINHcrakQzRWZaUndXT2x4OFZQdEo1VS8yYjJXNlBNVVhhNno3ZnYrdE9vcHcvN09mMnZmcGY4L25VZzd4bjFXZkZ6M2VkMUwyeGZuQnIwSDd6MWN0N0xnVmVpVjZPdjgvOVEvcVBpamVtYjQzOTYvWGw5S0g1bzRLMzQ3ZGk3VGU4MTN1Ly9ZUCtoZlRoaStNbkh6SStqSXdXZk5ENGQrT3o4dWVOTDNKZm5vMHUvNHIrV2ZEUDcxdm85K1B1anNjeXhNUkZieko1b0JSQlU0WlFVQU42aGZRSTFBUURhTFFCSTh5Wjc2Z21CSnY4SFRCRDRUenpaZDArSUl3QTFiUUJFNXdJUWdvNmw2R2lNcXFJWEFCR29SbnNCMk01T3J2OFVTWXFkN1dRc2NqUGFtaFNQamIxSCswZThHUURmZXNmR1Jwdkh4cjdWb3NVK0FLRHQ0MlF2UHk1S2h3RFl1OExCS1N6a3hramJNUGdYK1FmV3lCSVA1OHNrbWdBQUFGWmxXRWxtVFUwQUtnQUFBQWdBQVlkcEFBUUFBQUFCQUFBQUdnQUFBQUFBQTVLR0FBY0FBQUFTQUFBQVJLQUNBQVFBQUFBQkFBQUFnS0FEQUFRQUFBQUJBQUFBaVFBQUFBQkJVME5KU1FBQUFGTmpjbVZsYm5Ob2IzVDduaUh2QUFBQjFtbFVXSFJZVFV3NlkyOXRMbUZrYjJKbExuaHRjQUFBQUFBQVBIZzZlRzF3YldWMFlTQjRiV3h1Y3pwNFBTSmhaRzlpWlRwdWN6cHRaWFJoTHlJZ2VEcDRiWEIwYXowaVdFMVFJRU52Y21VZ05TNDBMakFpUGdvZ0lDQThjbVJtT2xKRVJpQjRiV3h1Y3pweVpHWTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1Rrdk1ESXZNakl0Y21SbUxYTjViblJoZUMxdWN5TWlQZ29nSUNBZ0lDQThjbVJtT2tSbGMyTnlhWEIwYVc5dUlISmtaanBoWW05MWREMGlJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenBsZUdsbVBTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMMlY0YVdZdk1TNHdMeUkrQ2lBZ0lDQWdJQ0FnSUR4bGVHbG1PbEJwZUdWc1dFUnBiV1Z1YzJsdmJqNHhNamc4TDJWNGFXWTZVR2w0Wld4WVJHbHRaVzV6YVc5dVBnb2dJQ0FnSUNBZ0lDQThaWGhwWmpwVmMyVnlRMjl0YldWdWRENVRZM0psWlc1emFHOTBQQzlsZUdsbU9sVnpaWEpEYjIxdFpXNTBQZ29nSUNBZ0lDQWdJQ0E4WlhocFpqcFFhWGhsYkZsRWFXMWxibk5wYjI0K01UTTNQQzlsZUdsbU9sQnBlR1ZzV1VScGJXVnVjMmx2Ymo0S0lDQWdJQ0FnUEM5eVpHWTZSR1Z6WTNKcGNIUnBiMjQrQ2lBZ0lEd3ZjbVJtT2xKRVJqNEtQQzk0T25odGNHMWxkR0UrQ252MXVDVUFBQmJNU1VSQlZIZ0I3VjBKY0JYbmZmOERBaVJ1Y1VuaUVraml4Z1p4T0Jpd3pZMmRPQjdIU1dhYWVveG5QRTJheWJSTzNNNmtTVHNldDA2UFROdWtHWGZxWnBMWWNSTGl4clhiU1JwekdBSEdCekVJaklVdzZPSVE0aFFnY1FrRVFvaitmN3Y3MzkyM2I5L1QyN2ZYMDlQK05VL2Y3cmZmOGYrKzMrODc5cnUyejEwV2lxVFg1a0RmWHB2eUtPRktEa1FFNk9WRWlBZ1FFYUNYNTBBdlQzNVVBMFFFNk9VNTBNdVRIOVVBRVFGNmVRNzA4dVJITlVCRWdGNmVBNzA4K1RsQnB4OER6eTFYMnVsR3h4M0s2ZHVIaGcwZVFFUHkrZ2V0UmhTZmxnT0JFR0JEUlQxVjFweW5UNCszMHZHejE5U28reGdZREJzMGdNb21ES2Y1WmFOb3laeENXbEUrM25nWVhmbWFBMzM4bWd6YXZLZUpmclBqQ0wxLzRLeWFBQlBna2lMRHlyakNzNUZEQjlMakQ1YlFVMnZLcUxoZ3FEaVBUQjl5d0hNQ3ZGdDFobDU2cTVxcWpyUVF4ZUtxcUc5WUdWZDZ1aXhXZHptQVp4NmVSczk5K2Q2b21kQXp5ZHNMendpQXR2MzVWeXZwMTlzYTRqUTBjRFd1RkVlV1c5Z0JkSWorZXNLM0JmbDU5UHo2QmZUSWZST1ZaOUUvNzNMQUV3S2NhTDVHei83N0g2ajY2RVZkTXdOYjQwcDVhTG1GblIzb2VrRGFCUll0Zk91TDk5Q3pUOHl4UG9ydVhlU0Fhd0xVTkYybXovN1ZSa1VGQTF2anl2SkFWelZWMEhVUHVPalRoOWF2blVwL3k3VkJKTjdrZ0t1M2dGTVgydWhQZi9DZVZtazdBMTF4YmZHQ0pNVXRUMkxRemZMTHJRMDBzRjlmK3U2VDVXYnI2RHJOSE5DYjJuVDgvOFhMdStuVStldnNWUU1KaHZ5MEFGSFM4Y01mSXVOWGZ4czNLdkE2K0FCZGZsbzRpbC9ONjg4MjE5RXZ0OVpyVHlMRFRRNmtUWUMvMzdDZjl0V2VOOEFFc0pwNEFib0FEaE5CZ3h3R1FZais3bGY3bFhFRkxjcklTRE1IMGlMQVhnYisxVTIxS2pJS01Hb3BUMWJTQlVBeEZYMmxsR3ZWdkJsMGNXY0dYV0dDaVdqZmYrTkFtc21PdkVrT3BFV0FsLzczVTZWYWw1S3VBd2R3NU1lWGNTQWlWbGVnUytDcStkR2g4L1QyUjAwSU5aSTBjOEF4QVQ0NGVJNCsvTFJaYmM4NVVtdWI3Z1Iwd0JqbjNveXhrcWc0aXhnT3ZmcE8xQmRJRTN2Rm0yTUN2TG56cUdlZzY0ckhZUnhuRVFPNjdvOHZEaHhycGQwOHp4Qkplam5naUFCdDdiZHA0MjYxeW8wcnVZZy9RZlVPT01XOXJtWWN4bkVXMXVCMHI5TDB3SVM4dmZ1ay9peTZjSllEamdpQWlaMFlJTTJBV3pweWZvT3VKRlBqekJ0Y0swV1NYZzQ0SWtCbC9ZVzRVbzVvRVFoK1FZS092b2NhcC9vRzhvZkR6VkFsRW9jNTRJZ0FOU2N1NmNFbkJGMHJsZWEzQVpVYThpQ1dRMXJGb1lkcnJkNlZCNXBYSytqU0JNRE45ayswYVdjOXBPZ2lsUnh3UklCVHpXMzJKVjJ3aGFsTHJLVzV0ZENkYUJkcGdXNE9ucTkvVVJFL0MybU5KN3FQendGSEJEaDMrYWJTQjFDQ01RT2doeHRyNlFoMGs5ZUVKZDNrUnFLVVBnbk12UTNHYktROGo4emtPWkF5QVRvNnU2dzF1Ulp5TENwcGc4NmhRUm5NR1VpTm9FUVFHN3hpWlFZZEZ2Q0gzNDc5WjNBYmlZTWNTSmtBV01CcFNDd3FZWUxlMXhUNXo3WkVnMElHUnFsZHBVeUF2a3dBTE41VXE0SFlqcHcxS2luQmVpZE40NHRVN1lqVVRVazNneTV4UzYxUWZkem9xTXF6eUV5Y0F5a1RBRUZNR0RORUg1eXhCcGtLNkluY0tHOE1Xb0FDSkV3SUZGUitwcEt1UE9CL1ZyY0lwK0tUcUJtUS9FbkZkRVNBcVJPR3hZU1pDRkJ6U1Uva1JrQTNnNWd1NkVwWVdndjFuMi9YeE9nWTNTVFBBVWNFbUZjNlN1K2dBVmhGTE5XN3VXcTN1aEV2WnRCRlBhY2wzUXc2d2tDODhsZDc4b29FRzVuZDVJQWpBbURUaGlKSlFOZmowOXdvUUxHbEU5RE5icVZXVU1LUk1EazhBVnRNUFY2KzJGWVZEUXFaOHlQWnRTTUNsQlVOVldZQzRRa1pMOVc3SG9FQUJKUEZES1JxazdoTnQzT2JESFFKVDh5N0hLZjhmdlRiUTJJZG1kM2tnQ01DSUt3Ly84SWNCWGc5M0F3QlhkWEhVT2FvYkVIVEZZMHU3SExBTVFGV2xZOUQ4VGQrZkdsWGVoR3c4clAwM3UzY1dzT1RhaDJtVmFTVXcxVEZVRWEvNG92dFVUTWdHWlRVZEV5QTJjVWpsQUN0UU9xQTgxUHJlN3JWclJLQWpwYXFueGVnNjBUaUlQLzVmejVWQTQ3K0o4MEJ4d1JBYUY5L2RJWVNxQmwwZllBQUpaN0ZMOUJWb21nVmtJVkUxamliTG1ESmVpVEpjaUF0QXF5ZVAxNnAzcnNGM1F5UXlnc3VwTWFmVmJGRTFic1pkTDJVYStGWlFWZkMxSnFkYlFmT1dhT0k3aTA1a0JZQjVwV001Q0tvSWhBSGdCbDBMVElEY2cwMWt4S2VnRzd1WjJoNklhWWR2Rk01a3VRNWtQYldNR3piZmtVbVgrSnhWY3E1WGRSRzU4MzhWQTFBRDBhL01OeUFhREdpQVcyMnMzcmJVM2VSbW5rS3UyQkVydGxaWU5mdDdlM1UydHBLVjY1Y29ldlhyOU90Vzdmb3l0V3JOR1R3WU1ySnlhSGMzRndhT25Rb0RSOCtuRWFQSGszOSt2VUxURGVKS0cwQ3JDNHZvbGNzUzdKUjB1MGtTTkFsZm9sekc5Y0NUeTR2RVd2ZnpUdDM3dERKcHBOMDV1d1p1blQ1c20xOGJVd0dSWmdZNTVxTnBXeUZCUVUwYnR3NEtpb3FzdlhuaDZXcjNjRmx6N3lWRVNWZE1rWkFsM3VZRDg0dW9GZS91Y1JzNWR0MVEwTURIVHQyakRxWkJHNWwzdHk1Tkg2OC8wZmxwTlVIa01ROXRhcE1MaFVUQU1qUGVJQmFRWG9CV3RkQnRkS2R4UGNqMklHMDY1b3I4UUxUTEJKZkxQaUc2L2Q1OTFCclc0ZlppK2ZYelZ5S2QrN2NTZlZNQUMvQWg0SlZCdzVRWldVbHRiVzFlYTZ2T1VCWEJGakRnMExKQU5CNzd3WWVldHgrZ281SWRQN3doWitEUXZYMTliVHY0NC9wK28wYmV0cTh1cmh3OFNKOThPRUhkT2FNZjUxWlZ3UllNbXVzS2EwcXlvbEFOd091ZCtnRUpaZ3NacDZvTmtid3lZaW0rb3dGM1R4UDRkZnJZSFYxTlRVY09XSW82Y05WVjlkZCtxU3FpbzRkUCs1RDZPcG9yYXVBLytpaEVxMkNWd0hRVWVSUXphRHJrU1FCWFhlalhiZ0JIVUZJL051cXo5SDE5azVyOEs3dUQzQVZmZkxVS1ZkaE9QRmNVMU5EeHhzYm5YaEp5YTJyR2dBeHJKN0hVOFJTZFBsZU1oMm1McTVBbDhERlRGelNFWjgxZmlIUjFtcnZwb2pyNnVybzFPblRldktDdWpoOCtEQy9OWGc3dU9XYUFNdnZMWXJMZENWRFBBTmR6VjRKRG8yN3VYckgwMFNnZzVpZ0RmNTcxUXljUFh1V2pod05ieXNhbXAyYk4yOHFxZkxpbjJzQ1FJa25saFNydWdoS01GbWt6S3AzcWhQNUx5VVRwaXJ4cmlVNEsraG13SEVOa2ZETW9KdUpzbm4vV1ZLV3Rxdk8wL3JmMWRWRk5iWGhMam03ZmJ1VDBCeDRKWjRRQUlOQ1NyZWJ0WXFIMFZCVlFISUx1b1FvNFNVQ0hlN0VEY3dLbDNNRGVNOXZiL2V1OUVrNm5KcG51QmE2Y042YkxmSGVFR0Jla1E2OE5URm1BTlJuOFJSSnBhUkx1QkplcXFERG45UVliZ2lBYWpmTXFsL1NMK1pSSG5EeVFqd2hBT2IvUC84WjR4UlBBUW1tS3NHRHZwQVBuaGJnUll2ZjdUMUY2WDRtODdoUHIyR2ltMU96aGVjWUVnMDFPd25MRXdJZ3dwVnpDL1hxVmxVZ0ZuUXA1VENUdGVtcVg2UHFkbExTSCtHQnFSODhYVTdWUC93c3ZmbVhTNVdnUkFzbFRvNjhnbys0Y1NxWTFQSHJQZHlwTG1iM1p6eDRFMGw3TXNpc0NLNVh6OFVFQnJMYkVBVnM3UllkTXJOSTV5M0dUbk1pb0ttZE9NT0ZVYU1ZZG84dEdrOXI3aTJrTlJ6L3dQNnhmUDdxbWxMNjZUYWpxa1NjYUFiV3Nuc25rbW1sWDNSdlB0OU1zMmZQbHR1MFRNOElrRHVnSDYyYlgwUmJ0WDM2VnZDZ25SVjBNNkJPUVAvaS9aTVk5QUlHdlZCZGZwWWc2V3Y0RmZVbkpnTEEyWDkvZEpMKzVhbDVDWHpFVzkvZ0lWNC9CbURpWTNKdWd3N3B0V3ZYbENsbDU3NVZINTRSQU1HdG5qdU8zdmtrdG9ydERuVDRzNUxGVEF3OGgzeGxXYkVDK0lvNUJhcEZDdi92SytPRkt5elc4TjdsQ2FJVnM4M0QySWtEeTlUU0x4cGY1ZlVGV0ZPUXJuaExBSDRiZ0hnRit0TXJTcFNTdm5UR21IVFRSK3M1akYvc2xHWkFiV08yOHRCd0tnVEFJbzdHRXlmU2pqc0lqOURSalhoS2dLRjVPYlNTMjlmdG5NRlM2cVJxaDVLcGxQU3ZyaTVWU3ZvaTdzVjdJV3Z2S1dBQ0hJOGg1WVlQbStpZnZuSnZ0OEZuZXVsSEF0eU9DbnBLQUNpMGNtNEJiZWVldGxyV1ZOQmhMeUxFa0h1WTMzaGtHcTNtTnIxOGNyN1oycFByQjJhTTFzRy9hK3FWZmxqZlFzdW1KU1laNXVGUE5EVjVvb09mZ1hSMnVwdms4cHdBNkkzLzlZYnFtRFJiUVVjVDhhMUhweXM5OTltV0hjY3hIajI2K1dQdVAveDZsd0VtNGtjemtJd0FXTm5URzhSekFvemlEejR0bXptR1BxamxJK1ZNZ2t6L3p1TXp1YVFYRXZZWUJpbHJ1WGJab0JGQW1xUlgzbXVrRjc5ay93cUZubldRVTcxdThnS0xTOTFJN0l1em01Qk1mcFVwWXI0SDZQSmJQRzAwZlgzZDFNREJoMXFydU1ldk5FbjhEN1dSMUVoN2o3YmljWnowcE5LUGxjVnV4QmNDNFAwYndJc2c4L2ZVWHlTY01oYVdmR254QkNYcUxxYUMvRFlmTkZia2lsNTRyUXBqcmwvaWQyb09HVExFcVpjWTk3NFFvQ2cvVnlseGFxbmorWHZ1Zk9GWElkOFFqRkVobUJzMEF3QmVCTFhBeXp1T3k2MXU5cVRTRDZXeHA4Q04rRUlBS1BRMzNMNUtyMXVhZ1FxYkV1ZEdlU2QrSCtiWFFhbitwUWxBNHF1YWpOTkVzSUhqdEk4TE1KM29tNHJid1lNRzBXRGVaT0pHZkNNQXh1Y0ZlRkZ3WjgwRjM1ZG9TMXhXRXpPV1gxZ3dUdDJ5emc5UkYwQS9jelBRMDBwL1lhR3pPUTFybnVEZU53SVVqMUdaYVMxMVc2dmoyMTA3eGZ5d1czZlAyRGhTL21pcnVyenJNdS9pd1VLTG5pVFlSZVJXZkNNQUZQczJ2L2FwZ3ZLbXJ1V3I0UGZ2c0FUTkFLU0xhd1A1NGI2R1R4UHBhYVYvN0pneE5HeFk3S2x0U0l0VDhaVUFtSGFWNFY5VXQ1Q3QzQTlvdStsdTlFb055Zm4vM1A3OTZHR2VRWVJJOHdSejU0RW1PbnN1UEdJcUNqbjhOMlhLRkljKzdKMzdTb0NwaGVvcmlyd0ZpTGtseEZyZ0lkUFFNRmNFeWxMR1BiWCs3Ynl4ejNaM3RnVmp4eXE3aWQyRm92cjJsUUNJNHJuUFRkZjFsRkszOWFBM0N4cjFnQjFjeko4MFhBRWQ0S3UxVXg5cWFQRjM3NkFEOVZKeTZsWHBSMlMrRTJBZHYzOUw5WStlQUxyZkcva0FKN2RMdEJGVU9sTENuVk1CSHY2aDI1bWJ2bWRET3FyYStzRVc4bEdqRWs5aTJYcEtZdWw3eXBYSkhwUTI3U2U2YkFscFRHQklibzRDdXRSRzBPZGFwKy9aSU1sMmJYcForcUZNSUNsL2RtMlprbkFaZ29XSjJiZ3dSZm9qTUpFSlVrdUZxVk4zY1JmeGUvL0lrZW9xcCs3Y3B2bzhFQUtZaDJHbEpuanJZLzRDV1FpNWZyM2pEdmNCdEE5WmN5NmhXWUlhTUROZHZDNzlTRzhnQkNqbnN3VUZlSWtVRWIvRFh5QU5XazYwdE1jMUFRVzU3ay8wOERzZDQvalltUHg4N3hmTUJFSUFaTTQzVms1UjJDWWxEcVZ1Y3dodkF3ZTBrOFNGa0RBbkR1cnlHei9YNGZ0UitxRlVZQVJZaDhrWVV6WmdKTzQzZTA2WmJJSzUzTm5Rb3RSR2lFMzZKS1hETXJzR0dNOUR2aU5HcUNlMGVwMUxnUkhnTTZVajllRlhnQThCSVRhNTNMQ3BCSlRpdjNadS85LzgrSndPdkhpYm1wL1pQWUNTa2hKUjFYTXpNQUpBOHo5NXNEaXUvZjBWYjlRSVNsNzd5S2h4a0hEOEJ2TFJmQ1dqM0MycjhsUC9DWHhTbUJkai9vbDBESlFBajJNYnVTYW9CUERiWHR0Q0ZZZGoxdytLR3kvTkc3ZnYwUE8vcTFQN0lSeXY5QUhXRnR4U3Y0YnVaV1FlaHVWbjZZZWFnUkpnVVVrK0xlYW1BTWliUitQKzRmZjF2cjhTdm9nNE5PQ1JjRFEvK0gxdTlnaGF2V29WbFV5WkF1dU1rb2tUSnJqYTlaTktZZ0lsQUJUNjJ2TEppbDRDQU14RFBCMzczQnYrSGUvK2V1VnArdW11a3pyb2lCT3lmRXdIclZ3MGt3WU9IRWd6Wjg2a1ZTdFgwcFRKazVWbm1mRFA3OUtQTkFaT2dFZDVibUNOdGkvUFBCcjMrcDdUOUwzZjEzbWU3Mi96cSthZnZYRklBVjhDbDNqWEw4aVBtVlhEQ3R0WnMyYlJ5aFVyYUhKeHNUZ1B4WncwY1NLNVhmQ1ppdUtCRXdCS3ZmRDVhZFMzWC94bzNFczdHdW5iYng1T1JlK1UzR3hnVXExL3JZcXJmbU5oS3E0aHoweHBwNGNXeW9LVjJPRHk4dktVYmRjcmxpK240a21UWWg4R2RCZEU2VWRTWEowVjdDWXZYdDk5aXI3SkpWTUU3YlBJd3NrajZNWEhwdE45YktZamwvbE13QmMzTmREUFRiMStoS05oVDh2eWI5RUw2NHBvd1lJRktRV1BEWmhZTWRSME1wZzNGcEJ1enB3NUtlbm0xbEZvQklEaTM5OThoUDYxUWwyVEp3a3hMOTErOGo0Ky9HSDJHSHFNMS9LbEloZjVUT0RYbUZndnYzZUNMbWtIUXdybzRuL3E0RTc2em9LN3RQeUJKWlR2Y0hBRit3VkJCTDkzRGFIbUdjUXJmb09RVUFtQUJINXZZejM5Mi9iR21MUkt1eVMxd29LSncyZ0ZyK1NaejJicDJDRTBlbkIvd3JlTXJ6TElKMXJicWZyMFZYci9TQ3R0T2F4K1B0NEt1Z1NPTjQ4Zkw3bEZVNHVMYVA3OCtXTHQyTVRXTVJEQmp3MGs2SHU0UGZYRFNZSkNKd0NVL1krZGpmVEMvOVVyZWd2bzVrUklyMTNzcEIyWGU1akpRTWZ6eGZrZDlMVTVkMmxBVGg5YXVtU0pKME9yMkVVRUluaTVsd0FkVVBSQmdwS01JQUFTKzI1ZEMzMzN0N1hVY0Y0OThNQUwwQ1VUbnk1dXB6VWw2dGM0TUt0V1hsNHVqend4cjE2OVFrZVBIbk85ckJ5dm9IZ0xDVkl5aGdDUzZIL2NnbjZCdWpYYld0SVRsWEw0UmZWdWxmdEhkdEFUSlYxVU5GUWFGYUpsUzVlNjNrNWxqVWZ1c2JjQU5VSzZLNHd4RHVGMnM2Zm9rcXFaY1FTQTR1ak0vWnpuQ1A1cjMxbHE1RFkra2RpQmpvbmRKL2lRaXNYOVR0Q0U0UWJ3Q0FPemF2UG1wWDVBVktKNHU3UEgrWDNIK0R4aDgrZGd1dk9Ea1VnTVJnVXRHVWtBY3laVU5sNm1keHRhYWYvSnExUjNybzFPWGJsRmQvZ01mWkhoZy9wVDZlZzhtanQrR04wL1pRUjl1YnhRZVYwN2VQQ2dPTkhOQjVZdDgzVmlSWTlJdTJocGFTRWNNOU9jd3JHdUdJN0dpR1RRa3ZFRXNNdVF0bHVkMU1ra0dNUWJQUWJreEpaeXVOKzRhVk9jTjh5cXplWHY4SVFoRi9uTEh5REMrUXYyazE2bFBOMDdZOGFNTUZRTGZpallpMVFPR1poREkvTDYyNExmbE9CY242QkcxdXpTaDAvQ0xWcTBpRVluV000ZHBtN3h4Y2N1QlQzSXp1NWtyeUJtMWJyTEloem1kSkdiQkt1VWxaYlNnQUVEck5hQjNXY1ZBYzV6VzZ0L2s4K1VoV0dXTUZFRGJ3ZDJFclp1V1VXQWN6WWJQTkh6RDJKV3pRNWNzZXZvNkxEOXVOVFVzakxxMzcrL09BdkZ6Q29Db0Fhd1NoQWZYN1RHYWIyM2E1YmdKdXpTRHgyeWhnQVluNy9GSmMwc09md3Qzakc4ano1TXdmZUM3VDQwTVgzYU5PWDd3V0hxaHJpemlnRFd6UFI2RzVVMS9GVHVFNVgrS1R6d2t3bVNOUVRBc2U1V0NidnR4em0rZHA5Mm1URjllaWhmQ3JmbUQrNnpoZ0RvYUZrbGpKRTFzdzZaWHZxaGE5WVFBSjkwczBxZnZ1RWxMOUZuWm1ieWlGL2ZFUFd5NWxGNE9XVFZ4T1c5WGFiZWNYbVN0aHVWZWtMcFIvcXloZ0IybzJsdXo5SlBsd0NKUGpNemkyZjdzRFU5a3lSckNHQzNpZ2F2aG1GSVR5bjl5SnVzSVlEZGQzTmFMMTJpTzNlQzNmbWI2RE16UWEvMFNaWDRXVU1BYktERXdJOVZtcHVEUFlRaVllbm41VjZaS0ZsREFHVHVXRDQvenlvbkExckxqM2dUZldabWpzdHYrMW5UNU9WOVZoSEFickVucG1EdDVnaTh6RVFKSzlHTVgzSEkyOHhFUHpzenF3aUFCT2JsNWNhbGMrKytmWEYyWGx0YzROVStkaHRHN2dsb2gwKzY2Y2s2QWlUYTFGbGJXNXR1SG5YcjcvYnQyM1Rva0xITnpleGhVa2g3QzgwNkpMdk9PZ0tVbEpRU1BxUmdGWXpKTng1dnRGcDdjbDlWVlVYWGJlWWk1b1cwQnRGSm9yS09BRWo4ZEo1c3NaTkROWWQ1M1g3c1hrUTdkNm5hNFJWejc5Njl0b3M5Y2FSckpxeEY2QzR0V1VtQUl0NzlnMTAyZGxKVFcwZlYxZFhrOW9PTFdQSzlhOWN1Vy9BSDhDcWZUSDN2dCtaSmoxd1diazFFb3Z0RXBWUGNvNFBtdEkzR1FBL2U5Wk45VlhUUndvVzJyNlFTYnlhWldVMEFWTkdWbFpXRUVjRmtnbDA1V0RtRUJTUjJrMHFZVTBDSng1ckQ3bmI3bFBQT0l5OCs1WkpNWHkrZlpUVUJrRkdZSnQ2L2YzOUt1M1BnSGgxSVRDeUJDQzJ0OWgrV2hEczdXYkJnUGhVV3VQK1FrMTNZZnRsbFBRRWs0K3JxNm16WDVzbHpOeVlPbXNDSkhuNmU1K2RHdjJSK2V3MEJrQW5Zb2xWZlgwL1l2T21GWUdKM0dpL3VMT1BsM1QxVmVoVUJCS1F6L0hISXhzWkdWMFRBZnI3Si9LWVI5SFp1U1lOWFpxOGtnR1FldmhTSzJVSU00MTdtNjJTU3gwZkk0Vk10WTNqQ0NZZE1aSXYwYWdLWVFiekxYNjlROWhad2ovODJMeVhEZmIrY2ZyeGxPNWNHOFpFdFlTOHdOZXZxNVhWRUFDOXpzd2VHbFpVamdUMFFoOUJVamdnUVd0Wm5Sc1FSQVRJRGg5QzBpQWdRV3RablJzUVJBVElEaDlDMGlBZ1FXdFpuUnNUL0QveG9scTU2alJwbEFBQUFBRWxGVGtTdVFtQ0NcIiIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQge1xuICBCb3gsXG4gIENpcmN1bGFyUHJvZ3Jlc3MsXG4gIEdyaWQsXG4gIFBhcGVyLFxuICBUeXBvZ3JhcGh5LFxuICBDb250YWluZXIsXG59IGZyb20gJ0BtdWkvbWF0ZXJpYWwnO1xuY2xhc3MgTG9hZGluZyBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IGJvZHkgPSAoXG4gICAgICA8Q29udGFpbmVyIG1heFdpZHRoPSdsZyc+XG4gICAgICAgIDxQYXBlclxuICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICBwYWRkaW5nOiAnNXB4JyxcbiAgICAgICAgICAgIG1hcmdpblRvcDogJzEwcHgnLFxuICAgICAgICAgIH19XG4gICAgICAgID5cbiAgICAgICAgICA8R3JpZCBjb250YWluZXI+XG4gICAgICAgICAgICA8R3JpZCBpdGVtIHhzPXsxMn0+XG4gICAgICAgICAgICAgIDxCb3hcbiAgICAgICAgICAgICAgICBkaXNwbGF5PVwiZmxleFwiXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICBwYWRkaW5nVG9wOiAxMDAsXG4gICAgICAgICAgICAgICAgICBwYWRkaW5nQm90dG9tOiAxMCxcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFR5cG9ncmFwaHkgdmFyaWFudD0naDMnPkxvYWRpbmcuLi48L1R5cG9ncmFwaHk+XG4gICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17MTJ9PlxuICAgICAgICAgICAgICA8Qm94XG4gICAgICAgICAgICAgICAgZGlzcGxheT1cImZsZXhcIlxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgcGFkZGluZ0JvdHRvbTogMTAsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxDaXJjdWxhclByb2dyZXNzIC8+XG4gICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17MTJ9PlxuICAgICAgICAgICAgICA8Qm94XG4gICAgICAgICAgICAgICAgZGlzcGxheT1cImZsZXhcIlxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgcGFkZGluZ0JvdHRvbTogMTAwLFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8VHlwb2dyYXBoeSB2YXJpYW50PSdzdWJ0aXRsZTEnPlRoaXMgbWF5IHRha2UgYSBtb21lbnQuPC9UeXBvZ3JhcGh5PlxuICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgIDwvUGFwZXI+XG4gICAgICA8L0NvbnRhaW5lcj5cbiAgICApO1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICB7Ym9keX1cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgTG9hZGluZztcbiIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgTWFwYm94R0wgZnJvbSAnLi4vbGliL01hcGJveEdMLmpzJztcbmltcG9ydCBhcGlDYWxsIGZyb20gJy4uLy4uLy4uLy4uL2xpYi9hcGlDYWxsLmpzJztcbmltcG9ydCBnZXRFcnJvck1lc3NhZ2UgZnJvbSAnLi4vLi4vLi4vLi4vbGliL2dldEVycm9yTWVzc2FnZS5qcyc7XG5pbXBvcnQgRXJyb3IgZnJvbSAnLi4vLi4vLi4vLi4vbGliL2Vycm9yLmpzJztcbmltcG9ydCBMb2FkaW5nIGZyb20gJy4uLy4uLy4uLy4uL2xpYi9sb2FkaW5nLmpzJztcbmltcG9ydCB7IG1hcGJveFRva2VuIH0gZnJvbSAnLi4vbGliL3V0aWxzLmpzJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgTG9jYWxUYXhpSWNvbiBmcm9tICdAbXVpL2ljb25zLW1hdGVyaWFsL0xvY2FsVGF4aSc7XG5pbXBvcnQgUGhvbmVJblRhbGtJY29uIGZyb20gJ0BtdWkvaWNvbnMtbWF0ZXJpYWwvUGhvbmVJblRhbGsnO1xuaW1wb3J0IE1lZGljYXRpb25JY29uIGZyb20gJ0BtdWkvaWNvbnMtbWF0ZXJpYWwvTWVkaWNhdGlvbic7XG5pbXBvcnQgTmF2aWdhdGlvbkljb24gZnJvbSAnQG11aS9pY29ucy1tYXRlcmlhbC9OYXZpZ2F0aW9uJztcbmltcG9ydCBDb250YWN0c0ljb24gZnJvbSAnQG11aS9pY29ucy1tYXRlcmlhbC9Db250YWN0cyc7XG5pbXBvcnQge1xuICBCb3gsXG4gIFBhcGVyLFxuICBCcmVhZGNydW1icyxcbiAgQXBwQmFyLFxuICBUb29sYmFyLFxuICBUeXBvZ3JhcGh5LFxuICBMaW5rLFxuICBMaXN0LFxuICBMaXN0SXRlbUJ1dHRvbixcbiAgR3JpZCxcbiAgVGV4dEZpZWxkLFxuICBCdXR0b24sXG4gIENvbnRhaW5lcixcbiAgRm9ybUNvbnRyb2wsXG4gIElucHV0TGFiZWwsXG4gIFNlbGVjdCxcbiAgTWVudUl0ZW0sXG59IGZyb20gJ0BtdWkvbWF0ZXJpYWwnO1xuXG5jbGFzcyBNb2JpbGVTaXRlIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIGVycm9yczogbnVsbCxcbiAgICAgIGxvYWRlZDogZmFsc2UsXG4gICAgICB2aWV3OiAnbW9iaWxlX3NpdGUnLFxuICAgICAgaWQ6IHRoaXMuZ2V0U3RvcmVOdW1iZXIoKSxcbiAgICAgIGhhc2g6IHRoaXMuZ2V0SGFzaCgpLFxuICAgICAgc3RvcmVfbmFtZTogJycsXG4gICAgICBsb2dvOiAnJyxcbiAgICAgIHN0b3JlX2FkZHJlc3M6ICcnLFxuICAgICAgc3RvcmVfYWRkcmVzc190d286ICcnLFxuICAgICAgcGhhcm1hY3lfcGhvbmU6ICcnLFxuICAgICAgcGhhcm1hY3lfc21zOiAnJyxcbiAgICAgIGNpdHk6ICcnLFxuICAgICAgc3RhdGU6ICcnLFxuICAgICAgemlwOiAnJyxcbiAgICAgIGVtYWlsOiAnJyxcbiAgICAgIHdlYnNpdGU6ICcnLFxuICAgICAgd2ViX3ZlcnNpb246IG51bGwsXG4gICAgICBmYWNlYm9va19saW5rOiAnJyxcbiAgICAgIHBoYXJtYWN5X2hvdXJzOiAnJyxcbiAgICAgIGJ0bl9jb3VudDogMCxcbiAgICAgIHBoYXJtX2Nvb3JkczogW10sXG4gICAgICB2YWxpZDogZmFsc2UsXG4gICAgICBlcnJvck1lc3NhZ2VzOiB7fSxcbiAgICAgIGZpZWxkczogZmllbGRzLFxuICAgICAgb3BlbjogZmFsc2UsXG4gICAgICBkYXRhOiBudWxsLFxuICAgICAgcGFnZXM6IFtcbiAgICAgICAgeyBuYW1lOiAnUmVmaWxsIC0gRW50ZXIgUnggbnVtYmVyJywgdmlldzogJ3JlZmlsbF9yZXF1ZXN0JywgaWNvbjogPE1lZGljYXRpb25JY29uLz4gfSxcbiAgICAgICAgeyBuYW1lOiAnQWRkIHRvIENvbnRhY3RzJywgdmlldzogJ2FkZF9jb250YWN0cycsIGljb246IDxDb250YWN0c0ljb24vPiB9LFxuICAgICAgICB7IG5hbWU6ICdIb3VycyBhbmQgRGlyZWN0aW9uJywgdmlldzogJ2hvdXJzX2FuZF9kaXJlY3Rpb25zJywgaWNvbjogPExvY2FsVGF4aUljb24gLz4gfSxcbiAgICAgIF0sXG4gICAgfTtcbiAgICBpZiAod2luZG93LmlubmVyV2lkdGggPD0gODEwICYmIHdpbmRvdy5pbm5lckhlaWdodCA8PSAxMDgwKSB7XG4gICAgICB0aGlzLnN0YXRlLnBhZ2VzLnB1c2goe1xuICAgICAgICBuYW1lOiAnQ2FsbCBQaGFybWFjeScsIHZpZXc6ICdjYWxsX3BoYXJtYWN5JywgaWNvbjogPFBob25lSW5UYWxrSWNvbi8+LFxuICAgICAgfSk7XG4gICAgICB0aGlzLnN0YXRlLnBhZ2VzLnB1c2goe1xuICAgICAgICBuYW1lOiAnTmF2aWdhdGlvbicsIHZpZXc6ICduYXZpZ2F0aW9uJywgaWNvbjogPE5hdmlnYXRpb25JY29uLz4sXG4gICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgZmllbGRzID0ge1xuICAgICAgZmlyc3RfbmFtZToge1xuICAgICAgICB0aXRsZTogJ0ZpcnN0IE5hbWUnLFxuICAgICAgICB0eXBlOiB7XG4gICAgICAgICAgdHlwZW5hbWU6ICd0ZXh0JyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIGVycm9yOiB0cnVlLFxuICAgICAgICBvbkNoYW5nZTogKHZhbHVlKSA9PiB7XG4gICAgICAgICAgY29uc3QgY29weSA9IHsgLi4udGhpcy5zdGF0ZSB9O1xuICAgICAgICAgIGlmICghL15bIC1+XXsxLDIwfSQvLnRlc3QodmFsdWUpKSB7XG4gICAgICAgICAgICBmaWVsZHMuZmlyc3RfbmFtZS5lcnJvciA9IHRydWU7XG4gICAgICAgICAgICBmaWVsZHMuZmlyc3RfbmFtZS5mZWVkYmFjayA9ICdJbnZhbGlkIEZpcnN0IE5hbWUgRm9ybWF0JztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZmllbGRzLmZpcnN0X25hbWUuZXJyb3IgPSBmYWxzZTtcbiAgICAgICAgICAgIGZpZWxkcy5maXJzdF9uYW1lLmZlZWRiYWNrID0gJyc7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvcHkuZmllbGRzLmZpcnN0X25hbWUudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKGNvcHkpO1xuICAgICAgICB9LFxuICAgICAgICBmdWxsd2lkdGg6IHRydWUsXG4gICAgICAgIGZlZWRiYWNrOiAnJyxcbiAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgfSxcbiAgICAgIGxhc3RfbmFtZToge1xuICAgICAgICB0aXRsZTogJ0xhc3QgTmFtZScsXG4gICAgICAgIHR5cGU6IHtcbiAgICAgICAgICB0eXBlbmFtZTogJ3RleHQnLFxuICAgICAgICB9LFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgZXJyb3I6IHRydWUsXG4gICAgICAgIG9uQ2hhbmdlOiAodmFsdWUpID0+IHtcbiAgICAgICAgICBjb25zdCBjb3B5ID0geyAuLi50aGlzLnN0YXRlIH07XG4gICAgICAgICAgaWYgKCEvXlsgLX5dezEsMjB9JC8udGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIGZpZWxkcy5sYXN0X25hbWUuZXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgZmllbGRzLmxhc3RfbmFtZS5mZWVkYmFjayA9ICdJbnZhbGlkIExhc3QgTmFtZSBGb3JtYXQnO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmaWVsZHMubGFzdF9uYW1lLmVycm9yID0gZmFsc2U7XG4gICAgICAgICAgICBmaWVsZHMubGFzdF9uYW1lLmZlZWRiYWNrID0gJyc7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvcHkuZmllbGRzLmxhc3RfbmFtZS52YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoY29weSk7XG4gICAgICAgIH0sXG4gICAgICAgIGZ1bGx3aWR0aDogdHJ1ZSxcbiAgICAgICAgZmVlZGJhY2s6ICcnLFxuICAgICAgICB2YWx1ZTogJycsXG4gICAgICB9LFxuICAgICAgcGhvbmVfbnVtYmVyOiB7XG4gICAgICAgIHRpdGxlOiAnUGhvbmUgTnVtYmVyJyxcbiAgICAgICAgdHlwZToge1xuICAgICAgICAgIHR5cGVuYW1lOiAndGV4dCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICBlcnJvcjogdHJ1ZSxcbiAgICAgICAgb25DaGFuZ2U6ICh2YWx1ZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvcHkgPSB7IC4uLnRoaXMuc3RhdGUgfTtcbiAgICAgICAgICBpZiAoIS9eXFwoP1xcZHszfVspIF0/XFxkezN9Wy0gXT9cXGR7NH0vLnRlc3QodmFsdWUpKSB7XG4gICAgICAgICAgICBmaWVsZHMucGhvbmVfbnVtYmVyLmVycm9yID0gdHJ1ZTtcbiAgICAgICAgICAgIGZpZWxkcy5waG9uZV9udW1iZXIuZmVlZGJhY2sgPSAnSW52YWxpZCBQaG9uZSBOdW1iZXIgKGkuZS4sICg5ODkpMTExLTExMTEgb3IgOTg5MTExMTExMSknO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmaWVsZHMucGhvbmVfbnVtYmVyLmVycm9yID0gZmFsc2U7XG4gICAgICAgICAgICBmaWVsZHMucGhvbmVfbnVtYmVyLmZlZWRiYWNrID0gJyc7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvcHkuZmllbGRzLnBob25lX251bWJlci52YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoY29weSk7XG4gICAgICAgIH0sXG4gICAgICAgIGZ1bGx3aWR0aDogdHJ1ZSxcbiAgICAgICAgZmVlZGJhY2s6ICcnLFxuICAgICAgICB2YWx1ZTogJycsXG4gICAgICB9LFxuICAgICAgZW1haWw6IHtcbiAgICAgICAgdGl0bGU6ICdFbWFpbCBBZGRyZXNzJyxcbiAgICAgICAgdHlwZToge1xuICAgICAgICAgIHR5cGVuYW1lOiAndGV4dCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgZXJyb3I6IGZhbHNlLFxuICAgICAgICBvbkNoYW5nZTogKHZhbHVlKSA9PiB7XG4gICAgICAgICAgY29uc3QgY29weSA9IHsgLi4udGhpcy5zdGF0ZSB9O1xuICAgICAgICAgIGlmICghL15bIC1+XXswLDI1NX0kLy50ZXN0KHZhbHVlKSkge1xuICAgICAgICAgICAgZmllbGRzLmVtYWlsLmVycm9yID0gdHJ1ZTtcbiAgICAgICAgICAgIGZpZWxkcy5lbWFpbC5mZWVkYmFjayA9ICdJbnZhbGlkIEVtYWlsIEFkZHJlc3MgRm9ybWF0JztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZmllbGRzLmVtYWlsLmVycm9yID0gZmFsc2U7XG4gICAgICAgICAgICBmaWVsZHMuZW1haWwuZmVlZGJhY2sgPSAnJztcbiAgICAgICAgICB9XG4gICAgICAgICAgY29weS5maWVsZHMuZW1haWwudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKGNvcHkpO1xuICAgICAgICB9LFxuICAgICAgICBmdWxsd2lkdGg6IHRydWUsXG4gICAgICAgIGZlZWRiYWNrOiAnJyxcbiAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgfSxcbiAgICAgIGZheF9udW1iZXI6IHtcbiAgICAgICAgdGl0bGU6ICdGYXggTnVtYmVyJyxcbiAgICAgICAgdHlwZToge1xuICAgICAgICAgIHR5cGVuYW1lOiAndGV4dCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgZXJyb3I6IGZhbHNlLFxuICAgICAgICBvbkNoYW5nZTogKHZhbHVlKSA9PiB7XG4gICAgICAgICAgY29uc3QgY29weSA9IHsgLi4udGhpcy5zdGF0ZSB9O1xuICAgICAgICAgIGlmICghL15cXCg/XFxkezN9WykgXT9cXGR7M31bLSBdP1xcZHs0fS8udGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAnJykge1xuICAgICAgICAgICAgICBmaWVsZHMuZmF4X251bWJlci5lcnJvciA9IGZhbHNlO1xuICAgICAgICAgICAgICBmaWVsZHMuZmF4X251bWJlci5mZWVkYmFjayA9ICcnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgZmllbGRzLmZheF9udW1iZXIuZXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgICBmaWVsZHMuZmF4X251bWJlci5mZWVkYmFjayA9ICdJbnZhbGlkIEZheCBOdW1iZXIgRm9ybWF0JztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZmllbGRzLmZheF9udW1iZXIuZXJyb3IgPSBmYWxzZTtcbiAgICAgICAgICAgIGZpZWxkcy5mYXhfbnVtYmVyLmZlZWRiYWNrID0gJyc7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvcHkuZmllbGRzLmZheF9udW1iZXIudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKGNvcHkpO1xuICAgICAgICB9LFxuICAgICAgICBmdWxsd2lkdGg6IHRydWUsXG4gICAgICAgIGZlZWRiYWNrOiAnJyxcbiAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgfSxcbiAgICAgIHByZXNjcmlwdGlvbnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHByZXNjcmlwdGlvbl8wOiB7XG4gICAgICAgICAgICB0aXRsZTogJ1ByZXNjcmlwdGlvbiBOdW1iZXInLFxuICAgICAgICAgICAgdHlwZToge1xuICAgICAgICAgICAgICB0eXBlbmFtZTogJ3RleHQnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgZXJyb3I6IHRydWUsXG4gICAgICAgICAgICBvbkNoYW5nZTogKHZhbHVlLCBpZHgpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgY29weSA9IHsgLi4udGhpcy5zdGF0ZSB9O1xuICAgICAgICAgICAgICBpZiAoIS9eXFxkezUsMTB9JC8udGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBjb3B5LmZpZWxkcy5wcmVzY3JpcHRpb25zW2lkeF1bYHByZXNjcmlwdGlvbl8ke2lkeH1gXS5lcnJvciA9IHRydWU7XG4gICAgICAgICAgICAgICAgY29weS5maWVsZHMucHJlc2NyaXB0aW9uc1tpZHhdW2BwcmVzY3JpcHRpb25fJHtpZHh9YF0uZmVlZGJhY2sgPSAnSW52YWxpZCBQcmVzY3JpcHRpb24gTnVtYmVyIEZvcm1hdCc7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29weS5maWVsZHMucHJlc2NyaXB0aW9uc1tpZHhdW2BwcmVzY3JpcHRpb25fJHtpZHh9YF0uZXJyb3IgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBjb3B5LmZpZWxkcy5wcmVzY3JpcHRpb25zW2lkeF1bYHByZXNjcmlwdGlvbl8ke2lkeH1gXS5mZWVkYmFjayA9ICcnO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNvcHkuZmllbGRzLnByZXNjcmlwdGlvbnNbaWR4XVtgcHJlc2NyaXB0aW9uXyR7aWR4fWBdLnZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoY29weSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZnVsbHdpZHRoOiB0cnVlLFxuICAgICAgICAgICAgZmVlZGJhY2s6ICcnLFxuICAgICAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgZGVsaXZlcnk6IHtcbiAgICAgICAgdGl0bGU6ICdEZWxpdmVyeSAvIE1haWwgU2hpcG1lbnQnLFxuICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgIGVycm9yOiBmYWxzZSxcbiAgICAgICAgZGlzYWJsZWQ6IGZhbHNlLFxuICAgICAgICB2YWx1ZTogJ05vJyxcbiAgICAgICAgb25DaGFuZ2U6ICh2YWx1ZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvcHkgPSB7IC4uLnRoaXMuc3RhdGUgfTtcbiAgICAgICAgICBjb3B5LmZpZWxkcy5kZWxpdmVyeS52YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoY29weSk7XG4gICAgICAgIH0sXG4gICAgICAgIHR5cGU6IHtcbiAgICAgICAgICB0eXBlbmFtZTogJ3NlbGVjdG9yJyxcbiAgICAgICAgICBvcHRpb25zOiBbXG4gICAgICAgICAgICB7IHZhbHVlOiAnTm8nLCBOYW1lOiAnTm8nIH0sXG4gICAgICAgICAgICB7IHZhbHVlOiAnWWVzJywgTmFtZTogJ1llcycgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHBpY2t1cDoge1xuICAgICAgICB0aXRsZTogJ0Rlc2lyZWQgUGlja3VwIFRpbWUnLFxuICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgIGRpc2FibGVkOiBmYWxzZSxcbiAgICAgICAgZXJyb3I6IGZhbHNlLFxuICAgICAgICB2YWx1ZTogJy0tIFNlbGVjdCBPbmUgLS0nLFxuICAgICAgICBmZWVkYmFjazogJycsXG4gICAgICAgIG9uQ2hhbmdlOiAodmFsdWUpID0+IHtcbiAgICAgICAgICBjb25zdCBjb3B5ID0geyAuLi50aGlzLnN0YXRlIH07XG4gICAgICAgICAgaWYgKHZhbHVlICYmIHZhbHVlICE9PSAnLS0gU2VsZWN0IE9uZSAtLScpIHtcbiAgICAgICAgICAgIGNvcHkuZmllbGRzLnBpY2t1cC5lcnJvciA9IGZhbHNlO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb3B5LmZpZWxkcy5waWNrdXAuZXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgY29weS5maWVsZHMucGlja3VwLmZlZWRiYWNrID0gJ1BsZWFzZSBzZWxlY3QgYSB2YWxpZCB0aW1lJztcbiAgICAgICAgICB9XG4gICAgICAgICAgY29weS5maWVsZHMucGlja3VwLnZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZShjb3B5KTtcbiAgICAgICAgfSxcbiAgICAgICAgdHlwZToge1xuICAgICAgICAgIHR5cGVuYW1lOiAnc2VsZWN0b3InLFxuICAgICAgICAgIG9wdGlvbnM6IFtcbiAgICAgICAgICAgIHsgdmFsdWU6ICctLSBTZWxlY3QgT25lIC0tJywgTmFtZTogJy0tIFNlbGVjdCBPbmUgLS0nIH0sXG4gICAgICAgICAgICB7IHZhbHVlOiAnTm8gUHJlZmVyZW5jZScsIE5hbWU6ICdObyBQcmVmZXJlbmNlJyB9LFxuICAgICAgICAgICAgeyB2YWx1ZTogJ1NvbWV0aW1lIFRvZGF5JywgTmFtZTogJ1NvbWV0aW1lIFRvZGF5JyB9LFxuICAgICAgICAgICAgeyB2YWx1ZTogJ1RvbW9ycm93JywgTmFtZTogJ1RvbW9ycm93JyB9LFxuICAgICAgICAgICAgeyB2YWx1ZTogJ1RvbW9ycm93IE1vcm5pbmcnLCBOYW1lOiAnVG9tb3Jyb3cgTW9ybmluZycgfSxcbiAgICAgICAgICAgIHsgdmFsdWU6ICdUb21vcnJvdyBBZnRlcm5vb24nLCBOYW1lOiAnVG9tb3Jyb3cgQWZ0ZXJub29uJyB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgY29tbWVudHM6IHtcbiAgICAgICAgdGl0bGU6ICdDb21tZW50cycsXG4gICAgICAgIHR5cGU6IHtcbiAgICAgICAgICB0eXBlbmFtZTogJ3RleHQnLFxuICAgICAgICB9LFxuICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgIGVycm9yOiBmYWxzZSxcbiAgICAgICAgb25DaGFuZ2U6ICh2YWx1ZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvcHkgPSB7IC4uLnRoaXMuc3RhdGUgfTtcbiAgICAgICAgICBpZiAoIS9eWyAtfl17MCwyNTV9JC8udGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIGZpZWxkcy5jb21tZW50cy5lcnJvciA9IHRydWU7XG4gICAgICAgICAgICBmaWVsZHMuY29tbWVudHMuZmVlZGJhY2sgPSAnSW52YWxpZCBGb3JtYXQnO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmaWVsZHMuY29tbWVudHMuZXJyb3IgPSBmYWxzZTtcbiAgICAgICAgICAgIGZpZWxkcy5jb21tZW50cy5mZWVkYmFjayA9ICcnO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb3B5LmZpZWxkcy5jb21tZW50cy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoY29weSk7XG4gICAgICAgIH0sXG4gICAgICAgIGZ1bGx3aWR0aDogdHJ1ZSxcbiAgICAgICAgZmVlZGJhY2s6ICcnLFxuICAgICAgICB2YWx1ZTogJycsXG4gICAgICB9LFxuICAgIH07XG4gICAgdGhpcy5zdGF0ZS5maWVsZHMgPSBmaWVsZHM7XG4gICAgdGhpcy5jaGFuZ2VWaWV3ID0gdGhpcy5jaGFuZ2VWaWV3LmJpbmQodGhpcyk7XG4gICAgdGhpcy5jbGVhckZpZWxkcyA9IHRoaXMuY2xlYXJGaWVsZHMuYmluZCh0aGlzKTtcbiAgICB0aGlzLmdldEZ1bGxBdXRoID0gdGhpcy5nZXRGdWxsQXV0aC5iaW5kKHRoaXMpO1xuICAgIHRoaXMuZ2V0U3RvcmVOdW1iZXIgPSB0aGlzLmdldFN0b3JlTnVtYmVyLmJpbmQodGhpcyk7XG4gICAgdGhpcy5nZXRSeE51bWJlciA9IHRoaXMuZ2V0UnhOdW1iZXIuYmluZCh0aGlzKTtcbiAgICB0aGlzLmdldEhhc2ggPSB0aGlzLmdldEhhc2guYmluZCh0aGlzKTtcbiAgICB0aGlzLmFkZENvbnRhY3QgPSB0aGlzLmFkZENvbnRhY3QuYmluZCh0aGlzKTtcbiAgICB0aGlzLmVudGl0eSA9IHRoaXMuZW50aXR5LmJpbmQodGhpcyk7XG4gICAgdGhpcy5jb25zdHJ1Y3RYTUxEb2N1bWVudCA9IHRoaXMuY29uc3RydWN0WE1MRG9jdW1lbnQuYmluZCh0aGlzKTtcbiAgICB0aGlzLnN1Ym1pdEZvcm0gPSB0aGlzLnN1Ym1pdEZvcm0uYmluZCh0aGlzKTtcbiAgICB0aGlzLmlzTW9iaWxlID0gdGhpcy5pc01vYmlsZS5iaW5kKHRoaXMpO1xuICAgIHRoaXMuYWRkUlhOdW1iZXIgPSB0aGlzLmFkZFJYTnVtYmVyLmJpbmQodGhpcyk7XG4gICAgdGhpcy5nZXREYXRhID0gdGhpcy5nZXREYXRhLmJpbmQodGhpcyk7XG4gICAgdGhpcy5sb2FkID0gdGhpcy5sb2FkLmJpbmQodGhpcyk7XG4gICAgdGhpcy5nZXRHb29nbGVNYXBzVVJMID0gdGhpcy5nZXRHb29nbGVNYXBzVVJMLmJpbmQodGhpcyk7XG4gICAgdGhpcy5kb3dubG9hZFRvRmlsZSA9IHRoaXMuZG93bmxvYWRUb0ZpbGUuYmluZCh0aGlzKTtcbiAgICB0aGlzLmdldE5hdmlnYXRpb24gPSB0aGlzLmdldE5hdmlnYXRpb24uYmluZCh0aGlzKTtcbiAgICB0aGlzLnByZXNjcmlwdGlvbkRhdGEgPSB0aGlzLnByZXNjcmlwdGlvbkRhdGEuYmluZCh0aGlzKTtcbiAgfVxuXG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgdGhlbWVNb2RlOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIH07XG5cbiAgY2hhbmdlVmlldyh2aWV3KSB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IHZpZXc6IHZpZXcgfSk7XG4gIH1cblxuICBjbGVhckZpZWxkcygpIHtcbiAgICBjb25zdCBjb3B5ID0geyAuLi50aGlzLnN0YXRlIH07XG4gICAgZm9yIChjb25zdCBrZXkgaW4gY29weS5maWVsZHMpIHtcbiAgICAgIGlmIChjb3B5LmZpZWxkc1trZXldLnZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKGtleSA9PSAncGlja3VwJykge1xuICAgICAgICAgIGNvcHkuZmllbGRzW2tleV0udmFsdWUgPSAnLS0gU2VsZWN0IE9uZSAtLSc7XG4gICAgICAgIH0gZWxzZSBpZiAoa2V5ID09ICdkZWxpdmVyeScpIHtcbiAgICAgICAgICBjb3B5LmZpZWxkc1trZXldLnZhbHVlID0gJ05vJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb3B5LmZpZWxkc1trZXldLnZhbHVlID0gJyc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvcHkuZmllbGRzW2tleV0ucmVxdWlyZWQpIHtcbiAgICAgICAgICBjb3B5LmZpZWxkc1trZXldLmVycm9yID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoY29weS5idG5fY291bnQgPj0gMCkge1xuICAgICAgY29weS5maWVsZHMucHJlc2NyaXB0aW9ucyA9IFtcbiAgICAgICAge1xuICAgICAgICAgIHByZXNjcmlwdGlvbl8wOiB7XG4gICAgICAgICAgICB0aXRsZTogJ1ByZXNjcmlwdGlvbiBOdW1iZXInLFxuICAgICAgICAgICAgdHlwZToge1xuICAgICAgICAgICAgICB0eXBlbmFtZTogJ3RleHQnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgZXJyb3I6IHRydWUsXG4gICAgICAgICAgICBvbkNoYW5nZTogKHZhbHVlLCBpZHgpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgY29weSA9IHsgLi4udGhpcy5zdGF0ZSB9O1xuICAgICAgICAgICAgICBpZiAoIS9eXFxkezUsMTB9JC8udGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBjb3B5LmZpZWxkcy5wcmVzY3JpcHRpb25zW2lkeF1bYHByZXNjcmlwdGlvbl8ke2lkeH1gXS5lcnJvciA9IHRydWU7XG4gICAgICAgICAgICAgICAgY29weS5maWVsZHMucHJlc2NyaXB0aW9uc1tpZHhdW2BwcmVzY3JpcHRpb25fJHtpZHh9YF0uZmVlZGJhY2sgPSAnSW52YWxpZCBQcmVzY3JpcHRpb24gTnVtYmVyIEZvcm1hdCc7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29weS5maWVsZHMucHJlc2NyaXB0aW9uc1tpZHhdW2BwcmVzY3JpcHRpb25fJHtpZHh9YF0uZXJyb3IgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBjb3B5LmZpZWxkcy5wcmVzY3JpcHRpb25zW2lkeF1bYHByZXNjcmlwdGlvbl8ke2lkeH1gXS5mZWVkYmFjayA9ICcnO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNvcHkuZmllbGRzLnByZXNjcmlwdGlvbnNbaWR4XVtgcHJlc2NyaXB0aW9uXyR7aWR4fWBdLnZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoY29weSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZnVsbHdpZHRoOiB0cnVlLFxuICAgICAgICAgICAgZmVlZGJhY2s6ICcnLFxuICAgICAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICBdO1xuICAgICAgY29weS5idG5fY291bnQgPSAwO1xuICAgIH1cbiAgICB0aGlzLnNldFN0YXRlKGNvcHkpO1xuICB9XG5cbiAgZ2V0RnVsbEF1dGgoKSB7XG4gICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2guc3Vic3RyaW5nKDEpID09ICdkZW1vJ1xuICAgIHx8IHdpbmRvdy5sb2NhdGlvbi5zZWFyY2guc3Vic3RyaW5nKDEpID09ICd0PWRlbW8nKSB7XG4gICAgICByZXR1cm4gJzFIczFGMnk3NzEwMjcxMDEwODYnO1xuICAgIH0gZWxzZSBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSwgMykgPT0gJ3Q9Jykge1xuICAgICAgcmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5zZWFyY2guc3Vic3RyaW5nKDMpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gd2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0U3RvcmVOdW1iZXIoKSB7XG4gICAgLy8gRm9yIGxvY2FsIHRlc3RpbmdcbiAgICBpZiAod2luZG93LmxvY2F0aW9uLmhvc3RuYW1lID09ICdsb2NhbGhvc3QnKSB7XG4gICAgICByZXR1cm4gd2luZG93LmxvY2F0aW9uLmhhc2guc3Vic3RyaW5nKDQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBhcnkgPSB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUuc3BsaXQoJy8nKTtcbiAgICAgIHJldHVybiBhcnlbYXJ5Lmxlbmd0aCAtIDFdO1xuICAgIH1cbiAgfVxuXG4gIHByZXNjcmlwdGlvbkRhdGEoKSB7XG4gICAgY29uc3QgcHJlc2NyaXB0aW9uX3ZhbHVlcyA9IFtdO1xuICAgIGNvbnN0IHByZXNjcmlwdGlvbnMgPSB0aGlzLnN0YXRlLmZpZWxkcy5wcmVzY3JpcHRpb25zO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcHJlc2NyaXB0aW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgdmFsdWUgPSBwcmVzY3JpcHRpb25zW2ldW2BwcmVzY3JpcHRpb25fJHtpfWBdLnZhbHVlO1xuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgIHByZXNjcmlwdGlvbl92YWx1ZXMucHVzaCh2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICA8dGQ+eyBwcmVzY3JpcHRpb25fdmFsdWVzLmpvaW4oJywgJykgfTwvdGQ+XG4gICAgKTtcbiAgfVxuXG4gIGdldFJ4TnVtYmVyKCkge1xuICAgIHJldHVybiB0aGlzLmdldEZ1bGxBdXRoKCkuc3Vic3RyaW5nKDEzKS5yZXBsYWNlKC9bXjAtOV0vZywgJycpO1xuICB9XG5cbiAgZ2V0SGFzaCgpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRGdWxsQXV0aCgpLnN1YnN0cmluZygwLCA3KTtcbiAgfVxuXG4gIGRvd25sb2FkVG9GaWxlKGNvbnRlbnQsIGZpbGVuYW1lLCBjb250ZW50X3R5cGUpIHtcbiAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW2NvbnRlbnRdLCB7IHR5cGU6IGNvbnRlbnRfdHlwZSB9KTtcbiAgICBjb25zdCB1cmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuICAgIGNvbnN0IGRvd25sb2FkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgIGRvd25sb2FkLmhyZWYgPSB1cmw7XG4gICAgZG93bmxvYWQuZG93bmxvYWQgPSBmaWxlbmFtZTtcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvd25sb2FkKTtcbiAgICBkb3dubG9hZC5jbGljaygpO1xuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG93bmxvYWQpO1xuICB9XG5cbiAgYWRkQ29udGFjdCgpIHtcbiAgICBjb25zdCBzdG9yZV9uYW1lID0gdGhpcy5zdGF0ZS5zdG9yZV9uYW1lID8gdGhpcy5zdGF0ZS5zdG9yZV9uYW1lIDogJyc7XG4gICAgY29uc3QgYWRkcmVzczEgPSB0aGlzLnN0YXRlLnN0b3JlX2FkZHJlc3MgPyB0aGlzLnN0YXRlLnN0b3JlX2FkZHJlc3MgOiAnJztcbiAgICBjb25zdCBhZGRyZXNzMiA9IHRoaXMuc3RhdGUuc3RvcmVfYWRkcmVzc190d28gPyB0aGlzLnN0b3JlX2FkZHJlc3NfdHdvIDogJyc7XG4gICAgY29uc3QgY2l0eSA9IHRoaXMuc3RhdGUuY2l0eSA/IHRoaXMuc3RhdGUuY2l0eSA6ICcnO1xuICAgIGNvbnN0IHN0YXRlID0gdGhpcy5zdGF0ZS5zdGF0ZSA/IHRoaXMuc3RhdGUuc3RhdGUgOiAnJztcbiAgICBjb25zdCB6aXAgPSB0aGlzLnN0YXRlLnppcCA/IHRoaXMuc3RhdGUuemlwIDogJyc7XG4gICAgY29uc3QgZW1haWwgPSB0aGlzLnN0YXRlLmVtYWlsID8gdGhpcy5zdGF0ZS5lbWFpbCA6ICcnO1xuICAgIGNvbnN0IHBob25lID0gdGhpcy5zdGF0ZS5waG9uZV9udW1iZXIgPyB0aGlzLnN0YXRlLnBob25lX251bWJlciA6ICcnO1xuICAgIGNvbnN0IGxvZ28gPSB0aGlzLnN0YXRlLmxvZ28gPyB0aGlzLnN0YXRlLmxvZ28gOiAnJztcbiAgICBjb25zdCB1cmwgPSB0aGlzLnN0YXRlLndlYnNpdGUgPyB0aGlzLnN0YXRlLndlYnNpdGUgOiAnJztcbiAgICBjb25zdCBzbXMgPSB0aGlzLnN0YXRlLnBoYXJtYWN5X3NtcyA/IHRoaXMuc3RhdGUucGhhcm1hY3lfc21zIDogJyc7XG4gICAgY29uc3QgdmNhcmQgPSBgQkVHSU46VkNBUkRcblZFUlNJT046My4wXG5DTEFTUzpQVUJMSUNcbk9SRzoke3N0b3JlX25hbWV9XG5BRFI7VFlQRT13b3JrOjs7JHthZGRyZXNzMX0ke2FkZHJlc3MyfTske2NpdHl9OyR7c3RhdGV9OyR7emlwfTtcbkVNQUlMO1RZUEU9aW50ZXJuZXQscHJlZjoke2VtYWlsfVxuVEVMO1RZUEU9d29yayx2b2ljZToke3Bob25lfVxuVEVMO1RZUEU9bW9iaWxlLHZvaWNlOiR7c21zfVxuUEhPVE87VkFMVUU9dXJpO1RZUEU9R0lGOiR7bG9nb31cblVSTDtUWVBFPXdvcms6JHt1cmx9XG5FTkQ6VkNBUkRcbiAgICBgO1xuICAgIHJldHVybiB7XG4gICAgICBjb250ZW50OiB2Y2FyZC50cmltKCksXG4gICAgICBmaWxlbmFtZTogdGhpcy5zdGF0ZS5zdG9yZV9uYW1lLnJlcGxhY2UoLyhcXHN8KFxcLnwgXFwuKSkvZywgJycpICsgJy52Y2YnLFxuICAgICAgY29udGVudF90eXBlOiAndGV4dC92Y2FyZCcsXG4gICAgfTtcbiAgfVxuXG4gIGlzTW9iaWxlKCkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtbGVuXG4gICAgcmV0dXJuICgvYW5kcm9pZHxhdmFudGdvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcmlzfGtpbmRsZXxsZ2UgfG1hZW1vfG1pZHB8bW1wfG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVxcL3xwbHVja2VyfHBvY2tldHxwc3B8c3ltYmlhbnx0cmVvfHVwXFwuKGJyb3dzZXJ8bGluayl8dm9kYWZvbmV8d2FwfHdpbmRvd3MgKGNlfHBob25lKXx4ZGF8eGlpbm8gW05DLE9SXS9pLiB0ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpKTtcbiAgfVxuXG4gIGVudGl0eSguLi5hcmdzKSB7XG4gICAgY29uc3QgW2RvYywgZW50aXR5TmFtZSwgLi4uZXh0cmFdID0gYXJncztcbiAgICBjb25zdCBub2RlID0gZG9jLmNyZWF0ZUVsZW1lbnQoZW50aXR5TmFtZSk7XG4gICAgZm9yIChjb25zdCBhcmcgb2YgZXh0cmEpIHtcbiAgICAgIGlmICghYXJnKSB7XG4gICAgICAgIG5vZGUuYXBwZW5kQ2hpbGQoZG9jLmNyZWF0ZVRleHROb2RlKCcnKSk7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBhcmcgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIG5vZGUuYXBwZW5kQ2hpbGQoZG9jLmNyZWF0ZVRleHROb2RlKGFyZykpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbm9kZS5hcHBlbmRDaGlsZChhcmcpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbm9kZTtcbiAgfVxuXG4gIGNvbnN0cnVjdFhNTERvY3VtZW50KCkge1xuICAgIGNvbnN0IGRvYyA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KCdodHRwOi8vd3d3LnNyc3BoYXJtYWN5LmNvbS9YTUwvUGF0aWVudFJlZmlsbFJlcXVlc3QnLFxuICAgICAgICAnUGF0aWVudFJlZmlsbFJlcXVlc3QnLFxuICAgICAgICBudWxsKTtcblxuICAgIGNvbnN0IHJvb3QgPSBkb2MuZG9jdW1lbnRFbGVtZW50O1xuICAgIGNvbnN0IHJ4ID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gdGhpcy5zdGF0ZS5idG5fY291bnQ7IGkrKykge1xuICAgICAgLy8gQXZvaWQgZW1wdHkgdmFsdWVzXG4gICAgICBpZiAodGhpcy5zdGF0ZS5maWVsZHMucHJlc2NyaXB0aW9uc1tpXVtgcHJlc2NyaXB0aW9uXyR7aX1gXS52YWx1ZSkge1xuICAgICAgICByeC5wdXNoKHRoaXMuc3RhdGUuZmllbGRzLnByZXNjcmlwdGlvbnNbaV1bYHByZXNjcmlwdGlvbl8ke2l9YF0udmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgICByb290LmFwcGVuZENoaWxkKHRoaXMuZW50aXR5KGRvYywgJ1RvJywgdGhpcy5zdGF0ZS5pZCkpO1xuICAgIHJvb3QuYXBwZW5kQ2hpbGQodGhpcy5lbnRpdHkoZG9jLCAnRnJvbScsICdzcnN3ZWInKSk7XG4gICAgcm9vdC5hcHBlbmRDaGlsZCh0aGlzLmVudGl0eShkb2MsICdTZW50VGltZScsIG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSkpO1xuICAgIGlmICh0aGlzLnN0YXRlLmZpZWxkcy5waWNrdXAudmFsdWUgJiYgdGhpcy5zdGF0ZS5maWVsZHMucGlja3VwLnZhbHVlICE9PSAnLS0gU2VsZWN0IE9uZSAtLScpIHtcbiAgICAgIGNvbnN0IHRvbW9ycm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgKyAoNjAgKiA2MCAqIDI0ICogMTAwMCk7XG4gICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUodG9tb3Jyb3cpLnRvSVNPU3RyaW5nKCkuc3BsaXQoJ1QnKVswXTtcbiAgICAgIGxldCBob3VyID0gJyc7XG4gICAgICBpZiAodGhpcy5zdGF0ZS5maWVsZHMucGlja3VwLnZhbHVlID09ICdUb21vcnJvdyBNb3JuaW5nJykge1xuICAgICAgICBob3VyID0gJzknO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLnN0YXRlLmZpZWxkcy5waWNrdXAudmFsdWUgPT0gJ1RvbW9ycm93IEFmdGVybm9vbicpIHtcbiAgICAgICAgaG91ciA9ICcxMic7XG4gICAgICB9XG4gICAgICBsZXQgcmVzdWx0ID0gJyc7XG4gICAgICBpZiAoaG91cikge1xuICAgICAgICByZXN1bHQgPSBgJHtkYXRlfVQke2hvdXJ9OjAwOjAwYDtcbiAgICAgIH1cbiAgICAgIHJvb3QuYXBwZW5kQ2hpbGQodGhpcy5lbnRpdHkoZG9jLCAnUGlja3VwVGltZScsIHJlc3VsdCkpO1xuICAgIH1cbiAgICByb290LmFwcGVuZENoaWxkKHRoaXMuZW50aXR5KGRvYywgJ01lc3NhZ2VJRCcsIG5ldyBEYXRlKCkuZ2V0VGltZSgpLnRvU3RyaW5nKCkpKTtcbiAgICBjb25zdCByeE51bWJlcnMgPSByeC5tYXAoKG51bWJlcikgPT4gdGhpcy5lbnRpdHkoZG9jLCAnUnhOdW1iZXInLCBudW1iZXIpKTtcbiAgICByb290LmFwcGVuZENoaWxkKHRoaXMuZW50aXR5KGRvYywgJ1J4TnVtYmVycycsIC4uLnJ4TnVtYmVycykpO1xuICAgIHJvb3QuYXBwZW5kQ2hpbGQodGhpcy5lbnRpdHkoZG9jLCAnQ29udGFjdCcsXG4gICAgICAgIHRoaXMuZW50aXR5KGRvYywgJ0xhc3ROYW1lJywgdGhpcy5zdGF0ZS5maWVsZHMubGFzdF9uYW1lLnZhbHVlKSxcbiAgICAgICAgdGhpcy5lbnRpdHkoZG9jLCAnRmlyc3ROYW1lJywgdGhpcy5zdGF0ZS5maWVsZHMuZmlyc3RfbmFtZS52YWx1ZSksXG4gICAgICAgIHRoaXMuZW50aXR5KGRvYywgJ1Bob25lJywgdGhpcy5zdGF0ZS5maWVsZHMucGhvbmVfbnVtYmVyLnZhbHVlKSxcbiAgICAgICAgdGhpcy5lbnRpdHkoZG9jLCAnRW1haWwnLCB0aGlzLnN0YXRlLmZpZWxkcy5lbWFpbC52YWx1ZSksXG4gICAgICAgIHRoaXMuZW50aXR5KGRvYywgJ0ZheCcsIHRoaXMuc3RhdGUuZmllbGRzLmZheF9udW1iZXIudmFsdWUpKSk7XG4gICAgaWYgKHRoaXMuc3RhdGUuZmllbGRzLmRlbGl2ZXJ5LnZhbHVlID09ICdZZXMnKSB7XG4gICAgICByb290LmFwcGVuZENoaWxkKHRoaXMuZW50aXR5KGRvYywgJ1BpY2t1cE1ldGhvZCcsICdEJykpO1xuICAgIH0gZWxzZSB7XG4gICAgICByb290LmFwcGVuZENoaWxkKHRoaXMuZW50aXR5KGRvYywgJ1BpY2t1cE1ldGhvZCcsICdQJykpO1xuICAgIH1cbiAgICByb290LmFwcGVuZENoaWxkKHRoaXMuZW50aXR5KGRvYywgJ0NvbW1lbnQnLCB0aGlzLnN0YXRlLmZpZWxkcy5jb21tZW50cy52YWx1ZSkpO1xuICAgIHJldHVybiBkb2M7XG4gIH1cblxuICBhc3luYyBnZXREYXRhKCkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBjb3B5ID0geyAuLi50aGlzLnN0YXRlIH07XG4gICAgICBjb3B5LmRhdGEgPSBbXTtcbiAgICAgIGZvciAoY29uc3QgZGVmIGluIGNvcHkuZmllbGRzKSB7XG4gICAgICAgIGlmIChPYmplY3QuaGFzT3duKGNvcHkuZmllbGRzLCBkZWYpKSB7XG4gICAgICAgICAgaWYgKGNvcHkuZmllbGRzW2RlZl0udmFsdWUpIHtcbiAgICAgICAgICAgIGF3YWl0IGNvcHkuZGF0YS5wdXNoKGNvcHkuZmllbGRzW2RlZl0udmFsdWUpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhd2FpdCBjb3B5LmRhdGEucHVzaCgnJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBhd2FpdCB0aGlzLnNldFN0YXRlKGNvcHkpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUubG9nKGUpO1xuICAgIH1cbiAgfVxuXG4gIGFkZFJYTnVtYmVyKCkge1xuICAgIGNvbnN0IGNvcHkgPSB7IC4uLnRoaXMuc3RhdGUgfTtcbiAgICBjb3B5LmJ0bl9jb3VudCsrO1xuICAgIGNvbnN0IHByZXNjcmlwdGlvbiA9IGBwcmVzY3JpcHRpb25fJHtjb3B5LmJ0bl9jb3VudH1gO1xuICAgIGNvbnN0IG9iaiA9IHt9O1xuICAgIG9ialtwcmVzY3JpcHRpb25dID0ge1xuICAgICAgLy8gSW50ZW50aW9uYWxseSBsZWZ0IGJsYW5rXG4gICAgICB0aXRsZTogJycsXG4gICAgICB0eXBlOiB7XG4gICAgICAgIHR5cGVuYW1lOiAndGV4dCcsXG4gICAgICB9LFxuICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgZXJyb3I6IGZhbHNlLFxuICAgICAgb25DaGFuZ2U6ICh2YWx1ZSwgaWR4KSA9PiB7XG4gICAgICAgIGNvbnN0IGNvcHkgPSB7IC4uLnRoaXMuc3RhdGUgfTtcbiAgICAgICAgaWYgKCEvXlxcZHs1LDEwfSQvLnRlc3QodmFsdWUpKSB7XG4gICAgICAgICAgY29weS5maWVsZHMucHJlc2NyaXB0aW9uc1tpZHhdW2BwcmVzY3JpcHRpb25fJHtpZHh9YF0uZXJyb3IgPSB0cnVlO1xuICAgICAgICAgIGNvcHkuZmllbGRzLnByZXNjcmlwdGlvbnNbaWR4XVtgcHJlc2NyaXB0aW9uXyR7aWR4fWBdLmZlZWRiYWNrID0gJ0ludmFsaWQgUHJlc2NyaXB0aW9uIE51bWJlciBGb3JtYXQnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvcHkuZmllbGRzLnByZXNjcmlwdGlvbnNbaWR4XVtgcHJlc2NyaXB0aW9uXyR7aWR4fWBdLmVycm9yID0gZmFsc2U7XG4gICAgICAgICAgY29weS5maWVsZHMucHJlc2NyaXB0aW9uc1tpZHhdW2BwcmVzY3JpcHRpb25fJHtpZHh9YF0uZmVlZGJhY2sgPSAnJztcbiAgICAgICAgfVxuICAgICAgICBjb3B5LmZpZWxkcy5wcmVzY3JpcHRpb25zW2lkeF1bYHByZXNjcmlwdGlvbl8ke2lkeH1gXS52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLnNldFN0YXRlKGNvcHkpO1xuICAgICAgfSxcbiAgICAgIGZ1bGx3aWR0aDogdHJ1ZSxcbiAgICAgIGZlZWRiYWNrOiAnJyxcbiAgICAgIHZhbHVlOiAnJyxcbiAgICB9O1xuICAgIGNvcHkuZmllbGRzLnByZXNjcmlwdGlvbnMucHVzaChvYmopO1xuICAgIHRoaXMuc2V0U3RhdGUoY29weSk7XG4gIH1cblxuICBnZXRHb29nbGVNYXBzVVJMKCkge1xuICAgIGNvbnN0IHVybCA9IGArJHt0aGlzLnN0YXRlLnN0b3JlX2FkZHJlc3N9XG4gICAgKyR7dGhpcy5zdGF0ZS5zdG9yZV9hZGRyZXNzX3R3b31cbiAgICArJHt0aGlzLnN0YXRlLmNpdHl9LFxuICAgICske3RoaXMuc3RhdGUuc3RhdGV9XG4gICAgKyR7dGhpcy5zdGF0ZS56aXB9YDtcbiAgICByZXR1cm4gdXJsO1xuICB9XG5cbiAgZ2V0TmF2aWdhdGlvbihjb29yZF9zdHJpbmcpIHtcbiAgICBpZiAobmF2aWdhdG9yICYmIG5hdmlnYXRvci5wbGF0Zm9ybSkge1xuICAgICAgaWYgKChuYXZpZ2F0b3IucGxhdGZvcm0uaW5kZXhPZignaVBob25lJykgIT0gLTEpXG4gICAgICAgIHx8IChuYXZpZ2F0b3IucGxhdGZvcm0uaW5kZXhPZignTWFjJykgIT0gLTEpXG4gICAgICAgIHx8IChuYXZpZ2F0b3IucGxhdGZvcm0uaW5kZXhPZignaVBhZCcpICE9IC0xKVxuICAgICAgICB8fCAobmF2aWdhdG9yLnBsYXRmb3JtLmluZGV4T2YoJ2lQb2QnKSAhPSAtMSkpIHtcbiAgICAgICAgd2luZG93Lm9wZW4oJ21hcHM6Ly8/cT0nICsgY29vcmRfc3RyaW5nKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHdpbmRvdy5vcGVuKCdnb29nbGUubmF2aWdhdGlvbjpxPScgKyBjb29yZF9zdHJpbmcgKyAnJm1vZGU9ZCcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGxvYWQoKSB7XG4gICAgY29uc3QgcGFyYW1zID0ge1xuICAgICAgdGFnOiB0aGlzLmdldFN0b3JlTnVtYmVyKCksXG4gICAgfTtcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgbWV0aG9kOiAnZ2V0JyxcbiAgICAgIGVuZHBvaW50OiAncXVlcnknLFxuICAgICAgcGFyYW1zOiBwYXJhbXMsXG4gICAgfTtcbiAgICBhcGlDYWxsKG9wdGlvbnMpLnRoZW4oIGFzeW5jIChyZXNwKSA9PiB7XG4gICAgICBjb25zdCByID0gSlNPTi5wYXJzZShyZXNwLmRhdGEpO1xuICAgICAgY29uc3QgcGhhcm1fY29vcmRzID0gW3IuYWRkcmVzczFcbiAgICAgICAgKyAnICdcbiAgICAgICAgKyByLmNpdHlcbiAgICAgICAgKyAnICdcbiAgICAgICAgKyByLnN0YXRlXG4gICAgICAgICsgJyAnXG4gICAgICAgICsgci56aXBdO1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIHN0b3JlX25hbWU6IHIubmFtZSxcbiAgICAgICAgbG9nbzogci5sb2dvLFxuICAgICAgICBzdG9yZV9hZGRyZXNzOiByLmFkZHJlc3MxLFxuICAgICAgICBzdG9yZV9hZGRyZXNzX3R3bzogci5hZGRyZXNzMixcbiAgICAgICAgcGhhcm1hY3lfcGhvbmU6IHIucGhvbmUsXG4gICAgICAgIHBoYXJtYWN5X3Ntczogci5zbXMsXG4gICAgICAgIGVtYWlsOiByLmVtYWlsLFxuICAgICAgICB3ZWJzaXRlOiByLndlYnNpdGUsXG4gICAgICAgIHdlYl92ZXJzaW9uOiByLndlYl92ZXJzaW9uLFxuICAgICAgICBjaXR5OiByLmNpdHksXG4gICAgICAgIHN0YXRlOiByLnN0YXRlLFxuICAgICAgICB6aXA6IHIuemlwLFxuICAgICAgICBmYWNlYm9va19saW5rOiByLmZhY2Vib29rX2xpbmssXG4gICAgICAgIHBoYXJtYWN5X2hvdXJzOiByLnN0b3JlX2hvdXJzLFxuICAgICAgICBsb2FkZWQ6IHRydWUsXG4gICAgICAgIHBoYXJtX2Nvb3JkczogcGhhcm1fY29vcmRzLFxuICAgICAgfSk7XG4gICAgfSkuY2F0Y2goIChlcnIpID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgICBlcnJvcnM6IGdldEVycm9yTWVzc2FnZShlcnIpLFxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICB0aGlzLmxvYWQoKTtcbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcbiAgICBpZiAoIXRoaXMuc3RhdGUubG9hZGVkKSB7XG4gICAgICB0aGlzLmxvYWQoKTtcbiAgICB9XG4gIH1cblxuICBzdWJtaXRGb3JtKCkge1xuICAgIGNvbnN0IHJlZmlsbCA9ICc8P3htbCB2ZXJzaW9uPVwiMS4wXCI/PicgKyBuZXcgWE1MU2VyaWFsaXplcigpLnNlcmlhbGl6ZVRvU3RyaW5nKHRoaXMuY29uc3RydWN0WE1MRG9jdW1lbnQoKSk7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgZW5kcG9pbnQ6ICdzdWJtaXQnLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgfSxcbiAgICAgIGRhdGE6IHJlZmlsbCxcbiAgICB9O1xuICAgIGFwaUNhbGwob3B0aW9ucykudGhlbiggKHJlc3ApID0+IHtcbiAgICAgIHRoaXMuY2hhbmdlVmlldygnc3VjY2Vzc19zdWJtaXQnKTtcbiAgICB9KS5jYXRjaCggKGVycikgPT4ge1xuICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgIHRoaXMuc2V0U3RhdGUoeyBlcnJvcnM6IGdldEVycm9yTWVzc2FnZShlcnIpLCBsb2FkZWQ6IHRydWUgfSk7XG4gICAgfSk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgbGV0IGJyZWFkY3J1bWJzID0gJyc7XG4gICAgaWYgKHRoaXMuc3RhdGUudmlldyAhPT0gJ21vYmlsZV9zaXRlJykge1xuICAgICAgY29uc3QgZm91bmQgPSB0aGlzLnN0YXRlLnBhZ2VzLmZpbmQoKHApID0+IHtcbiAgICAgICAgcmV0dXJuIHAudmlldyA9PSB0aGlzLnN0YXRlLnZpZXc7XG4gICAgICB9KTtcbiAgICAgIGJyZWFkY3J1bWJzID0gKFxuICAgICAgICA8QnJlYWRjcnVtYnMgc3g9e3sgcGFkZGluZzogJzVweCcgfX0+XG4gICAgICAgICAgPExpbmtcbiAgICAgICAgICAgIHVuZGVybGluZT0naG92ZXInXG4gICAgICAgICAgICBjb2xvcj0naW5oZXJpdCdcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgaWYgKHRoaXMuc3RhdGUudmlldyAhPT0gJ21vYmlsZV9zaXRlJykge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJGaWVsZHMoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB0aGlzLmNoYW5nZVZpZXcoJ21vYmlsZV9zaXRlJyk7XG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5Ib21lPC9MaW5rPlxuICAgICAgICAgIDxUeXBvZ3JhcGh5IGNvbG9yPSd0ZXh0LnByaW1hcnknPnsgZm91bmQgPyBmb3VuZC5uYW1lIDogJ1N1Y2Nlc3NmdWwgU3VibWlzc2lvbicgfTwvVHlwb2dyYXBoeT5cbiAgICAgICAgPC9CcmVhZGNydW1icz5cbiAgICAgICk7XG4gICAgfVxuICAgIGxldCBib2R5ID0gKFxuICAgICAgPExvYWRpbmcvPlxuICAgICk7XG4gICAgaWYgKCF0aGlzLnN0YXRlLmxvYWRlZCkge1xuICAgICAgYm9keSA9IChcbiAgICAgICAgPExvYWRpbmcvPlxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuc3RhdGUuZXJyb3JzKSB7XG4gICAgICBsZXQgZXJyb3IgPSAnJztcbiAgICAgIGlmICh0aGlzLnN0YXRlLmVycm9ycyA9PSAnUGhhcm1hY3kgTm90IEZvdW5kIC8gU3RvcmUgTGljZW5zZSBub3QgdmFsaWQnKSB7XG4gICAgICAgIGVycm9yID0gJ01pc3Npbmcgb3IgaW52YWxpZCBzdG9yZSB0YWcgaW4gcmVxdWVzdCc7XG4gICAgICB9XG4gICAgICBjb25zdCBwcm9wcyA9IHtcbiAgICAgICAgbWVzc2FnZTogZXJyb3IgPyBlcnJvciA6IHRoaXMuc3RhdGUuZXJyb3JzLFxuICAgICAgfTtcbiAgICAgIGJvZHkgPSAoXG4gICAgICAgIEVycm9yKHByb3BzKVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3dpdGNoICh0aGlzLnN0YXRlLnZpZXcpIHtcbiAgICAgICAgY2FzZSAnbW9iaWxlX3NpdGUnOlxuICAgICAgICAgIGJvZHkgPSAoXG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICA8Q29udGFpbmVyIG1heFdpZHRoPSdsZyc+XG4gICAgICAgICAgICAgICAgPEJveFxuICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnMTAwdmgnLFxuICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogJ2F1dG8nLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8TGlzdFxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBwYWRkaW5nOiAndW5zZXQnIH19XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlLnBhZ2VzLm1hcCgocCwgaWR4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgaW5uZXJfYm94ID0gcC5uYW1lO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHAudmlldyA9PSAnY2FsbF9waGFybWFjeScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGhvbmUgPSAndGVsOi8vKzEnICsgdGhpcy5zdGF0ZS5waGFybWFjeV9waG9uZS5yZXBsYWNlKC9bXitcXGRdL2csICcnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaW5uZXJfYm94ID0gPExpbmsgY29sb3I9J2JsYWNrJyB1bmRlcmxpbmU9J25vbmUnIGhyZWY9e3Bob25lfT57IHAubmFtZSB9PC9MaW5rPjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxMaXN0SXRlbUJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YCR7cC5uYW1lfS0ke2lkeH1gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN4PXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2JsYWNrJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYXA6ICcwLjVyZW0nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dEFsaWduOiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJnY29sb3I6ICcjZGRkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlckJvdHRvbTogJzFweCBzb2xpZCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJDb2xvcjogJyNiMWFiYWInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChbJ3JlZmlsbF9yZXF1ZXN0JywgJ2hvdXJzX2FuZF9kaXJlY3Rpb25zJ10uaW5jbHVkZXMocC52aWV3KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZVZpZXcocC52aWV3KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocC52aWV3ID09ICdhZGRfY29udGFjdHMnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgY29udGVudCwgZmlsZW5hbWUsIGNvbnRlbnRfdHlwZSB9ID0gdGhpcy5hZGRDb250YWN0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZG93bmxvYWRUb0ZpbGUoY29udGVudCwgZmlsZW5hbWUsIGNvbnRlbnRfdHlwZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHAudmlldyA9PSAnbmF2aWdhdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY29vcmRfc3RyaW5nID0gdGhpcy5nZXRHb29nbGVNYXBzVVJMKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0TmF2aWdhdGlvbihjb29yZF9zdHJpbmcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Qm94XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeD17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogJzI1MHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Qm94XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN4PXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICc1MHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID57IHAuaWNvbiB9PC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Qm94XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN4PXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4R3JvdzogJzEnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPnsgaW5uZXJfYm94IH08L0JveD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9MaXN0SXRlbUJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgPC9MaXN0PlxuICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3JlZmlsbF9yZXF1ZXN0JzpcbiAgICAgICAgICBib2R5ID0gKFxuICAgICAgICAgICAgPENvbnRhaW5lciBtYXhXaWR0aD0nbGcnPlxuICAgICAgICAgICAgICB7IGJyZWFkY3J1bWJzIH1cbiAgICAgICAgICAgICAgPFBhcGVyIHZhcmlhbnQ9J291dGxpbmVkJz5cbiAgICAgICAgICAgICAgICA8Zm9ybSBpZD0ncmVmaWxsLXJlcXVlc3QnPlxuICAgICAgICAgICAgICAgICAgPEdyaWQgY29udGFpbmVyIHNwYWNpbmc9ezF9IHN4PXt7IHBhZGRpbmc6ICcyMHB4JyB9fT5cbiAgICAgICAgICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17MTJ9PlxuICAgICAgICAgICAgICAgICAgICAgIDxUeXBvZ3JhcGh5IHZhcmlhbnQ9J2g0Jz5XZWIgUmVmaWxsIEZvcm08L1R5cG9ncmFwaHk+XG4gICAgICAgICAgICAgICAgICAgICAgPGhyLz5cbiAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICA8R3JpZCBpdGVtIHhzPXsxMn0+XG4gICAgICAgICAgICAgICAgICAgICAgPEdyaWQgY29udGFpbmVyIHNwYWNpbmc9ezJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17MTJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8VGV4dEZpZWxkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVsbFdpZHRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3I9e3RoaXMuc3RhdGUuZmllbGRzLmZpcnN0X25hbWUuZXJyb3J9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ9e3RoaXMuc3RhdGUuZmllbGRzLmZpcnN0X25hbWUucmVxdWlyZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT0nc21hbGwnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0ndGV4dCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD17dGhpcy5zdGF0ZS5maWVsZHMuZmlyc3RfbmFtZS50aXRsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwZXJUZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgJiYgdGhpcy5zdGF0ZS5maWVsZHMuZmlyc3RfbmFtZS5lcnJvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMuc3RhdGUuZmllbGRzLmZpcnN0X25hbWUuZmVlZGJhY2tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dGhpcy5zdGF0ZS5maWVsZHMuZmlyc3RfbmFtZS52YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZS50YXJnZXQudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlLmZpZWxkcy5maXJzdF9uYW1lLm9uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17MTJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8VGV4dEZpZWxkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVsbFdpZHRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3I9e3RoaXMuc3RhdGUuZmllbGRzLmxhc3RfbmFtZS5lcnJvcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZD17dGhpcy5zdGF0ZS5maWVsZHMubGFzdF9uYW1lLnJlcXVpcmVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9J3NtYWxsJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9J3RleHQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9e3RoaXMuc3RhdGUuZmllbGRzLmxhc3RfbmFtZS50aXRsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwZXJUZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgJiYgdGhpcy5zdGF0ZS5maWVsZHMubGFzdF9uYW1lLmVycm9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5zdGF0ZS5maWVsZHMubGFzdF9uYW1lLmZlZWRiYWNrXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3RoaXMuc3RhdGUuZmllbGRzLmxhc3RfbmFtZS52YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZS50YXJnZXQudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlLmZpZWxkcy5sYXN0X25hbWUub25DaGFuZ2UodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8R3JpZCBpdGVtIHhzPXsxMn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxUZXh0RmllbGRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdWxsV2lkdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcj17dGhpcy5zdGF0ZS5maWVsZHMucGhvbmVfbnVtYmVyLmVycm9yfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPXt0aGlzLnN0YXRlLmZpZWxkcy5waG9uZV9udW1iZXIucmVxdWlyZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT0nc21hbGwnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0ndGV4dCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD17dGhpcy5zdGF0ZS5maWVsZHMucGhvbmVfbnVtYmVyLnRpdGxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHBlclRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSAmJiB0aGlzLnN0YXRlLmZpZWxkcy5waG9uZV9udW1iZXIuZXJyb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnN0YXRlLmZpZWxkcy5waG9uZV9udW1iZXIuZmVlZGJhY2tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dGhpcy5zdGF0ZS5maWVsZHMucGhvbmVfbnVtYmVyLnZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBlLnRhcmdldC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUuZmllbGRzLnBob25lX251bWJlci5vbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkIGl0ZW0geHM9ezEyfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFRleHRGaWVsZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGxXaWR0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yPXt0aGlzLnN0YXRlLmZpZWxkcy5lbWFpbC5lcnJvcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZD17dGhpcy5zdGF0ZS5maWVsZHMuZW1haWwucmVxdWlyZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT0nc21hbGwnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0ndGV4dCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD17dGhpcy5zdGF0ZS5maWVsZHMuZW1haWwudGl0bGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscGVyVGV4dD17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlICYmIHRoaXMuc3RhdGUuZmllbGRzLmVtYWlsLmVycm9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5zdGF0ZS5maWVsZHMuZW1haWwuZmVlZGJhY2tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dGhpcy5zdGF0ZS5maWVsZHMuZW1haWwudmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGUudGFyZ2V0LnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZS5maWVsZHMuZW1haWwub25DaGFuZ2UodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8R3JpZCBpdGVtIHhzPXsxMn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxUZXh0RmllbGRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdWxsV2lkdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcj17dGhpcy5zdGF0ZS5maWVsZHMuZmF4X251bWJlci5lcnJvcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZD17dGhpcy5zdGF0ZS5maWVsZHMuZmF4X251bWJlci5yZXF1aXJlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPSdzbWFsbCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSd0ZXh0J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXt0aGlzLnN0YXRlLmZpZWxkcy5mYXhfbnVtYmVyLnRpdGxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHBlclRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSAmJiB0aGlzLnN0YXRlLmZpZWxkcy5mYXhfbnVtYmVyLmVycm9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5zdGF0ZS5maWVsZHMuZmF4X251bWJlci5mZWVkYmFja1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICcnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXt0aGlzLnN0YXRlLmZpZWxkcy5mYXhfbnVtYmVyLnZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBlLnRhcmdldC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUuZmllbGRzLmZheF9udW1iZXIub25DaGFuZ2UodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUuZmllbGRzLnByZXNjcmlwdGlvbnMubWFwKChwLCBpZHgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17MTJ9IGtleT17aWR4fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRleHRGaWVsZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGxXaWR0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yPXtwW2BwcmVzY3JpcHRpb25fJHtpZHh9YF0uZXJyb3J9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ9e3BbYHByZXNjcmlwdGlvbl8ke2lkeH1gXS5yZXF1aXJlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPSdzbWFsbCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSd0ZXh0J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXtpZHggPT0gMCA/IHBbYHByZXNjcmlwdGlvbl8ke2lkeH1gXS50aXRsZSA6ICcnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHBlclRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlICYmIHBbYHByZXNjcmlwdGlvbl8ke2lkeH1gXS5lcnJvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gcFtgcHJlc2NyaXB0aW9uXyR7aWR4fWBdLmZlZWRiYWNrXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17cFtgcHJlc2NyaXB0aW9uXyR7aWR4fWBdLnZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBlLnRhcmdldC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBbYHByZXNjcmlwdGlvbl8ke2lkeH1gXS5vbkNoYW5nZSh2YWx1ZSwgaWR4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA8R3JpZCBpdGVtIHhzPXsxMn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdWxsV2lkdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PSdjb250YWluZWQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I9J3ByaW1hcnknXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5zdGF0ZS5maWVsZHMucHJlc2NyaXB0aW9ucy5sZW5ndGggPD0gOSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZFJYTnVtYmVyKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPkFkZDwvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlLndlYl92ZXJzaW9uID09IDEwXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHx8IHRoaXMuc3RhdGUud2ViX3ZlcnNpb24gPT0gMTNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgdGhpcy5zdGF0ZS53ZWJfdmVyc2lvbiA9PSAxNVxuICAgICAgICAgICAgICAgICAgICAgICAgICA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8R3JpZCBpdGVtIHhzPXsxMn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Rm9ybUNvbnRyb2wgZnVsbFdpZHRoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5wdXRMYWJlbD57IHRoaXMuc3RhdGUuZmllbGRzLmRlbGl2ZXJ5LnRpdGxlIH08L0lucHV0TGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbElkPSdkZWxpdmVyeS1zZWxlY3QtbGFiZWwnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3RoaXMuc3RhdGUuZmllbGRzLmRlbGl2ZXJ5LnZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXt0aGlzLnN0YXRlLmZpZWxkcy5kZWxpdmVyeS50aXRsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPSdzbWFsbCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlLmZpZWxkcy5kZWxpdmVyeS5vbkNoYW5nZShlLnRhcmdldC52YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUuZmllbGRzLmRlbGl2ZXJ5LnR5cGUub3B0aW9ucy5tYXAoKG8sIGlkeCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNZW51SXRlbSBrZXk9e2Ake28udmFsdWV9LSR7aWR4fWB9IHZhbHVlPXtvLnZhbHVlfT57IG8udmFsdWUgfTwvTWVudUl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0Zvcm1Db250cm9sPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IDxkaXY+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUud2ViX3ZlcnNpb24gPT0gMTBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgdGhpcy5zdGF0ZS53ZWJfdmVyc2lvbiA9PSAxM1xuICAgICAgICAgICAgICAgICAgICAgICAgICB8fCB0aGlzLnN0YXRlLndlYl92ZXJzaW9uID09IDE1XG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkIGl0ZW0geHM9ezEyfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGb3JtQ29udHJvbCBmdWxsV2lkdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbnB1dExhYmVsPnsgdGhpcy5zdGF0ZS5maWVsZHMucGlja3VwLnRpdGxlIH08L0lucHV0TGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbElkPSdwaWNrdXAtc2VsZWN0LWxhYmVsJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSdwaWNrdXAtc2VsZWN0J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yPXt0aGlzLnN0YXRlLmZpZWxkcy5waWNrdXAuZXJyb3J9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ9e3RoaXMuc3RhdGUuZmllbGRzLnBpY2t1cC5yZXF1aXJlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dGhpcy5zdGF0ZS5maWVsZHMucGlja3VwLnZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXt0aGlzLnN0YXRlLmZpZWxkcy5waWNrdXAudGl0bGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT0nc21hbGwnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZS5maWVsZHMucGlja3VwLm9uQ2hhbmdlKGUudGFyZ2V0LnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZS5maWVsZHMucGlja3VwLnR5cGUub3B0aW9ucy5tYXAoKG8sIGlkeCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNZW51SXRlbSBrZXk9e2Ake28udmFsdWV9LSR7aWR4fWB9IHZhbHVlPXtvLnZhbHVlfT57IG8udmFsdWUgfTwvTWVudUl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0Zvcm1Db250cm9sPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IDxkaXY+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA8R3JpZCBpdGVtIHhzPXsxMn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxUZXh0RmllbGRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdWxsV2lkdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aWxpbmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcj17dGhpcy5zdGF0ZS5maWVsZHMuY29tbWVudHMuZXJyb3J9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ9e3RoaXMuc3RhdGUuZmllbGRzLmNvbW1lbnRzLnJlcXVpcmVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9J3NtYWxsJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXt0aGlzLnN0YXRlLmZpZWxkcy5jb21tZW50cy50aXRsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwZXJUZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgJiYgdGhpcy5zdGF0ZS5maWVsZHMuY29tbWVudHMuZXJyb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnN0YXRlLmZpZWxkcy5jb21tZW50cy5mZWVkYmFja1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICcnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXt0aGlzLnN0YXRlLmZpZWxkcy5jb21tZW50cy52YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZS50YXJnZXQudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlLmZpZWxkcy5jb21tZW50cy5vbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkIGl0ZW0geHM9ezEyfSBzeD17eyBwYWRkaW5nVG9wOiAnNXB4JywgYmdjb2xvcjogJ3JnYmEoMCwwLDAsLjA1JyB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWQgY29udGFpbmVyIHNwYWNpbmc9ezJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkIGl0ZW0geHM9IHs0fSBzeD17eyBkaXNwbGF5OiAnZmxleCcsIGp1c3RpZnlDb250ZW50OiAnZmxleC1zdGFydCcgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT0nc3VibWl0J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PSdjb250YWluZWQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPSdwcmltYXJ5J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpZWxkcyA9IHRoaXMuc3RhdGUuZmllbGRzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzdWJtaXQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvcHkgPSB7IC4uLnRoaXMuc3RhdGUgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGZpZWxkIGluIGZpZWxkcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZpZWxkc1tmaWVsZF0uZXJyb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgKEFycmF5LmlzQXJyYXkoZmllbGRzW2ZpZWxkXSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgIWZpZWxkc1tmaWVsZF1bMF1bYHByZXNjcmlwdGlvbl8wYF0udmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1Ym1pdCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICggWzEwLCAxMywgMTVdLmluY2x1ZGVzKHRoaXMuc3RhdGUud2ViX3ZlcnNpb24pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIGZpZWxkID09ICdwaWNrdXAnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIGZpZWxkc1tmaWVsZF0udmFsdWUgPT0gJy0tIFNlbGVjdCBPbmUgLS0nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1Ym1pdCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3B5LmZpZWxkcy5waWNrdXAuZXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKGNvcHkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3VibWl0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN1Ym1pdEZvcm0oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1Ym1pdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkIGl0ZW0geHM9ezR9IHN4PXt7IGRpc3BsYXk6ICdmbGV4JywganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9J3Jlc2V0J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PSdjb250YWluZWQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPSdlcnJvcidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNsZWFyRmllbGRzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc2V0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17NH0gc3g9e3sgZGlzcGxheTogJ2ZsZXgnLCBqdXN0aWZ5Q29udGVudDogJ2ZsZXgtZW5kJyB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPSdjYW5jZWwnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9J291dGxpbmVkJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJGaWVsZHMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZVZpZXcoJ21vYmlsZV9zaXRlJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbmNlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICAgICAgICA8L1BhcGVyPlxuICAgICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgICAgKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnc3VjY2Vzc19zdWJtaXQnOlxuICAgICAgICAgIGJvZHkgPSAoXG4gICAgICAgICAgICA8Q29udGFpbmVyIG1heFdpZHRoPSdsZyc+XG4gICAgICAgICAgICAgIHsgYnJlYWRjcnVtYnMgfVxuICAgICAgICAgICAgICA8UGFwZXIgdmFyaWFudD0nb3V0bGluZWQnPlxuICAgICAgICAgICAgICAgIDxHcmlkIGNvbnRhaW5lciBzcGFjaW5nPXsyfT5cbiAgICAgICAgICAgICAgICAgIDxHcmlkIGl0ZW0geHM9ezEyfSBzeD17eyBkaXNwbGF5OiAnZmxleCcsIGp1c3RpZnlDb250ZW50OiAnZmxleC1zdGFydCcgfX0+XG4gICAgICAgICAgICAgICAgICAgIDxUeXBvZ3JhcGh5IHZhcmlhbnQ9J2g2JyBzeD17eyBwYWRkaW5nOiAnNXB4JyB9fT5GaWxsIHN1Ym1pdHRlZCBzdWNjZXNzZnVsbHkhPC9UeXBvZ3JhcGh5PlxuICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17MTJ9IHN4PXt7IGRpc3BsYXk6ICdmbGV4JywganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInIH19PlxuICAgICAgICAgICAgICAgICAgICA8dGFibGU+XG4gICAgICAgICAgICAgICAgICAgICAgPHRib2R5PlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+UGF0aWVudDo8L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+eyB0aGlzLnN0YXRlLmZpZWxkcy5maXJzdF9uYW1lLnZhbHVlICsgJyAnICsgdGhpcy5zdGF0ZS5maWVsZHMubGFzdF9uYW1lLnZhbHVlIH08L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlBob25lIE51bWJlcjo8L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+eyB0aGlzLnN0YXRlLmZpZWxkcy5waG9uZV9udW1iZXIudmFsdWUgfTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAhdGhpcy5zdGF0ZS5maWVsZHMuZW1haWwudmFsdWUgPyAnJyA6IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+RW1haWw6PC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57IHRoaXMuc3RhdGUuZmllbGRzLmVtYWlsLnZhbHVlIH08L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIXRoaXMuc3RhdGUuZmllbGRzLmZheF9udW1iZXIudmFsdWUgPyAnJyA6IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+RmF4IE51bWJlcjo8L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnsgdGhpcy5zdGF0ZS5maWVsZHMuZmF4X251bWJlci52YWx1ZSB9PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5QcmVzY3JpcHRpb25zOjwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByZXNjcmlwdGlvbkRhdGEoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlLndlYl92ZXJzaW9uID09IDEwXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHx8IHRoaXMuc3RhdGUud2ViX3ZlcnNpb24gPT0gMTNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgdGhpcy5zdGF0ZS53ZWJfdmVyc2lvbiA9PSAxNVxuICAgICAgICAgICAgICAgICAgICAgICAgICA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+RGVsaXZlcnk6PC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57IHRoaXMuc3RhdGUuZmllbGRzLmRlbGl2ZXJ5LnZhbHVlIH08L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlLndlYl92ZXJzaW9uID09IDEwXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHx8IHRoaXMuc3RhdGUud2ViX3ZlcnNpb24gPT0gMTNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgdGhpcy5zdGF0ZS53ZWJfdmVyc2lvbiA9PSAxNVxuICAgICAgICAgICAgICAgICAgICAgICAgICA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+UGlja3VwOjwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+eyB0aGlzLnN0YXRlLmZpZWxkcy5waWNrdXAudmFsdWUgfTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6ICcnXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICF0aGlzLnN0YXRlLmZpZWxkcy5jb21tZW50cy52YWx1ZSA/ICcnIDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5Db21tZW50czo8L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnsgdGhpcy5zdGF0ZS5maWVsZHMuY29tbWVudHMudmFsdWUgfTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+XG4gICAgICAgICAgICAgICAgICAgIDwvdGFibGU+XG4gICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgICA8R3JpZCBpdGVtIHhzPXsxMn0gc3g9e3sgZGlzcGxheTogJ2ZsZXgnLCBqdXN0aWZ5Q29udGVudDogJ2ZsZXgtc3RhcnQnIH19PlxuICAgICAgICAgICAgICAgICAgICA8VHlwb2dyYXBoeSBzeD17eyBwYWRkaW5nOiAnNXB4JyB9fT5Xb3VsZCB5b3UgbGlrZSB0byBzdWJtaXQgYW5vdGhlciBmaWxsPzwvVHlwb2dyYXBoeT5cbiAgICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICAgIDxHcmlkIGl0ZW0geHM9ezEyfT5cbiAgICAgICAgICAgICAgICAgICAgPEdyaWQgY29udGFpbmVyIHNwYWNpbmc9ezJ9PlxuICAgICAgICAgICAgICAgICAgICAgIDxHcmlkIGl0ZW0geHM9ezZ9IHN4PXt7IGRpc3BsYXk6ICdmbGV4JywganVzdGlmeUNvbnRlbnQ6ICdmbGV4LXN0YXJ0JyB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3g9e3sgbWFyZ2luOiAnNXB4JyB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSdidXR0b24nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9J291dGxpbmVkJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj0ncHJpbWFyeSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNsZWFyRmllbGRzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VWaWV3KCdtb2JpbGVfc2l0ZScpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICBOb1xuICAgICAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICAgIDxHcmlkIGl0ZW0geHM9ezZ9IHN4PXt7IGRpc3BsYXk6ICdmbGV4JywganVzdGlmeUNvbnRlbnQ6ICdmbGV4LWVuZCcgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN4PXt7IG1hcmdpbjogJzVweCcgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0nYnV0dG9uJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PSdjb250YWluZWQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPSdwcmltYXJ5J1xuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJGaWVsZHMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZVZpZXcoJ3JlZmlsbF9yZXF1ZXN0Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFllc1xuICAgICAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICA8L1BhcGVyPlxuICAgICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgICAgKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnaG91cnNfYW5kX2RpcmVjdGlvbnMnOlxuICAgICAgICAgIGJvZHkgPSAoXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IHBhZGRpbmc6ICc1cHgnIH19PlxuICAgICAgICAgICAgICB7IGJyZWFkY3J1bWJzIH1cbiAgICAgICAgICAgICAgPFR5cG9ncmFwaHkgdmFyaWFudD1cImg1XCI+U3RvcmUgSG91cnM8L1R5cG9ncmFwaHk+XG4gICAgICAgICAgICAgIDxUeXBvZ3JhcGh5Pnt0aGlzLnN0YXRlLnBoYXJtYWN5X2hvdXJzXG4gICAgICAgICAgICAgID8gdGhpcy5zdGF0ZS5waGFybWFjeV9ob3Vyc1xuICAgICAgICAgICAgICA6ICdObyBzdG9yZSBob3VycyBhdmFpbGFibGUnfTwvVHlwb2dyYXBoeT5cbiAgICAgICAgICAgICAgPGhyIC8+XG4gICAgICAgICAgICAgIDxUeXBvZ3JhcGh5IHZhcmlhbnQ9XCJoNVwiPkRpcmVjdGlvbnM8L1R5cG9ncmFwaHk+XG4gICAgICAgICAgICAgIDxUeXBvZ3JhcGh5Pnt0aGlzLnN0YXRlLnN0b3JlX2FkZHJlc3N9PC9UeXBvZ3JhcGh5PlxuICAgICAgICAgICAgICA8VHlwb2dyYXBoeT57dGhpcy5zdGF0ZS5zdG9yZV9hZGRyZXNzX3R3b308L1R5cG9ncmFwaHk+XG4gICAgICAgICAgICAgIDxUeXBvZ3JhcGh5Pnt0aGlzLnN0YXRlLmNpdHl9LCB7dGhpcy5zdGF0ZS5zdGF0ZX0ge3RoaXMuc3RhdGUuemlwfTwvVHlwb2dyYXBoeT5cbiAgICAgICAgICAgICAgPFR5cG9ncmFwaHk+e3RoaXMuc3RhdGUucGhvbmVfbnVtYmVyfTwvVHlwb2dyYXBoeT5cbiAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBjb29yZF9zdHJpbmcgPSB0aGlzLmdldEdvb2dsZU1hcHNVUkwoKTtcbiAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0TmF2aWdhdGlvbihjb29yZF9zdHJpbmcpO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgIGZvbnRTaXplOiAnMTZweCcsXG4gICAgICAgICAgICAgICAgICBjb2xvcjogJ2JsdWUnLFxuICAgICAgICAgICAgICAgICAgY3Vyc29yOiAncG9pbnRlcicsXG4gICAgICAgICAgICAgICAgICBib3JkZXJCb3R0b206ICcxcHggc29saWQgYmx1ZScsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIEdldCBEaXJlY3Rpb25zXG4gICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICF0aGlzLnN0YXRlLmZhY2Vib29rX2xpbmtcbiAgICAgICAgICAgICAgICA/ICcnXG4gICAgICAgICAgICAgICAgOiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8YnIvPlxuICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdGhpcy5zdGF0ZS5mYWNlYm9va19saW5rO1xuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTaXplOiAnMTZweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2JsdWUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiAncG9pbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJCb3R0b206ICcxcHggc29saWQgYmx1ZScsXG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIEZhY2Vib29rIExpbmtcbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDxociAvPlxuICAgICAgICAgICAgICA8R3JpZCBjb250YWluZXIgc3BhY2luZz17Mn0+XG4gICAgICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17MTJ9PlxuICAgICAgICAgICAgICAgICAgPE1hcGJveEdMXG4gICAgICAgICAgICAgICAgICAgIGFjY2Vzc1Rva2VuPXttYXBib3hUb2tlbn1cbiAgICAgICAgICAgICAgICAgICAgYWRkcmVzc2VzPXt0aGlzLnN0YXRlLnBoYXJtX2Nvb3Jkc31cbiAgICAgICAgICAgICAgICAgICAgem9vbT17MTV9XG4gICAgICAgICAgICAgICAgICAgIHByb2plY3Rpb249eydnbG9iZSd9XG4gICAgICAgICAgICAgICAgICAgIGFsbG93RnVsbFNjcmVlbj17dHJ1ZX1cbiAgICAgICAgICAgICAgICAgICAgYWxsb3dOYXZpZ2F0aW9uPXt0cnVlfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8QXBwQmFyIHBvc2l0aW9uPVwic3RhdGljXCI+XG4gICAgICAgICAgPFRvb2xiYXI+XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRoaXMuc3RhdGUubG9nbyA/IChcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz17dGhpcy5zdGF0ZS5sb2dvfSBzdHlsZT17eyBtYXJnaW46ICc1cHgnLCBib3JkZXJSYWRpdXM6ICc1cHgnLCBoZWlnaHQ6ICc1cmVtJyB9fS8+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPFR5cG9ncmFwaHk+eyB0aGlzLnN0YXRlLnN0b3JlX25hbWUgfTwvVHlwb2dyYXBoeT5cbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvVG9vbGJhcj5cbiAgICAgICAgPC9BcHBCYXI+XG4gICAgICAgIHtib2R5fVxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBNb2JpbGVTaXRlO1xuIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEhhc2hSb3V0ZXIsIFJvdXRlcywgUm91dGUgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCBNb2JpbGVTaXRlIGZyb20gJy4vcGFnZXMvTW9iaWxlU2l0ZS5qcyc7XG5pbXBvcnQgeyBUaGVtZVByb3ZpZGVyLCBjcmVhdGVUaGVtZSB9IGZyb20gJ0BtdWkvbWF0ZXJpYWwvc3R5bGVzJztcbmltcG9ydCB7IENzc0Jhc2VsaW5lIH0gZnJvbSAnQG11aS9tYXRlcmlhbCc7XG5cbmNsYXNzIEFwcCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gICNkYXJrTW9kZSA9IG51bGw7XG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICBlcnJvcnM6IG51bGwsXG4gICAgICB0aGVtZTogJ2xpZ2h0JyxcbiAgICB9O1xuICAgIHRoaXMudGhlbWVMaWdodCA9IGNyZWF0ZVRoZW1lKHtcbiAgICAgIHBhbGV0dGU6IHtcbiAgICAgICAgbW9kZTogJ2xpZ2h0JyxcbiAgICAgICAgYmFja2dyb3VuZDoge1xuICAgICAgICAgIGRlZmF1bHQ6ICcjZWZlZmVmJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgdGhpcy50aGVtZURhcmsgPSBjcmVhdGVUaGVtZSh7XG4gICAgICBwYWxldHRlOiB7XG4gICAgICAgIG1vZGU6ICdkYXJrJyxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgdGhpcy51cGRhdGVUaGVtZSA9IHRoaXMudXBkYXRlVGhlbWUuYmluZCh0aGlzKTtcbiAgICB0aGlzLnByZWZlcnNEYXJrTW9kZSA9IHRoaXMucHJlZmVyc0RhcmtNb2RlLmJpbmQodGhpcyk7XG4gIH1cblxuICBhc3luYyBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICB0aGlzLnByZWZlcnNEYXJrTW9kZSgpO1xuICB9XG5cbiAgYXN5bmMgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgaWYgKHRoaXMuI2RhcmtNb2RlKSB7XG4gICAgICB0aGlzLiNkYXJrTW9kZS5yZW1vdmVFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCB0aGlzLnVwZGF0ZVRoZW1lKTtcbiAgICAgIHRoaXMuI2RhcmtNb2RlID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwcmVmZXJzRGFya01vZGUoKSB7XG4gICAgdGhpcy51cGRhdGVUaGVtZSgpO1xuICAgIHRoaXMuI2RhcmtNb2RlID0gd2luZG93Lm1hdGNoTWVkaWEoJyhwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyayknKTtcbiAgICB0aGlzLiNkYXJrTW9kZS5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCB0aGlzLnVwZGF0ZVRoZW1lKTtcbiAgfVxuXG4gIHVwZGF0ZVRoZW1lKGUgPSBudWxsKSB7XG4gICAgaWYgKCFlKSB7XG4gICAgICBlID0gd2luZG93Lm1hdGNoTWVkaWEoJyhwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyayknKTtcbiAgICB9XG4gICAgY29uc3QgdGhlbWUgPSBlLm1hdGNoZXMgPyAnZGFyaycgOiAnbGlnaHQnO1xuICAgIHRoaXMuc2V0U3RhdGUoeyB0aGVtZSB9KTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFRoZW1lUHJvdmlkZXIgdGhlbWU9e3RoaXMuc3RhdGUudGhlbWUgPT09ICdkYXJrJyA/IHRoaXMudGhlbWVEYXJrIDogdGhpcy50aGVtZUxpZ2h0fT5cbiAgICAgICAgPENzc0Jhc2VsaW5lIC8+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPEhhc2hSb3V0ZXI+XG4gICAgICAgICAgICA8Um91dGVzPlxuICAgICAgICAgICAgICA8Um91dGUgcGF0aD0nLycgZWxlbWVudD17PE1vYmlsZVNpdGUgdGhlbWVNb2RlPXt0aGlzLnN0YXRlLnRoZW1lfS8+fSAvPlxuICAgICAgICAgICAgICA8Um91dGUgcGF0aD0nbW9iaWxlc2l0ZS8nIGVsZW1lbnQ9ezxNb2JpbGVTaXRlIHRoZW1lTW9kZT17dGhpcy5zdGF0ZS50aGVtZX0vPn0gLz5cbiAgICAgICAgICAgICAgPFJvdXRlIHBhdGg9J20vOnRhZycgZWxlbWVudD17PE1vYmlsZVNpdGUgdGhlbWVNb2RlPXt0aGlzLnN0YXRlLnRoZW1lfSAvPn0gLz5cbiAgICAgICAgICAgIDwvUm91dGVzPlxuICAgICAgICAgIDwvSGFzaFJvdXRlcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L1RoZW1lUHJvdmlkZXI+XG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBBcHA7XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3JlYXRlUm9vdCB9IGZyb20gJ3JlYWN0LWRvbS9jbGllbnQnO1xuaW1wb3J0IEFwcCBmcm9tICcuL0FwcCc7XG5cbmNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWluZXInKTtcbmNvbnN0IHJvb3QgPSBjcmVhdGVSb290KGNvbnRhaW5lcik7XG5yb290LnJlbmRlcig8QXBwIC8+KTtcbiIsIi8vIFRoZSBtb2R1bGUgY2FjaGVcbnZhciBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18gPSB7fTtcblxuLy8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbmZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG5cdHZhciBjYWNoZWRNb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdO1xuXHRpZiAoY2FjaGVkTW9kdWxlICE9PSB1bmRlZmluZWQpIHtcblx0XHRyZXR1cm4gY2FjaGVkTW9kdWxlLmV4cG9ydHM7XG5cdH1cblx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcblx0dmFyIG1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF0gPSB7XG5cdFx0Ly8gbm8gbW9kdWxlLmlkIG5lZWRlZFxuXHRcdC8vIG5vIG1vZHVsZS5sb2FkZWQgbmVlZGVkXG5cdFx0ZXhwb3J0czoge31cblx0fTtcblxuXHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cblx0X193ZWJwYWNrX21vZHVsZXNfX1ttb2R1bGVJZF0uY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cblx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcblx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xufVxuXG4vLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuX193ZWJwYWNrX3JlcXVpcmVfXy5tID0gX193ZWJwYWNrX21vZHVsZXNfXztcblxuIiwiLy8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbl9fd2VicGFja19yZXF1aXJlX18ubiA9IChtb2R1bGUpID0+IHtcblx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG5cdFx0KCkgPT4gKG1vZHVsZVsnZGVmYXVsdCddKSA6XG5cdFx0KCkgPT4gKG1vZHVsZSk7XG5cdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsIHsgYTogZ2V0dGVyIH0pO1xuXHRyZXR1cm4gZ2V0dGVyO1xufTsiLCIvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9ucyBmb3IgaGFybW9ueSBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSAoZXhwb3J0cywgZGVmaW5pdGlvbikgPT4ge1xuXHRmb3IodmFyIGtleSBpbiBkZWZpbml0aW9uKSB7XG5cdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKGRlZmluaXRpb24sIGtleSkgJiYgIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBrZXkpKSB7XG5cdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywga2V5LCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZGVmaW5pdGlvbltrZXldIH0pO1xuXHRcdH1cblx0fVxufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSAob2JqLCBwcm9wKSA9PiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCkpIiwiLy8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5yID0gKGV4cG9ydHMpID0+IHtcblx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG5cdH1cblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbn07IiwiLy8gbm8gYmFzZVVSSVxuXG4vLyBvYmplY3QgdG8gc3RvcmUgbG9hZGVkIGFuZCBsb2FkaW5nIGNodW5rc1xuLy8gdW5kZWZpbmVkID0gY2h1bmsgbm90IGxvYWRlZCwgbnVsbCA9IGNodW5rIHByZWxvYWRlZC9wcmVmZXRjaGVkXG4vLyBbcmVzb2x2ZSwgcmVqZWN0LCBQcm9taXNlXSA9IGNodW5rIGxvYWRpbmcsIDAgPSBjaHVuayBsb2FkZWRcbnZhciBpbnN0YWxsZWRDaHVua3MgPSB7XG5cdDE3OTogMFxufTtcblxuLy8gbm8gY2h1bmsgb24gZGVtYW5kIGxvYWRpbmdcblxuLy8gbm8gcHJlZmV0Y2hpbmdcblxuLy8gbm8gcHJlbG9hZGVkXG5cbi8vIG5vIEhNUlxuXG4vLyBubyBITVIgbWFuaWZlc3RcblxuX193ZWJwYWNrX3JlcXVpcmVfXy5PLmogPSAoY2h1bmtJZCkgPT4gKGluc3RhbGxlZENodW5rc1tjaHVua0lkXSA9PT0gMCk7XG5cbi8vIGluc3RhbGwgYSBKU09OUCBjYWxsYmFjayBmb3IgY2h1bmsgbG9hZGluZ1xudmFyIHdlYnBhY2tKc29ucENhbGxiYWNrID0gKHBhcmVudENodW5rTG9hZGluZ0Z1bmN0aW9uLCBkYXRhKSA9PiB7XG5cdHZhciBbY2h1bmtJZHMsIG1vcmVNb2R1bGVzLCBydW50aW1lXSA9IGRhdGE7XG5cdC8vIGFkZCBcIm1vcmVNb2R1bGVzXCIgdG8gdGhlIG1vZHVsZXMgb2JqZWN0LFxuXHQvLyB0aGVuIGZsYWcgYWxsIFwiY2h1bmtJZHNcIiBhcyBsb2FkZWQgYW5kIGZpcmUgY2FsbGJhY2tcblx0dmFyIG1vZHVsZUlkLCBjaHVua0lkLCBpID0gMDtcblx0aWYoY2h1bmtJZHMuc29tZSgoaWQpID0+IChpbnN0YWxsZWRDaHVua3NbaWRdICE9PSAwKSkpIHtcblx0XHRmb3IobW9kdWxlSWQgaW4gbW9yZU1vZHVsZXMpIHtcblx0XHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhtb3JlTW9kdWxlcywgbW9kdWxlSWQpKSB7XG5cdFx0XHRcdF9fd2VicGFja19yZXF1aXJlX18ubVttb2R1bGVJZF0gPSBtb3JlTW9kdWxlc1ttb2R1bGVJZF07XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGlmKHJ1bnRpbWUpIHZhciByZXN1bHQgPSBydW50aW1lKF9fd2VicGFja19yZXF1aXJlX18pO1xuXHR9XG5cdGlmKHBhcmVudENodW5rTG9hZGluZ0Z1bmN0aW9uKSBwYXJlbnRDaHVua0xvYWRpbmdGdW5jdGlvbihkYXRhKTtcblx0Zm9yKDtpIDwgY2h1bmtJZHMubGVuZ3RoOyBpKyspIHtcblx0XHRjaHVua0lkID0gY2h1bmtJZHNbaV07XG5cdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKGluc3RhbGxlZENodW5rcywgY2h1bmtJZCkgJiYgaW5zdGFsbGVkQ2h1bmtzW2NodW5rSWRdKSB7XG5cdFx0XHRpbnN0YWxsZWRDaHVua3NbY2h1bmtJZF1bMF0oKTtcblx0XHR9XG5cdFx0aW5zdGFsbGVkQ2h1bmtzW2NodW5rSWRdID0gMDtcblx0fVxuXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXy5PKHJlc3VsdCk7XG59XG5cbnZhciBjaHVua0xvYWRpbmdHbG9iYWwgPSBzZWxmW1wid2VicGFja0NodW5rc3JzcmZsX3JlYWN0XCJdID0gc2VsZltcIndlYnBhY2tDaHVua3Nyc3JmbF9yZWFjdFwiXSB8fCBbXTtcbmNodW5rTG9hZGluZ0dsb2JhbC5mb3JFYWNoKHdlYnBhY2tKc29ucENhbGxiYWNrLmJpbmQobnVsbCwgMCkpO1xuY2h1bmtMb2FkaW5nR2xvYmFsLnB1c2ggPSB3ZWJwYWNrSnNvbnBDYWxsYmFjay5iaW5kKG51bGwsIGNodW5rTG9hZGluZ0dsb2JhbC5wdXNoLmJpbmQoY2h1bmtMb2FkaW5nR2xvYmFsKSk7IiwiLy8gc3RhcnR1cFxuLy8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4vLyBUaGlzIGVudHJ5IG1vZHVsZSBkZXBlbmRzIG9uIG90aGVyIGxvYWRlZCBjaHVua3MgYW5kIGV4ZWN1dGlvbiBuZWVkIHRvIGJlIGRlbGF5ZWRcbnZhciBfX3dlYnBhY2tfZXhwb3J0c19fID0gX193ZWJwYWNrX3JlcXVpcmVfXy5PKHVuZGVmaW5lZCwgWzU5Miw0NjUsMTU4LDc1Niw0OTAsMzExLDE1MSw4NDUsMzk0LDE0M10sICgpID0+IChfX3dlYnBhY2tfcmVxdWlyZV9fKDY5OTEpKSlcbl9fd2VicGFja19leHBvcnRzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fLk8oX193ZWJwYWNrX2V4cG9ydHNfXyk7XG4iXSwibmFtZXMiOlsiZGVmZXJyZWQiLCJsZWFmUHJvdG90eXBlcyIsImdldFByb3RvIiwiTWFwYm94R0wiLCJfQ29tcG9uZW50IiwiX2luaGVyaXRzIiwiX3N1cGVyIiwicHJvcHMiLCJfdGhpcyIsIl9jbGFzc0NhbGxDaGVjayIsIl9kZWZpbmVQcm9wZXJ0eSIsIl9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQiLCJjYWxsIiwiaW5zdHJ1Y3Rpb25zUmVmIiwiUmVhY3QiLCJtYXBSZWYiLCJzdGF0ZSIsInZpZXciLCJlcnJvciIsIm1hcmtlcnMiLCJpbml0TWFwIiwiYmluZCIsImdlb2NvZGVNYXJrZXJzIiwiZ2V0RGlyZWN0aW9ucyIsImtleSIsInZhbHVlIiwiX3RoaXMyIiwicmVzdWx0cyIsInBhcmFtcyIsIlVSTFNlYXJjaFBhcmFtcyIsImFwcGVuZCIsInRoaXMiLCJhY2Nlc3NUb2tlbiIsIl9zdGVwIiwiY250IiwiX2l0ZXJhdG9yIiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJhZGRyZXNzZXMiLCJzIiwibiIsImRvbmUiLCJhZGRyZXNzIiwidXJsIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwidG9TdHJpbmciLCJ3aW5kb3ciLCJmZXRjaCIsInRoZW4iLCJyZXNwIiwianNvbiIsImRhdGEiLCJwdXNoIiwibGVuZ3RoIiwic2V0U3RhdGUiLCJlIiwiY29uc29sZSIsImxvZyIsImVyciIsImYiLCJfdGhpczMiLCJmcm9tQ29vcmRpbmF0ZXMiLCJqb2luIiwidCIsInRvQ29vcmRpbmF0ZXMiLCJiYXNlVXJsIiwiY29uY2F0IiwiZGlyZWN0aW9ucyIsInN0YWNrIiwiX3RoaXM0IiwibWFwYm94Z2wiLCJvcHRpb25zIiwiZ2VvbG9jYXRlIiwiZnVsbHNjcmVlbiIsImNvbnRhaW5lciIsImN1cnJlbnQiLCJpZCIsInN0eWxlIiwiY2VudGVyIiwiZmVhdHVyZXMiLCJ6b29tIiwicHJvamVjdGlvbiIsIm1hcCIsImdlb0xvY2F0ZSIsInBvc2l0aW9uT3B0aW9ucyIsImVuYWJsZUhpZ2hBY2N1cmFjeSIsInNob3dVc2VyTG9jYXRpb24iLCJ0cmFja1VzZXJMb2NhdGlvbiIsInNob3dVc2VySGVhZGluZyIsImFkZENvbnRyb2wiLCJhbGxvd0Z1bGxTY3JlZW4iLCJhbGxvd05hdmlnYXRpb24iLCJlbCIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTGlzdCIsImFkZCIsInNldEF0dHJpYnV0ZSIsImlubmVyVGV4dCIsInBsYWNlX25hbWUiLCJtIiwic2V0TG5nTGF0IiwiZ2VvbWV0cnkiLCJjb29yZGluYXRlcyIsInNldFBvcHVwIiwic2V0SFRNTCIsIm9uIiwic2V0Rm9nIiwidHJpZ2dlciIsIl9yb3V0ZSRsZWdzJCIsInJvdXRlIiwicm91dGVzIiwiZ2VvanNvbiIsInR5cGUiLCJwcm9wZXJ0aWVzIiwiaW5uZXJIVE1MIiwic3RlcHMiLCJsZWdzIiwic3RlcCIsIm1hbmV1dmVyIiwiaW5zdHJ1Y3Rpb24iLCJkdXJhdGlvbiIsIk1hdGgiLCJmbG9vciIsImdldFNvdXJjZSIsInNldERhdGEiLCJhZGRMYXllciIsInNvdXJjZSIsImxheW91dCIsInBhaW50IiwiX2kiLCJfbWFya2VycyIsImFkZFRvIiwiX3RoaXM1IiwicHJldlByb3BzIiwicHJldlN0YXRlIiwiX3RoaXM2IiwiY29tcG9uZW50IiwiY2xhc3NOYW1lIiwiZGlzcGxheSIsImp1c3RpZnlDb250ZW50IiwiaGVpZ2h0IiwibWluSGVpZ2h0Iiwib25DbGljayIsImV2dCIsInJlZiIsIm1heEhlaWdodCIsIm92ZXJmbG93IiwiQ29tcG9uZW50IiwiUHJvcFR5cGVzIiwiaXNSZXF1aXJlZCIsInRvQWRkcmVzcyIsIm9wdHMiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsImNvbnRleHQiLCJyZXNwb25zZVR5cGUiLCJsb2NhdGlvbiIsImhvc3RuYW1lIiwiaGVhZGVycyIsImF4aW9zIiwibWV0aG9kIiwidG9Mb3dlckNhc2UiLCJlbmRwb2ludCIsInJlc3BvbnNlIiwibWVzc2FnZSIsIkpTT04iLCJzdHJpbmdpZnkiLCJpbmNsdWRlcyIsInN1YnN0cmluZyIsIkVycm9yIiwiQ29udGFpbmVyIiwibWF4V2lkdGgiLCJHcmlkIiwiZGlyZWN0aW9uIiwiYWxpZ25JdGVtcyIsIml0ZW0iLCJzcmMiLCJUeXBvZ3JhcGh5IiwidmFyaWFudCIsInJldHVyblRvIiwiQnV0dG9uIiwid2lkdGgiLCJwcmV2ZW50RGVmYXVsdCIsInN0b3BQcm9wYWdhdGlvbiIsInByb3BUeXBlcyIsInN0cmluZyIsImZ1bmMiLCJfUmVhY3QkQ29tcG9uZW50IiwiTG9hZGluZyIsImJvZHkiLCJQYXBlciIsInBhZGRpbmciLCJtYXJnaW5Ub3AiLCJ4cyIsIkJveCIsInBhZGRpbmdUb3AiLCJwYWRkaW5nQm90dG9tIiwiQ2lyY3VsYXJQcm9ncmVzcyIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJyIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJvIiwiZGVmaW5lUHJvcGVydHkiLCJpIiwiU3ltYm9sIiwiYSIsIml0ZXJhdG9yIiwiYyIsImFzeW5jSXRlcmF0b3IiLCJ1IiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJ3cmFwIiwiR2VuZXJhdG9yIiwiY3JlYXRlIiwiQ29udGV4dCIsIm1ha2VJbnZva2VNZXRob2QiLCJ0cnlDYXRjaCIsImFyZyIsImgiLCJsIiwieSIsIkdlbmVyYXRvckZ1bmN0aW9uIiwiR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUiLCJwIiwiZCIsImdldFByb3RvdHlwZU9mIiwidiIsInZhbHVlcyIsImciLCJkZWZpbmVJdGVyYXRvck1ldGhvZHMiLCJmb3JFYWNoIiwiX2ludm9rZSIsIkFzeW5jSXRlcmF0b3IiLCJpbnZva2UiLCJfdHlwZW9mIiwiX19hd2FpdCIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwiZGVsZWdhdGUiLCJtYXliZUludm9rZURlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJUeXBlRXJyb3IiLCJyZXN1bHROYW1lIiwibmV4dCIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJyZXNldFRyeUVudHJ5IiwiY29tcGxldGlvbiIsInJlc2V0IiwiaXNOYU4iLCJkaXNwbGF5TmFtZSIsImlzR2VuZXJhdG9yRnVuY3Rpb24iLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJtYXJrIiwic2V0UHJvdG90eXBlT2YiLCJfX3Byb3RvX18iLCJhd3JhcCIsImFzeW5jIiwia2V5cyIsInJldmVyc2UiLCJwb3AiLCJwcmV2IiwiY2hhckF0Iiwic2xpY2UiLCJzdG9wIiwicnZhbCIsImhhbmRsZSIsImNvbXBsZXRlIiwiZmluaXNoIiwiZGVsZWdhdGVZaWVsZCIsImFzeW5jR2VuZXJhdG9yU3RlcCIsImdlbiIsIl9uZXh0IiwiX3Rocm93IiwiaW5mbyIsIl9hc3luY1RvR2VuZXJhdG9yIiwiZm4iLCJzZWxmIiwiYXJncyIsImFyZ3VtZW50cyIsImFwcGx5IiwidW5kZWZpbmVkIiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwibWluTGVuIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJBcnJheSIsImZyb20iLCJ0ZXN0IiwiYXJyIiwibGVuIiwiYXJyMiIsIm93bktleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJfb2JqZWN0U3ByZWFkIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJfZGVmaW5lUHJvcGVydGllcyIsInRhcmdldCIsImRlc2NyaXB0b3IiLCJfdG9Qcm9wZXJ0eUtleSIsIl9zZXRQcm90b3R5cGVPZiIsIlJlZmVyZW5jZUVycm9yIiwiX2dldFByb3RvdHlwZU9mIiwib2JqIiwidG9QcmltaXRpdmUiLCJTdHJpbmciLCJfdG9QcmltaXRpdmUiLCJNb2JpbGVTaXRlIiwic3ViQ2xhc3MiLCJzdXBlckNsYXNzIiwiQ29uc3RydWN0b3IiLCJwcm90b1Byb3BzIiwiX2dldERhdGEiLCJEZXJpdmVkIiwiaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJzaGFtIiwiUHJveHkiLCJCb29sZWFuIiwidmFsdWVPZiIsIl9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJyZXN1bHQiLCJTdXBlciIsIk5ld1RhcmdldCIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuIiwiaW5zdGFuY2UiLCJlcnJvcnMiLCJsb2FkZWQiLCJnZXRTdG9yZU51bWJlciIsImhhc2giLCJnZXRIYXNoIiwic3RvcmVfbmFtZSIsImxvZ28iLCJzdG9yZV9hZGRyZXNzIiwic3RvcmVfYWRkcmVzc190d28iLCJwaGFybWFjeV9waG9uZSIsInBoYXJtYWN5X3NtcyIsImNpdHkiLCJ6aXAiLCJlbWFpbCIsIndlYnNpdGUiLCJ3ZWJfdmVyc2lvbiIsImZhY2Vib29rX2xpbmsiLCJwaGFybWFjeV9ob3VycyIsImJ0bl9jb3VudCIsInBoYXJtX2Nvb3JkcyIsInZhbGlkIiwiZXJyb3JNZXNzYWdlcyIsImZpZWxkcyIsIm9wZW4iLCJwYWdlcyIsImljb24iLCJNZWRpY2F0aW9uSWNvbiIsIkNvbnRhY3RzSWNvbiIsIkxvY2FsVGF4aUljb24iLCJpbm5lcldpZHRoIiwiaW5uZXJIZWlnaHQiLCJQaG9uZUluVGFsa0ljb24iLCJOYXZpZ2F0aW9uSWNvbiIsImZpcnN0X25hbWUiLCJ0aXRsZSIsInR5cGVuYW1lIiwicmVxdWlyZWQiLCJvbkNoYW5nZSIsImNvcHkiLCJmZWVkYmFjayIsImZ1bGx3aWR0aCIsImxhc3RfbmFtZSIsInBob25lX251bWJlciIsImZheF9udW1iZXIiLCJwcmVzY3JpcHRpb25zIiwicHJlc2NyaXB0aW9uXzAiLCJpZHgiLCJkZWxpdmVyeSIsImRpc2FibGVkIiwiTmFtZSIsInBpY2t1cCIsImNvbW1lbnRzIiwiY2hhbmdlVmlldyIsImNsZWFyRmllbGRzIiwiZ2V0RnVsbEF1dGgiLCJnZXRSeE51bWJlciIsImFkZENvbnRhY3QiLCJlbnRpdHkiLCJjb25zdHJ1Y3RYTUxEb2N1bWVudCIsInN1Ym1pdEZvcm0iLCJpc01vYmlsZSIsImFkZFJYTnVtYmVyIiwiZ2V0RGF0YSIsImxvYWQiLCJnZXRHb29nbGVNYXBzVVJMIiwiZG93bmxvYWRUb0ZpbGUiLCJnZXROYXZpZ2F0aW9uIiwicHJlc2NyaXB0aW9uRGF0YSIsInNlYXJjaCIsImFyeSIsInBhdGhuYW1lIiwic3BsaXQiLCJwcmVzY3JpcHRpb25fdmFsdWVzIiwicmVwbGFjZSIsImNvbnRlbnQiLCJmaWxlbmFtZSIsImNvbnRlbnRfdHlwZSIsImJsb2IiLCJCbG9iIiwiVVJMIiwiY3JlYXRlT2JqZWN0VVJMIiwiZG93bmxvYWQiLCJocmVmIiwiYXBwZW5kQ2hpbGQiLCJjbGljayIsInJlbW92ZUNoaWxkIiwiYWRkcmVzczEiLCJhZGRyZXNzMiIsInBob25lIiwic21zIiwidHJpbSIsIm5hdmlnYXRvciIsInVzZXJBZ2VudCIsIl9sZW4iLCJfa2V5IiwiZG9jIiwiZW50aXR5TmFtZSIsImV4dHJhIiwibm9kZSIsImFsbG93QXJyYXlMaWtlIiwiaXQiLCJpc0FycmF5IiwiRiIsIl9lIiwibm9ybWFsQ29tcGxldGlvbiIsImRpZEVyciIsIl9lMiIsImNyZWF0ZVRleHROb2RlIiwiaW1wbGVtZW50YXRpb24iLCJjcmVhdGVEb2N1bWVudCIsInJvb3QiLCJkb2N1bWVudEVsZW1lbnQiLCJyeCIsIkRhdGUiLCJ0b0lTT1N0cmluZyIsInRvbW9ycm93IiwiZ2V0VGltZSIsImRhdGUiLCJob3VyIiwicnhOdW1iZXJzIiwibnVtYmVyIiwiX2FycmF5V2l0aG91dEhvbGVzIiwiaXRlciIsIl9pdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVTcHJlYWQiLCJfY2FsbGVlIiwiZGVmIiwiX2NvbnRleHQiLCJ0MCIsInQxIiwiaGFzT3duIiwidDIiLCJjb29yZF9zdHJpbmciLCJwbGF0Zm9ybSIsImluZGV4T2YiLCJ0YWciLCJhcGlDYWxsIiwiX3JlZiIsIl9jYWxsZWUyIiwiX2NvbnRleHQyIiwicGFyc2UiLCJzdG9yZV9ob3VycyIsIl94IiwiZ2V0RXJyb3JNZXNzYWdlIiwicmVmaWxsIiwiWE1MU2VyaWFsaXplciIsInNlcmlhbGl6ZVRvU3RyaW5nIiwiX3RoaXM3IiwiYnJlYWRjcnVtYnMiLCJmb3VuZCIsImZpbmQiLCJCcmVhZGNydW1icyIsInN4IiwiTGluayIsInVuZGVybGluZSIsImNvbG9yIiwiTGlzdCIsImlubmVyX2JveCIsIkxpc3RJdGVtQnV0dG9uIiwiZ2FwIiwidGV4dEFsaWduIiwiYmdjb2xvciIsImJvcmRlckJvdHRvbSIsImJvcmRlckNvbG9yIiwiX3RoaXM3JGFkZENvbnRhY3QiLCJmbGV4R3JvdyIsInNwYWNpbmciLCJUZXh0RmllbGQiLCJmdWxsV2lkdGgiLCJzaXplIiwibGFiZWwiLCJoZWxwZXJUZXh0IiwiRm9ybUNvbnRyb2wiLCJJbnB1dExhYmVsIiwiU2VsZWN0IiwibGFiZWxJZCIsIk1lbnVJdGVtIiwibXVsdGlsaW5lIiwic3VibWl0IiwiZmllbGQiLCJtYXJnaW4iLCJmb250U2l6ZSIsImN1cnNvciIsIkFwcEJhciIsInBvc2l0aW9uIiwiVG9vbGJhciIsImJvcmRlclJhZGl1cyIsInRoZW1lTW9kZSIsIl9jbGFzc1ByaXZhdGVGaWVsZFNldCIsInJlY2VpdmVyIiwicHJpdmF0ZU1hcCIsInNldCIsIl9jbGFzc0FwcGx5RGVzY3JpcHRvclNldCIsIl9jbGFzc0V4dHJhY3RGaWVsZERlc2NyaXB0b3IiLCJfY2xhc3NQcml2YXRlRmllbGRHZXQiLCJnZXQiLCJfY2xhc3NBcHBseURlc2NyaXB0b3JHZXQiLCJhY3Rpb24iLCJoYXMiLCJfZGFya01vZGUiLCJXZWFrTWFwIiwiQXBwIiwiX2NvbXBvbmVudFdpbGxVbm1vdW50IiwiX2NvbXBvbmVudERpZE1vdW50IiwicHJpdmF0ZUNvbGxlY3Rpb24iLCJfY2hlY2tQcml2YXRlUmVkZWNsYXJhdGlvbiIsInRoZW1lIiwidGhlbWVMaWdodCIsImNyZWF0ZVRoZW1lIiwicGFsZXR0ZSIsIm1vZGUiLCJiYWNrZ3JvdW5kIiwiZGVmYXVsdCIsInRoZW1lRGFyayIsInVwZGF0ZVRoZW1lIiwicHJlZmVyc0RhcmtNb2RlIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIm1hdGNoTWVkaWEiLCJhZGRFdmVudExpc3RlbmVyIiwibWF0Y2hlcyIsIlRoZW1lUHJvdmlkZXIiLCJDc3NCYXNlbGluZSIsIkhhc2hSb3V0ZXIiLCJSb3V0ZXMiLCJSb3V0ZSIsInBhdGgiLCJlbGVtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJjcmVhdGVSb290IiwicmVuZGVyIiwiX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fIiwiX193ZWJwYWNrX3JlcXVpcmVfXyIsIm1vZHVsZUlkIiwiY2FjaGVkTW9kdWxlIiwiZXhwb3J0cyIsIm1vZHVsZSIsIl9fd2VicGFja19tb2R1bGVzX18iLCJPIiwiY2h1bmtJZHMiLCJwcmlvcml0eSIsIm5vdEZ1bGZpbGxlZCIsIkluZmluaXR5IiwiZnVsZmlsbGVkIiwiaiIsImV2ZXJ5Iiwic3BsaWNlIiwiZ2V0dGVyIiwiX19lc01vZHVsZSIsIm5zIiwiZ2V0T3duUHJvcGVydHlOYW1lcyIsImRlZmluaXRpb24iLCJwcm9wIiwiaW5zdGFsbGVkQ2h1bmtzIiwiY2h1bmtJZCIsIndlYnBhY2tKc29ucENhbGxiYWNrIiwicGFyZW50Q2h1bmtMb2FkaW5nRnVuY3Rpb24iLCJtb3JlTW9kdWxlcyIsInJ1bnRpbWUiLCJzb21lIiwiY2h1bmtMb2FkaW5nR2xvYmFsIiwiX193ZWJwYWNrX2V4cG9ydHNfXyJdLCJzb3VyY2VSb290IjoiIn0=