@open-amt-cloud-toolkit/ui-toolkit-react 2.0.2 → 2.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/README.md +71 -0
  2. package/dist/package.json +84 -0
  3. package/package.json +84 -77
  4. package/i18n.d.ts +0 -6
  5. package/jest.setup.d.ts +0 -5
  6. package/kvm.min.js +0 -3
  7. package/kvm.min.js.LICENSE.txt +0 -32
  8. package/reactjs/KVM/ConnectButton.d.ts +0 -13
  9. package/reactjs/KVM/DesktopSettings.d.ts +0 -17
  10. package/reactjs/KVM/EncodingOptions.d.ts +0 -17
  11. package/reactjs/KVM/Header.d.ts +0 -17
  12. package/reactjs/KVM/PureCanvas.d.ts +0 -19
  13. package/reactjs/KVM/UI.d.ts +0 -47
  14. package/reactjs/KVM/index.d.ts +0 -1
  15. package/reactjs/SerialOverLAN/Sol.d.ts +0 -53
  16. package/reactjs/SerialOverLAN/Terminal.d.ts +0 -15
  17. package/reactjs/SerialOverLAN/index.d.ts +0 -5
  18. package/reactjs/services/HttpClient.d.ts +0 -10
  19. package/reactjs/shared/Methods.d.ts +0 -13
  20. package/reactjs/shared/SnackBar.d.ts +0 -5
  21. package/reactjs/shared/Utilities.d.ts +0 -8
  22. package/reactjs/src/kvm.bundle.js +0 -1
  23. package/reactjs/src/sol.bundle.js +0 -15
  24. package/reactjs/src/sol.bundle.js.LICENSE.txt +0 -8
  25. package/sol.min.js +0 -16
  26. package/sol.min.js.LICENSE.txt +0 -41
  27. package/src/i18n.d.ts +0 -6
  28. package/src/reactjs/KVM/ConnectButton.d.ts +0 -13
  29. package/src/reactjs/KVM/DesktopSettings.d.ts +0 -17
  30. package/src/reactjs/KVM/EncodingOptions.d.ts +0 -17
  31. package/src/reactjs/KVM/Header.d.ts +0 -17
  32. package/src/reactjs/KVM/PureCanvas.d.ts +0 -19
  33. package/src/reactjs/KVM/UI.d.ts +0 -47
  34. package/src/reactjs/KVM/index.d.ts +0 -1
  35. package/src/reactjs/SerialOverLAN/Sol.d.ts +0 -53
  36. package/src/reactjs/SerialOverLAN/Terminal.d.ts +0 -15
  37. package/src/reactjs/SerialOverLAN/index.d.ts +0 -5
  38. package/src/reactjs/services/HttpClient.d.ts +0 -10
  39. package/src/reactjs/shared/Methods.d.ts +0 -13
  40. package/src/reactjs/shared/SnackBar.d.ts +0 -5
  41. package/src/reactjs/shared/Utilities.d.ts +0 -8
  42. package/src/test/connectbutton.spec.d.ts +0 -5
  43. package/src/test/desktopsettings.spec.d.ts +0 -5
  44. package/src/test/encodingoptions.spec.d.ts +0 -5
  45. package/src/test/helper/amtredirector1.d.ts +0 -71
  46. package/src/test/helper/mockeventpersist.d.ts +0 -7
  47. package/src/test/helper/terminal.d.ts +0 -11
  48. package/src/test/httpclient.test.d.ts +0 -1
  49. package/src/test/purecanvas.spec.d.ts +0 -5
  50. package/src/test/sol.test.d.ts +0 -1
  51. package/src/test/terminal.test.d.ts +0 -1
  52. package/src/test/ui.spec.d.ts +0 -4
package/kvm.min.js DELETED
@@ -1,3 +0,0 @@
1
- /*! For license information please see kvm.min.js.LICENSE.txt */
2
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports["ui-toolkit"]=t():e["ui-toolkit"]=t()}(self,(function(){return(()=>{var __webpack_modules__={869:module=>{var e;self,e=function(){return(()=>{var __webpack_modules__={487:e=>{var t={utf8:{stringToBytes:function(e){return t.bin.stringToBytes(unescape(encodeURIComponent(e)))},bytesToString:function(e){return decodeURIComponent(escape(t.bin.bytesToString(e)))}},bin:{stringToBytes:function(e){for(var t=[],n=0;n<e.length;n++)t.push(255&e.charCodeAt(n));return t},bytesToString:function(e){for(var t=[],n=0;n<e.length;n++)t.push(String.fromCharCode(e[n]));return t.join("")}}};e.exports=t},12:e=>{var t,n;t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",n={rotl:function(e,t){return e<<t|e>>>32-t},rotr:function(e,t){return e<<32-t|e>>>t},endian:function(e){if(e.constructor==Number)return 16711935&n.rotl(e,8)|4278255360&n.rotl(e,24);for(var t=0;t<e.length;t++)e[t]=n.endian(e[t]);return e},randomBytes:function(e){for(var t=[];e>0;e--)t.push(Math.floor(256*Math.random()));return t},bytesToWords:function(e){for(var t=[],n=0,r=0;n<e.length;n++,r+=8)t[r>>>5]|=e[n]<<24-r%32;return t},wordsToBytes:function(e){for(var t=[],n=0;n<32*e.length;n+=8)t.push(e[n>>>5]>>>24-n%32&255);return t},bytesToHex:function(e){for(var t=[],n=0;n<e.length;n++)t.push((e[n]>>>4).toString(16)),t.push((15&e[n]).toString(16));return t.join("")},hexToBytes:function(e){for(var t=[],n=0;n<e.length;n+=2)t.push(parseInt(e.substr(n,2),16));return t},bytesToBase64:function(e){for(var n=[],r=0;r<e.length;r+=3)for(var a=e[r]<<16|e[r+1]<<8|e[r+2],o=0;o<4;o++)8*r+6*o<=8*e.length?n.push(t.charAt(a>>>6*(3-o)&63)):n.push("=");return n.join("")},base64ToBytes:function(e){e=e.replace(/[^A-Z0-9+\/]/gi,"");for(var n=[],r=0,a=0;r<e.length;a=++r%4)0!=a&&n.push((t.indexOf(e.charAt(r-1))&Math.pow(2,-2*a+8)-1)<<2*a|t.indexOf(e.charAt(r))>>>6-2*a);return n}},e.exports=n},738:e=>{function t(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}e.exports=function(e){return null!=e&&(t(e)||function(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&t(e.slice(0,0))}(e)||!!e._isBuffer)}},568:(e,t,n)=>{var r,a,o,i,s;r=n(12),a=n(487).utf8,o=n(738),i=n(487).bin,(s=function(e,t){e.constructor==String?e=t&&"binary"===t.encoding?i.stringToBytes(e):a.stringToBytes(e):o(e)?e=Array.prototype.slice.call(e,0):Array.isArray(e)||e.constructor===Uint8Array||(e=e.toString());for(var n=r.bytesToWords(e),l=8*e.length,u=1732584193,c=-271733879,d=-1732584194,p=271733878,f=0;f<n.length;f++)n[f]=16711935&(n[f]<<8|n[f]>>>24)|4278255360&(n[f]<<24|n[f]>>>8);n[l>>>5]|=128<<l%32,n[14+(l+64>>>9<<4)]=l;var h=s._ff,g=s._gg,v=s._hh,m=s._ii;for(f=0;f<n.length;f+=16){var b=u,y=c,S=d,w=p;u=h(u,c,d,p,n[f+0],7,-680876936),p=h(p,u,c,d,n[f+1],12,-389564586),d=h(d,p,u,c,n[f+2],17,606105819),c=h(c,d,p,u,n[f+3],22,-1044525330),u=h(u,c,d,p,n[f+4],7,-176418897),p=h(p,u,c,d,n[f+5],12,1200080426),d=h(d,p,u,c,n[f+6],17,-1473231341),c=h(c,d,p,u,n[f+7],22,-45705983),u=h(u,c,d,p,n[f+8],7,1770035416),p=h(p,u,c,d,n[f+9],12,-1958414417),d=h(d,p,u,c,n[f+10],17,-42063),c=h(c,d,p,u,n[f+11],22,-1990404162),u=h(u,c,d,p,n[f+12],7,1804603682),p=h(p,u,c,d,n[f+13],12,-40341101),d=h(d,p,u,c,n[f+14],17,-1502002290),u=g(u,c=h(c,d,p,u,n[f+15],22,1236535329),d,p,n[f+1],5,-165796510),p=g(p,u,c,d,n[f+6],9,-1069501632),d=g(d,p,u,c,n[f+11],14,643717713),c=g(c,d,p,u,n[f+0],20,-373897302),u=g(u,c,d,p,n[f+5],5,-701558691),p=g(p,u,c,d,n[f+10],9,38016083),d=g(d,p,u,c,n[f+15],14,-660478335),c=g(c,d,p,u,n[f+4],20,-405537848),u=g(u,c,d,p,n[f+9],5,568446438),p=g(p,u,c,d,n[f+14],9,-1019803690),d=g(d,p,u,c,n[f+3],14,-187363961),c=g(c,d,p,u,n[f+8],20,1163531501),u=g(u,c,d,p,n[f+13],5,-1444681467),p=g(p,u,c,d,n[f+2],9,-51403784),d=g(d,p,u,c,n[f+7],14,1735328473),u=v(u,c=g(c,d,p,u,n[f+12],20,-1926607734),d,p,n[f+5],4,-378558),p=v(p,u,c,d,n[f+8],11,-2022574463),d=v(d,p,u,c,n[f+11],16,1839030562),c=v(c,d,p,u,n[f+14],23,-35309556),u=v(u,c,d,p,n[f+1],4,-1530992060),p=v(p,u,c,d,n[f+4],11,1272893353),d=v(d,p,u,c,n[f+7],16,-155497632),c=v(c,d,p,u,n[f+10],23,-1094730640),u=v(u,c,d,p,n[f+13],4,681279174),p=v(p,u,c,d,n[f+0],11,-358537222),d=v(d,p,u,c,n[f+3],16,-722521979),c=v(c,d,p,u,n[f+6],23,76029189),u=v(u,c,d,p,n[f+9],4,-640364487),p=v(p,u,c,d,n[f+12],11,-421815835),d=v(d,p,u,c,n[f+15],16,530742520),u=m(u,c=v(c,d,p,u,n[f+2],23,-995338651),d,p,n[f+0],6,-198630844),p=m(p,u,c,d,n[f+7],10,1126891415),d=m(d,p,u,c,n[f+14],15,-1416354905),c=m(c,d,p,u,n[f+5],21,-57434055),u=m(u,c,d,p,n[f+12],6,1700485571),p=m(p,u,c,d,n[f+3],10,-1894986606),d=m(d,p,u,c,n[f+10],15,-1051523),c=m(c,d,p,u,n[f+1],21,-2054922799),u=m(u,c,d,p,n[f+8],6,1873313359),p=m(p,u,c,d,n[f+15],10,-30611744),d=m(d,p,u,c,n[f+6],15,-1560198380),c=m(c,d,p,u,n[f+13],21,1309151649),u=m(u,c,d,p,n[f+4],6,-145523070),p=m(p,u,c,d,n[f+11],10,-1120210379),d=m(d,p,u,c,n[f+2],15,718787259),c=m(c,d,p,u,n[f+9],21,-343485551),u=u+b>>>0,c=c+y>>>0,d=d+S>>>0,p=p+w>>>0}return r.endian([u,c,d,p])})._ff=function(e,t,n,r,a,o,i){var s=e+(t&n|~t&r)+(a>>>0)+i;return(s<<o|s>>>32-o)+t},s._gg=function(e,t,n,r,a,o,i){var s=e+(t&r|n&~r)+(a>>>0)+i;return(s<<o|s>>>32-o)+t},s._hh=function(e,t,n,r,a,o,i){var s=e+(t^n^r)+(a>>>0)+i;return(s<<o|s>>>32-o)+t},s._ii=function(e,t,n,r,a,o,i){var s=e+(n^(t|~r))+(a>>>0)+i;return(s<<o|s>>>32-o)+t},s._blocksize=16,s._digestsize=16,e.exports=function(e,t){if(null==e)throw new Error("Illegal argument "+e);var n=r.wordsToBytes(s(e,t));return t&&t.asBytes?n:t&&t.asString?i.bytesToString(n):r.bytesToHex(n)}},166:(e,t,n)=>{"use strict";n.d(t,{r:()=>l});var r=n(46),a=n(565),o=n(611),i=n(305),s=n.n(i);class l extends r.H{constructor(e,t){super(),this.protocol=2,this.inflate=s().inflateInit(15),this.bpp=1,this.state=0,this.focusMode=0,this.useZRLE=!0,this.frameRateDelay=2,this.canvasCtx=t,this.sparecache={},this.buttonmask=0,this.canvasControl=this.canvasCtx.canvas,this.lastMouseMoveTime=(new Date).getTime(),this.logger=e,this.setDeskFocus=(e,t)=>{},this.getDeskFocus=e=>{}}processData(e){this.onProcessData(e)}onStateChange(e){this.logger.verbose(`state change in AMTDesktop: ${e}`),0===e&&(this.canvasCtx.fillStyle="#FFFFFF",this.canvasCtx.fillRect(0,0,this.canvasCtx.canvas.width,this.canvasCtx.canvas.width))}start(){this.logger.verbose("Starting desktop here"),this.state=0,this.inflate.inflateReset(),this.onKvmDataPending=[],this.onKvmDataAck=-1,this.kvmDataSupported=!1;for(const e in this.sparecache)delete this.sparecache[e]}onSendKvmData(e){!0!==this.onKvmDataAck?this.onKvmDataPending.push(e):((0,o.f)(this.urlvars)&&(0,o.f)(this.urlvars.kvmdatatrace)&&console.log(`KVM-Send (${e.length}) data`),e="\0KvmDataChannel\0"+e,this.onSend(String.fromCharCode(6,0,0,0)+a.r.IntToStr(e.length)+e),this.onKvmDataAck=!1)}}},59:(e,t,n)=>{"use strict";n.d(t,{N:()=>a});var r=n(503);class a extends r.K{constructor(e,t,n,r,a,o,i,s,l,u,c){super(e,t,n,r,a,o,i,s,l,u,c)}}},503:(e,t,n)=>{"use strict";n.d(t,{b:()=>r,K:()=>l});var r,a=n(565),o=n(568),i=n.n(o),s=n(611);!function(e){e[e.SOL=1]="SOL",e[e.KVM=2]="KVM",e[e.IDER=3]="IDER"}(r||(r={}));class l{constructor(e,t,n,r,a,o,i,s,l,u,c){this.fileReader=n,this.randomNonceChars="abcdef0123456789",this.host=r,this.port=a,this.user=o,this.pass=i,this.tls=s,this.tlsv1only=l,this.protocol=t,this.RedirectStartSol=String.fromCharCode(16,0,0,0,83,79,76,32),this.RedirectStartKvm=String.fromCharCode(16,1,0,0,75,86,77,82),this.RedirectStartIder=String.fromCharCode(16,0,0,0,73,68,69,82),this.urlvars={},this.server=c,this.amtAccumulator="",this.authUri="",this.logger=e,this.authToken=u}getWsLocation(){return this.isBrowser()&&!(0,s.f)(this.server)?`${window.location.protocol.replace("http","ws")}//\n ${window.location.host}\n ${window.location.pathname.substring(0,window.location.pathname.lastIndexOf("/"))}\n /webrelay.ashx?p=2&host=${this.host}&port=${this.port}&tls=${this.tls}${"*"===this.user?"&serverauth=1":""}${void 0===this.pass?"&serverauth=1&user="+this.user:""}&tls1only=${this.tlsv1only}`:`${String(this.server)}/webrelay.ashx?p=2&host=${this.host}&port=${this.port}&tls=${this.tls}${"*"===this.user?"&serverauth=1":""}${void 0===this.pass?"&serverauth=1&user="+this.user:""}&tls1only=${this.tlsv1only}`}isBrowser(){try{const e="undefined"!=typeof window;return e&&this.logger.debug("!!!!!BROWSER!!!!!"),e}catch(e){return!1}}start(e){this.connectState=0,this.socket=new e(this.getWsLocation(),this.authToken),this.socket.onopen=this.onSocketConnected.bind(this),this.socket.onmessage=this.onMessage.bind(this),this.socket.onclose=this.onSocketClosed.bind(this),(0,s.f)(this.fileReader)&&(0,s.f)(this.fileReader.readAsBinaryString)?this.fileReader.onload=(e=>{this.onSocketData(e.target.result),0===this.fileReaderAcc.length?this.fileReaderInUse=!1:this.fileReader.readAsBinaryString(new Blob([this.fileReaderAcc.shift()]))}).bind(this):(0,s.f)(this.fileReader)&&(0,s.f)(this.fileReader.readAsArrayBuffer)&&(this.fileReader.onloadend=(e=>{this.onSocketData(e.target.result),0===this.fileReaderAcc.length?this.fileReaderInUse=!1:this.fileReader.readAsArrayBuffer(this.fileReaderAcc.shift())}).bind(this)),this.logger.verbose("Connecting to websocket"),this.onStateChange(1)}onSocketConnected(){(0,s.f)(this.urlvars)&&(0,s.f)(this.urlvars.redirtrace)&&console.log("REDIR-CONNECT"),this.onStateChange(2),this.logger.verbose(`Connected to websocket server. With protocol ${this.protocol} (2 = KVM)`),this.logger.info(`Start Redirect Session for protocol. ${this.protocol}`),this.protocol===r.SOL&&this.socketSend(this.RedirectStartSol),this.protocol===r.KVM&&this.socketSend(this.RedirectStartKvm),this.protocol===r.IDER&&this.socketSend(this.RedirectStartIder)}onMessage(e){try{if(this.inDataCount++,"object"==typeof e.data){if(this.fileReaderInUse)return void this.fileReaderAcc.push(e.data);if(null!=this.fileReader.readAsBinaryString)this.fileReaderInUse=!0,this.fileReader.readAsBinaryString(new Blob([e.data]));else if(null!=this.fileReader.readAsArrayBuffer)this.fileReaderInUse=!0,this.fileReader.readAsArrayBuffer(e.data);else{let t="";const n=new Uint8Array(e.data),r=n.byteLength;for(let e=0;e<r;e++)t+=String.fromCharCode(n[e]);this.onSocketData(t)}}else this.onSocketData(e.data)}catch(e){this.logger.error(e),this.stop(),this.onError()}}onSocketData(e){if((0,s.f)(e)&&-1!==this.connectState){if("object"==typeof e){let t="";const n=new Uint8Array(e),r=n.byteLength;for(let e=0;e<r;e++)t+=String.fromCharCode(n[e]);e=t}else if("string"!=typeof e)return;if((this.protocol===r.KVM||this.protocol===r.IDER)&&1===this.connectState)return this.onProcessData(e);for(this.amtAccumulator+=e;this.amtAccumulator.length>=1;){let e=0;switch(this.amtAccumulator.charCodeAt(0)){case 17:if(this.logger.verbose(`Start Redirection Session reply received for ${this.protocol}`),this.amtAccumulator.length<4)return;switch(this.amtAccumulator.charCodeAt(1)){case 0:{if(this.logger.verbose("Session status success. Start handshake"),this.amtAccumulator.length<13)return;const t=this.amtAccumulator.charCodeAt(12);if(this.amtAccumulator.length<13+t)return;this.logger.verbose("Query for available authentication"),this.socketSend(String.fromCharCode(19,0,0,0,0,0,0,0,0)),e=13+t;break}default:this.stop()}break;case 20:{if(this.logger.verbose("Available Authentications reply received."),this.amtAccumulator.length<9)return;const t=a.r.ReadIntX(this.amtAccumulator,5);if(this.amtAccumulator.length<9+t)return;const n=this.amtAccumulator.charCodeAt(1),r=this.amtAccumulator.charCodeAt(4),o=[];for(let e=0;e<t;e++)o.push(this.amtAccumulator.charCodeAt(9+e));const i=this.amtAccumulator.substring(9,9+t);if(e=9+t,0===r)(0,s.f)(o.includes(4))?(this.logger.verbose("Good Digest Auth (With cnonce and all)"),this.socketSend(String.fromCharCode(19,0,0,0,4)+a.r.IntToStrX(this.user.length+this.authUri.length+8)+String.fromCharCode(this.user.length)+this.user+String.fromCharCode(0,0)+String.fromCharCode(this.authUri.length)+this.authUri+String.fromCharCode(0,0,0,0))):(0,s.f)(o.includes(3))?(this.logger.warn("Bad Digest Auth"),this.socketSend(String.fromCharCode(19,0,0,0,3)+a.r.IntToStrX(this.user.length+this.authUri.length+7)+String.fromCharCode(this.user.length)+this.user+String.fromCharCode(0,0)+String.fromCharCode(this.authUri.length)+this.authUri+String.fromCharCode(0,0,0))):(0,s.f)(o.includes(1))?(this.logger.verbose("Basic Auth"),this.socketSend(String.fromCharCode(19,0,0,0,1)+a.r.IntToStrX(this.user.length+this.pass.length+2)+String.fromCharCode(this.user.length)+this.user+String.fromCharCode(this.pass.length)+this.pass)):(this.logger.error("Auth Type not recognized. Stopping."),this.stop());else if(3!==r&&4!==r||1!==n)if(0===n){if(1===this.protocol){const e=1e4,t=100,n=0,r=1e4,o=100,i=0;this.socketSend(String.fromCharCode(32,0,0,0)+a.r.IntToStrX(this.amtSequence++)+a.r.ShortToStrX(e)+a.r.ShortToStrX(t)+a.r.ShortToStrX(n)+a.r.ShortToStrX(r)+a.r.ShortToStrX(o)+a.r.ShortToStrX(i)+a.r.IntToStrX(0))}2===this.protocol&&this.socketSend(String.fromCharCode(64,0,0,0,0,0,0,0)),3===this.protocol&&(this.connectState=1,this.onStateChange(3))}else this.stop();else{let e=0;const t=i.charCodeAt(e),n=i.substring(e+1,e+1+t);e+=t+1;const o=i.charCodeAt(e),s=i.substring(e+1,e+1+o);e+=o+1;let l=0,u=null;const c=this.generateRandomNonce(32),d="00000002";let p="";4===r&&(l=i.charCodeAt(e),u=i.substring(e+1,e+1+l),e+=l+1,p=`${d}:${c}:${String(u)} :`);const f=this.hex_md5(this.hex_md5(this.user+":"+n+":"+this.pass)+":"+s+":"+p+this.hex_md5("POST:"+this.authUri));let h=this.user.length+n.length+s.length+this.authUri.length+c.length+d.length+f.length+7;4===r&&(h+=parseInt(u.length)+1);let g=String.fromCharCode(19,0,0,0,r)+a.r.IntToStrX(h)+String.fromCharCode(this.user.length)+this.user+String.fromCharCode(n.length)+n+String.fromCharCode(s.length)+s+String.fromCharCode(this.authUri.length)+this.authUri+String.fromCharCode(c.length)+c+String.fromCharCode(d.length)+d+String.fromCharCode(f.length)+f;4===r&&(g=String(g)+(String.fromCharCode(u.length)+String(u))),this.socketSend(g)}break}case 33:if(this.amtAccumulator.length<23)break;this.logger.verbose("Response to settings"),e=23,this.socketSend(String.fromCharCode(39,0,0,0)+a.r.IntToStrX(this.amtSequence++)+String.fromCharCode(0,0,27,0,0,0)),1===this.protocol&&(this.amtKeepAliveTimer=setInterval(this.sendAmtKeepAlive.bind(this),2e3)),this.connectState=1,this.onStateChange(3);break;case 41:if(this.amtAccumulator.length<10)break;this.logger.verbose("Serial Settings"),e=10;break;case 42:{if(this.amtAccumulator.length<10)break;this.logger.verbose("Incoming display data");const t=10+((255&this.amtAccumulator.charCodeAt(9))<<8)+(255&this.amtAccumulator.charCodeAt(8));if(this.amtAccumulator.length<t)break;this.onProcessData(this.amtAccumulator.substring(10,t)),e=t;break}case 43:if(this.amtAccumulator.length<8)break;this.logger.verbose("Keep Alve message"),e=8;break;case 65:if(this.amtAccumulator.length<8)break;this.logger.verbose("KVM traffic. Call onStart handler. And forward rest of acc directly."),this.connectState=1,this.onStart(),this.amtAccumulator.length>8&&this.onProcessData(this.amtAccumulator.substring(8)),e=this.amtAccumulator.length;break;default:return this.logger.error(`Unknown Intel AMT command: ${this.amtAccumulator.charCodeAt(0)} acclen=${this.amtAccumulator.length}`),void this.stop()}if(0===e)return;this.amtAccumulator=this.amtAccumulator.substring(e)}}}hex_md5(e){return this.logger.verbose("MD5 the string"),i()(e)}socketSend(e){(0,s.f)(this.urlvars)&&(0,s.f)(this.urlvars.redirtrace)&&this.logger.verbose(`REDIR-SEND(${e.length}): ${a.r.rstr2hex(e)}`);try{if(null!=this.socket&&1===this.socket.readyState){const t=new Uint8Array(e.length);this.logger.verbose(`Redir Send( ${e.length}): ${a.r.rstr2hex(e)}`);for(let n=0;n<e.length;++n)t[n]=e.charCodeAt(n);this.socket.send(t.buffer)}}catch(e){this.logger.error(`Socket send error: ${String(e)}`)}}send(e){this.logger.verbose("Send called "+e),null!=this.socket&&1===this.connectState&&(this.protocol===r.SOL?this.socketSend(String.fromCharCode(40,0,0,0)+a.r.IntToStrX(this.amtSequence++)+a.r.ShortToStrX(e.length)+e):this.socketSend(e))}sendAmtKeepAlive(){null!=this.socket&&this.socketSend(String.fromCharCode(43,0,0,0)+a.r.IntToStrX(this.amtSequence++))}generateRandomNonce(e){let t="";for(let n=0;n<e;n++)t+=this.randomNonceChars.charAt(Math.floor(Math.random()*this.randomNonceChars.length));return t}onSocketClosed(e){(0,s.f)(this.urlvars)&&(0,s.f)(this.urlvars.redirtrace)&&console.log("REDIR-CLOSED"),this.logger.warn("Redir Socket Closed"),this.stop()}onStateChange(e){console.info("onstatechange",e),this.state!==e&&(this.state=e,this.onNewState(this.state),null!=this.onStateChanged&&this.onStateChanged(this,this.state))}stop(){this.logger.warn("Stop called on Redirector. Change state to 0 and close Socket."),this.onStateChange(0),this.connectState=-1,this.amtAccumulator="",null!=this.socket&&(this.socket.close(),this.socket=null),null!=this.amtKeepAliveTimer&&(clearInterval(this.amtKeepAliveTimer),this.amtKeepAliveTimer=null)}}},277:(e,t,n)=>{"use strict";n.d(t,{r:()=>r});class r{constructor(){this.terminalEmulation=1,this.fxEmulation=0,this.fxLineBreak=0,this.AsciiToUnicode=[199,252,233,226,228,224,229,231,234,235,232,239,238,236,196,197,201,230,198,244,246,242,251,249,255,214,220,162,163,165,8359,402,225,237,243,250,241,209,170,218,191,8976,172,189,188,161,171,187,9619,9618,9617,9474,9508,9569,9570,9558,9557,9571,9553,9559,9565,9564,9563,9488,9492,9524,9516,9500,9472,9532,9566,9567,9562,9556,9577,9574,9568,9552,9580,9575,9576,9572,9573,9576,9560,9554,9555,9579,9578,9496,9484,9608,9604,9611,9616,9600,945,223,915,960,931,963,181,964,966,952,8486,948,8734,248,949,8719,8801,177,8805,8806,8992,8993,247,8776,176,8226,183,8730,8319,178,8718,160],this.AsciiToUnicodeIntel=[199,252,233,226,228,224,229,231,234,235,232,239,238,236,196,197,201,230,198,244,246,242,251,249,255,214,220,162,163,165,8359,402,225,237,243,250,241,209,170,218,191,8976,172,189,188,161,174,187,9619,9618,9617,9474,9508,9569,9570,9558,9557,9571,9553,9559,9565,9564,9563,9488,9492,9524,9516,9500,9472,9532,9566,9567,9562,9556,9577,9574,9568,9552,9580,9575,9576,9572,9573,9576,9560,9554,9555,9579,9578,9496,9484,9608,9604,9611,9616,9600,945,223,915,960,931,963,181,964,966,952,8486,948,8734,248,949,8719,8801,177,8805,8806,8992,8993,247,8776,176,8226,183,8730,8319,178,8718,160],this.StateChange=e=>{},this.TermSendKeys=e=>this.onSend(e)}}},237:(e,t,n)=>{"use strict";n.d(t,{k:()=>a});var r=n(201);class a{constructor(e){this.minLevel=e}log(e,t){switch(e){case r.i.VERBOSE:this.verbose(t);break;case r.i.INFO:this.info(t);break;case r.i.DEBUG:this.debug(t);break;case r.i.WARNING:this.warn(t);break;case r.i.ERROR:this.error(t)}}debug(e){this.minLevel>=r.i.DEBUG&&console.debug(e)}info(e){this.minLevel>=r.i.INFO&&console.info(e)}error(e){this.minLevel>=r.i.ERROR&&console.error(e)}warn(e){this.minLevel>=r.i.WARNING&&console.warn(e)}verbose(e){this.minLevel>=r.i.VERBOSE&&console.log(e)}}},565:(e,t,n)=>{"use strict";n.d(t,{r:()=>a});var r=n(611);const a={ReadShort:(e,t)=>(e.charCodeAt(t)<<8)+e.charCodeAt(t+1),ReadShortX:(e,t)=>(e.charCodeAt(t+1)<<8)+e.charCodeAt(t),ReadInt:(e,t)=>16777216*e.charCodeAt(t)+(e.charCodeAt(t+1)<<16)+(e.charCodeAt(t+2)<<8)+e.charCodeAt(t+3),ReadSInt:(e,t)=>(e.charCodeAt(t)<<24)+(e.charCodeAt(t+1)<<16)+(e.charCodeAt(t+2)<<8)+e.charCodeAt(t+3),ReadIntX:(e,t)=>16777216*e.charCodeAt(t+3)+(e.charCodeAt(t+2)<<16)+(e.charCodeAt(t+1)<<8)+e.charCodeAt(t),ShortToStr:e=>String.fromCharCode(e>>8&255,255&e),ShortToStrX:e=>String.fromCharCode(255&e,e>>8&255),IntToStr:e=>String.fromCharCode(e>>24&255,e>>16&255,e>>8&255,255&e),IntToStrX:e=>String.fromCharCode(255&e,e>>8&255,e>>16&255,e>>24&255),SplitArray:e=>e.split(","),Clone:e=>JSON.parse(JSON.stringify(e)),EscapeHtml:e=>"string"==typeof e?e.replace(/&/g,"&amp;").replace(/>/g,"&gt;").replace(/</g,"&lt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;"):"boolean"==typeof e||"number"==typeof e?e:void 0,ArrayElementMove(e,t,n){e.splice(n,0,e.splice(t,1)[0])},ObjectToStringEx(e,t){let n="";if(0!==e&&(!(0,r.f)(e)||null==e))return"(Null)";if(e instanceof Array)for(const r in e)n=n+"<br />"+String(this.gap(t))+"Item #"+String(r)+": "+String(this.ObjectToStringEx(e[r],t+1));else if(e instanceof Object)for(const r in e)n=n+"<br />"+String(this.gap(t))+String(r)+" = "+String(this.ObjectToStringEx(e[r],t+1));else n+=String(this.EscapeHtml(e));return n},ObjectToStringEx2(e,t){let n="";if(0!==e&&(!(0,r.f)(e)||null==e))return"(Null)";if(e instanceof Array)for(const r in e)n=n+"\r\n"+String(this.gap2(t))+"Item #"+String(r)+": "+String(this.ObjectToStringEx2(e[r],t+1));else if(e instanceof Object)for(const r in e)n=n+"\r\n"+String(this.gap2(t))+String(r)+" = "+String(this.ObjectToStringEx2(e[r],t+1));else n+=String(this.EscapeHtml(e));return n},gap(e){let t="";for(let n=0;n<4*e;n++)t+="&nbsp;";return t},gap2(e){let t="";for(let n=0;n<4*e;n++)t+=" ";return t},ObjectToString(e){return this.ObjectToStringEx(e,0)},ObjectToString2(e){return this.ObjectToStringEx2(e,0)},char2hex:e=>(e+256).toString(16).substr(-2).toUpperCase(),rstr2hex(e){let t,n="";for(t=0;t<e.length;t++)n+=String(this.char2hex(e.charCodeAt(t)));return n},encode_utf8:e=>unescape(encodeURIComponent(e)),decode_utf8:e=>decodeURIComponent(escape(e)),data2blob(e){const t=new Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n);return new Blob([new Uint8Array(t)])},random:e=>Math.floor(Math.random()*e),trademarks:e=>e.replace(/\(R\)/g,"&reg;").replace(/\(TM\)/g,"&trade;")}},46:(e,t,n)=>{"use strict";n.d(t,{H:()=>r});class r{processData(e){}onStateChange(e){}start(){}onSendKvmData(e){}}},784:(e,t,n)=>{"use strict";n.d(t,{$:()=>o});var r=n(989),a=n(611);class o{constructor(e,t,n){this.acc="",this.stateProcessorFac=new r.v(t,n,this.updateRFBState.bind(this)),this.parent=n,this.logger=e}processData(e){if(!(0,a.f)(e))return;this.acc+=e;let t=0;for(this.logger.verbose(`Process Data ACC length: ${this.acc.length}`);this.acc.length>0;){const e=this.stateProcessorFac.getProcessor(this.parent.state),n=this.parent.state;if(t=e.processState(this.acc),this.logger.verbose(`State ${n} Processed. cmdSize returned ${t}`),0===t)return;this.acc=this.acc.substring(t),this.logger.verbose(`remaining acc ${this.acc.length} command size: ${t} new parent state: ${this.parent.state}`)}}updateRFBState(e){this.parent.state=e}}},679:(e,t,n)=>{"use strict";n.d(t,{X:()=>a});var r=n(644);class a{constructor(e){this.parent=e}Decode(e,t,n,a,o,i,s,l){const u=e.charCodeAt(t++);let c,d,p;const f={};let h,g=0,v=0;if(0===u){for(this.parent.logger.verbose("Raw encoding"),h=0;h<s;h++)r.j.setPixel(this.parent,e.charCodeAt(t++)+(2===this.parent.bpp?e.charCodeAt(t++)<<8:0),h);r.j.putImage(this.parent,n,a)}else if(1===u){d=e.charCodeAt(t++)+(2===this.parent.bpp?e.charCodeAt(t++)<<8:0),this.parent.canvasCtx.fillStyle="rgb("+(1===this.parent.bpp?`${224&d}, ${(28&d)<<3}, ${r.j.fixColor((3&d)<<6)}`:`${d>>8&248}, ${d>>3&252},${(31&d)<<3}`)+")",this.parent.logger.verbose("fillstyle: "+this.parent.canvasCtx.fillStyle);const s=r.j.rotX(this.parent,n,a);a=r.j.rotY(this.parent,n,a),n=s,this.parent.canvasCtx.fillRect(n,a,o,i)}else if(u>1&&u<17){this.parent.logger.verbose("Read the packed palette");let o=4,i=15;for(h=0;h<u;h++)f[h]=e.charCodeAt(t++)+(2===this.parent.bpp?e.charCodeAt(t++)<<8:0);for(2===u?(o=1,i=1):u<=4&&(o=2,i=3);g<s&&t<e.length;)for(d=e.charCodeAt(t++),h=8-o;h>=0;h-=o)r.j.setPixel(this.parent,f[d>>h&i],g++);r.j.putImage(this.parent,n,a)}else if(128===u){for(this.parent.logger.verbose("RLE encoded tile");g<s&&t<e.length;){d=e.charCodeAt(t++)+(2===this.parent.bpp?e.charCodeAt(t++)<<8:0),v=1;do{v+=p=e.charCodeAt(t++)}while(255===p);for(;--v>=0;)r.j.setPixel(this.parent,d,g++)}r.j.putImage(this.parent,n,a)}else if(u>129){for(this.parent.logger.verbose("Read the RLE palette"),h=0;h<u-128;h++)f[h]=e.charCodeAt(t++)+(2===this.parent.bpp?e.charCodeAt(t++)<<8:0);for(this.parent.logger.verbose("Decode RLE on palette");g<s&&t<e.length;){if(v=1,c=e.charCodeAt(t++),d=f[c%128],c>127)do{v+=p=e.charCodeAt(t++)}while(255===p);for(;--v>=0;)r.j.setPixel(this.parent,d,g++)}r.j.putImage(this.parent,n,a)}}}},646:(e,t,n)=>{"use strict";n.d(t,{$:()=>r.$,X:()=>a.X});var r=n(784),a=n(679)},663:(e,t,n)=>{"use strict";var r;n.d(t,{i:()=>r}),function(e){e[e.VERBOSE=5]="VERBOSE",e[e.INFO=4]="INFO",e[e.DEBUG=3]="DEBUG",e[e.WARNING=2]="WARNING",e[e.ERROR=1]="ERROR"}(r||(r={}))},201:(e,t,n)=>{"use strict";n.d(t,{i:()=>r.i});var r=n(663)},725:(e,t,n)=>{"use strict";n.d(t,{e:()=>o});var r=n(565),a=n(8);class o{constructor(e,t,n,r){this.wsSocket=e,this.parent=t,this.rleDecoder=n,this.updateRFBState=r}processState(e){let t=0;if(e.length>=12){const n=r.r.ReadShort(e,0),o=r.r.ReadShort(e,2),i=r.r.ReadShort(e,4),s=r.r.ReadShort(e,6),l=i*s,u=r.r.ReadInt(e,8);if(u<17){if(i<1||i>64||s<1||s>64)throw this.parent.logger.error(`Invalid tile size (${i},${s}), disconnecting.`),new Error("Invalid tile size");if(this.parent.sparew!==i||this.parent.spareh!==s){this.parent.sparew=this.parent.sparew2=i,this.parent.spareh=this.parent.spareh2=s,1!==this.parent.rotation&&3!==this.parent.rotation||(this.parent.sparew2=s,this.parent.spareh2=i);const e=`${this.parent.sparew2}x${this.parent.spareh2}`;this.parent.spare=this.parent.sparecache[e],(0,a.fQ)(this.parent.spare)||(this.parent.sparecache[e]=this.parent.spare=this.parent.canvasCtx.createImageData(this.parent.sparew2,this.parent.spareh2))}}if(4294967073===u)this.parent.logger.verbose("Desktop size"),this.parent.canvasCtx.canvas.width=this.parent.ScreenWidth=this.parent.rwidth=this.parent.width=i,this.parent.canvasCtx.canvas.height=this.parent.ScreenHeight=this.parent.rheight=this.parent.height=s,this.wsSocket.send(String.fromCharCode(3,0,0,0,0,0)+r.r.ShortToStr(this.parent.width)+r.r.ShortToStr(this.parent.height)),t=12,null!=this.parent.onScreenSizeChange&&this.parent.onScreenSizeChange(this.parent.ScreenWidth,this.parent.ScreenHeight);else if(0===u){let r=12;const i=12+l*this.parent.bpp;if(e.length<i)return 0;t=i;for(let t=0;t<l;t++)a.jw.setPixel(this.parent,e.charCodeAt(r++)+(2===this.parent.bpp?e.charCodeAt(r++)<<8:0),t);a.jw.putImage(this.parent,n,o)}else{if(16!==u)throw this.parent.logger.error(`Unknown Encoding: ${u} , HEX: ${r.r.rstr2hex(e)}`),new Error(`Unknown Encoding: ${u}`);{if(e.length<16)return 0;const a=r.r.ReadInt(e,12);if(e.length<16+a)return 0;const u=16,c=5,d=0;if(a>5&&0===e.charCodeAt(u)&&r.r.ReadShortX(e,u+1)===a-c)this.rleDecoder.Decode(e,u+5,n,o,i,s,l,a);else{const t=e.substring(u,u+a-d),r=this.parent.inflate.inflate(t);if(!(r.length>0))throw this.parent.logger.error("Invalid deflate data."),new Error("invalid deflate data");this.rleDecoder.Decode(r,0,n,o,i,s,l,r.length)}t=16+a}}if(100==--this.parent.state){this.parent.logger.debug("Frame completed. Update state and request new frame"),this.updateRFBState(4);const e=()=>a.Xn.sendRefresh(this.parent,this.wsSocket);0===this.parent.frameRateDelay?a.Xn.sendRefresh(this.parent,this.wsSocket):setTimeout(e,this.parent.frameRateDelay)}}return t}}},70:(e,t,n)=>{"use strict";n.d(t,{U:()=>a});var r=n(565);class a{constructor(e,t,n){this.wsSocket=e,this.serverCutTextHandler=t,this.updateRFBState=n}processState(e){let t=0,n=0;switch(e.charCodeAt(0)){case 0:if(e.length<4)return 0;this.updateRFBState(100+r.r.ReadShort(e,2)),t=4;break;case 2:t=1;break;case 3:if(e.length<8)return 0;if(n=r.r.ReadInt(e,4)+8,e.length<n)return 0;t=this.serverCutTextHandler.handleServerCutText(e)}return t}}},212:(e,t,n)=>{"use strict";n.d(t,{w:()=>r});class r{constructor(e,t){this.wsSocket=e,this.updateRFBState=t}processState(e){let t=0;return e.length>=12?(t=12,this.updateRFBState(1),this.wsSocket.send("RFB 003.008\n"),t):0}}},26:(e,t,n)=>{"use strict";n.d(t,{l:()=>r});class r{constructor(e,t){this.wsSocket=e,this.updateRFBState=t}processState(e){let t=0;return e.length>=1?(t=e.charCodeAt(0)+1,this.wsSocket.send(String.fromCharCode(1)),this.updateRFBState(2),t):0}}},724:(e,t,n)=>{"use strict";n.d(t,{m:()=>a});var r=n(565);class a{constructor(e,t){this.wsSocket=e,this.updateRFBState=t}processState(e){let t=0;if(e.length>=4){if(t=4,0!==r.r.ReadInt(e,0))throw new Error("Error. Stopping. Security response not None.");return this.wsSocket.send(String.fromCharCode(1)),this.updateRFBState(3),t}return 0}}},256:(e,t,n)=>{"use strict";n.d(t,{I:()=>o});var r=n(565),a=n(611);class o{constructor(e,t){this.wsSocket=e,this.parent=t}handleServerCutText(e){if(e.length<8)return 0;const t=r.r.ReadInt(e,4)+8;if(e.length<t)return 0;if(null!=this.parent.onKvmData){const n=e.substring(8,t);n.length>=16&&"\0KvmDataChannel"===n.substring(0,15)&&(this.parent.kvmDataSupported||(this.parent.kvmDataSupported=!0,console.log("KVM Data Channel Supported.")),(-1===this.parent.onKvmDataAck&&16===n.length||0!==n.charCodeAt(15))&&(this.parent.onKvmDataAck=!0),(0,a.f)(this.parent.urlvars)&&(0,a.f)(this.parent.urlvars.kvmdatatrace)&&console.log(`KVM-Recv((${n.length-16})): ${n.substring(16)}`),n.length>16&&this.parent.onKvmData(n.substring(16)),!0===this.parent.onKvmDataAck&&this.parent.onKvmDataPending.length>0&&this.wsSocket.onSendKvmData(this.parent.onKvmDataPending.shift()))}return t}}},946:(e,t,n)=>{"use strict";n.d(t,{C:()=>o});var r=n(565),a=n(173);class o{constructor(e,t,n){this.wsSocket=e,this.parent=t,this.updateRFBState=n}processState(e){let t=0;if(e.length>=24){this.parent.rotation=0;const n=r.r.ReadInt(e,20);if(e.length<24+n)return 0;t=24+n,null!=this.parent.updateScreenDimensions&&this.parent.updateScreenDimensions(r.r.ReadShort(e,0),r.r.ReadShort(e,2)),this.parent.canvasCtx.canvas.width=this.parent.ScreenWidth=this.parent.rwidth=this.parent.width=r.r.ReadShort(e,0),this.parent.canvasCtx.canvas.height=this.parent.ScreenHeight=this.parent.rheight=this.parent.height=r.r.ReadShort(e,2);let o="";return this.parent.useZRLE&&(o+=r.r.IntToStr(16)),o+=r.r.IntToStr(0),o+=r.r.IntToStr(1092),this.parent.logger.verbose("Send supported encodings"),this.wsSocket.send(String.fromCharCode(2,0)+r.r.ShortToStr(o.length/4+1)+o+r.r.IntToStr(-223)),1===this.parent.bpp&&this.wsSocket.send(String.fromCharCode(0,0,0,0,8,8,0,1)+r.r.ShortToStr(7)+r.r.ShortToStr(7)+r.r.ShortToStr(3)+String.fromCharCode(5,2,0,0,0,0)),this.updateRFBState(4),this.parent.onStateChange(3),this.parent.logger.info("Start new frame."),a.X.sendRefresh(this.parent,this.wsSocket),this.parent.oldMouseX=-1,t}return 0}}},389:(e,t,n)=>{"use strict";n.d(t,{ez:()=>r.e,wW:()=>a.w,Ut:()=>o.U,ll:()=>i.l,mC:()=>s.m,Cu:()=>l.C});var r=n(725),a=n(212),o=n(70),i=n(26),s=n(724),l=n(946)},989:(e,t,n)=>{"use strict";n.d(t,{v:()=>i});var r=n(389),a=n(256),o=n(679);class i{constructor(e,t,n){this.stateProcessors={},this.stateProcessors[0]=new r.wW(e,n),this.stateProcessors[1]=new r.ll(e,n),this.stateProcessors[2]=new r.mC(e,n),this.stateProcessors[3]=new r.Cu(e,t,n);const i=new a.I(e,t);this.stateProcessors[4]=new r.Ut(e,i,n),this.stateProcessors["100plus"]=new r.ez(e,t,new o.X(t),n)}getProcessor(e){return e<=100?this.stateProcessors[e]:this.stateProcessors["100plus"]}}},155:(e,t,n)=>{"use strict";n.d(t,{Q:()=>r});class r{constructor(e){this.processData=e=>{null!=this.terminal.capture&&(this.terminal.capture=String(this.terminal.capture)+e);let t="";for(let n=0;n<e.length;n++){const r=e.charCodeAt(n);"J"===e[n]?this.clearTerminal():t+=0!=(128&r)?String.fromCharCode(this.terminal.AsciiToUnicode[127&r]):`${e[n]}`}this.processDataToXterm(t)},this.terminal=e}}},38:(e,t,n)=>{"use strict";n.d(t,{q:()=>o});var r=n(923),a=n(611);const o={convertAMTKeyCode:e=>(0,a.f)(e.code.startsWith("Key"))&&4===e.code.length?e.code.charCodeAt(3)+(!1===e.shiftKey?32:0):(0,a.f)(e.code.startsWith("Digit"))&&6===e.code.length?e.code.charCodeAt(5):(0,a.f)(e.code.startsWith("Numpad"))&&7===e.code.length?e.code.charCodeAt(6):r.Z[e.code]}},923:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r={Pause:19,CapsLock:20,Space:32,Quote:39,Minus:45,NumpadMultiply:42,NumpadAdd:43,PrintScreen:44,Comma:44,NumpadSubtract:45,NumpadDecimal:46,Period:46,Slash:47,NumpadDivide:47,Semicolon:59,Equal:61,OSLeft:91,BracketLeft:91,OSRight:91,Backslash:92,BracketRight:93,ContextMenu:93,Backquote:96,NumLock:144,ScrollLock:145,Backspace:65288,Tab:65289,Enter:65293,NumpadEnter:65293,Escape:65307,Delete:65535,Home:65360,PageUp:65365,PageDown:65366,ArrowLeft:65361,ArrowUp:65362,ArrowRight:65363,ArrowDown:65364,End:65367,Insert:65379,F1:65470,F2:65471,F3:65472,F4:65473,F5:65474,F6:65475,F7:65476,F8:65477,F9:65478,F10:65479,F11:65480,F12:65481,ShiftLeft:65505,ShiftRight:65506,ControlLeft:65507,ControlRight:65508,AltLeft:65513,AltRight:65514,MetaLeft:65511,MetaRight:65512}},173:(e,t,n)=>{"use strict";n.d(t,{X:()=>o});var r=n(565),a=n(611);const o={sendRefresh(e,t){if(!e.holding)if(e.focusMode>0){const n=2*e.focusMode;t.send(String.fromCharCode(3,1)+r.r.ShortToStr(Math.max(Math.min(e.oldMouseX,e.lastMouseX)-e.focusMode,0))+r.r.ShortToStr(Math.max(Math.min(e.oldMouseY,e.lastMouseY)-e.focusMode,0))+r.r.ShortToStr(n+Math.abs(e.oldMouseX-e.lastMouseX))+r.r.ShortToStr(n+Math.abs(e.oldMouseY-e.lastMouseY))),e.oldMouseX=e.lastMouseX,e.oldMouseY=e.lastMouseY}else t.send(String.fromCharCode(3,1,0,0,0,0)+r.r.ShortToStr(e.rwidth)+r.r.ShortToStr(e.rheight))},sendKey(e,t,n){if("object"==typeof t)for(const n in t)this.sendKey(e,t[n][0],t[n][1]);else e.send(String.fromCharCode(4,n,0,0)+r.r.IntToStr(t))},sendKvmData(e,t,n){!0!==e.onKvmDataAck?e.onKvmDataPending.push(n):((0,a.f)(e.urlvars)&&(0,a.f)(e.urlvars.kvmdatatrace)&&console.log(`KVM-Send(${String(n.length)}): ${String(n)}`),n="\0KvmDataChannel\0"+String(n),t.send(`${String.fromCharCode(6,0,0,0)}${r.r.IntToStr(n.length)}${String(n)}`),e.onKvmDataAck=!1)},sendKeepAlive(e,t){e.lastKeepAlive<Date.now()-5e3&&(e.lastKeepAlive=Date.now(),t.send(String.fromCharCode(6,0,0,0)+r.r.IntToStr(16)+"\0KvmDataChannel\0"))},sendCtrlAltDelMsg(e){this.sendCad(e)},sendCad(e){this.sendKey(e,65507,1),this.sendKey(e,65513,1),this.sendKey(e,65535,1),this.sendKey(e,65535,0),this.sendKey(e,65513,0),this.sendKey(e,65507,0)}}},644:(e,t,n)=>{"use strict";n.d(t,{j:()=>r});const r={putImage(e,t,n){if(e.holding)return;const a=r.arotX(e,t,n);n=r.arotY(e,t,n),t=a,e.canvasCtx.putImageData(e.spare,t,n)},setPixel(e,t,n){let a,o,i=4*n;e.rotation>0&&(1===e.rotation?(a=n%e.sparew,o=Math.floor(n/e.sparew),i=4*(n=a*e.sparew2+(e.sparew2-1-o))):2===e.rotation?i=e.sparew*e.spareh*4-4-i:3===e.rotation&&(a=n%e.sparew,o=Math.floor(n/e.sparew),i=4*(n=(e.sparew2-1-a)*e.sparew2+o))),1===e.bpp?(e.spare.data[i++]=224&t,e.spare.data[i++]=(28&t)<<3,e.spare.data[i++]=r.fixColor((3&t)<<6)):(e.spare.data[i++]=t>>8&248,e.spare.data[i++]=t>>3&252,e.spare.data[i++]=(31&t)<<3),e.spare.data[i]=255},arotX:(e,t,n)=>0===e.rotation?t:1===e.rotation?e.canvasCtx.canvas.width-e.sparew2-n:2===e.rotation?e.canvasCtx.canvas.width-e.sparew2-t:3===e.rotation?n:0,arotY:(e,t,n)=>0===e.rotation?n:1===e.rotation?t:2===e.rotation?e.canvasCtx.canvas.height-e.spareh2-n:3===e.rotation?e.canvasCtx.canvas.height-e.spareh-t:0,crotX:(e,t,n)=>0===e.rotation?t:1===e.rotation?n:2===e.rotation?e.canvasCtx.canvas.width-t:3===e.rotation?e.canvasCtx.canvas.height-n:0,crotY:(e,t,n)=>0===e.rotation?n:1===e.rotation?e.canvasCtx.canvas.width-t:2===e.rotation?e.canvasCtx.canvas.height-n:3===e.rotation?t:0,rotX:(e,t,n)=>0===e.rotation||1===e.rotation?t:2===e.rotation?t-e.canvasCtx.canvas.width:3===e.rotation?t-e.canvasCtx.canvas.height:0,rotY:(e,t,n)=>0===e.rotation?n:1===e.rotation?n-e.canvasCtx.canvas.width:2===e.rotation?n-e.canvasCtx.canvas.height:3===e.rotation?n:0,setRotation(e,t){for(;t<0;)t+=4;const n=t%4;if(e.holding)return e.rotation=n,!1;if(n===e.rotation)return!0;let a=e.canvasCtx.canvas.width,o=e.canvasCtx.canvas.height;1!==e.rotation&&3!==e.rotation||(a=e.canvasCtx.canvas.height,o=e.canvasCtx.canvas.width),null==e.tcanvas&&(e.tcanvas=document.createElement("canvas"));const i=e.tcanvas.getContext("2d");return i.setTransform(1,0,0,1,0,0),i.canvas.width=a,i.canvas.height=o,i.rotate(-90*e.rotation*Math.PI/180),0===e.rotation&&i.drawImage(e.canvasCtx.canvas,0,0),1===e.rotation&&i.drawImage(e.canvasCtx.canvas,-e.canvasCtx.canvas.width,0),2===e.rotation&&i.drawImage(e.canvasCtx.canvas,-e.canvasCtx.canvas.width,-e.canvasCtx.canvas.height),3===e.rotation&&i.drawImage(e.canvasCtx.canvas,0,-e.canvasCtx.canvas.height),0!==e.rotation&&2!==e.rotation||(e.canvasCtx.canvas.height=a,e.canvasCtx.canvas.width=o),1!==e.rotation&&3!==e.rotation||(e.canvasCtx.canvas.height=o,e.canvasCtx.canvas.width=a),e.canvasCtx.setTransform(1,0,0,1,0,0),e.canvasCtx.rotate(90*n*Math.PI/180),e.rotation=n,e.canvasCtx.drawImage(e.tcanvas,r.rotX(e,0,0),r.rotY(e,0,0)),e.width=e.canvasCtx.canvas.width,e.height=e.canvasCtx.canvas.height,null!=e.onScreenResize&&e.onScreenResize(e.width,e.height,e.canvasId),!0},fixColor:e=>e>127?e+32:e}},717:(e,t,n)=>{"use strict";n.d(t,{E:()=>s});var r,a=n(38),o=n(173),i=n(611);!function(e){e[e.Up=0]="Up",e[e.Down=1]="Down"}(r||(r={}));class s{constructor(e,t){this.Comms=t,this.parent=e}GrabKeyInput(){this.KeyInputGrab||(document.onkeyup=this.handleKeyUp.bind(this),document.onkeydown=this.handleKeyDown.bind(this),document.onkeypress=this.handleKeys.bind(this),this.KeyInputGrab=!0)}UnGrabKeyInput(){this.KeyInputGrab&&(document.onkeyup=null,document.onkeydown=null,document.onkeypress=null,this.KeyInputGrab=!1)}handleKeys(e){return this.haltEvent(e)}haltEvent(e){return(0,i.f)(e.preventDefault)&&e.preventDefault(),(0,i.f)(e.stopPropagation)&&e.stopPropagation(),!1}handleKeyUp(e){return this.handleKeyEvent(r.Up,e)}handleKeyDown(e){return this.handleKeyEvent(r.Down,e)}handleKeyEvent(e,t){let n=t;if((0,i.f)(n)||(n=window.event),(0,i.f)(n.code)){const t=a.q.convertAMTKeyCode(n);this.parent.logger.verbose(`Key ${e} : ${String(t)}`),null!=t&&o.X.sendKey(this.Comms,t,e)}else{let t=n.keyCode;173===t&&(t=189),61===t&&(t=187);let r=t;!1===n.shiftKey&&t>=65&&t<=90&&(r=t+32),t>=112&&t<=124&&(r=t+65358),8===t&&(r=65288),9===t&&(r=65289),13===t&&(r=65293),16===t&&(r=65505),17===t&&(r=65507),18===t&&(r=65513),27===t&&(r=65307),33===t&&(r=65365),34===t&&(r=65366),35===t&&(r=65367),36===t&&(r=65360),37===t&&(r=65361),38===t&&(r=65362),39===t&&(r=65363),40===t&&(r=65364),45===t&&(r=65379),46===t&&(r=65535),t>=96&&t<=105&&(r=t-48),106===t&&(r=42),107===t&&(r=43),109===t&&(r=45),110===t&&(r=46),111===t&&(r=47),186===t&&(r=59),187===t&&(r=61),188===t&&(r=44),189===t&&(r=45),190===t&&(r=46),191===t&&(r=47),192===t&&(r=96),219===t&&(r=91),220===t&&(r=92),221===t&&(r=93),222===t&&(r=39),this.parent.logger.verbose(`Key ${e}: ${t} = ${r}`),o.X.sendKey(this.Comms,r,e)}return this.haltEvent(n)}}},33:(e,t,n)=>{"use strict";n.d(t,{x:()=>i});var r=n(565),a=n(644),o=n(611);class i{constructor(e,t,n){this.parent=e,this.comm=t,this.debounceTime=n,this.mouseClickCompleted=!0,this.lastEvent=null}GrabMouseInput(){this.MouseInputGrab||(this.MouseInputGrab=!0)}UnGrabMouseInput(){if(!this.MouseInputGrab)return;const e=this.parent.canvasCtx.canvas;e.onmousemove=null,e.onmouseup=null,e.onmousedown=null,this.MouseInputGrab=!1}mousedown(e){return this.parent.buttonmask|=1<<e.button,this.mousemove(e)}mouseup(e){return this.parent.buttonmask&=65535-(1<<e.button),this.mousemove(e)}mousemove(e){if(4!==this.parent.state)return!0;const t=this.getPositionOfControl(this.parent.canvasControl);if(this.parent.lastMouseX=(e.pageX-t[0])*(this.parent.canvasControl.height/this.parent.canvasControl.offsetHeight),this.parent.lastMouseY=(Number(e.pageY-t[1])+((0,o.f)(this.parent.scrolldiv)?Number(this.parent.scrolldiv.scrollTop):0))*(this.parent.canvasControl.width/this.parent.canvasControl.offsetWidth),(0,o.f)(this.parent.noMouseRotate)||(this.parent.lastMouseX2=a.j.crotX(this.parent,this.parent.lastMouseX,this.parent.lastMouseY),this.parent.lastMouseY=a.j.crotY(this.parent,this.parent.lastMouseX,this.parent.lastMouseY),this.parent.lastMouseX=this.parent.lastMouseX2),this.comm.send(String.fromCharCode(5,this.parent.buttonmask)+r.r.ShortToStr(this.parent.lastMouseX)+r.r.ShortToStr(this.parent.lastMouseY)),this.parent.setDeskFocus("DeskFocus",this.parent.focusMode),0!==this.parent.focusMode){const e=Math.min(this.parent.lastMouseX,this.parent.canvasControl.width-this.parent.focusMode),n=Math.min(this.parent.lastMouseY,this.parent.canvasControl.height-this.parent.focusMode),r=2*this.parent.focusMode,a=this.parent.canvasControl,o=a.offsetHeight/this.parent.canvasControl.height,i=a.offsetWidth/this.parent.canvasControl.width,s=this.parent.getDeskFocus("DeskFocus"),l=this.getPositionOfControl(this.parent.canvasControl.parentElement);s.left=`${Math.max((e-this.parent.focusMode)*o,0)+(t[0]-l[0])}px`,s.top=`${Math.max((n-this.parent.focusMode)*i,0)+(t[1]-l[1])}px`,s.width=r*o-6+"px",s.height=r*o-6+"px"}return this.haltEvent(e)}haltEvent(e){return(0,o.f)(e.preventDefault)&&e.preventDefault(),(0,o.f)(e.stopPropagation)&&e.stopPropagation(),!1}getPositionOfControl(e){const t=Array(2);t[0]=t[1]=0;let n=e;for(;null!=n;)t[0]=Number(t[0])+Number(n.offsetLeft),t[1]=Number(t[1])+Number(n.offsetTop),n=n.offsetParent;return t}}},611:(e,t,n)=>{"use strict";n.d(t,{f:()=>r});const r=e=>null!=e&&""!==e&&!1!==e&&0!==e},8:(e,t,n)=>{"use strict";n.d(t,{qD:()=>r.q,Xn:()=>a.X,jw:()=>o.j,EB:()=>i.E,xx:()=>s.x,fQ:()=>l.f});var r=n(38),a=n(173),o=n(644),i=n(717),s=n(33),l=n(611)},305:module=>{var ZLIB=ZLIB||{},BASE,NMAX;void 0===ZLIB.common_initialized&&(ZLIB.Z_NO_FLUSH=0,ZLIB.Z_PARTIAL_FLUSH=1,ZLIB.Z_SYNC_FLUSH=2,ZLIB.Z_FULL_FLUSH=3,ZLIB.Z_FINISH=4,ZLIB.Z_BLOCK=5,ZLIB.Z_TREES=6,ZLIB.Z_OK=0,ZLIB.Z_STREAM_END=1,ZLIB.Z_NEED_DICT=2,ZLIB.Z_ERRNO=-1,ZLIB.Z_STREAM_ERROR=-2,ZLIB.Z_DATA_ERROR=-3,ZLIB.Z_MEM_ERROR=-4,ZLIB.Z_BUF_ERROR=-5,ZLIB.Z_VERSION_ERROR=-6,ZLIB.Z_DEFLATED=8,ZLIB.z_stream=function(){this.next_in=0,this.avail_in=0,this.total_in=0,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg=null,this.state=null,this.data_type=0,this.adler=0,this.input_data="",this.output_data="",this.error=0,this.checksum_function=null},ZLIB.gz_header=function(){this.text=0,this.time=0,this.xflags=0,this.os=255,this.extra=null,this.extra_len=0,this.extra_max=0,this.name=null,this.name_max=0,this.comment=null,this.comm_max=0,this.hcrc=0,this.done=0},ZLIB.common_initialized=!0),void 0===ZLIB&&alert("ZLIB is not defined. SRC zlib.js before zlib-inflate.js"),function(){var DEF_WBITS=15,HEAD=0,FLAGS=1,TIME=2,OS=3,EXLEN=4,EXTRA=5,NAME=6,COMMENT=7,HCRC=8,DICTID=9,DICT=10,TYPE=11,TYPEDO=12,STORED=13,COPY_=14,COPY=15,TABLE=16,LENLENS=17,CODELENS=18,LEN_=19,LEN=20,LENEXT=21,DIST=22,DISTEXT=23,MATCH=24,LIT=25,CHECK=26,LENGTH=27,DONE=28,BAD=29,MEM=30,SYNC=31,ENOUGH_LENS=852,ENOUGH_DISTS=592,ENOUGH=ENOUGH_LENS+ENOUGH_DISTS,CODES=0,LENS=1,DISTS=2,inflate_table_lbase=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],inflate_table_lext=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,203,69],inflate_table_dbase=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],inflate_table_dext=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];function inflate_table(e,t){var n,r,a,o,i,s,l,u,c,d,p,f,h,g,v,m,b,y,S,w,k,C,E=e.next,x=t==DISTS?e.distbits:e.lenbits,_=e.work,T=e.lens,A=t==DISTS?e.nlen:0,I=e.codes;n=t==LENS?e.nlen:t==DISTS?e.ndist:19;var N=new Array(16),R=new Array(16);for(r=0;r<=15;r++)N[r]=0;for(a=0;a<n;a++)N[T[A+a]]++;for(s=x,i=15;i>=1&&0==N[i];i--);if(s>i&&(s=i),0==i)return m={op:64,bits:1,val:0},I[E++]=m,I[E++]=m,t==DISTS?e.distbits=1:e.lenbits=1,e.next=E,0;for(o=1;o<i&&0==N[o];o++);for(s<o&&(s=o),c=1,r=1;r<=15;r++)if(c<<=1,(c-=N[r])<0)return-1;if(c>0&&(t==CODES||1!=i))return e.next=E,-1;for(R[1]=0,r=1;r<15;r++)R[r+1]=R[r]+N[r];for(a=0;a<n;a++)0!=T[A+a]&&(_[R[T[A+a]]++]=a);switch(t){case CODES:y=w=_,S=0,k=0,C=19;break;case LENS:y=inflate_table_lbase,S=-257,w=inflate_table_lext,k=-257,C=256;break;default:y=inflate_table_dbase,w=inflate_table_dext,S=0,k=0,C=-1}if(p=0,a=0,r=o,b=E,l=s,u=0,g=-1,v=(d=1<<s)-1,t==LENS&&d>=ENOUGH_LENS||t==DISTS&&d>=ENOUGH_DISTS)return e.next=E,1;for(;;){m={op:0,bits:r-u,val:0},_[a]<C?m.val=_[a]:_[a]>C?(m.op=w[k+_[a]],m.val=y[S+_[a]]):m.op=96,f=1<<r-u,o=h=1<<l;do{I[b+(p>>>u)+(h-=f)]=m}while(0!=h);for(f=1<<r-1;p&f;)f>>>=1;if(0!=f?(p&=f-1,p+=f):p=0,a++,0==--N[r]){if(r==i)break;r=T[A+_[a]]}if(r>s&&(p&v)!=g){for(0==u&&(u=s),b+=o,c=1<<(l=r-u);l+u<i&&!((c-=N[l+u])<=0);)l++,c<<=1;if(d+=1<<l,t==LENS&&d>=ENOUGH_LENS||t==DISTS&&d>=ENOUGH_DISTS)return e.next=E,1;I[E+(g=p&v)]={op:l,bits:s,val:b-E}}}return 0!=p&&(I[b+p]={op:64,bits:r-u,val:0}),e.next=E+d,t==DISTS?e.distbits=s:e.lenbits=s,0}function inflate_fast(e,t){var n,r,a,o,i,s,l,u,c,d,p,f,h,g,v,m,b,y,S,w,k,C,E=-1,x=-1;n=e.state,r=e.input_data,o=(a=e.next_in)+e.avail_in-5,s=(i=e.next_out)-(t-e.avail_out),l=i+(e.avail_out-257),u=n.wsize,c=n.whave,d=n.wnext,p=n.window,f=n.hold,h=n.bits,g=n.codes,v=n.lencode,m=n.distcode,b=(1<<n.lenbits)-1,y=(1<<n.distbits)-1;e:do{h<15&&(f+=(255&r.charCodeAt(a++))<<h,h+=8,f+=(255&r.charCodeAt(a++))<<h,h+=8),S=g[v+(f&b)];t:for(;;){if(f>>>=w=S.bits,h-=w,0==(w=S.op))e.output_data+=String.fromCharCode(S.val),i++;else{if(!(16&w)){if(0==(64&w)){S=g[v+(S.val+(f&(1<<w)-1))];continue t}if(32&w){n.mode=TYPE;break e}e.msg="invalid literal/length code",n.mode=BAD;break e}k=S.val,(w&=15)&&(h<w&&(f+=(255&r.charCodeAt(a++))<<h,h+=8),k+=f&(1<<w)-1,f>>>=w,h-=w),h<15&&(f+=(255&r.charCodeAt(a++))<<h,h+=8,f+=(255&r.charCodeAt(a++))<<h,h+=8),S=g[m+(f&y)];n:for(;;){if(f>>>=w=S.bits,h-=w,!(16&(w=S.op))){if(0==(64&w)){S=g[m+(S.val+(f&(1<<w)-1))];continue n}e.msg="invalid distance code",n.mode=BAD;break e}if(C=S.val,h<(w&=15)&&(f+=(255&r.charCodeAt(a++))<<h,(h+=8)<w&&(f+=(255&r.charCodeAt(a++))<<h,h+=8)),C+=f&(1<<w)-1,f>>>=w,h-=w,C>(w=i-s)){if((w=C-w)>c&&n.sane){e.msg="invalid distance too far back",n.mode=BAD;break e}E=0,x=-1,0==d?(E+=u-w,w<k&&(k-=w,e.output_data+=p.substring(E,E+w),i+=w,w=0,E=-1,x=i-C)):(E+=d-w,w<k&&(k-=w,e.output_data+=p.substring(E,E+w),E=-1,x=(i+=w)-C))}else E=-1,x=i-C;if(E>=0)e.output_data+=p.substring(E,E+k),i+=k,E+=k;else{var _=k;for(_>i-x&&(_=i-x),e.output_data+=e.output_data.substring(x,x+_),i+=_,x+=_,i+=k-=_;k>2;)e.output_data+=e.output_data.charAt(x++),e.output_data+=e.output_data.charAt(x++),e.output_data+=e.output_data.charAt(x++),k-=3;k&&(e.output_data+=e.output_data.charAt(x++),k>1&&(e.output_data+=e.output_data.charAt(x++)))}break n}}break t}}while(a<o&&i<l);a-=k=h>>>3,f&=(1<<(h-=k<<3))-1,e.next_in=a,e.next_out=i,e.avail_in=a<o?o-a+5:5-(a-o),e.avail_out=i<l?l-i+257:257-(i-l),n.hold=f,n.bits=h}function new_array(e){var t,n=new Array(e);for(t=0;t<e;t++)n[t]=0;return n}function getarg(e,t,n){return e&&t in e?e[t]:n}function checksum_none(){return 0}function inflate_state(){var e;this.mode=0,this.last=0,this.wrap=0,this.havedict=0,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=0,this.distcode=0,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=0,this.lens=new_array(320),this.work=new_array(288),this.codes=new Array(ENOUGH);var t={op:0,bits:0,val:0};for(e=0;e<ENOUGH;e++)this.codes[e]=t;this.sane=0,this.back=0,this.was=0}ZLIB.inflate_copyright=" inflate 1.2.6 Copyright 1995-2012 Mark Adler ",ZLIB.inflateResetKeep=function(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg=null,t.wrap&&(e.adler=1&t.wrap),t.mode=HEAD,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=0,t.distcode=0,t.next=0,t.sane=1,t.back=-1,ZLIB.Z_OK):ZLIB.Z_STREAM_ERROR},ZLIB.inflateReset=function(e,t){var n,r;return e&&e.state?(r=e.state,void 0===t&&(t=DEF_WBITS),t<0?(n=0,t=-t):(n=1+(t>>>4),t<48&&(t&=15)),1==n&&"function"==typeof ZLIB.adler32?e.checksum_function=ZLIB.adler32:2==n&&"function"==typeof ZLIB.crc32?e.checksum_function=ZLIB.crc32:e.checksum_function=checksum_none,t&&(t<8||t>15)?ZLIB.Z_STREAM_ERROR:(r.window&&r.wbits!=t&&(r.window=null),r.wrap=n,r.wbits=t,r.wsize=0,r.whave=0,r.wnext=0,ZLIB.inflateResetKeep(e))):ZLIB.Z_STREAM_ERROR},ZLIB.inflateInit=function(e){var t=new ZLIB.z_stream;return t.state=new inflate_state,ZLIB.inflateReset(t,e),t},ZLIB.inflatePrime=function(e,t,n){var r;return e&&e.state?(r=e.state,t<0?(r.hold=0,r.bits=0,ZLIB.Z_OK):t>16||r.bits+t>32?ZLIB.Z_STREAM_ERROR:(n&=(1<<t)-1,r.hold+=n<<r.bits,r.bits+=t,ZLIB.Z_OK)):ZLIB.Z_STREAM_ERROR};var lenfix_ary=null,lenfix_def="([ {op:96,bits:7,val:0},{op:0,bits:8,val:80},{op:0,bits:8,val:16},{op:20,bits:8,val:115},{op:18,bits:7,val:31},{op:0,bits:8,val:112},{op:0,bits:8,val:48}, {op:0,bits:9,val:192},{op:16,bits:7,val:10},{op:0,bits:8,val:96},{op:0,bits:8,val:32},{op:0,bits:9,val:160},{op:0,bits:8,val:0},{op:0,bits:8,val:128}, {op:0,bits:8,val:64},{op:0,bits:9,val:224},{op:16,bits:7,val:6},{op:0,bits:8,val:88},{op:0,bits:8,val:24},{op:0,bits:9,val:144},{op:19,bits:7,val:59}, {op:0,bits:8,val:120},{op:0,bits:8,val:56},{op:0,bits:9,val:208},{op:17,bits:7,val:17},{op:0,bits:8,val:104},{op:0,bits:8,val:40},{op:0,bits:9,val:176}, {op:0,bits:8,val:8},{op:0,bits:8,val:136},{op:0,bits:8,val:72},{op:0,bits:9,val:240},{op:16,bits:7,val:4},{op:0,bits:8,val:84},{op:0,bits:8,val:20}, {op:21,bits:8,val:227},{op:19,bits:7,val:43},{op:0,bits:8,val:116},{op:0,bits:8,val:52},{op:0,bits:9,val:200},{op:17,bits:7,val:13},{op:0,bits:8,val:100}, {op:0,bits:8,val:36},{op:0,bits:9,val:168},{op:0,bits:8,val:4},{op:0,bits:8,val:132},{op:0,bits:8,val:68},{op:0,bits:9,val:232},{op:16,bits:7,val:8}, {op:0,bits:8,val:92},{op:0,bits:8,val:28},{op:0,bits:9,val:152},{op:20,bits:7,val:83},{op:0,bits:8,val:124},{op:0,bits:8,val:60},{op:0,bits:9,val:216}, {op:18,bits:7,val:23},{op:0,bits:8,val:108},{op:0,bits:8,val:44},{op:0,bits:9,val:184},{op:0,bits:8,val:12},{op:0,bits:8,val:140},{op:0,bits:8,val:76}, {op:0,bits:9,val:248},{op:16,bits:7,val:3},{op:0,bits:8,val:82},{op:0,bits:8,val:18},{op:21,bits:8,val:163},{op:19,bits:7,val:35},{op:0,bits:8,val:114}, {op:0,bits:8,val:50},{op:0,bits:9,val:196},{op:17,bits:7,val:11},{op:0,bits:8,val:98},{op:0,bits:8,val:34},{op:0,bits:9,val:164},{op:0,bits:8,val:2}, {op:0,bits:8,val:130},{op:0,bits:8,val:66},{op:0,bits:9,val:228},{op:16,bits:7,val:7},{op:0,bits:8,val:90},{op:0,bits:8,val:26},{op:0,bits:9,val:148}, {op:20,bits:7,val:67},{op:0,bits:8,val:122},{op:0,bits:8,val:58},{op:0,bits:9,val:212},{op:18,bits:7,val:19},{op:0,bits:8,val:106},{op:0,bits:8,val:42}, {op:0,bits:9,val:180},{op:0,bits:8,val:10},{op:0,bits:8,val:138},{op:0,bits:8,val:74},{op:0,bits:9,val:244},{op:16,bits:7,val:5},{op:0,bits:8,val:86}, {op:0,bits:8,val:22},{op:64,bits:8,val:0},{op:19,bits:7,val:51},{op:0,bits:8,val:118},{op:0,bits:8,val:54},{op:0,bits:9,val:204},{op:17,bits:7,val:15}, {op:0,bits:8,val:102},{op:0,bits:8,val:38},{op:0,bits:9,val:172},{op:0,bits:8,val:6},{op:0,bits:8,val:134},{op:0,bits:8,val:70},{op:0,bits:9,val:236}, {op:16,bits:7,val:9},{op:0,bits:8,val:94},{op:0,bits:8,val:30},{op:0,bits:9,val:156},{op:20,bits:7,val:99},{op:0,bits:8,val:126},{op:0,bits:8,val:62}, {op:0,bits:9,val:220},{op:18,bits:7,val:27},{op:0,bits:8,val:110},{op:0,bits:8,val:46},{op:0,bits:9,val:188},{op:0,bits:8,val:14},{op:0,bits:8,val:142}, {op:0,bits:8,val:78},{op:0,bits:9,val:252},{op:96,bits:7,val:0},{op:0,bits:8,val:81},{op:0,bits:8,val:17},{op:21,bits:8,val:131},{op:18,bits:7,val:31}, {op:0,bits:8,val:113},{op:0,bits:8,val:49},{op:0,bits:9,val:194},{op:16,bits:7,val:10},{op:0,bits:8,val:97},{op:0,bits:8,val:33},{op:0,bits:9,val:162}, {op:0,bits:8,val:1},{op:0,bits:8,val:129},{op:0,bits:8,val:65},{op:0,bits:9,val:226},{op:16,bits:7,val:6},{op:0,bits:8,val:89},{op:0,bits:8,val:25}, {op:0,bits:9,val:146},{op:19,bits:7,val:59},{op:0,bits:8,val:121},{op:0,bits:8,val:57},{op:0,bits:9,val:210},{op:17,bits:7,val:17},{op:0,bits:8,val:105}, {op:0,bits:8,val:41},{op:0,bits:9,val:178},{op:0,bits:8,val:9},{op:0,bits:8,val:137},{op:0,bits:8,val:73},{op:0,bits:9,val:242},{op:16,bits:7,val:4}, {op:0,bits:8,val:85},{op:0,bits:8,val:21},{op:16,bits:8,val:258},{op:19,bits:7,val:43},{op:0,bits:8,val:117},{op:0,bits:8,val:53},{op:0,bits:9,val:202}, {op:17,bits:7,val:13},{op:0,bits:8,val:101},{op:0,bits:8,val:37},{op:0,bits:9,val:170},{op:0,bits:8,val:5},{op:0,bits:8,val:133},{op:0,bits:8,val:69}, {op:0,bits:9,val:234},{op:16,bits:7,val:8},{op:0,bits:8,val:93},{op:0,bits:8,val:29},{op:0,bits:9,val:154},{op:20,bits:7,val:83},{op:0,bits:8,val:125}, {op:0,bits:8,val:61},{op:0,bits:9,val:218},{op:18,bits:7,val:23},{op:0,bits:8,val:109},{op:0,bits:8,val:45},{op:0,bits:9,val:186},{op:0,bits:8,val:13}, {op:0,bits:8,val:141},{op:0,bits:8,val:77},{op:0,bits:9,val:250},{op:16,bits:7,val:3},{op:0,bits:8,val:83},{op:0,bits:8,val:19},{op:21,bits:8,val:195}, {op:19,bits:7,val:35},{op:0,bits:8,val:115},{op:0,bits:8,val:51},{op:0,bits:9,val:198},{op:17,bits:7,val:11},{op:0,bits:8,val:99},{op:0,bits:8,val:35}, {op:0,bits:9,val:166},{op:0,bits:8,val:3},{op:0,bits:8,val:131},{op:0,bits:8,val:67},{op:0,bits:9,val:230},{op:16,bits:7,val:7},{op:0,bits:8,val:91}, {op:0,bits:8,val:27},{op:0,bits:9,val:150},{op:20,bits:7,val:67},{op:0,bits:8,val:123},{op:0,bits:8,val:59},{op:0,bits:9,val:214},{op:18,bits:7,val:19}, {op:0,bits:8,val:107},{op:0,bits:8,val:43},{op:0,bits:9,val:182},{op:0,bits:8,val:11},{op:0,bits:8,val:139},{op:0,bits:8,val:75},{op:0,bits:9,val:246}, {op:16,bits:7,val:5},{op:0,bits:8,val:87},{op:0,bits:8,val:23},{op:64,bits:8,val:0},{op:19,bits:7,val:51},{op:0,bits:8,val:119},{op:0,bits:8,val:55}, {op:0,bits:9,val:206},{op:17,bits:7,val:15},{op:0,bits:8,val:103},{op:0,bits:8,val:39},{op:0,bits:9,val:174},{op:0,bits:8,val:7},{op:0,bits:8,val:135}, {op:0,bits:8,val:71},{op:0,bits:9,val:238},{op:16,bits:7,val:9},{op:0,bits:8,val:95},{op:0,bits:8,val:31},{op:0,bits:9,val:158},{op:20,bits:7,val:99}, {op:0,bits:8,val:127},{op:0,bits:8,val:63},{op:0,bits:9,val:222},{op:18,bits:7,val:27},{op:0,bits:8,val:111},{op:0,bits:8,val:47},{op:0,bits:9,val:190}, {op:0,bits:8,val:15},{op:0,bits:8,val:143},{op:0,bits:8,val:79},{op:0,bits:9,val:254},{op:96,bits:7,val:0},{op:0,bits:8,val:80},{op:0,bits:8,val:16}, {op:20,bits:8,val:115},{op:18,bits:7,val:31},{op:0,bits:8,val:112},{op:0,bits:8,val:48},{op:0,bits:9,val:193},{op:16,bits:7,val:10},{op:0,bits:8,val:96}, {op:0,bits:8,val:32},{op:0,bits:9,val:161},{op:0,bits:8,val:0},{op:0,bits:8,val:128},{op:0,bits:8,val:64},{op:0,bits:9,val:225},{op:16,bits:7,val:6}, {op:0,bits:8,val:88},{op:0,bits:8,val:24},{op:0,bits:9,val:145},{op:19,bits:7,val:59},{op:0,bits:8,val:120},{op:0,bits:8,val:56},{op:0,bits:9,val:209}, {op:17,bits:7,val:17},{op:0,bits:8,val:104},{op:0,bits:8,val:40},{op:0,bits:9,val:177},{op:0,bits:8,val:8},{op:0,bits:8,val:136},{op:0,bits:8,val:72}, {op:0,bits:9,val:241},{op:16,bits:7,val:4},{op:0,bits:8,val:84},{op:0,bits:8,val:20},{op:21,bits:8,val:227},{op:19,bits:7,val:43},{op:0,bits:8,val:116}, {op:0,bits:8,val:52},{op:0,bits:9,val:201},{op:17,bits:7,val:13},{op:0,bits:8,val:100},{op:0,bits:8,val:36},{op:0,bits:9,val:169},{op:0,bits:8,val:4}, {op:0,bits:8,val:132},{op:0,bits:8,val:68},{op:0,bits:9,val:233},{op:16,bits:7,val:8},{op:0,bits:8,val:92},{op:0,bits:8,val:28},{op:0,bits:9,val:153}, {op:20,bits:7,val:83},{op:0,bits:8,val:124},{op:0,bits:8,val:60},{op:0,bits:9,val:217},{op:18,bits:7,val:23},{op:0,bits:8,val:108},{op:0,bits:8,val:44}, {op:0,bits:9,val:185},{op:0,bits:8,val:12},{op:0,bits:8,val:140},{op:0,bits:8,val:76},{op:0,bits:9,val:249},{op:16,bits:7,val:3},{op:0,bits:8,val:82}, {op:0,bits:8,val:18},{op:21,bits:8,val:163},{op:19,bits:7,val:35},{op:0,bits:8,val:114},{op:0,bits:8,val:50},{op:0,bits:9,val:197},{op:17,bits:7,val:11}, {op:0,bits:8,val:98},{op:0,bits:8,val:34},{op:0,bits:9,val:165},{op:0,bits:8,val:2},{op:0,bits:8,val:130},{op:0,bits:8,val:66},{op:0,bits:9,val:229}, {op:16,bits:7,val:7},{op:0,bits:8,val:90},{op:0,bits:8,val:26},{op:0,bits:9,val:149},{op:20,bits:7,val:67},{op:0,bits:8,val:122},{op:0,bits:8,val:58}, {op:0,bits:9,val:213},{op:18,bits:7,val:19},{op:0,bits:8,val:106},{op:0,bits:8,val:42},{op:0,bits:9,val:181},{op:0,bits:8,val:10},{op:0,bits:8,val:138}, {op:0,bits:8,val:74},{op:0,bits:9,val:245},{op:16,bits:7,val:5},{op:0,bits:8,val:86},{op:0,bits:8,val:22},{op:64,bits:8,val:0},{op:19,bits:7,val:51}, {op:0,bits:8,val:118},{op:0,bits:8,val:54},{op:0,bits:9,val:205},{op:17,bits:7,val:15},{op:0,bits:8,val:102},{op:0,bits:8,val:38},{op:0,bits:9,val:173}, {op:0,bits:8,val:6},{op:0,bits:8,val:134},{op:0,bits:8,val:70},{op:0,bits:9,val:237},{op:16,bits:7,val:9},{op:0,bits:8,val:94},{op:0,bits:8,val:30}, {op:0,bits:9,val:157},{op:20,bits:7,val:99},{op:0,bits:8,val:126},{op:0,bits:8,val:62},{op:0,bits:9,val:221},{op:18,bits:7,val:27},{op:0,bits:8,val:110}, {op:0,bits:8,val:46},{op:0,bits:9,val:189},{op:0,bits:8,val:14},{op:0,bits:8,val:142},{op:0,bits:8,val:78},{op:0,bits:9,val:253},{op:96,bits:7,val:0}, {op:0,bits:8,val:81},{op:0,bits:8,val:17},{op:21,bits:8,val:131},{op:18,bits:7,val:31},{op:0,bits:8,val:113},{op:0,bits:8,val:49},{op:0,bits:9,val:195}, {op:16,bits:7,val:10},{op:0,bits:8,val:97},{op:0,bits:8,val:33},{op:0,bits:9,val:163},{op:0,bits:8,val:1},{op:0,bits:8,val:129},{op:0,bits:8,val:65}, {op:0,bits:9,val:227},{op:16,bits:7,val:6},{op:0,bits:8,val:89},{op:0,bits:8,val:25},{op:0,bits:9,val:147},{op:19,bits:7,val:59},{op:0,bits:8,val:121}, {op:0,bits:8,val:57},{op:0,bits:9,val:211},{op:17,bits:7,val:17},{op:0,bits:8,val:105},{op:0,bits:8,val:41},{op:0,bits:9,val:179},{op:0,bits:8,val:9}, {op:0,bits:8,val:137},{op:0,bits:8,val:73},{op:0,bits:9,val:243},{op:16,bits:7,val:4},{op:0,bits:8,val:85},{op:0,bits:8,val:21},{op:16,bits:8,val:258}, {op:19,bits:7,val:43},{op:0,bits:8,val:117},{op:0,bits:8,val:53},{op:0,bits:9,val:203},{op:17,bits:7,val:13},{op:0,bits:8,val:101},{op:0,bits:8,val:37}, {op:0,bits:9,val:171},{op:0,bits:8,val:5},{op:0,bits:8,val:133},{op:0,bits:8,val:69},{op:0,bits:9,val:235},{op:16,bits:7,val:8},{op:0,bits:8,val:93}, {op:0,bits:8,val:29},{op:0,bits:9,val:155},{op:20,bits:7,val:83},{op:0,bits:8,val:125},{op:0,bits:8,val:61},{op:0,bits:9,val:219},{op:18,bits:7,val:23}, {op:0,bits:8,val:109},{op:0,bits:8,val:45},{op:0,bits:9,val:187},{op:0,bits:8,val:13},{op:0,bits:8,val:141},{op:0,bits:8,val:77},{op:0,bits:9,val:251}, {op:16,bits:7,val:3},{op:0,bits:8,val:83},{op:0,bits:8,val:19},{op:21,bits:8,val:195},{op:19,bits:7,val:35},{op:0,bits:8,val:115},{op:0,bits:8,val:51}, {op:0,bits:9,val:199},{op:17,bits:7,val:11},{op:0,bits:8,val:99},{op:0,bits:8,val:35},{op:0,bits:9,val:167},{op:0,bits:8,val:3},{op:0,bits:8,val:131}, {op:0,bits:8,val:67},{op:0,bits:9,val:231},{op:16,bits:7,val:7},{op:0,bits:8,val:91},{op:0,bits:8,val:27},{op:0,bits:9,val:151},{op:20,bits:7,val:67}, {op:0,bits:8,val:123},{op:0,bits:8,val:59},{op:0,bits:9,val:215},{op:18,bits:7,val:19},{op:0,bits:8,val:107},{op:0,bits:8,val:43},{op:0,bits:9,val:183}, {op:0,bits:8,val:11},{op:0,bits:8,val:139},{op:0,bits:8,val:75},{op:0,bits:9,val:247},{op:16,bits:7,val:5},{op:0,bits:8,val:87},{op:0,bits:8,val:23}, {op:64,bits:8,val:0},{op:19,bits:7,val:51},{op:0,bits:8,val:119},{op:0,bits:8,val:55},{op:0,bits:9,val:207},{op:17,bits:7,val:15},{op:0,bits:8,val:103}, {op:0,bits:8,val:39},{op:0,bits:9,val:175},{op:0,bits:8,val:7},{op:0,bits:8,val:135},{op:0,bits:8,val:71},{op:0,bits:9,val:239},{op:16,bits:7,val:9}, {op:0,bits:8,val:95},{op:0,bits:8,val:31},{op:0,bits:9,val:159},{op:20,bits:7,val:99},{op:0,bits:8,val:127},{op:0,bits:8,val:63},{op:0,bits:9,val:223}, {op:18,bits:7,val:27},{op:0,bits:8,val:111},{op:0,bits:8,val:47},{op:0,bits:9,val:191},{op:0,bits:8,val:15},{op:0,bits:8,val:143},{op:0,bits:8,val:79}, {op:0,bits:9,val:255}])",distfix_ary=null,distfix_def="([ {op:16,bits:5,val:1},{op:23,bits:5,val:257},{op:19,bits:5,val:17},{op:27,bits:5,val:4097},{op:17,bits:5,val:5},{op:25,bits:5,val:1025}, {op:21,bits:5,val:65},{op:29,bits:5,val:16385},{op:16,bits:5,val:3},{op:24,bits:5,val:513},{op:20,bits:5,val:33},{op:28,bits:5,val:8193}, {op:18,bits:5,val:9},{op:26,bits:5,val:2049},{op:22,bits:5,val:129},{op:64,bits:5,val:0},{op:16,bits:5,val:2},{op:23,bits:5,val:385}, {op:19,bits:5,val:25},{op:27,bits:5,val:6145},{op:17,bits:5,val:7},{op:25,bits:5,val:1537},{op:21,bits:5,val:97},{op:29,bits:5,val:24577}, {op:16,bits:5,val:4},{op:24,bits:5,val:769},{op:20,bits:5,val:49},{op:28,bits:5,val:12289},{op:18,bits:5,val:13},{op:26,bits:5,val:3073}, {op:22,bits:5,val:193},{op:64,bits:5,val:0}])";function fixedtables(state){var i;for(lenfix_ary||(lenfix_ary=eval(lenfix_def)),distfix_ary||(distfix_ary=eval(distfix_def)),state.lencode=0,state.distcode=512,i=0;i<512;i++)state.codes[i]=lenfix_ary[i];for(i=0;i<32;i++)state.codes[i+512]=distfix_ary[i];state.lenbits=9,state.distbits=5}function updatewindow(e){var t=e.state,n=e.output_data.length;return null===t.window&&(t.window=""),0==t.wsize&&(t.wsize=1<<t.wbits),n>=t.wsize?t.window=e.output_data.substring(n-t.wsize):t.whave+n<t.wsize?t.window+=e.output_data:t.window=t.window.substring(t.whave-(t.wsize-n))+e.output_data,t.whave=t.window.length,t.whave<t.wsize?t.wnext=t.whave:t.wnext=0,0}function CRC2(e,t){var n=[255&t,t>>>8&255];e.state.check=e.checksum_function(e.state.check,n,0,2)}function CRC4(e,t){var n=[255&t,t>>>8&255,t>>>16&255,t>>>24&255];e.state.check=e.checksum_function(e.state.check,n,0,4)}function LOAD(e,t){return t.strm=e,t.left=e.avail_out,t.next=e.next_in,t.have=e.avail_in,t.hold=e.state.hold,t.bits=e.state.bits,t}function RESTORE(e){var t=e.strm;t.next_in=e.next,t.avail_out=e.left,t.avail_in=e.have,t.state.hold=e.hold,t.state.bits=e.bits}function INITBITS(e){e.hold=0,e.bits=0}function PULLBYTE(e){return 0!=e.have&&(e.have--,e.hold+=(255&e.strm.input_data.charCodeAt(e.next++))<<e.bits,e.bits+=8,!0)}function NEEDBITS(e,t){for(;e.bits<t;)if(!PULLBYTE(e))return!1;return!0}function BITS(e,t){return e.hold&(1<<t)-1}function DROPBITS(e,t){e.hold>>>=t,e.bits-=t}function BYTEBITS(e){e.hold>>>=7&e.bits,e.bits-=7&e.bits}function REVERSE(e){return(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}var inflate_order=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];ZLIB.inflate=function(e,t){var n,r,a,o,i,s,l,u,c,d=-1,p=-1;if(!e||!e.state||!e.input_data&&0!=e.avail_in)return ZLIB.Z_STREAM_ERROR;(n=e.state).mode==TYPE&&(n.mode=TYPEDO),LOAD(e,r={}),a=r.have,o=r.left,c=ZLIB.Z_OK;e:for(;;)switch(n.mode){case HEAD:if(0==n.wrap){n.mode=TYPEDO;break}if(!NEEDBITS(r,16))break e;if(2&n.wrap&&35615==r.hold){n.check=e.checksum_function(0,null,0,0),CRC2(e,r.hold),INITBITS(r),n.mode=FLAGS;break}if(n.flags=0,null!==n.head&&(n.head.done=-1),!(1&n.wrap)||((BITS(r,8)<<8)+(r.hold>>>8))%31){e.msg="incorrect header check",n.mode=BAD;break}if(BITS(r,4)!=ZLIB.Z_DEFLATED){e.msg="unknown compression method",n.mode=BAD;break}if(DROPBITS(r,4),u=BITS(r,4)+8,0==n.wbits)n.wbits=u;else if(u>n.wbits){e.msg="invalid window size",n.mode=BAD;break}n.dmax=1<<u,e.adler=n.check=e.checksum_function(0,null,0,0),n.mode=512&r.hold?DICTID:TYPE,INITBITS(r);break;case FLAGS:if(!NEEDBITS(r,16))break e;if(n.flags=r.hold,(255&n.flags)!=ZLIB.Z_DEFLATED){e.msg="unknown compression method",n.mode=BAD;break}if(57344&n.flags){e.msg="unknown header flags set",n.mode=BAD;break}null!==n.head&&(n.head.text=r.hold>>>8&1),512&n.flags&&CRC2(e,r.hold),INITBITS(r),n.mode=TIME;case TIME:if(!NEEDBITS(r,32))break e;null!==n.head&&(n.head.time=r.hold),512&n.flags&&CRC4(e,r.hold),INITBITS(r),n.mode=OS;case OS:if(!NEEDBITS(r,16))break e;null!==n.head&&(n.head.xflags=255&r.hold,n.head.os=r.hold>>>8),512&n.flags&&CRC2(e,r.hold),INITBITS(r),n.mode=EXLEN;case EXLEN:if(1024&n.flags){if(!NEEDBITS(r,16))break e;n.length=r.hold,null!==n.head&&(n.head.extra_len=r.hold),512&n.flags&&CRC2(e,r.hold),INITBITS(r),n.head.extra=""}else null!==n.head&&(n.head.extra=null);n.mode=EXTRA;case EXTRA:if(1024&n.flags&&((i=n.length)>r.have&&(i=r.have),i&&(null!==n.head&&null!==n.head.extra&&(u=n.head.extra_len-n.length,n.head.extra+=e.input_data.substring(r.next,r.next+(u+i>n.head.extra_max?n.head.extra_max-u:i))),512&n.flags&&(n.check=e.checksum_function(n.check,e.input_data,r.next,i)),r.have-=i,r.next+=i,n.length-=i),n.length))break e;n.length=0,n.mode=NAME;case NAME:if(2048&n.flags){if(0==r.have)break e;null!==n.head&&null===n.head.name&&(n.head.name=""),i=0;do{if(u=e.input_data.charAt(r.next+i),i++,"\0"===u)break;null!==n.head&&n.length<n.head.name_max&&(n.head.name+=u,n.length++)}while(i<r.have);if(512&n.flags&&(n.check=e.checksum_function(n.check,e.input_data,r.next,i)),r.have-=i,r.next+=i,"\0"!==u)break e}else null!==n.head&&(n.head.name=null);n.length=0,n.mode=COMMENT;case COMMENT:if(4096&n.flags){if(0==r.have)break e;i=0,null!==n.head&&null===n.head.comment&&(n.head.comment="");do{if(u=e.input_data.charAt(r.next+i),i++,"\0"===u)break;null!==n.head&&n.length<n.head.comm_max&&(n.head.comment+=u,n.length++)}while(i<r.have);if(512&n.flags&&(n.check=e.checksum_function(n.check,e.input_data,r.next,i)),r.have-=i,r.next+=i,"\0"!==u)break e}else null!==n.head&&(n.head.comment=null);n.mode=HCRC;case HCRC:if(512&n.flags){if(!NEEDBITS(r,16))break e;if(r.hold!=(65535&n.check)){e.msg="header crc mismatch",n.mode=BAD;break}INITBITS(r)}null!==n.head&&(n.head.hcrc=n.flags>>>9&1,n.head.done=1),e.adler=n.check=e.checksum_function(0,null,0,0),n.mode=TYPE;break;case DICTID:if(!NEEDBITS(r,32))break e;e.adler=n.check=REVERSE(r.hold),INITBITS(r),n.mode=DICT;case DICT:if(0==n.havedict)return RESTORE(r),ZLIB.Z_NEED_DICT;e.adler=n.check=e.checksum_function(0,null,0,0),n.mode=TYPE;case TYPE:if(t==ZLIB.Z_BLOCK||t==ZLIB.Z_TREES)break e;case TYPEDO:if(n.last){BYTEBITS(r),n.mode=CHECK;break}if(!NEEDBITS(r,3))break e;switch(n.last=BITS(r,1),DROPBITS(r,1),BITS(r,2)){case 0:n.mode=STORED;break;case 1:if(fixedtables(n),n.mode=LEN_,t==ZLIB.Z_TREES){DROPBITS(r,2);break e}break;case 2:n.mode=TABLE;break;case 3:e.msg="invalid block type",n.mode=BAD}DROPBITS(r,2);break;case STORED:if(BYTEBITS(r),!NEEDBITS(r,32))break e;if((65535&r.hold)!=(r.hold>>>16&65535^65535)){e.msg="invalid stored block lengths",n.mode=BAD;break}if(n.length=65535&r.hold,INITBITS(r),n.mode=COPY_,t==ZLIB.Z_TREES)break e;case COPY_:n.mode=COPY;case COPY:if(i=n.length){if(i>r.have&&(i=r.have),i>r.left&&(i=r.left),0==i)break e;e.output_data+=e.input_data.substring(r.next,r.next+i),e.next_out+=i,r.have-=i,r.next+=i,r.left-=i,n.length-=i;break}n.mode=TYPE;break;case TABLE:if(!NEEDBITS(r,14))break e;if(n.nlen=BITS(r,5)+257,DROPBITS(r,5),n.ndist=BITS(r,5)+1,DROPBITS(r,5),n.ncode=BITS(r,4)+4,DROPBITS(r,4),n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=BAD;break}n.have=0,n.mode=LENLENS;case LENLENS:for(;n.have<n.ncode;){if(!NEEDBITS(r,3))break e;var f=BITS(r,3);n.lens[inflate_order[n.have++]]=f,DROPBITS(r,3)}for(;n.have<19;)n.lens[inflate_order[n.have++]]=0;if(n.next=0,n.lencode=0,n.lenbits=7,c=inflate_table(n,CODES)){e.msg="invalid code lengths set",n.mode=BAD;break}n.have=0,n.mode=CODELENS;case CODELENS:for(;n.have<n.nlen+n.ndist;){for(;!((s=n.codes[n.lencode+BITS(r,n.lenbits)]).bits<=r.bits);)if(!PULLBYTE(r))break e;if(s.val<16)DROPBITS(r,s.bits),n.lens[n.have++]=s.val;else{if(16==s.val){if(!NEEDBITS(r,s.bits+2))break e;if(DROPBITS(r,s.bits),0==n.have){e.msg="invalid bit length repeat",n.mode=BAD;break}u=n.lens[n.have-1],i=3+BITS(r,2),DROPBITS(r,2)}else if(17==s.val){if(!NEEDBITS(r,s.bits+3))break e;DROPBITS(r,s.bits),u=0,i=3+BITS(r,3),DROPBITS(r,3)}else{if(!NEEDBITS(r,s.bits+7))break e;DROPBITS(r,s.bits),u=0,i=11+BITS(r,7),DROPBITS(r,7)}if(n.have+i>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=BAD;break}for(;i--;)n.lens[n.have++]=u}}if(n.mode==BAD)break;if(0==n.lens[256]){e.msg="invalid code -- missing end-of-block",n.mode=BAD;break}if(n.next=0,n.lencode=n.next,n.lenbits=9,c=inflate_table(n,LENS)){e.msg="invalid literal/lengths set",n.mode=BAD;break}if(n.distcode=n.next,n.distbits=6,c=inflate_table(n,DISTS)){e.msg="invalid distances set",n.mode=BAD;break}if(n.mode=LEN_,t==ZLIB.Z_TREES)break e;case LEN_:n.mode=LEN;case LEN:if(r.have>=6&&r.left>=258){RESTORE(r),inflate_fast(e,o),LOAD(e,r),n.mode==TYPE&&(n.back=-1);break}for(n.back=0;!((s=n.codes[n.lencode+BITS(r,n.lenbits)]).bits<=r.bits);)if(!PULLBYTE(r))break e;if(s.op&&0==(240&s.op)){for(l=s;s=n.codes[n.lencode+l.val+(BITS(r,l.bits+l.op)>>>l.bits)],!(l.bits+s.bits<=r.bits);)if(!PULLBYTE(r))break e;DROPBITS(r,l.bits),n.back+=l.bits}if(DROPBITS(r,s.bits),n.back+=s.bits,n.length=s.val,0==s.op){n.mode=LIT;break}if(32&s.op){n.back=-1,n.mode=TYPE;break}if(64&s.op){e.msg="invalid literal/length code",n.mode=BAD;break}n.extra=15&s.op,n.mode=LENEXT;case LENEXT:if(n.extra){if(!NEEDBITS(r,n.extra))break e;n.length+=BITS(r,n.extra),DROPBITS(r,n.extra),n.back+=n.extra}n.was=n.length,n.mode=DIST;case DIST:for(;!((s=n.codes[n.distcode+BITS(r,n.distbits)]).bits<=r.bits);)if(!PULLBYTE(r))break e;if(0==(240&s.op)){for(l=s;s=n.codes[n.distcode+l.val+(BITS(r,l.bits+l.op)>>>l.bits)],!(l.bits+s.bits<=r.bits);)if(!PULLBYTE(r))break e;DROPBITS(r,l.bits),n.back+=l.bits}if(DROPBITS(r,s.bits),n.back+=s.bits,64&s.op){e.msg="invalid distance code",n.mode=BAD;break}n.offset=s.val,n.extra=15&s.op,n.mode=DISTEXT;case DISTEXT:if(n.extra){if(!NEEDBITS(r,n.extra))break e;n.offset+=BITS(r,n.extra),DROPBITS(r,n.extra),n.back+=n.extra}n.mode=MATCH;case MATCH:if(0==r.left)break e;if(i=o-r.left,n.offset>i){if((i=n.offset-i)>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=BAD;break}i>n.wnext?(i-=n.wnext,d=n.wsize-i,p=-1):(d=n.wnext-i,p=-1),i>n.length&&(i=n.length)}else d=-1,p=e.next_out-n.offset,i=n.length;if(i>r.left&&(i=r.left),r.left-=i,n.length-=i,d>=0)e.output_data+=n.window.substring(d,d+i),e.next_out+=i,i=0;else{e.next_out+=i;do{e.output_data+=e.output_data.charAt(p++)}while(--i)}0==n.length&&(n.mode=LEN);break;case LIT:if(0==r.left)break e;e.output_data+=String.fromCharCode(n.length),e.next_out++,r.left--,n.mode=LEN;break;case CHECK:if(n.wrap){if(!NEEDBITS(r,32))break e;if(o-=r.left,e.total_out+=o,n.total+=o,o&&(e.adler=n.check=e.checksum_function(n.check,e.output_data,e.output_data.length-o,o)),o=r.left,(n.flags?r.hold:REVERSE(r.hold))!=n.check){e.msg="incorrect data check",n.mode=BAD;break}INITBITS(r)}n.mode=LENGTH;case LENGTH:if(n.wrap&&n.flags){if(!NEEDBITS(r,32))break e;if(r.hold!=(4294967295&n.total)){e.msg="incorrect length check",n.mode=BAD;break}INITBITS(r)}n.mode=DONE;case DONE:c=ZLIB.Z_STREAM_END;break e;case BAD:c=ZLIB.Z_DATA_ERROR;break e;case MEM:return ZLIB.Z_MEM_ERROR;default:return ZLIB.Z_STREAM_ERROR}return RESTORE(r),(n.wsize||o!=e.avail_out&&n.mode<BAD&&(n.mode<CHECK||t!=ZLIB.Z_FINISH))&&updatewindow(e)?(n.mode=MEM,ZLIB.Z_MEM_ERROR):(a-=e.avail_in,o-=e.avail_out,e.total_in+=a,e.total_out+=o,n.total+=o,n.wrap&&o&&(e.adler=n.check=e.checksum_function(n.check,e.output_data,0,e.output_data.length)),e.data_type=n.bits+(n.last?64:0)+(n.mode==TYPE?128:0)+(n.mode==LEN_||n.mode==COPY_?256:0),(0==a&&0==o||t==ZLIB.Z_FINISH)&&c==ZLIB.Z_OK&&(c=ZLIB.Z_BUF_ERROR),c)},ZLIB.inflateEnd=function(e){return e&&e.state?(e.state.window=null,e.state=null,ZLIB.Z_OK):ZLIB.Z_STREAM_ERROR},ZLIB.z_stream.prototype.inflate=function(e,t){var n,r;this.input_data=e,this.next_in=getarg(t,"next_in",0),this.avail_in=getarg(t,"avail_in",e.length-this.next_in),n=getarg(t,"flush",ZLIB.Z_SYNC_FLUSH),r=getarg(t,"avail_out",-1);var a="";do{if(this.avail_out=r>=0?r:16384,this.output_data="",this.next_out=0,this.error=ZLIB.inflate(this,n),0!=this.error&&console.log("zlib error",this.error),r>=0)return this.output_data;if(a+=this.output_data,this.avail_out>0)break}while(this.error==ZLIB.Z_OK);return a},ZLIB.z_stream.prototype.inflateReset=function(e){return ZLIB.inflateReset(this,e)}}(),void 0===ZLIB&&alert("ZLIB is not defined. SRC zlib.js before zlib-adler32.js"),BASE=65521,NMAX=5552,ZLIB.adler32=function(e,t,n,r){return"string"==typeof t?function(e,t,n,r){var a,o;if(a=e>>>16&65535,e&=65535,1==r)return(e+=255&t.charCodeAt(n))>=BASE&&(e-=BASE),(a+=e)>=BASE&&(a-=BASE),e|a<<16;if(null===t)return 1;if(r<16){for(;r--;)a+=e+=255&t.charCodeAt(n++);return e>=BASE&&(e-=BASE),e|(a%=BASE)<<16}for(;r>=NMAX;){r-=NMAX,o=347;do{a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++)}while(--o);e%=BASE,a%=BASE}if(r){for(;r>=16;)r-=16,a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++);for(;r--;)a+=e+=255&t.charCodeAt(n++);e%=BASE,a%=BASE}return e|a<<16}(e,t,n,r):function(e,t,n,r){var a,o;if(a=e>>>16&65535,e&=65535,1==r)return(e+=t[n])>=BASE&&(e-=BASE),(a+=e)>=BASE&&(a-=BASE),e|a<<16;if(null===t)return 1;if(r<16){for(;r--;)a+=e+=t[n++];return e>=BASE&&(e-=BASE),e|(a%=BASE)<<16}for(;r>=NMAX;){r-=NMAX,o=347;do{a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++]}while(--o);e%=BASE,a%=BASE}if(r){for(;r>=16;)r-=16,a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++];for(;r--;)a+=e+=t[n++];e%=BASE,a%=BASE}return e|a<<16}(e,t,n,r)},ZLIB.adler32_combine=function(e,t,n){var r,a,o;return n<0?4294967295:(a=(o=n%=BASE)*(r=65535&e),a%=BASE,(r+=(65535&t)+BASE-1)>=BASE&&(r-=BASE),r>=BASE&&(r-=BASE),(a+=(e>>16&65535)+(t>>16&65535)+BASE-o)>=131042&&(a-=131042),a>=BASE&&(a-=BASE),r|a<<16)},void 0===ZLIB&&alert("ZLIB is not defined. SRC zlib.js before zlib-crc32.js"),function(){var e=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];function t(e,t){var n,r=0;for(n=0;t;)1&t&&(n^=e[r]),t>>=1,r++;return n}function n(e,n){var r;for(r=0;r<32;r++)e[r]=t(n,n[r])}ZLIB.crc32=function(t,n,r,a){return"string"==typeof n?function(t,n,r,a){if(null==n)return 0;for(t^=4294967295;a>=8;)t=e[255&(t^n.charCodeAt(r++))]^t>>>8,t=e[255&(t^n.charCodeAt(r++))]^t>>>8,t=e[255&(t^n.charCodeAt(r++))]^t>>>8,t=e[255&(t^n.charCodeAt(r++))]^t>>>8,t=e[255&(t^n.charCodeAt(r++))]^t>>>8,t=e[255&(t^n.charCodeAt(r++))]^t>>>8,t=e[255&(t^n.charCodeAt(r++))]^t>>>8,t=e[255&(t^n.charCodeAt(r++))]^t>>>8,a-=8;if(a)do{t=e[255&(t^n.charCodeAt(r++))]^t>>>8}while(--a);return 4294967295^t}(t,n,r,a):function(t,n,r,a){if(null==n)return 0;for(t^=4294967295;a>=8;)t=e[255&(t^n[r++])]^t>>>8,t=e[255&(t^n[r++])]^t>>>8,t=e[255&(t^n[r++])]^t>>>8,t=e[255&(t^n[r++])]^t>>>8,t=e[255&(t^n[r++])]^t>>>8,t=e[255&(t^n[r++])]^t>>>8,t=e[255&(t^n[r++])]^t>>>8,t=e[255&(t^n[r++])]^t>>>8,a-=8;if(a)do{t=e[255&(t^n[r++])]^t>>>8}while(--a);return 4294967295^t}(t,n,r,a)},ZLIB.crc32_combine=function(e,r,a){var o,i,s,l;if(a<=0)return e;for(s=new Array(32),(l=new Array(32))[0]=3988292384,i=1,o=1;o<32;o++)l[o]=i,i<<=1;n(s,l),n(l,s);do{if(n(s,l),1&a&&(e=t(s,e)),0==(a>>=1))break;n(l,s),1&a&&(e=t(l,e)),a>>=1}while(0!=a);return e^r}}(),module.exports=ZLIB}},__webpack_module_cache__={};function __nested_webpack_require_78414__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var n=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e](n,n.exports,__nested_webpack_require_78414__),n.exports}__nested_webpack_require_78414__.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return __nested_webpack_require_78414__.d(t,{a:t}),t},__nested_webpack_require_78414__.d=(e,t)=>{for(var n in t)__nested_webpack_require_78414__.o(t,n)&&!__nested_webpack_require_78414__.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},__nested_webpack_require_78414__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__nested_webpack_require_78414__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};return(()=>{"use strict";__nested_webpack_require_78414__.r(__webpack_exports__),__nested_webpack_require_78414__.d(__webpack_exports__,{AMTDesktop:()=>e.r,AMTKvmDataRedirector:()=>t.N,AMTRedirector:()=>n.K,Protocol:()=>n.b,AmtTerminal:()=>r.r,ConsoleLogger:()=>a.k,TypeConverter:()=>o.r,Desktop:()=>i.H,StateProcessorFactory:()=>s.v,TerminalDataProcessor:()=>l.Q,LogLevel:()=>u.i,DataProcessor:()=>c.$,RLEDecoder:()=>c.X,Encoding:()=>d.ez,FrameBufferBellServerCutText:()=>d.Ut,HandshakeState:()=>d.wW,SecurityOptions:()=>d.ll,SecurityResponse:()=>d.mC,ServerInit:()=>d.Cu,AMTKeyCodeConverter:()=>p.qD,CommsHelper:()=>p.Xn,ImageHelper:()=>p.jw,KeyBoardHelper:()=>p.EB,MouseHelper:()=>p.xx,isTruthy:()=>p.fQ});var e=__nested_webpack_require_78414__(166),t=__nested_webpack_require_78414__(59),n=__nested_webpack_require_78414__(503),r=__nested_webpack_require_78414__(277),a=__nested_webpack_require_78414__(237),o=__nested_webpack_require_78414__(565),i=__nested_webpack_require_78414__(46),s=__nested_webpack_require_78414__(989),l=__nested_webpack_require_78414__(155),u=__nested_webpack_require_78414__(201),c=__nested_webpack_require_78414__(646),d=__nested_webpack_require_78414__(389),p=__nested_webpack_require_78414__(8)})(),__webpack_exports__})()},module.exports=e()},648:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(537),a=n.n(r),o=n(645),i=n.n(o)()(a());i.push([e.id,".button{margin-right:3px;padding:2px;min-width:90px}","",{version:3,sources:["webpack://./src/reactjs/KVM/ConnectButton.scss"],names:[],mappings:"AAKA,QACI,gBAAA,CACA,WAAA,CACA,cAAA",sourcesContent:["/*********************************************************************\n * Copyright (c) Intel Corporation 2019\n * SPDX-License-Identifier: Apache-2.0\n **********************************************************************/\n\n.button{\n margin-right: 3px;\n padding: 2px;\n min-width: 90px\n}"],sourceRoot:""}]);const s=i},625:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(537),a=n.n(r),o=n(645),i=n.n(o)()(a());i.push([e.id,".encoding{margin-left:10px}.encoding label{padding:2px;font-size:15px}.encoding select{padding:2px 0}.reldisabled{opacity:.5}","",{version:3,sources:["webpack://./src/reactjs/KVM/EncodingOptions.scss"],names:[],mappings:"AAKA,UACI,gBAAA,CAEF,gBACE,WAAA,CACA,cAAA,CAEF,iBACE,aAAA,CAGF,aACE,UAAA",sourcesContent:["/*********************************************************************\n * Copyright (c) Intel Corporation 2019\n * SPDX-License-Identifier: Apache-2.0\n **********************************************************************/\n \n.encoding {\n margin-left: 10px;\n }\n .encoding label { \n padding: 2px;\n font-size: 15px;\n }\n .encoding select {\n padding: 2px 0;\n }\n \n .reldisabled{\n opacity: 0.5;\n }"],sourceRoot:""}]);const s=i},734:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(537),a=n.n(r),o=n(645),i=n.n(o)()(a());i.push([e.id,".header{background-color:#a9a9a9;padding:5px;font-size:13px}","",{version:3,sources:["webpack://./src/reactjs/KVM/Header.scss"],names:[],mappings:"AAKA,QACE,wBAAA,CACA,WAAA,CACA,cAAA",sourcesContent:["/*********************************************************************\n * Copyright (c) Intel Corporation 2019\n * SPDX-License-Identifier: Apache-2.0\n **********************************************************************/\n \n.header {\n background-color: darkgray;\n padding: 5px;\n font-size: 13px;\n}\n"],sourceRoot:""}]);const s=i},250:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(537),a=n.n(r),o=n(645),i=n.n(o)()(a());i.push([e.id,".canvas{max-height:90%;max-width:100%}","",{version:3,sources:["webpack://./src/reactjs/KVM/PureCanvas.scss"],names:[],mappings:"AAKA,QACI,cAAA,CACA,cAAA",sourcesContent:["/*********************************************************************\n * Copyright (c) Intel Corporation 2019\n * SPDX-License-Identifier: Apache-2.0\n **********************************************************************/\n \n.canvas{\n max-height: 90%;\n max-width: 100%;\n}\n"],sourceRoot:""}]);const s=i},917:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(537),a=n.n(r),o=n(645),i=n.n(o)()(a());i.push([e.id,"*{margin:0;padding:0;box-sizing:border-box}.canvas-container{height:100vh;text-align:center;background-color:#fff}","",{version:3,sources:["webpack://./src/reactjs/KVM/UI.scss"],names:[],mappings:"AAKA,EACI,QAAA,CACA,SAAA,CACA,qBAAA,CAGJ,kBACG,YAAA,CACA,iBAAA,CACA,qBAAA",sourcesContent:["/*********************************************************************\n * Copyright (c) Intel Corporation 2019\n * SPDX-License-Identifier: Apache-2.0\n **********************************************************************/\n \n*{ // * refers every element and removes default margin padding that comes with html elements body, h1 etc\n margin:0;\n padding:0;\n box-sizing: border-box; //element padding and border are included in the width and height\n}\n\n.canvas-container{\n height: 100vh; \n text-align: center;\n background-color: #ffffff;\n}\n"],sourceRoot:""}]);const s=i},645:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n="",r=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),r&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),r&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n})).join("")},t.i=function(e,n,r,a,o){"string"==typeof e&&(e=[[null,e,void 0]]);var i={};if(r)for(var s=0;s<this.length;s++){var l=this[s][0];null!=l&&(i[l]=!0)}for(var u=0;u<e.length;u++){var c=[].concat(e[u]);r&&i[c[0]]||(void 0!==o&&(void 0===c[5]||(c[1]="@layer".concat(c[5].length>0?" ".concat(c[5]):""," {").concat(c[1],"}")),c[5]=o),n&&(c[2]?(c[1]="@media ".concat(c[2]," {").concat(c[1],"}"),c[2]=n):c[2]=n),a&&(c[4]?(c[1]="@supports (".concat(c[4],") {").concat(c[1],"}"),c[4]=a):c[4]="".concat(a)),t.push(c))}},t}},537:e=>{"use strict";e.exports=function(e){var t=e[1],n=e[3];if(!n)return t;if("function"==typeof btoa){var r=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),a="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(r),o="/*# ".concat(a," */"),i=n.sources.map((function(e){return"/*# sourceURL=".concat(n.sourceRoot||"").concat(e," */")}));return[t].concat(i).concat([o]).join("\n")}return[t].join("\n")}},418:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;function a(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,o){for(var i,s,l=a(e),u=1;u<arguments.length;u++){for(var c in i=Object(arguments[u]))n.call(i,c)&&(l[c]=i[c]);if(t){s=t(i);for(var d=0;d<s.length;d++)r.call(i,s[d])&&(l[s[d]]=i[s[d]])}}return l}},448:(e,t,n)=>{"use strict";var r=n(294),a=n(418),o=n(142);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}if(!r)throw Error(i(227));var s=new Set,l={};function u(e,t){c(e,t),c(e+"Capture",t)}function c(e,t){for(l[e]=t,e=0;e<t.length;e++)s.add(t[e])}var d=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),p=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,f=Object.prototype.hasOwnProperty,h={},g={};function v(e,t,n,r,a,o,i){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=i}var m={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){m[e]=new v(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];m[t]=new v(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){m[e]=new v(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){m[e]=new v(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){m[e]=new v(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){m[e]=new v(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){m[e]=new v(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){m[e]=new v(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){m[e]=new v(e,5,!1,e.toLowerCase(),null,!1,!1)}));var b=/[\-:]([a-z])/g;function y(e){return e[1].toUpperCase()}function S(e,t,n,r){var a=m.hasOwnProperty(t)?m[t]:null;(null!==a?0===a.type:!r&&2<t.length&&("o"===t[0]||"O"===t[0])&&("n"===t[1]||"N"===t[1]))||(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,a,r)&&(n=null),r||null===a?function(e){return!!f.call(g,e)||!f.call(h,e)&&(p.test(e)?g[e]=!0:(h[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):a.mustUseProperty?e[a.propertyName]=null===n?3!==a.type&&"":n:(t=a.attributeName,r=a.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(a=a.type)||4===a&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(b,y);m[t]=new v(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(b,y);m[t]=new v(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(b,y);m[t]=new v(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){m[e]=new v(e,1,!1,e.toLowerCase(),null,!1,!1)})),m.xlinkHref=new v("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){m[e]=new v(e,1,!1,e.toLowerCase(),null,!0,!0)}));var w=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,k=60103,C=60106,E=60107,x=60108,_=60114,T=60109,A=60110,I=60112,N=60113,R=60120,L=60115,D=60116,P=60121,O=60128,M=60129,B=60130,F=60131;if("function"==typeof Symbol&&Symbol.for){var U=Symbol.for;k=U("react.element"),C=U("react.portal"),E=U("react.fragment"),x=U("react.strict_mode"),_=U("react.profiler"),T=U("react.provider"),A=U("react.context"),I=U("react.forward_ref"),N=U("react.suspense"),R=U("react.suspense_list"),L=U("react.memo"),D=U("react.lazy"),P=U("react.block"),U("react.scope"),O=U("react.opaque.id"),M=U("react.debug_trace_mode"),B=U("react.offscreen"),F=U("react.legacy_hidden")}var z,j="function"==typeof Symbol&&Symbol.iterator;function H(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=j&&e[j]||e["@@iterator"])?e:null}function V(e){if(void 0===z)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);z=t&&t[1]||""}return"\n"+z+e}var K=!1;function Z(e,t){if(!e||K)return"";K=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(e){var r=e}Reflect.construct(e,[],t)}else{try{t.call()}catch(e){r=e}e.call(t.prototype)}else{try{throw Error()}catch(e){r=e}e()}}catch(e){if(e&&r&&"string"==typeof e.stack){for(var a=e.stack.split("\n"),o=r.stack.split("\n"),i=a.length-1,s=o.length-1;1<=i&&0<=s&&a[i]!==o[s];)s--;for(;1<=i&&0<=s;i--,s--)if(a[i]!==o[s]){if(1!==i||1!==s)do{if(i--,0>--s||a[i]!==o[s])return"\n"+a[i].replace(" at new "," at ")}while(1<=i&&0<=s);break}}}finally{K=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?V(e):""}function $(e){switch(e.tag){case 5:return V(e.type);case 16:return V("Lazy");case 13:return V("Suspense");case 19:return V("SuspenseList");case 0:case 2:case 15:return Z(e.type,!1);case 11:return Z(e.type.render,!1);case 22:return Z(e.type._render,!1);case 1:return Z(e.type,!0);default:return""}}function q(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case E:return"Fragment";case C:return"Portal";case _:return"Profiler";case x:return"StrictMode";case N:return"Suspense";case R:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case A:return(e.displayName||"Context")+".Consumer";case T:return(e._context.displayName||"Context")+".Provider";case I:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case L:return q(e.type);case P:return q(e._render);case D:t=e._payload,e=e._init;try{return q(e(t))}catch(e){}}return null}function W(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function X(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function Y(e){e._valueTracker||(e._valueTracker=function(e){var t=X(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var a=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(e){r=""+e,o.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function Q(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=X(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function G(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function J(e,t){var n=t.checked;return a({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function ee(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=W(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function te(e,t){null!=(t=t.checked)&&S(e,"checked",t,!1)}function ne(e,t){te(e,t);var n=W(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?ae(e,t.type,n):t.hasOwnProperty("defaultValue")&&ae(e,t.type,W(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function re(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function ae(e,t,n){"number"===t&&G(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}function oe(e,t){return e=a({children:void 0},t),(t=function(e){var t="";return r.Children.forEach(e,(function(e){null!=e&&(t+=e)})),t}(t.children))&&(e.children=t),e}function ie(e,t,n,r){if(e=e.options,t){t={};for(var a=0;a<n.length;a++)t["$"+n[a]]=!0;for(n=0;n<e.length;n++)a=t.hasOwnProperty("$"+e[n].value),e[n].selected!==a&&(e[n].selected=a),a&&r&&(e[n].defaultSelected=!0)}else{for(n=""+W(n),t=null,a=0;a<e.length;a++){if(e[a].value===n)return e[a].selected=!0,void(r&&(e[a].defaultSelected=!0));null!==t||e[a].disabled||(t=e[a])}null!==t&&(t.selected=!0)}}function se(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(i(91));return a({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function le(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(i(92));if(Array.isArray(n)){if(!(1>=n.length))throw Error(i(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:W(n)}}function ue(e,t){var n=W(t.value),r=W(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function ce(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}var de="http://www.w3.org/1999/xhtml";function pe(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function fe(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?pe(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var he,ge,ve=(ge=function(e,t){if("http://www.w3.org/2000/svg"!==e.namespaceURI||"innerHTML"in e)e.innerHTML=t;else{for((he=he||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=he.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return ge(e,t)}))}:ge);function me(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var be={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},ye=["Webkit","ms","Moz","O"];function Se(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||be.hasOwnProperty(e)&&be[e]?(""+t).trim():t+"px"}function we(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),a=Se(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,a):e[n]=a}}Object.keys(be).forEach((function(e){ye.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),be[t]=be[e]}))}));var ke=a({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Ce(e,t){if(t){if(ke[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(i(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(i(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(i(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(i(62))}}function Ee(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function xe(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var _e=null,Te=null,Ae=null;function Ie(e){if(e=ta(e)){if("function"!=typeof _e)throw Error(i(280));var t=e.stateNode;t&&(t=ra(t),_e(e.stateNode,e.type,t))}}function Ne(e){Te?Ae?Ae.push(e):Ae=[e]:Te=e}function Re(){if(Te){var e=Te,t=Ae;if(Ae=Te=null,Ie(e),t)for(e=0;e<t.length;e++)Ie(t[e])}}function Le(e,t){return e(t)}function De(e,t,n,r,a){return e(t,n,r,a)}function Pe(){}var Oe=Le,Me=!1,Be=!1;function Fe(){null===Te&&null===Ae||(Pe(),Re())}function Ue(e,t){var n=e.stateNode;if(null===n)return null;var r=ra(n);if(null===r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(i(231,t,typeof n));return n}var ze=!1;if(d)try{var je={};Object.defineProperty(je,"passive",{get:function(){ze=!0}}),window.addEventListener("test",je,je),window.removeEventListener("test",je,je)}catch(ge){ze=!1}function He(e,t,n,r,a,o,i,s,l){var u=Array.prototype.slice.call(arguments,3);try{t.apply(n,u)}catch(e){this.onError(e)}}var Ve=!1,Ke=null,Ze=!1,$e=null,qe={onError:function(e){Ve=!0,Ke=e}};function We(e,t,n,r,a,o,i,s,l){Ve=!1,Ke=null,He.apply(qe,arguments)}function Xe(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!=(1026&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function Ye(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&null!==(e=e.alternate)&&(t=e.memoizedState),null!==t)return t.dehydrated}return null}function Qe(e){if(Xe(e)!==e)throw Error(i(188))}function Ge(e,t){for(var n=e.alternate;null!==t;){if(t===e||t===n)return!0;t=t.return}return!1}var Je,et,tt,nt,rt=!1,at=[],ot=null,it=null,st=null,lt=new Map,ut=new Map,ct=[],dt="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function pt(e,t,n,r,a){return{blockedOn:e,domEventName:t,eventSystemFlags:16|n,nativeEvent:a,targetContainers:[r]}}function ft(e,t){switch(e){case"focusin":case"focusout":ot=null;break;case"dragenter":case"dragleave":it=null;break;case"mouseover":case"mouseout":st=null;break;case"pointerover":case"pointerout":lt.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":ut.delete(t.pointerId)}}function ht(e,t,n,r,a,o){return null===e||e.nativeEvent!==o?(e=pt(t,n,r,a,o),null!==t&&null!==(t=ta(t))&&et(t),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==a&&-1===t.indexOf(a)&&t.push(a),e)}function gt(e){var t=ea(e.target);if(null!==t){var n=Xe(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=Ye(n)))return e.blockedOn=t,void nt(e.lanePriority,(function(){o.unstable_runWithPriority(e.priority,(function(){tt(n)}))}))}else if(3===t&&n.stateNode.hydrate)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function vt(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Qt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=ta(n))&&et(t),e.blockedOn=n,!1;t.shift()}return!0}function mt(e,t,n){vt(e)&&n.delete(t)}function bt(){for(rt=!1;0<at.length;){var e=at[0];if(null!==e.blockedOn){null!==(e=ta(e.blockedOn))&&Je(e);break}for(var t=e.targetContainers;0<t.length;){var n=Qt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n){e.blockedOn=n;break}t.shift()}null===e.blockedOn&&at.shift()}null!==ot&&vt(ot)&&(ot=null),null!==it&&vt(it)&&(it=null),null!==st&&vt(st)&&(st=null),lt.forEach(mt),ut.forEach(mt)}function yt(e,t){e.blockedOn===t&&(e.blockedOn=null,rt||(rt=!0,o.unstable_scheduleCallback(o.unstable_NormalPriority,bt)))}function St(e){function t(t){return yt(t,e)}if(0<at.length){yt(at[0],e);for(var n=1;n<at.length;n++){var r=at[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==ot&&yt(ot,e),null!==it&&yt(it,e),null!==st&&yt(st,e),lt.forEach(t),ut.forEach(t),n=0;n<ct.length;n++)(r=ct[n]).blockedOn===e&&(r.blockedOn=null);for(;0<ct.length&&null===(n=ct[0]).blockedOn;)gt(n),null===n.blockedOn&&ct.shift()}function wt(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var kt={animationend:wt("Animation","AnimationEnd"),animationiteration:wt("Animation","AnimationIteration"),animationstart:wt("Animation","AnimationStart"),transitionend:wt("Transition","TransitionEnd")},Ct={},Et={};function xt(e){if(Ct[e])return Ct[e];if(!kt[e])return e;var t,n=kt[e];for(t in n)if(n.hasOwnProperty(t)&&t in Et)return Ct[e]=n[t];return e}d&&(Et=document.createElement("div").style,"AnimationEvent"in window||(delete kt.animationend.animation,delete kt.animationiteration.animation,delete kt.animationstart.animation),"TransitionEvent"in window||delete kt.transitionend.transition);var _t=xt("animationend"),Tt=xt("animationiteration"),At=xt("animationstart"),It=xt("transitionend"),Nt=new Map,Rt=new Map,Lt=["abort","abort",_t,"animationEnd",Tt,"animationIteration",At,"animationStart","canplay","canPlay","canplaythrough","canPlayThrough","durationchange","durationChange","emptied","emptied","encrypted","encrypted","ended","ended","error","error","gotpointercapture","gotPointerCapture","load","load","loadeddata","loadedData","loadedmetadata","loadedMetadata","loadstart","loadStart","lostpointercapture","lostPointerCapture","playing","playing","progress","progress","seeking","seeking","stalled","stalled","suspend","suspend","timeupdate","timeUpdate",It,"transitionEnd","waiting","waiting"];function Dt(e,t){for(var n=0;n<e.length;n+=2){var r=e[n],a=e[n+1];a="on"+(a[0].toUpperCase()+a.slice(1)),Rt.set(r,t),Nt.set(r,a),u(a,[r])}}(0,o.unstable_now)();var Pt=8;function Ot(e){if(0!=(1&e))return Pt=15,1;if(0!=(2&e))return Pt=14,2;if(0!=(4&e))return Pt=13,4;var t=24&e;return 0!==t?(Pt=12,t):0!=(32&e)?(Pt=11,32):0!=(t=192&e)?(Pt=10,t):0!=(256&e)?(Pt=9,256):0!=(t=3584&e)?(Pt=8,t):0!=(4096&e)?(Pt=7,4096):0!=(t=4186112&e)?(Pt=6,t):0!=(t=62914560&e)?(Pt=5,t):67108864&e?(Pt=4,67108864):0!=(134217728&e)?(Pt=3,134217728):0!=(t=805306368&e)?(Pt=2,t):0!=(1073741824&e)?(Pt=1,1073741824):(Pt=8,e)}function Mt(e,t){var n=e.pendingLanes;if(0===n)return Pt=0;var r=0,a=0,o=e.expiredLanes,i=e.suspendedLanes,s=e.pingedLanes;if(0!==o)r=o,a=Pt=15;else if(0!=(o=134217727&n)){var l=o&~i;0!==l?(r=Ot(l),a=Pt):0!=(s&=o)&&(r=Ot(s),a=Pt)}else 0!=(o=n&~i)?(r=Ot(o),a=Pt):0!==s&&(r=Ot(s),a=Pt);if(0===r)return 0;if(r=n&((0>(r=31-Ht(r))?0:1<<r)<<1)-1,0!==t&&t!==r&&0==(t&i)){if(Ot(t),a<=Pt)return t;Pt=a}if(0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)a=1<<(n=31-Ht(t)),r|=e[n],t&=~a;return r}function Bt(e){return 0!=(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function Ft(e,t){switch(e){case 15:return 1;case 14:return 2;case 12:return 0===(e=Ut(24&~t))?Ft(10,t):e;case 10:return 0===(e=Ut(192&~t))?Ft(8,t):e;case 8:return 0===(e=Ut(3584&~t))&&0===(e=Ut(4186112&~t))&&(e=512),e;case 2:return 0===(t=Ut(805306368&~t))&&(t=268435456),t}throw Error(i(358,e))}function Ut(e){return e&-e}function zt(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function jt(e,t,n){e.pendingLanes|=t;var r=t-1;e.suspendedLanes&=r,e.pingedLanes&=r,(e=e.eventTimes)[t=31-Ht(t)]=n}var Ht=Math.clz32?Math.clz32:function(e){return 0===e?32:31-(Vt(e)/Kt|0)|0},Vt=Math.log,Kt=Math.LN2,Zt=o.unstable_UserBlockingPriority,$t=o.unstable_runWithPriority,qt=!0;function Wt(e,t,n,r){Me||Pe();var a=Yt,o=Me;Me=!0;try{De(a,e,t,n,r)}finally{(Me=o)||Fe()}}function Xt(e,t,n,r){$t(Zt,Yt.bind(null,e,t,n,r))}function Yt(e,t,n,r){var a;if(qt)if((a=0==(4&t))&&0<at.length&&-1<dt.indexOf(e))e=pt(null,e,t,n,r),at.push(e);else{var o=Qt(e,t,n,r);if(null===o)a&&ft(e,r);else{if(a){if(-1<dt.indexOf(e))return e=pt(o,e,t,n,r),void at.push(e);if(function(e,t,n,r,a){switch(t){case"focusin":return ot=ht(ot,e,t,n,r,a),!0;case"dragenter":return it=ht(it,e,t,n,r,a),!0;case"mouseover":return st=ht(st,e,t,n,r,a),!0;case"pointerover":var o=a.pointerId;return lt.set(o,ht(lt.get(o)||null,e,t,n,r,a)),!0;case"gotpointercapture":return o=a.pointerId,ut.set(o,ht(ut.get(o)||null,e,t,n,r,a)),!0}return!1}(o,e,t,n,r))return;ft(e,r)}Dr(e,t,r,null,n)}}}function Qt(e,t,n,r){var a=xe(r);if(null!==(a=ea(a))){var o=Xe(a);if(null===o)a=null;else{var i=o.tag;if(13===i){if(null!==(a=Ye(o)))return a;a=null}else if(3===i){if(o.stateNode.hydrate)return 3===o.tag?o.stateNode.containerInfo:null;a=null}else o!==a&&(a=null)}}return Dr(e,t,r,a,n),null}var Gt=null,Jt=null,en=null;function tn(){if(en)return en;var e,t,n=Jt,r=n.length,a="value"in Gt?Gt.value:Gt.textContent,o=a.length;for(e=0;e<r&&n[e]===a[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===a[o-t];t++);return en=a.slice(e,1<t?1-t:void 0)}function nn(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function rn(){return!0}function an(){return!1}function on(e){function t(t,n,r,a,o){for(var i in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=a,this.target=o,this.currentTarget=null,e)e.hasOwnProperty(i)&&(t=e[i],this[i]=t?t(a):a[i]);return this.isDefaultPrevented=(null!=a.defaultPrevented?a.defaultPrevented:!1===a.returnValue)?rn:an,this.isPropagationStopped=an,this}return a(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=rn)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=rn)},persist:function(){},isPersistent:rn}),t}var sn,ln,un,cn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},dn=on(cn),pn=a({},cn,{view:0,detail:0}),fn=on(pn),hn=a({},pn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:_n,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==un&&(un&&"mousemove"===e.type?(sn=e.screenX-un.screenX,ln=e.screenY-un.screenY):ln=sn=0,un=e),sn)},movementY:function(e){return"movementY"in e?e.movementY:ln}}),gn=on(hn),vn=on(a({},hn,{dataTransfer:0})),mn=on(a({},pn,{relatedTarget:0})),bn=on(a({},cn,{animationName:0,elapsedTime:0,pseudoElement:0})),yn=a({},cn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),Sn=on(yn),wn=on(a({},cn,{data:0})),kn={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},Cn={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},En={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function xn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=En[e])&&!!t[e]}function _n(){return xn}var Tn=a({},pn,{key:function(e){if(e.key){var t=kn[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=nn(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?Cn[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:_n,charCode:function(e){return"keypress"===e.type?nn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?nn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),An=on(Tn),In=on(a({},hn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Nn=on(a({},pn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:_n})),Rn=on(a({},cn,{propertyName:0,elapsedTime:0,pseudoElement:0})),Ln=a({},hn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),Dn=on(Ln),Pn=[9,13,27,32],On=d&&"CompositionEvent"in window,Mn=null;d&&"documentMode"in document&&(Mn=document.documentMode);var Bn=d&&"TextEvent"in window&&!Mn,Fn=d&&(!On||Mn&&8<Mn&&11>=Mn),Un=String.fromCharCode(32),zn=!1;function jn(e,t){switch(e){case"keyup":return-1!==Pn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Hn(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Vn=!1,Kn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Zn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Kn[e.type]:"textarea"===t}function $n(e,t,n,r){Ne(r),0<(t=Or(t,"onChange")).length&&(n=new dn("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var qn=null,Wn=null;function Xn(e){Tr(e,0)}function Yn(e){if(Q(na(e)))return e}function Qn(e,t){if("change"===e)return t}var Gn=!1;if(d){var Jn;if(d){var er="oninput"in document;if(!er){var tr=document.createElement("div");tr.setAttribute("oninput","return;"),er="function"==typeof tr.oninput}Jn=er}else Jn=!1;Gn=Jn&&(!document.documentMode||9<document.documentMode)}function nr(){qn&&(qn.detachEvent("onpropertychange",rr),Wn=qn=null)}function rr(e){if("value"===e.propertyName&&Yn(Wn)){var t=[];if($n(t,Wn,e,xe(e)),e=Xn,Me)e(t);else{Me=!0;try{Le(e,t)}finally{Me=!1,Fe()}}}}function ar(e,t,n){"focusin"===e?(nr(),Wn=n,(qn=t).attachEvent("onpropertychange",rr)):"focusout"===e&&nr()}function or(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Yn(Wn)}function ir(e,t){if("click"===e)return Yn(t)}function sr(e,t){if("input"===e||"change"===e)return Yn(t)}var lr="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},ur=Object.prototype.hasOwnProperty;function cr(e,t){if(lr(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++)if(!ur.call(t,n[r])||!lr(e[n[r]],t[n[r]]))return!1;return!0}function dr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function pr(e,t){var n,r=dr(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=dr(r)}}function fr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?fr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function hr(){for(var e=window,t=G();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(e){n=!1}if(!n)break;t=G((e=t.contentWindow).document)}return t}function gr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var vr=d&&"documentMode"in document&&11>=document.documentMode,mr=null,br=null,yr=null,Sr=!1;function wr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;Sr||null==mr||mr!==G(r)||(r="selectionStart"in(r=mr)&&gr(r)?{start:r.selectionStart,end:r.selectionEnd}:{anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},yr&&cr(yr,r)||(yr=r,0<(r=Or(br,"onSelect")).length&&(t=new dn("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=mr)))}Dt("cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange".split(" "),0),Dt("drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel".split(" "),1),Dt(Lt,2);for(var kr="change selectionchange textInput compositionstart compositionend compositionupdate".split(" "),Cr=0;Cr<kr.length;Cr++)Rt.set(kr[Cr],0);c("onMouseEnter",["mouseout","mouseover"]),c("onMouseLeave",["mouseout","mouseover"]),c("onPointerEnter",["pointerout","pointerover"]),c("onPointerLeave",["pointerout","pointerover"]),u("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),u("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),u("onBeforeInput",["compositionend","keypress","textInput","paste"]),u("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),u("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),u("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Er="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),xr=new Set("cancel close invalid load scroll toggle".split(" ").concat(Er));function _r(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,a,o,s,l,u){if(We.apply(this,arguments),Ve){if(!Ve)throw Error(i(198));var c=Ke;Ve=!1,Ke=null,Ze||(Ze=!0,$e=c)}}(r,t,void 0,e),e.currentTarget=null}function Tr(e,t){t=0!=(4&t);for(var n=0;n<e.length;n++){var r=e[n],a=r.event;r=r.listeners;e:{var o=void 0;if(t)for(var i=r.length-1;0<=i;i--){var s=r[i],l=s.instance,u=s.currentTarget;if(s=s.listener,l!==o&&a.isPropagationStopped())break e;_r(a,s,u),o=l}else for(i=0;i<r.length;i++){if(l=(s=r[i]).instance,u=s.currentTarget,s=s.listener,l!==o&&a.isPropagationStopped())break e;_r(a,s,u),o=l}}}if(Ze)throw e=$e,Ze=!1,$e=null,e}function Ar(e,t){var n=aa(t),r=e+"__bubble";n.has(r)||(Lr(t,e,2,!1),n.add(r))}var Ir="_reactListening"+Math.random().toString(36).slice(2);function Nr(e){e[Ir]||(e[Ir]=!0,s.forEach((function(t){xr.has(t)||Rr(t,!1,e,null),Rr(t,!0,e,null)})))}function Rr(e,t,n,r){var a=4<arguments.length&&void 0!==arguments[4]?arguments[4]:0,o=n;if("selectionchange"===e&&9!==n.nodeType&&(o=n.ownerDocument),null!==r&&!t&&xr.has(e)){if("scroll"!==e)return;a|=2,o=r}var i=aa(o),s=e+"__"+(t?"capture":"bubble");i.has(s)||(t&&(a|=4),Lr(o,e,a,t),i.add(s))}function Lr(e,t,n,r){var a=Rt.get(t);switch(void 0===a?2:a){case 0:a=Wt;break;case 1:a=Xt;break;default:a=Yt}n=a.bind(null,t,n,e),a=void 0,!ze||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(a=!0),r?void 0!==a?e.addEventListener(t,n,{capture:!0,passive:a}):e.addEventListener(t,n,!0):void 0!==a?e.addEventListener(t,n,{passive:a}):e.addEventListener(t,n,!1)}function Dr(e,t,n,r,a){var o=r;if(0==(1&t)&&0==(2&t)&&null!==r)e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var s=r.stateNode.containerInfo;if(s===a||8===s.nodeType&&s.parentNode===a)break;if(4===i)for(i=r.return;null!==i;){var l=i.tag;if((3===l||4===l)&&((l=i.stateNode.containerInfo)===a||8===l.nodeType&&l.parentNode===a))return;i=i.return}for(;null!==s;){if(null===(i=ea(s)))return;if(5===(l=i.tag)||6===l){r=o=i;continue e}s=s.parentNode}}r=r.return}!function(e,t,n){if(Be)return e();Be=!0;try{Oe(e,t,n)}finally{Be=!1,Fe()}}((function(){var r=o,a=xe(n),i=[];e:{var s=Nt.get(e);if(void 0!==s){var l=dn,u=e;switch(e){case"keypress":if(0===nn(n))break e;case"keydown":case"keyup":l=An;break;case"focusin":u="focus",l=mn;break;case"focusout":u="blur",l=mn;break;case"beforeblur":case"afterblur":l=mn;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":l=gn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":l=vn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":l=Nn;break;case _t:case Tt:case At:l=bn;break;case It:l=Rn;break;case"scroll":l=fn;break;case"wheel":l=Dn;break;case"copy":case"cut":case"paste":l=Sn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":l=In}var c=0!=(4&t),d=!c&&"scroll"===e,p=c?null!==s?s+"Capture":null:s;c=[];for(var f,h=r;null!==h;){var g=(f=h).stateNode;if(5===f.tag&&null!==g&&(f=g,null!==p&&null!=(g=Ue(h,p))&&c.push(Pr(h,g,f))),d)break;h=h.return}0<c.length&&(s=new l(s,u,null,n,a),i.push({event:s,listeners:c}))}}if(0==(7&t)){if(l="mouseout"===e||"pointerout"===e,(!(s="mouseover"===e||"pointerover"===e)||0!=(16&t)||!(u=n.relatedTarget||n.fromElement)||!ea(u)&&!u[Gr])&&(l||s)&&(s=a.window===a?a:(s=a.ownerDocument)?s.defaultView||s.parentWindow:window,l?(l=r,null!==(u=(u=n.relatedTarget||n.toElement)?ea(u):null)&&(u!==(d=Xe(u))||5!==u.tag&&6!==u.tag)&&(u=null)):(l=null,u=r),l!==u)){if(c=gn,g="onMouseLeave",p="onMouseEnter",h="mouse","pointerout"!==e&&"pointerover"!==e||(c=In,g="onPointerLeave",p="onPointerEnter",h="pointer"),d=null==l?s:na(l),f=null==u?s:na(u),(s=new c(g,h+"leave",l,n,a)).target=d,s.relatedTarget=f,g=null,ea(a)===r&&((c=new c(p,h+"enter",u,n,a)).target=f,c.relatedTarget=d,g=c),d=g,l&&u)e:{for(p=u,h=0,f=c=l;f;f=Mr(f))h++;for(f=0,g=p;g;g=Mr(g))f++;for(;0<h-f;)c=Mr(c),h--;for(;0<f-h;)p=Mr(p),f--;for(;h--;){if(c===p||null!==p&&c===p.alternate)break e;c=Mr(c),p=Mr(p)}c=null}else c=null;null!==l&&Br(i,s,l,c,!1),null!==u&&null!==d&&Br(i,d,u,c,!0)}if("select"===(l=(s=r?na(r):window).nodeName&&s.nodeName.toLowerCase())||"input"===l&&"file"===s.type)var v=Qn;else if(Zn(s))if(Gn)v=sr;else{v=or;var m=ar}else(l=s.nodeName)&&"input"===l.toLowerCase()&&("checkbox"===s.type||"radio"===s.type)&&(v=ir);switch(v&&(v=v(e,r))?$n(i,v,n,a):(m&&m(e,s,r),"focusout"===e&&(m=s._wrapperState)&&m.controlled&&"number"===s.type&&ae(s,"number",s.value)),m=r?na(r):window,e){case"focusin":(Zn(m)||"true"===m.contentEditable)&&(mr=m,br=r,yr=null);break;case"focusout":yr=br=mr=null;break;case"mousedown":Sr=!0;break;case"contextmenu":case"mouseup":case"dragend":Sr=!1,wr(i,n,a);break;case"selectionchange":if(vr)break;case"keydown":case"keyup":wr(i,n,a)}var b;if(On)e:{switch(e){case"compositionstart":var y="onCompositionStart";break e;case"compositionend":y="onCompositionEnd";break e;case"compositionupdate":y="onCompositionUpdate";break e}y=void 0}else Vn?jn(e,n)&&(y="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(y="onCompositionStart");y&&(Fn&&"ko"!==n.locale&&(Vn||"onCompositionStart"!==y?"onCompositionEnd"===y&&Vn&&(b=tn()):(Jt="value"in(Gt=a)?Gt.value:Gt.textContent,Vn=!0)),0<(m=Or(r,y)).length&&(y=new wn(y,e,null,n,a),i.push({event:y,listeners:m}),(b||null!==(b=Hn(n)))&&(y.data=b))),(b=Bn?function(e,t){switch(e){case"compositionend":return Hn(t);case"keypress":return 32!==t.which?null:(zn=!0,Un);case"textInput":return(e=t.data)===Un&&zn?null:e;default:return null}}(e,n):function(e,t){if(Vn)return"compositionend"===e||!On&&jn(e,t)?(e=tn(),en=Jt=Gt=null,Vn=!1,e):null;switch(e){default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return Fn&&"ko"!==t.locale?null:t.data}}(e,n))&&0<(r=Or(r,"onBeforeInput")).length&&(a=new wn("onBeforeInput","beforeinput",null,n,a),i.push({event:a,listeners:r}),a.data=b)}Tr(i,t)}))}function Pr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Or(e,t){for(var n=t+"Capture",r=[];null!==e;){var a=e,o=a.stateNode;5===a.tag&&null!==o&&(a=o,null!=(o=Ue(e,n))&&r.unshift(Pr(e,o,a)),null!=(o=Ue(e,t))&&r.push(Pr(e,o,a))),e=e.return}return r}function Mr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Br(e,t,n,r,a){for(var o=t._reactName,i=[];null!==n&&n!==r;){var s=n,l=s.alternate,u=s.stateNode;if(null!==l&&l===r)break;5===s.tag&&null!==u&&(s=u,a?null!=(l=Ue(n,o))&&i.unshift(Pr(n,l,s)):a||null!=(l=Ue(n,o))&&i.push(Pr(n,l,s))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}function Fr(){}var Ur=null,zr=null;function jr(e,t){switch(e){case"button":case"input":case"select":case"textarea":return!!t.autoFocus}return!1}function Hr(e,t){return"textarea"===e||"option"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var Vr="function"==typeof setTimeout?setTimeout:void 0,Kr="function"==typeof clearTimeout?clearTimeout:void 0;function Zr(e){(1===e.nodeType||9===e.nodeType&&null!=(e=e.body))&&(e.textContent="")}function $r(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break}return e}function qr(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var Wr=0,Xr=Math.random().toString(36).slice(2),Yr="__reactFiber$"+Xr,Qr="__reactProps$"+Xr,Gr="__reactContainer$"+Xr,Jr="__reactEvents$"+Xr;function ea(e){var t=e[Yr];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Gr]||n[Yr]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=qr(e);null!==e;){if(n=e[Yr])return n;e=qr(e)}return t}n=(e=n).parentNode}return null}function ta(e){return!(e=e[Yr]||e[Gr])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function na(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(i(33))}function ra(e){return e[Qr]||null}function aa(e){var t=e[Jr];return void 0===t&&(t=e[Jr]=new Set),t}var oa=[],ia=-1;function sa(e){return{current:e}}function la(e){0>ia||(e.current=oa[ia],oa[ia]=null,ia--)}function ua(e,t){ia++,oa[ia]=e.current,e.current=t}var ca={},da=sa(ca),pa=sa(!1),fa=ca;function ha(e,t){var n=e.type.contextTypes;if(!n)return ca;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var a,o={};for(a in n)o[a]=t[a];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function ga(e){return null!=e.childContextTypes}function va(){la(pa),la(da)}function ma(e,t,n){if(da.current!==ca)throw Error(i(168));ua(da,t),ua(pa,n)}function ba(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var o in r=r.getChildContext())if(!(o in e))throw Error(i(108,q(t)||"Unknown",o));return a({},n,r)}function ya(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||ca,fa=da.current,ua(da,e),ua(pa,pa.current),!0}function Sa(e,t,n){var r=e.stateNode;if(!r)throw Error(i(169));n?(e=ba(e,t,fa),r.__reactInternalMemoizedMergedChildContext=e,la(pa),la(da),ua(da,e)):la(pa),ua(pa,n)}var wa=null,ka=null,Ca=o.unstable_runWithPriority,Ea=o.unstable_scheduleCallback,xa=o.unstable_cancelCallback,_a=o.unstable_shouldYield,Ta=o.unstable_requestPaint,Aa=o.unstable_now,Ia=o.unstable_getCurrentPriorityLevel,Na=o.unstable_ImmediatePriority,Ra=o.unstable_UserBlockingPriority,La=o.unstable_NormalPriority,Da=o.unstable_LowPriority,Pa=o.unstable_IdlePriority,Oa={},Ma=void 0!==Ta?Ta:function(){},Ba=null,Fa=null,Ua=!1,za=Aa(),ja=1e4>za?Aa:function(){return Aa()-za};function Ha(){switch(Ia()){case Na:return 99;case Ra:return 98;case La:return 97;case Da:return 96;case Pa:return 95;default:throw Error(i(332))}}function Va(e){switch(e){case 99:return Na;case 98:return Ra;case 97:return La;case 96:return Da;case 95:return Pa;default:throw Error(i(332))}}function Ka(e,t){return e=Va(e),Ca(e,t)}function Za(e,t,n){return e=Va(e),Ea(e,t,n)}function $a(){if(null!==Fa){var e=Fa;Fa=null,xa(e)}qa()}function qa(){if(!Ua&&null!==Ba){Ua=!0;var e=0;try{var t=Ba;Ka(99,(function(){for(;e<t.length;e++){var n=t[e];do{n=n(!0)}while(null!==n)}})),Ba=null}catch(t){throw null!==Ba&&(Ba=Ba.slice(e+1)),Ea(Na,$a),t}finally{Ua=!1}}}var Wa=w.ReactCurrentBatchConfig;function Xa(e,t){if(e&&e.defaultProps){for(var n in t=a({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}var Ya=sa(null),Qa=null,Ga=null,Ja=null;function eo(){Ja=Ga=Qa=null}function to(e){var t=Ya.current;la(Ya),e.type._context._currentValue=t}function no(e,t){for(;null!==e;){var n=e.alternate;if((e.childLanes&t)===t){if(null===n||(n.childLanes&t)===t)break;n.childLanes|=t}else e.childLanes|=t,null!==n&&(n.childLanes|=t);e=e.return}}function ro(e,t){Qa=e,Ja=Ga=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!=(e.lanes&t)&&(Oi=!0),e.firstContext=null)}function ao(e,t){if(Ja!==e&&!1!==t&&0!==t)if("number"==typeof t&&1073741823!==t||(Ja=e,t=1073741823),t={context:e,observedBits:t,next:null},null===Ga){if(null===Qa)throw Error(i(308));Ga=t,Qa.dependencies={lanes:0,firstContext:t,responders:null}}else Ga=Ga.next=t;return e._currentValue}var oo=!1;function io(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}function so(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function lo(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function uo(e,t){if(null!==(e=e.updateQueue)){var n=(e=e.shared).pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}}function co(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var a=null,o=null;if(null!==(n=n.firstBaseUpdate)){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===o?a=o=i:o=o.next=i,n=n.next}while(null!==n);null===o?a=o=t:o=o.next=t}else a=o=t;return n={baseState:r.baseState,firstBaseUpdate:a,lastBaseUpdate:o,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function po(e,t,n,r){var o=e.updateQueue;oo=!1;var i=o.firstBaseUpdate,s=o.lastBaseUpdate,l=o.shared.pending;if(null!==l){o.shared.pending=null;var u=l,c=u.next;u.next=null,null===s?i=c:s.next=c,s=u;var d=e.alternate;if(null!==d){var p=(d=d.updateQueue).lastBaseUpdate;p!==s&&(null===p?d.firstBaseUpdate=c:p.next=c,d.lastBaseUpdate=u)}}if(null!==i){for(p=o.baseState,s=0,d=c=u=null;;){l=i.lane;var f=i.eventTime;if((r&l)===l){null!==d&&(d=d.next={eventTime:f,lane:0,tag:i.tag,payload:i.payload,callback:i.callback,next:null});e:{var h=e,g=i;switch(l=t,f=n,g.tag){case 1:if("function"==typeof(h=g.payload)){p=h.call(f,p,l);break e}p=h;break e;case 3:h.flags=-4097&h.flags|64;case 0:if(null==(l="function"==typeof(h=g.payload)?h.call(f,p,l):h))break e;p=a({},p,l);break e;case 2:oo=!0}}null!==i.callback&&(e.flags|=32,null===(l=o.effects)?o.effects=[i]:l.push(i))}else f={eventTime:f,lane:l,tag:i.tag,payload:i.payload,callback:i.callback,next:null},null===d?(c=d=f,u=p):d=d.next=f,s|=l;if(null===(i=i.next)){if(null===(l=o.shared.pending))break;i=l.next,l.next=null,o.lastBaseUpdate=l,o.shared.pending=null}}null===d&&(u=p),o.baseState=u,o.firstBaseUpdate=c,o.lastBaseUpdate=d,Bs|=s,e.lanes=s,e.memoizedState=p}}function fo(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],a=r.callback;if(null!==a){if(r.callback=null,r=n,"function"!=typeof a)throw Error(i(191,a));a.call(r)}}}var ho=(new r.Component).refs;function go(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:a({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var vo={isMounted:function(e){return!!(e=e._reactInternals)&&Xe(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=ll(),a=ul(e),o=lo(r,a);o.payload=t,null!=n&&(o.callback=n),uo(e,o),cl(e,a,r)},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=ll(),a=ul(e),o=lo(r,a);o.tag=1,o.payload=t,null!=n&&(o.callback=n),uo(e,o),cl(e,a,r)},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=ll(),r=ul(e),a=lo(n,r);a.tag=2,null!=t&&(a.callback=t),uo(e,a),cl(e,r,n)}};function mo(e,t,n,r,a,o,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,o,i):!(t.prototype&&t.prototype.isPureReactComponent&&cr(n,r)&&cr(a,o))}function bo(e,t,n){var r=!1,a=ca,o=t.contextType;return"object"==typeof o&&null!==o?o=ao(o):(a=ga(t)?fa:da.current,o=(r=null!=(r=t.contextTypes))?ha(e,a):ca),t=new t(n,o),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=vo,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=a,e.__reactInternalMemoizedMaskedChildContext=o),t}function yo(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&vo.enqueueReplaceState(t,t.state,null)}function So(e,t,n,r){var a=e.stateNode;a.props=n,a.state=e.memoizedState,a.refs=ho,io(e);var o=t.contextType;"object"==typeof o&&null!==o?a.context=ao(o):(o=ga(t)?fa:da.current,a.context=ha(e,o)),po(e,n,a,r),a.state=e.memoizedState,"function"==typeof(o=t.getDerivedStateFromProps)&&(go(e,t,o,n),a.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof a.getSnapshotBeforeUpdate||"function"!=typeof a.UNSAFE_componentWillMount&&"function"!=typeof a.componentWillMount||(t=a.state,"function"==typeof a.componentWillMount&&a.componentWillMount(),"function"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount(),t!==a.state&&vo.enqueueReplaceState(a,a.state,null),po(e,n,a,r),a.state=e.memoizedState),"function"==typeof a.componentDidMount&&(e.flags|=4)}var wo=Array.isArray;function ko(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(i(309));var r=n.stateNode}if(!r)throw Error(i(147,e));var a=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===a?t.ref:(t=function(e){var t=r.refs;t===ho&&(t=r.refs={}),null===e?delete t[a]:t[a]=e},t._stringRef=a,t)}if("string"!=typeof e)throw Error(i(284));if(!n._owner)throw Error(i(290,e))}return e}function Co(e,t){if("textarea"!==e.type)throw Error(i(31,"[object Object]"===Object.prototype.toString.call(t)?"object with keys {"+Object.keys(t).join(", ")+"}":t))}function Eo(e){function t(t,n){if(e){var r=t.lastEffect;null!==r?(r.nextEffect=n,t.lastEffect=n):t.firstEffect=t.lastEffect=n,n.nextEffect=null,n.flags=8}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function a(e,t){return(e=zl(e,t)).index=0,e.sibling=null,e}function o(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.flags=2,n):r:(t.flags=2,n):n}function s(t){return e&&null===t.alternate&&(t.flags=2),t}function l(e,t,n,r){return null===t||6!==t.tag?((t=Kl(n,e.mode,r)).return=e,t):((t=a(t,n)).return=e,t)}function u(e,t,n,r){return null!==t&&t.elementType===n.type?((r=a(t,n.props)).ref=ko(e,t,n),r.return=e,r):((r=jl(n.type,n.key,n.props,null,e.mode,r)).ref=ko(e,t,n),r.return=e,r)}function c(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Zl(n,e.mode,r)).return=e,t):((t=a(t,n.children||[])).return=e,t)}function d(e,t,n,r,o){return null===t||7!==t.tag?((t=Hl(n,e.mode,r,o)).return=e,t):((t=a(t,n)).return=e,t)}function p(e,t,n){if("string"==typeof t||"number"==typeof t)return(t=Kl(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case k:return(n=jl(t.type,t.key,t.props,null,e.mode,n)).ref=ko(e,null,t),n.return=e,n;case C:return(t=Zl(t,e.mode,n)).return=e,t}if(wo(t)||H(t))return(t=Hl(t,e.mode,n,null)).return=e,t;Co(e,t)}return null}function f(e,t,n,r){var a=null!==t?t.key:null;if("string"==typeof n||"number"==typeof n)return null!==a?null:l(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case k:return n.key===a?n.type===E?d(e,t,n.props.children,r,a):u(e,t,n,r):null;case C:return n.key===a?c(e,t,n,r):null}if(wo(n)||H(n))return null!==a?null:d(e,t,n,r,null);Co(e,n)}return null}function h(e,t,n,r,a){if("string"==typeof r||"number"==typeof r)return l(t,e=e.get(n)||null,""+r,a);if("object"==typeof r&&null!==r){switch(r.$$typeof){case k:return e=e.get(null===r.key?n:r.key)||null,r.type===E?d(t,e,r.props.children,a,r.key):u(t,e,r,a);case C:return c(t,e=e.get(null===r.key?n:r.key)||null,r,a)}if(wo(r)||H(r))return d(t,e=e.get(n)||null,r,a,null);Co(t,r)}return null}function g(a,i,s,l){for(var u=null,c=null,d=i,g=i=0,v=null;null!==d&&g<s.length;g++){d.index>g?(v=d,d=null):v=d.sibling;var m=f(a,d,s[g],l);if(null===m){null===d&&(d=v);break}e&&d&&null===m.alternate&&t(a,d),i=o(m,i,g),null===c?u=m:c.sibling=m,c=m,d=v}if(g===s.length)return n(a,d),u;if(null===d){for(;g<s.length;g++)null!==(d=p(a,s[g],l))&&(i=o(d,i,g),null===c?u=d:c.sibling=d,c=d);return u}for(d=r(a,d);g<s.length;g++)null!==(v=h(d,a,g,s[g],l))&&(e&&null!==v.alternate&&d.delete(null===v.key?g:v.key),i=o(v,i,g),null===c?u=v:c.sibling=v,c=v);return e&&d.forEach((function(e){return t(a,e)})),u}function v(a,s,l,u){var c=H(l);if("function"!=typeof c)throw Error(i(150));if(null==(l=c.call(l)))throw Error(i(151));for(var d=c=null,g=s,v=s=0,m=null,b=l.next();null!==g&&!b.done;v++,b=l.next()){g.index>v?(m=g,g=null):m=g.sibling;var y=f(a,g,b.value,u);if(null===y){null===g&&(g=m);break}e&&g&&null===y.alternate&&t(a,g),s=o(y,s,v),null===d?c=y:d.sibling=y,d=y,g=m}if(b.done)return n(a,g),c;if(null===g){for(;!b.done;v++,b=l.next())null!==(b=p(a,b.value,u))&&(s=o(b,s,v),null===d?c=b:d.sibling=b,d=b);return c}for(g=r(a,g);!b.done;v++,b=l.next())null!==(b=h(g,a,v,b.value,u))&&(e&&null!==b.alternate&&g.delete(null===b.key?v:b.key),s=o(b,s,v),null===d?c=b:d.sibling=b,d=b);return e&&g.forEach((function(e){return t(a,e)})),c}return function(e,r,o,l){var u="object"==typeof o&&null!==o&&o.type===E&&null===o.key;u&&(o=o.props.children);var c="object"==typeof o&&null!==o;if(c)switch(o.$$typeof){case k:e:{for(c=o.key,u=r;null!==u;){if(u.key===c){if(7===u.tag){if(o.type===E){n(e,u.sibling),(r=a(u,o.props.children)).return=e,e=r;break e}}else if(u.elementType===o.type){n(e,u.sibling),(r=a(u,o.props)).ref=ko(e,u,o),r.return=e,e=r;break e}n(e,u);break}t(e,u),u=u.sibling}o.type===E?((r=Hl(o.props.children,e.mode,l,o.key)).return=e,e=r):((l=jl(o.type,o.key,o.props,null,e.mode,l)).ref=ko(e,r,o),l.return=e,e=l)}return s(e);case C:e:{for(u=o.key;null!==r;){if(r.key===u){if(4===r.tag&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),(r=a(r,o.children||[])).return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}(r=Zl(o,e.mode,l)).return=e,e=r}return s(e)}if("string"==typeof o||"number"==typeof o)return o=""+o,null!==r&&6===r.tag?(n(e,r.sibling),(r=a(r,o)).return=e,e=r):(n(e,r),(r=Kl(o,e.mode,l)).return=e,e=r),s(e);if(wo(o))return g(e,r,o,l);if(H(o))return v(e,r,o,l);if(c&&Co(e,o),void 0===o&&!u)switch(e.tag){case 1:case 22:case 0:case 11:case 15:throw Error(i(152,q(e.type)||"Component"))}return n(e,r)}}var xo=Eo(!0),_o=Eo(!1),To={},Ao=sa(To),Io=sa(To),No=sa(To);function Ro(e){if(e===To)throw Error(i(174));return e}function Lo(e,t){switch(ua(No,t),ua(Io,e),ua(Ao,To),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:fe(null,"");break;default:t=fe(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}la(Ao),ua(Ao,t)}function Do(){la(Ao),la(Io),la(No)}function Po(e){Ro(No.current);var t=Ro(Ao.current),n=fe(t,e.type);t!==n&&(ua(Io,e),ua(Ao,n))}function Oo(e){Io.current===e&&(la(Ao),la(Io))}var Mo=sa(0);function Bo(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(64&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Fo=null,Uo=null,zo=!1;function jo(e,t){var n=Fl(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.flags=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function Ho(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,!0);default:return!1}}function Vo(e){if(zo){var t=Uo;if(t){var n=t;if(!Ho(e,t)){if(!(t=$r(n.nextSibling))||!Ho(e,t))return e.flags=-1025&e.flags|2,zo=!1,void(Fo=e);jo(Fo,n)}Fo=e,Uo=$r(t.firstChild)}else e.flags=-1025&e.flags|2,zo=!1,Fo=e}}function Ko(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;Fo=e}function Zo(e){if(e!==Fo)return!1;if(!zo)return Ko(e),zo=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!Hr(t,e.memoizedProps))for(t=Uo;t;)jo(e,t),t=$r(t.nextSibling);if(Ko(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(i(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){Uo=$r(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}Uo=null}}else Uo=Fo?$r(e.stateNode.nextSibling):null;return!0}function $o(){Uo=Fo=null,zo=!1}var qo=[];function Wo(){for(var e=0;e<qo.length;e++)qo[e]._workInProgressVersionPrimary=null;qo.length=0}var Xo=w.ReactCurrentDispatcher,Yo=w.ReactCurrentBatchConfig,Qo=0,Go=null,Jo=null,ei=null,ti=!1,ni=!1;function ri(){throw Error(i(321))}function ai(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!lr(e[n],t[n]))return!1;return!0}function oi(e,t,n,r,a,o){if(Qo=o,Go=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,Xo.current=null===e||null===e.memoizedState?Ri:Li,e=n(r,a),ni){o=0;do{if(ni=!1,!(25>o))throw Error(i(301));o+=1,ei=Jo=null,t.updateQueue=null,Xo.current=Di,e=n(r,a)}while(ni)}if(Xo.current=Ni,t=null!==Jo&&null!==Jo.next,Qo=0,ei=Jo=Go=null,ti=!1,t)throw Error(i(300));return e}function ii(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===ei?Go.memoizedState=ei=e:ei=ei.next=e,ei}function si(){if(null===Jo){var e=Go.alternate;e=null!==e?e.memoizedState:null}else e=Jo.next;var t=null===ei?Go.memoizedState:ei.next;if(null!==t)ei=t,Jo=e;else{if(null===e)throw Error(i(310));e={memoizedState:(Jo=e).memoizedState,baseState:Jo.baseState,baseQueue:Jo.baseQueue,queue:Jo.queue,next:null},null===ei?Go.memoizedState=ei=e:ei=ei.next=e}return ei}function li(e,t){return"function"==typeof t?t(e):t}function ui(e){var t=si(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=Jo,a=r.baseQueue,o=n.pending;if(null!==o){if(null!==a){var s=a.next;a.next=o.next,o.next=s}r.baseQueue=a=o,n.pending=null}if(null!==a){a=a.next,r=r.baseState;var l=s=o=null,u=a;do{var c=u.lane;if((Qo&c)===c)null!==l&&(l=l.next={lane:0,action:u.action,eagerReducer:u.eagerReducer,eagerState:u.eagerState,next:null}),r=u.eagerReducer===e?u.eagerState:e(r,u.action);else{var d={lane:c,action:u.action,eagerReducer:u.eagerReducer,eagerState:u.eagerState,next:null};null===l?(s=l=d,o=r):l=l.next=d,Go.lanes|=c,Bs|=c}u=u.next}while(null!==u&&u!==a);null===l?o=r:l.next=s,lr(r,t.memoizedState)||(Oi=!0),t.memoizedState=r,t.baseState=o,t.baseQueue=l,n.lastRenderedState=r}return[t.memoizedState,n.dispatch]}function ci(e){var t=si(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,o=t.memoizedState;if(null!==a){n.pending=null;var s=a=a.next;do{o=e(o,s.action),s=s.next}while(s!==a);lr(o,t.memoizedState)||(Oi=!0),t.memoizedState=o,null===t.baseQueue&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function di(e,t,n){var r=t._getVersion;r=r(t._source);var a=t._workInProgressVersionPrimary;if(null!==a?e=a===r:(e=e.mutableReadLanes,(e=(Qo&e)===e)&&(t._workInProgressVersionPrimary=r,qo.push(t))),e)return n(t._source);throw qo.push(t),Error(i(350))}function pi(e,t,n,r){var a=Is;if(null===a)throw Error(i(349));var o=t._getVersion,s=o(t._source),l=Xo.current,u=l.useState((function(){return di(a,t,n)})),c=u[1],d=u[0];u=ei;var p=e.memoizedState,f=p.refs,h=f.getSnapshot,g=p.source;p=p.subscribe;var v=Go;return e.memoizedState={refs:f,source:t,subscribe:r},l.useEffect((function(){f.getSnapshot=n,f.setSnapshot=c;var e=o(t._source);if(!lr(s,e)){e=n(t._source),lr(d,e)||(c(e),e=ul(v),a.mutableReadLanes|=e&a.pendingLanes),e=a.mutableReadLanes,a.entangledLanes|=e;for(var r=a.entanglements,i=e;0<i;){var l=31-Ht(i),u=1<<l;r[l]|=e,i&=~u}}}),[n,t,r]),l.useEffect((function(){return r(t._source,(function(){var e=f.getSnapshot,n=f.setSnapshot;try{n(e(t._source));var r=ul(v);a.mutableReadLanes|=r&a.pendingLanes}catch(e){n((function(){throw e}))}}))}),[t,r]),lr(h,n)&&lr(g,t)&&lr(p,r)||((e={pending:null,dispatch:null,lastRenderedReducer:li,lastRenderedState:d}).dispatch=c=Ii.bind(null,Go,e),u.queue=e,u.baseQueue=null,d=di(a,t,n),u.memoizedState=u.baseState=d),d}function fi(e,t,n){return pi(si(),e,t,n)}function hi(e){var t=ii();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={pending:null,dispatch:null,lastRenderedReducer:li,lastRenderedState:e}).dispatch=Ii.bind(null,Go,e),[t.memoizedState,e]}function gi(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=Go.updateQueue)?(t={lastEffect:null},Go.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function vi(e){return e={current:e},ii().memoizedState=e}function mi(){return si().memoizedState}function bi(e,t,n,r){var a=ii();Go.flags|=e,a.memoizedState=gi(1|t,n,void 0,void 0===r?null:r)}function yi(e,t,n,r){var a=si();r=void 0===r?null:r;var o=void 0;if(null!==Jo){var i=Jo.memoizedState;if(o=i.destroy,null!==r&&ai(r,i.deps))return void gi(t,n,o,r)}Go.flags|=e,a.memoizedState=gi(1|t,n,o,r)}function Si(e,t){return bi(516,4,e,t)}function wi(e,t){return yi(516,4,e,t)}function ki(e,t){return yi(4,2,e,t)}function Ci(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function Ei(e,t,n){return n=null!=n?n.concat([e]):null,yi(4,2,Ci.bind(null,t,e),n)}function xi(){}function _i(e,t){var n=si();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&ai(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Ti(e,t){var n=si();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&ai(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Ai(e,t){var n=Ha();Ka(98>n?98:n,(function(){e(!0)})),Ka(97<n?97:n,(function(){var n=Yo.transition;Yo.transition=1;try{e(!1),t()}finally{Yo.transition=n}}))}function Ii(e,t,n){var r=ll(),a=ul(e),o={lane:a,action:n,eagerReducer:null,eagerState:null,next:null},i=t.pending;if(null===i?o.next=o:(o.next=i.next,i.next=o),t.pending=o,i=e.alternate,e===Go||null!==i&&i===Go)ni=ti=!0;else{if(0===e.lanes&&(null===i||0===i.lanes)&&null!==(i=t.lastRenderedReducer))try{var s=t.lastRenderedState,l=i(s,n);if(o.eagerReducer=i,o.eagerState=l,lr(l,s))return}catch(e){}cl(e,a,r)}}var Ni={readContext:ao,useCallback:ri,useContext:ri,useEffect:ri,useImperativeHandle:ri,useLayoutEffect:ri,useMemo:ri,useReducer:ri,useRef:ri,useState:ri,useDebugValue:ri,useDeferredValue:ri,useTransition:ri,useMutableSource:ri,useOpaqueIdentifier:ri,unstable_isNewReconciler:!1},Ri={readContext:ao,useCallback:function(e,t){return ii().memoizedState=[e,void 0===t?null:t],e},useContext:ao,useEffect:Si,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,bi(4,2,Ci.bind(null,t,e),n)},useLayoutEffect:function(e,t){return bi(4,2,e,t)},useMemo:function(e,t){var n=ii();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=ii();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e=(e=r.queue={pending:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:t}).dispatch=Ii.bind(null,Go,e),[r.memoizedState,e]},useRef:vi,useState:hi,useDebugValue:xi,useDeferredValue:function(e){var t=hi(e),n=t[0],r=t[1];return Si((function(){var t=Yo.transition;Yo.transition=1;try{r(e)}finally{Yo.transition=t}}),[e]),n},useTransition:function(){var e=hi(!1),t=e[0];return vi(e=Ai.bind(null,e[1])),[e,t]},useMutableSource:function(e,t,n){var r=ii();return r.memoizedState={refs:{getSnapshot:t,setSnapshot:null},source:e,subscribe:n},pi(r,e,t,n)},useOpaqueIdentifier:function(){if(zo){var e=!1,t=function(e){return{$$typeof:O,toString:e,valueOf:e}}((function(){throw e||(e=!0,n("r:"+(Wr++).toString(36))),Error(i(355))})),n=hi(t)[1];return 0==(2&Go.mode)&&(Go.flags|=516,gi(5,(function(){n("r:"+(Wr++).toString(36))}),void 0,null)),t}return hi(t="r:"+(Wr++).toString(36)),t},unstable_isNewReconciler:!1},Li={readContext:ao,useCallback:_i,useContext:ao,useEffect:wi,useImperativeHandle:Ei,useLayoutEffect:ki,useMemo:Ti,useReducer:ui,useRef:mi,useState:function(){return ui(li)},useDebugValue:xi,useDeferredValue:function(e){var t=ui(li),n=t[0],r=t[1];return wi((function(){var t=Yo.transition;Yo.transition=1;try{r(e)}finally{Yo.transition=t}}),[e]),n},useTransition:function(){var e=ui(li)[0];return[mi().current,e]},useMutableSource:fi,useOpaqueIdentifier:function(){return ui(li)[0]},unstable_isNewReconciler:!1},Di={readContext:ao,useCallback:_i,useContext:ao,useEffect:wi,useImperativeHandle:Ei,useLayoutEffect:ki,useMemo:Ti,useReducer:ci,useRef:mi,useState:function(){return ci(li)},useDebugValue:xi,useDeferredValue:function(e){var t=ci(li),n=t[0],r=t[1];return wi((function(){var t=Yo.transition;Yo.transition=1;try{r(e)}finally{Yo.transition=t}}),[e]),n},useTransition:function(){var e=ci(li)[0];return[mi().current,e]},useMutableSource:fi,useOpaqueIdentifier:function(){return ci(li)[0]},unstable_isNewReconciler:!1},Pi=w.ReactCurrentOwner,Oi=!1;function Mi(e,t,n,r){t.child=null===e?_o(t,null,n,r):xo(t,e.child,n,r)}function Bi(e,t,n,r,a){n=n.render;var o=t.ref;return ro(t,a),r=oi(e,t,n,r,o,a),null===e||Oi?(t.flags|=1,Mi(e,t,r,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~a,ts(e,t,a))}function Fi(e,t,n,r,a,o){if(null===e){var i=n.type;return"function"!=typeof i||Ul(i)||void 0!==i.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=jl(n.type,null,r,t,t.mode,o)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=i,Ui(e,t,i,r,a,o))}return i=e.child,0==(a&o)&&(a=i.memoizedProps,(n=null!==(n=n.compare)?n:cr)(a,r)&&e.ref===t.ref)?ts(e,t,o):(t.flags|=1,(e=zl(i,r)).ref=t.ref,e.return=t,t.child=e)}function Ui(e,t,n,r,a,o){if(null!==e&&cr(e.memoizedProps,r)&&e.ref===t.ref){if(Oi=!1,0==(o&a))return t.lanes=e.lanes,ts(e,t,o);0!=(16384&e.flags)&&(Oi=!0)}return Hi(e,t,n,r,o)}function zi(e,t,n){var r=t.pendingProps,a=r.children,o=null!==e?e.memoizedState:null;if("hidden"===r.mode||"unstable-defer-without-hiding"===r.mode)if(0==(4&t.mode))t.memoizedState={baseLanes:0},vl(0,n);else{if(0==(1073741824&n))return e=null!==o?o.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e},vl(0,e),null;t.memoizedState={baseLanes:0},vl(0,null!==o?o.baseLanes:n)}else null!==o?(r=o.baseLanes|n,t.memoizedState=null):r=n,vl(0,r);return Mi(e,t,a,n),t.child}function ji(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=128)}function Hi(e,t,n,r,a){var o=ga(n)?fa:da.current;return o=ha(t,o),ro(t,a),n=oi(e,t,n,r,o,a),null===e||Oi?(t.flags|=1,Mi(e,t,n,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~a,ts(e,t,a))}function Vi(e,t,n,r,a){if(ga(n)){var o=!0;ya(t)}else o=!1;if(ro(t,a),null===t.stateNode)null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),bo(t,n,r),So(t,n,r,a),r=!0;else if(null===e){var i=t.stateNode,s=t.memoizedProps;i.props=s;var l=i.context,u=n.contextType;u="object"==typeof u&&null!==u?ao(u):ha(t,u=ga(n)?fa:da.current);var c=n.getDerivedStateFromProps,d="function"==typeof c||"function"==typeof i.getSnapshotBeforeUpdate;d||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(s!==r||l!==u)&&yo(t,i,r,u),oo=!1;var p=t.memoizedState;i.state=p,po(t,r,i,a),l=t.memoizedState,s!==r||p!==l||pa.current||oo?("function"==typeof c&&(go(t,n,c,r),l=t.memoizedState),(s=oo||mo(t,n,s,r,p,l,u))?(d||"function"!=typeof i.UNSAFE_componentWillMount&&"function"!=typeof i.componentWillMount||("function"==typeof i.componentWillMount&&i.componentWillMount(),"function"==typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount()),"function"==typeof i.componentDidMount&&(t.flags|=4)):("function"==typeof i.componentDidMount&&(t.flags|=4),t.memoizedProps=r,t.memoizedState=l),i.props=r,i.state=l,i.context=u,r=s):("function"==typeof i.componentDidMount&&(t.flags|=4),r=!1)}else{i=t.stateNode,so(e,t),s=t.memoizedProps,u=t.type===t.elementType?s:Xa(t.type,s),i.props=u,d=t.pendingProps,p=i.context,l="object"==typeof(l=n.contextType)&&null!==l?ao(l):ha(t,l=ga(n)?fa:da.current);var f=n.getDerivedStateFromProps;(c="function"==typeof f||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(s!==d||p!==l)&&yo(t,i,r,l),oo=!1,p=t.memoizedState,i.state=p,po(t,r,i,a);var h=t.memoizedState;s!==d||p!==h||pa.current||oo?("function"==typeof f&&(go(t,n,f,r),h=t.memoizedState),(u=oo||mo(t,n,u,r,p,h,l))?(c||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,h,l),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,h,l)),"function"==typeof i.componentDidUpdate&&(t.flags|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.flags|=256)):("function"!=typeof i.componentDidUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=256),t.memoizedProps=r,t.memoizedState=h),i.props=r,i.state=h,i.context=l,r=u):("function"!=typeof i.componentDidUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=256),r=!1)}return Ki(e,t,n,r,o,a)}function Ki(e,t,n,r,a,o){ji(e,t);var i=0!=(64&t.flags);if(!r&&!i)return a&&Sa(t,n,!1),ts(e,t,o);r=t.stateNode,Pi.current=t;var s=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&i?(t.child=xo(t,e.child,null,o),t.child=xo(t,null,s,o)):Mi(e,t,s,o),t.memoizedState=r.state,a&&Sa(t,n,!0),t.child}function Zi(e){var t=e.stateNode;t.pendingContext?ma(0,t.pendingContext,t.pendingContext!==t.context):t.context&&ma(0,t.context,!1),Lo(e,t.containerInfo)}var $i,qi,Wi,Xi={dehydrated:null,retryLane:0};function Yi(e,t,n){var r,a=t.pendingProps,o=Mo.current,i=!1;return(r=0!=(64&t.flags))||(r=(null===e||null!==e.memoizedState)&&0!=(2&o)),r?(i=!0,t.flags&=-65):null!==e&&null===e.memoizedState||void 0===a.fallback||!0===a.unstable_avoidThisFallback||(o|=1),ua(Mo,1&o),null===e?(void 0!==a.fallback&&Vo(t),e=a.children,o=a.fallback,i?(e=Qi(t,e,o,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Xi,e):"number"==typeof a.unstable_expectedLoadTime?(e=Qi(t,e,o,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Xi,t.lanes=33554432,e):((n=Vl({mode:"visible",children:e},t.mode,n,null)).return=t,t.child=n)):(e.memoizedState,i?(a=function(e,t,n,r,a){var o=t.mode,i=e.child;e=i.sibling;var s={mode:"hidden",children:n};return 0==(2&o)&&t.child!==i?((n=t.child).childLanes=0,n.pendingProps=s,null!==(i=n.lastEffect)?(t.firstEffect=n.firstEffect,t.lastEffect=i,i.nextEffect=null):t.firstEffect=t.lastEffect=null):n=zl(i,s),null!==e?r=zl(e,r):(r=Hl(r,o,a,null)).flags|=2,r.return=t,n.return=t,n.sibling=r,t.child=n,r}(e,t,a.children,a.fallback,n),i=t.child,o=e.child.memoizedState,i.memoizedState=null===o?{baseLanes:n}:{baseLanes:o.baseLanes|n},i.childLanes=e.childLanes&~n,t.memoizedState=Xi,a):(n=function(e,t,n,r){var a=e.child;return e=a.sibling,n=zl(a,{mode:"visible",children:n}),0==(2&t.mode)&&(n.lanes=r),n.return=t,n.sibling=null,null!==e&&(e.nextEffect=null,e.flags=8,t.firstEffect=t.lastEffect=e),t.child=n}(e,t,a.children,n),t.memoizedState=null,n))}function Qi(e,t,n,r){var a=e.mode,o=e.child;return t={mode:"hidden",children:t},0==(2&a)&&null!==o?(o.childLanes=0,o.pendingProps=t):o=Vl(t,a,0,null),n=Hl(n,a,r,null),o.return=e,n.return=e,o.sibling=n,e.child=o,n}function Gi(e,t){e.lanes|=t;var n=e.alternate;null!==n&&(n.lanes|=t),no(e.return,t)}function Ji(e,t,n,r,a,o){var i=e.memoizedState;null===i?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:a,lastEffect:o}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=r,i.tail=n,i.tailMode=a,i.lastEffect=o)}function es(e,t,n){var r=t.pendingProps,a=r.revealOrder,o=r.tail;if(Mi(e,t,r.children,n),0!=(2&(r=Mo.current)))r=1&r|2,t.flags|=64;else{if(null!==e&&0!=(64&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&Gi(e,n);else if(19===e.tag)Gi(e,n);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(ua(Mo,r),0==(2&t.mode))t.memoizedState=null;else switch(a){case"forwards":for(n=t.child,a=null;null!==n;)null!==(e=n.alternate)&&null===Bo(e)&&(a=n),n=n.sibling;null===(n=a)?(a=t.child,t.child=null):(a=n.sibling,n.sibling=null),Ji(t,!1,a,n,o,t.lastEffect);break;case"backwards":for(n=null,a=t.child,t.child=null;null!==a;){if(null!==(e=a.alternate)&&null===Bo(e)){t.child=a;break}e=a.sibling,a.sibling=n,n=a,a=e}Ji(t,!0,n,null,o,t.lastEffect);break;case"together":Ji(t,!1,null,null,void 0,t.lastEffect);break;default:t.memoizedState=null}return t.child}function ts(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Bs|=t.lanes,0!=(n&t.childLanes)){if(null!==e&&t.child!==e.child)throw Error(i(153));if(null!==t.child){for(n=zl(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=zl(e,e.pendingProps)).return=t;n.sibling=null}return t.child}return null}function ns(e,t){if(!zo)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function rs(e,t,n){var r=t.pendingProps;switch(t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:case 17:return ga(t.type)&&va(),null;case 3:return Do(),la(pa),la(da),Wo(),(r=t.stateNode).pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(Zo(t)?t.flags|=4:r.hydrate||(t.flags|=256)),null;case 5:Oo(t);var o=Ro(No.current);if(n=t.type,null!==e&&null!=t.stateNode)qi(e,t,n,r),e.ref!==t.ref&&(t.flags|=128);else{if(!r){if(null===t.stateNode)throw Error(i(166));return null}if(e=Ro(Ao.current),Zo(t)){r=t.stateNode,n=t.type;var s=t.memoizedProps;switch(r[Yr]=t,r[Qr]=s,n){case"dialog":Ar("cancel",r),Ar("close",r);break;case"iframe":case"object":case"embed":Ar("load",r);break;case"video":case"audio":for(e=0;e<Er.length;e++)Ar(Er[e],r);break;case"source":Ar("error",r);break;case"img":case"image":case"link":Ar("error",r),Ar("load",r);break;case"details":Ar("toggle",r);break;case"input":ee(r,s),Ar("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!s.multiple},Ar("invalid",r);break;case"textarea":le(r,s),Ar("invalid",r)}for(var u in Ce(n,s),e=null,s)s.hasOwnProperty(u)&&(o=s[u],"children"===u?"string"==typeof o?r.textContent!==o&&(e=["children",o]):"number"==typeof o&&r.textContent!==""+o&&(e=["children",""+o]):l.hasOwnProperty(u)&&null!=o&&"onScroll"===u&&Ar("scroll",r));switch(n){case"input":Y(r),re(r,s,!0);break;case"textarea":Y(r),ce(r);break;case"select":case"option":break;default:"function"==typeof s.onClick&&(r.onclick=Fr)}r=e,t.updateQueue=r,null!==r&&(t.flags|=4)}else{switch(u=9===o.nodeType?o:o.ownerDocument,e===de&&(e=pe(n)),e===de?"script"===n?((e=u.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=u.createElement(n,{is:r.is}):(e=u.createElement(n),"select"===n&&(u=e,r.multiple?u.multiple=!0:r.size&&(u.size=r.size))):e=u.createElementNS(e,n),e[Yr]=t,e[Qr]=r,$i(e,t),t.stateNode=e,u=Ee(n,r),n){case"dialog":Ar("cancel",e),Ar("close",e),o=r;break;case"iframe":case"object":case"embed":Ar("load",e),o=r;break;case"video":case"audio":for(o=0;o<Er.length;o++)Ar(Er[o],e);o=r;break;case"source":Ar("error",e),o=r;break;case"img":case"image":case"link":Ar("error",e),Ar("load",e),o=r;break;case"details":Ar("toggle",e),o=r;break;case"input":ee(e,r),o=J(e,r),Ar("invalid",e);break;case"option":o=oe(e,r);break;case"select":e._wrapperState={wasMultiple:!!r.multiple},o=a({},r,{value:void 0}),Ar("invalid",e);break;case"textarea":le(e,r),o=se(e,r),Ar("invalid",e);break;default:o=r}Ce(n,o);var c=o;for(s in c)if(c.hasOwnProperty(s)){var d=c[s];"style"===s?we(e,d):"dangerouslySetInnerHTML"===s?null!=(d=d?d.__html:void 0)&&ve(e,d):"children"===s?"string"==typeof d?("textarea"!==n||""!==d)&&me(e,d):"number"==typeof d&&me(e,""+d):"suppressContentEditableWarning"!==s&&"suppressHydrationWarning"!==s&&"autoFocus"!==s&&(l.hasOwnProperty(s)?null!=d&&"onScroll"===s&&Ar("scroll",e):null!=d&&S(e,s,d,u))}switch(n){case"input":Y(e),re(e,r,!1);break;case"textarea":Y(e),ce(e);break;case"option":null!=r.value&&e.setAttribute("value",""+W(r.value));break;case"select":e.multiple=!!r.multiple,null!=(s=r.value)?ie(e,!!r.multiple,s,!1):null!=r.defaultValue&&ie(e,!!r.multiple,r.defaultValue,!0);break;default:"function"==typeof o.onClick&&(e.onclick=Fr)}jr(n,r)&&(t.flags|=4)}null!==t.ref&&(t.flags|=128)}return null;case 6:if(e&&null!=t.stateNode)Wi(0,t,e.memoizedProps,r);else{if("string"!=typeof r&&null===t.stateNode)throw Error(i(166));n=Ro(No.current),Ro(Ao.current),Zo(t)?(r=t.stateNode,n=t.memoizedProps,r[Yr]=t,r.nodeValue!==n&&(t.flags|=4)):((r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[Yr]=t,t.stateNode=r)}return null;case 13:return la(Mo),r=t.memoizedState,0!=(64&t.flags)?(t.lanes=n,t):(r=null!==r,n=!1,null===e?void 0!==t.memoizedProps.fallback&&Zo(t):n=null!==e.memoizedState,r&&!n&&0!=(2&t.mode)&&(null===e&&!0!==t.memoizedProps.unstable_avoidThisFallback||0!=(1&Mo.current)?0===Ps&&(Ps=3):(0!==Ps&&3!==Ps||(Ps=4),null===Is||0==(134217727&Bs)&&0==(134217727&Fs)||hl(Is,Rs))),(r||n)&&(t.flags|=4),null);case 4:return Do(),null===e&&Nr(t.stateNode.containerInfo),null;case 10:return to(t),null;case 19:if(la(Mo),null===(r=t.memoizedState))return null;if(s=0!=(64&t.flags),null===(u=r.rendering))if(s)ns(r,!1);else{if(0!==Ps||null!==e&&0!=(64&e.flags))for(e=t.child;null!==e;){if(null!==(u=Bo(e))){for(t.flags|=64,ns(r,!1),null!==(s=u.updateQueue)&&(t.updateQueue=s,t.flags|=4),null===r.lastEffect&&(t.firstEffect=null),t.lastEffect=r.lastEffect,r=n,n=t.child;null!==n;)e=r,(s=n).flags&=2,s.nextEffect=null,s.firstEffect=null,s.lastEffect=null,null===(u=s.alternate)?(s.childLanes=0,s.lanes=e,s.child=null,s.memoizedProps=null,s.memoizedState=null,s.updateQueue=null,s.dependencies=null,s.stateNode=null):(s.childLanes=u.childLanes,s.lanes=u.lanes,s.child=u.child,s.memoizedProps=u.memoizedProps,s.memoizedState=u.memoizedState,s.updateQueue=u.updateQueue,s.type=u.type,e=u.dependencies,s.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return ua(Mo,1&Mo.current|2),t.child}e=e.sibling}null!==r.tail&&ja()>Hs&&(t.flags|=64,s=!0,ns(r,!1),t.lanes=33554432)}else{if(!s)if(null!==(e=Bo(u))){if(t.flags|=64,s=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),ns(r,!0),null===r.tail&&"hidden"===r.tailMode&&!u.alternate&&!zo)return null!==(t=t.lastEffect=r.lastEffect)&&(t.nextEffect=null),null}else 2*ja()-r.renderingStartTime>Hs&&1073741824!==n&&(t.flags|=64,s=!0,ns(r,!1),t.lanes=33554432);r.isBackwards?(u.sibling=t.child,t.child=u):(null!==(n=r.last)?n.sibling=u:t.child=u,r.last=u)}return null!==r.tail?(n=r.tail,r.rendering=n,r.tail=n.sibling,r.lastEffect=t.lastEffect,r.renderingStartTime=ja(),n.sibling=null,t=Mo.current,ua(Mo,s?1&t|2:1&t),n):null;case 23:case 24:return ml(),null!==e&&null!==e.memoizedState!=(null!==t.memoizedState)&&"unstable-defer-without-hiding"!==r.mode&&(t.flags|=4),null}throw Error(i(156,t.tag))}function as(e){switch(e.tag){case 1:ga(e.type)&&va();var t=e.flags;return 4096&t?(e.flags=-4097&t|64,e):null;case 3:if(Do(),la(pa),la(da),Wo(),0!=(64&(t=e.flags)))throw Error(i(285));return e.flags=-4097&t|64,e;case 5:return Oo(e),null;case 13:return la(Mo),4096&(t=e.flags)?(e.flags=-4097&t|64,e):null;case 19:return la(Mo),null;case 4:return Do(),null;case 10:return to(e),null;case 23:case 24:return ml(),null;default:return null}}function os(e,t){try{var n="",r=t;do{n+=$(r),r=r.return}while(r);var a=n}catch(e){a="\nError generating stack: "+e.message+"\n"+e.stack}return{value:e,source:t,stack:a}}function is(e,t){try{console.error(t.value)}catch(e){setTimeout((function(){throw e}))}}$i=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},qi=function(e,t,n,r){var o=e.memoizedProps;if(o!==r){e=t.stateNode,Ro(Ao.current);var i,s=null;switch(n){case"input":o=J(e,o),r=J(e,r),s=[];break;case"option":o=oe(e,o),r=oe(e,r),s=[];break;case"select":o=a({},o,{value:void 0}),r=a({},r,{value:void 0}),s=[];break;case"textarea":o=se(e,o),r=se(e,r),s=[];break;default:"function"!=typeof o.onClick&&"function"==typeof r.onClick&&(e.onclick=Fr)}for(d in Ce(n,r),n=null,o)if(!r.hasOwnProperty(d)&&o.hasOwnProperty(d)&&null!=o[d])if("style"===d){var u=o[d];for(i in u)u.hasOwnProperty(i)&&(n||(n={}),n[i]="")}else"dangerouslySetInnerHTML"!==d&&"children"!==d&&"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&"autoFocus"!==d&&(l.hasOwnProperty(d)?s||(s=[]):(s=s||[]).push(d,null));for(d in r){var c=r[d];if(u=null!=o?o[d]:void 0,r.hasOwnProperty(d)&&c!==u&&(null!=c||null!=u))if("style"===d)if(u){for(i in u)!u.hasOwnProperty(i)||c&&c.hasOwnProperty(i)||(n||(n={}),n[i]="");for(i in c)c.hasOwnProperty(i)&&u[i]!==c[i]&&(n||(n={}),n[i]=c[i])}else n||(s||(s=[]),s.push(d,n)),n=c;else"dangerouslySetInnerHTML"===d?(c=c?c.__html:void 0,u=u?u.__html:void 0,null!=c&&u!==c&&(s=s||[]).push(d,c)):"children"===d?"string"!=typeof c&&"number"!=typeof c||(s=s||[]).push(d,""+c):"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&(l.hasOwnProperty(d)?(null!=c&&"onScroll"===d&&Ar("scroll",e),s||u===c||(s=[])):"object"==typeof c&&null!==c&&c.$$typeof===O?c.toString():(s=s||[]).push(d,c))}n&&(s=s||[]).push("style",n);var d=s;(t.updateQueue=d)&&(t.flags|=4)}},Wi=function(e,t,n,r){n!==r&&(t.flags|=4)};var ss="function"==typeof WeakMap?WeakMap:Map;function ls(e,t,n){(n=lo(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){$s||($s=!0,qs=r),is(0,t)},n}function us(e,t,n){(n=lo(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var a=t.value;n.payload=function(){return is(0,t),r(a)}}var o=e.stateNode;return null!==o&&"function"==typeof o.componentDidCatch&&(n.callback=function(){"function"!=typeof r&&(null===Ws?Ws=new Set([this]):Ws.add(this),is(0,t));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}var cs="function"==typeof WeakSet?WeakSet:Set;function ds(e){var t=e.ref;if(null!==t)if("function"==typeof t)try{t(null)}catch(t){Pl(e,t)}else t.current=null}function ps(e,t){switch(t.tag){case 0:case 11:case 15:case 22:case 5:case 6:case 4:case 17:return;case 1:if(256&t.flags&&null!==e){var n=e.memoizedProps,r=e.memoizedState;t=(e=t.stateNode).getSnapshotBeforeUpdate(t.elementType===t.type?n:Xa(t.type,n),r),e.__reactInternalSnapshotBeforeUpdate=t}return;case 3:return void(256&t.flags&&Zr(t.stateNode.containerInfo))}throw Error(i(163))}function fs(e,t,n){switch(n.tag){case 0:case 11:case 15:case 22:if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{if(3==(3&e.tag)){var r=e.create;e.destroy=r()}e=e.next}while(e!==t)}if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{var a=e;r=a.next,0!=(4&(a=a.tag))&&0!=(1&a)&&(Rl(n,e),Nl(n,e)),e=r}while(e!==t)}return;case 1:return e=n.stateNode,4&n.flags&&(null===t?e.componentDidMount():(r=n.elementType===n.type?t.memoizedProps:Xa(n.type,t.memoizedProps),e.componentDidUpdate(r,t.memoizedState,e.__reactInternalSnapshotBeforeUpdate))),void(null!==(t=n.updateQueue)&&fo(n,t,e));case 3:if(null!==(t=n.updateQueue)){if(e=null,null!==n.child)switch(n.child.tag){case 5:case 1:e=n.child.stateNode}fo(n,t,e)}return;case 5:return e=n.stateNode,void(null===t&&4&n.flags&&jr(n.type,n.memoizedProps)&&e.focus());case 6:case 4:case 12:case 19:case 17:case 20:case 21:case 23:case 24:return;case 13:return void(null===n.memoizedState&&(n=n.alternate,null!==n&&(n=n.memoizedState,null!==n&&(n=n.dehydrated,null!==n&&St(n)))))}throw Error(i(163))}function hs(e,t){for(var n=e;;){if(5===n.tag){var r=n.stateNode;if(t)"function"==typeof(r=r.style).setProperty?r.setProperty("display","none","important"):r.display="none";else{r=n.stateNode;var a=n.memoizedProps.style;a=null!=a&&a.hasOwnProperty("display")?a.display:null,r.style.display=Se("display",a)}}else if(6===n.tag)n.stateNode.nodeValue=t?"":n.memoizedProps;else if((23!==n.tag&&24!==n.tag||null===n.memoizedState||n===e)&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return;n=n.return}n.sibling.return=n.return,n=n.sibling}}function gs(e,t){if(ka&&"function"==typeof ka.onCommitFiberUnmount)try{ka.onCommitFiberUnmount(wa,t)}catch(e){}switch(t.tag){case 0:case 11:case 14:case 15:case 22:if(null!==(e=t.updateQueue)&&null!==(e=e.lastEffect)){var n=e=e.next;do{var r=n,a=r.destroy;if(r=r.tag,void 0!==a)if(0!=(4&r))Rl(t,n);else{r=t;try{a()}catch(e){Pl(r,e)}}n=n.next}while(n!==e)}break;case 1:if(ds(t),"function"==typeof(e=t.stateNode).componentWillUnmount)try{e.props=t.memoizedProps,e.state=t.memoizedState,e.componentWillUnmount()}catch(e){Pl(t,e)}break;case 5:ds(t);break;case 4:ws(e,t)}}function vs(e){e.alternate=null,e.child=null,e.dependencies=null,e.firstEffect=null,e.lastEffect=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.return=null,e.updateQueue=null}function ms(e){return 5===e.tag||3===e.tag||4===e.tag}function bs(e){e:{for(var t=e.return;null!==t;){if(ms(t))break e;t=t.return}throw Error(i(160))}var n=t;switch(t=n.stateNode,n.tag){case 5:var r=!1;break;case 3:case 4:t=t.containerInfo,r=!0;break;default:throw Error(i(161))}16&n.flags&&(me(t,""),n.flags&=-17);e:t:for(n=e;;){for(;null===n.sibling;){if(null===n.return||ms(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;5!==n.tag&&6!==n.tag&&18!==n.tag;){if(2&n.flags)continue t;if(null===n.child||4===n.tag)continue t;n.child.return=n,n=n.child}if(!(2&n.flags)){n=n.stateNode;break e}}r?ys(e,n,t):Ss(e,n,t)}function ys(e,t,n){var r=e.tag,a=5===r||6===r;if(a)e=a?e.stateNode:e.stateNode.instance,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=Fr));else if(4!==r&&null!==(e=e.child))for(ys(e,t,n),e=e.sibling;null!==e;)ys(e,t,n),e=e.sibling}function Ss(e,t,n){var r=e.tag,a=5===r||6===r;if(a)e=a?e.stateNode:e.stateNode.instance,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(Ss(e,t,n),e=e.sibling;null!==e;)Ss(e,t,n),e=e.sibling}function ws(e,t){for(var n,r,a=t,o=!1;;){if(!o){o=a.return;e:for(;;){if(null===o)throw Error(i(160));switch(n=o.stateNode,o.tag){case 5:r=!1;break e;case 3:case 4:n=n.containerInfo,r=!0;break e}o=o.return}o=!0}if(5===a.tag||6===a.tag){e:for(var s=e,l=a,u=l;;)if(gs(s,u),null!==u.child&&4!==u.tag)u.child.return=u,u=u.child;else{if(u===l)break e;for(;null===u.sibling;){if(null===u.return||u.return===l)break e;u=u.return}u.sibling.return=u.return,u=u.sibling}r?(s=n,l=a.stateNode,8===s.nodeType?s.parentNode.removeChild(l):s.removeChild(l)):n.removeChild(a.stateNode)}else if(4===a.tag){if(null!==a.child){n=a.stateNode.containerInfo,r=!0,a.child.return=a,a=a.child;continue}}else if(gs(e,a),null!==a.child){a.child.return=a,a=a.child;continue}if(a===t)break;for(;null===a.sibling;){if(null===a.return||a.return===t)return;4===(a=a.return).tag&&(o=!1)}a.sibling.return=a.return,a=a.sibling}}function ks(e,t){switch(t.tag){case 0:case 11:case 14:case 15:case 22:var n=t.updateQueue;if(null!==(n=null!==n?n.lastEffect:null)){var r=n=n.next;do{3==(3&r.tag)&&(e=r.destroy,r.destroy=void 0,void 0!==e&&e()),r=r.next}while(r!==n)}return;case 1:case 12:case 17:return;case 5:if(null!=(n=t.stateNode)){r=t.memoizedProps;var a=null!==e?e.memoizedProps:r;e=t.type;var o=t.updateQueue;if(t.updateQueue=null,null!==o){for(n[Qr]=r,"input"===e&&"radio"===r.type&&null!=r.name&&te(n,r),Ee(e,a),t=Ee(e,r),a=0;a<o.length;a+=2){var s=o[a],l=o[a+1];"style"===s?we(n,l):"dangerouslySetInnerHTML"===s?ve(n,l):"children"===s?me(n,l):S(n,s,l,t)}switch(e){case"input":ne(n,r);break;case"textarea":ue(n,r);break;case"select":e=n._wrapperState.wasMultiple,n._wrapperState.wasMultiple=!!r.multiple,null!=(o=r.value)?ie(n,!!r.multiple,o,!1):e!==!!r.multiple&&(null!=r.defaultValue?ie(n,!!r.multiple,r.defaultValue,!0):ie(n,!!r.multiple,r.multiple?[]:"",!1))}}}return;case 6:if(null===t.stateNode)throw Error(i(162));return void(t.stateNode.nodeValue=t.memoizedProps);case 3:return void((n=t.stateNode).hydrate&&(n.hydrate=!1,St(n.containerInfo)));case 13:return null!==t.memoizedState&&(js=ja(),hs(t.child,!0)),void Cs(t);case 19:return void Cs(t);case 23:case 24:return void hs(t,null!==t.memoizedState)}throw Error(i(163))}function Cs(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new cs),t.forEach((function(t){var r=Ml.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function Es(e,t){return null!==e&&(null===(e=e.memoizedState)||null!==e.dehydrated)&&null!==(t=t.memoizedState)&&null===t.dehydrated}var xs=Math.ceil,_s=w.ReactCurrentDispatcher,Ts=w.ReactCurrentOwner,As=0,Is=null,Ns=null,Rs=0,Ls=0,Ds=sa(0),Ps=0,Os=null,Ms=0,Bs=0,Fs=0,Us=0,zs=null,js=0,Hs=1/0;function Vs(){Hs=ja()+500}var Ks,Zs=null,$s=!1,qs=null,Ws=null,Xs=!1,Ys=null,Qs=90,Gs=[],Js=[],el=null,tl=0,nl=null,rl=-1,al=0,ol=0,il=null,sl=!1;function ll(){return 0!=(48&As)?ja():-1!==rl?rl:rl=ja()}function ul(e){if(0==(2&(e=e.mode)))return 1;if(0==(4&e))return 99===Ha()?1:2;if(0===al&&(al=Ms),0!==Wa.transition){0!==ol&&(ol=null!==zs?zs.pendingLanes:0),e=al;var t=4186112&~ol;return 0==(t&=-t)&&0==(t=(e=4186112&~e)&-e)&&(t=8192),t}return e=Ha(),e=Ft(0!=(4&As)&&98===e?12:e=function(e){switch(e){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}(e),al)}function cl(e,t,n){if(50<tl)throw tl=0,nl=null,Error(i(185));if(null===(e=dl(e,t)))return null;jt(e,t,n),e===Is&&(Fs|=t,4===Ps&&hl(e,Rs));var r=Ha();1===t?0!=(8&As)&&0==(48&As)?gl(e):(pl(e,n),0===As&&(Vs(),$a())):(0==(4&As)||98!==r&&99!==r||(null===el?el=new Set([e]):el.add(e)),pl(e,n)),zs=e}function dl(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}function pl(e,t){for(var n=e.callbackNode,r=e.suspendedLanes,a=e.pingedLanes,o=e.expirationTimes,s=e.pendingLanes;0<s;){var l=31-Ht(s),u=1<<l,c=o[l];if(-1===c){if(0==(u&r)||0!=(u&a)){c=t,Ot(u);var d=Pt;o[l]=10<=d?c+250:6<=d?c+5e3:-1}}else c<=t&&(e.expiredLanes|=u);s&=~u}if(r=Mt(e,e===Is?Rs:0),t=Pt,0===r)null!==n&&(n!==Oa&&xa(n),e.callbackNode=null,e.callbackPriority=0);else{if(null!==n){if(e.callbackPriority===t)return;n!==Oa&&xa(n)}15===t?(n=gl.bind(null,e),null===Ba?(Ba=[n],Fa=Ea(Na,qa)):Ba.push(n),n=Oa):14===t?n=Za(99,gl.bind(null,e)):(n=function(e){switch(e){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(i(358,e))}}(t),n=Za(n,fl.bind(null,e))),e.callbackPriority=t,e.callbackNode=n}}function fl(e){if(rl=-1,ol=al=0,0!=(48&As))throw Error(i(327));var t=e.callbackNode;if(Il()&&e.callbackNode!==t)return null;var n=Mt(e,e===Is?Rs:0);if(0===n)return null;var r=n,a=As;As|=16;var o=Sl();for(Is===e&&Rs===r||(Vs(),bl(e,r));;)try{Cl();break}catch(t){yl(e,t)}if(eo(),_s.current=o,As=a,null!==Ns?r=0:(Is=null,Rs=0,r=Ps),0!=(Ms&Fs))bl(e,0);else if(0!==r){if(2===r&&(As|=64,e.hydrate&&(e.hydrate=!1,Zr(e.containerInfo)),0!==(n=Bt(e))&&(r=wl(e,n))),1===r)throw t=Os,bl(e,0),hl(e,n),pl(e,ja()),t;switch(e.finishedWork=e.current.alternate,e.finishedLanes=n,r){case 0:case 1:throw Error(i(345));case 2:case 5:_l(e);break;case 3:if(hl(e,n),(62914560&n)===n&&10<(r=js+500-ja())){if(0!==Mt(e,0))break;if(((a=e.suspendedLanes)&n)!==n){ll(),e.pingedLanes|=e.suspendedLanes&a;break}e.timeoutHandle=Vr(_l.bind(null,e),r);break}_l(e);break;case 4:if(hl(e,n),(4186112&n)===n)break;for(r=e.eventTimes,a=-1;0<n;){var s=31-Ht(n);o=1<<s,(s=r[s])>a&&(a=s),n&=~o}if(n=a,10<(n=(120>(n=ja()-n)?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*xs(n/1960))-n)){e.timeoutHandle=Vr(_l.bind(null,e),n);break}_l(e);break;default:throw Error(i(329))}}return pl(e,ja()),e.callbackNode===t?fl.bind(null,e):null}function hl(e,t){for(t&=~Us,t&=~Fs,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-Ht(t),r=1<<n;e[n]=-1,t&=~r}}function gl(e){if(0!=(48&As))throw Error(i(327));if(Il(),e===Is&&0!=(e.expiredLanes&Rs)){var t=Rs,n=wl(e,t);0!=(Ms&Fs)&&(n=wl(e,t=Mt(e,t)))}else n=wl(e,t=Mt(e,0));if(0!==e.tag&&2===n&&(As|=64,e.hydrate&&(e.hydrate=!1,Zr(e.containerInfo)),0!==(t=Bt(e))&&(n=wl(e,t))),1===n)throw n=Os,bl(e,0),hl(e,t),pl(e,ja()),n;return e.finishedWork=e.current.alternate,e.finishedLanes=t,_l(e),pl(e,ja()),null}function vl(e,t){ua(Ds,Ls),Ls|=t,Ms|=t}function ml(){Ls=Ds.current,la(Ds)}function bl(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,Kr(n)),null!==Ns)for(n=Ns.return;null!==n;){var r=n;switch(r.tag){case 1:null!=(r=r.type.childContextTypes)&&va();break;case 3:Do(),la(pa),la(da),Wo();break;case 5:Oo(r);break;case 4:Do();break;case 13:case 19:la(Mo);break;case 10:to(r);break;case 23:case 24:ml()}n=n.return}Is=e,Ns=zl(e.current,null),Rs=Ls=Ms=t,Ps=0,Os=null,Us=Fs=Bs=0}function yl(e,t){for(;;){var n=Ns;try{if(eo(),Xo.current=Ni,ti){for(var r=Go.memoizedState;null!==r;){var a=r.queue;null!==a&&(a.pending=null),r=r.next}ti=!1}if(Qo=0,ei=Jo=Go=null,ni=!1,Ts.current=null,null===n||null===n.return){Ps=1,Os=t,Ns=null;break}e:{var o=e,i=n.return,s=n,l=t;if(t=Rs,s.flags|=2048,s.firstEffect=s.lastEffect=null,null!==l&&"object"==typeof l&&"function"==typeof l.then){var u=l;if(0==(2&s.mode)){var c=s.alternate;c?(s.updateQueue=c.updateQueue,s.memoizedState=c.memoizedState,s.lanes=c.lanes):(s.updateQueue=null,s.memoizedState=null)}var d=0!=(1&Mo.current),p=i;do{var f;if(f=13===p.tag){var h=p.memoizedState;if(null!==h)f=null!==h.dehydrated;else{var g=p.memoizedProps;f=void 0!==g.fallback&&(!0!==g.unstable_avoidThisFallback||!d)}}if(f){var v=p.updateQueue;if(null===v){var m=new Set;m.add(u),p.updateQueue=m}else v.add(u);if(0==(2&p.mode)){if(p.flags|=64,s.flags|=16384,s.flags&=-2981,1===s.tag)if(null===s.alternate)s.tag=17;else{var b=lo(-1,1);b.tag=2,uo(s,b)}s.lanes|=1;break e}l=void 0,s=t;var y=o.pingCache;if(null===y?(y=o.pingCache=new ss,l=new Set,y.set(u,l)):void 0===(l=y.get(u))&&(l=new Set,y.set(u,l)),!l.has(s)){l.add(s);var S=Ol.bind(null,o,u,s);u.then(S,S)}p.flags|=4096,p.lanes=t;break e}p=p.return}while(null!==p);l=Error((q(s.type)||"A React component")+" suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.")}5!==Ps&&(Ps=2),l=os(l,s),p=i;do{switch(p.tag){case 3:o=l,p.flags|=4096,t&=-t,p.lanes|=t,co(p,ls(0,o,t));break e;case 1:o=l;var w=p.type,k=p.stateNode;if(0==(64&p.flags)&&("function"==typeof w.getDerivedStateFromError||null!==k&&"function"==typeof k.componentDidCatch&&(null===Ws||!Ws.has(k)))){p.flags|=4096,t&=-t,p.lanes|=t,co(p,us(p,o,t));break e}}p=p.return}while(null!==p)}xl(n)}catch(e){t=e,Ns===n&&null!==n&&(Ns=n=n.return);continue}break}}function Sl(){var e=_s.current;return _s.current=Ni,null===e?Ni:e}function wl(e,t){var n=As;As|=16;var r=Sl();for(Is===e&&Rs===t||bl(e,t);;)try{kl();break}catch(t){yl(e,t)}if(eo(),As=n,_s.current=r,null!==Ns)throw Error(i(261));return Is=null,Rs=0,Ps}function kl(){for(;null!==Ns;)El(Ns)}function Cl(){for(;null!==Ns&&!_a();)El(Ns)}function El(e){var t=Ks(e.alternate,e,Ls);e.memoizedProps=e.pendingProps,null===t?xl(e):Ns=t,Ts.current=null}function xl(e){var t=e;do{var n=t.alternate;if(e=t.return,0==(2048&t.flags)){if(null!==(n=rs(n,t,Ls)))return void(Ns=n);if(24!==(n=t).tag&&23!==n.tag||null===n.memoizedState||0!=(1073741824&Ls)||0==(4&n.mode)){for(var r=0,a=n.child;null!==a;)r|=a.lanes|a.childLanes,a=a.sibling;n.childLanes=r}null!==e&&0==(2048&e.flags)&&(null===e.firstEffect&&(e.firstEffect=t.firstEffect),null!==t.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=t.firstEffect),e.lastEffect=t.lastEffect),1<t.flags&&(null!==e.lastEffect?e.lastEffect.nextEffect=t:e.firstEffect=t,e.lastEffect=t))}else{if(null!==(n=as(t)))return n.flags&=2047,void(Ns=n);null!==e&&(e.firstEffect=e.lastEffect=null,e.flags|=2048)}if(null!==(t=t.sibling))return void(Ns=t);Ns=t=e}while(null!==t);0===Ps&&(Ps=5)}function _l(e){var t=Ha();return Ka(99,Tl.bind(null,e,t)),null}function Tl(e,t){do{Il()}while(null!==Ys);if(0!=(48&As))throw Error(i(327));var n=e.finishedWork;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(i(177));e.callbackNode=null;var r=n.lanes|n.childLanes,a=r,o=e.pendingLanes&~a;e.pendingLanes=a,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=a,e.mutableReadLanes&=a,e.entangledLanes&=a,a=e.entanglements;for(var s=e.eventTimes,l=e.expirationTimes;0<o;){var u=31-Ht(o),c=1<<u;a[u]=0,s[u]=-1,l[u]=-1,o&=~c}if(null!==el&&0==(24&r)&&el.has(e)&&el.delete(e),e===Is&&(Ns=Is=null,Rs=0),1<n.flags?null!==n.lastEffect?(n.lastEffect.nextEffect=n,r=n.firstEffect):r=n:r=n.firstEffect,null!==r){if(a=As,As|=32,Ts.current=null,Ur=qt,gr(s=hr())){if("selectionStart"in s)l={start:s.selectionStart,end:s.selectionEnd};else e:if(l=(l=s.ownerDocument)&&l.defaultView||window,(c=l.getSelection&&l.getSelection())&&0!==c.rangeCount){l=c.anchorNode,o=c.anchorOffset,u=c.focusNode,c=c.focusOffset;try{l.nodeType,u.nodeType}catch(e){l=null;break e}var d=0,p=-1,f=-1,h=0,g=0,v=s,m=null;t:for(;;){for(var b;v!==l||0!==o&&3!==v.nodeType||(p=d+o),v!==u||0!==c&&3!==v.nodeType||(f=d+c),3===v.nodeType&&(d+=v.nodeValue.length),null!==(b=v.firstChild);)m=v,v=b;for(;;){if(v===s)break t;if(m===l&&++h===o&&(p=d),m===u&&++g===c&&(f=d),null!==(b=v.nextSibling))break;m=(v=m).parentNode}v=b}l=-1===p||-1===f?null:{start:p,end:f}}else l=null;l=l||{start:0,end:0}}else l=null;zr={focusedElem:s,selectionRange:l},qt=!1,il=null,sl=!1,Zs=r;do{try{Al()}catch(e){if(null===Zs)throw Error(i(330));Pl(Zs,e),Zs=Zs.nextEffect}}while(null!==Zs);il=null,Zs=r;do{try{for(s=e;null!==Zs;){var y=Zs.flags;if(16&y&&me(Zs.stateNode,""),128&y){var S=Zs.alternate;if(null!==S){var w=S.ref;null!==w&&("function"==typeof w?w(null):w.current=null)}}switch(1038&y){case 2:bs(Zs),Zs.flags&=-3;break;case 6:bs(Zs),Zs.flags&=-3,ks(Zs.alternate,Zs);break;case 1024:Zs.flags&=-1025;break;case 1028:Zs.flags&=-1025,ks(Zs.alternate,Zs);break;case 4:ks(Zs.alternate,Zs);break;case 8:ws(s,l=Zs);var k=l.alternate;vs(l),null!==k&&vs(k)}Zs=Zs.nextEffect}}catch(e){if(null===Zs)throw Error(i(330));Pl(Zs,e),Zs=Zs.nextEffect}}while(null!==Zs);if(w=zr,S=hr(),y=w.focusedElem,s=w.selectionRange,S!==y&&y&&y.ownerDocument&&fr(y.ownerDocument.documentElement,y)){null!==s&&gr(y)&&(S=s.start,void 0===(w=s.end)&&(w=S),"selectionStart"in y?(y.selectionStart=S,y.selectionEnd=Math.min(w,y.value.length)):(w=(S=y.ownerDocument||document)&&S.defaultView||window).getSelection&&(w=w.getSelection(),l=y.textContent.length,k=Math.min(s.start,l),s=void 0===s.end?k:Math.min(s.end,l),!w.extend&&k>s&&(l=s,s=k,k=l),l=pr(y,k),o=pr(y,s),l&&o&&(1!==w.rangeCount||w.anchorNode!==l.node||w.anchorOffset!==l.offset||w.focusNode!==o.node||w.focusOffset!==o.offset)&&((S=S.createRange()).setStart(l.node,l.offset),w.removeAllRanges(),k>s?(w.addRange(S),w.extend(o.node,o.offset)):(S.setEnd(o.node,o.offset),w.addRange(S))))),S=[];for(w=y;w=w.parentNode;)1===w.nodeType&&S.push({element:w,left:w.scrollLeft,top:w.scrollTop});for("function"==typeof y.focus&&y.focus(),y=0;y<S.length;y++)(w=S[y]).element.scrollLeft=w.left,w.element.scrollTop=w.top}qt=!!Ur,zr=Ur=null,e.current=n,Zs=r;do{try{for(y=e;null!==Zs;){var C=Zs.flags;if(36&C&&fs(y,Zs.alternate,Zs),128&C){S=void 0;var E=Zs.ref;if(null!==E){var x=Zs.stateNode;Zs.tag,S=x,"function"==typeof E?E(S):E.current=S}}Zs=Zs.nextEffect}}catch(e){if(null===Zs)throw Error(i(330));Pl(Zs,e),Zs=Zs.nextEffect}}while(null!==Zs);Zs=null,Ma(),As=a}else e.current=n;if(Xs)Xs=!1,Ys=e,Qs=t;else for(Zs=r;null!==Zs;)t=Zs.nextEffect,Zs.nextEffect=null,8&Zs.flags&&((C=Zs).sibling=null,C.stateNode=null),Zs=t;if(0===(r=e.pendingLanes)&&(Ws=null),1===r?e===nl?tl++:(tl=0,nl=e):tl=0,n=n.stateNode,ka&&"function"==typeof ka.onCommitFiberRoot)try{ka.onCommitFiberRoot(wa,n,void 0,64==(64&n.current.flags))}catch(e){}if(pl(e,ja()),$s)throw $s=!1,e=qs,qs=null,e;return 0!=(8&As)||$a(),null}function Al(){for(;null!==Zs;){var e=Zs.alternate;sl||null===il||(0!=(8&Zs.flags)?Ge(Zs,il)&&(sl=!0):13===Zs.tag&&Es(e,Zs)&&Ge(Zs,il)&&(sl=!0));var t=Zs.flags;0!=(256&t)&&ps(e,Zs),0==(512&t)||Xs||(Xs=!0,Za(97,(function(){return Il(),null}))),Zs=Zs.nextEffect}}function Il(){if(90!==Qs){var e=97<Qs?97:Qs;return Qs=90,Ka(e,Ll)}return!1}function Nl(e,t){Gs.push(t,e),Xs||(Xs=!0,Za(97,(function(){return Il(),null})))}function Rl(e,t){Js.push(t,e),Xs||(Xs=!0,Za(97,(function(){return Il(),null})))}function Ll(){if(null===Ys)return!1;var e=Ys;if(Ys=null,0!=(48&As))throw Error(i(331));var t=As;As|=32;var n=Js;Js=[];for(var r=0;r<n.length;r+=2){var a=n[r],o=n[r+1],s=a.destroy;if(a.destroy=void 0,"function"==typeof s)try{s()}catch(e){if(null===o)throw Error(i(330));Pl(o,e)}}for(n=Gs,Gs=[],r=0;r<n.length;r+=2){a=n[r],o=n[r+1];try{var l=a.create;a.destroy=l()}catch(e){if(null===o)throw Error(i(330));Pl(o,e)}}for(l=e.current.firstEffect;null!==l;)e=l.nextEffect,l.nextEffect=null,8&l.flags&&(l.sibling=null,l.stateNode=null),l=e;return As=t,$a(),!0}function Dl(e,t,n){uo(e,t=ls(0,t=os(n,t),1)),t=ll(),null!==(e=dl(e,1))&&(jt(e,1,t),pl(e,t))}function Pl(e,t){if(3===e.tag)Dl(e,e,t);else for(var n=e.return;null!==n;){if(3===n.tag){Dl(n,e,t);break}if(1===n.tag){var r=n.stateNode;if("function"==typeof n.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Ws||!Ws.has(r))){var a=us(n,e=os(t,e),1);if(uo(n,a),a=ll(),null!==(n=dl(n,1)))jt(n,1,a),pl(n,a);else if("function"==typeof r.componentDidCatch&&(null===Ws||!Ws.has(r)))try{r.componentDidCatch(t,e)}catch(e){}break}}n=n.return}}function Ol(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=ll(),e.pingedLanes|=e.suspendedLanes&n,Is===e&&(Rs&n)===n&&(4===Ps||3===Ps&&(62914560&Rs)===Rs&&500>ja()-js?bl(e,0):Us|=n),pl(e,t)}function Ml(e,t){var n=e.stateNode;null!==n&&n.delete(t),0==(t=0)&&(0==(2&(t=e.mode))?t=1:0==(4&t)?t=99===Ha()?1:2:(0===al&&(al=Ms),0===(t=Ut(62914560&~al))&&(t=4194304))),n=ll(),null!==(e=dl(e,t))&&(jt(e,t,n),pl(e,n))}function Bl(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.flags=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childLanes=this.lanes=0,this.alternate=null}function Fl(e,t,n,r){return new Bl(e,t,n,r)}function Ul(e){return!(!(e=e.prototype)||!e.isReactComponent)}function zl(e,t){var n=e.alternate;return null===n?((n=Fl(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.nextEffect=null,n.firstEffect=null,n.lastEffect=null),n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function jl(e,t,n,r,a,o){var s=2;if(r=e,"function"==typeof e)Ul(e)&&(s=1);else if("string"==typeof e)s=5;else e:switch(e){case E:return Hl(n.children,a,o,t);case M:s=8,a|=16;break;case x:s=8,a|=1;break;case _:return(e=Fl(12,n,t,8|a)).elementType=_,e.type=_,e.lanes=o,e;case N:return(e=Fl(13,n,t,a)).type=N,e.elementType=N,e.lanes=o,e;case R:return(e=Fl(19,n,t,a)).elementType=R,e.lanes=o,e;case B:return Vl(n,a,o,t);case F:return(e=Fl(24,n,t,a)).elementType=F,e.lanes=o,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case T:s=10;break e;case A:s=9;break e;case I:s=11;break e;case L:s=14;break e;case D:s=16,r=null;break e;case P:s=22;break e}throw Error(i(130,null==e?e:typeof e,""))}return(t=Fl(s,n,t,a)).elementType=e,t.type=r,t.lanes=o,t}function Hl(e,t,n,r){return(e=Fl(7,e,r,t)).lanes=n,e}function Vl(e,t,n,r){return(e=Fl(23,e,r,t)).elementType=B,e.lanes=n,e}function Kl(e,t,n){return(e=Fl(6,e,null,t)).lanes=n,e}function Zl(e,t,n){return(t=Fl(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function $l(e,t,n){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.pendingContext=this.context=null,this.hydrate=n,this.callbackNode=null,this.callbackPriority=0,this.eventTimes=zt(0),this.expirationTimes=zt(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=zt(0),this.mutableSourceEagerHydrationData=null}function ql(e,t,n,r){var a=t.current,o=ll(),s=ul(a);e:if(n){t:{if(Xe(n=n._reactInternals)!==n||1!==n.tag)throw Error(i(170));var l=n;do{switch(l.tag){case 3:l=l.stateNode.context;break t;case 1:if(ga(l.type)){l=l.stateNode.__reactInternalMemoizedMergedChildContext;break t}}l=l.return}while(null!==l);throw Error(i(171))}if(1===n.tag){var u=n.type;if(ga(u)){n=ba(n,u,l);break e}}n=l}else n=ca;return null===t.context?t.context=n:t.pendingContext=n,(t=lo(o,s)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),uo(a,t),cl(a,s,o),s}function Wl(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function Xl(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function Yl(e,t){Xl(e,t),(e=e.alternate)&&Xl(e,t)}function Ql(e,t,n){var r=null!=n&&null!=n.hydrationOptions&&n.hydrationOptions.mutableSources||null;if(n=new $l(e,t,null!=n&&!0===n.hydrate),t=Fl(3,null,null,2===t?7:1===t?3:0),n.current=t,t.stateNode=n,io(t),e[Gr]=n.current,Nr(8===e.nodeType?e.parentNode:e),r)for(e=0;e<r.length;e++){var a=(t=r[e])._getVersion;a=a(t._source),null==n.mutableSourceEagerHydrationData?n.mutableSourceEagerHydrationData=[t,a]:n.mutableSourceEagerHydrationData.push(t,a)}this._internalRoot=n}function Gl(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function Jl(e,t,n,r,a){var o=n._reactRootContainer;if(o){var i=o._internalRoot;if("function"==typeof a){var s=a;a=function(){var e=Wl(i);s.call(e)}}ql(t,i,e,a)}else{if(o=n._reactRootContainer=function(e,t){if(t||(t=!(!(t=e?9===e.nodeType?e.documentElement:e.firstChild:null)||1!==t.nodeType||!t.hasAttribute("data-reactroot"))),!t)for(var n;n=e.lastChild;)e.removeChild(n);return new Ql(e,0,t?{hydrate:!0}:void 0)}(n,r),i=o._internalRoot,"function"==typeof a){var l=a;a=function(){var e=Wl(i);l.call(e)}}!function(e,t){var n=As;As&=-2,As|=8;try{e(t)}finally{0===(As=n)&&(Vs(),$a())}}((function(){ql(t,i,e,a)}))}return Wl(i)}Ks=function(e,t,n){var r=t.lanes;if(null!==e)if(e.memoizedProps!==t.pendingProps||pa.current)Oi=!0;else{if(0==(n&r)){switch(Oi=!1,t.tag){case 3:Zi(t),$o();break;case 5:Po(t);break;case 1:ga(t.type)&&ya(t);break;case 4:Lo(t,t.stateNode.containerInfo);break;case 10:r=t.memoizedProps.value;var a=t.type._context;ua(Ya,a._currentValue),a._currentValue=r;break;case 13:if(null!==t.memoizedState)return 0!=(n&t.child.childLanes)?Yi(e,t,n):(ua(Mo,1&Mo.current),null!==(t=ts(e,t,n))?t.sibling:null);ua(Mo,1&Mo.current);break;case 19:if(r=0!=(n&t.childLanes),0!=(64&e.flags)){if(r)return es(e,t,n);t.flags|=64}if(null!==(a=t.memoizedState)&&(a.rendering=null,a.tail=null,a.lastEffect=null),ua(Mo,Mo.current),r)break;return null;case 23:case 24:return t.lanes=0,zi(e,t,n)}return ts(e,t,n)}Oi=0!=(16384&e.flags)}else Oi=!1;switch(t.lanes=0,t.tag){case 2:if(r=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,a=ha(t,da.current),ro(t,n),a=oi(null,t,r,e,a,n),t.flags|=1,"object"==typeof a&&null!==a&&"function"==typeof a.render&&void 0===a.$$typeof){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,ga(r)){var o=!0;ya(t)}else o=!1;t.memoizedState=null!==a.state&&void 0!==a.state?a.state:null,io(t);var s=r.getDerivedStateFromProps;"function"==typeof s&&go(t,r,s,e),a.updater=vo,t.stateNode=a,a._reactInternals=t,So(t,r,e,n),t=Ki(null,t,r,!0,o,n)}else t.tag=0,Mi(null,t,a,n),t=t.child;return t;case 16:a=t.elementType;e:{switch(null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,a=(o=a._init)(a._payload),t.type=a,o=t.tag=function(e){if("function"==typeof e)return Ul(e)?1:0;if(null!=e){if((e=e.$$typeof)===I)return 11;if(e===L)return 14}return 2}(a),e=Xa(a,e),o){case 0:t=Hi(null,t,a,e,n);break e;case 1:t=Vi(null,t,a,e,n);break e;case 11:t=Bi(null,t,a,e,n);break e;case 14:t=Fi(null,t,a,Xa(a.type,e),r,n);break e}throw Error(i(306,a,""))}return t;case 0:return r=t.type,a=t.pendingProps,Hi(e,t,r,a=t.elementType===r?a:Xa(r,a),n);case 1:return r=t.type,a=t.pendingProps,Vi(e,t,r,a=t.elementType===r?a:Xa(r,a),n);case 3:if(Zi(t),r=t.updateQueue,null===e||null===r)throw Error(i(282));if(r=t.pendingProps,a=null!==(a=t.memoizedState)?a.element:null,so(e,t),po(t,r,null,n),(r=t.memoizedState.element)===a)$o(),t=ts(e,t,n);else{if((o=(a=t.stateNode).hydrate)&&(Uo=$r(t.stateNode.containerInfo.firstChild),Fo=t,o=zo=!0),o){if(null!=(e=a.mutableSourceEagerHydrationData))for(a=0;a<e.length;a+=2)(o=e[a])._workInProgressVersionPrimary=e[a+1],qo.push(o);for(n=_o(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|1024,n=n.sibling}else Mi(e,t,r,n),$o();t=t.child}return t;case 5:return Po(t),null===e&&Vo(t),r=t.type,a=t.pendingProps,o=null!==e?e.memoizedProps:null,s=a.children,Hr(r,a)?s=null:null!==o&&Hr(r,o)&&(t.flags|=16),ji(e,t),Mi(e,t,s,n),t.child;case 6:return null===e&&Vo(t),null;case 13:return Yi(e,t,n);case 4:return Lo(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=xo(t,null,r,n):Mi(e,t,r,n),t.child;case 11:return r=t.type,a=t.pendingProps,Bi(e,t,r,a=t.elementType===r?a:Xa(r,a),n);case 7:return Mi(e,t,t.pendingProps,n),t.child;case 8:case 12:return Mi(e,t,t.pendingProps.children,n),t.child;case 10:e:{r=t.type._context,a=t.pendingProps,s=t.memoizedProps,o=a.value;var l=t.type._context;if(ua(Ya,l._currentValue),l._currentValue=o,null!==s)if(l=s.value,0==(o=lr(l,o)?0:0|("function"==typeof r._calculateChangedBits?r._calculateChangedBits(l,o):1073741823))){if(s.children===a.children&&!pa.current){t=ts(e,t,n);break e}}else for(null!==(l=t.child)&&(l.return=t);null!==l;){var u=l.dependencies;if(null!==u){s=l.child;for(var c=u.firstContext;null!==c;){if(c.context===r&&0!=(c.observedBits&o)){1===l.tag&&((c=lo(-1,n&-n)).tag=2,uo(l,c)),l.lanes|=n,null!==(c=l.alternate)&&(c.lanes|=n),no(l.return,n),u.lanes|=n;break}c=c.next}}else s=10===l.tag&&l.type===t.type?null:l.child;if(null!==s)s.return=l;else for(s=l;null!==s;){if(s===t){s=null;break}if(null!==(l=s.sibling)){l.return=s.return,s=l;break}s=s.return}l=s}Mi(e,t,a.children,n),t=t.child}return t;case 9:return a=t.type,r=(o=t.pendingProps).children,ro(t,n),r=r(a=ao(a,o.unstable_observedBits)),t.flags|=1,Mi(e,t,r,n),t.child;case 14:return o=Xa(a=t.type,t.pendingProps),Fi(e,t,a,o=Xa(a.type,o),r,n);case 15:return Ui(e,t,t.type,t.pendingProps,r,n);case 17:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:Xa(r,a),null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),t.tag=1,ga(r)?(e=!0,ya(t)):e=!1,ro(t,n),bo(t,r,a),So(t,r,a,n),Ki(null,t,r,!0,e,n);case 19:return es(e,t,n);case 23:case 24:return zi(e,t,n)}throw Error(i(156,t.tag))},Ql.prototype.render=function(e){ql(e,this._internalRoot,null,null)},Ql.prototype.unmount=function(){var e=this._internalRoot,t=e.containerInfo;ql(null,e,null,(function(){t[Gr]=null}))},Je=function(e){13===e.tag&&(cl(e,4,ll()),Yl(e,4))},et=function(e){13===e.tag&&(cl(e,67108864,ll()),Yl(e,67108864))},tt=function(e){if(13===e.tag){var t=ll(),n=ul(e);cl(e,n,t),Yl(e,n)}},nt=function(e,t){return t()},_e=function(e,t,n){switch(t){case"input":if(ne(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=ra(r);if(!a)throw Error(i(90));Q(r),ne(r,a)}}}break;case"textarea":ue(e,n);break;case"select":null!=(t=n.value)&&ie(e,!!n.multiple,t,!1)}},Le=function(e,t){var n=As;As|=1;try{return e(t)}finally{0===(As=n)&&(Vs(),$a())}},De=function(e,t,n,r,a){var o=As;As|=4;try{return Ka(98,e.bind(null,t,n,r,a))}finally{0===(As=o)&&(Vs(),$a())}},Pe=function(){0==(49&As)&&(function(){if(null!==el){var e=el;el=null,e.forEach((function(e){e.expiredLanes|=24&e.pendingLanes,pl(e,ja())}))}$a()}(),Il())},Oe=function(e,t){var n=As;As|=2;try{return e(t)}finally{0===(As=n)&&(Vs(),$a())}};var eu={findFiberByHostInstance:ea,bundleType:0,version:"17.0.2",rendererPackageName:"react-dom"},tu={bundleType:eu.bundleType,version:eu.version,rendererPackageName:eu.rendererPackageName,rendererConfig:eu.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:w.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=function(e){if(e=function(e){var t=e.alternate;if(!t){if(null===(t=Xe(e)))throw Error(i(188));return t!==e?null:e}for(var n=e,r=t;;){var a=n.return;if(null===a)break;var o=a.alternate;if(null===o){if(null!==(r=a.return)){n=r;continue}break}if(a.child===o.child){for(o=a.child;o;){if(o===n)return Qe(a),e;if(o===r)return Qe(a),t;o=o.sibling}throw Error(i(188))}if(n.return!==r.return)n=a,r=o;else{for(var s=!1,l=a.child;l;){if(l===n){s=!0,n=a,r=o;break}if(l===r){s=!0,r=a,n=o;break}l=l.sibling}if(!s){for(l=o.child;l;){if(l===n){s=!0,n=o,r=a;break}if(l===r){s=!0,r=o,n=a;break}l=l.sibling}if(!s)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(3!==n.tag)throw Error(i(188));return n.stateNode.current===n?e:t}(e),!e)return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}(e))?null:e.stateNode},findFiberByHostInstance:eu.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var nu=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!nu.isDisabled&&nu.supportsFiber)try{wa=nu.inject(tu),ka=nu}catch(ge){}}t.render=function(e,t,n){if(!Gl(t))throw Error(i(200));return Jl(null,e,t,!1,n)}},935:(e,t,n)=>{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),e.exports=n(448)},203:(e,t)=>{"use strict";var n,r,a,o;if("object"==typeof performance&&"function"==typeof performance.now){var i=performance;t.unstable_now=function(){return i.now()}}else{var s=Date,l=s.now();t.unstable_now=function(){return s.now()-l}}if("undefined"==typeof window||"function"!=typeof MessageChannel){var u=null,c=null,d=function(){if(null!==u)try{var e=t.unstable_now();u(!0,e),u=null}catch(e){throw setTimeout(d,0),e}};n=function(e){null!==u?setTimeout(n,0,e):(u=e,setTimeout(d,0))},r=function(e,t){c=setTimeout(e,t)},a=function(){clearTimeout(c)},t.unstable_shouldYield=function(){return!1},o=t.unstable_forceFrameRate=function(){}}else{var p=window.setTimeout,f=window.clearTimeout;if("undefined"!=typeof console){var h=window.cancelAnimationFrame;"function"!=typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),"function"!=typeof h&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")}var g=!1,v=null,m=-1,b=5,y=0;t.unstable_shouldYield=function(){return t.unstable_now()>=y},o=function(){},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):b=0<e?Math.floor(1e3/e):5};var S=new MessageChannel,w=S.port2;S.port1.onmessage=function(){if(null!==v){var e=t.unstable_now();y=e+b;try{v(!0,e)?w.postMessage(null):(g=!1,v=null)}catch(e){throw w.postMessage(null),e}}else g=!1},n=function(e){v=e,g||(g=!0,w.postMessage(null))},r=function(e,n){m=p((function(){e(t.unstable_now())}),n)},a=function(){f(m),m=-1}}function k(e,t){var n=e.length;e.push(t);e:for(;;){var r=n-1>>>1,a=e[r];if(!(void 0!==a&&0<x(a,t)))break e;e[r]=t,e[n]=a,n=r}}function C(e){return void 0===(e=e[0])?null:e}function E(e){var t=e[0];if(void 0!==t){var n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,a=e.length;r<a;){var o=2*(r+1)-1,i=e[o],s=o+1,l=e[s];if(void 0!==i&&0>x(i,n))void 0!==l&&0>x(l,i)?(e[r]=l,e[s]=n,r=s):(e[r]=i,e[o]=n,r=o);else{if(!(void 0!==l&&0>x(l,n)))break e;e[r]=l,e[s]=n,r=s}}}return t}return null}function x(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var _=[],T=[],A=1,I=null,N=3,R=!1,L=!1,D=!1;function P(e){for(var t=C(T);null!==t;){if(null===t.callback)E(T);else{if(!(t.startTime<=e))break;E(T),t.sortIndex=t.expirationTime,k(_,t)}t=C(T)}}function O(e){if(D=!1,P(e),!L)if(null!==C(_))L=!0,n(M);else{var t=C(T);null!==t&&r(O,t.startTime-e)}}function M(e,n){L=!1,D&&(D=!1,a()),R=!0;var o=N;try{for(P(n),I=C(_);null!==I&&(!(I.expirationTime>n)||e&&!t.unstable_shouldYield());){var i=I.callback;if("function"==typeof i){I.callback=null,N=I.priorityLevel;var s=i(I.expirationTime<=n);n=t.unstable_now(),"function"==typeof s?I.callback=s:I===C(_)&&E(_),P(n)}else E(_);I=C(_)}if(null!==I)var l=!0;else{var u=C(T);null!==u&&r(O,u.startTime-n),l=!1}return l}finally{I=null,N=o,R=!1}}var B=o;t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){L||R||(L=!0,n(M))},t.unstable_getCurrentPriorityLevel=function(){return N},t.unstable_getFirstCallbackNode=function(){return C(_)},t.unstable_next=function(e){switch(N){case 1:case 2:case 3:var t=3;break;default:t=N}var n=N;N=t;try{return e()}finally{N=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=B,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=N;N=e;try{return t()}finally{N=n}},t.unstable_scheduleCallback=function(e,o,i){var s=t.unstable_now();switch(i="object"==typeof i&&null!==i&&"number"==typeof(i=i.delay)&&0<i?s+i:s,e){case 1:var l=-1;break;case 2:l=250;break;case 5:l=1073741823;break;case 4:l=1e4;break;default:l=5e3}return e={id:A++,callback:o,priorityLevel:e,startTime:i,expirationTime:l=i+l,sortIndex:-1},i>s?(e.sortIndex=i,k(T,e),null===C(_)&&e===C(T)&&(D?a():D=!0,r(O,i-s))):(e.sortIndex=l,k(_,e),L||R||(L=!0,n(M))),e},t.unstable_wrapCallback=function(e){var t=N;return function(){var n=N;N=t;try{return e.apply(this,arguments)}finally{N=n}}}},142:(e,t,n)=>{"use strict";e.exports=n(203)},408:(e,t,n)=>{"use strict";var r=n(418),a=60103,o=60106;t.Fragment=60107,t.StrictMode=60108,t.Profiler=60114;var i=60109,s=60110,l=60112;t.Suspense=60113;var u=60115,c=60116;if("function"==typeof Symbol&&Symbol.for){var d=Symbol.for;a=d("react.element"),o=d("react.portal"),t.Fragment=d("react.fragment"),t.StrictMode=d("react.strict_mode"),t.Profiler=d("react.profiler"),i=d("react.provider"),s=d("react.context"),l=d("react.forward_ref"),t.Suspense=d("react.suspense"),u=d("react.memo"),c=d("react.lazy")}var p="function"==typeof Symbol&&Symbol.iterator;function f(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g={};function v(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||h}function m(){}function b(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||h}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error(f(85));this.updater.enqueueSetState(this,e,t,"setState")},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},m.prototype=v.prototype;var y=b.prototype=new m;y.constructor=b,r(y,v.prototype),y.isPureReactComponent=!0;var S={current:null},w=Object.prototype.hasOwnProperty,k={key:!0,ref:!0,__self:!0,__source:!0};function C(e,t,n){var r,o={},i=null,s=null;if(null!=t)for(r in void 0!==t.ref&&(s=t.ref),void 0!==t.key&&(i=""+t.key),t)w.call(t,r)&&!k.hasOwnProperty(r)&&(o[r]=t[r]);var l=arguments.length-2;if(1===l)o.children=n;else if(1<l){for(var u=Array(l),c=0;c<l;c++)u[c]=arguments[c+2];o.children=u}if(e&&e.defaultProps)for(r in l=e.defaultProps)void 0===o[r]&&(o[r]=l[r]);return{$$typeof:a,type:e,key:i,ref:s,props:o,_owner:S.current}}function E(e){return"object"==typeof e&&null!==e&&e.$$typeof===a}var x=/\/+/g;function _(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function T(e,t,n,r,i){var s=typeof e;"undefined"!==s&&"boolean"!==s||(e=null);var l=!1;if(null===e)l=!0;else switch(s){case"string":case"number":l=!0;break;case"object":switch(e.$$typeof){case a:case o:l=!0}}if(l)return i=i(l=e),e=""===r?"."+_(l,0):r,Array.isArray(i)?(n="",null!=e&&(n=e.replace(x,"$&/")+"/"),T(i,t,n,"",(function(e){return e}))):null!=i&&(E(i)&&(i=function(e,t){return{$$typeof:a,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(i,n+(!i.key||l&&l.key===i.key?"":(""+i.key).replace(x,"$&/")+"/")+e)),t.push(i)),1;if(l=0,r=""===r?".":r+":",Array.isArray(e))for(var u=0;u<e.length;u++){var c=r+_(s=e[u],u);l+=T(s,t,n,c,i)}else if(c=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=p&&e[p]||e["@@iterator"])?e:null}(e),"function"==typeof c)for(e=c.call(e),u=0;!(s=e.next()).done;)l+=T(s=s.value,t,n,c=r+_(s,u++),i);else if("object"===s)throw t=""+e,Error(f(31,"[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t));return l}function A(e,t,n){if(null==e)return e;var r=[],a=0;return T(e,r,"","",(function(e){return t.call(n,e,a++)})),r}function I(e){if(-1===e._status){var t=e._result;t=t(),e._status=0,e._result=t,t.then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)}))}if(1===e._status)return e._result;throw e._result}var N={current:null};function R(){var e=N.current;if(null===e)throw Error(f(321));return e}var L={ReactCurrentDispatcher:N,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:S,IsSomeRendererActing:{current:!1},assign:r};t.Children={map:A,forEach:function(e,t,n){A(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return A(e,(function(){t++})),t},toArray:function(e){return A(e,(function(e){return e}))||[]},only:function(e){if(!E(e))throw Error(f(143));return e}},t.Component=v,t.PureComponent=b,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=L,t.cloneElement=function(e,t,n){if(null==e)throw Error(f(267,e));var o=r({},e.props),i=e.key,s=e.ref,l=e._owner;if(null!=t){if(void 0!==t.ref&&(s=t.ref,l=S.current),void 0!==t.key&&(i=""+t.key),e.type&&e.type.defaultProps)var u=e.type.defaultProps;for(c in t)w.call(t,c)&&!k.hasOwnProperty(c)&&(o[c]=void 0===t[c]&&void 0!==u?u[c]:t[c])}var c=arguments.length-2;if(1===c)o.children=n;else if(1<c){u=Array(c);for(var d=0;d<c;d++)u[d]=arguments[d+2];o.children=u}return{$$typeof:a,type:e.type,key:i,ref:s,props:o,_owner:l}},t.createContext=function(e,t){return void 0===t&&(t=null),(e={$$typeof:s,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:i,_context:e},e.Consumer=e},t.createElement=C,t.createFactory=function(e){var t=C.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:l,render:e}},t.isValidElement=E,t.lazy=function(e){return{$$typeof:c,_payload:{_status:-1,_result:e},_init:I}},t.memo=function(e,t){return{$$typeof:u,type:e,compare:void 0===t?null:t}},t.useCallback=function(e,t){return R().useCallback(e,t)},t.useContext=function(e,t){return R().useContext(e,t)},t.useDebugValue=function(){},t.useEffect=function(e,t){return R().useEffect(e,t)},t.useImperativeHandle=function(e,t,n){return R().useImperativeHandle(e,t,n)},t.useLayoutEffect=function(e,t){return R().useLayoutEffect(e,t)},t.useMemo=function(e,t){return R().useMemo(e,t)},t.useReducer=function(e,t,n){return R().useReducer(e,t,n)},t.useRef=function(e){return R().useRef(e)},t.useState=function(e){return R().useState(e)},t.version="17.0.2"},294:(e,t,n)=>{"use strict";e.exports=n(408)},379:e=>{"use strict";var t=[];function n(e){for(var n=-1,r=0;r<t.length;r++)if(t[r].identifier===e){n=r;break}return n}function r(e,r){for(var o={},i=[],s=0;s<e.length;s++){var l=e[s],u=r.base?l[0]+r.base:l[0],c=o[u]||0,d="".concat(u," ").concat(c);o[u]=c+1;var p=n(d),f={css:l[1],media:l[2],sourceMap:l[3],supports:l[4],layer:l[5]};if(-1!==p)t[p].references++,t[p].updater(f);else{var h=a(f,r);r.byIndex=s,t.splice(s,0,{identifier:d,updater:h,references:1})}i.push(d)}return i}function a(e,t){var n=t.domAPI(t);return n.update(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap&&t.supports===e.supports&&t.layer===e.layer)return;n.update(e=t)}else n.remove()}}e.exports=function(e,a){var o=r(e=e||[],a=a||{});return function(e){e=e||[];for(var i=0;i<o.length;i++){var s=n(o[i]);t[s].references--}for(var l=r(e,a),u=0;u<o.length;u++){var c=n(o[u]);0===t[c].references&&(t[c].updater(),t.splice(c,1))}o=l}}},569:e=>{"use strict";var t={};e.exports=function(e,n){var r=function(e){if(void 0===t[e]){var n=document.querySelector(e);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}t[e]=n}return t[e]}(e);if(!r)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");r.appendChild(n)}},216:e=>{"use strict";e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},565:(e,t,n)=>{"use strict";e.exports=function(e){var t=n.nc;t&&e.setAttribute("nonce",t)}},795:e=>{"use strict";e.exports=function(e){var t=e.insertStyleElement(e);return{update:function(n){!function(e,t,n){var r="";n.supports&&(r+="@supports (".concat(n.supports,") {")),n.media&&(r+="@media ".concat(n.media," {"));var a=void 0!==n.layer;a&&(r+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),r+=n.css,a&&(r+="}"),n.media&&(r+="}"),n.supports&&(r+="}");var o=n.sourceMap;o&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(o))))," */")),t.styleTagTransform(r,e,t.options)}(t,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},589:e=>{"use strict";e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}},410:(e,t,n)=>{"use strict";n.r(t);var r=n(294),a=n(935),o=n(869),i=n(379),s=n.n(i),l=n(795),u=n.n(l),c=n(569),d=n.n(c),p=n(565),f=n.n(p),h=n(216),g=n.n(h),v=n(589),m=n.n(v),b=n(648),y={};y.styleTagTransform=m(),y.setAttributes=f(),y.insert=d().bind(null,"head"),y.domAPI=u(),y.insertStyleElement=g(),s()(b.Z,y),b.Z&&b.Z.locals&&b.Z.locals;class S extends r.Component{render(){return r.createElement("button",{className:"button",onClick:this.props.handleConnectClick},1===this.props.kvmstate?"Connecting KVM":2===this.props.kvmstate?"Disconnect KVM":"Connect KVM")}}var w=n(625),k={};k.styleTagTransform=m(),k.setAttributes=f(),k.insert=d().bind(null,"head"),k.domAPI=u(),k.insertStyleElement=g(),s()(w.Z,k),w.Z&&w.Z.locals&&w.Z.locals;class C extends r.Component{constructor(e){super(e),this.state={value:1},this.onEncodingChange=this.onEncodingChange.bind(this)}onEncodingChange(e){this.setState({value:e.target.value}),this.props.changeEncoding(e.target.value)}render(){return r.createElement("span",{className:"encoding"},r.createElement("label",null,"Encoding:"),r.createElement("select",{value:this.state.value,className:2===this.props.getConnectState()?"reldisabled":"",onChange:this.onEncodingChange,disabled:2===this.props.getConnectState()},r.createElement("option",{value:"1"},"RLE 8"),r.createElement("option",{value:"2"},"RLE 16")))}}class E extends r.Component{constructor(e){super(e),this.desktopsettings={encoding:1},this.changeEncoding=this.changeEncoding.bind(this)}changeEncoding(e){this.desktopsettings.encoding=e,this.props.changeDesktopSettings(this.desktopsettings)}render(){return r.createElement(C,{changeEncoding:this.changeEncoding,getConnectState:this.props.getConnectState})}}var x=n(734),_={};_.styleTagTransform=m(),_.setAttributes=f(),_.insert=d().bind(null,"head"),_.domAPI=u(),_.insertStyleElement=g(),s()(x.Z,_),x.Z&&x.Z.locals&&x.Z.locals;class T extends r.Component{render(){return r.createElement(r.Fragment,null,r.createElement("div",{className:"header"},r.createElement(S,{handleConnectClick:this.props.handleConnectClick,kvmstate:this.props.kvmstate}),r.createElement(E,{changeDesktopSettings:this.props.changeDesktopSettings,getConnectState:this.props.getConnectState})))}}const A=e=>null!=e&&""!==e&&!1!==e&&0!==e;var I=n(250),N={};N.styleTagTransform=m(),N.setAttributes=f(),N.insert=d().bind(null,"head"),N.domAPI=u(),N.insertStyleElement=g(),s()(I.Z,N),I.Z&&I.Z.locals&&I.Z.locals;class R extends r.Component{shouldComponentUpdate(){return!1}render(){const e={width:"1366",height:"768",onContextMenu:e=>(e.preventDefault(),!1),onMouseDown:this.props.mouseDown,onMouseUp:this.props.mouseUp,onMouseMove:this.props.mouseMove};return r.createElement("canvas",Object.assign({},e,{className:"canvas",ref:e=>A(e)?this.props.contextRef(e.getContext("2d")):null}))}}var L=n(917),D={};D.styleTagTransform=m(),D.setAttributes=f(),D.insert=d().bind(null,"head"),D.domAPI=u(),D.insertStyleElement=g(),s()(L.Z,D),L.Z&&L.Z.locals&&L.Z.locals;class P extends r.Component{constructor(e){super(e),this.desktopSettingsChange=!1,this.state={kvmstate:0,encodingOption:1},this.logger=new o.ConsoleLogger(o.LogLevel.ERROR),this.saveContext=this.saveContext.bind(this),this.startKVM=this.startKVM.bind(this),this.stopKVM=this.stopKVM.bind(this),this.handleConnectClick=this.handleConnectClick.bind(this),this.getRenderStatus=this.getRenderStatus.bind(this),this.OnConnectionStateChange=this.OnConnectionStateChange.bind(this),this.changeDesktopSettings=this.changeDesktopSettings.bind(this)}saveContext(e){this.logger.debug("save context called"),this.ctx=e,this.init()}init(){const e=null!=this.props.deviceId?this.props.deviceId:"",t=null!=this.props.mpsServer?this.props.mpsServer.replace("http","ws"):"";this.module=new o.AMTDesktop(this.logger,this.ctx),this.redirector=new o.AMTKvmDataRedirector(this.logger,o.Protocol.KVM,new FileReader,e,16994,"","",0,0,this.props.authToken,t),this.dataProcessor=new o.DataProcessor(this.logger,this.redirector,this.module),this.mouseHelper=new o.MouseHelper(this.module,this.redirector,this.props.mouseDebounceTime<200?200:this.props.mouseDebounceTime),this.keyboard=new o.KeyBoardHelper(this.module,this.redirector),this.redirector.onProcessData=this.module.processData.bind(this.module),this.redirector.onStart=this.module.start.bind(this.module),this.redirector.onNewState=this.module.onStateChange.bind(this.module),this.redirector.onSendKvmData=this.module.onSendKvmData.bind(this.module),this.redirector.onStateChanged=this.OnConnectionStateChange.bind(this),this.redirector.onError=this.onRedirectorError.bind(this),this.module.onSend=this.redirector.send.bind(this.redirector),this.module.onProcessData=this.dataProcessor.processData.bind(this.dataProcessor),this.module.bpp=this.state.encodingOption}cleanUp(){this.module=null,this.redirector=null,this.dataProcessor=null,this.mouseHelper=null,this.keyboard=null,this.ctx.clearRect(0,0,this.ctx.canvas.height,this.ctx.canvas.width)}componentWillUnmount(){this.stopKVM()}onRedirectorError(){this.reset()}reset(){this.cleanUp(),this.init()}OnConnectionStateChange(e,t){this.setState({kvmstate:t}),this.desktopSettingsChange&&0===t&&(this.desktopSettingsChange=!1,setTimeout((()=>this.startKVM()),2e3))}changeDesktopSettings(e){2===this.state.kvmstate?(this.desktopSettingsChange=!0,this.module.bpp=e.encoding,this.stopKVM()):(this.setState({encodingOption:parseInt(e.encoding)}),this.module.bpp=parseInt(e.encoding))}startKVM(){void 0!==this.redirector&&this.redirector.start(WebSocket),void 0!==this.keyboard&&this.keyboard.GrabKeyInput()}stopKVM(){void 0!==this.redirector&&this.redirector.stop(),void 0!==this.keyboard&&this.keyboard.UnGrabKeyInput(),this.reset()}getRenderStatus(){return this.module.state}handleConnectClick(e){e.persist(),0===this.state.kvmstate?this.startKVM():1===this.state.kvmstate||2===this.state.kvmstate&&this.stopKVM()}componentDidUpdate(e){e.deviceId!==this.props.deviceId&&this.stopKVM()}render(){return r.createElement("div",{className:"canvas-container"},A(this.props.autoConnect)?"":r.createElement(T,{key:"kvm_header",handleConnectClick:this.handleConnectClick,getConnectState:()=>this.state.kvmstate,kvmstate:this.state.kvmstate,changeDesktopSettings:this.changeDesktopSettings,deviceId:this.props.deviceId,server:this.props.mpsServer}),r.createElement(R,{key:"kvm_comp",contextRef:e=>this.saveContext(e),canvasHeight:this.props.canvasHeight,canvasWidth:this.props.canvasWidth,mouseMove:e=>{void 0!==this.mouseHelper&&this.mouseHelper.mousemove(e)},mouseDown:e=>{void 0!==this.mouseHelper&&this.mouseHelper.mousedown(e)},mouseUp:e=>{void 0!==this.mouseHelper&&this.mouseHelper.mouseup(e)}}))}}function O(e){return O="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},O(e)}function M(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function B(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?Object(arguments[t]):{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),r.forEach((function(t){M(e,t,n[t])}))}return e}function F(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function U(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function z(e,t,n){return t&&U(e.prototype,t),n&&U(e,n),e}function j(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function H(e,t){if(t&&("object"===O(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return j(e)}function V(e){return V=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},V(e)}function K(e,t){return K=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},K(e,t)}function Z(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&K(e,t)}function $(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var q={type:"logger",log:function(e){this.output("log",e)},warn:function(e){this.output("warn",e)},error:function(e){this.output("error",e)},output:function(e,t){console&&console[e]&&console[e].apply(console,t)}},W=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};F(this,e),this.init(t,n)}return z(e,[{key:"init",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.prefix=t.prefix||"i18next:",this.logger=e||q,this.options=t,this.debug=t.debug}},{key:"setDebug",value:function(e){this.debug=e}},{key:"log",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"log","",!0)}},{key:"warn",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"warn","",!0)}},{key:"error",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"error","")}},{key:"deprecate",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"warn","WARNING DEPRECATED: ",!0)}},{key:"forward",value:function(e,t,n,r){return r&&!this.debug?null:("string"==typeof e[0]&&(e[0]="".concat(n).concat(this.prefix," ").concat(e[0])),this.logger[t](e))}},{key:"create",value:function(t){return new e(this.logger,B({},{prefix:"".concat(this.prefix,":").concat(t,":")},this.options))}}]),e}(),X=new W,Y=function(){function e(){F(this,e),this.observers={}}return z(e,[{key:"on",value:function(e,t){var n=this;return e.split(" ").forEach((function(e){n.observers[e]=n.observers[e]||[],n.observers[e].push(t)})),this}},{key:"off",value:function(e,t){this.observers[e]&&(t?this.observers[e]=this.observers[e].filter((function(e){return e!==t})):delete this.observers[e])}},{key:"emit",value:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];if(this.observers[e]){var a=[].concat(this.observers[e]);a.forEach((function(e){e.apply(void 0,n)}))}if(this.observers["*"]){var o=[].concat(this.observers["*"]);o.forEach((function(t){t.apply(t,[e].concat(n))}))}}}]),e}();function Q(){var e,t,n=new Promise((function(n,r){e=n,t=r}));return n.resolve=e,n.reject=t,n}function G(e){return null==e?"":""+e}function J(e,t,n){e.forEach((function(e){t[e]&&(n[e]=t[e])}))}function ee(e,t,n){function r(e){return e&&e.indexOf("###")>-1?e.replace(/###/g,"."):e}function a(){return!e||"string"==typeof e}for(var o="string"!=typeof t?[].concat(t):t.split(".");o.length>1;){if(a())return{};var i=r(o.shift());!e[i]&&n&&(e[i]=new n),e=Object.prototype.hasOwnProperty.call(e,i)?e[i]:{}}return a()?{}:{obj:e,k:r(o.shift())}}function te(e,t,n){var r=ee(e,t,Object);r.obj[r.k]=n}function ne(e,t){var n=ee(e,t),r=n.obj,a=n.k;if(r)return r[a]}function re(e,t,n){var r=ne(e,n);return void 0!==r?r:ne(t,n)}function ae(e,t,n){for(var r in t)"__proto__"!==r&&"constructor"!==r&&(r in e?"string"==typeof e[r]||e[r]instanceof String||"string"==typeof t[r]||t[r]instanceof String?n&&(e[r]=t[r]):ae(e[r],t[r],n):e[r]=t[r]);return e}function oe(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}var ie={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;"};function se(e){return"string"==typeof e?e.replace(/[&<>"'\/]/g,(function(e){return ie[e]})):e}var le="undefined"!=typeof window&&window.navigator&&window.navigator.userAgent&&window.navigator.userAgent.indexOf("MSIE")>-1,ue=[" ",",","?","!",";"];function ce(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:".";if(e){if(e[t])return e[t];for(var r=t.split(n),a=e,o=0;o<r.length;++o){if(!a)return;if("string"==typeof a[r[o]]&&o+1<r.length)return;if(void 0===a[r[o]]){for(var i=2,s=r.slice(o,o+i).join(n),l=a[s];void 0===l&&r.length>o+i;)i++,l=a[s=r.slice(o,o+i).join(n)];if(void 0===l)return;if("string"==typeof l)return l;if(s&&"string"==typeof l[s])return l[s];var u=r.slice(o+i).join(n);return u?ce(l,u,n):void 0}a=a[r[o]]}return a}}var de=function(e){function t(e){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{ns:["translation"],defaultNS:"translation"};return F(this,t),n=H(this,V(t).call(this)),le&&Y.call(j(n)),n.data=e||{},n.options=r,void 0===n.options.keySeparator&&(n.options.keySeparator="."),void 0===n.options.ignoreJSONStructure&&(n.options.ignoreJSONStructure=!0),n}return Z(t,e),z(t,[{key:"addNamespaces",value:function(e){this.options.ns.indexOf(e)<0&&this.options.ns.push(e)}},{key:"removeNamespaces",value:function(e){var t=this.options.ns.indexOf(e);t>-1&&this.options.ns.splice(t,1)}},{key:"getResource",value:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},a=void 0!==r.keySeparator?r.keySeparator:this.options.keySeparator,o=void 0!==r.ignoreJSONStructure?r.ignoreJSONStructure:this.options.ignoreJSONStructure,i=[e,t];n&&"string"!=typeof n&&(i=i.concat(n)),n&&"string"==typeof n&&(i=i.concat(a?n.split(a):n)),e.indexOf(".")>-1&&(i=e.split("."));var s=ne(this.data,i);return s||!o||"string"!=typeof n?s:ce(this.data&&this.data[e]&&this.data[e][t],n,a)}},{key:"addResource",value:function(e,t,n,r){var a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{silent:!1},o=this.options.keySeparator;void 0===o&&(o=".");var i=[e,t];n&&(i=i.concat(o?n.split(o):n)),e.indexOf(".")>-1&&(r=t,t=(i=e.split("."))[1]),this.addNamespaces(t),te(this.data,i,r),a.silent||this.emit("added",e,t,n,r)}},{key:"addResources",value:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{silent:!1};for(var a in n)"string"!=typeof n[a]&&"[object Array]"!==Object.prototype.toString.apply(n[a])||this.addResource(e,t,a,n[a],{silent:!0});r.silent||this.emit("added",e,t,n)}},{key:"addResourceBundle",value:function(e,t,n,r,a){var o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{silent:!1},i=[e,t];e.indexOf(".")>-1&&(r=n,n=t,t=(i=e.split("."))[1]),this.addNamespaces(t);var s=ne(this.data,i)||{};r?ae(s,n,a):s=B({},s,n),te(this.data,i,s),o.silent||this.emit("added",e,t,n)}},{key:"removeResourceBundle",value:function(e,t){this.hasResourceBundle(e,t)&&delete this.data[e][t],this.removeNamespaces(t),this.emit("removed",e,t)}},{key:"hasResourceBundle",value:function(e,t){return void 0!==this.getResource(e,t)}},{key:"getResourceBundle",value:function(e,t){return t||(t=this.options.defaultNS),"v1"===this.options.compatibilityAPI?B({},{},this.getResource(e,t)):this.getResource(e,t)}},{key:"getDataByLanguage",value:function(e){return this.data[e]}},{key:"hasLanguageSomeTranslations",value:function(e){var t=this.getDataByLanguage(e);return!!(t&&Object.keys(t)||[]).find((function(e){return t[e]&&Object.keys(t[e]).length>0}))}},{key:"toJSON",value:function(){return this.data}}]),t}(Y),pe={processors:{},addPostProcessor:function(e){this.processors[e.name]=e},handle:function(e,t,n,r,a){var o=this;return e.forEach((function(e){o.processors[e]&&(t=o.processors[e].process(t,n,r,a))})),t}},fe={},he=function(e){function t(e){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return F(this,t),n=H(this,V(t).call(this)),le&&Y.call(j(n)),J(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],e,j(n)),n.options=r,void 0===n.options.keySeparator&&(n.options.keySeparator="."),n.logger=X.create("translator"),n}return Z(t,e),z(t,[{key:"changeLanguage",value:function(e){e&&(this.language=e)}},{key:"exists",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}};if(null==e)return!1;var n=this.resolve(e,t);return n&&void 0!==n.res}},{key:"extractFromKey",value:function(e,t){var n=void 0!==t.nsSeparator?t.nsSeparator:this.options.nsSeparator;void 0===n&&(n=":");var r=void 0!==t.keySeparator?t.keySeparator:this.options.keySeparator,a=t.ns||this.options.defaultNS,o=n&&e.indexOf(n)>-1,i=!(this.options.userDefinedKeySeparator||t.keySeparator||this.options.userDefinedNsSeparator||t.nsSeparator||function(e,t,n){t=t||"",n=n||"";var r=ue.filter((function(e){return t.indexOf(e)<0&&n.indexOf(e)<0}));if(0===r.length)return!0;var a=new RegExp("(".concat(r.map((function(e){return"?"===e?"\\?":e})).join("|"),")")),o=!a.test(e);if(!o){var i=e.indexOf(n);i>0&&!a.test(e.substring(0,i))&&(o=!0)}return o}(e,n,r));if(o&&!i){var s=e.match(this.interpolator.nestingRegexp);if(s&&s.length>0)return{key:e,namespaces:a};var l=e.split(n);(n!==r||n===r&&this.options.ns.indexOf(l[0])>-1)&&(a=l.shift()),e=l.join(r)}return"string"==typeof a&&(a=[a]),{key:e,namespaces:a}}},{key:"translate",value:function(e,n,r){var a=this;if("object"!==O(n)&&this.options.overloadTranslationOptionHandler&&(n=this.options.overloadTranslationOptionHandler(arguments)),n||(n={}),null==e)return"";Array.isArray(e)||(e=[String(e)]);var o=void 0!==n.keySeparator?n.keySeparator:this.options.keySeparator,i=this.extractFromKey(e[e.length-1],n),s=i.key,l=i.namespaces,u=l[l.length-1],c=n.lng||this.language,d=n.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(c&&"cimode"===c.toLowerCase()){if(d){var p=n.nsSeparator||this.options.nsSeparator;return u+p+s}return s}var f=this.resolve(e,n),h=f&&f.res,g=f&&f.usedKey||s,v=f&&f.exactUsedKey||s,m=Object.prototype.toString.apply(h),b=["[object Number]","[object Function]","[object RegExp]"],y=void 0!==n.joinArrays?n.joinArrays:this.options.joinArrays,S=!this.i18nFormat||this.i18nFormat.handleAsObject,w="string"!=typeof h&&"boolean"!=typeof h&&"number"!=typeof h;if(S&&h&&w&&b.indexOf(m)<0&&("string"!=typeof y||"[object Array]"!==m)){if(!n.returnObjects&&!this.options.returnObjects)return this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!"),this.options.returnedObjectHandler?this.options.returnedObjectHandler(g,h,B({},n,{ns:l})):"key '".concat(s," (").concat(this.language,")' returned an object instead of string.");if(o){var k="[object Array]"===m,C=k?[]:{},E=k?v:g;for(var x in h)if(Object.prototype.hasOwnProperty.call(h,x)){var _="".concat(E).concat(o).concat(x);C[x]=this.translate(_,B({},n,{joinArrays:!1,ns:l})),C[x]===_&&(C[x]=h[x])}h=C}}else if(S&&"string"==typeof y&&"[object Array]"===m)(h=h.join(y))&&(h=this.extendTranslation(h,e,n,r));else{var T=!1,A=!1,I=void 0!==n.count&&"string"!=typeof n.count,N=t.hasDefaultValue(n),R=I?this.pluralResolver.getSuffix(c,n.count,n):"",L=n["defaultValue".concat(R)]||n.defaultValue;!this.isValidLookup(h)&&N&&(T=!0,h=L),this.isValidLookup(h)||(A=!0,h=s);var D=n.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey,P=D&&A?void 0:h,M=N&&L!==h&&this.options.updateMissing;if(A||T||M){if(this.logger.log(M?"updateKey":"missingKey",c,u,s,M?L:h),o){var F=this.resolve(s,B({},n,{keySeparator:!1}));F&&F.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}var U=[],z=this.languageUtils.getFallbackCodes(this.options.fallbackLng,n.lng||this.language);if("fallback"===this.options.saveMissingTo&&z&&z[0])for(var j=0;j<z.length;j++)U.push(z[j]);else"all"===this.options.saveMissingTo?U=this.languageUtils.toResolveHierarchy(n.lng||this.language):U.push(n.lng||this.language);var H=function(e,t,r){a.options.missingKeyHandler?a.options.missingKeyHandler(e,u,t,M?r:P,M,n):a.backendConnector&&a.backendConnector.saveMissing&&a.backendConnector.saveMissing(e,u,t,M?r:P,M,n),a.emit("missingKey",e,u,t,h)};this.options.saveMissing&&(this.options.saveMissingPlurals&&I?U.forEach((function(e){a.pluralResolver.getSuffixes(e).forEach((function(t){H([e],s+t,n["defaultValue".concat(t)]||L)}))})):H(U,s,L))}h=this.extendTranslation(h,e,n,f,r),A&&h===s&&this.options.appendNamespaceToMissingKey&&(h="".concat(u,":").concat(s)),(A||T)&&this.options.parseMissingKeyHandler&&(h=this.options.parseMissingKeyHandler(h))}return h}},{key:"extendTranslation",value:function(e,t,n,r,a){var o=this;if(this.i18nFormat&&this.i18nFormat.parse)e=this.i18nFormat.parse(e,n,r.usedLng,r.usedNS,r.usedKey,{resolved:r});else if(!n.skipInterpolation){n.interpolation&&this.interpolator.init(B({},n,{interpolation:B({},this.options.interpolation,n.interpolation)}));var i,s=n.interpolation&&n.interpolation.skipOnVariables||this.options.interpolation.skipOnVariables;if(s){var l=e.match(this.interpolator.nestingRegexp);i=l&&l.length}var u=n.replace&&"string"!=typeof n.replace?n.replace:n;if(this.options.interpolation.defaultVariables&&(u=B({},this.options.interpolation.defaultVariables,u)),e=this.interpolator.interpolate(e,u,n.lng||this.language,n),s){var c=e.match(this.interpolator.nestingRegexp);i<(c&&c.length)&&(n.nest=!1)}!1!==n.nest&&(e=this.interpolator.nest(e,(function(){for(var e=arguments.length,r=new Array(e),i=0;i<e;i++)r[i]=arguments[i];return a&&a[0]===r[0]&&!n.context?(o.logger.warn("It seems you are nesting recursively key: ".concat(r[0]," in key: ").concat(t[0])),null):o.translate.apply(o,r.concat([t]))}),n)),n.interpolation&&this.interpolator.reset()}var d=n.postProcess||this.options.postProcess,p="string"==typeof d?[d]:d;return null!=e&&p&&p.length&&!1!==n.applyPostProcessor&&(e=pe.handle(p,e,t,this.options&&this.options.postProcessPassResolved?B({i18nResolved:r},n):n,this)),e}},{key:"resolve",value:function(e){var t,n,r,a,o,i=this,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return"string"==typeof e&&(e=[e]),e.forEach((function(e){if(!i.isValidLookup(t)){var l=i.extractFromKey(e,s),u=l.key;n=u;var c=l.namespaces;i.options.fallbackNS&&(c=c.concat(i.options.fallbackNS));var d=void 0!==s.count&&"string"!=typeof s.count,p=void 0!==s.context&&("string"==typeof s.context||"number"==typeof s.context)&&""!==s.context,f=s.lngs?s.lngs:i.languageUtils.toResolveHierarchy(s.lng||i.language,s.fallbackLng);c.forEach((function(e){i.isValidLookup(t)||(o=e,!fe["".concat(f[0],"-").concat(e)]&&i.utils&&i.utils.hasLoadedNamespace&&!i.utils.hasLoadedNamespace(o)&&(fe["".concat(f[0],"-").concat(e)]=!0,i.logger.warn('key "'.concat(n,'" for languages "').concat(f.join(", "),'" won\'t get resolved as namespace "').concat(o,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),f.forEach((function(n){if(!i.isValidLookup(t)){a=n;var o,l,c=u,f=[c];for(i.i18nFormat&&i.i18nFormat.addLookupKeys?i.i18nFormat.addLookupKeys(f,u,n,e,s):(d&&(o=i.pluralResolver.getSuffix(n,s.count,s)),d&&p&&f.push(c+o),p&&f.push(c+="".concat(i.options.contextSeparator).concat(s.context)),d&&f.push(c+=o));l=f.pop();)i.isValidLookup(t)||(r=l,t=i.getResource(n,e,l,s))}})))}))}})),{res:t,usedKey:n,exactUsedKey:r,usedLng:a,usedNS:o}}},{key:"isValidLookup",value:function(e){return!(void 0===e||!this.options.returnNull&&null===e||!this.options.returnEmptyString&&""===e)}},{key:"getResource",value:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(e,t,n,r):this.resourceStore.getResource(e,t,n,r)}}],[{key:"hasDefaultValue",value:function(e){var t="defaultValue";for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t===n.substring(0,t.length)&&void 0!==e[n])return!0;return!1}}]),t}(Y);function ge(e){return e.charAt(0).toUpperCase()+e.slice(1)}var ve=function(){function e(t){F(this,e),this.options=t,this.supportedLngs=this.options.supportedLngs||!1,this.logger=X.create("languageUtils")}return z(e,[{key:"getScriptPartFromCode",value:function(e){if(!e||e.indexOf("-")<0)return null;var t=e.split("-");return 2===t.length?null:(t.pop(),"x"===t[t.length-1].toLowerCase()?null:this.formatLanguageCode(t.join("-")))}},{key:"getLanguagePartFromCode",value:function(e){if(!e||e.indexOf("-")<0)return e;var t=e.split("-");return this.formatLanguageCode(t[0])}},{key:"formatLanguageCode",value:function(e){if("string"==typeof e&&e.indexOf("-")>-1){var t=["hans","hant","latn","cyrl","cans","mong","arab"],n=e.split("-");return this.options.lowerCaseLng?n=n.map((function(e){return e.toLowerCase()})):2===n.length?(n[0]=n[0].toLowerCase(),n[1]=n[1].toUpperCase(),t.indexOf(n[1].toLowerCase())>-1&&(n[1]=ge(n[1].toLowerCase()))):3===n.length&&(n[0]=n[0].toLowerCase(),2===n[1].length&&(n[1]=n[1].toUpperCase()),"sgn"!==n[0]&&2===n[2].length&&(n[2]=n[2].toUpperCase()),t.indexOf(n[1].toLowerCase())>-1&&(n[1]=ge(n[1].toLowerCase())),t.indexOf(n[2].toLowerCase())>-1&&(n[2]=ge(n[2].toLowerCase()))),n.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?e.toLowerCase():e}},{key:"isSupportedCode",value:function(e){return("languageOnly"===this.options.load||this.options.nonExplicitSupportedLngs)&&(e=this.getLanguagePartFromCode(e)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(e)>-1}},{key:"getBestMatchFromCodes",value:function(e){var t,n=this;return e?(e.forEach((function(e){if(!t){var r=n.formatLanguageCode(e);n.options.supportedLngs&&!n.isSupportedCode(r)||(t=r)}})),!t&&this.options.supportedLngs&&e.forEach((function(e){if(!t){var r=n.getLanguagePartFromCode(e);if(n.isSupportedCode(r))return t=r;t=n.options.supportedLngs.find((function(e){if(0===e.indexOf(r))return e}))}})),t||(t=this.getFallbackCodes(this.options.fallbackLng)[0]),t):null}},{key:"getFallbackCodes",value:function(e,t){if(!e)return[];if("function"==typeof e&&(e=e(t)),"string"==typeof e&&(e=[e]),"[object Array]"===Object.prototype.toString.apply(e))return e;if(!t)return e.default||[];var n=e[t];return n||(n=e[this.getScriptPartFromCode(t)]),n||(n=e[this.formatLanguageCode(t)]),n||(n=e[this.getLanguagePartFromCode(t)]),n||(n=e.default),n||[]}},{key:"toResolveHierarchy",value:function(e,t){var n=this,r=this.getFallbackCodes(t||this.options.fallbackLng||[],e),a=[],o=function(e){e&&(n.isSupportedCode(e)?a.push(e):n.logger.warn("rejecting language code not found in supportedLngs: ".concat(e)))};return"string"==typeof e&&e.indexOf("-")>-1?("languageOnly"!==this.options.load&&o(this.formatLanguageCode(e)),"languageOnly"!==this.options.load&&"currentOnly"!==this.options.load&&o(this.getScriptPartFromCode(e)),"currentOnly"!==this.options.load&&o(this.getLanguagePartFromCode(e))):"string"==typeof e&&o(this.formatLanguageCode(e)),r.forEach((function(e){a.indexOf(e)<0&&o(n.formatLanguageCode(e))})),a}}]),e}(),me=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","pt","pt-BR","tg","tl","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","et","eu","fi","fo","fur","fy","gl","gu","ha","hi","hu","hy","ia","it","kk","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt-PT","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","ht","id","ja","jbo","ka","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","cnr","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21},{lngs:["he","iw"],nr:[1,2,20,21],fc:22}],be={1:function(e){return Number(e>1)},2:function(e){return Number(1!=e)},3:function(e){return 0},4:function(e){return Number(e%10==1&&e%100!=11?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2)},5:function(e){return Number(0==e?0:1==e?1:2==e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5)},6:function(e){return Number(1==e?0:e>=2&&e<=4?1:2)},7:function(e){return Number(1==e?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2)},8:function(e){return Number(1==e?0:2==e?1:8!=e&&11!=e?2:3)},9:function(e){return Number(e>=2)},10:function(e){return Number(1==e?0:2==e?1:e<7?2:e<11?3:4)},11:function(e){return Number(1==e||11==e?0:2==e||12==e?1:e>2&&e<20?2:3)},12:function(e){return Number(e%10!=1||e%100==11)},13:function(e){return Number(0!==e)},14:function(e){return Number(1==e?0:2==e?1:3==e?2:3)},15:function(e){return Number(e%10==1&&e%100!=11?0:e%10>=2&&(e%100<10||e%100>=20)?1:2)},16:function(e){return Number(e%10==1&&e%100!=11?0:0!==e?1:2)},17:function(e){return Number(1==e||e%10==1&&e%100!=11?0:1)},18:function(e){return Number(0==e?0:1==e?1:2)},19:function(e){return Number(1==e?0:0==e||e%100>1&&e%100<11?1:e%100>10&&e%100<20?2:3)},20:function(e){return Number(1==e?0:0==e||e%100>0&&e%100<20?1:2)},21:function(e){return Number(e%100==1?1:e%100==2?2:e%100==3||e%100==4?3:0)},22:function(e){return Number(1==e?0:2==e?1:(e<0||e>10)&&e%10==0?2:3)}},ye=["v1","v2","v3"],Se={zero:0,one:1,two:2,few:3,many:4,other:5};function we(){var e={};return me.forEach((function(t){t.lngs.forEach((function(n){e[n]={numbers:t.nr,plurals:be[t.fc]}}))})),e}var ke=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};F(this,e),this.languageUtils=t,this.options=n,this.logger=X.create("pluralResolver"),this.options.compatibilityJSON&&"v4"!==this.options.compatibilityJSON||"undefined"!=typeof Intl&&Intl.PluralRules||(this.options.compatibilityJSON="v3",this.logger.error("Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.")),this.rules=we()}return z(e,[{key:"addRule",value:function(e,t){this.rules[e]=t}},{key:"getRule",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(this.shouldUseIntlApi())try{return new Intl.PluralRules(e,{type:t.ordinal?"ordinal":"cardinal"})}catch(e){return}return this.rules[e]||this.rules[this.languageUtils.getLanguagePartFromCode(e)]}},{key:"needsPlural",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.getRule(e,t);return this.shouldUseIntlApi()?n&&n.resolvedOptions().pluralCategories.length>1:n&&n.numbers.length>1}},{key:"getPluralFormsOfKey",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.getSuffixes(e,n).map((function(e){return"".concat(t).concat(e)}))}},{key:"getSuffixes",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.getRule(e,n);return r?this.shouldUseIntlApi()?r.resolvedOptions().pluralCategories.sort((function(e,t){return Se[e]-Se[t]})).map((function(e){return"".concat(t.options.prepend).concat(e)})):r.numbers.map((function(r){return t.getSuffix(e,r,n)})):[]}},{key:"getSuffix",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.getRule(e,n);return r?this.shouldUseIntlApi()?"".concat(this.options.prepend).concat(r.select(t)):this.getSuffixRetroCompatible(r,t):(this.logger.warn("no plural rule found for: ".concat(e)),"")}},{key:"getSuffixRetroCompatible",value:function(e,t){var n=this,r=e.noAbs?e.plurals(t):e.plurals(Math.abs(t)),a=e.numbers[r];this.options.simplifyPluralSuffix&&2===e.numbers.length&&1===e.numbers[0]&&(2===a?a="plural":1===a&&(a=""));var o=function(){return n.options.prepend&&a.toString()?n.options.prepend+a.toString():a.toString()};return"v1"===this.options.compatibilityJSON?1===a?"":"number"==typeof a?"_plural_".concat(a.toString()):o():"v2"===this.options.compatibilityJSON||this.options.simplifyPluralSuffix&&2===e.numbers.length&&1===e.numbers[0]?o():this.options.prepend&&r.toString()?this.options.prepend+r.toString():r.toString()}},{key:"shouldUseIntlApi",value:function(){return!ye.includes(this.options.compatibilityJSON)}}]),e}(),Ce=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};F(this,e),this.logger=X.create("interpolator"),this.options=t,this.format=t.interpolation&&t.interpolation.format||function(e){return e},this.init(t)}return z(e,[{key:"init",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e.interpolation||(e.interpolation={escapeValue:!0});var t=e.interpolation;this.escape=void 0!==t.escape?t.escape:se,this.escapeValue=void 0===t.escapeValue||t.escapeValue,this.useRawValueToEscape=void 0!==t.useRawValueToEscape&&t.useRawValueToEscape,this.prefix=t.prefix?oe(t.prefix):t.prefixEscaped||"{{",this.suffix=t.suffix?oe(t.suffix):t.suffixEscaped||"}}",this.formatSeparator=t.formatSeparator?t.formatSeparator:t.formatSeparator||",",this.unescapePrefix=t.unescapeSuffix?"":t.unescapePrefix||"-",this.unescapeSuffix=this.unescapePrefix?"":t.unescapeSuffix||"",this.nestingPrefix=t.nestingPrefix?oe(t.nestingPrefix):t.nestingPrefixEscaped||oe("$t("),this.nestingSuffix=t.nestingSuffix?oe(t.nestingSuffix):t.nestingSuffixEscaped||oe(")"),this.nestingOptionsSeparator=t.nestingOptionsSeparator?t.nestingOptionsSeparator:t.nestingOptionsSeparator||",",this.maxReplaces=t.maxReplaces?t.maxReplaces:1e3,this.alwaysFormat=void 0!==t.alwaysFormat&&t.alwaysFormat,this.resetRegExp()}},{key:"reset",value:function(){this.options&&this.init(this.options)}},{key:"resetRegExp",value:function(){var e="".concat(this.prefix,"(.+?)").concat(this.suffix);this.regexp=new RegExp(e,"g");var t="".concat(this.prefix).concat(this.unescapePrefix,"(.+?)").concat(this.unescapeSuffix).concat(this.suffix);this.regexpUnescape=new RegExp(t,"g");var n="".concat(this.nestingPrefix,"(.+?)").concat(this.nestingSuffix);this.nestingRegexp=new RegExp(n,"g")}},{key:"interpolate",value:function(e,t,n,r){var a,o,i,s=this,l=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{};function u(e){return e.replace(/\$/g,"$$$$")}var c=function(e){if(e.indexOf(s.formatSeparator)<0){var a=re(t,l,e);return s.alwaysFormat?s.format(a,void 0,n,B({},r,t,{interpolationkey:e})):a}var o=e.split(s.formatSeparator),i=o.shift().trim(),u=o.join(s.formatSeparator).trim();return s.format(re(t,l,i),u,n,B({},r,t,{interpolationkey:i}))};this.resetRegExp();var d=r&&r.missingInterpolationHandler||this.options.missingInterpolationHandler,p=r&&r.interpolation&&r.interpolation.skipOnVariables||this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:function(e){return u(e)}},{regex:this.regexp,safeValue:function(e){return s.escapeValue?u(s.escape(e)):u(e)}}].forEach((function(t){for(i=0;a=t.regex.exec(e);){if(void 0===(o=c(a[1].trim())))if("function"==typeof d){var n=d(e,a,r);o="string"==typeof n?n:""}else{if(p){o=a[0];continue}s.logger.warn("missed to pass in variable ".concat(a[1]," for interpolating ").concat(e)),o=""}else"string"==typeof o||s.useRawValueToEscape||(o=G(o));var l=t.safeValue(o);if(e=e.replace(a[0],l),p?(t.regex.lastIndex+=l.length,t.regex.lastIndex-=a[0].length):t.regex.lastIndex=0,++i>=s.maxReplaces)break}})),e}},{key:"nest",value:function(e,t){var n,r,a=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=B({},o);function s(e,t){var n=this.nestingOptionsSeparator;if(e.indexOf(n)<0)return e;var r=e.split(new RegExp("".concat(n,"[ ]*{"))),a="{".concat(r[1]);e=r[0],a=(a=this.interpolate(a,i)).replace(/'/g,'"');try{i=JSON.parse(a),t&&(i=B({},t,i))}catch(t){return this.logger.warn("failed parsing options string in nesting for key ".concat(e),t),"".concat(e).concat(n).concat(a)}return delete i.defaultValue,e}for(i.applyPostProcessor=!1,delete i.defaultValue;n=this.nestingRegexp.exec(e);){var l=[],u=!1;if(-1!==n[0].indexOf(this.formatSeparator)&&!/{.*}/.test(n[1])){var c=n[1].split(this.formatSeparator).map((function(e){return e.trim()}));n[1]=c.shift(),l=c,u=!0}if((r=t(s.call(this,n[1].trim(),i),i))&&n[0]===e&&"string"!=typeof r)return r;"string"!=typeof r&&(r=G(r)),r||(this.logger.warn("missed to resolve ".concat(n[1]," for nesting ").concat(e)),r=""),u&&(r=l.reduce((function(e,t){return a.format(e,t,o.lng,B({},o,{interpolationkey:n[1].trim()}))}),r.trim())),e=e.replace(n[0],r),this.regexp.lastIndex=0}return e}}]),e}(),Ee=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};F(this,e),this.logger=X.create("formatter"),this.options=t,this.formats={number:function(e,t,n){return new Intl.NumberFormat(t,n).format(e)},currency:function(e,t,n){return new Intl.NumberFormat(t,B({},n,{style:"currency"})).format(e)},datetime:function(e,t,n){return new Intl.DateTimeFormat(t,B({},n)).format(e)},relativetime:function(e,t,n){return new Intl.RelativeTimeFormat(t,B({},n)).format(e,n.range||"day")},list:function(e,t,n){return new Intl.ListFormat(t,B({},n)).format(e)}},this.init(t)}return z(e,[{key:"init",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}},n=t.interpolation;this.formatSeparator=n.formatSeparator?n.formatSeparator:n.formatSeparator||","}},{key:"add",value:function(e,t){this.formats[e]=t}},{key:"format",value:function(e,t,n,r){var a=this;return t.split(this.formatSeparator).reduce((function(e,t){var o=function(e){var t=e.toLowerCase(),n={};if(e.indexOf("(")>-1){var r=e.split("(");t=r[0].toLowerCase();var a=r[1].substring(0,r[1].length-1);"currency"===t&&a.indexOf(":")<0?n.currency||(n.currency=a.trim()):"relativetime"===t&&a.indexOf(":")<0?n.range||(n.range=a.trim()):a.split(";").forEach((function(e){if(e){var t=function(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o=[],i=!0,s=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);i=!0);}catch(e){s=!0,a=e}finally{try{i||null==n.return||n.return()}finally{if(s)throw a}}return o}}(e,t)||function(e,t){if(e){if("string"==typeof e)return $(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?$(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(e.split(":"),2),r=t[0],a=t[1];"false"===a.trim()&&(n[r.trim()]=!1),"true"===a.trim()&&(n[r.trim()]=!0),isNaN(a.trim())||(n[r.trim()]=parseInt(a.trim(),10)),n[r.trim()]||(n[r.trim()]=a.trim())}}))}return{formatName:t,formatOptions:n}}(t),i=o.formatName,s=o.formatOptions;if(a.formats[i]){var l=e;try{var u=r&&r.formatParams&&r.formatParams[r.interpolationkey]||{},c=u.locale||u.lng||r.locale||r.lng||n;l=a.formats[i](e,c,B({},s,r,u))}catch(e){a.logger.warn(e)}return l}return a.logger.warn("there was no format function for ".concat(i)),e}),e)}}]),e}(),xe=function(e){function t(e,n,r){var a,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return F(this,t),a=H(this,V(t).call(this)),le&&Y.call(j(a)),a.backend=e,a.store=n,a.services=r,a.languageUtils=r.languageUtils,a.options=o,a.logger=X.create("backendConnector"),a.state={},a.queue=[],a.backend&&a.backend.init&&a.backend.init(r,o.backend,o),a}return Z(t,e),z(t,[{key:"queueLoad",value:function(e,t,n,r){var a=this,o=[],i=[],s=[],l=[];return e.forEach((function(e){var r=!0;t.forEach((function(t){var s="".concat(e,"|").concat(t);!n.reload&&a.store.hasResourceBundle(e,t)?a.state[s]=2:a.state[s]<0||(1===a.state[s]?i.indexOf(s)<0&&i.push(s):(a.state[s]=1,r=!1,i.indexOf(s)<0&&i.push(s),o.indexOf(s)<0&&o.push(s),l.indexOf(t)<0&&l.push(t)))})),r||s.push(e)})),(o.length||i.length)&&this.queue.push({pending:i,loaded:{},errors:[],callback:r}),{toLoad:o,pending:i,toLoadLanguages:s,toLoadNamespaces:l}}},{key:"loaded",value:function(e,t,n){var r=e.split("|"),a=r[0],o=r[1];t&&this.emit("failedLoading",a,o,t),n&&this.store.addResourceBundle(a,o,n),this.state[e]=t?-1:2;var i={};this.queue.forEach((function(n){!function(e,t,n,r){var a=ee(e,t,Object),o=a.obj,i=a.k;o[i]=o[i]||[],o[i].push(n)}(n.loaded,[a],o),function(e,t){for(var n=e.indexOf(t);-1!==n;)e.splice(n,1),n=e.indexOf(t)}(n.pending,e),t&&n.errors.push(t),0!==n.pending.length||n.done||(Object.keys(n.loaded).forEach((function(e){i[e]||(i[e]=[]),n.loaded[e].length&&n.loaded[e].forEach((function(t){i[e].indexOf(t)<0&&i[e].push(t)}))})),n.done=!0,n.errors.length?n.callback(n.errors):n.callback())})),this.emit("loaded",i),this.queue=this.queue.filter((function(e){return!e.done}))}},{key:"read",value:function(e,t,n){var r=this,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:350,i=arguments.length>5?arguments[5]:void 0;return e.length?this.backend[n](e,t,(function(s,l){s&&l&&a<5?setTimeout((function(){r.read.call(r,e,t,n,a+1,2*o,i)}),o):i(s,l)})):i(null,{})}},{key:"prepareLoading",value:function(e,t){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),a&&a();"string"==typeof e&&(e=this.languageUtils.toResolveHierarchy(e)),"string"==typeof t&&(t=[t]);var o=this.queueLoad(e,t,r,a);if(!o.toLoad.length)return o.pending.length||a(),null;o.toLoad.forEach((function(e){n.loadOne(e)}))}},{key:"load",value:function(e,t,n){this.prepareLoading(e,t,{},n)}},{key:"reload",value:function(e,t,n){this.prepareLoading(e,t,{reload:!0},n)}},{key:"loadOne",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",r=e.split("|"),a=r[0],o=r[1];this.read(a,o,"read",void 0,void 0,(function(r,i){r&&t.logger.warn("".concat(n,"loading namespace ").concat(o," for language ").concat(a," failed"),r),!r&&i&&t.logger.log("".concat(n,"loaded namespace ").concat(o," for language ").concat(a),i),t.loaded(e,r,i)}))}},{key:"saveMissing",value:function(e,t,n,r,a){var o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};this.services.utils&&this.services.utils.hasLoadedNamespace&&!this.services.utils.hasLoadedNamespace(t)?this.logger.warn('did not save key "'.concat(n,'" as the namespace "').concat(t,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!"):null!=n&&""!==n&&(this.backend&&this.backend.create&&this.backend.create(e,t,n,r,null,B({},o,{isUpdate:a})),e&&e[0]&&this.store.addResource(e[0],t,n,r))}}]),t}(Y);function _e(){return{debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!0,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:function(e){var t={};if("object"===O(e[1])&&(t=e[1]),"string"==typeof e[1]&&(t.defaultValue=e[1]),"string"==typeof e[2]&&(t.tDescription=e[2]),"object"===O(e[2])||"object"===O(e[3])){var n=e[3]||e[2];Object.keys(n).forEach((function(e){t[e]=n[e]}))}return t},interpolation:{escapeValue:!0,format:function(e,t,n,r){return e},prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0}}}function Te(e){return"string"==typeof e.ns&&(e.ns=[e.ns]),"string"==typeof e.fallbackLng&&(e.fallbackLng=[e.fallbackLng]),"string"==typeof e.fallbackNS&&(e.fallbackNS=[e.fallbackNS]),e.supportedLngs&&e.supportedLngs.indexOf("cimode")<0&&(e.supportedLngs=e.supportedLngs.concat(["cimode"])),e}function Ae(){}var Ie=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0;if(F(this,t),e=H(this,V(t).call(this)),le&&Y.call(j(e)),e.options=Te(n),e.services={},e.logger=X,e.modules={external:[]},r&&!e.isInitialized&&!n.isClone){if(!e.options.initImmediate)return e.init(n,r),H(e,j(e));setTimeout((function(){e.init(n,r)}),0)}return e}return Z(t,e),z(t,[{key:"init",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;"function"==typeof t&&(n=t,t={}),!t.defaultNS&&t.ns&&("string"==typeof t.ns?t.defaultNS=t.ns:t.ns.indexOf("translation")<0&&(t.defaultNS=t.ns[0]));var r=_e();function a(e){return e?"function"==typeof e?new e:e:null}if(this.options=B({},r,this.options,Te(t)),void 0!==t.keySeparator&&(this.options.userDefinedKeySeparator=t.keySeparator),void 0!==t.nsSeparator&&(this.options.userDefinedNsSeparator=t.nsSeparator),!this.options.isClone){var o;this.modules.logger?X.init(a(this.modules.logger),this.options):X.init(null,this.options),this.modules.formatter?o=this.modules.formatter:"undefined"!=typeof Intl&&(o=Ee);var i=new ve(this.options);this.store=new de(this.options.resources,this.options);var s=this.services;s.logger=X,s.resourceStore=this.store,s.languageUtils=i,s.pluralResolver=new ke(i,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),!o||this.options.interpolation.format&&this.options.interpolation.format!==r.interpolation.format||(s.formatter=a(o),s.formatter.init(s,this.options),this.options.interpolation.format=s.formatter.format.bind(s.formatter)),s.interpolator=new Ce(this.options),s.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},s.backendConnector=new xe(a(this.modules.backend),s.resourceStore,s,this.options),s.backendConnector.on("*",(function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),a=1;a<n;a++)r[a-1]=arguments[a];e.emit.apply(e,[t].concat(r))})),this.modules.languageDetector&&(s.languageDetector=a(this.modules.languageDetector),s.languageDetector.init(s,this.options.detection,this.options)),this.modules.i18nFormat&&(s.i18nFormat=a(this.modules.i18nFormat),s.i18nFormat.init&&s.i18nFormat.init(this)),this.translator=new he(this.services,this.options),this.translator.on("*",(function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),a=1;a<n;a++)r[a-1]=arguments[a];e.emit.apply(e,[t].concat(r))})),this.modules.external.forEach((function(t){t.init&&t.init(e)}))}if(this.format=this.options.interpolation.format,n||(n=Ae),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){var l=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);l.length>0&&"dev"!==l[0]&&(this.options.lng=l[0])}this.services.languageDetector||this.options.lng||this.logger.warn("init: no languageDetector is used and no lng is defined");var u=["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"];u.forEach((function(t){e[t]=function(){var n;return(n=e.store)[t].apply(n,arguments)}}));var c=["addResource","addResources","addResourceBundle","removeResourceBundle"];c.forEach((function(t){e[t]=function(){var n;return(n=e.store)[t].apply(n,arguments),e}}));var d=Q(),p=function(){var t=function(t,r){e.isInitialized&&!e.initializedStoreOnce&&e.logger.warn("init: i18next is already initialized. You should call init just once!"),e.isInitialized=!0,e.options.isClone||e.logger.log("initialized",e.options),e.emit("initialized",e.options),d.resolve(r),n(t,r)};if(e.languages&&"v1"!==e.options.compatibilityAPI&&!e.isInitialized)return t(null,e.t.bind(e));e.changeLanguage(e.options.lng,t)};return this.options.resources||!this.options.initImmediate?p():setTimeout(p,0),d}},{key:"loadResources",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ae,r=n,a="string"==typeof e?e:this.language;if("function"==typeof e&&(r=e),!this.options.resources||this.options.partialBundledLanguages){if(a&&"cimode"===a.toLowerCase())return r();var o=[],i=function(e){e&&t.services.languageUtils.toResolveHierarchy(e).forEach((function(e){o.indexOf(e)<0&&o.push(e)}))};if(a)i(a);else{var s=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);s.forEach((function(e){return i(e)}))}this.options.preload&&this.options.preload.forEach((function(e){return i(e)})),this.services.backendConnector.load(o,this.options.ns,r)}else r(null)}},{key:"reloadResources",value:function(e,t,n){var r=Q();return e||(e=this.languages),t||(t=this.options.ns),n||(n=Ae),this.services.backendConnector.reload(e,t,(function(e){r.resolve(),n(e)})),r}},{key:"use",value:function(e){if(!e)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!e.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return"backend"===e.type&&(this.modules.backend=e),("logger"===e.type||e.log&&e.warn&&e.error)&&(this.modules.logger=e),"languageDetector"===e.type&&(this.modules.languageDetector=e),"i18nFormat"===e.type&&(this.modules.i18nFormat=e),"postProcessor"===e.type&&pe.addPostProcessor(e),"formatter"===e.type&&(this.modules.formatter=e),"3rdParty"===e.type&&this.modules.external.push(e),this}},{key:"changeLanguage",value:function(e,t){var n=this;this.isLanguageChangingTo=e;var r=Q();this.emit("languageChanging",e);var a=function(e){if(n.language=e,n.languages=n.services.languageUtils.toResolveHierarchy(e),n.resolvedLanguage=void 0,!(["cimode","dev"].indexOf(e)>-1))for(var t=0;t<n.languages.length;t++){var r=n.languages[t];if(!(["cimode","dev"].indexOf(r)>-1)&&n.store.hasLanguageSomeTranslations(r)){n.resolvedLanguage=r;break}}},o=function(o){e||o||!n.services.languageDetector||(o=[]);var i="string"==typeof o?o:n.services.languageUtils.getBestMatchFromCodes(o);i&&(n.language||a(i),n.translator.language||n.translator.changeLanguage(i),n.services.languageDetector&&n.services.languageDetector.cacheUserLanguage(i)),n.loadResources(i,(function(e){!function(e,o){o?(a(o),n.translator.changeLanguage(o),n.isLanguageChangingTo=void 0,n.emit("languageChanged",o),n.logger.log("languageChanged",o)):n.isLanguageChangingTo=void 0,r.resolve((function(){return n.t.apply(n,arguments)})),t&&t(e,(function(){return n.t.apply(n,arguments)}))}(e,i)}))};return e||!this.services.languageDetector||this.services.languageDetector.async?!e&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect(o):o(e):o(this.services.languageDetector.detect()),r}},{key:"getFixedT",value:function(e,t,n){var r=this,a=function e(t,a){var o;if("object"!==O(a)){for(var i=arguments.length,s=new Array(i>2?i-2:0),l=2;l<i;l++)s[l-2]=arguments[l];o=r.options.overloadTranslationOptionHandler([t,a].concat(s))}else o=B({},a);o.lng=o.lng||e.lng,o.lngs=o.lngs||e.lngs,o.ns=o.ns||e.ns;var u=r.options.keySeparator||".",c=n?"".concat(n).concat(u).concat(t):t;return r.t(c,o)};return"string"==typeof e?a.lng=e:a.lngs=e,a.ns=t,a.keyPrefix=n,a}},{key:"t",value:function(){var e;return this.translator&&(e=this.translator).translate.apply(e,arguments)}},{key:"exists",value:function(){var e;return this.translator&&(e=this.translator).exists.apply(e,arguments)}},{key:"setDefaultNamespace",value:function(e){this.options.defaultNS=e}},{key:"hasLoadedNamespace",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;var r=this.resolvedLanguage||this.languages[0],a=!!this.options&&this.options.fallbackLng,o=this.languages[this.languages.length-1];if("cimode"===r.toLowerCase())return!0;var i=function(e,n){var r=t.services.backendConnector.state["".concat(e,"|").concat(n)];return-1===r||2===r};if(n.precheck){var s=n.precheck(this,i);if(void 0!==s)return s}return!!this.hasResourceBundle(r,e)||!this.services.backendConnector.backend||!(!i(r,e)||a&&!i(o,e))}},{key:"loadNamespaces",value:function(e,t){var n=this,r=Q();return this.options.ns?("string"==typeof e&&(e=[e]),e.forEach((function(e){n.options.ns.indexOf(e)<0&&n.options.ns.push(e)})),this.loadResources((function(e){r.resolve(),t&&t(e)})),r):(t&&t(),Promise.resolve())}},{key:"loadLanguages",value:function(e,t){var n=Q();"string"==typeof e&&(e=[e]);var r=this.options.preload||[],a=e.filter((function(e){return r.indexOf(e)<0}));return a.length?(this.options.preload=r.concat(a),this.loadResources((function(e){n.resolve(),t&&t(e)})),n):(t&&t(),Promise.resolve())}},{key:"dir",value:function(e){return e||(e=this.resolvedLanguage||(this.languages&&this.languages.length>0?this.languages[0]:this.language)),e?["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"].indexOf(this.services.languageUtils.getLanguagePartFromCode(e))>=0?"rtl":"ltr":"rtl"}},{key:"createInstance",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;return new t(e,n)}},{key:"cloneInstance",value:function(){var e=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ae,a=B({},this.options,n,{isClone:!0}),o=new t(a),i=["store","services","language"];return i.forEach((function(t){o[t]=e[t]})),o.services=B({},this.services),o.services.utils={hasLoadedNamespace:o.hasLoadedNamespace.bind(o)},o.translator=new he(o.services,o.options),o.translator.on("*",(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];o.emit.apply(o,[e].concat(n))})),o.init(a,r),o.translator.options=o.options,o.translator.backendConnector.services.utils={hasLoadedNamespace:o.hasLoadedNamespace.bind(o)},o}},{key:"toJSON",value:function(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}}]),t}(Y);const Ne=new Ie;var Re=[],Le=Re.forEach,De=Re.slice;function Pe(e){return Le.call(De.call(arguments,1),(function(t){if(t)for(var n in t)void 0===e[n]&&(e[n]=t[n])})),e}var Oe=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/,Me=function(e,t,n){var r=n||{};r.path=r.path||"/";var a=e+"="+encodeURIComponent(t);if(r.maxAge>0){var o=r.maxAge-0;if(isNaN(o))throw new Error("maxAge should be a Number");a+="; Max-Age="+Math.floor(o)}if(r.domain){if(!Oe.test(r.domain))throw new TypeError("option domain is invalid");a+="; Domain="+r.domain}if(r.path){if(!Oe.test(r.path))throw new TypeError("option path is invalid");a+="; Path="+r.path}if(r.expires){if("function"!=typeof r.expires.toUTCString)throw new TypeError("option expires is invalid");a+="; Expires="+r.expires.toUTCString()}if(r.httpOnly&&(a+="; HttpOnly"),r.secure&&(a+="; Secure"),r.sameSite)switch("string"==typeof r.sameSite?r.sameSite.toLowerCase():r.sameSite){case!0:case"strict":a+="; SameSite=Strict";break;case"lax":a+="; SameSite=Lax";break;case"none":a+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}return a},Be={name:"cookie",lookup:function(e){var t;if(e.lookupCookie&&"undefined"!=typeof document){var n=function(e){for(var t=e+"=",n=document.cookie.split(";"),r=0;r<n.length;r++){for(var a=n[r];" "===a.charAt(0);)a=a.substring(1,a.length);if(0===a.indexOf(t))return a.substring(t.length,a.length)}return null}(e.lookupCookie);n&&(t=n)}return t},cacheUserLanguage:function(e,t){t.lookupCookie&&"undefined"!=typeof document&&function(e,t,n,r){var a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{path:"/",sameSite:"strict"};n&&(a.expires=new Date,a.expires.setTime(a.expires.getTime()+60*n*1e3)),r&&(a.domain=r),document.cookie=Me(e,encodeURIComponent(t),a)}(t.lookupCookie,e,t.cookieMinutes,t.cookieDomain,t.cookieOptions)}},Fe={name:"querystring",lookup:function(e){var t;if("undefined"!=typeof window)for(var n=window.location.search.substring(1).split("&"),r=0;r<n.length;r++){var a=n[r].indexOf("=");a>0&&n[r].substring(0,a)===e.lookupQuerystring&&(t=n[r].substring(a+1))}return t}},Ue=null,ze=function(){if(null!==Ue)return Ue;try{Ue="undefined"!==window&&null!==window.localStorage;var e="i18next.translate.boo";window.localStorage.setItem(e,"foo"),window.localStorage.removeItem(e)}catch(e){Ue=!1}return Ue},je={name:"localStorage",lookup:function(e){var t;if(e.lookupLocalStorage&&ze()){var n=window.localStorage.getItem(e.lookupLocalStorage);n&&(t=n)}return t},cacheUserLanguage:function(e,t){t.lookupLocalStorage&&ze()&&window.localStorage.setItem(t.lookupLocalStorage,e)}},He=null,Ve=function(){if(null!==He)return He;try{He="undefined"!==window&&null!==window.sessionStorage;var e="i18next.translate.boo";window.sessionStorage.setItem(e,"foo"),window.sessionStorage.removeItem(e)}catch(e){He=!1}return He},Ke={name:"sessionStorage",lookup:function(e){var t;if(e.lookupSessionStorage&&Ve()){var n=window.sessionStorage.getItem(e.lookupSessionStorage);n&&(t=n)}return t},cacheUserLanguage:function(e,t){t.lookupSessionStorage&&Ve()&&window.sessionStorage.setItem(t.lookupSessionStorage,e)}},Ze={name:"navigator",lookup:function(e){var t=[];if("undefined"!=typeof navigator){if(navigator.languages)for(var n=0;n<navigator.languages.length;n++)t.push(navigator.languages[n]);navigator.userLanguage&&t.push(navigator.userLanguage),navigator.language&&t.push(navigator.language)}return t.length>0?t:void 0}},$e={name:"htmlTag",lookup:function(e){var t,n=e.htmlTag||("undefined"!=typeof document?document.documentElement:null);return n&&"function"==typeof n.getAttribute&&(t=n.getAttribute("lang")),t}},qe={name:"path",lookup:function(e){var t;if("undefined"!=typeof window){var n=window.location.pathname.match(/\/([a-zA-Z-]*)/g);if(n instanceof Array)if("number"==typeof e.lookupFromPathIndex){if("string"!=typeof n[e.lookupFromPathIndex])return;t=n[e.lookupFromPathIndex].replace("/","")}else t=n[0].replace("/","")}return t}},We={name:"subdomain",lookup:function(e){var t;if("undefined"!=typeof window){var n=window.location.href.match(/(?:http[s]*\:\/\/)*(.*?)\.(?=[^\/]*\..{2,5})/gi);n instanceof Array&&(t="number"==typeof e.lookupFromSubdomainIndex?n[e.lookupFromSubdomainIndex].replace("http://","").replace("https://","").replace(".",""):n[0].replace("http://","").replace("https://","").replace(".",""))}return t}},Xe=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};F(this,e),this.type="languageDetector",this.detectors={},this.init(t,n)}return z(e,[{key:"init",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.services=e,this.options=Pe(t,this.options||{},{order:["querystring","cookie","localStorage","sessionStorage","navigator","htmlTag"],lookupQuerystring:"lng",lookupCookie:"i18next",lookupLocalStorage:"i18nextLng",lookupSessionStorage:"i18nextLng",caches:["localStorage"],excludeCacheFor:["cimode"]}),this.options.lookupFromUrlIndex&&(this.options.lookupFromPathIndex=this.options.lookupFromUrlIndex),this.i18nOptions=n,this.addDetector(Be),this.addDetector(Fe),this.addDetector(je),this.addDetector(Ke),this.addDetector(Ze),this.addDetector($e),this.addDetector(qe),this.addDetector(We)}},{key:"addDetector",value:function(e){this.detectors[e.name]=e}},{key:"detect",value:function(e){var t=this;e||(e=this.options.order);var n=[];return e.forEach((function(e){if(t.detectors[e]){var r=t.detectors[e].lookup(t.options);r&&"string"==typeof r&&(r=[r]),r&&(n=n.concat(r))}})),this.services.languageUtils.getBestMatchFromCodes?n:n.length>0?n[0]:null}},{key:"cacheUserLanguage",value:function(e,t){var n=this;t||(t=this.options.caches),t&&(this.options.excludeCacheFor&&this.options.excludeCacheFor.indexOf(e)>-1||t.forEach((function(t){n.detectors[t]&&n.detectors[t].cacheUserLanguage(e,n.options)})))}}]),e}();Xe.type="languageDetector";const Ye=Xe;function Qe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ge(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Qe(Object(n),!0).forEach((function(t){M(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Qe(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Je={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0};r.createContext(),z((function e(){F(this,e),this.usedNamespaces={}}),[{key:"addUsedNamespaces",value:function(e){var t=this;e.forEach((function(e){t.usedNamespaces[e]||(t.usedNamespaces[e]=!0)}))}},{key:"getUsedNamespaces",value:function(){return Object.keys(this.usedNamespaces)}}]);var et={type:"3rdParty",init:function(e){!function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Je=Ge(Ge({},Je),e)}(e.options.react)}};const tt={en:{translations:JSON.parse('{"amtFeatures":{"enabled":"enabled","disabled":"disabled","messageTypes":{"success":"success","warning":"warning","error":"error"},"features":{"kvm":"KVM","sol":"SOL"},"messages":{"kvmNotEnabledAndNotPoweredUp":"Power on remote computer and check the KVM enable to connect to KVM","notPoweredUp":"Remote computer is not powered on.","kvmNotEnabled":"Check the KVM enable to connect to KVM","failedKvmFetch":"Unable to fetch KVM features","failedKvmFetchAndNotPoweredUp":"Unable to fetch KVM features and device is not powered on","failedKvmFetchAndFailedPowerFetch":"Unable to fetch KVM features and device power status","kvmNotEnabledAndFailedPowerFetch":"Check the KVM enable to connect to KVM and failed to fetch power status","failedPowerFetch":"Failed to fetch the power status","solNotEnabledAndNotPoweredUp":"Power on remote computer and check the SOL enable to connect to SOL","solNotEnabled":"Check the SOL enable to connect to SOL","failedSolFetch":"Unable to fetch SOL features","failedSolFetchAndNotPoweredUp":"Unable to fetch SOL features and device is not powered on","failedSolFetchAndFailedPowerFetch":"Unable to fetch SOL features and device power status","solNotEnabledAndFailedPowerFetch":"Check the SOL enable to connect to SOL and failed to fetch power status","failedToFetch":"Failed to fetch the {{translate.feature}} feature status","featureSuccess":"{{translate.feature}} has been {{translate.featureText}}","updateFailed":"Failed to update the {{translate.feature}} status!"}},"companyName":"Contoso","header":{"appName":"Lynx DAM WEB UI","logout":"Logout","profile":"Profile"},"pageNotFound":{"title":"404 - Page not found","message":"Oops, we weren\'t able to find the page you requested."},"tabs":{"dashboard":"Dashboard","devices":"Devices"},"user":{"login":{"heading":"Login","userName":"username","password":"password","signIn":"Sign In","cancel":"Cancel"}},"errorFormat":"Error: {{message}}","errorCode":{"noResponse":"Oops, there was no response from the server.","notLoggedIn":"You need to login to call the service.","notAuthorized":"Invalid username or password.","notFound":"Oops, we were not able to find the service.","redirection":"Oops, we got a redirection error.","retryFailure":"Oops, we got a temporary error from the service but were unable to recover. Try again later.","unknown":"An unknown error occurred. {{message}}"},"protected":{"permissionDenied":"Permission {{permission}} is denied."},"settingsFlyout":{"title":"System settings","version":"Version {{version}}","viewRelNotes":"View release notes","theme":"Theme","changeTheme":"Change the application color theme","switchTheme":"Switch to {{nextTheme}} theme","apply":"Apply","cancel":"Cancel","close":"Close","flowing":"Flowing","start":"Start","stop":"Stop","stopped":"Stopped","simulationData":"Simulation data","loading":"Loading","simulationDescription":"Start or stop simulation of devices. Stopping device simulation will minimize the cost of the solution; no simulated telemetry will be sent to your IoT Hub and alerts will not be generated for simulated devices.","toggleError":"Error updating simulation status","setLogoError":"Error updating logo","simulationLoadError":"Error loading simulation status"},"refreshBar":{"refreshing":"Refreshing","lastRefreshed":"Last refreshed"},"devices":{"grid":{"Name":"Name","uuids":"UUID","connected":"Connected","deviceName":"Device name","deviceType":"Device type","firmware":"Firmware","lastConnection":"Last connection","no":"No","offline":"Offline","simulated":"Simulated","status":"Status","telemetry":"Telemetry","yes":"Yes","resultSuccess":"Success","resultFailure":"Failed","resultMessage":"Message","executionResultsLink":"Execution Results","result":"Result","Percentage":"Percent Complete","Inprogress":"In Progress","ViewResults":"View Results"}},"fileInput":{"upload":"Upload"},"applicationSettings":{"nameAndLogo":"Name and logo","nameLogoDescription":"Edit logo and name in the site header.","replaceLogo":"Replace logo image","logoDescription":"Recommended logo size: 24 x 24 px.\\nMaximum logo size: 300 KB.\\nSupported file formats:\\n\\t.SVG\\n\\t.PNG\\n\\t.JPEG\\n\\t.JPG","applicationName":"Application name","currentLogo":"Current logo","edit":"Edit","checkmark":"Checkmark","uploadError":"Unable to upload file, please check the file type/size and try again.","error":"Error"},"auditLog":{"header":{"heading":"Audit Log Records"},"grid":{"column":{"auditappid":"Role ID","auditappiddescription":"A unique ID for each AMT Role","eventId":"Event ID","eventIddescription":"ID of an event of the application","initiatortype":"InitiatorType","auditapp":"Role Name","auditappdescription":"The role group name for each AMT functional area","event":"Event","eventdescription":"ID of an event of the application","initiator":"Initiator","initiatordescription":"User ID performing action","time":"Device Time(UTC)","timedescription":"Server time to indicate the event occurance","mclocationtype":"MCLocationType","mclocationtypedescription":"Management console interface","netaddress":"Network Address","netaddressdescription":"Network address details","exstr":"Event Details","exstrdescription":"Extended data length details"},"footer":{"exporttocsv":{"title":"Export to CSV"},"gotopage":{"title":"Go to page"},"pagination":{"text1":"Page","text2":"of"}}}},"dashboard":{"header":"AMT Device Management","deviceDetails":"Device details","count":"Count","totalDevices":"Total Devices","connectedDevices":"Connected","disconnectedDevices":"Disconnected"},"cira":{"new":"New","delete":"Delete","edit":"Edit","close":"Close","newCIRAConfig":"New CIRA Configuration","editCIRAConfig":"Edit CIRA Configuration","configName":"Config Name","addressFormat":"MPS Server Address Format","ipv4":"IPV4","ipv6":"IPV6","fqdn":"FQDN","mpsServerAddress":"MPS Server Address","port":"Port","userName":"User Name","password":"Password","commonName":"Cert. Hostname(CN)","mpsRootCetificate":"MPS Root Certificate","create":"Create","save":"Save","mpsRootCertFormat":"Mps root certificate format","autoLoad":"Auto load","manual":"Manual","load":"Load","mpsLoaded":"MPS root certificate successfully loaded","errors":{"commonNameValidation":"Cert. Hostname(CN) is required field and contains letters,numbers and ._- characters.","passwordValidation":"Password is required field should contains atleast one lowercase letter, one uppercase letter, one numeric digit,and one special character and password length should be in between 8 to 32.","userNameValidation":"User name is required field and contains letters, numbers and special characters.","portValidation":"Port is required and should be a numeric value between 1024 and 49151","ipv4AddressValidation":"Please enter valid IPV4 Address.","ipv6AddressValidation":"Please enter valid IPV6 Address.","fqdnAddressValidation":"Please enter valid FQDN Address.","configNameValidation":"Config name is required field and contains letters, numbers and special characters.","loadMpsError":"Load the mps root certificate","mpsCertFetchError":"Failed to fetch the certificate from the server. Please try to enter the certificate manually by switching the Mps root certificate format option.","mpsServerMismatchError":"MPS server address does not match with base URL of the application. Please try to enter the certificate manually by switching the Mps root certificate format option."},"grid":{"configName":"Config Name","mpsServer":"MPS server","port":"Port","username":"Username","password":"Password","commonName":"Cert. Hostname(CN)","rootCert":"MPS root Certificate"}},"domain":{"delete":"Delete","new":"New","edit":"Edit","close":"Close","newDomain":"Create Domain","editDomain":"Edit domain details","grid":{"name":"Name","domainSuffix":"Domain Suffix","provisioningCert":"Provisioning Certificate","provisioningCertStorageFormat":"Provisioning Certificate Storage Format","provisioningCertPassword":"Provisioning Certificate Password"},"name":"Name","domainSuffix":"Domain Suffix","provisioningCertStorageFormat":"Provisioning Cert Storage Format","provisioningCert":"Provisioning Cert","provisioningCertPassword":"Provisioning Cert Password","create":"Create","file":"File","browse":"Browse","browseNew":"Browse new file","save":"Save","namePlaceHolder":"Enter domain name","domainSuffixPlaceHolder":"Enter Domain suffix","provisioningCertTextAreaPlaceHolder":"Enter provisioning Cert ","provisioningCertPasswordPlaceHolder":"Enter password","provisioningCertTextPlaceHolder":"Enter file path","text":"Text","certExists":"If you would like to add a new Provisioning certificate browse and select.","error":{"nameValidation":"Name is a required field and contains letters, numbers and special characters.","domainSuffixValidation":"Domain suffix is a required field","provisioningCertStorageFormatValidation":"Provisioning Cert Storage Format is a required field","provisioningCertValidation":"Provisioning cert is a required field","provisioningCertPasswordValidation":"Provisioning Cert Password is required field should contains atleast one lowercase letter, one uppercase letter, one numeric digit,and one special character and password length should be in between 8 to 32.","invalidFileType":"Invalid provisioning certificate type"}},"network":{"new":"New","newNetwork":"New Network configuration","editNetwork":"Edit Network configuration","create":"Create","delete":"Delete","edit":"Edit","save":"Save","grid":{"name":"Name","dhcpEnabled":"DHCP Enabled"},"networkName":"Network Name","dhcpEnabled":"DHCP Enabled","errors":{"networkNameValidation":"Network name is a required field and contains letters, numbers and special characters."}}}')},te:{translations:JSON.parse('{"amtFeatures":{"enabled":"ఎనేబుల్","disabled":"వికలాంగ","messageTypes":{"success":"విజయం","warning":"హెచ్చరిక","error":"లోపం"},"features":{"kvm":"KVM","sol":"సోల్"},"messages":{"kvmNotEnabledAndNotPoweredUp":"రిమోట్ కంప్యూటర్‌లో శక్తినివ్వండి మరియు KVM ని ప్రారంభించండి","notPoweredUp":"రిమోట్ కంప్యూటర్ ఆన్ చేయబడదు.","kvmNotEnabled":"KVM ప్రారంభించబడలేదు","solNotEnabledAndNotPoweredUp":"రిమోట్ కంప్యూటర్‌లో శక్తినివ్వండి మరియు SOL ని ప్రారంభించండి","solNotEnabled":"SOL ప్రారంభించబడలేదు","failedToFetch":"Failed to fetch the {{translate.feature}} feature status","featureSuccess":"{{translate.feature}} has been {{translate.featureText}}","updateFailed":"Failed to update the {{translate.feature}} status!"}},"companyName":"Contoso","header":{"appName":"Lynx DAM WEB UI","logout":"లాగౌట్","profile":"ప్రొఫైల్"},"pageNotFound":{"title":"404 - పేజి దొరకలేదు","message":"అయ్యో, మీరు అభ్యర్థించిన పేజీని మేము కనుగొనలేకపోయాము."},"tabs":{"dashboard":"Dashboard","devices":"Devices"},"user":{"login":{"heading":"ప్రవేశించండి","userName":"యూజర్పేరు","password":"పాస్వర్డ్","signIn":"సైన్ ఇన్ చేయండి","cancel":"రద్దు చేయండి"}},"errorFormat":"Error: {{message}}","errorCode":{"noResponse":"Oops, there was no response from the server.","notLoggedIn":"You need to login to call the service.","notAuthorized":"Invalid username or password.","notFound":"Oops, we were not able to find the service.","redirection":"Oops, we got a redirection error.","retryFailure":"Oops, we got a temporary error from the service but were unable to recover. Try again later.","unknown":"An unknown error occurred. {{message}}"},"protected":{"permissionDenied":"Permission {{permission}} is denied."},"settingsFlyout":{"title":"System settings","version":"Version {{version}}","viewRelNotes":"View release notes","theme":"Theme","changeTheme":"Change the application color theme","switchTheme":"Switch to {{nextTheme}} theme","apply":"Apply","cancel":"Cancel","close":"Close","flowing":"Flowing","start":"Start","stop":"Stop","stopped":"Stopped","simulationData":"Simulation data","loading":"Loading","simulationDescription":"Start or stop simulation of devices. Stopping device simulation will minimize the cost of the solution; no simulated telemetry will be sent to your IoT Hub and alerts will not be generated for simulated devices.","toggleError":"Error updating simulation status","setLogoError":"Error updating logo","simulationLoadError":"Error loading simulation status"},"refreshBar":{"refreshing":"Refreshing","lastRefreshed":"Last refreshed"},"fileInput":{"upload":"Upload"},"applicationSettings":{"nameAndLogo":"Name and logo","nameLogoDescription":"Edit logo and name in the site header.","replaceLogo":"Replace logo image","logoDescription":"Recommended logo size: 24 x 24 px.\\nMaximum logo size: 300 KB.\\nSupported file formats:\\n\\t.SVG\\n\\t.PNG\\n\\t.JPEG\\n\\t.JPG","applicationName":"Application name","currentLogo":"Current logo","edit":"Edit","checkmark":"Checkmark","uploadError":"Unable to upload file, please check the file type/size and try again.","error":"Error"},"auditLog":{"header":{"heading":"Audit Log Records"},"grid":{"column":{"auditappid":"Role ID","auditappiddescription":"A unique ID for each AMT Role","eventId":"Event ID","eventIddescription":"ID of an event of the application","initiatortype":"InitiatorType","auditapp":"Role Name","auditappdescription":"The role group name for each AMT functional area","event":"Event","eventdescription":"ID of an event of the application","initiator":"ప్రారంబికని","initiatordescription":"User ID performing action","time":"Device Time(UTC)","timedescription":"Server time to indicate the event occurance","mclocationtype":"MCLocationType","mclocationtypedescription":"Management console interface","netaddress":"Network Address","netaddressdescription":"Network address details","exstr":"Event Details","exstrdescription":"Extended data length details"},"footer":{"exporttocsv":{"title":"Export to CSV"},"gotopage":{"title":"Go to page"},"pagination":{"text1":"Page","text2":"of"}}}},"devices":{"searchPlaceholder":"Search devices...","noneFound":"No devices found.","refresh":"Refresh","exportToCsv":"Export to CSV","exportDefaultFileName":"Devices","grid":{"connected":"Connected","Name":"పేరు","uuids":"UUID లను","firmware":"Firmware","lastConnection":"Last connection","no":"No","offline":"Offline","simulated":"Simulated","status":"స్థితి","telemetry":"Telemetry","yes":"Yes","resultSuccess":"Success","resultFailure":"Failed","resultMessage":"Message","executionResultsLink":"Execution Results","result":"Result","Percentage":"Percent Complete","Inprogress":"In Progress","ViewResults":"View Results"},"flyouts":{"details":{"title":"Device Details","noDevice":"Oops, we were not able to find the device.","close":"Close","connected":"Connected","notConnected":"Disconnected","simulated":"Simulated","notSimulated":"Physical","diagnostics":{"title":"Diagnostics","description":"Diagnostic information from device","keyHeader":"Property","valueHeader":"Value","status":"Status","lastMessage":"Last message","message":"Message","showMessage":"Click here to see raw message"},"methods":{"title":"Methods","description":"All methods available for device","noneExist":"No methods found for this device."},"properties":{"title":"Properties","description":"Selected properties on device","keyHeader":"Property","valueHeader":"Value","noneExist":"No properties found for this device.","copy":"Copy","copyAllProperties":"Copy a list of all properties for the device","syncing":"{{reportedPropertyValue}} (Syncing {{desiredPropertyValue}})"},"tags":{"title":"Tags","description":"Tags applied to device","keyHeader":"Key","valueHeader":"Value","noneExist":"No tags found for this device."},"telemetry":{"title":"Telemetry"}},"delete":{"title":"Delete","header":"Delete device","description":"This action will delete the devices permanently from the platform.","confirmNo":"No, do not delete the selected physical devices.","confirmYes":"Yes, please delete the selected physical devices.","simulatedNotSupported":"Deleting simulated devices is not currently supported, this action will only be taken on the physical devices.","summaryHeader":"Summary","affected":"Affected devices","cancel":"Cancel","apply":"Delete","pending":"Deleting devices... ","applySuccess":"devices deleted successfully!","close":"Close"},"kvm":{"title":"KVM"},"jobs":{"title":"Jobs","noDevices":"Oops, we were not able to find any selected devices.","summaryHeader":"Summary","affected":"Affected devices","cancel":"Cancel","apply":"Apply","pending":"Submitting job...","applySuccess":"Job submitted successfully!","close":"Close","selectJob":"Select job","jobName":"Job Name","jobNameHint":"Enter job name","jobNameHelpMessage":"Only letters and numbers are allowed","viewStatus":"View job status","validation":{"required":"Is required"},"errorMsg":{"selectedType":"Must be of the selected type"},"schedule":"Schedule","scheduleHint":"Enter schedule as a cron expression","scheduleHelpMessage":"If schedule is empty, Immediate jobs are created.Use http://www.cronmaker.com/ for creating cron expressions","startTime":"Start Time","startTimeHint":"Enter start time","startTimeHelpMessage":"Only yyyy-MM-ddTHH:mm:ss","endTime":"End Time","endTimeHint":"Enter end time","endTimeHelpMessage":"Only yyyy-MM-ddTHH:mm:ss","jobType":"Job type","jobTypeHint":"Select job type","tags":{"radioLabel":"Tag","title":"Tags on selected devices","description":"Tags in common on selected devices","keyHeader":"Key","valueHeader":"Value","typeHeader":"Type","typeNumber":"Number","typeString":"Text","noneExist":"No common tags found for the selected devices.","add":"Add tag"},"methods":{"radioLabel":"Run method","title":"Run method","description":"All available methods for device or group of devices","methodName":"Method name","methodNameHint":"Select method","firmwareVersion":"Firmware Version","firmwareVersionHint":"1.0.1","firmwareUri":"Firmware URI","firmwareUriHint":"Enter firmware URI value","destinationPath":"Destination Folder","fileUpload":"Upload Files","selectFiles":"Select Files For Upload","destinationPathHint":"Enter a destination folder for files","filename":"Command","specifyFileName":"Specify command to execute on remote device","fileparams":"Command parameters","specifyFileParams":"Specify parameters for the command"},"properties":{"radioLabel":"Reconfigure","title":"Reconfigure","description":"Available properties and values to change","keyHeader":"Property","valueHeader":"Value","typeHeader":"Type","typeNumber":"Number","typeString":"Text","noneExist":"No common properties found for the selected devices.","syncing":"{{reportedPropertyValue}} (Syncing {{desiredPropertyValue}})"}},"new":{"contextMenuName":"New device","title":"New device","summaryHeader":"Provision summary","affected":"Devices to provision","cancel":"Cancel","apply":"Apply","pending":"Provisioning devices... ","applySuccess":"Devices provisioned successfully","simulatedRefreshMessage":"Simulated devices are created in the background on the server. Therefore, they may take a while to show up when the device list is refreshed.","close":"Close","validation":{"required":"Is required","greaterThanZero":"Must be greater than zero"},"count":{"label":"Number of devices"},"deviceType":{"label":"Device type","simulated":"Simulated","physical":"Physical"},"deviceId":{"label":"Device ID","hint":"Enter device ID ","sysGenerated":"System generated device IDs"},"deviceIdExample":{"label":"Device ID example","format":"{{deviceName}}-{#####}","deviceName":"{Device name}"},"deviceModel":{"label":"Device model","hint":"Select existing device type"},"authenticationType":{"label":"Authentication type","symmetric":"Symmetric key","x509":"X.509"},"authenticationKey":{"label":"Authentication key","generateKeys":"Auto generate keys","manualKeys":"Enter keys manually","hint":"Enter your key here","primaryKey":"Primary Key","primaryKeyConnection":"Connection string primary Key","secondaryKey":"Secondary Key","secondaryKeyConnection":"Connection string secondary Key","primaryThumbprint":"Primary thumbprint","secondaryThumbprint":"Secondary thumbprint"}},"SIMManagement":{"title":"SIM Management","provider":"Provider","summaryHeader":"Summary and instructions","here":"here","select":"Select...","header":{"telefonica":"As a Telefónica IoT customer you have the advantage of adding this feature to enrich automatically your Azure Remote Monitoring Solution with the connectivity data available in Telefónica IoT Connectivity Platform (Network Information, Data Consumption & Network Based Location)."},"description":{"telefonica":"This feature is in Preview. In order to sync your connectivity data into Azure Remote Monitoring Solution, please fill a request <1><0>url</0></1>, select the option “Azure Remote Monitoring” and include your contact data and we will automatically activate your account. \\n\\nIf you are not a Telefónica client yet and you want to enjoy this or other IoT Connectivity Cloud Ready services, you can contact us <1><0>url</0></1> and select the option “Connectivity”; we will be glad to help you."},"operator":{"telefonica":"Telefónica"}}}}}')},fr:{translations:JSON.parse('{"auditLog":{"header":{"heading":"Audit Log Records"},"grid":{"column":{"auditappid":"Role ID","auditappiddescription":"A unique ID for each AMT Role","eventId":"Event ID","eventIddescription":"ID of an event of the application","initiatortype":"InitiatorType","auditapp":"Role Name","auditappdescription":"The role group name for each AMT functional area","event":"Event","eventdescription":"ID of an event of the application","initiator":"ప్రారంబికని","initiatordescription":"User ID performing action","time":"Device Time(UTC)","timedescription":"Server time to indicate the event occurance","mclocationtype":"MCLocationType","mclocationtypedescription":"Management console interface","netaddress":"Network Address","netaddressdescription":"Network address details","exstr":"Event Details","exstrdescription":"Extended data length details"},"footer":{"exporttocsv":{"title":"Export to CSV"},"gotopage":{"title":"Go to page"},"pagination":{"text1":"Page","text2":"of"}}}},"devices":{"searchPlaceholder":"Search devices...","noneFound":"No devices found.","refresh":"Refresh","exportToCsv":"Export to CSV","exportDefaultFileName":"Devices","grid":{"connected":"Connected","Name":"Nom","uuids":"uuids","firmware":"Firmware","lastConnection":"Last connection","no":"No","offline":"Offline","simulated":"Simulated","status":"statut","telemetry":"Telemetry","yes":"Yes","resultSuccess":"Success","resultFailure":"Failed","resultMessage":"Message","executionResultsLink":"Execution Results","result":"Result","Percentage":"Percent Complete","Inprogress":"In Progress","ViewResults":"View Results"},"flyouts":{"details":{"title":"Device Details","noDevice":"Oops, we were not able to find the device.","close":"Close","connected":"Connected","notConnected":"Disconnected","simulated":"Simulated","notSimulated":"Physical","diagnostics":{"title":"Diagnostics","description":"Diagnostic information from device","keyHeader":"Property","valueHeader":"Value","status":"Status","lastMessage":"Last message","message":"Message","showMessage":"Click here to see raw message"},"methods":{"title":"Methods","description":"All methods available for device","noneExist":"No methods found for this device."},"properties":{"title":"Properties","description":"Selected properties on device","keyHeader":"Property","valueHeader":"Value","noneExist":"No properties found for this device.","copy":"Copy","copyAllProperties":"Copy a list of all properties for the device","syncing":"{{reportedPropertyValue}} (Syncing {{desiredPropertyValue}})"},"tags":{"title":"Tags","description":"Tags applied to device","keyHeader":"Key","valueHeader":"Value","noneExist":"No tags found for this device."},"telemetry":{"title":"Telemetry"}},"delete":{"title":"Delete","header":"Delete device","description":"This action will delete the devices permanently from the platform.","confirmNo":"No, do not delete the selected physical devices.","confirmYes":"Yes, please delete the selected physical devices.","simulatedNotSupported":"Deleting simulated devices is not currently supported, this action will only be taken on the physical devices.","summaryHeader":"Summary","affected":"Affected devices","cancel":"Cancel","apply":"Delete","pending":"Deleting devices... ","applySuccess":"devices deleted successfully!","close":"Close"},"kvm":{"title":"KVM"},"jobs":{"title":"Jobs","noDevices":"Oops, we were not able to find any selected devices.","summaryHeader":"Summary","affected":"Affected devices","cancel":"Cancel","apply":"Apply","pending":"Submitting job...","applySuccess":"Job submitted successfully!","close":"Close","selectJob":"Select job","jobName":"Job Name","jobNameHint":"Enter job name","jobNameHelpMessage":"Only letters and numbers are allowed","viewStatus":"View job status","validation":{"required":"Is required"},"errorMsg":{"selectedType":"Must be of the selected type"},"schedule":"Schedule","scheduleHint":"Enter schedule as a cron expression","scheduleHelpMessage":"If schedule is empty, Immediate jobs are created.Use http://www.cronmaker.com/ for creating cron expressions","startTime":"Start Time","startTimeHint":"Enter start time","startTimeHelpMessage":"Only yyyy-MM-ddTHH:mm:ss","endTime":"End Time","endTimeHint":"Enter end time","endTimeHelpMessage":"Only yyyy-MM-ddTHH:mm:ss","jobType":"Job type","jobTypeHint":"Select job type","tags":{"radioLabel":"Tag","title":"Tags on selected devices","description":"Tags in common on selected devices","keyHeader":"Key","valueHeader":"Value","typeHeader":"Type","typeNumber":"Number","typeString":"Text","noneExist":"No common tags found for the selected devices.","add":"Add tag"},"methods":{"radioLabel":"Run method","title":"Run method","description":"All available methods for device or group of devices","methodName":"Method name","methodNameHint":"Select method","firmwareVersion":"Firmware Version","firmwareVersionHint":"1.0.1","firmwareUri":"Firmware URI","firmwareUriHint":"Enter firmware URI value","destinationPath":"Destination Folder","fileUpload":"Upload Files","selectFiles":"Select Files For Upload","destinationPathHint":"Enter a destination folder for files","filename":"Command","specifyFileName":"Specify command to execute on remote device","fileparams":"Command parameters","specifyFileParams":"Specify parameters for the command"},"properties":{"radioLabel":"Reconfigure","title":"Reconfigure","description":"Available properties and values to change","keyHeader":"Property","valueHeader":"Value","typeHeader":"Type","typeNumber":"Number","typeString":"Text","noneExist":"No common properties found for the selected devices.","syncing":"{{reportedPropertyValue}} (Syncing {{desiredPropertyValue}})"}},"new":{"contextMenuName":"New device","title":"New device","summaryHeader":"Provision summary","affected":"Devices to provision","cancel":"Cancel","apply":"Apply","pending":"Provisioning devices... ","applySuccess":"Devices provisioned successfully","simulatedRefreshMessage":"Simulated devices are created in the background on the server. Therefore, they may take a while to show up when the device list is refreshed.","close":"Close","validation":{"required":"Is required","greaterThanZero":"Must be greater than zero"},"count":{"label":"Number of devices"},"deviceType":{"label":"Device type","simulated":"Simulated","physical":"Physical"},"deviceId":{"label":"Device ID","hint":"Enter device ID ","sysGenerated":"System generated device IDs"},"deviceIdExample":{"label":"Device ID example","format":"{{deviceName}}-{#####}","deviceName":"{Device name}"},"deviceModel":{"label":"Device model","hint":"Select existing device type"},"authenticationType":{"label":"Authentication type","symmetric":"Symmetric key","x509":"X.509"},"authenticationKey":{"label":"Authentication key","generateKeys":"Auto generate keys","manualKeys":"Enter keys manually","hint":"Enter your key here","primaryKey":"Primary Key","primaryKeyConnection":"Connection string primary Key","secondaryKey":"Secondary Key","secondaryKeyConnection":"Connection string secondary Key","primaryThumbprint":"Primary thumbprint","secondaryThumbprint":"Secondary thumbprint"}},"SIMManagement":{"title":"SIM Management","provider":"Provider","summaryHeader":"Summary and instructions","here":"here","select":"Select...","header":{"telefonica":"As a Telefónica IoT customer you have the advantage of adding this feature to enrich automatically your Azure Remote Monitoring Solution with the connectivity data available in Telefónica IoT Connectivity Platform (Network Information, Data Consumption & Network Based Location)."},"description":{"telefonica":"This feature is in Preview. In order to sync your connectivity data into Azure Remote Monitoring Solution, please fill a request <1><0>url</0></1>, select the option “Azure Remote Monitoring” and include your contact data and we will automatically activate your account. \\n\\nIf you are not a Telefónica client yet and you want to enjoy this or other IoT Connectivity Cloud Ready services, you can contact us <1><0>url</0></1> and select the option “Connectivity”; we will be glad to help you."},"operator":{"telefonica":"Telefónica"}}}}}')},es:{translations:JSON.parse('{"auditLog":{"header":{"heading":"Audit Log Records"},"grid":{"column":{"auditappid":"Role ID","auditappiddescription":"A unique ID for each AMT Role","eventId":"Event ID","eventIddescription":"ID of an event of the application","initiatortype":"InitiatorType","auditapp":"Role Name","auditappdescription":"The role group name for each AMT functional area","event":"Event","eventdescription":"ID of an event of the application","initiator":"ప్రారంబికని","initiatordescription":"User ID performing action","time":"Device Time(UTC)","timedescription":"Server time to indicate the event occurance","mclocationtype":"MCLocationType","mclocationtypedescription":"Management console interface","netaddress":"Network Address","netaddressdescription":"Network address details","exstr":"Event Details","exstrdescription":"Extended data length details"},"footer":{"exporttocsv":{"title":"Export to CSV"},"gotopage":{"title":"Go to page"},"pagination":{"text1":"Page","text2":"of"}}}},"devices":{"searchPlaceholder":"Search devices...","noneFound":"No devices found.","refresh":"Refresh","exportToCsv":"Export to CSV","exportDefaultFileName":"Devices","grid":{"connected":"Connected","Name":"nombre","uuids":"uuids","firmware":"Firmware","lastConnection":"Last connection","no":"No","offline":"Offline","simulated":"Simulated","status":"estado","telemetry":"Telemetry","yes":"Yes","resultSuccess":"Success","resultFailure":"Failed","resultMessage":"Message","executionResultsLink":"Execution Results","result":"Result","Percentage":"Percent Complete","Inprogress":"In Progress","ViewResults":"View Results"},"flyouts":{"details":{"title":"Device Details","noDevice":"Oops, we were not able to find the device.","close":"Close","connected":"Connected","notConnected":"Disconnected","simulated":"Simulated","notSimulated":"Physical","diagnostics":{"title":"Diagnostics","description":"Diagnostic information from device","keyHeader":"Property","valueHeader":"Value","status":"Status","lastMessage":"Last message","message":"Message","showMessage":"Click here to see raw message"},"methods":{"title":"Methods","description":"All methods available for device","noneExist":"No methods found for this device."},"properties":{"title":"Properties","description":"Selected properties on device","keyHeader":"Property","valueHeader":"Value","noneExist":"No properties found for this device.","copy":"Copy","copyAllProperties":"Copy a list of all properties for the device","syncing":"{{reportedPropertyValue}} (Syncing {{desiredPropertyValue}})"},"tags":{"title":"Tags","description":"Tags applied to device","keyHeader":"Key","valueHeader":"Value","noneExist":"No tags found for this device."},"telemetry":{"title":"Telemetry"}},"delete":{"title":"Delete","header":"Delete device","description":"This action will delete the devices permanently from the platform.","confirmNo":"No, do not delete the selected physical devices.","confirmYes":"Yes, please delete the selected physical devices.","simulatedNotSupported":"Deleting simulated devices is not currently supported, this action will only be taken on the physical devices.","summaryHeader":"Summary","affected":"Affected devices","cancel":"Cancel","apply":"Delete","pending":"Deleting devices... ","applySuccess":"devices deleted successfully!","close":"Close"},"kvm":{"title":"KVM"},"jobs":{"title":"Jobs","noDevices":"Oops, we were not able to find any selected devices.","summaryHeader":"Summary","affected":"Affected devices","cancel":"Cancel","apply":"Apply","pending":"Submitting job...","applySuccess":"Job submitted successfully!","close":"Close","selectJob":"Select job","jobName":"Job Name","jobNameHint":"Enter job name","jobNameHelpMessage":"Only letters and numbers are allowed","viewStatus":"View job status","validation":{"required":"Is required"},"errorMsg":{"selectedType":"Must be of the selected type"},"schedule":"Schedule","scheduleHint":"Enter schedule as a cron expression","scheduleHelpMessage":"If schedule is empty, Immediate jobs are created.Use http://www.cronmaker.com/ for creating cron expressions","startTime":"Start Time","startTimeHint":"Enter start time","startTimeHelpMessage":"Only yyyy-MM-ddTHH:mm:ss","endTime":"End Time","endTimeHint":"Enter end time","endTimeHelpMessage":"Only yyyy-MM-ddTHH:mm:ss","jobType":"Job type","jobTypeHint":"Select job type","tags":{"radioLabel":"Tag","title":"Tags on selected devices","description":"Tags in common on selected devices","keyHeader":"Key","valueHeader":"Value","typeHeader":"Type","typeNumber":"Number","typeString":"Text","noneExist":"No common tags found for the selected devices.","add":"Add tag"},"methods":{"radioLabel":"Run method","title":"Run method","description":"All available methods for device or group of devices","methodName":"Method name","methodNameHint":"Select method","firmwareVersion":"Firmware Version","firmwareVersionHint":"1.0.1","firmwareUri":"Firmware URI","firmwareUriHint":"Enter firmware URI value","destinationPath":"Destination Folder","fileUpload":"Upload Files","selectFiles":"Select Files For Upload","destinationPathHint":"Enter a destination folder for files","filename":"Command","specifyFileName":"Specify command to execute on remote device","fileparams":"Command parameters","specifyFileParams":"Specify parameters for the command"},"properties":{"radioLabel":"Reconfigure","title":"Reconfigure","description":"Available properties and values to change","keyHeader":"Property","valueHeader":"Value","typeHeader":"Type","typeNumber":"Number","typeString":"Text","noneExist":"No common properties found for the selected devices.","syncing":"{{reportedPropertyValue}} (Syncing {{desiredPropertyValue}})"}},"new":{"contextMenuName":"New device","title":"New device","summaryHeader":"Provision summary","affected":"Devices to provision","cancel":"Cancel","apply":"Apply","pending":"Provisioning devices... ","applySuccess":"Devices provisioned successfully","simulatedRefreshMessage":"Simulated devices are created in the background on the server. Therefore, they may take a while to show up when the device list is refreshed.","close":"Close","validation":{"required":"Is required","greaterThanZero":"Must be greater than zero"},"count":{"label":"Number of devices"},"deviceType":{"label":"Device type","simulated":"Simulated","physical":"Physical"},"deviceId":{"label":"Device ID","hint":"Enter device ID ","sysGenerated":"System generated device IDs"},"deviceIdExample":{"label":"Device ID example","format":"{{deviceName}}-{#####}","deviceName":"{Device name}"},"deviceModel":{"label":"Device model","hint":"Select existing device type"},"authenticationType":{"label":"Authentication type","symmetric":"Symmetric key","x509":"X.509"},"authenticationKey":{"label":"Authentication key","generateKeys":"Auto generate keys","manualKeys":"Enter keys manually","hint":"Enter your key here","primaryKey":"Primary Key","primaryKeyConnection":"Connection string primary Key","secondaryKey":"Secondary Key","secondaryKeyConnection":"Connection string secondary Key","primaryThumbprint":"Primary thumbprint","secondaryThumbprint":"Secondary thumbprint"}},"SIMManagement":{"title":"SIM Management","provider":"Provider","summaryHeader":"Summary and instructions","here":"here","select":"Select...","header":{"telefonica":"As a Telefónica IoT customer you have the advantage of adding this feature to enrich automatically your Azure Remote Monitoring Solution with the connectivity data available in Telefónica IoT Connectivity Platform (Network Information, Data Consumption & Network Based Location)."},"description":{"telefonica":"This feature is in Preview. In order to sync your connectivity data into Azure Remote Monitoring Solution, please fill a request <1><0>url</0></1>, select the option “Azure Remote Monitoring” and include your contact data and we will automatically activate your account. \\n\\nIf you are not a Telefónica client yet and you want to enjoy this or other IoT Connectivity Cloud Ready services, you can contact us <1><0>url</0></1> and select the option “Connectivity”; we will be glad to help you."},"operator":{"telefonica":"Telefónica"}}}}}')}};Ne.use(et).use(Ye).init({resources:tt,ns:["translations"],defaultNS:"translations",debug:!1,fallbackLng:"en",interpolation:{escapeValue:!1,formatSeparator:","},react:{wait:!1}}).catch((()=>console.info("error occured"))),Ne.changeLanguage(navigator.language).catch((()=>console.info("error occured")));const nt=new URL(window.location.href),rt=new URLSearchParams(nt.search);(0,a.render)(r.createElement(P,{autoConnect:!1,deviceId:rt.get("deviceId"),mpsServer:rt.get("mpsServer")+"/relay",authToken:"authorization",mouseDebounceTime:200,canvasHeight:"100%",canvasWidth:"100%"}),document.querySelector("#kvm"))}},__webpack_module_cache__={};function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var n=__webpack_module_cache__[e]={id:e,exports:{}};return __webpack_modules__[e](n,n.exports,__webpack_require__),n.exports}__webpack_require__.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(t,{a:t}),t},__webpack_require__.d=(e,t)=>{for(var n in t)__webpack_require__.o(t,n)&&!__webpack_require__.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__=__webpack_require__(410);return __webpack_exports__})()}));
3
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,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SUFBSSxJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxLQUFLLElBQUksS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLElBQUksS0FBSyxLQUFLLEtBQUssS0FBSyxJQUFJLEtBQUssSUFBSSxLQUFLLElBQUksS0FBSyxLQUFLLElBQUksS0FBSyxLQUFLdkgsS0FBS3dILG9CQUFvQixDQUFDLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFL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QUU2UixVQUFVeFMsR0FBRyxJQUFJQSxHQUFHLEtBQUs0QixFQUFFNUIsRUFBRSxJQUFJQSxHQUFHLEtBQUtBLEdBQUcsTUFBTTRCLEVBQUU1QixFQUFFLE9BQU8sSUFBSUEsSUFBSTRCLEVBQUUsT0FBTyxJQUFJNUIsSUFBSTRCLEVBQUUsT0FBTyxLQUFLNUIsSUFBSTRCLEVBQUUsT0FBTyxLQUFLNUIsSUFBSTRCLEVBQUUsT0FBTyxLQUFLNUIsSUFBSTRCLEVBQUUsT0FBTyxLQUFLNUIsSUFBSTRCLEVBQUUsT0FBTyxLQUFLNUIsSUFBSTRCLEVBQUUsT0FBTyxLQUFLNUIsSUFBSTRCLEVBQUUsT0FBTyxLQUFLNUIsSUFBSTRCLEVBQUUsT0FBTyxLQUFLNUIsSUFBSTRCLEVBQUUsT0FBTyxLQUFLNUIsSUFBSTRCLEVBQUUsT0FBTyxLQUFLNUIsSUFBSTRCLEVBQUUsT0FBTyxLQUFLNUIsSUFBSTRCLEVBQUUsT0FBTyxLQUFLNUIsSUFBSTRCLEVBQUUsT0FBTyxLQUFLNUIsSUFBSTRCLEVBQUUsT0FBTyxLQUFLNUIsSUFBSTRCLEVBQUUsT0FBTyxLQUFLNUIsSUFBSTRCLEVBQUUsT0FBTzVCLEdBQUcsSUFBSUEsR0FBRyxNQUFNNEIsRUFBRTVCLEVBQUUsSUFBSSxNQUFNQSxJQUFJNEIsRUFBRSxJQUFJLE1BQU01QixJQUFJNEIsRUFBRSxJQUFJLE1BQU01QixJQUFJNEIsRUFBRSxJQUFJLE1BQU01QixJQUFJNEIsRUFBRSxJQUFJLE1BQU01QixJQUFJNEIsRUFBRSxJQUFJLE1BQU01QixJQUFJNEIsRUFBRSxJQUFJLE1BQU01QixJQUFJNEIsRUFBRSxJQUFJLE1BQU01QixJQUFJNEIsRUFBRSxJQUFJLE1BQU01QixJQUFJNEIsRUFBRSxJQUFJLE1BQU01QixJQUFJNEIsRUFBRSxJQUFJLE1BQU01QixJQUFJNEIsRUFBRSxJQUFJLE1BQU01QixJQUFJNEIsRUFBRSxJQUFJLE1BQU01QixJQUFJNEIsRUFBRSxJQUFJLE1BQU01QixJQUFJNEIsRUFBRSxJQUFJLE1BQU01QixJQUFJNEIsRUFBRSxJQUFJ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QUdDLE1BQU0sR0FBR0MsT0FBTyxHQUFHQyxLQUFLLEdBQUdDLElBQUksR0FBR0MsSUFBSSxHQUFHQyxLQUFLLEdBQUdDLFlBQVksSUFBSUMsYUFBYSxJQUFJQyxPQUFPRixZQUFZQyxhQUFhRSxNQUFNLEVBQUVDLEtBQUssRUFBRUMsTUFBTSxFQUFFQyxvQkFBb0IsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksRUFBRSxHQUFHQyxtQkFBbUIsQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxJQUFJQyxvQkFBb0IsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxNQUFNLE1BQU0sTUFBTSxFQUFFLEdBQUdDLG1CQUFtQixDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxTQUFTQyxjQUFjbGhCLEVBQUVGLEdBQUcsSUFBSVcsRUFBRWlCLEVBQUVRLEVBQUVDLEVBQUVVLEVBQUVDLEVBQUVPLEVBQUVDLEVB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VUFBVSxXQUFXLFdBQVcsV0FBVyxVQUFVLFdBQVcsV0FBVyxXQUFXLFdBQVcsU0FBUyxXQUFXLFdBQVcsV0FBVyxVQUFVLFdBQVcsV0FBVyxXQUFXLFVBQVUsV0FBVyxXQUFXLFdBQVcsVUFBVSxXQUFXLFdBQVcsV0FBVyxVQUFVLFdBQVcsV0FBVyxXQUFXLFVBQVUsV0FBVyxXQUFXLFdBQVcsVUFBVSxXQUFXLFdBQVcsV0FBVyxVQUFVLFdBQVcsV0FBVyxXQUFXLFVBQVUsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxVQUFVLFdBQVcsV0FBVyxXQUFXLFVBQVUsV0FBVyxXQUFXLFdBQVcsVUFBVSxXQUFXLFdBQVcsV0FBVyxVQUFVLFdBQVcsV0FBVyxXQUFXLFVBQVUsV0FBVyxXQUFXLFdBQVcsVUFBVSxXQUFXLFdBQVcsV0FBVyxXQUFXLFNBQVMsV0FBVyxXQUFXLFdBQVcsU0FBUyxXQUFXLFdBQVcsV0FBVyxVQUFVLFdBQVcsV0FBVyxXQUFXLFVBQVUsV0FBVyxXQUFXLFdBQVcsVUFBVSxXQUFXLFdBQVcsV0FBVyxVQUFVLFdBQVcsV0FBVyxXQUFXLFVBQVUsV0FBVyxXQUFXLFdBQVcsVUFBVSxXQUFXLFdBQVcsV0FBVyxVQUFVLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsVUFBVSxXQUFXLFdBQVcsV0FBVyxVQUFVLFdBQVcsV0FBVyxXQUFXLFVBQVUsV0FBVyxXQUFXLFdBQVcsVUFBVSxXQUFXLFdBQVcsV0FBVyxVQUFVLFdBQVcsV0FBVyxXQUFXLFVBQVUsV0FBVyxXQUFXLFdBQVcsV0FBVyxTQUFTLFdBQVcsV0FBVyxXQUFXLFNBQVMsV0FBVyxXQUFXLFdBQVcsVUFBVSxXQUFXLFdBQVcsV0FBVyxVQUFVLFdBQVcsV0FBVyxXQUFXLFVBQVUsV0FBVyxXQUFXLFdBQVcsVUFBVSxXQUFXLFdBQVcsV0FBVyxVQUFVLFdBQVcsV0FBVyxXQUFXLFVBQVUsV0FBVyxXQUFXLFdBQVcsVUFBVSxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFNBQVMs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RSxFQUFTMDBFLEtBQ2pDLElBQUksSUFBSXpwRCxLQUFPeXBELEVBQ1hKLG9CQUFvQjd4RSxFQUFFaXlFLEVBQVl6cEQsS0FBU3FwRCxvQkFBb0I3eEUsRUFBRXpDLEVBQVNpckIsSUFDNUUxYyxPQUFPNlgsZUFBZXBtQixFQUFTaXJCLEVBQUssQ0FBRTVFLFlBQVksRUFBTUMsSUFBS291RCxFQUFXenBELE1DSjNFcXBELG9CQUFvQjd4RSxFQUFJLENBQUM2c0QsRUFBSzhKLElBQVU3cUQsT0FBTy9LLFVBQVUraUIsZUFBZTlpQixLQUFLNnJELEVBQUs4SixHQ0NsRmtiLG9CQUFvQmx4RSxFQUFLcEQsSUFDSCxvQkFBWHdtQixRQUEwQkEsT0FBT0MsYUFDMUNsWSxPQUFPNlgsZUFBZXBtQixFQUFTd21CLE9BQU9DLFlBQWEsQ0FBRUMsTUFBTyxXQUU3RG5ZLE9BQU82WCxlQUFlcG1CLEVBQVMsYUFBYyxDQUFFMG1CLE9BQU8sS0NGdkQsSUFBSUMsb0JBQXNCMnRELG9CQUFvQiIsInNvdXJjZXMiOlsid2VicGFjazovL3VpLXRvb2xraXQvd2VicGFjay91bml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uIiwid2VicGFjazovL3VpLXRvb2xraXQvLi9ub2RlX21vZHVsZXMvQG9wZW4tYW10LWNsb3VkLXRvb2xraXQvdWktdG9vbGtpdC9idW5kbGVzL2NvcmUuYnVuZGxlLmpzIiwid2VicGFjazovL3VpLXRvb2xraXQvLi9zcmMvcmVhY3Rqcy9LVk0vQ29ubmVjdEJ1dHRvbi5zY3NzIiwid2VicGFjazovL3VpLXRvb2xraXQvLi9zcmMvcmVhY3Rqcy9LVk0vRW5jb2RpbmdPcHRpb25zLnNjc3MiLCJ3ZWJwYWNrOi8vdWktdG9vbGtpdC8uL3NyYy9yZWFjdGpzL0tWTS9IZWFkZXIuc2NzcyIsIndlYnBhY2s6Ly91aS10b29sa2l0Ly4vc3JjL3JlYWN0anMvS1ZNL1B1cmVDYW52YXMuc2NzcyIsIndlYnBhY2s6Ly91aS10b29sa2l0Ly4vc3JjL3JlYWN0anMvS1ZNL1VJLnNjc3MiLCJ3ZWJwYWNrOi8vdWktdG9vbGtpdC8uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanMiLCJ3ZWJwYWNrOi8vdWktdG9vbGtpdC8uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzIiwid2VicGFjazovL3VpLXRvb2xraXQvLi9ub2RlX21vZHVsZXMvb2JqZWN0LWFzc2lnbi9pbmRleC5qcyIsIndlYnBhY2s6Ly91aS10b29sa2l0Ly4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9janMvcmVhY3QtZG9tLnByb2R1Y3Rpb24ubWluLmpzIiwid2VicGFjazovL3VpLXRvb2xraXQvLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2luZGV4LmpzIiwid2VicGFjazovL3VpLXRvb2xraXQvLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL25vZGVfbW9kdWxlcy9zY2hlZHVsZXIvY2pzL3NjaGVkdWxlci5wcm9kdWN0aW9uLm1pbi5qcyIsIndlYnBhY2s6Ly91aS10b29sa2l0Ly4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9ub2RlX21vZHVsZXMvc2NoZWR1bGVyL2luZGV4LmpzIiwid2VicGFjazovL3VpLXRvb2xraXQvLi9ub2RlX21vZHVsZXMvcmVhY3QvY2pzL3JlYWN0LnByb2R1Y3Rpb24ubWluLmpzIiwid2VicGFjazovL3VpLXRvb2xraXQvLi9ub2RlX21vZHVsZXMvcmVhY3QvaW5kZXguanMiLCJ3ZWJwYWNrOi8vdWktdG9vbGtpdC8uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qcyIsIndlYnBhY2s6Ly91aS10b29sa2l0Ly4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0QnlTZWxlY3Rvci5qcyIsIndlYnBhY2s6Ly91aS10b29sa2l0Ly4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0U3R5bGVFbGVtZW50LmpzIiwid2VicGFjazovL3VpLXRvb2xraXQvLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMuanMiLCJ3ZWJwYWNrOi8vdWktdG9vbGtpdC8uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlRG9tQVBJLmpzIiwid2VicGFjazovL3VpLXRvb2xraXQvLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZVRhZ1RyYW5zZm9ybS5qcyIsIndlYnBhY2s6Ly91aS10b29sa2l0Ly4vc3JjL3JlYWN0anMvS1ZNL0Nvbm5lY3RCdXR0b24uc2Nzcz80NmNiIiwid2VicGFjazovL3VpLXRvb2xraXQvLi9zcmMvcmVhY3Rqcy9LVk0vQ29ubmVjdEJ1dHRvbi50c3giLCJ3ZWJwYWNrOi8vdWktdG9vbGtpdC8uL3NyYy9yZWFjdGpzL0tWTS9FbmNvZGluZ09wdGlvbnMuc2Nzcz9jYjM3Iiwid2VicGFjazovL3VpLXRvb2xraXQvLi9zcmMvcmVhY3Rqcy9LVk0vRW5jb2RpbmdPcHRpb25zLnRzeCIsIndlYnBhY2s6Ly91aS10b29sa2l0Ly4vc3JjL3JlYWN0anMvS1ZNL0Rlc2t0b3BTZXR0aW5ncy50c3giLCJ3ZWJwYWNrOi8vdWktdG9vbGtpdC8uL3NyYy9yZWFjdGpzL0tWTS9IZWFkZXIuc2Nzcz83YTVmIiwid2VicGFjazovL3VpLXRvb2xraXQvLi9zcmMvcmVhY3Rqcy9LVk0vSGVhZGVyLnRzeCIsIndlYnBhY2s6Ly91aS10b29sa2l0Ly4vc3JjL3JlYWN0anMvc2hhcmVkL1V0aWxpdGllcy50cyIsIndlYnBhY2s6Ly91aS10b29sa2l0Ly4vc3JjL3JlYWN0anMvS1ZNL1B1cmVDYW52YXMuc2Nzcz8zNTY4Iiwid2VicGFjazovL3VpLXRvb2xraXQvLi9zcmMvcmVhY3Rqcy9LVk0vUHVyZUNhbnZhcy50c3giLCJ3ZWJwYWNrOi8vdWktdG9vbGtpdC8uL3NyYy9yZWFjdGpzL0tWTS9VSS5zY3NzP2IwNzciLCJ3ZWJwYWNrOi8vdWktdG9vbGtpdC8uL3NyYy9yZWFjdGpzL0tWTS9VSS50c3giLCJ3ZWJwYWNrOi8vdWktdG9vbGtpdC8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS90eXBlb2YuanMiLCJ3ZWJwYWNrOi8vdWktdG9vbGtpdC8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9kZWZpbmVQcm9wZXJ0eS5qcyIsIndlYnBhY2s6Ly91aS10b29sa2l0Ly4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL29iamVjdFNwcmVhZC5qcyIsIndlYnBhY2s6Ly91aS10b29sa2l0Ly4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2NsYXNzQ2FsbENoZWNrLmpzIiwid2VicGFjazovL3VpLXRvb2xraXQvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY3JlYXRlQ2xhc3MuanMiLCJ3ZWJwYWNrOi8vdWktdG9vbGtpdC8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQuanMiLCJ3ZWJwYWNrOi8vdWktdG9vbGtpdC8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuLmpzIiwid2VicGFjazovL3VpLXRvb2xraXQvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZ2V0UHJvdG90eXBlT2YuanMiLCJ3ZWJwYWNrOi8vdWktdG9vbGtpdC8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9zZXRQcm90b3R5cGVPZi5qcyIsIndlYnBhY2s6Ly91aS10b29sa2l0Ly4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2luaGVyaXRzLmpzIiwid2VicGFjazovL3VpLXRvb2xraXQvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXJyYXlMaWtlVG9BcnJheS5qcyIsIndlYnBhY2s6Ly91aS10b29sa2l0Ly4vbm9kZV9tb2R1bGVzL2kxOG5leHQvZGlzdC9lc20vaTE4bmV4dC5qcyIsIndlYnBhY2s6Ly91aS10b29sa2l0Ly4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3NsaWNlZFRvQXJyYXkuanMiLCJ3ZWJwYWNrOi8vdWktdG9vbGtpdC8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9hcnJheVdpdGhIb2xlcy5qcyIsIndlYnBhY2s6Ly91aS10b29sa2l0Ly4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2l0ZXJhYmxlVG9BcnJheUxpbWl0LmpzIiwid2VicGFjazovL3VpLXRvb2xraXQvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkuanMiLCJ3ZWJwYWNrOi8vdWktdG9vbGtpdC8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9ub25JdGVyYWJsZVJlc3QuanMiLCJ3ZWJwYWNrOi8vdWktdG9vbGtpdC8uL25vZGVfbW9kdWxlcy9pMThuZXh0LWJyb3dzZXItbGFuZ3VhZ2VkZXRlY3Rvci9kaXN0L2VzbS9pMThuZXh0QnJvd3Nlckxhbmd1YWdlRGV0ZWN0b3IuanMiLCJ3ZWJwYWNrOi8vdWktdG9vbGtpdC8uL25vZGVfbW9kdWxlcy9yZWFjdC1pMThuZXh0L2Rpc3QvZXMvY29udGV4dC5qcyIsIndlYnBhY2s6Ly91aS10b29sa2l0Ly4vc3JjL2kxOG4udHMiLCJ3ZWJwYWNrOi8vdWktdG9vbGtpdC8uL3NyYy9yZWFjdGpzL0tWTS9pbmRleC50c3giLCJ3ZWJwYWNrOi8vdWktdG9vbGtpdC93ZWJwYWNrL2Jvb3RzdHJhcCIsIndlYnBhY2s6Ly91aS10b29sa2l0L3dlYnBhY2svcnVudGltZS9jb21wYXQgZ2V0IGRlZmF1bHQgZXhwb3J0Iiwid2VicGFjazovL3VpLXRvb2xraXQvd2VicGFjay9ydW50aW1lL2RlZmluZSBwcm9wZXJ0eSBnZXR0ZXJzIiwid2VicGFjazovL3VpLXRvb2xraXQvd2VicGFjay9ydW50aW1lL2hhc093blByb3BlcnR5IHNob3J0aGFuZCIsIndlYnBhY2s6Ly91aS10b29sa2l0L3dlYnBhY2svcnVudGltZS9tYWtlIG5hbWVzcGFjZSBvYmplY3QiLCJ3ZWJwYWNrOi8vdWktdG9vbGtpdC93ZWJwYWNrL3N0YXJ0dXAiXSwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uIHdlYnBhY2tVbml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uKHJvb3QsIGZhY3RvcnkpIHtcblx0aWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgPT09ICdvYmplY3QnKVxuXHRcdG1vZHVsZS5leHBvcnRzID0gZmFjdG9yeSgpO1xuXHRlbHNlIGlmKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZClcblx0XHRkZWZpbmUoW10sIGZhY3RvcnkpO1xuXHRlbHNlIGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0Jylcblx0XHRleHBvcnRzW1widWktdG9vbGtpdFwiXSA9IGZhY3RvcnkoKTtcblx0ZWxzZVxuXHRcdHJvb3RbXCJ1aS10b29sa2l0XCJdID0gZmFjdG9yeSgpO1xufSkoc2VsZiwgZnVuY3Rpb24oKSB7XG5yZXR1cm4gIiwiLyohIEZvciBsaWNlbnNlIGluZm9ybWF0aW9uIHBsZWFzZSBzZWUgY29yZS5idW5kbGUuanMuTElDRU5TRS50eHQgKi9cclxuIWZ1bmN0aW9uKHQsZSl7XCJvYmplY3RcIj09dHlwZW9mIGV4cG9ydHMmJlwib2JqZWN0XCI9PXR5cGVvZiBtb2R1bGU/bW9kdWxlLmV4cG9ydHM9ZSgpOlwiZnVuY3Rpb25cIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoW10sZSk6XCJvYmplY3RcIj09dHlwZW9mIGV4cG9ydHM/ZXhwb3J0c1tcInVpLXRvb2xraXQvY29yZVwiXT1lKCk6dFtcInVpLXRvb2xraXQvY29yZVwiXT1lKCl9KHNlbGYsKGZ1bmN0aW9uKCl7cmV0dXJuKCgpPT57dmFyIF9fd2VicGFja19tb2R1bGVzX189ezQ4Nzp0PT57dmFyIGU9e3V0Zjg6e3N0cmluZ1RvQnl0ZXM6ZnVuY3Rpb24odCl7cmV0dXJuIGUuYmluLnN0cmluZ1RvQnl0ZXModW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KHQpKSl9LGJ5dGVzVG9TdHJpbmc6ZnVuY3Rpb24odCl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChlc2NhcGUoZS5iaW4uYnl0ZXNUb1N0cmluZyh0KSkpfX0sYmluOntzdHJpbmdUb0J5dGVzOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bXSxhPTA7YTx0Lmxlbmd0aDthKyspZS5wdXNoKDI1NSZ0LmNoYXJDb2RlQXQoYSkpO3JldHVybiBlfSxieXRlc1RvU3RyaW5nOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bXSxhPTA7YTx0Lmxlbmd0aDthKyspZS5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUodFthXSkpO3JldHVybiBlLmpvaW4oXCJcIil9fX07dC5leHBvcnRzPWV9LDEyOnQ9Pnt2YXIgZSxhO2U9XCJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvXCIsYT17cm90bDpmdW5jdGlvbih0LGUpe3JldHVybiB0PDxlfHQ+Pj4zMi1lfSxyb3RyOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ8PDMyLWV8dD4+PmV9LGVuZGlhbjpmdW5jdGlvbih0KXtpZih0LmNvbnN0cnVjdG9yPT1OdW1iZXIpcmV0dXJuIDE2NzExOTM1JmEucm90bCh0LDgpfDQyNzgyNTUzNjAmYS5yb3RsKHQsMjQpO2Zvcih2YXIgZT0wO2U8dC5sZW5ndGg7ZSsrKXRbZV09YS5lbmRpYW4odFtlXSk7cmV0dXJuIHR9LHJhbmRvbUJ5dGVzOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bXTt0PjA7dC0tKWUucHVzaChNYXRoLmZsb29yKDI1NipNYXRoLnJhbmRvbSgpKSk7cmV0dXJuIGV9LGJ5dGVzVG9Xb3JkczpmdW5jdGlvbih0KXtmb3IodmFyIGU9W10sYT0wLHM9MDthPHQubGVuZ3RoO2ErKyxzKz04KWVbcz4+PjVdfD10W2FdPDwyNC1zJTMyO3JldHVybiBlfSx3b3Jkc1RvQnl0ZXM6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPVtdLGE9MDthPDMyKnQubGVuZ3RoO2ErPTgpZS5wdXNoKHRbYT4+PjVdPj4+MjQtYSUzMiYyNTUpO3JldHVybiBlfSxieXRlc1RvSGV4OmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bXSxhPTA7YTx0Lmxlbmd0aDthKyspZS5wdXNoKCh0W2FdPj4+NCkudG9TdHJpbmcoMTYpKSxlLnB1c2goKDE1JnRbYV0pLnRvU3RyaW5nKDE2KSk7cmV0dXJuIGUuam9pbihcIlwiKX0saGV4VG9CeXRlczpmdW5jdGlvbih0KXtmb3IodmFyIGU9W10sYT0wO2E8dC5sZW5ndGg7YSs9MillLnB1c2gocGFyc2VJbnQodC5zdWJzdHIoYSwyKSwxNikpO3JldHVybiBlfSxieXRlc1RvQmFzZTY0OmZ1bmN0aW9uKHQpe2Zvcih2YXIgYT1bXSxzPTA7czx0Lmxlbmd0aDtzKz0zKWZvcih2YXIgbz10W3NdPDwxNnx0W3MrMV08PDh8dFtzKzJdLGk9MDtpPDQ7aSsrKTgqcys2Kmk8PTgqdC5sZW5ndGg/YS5wdXNoKGUuY2hhckF0KG8+Pj42KigzLWkpJjYzKSk6YS5wdXNoKFwiPVwiKTtyZXR1cm4gYS5qb2luKFwiXCIpfSxiYXNlNjRUb0J5dGVzOmZ1bmN0aW9uKHQpe3Q9dC5yZXBsYWNlKC9bXkEtWjAtOStcXC9dL2dpLFwiXCIpO2Zvcih2YXIgYT1bXSxzPTAsbz0wO3M8dC5sZW5ndGg7bz0rK3MlNCkwIT1vJiZhLnB1c2goKGUuaW5kZXhPZih0LmNoYXJBdChzLTEpKSZNYXRoLnBvdygyLC0yKm8rOCktMSk8PDIqb3xlLmluZGV4T2YodC5jaGFyQXQocykpPj4+Ni0yKm8pO3JldHVybiBhfX0sdC5leHBvcnRzPWF9LDczODp0PT57ZnVuY3Rpb24gZSh0KXtyZXR1cm4hIXQuY29uc3RydWN0b3ImJlwiZnVuY3Rpb25cIj09dHlwZW9mIHQuY29uc3RydWN0b3IuaXNCdWZmZXImJnQuY29uc3RydWN0b3IuaXNCdWZmZXIodCl9dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsIT10JiYoZSh0KXx8ZnVuY3Rpb24odCl7cmV0dXJuXCJmdW5jdGlvblwiPT10eXBlb2YgdC5yZWFkRmxvYXRMRSYmXCJmdW5jdGlvblwiPT10eXBlb2YgdC5zbGljZSYmZSh0LnNsaWNlKDAsMCkpfSh0KXx8ISF0Ll9pc0J1ZmZlcil9fSw1Njg6KHQsZSxhKT0+e3ZhciBzLG8saSxyLG47cz1hKDEyKSxvPWEoNDg3KS51dGY4LGk9YSg3MzgpLHI9YSg0ODcpLmJpbiwobj1mdW5jdGlvbih0LGUpe3QuY29uc3RydWN0b3I9PVN0cmluZz90PWUmJlwiYmluYXJ5XCI9PT1lLmVuY29kaW5nP3Iuc3RyaW5nVG9CeXRlcyh0KTpvLnN0cmluZ1RvQnl0ZXModCk6aSh0KT90PUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHQsMCk6QXJyYXkuaXNBcnJheSh0KXx8dC5jb25zdHJ1Y3Rvcj09PVVpbnQ4QXJyYXl8fCh0PXQudG9TdHJpbmcoKSk7Zm9yKHZhciBhPXMuYnl0ZXNUb1dvcmRzKHQpLGw9OCp0Lmxlbmd0aCxoPTE3MzI1ODQxOTMsYz0tMjcxNzMzODc5LHA9LTE3MzI1ODQxOTQsZD0yNzE3MzM4Nzgsdj0wO3Y8YS5sZW5ndGg7disrKWFbdl09MTY3MTE5MzUmKGFbdl08PDh8YVt2XT4+PjI0KXw0Mjc4MjU1MzYwJihhW3ZdPDwyNHxhW3ZdPj4+OCk7YVtsPj4+NV18PTEyODw8bCUzMixhWzE0KyhsKzY0Pj4+OTw8NCldPWw7dmFyIGI9bi5fZmYsdT1uLl9nZyxmPW4uX2hoLGc9bi5faWk7Zm9yKHY9MDt2PGEubGVuZ3RoO3YrPTE2KXt2YXIgUz1oLG09YyxfPXAsQz1kO2g9YihoLGMscCxkLGFbdiswXSw3LC02ODA4NzY5MzYpLGQ9YihkLGgsYyxwLGFbdisxXSwxMiwtMzg5NTY0NTg2KSxwPWIocCxkLGgsYyxhW3YrMl0sMTcsNjA2MTA1ODE5KSxjPWIoYyxwLGQsaCxhW3YrM10sMjIsLTEwNDQ1MjUzMzApLGg9YihoLGMscCxkLGFbdis0XSw3LC0xNzY0MTg4OTcpLGQ9YihkLGgsYyxwLGFbdis1XSwxMiwxMjAwMDgwNDI2KSxwPWIocCxkLGgsYyxhW3YrNl0sMTcsLTE0NzMyMzEzNDEpLGM9YihjLHAsZCxoLGFbdis3XSwyMiwtNDU3MDU5ODMpLGg9YihoLGMscCxkLGFbdis4XSw3LDE3NzAwMzU0MTYpLGQ9YihkLGgsYyxwLGFbdis5XSwxMiwtMTk1ODQxNDQxNykscD1iKHAsZCxoLGMsYVt2KzEwXSwxNywtNDIwNjMpLGM9YihjLHAsZCxoLGFbdisxMV0sMjIsLTE5OTA0MDQxNjIpLGg9YihoLGMscCxkLGFbdisxMl0sNywxODA0NjAzNjgyKSxkPWIoZCxoLGMscCxhW3YrMTNdLDEyLC00MDM0MTEwMSkscD1iKHAsZCxoLGMsYVt2KzE0XSwxNywtMTUwMjAwMjI5MCksaD11KGgsYz1iKGMscCxkLGgsYVt2KzE1XSwyMiwxMjM2NTM1MzI5KSxwLGQsYVt2KzFdLDUsLTE2NTc5NjUxMCksZD11KGQsaCxjLHAsYVt2KzZdLDksLTEwNjk1MDE2MzIpLHA9dShwLGQsaCxjLGFbdisxMV0sMTQsNjQzNzE3NzEzKSxjPXUoYyxwLGQsaCxhW3YrMF0sMjAsLTM3Mzg5NzMwMiksaD11KGgsYyxwLGQsYVt2KzVdLDUsLTcwMTU1ODY5MSksZD11KGQsaCxjLHAsYVt2KzEwXSw5LDM4MDE2MDgzKSxwPXUocCxkLGgsYyxhW3YrMTVdLDE0LC02NjA0NzgzMzUpLGM9dShjLHAsZCxoLGFbdis0XSwyMCwtNDA1NTM3ODQ4KSxoPXUoaCxjLHAsZCxhW3YrOV0sNSw1Njg0NDY0MzgpLGQ9dShkLGgsYyxwLGFbdisxNF0sOSwtMTAxOTgwMzY5MCkscD11KHAsZCxoLGMsYVt2KzNdLDE0LC0xODczNjM5NjEpLGM9dShjLHAsZCxoLGFbdis4XSwyMCwxMTYzNTMxNTAxKSxoPXUoaCxjLHAsZCxhW3YrMTNdLDUsLTE0NDQ2ODE0NjcpLGQ9dShkLGgsYyxwLGFbdisyXSw5LC01MTQwMzc4NCkscD11KHAsZCxoLGMsYVt2KzddLDE0LDE3MzUzMjg0NzMpLGg9ZihoLGM9dShjLHAsZCxoLGFbdisxMl0sMjAsLTE5MjY2MDc3MzQpLHAsZCxhW3YrNV0sNCwtMzc4NTU4KSxkPWYoZCxoLGMscCxhW3YrOF0sMTEsLTIwMjI1NzQ0NjMpLHA9ZihwLGQsaCxjLGFbdisxMV0sMTYsMTgzOTAzMDU2MiksYz1mKGMscCxkLGgsYVt2KzE0XSwyMywtMzUzMDk1NTYpLGg9ZihoLGMscCxkLGFbdisxXSw0LC0xNTMwOTkyMDYwKSxkPWYoZCxoLGMscCxhW3YrNF0sMTEsMTI3Mjg5MzM1MykscD1mKHAsZCxoLGMsYVt2KzddLDE2LC0xNTU0OTc2MzIpLGM9ZihjLHAsZCxoLGFbdisxMF0sMjMsLTEwOTQ3MzA2NDApLGg9ZihoLGMscCxkLGFbdisxM10sNCw2ODEyNzkxNzQpLGQ9ZihkLGgsYyxwLGFbdiswXSwxMSwtMzU4NTM3MjIyKSxwPWYocCxkLGgsYyxhW3YrM10sMTYsLTcyMjUyMTk3OSksYz1mKGMscCxkLGgsYVt2KzZdLDIzLDc2MDI5MTg5KSxoPWYoaCxjLHAsZCxhW3YrOV0sNCwtNjQwMzY0NDg3KSxkPWYoZCxoLGMscCxhW3YrMTJdLDExLC00MjE4MTU4MzUpLHA9ZihwLGQsaCxjLGFbdisxNV0sMTYsNTMwNzQyNTIwKSxoPWcoaCxjPWYoYyxwLGQsaCxhW3YrMl0sMjMsLTk5NTMzODY1MSkscCxkLGFbdiswXSw2LC0xOTg2MzA4NDQpLGQ9ZyhkLGgsYyxwLGFbdis3XSwxMCwxMTI2ODkxNDE1KSxwPWcocCxkLGgsYyxhW3YrMTRdLDE1LC0xNDE2MzU0OTA1KSxjPWcoYyxwLGQsaCxhW3YrNV0sMjEsLTU3NDM0MDU1KSxoPWcoaCxjLHAsZCxhW3YrMTJdLDYsMTcwMDQ4NTU3MSksZD1nKGQsaCxjLHAsYVt2KzNdLDEwLC0xODk0OTg2NjA2KSxwPWcocCxkLGgsYyxhW3YrMTBdLDE1LC0xMDUxNTIzKSxjPWcoYyxwLGQsaCxhW3YrMV0sMjEsLTIwNTQ5MjI3OTkpLGg9ZyhoLGMscCxkLGFbdis4XSw2LDE4NzMzMTMzNTkpLGQ9ZyhkLGgsYyxwLGFbdisxNV0sMTAsLTMwNjExNzQ0KSxwPWcocCxkLGgsYyxhW3YrNl0sMTUsLTE1NjAxOTgzODApLGM9ZyhjLHAsZCxoLGFbdisxM10sMjEsMTMwOTE1MTY0OSksaD1nKGgsYyxwLGQsYVt2KzRdLDYsLTE0NTUyMzA3MCksZD1nKGQsaCxjLHAsYVt2KzExXSwxMCwtMTEyMDIxMDM3OSkscD1nKHAsZCxoLGMsYVt2KzJdLDE1LDcxODc4NzI1OSksYz1nKGMscCxkLGgsYVt2KzldLDIxLC0zNDM0ODU1NTEpLGg9aCtTPj4+MCxjPWMrbT4+PjAscD1wK18+Pj4wLGQ9ZCtDPj4+MH1yZXR1cm4gcy5lbmRpYW4oW2gsYyxwLGRdKX0pLl9mZj1mdW5jdGlvbih0LGUsYSxzLG8saSxyKXt2YXIgbj10KyhlJmF8fmUmcykrKG8+Pj4wKStyO3JldHVybihuPDxpfG4+Pj4zMi1pKStlfSxuLl9nZz1mdW5jdGlvbih0LGUsYSxzLG8saSxyKXt2YXIgbj10KyhlJnN8YSZ+cykrKG8+Pj4wKStyO3JldHVybihuPDxpfG4+Pj4zMi1pKStlfSxuLl9oaD1mdW5jdGlvbih0LGUsYSxzLG8saSxyKXt2YXIgbj10KyhlXmFecykrKG8+Pj4wKStyO3JldHVybihuPDxpfG4+Pj4zMi1pKStlfSxuLl9paT1mdW5jdGlvbih0LGUsYSxzLG8saSxyKXt2YXIgbj10KyhhXihlfH5zKSkrKG8+Pj4wKStyO3JldHVybihuPDxpfG4+Pj4zMi1pKStlfSxuLl9ibG9ja3NpemU9MTYsbi5fZGlnZXN0c2l6ZT0xNix0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtpZihudWxsPT10KXRocm93IG5ldyBFcnJvcihcIklsbGVnYWwgYXJndW1lbnQgXCIrdCk7dmFyIGE9cy53b3Jkc1RvQnl0ZXMobih0LGUpKTtyZXR1cm4gZSYmZS5hc0J5dGVzP2E6ZSYmZS5hc1N0cmluZz9yLmJ5dGVzVG9TdHJpbmcoYSk6cy5ieXRlc1RvSGV4KGEpfX0sMTY2Oih0LGUsYSk9PntcInVzZSBzdHJpY3RcIjthLmQoZSx7cjooKT0+bH0pO3ZhciBzPWEoNDYpLG89YSg1NjUpLGk9YSg2MTEpLHI9YSgzMDUpLG49YS5uKHIpO2NsYXNzIGwgZXh0ZW5kcyBzLkh7Y29uc3RydWN0b3IodCxlKXtzdXBlcigpLHRoaXMucHJvdG9jb2w9Mix0aGlzLmluZmxhdGU9bigpLmluZmxhdGVJbml0KDE1KSx0aGlzLmJwcD0xLHRoaXMuc3RhdGU9MCx0aGlzLmZvY3VzTW9kZT0wLHRoaXMudXNlWlJMRT0hMCx0aGlzLmZyYW1lUmF0ZURlbGF5PTIsdGhpcy5jYW52YXNDdHg9ZSx0aGlzLnNwYXJlY2FjaGU9e30sdGhpcy5idXR0b25tYXNrPTAsdGhpcy5jYW52YXNDb250cm9sPXRoaXMuY2FudmFzQ3R4LmNhbnZhcyx0aGlzLmxhc3RNb3VzZU1vdmVUaW1lPShuZXcgRGF0ZSkuZ2V0VGltZSgpLHRoaXMubG9nZ2VyPXQsdGhpcy5zZXREZXNrRm9jdXM9KHQsZSk9Pnt9LHRoaXMuZ2V0RGVza0ZvY3VzPXQ9Pnt9fXByb2Nlc3NEYXRhKHQpe3RoaXMub25Qcm9jZXNzRGF0YSh0KX1vblN0YXRlQ2hhbmdlKHQpe3RoaXMubG9nZ2VyLnZlcmJvc2UoYHN0YXRlIGNoYW5nZSBpbiBBTVREZXNrdG9wOiAke3R9YCksMD09PXQmJih0aGlzLmNhbnZhc0N0eC5maWxsU3R5bGU9XCIjRkZGRkZGXCIsdGhpcy5jYW52YXNDdHguZmlsbFJlY3QoMCwwLHRoaXMuY2FudmFzQ3R4LmNhbnZhcy53aWR0aCx0aGlzLmNhbnZhc0N0eC5jYW52YXMud2lkdGgpKX1zdGFydCgpe3RoaXMubG9nZ2VyLnZlcmJvc2UoXCJTdGFydGluZyBkZXNrdG9wIGhlcmVcIiksdGhpcy5zdGF0ZT0wLHRoaXMuaW5mbGF0ZS5pbmZsYXRlUmVzZXQoKSx0aGlzLm9uS3ZtRGF0YVBlbmRpbmc9W10sdGhpcy5vbkt2bURhdGFBY2s9LTEsdGhpcy5rdm1EYXRhU3VwcG9ydGVkPSExO2Zvcihjb25zdCB0IGluIHRoaXMuc3BhcmVjYWNoZSlkZWxldGUgdGhpcy5zcGFyZWNhY2hlW3RdfW9uU2VuZEt2bURhdGEodCl7ITAhPT10aGlzLm9uS3ZtRGF0YUFjaz90aGlzLm9uS3ZtRGF0YVBlbmRpbmcucHVzaCh0KTooKDAsaS5mKSh0aGlzLnVybHZhcnMpJiYoMCxpLmYpKHRoaXMudXJsdmFycy5rdm1kYXRhdHJhY2UpJiZjb25zb2xlLmxvZyhgS1ZNLVNlbmQgKCR7dC5sZW5ndGh9KSBkYXRhYCksdD1cIlxcMEt2bURhdGFDaGFubmVsXFwwXCIrdCx0aGlzLm9uU2VuZChTdHJpbmcuZnJvbUNoYXJDb2RlKDYsMCwwLDApK28uci5JbnRUb1N0cih0Lmxlbmd0aCkrdCksdGhpcy5vbkt2bURhdGFBY2s9ITEpfX19LDU5Oih0LGUsYSk9PntcInVzZSBzdHJpY3RcIjthLmQoZSx7TjooKT0+b30pO3ZhciBzPWEoNTAzKTtjbGFzcyBvIGV4dGVuZHMgcy5Le2NvbnN0cnVjdG9yKHQsZSxhLHMsbyxpLHIsbixsLGgsYyl7c3VwZXIodCxlLGEscyxvLGkscixuLGwsaCxjKX19fSw1MDM6KHQsZSxhKT0+e1widXNlIHN0cmljdFwiO2EuZChlLHtiOigpPT5zLEs6KCk9Pmx9KTt2YXIgcyxvPWEoNTY1KSxpPWEoNTY4KSxyPWEubihpKSxuPWEoNjExKTshZnVuY3Rpb24odCl7dFt0LlNPTD0xXT1cIlNPTFwiLHRbdC5LVk09Ml09XCJLVk1cIix0W3QuSURFUj0zXT1cIklERVJcIn0oc3x8KHM9e30pKTtjbGFzcyBse2NvbnN0cnVjdG9yKHQsZSxhLHMsbyxpLHIsbixsLGgsYyl7dGhpcy5maWxlUmVhZGVyPWEsdGhpcy5yYW5kb21Ob25jZUNoYXJzPVwiYWJjZGVmMDEyMzQ1Njc4OVwiLHRoaXMuaG9zdD1zLHRoaXMucG9ydD1vLHRoaXMudXNlcj1pLHRoaXMucGFzcz1yLHRoaXMudGxzPW4sdGhpcy50bHN2MW9ubHk9bCx0aGlzLnByb3RvY29sPWUsdGhpcy5SZWRpcmVjdFN0YXJ0U29sPVN0cmluZy5mcm9tQ2hhckNvZGUoMTYsMCwwLDAsODMsNzksNzYsMzIpLHRoaXMuUmVkaXJlY3RTdGFydEt2bT1TdHJpbmcuZnJvbUNoYXJDb2RlKDE2LDEsMCwwLDc1LDg2LDc3LDgyKSx0aGlzLlJlZGlyZWN0U3RhcnRJZGVyPVN0cmluZy5mcm9tQ2hhckNvZGUoMTYsMCwwLDAsNzMsNjgsNjksODIpLHRoaXMudXJsdmFycz17fSx0aGlzLnNlcnZlcj1jLHRoaXMuYW10QWNjdW11bGF0b3I9XCJcIix0aGlzLmF1dGhVcmk9XCJcIix0aGlzLmxvZ2dlcj10LHRoaXMuYXV0aFRva2VuPWh9Z2V0V3NMb2NhdGlvbigpe3JldHVybiB0aGlzLmlzQnJvd3NlcigpJiYhKDAsbi5mKSh0aGlzLnNlcnZlcik/YCR7d2luZG93LmxvY2F0aW9uLnByb3RvY29sLnJlcGxhY2UoXCJodHRwXCIsXCJ3c1wiKX0vL1xcbiAgICAgICR7d2luZG93LmxvY2F0aW9uLmhvc3R9XFxuICAgICAgJHt3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUuc3Vic3RyaW5nKDAsd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLmxhc3RJbmRleE9mKFwiL1wiKSl9XFxuICAgICAgL3dlYnJlbGF5LmFzaHg/cD0yJmhvc3Q9JHt0aGlzLmhvc3R9JnBvcnQ9JHt0aGlzLnBvcnR9JnRscz0ke3RoaXMudGxzfSR7XCIqXCI9PT10aGlzLnVzZXI/XCImc2VydmVyYXV0aD0xXCI6XCJcIn0ke3ZvaWQgMD09PXRoaXMucGFzcz9cIiZzZXJ2ZXJhdXRoPTEmdXNlcj1cIit0aGlzLnVzZXI6XCJcIn0mdGxzMW9ubHk9JHt0aGlzLnRsc3Yxb25seX1gOmAke1N0cmluZyh0aGlzLnNlcnZlcil9L3dlYnJlbGF5LmFzaHg/cD0yJmhvc3Q9JHt0aGlzLmhvc3R9JnBvcnQ9JHt0aGlzLnBvcnR9JnRscz0ke3RoaXMudGxzfSR7XCIqXCI9PT10aGlzLnVzZXI/XCImc2VydmVyYXV0aD0xXCI6XCJcIn0ke3ZvaWQgMD09PXRoaXMucGFzcz9cIiZzZXJ2ZXJhdXRoPTEmdXNlcj1cIit0aGlzLnVzZXI6XCJcIn0mdGxzMW9ubHk9JHt0aGlzLnRsc3Yxb25seX1gfWlzQnJvd3Nlcigpe3RyeXtjb25zdCB0PVwidW5kZWZpbmVkXCIhPXR5cGVvZiB3aW5kb3c7cmV0dXJuIHQmJnRoaXMubG9nZ2VyLmRlYnVnKFwiISEhISFCUk9XU0VSISEhISFcIiksdH1jYXRjaCh0KXtyZXR1cm4hMX19c3RhcnQodCl7dGhpcy5jb25uZWN0U3RhdGU9MCx0aGlzLnNvY2tldD1uZXcgdCh0aGlzLmdldFdzTG9jYXRpb24oKSx0aGlzLmF1dGhUb2tlbiksdGhpcy5zb2NrZXQub25vcGVuPXRoaXMub25Tb2NrZXRDb25uZWN0ZWQuYmluZCh0aGlzKSx0aGlzLnNvY2tldC5vbm1lc3NhZ2U9dGhpcy5vbk1lc3NhZ2UuYmluZCh0aGlzKSx0aGlzLnNvY2tldC5vbmNsb3NlPXRoaXMub25Tb2NrZXRDbG9zZWQuYmluZCh0aGlzKTsoMCxuLmYpKHRoaXMuZmlsZVJlYWRlcikmJigwLG4uZikodGhpcy5maWxlUmVhZGVyLnJlYWRBc0JpbmFyeVN0cmluZyk/dGhpcy5maWxlUmVhZGVyLm9ubG9hZD0odD0+e3RoaXMub25Tb2NrZXREYXRhKHQudGFyZ2V0LnJlc3VsdCksMD09PXRoaXMuZmlsZVJlYWRlckFjYy5sZW5ndGg/dGhpcy5maWxlUmVhZGVySW5Vc2U9ITE6dGhpcy5maWxlUmVhZGVyLnJlYWRBc0JpbmFyeVN0cmluZyhuZXcgQmxvYihbdGhpcy5maWxlUmVhZGVyQWNjLnNoaWZ0KCldKSl9KS5iaW5kKHRoaXMpOigwLG4uZikodGhpcy5maWxlUmVhZGVyKSYmKDAsbi5mKSh0aGlzLmZpbGVSZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIpJiYodGhpcy5maWxlUmVhZGVyLm9ubG9hZGVuZD0odD0+e3RoaXMub25Tb2NrZXREYXRhKHQudGFyZ2V0LnJlc3VsdCksMD09PXRoaXMuZmlsZVJlYWRlckFjYy5sZW5ndGg/dGhpcy5maWxlUmVhZGVySW5Vc2U9ITE6dGhpcy5maWxlUmVhZGVyLnJlYWRBc0FycmF5QnVmZmVyKHRoaXMuZmlsZVJlYWRlckFjYy5zaGlmdCgpKX0pLmJpbmQodGhpcykpLHRoaXMubG9nZ2VyLnZlcmJvc2UoXCJDb25uZWN0aW5nIHRvIHdlYnNvY2tldFwiKSx0aGlzLm9uU3RhdGVDaGFuZ2UoMSl9b25Tb2NrZXRDb25uZWN0ZWQoKXsoMCxuLmYpKHRoaXMudXJsdmFycykmJigwLG4uZikodGhpcy51cmx2YXJzLnJlZGlydHJhY2UpJiZjb25zb2xlLmxvZyhcIlJFRElSLUNPTk5FQ1RcIiksdGhpcy5vblN0YXRlQ2hhbmdlKDIpLHRoaXMubG9nZ2VyLnZlcmJvc2UoYENvbm5lY3RlZCB0byB3ZWJzb2NrZXQgc2VydmVyLiBXaXRoIHByb3RvY29sICR7dGhpcy5wcm90b2NvbH0gKDIgPSBLVk0pYCksdGhpcy5sb2dnZXIuaW5mbyhgU3RhcnQgUmVkaXJlY3QgU2Vzc2lvbiBmb3IgcHJvdG9jb2wuICR7dGhpcy5wcm90b2NvbH1gKSx0aGlzLnByb3RvY29sPT09cy5TT0wmJnRoaXMuc29ja2V0U2VuZCh0aGlzLlJlZGlyZWN0U3RhcnRTb2wpLHRoaXMucHJvdG9jb2w9PT1zLktWTSYmdGhpcy5zb2NrZXRTZW5kKHRoaXMuUmVkaXJlY3RTdGFydEt2bSksdGhpcy5wcm90b2NvbD09PXMuSURFUiYmdGhpcy5zb2NrZXRTZW5kKHRoaXMuUmVkaXJlY3RTdGFydElkZXIpfW9uTWVzc2FnZSh0KXt0cnl7aWYodGhpcy5pbkRhdGFDb3VudCsrLFwib2JqZWN0XCI9PXR5cGVvZiB0LmRhdGEpe2lmKHRoaXMuZmlsZVJlYWRlckluVXNlKXJldHVybiB2b2lkIHRoaXMuZmlsZVJlYWRlckFjYy5wdXNoKHQuZGF0YSk7aWYobnVsbCE9dGhpcy5maWxlUmVhZGVyLnJlYWRBc0JpbmFyeVN0cmluZyl0aGlzLmZpbGVSZWFkZXJJblVzZT0hMCx0aGlzLmZpbGVSZWFkZXIucmVhZEFzQmluYXJ5U3RyaW5nKG5ldyBCbG9iKFt0LmRhdGFdKSk7ZWxzZSBpZihudWxsIT10aGlzLmZpbGVSZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIpdGhpcy5maWxlUmVhZGVySW5Vc2U9ITAsdGhpcy5maWxlUmVhZGVyLnJlYWRBc0FycmF5QnVmZmVyKHQuZGF0YSk7ZWxzZXtsZXQgZT1cIlwiO2NvbnN0IGE9bmV3IFVpbnQ4QXJyYXkodC5kYXRhKSxzPWEuYnl0ZUxlbmd0aDtmb3IobGV0IHQ9MDt0PHM7dCsrKWUrPVN0cmluZy5mcm9tQ2hhckNvZGUoYVt0XSk7dGhpcy5vblNvY2tldERhdGEoZSl9fWVsc2UgdGhpcy5vblNvY2tldERhdGEodC5kYXRhKX1jYXRjaCh0KXt0aGlzLmxvZ2dlci5lcnJvcih0KSx0aGlzLnN0b3AoKSx0aGlzLm9uRXJyb3IoKX19b25Tb2NrZXREYXRhKHQpe2lmKCgwLG4uZikodCkmJi0xIT09dGhpcy5jb25uZWN0U3RhdGUpe2lmKFwib2JqZWN0XCI9PXR5cGVvZiB0KXtsZXQgZT1cIlwiO2NvbnN0IGE9bmV3IFVpbnQ4QXJyYXkodCkscz1hLmJ5dGVMZW5ndGg7Zm9yKGxldCB0PTA7dDxzO3QrKyllKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGFbdF0pO3Q9ZX1lbHNlIGlmKFwic3RyaW5nXCIhPXR5cGVvZiB0KXJldHVybjtpZigodGhpcy5wcm90b2NvbD09PXMuS1ZNfHx0aGlzLnByb3RvY29sPT09cy5JREVSKSYmMT09PXRoaXMuY29ubmVjdFN0YXRlKXJldHVybiB0aGlzLm9uUHJvY2Vzc0RhdGEodCk7Zm9yKHRoaXMuYW10QWNjdW11bGF0b3IrPXQ7dGhpcy5hbXRBY2N1bXVsYXRvci5sZW5ndGg+PTE7KXtsZXQgdD0wO3N3aXRjaCh0aGlzLmFtdEFjY3VtdWxhdG9yLmNoYXJDb2RlQXQoMCkpe2Nhc2UgMTc6aWYodGhpcy5sb2dnZXIudmVyYm9zZShgU3RhcnQgUmVkaXJlY3Rpb24gU2Vzc2lvbiByZXBseSByZWNlaXZlZCBmb3IgICR7dGhpcy5wcm90b2NvbH1gKSx0aGlzLmFtdEFjY3VtdWxhdG9yLmxlbmd0aDw0KXJldHVybjtzd2l0Y2godGhpcy5hbXRBY2N1bXVsYXRvci5jaGFyQ29kZUF0KDEpKXtjYXNlIDA6e2lmKHRoaXMubG9nZ2VyLnZlcmJvc2UoXCJTZXNzaW9uIHN0YXR1cyBzdWNjZXNzLiBTdGFydCBoYW5kc2hha2VcIiksdGhpcy5hbXRBY2N1bXVsYXRvci5sZW5ndGg8MTMpcmV0dXJuO2NvbnN0IGU9dGhpcy5hbXRBY2N1bXVsYXRvci5jaGFyQ29kZUF0KDEyKTtpZih0aGlzLmFtdEFjY3VtdWxhdG9yLmxlbmd0aDwxMytlKXJldHVybjt0aGlzLmxvZ2dlci52ZXJib3NlKFwiUXVlcnkgZm9yIGF2YWlsYWJsZSBhdXRoZW50aWNhdGlvblwiKSx0aGlzLnNvY2tldFNlbmQoU3RyaW5nLmZyb21DaGFyQ29kZSgxOSwwLDAsMCwwLDAsMCwwLDApKSx0PTEzK2U7YnJlYWt9ZGVmYXVsdDp0aGlzLnN0b3AoKX1icmVhaztjYXNlIDIwOntpZih0aGlzLmxvZ2dlci52ZXJib3NlKFwiQXZhaWxhYmxlIEF1dGhlbnRpY2F0aW9ucyByZXBseSByZWNlaXZlZC5cIiksdGhpcy5hbXRBY2N1bXVsYXRvci5sZW5ndGg8OSlyZXR1cm47Y29uc3QgZT1vLnIuUmVhZEludFgodGhpcy5hbXRBY2N1bXVsYXRvciw1KTtpZih0aGlzLmFtdEFjY3VtdWxhdG9yLmxlbmd0aDw5K2UpcmV0dXJuO2NvbnN0IGE9dGhpcy5hbXRBY2N1bXVsYXRvci5jaGFyQ29kZUF0KDEpLHM9dGhpcy5hbXRBY2N1bXVsYXRvci5jaGFyQ29kZUF0KDQpLGk9W107Zm9yKGxldCB0PTA7dDxlO3QrKylpLnB1c2godGhpcy5hbXRBY2N1bXVsYXRvci5jaGFyQ29kZUF0KDkrdCkpO2NvbnN0IHI9dGhpcy5hbXRBY2N1bXVsYXRvci5zdWJzdHJpbmcoOSw5K2UpO2lmKHQ9OStlLDA9PT1zKSgwLG4uZikoaS5pbmNsdWRlcyg0KSk/KHRoaXMubG9nZ2VyLnZlcmJvc2UoXCJHb29kIERpZ2VzdCBBdXRoIChXaXRoIGNub25jZSBhbmQgYWxsKVwiKSx0aGlzLnNvY2tldFNlbmQoU3RyaW5nLmZyb21DaGFyQ29kZSgxOSwwLDAsMCw0KStvLnIuSW50VG9TdHJYKHRoaXMudXNlci5sZW5ndGgrdGhpcy5hdXRoVXJpLmxlbmd0aCs4KStTdHJpbmcuZnJvbUNoYXJDb2RlKHRoaXMudXNlci5sZW5ndGgpK3RoaXMudXNlcitTdHJpbmcuZnJvbUNoYXJDb2RlKDAsMCkrU3RyaW5nLmZyb21DaGFyQ29kZSh0aGlzLmF1dGhVcmkubGVuZ3RoKSt0aGlzLmF1dGhVcmkrU3RyaW5nLmZyb21DaGFyQ29kZSgwLDAsMCwwKSkpOigwLG4uZikoaS5pbmNsdWRlcygzKSk/KHRoaXMubG9nZ2VyLndhcm4oXCJCYWQgRGlnZXN0IEF1dGhcIiksdGhpcy5zb2NrZXRTZW5kKFN0cmluZy5mcm9tQ2hhckNvZGUoMTksMCwwLDAsMykrby5yLkludFRvU3RyWCh0aGlzLnVzZXIubGVuZ3RoK3RoaXMuYXV0aFVyaS5sZW5ndGgrNykrU3RyaW5nLmZyb21DaGFyQ29kZSh0aGlzLnVzZXIubGVuZ3RoKSt0aGlzLnVzZXIrU3RyaW5nLmZyb21DaGFyQ29kZSgwLDApK1N0cmluZy5mcm9tQ2hhckNvZGUodGhpcy5hdXRoVXJpLmxlbmd0aCkrdGhpcy5hdXRoVXJpK1N0cmluZy5mcm9tQ2hhckNvZGUoMCwwLDApKSk6KDAsbi5mKShpLmluY2x1ZGVzKDEpKT8odGhpcy5sb2dnZXIudmVyYm9zZShcIkJhc2ljIEF1dGhcIiksdGhpcy5zb2NrZXRTZW5kKFN0cmluZy5mcm9tQ2hhckNvZGUoMTksMCwwLDAsMSkrby5yLkludFRvU3RyWCh0aGlzLnVzZXIubGVuZ3RoK3RoaXMucGFzcy5sZW5ndGgrMikrU3RyaW5nLmZyb21DaGFyQ29kZSh0aGlzLnVzZXIubGVuZ3RoKSt0aGlzLnVzZXIrU3RyaW5nLmZyb21DaGFyQ29kZSh0aGlzLnBhc3MubGVuZ3RoKSt0aGlzLnBhc3MpKToodGhpcy5sb2dnZXIuZXJyb3IoXCJBdXRoIFR5cGUgbm90IHJlY29nbml6ZWQuIFN0b3BwaW5nLlwiKSx0aGlzLnN0b3AoKSk7ZWxzZSBpZigzIT09cyYmNCE9PXN8fDEhPT1hKWlmKDA9PT1hKXtpZigxPT09dGhpcy5wcm90b2NvbCl7Y29uc3QgdD0xZTQsZT0xMDAsYT0wLHM9MWU0LGk9MTAwLHI9MDt0aGlzLnNvY2tldFNlbmQoU3RyaW5nLmZyb21DaGFyQ29kZSgzMiwwLDAsMCkrby5yLkludFRvU3RyWCh0aGlzLmFtdFNlcXVlbmNlKyspK28uci5TaG9ydFRvU3RyWCh0KStvLnIuU2hvcnRUb1N0clgoZSkrby5yLlNob3J0VG9TdHJYKGEpK28uci5TaG9ydFRvU3RyWChzKStvLnIuU2hvcnRUb1N0clgoaSkrby5yLlNob3J0VG9TdHJYKHIpK28uci5JbnRUb1N0clgoMCkpfTI9PT10aGlzLnByb3RvY29sJiZ0aGlzLnNvY2tldFNlbmQoU3RyaW5nLmZyb21DaGFyQ29kZSg2NCwwLDAsMCwwLDAsMCwwKSksMz09PXRoaXMucHJvdG9jb2wmJih0aGlzLmNvbm5lY3RTdGF0ZT0xLHRoaXMub25TdGF0ZUNoYW5nZSgzKSl9ZWxzZSB0aGlzLnN0b3AoKTtlbHNle2xldCB0PTA7Y29uc3QgZT1yLmNoYXJDb2RlQXQodCksYT1yLnN1YnN0cmluZyh0KzEsdCsxK2UpO3QrPWUrMTtjb25zdCBpPXIuY2hhckNvZGVBdCh0KSxuPXIuc3Vic3RyaW5nKHQrMSx0KzEraSk7dCs9aSsxO2xldCBsPTAsaD1udWxsO2NvbnN0IGM9dGhpcy5nZW5lcmF0ZVJhbmRvbU5vbmNlKDMyKSxwPVwiMDAwMDAwMDJcIjtsZXQgZD1cIlwiOzQ9PT1zJiYobD1yLmNoYXJDb2RlQXQodCksaD1yLnN1YnN0cmluZyh0KzEsdCsxK2wpLHQrPWwrMSxkPWAke3B9OiR7Y306JHtTdHJpbmcoaCl9IDpgKTtjb25zdCB2PXRoaXMuaGV4X21kNSh0aGlzLmhleF9tZDUodGhpcy51c2VyK1wiOlwiK2ErXCI6XCIrdGhpcy5wYXNzKStcIjpcIituK1wiOlwiK2QrdGhpcy5oZXhfbWQ1KFwiUE9TVDpcIit0aGlzLmF1dGhVcmkpKTtsZXQgYj10aGlzLnVzZXIubGVuZ3RoK2EubGVuZ3RoK24ubGVuZ3RoK3RoaXMuYXV0aFVyaS5sZW5ndGgrYy5sZW5ndGgrcC5sZW5ndGgrdi5sZW5ndGgrNzs0PT09cyYmKGIrPXBhcnNlSW50KGgubGVuZ3RoKSsxKTtsZXQgdT1TdHJpbmcuZnJvbUNoYXJDb2RlKDE5LDAsMCwwLHMpK28uci5JbnRUb1N0clgoYikrU3RyaW5nLmZyb21DaGFyQ29kZSh0aGlzLnVzZXIubGVuZ3RoKSt0aGlzLnVzZXIrU3RyaW5nLmZyb21DaGFyQ29kZShhLmxlbmd0aCkrYStTdHJpbmcuZnJvbUNoYXJDb2RlKG4ubGVuZ3RoKStuK1N0cmluZy5mcm9tQ2hhckNvZGUodGhpcy5hdXRoVXJpLmxlbmd0aCkrdGhpcy5hdXRoVXJpK1N0cmluZy5mcm9tQ2hhckNvZGUoYy5sZW5ndGgpK2MrU3RyaW5nLmZyb21DaGFyQ29kZShwLmxlbmd0aCkrcCtTdHJpbmcuZnJvbUNoYXJDb2RlKHYubGVuZ3RoKSt2OzQ9PT1zJiYodT1TdHJpbmcodSkrKFN0cmluZy5mcm9tQ2hhckNvZGUoaC5sZW5ndGgpK1N0cmluZyhoKSkpLHRoaXMuc29ja2V0U2VuZCh1KX1icmVha31jYXNlIDMzOmlmKHRoaXMuYW10QWNjdW11bGF0b3IubGVuZ3RoPDIzKWJyZWFrO3RoaXMubG9nZ2VyLnZlcmJvc2UoXCJSZXNwb25zZSB0byBzZXR0aW5nc1wiKSx0PTIzLHRoaXMuc29ja2V0U2VuZChTdHJpbmcuZnJvbUNoYXJDb2RlKDM5LDAsMCwwKStvLnIuSW50VG9TdHJYKHRoaXMuYW10U2VxdWVuY2UrKykrU3RyaW5nLmZyb21DaGFyQ29kZSgwLDAsMjcsMCwwLDApKSwxPT09dGhpcy5wcm90b2NvbCYmKHRoaXMuYW10S2VlcEFsaXZlVGltZXI9c2V0SW50ZXJ2YWwodGhpcy5zZW5kQW10S2VlcEFsaXZlLmJpbmQodGhpcyksMmUzKSksdGhpcy5jb25uZWN0U3RhdGU9MSx0aGlzLm9uU3RhdGVDaGFuZ2UoMyk7YnJlYWs7Y2FzZSA0MTppZih0aGlzLmFtdEFjY3VtdWxhdG9yLmxlbmd0aDwxMClicmVhazt0aGlzLmxvZ2dlci52ZXJib3NlKFwiU2VyaWFsIFNldHRpbmdzXCIpLHQ9MTA7YnJlYWs7Y2FzZSA0Mjp7aWYodGhpcy5hbXRBY2N1bXVsYXRvci5sZW5ndGg8MTApYnJlYWs7dGhpcy5sb2dnZXIudmVyYm9zZShcIkluY29taW5nIGRpc3BsYXkgZGF0YVwiKTtjb25zdCBlPTEwKygoMjU1JnRoaXMuYW10QWNjdW11bGF0b3IuY2hhckNvZGVBdCg5KSk8PDgpKygyNTUmdGhpcy5hbXRBY2N1bXVsYXRvci5jaGFyQ29kZUF0KDgpKTtpZih0aGlzLmFtdEFjY3VtdWxhdG9yLmxlbmd0aDxlKWJyZWFrO3RoaXMub25Qcm9jZXNzRGF0YSh0aGlzLmFtdEFjY3VtdWxhdG9yLnN1YnN0cmluZygxMCxlKSksdD1lO2JyZWFrfWNhc2UgNDM6aWYodGhpcy5hbXRBY2N1bXVsYXRvci5sZW5ndGg8OClicmVhazt0aGlzLmxvZ2dlci52ZXJib3NlKFwiS2VlcCBBbHZlIG1lc3NhZ2VcIiksdD04O2JyZWFrO2Nhc2UgNjU6aWYodGhpcy5hbXRBY2N1bXVsYXRvci5sZW5ndGg8OClicmVhazt0aGlzLmxvZ2dlci52ZXJib3NlKFwiS1ZNIHRyYWZmaWMuIENhbGwgb25TdGFydCBoYW5kbGVyLiBBbmQgZm9yd2FyZCByZXN0IG9mIGFjYyBkaXJlY3RseS5cIiksdGhpcy5jb25uZWN0U3RhdGU9MSx0aGlzLm9uU3RhcnQoKSx0aGlzLmFtdEFjY3VtdWxhdG9yLmxlbmd0aD44JiZ0aGlzLm9uUHJvY2Vzc0RhdGEodGhpcy5hbXRBY2N1bXVsYXRvci5zdWJzdHJpbmcoOCkpLHQ9dGhpcy5hbXRBY2N1bXVsYXRvci5sZW5ndGg7YnJlYWs7ZGVmYXVsdDpyZXR1cm4gdGhpcy5sb2dnZXIuZXJyb3IoYFVua25vd24gSW50ZWwgQU1UIGNvbW1hbmQ6ICAke3RoaXMuYW10QWNjdW11bGF0b3IuY2hhckNvZGVBdCgwKX0gIGFjY2xlbj0ke3RoaXMuYW10QWNjdW11bGF0b3IubGVuZ3RofWApLHZvaWQgdGhpcy5zdG9wKCl9aWYoMD09PXQpcmV0dXJuO3RoaXMuYW10QWNjdW11bGF0b3I9dGhpcy5hbXRBY2N1bXVsYXRvci5zdWJzdHJpbmcodCl9fX1oZXhfbWQ1KHQpe3JldHVybiB0aGlzLmxvZ2dlci52ZXJib3NlKFwiTUQ1IHRoZSBzdHJpbmdcIikscigpKHQpfXNvY2tldFNlbmQodCl7KDAsbi5mKSh0aGlzLnVybHZhcnMpJiYoMCxuLmYpKHRoaXMudXJsdmFycy5yZWRpcnRyYWNlKSYmdGhpcy5sb2dnZXIudmVyYm9zZShgUkVESVItU0VORCgke3QubGVuZ3RofSk6ICR7by5yLnJzdHIyaGV4KHQpfWApO3RyeXtpZihudWxsIT10aGlzLnNvY2tldCYmMT09PXRoaXMuc29ja2V0LnJlYWR5U3RhdGUpe2NvbnN0IGU9bmV3IFVpbnQ4QXJyYXkodC5sZW5ndGgpO3RoaXMubG9nZ2VyLnZlcmJvc2UoYFJlZGlyIFNlbmQoICR7dC5sZW5ndGh9KTogJHtvLnIucnN0cjJoZXgodCl9YCk7Zm9yKGxldCBhPTA7YTx0Lmxlbmd0aDsrK2EpZVthXT10LmNoYXJDb2RlQXQoYSk7dGhpcy5zb2NrZXQuc2VuZChlLmJ1ZmZlcil9fWNhdGNoKHQpe3RoaXMubG9nZ2VyLmVycm9yKGBTb2NrZXQgc2VuZCBlcnJvcjogJHtTdHJpbmcodCl9YCl9fXNlbmQodCl7dGhpcy5sb2dnZXIudmVyYm9zZShcIlNlbmQgY2FsbGVkIFwiK3QpLG51bGwhPXRoaXMuc29ja2V0JiYxPT09dGhpcy5jb25uZWN0U3RhdGUmJih0aGlzLnByb3RvY29sPT09cy5TT0w/dGhpcy5zb2NrZXRTZW5kKFN0cmluZy5mcm9tQ2hhckNvZGUoNDAsMCwwLDApK28uci5JbnRUb1N0clgodGhpcy5hbXRTZXF1ZW5jZSsrKStvLnIuU2hvcnRUb1N0clgodC5sZW5ndGgpK3QpOnRoaXMuc29ja2V0U2VuZCh0KSl9c2VuZEFtdEtlZXBBbGl2ZSgpe251bGwhPXRoaXMuc29ja2V0JiZ0aGlzLnNvY2tldFNlbmQoU3RyaW5nLmZyb21DaGFyQ29kZSg0MywwLDAsMCkrby5yLkludFRvU3RyWCh0aGlzLmFtdFNlcXVlbmNlKyspKX1nZW5lcmF0ZVJhbmRvbU5vbmNlKHQpe2xldCBlPVwiXCI7Zm9yKGxldCBhPTA7YTx0O2ErKyllKz10aGlzLnJhbmRvbU5vbmNlQ2hhcnMuY2hhckF0KE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSp0aGlzLnJhbmRvbU5vbmNlQ2hhcnMubGVuZ3RoKSk7cmV0dXJuIGV9b25Tb2NrZXRDbG9zZWQodCl7KDAsbi5mKSh0aGlzLnVybHZhcnMpJiYoMCxuLmYpKHRoaXMudXJsdmFycy5yZWRpcnRyYWNlKSYmY29uc29sZS5sb2coXCJSRURJUi1DTE9TRURcIiksdGhpcy5sb2dnZXIud2FybihcIlJlZGlyIFNvY2tldCBDbG9zZWRcIiksdGhpcy5zdG9wKCl9b25TdGF0ZUNoYW5nZSh0KXtjb25zb2xlLmluZm8oXCJvbnN0YXRlY2hhbmdlXCIsdCksdGhpcy5zdGF0ZSE9PXQmJih0aGlzLnN0YXRlPXQsdGhpcy5vbk5ld1N0YXRlKHRoaXMuc3RhdGUpLG51bGwhPXRoaXMub25TdGF0ZUNoYW5nZWQmJnRoaXMub25TdGF0ZUNoYW5nZWQodGhpcyx0aGlzLnN0YXRlKSl9c3RvcCgpe3RoaXMubG9nZ2VyLndhcm4oXCJTdG9wIGNhbGxlZCBvbiBSZWRpcmVjdG9yLiBDaGFuZ2Ugc3RhdGUgdG8gMCBhbmQgY2xvc2UgU29ja2V0LlwiKSx0aGlzLm9uU3RhdGVDaGFuZ2UoMCksdGhpcy5jb25uZWN0U3RhdGU9LTEsdGhpcy5hbXRBY2N1bXVsYXRvcj1cIlwiLG51bGwhPXRoaXMuc29ja2V0JiYodGhpcy5zb2NrZXQuY2xvc2UoKSx0aGlzLnNvY2tldD1udWxsKSxudWxsIT10aGlzLmFtdEtlZXBBbGl2ZVRpbWVyJiYoY2xlYXJJbnRlcnZhbCh0aGlzLmFtdEtlZXBBbGl2ZVRpbWVyKSx0aGlzLmFtdEtlZXBBbGl2ZVRpbWVyPW51bGwpfX19LDI3NzoodCxlLGEpPT57XCJ1c2Ugc3RyaWN0XCI7YS5kKGUse3I6KCk9PnN9KTtjbGFzcyBze2NvbnN0cnVjdG9yKCl7dGhpcy50ZXJtaW5hbEVtdWxhdGlvbj0xLHRoaXMuZnhFbXVsYXRpb249MCx0aGlzLmZ4TGluZUJyZWFrPTAsdGhpcy5Bc2NpaVRvVW5pY29kZT1bMTk5LDI1MiwyMzMsMjI2LDIyOCwyMjQsMjI5LDIzMSwyMzQsMjM1LDIzMiwyMzksMjM4LDIzNiwxOTYsMTk3LDIwMSwyMzAsMTk4LDI0NCwyNDYsMjQyLDI1MSwyNDksMjU1LDIxNCwyMjAsMTYyLDE2MywxNjUsODM1OSw0MDIsMjI1LDIzNywyNDMsMjUwLDI0MSwyMDksMTcwLDIxOCwxOTEsODk3NiwxNzIsMTg5LDE4OCwxNjEsMTcxLDE4Nyw5NjE5LDk2MTgsOTYxNyw5NDc0LDk1MDgsOTU2OSw5NTcwLDk1NTgsOTU1Nyw5NTcxLDk1NTMsOTU1OSw5NTY1LDk1NjQsOTU2Myw5NDg4LDk0OTIsOTUyNCw5NTE2LDk1MDAsOTQ3Miw5NTMyLDk1NjYsOTU2Nyw5NTYyLDk1NTYsOTU3Nyw5NTc0LDk1NjgsOTU1Miw5NTgwLDk1NzUsOTU3Niw5NTcyLDk1NzMsOTU3Niw5NTYwLDk1NTQsOTU1NSw5NTc5LDk1NzgsOTQ5Niw5NDg0LDk2MDgsOTYwNCw5NjExLDk2MTYsOTYwMCw5NDUsMjIzLDkxNSw5NjAsOTMxLDk2MywxODEsOTY0LDk2Niw5NTIsODQ4Niw5NDgsODczNCwyNDgsOTQ5LDg3MTksODgwMSwxNzcsODgwNSw4ODA2LDg5OTIsODk5MywyNDcsODc3NiwxNzYsODIyNiwxODMsODczMCw4MzE5LDE3OCw4NzE4LDE2MF0sdGhpcy5Bc2NpaVRvVW5pY29kZUludGVsPVsxOTksMjUyLDIzMywyMjYsMjI4LDIyNCwyMjksMjMxLDIzNCwyMzUsMjMyLDIzOSwyMzgsMjM2LDE5NiwxOTcsMjAxLDIzMCwxOTgsMjQ0LDI0NiwyNDIsMjUxLDI0OSwyNTUsMjE0LDIyMCwxNjIsMTYzLDE2NSw4MzU5LDQwMiwyMjUsMjM3LDI0MywyNTAsMjQxLDIwOSwxNzAsMjE4LDE5MSw4OTc2LDE3MiwxODksMTg4LDE2MSwxNzQsMTg3LDk2MTksOTYxOCw5NjE3LDk0NzQsOTUwOCw5NTY5LDk1NzAsOTU1OCw5NTU3LDk1NzEsOTU1Myw5NTU5LDk1NjUsOTU2NCw5NTYzLDk0ODgsOTQ5Miw5NTI0LDk1MTYsOTUwMCw5NDcyLDk1MzIsOTU2Niw5NTY3LDk1NjIsOTU1Niw5NTc3LDk1NzQsOTU2OCw5NTUyLDk1ODAsOTU3NSw5NTc2LDk1NzIsOTU3Myw5NTc2LDk1NjAsOTU1NCw5NTU1LDk1NzksOTU3OCw5NDk2LDk0ODQsOTYwOCw5NjA0LDk2MTEsOTYxNiw5NjAwLDk0NSwyMjMsOTE1LDk2MCw5MzEsOTYzLDE4MSw5NjQsOTY2LDk1Miw4NDg2LDk0OCw4NzM0LDI0OCw5NDksODcxOSw4ODAxLDE3Nyw4ODA1LDg4MDYsODk5Miw4OTkzLDI0Nyw4Nzc2LDE3Niw4MjI2LDE4Myw4NzMwLDgzMTksMTc4LDg3MTgsMTYwXSx0aGlzLlN0YXRlQ2hhbmdlPXQ9Pnt9LHRoaXMuVGVybVNlbmRLZXlzPXQ9PnRoaXMub25TZW5kKHQpfX19LDIzNzoodCxlLGEpPT57XCJ1c2Ugc3RyaWN0XCI7YS5kKGUse2s6KCk9Pm99KTt2YXIgcz1hKDIwMSk7Y2xhc3Mgb3tjb25zdHJ1Y3Rvcih0KXt0aGlzLm1pbkxldmVsPXR9bG9nKHQsZSl7c3dpdGNoKHQpe2Nhc2Ugcy5pLlZFUkJPU0U6dGhpcy52ZXJib3NlKGUpO2JyZWFrO2Nhc2Ugcy5pLklORk86dGhpcy5pbmZvKGUpO2JyZWFrO2Nhc2Ugcy5pLkRFQlVHOnRoaXMuZGVidWcoZSk7YnJlYWs7Y2FzZSBzLmkuV0FSTklORzp0aGlzLndhcm4oZSk7YnJlYWs7Y2FzZSBzLmkuRVJST1I6dGhpcy5lcnJvcihlKX19ZGVidWcodCl7dGhpcy5taW5MZXZlbD49cy5pLkRFQlVHJiZjb25zb2xlLmRlYnVnKHQpfWluZm8odCl7dGhpcy5taW5MZXZlbD49cy5pLklORk8mJmNvbnNvbGUuaW5mbyh0KX1lcnJvcih0KXt0aGlzLm1pbkxldmVsPj1zLmkuRVJST1ImJmNvbnNvbGUuZXJyb3IodCl9d2Fybih0KXt0aGlzLm1pbkxldmVsPj1zLmkuV0FSTklORyYmY29uc29sZS53YXJuKHQpfXZlcmJvc2UodCl7dGhpcy5taW5MZXZlbD49cy5pLlZFUkJPU0UmJmNvbnNvbGUubG9nKHQpfX19LDU2NToodCxlLGEpPT57XCJ1c2Ugc3RyaWN0XCI7YS5kKGUse3I6KCk9Pm99KTt2YXIgcz1hKDYxMSk7Y29uc3Qgbz17UmVhZFNob3J0Oih0LGUpPT4odC5jaGFyQ29kZUF0KGUpPDw4KSt0LmNoYXJDb2RlQXQoZSsxKSxSZWFkU2hvcnRYOih0LGUpPT4odC5jaGFyQ29kZUF0KGUrMSk8PDgpK3QuY2hhckNvZGVBdChlKSxSZWFkSW50Oih0LGUpPT4xNjc3NzIxNip0LmNoYXJDb2RlQXQoZSkrKHQuY2hhckNvZGVBdChlKzEpPDwxNikrKHQuY2hhckNvZGVBdChlKzIpPDw4KSt0LmNoYXJDb2RlQXQoZSszKSxSZWFkU0ludDoodCxlKT0+KHQuY2hhckNvZGVBdChlKTw8MjQpKyh0LmNoYXJDb2RlQXQoZSsxKTw8MTYpKyh0LmNoYXJDb2RlQXQoZSsyKTw8OCkrdC5jaGFyQ29kZUF0KGUrMyksUmVhZEludFg6KHQsZSk9PjE2Nzc3MjE2KnQuY2hhckNvZGVBdChlKzMpKyh0LmNoYXJDb2RlQXQoZSsyKTw8MTYpKyh0LmNoYXJDb2RlQXQoZSsxKTw8OCkrdC5jaGFyQ29kZUF0KGUpLFNob3J0VG9TdHI6dD0+U3RyaW5nLmZyb21DaGFyQ29kZSh0Pj44JjI1NSwyNTUmdCksU2hvcnRUb1N0clg6dD0+U3RyaW5nLmZyb21DaGFyQ29kZSgyNTUmdCx0Pj44JjI1NSksSW50VG9TdHI6dD0+U3RyaW5nLmZyb21DaGFyQ29kZSh0Pj4yNCYyNTUsdD4+MTYmMjU1LHQ+PjgmMjU1LDI1NSZ0KSxJbnRUb1N0clg6dD0+U3RyaW5nLmZyb21DaGFyQ29kZSgyNTUmdCx0Pj44JjI1NSx0Pj4xNiYyNTUsdD4+MjQmMjU1KSxTcGxpdEFycmF5OnQ9PnQuc3BsaXQoXCIsXCIpLENsb25lOnQ9PkpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodCkpLEVzY2FwZUh0bWw6dD0+XCJzdHJpbmdcIj09dHlwZW9mIHQ/dC5yZXBsYWNlKC8mL2csXCImYW1wO1wiKS5yZXBsYWNlKC8+L2csXCImZ3Q7XCIpLnJlcGxhY2UoLzwvZyxcIiZsdDtcIikucmVwbGFjZSgvXCIvZyxcIiZxdW90O1wiKS5yZXBsYWNlKC8nL2csXCImYXBvcztcIik6XCJib29sZWFuXCI9PXR5cGVvZiB0fHxcIm51bWJlclwiPT10eXBlb2YgdD90OnZvaWQgMCxBcnJheUVsZW1lbnRNb3ZlKHQsZSxhKXt0LnNwbGljZShhLDAsdC5zcGxpY2UoZSwxKVswXSl9LE9iamVjdFRvU3RyaW5nRXgodCxlKXtsZXQgYT1cIlwiO2lmKDAhPT10JiYoISgwLHMuZikodCl8fG51bGw9PXQpKXJldHVyblwiKE51bGwpXCI7aWYodCBpbnN0YW5jZW9mIEFycmF5KWZvcihjb25zdCBzIGluIHQpYT1hK1wiPGJyIC8+XCIrU3RyaW5nKHRoaXMuZ2FwKGUpKStcIkl0ZW0gI1wiK1N0cmluZyhzKStcIjogXCIrU3RyaW5nKHRoaXMuT2JqZWN0VG9TdHJpbmdFeCh0W3NdLGUrMSkpO2Vsc2UgaWYodCBpbnN0YW5jZW9mIE9iamVjdClmb3IoY29uc3QgcyBpbiB0KWE9YStcIjxiciAvPlwiK1N0cmluZyh0aGlzLmdhcChlKSkrU3RyaW5nKHMpK1wiID0gXCIrU3RyaW5nKHRoaXMuT2JqZWN0VG9TdHJpbmdFeCh0W3NdLGUrMSkpO2Vsc2UgYSs9U3RyaW5nKHRoaXMuRXNjYXBlSHRtbCh0KSk7cmV0dXJuIGF9LE9iamVjdFRvU3RyaW5nRXgyKHQsZSl7bGV0IGE9XCJcIjtpZigwIT09dCYmKCEoMCxzLmYpKHQpfHxudWxsPT10KSlyZXR1cm5cIihOdWxsKVwiO2lmKHQgaW5zdGFuY2VvZiBBcnJheSlmb3IoY29uc3QgcyBpbiB0KWE9YStcIlxcclxcblwiK1N0cmluZyh0aGlzLmdhcDIoZSkpK1wiSXRlbSAjXCIrU3RyaW5nKHMpK1wiOiBcIitTdHJpbmcodGhpcy5PYmplY3RUb1N0cmluZ0V4Mih0W3NdLGUrMSkpO2Vsc2UgaWYodCBpbnN0YW5jZW9mIE9iamVjdClmb3IoY29uc3QgcyBpbiB0KWE9YStcIlxcclxcblwiK1N0cmluZyh0aGlzLmdhcDIoZSkpK1N0cmluZyhzKStcIiA9IFwiK1N0cmluZyh0aGlzLk9iamVjdFRvU3RyaW5nRXgyKHRbc10sZSsxKSk7ZWxzZSBhKz1TdHJpbmcodGhpcy5Fc2NhcGVIdG1sKHQpKTtyZXR1cm4gYX0sZ2FwKHQpe2xldCBlPVwiXCI7Zm9yKGxldCBhPTA7YTw0KnQ7YSsrKWUrPVwiJm5ic3A7XCI7cmV0dXJuIGV9LGdhcDIodCl7bGV0IGU9XCJcIjtmb3IobGV0IGE9MDthPDQqdDthKyspZSs9XCIgXCI7cmV0dXJuIGV9LE9iamVjdFRvU3RyaW5nKHQpe3JldHVybiB0aGlzLk9iamVjdFRvU3RyaW5nRXgodCwwKX0sT2JqZWN0VG9TdHJpbmcyKHQpe3JldHVybiB0aGlzLk9iamVjdFRvU3RyaW5nRXgyKHQsMCl9LGNoYXIyaGV4OnQ9Pih0KzI1NikudG9TdHJpbmcoMTYpLnN1YnN0cigtMikudG9VcHBlckNhc2UoKSxyc3RyMmhleCh0KXtsZXQgZSxhPVwiXCI7Zm9yKGU9MDtlPHQubGVuZ3RoO2UrKylhKz1TdHJpbmcodGhpcy5jaGFyMmhleCh0LmNoYXJDb2RlQXQoZSkpKTtyZXR1cm4gYX0sZW5jb2RlX3V0Zjg6dD0+dW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KHQpKSxkZWNvZGVfdXRmODp0PT5kZWNvZGVVUklDb21wb25lbnQoZXNjYXBlKHQpKSxkYXRhMmJsb2IodCl7Y29uc3QgZT1uZXcgQXJyYXkodC5sZW5ndGgpO2ZvcihsZXQgYT0wO2E8dC5sZW5ndGg7YSsrKWVbYV09dC5jaGFyQ29kZUF0KGEpO3JldHVybiBuZXcgQmxvYihbbmV3IFVpbnQ4QXJyYXkoZSldKX0scmFuZG9tOnQ9Pk1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSp0KSx0cmFkZW1hcmtzOnQ9PnQucmVwbGFjZSgvXFwoUlxcKS9nLFwiJnJlZztcIikucmVwbGFjZSgvXFwoVE1cXCkvZyxcIiZ0cmFkZTtcIil9fSw0NjoodCxlLGEpPT57XCJ1c2Ugc3RyaWN0XCI7YS5kKGUse0g6KCk9PnN9KTtjbGFzcyBze3Byb2Nlc3NEYXRhKHQpe31vblN0YXRlQ2hhbmdlKHQpe31zdGFydCgpe31vblNlbmRLdm1EYXRhKHQpe319fSw3ODQ6KHQsZSxhKT0+e1widXNlIHN0cmljdFwiO2EuZChlLHskOigpPT5pfSk7dmFyIHM9YSg5ODkpLG89YSg2MTEpO2NsYXNzIGl7Y29uc3RydWN0b3IodCxlLGEpe3RoaXMuYWNjPVwiXCIsdGhpcy5zdGF0ZVByb2Nlc3NvckZhYz1uZXcgcy52KGUsYSx0aGlzLnVwZGF0ZVJGQlN0YXRlLmJpbmQodGhpcykpLHRoaXMucGFyZW50PWEsdGhpcy5sb2dnZXI9dH1wcm9jZXNzRGF0YSh0KXtpZighKDAsby5mKSh0KSlyZXR1cm47dGhpcy5hY2MrPXQ7bGV0IGU9MDtmb3IodGhpcy5sb2dnZXIudmVyYm9zZShgUHJvY2VzcyBEYXRhIEFDQyBsZW5ndGg6ICAke3RoaXMuYWNjLmxlbmd0aH1gKTt0aGlzLmFjYy5sZW5ndGg+MDspe2NvbnN0IHQ9dGhpcy5zdGF0ZVByb2Nlc3NvckZhYy5nZXRQcm9jZXNzb3IodGhpcy5wYXJlbnQuc3RhdGUpLGE9dGhpcy5wYXJlbnQuc3RhdGU7aWYoZT10LnByb2Nlc3NTdGF0ZSh0aGlzLmFjYyksdGhpcy5sb2dnZXIudmVyYm9zZShgU3RhdGUgICR7YX0gIFByb2Nlc3NlZC4gY21kU2l6ZSByZXR1cm5lZCAke2V9YCksMD09PWUpcmV0dXJuO3RoaXMuYWNjPXRoaXMuYWNjLnN1YnN0cmluZyhlKSx0aGlzLmxvZ2dlci52ZXJib3NlKGByZW1haW5pbmcgYWNjICAke3RoaXMuYWNjLmxlbmd0aH0gY29tbWFuZCBzaXplOiAke2V9IG5ldyBwYXJlbnQgc3RhdGU6ICR7dGhpcy5wYXJlbnQuc3RhdGV9YCl9fXVwZGF0ZVJGQlN0YXRlKHQpe3RoaXMucGFyZW50LnN0YXRlPXR9fX0sNjc5Oih0LGUsYSk9PntcInVzZSBzdHJpY3RcIjthLmQoZSx7WDooKT0+b30pO3ZhciBzPWEoNjQ0KTtjbGFzcyBve2NvbnN0cnVjdG9yKHQpe3RoaXMucGFyZW50PXR9RGVjb2RlKHQsZSxhLG8saSxyLG4sbCl7Y29uc3QgaD10LmNoYXJDb2RlQXQoZSsrKTtsZXQgYyxwLGQ7Y29uc3Qgdj17fTtsZXQgYix1PTAsZj0wO2lmKDA9PT1oKXtmb3IodGhpcy5wYXJlbnQubG9nZ2VyLnZlcmJvc2UoXCJSYXcgZW5jb2RpbmdcIiksYj0wO2I8bjtiKyspcy5qLnNldFBpeGVsKHRoaXMucGFyZW50LHQuY2hhckNvZGVBdChlKyspKygyPT09dGhpcy5wYXJlbnQuYnBwP3QuY2hhckNvZGVBdChlKyspPDw4OjApLGIpO3Muai5wdXRJbWFnZSh0aGlzLnBhcmVudCxhLG8pfWVsc2UgaWYoMT09PWgpe3A9dC5jaGFyQ29kZUF0KGUrKykrKDI9PT10aGlzLnBhcmVudC5icHA/dC5jaGFyQ29kZUF0KGUrKyk8PDg6MCksdGhpcy5wYXJlbnQuY2FudmFzQ3R4LmZpbGxTdHlsZT1cInJnYihcIisoMT09PXRoaXMucGFyZW50LmJwcD9gJHsyMjQmcH0sICR7KDI4JnApPDwzfSwgJHtzLmouZml4Q29sb3IoKDMmcCk8PDYpfWA6YCR7cD4+OCYyNDh9LCAke3A+PjMmMjUyfSwkeygzMSZwKTw8M31gKStcIilcIix0aGlzLnBhcmVudC5sb2dnZXIudmVyYm9zZShcImZpbGxzdHlsZTogXCIrdGhpcy5wYXJlbnQuY2FudmFzQ3R4LmZpbGxTdHlsZSk7Y29uc3Qgbj1zLmoucm90WCh0aGlzLnBhcmVudCxhLG8pO289cy5qLnJvdFkodGhpcy5wYXJlbnQsYSxvKSxhPW4sdGhpcy5wYXJlbnQuY2FudmFzQ3R4LmZpbGxSZWN0KGEsbyxpLHIpfWVsc2UgaWYoaD4xJiZoPDE3KXt0aGlzLnBhcmVudC5sb2dnZXIudmVyYm9zZShcIlJlYWQgdGhlIHBhY2tlZCBwYWxldHRlXCIpO2xldCBpPTQscj0xNTtmb3IoYj0wO2I8aDtiKyspdltiXT10LmNoYXJDb2RlQXQoZSsrKSsoMj09PXRoaXMucGFyZW50LmJwcD90LmNoYXJDb2RlQXQoZSsrKTw8ODowKTtmb3IoMj09PWg/KGk9MSxyPTEpOmg8PTQmJihpPTIscj0zKTt1PG4mJmU8dC5sZW5ndGg7KWZvcihwPXQuY2hhckNvZGVBdChlKyspLGI9OC1pO2I+PTA7Yi09aSlzLmouc2V0UGl4ZWwodGhpcy5wYXJlbnQsdltwPj5iJnJdLHUrKyk7cy5qLnB1dEltYWdlKHRoaXMucGFyZW50LGEsbyl9ZWxzZSBpZigxMjg9PT1oKXtmb3IodGhpcy5wYXJlbnQubG9nZ2VyLnZlcmJvc2UoXCJSTEUgZW5jb2RlZCB0aWxlXCIpO3U8biYmZTx0Lmxlbmd0aDspe3A9dC5jaGFyQ29kZUF0KGUrKykrKDI9PT10aGlzLnBhcmVudC5icHA/dC5jaGFyQ29kZUF0KGUrKyk8PDg6MCksZj0xO2Rve2YrPWQ9dC5jaGFyQ29kZUF0KGUrKyl9d2hpbGUoMjU1PT09ZCk7Zm9yKDstLWY+PTA7KXMuai5zZXRQaXhlbCh0aGlzLnBhcmVudCxwLHUrKyl9cy5qLnB1dEltYWdlKHRoaXMucGFyZW50LGEsbyl9ZWxzZSBpZihoPjEyOSl7Zm9yKHRoaXMucGFyZW50LmxvZ2dlci52ZXJib3NlKFwiUmVhZCB0aGUgUkxFIHBhbGV0dGVcIiksYj0wO2I8aC0xMjg7YisrKXZbYl09dC5jaGFyQ29kZUF0KGUrKykrKDI9PT10aGlzLnBhcmVudC5icHA/dC5jaGFyQ29kZUF0KGUrKyk8PDg6MCk7Zm9yKHRoaXMucGFyZW50LmxvZ2dlci52ZXJib3NlKFwiRGVjb2RlIFJMRSBvbiBwYWxldHRlXCIpO3U8biYmZTx0Lmxlbmd0aDspe2lmKGY9MSxjPXQuY2hhckNvZGVBdChlKyspLHA9dltjJTEyOF0sYz4xMjcpZG97Zis9ZD10LmNoYXJDb2RlQXQoZSsrKX13aGlsZSgyNTU9PT1kKTtmb3IoOy0tZj49MDspcy5qLnNldFBpeGVsKHRoaXMucGFyZW50LHAsdSsrKX1zLmoucHV0SW1hZ2UodGhpcy5wYXJlbnQsYSxvKX19fX0sNjQ2Oih0LGUsYSk9PntcInVzZSBzdHJpY3RcIjthLmQoZSx7JDooKT0+cy4kLFg6KCk9Pm8uWH0pO3ZhciBzPWEoNzg0KSxvPWEoNjc5KX0sNjYzOih0LGUsYSk9PntcInVzZSBzdHJpY3RcIjt2YXIgczthLmQoZSx7aTooKT0+c30pLGZ1bmN0aW9uKHQpe3RbdC5WRVJCT1NFPTVdPVwiVkVSQk9TRVwiLHRbdC5JTkZPPTRdPVwiSU5GT1wiLHRbdC5ERUJVRz0zXT1cIkRFQlVHXCIsdFt0LldBUk5JTkc9Ml09XCJXQVJOSU5HXCIsdFt0LkVSUk9SPTFdPVwiRVJST1JcIn0oc3x8KHM9e30pKX0sMjAxOih0LGUsYSk9PntcInVzZSBzdHJpY3RcIjthLmQoZSx7aTooKT0+cy5pfSk7dmFyIHM9YSg2NjMpfSw3MjU6KHQsZSxhKT0+e1widXNlIHN0cmljdFwiO2EuZChlLHtlOigpPT5pfSk7dmFyIHM9YSg1NjUpLG89YSg4KTtjbGFzcyBpe2NvbnN0cnVjdG9yKHQsZSxhLHMpe3RoaXMud3NTb2NrZXQ9dCx0aGlzLnBhcmVudD1lLHRoaXMucmxlRGVjb2Rlcj1hLHRoaXMudXBkYXRlUkZCU3RhdGU9c31wcm9jZXNzU3RhdGUodCl7bGV0IGU9MDtpZih0Lmxlbmd0aD49MTIpe2NvbnN0IGE9cy5yLlJlYWRTaG9ydCh0LDApLGk9cy5yLlJlYWRTaG9ydCh0LDIpLHI9cy5yLlJlYWRTaG9ydCh0LDQpLG49cy5yLlJlYWRTaG9ydCh0LDYpLGw9cipuLGg9cy5yLlJlYWRJbnQodCw4KTtpZihoPDE3KXtpZihyPDF8fHI+NjR8fG48MXx8bj42NCl0aHJvdyB0aGlzLnBhcmVudC5sb2dnZXIuZXJyb3IoYEludmFsaWQgdGlsZSBzaXplICgke3J9LCR7bn0pLCBkaXNjb25uZWN0aW5nLmApLG5ldyBFcnJvcihcIkludmFsaWQgdGlsZSBzaXplXCIpO2lmKHRoaXMucGFyZW50LnNwYXJldyE9PXJ8fHRoaXMucGFyZW50LnNwYXJlaCE9PW4pe3RoaXMucGFyZW50LnNwYXJldz10aGlzLnBhcmVudC5zcGFyZXcyPXIsdGhpcy5wYXJlbnQuc3BhcmVoPXRoaXMucGFyZW50LnNwYXJlaDI9biwxIT09dGhpcy5wYXJlbnQucm90YXRpb24mJjMhPT10aGlzLnBhcmVudC5yb3RhdGlvbnx8KHRoaXMucGFyZW50LnNwYXJldzI9bix0aGlzLnBhcmVudC5zcGFyZWgyPXIpO2NvbnN0IHQ9YCR7dGhpcy5wYXJlbnQuc3BhcmV3Mn14JHt0aGlzLnBhcmVudC5zcGFyZWgyfWA7dGhpcy5wYXJlbnQuc3BhcmU9dGhpcy5wYXJlbnQuc3BhcmVjYWNoZVt0XSwoMCxvLmZRKSh0aGlzLnBhcmVudC5zcGFyZSl8fCh0aGlzLnBhcmVudC5zcGFyZWNhY2hlW3RdPXRoaXMucGFyZW50LnNwYXJlPXRoaXMucGFyZW50LmNhbnZhc0N0eC5jcmVhdGVJbWFnZURhdGEodGhpcy5wYXJlbnQuc3BhcmV3Mix0aGlzLnBhcmVudC5zcGFyZWgyKSl9fWlmKDQyOTQ5NjcwNzM9PT1oKXRoaXMucGFyZW50LmxvZ2dlci52ZXJib3NlKFwiRGVza3RvcCBzaXplXCIpLHRoaXMucGFyZW50LmNhbnZhc0N0eC5jYW52YXMud2lkdGg9dGhpcy5wYXJlbnQuU2NyZWVuV2lkdGg9dGhpcy5wYXJlbnQucndpZHRoPXRoaXMucGFyZW50LndpZHRoPXIsdGhpcy5wYXJlbnQuY2FudmFzQ3R4LmNhbnZhcy5oZWlnaHQ9dGhpcy5wYXJlbnQuU2NyZWVuSGVpZ2h0PXRoaXMucGFyZW50LnJoZWlnaHQ9dGhpcy5wYXJlbnQuaGVpZ2h0PW4sdGhpcy53c1NvY2tldC5zZW5kKFN0cmluZy5mcm9tQ2hhckNvZGUoMywwLDAsMCwwLDApK3Muci5TaG9ydFRvU3RyKHRoaXMucGFyZW50LndpZHRoKStzLnIuU2hvcnRUb1N0cih0aGlzLnBhcmVudC5oZWlnaHQpKSxlPTEyLG51bGwhPXRoaXMucGFyZW50Lm9uU2NyZWVuU2l6ZUNoYW5nZSYmdGhpcy5wYXJlbnQub25TY3JlZW5TaXplQ2hhbmdlKHRoaXMucGFyZW50LlNjcmVlbldpZHRoLHRoaXMucGFyZW50LlNjcmVlbkhlaWdodCk7ZWxzZSBpZigwPT09aCl7bGV0IHM9MTI7Y29uc3Qgcj0xMitsKnRoaXMucGFyZW50LmJwcDtpZih0Lmxlbmd0aDxyKXJldHVybiAwO2U9cjtmb3IobGV0IGU9MDtlPGw7ZSsrKW8uancuc2V0UGl4ZWwodGhpcy5wYXJlbnQsdC5jaGFyQ29kZUF0KHMrKykrKDI9PT10aGlzLnBhcmVudC5icHA/dC5jaGFyQ29kZUF0KHMrKyk8PDg6MCksZSk7by5qdy5wdXRJbWFnZSh0aGlzLnBhcmVudCxhLGkpfWVsc2V7aWYoMTYhPT1oKXRocm93IHRoaXMucGFyZW50LmxvZ2dlci5lcnJvcihgVW5rbm93biBFbmNvZGluZzogJHtofSAsIEhFWDogJHtzLnIucnN0cjJoZXgodCl9YCksbmV3IEVycm9yKGBVbmtub3duIEVuY29kaW5nOiAke2h9YCk7e2lmKHQubGVuZ3RoPDE2KXJldHVybiAwO2NvbnN0IG89cy5yLlJlYWRJbnQodCwxMik7aWYodC5sZW5ndGg8MTYrbylyZXR1cm4gMDtjb25zdCBoPTE2LGM9NSxwPTA7aWYobz41JiYwPT09dC5jaGFyQ29kZUF0KGgpJiZzLnIuUmVhZFNob3J0WCh0LGgrMSk9PT1vLWMpdGhpcy5ybGVEZWNvZGVyLkRlY29kZSh0LGgrNSxhLGkscixuLGwsbyk7ZWxzZXtjb25zdCBlPXQuc3Vic3RyaW5nKGgsaCtvLXApLHM9dGhpcy5wYXJlbnQuaW5mbGF0ZS5pbmZsYXRlKGUpO2lmKCEocy5sZW5ndGg+MCkpdGhyb3cgdGhpcy5wYXJlbnQubG9nZ2VyLmVycm9yKFwiSW52YWxpZCBkZWZsYXRlIGRhdGEuXCIpLG5ldyBFcnJvcihcImludmFsaWQgZGVmbGF0ZSBkYXRhXCIpO3RoaXMucmxlRGVjb2Rlci5EZWNvZGUocywwLGEsaSxyLG4sbCxzLmxlbmd0aCl9ZT0xNitvfX1pZigxMDA9PS0tdGhpcy5wYXJlbnQuc3RhdGUpe3RoaXMucGFyZW50LmxvZ2dlci5kZWJ1ZyhcIkZyYW1lIGNvbXBsZXRlZC4gVXBkYXRlIHN0YXRlIGFuZCByZXF1ZXN0IG5ldyBmcmFtZVwiKSx0aGlzLnVwZGF0ZVJGQlN0YXRlKDQpO2NvbnN0IHQ9KCk9Pm8uWG4uc2VuZFJlZnJlc2godGhpcy5wYXJlbnQsdGhpcy53c1NvY2tldCk7MD09PXRoaXMucGFyZW50LmZyYW1lUmF0ZURlbGF5P28uWG4uc2VuZFJlZnJlc2godGhpcy5wYXJlbnQsdGhpcy53c1NvY2tldCk6c2V0VGltZW91dCh0LHRoaXMucGFyZW50LmZyYW1lUmF0ZURlbGF5KX19cmV0dXJuIGV9fX0sNzA6KHQsZSxhKT0+e1widXNlIHN0cmljdFwiO2EuZChlLHtVOigpPT5vfSk7dmFyIHM9YSg1NjUpO2NsYXNzIG97Y29uc3RydWN0b3IodCxlLGEpe3RoaXMud3NTb2NrZXQ9dCx0aGlzLnNlcnZlckN1dFRleHRIYW5kbGVyPWUsdGhpcy51cGRhdGVSRkJTdGF0ZT1hfXByb2Nlc3NTdGF0ZSh0KXtsZXQgZT0wLGE9MDtzd2l0Y2godC5jaGFyQ29kZUF0KDApKXtjYXNlIDA6aWYodC5sZW5ndGg8NClyZXR1cm4gMDt0aGlzLnVwZGF0ZVJGQlN0YXRlKDEwMCtzLnIuUmVhZFNob3J0KHQsMikpLGU9NDticmVhaztjYXNlIDI6ZT0xO2JyZWFrO2Nhc2UgMzppZih0Lmxlbmd0aDw4KXJldHVybiAwO2lmKGE9cy5yLlJlYWRJbnQodCw0KSs4LHQubGVuZ3RoPGEpcmV0dXJuIDA7ZT10aGlzLnNlcnZlckN1dFRleHRIYW5kbGVyLmhhbmRsZVNlcnZlckN1dFRleHQodCl9cmV0dXJuIGV9fX0sMjEyOih0LGUsYSk9PntcInVzZSBzdHJpY3RcIjthLmQoZSx7dzooKT0+c30pO2NsYXNzIHN7Y29uc3RydWN0b3IodCxlKXt0aGlzLndzU29ja2V0PXQsdGhpcy51cGRhdGVSRkJTdGF0ZT1lfXByb2Nlc3NTdGF0ZSh0KXtsZXQgZT0wO3JldHVybiB0Lmxlbmd0aD49MTI/KGU9MTIsdGhpcy51cGRhdGVSRkJTdGF0ZSgxKSx0aGlzLndzU29ja2V0LnNlbmQoXCJSRkIgMDAzLjAwOFxcblwiKSxlKTowfX19LDI2Oih0LGUsYSk9PntcInVzZSBzdHJpY3RcIjthLmQoZSx7bDooKT0+c30pO2NsYXNzIHN7Y29uc3RydWN0b3IodCxlKXt0aGlzLndzU29ja2V0PXQsdGhpcy51cGRhdGVSRkJTdGF0ZT1lfXByb2Nlc3NTdGF0ZSh0KXtsZXQgZT0wO3JldHVybiB0Lmxlbmd0aD49MT8oZT10LmNoYXJDb2RlQXQoMCkrMSx0aGlzLndzU29ja2V0LnNlbmQoU3RyaW5nLmZyb21DaGFyQ29kZSgxKSksdGhpcy51cGRhdGVSRkJTdGF0ZSgyKSxlKTowfX19LDcyNDoodCxlLGEpPT57XCJ1c2Ugc3RyaWN0XCI7YS5kKGUse206KCk9Pm99KTt2YXIgcz1hKDU2NSk7Y2xhc3Mgb3tjb25zdHJ1Y3Rvcih0LGUpe3RoaXMud3NTb2NrZXQ9dCx0aGlzLnVwZGF0ZVJGQlN0YXRlPWV9cHJvY2Vzc1N0YXRlKHQpe2xldCBlPTA7aWYodC5sZW5ndGg+PTQpe2lmKGU9NCwwIT09cy5yLlJlYWRJbnQodCwwKSl0aHJvdyBuZXcgRXJyb3IoXCJFcnJvci4gU3RvcHBpbmcuIFNlY3VyaXR5IHJlc3BvbnNlIG5vdCBOb25lLlwiKTtyZXR1cm4gdGhpcy53c1NvY2tldC5zZW5kKFN0cmluZy5mcm9tQ2hhckNvZGUoMSkpLHRoaXMudXBkYXRlUkZCU3RhdGUoMyksZX1yZXR1cm4gMH19fSwyNTY6KHQsZSxhKT0+e1widXNlIHN0cmljdFwiO2EuZChlLHtJOigpPT5pfSk7dmFyIHM9YSg1NjUpLG89YSg2MTEpO2NsYXNzIGl7Y29uc3RydWN0b3IodCxlKXt0aGlzLndzU29ja2V0PXQsdGhpcy5wYXJlbnQ9ZX1oYW5kbGVTZXJ2ZXJDdXRUZXh0KHQpe2lmKHQubGVuZ3RoPDgpcmV0dXJuIDA7Y29uc3QgZT1zLnIuUmVhZEludCh0LDQpKzg7aWYodC5sZW5ndGg8ZSlyZXR1cm4gMDtpZihudWxsIT10aGlzLnBhcmVudC5vbkt2bURhdGEpe2NvbnN0IGE9dC5zdWJzdHJpbmcoOCxlKTthLmxlbmd0aD49MTYmJlwiXFwwS3ZtRGF0YUNoYW5uZWxcIj09PWEuc3Vic3RyaW5nKDAsMTUpJiYodGhpcy5wYXJlbnQua3ZtRGF0YVN1cHBvcnRlZHx8KHRoaXMucGFyZW50Lmt2bURhdGFTdXBwb3J0ZWQ9ITAsY29uc29sZS5sb2coXCJLVk0gRGF0YSBDaGFubmVsIFN1cHBvcnRlZC5cIikpLCgtMT09PXRoaXMucGFyZW50Lm9uS3ZtRGF0YUFjayYmMTY9PT1hLmxlbmd0aHx8MCE9PWEuY2hhckNvZGVBdCgxNSkpJiYodGhpcy5wYXJlbnQub25Ldm1EYXRhQWNrPSEwKSwoMCxvLmYpKHRoaXMucGFyZW50LnVybHZhcnMpJiYoMCxvLmYpKHRoaXMucGFyZW50LnVybHZhcnMua3ZtZGF0YXRyYWNlKSYmY29uc29sZS5sb2coYEtWTS1SZWN2KCgke2EubGVuZ3RoLTE2fSkpOiAgJHthLnN1YnN0cmluZygxNil9YCksYS5sZW5ndGg+MTYmJnRoaXMucGFyZW50Lm9uS3ZtRGF0YShhLnN1YnN0cmluZygxNikpLCEwPT09dGhpcy5wYXJlbnQub25Ldm1EYXRhQWNrJiZ0aGlzLnBhcmVudC5vbkt2bURhdGFQZW5kaW5nLmxlbmd0aD4wJiZ0aGlzLndzU29ja2V0Lm9uU2VuZEt2bURhdGEodGhpcy5wYXJlbnQub25Ldm1EYXRhUGVuZGluZy5zaGlmdCgpKSl9cmV0dXJuIGV9fX0sOTQ2Oih0LGUsYSk9PntcInVzZSBzdHJpY3RcIjthLmQoZSx7QzooKT0+aX0pO3ZhciBzPWEoNTY1KSxvPWEoMTczKTtjbGFzcyBpe2NvbnN0cnVjdG9yKHQsZSxhKXt0aGlzLndzU29ja2V0PXQsdGhpcy5wYXJlbnQ9ZSx0aGlzLnVwZGF0ZVJGQlN0YXRlPWF9cHJvY2Vzc1N0YXRlKHQpe2xldCBlPTA7aWYodC5sZW5ndGg+PTI0KXt0aGlzLnBhcmVudC5yb3RhdGlvbj0wO2NvbnN0IGE9cy5yLlJlYWRJbnQodCwyMCk7aWYodC5sZW5ndGg8MjQrYSlyZXR1cm4gMDtlPTI0K2EsbnVsbCE9dGhpcy5wYXJlbnQudXBkYXRlU2NyZWVuRGltZW5zaW9ucyYmdGhpcy5wYXJlbnQudXBkYXRlU2NyZWVuRGltZW5zaW9ucyhzLnIuUmVhZFNob3J0KHQsMCkscy5yLlJlYWRTaG9ydCh0LDIpKSx0aGlzLnBhcmVudC5jYW52YXNDdHguY2FudmFzLndpZHRoPXRoaXMucGFyZW50LlNjcmVlbldpZHRoPXRoaXMucGFyZW50LnJ3aWR0aD10aGlzLnBhcmVudC53aWR0aD1zLnIuUmVhZFNob3J0KHQsMCksdGhpcy5wYXJlbnQuY2FudmFzQ3R4LmNhbnZhcy5oZWlnaHQ9dGhpcy5wYXJlbnQuU2NyZWVuSGVpZ2h0PXRoaXMucGFyZW50LnJoZWlnaHQ9dGhpcy5wYXJlbnQuaGVpZ2h0PXMuci5SZWFkU2hvcnQodCwyKTtsZXQgaT1cIlwiO3JldHVybiB0aGlzLnBhcmVudC51c2VaUkxFJiYoaSs9cy5yLkludFRvU3RyKDE2KSksaSs9cy5yLkludFRvU3RyKDApLGkrPXMuci5JbnRUb1N0cigxMDkyKSx0aGlzLnBhcmVudC5sb2dnZXIudmVyYm9zZShcIlNlbmQgc3VwcG9ydGVkIGVuY29kaW5nc1wiKSx0aGlzLndzU29ja2V0LnNlbmQoU3RyaW5nLmZyb21DaGFyQ29kZSgyLDApK3Muci5TaG9ydFRvU3RyKGkubGVuZ3RoLzQrMSkraStzLnIuSW50VG9TdHIoLTIyMykpLDE9PT10aGlzLnBhcmVudC5icHAmJnRoaXMud3NTb2NrZXQuc2VuZChTdHJpbmcuZnJvbUNoYXJDb2RlKDAsMCwwLDAsOCw4LDAsMSkrcy5yLlNob3J0VG9TdHIoNykrcy5yLlNob3J0VG9TdHIoNykrcy5yLlNob3J0VG9TdHIoMykrU3RyaW5nLmZyb21DaGFyQ29kZSg1LDIsMCwwLDAsMCkpLHRoaXMudXBkYXRlUkZCU3RhdGUoNCksdGhpcy5wYXJlbnQub25TdGF0ZUNoYW5nZSgzKSx0aGlzLnBhcmVudC5sb2dnZXIuaW5mbyhcIlN0YXJ0IG5ldyBmcmFtZS5cIiksby5YLnNlbmRSZWZyZXNoKHRoaXMucGFyZW50LHRoaXMud3NTb2NrZXQpLHRoaXMucGFyZW50Lm9sZE1vdXNlWD0tMSxlfXJldHVybiAwfX19LDM4OToodCxlLGEpPT57XCJ1c2Ugc3RyaWN0XCI7YS5kKGUse2V6OigpPT5zLmUsd1c6KCk9Pm8udyxVdDooKT0+aS5VLGxsOigpPT5yLmwsbUM6KCk9Pm4ubSxDdTooKT0+bC5DfSk7dmFyIHM9YSg3MjUpLG89YSgyMTIpLGk9YSg3MCkscj1hKDI2KSxuPWEoNzI0KSxsPWEoOTQ2KX0sOTg5Oih0LGUsYSk9PntcInVzZSBzdHJpY3RcIjthLmQoZSx7djooKT0+cn0pO3ZhciBzPWEoMzg5KSxvPWEoMjU2KSxpPWEoNjc5KTtjbGFzcyBye2NvbnN0cnVjdG9yKHQsZSxhKXt0aGlzLnN0YXRlUHJvY2Vzc29ycz17fSx0aGlzLnN0YXRlUHJvY2Vzc29yc1swXT1uZXcgcy53Vyh0LGEpLHRoaXMuc3RhdGVQcm9jZXNzb3JzWzFdPW5ldyBzLmxsKHQsYSksdGhpcy5zdGF0ZVByb2Nlc3NvcnNbMl09bmV3IHMubUModCxhKSx0aGlzLnN0YXRlUHJvY2Vzc29yc1szXT1uZXcgcy5DdSh0LGUsYSk7Y29uc3Qgcj1uZXcgby5JKHQsZSk7dGhpcy5zdGF0ZVByb2Nlc3NvcnNbNF09bmV3IHMuVXQodCxyLGEpLHRoaXMuc3RhdGVQcm9jZXNzb3JzW1wiMTAwcGx1c1wiXT1uZXcgcy5leih0LGUsbmV3IGkuWChlKSxhKX1nZXRQcm9jZXNzb3IodCl7cmV0dXJuIHQ8PTEwMD90aGlzLnN0YXRlUHJvY2Vzc29yc1t0XTp0aGlzLnN0YXRlUHJvY2Vzc29yc1tcIjEwMHBsdXNcIl19fX0sMTU1Oih0LGUsYSk9PntcInVzZSBzdHJpY3RcIjthLmQoZSx7UTooKT0+c30pO2NsYXNzIHN7Y29uc3RydWN0b3IodCl7dGhpcy5wcm9jZXNzRGF0YT10PT57bnVsbCE9dGhpcy50ZXJtaW5hbC5jYXB0dXJlJiYodGhpcy50ZXJtaW5hbC5jYXB0dXJlPVN0cmluZyh0aGlzLnRlcm1pbmFsLmNhcHR1cmUpK3QpO2xldCBlPVwiXCI7Zm9yKGxldCBhPTA7YTx0Lmxlbmd0aDthKyspe2NvbnN0IHM9dC5jaGFyQ29kZUF0KGEpO1wiSlwiPT09dFthXT90aGlzLmNsZWFyVGVybWluYWwoKTplKz0wIT0oMTI4JnMpP1N0cmluZy5mcm9tQ2hhckNvZGUodGhpcy50ZXJtaW5hbC5Bc2NpaVRvVW5pY29kZVsxMjcmc10pOmAke3RbYV19YH10aGlzLnByb2Nlc3NEYXRhVG9YdGVybShlKX0sdGhpcy50ZXJtaW5hbD10fX19LDM4Oih0LGUsYSk9PntcInVzZSBzdHJpY3RcIjthLmQoZSx7cTooKT0+aX0pO3ZhciBzPWEoOTIzKSxvPWEoNjExKTtjb25zdCBpPXtjb252ZXJ0QU1US2V5Q29kZTp0PT4oMCxvLmYpKHQuY29kZS5zdGFydHNXaXRoKFwiS2V5XCIpKSYmND09PXQuY29kZS5sZW5ndGg/dC5jb2RlLmNoYXJDb2RlQXQoMykrKCExPT09dC5zaGlmdEtleT8zMjowKTooMCxvLmYpKHQuY29kZS5zdGFydHNXaXRoKFwiRGlnaXRcIikpJiY2PT09dC5jb2RlLmxlbmd0aD90LmNvZGUuY2hhckNvZGVBdCg1KTooMCxvLmYpKHQuY29kZS5zdGFydHNXaXRoKFwiTnVtcGFkXCIpKSYmNz09PXQuY29kZS5sZW5ndGg/dC5jb2RlLmNoYXJDb2RlQXQoNik6cy5aW3QuY29kZV19fSw5MjM6KHQsZSxhKT0+e1widXNlIHN0cmljdFwiO2EuZChlLHtaOigpPT5zfSk7Y29uc3Qgcz17UGF1c2U6MTksQ2Fwc0xvY2s6MjAsU3BhY2U6MzIsUXVvdGU6MzksTWludXM6NDUsTnVtcGFkTXVsdGlwbHk6NDIsTnVtcGFkQWRkOjQzLFByaW50U2NyZWVuOjQ0LENvbW1hOjQ0LE51bXBhZFN1YnRyYWN0OjQ1LE51bXBhZERlY2ltYWw6NDYsUGVyaW9kOjQ2LFNsYXNoOjQ3LE51bXBhZERpdmlkZTo0NyxTZW1pY29sb246NTksRXF1YWw6NjEsT1NMZWZ0OjkxLEJyYWNrZXRMZWZ0OjkxLE9TUmlnaHQ6OTEsQmFja3NsYXNoOjkyLEJyYWNrZXRSaWdodDo5MyxDb250ZXh0TWVudTo5MyxCYWNrcXVvdGU6OTYsTnVtTG9jazoxNDQsU2Nyb2xsTG9jazoxNDUsQmFja3NwYWNlOjY1Mjg4LFRhYjo2NTI4OSxFbnRlcjo2NTI5MyxOdW1wYWRFbnRlcjo2NTI5MyxFc2NhcGU6NjUzMDcsRGVsZXRlOjY1NTM1LEhvbWU6NjUzNjAsUGFnZVVwOjY1MzY1LFBhZ2VEb3duOjY1MzY2LEFycm93TGVmdDo2NTM2MSxBcnJvd1VwOjY1MzYyLEFycm93UmlnaHQ6NjUzNjMsQXJyb3dEb3duOjY1MzY0LEVuZDo2NTM2NyxJbnNlcnQ6NjUzNzksRjE6NjU0NzAsRjI6NjU0NzEsRjM6NjU0NzIsRjQ6NjU0NzMsRjU6NjU0NzQsRjY6NjU0NzUsRjc6NjU0NzYsRjg6NjU0NzcsRjk6NjU0NzgsRjEwOjY1NDc5LEYxMTo2NTQ4MCxGMTI6NjU0ODEsU2hpZnRMZWZ0OjY1NTA1LFNoaWZ0UmlnaHQ6NjU1MDYsQ29udHJvbExlZnQ6NjU1MDcsQ29udHJvbFJpZ2h0OjY1NTA4LEFsdExlZnQ6NjU1MTMsQWx0UmlnaHQ6NjU1MTQsTWV0YUxlZnQ6NjU1MTEsTWV0YVJpZ2h0OjY1NTEyfX0sMTczOih0LGUsYSk9PntcInVzZSBzdHJpY3RcIjthLmQoZSx7WDooKT0+aX0pO3ZhciBzPWEoNTY1KSxvPWEoNjExKTtjb25zdCBpPXtzZW5kUmVmcmVzaCh0LGUpe2lmKCF0LmhvbGRpbmcpaWYodC5mb2N1c01vZGU+MCl7Y29uc3QgYT0yKnQuZm9jdXNNb2RlO2Uuc2VuZChTdHJpbmcuZnJvbUNoYXJDb2RlKDMsMSkrcy5yLlNob3J0VG9TdHIoTWF0aC5tYXgoTWF0aC5taW4odC5vbGRNb3VzZVgsdC5sYXN0TW91c2VYKS10LmZvY3VzTW9kZSwwKSkrcy5yLlNob3J0VG9TdHIoTWF0aC5tYXgoTWF0aC5taW4odC5vbGRNb3VzZVksdC5sYXN0TW91c2VZKS10LmZvY3VzTW9kZSwwKSkrcy5yLlNob3J0VG9TdHIoYStNYXRoLmFicyh0Lm9sZE1vdXNlWC10Lmxhc3RNb3VzZVgpKStzLnIuU2hvcnRUb1N0cihhK01hdGguYWJzKHQub2xkTW91c2VZLXQubGFzdE1vdXNlWSkpKSx0Lm9sZE1vdXNlWD10Lmxhc3RNb3VzZVgsdC5vbGRNb3VzZVk9dC5sYXN0TW91c2VZfWVsc2UgZS5zZW5kKFN0cmluZy5mcm9tQ2hhckNvZGUoMywxLDAsMCwwLDApK3Muci5TaG9ydFRvU3RyKHQucndpZHRoKStzLnIuU2hvcnRUb1N0cih0LnJoZWlnaHQpKX0sc2VuZEtleSh0LGUsYSl7aWYoXCJvYmplY3RcIj09dHlwZW9mIGUpZm9yKGNvbnN0IGEgaW4gZSl0aGlzLnNlbmRLZXkodCxlW2FdWzBdLGVbYV1bMV0pO2Vsc2UgdC5zZW5kKFN0cmluZy5mcm9tQ2hhckNvZGUoNCxhLDAsMCkrcy5yLkludFRvU3RyKGUpKX0sc2VuZEt2bURhdGEodCxlLGEpeyEwIT09dC5vbkt2bURhdGFBY2s/dC5vbkt2bURhdGFQZW5kaW5nLnB1c2goYSk6KCgwLG8uZikodC51cmx2YXJzKSYmKDAsby5mKSh0LnVybHZhcnMua3ZtZGF0YXRyYWNlKSYmY29uc29sZS5sb2coYEtWTS1TZW5kKCR7U3RyaW5nKGEubGVuZ3RoKX0pOiAke1N0cmluZyhhKX1gKSxhPVwiXFwwS3ZtRGF0YUNoYW5uZWxcXDBcIitTdHJpbmcoYSksZS5zZW5kKGAke1N0cmluZy5mcm9tQ2hhckNvZGUoNiwwLDAsMCl9JHtzLnIuSW50VG9TdHIoYS5sZW5ndGgpfSR7U3RyaW5nKGEpfWApLHQub25Ldm1EYXRhQWNrPSExKX0sc2VuZEtlZXBBbGl2ZSh0LGUpe3QubGFzdEtlZXBBbGl2ZTxEYXRlLm5vdygpLTVlMyYmKHQubGFzdEtlZXBBbGl2ZT1EYXRlLm5vdygpLGUuc2VuZChTdHJpbmcuZnJvbUNoYXJDb2RlKDYsMCwwLDApK3Muci5JbnRUb1N0cigxNikrXCJcXDBLdm1EYXRhQ2hhbm5lbFxcMFwiKSl9LHNlbmRDdHJsQWx0RGVsTXNnKHQpe3RoaXMuc2VuZENhZCh0KX0sc2VuZENhZCh0KXt0aGlzLnNlbmRLZXkodCw2NTUwNywxKSx0aGlzLnNlbmRLZXkodCw2NTUxMywxKSx0aGlzLnNlbmRLZXkodCw2NTUzNSwxKSx0aGlzLnNlbmRLZXkodCw2NTUzNSwwKSx0aGlzLnNlbmRLZXkodCw2NTUxMywwKSx0aGlzLnNlbmRLZXkodCw2NTUwNywwKX19fSw2NDQ6KHQsZSxhKT0+e1widXNlIHN0cmljdFwiO2EuZChlLHtqOigpPT5zfSk7Y29uc3Qgcz17cHV0SW1hZ2UodCxlLGEpe2lmKHQuaG9sZGluZylyZXR1cm47Y29uc3Qgbz1zLmFyb3RYKHQsZSxhKTthPXMuYXJvdFkodCxlLGEpLGU9byx0LmNhbnZhc0N0eC5wdXRJbWFnZURhdGEodC5zcGFyZSxlLGEpfSxzZXRQaXhlbCh0LGUsYSl7bGV0IG8saSxyPTQqYTt0LnJvdGF0aW9uPjAmJigxPT09dC5yb3RhdGlvbj8obz1hJXQuc3BhcmV3LGk9TWF0aC5mbG9vcihhL3Quc3BhcmV3KSxyPTQqKGE9byp0LnNwYXJldzIrKHQuc3BhcmV3Mi0xLWkpKSk6Mj09PXQucm90YXRpb24/cj10LnNwYXJldyp0LnNwYXJlaCo0LTQtcjozPT09dC5yb3RhdGlvbiYmKG89YSV0LnNwYXJldyxpPU1hdGguZmxvb3IoYS90LnNwYXJldykscj00KihhPSh0LnNwYXJldzItMS1vKSp0LnNwYXJldzIraSkpKSwxPT09dC5icHA/KHQuc3BhcmUuZGF0YVtyKytdPTIyNCZlLHQuc3BhcmUuZGF0YVtyKytdPSgyOCZlKTw8Myx0LnNwYXJlLmRhdGFbcisrXT1zLmZpeENvbG9yKCgzJmUpPDw2KSk6KHQuc3BhcmUuZGF0YVtyKytdPWU+PjgmMjQ4LHQuc3BhcmUuZGF0YVtyKytdPWU+PjMmMjUyLHQuc3BhcmUuZGF0YVtyKytdPSgzMSZlKTw8MyksdC5zcGFyZS5kYXRhW3JdPTI1NX0sYXJvdFg6KHQsZSxhKT0+MD09PXQucm90YXRpb24/ZToxPT09dC5yb3RhdGlvbj90LmNhbnZhc0N0eC5jYW52YXMud2lkdGgtdC5zcGFyZXcyLWE6Mj09PXQucm90YXRpb24/dC5jYW52YXNDdHguY2FudmFzLndpZHRoLXQuc3BhcmV3Mi1lOjM9PT10LnJvdGF0aW9uP2E6MCxhcm90WToodCxlLGEpPT4wPT09dC5yb3RhdGlvbj9hOjE9PT10LnJvdGF0aW9uP2U6Mj09PXQucm90YXRpb24/dC5jYW52YXNDdHguY2FudmFzLmhlaWdodC10LnNwYXJlaDItYTozPT09dC5yb3RhdGlvbj90LmNhbnZhc0N0eC5jYW52YXMuaGVpZ2h0LXQuc3BhcmVoLWU6MCxjcm90WDoodCxlLGEpPT4wPT09dC5yb3RhdGlvbj9lOjE9PT10LnJvdGF0aW9uP2E6Mj09PXQucm90YXRpb24/dC5jYW52YXNDdHguY2FudmFzLndpZHRoLWU6Mz09PXQucm90YXRpb24/dC5jYW52YXNDdHguY2FudmFzLmhlaWdodC1hOjAsY3JvdFk6KHQsZSxhKT0+MD09PXQucm90YXRpb24/YToxPT09dC5yb3RhdGlvbj90LmNhbnZhc0N0eC5jYW52YXMud2lkdGgtZToyPT09dC5yb3RhdGlvbj90LmNhbnZhc0N0eC5jYW52YXMuaGVpZ2h0LWE6Mz09PXQucm90YXRpb24/ZTowLHJvdFg6KHQsZSxhKT0+MD09PXQucm90YXRpb258fDE9PT10LnJvdGF0aW9uP2U6Mj09PXQucm90YXRpb24/ZS10LmNhbnZhc0N0eC5jYW52YXMud2lkdGg6Mz09PXQucm90YXRpb24/ZS10LmNhbnZhc0N0eC5jYW52YXMuaGVpZ2h0OjAscm90WToodCxlLGEpPT4wPT09dC5yb3RhdGlvbj9hOjE9PT10LnJvdGF0aW9uP2EtdC5jYW52YXNDdHguY2FudmFzLndpZHRoOjI9PT10LnJvdGF0aW9uP2EtdC5jYW52YXNDdHguY2FudmFzLmhlaWdodDozPT09dC5yb3RhdGlvbj9hOjAsc2V0Um90YXRpb24odCxlKXtmb3IoO2U8MDspZSs9NDtjb25zdCBhPWUlNDtpZih0LmhvbGRpbmcpcmV0dXJuIHQucm90YXRpb249YSwhMTtpZihhPT09dC5yb3RhdGlvbilyZXR1cm4hMDtsZXQgbz10LmNhbnZhc0N0eC5jYW52YXMud2lkdGgsaT10LmNhbnZhc0N0eC5jYW52YXMuaGVpZ2h0OzEhPT10LnJvdGF0aW9uJiYzIT09dC5yb3RhdGlvbnx8KG89dC5jYW52YXNDdHguY2FudmFzLmhlaWdodCxpPXQuY2FudmFzQ3R4LmNhbnZhcy53aWR0aCksbnVsbD09dC50Y2FudmFzJiYodC50Y2FudmFzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJjYW52YXNcIikpO2NvbnN0IHI9dC50Y2FudmFzLmdldENvbnRleHQoXCIyZFwiKTtyZXR1cm4gci5zZXRUcmFuc2Zvcm0oMSwwLDAsMSwwLDApLHIuY2FudmFzLndpZHRoPW8sci5jYW52YXMuaGVpZ2h0PWksci5yb3RhdGUoLTkwKnQucm90YXRpb24qTWF0aC5QSS8xODApLDA9PT10LnJvdGF0aW9uJiZyLmRyYXdJbWFnZSh0LmNhbnZhc0N0eC5jYW52YXMsMCwwKSwxPT09dC5yb3RhdGlvbiYmci5kcmF3SW1hZ2UodC5jYW52YXNDdHguY2FudmFzLC10LmNhbnZhc0N0eC5jYW52YXMud2lkdGgsMCksMj09PXQucm90YXRpb24mJnIuZHJhd0ltYWdlKHQuY2FudmFzQ3R4LmNhbnZhcywtdC5jYW52YXNDdHguY2FudmFzLndpZHRoLC10LmNhbnZhc0N0eC5jYW52YXMuaGVpZ2h0KSwzPT09dC5yb3RhdGlvbiYmci5kcmF3SW1hZ2UodC5jYW52YXNDdHguY2FudmFzLDAsLXQuY2FudmFzQ3R4LmNhbnZhcy5oZWlnaHQpLDAhPT10LnJvdGF0aW9uJiYyIT09dC5yb3RhdGlvbnx8KHQuY2FudmFzQ3R4LmNhbnZhcy5oZWlnaHQ9byx0LmNhbnZhc0N0eC5jYW52YXMud2lkdGg9aSksMSE9PXQucm90YXRpb24mJjMhPT10LnJvdGF0aW9ufHwodC5jYW52YXNDdHguY2FudmFzLmhlaWdodD1pLHQuY2FudmFzQ3R4LmNhbnZhcy53aWR0aD1vKSx0LmNhbnZhc0N0eC5zZXRUcmFuc2Zvcm0oMSwwLDAsMSwwLDApLHQuY2FudmFzQ3R4LnJvdGF0ZSg5MCphKk1hdGguUEkvMTgwKSx0LnJvdGF0aW9uPWEsdC5jYW52YXNDdHguZHJhd0ltYWdlKHQudGNhbnZhcyxzLnJvdFgodCwwLDApLHMucm90WSh0LDAsMCkpLHQud2lkdGg9dC5jYW52YXNDdHguY2FudmFzLndpZHRoLHQuaGVpZ2h0PXQuY2FudmFzQ3R4LmNhbnZhcy5oZWlnaHQsbnVsbCE9dC5vblNjcmVlblJlc2l6ZSYmdC5vblNjcmVlblJlc2l6ZSh0LndpZHRoLHQuaGVpZ2h0LHQuY2FudmFzSWQpLCEwfSxmaXhDb2xvcjp0PT50PjEyNz90KzMyOnR9fSw3MTc6KHQsZSxhKT0+e1widXNlIHN0cmljdFwiO2EuZChlLHtFOigpPT5ufSk7dmFyIHMsbz1hKDM4KSxpPWEoMTczKSxyPWEoNjExKTshZnVuY3Rpb24odCl7dFt0LlVwPTBdPVwiVXBcIix0W3QuRG93bj0xXT1cIkRvd25cIn0oc3x8KHM9e30pKTtjbGFzcyBue2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5Db21tcz1lLHRoaXMucGFyZW50PXR9R3JhYktleUlucHV0KCl7dGhpcy5LZXlJbnB1dEdyYWJ8fChkb2N1bWVudC5vbmtleXVwPXRoaXMuaGFuZGxlS2V5VXAuYmluZCh0aGlzKSxkb2N1bWVudC5vbmtleWRvd249dGhpcy5oYW5kbGVLZXlEb3duLmJpbmQodGhpcyksZG9jdW1lbnQub25rZXlwcmVzcz10aGlzLmhhbmRsZUtleXMuYmluZCh0aGlzKSx0aGlzLktleUlucHV0R3JhYj0hMCl9VW5HcmFiS2V5SW5wdXQoKXt0aGlzLktleUlucHV0R3JhYiYmKGRvY3VtZW50Lm9ua2V5dXA9bnVsbCxkb2N1bWVudC5vbmtleWRvd249bnVsbCxkb2N1bWVudC5vbmtleXByZXNzPW51bGwsdGhpcy5LZXlJbnB1dEdyYWI9ITEpfWhhbmRsZUtleXModCl7cmV0dXJuIHRoaXMuaGFsdEV2ZW50KHQpfWhhbHRFdmVudCh0KXtyZXR1cm4oMCxyLmYpKHQucHJldmVudERlZmF1bHQpJiZ0LnByZXZlbnREZWZhdWx0KCksKDAsci5mKSh0LnN0b3BQcm9wYWdhdGlvbikmJnQuc3RvcFByb3BhZ2F0aW9uKCksITF9aGFuZGxlS2V5VXAodCl7cmV0dXJuIHRoaXMuaGFuZGxlS2V5RXZlbnQocy5VcCx0KX1oYW5kbGVLZXlEb3duKHQpe3JldHVybiB0aGlzLmhhbmRsZUtleUV2ZW50KHMuRG93bix0KX1oYW5kbGVLZXlFdmVudCh0LGUpe2xldCBhPWU7aWYoKDAsci5mKShhKXx8KGE9d2luZG93LmV2ZW50KSwoMCxyLmYpKGEuY29kZSkpe2NvbnN0IGU9by5xLmNvbnZlcnRBTVRLZXlDb2RlKGEpO3RoaXMucGFyZW50LmxvZ2dlci52ZXJib3NlKGBLZXkgJHt0fSA6ICR7U3RyaW5nKGUpfWApLG51bGwhPWUmJmkuWC5zZW5kS2V5KHRoaXMuQ29tbXMsZSx0KX1lbHNle2xldCBlPWEua2V5Q29kZTsxNzM9PT1lJiYoZT0xODkpLDYxPT09ZSYmKGU9MTg3KTtsZXQgcz1lOyExPT09YS5zaGlmdEtleSYmZT49NjUmJmU8PTkwJiYocz1lKzMyKSxlPj0xMTImJmU8PTEyNCYmKHM9ZSs2NTM1OCksOD09PWUmJihzPTY1Mjg4KSw5PT09ZSYmKHM9NjUyODkpLDEzPT09ZSYmKHM9NjUyOTMpLDE2PT09ZSYmKHM9NjU1MDUpLDE3PT09ZSYmKHM9NjU1MDcpLDE4PT09ZSYmKHM9NjU1MTMpLDI3PT09ZSYmKHM9NjUzMDcpLDMzPT09ZSYmKHM9NjUzNjUpLDM0PT09ZSYmKHM9NjUzNjYpLDM1PT09ZSYmKHM9NjUzNjcpLDM2PT09ZSYmKHM9NjUzNjApLDM3PT09ZSYmKHM9NjUzNjEpLDM4PT09ZSYmKHM9NjUzNjIpLDM5PT09ZSYmKHM9NjUzNjMpLDQwPT09ZSYmKHM9NjUzNjQpLDQ1PT09ZSYmKHM9NjUzNzkpLDQ2PT09ZSYmKHM9NjU1MzUpLGU+PTk2JiZlPD0xMDUmJihzPWUtNDgpLDEwNj09PWUmJihzPTQyKSwxMDc9PT1lJiYocz00MyksMTA5PT09ZSYmKHM9NDUpLDExMD09PWUmJihzPTQ2KSwxMTE9PT1lJiYocz00NyksMTg2PT09ZSYmKHM9NTkpLDE4Nz09PWUmJihzPTYxKSwxODg9PT1lJiYocz00NCksMTg5PT09ZSYmKHM9NDUpLDE5MD09PWUmJihzPTQ2KSwxOTE9PT1lJiYocz00NyksMTkyPT09ZSYmKHM9OTYpLDIxOT09PWUmJihzPTkxKSwyMjA9PT1lJiYocz05MiksMjIxPT09ZSYmKHM9OTMpLDIyMj09PWUmJihzPTM5KSx0aGlzLnBhcmVudC5sb2dnZXIudmVyYm9zZShgS2V5ICR7dH06ICR7ZX0gID0gJHtzfWApLGkuWC5zZW5kS2V5KHRoaXMuQ29tbXMscyx0KX1yZXR1cm4gdGhpcy5oYWx0RXZlbnQoYSl9fX0sMzM6KHQsZSxhKT0+e1widXNlIHN0cmljdFwiO2EuZChlLHt4OigpPT5yfSk7dmFyIHM9YSg1NjUpLG89YSg2NDQpLGk9YSg2MTEpO2NsYXNzIHJ7Y29uc3RydWN0b3IodCxlLGEpe3RoaXMucGFyZW50PXQsdGhpcy5jb21tPWUsdGhpcy5kZWJvdW5jZVRpbWU9YSx0aGlzLm1vdXNlQ2xpY2tDb21wbGV0ZWQ9ITAsdGhpcy5sYXN0RXZlbnQ9bnVsbH1HcmFiTW91c2VJbnB1dCgpe3RoaXMuTW91c2VJbnB1dEdyYWJ8fCh0aGlzLk1vdXNlSW5wdXRHcmFiPSEwKX1VbkdyYWJNb3VzZUlucHV0KCl7aWYoIXRoaXMuTW91c2VJbnB1dEdyYWIpcmV0dXJuO2NvbnN0IHQ9dGhpcy5wYXJlbnQuY2FudmFzQ3R4LmNhbnZhczt0Lm9ubW91c2Vtb3ZlPW51bGwsdC5vbm1vdXNldXA9bnVsbCx0Lm9ubW91c2Vkb3duPW51bGwsdGhpcy5Nb3VzZUlucHV0R3JhYj0hMX1tb3VzZWRvd24odCl7cmV0dXJuIHRoaXMucGFyZW50LmJ1dHRvbm1hc2t8PTE8PHQuYnV0dG9uLHRoaXMubW91c2Vtb3ZlKHQpfW1vdXNldXAodCl7cmV0dXJuIHRoaXMucGFyZW50LmJ1dHRvbm1hc2smPTY1NTM1LSgxPDx0LmJ1dHRvbiksdGhpcy5tb3VzZW1vdmUodCl9bW91c2Vtb3ZlKHQpe2lmKDQhPT10aGlzLnBhcmVudC5zdGF0ZSlyZXR1cm4hMDtjb25zdCBlPXRoaXMuZ2V0UG9zaXRpb25PZkNvbnRyb2wodGhpcy5wYXJlbnQuY2FudmFzQ29udHJvbCk7aWYodGhpcy5wYXJlbnQubGFzdE1vdXNlWD0odC5wYWdlWC1lWzBdKSoodGhpcy5wYXJlbnQuY2FudmFzQ29udHJvbC5oZWlnaHQvdGhpcy5wYXJlbnQuY2FudmFzQ29udHJvbC5vZmZzZXRIZWlnaHQpLHRoaXMucGFyZW50Lmxhc3RNb3VzZVk9KE51bWJlcih0LnBhZ2VZLWVbMV0pKygoMCxpLmYpKHRoaXMucGFyZW50LnNjcm9sbGRpdik/TnVtYmVyKHRoaXMucGFyZW50LnNjcm9sbGRpdi5zY3JvbGxUb3ApOjApKSoodGhpcy5wYXJlbnQuY2FudmFzQ29udHJvbC53aWR0aC90aGlzLnBhcmVudC5jYW52YXNDb250cm9sLm9mZnNldFdpZHRoKSwoMCxpLmYpKHRoaXMucGFyZW50Lm5vTW91c2VSb3RhdGUpfHwodGhpcy5wYXJlbnQubGFzdE1vdXNlWDI9by5qLmNyb3RYKHRoaXMucGFyZW50LHRoaXMucGFyZW50Lmxhc3RNb3VzZVgsdGhpcy5wYXJlbnQubGFzdE1vdXNlWSksdGhpcy5wYXJlbnQubGFzdE1vdXNlWT1vLmouY3JvdFkodGhpcy5wYXJlbnQsdGhpcy5wYXJlbnQubGFzdE1vdXNlWCx0aGlzLnBhcmVudC5sYXN0TW91c2VZKSx0aGlzLnBhcmVudC5sYXN0TW91c2VYPXRoaXMucGFyZW50Lmxhc3RNb3VzZVgyKSx0aGlzLmNvbW0uc2VuZChTdHJpbmcuZnJvbUNoYXJDb2RlKDUsdGhpcy5wYXJlbnQuYnV0dG9ubWFzaykrcy5yLlNob3J0VG9TdHIodGhpcy5wYXJlbnQubGFzdE1vdXNlWCkrcy5yLlNob3J0VG9TdHIodGhpcy5wYXJlbnQubGFzdE1vdXNlWSkpLHRoaXMucGFyZW50LnNldERlc2tGb2N1cyhcIkRlc2tGb2N1c1wiLHRoaXMucGFyZW50LmZvY3VzTW9kZSksMCE9PXRoaXMucGFyZW50LmZvY3VzTW9kZSl7Y29uc3QgdD1NYXRoLm1pbih0aGlzLnBhcmVudC5sYXN0TW91c2VYLHRoaXMucGFyZW50LmNhbnZhc0NvbnRyb2wud2lkdGgtdGhpcy5wYXJlbnQuZm9jdXNNb2RlKSxhPU1hdGgubWluKHRoaXMucGFyZW50Lmxhc3RNb3VzZVksdGhpcy5wYXJlbnQuY2FudmFzQ29udHJvbC5oZWlnaHQtdGhpcy5wYXJlbnQuZm9jdXNNb2RlKSxzPTIqdGhpcy5wYXJlbnQuZm9jdXNNb2RlLG89dGhpcy5wYXJlbnQuY2FudmFzQ29udHJvbCxpPW8ub2Zmc2V0SGVpZ2h0L3RoaXMucGFyZW50LmNhbnZhc0NvbnRyb2wuaGVpZ2h0LHI9by5vZmZzZXRXaWR0aC90aGlzLnBhcmVudC5jYW52YXNDb250cm9sLndpZHRoLG49dGhpcy5wYXJlbnQuZ2V0RGVza0ZvY3VzKFwiRGVza0ZvY3VzXCIpLGw9dGhpcy5nZXRQb3NpdGlvbk9mQ29udHJvbCh0aGlzLnBhcmVudC5jYW52YXNDb250cm9sLnBhcmVudEVsZW1lbnQpO24ubGVmdD1gJHtNYXRoLm1heCgodC10aGlzLnBhcmVudC5mb2N1c01vZGUpKmksMCkrKGVbMF0tbFswXSl9cHhgLG4udG9wPWAke01hdGgubWF4KChhLXRoaXMucGFyZW50LmZvY3VzTW9kZSkqciwwKSsoZVsxXS1sWzFdKX1weGAsbi53aWR0aD1zKmktNitcInB4XCIsbi5oZWlnaHQ9cyppLTYrXCJweFwifXJldHVybiB0aGlzLmhhbHRFdmVudCh0KX1oYWx0RXZlbnQodCl7cmV0dXJuKDAsaS5mKSh0LnByZXZlbnREZWZhdWx0KSYmdC5wcmV2ZW50RGVmYXVsdCgpLCgwLGkuZikodC5zdG9wUHJvcGFnYXRpb24pJiZ0LnN0b3BQcm9wYWdhdGlvbigpLCExfWdldFBvc2l0aW9uT2ZDb250cm9sKHQpe2NvbnN0IGU9QXJyYXkoMik7ZVswXT1lWzFdPTA7bGV0IGE9dDtmb3IoO251bGwhPWE7KWVbMF09TnVtYmVyKGVbMF0pK051bWJlcihhLm9mZnNldExlZnQpLGVbMV09TnVtYmVyKGVbMV0pK051bWJlcihhLm9mZnNldFRvcCksYT1hLm9mZnNldFBhcmVudDtyZXR1cm4gZX19fSw2MTE6KHQsZSxhKT0+e1widXNlIHN0cmljdFwiO2EuZChlLHtmOigpPT5zfSk7Y29uc3Qgcz10PT5udWxsIT10JiZcIlwiIT09dCYmITEhPT10JiYwIT09dH0sODoodCxlLGEpPT57XCJ1c2Ugc3RyaWN0XCI7YS5kKGUse3FEOigpPT5zLnEsWG46KCk9Pm8uWCxqdzooKT0+aS5qLEVCOigpPT5yLkUseHg6KCk9Pm4ueCxmUTooKT0+bC5mfSk7dmFyIHM9YSgzOCksbz1hKDE3MyksaT1hKDY0NCkscj1hKDcxNyksbj1hKDMzKSxsPWEoNjExKX0sMzA1Om1vZHVsZT0+e3ZhciBaTElCPVpMSUJ8fHt9LEJBU0UsTk1BWDt2b2lkIDA9PT1aTElCLmNvbW1vbl9pbml0aWFsaXplZCYmKFpMSUIuWl9OT19GTFVTSD0wLFpMSUIuWl9QQVJUSUFMX0ZMVVNIPTEsWkxJQi5aX1NZTkNfRkxVU0g9MixaTElCLlpfRlVMTF9GTFVTSD0zLFpMSUIuWl9GSU5JU0g9NCxaTElCLlpfQkxPQ0s9NSxaTElCLlpfVFJFRVM9NixaTElCLlpfT0s9MCxaTElCLlpfU1RSRUFNX0VORD0xLFpMSUIuWl9ORUVEX0RJQ1Q9MixaTElCLlpfRVJSTk89LTEsWkxJQi5aX1NUUkVBTV9FUlJPUj0tMixaTElCLlpfREFUQV9FUlJPUj0tMyxaTElCLlpfTUVNX0VSUk9SPS00LFpMSUIuWl9CVUZfRVJST1I9LTUsWkxJQi5aX1ZFUlNJT05fRVJST1I9LTYsWkxJQi5aX0RFRkxBVEVEPTgsWkxJQi56X3N0cmVhbT1mdW5jdGlvbigpe3RoaXMubmV4dF9pbj0wLHRoaXMuYXZhaWxfaW49MCx0aGlzLnRvdGFsX2luPTAsdGhpcy5uZXh0X291dD0wLHRoaXMuYXZhaWxfb3V0PTAsdGhpcy50b3RhbF9vdXQ9MCx0aGlzLm1zZz1udWxsLHRoaXMuc3RhdGU9bnVsbCx0aGlzLmRhdGFfdHlwZT0wLHRoaXMuYWRsZXI9MCx0aGlzLmlucHV0X2RhdGE9XCJcIix0aGlzLm91dHB1dF9kYXRhPVwiXCIsdGhpcy5lcnJvcj0wLHRoaXMuY2hlY2tzdW1fZnVuY3Rpb249bnVsbH0sWkxJQi5nel9oZWFkZXI9ZnVuY3Rpb24oKXt0aGlzLnRleHQ9MCx0aGlzLnRpbWU9MCx0aGlzLnhmbGFncz0wLHRoaXMub3M9MjU1LHRoaXMuZXh0cmE9bnVsbCx0aGlzLmV4dHJhX2xlbj0wLHRoaXMuZXh0cmFfbWF4PTAsdGhpcy5uYW1lPW51bGwsdGhpcy5uYW1lX21heD0wLHRoaXMuY29tbWVudD1udWxsLHRoaXMuY29tbV9tYXg9MCx0aGlzLmhjcmM9MCx0aGlzLmRvbmU9MH0sWkxJQi5jb21tb25faW5pdGlhbGl6ZWQ9ITApLHZvaWQgMD09PVpMSUImJmFsZXJ0KFwiWkxJQiBpcyBub3QgZGVmaW5lZC4gIFNSQyB6bGliLmpzIGJlZm9yZSB6bGliLWluZmxhdGUuanNcIiksZnVuY3Rpb24oKXt2YXIgREVGX1dCSVRTPTE1LEhFQUQ9MCxGTEFHUz0xLFRJTUU9MixPUz0zLEVYTEVOPTQsRVhUUkE9NSxOQU1FPTYsQ09NTUVOVD03LEhDUkM9OCxESUNUSUQ9OSxESUNUPTEwLFRZUEU9MTEsVFlQRURPPTEyLFNUT1JFRD0xMyxDT1BZXz0xNCxDT1BZPTE1LFRBQkxFPTE2LExFTkxFTlM9MTcsQ09ERUxFTlM9MTgsTEVOXz0xOSxMRU49MjAsTEVORVhUPTIxLERJU1Q9MjIsRElTVEVYVD0yMyxNQVRDSD0yNCxMSVQ9MjUsQ0hFQ0s9MjYsTEVOR1RIPTI3LERPTkU9MjgsQkFEPTI5LE1FTT0zMCxTWU5DPTMxLEVOT1VHSF9MRU5TPTg1MixFTk9VR0hfRElTVFM9NTkyLEVOT1VHSD1FTk9VR0hfTEVOUytFTk9VR0hfRElTVFMsQ09ERVM9MCxMRU5TPTEsRElTVFM9MixpbmZsYXRlX3RhYmxlX2xiYXNlPVszLDQsNSw2LDcsOCw5LDEwLDExLDEzLDE1LDE3LDE5LDIzLDI3LDMxLDM1LDQzLDUxLDU5LDY3LDgzLDk5LDExNSwxMzEsMTYzLDE5NSwyMjcsMjU4LDAsMF0saW5mbGF0ZV90YWJsZV9sZXh0PVsxNiwxNiwxNiwxNiwxNiwxNiwxNiwxNiwxNywxNywxNywxNywxOCwxOCwxOCwxOCwxOSwxOSwxOSwxOSwyMCwyMCwyMCwyMCwyMSwyMSwyMSwyMSwxNiwyMDMsNjldLGluZmxhdGVfdGFibGVfZGJhc2U9WzEsMiwzLDQsNSw3LDksMTMsMTcsMjUsMzMsNDksNjUsOTcsMTI5LDE5MywyNTcsMzg1LDUxMyw3NjksMTAyNSwxNTM3LDIwNDksMzA3Myw0MDk3LDYxNDUsODE5MywxMjI4OSwxNjM4NSwyNDU3NywwLDBdLGluZmxhdGVfdGFibGVfZGV4dD1bMTYsMTYsMTYsMTYsMTcsMTcsMTgsMTgsMTksMTksMjAsMjAsMjEsMjEsMjIsMjIsMjMsMjMsMjQsMjQsMjUsMjUsMjYsMjYsMjcsMjcsMjgsMjgsMjksMjksNjQsNjRdO2Z1bmN0aW9uIGluZmxhdGVfdGFibGUodCxlKXt2YXIgYSxzLG8saSxyLG4sbCxoLGMscCxkLHYsYix1LGYsZyxTLG0sXyxDLEEsRSxJPXQubmV4dCxrPWU9PURJU1RTP3QuZGlzdGJpdHM6dC5sZW5iaXRzLFQ9dC53b3JrLHc9dC5sZW5zLEI9ZT09RElTVFM/dC5ubGVuOjAsUj10LmNvZGVzO2E9ZT09TEVOUz90Lm5sZW46ZT09RElTVFM/dC5uZGlzdDoxOTt2YXIgRD1uZXcgQXJyYXkoMTYpLHg9bmV3IEFycmF5KDE2KTtmb3Iocz0wO3M8PTE1O3MrKylEW3NdPTA7Zm9yKG89MDtvPGE7bysrKURbd1tCK29dXSsrO2ZvcihuPWsscj0xNTtyPj0xJiYwPT1EW3JdO3ItLSk7aWYobj5yJiYobj1yKSwwPT1yKXJldHVybiBnPXtvcDo2NCxiaXRzOjEsdmFsOjB9LFJbSSsrXT1nLFJbSSsrXT1nLGU9PURJU1RTP3QuZGlzdGJpdHM9MTp0LmxlbmJpdHM9MSx0Lm5leHQ9SSwwO2ZvcihpPTE7aTxyJiYwPT1EW2ldO2krKyk7Zm9yKG48aSYmKG49aSksYz0xLHM9MTtzPD0xNTtzKyspaWYoYzw8PTEsKGMtPURbc10pPDApcmV0dXJuLTE7aWYoYz4wJiYoZT09Q09ERVN8fDEhPXIpKXJldHVybiB0Lm5leHQ9SSwtMTtmb3IoeFsxXT0wLHM9MTtzPDE1O3MrKyl4W3MrMV09eFtzXStEW3NdO2ZvcihvPTA7bzxhO28rKykwIT13W0Irb10mJihUW3hbd1tCK29dXSsrXT1vKTtzd2l0Y2goZSl7Y2FzZSBDT0RFUzptPUM9VCxfPTAsQT0wLEU9MTk7YnJlYWs7Y2FzZSBMRU5TOm09aW5mbGF0ZV90YWJsZV9sYmFzZSxfPS0yNTcsQz1pbmZsYXRlX3RhYmxlX2xleHQsQT0tMjU3LEU9MjU2O2JyZWFrO2RlZmF1bHQ6bT1pbmZsYXRlX3RhYmxlX2RiYXNlLEM9aW5mbGF0ZV90YWJsZV9kZXh0LF89MCxBPTAsRT0tMX1pZihkPTAsbz0wLHM9aSxTPUksbD1uLGg9MCx1PS0xLGY9KHA9MTw8biktMSxlPT1MRU5TJiZwPj1FTk9VR0hfTEVOU3x8ZT09RElTVFMmJnA+PUVOT1VHSF9ESVNUUylyZXR1cm4gdC5uZXh0PUksMTtmb3IoOzspe2c9e29wOjAsYml0czpzLWgsdmFsOjB9LFRbb108RT9nLnZhbD1UW29dOlRbb10+RT8oZy5vcD1DW0ErVFtvXV0sZy52YWw9bVtfK1Rbb11dKTpnLm9wPTk2LHY9MTw8cy1oLGk9Yj0xPDxsO2Rve1JbUysoZD4+PmgpKyhiLT12KV09Z313aGlsZSgwIT1iKTtmb3Iodj0xPDxzLTE7ZCZ2Oyl2Pj4+PTE7aWYoMCE9dj8oZCY9di0xLGQrPXYpOmQ9MCxvKyssMD09LS1EW3NdKXtpZihzPT1yKWJyZWFrO3M9d1tCK1Rbb11dfWlmKHM+biYmKGQmZikhPXUpe2ZvcigwPT1oJiYoaD1uKSxTKz1pLGM9MTw8KGw9cy1oKTtsK2g8ciYmISgoYy09RFtsK2hdKTw9MCk7KWwrKyxjPDw9MTtpZihwKz0xPDxsLGU9PUxFTlMmJnA+PUVOT1VHSF9MRU5TfHxlPT1ESVNUUyYmcD49RU5PVUdIX0RJU1RTKXJldHVybiB0Lm5leHQ9SSwxO1JbSSsodT1kJmYpXT17b3A6bCxiaXRzOm4sdmFsOlMtSX19fXJldHVybiAwIT1kJiYoUltTK2RdPXtvcDo2NCxiaXRzOnMtaCx2YWw6MH0pLHQubmV4dD1JK3AsZT09RElTVFM/dC5kaXN0Yml0cz1uOnQubGVuYml0cz1uLDB9ZnVuY3Rpb24gaW5mbGF0ZV9mYXN0KHQsZSl7dmFyIGEscyxvLGkscixuLGwsaCxjLHAsZCx2LGIsdSxmLGcsUyxtLF8sQyxBLEUsST0tMSxrPS0xO2E9dC5zdGF0ZSxzPXQuaW5wdXRfZGF0YSxpPShvPXQubmV4dF9pbikrdC5hdmFpbF9pbi01LG49KHI9dC5uZXh0X291dCktKGUtdC5hdmFpbF9vdXQpLGw9cisodC5hdmFpbF9vdXQtMjU3KSxoPWEud3NpemUsYz1hLndoYXZlLHA9YS53bmV4dCxkPWEud2luZG93LHY9YS5ob2xkLGI9YS5iaXRzLHU9YS5jb2RlcyxmPWEubGVuY29kZSxnPWEuZGlzdGNvZGUsUz0oMTw8YS5sZW5iaXRzKS0xLG09KDE8PGEuZGlzdGJpdHMpLTE7dDpkb3tiPDE1JiYodis9KDI1NSZzLmNoYXJDb2RlQXQobysrKSk8PGIsYis9OCx2Kz0oMjU1JnMuY2hhckNvZGVBdChvKyspKTw8YixiKz04KSxfPXVbZisodiZTKV07ZTpmb3IoOzspe2lmKHY+Pj49Qz1fLmJpdHMsYi09QywwPT0oQz1fLm9wKSl0Lm91dHB1dF9kYXRhKz1TdHJpbmcuZnJvbUNoYXJDb2RlKF8udmFsKSxyKys7ZWxzZXtpZighKDE2JkMpKXtpZigwPT0oNjQmQykpe189dVtmKyhfLnZhbCsodiYoMTw8QyktMSkpXTtjb250aW51ZSBlfWlmKDMyJkMpe2EubW9kZT1UWVBFO2JyZWFrIHR9dC5tc2c9XCJpbnZhbGlkIGxpdGVyYWwvbGVuZ3RoIGNvZGVcIixhLm1vZGU9QkFEO2JyZWFrIHR9QT1fLnZhbCwoQyY9MTUpJiYoYjxDJiYodis9KDI1NSZzLmNoYXJDb2RlQXQobysrKSk8PGIsYis9OCksQSs9diYoMTw8QyktMSx2Pj4+PUMsYi09QyksYjwxNSYmKHYrPSgyNTUmcy5jaGFyQ29kZUF0KG8rKykpPDxiLGIrPTgsdis9KDI1NSZzLmNoYXJDb2RlQXQobysrKSk8PGIsYis9OCksXz11W2crKHYmbSldO2E6Zm9yKDs7KXtpZih2Pj4+PUM9Xy5iaXRzLGItPUMsISgxNiYoQz1fLm9wKSkpe2lmKDA9PSg2NCZDKSl7Xz11W2crKF8udmFsKyh2JigxPDxDKS0xKSldO2NvbnRpbnVlIGF9dC5tc2c9XCJpbnZhbGlkIGRpc3RhbmNlIGNvZGVcIixhLm1vZGU9QkFEO2JyZWFrIHR9aWYoRT1fLnZhbCxiPChDJj0xNSkmJih2Kz0oMjU1JnMuY2hhckNvZGVBdChvKyspKTw8YiwoYis9OCk8QyYmKHYrPSgyNTUmcy5jaGFyQ29kZUF0KG8rKykpPDxiLGIrPTgpKSxFKz12JigxPDxDKS0xLHY+Pj49QyxiLT1DLEU+KEM9ci1uKSl7aWYoKEM9RS1DKT5jJiZhLnNhbmUpe3QubXNnPVwiaW52YWxpZCBkaXN0YW5jZSB0b28gZmFyIGJhY2tcIixhLm1vZGU9QkFEO2JyZWFrIHR9ST0wLGs9LTEsMD09cD8oSSs9aC1DLEM8QSYmKEEtPUMsdC5vdXRwdXRfZGF0YSs9ZC5zdWJzdHJpbmcoSSxJK0MpLHIrPUMsQz0wLEk9LTEsaz1yLUUpKTooSSs9cC1DLEM8QSYmKEEtPUMsdC5vdXRwdXRfZGF0YSs9ZC5zdWJzdHJpbmcoSSxJK0MpLEk9LTEsaz0ocis9QyktRSkpfWVsc2UgST0tMSxrPXItRTtpZihJPj0wKXQub3V0cHV0X2RhdGErPWQuc3Vic3RyaW5nKEksSStBKSxyKz1BLEkrPUE7ZWxzZXt2YXIgVD1BO2ZvcihUPnItayYmKFQ9ci1rKSx0Lm91dHB1dF9kYXRhKz10Lm91dHB1dF9kYXRhLnN1YnN0cmluZyhrLGsrVCkscis9VCxrKz1ULHIrPUEtPVQ7QT4yOyl0Lm91dHB1dF9kYXRhKz10Lm91dHB1dF9kYXRhLmNoYXJBdChrKyspLHQub3V0cHV0X2RhdGErPXQub3V0cHV0X2RhdGEuY2hhckF0KGsrKyksdC5vdXRwdXRfZGF0YSs9dC5vdXRwdXRfZGF0YS5jaGFyQXQoaysrKSxBLT0zO0EmJih0Lm91dHB1dF9kYXRhKz10Lm91dHB1dF9kYXRhLmNoYXJBdChrKyspLEE+MSYmKHQub3V0cHV0X2RhdGErPXQub3V0cHV0X2RhdGEuY2hhckF0KGsrKykpKX1icmVhayBhfX1icmVhayBlfX13aGlsZShvPGkmJnI8bCk7by09QT1iPj4+Myx2Jj0oMTw8KGItPUE8PDMpKS0xLHQubmV4dF9pbj1vLHQubmV4dF9vdXQ9cix0LmF2YWlsX2luPW88aT9pLW8rNTo1LShvLWkpLHQuYXZhaWxfb3V0PXI8bD9sLXIrMjU3OjI1Ny0oci1sKSxhLmhvbGQ9dixhLmJpdHM9Yn1mdW5jdGlvbiBuZXdfYXJyYXkodCl7dmFyIGUsYT1uZXcgQXJyYXkodCk7Zm9yKGU9MDtlPHQ7ZSsrKWFbZV09MDtyZXR1cm4gYX1mdW5jdGlvbiBnZXRhcmcodCxlLGEpe3JldHVybiB0JiZlIGluIHQ/dFtlXTphfWZ1bmN0aW9uIGNoZWNrc3VtX25vbmUoKXtyZXR1cm4gMH1mdW5jdGlvbiBpbmZsYXRlX3N0YXRlKCl7dmFyIHQ7dGhpcy5tb2RlPTAsdGhpcy5sYXN0PTAsdGhpcy53cmFwPTAsdGhpcy5oYXZlZGljdD0wLHRoaXMuZmxhZ3M9MCx0aGlzLmRtYXg9MCx0aGlzLmNoZWNrPTAsdGhpcy50b3RhbD0wLHRoaXMuaGVhZD1udWxsLHRoaXMud2JpdHM9MCx0aGlzLndzaXplPTAsdGhpcy53aGF2ZT0wLHRoaXMud25leHQ9MCx0aGlzLndpbmRvdz1udWxsLHRoaXMuaG9sZD0wLHRoaXMuYml0cz0wLHRoaXMubGVuZ3RoPTAsdGhpcy5vZmZzZXQ9MCx0aGlzLmV4dHJhPTAsdGhpcy5sZW5jb2RlPTAsdGhpcy5kaXN0Y29kZT0wLHRoaXMubGVuYml0cz0wLHRoaXMuZGlzdGJpdHM9MCx0aGlzLm5jb2RlPTAsdGhpcy5ubGVuPTAsdGhpcy5uZGlzdD0wLHRoaXMuaGF2ZT0wLHRoaXMubmV4dD0wLHRoaXMubGVucz1uZXdfYXJyYXkoMzIwKSx0aGlzLndvcms9bmV3X2FycmF5KDI4OCksdGhpcy5jb2Rlcz1uZXcgQXJyYXkoRU5PVUdIKTt2YXIgZT17b3A6MCxiaXRzOjAsdmFsOjB9O2Zvcih0PTA7dDxFTk9VR0g7dCsrKXRoaXMuY29kZXNbdF09ZTt0aGlzLnNhbmU9MCx0aGlzLmJhY2s9MCx0aGlzLndhcz0wfVpMSUIuaW5mbGF0ZV9jb3B5cmlnaHQ9XCIgaW5mbGF0ZSAxLjIuNiBDb3B5cmlnaHQgMTk5NS0yMDEyIE1hcmsgQWRsZXIgXCIsWkxJQi5pbmZsYXRlUmVzZXRLZWVwPWZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybiB0JiZ0LnN0YXRlPyhlPXQuc3RhdGUsdC50b3RhbF9pbj10LnRvdGFsX291dD1lLnRvdGFsPTAsdC5tc2c9bnVsbCxlLndyYXAmJih0LmFkbGVyPTEmZS53cmFwKSxlLm1vZGU9SEVBRCxlLmxhc3Q9MCxlLmhhdmVkaWN0PTAsZS5kbWF4PTMyNzY4LGUuaGVhZD1udWxsLGUuaG9sZD0wLGUuYml0cz0wLGUubGVuY29kZT0wLGUuZGlzdGNvZGU9MCxlLm5leHQ9MCxlLnNhbmU9MSxlLmJhY2s9LTEsWkxJQi5aX09LKTpaTElCLlpfU1RSRUFNX0VSUk9SfSxaTElCLmluZmxhdGVSZXNldD1mdW5jdGlvbih0LGUpe3ZhciBhLHM7cmV0dXJuIHQmJnQuc3RhdGU/KHM9dC5zdGF0ZSx2b2lkIDA9PT1lJiYoZT1ERUZfV0JJVFMpLGU8MD8oYT0wLGU9LWUpOihhPTErKGU+Pj40KSxlPDQ4JiYoZSY9MTUpKSwxPT1hJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBaTElCLmFkbGVyMzI/dC5jaGVja3N1bV9mdW5jdGlvbj1aTElCLmFkbGVyMzI6Mj09YSYmXCJmdW5jdGlvblwiPT10eXBlb2YgWkxJQi5jcmMzMj90LmNoZWNrc3VtX2Z1bmN0aW9uPVpMSUIuY3JjMzI6dC5jaGVja3N1bV9mdW5jdGlvbj1jaGVja3N1bV9ub25lLGUmJihlPDh8fGU+MTUpP1pMSUIuWl9TVFJFQU1fRVJST1I6KHMud2luZG93JiZzLndiaXRzIT1lJiYocy53aW5kb3c9bnVsbCkscy53cmFwPWEscy53Yml0cz1lLHMud3NpemU9MCxzLndoYXZlPTAscy53bmV4dD0wLFpMSUIuaW5mbGF0ZVJlc2V0S2VlcCh0KSkpOlpMSUIuWl9TVFJFQU1fRVJST1J9LFpMSUIuaW5mbGF0ZUluaXQ9ZnVuY3Rpb24odCl7dmFyIGU9bmV3IFpMSUIuel9zdHJlYW07cmV0dXJuIGUuc3RhdGU9bmV3IGluZmxhdGVfc3RhdGUsWkxJQi5pbmZsYXRlUmVzZXQoZSx0KSxlfSxaTElCLmluZmxhdGVQcmltZT1mdW5jdGlvbih0LGUsYSl7dmFyIHM7cmV0dXJuIHQmJnQuc3RhdGU/KHM9dC5zdGF0ZSxlPDA/KHMuaG9sZD0wLHMuYml0cz0wLFpMSUIuWl9PSyk6ZT4xNnx8cy5iaXRzK2U+MzI/WkxJQi5aX1NUUkVBTV9FUlJPUjooYSY9KDE8PGUpLTEscy5ob2xkKz1hPDxzLmJpdHMscy5iaXRzKz1lLFpMSUIuWl9PSykpOlpMSUIuWl9TVFJFQU1fRVJST1J9O3ZhciBsZW5maXhfYXJ5PW51bGwsbGVuZml4X2RlZj1cIihbICAgIHtvcDo5NixiaXRzOjcsdmFsOjB9LHtvcDowLGJpdHM6OCx2YWw6ODB9LHtvcDowLGJpdHM6OCx2YWw6MTZ9LHtvcDoyMCxiaXRzOjgsdmFsOjExNX0se29wOjE4LGJpdHM6Nyx2YWw6MzF9LHtvcDowLGJpdHM6OCx2YWw6MTEyfSx7b3A6MCxiaXRzOjgsdmFsOjQ4fSwgICAge29wOjAsYml0czo5LHZhbDoxOTJ9LHtvcDoxNixiaXRzOjcsdmFsOjEwfSx7b3A6MCxiaXRzOjgsdmFsOjk2fSx7b3A6MCxiaXRzOjgsdmFsOjMyfSx7b3A6MCxiaXRzOjksdmFsOjE2MH0se29wOjAsYml0czo4LHZhbDowfSx7b3A6MCxiaXRzOjgsdmFsOjEyOH0sICAgIHtvcDowLGJpdHM6OCx2YWw6NjR9LHtvcDowLGJpdHM6OSx2YWw6MjI0fSx7b3A6MTYsYml0czo3LHZhbDo2fSx7b3A6MCxiaXRzOjgsdmFsOjg4fSx7b3A6MCxiaXRzOjgsdmFsOjI0fSx7b3A6MCxiaXRzOjksdmFsOjE0NH0se29wOjE5LGJpdHM6Nyx2YWw6NTl9LCAgICB7b3A6MCxiaXRzOjgsdmFsOjEyMH0se29wOjAsYml0czo4LHZhbDo1Nn0se29wOjAsYml0czo5LHZhbDoyMDh9LHtvcDoxNyxiaXRzOjcsdmFsOjE3fSx7b3A6MCxiaXRzOjgsdmFsOjEwNH0se29wOjAsYml0czo4LHZhbDo0MH0se29wOjAsYml0czo5LHZhbDoxNzZ9LCAgICB7b3A6MCxiaXRzOjgsdmFsOjh9LHtvcDowLGJpdHM6OCx2YWw6MTM2fSx7b3A6MCxiaXRzOjgsdmFsOjcyfSx7b3A6MCxiaXRzOjksdmFsOjI0MH0se29wOjE2LGJpdHM6Nyx2YWw6NH0se29wOjAsYml0czo4LHZhbDo4NH0se29wOjAsYml0czo4LHZhbDoyMH0sICAgIHtvcDoyMSxiaXRzOjgsdmFsOjIyN30se29wOjE5LGJpdHM6Nyx2YWw6NDN9LHtvcDowLGJpdHM6OCx2YWw6MTE2fSx7b3A6MCxiaXRzOjgsdmFsOjUyfSx7b3A6MCxiaXRzOjksdmFsOjIwMH0se29wOjE3LGJpdHM6Nyx2YWw6MTN9LHtvcDowLGJpdHM6OCx2YWw6MTAwfSwgICAge29wOjAsYml0czo4LHZhbDozNn0se29wOjAsYml0czo5LHZhbDoxNjh9LHtvcDowLGJpdHM6OCx2YWw6NH0se29wOjAsYml0czo4LHZhbDoxMzJ9LHtvcDowLGJpdHM6OCx2YWw6Njh9LHtvcDowLGJpdHM6OSx2YWw6MjMyfSx7b3A6MTYsYml0czo3LHZhbDo4fSwgICAge29wOjAsYml0czo4LHZhbDo5Mn0se29wOjAsYml0czo4LHZhbDoyOH0se29wOjAsYml0czo5LHZhbDoxNTJ9LHtvcDoyMCxiaXRzOjcsdmFsOjgzfSx7b3A6MCxiaXRzOjgsdmFsOjEyNH0se29wOjAsYml0czo4LHZhbDo2MH0se29wOjAsYml0czo5LHZhbDoyMTZ9LCAgICB7b3A6MTgsYml0czo3LHZhbDoyM30se29wOjAsYml0czo4LHZhbDoxMDh9LHtvcDowLGJpdHM6OCx2YWw6NDR9LHtvcDowLGJpdHM6OSx2YWw6MTg0fSx7b3A6MCxiaXRzOjgsdmFsOjEyfSx7b3A6MCxiaXRzOjgsdmFsOjE0MH0se29wOjAsYml0czo4LHZhbDo3Nn0sICAgIHtvcDowLGJpdHM6OSx2YWw6MjQ4fSx7b3A6MTYsYml0czo3LHZhbDozfSx7b3A6MCxiaXRzOjgsdmFsOjgyfSx7b3A6MCxiaXRzOjgsdmFsOjE4fSx7b3A6MjEsYml0czo4LHZhbDoxNjN9LHtvcDoxOSxiaXRzOjcsdmFsOjM1fSx7b3A6MCxiaXRzOjgsdmFsOjExNH0sICAgIHtvcDowLGJpdHM6OCx2YWw6NTB9LHtvcDowLGJpdHM6OSx2YWw6MTk2fSx7b3A6MTcsYml0czo3LHZhbDoxMX0se29wOjAsYml0czo4LHZhbDo5OH0se29wOjAsYml0czo4LHZhbDozNH0se29wOjAsYml0czo5LHZhbDoxNjR9LHtvcDowLGJpdHM6OCx2YWw6Mn0sICAgIHtvcDowLGJpdHM6OCx2YWw6MTMwfSx7b3A6MCxiaXRzOjgsdmFsOjY2fSx7b3A6MCxiaXRzOjksdmFsOjIyOH0se29wOjE2LGJpdHM6Nyx2YWw6N30se29wOjAsYml0czo4LHZhbDo5MH0se29wOjAsYml0czo4LHZhbDoyNn0se29wOjAsYml0czo5LHZhbDoxNDh9LCAgICB7b3A6MjAsYml0czo3LHZhbDo2N30se29wOjAsYml0czo4LHZhbDoxMjJ9LHtvcDowLGJpdHM6OCx2YWw6NTh9LHtvcDowLGJpdHM6OSx2YWw6MjEyfSx7b3A6MTgsYml0czo3LHZhbDoxOX0se29wOjAsYml0czo4LHZhbDoxMDZ9LHtvcDowLGJpdHM6OCx2YWw6NDJ9LCAgICB7b3A6MCxiaXRzOjksdmFsOjE4MH0se29wOjAsYml0czo4LHZhbDoxMH0se29wOjAsYml0czo4LHZhbDoxMzh9LHtvcDowLGJpdHM6OCx2YWw6NzR9LHtvcDowLGJpdHM6OSx2YWw6MjQ0fSx7b3A6MTYsYml0czo3LHZhbDo1fSx7b3A6MCxiaXRzOjgsdmFsOjg2fSwgICAge29wOjAsYml0czo4LHZhbDoyMn0se29wOjY0LGJpdHM6OCx2YWw6MH0se29wOjE5LGJpdHM6Nyx2YWw6NTF9LHtvcDowLGJpdHM6OCx2YWw6MTE4fSx7b3A6MCxiaXRzOjgsdmFsOjU0fSx7b3A6MCxiaXRzOjksdmFsOjIwNH0se29wOjE3LGJpdHM6Nyx2YWw6MTV9LCAgICB7b3A6MCxiaXRzOjgsdmFsOjEwMn0se29wOjAsYml0czo4LHZhbDozOH0se29wOjAsYml0czo5LHZhbDoxNzJ9LHtvcDowLGJpdHM6OCx2YWw6Nn0se29wOjAsYml0czo4LHZhbDoxMzR9LHtvcDowLGJpdHM6OCx2YWw6NzB9LHtvcDowLGJpdHM6OSx2YWw6MjM2fSwgICAge29wOjE2LGJpdHM6Nyx2YWw6OX0se29wOjAsYml0czo4LHZhbDo5NH0se29wOjAsYml0czo4LHZhbDozMH0se29wOjAsYml0czo5LHZhbDoxNTZ9LHtvcDoyMCxiaXRzOjcsdmFsOjk5fSx7b3A6MCxiaXRzOjgsdmFsOjEyNn0se29wOjAsYml0czo4LHZhbDo2Mn0sICAgIHtvcDowLGJpdHM6OSx2YWw6MjIwfSx7b3A6MTgsYml0czo3LHZhbDoyN30se29wOjAsYml0czo4LHZhbDoxMTB9LHtvcDowLGJpdHM6OCx2YWw6NDZ9LHtvcDowLGJpdHM6OSx2YWw6MTg4fSx7b3A6MCxiaXRzOjgsdmFsOjE0fSx7b3A6MCxiaXRzOjgsdmFsOjE0Mn0sICAgIHtvcDowLGJpdHM6OCx2YWw6Nzh9LHtvcDowLGJpdHM6OSx2YWw6MjUyfSx7b3A6OTYsYml0czo3LHZhbDowfSx7b3A6MCxiaXRzOjgsdmFsOjgxfSx7b3A6MCxiaXRzOjgsdmFsOjE3fSx7b3A6MjEsYml0czo4LHZhbDoxMzF9LHtvcDoxOCxiaXRzOjcsdmFsOjMxfSwgICAge29wOjAsYml0czo4LHZhbDoxMTN9LHtvcDowLGJpdHM6OCx2YWw6NDl9LHtvcDowLGJpdHM6OSx2YWw6MTk0fSx7b3A6MTYsYml0czo3LHZhbDoxMH0se29wOjAsYml0czo4LHZhbDo5N30se29wOjAsYml0czo4LHZhbDozM30se29wOjAsYml0czo5LHZhbDoxNjJ9LCAgICB7b3A6MCxiaXRzOjgsdmFsOjF9LHtvcDowLGJpdHM6OCx2YWw6MTI5fSx7b3A6MCxiaXRzOjgsdmFsOjY1fSx7b3A6MCxiaXRzOjksdmFsOjIyNn0se29wOjE2LGJpdHM6Nyx2YWw6Nn0se29wOjAsYml0czo4LHZhbDo4OX0se29wOjAsYml0czo4LHZhbDoyNX0sICAgIHtvcDowLGJpdHM6OSx2YWw6MTQ2fSx7b3A6MTksYml0czo3LHZhbDo1OX0se29wOjAsYml0czo4LHZhbDoxMjF9LHtvcDowLGJpdHM6OCx2YWw6NTd9LHtvcDowLGJpdHM6OSx2YWw6MjEwfSx7b3A6MTcsYml0czo3LHZhbDoxN30se29wOjAsYml0czo4LHZhbDoxMDV9LCAgICB7b3A6MCxiaXRzOjgsdmFsOjQxfSx7b3A6MCxiaXRzOjksdmFsOjE3OH0se29wOjAsYml0czo4LHZhbDo5fSx7b3A6MCxiaXRzOjgsdmFsOjEzN30se29wOjAsYml0czo4LHZhbDo3M30se29wOjAsYml0czo5LHZhbDoyNDJ9LHtvcDoxNixiaXRzOjcsdmFsOjR9LCAgICB7b3A6MCxiaXRzOjgsdmFsOjg1fSx7b3A6MCxiaXRzOjgsdmFsOjIxfSx7b3A6MTYsYml0czo4LHZhbDoyNTh9LHtvcDoxOSxiaXRzOjcsdmFsOjQzfSx7b3A6MCxiaXRzOjgsdmFsOjExN30se29wOjAsYml0czo4LHZhbDo1M30se29wOjAsYml0czo5LHZhbDoyMDJ9LCAgICB7b3A6MTcsYml0czo3LHZhbDoxM30se29wOjAsYml0czo4LHZhbDoxMDF9LHtvcDowLGJpdHM6OCx2YWw6Mzd9LHtvcDowLGJpdHM6OSx2YWw6MTcwfSx7b3A6MCxiaXRzOjgsdmFsOjV9LHtvcDowLGJpdHM6OCx2YWw6MTMzfSx7b3A6MCxiaXRzOjgsdmFsOjY5fSwgICAge29wOjAsYml0czo5LHZhbDoyMzR9LHtvcDoxNixiaXRzOjcsdmFsOjh9LHtvcDowLGJpdHM6OCx2YWw6OTN9LHtvcDowLGJpdHM6OCx2YWw6Mjl9LHtvcDowLGJpdHM6OSx2YWw6MTU0fSx7b3A6MjAsYml0czo3LHZhbDo4M30se29wOjAsYml0czo4LHZhbDoxMjV9LCAgICB7b3A6MCxiaXRzOjgsdmFsOjYxfSx7b3A6MCxiaXRzOjksdmFsOjIxOH0se29wOjE4LGJpdHM6Nyx2YWw6MjN9LHtvcDowLGJpdHM6OCx2YWw6MTA5fSx7b3A6MCxiaXRzOjgsdmFsOjQ1fSx7b3A6MCxiaXRzOjksdmFsOjE4Nn0se29wOjAsYml0czo4LHZhbDoxM30sICAgIHtvcDowLGJpdHM6OCx2YWw6MTQxfSx7b3A6MCxiaXRzOjgsdmFsOjc3fSx7b3A6MCxiaXRzOjksdmFsOjI1MH0se29wOjE2LGJpdHM6Nyx2YWw6M30se29wOjAsYml0czo4LHZhbDo4M30se29wOjAsYml0czo4LHZhbDoxOX0se29wOjIxLGJpdHM6OCx2YWw6MTk1fSwgICAge29wOjE5LGJpdHM6Nyx2YWw6MzV9LHtvcDowLGJpdHM6OCx2YWw6MTE1fSx7b3A6MCxiaXRzOjgsdmFsOjUxfSx7b3A6MCxiaXRzOjksdmFsOjE5OH0se29wOjE3LGJpdHM6Nyx2YWw6MTF9LHtvcDowLGJpdHM6OCx2YWw6OTl9LHtvcDowLGJpdHM6OCx2YWw6MzV9LCAgICB7b3A6MCxiaXRzOjksdmFsOjE2Nn0se29wOjAsYml0czo4LHZhbDozfSx7b3A6MCxiaXRzOjgsdmFsOjEzMX0se29wOjAsYml0czo4LHZhbDo2N30se29wOjAsYml0czo5LHZhbDoyMzB9LHtvcDoxNixiaXRzOjcsdmFsOjd9LHtvcDowLGJpdHM6OCx2YWw6OTF9LCAgICB7b3A6MCxiaXRzOjgsdmFsOjI3fSx7b3A6MCxiaXRzOjksdmFsOjE1MH0se29wOjIwLGJpdHM6Nyx2YWw6Njd9LHtvcDowLGJpdHM6OCx2YWw6MTIzfSx7b3A6MCxiaXRzOjgsdmFsOjU5fSx7b3A6MCxiaXRzOjksdmFsOjIxNH0se29wOjE4LGJpdHM6Nyx2YWw6MTl9LCAgICB7b3A6MCxiaXRzOjgsdmFsOjEwN30se29wOjAsYml0czo4LHZhbDo0M30se29wOjAsYml0czo5LHZhbDoxODJ9LHtvcDowLGJpdHM6OCx2YWw6MTF9LHtvcDowLGJpdHM6OCx2YWw6MTM5fSx7b3A6MCxiaXRzOjgsdmFsOjc1fSx7b3A6MCxiaXRzOjksdmFsOjI0Nn0sICAgIHtvcDoxNixiaXRzOjcsdmFsOjV9LHtvcDowLGJpdHM6OCx2YWw6ODd9LHtvcDowLGJpdHM6OCx2YWw6MjN9LHtvcDo2NCxiaXRzOjgsdmFsOjB9LHtvcDoxOSxiaXRzOjcsdmFsOjUxfSx7b3A6MCxiaXRzOjgsdmFsOjExOX0se29wOjAsYml0czo4LHZhbDo1NX0sICAgIHtvcDowLGJpdHM6OSx2YWw6MjA2fSx7b3A6MTcsYml0czo3LHZhbDoxNX0se29wOjAsYml0czo4LHZhbDoxMDN9LHtvcDowLGJpdHM6OCx2YWw6Mzl9LHtvcDowLGJpdHM6OSx2YWw6MTc0fSx7b3A6MCxiaXRzOjgsdmFsOjd9LHtvcDowLGJpdHM6OCx2YWw6MTM1fSwgICAge29wOjAsYml0czo4LHZhbDo3MX0se29wOjAsYml0czo5LHZhbDoyMzh9LHtvcDoxNixiaXRzOjcsdmFsOjl9LHtvcDowLGJpdHM6OCx2YWw6OTV9LHtvcDowLGJpdHM6OCx2YWw6MzF9LHtvcDowLGJpdHM6OSx2YWw6MTU4fSx7b3A6MjAsYml0czo3LHZhbDo5OX0sICAgIHtvcDowLGJpdHM6OCx2YWw6MTI3fSx7b3A6MCxiaXRzOjgsdmFsOjYzfSx7b3A6MCxiaXRzOjksdmFsOjIyMn0se29wOjE4LGJpdHM6Nyx2YWw6Mjd9LHtvcDowLGJpdHM6OCx2YWw6MTExfSx7b3A6MCxiaXRzOjgsdmFsOjQ3fSx7b3A6MCxiaXRzOjksdmFsOjE5MH0sICAgIHtvcDowLGJpdHM6OCx2YWw6MTV9LHtvcDowLGJpdHM6OCx2YWw6MTQzfSx7b3A6MCxiaXRzOjgsdmFsOjc5fSx7b3A6MCxiaXRzOjksdmFsOjI1NH0se29wOjk2LGJpdHM6Nyx2YWw6MH0se29wOjAsYml0czo4LHZhbDo4MH0se29wOjAsYml0czo4LHZhbDoxNn0sICAgIHtvcDoyMCxiaXRzOjgsdmFsOjExNX0se29wOjE4LGJpdHM6Nyx2YWw6MzF9LHtvcDowLGJpdHM6OCx2YWw6MTEyfSx7b3A6MCxiaXRzOjgsdmFsOjQ4fSx7b3A6MCxiaXRzOjksdmFsOjE5M30se29wOjE2LGJpdHM6Nyx2YWw6MTB9LHtvcDowLGJpdHM6OCx2YWw6OTZ9LCAgICB7b3A6MCxiaXRzOjgsdmFsOjMyfSx7b3A6MCxiaXRzOjksdmFsOjE2MX0se29wOjAsYml0czo4LHZhbDowfSx7b3A6MCxiaXRzOjgsdmFsOjEyOH0se29wOjAsYml0czo4LHZhbDo2NH0se29wOjAsYml0czo5LHZhbDoyMjV9LHtvcDoxNixiaXRzOjcsdmFsOjZ9LCAgICB7b3A6MCxiaXRzOjgsdmFsOjg4fSx7b3A6MCxiaXRzOjgsdmFsOjI0fSx7b3A6MCxiaXRzOjksdmFsOjE0NX0se29wOjE5LGJpdHM6Nyx2YWw6NTl9LHtvcDowLGJpdHM6OCx2YWw6MTIwfSx7b3A6MCxiaXRzOjgsdmFsOjU2fSx7b3A6MCxiaXRzOjksdmFsOjIwOX0sICAgIHtvcDoxNyxiaXRzOjcsdmFsOjE3fSx7b3A6MCxiaXRzOjgsdmFsOjEwNH0se29wOjAsYml0czo4LHZhbDo0MH0se29wOjAsYml0czo5LHZhbDoxNzd9LHtvcDowLGJpdHM6OCx2YWw6OH0se29wOjAsYml0czo4LHZhbDoxMzZ9LHtvcDowLGJpdHM6OCx2YWw6NzJ9LCAgICB7b3A6MCxiaXRzOjksdmFsOjI0MX0se29wOjE2LGJpdHM6Nyx2YWw6NH0se29wOjAsYml0czo4LHZhbDo4NH0se29wOjAsYml0czo4LHZhbDoyMH0se29wOjIxLGJpdHM6OCx2YWw6MjI3fSx7b3A6MTksYml0czo3LHZhbDo0M30se29wOjAsYml0czo4LHZhbDoxMTZ9LCAgICB7b3A6MCxiaXRzOjgsdmFsOjUyfSx7b3A6MCxiaXRzOjksdmFsOjIwMX0se29wOjE3LGJpdHM6Nyx2YWw6MTN9LHtvcDowLGJpdHM6OCx2YWw6MTAwfSx7b3A6MCxiaXRzOjgsdmFsOjM2fSx7b3A6MCxiaXRzOjksdmFsOjE2OX0se29wOjAsYml0czo4LHZhbDo0fSwgICAge29wOjAsYml0czo4LHZhbDoxMzJ9LHtvcDowLGJpdHM6OCx2YWw6Njh9LHtvcDowLGJpdHM6OSx2YWw6MjMzfSx7b3A6MTYsYml0czo3LHZhbDo4fSx7b3A6MCxiaXRzOjgsdmFsOjkyfSx7b3A6MCxiaXRzOjgsdmFsOjI4fSx7b3A6MCxiaXRzOjksdmFsOjE1M30sICAgIHtvcDoyMCxiaXRzOjcsdmFsOjgzfSx7b3A6MCxiaXRzOjgsdmFsOjEyNH0se29wOjAsYml0czo4LHZhbDo2MH0se29wOjAsYml0czo5LHZhbDoyMTd9LHtvcDoxOCxiaXRzOjcsdmFsOjIzfSx7b3A6MCxiaXRzOjgsdmFsOjEwOH0se29wOjAsYml0czo4LHZhbDo0NH0sICAgIHtvcDowLGJpdHM6OSx2YWw6MTg1fSx7b3A6MCxiaXRzOjgsdmFsOjEyfSx7b3A6MCxiaXRzOjgsdmFsOjE0MH0se29wOjAsYml0czo4LHZhbDo3Nn0se29wOjAsYml0czo5LHZhbDoyNDl9LHtvcDoxNixiaXRzOjcsdmFsOjN9LHtvcDowLGJpdHM6OCx2YWw6ODJ9LCAgICB7b3A6MCxiaXRzOjgsdmFsOjE4fSx7b3A6MjEsYml0czo4LHZhbDoxNjN9LHtvcDoxOSxiaXRzOjcsdmFsOjM1fSx7b3A6MCxiaXRzOjgsdmFsOjExNH0se29wOjAsYml0czo4LHZhbDo1MH0se29wOjAsYml0czo5LHZhbDoxOTd9LHtvcDoxNyxiaXRzOjcsdmFsOjExfSwgICAge29wOjAsYml0czo4LHZhbDo5OH0se29wOjAsYml0czo4LHZhbDozNH0se29wOjAsYml0czo5LHZhbDoxNjV9LHtvcDowLGJpdHM6OCx2YWw6Mn0se29wOjAsYml0czo4LHZhbDoxMzB9LHtvcDowLGJpdHM6OCx2YWw6NjZ9LHtvcDowLGJpdHM6OSx2YWw6MjI5fSwgICAge29wOjE2LGJpdHM6Nyx2YWw6N30se29wOjAsYml0czo4LHZhbDo5MH0se29wOjAsYml0czo4LHZhbDoyNn0se29wOjAsYml0czo5LHZhbDoxNDl9LHtvcDoyMCxiaXRzOjcsdmFsOjY3fSx7b3A6MCxiaXRzOjgsdmFsOjEyMn0se29wOjAsYml0czo4LHZhbDo1OH0sICAgIHtvcDowLGJpdHM6OSx2YWw6MjEzfSx7b3A6MTgsYml0czo3LHZhbDoxOX0se29wOjAsYml0czo4LHZhbDoxMDZ9LHtvcDowLGJpdHM6OCx2YWw6NDJ9LHtvcDowLGJpdHM6OSx2YWw6MTgxfSx7b3A6MCxiaXRzOjgsdmFsOjEwfSx7b3A6MCxiaXRzOjgsdmFsOjEzOH0sICAgIHtvcDowLGJpdHM6OCx2YWw6NzR9LHtvcDowLGJpdHM6OSx2YWw6MjQ1fSx7b3A6MTYsYml0czo3LHZhbDo1fSx7b3A6MCxiaXRzOjgsdmFsOjg2fSx7b3A6MCxiaXRzOjgsdmFsOjIyfSx7b3A6NjQsYml0czo4LHZhbDowfSx7b3A6MTksYml0czo3LHZhbDo1MX0sICAgIHtvcDowLGJpdHM6OCx2YWw6MTE4fSx7b3A6MCxiaXRzOjgsdmFsOjU0fSx7b3A6MCxiaXRzOjksdmFsOjIwNX0se29wOjE3LGJpdHM6Nyx2YWw6MTV9LHtvcDowLGJpdHM6OCx2YWw6MTAyfSx7b3A6MCxiaXRzOjgsdmFsOjM4fSx7b3A6MCxiaXRzOjksdmFsOjE3M30sICAgIHtvcDowLGJpdHM6OCx2YWw6Nn0se29wOjAsYml0czo4LHZhbDoxMzR9LHtvcDowLGJpdHM6OCx2YWw6NzB9LHtvcDowLGJpdHM6OSx2YWw6MjM3fSx7b3A6MTYsYml0czo3LHZhbDo5fSx7b3A6MCxiaXRzOjgsdmFsOjk0fSx7b3A6MCxiaXRzOjgsdmFsOjMwfSwgICAge29wOjAsYml0czo5LHZhbDoxNTd9LHtvcDoyMCxiaXRzOjcsdmFsOjk5fSx7b3A6MCxiaXRzOjgsdmFsOjEyNn0se29wOjAsYml0czo4LHZhbDo2Mn0se29wOjAsYml0czo5LHZhbDoyMjF9LHtvcDoxOCxiaXRzOjcsdmFsOjI3fSx7b3A6MCxiaXRzOjgsdmFsOjExMH0sICAgIHtvcDowLGJpdHM6OCx2YWw6NDZ9LHtvcDowLGJpdHM6OSx2YWw6MTg5fSx7b3A6MCxiaXRzOjgsdmFsOjE0fSx7b3A6MCxiaXRzOjgsdmFsOjE0Mn0se29wOjAsYml0czo4LHZhbDo3OH0se29wOjAsYml0czo5LHZhbDoyNTN9LHtvcDo5NixiaXRzOjcsdmFsOjB9LCAgICB7b3A6MCxiaXRzOjgsdmFsOjgxfSx7b3A6MCxiaXRzOjgsdmFsOjE3fSx7b3A6MjEsYml0czo4LHZhbDoxMzF9LHtvcDoxOCxiaXRzOjcsdmFsOjMxfSx7b3A6MCxiaXRzOjgsdmFsOjExM30se29wOjAsYml0czo4LHZhbDo0OX0se29wOjAsYml0czo5LHZhbDoxOTV9LCAgICB7b3A6MTYsYml0czo3LHZhbDoxMH0se29wOjAsYml0czo4LHZhbDo5N30se29wOjAsYml0czo4LHZhbDozM30se29wOjAsYml0czo5LHZhbDoxNjN9LHtvcDowLGJpdHM6OCx2YWw6MX0se29wOjAsYml0czo4LHZhbDoxMjl9LHtvcDowLGJpdHM6OCx2YWw6NjV9LCAgICB7b3A6MCxiaXRzOjksdmFsOjIyN30se29wOjE2LGJpdHM6Nyx2YWw6Nn0se29wOjAsYml0czo4LHZhbDo4OX0se29wOjAsYml0czo4LHZhbDoyNX0se29wOjAsYml0czo5LHZhbDoxNDd9LHtvcDoxOSxiaXRzOjcsdmFsOjU5fSx7b3A6MCxiaXRzOjgsdmFsOjEyMX0sICAgIHtvcDowLGJpdHM6OCx2YWw6NTd9LHtvcDowLGJpdHM6OSx2YWw6MjExfSx7b3A6MTcsYml0czo3LHZhbDoxN30se29wOjAsYml0czo4LHZhbDoxMDV9LHtvcDowLGJpdHM6OCx2YWw6NDF9LHtvcDowLGJpdHM6OSx2YWw6MTc5fSx7b3A6MCxiaXRzOjgsdmFsOjl9LCAgICB7b3A6MCxiaXRzOjgsdmFsOjEzN30se29wOjAsYml0czo4LHZhbDo3M30se29wOjAsYml0czo5LHZhbDoyNDN9LHtvcDoxNixiaXRzOjcsdmFsOjR9LHtvcDowLGJpdHM6OCx2YWw6ODV9LHtvcDowLGJpdHM6OCx2YWw6MjF9LHtvcDoxNixiaXRzOjgsdmFsOjI1OH0sICAgIHtvcDoxOSxiaXRzOjcsdmFsOjQzfSx7b3A6MCxiaXRzOjgsdmFsOjExN30se29wOjAsYml0czo4LHZhbDo1M30se29wOjAsYml0czo5LHZhbDoyMDN9LHtvcDoxNyxiaXRzOjcsdmFsOjEzfSx7b3A6MCxiaXRzOjgsdmFsOjEwMX0se29wOjAsYml0czo4LHZhbDozN30sICAgIHtvcDowLGJpdHM6OSx2YWw6MTcxfSx7b3A6MCxiaXRzOjgsdmFsOjV9LHtvcDowLGJpdHM6OCx2YWw6MTMzfSx7b3A6MCxiaXRzOjgsdmFsOjY5fSx7b3A6MCxiaXRzOjksdmFsOjIzNX0se29wOjE2LGJpdHM6Nyx2YWw6OH0se29wOjAsYml0czo4LHZhbDo5M30sICAgIHtvcDowLGJpdHM6OCx2YWw6Mjl9LHtvcDowLGJpdHM6OSx2YWw6MTU1fSx7b3A6MjAsYml0czo3LHZhbDo4M30se29wOjAsYml0czo4LHZhbDoxMjV9LHtvcDowLGJpdHM6OCx2YWw6NjF9LHtvcDowLGJpdHM6OSx2YWw6MjE5fSx7b3A6MTgsYml0czo3LHZhbDoyM30sICAgIHtvcDowLGJpdHM6OCx2YWw6MTA5fSx7b3A6MCxiaXRzOjgsdmFsOjQ1fSx7b3A6MCxiaXRzOjksdmFsOjE4N30se29wOjAsYml0czo4LHZhbDoxM30se29wOjAsYml0czo4LHZhbDoxNDF9LHtvcDowLGJpdHM6OCx2YWw6Nzd9LHtvcDowLGJpdHM6OSx2YWw6MjUxfSwgICAge29wOjE2LGJpdHM6Nyx2YWw6M30se29wOjAsYml0czo4LHZhbDo4M30se29wOjAsYml0czo4LHZhbDoxOX0se29wOjIxLGJpdHM6OCx2YWw6MTk1fSx7b3A6MTksYml0czo3LHZhbDozNX0se29wOjAsYml0czo4LHZhbDoxMTV9LHtvcDowLGJpdHM6OCx2YWw6NTF9LCAgICB7b3A6MCxiaXRzOjksdmFsOjE5OX0se29wOjE3LGJpdHM6Nyx2YWw6MTF9LHtvcDowLGJpdHM6OCx2YWw6OTl9LHtvcDowLGJpdHM6OCx2YWw6MzV9LHtvcDowLGJpdHM6OSx2YWw6MTY3fSx7b3A6MCxiaXRzOjgsdmFsOjN9LHtvcDowLGJpdHM6OCx2YWw6MTMxfSwgICAge29wOjAsYml0czo4LHZhbDo2N30se29wOjAsYml0czo5LHZhbDoyMzF9LHtvcDoxNixiaXRzOjcsdmFsOjd9LHtvcDowLGJpdHM6OCx2YWw6OTF9LHtvcDowLGJpdHM6OCx2YWw6Mjd9LHtvcDowLGJpdHM6OSx2YWw6MTUxfSx7b3A6MjAsYml0czo3LHZhbDo2N30sICAgIHtvcDowLGJpdHM6OCx2YWw6MTIzfSx7b3A6MCxiaXRzOjgsdmFsOjU5fSx7b3A6MCxiaXRzOjksdmFsOjIxNX0se29wOjE4LGJpdHM6Nyx2YWw6MTl9LHtvcDowLGJpdHM6OCx2YWw6MTA3fSx7b3A6MCxiaXRzOjgsdmFsOjQzfSx7b3A6MCxiaXRzOjksdmFsOjE4M30sICAgIHtvcDowLGJpdHM6OCx2YWw6MTF9LHtvcDowLGJpdHM6OCx2YWw6MTM5fSx7b3A6MCxiaXRzOjgsdmFsOjc1fSx7b3A6MCxiaXRzOjksdmFsOjI0N30se29wOjE2LGJpdHM6Nyx2YWw6NX0se29wOjAsYml0czo4LHZhbDo4N30se29wOjAsYml0czo4LHZhbDoyM30sICAgIHtvcDo2NCxiaXRzOjgsdmFsOjB9LHtvcDoxOSxiaXRzOjcsdmFsOjUxfSx7b3A6MCxiaXRzOjgsdmFsOjExOX0se29wOjAsYml0czo4LHZhbDo1NX0se29wOjAsYml0czo5LHZhbDoyMDd9LHtvcDoxNyxiaXRzOjcsdmFsOjE1fSx7b3A6MCxiaXRzOjgsdmFsOjEwM30sICAgIHtvcDowLGJpdHM6OCx2YWw6Mzl9LHtvcDowLGJpdHM6OSx2YWw6MTc1fSx7b3A6MCxiaXRzOjgsdmFsOjd9LHtvcDowLGJpdHM6OCx2YWw6MTM1fSx7b3A6MCxiaXRzOjgsdmFsOjcxfSx7b3A6MCxiaXRzOjksdmFsOjIzOX0se29wOjE2LGJpdHM6Nyx2YWw6OX0sICAgIHtvcDowLGJpdHM6OCx2YWw6OTV9LHtvcDowLGJpdHM6OCx2YWw6MzF9LHtvcDowLGJpdHM6OSx2YWw6MTU5fSx7b3A6MjAsYml0czo3LHZhbDo5OX0se29wOjAsYml0czo4LHZhbDoxMjd9LHtvcDowLGJpdHM6OCx2YWw6NjN9LHtvcDowLGJpdHM6OSx2YWw6MjIzfSwgICAge29wOjE4LGJpdHM6Nyx2YWw6Mjd9LHtvcDowLGJpdHM6OCx2YWw6MTExfSx7b3A6MCxiaXRzOjgsdmFsOjQ3fSx7b3A6MCxiaXRzOjksdmFsOjE5MX0se29wOjAsYml0czo4LHZhbDoxNX0se29wOjAsYml0czo4LHZhbDoxNDN9LHtvcDowLGJpdHM6OCx2YWw6Nzl9LCAgICB7b3A6MCxiaXRzOjksdmFsOjI1NX1dKVwiLGRpc3RmaXhfYXJ5PW51bGwsZGlzdGZpeF9kZWY9XCIoWyAgICB7b3A6MTYsYml0czo1LHZhbDoxfSx7b3A6MjMsYml0czo1LHZhbDoyNTd9LHtvcDoxOSxiaXRzOjUsdmFsOjE3fSx7b3A6MjcsYml0czo1LHZhbDo0MDk3fSx7b3A6MTcsYml0czo1LHZhbDo1fSx7b3A6MjUsYml0czo1LHZhbDoxMDI1fSwgICAge29wOjIxLGJpdHM6NSx2YWw6NjV9LHtvcDoyOSxiaXRzOjUsdmFsOjE2Mzg1fSx7b3A6MTYsYml0czo1LHZhbDozfSx7b3A6MjQsYml0czo1LHZhbDo1MTN9LHtvcDoyMCxiaXRzOjUsdmFsOjMzfSx7b3A6MjgsYml0czo1LHZhbDo4MTkzfSwgICAge29wOjE4LGJpdHM6NSx2YWw6OX0se29wOjI2LGJpdHM6NSx2YWw6MjA0OX0se29wOjIyLGJpdHM6NSx2YWw6MTI5fSx7b3A6NjQsYml0czo1LHZhbDowfSx7b3A6MTYsYml0czo1LHZhbDoyfSx7b3A6MjMsYml0czo1LHZhbDozODV9LCAgICB7b3A6MTksYml0czo1LHZhbDoyNX0se29wOjI3LGJpdHM6NSx2YWw6NjE0NX0se29wOjE3LGJpdHM6NSx2YWw6N30se29wOjI1LGJpdHM6NSx2YWw6MTUzN30se29wOjIxLGJpdHM6NSx2YWw6OTd9LHtvcDoyOSxiaXRzOjUsdmFsOjI0NTc3fSwgICAge29wOjE2LGJpdHM6NSx2YWw6NH0se29wOjI0LGJpdHM6NSx2YWw6NzY5fSx7b3A6MjAsYml0czo1LHZhbDo0OX0se29wOjI4LGJpdHM6NSx2YWw6MTIyODl9LHtvcDoxOCxiaXRzOjUsdmFsOjEzfSx7b3A6MjYsYml0czo1LHZhbDozMDczfSwgICAge29wOjIyLGJpdHM6NSx2YWw6MTkzfSx7b3A6NjQsYml0czo1LHZhbDowfV0pXCI7ZnVuY3Rpb24gZml4ZWR0YWJsZXMoc3RhdGUpe3ZhciBpO2ZvcihsZW5maXhfYXJ5fHwobGVuZml4X2FyeT1ldmFsKGxlbmZpeF9kZWYpKSxkaXN0Zml4X2FyeXx8KGRpc3RmaXhfYXJ5PWV2YWwoZGlzdGZpeF9kZWYpKSxzdGF0ZS5sZW5jb2RlPTAsc3RhdGUuZGlzdGNvZGU9NTEyLGk9MDtpPDUxMjtpKyspc3RhdGUuY29kZXNbaV09bGVuZml4X2FyeVtpXTtmb3IoaT0wO2k8MzI7aSsrKXN0YXRlLmNvZGVzW2krNTEyXT1kaXN0Zml4X2FyeVtpXTtzdGF0ZS5sZW5iaXRzPTksc3RhdGUuZGlzdGJpdHM9NX1mdW5jdGlvbiB1cGRhdGV3aW5kb3codCl7dmFyIGU9dC5zdGF0ZSxhPXQub3V0cHV0X2RhdGEubGVuZ3RoO3JldHVybiBudWxsPT09ZS53aW5kb3cmJihlLndpbmRvdz1cIlwiKSwwPT1lLndzaXplJiYoZS53c2l6ZT0xPDxlLndiaXRzKSxhPj1lLndzaXplP2Uud2luZG93PXQub3V0cHV0X2RhdGEuc3Vic3RyaW5nKGEtZS53c2l6ZSk6ZS53aGF2ZSthPGUud3NpemU/ZS53aW5kb3crPXQub3V0cHV0X2RhdGE6ZS53aW5kb3c9ZS53aW5kb3cuc3Vic3RyaW5nKGUud2hhdmUtKGUud3NpemUtYSkpK3Qub3V0cHV0X2RhdGEsZS53aGF2ZT1lLndpbmRvdy5sZW5ndGgsZS53aGF2ZTxlLndzaXplP2Uud25leHQ9ZS53aGF2ZTplLnduZXh0PTAsMH1mdW5jdGlvbiBDUkMyKHQsZSl7dmFyIGE9WzI1NSZlLGU+Pj44JjI1NV07dC5zdGF0ZS5jaGVjaz10LmNoZWNrc3VtX2Z1bmN0aW9uKHQuc3RhdGUuY2hlY2ssYSwwLDIpfWZ1bmN0aW9uIENSQzQodCxlKXt2YXIgYT1bMjU1JmUsZT4+PjgmMjU1LGU+Pj4xNiYyNTUsZT4+PjI0JjI1NV07dC5zdGF0ZS5jaGVjaz10LmNoZWNrc3VtX2Z1bmN0aW9uKHQuc3RhdGUuY2hlY2ssYSwwLDQpfWZ1bmN0aW9uIExPQUQodCxlKXtyZXR1cm4gZS5zdHJtPXQsZS5sZWZ0PXQuYXZhaWxfb3V0LGUubmV4dD10Lm5leHRfaW4sZS5oYXZlPXQuYXZhaWxfaW4sZS5ob2xkPXQuc3RhdGUuaG9sZCxlLmJpdHM9dC5zdGF0ZS5iaXRzLGV9ZnVuY3Rpb24gUkVTVE9SRSh0KXt2YXIgZT10LnN0cm07ZS5uZXh0X2luPXQubmV4dCxlLmF2YWlsX291dD10LmxlZnQsZS5hdmFpbF9pbj10LmhhdmUsZS5zdGF0ZS5ob2xkPXQuaG9sZCxlLnN0YXRlLmJpdHM9dC5iaXRzfWZ1bmN0aW9uIElOSVRCSVRTKHQpe3QuaG9sZD0wLHQuYml0cz0wfWZ1bmN0aW9uIFBVTExCWVRFKHQpe3JldHVybiAwIT10LmhhdmUmJih0LmhhdmUtLSx0LmhvbGQrPSgyNTUmdC5zdHJtLmlucHV0X2RhdGEuY2hhckNvZGVBdCh0Lm5leHQrKykpPDx0LmJpdHMsdC5iaXRzKz04LCEwKX1mdW5jdGlvbiBORUVEQklUUyh0LGUpe2Zvcig7dC5iaXRzPGU7KWlmKCFQVUxMQllURSh0KSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBCSVRTKHQsZSl7cmV0dXJuIHQuaG9sZCYoMTw8ZSktMX1mdW5jdGlvbiBEUk9QQklUUyh0LGUpe3QuaG9sZD4+Pj1lLHQuYml0cy09ZX1mdW5jdGlvbiBCWVRFQklUUyh0KXt0LmhvbGQ+Pj49NyZ0LmJpdHMsdC5iaXRzLT03JnQuYml0c31mdW5jdGlvbiBSRVZFUlNFKHQpe3JldHVybih0Pj4+MjQmMjU1KSsodD4+PjgmNjUyODApKygoNjUyODAmdCk8PDgpKygoMjU1JnQpPDwyNCl9dmFyIGluZmxhdGVfb3JkZXI9WzE2LDE3LDE4LDAsOCw3LDksNiwxMCw1LDExLDQsMTIsMywxMywyLDE0LDEsMTVdO1pMSUIuaW5mbGF0ZT1mdW5jdGlvbih0LGUpe3ZhciBhLHMsbyxpLHIsbixsLGgsYyxwPS0xLGQ9LTE7aWYoIXR8fCF0LnN0YXRlfHwhdC5pbnB1dF9kYXRhJiYwIT10LmF2YWlsX2luKXJldHVybiBaTElCLlpfU1RSRUFNX0VSUk9SOyhhPXQuc3RhdGUpLm1vZGU9PVRZUEUmJihhLm1vZGU9VFlQRURPKSxMT0FEKHQscz17fSksbz1zLmhhdmUsaT1zLmxlZnQsYz1aTElCLlpfT0s7dDpmb3IoOzspc3dpdGNoKGEubW9kZSl7Y2FzZSBIRUFEOmlmKDA9PWEud3JhcCl7YS5tb2RlPVRZUEVETzticmVha31pZighTkVFREJJVFMocywxNikpYnJlYWsgdDtpZigyJmEud3JhcCYmMzU2MTU9PXMuaG9sZCl7YS5jaGVjaz10LmNoZWNrc3VtX2Z1bmN0aW9uKDAsbnVsbCwwLDApLENSQzIodCxzLmhvbGQpLElOSVRCSVRTKHMpLGEubW9kZT1GTEFHUzticmVha31pZihhLmZsYWdzPTAsbnVsbCE9PWEuaGVhZCYmKGEuaGVhZC5kb25lPS0xKSwhKDEmYS53cmFwKXx8KChCSVRTKHMsOCk8PDgpKyhzLmhvbGQ+Pj44KSklMzEpe3QubXNnPVwiaW5jb3JyZWN0IGhlYWRlciBjaGVja1wiLGEubW9kZT1CQUQ7YnJlYWt9aWYoQklUUyhzLDQpIT1aTElCLlpfREVGTEFURUQpe3QubXNnPVwidW5rbm93biBjb21wcmVzc2lvbiBtZXRob2RcIixhLm1vZGU9QkFEO2JyZWFrfWlmKERST1BCSVRTKHMsNCksaD1CSVRTKHMsNCkrOCwwPT1hLndiaXRzKWEud2JpdHM9aDtlbHNlIGlmKGg+YS53Yml0cyl7dC5tc2c9XCJpbnZhbGlkIHdpbmRvdyBzaXplXCIsYS5tb2RlPUJBRDticmVha31hLmRtYXg9MTw8aCx0LmFkbGVyPWEuY2hlY2s9dC5jaGVja3N1bV9mdW5jdGlvbigwLG51bGwsMCwwKSxhLm1vZGU9NTEyJnMuaG9sZD9ESUNUSUQ6VFlQRSxJTklUQklUUyhzKTticmVhaztjYXNlIEZMQUdTOmlmKCFORUVEQklUUyhzLDE2KSlicmVhayB0O2lmKGEuZmxhZ3M9cy5ob2xkLCgyNTUmYS5mbGFncykhPVpMSUIuWl9ERUZMQVRFRCl7dC5tc2c9XCJ1bmtub3duIGNvbXByZXNzaW9uIG1ldGhvZFwiLGEubW9kZT1CQUQ7YnJlYWt9aWYoNTczNDQmYS5mbGFncyl7dC5tc2c9XCJ1bmtub3duIGhlYWRlciBmbGFncyBzZXRcIixhLm1vZGU9QkFEO2JyZWFrfW51bGwhPT1hLmhlYWQmJihhLmhlYWQudGV4dD1zLmhvbGQ+Pj44JjEpLDUxMiZhLmZsYWdzJiZDUkMyKHQscy5ob2xkKSxJTklUQklUUyhzKSxhLm1vZGU9VElNRTtjYXNlIFRJTUU6aWYoIU5FRURCSVRTKHMsMzIpKWJyZWFrIHQ7bnVsbCE9PWEuaGVhZCYmKGEuaGVhZC50aW1lPXMuaG9sZCksNTEyJmEuZmxhZ3MmJkNSQzQodCxzLmhvbGQpLElOSVRCSVRTKHMpLGEubW9kZT1PUztjYXNlIE9TOmlmKCFORUVEQklUUyhzLDE2KSlicmVhayB0O251bGwhPT1hLmhlYWQmJihhLmhlYWQueGZsYWdzPTI1NSZzLmhvbGQsYS5oZWFkLm9zPXMuaG9sZD4+PjgpLDUxMiZhLmZsYWdzJiZDUkMyKHQscy5ob2xkKSxJTklUQklUUyhzKSxhLm1vZGU9RVhMRU47Y2FzZSBFWExFTjppZigxMDI0JmEuZmxhZ3Mpe2lmKCFORUVEQklUUyhzLDE2KSlicmVhayB0O2EubGVuZ3RoPXMuaG9sZCxudWxsIT09YS5oZWFkJiYoYS5oZWFkLmV4dHJhX2xlbj1zLmhvbGQpLDUxMiZhLmZsYWdzJiZDUkMyKHQscy5ob2xkKSxJTklUQklUUyhzKSxhLmhlYWQuZXh0cmE9XCJcIn1lbHNlIG51bGwhPT1hLmhlYWQmJihhLmhlYWQuZXh0cmE9bnVsbCk7YS5tb2RlPUVYVFJBO2Nhc2UgRVhUUkE6aWYoMTAyNCZhLmZsYWdzJiYoKHI9YS5sZW5ndGgpPnMuaGF2ZSYmKHI9cy5oYXZlKSxyJiYobnVsbCE9PWEuaGVhZCYmbnVsbCE9PWEuaGVhZC5leHRyYSYmKGg9YS5oZWFkLmV4dHJhX2xlbi1hLmxlbmd0aCxhLmhlYWQuZXh0cmErPXQuaW5wdXRfZGF0YS5zdWJzdHJpbmcocy5uZXh0LHMubmV4dCsoaCtyPmEuaGVhZC5leHRyYV9tYXg/YS5oZWFkLmV4dHJhX21heC1oOnIpKSksNTEyJmEuZmxhZ3MmJihhLmNoZWNrPXQuY2hlY2tzdW1fZnVuY3Rpb24oYS5jaGVjayx0LmlucHV0X2RhdGEscy5uZXh0LHIpKSxzLmhhdmUtPXIscy5uZXh0Kz1yLGEubGVuZ3RoLT1yKSxhLmxlbmd0aCkpYnJlYWsgdDthLmxlbmd0aD0wLGEubW9kZT1OQU1FO2Nhc2UgTkFNRTppZigyMDQ4JmEuZmxhZ3Mpe2lmKDA9PXMuaGF2ZSlicmVhayB0O251bGwhPT1hLmhlYWQmJm51bGw9PT1hLmhlYWQubmFtZSYmKGEuaGVhZC5uYW1lPVwiXCIpLHI9MDtkb3tpZihoPXQuaW5wdXRfZGF0YS5jaGFyQXQocy5uZXh0K3IpLHIrKyxcIlxcMFwiPT09aClicmVhaztudWxsIT09YS5oZWFkJiZhLmxlbmd0aDxhLmhlYWQubmFtZV9tYXgmJihhLmhlYWQubmFtZSs9aCxhLmxlbmd0aCsrKX13aGlsZShyPHMuaGF2ZSk7aWYoNTEyJmEuZmxhZ3MmJihhLmNoZWNrPXQuY2hlY2tzdW1fZnVuY3Rpb24oYS5jaGVjayx0LmlucHV0X2RhdGEscy5uZXh0LHIpKSxzLmhhdmUtPXIscy5uZXh0Kz1yLFwiXFwwXCIhPT1oKWJyZWFrIHR9ZWxzZSBudWxsIT09YS5oZWFkJiYoYS5oZWFkLm5hbWU9bnVsbCk7YS5sZW5ndGg9MCxhLm1vZGU9Q09NTUVOVDtjYXNlIENPTU1FTlQ6aWYoNDA5NiZhLmZsYWdzKXtpZigwPT1zLmhhdmUpYnJlYWsgdDtyPTAsbnVsbCE9PWEuaGVhZCYmbnVsbD09PWEuaGVhZC5jb21tZW50JiYoYS5oZWFkLmNvbW1lbnQ9XCJcIik7ZG97aWYoaD10LmlucHV0X2RhdGEuY2hhckF0KHMubmV4dCtyKSxyKyssXCJcXDBcIj09PWgpYnJlYWs7bnVsbCE9PWEuaGVhZCYmYS5sZW5ndGg8YS5oZWFkLmNvbW1fbWF4JiYoYS5oZWFkLmNvbW1lbnQrPWgsYS5sZW5ndGgrKyl9d2hpbGUocjxzLmhhdmUpO2lmKDUxMiZhLmZsYWdzJiYoYS5jaGVjaz10LmNoZWNrc3VtX2Z1bmN0aW9uKGEuY2hlY2ssdC5pbnB1dF9kYXRhLHMubmV4dCxyKSkscy5oYXZlLT1yLHMubmV4dCs9cixcIlxcMFwiIT09aClicmVhayB0fWVsc2UgbnVsbCE9PWEuaGVhZCYmKGEuaGVhZC5jb21tZW50PW51bGwpO2EubW9kZT1IQ1JDO2Nhc2UgSENSQzppZig1MTImYS5mbGFncyl7aWYoIU5FRURCSVRTKHMsMTYpKWJyZWFrIHQ7aWYocy5ob2xkIT0oNjU1MzUmYS5jaGVjaykpe3QubXNnPVwiaGVhZGVyIGNyYyBtaXNtYXRjaFwiLGEubW9kZT1CQUQ7YnJlYWt9SU5JVEJJVFMocyl9bnVsbCE9PWEuaGVhZCYmKGEuaGVhZC5oY3JjPWEuZmxhZ3M+Pj45JjEsYS5oZWFkLmRvbmU9MSksdC5hZGxlcj1hLmNoZWNrPXQuY2hlY2tzdW1fZnVuY3Rpb24oMCxudWxsLDAsMCksYS5tb2RlPVRZUEU7YnJlYWs7Y2FzZSBESUNUSUQ6aWYoIU5FRURCSVRTKHMsMzIpKWJyZWFrIHQ7dC5hZGxlcj1hLmNoZWNrPVJFVkVSU0Uocy5ob2xkKSxJTklUQklUUyhzKSxhLm1vZGU9RElDVDtjYXNlIERJQ1Q6aWYoMD09YS5oYXZlZGljdClyZXR1cm4gUkVTVE9SRShzKSxaTElCLlpfTkVFRF9ESUNUO3QuYWRsZXI9YS5jaGVjaz10LmNoZWNrc3VtX2Z1bmN0aW9uKDAsbnVsbCwwLDApLGEubW9kZT1UWVBFO2Nhc2UgVFlQRTppZihlPT1aTElCLlpfQkxPQ0t8fGU9PVpMSUIuWl9UUkVFUylicmVhayB0O2Nhc2UgVFlQRURPOmlmKGEubGFzdCl7QllURUJJVFMocyksYS5tb2RlPUNIRUNLO2JyZWFrfWlmKCFORUVEQklUUyhzLDMpKWJyZWFrIHQ7c3dpdGNoKGEubGFzdD1CSVRTKHMsMSksRFJPUEJJVFMocywxKSxCSVRTKHMsMikpe2Nhc2UgMDphLm1vZGU9U1RPUkVEO2JyZWFrO2Nhc2UgMTppZihmaXhlZHRhYmxlcyhhKSxhLm1vZGU9TEVOXyxlPT1aTElCLlpfVFJFRVMpe0RST1BCSVRTKHMsMik7YnJlYWsgdH1icmVhaztjYXNlIDI6YS5tb2RlPVRBQkxFO2JyZWFrO2Nhc2UgMzp0Lm1zZz1cImludmFsaWQgYmxvY2sgdHlwZVwiLGEubW9kZT1CQUR9RFJPUEJJVFMocywyKTticmVhaztjYXNlIFNUT1JFRDppZihCWVRFQklUUyhzKSwhTkVFREJJVFMocywzMikpYnJlYWsgdDtpZigoNjU1MzUmcy5ob2xkKSE9KHMuaG9sZD4+PjE2JjY1NTM1XjY1NTM1KSl7dC5tc2c9XCJpbnZhbGlkIHN0b3JlZCBibG9jayBsZW5ndGhzXCIsYS5tb2RlPUJBRDticmVha31pZihhLmxlbmd0aD02NTUzNSZzLmhvbGQsSU5JVEJJVFMocyksYS5tb2RlPUNPUFlfLGU9PVpMSUIuWl9UUkVFUylicmVhayB0O2Nhc2UgQ09QWV86YS5tb2RlPUNPUFk7Y2FzZSBDT1BZOmlmKHI9YS5sZW5ndGgpe2lmKHI+cy5oYXZlJiYocj1zLmhhdmUpLHI+cy5sZWZ0JiYocj1zLmxlZnQpLDA9PXIpYnJlYWsgdDt0Lm91dHB1dF9kYXRhKz10LmlucHV0X2RhdGEuc3Vic3RyaW5nKHMubmV4dCxzLm5leHQrciksdC5uZXh0X291dCs9cixzLmhhdmUtPXIscy5uZXh0Kz1yLHMubGVmdC09cixhLmxlbmd0aC09cjticmVha31hLm1vZGU9VFlQRTticmVhaztjYXNlIFRBQkxFOmlmKCFORUVEQklUUyhzLDE0KSlicmVhayB0O2lmKGEubmxlbj1CSVRTKHMsNSkrMjU3LERST1BCSVRTKHMsNSksYS5uZGlzdD1CSVRTKHMsNSkrMSxEUk9QQklUUyhzLDUpLGEubmNvZGU9QklUUyhzLDQpKzQsRFJPUEJJVFMocyw0KSxhLm5sZW4+Mjg2fHxhLm5kaXN0PjMwKXt0Lm1zZz1cInRvbyBtYW55IGxlbmd0aCBvciBkaXN0YW5jZSBzeW1ib2xzXCIsYS5tb2RlPUJBRDticmVha31hLmhhdmU9MCxhLm1vZGU9TEVOTEVOUztjYXNlIExFTkxFTlM6Zm9yKDthLmhhdmU8YS5uY29kZTspe2lmKCFORUVEQklUUyhzLDMpKWJyZWFrIHQ7dmFyIHY9QklUUyhzLDMpO2EubGVuc1tpbmZsYXRlX29yZGVyW2EuaGF2ZSsrXV09dixEUk9QQklUUyhzLDMpfWZvcig7YS5oYXZlPDE5OylhLmxlbnNbaW5mbGF0ZV9vcmRlclthLmhhdmUrK11dPTA7aWYoYS5uZXh0PTAsYS5sZW5jb2RlPTAsYS5sZW5iaXRzPTcsYz1pbmZsYXRlX3RhYmxlKGEsQ09ERVMpKXt0Lm1zZz1cImludmFsaWQgY29kZSBsZW5ndGhzIHNldFwiLGEubW9kZT1CQUQ7YnJlYWt9YS5oYXZlPTAsYS5tb2RlPUNPREVMRU5TO2Nhc2UgQ09ERUxFTlM6Zm9yKDthLmhhdmU8YS5ubGVuK2EubmRpc3Q7KXtmb3IoOyEoKG49YS5jb2Rlc1thLmxlbmNvZGUrQklUUyhzLGEubGVuYml0cyldKS5iaXRzPD1zLmJpdHMpOylpZighUFVMTEJZVEUocykpYnJlYWsgdDtpZihuLnZhbDwxNilEUk9QQklUUyhzLG4uYml0cyksYS5sZW5zW2EuaGF2ZSsrXT1uLnZhbDtlbHNle2lmKDE2PT1uLnZhbCl7aWYoIU5FRURCSVRTKHMsbi5iaXRzKzIpKWJyZWFrIHQ7aWYoRFJPUEJJVFMocyxuLmJpdHMpLDA9PWEuaGF2ZSl7dC5tc2c9XCJpbnZhbGlkIGJpdCBsZW5ndGggcmVwZWF0XCIsYS5tb2RlPUJBRDticmVha31oPWEubGVuc1thLmhhdmUtMV0scj0zK0JJVFMocywyKSxEUk9QQklUUyhzLDIpfWVsc2UgaWYoMTc9PW4udmFsKXtpZighTkVFREJJVFMocyxuLmJpdHMrMykpYnJlYWsgdDtEUk9QQklUUyhzLG4uYml0cyksaD0wLHI9MytCSVRTKHMsMyksRFJPUEJJVFMocywzKX1lbHNle2lmKCFORUVEQklUUyhzLG4uYml0cys3KSlicmVhayB0O0RST1BCSVRTKHMsbi5iaXRzKSxoPTAscj0xMStCSVRTKHMsNyksRFJPUEJJVFMocyw3KX1pZihhLmhhdmUrcj5hLm5sZW4rYS5uZGlzdCl7dC5tc2c9XCJpbnZhbGlkIGJpdCBsZW5ndGggcmVwZWF0XCIsYS5tb2RlPUJBRDticmVha31mb3IoO3ItLTspYS5sZW5zW2EuaGF2ZSsrXT1ofX1pZihhLm1vZGU9PUJBRClicmVhaztpZigwPT1hLmxlbnNbMjU2XSl7dC5tc2c9XCJpbnZhbGlkIGNvZGUgLS0gbWlzc2luZyBlbmQtb2YtYmxvY2tcIixhLm1vZGU9QkFEO2JyZWFrfWlmKGEubmV4dD0wLGEubGVuY29kZT1hLm5leHQsYS5sZW5iaXRzPTksYz1pbmZsYXRlX3RhYmxlKGEsTEVOUykpe3QubXNnPVwiaW52YWxpZCBsaXRlcmFsL2xlbmd0aHMgc2V0XCIsYS5tb2RlPUJBRDticmVha31pZihhLmRpc3Rjb2RlPWEubmV4dCxhLmRpc3RiaXRzPTYsYz1pbmZsYXRlX3RhYmxlKGEsRElTVFMpKXt0Lm1zZz1cImludmFsaWQgZGlzdGFuY2VzIHNldFwiLGEubW9kZT1CQUQ7YnJlYWt9aWYoYS5tb2RlPUxFTl8sZT09WkxJQi5aX1RSRUVTKWJyZWFrIHQ7Y2FzZSBMRU5fOmEubW9kZT1MRU47Y2FzZSBMRU46aWYocy5oYXZlPj02JiZzLmxlZnQ+PTI1OCl7UkVTVE9SRShzKSxpbmZsYXRlX2Zhc3QodCxpKSxMT0FEKHQscyksYS5tb2RlPT1UWVBFJiYoYS5iYWNrPS0xKTticmVha31mb3IoYS5iYWNrPTA7ISgobj1hLmNvZGVzW2EubGVuY29kZStCSVRTKHMsYS5sZW5iaXRzKV0pLmJpdHM8PXMuYml0cyk7KWlmKCFQVUxMQllURShzKSlicmVhayB0O2lmKG4ub3AmJjA9PSgyNDAmbi5vcCkpe2ZvcihsPW47bj1hLmNvZGVzW2EubGVuY29kZStsLnZhbCsoQklUUyhzLGwuYml0cytsLm9wKT4+PmwuYml0cyldLCEobC5iaXRzK24uYml0czw9cy5iaXRzKTspaWYoIVBVTExCWVRFKHMpKWJyZWFrIHQ7RFJPUEJJVFMocyxsLmJpdHMpLGEuYmFjays9bC5iaXRzfWlmKERST1BCSVRTKHMsbi5iaXRzKSxhLmJhY2srPW4uYml0cyxhLmxlbmd0aD1uLnZhbCwwPT1uLm9wKXthLm1vZGU9TElUO2JyZWFrfWlmKDMyJm4ub3Ape2EuYmFjaz0tMSxhLm1vZGU9VFlQRTticmVha31pZig2NCZuLm9wKXt0Lm1zZz1cImludmFsaWQgbGl0ZXJhbC9sZW5ndGggY29kZVwiLGEubW9kZT1CQUQ7YnJlYWt9YS5leHRyYT0xNSZuLm9wLGEubW9kZT1MRU5FWFQ7Y2FzZSBMRU5FWFQ6aWYoYS5leHRyYSl7aWYoIU5FRURCSVRTKHMsYS5leHRyYSkpYnJlYWsgdDthLmxlbmd0aCs9QklUUyhzLGEuZXh0cmEpLERST1BCSVRTKHMsYS5leHRyYSksYS5iYWNrKz1hLmV4dHJhfWEud2FzPWEubGVuZ3RoLGEubW9kZT1ESVNUO2Nhc2UgRElTVDpmb3IoOyEoKG49YS5jb2Rlc1thLmRpc3Rjb2RlK0JJVFMocyxhLmRpc3RiaXRzKV0pLmJpdHM8PXMuYml0cyk7KWlmKCFQVUxMQllURShzKSlicmVhayB0O2lmKDA9PSgyNDAmbi5vcCkpe2ZvcihsPW47bj1hLmNvZGVzW2EuZGlzdGNvZGUrbC52YWwrKEJJVFMocyxsLmJpdHMrbC5vcCk+Pj5sLmJpdHMpXSwhKGwuYml0cytuLmJpdHM8PXMuYml0cyk7KWlmKCFQVUxMQllURShzKSlicmVhayB0O0RST1BCSVRTKHMsbC5iaXRzKSxhLmJhY2srPWwuYml0c31pZihEUk9QQklUUyhzLG4uYml0cyksYS5iYWNrKz1uLmJpdHMsNjQmbi5vcCl7dC5tc2c9XCJpbnZhbGlkIGRpc3RhbmNlIGNvZGVcIixhLm1vZGU9QkFEO2JyZWFrfWEub2Zmc2V0PW4udmFsLGEuZXh0cmE9MTUmbi5vcCxhLm1vZGU9RElTVEVYVDtjYXNlIERJU1RFWFQ6aWYoYS5leHRyYSl7aWYoIU5FRURCSVRTKHMsYS5leHRyYSkpYnJlYWsgdDthLm9mZnNldCs9QklUUyhzLGEuZXh0cmEpLERST1BCSVRTKHMsYS5leHRyYSksYS5iYWNrKz1hLmV4dHJhfWEubW9kZT1NQVRDSDtjYXNlIE1BVENIOmlmKDA9PXMubGVmdClicmVhayB0O2lmKHI9aS1zLmxlZnQsYS5vZmZzZXQ+cil7aWYoKHI9YS5vZmZzZXQtcik+YS53aGF2ZSYmYS5zYW5lKXt0Lm1zZz1cImludmFsaWQgZGlzdGFuY2UgdG9vIGZhciBiYWNrXCIsYS5tb2RlPUJBRDticmVha31yPmEud25leHQ/KHItPWEud25leHQscD1hLndzaXplLXIsZD0tMSk6KHA9YS53bmV4dC1yLGQ9LTEpLHI+YS5sZW5ndGgmJihyPWEubGVuZ3RoKX1lbHNlIHA9LTEsZD10Lm5leHRfb3V0LWEub2Zmc2V0LHI9YS5sZW5ndGg7aWYocj5zLmxlZnQmJihyPXMubGVmdCkscy5sZWZ0LT1yLGEubGVuZ3RoLT1yLHA+PTApdC5vdXRwdXRfZGF0YSs9YS53aW5kb3cuc3Vic3RyaW5nKHAscCtyKSx0Lm5leHRfb3V0Kz1yLHI9MDtlbHNle3QubmV4dF9vdXQrPXI7ZG97dC5vdXRwdXRfZGF0YSs9dC5vdXRwdXRfZGF0YS5jaGFyQXQoZCsrKX13aGlsZSgtLXIpfTA9PWEubGVuZ3RoJiYoYS5tb2RlPUxFTik7YnJlYWs7Y2FzZSBMSVQ6aWYoMD09cy5sZWZ0KWJyZWFrIHQ7dC5vdXRwdXRfZGF0YSs9U3RyaW5nLmZyb21DaGFyQ29kZShhLmxlbmd0aCksdC5uZXh0X291dCsrLHMubGVmdC0tLGEubW9kZT1MRU47YnJlYWs7Y2FzZSBDSEVDSzppZihhLndyYXApe2lmKCFORUVEQklUUyhzLDMyKSlicmVhayB0O2lmKGktPXMubGVmdCx0LnRvdGFsX291dCs9aSxhLnRvdGFsKz1pLGkmJih0LmFkbGVyPWEuY2hlY2s9dC5jaGVja3N1bV9mdW5jdGlvbihhLmNoZWNrLHQub3V0cHV0X2RhdGEsdC5vdXRwdXRfZGF0YS5sZW5ndGgtaSxpKSksaT1zLmxlZnQsKGEuZmxhZ3M/cy5ob2xkOlJFVkVSU0Uocy5ob2xkKSkhPWEuY2hlY2spe3QubXNnPVwiaW5jb3JyZWN0IGRhdGEgY2hlY2tcIixhLm1vZGU9QkFEO2JyZWFrfUlOSVRCSVRTKHMpfWEubW9kZT1MRU5HVEg7Y2FzZSBMRU5HVEg6aWYoYS53cmFwJiZhLmZsYWdzKXtpZighTkVFREJJVFMocywzMikpYnJlYWsgdDtpZihzLmhvbGQhPSg0Mjk0OTY3Mjk1JmEudG90YWwpKXt0Lm1zZz1cImluY29ycmVjdCBsZW5ndGggY2hlY2tcIixhLm1vZGU9QkFEO2JyZWFrfUlOSVRCSVRTKHMpfWEubW9kZT1ET05FO2Nhc2UgRE9ORTpjPVpMSUIuWl9TVFJFQU1fRU5EO2JyZWFrIHQ7Y2FzZSBCQUQ6Yz1aTElCLlpfREFUQV9FUlJPUjticmVhayB0O2Nhc2UgTUVNOnJldHVybiBaTElCLlpfTUVNX0VSUk9SO2Nhc2UgU1lOQzpkZWZhdWx0OnJldHVybiBaTElCLlpfU1RSRUFNX0VSUk9SfXJldHVybiBSRVNUT1JFKHMpLChhLndzaXplfHxpIT10LmF2YWlsX291dCYmYS5tb2RlPEJBRCYmKGEubW9kZTxDSEVDS3x8ZSE9WkxJQi5aX0ZJTklTSCkpJiZ1cGRhdGV3aW5kb3codCk/KGEubW9kZT1NRU0sWkxJQi5aX01FTV9FUlJPUik6KG8tPXQuYXZhaWxfaW4saS09dC5hdmFpbF9vdXQsdC50b3RhbF9pbis9byx0LnRvdGFsX291dCs9aSxhLnRvdGFsKz1pLGEud3JhcCYmaSYmKHQuYWRsZXI9YS5jaGVjaz10LmNoZWNrc3VtX2Z1bmN0aW9uKGEuY2hlY2ssdC5vdXRwdXRfZGF0YSwwLHQub3V0cHV0X2RhdGEubGVuZ3RoKSksdC5kYXRhX3R5cGU9YS5iaXRzKyhhLmxhc3Q/NjQ6MCkrKGEubW9kZT09VFlQRT8xMjg6MCkrKGEubW9kZT09TEVOX3x8YS5tb2RlPT1DT1BZXz8yNTY6MCksKDA9PW8mJjA9PWl8fGU9PVpMSUIuWl9GSU5JU0gpJiZjPT1aTElCLlpfT0smJihjPVpMSUIuWl9CVUZfRVJST1IpLGMpfSxaTElCLmluZmxhdGVFbmQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQmJnQuc3RhdGU/KHQuc3RhdGUud2luZG93PW51bGwsdC5zdGF0ZT1udWxsLFpMSUIuWl9PSyk6WkxJQi5aX1NUUkVBTV9FUlJPUn0sWkxJQi56X3N0cmVhbS5wcm90b3R5cGUuaW5mbGF0ZT1mdW5jdGlvbih0LGUpe3ZhciBhLHM7dGhpcy5pbnB1dF9kYXRhPXQsdGhpcy5uZXh0X2luPWdldGFyZyhlLFwibmV4dF9pblwiLDApLHRoaXMuYXZhaWxfaW49Z2V0YXJnKGUsXCJhdmFpbF9pblwiLHQubGVuZ3RoLXRoaXMubmV4dF9pbiksYT1nZXRhcmcoZSxcImZsdXNoXCIsWkxJQi5aX1NZTkNfRkxVU0gpLHM9Z2V0YXJnKGUsXCJhdmFpbF9vdXRcIiwtMSk7dmFyIG89XCJcIjtkb3tpZih0aGlzLmF2YWlsX291dD1zPj0wP3M6MTYzODQsdGhpcy5vdXRwdXRfZGF0YT1cIlwiLHRoaXMubmV4dF9vdXQ9MCx0aGlzLmVycm9yPVpMSUIuaW5mbGF0ZSh0aGlzLGEpLDAhPXRoaXMuZXJyb3ImJmNvbnNvbGUubG9nKFwiemxpYiBlcnJvclwiLHRoaXMuZXJyb3IpLHM+PTApcmV0dXJuIHRoaXMub3V0cHV0X2RhdGE7aWYobys9dGhpcy5vdXRwdXRfZGF0YSx0aGlzLmF2YWlsX291dD4wKWJyZWFrfXdoaWxlKHRoaXMuZXJyb3I9PVpMSUIuWl9PSyk7cmV0dXJuIG99LFpMSUIuel9zdHJlYW0ucHJvdG90eXBlLmluZmxhdGVSZXNldD1mdW5jdGlvbih0KXtyZXR1cm4gWkxJQi5pbmZsYXRlUmVzZXQodGhpcyx0KX19KCksdm9pZCAwPT09WkxJQiYmYWxlcnQoXCJaTElCIGlzIG5vdCBkZWZpbmVkLiAgU1JDIHpsaWIuanMgYmVmb3JlIHpsaWItYWRsZXIzMi5qc1wiKSxCQVNFPTY1NTIxLE5NQVg9NTU1MixaTElCLmFkbGVyMzI9ZnVuY3Rpb24odCxlLGEscyl7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIGU/ZnVuY3Rpb24odCxlLGEscyl7dmFyIG8saTtpZihvPXQ+Pj4xNiY2NTUzNSx0Jj02NTUzNSwxPT1zKXJldHVybih0Kz0yNTUmZS5jaGFyQ29kZUF0KGEpKT49QkFTRSYmKHQtPUJBU0UpLChvKz10KT49QkFTRSYmKG8tPUJBU0UpLHR8bzw8MTY7aWYobnVsbD09PWUpcmV0dXJuIDE7aWYoczwxNil7Zm9yKDtzLS07KW8rPXQrPTI1NSZlLmNoYXJDb2RlQXQoYSsrKTtyZXR1cm4gdD49QkFTRSYmKHQtPUJBU0UpLHR8KG8lPUJBU0UpPDwxNn1mb3IoO3M+PU5NQVg7KXtzLT1OTUFYLGk9MzQ3O2Rve28rPXQrPTI1NSZlLmNoYXJDb2RlQXQoYSsrKSxvKz10Kz0yNTUmZS5jaGFyQ29kZUF0KGErKyksbys9dCs9MjU1JmUuY2hhckNvZGVBdChhKyspLG8rPXQrPTI1NSZlLmNoYXJDb2RlQXQoYSsrKSxvKz10Kz0yNTUmZS5jaGFyQ29kZUF0KGErKyksbys9dCs9MjU1JmUuY2hhckNvZGVBdChhKyspLG8rPXQrPTI1NSZlLmNoYXJDb2RlQXQoYSsrKSxvKz10Kz0yNTUmZS5jaGFyQ29kZUF0KGErKyksbys9dCs9MjU1JmUuY2hhckNvZGVBdChhKyspLG8rPXQrPTI1NSZlLmNoYXJDb2RlQXQoYSsrKSxvKz10Kz0yNTUmZS5jaGFyQ29kZUF0KGErKyksbys9dCs9MjU1JmUuY2hhckNvZGVBdChhKyspLG8rPXQrPTI1NSZlLmNoYXJDb2RlQXQoYSsrKSxvKz10Kz0yNTUmZS5jaGFyQ29kZUF0KGErKyksbys9dCs9MjU1JmUuY2hhckNvZGVBdChhKyspLG8rPXQrPTI1NSZlLmNoYXJDb2RlQXQoYSsrKX13aGlsZSgtLWkpO3QlPUJBU0UsbyU9QkFTRX1pZihzKXtmb3IoO3M+PTE2OylzLT0xNixvKz10Kz0yNTUmZS5jaGFyQ29kZUF0KGErKyksbys9dCs9MjU1JmUuY2hhckNvZGVBdChhKyspLG8rPXQrPTI1NSZlLmNoYXJDb2RlQXQoYSsrKSxvKz10Kz0yNTUmZS5jaGFyQ29kZUF0KGErKyksbys9dCs9MjU1JmUuY2hhckNvZGVBdChhKyspLG8rPXQrPTI1NSZlLmNoYXJDb2RlQXQoYSsrKSxvKz10Kz0yNTUmZS5jaGFyQ29kZUF0KGErKyksbys9dCs9MjU1JmUuY2hhckNvZGVBdChhKyspLG8rPXQrPTI1NSZlLmNoYXJDb2RlQXQoYSsrKSxvKz10Kz0yNTUmZS5jaGFyQ29kZUF0KGErKyksbys9dCs9MjU1JmUuY2hhckNvZGVBdChhKyspLG8rPXQrPTI1NSZlLmNoYXJDb2RlQXQoYSsrKSxvKz10Kz0yNTUmZS5jaGFyQ29kZUF0KGErKyksbys9dCs9MjU1JmUuY2hhckNvZGVBdChhKyspLG8rPXQrPTI1NSZlLmNoYXJDb2RlQXQoYSsrKSxvKz10Kz0yNTUmZS5jaGFyQ29kZUF0KGErKyk7Zm9yKDtzLS07KW8rPXQrPTI1NSZlLmNoYXJDb2RlQXQoYSsrKTt0JT1CQVNFLG8lPUJBU0V9cmV0dXJuIHR8bzw8MTZ9KHQsZSxhLHMpOmZ1bmN0aW9uKHQsZSxhLHMpe3ZhciBvLGk7aWYobz10Pj4+MTYmNjU1MzUsdCY9NjU1MzUsMT09cylyZXR1cm4odCs9ZVthXSk+PUJBU0UmJih0LT1CQVNFKSwobys9dCk+PUJBU0UmJihvLT1CQVNFKSx0fG88PDE2O2lmKG51bGw9PT1lKXJldHVybiAxO2lmKHM8MTYpe2Zvcig7cy0tOylvKz10Kz1lW2ErK107cmV0dXJuIHQ+PUJBU0UmJih0LT1CQVNFKSx0fChvJT1CQVNFKTw8MTZ9Zm9yKDtzPj1OTUFYOyl7cy09Tk1BWCxpPTM0Nztkb3tvKz10Kz1lW2ErK10sbys9dCs9ZVthKytdLG8rPXQrPWVbYSsrXSxvKz10Kz1lW2ErK10sbys9dCs9ZVthKytdLG8rPXQrPWVbYSsrXSxvKz10Kz1lW2ErK10sbys9dCs9ZVthKytdLG8rPXQrPWVbYSsrXSxvKz10Kz1lW2ErK10sbys9dCs9ZVthKytdLG8rPXQrPWVbYSsrXSxvKz10Kz1lW2ErK10sbys9dCs9ZVthKytdLG8rPXQrPWVbYSsrXSxvKz10Kz1lW2ErK119d2hpbGUoLS1pKTt0JT1CQVNFLG8lPUJBU0V9aWYocyl7Zm9yKDtzPj0xNjspcy09MTYsbys9dCs9ZVthKytdLG8rPXQrPWVbYSsrXSxvKz10Kz1lW2ErK10sbys9dCs9ZVthKytdLG8rPXQrPWVbYSsrXSxvKz10Kz1lW2ErK10sbys9dCs9ZVthKytdLG8rPXQrPWVbYSsrXSxvKz10Kz1lW2ErK10sbys9dCs9ZVthKytdLG8rPXQrPWVbYSsrXSxvKz10Kz1lW2ErK10sbys9dCs9ZVthKytdLG8rPXQrPWVbYSsrXSxvKz10Kz1lW2ErK10sbys9dCs9ZVthKytdO2Zvcig7cy0tOylvKz10Kz1lW2ErK107dCU9QkFTRSxvJT1CQVNFfXJldHVybiB0fG88PDE2fSh0LGUsYSxzKX0sWkxJQi5hZGxlcjMyX2NvbWJpbmU9ZnVuY3Rpb24odCxlLGEpe3ZhciBzLG8saTtyZXR1cm4gYTwwPzQyOTQ5NjcyOTU6KG89KGk9YSU9QkFTRSkqKHM9NjU1MzUmdCksbyU9QkFTRSwocys9KDY1NTM1JmUpK0JBU0UtMSk+PUJBU0UmJihzLT1CQVNFKSxzPj1CQVNFJiYocy09QkFTRSksKG8rPSh0Pj4xNiY2NTUzNSkrKGU+PjE2JjY1NTM1KStCQVNFLWkpPj0xMzEwNDImJihvLT0xMzEwNDIpLG8+PUJBU0UmJihvLT1CQVNFKSxzfG88PDE2KX0sdm9pZCAwPT09WkxJQiYmYWxlcnQoXCJaTElCIGlzIG5vdCBkZWZpbmVkLiAgU1JDIHpsaWIuanMgYmVmb3JlIHpsaWItY3JjMzIuanNcIiksZnVuY3Rpb24oKXt2YXIgdD1bMCwxOTk2OTU5ODk0LDM5OTM5MTk3ODgsMjU2NzUyNDc5NCwxMjQ2MzQxMzcsMTg4NjA1NzYxNSwzOTE1NjIxNjg1LDI2NTczOTIwMzUsMjQ5MjY4Mjc0LDIwNDQ1MDgzMjQsMzc3MjExNTIzMCwyNTQ3MTc3ODY0LDE2Mjk0MTk5NSwyMTI1NTYxMDIxLDM4ODc2MDcwNDcsMjQyODQ0NDA0OSw0OTg1MzY1NDgsMTc4OTkyNzY2Niw0MDg5MDE2NjQ4LDIyMjcwNjEyMTQsNDUwNTQ4ODYxLDE4NDMyNTg2MDMsNDEwNzU4MDc1MywyMjExNjc3NjM5LDMyNTg4Mzk5MCwxNjg0Nzc3MTUyLDQyNTExMjIwNDIsMjMyMTkyNjYzNiwzMzU2MzM0ODcsMTY2MTM2NTQ2NSw0MTk1MzAyNzU1LDIzNjYxMTUzMTcsOTk3MDczMDk2LDEyODE5NTM4ODYsMzU3OTg1NTMzMiwyNzI0Njg4MjQyLDEwMDY4ODgxNDUsMTI1ODYwNzY4NywzNTI0MTAxNjI5LDI3Njg5NDI0NDMsOTAxMDk3NzIyLDExMTkwMDA2ODQsMzY4NjUxNzIwNiwyODk4MDY1NzI4LDg1MzA0NDQ1MSwxMTcyMjY2MTAxLDM3MDUwMTU3NTksMjg4MjYxNjY2NSw2NTE3Njc5ODAsMTM3MzUwMzU0NiwzMzY5NTU0MzA0LDMyMTgxMDQ1OTgsNTY1NTA3MjUzLDE0NTQ2MjE3MzEsMzQ4NTExMTcwNSwzMDk5NDM2MzAzLDY3MTI2Njk3NCwxNTk0MTk4MDI0LDMzMjI3MzA5MzAsMjk3MDM0NzgxMiw3OTU4MzU1MjcsMTQ4MzIzMDIyNSwzMjQ0MzY3Mjc1LDMwNjAxNDk1NjUsMTk5NDE0NjE5MiwzMTE1ODUzNCwyNTYzOTA3NzcyLDQwMjM3MTc5MzAsMTkwNzQ1OTQ2NSwxMTI2MzcyMTUsMjY4MDE1MzI1MywzOTA0NDI3MDU5LDIwMTM3NzYyOTAsMjUxNzIyMDM2LDI1MTcyMTUzNzQsMzc3NTgzMDA0MCwyMTM3NjU2NzYzLDE0MTM3NjgxMywyNDM5Mjc3NzE5LDM4NjUyNzEyOTcsMTgwMjE5NTQ0NCw0NzY4NjQ4NjYsMjIzODAwMTM2OCw0MDY2NTA4ODc4LDE4MTIzNzA5MjUsNDUzMDkyNzMxLDIxODE2MjUwMjUsNDExMTQ1MTIyMywxNzA2MDg4OTAyLDMxNDA0MjcwNCwyMzQ0NTMyMjAyLDQyNDAwMTc1MzIsMTY1ODY1ODI3MSwzNjY2MTk5NzcsMjM2MjY3MDMyMyw0MjI0OTk0NDA1LDEzMDM1MzU5NjAsOTg0OTYxNDg2LDI3NDcwMDcwOTIsMzU2OTAzNzUzOCwxMjU2MTcwODE3LDEwMzc2MDQzMTEsMjc2NTIxMDczMywzNTU0MDc5OTk1LDExMzEwMTQ1MDYsODc5Njc5OTk2LDI5MDkyNDM0NjIsMzY2Mzc3MTg1NiwxMTQxMTI0NDY3LDg1NTg0MjI3NywyODUyODAxNjMxLDM3MDg2NDg2NDksMTM0MjUzMzk0OCw2NTQ0NTkzMDYsMzE4ODM5NjA0OCwzMzczMDE1MTc0LDE0NjY0Nzk5MDksNTQ0MTc5NjM1LDMxMTA1MjM5MTMsMzQ2MjUyMjAxNSwxNTkxNjcxMDU0LDcwMjEzODc3NiwyOTY2NDYwNDUwLDMzNTI3OTk0MTIsMTUwNDkxODgwNyw3ODM1NTE4NzMsMzA4MjY0MDQ0MywzMjMzNDQyOTg5LDM5ODgyOTIzODQsMjU5NjI1NDY0Niw2MjMxNzA2OCwxOTU3ODEwODQyLDM5Mzk4NDU5NDUsMjY0NzgxNjExMSw4MTQ3MDk5NywxOTQzODAzNTIzLDM4MTQ5MTg5MzAsMjQ4OTU5NjgwNCwyMjUyNzQ0MzAsMjA1Mzc5MDM3NiwzODI2MTc1NzU1LDI0NjY5MDYwMTMsMTY3ODE2NzQzLDIwOTc2NTEzNzcsNDAyNzU1MjU4MCwyMjY1NDkwMzg2LDUwMzQ0NDA3MiwxNzYyMDUwODE0LDQxNTA0MTcyNDUsMjE1NDEyOTM1NSw0MjY1MjIyMjUsMTg1MjUwNzg3OSw0Mjc1MzEzNTI2LDIzMTIzMTc5MjAsMjgyNzUzNjI2LDE3NDI1NTU4NTIsNDE4OTcwODE0MywyMzk0ODc3OTQ1LDM5NzkxNzc2MywxNjIyMTgzNjM3LDM2MDQzOTA4ODgsMjcxNDg2NjU1OCw5NTM3Mjk3MzIsMTM0MDA3NjYyNiwzNTE4NzE5OTg1LDI3OTczNjA5OTksMTA2ODgyODM4MSwxMjE5NjM4ODU5LDM2MjQ3NDE4NTAsMjkzNjY3NTE0OCw5MDYxODU0NjIsMTA5MDgxMjUxMiwzNzQ3NjcyMDAzLDI4MjUzNzk2NjksODI5MzI5MTM1LDExODEzMzUxNjEsMzQxMjE3NzgwNCwzMTYwODM0ODQyLDYyODA4NTQwOCwxMzgyNjA1MzY2LDM0MjMzNjkxMDksMzEzODA3ODQ2Nyw1NzA1NjIyMzMsMTQyNjQwMDgxNSwzMzE3MzE2NTQyLDI5OTg3MzM2MDgsNzMzMjM5OTU0LDE1NTUyNjE5NTYsMzI2ODkzNTU5MSwzMDUwMzYwNjI1LDc1MjQ1OTQwMywxNTQxMzIwMjIxLDI2MDcwNzE5MjAsMzk2NTk3MzAzMCwxOTY5OTIyOTcyLDQwNzM1NDk4LDI2MTc4MzcyMjUsMzk0MzU3NzE1MSwxOTEzMDg3ODc3LDgzOTA4MzcxLDI1MTIzNDE2MzQsMzgwMzc0MDY5MiwyMDc1MjA4NjIyLDIxMzI2MTExMiwyNDYzMjcyNjAzLDM4NTU5OTAyODUsMjA5NDg1NDA3MSwxOTg5NTg4ODEsMjI2MjAyOTAxMiw0MDU3MjYwNjEwLDE3NTkzNTk5OTIsNTM0NDE0MTkwLDIxNzY3MTg1NDEsNDEzOTMyOTExNSwxODczODM2MDAxLDQxNDY2NDU2NywyMjgyMjQ4OTM0LDQyNzkyMDAzNjgsMTcxMTY4NDU1NCwyODUyODExMTYsMjQwNTgwMTcyNyw0MTY3MjE2NzQ1LDE2MzQ0Njc3OTUsMzc2MjI5NzAxLDI2ODUwNjc4OTYsMzYwODAwNzQwNiwxMzA4OTE4NjEyLDk1NjU0MzkzOCwyODA4NTU1MTA1LDM0OTU5NTgyNjMsMTIzMTYzNjMwMSwxMDQ3NDI3MDM1LDI5MzI5NTk4MTgsMzY1NDcwMzgzNiwxMDg4MzU5MjcwLDkzNjkxOGUzLDI4NDc3MTQ4OTksMzczNjgzNzgyOSwxMjAyOTAwODYzLDgxNzIzMzg5NywzMTgzMzQyMTA4LDM0MDEyMzcxMzAsMTQwNDI3NzU1Miw2MTU4MTgxNTAsMzEzNDIwNzQ5MywzNDUzNDIxMjAzLDE0MjM4NTc0NDksNjAxNDUwNDMxLDMwMDk4Mzc2MTQsMzI5NDcxMDQ1NiwxNTY3MTAzNzQ2LDcxMTkyODcyNCwzMDIwNjY4NDcxLDMyNzIzODAwNjUsMTUxMDMzNDIzNSw3NTUxNjcxMTddO2Z1bmN0aW9uIGUodCxlKXt2YXIgYSxzPTA7Zm9yKGE9MDtlOykxJmUmJihhXj10W3NdKSxlPj49MSxzKys7cmV0dXJuIGF9ZnVuY3Rpb24gYSh0LGEpe3ZhciBzO2ZvcihzPTA7czwzMjtzKyspdFtzXT1lKGEsYVtzXSl9WkxJQi5jcmMzMj1mdW5jdGlvbihlLGEscyxvKXtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgYT9mdW5jdGlvbihlLGEscyxvKXtpZihudWxsPT1hKXJldHVybiAwO2ZvcihlXj00Mjk0OTY3Mjk1O28+PTg7KWU9dFsyNTUmKGVeYS5jaGFyQ29kZUF0KHMrKykpXV5lPj4+OCxlPXRbMjU1JihlXmEuY2hhckNvZGVBdChzKyspKV1eZT4+PjgsZT10WzI1NSYoZV5hLmNoYXJDb2RlQXQocysrKSldXmU+Pj44LGU9dFsyNTUmKGVeYS5jaGFyQ29kZUF0KHMrKykpXV5lPj4+OCxlPXRbMjU1JihlXmEuY2hhckNvZGVBdChzKyspKV1eZT4+PjgsZT10WzI1NSYoZV5hLmNoYXJDb2RlQXQocysrKSldXmU+Pj44LGU9dFsyNTUmKGVeYS5jaGFyQ29kZUF0KHMrKykpXV5lPj4+OCxlPXRbMjU1JihlXmEuY2hhckNvZGVBdChzKyspKV1eZT4+Pjgsby09ODtpZihvKWRve2U9dFsyNTUmKGVeYS5jaGFyQ29kZUF0KHMrKykpXV5lPj4+OH13aGlsZSgtLW8pO3JldHVybiA0Mjk0OTY3Mjk1XmV9KGUsYSxzLG8pOmZ1bmN0aW9uKGUsYSxzLG8pe2lmKG51bGw9PWEpcmV0dXJuIDA7Zm9yKGVePTQyOTQ5NjcyOTU7bz49ODspZT10WzI1NSYoZV5hW3MrK10pXV5lPj4+OCxlPXRbMjU1JihlXmFbcysrXSldXmU+Pj44LGU9dFsyNTUmKGVeYVtzKytdKV1eZT4+PjgsZT10WzI1NSYoZV5hW3MrK10pXV5lPj4+OCxlPXRbMjU1JihlXmFbcysrXSldXmU+Pj44LGU9dFsyNTUmKGVeYVtzKytdKV1eZT4+PjgsZT10WzI1NSYoZV5hW3MrK10pXV5lPj4+OCxlPXRbMjU1JihlXmFbcysrXSldXmU+Pj44LG8tPTg7aWYobylkb3tlPXRbMjU1JihlXmFbcysrXSldXmU+Pj44fXdoaWxlKC0tbyk7cmV0dXJuIDQyOTQ5NjcyOTVeZX0oZSxhLHMsbyl9LFpMSUIuY3JjMzJfY29tYmluZT1mdW5jdGlvbih0LHMsbyl7dmFyIGkscixuLGw7aWYobzw9MClyZXR1cm4gdDtmb3Iobj1uZXcgQXJyYXkoMzIpLChsPW5ldyBBcnJheSgzMikpWzBdPTM5ODgyOTIzODQscj0xLGk9MTtpPDMyO2krKylsW2ldPXIscjw8PTE7YShuLGwpLGEobCxuKTtkb3tpZihhKG4sbCksMSZvJiYodD1lKG4sdCkpLDA9PShvPj49MSkpYnJlYWs7YShsLG4pLDEmbyYmKHQ9ZShsLHQpKSxvPj49MX13aGlsZSgwIT1vKTtyZXR1cm4gdF5zfX0oKSxtb2R1bGUuZXhwb3J0cz1aTElCfX0sX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fPXt9O2Z1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18odCl7dmFyIGU9X193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW3RdO2lmKHZvaWQgMCE9PWUpcmV0dXJuIGUuZXhwb3J0czt2YXIgYT1fX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bdF09e2V4cG9ydHM6e319O3JldHVybiBfX3dlYnBhY2tfbW9kdWxlc19fW3RdKGEsYS5leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pLGEuZXhwb3J0c31fX3dlYnBhY2tfcmVxdWlyZV9fLm49dD0+e3ZhciBlPXQmJnQuX19lc01vZHVsZT8oKT0+dC5kZWZhdWx0OigpPT50O3JldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZSx7YTplfSksZX0sX193ZWJwYWNrX3JlcXVpcmVfXy5kPSh0LGUpPT57Zm9yKHZhciBhIGluIGUpX193ZWJwYWNrX3JlcXVpcmVfXy5vKGUsYSkmJiFfX3dlYnBhY2tfcmVxdWlyZV9fLm8odCxhKSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsYSx7ZW51bWVyYWJsZTohMCxnZXQ6ZVthXX0pfSxfX3dlYnBhY2tfcmVxdWlyZV9fLm89KHQsZSk9Pk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGUpLF9fd2VicGFja19yZXF1aXJlX18ucj10PT57XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLnRvU3RyaW5nVGFnJiZPYmplY3QuZGVmaW5lUHJvcGVydHkodCxTeW1ib2wudG9TdHJpbmdUYWcse3ZhbHVlOlwiTW9kdWxlXCJ9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KX07dmFyIF9fd2VicGFja19leHBvcnRzX189e307cmV0dXJuKCgpPT57XCJ1c2Ugc3RyaWN0XCI7X193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pLF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtBTVREZXNrdG9wOigpPT50LnIsQU1US3ZtRGF0YVJlZGlyZWN0b3I6KCk9PmUuTixBTVRSZWRpcmVjdG9yOigpPT5hLkssUHJvdG9jb2w6KCk9PmEuYixBbXRUZXJtaW5hbDooKT0+cy5yLENvbnNvbGVMb2dnZXI6KCk9Pm8uayxUeXBlQ29udmVydGVyOigpPT5pLnIsRGVza3RvcDooKT0+ci5ILFN0YXRlUHJvY2Vzc29yRmFjdG9yeTooKT0+bi52LFRlcm1pbmFsRGF0YVByb2Nlc3NvcjooKT0+bC5RLExvZ0xldmVsOigpPT5oLmksRGF0YVByb2Nlc3NvcjooKT0+Yy4kLFJMRURlY29kZXI6KCk9PmMuWCxFbmNvZGluZzooKT0+cC5leixGcmFtZUJ1ZmZlckJlbGxTZXJ2ZXJDdXRUZXh0OigpPT5wLlV0LEhhbmRzaGFrZVN0YXRlOigpPT5wLndXLFNlY3VyaXR5T3B0aW9uczooKT0+cC5sbCxTZWN1cml0eVJlc3BvbnNlOigpPT5wLm1DLFNlcnZlckluaXQ6KCk9PnAuQ3UsQU1US2V5Q29kZUNvbnZlcnRlcjooKT0+ZC5xRCxDb21tc0hlbHBlcjooKT0+ZC5YbixJbWFnZUhlbHBlcjooKT0+ZC5qdyxLZXlCb2FyZEhlbHBlcjooKT0+ZC5FQixNb3VzZUhlbHBlcjooKT0+ZC54eCxpc1RydXRoeTooKT0+ZC5mUX0pO3ZhciB0PV9fd2VicGFja19yZXF1aXJlX18oMTY2KSxlPV9fd2VicGFja19yZXF1aXJlX18oNTkpLGE9X193ZWJwYWNrX3JlcXVpcmVfXyg1MDMpLHM9X193ZWJwYWNrX3JlcXVpcmVfXygyNzcpLG89X193ZWJwYWNrX3JlcXVpcmVfXygyMzcpLGk9X193ZWJwYWNrX3JlcXVpcmVfXyg1NjUpLHI9X193ZWJwYWNrX3JlcXVpcmVfXyg0Niksbj1fX3dlYnBhY2tfcmVxdWlyZV9fKDk4OSksbD1fX3dlYnBhY2tfcmVxdWlyZV9fKDE1NSksaD1fX3dlYnBhY2tfcmVxdWlyZV9fKDIwMSksYz1fX3dlYnBhY2tfcmVxdWlyZV9fKDY0NikscD1fX3dlYnBhY2tfcmVxdWlyZV9fKDM4OSksZD1fX3dlYnBhY2tfcmVxdWlyZV9fKDgpfSkoKSxfX3dlYnBhY2tfZXhwb3J0c19ffSkoKX0pKTsiLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcIi5idXR0b257bWFyZ2luLXJpZ2h0OjNweDtwYWRkaW5nOjJweDttaW4td2lkdGg6OTBweH1cIiwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9zcmMvcmVhY3Rqcy9LVk0vQ29ubmVjdEJ1dHRvbi5zY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUtBLFFBQ0ksZ0JBQUEsQ0FDQSxXQUFBLENBQ0EsY0FBQVwiLFwic291cmNlc0NvbnRlbnRcIjpbXCIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXFxuICogQ29weXJpZ2h0IChjKSBJbnRlbCBDb3Jwb3JhdGlvbiAyMDE5XFxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cXG5cXG4uYnV0dG9ue1xcbiAgICBtYXJnaW4tcmlnaHQ6IDNweDtcXG4gICAgcGFkZGluZzogMnB4O1xcbiAgICBtaW4td2lkdGg6IDkwcHhcXG59XCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiIsIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFwiLmVuY29kaW5ne21hcmdpbi1sZWZ0OjEwcHh9LmVuY29kaW5nIGxhYmVse3BhZGRpbmc6MnB4O2ZvbnQtc2l6ZToxNXB4fS5lbmNvZGluZyBzZWxlY3R7cGFkZGluZzoycHggMH0ucmVsZGlzYWJsZWR7b3BhY2l0eTouNX1cIiwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9zcmMvcmVhY3Rqcy9LVk0vRW5jb2RpbmdPcHRpb25zLnNjc3NcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBS0EsVUFDSSxnQkFBQSxDQUVGLGdCQUNFLFdBQUEsQ0FDQSxjQUFBLENBRUYsaUJBQ0UsYUFBQSxDQUdGLGFBQ0UsVUFBQVwiLFwic291cmNlc0NvbnRlbnRcIjpbXCIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXFxuICogQ29weXJpZ2h0IChjKSBJbnRlbCBDb3Jwb3JhdGlvbiAyMDE5XFxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cXG4gXFxuLmVuY29kaW5nIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XFxuICB9XFxuICAuZW5jb2RpbmcgbGFiZWwgeyAgICAgIFxcbiAgICBwYWRkaW5nOiAycHg7XFxuICAgIGZvbnQtc2l6ZTogMTVweDtcXG4gIH1cXG4gIC5lbmNvZGluZyBzZWxlY3Qge1xcbiAgICBwYWRkaW5nOiAycHggMDtcXG4gIH1cXG4gIFxcbiAgLnJlbGRpc2FibGVke1xcbiAgICBvcGFjaXR5OiAwLjU7XFxuICB9XCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiIsIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFwiLmhlYWRlcntiYWNrZ3JvdW5kLWNvbG9yOiNhOWE5YTk7cGFkZGluZzo1cHg7Zm9udC1zaXplOjEzcHh9XCIsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vc3JjL3JlYWN0anMvS1ZNL0hlYWRlci5zY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUtBLFFBQ0Usd0JBQUEsQ0FDQSxXQUFBLENBQ0EsY0FBQVwiLFwic291cmNlc0NvbnRlbnRcIjpbXCIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXFxuICogQ29weXJpZ2h0IChjKSBJbnRlbCBDb3Jwb3JhdGlvbiAyMDE5XFxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cXG4gXFxuLmhlYWRlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZ3JheTtcXG4gIHBhZGRpbmc6IDVweDtcXG4gIGZvbnQtc2l6ZTogMTNweDtcXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiIsIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFwiLmNhbnZhc3ttYXgtaGVpZ2h0OjkwJTttYXgtd2lkdGg6MTAwJX1cIiwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9zcmMvcmVhY3Rqcy9LVk0vUHVyZUNhbnZhcy5zY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUtBLFFBQ0ksY0FBQSxDQUNBLGNBQUFcIixcInNvdXJjZXNDb250ZW50XCI6W1wiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxcbiAqIENvcHlyaWdodCAoYykgSW50ZWwgQ29ycG9yYXRpb24gMjAxOVxcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXFxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXFxuIFxcbi5jYW52YXN7XFxuICAgIG1heC1oZWlnaHQ6IDkwJTtcXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xcbn1cXG5cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIiwiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXCIqe21hcmdpbjowO3BhZGRpbmc6MDtib3gtc2l6aW5nOmJvcmRlci1ib3h9LmNhbnZhcy1jb250YWluZXJ7aGVpZ2h0OjEwMHZoO3RleHQtYWxpZ246Y2VudGVyO2JhY2tncm91bmQtY29sb3I6I2ZmZn1cIiwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9zcmMvcmVhY3Rqcy9LVk0vVUkuc2Nzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFLQSxFQUNJLFFBQUEsQ0FDQSxTQUFBLENBQ0EscUJBQUEsQ0FHSixrQkFDRyxZQUFBLENBQ0EsaUJBQUEsQ0FDQSxxQkFBQVwiLFwic291cmNlc0NvbnRlbnRcIjpbXCIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXFxuICogQ29weXJpZ2h0IChjKSBJbnRlbCBDb3Jwb3JhdGlvbiAyMDE5XFxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cXG4gXFxuKnsgLy8gKiByZWZlcnMgZXZlcnkgZWxlbWVudCBhbmQgcmVtb3ZlcyBkZWZhdWx0IG1hcmdpbiAgcGFkZGluZyB0aGF0IGNvbWVzIHdpdGggaHRtbCBlbGVtZW50cyBib2R5LCBoMSBldGNcXG4gICAgbWFyZ2luOjA7XFxuICAgIHBhZGRpbmc6MDtcXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLy9lbGVtZW50IHBhZGRpbmcgYW5kIGJvcmRlciBhcmUgaW5jbHVkZWQgaW4gdGhlIHdpZHRoIGFuZCBoZWlnaHRcXG59XFxuXFxuLmNhbnZhcy1jb250YWluZXJ7XFxuICAgaGVpZ2h0OiAxMDB2aDsgXFxuICAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCJcInVzZSBzdHJpY3RcIjtcblxuLypcbiAgTUlUIExpY2Vuc2UgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHBcbiAgQXV0aG9yIFRvYmlhcyBLb3BwZXJzIEBzb2tyYVxuKi9cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGNzc1dpdGhNYXBwaW5nVG9TdHJpbmcpIHtcbiAgdmFyIGxpc3QgPSBbXTsgLy8gcmV0dXJuIHRoZSBsaXN0IG9mIG1vZHVsZXMgYXMgY3NzIHN0cmluZ1xuXG4gIGxpc3QudG9TdHJpbmcgPSBmdW5jdGlvbiB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgIHZhciBjb250ZW50ID0gXCJcIjtcbiAgICAgIHZhciBuZWVkTGF5ZXIgPSB0eXBlb2YgaXRlbVs1XSAhPT0gXCJ1bmRlZmluZWRcIjtcblxuICAgICAgaWYgKGl0ZW1bNF0pIHtcbiAgICAgICAgY29udGVudCArPSBcIkBzdXBwb3J0cyAoXCIuY29uY2F0KGl0ZW1bNF0sIFwiKSB7XCIpO1xuICAgICAgfVxuXG4gICAgICBpZiAoaXRlbVsyXSkge1xuICAgICAgICBjb250ZW50ICs9IFwiQG1lZGlhIFwiLmNvbmNhdChpdGVtWzJdLCBcIiB7XCIpO1xuICAgICAgfVxuXG4gICAgICBpZiAobmVlZExheWVyKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJAbGF5ZXJcIi5jb25jYXQoaXRlbVs1XS5sZW5ndGggPiAwID8gXCIgXCIuY29uY2F0KGl0ZW1bNV0pIDogXCJcIiwgXCIge1wiKTtcbiAgICAgIH1cblxuICAgICAgY29udGVudCArPSBjc3NXaXRoTWFwcGluZ1RvU3RyaW5nKGl0ZW0pO1xuXG4gICAgICBpZiAobmVlZExheWVyKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJ9XCI7XG4gICAgICB9XG5cbiAgICAgIGlmIChpdGVtWzJdKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJ9XCI7XG4gICAgICB9XG5cbiAgICAgIGlmIChpdGVtWzRdKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJ9XCI7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjb250ZW50O1xuICAgIH0pLmpvaW4oXCJcIik7XG4gIH07IC8vIGltcG9ydCBhIGxpc3Qgb2YgbW9kdWxlcyBpbnRvIHRoZSBsaXN0XG5cblxuICBsaXN0LmkgPSBmdW5jdGlvbiBpKG1vZHVsZXMsIG1lZGlhLCBkZWR1cGUsIHN1cHBvcnRzLCBsYXllcikge1xuICAgIGlmICh0eXBlb2YgbW9kdWxlcyA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgbW9kdWxlcyA9IFtbbnVsbCwgbW9kdWxlcywgdW5kZWZpbmVkXV07XG4gICAgfVxuXG4gICAgdmFyIGFscmVhZHlJbXBvcnRlZE1vZHVsZXMgPSB7fTtcblxuICAgIGlmIChkZWR1cGUpIHtcbiAgICAgIGZvciAodmFyIGsgPSAwOyBrIDwgdGhpcy5sZW5ndGg7IGsrKykge1xuICAgICAgICB2YXIgaWQgPSB0aGlzW2tdWzBdO1xuXG4gICAgICAgIGlmIChpZCAhPSBudWxsKSB7XG4gICAgICAgICAgYWxyZWFkeUltcG9ydGVkTW9kdWxlc1tpZF0gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9yICh2YXIgX2sgPSAwOyBfayA8IG1vZHVsZXMubGVuZ3RoOyBfaysrKSB7XG4gICAgICB2YXIgaXRlbSA9IFtdLmNvbmNhdChtb2R1bGVzW19rXSk7XG5cbiAgICAgIGlmIChkZWR1cGUgJiYgYWxyZWFkeUltcG9ydGVkTW9kdWxlc1tpdGVtWzBdXSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiBsYXllciAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICBpZiAodHlwZW9mIGl0ZW1bNV0gPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICBpdGVtWzVdID0gbGF5ZXI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXRlbVsxXSA9IFwiQGxheWVyXCIuY29uY2F0KGl0ZW1bNV0ubGVuZ3RoID4gMCA/IFwiIFwiLmNvbmNhdChpdGVtWzVdKSA6IFwiXCIsIFwiIHtcIikuY29uY2F0KGl0ZW1bMV0sIFwifVwiKTtcbiAgICAgICAgICBpdGVtWzVdID0gbGF5ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKG1lZGlhKSB7XG4gICAgICAgIGlmICghaXRlbVsyXSkge1xuICAgICAgICAgIGl0ZW1bMl0gPSBtZWRpYTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpdGVtWzFdID0gXCJAbWVkaWEgXCIuY29uY2F0KGl0ZW1bMl0sIFwiIHtcIikuY29uY2F0KGl0ZW1bMV0sIFwifVwiKTtcbiAgICAgICAgICBpdGVtWzJdID0gbWVkaWE7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHN1cHBvcnRzKSB7XG4gICAgICAgIGlmICghaXRlbVs0XSkge1xuICAgICAgICAgIGl0ZW1bNF0gPSBcIlwiLmNvbmNhdChzdXBwb3J0cyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXRlbVsxXSA9IFwiQHN1cHBvcnRzIChcIi5jb25jYXQoaXRlbVs0XSwgXCIpIHtcIikuY29uY2F0KGl0ZW1bMV0sIFwifVwiKTtcbiAgICAgICAgICBpdGVtWzRdID0gc3VwcG9ydHM7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgbGlzdC5wdXNoKGl0ZW0pO1xuICAgIH1cbiAgfTtcblxuICByZXR1cm4gbGlzdDtcbn07IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0ZW0pIHtcbiAgdmFyIGNvbnRlbnQgPSBpdGVtWzFdO1xuICB2YXIgY3NzTWFwcGluZyA9IGl0ZW1bM107XG5cbiAgaWYgKCFjc3NNYXBwaW5nKSB7XG4gICAgcmV0dXJuIGNvbnRlbnQ7XG4gIH1cblxuICBpZiAodHlwZW9mIGJ0b2EgPT09IFwiZnVuY3Rpb25cIikge1xuICAgIHZhciBiYXNlNjQgPSBidG9hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShjc3NNYXBwaW5nKSkpKTtcbiAgICB2YXIgZGF0YSA9IFwic291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsXCIuY29uY2F0KGJhc2U2NCk7XG4gICAgdmFyIHNvdXJjZU1hcHBpbmcgPSBcIi8qIyBcIi5jb25jYXQoZGF0YSwgXCIgKi9cIik7XG4gICAgdmFyIHNvdXJjZVVSTHMgPSBjc3NNYXBwaW5nLnNvdXJjZXMubWFwKGZ1bmN0aW9uIChzb3VyY2UpIHtcbiAgICAgIHJldHVybiBcIi8qIyBzb3VyY2VVUkw9XCIuY29uY2F0KGNzc01hcHBpbmcuc291cmNlUm9vdCB8fCBcIlwiKS5jb25jYXQoc291cmNlLCBcIiAqL1wiKTtcbiAgICB9KTtcbiAgICByZXR1cm4gW2NvbnRlbnRdLmNvbmNhdChzb3VyY2VVUkxzKS5jb25jYXQoW3NvdXJjZU1hcHBpbmddKS5qb2luKFwiXFxuXCIpO1xuICB9XG5cbiAgcmV0dXJuIFtjb250ZW50XS5qb2luKFwiXFxuXCIpO1xufTsiLCIvKlxub2JqZWN0LWFzc2lnblxuKGMpIFNpbmRyZSBTb3JodXNcbkBsaWNlbnNlIE1JVFxuKi9cblxuJ3VzZSBzdHJpY3QnO1xuLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLXZhcnMgKi9cbnZhciBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzO1xudmFyIGhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbnZhciBwcm9wSXNFbnVtZXJhYmxlID0gT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZTtcblxuZnVuY3Rpb24gdG9PYmplY3QodmFsKSB7XG5cdGlmICh2YWwgPT09IG51bGwgfHwgdmFsID09PSB1bmRlZmluZWQpIHtcblx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCdPYmplY3QuYXNzaWduIGNhbm5vdCBiZSBjYWxsZWQgd2l0aCBudWxsIG9yIHVuZGVmaW5lZCcpO1xuXHR9XG5cblx0cmV0dXJuIE9iamVjdCh2YWwpO1xufVxuXG5mdW5jdGlvbiBzaG91bGRVc2VOYXRpdmUoKSB7XG5cdHRyeSB7XG5cdFx0aWYgKCFPYmplY3QuYXNzaWduKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0Ly8gRGV0ZWN0IGJ1Z2d5IHByb3BlcnR5IGVudW1lcmF0aW9uIG9yZGVyIGluIG9sZGVyIFY4IHZlcnNpb25zLlxuXG5cdFx0Ly8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9NDExOFxuXHRcdHZhciB0ZXN0MSA9IG5ldyBTdHJpbmcoJ2FiYycpOyAgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1uZXctd3JhcHBlcnNcblx0XHR0ZXN0MVs1XSA9ICdkZSc7XG5cdFx0aWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRlc3QxKVswXSA9PT0gJzUnKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0Ly8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9MzA1NlxuXHRcdHZhciB0ZXN0MiA9IHt9O1xuXHRcdGZvciAodmFyIGkgPSAwOyBpIDwgMTA7IGkrKykge1xuXHRcdFx0dGVzdDJbJ18nICsgU3RyaW5nLmZyb21DaGFyQ29kZShpKV0gPSBpO1xuXHRcdH1cblx0XHR2YXIgb3JkZXIyID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGVzdDIpLm1hcChmdW5jdGlvbiAobikge1xuXHRcdFx0cmV0dXJuIHRlc3QyW25dO1xuXHRcdH0pO1xuXHRcdGlmIChvcmRlcjIuam9pbignJykgIT09ICcwMTIzNDU2Nzg5Jykge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTMwNTZcblx0XHR2YXIgdGVzdDMgPSB7fTtcblx0XHQnYWJjZGVmZ2hpamtsbW5vcHFyc3QnLnNwbGl0KCcnKS5mb3JFYWNoKGZ1bmN0aW9uIChsZXR0ZXIpIHtcblx0XHRcdHRlc3QzW2xldHRlcl0gPSBsZXR0ZXI7XG5cdFx0fSk7XG5cdFx0aWYgKE9iamVjdC5rZXlzKE9iamVjdC5hc3NpZ24oe30sIHRlc3QzKSkuam9pbignJykgIT09XG5cdFx0XHRcdCdhYmNkZWZnaGlqa2xtbm9wcXJzdCcpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHRyZXR1cm4gdHJ1ZTtcblx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0Ly8gV2UgZG9uJ3QgZXhwZWN0IGFueSBvZiB0aGUgYWJvdmUgdG8gdGhyb3csIGJ1dCBiZXR0ZXIgdG8gYmUgc2FmZS5cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzaG91bGRVc2VOYXRpdmUoKSA/IE9iamVjdC5hc3NpZ24gOiBmdW5jdGlvbiAodGFyZ2V0LCBzb3VyY2UpIHtcblx0dmFyIGZyb207XG5cdHZhciB0byA9IHRvT2JqZWN0KHRhcmdldCk7XG5cdHZhciBzeW1ib2xzO1xuXG5cdGZvciAodmFyIHMgPSAxOyBzIDwgYXJndW1lbnRzLmxlbmd0aDsgcysrKSB7XG5cdFx0ZnJvbSA9IE9iamVjdChhcmd1bWVudHNbc10pO1xuXG5cdFx0Zm9yICh2YXIga2V5IGluIGZyb20pIHtcblx0XHRcdGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGZyb20sIGtleSkpIHtcblx0XHRcdFx0dG9ba2V5XSA9IGZyb21ba2V5XTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAoZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7XG5cdFx0XHRzeW1ib2xzID0gZ2V0T3duUHJvcGVydHlTeW1ib2xzKGZyb20pO1xuXHRcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBzeW1ib2xzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdGlmIChwcm9wSXNFbnVtZXJhYmxlLmNhbGwoZnJvbSwgc3ltYm9sc1tpXSkpIHtcblx0XHRcdFx0XHR0b1tzeW1ib2xzW2ldXSA9IGZyb21bc3ltYm9sc1tpXV07XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gdG87XG59O1xuIiwiLyoqIEBsaWNlbnNlIFJlYWN0IHYxNy4wLjJcbiAqIHJlYWN0LWRvbS5wcm9kdWN0aW9uLm1pbi5qc1xuICpcbiAqIENvcHlyaWdodCAoYykgRmFjZWJvb2ssIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG4vKlxuIE1vZGVybml6ciAzLjAuMHByZSAoQ3VzdG9tIEJ1aWxkKSB8IE1JVFxuKi9cbid1c2Ugc3RyaWN0Jzt2YXIgYWE9cmVxdWlyZShcInJlYWN0XCIpLG09cmVxdWlyZShcIm9iamVjdC1hc3NpZ25cIikscj1yZXF1aXJlKFwic2NoZWR1bGVyXCIpO2Z1bmN0aW9uIHkoYSl7Zm9yKHZhciBiPVwiaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL2Vycm9yLWRlY29kZXIuaHRtbD9pbnZhcmlhbnQ9XCIrYSxjPTE7Yzxhcmd1bWVudHMubGVuZ3RoO2MrKyliKz1cIiZhcmdzW109XCIrZW5jb2RlVVJJQ29tcG9uZW50KGFyZ3VtZW50c1tjXSk7cmV0dXJuXCJNaW5pZmllZCBSZWFjdCBlcnJvciAjXCIrYStcIjsgdmlzaXQgXCIrYitcIiBmb3IgdGhlIGZ1bGwgbWVzc2FnZSBvciB1c2UgdGhlIG5vbi1taW5pZmllZCBkZXYgZW52aXJvbm1lbnQgZm9yIGZ1bGwgZXJyb3JzIGFuZCBhZGRpdGlvbmFsIGhlbHBmdWwgd2FybmluZ3MuXCJ9aWYoIWFhKXRocm93IEVycm9yKHkoMjI3KSk7dmFyIGJhPW5ldyBTZXQsY2E9e307ZnVuY3Rpb24gZGEoYSxiKXtlYShhLGIpO2VhKGErXCJDYXB0dXJlXCIsYil9XG5mdW5jdGlvbiBlYShhLGIpe2NhW2FdPWI7Zm9yKGE9MDthPGIubGVuZ3RoO2ErKyliYS5hZGQoYlthXSl9XG52YXIgZmE9IShcInVuZGVmaW5lZFwiPT09dHlwZW9mIHdpbmRvd3x8XCJ1bmRlZmluZWRcIj09PXR5cGVvZiB3aW5kb3cuZG9jdW1lbnR8fFwidW5kZWZpbmVkXCI9PT10eXBlb2Ygd2luZG93LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQpLGhhPS9eWzpBLVpfYS16XFx1MDBDMC1cXHUwMEQ2XFx1MDBEOC1cXHUwMEY2XFx1MDBGOC1cXHUwMkZGXFx1MDM3MC1cXHUwMzdEXFx1MDM3Ri1cXHUxRkZGXFx1MjAwQy1cXHUyMDBEXFx1MjA3MC1cXHUyMThGXFx1MkMwMC1cXHUyRkVGXFx1MzAwMS1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkZEXVs6QS1aX2EtelxcdTAwQzAtXFx1MDBENlxcdTAwRDgtXFx1MDBGNlxcdTAwRjgtXFx1MDJGRlxcdTAzNzAtXFx1MDM3RFxcdTAzN0YtXFx1MUZGRlxcdTIwMEMtXFx1MjAwRFxcdTIwNzAtXFx1MjE4RlxcdTJDMDAtXFx1MkZFRlxcdTMwMDEtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZGRFxcLS4wLTlcXHUwMEI3XFx1MDMwMC1cXHUwMzZGXFx1MjAzRi1cXHUyMDQwXSokLyxpYT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LFxuamE9e30sa2E9e307ZnVuY3Rpb24gbGEoYSl7aWYoaWEuY2FsbChrYSxhKSlyZXR1cm4hMDtpZihpYS5jYWxsKGphLGEpKXJldHVybiExO2lmKGhhLnRlc3QoYSkpcmV0dXJuIGthW2FdPSEwO2phW2FdPSEwO3JldHVybiExfWZ1bmN0aW9uIG1hKGEsYixjLGQpe2lmKG51bGwhPT1jJiYwPT09Yy50eXBlKXJldHVybiExO3N3aXRjaCh0eXBlb2YgYil7Y2FzZSBcImZ1bmN0aW9uXCI6Y2FzZSBcInN5bWJvbFwiOnJldHVybiEwO2Nhc2UgXCJib29sZWFuXCI6aWYoZClyZXR1cm4hMTtpZihudWxsIT09YylyZXR1cm4hYy5hY2NlcHRzQm9vbGVhbnM7YT1hLnRvTG93ZXJDYXNlKCkuc2xpY2UoMCw1KTtyZXR1cm5cImRhdGEtXCIhPT1hJiZcImFyaWEtXCIhPT1hO2RlZmF1bHQ6cmV0dXJuITF9fVxuZnVuY3Rpb24gbmEoYSxiLGMsZCl7aWYobnVsbD09PWJ8fFwidW5kZWZpbmVkXCI9PT10eXBlb2YgYnx8bWEoYSxiLGMsZCkpcmV0dXJuITA7aWYoZClyZXR1cm4hMTtpZihudWxsIT09Yylzd2l0Y2goYy50eXBlKXtjYXNlIDM6cmV0dXJuIWI7Y2FzZSA0OnJldHVybiExPT09YjtjYXNlIDU6cmV0dXJuIGlzTmFOKGIpO2Nhc2UgNjpyZXR1cm4gaXNOYU4oYil8fDE+Yn1yZXR1cm4hMX1mdW5jdGlvbiBCKGEsYixjLGQsZSxmLGcpe3RoaXMuYWNjZXB0c0Jvb2xlYW5zPTI9PT1ifHwzPT09Ynx8ND09PWI7dGhpcy5hdHRyaWJ1dGVOYW1lPWQ7dGhpcy5hdHRyaWJ1dGVOYW1lc3BhY2U9ZTt0aGlzLm11c3RVc2VQcm9wZXJ0eT1jO3RoaXMucHJvcGVydHlOYW1lPWE7dGhpcy50eXBlPWI7dGhpcy5zYW5pdGl6ZVVSTD1mO3RoaXMucmVtb3ZlRW1wdHlTdHJpbmc9Z312YXIgRD17fTtcblwiY2hpbGRyZW4gZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgZGVmYXVsdFZhbHVlIGRlZmF1bHRDaGVja2VkIGlubmVySFRNTCBzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmcgc3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nIHN0eWxlXCIuc3BsaXQoXCIgXCIpLmZvckVhY2goZnVuY3Rpb24oYSl7RFthXT1uZXcgQihhLDAsITEsYSxudWxsLCExLCExKX0pO1tbXCJhY2NlcHRDaGFyc2V0XCIsXCJhY2NlcHQtY2hhcnNldFwiXSxbXCJjbGFzc05hbWVcIixcImNsYXNzXCJdLFtcImh0bWxGb3JcIixcImZvclwiXSxbXCJodHRwRXF1aXZcIixcImh0dHAtZXF1aXZcIl1dLmZvckVhY2goZnVuY3Rpb24oYSl7dmFyIGI9YVswXTtEW2JdPW5ldyBCKGIsMSwhMSxhWzFdLG51bGwsITEsITEpfSk7W1wiY29udGVudEVkaXRhYmxlXCIsXCJkcmFnZ2FibGVcIixcInNwZWxsQ2hlY2tcIixcInZhbHVlXCJdLmZvckVhY2goZnVuY3Rpb24oYSl7RFthXT1uZXcgQihhLDIsITEsYS50b0xvd2VyQ2FzZSgpLG51bGwsITEsITEpfSk7XG5bXCJhdXRvUmV2ZXJzZVwiLFwiZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZFwiLFwiZm9jdXNhYmxlXCIsXCJwcmVzZXJ2ZUFscGhhXCJdLmZvckVhY2goZnVuY3Rpb24oYSl7RFthXT1uZXcgQihhLDIsITEsYSxudWxsLCExLCExKX0pO1wiYWxsb3dGdWxsU2NyZWVuIGFzeW5jIGF1dG9Gb2N1cyBhdXRvUGxheSBjb250cm9scyBkZWZhdWx0IGRlZmVyIGRpc2FibGVkIGRpc2FibGVQaWN0dXJlSW5QaWN0dXJlIGRpc2FibGVSZW1vdGVQbGF5YmFjayBmb3JtTm9WYWxpZGF0ZSBoaWRkZW4gbG9vcCBub01vZHVsZSBub1ZhbGlkYXRlIG9wZW4gcGxheXNJbmxpbmUgcmVhZE9ubHkgcmVxdWlyZWQgcmV2ZXJzZWQgc2NvcGVkIHNlYW1sZXNzIGl0ZW1TY29wZVwiLnNwbGl0KFwiIFwiKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe0RbYV09bmV3IEIoYSwzLCExLGEudG9Mb3dlckNhc2UoKSxudWxsLCExLCExKX0pO1xuW1wiY2hlY2tlZFwiLFwibXVsdGlwbGVcIixcIm11dGVkXCIsXCJzZWxlY3RlZFwiXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe0RbYV09bmV3IEIoYSwzLCEwLGEsbnVsbCwhMSwhMSl9KTtbXCJjYXB0dXJlXCIsXCJkb3dubG9hZFwiXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe0RbYV09bmV3IEIoYSw0LCExLGEsbnVsbCwhMSwhMSl9KTtbXCJjb2xzXCIsXCJyb3dzXCIsXCJzaXplXCIsXCJzcGFuXCJdLmZvckVhY2goZnVuY3Rpb24oYSl7RFthXT1uZXcgQihhLDYsITEsYSxudWxsLCExLCExKX0pO1tcInJvd1NwYW5cIixcInN0YXJ0XCJdLmZvckVhY2goZnVuY3Rpb24oYSl7RFthXT1uZXcgQihhLDUsITEsYS50b0xvd2VyQ2FzZSgpLG51bGwsITEsITEpfSk7dmFyIG9hPS9bXFwtOl0oW2Etel0pL2c7ZnVuY3Rpb24gcGEoYSl7cmV0dXJuIGFbMV0udG9VcHBlckNhc2UoKX1cblwiYWNjZW50LWhlaWdodCBhbGlnbm1lbnQtYmFzZWxpbmUgYXJhYmljLWZvcm0gYmFzZWxpbmUtc2hpZnQgY2FwLWhlaWdodCBjbGlwLXBhdGggY2xpcC1ydWxlIGNvbG9yLWludGVycG9sYXRpb24gY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzIGNvbG9yLXByb2ZpbGUgY29sb3ItcmVuZGVyaW5nIGRvbWluYW50LWJhc2VsaW5lIGVuYWJsZS1iYWNrZ3JvdW5kIGZpbGwtb3BhY2l0eSBmaWxsLXJ1bGUgZmxvb2QtY29sb3IgZmxvb2Qtb3BhY2l0eSBmb250LWZhbWlseSBmb250LXNpemUgZm9udC1zaXplLWFkanVzdCBmb250LXN0cmV0Y2ggZm9udC1zdHlsZSBmb250LXZhcmlhbnQgZm9udC13ZWlnaHQgZ2x5cGgtbmFtZSBnbHlwaC1vcmllbnRhdGlvbi1ob3Jpem9udGFsIGdseXBoLW9yaWVudGF0aW9uLXZlcnRpY2FsIGhvcml6LWFkdi14IGhvcml6LW9yaWdpbi14IGltYWdlLXJlbmRlcmluZyBsZXR0ZXItc3BhY2luZyBsaWdodGluZy1jb2xvciBtYXJrZXItZW5kIG1hcmtlci1taWQgbWFya2VyLXN0YXJ0IG92ZXJsaW5lLXBvc2l0aW9uIG92ZXJsaW5lLXRoaWNrbmVzcyBwYWludC1vcmRlciBwYW5vc2UtMSBwb2ludGVyLWV2ZW50cyByZW5kZXJpbmctaW50ZW50IHNoYXBlLXJlbmRlcmluZyBzdG9wLWNvbG9yIHN0b3Atb3BhY2l0eSBzdHJpa2V0aHJvdWdoLXBvc2l0aW9uIHN0cmlrZXRocm91Z2gtdGhpY2tuZXNzIHN0cm9rZS1kYXNoYXJyYXkgc3Ryb2tlLWRhc2hvZmZzZXQgc3Ryb2tlLWxpbmVjYXAgc3Ryb2tlLWxpbmVqb2luIHN0cm9rZS1taXRlcmxpbWl0IHN0cm9rZS1vcGFjaXR5IHN0cm9rZS13aWR0aCB0ZXh0LWFuY2hvciB0ZXh0LWRlY29yYXRpb24gdGV4dC1yZW5kZXJpbmcgdW5kZXJsaW5lLXBvc2l0aW9uIHVuZGVybGluZS10aGlja25lc3MgdW5pY29kZS1iaWRpIHVuaWNvZGUtcmFuZ2UgdW5pdHMtcGVyLWVtIHYtYWxwaGFiZXRpYyB2LWhhbmdpbmcgdi1pZGVvZ3JhcGhpYyB2LW1hdGhlbWF0aWNhbCB2ZWN0b3ItZWZmZWN0IHZlcnQtYWR2LXkgdmVydC1vcmlnaW4teCB2ZXJ0LW9yaWdpbi15IHdvcmQtc3BhY2luZyB3cml0aW5nLW1vZGUgeG1sbnM6eGxpbmsgeC1oZWlnaHRcIi5zcGxpdChcIiBcIikuZm9yRWFjaChmdW5jdGlvbihhKXt2YXIgYj1hLnJlcGxhY2Uob2EsXG5wYSk7RFtiXT1uZXcgQihiLDEsITEsYSxudWxsLCExLCExKX0pO1wieGxpbms6YWN0dWF0ZSB4bGluazphcmNyb2xlIHhsaW5rOnJvbGUgeGxpbms6c2hvdyB4bGluazp0aXRsZSB4bGluazp0eXBlXCIuc3BsaXQoXCIgXCIpLmZvckVhY2goZnVuY3Rpb24oYSl7dmFyIGI9YS5yZXBsYWNlKG9hLHBhKTtEW2JdPW5ldyBCKGIsMSwhMSxhLFwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiLCExLCExKX0pO1tcInhtbDpiYXNlXCIsXCJ4bWw6bGFuZ1wiLFwieG1sOnNwYWNlXCJdLmZvckVhY2goZnVuY3Rpb24oYSl7dmFyIGI9YS5yZXBsYWNlKG9hLHBhKTtEW2JdPW5ldyBCKGIsMSwhMSxhLFwiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlXCIsITEsITEpfSk7W1widGFiSW5kZXhcIixcImNyb3NzT3JpZ2luXCJdLmZvckVhY2goZnVuY3Rpb24oYSl7RFthXT1uZXcgQihhLDEsITEsYS50b0xvd2VyQ2FzZSgpLG51bGwsITEsITEpfSk7XG5ELnhsaW5rSHJlZj1uZXcgQihcInhsaW5rSHJlZlwiLDEsITEsXCJ4bGluazpocmVmXCIsXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIsITAsITEpO1tcInNyY1wiLFwiaHJlZlwiLFwiYWN0aW9uXCIsXCJmb3JtQWN0aW9uXCJdLmZvckVhY2goZnVuY3Rpb24oYSl7RFthXT1uZXcgQihhLDEsITEsYS50b0xvd2VyQ2FzZSgpLG51bGwsITAsITApfSk7XG5mdW5jdGlvbiBxYShhLGIsYyxkKXt2YXIgZT1ELmhhc093blByb3BlcnR5KGIpP0RbYl06bnVsbDt2YXIgZj1udWxsIT09ZT8wPT09ZS50eXBlOmQ/ITE6ISgyPGIubGVuZ3RoKXx8XCJvXCIhPT1iWzBdJiZcIk9cIiE9PWJbMF18fFwiblwiIT09YlsxXSYmXCJOXCIhPT1iWzFdPyExOiEwO2Z8fChuYShiLGMsZSxkKSYmKGM9bnVsbCksZHx8bnVsbD09PWU/bGEoYikmJihudWxsPT09Yz9hLnJlbW92ZUF0dHJpYnV0ZShiKTphLnNldEF0dHJpYnV0ZShiLFwiXCIrYykpOmUubXVzdFVzZVByb3BlcnR5P2FbZS5wcm9wZXJ0eU5hbWVdPW51bGw9PT1jPzM9PT1lLnR5cGU/ITE6XCJcIjpjOihiPWUuYXR0cmlidXRlTmFtZSxkPWUuYXR0cmlidXRlTmFtZXNwYWNlLG51bGw9PT1jP2EucmVtb3ZlQXR0cmlidXRlKGIpOihlPWUudHlwZSxjPTM9PT1lfHw0PT09ZSYmITA9PT1jP1wiXCI6XCJcIitjLGQ/YS5zZXRBdHRyaWJ1dGVOUyhkLGIsYyk6YS5zZXRBdHRyaWJ1dGUoYixjKSkpKX1cbnZhciByYT1hYS5fX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRCxzYT02MDEwMyx0YT02MDEwNix1YT02MDEwNyx3YT02MDEwOCx4YT02MDExNCx5YT02MDEwOSx6YT02MDExMCxBYT02MDExMixCYT02MDExMyxDYT02MDEyMCxEYT02MDExNSxFYT02MDExNixGYT02MDEyMSxHYT02MDEyOCxIYT02MDEyOSxJYT02MDEzMCxKYT02MDEzMTtcbmlmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5mb3Ipe3ZhciBFPVN5bWJvbC5mb3I7c2E9RShcInJlYWN0LmVsZW1lbnRcIik7dGE9RShcInJlYWN0LnBvcnRhbFwiKTt1YT1FKFwicmVhY3QuZnJhZ21lbnRcIik7d2E9RShcInJlYWN0LnN0cmljdF9tb2RlXCIpO3hhPUUoXCJyZWFjdC5wcm9maWxlclwiKTt5YT1FKFwicmVhY3QucHJvdmlkZXJcIik7emE9RShcInJlYWN0LmNvbnRleHRcIik7QWE9RShcInJlYWN0LmZvcndhcmRfcmVmXCIpO0JhPUUoXCJyZWFjdC5zdXNwZW5zZVwiKTtDYT1FKFwicmVhY3Quc3VzcGVuc2VfbGlzdFwiKTtEYT1FKFwicmVhY3QubWVtb1wiKTtFYT1FKFwicmVhY3QubGF6eVwiKTtGYT1FKFwicmVhY3QuYmxvY2tcIik7RShcInJlYWN0LnNjb3BlXCIpO0dhPUUoXCJyZWFjdC5vcGFxdWUuaWRcIik7SGE9RShcInJlYWN0LmRlYnVnX3RyYWNlX21vZGVcIik7SWE9RShcInJlYWN0Lm9mZnNjcmVlblwiKTtKYT1FKFwicmVhY3QubGVnYWN5X2hpZGRlblwiKX1cbnZhciBLYT1cImZ1bmN0aW9uXCI9PT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3I7ZnVuY3Rpb24gTGEoYSl7aWYobnVsbD09PWF8fFwib2JqZWN0XCIhPT10eXBlb2YgYSlyZXR1cm4gbnVsbDthPUthJiZhW0thXXx8YVtcIkBAaXRlcmF0b3JcIl07cmV0dXJuXCJmdW5jdGlvblwiPT09dHlwZW9mIGE/YTpudWxsfXZhciBNYTtmdW5jdGlvbiBOYShhKXtpZih2b2lkIDA9PT1NYSl0cnl7dGhyb3cgRXJyb3IoKTt9Y2F0Y2goYyl7dmFyIGI9Yy5zdGFjay50cmltKCkubWF0Y2goL1xcbiggKihhdCApPykvKTtNYT1iJiZiWzFdfHxcIlwifXJldHVyblwiXFxuXCIrTWErYX12YXIgT2E9ITE7XG5mdW5jdGlvbiBQYShhLGIpe2lmKCFhfHxPYSlyZXR1cm5cIlwiO09hPSEwO3ZhciBjPUVycm9yLnByZXBhcmVTdGFja1RyYWNlO0Vycm9yLnByZXBhcmVTdGFja1RyYWNlPXZvaWQgMDt0cnl7aWYoYilpZihiPWZ1bmN0aW9uKCl7dGhyb3cgRXJyb3IoKTt9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShiLnByb3RvdHlwZSxcInByb3BzXCIse3NldDpmdW5jdGlvbigpe3Rocm93IEVycm9yKCk7fX0pLFwib2JqZWN0XCI9PT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5jb25zdHJ1Y3Qpe3RyeXtSZWZsZWN0LmNvbnN0cnVjdChiLFtdKX1jYXRjaChrKXt2YXIgZD1rfVJlZmxlY3QuY29uc3RydWN0KGEsW10sYil9ZWxzZXt0cnl7Yi5jYWxsKCl9Y2F0Y2goayl7ZD1rfWEuY2FsbChiLnByb3RvdHlwZSl9ZWxzZXt0cnl7dGhyb3cgRXJyb3IoKTt9Y2F0Y2goayl7ZD1rfWEoKX19Y2F0Y2goayl7aWYoayYmZCYmXCJzdHJpbmdcIj09PXR5cGVvZiBrLnN0YWNrKXtmb3IodmFyIGU9ay5zdGFjay5zcGxpdChcIlxcblwiKSxcbmY9ZC5zdGFjay5zcGxpdChcIlxcblwiKSxnPWUubGVuZ3RoLTEsaD1mLmxlbmd0aC0xOzE8PWcmJjA8PWgmJmVbZ10hPT1mW2hdOyloLS07Zm9yKDsxPD1nJiYwPD1oO2ctLSxoLS0paWYoZVtnXSE9PWZbaF0pe2lmKDEhPT1nfHwxIT09aCl7ZG8gaWYoZy0tLGgtLSwwPmh8fGVbZ10hPT1mW2hdKXJldHVyblwiXFxuXCIrZVtnXS5yZXBsYWNlKFwiIGF0IG5ldyBcIixcIiBhdCBcIik7d2hpbGUoMTw9ZyYmMDw9aCl9YnJlYWt9fX1maW5hbGx5e09hPSExLEVycm9yLnByZXBhcmVTdGFja1RyYWNlPWN9cmV0dXJuKGE9YT9hLmRpc3BsYXlOYW1lfHxhLm5hbWU6XCJcIik/TmEoYSk6XCJcIn1cbmZ1bmN0aW9uIFFhKGEpe3N3aXRjaChhLnRhZyl7Y2FzZSA1OnJldHVybiBOYShhLnR5cGUpO2Nhc2UgMTY6cmV0dXJuIE5hKFwiTGF6eVwiKTtjYXNlIDEzOnJldHVybiBOYShcIlN1c3BlbnNlXCIpO2Nhc2UgMTk6cmV0dXJuIE5hKFwiU3VzcGVuc2VMaXN0XCIpO2Nhc2UgMDpjYXNlIDI6Y2FzZSAxNTpyZXR1cm4gYT1QYShhLnR5cGUsITEpLGE7Y2FzZSAxMTpyZXR1cm4gYT1QYShhLnR5cGUucmVuZGVyLCExKSxhO2Nhc2UgMjI6cmV0dXJuIGE9UGEoYS50eXBlLl9yZW5kZXIsITEpLGE7Y2FzZSAxOnJldHVybiBhPVBhKGEudHlwZSwhMCksYTtkZWZhdWx0OnJldHVyblwiXCJ9fVxuZnVuY3Rpb24gUmEoYSl7aWYobnVsbD09YSlyZXR1cm4gbnVsbDtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgYSlyZXR1cm4gYS5kaXNwbGF5TmFtZXx8YS5uYW1lfHxudWxsO2lmKFwic3RyaW5nXCI9PT10eXBlb2YgYSlyZXR1cm4gYTtzd2l0Y2goYSl7Y2FzZSB1YTpyZXR1cm5cIkZyYWdtZW50XCI7Y2FzZSB0YTpyZXR1cm5cIlBvcnRhbFwiO2Nhc2UgeGE6cmV0dXJuXCJQcm9maWxlclwiO2Nhc2Ugd2E6cmV0dXJuXCJTdHJpY3RNb2RlXCI7Y2FzZSBCYTpyZXR1cm5cIlN1c3BlbnNlXCI7Y2FzZSBDYTpyZXR1cm5cIlN1c3BlbnNlTGlzdFwifWlmKFwib2JqZWN0XCI9PT10eXBlb2YgYSlzd2l0Y2goYS4kJHR5cGVvZil7Y2FzZSB6YTpyZXR1cm4oYS5kaXNwbGF5TmFtZXx8XCJDb250ZXh0XCIpK1wiLkNvbnN1bWVyXCI7Y2FzZSB5YTpyZXR1cm4oYS5fY29udGV4dC5kaXNwbGF5TmFtZXx8XCJDb250ZXh0XCIpK1wiLlByb3ZpZGVyXCI7Y2FzZSBBYTp2YXIgYj1hLnJlbmRlcjtiPWIuZGlzcGxheU5hbWV8fGIubmFtZXx8XCJcIjtcbnJldHVybiBhLmRpc3BsYXlOYW1lfHwoXCJcIiE9PWI/XCJGb3J3YXJkUmVmKFwiK2IrXCIpXCI6XCJGb3J3YXJkUmVmXCIpO2Nhc2UgRGE6cmV0dXJuIFJhKGEudHlwZSk7Y2FzZSBGYTpyZXR1cm4gUmEoYS5fcmVuZGVyKTtjYXNlIEVhOmI9YS5fcGF5bG9hZDthPWEuX2luaXQ7dHJ5e3JldHVybiBSYShhKGIpKX1jYXRjaChjKXt9fXJldHVybiBudWxsfWZ1bmN0aW9uIFNhKGEpe3N3aXRjaCh0eXBlb2YgYSl7Y2FzZSBcImJvb2xlYW5cIjpjYXNlIFwibnVtYmVyXCI6Y2FzZSBcIm9iamVjdFwiOmNhc2UgXCJzdHJpbmdcIjpjYXNlIFwidW5kZWZpbmVkXCI6cmV0dXJuIGE7ZGVmYXVsdDpyZXR1cm5cIlwifX1mdW5jdGlvbiBUYShhKXt2YXIgYj1hLnR5cGU7cmV0dXJuKGE9YS5ub2RlTmFtZSkmJlwiaW5wdXRcIj09PWEudG9Mb3dlckNhc2UoKSYmKFwiY2hlY2tib3hcIj09PWJ8fFwicmFkaW9cIj09PWIpfVxuZnVuY3Rpb24gVWEoYSl7dmFyIGI9VGEoYSk/XCJjaGVja2VkXCI6XCJ2YWx1ZVwiLGM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhLmNvbnN0cnVjdG9yLnByb3RvdHlwZSxiKSxkPVwiXCIrYVtiXTtpZighYS5oYXNPd25Qcm9wZXJ0eShiKSYmXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBjJiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgYy5nZXQmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBjLnNldCl7dmFyIGU9Yy5nZXQsZj1jLnNldDtPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxiLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGUuY2FsbCh0aGlzKX0sc2V0OmZ1bmN0aW9uKGEpe2Q9XCJcIithO2YuY2FsbCh0aGlzLGEpfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShhLGIse2VudW1lcmFibGU6Yy5lbnVtZXJhYmxlfSk7cmV0dXJue2dldFZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIGR9LHNldFZhbHVlOmZ1bmN0aW9uKGEpe2Q9XCJcIithfSxzdG9wVHJhY2tpbmc6ZnVuY3Rpb24oKXthLl92YWx1ZVRyYWNrZXI9XG5udWxsO2RlbGV0ZSBhW2JdfX19fWZ1bmN0aW9uIFZhKGEpe2EuX3ZhbHVlVHJhY2tlcnx8KGEuX3ZhbHVlVHJhY2tlcj1VYShhKSl9ZnVuY3Rpb24gV2EoYSl7aWYoIWEpcmV0dXJuITE7dmFyIGI9YS5fdmFsdWVUcmFja2VyO2lmKCFiKXJldHVybiEwO3ZhciBjPWIuZ2V0VmFsdWUoKTt2YXIgZD1cIlwiO2EmJihkPVRhKGEpP2EuY2hlY2tlZD9cInRydWVcIjpcImZhbHNlXCI6YS52YWx1ZSk7YT1kO3JldHVybiBhIT09Yz8oYi5zZXRWYWx1ZShhKSwhMCk6ITF9ZnVuY3Rpb24gWGEoYSl7YT1hfHwoXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBkb2N1bWVudD9kb2N1bWVudDp2b2lkIDApO2lmKFwidW5kZWZpbmVkXCI9PT10eXBlb2YgYSlyZXR1cm4gbnVsbDt0cnl7cmV0dXJuIGEuYWN0aXZlRWxlbWVudHx8YS5ib2R5fWNhdGNoKGIpe3JldHVybiBhLmJvZHl9fVxuZnVuY3Rpb24gWWEoYSxiKXt2YXIgYz1iLmNoZWNrZWQ7cmV0dXJuIG0oe30sYix7ZGVmYXVsdENoZWNrZWQ6dm9pZCAwLGRlZmF1bHRWYWx1ZTp2b2lkIDAsdmFsdWU6dm9pZCAwLGNoZWNrZWQ6bnVsbCE9Yz9jOmEuX3dyYXBwZXJTdGF0ZS5pbml0aWFsQ2hlY2tlZH0pfWZ1bmN0aW9uIFphKGEsYil7dmFyIGM9bnVsbD09Yi5kZWZhdWx0VmFsdWU/XCJcIjpiLmRlZmF1bHRWYWx1ZSxkPW51bGwhPWIuY2hlY2tlZD9iLmNoZWNrZWQ6Yi5kZWZhdWx0Q2hlY2tlZDtjPVNhKG51bGwhPWIudmFsdWU/Yi52YWx1ZTpjKTthLl93cmFwcGVyU3RhdGU9e2luaXRpYWxDaGVja2VkOmQsaW5pdGlhbFZhbHVlOmMsY29udHJvbGxlZDpcImNoZWNrYm94XCI9PT1iLnR5cGV8fFwicmFkaW9cIj09PWIudHlwZT9udWxsIT1iLmNoZWNrZWQ6bnVsbCE9Yi52YWx1ZX19ZnVuY3Rpb24gJGEoYSxiKXtiPWIuY2hlY2tlZDtudWxsIT1iJiZxYShhLFwiY2hlY2tlZFwiLGIsITEpfVxuZnVuY3Rpb24gYWIoYSxiKXskYShhLGIpO3ZhciBjPVNhKGIudmFsdWUpLGQ9Yi50eXBlO2lmKG51bGwhPWMpaWYoXCJudW1iZXJcIj09PWQpe2lmKDA9PT1jJiZcIlwiPT09YS52YWx1ZXx8YS52YWx1ZSE9YylhLnZhbHVlPVwiXCIrY31lbHNlIGEudmFsdWUhPT1cIlwiK2MmJihhLnZhbHVlPVwiXCIrYyk7ZWxzZSBpZihcInN1Ym1pdFwiPT09ZHx8XCJyZXNldFwiPT09ZCl7YS5yZW1vdmVBdHRyaWJ1dGUoXCJ2YWx1ZVwiKTtyZXR1cm59Yi5oYXNPd25Qcm9wZXJ0eShcInZhbHVlXCIpP2JiKGEsYi50eXBlLGMpOmIuaGFzT3duUHJvcGVydHkoXCJkZWZhdWx0VmFsdWVcIikmJmJiKGEsYi50eXBlLFNhKGIuZGVmYXVsdFZhbHVlKSk7bnVsbD09Yi5jaGVja2VkJiZudWxsIT1iLmRlZmF1bHRDaGVja2VkJiYoYS5kZWZhdWx0Q2hlY2tlZD0hIWIuZGVmYXVsdENoZWNrZWQpfVxuZnVuY3Rpb24gY2IoYSxiLGMpe2lmKGIuaGFzT3duUHJvcGVydHkoXCJ2YWx1ZVwiKXx8Yi5oYXNPd25Qcm9wZXJ0eShcImRlZmF1bHRWYWx1ZVwiKSl7dmFyIGQ9Yi50eXBlO2lmKCEoXCJzdWJtaXRcIiE9PWQmJlwicmVzZXRcIiE9PWR8fHZvaWQgMCE9PWIudmFsdWUmJm51bGwhPT1iLnZhbHVlKSlyZXR1cm47Yj1cIlwiK2EuX3dyYXBwZXJTdGF0ZS5pbml0aWFsVmFsdWU7Y3x8Yj09PWEudmFsdWV8fChhLnZhbHVlPWIpO2EuZGVmYXVsdFZhbHVlPWJ9Yz1hLm5hbWU7XCJcIiE9PWMmJihhLm5hbWU9XCJcIik7YS5kZWZhdWx0Q2hlY2tlZD0hIWEuX3dyYXBwZXJTdGF0ZS5pbml0aWFsQ2hlY2tlZDtcIlwiIT09YyYmKGEubmFtZT1jKX1cbmZ1bmN0aW9uIGJiKGEsYixjKXtpZihcIm51bWJlclwiIT09Ynx8WGEoYS5vd25lckRvY3VtZW50KSE9PWEpbnVsbD09Yz9hLmRlZmF1bHRWYWx1ZT1cIlwiK2EuX3dyYXBwZXJTdGF0ZS5pbml0aWFsVmFsdWU6YS5kZWZhdWx0VmFsdWUhPT1cIlwiK2MmJihhLmRlZmF1bHRWYWx1ZT1cIlwiK2MpfWZ1bmN0aW9uIGRiKGEpe3ZhciBiPVwiXCI7YWEuQ2hpbGRyZW4uZm9yRWFjaChhLGZ1bmN0aW9uKGEpe251bGwhPWEmJihiKz1hKX0pO3JldHVybiBifWZ1bmN0aW9uIGViKGEsYil7YT1tKHtjaGlsZHJlbjp2b2lkIDB9LGIpO2lmKGI9ZGIoYi5jaGlsZHJlbikpYS5jaGlsZHJlbj1iO3JldHVybiBhfVxuZnVuY3Rpb24gZmIoYSxiLGMsZCl7YT1hLm9wdGlvbnM7aWYoYil7Yj17fTtmb3IodmFyIGU9MDtlPGMubGVuZ3RoO2UrKyliW1wiJFwiK2NbZV1dPSEwO2ZvcihjPTA7YzxhLmxlbmd0aDtjKyspZT1iLmhhc093blByb3BlcnR5KFwiJFwiK2FbY10udmFsdWUpLGFbY10uc2VsZWN0ZWQhPT1lJiYoYVtjXS5zZWxlY3RlZD1lKSxlJiZkJiYoYVtjXS5kZWZhdWx0U2VsZWN0ZWQ9ITApfWVsc2V7Yz1cIlwiK1NhKGMpO2I9bnVsbDtmb3IoZT0wO2U8YS5sZW5ndGg7ZSsrKXtpZihhW2VdLnZhbHVlPT09Yyl7YVtlXS5zZWxlY3RlZD0hMDtkJiYoYVtlXS5kZWZhdWx0U2VsZWN0ZWQ9ITApO3JldHVybn1udWxsIT09Ynx8YVtlXS5kaXNhYmxlZHx8KGI9YVtlXSl9bnVsbCE9PWImJihiLnNlbGVjdGVkPSEwKX19XG5mdW5jdGlvbiBnYihhLGIpe2lmKG51bGwhPWIuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwpdGhyb3cgRXJyb3IoeSg5MSkpO3JldHVybiBtKHt9LGIse3ZhbHVlOnZvaWQgMCxkZWZhdWx0VmFsdWU6dm9pZCAwLGNoaWxkcmVuOlwiXCIrYS5fd3JhcHBlclN0YXRlLmluaXRpYWxWYWx1ZX0pfWZ1bmN0aW9uIGhiKGEsYil7dmFyIGM9Yi52YWx1ZTtpZihudWxsPT1jKXtjPWIuY2hpbGRyZW47Yj1iLmRlZmF1bHRWYWx1ZTtpZihudWxsIT1jKXtpZihudWxsIT1iKXRocm93IEVycm9yKHkoOTIpKTtpZihBcnJheS5pc0FycmF5KGMpKXtpZighKDE+PWMubGVuZ3RoKSl0aHJvdyBFcnJvcih5KDkzKSk7Yz1jWzBdfWI9Y31udWxsPT1iJiYoYj1cIlwiKTtjPWJ9YS5fd3JhcHBlclN0YXRlPXtpbml0aWFsVmFsdWU6U2EoYyl9fVxuZnVuY3Rpb24gaWIoYSxiKXt2YXIgYz1TYShiLnZhbHVlKSxkPVNhKGIuZGVmYXVsdFZhbHVlKTtudWxsIT1jJiYoYz1cIlwiK2MsYyE9PWEudmFsdWUmJihhLnZhbHVlPWMpLG51bGw9PWIuZGVmYXVsdFZhbHVlJiZhLmRlZmF1bHRWYWx1ZSE9PWMmJihhLmRlZmF1bHRWYWx1ZT1jKSk7bnVsbCE9ZCYmKGEuZGVmYXVsdFZhbHVlPVwiXCIrZCl9ZnVuY3Rpb24gamIoYSl7dmFyIGI9YS50ZXh0Q29udGVudDtiPT09YS5fd3JhcHBlclN0YXRlLmluaXRpYWxWYWx1ZSYmXCJcIiE9PWImJm51bGwhPT1iJiYoYS52YWx1ZT1iKX12YXIga2I9e2h0bWw6XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sXCIsbWF0aG1sOlwiaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTFwiLHN2ZzpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9O1xuZnVuY3Rpb24gbGIoYSl7c3dpdGNoKGEpe2Nhc2UgXCJzdmdcIjpyZXR1cm5cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI7Y2FzZSBcIm1hdGhcIjpyZXR1cm5cImh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUxcIjtkZWZhdWx0OnJldHVyblwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbFwifX1mdW5jdGlvbiBtYihhLGIpe3JldHVybiBudWxsPT1hfHxcImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxcIj09PWE/bGIoYik6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPT09YSYmXCJmb3JlaWduT2JqZWN0XCI9PT1iP1wiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbFwiOmF9XG52YXIgbmIsb2I9ZnVuY3Rpb24oYSl7cmV0dXJuXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBNU0FwcCYmTVNBcHAuZXhlY1Vuc2FmZUxvY2FsRnVuY3Rpb24/ZnVuY3Rpb24oYixjLGQsZSl7TVNBcHAuZXhlY1Vuc2FmZUxvY2FsRnVuY3Rpb24oZnVuY3Rpb24oKXtyZXR1cm4gYShiLGMsZCxlKX0pfTphfShmdW5jdGlvbihhLGIpe2lmKGEubmFtZXNwYWNlVVJJIT09a2Iuc3ZnfHxcImlubmVySFRNTFwiaW4gYSlhLmlubmVySFRNTD1iO2Vsc2V7bmI9bmJ8fGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7bmIuaW5uZXJIVE1MPVwiPHN2Zz5cIitiLnZhbHVlT2YoKS50b1N0cmluZygpK1wiPC9zdmc+XCI7Zm9yKGI9bmIuZmlyc3RDaGlsZDthLmZpcnN0Q2hpbGQ7KWEucmVtb3ZlQ2hpbGQoYS5maXJzdENoaWxkKTtmb3IoO2IuZmlyc3RDaGlsZDspYS5hcHBlbmRDaGlsZChiLmZpcnN0Q2hpbGQpfX0pO1xuZnVuY3Rpb24gcGIoYSxiKXtpZihiKXt2YXIgYz1hLmZpcnN0Q2hpbGQ7aWYoYyYmYz09PWEubGFzdENoaWxkJiYzPT09Yy5ub2RlVHlwZSl7Yy5ub2RlVmFsdWU9YjtyZXR1cm59fWEudGV4dENvbnRlbnQ9Yn1cbnZhciBxYj17YW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6ITAsYm9yZGVySW1hZ2VPdXRzZXQ6ITAsYm9yZGVySW1hZ2VTbGljZTohMCxib3JkZXJJbWFnZVdpZHRoOiEwLGJveEZsZXg6ITAsYm94RmxleEdyb3VwOiEwLGJveE9yZGluYWxHcm91cDohMCxjb2x1bW5Db3VudDohMCxjb2x1bW5zOiEwLGZsZXg6ITAsZmxleEdyb3c6ITAsZmxleFBvc2l0aXZlOiEwLGZsZXhTaHJpbms6ITAsZmxleE5lZ2F0aXZlOiEwLGZsZXhPcmRlcjohMCxncmlkQXJlYTohMCxncmlkUm93OiEwLGdyaWRSb3dFbmQ6ITAsZ3JpZFJvd1NwYW46ITAsZ3JpZFJvd1N0YXJ0OiEwLGdyaWRDb2x1bW46ITAsZ3JpZENvbHVtbkVuZDohMCxncmlkQ29sdW1uU3BhbjohMCxncmlkQ29sdW1uU3RhcnQ6ITAsZm9udFdlaWdodDohMCxsaW5lQ2xhbXA6ITAsbGluZUhlaWdodDohMCxvcGFjaXR5OiEwLG9yZGVyOiEwLG9ycGhhbnM6ITAsdGFiU2l6ZTohMCx3aWRvd3M6ITAsekluZGV4OiEwLHpvb206ITAsZmlsbE9wYWNpdHk6ITAsXG5mbG9vZE9wYWNpdHk6ITAsc3RvcE9wYWNpdHk6ITAsc3Ryb2tlRGFzaGFycmF5OiEwLHN0cm9rZURhc2hvZmZzZXQ6ITAsc3Ryb2tlTWl0ZXJsaW1pdDohMCxzdHJva2VPcGFjaXR5OiEwLHN0cm9rZVdpZHRoOiEwfSxyYj1bXCJXZWJraXRcIixcIm1zXCIsXCJNb3pcIixcIk9cIl07T2JqZWN0LmtleXMocWIpLmZvckVhY2goZnVuY3Rpb24oYSl7cmIuZm9yRWFjaChmdW5jdGlvbihiKXtiPWIrYS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSthLnN1YnN0cmluZygxKTtxYltiXT1xYlthXX0pfSk7ZnVuY3Rpb24gc2IoYSxiLGMpe3JldHVybiBudWxsPT1ifHxcImJvb2xlYW5cIj09PXR5cGVvZiBifHxcIlwiPT09Yj9cIlwiOmN8fFwibnVtYmVyXCIhPT10eXBlb2YgYnx8MD09PWJ8fHFiLmhhc093blByb3BlcnR5KGEpJiZxYlthXT8oXCJcIitiKS50cmltKCk6YitcInB4XCJ9XG5mdW5jdGlvbiB0YihhLGIpe2E9YS5zdHlsZTtmb3IodmFyIGMgaW4gYilpZihiLmhhc093blByb3BlcnR5KGMpKXt2YXIgZD0wPT09Yy5pbmRleE9mKFwiLS1cIiksZT1zYihjLGJbY10sZCk7XCJmbG9hdFwiPT09YyYmKGM9XCJjc3NGbG9hdFwiKTtkP2Euc2V0UHJvcGVydHkoYyxlKTphW2NdPWV9fXZhciB1Yj1tKHttZW51aXRlbTohMH0se2FyZWE6ITAsYmFzZTohMCxicjohMCxjb2w6ITAsZW1iZWQ6ITAsaHI6ITAsaW1nOiEwLGlucHV0OiEwLGtleWdlbjohMCxsaW5rOiEwLG1ldGE6ITAscGFyYW06ITAsc291cmNlOiEwLHRyYWNrOiEwLHdicjohMH0pO1xuZnVuY3Rpb24gdmIoYSxiKXtpZihiKXtpZih1YlthXSYmKG51bGwhPWIuY2hpbGRyZW58fG51bGwhPWIuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwpKXRocm93IEVycm9yKHkoMTM3LGEpKTtpZihudWxsIT1iLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MKXtpZihudWxsIT1iLmNoaWxkcmVuKXRocm93IEVycm9yKHkoNjApKTtpZighKFwib2JqZWN0XCI9PT10eXBlb2YgYi5kYW5nZXJvdXNseVNldElubmVySFRNTCYmXCJfX2h0bWxcImluIGIuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwpKXRocm93IEVycm9yKHkoNjEpKTt9aWYobnVsbCE9Yi5zdHlsZSYmXCJvYmplY3RcIiE9PXR5cGVvZiBiLnN0eWxlKXRocm93IEVycm9yKHkoNjIpKTt9fVxuZnVuY3Rpb24gd2IoYSxiKXtpZigtMT09PWEuaW5kZXhPZihcIi1cIikpcmV0dXJuXCJzdHJpbmdcIj09PXR5cGVvZiBiLmlzO3N3aXRjaChhKXtjYXNlIFwiYW5ub3RhdGlvbi14bWxcIjpjYXNlIFwiY29sb3ItcHJvZmlsZVwiOmNhc2UgXCJmb250LWZhY2VcIjpjYXNlIFwiZm9udC1mYWNlLXNyY1wiOmNhc2UgXCJmb250LWZhY2UtdXJpXCI6Y2FzZSBcImZvbnQtZmFjZS1mb3JtYXRcIjpjYXNlIFwiZm9udC1mYWNlLW5hbWVcIjpjYXNlIFwibWlzc2luZy1nbHlwaFwiOnJldHVybiExO2RlZmF1bHQ6cmV0dXJuITB9fWZ1bmN0aW9uIHhiKGEpe2E9YS50YXJnZXR8fGEuc3JjRWxlbWVudHx8d2luZG93O2EuY29ycmVzcG9uZGluZ1VzZUVsZW1lbnQmJihhPWEuY29ycmVzcG9uZGluZ1VzZUVsZW1lbnQpO3JldHVybiAzPT09YS5ub2RlVHlwZT9hLnBhcmVudE5vZGU6YX12YXIgeWI9bnVsbCx6Yj1udWxsLEFiPW51bGw7XG5mdW5jdGlvbiBCYihhKXtpZihhPUNiKGEpKXtpZihcImZ1bmN0aW9uXCIhPT10eXBlb2YgeWIpdGhyb3cgRXJyb3IoeSgyODApKTt2YXIgYj1hLnN0YXRlTm9kZTtiJiYoYj1EYihiKSx5YihhLnN0YXRlTm9kZSxhLnR5cGUsYikpfX1mdW5jdGlvbiBFYihhKXt6Yj9BYj9BYi5wdXNoKGEpOkFiPVthXTp6Yj1hfWZ1bmN0aW9uIEZiKCl7aWYoemIpe3ZhciBhPXpiLGI9QWI7QWI9emI9bnVsbDtCYihhKTtpZihiKWZvcihhPTA7YTxiLmxlbmd0aDthKyspQmIoYlthXSl9fWZ1bmN0aW9uIEdiKGEsYil7cmV0dXJuIGEoYil9ZnVuY3Rpb24gSGIoYSxiLGMsZCxlKXtyZXR1cm4gYShiLGMsZCxlKX1mdW5jdGlvbiBJYigpe312YXIgSmI9R2IsS2I9ITEsTGI9ITE7ZnVuY3Rpb24gTWIoKXtpZihudWxsIT09emJ8fG51bGwhPT1BYilJYigpLEZiKCl9XG5mdW5jdGlvbiBOYihhLGIsYyl7aWYoTGIpcmV0dXJuIGEoYixjKTtMYj0hMDt0cnl7cmV0dXJuIEpiKGEsYixjKX1maW5hbGx5e0xiPSExLE1iKCl9fVxuZnVuY3Rpb24gT2IoYSxiKXt2YXIgYz1hLnN0YXRlTm9kZTtpZihudWxsPT09YylyZXR1cm4gbnVsbDt2YXIgZD1EYihjKTtpZihudWxsPT09ZClyZXR1cm4gbnVsbDtjPWRbYl07YTpzd2l0Y2goYil7Y2FzZSBcIm9uQ2xpY2tcIjpjYXNlIFwib25DbGlja0NhcHR1cmVcIjpjYXNlIFwib25Eb3VibGVDbGlja1wiOmNhc2UgXCJvbkRvdWJsZUNsaWNrQ2FwdHVyZVwiOmNhc2UgXCJvbk1vdXNlRG93blwiOmNhc2UgXCJvbk1vdXNlRG93bkNhcHR1cmVcIjpjYXNlIFwib25Nb3VzZU1vdmVcIjpjYXNlIFwib25Nb3VzZU1vdmVDYXB0dXJlXCI6Y2FzZSBcIm9uTW91c2VVcFwiOmNhc2UgXCJvbk1vdXNlVXBDYXB0dXJlXCI6Y2FzZSBcIm9uTW91c2VFbnRlclwiOihkPSFkLmRpc2FibGVkKXx8KGE9YS50eXBlLGQ9IShcImJ1dHRvblwiPT09YXx8XCJpbnB1dFwiPT09YXx8XCJzZWxlY3RcIj09PWF8fFwidGV4dGFyZWFcIj09PWEpKTthPSFkO2JyZWFrIGE7ZGVmYXVsdDphPSExfWlmKGEpcmV0dXJuIG51bGw7aWYoYyYmXCJmdW5jdGlvblwiIT09XG50eXBlb2YgYyl0aHJvdyBFcnJvcih5KDIzMSxiLHR5cGVvZiBjKSk7cmV0dXJuIGN9dmFyIFBiPSExO2lmKGZhKXRyeXt2YXIgUWI9e307T2JqZWN0LmRlZmluZVByb3BlcnR5KFFiLFwicGFzc2l2ZVwiLHtnZXQ6ZnVuY3Rpb24oKXtQYj0hMH19KTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInRlc3RcIixRYixRYik7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0ZXN0XCIsUWIsUWIpfWNhdGNoKGEpe1BiPSExfWZ1bmN0aW9uIFJiKGEsYixjLGQsZSxmLGcsaCxrKXt2YXIgbD1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMyk7dHJ5e2IuYXBwbHkoYyxsKX1jYXRjaChuKXt0aGlzLm9uRXJyb3Iobil9fXZhciBTYj0hMSxUYj1udWxsLFViPSExLFZiPW51bGwsV2I9e29uRXJyb3I6ZnVuY3Rpb24oYSl7U2I9ITA7VGI9YX19O2Z1bmN0aW9uIFhiKGEsYixjLGQsZSxmLGcsaCxrKXtTYj0hMTtUYj1udWxsO1JiLmFwcGx5KFdiLGFyZ3VtZW50cyl9XG5mdW5jdGlvbiBZYihhLGIsYyxkLGUsZixnLGgsayl7WGIuYXBwbHkodGhpcyxhcmd1bWVudHMpO2lmKFNiKXtpZihTYil7dmFyIGw9VGI7U2I9ITE7VGI9bnVsbH1lbHNlIHRocm93IEVycm9yKHkoMTk4KSk7VWJ8fChVYj0hMCxWYj1sKX19ZnVuY3Rpb24gWmIoYSl7dmFyIGI9YSxjPWE7aWYoYS5hbHRlcm5hdGUpZm9yKDtiLnJldHVybjspYj1iLnJldHVybjtlbHNle2E9YjtkbyBiPWEsMCE9PShiLmZsYWdzJjEwMjYpJiYoYz1iLnJldHVybiksYT1iLnJldHVybjt3aGlsZShhKX1yZXR1cm4gMz09PWIudGFnP2M6bnVsbH1mdW5jdGlvbiAkYihhKXtpZigxMz09PWEudGFnKXt2YXIgYj1hLm1lbW9pemVkU3RhdGU7bnVsbD09PWImJihhPWEuYWx0ZXJuYXRlLG51bGwhPT1hJiYoYj1hLm1lbW9pemVkU3RhdGUpKTtpZihudWxsIT09YilyZXR1cm4gYi5kZWh5ZHJhdGVkfXJldHVybiBudWxsfWZ1bmN0aW9uIGFjKGEpe2lmKFpiKGEpIT09YSl0aHJvdyBFcnJvcih5KDE4OCkpO31cbmZ1bmN0aW9uIGJjKGEpe3ZhciBiPWEuYWx0ZXJuYXRlO2lmKCFiKXtiPVpiKGEpO2lmKG51bGw9PT1iKXRocm93IEVycm9yKHkoMTg4KSk7cmV0dXJuIGIhPT1hP251bGw6YX1mb3IodmFyIGM9YSxkPWI7Oyl7dmFyIGU9Yy5yZXR1cm47aWYobnVsbD09PWUpYnJlYWs7dmFyIGY9ZS5hbHRlcm5hdGU7aWYobnVsbD09PWYpe2Q9ZS5yZXR1cm47aWYobnVsbCE9PWQpe2M9ZDtjb250aW51ZX1icmVha31pZihlLmNoaWxkPT09Zi5jaGlsZCl7Zm9yKGY9ZS5jaGlsZDtmOyl7aWYoZj09PWMpcmV0dXJuIGFjKGUpLGE7aWYoZj09PWQpcmV0dXJuIGFjKGUpLGI7Zj1mLnNpYmxpbmd9dGhyb3cgRXJyb3IoeSgxODgpKTt9aWYoYy5yZXR1cm4hPT1kLnJldHVybiljPWUsZD1mO2Vsc2V7Zm9yKHZhciBnPSExLGg9ZS5jaGlsZDtoOyl7aWYoaD09PWMpe2c9ITA7Yz1lO2Q9ZjticmVha31pZihoPT09ZCl7Zz0hMDtkPWU7Yz1mO2JyZWFrfWg9aC5zaWJsaW5nfWlmKCFnKXtmb3IoaD1mLmNoaWxkO2g7KXtpZihoPT09XG5jKXtnPSEwO2M9ZjtkPWU7YnJlYWt9aWYoaD09PWQpe2c9ITA7ZD1mO2M9ZTticmVha31oPWguc2libGluZ31pZighZyl0aHJvdyBFcnJvcih5KDE4OSkpO319aWYoYy5hbHRlcm5hdGUhPT1kKXRocm93IEVycm9yKHkoMTkwKSk7fWlmKDMhPT1jLnRhZyl0aHJvdyBFcnJvcih5KDE4OCkpO3JldHVybiBjLnN0YXRlTm9kZS5jdXJyZW50PT09Yz9hOmJ9ZnVuY3Rpb24gY2MoYSl7YT1iYyhhKTtpZighYSlyZXR1cm4gbnVsbDtmb3IodmFyIGI9YTs7KXtpZig1PT09Yi50YWd8fDY9PT1iLnRhZylyZXR1cm4gYjtpZihiLmNoaWxkKWIuY2hpbGQucmV0dXJuPWIsYj1iLmNoaWxkO2Vsc2V7aWYoYj09PWEpYnJlYWs7Zm9yKDshYi5zaWJsaW5nOyl7aWYoIWIucmV0dXJufHxiLnJldHVybj09PWEpcmV0dXJuIG51bGw7Yj1iLnJldHVybn1iLnNpYmxpbmcucmV0dXJuPWIucmV0dXJuO2I9Yi5zaWJsaW5nfX1yZXR1cm4gbnVsbH1cbmZ1bmN0aW9uIGRjKGEsYil7Zm9yKHZhciBjPWEuYWx0ZXJuYXRlO251bGwhPT1iOyl7aWYoYj09PWF8fGI9PT1jKXJldHVybiEwO2I9Yi5yZXR1cm59cmV0dXJuITF9dmFyIGVjLGZjLGdjLGhjLGljPSExLGpjPVtdLGtjPW51bGwsbGM9bnVsbCxtYz1udWxsLG5jPW5ldyBNYXAsb2M9bmV3IE1hcCxwYz1bXSxxYz1cIm1vdXNlZG93biBtb3VzZXVwIHRvdWNoY2FuY2VsIHRvdWNoZW5kIHRvdWNoc3RhcnQgYXV4Y2xpY2sgZGJsY2xpY2sgcG9pbnRlcmNhbmNlbCBwb2ludGVyZG93biBwb2ludGVydXAgZHJhZ2VuZCBkcmFnc3RhcnQgZHJvcCBjb21wb3NpdGlvbmVuZCBjb21wb3NpdGlvbnN0YXJ0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgaW5wdXQgdGV4dElucHV0IGNvcHkgY3V0IHBhc3RlIGNsaWNrIGNoYW5nZSBjb250ZXh0bWVudSByZXNldCBzdWJtaXRcIi5zcGxpdChcIiBcIik7XG5mdW5jdGlvbiByYyhhLGIsYyxkLGUpe3JldHVybntibG9ja2VkT246YSxkb21FdmVudE5hbWU6YixldmVudFN5c3RlbUZsYWdzOmN8MTYsbmF0aXZlRXZlbnQ6ZSx0YXJnZXRDb250YWluZXJzOltkXX19ZnVuY3Rpb24gc2MoYSxiKXtzd2l0Y2goYSl7Y2FzZSBcImZvY3VzaW5cIjpjYXNlIFwiZm9jdXNvdXRcIjprYz1udWxsO2JyZWFrO2Nhc2UgXCJkcmFnZW50ZXJcIjpjYXNlIFwiZHJhZ2xlYXZlXCI6bGM9bnVsbDticmVhaztjYXNlIFwibW91c2VvdmVyXCI6Y2FzZSBcIm1vdXNlb3V0XCI6bWM9bnVsbDticmVhaztjYXNlIFwicG9pbnRlcm92ZXJcIjpjYXNlIFwicG9pbnRlcm91dFwiOm5jLmRlbGV0ZShiLnBvaW50ZXJJZCk7YnJlYWs7Y2FzZSBcImdvdHBvaW50ZXJjYXB0dXJlXCI6Y2FzZSBcImxvc3Rwb2ludGVyY2FwdHVyZVwiOm9jLmRlbGV0ZShiLnBvaW50ZXJJZCl9fVxuZnVuY3Rpb24gdGMoYSxiLGMsZCxlLGYpe2lmKG51bGw9PT1hfHxhLm5hdGl2ZUV2ZW50IT09ZilyZXR1cm4gYT1yYyhiLGMsZCxlLGYpLG51bGwhPT1iJiYoYj1DYihiKSxudWxsIT09YiYmZmMoYikpLGE7YS5ldmVudFN5c3RlbUZsYWdzfD1kO2I9YS50YXJnZXRDb250YWluZXJzO251bGwhPT1lJiYtMT09PWIuaW5kZXhPZihlKSYmYi5wdXNoKGUpO3JldHVybiBhfVxuZnVuY3Rpb24gdWMoYSxiLGMsZCxlKXtzd2l0Y2goYil7Y2FzZSBcImZvY3VzaW5cIjpyZXR1cm4ga2M9dGMoa2MsYSxiLGMsZCxlKSwhMDtjYXNlIFwiZHJhZ2VudGVyXCI6cmV0dXJuIGxjPXRjKGxjLGEsYixjLGQsZSksITA7Y2FzZSBcIm1vdXNlb3ZlclwiOnJldHVybiBtYz10YyhtYyxhLGIsYyxkLGUpLCEwO2Nhc2UgXCJwb2ludGVyb3ZlclwiOnZhciBmPWUucG9pbnRlcklkO25jLnNldChmLHRjKG5jLmdldChmKXx8bnVsbCxhLGIsYyxkLGUpKTtyZXR1cm4hMDtjYXNlIFwiZ290cG9pbnRlcmNhcHR1cmVcIjpyZXR1cm4gZj1lLnBvaW50ZXJJZCxvYy5zZXQoZix0YyhvYy5nZXQoZil8fG51bGwsYSxiLGMsZCxlKSksITB9cmV0dXJuITF9XG5mdW5jdGlvbiB2YyhhKXt2YXIgYj13YyhhLnRhcmdldCk7aWYobnVsbCE9PWIpe3ZhciBjPVpiKGIpO2lmKG51bGwhPT1jKWlmKGI9Yy50YWcsMTM9PT1iKXtpZihiPSRiKGMpLG51bGwhPT1iKXthLmJsb2NrZWRPbj1iO2hjKGEubGFuZVByaW9yaXR5LGZ1bmN0aW9uKCl7ci51bnN0YWJsZV9ydW5XaXRoUHJpb3JpdHkoYS5wcmlvcml0eSxmdW5jdGlvbigpe2djKGMpfSl9KTtyZXR1cm59fWVsc2UgaWYoMz09PWImJmMuc3RhdGVOb2RlLmh5ZHJhdGUpe2EuYmxvY2tlZE9uPTM9PT1jLnRhZz9jLnN0YXRlTm9kZS5jb250YWluZXJJbmZvOm51bGw7cmV0dXJufX1hLmJsb2NrZWRPbj1udWxsfVxuZnVuY3Rpb24geGMoYSl7aWYobnVsbCE9PWEuYmxvY2tlZE9uKXJldHVybiExO2Zvcih2YXIgYj1hLnRhcmdldENvbnRhaW5lcnM7MDxiLmxlbmd0aDspe3ZhciBjPXljKGEuZG9tRXZlbnROYW1lLGEuZXZlbnRTeXN0ZW1GbGFncyxiWzBdLGEubmF0aXZlRXZlbnQpO2lmKG51bGwhPT1jKXJldHVybiBiPUNiKGMpLG51bGwhPT1iJiZmYyhiKSxhLmJsb2NrZWRPbj1jLCExO2Iuc2hpZnQoKX1yZXR1cm4hMH1mdW5jdGlvbiB6YyhhLGIsYyl7eGMoYSkmJmMuZGVsZXRlKGIpfVxuZnVuY3Rpb24gQWMoKXtmb3IoaWM9ITE7MDxqYy5sZW5ndGg7KXt2YXIgYT1qY1swXTtpZihudWxsIT09YS5ibG9ja2VkT24pe2E9Q2IoYS5ibG9ja2VkT24pO251bGwhPT1hJiZlYyhhKTticmVha31mb3IodmFyIGI9YS50YXJnZXRDb250YWluZXJzOzA8Yi5sZW5ndGg7KXt2YXIgYz15YyhhLmRvbUV2ZW50TmFtZSxhLmV2ZW50U3lzdGVtRmxhZ3MsYlswXSxhLm5hdGl2ZUV2ZW50KTtpZihudWxsIT09Yyl7YS5ibG9ja2VkT249YzticmVha31iLnNoaWZ0KCl9bnVsbD09PWEuYmxvY2tlZE9uJiZqYy5zaGlmdCgpfW51bGwhPT1rYyYmeGMoa2MpJiYoa2M9bnVsbCk7bnVsbCE9PWxjJiZ4YyhsYykmJihsYz1udWxsKTtudWxsIT09bWMmJnhjKG1jKSYmKG1jPW51bGwpO25jLmZvckVhY2goemMpO29jLmZvckVhY2goemMpfVxuZnVuY3Rpb24gQmMoYSxiKXthLmJsb2NrZWRPbj09PWImJihhLmJsb2NrZWRPbj1udWxsLGljfHwoaWM9ITAsci51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrKHIudW5zdGFibGVfTm9ybWFsUHJpb3JpdHksQWMpKSl9XG5mdW5jdGlvbiBDYyhhKXtmdW5jdGlvbiBiKGIpe3JldHVybiBCYyhiLGEpfWlmKDA8amMubGVuZ3RoKXtCYyhqY1swXSxhKTtmb3IodmFyIGM9MTtjPGpjLmxlbmd0aDtjKyspe3ZhciBkPWpjW2NdO2QuYmxvY2tlZE9uPT09YSYmKGQuYmxvY2tlZE9uPW51bGwpfX1udWxsIT09a2MmJkJjKGtjLGEpO251bGwhPT1sYyYmQmMobGMsYSk7bnVsbCE9PW1jJiZCYyhtYyxhKTtuYy5mb3JFYWNoKGIpO29jLmZvckVhY2goYik7Zm9yKGM9MDtjPHBjLmxlbmd0aDtjKyspZD1wY1tjXSxkLmJsb2NrZWRPbj09PWEmJihkLmJsb2NrZWRPbj1udWxsKTtmb3IoOzA8cGMubGVuZ3RoJiYoYz1wY1swXSxudWxsPT09Yy5ibG9ja2VkT24pOyl2YyhjKSxudWxsPT09Yy5ibG9ja2VkT24mJnBjLnNoaWZ0KCl9XG5mdW5jdGlvbiBEYyhhLGIpe3ZhciBjPXt9O2NbYS50b0xvd2VyQ2FzZSgpXT1iLnRvTG93ZXJDYXNlKCk7Y1tcIldlYmtpdFwiK2FdPVwid2Via2l0XCIrYjtjW1wiTW96XCIrYV09XCJtb3pcIitiO3JldHVybiBjfXZhciBFYz17YW5pbWF0aW9uZW5kOkRjKFwiQW5pbWF0aW9uXCIsXCJBbmltYXRpb25FbmRcIiksYW5pbWF0aW9uaXRlcmF0aW9uOkRjKFwiQW5pbWF0aW9uXCIsXCJBbmltYXRpb25JdGVyYXRpb25cIiksYW5pbWF0aW9uc3RhcnQ6RGMoXCJBbmltYXRpb25cIixcIkFuaW1hdGlvblN0YXJ0XCIpLHRyYW5zaXRpb25lbmQ6RGMoXCJUcmFuc2l0aW9uXCIsXCJUcmFuc2l0aW9uRW5kXCIpfSxGYz17fSxHYz17fTtcbmZhJiYoR2M9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKS5zdHlsZSxcIkFuaW1hdGlvbkV2ZW50XCJpbiB3aW5kb3d8fChkZWxldGUgRWMuYW5pbWF0aW9uZW5kLmFuaW1hdGlvbixkZWxldGUgRWMuYW5pbWF0aW9uaXRlcmF0aW9uLmFuaW1hdGlvbixkZWxldGUgRWMuYW5pbWF0aW9uc3RhcnQuYW5pbWF0aW9uKSxcIlRyYW5zaXRpb25FdmVudFwiaW4gd2luZG93fHxkZWxldGUgRWMudHJhbnNpdGlvbmVuZC50cmFuc2l0aW9uKTtmdW5jdGlvbiBIYyhhKXtpZihGY1thXSlyZXR1cm4gRmNbYV07aWYoIUVjW2FdKXJldHVybiBhO3ZhciBiPUVjW2FdLGM7Zm9yKGMgaW4gYilpZihiLmhhc093blByb3BlcnR5KGMpJiZjIGluIEdjKXJldHVybiBGY1thXT1iW2NdO3JldHVybiBhfVxudmFyIEljPUhjKFwiYW5pbWF0aW9uZW5kXCIpLEpjPUhjKFwiYW5pbWF0aW9uaXRlcmF0aW9uXCIpLEtjPUhjKFwiYW5pbWF0aW9uc3RhcnRcIiksTGM9SGMoXCJ0cmFuc2l0aW9uZW5kXCIpLE1jPW5ldyBNYXAsTmM9bmV3IE1hcCxPYz1bXCJhYm9ydFwiLFwiYWJvcnRcIixJYyxcImFuaW1hdGlvbkVuZFwiLEpjLFwiYW5pbWF0aW9uSXRlcmF0aW9uXCIsS2MsXCJhbmltYXRpb25TdGFydFwiLFwiY2FucGxheVwiLFwiY2FuUGxheVwiLFwiY2FucGxheXRocm91Z2hcIixcImNhblBsYXlUaHJvdWdoXCIsXCJkdXJhdGlvbmNoYW5nZVwiLFwiZHVyYXRpb25DaGFuZ2VcIixcImVtcHRpZWRcIixcImVtcHRpZWRcIixcImVuY3J5cHRlZFwiLFwiZW5jcnlwdGVkXCIsXCJlbmRlZFwiLFwiZW5kZWRcIixcImVycm9yXCIsXCJlcnJvclwiLFwiZ290cG9pbnRlcmNhcHR1cmVcIixcImdvdFBvaW50ZXJDYXB0dXJlXCIsXCJsb2FkXCIsXCJsb2FkXCIsXCJsb2FkZWRkYXRhXCIsXCJsb2FkZWREYXRhXCIsXCJsb2FkZWRtZXRhZGF0YVwiLFwibG9hZGVkTWV0YWRhdGFcIixcImxvYWRzdGFydFwiLFwibG9hZFN0YXJ0XCIsXG5cImxvc3Rwb2ludGVyY2FwdHVyZVwiLFwibG9zdFBvaW50ZXJDYXB0dXJlXCIsXCJwbGF5aW5nXCIsXCJwbGF5aW5nXCIsXCJwcm9ncmVzc1wiLFwicHJvZ3Jlc3NcIixcInNlZWtpbmdcIixcInNlZWtpbmdcIixcInN0YWxsZWRcIixcInN0YWxsZWRcIixcInN1c3BlbmRcIixcInN1c3BlbmRcIixcInRpbWV1cGRhdGVcIixcInRpbWVVcGRhdGVcIixMYyxcInRyYW5zaXRpb25FbmRcIixcIndhaXRpbmdcIixcIndhaXRpbmdcIl07ZnVuY3Rpb24gUGMoYSxiKXtmb3IodmFyIGM9MDtjPGEubGVuZ3RoO2MrPTIpe3ZhciBkPWFbY10sZT1hW2MrMV07ZT1cIm9uXCIrKGVbMF0udG9VcHBlckNhc2UoKStlLnNsaWNlKDEpKTtOYy5zZXQoZCxiKTtNYy5zZXQoZCxlKTtkYShlLFtkXSl9fXZhciBRYz1yLnVuc3RhYmxlX25vdztRYygpO3ZhciBGPTg7XG5mdW5jdGlvbiBSYyhhKXtpZigwIT09KDEmYSkpcmV0dXJuIEY9MTUsMTtpZigwIT09KDImYSkpcmV0dXJuIEY9MTQsMjtpZigwIT09KDQmYSkpcmV0dXJuIEY9MTMsNDt2YXIgYj0yNCZhO2lmKDAhPT1iKXJldHVybiBGPTEyLGI7aWYoMCE9PShhJjMyKSlyZXR1cm4gRj0xMSwzMjtiPTE5MiZhO2lmKDAhPT1iKXJldHVybiBGPTEwLGI7aWYoMCE9PShhJjI1NikpcmV0dXJuIEY9OSwyNTY7Yj0zNTg0JmE7aWYoMCE9PWIpcmV0dXJuIEY9OCxiO2lmKDAhPT0oYSY0MDk2KSlyZXR1cm4gRj03LDQwOTY7Yj00MTg2MTEyJmE7aWYoMCE9PWIpcmV0dXJuIEY9NixiO2I9NjI5MTQ1NjAmYTtpZigwIT09YilyZXR1cm4gRj01LGI7aWYoYSY2NzEwODg2NClyZXR1cm4gRj00LDY3MTA4ODY0O2lmKDAhPT0oYSYxMzQyMTc3MjgpKXJldHVybiBGPTMsMTM0MjE3NzI4O2I9ODA1MzA2MzY4JmE7aWYoMCE9PWIpcmV0dXJuIEY9MixiO2lmKDAhPT0oMTA3Mzc0MTgyNCZhKSlyZXR1cm4gRj0xLDEwNzM3NDE4MjQ7XG5GPTg7cmV0dXJuIGF9ZnVuY3Rpb24gU2MoYSl7c3dpdGNoKGEpe2Nhc2UgOTk6cmV0dXJuIDE1O2Nhc2UgOTg6cmV0dXJuIDEwO2Nhc2UgOTc6Y2FzZSA5NjpyZXR1cm4gODtjYXNlIDk1OnJldHVybiAyO2RlZmF1bHQ6cmV0dXJuIDB9fWZ1bmN0aW9uIFRjKGEpe3N3aXRjaChhKXtjYXNlIDE1OmNhc2UgMTQ6cmV0dXJuIDk5O2Nhc2UgMTM6Y2FzZSAxMjpjYXNlIDExOmNhc2UgMTA6cmV0dXJuIDk4O2Nhc2UgOTpjYXNlIDg6Y2FzZSA3OmNhc2UgNjpjYXNlIDQ6Y2FzZSA1OnJldHVybiA5NztjYXNlIDM6Y2FzZSAyOmNhc2UgMTpyZXR1cm4gOTU7Y2FzZSAwOnJldHVybiA5MDtkZWZhdWx0OnRocm93IEVycm9yKHkoMzU4LGEpKTt9fVxuZnVuY3Rpb24gVWMoYSxiKXt2YXIgYz1hLnBlbmRpbmdMYW5lcztpZigwPT09YylyZXR1cm4gRj0wO3ZhciBkPTAsZT0wLGY9YS5leHBpcmVkTGFuZXMsZz1hLnN1c3BlbmRlZExhbmVzLGg9YS5waW5nZWRMYW5lcztpZigwIT09ZilkPWYsZT1GPTE1O2Vsc2UgaWYoZj1jJjEzNDIxNzcyNywwIT09Zil7dmFyIGs9ZiZ+ZzswIT09az8oZD1SYyhrKSxlPUYpOihoJj1mLDAhPT1oJiYoZD1SYyhoKSxlPUYpKX1lbHNlIGY9YyZ+ZywwIT09Zj8oZD1SYyhmKSxlPUYpOjAhPT1oJiYoZD1SYyhoKSxlPUYpO2lmKDA9PT1kKXJldHVybiAwO2Q9MzEtVmMoZCk7ZD1jJigoMD5kPzA6MTw8ZCk8PDEpLTE7aWYoMCE9PWImJmIhPT1kJiYwPT09KGImZykpe1JjKGIpO2lmKGU8PUYpcmV0dXJuIGI7Rj1lfWI9YS5lbnRhbmdsZWRMYW5lcztpZigwIT09Yilmb3IoYT1hLmVudGFuZ2xlbWVudHMsYiY9ZDswPGI7KWM9MzEtVmMoYiksZT0xPDxjLGR8PWFbY10sYiY9fmU7cmV0dXJuIGR9XG5mdW5jdGlvbiBXYyhhKXthPWEucGVuZGluZ0xhbmVzJi0xMDczNzQxODI1O3JldHVybiAwIT09YT9hOmEmMTA3Mzc0MTgyND8xMDczNzQxODI0OjB9ZnVuY3Rpb24gWGMoYSxiKXtzd2l0Y2goYSl7Y2FzZSAxNTpyZXR1cm4gMTtjYXNlIDE0OnJldHVybiAyO2Nhc2UgMTI6cmV0dXJuIGE9WWMoMjQmfmIpLDA9PT1hP1hjKDEwLGIpOmE7Y2FzZSAxMDpyZXR1cm4gYT1ZYygxOTImfmIpLDA9PT1hP1hjKDgsYik6YTtjYXNlIDg6cmV0dXJuIGE9WWMoMzU4NCZ+YiksMD09PWEmJihhPVljKDQxODYxMTImfmIpLDA9PT1hJiYoYT01MTIpKSxhO2Nhc2UgMjpyZXR1cm4gYj1ZYyg4MDUzMDYzNjgmfmIpLDA9PT1iJiYoYj0yNjg0MzU0NTYpLGJ9dGhyb3cgRXJyb3IoeSgzNTgsYSkpO31mdW5jdGlvbiBZYyhhKXtyZXR1cm4gYSYtYX1mdW5jdGlvbiBaYyhhKXtmb3IodmFyIGI9W10sYz0wOzMxPmM7YysrKWIucHVzaChhKTtyZXR1cm4gYn1cbmZ1bmN0aW9uICRjKGEsYixjKXthLnBlbmRpbmdMYW5lc3w9Yjt2YXIgZD1iLTE7YS5zdXNwZW5kZWRMYW5lcyY9ZDthLnBpbmdlZExhbmVzJj1kO2E9YS5ldmVudFRpbWVzO2I9MzEtVmMoYik7YVtiXT1jfXZhciBWYz1NYXRoLmNsejMyP01hdGguY2x6MzI6YWQsYmQ9TWF0aC5sb2csY2Q9TWF0aC5MTjI7ZnVuY3Rpb24gYWQoYSl7cmV0dXJuIDA9PT1hPzMyOjMxLShiZChhKS9jZHwwKXwwfXZhciBkZD1yLnVuc3RhYmxlX1VzZXJCbG9ja2luZ1ByaW9yaXR5LGVkPXIudW5zdGFibGVfcnVuV2l0aFByaW9yaXR5LGZkPSEwO2Z1bmN0aW9uIGdkKGEsYixjLGQpe0tifHxJYigpO3ZhciBlPWhkLGY9S2I7S2I9ITA7dHJ5e0hiKGUsYSxiLGMsZCl9ZmluYWxseXsoS2I9Zil8fE1iKCl9fWZ1bmN0aW9uIGlkKGEsYixjLGQpe2VkKGRkLGhkLmJpbmQobnVsbCxhLGIsYyxkKSl9XG5mdW5jdGlvbiBoZChhLGIsYyxkKXtpZihmZCl7dmFyIGU7aWYoKGU9MD09PShiJjQpKSYmMDxqYy5sZW5ndGgmJi0xPHFjLmluZGV4T2YoYSkpYT1yYyhudWxsLGEsYixjLGQpLGpjLnB1c2goYSk7ZWxzZXt2YXIgZj15YyhhLGIsYyxkKTtpZihudWxsPT09ZillJiZzYyhhLGQpO2Vsc2V7aWYoZSl7aWYoLTE8cWMuaW5kZXhPZihhKSl7YT1yYyhmLGEsYixjLGQpO2pjLnB1c2goYSk7cmV0dXJufWlmKHVjKGYsYSxiLGMsZCkpcmV0dXJuO3NjKGEsZCl9amQoYSxiLGQsbnVsbCxjKX19fX1cbmZ1bmN0aW9uIHljKGEsYixjLGQpe3ZhciBlPXhiKGQpO2U9d2MoZSk7aWYobnVsbCE9PWUpe3ZhciBmPVpiKGUpO2lmKG51bGw9PT1mKWU9bnVsbDtlbHNle3ZhciBnPWYudGFnO2lmKDEzPT09Zyl7ZT0kYihmKTtpZihudWxsIT09ZSlyZXR1cm4gZTtlPW51bGx9ZWxzZSBpZigzPT09Zyl7aWYoZi5zdGF0ZU5vZGUuaHlkcmF0ZSlyZXR1cm4gMz09PWYudGFnP2Yuc3RhdGVOb2RlLmNvbnRhaW5lckluZm86bnVsbDtlPW51bGx9ZWxzZSBmIT09ZSYmKGU9bnVsbCl9fWpkKGEsYixkLGUsYyk7cmV0dXJuIG51bGx9dmFyIGtkPW51bGwsbGQ9bnVsbCxtZD1udWxsO1xuZnVuY3Rpb24gbmQoKXtpZihtZClyZXR1cm4gbWQ7dmFyIGEsYj1sZCxjPWIubGVuZ3RoLGQsZT1cInZhbHVlXCJpbiBrZD9rZC52YWx1ZTprZC50ZXh0Q29udGVudCxmPWUubGVuZ3RoO2ZvcihhPTA7YTxjJiZiW2FdPT09ZVthXTthKyspO3ZhciBnPWMtYTtmb3IoZD0xO2Q8PWcmJmJbYy1kXT09PWVbZi1kXTtkKyspO3JldHVybiBtZD1lLnNsaWNlKGEsMTxkPzEtZDp2b2lkIDApfWZ1bmN0aW9uIG9kKGEpe3ZhciBiPWEua2V5Q29kZTtcImNoYXJDb2RlXCJpbiBhPyhhPWEuY2hhckNvZGUsMD09PWEmJjEzPT09YiYmKGE9MTMpKTphPWI7MTA9PT1hJiYoYT0xMyk7cmV0dXJuIDMyPD1hfHwxMz09PWE/YTowfWZ1bmN0aW9uIHBkKCl7cmV0dXJuITB9ZnVuY3Rpb24gcWQoKXtyZXR1cm4hMX1cbmZ1bmN0aW9uIHJkKGEpe2Z1bmN0aW9uIGIoYixkLGUsZixnKXt0aGlzLl9yZWFjdE5hbWU9Yjt0aGlzLl90YXJnZXRJbnN0PWU7dGhpcy50eXBlPWQ7dGhpcy5uYXRpdmVFdmVudD1mO3RoaXMudGFyZ2V0PWc7dGhpcy5jdXJyZW50VGFyZ2V0PW51bGw7Zm9yKHZhciBjIGluIGEpYS5oYXNPd25Qcm9wZXJ0eShjKSYmKGI9YVtjXSx0aGlzW2NdPWI/YihmKTpmW2NdKTt0aGlzLmlzRGVmYXVsdFByZXZlbnRlZD0obnVsbCE9Zi5kZWZhdWx0UHJldmVudGVkP2YuZGVmYXVsdFByZXZlbnRlZDohMT09PWYucmV0dXJuVmFsdWUpP3BkOnFkO3RoaXMuaXNQcm9wYWdhdGlvblN0b3BwZWQ9cWQ7cmV0dXJuIHRoaXN9bShiLnByb3RvdHlwZSx7cHJldmVudERlZmF1bHQ6ZnVuY3Rpb24oKXt0aGlzLmRlZmF1bHRQcmV2ZW50ZWQ9ITA7dmFyIGE9dGhpcy5uYXRpdmVFdmVudDthJiYoYS5wcmV2ZW50RGVmYXVsdD9hLnByZXZlbnREZWZhdWx0KCk6XCJ1bmtub3duXCIhPT10eXBlb2YgYS5yZXR1cm5WYWx1ZSYmXG4oYS5yZXR1cm5WYWx1ZT0hMSksdGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQ9cGQpfSxzdG9wUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt2YXIgYT10aGlzLm5hdGl2ZUV2ZW50O2EmJihhLnN0b3BQcm9wYWdhdGlvbj9hLnN0b3BQcm9wYWdhdGlvbigpOlwidW5rbm93blwiIT09dHlwZW9mIGEuY2FuY2VsQnViYmxlJiYoYS5jYW5jZWxCdWJibGU9ITApLHRoaXMuaXNQcm9wYWdhdGlvblN0b3BwZWQ9cGQpfSxwZXJzaXN0OmZ1bmN0aW9uKCl7fSxpc1BlcnNpc3RlbnQ6cGR9KTtyZXR1cm4gYn1cbnZhciBzZD17ZXZlbnRQaGFzZTowLGJ1YmJsZXM6MCxjYW5jZWxhYmxlOjAsdGltZVN0YW1wOmZ1bmN0aW9uKGEpe3JldHVybiBhLnRpbWVTdGFtcHx8RGF0ZS5ub3coKX0sZGVmYXVsdFByZXZlbnRlZDowLGlzVHJ1c3RlZDowfSx0ZD1yZChzZCksdWQ9bSh7fSxzZCx7dmlldzowLGRldGFpbDowfSksdmQ9cmQodWQpLHdkLHhkLHlkLEFkPW0oe30sdWQse3NjcmVlblg6MCxzY3JlZW5ZOjAsY2xpZW50WDowLGNsaWVudFk6MCxwYWdlWDowLHBhZ2VZOjAsY3RybEtleTowLHNoaWZ0S2V5OjAsYWx0S2V5OjAsbWV0YUtleTowLGdldE1vZGlmaWVyU3RhdGU6emQsYnV0dG9uOjAsYnV0dG9uczowLHJlbGF0ZWRUYXJnZXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIHZvaWQgMD09PWEucmVsYXRlZFRhcmdldD9hLmZyb21FbGVtZW50PT09YS5zcmNFbGVtZW50P2EudG9FbGVtZW50OmEuZnJvbUVsZW1lbnQ6YS5yZWxhdGVkVGFyZ2V0fSxtb3ZlbWVudFg6ZnVuY3Rpb24oYSl7aWYoXCJtb3ZlbWVudFhcImluXG5hKXJldHVybiBhLm1vdmVtZW50WDthIT09eWQmJih5ZCYmXCJtb3VzZW1vdmVcIj09PWEudHlwZT8od2Q9YS5zY3JlZW5YLXlkLnNjcmVlblgseGQ9YS5zY3JlZW5ZLXlkLnNjcmVlblkpOnhkPXdkPTAseWQ9YSk7cmV0dXJuIHdkfSxtb3ZlbWVudFk6ZnVuY3Rpb24oYSl7cmV0dXJuXCJtb3ZlbWVudFlcImluIGE/YS5tb3ZlbWVudFk6eGR9fSksQmQ9cmQoQWQpLENkPW0oe30sQWQse2RhdGFUcmFuc2ZlcjowfSksRGQ9cmQoQ2QpLEVkPW0oe30sdWQse3JlbGF0ZWRUYXJnZXQ6MH0pLEZkPXJkKEVkKSxHZD1tKHt9LHNkLHthbmltYXRpb25OYW1lOjAsZWxhcHNlZFRpbWU6MCxwc2V1ZG9FbGVtZW50OjB9KSxIZD1yZChHZCksSWQ9bSh7fSxzZCx7Y2xpcGJvYXJkRGF0YTpmdW5jdGlvbihhKXtyZXR1cm5cImNsaXBib2FyZERhdGFcImluIGE/YS5jbGlwYm9hcmREYXRhOndpbmRvdy5jbGlwYm9hcmREYXRhfX0pLEpkPXJkKElkKSxLZD1tKHt9LHNkLHtkYXRhOjB9KSxMZD1yZChLZCksTWQ9e0VzYzpcIkVzY2FwZVwiLFxuU3BhY2ViYXI6XCIgXCIsTGVmdDpcIkFycm93TGVmdFwiLFVwOlwiQXJyb3dVcFwiLFJpZ2h0OlwiQXJyb3dSaWdodFwiLERvd246XCJBcnJvd0Rvd25cIixEZWw6XCJEZWxldGVcIixXaW46XCJPU1wiLE1lbnU6XCJDb250ZXh0TWVudVwiLEFwcHM6XCJDb250ZXh0TWVudVwiLFNjcm9sbDpcIlNjcm9sbExvY2tcIixNb3pQcmludGFibGVLZXk6XCJVbmlkZW50aWZpZWRcIn0sTmQ9ezg6XCJCYWNrc3BhY2VcIiw5OlwiVGFiXCIsMTI6XCJDbGVhclwiLDEzOlwiRW50ZXJcIiwxNjpcIlNoaWZ0XCIsMTc6XCJDb250cm9sXCIsMTg6XCJBbHRcIiwxOTpcIlBhdXNlXCIsMjA6XCJDYXBzTG9ja1wiLDI3OlwiRXNjYXBlXCIsMzI6XCIgXCIsMzM6XCJQYWdlVXBcIiwzNDpcIlBhZ2VEb3duXCIsMzU6XCJFbmRcIiwzNjpcIkhvbWVcIiwzNzpcIkFycm93TGVmdFwiLDM4OlwiQXJyb3dVcFwiLDM5OlwiQXJyb3dSaWdodFwiLDQwOlwiQXJyb3dEb3duXCIsNDU6XCJJbnNlcnRcIiw0NjpcIkRlbGV0ZVwiLDExMjpcIkYxXCIsMTEzOlwiRjJcIiwxMTQ6XCJGM1wiLDExNTpcIkY0XCIsMTE2OlwiRjVcIiwxMTc6XCJGNlwiLDExODpcIkY3XCIsXG4xMTk6XCJGOFwiLDEyMDpcIkY5XCIsMTIxOlwiRjEwXCIsMTIyOlwiRjExXCIsMTIzOlwiRjEyXCIsMTQ0OlwiTnVtTG9ja1wiLDE0NTpcIlNjcm9sbExvY2tcIiwyMjQ6XCJNZXRhXCJ9LE9kPXtBbHQ6XCJhbHRLZXlcIixDb250cm9sOlwiY3RybEtleVwiLE1ldGE6XCJtZXRhS2V5XCIsU2hpZnQ6XCJzaGlmdEtleVwifTtmdW5jdGlvbiBQZChhKXt2YXIgYj10aGlzLm5hdGl2ZUV2ZW50O3JldHVybiBiLmdldE1vZGlmaWVyU3RhdGU/Yi5nZXRNb2RpZmllclN0YXRlKGEpOihhPU9kW2FdKT8hIWJbYV06ITF9ZnVuY3Rpb24gemQoKXtyZXR1cm4gUGR9XG52YXIgUWQ9bSh7fSx1ZCx7a2V5OmZ1bmN0aW9uKGEpe2lmKGEua2V5KXt2YXIgYj1NZFthLmtleV18fGEua2V5O2lmKFwiVW5pZGVudGlmaWVkXCIhPT1iKXJldHVybiBifXJldHVyblwia2V5cHJlc3NcIj09PWEudHlwZT8oYT1vZChhKSwxMz09PWE/XCJFbnRlclwiOlN0cmluZy5mcm9tQ2hhckNvZGUoYSkpOlwia2V5ZG93blwiPT09YS50eXBlfHxcImtleXVwXCI9PT1hLnR5cGU/TmRbYS5rZXlDb2RlXXx8XCJVbmlkZW50aWZpZWRcIjpcIlwifSxjb2RlOjAsbG9jYXRpb246MCxjdHJsS2V5OjAsc2hpZnRLZXk6MCxhbHRLZXk6MCxtZXRhS2V5OjAscmVwZWF0OjAsbG9jYWxlOjAsZ2V0TW9kaWZpZXJTdGF0ZTp6ZCxjaGFyQ29kZTpmdW5jdGlvbihhKXtyZXR1cm5cImtleXByZXNzXCI9PT1hLnR5cGU/b2QoYSk6MH0sa2V5Q29kZTpmdW5jdGlvbihhKXtyZXR1cm5cImtleWRvd25cIj09PWEudHlwZXx8XCJrZXl1cFwiPT09YS50eXBlP2Eua2V5Q29kZTowfSx3aGljaDpmdW5jdGlvbihhKXtyZXR1cm5cImtleXByZXNzXCI9PT1cbmEudHlwZT9vZChhKTpcImtleWRvd25cIj09PWEudHlwZXx8XCJrZXl1cFwiPT09YS50eXBlP2Eua2V5Q29kZTowfX0pLFJkPXJkKFFkKSxTZD1tKHt9LEFkLHtwb2ludGVySWQ6MCx3aWR0aDowLGhlaWdodDowLHByZXNzdXJlOjAsdGFuZ2VudGlhbFByZXNzdXJlOjAsdGlsdFg6MCx0aWx0WTowLHR3aXN0OjAscG9pbnRlclR5cGU6MCxpc1ByaW1hcnk6MH0pLFRkPXJkKFNkKSxVZD1tKHt9LHVkLHt0b3VjaGVzOjAsdGFyZ2V0VG91Y2hlczowLGNoYW5nZWRUb3VjaGVzOjAsYWx0S2V5OjAsbWV0YUtleTowLGN0cmxLZXk6MCxzaGlmdEtleTowLGdldE1vZGlmaWVyU3RhdGU6emR9KSxWZD1yZChVZCksV2Q9bSh7fSxzZCx7cHJvcGVydHlOYW1lOjAsZWxhcHNlZFRpbWU6MCxwc2V1ZG9FbGVtZW50OjB9KSxYZD1yZChXZCksWWQ9bSh7fSxBZCx7ZGVsdGFYOmZ1bmN0aW9uKGEpe3JldHVyblwiZGVsdGFYXCJpbiBhP2EuZGVsdGFYOlwid2hlZWxEZWx0YVhcImluIGE/LWEud2hlZWxEZWx0YVg6MH0sXG5kZWx0YVk6ZnVuY3Rpb24oYSl7cmV0dXJuXCJkZWx0YVlcImluIGE/YS5kZWx0YVk6XCJ3aGVlbERlbHRhWVwiaW4gYT8tYS53aGVlbERlbHRhWTpcIndoZWVsRGVsdGFcImluIGE/LWEud2hlZWxEZWx0YTowfSxkZWx0YVo6MCxkZWx0YU1vZGU6MH0pLFpkPXJkKFlkKSwkZD1bOSwxMywyNywzMl0sYWU9ZmEmJlwiQ29tcG9zaXRpb25FdmVudFwiaW4gd2luZG93LGJlPW51bGw7ZmEmJlwiZG9jdW1lbnRNb2RlXCJpbiBkb2N1bWVudCYmKGJlPWRvY3VtZW50LmRvY3VtZW50TW9kZSk7dmFyIGNlPWZhJiZcIlRleHRFdmVudFwiaW4gd2luZG93JiYhYmUsZGU9ZmEmJighYWV8fGJlJiY4PGJlJiYxMT49YmUpLGVlPVN0cmluZy5mcm9tQ2hhckNvZGUoMzIpLGZlPSExO1xuZnVuY3Rpb24gZ2UoYSxiKXtzd2l0Y2goYSl7Y2FzZSBcImtleXVwXCI6cmV0dXJuLTEhPT0kZC5pbmRleE9mKGIua2V5Q29kZSk7Y2FzZSBcImtleWRvd25cIjpyZXR1cm4gMjI5IT09Yi5rZXlDb2RlO2Nhc2UgXCJrZXlwcmVzc1wiOmNhc2UgXCJtb3VzZWRvd25cIjpjYXNlIFwiZm9jdXNvdXRcIjpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX1mdW5jdGlvbiBoZShhKXthPWEuZGV0YWlsO3JldHVyblwib2JqZWN0XCI9PT10eXBlb2YgYSYmXCJkYXRhXCJpbiBhP2EuZGF0YTpudWxsfXZhciBpZT0hMTtmdW5jdGlvbiBqZShhLGIpe3N3aXRjaChhKXtjYXNlIFwiY29tcG9zaXRpb25lbmRcIjpyZXR1cm4gaGUoYik7Y2FzZSBcImtleXByZXNzXCI6aWYoMzIhPT1iLndoaWNoKXJldHVybiBudWxsO2ZlPSEwO3JldHVybiBlZTtjYXNlIFwidGV4dElucHV0XCI6cmV0dXJuIGE9Yi5kYXRhLGE9PT1lZSYmZmU/bnVsbDphO2RlZmF1bHQ6cmV0dXJuIG51bGx9fVxuZnVuY3Rpb24ga2UoYSxiKXtpZihpZSlyZXR1cm5cImNvbXBvc2l0aW9uZW5kXCI9PT1hfHwhYWUmJmdlKGEsYik/KGE9bmQoKSxtZD1sZD1rZD1udWxsLGllPSExLGEpOm51bGw7c3dpdGNoKGEpe2Nhc2UgXCJwYXN0ZVwiOnJldHVybiBudWxsO2Nhc2UgXCJrZXlwcmVzc1wiOmlmKCEoYi5jdHJsS2V5fHxiLmFsdEtleXx8Yi5tZXRhS2V5KXx8Yi5jdHJsS2V5JiZiLmFsdEtleSl7aWYoYi5jaGFyJiYxPGIuY2hhci5sZW5ndGgpcmV0dXJuIGIuY2hhcjtpZihiLndoaWNoKXJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGIud2hpY2gpfXJldHVybiBudWxsO2Nhc2UgXCJjb21wb3NpdGlvbmVuZFwiOnJldHVybiBkZSYmXCJrb1wiIT09Yi5sb2NhbGU/bnVsbDpiLmRhdGE7ZGVmYXVsdDpyZXR1cm4gbnVsbH19XG52YXIgbGU9e2NvbG9yOiEwLGRhdGU6ITAsZGF0ZXRpbWU6ITAsXCJkYXRldGltZS1sb2NhbFwiOiEwLGVtYWlsOiEwLG1vbnRoOiEwLG51bWJlcjohMCxwYXNzd29yZDohMCxyYW5nZTohMCxzZWFyY2g6ITAsdGVsOiEwLHRleHQ6ITAsdGltZTohMCx1cmw6ITAsd2VlazohMH07ZnVuY3Rpb24gbWUoYSl7dmFyIGI9YSYmYS5ub2RlTmFtZSYmYS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVyblwiaW5wdXRcIj09PWI/ISFsZVthLnR5cGVdOlwidGV4dGFyZWFcIj09PWI/ITA6ITF9ZnVuY3Rpb24gbmUoYSxiLGMsZCl7RWIoZCk7Yj1vZShiLFwib25DaGFuZ2VcIik7MDxiLmxlbmd0aCYmKGM9bmV3IHRkKFwib25DaGFuZ2VcIixcImNoYW5nZVwiLG51bGwsYyxkKSxhLnB1c2goe2V2ZW50OmMsbGlzdGVuZXJzOmJ9KSl9dmFyIHBlPW51bGwscWU9bnVsbDtmdW5jdGlvbiByZShhKXtzZShhLDApfWZ1bmN0aW9uIHRlKGEpe3ZhciBiPXVlKGEpO2lmKFdhKGIpKXJldHVybiBhfVxuZnVuY3Rpb24gdmUoYSxiKXtpZihcImNoYW5nZVwiPT09YSlyZXR1cm4gYn12YXIgd2U9ITE7aWYoZmEpe3ZhciB4ZTtpZihmYSl7dmFyIHllPVwib25pbnB1dFwiaW4gZG9jdW1lbnQ7aWYoIXllKXt2YXIgemU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTt6ZS5zZXRBdHRyaWJ1dGUoXCJvbmlucHV0XCIsXCJyZXR1cm47XCIpO3llPVwiZnVuY3Rpb25cIj09PXR5cGVvZiB6ZS5vbmlucHV0fXhlPXllfWVsc2UgeGU9ITE7d2U9eGUmJighZG9jdW1lbnQuZG9jdW1lbnRNb2RlfHw5PGRvY3VtZW50LmRvY3VtZW50TW9kZSl9ZnVuY3Rpb24gQWUoKXtwZSYmKHBlLmRldGFjaEV2ZW50KFwib25wcm9wZXJ0eWNoYW5nZVwiLEJlKSxxZT1wZT1udWxsKX1mdW5jdGlvbiBCZShhKXtpZihcInZhbHVlXCI9PT1hLnByb3BlcnR5TmFtZSYmdGUocWUpKXt2YXIgYj1bXTtuZShiLHFlLGEseGIoYSkpO2E9cmU7aWYoS2IpYShiKTtlbHNle0tiPSEwO3RyeXtHYihhLGIpfWZpbmFsbHl7S2I9ITEsTWIoKX19fX1cbmZ1bmN0aW9uIENlKGEsYixjKXtcImZvY3VzaW5cIj09PWE/KEFlKCkscGU9YixxZT1jLHBlLmF0dGFjaEV2ZW50KFwib25wcm9wZXJ0eWNoYW5nZVwiLEJlKSk6XCJmb2N1c291dFwiPT09YSYmQWUoKX1mdW5jdGlvbiBEZShhKXtpZihcInNlbGVjdGlvbmNoYW5nZVwiPT09YXx8XCJrZXl1cFwiPT09YXx8XCJrZXlkb3duXCI9PT1hKXJldHVybiB0ZShxZSl9ZnVuY3Rpb24gRWUoYSxiKXtpZihcImNsaWNrXCI9PT1hKXJldHVybiB0ZShiKX1mdW5jdGlvbiBGZShhLGIpe2lmKFwiaW5wdXRcIj09PWF8fFwiY2hhbmdlXCI9PT1hKXJldHVybiB0ZShiKX1mdW5jdGlvbiBHZShhLGIpe3JldHVybiBhPT09YiYmKDAhPT1hfHwxL2E9PT0xL2IpfHxhIT09YSYmYiE9PWJ9dmFyIEhlPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBPYmplY3QuaXM/T2JqZWN0LmlzOkdlLEllPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG5mdW5jdGlvbiBKZShhLGIpe2lmKEhlKGEsYikpcmV0dXJuITA7aWYoXCJvYmplY3RcIiE9PXR5cGVvZiBhfHxudWxsPT09YXx8XCJvYmplY3RcIiE9PXR5cGVvZiBifHxudWxsPT09YilyZXR1cm4hMTt2YXIgYz1PYmplY3Qua2V5cyhhKSxkPU9iamVjdC5rZXlzKGIpO2lmKGMubGVuZ3RoIT09ZC5sZW5ndGgpcmV0dXJuITE7Zm9yKGQ9MDtkPGMubGVuZ3RoO2QrKylpZighSWUuY2FsbChiLGNbZF0pfHwhSGUoYVtjW2RdXSxiW2NbZF1dKSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBLZShhKXtmb3IoO2EmJmEuZmlyc3RDaGlsZDspYT1hLmZpcnN0Q2hpbGQ7cmV0dXJuIGF9XG5mdW5jdGlvbiBMZShhLGIpe3ZhciBjPUtlKGEpO2E9MDtmb3IodmFyIGQ7Yzspe2lmKDM9PT1jLm5vZGVUeXBlKXtkPWErYy50ZXh0Q29udGVudC5sZW5ndGg7aWYoYTw9YiYmZD49YilyZXR1cm57bm9kZTpjLG9mZnNldDpiLWF9O2E9ZH1hOntmb3IoO2M7KXtpZihjLm5leHRTaWJsaW5nKXtjPWMubmV4dFNpYmxpbmc7YnJlYWsgYX1jPWMucGFyZW50Tm9kZX1jPXZvaWQgMH1jPUtlKGMpfX1mdW5jdGlvbiBNZShhLGIpe3JldHVybiBhJiZiP2E9PT1iPyEwOmEmJjM9PT1hLm5vZGVUeXBlPyExOmImJjM9PT1iLm5vZGVUeXBlP01lKGEsYi5wYXJlbnROb2RlKTpcImNvbnRhaW5zXCJpbiBhP2EuY29udGFpbnMoYik6YS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbj8hIShhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGIpJjE2KTohMTohMX1cbmZ1bmN0aW9uIE5lKCl7Zm9yKHZhciBhPXdpbmRvdyxiPVhhKCk7YiBpbnN0YW5jZW9mIGEuSFRNTElGcmFtZUVsZW1lbnQ7KXt0cnl7dmFyIGM9XCJzdHJpbmdcIj09PXR5cGVvZiBiLmNvbnRlbnRXaW5kb3cubG9jYXRpb24uaHJlZn1jYXRjaChkKXtjPSExfWlmKGMpYT1iLmNvbnRlbnRXaW5kb3c7ZWxzZSBicmVhaztiPVhhKGEuZG9jdW1lbnQpfXJldHVybiBifWZ1bmN0aW9uIE9lKGEpe3ZhciBiPWEmJmEubm9kZU5hbWUmJmEubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4gYiYmKFwiaW5wdXRcIj09PWImJihcInRleHRcIj09PWEudHlwZXx8XCJzZWFyY2hcIj09PWEudHlwZXx8XCJ0ZWxcIj09PWEudHlwZXx8XCJ1cmxcIj09PWEudHlwZXx8XCJwYXNzd29yZFwiPT09YS50eXBlKXx8XCJ0ZXh0YXJlYVwiPT09Ynx8XCJ0cnVlXCI9PT1hLmNvbnRlbnRFZGl0YWJsZSl9XG52YXIgUGU9ZmEmJlwiZG9jdW1lbnRNb2RlXCJpbiBkb2N1bWVudCYmMTE+PWRvY3VtZW50LmRvY3VtZW50TW9kZSxRZT1udWxsLFJlPW51bGwsU2U9bnVsbCxUZT0hMTtcbmZ1bmN0aW9uIFVlKGEsYixjKXt2YXIgZD1jLndpbmRvdz09PWM/Yy5kb2N1bWVudDo5PT09Yy5ub2RlVHlwZT9jOmMub3duZXJEb2N1bWVudDtUZXx8bnVsbD09UWV8fFFlIT09WGEoZCl8fChkPVFlLFwic2VsZWN0aW9uU3RhcnRcImluIGQmJk9lKGQpP2Q9e3N0YXJ0OmQuc2VsZWN0aW9uU3RhcnQsZW5kOmQuc2VsZWN0aW9uRW5kfTooZD0oZC5vd25lckRvY3VtZW50JiZkLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXd8fHdpbmRvdykuZ2V0U2VsZWN0aW9uKCksZD17YW5jaG9yTm9kZTpkLmFuY2hvck5vZGUsYW5jaG9yT2Zmc2V0OmQuYW5jaG9yT2Zmc2V0LGZvY3VzTm9kZTpkLmZvY3VzTm9kZSxmb2N1c09mZnNldDpkLmZvY3VzT2Zmc2V0fSksU2UmJkplKFNlLGQpfHwoU2U9ZCxkPW9lKFJlLFwib25TZWxlY3RcIiksMDxkLmxlbmd0aCYmKGI9bmV3IHRkKFwib25TZWxlY3RcIixcInNlbGVjdFwiLG51bGwsYixjKSxhLnB1c2goe2V2ZW50OmIsbGlzdGVuZXJzOmR9KSxiLnRhcmdldD1RZSkpKX1cblBjKFwiY2FuY2VsIGNhbmNlbCBjbGljayBjbGljayBjbG9zZSBjbG9zZSBjb250ZXh0bWVudSBjb250ZXh0TWVudSBjb3B5IGNvcHkgY3V0IGN1dCBhdXhjbGljayBhdXhDbGljayBkYmxjbGljayBkb3VibGVDbGljayBkcmFnZW5kIGRyYWdFbmQgZHJhZ3N0YXJ0IGRyYWdTdGFydCBkcm9wIGRyb3AgZm9jdXNpbiBmb2N1cyBmb2N1c291dCBibHVyIGlucHV0IGlucHV0IGludmFsaWQgaW52YWxpZCBrZXlkb3duIGtleURvd24ga2V5cHJlc3Mga2V5UHJlc3Mga2V5dXAga2V5VXAgbW91c2Vkb3duIG1vdXNlRG93biBtb3VzZXVwIG1vdXNlVXAgcGFzdGUgcGFzdGUgcGF1c2UgcGF1c2UgcGxheSBwbGF5IHBvaW50ZXJjYW5jZWwgcG9pbnRlckNhbmNlbCBwb2ludGVyZG93biBwb2ludGVyRG93biBwb2ludGVydXAgcG9pbnRlclVwIHJhdGVjaGFuZ2UgcmF0ZUNoYW5nZSByZXNldCByZXNldCBzZWVrZWQgc2Vla2VkIHN1Ym1pdCBzdWJtaXQgdG91Y2hjYW5jZWwgdG91Y2hDYW5jZWwgdG91Y2hlbmQgdG91Y2hFbmQgdG91Y2hzdGFydCB0b3VjaFN0YXJ0IHZvbHVtZWNoYW5nZSB2b2x1bWVDaGFuZ2VcIi5zcGxpdChcIiBcIiksXG4wKTtQYyhcImRyYWcgZHJhZyBkcmFnZW50ZXIgZHJhZ0VudGVyIGRyYWdleGl0IGRyYWdFeGl0IGRyYWdsZWF2ZSBkcmFnTGVhdmUgZHJhZ292ZXIgZHJhZ092ZXIgbW91c2Vtb3ZlIG1vdXNlTW92ZSBtb3VzZW91dCBtb3VzZU91dCBtb3VzZW92ZXIgbW91c2VPdmVyIHBvaW50ZXJtb3ZlIHBvaW50ZXJNb3ZlIHBvaW50ZXJvdXQgcG9pbnRlck91dCBwb2ludGVyb3ZlciBwb2ludGVyT3ZlciBzY3JvbGwgc2Nyb2xsIHRvZ2dsZSB0b2dnbGUgdG91Y2htb3ZlIHRvdWNoTW92ZSB3aGVlbCB3aGVlbFwiLnNwbGl0KFwiIFwiKSwxKTtQYyhPYywyKTtmb3IodmFyIFZlPVwiY2hhbmdlIHNlbGVjdGlvbmNoYW5nZSB0ZXh0SW5wdXQgY29tcG9zaXRpb25zdGFydCBjb21wb3NpdGlvbmVuZCBjb21wb3NpdGlvbnVwZGF0ZVwiLnNwbGl0KFwiIFwiKSxXZT0wO1dlPFZlLmxlbmd0aDtXZSsrKU5jLnNldChWZVtXZV0sMCk7ZWEoXCJvbk1vdXNlRW50ZXJcIixbXCJtb3VzZW91dFwiLFwibW91c2VvdmVyXCJdKTtcbmVhKFwib25Nb3VzZUxlYXZlXCIsW1wibW91c2VvdXRcIixcIm1vdXNlb3ZlclwiXSk7ZWEoXCJvblBvaW50ZXJFbnRlclwiLFtcInBvaW50ZXJvdXRcIixcInBvaW50ZXJvdmVyXCJdKTtlYShcIm9uUG9pbnRlckxlYXZlXCIsW1wicG9pbnRlcm91dFwiLFwicG9pbnRlcm92ZXJcIl0pO2RhKFwib25DaGFuZ2VcIixcImNoYW5nZSBjbGljayBmb2N1c2luIGZvY3Vzb3V0IGlucHV0IGtleWRvd24ga2V5dXAgc2VsZWN0aW9uY2hhbmdlXCIuc3BsaXQoXCIgXCIpKTtkYShcIm9uU2VsZWN0XCIsXCJmb2N1c291dCBjb250ZXh0bWVudSBkcmFnZW5kIGZvY3VzaW4ga2V5ZG93biBrZXl1cCBtb3VzZWRvd24gbW91c2V1cCBzZWxlY3Rpb25jaGFuZ2VcIi5zcGxpdChcIiBcIikpO2RhKFwib25CZWZvcmVJbnB1dFwiLFtcImNvbXBvc2l0aW9uZW5kXCIsXCJrZXlwcmVzc1wiLFwidGV4dElucHV0XCIsXCJwYXN0ZVwiXSk7ZGEoXCJvbkNvbXBvc2l0aW9uRW5kXCIsXCJjb21wb3NpdGlvbmVuZCBmb2N1c291dCBrZXlkb3duIGtleXByZXNzIGtleXVwIG1vdXNlZG93blwiLnNwbGl0KFwiIFwiKSk7XG5kYShcIm9uQ29tcG9zaXRpb25TdGFydFwiLFwiY29tcG9zaXRpb25zdGFydCBmb2N1c291dCBrZXlkb3duIGtleXByZXNzIGtleXVwIG1vdXNlZG93blwiLnNwbGl0KFwiIFwiKSk7ZGEoXCJvbkNvbXBvc2l0aW9uVXBkYXRlXCIsXCJjb21wb3NpdGlvbnVwZGF0ZSBmb2N1c291dCBrZXlkb3duIGtleXByZXNzIGtleXVwIG1vdXNlZG93blwiLnNwbGl0KFwiIFwiKSk7dmFyIFhlPVwiYWJvcnQgY2FucGxheSBjYW5wbGF5dGhyb3VnaCBkdXJhdGlvbmNoYW5nZSBlbXB0aWVkIGVuY3J5cHRlZCBlbmRlZCBlcnJvciBsb2FkZWRkYXRhIGxvYWRlZG1ldGFkYXRhIGxvYWRzdGFydCBwYXVzZSBwbGF5IHBsYXlpbmcgcHJvZ3Jlc3MgcmF0ZWNoYW5nZSBzZWVrZWQgc2Vla2luZyBzdGFsbGVkIHN1c3BlbmQgdGltZXVwZGF0ZSB2b2x1bWVjaGFuZ2Ugd2FpdGluZ1wiLnNwbGl0KFwiIFwiKSxZZT1uZXcgU2V0KFwiY2FuY2VsIGNsb3NlIGludmFsaWQgbG9hZCBzY3JvbGwgdG9nZ2xlXCIuc3BsaXQoXCIgXCIpLmNvbmNhdChYZSkpO1xuZnVuY3Rpb24gWmUoYSxiLGMpe3ZhciBkPWEudHlwZXx8XCJ1bmtub3duLWV2ZW50XCI7YS5jdXJyZW50VGFyZ2V0PWM7WWIoZCxiLHZvaWQgMCxhKTthLmN1cnJlbnRUYXJnZXQ9bnVsbH1cbmZ1bmN0aW9uIHNlKGEsYil7Yj0wIT09KGImNCk7Zm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspe3ZhciBkPWFbY10sZT1kLmV2ZW50O2Q9ZC5saXN0ZW5lcnM7YTp7dmFyIGY9dm9pZCAwO2lmKGIpZm9yKHZhciBnPWQubGVuZ3RoLTE7MDw9ZztnLS0pe3ZhciBoPWRbZ10saz1oLmluc3RhbmNlLGw9aC5jdXJyZW50VGFyZ2V0O2g9aC5saXN0ZW5lcjtpZihrIT09ZiYmZS5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpKWJyZWFrIGE7WmUoZSxoLGwpO2Y9a31lbHNlIGZvcihnPTA7ZzxkLmxlbmd0aDtnKyspe2g9ZFtnXTtrPWguaW5zdGFuY2U7bD1oLmN1cnJlbnRUYXJnZXQ7aD1oLmxpc3RlbmVyO2lmKGshPT1mJiZlLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpYnJlYWsgYTtaZShlLGgsbCk7Zj1rfX19aWYoVWIpdGhyb3cgYT1WYixVYj0hMSxWYj1udWxsLGE7fVxuZnVuY3Rpb24gRyhhLGIpe3ZhciBjPSRlKGIpLGQ9YStcIl9fYnViYmxlXCI7Yy5oYXMoZCl8fChhZihiLGEsMiwhMSksYy5hZGQoZCkpfXZhciBiZj1cIl9yZWFjdExpc3RlbmluZ1wiK01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIpO2Z1bmN0aW9uIGNmKGEpe2FbYmZdfHwoYVtiZl09ITAsYmEuZm9yRWFjaChmdW5jdGlvbihiKXtZZS5oYXMoYil8fGRmKGIsITEsYSxudWxsKTtkZihiLCEwLGEsbnVsbCl9KSl9XG5mdW5jdGlvbiBkZihhLGIsYyxkKXt2YXIgZT00PGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1s0XT9hcmd1bWVudHNbNF06MCxmPWM7XCJzZWxlY3Rpb25jaGFuZ2VcIj09PWEmJjkhPT1jLm5vZGVUeXBlJiYoZj1jLm93bmVyRG9jdW1lbnQpO2lmKG51bGwhPT1kJiYhYiYmWWUuaGFzKGEpKXtpZihcInNjcm9sbFwiIT09YSlyZXR1cm47ZXw9MjtmPWR9dmFyIGc9JGUoZiksaD1hK1wiX19cIisoYj9cImNhcHR1cmVcIjpcImJ1YmJsZVwiKTtnLmhhcyhoKXx8KGImJihlfD00KSxhZihmLGEsZSxiKSxnLmFkZChoKSl9XG5mdW5jdGlvbiBhZihhLGIsYyxkKXt2YXIgZT1OYy5nZXQoYik7c3dpdGNoKHZvaWQgMD09PWU/MjplKXtjYXNlIDA6ZT1nZDticmVhaztjYXNlIDE6ZT1pZDticmVhaztkZWZhdWx0OmU9aGR9Yz1lLmJpbmQobnVsbCxiLGMsYSk7ZT12b2lkIDA7IVBifHxcInRvdWNoc3RhcnRcIiE9PWImJlwidG91Y2htb3ZlXCIhPT1iJiZcIndoZWVsXCIhPT1ifHwoZT0hMCk7ZD92b2lkIDAhPT1lP2EuYWRkRXZlbnRMaXN0ZW5lcihiLGMse2NhcHR1cmU6ITAscGFzc2l2ZTplfSk6YS5hZGRFdmVudExpc3RlbmVyKGIsYywhMCk6dm9pZCAwIT09ZT9hLmFkZEV2ZW50TGlzdGVuZXIoYixjLHtwYXNzaXZlOmV9KTphLmFkZEV2ZW50TGlzdGVuZXIoYixjLCExKX1cbmZ1bmN0aW9uIGpkKGEsYixjLGQsZSl7dmFyIGY9ZDtpZigwPT09KGImMSkmJjA9PT0oYiYyKSYmbnVsbCE9PWQpYTpmb3IoOzspe2lmKG51bGw9PT1kKXJldHVybjt2YXIgZz1kLnRhZztpZigzPT09Z3x8ND09PWcpe3ZhciBoPWQuc3RhdGVOb2RlLmNvbnRhaW5lckluZm87aWYoaD09PWV8fDg9PT1oLm5vZGVUeXBlJiZoLnBhcmVudE5vZGU9PT1lKWJyZWFrO2lmKDQ9PT1nKWZvcihnPWQucmV0dXJuO251bGwhPT1nOyl7dmFyIGs9Zy50YWc7aWYoMz09PWt8fDQ9PT1rKWlmKGs9Zy5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyxrPT09ZXx8OD09PWsubm9kZVR5cGUmJmsucGFyZW50Tm9kZT09PWUpcmV0dXJuO2c9Zy5yZXR1cm59Zm9yKDtudWxsIT09aDspe2c9d2MoaCk7aWYobnVsbD09PWcpcmV0dXJuO2s9Zy50YWc7aWYoNT09PWt8fDY9PT1rKXtkPWY9Zztjb250aW51ZSBhfWg9aC5wYXJlbnROb2RlfX1kPWQucmV0dXJufU5iKGZ1bmN0aW9uKCl7dmFyIGQ9ZixlPXhiKGMpLGc9W107XG5hOnt2YXIgaD1NYy5nZXQoYSk7aWYodm9pZCAwIT09aCl7dmFyIGs9dGQseD1hO3N3aXRjaChhKXtjYXNlIFwia2V5cHJlc3NcIjppZigwPT09b2QoYykpYnJlYWsgYTtjYXNlIFwia2V5ZG93blwiOmNhc2UgXCJrZXl1cFwiOms9UmQ7YnJlYWs7Y2FzZSBcImZvY3VzaW5cIjp4PVwiZm9jdXNcIjtrPUZkO2JyZWFrO2Nhc2UgXCJmb2N1c291dFwiOng9XCJibHVyXCI7az1GZDticmVhaztjYXNlIFwiYmVmb3JlYmx1clwiOmNhc2UgXCJhZnRlcmJsdXJcIjprPUZkO2JyZWFrO2Nhc2UgXCJjbGlja1wiOmlmKDI9PT1jLmJ1dHRvbilicmVhayBhO2Nhc2UgXCJhdXhjbGlja1wiOmNhc2UgXCJkYmxjbGlja1wiOmNhc2UgXCJtb3VzZWRvd25cIjpjYXNlIFwibW91c2Vtb3ZlXCI6Y2FzZSBcIm1vdXNldXBcIjpjYXNlIFwibW91c2VvdXRcIjpjYXNlIFwibW91c2VvdmVyXCI6Y2FzZSBcImNvbnRleHRtZW51XCI6az1CZDticmVhaztjYXNlIFwiZHJhZ1wiOmNhc2UgXCJkcmFnZW5kXCI6Y2FzZSBcImRyYWdlbnRlclwiOmNhc2UgXCJkcmFnZXhpdFwiOmNhc2UgXCJkcmFnbGVhdmVcIjpjYXNlIFwiZHJhZ292ZXJcIjpjYXNlIFwiZHJhZ3N0YXJ0XCI6Y2FzZSBcImRyb3BcIjprPVxuRGQ7YnJlYWs7Y2FzZSBcInRvdWNoY2FuY2VsXCI6Y2FzZSBcInRvdWNoZW5kXCI6Y2FzZSBcInRvdWNobW92ZVwiOmNhc2UgXCJ0b3VjaHN0YXJ0XCI6az1WZDticmVhaztjYXNlIEljOmNhc2UgSmM6Y2FzZSBLYzprPUhkO2JyZWFrO2Nhc2UgTGM6az1YZDticmVhaztjYXNlIFwic2Nyb2xsXCI6az12ZDticmVhaztjYXNlIFwid2hlZWxcIjprPVpkO2JyZWFrO2Nhc2UgXCJjb3B5XCI6Y2FzZSBcImN1dFwiOmNhc2UgXCJwYXN0ZVwiOms9SmQ7YnJlYWs7Y2FzZSBcImdvdHBvaW50ZXJjYXB0dXJlXCI6Y2FzZSBcImxvc3Rwb2ludGVyY2FwdHVyZVwiOmNhc2UgXCJwb2ludGVyY2FuY2VsXCI6Y2FzZSBcInBvaW50ZXJkb3duXCI6Y2FzZSBcInBvaW50ZXJtb3ZlXCI6Y2FzZSBcInBvaW50ZXJvdXRcIjpjYXNlIFwicG9pbnRlcm92ZXJcIjpjYXNlIFwicG9pbnRlcnVwXCI6az1UZH12YXIgdz0wIT09KGImNCksej0hdyYmXCJzY3JvbGxcIj09PWEsdT13P251bGwhPT1oP2grXCJDYXB0dXJlXCI6bnVsbDpoO3c9W107Zm9yKHZhciB0PWQscTtudWxsIT09XG50Oyl7cT10O3ZhciB2PXEuc3RhdGVOb2RlOzU9PT1xLnRhZyYmbnVsbCE9PXYmJihxPXYsbnVsbCE9PXUmJih2PU9iKHQsdSksbnVsbCE9diYmdy5wdXNoKGVmKHQsdixxKSkpKTtpZih6KWJyZWFrO3Q9dC5yZXR1cm59MDx3Lmxlbmd0aCYmKGg9bmV3IGsoaCx4LG51bGwsYyxlKSxnLnB1c2goe2V2ZW50OmgsbGlzdGVuZXJzOnd9KSl9fWlmKDA9PT0oYiY3KSl7YTp7aD1cIm1vdXNlb3ZlclwiPT09YXx8XCJwb2ludGVyb3ZlclwiPT09YTtrPVwibW91c2VvdXRcIj09PWF8fFwicG9pbnRlcm91dFwiPT09YTtpZihoJiYwPT09KGImMTYpJiYoeD1jLnJlbGF0ZWRUYXJnZXR8fGMuZnJvbUVsZW1lbnQpJiYod2MoeCl8fHhbZmZdKSlicmVhayBhO2lmKGt8fGgpe2g9ZS53aW5kb3c9PT1lP2U6KGg9ZS5vd25lckRvY3VtZW50KT9oLmRlZmF1bHRWaWV3fHxoLnBhcmVudFdpbmRvdzp3aW5kb3c7aWYoayl7aWYoeD1jLnJlbGF0ZWRUYXJnZXR8fGMudG9FbGVtZW50LGs9ZCx4PXg/d2MoeCk6bnVsbCxudWxsIT09XG54JiYoej1aYih4KSx4IT09enx8NSE9PXgudGFnJiY2IT09eC50YWcpKXg9bnVsbH1lbHNlIGs9bnVsbCx4PWQ7aWYoayE9PXgpe3c9QmQ7dj1cIm9uTW91c2VMZWF2ZVwiO3U9XCJvbk1vdXNlRW50ZXJcIjt0PVwibW91c2VcIjtpZihcInBvaW50ZXJvdXRcIj09PWF8fFwicG9pbnRlcm92ZXJcIj09PWEpdz1UZCx2PVwib25Qb2ludGVyTGVhdmVcIix1PVwib25Qb2ludGVyRW50ZXJcIix0PVwicG9pbnRlclwiO3o9bnVsbD09az9oOnVlKGspO3E9bnVsbD09eD9oOnVlKHgpO2g9bmV3IHcodix0K1wibGVhdmVcIixrLGMsZSk7aC50YXJnZXQ9ejtoLnJlbGF0ZWRUYXJnZXQ9cTt2PW51bGw7d2MoZSk9PT1kJiYodz1uZXcgdyh1LHQrXCJlbnRlclwiLHgsYyxlKSx3LnRhcmdldD1xLHcucmVsYXRlZFRhcmdldD16LHY9dyk7ej12O2lmKGsmJngpYjp7dz1rO3U9eDt0PTA7Zm9yKHE9dztxO3E9Z2YocSkpdCsrO3E9MDtmb3Iodj11O3Y7dj1nZih2KSlxKys7Zm9yKDswPHQtcTspdz1nZih3KSx0LS07Zm9yKDswPHEtdDspdT1cbmdmKHUpLHEtLTtmb3IoO3QtLTspe2lmKHc9PT11fHxudWxsIT09dSYmdz09PXUuYWx0ZXJuYXRlKWJyZWFrIGI7dz1nZih3KTt1PWdmKHUpfXc9bnVsbH1lbHNlIHc9bnVsbDtudWxsIT09ayYmaGYoZyxoLGssdywhMSk7bnVsbCE9PXgmJm51bGwhPT16JiZoZihnLHoseCx3LCEwKX19fWE6e2g9ZD91ZShkKTp3aW5kb3c7az1oLm5vZGVOYW1lJiZoLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7aWYoXCJzZWxlY3RcIj09PWt8fFwiaW5wdXRcIj09PWsmJlwiZmlsZVwiPT09aC50eXBlKXZhciBKPXZlO2Vsc2UgaWYobWUoaCkpaWYod2UpSj1GZTtlbHNle0o9RGU7dmFyIEs9Q2V9ZWxzZShrPWgubm9kZU5hbWUpJiZcImlucHV0XCI9PT1rLnRvTG93ZXJDYXNlKCkmJihcImNoZWNrYm94XCI9PT1oLnR5cGV8fFwicmFkaW9cIj09PWgudHlwZSkmJihKPUVlKTtpZihKJiYoSj1KKGEsZCkpKXtuZShnLEosYyxlKTticmVhayBhfUsmJksoYSxoLGQpO1wiZm9jdXNvdXRcIj09PWEmJihLPWguX3dyYXBwZXJTdGF0ZSkmJlxuSy5jb250cm9sbGVkJiZcIm51bWJlclwiPT09aC50eXBlJiZiYihoLFwibnVtYmVyXCIsaC52YWx1ZSl9Sz1kP3VlKGQpOndpbmRvdztzd2l0Y2goYSl7Y2FzZSBcImZvY3VzaW5cIjppZihtZShLKXx8XCJ0cnVlXCI9PT1LLmNvbnRlbnRFZGl0YWJsZSlRZT1LLFJlPWQsU2U9bnVsbDticmVhaztjYXNlIFwiZm9jdXNvdXRcIjpTZT1SZT1RZT1udWxsO2JyZWFrO2Nhc2UgXCJtb3VzZWRvd25cIjpUZT0hMDticmVhaztjYXNlIFwiY29udGV4dG1lbnVcIjpjYXNlIFwibW91c2V1cFwiOmNhc2UgXCJkcmFnZW5kXCI6VGU9ITE7VWUoZyxjLGUpO2JyZWFrO2Nhc2UgXCJzZWxlY3Rpb25jaGFuZ2VcIjppZihQZSlicmVhaztjYXNlIFwia2V5ZG93blwiOmNhc2UgXCJrZXl1cFwiOlVlKGcsYyxlKX12YXIgUTtpZihhZSliOntzd2l0Y2goYSl7Y2FzZSBcImNvbXBvc2l0aW9uc3RhcnRcIjp2YXIgTD1cIm9uQ29tcG9zaXRpb25TdGFydFwiO2JyZWFrIGI7Y2FzZSBcImNvbXBvc2l0aW9uZW5kXCI6TD1cIm9uQ29tcG9zaXRpb25FbmRcIjticmVhayBiO1xuY2FzZSBcImNvbXBvc2l0aW9udXBkYXRlXCI6TD1cIm9uQ29tcG9zaXRpb25VcGRhdGVcIjticmVhayBifUw9dm9pZCAwfWVsc2UgaWU/Z2UoYSxjKSYmKEw9XCJvbkNvbXBvc2l0aW9uRW5kXCIpOlwia2V5ZG93blwiPT09YSYmMjI5PT09Yy5rZXlDb2RlJiYoTD1cIm9uQ29tcG9zaXRpb25TdGFydFwiKTtMJiYoZGUmJlwia29cIiE9PWMubG9jYWxlJiYoaWV8fFwib25Db21wb3NpdGlvblN0YXJ0XCIhPT1MP1wib25Db21wb3NpdGlvbkVuZFwiPT09TCYmaWUmJihRPW5kKCkpOihrZD1lLGxkPVwidmFsdWVcImluIGtkP2tkLnZhbHVlOmtkLnRleHRDb250ZW50LGllPSEwKSksSz1vZShkLEwpLDA8Sy5sZW5ndGgmJihMPW5ldyBMZChMLGEsbnVsbCxjLGUpLGcucHVzaCh7ZXZlbnQ6TCxsaXN0ZW5lcnM6S30pLFE/TC5kYXRhPVE6KFE9aGUoYyksbnVsbCE9PVEmJihMLmRhdGE9USkpKSk7aWYoUT1jZT9qZShhLGMpOmtlKGEsYykpZD1vZShkLFwib25CZWZvcmVJbnB1dFwiKSwwPGQubGVuZ3RoJiYoZT1uZXcgTGQoXCJvbkJlZm9yZUlucHV0XCIsXG5cImJlZm9yZWlucHV0XCIsbnVsbCxjLGUpLGcucHVzaCh7ZXZlbnQ6ZSxsaXN0ZW5lcnM6ZH0pLGUuZGF0YT1RKX1zZShnLGIpfSl9ZnVuY3Rpb24gZWYoYSxiLGMpe3JldHVybntpbnN0YW5jZTphLGxpc3RlbmVyOmIsY3VycmVudFRhcmdldDpjfX1mdW5jdGlvbiBvZShhLGIpe2Zvcih2YXIgYz1iK1wiQ2FwdHVyZVwiLGQ9W107bnVsbCE9PWE7KXt2YXIgZT1hLGY9ZS5zdGF0ZU5vZGU7NT09PWUudGFnJiZudWxsIT09ZiYmKGU9ZixmPU9iKGEsYyksbnVsbCE9ZiYmZC51bnNoaWZ0KGVmKGEsZixlKSksZj1PYihhLGIpLG51bGwhPWYmJmQucHVzaChlZihhLGYsZSkpKTthPWEucmV0dXJufXJldHVybiBkfWZ1bmN0aW9uIGdmKGEpe2lmKG51bGw9PT1hKXJldHVybiBudWxsO2RvIGE9YS5yZXR1cm47d2hpbGUoYSYmNSE9PWEudGFnKTtyZXR1cm4gYT9hOm51bGx9XG5mdW5jdGlvbiBoZihhLGIsYyxkLGUpe2Zvcih2YXIgZj1iLl9yZWFjdE5hbWUsZz1bXTtudWxsIT09YyYmYyE9PWQ7KXt2YXIgaD1jLGs9aC5hbHRlcm5hdGUsbD1oLnN0YXRlTm9kZTtpZihudWxsIT09ayYmaz09PWQpYnJlYWs7NT09PWgudGFnJiZudWxsIT09bCYmKGg9bCxlPyhrPU9iKGMsZiksbnVsbCE9ayYmZy51bnNoaWZ0KGVmKGMsayxoKSkpOmV8fChrPU9iKGMsZiksbnVsbCE9ayYmZy5wdXNoKGVmKGMsayxoKSkpKTtjPWMucmV0dXJufTAhPT1nLmxlbmd0aCYmYS5wdXNoKHtldmVudDpiLGxpc3RlbmVyczpnfSl9ZnVuY3Rpb24gamYoKXt9dmFyIGtmPW51bGwsbGY9bnVsbDtmdW5jdGlvbiBtZihhLGIpe3N3aXRjaChhKXtjYXNlIFwiYnV0dG9uXCI6Y2FzZSBcImlucHV0XCI6Y2FzZSBcInNlbGVjdFwiOmNhc2UgXCJ0ZXh0YXJlYVwiOnJldHVybiEhYi5hdXRvRm9jdXN9cmV0dXJuITF9XG5mdW5jdGlvbiBuZihhLGIpe3JldHVyblwidGV4dGFyZWFcIj09PWF8fFwib3B0aW9uXCI9PT1hfHxcIm5vc2NyaXB0XCI9PT1hfHxcInN0cmluZ1wiPT09dHlwZW9mIGIuY2hpbGRyZW58fFwibnVtYmVyXCI9PT10eXBlb2YgYi5jaGlsZHJlbnx8XCJvYmplY3RcIj09PXR5cGVvZiBiLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MJiZudWxsIT09Yi5kYW5nZXJvdXNseVNldElubmVySFRNTCYmbnVsbCE9Yi5kYW5nZXJvdXNseVNldElubmVySFRNTC5fX2h0bWx9dmFyIG9mPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBzZXRUaW1lb3V0P3NldFRpbWVvdXQ6dm9pZCAwLHBmPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBjbGVhclRpbWVvdXQ/Y2xlYXJUaW1lb3V0OnZvaWQgMDtmdW5jdGlvbiBxZihhKXsxPT09YS5ub2RlVHlwZT9hLnRleHRDb250ZW50PVwiXCI6OT09PWEubm9kZVR5cGUmJihhPWEuYm9keSxudWxsIT1hJiYoYS50ZXh0Q29udGVudD1cIlwiKSl9XG5mdW5jdGlvbiByZihhKXtmb3IoO251bGwhPWE7YT1hLm5leHRTaWJsaW5nKXt2YXIgYj1hLm5vZGVUeXBlO2lmKDE9PT1ifHwzPT09YilicmVha31yZXR1cm4gYX1mdW5jdGlvbiBzZihhKXthPWEucHJldmlvdXNTaWJsaW5nO2Zvcih2YXIgYj0wO2E7KXtpZig4PT09YS5ub2RlVHlwZSl7dmFyIGM9YS5kYXRhO2lmKFwiJFwiPT09Y3x8XCIkIVwiPT09Y3x8XCIkP1wiPT09Yyl7aWYoMD09PWIpcmV0dXJuIGE7Yi0tfWVsc2VcIi8kXCI9PT1jJiZiKyt9YT1hLnByZXZpb3VzU2libGluZ31yZXR1cm4gbnVsbH12YXIgdGY9MDtmdW5jdGlvbiB1ZihhKXtyZXR1cm57JCR0eXBlb2Y6R2EsdG9TdHJpbmc6YSx2YWx1ZU9mOmF9fXZhciB2Zj1NYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyKSx3Zj1cIl9fcmVhY3RGaWJlciRcIit2Zix4Zj1cIl9fcmVhY3RQcm9wcyRcIit2ZixmZj1cIl9fcmVhY3RDb250YWluZXIkXCIrdmYseWY9XCJfX3JlYWN0RXZlbnRzJFwiK3ZmO1xuZnVuY3Rpb24gd2MoYSl7dmFyIGI9YVt3Zl07aWYoYilyZXR1cm4gYjtmb3IodmFyIGM9YS5wYXJlbnROb2RlO2M7KXtpZihiPWNbZmZdfHxjW3dmXSl7Yz1iLmFsdGVybmF0ZTtpZihudWxsIT09Yi5jaGlsZHx8bnVsbCE9PWMmJm51bGwhPT1jLmNoaWxkKWZvcihhPXNmKGEpO251bGwhPT1hOyl7aWYoYz1hW3dmXSlyZXR1cm4gYzthPXNmKGEpfXJldHVybiBifWE9YztjPWEucGFyZW50Tm9kZX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBDYihhKXthPWFbd2ZdfHxhW2ZmXTtyZXR1cm4hYXx8NSE9PWEudGFnJiY2IT09YS50YWcmJjEzIT09YS50YWcmJjMhPT1hLnRhZz9udWxsOmF9ZnVuY3Rpb24gdWUoYSl7aWYoNT09PWEudGFnfHw2PT09YS50YWcpcmV0dXJuIGEuc3RhdGVOb2RlO3Rocm93IEVycm9yKHkoMzMpKTt9ZnVuY3Rpb24gRGIoYSl7cmV0dXJuIGFbeGZdfHxudWxsfVxuZnVuY3Rpb24gJGUoYSl7dmFyIGI9YVt5Zl07dm9pZCAwPT09YiYmKGI9YVt5Zl09bmV3IFNldCk7cmV0dXJuIGJ9dmFyIHpmPVtdLEFmPS0xO2Z1bmN0aW9uIEJmKGEpe3JldHVybntjdXJyZW50OmF9fWZ1bmN0aW9uIEgoYSl7MD5BZnx8KGEuY3VycmVudD16ZltBZl0semZbQWZdPW51bGwsQWYtLSl9ZnVuY3Rpb24gSShhLGIpe0FmKys7emZbQWZdPWEuY3VycmVudDthLmN1cnJlbnQ9Yn12YXIgQ2Y9e30sTT1CZihDZiksTj1CZighMSksRGY9Q2Y7XG5mdW5jdGlvbiBFZihhLGIpe3ZhciBjPWEudHlwZS5jb250ZXh0VHlwZXM7aWYoIWMpcmV0dXJuIENmO3ZhciBkPWEuc3RhdGVOb2RlO2lmKGQmJmQuX19yZWFjdEludGVybmFsTWVtb2l6ZWRVbm1hc2tlZENoaWxkQ29udGV4dD09PWIpcmV0dXJuIGQuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNYXNrZWRDaGlsZENvbnRleHQ7dmFyIGU9e30sZjtmb3IoZiBpbiBjKWVbZl09YltmXTtkJiYoYT1hLnN0YXRlTm9kZSxhLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkVW5tYXNrZWRDaGlsZENvbnRleHQ9YixhLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWFza2VkQ2hpbGRDb250ZXh0PWUpO3JldHVybiBlfWZ1bmN0aW9uIEZmKGEpe2E9YS5jaGlsZENvbnRleHRUeXBlcztyZXR1cm4gbnVsbCE9PWEmJnZvaWQgMCE9PWF9ZnVuY3Rpb24gR2YoKXtIKE4pO0goTSl9ZnVuY3Rpb24gSGYoYSxiLGMpe2lmKE0uY3VycmVudCE9PUNmKXRocm93IEVycm9yKHkoMTY4KSk7SShNLGIpO0koTixjKX1cbmZ1bmN0aW9uIElmKGEsYixjKXt2YXIgZD1hLnN0YXRlTm9kZTthPWIuY2hpbGRDb250ZXh0VHlwZXM7aWYoXCJmdW5jdGlvblwiIT09dHlwZW9mIGQuZ2V0Q2hpbGRDb250ZXh0KXJldHVybiBjO2Q9ZC5nZXRDaGlsZENvbnRleHQoKTtmb3IodmFyIGUgaW4gZClpZighKGUgaW4gYSkpdGhyb3cgRXJyb3IoeSgxMDgsUmEoYil8fFwiVW5rbm93blwiLGUpKTtyZXR1cm4gbSh7fSxjLGQpfWZ1bmN0aW9uIEpmKGEpe2E9KGE9YS5zdGF0ZU5vZGUpJiZhLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWVyZ2VkQ2hpbGRDb250ZXh0fHxDZjtEZj1NLmN1cnJlbnQ7SShNLGEpO0koTixOLmN1cnJlbnQpO3JldHVybiEwfWZ1bmN0aW9uIEtmKGEsYixjKXt2YXIgZD1hLnN0YXRlTm9kZTtpZighZCl0aHJvdyBFcnJvcih5KDE2OSkpO2M/KGE9SWYoYSxiLERmKSxkLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWVyZ2VkQ2hpbGRDb250ZXh0PWEsSChOKSxIKE0pLEkoTSxhKSk6SChOKTtJKE4sYyl9XG52YXIgTGY9bnVsbCxNZj1udWxsLE5mPXIudW5zdGFibGVfcnVuV2l0aFByaW9yaXR5LE9mPXIudW5zdGFibGVfc2NoZWR1bGVDYWxsYmFjayxQZj1yLnVuc3RhYmxlX2NhbmNlbENhbGxiYWNrLFFmPXIudW5zdGFibGVfc2hvdWxkWWllbGQsUmY9ci51bnN0YWJsZV9yZXF1ZXN0UGFpbnQsU2Y9ci51bnN0YWJsZV9ub3csVGY9ci51bnN0YWJsZV9nZXRDdXJyZW50UHJpb3JpdHlMZXZlbCxVZj1yLnVuc3RhYmxlX0ltbWVkaWF0ZVByaW9yaXR5LFZmPXIudW5zdGFibGVfVXNlckJsb2NraW5nUHJpb3JpdHksV2Y9ci51bnN0YWJsZV9Ob3JtYWxQcmlvcml0eSxYZj1yLnVuc3RhYmxlX0xvd1ByaW9yaXR5LFlmPXIudW5zdGFibGVfSWRsZVByaW9yaXR5LFpmPXt9LCRmPXZvaWQgMCE9PVJmP1JmOmZ1bmN0aW9uKCl7fSxhZz1udWxsLGJnPW51bGwsY2c9ITEsZGc9U2YoKSxPPTFFND5kZz9TZjpmdW5jdGlvbigpe3JldHVybiBTZigpLWRnfTtcbmZ1bmN0aW9uIGVnKCl7c3dpdGNoKFRmKCkpe2Nhc2UgVWY6cmV0dXJuIDk5O2Nhc2UgVmY6cmV0dXJuIDk4O2Nhc2UgV2Y6cmV0dXJuIDk3O2Nhc2UgWGY6cmV0dXJuIDk2O2Nhc2UgWWY6cmV0dXJuIDk1O2RlZmF1bHQ6dGhyb3cgRXJyb3IoeSgzMzIpKTt9fWZ1bmN0aW9uIGZnKGEpe3N3aXRjaChhKXtjYXNlIDk5OnJldHVybiBVZjtjYXNlIDk4OnJldHVybiBWZjtjYXNlIDk3OnJldHVybiBXZjtjYXNlIDk2OnJldHVybiBYZjtjYXNlIDk1OnJldHVybiBZZjtkZWZhdWx0OnRocm93IEVycm9yKHkoMzMyKSk7fX1mdW5jdGlvbiBnZyhhLGIpe2E9ZmcoYSk7cmV0dXJuIE5mKGEsYil9ZnVuY3Rpb24gaGcoYSxiLGMpe2E9ZmcoYSk7cmV0dXJuIE9mKGEsYixjKX1mdW5jdGlvbiBpZygpe2lmKG51bGwhPT1iZyl7dmFyIGE9Ymc7Ymc9bnVsbDtQZihhKX1qZygpfVxuZnVuY3Rpb24gamcoKXtpZighY2cmJm51bGwhPT1hZyl7Y2c9ITA7dmFyIGE9MDt0cnl7dmFyIGI9YWc7Z2coOTksZnVuY3Rpb24oKXtmb3IoO2E8Yi5sZW5ndGg7YSsrKXt2YXIgYz1iW2FdO2RvIGM9YyghMCk7d2hpbGUobnVsbCE9PWMpfX0pO2FnPW51bGx9Y2F0Y2goYyl7dGhyb3cgbnVsbCE9PWFnJiYoYWc9YWcuc2xpY2UoYSsxKSksT2YoVWYsaWcpLGM7fWZpbmFsbHl7Y2c9ITF9fX12YXIga2c9cmEuUmVhY3RDdXJyZW50QmF0Y2hDb25maWc7ZnVuY3Rpb24gbGcoYSxiKXtpZihhJiZhLmRlZmF1bHRQcm9wcyl7Yj1tKHt9LGIpO2E9YS5kZWZhdWx0UHJvcHM7Zm9yKHZhciBjIGluIGEpdm9pZCAwPT09YltjXSYmKGJbY109YVtjXSk7cmV0dXJuIGJ9cmV0dXJuIGJ9dmFyIG1nPUJmKG51bGwpLG5nPW51bGwsb2c9bnVsbCxwZz1udWxsO2Z1bmN0aW9uIHFnKCl7cGc9b2c9bmc9bnVsbH1cbmZ1bmN0aW9uIHJnKGEpe3ZhciBiPW1nLmN1cnJlbnQ7SChtZyk7YS50eXBlLl9jb250ZXh0Ll9jdXJyZW50VmFsdWU9Yn1mdW5jdGlvbiBzZyhhLGIpe2Zvcig7bnVsbCE9PWE7KXt2YXIgYz1hLmFsdGVybmF0ZTtpZigoYS5jaGlsZExhbmVzJmIpPT09YilpZihudWxsPT09Y3x8KGMuY2hpbGRMYW5lcyZiKT09PWIpYnJlYWs7ZWxzZSBjLmNoaWxkTGFuZXN8PWI7ZWxzZSBhLmNoaWxkTGFuZXN8PWIsbnVsbCE9PWMmJihjLmNoaWxkTGFuZXN8PWIpO2E9YS5yZXR1cm59fWZ1bmN0aW9uIHRnKGEsYil7bmc9YTtwZz1vZz1udWxsO2E9YS5kZXBlbmRlbmNpZXM7bnVsbCE9PWEmJm51bGwhPT1hLmZpcnN0Q29udGV4dCYmKDAhPT0oYS5sYW5lcyZiKSYmKHVnPSEwKSxhLmZpcnN0Q29udGV4dD1udWxsKX1cbmZ1bmN0aW9uIHZnKGEsYil7aWYocGchPT1hJiYhMSE9PWImJjAhPT1iKXtpZihcIm51bWJlclwiIT09dHlwZW9mIGJ8fDEwNzM3NDE4MjM9PT1iKXBnPWEsYj0xMDczNzQxODIzO2I9e2NvbnRleHQ6YSxvYnNlcnZlZEJpdHM6YixuZXh0Om51bGx9O2lmKG51bGw9PT1vZyl7aWYobnVsbD09PW5nKXRocm93IEVycm9yKHkoMzA4KSk7b2c9YjtuZy5kZXBlbmRlbmNpZXM9e2xhbmVzOjAsZmlyc3RDb250ZXh0OmIscmVzcG9uZGVyczpudWxsfX1lbHNlIG9nPW9nLm5leHQ9Yn1yZXR1cm4gYS5fY3VycmVudFZhbHVlfXZhciB3Zz0hMTtmdW5jdGlvbiB4ZyhhKXthLnVwZGF0ZVF1ZXVlPXtiYXNlU3RhdGU6YS5tZW1vaXplZFN0YXRlLGZpcnN0QmFzZVVwZGF0ZTpudWxsLGxhc3RCYXNlVXBkYXRlOm51bGwsc2hhcmVkOntwZW5kaW5nOm51bGx9LGVmZmVjdHM6bnVsbH19XG5mdW5jdGlvbiB5ZyhhLGIpe2E9YS51cGRhdGVRdWV1ZTtiLnVwZGF0ZVF1ZXVlPT09YSYmKGIudXBkYXRlUXVldWU9e2Jhc2VTdGF0ZTphLmJhc2VTdGF0ZSxmaXJzdEJhc2VVcGRhdGU6YS5maXJzdEJhc2VVcGRhdGUsbGFzdEJhc2VVcGRhdGU6YS5sYXN0QmFzZVVwZGF0ZSxzaGFyZWQ6YS5zaGFyZWQsZWZmZWN0czphLmVmZmVjdHN9KX1mdW5jdGlvbiB6ZyhhLGIpe3JldHVybntldmVudFRpbWU6YSxsYW5lOmIsdGFnOjAscGF5bG9hZDpudWxsLGNhbGxiYWNrOm51bGwsbmV4dDpudWxsfX1mdW5jdGlvbiBBZyhhLGIpe2E9YS51cGRhdGVRdWV1ZTtpZihudWxsIT09YSl7YT1hLnNoYXJlZDt2YXIgYz1hLnBlbmRpbmc7bnVsbD09PWM/Yi5uZXh0PWI6KGIubmV4dD1jLm5leHQsYy5uZXh0PWIpO2EucGVuZGluZz1ifX1cbmZ1bmN0aW9uIEJnKGEsYil7dmFyIGM9YS51cGRhdGVRdWV1ZSxkPWEuYWx0ZXJuYXRlO2lmKG51bGwhPT1kJiYoZD1kLnVwZGF0ZVF1ZXVlLGM9PT1kKSl7dmFyIGU9bnVsbCxmPW51bGw7Yz1jLmZpcnN0QmFzZVVwZGF0ZTtpZihudWxsIT09Yyl7ZG97dmFyIGc9e2V2ZW50VGltZTpjLmV2ZW50VGltZSxsYW5lOmMubGFuZSx0YWc6Yy50YWcscGF5bG9hZDpjLnBheWxvYWQsY2FsbGJhY2s6Yy5jYWxsYmFjayxuZXh0Om51bGx9O251bGw9PT1mP2U9Zj1nOmY9Zi5uZXh0PWc7Yz1jLm5leHR9d2hpbGUobnVsbCE9PWMpO251bGw9PT1mP2U9Zj1iOmY9Zi5uZXh0PWJ9ZWxzZSBlPWY9YjtjPXtiYXNlU3RhdGU6ZC5iYXNlU3RhdGUsZmlyc3RCYXNlVXBkYXRlOmUsbGFzdEJhc2VVcGRhdGU6ZixzaGFyZWQ6ZC5zaGFyZWQsZWZmZWN0czpkLmVmZmVjdHN9O2EudXBkYXRlUXVldWU9YztyZXR1cm59YT1jLmxhc3RCYXNlVXBkYXRlO251bGw9PT1hP2MuZmlyc3RCYXNlVXBkYXRlPWI6YS5uZXh0PVxuYjtjLmxhc3RCYXNlVXBkYXRlPWJ9XG5mdW5jdGlvbiBDZyhhLGIsYyxkKXt2YXIgZT1hLnVwZGF0ZVF1ZXVlO3dnPSExO3ZhciBmPWUuZmlyc3RCYXNlVXBkYXRlLGc9ZS5sYXN0QmFzZVVwZGF0ZSxoPWUuc2hhcmVkLnBlbmRpbmc7aWYobnVsbCE9PWgpe2Uuc2hhcmVkLnBlbmRpbmc9bnVsbDt2YXIgaz1oLGw9ay5uZXh0O2submV4dD1udWxsO251bGw9PT1nP2Y9bDpnLm5leHQ9bDtnPWs7dmFyIG49YS5hbHRlcm5hdGU7aWYobnVsbCE9PW4pe249bi51cGRhdGVRdWV1ZTt2YXIgQT1uLmxhc3RCYXNlVXBkYXRlO0EhPT1nJiYobnVsbD09PUE/bi5maXJzdEJhc2VVcGRhdGU9bDpBLm5leHQ9bCxuLmxhc3RCYXNlVXBkYXRlPWspfX1pZihudWxsIT09Zil7QT1lLmJhc2VTdGF0ZTtnPTA7bj1sPWs9bnVsbDtkb3toPWYubGFuZTt2YXIgcD1mLmV2ZW50VGltZTtpZigoZCZoKT09PWgpe251bGwhPT1uJiYobj1uLm5leHQ9e2V2ZW50VGltZTpwLGxhbmU6MCx0YWc6Zi50YWcscGF5bG9hZDpmLnBheWxvYWQsY2FsbGJhY2s6Zi5jYWxsYmFjayxcbm5leHQ6bnVsbH0pO2E6e3ZhciBDPWEseD1mO2g9YjtwPWM7c3dpdGNoKHgudGFnKXtjYXNlIDE6Qz14LnBheWxvYWQ7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIEMpe0E9Qy5jYWxsKHAsQSxoKTticmVhayBhfUE9QzticmVhayBhO2Nhc2UgMzpDLmZsYWdzPUMuZmxhZ3MmLTQwOTd8NjQ7Y2FzZSAwOkM9eC5wYXlsb2FkO2g9XCJmdW5jdGlvblwiPT09dHlwZW9mIEM/Qy5jYWxsKHAsQSxoKTpDO2lmKG51bGw9PT1ofHx2b2lkIDA9PT1oKWJyZWFrIGE7QT1tKHt9LEEsaCk7YnJlYWsgYTtjYXNlIDI6d2c9ITB9fW51bGwhPT1mLmNhbGxiYWNrJiYoYS5mbGFnc3w9MzIsaD1lLmVmZmVjdHMsbnVsbD09PWg/ZS5lZmZlY3RzPVtmXTpoLnB1c2goZikpfWVsc2UgcD17ZXZlbnRUaW1lOnAsbGFuZTpoLHRhZzpmLnRhZyxwYXlsb2FkOmYucGF5bG9hZCxjYWxsYmFjazpmLmNhbGxiYWNrLG5leHQ6bnVsbH0sbnVsbD09PW4/KGw9bj1wLGs9QSk6bj1uLm5leHQ9cCxnfD1oO2Y9Zi5uZXh0O2lmKG51bGw9PT1cbmYpaWYoaD1lLnNoYXJlZC5wZW5kaW5nLG51bGw9PT1oKWJyZWFrO2Vsc2UgZj1oLm5leHQsaC5uZXh0PW51bGwsZS5sYXN0QmFzZVVwZGF0ZT1oLGUuc2hhcmVkLnBlbmRpbmc9bnVsbH13aGlsZSgxKTtudWxsPT09biYmKGs9QSk7ZS5iYXNlU3RhdGU9aztlLmZpcnN0QmFzZVVwZGF0ZT1sO2UubGFzdEJhc2VVcGRhdGU9bjtEZ3w9ZzthLmxhbmVzPWc7YS5tZW1vaXplZFN0YXRlPUF9fWZ1bmN0aW9uIEVnKGEsYixjKXthPWIuZWZmZWN0cztiLmVmZmVjdHM9bnVsbDtpZihudWxsIT09YSlmb3IoYj0wO2I8YS5sZW5ndGg7YisrKXt2YXIgZD1hW2JdLGU9ZC5jYWxsYmFjaztpZihudWxsIT09ZSl7ZC5jYWxsYmFjaz1udWxsO2Q9YztpZihcImZ1bmN0aW9uXCIhPT10eXBlb2YgZSl0aHJvdyBFcnJvcih5KDE5MSxlKSk7ZS5jYWxsKGQpfX19dmFyIEZnPShuZXcgYWEuQ29tcG9uZW50KS5yZWZzO1xuZnVuY3Rpb24gR2coYSxiLGMsZCl7Yj1hLm1lbW9pemVkU3RhdGU7Yz1jKGQsYik7Yz1udWxsPT09Y3x8dm9pZCAwPT09Yz9iOm0oe30sYixjKTthLm1lbW9pemVkU3RhdGU9YzswPT09YS5sYW5lcyYmKGEudXBkYXRlUXVldWUuYmFzZVN0YXRlPWMpfVxudmFyIEtnPXtpc01vdW50ZWQ6ZnVuY3Rpb24oYSl7cmV0dXJuKGE9YS5fcmVhY3RJbnRlcm5hbHMpP1piKGEpPT09YTohMX0sZW5xdWV1ZVNldFN0YXRlOmZ1bmN0aW9uKGEsYixjKXthPWEuX3JlYWN0SW50ZXJuYWxzO3ZhciBkPUhnKCksZT1JZyhhKSxmPXpnKGQsZSk7Zi5wYXlsb2FkPWI7dm9pZCAwIT09YyYmbnVsbCE9PWMmJihmLmNhbGxiYWNrPWMpO0FnKGEsZik7SmcoYSxlLGQpfSxlbnF1ZXVlUmVwbGFjZVN0YXRlOmZ1bmN0aW9uKGEsYixjKXthPWEuX3JlYWN0SW50ZXJuYWxzO3ZhciBkPUhnKCksZT1JZyhhKSxmPXpnKGQsZSk7Zi50YWc9MTtmLnBheWxvYWQ9Yjt2b2lkIDAhPT1jJiZudWxsIT09YyYmKGYuY2FsbGJhY2s9Yyk7QWcoYSxmKTtKZyhhLGUsZCl9LGVucXVldWVGb3JjZVVwZGF0ZTpmdW5jdGlvbihhLGIpe2E9YS5fcmVhY3RJbnRlcm5hbHM7dmFyIGM9SGcoKSxkPUlnKGEpLGU9emcoYyxkKTtlLnRhZz0yO3ZvaWQgMCE9PWImJm51bGwhPT1iJiYoZS5jYWxsYmFjaz1cbmIpO0FnKGEsZSk7SmcoYSxkLGMpfX07ZnVuY3Rpb24gTGcoYSxiLGMsZCxlLGYsZyl7YT1hLnN0YXRlTm9kZTtyZXR1cm5cImZ1bmN0aW9uXCI9PT10eXBlb2YgYS5zaG91bGRDb21wb25lbnRVcGRhdGU/YS5zaG91bGRDb21wb25lbnRVcGRhdGUoZCxmLGcpOmIucHJvdG90eXBlJiZiLnByb3RvdHlwZS5pc1B1cmVSZWFjdENvbXBvbmVudD8hSmUoYyxkKXx8IUplKGUsZik6ITB9XG5mdW5jdGlvbiBNZyhhLGIsYyl7dmFyIGQ9ITEsZT1DZjt2YXIgZj1iLmNvbnRleHRUeXBlO1wib2JqZWN0XCI9PT10eXBlb2YgZiYmbnVsbCE9PWY/Zj12ZyhmKTooZT1GZihiKT9EZjpNLmN1cnJlbnQsZD1iLmNvbnRleHRUeXBlcyxmPShkPW51bGwhPT1kJiZ2b2lkIDAhPT1kKT9FZihhLGUpOkNmKTtiPW5ldyBiKGMsZik7YS5tZW1vaXplZFN0YXRlPW51bGwhPT1iLnN0YXRlJiZ2b2lkIDAhPT1iLnN0YXRlP2Iuc3RhdGU6bnVsbDtiLnVwZGF0ZXI9S2c7YS5zdGF0ZU5vZGU9YjtiLl9yZWFjdEludGVybmFscz1hO2QmJihhPWEuc3RhdGVOb2RlLGEuX19yZWFjdEludGVybmFsTWVtb2l6ZWRVbm1hc2tlZENoaWxkQ29udGV4dD1lLGEuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNYXNrZWRDaGlsZENvbnRleHQ9Zik7cmV0dXJuIGJ9XG5mdW5jdGlvbiBOZyhhLGIsYyxkKXthPWIuc3RhdGU7XCJmdW5jdGlvblwiPT09dHlwZW9mIGIuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyYmYi5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKGMsZCk7XCJmdW5jdGlvblwiPT09dHlwZW9mIGIuVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMmJmIuVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMoYyxkKTtiLnN0YXRlIT09YSYmS2cuZW5xdWV1ZVJlcGxhY2VTdGF0ZShiLGIuc3RhdGUsbnVsbCl9XG5mdW5jdGlvbiBPZyhhLGIsYyxkKXt2YXIgZT1hLnN0YXRlTm9kZTtlLnByb3BzPWM7ZS5zdGF0ZT1hLm1lbW9pemVkU3RhdGU7ZS5yZWZzPUZnO3hnKGEpO3ZhciBmPWIuY29udGV4dFR5cGU7XCJvYmplY3RcIj09PXR5cGVvZiBmJiZudWxsIT09Zj9lLmNvbnRleHQ9dmcoZik6KGY9RmYoYik/RGY6TS5jdXJyZW50LGUuY29udGV4dD1FZihhLGYpKTtDZyhhLGMsZSxkKTtlLnN0YXRlPWEubWVtb2l6ZWRTdGF0ZTtmPWIuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzO1wiZnVuY3Rpb25cIj09PXR5cGVvZiBmJiYoR2coYSxiLGYsYyksZS5zdGF0ZT1hLm1lbW9pemVkU3RhdGUpO1wiZnVuY3Rpb25cIj09PXR5cGVvZiBiLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wc3x8XCJmdW5jdGlvblwiPT09dHlwZW9mIGUuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGV8fFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBlLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQmJlwiZnVuY3Rpb25cIiE9PXR5cGVvZiBlLmNvbXBvbmVudFdpbGxNb3VudHx8XG4oYj1lLnN0YXRlLFwiZnVuY3Rpb25cIj09PXR5cGVvZiBlLmNvbXBvbmVudFdpbGxNb3VudCYmZS5jb21wb25lbnRXaWxsTW91bnQoKSxcImZ1bmN0aW9uXCI9PT10eXBlb2YgZS5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50JiZlLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQoKSxiIT09ZS5zdGF0ZSYmS2cuZW5xdWV1ZVJlcGxhY2VTdGF0ZShlLGUuc3RhdGUsbnVsbCksQ2coYSxjLGUsZCksZS5zdGF0ZT1hLm1lbW9pemVkU3RhdGUpO1wiZnVuY3Rpb25cIj09PXR5cGVvZiBlLmNvbXBvbmVudERpZE1vdW50JiYoYS5mbGFnc3w9NCl9dmFyIFBnPUFycmF5LmlzQXJyYXk7XG5mdW5jdGlvbiBRZyhhLGIsYyl7YT1jLnJlZjtpZihudWxsIT09YSYmXCJmdW5jdGlvblwiIT09dHlwZW9mIGEmJlwib2JqZWN0XCIhPT10eXBlb2YgYSl7aWYoYy5fb3duZXIpe2M9Yy5fb3duZXI7aWYoYyl7aWYoMSE9PWMudGFnKXRocm93IEVycm9yKHkoMzA5KSk7dmFyIGQ9Yy5zdGF0ZU5vZGV9aWYoIWQpdGhyb3cgRXJyb3IoeSgxNDcsYSkpO3ZhciBlPVwiXCIrYTtpZihudWxsIT09YiYmbnVsbCE9PWIucmVmJiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgYi5yZWYmJmIucmVmLl9zdHJpbmdSZWY9PT1lKXJldHVybiBiLnJlZjtiPWZ1bmN0aW9uKGEpe3ZhciBiPWQucmVmcztiPT09RmcmJihiPWQucmVmcz17fSk7bnVsbD09PWE/ZGVsZXRlIGJbZV06YltlXT1hfTtiLl9zdHJpbmdSZWY9ZTtyZXR1cm4gYn1pZihcInN0cmluZ1wiIT09dHlwZW9mIGEpdGhyb3cgRXJyb3IoeSgyODQpKTtpZighYy5fb3duZXIpdGhyb3cgRXJyb3IoeSgyOTAsYSkpO31yZXR1cm4gYX1cbmZ1bmN0aW9uIFJnKGEsYil7aWYoXCJ0ZXh0YXJlYVwiIT09YS50eXBlKXRocm93IEVycm9yKHkoMzEsXCJbb2JqZWN0IE9iamVjdF1cIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChiKT9cIm9iamVjdCB3aXRoIGtleXMge1wiK09iamVjdC5rZXlzKGIpLmpvaW4oXCIsIFwiKStcIn1cIjpiKSk7fVxuZnVuY3Rpb24gU2coYSl7ZnVuY3Rpb24gYihiLGMpe2lmKGEpe3ZhciBkPWIubGFzdEVmZmVjdDtudWxsIT09ZD8oZC5uZXh0RWZmZWN0PWMsYi5sYXN0RWZmZWN0PWMpOmIuZmlyc3RFZmZlY3Q9Yi5sYXN0RWZmZWN0PWM7Yy5uZXh0RWZmZWN0PW51bGw7Yy5mbGFncz04fX1mdW5jdGlvbiBjKGMsZCl7aWYoIWEpcmV0dXJuIG51bGw7Zm9yKDtudWxsIT09ZDspYihjLGQpLGQ9ZC5zaWJsaW5nO3JldHVybiBudWxsfWZ1bmN0aW9uIGQoYSxiKXtmb3IoYT1uZXcgTWFwO251bGwhPT1iOyludWxsIT09Yi5rZXk/YS5zZXQoYi5rZXksYik6YS5zZXQoYi5pbmRleCxiKSxiPWIuc2libGluZztyZXR1cm4gYX1mdW5jdGlvbiBlKGEsYil7YT1UZyhhLGIpO2EuaW5kZXg9MDthLnNpYmxpbmc9bnVsbDtyZXR1cm4gYX1mdW5jdGlvbiBmKGIsYyxkKXtiLmluZGV4PWQ7aWYoIWEpcmV0dXJuIGM7ZD1iLmFsdGVybmF0ZTtpZihudWxsIT09ZClyZXR1cm4gZD1kLmluZGV4LGQ8Yz8oYi5mbGFncz0yLFxuYyk6ZDtiLmZsYWdzPTI7cmV0dXJuIGN9ZnVuY3Rpb24gZyhiKXthJiZudWxsPT09Yi5hbHRlcm5hdGUmJihiLmZsYWdzPTIpO3JldHVybiBifWZ1bmN0aW9uIGgoYSxiLGMsZCl7aWYobnVsbD09PWJ8fDYhPT1iLnRhZylyZXR1cm4gYj1VZyhjLGEubW9kZSxkKSxiLnJldHVybj1hLGI7Yj1lKGIsYyk7Yi5yZXR1cm49YTtyZXR1cm4gYn1mdW5jdGlvbiBrKGEsYixjLGQpe2lmKG51bGwhPT1iJiZiLmVsZW1lbnRUeXBlPT09Yy50eXBlKXJldHVybiBkPWUoYixjLnByb3BzKSxkLnJlZj1RZyhhLGIsYyksZC5yZXR1cm49YSxkO2Q9VmcoYy50eXBlLGMua2V5LGMucHJvcHMsbnVsbCxhLm1vZGUsZCk7ZC5yZWY9UWcoYSxiLGMpO2QucmV0dXJuPWE7cmV0dXJuIGR9ZnVuY3Rpb24gbChhLGIsYyxkKXtpZihudWxsPT09Ynx8NCE9PWIudGFnfHxiLnN0YXRlTm9kZS5jb250YWluZXJJbmZvIT09Yy5jb250YWluZXJJbmZvfHxiLnN0YXRlTm9kZS5pbXBsZW1lbnRhdGlvbiE9PWMuaW1wbGVtZW50YXRpb24pcmV0dXJuIGI9XG5XZyhjLGEubW9kZSxkKSxiLnJldHVybj1hLGI7Yj1lKGIsYy5jaGlsZHJlbnx8W10pO2IucmV0dXJuPWE7cmV0dXJuIGJ9ZnVuY3Rpb24gbihhLGIsYyxkLGYpe2lmKG51bGw9PT1ifHw3IT09Yi50YWcpcmV0dXJuIGI9WGcoYyxhLm1vZGUsZCxmKSxiLnJldHVybj1hLGI7Yj1lKGIsYyk7Yi5yZXR1cm49YTtyZXR1cm4gYn1mdW5jdGlvbiBBKGEsYixjKXtpZihcInN0cmluZ1wiPT09dHlwZW9mIGJ8fFwibnVtYmVyXCI9PT10eXBlb2YgYilyZXR1cm4gYj1VZyhcIlwiK2IsYS5tb2RlLGMpLGIucmV0dXJuPWEsYjtpZihcIm9iamVjdFwiPT09dHlwZW9mIGImJm51bGwhPT1iKXtzd2l0Y2goYi4kJHR5cGVvZil7Y2FzZSBzYTpyZXR1cm4gYz1WZyhiLnR5cGUsYi5rZXksYi5wcm9wcyxudWxsLGEubW9kZSxjKSxjLnJlZj1RZyhhLG51bGwsYiksYy5yZXR1cm49YSxjO2Nhc2UgdGE6cmV0dXJuIGI9V2coYixhLm1vZGUsYyksYi5yZXR1cm49YSxifWlmKFBnKGIpfHxMYShiKSlyZXR1cm4gYj1YZyhiLFxuYS5tb2RlLGMsbnVsbCksYi5yZXR1cm49YSxiO1JnKGEsYil9cmV0dXJuIG51bGx9ZnVuY3Rpb24gcChhLGIsYyxkKXt2YXIgZT1udWxsIT09Yj9iLmtleTpudWxsO2lmKFwic3RyaW5nXCI9PT10eXBlb2YgY3x8XCJudW1iZXJcIj09PXR5cGVvZiBjKXJldHVybiBudWxsIT09ZT9udWxsOmgoYSxiLFwiXCIrYyxkKTtpZihcIm9iamVjdFwiPT09dHlwZW9mIGMmJm51bGwhPT1jKXtzd2l0Y2goYy4kJHR5cGVvZil7Y2FzZSBzYTpyZXR1cm4gYy5rZXk9PT1lP2MudHlwZT09PXVhP24oYSxiLGMucHJvcHMuY2hpbGRyZW4sZCxlKTprKGEsYixjLGQpOm51bGw7Y2FzZSB0YTpyZXR1cm4gYy5rZXk9PT1lP2woYSxiLGMsZCk6bnVsbH1pZihQZyhjKXx8TGEoYykpcmV0dXJuIG51bGwhPT1lP251bGw6bihhLGIsYyxkLG51bGwpO1JnKGEsYyl9cmV0dXJuIG51bGx9ZnVuY3Rpb24gQyhhLGIsYyxkLGUpe2lmKFwic3RyaW5nXCI9PT10eXBlb2YgZHx8XCJudW1iZXJcIj09PXR5cGVvZiBkKXJldHVybiBhPWEuZ2V0KGMpfHxcbm51bGwsaChiLGEsXCJcIitkLGUpO2lmKFwib2JqZWN0XCI9PT10eXBlb2YgZCYmbnVsbCE9PWQpe3N3aXRjaChkLiQkdHlwZW9mKXtjYXNlIHNhOnJldHVybiBhPWEuZ2V0KG51bGw9PT1kLmtleT9jOmQua2V5KXx8bnVsbCxkLnR5cGU9PT11YT9uKGIsYSxkLnByb3BzLmNoaWxkcmVuLGUsZC5rZXkpOmsoYixhLGQsZSk7Y2FzZSB0YTpyZXR1cm4gYT1hLmdldChudWxsPT09ZC5rZXk/YzpkLmtleSl8fG51bGwsbChiLGEsZCxlKX1pZihQZyhkKXx8TGEoZCkpcmV0dXJuIGE9YS5nZXQoYyl8fG51bGwsbihiLGEsZCxlLG51bGwpO1JnKGIsZCl9cmV0dXJuIG51bGx9ZnVuY3Rpb24geChlLGcsaCxrKXtmb3IodmFyIGw9bnVsbCx0PW51bGwsdT1nLHo9Zz0wLHE9bnVsbDtudWxsIT09dSYmejxoLmxlbmd0aDt6Kyspe3UuaW5kZXg+ej8ocT11LHU9bnVsbCk6cT11LnNpYmxpbmc7dmFyIG49cChlLHUsaFt6XSxrKTtpZihudWxsPT09bil7bnVsbD09PXUmJih1PXEpO2JyZWFrfWEmJnUmJm51bGw9PT1cbm4uYWx0ZXJuYXRlJiZiKGUsdSk7Zz1mKG4sZyx6KTtudWxsPT09dD9sPW46dC5zaWJsaW5nPW47dD1uO3U9cX1pZih6PT09aC5sZW5ndGgpcmV0dXJuIGMoZSx1KSxsO2lmKG51bGw9PT11KXtmb3IoO3o8aC5sZW5ndGg7eisrKXU9QShlLGhbel0sayksbnVsbCE9PXUmJihnPWYodSxnLHopLG51bGw9PT10P2w9dTp0LnNpYmxpbmc9dSx0PXUpO3JldHVybiBsfWZvcih1PWQoZSx1KTt6PGgubGVuZ3RoO3orKylxPUModSxlLHosaFt6XSxrKSxudWxsIT09cSYmKGEmJm51bGwhPT1xLmFsdGVybmF0ZSYmdS5kZWxldGUobnVsbD09PXEua2V5P3o6cS5rZXkpLGc9ZihxLGcseiksbnVsbD09PXQ/bD1xOnQuc2libGluZz1xLHQ9cSk7YSYmdS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3JldHVybiBiKGUsYSl9KTtyZXR1cm4gbH1mdW5jdGlvbiB3KGUsZyxoLGspe3ZhciBsPUxhKGgpO2lmKFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBsKXRocm93IEVycm9yKHkoMTUwKSk7aD1sLmNhbGwoaCk7aWYobnVsbD09XG5oKXRocm93IEVycm9yKHkoMTUxKSk7Zm9yKHZhciB0PWw9bnVsbCx1PWcsej1nPTAscT1udWxsLG49aC5uZXh0KCk7bnVsbCE9PXUmJiFuLmRvbmU7eisrLG49aC5uZXh0KCkpe3UuaW5kZXg+ej8ocT11LHU9bnVsbCk6cT11LnNpYmxpbmc7dmFyIHc9cChlLHUsbi52YWx1ZSxrKTtpZihudWxsPT09dyl7bnVsbD09PXUmJih1PXEpO2JyZWFrfWEmJnUmJm51bGw9PT13LmFsdGVybmF0ZSYmYihlLHUpO2c9Zih3LGcseik7bnVsbD09PXQ/bD13OnQuc2libGluZz13O3Q9dzt1PXF9aWYobi5kb25lKXJldHVybiBjKGUsdSksbDtpZihudWxsPT09dSl7Zm9yKDshbi5kb25lO3orKyxuPWgubmV4dCgpKW49QShlLG4udmFsdWUsayksbnVsbCE9PW4mJihnPWYobixnLHopLG51bGw9PT10P2w9bjp0LnNpYmxpbmc9bix0PW4pO3JldHVybiBsfWZvcih1PWQoZSx1KTshbi5kb25lO3orKyxuPWgubmV4dCgpKW49Qyh1LGUseixuLnZhbHVlLGspLG51bGwhPT1uJiYoYSYmbnVsbCE9PW4uYWx0ZXJuYXRlJiZcbnUuZGVsZXRlKG51bGw9PT1uLmtleT96Om4ua2V5KSxnPWYobixnLHopLG51bGw9PT10P2w9bjp0LnNpYmxpbmc9bix0PW4pO2EmJnUuZm9yRWFjaChmdW5jdGlvbihhKXtyZXR1cm4gYihlLGEpfSk7cmV0dXJuIGx9cmV0dXJuIGZ1bmN0aW9uKGEsZCxmLGgpe3ZhciBrPVwib2JqZWN0XCI9PT10eXBlb2YgZiYmbnVsbCE9PWYmJmYudHlwZT09PXVhJiZudWxsPT09Zi5rZXk7ayYmKGY9Zi5wcm9wcy5jaGlsZHJlbik7dmFyIGw9XCJvYmplY3RcIj09PXR5cGVvZiBmJiZudWxsIT09ZjtpZihsKXN3aXRjaChmLiQkdHlwZW9mKXtjYXNlIHNhOmE6e2w9Zi5rZXk7Zm9yKGs9ZDtudWxsIT09azspe2lmKGsua2V5PT09bCl7c3dpdGNoKGsudGFnKXtjYXNlIDc6aWYoZi50eXBlPT09dWEpe2MoYSxrLnNpYmxpbmcpO2Q9ZShrLGYucHJvcHMuY2hpbGRyZW4pO2QucmV0dXJuPWE7YT1kO2JyZWFrIGF9YnJlYWs7ZGVmYXVsdDppZihrLmVsZW1lbnRUeXBlPT09Zi50eXBlKXtjKGEsay5zaWJsaW5nKTtcbmQ9ZShrLGYucHJvcHMpO2QucmVmPVFnKGEsayxmKTtkLnJldHVybj1hO2E9ZDticmVhayBhfX1jKGEsayk7YnJlYWt9ZWxzZSBiKGEsayk7az1rLnNpYmxpbmd9Zi50eXBlPT09dWE/KGQ9WGcoZi5wcm9wcy5jaGlsZHJlbixhLm1vZGUsaCxmLmtleSksZC5yZXR1cm49YSxhPWQpOihoPVZnKGYudHlwZSxmLmtleSxmLnByb3BzLG51bGwsYS5tb2RlLGgpLGgucmVmPVFnKGEsZCxmKSxoLnJldHVybj1hLGE9aCl9cmV0dXJuIGcoYSk7Y2FzZSB0YTphOntmb3Ioaz1mLmtleTtudWxsIT09ZDspe2lmKGQua2V5PT09aylpZig0PT09ZC50YWcmJmQuc3RhdGVOb2RlLmNvbnRhaW5lckluZm89PT1mLmNvbnRhaW5lckluZm8mJmQuc3RhdGVOb2RlLmltcGxlbWVudGF0aW9uPT09Zi5pbXBsZW1lbnRhdGlvbil7YyhhLGQuc2libGluZyk7ZD1lKGQsZi5jaGlsZHJlbnx8W10pO2QucmV0dXJuPWE7YT1kO2JyZWFrIGF9ZWxzZXtjKGEsZCk7YnJlYWt9ZWxzZSBiKGEsZCk7ZD1kLnNpYmxpbmd9ZD1cbldnKGYsYS5tb2RlLGgpO2QucmV0dXJuPWE7YT1kfXJldHVybiBnKGEpfWlmKFwic3RyaW5nXCI9PT10eXBlb2YgZnx8XCJudW1iZXJcIj09PXR5cGVvZiBmKXJldHVybiBmPVwiXCIrZixudWxsIT09ZCYmNj09PWQudGFnPyhjKGEsZC5zaWJsaW5nKSxkPWUoZCxmKSxkLnJldHVybj1hLGE9ZCk6KGMoYSxkKSxkPVVnKGYsYS5tb2RlLGgpLGQucmV0dXJuPWEsYT1kKSxnKGEpO2lmKFBnKGYpKXJldHVybiB4KGEsZCxmLGgpO2lmKExhKGYpKXJldHVybiB3KGEsZCxmLGgpO2wmJlJnKGEsZik7aWYoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBmJiYhaylzd2l0Y2goYS50YWcpe2Nhc2UgMTpjYXNlIDIyOmNhc2UgMDpjYXNlIDExOmNhc2UgMTU6dGhyb3cgRXJyb3IoeSgxNTIsUmEoYS50eXBlKXx8XCJDb21wb25lbnRcIikpO31yZXR1cm4gYyhhLGQpfX12YXIgWWc9U2coITApLFpnPVNnKCExKSwkZz17fSxhaD1CZigkZyksYmg9QmYoJGcpLGNoPUJmKCRnKTtcbmZ1bmN0aW9uIGRoKGEpe2lmKGE9PT0kZyl0aHJvdyBFcnJvcih5KDE3NCkpO3JldHVybiBhfWZ1bmN0aW9uIGVoKGEsYil7SShjaCxiKTtJKGJoLGEpO0koYWgsJGcpO2E9Yi5ub2RlVHlwZTtzd2l0Y2goYSl7Y2FzZSA5OmNhc2UgMTE6Yj0oYj1iLmRvY3VtZW50RWxlbWVudCk/Yi5uYW1lc3BhY2VVUkk6bWIobnVsbCxcIlwiKTticmVhaztkZWZhdWx0OmE9OD09PWE/Yi5wYXJlbnROb2RlOmIsYj1hLm5hbWVzcGFjZVVSSXx8bnVsbCxhPWEudGFnTmFtZSxiPW1iKGIsYSl9SChhaCk7SShhaCxiKX1mdW5jdGlvbiBmaCgpe0goYWgpO0goYmgpO0goY2gpfWZ1bmN0aW9uIGdoKGEpe2RoKGNoLmN1cnJlbnQpO3ZhciBiPWRoKGFoLmN1cnJlbnQpO3ZhciBjPW1iKGIsYS50eXBlKTtiIT09YyYmKEkoYmgsYSksSShhaCxjKSl9ZnVuY3Rpb24gaGgoYSl7YmguY3VycmVudD09PWEmJihIKGFoKSxIKGJoKSl9dmFyIFA9QmYoMCk7XG5mdW5jdGlvbiBpaChhKXtmb3IodmFyIGI9YTtudWxsIT09Yjspe2lmKDEzPT09Yi50YWcpe3ZhciBjPWIubWVtb2l6ZWRTdGF0ZTtpZihudWxsIT09YyYmKGM9Yy5kZWh5ZHJhdGVkLG51bGw9PT1jfHxcIiQ/XCI9PT1jLmRhdGF8fFwiJCFcIj09PWMuZGF0YSkpcmV0dXJuIGJ9ZWxzZSBpZigxOT09PWIudGFnJiZ2b2lkIDAhPT1iLm1lbW9pemVkUHJvcHMucmV2ZWFsT3JkZXIpe2lmKDAhPT0oYi5mbGFncyY2NCkpcmV0dXJuIGJ9ZWxzZSBpZihudWxsIT09Yi5jaGlsZCl7Yi5jaGlsZC5yZXR1cm49YjtiPWIuY2hpbGQ7Y29udGludWV9aWYoYj09PWEpYnJlYWs7Zm9yKDtudWxsPT09Yi5zaWJsaW5nOyl7aWYobnVsbD09PWIucmV0dXJufHxiLnJldHVybj09PWEpcmV0dXJuIG51bGw7Yj1iLnJldHVybn1iLnNpYmxpbmcucmV0dXJuPWIucmV0dXJuO2I9Yi5zaWJsaW5nfXJldHVybiBudWxsfXZhciBqaD1udWxsLGtoPW51bGwsbGg9ITE7XG5mdW5jdGlvbiBtaChhLGIpe3ZhciBjPW5oKDUsbnVsbCxudWxsLDApO2MuZWxlbWVudFR5cGU9XCJERUxFVEVEXCI7Yy50eXBlPVwiREVMRVRFRFwiO2Muc3RhdGVOb2RlPWI7Yy5yZXR1cm49YTtjLmZsYWdzPTg7bnVsbCE9PWEubGFzdEVmZmVjdD8oYS5sYXN0RWZmZWN0Lm5leHRFZmZlY3Q9YyxhLmxhc3RFZmZlY3Q9Yyk6YS5maXJzdEVmZmVjdD1hLmxhc3RFZmZlY3Q9Y31mdW5jdGlvbiBvaChhLGIpe3N3aXRjaChhLnRhZyl7Y2FzZSA1OnZhciBjPWEudHlwZTtiPTEhPT1iLm5vZGVUeXBlfHxjLnRvTG93ZXJDYXNlKCkhPT1iLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk/bnVsbDpiO3JldHVybiBudWxsIT09Yj8oYS5zdGF0ZU5vZGU9YiwhMCk6ITE7Y2FzZSA2OnJldHVybiBiPVwiXCI9PT1hLnBlbmRpbmdQcm9wc3x8MyE9PWIubm9kZVR5cGU/bnVsbDpiLG51bGwhPT1iPyhhLnN0YXRlTm9kZT1iLCEwKTohMTtjYXNlIDEzOnJldHVybiExO2RlZmF1bHQ6cmV0dXJuITF9fVxuZnVuY3Rpb24gcGgoYSl7aWYobGgpe3ZhciBiPWtoO2lmKGIpe3ZhciBjPWI7aWYoIW9oKGEsYikpe2I9cmYoYy5uZXh0U2libGluZyk7aWYoIWJ8fCFvaChhLGIpKXthLmZsYWdzPWEuZmxhZ3MmLTEwMjV8MjtsaD0hMTtqaD1hO3JldHVybn1taChqaCxjKX1qaD1hO2toPXJmKGIuZmlyc3RDaGlsZCl9ZWxzZSBhLmZsYWdzPWEuZmxhZ3MmLTEwMjV8MixsaD0hMSxqaD1hfX1mdW5jdGlvbiBxaChhKXtmb3IoYT1hLnJldHVybjtudWxsIT09YSYmNSE9PWEudGFnJiYzIT09YS50YWcmJjEzIT09YS50YWc7KWE9YS5yZXR1cm47amg9YX1cbmZ1bmN0aW9uIHJoKGEpe2lmKGEhPT1qaClyZXR1cm4hMTtpZighbGgpcmV0dXJuIHFoKGEpLGxoPSEwLCExO3ZhciBiPWEudHlwZTtpZig1IT09YS50YWd8fFwiaGVhZFwiIT09YiYmXCJib2R5XCIhPT1iJiYhbmYoYixhLm1lbW9pemVkUHJvcHMpKWZvcihiPWtoO2I7KW1oKGEsYiksYj1yZihiLm5leHRTaWJsaW5nKTtxaChhKTtpZigxMz09PWEudGFnKXthPWEubWVtb2l6ZWRTdGF0ZTthPW51bGwhPT1hP2EuZGVoeWRyYXRlZDpudWxsO2lmKCFhKXRocm93IEVycm9yKHkoMzE3KSk7YTp7YT1hLm5leHRTaWJsaW5nO2ZvcihiPTA7YTspe2lmKDg9PT1hLm5vZGVUeXBlKXt2YXIgYz1hLmRhdGE7aWYoXCIvJFwiPT09Yyl7aWYoMD09PWIpe2toPXJmKGEubmV4dFNpYmxpbmcpO2JyZWFrIGF9Yi0tfWVsc2VcIiRcIiE9PWMmJlwiJCFcIiE9PWMmJlwiJD9cIiE9PWN8fGIrK31hPWEubmV4dFNpYmxpbmd9a2g9bnVsbH19ZWxzZSBraD1qaD9yZihhLnN0YXRlTm9kZS5uZXh0U2libGluZyk6bnVsbDtyZXR1cm4hMH1cbmZ1bmN0aW9uIHNoKCl7a2g9amg9bnVsbDtsaD0hMX12YXIgdGg9W107ZnVuY3Rpb24gdWgoKXtmb3IodmFyIGE9MDthPHRoLmxlbmd0aDthKyspdGhbYV0uX3dvcmtJblByb2dyZXNzVmVyc2lvblByaW1hcnk9bnVsbDt0aC5sZW5ndGg9MH12YXIgdmg9cmEuUmVhY3RDdXJyZW50RGlzcGF0Y2hlcix3aD1yYS5SZWFjdEN1cnJlbnRCYXRjaENvbmZpZyx4aD0wLFI9bnVsbCxTPW51bGwsVD1udWxsLHloPSExLHpoPSExO2Z1bmN0aW9uIEFoKCl7dGhyb3cgRXJyb3IoeSgzMjEpKTt9ZnVuY3Rpb24gQmgoYSxiKXtpZihudWxsPT09YilyZXR1cm4hMTtmb3IodmFyIGM9MDtjPGIubGVuZ3RoJiZjPGEubGVuZ3RoO2MrKylpZighSGUoYVtjXSxiW2NdKSlyZXR1cm4hMTtyZXR1cm4hMH1cbmZ1bmN0aW9uIENoKGEsYixjLGQsZSxmKXt4aD1mO1I9YjtiLm1lbW9pemVkU3RhdGU9bnVsbDtiLnVwZGF0ZVF1ZXVlPW51bGw7Yi5sYW5lcz0wO3ZoLmN1cnJlbnQ9bnVsbD09PWF8fG51bGw9PT1hLm1lbW9pemVkU3RhdGU/RGg6RWg7YT1jKGQsZSk7aWYoemgpe2Y9MDtkb3t6aD0hMTtpZighKDI1PmYpKXRocm93IEVycm9yKHkoMzAxKSk7Zis9MTtUPVM9bnVsbDtiLnVwZGF0ZVF1ZXVlPW51bGw7dmguY3VycmVudD1GaDthPWMoZCxlKX13aGlsZSh6aCl9dmguY3VycmVudD1HaDtiPW51bGwhPT1TJiZudWxsIT09Uy5uZXh0O3hoPTA7VD1TPVI9bnVsbDt5aD0hMTtpZihiKXRocm93IEVycm9yKHkoMzAwKSk7cmV0dXJuIGF9ZnVuY3Rpb24gSGgoKXt2YXIgYT17bWVtb2l6ZWRTdGF0ZTpudWxsLGJhc2VTdGF0ZTpudWxsLGJhc2VRdWV1ZTpudWxsLHF1ZXVlOm51bGwsbmV4dDpudWxsfTtudWxsPT09VD9SLm1lbW9pemVkU3RhdGU9VD1hOlQ9VC5uZXh0PWE7cmV0dXJuIFR9XG5mdW5jdGlvbiBJaCgpe2lmKG51bGw9PT1TKXt2YXIgYT1SLmFsdGVybmF0ZTthPW51bGwhPT1hP2EubWVtb2l6ZWRTdGF0ZTpudWxsfWVsc2UgYT1TLm5leHQ7dmFyIGI9bnVsbD09PVQ/Ui5tZW1vaXplZFN0YXRlOlQubmV4dDtpZihudWxsIT09YilUPWIsUz1hO2Vsc2V7aWYobnVsbD09PWEpdGhyb3cgRXJyb3IoeSgzMTApKTtTPWE7YT17bWVtb2l6ZWRTdGF0ZTpTLm1lbW9pemVkU3RhdGUsYmFzZVN0YXRlOlMuYmFzZVN0YXRlLGJhc2VRdWV1ZTpTLmJhc2VRdWV1ZSxxdWV1ZTpTLnF1ZXVlLG5leHQ6bnVsbH07bnVsbD09PVQ/Ui5tZW1vaXplZFN0YXRlPVQ9YTpUPVQubmV4dD1hfXJldHVybiBUfWZ1bmN0aW9uIEpoKGEsYil7cmV0dXJuXCJmdW5jdGlvblwiPT09dHlwZW9mIGI/YihhKTpifVxuZnVuY3Rpb24gS2goYSl7dmFyIGI9SWgoKSxjPWIucXVldWU7aWYobnVsbD09PWMpdGhyb3cgRXJyb3IoeSgzMTEpKTtjLmxhc3RSZW5kZXJlZFJlZHVjZXI9YTt2YXIgZD1TLGU9ZC5iYXNlUXVldWUsZj1jLnBlbmRpbmc7aWYobnVsbCE9PWYpe2lmKG51bGwhPT1lKXt2YXIgZz1lLm5leHQ7ZS5uZXh0PWYubmV4dDtmLm5leHQ9Z31kLmJhc2VRdWV1ZT1lPWY7Yy5wZW5kaW5nPW51bGx9aWYobnVsbCE9PWUpe2U9ZS5uZXh0O2Q9ZC5iYXNlU3RhdGU7dmFyIGg9Zz1mPW51bGwsaz1lO2Rve3ZhciBsPWsubGFuZTtpZigoeGgmbCk9PT1sKW51bGwhPT1oJiYoaD1oLm5leHQ9e2xhbmU6MCxhY3Rpb246ay5hY3Rpb24sZWFnZXJSZWR1Y2VyOmsuZWFnZXJSZWR1Y2VyLGVhZ2VyU3RhdGU6ay5lYWdlclN0YXRlLG5leHQ6bnVsbH0pLGQ9ay5lYWdlclJlZHVjZXI9PT1hP2suZWFnZXJTdGF0ZTphKGQsay5hY3Rpb24pO2Vsc2V7dmFyIG49e2xhbmU6bCxhY3Rpb246ay5hY3Rpb24sZWFnZXJSZWR1Y2VyOmsuZWFnZXJSZWR1Y2VyLFxuZWFnZXJTdGF0ZTprLmVhZ2VyU3RhdGUsbmV4dDpudWxsfTtudWxsPT09aD8oZz1oPW4sZj1kKTpoPWgubmV4dD1uO1IubGFuZXN8PWw7RGd8PWx9az1rLm5leHR9d2hpbGUobnVsbCE9PWsmJmshPT1lKTtudWxsPT09aD9mPWQ6aC5uZXh0PWc7SGUoZCxiLm1lbW9pemVkU3RhdGUpfHwodWc9ITApO2IubWVtb2l6ZWRTdGF0ZT1kO2IuYmFzZVN0YXRlPWY7Yi5iYXNlUXVldWU9aDtjLmxhc3RSZW5kZXJlZFN0YXRlPWR9cmV0dXJuW2IubWVtb2l6ZWRTdGF0ZSxjLmRpc3BhdGNoXX1cbmZ1bmN0aW9uIExoKGEpe3ZhciBiPUloKCksYz1iLnF1ZXVlO2lmKG51bGw9PT1jKXRocm93IEVycm9yKHkoMzExKSk7Yy5sYXN0UmVuZGVyZWRSZWR1Y2VyPWE7dmFyIGQ9Yy5kaXNwYXRjaCxlPWMucGVuZGluZyxmPWIubWVtb2l6ZWRTdGF0ZTtpZihudWxsIT09ZSl7Yy5wZW5kaW5nPW51bGw7dmFyIGc9ZT1lLm5leHQ7ZG8gZj1hKGYsZy5hY3Rpb24pLGc9Zy5uZXh0O3doaWxlKGchPT1lKTtIZShmLGIubWVtb2l6ZWRTdGF0ZSl8fCh1Zz0hMCk7Yi5tZW1vaXplZFN0YXRlPWY7bnVsbD09PWIuYmFzZVF1ZXVlJiYoYi5iYXNlU3RhdGU9Zik7Yy5sYXN0UmVuZGVyZWRTdGF0ZT1mfXJldHVybltmLGRdfVxuZnVuY3Rpb24gTWgoYSxiLGMpe3ZhciBkPWIuX2dldFZlcnNpb247ZD1kKGIuX3NvdXJjZSk7dmFyIGU9Yi5fd29ya0luUHJvZ3Jlc3NWZXJzaW9uUHJpbWFyeTtpZihudWxsIT09ZSlhPWU9PT1kO2Vsc2UgaWYoYT1hLm11dGFibGVSZWFkTGFuZXMsYT0oeGgmYSk9PT1hKWIuX3dvcmtJblByb2dyZXNzVmVyc2lvblByaW1hcnk9ZCx0aC5wdXNoKGIpO2lmKGEpcmV0dXJuIGMoYi5fc291cmNlKTt0aC5wdXNoKGIpO3Rocm93IEVycm9yKHkoMzUwKSk7fVxuZnVuY3Rpb24gTmgoYSxiLGMsZCl7dmFyIGU9VTtpZihudWxsPT09ZSl0aHJvdyBFcnJvcih5KDM0OSkpO3ZhciBmPWIuX2dldFZlcnNpb24sZz1mKGIuX3NvdXJjZSksaD12aC5jdXJyZW50LGs9aC51c2VTdGF0ZShmdW5jdGlvbigpe3JldHVybiBNaChlLGIsYyl9KSxsPWtbMV0sbj1rWzBdO2s9VDt2YXIgQT1hLm1lbW9pemVkU3RhdGUscD1BLnJlZnMsQz1wLmdldFNuYXBzaG90LHg9QS5zb3VyY2U7QT1BLnN1YnNjcmliZTt2YXIgdz1SO2EubWVtb2l6ZWRTdGF0ZT17cmVmczpwLHNvdXJjZTpiLHN1YnNjcmliZTpkfTtoLnVzZUVmZmVjdChmdW5jdGlvbigpe3AuZ2V0U25hcHNob3Q9YztwLnNldFNuYXBzaG90PWw7dmFyIGE9ZihiLl9zb3VyY2UpO2lmKCFIZShnLGEpKXthPWMoYi5fc291cmNlKTtIZShuLGEpfHwobChhKSxhPUlnKHcpLGUubXV0YWJsZVJlYWRMYW5lc3w9YSZlLnBlbmRpbmdMYW5lcyk7YT1lLm11dGFibGVSZWFkTGFuZXM7ZS5lbnRhbmdsZWRMYW5lc3w9YTtmb3IodmFyIGQ9XG5lLmVudGFuZ2xlbWVudHMsaD1hOzA8aDspe3ZhciBrPTMxLVZjKGgpLHY9MTw8aztkW2tdfD1hO2gmPX52fX19LFtjLGIsZF0pO2gudXNlRWZmZWN0KGZ1bmN0aW9uKCl7cmV0dXJuIGQoYi5fc291cmNlLGZ1bmN0aW9uKCl7dmFyIGE9cC5nZXRTbmFwc2hvdCxjPXAuc2V0U25hcHNob3Q7dHJ5e2MoYShiLl9zb3VyY2UpKTt2YXIgZD1JZyh3KTtlLm11dGFibGVSZWFkTGFuZXN8PWQmZS5wZW5kaW5nTGFuZXN9Y2F0Y2gocSl7YyhmdW5jdGlvbigpe3Rocm93IHE7fSl9fSl9LFtiLGRdKTtIZShDLGMpJiZIZSh4LGIpJiZIZShBLGQpfHwoYT17cGVuZGluZzpudWxsLGRpc3BhdGNoOm51bGwsbGFzdFJlbmRlcmVkUmVkdWNlcjpKaCxsYXN0UmVuZGVyZWRTdGF0ZTpufSxhLmRpc3BhdGNoPWw9T2guYmluZChudWxsLFIsYSksay5xdWV1ZT1hLGsuYmFzZVF1ZXVlPW51bGwsbj1NaChlLGIsYyksay5tZW1vaXplZFN0YXRlPWsuYmFzZVN0YXRlPW4pO3JldHVybiBufVxuZnVuY3Rpb24gUGgoYSxiLGMpe3ZhciBkPUloKCk7cmV0dXJuIE5oKGQsYSxiLGMpfWZ1bmN0aW9uIFFoKGEpe3ZhciBiPUhoKCk7XCJmdW5jdGlvblwiPT09dHlwZW9mIGEmJihhPWEoKSk7Yi5tZW1vaXplZFN0YXRlPWIuYmFzZVN0YXRlPWE7YT1iLnF1ZXVlPXtwZW5kaW5nOm51bGwsZGlzcGF0Y2g6bnVsbCxsYXN0UmVuZGVyZWRSZWR1Y2VyOkpoLGxhc3RSZW5kZXJlZFN0YXRlOmF9O2E9YS5kaXNwYXRjaD1PaC5iaW5kKG51bGwsUixhKTtyZXR1cm5bYi5tZW1vaXplZFN0YXRlLGFdfVxuZnVuY3Rpb24gUmgoYSxiLGMsZCl7YT17dGFnOmEsY3JlYXRlOmIsZGVzdHJveTpjLGRlcHM6ZCxuZXh0Om51bGx9O2I9Ui51cGRhdGVRdWV1ZTtudWxsPT09Yj8oYj17bGFzdEVmZmVjdDpudWxsfSxSLnVwZGF0ZVF1ZXVlPWIsYi5sYXN0RWZmZWN0PWEubmV4dD1hKTooYz1iLmxhc3RFZmZlY3QsbnVsbD09PWM/Yi5sYXN0RWZmZWN0PWEubmV4dD1hOihkPWMubmV4dCxjLm5leHQ9YSxhLm5leHQ9ZCxiLmxhc3RFZmZlY3Q9YSkpO3JldHVybiBhfWZ1bmN0aW9uIFNoKGEpe3ZhciBiPUhoKCk7YT17Y3VycmVudDphfTtyZXR1cm4gYi5tZW1vaXplZFN0YXRlPWF9ZnVuY3Rpb24gVGgoKXtyZXR1cm4gSWgoKS5tZW1vaXplZFN0YXRlfWZ1bmN0aW9uIFVoKGEsYixjLGQpe3ZhciBlPUhoKCk7Ui5mbGFnc3w9YTtlLm1lbW9pemVkU3RhdGU9UmgoMXxiLGMsdm9pZCAwLHZvaWQgMD09PWQ/bnVsbDpkKX1cbmZ1bmN0aW9uIFZoKGEsYixjLGQpe3ZhciBlPUloKCk7ZD12b2lkIDA9PT1kP251bGw6ZDt2YXIgZj12b2lkIDA7aWYobnVsbCE9PVMpe3ZhciBnPVMubWVtb2l6ZWRTdGF0ZTtmPWcuZGVzdHJveTtpZihudWxsIT09ZCYmQmgoZCxnLmRlcHMpKXtSaChiLGMsZixkKTtyZXR1cm59fVIuZmxhZ3N8PWE7ZS5tZW1vaXplZFN0YXRlPVJoKDF8YixjLGYsZCl9ZnVuY3Rpb24gV2goYSxiKXtyZXR1cm4gVWgoNTE2LDQsYSxiKX1mdW5jdGlvbiBYaChhLGIpe3JldHVybiBWaCg1MTYsNCxhLGIpfWZ1bmN0aW9uIFloKGEsYil7cmV0dXJuIFZoKDQsMixhLGIpfWZ1bmN0aW9uIFpoKGEsYil7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGIpcmV0dXJuIGE9YSgpLGIoYSksZnVuY3Rpb24oKXtiKG51bGwpfTtpZihudWxsIT09YiYmdm9pZCAwIT09YilyZXR1cm4gYT1hKCksYi5jdXJyZW50PWEsZnVuY3Rpb24oKXtiLmN1cnJlbnQ9bnVsbH19XG5mdW5jdGlvbiAkaChhLGIsYyl7Yz1udWxsIT09YyYmdm9pZCAwIT09Yz9jLmNvbmNhdChbYV0pOm51bGw7cmV0dXJuIFZoKDQsMixaaC5iaW5kKG51bGwsYixhKSxjKX1mdW5jdGlvbiBhaSgpe31mdW5jdGlvbiBiaShhLGIpe3ZhciBjPUloKCk7Yj12b2lkIDA9PT1iP251bGw6Yjt2YXIgZD1jLm1lbW9pemVkU3RhdGU7aWYobnVsbCE9PWQmJm51bGwhPT1iJiZCaChiLGRbMV0pKXJldHVybiBkWzBdO2MubWVtb2l6ZWRTdGF0ZT1bYSxiXTtyZXR1cm4gYX1mdW5jdGlvbiBjaShhLGIpe3ZhciBjPUloKCk7Yj12b2lkIDA9PT1iP251bGw6Yjt2YXIgZD1jLm1lbW9pemVkU3RhdGU7aWYobnVsbCE9PWQmJm51bGwhPT1iJiZCaChiLGRbMV0pKXJldHVybiBkWzBdO2E9YSgpO2MubWVtb2l6ZWRTdGF0ZT1bYSxiXTtyZXR1cm4gYX1cbmZ1bmN0aW9uIGRpKGEsYil7dmFyIGM9ZWcoKTtnZyg5OD5jPzk4OmMsZnVuY3Rpb24oKXthKCEwKX0pO2dnKDk3PGM/OTc6YyxmdW5jdGlvbigpe3ZhciBjPXdoLnRyYW5zaXRpb247d2gudHJhbnNpdGlvbj0xO3RyeXthKCExKSxiKCl9ZmluYWxseXt3aC50cmFuc2l0aW9uPWN9fSl9XG5mdW5jdGlvbiBPaChhLGIsYyl7dmFyIGQ9SGcoKSxlPUlnKGEpLGY9e2xhbmU6ZSxhY3Rpb246YyxlYWdlclJlZHVjZXI6bnVsbCxlYWdlclN0YXRlOm51bGwsbmV4dDpudWxsfSxnPWIucGVuZGluZztudWxsPT09Zz9mLm5leHQ9ZjooZi5uZXh0PWcubmV4dCxnLm5leHQ9Zik7Yi5wZW5kaW5nPWY7Zz1hLmFsdGVybmF0ZTtpZihhPT09Unx8bnVsbCE9PWcmJmc9PT1SKXpoPXloPSEwO2Vsc2V7aWYoMD09PWEubGFuZXMmJihudWxsPT09Z3x8MD09PWcubGFuZXMpJiYoZz1iLmxhc3RSZW5kZXJlZFJlZHVjZXIsbnVsbCE9PWcpKXRyeXt2YXIgaD1iLmxhc3RSZW5kZXJlZFN0YXRlLGs9ZyhoLGMpO2YuZWFnZXJSZWR1Y2VyPWc7Zi5lYWdlclN0YXRlPWs7aWYoSGUoayxoKSlyZXR1cm59Y2F0Y2gobCl7fWZpbmFsbHl7fUpnKGEsZSxkKX19XG52YXIgR2g9e3JlYWRDb250ZXh0OnZnLHVzZUNhbGxiYWNrOkFoLHVzZUNvbnRleHQ6QWgsdXNlRWZmZWN0OkFoLHVzZUltcGVyYXRpdmVIYW5kbGU6QWgsdXNlTGF5b3V0RWZmZWN0OkFoLHVzZU1lbW86QWgsdXNlUmVkdWNlcjpBaCx1c2VSZWY6QWgsdXNlU3RhdGU6QWgsdXNlRGVidWdWYWx1ZTpBaCx1c2VEZWZlcnJlZFZhbHVlOkFoLHVzZVRyYW5zaXRpb246QWgsdXNlTXV0YWJsZVNvdXJjZTpBaCx1c2VPcGFxdWVJZGVudGlmaWVyOkFoLHVuc3RhYmxlX2lzTmV3UmVjb25jaWxlcjohMX0sRGg9e3JlYWRDb250ZXh0OnZnLHVzZUNhbGxiYWNrOmZ1bmN0aW9uKGEsYil7SGgoKS5tZW1vaXplZFN0YXRlPVthLHZvaWQgMD09PWI/bnVsbDpiXTtyZXR1cm4gYX0sdXNlQ29udGV4dDp2Zyx1c2VFZmZlY3Q6V2gsdXNlSW1wZXJhdGl2ZUhhbmRsZTpmdW5jdGlvbihhLGIsYyl7Yz1udWxsIT09YyYmdm9pZCAwIT09Yz9jLmNvbmNhdChbYV0pOm51bGw7cmV0dXJuIFVoKDQsMixaaC5iaW5kKG51bGwsXG5iLGEpLGMpfSx1c2VMYXlvdXRFZmZlY3Q6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gVWgoNCwyLGEsYil9LHVzZU1lbW86ZnVuY3Rpb24oYSxiKXt2YXIgYz1IaCgpO2I9dm9pZCAwPT09Yj9udWxsOmI7YT1hKCk7Yy5tZW1vaXplZFN0YXRlPVthLGJdO3JldHVybiBhfSx1c2VSZWR1Y2VyOmZ1bmN0aW9uKGEsYixjKXt2YXIgZD1IaCgpO2I9dm9pZCAwIT09Yz9jKGIpOmI7ZC5tZW1vaXplZFN0YXRlPWQuYmFzZVN0YXRlPWI7YT1kLnF1ZXVlPXtwZW5kaW5nOm51bGwsZGlzcGF0Y2g6bnVsbCxsYXN0UmVuZGVyZWRSZWR1Y2VyOmEsbGFzdFJlbmRlcmVkU3RhdGU6Yn07YT1hLmRpc3BhdGNoPU9oLmJpbmQobnVsbCxSLGEpO3JldHVybltkLm1lbW9pemVkU3RhdGUsYV19LHVzZVJlZjpTaCx1c2VTdGF0ZTpRaCx1c2VEZWJ1Z1ZhbHVlOmFpLHVzZURlZmVycmVkVmFsdWU6ZnVuY3Rpb24oYSl7dmFyIGI9UWgoYSksYz1iWzBdLGQ9YlsxXTtXaChmdW5jdGlvbigpe3ZhciBiPXdoLnRyYW5zaXRpb247XG53aC50cmFuc2l0aW9uPTE7dHJ5e2QoYSl9ZmluYWxseXt3aC50cmFuc2l0aW9uPWJ9fSxbYV0pO3JldHVybiBjfSx1c2VUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7dmFyIGE9UWgoITEpLGI9YVswXTthPWRpLmJpbmQobnVsbCxhWzFdKTtTaChhKTtyZXR1cm5bYSxiXX0sdXNlTXV0YWJsZVNvdXJjZTpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9SGgoKTtkLm1lbW9pemVkU3RhdGU9e3JlZnM6e2dldFNuYXBzaG90OmIsc2V0U25hcHNob3Q6bnVsbH0sc291cmNlOmEsc3Vic2NyaWJlOmN9O3JldHVybiBOaChkLGEsYixjKX0sdXNlT3BhcXVlSWRlbnRpZmllcjpmdW5jdGlvbigpe2lmKGxoKXt2YXIgYT0hMSxiPXVmKGZ1bmN0aW9uKCl7YXx8KGE9ITAsYyhcInI6XCIrKHRmKyspLnRvU3RyaW5nKDM2KSkpO3Rocm93IEVycm9yKHkoMzU1KSk7fSksYz1RaChiKVsxXTswPT09KFIubW9kZSYyKSYmKFIuZmxhZ3N8PTUxNixSaCg1LGZ1bmN0aW9uKCl7YyhcInI6XCIrKHRmKyspLnRvU3RyaW5nKDM2KSl9LFxudm9pZCAwLG51bGwpKTtyZXR1cm4gYn1iPVwicjpcIisodGYrKykudG9TdHJpbmcoMzYpO1FoKGIpO3JldHVybiBifSx1bnN0YWJsZV9pc05ld1JlY29uY2lsZXI6ITF9LEVoPXtyZWFkQ29udGV4dDp2Zyx1c2VDYWxsYmFjazpiaSx1c2VDb250ZXh0OnZnLHVzZUVmZmVjdDpYaCx1c2VJbXBlcmF0aXZlSGFuZGxlOiRoLHVzZUxheW91dEVmZmVjdDpZaCx1c2VNZW1vOmNpLHVzZVJlZHVjZXI6S2gsdXNlUmVmOlRoLHVzZVN0YXRlOmZ1bmN0aW9uKCl7cmV0dXJuIEtoKEpoKX0sdXNlRGVidWdWYWx1ZTphaSx1c2VEZWZlcnJlZFZhbHVlOmZ1bmN0aW9uKGEpe3ZhciBiPUtoKEpoKSxjPWJbMF0sZD1iWzFdO1hoKGZ1bmN0aW9uKCl7dmFyIGI9d2gudHJhbnNpdGlvbjt3aC50cmFuc2l0aW9uPTE7dHJ5e2QoYSl9ZmluYWxseXt3aC50cmFuc2l0aW9uPWJ9fSxbYV0pO3JldHVybiBjfSx1c2VUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7dmFyIGE9S2goSmgpWzBdO3JldHVybltUaCgpLmN1cnJlbnQsXG5hXX0sdXNlTXV0YWJsZVNvdXJjZTpQaCx1c2VPcGFxdWVJZGVudGlmaWVyOmZ1bmN0aW9uKCl7cmV0dXJuIEtoKEpoKVswXX0sdW5zdGFibGVfaXNOZXdSZWNvbmNpbGVyOiExfSxGaD17cmVhZENvbnRleHQ6dmcsdXNlQ2FsbGJhY2s6YmksdXNlQ29udGV4dDp2Zyx1c2VFZmZlY3Q6WGgsdXNlSW1wZXJhdGl2ZUhhbmRsZTokaCx1c2VMYXlvdXRFZmZlY3Q6WWgsdXNlTWVtbzpjaSx1c2VSZWR1Y2VyOkxoLHVzZVJlZjpUaCx1c2VTdGF0ZTpmdW5jdGlvbigpe3JldHVybiBMaChKaCl9LHVzZURlYnVnVmFsdWU6YWksdXNlRGVmZXJyZWRWYWx1ZTpmdW5jdGlvbihhKXt2YXIgYj1MaChKaCksYz1iWzBdLGQ9YlsxXTtYaChmdW5jdGlvbigpe3ZhciBiPXdoLnRyYW5zaXRpb247d2gudHJhbnNpdGlvbj0xO3RyeXtkKGEpfWZpbmFsbHl7d2gudHJhbnNpdGlvbj1ifX0sW2FdKTtyZXR1cm4gY30sdXNlVHJhbnNpdGlvbjpmdW5jdGlvbigpe3ZhciBhPUxoKEpoKVswXTtyZXR1cm5bVGgoKS5jdXJyZW50LFxuYV19LHVzZU11dGFibGVTb3VyY2U6UGgsdXNlT3BhcXVlSWRlbnRpZmllcjpmdW5jdGlvbigpe3JldHVybiBMaChKaClbMF19LHVuc3RhYmxlX2lzTmV3UmVjb25jaWxlcjohMX0sZWk9cmEuUmVhY3RDdXJyZW50T3duZXIsdWc9ITE7ZnVuY3Rpb24gZmkoYSxiLGMsZCl7Yi5jaGlsZD1udWxsPT09YT9aZyhiLG51bGwsYyxkKTpZZyhiLGEuY2hpbGQsYyxkKX1mdW5jdGlvbiBnaShhLGIsYyxkLGUpe2M9Yy5yZW5kZXI7dmFyIGY9Yi5yZWY7dGcoYixlKTtkPUNoKGEsYixjLGQsZixlKTtpZihudWxsIT09YSYmIXVnKXJldHVybiBiLnVwZGF0ZVF1ZXVlPWEudXBkYXRlUXVldWUsYi5mbGFncyY9LTUxNyxhLmxhbmVzJj1+ZSxoaShhLGIsZSk7Yi5mbGFnc3w9MTtmaShhLGIsZCxlKTtyZXR1cm4gYi5jaGlsZH1cbmZ1bmN0aW9uIGlpKGEsYixjLGQsZSxmKXtpZihudWxsPT09YSl7dmFyIGc9Yy50eXBlO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBnJiYhamkoZykmJnZvaWQgMD09PWcuZGVmYXVsdFByb3BzJiZudWxsPT09Yy5jb21wYXJlJiZ2b2lkIDA9PT1jLmRlZmF1bHRQcm9wcylyZXR1cm4gYi50YWc9MTUsYi50eXBlPWcsa2koYSxiLGcsZCxlLGYpO2E9VmcoYy50eXBlLG51bGwsZCxiLGIubW9kZSxmKTthLnJlZj1iLnJlZjthLnJldHVybj1iO3JldHVybiBiLmNoaWxkPWF9Zz1hLmNoaWxkO2lmKDA9PT0oZSZmKSYmKGU9Zy5tZW1vaXplZFByb3BzLGM9Yy5jb21wYXJlLGM9bnVsbCE9PWM/YzpKZSxjKGUsZCkmJmEucmVmPT09Yi5yZWYpKXJldHVybiBoaShhLGIsZik7Yi5mbGFnc3w9MTthPVRnKGcsZCk7YS5yZWY9Yi5yZWY7YS5yZXR1cm49YjtyZXR1cm4gYi5jaGlsZD1hfVxuZnVuY3Rpb24ga2koYSxiLGMsZCxlLGYpe2lmKG51bGwhPT1hJiZKZShhLm1lbW9pemVkUHJvcHMsZCkmJmEucmVmPT09Yi5yZWYpaWYodWc9ITEsMCE9PShmJmUpKTAhPT0oYS5mbGFncyYxNjM4NCkmJih1Zz0hMCk7ZWxzZSByZXR1cm4gYi5sYW5lcz1hLmxhbmVzLGhpKGEsYixmKTtyZXR1cm4gbGkoYSxiLGMsZCxmKX1cbmZ1bmN0aW9uIG1pKGEsYixjKXt2YXIgZD1iLnBlbmRpbmdQcm9wcyxlPWQuY2hpbGRyZW4sZj1udWxsIT09YT9hLm1lbW9pemVkU3RhdGU6bnVsbDtpZihcImhpZGRlblwiPT09ZC5tb2RlfHxcInVuc3RhYmxlLWRlZmVyLXdpdGhvdXQtaGlkaW5nXCI9PT1kLm1vZGUpaWYoMD09PShiLm1vZGUmNCkpYi5tZW1vaXplZFN0YXRlPXtiYXNlTGFuZXM6MH0sbmkoYixjKTtlbHNlIGlmKDAhPT0oYyYxMDczNzQxODI0KSliLm1lbW9pemVkU3RhdGU9e2Jhc2VMYW5lczowfSxuaShiLG51bGwhPT1mP2YuYmFzZUxhbmVzOmMpO2Vsc2UgcmV0dXJuIGE9bnVsbCE9PWY/Zi5iYXNlTGFuZXN8YzpjLGIubGFuZXM9Yi5jaGlsZExhbmVzPTEwNzM3NDE4MjQsYi5tZW1vaXplZFN0YXRlPXtiYXNlTGFuZXM6YX0sbmkoYixhKSxudWxsO2Vsc2UgbnVsbCE9PWY/KGQ9Zi5iYXNlTGFuZXN8YyxiLm1lbW9pemVkU3RhdGU9bnVsbCk6ZD1jLG5pKGIsZCk7ZmkoYSxiLGUsYyk7cmV0dXJuIGIuY2hpbGR9XG5mdW5jdGlvbiBvaShhLGIpe3ZhciBjPWIucmVmO2lmKG51bGw9PT1hJiZudWxsIT09Y3x8bnVsbCE9PWEmJmEucmVmIT09YyliLmZsYWdzfD0xMjh9ZnVuY3Rpb24gbGkoYSxiLGMsZCxlKXt2YXIgZj1GZihjKT9EZjpNLmN1cnJlbnQ7Zj1FZihiLGYpO3RnKGIsZSk7Yz1DaChhLGIsYyxkLGYsZSk7aWYobnVsbCE9PWEmJiF1ZylyZXR1cm4gYi51cGRhdGVRdWV1ZT1hLnVwZGF0ZVF1ZXVlLGIuZmxhZ3MmPS01MTcsYS5sYW5lcyY9fmUsaGkoYSxiLGUpO2IuZmxhZ3N8PTE7ZmkoYSxiLGMsZSk7cmV0dXJuIGIuY2hpbGR9XG5mdW5jdGlvbiBwaShhLGIsYyxkLGUpe2lmKEZmKGMpKXt2YXIgZj0hMDtKZihiKX1lbHNlIGY9ITE7dGcoYixlKTtpZihudWxsPT09Yi5zdGF0ZU5vZGUpbnVsbCE9PWEmJihhLmFsdGVybmF0ZT1udWxsLGIuYWx0ZXJuYXRlPW51bGwsYi5mbGFnc3w9MiksTWcoYixjLGQpLE9nKGIsYyxkLGUpLGQ9ITA7ZWxzZSBpZihudWxsPT09YSl7dmFyIGc9Yi5zdGF0ZU5vZGUsaD1iLm1lbW9pemVkUHJvcHM7Zy5wcm9wcz1oO3ZhciBrPWcuY29udGV4dCxsPWMuY29udGV4dFR5cGU7XCJvYmplY3RcIj09PXR5cGVvZiBsJiZudWxsIT09bD9sPXZnKGwpOihsPUZmKGMpP0RmOk0uY3VycmVudCxsPUVmKGIsbCkpO3ZhciBuPWMuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzLEE9XCJmdW5jdGlvblwiPT09dHlwZW9mIG58fFwiZnVuY3Rpb25cIj09PXR5cGVvZiBnLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlO0F8fFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBnLlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzJiZcblwiZnVuY3Rpb25cIiE9PXR5cGVvZiBnLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHN8fChoIT09ZHx8ayE9PWwpJiZOZyhiLGcsZCxsKTt3Zz0hMTt2YXIgcD1iLm1lbW9pemVkU3RhdGU7Zy5zdGF0ZT1wO0NnKGIsZCxnLGUpO2s9Yi5tZW1vaXplZFN0YXRlO2ghPT1kfHxwIT09a3x8Ti5jdXJyZW50fHx3Zz8oXCJmdW5jdGlvblwiPT09dHlwZW9mIG4mJihHZyhiLGMsbixkKSxrPWIubWVtb2l6ZWRTdGF0ZSksKGg9d2d8fExnKGIsYyxoLGQscCxrLGwpKT8oQXx8XCJmdW5jdGlvblwiIT09dHlwZW9mIGcuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCYmXCJmdW5jdGlvblwiIT09dHlwZW9mIGcuY29tcG9uZW50V2lsbE1vdW50fHwoXCJmdW5jdGlvblwiPT09dHlwZW9mIGcuY29tcG9uZW50V2lsbE1vdW50JiZnLmNvbXBvbmVudFdpbGxNb3VudCgpLFwiZnVuY3Rpb25cIj09PXR5cGVvZiBnLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQmJmcuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCgpKSxcImZ1bmN0aW9uXCI9PT1cbnR5cGVvZiBnLmNvbXBvbmVudERpZE1vdW50JiYoYi5mbGFnc3w9NCkpOihcImZ1bmN0aW9uXCI9PT10eXBlb2YgZy5jb21wb25lbnREaWRNb3VudCYmKGIuZmxhZ3N8PTQpLGIubWVtb2l6ZWRQcm9wcz1kLGIubWVtb2l6ZWRTdGF0ZT1rKSxnLnByb3BzPWQsZy5zdGF0ZT1rLGcuY29udGV4dD1sLGQ9aCk6KFwiZnVuY3Rpb25cIj09PXR5cGVvZiBnLmNvbXBvbmVudERpZE1vdW50JiYoYi5mbGFnc3w9NCksZD0hMSl9ZWxzZXtnPWIuc3RhdGVOb2RlO3lnKGEsYik7aD1iLm1lbW9pemVkUHJvcHM7bD1iLnR5cGU9PT1iLmVsZW1lbnRUeXBlP2g6bGcoYi50eXBlLGgpO2cucHJvcHM9bDtBPWIucGVuZGluZ1Byb3BzO3A9Zy5jb250ZXh0O2s9Yy5jb250ZXh0VHlwZTtcIm9iamVjdFwiPT09dHlwZW9mIGsmJm51bGwhPT1rP2s9dmcoayk6KGs9RmYoYyk/RGY6TS5jdXJyZW50LGs9RWYoYixrKSk7dmFyIEM9Yy5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHM7KG49XCJmdW5jdGlvblwiPT09dHlwZW9mIEN8fFxuXCJmdW5jdGlvblwiPT09dHlwZW9mIGcuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUpfHxcImZ1bmN0aW9uXCIhPT10eXBlb2YgZy5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyYmXCJmdW5jdGlvblwiIT09dHlwZW9mIGcuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc3x8KGghPT1BfHxwIT09aykmJk5nKGIsZyxkLGspO3dnPSExO3A9Yi5tZW1vaXplZFN0YXRlO2cuc3RhdGU9cDtDZyhiLGQsZyxlKTt2YXIgeD1iLm1lbW9pemVkU3RhdGU7aCE9PUF8fHAhPT14fHxOLmN1cnJlbnR8fHdnPyhcImZ1bmN0aW9uXCI9PT10eXBlb2YgQyYmKEdnKGIsYyxDLGQpLHg9Yi5tZW1vaXplZFN0YXRlKSwobD13Z3x8TGcoYixjLGwsZCxwLHgsaykpPyhufHxcImZ1bmN0aW9uXCIhPT10eXBlb2YgZy5VTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZSYmXCJmdW5jdGlvblwiIT09dHlwZW9mIGcuY29tcG9uZW50V2lsbFVwZGF0ZXx8KFwiZnVuY3Rpb25cIj09PXR5cGVvZiBnLmNvbXBvbmVudFdpbGxVcGRhdGUmJmcuY29tcG9uZW50V2lsbFVwZGF0ZShkLFxueCxrKSxcImZ1bmN0aW9uXCI9PT10eXBlb2YgZy5VTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZSYmZy5VTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZShkLHgsaykpLFwiZnVuY3Rpb25cIj09PXR5cGVvZiBnLmNvbXBvbmVudERpZFVwZGF0ZSYmKGIuZmxhZ3N8PTQpLFwiZnVuY3Rpb25cIj09PXR5cGVvZiBnLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlJiYoYi5mbGFnc3w9MjU2KSk6KFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBnLmNvbXBvbmVudERpZFVwZGF0ZXx8aD09PWEubWVtb2l6ZWRQcm9wcyYmcD09PWEubWVtb2l6ZWRTdGF0ZXx8KGIuZmxhZ3N8PTQpLFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBnLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlfHxoPT09YS5tZW1vaXplZFByb3BzJiZwPT09YS5tZW1vaXplZFN0YXRlfHwoYi5mbGFnc3w9MjU2KSxiLm1lbW9pemVkUHJvcHM9ZCxiLm1lbW9pemVkU3RhdGU9eCksZy5wcm9wcz1kLGcuc3RhdGU9eCxnLmNvbnRleHQ9ayxkPWwpOihcImZ1bmN0aW9uXCIhPT10eXBlb2YgZy5jb21wb25lbnREaWRVcGRhdGV8fFxuaD09PWEubWVtb2l6ZWRQcm9wcyYmcD09PWEubWVtb2l6ZWRTdGF0ZXx8KGIuZmxhZ3N8PTQpLFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBnLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlfHxoPT09YS5tZW1vaXplZFByb3BzJiZwPT09YS5tZW1vaXplZFN0YXRlfHwoYi5mbGFnc3w9MjU2KSxkPSExKX1yZXR1cm4gcWkoYSxiLGMsZCxmLGUpfVxuZnVuY3Rpb24gcWkoYSxiLGMsZCxlLGYpe29pKGEsYik7dmFyIGc9MCE9PShiLmZsYWdzJjY0KTtpZighZCYmIWcpcmV0dXJuIGUmJktmKGIsYywhMSksaGkoYSxiLGYpO2Q9Yi5zdGF0ZU5vZGU7ZWkuY3VycmVudD1iO3ZhciBoPWcmJlwiZnVuY3Rpb25cIiE9PXR5cGVvZiBjLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcj9udWxsOmQucmVuZGVyKCk7Yi5mbGFnc3w9MTtudWxsIT09YSYmZz8oYi5jaGlsZD1ZZyhiLGEuY2hpbGQsbnVsbCxmKSxiLmNoaWxkPVlnKGIsbnVsbCxoLGYpKTpmaShhLGIsaCxmKTtiLm1lbW9pemVkU3RhdGU9ZC5zdGF0ZTtlJiZLZihiLGMsITApO3JldHVybiBiLmNoaWxkfWZ1bmN0aW9uIHJpKGEpe3ZhciBiPWEuc3RhdGVOb2RlO2IucGVuZGluZ0NvbnRleHQ/SGYoYSxiLnBlbmRpbmdDb250ZXh0LGIucGVuZGluZ0NvbnRleHQhPT1iLmNvbnRleHQpOmIuY29udGV4dCYmSGYoYSxiLmNvbnRleHQsITEpO2VoKGEsYi5jb250YWluZXJJbmZvKX1cbnZhciBzaT17ZGVoeWRyYXRlZDpudWxsLHJldHJ5TGFuZTowfTtcbmZ1bmN0aW9uIHRpKGEsYixjKXt2YXIgZD1iLnBlbmRpbmdQcm9wcyxlPVAuY3VycmVudCxmPSExLGc7KGc9MCE9PShiLmZsYWdzJjY0KSl8fChnPW51bGwhPT1hJiZudWxsPT09YS5tZW1vaXplZFN0YXRlPyExOjAhPT0oZSYyKSk7Zz8oZj0hMCxiLmZsYWdzJj0tNjUpOm51bGwhPT1hJiZudWxsPT09YS5tZW1vaXplZFN0YXRlfHx2b2lkIDA9PT1kLmZhbGxiYWNrfHwhMD09PWQudW5zdGFibGVfYXZvaWRUaGlzRmFsbGJhY2t8fChlfD0xKTtJKFAsZSYxKTtpZihudWxsPT09YSl7dm9pZCAwIT09ZC5mYWxsYmFjayYmcGgoYik7YT1kLmNoaWxkcmVuO2U9ZC5mYWxsYmFjaztpZihmKXJldHVybiBhPXVpKGIsYSxlLGMpLGIuY2hpbGQubWVtb2l6ZWRTdGF0ZT17YmFzZUxhbmVzOmN9LGIubWVtb2l6ZWRTdGF0ZT1zaSxhO2lmKFwibnVtYmVyXCI9PT10eXBlb2YgZC51bnN0YWJsZV9leHBlY3RlZExvYWRUaW1lKXJldHVybiBhPXVpKGIsYSxlLGMpLGIuY2hpbGQubWVtb2l6ZWRTdGF0ZT17YmFzZUxhbmVzOmN9LFxuYi5tZW1vaXplZFN0YXRlPXNpLGIubGFuZXM9MzM1NTQ0MzIsYTtjPXZpKHttb2RlOlwidmlzaWJsZVwiLGNoaWxkcmVuOmF9LGIubW9kZSxjLG51bGwpO2MucmV0dXJuPWI7cmV0dXJuIGIuY2hpbGQ9Y31pZihudWxsIT09YS5tZW1vaXplZFN0YXRlKXtpZihmKXJldHVybiBkPXdpKGEsYixkLmNoaWxkcmVuLGQuZmFsbGJhY2ssYyksZj1iLmNoaWxkLGU9YS5jaGlsZC5tZW1vaXplZFN0YXRlLGYubWVtb2l6ZWRTdGF0ZT1udWxsPT09ZT97YmFzZUxhbmVzOmN9OntiYXNlTGFuZXM6ZS5iYXNlTGFuZXN8Y30sZi5jaGlsZExhbmVzPWEuY2hpbGRMYW5lcyZ+YyxiLm1lbW9pemVkU3RhdGU9c2ksZDtjPXhpKGEsYixkLmNoaWxkcmVuLGMpO2IubWVtb2l6ZWRTdGF0ZT1udWxsO3JldHVybiBjfWlmKGYpcmV0dXJuIGQ9d2koYSxiLGQuY2hpbGRyZW4sZC5mYWxsYmFjayxjKSxmPWIuY2hpbGQsZT1hLmNoaWxkLm1lbW9pemVkU3RhdGUsZi5tZW1vaXplZFN0YXRlPW51bGw9PT1lP3tiYXNlTGFuZXM6Y306XG57YmFzZUxhbmVzOmUuYmFzZUxhbmVzfGN9LGYuY2hpbGRMYW5lcz1hLmNoaWxkTGFuZXMmfmMsYi5tZW1vaXplZFN0YXRlPXNpLGQ7Yz14aShhLGIsZC5jaGlsZHJlbixjKTtiLm1lbW9pemVkU3RhdGU9bnVsbDtyZXR1cm4gY31mdW5jdGlvbiB1aShhLGIsYyxkKXt2YXIgZT1hLm1vZGUsZj1hLmNoaWxkO2I9e21vZGU6XCJoaWRkZW5cIixjaGlsZHJlbjpifTswPT09KGUmMikmJm51bGwhPT1mPyhmLmNoaWxkTGFuZXM9MCxmLnBlbmRpbmdQcm9wcz1iKTpmPXZpKGIsZSwwLG51bGwpO2M9WGcoYyxlLGQsbnVsbCk7Zi5yZXR1cm49YTtjLnJldHVybj1hO2Yuc2libGluZz1jO2EuY2hpbGQ9ZjtyZXR1cm4gY31cbmZ1bmN0aW9uIHhpKGEsYixjLGQpe3ZhciBlPWEuY2hpbGQ7YT1lLnNpYmxpbmc7Yz1UZyhlLHttb2RlOlwidmlzaWJsZVwiLGNoaWxkcmVuOmN9KTswPT09KGIubW9kZSYyKSYmKGMubGFuZXM9ZCk7Yy5yZXR1cm49YjtjLnNpYmxpbmc9bnVsbDtudWxsIT09YSYmKGEubmV4dEVmZmVjdD1udWxsLGEuZmxhZ3M9OCxiLmZpcnN0RWZmZWN0PWIubGFzdEVmZmVjdD1hKTtyZXR1cm4gYi5jaGlsZD1jfVxuZnVuY3Rpb24gd2koYSxiLGMsZCxlKXt2YXIgZj1iLm1vZGUsZz1hLmNoaWxkO2E9Zy5zaWJsaW5nO3ZhciBoPXttb2RlOlwiaGlkZGVuXCIsY2hpbGRyZW46Y307MD09PShmJjIpJiZiLmNoaWxkIT09Zz8oYz1iLmNoaWxkLGMuY2hpbGRMYW5lcz0wLGMucGVuZGluZ1Byb3BzPWgsZz1jLmxhc3RFZmZlY3QsbnVsbCE9PWc/KGIuZmlyc3RFZmZlY3Q9Yy5maXJzdEVmZmVjdCxiLmxhc3RFZmZlY3Q9ZyxnLm5leHRFZmZlY3Q9bnVsbCk6Yi5maXJzdEVmZmVjdD1iLmxhc3RFZmZlY3Q9bnVsbCk6Yz1UZyhnLGgpO251bGwhPT1hP2Q9VGcoYSxkKTooZD1YZyhkLGYsZSxudWxsKSxkLmZsYWdzfD0yKTtkLnJldHVybj1iO2MucmV0dXJuPWI7Yy5zaWJsaW5nPWQ7Yi5jaGlsZD1jO3JldHVybiBkfWZ1bmN0aW9uIHlpKGEsYil7YS5sYW5lc3w9Yjt2YXIgYz1hLmFsdGVybmF0ZTtudWxsIT09YyYmKGMubGFuZXN8PWIpO3NnKGEucmV0dXJuLGIpfVxuZnVuY3Rpb24gemkoYSxiLGMsZCxlLGYpe3ZhciBnPWEubWVtb2l6ZWRTdGF0ZTtudWxsPT09Zz9hLm1lbW9pemVkU3RhdGU9e2lzQmFja3dhcmRzOmIscmVuZGVyaW5nOm51bGwscmVuZGVyaW5nU3RhcnRUaW1lOjAsbGFzdDpkLHRhaWw6Yyx0YWlsTW9kZTplLGxhc3RFZmZlY3Q6Zn06KGcuaXNCYWNrd2FyZHM9YixnLnJlbmRlcmluZz1udWxsLGcucmVuZGVyaW5nU3RhcnRUaW1lPTAsZy5sYXN0PWQsZy50YWlsPWMsZy50YWlsTW9kZT1lLGcubGFzdEVmZmVjdD1mKX1cbmZ1bmN0aW9uIEFpKGEsYixjKXt2YXIgZD1iLnBlbmRpbmdQcm9wcyxlPWQucmV2ZWFsT3JkZXIsZj1kLnRhaWw7ZmkoYSxiLGQuY2hpbGRyZW4sYyk7ZD1QLmN1cnJlbnQ7aWYoMCE9PShkJjIpKWQ9ZCYxfDIsYi5mbGFnc3w9NjQ7ZWxzZXtpZihudWxsIT09YSYmMCE9PShhLmZsYWdzJjY0KSlhOmZvcihhPWIuY2hpbGQ7bnVsbCE9PWE7KXtpZigxMz09PWEudGFnKW51bGwhPT1hLm1lbW9pemVkU3RhdGUmJnlpKGEsYyk7ZWxzZSBpZigxOT09PWEudGFnKXlpKGEsYyk7ZWxzZSBpZihudWxsIT09YS5jaGlsZCl7YS5jaGlsZC5yZXR1cm49YTthPWEuY2hpbGQ7Y29udGludWV9aWYoYT09PWIpYnJlYWsgYTtmb3IoO251bGw9PT1hLnNpYmxpbmc7KXtpZihudWxsPT09YS5yZXR1cm58fGEucmV0dXJuPT09YilicmVhayBhO2E9YS5yZXR1cm59YS5zaWJsaW5nLnJldHVybj1hLnJldHVybjthPWEuc2libGluZ31kJj0xfUkoUCxkKTtpZigwPT09KGIubW9kZSYyKSliLm1lbW9pemVkU3RhdGU9XG5udWxsO2Vsc2Ugc3dpdGNoKGUpe2Nhc2UgXCJmb3J3YXJkc1wiOmM9Yi5jaGlsZDtmb3IoZT1udWxsO251bGwhPT1jOylhPWMuYWx0ZXJuYXRlLG51bGwhPT1hJiZudWxsPT09aWgoYSkmJihlPWMpLGM9Yy5zaWJsaW5nO2M9ZTtudWxsPT09Yz8oZT1iLmNoaWxkLGIuY2hpbGQ9bnVsbCk6KGU9Yy5zaWJsaW5nLGMuc2libGluZz1udWxsKTt6aShiLCExLGUsYyxmLGIubGFzdEVmZmVjdCk7YnJlYWs7Y2FzZSBcImJhY2t3YXJkc1wiOmM9bnVsbDtlPWIuY2hpbGQ7Zm9yKGIuY2hpbGQ9bnVsbDtudWxsIT09ZTspe2E9ZS5hbHRlcm5hdGU7aWYobnVsbCE9PWEmJm51bGw9PT1paChhKSl7Yi5jaGlsZD1lO2JyZWFrfWE9ZS5zaWJsaW5nO2Uuc2libGluZz1jO2M9ZTtlPWF9emkoYiwhMCxjLG51bGwsZixiLmxhc3RFZmZlY3QpO2JyZWFrO2Nhc2UgXCJ0b2dldGhlclwiOnppKGIsITEsbnVsbCxudWxsLHZvaWQgMCxiLmxhc3RFZmZlY3QpO2JyZWFrO2RlZmF1bHQ6Yi5tZW1vaXplZFN0YXRlPW51bGx9cmV0dXJuIGIuY2hpbGR9XG5mdW5jdGlvbiBoaShhLGIsYyl7bnVsbCE9PWEmJihiLmRlcGVuZGVuY2llcz1hLmRlcGVuZGVuY2llcyk7RGd8PWIubGFuZXM7aWYoMCE9PShjJmIuY2hpbGRMYW5lcykpe2lmKG51bGwhPT1hJiZiLmNoaWxkIT09YS5jaGlsZCl0aHJvdyBFcnJvcih5KDE1MykpO2lmKG51bGwhPT1iLmNoaWxkKXthPWIuY2hpbGQ7Yz1UZyhhLGEucGVuZGluZ1Byb3BzKTtiLmNoaWxkPWM7Zm9yKGMucmV0dXJuPWI7bnVsbCE9PWEuc2libGluZzspYT1hLnNpYmxpbmcsYz1jLnNpYmxpbmc9VGcoYSxhLnBlbmRpbmdQcm9wcyksYy5yZXR1cm49YjtjLnNpYmxpbmc9bnVsbH1yZXR1cm4gYi5jaGlsZH1yZXR1cm4gbnVsbH12YXIgQmksQ2ksRGksRWk7XG5CaT1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1iLmNoaWxkO251bGwhPT1jOyl7aWYoNT09PWMudGFnfHw2PT09Yy50YWcpYS5hcHBlbmRDaGlsZChjLnN0YXRlTm9kZSk7ZWxzZSBpZig0IT09Yy50YWcmJm51bGwhPT1jLmNoaWxkKXtjLmNoaWxkLnJldHVybj1jO2M9Yy5jaGlsZDtjb250aW51ZX1pZihjPT09YilicmVhaztmb3IoO251bGw9PT1jLnNpYmxpbmc7KXtpZihudWxsPT09Yy5yZXR1cm58fGMucmV0dXJuPT09YilyZXR1cm47Yz1jLnJldHVybn1jLnNpYmxpbmcucmV0dXJuPWMucmV0dXJuO2M9Yy5zaWJsaW5nfX07Q2k9ZnVuY3Rpb24oKXt9O1xuRGk9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9YS5tZW1vaXplZFByb3BzO2lmKGUhPT1kKXthPWIuc3RhdGVOb2RlO2RoKGFoLmN1cnJlbnQpO3ZhciBmPW51bGw7c3dpdGNoKGMpe2Nhc2UgXCJpbnB1dFwiOmU9WWEoYSxlKTtkPVlhKGEsZCk7Zj1bXTticmVhaztjYXNlIFwib3B0aW9uXCI6ZT1lYihhLGUpO2Q9ZWIoYSxkKTtmPVtdO2JyZWFrO2Nhc2UgXCJzZWxlY3RcIjplPW0oe30sZSx7dmFsdWU6dm9pZCAwfSk7ZD1tKHt9LGQse3ZhbHVlOnZvaWQgMH0pO2Y9W107YnJlYWs7Y2FzZSBcInRleHRhcmVhXCI6ZT1nYihhLGUpO2Q9Z2IoYSxkKTtmPVtdO2JyZWFrO2RlZmF1bHQ6XCJmdW5jdGlvblwiIT09dHlwZW9mIGUub25DbGljayYmXCJmdW5jdGlvblwiPT09dHlwZW9mIGQub25DbGljayYmKGEub25jbGljaz1qZil9dmIoYyxkKTt2YXIgZztjPW51bGw7Zm9yKGwgaW4gZSlpZighZC5oYXNPd25Qcm9wZXJ0eShsKSYmZS5oYXNPd25Qcm9wZXJ0eShsKSYmbnVsbCE9ZVtsXSlpZihcInN0eWxlXCI9PT1cbmwpe3ZhciBoPWVbbF07Zm9yKGcgaW4gaCloLmhhc093blByb3BlcnR5KGcpJiYoY3x8KGM9e30pLGNbZ109XCJcIil9ZWxzZVwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxcIiE9PWwmJlwiY2hpbGRyZW5cIiE9PWwmJlwic3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nXCIhPT1sJiZcInN1cHByZXNzSHlkcmF0aW9uV2FybmluZ1wiIT09bCYmXCJhdXRvRm9jdXNcIiE9PWwmJihjYS5oYXNPd25Qcm9wZXJ0eShsKT9mfHwoZj1bXSk6KGY9Znx8W10pLnB1c2gobCxudWxsKSk7Zm9yKGwgaW4gZCl7dmFyIGs9ZFtsXTtoPW51bGwhPWU/ZVtsXTp2b2lkIDA7aWYoZC5oYXNPd25Qcm9wZXJ0eShsKSYmayE9PWgmJihudWxsIT1rfHxudWxsIT1oKSlpZihcInN0eWxlXCI9PT1sKWlmKGgpe2ZvcihnIGluIGgpIWguaGFzT3duUHJvcGVydHkoZyl8fGsmJmsuaGFzT3duUHJvcGVydHkoZyl8fChjfHwoYz17fSksY1tnXT1cIlwiKTtmb3IoZyBpbiBrKWsuaGFzT3duUHJvcGVydHkoZykmJmhbZ10hPT1rW2ddJiYoY3x8XG4oYz17fSksY1tnXT1rW2ddKX1lbHNlIGN8fChmfHwoZj1bXSksZi5wdXNoKGwsYykpLGM9aztlbHNlXCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiPT09bD8oaz1rP2suX19odG1sOnZvaWQgMCxoPWg/aC5fX2h0bWw6dm9pZCAwLG51bGwhPWsmJmghPT1rJiYoZj1mfHxbXSkucHVzaChsLGspKTpcImNoaWxkcmVuXCI9PT1sP1wic3RyaW5nXCIhPT10eXBlb2YgayYmXCJudW1iZXJcIiE9PXR5cGVvZiBrfHwoZj1mfHxbXSkucHVzaChsLFwiXCIrayk6XCJzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmdcIiE9PWwmJlwic3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nXCIhPT1sJiYoY2EuaGFzT3duUHJvcGVydHkobCk/KG51bGwhPWsmJlwib25TY3JvbGxcIj09PWwmJkcoXCJzY3JvbGxcIixhKSxmfHxoPT09a3x8KGY9W10pKTpcIm9iamVjdFwiPT09dHlwZW9mIGsmJm51bGwhPT1rJiZrLiQkdHlwZW9mPT09R2E/ay50b1N0cmluZygpOihmPWZ8fFtdKS5wdXNoKGwsaykpfWMmJihmPWZ8fFtdKS5wdXNoKFwic3R5bGVcIixcbmMpO3ZhciBsPWY7aWYoYi51cGRhdGVRdWV1ZT1sKWIuZmxhZ3N8PTR9fTtFaT1mdW5jdGlvbihhLGIsYyxkKXtjIT09ZCYmKGIuZmxhZ3N8PTQpfTtmdW5jdGlvbiBGaShhLGIpe2lmKCFsaClzd2l0Y2goYS50YWlsTW9kZSl7Y2FzZSBcImhpZGRlblwiOmI9YS50YWlsO2Zvcih2YXIgYz1udWxsO251bGwhPT1iOyludWxsIT09Yi5hbHRlcm5hdGUmJihjPWIpLGI9Yi5zaWJsaW5nO251bGw9PT1jP2EudGFpbD1udWxsOmMuc2libGluZz1udWxsO2JyZWFrO2Nhc2UgXCJjb2xsYXBzZWRcIjpjPWEudGFpbDtmb3IodmFyIGQ9bnVsbDtudWxsIT09YzspbnVsbCE9PWMuYWx0ZXJuYXRlJiYoZD1jKSxjPWMuc2libGluZztudWxsPT09ZD9ifHxudWxsPT09YS50YWlsP2EudGFpbD1udWxsOmEudGFpbC5zaWJsaW5nPW51bGw6ZC5zaWJsaW5nPW51bGx9fVxuZnVuY3Rpb24gR2koYSxiLGMpe3ZhciBkPWIucGVuZGluZ1Byb3BzO3N3aXRjaChiLnRhZyl7Y2FzZSAyOmNhc2UgMTY6Y2FzZSAxNTpjYXNlIDA6Y2FzZSAxMTpjYXNlIDc6Y2FzZSA4OmNhc2UgMTI6Y2FzZSA5OmNhc2UgMTQ6cmV0dXJuIG51bGw7Y2FzZSAxOnJldHVybiBGZihiLnR5cGUpJiZHZigpLG51bGw7Y2FzZSAzOmZoKCk7SChOKTtIKE0pO3VoKCk7ZD1iLnN0YXRlTm9kZTtkLnBlbmRpbmdDb250ZXh0JiYoZC5jb250ZXh0PWQucGVuZGluZ0NvbnRleHQsZC5wZW5kaW5nQ29udGV4dD1udWxsKTtpZihudWxsPT09YXx8bnVsbD09PWEuY2hpbGQpcmgoYik/Yi5mbGFnc3w9NDpkLmh5ZHJhdGV8fChiLmZsYWdzfD0yNTYpO0NpKGIpO3JldHVybiBudWxsO2Nhc2UgNTpoaChiKTt2YXIgZT1kaChjaC5jdXJyZW50KTtjPWIudHlwZTtpZihudWxsIT09YSYmbnVsbCE9Yi5zdGF0ZU5vZGUpRGkoYSxiLGMsZCxlKSxhLnJlZiE9PWIucmVmJiYoYi5mbGFnc3w9MTI4KTtlbHNle2lmKCFkKXtpZihudWxsPT09XG5iLnN0YXRlTm9kZSl0aHJvdyBFcnJvcih5KDE2NikpO3JldHVybiBudWxsfWE9ZGgoYWguY3VycmVudCk7aWYocmgoYikpe2Q9Yi5zdGF0ZU5vZGU7Yz1iLnR5cGU7dmFyIGY9Yi5tZW1vaXplZFByb3BzO2Rbd2ZdPWI7ZFt4Zl09Zjtzd2l0Y2goYyl7Y2FzZSBcImRpYWxvZ1wiOkcoXCJjYW5jZWxcIixkKTtHKFwiY2xvc2VcIixkKTticmVhaztjYXNlIFwiaWZyYW1lXCI6Y2FzZSBcIm9iamVjdFwiOmNhc2UgXCJlbWJlZFwiOkcoXCJsb2FkXCIsZCk7YnJlYWs7Y2FzZSBcInZpZGVvXCI6Y2FzZSBcImF1ZGlvXCI6Zm9yKGE9MDthPFhlLmxlbmd0aDthKyspRyhYZVthXSxkKTticmVhaztjYXNlIFwic291cmNlXCI6RyhcImVycm9yXCIsZCk7YnJlYWs7Y2FzZSBcImltZ1wiOmNhc2UgXCJpbWFnZVwiOmNhc2UgXCJsaW5rXCI6RyhcImVycm9yXCIsZCk7RyhcImxvYWRcIixkKTticmVhaztjYXNlIFwiZGV0YWlsc1wiOkcoXCJ0b2dnbGVcIixkKTticmVhaztjYXNlIFwiaW5wdXRcIjpaYShkLGYpO0coXCJpbnZhbGlkXCIsZCk7YnJlYWs7Y2FzZSBcInNlbGVjdFwiOmQuX3dyYXBwZXJTdGF0ZT1cbnt3YXNNdWx0aXBsZTohIWYubXVsdGlwbGV9O0coXCJpbnZhbGlkXCIsZCk7YnJlYWs7Y2FzZSBcInRleHRhcmVhXCI6aGIoZCxmKSxHKFwiaW52YWxpZFwiLGQpfXZiKGMsZik7YT1udWxsO2Zvcih2YXIgZyBpbiBmKWYuaGFzT3duUHJvcGVydHkoZykmJihlPWZbZ10sXCJjaGlsZHJlblwiPT09Zz9cInN0cmluZ1wiPT09dHlwZW9mIGU/ZC50ZXh0Q29udGVudCE9PWUmJihhPVtcImNoaWxkcmVuXCIsZV0pOlwibnVtYmVyXCI9PT10eXBlb2YgZSYmZC50ZXh0Q29udGVudCE9PVwiXCIrZSYmKGE9W1wiY2hpbGRyZW5cIixcIlwiK2VdKTpjYS5oYXNPd25Qcm9wZXJ0eShnKSYmbnVsbCE9ZSYmXCJvblNjcm9sbFwiPT09ZyYmRyhcInNjcm9sbFwiLGQpKTtzd2l0Y2goYyl7Y2FzZSBcImlucHV0XCI6VmEoZCk7Y2IoZCxmLCEwKTticmVhaztjYXNlIFwidGV4dGFyZWFcIjpWYShkKTtqYihkKTticmVhaztjYXNlIFwic2VsZWN0XCI6Y2FzZSBcIm9wdGlvblwiOmJyZWFrO2RlZmF1bHQ6XCJmdW5jdGlvblwiPT09dHlwZW9mIGYub25DbGljayYmKGQub25jbGljaz1cbmpmKX1kPWE7Yi51cGRhdGVRdWV1ZT1kO251bGwhPT1kJiYoYi5mbGFnc3w9NCl9ZWxzZXtnPTk9PT1lLm5vZGVUeXBlP2U6ZS5vd25lckRvY3VtZW50O2E9PT1rYi5odG1sJiYoYT1sYihjKSk7YT09PWtiLmh0bWw/XCJzY3JpcHRcIj09PWM/KGE9Zy5jcmVhdGVFbGVtZW50KFwiZGl2XCIpLGEuaW5uZXJIVE1MPVwiPHNjcmlwdD5cXHgzYy9zY3JpcHQ+XCIsYT1hLnJlbW92ZUNoaWxkKGEuZmlyc3RDaGlsZCkpOlwic3RyaW5nXCI9PT10eXBlb2YgZC5pcz9hPWcuY3JlYXRlRWxlbWVudChjLHtpczpkLmlzfSk6KGE9Zy5jcmVhdGVFbGVtZW50KGMpLFwic2VsZWN0XCI9PT1jJiYoZz1hLGQubXVsdGlwbGU/Zy5tdWx0aXBsZT0hMDpkLnNpemUmJihnLnNpemU9ZC5zaXplKSkpOmE9Zy5jcmVhdGVFbGVtZW50TlMoYSxjKTthW3dmXT1iO2FbeGZdPWQ7QmkoYSxiLCExLCExKTtiLnN0YXRlTm9kZT1hO2c9d2IoYyxkKTtzd2l0Y2goYyl7Y2FzZSBcImRpYWxvZ1wiOkcoXCJjYW5jZWxcIixhKTtHKFwiY2xvc2VcIixhKTtcbmU9ZDticmVhaztjYXNlIFwiaWZyYW1lXCI6Y2FzZSBcIm9iamVjdFwiOmNhc2UgXCJlbWJlZFwiOkcoXCJsb2FkXCIsYSk7ZT1kO2JyZWFrO2Nhc2UgXCJ2aWRlb1wiOmNhc2UgXCJhdWRpb1wiOmZvcihlPTA7ZTxYZS5sZW5ndGg7ZSsrKUcoWGVbZV0sYSk7ZT1kO2JyZWFrO2Nhc2UgXCJzb3VyY2VcIjpHKFwiZXJyb3JcIixhKTtlPWQ7YnJlYWs7Y2FzZSBcImltZ1wiOmNhc2UgXCJpbWFnZVwiOmNhc2UgXCJsaW5rXCI6RyhcImVycm9yXCIsYSk7RyhcImxvYWRcIixhKTtlPWQ7YnJlYWs7Y2FzZSBcImRldGFpbHNcIjpHKFwidG9nZ2xlXCIsYSk7ZT1kO2JyZWFrO2Nhc2UgXCJpbnB1dFwiOlphKGEsZCk7ZT1ZYShhLGQpO0coXCJpbnZhbGlkXCIsYSk7YnJlYWs7Y2FzZSBcIm9wdGlvblwiOmU9ZWIoYSxkKTticmVhaztjYXNlIFwic2VsZWN0XCI6YS5fd3JhcHBlclN0YXRlPXt3YXNNdWx0aXBsZTohIWQubXVsdGlwbGV9O2U9bSh7fSxkLHt2YWx1ZTp2b2lkIDB9KTtHKFwiaW52YWxpZFwiLGEpO2JyZWFrO2Nhc2UgXCJ0ZXh0YXJlYVwiOmhiKGEsZCk7ZT1cbmdiKGEsZCk7RyhcImludmFsaWRcIixhKTticmVhaztkZWZhdWx0OmU9ZH12YihjLGUpO3ZhciBoPWU7Zm9yKGYgaW4gaClpZihoLmhhc093blByb3BlcnR5KGYpKXt2YXIgaz1oW2ZdO1wic3R5bGVcIj09PWY/dGIoYSxrKTpcImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MXCI9PT1mPyhrPWs/ay5fX2h0bWw6dm9pZCAwLG51bGwhPWsmJm9iKGEsaykpOlwiY2hpbGRyZW5cIj09PWY/XCJzdHJpbmdcIj09PXR5cGVvZiBrPyhcInRleHRhcmVhXCIhPT1jfHxcIlwiIT09aykmJnBiKGEsayk6XCJudW1iZXJcIj09PXR5cGVvZiBrJiZwYihhLFwiXCIrayk6XCJzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmdcIiE9PWYmJlwic3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nXCIhPT1mJiZcImF1dG9Gb2N1c1wiIT09ZiYmKGNhLmhhc093blByb3BlcnR5KGYpP251bGwhPWsmJlwib25TY3JvbGxcIj09PWYmJkcoXCJzY3JvbGxcIixhKTpudWxsIT1rJiZxYShhLGYsayxnKSl9c3dpdGNoKGMpe2Nhc2UgXCJpbnB1dFwiOlZhKGEpO2NiKGEsZCwhMSk7XG5icmVhaztjYXNlIFwidGV4dGFyZWFcIjpWYShhKTtqYihhKTticmVhaztjYXNlIFwib3B0aW9uXCI6bnVsbCE9ZC52YWx1ZSYmYS5zZXRBdHRyaWJ1dGUoXCJ2YWx1ZVwiLFwiXCIrU2EoZC52YWx1ZSkpO2JyZWFrO2Nhc2UgXCJzZWxlY3RcIjphLm11bHRpcGxlPSEhZC5tdWx0aXBsZTtmPWQudmFsdWU7bnVsbCE9Zj9mYihhLCEhZC5tdWx0aXBsZSxmLCExKTpudWxsIT1kLmRlZmF1bHRWYWx1ZSYmZmIoYSwhIWQubXVsdGlwbGUsZC5kZWZhdWx0VmFsdWUsITApO2JyZWFrO2RlZmF1bHQ6XCJmdW5jdGlvblwiPT09dHlwZW9mIGUub25DbGljayYmKGEub25jbGljaz1qZil9bWYoYyxkKSYmKGIuZmxhZ3N8PTQpfW51bGwhPT1iLnJlZiYmKGIuZmxhZ3N8PTEyOCl9cmV0dXJuIG51bGw7Y2FzZSA2OmlmKGEmJm51bGwhPWIuc3RhdGVOb2RlKUVpKGEsYixhLm1lbW9pemVkUHJvcHMsZCk7ZWxzZXtpZihcInN0cmluZ1wiIT09dHlwZW9mIGQmJm51bGw9PT1iLnN0YXRlTm9kZSl0aHJvdyBFcnJvcih5KDE2NikpO1xuYz1kaChjaC5jdXJyZW50KTtkaChhaC5jdXJyZW50KTtyaChiKT8oZD1iLnN0YXRlTm9kZSxjPWIubWVtb2l6ZWRQcm9wcyxkW3dmXT1iLGQubm9kZVZhbHVlIT09YyYmKGIuZmxhZ3N8PTQpKTooZD0oOT09PWMubm9kZVR5cGU/YzpjLm93bmVyRG9jdW1lbnQpLmNyZWF0ZVRleHROb2RlKGQpLGRbd2ZdPWIsYi5zdGF0ZU5vZGU9ZCl9cmV0dXJuIG51bGw7Y2FzZSAxMzpIKFApO2Q9Yi5tZW1vaXplZFN0YXRlO2lmKDAhPT0oYi5mbGFncyY2NCkpcmV0dXJuIGIubGFuZXM9YyxiO2Q9bnVsbCE9PWQ7Yz0hMTtudWxsPT09YT92b2lkIDAhPT1iLm1lbW9pemVkUHJvcHMuZmFsbGJhY2smJnJoKGIpOmM9bnVsbCE9PWEubWVtb2l6ZWRTdGF0ZTtpZihkJiYhYyYmMCE9PShiLm1vZGUmMikpaWYobnVsbD09PWEmJiEwIT09Yi5tZW1vaXplZFByb3BzLnVuc3RhYmxlX2F2b2lkVGhpc0ZhbGxiYWNrfHwwIT09KFAuY3VycmVudCYxKSkwPT09ViYmKFY9Myk7ZWxzZXtpZigwPT09Vnx8Mz09PVYpVj1cbjQ7bnVsbD09PVV8fDA9PT0oRGcmMTM0MjE3NzI3KSYmMD09PShIaSYxMzQyMTc3MjcpfHxJaShVLFcpfWlmKGR8fGMpYi5mbGFnc3w9NDtyZXR1cm4gbnVsbDtjYXNlIDQ6cmV0dXJuIGZoKCksQ2koYiksbnVsbD09PWEmJmNmKGIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pLG51bGw7Y2FzZSAxMDpyZXR1cm4gcmcoYiksbnVsbDtjYXNlIDE3OnJldHVybiBGZihiLnR5cGUpJiZHZigpLG51bGw7Y2FzZSAxOTpIKFApO2Q9Yi5tZW1vaXplZFN0YXRlO2lmKG51bGw9PT1kKXJldHVybiBudWxsO2Y9MCE9PShiLmZsYWdzJjY0KTtnPWQucmVuZGVyaW5nO2lmKG51bGw9PT1nKWlmKGYpRmkoZCwhMSk7ZWxzZXtpZigwIT09Vnx8bnVsbCE9PWEmJjAhPT0oYS5mbGFncyY2NCkpZm9yKGE9Yi5jaGlsZDtudWxsIT09YTspe2c9aWgoYSk7aWYobnVsbCE9PWcpe2IuZmxhZ3N8PTY0O0ZpKGQsITEpO2Y9Zy51cGRhdGVRdWV1ZTtudWxsIT09ZiYmKGIudXBkYXRlUXVldWU9ZixiLmZsYWdzfD00KTtcbm51bGw9PT1kLmxhc3RFZmZlY3QmJihiLmZpcnN0RWZmZWN0PW51bGwpO2IubGFzdEVmZmVjdD1kLmxhc3RFZmZlY3Q7ZD1jO2ZvcihjPWIuY2hpbGQ7bnVsbCE9PWM7KWY9YyxhPWQsZi5mbGFncyY9MixmLm5leHRFZmZlY3Q9bnVsbCxmLmZpcnN0RWZmZWN0PW51bGwsZi5sYXN0RWZmZWN0PW51bGwsZz1mLmFsdGVybmF0ZSxudWxsPT09Zz8oZi5jaGlsZExhbmVzPTAsZi5sYW5lcz1hLGYuY2hpbGQ9bnVsbCxmLm1lbW9pemVkUHJvcHM9bnVsbCxmLm1lbW9pemVkU3RhdGU9bnVsbCxmLnVwZGF0ZVF1ZXVlPW51bGwsZi5kZXBlbmRlbmNpZXM9bnVsbCxmLnN0YXRlTm9kZT1udWxsKTooZi5jaGlsZExhbmVzPWcuY2hpbGRMYW5lcyxmLmxhbmVzPWcubGFuZXMsZi5jaGlsZD1nLmNoaWxkLGYubWVtb2l6ZWRQcm9wcz1nLm1lbW9pemVkUHJvcHMsZi5tZW1vaXplZFN0YXRlPWcubWVtb2l6ZWRTdGF0ZSxmLnVwZGF0ZVF1ZXVlPWcudXBkYXRlUXVldWUsZi50eXBlPWcudHlwZSxhPWcuZGVwZW5kZW5jaWVzLFxuZi5kZXBlbmRlbmNpZXM9bnVsbD09PWE/bnVsbDp7bGFuZXM6YS5sYW5lcyxmaXJzdENvbnRleHQ6YS5maXJzdENvbnRleHR9KSxjPWMuc2libGluZztJKFAsUC5jdXJyZW50JjF8Mik7cmV0dXJuIGIuY2hpbGR9YT1hLnNpYmxpbmd9bnVsbCE9PWQudGFpbCYmTygpPkppJiYoYi5mbGFnc3w9NjQsZj0hMCxGaShkLCExKSxiLmxhbmVzPTMzNTU0NDMyKX1lbHNle2lmKCFmKWlmKGE9aWgoZyksbnVsbCE9PWEpe2lmKGIuZmxhZ3N8PTY0LGY9ITAsYz1hLnVwZGF0ZVF1ZXVlLG51bGwhPT1jJiYoYi51cGRhdGVRdWV1ZT1jLGIuZmxhZ3N8PTQpLEZpKGQsITApLG51bGw9PT1kLnRhaWwmJlwiaGlkZGVuXCI9PT1kLnRhaWxNb2RlJiYhZy5hbHRlcm5hdGUmJiFsaClyZXR1cm4gYj1iLmxhc3RFZmZlY3Q9ZC5sYXN0RWZmZWN0LG51bGwhPT1iJiYoYi5uZXh0RWZmZWN0PW51bGwpLG51bGx9ZWxzZSAyKk8oKS1kLnJlbmRlcmluZ1N0YXJ0VGltZT5KaSYmMTA3Mzc0MTgyNCE9PWMmJihiLmZsYWdzfD1cbjY0LGY9ITAsRmkoZCwhMSksYi5sYW5lcz0zMzU1NDQzMik7ZC5pc0JhY2t3YXJkcz8oZy5zaWJsaW5nPWIuY2hpbGQsYi5jaGlsZD1nKTooYz1kLmxhc3QsbnVsbCE9PWM/Yy5zaWJsaW5nPWc6Yi5jaGlsZD1nLGQubGFzdD1nKX1yZXR1cm4gbnVsbCE9PWQudGFpbD8oYz1kLnRhaWwsZC5yZW5kZXJpbmc9YyxkLnRhaWw9Yy5zaWJsaW5nLGQubGFzdEVmZmVjdD1iLmxhc3RFZmZlY3QsZC5yZW5kZXJpbmdTdGFydFRpbWU9TygpLGMuc2libGluZz1udWxsLGI9UC5jdXJyZW50LEkoUCxmP2ImMXwyOmImMSksYyk6bnVsbDtjYXNlIDIzOmNhc2UgMjQ6cmV0dXJuIEtpKCksbnVsbCE9PWEmJm51bGwhPT1hLm1lbW9pemVkU3RhdGUhPT0obnVsbCE9PWIubWVtb2l6ZWRTdGF0ZSkmJlwidW5zdGFibGUtZGVmZXItd2l0aG91dC1oaWRpbmdcIiE9PWQubW9kZSYmKGIuZmxhZ3N8PTQpLG51bGx9dGhyb3cgRXJyb3IoeSgxNTYsYi50YWcpKTt9XG5mdW5jdGlvbiBMaShhKXtzd2l0Y2goYS50YWcpe2Nhc2UgMTpGZihhLnR5cGUpJiZHZigpO3ZhciBiPWEuZmxhZ3M7cmV0dXJuIGImNDA5Nj8oYS5mbGFncz1iJi00MDk3fDY0LGEpOm51bGw7Y2FzZSAzOmZoKCk7SChOKTtIKE0pO3VoKCk7Yj1hLmZsYWdzO2lmKDAhPT0oYiY2NCkpdGhyb3cgRXJyb3IoeSgyODUpKTthLmZsYWdzPWImLTQwOTd8NjQ7cmV0dXJuIGE7Y2FzZSA1OnJldHVybiBoaChhKSxudWxsO2Nhc2UgMTM6cmV0dXJuIEgoUCksYj1hLmZsYWdzLGImNDA5Nj8oYS5mbGFncz1iJi00MDk3fDY0LGEpOm51bGw7Y2FzZSAxOTpyZXR1cm4gSChQKSxudWxsO2Nhc2UgNDpyZXR1cm4gZmgoKSxudWxsO2Nhc2UgMTA6cmV0dXJuIHJnKGEpLG51bGw7Y2FzZSAyMzpjYXNlIDI0OnJldHVybiBLaSgpLG51bGw7ZGVmYXVsdDpyZXR1cm4gbnVsbH19XG5mdW5jdGlvbiBNaShhLGIpe3RyeXt2YXIgYz1cIlwiLGQ9YjtkbyBjKz1RYShkKSxkPWQucmV0dXJuO3doaWxlKGQpO3ZhciBlPWN9Y2F0Y2goZil7ZT1cIlxcbkVycm9yIGdlbmVyYXRpbmcgc3RhY2s6IFwiK2YubWVzc2FnZStcIlxcblwiK2Yuc3RhY2t9cmV0dXJue3ZhbHVlOmEsc291cmNlOmIsc3RhY2s6ZX19ZnVuY3Rpb24gTmkoYSxiKXt0cnl7Y29uc29sZS5lcnJvcihiLnZhbHVlKX1jYXRjaChjKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGhyb3cgYzt9KX19dmFyIE9pPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBXZWFrTWFwP1dlYWtNYXA6TWFwO2Z1bmN0aW9uIFBpKGEsYixjKXtjPXpnKC0xLGMpO2MudGFnPTM7Yy5wYXlsb2FkPXtlbGVtZW50Om51bGx9O3ZhciBkPWIudmFsdWU7Yy5jYWxsYmFjaz1mdW5jdGlvbigpe1FpfHwoUWk9ITAsUmk9ZCk7TmkoYSxiKX07cmV0dXJuIGN9XG5mdW5jdGlvbiBTaShhLGIsYyl7Yz16ZygtMSxjKTtjLnRhZz0zO3ZhciBkPWEudHlwZS5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3I7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGQpe3ZhciBlPWIudmFsdWU7Yy5wYXlsb2FkPWZ1bmN0aW9uKCl7TmkoYSxiKTtyZXR1cm4gZChlKX19dmFyIGY9YS5zdGF0ZU5vZGU7bnVsbCE9PWYmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBmLmNvbXBvbmVudERpZENhdGNoJiYoYy5jYWxsYmFjaz1mdW5jdGlvbigpe1wiZnVuY3Rpb25cIiE9PXR5cGVvZiBkJiYobnVsbD09PVRpP1RpPW5ldyBTZXQoW3RoaXNdKTpUaS5hZGQodGhpcyksTmkoYSxiKSk7dmFyIGM9Yi5zdGFjazt0aGlzLmNvbXBvbmVudERpZENhdGNoKGIudmFsdWUse2NvbXBvbmVudFN0YWNrOm51bGwhPT1jP2M6XCJcIn0pfSk7cmV0dXJuIGN9dmFyIFVpPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBXZWFrU2V0P1dlYWtTZXQ6U2V0O1xuZnVuY3Rpb24gVmkoYSl7dmFyIGI9YS5yZWY7aWYobnVsbCE9PWIpaWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGIpdHJ5e2IobnVsbCl9Y2F0Y2goYyl7V2koYSxjKX1lbHNlIGIuY3VycmVudD1udWxsfWZ1bmN0aW9uIFhpKGEsYil7c3dpdGNoKGIudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1OmNhc2UgMjI6cmV0dXJuO2Nhc2UgMTppZihiLmZsYWdzJjI1NiYmbnVsbCE9PWEpe3ZhciBjPWEubWVtb2l6ZWRQcm9wcyxkPWEubWVtb2l6ZWRTdGF0ZTthPWIuc3RhdGVOb2RlO2I9YS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZShiLmVsZW1lbnRUeXBlPT09Yi50eXBlP2M6bGcoYi50eXBlLGMpLGQpO2EuX19yZWFjdEludGVybmFsU25hcHNob3RCZWZvcmVVcGRhdGU9Yn1yZXR1cm47Y2FzZSAzOmIuZmxhZ3MmMjU2JiZxZihiLnN0YXRlTm9kZS5jb250YWluZXJJbmZvKTtyZXR1cm47Y2FzZSA1OmNhc2UgNjpjYXNlIDQ6Y2FzZSAxNzpyZXR1cm59dGhyb3cgRXJyb3IoeSgxNjMpKTt9XG5mdW5jdGlvbiBZaShhLGIsYyl7c3dpdGNoKGMudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1OmNhc2UgMjI6Yj1jLnVwZGF0ZVF1ZXVlO2I9bnVsbCE9PWI/Yi5sYXN0RWZmZWN0Om51bGw7aWYobnVsbCE9PWIpe2E9Yj1iLm5leHQ7ZG97aWYoMz09PShhLnRhZyYzKSl7dmFyIGQ9YS5jcmVhdGU7YS5kZXN0cm95PWQoKX1hPWEubmV4dH13aGlsZShhIT09Yil9Yj1jLnVwZGF0ZVF1ZXVlO2I9bnVsbCE9PWI/Yi5sYXN0RWZmZWN0Om51bGw7aWYobnVsbCE9PWIpe2E9Yj1iLm5leHQ7ZG97dmFyIGU9YTtkPWUubmV4dDtlPWUudGFnOzAhPT0oZSY0KSYmMCE9PShlJjEpJiYoWmkoYyxhKSwkaShjLGEpKTthPWR9d2hpbGUoYSE9PWIpfXJldHVybjtjYXNlIDE6YT1jLnN0YXRlTm9kZTtjLmZsYWdzJjQmJihudWxsPT09Yj9hLmNvbXBvbmVudERpZE1vdW50KCk6KGQ9Yy5lbGVtZW50VHlwZT09PWMudHlwZT9iLm1lbW9pemVkUHJvcHM6bGcoYy50eXBlLGIubWVtb2l6ZWRQcm9wcyksYS5jb21wb25lbnREaWRVcGRhdGUoZCxcbmIubWVtb2l6ZWRTdGF0ZSxhLl9fcmVhY3RJbnRlcm5hbFNuYXBzaG90QmVmb3JlVXBkYXRlKSkpO2I9Yy51cGRhdGVRdWV1ZTtudWxsIT09YiYmRWcoYyxiLGEpO3JldHVybjtjYXNlIDM6Yj1jLnVwZGF0ZVF1ZXVlO2lmKG51bGwhPT1iKXthPW51bGw7aWYobnVsbCE9PWMuY2hpbGQpc3dpdGNoKGMuY2hpbGQudGFnKXtjYXNlIDU6YT1jLmNoaWxkLnN0YXRlTm9kZTticmVhaztjYXNlIDE6YT1jLmNoaWxkLnN0YXRlTm9kZX1FZyhjLGIsYSl9cmV0dXJuO2Nhc2UgNTphPWMuc3RhdGVOb2RlO251bGw9PT1iJiZjLmZsYWdzJjQmJm1mKGMudHlwZSxjLm1lbW9pemVkUHJvcHMpJiZhLmZvY3VzKCk7cmV0dXJuO2Nhc2UgNjpyZXR1cm47Y2FzZSA0OnJldHVybjtjYXNlIDEyOnJldHVybjtjYXNlIDEzOm51bGw9PT1jLm1lbW9pemVkU3RhdGUmJihjPWMuYWx0ZXJuYXRlLG51bGwhPT1jJiYoYz1jLm1lbW9pemVkU3RhdGUsbnVsbCE9PWMmJihjPWMuZGVoeWRyYXRlZCxudWxsIT09YyYmQ2MoYykpKSk7XG5yZXR1cm47Y2FzZSAxOTpjYXNlIDE3OmNhc2UgMjA6Y2FzZSAyMTpjYXNlIDIzOmNhc2UgMjQ6cmV0dXJufXRocm93IEVycm9yKHkoMTYzKSk7fVxuZnVuY3Rpb24gYWooYSxiKXtmb3IodmFyIGM9YTs7KXtpZig1PT09Yy50YWcpe3ZhciBkPWMuc3RhdGVOb2RlO2lmKGIpZD1kLnN0eWxlLFwiZnVuY3Rpb25cIj09PXR5cGVvZiBkLnNldFByb3BlcnR5P2Quc2V0UHJvcGVydHkoXCJkaXNwbGF5XCIsXCJub25lXCIsXCJpbXBvcnRhbnRcIik6ZC5kaXNwbGF5PVwibm9uZVwiO2Vsc2V7ZD1jLnN0YXRlTm9kZTt2YXIgZT1jLm1lbW9pemVkUHJvcHMuc3R5bGU7ZT12b2lkIDAhPT1lJiZudWxsIT09ZSYmZS5oYXNPd25Qcm9wZXJ0eShcImRpc3BsYXlcIik/ZS5kaXNwbGF5Om51bGw7ZC5zdHlsZS5kaXNwbGF5PXNiKFwiZGlzcGxheVwiLGUpfX1lbHNlIGlmKDY9PT1jLnRhZyljLnN0YXRlTm9kZS5ub2RlVmFsdWU9Yj9cIlwiOmMubWVtb2l6ZWRQcm9wcztlbHNlIGlmKCgyMyE9PWMudGFnJiYyNCE9PWMudGFnfHxudWxsPT09Yy5tZW1vaXplZFN0YXRlfHxjPT09YSkmJm51bGwhPT1jLmNoaWxkKXtjLmNoaWxkLnJldHVybj1jO2M9Yy5jaGlsZDtjb250aW51ZX1pZihjPT09XG5hKWJyZWFrO2Zvcig7bnVsbD09PWMuc2libGluZzspe2lmKG51bGw9PT1jLnJldHVybnx8Yy5yZXR1cm49PT1hKXJldHVybjtjPWMucmV0dXJufWMuc2libGluZy5yZXR1cm49Yy5yZXR1cm47Yz1jLnNpYmxpbmd9fVxuZnVuY3Rpb24gYmooYSxiKXtpZihNZiYmXCJmdW5jdGlvblwiPT09dHlwZW9mIE1mLm9uQ29tbWl0RmliZXJVbm1vdW50KXRyeXtNZi5vbkNvbW1pdEZpYmVyVW5tb3VudChMZixiKX1jYXRjaChmKXt9c3dpdGNoKGIudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE0OmNhc2UgMTU6Y2FzZSAyMjphPWIudXBkYXRlUXVldWU7aWYobnVsbCE9PWEmJihhPWEubGFzdEVmZmVjdCxudWxsIT09YSkpe3ZhciBjPWE9YS5uZXh0O2Rve3ZhciBkPWMsZT1kLmRlc3Ryb3k7ZD1kLnRhZztpZih2b2lkIDAhPT1lKWlmKDAhPT0oZCY0KSlaaShiLGMpO2Vsc2V7ZD1iO3RyeXtlKCl9Y2F0Y2goZil7V2koZCxmKX19Yz1jLm5leHR9d2hpbGUoYyE9PWEpfWJyZWFrO2Nhc2UgMTpWaShiKTthPWIuc3RhdGVOb2RlO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBhLmNvbXBvbmVudFdpbGxVbm1vdW50KXRyeXthLnByb3BzPWIubWVtb2l6ZWRQcm9wcyxhLnN0YXRlPWIubWVtb2l6ZWRTdGF0ZSxhLmNvbXBvbmVudFdpbGxVbm1vdW50KCl9Y2F0Y2goZil7V2koYixcbmYpfWJyZWFrO2Nhc2UgNTpWaShiKTticmVhaztjYXNlIDQ6Y2ooYSxiKX19ZnVuY3Rpb24gZGooYSl7YS5hbHRlcm5hdGU9bnVsbDthLmNoaWxkPW51bGw7YS5kZXBlbmRlbmNpZXM9bnVsbDthLmZpcnN0RWZmZWN0PW51bGw7YS5sYXN0RWZmZWN0PW51bGw7YS5tZW1vaXplZFByb3BzPW51bGw7YS5tZW1vaXplZFN0YXRlPW51bGw7YS5wZW5kaW5nUHJvcHM9bnVsbDthLnJldHVybj1udWxsO2EudXBkYXRlUXVldWU9bnVsbH1mdW5jdGlvbiBlaihhKXtyZXR1cm4gNT09PWEudGFnfHwzPT09YS50YWd8fDQ9PT1hLnRhZ31cbmZ1bmN0aW9uIGZqKGEpe2E6e2Zvcih2YXIgYj1hLnJldHVybjtudWxsIT09Yjspe2lmKGVqKGIpKWJyZWFrIGE7Yj1iLnJldHVybn10aHJvdyBFcnJvcih5KDE2MCkpO312YXIgYz1iO2I9Yy5zdGF0ZU5vZGU7c3dpdGNoKGMudGFnKXtjYXNlIDU6dmFyIGQ9ITE7YnJlYWs7Y2FzZSAzOmI9Yi5jb250YWluZXJJbmZvO2Q9ITA7YnJlYWs7Y2FzZSA0OmI9Yi5jb250YWluZXJJbmZvO2Q9ITA7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcih5KDE2MSkpO31jLmZsYWdzJjE2JiYocGIoYixcIlwiKSxjLmZsYWdzJj0tMTcpO2E6Yjpmb3IoYz1hOzspe2Zvcig7bnVsbD09PWMuc2libGluZzspe2lmKG51bGw9PT1jLnJldHVybnx8ZWooYy5yZXR1cm4pKXtjPW51bGw7YnJlYWsgYX1jPWMucmV0dXJufWMuc2libGluZy5yZXR1cm49Yy5yZXR1cm47Zm9yKGM9Yy5zaWJsaW5nOzUhPT1jLnRhZyYmNiE9PWMudGFnJiYxOCE9PWMudGFnOyl7aWYoYy5mbGFncyYyKWNvbnRpbnVlIGI7aWYobnVsbD09PVxuYy5jaGlsZHx8ND09PWMudGFnKWNvbnRpbnVlIGI7ZWxzZSBjLmNoaWxkLnJldHVybj1jLGM9Yy5jaGlsZH1pZighKGMuZmxhZ3MmMikpe2M9Yy5zdGF0ZU5vZGU7YnJlYWsgYX19ZD9naihhLGMsYik6aGooYSxjLGIpfVxuZnVuY3Rpb24gZ2ooYSxiLGMpe3ZhciBkPWEudGFnLGU9NT09PWR8fDY9PT1kO2lmKGUpYT1lP2Euc3RhdGVOb2RlOmEuc3RhdGVOb2RlLmluc3RhbmNlLGI/OD09PWMubm9kZVR5cGU/Yy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLGIpOmMuaW5zZXJ0QmVmb3JlKGEsYik6KDg9PT1jLm5vZGVUeXBlPyhiPWMucGFyZW50Tm9kZSxiLmluc2VydEJlZm9yZShhLGMpKTooYj1jLGIuYXBwZW5kQ2hpbGQoYSkpLGM9Yy5fcmVhY3RSb290Q29udGFpbmVyLG51bGwhPT1jJiZ2b2lkIDAhPT1jfHxudWxsIT09Yi5vbmNsaWNrfHwoYi5vbmNsaWNrPWpmKSk7ZWxzZSBpZig0IT09ZCYmKGE9YS5jaGlsZCxudWxsIT09YSkpZm9yKGdqKGEsYixjKSxhPWEuc2libGluZztudWxsIT09YTspZ2ooYSxiLGMpLGE9YS5zaWJsaW5nfVxuZnVuY3Rpb24gaGooYSxiLGMpe3ZhciBkPWEudGFnLGU9NT09PWR8fDY9PT1kO2lmKGUpYT1lP2Euc3RhdGVOb2RlOmEuc3RhdGVOb2RlLmluc3RhbmNlLGI/Yy5pbnNlcnRCZWZvcmUoYSxiKTpjLmFwcGVuZENoaWxkKGEpO2Vsc2UgaWYoNCE9PWQmJihhPWEuY2hpbGQsbnVsbCE9PWEpKWZvcihoaihhLGIsYyksYT1hLnNpYmxpbmc7bnVsbCE9PWE7KWhqKGEsYixjKSxhPWEuc2libGluZ31cbmZ1bmN0aW9uIGNqKGEsYil7Zm9yKHZhciBjPWIsZD0hMSxlLGY7Oyl7aWYoIWQpe2Q9Yy5yZXR1cm47YTpmb3IoOzspe2lmKG51bGw9PT1kKXRocm93IEVycm9yKHkoMTYwKSk7ZT1kLnN0YXRlTm9kZTtzd2l0Y2goZC50YWcpe2Nhc2UgNTpmPSExO2JyZWFrIGE7Y2FzZSAzOmU9ZS5jb250YWluZXJJbmZvO2Y9ITA7YnJlYWsgYTtjYXNlIDQ6ZT1lLmNvbnRhaW5lckluZm87Zj0hMDticmVhayBhfWQ9ZC5yZXR1cm59ZD0hMH1pZig1PT09Yy50YWd8fDY9PT1jLnRhZyl7YTpmb3IodmFyIGc9YSxoPWMsaz1oOzspaWYoYmooZyxrKSxudWxsIT09ay5jaGlsZCYmNCE9PWsudGFnKWsuY2hpbGQucmV0dXJuPWssaz1rLmNoaWxkO2Vsc2V7aWYoaz09PWgpYnJlYWsgYTtmb3IoO251bGw9PT1rLnNpYmxpbmc7KXtpZihudWxsPT09ay5yZXR1cm58fGsucmV0dXJuPT09aClicmVhayBhO2s9ay5yZXR1cm59ay5zaWJsaW5nLnJldHVybj1rLnJldHVybjtrPWsuc2libGluZ31mPyhnPWUsaD1jLnN0YXRlTm9kZSxcbjg9PT1nLm5vZGVUeXBlP2cucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChoKTpnLnJlbW92ZUNoaWxkKGgpKTplLnJlbW92ZUNoaWxkKGMuc3RhdGVOb2RlKX1lbHNlIGlmKDQ9PT1jLnRhZyl7aWYobnVsbCE9PWMuY2hpbGQpe2U9Yy5zdGF0ZU5vZGUuY29udGFpbmVySW5mbztmPSEwO2MuY2hpbGQucmV0dXJuPWM7Yz1jLmNoaWxkO2NvbnRpbnVlfX1lbHNlIGlmKGJqKGEsYyksbnVsbCE9PWMuY2hpbGQpe2MuY2hpbGQucmV0dXJuPWM7Yz1jLmNoaWxkO2NvbnRpbnVlfWlmKGM9PT1iKWJyZWFrO2Zvcig7bnVsbD09PWMuc2libGluZzspe2lmKG51bGw9PT1jLnJldHVybnx8Yy5yZXR1cm49PT1iKXJldHVybjtjPWMucmV0dXJuOzQ9PT1jLnRhZyYmKGQ9ITEpfWMuc2libGluZy5yZXR1cm49Yy5yZXR1cm47Yz1jLnNpYmxpbmd9fVxuZnVuY3Rpb24gaWooYSxiKXtzd2l0Y2goYi50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTQ6Y2FzZSAxNTpjYXNlIDIyOnZhciBjPWIudXBkYXRlUXVldWU7Yz1udWxsIT09Yz9jLmxhc3RFZmZlY3Q6bnVsbDtpZihudWxsIT09Yyl7dmFyIGQ9Yz1jLm5leHQ7ZG8gMz09PShkLnRhZyYzKSYmKGE9ZC5kZXN0cm95LGQuZGVzdHJveT12b2lkIDAsdm9pZCAwIT09YSYmYSgpKSxkPWQubmV4dDt3aGlsZShkIT09Yyl9cmV0dXJuO2Nhc2UgMTpyZXR1cm47Y2FzZSA1OmM9Yi5zdGF0ZU5vZGU7aWYobnVsbCE9Yyl7ZD1iLm1lbW9pemVkUHJvcHM7dmFyIGU9bnVsbCE9PWE/YS5tZW1vaXplZFByb3BzOmQ7YT1iLnR5cGU7dmFyIGY9Yi51cGRhdGVRdWV1ZTtiLnVwZGF0ZVF1ZXVlPW51bGw7aWYobnVsbCE9PWYpe2NbeGZdPWQ7XCJpbnB1dFwiPT09YSYmXCJyYWRpb1wiPT09ZC50eXBlJiZudWxsIT1kLm5hbWUmJiRhKGMsZCk7d2IoYSxlKTtiPXdiKGEsZCk7Zm9yKGU9MDtlPGYubGVuZ3RoO2UrPVxuMil7dmFyIGc9ZltlXSxoPWZbZSsxXTtcInN0eWxlXCI9PT1nP3RiKGMsaCk6XCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiPT09Zz9vYihjLGgpOlwiY2hpbGRyZW5cIj09PWc/cGIoYyxoKTpxYShjLGcsaCxiKX1zd2l0Y2goYSl7Y2FzZSBcImlucHV0XCI6YWIoYyxkKTticmVhaztjYXNlIFwidGV4dGFyZWFcIjppYihjLGQpO2JyZWFrO2Nhc2UgXCJzZWxlY3RcIjphPWMuX3dyYXBwZXJTdGF0ZS53YXNNdWx0aXBsZSxjLl93cmFwcGVyU3RhdGUud2FzTXVsdGlwbGU9ISFkLm11bHRpcGxlLGY9ZC52YWx1ZSxudWxsIT1mP2ZiKGMsISFkLm11bHRpcGxlLGYsITEpOmEhPT0hIWQubXVsdGlwbGUmJihudWxsIT1kLmRlZmF1bHRWYWx1ZT9mYihjLCEhZC5tdWx0aXBsZSxkLmRlZmF1bHRWYWx1ZSwhMCk6ZmIoYywhIWQubXVsdGlwbGUsZC5tdWx0aXBsZT9bXTpcIlwiLCExKSl9fX1yZXR1cm47Y2FzZSA2OmlmKG51bGw9PT1iLnN0YXRlTm9kZSl0aHJvdyBFcnJvcih5KDE2MikpO2Iuc3RhdGVOb2RlLm5vZGVWYWx1ZT1cbmIubWVtb2l6ZWRQcm9wcztyZXR1cm47Y2FzZSAzOmM9Yi5zdGF0ZU5vZGU7Yy5oeWRyYXRlJiYoYy5oeWRyYXRlPSExLENjKGMuY29udGFpbmVySW5mbykpO3JldHVybjtjYXNlIDEyOnJldHVybjtjYXNlIDEzOm51bGwhPT1iLm1lbW9pemVkU3RhdGUmJihqaj1PKCksYWooYi5jaGlsZCwhMCkpO2tqKGIpO3JldHVybjtjYXNlIDE5OmtqKGIpO3JldHVybjtjYXNlIDE3OnJldHVybjtjYXNlIDIzOmNhc2UgMjQ6YWooYixudWxsIT09Yi5tZW1vaXplZFN0YXRlKTtyZXR1cm59dGhyb3cgRXJyb3IoeSgxNjMpKTt9ZnVuY3Rpb24ga2ooYSl7dmFyIGI9YS51cGRhdGVRdWV1ZTtpZihudWxsIT09Yil7YS51cGRhdGVRdWV1ZT1udWxsO3ZhciBjPWEuc3RhdGVOb2RlO251bGw9PT1jJiYoYz1hLnN0YXRlTm9kZT1uZXcgVWkpO2IuZm9yRWFjaChmdW5jdGlvbihiKXt2YXIgZD1sai5iaW5kKG51bGwsYSxiKTtjLmhhcyhiKXx8KGMuYWRkKGIpLGIudGhlbihkLGQpKX0pfX1cbmZ1bmN0aW9uIG1qKGEsYil7cmV0dXJuIG51bGwhPT1hJiYoYT1hLm1lbW9pemVkU3RhdGUsbnVsbD09PWF8fG51bGwhPT1hLmRlaHlkcmF0ZWQpPyhiPWIubWVtb2l6ZWRTdGF0ZSxudWxsIT09YiYmbnVsbD09PWIuZGVoeWRyYXRlZCk6ITF9dmFyIG5qPU1hdGguY2VpbCxvaj1yYS5SZWFjdEN1cnJlbnREaXNwYXRjaGVyLHBqPXJhLlJlYWN0Q3VycmVudE93bmVyLFg9MCxVPW51bGwsWT1udWxsLFc9MCxxaj0wLHJqPUJmKDApLFY9MCxzaj1udWxsLHRqPTAsRGc9MCxIaT0wLHVqPTAsdmo9bnVsbCxqaj0wLEppPUluZmluaXR5O2Z1bmN0aW9uIHdqKCl7Smk9TygpKzUwMH12YXIgWj1udWxsLFFpPSExLFJpPW51bGwsVGk9bnVsbCx4aj0hMSx5aj1udWxsLHpqPTkwLEFqPVtdLEJqPVtdLENqPW51bGwsRGo9MCxFaj1udWxsLEZqPS0xLEdqPTAsSGo9MCxJaj1udWxsLEpqPSExO2Z1bmN0aW9uIEhnKCl7cmV0dXJuIDAhPT0oWCY0OCk/TygpOi0xIT09Rmo/Rmo6Rmo9TygpfVxuZnVuY3Rpb24gSWcoYSl7YT1hLm1vZGU7aWYoMD09PShhJjIpKXJldHVybiAxO2lmKDA9PT0oYSY0KSlyZXR1cm4gOTk9PT1lZygpPzE6MjswPT09R2omJihHaj10aik7aWYoMCE9PWtnLnRyYW5zaXRpb24pezAhPT1IaiYmKEhqPW51bGwhPT12aj92ai5wZW5kaW5nTGFuZXM6MCk7YT1Hajt2YXIgYj00MTg2MTEyJn5IajtiJj0tYjswPT09YiYmKGE9NDE4NjExMiZ+YSxiPWEmLWEsMD09PWImJihiPTgxOTIpKTtyZXR1cm4gYn1hPWVnKCk7MCE9PShYJjQpJiY5OD09PWE/YT1YYygxMixHaik6KGE9U2MoYSksYT1YYyhhLEdqKSk7cmV0dXJuIGF9XG5mdW5jdGlvbiBKZyhhLGIsYyl7aWYoNTA8RGopdGhyb3cgRGo9MCxFaj1udWxsLEVycm9yKHkoMTg1KSk7YT1LaihhLGIpO2lmKG51bGw9PT1hKXJldHVybiBudWxsOyRjKGEsYixjKTthPT09VSYmKEhpfD1iLDQ9PT1WJiZJaShhLFcpKTt2YXIgZD1lZygpOzE9PT1iPzAhPT0oWCY4KSYmMD09PShYJjQ4KT9MaihhKTooTWooYSxjKSwwPT09WCYmKHdqKCksaWcoKSkpOigwPT09KFgmNCl8fDk4IT09ZCYmOTkhPT1kfHwobnVsbD09PUNqP0NqPW5ldyBTZXQoW2FdKTpDai5hZGQoYSkpLE1qKGEsYykpO3ZqPWF9ZnVuY3Rpb24gS2ooYSxiKXthLmxhbmVzfD1iO3ZhciBjPWEuYWx0ZXJuYXRlO251bGwhPT1jJiYoYy5sYW5lc3w9Yik7Yz1hO2ZvcihhPWEucmV0dXJuO251bGwhPT1hOylhLmNoaWxkTGFuZXN8PWIsYz1hLmFsdGVybmF0ZSxudWxsIT09YyYmKGMuY2hpbGRMYW5lc3w9YiksYz1hLGE9YS5yZXR1cm47cmV0dXJuIDM9PT1jLnRhZz9jLnN0YXRlTm9kZTpudWxsfVxuZnVuY3Rpb24gTWooYSxiKXtmb3IodmFyIGM9YS5jYWxsYmFja05vZGUsZD1hLnN1c3BlbmRlZExhbmVzLGU9YS5waW5nZWRMYW5lcyxmPWEuZXhwaXJhdGlvblRpbWVzLGc9YS5wZW5kaW5nTGFuZXM7MDxnOyl7dmFyIGg9MzEtVmMoZyksaz0xPDxoLGw9ZltoXTtpZigtMT09PWwpe2lmKDA9PT0oayZkKXx8MCE9PShrJmUpKXtsPWI7UmMoayk7dmFyIG49RjtmW2hdPTEwPD1uP2wrMjUwOjY8PW4/bCs1RTM6LTF9fWVsc2UgbDw9YiYmKGEuZXhwaXJlZExhbmVzfD1rKTtnJj1+a31kPVVjKGEsYT09PVU/VzowKTtiPUY7aWYoMD09PWQpbnVsbCE9PWMmJihjIT09WmYmJlBmKGMpLGEuY2FsbGJhY2tOb2RlPW51bGwsYS5jYWxsYmFja1ByaW9yaXR5PTApO2Vsc2V7aWYobnVsbCE9PWMpe2lmKGEuY2FsbGJhY2tQcmlvcml0eT09PWIpcmV0dXJuO2MhPT1aZiYmUGYoYyl9MTU9PT1iPyhjPUxqLmJpbmQobnVsbCxhKSxudWxsPT09YWc/KGFnPVtjXSxiZz1PZihVZixqZykpOmFnLnB1c2goYyksXG5jPVpmKToxND09PWI/Yz1oZyg5OSxMai5iaW5kKG51bGwsYSkpOihjPVRjKGIpLGM9aGcoYyxOai5iaW5kKG51bGwsYSkpKTthLmNhbGxiYWNrUHJpb3JpdHk9YjthLmNhbGxiYWNrTm9kZT1jfX1cbmZ1bmN0aW9uIE5qKGEpe0ZqPS0xO0hqPUdqPTA7aWYoMCE9PShYJjQ4KSl0aHJvdyBFcnJvcih5KDMyNykpO3ZhciBiPWEuY2FsbGJhY2tOb2RlO2lmKE9qKCkmJmEuY2FsbGJhY2tOb2RlIT09YilyZXR1cm4gbnVsbDt2YXIgYz1VYyhhLGE9PT1VP1c6MCk7aWYoMD09PWMpcmV0dXJuIG51bGw7dmFyIGQ9Yzt2YXIgZT1YO1h8PTE2O3ZhciBmPVBqKCk7aWYoVSE9PWF8fFchPT1kKXdqKCksUWooYSxkKTtkbyB0cnl7UmooKTticmVha31jYXRjaChoKXtTaihhLGgpfXdoaWxlKDEpO3FnKCk7b2ouY3VycmVudD1mO1g9ZTtudWxsIT09WT9kPTA6KFU9bnVsbCxXPTAsZD1WKTtpZigwIT09KHRqJkhpKSlRaihhLDApO2Vsc2UgaWYoMCE9PWQpezI9PT1kJiYoWHw9NjQsYS5oeWRyYXRlJiYoYS5oeWRyYXRlPSExLHFmKGEuY29udGFpbmVySW5mbykpLGM9V2MoYSksMCE9PWMmJihkPVRqKGEsYykpKTtpZigxPT09ZCl0aHJvdyBiPXNqLFFqKGEsMCksSWkoYSxjKSxNaihhLE8oKSksYjthLmZpbmlzaGVkV29yaz1cbmEuY3VycmVudC5hbHRlcm5hdGU7YS5maW5pc2hlZExhbmVzPWM7c3dpdGNoKGQpe2Nhc2UgMDpjYXNlIDE6dGhyb3cgRXJyb3IoeSgzNDUpKTtjYXNlIDI6VWooYSk7YnJlYWs7Y2FzZSAzOklpKGEsYyk7aWYoKGMmNjI5MTQ1NjApPT09YyYmKGQ9amorNTAwLU8oKSwxMDxkKSl7aWYoMCE9PVVjKGEsMCkpYnJlYWs7ZT1hLnN1c3BlbmRlZExhbmVzO2lmKChlJmMpIT09Yyl7SGcoKTthLnBpbmdlZExhbmVzfD1hLnN1c3BlbmRlZExhbmVzJmU7YnJlYWt9YS50aW1lb3V0SGFuZGxlPW9mKFVqLmJpbmQobnVsbCxhKSxkKTticmVha31VaihhKTticmVhaztjYXNlIDQ6SWkoYSxjKTtpZigoYyY0MTg2MTEyKT09PWMpYnJlYWs7ZD1hLmV2ZW50VGltZXM7Zm9yKGU9LTE7MDxjOyl7dmFyIGc9MzEtVmMoYyk7Zj0xPDxnO2c9ZFtnXTtnPmUmJihlPWcpO2MmPX5mfWM9ZTtjPU8oKS1jO2M9KDEyMD5jPzEyMDo0ODA+Yz80ODA6MTA4MD5jPzEwODA6MTkyMD5jPzE5MjA6M0UzPmM/M0UzOjQzMjA+XG5jPzQzMjA6MTk2MCpuaihjLzE5NjApKS1jO2lmKDEwPGMpe2EudGltZW91dEhhbmRsZT1vZihVai5iaW5kKG51bGwsYSksYyk7YnJlYWt9VWooYSk7YnJlYWs7Y2FzZSA1OlVqKGEpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IoeSgzMjkpKTt9fU1qKGEsTygpKTtyZXR1cm4gYS5jYWxsYmFja05vZGU9PT1iP05qLmJpbmQobnVsbCxhKTpudWxsfWZ1bmN0aW9uIElpKGEsYil7YiY9fnVqO2ImPX5IaTthLnN1c3BlbmRlZExhbmVzfD1iO2EucGluZ2VkTGFuZXMmPX5iO2ZvcihhPWEuZXhwaXJhdGlvblRpbWVzOzA8Yjspe3ZhciBjPTMxLVZjKGIpLGQ9MTw8YzthW2NdPS0xO2ImPX5kfX1cbmZ1bmN0aW9uIExqKGEpe2lmKDAhPT0oWCY0OCkpdGhyb3cgRXJyb3IoeSgzMjcpKTtPaigpO2lmKGE9PT1VJiYwIT09KGEuZXhwaXJlZExhbmVzJlcpKXt2YXIgYj1XO3ZhciBjPVRqKGEsYik7MCE9PSh0aiZIaSkmJihiPVVjKGEsYiksYz1UaihhLGIpKX1lbHNlIGI9VWMoYSwwKSxjPVRqKGEsYik7MCE9PWEudGFnJiYyPT09YyYmKFh8PTY0LGEuaHlkcmF0ZSYmKGEuaHlkcmF0ZT0hMSxxZihhLmNvbnRhaW5lckluZm8pKSxiPVdjKGEpLDAhPT1iJiYoYz1UaihhLGIpKSk7aWYoMT09PWMpdGhyb3cgYz1zaixRaihhLDApLElpKGEsYiksTWooYSxPKCkpLGM7YS5maW5pc2hlZFdvcms9YS5jdXJyZW50LmFsdGVybmF0ZTthLmZpbmlzaGVkTGFuZXM9YjtVaihhKTtNaihhLE8oKSk7cmV0dXJuIG51bGx9XG5mdW5jdGlvbiBWaigpe2lmKG51bGwhPT1Dail7dmFyIGE9Q2o7Q2o9bnVsbDthLmZvckVhY2goZnVuY3Rpb24oYSl7YS5leHBpcmVkTGFuZXN8PTI0JmEucGVuZGluZ0xhbmVzO01qKGEsTygpKX0pfWlnKCl9ZnVuY3Rpb24gV2ooYSxiKXt2YXIgYz1YO1h8PTE7dHJ5e3JldHVybiBhKGIpfWZpbmFsbHl7WD1jLDA9PT1YJiYod2ooKSxpZygpKX19ZnVuY3Rpb24gWGooYSxiKXt2YXIgYz1YO1gmPS0yO1h8PTg7dHJ5e3JldHVybiBhKGIpfWZpbmFsbHl7WD1jLDA9PT1YJiYod2ooKSxpZygpKX19ZnVuY3Rpb24gbmkoYSxiKXtJKHJqLHFqKTtxanw9Yjt0anw9Yn1mdW5jdGlvbiBLaSgpe3FqPXJqLmN1cnJlbnQ7SChyail9XG5mdW5jdGlvbiBRaihhLGIpe2EuZmluaXNoZWRXb3JrPW51bGw7YS5maW5pc2hlZExhbmVzPTA7dmFyIGM9YS50aW1lb3V0SGFuZGxlOy0xIT09YyYmKGEudGltZW91dEhhbmRsZT0tMSxwZihjKSk7aWYobnVsbCE9PVkpZm9yKGM9WS5yZXR1cm47bnVsbCE9PWM7KXt2YXIgZD1jO3N3aXRjaChkLnRhZyl7Y2FzZSAxOmQ9ZC50eXBlLmNoaWxkQ29udGV4dFR5cGVzO251bGwhPT1kJiZ2b2lkIDAhPT1kJiZHZigpO2JyZWFrO2Nhc2UgMzpmaCgpO0goTik7SChNKTt1aCgpO2JyZWFrO2Nhc2UgNTpoaChkKTticmVhaztjYXNlIDQ6ZmgoKTticmVhaztjYXNlIDEzOkgoUCk7YnJlYWs7Y2FzZSAxOTpIKFApO2JyZWFrO2Nhc2UgMTA6cmcoZCk7YnJlYWs7Y2FzZSAyMzpjYXNlIDI0OktpKCl9Yz1jLnJldHVybn1VPWE7WT1UZyhhLmN1cnJlbnQsbnVsbCk7Vz1xaj10aj1iO1Y9MDtzaj1udWxsO3VqPUhpPURnPTB9XG5mdW5jdGlvbiBTaihhLGIpe2Rve3ZhciBjPVk7dHJ5e3FnKCk7dmguY3VycmVudD1HaDtpZih5aCl7Zm9yKHZhciBkPVIubWVtb2l6ZWRTdGF0ZTtudWxsIT09ZDspe3ZhciBlPWQucXVldWU7bnVsbCE9PWUmJihlLnBlbmRpbmc9bnVsbCk7ZD1kLm5leHR9eWg9ITF9eGg9MDtUPVM9Uj1udWxsO3poPSExO3BqLmN1cnJlbnQ9bnVsbDtpZihudWxsPT09Y3x8bnVsbD09PWMucmV0dXJuKXtWPTE7c2o9YjtZPW51bGw7YnJlYWt9YTp7dmFyIGY9YSxnPWMucmV0dXJuLGg9YyxrPWI7Yj1XO2guZmxhZ3N8PTIwNDg7aC5maXJzdEVmZmVjdD1oLmxhc3RFZmZlY3Q9bnVsbDtpZihudWxsIT09ayYmXCJvYmplY3RcIj09PXR5cGVvZiBrJiZcImZ1bmN0aW9uXCI9PT10eXBlb2Ygay50aGVuKXt2YXIgbD1rO2lmKDA9PT0oaC5tb2RlJjIpKXt2YXIgbj1oLmFsdGVybmF0ZTtuPyhoLnVwZGF0ZVF1ZXVlPW4udXBkYXRlUXVldWUsaC5tZW1vaXplZFN0YXRlPW4ubWVtb2l6ZWRTdGF0ZSxoLmxhbmVzPW4ubGFuZXMpOlxuKGgudXBkYXRlUXVldWU9bnVsbCxoLm1lbW9pemVkU3RhdGU9bnVsbCl9dmFyIEE9MCE9PShQLmN1cnJlbnQmMSkscD1nO2Rve3ZhciBDO2lmKEM9MTM9PT1wLnRhZyl7dmFyIHg9cC5tZW1vaXplZFN0YXRlO2lmKG51bGwhPT14KUM9bnVsbCE9PXguZGVoeWRyYXRlZD8hMDohMTtlbHNle3ZhciB3PXAubWVtb2l6ZWRQcm9wcztDPXZvaWQgMD09PXcuZmFsbGJhY2s/ITE6ITAhPT13LnVuc3RhYmxlX2F2b2lkVGhpc0ZhbGxiYWNrPyEwOkE/ITE6ITB9fWlmKEMpe3ZhciB6PXAudXBkYXRlUXVldWU7aWYobnVsbD09PXope3ZhciB1PW5ldyBTZXQ7dS5hZGQobCk7cC51cGRhdGVRdWV1ZT11fWVsc2Ugei5hZGQobCk7aWYoMD09PShwLm1vZGUmMikpe3AuZmxhZ3N8PTY0O2guZmxhZ3N8PTE2Mzg0O2guZmxhZ3MmPS0yOTgxO2lmKDE9PT1oLnRhZylpZihudWxsPT09aC5hbHRlcm5hdGUpaC50YWc9MTc7ZWxzZXt2YXIgdD16ZygtMSwxKTt0LnRhZz0yO0FnKGgsdCl9aC5sYW5lc3w9MTticmVhayBhfWs9XG52b2lkIDA7aD1iO3ZhciBxPWYucGluZ0NhY2hlO251bGw9PT1xPyhxPWYucGluZ0NhY2hlPW5ldyBPaSxrPW5ldyBTZXQscS5zZXQobCxrKSk6KGs9cS5nZXQobCksdm9pZCAwPT09ayYmKGs9bmV3IFNldCxxLnNldChsLGspKSk7aWYoIWsuaGFzKGgpKXtrLmFkZChoKTt2YXIgdj1Zai5iaW5kKG51bGwsZixsLGgpO2wudGhlbih2LHYpfXAuZmxhZ3N8PTQwOTY7cC5sYW5lcz1iO2JyZWFrIGF9cD1wLnJldHVybn13aGlsZShudWxsIT09cCk7az1FcnJvcigoUmEoaC50eXBlKXx8XCJBIFJlYWN0IGNvbXBvbmVudFwiKStcIiBzdXNwZW5kZWQgd2hpbGUgcmVuZGVyaW5nLCBidXQgbm8gZmFsbGJhY2sgVUkgd2FzIHNwZWNpZmllZC5cXG5cXG5BZGQgYSA8U3VzcGVuc2UgZmFsbGJhY2s9Li4uPiBjb21wb25lbnQgaGlnaGVyIGluIHRoZSB0cmVlIHRvIHByb3ZpZGUgYSBsb2FkaW5nIGluZGljYXRvciBvciBwbGFjZWhvbGRlciB0byBkaXNwbGF5LlwiKX01IT09ViYmKFY9Mik7az1NaShrLGgpO3A9XG5nO2Rve3N3aXRjaChwLnRhZyl7Y2FzZSAzOmY9aztwLmZsYWdzfD00MDk2O2ImPS1iO3AubGFuZXN8PWI7dmFyIEo9UGkocCxmLGIpO0JnKHAsSik7YnJlYWsgYTtjYXNlIDE6Zj1rO3ZhciBLPXAudHlwZSxRPXAuc3RhdGVOb2RlO2lmKDA9PT0ocC5mbGFncyY2NCkmJihcImZ1bmN0aW9uXCI9PT10eXBlb2YgSy5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3J8fG51bGwhPT1RJiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgUS5jb21wb25lbnREaWRDYXRjaCYmKG51bGw9PT1UaXx8IVRpLmhhcyhRKSkpKXtwLmZsYWdzfD00MDk2O2ImPS1iO3AubGFuZXN8PWI7dmFyIEw9U2kocCxmLGIpO0JnKHAsTCk7YnJlYWsgYX19cD1wLnJldHVybn13aGlsZShudWxsIT09cCl9WmooYyl9Y2F0Y2godmEpe2I9dmE7WT09PWMmJm51bGwhPT1jJiYoWT1jPWMucmV0dXJuKTtjb250aW51ZX1icmVha313aGlsZSgxKX1cbmZ1bmN0aW9uIFBqKCl7dmFyIGE9b2ouY3VycmVudDtvai5jdXJyZW50PUdoO3JldHVybiBudWxsPT09YT9HaDphfWZ1bmN0aW9uIFRqKGEsYil7dmFyIGM9WDtYfD0xNjt2YXIgZD1QaigpO1U9PT1hJiZXPT09Ynx8UWooYSxiKTtkbyB0cnl7YWsoKTticmVha31jYXRjaChlKXtTaihhLGUpfXdoaWxlKDEpO3FnKCk7WD1jO29qLmN1cnJlbnQ9ZDtpZihudWxsIT09WSl0aHJvdyBFcnJvcih5KDI2MSkpO1U9bnVsbDtXPTA7cmV0dXJuIFZ9ZnVuY3Rpb24gYWsoKXtmb3IoO251bGwhPT1ZOyliayhZKX1mdW5jdGlvbiBSaigpe2Zvcig7bnVsbCE9PVkmJiFRZigpOyliayhZKX1mdW5jdGlvbiBiayhhKXt2YXIgYj1jayhhLmFsdGVybmF0ZSxhLHFqKTthLm1lbW9pemVkUHJvcHM9YS5wZW5kaW5nUHJvcHM7bnVsbD09PWI/WmooYSk6WT1iO3BqLmN1cnJlbnQ9bnVsbH1cbmZ1bmN0aW9uIFpqKGEpe3ZhciBiPWE7ZG97dmFyIGM9Yi5hbHRlcm5hdGU7YT1iLnJldHVybjtpZigwPT09KGIuZmxhZ3MmMjA0OCkpe2M9R2koYyxiLHFqKTtpZihudWxsIT09Yyl7WT1jO3JldHVybn1jPWI7aWYoMjQhPT1jLnRhZyYmMjMhPT1jLnRhZ3x8bnVsbD09PWMubWVtb2l6ZWRTdGF0ZXx8MCE9PShxaiYxMDczNzQxODI0KXx8MD09PShjLm1vZGUmNCkpe2Zvcih2YXIgZD0wLGU9Yy5jaGlsZDtudWxsIT09ZTspZHw9ZS5sYW5lc3xlLmNoaWxkTGFuZXMsZT1lLnNpYmxpbmc7Yy5jaGlsZExhbmVzPWR9bnVsbCE9PWEmJjA9PT0oYS5mbGFncyYyMDQ4KSYmKG51bGw9PT1hLmZpcnN0RWZmZWN0JiYoYS5maXJzdEVmZmVjdD1iLmZpcnN0RWZmZWN0KSxudWxsIT09Yi5sYXN0RWZmZWN0JiYobnVsbCE9PWEubGFzdEVmZmVjdCYmKGEubGFzdEVmZmVjdC5uZXh0RWZmZWN0PWIuZmlyc3RFZmZlY3QpLGEubGFzdEVmZmVjdD1iLmxhc3RFZmZlY3QpLDE8Yi5mbGFncyYmKG51bGwhPT1cbmEubGFzdEVmZmVjdD9hLmxhc3RFZmZlY3QubmV4dEVmZmVjdD1iOmEuZmlyc3RFZmZlY3Q9YixhLmxhc3RFZmZlY3Q9YikpfWVsc2V7Yz1MaShiKTtpZihudWxsIT09Yyl7Yy5mbGFncyY9MjA0NztZPWM7cmV0dXJufW51bGwhPT1hJiYoYS5maXJzdEVmZmVjdD1hLmxhc3RFZmZlY3Q9bnVsbCxhLmZsYWdzfD0yMDQ4KX1iPWIuc2libGluZztpZihudWxsIT09Yil7WT1iO3JldHVybn1ZPWI9YX13aGlsZShudWxsIT09Yik7MD09PVYmJihWPTUpfWZ1bmN0aW9uIFVqKGEpe3ZhciBiPWVnKCk7Z2coOTksZGsuYmluZChudWxsLGEsYikpO3JldHVybiBudWxsfVxuZnVuY3Rpb24gZGsoYSxiKXtkbyBPaigpO3doaWxlKG51bGwhPT15aik7aWYoMCE9PShYJjQ4KSl0aHJvdyBFcnJvcih5KDMyNykpO3ZhciBjPWEuZmluaXNoZWRXb3JrO2lmKG51bGw9PT1jKXJldHVybiBudWxsO2EuZmluaXNoZWRXb3JrPW51bGw7YS5maW5pc2hlZExhbmVzPTA7aWYoYz09PWEuY3VycmVudCl0aHJvdyBFcnJvcih5KDE3NykpO2EuY2FsbGJhY2tOb2RlPW51bGw7dmFyIGQ9Yy5sYW5lc3xjLmNoaWxkTGFuZXMsZT1kLGY9YS5wZW5kaW5nTGFuZXMmfmU7YS5wZW5kaW5nTGFuZXM9ZTthLnN1c3BlbmRlZExhbmVzPTA7YS5waW5nZWRMYW5lcz0wO2EuZXhwaXJlZExhbmVzJj1lO2EubXV0YWJsZVJlYWRMYW5lcyY9ZTthLmVudGFuZ2xlZExhbmVzJj1lO2U9YS5lbnRhbmdsZW1lbnRzO2Zvcih2YXIgZz1hLmV2ZW50VGltZXMsaD1hLmV4cGlyYXRpb25UaW1lczswPGY7KXt2YXIgaz0zMS1WYyhmKSxsPTE8PGs7ZVtrXT0wO2dba109LTE7aFtrXT0tMTtmJj1+bH1udWxsIT09XG5DaiYmMD09PShkJjI0KSYmQ2ouaGFzKGEpJiZDai5kZWxldGUoYSk7YT09PVUmJihZPVU9bnVsbCxXPTApOzE8Yy5mbGFncz9udWxsIT09Yy5sYXN0RWZmZWN0PyhjLmxhc3RFZmZlY3QubmV4dEVmZmVjdD1jLGQ9Yy5maXJzdEVmZmVjdCk6ZD1jOmQ9Yy5maXJzdEVmZmVjdDtpZihudWxsIT09ZCl7ZT1YO1h8PTMyO3BqLmN1cnJlbnQ9bnVsbDtrZj1mZDtnPU5lKCk7aWYoT2UoZykpe2lmKFwic2VsZWN0aW9uU3RhcnRcImluIGcpaD17c3RhcnQ6Zy5zZWxlY3Rpb25TdGFydCxlbmQ6Zy5zZWxlY3Rpb25FbmR9O2Vsc2UgYTppZihoPShoPWcub3duZXJEb2N1bWVudCkmJmguZGVmYXVsdFZpZXd8fHdpbmRvdywobD1oLmdldFNlbGVjdGlvbiYmaC5nZXRTZWxlY3Rpb24oKSkmJjAhPT1sLnJhbmdlQ291bnQpe2g9bC5hbmNob3JOb2RlO2Y9bC5hbmNob3JPZmZzZXQ7az1sLmZvY3VzTm9kZTtsPWwuZm9jdXNPZmZzZXQ7dHJ5e2gubm9kZVR5cGUsay5ub2RlVHlwZX1jYXRjaCh2YSl7aD1udWxsO1xuYnJlYWsgYX12YXIgbj0wLEE9LTEscD0tMSxDPTAseD0wLHc9Zyx6PW51bGw7Yjpmb3IoOzspe2Zvcih2YXIgdTs7KXt3IT09aHx8MCE9PWYmJjMhPT13Lm5vZGVUeXBlfHwoQT1uK2YpO3chPT1rfHwwIT09bCYmMyE9PXcubm9kZVR5cGV8fChwPW4rbCk7Mz09PXcubm9kZVR5cGUmJihuKz13Lm5vZGVWYWx1ZS5sZW5ndGgpO2lmKG51bGw9PT0odT13LmZpcnN0Q2hpbGQpKWJyZWFrO3o9dzt3PXV9Zm9yKDs7KXtpZih3PT09ZylicmVhayBiO3o9PT1oJiYrK0M9PT1mJiYoQT1uKTt6PT09ayYmKyt4PT09bCYmKHA9bik7aWYobnVsbCE9PSh1PXcubmV4dFNpYmxpbmcpKWJyZWFrO3c9ejt6PXcucGFyZW50Tm9kZX13PXV9aD0tMT09PUF8fC0xPT09cD9udWxsOntzdGFydDpBLGVuZDpwfX1lbHNlIGg9bnVsbDtoPWh8fHtzdGFydDowLGVuZDowfX1lbHNlIGg9bnVsbDtsZj17Zm9jdXNlZEVsZW06ZyxzZWxlY3Rpb25SYW5nZTpofTtmZD0hMTtJaj1udWxsO0pqPSExO1o9ZDtkbyB0cnl7ZWsoKX1jYXRjaCh2YSl7aWYobnVsbD09PVxuWil0aHJvdyBFcnJvcih5KDMzMCkpO1dpKFosdmEpO1o9Wi5uZXh0RWZmZWN0fXdoaWxlKG51bGwhPT1aKTtJaj1udWxsO1o9ZDtkbyB0cnl7Zm9yKGc9YTtudWxsIT09Wjspe3ZhciB0PVouZmxhZ3M7dCYxNiYmcGIoWi5zdGF0ZU5vZGUsXCJcIik7aWYodCYxMjgpe3ZhciBxPVouYWx0ZXJuYXRlO2lmKG51bGwhPT1xKXt2YXIgdj1xLnJlZjtudWxsIT09diYmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiB2P3YobnVsbCk6di5jdXJyZW50PW51bGwpfX1zd2l0Y2godCYxMDM4KXtjYXNlIDI6ZmooWik7Wi5mbGFncyY9LTM7YnJlYWs7Y2FzZSA2OmZqKFopO1ouZmxhZ3MmPS0zO2lqKFouYWx0ZXJuYXRlLFopO2JyZWFrO2Nhc2UgMTAyNDpaLmZsYWdzJj0tMTAyNTticmVhaztjYXNlIDEwMjg6Wi5mbGFncyY9LTEwMjU7aWooWi5hbHRlcm5hdGUsWik7YnJlYWs7Y2FzZSA0OmlqKFouYWx0ZXJuYXRlLFopO2JyZWFrO2Nhc2UgODpoPVo7Y2ooZyxoKTt2YXIgSj1oLmFsdGVybmF0ZTtkaihoKTtudWxsIT09XG5KJiZkaihKKX1aPVoubmV4dEVmZmVjdH19Y2F0Y2godmEpe2lmKG51bGw9PT1aKXRocm93IEVycm9yKHkoMzMwKSk7V2koWix2YSk7Wj1aLm5leHRFZmZlY3R9d2hpbGUobnVsbCE9PVopO3Y9bGY7cT1OZSgpO3Q9di5mb2N1c2VkRWxlbTtnPXYuc2VsZWN0aW9uUmFuZ2U7aWYocSE9PXQmJnQmJnQub3duZXJEb2N1bWVudCYmTWUodC5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCx0KSl7bnVsbCE9PWcmJk9lKHQpJiYocT1nLnN0YXJ0LHY9Zy5lbmQsdm9pZCAwPT09diYmKHY9cSksXCJzZWxlY3Rpb25TdGFydFwiaW4gdD8odC5zZWxlY3Rpb25TdGFydD1xLHQuc2VsZWN0aW9uRW5kPU1hdGgubWluKHYsdC52YWx1ZS5sZW5ndGgpKToodj0ocT10Lm93bmVyRG9jdW1lbnR8fGRvY3VtZW50KSYmcS5kZWZhdWx0Vmlld3x8d2luZG93LHYuZ2V0U2VsZWN0aW9uJiYodj12LmdldFNlbGVjdGlvbigpLGg9dC50ZXh0Q29udGVudC5sZW5ndGgsSj1NYXRoLm1pbihnLnN0YXJ0LGgpLGc9dm9pZCAwPT09XG5nLmVuZD9KOk1hdGgubWluKGcuZW5kLGgpLCF2LmV4dGVuZCYmSj5nJiYoaD1nLGc9SixKPWgpLGg9TGUodCxKKSxmPUxlKHQsZyksaCYmZiYmKDEhPT12LnJhbmdlQ291bnR8fHYuYW5jaG9yTm9kZSE9PWgubm9kZXx8di5hbmNob3JPZmZzZXQhPT1oLm9mZnNldHx8di5mb2N1c05vZGUhPT1mLm5vZGV8fHYuZm9jdXNPZmZzZXQhPT1mLm9mZnNldCkmJihxPXEuY3JlYXRlUmFuZ2UoKSxxLnNldFN0YXJ0KGgubm9kZSxoLm9mZnNldCksdi5yZW1vdmVBbGxSYW5nZXMoKSxKPmc/KHYuYWRkUmFuZ2UocSksdi5leHRlbmQoZi5ub2RlLGYub2Zmc2V0KSk6KHEuc2V0RW5kKGYubm9kZSxmLm9mZnNldCksdi5hZGRSYW5nZShxKSkpKSkpO3E9W107Zm9yKHY9dDt2PXYucGFyZW50Tm9kZTspMT09PXYubm9kZVR5cGUmJnEucHVzaCh7ZWxlbWVudDp2LGxlZnQ6di5zY3JvbGxMZWZ0LHRvcDp2LnNjcm9sbFRvcH0pO1wiZnVuY3Rpb25cIj09PXR5cGVvZiB0LmZvY3VzJiZ0LmZvY3VzKCk7Zm9yKHQ9XG4wO3Q8cS5sZW5ndGg7dCsrKXY9cVt0XSx2LmVsZW1lbnQuc2Nyb2xsTGVmdD12LmxlZnQsdi5lbGVtZW50LnNjcm9sbFRvcD12LnRvcH1mZD0hIWtmO2xmPWtmPW51bGw7YS5jdXJyZW50PWM7Wj1kO2RvIHRyeXtmb3IodD1hO251bGwhPT1aOyl7dmFyIEs9Wi5mbGFncztLJjM2JiZZaSh0LFouYWx0ZXJuYXRlLFopO2lmKEsmMTI4KXtxPXZvaWQgMDt2YXIgUT1aLnJlZjtpZihudWxsIT09USl7dmFyIEw9Wi5zdGF0ZU5vZGU7c3dpdGNoKFoudGFnKXtjYXNlIDU6cT1MO2JyZWFrO2RlZmF1bHQ6cT1MfVwiZnVuY3Rpb25cIj09PXR5cGVvZiBRP1EocSk6US5jdXJyZW50PXF9fVo9Wi5uZXh0RWZmZWN0fX1jYXRjaCh2YSl7aWYobnVsbD09PVopdGhyb3cgRXJyb3IoeSgzMzApKTtXaShaLHZhKTtaPVoubmV4dEVmZmVjdH13aGlsZShudWxsIT09Wik7Wj1udWxsOyRmKCk7WD1lfWVsc2UgYS5jdXJyZW50PWM7aWYoeGopeGo9ITEseWo9YSx6aj1iO2Vsc2UgZm9yKFo9ZDtudWxsIT09WjspYj1cbloubmV4dEVmZmVjdCxaLm5leHRFZmZlY3Q9bnVsbCxaLmZsYWdzJjgmJihLPVosSy5zaWJsaW5nPW51bGwsSy5zdGF0ZU5vZGU9bnVsbCksWj1iO2Q9YS5wZW5kaW5nTGFuZXM7MD09PWQmJihUaT1udWxsKTsxPT09ZD9hPT09RWo/RGorKzooRGo9MCxFaj1hKTpEaj0wO2M9Yy5zdGF0ZU5vZGU7aWYoTWYmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBNZi5vbkNvbW1pdEZpYmVyUm9vdCl0cnl7TWYub25Db21taXRGaWJlclJvb3QoTGYsYyx2b2lkIDAsNjQ9PT0oYy5jdXJyZW50LmZsYWdzJjY0KSl9Y2F0Y2godmEpe31NaihhLE8oKSk7aWYoUWkpdGhyb3cgUWk9ITEsYT1SaSxSaT1udWxsLGE7aWYoMCE9PShYJjgpKXJldHVybiBudWxsO2lnKCk7cmV0dXJuIG51bGx9XG5mdW5jdGlvbiBlaygpe2Zvcig7bnVsbCE9PVo7KXt2YXIgYT1aLmFsdGVybmF0ZTtKanx8bnVsbD09PUlqfHwoMCE9PShaLmZsYWdzJjgpP2RjKFosSWopJiYoSmo9ITApOjEzPT09Wi50YWcmJm1qKGEsWikmJmRjKFosSWopJiYoSmo9ITApKTt2YXIgYj1aLmZsYWdzOzAhPT0oYiYyNTYpJiZYaShhLFopOzA9PT0oYiY1MTIpfHx4anx8KHhqPSEwLGhnKDk3LGZ1bmN0aW9uKCl7T2ooKTtyZXR1cm4gbnVsbH0pKTtaPVoubmV4dEVmZmVjdH19ZnVuY3Rpb24gT2ooKXtpZig5MCE9PXpqKXt2YXIgYT05Nzx6aj85Nzp6ajt6aj05MDtyZXR1cm4gZ2coYSxmayl9cmV0dXJuITF9ZnVuY3Rpb24gJGkoYSxiKXtBai5wdXNoKGIsYSk7eGp8fCh4aj0hMCxoZyg5NyxmdW5jdGlvbigpe09qKCk7cmV0dXJuIG51bGx9KSl9ZnVuY3Rpb24gWmkoYSxiKXtCai5wdXNoKGIsYSk7eGp8fCh4aj0hMCxoZyg5NyxmdW5jdGlvbigpe09qKCk7cmV0dXJuIG51bGx9KSl9XG5mdW5jdGlvbiBmaygpe2lmKG51bGw9PT15ailyZXR1cm4hMTt2YXIgYT15ajt5aj1udWxsO2lmKDAhPT0oWCY0OCkpdGhyb3cgRXJyb3IoeSgzMzEpKTt2YXIgYj1YO1h8PTMyO3ZhciBjPUJqO0JqPVtdO2Zvcih2YXIgZD0wO2Q8Yy5sZW5ndGg7ZCs9Mil7dmFyIGU9Y1tkXSxmPWNbZCsxXSxnPWUuZGVzdHJveTtlLmRlc3Ryb3k9dm9pZCAwO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBnKXRyeXtnKCl9Y2F0Y2goayl7aWYobnVsbD09PWYpdGhyb3cgRXJyb3IoeSgzMzApKTtXaShmLGspfX1jPUFqO0FqPVtdO2ZvcihkPTA7ZDxjLmxlbmd0aDtkKz0yKXtlPWNbZF07Zj1jW2QrMV07dHJ5e3ZhciBoPWUuY3JlYXRlO2UuZGVzdHJveT1oKCl9Y2F0Y2goayl7aWYobnVsbD09PWYpdGhyb3cgRXJyb3IoeSgzMzApKTtXaShmLGspfX1mb3IoaD1hLmN1cnJlbnQuZmlyc3RFZmZlY3Q7bnVsbCE9PWg7KWE9aC5uZXh0RWZmZWN0LGgubmV4dEVmZmVjdD1udWxsLGguZmxhZ3MmOCYmKGguc2libGluZz1cbm51bGwsaC5zdGF0ZU5vZGU9bnVsbCksaD1hO1g9YjtpZygpO3JldHVybiEwfWZ1bmN0aW9uIGdrKGEsYixjKXtiPU1pKGMsYik7Yj1QaShhLGIsMSk7QWcoYSxiKTtiPUhnKCk7YT1LaihhLDEpO251bGwhPT1hJiYoJGMoYSwxLGIpLE1qKGEsYikpfVxuZnVuY3Rpb24gV2koYSxiKXtpZigzPT09YS50YWcpZ2soYSxhLGIpO2Vsc2UgZm9yKHZhciBjPWEucmV0dXJuO251bGwhPT1jOyl7aWYoMz09PWMudGFnKXtnayhjLGEsYik7YnJlYWt9ZWxzZSBpZigxPT09Yy50YWcpe3ZhciBkPWMuc3RhdGVOb2RlO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBjLnR5cGUuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yfHxcImZ1bmN0aW9uXCI9PT10eXBlb2YgZC5jb21wb25lbnREaWRDYXRjaCYmKG51bGw9PT1UaXx8IVRpLmhhcyhkKSkpe2E9TWkoYixhKTt2YXIgZT1TaShjLGEsMSk7QWcoYyxlKTtlPUhnKCk7Yz1LaihjLDEpO2lmKG51bGwhPT1jKSRjKGMsMSxlKSxNaihjLGUpO2Vsc2UgaWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGQuY29tcG9uZW50RGlkQ2F0Y2gmJihudWxsPT09VGl8fCFUaS5oYXMoZCkpKXRyeXtkLmNvbXBvbmVudERpZENhdGNoKGIsYSl9Y2F0Y2goZil7fWJyZWFrfX1jPWMucmV0dXJufX1cbmZ1bmN0aW9uIFlqKGEsYixjKXt2YXIgZD1hLnBpbmdDYWNoZTtudWxsIT09ZCYmZC5kZWxldGUoYik7Yj1IZygpO2EucGluZ2VkTGFuZXN8PWEuc3VzcGVuZGVkTGFuZXMmYztVPT09YSYmKFcmYyk9PT1jJiYoND09PVZ8fDM9PT1WJiYoVyY2MjkxNDU2MCk9PT1XJiY1MDA+TygpLWpqP1FqKGEsMCk6dWp8PWMpO01qKGEsYil9ZnVuY3Rpb24gbGooYSxiKXt2YXIgYz1hLnN0YXRlTm9kZTtudWxsIT09YyYmYy5kZWxldGUoYik7Yj0wOzA9PT1iJiYoYj1hLm1vZGUsMD09PShiJjIpP2I9MTowPT09KGImNCk/Yj05OT09PWVnKCk/MToyOigwPT09R2omJihHaj10aiksYj1ZYyg2MjkxNDU2MCZ+R2opLDA9PT1iJiYoYj00MTk0MzA0KSkpO2M9SGcoKTthPUtqKGEsYik7bnVsbCE9PWEmJigkYyhhLGIsYyksTWooYSxjKSl9dmFyIGNrO1xuY2s9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWIubGFuZXM7aWYobnVsbCE9PWEpaWYoYS5tZW1vaXplZFByb3BzIT09Yi5wZW5kaW5nUHJvcHN8fE4uY3VycmVudCl1Zz0hMDtlbHNlIGlmKDAhPT0oYyZkKSl1Zz0wIT09KGEuZmxhZ3MmMTYzODQpPyEwOiExO2Vsc2V7dWc9ITE7c3dpdGNoKGIudGFnKXtjYXNlIDM6cmkoYik7c2goKTticmVhaztjYXNlIDU6Z2goYik7YnJlYWs7Y2FzZSAxOkZmKGIudHlwZSkmJkpmKGIpO2JyZWFrO2Nhc2UgNDplaChiLGIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pO2JyZWFrO2Nhc2UgMTA6ZD1iLm1lbW9pemVkUHJvcHMudmFsdWU7dmFyIGU9Yi50eXBlLl9jb250ZXh0O0kobWcsZS5fY3VycmVudFZhbHVlKTtlLl9jdXJyZW50VmFsdWU9ZDticmVhaztjYXNlIDEzOmlmKG51bGwhPT1iLm1lbW9pemVkU3RhdGUpe2lmKDAhPT0oYyZiLmNoaWxkLmNoaWxkTGFuZXMpKXJldHVybiB0aShhLGIsYyk7SShQLFAuY3VycmVudCYxKTtiPWhpKGEsYixjKTtyZXR1cm4gbnVsbCE9PVxuYj9iLnNpYmxpbmc6bnVsbH1JKFAsUC5jdXJyZW50JjEpO2JyZWFrO2Nhc2UgMTk6ZD0wIT09KGMmYi5jaGlsZExhbmVzKTtpZigwIT09KGEuZmxhZ3MmNjQpKXtpZihkKXJldHVybiBBaShhLGIsYyk7Yi5mbGFnc3w9NjR9ZT1iLm1lbW9pemVkU3RhdGU7bnVsbCE9PWUmJihlLnJlbmRlcmluZz1udWxsLGUudGFpbD1udWxsLGUubGFzdEVmZmVjdD1udWxsKTtJKFAsUC5jdXJyZW50KTtpZihkKWJyZWFrO2Vsc2UgcmV0dXJuIG51bGw7Y2FzZSAyMzpjYXNlIDI0OnJldHVybiBiLmxhbmVzPTAsbWkoYSxiLGMpfXJldHVybiBoaShhLGIsYyl9ZWxzZSB1Zz0hMTtiLmxhbmVzPTA7c3dpdGNoKGIudGFnKXtjYXNlIDI6ZD1iLnR5cGU7bnVsbCE9PWEmJihhLmFsdGVybmF0ZT1udWxsLGIuYWx0ZXJuYXRlPW51bGwsYi5mbGFnc3w9Mik7YT1iLnBlbmRpbmdQcm9wcztlPUVmKGIsTS5jdXJyZW50KTt0ZyhiLGMpO2U9Q2gobnVsbCxiLGQsYSxlLGMpO2IuZmxhZ3N8PTE7aWYoXCJvYmplY3RcIj09PVxudHlwZW9mIGUmJm51bGwhPT1lJiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgZS5yZW5kZXImJnZvaWQgMD09PWUuJCR0eXBlb2Ype2IudGFnPTE7Yi5tZW1vaXplZFN0YXRlPW51bGw7Yi51cGRhdGVRdWV1ZT1udWxsO2lmKEZmKGQpKXt2YXIgZj0hMDtKZihiKX1lbHNlIGY9ITE7Yi5tZW1vaXplZFN0YXRlPW51bGwhPT1lLnN0YXRlJiZ2b2lkIDAhPT1lLnN0YXRlP2Uuc3RhdGU6bnVsbDt4ZyhiKTt2YXIgZz1kLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcztcImZ1bmN0aW9uXCI9PT10eXBlb2YgZyYmR2coYixkLGcsYSk7ZS51cGRhdGVyPUtnO2Iuc3RhdGVOb2RlPWU7ZS5fcmVhY3RJbnRlcm5hbHM9YjtPZyhiLGQsYSxjKTtiPXFpKG51bGwsYixkLCEwLGYsYyl9ZWxzZSBiLnRhZz0wLGZpKG51bGwsYixlLGMpLGI9Yi5jaGlsZDtyZXR1cm4gYjtjYXNlIDE2OmU9Yi5lbGVtZW50VHlwZTthOntudWxsIT09YSYmKGEuYWx0ZXJuYXRlPW51bGwsYi5hbHRlcm5hdGU9bnVsbCxiLmZsYWdzfD0yKTtcbmE9Yi5wZW5kaW5nUHJvcHM7Zj1lLl9pbml0O2U9ZihlLl9wYXlsb2FkKTtiLnR5cGU9ZTtmPWIudGFnPWhrKGUpO2E9bGcoZSxhKTtzd2l0Y2goZil7Y2FzZSAwOmI9bGkobnVsbCxiLGUsYSxjKTticmVhayBhO2Nhc2UgMTpiPXBpKG51bGwsYixlLGEsYyk7YnJlYWsgYTtjYXNlIDExOmI9Z2kobnVsbCxiLGUsYSxjKTticmVhayBhO2Nhc2UgMTQ6Yj1paShudWxsLGIsZSxsZyhlLnR5cGUsYSksZCxjKTticmVhayBhfXRocm93IEVycm9yKHkoMzA2LGUsXCJcIikpO31yZXR1cm4gYjtjYXNlIDA6cmV0dXJuIGQ9Yi50eXBlLGU9Yi5wZW5kaW5nUHJvcHMsZT1iLmVsZW1lbnRUeXBlPT09ZD9lOmxnKGQsZSksbGkoYSxiLGQsZSxjKTtjYXNlIDE6cmV0dXJuIGQ9Yi50eXBlLGU9Yi5wZW5kaW5nUHJvcHMsZT1iLmVsZW1lbnRUeXBlPT09ZD9lOmxnKGQsZSkscGkoYSxiLGQsZSxjKTtjYXNlIDM6cmkoYik7ZD1iLnVwZGF0ZVF1ZXVlO2lmKG51bGw9PT1hfHxudWxsPT09ZCl0aHJvdyBFcnJvcih5KDI4MikpO1xuZD1iLnBlbmRpbmdQcm9wcztlPWIubWVtb2l6ZWRTdGF0ZTtlPW51bGwhPT1lP2UuZWxlbWVudDpudWxsO3lnKGEsYik7Q2coYixkLG51bGwsYyk7ZD1iLm1lbW9pemVkU3RhdGUuZWxlbWVudDtpZihkPT09ZSlzaCgpLGI9aGkoYSxiLGMpO2Vsc2V7ZT1iLnN0YXRlTm9kZTtpZihmPWUuaHlkcmF0ZSlraD1yZihiLnN0YXRlTm9kZS5jb250YWluZXJJbmZvLmZpcnN0Q2hpbGQpLGpoPWIsZj1saD0hMDtpZihmKXthPWUubXV0YWJsZVNvdXJjZUVhZ2VySHlkcmF0aW9uRGF0YTtpZihudWxsIT1hKWZvcihlPTA7ZTxhLmxlbmd0aDtlKz0yKWY9YVtlXSxmLl93b3JrSW5Qcm9ncmVzc1ZlcnNpb25QcmltYXJ5PWFbZSsxXSx0aC5wdXNoKGYpO2M9WmcoYixudWxsLGQsYyk7Zm9yKGIuY2hpbGQ9YztjOyljLmZsYWdzPWMuZmxhZ3MmLTN8MTAyNCxjPWMuc2libGluZ31lbHNlIGZpKGEsYixkLGMpLHNoKCk7Yj1iLmNoaWxkfXJldHVybiBiO2Nhc2UgNTpyZXR1cm4gZ2goYiksbnVsbD09PWEmJlxucGgoYiksZD1iLnR5cGUsZT1iLnBlbmRpbmdQcm9wcyxmPW51bGwhPT1hP2EubWVtb2l6ZWRQcm9wczpudWxsLGc9ZS5jaGlsZHJlbixuZihkLGUpP2c9bnVsbDpudWxsIT09ZiYmbmYoZCxmKSYmKGIuZmxhZ3N8PTE2KSxvaShhLGIpLGZpKGEsYixnLGMpLGIuY2hpbGQ7Y2FzZSA2OnJldHVybiBudWxsPT09YSYmcGgoYiksbnVsbDtjYXNlIDEzOnJldHVybiB0aShhLGIsYyk7Y2FzZSA0OnJldHVybiBlaChiLGIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pLGQ9Yi5wZW5kaW5nUHJvcHMsbnVsbD09PWE/Yi5jaGlsZD1ZZyhiLG51bGwsZCxjKTpmaShhLGIsZCxjKSxiLmNoaWxkO2Nhc2UgMTE6cmV0dXJuIGQ9Yi50eXBlLGU9Yi5wZW5kaW5nUHJvcHMsZT1iLmVsZW1lbnRUeXBlPT09ZD9lOmxnKGQsZSksZ2koYSxiLGQsZSxjKTtjYXNlIDc6cmV0dXJuIGZpKGEsYixiLnBlbmRpbmdQcm9wcyxjKSxiLmNoaWxkO2Nhc2UgODpyZXR1cm4gZmkoYSxiLGIucGVuZGluZ1Byb3BzLmNoaWxkcmVuLFxuYyksYi5jaGlsZDtjYXNlIDEyOnJldHVybiBmaShhLGIsYi5wZW5kaW5nUHJvcHMuY2hpbGRyZW4sYyksYi5jaGlsZDtjYXNlIDEwOmE6e2Q9Yi50eXBlLl9jb250ZXh0O2U9Yi5wZW5kaW5nUHJvcHM7Zz1iLm1lbW9pemVkUHJvcHM7Zj1lLnZhbHVlO3ZhciBoPWIudHlwZS5fY29udGV4dDtJKG1nLGguX2N1cnJlbnRWYWx1ZSk7aC5fY3VycmVudFZhbHVlPWY7aWYobnVsbCE9PWcpaWYoaD1nLnZhbHVlLGY9SGUoaCxmKT8wOihcImZ1bmN0aW9uXCI9PT10eXBlb2YgZC5fY2FsY3VsYXRlQ2hhbmdlZEJpdHM/ZC5fY2FsY3VsYXRlQ2hhbmdlZEJpdHMoaCxmKToxMDczNzQxODIzKXwwLDA9PT1mKXtpZihnLmNoaWxkcmVuPT09ZS5jaGlsZHJlbiYmIU4uY3VycmVudCl7Yj1oaShhLGIsYyk7YnJlYWsgYX19ZWxzZSBmb3IoaD1iLmNoaWxkLG51bGwhPT1oJiYoaC5yZXR1cm49Yik7bnVsbCE9PWg7KXt2YXIgaz1oLmRlcGVuZGVuY2llcztpZihudWxsIT09ayl7Zz1oLmNoaWxkO2Zvcih2YXIgbD1cbmsuZmlyc3RDb250ZXh0O251bGwhPT1sOyl7aWYobC5jb250ZXh0PT09ZCYmMCE9PShsLm9ic2VydmVkQml0cyZmKSl7MT09PWgudGFnJiYobD16ZygtMSxjJi1jKSxsLnRhZz0yLEFnKGgsbCkpO2gubGFuZXN8PWM7bD1oLmFsdGVybmF0ZTtudWxsIT09bCYmKGwubGFuZXN8PWMpO3NnKGgucmV0dXJuLGMpO2subGFuZXN8PWM7YnJlYWt9bD1sLm5leHR9fWVsc2UgZz0xMD09PWgudGFnP2gudHlwZT09PWIudHlwZT9udWxsOmguY2hpbGQ6aC5jaGlsZDtpZihudWxsIT09ZylnLnJldHVybj1oO2Vsc2UgZm9yKGc9aDtudWxsIT09Zzspe2lmKGc9PT1iKXtnPW51bGw7YnJlYWt9aD1nLnNpYmxpbmc7aWYobnVsbCE9PWgpe2gucmV0dXJuPWcucmV0dXJuO2c9aDticmVha31nPWcucmV0dXJufWg9Z31maShhLGIsZS5jaGlsZHJlbixjKTtiPWIuY2hpbGR9cmV0dXJuIGI7Y2FzZSA5OnJldHVybiBlPWIudHlwZSxmPWIucGVuZGluZ1Byb3BzLGQ9Zi5jaGlsZHJlbix0ZyhiLGMpLGU9dmcoZSxcbmYudW5zdGFibGVfb2JzZXJ2ZWRCaXRzKSxkPWQoZSksYi5mbGFnc3w9MSxmaShhLGIsZCxjKSxiLmNoaWxkO2Nhc2UgMTQ6cmV0dXJuIGU9Yi50eXBlLGY9bGcoZSxiLnBlbmRpbmdQcm9wcyksZj1sZyhlLnR5cGUsZiksaWkoYSxiLGUsZixkLGMpO2Nhc2UgMTU6cmV0dXJuIGtpKGEsYixiLnR5cGUsYi5wZW5kaW5nUHJvcHMsZCxjKTtjYXNlIDE3OnJldHVybiBkPWIudHlwZSxlPWIucGVuZGluZ1Byb3BzLGU9Yi5lbGVtZW50VHlwZT09PWQ/ZTpsZyhkLGUpLG51bGwhPT1hJiYoYS5hbHRlcm5hdGU9bnVsbCxiLmFsdGVybmF0ZT1udWxsLGIuZmxhZ3N8PTIpLGIudGFnPTEsRmYoZCk/KGE9ITAsSmYoYikpOmE9ITEsdGcoYixjKSxNZyhiLGQsZSksT2coYixkLGUsYykscWkobnVsbCxiLGQsITAsYSxjKTtjYXNlIDE5OnJldHVybiBBaShhLGIsYyk7Y2FzZSAyMzpyZXR1cm4gbWkoYSxiLGMpO2Nhc2UgMjQ6cmV0dXJuIG1pKGEsYixjKX10aHJvdyBFcnJvcih5KDE1NixiLnRhZykpO1xufTtmdW5jdGlvbiBpayhhLGIsYyxkKXt0aGlzLnRhZz1hO3RoaXMua2V5PWM7dGhpcy5zaWJsaW5nPXRoaXMuY2hpbGQ9dGhpcy5yZXR1cm49dGhpcy5zdGF0ZU5vZGU9dGhpcy50eXBlPXRoaXMuZWxlbWVudFR5cGU9bnVsbDt0aGlzLmluZGV4PTA7dGhpcy5yZWY9bnVsbDt0aGlzLnBlbmRpbmdQcm9wcz1iO3RoaXMuZGVwZW5kZW5jaWVzPXRoaXMubWVtb2l6ZWRTdGF0ZT10aGlzLnVwZGF0ZVF1ZXVlPXRoaXMubWVtb2l6ZWRQcm9wcz1udWxsO3RoaXMubW9kZT1kO3RoaXMuZmxhZ3M9MDt0aGlzLmxhc3RFZmZlY3Q9dGhpcy5maXJzdEVmZmVjdD10aGlzLm5leHRFZmZlY3Q9bnVsbDt0aGlzLmNoaWxkTGFuZXM9dGhpcy5sYW5lcz0wO3RoaXMuYWx0ZXJuYXRlPW51bGx9ZnVuY3Rpb24gbmgoYSxiLGMsZCl7cmV0dXJuIG5ldyBpayhhLGIsYyxkKX1mdW5jdGlvbiBqaShhKXthPWEucHJvdG90eXBlO3JldHVybiEoIWF8fCFhLmlzUmVhY3RDb21wb25lbnQpfVxuZnVuY3Rpb24gaGsoYSl7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGEpcmV0dXJuIGppKGEpPzE6MDtpZih2b2lkIDAhPT1hJiZudWxsIT09YSl7YT1hLiQkdHlwZW9mO2lmKGE9PT1BYSlyZXR1cm4gMTE7aWYoYT09PURhKXJldHVybiAxNH1yZXR1cm4gMn1cbmZ1bmN0aW9uIFRnKGEsYil7dmFyIGM9YS5hbHRlcm5hdGU7bnVsbD09PWM/KGM9bmgoYS50YWcsYixhLmtleSxhLm1vZGUpLGMuZWxlbWVudFR5cGU9YS5lbGVtZW50VHlwZSxjLnR5cGU9YS50eXBlLGMuc3RhdGVOb2RlPWEuc3RhdGVOb2RlLGMuYWx0ZXJuYXRlPWEsYS5hbHRlcm5hdGU9Yyk6KGMucGVuZGluZ1Byb3BzPWIsYy50eXBlPWEudHlwZSxjLmZsYWdzPTAsYy5uZXh0RWZmZWN0PW51bGwsYy5maXJzdEVmZmVjdD1udWxsLGMubGFzdEVmZmVjdD1udWxsKTtjLmNoaWxkTGFuZXM9YS5jaGlsZExhbmVzO2MubGFuZXM9YS5sYW5lcztjLmNoaWxkPWEuY2hpbGQ7Yy5tZW1vaXplZFByb3BzPWEubWVtb2l6ZWRQcm9wcztjLm1lbW9pemVkU3RhdGU9YS5tZW1vaXplZFN0YXRlO2MudXBkYXRlUXVldWU9YS51cGRhdGVRdWV1ZTtiPWEuZGVwZW5kZW5jaWVzO2MuZGVwZW5kZW5jaWVzPW51bGw9PT1iP251bGw6e2xhbmVzOmIubGFuZXMsZmlyc3RDb250ZXh0OmIuZmlyc3RDb250ZXh0fTtcbmMuc2libGluZz1hLnNpYmxpbmc7Yy5pbmRleD1hLmluZGV4O2MucmVmPWEucmVmO3JldHVybiBjfVxuZnVuY3Rpb24gVmcoYSxiLGMsZCxlLGYpe3ZhciBnPTI7ZD1hO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBhKWppKGEpJiYoZz0xKTtlbHNlIGlmKFwic3RyaW5nXCI9PT10eXBlb2YgYSlnPTU7ZWxzZSBhOnN3aXRjaChhKXtjYXNlIHVhOnJldHVybiBYZyhjLmNoaWxkcmVuLGUsZixiKTtjYXNlIEhhOmc9ODtlfD0xNjticmVhaztjYXNlIHdhOmc9ODtlfD0xO2JyZWFrO2Nhc2UgeGE6cmV0dXJuIGE9bmgoMTIsYyxiLGV8OCksYS5lbGVtZW50VHlwZT14YSxhLnR5cGU9eGEsYS5sYW5lcz1mLGE7Y2FzZSBCYTpyZXR1cm4gYT1uaCgxMyxjLGIsZSksYS50eXBlPUJhLGEuZWxlbWVudFR5cGU9QmEsYS5sYW5lcz1mLGE7Y2FzZSBDYTpyZXR1cm4gYT1uaCgxOSxjLGIsZSksYS5lbGVtZW50VHlwZT1DYSxhLmxhbmVzPWYsYTtjYXNlIElhOnJldHVybiB2aShjLGUsZixiKTtjYXNlIEphOnJldHVybiBhPW5oKDI0LGMsYixlKSxhLmVsZW1lbnRUeXBlPUphLGEubGFuZXM9ZixhO2RlZmF1bHQ6aWYoXCJvYmplY3RcIj09PVxudHlwZW9mIGEmJm51bGwhPT1hKXN3aXRjaChhLiQkdHlwZW9mKXtjYXNlIHlhOmc9MTA7YnJlYWsgYTtjYXNlIHphOmc9OTticmVhayBhO2Nhc2UgQWE6Zz0xMTticmVhayBhO2Nhc2UgRGE6Zz0xNDticmVhayBhO2Nhc2UgRWE6Zz0xNjtkPW51bGw7YnJlYWsgYTtjYXNlIEZhOmc9MjI7YnJlYWsgYX10aHJvdyBFcnJvcih5KDEzMCxudWxsPT1hP2E6dHlwZW9mIGEsXCJcIikpO31iPW5oKGcsYyxiLGUpO2IuZWxlbWVudFR5cGU9YTtiLnR5cGU9ZDtiLmxhbmVzPWY7cmV0dXJuIGJ9ZnVuY3Rpb24gWGcoYSxiLGMsZCl7YT1uaCg3LGEsZCxiKTthLmxhbmVzPWM7cmV0dXJuIGF9ZnVuY3Rpb24gdmkoYSxiLGMsZCl7YT1uaCgyMyxhLGQsYik7YS5lbGVtZW50VHlwZT1JYTthLmxhbmVzPWM7cmV0dXJuIGF9ZnVuY3Rpb24gVWcoYSxiLGMpe2E9bmgoNixhLG51bGwsYik7YS5sYW5lcz1jO3JldHVybiBhfVxuZnVuY3Rpb24gV2coYSxiLGMpe2I9bmgoNCxudWxsIT09YS5jaGlsZHJlbj9hLmNoaWxkcmVuOltdLGEua2V5LGIpO2IubGFuZXM9YztiLnN0YXRlTm9kZT17Y29udGFpbmVySW5mbzphLmNvbnRhaW5lckluZm8scGVuZGluZ0NoaWxkcmVuOm51bGwsaW1wbGVtZW50YXRpb246YS5pbXBsZW1lbnRhdGlvbn07cmV0dXJuIGJ9XG5mdW5jdGlvbiBqayhhLGIsYyl7dGhpcy50YWc9Yjt0aGlzLmNvbnRhaW5lckluZm89YTt0aGlzLmZpbmlzaGVkV29yaz10aGlzLnBpbmdDYWNoZT10aGlzLmN1cnJlbnQ9dGhpcy5wZW5kaW5nQ2hpbGRyZW49bnVsbDt0aGlzLnRpbWVvdXRIYW5kbGU9LTE7dGhpcy5wZW5kaW5nQ29udGV4dD10aGlzLmNvbnRleHQ9bnVsbDt0aGlzLmh5ZHJhdGU9Yzt0aGlzLmNhbGxiYWNrTm9kZT1udWxsO3RoaXMuY2FsbGJhY2tQcmlvcml0eT0wO3RoaXMuZXZlbnRUaW1lcz1aYygwKTt0aGlzLmV4cGlyYXRpb25UaW1lcz1aYygtMSk7dGhpcy5lbnRhbmdsZWRMYW5lcz10aGlzLmZpbmlzaGVkTGFuZXM9dGhpcy5tdXRhYmxlUmVhZExhbmVzPXRoaXMuZXhwaXJlZExhbmVzPXRoaXMucGluZ2VkTGFuZXM9dGhpcy5zdXNwZW5kZWRMYW5lcz10aGlzLnBlbmRpbmdMYW5lcz0wO3RoaXMuZW50YW5nbGVtZW50cz1aYygwKTt0aGlzLm11dGFibGVTb3VyY2VFYWdlckh5ZHJhdGlvbkRhdGE9bnVsbH1cbmZ1bmN0aW9uIGtrKGEsYixjKXt2YXIgZD0zPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1szXT9hcmd1bWVudHNbM106bnVsbDtyZXR1cm57JCR0eXBlb2Y6dGEsa2V5Om51bGw9PWQ/bnVsbDpcIlwiK2QsY2hpbGRyZW46YSxjb250YWluZXJJbmZvOmIsaW1wbGVtZW50YXRpb246Y319XG5mdW5jdGlvbiBsayhhLGIsYyxkKXt2YXIgZT1iLmN1cnJlbnQsZj1IZygpLGc9SWcoZSk7YTppZihjKXtjPWMuX3JlYWN0SW50ZXJuYWxzO2I6e2lmKFpiKGMpIT09Y3x8MSE9PWMudGFnKXRocm93IEVycm9yKHkoMTcwKSk7dmFyIGg9Yztkb3tzd2l0Y2goaC50YWcpe2Nhc2UgMzpoPWguc3RhdGVOb2RlLmNvbnRleHQ7YnJlYWsgYjtjYXNlIDE6aWYoRmYoaC50eXBlKSl7aD1oLnN0YXRlTm9kZS5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZE1lcmdlZENoaWxkQ29udGV4dDticmVhayBifX1oPWgucmV0dXJufXdoaWxlKG51bGwhPT1oKTt0aHJvdyBFcnJvcih5KDE3MSkpO31pZigxPT09Yy50YWcpe3ZhciBrPWMudHlwZTtpZihGZihrKSl7Yz1JZihjLGssaCk7YnJlYWsgYX19Yz1ofWVsc2UgYz1DZjtudWxsPT09Yi5jb250ZXh0P2IuY29udGV4dD1jOmIucGVuZGluZ0NvbnRleHQ9YztiPXpnKGYsZyk7Yi5wYXlsb2FkPXtlbGVtZW50OmF9O2Q9dm9pZCAwPT09ZD9udWxsOmQ7bnVsbCE9PVxuZCYmKGIuY2FsbGJhY2s9ZCk7QWcoZSxiKTtKZyhlLGcsZik7cmV0dXJuIGd9ZnVuY3Rpb24gbWsoYSl7YT1hLmN1cnJlbnQ7aWYoIWEuY2hpbGQpcmV0dXJuIG51bGw7c3dpdGNoKGEuY2hpbGQudGFnKXtjYXNlIDU6cmV0dXJuIGEuY2hpbGQuc3RhdGVOb2RlO2RlZmF1bHQ6cmV0dXJuIGEuY2hpbGQuc3RhdGVOb2RlfX1mdW5jdGlvbiBuayhhLGIpe2E9YS5tZW1vaXplZFN0YXRlO2lmKG51bGwhPT1hJiZudWxsIT09YS5kZWh5ZHJhdGVkKXt2YXIgYz1hLnJldHJ5TGFuZTthLnJldHJ5TGFuZT0wIT09YyYmYzxiP2M6Yn19ZnVuY3Rpb24gb2soYSxiKXtuayhhLGIpOyhhPWEuYWx0ZXJuYXRlKSYmbmsoYSxiKX1mdW5jdGlvbiBwaygpe3JldHVybiBudWxsfVxuZnVuY3Rpb24gcWsoYSxiLGMpe3ZhciBkPW51bGwhPWMmJm51bGwhPWMuaHlkcmF0aW9uT3B0aW9ucyYmYy5oeWRyYXRpb25PcHRpb25zLm11dGFibGVTb3VyY2VzfHxudWxsO2M9bmV3IGprKGEsYixudWxsIT1jJiYhMD09PWMuaHlkcmF0ZSk7Yj1uaCgzLG51bGwsbnVsbCwyPT09Yj83OjE9PT1iPzM6MCk7Yy5jdXJyZW50PWI7Yi5zdGF0ZU5vZGU9Yzt4ZyhiKTthW2ZmXT1jLmN1cnJlbnQ7Y2YoOD09PWEubm9kZVR5cGU/YS5wYXJlbnROb2RlOmEpO2lmKGQpZm9yKGE9MDthPGQubGVuZ3RoO2ErKyl7Yj1kW2FdO3ZhciBlPWIuX2dldFZlcnNpb247ZT1lKGIuX3NvdXJjZSk7bnVsbD09Yy5tdXRhYmxlU291cmNlRWFnZXJIeWRyYXRpb25EYXRhP2MubXV0YWJsZVNvdXJjZUVhZ2VySHlkcmF0aW9uRGF0YT1bYixlXTpjLm11dGFibGVTb3VyY2VFYWdlckh5ZHJhdGlvbkRhdGEucHVzaChiLGUpfXRoaXMuX2ludGVybmFsUm9vdD1jfVxucWsucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbihhKXtsayhhLHRoaXMuX2ludGVybmFsUm9vdCxudWxsLG51bGwpfTtxay5wcm90b3R5cGUudW5tb3VudD1mdW5jdGlvbigpe3ZhciBhPXRoaXMuX2ludGVybmFsUm9vdCxiPWEuY29udGFpbmVySW5mbztsayhudWxsLGEsbnVsbCxmdW5jdGlvbigpe2JbZmZdPW51bGx9KX07ZnVuY3Rpb24gcmsoYSl7cmV0dXJuISghYXx8MSE9PWEubm9kZVR5cGUmJjkhPT1hLm5vZGVUeXBlJiYxMSE9PWEubm9kZVR5cGUmJig4IT09YS5ub2RlVHlwZXx8XCIgcmVhY3QtbW91bnQtcG9pbnQtdW5zdGFibGUgXCIhPT1hLm5vZGVWYWx1ZSkpfVxuZnVuY3Rpb24gc2soYSxiKXtifHwoYj1hPzk9PT1hLm5vZGVUeXBlP2EuZG9jdW1lbnRFbGVtZW50OmEuZmlyc3RDaGlsZDpudWxsLGI9ISghYnx8MSE9PWIubm9kZVR5cGV8fCFiLmhhc0F0dHJpYnV0ZShcImRhdGEtcmVhY3Ryb290XCIpKSk7aWYoIWIpZm9yKHZhciBjO2M9YS5sYXN0Q2hpbGQ7KWEucmVtb3ZlQ2hpbGQoYyk7cmV0dXJuIG5ldyBxayhhLDAsYj97aHlkcmF0ZTohMH06dm9pZCAwKX1cbmZ1bmN0aW9uIHRrKGEsYixjLGQsZSl7dmFyIGY9Yy5fcmVhY3RSb290Q29udGFpbmVyO2lmKGYpe3ZhciBnPWYuX2ludGVybmFsUm9vdDtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgZSl7dmFyIGg9ZTtlPWZ1bmN0aW9uKCl7dmFyIGE9bWsoZyk7aC5jYWxsKGEpfX1sayhiLGcsYSxlKX1lbHNle2Y9Yy5fcmVhY3RSb290Q29udGFpbmVyPXNrKGMsZCk7Zz1mLl9pbnRlcm5hbFJvb3Q7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGUpe3ZhciBrPWU7ZT1mdW5jdGlvbigpe3ZhciBhPW1rKGcpO2suY2FsbChhKX19WGooZnVuY3Rpb24oKXtsayhiLGcsYSxlKX0pfXJldHVybiBtayhnKX1lYz1mdW5jdGlvbihhKXtpZigxMz09PWEudGFnKXt2YXIgYj1IZygpO0pnKGEsNCxiKTtvayhhLDQpfX07ZmM9ZnVuY3Rpb24oYSl7aWYoMTM9PT1hLnRhZyl7dmFyIGI9SGcoKTtKZyhhLDY3MTA4ODY0LGIpO29rKGEsNjcxMDg4NjQpfX07XG5nYz1mdW5jdGlvbihhKXtpZigxMz09PWEudGFnKXt2YXIgYj1IZygpLGM9SWcoYSk7SmcoYSxjLGIpO29rKGEsYyl9fTtoYz1mdW5jdGlvbihhLGIpe3JldHVybiBiKCl9O1xueWI9ZnVuY3Rpb24oYSxiLGMpe3N3aXRjaChiKXtjYXNlIFwiaW5wdXRcIjphYihhLGMpO2I9Yy5uYW1lO2lmKFwicmFkaW9cIj09PWMudHlwZSYmbnVsbCE9Yil7Zm9yKGM9YTtjLnBhcmVudE5vZGU7KWM9Yy5wYXJlbnROb2RlO2M9Yy5xdWVyeVNlbGVjdG9yQWxsKFwiaW5wdXRbbmFtZT1cIitKU09OLnN0cmluZ2lmeShcIlwiK2IpKyddW3R5cGU9XCJyYWRpb1wiXScpO2ZvcihiPTA7YjxjLmxlbmd0aDtiKyspe3ZhciBkPWNbYl07aWYoZCE9PWEmJmQuZm9ybT09PWEuZm9ybSl7dmFyIGU9RGIoZCk7aWYoIWUpdGhyb3cgRXJyb3IoeSg5MCkpO1dhKGQpO2FiKGQsZSl9fX1icmVhaztjYXNlIFwidGV4dGFyZWFcIjppYihhLGMpO2JyZWFrO2Nhc2UgXCJzZWxlY3RcIjpiPWMudmFsdWUsbnVsbCE9YiYmZmIoYSwhIWMubXVsdGlwbGUsYiwhMSl9fTtHYj1XajtcbkhiPWZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGY9WDtYfD00O3RyeXtyZXR1cm4gZ2coOTgsYS5iaW5kKG51bGwsYixjLGQsZSkpfWZpbmFsbHl7WD1mLDA9PT1YJiYod2ooKSxpZygpKX19O0liPWZ1bmN0aW9uKCl7MD09PShYJjQ5KSYmKFZqKCksT2ooKSl9O0piPWZ1bmN0aW9uKGEsYil7dmFyIGM9WDtYfD0yO3RyeXtyZXR1cm4gYShiKX1maW5hbGx5e1g9YywwPT09WCYmKHdqKCksaWcoKSl9fTtmdW5jdGlvbiB1ayhhLGIpe3ZhciBjPTI8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTpudWxsO2lmKCFyayhiKSl0aHJvdyBFcnJvcih5KDIwMCkpO3JldHVybiBrayhhLGIsbnVsbCxjKX12YXIgdms9e0V2ZW50czpbQ2IsdWUsRGIsRWIsRmIsT2ose2N1cnJlbnQ6ITF9XX0sd2s9e2ZpbmRGaWJlckJ5SG9zdEluc3RhbmNlOndjLGJ1bmRsZVR5cGU6MCx2ZXJzaW9uOlwiMTcuMC4yXCIscmVuZGVyZXJQYWNrYWdlTmFtZTpcInJlYWN0LWRvbVwifTtcbnZhciB4az17YnVuZGxlVHlwZTp3ay5idW5kbGVUeXBlLHZlcnNpb246d2sudmVyc2lvbixyZW5kZXJlclBhY2thZ2VOYW1lOndrLnJlbmRlcmVyUGFja2FnZU5hbWUscmVuZGVyZXJDb25maWc6d2sucmVuZGVyZXJDb25maWcsb3ZlcnJpZGVIb29rU3RhdGU6bnVsbCxvdmVycmlkZUhvb2tTdGF0ZURlbGV0ZVBhdGg6bnVsbCxvdmVycmlkZUhvb2tTdGF0ZVJlbmFtZVBhdGg6bnVsbCxvdmVycmlkZVByb3BzOm51bGwsb3ZlcnJpZGVQcm9wc0RlbGV0ZVBhdGg6bnVsbCxvdmVycmlkZVByb3BzUmVuYW1lUGF0aDpudWxsLHNldFN1c3BlbnNlSGFuZGxlcjpudWxsLHNjaGVkdWxlVXBkYXRlOm51bGwsY3VycmVudERpc3BhdGNoZXJSZWY6cmEuUmVhY3RDdXJyZW50RGlzcGF0Y2hlcixmaW5kSG9zdEluc3RhbmNlQnlGaWJlcjpmdW5jdGlvbihhKXthPWNjKGEpO3JldHVybiBudWxsPT09YT9udWxsOmEuc3RhdGVOb2RlfSxmaW5kRmliZXJCeUhvc3RJbnN0YW5jZTp3ay5maW5kRmliZXJCeUhvc3RJbnN0YW5jZXx8XG5wayxmaW5kSG9zdEluc3RhbmNlc0ZvclJlZnJlc2g6bnVsbCxzY2hlZHVsZVJlZnJlc2g6bnVsbCxzY2hlZHVsZVJvb3Q6bnVsbCxzZXRSZWZyZXNoSGFuZGxlcjpudWxsLGdldEN1cnJlbnRGaWJlcjpudWxsfTtpZihcInVuZGVmaW5lZFwiIT09dHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyl7dmFyIHlrPV9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXztpZigheWsuaXNEaXNhYmxlZCYmeWsuc3VwcG9ydHNGaWJlcil0cnl7TGY9eWsuaW5qZWN0KHhrKSxNZj15a31jYXRjaChhKXt9fWV4cG9ydHMuX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQ9dms7ZXhwb3J0cy5jcmVhdGVQb3J0YWw9dWs7XG5leHBvcnRzLmZpbmRET01Ob2RlPWZ1bmN0aW9uKGEpe2lmKG51bGw9PWEpcmV0dXJuIG51bGw7aWYoMT09PWEubm9kZVR5cGUpcmV0dXJuIGE7dmFyIGI9YS5fcmVhY3RJbnRlcm5hbHM7aWYodm9pZCAwPT09Yil7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGEucmVuZGVyKXRocm93IEVycm9yKHkoMTg4KSk7dGhyb3cgRXJyb3IoeSgyNjgsT2JqZWN0LmtleXMoYSkpKTt9YT1jYyhiKTthPW51bGw9PT1hP251bGw6YS5zdGF0ZU5vZGU7cmV0dXJuIGF9O2V4cG9ydHMuZmx1c2hTeW5jPWZ1bmN0aW9uKGEsYil7dmFyIGM9WDtpZigwIT09KGMmNDgpKXJldHVybiBhKGIpO1h8PTE7dHJ5e2lmKGEpcmV0dXJuIGdnKDk5LGEuYmluZChudWxsLGIpKX1maW5hbGx5e1g9YyxpZygpfX07ZXhwb3J0cy5oeWRyYXRlPWZ1bmN0aW9uKGEsYixjKXtpZighcmsoYikpdGhyb3cgRXJyb3IoeSgyMDApKTtyZXR1cm4gdGsobnVsbCxhLGIsITAsYyl9O1xuZXhwb3J0cy5yZW5kZXI9ZnVuY3Rpb24oYSxiLGMpe2lmKCFyayhiKSl0aHJvdyBFcnJvcih5KDIwMCkpO3JldHVybiB0ayhudWxsLGEsYiwhMSxjKX07ZXhwb3J0cy51bm1vdW50Q29tcG9uZW50QXROb2RlPWZ1bmN0aW9uKGEpe2lmKCFyayhhKSl0aHJvdyBFcnJvcih5KDQwKSk7cmV0dXJuIGEuX3JlYWN0Um9vdENvbnRhaW5lcj8oWGooZnVuY3Rpb24oKXt0ayhudWxsLG51bGwsYSwhMSxmdW5jdGlvbigpe2EuX3JlYWN0Um9vdENvbnRhaW5lcj1udWxsO2FbZmZdPW51bGx9KX0pLCEwKTohMX07ZXhwb3J0cy51bnN0YWJsZV9iYXRjaGVkVXBkYXRlcz1XajtleHBvcnRzLnVuc3RhYmxlX2NyZWF0ZVBvcnRhbD1mdW5jdGlvbihhLGIpe3JldHVybiB1ayhhLGIsMjxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOm51bGwpfTtcbmV4cG9ydHMudW5zdGFibGVfcmVuZGVyU3VidHJlZUludG9Db250YWluZXI9ZnVuY3Rpb24oYSxiLGMsZCl7aWYoIXJrKGMpKXRocm93IEVycm9yKHkoMjAwKSk7aWYobnVsbD09YXx8dm9pZCAwPT09YS5fcmVhY3RJbnRlcm5hbHMpdGhyb3cgRXJyb3IoeSgzOCkpO3JldHVybiB0ayhhLGIsYywhMSxkKX07ZXhwb3J0cy52ZXJzaW9uPVwiMTcuMC4yXCI7XG4iLCIndXNlIHN0cmljdCc7XG5cbmZ1bmN0aW9uIGNoZWNrRENFKCkge1xuICAvKiBnbG9iYWwgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fICovXG4gIGlmIChcbiAgICB0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fID09PSAndW5kZWZpbmVkJyB8fFxuICAgIHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18uY2hlY2tEQ0UgIT09ICdmdW5jdGlvbidcbiAgKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgLy8gVGhpcyBicmFuY2ggaXMgdW5yZWFjaGFibGUgYmVjYXVzZSB0aGlzIGZ1bmN0aW9uIGlzIG9ubHkgY2FsbGVkXG4gICAgLy8gaW4gcHJvZHVjdGlvbiwgYnV0IHRoZSBjb25kaXRpb24gaXMgdHJ1ZSBvbmx5IGluIGRldmVsb3BtZW50LlxuICAgIC8vIFRoZXJlZm9yZSBpZiB0aGUgYnJhbmNoIGlzIHN0aWxsIGhlcmUsIGRlYWQgY29kZSBlbGltaW5hdGlvbiB3YXNuJ3RcbiAgICAvLyBwcm9wZXJseSBhcHBsaWVkLlxuICAgIC8vIERvbid0IGNoYW5nZSB0aGUgbWVzc2FnZS4gUmVhY3QgRGV2VG9vbHMgcmVsaWVzIG9uIGl0LiBBbHNvIG1ha2Ugc3VyZVxuICAgIC8vIHRoaXMgbWVzc2FnZSBkb2Vzbid0IG9jY3VyIGVsc2V3aGVyZSBpbiB0aGlzIGZ1bmN0aW9uLCBvciBpdCB3aWxsIGNhdXNlXG4gICAgLy8gYSBmYWxzZSBwb3NpdGl2ZS5cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ15fXicpO1xuICB9XG4gIHRyeSB7XG4gICAgLy8gVmVyaWZ5IHRoYXQgdGhlIGNvZGUgYWJvdmUgaGFzIGJlZW4gZGVhZCBjb2RlIGVsaW1pbmF0ZWQgKERDRSdkKS5cbiAgICBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18uY2hlY2tEQ0UoY2hlY2tEQ0UpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICAvLyBEZXZUb29scyBzaG91bGRuJ3QgY3Jhc2ggUmVhY3QsIG5vIG1hdHRlciB3aGF0LlxuICAgIC8vIFdlIHNob3VsZCBzdGlsbCByZXBvcnQgaW4gY2FzZSB3ZSBicmVhayB0aGlzIGNvZGUuXG4gICAgY29uc29sZS5lcnJvcihlcnIpO1xuICB9XG59XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIC8vIERDRSBjaGVjayBzaG91bGQgaGFwcGVuIGJlZm9yZSBSZWFjdERPTSBidW5kbGUgZXhlY3V0ZXMgc28gdGhhdFxuICAvLyBEZXZUb29scyBjYW4gcmVwb3J0IGJhZCBtaW5pZmljYXRpb24gZHVyaW5nIGluamVjdGlvbi5cbiAgY2hlY2tEQ0UoKTtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1kb20ucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtZG9tLmRldmVsb3BtZW50LmpzJyk7XG59XG4iLCIvKiogQGxpY2Vuc2UgUmVhY3QgdjAuMjAuMlxuICogc2NoZWR1bGVyLnByb2R1Y3Rpb24ubWluLmpzXG4gKlxuICogQ29weXJpZ2h0IChjKSBGYWNlYm9vaywgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cbid1c2Ugc3RyaWN0Jzt2YXIgZixnLGgsaztpZihcIm9iamVjdFwiPT09dHlwZW9mIHBlcmZvcm1hbmNlJiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgcGVyZm9ybWFuY2Uubm93KXt2YXIgbD1wZXJmb3JtYW5jZTtleHBvcnRzLnVuc3RhYmxlX25vdz1mdW5jdGlvbigpe3JldHVybiBsLm5vdygpfX1lbHNle3ZhciBwPURhdGUscT1wLm5vdygpO2V4cG9ydHMudW5zdGFibGVfbm93PWZ1bmN0aW9uKCl7cmV0dXJuIHAubm93KCktcX19XG5pZihcInVuZGVmaW5lZFwiPT09dHlwZW9mIHdpbmRvd3x8XCJmdW5jdGlvblwiIT09dHlwZW9mIE1lc3NhZ2VDaGFubmVsKXt2YXIgdD1udWxsLHU9bnVsbCx3PWZ1bmN0aW9uKCl7aWYobnVsbCE9PXQpdHJ5e3ZhciBhPWV4cG9ydHMudW5zdGFibGVfbm93KCk7dCghMCxhKTt0PW51bGx9Y2F0Y2goYil7dGhyb3cgc2V0VGltZW91dCh3LDApLGI7fX07Zj1mdW5jdGlvbihhKXtudWxsIT09dD9zZXRUaW1lb3V0KGYsMCxhKToodD1hLHNldFRpbWVvdXQodywwKSl9O2c9ZnVuY3Rpb24oYSxiKXt1PXNldFRpbWVvdXQoYSxiKX07aD1mdW5jdGlvbigpe2NsZWFyVGltZW91dCh1KX07ZXhwb3J0cy51bnN0YWJsZV9zaG91bGRZaWVsZD1mdW5jdGlvbigpe3JldHVybiExfTtrPWV4cG9ydHMudW5zdGFibGVfZm9yY2VGcmFtZVJhdGU9ZnVuY3Rpb24oKXt9fWVsc2V7dmFyIHg9d2luZG93LnNldFRpbWVvdXQseT13aW5kb3cuY2xlYXJUaW1lb3V0O2lmKFwidW5kZWZpbmVkXCIhPT10eXBlb2YgY29uc29sZSl7dmFyIHo9XG53aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWU7XCJmdW5jdGlvblwiIT09dHlwZW9mIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUmJmNvbnNvbGUuZXJyb3IoXCJUaGlzIGJyb3dzZXIgZG9lc24ndCBzdXBwb3J0IHJlcXVlc3RBbmltYXRpb25GcmFtZS4gTWFrZSBzdXJlIHRoYXQgeW91IGxvYWQgYSBwb2x5ZmlsbCBpbiBvbGRlciBicm93c2Vycy4gaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3JlYWN0LXBvbHlmaWxsc1wiKTtcImZ1bmN0aW9uXCIhPT10eXBlb2YgeiYmY29uc29sZS5lcnJvcihcIlRoaXMgYnJvd3NlciBkb2Vzbid0IHN1cHBvcnQgY2FuY2VsQW5pbWF0aW9uRnJhbWUuIE1ha2Ugc3VyZSB0aGF0IHlvdSBsb2FkIGEgcG9seWZpbGwgaW4gb2xkZXIgYnJvd3NlcnMuIGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9yZWFjdC1wb2x5ZmlsbHNcIil9dmFyIEE9ITEsQj1udWxsLEM9LTEsRD01LEU9MDtleHBvcnRzLnVuc3RhYmxlX3Nob3VsZFlpZWxkPWZ1bmN0aW9uKCl7cmV0dXJuIGV4cG9ydHMudW5zdGFibGVfbm93KCk+PVxuRX07az1mdW5jdGlvbigpe307ZXhwb3J0cy51bnN0YWJsZV9mb3JjZUZyYW1lUmF0ZT1mdW5jdGlvbihhKXswPmF8fDEyNTxhP2NvbnNvbGUuZXJyb3IoXCJmb3JjZUZyYW1lUmF0ZSB0YWtlcyBhIHBvc2l0aXZlIGludCBiZXR3ZWVuIDAgYW5kIDEyNSwgZm9yY2luZyBmcmFtZSByYXRlcyBoaWdoZXIgdGhhbiAxMjUgZnBzIGlzIG5vdCBzdXBwb3J0ZWRcIik6RD0wPGE/TWF0aC5mbG9vcigxRTMvYSk6NX07dmFyIEY9bmV3IE1lc3NhZ2VDaGFubmVsLEc9Ri5wb3J0MjtGLnBvcnQxLm9ubWVzc2FnZT1mdW5jdGlvbigpe2lmKG51bGwhPT1CKXt2YXIgYT1leHBvcnRzLnVuc3RhYmxlX25vdygpO0U9YStEO3RyeXtCKCEwLGEpP0cucG9zdE1lc3NhZ2UobnVsbCk6KEE9ITEsQj1udWxsKX1jYXRjaChiKXt0aHJvdyBHLnBvc3RNZXNzYWdlKG51bGwpLGI7fX1lbHNlIEE9ITF9O2Y9ZnVuY3Rpb24oYSl7Qj1hO0F8fChBPSEwLEcucG9zdE1lc3NhZ2UobnVsbCkpfTtnPWZ1bmN0aW9uKGEsYil7Qz1cbngoZnVuY3Rpb24oKXthKGV4cG9ydHMudW5zdGFibGVfbm93KCkpfSxiKX07aD1mdW5jdGlvbigpe3koQyk7Qz0tMX19ZnVuY3Rpb24gSChhLGIpe3ZhciBjPWEubGVuZ3RoO2EucHVzaChiKTthOmZvcig7Oyl7dmFyIGQ9Yy0xPj4+MSxlPWFbZF07aWYodm9pZCAwIT09ZSYmMDxJKGUsYikpYVtkXT1iLGFbY109ZSxjPWQ7ZWxzZSBicmVhayBhfX1mdW5jdGlvbiBKKGEpe2E9YVswXTtyZXR1cm4gdm9pZCAwPT09YT9udWxsOmF9XG5mdW5jdGlvbiBLKGEpe3ZhciBiPWFbMF07aWYodm9pZCAwIT09Yil7dmFyIGM9YS5wb3AoKTtpZihjIT09Yil7YVswXT1jO2E6Zm9yKHZhciBkPTAsZT1hLmxlbmd0aDtkPGU7KXt2YXIgbT0yKihkKzEpLTEsbj1hW21dLHY9bSsxLHI9YVt2XTtpZih2b2lkIDAhPT1uJiYwPkkobixjKSl2b2lkIDAhPT1yJiYwPkkocixuKT8oYVtkXT1yLGFbdl09YyxkPXYpOihhW2RdPW4sYVttXT1jLGQ9bSk7ZWxzZSBpZih2b2lkIDAhPT1yJiYwPkkocixjKSlhW2RdPXIsYVt2XT1jLGQ9djtlbHNlIGJyZWFrIGF9fXJldHVybiBifXJldHVybiBudWxsfWZ1bmN0aW9uIEkoYSxiKXt2YXIgYz1hLnNvcnRJbmRleC1iLnNvcnRJbmRleDtyZXR1cm4gMCE9PWM/YzphLmlkLWIuaWR9dmFyIEw9W10sTT1bXSxOPTEsTz1udWxsLFA9MyxRPSExLFI9ITEsUz0hMTtcbmZ1bmN0aW9uIFQoYSl7Zm9yKHZhciBiPUooTSk7bnVsbCE9PWI7KXtpZihudWxsPT09Yi5jYWxsYmFjaylLKE0pO2Vsc2UgaWYoYi5zdGFydFRpbWU8PWEpSyhNKSxiLnNvcnRJbmRleD1iLmV4cGlyYXRpb25UaW1lLEgoTCxiKTtlbHNlIGJyZWFrO2I9SihNKX19ZnVuY3Rpb24gVShhKXtTPSExO1QoYSk7aWYoIVIpaWYobnVsbCE9PUooTCkpUj0hMCxmKFYpO2Vsc2V7dmFyIGI9SihNKTtudWxsIT09YiYmZyhVLGIuc3RhcnRUaW1lLWEpfX1cbmZ1bmN0aW9uIFYoYSxiKXtSPSExO1MmJihTPSExLGgoKSk7UT0hMDt2YXIgYz1QO3RyeXtUKGIpO2ZvcihPPUooTCk7bnVsbCE9PU8mJighKE8uZXhwaXJhdGlvblRpbWU+Yil8fGEmJiFleHBvcnRzLnVuc3RhYmxlX3Nob3VsZFlpZWxkKCkpOyl7dmFyIGQ9Ty5jYWxsYmFjaztpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgZCl7Ty5jYWxsYmFjaz1udWxsO1A9Ty5wcmlvcml0eUxldmVsO3ZhciBlPWQoTy5leHBpcmF0aW9uVGltZTw9Yik7Yj1leHBvcnRzLnVuc3RhYmxlX25vdygpO1wiZnVuY3Rpb25cIj09PXR5cGVvZiBlP08uY2FsbGJhY2s9ZTpPPT09SihMKSYmSyhMKTtUKGIpfWVsc2UgSyhMKTtPPUooTCl9aWYobnVsbCE9PU8pdmFyIG09ITA7ZWxzZXt2YXIgbj1KKE0pO251bGwhPT1uJiZnKFUsbi5zdGFydFRpbWUtYik7bT0hMX1yZXR1cm4gbX1maW5hbGx5e089bnVsbCxQPWMsUT0hMX19dmFyIFc9aztleHBvcnRzLnVuc3RhYmxlX0lkbGVQcmlvcml0eT01O1xuZXhwb3J0cy51bnN0YWJsZV9JbW1lZGlhdGVQcmlvcml0eT0xO2V4cG9ydHMudW5zdGFibGVfTG93UHJpb3JpdHk9NDtleHBvcnRzLnVuc3RhYmxlX05vcm1hbFByaW9yaXR5PTM7ZXhwb3J0cy51bnN0YWJsZV9Qcm9maWxpbmc9bnVsbDtleHBvcnRzLnVuc3RhYmxlX1VzZXJCbG9ja2luZ1ByaW9yaXR5PTI7ZXhwb3J0cy51bnN0YWJsZV9jYW5jZWxDYWxsYmFjaz1mdW5jdGlvbihhKXthLmNhbGxiYWNrPW51bGx9O2V4cG9ydHMudW5zdGFibGVfY29udGludWVFeGVjdXRpb249ZnVuY3Rpb24oKXtSfHxRfHwoUj0hMCxmKFYpKX07ZXhwb3J0cy51bnN0YWJsZV9nZXRDdXJyZW50UHJpb3JpdHlMZXZlbD1mdW5jdGlvbigpe3JldHVybiBQfTtleHBvcnRzLnVuc3RhYmxlX2dldEZpcnN0Q2FsbGJhY2tOb2RlPWZ1bmN0aW9uKCl7cmV0dXJuIEooTCl9O1xuZXhwb3J0cy51bnN0YWJsZV9uZXh0PWZ1bmN0aW9uKGEpe3N3aXRjaChQKXtjYXNlIDE6Y2FzZSAyOmNhc2UgMzp2YXIgYj0zO2JyZWFrO2RlZmF1bHQ6Yj1QfXZhciBjPVA7UD1iO3RyeXtyZXR1cm4gYSgpfWZpbmFsbHl7UD1jfX07ZXhwb3J0cy51bnN0YWJsZV9wYXVzZUV4ZWN1dGlvbj1mdW5jdGlvbigpe307ZXhwb3J0cy51bnN0YWJsZV9yZXF1ZXN0UGFpbnQ9VztleHBvcnRzLnVuc3RhYmxlX3J1bldpdGhQcmlvcml0eT1mdW5jdGlvbihhLGIpe3N3aXRjaChhKXtjYXNlIDE6Y2FzZSAyOmNhc2UgMzpjYXNlIDQ6Y2FzZSA1OmJyZWFrO2RlZmF1bHQ6YT0zfXZhciBjPVA7UD1hO3RyeXtyZXR1cm4gYigpfWZpbmFsbHl7UD1jfX07XG5leHBvcnRzLnVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2s9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWV4cG9ydHMudW5zdGFibGVfbm93KCk7XCJvYmplY3RcIj09PXR5cGVvZiBjJiZudWxsIT09Yz8oYz1jLmRlbGF5LGM9XCJudW1iZXJcIj09PXR5cGVvZiBjJiYwPGM/ZCtjOmQpOmM9ZDtzd2l0Y2goYSl7Y2FzZSAxOnZhciBlPS0xO2JyZWFrO2Nhc2UgMjplPTI1MDticmVhaztjYXNlIDU6ZT0xMDczNzQxODIzO2JyZWFrO2Nhc2UgNDplPTFFNDticmVhaztkZWZhdWx0OmU9NUUzfWU9YytlO2E9e2lkOk4rKyxjYWxsYmFjazpiLHByaW9yaXR5TGV2ZWw6YSxzdGFydFRpbWU6YyxleHBpcmF0aW9uVGltZTplLHNvcnRJbmRleDotMX07Yz5kPyhhLnNvcnRJbmRleD1jLEgoTSxhKSxudWxsPT09SihMKSYmYT09PUooTSkmJihTP2goKTpTPSEwLGcoVSxjLWQpKSk6KGEuc29ydEluZGV4PWUsSChMLGEpLFJ8fFF8fChSPSEwLGYoVikpKTtyZXR1cm4gYX07XG5leHBvcnRzLnVuc3RhYmxlX3dyYXBDYWxsYmFjaz1mdW5jdGlvbihhKXt2YXIgYj1QO3JldHVybiBmdW5jdGlvbigpe3ZhciBjPVA7UD1iO3RyeXtyZXR1cm4gYS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZmluYWxseXtQPWN9fX07XG4iLCIndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvc2NoZWR1bGVyLnByb2R1Y3Rpb24ubWluLmpzJyk7XG59IGVsc2Uge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3NjaGVkdWxlci5kZXZlbG9wbWVudC5qcycpO1xufVxuIiwiLyoqIEBsaWNlbnNlIFJlYWN0IHYxNy4wLjJcbiAqIHJlYWN0LnByb2R1Y3Rpb24ubWluLmpzXG4gKlxuICogQ29weXJpZ2h0IChjKSBGYWNlYm9vaywgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cbid1c2Ugc3RyaWN0Jzt2YXIgbD1yZXF1aXJlKFwib2JqZWN0LWFzc2lnblwiKSxuPTYwMTAzLHA9NjAxMDY7ZXhwb3J0cy5GcmFnbWVudD02MDEwNztleHBvcnRzLlN0cmljdE1vZGU9NjAxMDg7ZXhwb3J0cy5Qcm9maWxlcj02MDExNDt2YXIgcT02MDEwOSxyPTYwMTEwLHQ9NjAxMTI7ZXhwb3J0cy5TdXNwZW5zZT02MDExMzt2YXIgdT02MDExNSx2PTYwMTE2O1xuaWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIFN5bWJvbCYmU3ltYm9sLmZvcil7dmFyIHc9U3ltYm9sLmZvcjtuPXcoXCJyZWFjdC5lbGVtZW50XCIpO3A9dyhcInJlYWN0LnBvcnRhbFwiKTtleHBvcnRzLkZyYWdtZW50PXcoXCJyZWFjdC5mcmFnbWVudFwiKTtleHBvcnRzLlN0cmljdE1vZGU9dyhcInJlYWN0LnN0cmljdF9tb2RlXCIpO2V4cG9ydHMuUHJvZmlsZXI9dyhcInJlYWN0LnByb2ZpbGVyXCIpO3E9dyhcInJlYWN0LnByb3ZpZGVyXCIpO3I9dyhcInJlYWN0LmNvbnRleHRcIik7dD13KFwicmVhY3QuZm9yd2FyZF9yZWZcIik7ZXhwb3J0cy5TdXNwZW5zZT13KFwicmVhY3Quc3VzcGVuc2VcIik7dT13KFwicmVhY3QubWVtb1wiKTt2PXcoXCJyZWFjdC5sYXp5XCIpfXZhciB4PVwiZnVuY3Rpb25cIj09PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5pdGVyYXRvcjtcbmZ1bmN0aW9uIHkoYSl7aWYobnVsbD09PWF8fFwib2JqZWN0XCIhPT10eXBlb2YgYSlyZXR1cm4gbnVsbDthPXgmJmFbeF18fGFbXCJAQGl0ZXJhdG9yXCJdO3JldHVyblwiZnVuY3Rpb25cIj09PXR5cGVvZiBhP2E6bnVsbH1mdW5jdGlvbiB6KGEpe2Zvcih2YXIgYj1cImh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9lcnJvci1kZWNvZGVyLmh0bWw/aW52YXJpYW50PVwiK2EsYz0xO2M8YXJndW1lbnRzLmxlbmd0aDtjKyspYis9XCImYXJnc1tdPVwiK2VuY29kZVVSSUNvbXBvbmVudChhcmd1bWVudHNbY10pO3JldHVyblwiTWluaWZpZWQgUmVhY3QgZXJyb3IgI1wiK2ErXCI7IHZpc2l0IFwiK2IrXCIgZm9yIHRoZSBmdWxsIG1lc3NhZ2Ugb3IgdXNlIHRoZSBub24tbWluaWZpZWQgZGV2IGVudmlyb25tZW50IGZvciBmdWxsIGVycm9ycyBhbmQgYWRkaXRpb25hbCBoZWxwZnVsIHdhcm5pbmdzLlwifVxudmFyIEE9e2lzTW91bnRlZDpmdW5jdGlvbigpe3JldHVybiExfSxlbnF1ZXVlRm9yY2VVcGRhdGU6ZnVuY3Rpb24oKXt9LGVucXVldWVSZXBsYWNlU3RhdGU6ZnVuY3Rpb24oKXt9LGVucXVldWVTZXRTdGF0ZTpmdW5jdGlvbigpe319LEI9e307ZnVuY3Rpb24gQyhhLGIsYyl7dGhpcy5wcm9wcz1hO3RoaXMuY29udGV4dD1iO3RoaXMucmVmcz1CO3RoaXMudXBkYXRlcj1jfHxBfUMucHJvdG90eXBlLmlzUmVhY3RDb21wb25lbnQ9e307Qy5wcm90b3R5cGUuc2V0U3RhdGU9ZnVuY3Rpb24oYSxiKXtpZihcIm9iamVjdFwiIT09dHlwZW9mIGEmJlwiZnVuY3Rpb25cIiE9PXR5cGVvZiBhJiZudWxsIT1hKXRocm93IEVycm9yKHooODUpKTt0aGlzLnVwZGF0ZXIuZW5xdWV1ZVNldFN0YXRlKHRoaXMsYSxiLFwic2V0U3RhdGVcIil9O0MucHJvdG90eXBlLmZvcmNlVXBkYXRlPWZ1bmN0aW9uKGEpe3RoaXMudXBkYXRlci5lbnF1ZXVlRm9yY2VVcGRhdGUodGhpcyxhLFwiZm9yY2VVcGRhdGVcIil9O1xuZnVuY3Rpb24gRCgpe31ELnByb3RvdHlwZT1DLnByb3RvdHlwZTtmdW5jdGlvbiBFKGEsYixjKXt0aGlzLnByb3BzPWE7dGhpcy5jb250ZXh0PWI7dGhpcy5yZWZzPUI7dGhpcy51cGRhdGVyPWN8fEF9dmFyIEY9RS5wcm90b3R5cGU9bmV3IEQ7Ri5jb25zdHJ1Y3Rvcj1FO2woRixDLnByb3RvdHlwZSk7Ri5pc1B1cmVSZWFjdENvbXBvbmVudD0hMDt2YXIgRz17Y3VycmVudDpudWxsfSxIPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksST17a2V5OiEwLHJlZjohMCxfX3NlbGY6ITAsX19zb3VyY2U6ITB9O1xuZnVuY3Rpb24gSihhLGIsYyl7dmFyIGUsZD17fSxrPW51bGwsaD1udWxsO2lmKG51bGwhPWIpZm9yKGUgaW4gdm9pZCAwIT09Yi5yZWYmJihoPWIucmVmKSx2b2lkIDAhPT1iLmtleSYmKGs9XCJcIitiLmtleSksYilILmNhbGwoYixlKSYmIUkuaGFzT3duUHJvcGVydHkoZSkmJihkW2VdPWJbZV0pO3ZhciBnPWFyZ3VtZW50cy5sZW5ndGgtMjtpZigxPT09ZylkLmNoaWxkcmVuPWM7ZWxzZSBpZigxPGcpe2Zvcih2YXIgZj1BcnJheShnKSxtPTA7bTxnO20rKylmW21dPWFyZ3VtZW50c1ttKzJdO2QuY2hpbGRyZW49Zn1pZihhJiZhLmRlZmF1bHRQcm9wcylmb3IoZSBpbiBnPWEuZGVmYXVsdFByb3BzLGcpdm9pZCAwPT09ZFtlXSYmKGRbZV09Z1tlXSk7cmV0dXJueyQkdHlwZW9mOm4sdHlwZTphLGtleTprLHJlZjpoLHByb3BzOmQsX293bmVyOkcuY3VycmVudH19XG5mdW5jdGlvbiBLKGEsYil7cmV0dXJueyQkdHlwZW9mOm4sdHlwZTphLnR5cGUsa2V5OmIscmVmOmEucmVmLHByb3BzOmEucHJvcHMsX293bmVyOmEuX293bmVyfX1mdW5jdGlvbiBMKGEpe3JldHVyblwib2JqZWN0XCI9PT10eXBlb2YgYSYmbnVsbCE9PWEmJmEuJCR0eXBlb2Y9PT1ufWZ1bmN0aW9uIGVzY2FwZShhKXt2YXIgYj17XCI9XCI6XCI9MFwiLFwiOlwiOlwiPTJcIn07cmV0dXJuXCIkXCIrYS5yZXBsYWNlKC9bPTpdL2csZnVuY3Rpb24oYSl7cmV0dXJuIGJbYV19KX12YXIgTT0vXFwvKy9nO2Z1bmN0aW9uIE4oYSxiKXtyZXR1cm5cIm9iamVjdFwiPT09dHlwZW9mIGEmJm51bGwhPT1hJiZudWxsIT1hLmtleT9lc2NhcGUoXCJcIithLmtleSk6Yi50b1N0cmluZygzNil9XG5mdW5jdGlvbiBPKGEsYixjLGUsZCl7dmFyIGs9dHlwZW9mIGE7aWYoXCJ1bmRlZmluZWRcIj09PWt8fFwiYm9vbGVhblwiPT09aylhPW51bGw7dmFyIGg9ITE7aWYobnVsbD09PWEpaD0hMDtlbHNlIHN3aXRjaChrKXtjYXNlIFwic3RyaW5nXCI6Y2FzZSBcIm51bWJlclwiOmg9ITA7YnJlYWs7Y2FzZSBcIm9iamVjdFwiOnN3aXRjaChhLiQkdHlwZW9mKXtjYXNlIG46Y2FzZSBwOmg9ITB9fWlmKGgpcmV0dXJuIGg9YSxkPWQoaCksYT1cIlwiPT09ZT9cIi5cIitOKGgsMCk6ZSxBcnJheS5pc0FycmF5KGQpPyhjPVwiXCIsbnVsbCE9YSYmKGM9YS5yZXBsYWNlKE0sXCIkJi9cIikrXCIvXCIpLE8oZCxiLGMsXCJcIixmdW5jdGlvbihhKXtyZXR1cm4gYX0pKTpudWxsIT1kJiYoTChkKSYmKGQ9SyhkLGMrKCFkLmtleXx8aCYmaC5rZXk9PT1kLmtleT9cIlwiOihcIlwiK2Qua2V5KS5yZXBsYWNlKE0sXCIkJi9cIikrXCIvXCIpK2EpKSxiLnB1c2goZCkpLDE7aD0wO2U9XCJcIj09PWU/XCIuXCI6ZStcIjpcIjtpZihBcnJheS5pc0FycmF5KGEpKWZvcih2YXIgZz1cbjA7ZzxhLmxlbmd0aDtnKyspe2s9YVtnXTt2YXIgZj1lK04oayxnKTtoKz1PKGssYixjLGYsZCl9ZWxzZSBpZihmPXkoYSksXCJmdW5jdGlvblwiPT09dHlwZW9mIGYpZm9yKGE9Zi5jYWxsKGEpLGc9MDshKGs9YS5uZXh0KCkpLmRvbmU7KWs9ay52YWx1ZSxmPWUrTihrLGcrKyksaCs9TyhrLGIsYyxmLGQpO2Vsc2UgaWYoXCJvYmplY3RcIj09PWspdGhyb3cgYj1cIlwiK2EsRXJyb3IoeigzMSxcIltvYmplY3QgT2JqZWN0XVwiPT09Yj9cIm9iamVjdCB3aXRoIGtleXMge1wiK09iamVjdC5rZXlzKGEpLmpvaW4oXCIsIFwiKStcIn1cIjpiKSk7cmV0dXJuIGh9ZnVuY3Rpb24gUChhLGIsYyl7aWYobnVsbD09YSlyZXR1cm4gYTt2YXIgZT1bXSxkPTA7TyhhLGUsXCJcIixcIlwiLGZ1bmN0aW9uKGEpe3JldHVybiBiLmNhbGwoYyxhLGQrKyl9KTtyZXR1cm4gZX1cbmZ1bmN0aW9uIFEoYSl7aWYoLTE9PT1hLl9zdGF0dXMpe3ZhciBiPWEuX3Jlc3VsdDtiPWIoKTthLl9zdGF0dXM9MDthLl9yZXN1bHQ9YjtiLnRoZW4oZnVuY3Rpb24oYil7MD09PWEuX3N0YXR1cyYmKGI9Yi5kZWZhdWx0LGEuX3N0YXR1cz0xLGEuX3Jlc3VsdD1iKX0sZnVuY3Rpb24oYil7MD09PWEuX3N0YXR1cyYmKGEuX3N0YXR1cz0yLGEuX3Jlc3VsdD1iKX0pfWlmKDE9PT1hLl9zdGF0dXMpcmV0dXJuIGEuX3Jlc3VsdDt0aHJvdyBhLl9yZXN1bHQ7fXZhciBSPXtjdXJyZW50Om51bGx9O2Z1bmN0aW9uIFMoKXt2YXIgYT1SLmN1cnJlbnQ7aWYobnVsbD09PWEpdGhyb3cgRXJyb3IoeigzMjEpKTtyZXR1cm4gYX12YXIgVD17UmVhY3RDdXJyZW50RGlzcGF0Y2hlcjpSLFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnOnt0cmFuc2l0aW9uOjB9LFJlYWN0Q3VycmVudE93bmVyOkcsSXNTb21lUmVuZGVyZXJBY3Rpbmc6e2N1cnJlbnQ6ITF9LGFzc2lnbjpsfTtcbmV4cG9ydHMuQ2hpbGRyZW49e21hcDpQLGZvckVhY2g6ZnVuY3Rpb24oYSxiLGMpe1AoYSxmdW5jdGlvbigpe2IuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxjKX0sY291bnQ6ZnVuY3Rpb24oYSl7dmFyIGI9MDtQKGEsZnVuY3Rpb24oKXtiKyt9KTtyZXR1cm4gYn0sdG9BcnJheTpmdW5jdGlvbihhKXtyZXR1cm4gUChhLGZ1bmN0aW9uKGEpe3JldHVybiBhfSl8fFtdfSxvbmx5OmZ1bmN0aW9uKGEpe2lmKCFMKGEpKXRocm93IEVycm9yKHooMTQzKSk7cmV0dXJuIGF9fTtleHBvcnRzLkNvbXBvbmVudD1DO2V4cG9ydHMuUHVyZUNvbXBvbmVudD1FO2V4cG9ydHMuX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQ9VDtcbmV4cG9ydHMuY2xvbmVFbGVtZW50PWZ1bmN0aW9uKGEsYixjKXtpZihudWxsPT09YXx8dm9pZCAwPT09YSl0aHJvdyBFcnJvcih6KDI2NyxhKSk7dmFyIGU9bCh7fSxhLnByb3BzKSxkPWEua2V5LGs9YS5yZWYsaD1hLl9vd25lcjtpZihudWxsIT1iKXt2b2lkIDAhPT1iLnJlZiYmKGs9Yi5yZWYsaD1HLmN1cnJlbnQpO3ZvaWQgMCE9PWIua2V5JiYoZD1cIlwiK2Iua2V5KTtpZihhLnR5cGUmJmEudHlwZS5kZWZhdWx0UHJvcHMpdmFyIGc9YS50eXBlLmRlZmF1bHRQcm9wcztmb3IoZiBpbiBiKUguY2FsbChiLGYpJiYhSS5oYXNPd25Qcm9wZXJ0eShmKSYmKGVbZl09dm9pZCAwPT09YltmXSYmdm9pZCAwIT09Zz9nW2ZdOmJbZl0pfXZhciBmPWFyZ3VtZW50cy5sZW5ndGgtMjtpZigxPT09ZillLmNoaWxkcmVuPWM7ZWxzZSBpZigxPGYpe2c9QXJyYXkoZik7Zm9yKHZhciBtPTA7bTxmO20rKylnW21dPWFyZ3VtZW50c1ttKzJdO2UuY2hpbGRyZW49Z31yZXR1cm57JCR0eXBlb2Y6bix0eXBlOmEudHlwZSxcbmtleTpkLHJlZjprLHByb3BzOmUsX293bmVyOmh9fTtleHBvcnRzLmNyZWF0ZUNvbnRleHQ9ZnVuY3Rpb24oYSxiKXt2b2lkIDA9PT1iJiYoYj1udWxsKTthPXskJHR5cGVvZjpyLF9jYWxjdWxhdGVDaGFuZ2VkQml0czpiLF9jdXJyZW50VmFsdWU6YSxfY3VycmVudFZhbHVlMjphLF90aHJlYWRDb3VudDowLFByb3ZpZGVyOm51bGwsQ29uc3VtZXI6bnVsbH07YS5Qcm92aWRlcj17JCR0eXBlb2Y6cSxfY29udGV4dDphfTtyZXR1cm4gYS5Db25zdW1lcj1hfTtleHBvcnRzLmNyZWF0ZUVsZW1lbnQ9SjtleHBvcnRzLmNyZWF0ZUZhY3Rvcnk9ZnVuY3Rpb24oYSl7dmFyIGI9Si5iaW5kKG51bGwsYSk7Yi50eXBlPWE7cmV0dXJuIGJ9O2V4cG9ydHMuY3JlYXRlUmVmPWZ1bmN0aW9uKCl7cmV0dXJue2N1cnJlbnQ6bnVsbH19O2V4cG9ydHMuZm9yd2FyZFJlZj1mdW5jdGlvbihhKXtyZXR1cm57JCR0eXBlb2Y6dCxyZW5kZXI6YX19O2V4cG9ydHMuaXNWYWxpZEVsZW1lbnQ9TDtcbmV4cG9ydHMubGF6eT1mdW5jdGlvbihhKXtyZXR1cm57JCR0eXBlb2Y6dixfcGF5bG9hZDp7X3N0YXR1czotMSxfcmVzdWx0OmF9LF9pbml0OlF9fTtleHBvcnRzLm1lbW89ZnVuY3Rpb24oYSxiKXtyZXR1cm57JCR0eXBlb2Y6dSx0eXBlOmEsY29tcGFyZTp2b2lkIDA9PT1iP251bGw6Yn19O2V4cG9ydHMudXNlQ2FsbGJhY2s9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gUygpLnVzZUNhbGxiYWNrKGEsYil9O2V4cG9ydHMudXNlQ29udGV4dD1mdW5jdGlvbihhLGIpe3JldHVybiBTKCkudXNlQ29udGV4dChhLGIpfTtleHBvcnRzLnVzZURlYnVnVmFsdWU9ZnVuY3Rpb24oKXt9O2V4cG9ydHMudXNlRWZmZWN0PWZ1bmN0aW9uKGEsYil7cmV0dXJuIFMoKS51c2VFZmZlY3QoYSxiKX07ZXhwb3J0cy51c2VJbXBlcmF0aXZlSGFuZGxlPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gUygpLnVzZUltcGVyYXRpdmVIYW5kbGUoYSxiLGMpfTtcbmV4cG9ydHMudXNlTGF5b3V0RWZmZWN0PWZ1bmN0aW9uKGEsYil7cmV0dXJuIFMoKS51c2VMYXlvdXRFZmZlY3QoYSxiKX07ZXhwb3J0cy51c2VNZW1vPWZ1bmN0aW9uKGEsYil7cmV0dXJuIFMoKS51c2VNZW1vKGEsYil9O2V4cG9ydHMudXNlUmVkdWNlcj1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIFMoKS51c2VSZWR1Y2VyKGEsYixjKX07ZXhwb3J0cy51c2VSZWY9ZnVuY3Rpb24oYSl7cmV0dXJuIFMoKS51c2VSZWYoYSl9O2V4cG9ydHMudXNlU3RhdGU9ZnVuY3Rpb24oYSl7cmV0dXJuIFMoKS51c2VTdGF0ZShhKX07ZXhwb3J0cy52ZXJzaW9uPVwiMTcuMC4yXCI7XG4iLCIndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QuZGV2ZWxvcG1lbnQuanMnKTtcbn1cbiIsIlwidXNlIHN0cmljdFwiO1xuXG52YXIgc3R5bGVzSW5ET00gPSBbXTtcblxuZnVuY3Rpb24gZ2V0SW5kZXhCeUlkZW50aWZpZXIoaWRlbnRpZmllcikge1xuICB2YXIgcmVzdWx0ID0gLTE7XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHlsZXNJbkRPTS5sZW5ndGg7IGkrKykge1xuICAgIGlmIChzdHlsZXNJbkRPTVtpXS5pZGVudGlmaWVyID09PSBpZGVudGlmaWVyKSB7XG4gICAgICByZXN1bHQgPSBpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gbW9kdWxlc1RvRG9tKGxpc3QsIG9wdGlvbnMpIHtcbiAgdmFyIGlkQ291bnRNYXAgPSB7fTtcbiAgdmFyIGlkZW50aWZpZXJzID0gW107XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGl0ZW0gPSBsaXN0W2ldO1xuICAgIHZhciBpZCA9IG9wdGlvbnMuYmFzZSA/IGl0ZW1bMF0gKyBvcHRpb25zLmJhc2UgOiBpdGVtWzBdO1xuICAgIHZhciBjb3VudCA9IGlkQ291bnRNYXBbaWRdIHx8IDA7XG4gICAgdmFyIGlkZW50aWZpZXIgPSBcIlwiLmNvbmNhdChpZCwgXCIgXCIpLmNvbmNhdChjb3VudCk7XG4gICAgaWRDb3VudE1hcFtpZF0gPSBjb3VudCArIDE7XG4gICAgdmFyIGluZGV4QnlJZGVudGlmaWVyID0gZ2V0SW5kZXhCeUlkZW50aWZpZXIoaWRlbnRpZmllcik7XG4gICAgdmFyIG9iaiA9IHtcbiAgICAgIGNzczogaXRlbVsxXSxcbiAgICAgIG1lZGlhOiBpdGVtWzJdLFxuICAgICAgc291cmNlTWFwOiBpdGVtWzNdLFxuICAgICAgc3VwcG9ydHM6IGl0ZW1bNF0sXG4gICAgICBsYXllcjogaXRlbVs1XVxuICAgIH07XG5cbiAgICBpZiAoaW5kZXhCeUlkZW50aWZpZXIgIT09IC0xKSB7XG4gICAgICBzdHlsZXNJbkRPTVtpbmRleEJ5SWRlbnRpZmllcl0ucmVmZXJlbmNlcysrO1xuICAgICAgc3R5bGVzSW5ET01baW5kZXhCeUlkZW50aWZpZXJdLnVwZGF0ZXIob2JqKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIHVwZGF0ZXIgPSBhZGRFbGVtZW50U3R5bGUob2JqLCBvcHRpb25zKTtcbiAgICAgIG9wdGlvbnMuYnlJbmRleCA9IGk7XG4gICAgICBzdHlsZXNJbkRPTS5zcGxpY2UoaSwgMCwge1xuICAgICAgICBpZGVudGlmaWVyOiBpZGVudGlmaWVyLFxuICAgICAgICB1cGRhdGVyOiB1cGRhdGVyLFxuICAgICAgICByZWZlcmVuY2VzOiAxXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZGVudGlmaWVycy5wdXNoKGlkZW50aWZpZXIpO1xuICB9XG5cbiAgcmV0dXJuIGlkZW50aWZpZXJzO1xufVxuXG5mdW5jdGlvbiBhZGRFbGVtZW50U3R5bGUob2JqLCBvcHRpb25zKSB7XG4gIHZhciBhcGkgPSBvcHRpb25zLmRvbUFQSShvcHRpb25zKTtcbiAgYXBpLnVwZGF0ZShvYmopO1xuXG4gIHZhciB1cGRhdGVyID0gZnVuY3Rpb24gdXBkYXRlcihuZXdPYmopIHtcbiAgICBpZiAobmV3T2JqKSB7XG4gICAgICBpZiAobmV3T2JqLmNzcyA9PT0gb2JqLmNzcyAmJiBuZXdPYmoubWVkaWEgPT09IG9iai5tZWRpYSAmJiBuZXdPYmouc291cmNlTWFwID09PSBvYmouc291cmNlTWFwICYmIG5ld09iai5zdXBwb3J0cyA9PT0gb2JqLnN1cHBvcnRzICYmIG5ld09iai5sYXllciA9PT0gb2JqLmxheWVyKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgYXBpLnVwZGF0ZShvYmogPSBuZXdPYmopO1xuICAgIH0gZWxzZSB7XG4gICAgICBhcGkucmVtb3ZlKCk7XG4gICAgfVxuICB9O1xuXG4gIHJldHVybiB1cGRhdGVyO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChsaXN0LCBvcHRpb25zKSB7XG4gIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICBsaXN0ID0gbGlzdCB8fCBbXTtcbiAgdmFyIGxhc3RJZGVudGlmaWVycyA9IG1vZHVsZXNUb0RvbShsaXN0LCBvcHRpb25zKTtcbiAgcmV0dXJuIGZ1bmN0aW9uIHVwZGF0ZShuZXdMaXN0KSB7XG4gICAgbmV3TGlzdCA9IG5ld0xpc3QgfHwgW107XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxhc3RJZGVudGlmaWVycy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGlkZW50aWZpZXIgPSBsYXN0SWRlbnRpZmllcnNbaV07XG4gICAgICB2YXIgaW5kZXggPSBnZXRJbmRleEJ5SWRlbnRpZmllcihpZGVudGlmaWVyKTtcbiAgICAgIHN0eWxlc0luRE9NW2luZGV4XS5yZWZlcmVuY2VzLS07XG4gICAgfVxuXG4gICAgdmFyIG5ld0xhc3RJZGVudGlmaWVycyA9IG1vZHVsZXNUb0RvbShuZXdMaXN0LCBvcHRpb25zKTtcblxuICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBsYXN0SWRlbnRpZmllcnMubGVuZ3RoOyBfaSsrKSB7XG4gICAgICB2YXIgX2lkZW50aWZpZXIgPSBsYXN0SWRlbnRpZmllcnNbX2ldO1xuXG4gICAgICB2YXIgX2luZGV4ID0gZ2V0SW5kZXhCeUlkZW50aWZpZXIoX2lkZW50aWZpZXIpO1xuXG4gICAgICBpZiAoc3R5bGVzSW5ET01bX2luZGV4XS5yZWZlcmVuY2VzID09PSAwKSB7XG4gICAgICAgIHN0eWxlc0luRE9NW19pbmRleF0udXBkYXRlcigpO1xuXG4gICAgICAgIHN0eWxlc0luRE9NLnNwbGljZShfaW5kZXgsIDEpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxhc3RJZGVudGlmaWVycyA9IG5ld0xhc3RJZGVudGlmaWVycztcbiAgfTtcbn07IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBtZW1vID0ge307XG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cblxuZnVuY3Rpb24gZ2V0VGFyZ2V0KHRhcmdldCkge1xuICBpZiAodHlwZW9mIG1lbW9bdGFyZ2V0XSA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgIHZhciBzdHlsZVRhcmdldCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodGFyZ2V0KTsgLy8gU3BlY2lhbCBjYXNlIHRvIHJldHVybiBoZWFkIG9mIGlmcmFtZSBpbnN0ZWFkIG9mIGlmcmFtZSBpdHNlbGZcblxuICAgIGlmICh3aW5kb3cuSFRNTElGcmFtZUVsZW1lbnQgJiYgc3R5bGVUYXJnZXQgaW5zdGFuY2VvZiB3aW5kb3cuSFRNTElGcmFtZUVsZW1lbnQpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIC8vIFRoaXMgd2lsbCB0aHJvdyBhbiBleGNlcHRpb24gaWYgYWNjZXNzIHRvIGlmcmFtZSBpcyBibG9ja2VkXG4gICAgICAgIC8vIGR1ZSB0byBjcm9zcy1vcmlnaW4gcmVzdHJpY3Rpb25zXG4gICAgICAgIHN0eWxlVGFyZ2V0ID0gc3R5bGVUYXJnZXQuY29udGVudERvY3VtZW50LmhlYWQ7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIC8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0XG4gICAgICAgIHN0eWxlVGFyZ2V0ID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBtZW1vW3RhcmdldF0gPSBzdHlsZVRhcmdldDtcbiAgfVxuXG4gIHJldHVybiBtZW1vW3RhcmdldF07XG59XG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cblxuXG5mdW5jdGlvbiBpbnNlcnRCeVNlbGVjdG9yKGluc2VydCwgc3R5bGUpIHtcbiAgdmFyIHRhcmdldCA9IGdldFRhcmdldChpbnNlcnQpO1xuXG4gIGlmICghdGFyZ2V0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiQ291bGRuJ3QgZmluZCBhIHN0eWxlIHRhcmdldC4gVGhpcyBwcm9iYWJseSBtZWFucyB0aGF0IHRoZSB2YWx1ZSBmb3IgdGhlICdpbnNlcnQnIHBhcmFtZXRlciBpcyBpbnZhbGlkLlwiKTtcbiAgfVxuXG4gIHRhcmdldC5hcHBlbmRDaGlsZChzdHlsZSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaW5zZXJ0QnlTZWxlY3RvcjsiLCJcInVzZSBzdHJpY3RcIjtcblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXG5mdW5jdGlvbiBpbnNlcnRTdHlsZUVsZW1lbnQob3B0aW9ucykge1xuICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzdHlsZVwiKTtcbiAgb3B0aW9ucy5zZXRBdHRyaWJ1dGVzKGVsZW1lbnQsIG9wdGlvbnMuYXR0cmlidXRlcyk7XG4gIG9wdGlvbnMuaW5zZXJ0KGVsZW1lbnQsIG9wdGlvbnMub3B0aW9ucyk7XG4gIHJldHVybiBlbGVtZW50O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGluc2VydFN0eWxlRWxlbWVudDsiLCJcInVzZSBzdHJpY3RcIjtcblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXG5mdW5jdGlvbiBzZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMoc3R5bGVFbGVtZW50KSB7XG4gIHZhciBub25jZSA9IHR5cGVvZiBfX3dlYnBhY2tfbm9uY2VfXyAhPT0gXCJ1bmRlZmluZWRcIiA/IF9fd2VicGFja19ub25jZV9fIDogbnVsbDtcblxuICBpZiAobm9uY2UpIHtcbiAgICBzdHlsZUVsZW1lbnQuc2V0QXR0cmlidXRlKFwibm9uY2VcIiwgbm9uY2UpO1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzOyIsIlwidXNlIHN0cmljdFwiO1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cbmZ1bmN0aW9uIGFwcGx5KHN0eWxlRWxlbWVudCwgb3B0aW9ucywgb2JqKSB7XG4gIHZhciBjc3MgPSBcIlwiO1xuXG4gIGlmIChvYmouc3VwcG9ydHMpIHtcbiAgICBjc3MgKz0gXCJAc3VwcG9ydHMgKFwiLmNvbmNhdChvYmouc3VwcG9ydHMsIFwiKSB7XCIpO1xuICB9XG5cbiAgaWYgKG9iai5tZWRpYSkge1xuICAgIGNzcyArPSBcIkBtZWRpYSBcIi5jb25jYXQob2JqLm1lZGlhLCBcIiB7XCIpO1xuICB9XG5cbiAgdmFyIG5lZWRMYXllciA9IHR5cGVvZiBvYmoubGF5ZXIgIT09IFwidW5kZWZpbmVkXCI7XG5cbiAgaWYgKG5lZWRMYXllcikge1xuICAgIGNzcyArPSBcIkBsYXllclwiLmNvbmNhdChvYmoubGF5ZXIubGVuZ3RoID4gMCA/IFwiIFwiLmNvbmNhdChvYmoubGF5ZXIpIDogXCJcIiwgXCIge1wiKTtcbiAgfVxuXG4gIGNzcyArPSBvYmouY3NzO1xuXG4gIGlmIChuZWVkTGF5ZXIpIHtcbiAgICBjc3MgKz0gXCJ9XCI7XG4gIH1cblxuICBpZiAob2JqLm1lZGlhKSB7XG4gICAgY3NzICs9IFwifVwiO1xuICB9XG5cbiAgaWYgKG9iai5zdXBwb3J0cykge1xuICAgIGNzcyArPSBcIn1cIjtcbiAgfVxuXG4gIHZhciBzb3VyY2VNYXAgPSBvYmouc291cmNlTWFwO1xuXG4gIGlmIChzb3VyY2VNYXAgJiYgdHlwZW9mIGJ0b2EgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICBjc3MgKz0gXCJcXG4vKiMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LFwiLmNvbmNhdChidG9hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShzb3VyY2VNYXApKSkpLCBcIiAqL1wiKTtcbiAgfSAvLyBGb3Igb2xkIElFXG5cbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICAqL1xuXG5cbiAgb3B0aW9ucy5zdHlsZVRhZ1RyYW5zZm9ybShjc3MsIHN0eWxlRWxlbWVudCwgb3B0aW9ucy5vcHRpb25zKTtcbn1cblxuZnVuY3Rpb24gcmVtb3ZlU3R5bGVFbGVtZW50KHN0eWxlRWxlbWVudCkge1xuICAvLyBpc3RhbmJ1bCBpZ25vcmUgaWZcbiAgaWYgKHN0eWxlRWxlbWVudC5wYXJlbnROb2RlID09PSBudWxsKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgc3R5bGVFbGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoc3R5bGVFbGVtZW50KTtcbn1cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xuXG5cbmZ1bmN0aW9uIGRvbUFQSShvcHRpb25zKSB7XG4gIHZhciBzdHlsZUVsZW1lbnQgPSBvcHRpb25zLmluc2VydFN0eWxlRWxlbWVudChvcHRpb25zKTtcbiAgcmV0dXJuIHtcbiAgICB1cGRhdGU6IGZ1bmN0aW9uIHVwZGF0ZShvYmopIHtcbiAgICAgIGFwcGx5KHN0eWxlRWxlbWVudCwgb3B0aW9ucywgb2JqKTtcbiAgICB9LFxuICAgIHJlbW92ZTogZnVuY3Rpb24gcmVtb3ZlKCkge1xuICAgICAgcmVtb3ZlU3R5bGVFbGVtZW50KHN0eWxlRWxlbWVudCk7XG4gICAgfVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGRvbUFQSTsiLCJcInVzZSBzdHJpY3RcIjtcblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXG5mdW5jdGlvbiBzdHlsZVRhZ1RyYW5zZm9ybShjc3MsIHN0eWxlRWxlbWVudCkge1xuICBpZiAoc3R5bGVFbGVtZW50LnN0eWxlU2hlZXQpIHtcbiAgICBzdHlsZUVsZW1lbnQuc3R5bGVTaGVldC5jc3NUZXh0ID0gY3NzO1xuICB9IGVsc2Uge1xuICAgIHdoaWxlIChzdHlsZUVsZW1lbnQuZmlyc3RDaGlsZCkge1xuICAgICAgc3R5bGVFbGVtZW50LnJlbW92ZUNoaWxkKHN0eWxlRWxlbWVudC5maXJzdENoaWxkKTtcbiAgICB9XG5cbiAgICBzdHlsZUVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY3NzKSk7XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzdHlsZVRhZ1RyYW5zZm9ybTsiLCJcbiAgICAgIGltcG9ydCBBUEkgZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjtcbiAgICAgIGltcG9ydCBkb21BUEkgZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZURvbUFQSS5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydEZuIGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0QnlTZWxlY3Rvci5qc1wiO1xuICAgICAgaW1wb3J0IHNldEF0dHJpYnV0ZXMgZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRTdHlsZUVsZW1lbnQgZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRTdHlsZUVsZW1lbnQuanNcIjtcbiAgICAgIGltcG9ydCBzdHlsZVRhZ1RyYW5zZm9ybUZuIGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVUYWdUcmFuc2Zvcm0uanNcIjtcbiAgICAgIGltcG9ydCBjb250ZW50LCAqIGFzIG5hbWVkRXhwb3J0IGZyb20gXCIhIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL0Nvbm5lY3RCdXR0b24uc2Nzc1wiO1xuICAgICAgXG4gICAgICBcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5zdHlsZVRhZ1RyYW5zZm9ybSA9IHN0eWxlVGFnVHJhbnNmb3JtRm47XG5vcHRpb25zLnNldEF0dHJpYnV0ZXMgPSBzZXRBdHRyaWJ1dGVzO1xuXG4gICAgICBvcHRpb25zLmluc2VydCA9IGluc2VydEZuLmJpbmQobnVsbCwgXCJoZWFkXCIpO1xuICAgIFxub3B0aW9ucy5kb21BUEkgPSBkb21BUEk7XG5vcHRpb25zLmluc2VydFN0eWxlRWxlbWVudCA9IGluc2VydFN0eWxlRWxlbWVudDtcblxudmFyIHVwZGF0ZSA9IEFQSShjb250ZW50LCBvcHRpb25zKTtcblxuXG5cbmV4cG9ydCAqIGZyb20gXCIhIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL0Nvbm5lY3RCdXR0b24uc2Nzc1wiO1xuICAgICAgIGV4cG9ydCBkZWZhdWx0IGNvbnRlbnQgJiYgY29udGVudC5sb2NhbHMgPyBjb250ZW50LmxvY2FscyA6IHVuZGVmaW5lZDtcbiIsIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIENvcHlyaWdodCAoYykgSW50ZWwgQ29ycG9yYXRpb24gMjAxOVxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgJy4vQ29ubmVjdEJ1dHRvbi5zY3NzJ1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbm5lY3RQcm9wcyB7XG4gIGt2bXN0YXRlOiBudW1iZXJcbiAgaGFuZGxlQ29ubmVjdENsaWNrOiAoZTogYW55KSA9PiB2b2lkXG59XG5cbmV4cG9ydCBjbGFzcyBDb25uZWN0QnV0dG9uIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PENvbm5lY3RQcm9wcywge30+IHtcbiAgcmVuZGVyICgpOiBSZWFjdC5SZWFjdE5vZGUge1xuICAgIHJldHVybiAoXG4gICAgICA8YnV0dG9uIGNsYXNzTmFtZT1cImJ1dHRvblwiIG9uQ2xpY2s9e3RoaXMucHJvcHMuaGFuZGxlQ29ubmVjdENsaWNrfT5cbiAgICAgICAge3RoaXMucHJvcHMua3Ztc3RhdGUgPT09IDEgPyAnQ29ubmVjdGluZyBLVk0nIDogKHRoaXMucHJvcHMua3Ztc3RhdGUgPT09IDIgPyAnRGlzY29ubmVjdCBLVk0nIDogJ0Nvbm5lY3QgS1ZNJyl9XG4gICAgICA8L2J1dHRvbj5cbiAgICApXG4gIH1cbn1cbiIsIlxuICAgICAgaW1wb3J0IEFQSSBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiO1xuICAgICAgaW1wb3J0IGRvbUFQSSBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlRG9tQVBJLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0Rm4gZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRCeVNlbGVjdG9yLmpzXCI7XG4gICAgICBpbXBvcnQgc2V0QXR0cmlidXRlcyBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3NldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcy5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydFN0eWxlRWxlbWVudCBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydFN0eWxlRWxlbWVudC5qc1wiO1xuICAgICAgaW1wb3J0IHN0eWxlVGFnVHJhbnNmb3JtRm4gZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZVRhZ1RyYW5zZm9ybS5qc1wiO1xuICAgICAgaW1wb3J0IGNvbnRlbnQsICogYXMgbmFtZWRFeHBvcnQgZnJvbSBcIiEhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vRW5jb2RpbmdPcHRpb25zLnNjc3NcIjtcbiAgICAgIFxuICAgICAgXG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuc3R5bGVUYWdUcmFuc2Zvcm0gPSBzdHlsZVRhZ1RyYW5zZm9ybUZuO1xub3B0aW9ucy5zZXRBdHRyaWJ1dGVzID0gc2V0QXR0cmlidXRlcztcblxuICAgICAgb3B0aW9ucy5pbnNlcnQgPSBpbnNlcnRGbi5iaW5kKG51bGwsIFwiaGVhZFwiKTtcbiAgICBcbm9wdGlvbnMuZG9tQVBJID0gZG9tQVBJO1xub3B0aW9ucy5pbnNlcnRTdHlsZUVsZW1lbnQgPSBpbnNlcnRTdHlsZUVsZW1lbnQ7XG5cbnZhciB1cGRhdGUgPSBBUEkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgKiBmcm9tIFwiISEuLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi9FbmNvZGluZ09wdGlvbnMuc2Nzc1wiO1xuICAgICAgIGV4cG9ydCBkZWZhdWx0IGNvbnRlbnQgJiYgY29udGVudC5sb2NhbHMgPyBjb250ZW50LmxvY2FscyA6IHVuZGVmaW5lZDtcbiIsIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIENvcHlyaWdodCAoYykgSW50ZWwgQ29ycG9yYXRpb24gMjAxOVxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgJy4vRW5jb2RpbmdPcHRpb25zLnNjc3MnXG5cbmV4cG9ydCBpbnRlcmZhY2UgSUVuY29kaW5nT3B0aW9ucyB7XG4gIGNoYW5nZUVuY29kaW5nOiAoZW5jb2Rpbmc6IG51bWJlcikgPT4gdm9pZFxuICBnZXRDb25uZWN0U3RhdGU6ICgpID0+IG51bWJlclxufVxuXG5leHBvcnQgY2xhc3MgRW5jb2RpbmdPcHRpb25zIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PElFbmNvZGluZ09wdGlvbnMsIHsgdmFsdWU6IG51bWJlciB9PiB7XG4gIGNvbnN0cnVjdG9yIChwcm9wczogSUVuY29kaW5nT3B0aW9ucykge1xuICAgIHN1cGVyKHByb3BzKVxuICAgIHRoaXMuc3RhdGUgPSB7IHZhbHVlOiAxIH1cbiAgICB0aGlzLm9uRW5jb2RpbmdDaGFuZ2UgPSB0aGlzLm9uRW5jb2RpbmdDaGFuZ2UuYmluZCh0aGlzKVxuICB9XG5cbiAgb25FbmNvZGluZ0NoYW5nZSAoZSk6IHZvaWQge1xuICAgIC8vIGUucGVyc2lzdCgpO1xuICAgIHRoaXMuc2V0U3RhdGUoeyB2YWx1ZTogZS50YXJnZXQudmFsdWUgfSlcbiAgICB0aGlzLnByb3BzLmNoYW5nZUVuY29kaW5nKGUudGFyZ2V0LnZhbHVlKVxuICB9XG5cbiAgcmVuZGVyICgpOiBSZWFjdC5SZWFjdE5vZGUge1xuICAgIHJldHVybiAoXG4gICAgICA8c3BhbiBjbGFzc05hbWU9XCJlbmNvZGluZ1wiPlxuICAgICAgICA8bGFiZWwgPkVuY29kaW5nOjwvbGFiZWw+XG4gICAgICAgIDxzZWxlY3QgdmFsdWU9e3RoaXMuc3RhdGUudmFsdWV9IGNsYXNzTmFtZT0ge3RoaXMucHJvcHMuZ2V0Q29ubmVjdFN0YXRlKCkgPT09IDIgPyAncmVsZGlzYWJsZWQnIDogJyd9IG9uQ2hhbmdlPXt0aGlzLm9uRW5jb2RpbmdDaGFuZ2V9IGRpc2FibGVkPXt0aGlzLnByb3BzLmdldENvbm5lY3RTdGF0ZSgpID09PSAyfT5cbiAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMVwiPlJMRSA4PC9vcHRpb24+XG4gICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjJcIj5STEUgMTY8L29wdGlvbj5cbiAgICAgICAgPC9zZWxlY3Q+XG4gICAgICA8L3NwYW4+XG4gICAgKVxuICB9XG59XG4iLCIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBDb3B5cmlnaHQgKGMpIEludGVsIENvcnBvcmF0aW9uIDIwMTlcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgRW5jb2RpbmdPcHRpb25zIH0gZnJvbSAnLi9FbmNvZGluZ09wdGlvbnMnXG5cbmV4cG9ydCBpbnRlcmZhY2UgSURlc2t0b3BTZXR0aW5ncyB7XG4gIGNoYW5nZURlc2t0b3BTZXR0aW5nczogKHNldHRpbmdzOiBhbnkpID0+IHZvaWRcbiAgZ2V0Q29ubmVjdFN0YXRlOiAoKSA9PiBudW1iZXJcbn1cblxuZXhwb3J0IGNsYXNzIERlc2t0b3BTZXR0aW5ncyBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxJRGVza3RvcFNldHRpbmdzPiB7XG4gIGRlc2t0b3BzZXR0aW5ncyA9IHtcbiAgICBlbmNvZGluZzogMVxuICB9XG5cbiAgY29uc3RydWN0b3IgKHByb3BzOiBJRGVza3RvcFNldHRpbmdzKSB7XG4gICAgc3VwZXIocHJvcHMpXG4gICAgdGhpcy5jaGFuZ2VFbmNvZGluZyA9IHRoaXMuY2hhbmdlRW5jb2RpbmcuYmluZCh0aGlzKVxuICB9XG5cbiAgY2hhbmdlRW5jb2RpbmcgKGVuY29kaW5nOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmRlc2t0b3BzZXR0aW5ncy5lbmNvZGluZyA9IGVuY29kaW5nXG4gICAgdGhpcy5wcm9wcy5jaGFuZ2VEZXNrdG9wU2V0dGluZ3ModGhpcy5kZXNrdG9wc2V0dGluZ3MpXG4gIH1cblxuICByZW5kZXIgKCk6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxFbmNvZGluZ09wdGlvbnMgY2hhbmdlRW5jb2Rpbmc9e3RoaXMuY2hhbmdlRW5jb2Rpbmd9IGdldENvbm5lY3RTdGF0ZT17dGhpcy5wcm9wcy5nZXRDb25uZWN0U3RhdGV9Lz5cbiAgICApXG4gIH1cbn1cbiIsIlxuICAgICAgaW1wb3J0IEFQSSBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiO1xuICAgICAgaW1wb3J0IGRvbUFQSSBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlRG9tQVBJLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0Rm4gZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRCeVNlbGVjdG9yLmpzXCI7XG4gICAgICBpbXBvcnQgc2V0QXR0cmlidXRlcyBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3NldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcy5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydFN0eWxlRWxlbWVudCBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydFN0eWxlRWxlbWVudC5qc1wiO1xuICAgICAgaW1wb3J0IHN0eWxlVGFnVHJhbnNmb3JtRm4gZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZVRhZ1RyYW5zZm9ybS5qc1wiO1xuICAgICAgaW1wb3J0IGNvbnRlbnQsICogYXMgbmFtZWRFeHBvcnQgZnJvbSBcIiEhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vSGVhZGVyLnNjc3NcIjtcbiAgICAgIFxuICAgICAgXG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuc3R5bGVUYWdUcmFuc2Zvcm0gPSBzdHlsZVRhZ1RyYW5zZm9ybUZuO1xub3B0aW9ucy5zZXRBdHRyaWJ1dGVzID0gc2V0QXR0cmlidXRlcztcblxuICAgICAgb3B0aW9ucy5pbnNlcnQgPSBpbnNlcnRGbi5iaW5kKG51bGwsIFwiaGVhZFwiKTtcbiAgICBcbm9wdGlvbnMuZG9tQVBJID0gZG9tQVBJO1xub3B0aW9ucy5pbnNlcnRTdHlsZUVsZW1lbnQgPSBpbnNlcnRTdHlsZUVsZW1lbnQ7XG5cbnZhciB1cGRhdGUgPSBBUEkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgKiBmcm9tIFwiISEuLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi9IZWFkZXIuc2Nzc1wiO1xuICAgICAgIGV4cG9ydCBkZWZhdWx0IGNvbnRlbnQgJiYgY29udGVudC5sb2NhbHMgPyBjb250ZW50LmxvY2FscyA6IHVuZGVmaW5lZDtcbiIsIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIENvcHlyaWdodCAoYykgSW50ZWwgQ29ycG9yYXRpb24gMjAxOVxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBDb25uZWN0QnV0dG9uIH0gZnJvbSAnLi9Db25uZWN0QnV0dG9uJ1xuaW1wb3J0IHsgRGVza3RvcFNldHRpbmdzIH0gZnJvbSAnLi9EZXNrdG9wU2V0dGluZ3MnXG5pbXBvcnQgJy4vSGVhZGVyLnNjc3MnXG5cbmV4cG9ydCBpbnRlcmZhY2UgSUhlYWRlclByb3BzIHtcbiAga3Ztc3RhdGU6IG51bWJlclxuICBkZXZpY2VJZDogc3RyaW5nIHwgbnVsbFxuICBzZXJ2ZXI6IHN0cmluZyB8IG51bGxcbiAgaGFuZGxlQ29ubmVjdENsaWNrOiAoZTogYW55KSA9PiB2b2lkXG4gIGNoYW5nZURlc2t0b3BTZXR0aW5nczogKHNldHRpbmdzOiBhbnkpID0+IHZvaWRcbiAgZ2V0Q29ubmVjdFN0YXRlOiAoKSA9PiBudW1iZXJcbn1cblxuZXhwb3J0IGNsYXNzIEhlYWRlciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxJSGVhZGVyUHJvcHM+IHtcbiAgcmVuZGVyICgpOiBKU1guRWxlbWVudCB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxSZWFjdC5GcmFnbWVudD5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJoZWFkZXJcIj5cbiAgICAgICAgICA8Q29ubmVjdEJ1dHRvblxuICAgICAgICAgICAgaGFuZGxlQ29ubmVjdENsaWNrPXt0aGlzLnByb3BzLmhhbmRsZUNvbm5lY3RDbGlja31cbiAgICAgICAgICAgIGt2bXN0YXRlPXt0aGlzLnByb3BzLmt2bXN0YXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPERlc2t0b3BTZXR0aW5nc1xuICAgICAgICAgICAgY2hhbmdlRGVza3RvcFNldHRpbmdzPXt0aGlzLnByb3BzLmNoYW5nZURlc2t0b3BTZXR0aW5nc31cbiAgICAgICAgICAgIGdldENvbm5lY3RTdGF0ZT17dGhpcy5wcm9wcy5nZXRDb25uZWN0U3RhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L1JlYWN0LkZyYWdtZW50PlxuICAgIClcbiAgfVxufVxuIiwiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogQ29weXJpZ2h0IChjKSBJbnRlbCBDb3Jwb3JhdGlvbiAyMDE5XG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qKiB1dGlsaXR5IGZ1bmN0aW9uIHRvIGpvaW4gdGhlIGNzcyBjbGFzcyBuYW1lcyAqL1xuZXhwb3J0IGNvbnN0IGpvaW5DbGFzc2VzID0gKC4uLmNsYXNzTmFtZXMpOiBhbnkgPT5cbiAgY2xhc3NOYW1lc1xuICAgIC5maWx0ZXIoKG5hbWUpID0+ICEhaXNGYWxzeShuYW1lKSlcbiAgICAuam9pbignICcpXG4gICAgLnRyaW0oKVxuXG5leHBvcnQgY29uc3QgcHJlcGFyZUhlYWRlcnMgPSAoKTogYW55ID0+IHtcbiAgY29uc3QgaGVhZGVycyA9IHtcbiAgICBBY2NlcHQ6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nXG4gIH1cbiAgcmV0dXJuIGhlYWRlcnNcbn1cblxuZXhwb3J0IGNvbnN0IGlzRmFsc3kgPSAodmFsdWU6IGFueSk6IGJvb2xlYW4gPT4gdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPT0gJycgJiYgdmFsdWUgIT09IGZhbHNlICYmIHZhbHVlICE9PSAwXG4iLCJcbiAgICAgIGltcG9ydCBBUEkgZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjtcbiAgICAgIGltcG9ydCBkb21BUEkgZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZURvbUFQSS5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydEZuIGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0QnlTZWxlY3Rvci5qc1wiO1xuICAgICAgaW1wb3J0IHNldEF0dHJpYnV0ZXMgZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRTdHlsZUVsZW1lbnQgZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRTdHlsZUVsZW1lbnQuanNcIjtcbiAgICAgIGltcG9ydCBzdHlsZVRhZ1RyYW5zZm9ybUZuIGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVUYWdUcmFuc2Zvcm0uanNcIjtcbiAgICAgIGltcG9ydCBjb250ZW50LCAqIGFzIG5hbWVkRXhwb3J0IGZyb20gXCIhIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL1B1cmVDYW52YXMuc2Nzc1wiO1xuICAgICAgXG4gICAgICBcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5zdHlsZVRhZ1RyYW5zZm9ybSA9IHN0eWxlVGFnVHJhbnNmb3JtRm47XG5vcHRpb25zLnNldEF0dHJpYnV0ZXMgPSBzZXRBdHRyaWJ1dGVzO1xuXG4gICAgICBvcHRpb25zLmluc2VydCA9IGluc2VydEZuLmJpbmQobnVsbCwgXCJoZWFkXCIpO1xuICAgIFxub3B0aW9ucy5kb21BUEkgPSBkb21BUEk7XG5vcHRpb25zLmluc2VydFN0eWxlRWxlbWVudCA9IGluc2VydFN0eWxlRWxlbWVudDtcblxudmFyIHVwZGF0ZSA9IEFQSShjb250ZW50LCBvcHRpb25zKTtcblxuXG5cbmV4cG9ydCAqIGZyb20gXCIhIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL1B1cmVDYW52YXMuc2Nzc1wiO1xuICAgICAgIGV4cG9ydCBkZWZhdWx0IGNvbnRlbnQgJiYgY29udGVudC5sb2NhbHMgPyBjb250ZW50LmxvY2FscyA6IHVuZGVmaW5lZDtcbiIsIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIENvcHlyaWdodCAoYykgSW50ZWwgQ29ycG9yYXRpb24gMjAxOVxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbiAqIEF1dGhvciA6IFJhbXUgQmFjaGFsYVxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IGlzRmFsc3kgfSBmcm9tICcuLi9zaGFyZWQvVXRpbGl0aWVzJ1xuaW1wb3J0ICcuL1B1cmVDYW52YXMuc2NzcydcblxuZXhwb3J0IGludGVyZmFjZSBQdXJlQ2FudmFzUHJvcHMge1xuICBjb250ZXh0UmVmOiAoY3R4OiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQpID0+IHZvaWRcbiAgbW91c2VEb3duOiAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQpID0+IHZvaWRcbiAgbW91c2VVcDogKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50KSA9PiB2b2lkXG4gIG1vdXNlTW92ZTogKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50KSA9PiB2b2lkXG4gIGNhbnZhc0hlaWdodDogc3RyaW5nXG4gIGNhbnZhc1dpZHRoOiBzdHJpbmdcbn1cblxuZXhwb3J0IGNsYXNzIFB1cmVDYW52YXMgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8UHVyZUNhbnZhc1Byb3BzLCB7fT4ge1xuICBzaG91bGRDb21wb25lbnRVcGRhdGUgKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgcmVuZGVyICgpOiBSZWFjdC5SZWFjdE5vZGUge1xuICAgIGNvbnN0IGNhbnZhc0F0dHJpYnV0ZXM6IFJlYWN0LkNhbnZhc0hUTUxBdHRyaWJ1dGVzPEhUTUxDYW52YXNFbGVtZW50PiA9IHtcbiAgICAgIHdpZHRoOiAnMTM2NicsXG4gICAgICBoZWlnaHQ6ICc3NjgnLFxuICAgICAgb25Db250ZXh0TWVudTogKGUpID0+IHsgZS5wcmV2ZW50RGVmYXVsdCgpOyByZXR1cm4gZmFsc2UgfSxcbiAgICAgIG9uTW91c2VEb3duOiB0aGlzLnByb3BzLm1vdXNlRG93bixcbiAgICAgIG9uTW91c2VVcDogdGhpcy5wcm9wcy5tb3VzZVVwLFxuICAgICAgb25Nb3VzZU1vdmU6IHRoaXMucHJvcHMubW91c2VNb3ZlXG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICA8Y2FudmFzIHsuLi5jYW52YXNBdHRyaWJ1dGVzfSBjbGFzc05hbWU9XCJjYW52YXNcIiByZWY9eyhjOiBhbnkpID0+IGlzRmFsc3koYykgPyB0aGlzLnByb3BzLmNvbnRleHRSZWYoYy5nZXRDb250ZXh0KCcyZCcpKSA6IG51bGx9Lz5cbiAgICApXG4gIH1cbn1cbiIsIlxuICAgICAgaW1wb3J0IEFQSSBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiO1xuICAgICAgaW1wb3J0IGRvbUFQSSBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlRG9tQVBJLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0Rm4gZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRCeVNlbGVjdG9yLmpzXCI7XG4gICAgICBpbXBvcnQgc2V0QXR0cmlidXRlcyBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3NldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcy5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydFN0eWxlRWxlbWVudCBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydFN0eWxlRWxlbWVudC5qc1wiO1xuICAgICAgaW1wb3J0IHN0eWxlVGFnVHJhbnNmb3JtRm4gZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZVRhZ1RyYW5zZm9ybS5qc1wiO1xuICAgICAgaW1wb3J0IGNvbnRlbnQsICogYXMgbmFtZWRFeHBvcnQgZnJvbSBcIiEhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vVUkuc2Nzc1wiO1xuICAgICAgXG4gICAgICBcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5zdHlsZVRhZ1RyYW5zZm9ybSA9IHN0eWxlVGFnVHJhbnNmb3JtRm47XG5vcHRpb25zLnNldEF0dHJpYnV0ZXMgPSBzZXRBdHRyaWJ1dGVzO1xuXG4gICAgICBvcHRpb25zLmluc2VydCA9IGluc2VydEZuLmJpbmQobnVsbCwgXCJoZWFkXCIpO1xuICAgIFxub3B0aW9ucy5kb21BUEkgPSBkb21BUEk7XG5vcHRpb25zLmluc2VydFN0eWxlRWxlbWVudCA9IGluc2VydFN0eWxlRWxlbWVudDtcblxudmFyIHVwZGF0ZSA9IEFQSShjb250ZW50LCBvcHRpb25zKTtcblxuXG5cbmV4cG9ydCAqIGZyb20gXCIhIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL1VJLnNjc3NcIjtcbiAgICAgICBleHBvcnQgZGVmYXVsdCBjb250ZW50ICYmIGNvbnRlbnQubG9jYWxzID8gY29udGVudC5sb2NhbHMgOiB1bmRlZmluZWQ7XG4iLCIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBDb3B5cmlnaHQgKGMpIEludGVsIENvcnBvcmF0aW9uIDIwMTlcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG4gKiBBdXRob3IgOiBSYW11IEJhY2hhbGFcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5pbXBvcnQgeyBJRGF0YVByb2Nlc3NvciwgSUt2bURhdGFDb21tdW5pY2F0b3IsIElMb2dnZXIsIExvZ0xldmVsLCBEYXRhUHJvY2Vzc29yLCBEZXNrdG9wLCBBTVRLdm1EYXRhUmVkaXJlY3RvciwgQU1URGVza3RvcCwgUHJvdG9jb2wsIENvbnNvbGVMb2dnZXIgfSBmcm9tICdAb3Blbi1hbXQtY2xvdWQtdG9vbGtpdC91aS10b29sa2l0L2NvcmUnXG5pbXBvcnQgeyBNb3VzZUhlbHBlciwgS2V5Qm9hcmRIZWxwZXIgfSBmcm9tICdAb3Blbi1hbXQtY2xvdWQtdG9vbGtpdC91aS10b29sa2l0L2NvcmUnXG5pbXBvcnQgeyBIZWFkZXIgfSBmcm9tICcuL0hlYWRlcidcbmltcG9ydCB7IFB1cmVDYW52YXMgfSBmcm9tICcuL1B1cmVDYW52YXMnXG5pbXBvcnQgeyBpc0ZhbHN5IH0gZnJvbSAnLi4vc2hhcmVkL1V0aWxpdGllcydcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcblxuaW1wb3J0ICcuL1VJLnNjc3MnXG5cbmV4cG9ydCBpbnRlcmZhY2UgS1ZNUHJvcHMge1xuICBkZXZpY2VJZDogc3RyaW5nIHwgbnVsbFxuICBtcHNTZXJ2ZXI6IHN0cmluZyB8IG51bGxcbiAgbW91c2VEZWJvdW5jZVRpbWU6IG51bWJlclxuICBjYW52YXNIZWlnaHQ6IHN0cmluZ1xuICBjYW52YXNXaWR0aDogc3RyaW5nXG4gIGF1dG9Db25uZWN0PzogYm9vbGVhblxuICBhdXRoVG9rZW46IHN0cmluZ1xufVxuXG5leHBvcnQgY2xhc3MgS1ZNIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PEtWTVByb3BzLCB7IGt2bXN0YXRlOiBudW1iZXIsIGVuY29kaW5nT3B0aW9uOiBudW1iZXIgfT4ge1xuICBtb2R1bGU6IERlc2t0b3AgfCBhbnlcbiAgZGF0YVByb2Nlc3NvcjogSURhdGFQcm9jZXNzb3IgfCBhbnlcbiAgcmVkaXJlY3RvcjogSUt2bURhdGFDb21tdW5pY2F0b3IgfCBhbnlcbiAgbW91c2VIZWxwZXI6IE1vdXNlSGVscGVyIHwgYW55XG4gIGxvZ2dlcjogSUxvZ2dlclxuICBrZXlib2FyZDogS2V5Qm9hcmRIZWxwZXIgfCBhbnlcbiAgZGVza3RvcFNldHRpbmdzQ2hhbmdlID0gZmFsc2VcbiAgY3R4OiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRcbiAgZnI6IEZpbGVSZWFkZXJcbiAgY29uc3RydWN0b3IgKHByb3BzOiBLVk1Qcm9wcykge1xuICAgIHN1cGVyKHByb3BzKVxuICAgIHRoaXMuc3RhdGUgPSB7IGt2bXN0YXRlOiAwLCBlbmNvZGluZ09wdGlvbjogMSB9XG4gICAgdGhpcy5sb2dnZXIgPSBuZXcgQ29uc29sZUxvZ2dlcihMb2dMZXZlbC5FUlJPUilcbiAgICB0aGlzLnNhdmVDb250ZXh0ID0gdGhpcy5zYXZlQ29udGV4dC5iaW5kKHRoaXMpXG4gICAgdGhpcy5zdGFydEtWTSA9IHRoaXMuc3RhcnRLVk0uYmluZCh0aGlzKVxuICAgIHRoaXMuc3RvcEtWTSA9IHRoaXMuc3RvcEtWTS5iaW5kKHRoaXMpXG4gICAgdGhpcy5oYW5kbGVDb25uZWN0Q2xpY2sgPSB0aGlzLmhhbmRsZUNvbm5lY3RDbGljay5iaW5kKHRoaXMpXG4gICAgdGhpcy5nZXRSZW5kZXJTdGF0dXMgPSB0aGlzLmdldFJlbmRlclN0YXR1cy5iaW5kKHRoaXMpXG4gICAgdGhpcy5PbkNvbm5lY3Rpb25TdGF0ZUNoYW5nZSA9IHRoaXMuT25Db25uZWN0aW9uU3RhdGVDaGFuZ2UuYmluZCh0aGlzKVxuICAgIHRoaXMuY2hhbmdlRGVza3RvcFNldHRpbmdzID0gdGhpcy5jaGFuZ2VEZXNrdG9wU2V0dGluZ3MuYmluZCh0aGlzKVxuICB9XG5cbiAgc2F2ZUNvbnRleHQgKGN0eDogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKTogdm9pZCB7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ3NhdmUgY29udGV4dCBjYWxsZWQnKVxuICAgIHRoaXMuY3R4ID0gY3R4XG4gICAgdGhpcy5pbml0KClcbiAgfVxuXG4gIGluaXQgKCk6IHZvaWQge1xuICAgIGNvbnN0IGRldmljZVV1aWQ6IHN0cmluZyA9IHRoaXMucHJvcHMuZGV2aWNlSWQgIT0gbnVsbCA/IHRoaXMucHJvcHMuZGV2aWNlSWQgOiAnJ1xuICAgIGNvbnN0IHNlcnZlcjogc3RyaW5nID0gdGhpcy5wcm9wcy5tcHNTZXJ2ZXIgIT0gbnVsbCA/IHRoaXMucHJvcHMubXBzU2VydmVyLnJlcGxhY2UoJ2h0dHAnLCAnd3MnKSA6ICcnXG4gICAgdGhpcy5tb2R1bGUgPSBuZXcgQU1URGVza3RvcCh0aGlzLmxvZ2dlciwgdGhpcy5jdHgpXG4gICAgdGhpcy5yZWRpcmVjdG9yID0gbmV3IEFNVEt2bURhdGFSZWRpcmVjdG9yKHRoaXMubG9nZ2VyLCBQcm90b2NvbC5LVk0sIG5ldyBGaWxlUmVhZGVyKCksIGRldmljZVV1aWQsIDE2OTk0LCAnJywgJycsIDAsIDAsIHRoaXMucHJvcHMuYXV0aFRva2VuLCBzZXJ2ZXIpXG4gICAgdGhpcy5kYXRhUHJvY2Vzc29yID0gbmV3IERhdGFQcm9jZXNzb3IodGhpcy5sb2dnZXIsIHRoaXMucmVkaXJlY3RvciwgdGhpcy5tb2R1bGUpXG4gICAgdGhpcy5tb3VzZUhlbHBlciA9IG5ldyBNb3VzZUhlbHBlcih0aGlzLm1vZHVsZSwgdGhpcy5yZWRpcmVjdG9yLCB0aGlzLnByb3BzLm1vdXNlRGVib3VuY2VUaW1lIDwgMjAwID8gMjAwIDogdGhpcy5wcm9wcy5tb3VzZURlYm91bmNlVGltZSkgLy8gYW55dGhpbmcgbGVzcyB0aGFuIDIwMCBtcyBjYXVzZXMgdGltZW91dFxuICAgIHRoaXMua2V5Ym9hcmQgPSBuZXcgS2V5Qm9hcmRIZWxwZXIodGhpcy5tb2R1bGUsIHRoaXMucmVkaXJlY3RvcilcblxuICAgIHRoaXMucmVkaXJlY3Rvci5vblByb2Nlc3NEYXRhID0gdGhpcy5tb2R1bGUucHJvY2Vzc0RhdGEuYmluZCh0aGlzLm1vZHVsZSlcbiAgICB0aGlzLnJlZGlyZWN0b3Iub25TdGFydCA9IHRoaXMubW9kdWxlLnN0YXJ0LmJpbmQodGhpcy5tb2R1bGUpXG4gICAgdGhpcy5yZWRpcmVjdG9yLm9uTmV3U3RhdGUgPSB0aGlzLm1vZHVsZS5vblN0YXRlQ2hhbmdlLmJpbmQodGhpcy5tb2R1bGUpXG4gICAgdGhpcy5yZWRpcmVjdG9yLm9uU2VuZEt2bURhdGEgPSB0aGlzLm1vZHVsZS5vblNlbmRLdm1EYXRhLmJpbmQodGhpcy5tb2R1bGUpXG4gICAgdGhpcy5yZWRpcmVjdG9yLm9uU3RhdGVDaGFuZ2VkID0gdGhpcy5PbkNvbm5lY3Rpb25TdGF0ZUNoYW5nZS5iaW5kKHRoaXMpXG4gICAgdGhpcy5yZWRpcmVjdG9yLm9uRXJyb3IgPSB0aGlzLm9uUmVkaXJlY3RvckVycm9yLmJpbmQodGhpcylcbiAgICB0aGlzLm1vZHVsZS5vblNlbmQgPSB0aGlzLnJlZGlyZWN0b3Iuc2VuZC5iaW5kKHRoaXMucmVkaXJlY3RvcilcbiAgICB0aGlzLm1vZHVsZS5vblByb2Nlc3NEYXRhID0gdGhpcy5kYXRhUHJvY2Vzc29yLnByb2Nlc3NEYXRhLmJpbmQodGhpcy5kYXRhUHJvY2Vzc29yKVxuICAgIHRoaXMubW9kdWxlLmJwcCA9IHRoaXMuc3RhdGUuZW5jb2RpbmdPcHRpb25cbiAgfVxuXG4gIGNsZWFuVXAgKCk6IHZvaWQge1xuICAgIHRoaXMubW9kdWxlID0gbnVsbFxuICAgIHRoaXMucmVkaXJlY3RvciA9IG51bGxcbiAgICB0aGlzLmRhdGFQcm9jZXNzb3IgPSBudWxsXG4gICAgdGhpcy5tb3VzZUhlbHBlciA9IG51bGxcbiAgICB0aGlzLmtleWJvYXJkID0gbnVsbFxuICAgIHRoaXMuY3R4LmNsZWFyUmVjdCgwLCAwLCB0aGlzLmN0eC5jYW52YXMuaGVpZ2h0LCB0aGlzLmN0eC5jYW52YXMud2lkdGgpXG4gIH1cblxuICBjb21wb25lbnRXaWxsVW5tb3VudCAoKTogdm9pZCB7XG4gICAgdGhpcy5zdG9wS1ZNKClcbiAgfVxuXG4gIG9uUmVkaXJlY3RvckVycm9yICgpOiB2b2lkIHtcbiAgICB0aGlzLnJlc2V0KClcbiAgfVxuXG4gIHJlc2V0ICgpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFuVXAoKVxuICAgIHRoaXMuaW5pdCgpXG4gIH1cblxuICBPbkNvbm5lY3Rpb25TdGF0ZUNoYW5nZSAocmVkaXJlY3RvcjogYW55LCBzdGF0ZTogbnVtYmVyKTogYW55IHtcbiAgICB0aGlzLnNldFN0YXRlKHsga3Ztc3RhdGU6IHN0YXRlIH0pXG4gICAgaWYgKHRoaXMuZGVza3RvcFNldHRpbmdzQ2hhbmdlICYmIHN0YXRlID09PSAwKSB7XG4gICAgICB0aGlzLmRlc2t0b3BTZXR0aW5nc0NoYW5nZSA9IGZhbHNlXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuc3RhcnRLVk0oKSwgMjAwMCkgLy8gSW50cm9kdWNlZCBkZWxheSB0byBzdGFydCBLVk1cbiAgICB9XG4gIH1cblxuICBjaGFuZ2VEZXNrdG9wU2V0dGluZ3MgKHNldHRpbmdzOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZS5rdm1zdGF0ZSA9PT0gMikge1xuICAgICAgdGhpcy5kZXNrdG9wU2V0dGluZ3NDaGFuZ2UgPSB0cnVlXG4gICAgICB0aGlzLm1vZHVsZS5icHAgPSBzZXR0aW5ncy5lbmNvZGluZ1xuICAgICAgdGhpcy5zdG9wS1ZNKClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIGVuY29kaW5nT3B0aW9uOiBwYXJzZUludChzZXR0aW5ncy5lbmNvZGluZylcbiAgICAgIH0pXG4gICAgICB0aGlzLm1vZHVsZS5icHAgPSBwYXJzZUludChzZXR0aW5ncy5lbmNvZGluZylcbiAgICB9XG4gIH1cblxuICBzdGFydEtWTSAoKTogdm9pZCB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLnJlZGlyZWN0b3IgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAvLyBjb25zb2xlLmxvZyhcInN0YXJ0S1ZNXCIpXG4gICAgICB0aGlzLnJlZGlyZWN0b3Iuc3RhcnQoV2ViU29ja2V0KVxuICAgIH1cbiAgICBpZiAodHlwZW9mIHRoaXMua2V5Ym9hcmQgIT09ICd1bmRlZmluZWQnKSB0aGlzLmtleWJvYXJkLkdyYWJLZXlJbnB1dCgpXG4gIH1cblxuICBzdG9wS1ZNICgpOiB2b2lkIHtcbiAgICBpZiAodHlwZW9mIHRoaXMucmVkaXJlY3RvciAhPT0gJ3VuZGVmaW5lZCcpIHRoaXMucmVkaXJlY3Rvci5zdG9wKClcbiAgICBpZiAodHlwZW9mIHRoaXMua2V5Ym9hcmQgIT09ICd1bmRlZmluZWQnKSB0aGlzLmtleWJvYXJkLlVuR3JhYktleUlucHV0KClcbiAgICB0aGlzLnJlc2V0KClcbiAgfVxuXG4gIGdldFJlbmRlclN0YXR1cyAoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5tb2R1bGUuc3RhdGUgLy8gdXNlZCB0byBjaGVjayBpZiBjYW52YXMgaXMgaW4gdGhlIG1pZGRsZSBvZiByZW5kZXJpbmcgYSBjb21wbGV0ZSBmcmFtZS5cbiAgfVxuXG4gIGhhbmRsZUNvbm5lY3RDbGljayAoZSk6IHZvaWQge1xuICAgIGUucGVyc2lzdCgpXG4gICAgaWYgKHRoaXMuc3RhdGUua3Ztc3RhdGUgPT09IDApIHtcbiAgICAgIHRoaXMuc3RhcnRLVk0oKVxuICAgIH0gZWxzZSBpZiAodGhpcy5zdGF0ZS5rdm1zdGF0ZSA9PT0gMSkge1xuICAgICAgLy8gVGFrZSBBY3Rpb25cbiAgICB9IGVsc2UgaWYgKHRoaXMuc3RhdGUua3Ztc3RhdGUgPT09IDIpIHtcbiAgICAgIHRoaXMuc3RvcEtWTSgpXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRha2UgQWN0aW9uXG4gICAgfVxuICB9XG5cbiAgY29tcG9uZW50RGlkVXBkYXRlIChwcmV2UHJvcHMpOiB2b2lkIHtcbiAgICBpZiAocHJldlByb3BzLmRldmljZUlkICE9PSB0aGlzLnByb3BzLmRldmljZUlkKSB7XG4gICAgICB0aGlzLnN0b3BLVk0oKVxuICAgIH1cbiAgfVxuXG4gIHJlbmRlciAoKTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgICByZXR1cm4gKFxuICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2FudmFzLWNvbnRhaW5lclwiPlxuICAgICAgICAgeyFpc0ZhbHN5KHRoaXMucHJvcHMuYXV0b0Nvbm5lY3QpXG4gICAgICAgICAgID8gPEhlYWRlciBrZXk9XCJrdm1faGVhZGVyXCIgaGFuZGxlQ29ubmVjdENsaWNrPXt0aGlzLmhhbmRsZUNvbm5lY3RDbGlja30gZ2V0Q29ubmVjdFN0YXRlPXsoKSA9PiB0aGlzLnN0YXRlLmt2bXN0YXRlfSBrdm1zdGF0ZT17dGhpcy5zdGF0ZS5rdm1zdGF0ZX0gY2hhbmdlRGVza3RvcFNldHRpbmdzPXt0aGlzLmNoYW5nZURlc2t0b3BTZXR0aW5nc30gZGV2aWNlSWQ9e3RoaXMucHJvcHMuZGV2aWNlSWR9IHNlcnZlcj17dGhpcy5wcm9wcy5tcHNTZXJ2ZXJ9XG4gICAgICAgICAvPlxuICAgICAgICAgICA6ICcnfVxuICAgICAgICAgPFB1cmVDYW52YXMga2V5PVwia3ZtX2NvbXBcIiBjb250ZXh0UmVmPXtjdHggPT4gdGhpcy5zYXZlQ29udGV4dChjdHgpfSBjYW52YXNIZWlnaHQ9e3RoaXMucHJvcHMuY2FudmFzSGVpZ2h0fSBjYW52YXNXaWR0aD17dGhpcy5wcm9wcy5jYW52YXNXaWR0aH1cbiAgICAgICAgICAgbW91c2VNb3ZlPXtldmVudCA9PiB7IGlmICh0eXBlb2YgdGhpcy5tb3VzZUhlbHBlciAhPT0gJ3VuZGVmaW5lZCcpIHRoaXMubW91c2VIZWxwZXIubW91c2Vtb3ZlKGV2ZW50KSB9fVxuICAgICAgICAgICBtb3VzZURvd249e2V2ZW50ID0+IHsgaWYgKHR5cGVvZiB0aGlzLm1vdXNlSGVscGVyICE9PSAndW5kZWZpbmVkJykgdGhpcy5tb3VzZUhlbHBlci5tb3VzZWRvd24oZXZlbnQpIH19XG4gICAgICAgICAgIG1vdXNlVXA9e2V2ZW50ID0+IHsgaWYgKHR5cGVvZiB0aGlzLm1vdXNlSGVscGVyICE9PSAndW5kZWZpbmVkJykgdGhpcy5tb3VzZUhlbHBlci5tb3VzZXVwKGV2ZW50KSB9fVxuICAgICAgICAgLz5cbiAgICAgICA8L2Rpdj5cbiAgICApXG4gIH1cbn1cbiIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7XG4gIFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjtcblxuICBpZiAodHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT09IFwic3ltYm9sXCIpIHtcbiAgICBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHtcbiAgICAgIHJldHVybiB0eXBlb2Ygb2JqO1xuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7XG4gICAgICByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajtcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIF90eXBlb2Yob2JqKTtcbn0iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHZhbHVlKSB7XG4gIGlmIChrZXkgaW4gb2JqKSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7XG4gICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgd3JpdGFibGU6IHRydWVcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBvYmpba2V5XSA9IHZhbHVlO1xuICB9XG5cbiAgcmV0dXJuIG9iajtcbn0iLCJpbXBvcnQgZGVmaW5lUHJvcGVydHkgZnJvbSBcIi4vZGVmaW5lUHJvcGVydHkuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9vYmplY3RTcHJlYWQodGFyZ2V0KSB7XG4gIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXSAhPSBudWxsID8gT2JqZWN0KGFyZ3VtZW50c1tpXSkgOiB7fTtcbiAgICB2YXIgb3duS2V5cyA9IE9iamVjdC5rZXlzKHNvdXJjZSk7XG5cbiAgICBpZiAodHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIG93bktleXMgPSBvd25LZXlzLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHNvdXJjZSkuZmlsdGVyKGZ1bmN0aW9uIChzeW0pIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioc291cmNlLCBzeW0pLmVudW1lcmFibGU7XG4gICAgICB9KSk7XG4gICAgfVxuXG4gICAgb3duS2V5cy5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgIGRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBzb3VyY2Vba2V5XSk7XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gdGFyZ2V0O1xufSIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHtcbiAgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpO1xuICB9XG59IiwiZnVuY3Rpb24gX2RlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykge1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTtcbiAgICBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7XG4gICAgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlO1xuICAgIGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9jcmVhdGVDbGFzcyhDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHtcbiAgaWYgKHByb3RvUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7XG4gIGlmIChzdGF0aWNQcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTtcbiAgcmV0dXJuIENvbnN0cnVjdG9yO1xufSIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZikge1xuICBpZiAoc2VsZiA9PT0gdm9pZCAwKSB7XG4gICAgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpO1xuICB9XG5cbiAgcmV0dXJuIHNlbGY7XG59IiwiaW1wb3J0IF90eXBlb2YgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvdHlwZW9mXCI7XG5pbXBvcnQgYXNzZXJ0VGhpc0luaXRpYWxpemVkIGZyb20gXCIuL2Fzc2VydFRoaXNJbml0aWFsaXplZC5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkge1xuICBpZiAoY2FsbCAmJiAoX3R5cGVvZihjYWxsKSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSkge1xuICAgIHJldHVybiBjYWxsO1xuICB9IGVsc2UgaWYgKGNhbGwgIT09IHZvaWQgMCkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZFwiKTtcbiAgfVxuXG4gIHJldHVybiBhc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZik7XG59IiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHtcbiAgX2dldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LmdldFByb3RvdHlwZU9mIDogZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHtcbiAgICByZXR1cm4gby5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKG8pO1xuICB9O1xuICByZXR1cm4gX2dldFByb3RvdHlwZU9mKG8pO1xufSIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7XG4gIF9zZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCBmdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkge1xuICAgIG8uX19wcm90b19fID0gcDtcbiAgICByZXR1cm4gbztcbiAgfTtcblxuICByZXR1cm4gX3NldFByb3RvdHlwZU9mKG8sIHApO1xufSIsImltcG9ydCBzZXRQcm90b3R5cGVPZiBmcm9tIFwiLi9zZXRQcm90b3R5cGVPZi5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7XG4gIGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb25cIik7XG4gIH1cblxuICBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHtcbiAgICBjb25zdHJ1Y3Rvcjoge1xuICAgICAgdmFsdWU6IHN1YkNsYXNzLFxuICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9XG4gIH0pO1xuICBpZiAoc3VwZXJDbGFzcykgc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpO1xufSIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9hcnJheUxpa2VUb0FycmF5KGFyciwgbGVuKSB7XG4gIGlmIChsZW4gPT0gbnVsbCB8fCBsZW4gPiBhcnIubGVuZ3RoKSBsZW4gPSBhcnIubGVuZ3RoO1xuXG4gIGZvciAodmFyIGkgPSAwLCBhcnIyID0gbmV3IEFycmF5KGxlbik7IGkgPCBsZW47IGkrKykge1xuICAgIGFycjJbaV0gPSBhcnJbaV07XG4gIH1cblxuICByZXR1cm4gYXJyMjtcbn0iLCJpbXBvcnQgX3R5cGVvZiBmcm9tICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS90eXBlb2YnO1xuaW1wb3J0IF9vYmplY3RTcHJlYWQgZnJvbSAnQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0U3ByZWFkJztcbmltcG9ydCBfY2xhc3NDYWxsQ2hlY2sgZnJvbSAnQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY2xhc3NDYWxsQ2hlY2snO1xuaW1wb3J0IF9jcmVhdGVDbGFzcyBmcm9tICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jcmVhdGVDbGFzcyc7XG5pbXBvcnQgX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4gZnJvbSAnQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vcG9zc2libGVDb25zdHJ1Y3RvclJldHVybic7XG5pbXBvcnQgX2dldFByb3RvdHlwZU9mIGZyb20gJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2dldFByb3RvdHlwZU9mJztcbmltcG9ydCBfYXNzZXJ0VGhpc0luaXRpYWxpemVkIGZyb20gJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2Fzc2VydFRoaXNJbml0aWFsaXplZCc7XG5pbXBvcnQgX2luaGVyaXRzIGZyb20gJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2luaGVyaXRzJztcbmltcG9ydCBfc2xpY2VkVG9BcnJheSBmcm9tICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9zbGljZWRUb0FycmF5JztcblxudmFyIGNvbnNvbGVMb2dnZXIgPSB7XG4gIHR5cGU6ICdsb2dnZXInLFxuICBsb2c6IGZ1bmN0aW9uIGxvZyhhcmdzKSB7XG4gICAgdGhpcy5vdXRwdXQoJ2xvZycsIGFyZ3MpO1xuICB9LFxuICB3YXJuOiBmdW5jdGlvbiB3YXJuKGFyZ3MpIHtcbiAgICB0aGlzLm91dHB1dCgnd2FybicsIGFyZ3MpO1xuICB9LFxuICBlcnJvcjogZnVuY3Rpb24gZXJyb3IoYXJncykge1xuICAgIHRoaXMub3V0cHV0KCdlcnJvcicsIGFyZ3MpO1xuICB9LFxuICBvdXRwdXQ6IGZ1bmN0aW9uIG91dHB1dCh0eXBlLCBhcmdzKSB7XG4gICAgaWYgKGNvbnNvbGUgJiYgY29uc29sZVt0eXBlXSkgY29uc29sZVt0eXBlXS5hcHBseShjb25zb2xlLCBhcmdzKTtcbiAgfVxufTtcblxudmFyIExvZ2dlciA9IGZ1bmN0aW9uICgpIHtcbiAgZnVuY3Rpb24gTG9nZ2VyKGNvbmNyZXRlTG9nZ2VyKSB7XG4gICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IHt9O1xuXG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIExvZ2dlcik7XG5cbiAgICB0aGlzLmluaXQoY29uY3JldGVMb2dnZXIsIG9wdGlvbnMpO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKExvZ2dlciwgW3tcbiAgICBrZXk6IFwiaW5pdFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBpbml0KGNvbmNyZXRlTG9nZ2VyKSB7XG4gICAgICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDoge307XG4gICAgICB0aGlzLnByZWZpeCA9IG9wdGlvbnMucHJlZml4IHx8ICdpMThuZXh0Oic7XG4gICAgICB0aGlzLmxvZ2dlciA9IGNvbmNyZXRlTG9nZ2VyIHx8IGNvbnNvbGVMb2dnZXI7XG4gICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgICAgdGhpcy5kZWJ1ZyA9IG9wdGlvbnMuZGVidWc7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInNldERlYnVnXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHNldERlYnVnKGJvb2wpIHtcbiAgICAgIHRoaXMuZGVidWcgPSBib29sO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJsb2dcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gbG9nKCkge1xuICAgICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgICAgIGFyZ3NbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzLmZvcndhcmQoYXJncywgJ2xvZycsICcnLCB0cnVlKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwid2FyblwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiB3YXJuKCkge1xuICAgICAgZm9yICh2YXIgX2xlbjIgPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4yKSwgX2tleTIgPSAwOyBfa2V5MiA8IF9sZW4yOyBfa2V5MisrKSB7XG4gICAgICAgIGFyZ3NbX2tleTJdID0gYXJndW1lbnRzW19rZXkyXTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXMuZm9yd2FyZChhcmdzLCAnd2FybicsICcnLCB0cnVlKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZXJyb3JcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZXJyb3IoKSB7XG4gICAgICBmb3IgKHZhciBfbGVuMyA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbjMpLCBfa2V5MyA9IDA7IF9rZXkzIDwgX2xlbjM7IF9rZXkzKyspIHtcbiAgICAgICAgYXJnc1tfa2V5M10gPSBhcmd1bWVudHNbX2tleTNdO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5mb3J3YXJkKGFyZ3MsICdlcnJvcicsICcnKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZGVwcmVjYXRlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGRlcHJlY2F0ZSgpIHtcbiAgICAgIGZvciAodmFyIF9sZW40ID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuNCksIF9rZXk0ID0gMDsgX2tleTQgPCBfbGVuNDsgX2tleTQrKykge1xuICAgICAgICBhcmdzW19rZXk0XSA9IGFyZ3VtZW50c1tfa2V5NF07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzLmZvcndhcmQoYXJncywgJ3dhcm4nLCAnV0FSTklORyBERVBSRUNBVEVEOiAnLCB0cnVlKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZm9yd2FyZFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBmb3J3YXJkKGFyZ3MsIGx2bCwgcHJlZml4LCBkZWJ1Z09ubHkpIHtcbiAgICAgIGlmIChkZWJ1Z09ubHkgJiYgIXRoaXMuZGVidWcpIHJldHVybiBudWxsO1xuICAgICAgaWYgKHR5cGVvZiBhcmdzWzBdID09PSAnc3RyaW5nJykgYXJnc1swXSA9IFwiXCIuY29uY2F0KHByZWZpeCkuY29uY2F0KHRoaXMucHJlZml4LCBcIiBcIikuY29uY2F0KGFyZ3NbMF0pO1xuICAgICAgcmV0dXJuIHRoaXMubG9nZ2VyW2x2bF0oYXJncyk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImNyZWF0ZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjcmVhdGUobW9kdWxlTmFtZSkge1xuICAgICAgcmV0dXJuIG5ldyBMb2dnZXIodGhpcy5sb2dnZXIsIF9vYmplY3RTcHJlYWQoe30sIHtcbiAgICAgICAgcHJlZml4OiBcIlwiLmNvbmNhdCh0aGlzLnByZWZpeCwgXCI6XCIpLmNvbmNhdChtb2R1bGVOYW1lLCBcIjpcIilcbiAgICAgIH0sIHRoaXMub3B0aW9ucykpO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBMb2dnZXI7XG59KCk7XG5cbnZhciBiYXNlTG9nZ2VyID0gbmV3IExvZ2dlcigpO1xuXG52YXIgRXZlbnRFbWl0dGVyID0gZnVuY3Rpb24gKCkge1xuICBmdW5jdGlvbiBFdmVudEVtaXR0ZXIoKSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEV2ZW50RW1pdHRlcik7XG5cbiAgICB0aGlzLm9ic2VydmVycyA9IHt9O1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKEV2ZW50RW1pdHRlciwgW3tcbiAgICBrZXk6IFwib25cIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gb24oZXZlbnRzLCBsaXN0ZW5lcikge1xuICAgICAgdmFyIF90aGlzID0gdGhpcztcblxuICAgICAgZXZlbnRzLnNwbGl0KCcgJykuZm9yRWFjaChmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgX3RoaXMub2JzZXJ2ZXJzW2V2ZW50XSA9IF90aGlzLm9ic2VydmVyc1tldmVudF0gfHwgW107XG5cbiAgICAgICAgX3RoaXMub2JzZXJ2ZXJzW2V2ZW50XS5wdXNoKGxpc3RlbmVyKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcIm9mZlwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBvZmYoZXZlbnQsIGxpc3RlbmVyKSB7XG4gICAgICBpZiAoIXRoaXMub2JzZXJ2ZXJzW2V2ZW50XSkgcmV0dXJuO1xuXG4gICAgICBpZiAoIWxpc3RlbmVyKSB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLm9ic2VydmVyc1tldmVudF07XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5vYnNlcnZlcnNbZXZlbnRdID0gdGhpcy5vYnNlcnZlcnNbZXZlbnRdLmZpbHRlcihmdW5jdGlvbiAobCkge1xuICAgICAgICByZXR1cm4gbCAhPT0gbGlzdGVuZXI7XG4gICAgICB9KTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZW1pdFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBlbWl0KGV2ZW50KSB7XG4gICAgICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuID4gMSA/IF9sZW4gLSAxIDogMCksIF9rZXkgPSAxOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgICAgIGFyZ3NbX2tleSAtIDFdID0gYXJndW1lbnRzW19rZXldO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5vYnNlcnZlcnNbZXZlbnRdKSB7XG4gICAgICAgIHZhciBjbG9uZWQgPSBbXS5jb25jYXQodGhpcy5vYnNlcnZlcnNbZXZlbnRdKTtcbiAgICAgICAgY2xvbmVkLmZvckVhY2goZnVuY3Rpb24gKG9ic2VydmVyKSB7XG4gICAgICAgICAgb2JzZXJ2ZXIuYXBwbHkodm9pZCAwLCBhcmdzKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLm9ic2VydmVyc1snKiddKSB7XG4gICAgICAgIHZhciBfY2xvbmVkID0gW10uY29uY2F0KHRoaXMub2JzZXJ2ZXJzWycqJ10pO1xuXG4gICAgICAgIF9jbG9uZWQuZm9yRWFjaChmdW5jdGlvbiAob2JzZXJ2ZXIpIHtcbiAgICAgICAgICBvYnNlcnZlci5hcHBseShvYnNlcnZlciwgW2V2ZW50XS5jb25jYXQoYXJncykpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gRXZlbnRFbWl0dGVyO1xufSgpO1xuXG5mdW5jdGlvbiBkZWZlcigpIHtcbiAgdmFyIHJlcztcbiAgdmFyIHJlajtcbiAgdmFyIHByb21pc2UgPSBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgcmVzID0gcmVzb2x2ZTtcbiAgICByZWogPSByZWplY3Q7XG4gIH0pO1xuICBwcm9taXNlLnJlc29sdmUgPSByZXM7XG4gIHByb21pc2UucmVqZWN0ID0gcmVqO1xuICByZXR1cm4gcHJvbWlzZTtcbn1cbmZ1bmN0aW9uIG1ha2VTdHJpbmcob2JqZWN0KSB7XG4gIGlmIChvYmplY3QgPT0gbnVsbCkgcmV0dXJuICcnO1xuICByZXR1cm4gJycgKyBvYmplY3Q7XG59XG5mdW5jdGlvbiBjb3B5KGEsIHMsIHQpIHtcbiAgYS5mb3JFYWNoKGZ1bmN0aW9uIChtKSB7XG4gICAgaWYgKHNbbV0pIHRbbV0gPSBzW21dO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gZ2V0TGFzdE9mUGF0aChvYmplY3QsIHBhdGgsIEVtcHR5KSB7XG4gIGZ1bmN0aW9uIGNsZWFuS2V5KGtleSkge1xuICAgIHJldHVybiBrZXkgJiYga2V5LmluZGV4T2YoJyMjIycpID4gLTEgPyBrZXkucmVwbGFjZSgvIyMjL2csICcuJykgOiBrZXk7XG4gIH1cblxuICBmdW5jdGlvbiBjYW5Ob3RUcmF2ZXJzZURlZXBlcigpIHtcbiAgICByZXR1cm4gIW9iamVjdCB8fCB0eXBlb2Ygb2JqZWN0ID09PSAnc3RyaW5nJztcbiAgfVxuXG4gIHZhciBzdGFjayA9IHR5cGVvZiBwYXRoICE9PSAnc3RyaW5nJyA/IFtdLmNvbmNhdChwYXRoKSA6IHBhdGguc3BsaXQoJy4nKTtcblxuICB3aGlsZSAoc3RhY2subGVuZ3RoID4gMSkge1xuICAgIGlmIChjYW5Ob3RUcmF2ZXJzZURlZXBlcigpKSByZXR1cm4ge307XG4gICAgdmFyIGtleSA9IGNsZWFuS2V5KHN0YWNrLnNoaWZ0KCkpO1xuICAgIGlmICghb2JqZWN0W2tleV0gJiYgRW1wdHkpIG9iamVjdFtrZXldID0gbmV3IEVtcHR5KCk7XG5cbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwga2V5KSkge1xuICAgICAgb2JqZWN0ID0gb2JqZWN0W2tleV07XG4gICAgfSBlbHNlIHtcbiAgICAgIG9iamVjdCA9IHt9O1xuICAgIH1cbiAgfVxuXG4gIGlmIChjYW5Ob3RUcmF2ZXJzZURlZXBlcigpKSByZXR1cm4ge307XG4gIHJldHVybiB7XG4gICAgb2JqOiBvYmplY3QsXG4gICAgazogY2xlYW5LZXkoc3RhY2suc2hpZnQoKSlcbiAgfTtcbn1cblxuZnVuY3Rpb24gc2V0UGF0aChvYmplY3QsIHBhdGgsIG5ld1ZhbHVlKSB7XG4gIHZhciBfZ2V0TGFzdE9mUGF0aCA9IGdldExhc3RPZlBhdGgob2JqZWN0LCBwYXRoLCBPYmplY3QpLFxuICAgICAgb2JqID0gX2dldExhc3RPZlBhdGgub2JqLFxuICAgICAgayA9IF9nZXRMYXN0T2ZQYXRoLms7XG5cbiAgb2JqW2tdID0gbmV3VmFsdWU7XG59XG5mdW5jdGlvbiBwdXNoUGF0aChvYmplY3QsIHBhdGgsIG5ld1ZhbHVlLCBjb25jYXQpIHtcbiAgdmFyIF9nZXRMYXN0T2ZQYXRoMiA9IGdldExhc3RPZlBhdGgob2JqZWN0LCBwYXRoLCBPYmplY3QpLFxuICAgICAgb2JqID0gX2dldExhc3RPZlBhdGgyLm9iaixcbiAgICAgIGsgPSBfZ2V0TGFzdE9mUGF0aDIuaztcblxuICBvYmpba10gPSBvYmpba10gfHwgW107XG4gIGlmIChjb25jYXQpIG9ialtrXSA9IG9ialtrXS5jb25jYXQobmV3VmFsdWUpO1xuICBpZiAoIWNvbmNhdCkgb2JqW2tdLnB1c2gobmV3VmFsdWUpO1xufVxuZnVuY3Rpb24gZ2V0UGF0aChvYmplY3QsIHBhdGgpIHtcbiAgdmFyIF9nZXRMYXN0T2ZQYXRoMyA9IGdldExhc3RPZlBhdGgob2JqZWN0LCBwYXRoKSxcbiAgICAgIG9iaiA9IF9nZXRMYXN0T2ZQYXRoMy5vYmosXG4gICAgICBrID0gX2dldExhc3RPZlBhdGgzLms7XG5cbiAgaWYgKCFvYmopIHJldHVybiB1bmRlZmluZWQ7XG4gIHJldHVybiBvYmpba107XG59XG5mdW5jdGlvbiBnZXRQYXRoV2l0aERlZmF1bHRzKGRhdGEsIGRlZmF1bHREYXRhLCBrZXkpIHtcbiAgdmFyIHZhbHVlID0gZ2V0UGF0aChkYXRhLCBrZXkpO1xuXG4gIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgcmV0dXJuIGdldFBhdGgoZGVmYXVsdERhdGEsIGtleSk7XG59XG5mdW5jdGlvbiBkZWVwRXh0ZW5kKHRhcmdldCwgc291cmNlLCBvdmVyd3JpdGUpIHtcbiAgZm9yICh2YXIgcHJvcCBpbiBzb3VyY2UpIHtcbiAgICBpZiAocHJvcCAhPT0gJ19fcHJvdG9fXycgJiYgcHJvcCAhPT0gJ2NvbnN0cnVjdG9yJykge1xuICAgICAgaWYgKHByb3AgaW4gdGFyZ2V0KSB7XG4gICAgICAgIGlmICh0eXBlb2YgdGFyZ2V0W3Byb3BdID09PSAnc3RyaW5nJyB8fCB0YXJnZXRbcHJvcF0gaW5zdGFuY2VvZiBTdHJpbmcgfHwgdHlwZW9mIHNvdXJjZVtwcm9wXSA9PT0gJ3N0cmluZycgfHwgc291cmNlW3Byb3BdIGluc3RhbmNlb2YgU3RyaW5nKSB7XG4gICAgICAgICAgaWYgKG92ZXJ3cml0ZSkgdGFyZ2V0W3Byb3BdID0gc291cmNlW3Byb3BdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGRlZXBFeHRlbmQodGFyZ2V0W3Byb3BdLCBzb3VyY2VbcHJvcF0sIG92ZXJ3cml0ZSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRhcmdldFtwcm9wXSA9IHNvdXJjZVtwcm9wXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGFyZ2V0O1xufVxuZnVuY3Rpb24gcmVnZXhFc2NhcGUoc3RyKSB7XG4gIHJldHVybiBzdHIucmVwbGFjZSgvW1xcLVxcW1xcXVxcL1xce1xcfVxcKFxcKVxcKlxcK1xcP1xcLlxcXFxcXF5cXCRcXHxdL2csICdcXFxcJCYnKTtcbn1cbnZhciBfZW50aXR5TWFwID0ge1xuICAnJic6ICcmYW1wOycsXG4gICc8JzogJyZsdDsnLFxuICAnPic6ICcmZ3Q7JyxcbiAgJ1wiJzogJyZxdW90OycsXG4gIFwiJ1wiOiAnJiMzOTsnLFxuICAnLyc6ICcmI3gyRjsnXG59O1xuZnVuY3Rpb24gZXNjYXBlKGRhdGEpIHtcbiAgaWYgKHR5cGVvZiBkYXRhID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBkYXRhLnJlcGxhY2UoL1smPD5cIidcXC9dL2csIGZ1bmN0aW9uIChzKSB7XG4gICAgICByZXR1cm4gX2VudGl0eU1hcFtzXTtcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBkYXRhO1xufVxudmFyIGlzSUUxMCA9IHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5uYXZpZ2F0b3IgJiYgd2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQgJiYgd2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZignTVNJRScpID4gLTE7XG52YXIgY2hhcnMgPSBbJyAnLCAnLCcsICc/JywgJyEnLCAnOyddO1xuZnVuY3Rpb24gbG9va3NMaWtlT2JqZWN0UGF0aChrZXksIG5zU2VwYXJhdG9yLCBrZXlTZXBhcmF0b3IpIHtcbiAgbnNTZXBhcmF0b3IgPSBuc1NlcGFyYXRvciB8fCAnJztcbiAga2V5U2VwYXJhdG9yID0ga2V5U2VwYXJhdG9yIHx8ICcnO1xuICB2YXIgcG9zc2libGVDaGFycyA9IGNoYXJzLmZpbHRlcihmdW5jdGlvbiAoYykge1xuICAgIHJldHVybiBuc1NlcGFyYXRvci5pbmRleE9mKGMpIDwgMCAmJiBrZXlTZXBhcmF0b3IuaW5kZXhPZihjKSA8IDA7XG4gIH0pO1xuICBpZiAocG9zc2libGVDaGFycy5sZW5ndGggPT09IDApIHJldHVybiB0cnVlO1xuICB2YXIgciA9IG5ldyBSZWdFeHAoXCIoXCIuY29uY2F0KHBvc3NpYmxlQ2hhcnMubWFwKGZ1bmN0aW9uIChjKSB7XG4gICAgcmV0dXJuIGMgPT09ICc/JyA/ICdcXFxcPycgOiBjO1xuICB9KS5qb2luKCd8JyksIFwiKVwiKSk7XG4gIHZhciBtYXRjaGVkID0gIXIudGVzdChrZXkpO1xuXG4gIGlmICghbWF0Y2hlZCkge1xuICAgIHZhciBraSA9IGtleS5pbmRleE9mKGtleVNlcGFyYXRvcik7XG5cbiAgICBpZiAoa2kgPiAwICYmICFyLnRlc3Qoa2V5LnN1YnN0cmluZygwLCBraSkpKSB7XG4gICAgICBtYXRjaGVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbWF0Y2hlZDtcbn1cblxuZnVuY3Rpb24gZGVlcEZpbmQob2JqLCBwYXRoKSB7XG4gIHZhciBrZXlTZXBhcmF0b3IgPSBhcmd1bWVudHMubGVuZ3RoID4gMiAmJiBhcmd1bWVudHNbMl0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1syXSA6ICcuJztcbiAgaWYgKCFvYmopIHJldHVybiB1bmRlZmluZWQ7XG4gIGlmIChvYmpbcGF0aF0pIHJldHVybiBvYmpbcGF0aF07XG4gIHZhciBwYXRocyA9IHBhdGguc3BsaXQoa2V5U2VwYXJhdG9yKTtcbiAgdmFyIGN1cnJlbnQgPSBvYmo7XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYXRocy5sZW5ndGg7ICsraSkge1xuICAgIGlmICghY3VycmVudCkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgIGlmICh0eXBlb2YgY3VycmVudFtwYXRoc1tpXV0gPT09ICdzdHJpbmcnICYmIGkgKyAxIDwgcGF0aHMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGlmIChjdXJyZW50W3BhdGhzW2ldXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB2YXIgaiA9IDI7XG4gICAgICB2YXIgcCA9IHBhdGhzLnNsaWNlKGksIGkgKyBqKS5qb2luKGtleVNlcGFyYXRvcik7XG4gICAgICB2YXIgbWl4ID0gY3VycmVudFtwXTtcblxuICAgICAgd2hpbGUgKG1peCA9PT0gdW5kZWZpbmVkICYmIHBhdGhzLmxlbmd0aCA+IGkgKyBqKSB7XG4gICAgICAgIGorKztcbiAgICAgICAgcCA9IHBhdGhzLnNsaWNlKGksIGkgKyBqKS5qb2luKGtleVNlcGFyYXRvcik7XG4gICAgICAgIG1peCA9IGN1cnJlbnRbcF07XG4gICAgICB9XG5cbiAgICAgIGlmIChtaXggPT09IHVuZGVmaW5lZCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIGlmICh0eXBlb2YgbWl4ID09PSAnc3RyaW5nJykgcmV0dXJuIG1peDtcbiAgICAgIGlmIChwICYmIHR5cGVvZiBtaXhbcF0gPT09ICdzdHJpbmcnKSByZXR1cm4gbWl4W3BdO1xuICAgICAgdmFyIGpvaW5lZFBhdGggPSBwYXRocy5zbGljZShpICsgaikuam9pbihrZXlTZXBhcmF0b3IpO1xuICAgICAgaWYgKGpvaW5lZFBhdGgpIHJldHVybiBkZWVwRmluZChtaXgsIGpvaW5lZFBhdGgsIGtleVNlcGFyYXRvcik7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGN1cnJlbnQgPSBjdXJyZW50W3BhdGhzW2ldXTtcbiAgfVxuXG4gIHJldHVybiBjdXJyZW50O1xufVxuXG52YXIgUmVzb3VyY2VTdG9yZSA9IGZ1bmN0aW9uIChfRXZlbnRFbWl0dGVyKSB7XG4gIF9pbmhlcml0cyhSZXNvdXJjZVN0b3JlLCBfRXZlbnRFbWl0dGVyKTtcblxuICBmdW5jdGlvbiBSZXNvdXJjZVN0b3JlKGRhdGEpIHtcbiAgICB2YXIgX3RoaXM7XG5cbiAgICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDoge1xuICAgICAgbnM6IFsndHJhbnNsYXRpb24nXSxcbiAgICAgIGRlZmF1bHROUzogJ3RyYW5zbGF0aW9uJ1xuICAgIH07XG5cbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzb3VyY2VTdG9yZSk7XG5cbiAgICBfdGhpcyA9IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIF9nZXRQcm90b3R5cGVPZihSZXNvdXJjZVN0b3JlKS5jYWxsKHRoaXMpKTtcblxuICAgIGlmIChpc0lFMTApIHtcbiAgICAgIEV2ZW50RW1pdHRlci5jYWxsKF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpKTtcbiAgICB9XG5cbiAgICBfdGhpcy5kYXRhID0gZGF0YSB8fCB7fTtcbiAgICBfdGhpcy5vcHRpb25zID0gb3B0aW9ucztcblxuICAgIGlmIChfdGhpcy5vcHRpb25zLmtleVNlcGFyYXRvciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBfdGhpcy5vcHRpb25zLmtleVNlcGFyYXRvciA9ICcuJztcbiAgICB9XG5cbiAgICBpZiAoX3RoaXMub3B0aW9ucy5pZ25vcmVKU09OU3RydWN0dXJlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIF90aGlzLm9wdGlvbnMuaWdub3JlSlNPTlN0cnVjdHVyZSA9IHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIF90aGlzO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKFJlc291cmNlU3RvcmUsIFt7XG4gICAga2V5OiBcImFkZE5hbWVzcGFjZXNcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gYWRkTmFtZXNwYWNlcyhucykge1xuICAgICAgaWYgKHRoaXMub3B0aW9ucy5ucy5pbmRleE9mKG5zKSA8IDApIHtcbiAgICAgICAgdGhpcy5vcHRpb25zLm5zLnB1c2gobnMpO1xuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJyZW1vdmVOYW1lc3BhY2VzXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbW92ZU5hbWVzcGFjZXMobnMpIHtcbiAgICAgIHZhciBpbmRleCA9IHRoaXMub3B0aW9ucy5ucy5pbmRleE9mKG5zKTtcblxuICAgICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgICAgdGhpcy5vcHRpb25zLm5zLnNwbGljZShpbmRleCwgMSk7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImdldFJlc291cmNlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldFJlc291cmNlKGxuZywgbnMsIGtleSkge1xuICAgICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMyAmJiBhcmd1bWVudHNbM10gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1szXSA6IHt9O1xuICAgICAgdmFyIGtleVNlcGFyYXRvciA9IG9wdGlvbnMua2V5U2VwYXJhdG9yICE9PSB1bmRlZmluZWQgPyBvcHRpb25zLmtleVNlcGFyYXRvciA6IHRoaXMub3B0aW9ucy5rZXlTZXBhcmF0b3I7XG4gICAgICB2YXIgaWdub3JlSlNPTlN0cnVjdHVyZSA9IG9wdGlvbnMuaWdub3JlSlNPTlN0cnVjdHVyZSAhPT0gdW5kZWZpbmVkID8gb3B0aW9ucy5pZ25vcmVKU09OU3RydWN0dXJlIDogdGhpcy5vcHRpb25zLmlnbm9yZUpTT05TdHJ1Y3R1cmU7XG4gICAgICB2YXIgcGF0aCA9IFtsbmcsIG5zXTtcbiAgICAgIGlmIChrZXkgJiYgdHlwZW9mIGtleSAhPT0gJ3N0cmluZycpIHBhdGggPSBwYXRoLmNvbmNhdChrZXkpO1xuICAgICAgaWYgKGtleSAmJiB0eXBlb2Yga2V5ID09PSAnc3RyaW5nJykgcGF0aCA9IHBhdGguY29uY2F0KGtleVNlcGFyYXRvciA/IGtleS5zcGxpdChrZXlTZXBhcmF0b3IpIDoga2V5KTtcblxuICAgICAgaWYgKGxuZy5pbmRleE9mKCcuJykgPiAtMSkge1xuICAgICAgICBwYXRoID0gbG5nLnNwbGl0KCcuJyk7XG4gICAgICB9XG5cbiAgICAgIHZhciByZXN1bHQgPSBnZXRQYXRoKHRoaXMuZGF0YSwgcGF0aCk7XG4gICAgICBpZiAocmVzdWx0IHx8ICFpZ25vcmVKU09OU3RydWN0dXJlIHx8IHR5cGVvZiBrZXkgIT09ICdzdHJpbmcnKSByZXR1cm4gcmVzdWx0O1xuICAgICAgcmV0dXJuIGRlZXBGaW5kKHRoaXMuZGF0YSAmJiB0aGlzLmRhdGFbbG5nXSAmJiB0aGlzLmRhdGFbbG5nXVtuc10sIGtleSwga2V5U2VwYXJhdG9yKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiYWRkUmVzb3VyY2VcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gYWRkUmVzb3VyY2UobG5nLCBucywga2V5LCB2YWx1ZSkge1xuICAgICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gNCAmJiBhcmd1bWVudHNbNF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s0XSA6IHtcbiAgICAgICAgc2lsZW50OiBmYWxzZVxuICAgICAgfTtcbiAgICAgIHZhciBrZXlTZXBhcmF0b3IgPSB0aGlzLm9wdGlvbnMua2V5U2VwYXJhdG9yO1xuICAgICAgaWYgKGtleVNlcGFyYXRvciA9PT0gdW5kZWZpbmVkKSBrZXlTZXBhcmF0b3IgPSAnLic7XG4gICAgICB2YXIgcGF0aCA9IFtsbmcsIG5zXTtcbiAgICAgIGlmIChrZXkpIHBhdGggPSBwYXRoLmNvbmNhdChrZXlTZXBhcmF0b3IgPyBrZXkuc3BsaXQoa2V5U2VwYXJhdG9yKSA6IGtleSk7XG5cbiAgICAgIGlmIChsbmcuaW5kZXhPZignLicpID4gLTEpIHtcbiAgICAgICAgcGF0aCA9IGxuZy5zcGxpdCgnLicpO1xuICAgICAgICB2YWx1ZSA9IG5zO1xuICAgICAgICBucyA9IHBhdGhbMV07XG4gICAgICB9XG5cbiAgICAgIHRoaXMuYWRkTmFtZXNwYWNlcyhucyk7XG4gICAgICBzZXRQYXRoKHRoaXMuZGF0YSwgcGF0aCwgdmFsdWUpO1xuICAgICAgaWYgKCFvcHRpb25zLnNpbGVudCkgdGhpcy5lbWl0KCdhZGRlZCcsIGxuZywgbnMsIGtleSwgdmFsdWUpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJhZGRSZXNvdXJjZXNcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gYWRkUmVzb3VyY2VzKGxuZywgbnMsIHJlc291cmNlcykge1xuICAgICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMyAmJiBhcmd1bWVudHNbM10gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1szXSA6IHtcbiAgICAgICAgc2lsZW50OiBmYWxzZVxuICAgICAgfTtcblxuICAgICAgZm9yICh2YXIgbSBpbiByZXNvdXJjZXMpIHtcbiAgICAgICAgaWYgKHR5cGVvZiByZXNvdXJjZXNbbV0gPT09ICdzdHJpbmcnIHx8IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuYXBwbHkocmVzb3VyY2VzW21dKSA9PT0gJ1tvYmplY3QgQXJyYXldJykgdGhpcy5hZGRSZXNvdXJjZShsbmcsIG5zLCBtLCByZXNvdXJjZXNbbV0sIHtcbiAgICAgICAgICBzaWxlbnQ6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmICghb3B0aW9ucy5zaWxlbnQpIHRoaXMuZW1pdCgnYWRkZWQnLCBsbmcsIG5zLCByZXNvdXJjZXMpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJhZGRSZXNvdXJjZUJ1bmRsZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBhZGRSZXNvdXJjZUJ1bmRsZShsbmcsIG5zLCByZXNvdXJjZXMsIGRlZXAsIG92ZXJ3cml0ZSkge1xuICAgICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gNSAmJiBhcmd1bWVudHNbNV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s1XSA6IHtcbiAgICAgICAgc2lsZW50OiBmYWxzZVxuICAgICAgfTtcbiAgICAgIHZhciBwYXRoID0gW2xuZywgbnNdO1xuXG4gICAgICBpZiAobG5nLmluZGV4T2YoJy4nKSA+IC0xKSB7XG4gICAgICAgIHBhdGggPSBsbmcuc3BsaXQoJy4nKTtcbiAgICAgICAgZGVlcCA9IHJlc291cmNlcztcbiAgICAgICAgcmVzb3VyY2VzID0gbnM7XG4gICAgICAgIG5zID0gcGF0aFsxXTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5hZGROYW1lc3BhY2VzKG5zKTtcbiAgICAgIHZhciBwYWNrID0gZ2V0UGF0aCh0aGlzLmRhdGEsIHBhdGgpIHx8IHt9O1xuXG4gICAgICBpZiAoZGVlcCkge1xuICAgICAgICBkZWVwRXh0ZW5kKHBhY2ssIHJlc291cmNlcywgb3ZlcndyaXRlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBhY2sgPSBfb2JqZWN0U3ByZWFkKHt9LCBwYWNrLCByZXNvdXJjZXMpO1xuICAgICAgfVxuXG4gICAgICBzZXRQYXRoKHRoaXMuZGF0YSwgcGF0aCwgcGFjayk7XG4gICAgICBpZiAoIW9wdGlvbnMuc2lsZW50KSB0aGlzLmVtaXQoJ2FkZGVkJywgbG5nLCBucywgcmVzb3VyY2VzKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVtb3ZlUmVzb3VyY2VCdW5kbGVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVtb3ZlUmVzb3VyY2VCdW5kbGUobG5nLCBucykge1xuICAgICAgaWYgKHRoaXMuaGFzUmVzb3VyY2VCdW5kbGUobG5nLCBucykpIHtcbiAgICAgICAgZGVsZXRlIHRoaXMuZGF0YVtsbmddW25zXTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5yZW1vdmVOYW1lc3BhY2VzKG5zKTtcbiAgICAgIHRoaXMuZW1pdCgncmVtb3ZlZCcsIGxuZywgbnMpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJoYXNSZXNvdXJjZUJ1bmRsZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBoYXNSZXNvdXJjZUJ1bmRsZShsbmcsIG5zKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRSZXNvdXJjZShsbmcsIG5zKSAhPT0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJnZXRSZXNvdXJjZUJ1bmRsZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRSZXNvdXJjZUJ1bmRsZShsbmcsIG5zKSB7XG4gICAgICBpZiAoIW5zKSBucyA9IHRoaXMub3B0aW9ucy5kZWZhdWx0TlM7XG4gICAgICBpZiAodGhpcy5vcHRpb25zLmNvbXBhdGliaWxpdHlBUEkgPT09ICd2MScpIHJldHVybiBfb2JqZWN0U3ByZWFkKHt9LCB7fSwgdGhpcy5nZXRSZXNvdXJjZShsbmcsIG5zKSk7XG4gICAgICByZXR1cm4gdGhpcy5nZXRSZXNvdXJjZShsbmcsIG5zKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZ2V0RGF0YUJ5TGFuZ3VhZ2VcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0RGF0YUJ5TGFuZ3VhZ2UobG5nKSB7XG4gICAgICByZXR1cm4gdGhpcy5kYXRhW2xuZ107XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImhhc0xhbmd1YWdlU29tZVRyYW5zbGF0aW9uc1wiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBoYXNMYW5ndWFnZVNvbWVUcmFuc2xhdGlvbnMobG5nKSB7XG4gICAgICB2YXIgZGF0YSA9IHRoaXMuZ2V0RGF0YUJ5TGFuZ3VhZ2UobG5nKTtcbiAgICAgIHZhciBuID0gZGF0YSAmJiBPYmplY3Qua2V5cyhkYXRhKSB8fCBbXTtcbiAgICAgIHJldHVybiAhIW4uZmluZChmdW5jdGlvbiAodikge1xuICAgICAgICByZXR1cm4gZGF0YVt2XSAmJiBPYmplY3Qua2V5cyhkYXRhW3ZdKS5sZW5ndGggPiAwO1xuICAgICAgfSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInRvSlNPTlwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiB0b0pTT04oKSB7XG4gICAgICByZXR1cm4gdGhpcy5kYXRhO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBSZXNvdXJjZVN0b3JlO1xufShFdmVudEVtaXR0ZXIpO1xuXG52YXIgcG9zdFByb2Nlc3NvciA9IHtcbiAgcHJvY2Vzc29yczoge30sXG4gIGFkZFBvc3RQcm9jZXNzb3I6IGZ1bmN0aW9uIGFkZFBvc3RQcm9jZXNzb3IobW9kdWxlKSB7XG4gICAgdGhpcy5wcm9jZXNzb3JzW21vZHVsZS5uYW1lXSA9IG1vZHVsZTtcbiAgfSxcbiAgaGFuZGxlOiBmdW5jdGlvbiBoYW5kbGUocHJvY2Vzc29ycywgdmFsdWUsIGtleSwgb3B0aW9ucywgdHJhbnNsYXRvcikge1xuICAgIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgICBwcm9jZXNzb3JzLmZvckVhY2goZnVuY3Rpb24gKHByb2Nlc3Nvcikge1xuICAgICAgaWYgKF90aGlzLnByb2Nlc3NvcnNbcHJvY2Vzc29yXSkgdmFsdWUgPSBfdGhpcy5wcm9jZXNzb3JzW3Byb2Nlc3Nvcl0ucHJvY2Vzcyh2YWx1ZSwga2V5LCBvcHRpb25zLCB0cmFuc2xhdG9yKTtcbiAgICB9KTtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbn07XG5cbnZhciBjaGVja2VkTG9hZGVkRm9yID0ge307XG5cbnZhciBUcmFuc2xhdG9yID0gZnVuY3Rpb24gKF9FdmVudEVtaXR0ZXIpIHtcbiAgX2luaGVyaXRzKFRyYW5zbGF0b3IsIF9FdmVudEVtaXR0ZXIpO1xuXG4gIGZ1bmN0aW9uIFRyYW5zbGF0b3Ioc2VydmljZXMpIHtcbiAgICB2YXIgX3RoaXM7XG5cbiAgICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDoge307XG5cbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgVHJhbnNsYXRvcik7XG5cbiAgICBfdGhpcyA9IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIF9nZXRQcm90b3R5cGVPZihUcmFuc2xhdG9yKS5jYWxsKHRoaXMpKTtcblxuICAgIGlmIChpc0lFMTApIHtcbiAgICAgIEV2ZW50RW1pdHRlci5jYWxsKF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpKTtcbiAgICB9XG5cbiAgICBjb3B5KFsncmVzb3VyY2VTdG9yZScsICdsYW5ndWFnZVV0aWxzJywgJ3BsdXJhbFJlc29sdmVyJywgJ2ludGVycG9sYXRvcicsICdiYWNrZW5kQ29ubmVjdG9yJywgJ2kxOG5Gb3JtYXQnLCAndXRpbHMnXSwgc2VydmljZXMsIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpKTtcbiAgICBfdGhpcy5vcHRpb25zID0gb3B0aW9ucztcblxuICAgIGlmIChfdGhpcy5vcHRpb25zLmtleVNlcGFyYXRvciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBfdGhpcy5vcHRpb25zLmtleVNlcGFyYXRvciA9ICcuJztcbiAgICB9XG5cbiAgICBfdGhpcy5sb2dnZXIgPSBiYXNlTG9nZ2VyLmNyZWF0ZSgndHJhbnNsYXRvcicpO1xuICAgIHJldHVybiBfdGhpcztcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhUcmFuc2xhdG9yLCBbe1xuICAgIGtleTogXCJjaGFuZ2VMYW5ndWFnZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjaGFuZ2VMYW5ndWFnZShsbmcpIHtcbiAgICAgIGlmIChsbmcpIHRoaXMubGFuZ3VhZ2UgPSBsbmc7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImV4aXN0c1wiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBleGlzdHMoa2V5KSB7XG4gICAgICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDoge1xuICAgICAgICBpbnRlcnBvbGF0aW9uOiB7fVxuICAgICAgfTtcblxuICAgICAgaWYgKGtleSA9PT0gdW5kZWZpbmVkIHx8IGtleSA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIHZhciByZXNvbHZlZCA9IHRoaXMucmVzb2x2ZShrZXksIG9wdGlvbnMpO1xuICAgICAgcmV0dXJuIHJlc29sdmVkICYmIHJlc29sdmVkLnJlcyAhPT0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJleHRyYWN0RnJvbUtleVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBleHRyYWN0RnJvbUtleShrZXksIG9wdGlvbnMpIHtcbiAgICAgIHZhciBuc1NlcGFyYXRvciA9IG9wdGlvbnMubnNTZXBhcmF0b3IgIT09IHVuZGVmaW5lZCA/IG9wdGlvbnMubnNTZXBhcmF0b3IgOiB0aGlzLm9wdGlvbnMubnNTZXBhcmF0b3I7XG4gICAgICBpZiAobnNTZXBhcmF0b3IgPT09IHVuZGVmaW5lZCkgbnNTZXBhcmF0b3IgPSAnOic7XG4gICAgICB2YXIga2V5U2VwYXJhdG9yID0gb3B0aW9ucy5rZXlTZXBhcmF0b3IgIT09IHVuZGVmaW5lZCA/IG9wdGlvbnMua2V5U2VwYXJhdG9yIDogdGhpcy5vcHRpb25zLmtleVNlcGFyYXRvcjtcbiAgICAgIHZhciBuYW1lc3BhY2VzID0gb3B0aW9ucy5ucyB8fCB0aGlzLm9wdGlvbnMuZGVmYXVsdE5TO1xuICAgICAgdmFyIHdvdWxkQ2hlY2tGb3JOc0luS2V5ID0gbnNTZXBhcmF0b3IgJiYga2V5LmluZGV4T2YobnNTZXBhcmF0b3IpID4gLTE7XG4gICAgICB2YXIgc2VlbXNOYXR1cmFsTGFuZ3VhZ2UgPSAhdGhpcy5vcHRpb25zLnVzZXJEZWZpbmVkS2V5U2VwYXJhdG9yICYmICFvcHRpb25zLmtleVNlcGFyYXRvciAmJiAhdGhpcy5vcHRpb25zLnVzZXJEZWZpbmVkTnNTZXBhcmF0b3IgJiYgIW9wdGlvbnMubnNTZXBhcmF0b3IgJiYgIWxvb2tzTGlrZU9iamVjdFBhdGgoa2V5LCBuc1NlcGFyYXRvciwga2V5U2VwYXJhdG9yKTtcblxuICAgICAgaWYgKHdvdWxkQ2hlY2tGb3JOc0luS2V5ICYmICFzZWVtc05hdHVyYWxMYW5ndWFnZSkge1xuICAgICAgICB2YXIgbSA9IGtleS5tYXRjaCh0aGlzLmludGVycG9sYXRvci5uZXN0aW5nUmVnZXhwKTtcblxuICAgICAgICBpZiAobSAmJiBtLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAga2V5OiBrZXksXG4gICAgICAgICAgICBuYW1lc3BhY2VzOiBuYW1lc3BhY2VzXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBwYXJ0cyA9IGtleS5zcGxpdChuc1NlcGFyYXRvcik7XG4gICAgICAgIGlmIChuc1NlcGFyYXRvciAhPT0ga2V5U2VwYXJhdG9yIHx8IG5zU2VwYXJhdG9yID09PSBrZXlTZXBhcmF0b3IgJiYgdGhpcy5vcHRpb25zLm5zLmluZGV4T2YocGFydHNbMF0pID4gLTEpIG5hbWVzcGFjZXMgPSBwYXJ0cy5zaGlmdCgpO1xuICAgICAgICBrZXkgPSBwYXJ0cy5qb2luKGtleVNlcGFyYXRvcik7XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2YgbmFtZXNwYWNlcyA9PT0gJ3N0cmluZycpIG5hbWVzcGFjZXMgPSBbbmFtZXNwYWNlc107XG4gICAgICByZXR1cm4ge1xuICAgICAgICBrZXk6IGtleSxcbiAgICAgICAgbmFtZXNwYWNlczogbmFtZXNwYWNlc1xuICAgICAgfTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwidHJhbnNsYXRlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHRyYW5zbGF0ZShrZXlzLCBvcHRpb25zLCBsYXN0S2V5KSB7XG4gICAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgICAgaWYgKF90eXBlb2Yob3B0aW9ucykgIT09ICdvYmplY3QnICYmIHRoaXMub3B0aW9ucy5vdmVybG9hZFRyYW5zbGF0aW9uT3B0aW9uSGFuZGxlcikge1xuICAgICAgICBvcHRpb25zID0gdGhpcy5vcHRpb25zLm92ZXJsb2FkVHJhbnNsYXRpb25PcHRpb25IYW5kbGVyKGFyZ3VtZW50cyk7XG4gICAgICB9XG5cbiAgICAgIGlmICghb3B0aW9ucykgb3B0aW9ucyA9IHt9O1xuICAgICAgaWYgKGtleXMgPT09IHVuZGVmaW5lZCB8fCBrZXlzID09PSBudWxsKSByZXR1cm4gJyc7XG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkoa2V5cykpIGtleXMgPSBbU3RyaW5nKGtleXMpXTtcbiAgICAgIHZhciBrZXlTZXBhcmF0b3IgPSBvcHRpb25zLmtleVNlcGFyYXRvciAhPT0gdW5kZWZpbmVkID8gb3B0aW9ucy5rZXlTZXBhcmF0b3IgOiB0aGlzLm9wdGlvbnMua2V5U2VwYXJhdG9yO1xuXG4gICAgICB2YXIgX3RoaXMkZXh0cmFjdEZyb21LZXkgPSB0aGlzLmV4dHJhY3RGcm9tS2V5KGtleXNba2V5cy5sZW5ndGggLSAxXSwgb3B0aW9ucyksXG4gICAgICAgICAga2V5ID0gX3RoaXMkZXh0cmFjdEZyb21LZXkua2V5LFxuICAgICAgICAgIG5hbWVzcGFjZXMgPSBfdGhpcyRleHRyYWN0RnJvbUtleS5uYW1lc3BhY2VzO1xuXG4gICAgICB2YXIgbmFtZXNwYWNlID0gbmFtZXNwYWNlc1tuYW1lc3BhY2VzLmxlbmd0aCAtIDFdO1xuICAgICAgdmFyIGxuZyA9IG9wdGlvbnMubG5nIHx8IHRoaXMubGFuZ3VhZ2U7XG4gICAgICB2YXIgYXBwZW5kTmFtZXNwYWNlVG9DSU1vZGUgPSBvcHRpb25zLmFwcGVuZE5hbWVzcGFjZVRvQ0lNb2RlIHx8IHRoaXMub3B0aW9ucy5hcHBlbmROYW1lc3BhY2VUb0NJTW9kZTtcblxuICAgICAgaWYgKGxuZyAmJiBsbmcudG9Mb3dlckNhc2UoKSA9PT0gJ2NpbW9kZScpIHtcbiAgICAgICAgaWYgKGFwcGVuZE5hbWVzcGFjZVRvQ0lNb2RlKSB7XG4gICAgICAgICAgdmFyIG5zU2VwYXJhdG9yID0gb3B0aW9ucy5uc1NlcGFyYXRvciB8fCB0aGlzLm9wdGlvbnMubnNTZXBhcmF0b3I7XG4gICAgICAgICAgcmV0dXJuIG5hbWVzcGFjZSArIG5zU2VwYXJhdG9yICsga2V5O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGtleTtcbiAgICAgIH1cblxuICAgICAgdmFyIHJlc29sdmVkID0gdGhpcy5yZXNvbHZlKGtleXMsIG9wdGlvbnMpO1xuICAgICAgdmFyIHJlcyA9IHJlc29sdmVkICYmIHJlc29sdmVkLnJlcztcbiAgICAgIHZhciByZXNVc2VkS2V5ID0gcmVzb2x2ZWQgJiYgcmVzb2x2ZWQudXNlZEtleSB8fCBrZXk7XG4gICAgICB2YXIgcmVzRXhhY3RVc2VkS2V5ID0gcmVzb2x2ZWQgJiYgcmVzb2x2ZWQuZXhhY3RVc2VkS2V5IHx8IGtleTtcbiAgICAgIHZhciByZXNUeXBlID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5hcHBseShyZXMpO1xuICAgICAgdmFyIG5vT2JqZWN0ID0gWydbb2JqZWN0IE51bWJlcl0nLCAnW29iamVjdCBGdW5jdGlvbl0nLCAnW29iamVjdCBSZWdFeHBdJ107XG4gICAgICB2YXIgam9pbkFycmF5cyA9IG9wdGlvbnMuam9pbkFycmF5cyAhPT0gdW5kZWZpbmVkID8gb3B0aW9ucy5qb2luQXJyYXlzIDogdGhpcy5vcHRpb25zLmpvaW5BcnJheXM7XG4gICAgICB2YXIgaGFuZGxlQXNPYmplY3RJbkkxOG5Gb3JtYXQgPSAhdGhpcy5pMThuRm9ybWF0IHx8IHRoaXMuaTE4bkZvcm1hdC5oYW5kbGVBc09iamVjdDtcbiAgICAgIHZhciBoYW5kbGVBc09iamVjdCA9IHR5cGVvZiByZXMgIT09ICdzdHJpbmcnICYmIHR5cGVvZiByZXMgIT09ICdib29sZWFuJyAmJiB0eXBlb2YgcmVzICE9PSAnbnVtYmVyJztcblxuICAgICAgaWYgKGhhbmRsZUFzT2JqZWN0SW5JMThuRm9ybWF0ICYmIHJlcyAmJiBoYW5kbGVBc09iamVjdCAmJiBub09iamVjdC5pbmRleE9mKHJlc1R5cGUpIDwgMCAmJiAhKHR5cGVvZiBqb2luQXJyYXlzID09PSAnc3RyaW5nJyAmJiByZXNUeXBlID09PSAnW29iamVjdCBBcnJheV0nKSkge1xuICAgICAgICBpZiAoIW9wdGlvbnMucmV0dXJuT2JqZWN0cyAmJiAhdGhpcy5vcHRpb25zLnJldHVybk9iamVjdHMpIHtcbiAgICAgICAgICBpZiAoIXRoaXMub3B0aW9ucy5yZXR1cm5lZE9iamVjdEhhbmRsZXIpIHtcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLndhcm4oJ2FjY2Vzc2luZyBhbiBvYmplY3QgLSBidXQgcmV0dXJuT2JqZWN0cyBvcHRpb25zIGlzIG5vdCBlbmFibGVkIScpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMucmV0dXJuZWRPYmplY3RIYW5kbGVyID8gdGhpcy5vcHRpb25zLnJldHVybmVkT2JqZWN0SGFuZGxlcihyZXNVc2VkS2V5LCByZXMsIF9vYmplY3RTcHJlYWQoe30sIG9wdGlvbnMsIHtcbiAgICAgICAgICAgIG5zOiBuYW1lc3BhY2VzXG4gICAgICAgICAgfSkpIDogXCJrZXkgJ1wiLmNvbmNhdChrZXksIFwiIChcIikuY29uY2F0KHRoaXMubGFuZ3VhZ2UsIFwiKScgcmV0dXJuZWQgYW4gb2JqZWN0IGluc3RlYWQgb2Ygc3RyaW5nLlwiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChrZXlTZXBhcmF0b3IpIHtcbiAgICAgICAgICB2YXIgcmVzVHlwZUlzQXJyYXkgPSByZXNUeXBlID09PSAnW29iamVjdCBBcnJheV0nO1xuICAgICAgICAgIHZhciBjb3B5ID0gcmVzVHlwZUlzQXJyYXkgPyBbXSA6IHt9O1xuICAgICAgICAgIHZhciBuZXdLZXlUb1VzZSA9IHJlc1R5cGVJc0FycmF5ID8gcmVzRXhhY3RVc2VkS2V5IDogcmVzVXNlZEtleTtcblxuICAgICAgICAgIGZvciAodmFyIG0gaW4gcmVzKSB7XG4gICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHJlcywgbSkpIHtcbiAgICAgICAgICAgICAgdmFyIGRlZXBLZXkgPSBcIlwiLmNvbmNhdChuZXdLZXlUb1VzZSkuY29uY2F0KGtleVNlcGFyYXRvcikuY29uY2F0KG0pO1xuICAgICAgICAgICAgICBjb3B5W21dID0gdGhpcy50cmFuc2xhdGUoZGVlcEtleSwgX29iamVjdFNwcmVhZCh7fSwgb3B0aW9ucywge1xuICAgICAgICAgICAgICAgIGpvaW5BcnJheXM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIG5zOiBuYW1lc3BhY2VzXG4gICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgaWYgKGNvcHlbbV0gPT09IGRlZXBLZXkpIGNvcHlbbV0gPSByZXNbbV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmVzID0gY29weTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChoYW5kbGVBc09iamVjdEluSTE4bkZvcm1hdCAmJiB0eXBlb2Ygam9pbkFycmF5cyA9PT0gJ3N0cmluZycgJiYgcmVzVHlwZSA9PT0gJ1tvYmplY3QgQXJyYXldJykge1xuICAgICAgICByZXMgPSByZXMuam9pbihqb2luQXJyYXlzKTtcbiAgICAgICAgaWYgKHJlcykgcmVzID0gdGhpcy5leHRlbmRUcmFuc2xhdGlvbihyZXMsIGtleXMsIG9wdGlvbnMsIGxhc3RLZXkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIHVzZWREZWZhdWx0ID0gZmFsc2U7XG4gICAgICAgIHZhciB1c2VkS2V5ID0gZmFsc2U7XG4gICAgICAgIHZhciBuZWVkc1BsdXJhbEhhbmRsaW5nID0gb3B0aW9ucy5jb3VudCAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiBvcHRpb25zLmNvdW50ICE9PSAnc3RyaW5nJztcbiAgICAgICAgdmFyIGhhc0RlZmF1bHRWYWx1ZSA9IFRyYW5zbGF0b3IuaGFzRGVmYXVsdFZhbHVlKG9wdGlvbnMpO1xuICAgICAgICB2YXIgZGVmYXVsdFZhbHVlU3VmZml4ID0gbmVlZHNQbHVyYWxIYW5kbGluZyA/IHRoaXMucGx1cmFsUmVzb2x2ZXIuZ2V0U3VmZml4KGxuZywgb3B0aW9ucy5jb3VudCwgb3B0aW9ucykgOiAnJztcbiAgICAgICAgdmFyIGRlZmF1bHRWYWx1ZSA9IG9wdGlvbnNbXCJkZWZhdWx0VmFsdWVcIi5jb25jYXQoZGVmYXVsdFZhbHVlU3VmZml4KV0gfHwgb3B0aW9ucy5kZWZhdWx0VmFsdWU7XG5cbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWRMb29rdXAocmVzKSAmJiBoYXNEZWZhdWx0VmFsdWUpIHtcbiAgICAgICAgICB1c2VkRGVmYXVsdCA9IHRydWU7XG4gICAgICAgICAgcmVzID0gZGVmYXVsdFZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWRMb29rdXAocmVzKSkge1xuICAgICAgICAgIHVzZWRLZXkgPSB0cnVlO1xuICAgICAgICAgIHJlcyA9IGtleTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBtaXNzaW5nS2V5Tm9WYWx1ZUZhbGxiYWNrVG9LZXkgPSBvcHRpb25zLm1pc3NpbmdLZXlOb1ZhbHVlRmFsbGJhY2tUb0tleSB8fCB0aGlzLm9wdGlvbnMubWlzc2luZ0tleU5vVmFsdWVGYWxsYmFja1RvS2V5O1xuICAgICAgICB2YXIgcmVzRm9yTWlzc2luZyA9IG1pc3NpbmdLZXlOb1ZhbHVlRmFsbGJhY2tUb0tleSAmJiB1c2VkS2V5ID8gdW5kZWZpbmVkIDogcmVzO1xuICAgICAgICB2YXIgdXBkYXRlTWlzc2luZyA9IGhhc0RlZmF1bHRWYWx1ZSAmJiBkZWZhdWx0VmFsdWUgIT09IHJlcyAmJiB0aGlzLm9wdGlvbnMudXBkYXRlTWlzc2luZztcblxuICAgICAgICBpZiAodXNlZEtleSB8fCB1c2VkRGVmYXVsdCB8fCB1cGRhdGVNaXNzaW5nKSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIubG9nKHVwZGF0ZU1pc3NpbmcgPyAndXBkYXRlS2V5JyA6ICdtaXNzaW5nS2V5JywgbG5nLCBuYW1lc3BhY2UsIGtleSwgdXBkYXRlTWlzc2luZyA/IGRlZmF1bHRWYWx1ZSA6IHJlcyk7XG5cbiAgICAgICAgICBpZiAoa2V5U2VwYXJhdG9yKSB7XG4gICAgICAgICAgICB2YXIgZmsgPSB0aGlzLnJlc29sdmUoa2V5LCBfb2JqZWN0U3ByZWFkKHt9LCBvcHRpb25zLCB7XG4gICAgICAgICAgICAgIGtleVNlcGFyYXRvcjogZmFsc2VcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIGlmIChmayAmJiBmay5yZXMpIHRoaXMubG9nZ2VyLndhcm4oJ1NlZW1zIHRoZSBsb2FkZWQgdHJhbnNsYXRpb25zIHdlcmUgaW4gZmxhdCBKU09OIGZvcm1hdCBpbnN0ZWFkIG9mIG5lc3RlZC4gRWl0aGVyIHNldCBrZXlTZXBhcmF0b3I6IGZhbHNlIG9uIGluaXQgb3IgbWFrZSBzdXJlIHlvdXIgdHJhbnNsYXRpb25zIGFyZSBwdWJsaXNoZWQgaW4gbmVzdGVkIGZvcm1hdC4nKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB2YXIgbG5ncyA9IFtdO1xuICAgICAgICAgIHZhciBmYWxsYmFja0xuZ3MgPSB0aGlzLmxhbmd1YWdlVXRpbHMuZ2V0RmFsbGJhY2tDb2Rlcyh0aGlzLm9wdGlvbnMuZmFsbGJhY2tMbmcsIG9wdGlvbnMubG5nIHx8IHRoaXMubGFuZ3VhZ2UpO1xuXG4gICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5zYXZlTWlzc2luZ1RvID09PSAnZmFsbGJhY2snICYmIGZhbGxiYWNrTG5ncyAmJiBmYWxsYmFja0xuZ3NbMF0pIHtcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZmFsbGJhY2tMbmdzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgIGxuZ3MucHVzaChmYWxsYmFja0xuZ3NbaV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5vcHRpb25zLnNhdmVNaXNzaW5nVG8gPT09ICdhbGwnKSB7XG4gICAgICAgICAgICBsbmdzID0gdGhpcy5sYW5ndWFnZVV0aWxzLnRvUmVzb2x2ZUhpZXJhcmNoeShvcHRpb25zLmxuZyB8fCB0aGlzLmxhbmd1YWdlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbG5ncy5wdXNoKG9wdGlvbnMubG5nIHx8IHRoaXMubGFuZ3VhZ2UpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHZhciBzZW5kID0gZnVuY3Rpb24gc2VuZChsLCBrLCBmYWxsYmFja1ZhbHVlKSB7XG4gICAgICAgICAgICBpZiAoX3RoaXMyLm9wdGlvbnMubWlzc2luZ0tleUhhbmRsZXIpIHtcbiAgICAgICAgICAgICAgX3RoaXMyLm9wdGlvbnMubWlzc2luZ0tleUhhbmRsZXIobCwgbmFtZXNwYWNlLCBrLCB1cGRhdGVNaXNzaW5nID8gZmFsbGJhY2tWYWx1ZSA6IHJlc0Zvck1pc3NpbmcsIHVwZGF0ZU1pc3NpbmcsIG9wdGlvbnMpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChfdGhpczIuYmFja2VuZENvbm5lY3RvciAmJiBfdGhpczIuYmFja2VuZENvbm5lY3Rvci5zYXZlTWlzc2luZykge1xuICAgICAgICAgICAgICBfdGhpczIuYmFja2VuZENvbm5lY3Rvci5zYXZlTWlzc2luZyhsLCBuYW1lc3BhY2UsIGssIHVwZGF0ZU1pc3NpbmcgPyBmYWxsYmFja1ZhbHVlIDogcmVzRm9yTWlzc2luZywgdXBkYXRlTWlzc2luZywgb3B0aW9ucyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIF90aGlzMi5lbWl0KCdtaXNzaW5nS2V5JywgbCwgbmFtZXNwYWNlLCBrLCByZXMpO1xuICAgICAgICAgIH07XG5cbiAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLnNhdmVNaXNzaW5nKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLnNhdmVNaXNzaW5nUGx1cmFscyAmJiBuZWVkc1BsdXJhbEhhbmRsaW5nKSB7XG4gICAgICAgICAgICAgIGxuZ3MuZm9yRWFjaChmdW5jdGlvbiAobGFuZ3VhZ2UpIHtcbiAgICAgICAgICAgICAgICBfdGhpczIucGx1cmFsUmVzb2x2ZXIuZ2V0U3VmZml4ZXMobGFuZ3VhZ2UpLmZvckVhY2goZnVuY3Rpb24gKHN1ZmZpeCkge1xuICAgICAgICAgICAgICAgICAgc2VuZChbbGFuZ3VhZ2VdLCBrZXkgKyBzdWZmaXgsIG9wdGlvbnNbXCJkZWZhdWx0VmFsdWVcIi5jb25jYXQoc3VmZml4KV0gfHwgZGVmYXVsdFZhbHVlKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBzZW5kKGxuZ3MsIGtleSwgZGVmYXVsdFZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXMgPSB0aGlzLmV4dGVuZFRyYW5zbGF0aW9uKHJlcywga2V5cywgb3B0aW9ucywgcmVzb2x2ZWQsIGxhc3RLZXkpO1xuICAgICAgICBpZiAodXNlZEtleSAmJiByZXMgPT09IGtleSAmJiB0aGlzLm9wdGlvbnMuYXBwZW5kTmFtZXNwYWNlVG9NaXNzaW5nS2V5KSByZXMgPSBcIlwiLmNvbmNhdChuYW1lc3BhY2UsIFwiOlwiKS5jb25jYXQoa2V5KTtcbiAgICAgICAgaWYgKCh1c2VkS2V5IHx8IHVzZWREZWZhdWx0KSAmJiB0aGlzLm9wdGlvbnMucGFyc2VNaXNzaW5nS2V5SGFuZGxlcikgcmVzID0gdGhpcy5vcHRpb25zLnBhcnNlTWlzc2luZ0tleUhhbmRsZXIocmVzKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZXh0ZW5kVHJhbnNsYXRpb25cIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZXh0ZW5kVHJhbnNsYXRpb24ocmVzLCBrZXksIG9wdGlvbnMsIHJlc29sdmVkLCBsYXN0S2V5KSB7XG4gICAgICB2YXIgX3RoaXMzID0gdGhpcztcblxuICAgICAgaWYgKHRoaXMuaTE4bkZvcm1hdCAmJiB0aGlzLmkxOG5Gb3JtYXQucGFyc2UpIHtcbiAgICAgICAgcmVzID0gdGhpcy5pMThuRm9ybWF0LnBhcnNlKHJlcywgb3B0aW9ucywgcmVzb2x2ZWQudXNlZExuZywgcmVzb2x2ZWQudXNlZE5TLCByZXNvbHZlZC51c2VkS2V5LCB7XG4gICAgICAgICAgcmVzb2x2ZWQ6IHJlc29sdmVkXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIGlmICghb3B0aW9ucy5za2lwSW50ZXJwb2xhdGlvbikge1xuICAgICAgICBpZiAob3B0aW9ucy5pbnRlcnBvbGF0aW9uKSB0aGlzLmludGVycG9sYXRvci5pbml0KF9vYmplY3RTcHJlYWQoe30sIG9wdGlvbnMsIHtcbiAgICAgICAgICBpbnRlcnBvbGF0aW9uOiBfb2JqZWN0U3ByZWFkKHt9LCB0aGlzLm9wdGlvbnMuaW50ZXJwb2xhdGlvbiwgb3B0aW9ucy5pbnRlcnBvbGF0aW9uKVxuICAgICAgICB9KSk7XG4gICAgICAgIHZhciBza2lwT25WYXJpYWJsZXMgPSBvcHRpb25zLmludGVycG9sYXRpb24gJiYgb3B0aW9ucy5pbnRlcnBvbGF0aW9uLnNraXBPblZhcmlhYmxlcyB8fCB0aGlzLm9wdGlvbnMuaW50ZXJwb2xhdGlvbi5za2lwT25WYXJpYWJsZXM7XG4gICAgICAgIHZhciBuZXN0QmVmO1xuXG4gICAgICAgIGlmIChza2lwT25WYXJpYWJsZXMpIHtcbiAgICAgICAgICB2YXIgbmIgPSByZXMubWF0Y2godGhpcy5pbnRlcnBvbGF0b3IubmVzdGluZ1JlZ2V4cCk7XG4gICAgICAgICAgbmVzdEJlZiA9IG5iICYmIG5iLmxlbmd0aDtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBkYXRhID0gb3B0aW9ucy5yZXBsYWNlICYmIHR5cGVvZiBvcHRpb25zLnJlcGxhY2UgIT09ICdzdHJpbmcnID8gb3B0aW9ucy5yZXBsYWNlIDogb3B0aW9ucztcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5pbnRlcnBvbGF0aW9uLmRlZmF1bHRWYXJpYWJsZXMpIGRhdGEgPSBfb2JqZWN0U3ByZWFkKHt9LCB0aGlzLm9wdGlvbnMuaW50ZXJwb2xhdGlvbi5kZWZhdWx0VmFyaWFibGVzLCBkYXRhKTtcbiAgICAgICAgcmVzID0gdGhpcy5pbnRlcnBvbGF0b3IuaW50ZXJwb2xhdGUocmVzLCBkYXRhLCBvcHRpb25zLmxuZyB8fCB0aGlzLmxhbmd1YWdlLCBvcHRpb25zKTtcblxuICAgICAgICBpZiAoc2tpcE9uVmFyaWFibGVzKSB7XG4gICAgICAgICAgdmFyIG5hID0gcmVzLm1hdGNoKHRoaXMuaW50ZXJwb2xhdG9yLm5lc3RpbmdSZWdleHApO1xuICAgICAgICAgIHZhciBuZXN0QWZ0ID0gbmEgJiYgbmEubGVuZ3RoO1xuICAgICAgICAgIGlmIChuZXN0QmVmIDwgbmVzdEFmdCkgb3B0aW9ucy5uZXN0ID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob3B0aW9ucy5uZXN0ICE9PSBmYWxzZSkgcmVzID0gdGhpcy5pbnRlcnBvbGF0b3IubmVzdChyZXMsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuKSwgX2tleSA9IDA7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICAgICAgICAgIGFyZ3NbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGxhc3RLZXkgJiYgbGFzdEtleVswXSA9PT0gYXJnc1swXSAmJiAhb3B0aW9ucy5jb250ZXh0KSB7XG4gICAgICAgICAgICBfdGhpczMubG9nZ2VyLndhcm4oXCJJdCBzZWVtcyB5b3UgYXJlIG5lc3RpbmcgcmVjdXJzaXZlbHkga2V5OiBcIi5jb25jYXQoYXJnc1swXSwgXCIgaW4ga2V5OiBcIikuY29uY2F0KGtleVswXSkpO1xuXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gX3RoaXMzLnRyYW5zbGF0ZS5hcHBseShfdGhpczMsIGFyZ3MuY29uY2F0KFtrZXldKSk7XG4gICAgICAgIH0sIG9wdGlvbnMpO1xuICAgICAgICBpZiAob3B0aW9ucy5pbnRlcnBvbGF0aW9uKSB0aGlzLmludGVycG9sYXRvci5yZXNldCgpO1xuICAgICAgfVxuXG4gICAgICB2YXIgcG9zdFByb2Nlc3MgPSBvcHRpb25zLnBvc3RQcm9jZXNzIHx8IHRoaXMub3B0aW9ucy5wb3N0UHJvY2VzcztcbiAgICAgIHZhciBwb3N0UHJvY2Vzc29yTmFtZXMgPSB0eXBlb2YgcG9zdFByb2Nlc3MgPT09ICdzdHJpbmcnID8gW3Bvc3RQcm9jZXNzXSA6IHBvc3RQcm9jZXNzO1xuXG4gICAgICBpZiAocmVzICE9PSB1bmRlZmluZWQgJiYgcmVzICE9PSBudWxsICYmIHBvc3RQcm9jZXNzb3JOYW1lcyAmJiBwb3N0UHJvY2Vzc29yTmFtZXMubGVuZ3RoICYmIG9wdGlvbnMuYXBwbHlQb3N0UHJvY2Vzc29yICE9PSBmYWxzZSkge1xuICAgICAgICByZXMgPSBwb3N0UHJvY2Vzc29yLmhhbmRsZShwb3N0UHJvY2Vzc29yTmFtZXMsIHJlcywga2V5LCB0aGlzLm9wdGlvbnMgJiYgdGhpcy5vcHRpb25zLnBvc3RQcm9jZXNzUGFzc1Jlc29sdmVkID8gX29iamVjdFNwcmVhZCh7XG4gICAgICAgICAgaTE4blJlc29sdmVkOiByZXNvbHZlZFxuICAgICAgICB9LCBvcHRpb25zKSA6IG9wdGlvbnMsIHRoaXMpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJyZXNvbHZlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlc29sdmUoa2V5cykge1xuICAgICAgdmFyIF90aGlzNCA9IHRoaXM7XG5cbiAgICAgIHZhciBvcHRpb25zID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiB7fTtcbiAgICAgIHZhciBmb3VuZDtcbiAgICAgIHZhciB1c2VkS2V5O1xuICAgICAgdmFyIGV4YWN0VXNlZEtleTtcbiAgICAgIHZhciB1c2VkTG5nO1xuICAgICAgdmFyIHVzZWROUztcbiAgICAgIGlmICh0eXBlb2Yga2V5cyA9PT0gJ3N0cmluZycpIGtleXMgPSBba2V5c107XG4gICAgICBrZXlzLmZvckVhY2goZnVuY3Rpb24gKGspIHtcbiAgICAgICAgaWYgKF90aGlzNC5pc1ZhbGlkTG9va3VwKGZvdW5kKSkgcmV0dXJuO1xuXG4gICAgICAgIHZhciBleHRyYWN0ZWQgPSBfdGhpczQuZXh0cmFjdEZyb21LZXkoaywgb3B0aW9ucyk7XG5cbiAgICAgICAgdmFyIGtleSA9IGV4dHJhY3RlZC5rZXk7XG4gICAgICAgIHVzZWRLZXkgPSBrZXk7XG4gICAgICAgIHZhciBuYW1lc3BhY2VzID0gZXh0cmFjdGVkLm5hbWVzcGFjZXM7XG4gICAgICAgIGlmIChfdGhpczQub3B0aW9ucy5mYWxsYmFja05TKSBuYW1lc3BhY2VzID0gbmFtZXNwYWNlcy5jb25jYXQoX3RoaXM0Lm9wdGlvbnMuZmFsbGJhY2tOUyk7XG4gICAgICAgIHZhciBuZWVkc1BsdXJhbEhhbmRsaW5nID0gb3B0aW9ucy5jb3VudCAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiBvcHRpb25zLmNvdW50ICE9PSAnc3RyaW5nJztcbiAgICAgICAgdmFyIG5lZWRzQ29udGV4dEhhbmRsaW5nID0gb3B0aW9ucy5jb250ZXh0ICE9PSB1bmRlZmluZWQgJiYgKHR5cGVvZiBvcHRpb25zLmNvbnRleHQgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiBvcHRpb25zLmNvbnRleHQgPT09ICdudW1iZXInKSAmJiBvcHRpb25zLmNvbnRleHQgIT09ICcnO1xuICAgICAgICB2YXIgY29kZXMgPSBvcHRpb25zLmxuZ3MgPyBvcHRpb25zLmxuZ3MgOiBfdGhpczQubGFuZ3VhZ2VVdGlscy50b1Jlc29sdmVIaWVyYXJjaHkob3B0aW9ucy5sbmcgfHwgX3RoaXM0Lmxhbmd1YWdlLCBvcHRpb25zLmZhbGxiYWNrTG5nKTtcbiAgICAgICAgbmFtZXNwYWNlcy5mb3JFYWNoKGZ1bmN0aW9uIChucykge1xuICAgICAgICAgIGlmIChfdGhpczQuaXNWYWxpZExvb2t1cChmb3VuZCkpIHJldHVybjtcbiAgICAgICAgICB1c2VkTlMgPSBucztcblxuICAgICAgICAgIGlmICghY2hlY2tlZExvYWRlZEZvcltcIlwiLmNvbmNhdChjb2Rlc1swXSwgXCItXCIpLmNvbmNhdChucyldICYmIF90aGlzNC51dGlscyAmJiBfdGhpczQudXRpbHMuaGFzTG9hZGVkTmFtZXNwYWNlICYmICFfdGhpczQudXRpbHMuaGFzTG9hZGVkTmFtZXNwYWNlKHVzZWROUykpIHtcbiAgICAgICAgICAgIGNoZWNrZWRMb2FkZWRGb3JbXCJcIi5jb25jYXQoY29kZXNbMF0sIFwiLVwiKS5jb25jYXQobnMpXSA9IHRydWU7XG5cbiAgICAgICAgICAgIF90aGlzNC5sb2dnZXIud2FybihcImtleSBcXFwiXCIuY29uY2F0KHVzZWRLZXksIFwiXFxcIiBmb3IgbGFuZ3VhZ2VzIFxcXCJcIikuY29uY2F0KGNvZGVzLmpvaW4oJywgJyksIFwiXFxcIiB3b24ndCBnZXQgcmVzb2x2ZWQgYXMgbmFtZXNwYWNlIFxcXCJcIikuY29uY2F0KHVzZWROUywgXCJcXFwiIHdhcyBub3QgeWV0IGxvYWRlZFwiKSwgJ1RoaXMgbWVhbnMgc29tZXRoaW5nIElTIFdST05HIGluIHlvdXIgc2V0dXAuIFlvdSBhY2Nlc3MgdGhlIHQgZnVuY3Rpb24gYmVmb3JlIGkxOG5leHQuaW5pdCAvIGkxOG5leHQubG9hZE5hbWVzcGFjZSAvIGkxOG5leHQuY2hhbmdlTGFuZ3VhZ2Ugd2FzIGRvbmUuIFdhaXQgZm9yIHRoZSBjYWxsYmFjayBvciBQcm9taXNlIHRvIHJlc29sdmUgYmVmb3JlIGFjY2Vzc2luZyBpdCEhIScpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvZGVzLmZvckVhY2goZnVuY3Rpb24gKGNvZGUpIHtcbiAgICAgICAgICAgIGlmIChfdGhpczQuaXNWYWxpZExvb2t1cChmb3VuZCkpIHJldHVybjtcbiAgICAgICAgICAgIHVzZWRMbmcgPSBjb2RlO1xuICAgICAgICAgICAgdmFyIGZpbmFsS2V5ID0ga2V5O1xuICAgICAgICAgICAgdmFyIGZpbmFsS2V5cyA9IFtmaW5hbEtleV07XG5cbiAgICAgICAgICAgIGlmIChfdGhpczQuaTE4bkZvcm1hdCAmJiBfdGhpczQuaTE4bkZvcm1hdC5hZGRMb29rdXBLZXlzKSB7XG4gICAgICAgICAgICAgIF90aGlzNC5pMThuRm9ybWF0LmFkZExvb2t1cEtleXMoZmluYWxLZXlzLCBrZXksIGNvZGUsIG5zLCBvcHRpb25zKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHZhciBwbHVyYWxTdWZmaXg7XG4gICAgICAgICAgICAgIGlmIChuZWVkc1BsdXJhbEhhbmRsaW5nKSBwbHVyYWxTdWZmaXggPSBfdGhpczQucGx1cmFsUmVzb2x2ZXIuZ2V0U3VmZml4KGNvZGUsIG9wdGlvbnMuY291bnQsIG9wdGlvbnMpO1xuICAgICAgICAgICAgICBpZiAobmVlZHNQbHVyYWxIYW5kbGluZyAmJiBuZWVkc0NvbnRleHRIYW5kbGluZykgZmluYWxLZXlzLnB1c2goZmluYWxLZXkgKyBwbHVyYWxTdWZmaXgpO1xuICAgICAgICAgICAgICBpZiAobmVlZHNDb250ZXh0SGFuZGxpbmcpIGZpbmFsS2V5cy5wdXNoKGZpbmFsS2V5ICs9IFwiXCIuY29uY2F0KF90aGlzNC5vcHRpb25zLmNvbnRleHRTZXBhcmF0b3IpLmNvbmNhdChvcHRpb25zLmNvbnRleHQpKTtcbiAgICAgICAgICAgICAgaWYgKG5lZWRzUGx1cmFsSGFuZGxpbmcpIGZpbmFsS2V5cy5wdXNoKGZpbmFsS2V5ICs9IHBsdXJhbFN1ZmZpeCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHZhciBwb3NzaWJsZUtleTtcblxuICAgICAgICAgICAgd2hpbGUgKHBvc3NpYmxlS2V5ID0gZmluYWxLZXlzLnBvcCgpKSB7XG4gICAgICAgICAgICAgIGlmICghX3RoaXM0LmlzVmFsaWRMb29rdXAoZm91bmQpKSB7XG4gICAgICAgICAgICAgICAgZXhhY3RVc2VkS2V5ID0gcG9zc2libGVLZXk7XG4gICAgICAgICAgICAgICAgZm91bmQgPSBfdGhpczQuZ2V0UmVzb3VyY2UoY29kZSwgbnMsIHBvc3NpYmxlS2V5LCBvcHRpb25zKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcmVzOiBmb3VuZCxcbiAgICAgICAgdXNlZEtleTogdXNlZEtleSxcbiAgICAgICAgZXhhY3RVc2VkS2V5OiBleGFjdFVzZWRLZXksXG4gICAgICAgIHVzZWRMbmc6IHVzZWRMbmcsXG4gICAgICAgIHVzZWROUzogdXNlZE5TXG4gICAgICB9O1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJpc1ZhbGlkTG9va3VwXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGlzVmFsaWRMb29rdXAocmVzKSB7XG4gICAgICByZXR1cm4gcmVzICE9PSB1bmRlZmluZWQgJiYgISghdGhpcy5vcHRpb25zLnJldHVybk51bGwgJiYgcmVzID09PSBudWxsKSAmJiAhKCF0aGlzLm9wdGlvbnMucmV0dXJuRW1wdHlTdHJpbmcgJiYgcmVzID09PSAnJyk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImdldFJlc291cmNlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldFJlc291cmNlKGNvZGUsIG5zLCBrZXkpIHtcbiAgICAgIHZhciBvcHRpb25zID0gYXJndW1lbnRzLmxlbmd0aCA+IDMgJiYgYXJndW1lbnRzWzNdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbM10gOiB7fTtcbiAgICAgIGlmICh0aGlzLmkxOG5Gb3JtYXQgJiYgdGhpcy5pMThuRm9ybWF0LmdldFJlc291cmNlKSByZXR1cm4gdGhpcy5pMThuRm9ybWF0LmdldFJlc291cmNlKGNvZGUsIG5zLCBrZXksIG9wdGlvbnMpO1xuICAgICAgcmV0dXJuIHRoaXMucmVzb3VyY2VTdG9yZS5nZXRSZXNvdXJjZShjb2RlLCBucywga2V5LCBvcHRpb25zKTtcbiAgICB9XG4gIH1dLCBbe1xuICAgIGtleTogXCJoYXNEZWZhdWx0VmFsdWVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gaGFzRGVmYXVsdFZhbHVlKG9wdGlvbnMpIHtcbiAgICAgIHZhciBwcmVmaXggPSAnZGVmYXVsdFZhbHVlJztcblxuICAgICAgZm9yICh2YXIgb3B0aW9uIGluIG9wdGlvbnMpIHtcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvcHRpb25zLCBvcHRpb24pICYmIHByZWZpeCA9PT0gb3B0aW9uLnN1YnN0cmluZygwLCBwcmVmaXgubGVuZ3RoKSAmJiB1bmRlZmluZWQgIT09IG9wdGlvbnNbb3B0aW9uXSkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gVHJhbnNsYXRvcjtcbn0oRXZlbnRFbWl0dGVyKTtcblxuZnVuY3Rpb24gY2FwaXRhbGl6ZShzdHJpbmcpIHtcbiAgcmV0dXJuIHN0cmluZy5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHN0cmluZy5zbGljZSgxKTtcbn1cblxudmFyIExhbmd1YWdlVXRpbCA9IGZ1bmN0aW9uICgpIHtcbiAgZnVuY3Rpb24gTGFuZ3VhZ2VVdGlsKG9wdGlvbnMpIHtcbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgTGFuZ3VhZ2VVdGlsKTtcblxuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgdGhpcy5zdXBwb3J0ZWRMbmdzID0gdGhpcy5vcHRpb25zLnN1cHBvcnRlZExuZ3MgfHwgZmFsc2U7XG4gICAgdGhpcy5sb2dnZXIgPSBiYXNlTG9nZ2VyLmNyZWF0ZSgnbGFuZ3VhZ2VVdGlscycpO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKExhbmd1YWdlVXRpbCwgW3tcbiAgICBrZXk6IFwiZ2V0U2NyaXB0UGFydEZyb21Db2RlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldFNjcmlwdFBhcnRGcm9tQ29kZShjb2RlKSB7XG4gICAgICBpZiAoIWNvZGUgfHwgY29kZS5pbmRleE9mKCctJykgPCAwKSByZXR1cm4gbnVsbDtcbiAgICAgIHZhciBwID0gY29kZS5zcGxpdCgnLScpO1xuICAgICAgaWYgKHAubGVuZ3RoID09PSAyKSByZXR1cm4gbnVsbDtcbiAgICAgIHAucG9wKCk7XG4gICAgICBpZiAocFtwLmxlbmd0aCAtIDFdLnRvTG93ZXJDYXNlKCkgPT09ICd4JykgcmV0dXJuIG51bGw7XG4gICAgICByZXR1cm4gdGhpcy5mb3JtYXRMYW5ndWFnZUNvZGUocC5qb2luKCctJykpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJnZXRMYW5ndWFnZVBhcnRGcm9tQ29kZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRMYW5ndWFnZVBhcnRGcm9tQ29kZShjb2RlKSB7XG4gICAgICBpZiAoIWNvZGUgfHwgY29kZS5pbmRleE9mKCctJykgPCAwKSByZXR1cm4gY29kZTtcbiAgICAgIHZhciBwID0gY29kZS5zcGxpdCgnLScpO1xuICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0TGFuZ3VhZ2VDb2RlKHBbMF0pO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJmb3JtYXRMYW5ndWFnZUNvZGVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZm9ybWF0TGFuZ3VhZ2VDb2RlKGNvZGUpIHtcbiAgICAgIGlmICh0eXBlb2YgY29kZSA9PT0gJ3N0cmluZycgJiYgY29kZS5pbmRleE9mKCctJykgPiAtMSkge1xuICAgICAgICB2YXIgc3BlY2lhbENhc2VzID0gWydoYW5zJywgJ2hhbnQnLCAnbGF0bicsICdjeXJsJywgJ2NhbnMnLCAnbW9uZycsICdhcmFiJ107XG4gICAgICAgIHZhciBwID0gY29kZS5zcGxpdCgnLScpO1xuXG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMubG93ZXJDYXNlTG5nKSB7XG4gICAgICAgICAgcCA9IHAubWFwKGZ1bmN0aW9uIChwYXJ0KSB7XG4gICAgICAgICAgICByZXR1cm4gcGFydC50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKHAubGVuZ3RoID09PSAyKSB7XG4gICAgICAgICAgcFswXSA9IHBbMF0udG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICBwWzFdID0gcFsxXS50b1VwcGVyQ2FzZSgpO1xuICAgICAgICAgIGlmIChzcGVjaWFsQ2FzZXMuaW5kZXhPZihwWzFdLnRvTG93ZXJDYXNlKCkpID4gLTEpIHBbMV0gPSBjYXBpdGFsaXplKHBbMV0udG9Mb3dlckNhc2UoKSk7XG4gICAgICAgIH0gZWxzZSBpZiAocC5sZW5ndGggPT09IDMpIHtcbiAgICAgICAgICBwWzBdID0gcFswXS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgIGlmIChwWzFdLmxlbmd0aCA9PT0gMikgcFsxXSA9IHBbMV0udG9VcHBlckNhc2UoKTtcbiAgICAgICAgICBpZiAocFswXSAhPT0gJ3NnbicgJiYgcFsyXS5sZW5ndGggPT09IDIpIHBbMl0gPSBwWzJdLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgICAgaWYgKHNwZWNpYWxDYXNlcy5pbmRleE9mKHBbMV0udG9Mb3dlckNhc2UoKSkgPiAtMSkgcFsxXSA9IGNhcGl0YWxpemUocFsxXS50b0xvd2VyQ2FzZSgpKTtcbiAgICAgICAgICBpZiAoc3BlY2lhbENhc2VzLmluZGV4T2YocFsyXS50b0xvd2VyQ2FzZSgpKSA+IC0xKSBwWzJdID0gY2FwaXRhbGl6ZShwWzJdLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHAuam9pbignLScpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5vcHRpb25zLmNsZWFuQ29kZSB8fCB0aGlzLm9wdGlvbnMubG93ZXJDYXNlTG5nID8gY29kZS50b0xvd2VyQ2FzZSgpIDogY29kZTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiaXNTdXBwb3J0ZWRDb2RlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGlzU3VwcG9ydGVkQ29kZShjb2RlKSB7XG4gICAgICBpZiAodGhpcy5vcHRpb25zLmxvYWQgPT09ICdsYW5ndWFnZU9ubHknIHx8IHRoaXMub3B0aW9ucy5ub25FeHBsaWNpdFN1cHBvcnRlZExuZ3MpIHtcbiAgICAgICAgY29kZSA9IHRoaXMuZ2V0TGFuZ3VhZ2VQYXJ0RnJvbUNvZGUoY29kZSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAhdGhpcy5zdXBwb3J0ZWRMbmdzIHx8ICF0aGlzLnN1cHBvcnRlZExuZ3MubGVuZ3RoIHx8IHRoaXMuc3VwcG9ydGVkTG5ncy5pbmRleE9mKGNvZGUpID4gLTE7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImdldEJlc3RNYXRjaEZyb21Db2Rlc1wiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRCZXN0TWF0Y2hGcm9tQ29kZXMoY29kZXMpIHtcbiAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgICAgIGlmICghY29kZXMpIHJldHVybiBudWxsO1xuICAgICAgdmFyIGZvdW5kO1xuICAgICAgY29kZXMuZm9yRWFjaChmdW5jdGlvbiAoY29kZSkge1xuICAgICAgICBpZiAoZm91bmQpIHJldHVybjtcblxuICAgICAgICB2YXIgY2xlYW5lZExuZyA9IF90aGlzLmZvcm1hdExhbmd1YWdlQ29kZShjb2RlKTtcblxuICAgICAgICBpZiAoIV90aGlzLm9wdGlvbnMuc3VwcG9ydGVkTG5ncyB8fCBfdGhpcy5pc1N1cHBvcnRlZENvZGUoY2xlYW5lZExuZykpIGZvdW5kID0gY2xlYW5lZExuZztcbiAgICAgIH0pO1xuXG4gICAgICBpZiAoIWZvdW5kICYmIHRoaXMub3B0aW9ucy5zdXBwb3J0ZWRMbmdzKSB7XG4gICAgICAgIGNvZGVzLmZvckVhY2goZnVuY3Rpb24gKGNvZGUpIHtcbiAgICAgICAgICBpZiAoZm91bmQpIHJldHVybjtcblxuICAgICAgICAgIHZhciBsbmdPbmx5ID0gX3RoaXMuZ2V0TGFuZ3VhZ2VQYXJ0RnJvbUNvZGUoY29kZSk7XG5cbiAgICAgICAgICBpZiAoX3RoaXMuaXNTdXBwb3J0ZWRDb2RlKGxuZ09ubHkpKSByZXR1cm4gZm91bmQgPSBsbmdPbmx5O1xuICAgICAgICAgIGZvdW5kID0gX3RoaXMub3B0aW9ucy5zdXBwb3J0ZWRMbmdzLmZpbmQoZnVuY3Rpb24gKHN1cHBvcnRlZExuZykge1xuICAgICAgICAgICAgaWYgKHN1cHBvcnRlZExuZy5pbmRleE9mKGxuZ09ubHkpID09PSAwKSByZXR1cm4gc3VwcG9ydGVkTG5nO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFmb3VuZCkgZm91bmQgPSB0aGlzLmdldEZhbGxiYWNrQ29kZXModGhpcy5vcHRpb25zLmZhbGxiYWNrTG5nKVswXTtcbiAgICAgIHJldHVybiBmb3VuZDtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZ2V0RmFsbGJhY2tDb2Rlc1wiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRGYWxsYmFja0NvZGVzKGZhbGxiYWNrcywgY29kZSkge1xuICAgICAgaWYgKCFmYWxsYmFja3MpIHJldHVybiBbXTtcbiAgICAgIGlmICh0eXBlb2YgZmFsbGJhY2tzID09PSAnZnVuY3Rpb24nKSBmYWxsYmFja3MgPSBmYWxsYmFja3MoY29kZSk7XG4gICAgICBpZiAodHlwZW9mIGZhbGxiYWNrcyA9PT0gJ3N0cmluZycpIGZhbGxiYWNrcyA9IFtmYWxsYmFja3NdO1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuYXBwbHkoZmFsbGJhY2tzKSA9PT0gJ1tvYmplY3QgQXJyYXldJykgcmV0dXJuIGZhbGxiYWNrcztcbiAgICAgIGlmICghY29kZSkgcmV0dXJuIGZhbGxiYWNrc1tcImRlZmF1bHRcIl0gfHwgW107XG4gICAgICB2YXIgZm91bmQgPSBmYWxsYmFja3NbY29kZV07XG4gICAgICBpZiAoIWZvdW5kKSBmb3VuZCA9IGZhbGxiYWNrc1t0aGlzLmdldFNjcmlwdFBhcnRGcm9tQ29kZShjb2RlKV07XG4gICAgICBpZiAoIWZvdW5kKSBmb3VuZCA9IGZhbGxiYWNrc1t0aGlzLmZvcm1hdExhbmd1YWdlQ29kZShjb2RlKV07XG4gICAgICBpZiAoIWZvdW5kKSBmb3VuZCA9IGZhbGxiYWNrc1t0aGlzLmdldExhbmd1YWdlUGFydEZyb21Db2RlKGNvZGUpXTtcbiAgICAgIGlmICghZm91bmQpIGZvdW5kID0gZmFsbGJhY2tzW1wiZGVmYXVsdFwiXTtcbiAgICAgIHJldHVybiBmb3VuZCB8fCBbXTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwidG9SZXNvbHZlSGllcmFyY2h5XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHRvUmVzb2x2ZUhpZXJhcmNoeShjb2RlLCBmYWxsYmFja0NvZGUpIHtcbiAgICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgICB2YXIgZmFsbGJhY2tDb2RlcyA9IHRoaXMuZ2V0RmFsbGJhY2tDb2RlcyhmYWxsYmFja0NvZGUgfHwgdGhpcy5vcHRpb25zLmZhbGxiYWNrTG5nIHx8IFtdLCBjb2RlKTtcbiAgICAgIHZhciBjb2RlcyA9IFtdO1xuXG4gICAgICB2YXIgYWRkQ29kZSA9IGZ1bmN0aW9uIGFkZENvZGUoYykge1xuICAgICAgICBpZiAoIWMpIHJldHVybjtcblxuICAgICAgICBpZiAoX3RoaXMyLmlzU3VwcG9ydGVkQ29kZShjKSkge1xuICAgICAgICAgIGNvZGVzLnB1c2goYyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgX3RoaXMyLmxvZ2dlci53YXJuKFwicmVqZWN0aW5nIGxhbmd1YWdlIGNvZGUgbm90IGZvdW5kIGluIHN1cHBvcnRlZExuZ3M6IFwiLmNvbmNhdChjKSk7XG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIGlmICh0eXBlb2YgY29kZSA9PT0gJ3N0cmluZycgJiYgY29kZS5pbmRleE9mKCctJykgPiAtMSkge1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmxvYWQgIT09ICdsYW5ndWFnZU9ubHknKSBhZGRDb2RlKHRoaXMuZm9ybWF0TGFuZ3VhZ2VDb2RlKGNvZGUpKTtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5sb2FkICE9PSAnbGFuZ3VhZ2VPbmx5JyAmJiB0aGlzLm9wdGlvbnMubG9hZCAhPT0gJ2N1cnJlbnRPbmx5JykgYWRkQ29kZSh0aGlzLmdldFNjcmlwdFBhcnRGcm9tQ29kZShjb2RlKSk7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMubG9hZCAhPT0gJ2N1cnJlbnRPbmx5JykgYWRkQ29kZSh0aGlzLmdldExhbmd1YWdlUGFydEZyb21Db2RlKGNvZGUpKTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGNvZGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGFkZENvZGUodGhpcy5mb3JtYXRMYW5ndWFnZUNvZGUoY29kZSkpO1xuICAgICAgfVxuXG4gICAgICBmYWxsYmFja0NvZGVzLmZvckVhY2goZnVuY3Rpb24gKGZjKSB7XG4gICAgICAgIGlmIChjb2Rlcy5pbmRleE9mKGZjKSA8IDApIGFkZENvZGUoX3RoaXMyLmZvcm1hdExhbmd1YWdlQ29kZShmYykpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gY29kZXM7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIExhbmd1YWdlVXRpbDtcbn0oKTtcblxudmFyIHNldHMgPSBbe1xuICBsbmdzOiBbJ2FjaCcsICdhaycsICdhbScsICdhcm4nLCAnYnInLCAnZmlsJywgJ2d1bicsICdsbicsICdtZmUnLCAnbWcnLCAnbWknLCAnb2MnLCAncHQnLCAncHQtQlInLCAndGcnLCAndGwnLCAndGknLCAndHInLCAndXonLCAnd2EnXSxcbiAgbnI6IFsxLCAyXSxcbiAgZmM6IDFcbn0sIHtcbiAgbG5nczogWydhZicsICdhbicsICdhc3QnLCAnYXonLCAnYmcnLCAnYm4nLCAnY2EnLCAnZGEnLCAnZGUnLCAnZGV2JywgJ2VsJywgJ2VuJywgJ2VvJywgJ2VzJywgJ2V0JywgJ2V1JywgJ2ZpJywgJ2ZvJywgJ2Z1cicsICdmeScsICdnbCcsICdndScsICdoYScsICdoaScsICdodScsICdoeScsICdpYScsICdpdCcsICdraycsICdrbicsICdrdScsICdsYicsICdtYWknLCAnbWwnLCAnbW4nLCAnbXInLCAnbmFoJywgJ25hcCcsICduYicsICduZScsICdubCcsICdubicsICdubycsICduc28nLCAncGEnLCAncGFwJywgJ3BtcycsICdwcycsICdwdC1QVCcsICdybScsICdzY28nLCAnc2UnLCAnc2knLCAnc28nLCAnc29uJywgJ3NxJywgJ3N2JywgJ3N3JywgJ3RhJywgJ3RlJywgJ3RrJywgJ3VyJywgJ3lvJ10sXG4gIG5yOiBbMSwgMl0sXG4gIGZjOiAyXG59LCB7XG4gIGxuZ3M6IFsnYXknLCAnYm8nLCAnY2dnJywgJ2ZhJywgJ2h0JywgJ2lkJywgJ2phJywgJ2pibycsICdrYScsICdrbScsICdrbycsICdreScsICdsbycsICdtcycsICdzYWgnLCAnc3UnLCAndGgnLCAndHQnLCAndWcnLCAndmknLCAnd28nLCAnemgnXSxcbiAgbnI6IFsxXSxcbiAgZmM6IDNcbn0sIHtcbiAgbG5nczogWydiZScsICdicycsICdjbnInLCAnZHonLCAnaHInLCAncnUnLCAnc3InLCAndWsnXSxcbiAgbnI6IFsxLCAyLCA1XSxcbiAgZmM6IDRcbn0sIHtcbiAgbG5nczogWydhciddLFxuICBucjogWzAsIDEsIDIsIDMsIDExLCAxMDBdLFxuICBmYzogNVxufSwge1xuICBsbmdzOiBbJ2NzJywgJ3NrJ10sXG4gIG5yOiBbMSwgMiwgNV0sXG4gIGZjOiA2XG59LCB7XG4gIGxuZ3M6IFsnY3NiJywgJ3BsJ10sXG4gIG5yOiBbMSwgMiwgNV0sXG4gIGZjOiA3XG59LCB7XG4gIGxuZ3M6IFsnY3knXSxcbiAgbnI6IFsxLCAyLCAzLCA4XSxcbiAgZmM6IDhcbn0sIHtcbiAgbG5nczogWydmciddLFxuICBucjogWzEsIDJdLFxuICBmYzogOVxufSwge1xuICBsbmdzOiBbJ2dhJ10sXG4gIG5yOiBbMSwgMiwgMywgNywgMTFdLFxuICBmYzogMTBcbn0sIHtcbiAgbG5nczogWydnZCddLFxuICBucjogWzEsIDIsIDMsIDIwXSxcbiAgZmM6IDExXG59LCB7XG4gIGxuZ3M6IFsnaXMnXSxcbiAgbnI6IFsxLCAyXSxcbiAgZmM6IDEyXG59LCB7XG4gIGxuZ3M6IFsnanYnXSxcbiAgbnI6IFswLCAxXSxcbiAgZmM6IDEzXG59LCB7XG4gIGxuZ3M6IFsna3cnXSxcbiAgbnI6IFsxLCAyLCAzLCA0XSxcbiAgZmM6IDE0XG59LCB7XG4gIGxuZ3M6IFsnbHQnXSxcbiAgbnI6IFsxLCAyLCAxMF0sXG4gIGZjOiAxNVxufSwge1xuICBsbmdzOiBbJ2x2J10sXG4gIG5yOiBbMSwgMiwgMF0sXG4gIGZjOiAxNlxufSwge1xuICBsbmdzOiBbJ21rJ10sXG4gIG5yOiBbMSwgMl0sXG4gIGZjOiAxN1xufSwge1xuICBsbmdzOiBbJ21uayddLFxuICBucjogWzAsIDEsIDJdLFxuICBmYzogMThcbn0sIHtcbiAgbG5nczogWydtdCddLFxuICBucjogWzEsIDIsIDExLCAyMF0sXG4gIGZjOiAxOVxufSwge1xuICBsbmdzOiBbJ29yJ10sXG4gIG5yOiBbMiwgMV0sXG4gIGZjOiAyXG59LCB7XG4gIGxuZ3M6IFsncm8nXSxcbiAgbnI6IFsxLCAyLCAyMF0sXG4gIGZjOiAyMFxufSwge1xuICBsbmdzOiBbJ3NsJ10sXG4gIG5yOiBbNSwgMSwgMiwgM10sXG4gIGZjOiAyMVxufSwge1xuICBsbmdzOiBbJ2hlJywgJ2l3J10sXG4gIG5yOiBbMSwgMiwgMjAsIDIxXSxcbiAgZmM6IDIyXG59XTtcbnZhciBfcnVsZXNQbHVyYWxzVHlwZXMgPSB7XG4gIDE6IGZ1bmN0aW9uIF8obikge1xuICAgIHJldHVybiBOdW1iZXIobiA+IDEpO1xuICB9LFxuICAyOiBmdW5jdGlvbiBfKG4pIHtcbiAgICByZXR1cm4gTnVtYmVyKG4gIT0gMSk7XG4gIH0sXG4gIDM6IGZ1bmN0aW9uIF8obikge1xuICAgIHJldHVybiAwO1xuICB9LFxuICA0OiBmdW5jdGlvbiBfKG4pIHtcbiAgICByZXR1cm4gTnVtYmVyKG4gJSAxMCA9PSAxICYmIG4gJSAxMDAgIT0gMTEgPyAwIDogbiAlIDEwID49IDIgJiYgbiAlIDEwIDw9IDQgJiYgKG4gJSAxMDAgPCAxMCB8fCBuICUgMTAwID49IDIwKSA/IDEgOiAyKTtcbiAgfSxcbiAgNTogZnVuY3Rpb24gXyhuKSB7XG4gICAgcmV0dXJuIE51bWJlcihuID09IDAgPyAwIDogbiA9PSAxID8gMSA6IG4gPT0gMiA/IDIgOiBuICUgMTAwID49IDMgJiYgbiAlIDEwMCA8PSAxMCA/IDMgOiBuICUgMTAwID49IDExID8gNCA6IDUpO1xuICB9LFxuICA2OiBmdW5jdGlvbiBfKG4pIHtcbiAgICByZXR1cm4gTnVtYmVyKG4gPT0gMSA/IDAgOiBuID49IDIgJiYgbiA8PSA0ID8gMSA6IDIpO1xuICB9LFxuICA3OiBmdW5jdGlvbiBfKG4pIHtcbiAgICByZXR1cm4gTnVtYmVyKG4gPT0gMSA/IDAgOiBuICUgMTAgPj0gMiAmJiBuICUgMTAgPD0gNCAmJiAobiAlIDEwMCA8IDEwIHx8IG4gJSAxMDAgPj0gMjApID8gMSA6IDIpO1xuICB9LFxuICA4OiBmdW5jdGlvbiBfKG4pIHtcbiAgICByZXR1cm4gTnVtYmVyKG4gPT0gMSA/IDAgOiBuID09IDIgPyAxIDogbiAhPSA4ICYmIG4gIT0gMTEgPyAyIDogMyk7XG4gIH0sXG4gIDk6IGZ1bmN0aW9uIF8obikge1xuICAgIHJldHVybiBOdW1iZXIobiA+PSAyKTtcbiAgfSxcbiAgMTA6IGZ1bmN0aW9uIF8obikge1xuICAgIHJldHVybiBOdW1iZXIobiA9PSAxID8gMCA6IG4gPT0gMiA/IDEgOiBuIDwgNyA/IDIgOiBuIDwgMTEgPyAzIDogNCk7XG4gIH0sXG4gIDExOiBmdW5jdGlvbiBfKG4pIHtcbiAgICByZXR1cm4gTnVtYmVyKG4gPT0gMSB8fCBuID09IDExID8gMCA6IG4gPT0gMiB8fCBuID09IDEyID8gMSA6IG4gPiAyICYmIG4gPCAyMCA/IDIgOiAzKTtcbiAgfSxcbiAgMTI6IGZ1bmN0aW9uIF8obikge1xuICAgIHJldHVybiBOdW1iZXIobiAlIDEwICE9IDEgfHwgbiAlIDEwMCA9PSAxMSk7XG4gIH0sXG4gIDEzOiBmdW5jdGlvbiBfKG4pIHtcbiAgICByZXR1cm4gTnVtYmVyKG4gIT09IDApO1xuICB9LFxuICAxNDogZnVuY3Rpb24gXyhuKSB7XG4gICAgcmV0dXJuIE51bWJlcihuID09IDEgPyAwIDogbiA9PSAyID8gMSA6IG4gPT0gMyA/IDIgOiAzKTtcbiAgfSxcbiAgMTU6IGZ1bmN0aW9uIF8obikge1xuICAgIHJldHVybiBOdW1iZXIobiAlIDEwID09IDEgJiYgbiAlIDEwMCAhPSAxMSA/IDAgOiBuICUgMTAgPj0gMiAmJiAobiAlIDEwMCA8IDEwIHx8IG4gJSAxMDAgPj0gMjApID8gMSA6IDIpO1xuICB9LFxuICAxNjogZnVuY3Rpb24gXyhuKSB7XG4gICAgcmV0dXJuIE51bWJlcihuICUgMTAgPT0gMSAmJiBuICUgMTAwICE9IDExID8gMCA6IG4gIT09IDAgPyAxIDogMik7XG4gIH0sXG4gIDE3OiBmdW5jdGlvbiBfKG4pIHtcbiAgICByZXR1cm4gTnVtYmVyKG4gPT0gMSB8fCBuICUgMTAgPT0gMSAmJiBuICUgMTAwICE9IDExID8gMCA6IDEpO1xuICB9LFxuICAxODogZnVuY3Rpb24gXyhuKSB7XG4gICAgcmV0dXJuIE51bWJlcihuID09IDAgPyAwIDogbiA9PSAxID8gMSA6IDIpO1xuICB9LFxuICAxOTogZnVuY3Rpb24gXyhuKSB7XG4gICAgcmV0dXJuIE51bWJlcihuID09IDEgPyAwIDogbiA9PSAwIHx8IG4gJSAxMDAgPiAxICYmIG4gJSAxMDAgPCAxMSA/IDEgOiBuICUgMTAwID4gMTAgJiYgbiAlIDEwMCA8IDIwID8gMiA6IDMpO1xuICB9LFxuICAyMDogZnVuY3Rpb24gXyhuKSB7XG4gICAgcmV0dXJuIE51bWJlcihuID09IDEgPyAwIDogbiA9PSAwIHx8IG4gJSAxMDAgPiAwICYmIG4gJSAxMDAgPCAyMCA/IDEgOiAyKTtcbiAgfSxcbiAgMjE6IGZ1bmN0aW9uIF8obikge1xuICAgIHJldHVybiBOdW1iZXIobiAlIDEwMCA9PSAxID8gMSA6IG4gJSAxMDAgPT0gMiA/IDIgOiBuICUgMTAwID09IDMgfHwgbiAlIDEwMCA9PSA0ID8gMyA6IDApO1xuICB9LFxuICAyMjogZnVuY3Rpb24gXyhuKSB7XG4gICAgcmV0dXJuIE51bWJlcihuID09IDEgPyAwIDogbiA9PSAyID8gMSA6IChuIDwgMCB8fCBuID4gMTApICYmIG4gJSAxMCA9PSAwID8gMiA6IDMpO1xuICB9XG59O1xudmFyIGRlcHJlY2F0ZWRKc29uVmVyc2lvbnMgPSBbJ3YxJywgJ3YyJywgJ3YzJ107XG52YXIgc3VmZml4ZXNPcmRlciA9IHtcbiAgemVybzogMCxcbiAgb25lOiAxLFxuICB0d286IDIsXG4gIGZldzogMyxcbiAgbWFueTogNCxcbiAgb3RoZXI6IDVcbn07XG5cbmZ1bmN0aW9uIGNyZWF0ZVJ1bGVzKCkge1xuICB2YXIgcnVsZXMgPSB7fTtcbiAgc2V0cy5mb3JFYWNoKGZ1bmN0aW9uIChzZXQpIHtcbiAgICBzZXQubG5ncy5mb3JFYWNoKGZ1bmN0aW9uIChsKSB7XG4gICAgICBydWxlc1tsXSA9IHtcbiAgICAgICAgbnVtYmVyczogc2V0Lm5yLFxuICAgICAgICBwbHVyYWxzOiBfcnVsZXNQbHVyYWxzVHlwZXNbc2V0LmZjXVxuICAgICAgfTtcbiAgICB9KTtcbiAgfSk7XG4gIHJldHVybiBydWxlcztcbn1cblxudmFyIFBsdXJhbFJlc29sdmVyID0gZnVuY3Rpb24gKCkge1xuICBmdW5jdGlvbiBQbHVyYWxSZXNvbHZlcihsYW5ndWFnZVV0aWxzKSB7XG4gICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IHt9O1xuXG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFBsdXJhbFJlc29sdmVyKTtcblxuICAgIHRoaXMubGFuZ3VhZ2VVdGlscyA9IGxhbmd1YWdlVXRpbHM7XG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICB0aGlzLmxvZ2dlciA9IGJhc2VMb2dnZXIuY3JlYXRlKCdwbHVyYWxSZXNvbHZlcicpO1xuXG4gICAgaWYgKCghdGhpcy5vcHRpb25zLmNvbXBhdGliaWxpdHlKU09OIHx8IHRoaXMub3B0aW9ucy5jb21wYXRpYmlsaXR5SlNPTiA9PT0gJ3Y0JykgJiYgKHR5cGVvZiBJbnRsID09PSAndW5kZWZpbmVkJyB8fCAhSW50bC5QbHVyYWxSdWxlcykpIHtcbiAgICAgIHRoaXMub3B0aW9ucy5jb21wYXRpYmlsaXR5SlNPTiA9ICd2Myc7XG4gICAgICB0aGlzLmxvZ2dlci5lcnJvcignWW91ciBlbnZpcm9ubWVudCBzZWVtcyBub3QgdG8gYmUgSW50bCBBUEkgY29tcGF0aWJsZSwgdXNlIGFuIEludGwuUGx1cmFsUnVsZXMgcG9seWZpbGwuIFdpbGwgZmFsbGJhY2sgdG8gdGhlIGNvbXBhdGliaWxpdHlKU09OIHYzIGZvcm1hdCBoYW5kbGluZy4nKTtcbiAgICB9XG5cbiAgICB0aGlzLnJ1bGVzID0gY3JlYXRlUnVsZXMoKTtcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhQbHVyYWxSZXNvbHZlciwgW3tcbiAgICBrZXk6IFwiYWRkUnVsZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBhZGRSdWxlKGxuZywgb2JqKSB7XG4gICAgICB0aGlzLnJ1bGVzW2xuZ10gPSBvYmo7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImdldFJ1bGVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0UnVsZShjb2RlKSB7XG4gICAgICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDoge307XG5cbiAgICAgIGlmICh0aGlzLnNob3VsZFVzZUludGxBcGkoKSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiBuZXcgSW50bC5QbHVyYWxSdWxlcyhjb2RlLCB7XG4gICAgICAgICAgICB0eXBlOiBvcHRpb25zLm9yZGluYWwgPyAnb3JkaW5hbCcgOiAnY2FyZGluYWwnXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gY2F0Y2ggKF91bnVzZWQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXMucnVsZXNbY29kZV0gfHwgdGhpcy5ydWxlc1t0aGlzLmxhbmd1YWdlVXRpbHMuZ2V0TGFuZ3VhZ2VQYXJ0RnJvbUNvZGUoY29kZSldO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJuZWVkc1BsdXJhbFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBuZWVkc1BsdXJhbChjb2RlKSB7XG4gICAgICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDoge307XG4gICAgICB2YXIgcnVsZSA9IHRoaXMuZ2V0UnVsZShjb2RlLCBvcHRpb25zKTtcblxuICAgICAgaWYgKHRoaXMuc2hvdWxkVXNlSW50bEFwaSgpKSB7XG4gICAgICAgIHJldHVybiBydWxlICYmIHJ1bGUucmVzb2x2ZWRPcHRpb25zKCkucGx1cmFsQ2F0ZWdvcmllcy5sZW5ndGggPiAxO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcnVsZSAmJiBydWxlLm51bWJlcnMubGVuZ3RoID4gMTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZ2V0UGx1cmFsRm9ybXNPZktleVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRQbHVyYWxGb3Jtc09mS2V5KGNvZGUsIGtleSkge1xuICAgICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMiAmJiBhcmd1bWVudHNbMl0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1syXSA6IHt9O1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0U3VmZml4ZXMoY29kZSwgb3B0aW9ucykubWFwKGZ1bmN0aW9uIChzdWZmaXgpIHtcbiAgICAgICAgcmV0dXJuIFwiXCIuY29uY2F0KGtleSkuY29uY2F0KHN1ZmZpeCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZ2V0U3VmZml4ZXNcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0U3VmZml4ZXMoY29kZSkge1xuICAgICAgdmFyIF90aGlzID0gdGhpcztcblxuICAgICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IHt9O1xuICAgICAgdmFyIHJ1bGUgPSB0aGlzLmdldFJ1bGUoY29kZSwgb3B0aW9ucyk7XG5cbiAgICAgIGlmICghcnVsZSkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLnNob3VsZFVzZUludGxBcGkoKSkge1xuICAgICAgICByZXR1cm4gcnVsZS5yZXNvbHZlZE9wdGlvbnMoKS5wbHVyYWxDYXRlZ29yaWVzLnNvcnQoZnVuY3Rpb24gKHBsdXJhbENhdGVnb3J5MSwgcGx1cmFsQ2F0ZWdvcnkyKSB7XG4gICAgICAgICAgcmV0dXJuIHN1ZmZpeGVzT3JkZXJbcGx1cmFsQ2F0ZWdvcnkxXSAtIHN1ZmZpeGVzT3JkZXJbcGx1cmFsQ2F0ZWdvcnkyXTtcbiAgICAgICAgfSkubWFwKGZ1bmN0aW9uIChwbHVyYWxDYXRlZ29yeSkge1xuICAgICAgICAgIHJldHVybiBcIlwiLmNvbmNhdChfdGhpcy5vcHRpb25zLnByZXBlbmQpLmNvbmNhdChwbHVyYWxDYXRlZ29yeSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcnVsZS5udW1iZXJzLm1hcChmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgIHJldHVybiBfdGhpcy5nZXRTdWZmaXgoY29kZSwgbnVtYmVyLCBvcHRpb25zKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJnZXRTdWZmaXhcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0U3VmZml4KGNvZGUsIGNvdW50KSB7XG4gICAgICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIGFyZ3VtZW50c1syXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzJdIDoge307XG4gICAgICB2YXIgcnVsZSA9IHRoaXMuZ2V0UnVsZShjb2RlLCBvcHRpb25zKTtcblxuICAgICAgaWYgKHJ1bGUpIHtcbiAgICAgICAgaWYgKHRoaXMuc2hvdWxkVXNlSW50bEFwaSgpKSB7XG4gICAgICAgICAgcmV0dXJuIFwiXCIuY29uY2F0KHRoaXMub3B0aW9ucy5wcmVwZW5kKS5jb25jYXQocnVsZS5zZWxlY3QoY291bnQpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmdldFN1ZmZpeFJldHJvQ29tcGF0aWJsZShydWxlLCBjb3VudCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMubG9nZ2VyLndhcm4oXCJubyBwbHVyYWwgcnVsZSBmb3VuZCBmb3I6IFwiLmNvbmNhdChjb2RlKSk7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImdldFN1ZmZpeFJldHJvQ29tcGF0aWJsZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRTdWZmaXhSZXRyb0NvbXBhdGlibGUocnVsZSwgY291bnQpIHtcbiAgICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgICB2YXIgaWR4ID0gcnVsZS5ub0FicyA/IHJ1bGUucGx1cmFscyhjb3VudCkgOiBydWxlLnBsdXJhbHMoTWF0aC5hYnMoY291bnQpKTtcbiAgICAgIHZhciBzdWZmaXggPSBydWxlLm51bWJlcnNbaWR4XTtcblxuICAgICAgaWYgKHRoaXMub3B0aW9ucy5zaW1wbGlmeVBsdXJhbFN1ZmZpeCAmJiBydWxlLm51bWJlcnMubGVuZ3RoID09PSAyICYmIHJ1bGUubnVtYmVyc1swXSA9PT0gMSkge1xuICAgICAgICBpZiAoc3VmZml4ID09PSAyKSB7XG4gICAgICAgICAgc3VmZml4ID0gJ3BsdXJhbCc7XG4gICAgICAgIH0gZWxzZSBpZiAoc3VmZml4ID09PSAxKSB7XG4gICAgICAgICAgc3VmZml4ID0gJyc7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdmFyIHJldHVyblN1ZmZpeCA9IGZ1bmN0aW9uIHJldHVyblN1ZmZpeCgpIHtcbiAgICAgICAgcmV0dXJuIF90aGlzMi5vcHRpb25zLnByZXBlbmQgJiYgc3VmZml4LnRvU3RyaW5nKCkgPyBfdGhpczIub3B0aW9ucy5wcmVwZW5kICsgc3VmZml4LnRvU3RyaW5nKCkgOiBzdWZmaXgudG9TdHJpbmcoKTtcbiAgICAgIH07XG5cbiAgICAgIGlmICh0aGlzLm9wdGlvbnMuY29tcGF0aWJpbGl0eUpTT04gPT09ICd2MScpIHtcbiAgICAgICAgaWYgKHN1ZmZpeCA9PT0gMSkgcmV0dXJuICcnO1xuICAgICAgICBpZiAodHlwZW9mIHN1ZmZpeCA9PT0gJ251bWJlcicpIHJldHVybiBcIl9wbHVyYWxfXCIuY29uY2F0KHN1ZmZpeC50b1N0cmluZygpKTtcbiAgICAgICAgcmV0dXJuIHJldHVyblN1ZmZpeCgpO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLm9wdGlvbnMuY29tcGF0aWJpbGl0eUpTT04gPT09ICd2MicpIHtcbiAgICAgICAgcmV0dXJuIHJldHVyblN1ZmZpeCgpO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLm9wdGlvbnMuc2ltcGxpZnlQbHVyYWxTdWZmaXggJiYgcnVsZS5udW1iZXJzLmxlbmd0aCA9PT0gMiAmJiBydWxlLm51bWJlcnNbMF0gPT09IDEpIHtcbiAgICAgICAgcmV0dXJuIHJldHVyblN1ZmZpeCgpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5vcHRpb25zLnByZXBlbmQgJiYgaWR4LnRvU3RyaW5nKCkgPyB0aGlzLm9wdGlvbnMucHJlcGVuZCArIGlkeC50b1N0cmluZygpIDogaWR4LnRvU3RyaW5nKCk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInNob3VsZFVzZUludGxBcGlcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gc2hvdWxkVXNlSW50bEFwaSgpIHtcbiAgICAgIHJldHVybiAhZGVwcmVjYXRlZEpzb25WZXJzaW9ucy5pbmNsdWRlcyh0aGlzLm9wdGlvbnMuY29tcGF0aWJpbGl0eUpTT04pO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBQbHVyYWxSZXNvbHZlcjtcbn0oKTtcblxudmFyIEludGVycG9sYXRvciA9IGZ1bmN0aW9uICgpIHtcbiAgZnVuY3Rpb24gSW50ZXJwb2xhdG9yKCkge1xuICAgIHZhciBvcHRpb25zID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fTtcblxuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBJbnRlcnBvbGF0b3IpO1xuXG4gICAgdGhpcy5sb2dnZXIgPSBiYXNlTG9nZ2VyLmNyZWF0ZSgnaW50ZXJwb2xhdG9yJyk7XG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcblxuICAgIHRoaXMuZm9ybWF0ID0gb3B0aW9ucy5pbnRlcnBvbGF0aW9uICYmIG9wdGlvbnMuaW50ZXJwb2xhdGlvbi5mb3JtYXQgfHwgZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfTtcblxuICAgIHRoaXMuaW5pdChvcHRpb25zKTtcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhJbnRlcnBvbGF0b3IsIFt7XG4gICAga2V5OiBcImluaXRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gaW5pdCgpIHtcbiAgICAgIHZhciBvcHRpb25zID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fTtcbiAgICAgIGlmICghb3B0aW9ucy5pbnRlcnBvbGF0aW9uKSBvcHRpb25zLmludGVycG9sYXRpb24gPSB7XG4gICAgICAgIGVzY2FwZVZhbHVlOiB0cnVlXG4gICAgICB9O1xuICAgICAgdmFyIGlPcHRzID0gb3B0aW9ucy5pbnRlcnBvbGF0aW9uO1xuICAgICAgdGhpcy5lc2NhcGUgPSBpT3B0cy5lc2NhcGUgIT09IHVuZGVmaW5lZCA/IGlPcHRzLmVzY2FwZSA6IGVzY2FwZTtcbiAgICAgIHRoaXMuZXNjYXBlVmFsdWUgPSBpT3B0cy5lc2NhcGVWYWx1ZSAhPT0gdW5kZWZpbmVkID8gaU9wdHMuZXNjYXBlVmFsdWUgOiB0cnVlO1xuICAgICAgdGhpcy51c2VSYXdWYWx1ZVRvRXNjYXBlID0gaU9wdHMudXNlUmF3VmFsdWVUb0VzY2FwZSAhPT0gdW5kZWZpbmVkID8gaU9wdHMudXNlUmF3VmFsdWVUb0VzY2FwZSA6IGZhbHNlO1xuICAgICAgdGhpcy5wcmVmaXggPSBpT3B0cy5wcmVmaXggPyByZWdleEVzY2FwZShpT3B0cy5wcmVmaXgpIDogaU9wdHMucHJlZml4RXNjYXBlZCB8fCAne3snO1xuICAgICAgdGhpcy5zdWZmaXggPSBpT3B0cy5zdWZmaXggPyByZWdleEVzY2FwZShpT3B0cy5zdWZmaXgpIDogaU9wdHMuc3VmZml4RXNjYXBlZCB8fCAnfX0nO1xuICAgICAgdGhpcy5mb3JtYXRTZXBhcmF0b3IgPSBpT3B0cy5mb3JtYXRTZXBhcmF0b3IgPyBpT3B0cy5mb3JtYXRTZXBhcmF0b3IgOiBpT3B0cy5mb3JtYXRTZXBhcmF0b3IgfHwgJywnO1xuICAgICAgdGhpcy51bmVzY2FwZVByZWZpeCA9IGlPcHRzLnVuZXNjYXBlU3VmZml4ID8gJycgOiBpT3B0cy51bmVzY2FwZVByZWZpeCB8fCAnLSc7XG4gICAgICB0aGlzLnVuZXNjYXBlU3VmZml4ID0gdGhpcy51bmVzY2FwZVByZWZpeCA/ICcnIDogaU9wdHMudW5lc2NhcGVTdWZmaXggfHwgJyc7XG4gICAgICB0aGlzLm5lc3RpbmdQcmVmaXggPSBpT3B0cy5uZXN0aW5nUHJlZml4ID8gcmVnZXhFc2NhcGUoaU9wdHMubmVzdGluZ1ByZWZpeCkgOiBpT3B0cy5uZXN0aW5nUHJlZml4RXNjYXBlZCB8fCByZWdleEVzY2FwZSgnJHQoJyk7XG4gICAgICB0aGlzLm5lc3RpbmdTdWZmaXggPSBpT3B0cy5uZXN0aW5nU3VmZml4ID8gcmVnZXhFc2NhcGUoaU9wdHMubmVzdGluZ1N1ZmZpeCkgOiBpT3B0cy5uZXN0aW5nU3VmZml4RXNjYXBlZCB8fCByZWdleEVzY2FwZSgnKScpO1xuICAgICAgdGhpcy5uZXN0aW5nT3B0aW9uc1NlcGFyYXRvciA9IGlPcHRzLm5lc3RpbmdPcHRpb25zU2VwYXJhdG9yID8gaU9wdHMubmVzdGluZ09wdGlvbnNTZXBhcmF0b3IgOiBpT3B0cy5uZXN0aW5nT3B0aW9uc1NlcGFyYXRvciB8fCAnLCc7XG4gICAgICB0aGlzLm1heFJlcGxhY2VzID0gaU9wdHMubWF4UmVwbGFjZXMgPyBpT3B0cy5tYXhSZXBsYWNlcyA6IDEwMDA7XG4gICAgICB0aGlzLmFsd2F5c0Zvcm1hdCA9IGlPcHRzLmFsd2F5c0Zvcm1hdCAhPT0gdW5kZWZpbmVkID8gaU9wdHMuYWx3YXlzRm9ybWF0IDogZmFsc2U7XG4gICAgICB0aGlzLnJlc2V0UmVnRXhwKCk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlc2V0XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlc2V0KCkge1xuICAgICAgaWYgKHRoaXMub3B0aW9ucykgdGhpcy5pbml0KHRoaXMub3B0aW9ucyk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlc2V0UmVnRXhwXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlc2V0UmVnRXhwKCkge1xuICAgICAgdmFyIHJlZ2V4cFN0ciA9IFwiXCIuY29uY2F0KHRoaXMucHJlZml4LCBcIiguKz8pXCIpLmNvbmNhdCh0aGlzLnN1ZmZpeCk7XG4gICAgICB0aGlzLnJlZ2V4cCA9IG5ldyBSZWdFeHAocmVnZXhwU3RyLCAnZycpO1xuICAgICAgdmFyIHJlZ2V4cFVuZXNjYXBlU3RyID0gXCJcIi5jb25jYXQodGhpcy5wcmVmaXgpLmNvbmNhdCh0aGlzLnVuZXNjYXBlUHJlZml4LCBcIiguKz8pXCIpLmNvbmNhdCh0aGlzLnVuZXNjYXBlU3VmZml4KS5jb25jYXQodGhpcy5zdWZmaXgpO1xuICAgICAgdGhpcy5yZWdleHBVbmVzY2FwZSA9IG5ldyBSZWdFeHAocmVnZXhwVW5lc2NhcGVTdHIsICdnJyk7XG4gICAgICB2YXIgbmVzdGluZ1JlZ2V4cFN0ciA9IFwiXCIuY29uY2F0KHRoaXMubmVzdGluZ1ByZWZpeCwgXCIoLis/KVwiKS5jb25jYXQodGhpcy5uZXN0aW5nU3VmZml4KTtcbiAgICAgIHRoaXMubmVzdGluZ1JlZ2V4cCA9IG5ldyBSZWdFeHAobmVzdGluZ1JlZ2V4cFN0ciwgJ2cnKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiaW50ZXJwb2xhdGVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gaW50ZXJwb2xhdGUoc3RyLCBkYXRhLCBsbmcsIG9wdGlvbnMpIHtcbiAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgICAgIHZhciBtYXRjaDtcbiAgICAgIHZhciB2YWx1ZTtcbiAgICAgIHZhciByZXBsYWNlcztcbiAgICAgIHZhciBkZWZhdWx0RGF0YSA9IHRoaXMub3B0aW9ucyAmJiB0aGlzLm9wdGlvbnMuaW50ZXJwb2xhdGlvbiAmJiB0aGlzLm9wdGlvbnMuaW50ZXJwb2xhdGlvbi5kZWZhdWx0VmFyaWFibGVzIHx8IHt9O1xuXG4gICAgICBmdW5jdGlvbiByZWdleFNhZmUodmFsKSB7XG4gICAgICAgIHJldHVybiB2YWwucmVwbGFjZSgvXFwkL2csICckJCQkJyk7XG4gICAgICB9XG5cbiAgICAgIHZhciBoYW5kbGVGb3JtYXQgPSBmdW5jdGlvbiBoYW5kbGVGb3JtYXQoa2V5KSB7XG4gICAgICAgIGlmIChrZXkuaW5kZXhPZihfdGhpcy5mb3JtYXRTZXBhcmF0b3IpIDwgMCkge1xuICAgICAgICAgIHZhciBwYXRoID0gZ2V0UGF0aFdpdGhEZWZhdWx0cyhkYXRhLCBkZWZhdWx0RGF0YSwga2V5KTtcbiAgICAgICAgICByZXR1cm4gX3RoaXMuYWx3YXlzRm9ybWF0ID8gX3RoaXMuZm9ybWF0KHBhdGgsIHVuZGVmaW5lZCwgbG5nLCBfb2JqZWN0U3ByZWFkKHt9LCBvcHRpb25zLCBkYXRhLCB7XG4gICAgICAgICAgICBpbnRlcnBvbGF0aW9ua2V5OiBrZXlcbiAgICAgICAgICB9KSkgOiBwYXRoO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHAgPSBrZXkuc3BsaXQoX3RoaXMuZm9ybWF0U2VwYXJhdG9yKTtcbiAgICAgICAgdmFyIGsgPSBwLnNoaWZ0KCkudHJpbSgpO1xuICAgICAgICB2YXIgZiA9IHAuam9pbihfdGhpcy5mb3JtYXRTZXBhcmF0b3IpLnRyaW0oKTtcbiAgICAgICAgcmV0dXJuIF90aGlzLmZvcm1hdChnZXRQYXRoV2l0aERlZmF1bHRzKGRhdGEsIGRlZmF1bHREYXRhLCBrKSwgZiwgbG5nLCBfb2JqZWN0U3ByZWFkKHt9LCBvcHRpb25zLCBkYXRhLCB7XG4gICAgICAgICAgaW50ZXJwb2xhdGlvbmtleToga1xuICAgICAgICB9KSk7XG4gICAgICB9O1xuXG4gICAgICB0aGlzLnJlc2V0UmVnRXhwKCk7XG4gICAgICB2YXIgbWlzc2luZ0ludGVycG9sYXRpb25IYW5kbGVyID0gb3B0aW9ucyAmJiBvcHRpb25zLm1pc3NpbmdJbnRlcnBvbGF0aW9uSGFuZGxlciB8fCB0aGlzLm9wdGlvbnMubWlzc2luZ0ludGVycG9sYXRpb25IYW5kbGVyO1xuICAgICAgdmFyIHNraXBPblZhcmlhYmxlcyA9IG9wdGlvbnMgJiYgb3B0aW9ucy5pbnRlcnBvbGF0aW9uICYmIG9wdGlvbnMuaW50ZXJwb2xhdGlvbi5za2lwT25WYXJpYWJsZXMgfHwgdGhpcy5vcHRpb25zLmludGVycG9sYXRpb24uc2tpcE9uVmFyaWFibGVzO1xuICAgICAgdmFyIHRvZG9zID0gW3tcbiAgICAgICAgcmVnZXg6IHRoaXMucmVnZXhwVW5lc2NhcGUsXG4gICAgICAgIHNhZmVWYWx1ZTogZnVuY3Rpb24gc2FmZVZhbHVlKHZhbCkge1xuICAgICAgICAgIHJldHVybiByZWdleFNhZmUodmFsKTtcbiAgICAgICAgfVxuICAgICAgfSwge1xuICAgICAgICByZWdleDogdGhpcy5yZWdleHAsXG4gICAgICAgIHNhZmVWYWx1ZTogZnVuY3Rpb24gc2FmZVZhbHVlKHZhbCkge1xuICAgICAgICAgIHJldHVybiBfdGhpcy5lc2NhcGVWYWx1ZSA/IHJlZ2V4U2FmZShfdGhpcy5lc2NhcGUodmFsKSkgOiByZWdleFNhZmUodmFsKTtcbiAgICAgICAgfVxuICAgICAgfV07XG4gICAgICB0b2Rvcy5mb3JFYWNoKGZ1bmN0aW9uICh0b2RvKSB7XG4gICAgICAgIHJlcGxhY2VzID0gMDtcblxuICAgICAgICB3aGlsZSAobWF0Y2ggPSB0b2RvLnJlZ2V4LmV4ZWMoc3RyKSkge1xuICAgICAgICAgIHZhbHVlID0gaGFuZGxlRm9ybWF0KG1hdGNoWzFdLnRyaW0oKSk7XG5cbiAgICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBtaXNzaW5nSW50ZXJwb2xhdGlvbkhhbmRsZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgdmFyIHRlbXAgPSBtaXNzaW5nSW50ZXJwb2xhdGlvbkhhbmRsZXIoc3RyLCBtYXRjaCwgb3B0aW9ucyk7XG4gICAgICAgICAgICAgIHZhbHVlID0gdHlwZW9mIHRlbXAgPT09ICdzdHJpbmcnID8gdGVtcCA6ICcnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChza2lwT25WYXJpYWJsZXMpIHtcbiAgICAgICAgICAgICAgdmFsdWUgPSBtYXRjaFswXTtcbiAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBfdGhpcy5sb2dnZXIud2FybihcIm1pc3NlZCB0byBwYXNzIGluIHZhcmlhYmxlIFwiLmNvbmNhdChtYXRjaFsxXSwgXCIgZm9yIGludGVycG9sYXRpbmcgXCIpLmNvbmNhdChzdHIpKTtcblxuICAgICAgICAgICAgICB2YWx1ZSA9ICcnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJyAmJiAhX3RoaXMudXNlUmF3VmFsdWVUb0VzY2FwZSkge1xuICAgICAgICAgICAgdmFsdWUgPSBtYWtlU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB2YXIgc2FmZVZhbHVlID0gdG9kby5zYWZlVmFsdWUodmFsdWUpO1xuICAgICAgICAgIHN0ciA9IHN0ci5yZXBsYWNlKG1hdGNoWzBdLCBzYWZlVmFsdWUpO1xuXG4gICAgICAgICAgaWYgKHNraXBPblZhcmlhYmxlcykge1xuICAgICAgICAgICAgdG9kby5yZWdleC5sYXN0SW5kZXggKz0gc2FmZVZhbHVlLmxlbmd0aDtcbiAgICAgICAgICAgIHRvZG8ucmVnZXgubGFzdEluZGV4IC09IG1hdGNoWzBdLmxlbmd0aDtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdG9kby5yZWdleC5sYXN0SW5kZXggPSAwO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJlcGxhY2VzKys7XG5cbiAgICAgICAgICBpZiAocmVwbGFjZXMgPj0gX3RoaXMubWF4UmVwbGFjZXMpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gc3RyO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJuZXN0XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIG5lc3Qoc3RyLCBmYykge1xuICAgICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgICAgIHZhciBvcHRpb25zID0gYXJndW1lbnRzLmxlbmd0aCA+IDIgJiYgYXJndW1lbnRzWzJdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMl0gOiB7fTtcbiAgICAgIHZhciBtYXRjaDtcbiAgICAgIHZhciB2YWx1ZTtcblxuICAgICAgdmFyIGNsb25lZE9wdGlvbnMgPSBfb2JqZWN0U3ByZWFkKHt9LCBvcHRpb25zKTtcblxuICAgICAgY2xvbmVkT3B0aW9ucy5hcHBseVBvc3RQcm9jZXNzb3IgPSBmYWxzZTtcbiAgICAgIGRlbGV0ZSBjbG9uZWRPcHRpb25zLmRlZmF1bHRWYWx1ZTtcblxuICAgICAgZnVuY3Rpb24gaGFuZGxlSGFzT3B0aW9ucyhrZXksIGluaGVyaXRlZE9wdGlvbnMpIHtcbiAgICAgICAgdmFyIHNlcCA9IHRoaXMubmVzdGluZ09wdGlvbnNTZXBhcmF0b3I7XG4gICAgICAgIGlmIChrZXkuaW5kZXhPZihzZXApIDwgMCkgcmV0dXJuIGtleTtcbiAgICAgICAgdmFyIGMgPSBrZXkuc3BsaXQobmV3IFJlZ0V4cChcIlwiLmNvbmNhdChzZXAsIFwiWyBdKntcIikpKTtcbiAgICAgICAgdmFyIG9wdGlvbnNTdHJpbmcgPSBcIntcIi5jb25jYXQoY1sxXSk7XG4gICAgICAgIGtleSA9IGNbMF07XG4gICAgICAgIG9wdGlvbnNTdHJpbmcgPSB0aGlzLmludGVycG9sYXRlKG9wdGlvbnNTdHJpbmcsIGNsb25lZE9wdGlvbnMpO1xuICAgICAgICBvcHRpb25zU3RyaW5nID0gb3B0aW9uc1N0cmluZy5yZXBsYWNlKC8nL2csICdcIicpO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY2xvbmVkT3B0aW9ucyA9IEpTT04ucGFyc2Uob3B0aW9uc1N0cmluZyk7XG4gICAgICAgICAgaWYgKGluaGVyaXRlZE9wdGlvbnMpIGNsb25lZE9wdGlvbnMgPSBfb2JqZWN0U3ByZWFkKHt9LCBpbmhlcml0ZWRPcHRpb25zLCBjbG9uZWRPcHRpb25zKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLndhcm4oXCJmYWlsZWQgcGFyc2luZyBvcHRpb25zIHN0cmluZyBpbiBuZXN0aW5nIGZvciBrZXkgXCIuY29uY2F0KGtleSksIGUpO1xuICAgICAgICAgIHJldHVybiBcIlwiLmNvbmNhdChrZXkpLmNvbmNhdChzZXApLmNvbmNhdChvcHRpb25zU3RyaW5nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGRlbGV0ZSBjbG9uZWRPcHRpb25zLmRlZmF1bHRWYWx1ZTtcbiAgICAgICAgcmV0dXJuIGtleTtcbiAgICAgIH1cblxuICAgICAgd2hpbGUgKG1hdGNoID0gdGhpcy5uZXN0aW5nUmVnZXhwLmV4ZWMoc3RyKSkge1xuICAgICAgICB2YXIgZm9ybWF0dGVycyA9IFtdO1xuICAgICAgICB2YXIgZG9SZWR1Y2UgPSBmYWxzZTtcblxuICAgICAgICBpZiAobWF0Y2hbMF0uaW5kZXhPZih0aGlzLmZvcm1hdFNlcGFyYXRvcikgIT09IC0xICYmICEvey4qfS8udGVzdChtYXRjaFsxXSkpIHtcbiAgICAgICAgICB2YXIgciA9IG1hdGNoWzFdLnNwbGl0KHRoaXMuZm9ybWF0U2VwYXJhdG9yKS5tYXAoZnVuY3Rpb24gKGVsZW0pIHtcbiAgICAgICAgICAgIHJldHVybiBlbGVtLnRyaW0oKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBtYXRjaFsxXSA9IHIuc2hpZnQoKTtcbiAgICAgICAgICBmb3JtYXR0ZXJzID0gcjtcbiAgICAgICAgICBkb1JlZHVjZSA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICB2YWx1ZSA9IGZjKGhhbmRsZUhhc09wdGlvbnMuY2FsbCh0aGlzLCBtYXRjaFsxXS50cmltKCksIGNsb25lZE9wdGlvbnMpLCBjbG9uZWRPcHRpb25zKTtcbiAgICAgICAgaWYgKHZhbHVlICYmIG1hdGNoWzBdID09PSBzdHIgJiYgdHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJykgcmV0dXJuIHZhbHVlO1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJykgdmFsdWUgPSBtYWtlU3RyaW5nKHZhbHVlKTtcblxuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIud2FybihcIm1pc3NlZCB0byByZXNvbHZlIFwiLmNvbmNhdChtYXRjaFsxXSwgXCIgZm9yIG5lc3RpbmcgXCIpLmNvbmNhdChzdHIpKTtcbiAgICAgICAgICB2YWx1ZSA9ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGRvUmVkdWNlKSB7XG4gICAgICAgICAgdmFsdWUgPSBmb3JtYXR0ZXJzLnJlZHVjZShmdW5jdGlvbiAodiwgZikge1xuICAgICAgICAgICAgcmV0dXJuIF90aGlzMi5mb3JtYXQodiwgZiwgb3B0aW9ucy5sbmcsIF9vYmplY3RTcHJlYWQoe30sIG9wdGlvbnMsIHtcbiAgICAgICAgICAgICAgaW50ZXJwb2xhdGlvbmtleTogbWF0Y2hbMV0udHJpbSgpXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgfSwgdmFsdWUudHJpbSgpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN0ciA9IHN0ci5yZXBsYWNlKG1hdGNoWzBdLCB2YWx1ZSk7XG4gICAgICAgIHRoaXMucmVnZXhwLmxhc3RJbmRleCA9IDA7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBzdHI7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIEludGVycG9sYXRvcjtcbn0oKTtcblxuZnVuY3Rpb24gcGFyc2VGb3JtYXRTdHIoZm9ybWF0U3RyKSB7XG4gIHZhciBmb3JtYXROYW1lID0gZm9ybWF0U3RyLnRvTG93ZXJDYXNlKCk7XG4gIHZhciBmb3JtYXRPcHRpb25zID0ge307XG5cbiAgaWYgKGZvcm1hdFN0ci5pbmRleE9mKCcoJykgPiAtMSkge1xuICAgIHZhciBwID0gZm9ybWF0U3RyLnNwbGl0KCcoJyk7XG4gICAgZm9ybWF0TmFtZSA9IHBbMF0udG9Mb3dlckNhc2UoKTtcbiAgICB2YXIgb3B0U3RyID0gcFsxXS5zdWJzdHJpbmcoMCwgcFsxXS5sZW5ndGggLSAxKTtcblxuICAgIGlmIChmb3JtYXROYW1lID09PSAnY3VycmVuY3knICYmIG9wdFN0ci5pbmRleE9mKCc6JykgPCAwKSB7XG4gICAgICBpZiAoIWZvcm1hdE9wdGlvbnMuY3VycmVuY3kpIGZvcm1hdE9wdGlvbnMuY3VycmVuY3kgPSBvcHRTdHIudHJpbSgpO1xuICAgIH0gZWxzZSBpZiAoZm9ybWF0TmFtZSA9PT0gJ3JlbGF0aXZldGltZScgJiYgb3B0U3RyLmluZGV4T2YoJzonKSA8IDApIHtcbiAgICAgIGlmICghZm9ybWF0T3B0aW9ucy5yYW5nZSkgZm9ybWF0T3B0aW9ucy5yYW5nZSA9IG9wdFN0ci50cmltKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBvcHRzID0gb3B0U3RyLnNwbGl0KCc7Jyk7XG4gICAgICBvcHRzLmZvckVhY2goZnVuY3Rpb24gKG9wdCkge1xuICAgICAgICBpZiAoIW9wdCkgcmV0dXJuO1xuXG4gICAgICAgIHZhciBfb3B0JHNwbGl0ID0gb3B0LnNwbGl0KCc6JyksXG4gICAgICAgICAgICBfb3B0JHNwbGl0MiA9IF9zbGljZWRUb0FycmF5KF9vcHQkc3BsaXQsIDIpLFxuICAgICAgICAgICAga2V5ID0gX29wdCRzcGxpdDJbMF0sXG4gICAgICAgICAgICB2YWwgPSBfb3B0JHNwbGl0MlsxXTtcblxuICAgICAgICBpZiAodmFsLnRyaW0oKSA9PT0gJ2ZhbHNlJykgZm9ybWF0T3B0aW9uc1trZXkudHJpbSgpXSA9IGZhbHNlO1xuICAgICAgICBpZiAodmFsLnRyaW0oKSA9PT0gJ3RydWUnKSBmb3JtYXRPcHRpb25zW2tleS50cmltKCldID0gdHJ1ZTtcbiAgICAgICAgaWYgKCFpc05hTih2YWwudHJpbSgpKSkgZm9ybWF0T3B0aW9uc1trZXkudHJpbSgpXSA9IHBhcnNlSW50KHZhbC50cmltKCksIDEwKTtcbiAgICAgICAgaWYgKCFmb3JtYXRPcHRpb25zW2tleS50cmltKCldKSBmb3JtYXRPcHRpb25zW2tleS50cmltKCldID0gdmFsLnRyaW0oKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZm9ybWF0TmFtZTogZm9ybWF0TmFtZSxcbiAgICBmb3JtYXRPcHRpb25zOiBmb3JtYXRPcHRpb25zXG4gIH07XG59XG5cbnZhciBGb3JtYXR0ZXIgPSBmdW5jdGlvbiAoKSB7XG4gIGZ1bmN0aW9uIEZvcm1hdHRlcigpIHtcbiAgICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge307XG5cbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgRm9ybWF0dGVyKTtcblxuICAgIHRoaXMubG9nZ2VyID0gYmFzZUxvZ2dlci5jcmVhdGUoJ2Zvcm1hdHRlcicpO1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgdGhpcy5mb3JtYXRzID0ge1xuICAgICAgbnVtYmVyOiBmdW5jdGlvbiBudW1iZXIodmFsLCBsbmcsIG9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBJbnRsLk51bWJlckZvcm1hdChsbmcsIG9wdGlvbnMpLmZvcm1hdCh2YWwpO1xuICAgICAgfSxcbiAgICAgIGN1cnJlbmN5OiBmdW5jdGlvbiBjdXJyZW5jeSh2YWwsIGxuZywgb3B0aW9ucykge1xuICAgICAgICByZXR1cm4gbmV3IEludGwuTnVtYmVyRm9ybWF0KGxuZywgX29iamVjdFNwcmVhZCh7fSwgb3B0aW9ucywge1xuICAgICAgICAgIHN0eWxlOiAnY3VycmVuY3knXG4gICAgICAgIH0pKS5mb3JtYXQodmFsKTtcbiAgICAgIH0sXG4gICAgICBkYXRldGltZTogZnVuY3Rpb24gZGF0ZXRpbWUodmFsLCBsbmcsIG9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KGxuZywgX29iamVjdFNwcmVhZCh7fSwgb3B0aW9ucykpLmZvcm1hdCh2YWwpO1xuICAgICAgfSxcbiAgICAgIHJlbGF0aXZldGltZTogZnVuY3Rpb24gcmVsYXRpdmV0aW1lKHZhbCwgbG5nLCBvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiBuZXcgSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQobG5nLCBfb2JqZWN0U3ByZWFkKHt9LCBvcHRpb25zKSkuZm9ybWF0KHZhbCwgb3B0aW9ucy5yYW5nZSB8fCAnZGF5Jyk7XG4gICAgICB9LFxuICAgICAgbGlzdDogZnVuY3Rpb24gbGlzdCh2YWwsIGxuZywgb3B0aW9ucykge1xuICAgICAgICByZXR1cm4gbmV3IEludGwuTGlzdEZvcm1hdChsbmcsIF9vYmplY3RTcHJlYWQoe30sIG9wdGlvbnMpKS5mb3JtYXQodmFsKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIHRoaXMuaW5pdChvcHRpb25zKTtcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhGb3JtYXR0ZXIsIFt7XG4gICAga2V5OiBcImluaXRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gaW5pdChzZXJ2aWNlcykge1xuICAgICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IHtcbiAgICAgICAgaW50ZXJwb2xhdGlvbjoge31cbiAgICAgIH07XG4gICAgICB2YXIgaU9wdHMgPSBvcHRpb25zLmludGVycG9sYXRpb247XG4gICAgICB0aGlzLmZvcm1hdFNlcGFyYXRvciA9IGlPcHRzLmZvcm1hdFNlcGFyYXRvciA/IGlPcHRzLmZvcm1hdFNlcGFyYXRvciA6IGlPcHRzLmZvcm1hdFNlcGFyYXRvciB8fCAnLCc7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImFkZFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBhZGQobmFtZSwgZmMpIHtcbiAgICAgIHRoaXMuZm9ybWF0c1tuYW1lXSA9IGZjO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJmb3JtYXRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZm9ybWF0KHZhbHVlLCBfZm9ybWF0LCBsbmcsIG9wdGlvbnMpIHtcbiAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgICAgIHZhciBmb3JtYXRzID0gX2Zvcm1hdC5zcGxpdCh0aGlzLmZvcm1hdFNlcGFyYXRvcik7XG5cbiAgICAgIHZhciByZXN1bHQgPSBmb3JtYXRzLnJlZHVjZShmdW5jdGlvbiAobWVtLCBmKSB7XG4gICAgICAgIHZhciBfcGFyc2VGb3JtYXRTdHIgPSBwYXJzZUZvcm1hdFN0cihmKSxcbiAgICAgICAgICAgIGZvcm1hdE5hbWUgPSBfcGFyc2VGb3JtYXRTdHIuZm9ybWF0TmFtZSxcbiAgICAgICAgICAgIGZvcm1hdE9wdGlvbnMgPSBfcGFyc2VGb3JtYXRTdHIuZm9ybWF0T3B0aW9ucztcblxuICAgICAgICBpZiAoX3RoaXMuZm9ybWF0c1tmb3JtYXROYW1lXSkge1xuICAgICAgICAgIHZhciBmb3JtYXR0ZWQgPSBtZW07XG5cbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgdmFyIHZhbE9wdGlvbnMgPSBvcHRpb25zICYmIG9wdGlvbnMuZm9ybWF0UGFyYW1zICYmIG9wdGlvbnMuZm9ybWF0UGFyYW1zW29wdGlvbnMuaW50ZXJwb2xhdGlvbmtleV0gfHwge307XG4gICAgICAgICAgICB2YXIgbCA9IHZhbE9wdGlvbnMubG9jYWxlIHx8IHZhbE9wdGlvbnMubG5nIHx8IG9wdGlvbnMubG9jYWxlIHx8IG9wdGlvbnMubG5nIHx8IGxuZztcbiAgICAgICAgICAgIGZvcm1hdHRlZCA9IF90aGlzLmZvcm1hdHNbZm9ybWF0TmFtZV0obWVtLCBsLCBfb2JqZWN0U3ByZWFkKHt9LCBmb3JtYXRPcHRpb25zLCBvcHRpb25zLCB2YWxPcHRpb25zKSk7XG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIF90aGlzLmxvZ2dlci53YXJuKGVycm9yKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gZm9ybWF0dGVkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIF90aGlzLmxvZ2dlci53YXJuKFwidGhlcmUgd2FzIG5vIGZvcm1hdCBmdW5jdGlvbiBmb3IgXCIuY29uY2F0KGZvcm1hdE5hbWUpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBtZW07XG4gICAgICB9LCB2YWx1ZSk7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBGb3JtYXR0ZXI7XG59KCk7XG5cbmZ1bmN0aW9uIHJlbW92ZShhcnIsIHdoYXQpIHtcbiAgdmFyIGZvdW5kID0gYXJyLmluZGV4T2Yod2hhdCk7XG5cbiAgd2hpbGUgKGZvdW5kICE9PSAtMSkge1xuICAgIGFyci5zcGxpY2UoZm91bmQsIDEpO1xuICAgIGZvdW5kID0gYXJyLmluZGV4T2Yod2hhdCk7XG4gIH1cbn1cblxudmFyIENvbm5lY3RvciA9IGZ1bmN0aW9uIChfRXZlbnRFbWl0dGVyKSB7XG4gIF9pbmhlcml0cyhDb25uZWN0b3IsIF9FdmVudEVtaXR0ZXIpO1xuXG4gIGZ1bmN0aW9uIENvbm5lY3RvcihiYWNrZW5kLCBzdG9yZSwgc2VydmljZXMpIHtcbiAgICB2YXIgX3RoaXM7XG5cbiAgICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiAzICYmIGFyZ3VtZW50c1szXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzNdIDoge307XG5cbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgQ29ubmVjdG9yKTtcblxuICAgIF90aGlzID0gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgX2dldFByb3RvdHlwZU9mKENvbm5lY3RvcikuY2FsbCh0aGlzKSk7XG5cbiAgICBpZiAoaXNJRTEwKSB7XG4gICAgICBFdmVudEVtaXR0ZXIuY2FsbChfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSk7XG4gICAgfVxuXG4gICAgX3RoaXMuYmFja2VuZCA9IGJhY2tlbmQ7XG4gICAgX3RoaXMuc3RvcmUgPSBzdG9yZTtcbiAgICBfdGhpcy5zZXJ2aWNlcyA9IHNlcnZpY2VzO1xuICAgIF90aGlzLmxhbmd1YWdlVXRpbHMgPSBzZXJ2aWNlcy5sYW5ndWFnZVV0aWxzO1xuICAgIF90aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgIF90aGlzLmxvZ2dlciA9IGJhc2VMb2dnZXIuY3JlYXRlKCdiYWNrZW5kQ29ubmVjdG9yJyk7XG4gICAgX3RoaXMuc3RhdGUgPSB7fTtcbiAgICBfdGhpcy5xdWV1ZSA9IFtdO1xuXG4gICAgaWYgKF90aGlzLmJhY2tlbmQgJiYgX3RoaXMuYmFja2VuZC5pbml0KSB7XG4gICAgICBfdGhpcy5iYWNrZW5kLmluaXQoc2VydmljZXMsIG9wdGlvbnMuYmFja2VuZCwgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIF90aGlzO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKENvbm5lY3RvciwgW3tcbiAgICBrZXk6IFwicXVldWVMb2FkXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHF1ZXVlTG9hZChsYW5ndWFnZXMsIG5hbWVzcGFjZXMsIG9wdGlvbnMsIGNhbGxiYWNrKSB7XG4gICAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgICAgdmFyIHRvTG9hZCA9IFtdO1xuICAgICAgdmFyIHBlbmRpbmcgPSBbXTtcbiAgICAgIHZhciB0b0xvYWRMYW5ndWFnZXMgPSBbXTtcbiAgICAgIHZhciB0b0xvYWROYW1lc3BhY2VzID0gW107XG4gICAgICBsYW5ndWFnZXMuZm9yRWFjaChmdW5jdGlvbiAobG5nKSB7XG4gICAgICAgIHZhciBoYXNBbGxOYW1lc3BhY2VzID0gdHJ1ZTtcbiAgICAgICAgbmFtZXNwYWNlcy5mb3JFYWNoKGZ1bmN0aW9uIChucykge1xuICAgICAgICAgIHZhciBuYW1lID0gXCJcIi5jb25jYXQobG5nLCBcInxcIikuY29uY2F0KG5zKTtcblxuICAgICAgICAgIGlmICghb3B0aW9ucy5yZWxvYWQgJiYgX3RoaXMyLnN0b3JlLmhhc1Jlc291cmNlQnVuZGxlKGxuZywgbnMpKSB7XG4gICAgICAgICAgICBfdGhpczIuc3RhdGVbbmFtZV0gPSAyO1xuICAgICAgICAgIH0gZWxzZSBpZiAoX3RoaXMyLnN0YXRlW25hbWVdIDwgMCkgOyBlbHNlIGlmIChfdGhpczIuc3RhdGVbbmFtZV0gPT09IDEpIHtcbiAgICAgICAgICAgIGlmIChwZW5kaW5nLmluZGV4T2YobmFtZSkgPCAwKSBwZW5kaW5nLnB1c2gobmFtZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIF90aGlzMi5zdGF0ZVtuYW1lXSA9IDE7XG4gICAgICAgICAgICBoYXNBbGxOYW1lc3BhY2VzID0gZmFsc2U7XG4gICAgICAgICAgICBpZiAocGVuZGluZy5pbmRleE9mKG5hbWUpIDwgMCkgcGVuZGluZy5wdXNoKG5hbWUpO1xuICAgICAgICAgICAgaWYgKHRvTG9hZC5pbmRleE9mKG5hbWUpIDwgMCkgdG9Mb2FkLnB1c2gobmFtZSk7XG4gICAgICAgICAgICBpZiAodG9Mb2FkTmFtZXNwYWNlcy5pbmRleE9mKG5zKSA8IDApIHRvTG9hZE5hbWVzcGFjZXMucHVzaChucyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKCFoYXNBbGxOYW1lc3BhY2VzKSB0b0xvYWRMYW5ndWFnZXMucHVzaChsbmcpO1xuICAgICAgfSk7XG5cbiAgICAgIGlmICh0b0xvYWQubGVuZ3RoIHx8IHBlbmRpbmcubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMucXVldWUucHVzaCh7XG4gICAgICAgICAgcGVuZGluZzogcGVuZGluZyxcbiAgICAgICAgICBsb2FkZWQ6IHt9LFxuICAgICAgICAgIGVycm9yczogW10sXG4gICAgICAgICAgY2FsbGJhY2s6IGNhbGxiYWNrXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICB0b0xvYWQ6IHRvTG9hZCxcbiAgICAgICAgcGVuZGluZzogcGVuZGluZyxcbiAgICAgICAgdG9Mb2FkTGFuZ3VhZ2VzOiB0b0xvYWRMYW5ndWFnZXMsXG4gICAgICAgIHRvTG9hZE5hbWVzcGFjZXM6IHRvTG9hZE5hbWVzcGFjZXNcbiAgICAgIH07XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImxvYWRlZFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBsb2FkZWQobmFtZSwgZXJyLCBkYXRhKSB7XG4gICAgICB2YXIgcyA9IG5hbWUuc3BsaXQoJ3wnKTtcbiAgICAgIHZhciBsbmcgPSBzWzBdO1xuICAgICAgdmFyIG5zID0gc1sxXTtcbiAgICAgIGlmIChlcnIpIHRoaXMuZW1pdCgnZmFpbGVkTG9hZGluZycsIGxuZywgbnMsIGVycik7XG5cbiAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgIHRoaXMuc3RvcmUuYWRkUmVzb3VyY2VCdW5kbGUobG5nLCBucywgZGF0YSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc3RhdGVbbmFtZV0gPSBlcnIgPyAtMSA6IDI7XG4gICAgICB2YXIgbG9hZGVkID0ge307XG4gICAgICB0aGlzLnF1ZXVlLmZvckVhY2goZnVuY3Rpb24gKHEpIHtcbiAgICAgICAgcHVzaFBhdGgocS5sb2FkZWQsIFtsbmddLCBucyk7XG4gICAgICAgIHJlbW92ZShxLnBlbmRpbmcsIG5hbWUpO1xuICAgICAgICBpZiAoZXJyKSBxLmVycm9ycy5wdXNoKGVycik7XG5cbiAgICAgICAgaWYgKHEucGVuZGluZy5sZW5ndGggPT09IDAgJiYgIXEuZG9uZSkge1xuICAgICAgICAgIE9iamVjdC5rZXlzKHEubG9hZGVkKS5mb3JFYWNoKGZ1bmN0aW9uIChsKSB7XG4gICAgICAgICAgICBpZiAoIWxvYWRlZFtsXSkgbG9hZGVkW2xdID0gW107XG5cbiAgICAgICAgICAgIGlmIChxLmxvYWRlZFtsXS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgcS5sb2FkZWRbbF0uZm9yRWFjaChmdW5jdGlvbiAobnMpIHtcbiAgICAgICAgICAgICAgICBpZiAobG9hZGVkW2xdLmluZGV4T2YobnMpIDwgMCkgbG9hZGVkW2xdLnB1c2gobnMpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgICBxLmRvbmUgPSB0cnVlO1xuXG4gICAgICAgICAgaWYgKHEuZXJyb3JzLmxlbmd0aCkge1xuICAgICAgICAgICAgcS5jYWxsYmFjayhxLmVycm9ycyk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHEuY2FsbGJhY2soKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdGhpcy5lbWl0KCdsb2FkZWQnLCBsb2FkZWQpO1xuICAgICAgdGhpcy5xdWV1ZSA9IHRoaXMucXVldWUuZmlsdGVyKGZ1bmN0aW9uIChxKSB7XG4gICAgICAgIHJldHVybiAhcS5kb25lO1xuICAgICAgfSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlYWRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVhZChsbmcsIG5zLCBmY05hbWUpIHtcbiAgICAgIHZhciBfdGhpczMgPSB0aGlzO1xuXG4gICAgICB2YXIgdHJpZWQgPSBhcmd1bWVudHMubGVuZ3RoID4gMyAmJiBhcmd1bWVudHNbM10gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1szXSA6IDA7XG4gICAgICB2YXIgd2FpdCA9IGFyZ3VtZW50cy5sZW5ndGggPiA0ICYmIGFyZ3VtZW50c1s0XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzRdIDogMzUwO1xuICAgICAgdmFyIGNhbGxiYWNrID0gYXJndW1lbnRzLmxlbmd0aCA+IDUgPyBhcmd1bWVudHNbNV0gOiB1bmRlZmluZWQ7XG4gICAgICBpZiAoIWxuZy5sZW5ndGgpIHJldHVybiBjYWxsYmFjayhudWxsLCB7fSk7XG4gICAgICByZXR1cm4gdGhpcy5iYWNrZW5kW2ZjTmFtZV0obG5nLCBucywgZnVuY3Rpb24gKGVyciwgZGF0YSkge1xuICAgICAgICBpZiAoZXJyICYmIGRhdGEgJiYgdHJpZWQgPCA1KSB7XG4gICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBfdGhpczMucmVhZC5jYWxsKF90aGlzMywgbG5nLCBucywgZmNOYW1lLCB0cmllZCArIDEsIHdhaXQgKiAyLCBjYWxsYmFjayk7XG4gICAgICAgICAgfSwgd2FpdCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY2FsbGJhY2soZXJyLCBkYXRhKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJwcmVwYXJlTG9hZGluZ1wiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBwcmVwYXJlTG9hZGluZyhsYW5ndWFnZXMsIG5hbWVzcGFjZXMpIHtcbiAgICAgIHZhciBfdGhpczQgPSB0aGlzO1xuXG4gICAgICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIGFyZ3VtZW50c1syXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzJdIDoge307XG4gICAgICB2YXIgY2FsbGJhY2sgPSBhcmd1bWVudHMubGVuZ3RoID4gMyA/IGFyZ3VtZW50c1szXSA6IHVuZGVmaW5lZDtcblxuICAgICAgaWYgKCF0aGlzLmJhY2tlbmQpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIud2FybignTm8gYmFja2VuZCB3YXMgYWRkZWQgdmlhIGkxOG5leHQudXNlLiBXaWxsIG5vdCBsb2FkIHJlc291cmNlcy4nKTtcbiAgICAgICAgcmV0dXJuIGNhbGxiYWNrICYmIGNhbGxiYWNrKCk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2YgbGFuZ3VhZ2VzID09PSAnc3RyaW5nJykgbGFuZ3VhZ2VzID0gdGhpcy5sYW5ndWFnZVV0aWxzLnRvUmVzb2x2ZUhpZXJhcmNoeShsYW5ndWFnZXMpO1xuICAgICAgaWYgKHR5cGVvZiBuYW1lc3BhY2VzID09PSAnc3RyaW5nJykgbmFtZXNwYWNlcyA9IFtuYW1lc3BhY2VzXTtcbiAgICAgIHZhciB0b0xvYWQgPSB0aGlzLnF1ZXVlTG9hZChsYW5ndWFnZXMsIG5hbWVzcGFjZXMsIG9wdGlvbnMsIGNhbGxiYWNrKTtcblxuICAgICAgaWYgKCF0b0xvYWQudG9Mb2FkLmxlbmd0aCkge1xuICAgICAgICBpZiAoIXRvTG9hZC5wZW5kaW5nLmxlbmd0aCkgY2FsbGJhY2soKTtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIHRvTG9hZC50b0xvYWQuZm9yRWFjaChmdW5jdGlvbiAobmFtZSkge1xuICAgICAgICBfdGhpczQubG9hZE9uZShuYW1lKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJsb2FkXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGxvYWQobGFuZ3VhZ2VzLCBuYW1lc3BhY2VzLCBjYWxsYmFjaykge1xuICAgICAgdGhpcy5wcmVwYXJlTG9hZGluZyhsYW5ndWFnZXMsIG5hbWVzcGFjZXMsIHt9LCBjYWxsYmFjayk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbG9hZFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZWxvYWQobGFuZ3VhZ2VzLCBuYW1lc3BhY2VzLCBjYWxsYmFjaykge1xuICAgICAgdGhpcy5wcmVwYXJlTG9hZGluZyhsYW5ndWFnZXMsIG5hbWVzcGFjZXMsIHtcbiAgICAgICAgcmVsb2FkOiB0cnVlXG4gICAgICB9LCBjYWxsYmFjayk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImxvYWRPbmVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gbG9hZE9uZShuYW1lKSB7XG4gICAgICB2YXIgX3RoaXM1ID0gdGhpcztcblxuICAgICAgdmFyIHByZWZpeCA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDogJyc7XG4gICAgICB2YXIgcyA9IG5hbWUuc3BsaXQoJ3wnKTtcbiAgICAgIHZhciBsbmcgPSBzWzBdO1xuICAgICAgdmFyIG5zID0gc1sxXTtcbiAgICAgIHRoaXMucmVhZChsbmcsIG5zLCAncmVhZCcsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBmdW5jdGlvbiAoZXJyLCBkYXRhKSB7XG4gICAgICAgIGlmIChlcnIpIF90aGlzNS5sb2dnZXIud2FybihcIlwiLmNvbmNhdChwcmVmaXgsIFwibG9hZGluZyBuYW1lc3BhY2UgXCIpLmNvbmNhdChucywgXCIgZm9yIGxhbmd1YWdlIFwiKS5jb25jYXQobG5nLCBcIiBmYWlsZWRcIiksIGVycik7XG4gICAgICAgIGlmICghZXJyICYmIGRhdGEpIF90aGlzNS5sb2dnZXIubG9nKFwiXCIuY29uY2F0KHByZWZpeCwgXCJsb2FkZWQgbmFtZXNwYWNlIFwiKS5jb25jYXQobnMsIFwiIGZvciBsYW5ndWFnZSBcIikuY29uY2F0KGxuZyksIGRhdGEpO1xuXG4gICAgICAgIF90aGlzNS5sb2FkZWQobmFtZSwgZXJyLCBkYXRhKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJzYXZlTWlzc2luZ1wiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBzYXZlTWlzc2luZyhsYW5ndWFnZXMsIG5hbWVzcGFjZSwga2V5LCBmYWxsYmFja1ZhbHVlLCBpc1VwZGF0ZSkge1xuICAgICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gNSAmJiBhcmd1bWVudHNbNV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s1XSA6IHt9O1xuXG4gICAgICBpZiAodGhpcy5zZXJ2aWNlcy51dGlscyAmJiB0aGlzLnNlcnZpY2VzLnV0aWxzLmhhc0xvYWRlZE5hbWVzcGFjZSAmJiAhdGhpcy5zZXJ2aWNlcy51dGlscy5oYXNMb2FkZWROYW1lc3BhY2UobmFtZXNwYWNlKSkge1xuICAgICAgICB0aGlzLmxvZ2dlci53YXJuKFwiZGlkIG5vdCBzYXZlIGtleSBcXFwiXCIuY29uY2F0KGtleSwgXCJcXFwiIGFzIHRoZSBuYW1lc3BhY2UgXFxcIlwiKS5jb25jYXQobmFtZXNwYWNlLCBcIlxcXCIgd2FzIG5vdCB5ZXQgbG9hZGVkXCIpLCAnVGhpcyBtZWFucyBzb21ldGhpbmcgSVMgV1JPTkcgaW4geW91ciBzZXR1cC4gWW91IGFjY2VzcyB0aGUgdCBmdW5jdGlvbiBiZWZvcmUgaTE4bmV4dC5pbml0IC8gaTE4bmV4dC5sb2FkTmFtZXNwYWNlIC8gaTE4bmV4dC5jaGFuZ2VMYW5ndWFnZSB3YXMgZG9uZS4gV2FpdCBmb3IgdGhlIGNhbGxiYWNrIG9yIFByb21pc2UgdG8gcmVzb2x2ZSBiZWZvcmUgYWNjZXNzaW5nIGl0ISEhJyk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKGtleSA9PT0gdW5kZWZpbmVkIHx8IGtleSA9PT0gbnVsbCB8fCBrZXkgPT09ICcnKSByZXR1cm47XG5cbiAgICAgIGlmICh0aGlzLmJhY2tlbmQgJiYgdGhpcy5iYWNrZW5kLmNyZWF0ZSkge1xuICAgICAgICB0aGlzLmJhY2tlbmQuY3JlYXRlKGxhbmd1YWdlcywgbmFtZXNwYWNlLCBrZXksIGZhbGxiYWNrVmFsdWUsIG51bGwsIF9vYmplY3RTcHJlYWQoe30sIG9wdGlvbnMsIHtcbiAgICAgICAgICBpc1VwZGF0ZTogaXNVcGRhdGVcbiAgICAgICAgfSkpO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWxhbmd1YWdlcyB8fCAhbGFuZ3VhZ2VzWzBdKSByZXR1cm47XG4gICAgICB0aGlzLnN0b3JlLmFkZFJlc291cmNlKGxhbmd1YWdlc1swXSwgbmFtZXNwYWNlLCBrZXksIGZhbGxiYWNrVmFsdWUpO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBDb25uZWN0b3I7XG59KEV2ZW50RW1pdHRlcik7XG5cbmZ1bmN0aW9uIGdldCgpIHtcbiAgcmV0dXJuIHtcbiAgICBkZWJ1ZzogZmFsc2UsXG4gICAgaW5pdEltbWVkaWF0ZTogdHJ1ZSxcbiAgICBuczogWyd0cmFuc2xhdGlvbiddLFxuICAgIGRlZmF1bHROUzogWyd0cmFuc2xhdGlvbiddLFxuICAgIGZhbGxiYWNrTG5nOiBbJ2RldiddLFxuICAgIGZhbGxiYWNrTlM6IGZhbHNlLFxuICAgIHN1cHBvcnRlZExuZ3M6IGZhbHNlLFxuICAgIG5vbkV4cGxpY2l0U3VwcG9ydGVkTG5nczogZmFsc2UsXG4gICAgbG9hZDogJ2FsbCcsXG4gICAgcHJlbG9hZDogZmFsc2UsXG4gICAgc2ltcGxpZnlQbHVyYWxTdWZmaXg6IHRydWUsXG4gICAga2V5U2VwYXJhdG9yOiAnLicsXG4gICAgbnNTZXBhcmF0b3I6ICc6JyxcbiAgICBwbHVyYWxTZXBhcmF0b3I6ICdfJyxcbiAgICBjb250ZXh0U2VwYXJhdG9yOiAnXycsXG4gICAgcGFydGlhbEJ1bmRsZWRMYW5ndWFnZXM6IGZhbHNlLFxuICAgIHNhdmVNaXNzaW5nOiBmYWxzZSxcbiAgICB1cGRhdGVNaXNzaW5nOiBmYWxzZSxcbiAgICBzYXZlTWlzc2luZ1RvOiAnZmFsbGJhY2snLFxuICAgIHNhdmVNaXNzaW5nUGx1cmFsczogdHJ1ZSxcbiAgICBtaXNzaW5nS2V5SGFuZGxlcjogZmFsc2UsXG4gICAgbWlzc2luZ0ludGVycG9sYXRpb25IYW5kbGVyOiBmYWxzZSxcbiAgICBwb3N0UHJvY2VzczogZmFsc2UsXG4gICAgcG9zdFByb2Nlc3NQYXNzUmVzb2x2ZWQ6IGZhbHNlLFxuICAgIHJldHVybk51bGw6IHRydWUsXG4gICAgcmV0dXJuRW1wdHlTdHJpbmc6IHRydWUsXG4gICAgcmV0dXJuT2JqZWN0czogZmFsc2UsXG4gICAgam9pbkFycmF5czogZmFsc2UsXG4gICAgcmV0dXJuZWRPYmplY3RIYW5kbGVyOiBmYWxzZSxcbiAgICBwYXJzZU1pc3NpbmdLZXlIYW5kbGVyOiBmYWxzZSxcbiAgICBhcHBlbmROYW1lc3BhY2VUb01pc3NpbmdLZXk6IGZhbHNlLFxuICAgIGFwcGVuZE5hbWVzcGFjZVRvQ0lNb2RlOiBmYWxzZSxcbiAgICBvdmVybG9hZFRyYW5zbGF0aW9uT3B0aW9uSGFuZGxlcjogZnVuY3Rpb24gaGFuZGxlKGFyZ3MpIHtcbiAgICAgIHZhciByZXQgPSB7fTtcbiAgICAgIGlmIChfdHlwZW9mKGFyZ3NbMV0pID09PSAnb2JqZWN0JykgcmV0ID0gYXJnc1sxXTtcbiAgICAgIGlmICh0eXBlb2YgYXJnc1sxXSA9PT0gJ3N0cmluZycpIHJldC5kZWZhdWx0VmFsdWUgPSBhcmdzWzFdO1xuICAgICAgaWYgKHR5cGVvZiBhcmdzWzJdID09PSAnc3RyaW5nJykgcmV0LnREZXNjcmlwdGlvbiA9IGFyZ3NbMl07XG5cbiAgICAgIGlmIChfdHlwZW9mKGFyZ3NbMl0pID09PSAnb2JqZWN0JyB8fCBfdHlwZW9mKGFyZ3NbM10pID09PSAnb2JqZWN0Jykge1xuICAgICAgICB2YXIgb3B0aW9ucyA9IGFyZ3NbM10gfHwgYXJnc1syXTtcbiAgICAgICAgT2JqZWN0LmtleXMob3B0aW9ucykuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgICAgcmV0W2tleV0gPSBvcHRpb25zW2tleV07XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmV0O1xuICAgIH0sXG4gICAgaW50ZXJwb2xhdGlvbjoge1xuICAgICAgZXNjYXBlVmFsdWU6IHRydWUsXG4gICAgICBmb3JtYXQ6IGZ1bmN0aW9uIGZvcm1hdCh2YWx1ZSwgX2Zvcm1hdCwgbG5nLCBvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH0sXG4gICAgICBwcmVmaXg6ICd7eycsXG4gICAgICBzdWZmaXg6ICd9fScsXG4gICAgICBmb3JtYXRTZXBhcmF0b3I6ICcsJyxcbiAgICAgIHVuZXNjYXBlUHJlZml4OiAnLScsXG4gICAgICBuZXN0aW5nUHJlZml4OiAnJHQoJyxcbiAgICAgIG5lc3RpbmdTdWZmaXg6ICcpJyxcbiAgICAgIG5lc3RpbmdPcHRpb25zU2VwYXJhdG9yOiAnLCcsXG4gICAgICBtYXhSZXBsYWNlczogMTAwMCxcbiAgICAgIHNraXBPblZhcmlhYmxlczogdHJ1ZVxuICAgIH1cbiAgfTtcbn1cbmZ1bmN0aW9uIHRyYW5zZm9ybU9wdGlvbnMob3B0aW9ucykge1xuICBpZiAodHlwZW9mIG9wdGlvbnMubnMgPT09ICdzdHJpbmcnKSBvcHRpb25zLm5zID0gW29wdGlvbnMubnNdO1xuICBpZiAodHlwZW9mIG9wdGlvbnMuZmFsbGJhY2tMbmcgPT09ICdzdHJpbmcnKSBvcHRpb25zLmZhbGxiYWNrTG5nID0gW29wdGlvbnMuZmFsbGJhY2tMbmddO1xuICBpZiAodHlwZW9mIG9wdGlvbnMuZmFsbGJhY2tOUyA9PT0gJ3N0cmluZycpIG9wdGlvbnMuZmFsbGJhY2tOUyA9IFtvcHRpb25zLmZhbGxiYWNrTlNdO1xuXG4gIGlmIChvcHRpb25zLnN1cHBvcnRlZExuZ3MgJiYgb3B0aW9ucy5zdXBwb3J0ZWRMbmdzLmluZGV4T2YoJ2NpbW9kZScpIDwgMCkge1xuICAgIG9wdGlvbnMuc3VwcG9ydGVkTG5ncyA9IG9wdGlvbnMuc3VwcG9ydGVkTG5ncy5jb25jYXQoWydjaW1vZGUnXSk7XG4gIH1cblxuICByZXR1cm4gb3B0aW9ucztcbn1cblxuZnVuY3Rpb24gbm9vcCgpIHt9XG5cbnZhciBJMThuID0gZnVuY3Rpb24gKF9FdmVudEVtaXR0ZXIpIHtcbiAgX2luaGVyaXRzKEkxOG4sIF9FdmVudEVtaXR0ZXIpO1xuXG4gIGZ1bmN0aW9uIEkxOG4oKSB7XG4gICAgdmFyIF90aGlzO1xuXG4gICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9O1xuICAgIHZhciBjYWxsYmFjayA9IGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkO1xuXG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEkxOG4pO1xuXG4gICAgX3RoaXMgPSBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCBfZ2V0UHJvdG90eXBlT2YoSTE4bikuY2FsbCh0aGlzKSk7XG5cbiAgICBpZiAoaXNJRTEwKSB7XG4gICAgICBFdmVudEVtaXR0ZXIuY2FsbChfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSk7XG4gICAgfVxuXG4gICAgX3RoaXMub3B0aW9ucyA9IHRyYW5zZm9ybU9wdGlvbnMob3B0aW9ucyk7XG4gICAgX3RoaXMuc2VydmljZXMgPSB7fTtcbiAgICBfdGhpcy5sb2dnZXIgPSBiYXNlTG9nZ2VyO1xuICAgIF90aGlzLm1vZHVsZXMgPSB7XG4gICAgICBleHRlcm5hbDogW11cbiAgICB9O1xuXG4gICAgaWYgKGNhbGxiYWNrICYmICFfdGhpcy5pc0luaXRpYWxpemVkICYmICFvcHRpb25zLmlzQ2xvbmUpIHtcbiAgICAgIGlmICghX3RoaXMub3B0aW9ucy5pbml0SW1tZWRpYXRlKSB7XG4gICAgICAgIF90aGlzLmluaXQob3B0aW9ucywgY2FsbGJhY2spO1xuXG4gICAgICAgIHJldHVybiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihfdGhpcywgX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcykpO1xuICAgICAgfVxuXG4gICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgX3RoaXMuaW5pdChvcHRpb25zLCBjYWxsYmFjayk7XG4gICAgICB9LCAwKTtcbiAgICB9XG5cbiAgICByZXR1cm4gX3RoaXM7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoSTE4biwgW3tcbiAgICBrZXk6IFwiaW5pdFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBpbml0KCkge1xuICAgICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgICAgIHZhciBvcHRpb25zID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fTtcbiAgICAgIHZhciBjYWxsYmFjayA9IGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkO1xuXG4gICAgICBpZiAodHlwZW9mIG9wdGlvbnMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgY2FsbGJhY2sgPSBvcHRpb25zO1xuICAgICAgICBvcHRpb25zID0ge307XG4gICAgICB9XG5cbiAgICAgIGlmICghb3B0aW9ucy5kZWZhdWx0TlMgJiYgb3B0aW9ucy5ucykge1xuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMubnMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgb3B0aW9ucy5kZWZhdWx0TlMgPSBvcHRpb25zLm5zO1xuICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMubnMuaW5kZXhPZigndHJhbnNsYXRpb24nKSA8IDApIHtcbiAgICAgICAgICBvcHRpb25zLmRlZmF1bHROUyA9IG9wdGlvbnMubnNbMF07XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdmFyIGRlZk9wdHMgPSBnZXQoKTtcbiAgICAgIHRoaXMub3B0aW9ucyA9IF9vYmplY3RTcHJlYWQoe30sIGRlZk9wdHMsIHRoaXMub3B0aW9ucywgdHJhbnNmb3JtT3B0aW9ucyhvcHRpb25zKSk7XG5cbiAgICAgIGlmIChvcHRpb25zLmtleVNlcGFyYXRvciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMub3B0aW9ucy51c2VyRGVmaW5lZEtleVNlcGFyYXRvciA9IG9wdGlvbnMua2V5U2VwYXJhdG9yO1xuICAgICAgfVxuXG4gICAgICBpZiAob3B0aW9ucy5uc1NlcGFyYXRvciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMub3B0aW9ucy51c2VyRGVmaW5lZE5zU2VwYXJhdG9yID0gb3B0aW9ucy5uc1NlcGFyYXRvcjtcbiAgICAgIH1cblxuICAgICAgZnVuY3Rpb24gY3JlYXRlQ2xhc3NPbkRlbWFuZChDbGFzc09yT2JqZWN0KSB7XG4gICAgICAgIGlmICghQ2xhc3NPck9iamVjdCkgcmV0dXJuIG51bGw7XG4gICAgICAgIGlmICh0eXBlb2YgQ2xhc3NPck9iamVjdCA9PT0gJ2Z1bmN0aW9uJykgcmV0dXJuIG5ldyBDbGFzc09yT2JqZWN0KCk7XG4gICAgICAgIHJldHVybiBDbGFzc09yT2JqZWN0O1xuICAgICAgfVxuXG4gICAgICBpZiAoIXRoaXMub3B0aW9ucy5pc0Nsb25lKSB7XG4gICAgICAgIGlmICh0aGlzLm1vZHVsZXMubG9nZ2VyKSB7XG4gICAgICAgICAgYmFzZUxvZ2dlci5pbml0KGNyZWF0ZUNsYXNzT25EZW1hbmQodGhpcy5tb2R1bGVzLmxvZ2dlciksIHRoaXMub3B0aW9ucyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYmFzZUxvZ2dlci5pbml0KG51bGwsIHRoaXMub3B0aW9ucyk7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgZm9ybWF0dGVyO1xuXG4gICAgICAgIGlmICh0aGlzLm1vZHVsZXMuZm9ybWF0dGVyKSB7XG4gICAgICAgICAgZm9ybWF0dGVyID0gdGhpcy5tb2R1bGVzLmZvcm1hdHRlcjtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgSW50bCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICBmb3JtYXR0ZXIgPSBGb3JtYXR0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgbHUgPSBuZXcgTGFuZ3VhZ2VVdGlsKHRoaXMub3B0aW9ucyk7XG4gICAgICAgIHRoaXMuc3RvcmUgPSBuZXcgUmVzb3VyY2VTdG9yZSh0aGlzLm9wdGlvbnMucmVzb3VyY2VzLCB0aGlzLm9wdGlvbnMpO1xuICAgICAgICB2YXIgcyA9IHRoaXMuc2VydmljZXM7XG4gICAgICAgIHMubG9nZ2VyID0gYmFzZUxvZ2dlcjtcbiAgICAgICAgcy5yZXNvdXJjZVN0b3JlID0gdGhpcy5zdG9yZTtcbiAgICAgICAgcy5sYW5ndWFnZVV0aWxzID0gbHU7XG4gICAgICAgIHMucGx1cmFsUmVzb2x2ZXIgPSBuZXcgUGx1cmFsUmVzb2x2ZXIobHUsIHtcbiAgICAgICAgICBwcmVwZW5kOiB0aGlzLm9wdGlvbnMucGx1cmFsU2VwYXJhdG9yLFxuICAgICAgICAgIGNvbXBhdGliaWxpdHlKU09OOiB0aGlzLm9wdGlvbnMuY29tcGF0aWJpbGl0eUpTT04sXG4gICAgICAgICAgc2ltcGxpZnlQbHVyYWxTdWZmaXg6IHRoaXMub3B0aW9ucy5zaW1wbGlmeVBsdXJhbFN1ZmZpeFxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoZm9ybWF0dGVyICYmICghdGhpcy5vcHRpb25zLmludGVycG9sYXRpb24uZm9ybWF0IHx8IHRoaXMub3B0aW9ucy5pbnRlcnBvbGF0aW9uLmZvcm1hdCA9PT0gZGVmT3B0cy5pbnRlcnBvbGF0aW9uLmZvcm1hdCkpIHtcbiAgICAgICAgICBzLmZvcm1hdHRlciA9IGNyZWF0ZUNsYXNzT25EZW1hbmQoZm9ybWF0dGVyKTtcbiAgICAgICAgICBzLmZvcm1hdHRlci5pbml0KHMsIHRoaXMub3B0aW9ucyk7XG4gICAgICAgICAgdGhpcy5vcHRpb25zLmludGVycG9sYXRpb24uZm9ybWF0ID0gcy5mb3JtYXR0ZXIuZm9ybWF0LmJpbmQocy5mb3JtYXR0ZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgcy5pbnRlcnBvbGF0b3IgPSBuZXcgSW50ZXJwb2xhdG9yKHRoaXMub3B0aW9ucyk7XG4gICAgICAgIHMudXRpbHMgPSB7XG4gICAgICAgICAgaGFzTG9hZGVkTmFtZXNwYWNlOiB0aGlzLmhhc0xvYWRlZE5hbWVzcGFjZS5iaW5kKHRoaXMpXG4gICAgICAgIH07XG4gICAgICAgIHMuYmFja2VuZENvbm5lY3RvciA9IG5ldyBDb25uZWN0b3IoY3JlYXRlQ2xhc3NPbkRlbWFuZCh0aGlzLm1vZHVsZXMuYmFja2VuZCksIHMucmVzb3VyY2VTdG9yZSwgcywgdGhpcy5vcHRpb25zKTtcbiAgICAgICAgcy5iYWNrZW5kQ29ubmVjdG9yLm9uKCcqJywgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiA+IDEgPyBfbGVuIC0gMSA6IDApLCBfa2V5ID0gMTsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgICAgICAgICAgYXJnc1tfa2V5IC0gMV0gPSBhcmd1bWVudHNbX2tleV07XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgX3RoaXMyLmVtaXQuYXBwbHkoX3RoaXMyLCBbZXZlbnRdLmNvbmNhdChhcmdzKSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICh0aGlzLm1vZHVsZXMubGFuZ3VhZ2VEZXRlY3Rvcikge1xuICAgICAgICAgIHMubGFuZ3VhZ2VEZXRlY3RvciA9IGNyZWF0ZUNsYXNzT25EZW1hbmQodGhpcy5tb2R1bGVzLmxhbmd1YWdlRGV0ZWN0b3IpO1xuICAgICAgICAgIHMubGFuZ3VhZ2VEZXRlY3Rvci5pbml0KHMsIHRoaXMub3B0aW9ucy5kZXRlY3Rpb24sIHRoaXMub3B0aW9ucyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5tb2R1bGVzLmkxOG5Gb3JtYXQpIHtcbiAgICAgICAgICBzLmkxOG5Gb3JtYXQgPSBjcmVhdGVDbGFzc09uRGVtYW5kKHRoaXMubW9kdWxlcy5pMThuRm9ybWF0KTtcbiAgICAgICAgICBpZiAocy5pMThuRm9ybWF0LmluaXQpIHMuaTE4bkZvcm1hdC5pbml0KHRoaXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy50cmFuc2xhdG9yID0gbmV3IFRyYW5zbGF0b3IodGhpcy5zZXJ2aWNlcywgdGhpcy5vcHRpb25zKTtcbiAgICAgICAgdGhpcy50cmFuc2xhdG9yLm9uKCcqJywgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgZm9yICh2YXIgX2xlbjIgPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4yID4gMSA/IF9sZW4yIC0gMSA6IDApLCBfa2V5MiA9IDE7IF9rZXkyIDwgX2xlbjI7IF9rZXkyKyspIHtcbiAgICAgICAgICAgIGFyZ3NbX2tleTIgLSAxXSA9IGFyZ3VtZW50c1tfa2V5Ml07XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgX3RoaXMyLmVtaXQuYXBwbHkoX3RoaXMyLCBbZXZlbnRdLmNvbmNhdChhcmdzKSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLm1vZHVsZXMuZXh0ZXJuYWwuZm9yRWFjaChmdW5jdGlvbiAobSkge1xuICAgICAgICAgIGlmIChtLmluaXQpIG0uaW5pdChfdGhpczIpO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5mb3JtYXQgPSB0aGlzLm9wdGlvbnMuaW50ZXJwb2xhdGlvbi5mb3JtYXQ7XG4gICAgICBpZiAoIWNhbGxiYWNrKSBjYWxsYmFjayA9IG5vb3A7XG5cbiAgICAgIGlmICh0aGlzLm9wdGlvbnMuZmFsbGJhY2tMbmcgJiYgIXRoaXMuc2VydmljZXMubGFuZ3VhZ2VEZXRlY3RvciAmJiAhdGhpcy5vcHRpb25zLmxuZykge1xuICAgICAgICB2YXIgY29kZXMgPSB0aGlzLnNlcnZpY2VzLmxhbmd1YWdlVXRpbHMuZ2V0RmFsbGJhY2tDb2Rlcyh0aGlzLm9wdGlvbnMuZmFsbGJhY2tMbmcpO1xuICAgICAgICBpZiAoY29kZXMubGVuZ3RoID4gMCAmJiBjb2Rlc1swXSAhPT0gJ2RldicpIHRoaXMub3B0aW9ucy5sbmcgPSBjb2Rlc1swXTtcbiAgICAgIH1cblxuICAgICAgaWYgKCF0aGlzLnNlcnZpY2VzLmxhbmd1YWdlRGV0ZWN0b3IgJiYgIXRoaXMub3B0aW9ucy5sbmcpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIud2FybignaW5pdDogbm8gbGFuZ3VhZ2VEZXRlY3RvciBpcyB1c2VkIGFuZCBubyBsbmcgaXMgZGVmaW5lZCcpO1xuICAgICAgfVxuXG4gICAgICB2YXIgc3RvcmVBcGkgPSBbJ2dldFJlc291cmNlJywgJ2hhc1Jlc291cmNlQnVuZGxlJywgJ2dldFJlc291cmNlQnVuZGxlJywgJ2dldERhdGFCeUxhbmd1YWdlJ107XG4gICAgICBzdG9yZUFwaS5mb3JFYWNoKGZ1bmN0aW9uIChmY05hbWUpIHtcbiAgICAgICAgX3RoaXMyW2ZjTmFtZV0gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgdmFyIF90aGlzMiRzdG9yZTtcblxuICAgICAgICAgIHJldHVybiAoX3RoaXMyJHN0b3JlID0gX3RoaXMyLnN0b3JlKVtmY05hbWVdLmFwcGx5KF90aGlzMiRzdG9yZSwgYXJndW1lbnRzKTtcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgICAgdmFyIHN0b3JlQXBpQ2hhaW5lZCA9IFsnYWRkUmVzb3VyY2UnLCAnYWRkUmVzb3VyY2VzJywgJ2FkZFJlc291cmNlQnVuZGxlJywgJ3JlbW92ZVJlc291cmNlQnVuZGxlJ107XG4gICAgICBzdG9yZUFwaUNoYWluZWQuZm9yRWFjaChmdW5jdGlvbiAoZmNOYW1lKSB7XG4gICAgICAgIF90aGlzMltmY05hbWVdID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHZhciBfdGhpczIkc3RvcmUyO1xuXG4gICAgICAgICAgKF90aGlzMiRzdG9yZTIgPSBfdGhpczIuc3RvcmUpW2ZjTmFtZV0uYXBwbHkoX3RoaXMyJHN0b3JlMiwgYXJndW1lbnRzKTtcblxuICAgICAgICAgIHJldHVybiBfdGhpczI7XG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICAgIHZhciBkZWZlcnJlZCA9IGRlZmVyKCk7XG5cbiAgICAgIHZhciBsb2FkID0gZnVuY3Rpb24gbG9hZCgpIHtcbiAgICAgICAgdmFyIGZpbmlzaCA9IGZ1bmN0aW9uIGZpbmlzaChlcnIsIHQpIHtcbiAgICAgICAgICBpZiAoX3RoaXMyLmlzSW5pdGlhbGl6ZWQgJiYgIV90aGlzMi5pbml0aWFsaXplZFN0b3JlT25jZSkgX3RoaXMyLmxvZ2dlci53YXJuKCdpbml0OiBpMThuZXh0IGlzIGFscmVhZHkgaW5pdGlhbGl6ZWQuIFlvdSBzaG91bGQgY2FsbCBpbml0IGp1c3Qgb25jZSEnKTtcbiAgICAgICAgICBfdGhpczIuaXNJbml0aWFsaXplZCA9IHRydWU7XG4gICAgICAgICAgaWYgKCFfdGhpczIub3B0aW9ucy5pc0Nsb25lKSBfdGhpczIubG9nZ2VyLmxvZygnaW5pdGlhbGl6ZWQnLCBfdGhpczIub3B0aW9ucyk7XG5cbiAgICAgICAgICBfdGhpczIuZW1pdCgnaW5pdGlhbGl6ZWQnLCBfdGhpczIub3B0aW9ucyk7XG5cbiAgICAgICAgICBkZWZlcnJlZC5yZXNvbHZlKHQpO1xuICAgICAgICAgIGNhbGxiYWNrKGVyciwgdCk7XG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKF90aGlzMi5sYW5ndWFnZXMgJiYgX3RoaXMyLm9wdGlvbnMuY29tcGF0aWJpbGl0eUFQSSAhPT0gJ3YxJyAmJiAhX3RoaXMyLmlzSW5pdGlhbGl6ZWQpIHJldHVybiBmaW5pc2gobnVsbCwgX3RoaXMyLnQuYmluZChfdGhpczIpKTtcblxuICAgICAgICBfdGhpczIuY2hhbmdlTGFuZ3VhZ2UoX3RoaXMyLm9wdGlvbnMubG5nLCBmaW5pc2gpO1xuICAgICAgfTtcblxuICAgICAgaWYgKHRoaXMub3B0aW9ucy5yZXNvdXJjZXMgfHwgIXRoaXMub3B0aW9ucy5pbml0SW1tZWRpYXRlKSB7XG4gICAgICAgIGxvYWQoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldFRpbWVvdXQobG9hZCwgMCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBkZWZlcnJlZDtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwibG9hZFJlc291cmNlc1wiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBsb2FkUmVzb3VyY2VzKGxhbmd1YWdlKSB7XG4gICAgICB2YXIgX3RoaXMzID0gdGhpcztcblxuICAgICAgdmFyIGNhbGxiYWNrID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiBub29wO1xuICAgICAgdmFyIHVzZWRDYWxsYmFjayA9IGNhbGxiYWNrO1xuICAgICAgdmFyIHVzZWRMbmcgPSB0eXBlb2YgbGFuZ3VhZ2UgPT09ICdzdHJpbmcnID8gbGFuZ3VhZ2UgOiB0aGlzLmxhbmd1YWdlO1xuICAgICAgaWYgKHR5cGVvZiBsYW5ndWFnZSA9PT0gJ2Z1bmN0aW9uJykgdXNlZENhbGxiYWNrID0gbGFuZ3VhZ2U7XG5cbiAgICAgIGlmICghdGhpcy5vcHRpb25zLnJlc291cmNlcyB8fCB0aGlzLm9wdGlvbnMucGFydGlhbEJ1bmRsZWRMYW5ndWFnZXMpIHtcbiAgICAgICAgaWYgKHVzZWRMbmcgJiYgdXNlZExuZy50b0xvd2VyQ2FzZSgpID09PSAnY2ltb2RlJykgcmV0dXJuIHVzZWRDYWxsYmFjaygpO1xuICAgICAgICB2YXIgdG9Mb2FkID0gW107XG5cbiAgICAgICAgdmFyIGFwcGVuZCA9IGZ1bmN0aW9uIGFwcGVuZChsbmcpIHtcbiAgICAgICAgICBpZiAoIWxuZykgcmV0dXJuO1xuXG4gICAgICAgICAgdmFyIGxuZ3MgPSBfdGhpczMuc2VydmljZXMubGFuZ3VhZ2VVdGlscy50b1Jlc29sdmVIaWVyYXJjaHkobG5nKTtcblxuICAgICAgICAgIGxuZ3MuZm9yRWFjaChmdW5jdGlvbiAobCkge1xuICAgICAgICAgICAgaWYgKHRvTG9hZC5pbmRleE9mKGwpIDwgMCkgdG9Mb2FkLnB1c2gobCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKCF1c2VkTG5nKSB7XG4gICAgICAgICAgdmFyIGZhbGxiYWNrcyA9IHRoaXMuc2VydmljZXMubGFuZ3VhZ2VVdGlscy5nZXRGYWxsYmFja0NvZGVzKHRoaXMub3B0aW9ucy5mYWxsYmFja0xuZyk7XG4gICAgICAgICAgZmFsbGJhY2tzLmZvckVhY2goZnVuY3Rpb24gKGwpIHtcbiAgICAgICAgICAgIHJldHVybiBhcHBlbmQobCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYXBwZW5kKHVzZWRMbmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5wcmVsb2FkKSB7XG4gICAgICAgICAgdGhpcy5vcHRpb25zLnByZWxvYWQuZm9yRWFjaChmdW5jdGlvbiAobCkge1xuICAgICAgICAgICAgcmV0dXJuIGFwcGVuZChsKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2VydmljZXMuYmFja2VuZENvbm5lY3Rvci5sb2FkKHRvTG9hZCwgdGhpcy5vcHRpb25zLm5zLCB1c2VkQ2FsbGJhY2spO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdXNlZENhbGxiYWNrKG51bGwpO1xuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJyZWxvYWRSZXNvdXJjZXNcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVsb2FkUmVzb3VyY2VzKGxuZ3MsIG5zLCBjYWxsYmFjaykge1xuICAgICAgdmFyIGRlZmVycmVkID0gZGVmZXIoKTtcbiAgICAgIGlmICghbG5ncykgbG5ncyA9IHRoaXMubGFuZ3VhZ2VzO1xuICAgICAgaWYgKCFucykgbnMgPSB0aGlzLm9wdGlvbnMubnM7XG4gICAgICBpZiAoIWNhbGxiYWNrKSBjYWxsYmFjayA9IG5vb3A7XG4gICAgICB0aGlzLnNlcnZpY2VzLmJhY2tlbmRDb25uZWN0b3IucmVsb2FkKGxuZ3MsIG5zLCBmdW5jdGlvbiAoZXJyKSB7XG4gICAgICAgIGRlZmVycmVkLnJlc29sdmUoKTtcbiAgICAgICAgY2FsbGJhY2soZXJyKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGRlZmVycmVkO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJ1c2VcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gdXNlKG1vZHVsZSkge1xuICAgICAgaWYgKCFtb2R1bGUpIHRocm93IG5ldyBFcnJvcignWW91IGFyZSBwYXNzaW5nIGFuIHVuZGVmaW5lZCBtb2R1bGUhIFBsZWFzZSBjaGVjayB0aGUgb2JqZWN0IHlvdSBhcmUgcGFzc2luZyB0byBpMThuZXh0LnVzZSgpJyk7XG4gICAgICBpZiAoIW1vZHVsZS50eXBlKSB0aHJvdyBuZXcgRXJyb3IoJ1lvdSBhcmUgcGFzc2luZyBhIHdyb25nIG1vZHVsZSEgUGxlYXNlIGNoZWNrIHRoZSBvYmplY3QgeW91IGFyZSBwYXNzaW5nIHRvIGkxOG5leHQudXNlKCknKTtcblxuICAgICAgaWYgKG1vZHVsZS50eXBlID09PSAnYmFja2VuZCcpIHtcbiAgICAgICAgdGhpcy5tb2R1bGVzLmJhY2tlbmQgPSBtb2R1bGU7XG4gICAgICB9XG5cbiAgICAgIGlmIChtb2R1bGUudHlwZSA9PT0gJ2xvZ2dlcicgfHwgbW9kdWxlLmxvZyAmJiBtb2R1bGUud2FybiAmJiBtb2R1bGUuZXJyb3IpIHtcbiAgICAgICAgdGhpcy5tb2R1bGVzLmxvZ2dlciA9IG1vZHVsZTtcbiAgICAgIH1cblxuICAgICAgaWYgKG1vZHVsZS50eXBlID09PSAnbGFuZ3VhZ2VEZXRlY3RvcicpIHtcbiAgICAgICAgdGhpcy5tb2R1bGVzLmxhbmd1YWdlRGV0ZWN0b3IgPSBtb2R1bGU7XG4gICAgICB9XG5cbiAgICAgIGlmIChtb2R1bGUudHlwZSA9PT0gJ2kxOG5Gb3JtYXQnKSB7XG4gICAgICAgIHRoaXMubW9kdWxlcy5pMThuRm9ybWF0ID0gbW9kdWxlO1xuICAgICAgfVxuXG4gICAgICBpZiAobW9kdWxlLnR5cGUgPT09ICdwb3N0UHJvY2Vzc29yJykge1xuICAgICAgICBwb3N0UHJvY2Vzc29yLmFkZFBvc3RQcm9jZXNzb3IobW9kdWxlKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG1vZHVsZS50eXBlID09PSAnZm9ybWF0dGVyJykge1xuICAgICAgICB0aGlzLm1vZHVsZXMuZm9ybWF0dGVyID0gbW9kdWxlO1xuICAgICAgfVxuXG4gICAgICBpZiAobW9kdWxlLnR5cGUgPT09ICczcmRQYXJ0eScpIHtcbiAgICAgICAgdGhpcy5tb2R1bGVzLmV4dGVybmFsLnB1c2gobW9kdWxlKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImNoYW5nZUxhbmd1YWdlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNoYW5nZUxhbmd1YWdlKGxuZywgY2FsbGJhY2spIHtcbiAgICAgIHZhciBfdGhpczQgPSB0aGlzO1xuXG4gICAgICB0aGlzLmlzTGFuZ3VhZ2VDaGFuZ2luZ1RvID0gbG5nO1xuICAgICAgdmFyIGRlZmVycmVkID0gZGVmZXIoKTtcbiAgICAgIHRoaXMuZW1pdCgnbGFuZ3VhZ2VDaGFuZ2luZycsIGxuZyk7XG5cbiAgICAgIHZhciBzZXRMbmdQcm9wcyA9IGZ1bmN0aW9uIHNldExuZ1Byb3BzKGwpIHtcbiAgICAgICAgX3RoaXM0Lmxhbmd1YWdlID0gbDtcbiAgICAgICAgX3RoaXM0Lmxhbmd1YWdlcyA9IF90aGlzNC5zZXJ2aWNlcy5sYW5ndWFnZVV0aWxzLnRvUmVzb2x2ZUhpZXJhcmNoeShsKTtcbiAgICAgICAgX3RoaXM0LnJlc29sdmVkTGFuZ3VhZ2UgPSB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChbJ2NpbW9kZScsICdkZXYnXS5pbmRleE9mKGwpID4gLTEpIHJldHVybjtcblxuICAgICAgICBmb3IgKHZhciBsaSA9IDA7IGxpIDwgX3RoaXM0Lmxhbmd1YWdlcy5sZW5ndGg7IGxpKyspIHtcbiAgICAgICAgICB2YXIgbG5nSW5MbmdzID0gX3RoaXM0Lmxhbmd1YWdlc1tsaV07XG4gICAgICAgICAgaWYgKFsnY2ltb2RlJywgJ2RldiddLmluZGV4T2YobG5nSW5MbmdzKSA+IC0xKSBjb250aW51ZTtcblxuICAgICAgICAgIGlmIChfdGhpczQuc3RvcmUuaGFzTGFuZ3VhZ2VTb21lVHJhbnNsYXRpb25zKGxuZ0luTG5ncykpIHtcbiAgICAgICAgICAgIF90aGlzNC5yZXNvbHZlZExhbmd1YWdlID0gbG5nSW5MbmdzO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICB2YXIgZG9uZSA9IGZ1bmN0aW9uIGRvbmUoZXJyLCBsKSB7XG4gICAgICAgIGlmIChsKSB7XG4gICAgICAgICAgc2V0TG5nUHJvcHMobCk7XG5cbiAgICAgICAgICBfdGhpczQudHJhbnNsYXRvci5jaGFuZ2VMYW5ndWFnZShsKTtcblxuICAgICAgICAgIF90aGlzNC5pc0xhbmd1YWdlQ2hhbmdpbmdUbyA9IHVuZGVmaW5lZDtcblxuICAgICAgICAgIF90aGlzNC5lbWl0KCdsYW5ndWFnZUNoYW5nZWQnLCBsKTtcblxuICAgICAgICAgIF90aGlzNC5sb2dnZXIubG9nKCdsYW5ndWFnZUNoYW5nZWQnLCBsKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBfdGhpczQuaXNMYW5ndWFnZUNoYW5naW5nVG8gPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBkZWZlcnJlZC5yZXNvbHZlKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gX3RoaXM0LnQuYXBwbHkoX3RoaXM0LCBhcmd1bWVudHMpO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGNhbGxiYWNrKSBjYWxsYmFjayhlcnIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gX3RoaXM0LnQuYXBwbHkoX3RoaXM0LCBhcmd1bWVudHMpO1xuICAgICAgICB9KTtcbiAgICAgIH07XG5cbiAgICAgIHZhciBzZXRMbmcgPSBmdW5jdGlvbiBzZXRMbmcobG5ncykge1xuICAgICAgICBpZiAoIWxuZyAmJiAhbG5ncyAmJiBfdGhpczQuc2VydmljZXMubGFuZ3VhZ2VEZXRlY3RvcikgbG5ncyA9IFtdO1xuICAgICAgICB2YXIgbCA9IHR5cGVvZiBsbmdzID09PSAnc3RyaW5nJyA/IGxuZ3MgOiBfdGhpczQuc2VydmljZXMubGFuZ3VhZ2VVdGlscy5nZXRCZXN0TWF0Y2hGcm9tQ29kZXMobG5ncyk7XG5cbiAgICAgICAgaWYgKGwpIHtcbiAgICAgICAgICBpZiAoIV90aGlzNC5sYW5ndWFnZSkge1xuICAgICAgICAgICAgc2V0TG5nUHJvcHMobCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKCFfdGhpczQudHJhbnNsYXRvci5sYW5ndWFnZSkgX3RoaXM0LnRyYW5zbGF0b3IuY2hhbmdlTGFuZ3VhZ2UobCk7XG4gICAgICAgICAgaWYgKF90aGlzNC5zZXJ2aWNlcy5sYW5ndWFnZURldGVjdG9yKSBfdGhpczQuc2VydmljZXMubGFuZ3VhZ2VEZXRlY3Rvci5jYWNoZVVzZXJMYW5ndWFnZShsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIF90aGlzNC5sb2FkUmVzb3VyY2VzKGwsIGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgICAgICBkb25lKGVyciwgbCk7XG4gICAgICAgIH0pO1xuICAgICAgfTtcblxuICAgICAgaWYgKCFsbmcgJiYgdGhpcy5zZXJ2aWNlcy5sYW5ndWFnZURldGVjdG9yICYmICF0aGlzLnNlcnZpY2VzLmxhbmd1YWdlRGV0ZWN0b3IuYXN5bmMpIHtcbiAgICAgICAgc2V0TG5nKHRoaXMuc2VydmljZXMubGFuZ3VhZ2VEZXRlY3Rvci5kZXRlY3QoKSk7XG4gICAgICB9IGVsc2UgaWYgKCFsbmcgJiYgdGhpcy5zZXJ2aWNlcy5sYW5ndWFnZURldGVjdG9yICYmIHRoaXMuc2VydmljZXMubGFuZ3VhZ2VEZXRlY3Rvci5hc3luYykge1xuICAgICAgICB0aGlzLnNlcnZpY2VzLmxhbmd1YWdlRGV0ZWN0b3IuZGV0ZWN0KHNldExuZyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXRMbmcobG5nKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGRlZmVycmVkO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJnZXRGaXhlZFRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0Rml4ZWRUKGxuZywgbnMsIGtleVByZWZpeCkge1xuICAgICAgdmFyIF90aGlzNSA9IHRoaXM7XG5cbiAgICAgIHZhciBmaXhlZFQgPSBmdW5jdGlvbiBmaXhlZFQoa2V5LCBvcHRzKSB7XG4gICAgICAgIHZhciBvcHRpb25zO1xuXG4gICAgICAgIGlmIChfdHlwZW9mKG9wdHMpICE9PSAnb2JqZWN0Jykge1xuICAgICAgICAgIGZvciAodmFyIF9sZW4zID0gYXJndW1lbnRzLmxlbmd0aCwgcmVzdCA9IG5ldyBBcnJheShfbGVuMyA+IDIgPyBfbGVuMyAtIDIgOiAwKSwgX2tleTMgPSAyOyBfa2V5MyA8IF9sZW4zOyBfa2V5MysrKSB7XG4gICAgICAgICAgICByZXN0W19rZXkzIC0gMl0gPSBhcmd1bWVudHNbX2tleTNdO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG9wdGlvbnMgPSBfdGhpczUub3B0aW9ucy5vdmVybG9hZFRyYW5zbGF0aW9uT3B0aW9uSGFuZGxlcihba2V5LCBvcHRzXS5jb25jYXQocmVzdCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG9wdGlvbnMgPSBfb2JqZWN0U3ByZWFkKHt9LCBvcHRzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIG9wdGlvbnMubG5nID0gb3B0aW9ucy5sbmcgfHwgZml4ZWRULmxuZztcbiAgICAgICAgb3B0aW9ucy5sbmdzID0gb3B0aW9ucy5sbmdzIHx8IGZpeGVkVC5sbmdzO1xuICAgICAgICBvcHRpb25zLm5zID0gb3B0aW9ucy5ucyB8fCBmaXhlZFQubnM7XG4gICAgICAgIHZhciBrZXlTZXBhcmF0b3IgPSBfdGhpczUub3B0aW9ucy5rZXlTZXBhcmF0b3IgfHwgJy4nO1xuICAgICAgICB2YXIgcmVzdWx0S2V5ID0ga2V5UHJlZml4ID8gXCJcIi5jb25jYXQoa2V5UHJlZml4KS5jb25jYXQoa2V5U2VwYXJhdG9yKS5jb25jYXQoa2V5KSA6IGtleTtcbiAgICAgICAgcmV0dXJuIF90aGlzNS50KHJlc3VsdEtleSwgb3B0aW9ucyk7XG4gICAgICB9O1xuXG4gICAgICBpZiAodHlwZW9mIGxuZyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgZml4ZWRULmxuZyA9IGxuZztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZpeGVkVC5sbmdzID0gbG5nO1xuICAgICAgfVxuXG4gICAgICBmaXhlZFQubnMgPSBucztcbiAgICAgIGZpeGVkVC5rZXlQcmVmaXggPSBrZXlQcmVmaXg7XG4gICAgICByZXR1cm4gZml4ZWRUO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJ0XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHQoKSB7XG4gICAgICB2YXIgX3RoaXMkdHJhbnNsYXRvcjtcblxuICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRvciAmJiAoX3RoaXMkdHJhbnNsYXRvciA9IHRoaXMudHJhbnNsYXRvcikudHJhbnNsYXRlLmFwcGx5KF90aGlzJHRyYW5zbGF0b3IsIGFyZ3VtZW50cyk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImV4aXN0c1wiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBleGlzdHMoKSB7XG4gICAgICB2YXIgX3RoaXMkdHJhbnNsYXRvcjI7XG5cbiAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0b3IgJiYgKF90aGlzJHRyYW5zbGF0b3IyID0gdGhpcy50cmFuc2xhdG9yKS5leGlzdHMuYXBwbHkoX3RoaXMkdHJhbnNsYXRvcjIsIGFyZ3VtZW50cyk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInNldERlZmF1bHROYW1lc3BhY2VcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gc2V0RGVmYXVsdE5hbWVzcGFjZShucykge1xuICAgICAgdGhpcy5vcHRpb25zLmRlZmF1bHROUyA9IG5zO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJoYXNMb2FkZWROYW1lc3BhY2VcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gaGFzTG9hZGVkTmFtZXNwYWNlKG5zKSB7XG4gICAgICB2YXIgX3RoaXM2ID0gdGhpcztcblxuICAgICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IHt9O1xuXG4gICAgICBpZiAoIXRoaXMuaXNJbml0aWFsaXplZCkge1xuICAgICAgICB0aGlzLmxvZ2dlci53YXJuKCdoYXNMb2FkZWROYW1lc3BhY2U6IGkxOG5leHQgd2FzIG5vdCBpbml0aWFsaXplZCcsIHRoaXMubGFuZ3VhZ2VzKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXRoaXMubGFuZ3VhZ2VzIHx8ICF0aGlzLmxhbmd1YWdlcy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIud2FybignaGFzTG9hZGVkTmFtZXNwYWNlOiBpMThuLmxhbmd1YWdlcyB3ZXJlIHVuZGVmaW5lZCBvciBlbXB0eScsIHRoaXMubGFuZ3VhZ2VzKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICB2YXIgbG5nID0gdGhpcy5yZXNvbHZlZExhbmd1YWdlIHx8IHRoaXMubGFuZ3VhZ2VzWzBdO1xuICAgICAgdmFyIGZhbGxiYWNrTG5nID0gdGhpcy5vcHRpb25zID8gdGhpcy5vcHRpb25zLmZhbGxiYWNrTG5nIDogZmFsc2U7XG4gICAgICB2YXIgbGFzdExuZyA9IHRoaXMubGFuZ3VhZ2VzW3RoaXMubGFuZ3VhZ2VzLmxlbmd0aCAtIDFdO1xuICAgICAgaWYgKGxuZy50b0xvd2VyQ2FzZSgpID09PSAnY2ltb2RlJykgcmV0dXJuIHRydWU7XG5cbiAgICAgIHZhciBsb2FkTm90UGVuZGluZyA9IGZ1bmN0aW9uIGxvYWROb3RQZW5kaW5nKGwsIG4pIHtcbiAgICAgICAgdmFyIGxvYWRTdGF0ZSA9IF90aGlzNi5zZXJ2aWNlcy5iYWNrZW5kQ29ubmVjdG9yLnN0YXRlW1wiXCIuY29uY2F0KGwsIFwifFwiKS5jb25jYXQobildO1xuXG4gICAgICAgIHJldHVybiBsb2FkU3RhdGUgPT09IC0xIHx8IGxvYWRTdGF0ZSA9PT0gMjtcbiAgICAgIH07XG5cbiAgICAgIGlmIChvcHRpb25zLnByZWNoZWNrKSB7XG4gICAgICAgIHZhciBwcmVSZXN1bHQgPSBvcHRpb25zLnByZWNoZWNrKHRoaXMsIGxvYWROb3RQZW5kaW5nKTtcbiAgICAgICAgaWYgKHByZVJlc3VsdCAhPT0gdW5kZWZpbmVkKSByZXR1cm4gcHJlUmVzdWx0O1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5oYXNSZXNvdXJjZUJ1bmRsZShsbmcsIG5zKSkgcmV0dXJuIHRydWU7XG4gICAgICBpZiAoIXRoaXMuc2VydmljZXMuYmFja2VuZENvbm5lY3Rvci5iYWNrZW5kKSByZXR1cm4gdHJ1ZTtcbiAgICAgIGlmIChsb2FkTm90UGVuZGluZyhsbmcsIG5zKSAmJiAoIWZhbGxiYWNrTG5nIHx8IGxvYWROb3RQZW5kaW5nKGxhc3RMbmcsIG5zKSkpIHJldHVybiB0cnVlO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJsb2FkTmFtZXNwYWNlc1wiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBsb2FkTmFtZXNwYWNlcyhucywgY2FsbGJhY2spIHtcbiAgICAgIHZhciBfdGhpczcgPSB0aGlzO1xuXG4gICAgICB2YXIgZGVmZXJyZWQgPSBkZWZlcigpO1xuXG4gICAgICBpZiAoIXRoaXMub3B0aW9ucy5ucykge1xuICAgICAgICBjYWxsYmFjayAmJiBjYWxsYmFjaygpO1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2YgbnMgPT09ICdzdHJpbmcnKSBucyA9IFtuc107XG4gICAgICBucy5mb3JFYWNoKGZ1bmN0aW9uIChuKSB7XG4gICAgICAgIGlmIChfdGhpczcub3B0aW9ucy5ucy5pbmRleE9mKG4pIDwgMCkgX3RoaXM3Lm9wdGlvbnMubnMucHVzaChuKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5sb2FkUmVzb3VyY2VzKGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgICAgZGVmZXJyZWQucmVzb2x2ZSgpO1xuICAgICAgICBpZiAoY2FsbGJhY2spIGNhbGxiYWNrKGVycik7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBkZWZlcnJlZDtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwibG9hZExhbmd1YWdlc1wiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBsb2FkTGFuZ3VhZ2VzKGxuZ3MsIGNhbGxiYWNrKSB7XG4gICAgICB2YXIgZGVmZXJyZWQgPSBkZWZlcigpO1xuICAgICAgaWYgKHR5cGVvZiBsbmdzID09PSAnc3RyaW5nJykgbG5ncyA9IFtsbmdzXTtcbiAgICAgIHZhciBwcmVsb2FkZWQgPSB0aGlzLm9wdGlvbnMucHJlbG9hZCB8fCBbXTtcbiAgICAgIHZhciBuZXdMbmdzID0gbG5ncy5maWx0ZXIoZnVuY3Rpb24gKGxuZykge1xuICAgICAgICByZXR1cm4gcHJlbG9hZGVkLmluZGV4T2YobG5nKSA8IDA7XG4gICAgICB9KTtcblxuICAgICAgaWYgKCFuZXdMbmdzLmxlbmd0aCkge1xuICAgICAgICBpZiAoY2FsbGJhY2spIGNhbGxiYWNrKCk7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5vcHRpb25zLnByZWxvYWQgPSBwcmVsb2FkZWQuY29uY2F0KG5ld0xuZ3MpO1xuICAgICAgdGhpcy5sb2FkUmVzb3VyY2VzKGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgICAgZGVmZXJyZWQucmVzb2x2ZSgpO1xuICAgICAgICBpZiAoY2FsbGJhY2spIGNhbGxiYWNrKGVycik7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBkZWZlcnJlZDtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZGlyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGRpcihsbmcpIHtcbiAgICAgIGlmICghbG5nKSBsbmcgPSB0aGlzLnJlc29sdmVkTGFuZ3VhZ2UgfHwgKHRoaXMubGFuZ3VhZ2VzICYmIHRoaXMubGFuZ3VhZ2VzLmxlbmd0aCA+IDAgPyB0aGlzLmxhbmd1YWdlc1swXSA6IHRoaXMubGFuZ3VhZ2UpO1xuICAgICAgaWYgKCFsbmcpIHJldHVybiAncnRsJztcbiAgICAgIHZhciBydGxMbmdzID0gWydhcicsICdzaHUnLCAnc3FyJywgJ3NzaCcsICd4YWEnLCAneWhkJywgJ3l1ZCcsICdhYW8nLCAnYWJoJywgJ2FidicsICdhY20nLCAnYWNxJywgJ2FjdycsICdhY3gnLCAnYWN5JywgJ2FkZicsICdhZHMnLCAnYWViJywgJ2FlYycsICdhZmInLCAnYWpwJywgJ2FwYycsICdhcGQnLCAnYXJiJywgJ2FycScsICdhcnMnLCAnYXJ5JywgJ2FyeicsICdhdXonLCAnYXZsJywgJ2F5aCcsICdheWwnLCAnYXluJywgJ2F5cCcsICdiYnonLCAncGdhJywgJ2hlJywgJ2l3JywgJ3BzJywgJ3BidCcsICdwYnUnLCAncHN0JywgJ3BycCcsICdwcmQnLCAndWcnLCAndXInLCAneWRkJywgJ3lkcycsICd5aWgnLCAnamknLCAneWknLCAnaGJvJywgJ21lbicsICd4bW4nLCAnZmEnLCAnanByJywgJ3BlbycsICdwZXMnLCAncHJzJywgJ2R2JywgJ3NhbScsICdja2InXTtcbiAgICAgIHJldHVybiBydGxMbmdzLmluZGV4T2YodGhpcy5zZXJ2aWNlcy5sYW5ndWFnZVV0aWxzLmdldExhbmd1YWdlUGFydEZyb21Db2RlKGxuZykpID49IDAgPyAncnRsJyA6ICdsdHInO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJjcmVhdGVJbnN0YW5jZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjcmVhdGVJbnN0YW5jZSgpIHtcbiAgICAgIHZhciBvcHRpb25zID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fTtcbiAgICAgIHZhciBjYWxsYmFjayA9IGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkO1xuICAgICAgcmV0dXJuIG5ldyBJMThuKG9wdGlvbnMsIGNhbGxiYWNrKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiY2xvbmVJbnN0YW5jZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjbG9uZUluc3RhbmNlKCkge1xuICAgICAgdmFyIF90aGlzOCA9IHRoaXM7XG5cbiAgICAgIHZhciBvcHRpb25zID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fTtcbiAgICAgIHZhciBjYWxsYmFjayA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDogbm9vcDtcblxuICAgICAgdmFyIG1lcmdlZE9wdGlvbnMgPSBfb2JqZWN0U3ByZWFkKHt9LCB0aGlzLm9wdGlvbnMsIG9wdGlvbnMsIHtcbiAgICAgICAgaXNDbG9uZTogdHJ1ZVxuICAgICAgfSk7XG5cbiAgICAgIHZhciBjbG9uZSA9IG5ldyBJMThuKG1lcmdlZE9wdGlvbnMpO1xuICAgICAgdmFyIG1lbWJlcnNUb0NvcHkgPSBbJ3N0b3JlJywgJ3NlcnZpY2VzJywgJ2xhbmd1YWdlJ107XG4gICAgICBtZW1iZXJzVG9Db3B5LmZvckVhY2goZnVuY3Rpb24gKG0pIHtcbiAgICAgICAgY2xvbmVbbV0gPSBfdGhpczhbbV07XG4gICAgICB9KTtcbiAgICAgIGNsb25lLnNlcnZpY2VzID0gX29iamVjdFNwcmVhZCh7fSwgdGhpcy5zZXJ2aWNlcyk7XG4gICAgICBjbG9uZS5zZXJ2aWNlcy51dGlscyA9IHtcbiAgICAgICAgaGFzTG9hZGVkTmFtZXNwYWNlOiBjbG9uZS5oYXNMb2FkZWROYW1lc3BhY2UuYmluZChjbG9uZSlcbiAgICAgIH07XG4gICAgICBjbG9uZS50cmFuc2xhdG9yID0gbmV3IFRyYW5zbGF0b3IoY2xvbmUuc2VydmljZXMsIGNsb25lLm9wdGlvbnMpO1xuICAgICAgY2xvbmUudHJhbnNsYXRvci5vbignKicsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICBmb3IgKHZhciBfbGVuNCA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbjQgPiAxID8gX2xlbjQgLSAxIDogMCksIF9rZXk0ID0gMTsgX2tleTQgPCBfbGVuNDsgX2tleTQrKykge1xuICAgICAgICAgIGFyZ3NbX2tleTQgLSAxXSA9IGFyZ3VtZW50c1tfa2V5NF07XG4gICAgICAgIH1cblxuICAgICAgICBjbG9uZS5lbWl0LmFwcGx5KGNsb25lLCBbZXZlbnRdLmNvbmNhdChhcmdzKSk7XG4gICAgICB9KTtcbiAgICAgIGNsb25lLmluaXQobWVyZ2VkT3B0aW9ucywgY2FsbGJhY2spO1xuICAgICAgY2xvbmUudHJhbnNsYXRvci5vcHRpb25zID0gY2xvbmUub3B0aW9ucztcbiAgICAgIGNsb25lLnRyYW5zbGF0b3IuYmFja2VuZENvbm5lY3Rvci5zZXJ2aWNlcy51dGlscyA9IHtcbiAgICAgICAgaGFzTG9hZGVkTmFtZXNwYWNlOiBjbG9uZS5oYXNMb2FkZWROYW1lc3BhY2UuYmluZChjbG9uZSlcbiAgICAgIH07XG4gICAgICByZXR1cm4gY2xvbmU7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInRvSlNPTlwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiB0b0pTT04oKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBvcHRpb25zOiB0aGlzLm9wdGlvbnMsXG4gICAgICAgIHN0b3JlOiB0aGlzLnN0b3JlLFxuICAgICAgICBsYW5ndWFnZTogdGhpcy5sYW5ndWFnZSxcbiAgICAgICAgbGFuZ3VhZ2VzOiB0aGlzLmxhbmd1YWdlcyxcbiAgICAgICAgcmVzb2x2ZWRMYW5ndWFnZTogdGhpcy5yZXNvbHZlZExhbmd1YWdlXG4gICAgICB9O1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBJMThuO1xufShFdmVudEVtaXR0ZXIpO1xuXG52YXIgaTE4bmV4dCA9IG5ldyBJMThuKCk7XG5cbmV4cG9ydCBkZWZhdWx0IGkxOG5leHQ7XG4iLCJpbXBvcnQgYXJyYXlXaXRoSG9sZXMgZnJvbSBcIi4vYXJyYXlXaXRoSG9sZXMuanNcIjtcbmltcG9ydCBpdGVyYWJsZVRvQXJyYXlMaW1pdCBmcm9tIFwiLi9pdGVyYWJsZVRvQXJyYXlMaW1pdC5qc1wiO1xuaW1wb3J0IHVuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IGZyb20gXCIuL3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5LmpzXCI7XG5pbXBvcnQgbm9uSXRlcmFibGVSZXN0IGZyb20gXCIuL25vbkl0ZXJhYmxlUmVzdC5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX3NsaWNlZFRvQXJyYXkoYXJyLCBpKSB7XG4gIHJldHVybiBhcnJheVdpdGhIb2xlcyhhcnIpIHx8IGl0ZXJhYmxlVG9BcnJheUxpbWl0KGFyciwgaSkgfHwgdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkoYXJyLCBpKSB8fCBub25JdGVyYWJsZVJlc3QoKTtcbn0iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfYXJyYXlXaXRoSG9sZXMoYXJyKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KGFycikpIHJldHVybiBhcnI7XG59IiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX2l0ZXJhYmxlVG9BcnJheUxpbWl0KGFyciwgaSkge1xuICB2YXIgX2kgPSBhcnIgPT0gbnVsbCA/IG51bGwgOiB0eXBlb2YgU3ltYm9sICE9PSBcInVuZGVmaW5lZFwiICYmIGFycltTeW1ib2wuaXRlcmF0b3JdIHx8IGFycltcIkBAaXRlcmF0b3JcIl07XG5cbiAgaWYgKF9pID09IG51bGwpIHJldHVybjtcbiAgdmFyIF9hcnIgPSBbXTtcbiAgdmFyIF9uID0gdHJ1ZTtcbiAgdmFyIF9kID0gZmFsc2U7XG5cbiAgdmFyIF9zLCBfZTtcblxuICB0cnkge1xuICAgIGZvciAoX2kgPSBfaS5jYWxsKGFycik7ICEoX24gPSAoX3MgPSBfaS5uZXh0KCkpLmRvbmUpOyBfbiA9IHRydWUpIHtcbiAgICAgIF9hcnIucHVzaChfcy52YWx1ZSk7XG5cbiAgICAgIGlmIChpICYmIF9hcnIubGVuZ3RoID09PSBpKSBicmVhaztcbiAgICB9XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIF9kID0gdHJ1ZTtcbiAgICBfZSA9IGVycjtcbiAgfSBmaW5hbGx5IHtcbiAgICB0cnkge1xuICAgICAgaWYgKCFfbiAmJiBfaVtcInJldHVyblwiXSAhPSBudWxsKSBfaVtcInJldHVyblwiXSgpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpZiAoX2QpIHRocm93IF9lO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBfYXJyO1xufSIsImltcG9ydCBhcnJheUxpa2VUb0FycmF5IGZyb20gXCIuL2FycmF5TGlrZVRvQXJyYXkuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShvLCBtaW5MZW4pIHtcbiAgaWYgKCFvKSByZXR1cm47XG4gIGlmICh0eXBlb2YgbyA9PT0gXCJzdHJpbmdcIikgcmV0dXJuIGFycmF5TGlrZVRvQXJyYXkobywgbWluTGVuKTtcbiAgdmFyIG4gPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobykuc2xpY2UoOCwgLTEpO1xuICBpZiAobiA9PT0gXCJPYmplY3RcIiAmJiBvLmNvbnN0cnVjdG9yKSBuID0gby5jb25zdHJ1Y3Rvci5uYW1lO1xuICBpZiAobiA9PT0gXCJNYXBcIiB8fCBuID09PSBcIlNldFwiKSByZXR1cm4gQXJyYXkuZnJvbShvKTtcbiAgaWYgKG4gPT09IFwiQXJndW1lbnRzXCIgfHwgL14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QobikpIHJldHVybiBhcnJheUxpa2VUb0FycmF5KG8sIG1pbkxlbik7XG59IiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX25vbkl0ZXJhYmxlUmVzdCgpIHtcbiAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKTtcbn0iLCJpbXBvcnQgX2NsYXNzQ2FsbENoZWNrIGZyb20gJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2NsYXNzQ2FsbENoZWNrJztcbmltcG9ydCBfY3JlYXRlQ2xhc3MgZnJvbSAnQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY3JlYXRlQ2xhc3MnO1xuXG52YXIgYXJyID0gW107XG52YXIgZWFjaCA9IGFyci5mb3JFYWNoO1xudmFyIHNsaWNlID0gYXJyLnNsaWNlO1xuZnVuY3Rpb24gZGVmYXVsdHMob2JqKSB7XG4gIGVhY2guY2FsbChzbGljZS5jYWxsKGFyZ3VtZW50cywgMSksIGZ1bmN0aW9uIChzb3VyY2UpIHtcbiAgICBpZiAoc291cmNlKSB7XG4gICAgICBmb3IgKHZhciBwcm9wIGluIHNvdXJjZSkge1xuICAgICAgICBpZiAob2JqW3Byb3BdID09PSB1bmRlZmluZWQpIG9ialtwcm9wXSA9IHNvdXJjZVtwcm9wXTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuICByZXR1cm4gb2JqO1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29udHJvbC1yZWdleFxudmFyIGZpZWxkQ29udGVudFJlZ0V4cCA9IC9eW1xcdTAwMDlcXHUwMDIwLVxcdTAwN2VcXHUwMDgwLVxcdTAwZmZdKyQvO1xuXG52YXIgc2VyaWFsaXplQ29va2llID0gZnVuY3Rpb24gc2VyaWFsaXplQ29va2llKG5hbWUsIHZhbCwgb3B0aW9ucykge1xuICB2YXIgb3B0ID0gb3B0aW9ucyB8fCB7fTtcbiAgb3B0LnBhdGggPSBvcHQucGF0aCB8fCAnLyc7XG4gIHZhciB2YWx1ZSA9IGVuY29kZVVSSUNvbXBvbmVudCh2YWwpO1xuICB2YXIgc3RyID0gbmFtZSArICc9JyArIHZhbHVlO1xuXG4gIGlmIChvcHQubWF4QWdlID4gMCkge1xuICAgIHZhciBtYXhBZ2UgPSBvcHQubWF4QWdlIC0gMDtcbiAgICBpZiAoaXNOYU4obWF4QWdlKSkgdGhyb3cgbmV3IEVycm9yKCdtYXhBZ2Ugc2hvdWxkIGJlIGEgTnVtYmVyJyk7XG4gICAgc3RyICs9ICc7IE1heC1BZ2U9JyArIE1hdGguZmxvb3IobWF4QWdlKTtcbiAgfVxuXG4gIGlmIChvcHQuZG9tYWluKSB7XG4gICAgaWYgKCFmaWVsZENvbnRlbnRSZWdFeHAudGVzdChvcHQuZG9tYWluKSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignb3B0aW9uIGRvbWFpbiBpcyBpbnZhbGlkJyk7XG4gICAgfVxuXG4gICAgc3RyICs9ICc7IERvbWFpbj0nICsgb3B0LmRvbWFpbjtcbiAgfVxuXG4gIGlmIChvcHQucGF0aCkge1xuICAgIGlmICghZmllbGRDb250ZW50UmVnRXhwLnRlc3Qob3B0LnBhdGgpKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdvcHRpb24gcGF0aCBpcyBpbnZhbGlkJyk7XG4gICAgfVxuXG4gICAgc3RyICs9ICc7IFBhdGg9JyArIG9wdC5wYXRoO1xuICB9XG5cbiAgaWYgKG9wdC5leHBpcmVzKSB7XG4gICAgaWYgKHR5cGVvZiBvcHQuZXhwaXJlcy50b1VUQ1N0cmluZyAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignb3B0aW9uIGV4cGlyZXMgaXMgaW52YWxpZCcpO1xuICAgIH1cblxuICAgIHN0ciArPSAnOyBFeHBpcmVzPScgKyBvcHQuZXhwaXJlcy50b1VUQ1N0cmluZygpO1xuICB9XG5cbiAgaWYgKG9wdC5odHRwT25seSkgc3RyICs9ICc7IEh0dHBPbmx5JztcbiAgaWYgKG9wdC5zZWN1cmUpIHN0ciArPSAnOyBTZWN1cmUnO1xuXG4gIGlmIChvcHQuc2FtZVNpdGUpIHtcbiAgICB2YXIgc2FtZVNpdGUgPSB0eXBlb2Ygb3B0LnNhbWVTaXRlID09PSAnc3RyaW5nJyA/IG9wdC5zYW1lU2l0ZS50b0xvd2VyQ2FzZSgpIDogb3B0LnNhbWVTaXRlO1xuXG4gICAgc3dpdGNoIChzYW1lU2l0ZSkge1xuICAgICAgY2FzZSB0cnVlOlxuICAgICAgICBzdHIgKz0gJzsgU2FtZVNpdGU9U3RyaWN0JztcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ2xheCc6XG4gICAgICAgIHN0ciArPSAnOyBTYW1lU2l0ZT1MYXgnO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnc3RyaWN0JzpcbiAgICAgICAgc3RyICs9ICc7IFNhbWVTaXRlPVN0cmljdCc7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdub25lJzpcbiAgICAgICAgc3RyICs9ICc7IFNhbWVTaXRlPU5vbmUnO1xuICAgICAgICBicmVhaztcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignb3B0aW9uIHNhbWVTaXRlIGlzIGludmFsaWQnKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3RyO1xufTtcblxudmFyIGNvb2tpZSA9IHtcbiAgY3JlYXRlOiBmdW5jdGlvbiBjcmVhdGUobmFtZSwgdmFsdWUsIG1pbnV0ZXMsIGRvbWFpbikge1xuICAgIHZhciBjb29raWVPcHRpb25zID0gYXJndW1lbnRzLmxlbmd0aCA+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiB7XG4gICAgICBwYXRoOiAnLycsXG4gICAgICBzYW1lU2l0ZTogJ3N0cmljdCdcbiAgICB9O1xuXG4gICAgaWYgKG1pbnV0ZXMpIHtcbiAgICAgIGNvb2tpZU9wdGlvbnMuZXhwaXJlcyA9IG5ldyBEYXRlKCk7XG4gICAgICBjb29raWVPcHRpb25zLmV4cGlyZXMuc2V0VGltZShjb29raWVPcHRpb25zLmV4cGlyZXMuZ2V0VGltZSgpICsgbWludXRlcyAqIDYwICogMTAwMCk7XG4gICAgfVxuXG4gICAgaWYgKGRvbWFpbikgY29va2llT3B0aW9ucy5kb21haW4gPSBkb21haW47XG4gICAgZG9jdW1lbnQuY29va2llID0gc2VyaWFsaXplQ29va2llKG5hbWUsIGVuY29kZVVSSUNvbXBvbmVudCh2YWx1ZSksIGNvb2tpZU9wdGlvbnMpO1xuICB9LFxuICByZWFkOiBmdW5jdGlvbiByZWFkKG5hbWUpIHtcbiAgICB2YXIgbmFtZUVRID0gbmFtZSArICc9JztcbiAgICB2YXIgY2EgPSBkb2N1bWVudC5jb29raWUuc3BsaXQoJzsnKTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2EubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBjID0gY2FbaV07XG5cbiAgICAgIHdoaWxlIChjLmNoYXJBdCgwKSA9PT0gJyAnKSB7XG4gICAgICAgIGMgPSBjLnN1YnN0cmluZygxLCBjLmxlbmd0aCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChjLmluZGV4T2YobmFtZUVRKSA9PT0gMCkgcmV0dXJuIGMuc3Vic3RyaW5nKG5hbWVFUS5sZW5ndGgsIGMubGVuZ3RoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfSxcbiAgcmVtb3ZlOiBmdW5jdGlvbiByZW1vdmUobmFtZSkge1xuICAgIHRoaXMuY3JlYXRlKG5hbWUsICcnLCAtMSk7XG4gIH1cbn07XG52YXIgY29va2llJDEgPSB7XG4gIG5hbWU6ICdjb29raWUnLFxuICBsb29rdXA6IGZ1bmN0aW9uIGxvb2t1cChvcHRpb25zKSB7XG4gICAgdmFyIGZvdW5kO1xuXG4gICAgaWYgKG9wdGlvbnMubG9va3VwQ29va2llICYmIHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHZhciBjID0gY29va2llLnJlYWQob3B0aW9ucy5sb29rdXBDb29raWUpO1xuICAgICAgaWYgKGMpIGZvdW5kID0gYztcbiAgICB9XG5cbiAgICByZXR1cm4gZm91bmQ7XG4gIH0sXG4gIGNhY2hlVXNlckxhbmd1YWdlOiBmdW5jdGlvbiBjYWNoZVVzZXJMYW5ndWFnZShsbmcsIG9wdGlvbnMpIHtcbiAgICBpZiAob3B0aW9ucy5sb29rdXBDb29raWUgJiYgdHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgY29va2llLmNyZWF0ZShvcHRpb25zLmxvb2t1cENvb2tpZSwgbG5nLCBvcHRpb25zLmNvb2tpZU1pbnV0ZXMsIG9wdGlvbnMuY29va2llRG9tYWluLCBvcHRpb25zLmNvb2tpZU9wdGlvbnMpO1xuICAgIH1cbiAgfVxufTtcblxudmFyIHF1ZXJ5c3RyaW5nID0ge1xuICBuYW1lOiAncXVlcnlzdHJpbmcnLFxuICBsb29rdXA6IGZ1bmN0aW9uIGxvb2t1cChvcHRpb25zKSB7XG4gICAgdmFyIGZvdW5kO1xuXG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICB2YXIgcXVlcnkgPSB3aW5kb3cubG9jYXRpb24uc2VhcmNoLnN1YnN0cmluZygxKTtcbiAgICAgIHZhciBwYXJhbXMgPSBxdWVyeS5zcGxpdCgnJicpO1xuXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBhcmFtcy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgcG9zID0gcGFyYW1zW2ldLmluZGV4T2YoJz0nKTtcblxuICAgICAgICBpZiAocG9zID4gMCkge1xuICAgICAgICAgIHZhciBrZXkgPSBwYXJhbXNbaV0uc3Vic3RyaW5nKDAsIHBvcyk7XG5cbiAgICAgICAgICBpZiAoa2V5ID09PSBvcHRpb25zLmxvb2t1cFF1ZXJ5c3RyaW5nKSB7XG4gICAgICAgICAgICBmb3VuZCA9IHBhcmFtc1tpXS5zdWJzdHJpbmcocG9zICsgMSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZvdW5kO1xuICB9XG59O1xuXG52YXIgaGFzTG9jYWxTdG9yYWdlU3VwcG9ydCA9IG51bGw7XG5cbnZhciBsb2NhbFN0b3JhZ2VBdmFpbGFibGUgPSBmdW5jdGlvbiBsb2NhbFN0b3JhZ2VBdmFpbGFibGUoKSB7XG4gIGlmIChoYXNMb2NhbFN0b3JhZ2VTdXBwb3J0ICE9PSBudWxsKSByZXR1cm4gaGFzTG9jYWxTdG9yYWdlU3VwcG9ydDtcblxuICB0cnkge1xuICAgIGhhc0xvY2FsU3RvcmFnZVN1cHBvcnQgPSB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5sb2NhbFN0b3JhZ2UgIT09IG51bGw7XG4gICAgdmFyIHRlc3RLZXkgPSAnaTE4bmV4dC50cmFuc2xhdGUuYm9vJztcbiAgICB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0odGVzdEtleSwgJ2ZvbycpO1xuICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSh0ZXN0S2V5KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGhhc0xvY2FsU3RvcmFnZVN1cHBvcnQgPSBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiBoYXNMb2NhbFN0b3JhZ2VTdXBwb3J0O1xufTtcblxudmFyIGxvY2FsU3RvcmFnZSA9IHtcbiAgbmFtZTogJ2xvY2FsU3RvcmFnZScsXG4gIGxvb2t1cDogZnVuY3Rpb24gbG9va3VwKG9wdGlvbnMpIHtcbiAgICB2YXIgZm91bmQ7XG5cbiAgICBpZiAob3B0aW9ucy5sb29rdXBMb2NhbFN0b3JhZ2UgJiYgbG9jYWxTdG9yYWdlQXZhaWxhYmxlKCkpIHtcbiAgICAgIHZhciBsbmcgPSB3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0ob3B0aW9ucy5sb29rdXBMb2NhbFN0b3JhZ2UpO1xuICAgICAgaWYgKGxuZykgZm91bmQgPSBsbmc7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZvdW5kO1xuICB9LFxuICBjYWNoZVVzZXJMYW5ndWFnZTogZnVuY3Rpb24gY2FjaGVVc2VyTGFuZ3VhZ2UobG5nLCBvcHRpb25zKSB7XG4gICAgaWYgKG9wdGlvbnMubG9va3VwTG9jYWxTdG9yYWdlICYmIGxvY2FsU3RvcmFnZUF2YWlsYWJsZSgpKSB7XG4gICAgICB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0ob3B0aW9ucy5sb29rdXBMb2NhbFN0b3JhZ2UsIGxuZyk7XG4gICAgfVxuICB9XG59O1xuXG52YXIgaGFzU2Vzc2lvblN0b3JhZ2VTdXBwb3J0ID0gbnVsbDtcblxudmFyIHNlc3Npb25TdG9yYWdlQXZhaWxhYmxlID0gZnVuY3Rpb24gc2Vzc2lvblN0b3JhZ2VBdmFpbGFibGUoKSB7XG4gIGlmIChoYXNTZXNzaW9uU3RvcmFnZVN1cHBvcnQgIT09IG51bGwpIHJldHVybiBoYXNTZXNzaW9uU3RvcmFnZVN1cHBvcnQ7XG5cbiAgdHJ5IHtcbiAgICBoYXNTZXNzaW9uU3RvcmFnZVN1cHBvcnQgPSB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5zZXNzaW9uU3RvcmFnZSAhPT0gbnVsbDtcbiAgICB2YXIgdGVzdEtleSA9ICdpMThuZXh0LnRyYW5zbGF0ZS5ib28nO1xuICAgIHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRlc3RLZXksICdmb28nKTtcbiAgICB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSh0ZXN0S2V5KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGhhc1Nlc3Npb25TdG9yYWdlU3VwcG9ydCA9IGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIGhhc1Nlc3Npb25TdG9yYWdlU3VwcG9ydDtcbn07XG5cbnZhciBzZXNzaW9uU3RvcmFnZSA9IHtcbiAgbmFtZTogJ3Nlc3Npb25TdG9yYWdlJyxcbiAgbG9va3VwOiBmdW5jdGlvbiBsb29rdXAob3B0aW9ucykge1xuICAgIHZhciBmb3VuZDtcblxuICAgIGlmIChvcHRpb25zLmxvb2t1cFNlc3Npb25TdG9yYWdlICYmIHNlc3Npb25TdG9yYWdlQXZhaWxhYmxlKCkpIHtcbiAgICAgIHZhciBsbmcgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShvcHRpb25zLmxvb2t1cFNlc3Npb25TdG9yYWdlKTtcbiAgICAgIGlmIChsbmcpIGZvdW5kID0gbG5nO1xuICAgIH1cblxuICAgIHJldHVybiBmb3VuZDtcbiAgfSxcbiAgY2FjaGVVc2VyTGFuZ3VhZ2U6IGZ1bmN0aW9uIGNhY2hlVXNlckxhbmd1YWdlKGxuZywgb3B0aW9ucykge1xuICAgIGlmIChvcHRpb25zLmxvb2t1cFNlc3Npb25TdG9yYWdlICYmIHNlc3Npb25TdG9yYWdlQXZhaWxhYmxlKCkpIHtcbiAgICAgIHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVtKG9wdGlvbnMubG9va3VwU2Vzc2lvblN0b3JhZ2UsIGxuZyk7XG4gICAgfVxuICB9XG59O1xuXG52YXIgbmF2aWdhdG9yJDEgPSB7XG4gIG5hbWU6ICduYXZpZ2F0b3InLFxuICBsb29rdXA6IGZ1bmN0aW9uIGxvb2t1cChvcHRpb25zKSB7XG4gICAgdmFyIGZvdW5kID0gW107XG5cbiAgICBpZiAodHlwZW9mIG5hdmlnYXRvciAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGlmIChuYXZpZ2F0b3IubGFuZ3VhZ2VzKSB7XG4gICAgICAgIC8vIGNocm9tZSBvbmx5OyBub3QgYW4gYXJyYXksIHNvIGNhbid0IHVzZSAucHVzaC5hcHBseSBpbnN0ZWFkIG9mIGl0ZXJhdGluZ1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5hdmlnYXRvci5sYW5ndWFnZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBmb3VuZC5wdXNoKG5hdmlnYXRvci5sYW5ndWFnZXNbaV0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChuYXZpZ2F0b3IudXNlckxhbmd1YWdlKSB7XG4gICAgICAgIGZvdW5kLnB1c2gobmF2aWdhdG9yLnVzZXJMYW5ndWFnZSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChuYXZpZ2F0b3IubGFuZ3VhZ2UpIHtcbiAgICAgICAgZm91bmQucHVzaChuYXZpZ2F0b3IubGFuZ3VhZ2UpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmb3VuZC5sZW5ndGggPiAwID8gZm91bmQgOiB1bmRlZmluZWQ7XG4gIH1cbn07XG5cbnZhciBodG1sVGFnID0ge1xuICBuYW1lOiAnaHRtbFRhZycsXG4gIGxvb2t1cDogZnVuY3Rpb24gbG9va3VwKG9wdGlvbnMpIHtcbiAgICB2YXIgZm91bmQ7XG4gICAgdmFyIGh0bWxUYWcgPSBvcHRpb25zLmh0bWxUYWcgfHwgKHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcgPyBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQgOiBudWxsKTtcblxuICAgIGlmIChodG1sVGFnICYmIHR5cGVvZiBodG1sVGFnLmdldEF0dHJpYnV0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgZm91bmQgPSBodG1sVGFnLmdldEF0dHJpYnV0ZSgnbGFuZycpO1xuICAgIH1cblxuICAgIHJldHVybiBmb3VuZDtcbiAgfVxufTtcblxudmFyIHBhdGggPSB7XG4gIG5hbWU6ICdwYXRoJyxcbiAgbG9va3VwOiBmdW5jdGlvbiBsb29rdXAob3B0aW9ucykge1xuICAgIHZhciBmb3VuZDtcblxuICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgdmFyIGxhbmd1YWdlID0gd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLm1hdGNoKC9cXC8oW2EtekEtWi1dKikvZyk7XG5cbiAgICAgIGlmIChsYW5ndWFnZSBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5sb29rdXBGcm9tUGF0aEluZGV4ID09PSAnbnVtYmVyJykge1xuICAgICAgICAgIGlmICh0eXBlb2YgbGFuZ3VhZ2Vbb3B0aW9ucy5sb29rdXBGcm9tUGF0aEluZGV4XSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZm91bmQgPSBsYW5ndWFnZVtvcHRpb25zLmxvb2t1cEZyb21QYXRoSW5kZXhdLnJlcGxhY2UoJy8nLCAnJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZm91bmQgPSBsYW5ndWFnZVswXS5yZXBsYWNlKCcvJywgJycpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZvdW5kO1xuICB9XG59O1xuXG52YXIgc3ViZG9tYWluID0ge1xuICBuYW1lOiAnc3ViZG9tYWluJyxcbiAgbG9va3VwOiBmdW5jdGlvbiBsb29rdXAob3B0aW9ucykge1xuICAgIHZhciBmb3VuZDtcblxuICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgdmFyIGxhbmd1YWdlID0gd2luZG93LmxvY2F0aW9uLmhyZWYubWF0Y2goLyg/Omh0dHBbc10qXFw6XFwvXFwvKSooLio/KVxcLig/PVteXFwvXSpcXC4uezIsNX0pL2dpKTtcblxuICAgICAgaWYgKGxhbmd1YWdlIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLmxvb2t1cEZyb21TdWJkb21haW5JbmRleCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICBmb3VuZCA9IGxhbmd1YWdlW29wdGlvbnMubG9va3VwRnJvbVN1YmRvbWFpbkluZGV4XS5yZXBsYWNlKCdodHRwOi8vJywgJycpLnJlcGxhY2UoJ2h0dHBzOi8vJywgJycpLnJlcGxhY2UoJy4nLCAnJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZm91bmQgPSBsYW5ndWFnZVswXS5yZXBsYWNlKCdodHRwOi8vJywgJycpLnJlcGxhY2UoJ2h0dHBzOi8vJywgJycpLnJlcGxhY2UoJy4nLCAnJyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZm91bmQ7XG4gIH1cbn07XG5cbmZ1bmN0aW9uIGdldERlZmF1bHRzKCkge1xuICByZXR1cm4ge1xuICAgIG9yZGVyOiBbJ3F1ZXJ5c3RyaW5nJywgJ2Nvb2tpZScsICdsb2NhbFN0b3JhZ2UnLCAnc2Vzc2lvblN0b3JhZ2UnLCAnbmF2aWdhdG9yJywgJ2h0bWxUYWcnXSxcbiAgICBsb29rdXBRdWVyeXN0cmluZzogJ2xuZycsXG4gICAgbG9va3VwQ29va2llOiAnaTE4bmV4dCcsXG4gICAgbG9va3VwTG9jYWxTdG9yYWdlOiAnaTE4bmV4dExuZycsXG4gICAgbG9va3VwU2Vzc2lvblN0b3JhZ2U6ICdpMThuZXh0TG5nJyxcbiAgICAvLyBjYWNoZSB1c2VyIGxhbmd1YWdlXG4gICAgY2FjaGVzOiBbJ2xvY2FsU3RvcmFnZSddLFxuICAgIGV4Y2x1ZGVDYWNoZUZvcjogWydjaW1vZGUnXSAvL2Nvb2tpZU1pbnV0ZXM6IDEwLFxuICAgIC8vY29va2llRG9tYWluOiAnbXlEb21haW4nXG5cbiAgfTtcbn1cblxudmFyIEJyb3dzZXIgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKCkge1xuICBmdW5jdGlvbiBCcm93c2VyKHNlcnZpY2VzKSB7XG4gICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IHt9O1xuXG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEJyb3dzZXIpO1xuXG4gICAgdGhpcy50eXBlID0gJ2xhbmd1YWdlRGV0ZWN0b3InO1xuICAgIHRoaXMuZGV0ZWN0b3JzID0ge307XG4gICAgdGhpcy5pbml0KHNlcnZpY2VzLCBvcHRpb25zKTtcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhCcm93c2VyLCBbe1xuICAgIGtleTogXCJpbml0XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGluaXQoc2VydmljZXMpIHtcbiAgICAgIHZhciBvcHRpb25zID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiB7fTtcbiAgICAgIHZhciBpMThuT3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIGFyZ3VtZW50c1syXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzJdIDoge307XG4gICAgICB0aGlzLnNlcnZpY2VzID0gc2VydmljZXM7XG4gICAgICB0aGlzLm9wdGlvbnMgPSBkZWZhdWx0cyhvcHRpb25zLCB0aGlzLm9wdGlvbnMgfHwge30sIGdldERlZmF1bHRzKCkpOyAvLyBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eVxuXG4gICAgICBpZiAodGhpcy5vcHRpb25zLmxvb2t1cEZyb21VcmxJbmRleCkgdGhpcy5vcHRpb25zLmxvb2t1cEZyb21QYXRoSW5kZXggPSB0aGlzLm9wdGlvbnMubG9va3VwRnJvbVVybEluZGV4O1xuICAgICAgdGhpcy5pMThuT3B0aW9ucyA9IGkxOG5PcHRpb25zO1xuICAgICAgdGhpcy5hZGREZXRlY3Rvcihjb29raWUkMSk7XG4gICAgICB0aGlzLmFkZERldGVjdG9yKHF1ZXJ5c3RyaW5nKTtcbiAgICAgIHRoaXMuYWRkRGV0ZWN0b3IobG9jYWxTdG9yYWdlKTtcbiAgICAgIHRoaXMuYWRkRGV0ZWN0b3Ioc2Vzc2lvblN0b3JhZ2UpO1xuICAgICAgdGhpcy5hZGREZXRlY3RvcihuYXZpZ2F0b3IkMSk7XG4gICAgICB0aGlzLmFkZERldGVjdG9yKGh0bWxUYWcpO1xuICAgICAgdGhpcy5hZGREZXRlY3RvcihwYXRoKTtcbiAgICAgIHRoaXMuYWRkRGV0ZWN0b3Ioc3ViZG9tYWluKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiYWRkRGV0ZWN0b3JcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gYWRkRGV0ZWN0b3IoZGV0ZWN0b3IpIHtcbiAgICAgIHRoaXMuZGV0ZWN0b3JzW2RldGVjdG9yLm5hbWVdID0gZGV0ZWN0b3I7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImRldGVjdFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBkZXRlY3QoZGV0ZWN0aW9uT3JkZXIpIHtcbiAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgICAgIGlmICghZGV0ZWN0aW9uT3JkZXIpIGRldGVjdGlvbk9yZGVyID0gdGhpcy5vcHRpb25zLm9yZGVyO1xuICAgICAgdmFyIGRldGVjdGVkID0gW107XG4gICAgICBkZXRlY3Rpb25PcmRlci5mb3JFYWNoKGZ1bmN0aW9uIChkZXRlY3Rvck5hbWUpIHtcbiAgICAgICAgaWYgKF90aGlzLmRldGVjdG9yc1tkZXRlY3Rvck5hbWVdKSB7XG4gICAgICAgICAgdmFyIGxvb2t1cCA9IF90aGlzLmRldGVjdG9yc1tkZXRlY3Rvck5hbWVdLmxvb2t1cChfdGhpcy5vcHRpb25zKTtcblxuICAgICAgICAgIGlmIChsb29rdXAgJiYgdHlwZW9mIGxvb2t1cCA9PT0gJ3N0cmluZycpIGxvb2t1cCA9IFtsb29rdXBdO1xuICAgICAgICAgIGlmIChsb29rdXApIGRldGVjdGVkID0gZGV0ZWN0ZWQuY29uY2F0KGxvb2t1cCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgaWYgKHRoaXMuc2VydmljZXMubGFuZ3VhZ2VVdGlscy5nZXRCZXN0TWF0Y2hGcm9tQ29kZXMpIHJldHVybiBkZXRlY3RlZDsgLy8gbmV3IGkxOG5leHQgdjE5LjUuMFxuXG4gICAgICByZXR1cm4gZGV0ZWN0ZWQubGVuZ3RoID4gMCA/IGRldGVjdGVkWzBdIDogbnVsbDsgLy8gYSBsaXR0bGUgYmFja3dhcmQgY29tcGF0aWJpbGl0eVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJjYWNoZVVzZXJMYW5ndWFnZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjYWNoZVVzZXJMYW5ndWFnZShsbmcsIGNhY2hlcykge1xuICAgICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgICAgIGlmICghY2FjaGVzKSBjYWNoZXMgPSB0aGlzLm9wdGlvbnMuY2FjaGVzO1xuICAgICAgaWYgKCFjYWNoZXMpIHJldHVybjtcbiAgICAgIGlmICh0aGlzLm9wdGlvbnMuZXhjbHVkZUNhY2hlRm9yICYmIHRoaXMub3B0aW9ucy5leGNsdWRlQ2FjaGVGb3IuaW5kZXhPZihsbmcpID4gLTEpIHJldHVybjtcbiAgICAgIGNhY2hlcy5mb3JFYWNoKGZ1bmN0aW9uIChjYWNoZU5hbWUpIHtcbiAgICAgICAgaWYgKF90aGlzMi5kZXRlY3RvcnNbY2FjaGVOYW1lXSkgX3RoaXMyLmRldGVjdG9yc1tjYWNoZU5hbWVdLmNhY2hlVXNlckxhbmd1YWdlKGxuZywgX3RoaXMyLm9wdGlvbnMpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIEJyb3dzZXI7XG59KCk7XG5cbkJyb3dzZXIudHlwZSA9ICdsYW5ndWFnZURldGVjdG9yJztcblxuZXhwb3J0IGRlZmF1bHQgQnJvd3NlcjtcbiIsImltcG9ydCBfY2xhc3NDYWxsQ2hlY2sgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvY2xhc3NDYWxsQ2hlY2tcIjtcbmltcG9ydCBfY3JlYXRlQ2xhc3MgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvY3JlYXRlQ2xhc3NcIjtcbmltcG9ydCBfZGVmaW5lUHJvcGVydHkgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZGVmaW5lUHJvcGVydHlcIjtcblxuZnVuY3Rpb24gb3duS2V5cyhvYmplY3QsIGVudW1lcmFibGVPbmx5KSB7IHZhciBrZXlzID0gT2JqZWN0LmtleXMob2JqZWN0KTsgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHsgdmFyIHN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG9iamVjdCk7IGlmIChlbnVtZXJhYmxlT25seSkgeyBzeW1ib2xzID0gc3ltYm9scy5maWx0ZXIoZnVuY3Rpb24gKHN5bSkgeyByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmplY3QsIHN5bSkuZW51bWVyYWJsZTsgfSk7IH0ga2V5cy5wdXNoLmFwcGx5KGtleXMsIHN5bWJvbHMpOyB9IHJldHVybiBrZXlzOyB9XG5cbmZ1bmN0aW9uIF9vYmplY3RTcHJlYWQodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV0gIT0gbnVsbCA/IGFyZ3VtZW50c1tpXSA6IHt9OyBpZiAoaSAlIDIpIHsgb3duS2V5cyhPYmplY3Qoc291cmNlKSwgdHJ1ZSkuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7IF9kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgc291cmNlW2tleV0pOyB9KTsgfSBlbHNlIGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycykgeyBPYmplY3QuZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHNvdXJjZSkpOyB9IGVsc2UgeyBvd25LZXlzKE9iamVjdChzb3VyY2UpKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNvdXJjZSwga2V5KSk7IH0pOyB9IH0gcmV0dXJuIHRhcmdldDsgfVxuXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xudmFyIGRlZmF1bHRPcHRpb25zID0ge1xuICBiaW5kSTE4bjogJ2xhbmd1YWdlQ2hhbmdlZCcsXG4gIGJpbmRJMThuU3RvcmU6ICcnLFxuICB0cmFuc0VtcHR5Tm9kZVZhbHVlOiAnJyxcbiAgdHJhbnNTdXBwb3J0QmFzaWNIdG1sTm9kZXM6IHRydWUsXG4gIHRyYW5zV3JhcFRleHROb2RlczogJycsXG4gIHRyYW5zS2VlcEJhc2ljSHRtbE5vZGVzRm9yOiBbJ2JyJywgJ3N0cm9uZycsICdpJywgJ3AnXSxcbiAgdXNlU3VzcGVuc2U6IHRydWVcbn07XG52YXIgaTE4bkluc3RhbmNlO1xuZXhwb3J0IHZhciBJMThuQ29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQoKTtcbmV4cG9ydCBmdW5jdGlvbiBzZXREZWZhdWx0cygpIHtcbiAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9O1xuICBkZWZhdWx0T3B0aW9ucyA9IF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgZGVmYXVsdE9wdGlvbnMpLCBvcHRpb25zKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWZhdWx0cygpIHtcbiAgcmV0dXJuIGRlZmF1bHRPcHRpb25zO1xufVxuZXhwb3J0IHZhciBSZXBvcnROYW1lc3BhY2VzID0gZnVuY3Rpb24gKCkge1xuICBmdW5jdGlvbiBSZXBvcnROYW1lc3BhY2VzKCkge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXBvcnROYW1lc3BhY2VzKTtcblxuICAgIHRoaXMudXNlZE5hbWVzcGFjZXMgPSB7fTtcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhSZXBvcnROYW1lc3BhY2VzLCBbe1xuICAgIGtleTogXCJhZGRVc2VkTmFtZXNwYWNlc1wiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBhZGRVc2VkTmFtZXNwYWNlcyhuYW1lc3BhY2VzKSB7XG4gICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgICBuYW1lc3BhY2VzLmZvckVhY2goZnVuY3Rpb24gKG5zKSB7XG4gICAgICAgIGlmICghX3RoaXMudXNlZE5hbWVzcGFjZXNbbnNdKSBfdGhpcy51c2VkTmFtZXNwYWNlc1tuc10gPSB0cnVlO1xuICAgICAgfSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImdldFVzZWROYW1lc3BhY2VzXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldFVzZWROYW1lc3BhY2VzKCkge1xuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMudXNlZE5hbWVzcGFjZXMpO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBSZXBvcnROYW1lc3BhY2VzO1xufSgpO1xuZXhwb3J0IGZ1bmN0aW9uIHNldEkxOG4oaW5zdGFuY2UpIHtcbiAgaTE4bkluc3RhbmNlID0gaW5zdGFuY2U7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0STE4bigpIHtcbiAgcmV0dXJuIGkxOG5JbnN0YW5jZTtcbn1cbmV4cG9ydCB2YXIgaW5pdFJlYWN0STE4bmV4dCA9IHtcbiAgdHlwZTogJzNyZFBhcnR5JyxcbiAgaW5pdDogZnVuY3Rpb24gaW5pdChpbnN0YW5jZSkge1xuICAgIHNldERlZmF1bHRzKGluc3RhbmNlLm9wdGlvbnMucmVhY3QpO1xuICAgIHNldEkxOG4oaW5zdGFuY2UpO1xuICB9XG59O1xuZXhwb3J0IGZ1bmN0aW9uIGNvbXBvc2VJbml0aWFsUHJvcHMoRm9yQ29tcG9uZW50KSB7XG4gIHJldHVybiBmdW5jdGlvbiAoY3R4KSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlKSB7XG4gICAgICB2YXIgaTE4bkluaXRpYWxQcm9wcyA9IGdldEluaXRpYWxQcm9wcygpO1xuXG4gICAgICBpZiAoRm9yQ29tcG9uZW50LmdldEluaXRpYWxQcm9wcykge1xuICAgICAgICBGb3JDb21wb25lbnQuZ2V0SW5pdGlhbFByb3BzKGN0eCkudGhlbihmdW5jdGlvbiAoY29tcG9uZW50c0luaXRpYWxQcm9wcykge1xuICAgICAgICAgIHJlc29sdmUoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBjb21wb25lbnRzSW5pdGlhbFByb3BzKSwgaTE4bkluaXRpYWxQcm9wcykpO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc29sdmUoaTE4bkluaXRpYWxQcm9wcyk7XG4gICAgICB9XG4gICAgfSk7XG4gIH07XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0SW5pdGlhbFByb3BzKCkge1xuICB2YXIgaTE4biA9IGdldEkxOG4oKTtcbiAgdmFyIG5hbWVzcGFjZXMgPSBpMThuLnJlcG9ydE5hbWVzcGFjZXMgPyBpMThuLnJlcG9ydE5hbWVzcGFjZXMuZ2V0VXNlZE5hbWVzcGFjZXMoKSA6IFtdO1xuICB2YXIgcmV0ID0ge307XG4gIHZhciBpbml0aWFsSTE4blN0b3JlID0ge307XG4gIGkxOG4ubGFuZ3VhZ2VzLmZvckVhY2goZnVuY3Rpb24gKGwpIHtcbiAgICBpbml0aWFsSTE4blN0b3JlW2xdID0ge307XG4gICAgbmFtZXNwYWNlcy5mb3JFYWNoKGZ1bmN0aW9uIChucykge1xuICAgICAgaW5pdGlhbEkxOG5TdG9yZVtsXVtuc10gPSBpMThuLmdldFJlc291cmNlQnVuZGxlKGwsIG5zKSB8fCB7fTtcbiAgICB9KTtcbiAgfSk7XG4gIHJldC5pbml0aWFsSTE4blN0b3JlID0gaW5pdGlhbEkxOG5TdG9yZTtcbiAgcmV0LmluaXRpYWxMYW5ndWFnZSA9IGkxOG4ubGFuZ3VhZ2U7XG4gIHJldHVybiByZXQ7XG59IiwiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuKiBDb3B5cmlnaHQgKGMpIEludGVsIENvcnBvcmF0aW9uIDIwMTlcbiogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbmltcG9ydCBpMThuIGZyb20gJ2kxOG5leHQnXG5pbXBvcnQgTGFuZ3VhZ2VEZXRlY3RvciBmcm9tICdpMThuZXh0LWJyb3dzZXItbGFuZ3VhZ2VkZXRlY3RvcidcbmltcG9ydCB7IGluaXRSZWFjdEkxOG5leHQgfSBmcm9tICdyZWFjdC1pMThuZXh0J1xuXG5pbXBvcnQgdHJhbnNsYXRpb25FTiBmcm9tICcuL3B1YmxpYy9sb2NhbGVzL2VuL3RyYW5zbGF0aW9uLmpzb24nXG5pbXBvcnQgdHJhbnNsYXRpb25URSBmcm9tICcuL3B1YmxpYy9sb2NhbGVzL3RlL3RyYW5zbGF0aW9uLmpzb24nXG5pbXBvcnQgdHJhbnNsYXRpb25GUiBmcm9tICcuL3B1YmxpYy9sb2NhbGVzL2ZyL3RyYW5zbGF0aW9uLmpzb24nXG5pbXBvcnQgdHJhbnNsYXRpb25FUyBmcm9tICcuL3B1YmxpYy9sb2NhbGVzL2VzL3RyYW5zbGF0aW9uLmpzb24nXG5cbmNvbnN0IHJlc291cmNlcyA9IHtcbiAgZW46IHtcbiAgICB0cmFuc2xhdGlvbnM6IHRyYW5zbGF0aW9uRU5cbiAgfSxcbiAgdGU6IHtcbiAgICB0cmFuc2xhdGlvbnM6IHRyYW5zbGF0aW9uVEVcbiAgfSxcbiAgZnI6IHtcbiAgICB0cmFuc2xhdGlvbnM6IHRyYW5zbGF0aW9uRlJcbiAgfSxcbiAgZXM6IHtcbiAgICB0cmFuc2xhdGlvbnM6IHRyYW5zbGF0aW9uRVNcbiAgfVxufVxuXG5pMThuXG4gIC51c2UoaW5pdFJlYWN0STE4bmV4dClcbiAgLnVzZShMYW5ndWFnZURldGVjdG9yKVxuICAuaW5pdCh7XG4gICAgcmVzb3VyY2VzLFxuICAgIG5zOiBbJ3RyYW5zbGF0aW9ucyddLFxuICAgIGRlZmF1bHROUzogJ3RyYW5zbGF0aW9ucycsXG4gICAgZGVidWc6IGZhbHNlLFxuICAgIGZhbGxiYWNrTG5nOiAnZW4nLFxuXG4gICAgaW50ZXJwb2xhdGlvbjoge1xuICAgICAgZXNjYXBlVmFsdWU6IGZhbHNlLFxuICAgICAgZm9ybWF0U2VwYXJhdG9yOiAnLCdcbiAgICB9LFxuICAgIHJlYWN0OlxuICAgIHtcbiAgICAgIHdhaXQ6IGZhbHNlXG4gICAgfVxuICB9KS5jYXRjaCgoKSA9PiBjb25zb2xlLmluZm8oJ2Vycm9yIG9jY3VyZWQnKSlcblxuZXhwb3J0IGRlZmF1bHQgaTE4blxuIiwiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuKiBDb3B5cmlnaHQgKGMpIEludGVsIENvcnBvcmF0aW9uIDIwMTlcbiogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgeyByZW5kZXIgfSBmcm9tICdyZWFjdC1kb20nXG5pbXBvcnQgeyBLVk0gfSBmcm9tICcuL1VJJ1xuaW1wb3J0IGkxOG4gZnJvbSAnLi4vLi4vaTE4bidcbi8vIEdldCBicm93c2VyIGxhbmd1YWdlXG5pMThuLmNoYW5nZUxhbmd1YWdlKG5hdmlnYXRvci5sYW5ndWFnZSkuY2F0Y2goKCkgPT4gY29uc29sZS5pbmZvKCdlcnJvciBvY2N1cmVkJykpXG5cbmNvbnN0IHVybCA9IG5ldyBVUkwod2luZG93LmxvY2F0aW9uLmhyZWYpXG5jb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHVybC5zZWFyY2gpXG5cbnJlbmRlcig8S1ZNIGF1dG9Db25uZWN0PXtmYWxzZX0gZGV2aWNlSWQ9e3BhcmFtcy5nZXQoJ2RldmljZUlkJyl9IG1wc1NlcnZlcj17cGFyYW1zLmdldCgnbXBzU2VydmVyJykgKyAnL3JlbGF5J30gYXV0aFRva2VuPVwiYXV0aG9yaXphdGlvblwiIG1vdXNlRGVib3VuY2VUaW1lPXsyMDB9IGNhbnZhc0hlaWdodD17JzEwMCUnfSBjYW52YXNXaWR0aD17JzEwMCUnfSAvPiwgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2t2bScpKVxuIiwiLy8gVGhlIG1vZHVsZSBjYWNoZVxudmFyIF9fd2VicGFja19tb2R1bGVfY2FjaGVfXyA9IHt9O1xuXG4vLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcblx0dmFyIGNhY2hlZE1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF07XG5cdGlmIChjYWNoZWRNb2R1bGUgIT09IHVuZGVmaW5lZCkge1xuXHRcdHJldHVybiBjYWNoZWRNb2R1bGUuZXhwb3J0cztcblx0fVxuXHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuXHR2YXIgbW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXSA9IHtcblx0XHRpZDogbW9kdWxlSWQsXG5cdFx0Ly8gbm8gbW9kdWxlLmxvYWRlZCBuZWVkZWRcblx0XHRleHBvcnRzOiB7fVxuXHR9O1xuXG5cdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuXHRfX3dlYnBhY2tfbW9kdWxlc19fW21vZHVsZUlkXShtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuXHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuXHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG59XG5cbiIsIi8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSAobW9kdWxlKSA9PiB7XG5cdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuXHRcdCgpID0+IChtb2R1bGVbJ2RlZmF1bHQnXSkgOlxuXHRcdCgpID0+IChtb2R1bGUpO1xuXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCB7IGE6IGdldHRlciB9KTtcblx0cmV0dXJuIGdldHRlcjtcbn07IiwiLy8gZGVmaW5lIGdldHRlciBmdW5jdGlvbnMgZm9yIGhhcm1vbnkgZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5kID0gKGV4cG9ydHMsIGRlZmluaXRpb24pID0+IHtcblx0Zm9yKHZhciBrZXkgaW4gZGVmaW5pdGlvbikge1xuXHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhkZWZpbml0aW9uLCBrZXkpICYmICFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywga2V5KSkge1xuXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGRlZmluaXRpb25ba2V5XSB9KTtcblx0XHR9XG5cdH1cbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5vID0gKG9iaiwgcHJvcCkgPT4gKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApKSIsIi8vIGRlZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uciA9IChleHBvcnRzKSA9PiB7XG5cdGlmKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykge1xuXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pO1xuXHR9XG5cdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG59OyIsIi8vIHN0YXJ0dXBcbi8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0c1xuLy8gVGhpcyBlbnRyeSBtb2R1bGUgZG9lc24ndCB0ZWxsIGFib3V0IGl0J3MgdG9wLWxldmVsIGRlY2xhcmF0aW9ucyBzbyBpdCBjYW4ndCBiZSBpbmxpbmVkXG52YXIgX193ZWJwYWNrX2V4cG9ydHNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNDEwKTtcbiJdLCJuYW1lcyI6WyJyb290IiwiZmFjdG9yeSIsImV4cG9ydHMiLCJtb2R1bGUiLCJkZWZpbmUiLCJhbWQiLCJzZWxmIiwiZSIsIl9fd2VicGFja19tb2R1bGVzX18iLCJ0IiwidXRmOCIsInN0cmluZ1RvQnl0ZXMiLCJiaW4iLCJ1bmVzY2FwZSIsImVuY29kZVVSSUNvbXBvbmVudCIsImJ5dGVzVG9TdHJpbmciLCJkZWNvZGVVUklDb21wb25lbnQiLCJlc2NhcGUiLCJhIiwibGVuZ3RoIiwicHVzaCIsImNoYXJDb2RlQXQiLCJTdHJpbmciLCJmcm9tQ2hhckNvZGUiLCJqb2luIiwicm90bCIsInJvdHIiLCJlbmRpYW4iLCJjb25zdHJ1Y3RvciIsIk51bWJlciIsInJhbmRvbUJ5dGVzIiwiTWF0aCIsImZsb29yIiwicmFuZG9tIiwiYnl0ZXNUb1dvcmRzIiwicyIsIndvcmRzVG9CeXRlcyIsImJ5dGVzVG9IZXgiLCJ0b1N0cmluZyIsImhleFRvQnl0ZXMiLCJwYXJzZUludCIsInN1YnN0ciIsImJ5dGVzVG9CYXNlNjQiLCJvIiwiaSIsImNoYXJBdCIsImJhc2U2NFRvQnl0ZXMiLCJyZXBsYWNlIiwiaW5kZXhPZiIsInBvdyIsImlzQnVmZmVyIiwicmVhZEZsb2F0TEUiLCJzbGljZSIsIl9pc0J1ZmZlciIsInIiLCJuIiwiZW5jb2RpbmciLCJBcnJheSIsInByb3RvdHlwZSIsImNhbGwiLCJpc0FycmF5IiwiVWludDhBcnJheSIsImwiLCJoIiwiYyIsInAiLCJkIiwidiIsImIiLCJfZmYiLCJ1IiwiX2dnIiwiZiIsIl9oaCIsImciLCJfaWkiLCJTIiwibSIsIl8iLCJDIiwiX2Jsb2Nrc2l6ZSIsIl9kaWdlc3RzaXplIiwiRXJyb3IiLCJhc0J5dGVzIiwiYXNTdHJpbmciLCJIIiwic3VwZXIiLCJ0aGlzIiwicHJvdG9jb2wiLCJpbmZsYXRlIiwiaW5mbGF0ZUluaXQiLCJicHAiLCJzdGF0ZSIsImZvY3VzTW9kZSIsInVzZVpSTEUiLCJmcmFtZVJhdGVEZWxheSIsImNhbnZhc0N0eCIsInNwYXJlY2FjaGUiLCJidXR0b25tYXNrIiwiY2FudmFzQ29udHJvbCIsImNhbnZhcyIsImxhc3RNb3VzZU1vdmVUaW1lIiwiRGF0ZSIsImdldFRpbWUiLCJsb2dnZXIiLCJzZXREZXNrRm9jdXMiLCJnZXREZXNrRm9jdXMiLCJwcm9jZXNzRGF0YSIsIm9uUHJvY2Vzc0RhdGEiLCJvblN0YXRlQ2hhbmdlIiwidmVyYm9zZSIsImZpbGxTdHlsZSIsImZpbGxSZWN0Iiwid2lkdGgiLCJzdGFydCIsImluZmxhdGVSZXNldCIsIm9uS3ZtRGF0YVBlbmRpbmciLCJvbkt2bURhdGFBY2siLCJrdm1EYXRhU3VwcG9ydGVkIiwib25TZW5kS3ZtRGF0YSIsInVybHZhcnMiLCJrdm1kYXRhdHJhY2UiLCJjb25zb2xlIiwibG9nIiwib25TZW5kIiwiSW50VG9TdHIiLCJOIiwiSyIsIlNPTCIsIktWTSIsIklERVIiLCJmaWxlUmVhZGVyIiwicmFuZG9tTm9uY2VDaGFycyIsImhvc3QiLCJwb3J0IiwidXNlciIsInBhc3MiLCJ0bHMiLCJ0bHN2MW9ubHkiLCJSZWRpcmVjdFN0YXJ0U29sIiwiUmVkaXJlY3RTdGFydEt2bSIsIlJlZGlyZWN0U3RhcnRJZGVyIiwic2VydmVyIiwiYW10QWNjdW11bGF0b3IiLCJhdXRoVXJpIiwiYXV0aFRva2VuIiwiZ2V0V3NMb2NhdGlvbiIsImlzQnJvd3NlciIsIndpbmRvdyIsImxvY2F0aW9uIiwicGF0aG5hbWUiLCJzdWJzdHJpbmciLCJsYXN0SW5kZXhPZiIsImRlYnVnIiwiY29ubmVjdFN0YXRlIiwic29ja2V0Iiwib25vcGVuIiwib25Tb2NrZXRDb25uZWN0ZWQiLCJiaW5kIiwib25tZXNzYWdlIiwib25NZXNzYWdlIiwib25jbG9zZSIsIm9uU29ja2V0Q2xvc2VkIiwicmVhZEFzQmluYXJ5U3RyaW5nIiwib25sb2FkIiwib25Tb2NrZXREYXRhIiwidGFyZ2V0IiwicmVzdWx0IiwiZmlsZVJlYWRlckFjYyIsImZpbGVSZWFkZXJJblVzZSIsIkJsb2IiLCJzaGlmdCIsInJlYWRBc0FycmF5QnVmZmVyIiwib25sb2FkZW5kIiwicmVkaXJ0cmFjZSIsImluZm8iLCJzb2NrZXRTZW5kIiwiaW5EYXRhQ291bnQiLCJkYXRhIiwiYnl0ZUxlbmd0aCIsImVycm9yIiwic3RvcCIsIm9uRXJyb3IiLCJSZWFkSW50WCIsImluY2x1ZGVzIiwiSW50VG9TdHJYIiwid2FybiIsImFtdFNlcXVlbmNlIiwiU2hvcnRUb1N0clgiLCJnZW5lcmF0ZVJhbmRvbU5vbmNlIiwiaGV4X21kNSIsImFtdEtlZXBBbGl2ZVRpbWVyIiwic2V0SW50ZXJ2YWwiLCJzZW5kQW10S2VlcEFsaXZlIiwib25TdGFydCIsInJzdHIyaGV4IiwicmVhZHlTdGF0ZSIsInNlbmQiLCJidWZmZXIiLCJvbk5ld1N0YXRlIiwib25TdGF0ZUNoYW5nZWQiLCJjbG9zZSIsImNsZWFySW50ZXJ2YWwiLCJ0ZXJtaW5hbEVtdWxhdGlvbiIsImZ4RW11bGF0aW9uIiwiZnhMaW5lQnJlYWsiLCJBc2NpaVRvVW5pY29kZSIsIkFzY2lpVG9Vbmljb2RlSW50ZWwiLCJTdGF0ZUNoYW5nZSIsIlRlcm1TZW5kS2V5cyIsImsiLCJtaW5MZXZlbCIsIlZFUkJPU0UiLCJJTkZPIiwiREVCVUciLCJXQVJOSU5HIiwiRVJST1IiLCJSZWFkU2hvcnQiLCJSZWFkU2hvcnRYIiwiUmVhZEludCIsIlJlYWRTSW50IiwiU2hvcnRUb1N0ciIsIlNwbGl0QXJyYXkiLCJzcGxpdCIsIkNsb25lIiwiSlNPTiIsInBhcnNlIiwic3RyaW5naWZ5IiwiRXNjYXBlSHRtbCIsIkFycmF5RWxlbWVudE1vdmUiLCJzcGxpY2UiLCJPYmplY3RUb1N0cmluZ0V4IiwiZ2FwIiwiT2JqZWN0IiwiT2JqZWN0VG9TdHJpbmdFeDIiLCJnYXAyIiwiT2JqZWN0VG9TdHJpbmciLCJPYmplY3RUb1N0cmluZzIiLCJjaGFyMmhleCIsInRvVXBwZXJDYXNlIiwiZW5jb2RlX3V0ZjgiLCJkZWNvZGVfdXRmOCIsImRhdGEyYmxvYiIsInRyYWRlbWFya3MiLCIkIiwiYWNjIiwic3RhdGVQcm9jZXNzb3JGYWMiLCJ1cGRhdGVSRkJTdGF0ZSIsInBhcmVudCIsImdldFByb2Nlc3NvciIsInByb2Nlc3NTdGF0ZSIsIlgiLCJEZWNvZGUiLCJqIiwic2V0UGl4ZWwiLCJwdXRJbWFnZSIsImZpeENvbG9yIiwicm90WCIsInJvdFkiLCJ3c1NvY2tldCIsInJsZURlY29kZXIiLCJzcGFyZXciLCJzcGFyZWgiLCJzcGFyZXcyIiwic3BhcmVoMiIsInJvdGF0aW9uIiwic3BhcmUiLCJmUSIsImNyZWF0ZUltYWdlRGF0YSIsIlNjcmVlbldpZHRoIiwicndpZHRoIiwiaGVpZ2h0IiwiU2NyZWVuSGVpZ2h0IiwicmhlaWdodCIsIm9uU2NyZWVuU2l6ZUNoYW5nZSIsImp3IiwiWG4iLCJzZW5kUmVmcmVzaCIsInNldFRpbWVvdXQiLCJVIiwic2VydmVyQ3V0VGV4dEhhbmRsZXIiLCJoYW5kbGVTZXJ2ZXJDdXRUZXh0IiwidyIsIkkiLCJvbkt2bURhdGEiLCJ1cGRhdGVTY3JlZW5EaW1lbnNpb25zIiwib2xkTW91c2VYIiwiZXoiLCJ3VyIsIlV0IiwibGwiLCJtQyIsIkN1Iiwic3RhdGVQcm9jZXNzb3JzIiwiUSIsInRlcm1pbmFsIiwiY2FwdHVyZSIsImNsZWFyVGVybWluYWwiLCJwcm9jZXNzRGF0YVRvWHRlcm0iLCJxIiwiY29udmVydEFNVEtleUNvZGUiLCJjb2RlIiwic3RhcnRzV2l0aCIsInNoaWZ0S2V5IiwiWiIsIlBhdXNlIiwiQ2Fwc0xvY2siLCJTcGFjZSIsIlF1b3RlIiwiTWludXMiLCJOdW1wYWRNdWx0aXBseSIsIk51bXBhZEFkZCIsIlByaW50U2NyZWVuIiwiQ29tbWEiLCJOdW1wYWRTdWJ0cmFjdCIsIk51bXBhZERlY2ltYWwiLCJQZXJpb2QiLCJTbGFzaCIsIk51bXBhZERpdmlkZSIsIlNlbWljb2xvbiIsIkVxdWFsIiwiT1NMZWZ0IiwiQnJhY2tldExlZnQiLCJPU1JpZ2h0IiwiQmFja3NsYXNoIiwiQnJhY2tldFJpZ2h0IiwiQ29udGV4dE1lbnUiLCJCYWNrcXVvdGUiLCJOdW1Mb2NrIiwiU2Nyb2xsTG9jayIsIkJhY2tzcGFjZSIsIlRhYiIsIkVudGVyIiwiTnVtcGFkRW50ZXIiLCJFc2NhcGUiLCJEZWxldGUiLCJIb21lIiwiUGFnZVVwIiwiUGFnZURvd24iLCJBcnJvd0xlZnQiLCJBcnJvd1VwIiwiQXJyb3dSaWdodCIsIkFycm93RG93biIsIkVuZCIsIkluc2VydCIsIkYxIiwiRjIiLCJGMyIsIkY0IiwiRjUiLCJGNiIsIkY3IiwiRjgiLCJGOSIsIkYxMCIsIkYxMSIsIkYxMiIsIlNoaWZ0TGVmdCIsIlNoaWZ0UmlnaHQiLCJDb250cm9sTGVmdCIsIkNvbnRyb2xSaWdodCIsIkFsdExlZnQiLCJBbHRSaWdodCIsIk1ldGFMZWZ0IiwiTWV0YVJpZ2h0IiwiaG9sZGluZyIsIm1heCIsIm1pbiIsImxhc3RNb3VzZVgiLCJvbGRNb3VzZVkiLCJsYXN0TW91c2VZIiwiYWJzIiwic2VuZEtleSIsInNlbmRLdm1EYXRhIiwic2VuZEtlZXBBbGl2ZSIsImxhc3RLZWVwQWxpdmUiLCJub3ciLCJzZW5kQ3RybEFsdERlbE1zZyIsInNlbmRDYWQiLCJhcm90WCIsImFyb3RZIiwicHV0SW1hZ2VEYXRhIiwiY3JvdFgiLCJjcm90WSIsInNldFJvdGF0aW9uIiwidGNhbnZhcyIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImdldENvbnRleHQiLCJzZXRUcmFuc2Zvcm0iLCJyb3RhdGUiLCJQSSIsImRyYXdJbWFnZSIsIm9uU2NyZWVuUmVzaXplIiwiY2FudmFzSWQiLCJFIiwiVXAiLCJEb3duIiwiQ29tbXMiLCJHcmFiS2V5SW5wdXQiLCJLZXlJbnB1dEdyYWIiLCJvbmtleXVwIiwiaGFuZGxlS2V5VXAiLCJvbmtleWRvd24iLCJoYW5kbGVLZXlEb3duIiwib25rZXlwcmVzcyIsImhhbmRsZUtleXMiLCJVbkdyYWJLZXlJbnB1dCIsImhhbHRFdmVudCIsInByZXZlbnREZWZhdWx0Iiwic3RvcFByb3BhZ2F0aW9uIiwiaGFuZGxlS2V5RXZlbnQiLCJldmVudCIsImtleUNvZGUiLCJ4IiwiY29tbSIsImRlYm91bmNlVGltZSIsIm1vdXNlQ2xpY2tDb21wbGV0ZWQiLCJsYXN0RXZlbnQiLCJHcmFiTW91c2VJbnB1dCIsIk1vdXNlSW5wdXRHcmFiIiwiVW5HcmFiTW91c2VJbnB1dCIsIm9ubW91c2Vtb3ZlIiwib25tb3VzZXVwIiwib25tb3VzZWRvd24iLCJtb3VzZWRvd24iLCJidXR0b24iLCJtb3VzZW1vdmUiLCJtb3VzZXVwIiwiZ2V0UG9zaXRpb25PZkNvbnRyb2wiLCJwYWdlWCIsIm9mZnNldEhlaWdodCIsInBhZ2VZIiwic2Nyb2xsZGl2Iiwic2Nyb2xsVG9wIiwib2Zmc2V0V2lkdGgiLCJub01vdXNlUm90YXRlIiwibGFzdE1vdXNlWDIiLCJwYXJlbnRFbGVtZW50IiwibGVmdCIsInRvcCIsIm9mZnNldExlZnQiLCJvZmZzZXRUb3AiLCJvZmZzZXRQYXJlbnQiLCJxRCIsIkVCIiwieHgiLCJaTElCIiwiQkFTRSIsIk5NQVgiLCJjb21tb25faW5pdGlhbGl6ZWQiLCJaX05PX0ZMVVNIIiwiWl9QQVJUSUFMX0ZMVVNIIiwiWl9TWU5DX0ZMVVNIIiwiWl9GVUxMX0ZMVVNIIiwiWl9GSU5JU0giLCJaX0JMT0NLIiwiWl9UUkVFUyIsIlpfT0siLCJaX1NUUkVBTV9FTkQiLCJaX05FRURfRElDVCIsIlpfRVJSTk8iLCJaX1NUUkVBTV9FUlJPUiIsIlpfREFUQV9FUlJPUiIsIlpfTUVNX0VSUk9SIiwiWl9CVUZfRVJST1IiLCJaX1ZFUlNJT05fRVJST1IiLCJaX0RFRkxBVEVEIiwiel9zdHJlYW0iLCJuZXh0X2luIiwiYXZhaWxfaW4iLCJ0b3RhbF9pbiIsIm5leHRfb3V0IiwiYXZhaWxfb3V0IiwidG90YWxfb3V0IiwibXNnIiwiZGF0YV90eXBlIiwiYWRsZXIiLCJpbnB1dF9kYXRhIiwib3V0cHV0X2RhdGEiLCJjaGVja3N1bV9mdW5jdGlvbiIsImd6X2hlYWRlciIsInRleHQiLCJ0aW1lIiwieGZsYWdzIiwib3MiLCJleHRyYSIsImV4dHJhX2xlbiIsImV4dHJhX21heCIsIm5hbWUiLCJuYW1lX21heCIsImNvbW1lbnQiLCJjb21tX21heCIsImhjcmMiLCJkb25lIiwiYWxlcnQiLCJERUZfV0JJVFMiLCJIRUFEIiwiRkxBR1MiLCJUSU1FIiwiT1MiLCJFWExFTiIsIkVYVFJBIiwiTkFNRSIsIkNPTU1FTlQiLCJIQ1JDIiwiRElDVElEIiwiRElDVCIsIlRZUEUiLCJUWVBFRE8iLCJTVE9SRUQiLCJDT1BZXyIsIkNPUFkiLCJUQUJMRSIsIkxFTkxFTlMiLCJDT0RFTEVOUyIsIkxFTl8iLCJMRU4iLCJMRU5FWFQiLCJESVNUIiwiRElTVEVYVCIsIk1BVENIIiwiTElUIiwiQ0hFQ0siLCJMRU5HVEgiLCJET05FIiwiQkFEIiwiTUVNIiwiU1lOQyIsIkVOT1VHSF9MRU5TIiwiRU5PVUdIX0RJU1RTIiwiRU5PVUdIIiwiQ09ERVMiLCJMRU5TIiwiRElTVFMiLCJpbmZsYXRlX3RhYmxlX2xiYXNlIiwiaW5mbGF0ZV90YWJsZV9sZXh0IiwiaW5mbGF0ZV90YWJsZV9kYmFzZSIsImluZmxhdGVfdGFibGVfZGV4dCIsImluZmxhdGVfdGFibGUiLCJBIiwibmV4dCIsImRpc3RiaXRzIiwibGVuYml0cyIsIlQiLCJ3b3JrIiwibGVucyIsIkIiLCJubGVuIiwiUiIsImNvZGVzIiwibmRpc3QiLCJEIiwib3AiLCJiaXRzIiwidmFsIiwiaW5mbGF0ZV9mYXN0Iiwid3NpemUiLCJ3aGF2ZSIsInduZXh0IiwiaG9sZCIsImxlbmNvZGUiLCJkaXN0Y29kZSIsIm1vZGUiLCJzYW5lIiwibmV3X2FycmF5IiwiZ2V0YXJnIiwiY2hlY2tzdW1fbm9uZSIsImluZmxhdGVfc3RhdGUiLCJsYXN0Iiwid3JhcCIsImhhdmVkaWN0IiwiZmxhZ3MiLCJkbWF4IiwiY2hlY2siLCJ0b3RhbCIsImhlYWQiLCJ3Yml0cyIsIm9mZnNldCIsIm5jb2RlIiwiaGF2ZSIsImJhY2siLCJ3YXMiLCJpbmZsYXRlX2NvcHlyaWdodCIsImluZmxhdGVSZXNldEtlZXAiLCJhZGxlcjMyIiwiY3JjMzIiLCJpbmZsYXRlUHJpbWUiLCJsZW5maXhfYXJ5IiwibGVuZml4X2RlZiIsImRpc3RmaXhfYXJ5IiwiZGlzdGZpeF9kZWYiLCJmaXhlZHRhYmxlcyIsImV2YWwiLCJ1cGRhdGV3aW5kb3ciLCJDUkMyIiwiQ1JDNCIsIkxPQUQiLCJzdHJtIiwiUkVTVE9SRSIsIklOSVRCSVRTIiwiUFVMTEJZVEUiLCJORUVEQklUUyIsIkJJVFMiLCJEUk9QQklUUyIsIkJZVEVCSVRTIiwiUkVWRVJTRSIsImluZmxhdGVfb3JkZXIiLCJpbmZsYXRlRW5kIiwiYWRsZXIzMl9jb21iaW5lIiwiY3JjMzJfY29tYmluZSIsIl9fd2VicGFja19tb2R1bGVfY2FjaGVfXyIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiZGVmaW5lUHJvcGVydHkiLCJlbnVtZXJhYmxlIiwiZ2V0IiwiaGFzT3duUHJvcGVydHkiLCJTeW1ib2wiLCJ0b1N0cmluZ1RhZyIsInZhbHVlIiwiX193ZWJwYWNrX2V4cG9ydHNfXyIsIkFNVERlc2t0b3AiLCJBTVRLdm1EYXRhUmVkaXJlY3RvciIsIkFNVFJlZGlyZWN0b3IiLCJQcm90b2NvbCIsIkFtdFRlcm1pbmFsIiwiQ29uc29sZUxvZ2dlciIsIlR5cGVDb252ZXJ0ZXIiLCJEZXNrdG9wIiwiU3RhdGVQcm9jZXNzb3JGYWN0b3J5IiwiVGVybWluYWxEYXRhUHJvY2Vzc29yIiwiTG9nTGV2ZWwiLCJEYXRhUHJvY2Vzc29yIiwiUkxFRGVjb2RlciIsIkVuY29kaW5nIiwiRnJhbWVCdWZmZXJCZWxsU2VydmVyQ3V0VGV4dCIsIkhhbmRzaGFrZVN0YXRlIiwiU2VjdXJpdHlPcHRpb25zIiwiU2VjdXJpdHlSZXNwb25zZSIsIlNlcnZlckluaXQiLCJBTVRLZXlDb2RlQ29udmVydGVyIiwiQ29tbXNIZWxwZXIiLCJJbWFnZUhlbHBlciIsIktleUJvYXJkSGVscGVyIiwiTW91c2VIZWxwZXIiLCJpc1RydXRoeSIsIl9fX0NTU19MT0FERVJfRVhQT1JUX19fIiwiaWQiLCJjc3NXaXRoTWFwcGluZ1RvU3RyaW5nIiwibGlzdCIsIm1hcCIsIml0ZW0iLCJjb250ZW50IiwibmVlZExheWVyIiwiY29uY2F0IiwibW9kdWxlcyIsIm1lZGlhIiwiZGVkdXBlIiwic3VwcG9ydHMiLCJsYXllciIsInVuZGVmaW5lZCIsImFscmVhZHlJbXBvcnRlZE1vZHVsZXMiLCJfayIsImNzc01hcHBpbmciLCJidG9hIiwiYmFzZTY0Iiwic291cmNlTWFwcGluZyIsInNvdXJjZVVSTHMiLCJzb3VyY2VzIiwic291cmNlIiwic291cmNlUm9vdCIsImdldE93blByb3BlcnR5U3ltYm9scyIsInByb3BJc0VudW1lcmFibGUiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsInRvT2JqZWN0IiwiVHlwZUVycm9yIiwiYXNzaWduIiwidGVzdDEiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwidGVzdDIiLCJ0ZXN0MyIsImZvckVhY2giLCJsZXR0ZXIiLCJrZXlzIiwiZXJyIiwic2hvdWxkVXNlTmF0aXZlIiwiZnJvbSIsInN5bWJvbHMiLCJ0byIsImFyZ3VtZW50cyIsImtleSIsImFhIiwieSIsImJhIiwiU2V0IiwiY2EiLCJkYSIsImVhIiwiYWRkIiwiZmEiLCJoYSIsImlhIiwiamEiLCJrYSIsImFjY2VwdHNCb29sZWFucyIsImF0dHJpYnV0ZU5hbWUiLCJhdHRyaWJ1dGVOYW1lc3BhY2UiLCJtdXN0VXNlUHJvcGVydHkiLCJwcm9wZXJ0eU5hbWUiLCJ0eXBlIiwic2FuaXRpemVVUkwiLCJyZW1vdmVFbXB0eVN0cmluZyIsInRvTG93ZXJDYXNlIiwib2EiLCJwYSIsInFhIiwibWEiLCJpc05hTiIsIm5hIiwidGVzdCIsImxhIiwicmVtb3ZlQXR0cmlidXRlIiwic2V0QXR0cmlidXRlIiwic2V0QXR0cmlidXRlTlMiLCJ4bGlua0hyZWYiLCJyYSIsIl9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEIiwic2EiLCJ0YSIsInVhIiwid2EiLCJ4YSIsInlhIiwiemEiLCJBYSIsIkJhIiwiQ2EiLCJEYSIsIkVhIiwiRmEiLCJHYSIsIkhhIiwiSWEiLCJKYSIsImZvciIsIk1hIiwiS2EiLCJpdGVyYXRvciIsIkxhIiwiTmEiLCJzdGFjayIsInRyaW0iLCJtYXRjaCIsIk9hIiwiUGEiLCJwcmVwYXJlU3RhY2tUcmFjZSIsInNldCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJkaXNwbGF5TmFtZSIsIlFhIiwidGFnIiwicmVuZGVyIiwiX3JlbmRlciIsIlJhIiwiJCR0eXBlb2YiLCJfY29udGV4dCIsIl9wYXlsb2FkIiwiX2luaXQiLCJTYSIsIlRhIiwibm9kZU5hbWUiLCJWYSIsIl92YWx1ZVRyYWNrZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJjb25maWd1cmFibGUiLCJnZXRWYWx1ZSIsInNldFZhbHVlIiwic3RvcFRyYWNraW5nIiwiVWEiLCJXYSIsImNoZWNrZWQiLCJYYSIsImFjdGl2ZUVsZW1lbnQiLCJib2R5IiwiWWEiLCJkZWZhdWx0Q2hlY2tlZCIsImRlZmF1bHRWYWx1ZSIsIl93cmFwcGVyU3RhdGUiLCJpbml0aWFsQ2hlY2tlZCIsIlphIiwiaW5pdGlhbFZhbHVlIiwiY29udHJvbGxlZCIsIiRhIiwiYWIiLCJiYiIsImNiIiwib3duZXJEb2N1bWVudCIsImViIiwiY2hpbGRyZW4iLCJDaGlsZHJlbiIsImRiIiwiZmIiLCJvcHRpb25zIiwic2VsZWN0ZWQiLCJkZWZhdWx0U2VsZWN0ZWQiLCJkaXNhYmxlZCIsImdiIiwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiLCJoYiIsImliIiwiamIiLCJ0ZXh0Q29udGVudCIsImtiIiwibGIiLCJtYiIsIm5iIiwib2IiLCJuYW1lc3BhY2VVUkkiLCJpbm5lckhUTUwiLCJ2YWx1ZU9mIiwiZmlyc3RDaGlsZCIsInJlbW92ZUNoaWxkIiwiYXBwZW5kQ2hpbGQiLCJNU0FwcCIsImV4ZWNVbnNhZmVMb2NhbEZ1bmN0aW9uIiwicGIiLCJsYXN0Q2hpbGQiLCJub2RlVHlwZSIsIm5vZGVWYWx1ZSIsInFiIiwiYW5pbWF0aW9uSXRlcmF0aW9uQ291bnQiLCJib3JkZXJJbWFnZU91dHNldCIsImJvcmRlckltYWdlU2xpY2UiLCJib3JkZXJJbWFnZVdpZHRoIiwiYm94RmxleCIsImJveEZsZXhHcm91cCIsImJveE9yZGluYWxHcm91cCIsImNvbHVtbkNvdW50IiwiY29sdW1ucyIsImZsZXgiLCJmbGV4R3JvdyIsImZsZXhQb3NpdGl2ZSIsImZsZXhTaHJpbmsiLCJmbGV4TmVnYXRpdmUiLCJmbGV4T3JkZXIiLCJncmlkQXJlYSIsImdyaWRSb3ciLCJncmlkUm93RW5kIiwiZ3JpZFJvd1NwYW4iLCJncmlkUm93U3RhcnQiLCJncmlkQ29sdW1uIiwiZ3JpZENvbHVtbkVuZCIsImdyaWRDb2x1bW5TcGFuIiwiZ3JpZENvbHVtblN0YXJ0IiwiZm9udFdlaWdodCIsImxpbmVDbGFtcCIsImxpbmVIZWlnaHQiLCJvcGFjaXR5Iiwib3JkZXIiLCJvcnBoYW5zIiwidGFiU2l6ZSIsIndpZG93cyIsInpJbmRleCIsInpvb20iLCJmaWxsT3BhY2l0eSIsImZsb29kT3BhY2l0eSIsInN0b3BPcGFjaXR5Iiwic3Ryb2tlRGFzaGFycmF5Iiwic3Ryb2tlRGFzaG9mZnNldCIsInN0cm9rZU1pdGVybGltaXQiLCJzdHJva2VPcGFjaXR5Iiwic3Ryb2tlV2lkdGgiLCJyYiIsInNiIiwidGIiLCJzdHlsZSIsInNldFByb3BlcnR5IiwidWIiLCJtZW51aXRlbSIsImFyZWEiLCJiYXNlIiwiYnIiLCJjb2wiLCJlbWJlZCIsImhyIiwiaW1nIiwiaW5wdXQiLCJrZXlnZW4iLCJsaW5rIiwibWV0YSIsInBhcmFtIiwidHJhY2siLCJ3YnIiLCJ2YiIsIndiIiwiaXMiLCJ4YiIsInNyY0VsZW1lbnQiLCJjb3JyZXNwb25kaW5nVXNlRWxlbWVudCIsInBhcmVudE5vZGUiLCJ5YiIsInpiIiwiQWIiLCJCYiIsIkNiIiwic3RhdGVOb2RlIiwiRGIiLCJFYiIsIkZiIiwiR2IiLCJIYiIsIkliIiwiSmIiLCJLYiIsIkxiIiwiTWIiLCJPYiIsIlBiIiwiUWIiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIlJiIiwiYXBwbHkiLCJTYiIsIlRiIiwiVWIiLCJWYiIsIldiIiwiWGIiLCJaYiIsImFsdGVybmF0ZSIsInJldHVybiIsIiRiIiwibWVtb2l6ZWRTdGF0ZSIsImRlaHlkcmF0ZWQiLCJhYyIsImRjIiwiZWMiLCJmYyIsImdjIiwiaGMiLCJpYyIsImpjIiwia2MiLCJsYyIsIm1jIiwibmMiLCJNYXAiLCJvYyIsInBjIiwicWMiLCJyYyIsImJsb2NrZWRPbiIsImRvbUV2ZW50TmFtZSIsImV2ZW50U3lzdGVtRmxhZ3MiLCJuYXRpdmVFdmVudCIsInRhcmdldENvbnRhaW5lcnMiLCJzYyIsImRlbGV0ZSIsInBvaW50ZXJJZCIsInRjIiwidmMiLCJ3YyIsImxhbmVQcmlvcml0eSIsInVuc3RhYmxlX3J1bldpdGhQcmlvcml0eSIsInByaW9yaXR5IiwiaHlkcmF0ZSIsImNvbnRhaW5lckluZm8iLCJ4YyIsInljIiwiemMiLCJBYyIsIkJjIiwidW5zdGFibGVfc2NoZWR1bGVDYWxsYmFjayIsInVuc3RhYmxlX05vcm1hbFByaW9yaXR5IiwiQ2MiLCJEYyIsIkVjIiwiYW5pbWF0aW9uZW5kIiwiYW5pbWF0aW9uaXRlcmF0aW9uIiwiYW5pbWF0aW9uc3RhcnQiLCJ0cmFuc2l0aW9uZW5kIiwiRmMiLCJHYyIsIkhjIiwiYW5pbWF0aW9uIiwidHJhbnNpdGlvbiIsIkljIiwiSmMiLCJLYyIsIkxjIiwiTWMiLCJOYyIsIk9jIiwiUGMiLCJRYyIsInVuc3RhYmxlX25vdyIsIkYiLCJSYyIsIlVjIiwicGVuZGluZ0xhbmVzIiwiZXhwaXJlZExhbmVzIiwic3VzcGVuZGVkTGFuZXMiLCJwaW5nZWRMYW5lcyIsIlZjIiwiZW50YW5nbGVkTGFuZXMiLCJlbnRhbmdsZW1lbnRzIiwiV2MiLCJYYyIsIlljIiwiWmMiLCIkYyIsImV2ZW50VGltZXMiLCJjbHozMiIsImJkIiwiY2QiLCJMTjIiLCJkZCIsInVuc3RhYmxlX1VzZXJCbG9ja2luZ1ByaW9yaXR5IiwiZWQiLCJmZCIsImdkIiwiaGQiLCJ1YyIsImpkIiwia2QiLCJsZCIsIm1kIiwibmQiLCJvZCIsImNoYXJDb2RlIiwicGQiLCJxZCIsInJkIiwiX3JlYWN0TmFtZSIsIl90YXJnZXRJbnN0IiwiY3VycmVudFRhcmdldCIsImlzRGVmYXVsdFByZXZlbnRlZCIsImRlZmF1bHRQcmV2ZW50ZWQiLCJyZXR1cm5WYWx1ZSIsImlzUHJvcGFnYXRpb25TdG9wcGVkIiwiY2FuY2VsQnViYmxlIiwicGVyc2lzdCIsImlzUGVyc2lzdGVudCIsIndkIiwieGQiLCJ5ZCIsInNkIiwiZXZlbnRQaGFzZSIsImJ1YmJsZXMiLCJjYW5jZWxhYmxlIiwidGltZVN0YW1wIiwiaXNUcnVzdGVkIiwidGQiLCJ1ZCIsInZpZXciLCJkZXRhaWwiLCJ2ZCIsIkFkIiwic2NyZWVuWCIsInNjcmVlblkiLCJjbGllbnRYIiwiY2xpZW50WSIsImN0cmxLZXkiLCJhbHRLZXkiLCJtZXRhS2V5IiwiZ2V0TW9kaWZpZXJTdGF0ZSIsInpkIiwiYnV0dG9ucyIsInJlbGF0ZWRUYXJnZXQiLCJmcm9tRWxlbWVudCIsInRvRWxlbWVudCIsIm1vdmVtZW50WCIsIm1vdmVtZW50WSIsIkJkIiwiRGQiLCJkYXRhVHJhbnNmZXIiLCJGZCIsIkhkIiwiYW5pbWF0aW9uTmFtZSIsImVsYXBzZWRUaW1lIiwicHNldWRvRWxlbWVudCIsIklkIiwiY2xpcGJvYXJkRGF0YSIsIkpkIiwiTGQiLCJNZCIsIkVzYyIsIlNwYWNlYmFyIiwiTGVmdCIsIlJpZ2h0IiwiRGVsIiwiV2luIiwiTWVudSIsIkFwcHMiLCJTY3JvbGwiLCJNb3pQcmludGFibGVLZXkiLCJOZCIsIk9kIiwiQWx0IiwiQ29udHJvbCIsIk1ldGEiLCJTaGlmdCIsIlBkIiwiUWQiLCJyZXBlYXQiLCJsb2NhbGUiLCJ3aGljaCIsIlJkIiwiVGQiLCJwcmVzc3VyZSIsInRhbmdlbnRpYWxQcmVzc3VyZSIsInRpbHRYIiwidGlsdFkiLCJ0d2lzdCIsInBvaW50ZXJUeXBlIiwiaXNQcmltYXJ5IiwiVmQiLCJ0b3VjaGVzIiwidGFyZ2V0VG91Y2hlcyIsImNoYW5nZWRUb3VjaGVzIiwiWGQiLCJZZCIsImRlbHRhWCIsIndoZWVsRGVsdGFYIiwiZGVsdGFZIiwid2hlZWxEZWx0YVkiLCJ3aGVlbERlbHRhIiwiZGVsdGFaIiwiZGVsdGFNb2RlIiwiWmQiLCIkZCIsImFlIiwiYmUiLCJkb2N1bWVudE1vZGUiLCJjZSIsImRlIiwiZWUiLCJmZSIsImdlIiwiaGUiLCJpZSIsImxlIiwiY29sb3IiLCJkYXRlIiwiZGF0ZXRpbWUiLCJlbWFpbCIsIm1vbnRoIiwibnVtYmVyIiwicGFzc3dvcmQiLCJyYW5nZSIsInNlYXJjaCIsInRlbCIsInVybCIsIndlZWsiLCJtZSIsIm5lIiwib2UiLCJsaXN0ZW5lcnMiLCJwZSIsInFlIiwicmUiLCJzZSIsInRlIiwidWUiLCJ2ZSIsIndlIiwieGUiLCJ5ZSIsInplIiwib25pbnB1dCIsIkFlIiwiZGV0YWNoRXZlbnQiLCJCZSIsIkNlIiwiYXR0YWNoRXZlbnQiLCJEZSIsIkVlIiwiRmUiLCJIZSIsIkllIiwiSmUiLCJLZSIsIkxlIiwibm9kZSIsIm5leHRTaWJsaW5nIiwiTWUiLCJjb250YWlucyIsImNvbXBhcmVEb2N1bWVudFBvc2l0aW9uIiwiTmUiLCJIVE1MSUZyYW1lRWxlbWVudCIsImNvbnRlbnRXaW5kb3ciLCJocmVmIiwiT2UiLCJjb250ZW50RWRpdGFibGUiLCJQZSIsIlFlIiwiUmUiLCJTZSIsIlRlIiwiVWUiLCJzZWxlY3Rpb25TdGFydCIsImVuZCIsInNlbGVjdGlvbkVuZCIsImFuY2hvck5vZGUiLCJkZWZhdWx0VmlldyIsImdldFNlbGVjdGlvbiIsImFuY2hvck9mZnNldCIsImZvY3VzTm9kZSIsImZvY3VzT2Zmc2V0IiwiVmUiLCJXZSIsIlhlIiwiWWUiLCJaZSIsIlliIiwiaW5zdGFuY2UiLCJsaXN0ZW5lciIsIkciLCIkZSIsImhhcyIsImFmIiwiYmYiLCJjZiIsImRmIiwicGFzc2l2ZSIsIk5iIiwieiIsImVmIiwiZmYiLCJwYXJlbnRXaW5kb3ciLCJnZiIsImhmIiwiSiIsIkwiLCJqZSIsImNoYXIiLCJrZSIsInVuc2hpZnQiLCJqZiIsImtmIiwibGYiLCJtZiIsImF1dG9Gb2N1cyIsIm5mIiwiX19odG1sIiwib2YiLCJwZiIsImNsZWFyVGltZW91dCIsInFmIiwicmYiLCJzZiIsInByZXZpb3VzU2libGluZyIsInRmIiwidmYiLCJ3ZiIsInhmIiwieWYiLCJjaGlsZCIsInpmIiwiQWYiLCJCZiIsImN1cnJlbnQiLCJDZiIsIk0iLCJEZiIsIkVmIiwiY29udGV4dFR5cGVzIiwiX19yZWFjdEludGVybmFsTWVtb2l6ZWRVbm1hc2tlZENoaWxkQ29udGV4dCIsIl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWFza2VkQ2hpbGRDb250ZXh0IiwiRmYiLCJjaGlsZENvbnRleHRUeXBlcyIsIkdmIiwiSGYiLCJJZiIsImdldENoaWxkQ29udGV4dCIsIkpmIiwiX19yZWFjdEludGVybmFsTWVtb2l6ZWRNZXJnZWRDaGlsZENvbnRleHQiLCJLZiIsIkxmIiwiTWYiLCJOZiIsIk9mIiwiUGYiLCJ1bnN0YWJsZV9jYW5jZWxDYWxsYmFjayIsIlFmIiwidW5zdGFibGVfc2hvdWxkWWllbGQiLCJSZiIsInVuc3RhYmxlX3JlcXVlc3RQYWludCIsIlNmIiwiVGYiLCJ1bnN0YWJsZV9nZXRDdXJyZW50UHJpb3JpdHlMZXZlbCIsIlVmIiwidW5zdGFibGVfSW1tZWRpYXRlUHJpb3JpdHkiLCJWZiIsIldmIiwiWGYiLCJ1bnN0YWJsZV9Mb3dQcmlvcml0eSIsIllmIiwidW5zdGFibGVfSWRsZVByaW9yaXR5IiwiWmYiLCIkZiIsImFnIiwiYmciLCJjZyIsImRnIiwiTyIsImVnIiwiZmciLCJnZyIsImhnIiwiaWciLCJqZyIsImtnIiwiUmVhY3RDdXJyZW50QmF0Y2hDb25maWciLCJsZyIsImRlZmF1bHRQcm9wcyIsIm1nIiwibmciLCJvZyIsInBnIiwicWciLCJyZyIsIl9jdXJyZW50VmFsdWUiLCJzZyIsImNoaWxkTGFuZXMiLCJ0ZyIsImRlcGVuZGVuY2llcyIsImZpcnN0Q29udGV4dCIsImxhbmVzIiwidWciLCJ2ZyIsImNvbnRleHQiLCJvYnNlcnZlZEJpdHMiLCJyZXNwb25kZXJzIiwid2ciLCJ4ZyIsInVwZGF0ZVF1ZXVlIiwiYmFzZVN0YXRlIiwiZmlyc3RCYXNlVXBkYXRlIiwibGFzdEJhc2VVcGRhdGUiLCJzaGFyZWQiLCJwZW5kaW5nIiwiZWZmZWN0cyIsInlnIiwiemciLCJldmVudFRpbWUiLCJsYW5lIiwicGF5bG9hZCIsImNhbGxiYWNrIiwiQWciLCJCZyIsIkNnIiwiRGciLCJFZyIsIkZnIiwiQ29tcG9uZW50IiwicmVmcyIsIkdnIiwiS2ciLCJpc01vdW50ZWQiLCJfcmVhY3RJbnRlcm5hbHMiLCJlbnF1ZXVlU2V0U3RhdGUiLCJIZyIsIklnIiwiSmciLCJlbnF1ZXVlUmVwbGFjZVN0YXRlIiwiZW5xdWV1ZUZvcmNlVXBkYXRlIiwiTGciLCJzaG91bGRDb21wb25lbnRVcGRhdGUiLCJpc1B1cmVSZWFjdENvbXBvbmVudCIsIk1nIiwiY29udGV4dFR5cGUiLCJ1cGRhdGVyIiwiTmciLCJjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzIiwiVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMiLCJPZyIsInByb3BzIiwiZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzIiwiZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUiLCJVTlNBRkVfY29tcG9uZW50V2lsbE1vdW50IiwiY29tcG9uZW50V2lsbE1vdW50IiwiY29tcG9uZW50RGlkTW91bnQiLCJQZyIsIlFnIiwicmVmIiwiX293bmVyIiwiX3N0cmluZ1JlZiIsIlJnIiwiU2ciLCJsYXN0RWZmZWN0IiwibmV4dEVmZmVjdCIsImZpcnN0RWZmZWN0Iiwic2libGluZyIsImluZGV4IiwiVGciLCJVZyIsImVsZW1lbnRUeXBlIiwiVmciLCJpbXBsZW1lbnRhdGlvbiIsIldnIiwiWGciLCJZZyIsIlpnIiwiJGciLCJhaCIsImJoIiwiY2giLCJkaCIsImVoIiwiZG9jdW1lbnRFbGVtZW50IiwidGFnTmFtZSIsImZoIiwiZ2giLCJoaCIsIlAiLCJpaCIsIm1lbW9pemVkUHJvcHMiLCJyZXZlYWxPcmRlciIsImpoIiwia2giLCJsaCIsIm1oIiwibmgiLCJvaCIsInBlbmRpbmdQcm9wcyIsInBoIiwicWgiLCJyaCIsInNoIiwidGgiLCJ1aCIsIl93b3JrSW5Qcm9ncmVzc1ZlcnNpb25QcmltYXJ5IiwidmgiLCJSZWFjdEN1cnJlbnREaXNwYXRjaGVyIiwid2giLCJ4aCIsInloIiwiemgiLCJBaCIsIkJoIiwiQ2giLCJEaCIsIkVoIiwiRmgiLCJHaCIsIkhoIiwiYmFzZVF1ZXVlIiwicXVldWUiLCJJaCIsIkpoIiwiS2giLCJsYXN0UmVuZGVyZWRSZWR1Y2VyIiwiYWN0aW9uIiwiZWFnZXJSZWR1Y2VyIiwiZWFnZXJTdGF0ZSIsImxhc3RSZW5kZXJlZFN0YXRlIiwiZGlzcGF0Y2giLCJMaCIsIk1oIiwiX2dldFZlcnNpb24iLCJfc291cmNlIiwibXV0YWJsZVJlYWRMYW5lcyIsIk5oIiwidXNlU3RhdGUiLCJnZXRTbmFwc2hvdCIsInN1YnNjcmliZSIsInVzZUVmZmVjdCIsInNldFNuYXBzaG90IiwiT2giLCJQaCIsIlFoIiwiUmgiLCJjcmVhdGUiLCJkZXN0cm95IiwiZGVwcyIsIlNoIiwiVGgiLCJVaCIsIlZoIiwiV2giLCJYaCIsIlloIiwiWmgiLCIkaCIsImFpIiwiYmkiLCJjaSIsImRpIiwicmVhZENvbnRleHQiLCJ1c2VDYWxsYmFjayIsInVzZUNvbnRleHQiLCJ1c2VJbXBlcmF0aXZlSGFuZGxlIiwidXNlTGF5b3V0RWZmZWN0IiwidXNlTWVtbyIsInVzZVJlZHVjZXIiLCJ1c2VSZWYiLCJ1c2VEZWJ1Z1ZhbHVlIiwidXNlRGVmZXJyZWRWYWx1ZSIsInVzZVRyYW5zaXRpb24iLCJ1c2VNdXRhYmxlU291cmNlIiwidXNlT3BhcXVlSWRlbnRpZmllciIsInVuc3RhYmxlX2lzTmV3UmVjb25jaWxlciIsInVmIiwiZWkiLCJSZWFjdEN1cnJlbnRPd25lciIsImZpIiwiZ2kiLCJoaSIsImlpIiwiamkiLCJjb21wYXJlIiwia2kiLCJsaSIsIm1pIiwiYmFzZUxhbmVzIiwibmkiLCJvaSIsInBpIiwiVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUiLCJjb21wb25lbnRXaWxsVXBkYXRlIiwiY29tcG9uZW50RGlkVXBkYXRlIiwicWkiLCJnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IiLCJyaSIsInBlbmRpbmdDb250ZXh0IiwiQmkiLCJEaSIsIkVpIiwic2kiLCJyZXRyeUxhbmUiLCJ0aSIsImZhbGxiYWNrIiwidW5zdGFibGVfYXZvaWRUaGlzRmFsbGJhY2siLCJ1aSIsInVuc3RhYmxlX2V4cGVjdGVkTG9hZFRpbWUiLCJ2aSIsIndpIiwieGkiLCJ5aSIsInppIiwiaXNCYWNrd2FyZHMiLCJyZW5kZXJpbmciLCJyZW5kZXJpbmdTdGFydFRpbWUiLCJ0YWlsIiwidGFpbE1vZGUiLCJBaSIsIkZpIiwiR2kiLCJ3YXNNdWx0aXBsZSIsIm11bHRpcGxlIiwib25DbGljayIsIm9uY2xpY2siLCJzaXplIiwiY3JlYXRlRWxlbWVudE5TIiwiY3JlYXRlVGV4dE5vZGUiLCJWIiwiSGkiLCJJaSIsIlciLCJKaSIsIktpIiwiTGkiLCJNaSIsIm1lc3NhZ2UiLCJOaSIsIk9pIiwiV2Vha01hcCIsIlBpIiwiZWxlbWVudCIsIlFpIiwiUmkiLCJTaSIsImNvbXBvbmVudERpZENhdGNoIiwiVGkiLCJjb21wb25lbnRTdGFjayIsIlVpIiwiV2Vha1NldCIsIlZpIiwiV2kiLCJYaSIsIl9fcmVhY3RJbnRlcm5hbFNuYXBzaG90QmVmb3JlVXBkYXRlIiwiWWkiLCJaaSIsIiRpIiwiZm9jdXMiLCJhaiIsImRpc3BsYXkiLCJiaiIsIm9uQ29tbWl0RmliZXJVbm1vdW50IiwiY29tcG9uZW50V2lsbFVubW91bnQiLCJjaiIsImRqIiwiZWoiLCJmaiIsImdqIiwiaGoiLCJpbnNlcnRCZWZvcmUiLCJfcmVhY3RSb290Q29udGFpbmVyIiwiaWoiLCJqaiIsImtqIiwibGoiLCJ0aGVuIiwibWoiLCJuaiIsImNlaWwiLCJvaiIsInBqIiwiWSIsInFqIiwicmoiLCJzaiIsInRqIiwidWoiLCJ2aiIsIkluZmluaXR5Iiwid2oiLCJjayIsInhqIiwieWoiLCJ6aiIsIkFqIiwiQmoiLCJDaiIsIkRqIiwiRWoiLCJGaiIsIkdqIiwiSGoiLCJJaiIsIkpqIiwiU2MiLCJLaiIsIkxqIiwiTWoiLCJjYWxsYmFja05vZGUiLCJleHBpcmF0aW9uVGltZXMiLCJjYWxsYmFja1ByaW9yaXR5IiwiVGMiLCJOaiIsIk9qIiwiUGoiLCJRaiIsIlJqIiwiU2oiLCJUaiIsImZpbmlzaGVkV29yayIsImZpbmlzaGVkTGFuZXMiLCJVaiIsInRpbWVvdXRIYW5kbGUiLCJwaW5nQ2FjaGUiLCJZaiIsIlpqIiwidmEiLCJhayIsImJrIiwiZGsiLCJyYW5nZUNvdW50IiwiZm9jdXNlZEVsZW0iLCJzZWxlY3Rpb25SYW5nZSIsImVrIiwiZXh0ZW5kIiwiY3JlYXRlUmFuZ2UiLCJzZXRTdGFydCIsInJlbW92ZUFsbFJhbmdlcyIsImFkZFJhbmdlIiwic2V0RW5kIiwic2Nyb2xsTGVmdCIsIm9uQ29tbWl0RmliZXJSb290IiwiZmsiLCJnayIsImlrIiwiaXNSZWFjdENvbXBvbmVudCIsInBlbmRpbmdDaGlsZHJlbiIsImprIiwibXV0YWJsZVNvdXJjZUVhZ2VySHlkcmF0aW9uRGF0YSIsImxrIiwibWsiLCJuayIsIm9rIiwicWsiLCJoeWRyYXRpb25PcHRpb25zIiwibXV0YWJsZVNvdXJjZXMiLCJfaW50ZXJuYWxSb290IiwicmsiLCJ0ayIsImhhc0F0dHJpYnV0ZSIsInNrIiwiWGoiLCJoayIsIl9jYWxjdWxhdGVDaGFuZ2VkQml0cyIsInVuc3RhYmxlX29ic2VydmVkQml0cyIsInVubW91bnQiLCJxdWVyeVNlbGVjdG9yQWxsIiwiZm9ybSIsIlZqIiwid2siLCJmaW5kRmliZXJCeUhvc3RJbnN0YW5jZSIsImJ1bmRsZVR5cGUiLCJ2ZXJzaW9uIiwicmVuZGVyZXJQYWNrYWdlTmFtZSIsInhrIiwicmVuZGVyZXJDb25maWciLCJvdmVycmlkZUhvb2tTdGF0ZSIsIm92ZXJyaWRlSG9va1N0YXRlRGVsZXRlUGF0aCIsIm92ZXJyaWRlSG9va1N0YXRlUmVuYW1lUGF0aCIsIm92ZXJyaWRlUHJvcHMiLCJvdmVycmlkZVByb3BzRGVsZXRlUGF0aCIsIm92ZXJyaWRlUHJvcHNSZW5hbWVQYXRoIiwic2V0U3VzcGVuc2VIYW5kbGVyIiwic2NoZWR1bGVVcGRhdGUiLCJjdXJyZW50RGlzcGF0Y2hlclJlZiIsImZpbmRIb3N0SW5zdGFuY2VCeUZpYmVyIiwiYmMiLCJjYyIsImZpbmRIb3N0SW5zdGFuY2VzRm9yUmVmcmVzaCIsInNjaGVkdWxlUmVmcmVzaCIsInNjaGVkdWxlUm9vdCIsInNldFJlZnJlc2hIYW5kbGVyIiwiZ2V0Q3VycmVudEZpYmVyIiwiX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fIiwieWsiLCJpc0Rpc2FibGVkIiwic3VwcG9ydHNGaWJlciIsImluamVjdCIsImNoZWNrRENFIiwicGVyZm9ybWFuY2UiLCJNZXNzYWdlQ2hhbm5lbCIsInVuc3RhYmxlX2ZvcmNlRnJhbWVSYXRlIiwiY2FuY2VsQW5pbWF0aW9uRnJhbWUiLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJwb3J0MiIsInBvcnQxIiwicG9zdE1lc3NhZ2UiLCJwb3AiLCJzb3J0SW5kZXgiLCJzdGFydFRpbWUiLCJleHBpcmF0aW9uVGltZSIsInByaW9yaXR5TGV2ZWwiLCJ1bnN0YWJsZV9Qcm9maWxpbmciLCJ1bnN0YWJsZV9jb250aW51ZUV4ZWN1dGlvbiIsInVuc3RhYmxlX2dldEZpcnN0Q2FsbGJhY2tOb2RlIiwidW5zdGFibGVfbmV4dCIsInVuc3RhYmxlX3BhdXNlRXhlY3V0aW9uIiwiZGVsYXkiLCJ1bnN0YWJsZV93cmFwQ2FsbGJhY2siLCJGcmFnbWVudCIsIlN0cmljdE1vZGUiLCJQcm9maWxlciIsIlN1c3BlbnNlIiwic2V0U3RhdGUiLCJmb3JjZVVwZGF0ZSIsIl9fc2VsZiIsIl9fc291cmNlIiwiX3N0YXR1cyIsIl9yZXN1bHQiLCJJc1NvbWVSZW5kZXJlckFjdGluZyIsImNvdW50IiwidG9BcnJheSIsIm9ubHkiLCJQdXJlQ29tcG9uZW50IiwiY2xvbmVFbGVtZW50IiwiY3JlYXRlQ29udGV4dCIsIl9jdXJyZW50VmFsdWUyIiwiX3RocmVhZENvdW50IiwiUHJvdmlkZXIiLCJDb25zdW1lciIsImNyZWF0ZUZhY3RvcnkiLCJjcmVhdGVSZWYiLCJmb3J3YXJkUmVmIiwiaXNWYWxpZEVsZW1lbnQiLCJsYXp5IiwibWVtbyIsInN0eWxlc0luRE9NIiwiZ2V0SW5kZXhCeUlkZW50aWZpZXIiLCJpZGVudGlmaWVyIiwibW9kdWxlc1RvRG9tIiwiaWRDb3VudE1hcCIsImlkZW50aWZpZXJzIiwiaW5kZXhCeUlkZW50aWZpZXIiLCJvYmoiLCJjc3MiLCJzb3VyY2VNYXAiLCJyZWZlcmVuY2VzIiwiYWRkRWxlbWVudFN0eWxlIiwiYnlJbmRleCIsImFwaSIsImRvbUFQSSIsInVwZGF0ZSIsIm5ld09iaiIsInJlbW92ZSIsImxhc3RJZGVudGlmaWVycyIsIm5ld0xpc3QiLCJuZXdMYXN0SWRlbnRpZmllcnMiLCJfaSIsIl9pbmRleCIsImluc2VydCIsInN0eWxlVGFyZ2V0IiwicXVlcnlTZWxlY3RvciIsImNvbnRlbnREb2N1bWVudCIsImdldFRhcmdldCIsInNldEF0dHJpYnV0ZXMiLCJhdHRyaWJ1dGVzIiwic3R5bGVFbGVtZW50Iiwibm9uY2UiLCJpbnNlcnRTdHlsZUVsZW1lbnQiLCJzdHlsZVRhZ1RyYW5zZm9ybSIsInJlbW92ZVN0eWxlRWxlbWVudCIsInN0eWxlU2hlZXQiLCJjc3NUZXh0IiwiY2xhc3NOYW1lIiwiaGFuZGxlQ29ubmVjdENsaWNrIiwia3Ztc3RhdGUiLCJvbkVuY29kaW5nQ2hhbmdlIiwiY2hhbmdlRW5jb2RpbmciLCJnZXRDb25uZWN0U3RhdGUiLCJvbkNoYW5nZSIsIkRlc2t0b3BTZXR0aW5ncyIsImRlc2t0b3BzZXR0aW5ncyIsImNoYW5nZURlc2t0b3BTZXR0aW5ncyIsImlzRmFsc3kiLCJjYW52YXNBdHRyaWJ1dGVzIiwib25Db250ZXh0TWVudSIsIm9uTW91c2VEb3duIiwibW91c2VEb3duIiwib25Nb3VzZVVwIiwibW91c2VVcCIsIm9uTW91c2VNb3ZlIiwibW91c2VNb3ZlIiwiY29udGV4dFJlZiIsImRlc2t0b3BTZXR0aW5nc0NoYW5nZSIsImVuY29kaW5nT3B0aW9uIiwic2F2ZUNvbnRleHQiLCJzdGFydEtWTSIsInN0b3BLVk0iLCJnZXRSZW5kZXJTdGF0dXMiLCJPbkNvbm5lY3Rpb25TdGF0ZUNoYW5nZSIsImN0eCIsImluaXQiLCJkZXZpY2VVdWlkIiwiZGV2aWNlSWQiLCJtcHNTZXJ2ZXIiLCJyZWRpcmVjdG9yIiwiRmlsZVJlYWRlciIsImRhdGFQcm9jZXNzb3IiLCJtb3VzZUhlbHBlciIsIm1vdXNlRGVib3VuY2VUaW1lIiwia2V5Ym9hcmQiLCJvblJlZGlyZWN0b3JFcnJvciIsImNsZWFuVXAiLCJjbGVhclJlY3QiLCJyZXNldCIsInNldHRpbmdzIiwiV2ViU29ja2V0IiwicHJldlByb3BzIiwiYXV0b0Nvbm5lY3QiLCJjYW52YXNIZWlnaHQiLCJjYW52YXNXaWR0aCIsIl90eXBlb2YiLCJfZGVmaW5lUHJvcGVydHkiLCJ3cml0YWJsZSIsIl9vYmplY3RTcHJlYWQiLCJvd25LZXlzIiwiZmlsdGVyIiwic3ltIiwiX2NsYXNzQ2FsbENoZWNrIiwiQ29uc3RydWN0b3IiLCJfZGVmaW5lUHJvcGVydGllcyIsImRlc2NyaXB0b3IiLCJfY3JlYXRlQ2xhc3MiLCJwcm90b1Byb3BzIiwic3RhdGljUHJvcHMiLCJfYXNzZXJ0VGhpc0luaXRpYWxpemVkIiwiUmVmZXJlbmNlRXJyb3IiLCJfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybiIsIl9nZXRQcm90b3R5cGVPZiIsInNldFByb3RvdHlwZU9mIiwiZ2V0UHJvdG90eXBlT2YiLCJfX3Byb3RvX18iLCJfc2V0UHJvdG90eXBlT2YiLCJfaW5oZXJpdHMiLCJzdWJDbGFzcyIsInN1cGVyQ2xhc3MiLCJfYXJyYXlMaWtlVG9BcnJheSIsImFyciIsImxlbiIsImFycjIiLCJjb25zb2xlTG9nZ2VyIiwiYXJncyIsIm91dHB1dCIsIkxvZ2dlciIsImNvbmNyZXRlTG9nZ2VyIiwicHJlZml4IiwiYm9vbCIsIl9sZW4iLCJfa2V5IiwiZm9yd2FyZCIsIl9sZW4yIiwiX2tleTIiLCJfbGVuMyIsIl9rZXkzIiwiX2xlbjQiLCJfa2V5NCIsImx2bCIsImRlYnVnT25seSIsIm1vZHVsZU5hbWUiLCJiYXNlTG9nZ2VyIiwiRXZlbnRFbWl0dGVyIiwib2JzZXJ2ZXJzIiwiZXZlbnRzIiwiX3RoaXMiLCJjbG9uZWQiLCJvYnNlcnZlciIsIl9jbG9uZWQiLCJkZWZlciIsInJlcyIsInJlaiIsInByb21pc2UiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsIm1ha2VTdHJpbmciLCJvYmplY3QiLCJjb3B5IiwiZ2V0TGFzdE9mUGF0aCIsInBhdGgiLCJFbXB0eSIsImNsZWFuS2V5IiwiY2FuTm90VHJhdmVyc2VEZWVwZXIiLCJzZXRQYXRoIiwibmV3VmFsdWUiLCJfZ2V0TGFzdE9mUGF0aCIsImdldFBhdGgiLCJfZ2V0TGFzdE9mUGF0aDMiLCJnZXRQYXRoV2l0aERlZmF1bHRzIiwiZGVmYXVsdERhdGEiLCJkZWVwRXh0ZW5kIiwib3ZlcndyaXRlIiwicHJvcCIsInJlZ2V4RXNjYXBlIiwic3RyIiwiX2VudGl0eU1hcCIsImlzSUUxMCIsIm5hdmlnYXRvciIsInVzZXJBZ2VudCIsImNoYXJzIiwiZGVlcEZpbmQiLCJrZXlTZXBhcmF0b3IiLCJwYXRocyIsIm1peCIsImpvaW5lZFBhdGgiLCJSZXNvdXJjZVN0b3JlIiwiX0V2ZW50RW1pdHRlciIsIm5zIiwiZGVmYXVsdE5TIiwiaWdub3JlSlNPTlN0cnVjdHVyZSIsImxuZyIsInNpbGVudCIsImFkZE5hbWVzcGFjZXMiLCJlbWl0IiwicmVzb3VyY2VzIiwiYWRkUmVzb3VyY2UiLCJkZWVwIiwicGFjayIsImhhc1Jlc291cmNlQnVuZGxlIiwicmVtb3ZlTmFtZXNwYWNlcyIsImdldFJlc291cmNlIiwiY29tcGF0aWJpbGl0eUFQSSIsImdldERhdGFCeUxhbmd1YWdlIiwiZmluZCIsInBvc3RQcm9jZXNzb3IiLCJwcm9jZXNzb3JzIiwiYWRkUG9zdFByb2Nlc3NvciIsImhhbmRsZSIsInRyYW5zbGF0b3IiLCJwcm9jZXNzb3IiLCJwcm9jZXNzIiwiY2hlY2tlZExvYWRlZEZvciIsIlRyYW5zbGF0b3IiLCJzZXJ2aWNlcyIsImxhbmd1YWdlIiwiaW50ZXJwb2xhdGlvbiIsInJlc29sdmVkIiwibnNTZXBhcmF0b3IiLCJuYW1lc3BhY2VzIiwid291bGRDaGVja0Zvck5zSW5LZXkiLCJzZWVtc05hdHVyYWxMYW5ndWFnZSIsInVzZXJEZWZpbmVkS2V5U2VwYXJhdG9yIiwidXNlckRlZmluZWROc1NlcGFyYXRvciIsInBvc3NpYmxlQ2hhcnMiLCJSZWdFeHAiLCJtYXRjaGVkIiwibG9va3NMaWtlT2JqZWN0UGF0aCIsImludGVycG9sYXRvciIsIm5lc3RpbmdSZWdleHAiLCJwYXJ0cyIsImxhc3RLZXkiLCJfdGhpczIiLCJvdmVybG9hZFRyYW5zbGF0aW9uT3B0aW9uSGFuZGxlciIsIl90aGlzJGV4dHJhY3RGcm9tS2V5IiwiZXh0cmFjdEZyb21LZXkiLCJuYW1lc3BhY2UiLCJhcHBlbmROYW1lc3BhY2VUb0NJTW9kZSIsInJlc1VzZWRLZXkiLCJ1c2VkS2V5IiwicmVzRXhhY3RVc2VkS2V5IiwiZXhhY3RVc2VkS2V5IiwicmVzVHlwZSIsIm5vT2JqZWN0Iiwiam9pbkFycmF5cyIsImhhbmRsZUFzT2JqZWN0SW5JMThuRm9ybWF0IiwiaTE4bkZvcm1hdCIsImhhbmRsZUFzT2JqZWN0IiwicmV0dXJuT2JqZWN0cyIsInJldHVybmVkT2JqZWN0SGFuZGxlciIsInJlc1R5cGVJc0FycmF5IiwibmV3S2V5VG9Vc2UiLCJkZWVwS2V5IiwidHJhbnNsYXRlIiwiZXh0ZW5kVHJhbnNsYXRpb24iLCJ1c2VkRGVmYXVsdCIsIm5lZWRzUGx1cmFsSGFuZGxpbmciLCJoYXNEZWZhdWx0VmFsdWUiLCJkZWZhdWx0VmFsdWVTdWZmaXgiLCJwbHVyYWxSZXNvbHZlciIsImdldFN1ZmZpeCIsImlzVmFsaWRMb29rdXAiLCJtaXNzaW5nS2V5Tm9WYWx1ZUZhbGxiYWNrVG9LZXkiLCJyZXNGb3JNaXNzaW5nIiwidXBkYXRlTWlzc2luZyIsImxuZ3MiLCJmYWxsYmFja0xuZ3MiLCJsYW5ndWFnZVV0aWxzIiwiZ2V0RmFsbGJhY2tDb2RlcyIsImZhbGxiYWNrTG5nIiwic2F2ZU1pc3NpbmdUbyIsInRvUmVzb2x2ZUhpZXJhcmNoeSIsImZhbGxiYWNrVmFsdWUiLCJtaXNzaW5nS2V5SGFuZGxlciIsImJhY2tlbmRDb25uZWN0b3IiLCJzYXZlTWlzc2luZyIsInNhdmVNaXNzaW5nUGx1cmFscyIsImdldFN1ZmZpeGVzIiwic3VmZml4IiwiYXBwZW5kTmFtZXNwYWNlVG9NaXNzaW5nS2V5IiwicGFyc2VNaXNzaW5nS2V5SGFuZGxlciIsIl90aGlzMyIsInVzZWRMbmciLCJ1c2VkTlMiLCJza2lwSW50ZXJwb2xhdGlvbiIsIm5lc3RCZWYiLCJza2lwT25WYXJpYWJsZXMiLCJkZWZhdWx0VmFyaWFibGVzIiwiaW50ZXJwb2xhdGUiLCJuZXN0IiwicG9zdFByb2Nlc3MiLCJwb3N0UHJvY2Vzc29yTmFtZXMiLCJhcHBseVBvc3RQcm9jZXNzb3IiLCJwb3N0UHJvY2Vzc1Bhc3NSZXNvbHZlZCIsImkxOG5SZXNvbHZlZCIsImZvdW5kIiwiX3RoaXM0IiwiZXh0cmFjdGVkIiwiZmFsbGJhY2tOUyIsIm5lZWRzQ29udGV4dEhhbmRsaW5nIiwidXRpbHMiLCJoYXNMb2FkZWROYW1lc3BhY2UiLCJwbHVyYWxTdWZmaXgiLCJwb3NzaWJsZUtleSIsImZpbmFsS2V5IiwiZmluYWxLZXlzIiwiYWRkTG9va3VwS2V5cyIsImNvbnRleHRTZXBhcmF0b3IiLCJyZXR1cm5OdWxsIiwicmV0dXJuRW1wdHlTdHJpbmciLCJyZXNvdXJjZVN0b3JlIiwib3B0aW9uIiwiY2FwaXRhbGl6ZSIsInN0cmluZyIsIkxhbmd1YWdlVXRpbCIsInN1cHBvcnRlZExuZ3MiLCJmb3JtYXRMYW5ndWFnZUNvZGUiLCJzcGVjaWFsQ2FzZXMiLCJsb3dlckNhc2VMbmciLCJwYXJ0IiwiY2xlYW5Db2RlIiwibG9hZCIsIm5vbkV4cGxpY2l0U3VwcG9ydGVkTG5ncyIsImdldExhbmd1YWdlUGFydEZyb21Db2RlIiwiY2xlYW5lZExuZyIsImlzU3VwcG9ydGVkQ29kZSIsImxuZ09ubHkiLCJzdXBwb3J0ZWRMbmciLCJmYWxsYmFja3MiLCJnZXRTY3JpcHRQYXJ0RnJvbUNvZGUiLCJmYWxsYmFja0NvZGUiLCJmYWxsYmFja0NvZGVzIiwiYWRkQ29kZSIsInNldHMiLCJuciIsIl9ydWxlc1BsdXJhbHNUeXBlcyIsImRlcHJlY2F0ZWRKc29uVmVyc2lvbnMiLCJzdWZmaXhlc09yZGVyIiwiemVybyIsIm9uZSIsInR3byIsImZldyIsIm1hbnkiLCJvdGhlciIsImNyZWF0ZVJ1bGVzIiwicnVsZXMiLCJudW1iZXJzIiwicGx1cmFscyIsIlBsdXJhbFJlc29sdmVyIiwiY29tcGF0aWJpbGl0eUpTT04iLCJJbnRsIiwiUGx1cmFsUnVsZXMiLCJzaG91bGRVc2VJbnRsQXBpIiwib3JkaW5hbCIsIl91bnVzZWQiLCJydWxlIiwiZ2V0UnVsZSIsInJlc29sdmVkT3B0aW9ucyIsInBsdXJhbENhdGVnb3JpZXMiLCJzb3J0IiwicGx1cmFsQ2F0ZWdvcnkxIiwicGx1cmFsQ2F0ZWdvcnkyIiwicGx1cmFsQ2F0ZWdvcnkiLCJwcmVwZW5kIiwic2VsZWN0IiwiZ2V0U3VmZml4UmV0cm9Db21wYXRpYmxlIiwiaWR4Iiwibm9BYnMiLCJzaW1wbGlmeVBsdXJhbFN1ZmZpeCIsInJldHVyblN1ZmZpeCIsIkludGVycG9sYXRvciIsImZvcm1hdCIsImVzY2FwZVZhbHVlIiwiaU9wdHMiLCJ1c2VSYXdWYWx1ZVRvRXNjYXBlIiwicHJlZml4RXNjYXBlZCIsInN1ZmZpeEVzY2FwZWQiLCJmb3JtYXRTZXBhcmF0b3IiLCJ1bmVzY2FwZVByZWZpeCIsInVuZXNjYXBlU3VmZml4IiwibmVzdGluZ1ByZWZpeCIsIm5lc3RpbmdQcmVmaXhFc2NhcGVkIiwibmVzdGluZ1N1ZmZpeCIsIm5lc3RpbmdTdWZmaXhFc2NhcGVkIiwibmVzdGluZ09wdGlvbnNTZXBhcmF0b3IiLCJtYXhSZXBsYWNlcyIsImFsd2F5c0Zvcm1hdCIsInJlc2V0UmVnRXhwIiwicmVnZXhwU3RyIiwicmVnZXhwIiwicmVnZXhwVW5lc2NhcGVTdHIiLCJyZWdleHBVbmVzY2FwZSIsIm5lc3RpbmdSZWdleHBTdHIiLCJyZXBsYWNlcyIsInJlZ2V4U2FmZSIsImhhbmRsZUZvcm1hdCIsImludGVycG9sYXRpb25rZXkiLCJtaXNzaW5nSW50ZXJwb2xhdGlvbkhhbmRsZXIiLCJyZWdleCIsInNhZmVWYWx1ZSIsInRvZG8iLCJleGVjIiwidGVtcCIsImxhc3RJbmRleCIsImNsb25lZE9wdGlvbnMiLCJoYW5kbGVIYXNPcHRpb25zIiwiaW5oZXJpdGVkT3B0aW9ucyIsInNlcCIsIm9wdGlvbnNTdHJpbmciLCJmb3JtYXR0ZXJzIiwiZG9SZWR1Y2UiLCJlbGVtIiwicmVkdWNlIiwiRm9ybWF0dGVyIiwiZm9ybWF0cyIsIk51bWJlckZvcm1hdCIsImN1cnJlbmN5IiwiRGF0ZVRpbWVGb3JtYXQiLCJyZWxhdGl2ZXRpbWUiLCJSZWxhdGl2ZVRpbWVGb3JtYXQiLCJMaXN0Rm9ybWF0IiwiX2Zvcm1hdCIsIm1lbSIsIl9wYXJzZUZvcm1hdFN0ciIsImZvcm1hdFN0ciIsImZvcm1hdE5hbWUiLCJmb3JtYXRPcHRpb25zIiwib3B0U3RyIiwib3B0IiwiX29wdCRzcGxpdDIiLCJfcyIsIl9lIiwiX2FyciIsIl9uIiwiX2QiLCJtaW5MZW4iLCJfc2xpY2VkVG9BcnJheSIsInBhcnNlRm9ybWF0U3RyIiwiZm9ybWF0dGVkIiwidmFsT3B0aW9ucyIsImZvcm1hdFBhcmFtcyIsIkNvbm5lY3RvciIsImJhY2tlbmQiLCJzdG9yZSIsImxhbmd1YWdlcyIsInRvTG9hZCIsInRvTG9hZExhbmd1YWdlcyIsInRvTG9hZE5hbWVzcGFjZXMiLCJoYXNBbGxOYW1lc3BhY2VzIiwicmVsb2FkIiwibG9hZGVkIiwiZXJyb3JzIiwiYWRkUmVzb3VyY2VCdW5kbGUiLCJfZ2V0TGFzdE9mUGF0aDIiLCJwdXNoUGF0aCIsIndoYXQiLCJmY05hbWUiLCJ0cmllZCIsIndhaXQiLCJyZWFkIiwicXVldWVMb2FkIiwibG9hZE9uZSIsInByZXBhcmVMb2FkaW5nIiwiX3RoaXM1IiwiaXNVcGRhdGUiLCJpbml0SW1tZWRpYXRlIiwicHJlbG9hZCIsInBsdXJhbFNlcGFyYXRvciIsInBhcnRpYWxCdW5kbGVkTGFuZ3VhZ2VzIiwicmV0IiwidERlc2NyaXB0aW9uIiwidHJhbnNmb3JtT3B0aW9ucyIsIm5vb3AiLCJJMThuIiwiZXh0ZXJuYWwiLCJpc0luaXRpYWxpemVkIiwiaXNDbG9uZSIsImRlZk9wdHMiLCJjcmVhdGVDbGFzc09uRGVtYW5kIiwiQ2xhc3NPck9iamVjdCIsImZvcm1hdHRlciIsImx1Iiwib24iLCJsYW5ndWFnZURldGVjdG9yIiwiZGV0ZWN0aW9uIiwic3RvcmVBcGkiLCJfdGhpczIkc3RvcmUiLCJzdG9yZUFwaUNoYWluZWQiLCJfdGhpczIkc3RvcmUyIiwiZGVmZXJyZWQiLCJmaW5pc2giLCJpbml0aWFsaXplZFN0b3JlT25jZSIsImNoYW5nZUxhbmd1YWdlIiwidXNlZENhbGxiYWNrIiwiYXBwZW5kIiwiaXNMYW5ndWFnZUNoYW5naW5nVG8iLCJzZXRMbmdQcm9wcyIsInJlc29sdmVkTGFuZ3VhZ2UiLCJsbmdJbkxuZ3MiLCJoYXNMYW5ndWFnZVNvbWVUcmFuc2xhdGlvbnMiLCJzZXRMbmciLCJnZXRCZXN0TWF0Y2hGcm9tQ29kZXMiLCJjYWNoZVVzZXJMYW5ndWFnZSIsImxvYWRSZXNvdXJjZXMiLCJhc3luYyIsImRldGVjdCIsImtleVByZWZpeCIsImZpeGVkVCIsIm9wdHMiLCJyZXN0IiwicmVzdWx0S2V5IiwiX3RoaXMkdHJhbnNsYXRvciIsIl90aGlzJHRyYW5zbGF0b3IyIiwiZXhpc3RzIiwiX3RoaXM2IiwibGFzdExuZyIsImxvYWROb3RQZW5kaW5nIiwibG9hZFN0YXRlIiwicHJlY2hlY2siLCJwcmVSZXN1bHQiLCJfdGhpczciLCJwcmVsb2FkZWQiLCJuZXdMbmdzIiwiX3RoaXM4IiwibWVyZ2VkT3B0aW9ucyIsImNsb25lIiwibWVtYmVyc1RvQ29weSIsImVhY2giLCJkZWZhdWx0cyIsImZpZWxkQ29udGVudFJlZ0V4cCIsInNlcmlhbGl6ZUNvb2tpZSIsIm1heEFnZSIsImRvbWFpbiIsImV4cGlyZXMiLCJ0b1VUQ1N0cmluZyIsImh0dHBPbmx5Iiwic2VjdXJlIiwic2FtZVNpdGUiLCJjb29raWUkMSIsImxvb2t1cCIsImxvb2t1cENvb2tpZSIsIm5hbWVFUSIsImNvb2tpZSIsIm1pbnV0ZXMiLCJjb29raWVPcHRpb25zIiwic2V0VGltZSIsImNvb2tpZU1pbnV0ZXMiLCJjb29raWVEb21haW4iLCJxdWVyeXN0cmluZyIsInBhcmFtcyIsInBvcyIsImxvb2t1cFF1ZXJ5c3RyaW5nIiwiaGFzTG9jYWxTdG9yYWdlU3VwcG9ydCIsImxvY2FsU3RvcmFnZUF2YWlsYWJsZSIsImxvY2FsU3RvcmFnZSIsInRlc3RLZXkiLCJzZXRJdGVtIiwicmVtb3ZlSXRlbSIsImxvb2t1cExvY2FsU3RvcmFnZSIsImdldEl0ZW0iLCJoYXNTZXNzaW9uU3RvcmFnZVN1cHBvcnQiLCJzZXNzaW9uU3RvcmFnZUF2YWlsYWJsZSIsInNlc3Npb25TdG9yYWdlIiwibG9va3VwU2Vzc2lvblN0b3JhZ2UiLCJuYXZpZ2F0b3IkMSIsInVzZXJMYW5ndWFnZSIsImh0bWxUYWciLCJnZXRBdHRyaWJ1dGUiLCJsb29rdXBGcm9tUGF0aEluZGV4Iiwic3ViZG9tYWluIiwibG9va3VwRnJvbVN1YmRvbWFpbkluZGV4IiwiQnJvd3NlciIsImRldGVjdG9ycyIsImkxOG5PcHRpb25zIiwiY2FjaGVzIiwiZXhjbHVkZUNhY2hlRm9yIiwibG9va3VwRnJvbVVybEluZGV4IiwiYWRkRGV0ZWN0b3IiLCJkZXRlY3RvciIsImRldGVjdGlvbk9yZGVyIiwiZGV0ZWN0ZWQiLCJkZXRlY3Rvck5hbWUiLCJjYWNoZU5hbWUiLCJlbnVtZXJhYmxlT25seSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmYXVsdE9wdGlvbnMiLCJiaW5kSTE4biIsImJpbmRJMThuU3RvcmUiLCJ0cmFuc0VtcHR5Tm9kZVZhbHVlIiwidHJhbnNTdXBwb3J0QmFzaWNIdG1sTm9kZXMiLCJ0cmFuc1dyYXBUZXh0Tm9kZXMiLCJ0cmFuc0tlZXBCYXNpY0h0bWxOb2Rlc0ZvciIsInVzZVN1c3BlbnNlIiwiUmVwb3J0TmFtZXNwYWNlcyIsInVzZWROYW1lc3BhY2VzIiwiaW5pdFJlYWN0STE4bmV4dCIsInNldERlZmF1bHRzIiwicmVhY3QiLCJlbiIsInRyYW5zbGF0aW9ucyIsImZyIiwiZXMiLCJ1c2UiLCJjYXRjaCIsIlVSTCIsIlVSTFNlYXJjaFBhcmFtcyIsIl9fd2VicGFja19yZXF1aXJlX18iLCJtb2R1bGVJZCIsImNhY2hlZE1vZHVsZSIsImdldHRlciIsImRlZmluaXRpb24iXSwic291cmNlUm9vdCI6IiJ9