@opcua/for-node-red 3.7.0 → 3.7.1

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.
@@ -4,8 +4,8 @@
4
4
  </style>
5
5
 
6
6
  <script type="text/javascript">
7
- function _0x2813(){const _0x5efb2f=['scrollTop','<div\x20class=\x22info-text\x22></div>','aliased\x20NodeId:\x20','Good','error','SeaGreen','__parentNode','Both','referenceTypeId','browseResult','nsu','string','remove','!!failure!!','selectedMenuItem','nodeId','<a\x20href=\x22#\x22></a>','border','i=61','<button\x20title=\x22open\x20OPCUA\x20AddressSpace\x20Browser\x22><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','after','20px','mode','DataType','HasSubtype','show','</span>','parent','function','parentNode','sterfive-info','append','node','trigger','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','/opcua-for-node-red','219190LiCgVE','Value\x20is\x20not\x20verified','Variable','fa-cog','nodeId_aliased','<i\x20class=\x22fa\x20fa-tag\x22/>1\x20&nbsp;\x20','preventDefault','sort','replaceWith','then','<iframe></iframe>','<div\x20class=\x22spinner\x22></div>','Aliased\x20Browse\x20Path',':visible','disarmClick','_initMenu','nsu\x20nodeId:\x20','OpcUa-Client2-Write','\x22}><span\x20class=\x22tree-text\x22\x20title=','find','removeClass','catch','browseName','sterfive-typedInput-options\x20sterfive-online-menu','statusCode:\x20','NodeClass','isSelectable','DarkOrange','aliased\x20browsePath:\x20','off','element','696332UjoEjT','bp_indexed','mousedown.red-ui-typedInput-close-property-select','failure','browsePath','focus','pageX','pageY','Invalid','expanded','ns=0;i=35','sterfive.nodeBrowser','status','/opcua-for-node-red/support-frame.html','$menu','OPCUA\x20Client\x20Write','<button\x20title=\x22verify\x20nodeId\x20or\x20browsePath\x22><i\x20class=\x22fa\x20fa-refresh\x22></i></button>','nsuNodeID','Object','Organizes','$toggleTreeBtn','../../icons/opcuanodeLogo.png','2TpbShu','opts','attr','1251733pgFVvF','<input\x20type=\x22checkbox\x22>','272031nqtfMQ','POST','apply','closest','_delay','blur','right','$info','Unspecified','.red-ui-tray-body','filter','$dropdown','call','$elementDiv','IsForward','empty','706920jfREsU','stringify','installFeedbackWidget\x20','push','input[type=\x22checkbox\x22]','fa-list-alt','height','err','prop','icon','aliasedNodeId','toggle','><i\x20class=\x22fa\x20','red-ui-typedInput-icon\x20','fetched','prependTo','tabindex','<i\x20class=\x22red-ui-typedInput-icon\x20fa\x20fa-caret-down\x22></i>','position','li[key=\x22','next',';\x22></i>\x20','180px','SandyBrown','callback','DisplayName','<i>','assign','selected','.tree-text:first','#node-input-endpoint','throw','log','body','View','keyCode','toString','/browse','val','hasClass','change','<li\x20key=\x22','nodeBrowser','<button\x20type=\x22button\x22\x20tabindex=\x220\x22></button>','endpoint','click','already\x20fetched','text','widget','_showTypeMenu','namespaceAliases','opcua','multiple','done','_showMenu','match','dblclick','VariableType','$combo','nodes','30px',':focus','HasChild','Inverse','already\x20loading','<ul\x20class=\x22sterfive-tree\x22></ul>','<div/>','appendTo','bp_aliased','<span\x20title=','CadetBlue','_createMenu','statusCode','ObjectType','fa-sliders','ns=0;i=45','aliasedBrowsePath','target','displayName','currentParent','HasProperty','relativePath','nodeClass','label','checked','OpcUa-Endpoint2','placeholder','application/json',');\x20-webkit-mask-image:\x20url(','NodeId','Aliased\x20NodeId','wrap','forEach','mask-image:\x20url(','title','reset','Objects','message','$verifyBtn','input-group','registerType','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','value','stopPropagation','9650ElWvho','absolute','Forward','json','slideDown','mousedown.red-ui-typedInput-focus-block','animate','<i\x20class=\x22fa\x20fa-font\x22/i>\x20','each','HasTypeDefinition','<div>','options','$input','keydown','write','data','endpointNode','left','join','node\x20class:\x20','nodeId_nsu','typeDefinition','rgba(61,\x2060,\x204,\x200.525)','node_label_italic','reference','#C0DEED','loading','browse\x20path:\x20','$uiSelect','offset','addClass','BrowseName','<span\x20class=\x22red-ui-typedInput-type-label\x22></span>','<i\x20class=\x22fa\x20fa-envelope-open-o\x22/>','length','resolveParentNode','elements','toggleClass','none','statusText','verify','name','true','$tree','indexOf','$selectTrigger','auto','li\x20>\x20.tree-text','localeCompare','red-ui-typedInput-focus','before','css','nodeId:\x20','input-error','children','top','hide','_hideMenu','16px','references','<i\x20class=\x22fa\x20fa-bookmark\x22/>&nbsp;\x20','ns=0;i=46','$selectLabel','</span><ul></ul></li>','ns=0;i=85','SteelBlue','>&nbsp;\x20','DodgerBlue','ReferenceType','expandable','isTypeRef','2718264GfVwJv','requestedNodeId','Method','node\x20id\x20or\x20\x20browse\x20path\x20comes\x20from\x20injected\x20msg\x20parameter'];_0x2813=function(){return _0x5efb2f;};return _0x2813();}function _0x6b08(_0x4e31a8,_0x97366d){const _0x2813c3=_0x2813();return _0x6b08=function(_0x6b085c,_0x1a07dc){_0x6b085c=_0x6b085c-0x14f;let _0x201792=_0x2813c3[_0x6b085c];return _0x201792;},_0x6b08(_0x4e31a8,_0x97366d);}(function(_0x560b5f,_0x3e5fdb){const _0x6e5d26=_0x6b08,_0x1f9542=_0x560b5f();while(!![]){try{const _0x53c8bb=parseInt(_0x6e5d26(0x23d))/0x1+parseInt(_0x6e5d26(0x1c0))/0x2*(-parseInt(_0x6e5d26(0x1c5))/0x3)+-parseInt(_0x6e5d26(0x1aa))/0x4+-parseInt(_0x6e5d26(0x18b))/0x5+-parseInt(_0x6e5d26(0x1d5))/0x6+parseInt(_0x6e5d26(0x1c3))/0x7+parseInt(_0x6e5d26(0x163))/0x8;if(_0x53c8bb===_0x3e5fdb)break;else _0x1f9542['push'](_0x1f9542['shift']());}catch(_0x12d84a){_0x1f9542['push'](_0x1f9542['shift']());}}}(_0x2813,0x18dca),(function(){'use strict';const _0x3c1663=_0x6b08;function _0x4365c6(_0x1d6947,_0x3aac13,_0x470125,_0x45481a){function _0x3904dd(_0x1621bb){return _0x1621bb instanceof _0x470125?_0x1621bb:new _0x470125(function(_0x445932){_0x445932(_0x1621bb);});}return new(_0x470125||(_0x470125=Promise))(function(_0x16e1b0,_0x13cb37){const _0x1b2c00=_0x6b08;function _0x418f20(_0x3de225){const _0x5bf3a9=_0x6b08;try{_0x16baf9(_0x45481a[_0x5bf3a9(0x1e9)](_0x3de225));}catch(_0x18eae7){_0x13cb37(_0x18eae7);}}function _0x45b7c7(_0x4042cd){const _0x149769=_0x6b08;try{_0x16baf9(_0x45481a[_0x149769(0x1f4)](_0x4042cd));}catch(_0x5d401e){_0x13cb37(_0x5d401e);}}function _0x16baf9(_0x200998){const _0x481adb=_0x6b08;_0x200998[_0x481adb(0x20a)]?_0x16e1b0(_0x200998['value']):_0x3904dd(_0x200998[_0x481adb(0x23b)])['then'](_0x418f20,_0x45b7c7);}_0x16baf9((_0x45481a=_0x45481a[_0x1b2c00(0x1c7)](_0x1d6947,_0x3aac13||[]))[_0x1b2c00(0x1e9)]());});}typeof SuppressedError===_0x3c1663(0x183)?SuppressedError:function(_0x268f65,_0x3cf053,_0x3c67fa){const _0x35517d=_0x3c1663;var _0x13caf0=new Error(_0x3c67fa);return _0x13caf0[_0x35517d(0x266)]='SuppressedError',_0x13caf0[_0x35517d(0x16b)]=_0x268f65,_0x13caf0['suppressed']=_0x3cf053,_0x13caf0;};const _0x4d4801=_0x3c1663(0x1b4),_0x2fd1ed='ns=0;i=61',_0x12c774='ns=0;i=47',_0x525252=_0x3c1663(0x159),_0x1ff820='ns=0;i=34',_0x3c9950=_0x3c1663(0x220),_0x2a6e9f='ns=0;i=40';var _0x29110;(function(_0x49ef4e){const _0x479398=_0x3c1663;_0x49ef4e[_0x49ef4e[_0x479398(0x23f)]=0x0]=_0x479398(0x23f),_0x49ef4e[_0x49ef4e[_0x479398(0x214)]=0x1]=_0x479398(0x214),_0x49ef4e[_0x49ef4e[_0x479398(0x16e)]=0x2]=_0x479398(0x16e),_0x49ef4e[_0x49ef4e[_0x479398(0x1b2)]=0x3]=_0x479398(0x1b2);}(_0x29110||(_0x29110={})));var _0x57c435;(function(_0x223c52){const _0x589d76=_0x3c1663;_0x223c52[_0x223c52[_0x589d76(0x1cd)]=0x0]='Unspecified',_0x223c52[_0x223c52[_0x589d76(0x1bc)]=0x1]='Object',_0x223c52[_0x223c52[_0x589d76(0x18d)]=0x2]=_0x589d76(0x18d),_0x223c52[_0x223c52['Method']=0x4]=_0x589d76(0x165),_0x223c52[_0x223c52[_0x589d76(0x21e)]=0x8]=_0x589d76(0x21e),_0x223c52[_0x223c52[_0x589d76(0x20e)]=0x10]=_0x589d76(0x20e),_0x223c52[_0x223c52[_0x589d76(0x160)]=0x20]=_0x589d76(0x160),_0x223c52[_0x223c52[_0x589d76(0x17e)]=0x40]='DataType',_0x223c52[_0x223c52['View']=0x80]=_0x589d76(0x1f7);}(_0x57c435||(_0x57c435={})));var _0x1449e2;(function(_0x5310b9){const _0x4f9eed=_0x3c1663;_0x5310b9[_0x5310b9[_0x4f9eed(0x1bc)]=0x1]=_0x4f9eed(0x1bc),_0x5310b9[_0x5310b9['Variable']=0x2]=_0x4f9eed(0x18d),_0x5310b9[_0x5310b9[_0x4f9eed(0x165)]=0x4]='Method',_0x5310b9[_0x5310b9[_0x4f9eed(0x21e)]=0x8]=_0x4f9eed(0x21e),_0x5310b9[_0x5310b9[_0x4f9eed(0x20e)]=0x10]=_0x4f9eed(0x20e),_0x5310b9[_0x5310b9[_0x4f9eed(0x160)]=0x20]=_0x4f9eed(0x160),_0x5310b9[_0x5310b9[_0x4f9eed(0x17e)]=0x40]=_0x4f9eed(0x17e),_0x5310b9[_0x5310b9[_0x4f9eed(0x1f7)]=0x80]=_0x4f9eed(0x1f7);}(_0x1449e2||(_0x1449e2={})));var _0x24e069;(function(_0x41c920){const _0x5e2bdf=_0x3c1663;_0x41c920[_0x41c920[_0x5e2bdf(0x160)]=0x1]='ReferenceType',_0x41c920[_0x41c920[_0x5e2bdf(0x1d3)]=0x2]='IsForward',_0x41c920[_0x41c920[_0x5e2bdf(0x1a4)]=0x4]='NodeClass',_0x41c920[_0x41c920[_0x5e2bdf(0x25c)]=0x8]=_0x5e2bdf(0x25c),_0x41c920[_0x41c920[_0x5e2bdf(0x1ee)]=0x10]=_0x5e2bdf(0x1ee),_0x41c920[_0x41c920['TypeDefinition']=0x20]='TypeDefinition';}(_0x24e069||(_0x24e069={})));function _0x944577(_0x281788){const _0x13a6be=_0x3c1663;switch(_0x281788){case _0x13a6be(0x1bd):return _0x4d4801;case _0x13a6be(0x225):return _0x525252;case'HasComponent':return _0x12c774;case _0x13a6be(0x213):return _0x1ff820;case _0x13a6be(0x17f):return _0x3c9950;case _0x13a6be(0x246):return _0x2a6e9f;}}const _0x2723c2=_0x522b2a=>{const _0x5a6618=_0x3c1663;switch(_0x522b2a[_0x5a6618(0x227)]){case'Object':if(_0x522b2a['referenceTypeId']===_0x4d4801);if(_0x522b2a[_0x5a6618(0x252)]===_0x2fd1ed||_0x522b2a[_0x5a6618(0x16f)]===_0x5a6618(0x179))return{'icon':'fa-folder','color':_0x5a6618(0x253)};return{'icon':'fa-object-group','color':_0x5a6618(0x16c)};case _0x5a6618(0x18d):if(_0x522b2a['referenceTypeId']===_0x12c774)return{'icon':'fa-list-alt','color':_0x5a6618(0x15d)};else return _0x522b2a[_0x5a6618(0x16f)]===_0x525252?{'icon':_0x5a6618(0x1da),'color':_0x5a6618(0x15f)}:{'icon':_0x5a6618(0x1da),'color':'CadetBlue'};case _0x5a6618(0x165):return{'icon':_0x5a6618(0x18e),'color':_0x5a6618(0x1ec)};case _0x5a6618(0x21e):return{'icon':'fa-object-group','color':_0x5a6618(0x1a6)};case _0x5a6618(0x20e):return{'icon':_0x5a6618(0x21f),'color':_0x5a6618(0x1a6)};case _0x5a6618(0x17e):return{'icon':'fa-text-width','color':_0x5a6618(0x21b)};}return{'icon':'fa-question','color':'grey'};},_0x2ed106=(_0xb2365a,_0x334ff7,_0x5e0276)=>_0x4365c6(void 0x0,[_0xb2365a,_0x334ff7,_0x5e0276],void 0x0,function*({endpointNode:_0x5b40ca,endpoint:_0x3e727a,baseUrl:_0x2e2b08},_0x21249c,_0x19b069){const _0x323eac=_0x3c1663,_0x18976c=_0x2e2b08+'/opcua-for-node-red',_0x2cd1c7=_0x18976c+_0x323eac(0x1fa),_0x44c8b1=Object[_0x323eac(0x1f0)](Object[_0x323eac(0x1f0)]({},_0x19b069),{'nodeId':_0x21249c,'resultMask':0x3f}),_0x3eba09=yield fetch(_0x2cd1c7,{'method':_0x323eac(0x1c6),'body':JSON['stringify']({'endpointNode':_0x5b40ca,'endpoint':_0x3e727a,'browseDescription':_0x44c8b1}),'headers':{'Content-Type':'application/json'}});if(_0x3eba09[_0x323eac(0x1b6)]!==0xc8)return console['log']('fetching\x20failed\x20with\x20error',_0x3eba09[_0x323eac(0x1b6)],_0x3eba09[_0x323eac(0x264)]),{'references':[]};const _0x3d58f1=yield _0x3eba09[_0x323eac(0x240)](),_0x1318cc=_0x3d58f1[_0x323eac(0x170)][_0x323eac(0x157)]||[];return{'references':_0x1318cc};}),_0x2bd019={'referenceTypeId':_0x944577('HasChild'),'includeSubtypes':!![],'browseDirection':_0x29110['Forward'],'nodeClassMask':_0x57c435['Variable']|_0x57c435[_0x3c1663(0x1bc)]|_0x57c435[_0x3c1663(0x165)],'resultMask':0x3f},_0x190a7b={'referenceTypeId':_0x944577(_0x3c1663(0x1bd)),'includeSubtypes':!![],'browseDirection':_0x29110[_0x3c1663(0x23f)],'nodeClassMask':_0x57c435[_0x3c1663(0x18d)]|_0x57c435[_0x3c1663(0x1bc)]|_0x57c435[_0x3c1663(0x165)],'resultMask':0x3f},_0x1ae961=(_0xa9803b,_0x44c25e)=>_0x4365c6(void 0x0,[_0xa9803b,_0x44c25e],void 0x0,function*({endpointNode:_0xa78e49,endpoint:_0x2b9a15,baseUrl:_0x52e798},{nodeId:_0x86bd1f,rootNodeId:_0x5ead7f,isType:_0x5a3284}){const _0x2ba8ab=_0x3c1663,_0x1275ca=_0x52e798+_0x2ba8ab(0x18a),_0xee6b96=_0x1275ca+'/walk-backward',_0x3afaa6=yield fetch(_0xee6b96,{'method':_0x2ba8ab(0x1c6),'body':JSON[_0x2ba8ab(0x1d6)]({'endpointNode':_0xa78e49,'endpoint':_0x2b9a15,'nodeId':_0x86bd1f,'rootNodeId':_0x5ead7f,'isType':_0x5a3284}),'headers':{'Content-Type':_0x2ba8ab(0x22c)}});if(_0x3afaa6[_0x2ba8ab(0x1b6)]!==0xc8)return null;const _0x30c27e=yield _0x3afaa6['json']();return _0x30c27e[_0x2ba8ab(0x1ae)];}),_0x30a858=(_0x43f4a8,_0x5b66c3)=>{const _0x5920c2=_0x3c1663;if(_0x43f4a8[_0x5920c2(0x21d)]!==_0x5920c2(0x16a))return _0x43f4a8[_0x5920c2(0x164)];switch(_0x5b66c3){case _0x5920c2(0x1ae):return _0x43f4a8[_0x5920c2(0x1ab)];case'aliasedBrowsePath':return _0x43f4a8[_0x5920c2(0x219)]||_0x43f4a8[_0x5920c2(0x1ab)];case _0x5920c2(0x1df):return _0x43f4a8['nodeId_aliased']||_0x43f4a8[_0x5920c2(0x251)];case _0x5920c2(0x1bb):return _0x43f4a8[_0x5920c2(0x251)];default:case _0x5920c2(0x176):return _0x43f4a8[_0x5920c2(0x176)];}},_0x389ccd=_0x455b71=>{const _0x3bc2bf=_0x3c1663;if(_0x455b71[_0x3bc2bf(0x21d)]!==_0x3bc2bf(0x16a))return _0x3bc2bf(0x1a3)+_0x455b71[_0x3bc2bf(0x21d)];else{let _0x4945b9=[];return _0x4945b9[_0x3bc2bf(0x1d8)](_0x3bc2bf(0x150)+_0x455b71[_0x3bc2bf(0x176)]),_0x4945b9['push'](_0x3bc2bf(0x258)+_0x455b71[_0x3bc2bf(0x1ab)]),_0x4945b9['push'](_0x3bc2bf(0x250)+_0x57c435[_0x455b71[_0x3bc2bf(0x227)]]),_0x455b71[_0x3bc2bf(0x251)]&&_0x4945b9['push'](_0x3bc2bf(0x19b)+_0x455b71[_0x3bc2bf(0x251)]),_0x455b71[_0x3bc2bf(0x18f)]&&_0x4945b9[_0x3bc2bf(0x1d8)](_0x3bc2bf(0x169)+_0x455b71[_0x3bc2bf(0x18f)]),_0x455b71[_0x3bc2bf(0x1ab)]&&_0x4945b9[_0x3bc2bf(0x1d8)](_0x3bc2bf(0x1a7)+_0x455b71[_0x3bc2bf(0x219)]),_0x4945b9[_0x3bc2bf(0x24f)]('\x0a');}};function _0x2ad3c0(_0x46ad88){const _0x5dd232=_0x3c1663;if(_0x46ad88[_0x5dd232(0x20c)](/^nsu=/))return _0x5dd232(0x1bb);if(_0x46ad88['match'](/^(ns=.*;)?(i|b|s|g)=/))return'nodeId';if(_0x46ad88[_0x5dd232(0x20c)](/^nsa=/))return _0x5dd232(0x1df);if(_0x46ad88[_0x5dd232(0x20c)](/^(\/|\.)[0-9]+:/))return _0x5dd232(0x1ae);if(_0x46ad88[_0x5dd232(0x20c)](/^(\/|\.).*:/))return _0x5dd232(0x1ae);}function _0x4955fe(_0x26e2d4){const _0x1c0afa=_0x3c1663,_0x4f9d1e=_0x2ad3c0(_0x26e2d4);switch(_0x4f9d1e){case _0x1c0afa(0x176):return'n';case'aliasedNodeId':return'na';case _0x1c0afa(0x1bb):return _0x1c0afa(0x171);case _0x1c0afa(0x1ae):return'b';case'aliasedBrowsePath':return'ab';default:return't';}}function _0x421512(_0x437bbf){const _0x3c6b49=_0x3c1663;let _0x1f3778;switch(_0x437bbf){case'n':_0x1f3778=_0x3c6b49(0x176);break;case'na':_0x1f3778=_0x3c6b49(0x1df);break;case _0x3c6b49(0x171):_0x1f3778='nsuNodeID';break;case'b':_0x1f3778=_0x3c6b49(0x1ae);break;case'ab':_0x1f3778=_0x3c6b49(0x221);break;}return _0x1f3778;}function _0x14a976(_0x535cb9){const _0x1ae963=_0x3c1663;switch(_0x535cb9){case'nodeId':return'n';case _0x1ae963(0x1df):return'na';case _0x1ae963(0x1bb):return _0x1ae963(0x171);case _0x1ae963(0x1ae):return'b';case _0x1ae963(0x221):return'ab';default:return't';}}const _0x4478f3=(_0xf2cb4b,_0x2f3a12)=>_0x4365c6(void 0x0,[_0xf2cb4b,_0x2f3a12],void 0x0,function*({endpointNode:_0x25280b,endpoint:_0x8aeda3,baseUrl:_0x34165d},_0x1c6728){const _0x41cf56=_0x3c1663,_0x4cab8c=_0x34165d+_0x41cf56(0x18a),_0x1b5d74=_0x4cab8c+'/checkNodeId',_0x243079=_0x25280b['id'],_0x4b863a=RED['nodes'][_0x41cf56(0x187)](_0x243079);console[_0x41cf56(0x1f5)](_0x4b863a[_0x41cf56(0x207)]),_0x4b863a[_0x41cf56(0x207)];const _0x4a0777=_0x25280b['namespaceAliases'],_0x53ff6a=yield fetch(_0x1b5d74,{'method':_0x41cf56(0x1c6),'body':JSON[_0x41cf56(0x1d6)]({'endpointNode':_0x25280b,'endpoint':_0x8aeda3,'nodeId':_0x1c6728,'namespaceAliases':_0x4a0777}),'headers':{'Content-Type':_0x41cf56(0x22c)}}),_0x4a12a5=yield _0x53ff6a[_0x41cf56(0x240)]();return{'json':_0x4a12a5,'data':_0x53ff6a};}),_0x1e0dc8=(_0x516b2d,_0x5450e4,_0xf8a463,_0x4bd8df)=>_0x4365c6(void 0x0,[_0x516b2d,_0x5450e4,_0xf8a463,_0x4bd8df],void 0x0,function*({endpointNode:_0x47df54,endpoint:_0x21fbc6,baseUrl:_0x5bcb17},_0x1f394e,_0x357e43,_0x169f97){const _0xeeb668=_0x3c1663,_0x31fd02=_0x357e43[_0xeeb668(0x1fb)](),{json:_0x5d0ccf,data:_0x127140}=yield _0x4478f3({'endpointNode':_0x47df54,'endpoint':_0x21fbc6,'baseUrl':_0x5bcb17},_0x31fd02),_0x5d9beb=(_0x30ad10,_0x192d2c)=>{const _0x2beace=_0xeeb668;_0x169f97[_0x2beace(0x204)](_0x30ad10)[_0x2beace(0x25b)](_0x2beace(0x185))[_0x2beace(0x25b)](_0x192d2c),_0x169f97[_0x2beace(0x180)](),setTimeout(()=>{const _0x3284d2=_0x2beace;_0x169f97[_0x3284d2(0x19f)](_0x192d2c),_0x169f97[_0x3284d2(0x154)]();},0xbb8);};if(_0x127140[_0xeeb668(0x1b6)]!==0xc8)return _0x5d9beb(_0xeeb668(0x174)+_0x31fd02,_0xeeb668(0x1ad)),![];else{if(_0x5d0ccf[_0xeeb668(0x21d)][_0xeeb668(0x20c)](/Good/)){const _0x37b903=_0x389ccd(_0x5d0ccf);_0x357e43['attr']('title',_0x37b903);const _0x31353f=_0x30a858(_0x5d0ccf,_0x1f394e);return _0x357e43[_0xeeb668(0x1fb)](_0x31353f),_0x357e43[_0xeeb668(0x188)](_0xeeb668(0x1fd)),_0x5d9beb(_0xeeb668(0x16a),'ok'),!![];}else return _0x357e43['val'](''+_0x31fd02),_0x5d9beb(_0x5d0ccf[_0xeeb668(0x21d)]+'\x20'+_0x127140['statusText'],_0xeeb668(0x1ad)),![];}});function _0x340d22(_0x80a46f,_0x206d10){return _0x4365c6(this,void 0x0,void 0x0,function*(){const _0x22c78f=_0x6b08,_0xb7168f=_0x80a46f[_0x22c78f(0x24c)](_0x22c78f(0x23b)),_0x2e2de9=yield _0x2ed106(_0x206d10,_0xb7168f,_0x2bd019),_0x1ed072=yield _0x2ed106(_0x206d10,_0xb7168f,_0x190a7b);return{'references':[..._0x2e2de9[_0x22c78f(0x157)],..._0x1ed072[_0x22c78f(0x157)]]};});}const _0x5327d7={'referenceTypeId':_0x944577('HasSubtype'),'includeSubtypes':!![],'browseDirection':_0x29110[_0x3c1663(0x23f)],'nodeClassMask':_0x57c435[_0x3c1663(0x160)]|_0x57c435[_0x3c1663(0x21e)]|_0x57c435[_0x3c1663(0x17e)]|_0x57c435[_0x3c1663(0x20e)],'resultMask':0x3f};function _0x1c5550(_0xccdbd8,_0x17dc5a){return _0x4365c6(this,void 0x0,void 0x0,function*(){const _0xd26945=_0x6b08,_0x47e968=_0xccdbd8['data'](_0xd26945(0x23b)),_0xa61e13=yield _0x2ed106(_0x17dc5a,_0x47e968,_0x5327d7);return _0xa61e13;});}const _0x593db1=_0x2ce88f=>{const _0x33f9f5=_0x3c1663;var _0x6d5d66,_0x35efd7,_0x28d967,_0x44b073;if(!_0x2ce88f||!_0x2ce88f[_0x33f9f5(0x176)]){const _0x3749f5=$(_0x33f9f5(0x23a));return _0x3749f5;}const _0x24eb8f=_0x2ce88f[_0x33f9f5(0x176)][_0x33f9f5(0x1f9)](),_0x17e5c3=((_0x6d5d66=_0x2ce88f['displayName'])===null||_0x6d5d66===void 0x0?void 0x0:_0x6d5d66['text'])||((_0x35efd7=_0x2ce88f[_0x33f9f5(0x1a1)])===null||_0x35efd7===void 0x0?void 0x0:_0x35efd7[_0x33f9f5(0x266)])||_0x2ce88f[_0x33f9f5(0x176)]['toString'](),{icon:_0x2dadea,color:_0x3816d5}=_0x2723c2(_0x2ce88f),_0x156692='('+_0x2ce88f[_0x33f9f5(0x176)]['toString']()+')\x20'+(((_0x28d967=_0x2ce88f[_0x33f9f5(0x1a1)])===null||_0x28d967===void 0x0?void 0x0:_0x28d967[_0x33f9f5(0x266)])||((_0x44b073=_0x2ce88f[_0x33f9f5(0x223)])===null||_0x44b073===void 0x0?void 0x0:_0x44b073[_0x33f9f5(0x204)])||''),_0x26e115=$(_0x33f9f5(0x1fe)+_0x2ce88f[_0x33f9f5(0x176)][_0x33f9f5(0x1f9)]()+_0x33f9f5(0x19d)+_0x156692+_0x33f9f5(0x1e1)+_0x2dadea+'\x22\x20style=\x22color:'+_0x3816d5+_0x33f9f5(0x1ea)+_0x17e5c3+_0x33f9f5(0x15b));return _0x26e115[_0x33f9f5(0x25b)](_0x33f9f5(0x161)),_0x26e115[_0x33f9f5(0x24c)](_0x33f9f5(0x23b),_0x24eb8f),_0x26e115[_0x33f9f5(0x24c)](_0x33f9f5(0x255),_0x2ce88f),_0x26e115;},_0x452e21=(_0x5a0847,_0x398b13)=>{const _0x2d4b7a=_0x3c1663;return _0x398b13[_0x2d4b7a(0x19e)](_0x2d4b7a(0x1e8)+_0x5a0847+'\x22]');},_0x560ee0=(_0x555ae0,_0x17ddc1)=>{const _0x1cc829=_0x3c1663;_0x555ae0[_0x1cc829(0x268)][_0x1cc829(0x19e)](_0x1cc829(0x26c))[_0x1cc829(0x19f)](_0x1cc829(0x1f1)),_0x17ddc1[_0x1cc829(0x19e)](_0x1cc829(0x1f2))[_0x1cc829(0x25b)](_0x1cc829(0x1f1));},_0x242f69=(_0x4f2c87,_0x5e3586,_0x228034)=>_0x4365c6(void 0x0,void 0x0,void 0x0,function*(){const _0x4a821e=_0x3c1663;let _0x1793af=_0x228034[_0x4a821e(0x152)](':first');_0x5e3586[_0x4a821e(0x226)][_0x4a821e(0x261)]||[];const _0x3bcb3b=_0x5e3586['nodeIds']||[];if(_0x3bcb3b[_0x4a821e(0x25f)]===0x0)return;for(const _0x1e64b7 of _0x3bcb3b){_0x1793af[_0x4a821e(0x1fc)]('expandable')&&(yield _0x457d5e(_0x4f2c87,_0x1793af));const _0x5a3cd2=_0x452e21(_0x1e64b7,_0x1793af);if(_0x5a3cd2['length']===0x0)return;_0x1793af=_0x5a3cd2;}_0x560ee0(_0x4f2c87,_0x1793af),_0x42edaa(_0x4f2c87[_0x4a821e(0x1d0)],_0x1793af);});function _0x42edaa(_0x2d8953,_0x579c68){const _0x2b08e9=_0x3c1663,_0x52fd7a=_0x579c68[_0x2b08e9(0x1e7)]()[_0x2b08e9(0x153)],_0x59d7a2=_0x2d8953[_0x2b08e9(0x167)]();if(_0x59d7a2==undefined)return;const _0x4fb08d=_0x59d7a2+_0x52fd7a-_0x2d8953[_0x2b08e9(0x1db)]()/0x2+_0x579c68[_0x2b08e9(0x1db)]()/0x2;_0x2d8953[_0x2b08e9(0x243)]({'scrollTop':_0x4fb08d},0x1f4);}const _0x4221cc=(_0x37109a,_0xa937e3)=>_0x4365c6(void 0x0,void 0x0,void 0x0,function*(){const _0x334dba=_0x3c1663,_0x109541=_0x37109a[_0x334dba(0x249)]['val'](),_0x5026fa={'nodeId':_0x109541,'rootNodeId':_0xa937e3[_0x334dba(0x176)],'isType':_0x37109a['options'][_0x334dba(0x162)]||![]},_0x47b8ff=_0x186f44(_0x37109a),_0x3b87ca=yield _0x1ae961(_0x47b8ff,_0x5026fa);if(!_0x3b87ca)return;yield _0x242f69(_0x37109a,_0x3b87ca,_0x37109a[_0x334dba(0x268)]);});function _0x66d15b(_0x4080c8,_0x2a14e1,_0x28a3d3,_0x403a01){return _0x4365c6(this,void 0x0,void 0x0,function*(){const _0xf18ca6=_0x6b08;if(_0x2a14e1[_0xf18ca6(0x1fc)]('fetched')){console[_0xf18ca6(0x1f5)](_0xf18ca6(0x203));return;}if(_0x2a14e1[_0xf18ca6(0x1fc)]('loading')){console[_0xf18ca6(0x1f5)](_0xf18ca6(0x215));return;}_0x2a14e1[_0xf18ca6(0x25b)](_0xf18ca6(0x257)),_0x2a14e1['append'](_0xf18ca6(0x196));try{_0x2a14e1['children']('ul')['empty']();const {references:_0x44898b}=yield _0x28a3d3(_0x2a14e1,_0x403a01);_0x44898b[_0xf18ca6(0x192)]((_0x14f236,_0x31a01b)=>{const _0x497dfb=_0xf18ca6;var _0x1b82db,_0x1a15f5;return(((_0x1b82db=_0x14f236[_0x497dfb(0x1a1)])===null||_0x1b82db===void 0x0?void 0x0:_0x1b82db[_0x497dfb(0x266)])||'')[_0x497dfb(0x26d)](((_0x1a15f5=_0x31a01b[_0x497dfb(0x1a1)])===null||_0x1a15f5===void 0x0?void 0x0:_0x1a15f5[_0x497dfb(0x266)])||'');});for(const _0x29c413 of _0x44898b){if(_0x4080c8[_0xf18ca6(0x248)]['filter']&&!_0x4080c8[_0xf18ca6(0x248)][_0xf18ca6(0x1cf)](_0x29c413))continue;const _0x2d7ebf=_0x593db1(_0x29c413);_0x2a14e1[_0xf18ca6(0x152)]('ul')['append'](_0x2d7ebf);}_0x2a14e1[_0xf18ca6(0x25b)](_0xf18ca6(0x1e3));}catch(_0x5a9802){_0x2a14e1[_0xf18ca6(0x152)]('ul')[_0xf18ca6(0x186)]('<li>error\x20'+_0x5a9802[_0xf18ca6(0x236)]+'</li>'),console[_0xf18ca6(0x1f5)](_0xf18ca6(0x1dc),_0x5a9802);}_0x2a14e1[_0xf18ca6(0x19e)]('.spinner')[_0xf18ca6(0x173)](),_0x2a14e1['removeClass'](_0xf18ca6(0x257));});}function _0x186f44(_0x4af695){const _0x4a7786=_0x3c1663,_0x572522={'baseUrl':_0x4af695[_0x4a7786(0x248)]['baseUrl'],'endpointNode':typeof _0x4af695['options'][_0x4a7786(0x24d)]==='function'?_0x4af695['options'][_0x4a7786(0x24d)]():_0x4af695[_0x4a7786(0x248)][_0x4a7786(0x24d)],'endpoint':typeof _0x4af695['options'][_0x4a7786(0x201)]===_0x4a7786(0x183)?_0x4af695[_0x4a7786(0x248)][_0x4a7786(0x201)]():_0x4af695[_0x4a7786(0x248)][_0x4a7786(0x201)]};return _0x572522;}function _0x457d5e(_0x1a5aff,_0x1881e3){return _0x4365c6(this,void 0x0,void 0x0,function*(){const _0x2a17dc=_0x6b08;if(_0x1881e3[_0x2a17dc(0x1fc)](_0x2a17dc(0x1e3))){_0x1881e3[_0x2a17dc(0x19f)](_0x2a17dc(0x161))[_0x2a17dc(0x25b)](_0x2a17dc(0x1b3)),_0x1881e3[_0x2a17dc(0x152)]('ul')[_0x2a17dc(0x1e0)]();return;}const _0x23723a=_0x186f44(_0x1a5aff),_0x2abac3=!_0x1a5aff[_0x2a17dc(0x248)][_0x2a17dc(0x162)]?_0x340d22:_0x1c5550;try{yield _0x66d15b(_0x1a5aff,_0x1881e3,_0x2abac3,_0x23723a),_0x1881e3[_0x2a17dc(0x19f)](_0x2a17dc(0x161))['addClass'](_0x2a17dc(0x1b3));}catch(_0x17bbf8){_0x1881e3[_0x2a17dc(0x19f)](_0x2a17dc(0x161))['addClass'](_0x2a17dc(0x1b3)),console['log'](_0x2a17dc(0x16b),_0x17bbf8);}});}const _0x322ef2={'browseName':{'namespaceIndex':0x0,'name':_0x3c1663(0x235)},'nodeClass':_0x3c1663(0x1bc),'nodeId':_0x3c1663(0x15c),'displayName':{'text':_0x3c1663(0x235)},'typeDefinition':_0x2fd1ed},_0x252084=()=>{const _0x92f733=_0x3c1663;$[_0x92f733(0x205)](_0x92f733(0x1b5),{'options':{'endpointNode':()=>({'endpoint':'opc.tcp://opcuademo.sterfive.com:26543'}),'endpoint':()=>undefined,'parentNode':()=>_0x322ef2,'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x4365c6(this,void 0x0,void 0x0,function*(){const _0x16a669=_0x6b08,_0x1663b2=this;if(_0x1663b2[_0x16a669(0x16d)]==undefined){const _0x4f1f04=typeof _0x1663b2[_0x16a669(0x248)]['parentNode']==='function'?_0x1663b2[_0x16a669(0x248)]['parentNode'][_0x16a669(0x1d1)](_0x1663b2):_0x1663b2[_0x16a669(0x248)][_0x16a669(0x184)];if(_0x4f1f04 instanceof Promise){const _0x44ef0f=yield _0x4f1f04;_0x1663b2[_0x16a669(0x16d)]=_0x44ef0f;}else _0x1663b2[_0x16a669(0x16d)]=_0x4f1f04;}return _0x1663b2[_0x16a669(0x16d)]||_0x322ef2;});},'reset'(){return _0x4365c6(this,void 0x0,void 0x0,function*(){const _0x4c4cf5=_0x6b08,_0x3a1476=this,_0x12ff95=_0x3a1476;_0x12ff95[_0x4c4cf5(0x16d)]=undefined,_0x3a1476[_0x4c4cf5(0x268)][_0x4c4cf5(0x1d4)]();const _0x673a76=yield this[_0x4c4cf5(0x260)](),_0x5f162b=_0x593db1(_0x673a76);_0x3a1476[_0x4c4cf5(0x268)][_0x4c4cf5(0x186)](_0x5f162b),_0x3a1476[_0x4c4cf5(0x224)]=_0x673a76;});},'verify'(_0x1aa5a7){const _0x3c3a04=this,_0x4ff03b=_0x186f44(_0x3c3a04);_0x1e0dc8(_0x4ff03b,_0x1aa5a7,_0x3c3a04['$input'],_0x3c3a04['$info'])['then'](_0x3c50db=>{const _0x190711=_0x6b08;!_0x3c50db?_0x3c3a04[_0x190711(0x20f)][_0x190711(0x25b)]('input-error'):_0x3c3a04[_0x190711(0x20f)][_0x190711(0x19f)](_0x190711(0x151));});},'_hideMenu'(_0xd24752){const _0x816bf1=_0x92f733,_0x4194b6=this;$(document)[_0x816bf1(0x1a8)](_0x816bf1(0x1ac)),_0xd24752[_0x816bf1(0x154)](),_0xd24752[_0x816bf1(0x14f)]({'height':_0x816bf1(0x26b)});if(_0xd24752[_0x816bf1(0x1c1)][_0x816bf1(0x209)]){var _0x4ba918=[];_0xd24752['find'](_0x816bf1(0x1d9))[_0x816bf1(0x245)](function(){const _0x580960=_0x816bf1;$(this)[_0x580960(0x1dd)](_0x580960(0x229))&&_0x4ba918[_0x580960(0x1d8)]($(this)[_0x580960(0x24c)](_0x580960(0x23b)));}),_0xd24752[_0x816bf1(0x1ed)](_0x4ba918);}_0x4194b6[_0x816bf1(0x1d2)]['is'](_0x816bf1(0x198))?_0x4194b6[_0x816bf1(0x249)][_0x816bf1(0x188)](_0x816bf1(0x1af)):_0x4194b6[_0x816bf1(0x26a)]['trigger'](_0x816bf1(0x1af));},'_createMenu'(_0x439fc9,_0x44cf7f,_0x1c5e03){const _0x56ae3e=_0x92f733;var _0x113c54=this;const _0x32feef=$('<div>')[_0x56ae3e(0x25b)](_0x56ae3e(0x1a2));return _0x32feef[_0x56ae3e(0x1c1)]=_0x44cf7f,_0x32feef[_0x56ae3e(0x1ed)]=_0x1c5e03,_0x439fc9[_0x56ae3e(0x231)](_0x45fa54=>{const _0x1b2198=_0x56ae3e;typeof _0x45fa54===_0x1b2198(0x172)&&(_0x45fa54={'value':_0x45fa54,'label':_0x45fa54});var _0x2a3dd1=$(_0x1b2198(0x177))[_0x1b2198(0x1c2)](_0x1b2198(0x23b),_0x45fa54['value'])[_0x1b2198(0x218)](_0x32feef);_0x45fa54[_0x1b2198(0x228)]&&_0x2a3dd1['text'](_0x45fa54['label']);_0x45fa54[_0x1b2198(0x233)]&&_0x2a3dd1[_0x1b2198(0x1dd)](_0x1b2198(0x233),_0x45fa54[_0x1b2198(0x233)]);if(_0x45fa54[_0x1b2198(0x1de)]){if(_0x45fa54[_0x1b2198(0x1de)][_0x1b2198(0x269)]('<')===0x0)$(_0x45fa54[_0x1b2198(0x1de)])[_0x1b2198(0x1e4)](_0x2a3dd1);else _0x45fa54[_0x1b2198(0x1de)][_0x1b2198(0x269)]('/')!==-0x1?$('<i>',{'class':'red-ui-typedInput-icon','style':_0x1b2198(0x232)+_0x45fa54[_0x1b2198(0x1de)]+_0x1b2198(0x22d)+_0x45fa54[_0x1b2198(0x1de)]+');'})[_0x1b2198(0x1e4)](_0x2a3dd1):$(_0x1b2198(0x1ef),{'class':_0x1b2198(0x1e2)+_0x45fa54[_0x1b2198(0x1de)]})[_0x1b2198(0x1e4)](_0x2a3dd1);}else _0x2a3dd1[_0x1b2198(0x14f)]({'paddingLeft':'18px'});!_0x45fa54[_0x1b2198(0x1de)]&&!_0x45fa54[_0x1b2198(0x228)]&&_0x2a3dd1[_0x1b2198(0x204)](_0x45fa54['value']);var _0x45fdf9;_0x44cf7f[_0x1b2198(0x209)]&&(_0x45fdf9=$(_0x1b2198(0x1c4))[_0x1b2198(0x14f)]('pointer-events',_0x1b2198(0x263))[_0x1b2198(0x24c)](_0x1b2198(0x23b),_0x45fa54[_0x1b2198(0x23b)])[_0x1b2198(0x1e4)](_0x2a3dd1)['on']('mousedown',function(_0x37b109){const _0x486aad=_0x1b2198;_0x37b109[_0x486aad(0x191)]();})),_0x2a3dd1['on'](_0x1b2198(0x202),function(_0x547a19){const _0x17688d=_0x1b2198;_0x547a19['preventDefault'](),_0x547a19[_0x17688d(0x23c)](),!_0x44cf7f[_0x17688d(0x209)]?(_0x1c5e03(_0x45fa54[_0x17688d(0x23b)]),_0x113c54[_0x17688d(0x155)](_0x32feef)):_0x45fdf9[_0x17688d(0x1dd)](_0x17688d(0x229),!_0x45fdf9[_0x17688d(0x1dd)](_0x17688d(0x229)));});}),_0x32feef['css']({'display':_0x56ae3e(0x263)}),_0x32feef['on'](_0x56ae3e(0x24a),function(_0x9eb457){const _0x5aed32=_0x56ae3e;if(_0x9eb457[_0x5aed32(0x1f8)]===0x28)_0x9eb457['preventDefault'](),$(this)[_0x5aed32(0x152)](_0x5aed32(0x212))[_0x5aed32(0x1e9)]()[_0x5aed32(0x188)](_0x5aed32(0x1af));else{if(_0x9eb457[_0x5aed32(0x1f8)]===0x26)_0x9eb457[_0x5aed32(0x191)](),$(this)[_0x5aed32(0x152)](_0x5aed32(0x212))['prev']()['trigger'](_0x5aed32(0x1af));else _0x9eb457['keyCode']===0x1b&&(_0x9eb457[_0x5aed32(0x191)](),_0x113c54['_hideMenu'](_0x32feef));}_0x9eb457[_0x5aed32(0x23c)]();}),_0x32feef;},'disarmClick':![],'_showMenu'(_0xe62033,_0x5383f4){const _0x4cd4b6=_0x92f733;if(this[_0x4cd4b6(0x199)]){this['disarmClick']=![];return;}var _0x1a5072=this,_0x3c3f3e=_0x5383f4[_0x4cd4b6(0x25a)](),_0x1771c5=_0x5383f4[_0x4cd4b6(0x1db)](),_0x210159=_0xe62033[_0x4cd4b6(0x1db)](),_0x581457=_0x1771c5+_0x3c3f3e[_0x4cd4b6(0x153)];_0x581457+_0x210159-$(document)['scrollTop']()>$(window)['height']()&&(_0x581457-=_0x581457+_0x210159-$(window)['height']()+0x5),_0x581457<0x0&&(_0xe62033[_0x4cd4b6(0x1db)](_0x210159+_0x581457),_0x581457=0x0),_0xe62033[_0x4cd4b6(0x14f)]({'top':_0x581457+'px','left':_0x3c3f3e[_0x4cd4b6(0x24e)]+'px'}),_0xe62033[_0x4cd4b6(0x241)](0x64),this[_0x4cd4b6(0x1c9)](function(){const _0x4c760e=_0x4cd4b6;_0x1a5072[_0x4c760e(0x259)]['addClass'](_0x4c760e(0x26e)),$(document)['on']('mousedown.red-ui-typedInput-close-property-select',function(_0x2e745){const _0x1234cd=_0x4c760e;!$(_0x2e745['target'])[_0x1234cd(0x1c8)](_0xe62033)[_0x1234cd(0x25f)]&&_0x1a5072[_0x1234cd(0x155)](_0xe62033),$(_0x2e745['target'])[_0x1234cd(0x1c8)](_0x5383f4)[_0x1234cd(0x25f)]&&(_0x1a5072[_0x1234cd(0x199)]=!![],_0x2e745[_0x1234cd(0x191)]());});});},'_showTypeMenu'(){const _0x2f88ea=_0x92f733,_0x5853c5=this;this[_0x2f88ea(0x20b)](_0x5853c5['$menu'],_0x5853c5['$combo']),_0x5853c5['$dropdown'][_0x2f88ea(0x154)]();const _0x11271d=_0x5853c5[_0x2f88ea(0x175)];var _0x22cfbe=_0x5853c5[_0x2f88ea(0x1b8)][_0x2f88ea(0x19e)]('[value=\x27'+_0x11271d+'\x27');setTimeout(function(){const _0x3b31d4=_0x2f88ea;_0x22cfbe[_0x3b31d4(0x188)](_0x3b31d4(0x1af));},0x78);},'_initMenu'(){const _0x53838b=_0x92f733,_0x5b51b6=this;_0x5b51b6['$selectTrigger']['attr'](_0x53838b(0x1e5),-0x1),_0x5b51b6[_0x53838b(0x26a)]['on'](_0x53838b(0x242),function(_0x4cf594){const _0x2d90da=_0x53838b;_0x4cf594[_0x2d90da(0x191)]();});_0x5b51b6[_0x53838b(0x1b8)]&&_0x5b51b6[_0x53838b(0x1b8)]['remove']();const _0x357ab6=[{'label':_0x53838b(0x204),'value':'t','title':_0x53838b(0x18c),'icon':_0x53838b(0x244)},{'label':'msg.','value':'msg','title':_0x53838b(0x166),'icon':_0x53838b(0x25e)},{'label':_0x53838b(0x22e),'value':'n','icon':_0x53838b(0x190)},{'label':_0x53838b(0x22f),'value':'na','icon':_0x53838b(0x158)},{'label':'NodeId\x20with\x20namespace\x20Urn','value':'nsu','icon':'<i\x20class=\x22fa\x20fa-id-card\x22/>&nbsp;\x20'},{'label':'BrowsePath','value':'b','icon':'<i\x20class=\x22fa\x20fa-tag\x22/><i\x20class=\x22fa\x20fa-fighter-jet\x22/>&nbsp;'},{'label':_0x53838b(0x197),'value':'ab','icon':'<i\x20class=\x22fa\x20fa-bookmark\x22/><i\x20class=\x22fa\x20fa-fighter-jet\x22/>&nbsp;'}],_0x72e8a3=_0x4955fe(_0x5b51b6[_0x53838b(0x249)][_0x53838b(0x1fb)]()),_0x18b3ea=_0x357ab6[_0x53838b(0x19e)](_0x1f2482=>_0x1f2482[_0x53838b(0x23b)]===_0x72e8a3);_0x5b51b6['$selectLabel'][_0x53838b(0x1d4)]()['append']('<span\x20title='+((_0x18b3ea===null||_0x18b3ea===void 0x0?void 0x0:_0x18b3ea[_0x53838b(0x233)])||'')+'>&nbsp;\x20'+((_0x18b3ea===null||_0x18b3ea===void 0x0?void 0x0:_0x18b3ea[_0x53838b(0x1de)])||'')+_0x53838b(0x181)),_0x5b51b6['selectedMenuItem']=_0x72e8a3;const _0x3deff9=this;_0x5b51b6[_0x53838b(0x1b8)]=this[_0x53838b(0x21c)](_0x357ab6,{},_0x3e2d36=>{const _0x2931d7=_0x53838b,_0x418f8d=_0x421512(_0x3e2d36);_0x418f8d&&_0x3deff9[_0x2931d7(0x265)](_0x418f8d);const _0x3ae4de=_0x357ab6[_0x2931d7(0x19e)](_0x1ad6db=>_0x1ad6db[_0x2931d7(0x23b)]===_0x3e2d36);_0x5b51b6[_0x2931d7(0x175)]=_0x3e2d36,_0x5b51b6['$selectLabel']['empty']()['append'](_0x2931d7(0x21a)+((_0x3ae4de===null||_0x3ae4de===void 0x0?void 0x0:_0x3ae4de[_0x2931d7(0x233)])||'')+_0x2931d7(0x15e)+((_0x3ae4de===null||_0x3ae4de===void 0x0?void 0x0:_0x3ae4de[_0x2931d7(0x1de)])||'')+_0x2931d7(0x181));}),_0x5b51b6[_0x53838b(0x1b8)][_0x53838b(0x218)](document[_0x53838b(0x1f6)]),_0x5b51b6['$menu'][_0x53838b(0x154)](),_0x5b51b6[_0x53838b(0x26a)][_0x53838b(0x180)]();},'mode'(){const _0x28e5bc=_0x92f733,_0x29710e=this;return _0x421512(_0x29710e[_0x28e5bc(0x175)]);},'setMode'(_0x17e34c){const _0x3bf250=_0x92f733,_0x4202fd=this,_0x44f28f=_0x14a976(_0x17e34c);_0x4202fd[_0x3bf250(0x175)]=_0x44f28f;},'_create'(){const _0x415b31=_0x92f733,_0x180a29=this;_0x180a29['$input']=this[_0x415b31(0x1a9)],_0x180a29[_0x415b31(0x249)][_0x415b31(0x14f)](_0x415b31(0x178),_0x415b31(0x263)),_0x180a29['$elementDiv']=_0x180a29[_0x415b31(0x249)][_0x415b31(0x230)](_0x415b31(0x247))[_0x415b31(0x182)]()[_0x415b31(0x25b)]('main-wrapper'),_0x180a29[_0x415b31(0x20f)]=$('<div/>'),_0x180a29[_0x415b31(0x20f)][_0x415b31(0x25b)]('sterfive-combo-box'),_0x180a29['$input'][_0x415b31(0x193)](_0x180a29[_0x415b31(0x20f)]),_0x180a29['$inputGroup']=$(_0x415b31(0x217))[_0x415b31(0x25b)](_0x415b31(0x238)),_0x180a29[_0x415b31(0x20f)]['append'](_0x180a29['$inputGroup']),_0x180a29['$inputGroup'][_0x415b31(0x186)](_0x180a29[_0x415b31(0x249)]),_0x180a29[_0x415b31(0x1be)]=$(_0x415b31(0x17a)),_0x180a29[_0x415b31(0x249)]['after'](_0x180a29[_0x415b31(0x1be)]),_0x180a29[_0x415b31(0x1be)]['on']('click',function(){return _0x4365c6(this,void 0x0,void 0x0,function*(){const _0x794dcd=_0x6b08;var _0xfc18e7;let _0x340b74=![],_0xe1332e;!_0x180a29[_0x794dcd(0x1d0)]['is'](_0x794dcd(0x198))&&(_0x180a29[_0x794dcd(0x1cc)][_0x794dcd(0x154)](),_0xe1332e=yield _0x180a29[_0x794dcd(0x260)](),(_0xe1332e!==_0x180a29[_0x794dcd(0x224)]||((_0xfc18e7=_0x180a29['currentParent'])===null||_0xfc18e7===void 0x0?void 0x0:_0xfc18e7[_0x794dcd(0x176)])!==_0xe1332e[_0x794dcd(0x176)])&&(yield _0x180a29['reset']()),_0x340b74=!![]),_0x180a29[_0x794dcd(0x1d0)][_0x794dcd(0x1e0)](),_0x340b74&&(yield _0x4221cc(_0x180a29,_0xe1332e));});}),_0x180a29[_0x415b31(0x237)]=$(_0x415b31(0x1ba)),_0x180a29['$input'][_0x415b31(0x17b)](_0x180a29[_0x415b31(0x237)]),_0x180a29['$verifyBtn']['on'](_0x415b31(0x202),()=>{const _0xa14ba5=_0x415b31,_0xec1c08=_0x180a29[_0xa14ba5(0x17d)]();if(!_0xec1c08)return;this['verify'](_0xec1c08);});const _0x293194=_0x4365df=>_0x4365c6(this,void 0x0,void 0x0,function*(){const _0x4488de=_0x415b31,_0x305948=this;let _0x3a600a=_0x305948[_0x4488de(0x17d)]();if(!_0x3a600a)return;const _0x4ff1e1=_0x186f44(_0x305948),{data:_0x3e0056,json:_0x3e02ec}=yield _0x4478f3(_0x4ff1e1,_0x4365df);if(_0x3e0056[_0x4488de(0x1b6)]!==0xc8)return;if(_0x3e02ec[_0x4488de(0x21d)]['match'](/Good/)){const _0x2dfb8f=_0x30a858(_0x3e02ec,_0x3a600a);_0x305948[_0x4488de(0x249)][_0x4488de(0x1fb)](_0x2dfb8f),_0x305948[_0x4488de(0x249)]['trigger'](_0x4488de(0x1fd));}});{_0x180a29[_0x415b31(0x259)]=$(_0x415b31(0x247)),_0x180a29['$input'][_0x415b31(0x26f)](_0x180a29['$uiSelect']),_0x180a29[_0x415b31(0x26a)]=$(_0x415b31(0x200))[_0x415b31(0x1e4)](_0x180a29[_0x415b31(0x259)]),$(_0x415b31(0x1e6))[_0x415b31(0x1e0)](!![])[_0x415b31(0x218)](_0x180a29[_0x415b31(0x26a)]),_0x180a29[_0x415b31(0x26a)]['on']('click',function(_0x118d63){const _0x306eb3=_0x415b31;_0x118d63[_0x306eb3(0x191)](),_0x118d63[_0x306eb3(0x23c)](),_0x180a29['_showTypeMenu']();}),_0x180a29[_0x415b31(0x26a)]['on'](_0x415b31(0x24a),function(_0x301481){const _0x1226a5=_0x415b31;_0x301481[_0x1226a5(0x1f8)]===0x28&&_0x180a29[_0x1226a5(0x206)](),_0x301481[_0x1226a5(0x23c)]();})['on'](_0x415b31(0x1af),function(){const _0x59904a=_0x415b31;_0x180a29['$uiSelect'][_0x59904a(0x25b)](_0x59904a(0x26e));})['on'](_0x415b31(0x1ca),function(){const _0x53c9c6=_0x415b31;_0x180a29[_0x53c9c6(0x259)][_0x53c9c6(0x19f)](_0x53c9c6(0x26e));}),_0x180a29[_0x415b31(0x15a)]=$(_0x415b31(0x25d))[_0x415b31(0x218)](_0x180a29[_0x415b31(0x26a)]);}this[_0x415b31(0x19a)]();!_0x180a29['$input'][_0x415b31(0x1c2)](_0x415b31(0x22b))&&_0x180a29[_0x415b31(0x249)][_0x415b31(0x1c2)](_0x415b31(0x22b),_0x415b31(0x189));_0x180a29[_0x415b31(0x1cc)]=$(_0x415b31(0x168)),_0x180a29['$info'][_0x415b31(0x154)](),_0x180a29[_0x415b31(0x20f)]['append'](_0x180a29[_0x415b31(0x1cc)]),_0x180a29[_0x415b31(0x1d0)]=$(_0x415b31(0x217))['addClass']('sterfive-dropdown')[_0x415b31(0x154)]()['appendTo'](_0x180a29['$combo']),_0x180a29[_0x415b31(0x268)]=$(_0x415b31(0x216))[_0x415b31(0x218)](_0x180a29[_0x415b31(0x1d0)]),this[_0x415b31(0x234)]();const _0x15bbd2=(_0x4b47c3,_0x10dd32)=>{const _0x4689b5=_0x415b31,_0x5c4aad=0x14,_0x3b1b8a=0x14,_0x6baa07=_0x4b47c3['offset'](),_0x46b3aa=_0x10dd32;if(_0x46b3aa[_0x4689b5(0x1b0)]>=_0x6baa07[_0x4689b5(0x24e)]&&_0x46b3aa[_0x4689b5(0x1b0)]<=_0x6baa07[_0x4689b5(0x24e)]+_0x5c4aad&&_0x46b3aa[_0x4689b5(0x1b1)]>=_0x6baa07[_0x4689b5(0x153)]&&_0x46b3aa['pageY']<=_0x6baa07[_0x4689b5(0x153)]+_0x3b1b8a)return!![];return![];},_0x66233f=_0x3bdcef=>_0x4365c6(this,void 0x0,void 0x0,function*(){const _0x560528=_0x415b31;if(_0x3bdcef[_0x560528(0x1fc)](_0x560528(0x161)))_0x457d5e(_0x180a29,_0x3bdcef);else{if(_0x3bdcef[_0x560528(0x1fc)](_0x560528(0x1b3)))_0x3bdcef[_0x560528(0x152)]('ul')['toggle'](),_0x3bdcef[_0x560528(0x262)]('expandable\x20expanded');else{if(_0x3bdcef[_0x560528(0x152)]('ul')[_0x560528(0x152)]()['length']>0x0)_0x3bdcef['children']('ul')[_0x560528(0x1e0)](),_0x3bdcef['toggleClass']('expandable\x20expanded');else;}}});_0x180a29[_0x415b31(0x268)]['on'](_0x415b31(0x20d),'li',function(_0x1fa2e0){const _0x2325ea=_0x415b31;var _0x2772b0,_0x1f31b2;_0x1fa2e0[_0x2325ea(0x23c)]();let _0x3e9ee2=$(this);if(_0x15bbd2(_0x3e9ee2,_0x1fa2e0))_0x66233f(_0x3e9ee2);else{const _0x768168=_0x3e9ee2[_0x2325ea(0x24c)](_0x2325ea(0x23b)),_0x32a7e3=_0x3e9ee2[_0x2325ea(0x24c)](_0x2325ea(0x255));if(_0x180a29[_0x2325ea(0x248)][_0x2325ea(0x1a5)]&&!_0x180a29['options'][_0x2325ea(0x1a5)](_0x32a7e3))return;_0x180a29['$input'][_0x2325ea(0x24c)]('reference',_0x32a7e3),((_0x2772b0=_0x32a7e3['displayName'])===null||_0x2772b0===void 0x0?void 0x0:_0x2772b0['text'])||((_0x1f31b2=_0x32a7e3[_0x2325ea(0x1a1)])===null||_0x1f31b2===void 0x0?void 0x0:_0x1f31b2['name'])||_0x32a7e3['nodeId']['toString']();let _0x29b248=_0x180a29[_0x2325ea(0x17d)]();!_0x29b248&&(_0x29b248=_0x2325ea(0x176),_0x180a29['setMode'](_0x29b248)),_0x293194(_0x768168)[_0x2325ea(0x194)](()=>{const _0x3f5dd3=_0x2325ea;_0x180a29[_0x3f5dd3(0x1d0)]['hide']();})[_0x2325ea(0x1a0)](_0x582606=>{const _0x444726=_0x2325ea;_0x180a29[_0x444726(0x1d0)]['hide']();});}}),_0x180a29['$tree']['on'](_0x415b31(0x202),'li',function(_0x1e1d07){const _0x5c95ca=_0x415b31;_0x1e1d07[_0x5c95ca(0x23c)]();let _0x192ae7=$(this);_0x15bbd2(_0x192ae7,_0x1e1d07)&&_0x66233f(_0x192ae7),_0x560ee0(_0x180a29,_0x192ae7);}),$(document)['on'](_0x415b31(0x202),function(_0x150e27){const _0x39afd1=_0x415b31;!$(_0x150e27[_0x39afd1(0x222)])[_0x39afd1(0x1c8)](_0x180a29['$combo'])[_0x39afd1(0x25f)]&&_0x180a29[_0x39afd1(0x1d0)][_0x39afd1(0x154)]();});}});},_0x2c4b06=()=>{const _0x2e2416=_0x3c1663,_0x43bbd7=$(_0x2e2416(0x1f3)),_0x119390=_0x43bbd7[_0x2e2416(0x1fb)](),_0x38ab47=RED[_0x2e2416(0x210)][_0x2e2416(0x187)](_0x119390);if(!_0x38ab47)return undefined;const {endpoint:_0x571c10,securityMode:_0x146248,securityPolicy:_0x2bde34,userIdentityType:_0x4737c4,credentials:_0x320088,namespaceAliases:_0x4306d5}=_0x38ab47,_0x299c44={'endpoint':_0x571c10,'securityMode':_0x146248,'securityPolicy':_0x2bde34,'userIdentityType':_0x4737c4,'credentials':_0x320088,'namespaceAliases':_0x4306d5};return _0x299c44;},_0x5659a9=()=>{const _0x40c37d=_0x3c1663,_0x776674=$('#node-input-endpoint'),_0x23473c=_0x776674[_0x40c37d(0x1fb)](),_0x410c55=_0x2c4b06();if(!_0x410c55)return undefined;const _0x416d53=_0x410c55[_0x40c37d(0x207)];return Object[_0x40c37d(0x1f0)]({'namespaceAliases':_0x416d53,'id':_0x23473c},_0x410c55);},_0x5d51fa=()=>{return{'endpointNode':_0x5659a9};},_0x25180e=()=>{const _0x9fd6a9=_0x3c1663,_0x1a6369=$(_0x9fd6a9(0x1ce));console['log'](_0x9fd6a9(0x1d7),_0x1a6369[_0x9fd6a9(0x25f)]);if(_0x1a6369[_0x9fd6a9(0x25f)]){console[_0x9fd6a9(0x1f5)]('installing\x20iframe');const _0x65be2c=$(_0x9fd6a9(0x195),{'src':_0x9fd6a9(0x1b7),'scrolling':'no','style':'background-color:transparent;overflow:hidden;border:3px','allowtransparency':_0x9fd6a9(0x267),'width':_0x9fd6a9(0x1eb),'height':_0x9fd6a9(0x211)});_0x1a6369[_0x9fd6a9(0x186)](_0x65be2c),_0x65be2c['css']({'position':_0x9fd6a9(0x23e),'right':_0x9fd6a9(0x17c),'bottom':_0x9fd6a9(0x156)});}};RED[_0x3c1663(0x210)][_0x3c1663(0x239)](_0x3c1663(0x19c),{'category':_0x3c1663(0x208),'color':_0x3c1663(0x256),'align':_0x3c1663(0x1cb),'icon':_0x3c1663(0x1bf),'paletteLabel':_0x3c1663(0x24b),'defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':_0x3c1663(0x22a)},'attributeId':{'value':'Value','required':!![]},'nodeId':{'value':'','required':![]}},'inputs':0x1,'outputs':0x1,'label'(){const _0x62a8da=_0x3c1663;return this[_0x62a8da(0x266)]||_0x62a8da(0x1b9);},'labelStyle'(){const _0x296eee=_0x3c1663;return this[_0x296eee(0x266)]?_0x296eee(0x254):'';},'oneditprepare'(){const _0x354551=_0x3c1663,_0x9b79ca=this;_0x252084(),_0x25180e(),_0x9b79ca['inputs']=0x1;const _0x48ee89=$('#node-input-nodeId');_0x48ee89[_0x354551(0x1ff)](Object['assign'](Object[_0x354551(0x1f0)]({},_0x5d51fa()),{'isSelectable'(_0x26da25){const _0xeace8=_0x354551;return _0x26da25[_0xeace8(0x227)]===_0xeace8(0x18d);}}));},'oneditsave'(){}});}()));
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHg0MzY1YzYiLCJfMHgxZDY5NDciLCJfMHgzYWFjMTMiLCJfMHg0NzAxMjUiLCJfMHg0NTQ4MWEiLCJfMHgzOTA0ZGQiLCJfMHgxNjIxYmIiLCJfMHg0NDU5MzIiLCJQcm9taXNlIiwiXzB4MTZlMWIwIiwiXzB4MTNjYjM3IiwiXzB4NDE4ZjIwIiwiXzB4M2RlMjI1IiwiXzB4MTZiYWY5IiwiXzB4MThlYWU3IiwiXzB4NDViN2M3IiwiXzB4NDA0MmNkIiwiXzB4NWQ0MDFlIiwiXzB4MjAwOTk4IiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4MjY4ZjY1IiwiXzB4M2NmMDUzIiwiXzB4M2M2N2ZhIiwiXzB4MTNjYWYwIiwiRXJyb3IiLCJfMHg0ZDQ4MDEiLCJfMHgyZmQxZWQiLCJfMHgxMmM3NzQiLCJfMHg1MjUyNTIiLCJfMHgxZmY4MjAiLCJfMHgzYzk5NTAiLCJfMHgyYTZlOWYiLCJfMHgyOTExMCIsIl8weDQ5ZWY0ZSIsIl8weDU3YzQzNSIsIl8weDIyM2M1MiIsIl8weDE0NDllMiIsIl8weDUzMTBiOSIsIl8weDI0ZTA2OSIsIl8weDQxYzkyMCIsIl8weDk0NDU3NyIsIl8weDI4MTc4OCIsIl8weDI3MjNjMiIsIl8weDUyMmIyYSIsIl8weDJlZDEwNiIsIl8weGIyMzY1YSIsIl8weDMzNGZmNyIsIl8weDVlMDI3NiIsImVuZHBvaW50Tm9kZSIsIl8weDViNDBjYSIsImVuZHBvaW50IiwiXzB4M2U3MjdhIiwiYmFzZVVybCIsIl8weDJlMmIwOCIsIl8weDIxMjQ5YyIsIl8weDE5YjA2OSIsIl8weDE4OTc2YyIsIl8weDJjZDFjNyIsIl8weDQ0YzhiMSIsIk9iamVjdCIsIl8weDNlYmEwOSIsImZldGNoIiwiSlNPTiIsImNvbnNvbGUiLCJfMHgzZDU4ZjEiLCJfMHgxMzE4Y2MiLCJfMHgyYmQwMTkiLCJfMHgxOTBhN2IiLCJfMHgxYWU5NjEiLCJfMHhhOTgwM2IiLCJfMHg0NGMyNWUiLCJfMHhhNzhlNDkiLCJfMHgyYjlhMTUiLCJfMHg1MmU3OTgiLCJub2RlSWQiLCJfMHg4NmJkMWYiLCJyb290Tm9kZUlkIiwiXzB4NWVhZDdmIiwiaXNUeXBlIiwiXzB4NWEzMjg0IiwiXzB4MTI3NWNhIiwiXzB4ZWU2Yjk2IiwiXzB4M2FmYWE2IiwiXzB4MzBjMjdlIiwiXzB4MzBhODU4IiwiXzB4NDNmNGE4IiwiXzB4NWI2NmMzIiwiXzB4Mzg5Y2NkIiwiXzB4NDU1YjcxIiwiXzB4NDk0NWI5IiwiXzB4MmFkM2MwIiwiXzB4NDZhZDg4IiwiXzB4NDk1NWZlIiwiXzB4MjZlMmQ0IiwiXzB4NGY5ZDFlIiwiXzB4NDIxNTEyIiwiXzB4NDM3YmJmIiwiXzB4MWYzNzc4IiwiXzB4MTRhOTc2IiwiXzB4NTM1Y2I5IiwiXzB4NDQ3OGYzIiwiXzB4ZjJjYjRiIiwiXzB4MmYzYTEyIiwiXzB4MjUyODBiIiwiXzB4OGFlZGEzIiwiXzB4MzQxNjVkIiwiXzB4MWM2NzI4IiwiXzB4NGNhYjhjIiwiXzB4MWI1ZDc0IiwiXzB4MjQzMDc5IiwiXzB4NGI4NjNhIiwiUkVEIiwiXzB4NGEwNzc3IiwiXzB4NTNmZjZhIiwiXzB4NGExMmE1IiwiXzB4MWUwZGM4IiwiXzB4NTE2YjJkIiwiXzB4NTQ1MGU0IiwiXzB4ZjhhNDYzIiwiXzB4NGJkOGRmIiwiXzB4NDdkZjU0IiwiXzB4MjFmYmM2IiwiXzB4NWJjYjE3IiwiXzB4MWYzOTRlIiwiXzB4MzU3ZTQzIiwiXzB4MTY5Zjk3IiwiXzB4MzFmZDAyIiwianNvbiIsIl8weDVkMGNjZiIsImRhdGEiLCJfMHgxMjcxNDAiLCJfMHg1ZDliZWIiLCJfMHgzMGFkMTAiLCJfMHgxOTJkMmMiLCJzZXRUaW1lb3V0IiwiXzB4MzdiOTAzIiwiXzB4MzEzNTNmIiwiXzB4MzQwZDIyIiwiXzB4ODBhNDZmIiwiXzB4MjA2ZDEwIiwiXzB4YjcxNjhmIiwiXzB4MmUyZGU5IiwiXzB4MWVkMDcyIiwiXzB4NTMyN2Q3IiwiXzB4MWM1NTUwIiwiXzB4Y2NkYmQ4IiwiXzB4MTdkYzVhIiwiXzB4NDdlOTY4IiwiXzB4YTYxZTEzIiwiXzB4NTkzZGIxIiwiXzB4MmNlODhmIiwiXzB4NmQ1ZDY2IiwiXzB4MzVlZmQ3IiwiXzB4MjhkOTY3IiwiXzB4NDRiMDczIiwiXzB4Mzc0OWY1IiwiJCIsIl8weDI0ZWI4ZiIsIl8weDE3ZTVjMyIsImljb24iLCJfMHgyZGFkZWEiLCJjb2xvciIsIl8weDM4MTZkNSIsIl8weDE1NjY5MiIsIl8weDI2ZTExNSIsIl8weDQ1MmUyMSIsIl8weDVhMDg0NyIsIl8weDM5OGIxMyIsIl8weDU2MGVlMCIsIl8weDU1NWFlMCIsIl8weDE3ZGRjMSIsIl8weDI0MmY2OSIsIl8weDRmMmM4NyIsIl8weDVlMzU4NiIsIl8weDIyODAzNCIsIl8weDE3OTNhZiIsIl8weDNiY2IzYiIsIl8weDFlNjRiNyIsIl8weDQ1N2Q1ZSIsIl8weDVhM2NkMiIsIl8weDQyZWRhYSIsIl8weDJkODk1MyIsIl8weDU3OWM2OCIsIl8weDUyZmQ3YSIsIl8weDU5ZDdhMiIsInVuZGVmaW5lZCIsIl8weDRmYjA4ZCIsIl8weDQyMjFjYyIsIl8weDM3MTA5YSIsIl8weGE5MzdlMyIsIl8weDEwOTU0MSIsIl8weDUwMjZmYSIsIl8weDQ3YjhmZiIsIl8weDE4NmY0NCIsIl8weDNiODdjYSIsIl8weDY2ZDE1YiIsIl8weDQwODBjOCIsIl8weDJhMTRlMSIsIl8weDI4YTNkMyIsIl8weDQwM2EwMSIsInJlZmVyZW5jZXMiLCJfMHg0NDg5OGIiLCJfMHgxNGYyMzYiLCJfMHgzMWEwMWIiLCJfMHgxYjgyZGIiLCJfMHgxYTE1ZjUiLCJfMHgyOWM0MTMiLCJfMHgyZDdlYmYiLCJfMHg1YTk4MDIiLCJfMHg0YWY2OTUiLCJfMHg1NzI1MjIiLCJfMHgxYTVhZmYiLCJfMHgxODgxZTMiLCJfMHgyMzcyM2EiLCJfMHgyYWJhYzMiLCJfMHgxN2JiZjgiLCJfMHgzMjJlZjIiLCJfMHgyNTIwODQiLCJfMHgxNjYzYjIiLCJfMHg0ZjFmMDQiLCJfMHg0NGVmMGYiLCJfMHgzYTE0NzYiLCJfMHgxMmZmOTUiLCJfMHg2NzNhNzYiLCJfMHg1ZjE2MmIiLCJfMHgxYWE1YTciLCJfMHgzYzNhMDQiLCJfMHg0ZmYwM2IiLCJfMHgzYzUwZGIiLCJfMHhkMjQ3NTIiLCJfMHg0MTk0YjYiLCJkb2N1bWVudCIsIl8weDRiYTkxOCIsIl8weDQzOWZjOSIsIl8weDQ0Y2Y3ZiIsIl8weDFjNWUwMyIsIl8weDExM2M1NCIsIl8weDMyZmVlZiIsIl8weDQ1ZmE1NCIsIl8weDJhM2RkMSIsIl8weDQ1ZmRmOSIsIl8weDM3YjEwOSIsIl8weDU0N2ExOSIsIl8weDllYjQ1NyIsIl8weGU2MjAzMyIsIl8weDUzODNmNCIsIl8weDFhNTA3MiIsIl8weDNjM2YzZSIsIl8weDE3NzFjNSIsIl8weDIxMDE1OSIsIl8weDU4MTQ1NyIsIndpbmRvdyIsIl8weDJlNzQ1IiwiXzB4NTg1M2M1IiwiXzB4MTEyNzFkIiwiXzB4MjJjZmJlIiwiXzB4NWI1MWI2IiwiXzB4NGNmNTk0IiwiXzB4MzU3YWI2IiwiXzB4NzJlOGEzIiwiXzB4MThiM2VhIiwiXzB4MWYyNDgyIiwiXzB4M2RlZmY5IiwiXzB4M2UyZDM2IiwiXzB4NDE4ZjhkIiwiXzB4M2FlNGRlIiwiXzB4MWFkNmRiIiwiXzB4Mjk3MTBlIiwiXzB4MTdlMzRjIiwiXzB4NDIwMmZkIiwiXzB4NDRmMjhmIiwiXzB4MTgwYTI5IiwiXzB4ZmMxOGU3IiwiXzB4MzQwYjc0IiwiXzB4ZTEzMzJlIiwiXzB4ZWMxYzA4IiwiXzB4MjkzMTk0IiwiXzB4NDM2NWRmIiwiXzB4MzA1OTQ4IiwiXzB4M2E2MDBhIiwiXzB4NGZmMWUxIiwiXzB4M2UwMDU2IiwiXzB4M2UwMmVjIiwiXzB4MmRmYjhmIiwiXzB4MTE4ZDYzIiwiXzB4MzAxNDgxIiwiXzB4MTViYmQyIiwiXzB4NGI0N2MzIiwiXzB4MTBkZDMyIiwiXzB4NWM0YWFkIiwiXzB4M2IxYjhhIiwiXzB4NmJhYTA3IiwiXzB4NDZiM2FhIiwiXzB4NjYyMzNmIiwiXzB4M2JkY2VmIiwiXzB4MWZhMmUwIiwiXzB4Mjc3MmIwIiwiXzB4MWYzMWIyIiwiXzB4M2U5ZWUyIiwiXzB4NzY4MTY4IiwiXzB4MzJhN2UzIiwiXzB4MjliMjQ4IiwiXzB4NTgyNjA2IiwiXzB4MWUxZDA3IiwiXzB4MTkyYWU3IiwiXzB4MTUwZTI3IiwiXzB4MmM0YjA2IiwiXzB4NDNiYmQ3IiwiXzB4MTE5MzkwIiwiXzB4MzhhYjQ3IiwiXzB4NTcxYzEwIiwic2VjdXJpdHlNb2RlIiwiXzB4MTQ2MjQ4Iiwic2VjdXJpdHlQb2xpY3kiLCJfMHgyYmRlMzQiLCJ1c2VySWRlbnRpdHlUeXBlIiwiXzB4NDczN2M0IiwiY3JlZGVudGlhbHMiLCJfMHgzMjAwODgiLCJuYW1lc3BhY2VBbGlhc2VzIiwiXzB4NDMwNmQ1IiwiXzB4Mjk5YzQ0IiwiXzB4NTY1OWE5IiwiXzB4Nzc2Njc0IiwiXzB4MjM0NzNjIiwiXzB4NDEwYzU1IiwiXzB4NDE2ZDUzIiwiXzB4NWQ1MWZhIiwiXzB4MjUxODBlIiwiXzB4MWE2MzY5IiwiXzB4NjViZTJjIiwiXzB4OWI3OWNhIiwiXzB4NDhlZTg5IiwiXzB4MjZkYTI1Il0sIm1hcHBpbmdzIjoiNjNLQUFBLENBQUMsVSxDQUNHLGEsd0JBbUJBLFNBQVNBLFNBQVQsQ0FBbUJDLFNBQW5CLENBQTRCQyxTQUE1QixDQUF3Q0MsU0FBeEMsQ0FBMkNDLFNBQTNDLEMsQ0FDSSxTQUFTQyxTQUFULENBQWVDLFNBQWYsQyxRQUErQkEsU0FBQSxZQUFpQkgsU0FBakIsQ0FBcUJHLFNBQXJCLENBQTZCLElBQUlILFNBQUosQ0FBTSxTQUFVSSxTQUFWLEMsQ0FBcUJBLFNBQUEsQ0FBUUQsU0FBUixDLEVBQTNCLEMsU0FDckQsR0FBSyxDQUFBSCxTQUFBLEVBQU0sQ0FBQUEsU0FBQSxDQUFJSyxPQUFKLENBQU4sQ0FBTCxDQUF5QixTQUFVQyxTQUFWLENBQW1CQyxTQUFuQixDLHlCQUM1QixTQUFTQyxTQUFULENBQW1CQyxTQUFuQixDLHlCQUE0QixHLENBQU1DLFNBQUEsQ0FBS1QsU0FBQSxDLGdCQUFBLEVBQWVRLFNBQWYsQ0FBTCxDLEVBQStCLE1BQU9FLFNBQVAsQyxDQUFZSixTQUFBLENBQU9JLFNBQVAsQyxHQUM3RSxTQUFTQyxT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RSwyQkFDVTROLFNBQUEsQ0FBTyxJLENBQ2JsSCxTQUFBLEUsQ0FDQStHLFNBQUEsRSxDQUNBRyxTQUFBLEMsUUFBQSxFLEdBRkEsQ0FHQSxNQUFNQyxTQUFBLENBQVVoTCxDQUFBLEMsb0JBQUEsQ0FBaEIsQ0FDQWdMLFNBQUEsQyxnQkFBQSxFQUFvQmpSLE1BQUEsQyxRQUFBLEVBQWNBLE1BQUEsQyxnQkFBQSxFQUFjLEVBQWQsQ0FBa0I0USxTQUFBLEVBQWxCLENBQWQsQ0FBaUUsQyxjQUFFLENBQWFNLFNBQWIsQyxpQ0FDeEVBLFNBQUEsQyxlQUFBLEksaUJBRHNFLENBQWpFLENBQXBCLEMsRUE3QnNDLEMsWUFpQzFDLEUsRUFqQzBDLENBQTlDLEMsRUE5aUNKLEciLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gKCkge1xuICAgICd1c2Ugc3RyaWN0JztcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuICAgIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLlxyXG5cclxuICAgIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueVxyXG4gICAgcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLlxyXG5cclxuICAgIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEhcclxuICAgIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWVxyXG4gICAgQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgU1BFQ0lBTCwgRElSRUNULFxyXG4gICAgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NXHJcbiAgICBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUlxyXG4gICAgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUlxyXG4gICAgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS5cclxuICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXHJcbiAgICAvKiBnbG9iYWwgUmVmbGVjdCwgUHJvbWlzZSwgU3VwcHJlc3NlZEVycm9yLCBTeW1ib2wsIEl0ZXJhdG9yICovXHJcblxyXG5cclxuICAgIGZ1bmN0aW9uIF9fYXdhaXRlcih0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcclxuICAgICAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cclxuICAgICAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHR5cGVvZiBTdXBwcmVzc2VkRXJyb3IgPT09IFwiZnVuY3Rpb25cIiA/IFN1cHByZXNzZWRFcnJvciA6IGZ1bmN0aW9uIChlcnJvciwgc3VwcHJlc3NlZCwgbWVzc2FnZSkge1xyXG4gICAgICAgIHZhciBlID0gbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gICAgICAgIHJldHVybiBlLm5hbWUgPSBcIlN1cHByZXNzZWRFcnJvclwiLCBlLmVycm9yID0gZXJyb3IsIGUuc3VwcHJlc3NlZCA9IHN1cHByZXNzZWQsIGU7XHJcbiAgICB9O1xuXG4gICAgY29uc3QgT3JnYW5pemVzUmVmTm9kZUlkID0gXCJucz0wO2k9MzVcIjtcbiAgICBjb25zdCBGb2xkZXJUeXBlID0gXCJucz0wO2k9NjFcIjtcbiAgICBjb25zdCBIYXNDb21wb25lbnRSZWZOb2RlSWQgPSBcIm5zPTA7aT00N1wiO1xuICAgIGNvbnN0IEhhc1Byb3BlcnR5UmVmTm9kZUlkID0gXCJucz0wO2k9NDZcIjtcbiAgICBjb25zdCBIYXNDaGlsZFJlZk5vZGVJZCA9IFwibnM9MDtpPTM0XCI7XG4gICAgY29uc3QgSGFzU3VidHlwZVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ1XCI7XG4gICAgY29uc3QgSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQgPSBcIm5zPTA7aT00MFwiO1xuXG4gICAgdmFyIEJyb3dzZURpcmVjdGlvbjtcbiAgICAoZnVuY3Rpb24gKEJyb3dzZURpcmVjdGlvbikge1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiRm9yd2FyZFwiXSA9IDBdID0gXCJGb3J3YXJkXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJJbnZlcnNlXCJdID0gMV0gPSBcIkludmVyc2VcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkJvdGhcIl0gPSAyXSA9IFwiQm90aFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52YWxpZFwiXSA9IDNdID0gXCJJbnZhbGlkXCI7XG4gICAgfSkoQnJvd3NlRGlyZWN0aW9uIHx8IChCcm93c2VEaXJlY3Rpb24gPSB7fSkpO1xuICAgIHZhciBOb2RlQ2xhc3M7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3MpIHtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlVuc3BlY2lmaWVkXCJdID0gMF0gPSBcIlVuc3BlY2lmaWVkXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJPYmplY3RcIl0gPSAxXSA9IFwiT2JqZWN0XCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0VHlwZVwiXSA9IDhdID0gXCJPYmplY3RUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiRGF0YVR5cGVcIl0gPSA2NF0gPSBcIkRhdGFUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzcyB8fCAoTm9kZUNsYXNzID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzTWFzaztcbiAgICAoZnVuY3Rpb24gKE5vZGVDbGFzc01hc2spIHtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJNZXRob2RcIl0gPSA0XSA9IFwiTWV0aG9kXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMzJdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzc01hc2sgfHwgKE5vZGVDbGFzc01hc2sgPSB7fSkpO1xuICAgIHZhciBSZXN1bHRNYXNrO1xuICAgIChmdW5jdGlvbiAoUmVzdWx0TWFzaykge1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMV0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiSXNGb3J3YXJkXCJdID0gMl0gPSBcIklzRm9yd2FyZFwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJOb2RlQ2xhc3NcIl0gPSA0XSA9IFwiTm9kZUNsYXNzXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIkJyb3dzZU5hbWVcIl0gPSA4XSA9IFwiQnJvd3NlTmFtZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJEaXNwbGF5TmFtZVwiXSA9IDE2XSA9IFwiRGlzcGxheU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiVHlwZURlZmluaXRpb25cIl0gPSAzMl0gPSBcIlR5cGVEZWZpbml0aW9uXCI7XG4gICAgfSkoUmVzdWx0TWFzayB8fCAoUmVzdWx0TWFzayA9IHt9KSk7XG4gICAgLy8gIGNvbnN0IHEgPSBSZWZlcmVuY2VUeXBlSWRzLk9yZ2FuaXplcztcbiAgICBmdW5jdGlvbiByZXNvbHZlTm9kZUlkKG5vZGVJZExpa2UpIHtcbiAgICAgICAgc3dpdGNoIChub2RlSWRMaWtlKSB7XG4gICAgICAgICAgICBjYXNlIFwiT3JnYW5pemVzXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIE9yZ2FuaXplc1JlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNQcm9wZXJ0eVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNQcm9wZXJ0eVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDb21wb25lbnRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzQ29tcG9uZW50UmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc0NoaWxkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NoaWxkUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1N1YnR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzU3VidHlwZVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNUeXBlRGVmaW5pdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNUeXBlRGVmaW5pdGlvblJlZk5vZGVJZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGdldEljb24gPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHN3aXRjaCAocmVmZXJlbmNlLm5vZGVDbGFzcykge1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFwiOlxuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBPcmdhbml6ZXNSZWZOb2RlSWQpIDtcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnR5cGVEZWZpbml0aW9uID09PSBGb2xkZXJUeXBlIHx8IHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IFwiaT02MVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtZm9sZGVyXCIsIGNvbG9yOiBcInJnYmEoNjEsIDYwLCA0LCAwLjUyNSlcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJTZWFHcmVlblwiIH07XG4gICAgICAgICAgICBjYXNlIFwiVmFyaWFibGVcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzQ29tcG9uZW50UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiU3RlZWxCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzUHJvcGVydHlSZWZOb2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJEb2RnZXJCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiQ2FkZXRCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFwiTWV0aG9kXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1jb2dcIiwgY29sb3I6IFwiU2FuZHlCcm93blwiIH07XG4gICAgICAgICAgICBjYXNlIFwiT2JqZWN0VHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiBcIkRhcmtPcmFuZ2VcIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlVHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtc2xpZGVyc1wiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJEYXRhVHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtdGV4dC13aWR0aFwiLCBjb2xvcjogXCJDYWRldEJsdWVcIiB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGljb246IFwiZmEtcXVlc3Rpb25cIiwgY29sb3I6IFwiZ3JleVwiIH07XG4gICAgfTtcblxuICAgIGNvbnN0IGJyb3dzZSA9IChfYSwgbm9kZUlkXzEsIHRlbXBsYXRlXzEpID0+IF9fYXdhaXRlcih2b2lkIDAsIFtfYSwgbm9kZUlkXzEsIHRlbXBsYXRlXzFdLCB2b2lkIDAsIGZ1bmN0aW9uKiAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIG5vZGVJZCwgdGVtcGxhdGUpIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWZvci1ub2RlLXJlZGA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L2Jyb3dzZWA7XG4gICAgICAgIGNvbnN0IGJyb3dzZURlc2NyaXB0aW9uID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCB0ZW1wbGF0ZSksIHsgbm9kZUlkLCByZXN1bHRNYXNrOiA2MyB9KTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgYnJvd3NlRGVzY3JpcHRpb24sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoaW5nIGZhaWxlZCB3aXRoIGVycm9yXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICAgICAgcmV0dXJuIHsgcmVmZXJlbmNlczogW10gfTtcbiAgICAgICAgfVxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcImJyb3dzZSBmZXRjaGVkIDogXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IHlpZWxkIGRhdGEuanNvbigpO1xuICAgICAgICBjb25zdCByZWZlcmVuY2VzID0gcmVzcG9uc2UuYnJvd3NlUmVzdWx0LnJlZmVyZW5jZXMgfHwgW107XG4gICAgICAgIHJldHVybiB7IHJlZmVyZW5jZXMgfTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHRlbXBsYXRlMSA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzQ2hpbGRcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCB0ZW1wbGF0ZTIgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIk9yZ2FuaXplc1wiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuVmFyaWFibGUgfCBOb2RlQ2xhc3MuT2JqZWN0IHwgTm9kZUNsYXNzLk1ldGhvZCxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5PYmplY3RUeXBlIHxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5EYXRhVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5WaWV3LFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGNvbnN0IHdhbGtCYWNrd2FyZCA9IChfYSwgX2IpID0+IF9fYXdhaXRlcih2b2lkIDAsIFtfYSwgX2JdLCB2b2lkIDAsIGZ1bmN0aW9uKiAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIHsgbm9kZUlkLCByb290Tm9kZUlkLCBpc1R5cGUgfSkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZm9yLW5vZGUtcmVkYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vd2Fsay1iYWNrd2FyZGA7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIG5vZGVJZCxcbiAgICAgICAgICAgICAgICByb290Tm9kZUlkLFxuICAgICAgICAgICAgICAgIGlzVHlwZSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGpzb24gPSAoeWllbGQgZGF0YS5qc29uKCkpO1xuICAgICAgICByZXR1cm4ganNvbi5icm93c2VQYXRoO1xuICAgIH0pO1xuICAgIGNvbnN0IGNob29zZU5vZGVJZCA9IChkYXRhLCBtb2RlKSA9PiB7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1c0NvZGUgIT09IFwiR29vZFwiKSB7XG4gICAgICAgICAgICByZXR1cm4gZGF0YS5yZXF1ZXN0ZWROb2RlSWQ7XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoIChtb2RlKSB7XG4gICAgICAgICAgICBjYXNlIFwiYnJvd3NlUGF0aFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBkYXRhLmJwX2luZGV4ZWQ7XG4gICAgICAgICAgICBjYXNlIFwiYWxpYXNlZEJyb3dzZVBhdGhcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0YS5icF9hbGlhc2VkIHx8IGRhdGEuYnBfaW5kZXhlZDtcbiAgICAgICAgICAgIGNhc2UgXCJhbGlhc2VkTm9kZUlkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGEubm9kZUlkX2FsaWFzZWQgfHwgZGF0YS5ub2RlSWRfbnN1O1xuICAgICAgICAgICAgY2FzZSBcIm5zdU5vZGVJRFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBkYXRhLm5vZGVJZF9uc3U7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgY2FzZSBcIm5vZGVJZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBkYXRhLm5vZGVJZDtcbiAgICAgICAgfVxuICAgIH07XG4gICAgY29uc3QgbWFrZVRvb2x0aXAgPSAoZGF0YSkgPT4ge1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXNDb2RlICE9PSBcIkdvb2RcIikge1xuICAgICAgICAgICAgcmV0dXJuIGBzdGF0dXNDb2RlOiAke2RhdGEuc3RhdHVzQ29kZX1gO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgbGV0IHN0ciA9IFtdO1xuICAgICAgICAgICAgc3RyLnB1c2goYG5vZGVJZDogJHtkYXRhLm5vZGVJZH1gKTtcbiAgICAgICAgICAgIHN0ci5wdXNoKGBicm93c2UgcGF0aDogJHtkYXRhLmJwX2luZGV4ZWR9YCk7XG4gICAgICAgICAgICBzdHIucHVzaChgbm9kZSBjbGFzczogJHtOb2RlQ2xhc3NbZGF0YS5ub2RlQ2xhc3NdfWApO1xuICAgICAgICAgICAgaWYgKGRhdGEubm9kZUlkX25zdSkge1xuICAgICAgICAgICAgICAgIHN0ci5wdXNoKGBuc3Ugbm9kZUlkOiAke2RhdGEubm9kZUlkX25zdX1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLm5vZGVJZF9hbGlhc2VkKSB7XG4gICAgICAgICAgICAgICAgc3RyLnB1c2goYGFsaWFzZWQgTm9kZUlkOiAke2RhdGEubm9kZUlkX2FsaWFzZWR9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5icF9pbmRleGVkKSB7XG4gICAgICAgICAgICAgICAgc3RyLnB1c2goYGFsaWFzZWQgYnJvd3NlUGF0aDogJHtkYXRhLmJwX2FsaWFzZWR9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gc3RyLmpvaW4oXCJcXG5cIik7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIGZ1bmN0aW9uIGZpZ3VyZU91dE1vZGUoZW5oYW5jZWROb2RlSWQpIHtcbiAgICAgICAgaWYgKGVuaGFuY2VkTm9kZUlkLm1hdGNoKC9ebnN1PS8pKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJuc3VOb2RlSURcIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZW5oYW5jZWROb2RlSWQubWF0Y2goL14obnM9Lio7KT8oaXxifHN8Zyk9LykpIHtcbiAgICAgICAgICAgIHJldHVybiBcIm5vZGVJZFwiO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbmhhbmNlZE5vZGVJZC5tYXRjaCgvXm5zYT0vKSkge1xuICAgICAgICAgICAgcmV0dXJuIFwiYWxpYXNlZE5vZGVJZFwiO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbmhhbmNlZE5vZGVJZC5tYXRjaCgvXihcXC98XFwuKVswLTldKzovKSkge1xuICAgICAgICAgICAgcmV0dXJuIFwiYnJvd3NlUGF0aFwiO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbmhhbmNlZE5vZGVJZC5tYXRjaCgvXihcXC98XFwuKS4qOi8pKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJicm93c2VQYXRoXCI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gZmlndXJlT3V0TWVuVUl0ZW1WYWx1ZShzdHIpIHtcbiAgICAgICAgY29uc3QgbW9kZSA9IGZpZ3VyZU91dE1vZGUoc3RyKTtcbiAgICAgICAgc3dpdGNoIChtb2RlKSB7XG4gICAgICAgICAgICBjYXNlIFwibm9kZUlkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiblwiO1xuICAgICAgICAgICAgY2FzZSBcImFsaWFzZWROb2RlSWRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJuYVwiO1xuICAgICAgICAgICAgY2FzZSBcIm5zdU5vZGVJRFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcIm5zdVwiO1xuICAgICAgICAgICAgY2FzZSBcImJyb3dzZVBhdGhcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJiXCI7XG4gICAgICAgICAgICBjYXNlIFwiYWxpYXNlZEJyb3dzZVBhdGhcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJhYlwiO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJ0XCI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gdG9Nb2RlKHYpIHtcbiAgICAgICAgbGV0IG1vZGU7XG4gICAgICAgIHN3aXRjaCAodikge1xuICAgICAgICAgICAgY2FzZSBcIm5cIjpcbiAgICAgICAgICAgICAgICBtb2RlID0gXCJub2RlSWRcIjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgXCJuYVwiOlxuICAgICAgICAgICAgICAgIG1vZGUgPSBcImFsaWFzZWROb2RlSWRcIjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgXCJuc3VcIjpcbiAgICAgICAgICAgICAgICBtb2RlID0gXCJuc3VOb2RlSURcIjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgXCJiXCI6XG4gICAgICAgICAgICAgICAgbW9kZSA9IFwiYnJvd3NlUGF0aFwiO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcImFiXCI6XG4gICAgICAgICAgICAgICAgbW9kZSA9IFwiYWxpYXNlZEJyb3dzZVBhdGhcIjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbW9kZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZnJvbU1vZGUobW9kZSkge1xuICAgICAgICBzd2l0Y2ggKG1vZGUpIHtcbiAgICAgICAgICAgIGNhc2UgXCJub2RlSWRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJuXCI7XG4gICAgICAgICAgICBjYXNlIFwiYWxpYXNlZE5vZGVJZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcIm5hXCI7XG4gICAgICAgICAgICBjYXNlIFwibnN1Tm9kZUlEXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwibnN1XCI7XG4gICAgICAgICAgICBjYXNlIFwiYnJvd3NlUGF0aFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcImJcIjtcbiAgICAgICAgICAgIGNhc2UgXCJhbGlhc2VkQnJvd3NlUGF0aFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcImFiXCI7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBcInRcIjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBfY2FsbENoZWNrTm9kZUlkID0gKF9hLCBub2RlSWRfMSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgW19hLCBub2RlSWRfMV0sIHZvaWQgMCwgZnVuY3Rpb24qICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgbm9kZUlkKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1mb3Itbm9kZS1yZWRgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9jaGVja05vZGVJZGA7XG4gICAgICAgIGNvbnN0IGVJZCA9IGVuZHBvaW50Tm9kZS5pZDtcbiAgICAgICAgY29uc3QgbiA9IFJFRC5ub2Rlcy5ub2RlKGVJZCk7XG4gICAgICAgIGNvbnNvbGUubG9nKG4ubmFtZXNwYWNlQWxpYXNlcyk7XG4gICAgICAgIG4ubmFtZXNwYWNlQWxpYXNlcztcbiAgICAgICAgY29uc3QgbmFtZXNwYWNlQWxpYXNlcyA9IGVuZHBvaW50Tm9kZS5uYW1lc3BhY2VBbGlhc2VzO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBub2RlSWQsXG4gICAgICAgICAgICAgICAgbmFtZXNwYWNlQWxpYXNlcyxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QganNvbiA9ICh5aWVsZCBkYXRhLmpzb24oKSk7XG4gICAgICAgIHJldHVybiB7IGpzb24sIGRhdGEgfTtcbiAgICB9KTtcbiAgICBjb25zdCBpbnRlcm5hbFZlcmlmeSA9IChfYSwgbW9kZV8xLCAkaW5wdXRFbGVtZW50XzEsICRpbmZvXzEpID0+IF9fYXdhaXRlcih2b2lkIDAsIFtfYSwgbW9kZV8xLCAkaW5wdXRFbGVtZW50XzEsICRpbmZvXzFdLCB2b2lkIDAsIGZ1bmN0aW9uKiAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIG1vZGUsICRpbnB1dEVsZW1lbnQsICRpbmZvKSB7XG4gICAgICAgIGNvbnN0IGVuaGFuY2VkTm9kZUlkID0gJGlucHV0RWxlbWVudC52YWwoKTtcbiAgICAgICAgY29uc3QgeyBqc29uLCBkYXRhIH0gPSB5aWVsZCBfY2FsbENoZWNrTm9kZUlkKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCBlbmhhbmNlZE5vZGVJZCk7XG4gICAgICAgIGNvbnN0IHNldE5vdGlmaWNhdGlvbiA9ICh0ZXh0LCBjbGFzc05hbWUpID0+IHtcbiAgICAgICAgICAgICRpbmZvLnRleHQodGV4dCkuYWRkQ2xhc3MoXCJzdGVyZml2ZS1pbmZvXCIpLmFkZENsYXNzKGNsYXNzTmFtZSk7XG4gICAgICAgICAgICAkaW5mby5zaG93KCk7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAkaW5mby5yZW1vdmVDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgICAgICRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgIH0sIDMwMDApO1xuICAgICAgICB9O1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgLy8gZG8gc29tZXRoaW5nO1xuICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKFwiISFmYWlsdXJlISFcIiArIGVuaGFuY2VkTm9kZUlkLCBcImZhaWx1cmVcIik7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoanNvbi5zdGF0dXNDb2RlLm1hdGNoKC9Hb29kLykpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0b29sdGlwID0gbWFrZVRvb2x0aXAoanNvbik7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC5hdHRyKFwidGl0bGVcIiwgdG9vbHRpcCk7XG4gICAgICAgICAgICAgICAgLy8gZG8gc29tZXRoaW5nXG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWROb2RlSWQgPSBjaG9vc2VOb2RlSWQoanNvbiwgbW9kZSk7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC52YWwoc2VsZWN0ZWROb2RlSWQpO1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCJHb29kXCIsIFwib2tcIik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChgJHtlbmhhbmNlZE5vZGVJZH1gKTtcbiAgICAgICAgICAgICAgICBzZXROb3RpZmljYXRpb24oYCR7anNvbi5zdGF0dXNDb2RlfSAke2RhdGEuc3RhdHVzVGV4dH1gLCBcImZhaWx1cmVcIik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG4gICAgZnVuY3Rpb24gZmV0Y2hDaGlsZHJlbigkbm9kZSwgZGF0YSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZUlkID0gJG5vZGUuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MSA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMSk7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQyID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGUyKTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVmZXJlbmNlczogWy4uLmJyb3dzZVJlc3VsdDEucmVmZXJlbmNlcywgLi4uYnJvd3NlUmVzdWx0Mi5yZWZlcmVuY2VzXSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCB0ZW1wbGF0ZVNUID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJIYXNTdWJ0eXBlXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHwgTm9kZUNsYXNzLk9iamVjdFR5cGUgfCBOb2RlQ2xhc3MuRGF0YVR5cGUgfCBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlLFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGZ1bmN0aW9uIGZldGNoU3VidHlwZXMoJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZVNUKTtcbiAgICAgICAgICAgIHJldHVybiBicm93c2VSZXN1bHQxO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgbWFrZUVsZW1lbnQgPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZDtcbiAgICAgICAgaWYgKCFyZWZlcmVuY2UgfHwgIXJlZmVyZW5jZS5ub2RlSWQpIHtcbiAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpPjxpIGNsYXNzPVwiZmEgZmEtZXJyb3JcIiBzdHlsZT1cImNvbG9yOnJlZDtcIj48L2k+bm8gcmVmZXJlbmNlICE8dWw+PC91bD48L2xpPmApO1xuICAgICAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG4gPSByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IHQgPSAoKF9hID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGV4dCkgfHwgKChfYiA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB7IGljb24sIGNvbG9yIH0gPSBnZXRJY29uKHJlZmVyZW5jZSk7XG4gICAgICAgIGNvbnN0IHRpdGxlID0gYCgke3JlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKX0pICR7KChfYyA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MubmFtZSkgfHwgKChfZCA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9kLnRleHQpIHx8IFwiXCJ9YDtcbiAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGkga2V5PVwiJHtyZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCl9XCJ9PjxzcGFuIGNsYXNzPVwidHJlZS10ZXh0XCIgdGl0bGU9JHt0aXRsZX0+PGkgY2xhc3M9XCJmYSAke2ljb259XCIgc3R5bGU9XCJjb2xvcjoke2NvbG9yfTtcIj48L2k+ICR7dH08L3NwYW4+PHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgJGVsZW1lbnQuYWRkQ2xhc3MoXCJleHBhbmRhYmxlXCIpO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwidmFsdWVcIiwgbik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgIH07XG4gICAgY29uc3QgZmluZEVsZW1lbnQgPSAobm9kZUlkLCAkdHJlZSkgPT4ge1xuICAgICAgICByZXR1cm4gJHRyZWUuZmluZChgbGlba2V5PVwiJHtub2RlSWR9XCJdYCk7XG4gICAgfTtcbiAgICBjb25zdCBzZWxlY3RTaW5nbGUgPSAodGhhdCwgJGxpKSA9PiB7XG4gICAgICAgIHRoYXQuJHRyZWUuZmluZChcImxpID4gLnRyZWUtdGV4dFwiKS5yZW1vdmVDbGFzcyhcInNlbGVjdGVkXCIpO1xuICAgICAgICAvLyBjbGVhciBhbGwgc2VsZWN0ZWQgaXRlbXNcbiAgICAgICAgJGxpLmZpbmQoXCIudHJlZS10ZXh0OmZpcnN0XCIpLmFkZENsYXNzKFwic2VsZWN0ZWRcIik7XG4gICAgfTtcbiAgICBjb25zdCBhdXRvRXhwYW5kID0gKHRoYXQsIGJyb3dzZVBhdGgsICR0cmVlKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgLy8gZXhwYW5kIHRoZSB0cmVlIHRvIHNob3cgdGhlIG5vZGVJZFxuICAgICAgICBsZXQgJGN1cnJlbnQgPSAkdHJlZS5jaGlsZHJlbihcIjpmaXJzdFwiKTtcbiAgICAgICAgYnJvd3NlUGF0aC5yZWxhdGl2ZVBhdGguZWxlbWVudHMgfHwgW107XG4gICAgICAgIGNvbnN0IG5vZGVJZHMgPSBicm93c2VQYXRoLm5vZGVJZHMgfHwgW107XG4gICAgICAgIGlmIChub2RlSWRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgbiBvZiBub2RlSWRzKSB7XG4gICAgICAgICAgICBpZiAoJGN1cnJlbnQuaGFzQ2xhc3MoXCJleHBhbmRhYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgLy8gbmVlZCB0byBleHBhbmQgYW5kIHNlbGVjdCB0aGUgcmlnaHQgZWxlbWVudFxuICAgICAgICAgICAgICAgIHlpZWxkIF9leHBhbmRMaSh0aGF0LCAkY3VycmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IGZpbmRFbGVtZW50KG4sICRjdXJyZW50KTtcbiAgICAgICAgICAgIGlmICgkZWxlbWVudC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkY3VycmVudCA9ICRlbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIHNlbGVjdFNpbmdsZSh0aGF0LCAkY3VycmVudCk7XG4gICAgICAgIHNjcm9sbFRvTGkodGhhdC4kZHJvcGRvd24sICRjdXJyZW50KTtcbiAgICB9KTtcbiAgICBmdW5jdGlvbiBzY3JvbGxUb0xpKCRjb250YWluZXIsICR0YXJnZXRMaSkge1xuICAgICAgICAvLyBHZXQgdGhlIHBvc2l0aW9uIG9mIHRoZSB0YXJnZXQgaXRlbSByZWxhdGl2ZSB0byBpdHMgY29udGFpbmVyXG4gICAgICAgIGNvbnN0IGxpUG9zID0gJHRhcmdldExpLnBvc2l0aW9uKCkudG9wO1xuICAgICAgICAvLyBHZXQgdGhlIGN1cnJlbnQgc2Nyb2xsIHBvc2l0aW9uIG9mIHRoZSBjb250YWluZXJcbiAgICAgICAgY29uc3QgY29udGFpbmVyU2Nyb2xsVG9wID0gJGNvbnRhaW5lci5zY3JvbGxUb3AoKTtcbiAgICAgICAgaWYgKGNvbnRhaW5lclNjcm9sbFRvcCA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIHBvc2l0aW9uIHRvIHNjcm9sbCB0byAoY3VycmVudCBzY3JvbGwgKyBpdGVtJ3MgcG9zaXRpb24pXG4gICAgICAgIC8vIEFkanVzdCB0aGlzIGNhbGN1bGF0aW9uIGJhc2VkIG9uIHlvdXIgbmVlZHNcbiAgICAgICAgY29uc3Qgc2Nyb2xsVG8gPSBjb250YWluZXJTY3JvbGxUb3AgKyBsaVBvcyAtICRjb250YWluZXIuaGVpZ2h0KCkgLyAyICsgJHRhcmdldExpLmhlaWdodCgpIC8gMjtcbiAgICAgICAgLy8gU2Nyb2xsIHRoZSBjb250YWluZXIgdG8gZW5zdXJlIHRoZSBpdGVtIGlzIHZpc2libGVcbiAgICAgICAgJGNvbnRhaW5lci5hbmltYXRlKHtcbiAgICAgICAgICAgIHNjcm9sbFRvcDogc2Nyb2xsVG8sXG4gICAgICAgIH0sIDUwMCk7IC8vIEFkanVzdCB0aGUgZHVyYXRpb24gKDUwMG1zKSBhcyBuZWVkZWRcbiAgICB9XG4gICAgY29uc3QgcmVhY2hTZWxlY3Rpb24gPSAodGhhdCwgcGFyZW50Tm9kZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IG5vZGVJZCA9IHRoYXQuJGlucHV0LnZhbCgpO1xuICAgICAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgcm9vdE5vZGVJZDogcGFyZW50Tm9kZS5ub2RlSWQsXG4gICAgICAgICAgICBpc1R5cGU6IHRoYXQub3B0aW9ucy5pc1R5cGVSZWYgfHwgZmFsc2UsXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGRhdGEgPSBtYWtlQ29ubmVjdGlvbih0aGF0KTtcbiAgICAgICAgY29uc3QgYnJvd3NlUGF0aCA9IHlpZWxkIHdhbGtCYWNrd2FyZChkYXRhLCBvcHRpb25zKTtcbiAgICAgICAgaWYgKCFicm93c2VQYXRoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgeWllbGQgYXV0b0V4cGFuZCh0aGF0LCBicm93c2VQYXRoLCB0aGF0LiR0cmVlKTtcbiAgICB9KTtcbiAgICBmdW5jdGlvbiBfZmV0Y2hEYXRhRm9yTm9kZSh0aGF0LCAkbm9kZSwgZmV0Y2hGdW5jLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBpZiAoJG5vZGUuaGFzQ2xhc3MoXCJmZXRjaGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhbHJlYWR5IGZldGNoZWRcIik7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCRub2RlLmhhc0NsYXNzKFwibG9hZGluZ1wiKSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYWxyZWFkeSBsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwibG9hZGluZ1wiKTtcbiAgICAgICAgICAgICRub2RlLmFwcGVuZCgnPGRpdiBjbGFzcz1cInNwaW5uZXJcIj48L2Rpdj4nKTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgcmVmZXJlbmNlcyB9ID0geWllbGQgZmV0Y2hGdW5jKCRub2RlLCBkYXRhKTtcbiAgICAgICAgICAgICAgICAvLyBzb3J0IHJlZmVyZW5jZSAgIGJ5IGJyb3dzZU5hbWVcbiAgICAgICAgICAgICAgICByZWZlcmVuY2VzLnNvcnQoKGEsIGIpID0+IHsgdmFyIF9hLCBfYjsgcmV0dXJuICgoKF9hID0gYS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EubmFtZSkgfHwgXCJcIikubG9jYWxlQ29tcGFyZSgoKF9iID0gYi5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgXCJcIik7IH0pO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcmVmZXJlbmNlIG9mIHJlZmVyZW5jZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5maWx0ZXIgJiYgIXRoYXQub3B0aW9ucy5maWx0ZXIocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudChyZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwiZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZChgPGxpPmVycm9yICR7ZXJyLm1lc3NhZ2V9PC9saT5gKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVyclwiLCBlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJG5vZGUuZmluZChcIi5zcGlubmVyXCIpLnJlbW92ZSgpO1xuICAgICAgICAgICAgJG5vZGUucmVtb3ZlQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbWFrZUNvbm5lY3Rpb24odGhhdCkge1xuICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICBlbmRwb2ludE5vZGU6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgZW5kcG9pbnQ6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludCgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50LFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG4gICAgZnVuY3Rpb24gX2V4cGFuZExpKHRoYXQsICRsaSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImZldGNoZWRcIikpIHtcbiAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgY29uc3QgZGF0YSA9IG1ha2VDb25uZWN0aW9uKHRoYXQpO1xuICAgICAgICAgICAgY29uc3QgZiA9ICF0aGF0Lm9wdGlvbnMuaXNUeXBlUmVmID8gZmV0Y2hDaGlsZHJlbiA6IGZldGNoU3VidHlwZXM7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHlpZWxkIF9mZXRjaERhdGFGb3JOb2RlKHRoYXQsICRsaSwgZiwgZGF0YSk7XG4gICAgICAgICAgICAgICAgLy8gbWFyayBhcyBleHBhbmRlZFxuICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJvclwiLCBlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgZGVmYXVsdFBhcmVudE5vZGUgPSB7XG4gICAgICAgIGJyb3dzZU5hbWU6IHsgbmFtZXNwYWNlSW5kZXg6IDAsIG5hbWU6IFwiT2JqZWN0c1wiIH0sXG4gICAgICAgIG5vZGVDbGFzczogXCJPYmplY3RcIixcbiAgICAgICAgbm9kZUlkOiBcIm5zPTA7aT04NVwiLFxuICAgICAgICBkaXNwbGF5TmFtZTogeyB0ZXh0OiBcIk9iamVjdHNcIiB9LFxuICAgICAgICB0eXBlRGVmaW5pdGlvbjogRm9sZGVyVHlwZSxcbiAgICB9O1xuICAgIGNvbnN0IGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCA9ICgpID0+IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFsgVGVtcGVyYXR1cmUgIF1cbiAgICAgICAgICogICAoIHRvb2x0aXAgOiAoL09iamVjdHMvTXlTZW5zb3IpIChucz0xO3M9VGVtcGVyYXR1cmUpKVxuICAgICAgICAgKiBbICsgW0ZvbGRlcl0gT2JqZWN0c11cbiAgICAgICAgICogWyAgICAgW09iamVjdF0gTXlTZW5zb3JdXG4gICAgICAgICAqIFsgICAgICggKSBbVmFyaWFibGVdIFRlbXBlcmF0dXJlXVxuICAgICAgICAgKi9cbiAgICAgICAgJC53aWRnZXQoXCJzdGVyZml2ZS5ub2RlQnJvd3NlclwiLCB7XG4gICAgICAgICAgICAvKiBkZWZhdWx0IG9wdGlvbnMgKi9cbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6ICgpID0+ICh7IGVuZHBvaW50OiBcIm9wYy50Y3A6Ly9vcGN1YWRlbW8uc3RlcmZpdmUuY29tOjI2NTQzXCIgfSksXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQ6ICgpID0+IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBwYXJlbnROb2RlOiAoKSA9PiBkZWZhdWx0UGFyZW50Tm9kZSxcbiAgICAgICAgICAgICAgICBmaWx0ZXI6ICgpID0+IHRydWUsXG4gICAgICAgICAgICAgICAgYmFzZVVybDogXCJcIixcbiAgICAgICAgICAgICAgICBpc1R5cGVSZWY6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc29sdmVQYXJlbnROb2RlKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5fX3BhcmVudE5vZGUgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhID0gdHlwZW9mIHRoYXQub3B0aW9ucy5wYXJlbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZS5jYWxsKHRoYXQpIDogdGhhdC5vcHRpb25zLnBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYSBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkZXNjID0geWllbGQgYTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9fcGFyZW50Tm9kZSA9IGRlc2M7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9fcGFyZW50Tm9kZSA9IGE7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoYXQuX19wYXJlbnROb2RlIHx8IGRlZmF1bHRQYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc2V0KCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICAvLyBhbHNvIHJlc2V0IHBhcmVudCBub2RlXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB0aGF0O1xuICAgICAgICAgICAgICAgICAgICBhLl9fcGFyZW50Tm9kZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnROb2RlID0geWllbGQgdGhpcy5yZXNvbHZlUGFyZW50Tm9kZSgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IG1ha2VFbGVtZW50KHBhcmVudE5vZGUpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuY3VycmVudFBhcmVudCA9IHBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdmVyaWZ5KG1vZGUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IG1ha2VDb25uZWN0aW9uKHRoYXQpO1xuICAgICAgICAgICAgICAgIGludGVybmFsVmVyaWZ5KGRhdGEsIG1vZGUsIHRoYXQuJGlucHV0LCB0aGF0LiRpbmZvKS50aGVuKChzdWNjZXNzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghc3VjY2Vzcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYWRkQ2xhc3MoXCJpbnB1dC1lcnJvclwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLnJlbW92ZUNsYXNzKFwiaW5wdXQtZXJyb3JcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfaGlkZU1lbnUobWVudSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLm9mZihcIm1vdXNlZG93bi5yZWQtdWktdHlwZWRJbnB1dC1jbG9zZS1wcm9wZXJ0eS1zZWxlY3RcIik7XG4gICAgICAgICAgICAgICAgbWVudS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgbWVudS5jc3Moe1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IFwiYXV0b1wiLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmIChtZW51Lm9wdHMubXVsdGlwbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdGVkID0gW107XG4gICAgICAgICAgICAgICAgICAgIG1lbnUuZmluZCgnaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdJykuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJCh0aGlzKS5wcm9wKFwiY2hlY2tlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkLnB1c2goJCh0aGlzKS5kYXRhKFwidmFsdWVcIikpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgbWVudS5jYWxsYmFjayhzZWxlY3RlZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0aGF0LiRlbGVtZW50RGl2LmlzKFwiOnZpc2libGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudHJpZ2dlcihcImZvY3VzXCIpO1xuICAgICAgICAgICAgICAgICAgICAvL3h4IH0gZWxzZSBpZiAodGhpcy4kb3B0aW9uU2VsZWN0VHJpZ2dlci5pcyhcIjp2aXNpYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIC8veHggICAgIHRoYXQuJG9wdGlvblNlbGVjdFRyaWdnZXIudHJpZ2dlcihcImZvY3VzXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kc2VsZWN0VHJpZ2dlci50cmlnZ2VyKFwiZm9jdXNcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9jcmVhdGVNZW51KG1lbnVPcHRpb25zLCBvcHRzLCBjYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIHZhciB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICBjb25zdCBtZW51ID0gJChcIjxkaXY+XCIpLmFkZENsYXNzKFwic3RlcmZpdmUtdHlwZWRJbnB1dC1vcHRpb25zIHN0ZXJmaXZlLW9ubGluZS1tZW51XCIpO1xuICAgICAgICAgICAgICAgIG1lbnUub3B0cyA9IG9wdHM7XG4gICAgICAgICAgICAgICAgbWVudS5jYWxsYmFjayA9IGNhbGxiYWNrO1xuICAgICAgICAgICAgICAgIG1lbnVPcHRpb25zLmZvckVhY2goKG9wdCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIG9wdCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3B0ID0geyB2YWx1ZTogb3B0LCBsYWJlbDogb3B0IH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdmFyIG9wID0gJCgnPGEgaHJlZj1cIiNcIj48L2E+JykuYXR0cihcInZhbHVlXCIsIG9wdC52YWx1ZSkuYXBwZW5kVG8obWVudSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcHQubGFiZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wLnRleHQob3B0LmxhYmVsKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAob3B0LnRpdGxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcC5wcm9wKFwidGl0bGVcIiwgb3B0LnRpdGxlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAob3B0Lmljb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvcHQuaWNvbi5pbmRleE9mKFwiPFwiKSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQob3B0Lmljb24pLnByZXBlbmRUbyhvcCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChvcHQuaWNvbi5pbmRleE9mKFwiL1wiKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKFwiPGk+XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IFwicmVkLXVpLXR5cGVkSW5wdXQtaWNvblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogXCJtYXNrLWltYWdlOiB1cmwoXCIgKyBvcHQuaWNvbiArIFwiKTsgLXdlYmtpdC1tYXNrLWltYWdlOiB1cmwoXCIgKyBvcHQuaWNvbiArIFwiKTtcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KS5wcmVwZW5kVG8ob3ApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJChcIjxpPlwiLCB7IGNsYXNzOiBcInJlZC11aS10eXBlZElucHV0LWljb24gXCIgKyBvcHQuaWNvbiB9KS5wcmVwZW5kVG8ob3ApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3AuY3NzKHsgcGFkZGluZ0xlZnQ6IFwiMThweFwiIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmICghb3B0Lmljb24gJiYgIW9wdC5sYWJlbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3AudGV4dChvcHQudmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHZhciBjYjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wdHMubXVsdGlwbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNiID0gJCgnPGlucHV0IHR5cGU9XCJjaGVja2JveFwiPicpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNzcyhcInBvaW50ZXItZXZlbnRzXCIsIFwibm9uZVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5kYXRhKFwidmFsdWVcIiwgb3B0LnZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5wcmVwZW5kVG8ob3ApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLm9uKFwibW91c2Vkb3duXCIsIGZ1bmN0aW9uIChldnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIG9wLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIW9wdHMubXVsdGlwbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhvcHQudmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX2hpZGVNZW51KG1lbnUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2IucHJvcChcImNoZWNrZWRcIiwgIWNiLnByb3AoXCJjaGVja2VkXCIpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgbWVudS5jc3Moe1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBcIm5vbmVcIixcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBtZW51Lm9uKFwia2V5ZG93blwiLCBmdW5jdGlvbiAoZXZ0KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5Q29kZSA9PT0gNDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gRE9XTlxuICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5jaGlsZHJlbihcIjpmb2N1c1wiKS5uZXh0KCkudHJpZ2dlcihcImZvY3VzXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGV2dC5rZXlDb2RlID09PSAzOCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBVUFxuICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5jaGlsZHJlbihcIjpmb2N1c1wiKS5wcmV2KCkudHJpZ2dlcihcImZvY3VzXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGV2dC5rZXlDb2RlID09PSAyNykge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gRVNDQVBFXG4gICAgICAgICAgICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX2hpZGVNZW51KG1lbnUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbWVudTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBkaXNhcm1DbGljazogZmFsc2UsXG4gICAgICAgICAgICBfc2hvd01lbnUobWVudSwgcmVsYXRpdmVUbykge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRpc2FybUNsaWNrKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGlzYXJtQ2xpY2sgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB2YXIgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdmFyIHBvcyA9IHJlbGF0aXZlVG8ub2Zmc2V0KCk7XG4gICAgICAgICAgICAgICAgdmFyIGhlaWdodCA9IHJlbGF0aXZlVG8uaGVpZ2h0KCk7XG4gICAgICAgICAgICAgICAgdmFyIG1lbnVIZWlnaHQgPSBtZW51LmhlaWdodCgpO1xuICAgICAgICAgICAgICAgIHZhciB0b3AgPSBoZWlnaHQgKyBwb3MudG9wO1xuICAgICAgICAgICAgICAgIGlmICh0b3AgKyBtZW51SGVpZ2h0IC0gJChkb2N1bWVudCkuc2Nyb2xsVG9wKCkgPiAkKHdpbmRvdykuaGVpZ2h0KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdG9wIC09IHRvcCArIG1lbnVIZWlnaHQgLSAkKHdpbmRvdykuaGVpZ2h0KCkgKyA1O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodG9wIDwgMCkge1xuICAgICAgICAgICAgICAgICAgICBtZW51LmhlaWdodChtZW51SGVpZ2h0ICsgdG9wKTtcbiAgICAgICAgICAgICAgICAgICAgdG9wID0gMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbWVudS5jc3Moe1xuICAgICAgICAgICAgICAgICAgICB0b3A6IHRvcCArIFwicHhcIixcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogcG9zLmxlZnQgKyBcInB4XCIsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgbWVudS5zbGlkZURvd24oMTAwKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9kZWxheShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHVpU2VsZWN0LmFkZENsYXNzKFwicmVkLXVpLXR5cGVkSW5wdXQtZm9jdXNcIik7XG4gICAgICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLm9uKFwibW91c2Vkb3duLnJlZC11aS10eXBlZElucHV0LWNsb3NlLXByb3BlcnR5LXNlbGVjdFwiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghJChldmVudC50YXJnZXQpLmNsb3Nlc3QobWVudSkubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5faGlkZU1lbnUobWVudSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJChldmVudC50YXJnZXQpLmNsb3Nlc3QocmVsYXRpdmVUbykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5kaXNhcm1DbGljayA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX3Nob3dUeXBlTWVudSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGlzLl9zaG93TWVudSh0aGF0LiRtZW51LCB0aGF0LiRjb21ibyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHR5cGUgPSB0aGF0LnNlbGVjdGVkTWVudUl0ZW07XG4gICAgICAgICAgICAgICAgdmFyIHNlbGVjdGVkID0gdGhhdC4kbWVudS5maW5kKFwiW3ZhbHVlPSdcIiArIHR5cGUgKyBcIidcIik7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkLnRyaWdnZXIoXCJmb2N1c1wiKTtcbiAgICAgICAgICAgICAgICB9LCAxMjApO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9pbml0TWVudSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiRzZWxlY3RUcmlnZ2VyLmF0dHIoXCJ0YWJpbmRleFwiLCAtMSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kc2VsZWN0VHJpZ2dlci5vbihcIm1vdXNlZG93bi5yZWQtdWktdHlwZWRJbnB1dC1mb2N1cy1ibG9ja1wiLCBmdW5jdGlvbiAoZXZ0KSB7XG4gICAgICAgICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmICh0aGF0LiRtZW51KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJG1lbnUucmVtb3ZlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIGZhLWlkLWNhcmRcbiAgICAgICAgICAgICAgICBjb25zdCB0eXBlTGlzdCA9IFtcbiAgICAgICAgICAgICAgICAgICAgeyBsYWJlbDogXCJ0ZXh0XCIsIHZhbHVlOiBcInRcIiwgdGl0bGU6IFwiVmFsdWUgaXMgbm90IHZlcmlmaWVkXCIsIGljb246ICc8aSBjbGFzcz1cImZhIGZhLWZvbnRcIi9pPiAnIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIm1zZy5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcIm1zZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFwibm9kZSBpZCBvciAgYnJvd3NlIHBhdGggY29tZXMgZnJvbSBpbmplY3RlZCBtc2cgcGFyYW1ldGVyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnPGkgY2xhc3M9XCJmYSBmYS1lbnZlbG9wZS1vcGVuLW9cIi8+JyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBsYWJlbDogXCJOb2RlSWRcIiwgdmFsdWU6IFwiblwiLCBpY29uOiAnPGkgY2xhc3M9XCJmYSBmYS10YWdcIi8+MSAmbmJzcDsgJyB9LFxuICAgICAgICAgICAgICAgICAgICB7IGxhYmVsOiBcIkFsaWFzZWQgTm9kZUlkXCIsIHZhbHVlOiBcIm5hXCIsIGljb246ICc8aSBjbGFzcz1cImZhIGZhLWJvb2ttYXJrXCIvPiZuYnNwOyAnIH0sXG4gICAgICAgICAgICAgICAgICAgIHsgbGFiZWw6IFwiTm9kZUlkIHdpdGggbmFtZXNwYWNlIFVyblwiLCB2YWx1ZTogXCJuc3VcIiwgaWNvbjogJzxpIGNsYXNzPVwiZmEgZmEtaWQtY2FyZFwiLz4mbmJzcDsgJyB9LFxuICAgICAgICAgICAgICAgICAgICB7IGxhYmVsOiBcIkJyb3dzZVBhdGhcIiwgdmFsdWU6IFwiYlwiLCBpY29uOiAnPGkgY2xhc3M9XCJmYSBmYS10YWdcIi8+PGkgY2xhc3M9XCJmYSBmYS1maWdodGVyLWpldFwiLz4mbmJzcDsnIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIkFsaWFzZWQgQnJvd3NlIFBhdGhcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcImFiXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnPGkgY2xhc3M9XCJmYSBmYS1ib29rbWFya1wiLz48aSBjbGFzcz1cImZhIGZhLWZpZ2h0ZXItamV0XCIvPiZuYnNwOycsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICBjb25zdCBhID0gZmlndXJlT3V0TWVuVUl0ZW1WYWx1ZSh0aGF0LiRpbnB1dC52YWwoKSk7XG4gICAgICAgICAgICAgICAgY29uc3QgZSA9IHR5cGVMaXN0LmZpbmQoKHgpID0+IHgudmFsdWUgPT09IGEpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHNlbGVjdExhYmVsLmVtcHR5KCkuYXBwZW5kKGA8c3BhbiB0aXRsZT0keyhlID09PSBudWxsIHx8IGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGUudGl0bGUpIHx8IFwiXCJ9PiZuYnNwOyAkeyhlID09PSBudWxsIHx8IGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGUuaWNvbikgfHwgXCJcIn08L3NwYW4+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC5zZWxlY3RlZE1lbnVJdGVtID0gYTtcbiAgICAgICAgICAgICAgICBjb25zdCB0dCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhhdC4kbWVudSA9IHRoaXMuX2NyZWF0ZU1lbnUodHlwZUxpc3QsIHt9LCAodikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtb2RlID0gdG9Nb2RlKHYpO1xuICAgICAgICAgICAgICAgICAgICBpZiAobW9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gb24gTWVudSBzZWxlY3RlZCAhXG4gICAgICAgICAgICAgICAgICAgICAgICB0dC52ZXJpZnkobW9kZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZSA9IHR5cGVMaXN0LmZpbmQoKHgpID0+IHgudmFsdWUgPT09IHYpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LnNlbGVjdGVkTWVudUl0ZW0gPSB2O1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRzZWxlY3RMYWJlbC5lbXB0eSgpLmFwcGVuZChgPHNwYW4gdGl0bGU9JHsoZSA9PT0gbnVsbCB8fCBlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlLnRpdGxlKSB8fCBcIlwifT4mbmJzcDsgJHsoZSA9PT0gbnVsbCB8fCBlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlLmljb24pIHx8IFwiXCJ9PC9zcGFuPmApO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJG1lbnUuYXBwZW5kVG8oZG9jdW1lbnQuYm9keSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kbWVudS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kc2VsZWN0VHJpZ2dlci5zaG93KCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbW9kZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICByZXR1cm4gdG9Nb2RlKHRoYXQuc2VsZWN0ZWRNZW51SXRlbSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0TW9kZShtb2RlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgY29uc3QgcyA9IGZyb21Nb2RlKG1vZGUpO1xuICAgICAgICAgICAgICAgIHRoYXQuc2VsZWN0ZWRNZW51SXRlbSA9IHM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2NyZWF0ZSgpIHtcbiAgICAgICAgICAgICAgICAvLyBkZWJ1Z2dlcjtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dCA9IHRoaXMuZWxlbWVudDtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5jc3MoXCJib3JkZXJcIiwgXCJub25lXCIpO1xuICAgICAgICAgICAgICAgIC8vIHRoYXQuJGlucHV0LmFkZENsYXNzKFwicmVkLXVpLXR5cGVkSW5wdXRcIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kZWxlbWVudERpdiA9IHRoYXQuJGlucHV0LndyYXAoXCI8ZGl2PlwiKS5wYXJlbnQoKS5hZGRDbGFzcyhcIm1haW4td3JhcHBlclwiKTtcbiAgICAgICAgICAgICAgICAvLyAjcmVnaW9uIENvbWJvIGJyb3dzZXJcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21ibyA9ICQoXCI8ZGl2Lz5cIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYWRkQ2xhc3MoXCJzdGVyZml2ZS1jb21iby1ib3hcIik7XG4gICAgICAgICAgICAgICAgLy8gdGhhdC4kY29tYm8uYWRkQ2xhc3MoXCJyZWQtdWktdHlwZWRJbnB1dC1pbnB1dC13cmFwXCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnJlcGxhY2VXaXRoKHRoYXQuJGNvbWJvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcImlucHV0LWdyb3VwXCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbnB1dEdyb3VwKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiRpbnB1dCk7XG4gICAgICAgICAgICAgICAgLy8gI2VuZHJlZ2lvblxuICAgICAgICAgICAgICAgIC8vICNyZWdpb24gYWRkIGJ1dHRvbiBvbiB0aGUgcmlnaHQgc2lkZVxuICAgICAgICAgICAgICAgIC8vICNyZWdpb24gdG9nZ2xlVHJlZUJ0blxuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4gPSAkKGA8YnV0dG9uIHRpdGxlPVwib3BlbiBPUENVQSBBZGRyZXNzU3BhY2UgQnJvd3NlclwiPjxpIGNsYXNzPVwiZmEgZmEtc2l0ZW1hcFwiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5hZnRlcih0aGF0LiR0b2dnbGVUcmVlQnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5lZWRUb1JlYWNoU2VsZWN0aW9uID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhhdC4kZHJvcGRvd24uaXMoXCI6dmlzaWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRyZWUgd2lkZ2V0IGlzIGdvaW5nIHRvIGJlY29tZSB2aXNpYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50Tm9kZSA9IHlpZWxkIHRoYXQucmVzb2x2ZVBhcmVudE5vZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyZW50Tm9kZSAhPT0gdGhhdC5jdXJyZW50UGFyZW50IHx8ICgoX2EgPSB0aGF0LmN1cnJlbnRQYXJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5ub2RlSWQpICE9PSBwYXJlbnROb2RlLm5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB0aGF0LnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5lZWRUb1JlYWNoU2VsZWN0aW9uID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbmVlZFRvUmVhY2hTZWxlY3Rpb24gJiYgKHlpZWxkIHJlYWNoU2VsZWN0aW9uKHRoYXQsIHBhcmVudE5vZGUpKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgLy8gI2VuZHJlZ2lvblxuICAgICAgICAgICAgICAgIC8vICNyZWdpb24gdmVyaWZ5QnRuXG4gICAgICAgICAgICAgICAgdGhhdC4kdmVyaWZ5QnRuID0gJChgPGJ1dHRvbiB0aXRsZT1cInZlcmlmeSBub2RlSWQgb3IgYnJvd3NlUGF0aFwiPjxpIGNsYXNzPVwiZmEgZmEtcmVmcmVzaFwiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5hZnRlcih0aGF0LiR2ZXJpZnlCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHZlcmlmeUJ0bi5vbihcImNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbW9kZSA9IHRoYXQubW9kZSgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIW1vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnZlcmlmeShtb2RlKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAvLyAjZW5kcmVnaW9uXG4gICAgICAgICAgICAgICAgLy8gI2VuZHJlZ2lvblxuICAgICAgICAgICAgICAgIGNvbnN0IG5vcm1hbGl6ZUlucHV0ID0gKGlucHV0KSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICBsZXQgbW9kZSA9IHRoYXQubW9kZSgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIW1vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbm5lY3Rpb25EYXRhID0gbWFrZUNvbm5lY3Rpb24odGhhdCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgZGF0YSwganNvbiB9ID0geWllbGQgX2NhbGxDaGVja05vZGVJZChjb25uZWN0aW9uRGF0YSwgaW5wdXQpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChqc29uLnN0YXR1c0NvZGUubWF0Y2goL0dvb2QvKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWROb2RlSWQgPSBjaG9vc2VOb2RlSWQoanNvbiwgbW9kZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC52YWwoc2VsZWN0ZWROb2RlSWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgICAgIC8vIGNyZWF0ZSB0aGUgcHJlcGVuZGVkIGJ1dHRvblxuICAgICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kdWlTZWxlY3QgPSAkKFwiPGRpdj5cIik7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmJlZm9yZSh0aGF0LiR1aVNlbGVjdCk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHNlbGVjdFRyaWdnZXIgPSAkKCc8YnV0dG9uIHR5cGU9XCJidXR0b25cIiB0YWJpbmRleD1cIjBcIj48L2J1dHRvbj4nKS5wcmVwZW5kVG8odGhhdC4kdWlTZWxlY3QpO1xuICAgICAgICAgICAgICAgICAgICAkKCc8aSBjbGFzcz1cInJlZC11aS10eXBlZElucHV0LWljb24gZmEgZmEtY2FyZXQtZG93blwiPjwvaT4nKS50b2dnbGUodHJ1ZSkuYXBwZW5kVG8odGhhdC4kc2VsZWN0VHJpZ2dlcik7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHNlbGVjdFRyaWdnZXIub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX3Nob3dUeXBlTWVudSgpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kc2VsZWN0VHJpZ2dlclxuICAgICAgICAgICAgICAgICAgICAgICAgLm9uKFwia2V5ZG93blwiLCBmdW5jdGlvbiAoZXZ0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXZ0LmtleUNvZGUgPT09IDQwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRG93blxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX3Nob3dUeXBlTWVudSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgLm9uKFwiZm9jdXNcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kdWlTZWxlY3QuYWRkQ2xhc3MoXCJyZWQtdWktdHlwZWRJbnB1dC1mb2N1c1wiKTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5vbihcImJsdXJcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdmFyIG9wdCA9IHRoYXQudHlwZU1hcFt0aGF0LnByb3BlcnR5VHlwZV07XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBpZiAob3B0Lmhhc1ZhbHVlID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kdWlTZWxlY3QucmVtb3ZlQ2xhc3MoXCJyZWQtdWktdHlwZWRJbnB1dC1mb2N1c1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHNlbGVjdExhYmVsID0gJCgnPHNwYW4gY2xhc3M9XCJyZWQtdWktdHlwZWRJbnB1dC10eXBlLWxhYmVsXCI+PC9zcGFuPicpLmFwcGVuZFRvKHRoYXQuJHNlbGVjdFRyaWdnZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLl9pbml0TWVudSgpO1xuICAgICAgICAgICAgICAgIGlmICghdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmF0dHIoXCJwbGFjZWhvbGRlclwiLCBcImVudGVyIGEgbm9kZUlkIG9yIGEgYnJvd3NlUGF0aCBcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vICNyZWdpb24gdGVtcG9yYXR5IGluZm8gcGFuZWxcbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvID0gJChgPGRpdiBjbGFzcz1cImluZm8tdGV4dFwiPjwvZGl2PmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbmZvKTtcbiAgICAgICAgICAgICAgICAvLyAjZW5kcmVnaW9uXG4gICAgICAgICAgICAgICAgLy8gI3JlZ2lvbiBkcm9wIGRvd24gdHJlZVxuICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcInN0ZXJmaXZlLWRyb3Bkb3duXCIpLmhpZGUoKS5hcHBlbmRUbyh0aGF0LiRjb21ibyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZSA9ICQoYDx1bCBjbGFzcz1cInN0ZXJmaXZlLXRyZWVcIj48L3VsPmApLmFwcGVuZFRvKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICAvLyB0aGF0LiRkcm9wZG93bi5zaG93KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgICAgICAgICAgIC8vICNlbmRyZWdpb25cbiAgICAgICAgICAgICAgICBjb25zdCBpc09uTGVmdFNpemUgPSAoJGxpLCBldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVXaWR0aCA9IDIwOyAvLyBTZXQgd2lkdGggb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlSGVpZ2h0ID0gMjA7IC8vIFNldCBoZWlnaHQgb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudFBvcyA9ICRsaS5vZmZzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZSA9IGV2ZW50O1xuICAgICAgICAgICAgICAgICAgICBpZiAoZS5wYWdlWCA+PSBlbGVtZW50UG9zLmxlZnQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVggPD0gZWxlbWVudFBvcy5sZWZ0ICsgYmVmb3JlV2lkdGggJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPj0gZWxlbWVudFBvcy50b3AgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPD0gZWxlbWVudFBvcy50b3AgKyBiZWZvcmVIZWlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IHRvZ2dsZUV4cGFuc2lvbiA9ICgkbGkpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGFibGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF9leHBhbmRMaSh0aGF0LCAkbGkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBUb2dnbGUgaXRzIGV4cGFuZGVkL2NvbGxhcHNlZCBzdGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmNoaWxkcmVuKFwidWxcIikuY2hpbGRyZW4oKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN3YXAgZXhwYW5kYWJsZSBhbmQgZXhwYW5kZWQgY2xhc3Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLm9uKFwiZGJsY2xpY2tcIiwgXCJsaVwiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCAkbGkgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNPbkxlZnRTaXplKCRsaSwgZXZlbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b2dnbGVFeHBhbnNpb24oJGxpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gJGxpLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlZmVyZW5jZSA9ICRsaS5kYXRhKFwicmVmZXJlbmNlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5pc1NlbGVjdGFibGUgJiYgIXRoYXQub3B0aW9ucy5pc1NlbGVjdGFibGUocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICgoX2EgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSB8fCAoKF9iID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zdCBpbnB1dCA9IGBbJHtkaXNwbGF5TmFtZX1dKCR7dmFsdWV9KWA7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbW9kZSA9IHRoYXQubW9kZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFtb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZSA9IFwibm9kZUlkXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5zZXRNb2RlKG1vZGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplSW5wdXQodmFsdWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoYXQuJGlucHV0LnZhbChpbnB1dCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhhdC4kaW5wdXQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhhdC4kaW5wdXQudmFsKGlucHV0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGF0LiRpbnB1dC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzT25MZWZ0U2l6ZSgkbGksIGV2ZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlRXhwYW5zaW9uKCRsaSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0U2luZ2xlKHRoYXQsICRsaSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgJChkb2N1bWVudCkub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gY2xpY2tpbmcgb3V0c2lkZSB0aGUgcGFnZSB3aWxsIGhpZGUgdGhlIGRyb3Bkb3duXG4gICAgICAgICAgICAgICAgICAgIGlmICghJChldmVudC50YXJnZXQpLmNsb3Nlc3QodGhhdC4kY29tYm8pLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB0aGUgZW5kcG9pbnQgYXR0cmlidXRlcyBjb250YWluaW5nOlxuICAgICAqICAtIHRoZSBlbmRwb2ludCwgc2VjdXJpdHlNb2RlLCBzZWN1cml0eVBvbGljeSxcbiAgICAgKiAgLSB1c2VySWRlbnRpdHlUeXBlLFxuICAgICAqICAtIGNyZWRlbnRpYWxzXG4gICAgICogIC0gbmFtZXNwYWNlQWxpYXNlc1xuICAgICAqXG4gICAgICogZXh0cmFjdGVkIGZyb20gdGhlIHVpIHdpZGdldCAjbm9kZS1pbnB1dC1lbmRwb2ludFxuICAgICAqL1xuICAgIGNvbnN0IGdldEVuZFBvaW50QXR0cmlidXRlcyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCBlbmRwb2ludElkID0gJGVuZHBvaW50LnZhbCgpO1xuICAgICAgICBjb25zdCByZWROb2RlID0gUkVELm5vZGVzLm5vZGUoZW5kcG9pbnRJZCk7XG4gICAgICAgIGlmICghcmVkTm9kZSlcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIC8vIGNvbnN0IGNyZWRlbnRpYWxzID0gUkVELihlbmRwb2ludElkKTtcbiAgICAgICAgLy8gd2UgbmVlZCB0byBzYW5pdGl6ZSBhbmQgZXh0cmFjdCB0aGUgZW5kcG9pbnQgYXR0cmlidXRlcyBvbmx5ICggbm90IHRoZSBub2RlLXJlZCBzdHVmZilcbiAgICAgICAgY29uc3QgeyBlbmRwb2ludCwgc2VjdXJpdHlNb2RlLCBzZWN1cml0eVBvbGljeSwgdXNlcklkZW50aXR5VHlwZSwgY3JlZGVudGlhbHMsIG5hbWVzcGFjZUFsaWFzZXMgfSA9IHJlZE5vZGU7XG4gICAgICAgIGNvbnN0IHJldFZhbHVlID0ge1xuICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICBzZWN1cml0eU1vZGUsXG4gICAgICAgICAgICBzZWN1cml0eVBvbGljeSxcbiAgICAgICAgICAgIHVzZXJJZGVudGl0eVR5cGUsXG4gICAgICAgICAgICBjcmVkZW50aWFscyxcbiAgICAgICAgICAgIG5hbWVzcGFjZUFsaWFzZXMsXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiByZXRWYWx1ZTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVycyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCBlbmRwb2ludElkID0gJGVuZHBvaW50LnZhbCgpO1xuICAgICAgICBjb25zdCBlbmRwb2ludE5yID0gZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzKCk7XG4gICAgICAgIGlmICghZW5kcG9pbnROcikge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuYW1lc3BhY2VBbGlhc2VzID0gZW5kcG9pbnROci5uYW1lc3BhY2VBbGlhc2VzO1xuICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7IG5hbWVzcGFjZUFsaWFzZXMsIGlkOiBlbmRwb2ludElkIH0sIGVuZHBvaW50TnIpO1xuICAgIH07XG4gICAgY29uc3QgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlciA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzLFxuICAgICAgICB9O1xuICAgIH07XG5cbiAgICBjb25zdCBpbnN0YWxsRmVlZGJhY2tXaWRnZXQgPSAoKSA9PiB7XG4gICAgICAgIC8vIHJldHVybjtcbiAgICAgICAgLy8gZGVidWdnZXI7XG4gICAgICAgIGNvbnN0IHRyYXlDb250ZW50ID0gJChcIi5yZWQtdWktdHJheS1ib2R5XCIpO1xuICAgICAgICBjb25zb2xlLmxvZyhcImluc3RhbGxGZWVkYmFja1dpZGdldCBcIiwgdHJheUNvbnRlbnQubGVuZ3RoKTtcbiAgICAgICAgaWYgKHRyYXlDb250ZW50Lmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJpbnN0YWxsaW5nIGlmcmFtZVwiKTtcbiAgICAgICAgICAgIC8vIENyZWF0ZSB0aGUgaWZyYW1lIGVsZW1lbnRcbiAgICAgICAgICAgIGNvbnN0IGlmcmFtZSA9ICQoXCI8aWZyYW1lPjwvaWZyYW1lPlwiLCB7XG4gICAgICAgICAgICAgICAgc3JjOiBcIi9vcGN1YS1mb3Itbm9kZS1yZWQvc3VwcG9ydC1mcmFtZS5odG1sXCIsXG4gICAgICAgICAgICAgICAgc2Nyb2xsaW5nOiBcIm5vXCIsXG4gICAgICAgICAgICAgICAgc3R5bGU6IFwiYmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtvdmVyZmxvdzpoaWRkZW47Ym9yZGVyOjNweFwiLFxuICAgICAgICAgICAgICAgIGFsbG93dHJhbnNwYXJlbmN5OiBcInRydWVcIixcbiAgICAgICAgICAgICAgICB3aWR0aDogXCIxODBweFwiLFxuICAgICAgICAgICAgICAgIGhlaWdodDogXCIzMHB4XCIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIEFwcGVuZCB0aGUgaWZyYW1lIHRvIHRoZSBmZWVkYmFjayBlbGVtZW50XG4gICAgICAgICAgICB0cmF5Q29udGVudC5hcHBlbmQoaWZyYW1lKTtcbiAgICAgICAgICAgIC8vIFBvc2l0aW9uIHRoZSBmZWVkYmFjayBlbGVtZW50IGF0IHRoZSBib3R0b20gcmlnaHQgb2YgdGhlIHRyYXkgY29udGVudFxuICAgICAgICAgICAgaWZyYW1lLmNzcyh7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICAgICAgICAgICAgICByaWdodDogXCIyMHB4XCIsXG4gICAgICAgICAgICAgICAgYm90dG9tOiBcIjE2cHhcIixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIFJFRC5ub2Rlcy5yZWdpc3RlclR5cGUoXCJPcGNVYS1DbGllbnQyLVdyaXRlXCIsIHtcbiAgICAgICAgY2F0ZWdvcnk6IFwib3BjdWFcIixcbiAgICAgICAgY29sb3I6IFwiI0MwREVFRFwiLFxuICAgICAgICBhbGlnbjogXCJyaWdodFwiLFxuICAgICAgICBpY29uOiBcIi4uLy4uL2ljb25zL29wY3Vhbm9kZUxvZ28ucG5nXCIsXG4gICAgICAgIHBhbGV0dGVMYWJlbDogXCJ3cml0ZVwiLFxuICAgICAgICBkZWZhdWx0czoge1xuICAgICAgICAgICAgaW5wdXRzOiB7IHZhbHVlOiAxIH0sXG4gICAgICAgICAgICBvdXRwdXQ6IHsgdmFsdWU6IDQgfSxcbiAgICAgICAgICAgIC8vIENvbW1vblxuICAgICAgICAgICAgbmFtZTogeyB2YWx1ZTogXCJcIiB9LFxuICAgICAgICAgICAgZW5kcG9pbnQ6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiB0cnVlLCB0eXBlOiBcIk9wY1VhLUVuZHBvaW50MlwiIH0sXG4gICAgICAgICAgICBhdHRyaWJ1dGVJZDogeyB2YWx1ZTogXCJWYWx1ZVwiLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgbm9kZUlkOiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogZmFsc2UgfSxcbiAgICAgICAgfSxcbiAgICAgICAgaW5wdXRzOiAxLFxuICAgICAgICBvdXRwdXRzOiAxLFxuICAgICAgICBsYWJlbCgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgfHwgXCJPUENVQSBDbGllbnQgV3JpdGVcIjtcbiAgICAgICAgfSxcbiAgICAgICAgbGFiZWxTdHlsZSgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgPyBcIm5vZGVfbGFiZWxfaXRhbGljXCIgOiBcIlwiO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRwcmVwYXJlKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXM7XG4gICAgICAgICAgICBkZWNsYXJlTm9kZUJyb3dzZXJXaWRnZXQoKTtcbiAgICAgICAgICAgIGluc3RhbGxGZWVkYmFja1dpZGdldCgpO1xuICAgICAgICAgICAgbm9kZS5pbnB1dHMgPSAxO1xuICAgICAgICAgICAgY29uc3QgJG5vZGVJZCA9ICQoXCIjbm9kZS1pbnB1dC1ub2RlSWRcIik7XG4gICAgICAgICAgICAkbm9kZUlkLm5vZGVCcm93c2VyKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlcigpKSwgeyBpc1NlbGVjdGFibGUobm9kZURlc2MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJWYXJpYWJsZVwiO1xuICAgICAgICAgICAgICAgIH0gfSkpO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRzYXZlKCkgeyB9LFxuICAgIH0pO1xuXG59KSgpOyJdfQ==
7
+ function _0x24cb(_0x37f89c,_0x4db043){const _0x256645=_0x2566();return _0x24cb=function(_0x24cb5a,_0x28da96){_0x24cb5a=_0x24cb5a-0x116;let _0x27baf8=_0x256645[_0x24cb5a];return _0x27baf8;},_0x24cb(_0x37f89c,_0x4db043);}(function(_0x1bb424,_0x22e711){const _0x45c26e=_0x24cb,_0x588206=_0x1bb424();while(!![]){try{const _0x4d552b=-parseInt(_0x45c26e(0x1d3))/0x1*(parseInt(_0x45c26e(0x116))/0x2)+-parseInt(_0x45c26e(0x155))/0x3*(-parseInt(_0x45c26e(0x222))/0x4)+-parseInt(_0x45c26e(0x1aa))/0x5*(parseInt(_0x45c26e(0x214))/0x6)+-parseInt(_0x45c26e(0x1fc))/0x7*(-parseInt(_0x45c26e(0x20b))/0x8)+parseInt(_0x45c26e(0x142))/0x9+-parseInt(_0x45c26e(0x1c9))/0xa+parseInt(_0x45c26e(0x11a))/0xb*(parseInt(_0x45c26e(0x1b8))/0xc);if(_0x4d552b===_0x22e711)break;else _0x588206['push'](_0x588206['shift']());}catch(_0x40620e){_0x588206['push'](_0x588206['shift']());}}}(_0x2566,0xb6c71),(function(){'use strict';const _0x2b178c=_0x24cb;function _0x3b4f44(_0x402bb1,_0x380323,_0x1bf78e,_0x42b6c0){function _0x4c5f83(_0x4b5194){return _0x4b5194 instanceof _0x1bf78e?_0x4b5194:new _0x1bf78e(function(_0x374c30){_0x374c30(_0x4b5194);});}return new(_0x1bf78e||(_0x1bf78e=Promise))(function(_0x19eced,_0x2e92e8){const _0x16d20c=_0x24cb;function _0x5d63f0(_0x199908){const _0x136fd0=_0x24cb;try{_0x3a91b6(_0x42b6c0[_0x136fd0(0x187)](_0x199908));}catch(_0x2a3347){_0x2e92e8(_0x2a3347);}}function _0x51642a(_0x27ea79){const _0x11ee01=_0x24cb;try{_0x3a91b6(_0x42b6c0[_0x11ee01(0x1cf)](_0x27ea79));}catch(_0x2b8716){_0x2e92e8(_0x2b8716);}}function _0x3a91b6(_0x17d571){const _0x59986b=_0x24cb;_0x17d571[_0x59986b(0x1f3)]?_0x19eced(_0x17d571['value']):_0x4c5f83(_0x17d571['value'])[_0x59986b(0x16c)](_0x5d63f0,_0x51642a);}_0x3a91b6((_0x42b6c0=_0x42b6c0[_0x16d20c(0x18e)](_0x402bb1,_0x380323||[]))[_0x16d20c(0x187)]());});}typeof SuppressedError===_0x2b178c(0x175)?SuppressedError:function(_0x221183,_0xba70,_0x2c6671){const _0x1d2ffa=_0x2b178c;var _0x1fa50e=new Error(_0x2c6671);return _0x1fa50e[_0x1d2ffa(0x13d)]=_0x1d2ffa(0x1c2),_0x1fa50e[_0x1d2ffa(0x133)]=_0x221183,_0x1fa50e[_0x1d2ffa(0x129)]=_0xba70,_0x1fa50e;};const _0x561ae8=_0x2b178c(0x239),_0x46c8b2=_0x2b178c(0x1da),_0x3a80dc=_0x2b178c(0x23a),_0x551d25='ns=0;i=46',_0x372d98='ns=0;i=34',_0x77878f=_0x2b178c(0x15d),_0x2b7e66='ns=0;i=40';var _0x43a01e;(function(_0x53e4df){const _0x3bc678=_0x2b178c;_0x53e4df[_0x53e4df[_0x3bc678(0x1b3)]=0x0]=_0x3bc678(0x1b3),_0x53e4df[_0x53e4df[_0x3bc678(0x145)]=0x1]=_0x3bc678(0x145),_0x53e4df[_0x53e4df['Both']=0x2]=_0x3bc678(0x21b),_0x53e4df[_0x53e4df[_0x3bc678(0x14d)]=0x3]='Invalid';}(_0x43a01e||(_0x43a01e={})));var _0x428e1a;(function(_0x87359e){const _0xb68d4f=_0x2b178c;_0x87359e[_0x87359e['Unspecified']=0x0]=_0xb68d4f(0x207),_0x87359e[_0x87359e[_0xb68d4f(0x1bd)]=0x1]=_0xb68d4f(0x1bd),_0x87359e[_0x87359e[_0xb68d4f(0x13e)]=0x2]=_0xb68d4f(0x13e),_0x87359e[_0x87359e['Method']=0x4]=_0xb68d4f(0x20f),_0x87359e[_0x87359e[_0xb68d4f(0x144)]=0x8]=_0xb68d4f(0x144),_0x87359e[_0x87359e[_0xb68d4f(0x221)]=0x10]='VariableType',_0x87359e[_0x87359e['ReferenceType']=0x20]=_0xb68d4f(0x166),_0x87359e[_0x87359e[_0xb68d4f(0x1a1)]=0x40]='DataType',_0x87359e[_0x87359e[_0xb68d4f(0x1c7)]=0x80]='View';}(_0x428e1a||(_0x428e1a={})));var _0x25776a;(function(_0x3b2035){const _0x4ee9a1=_0x2b178c;_0x3b2035[_0x3b2035['Object']=0x1]=_0x4ee9a1(0x1bd),_0x3b2035[_0x3b2035[_0x4ee9a1(0x13e)]=0x2]=_0x4ee9a1(0x13e),_0x3b2035[_0x3b2035[_0x4ee9a1(0x20f)]=0x4]='Method',_0x3b2035[_0x3b2035['ObjectType']=0x8]=_0x4ee9a1(0x144),_0x3b2035[_0x3b2035[_0x4ee9a1(0x221)]=0x10]=_0x4ee9a1(0x221),_0x3b2035[_0x3b2035[_0x4ee9a1(0x166)]=0x20]=_0x4ee9a1(0x166),_0x3b2035[_0x3b2035['DataType']=0x40]=_0x4ee9a1(0x1a1),_0x3b2035[_0x3b2035['View']=0x80]=_0x4ee9a1(0x1c7);}(_0x25776a||(_0x25776a={})));var _0xc17f6;(function(_0x39a044){const _0x297aa1=_0x2b178c;_0x39a044[_0x39a044[_0x297aa1(0x166)]=0x1]=_0x297aa1(0x166),_0x39a044[_0x39a044[_0x297aa1(0x157)]=0x2]=_0x297aa1(0x157),_0x39a044[_0x39a044[_0x297aa1(0x1dd)]=0x4]='NodeClass',_0x39a044[_0x39a044['BrowseName']=0x8]=_0x297aa1(0x237),_0x39a044[_0x39a044['DisplayName']=0x10]='DisplayName',_0x39a044[_0x39a044[_0x297aa1(0x202)]=0x20]='TypeDefinition';}(_0xc17f6||(_0xc17f6={})));function _0x3464a6(_0xab2566){const _0xf4829d=_0x2b178c;switch(_0xab2566){case _0xf4829d(0x158):return _0x561ae8;case _0xf4829d(0x14b):return _0x551d25;case _0xf4829d(0x1d1):return _0x3a80dc;case _0xf4829d(0x217):return _0x372d98;case _0xf4829d(0x1a9):return _0x77878f;case _0xf4829d(0x19e):return _0x2b7e66;}}const _0x54d8a7=_0x42df9d=>{const _0x485df0=_0x2b178c;switch(_0x42df9d[_0x485df0(0x1ba)]){case _0x485df0(0x1bd):if(_0x42df9d[_0x485df0(0x1eb)]===_0x561ae8);if(_0x42df9d[_0x485df0(0x204)]===_0x46c8b2||_0x42df9d[_0x485df0(0x1eb)]===_0x485df0(0x1c1))return{'icon':_0x485df0(0x146),'color':'rgba(61,\x2060,\x204,\x200.525)'};return{'icon':_0x485df0(0x1e5),'color':_0x485df0(0x20d)};case _0x485df0(0x13e):if(_0x42df9d['referenceTypeId']===_0x3a80dc)return{'icon':_0x485df0(0x223),'color':_0x485df0(0x19c)};else return _0x42df9d[_0x485df0(0x1eb)]===_0x551d25?{'icon':_0x485df0(0x223),'color':_0x485df0(0x18f)}:{'icon':'fa-list-alt','color':_0x485df0(0x228)};case _0x485df0(0x20f):return{'icon':_0x485df0(0x1c8),'color':'SandyBrown'};case _0x485df0(0x144):return{'icon':_0x485df0(0x1e5),'color':'DarkOrange'};case _0x485df0(0x221):return{'icon':_0x485df0(0x1e1),'color':'DarkOrange'};case'DataType':return{'icon':'fa-text-width','color':_0x485df0(0x228)};}return{'icon':'fa-question','color':_0x485df0(0x1d7)};},_0x23aa75=(_0x3444bb,_0x37cc67,_0x19c23c)=>_0x3b4f44(void 0x0,[_0x3444bb,_0x37cc67,_0x19c23c],void 0x0,function*({endpointNode:_0x3c7401,endpoint:_0x5eaeb2,baseUrl:_0x78b8b5},_0x10a062,_0x57fa88){const _0x443eea=_0x2b178c,_0x3eef30=_0x78b8b5+_0x443eea(0x173),_0x360a36=_0x3eef30+_0x443eea(0x132),_0x25b14b=Object[_0x443eea(0x192)](Object[_0x443eea(0x192)]({},_0x57fa88),{'nodeId':_0x10a062,'resultMask':0x3f}),_0x3d389b=yield fetch(_0x360a36,{'method':_0x443eea(0x1be),'body':JSON['stringify']({'endpointNode':_0x3c7401,'endpoint':_0x5eaeb2,'browseDescription':_0x25b14b}),'headers':{'Content-Type':_0x443eea(0x172)}});if(_0x3d389b[_0x443eea(0x1e3)]!==0xc8)return console[_0x443eea(0x18c)](_0x443eea(0x1cc),_0x3d389b[_0x443eea(0x1e3)],_0x3d389b[_0x443eea(0x218)]),{'references':[]};const _0x454ba9=yield _0x3d389b['json'](),_0x4761bb=_0x454ba9[_0x443eea(0x22e)][_0x443eea(0x1d6)]||[];return{'references':_0x4761bb};}),_0x300264={'referenceTypeId':_0x3464a6(_0x2b178c(0x217)),'includeSubtypes':!![],'browseDirection':_0x43a01e[_0x2b178c(0x1b3)],'nodeClassMask':_0x428e1a[_0x2b178c(0x13e)]|_0x428e1a['Object']|_0x428e1a['Method'],'resultMask':0x3f},_0x4321b0={'referenceTypeId':_0x3464a6(_0x2b178c(0x158)),'includeSubtypes':!![],'browseDirection':_0x43a01e[_0x2b178c(0x1b3)],'nodeClassMask':_0x428e1a[_0x2b178c(0x13e)]|_0x428e1a['Object']|_0x428e1a[_0x2b178c(0x20f)],'resultMask':0x3f},_0x2c86b9=(_0x53b159,_0xc7665b)=>_0x3b4f44(void 0x0,[_0x53b159,_0xc7665b],void 0x0,function*({endpointNode:_0x4391ea,endpoint:_0x4702be,baseUrl:_0x20bfaf},{nodeId:_0x2ae616,rootNodeId:_0x27825d,isType:_0x46edb2}){const _0x573a2=_0x2b178c,_0x490956=_0x20bfaf+_0x573a2(0x173),_0x5131d0=_0x490956+_0x573a2(0x1c4),_0x53a56a=yield fetch(_0x5131d0,{'method':_0x573a2(0x1be),'body':JSON[_0x573a2(0x150)]({'endpointNode':_0x4391ea,'endpoint':_0x4702be,'nodeId':_0x2ae616,'rootNodeId':_0x27825d,'isType':_0x46edb2}),'headers':{'Content-Type':_0x573a2(0x172)}});if(_0x53a56a[_0x573a2(0x1e3)]!==0xc8)return null;const _0x42848d=yield _0x53a56a[_0x573a2(0x11c)]();return _0x42848d[_0x573a2(0x1b5)];}),_0x132bee=(_0x452936,_0x6f1844)=>{const _0x68e34c=_0x2b178c;if(_0x452936[_0x68e34c(0x20e)]!=='Good')return _0x452936[_0x68e34c(0x206)];switch(_0x6f1844){case _0x68e34c(0x1b5):return _0x452936['bp_indexed'];case'aliasedBrowsePath':return _0x452936[_0x68e34c(0x156)]||_0x452936['bp_indexed'];case _0x68e34c(0x1e4):return _0x452936[_0x68e34c(0x216)]||_0x452936[_0x68e34c(0x170)];case _0x68e34c(0x17e):return _0x452936[_0x68e34c(0x170)];default:case'nodeId':return _0x452936[_0x68e34c(0x122)];}},_0xe26af5=_0x58b00a=>{const _0x3b9218=_0x2b178c;if(_0x58b00a[_0x3b9218(0x20e)]!==_0x3b9218(0x16d))return _0x3b9218(0x131)+_0x58b00a['statusCode'];else{let _0x3af53e=[];return _0x3af53e[_0x3b9218(0x1a3)](_0x3b9218(0x225)+_0x58b00a[_0x3b9218(0x122)]),_0x3af53e[_0x3b9218(0x1a3)](_0x3b9218(0x135)+_0x58b00a['bp_indexed']),_0x3af53e[_0x3b9218(0x1a3)](_0x3b9218(0x11d)+_0x428e1a[_0x58b00a[_0x3b9218(0x1ba)]]),_0x58b00a[_0x3b9218(0x170)]&&_0x3af53e[_0x3b9218(0x1a3)]('nsu\x20nodeId:\x20'+_0x58b00a[_0x3b9218(0x170)]),_0x58b00a[_0x3b9218(0x216)]&&_0x3af53e['push'](_0x3b9218(0x215)+_0x58b00a[_0x3b9218(0x216)]),_0x58b00a['bp_indexed']&&_0x3af53e[_0x3b9218(0x1a3)](_0x3b9218(0x11b)+_0x58b00a[_0x3b9218(0x156)]),_0x3af53e[_0x3b9218(0x19d)]('\x0a');}};function _0x400e06(_0x5ac05a){const _0x2e2c32=_0x2b178c;if(_0x5ac05a[_0x2e2c32(0x22c)](/^nsu=/))return _0x2e2c32(0x17e);if(_0x5ac05a[_0x2e2c32(0x22c)](/^(ns=.*;)?(i|b|s|g)=/))return _0x2e2c32(0x122);if(_0x5ac05a['match'](/^nsa=/))return _0x2e2c32(0x1e4);if(_0x5ac05a[_0x2e2c32(0x22c)](/^(\/|\.)[0-9]+:/))return _0x2e2c32(0x1b5);if(_0x5ac05a[_0x2e2c32(0x22c)](/^(\/|\.).*:/))return _0x2e2c32(0x1b5);}function _0x517a4b(_0x4effdf){const _0x49b64a=_0x2b178c,_0x58be7b=_0x400e06(_0x4effdf);switch(_0x58be7b){case _0x49b64a(0x122):return'n';case'aliasedNodeId':return'na';case _0x49b64a(0x17e):return _0x49b64a(0x1d2);case _0x49b64a(0x1b5):return'b';case'aliasedBrowsePath':return'ab';default:return't';}}function _0x2bffcd(_0x340f5f){const _0x452d0d=_0x2b178c;let _0x5b408b;switch(_0x340f5f){case'n':_0x5b408b=_0x452d0d(0x122);break;case'na':_0x5b408b=_0x452d0d(0x1e4);break;case'nsu':_0x5b408b=_0x452d0d(0x17e);break;case'b':_0x5b408b=_0x452d0d(0x1b5);break;case'ab':_0x5b408b=_0x452d0d(0x14a);break;}return _0x5b408b;}function _0xe6d804(_0x2c53ee){const _0x13a7fc=_0x2b178c;switch(_0x2c53ee){case _0x13a7fc(0x122):return'n';case'aliasedNodeId':return'na';case _0x13a7fc(0x17e):return _0x13a7fc(0x1d2);case _0x13a7fc(0x1b5):return'b';case _0x13a7fc(0x14a):return'ab';default:return't';}}const _0x192a19=(_0x3c6af9,_0x2bbb76)=>_0x3b4f44(void 0x0,[_0x3c6af9,_0x2bbb76],void 0x0,function*({endpointNode:_0x53100c,endpoint:_0x1f1136,baseUrl:_0x2f12bc},_0x4f17b0){const _0x472def=_0x2b178c,_0x1fa70d=_0x2f12bc+_0x472def(0x173),_0x316ad7=_0x1fa70d+_0x472def(0x171),_0xe73e6=_0x53100c['id'],_0xe7137e=RED['nodes'][_0x472def(0x125)](_0xe73e6);console[_0x472def(0x18c)](_0xe7137e[_0x472def(0x151)]),_0xe7137e['namespaceAliases'];const _0xf2aed9=_0x53100c[_0x472def(0x151)],_0x39d48d=yield fetch(_0x316ad7,{'method':_0x472def(0x1be),'body':JSON['stringify']({'endpointNode':_0x53100c,'endpoint':_0x1f1136,'nodeId':_0x4f17b0,'namespaceAliases':_0xf2aed9}),'headers':{'Content-Type':_0x472def(0x172)}}),_0x2e70ae=yield _0x39d48d[_0x472def(0x11c)]();return{'json':_0x2e70ae,'data':_0x39d48d};}),_0x5e4ce7=(_0x1a129e,_0xa03849,_0x128819,_0x34c5b9)=>_0x3b4f44(void 0x0,[_0x1a129e,_0xa03849,_0x128819,_0x34c5b9],void 0x0,function*({endpointNode:_0x35d8fc,endpoint:_0x1324ef,baseUrl:_0x174251},_0x857a89,_0x18c280,_0x30bd03){const _0x10e551=_0x2b178c,_0x55a6c1=_0x18c280[_0x10e551(0x1bc)](),{json:_0x559067,data:_0x49d55b}=yield _0x192a19({'endpointNode':_0x35d8fc,'endpoint':_0x1324ef,'baseUrl':_0x174251},_0x55a6c1),_0x4bca27=(_0x41b8ab,_0xbe311a)=>{const _0x1863c1=_0x10e551;_0x30bd03['text'](_0x41b8ab)[_0x1863c1(0x197)](_0x1863c1(0x1f8))[_0x1863c1(0x197)](_0xbe311a),_0x30bd03[_0x1863c1(0x1e9)](),setTimeout(()=>{const _0xb45d90=_0x1863c1;_0x30bd03[_0xb45d90(0x153)](_0xbe311a),_0x30bd03[_0xb45d90(0x14f)]();},0xbb8);};if(_0x49d55b['status']!==0xc8)return _0x4bca27(_0x10e551(0x21c)+_0x55a6c1,_0x10e551(0x212)),![];else{if(_0x559067['statusCode'][_0x10e551(0x22c)](/Good/)){const _0xe80f8c=_0xe26af5(_0x559067);_0x18c280[_0x10e551(0x174)](_0x10e551(0x19a),_0xe80f8c);const _0x258ddf=_0x132bee(_0x559067,_0x857a89);return _0x18c280['val'](_0x258ddf),_0x18c280[_0x10e551(0x199)](_0x10e551(0x1a0)),_0x4bca27('Good','ok'),!![];}else return _0x18c280['val'](''+_0x55a6c1),_0x4bca27(_0x559067[_0x10e551(0x20e)]+'\x20'+_0x49d55b[_0x10e551(0x218)],_0x10e551(0x212)),![];}});function _0x4a2e32(_0x5015f7,_0x2ca9b1){return _0x3b4f44(this,void 0x0,void 0x0,function*(){const _0x26c53a=_0x24cb,_0x563a24=_0x5015f7[_0x26c53a(0x22a)](_0x26c53a(0x190)),_0x3e1e66=yield _0x23aa75(_0x2ca9b1,_0x563a24,_0x300264),_0x35f676=yield _0x23aa75(_0x2ca9b1,_0x563a24,_0x4321b0);return{'references':[..._0x3e1e66[_0x26c53a(0x1d6)],..._0x35f676[_0x26c53a(0x1d6)]]};});}const _0xc3d0ea={'referenceTypeId':_0x3464a6(_0x2b178c(0x1a9)),'includeSubtypes':!![],'browseDirection':_0x43a01e[_0x2b178c(0x1b3)],'nodeClassMask':_0x428e1a['ReferenceType']|_0x428e1a[_0x2b178c(0x144)]|_0x428e1a[_0x2b178c(0x1a1)]|_0x428e1a['VariableType'],'resultMask':0x3f};function _0x1aab91(_0x43d513,_0x15c3e1){return _0x3b4f44(this,void 0x0,void 0x0,function*(){const _0x5f219d=_0x24cb,_0x299b2e=_0x43d513[_0x5f219d(0x22a)](_0x5f219d(0x190)),_0x523bf6=yield _0x23aa75(_0x15c3e1,_0x299b2e,_0xc3d0ea);return _0x523bf6;});}const _0x3f0c6=_0x36f88d=>{const _0x40dbca=_0x2b178c;var _0x2eb1f3,_0x118196,_0x2b0958,_0x5106a6;if(!_0x36f88d||!_0x36f88d[_0x40dbca(0x122)]){const _0xfdbf04=$(_0x40dbca(0x159));return _0xfdbf04;}const _0x755f5b=_0x36f88d[_0x40dbca(0x122)][_0x40dbca(0x126)](),_0x2cdbf1=((_0x2eb1f3=_0x36f88d[_0x40dbca(0x193)])===null||_0x2eb1f3===void 0x0?void 0x0:_0x2eb1f3['text'])||((_0x118196=_0x36f88d[_0x40dbca(0x1f9)])===null||_0x118196===void 0x0?void 0x0:_0x118196[_0x40dbca(0x13d)])||_0x36f88d[_0x40dbca(0x122)]['toString'](),{icon:_0x207cd6,color:_0x32d67e}=_0x54d8a7(_0x36f88d),_0x2f397f='('+_0x36f88d[_0x40dbca(0x122)][_0x40dbca(0x126)]()+')\x20'+(((_0x2b0958=_0x36f88d['browseName'])===null||_0x2b0958===void 0x0?void 0x0:_0x2b0958[_0x40dbca(0x13d)])||((_0x5106a6=_0x36f88d['displayName'])===null||_0x5106a6===void 0x0?void 0x0:_0x5106a6[_0x40dbca(0x14e)])||''),_0xd340d6=$(_0x40dbca(0x14c)+_0x36f88d['nodeId']['toString']()+'\x22}><span\x20class=\x22tree-text\x22\x20title='+_0x2f397f+_0x40dbca(0x148)+_0x207cd6+_0x40dbca(0x1cb)+_0x32d67e+_0x40dbca(0x17a)+_0x2cdbf1+_0x40dbca(0x196));return _0xd340d6['addClass'](_0x40dbca(0x117)),_0xd340d6['data'](_0x40dbca(0x190),_0x755f5b),_0xd340d6[_0x40dbca(0x22a)](_0x40dbca(0x1db),_0x36f88d),_0xd340d6;},_0x540945=(_0x51ea42,_0xd3db16)=>{return _0xd3db16['find']('li[key=\x22'+_0x51ea42+'\x22]');},_0x3e5712=(_0x26ad80,_0x3fe386)=>{const _0xf26a89=_0x2b178c;_0x26ad80['$tree']['find']('li\x20>\x20.tree-text')[_0xf26a89(0x153)](_0xf26a89(0x1fd)),_0x3fe386[_0xf26a89(0x1dc)](_0xf26a89(0x1ea))[_0xf26a89(0x197)](_0xf26a89(0x1fd));},_0x33dcb1=(_0x1249fb,_0x19d165,_0x1d6e78)=>_0x3b4f44(void 0x0,void 0x0,void 0x0,function*(){const _0x4e12c5=_0x2b178c;let _0x273975=_0x1d6e78[_0x4e12c5(0x21a)](_0x4e12c5(0x167));_0x19d165['relativePath']['elements']||[];const _0x2fa2a9=_0x19d165[_0x4e12c5(0x162)]||[];if(_0x2fa2a9[_0x4e12c5(0x13b)]===0x0)return;for(const _0x113d16 of _0x2fa2a9){_0x273975[_0x4e12c5(0x1d0)](_0x4e12c5(0x117))&&(yield _0x5174d4(_0x1249fb,_0x273975));const _0x58e474=_0x540945(_0x113d16,_0x273975);if(_0x58e474[_0x4e12c5(0x13b)]===0x0)return;_0x273975=_0x58e474;}_0x3e5712(_0x1249fb,_0x273975),_0x2c8adf(_0x1249fb['$dropdown'],_0x273975);});function _0x2c8adf(_0x3dccad,_0x36f43e){const _0x2fb351=_0x2b178c,_0x18437f=_0x36f43e['position']()['top'],_0x3bd1ba=_0x3dccad[_0x2fb351(0x1de)]();if(_0x3bd1ba==undefined)return;const _0x2001d5=_0x3bd1ba+_0x18437f-_0x3dccad[_0x2fb351(0x20c)]()/0x2+_0x36f43e['height']()/0x2;_0x3dccad['animate']({'scrollTop':_0x2001d5},0x1f4);}const _0x31ac22=(_0x4081c1,_0x1c3e50)=>_0x3b4f44(void 0x0,void 0x0,void 0x0,function*(){const _0x55ea2c=_0x2b178c,_0x23958b=_0x4081c1['$input'][_0x55ea2c(0x1bc)](),_0x29d32b={'nodeId':_0x23958b,'rootNodeId':_0x1c3e50[_0x55ea2c(0x122)],'isType':_0x4081c1['options'][_0x55ea2c(0x1e8)]||![]},_0x1e8ae4=_0x16922a(_0x4081c1),_0x48551c=yield _0x2c86b9(_0x1e8ae4,_0x29d32b);if(!_0x48551c)return;yield _0x33dcb1(_0x4081c1,_0x48551c,_0x4081c1[_0x55ea2c(0x234)]);});function _0x389142(_0x45641d,_0x296345,_0x2ad7b5,_0x5b4bcc){return _0x3b4f44(this,void 0x0,void 0x0,function*(){const _0x2b7cc5=_0x24cb;if(_0x296345[_0x2b7cc5(0x1d0)](_0x2b7cc5(0x1df))){console['log'](_0x2b7cc5(0x181));return;}if(_0x296345[_0x2b7cc5(0x1d0)]('loading')){console[_0x2b7cc5(0x18c)]('already\x20loading');return;}_0x296345[_0x2b7cc5(0x197)]('loading'),_0x296345[_0x2b7cc5(0x189)]('<div\x20class=\x22spinner\x22></div>');try{_0x296345[_0x2b7cc5(0x21a)]('ul')[_0x2b7cc5(0x184)]();const {references:_0xabe0fa}=yield _0x2ad7b5(_0x296345,_0x5b4bcc);_0xabe0fa['sort']((_0x51c1a9,_0xf1dfac)=>{const _0x4d6f03=_0x2b7cc5;var _0x48fccb,_0x1d009a;return(((_0x48fccb=_0x51c1a9[_0x4d6f03(0x1f9)])===null||_0x48fccb===void 0x0?void 0x0:_0x48fccb[_0x4d6f03(0x13d)])||'')[_0x4d6f03(0x119)](((_0x1d009a=_0xf1dfac[_0x4d6f03(0x1f9)])===null||_0x1d009a===void 0x0?void 0x0:_0x1d009a[_0x4d6f03(0x13d)])||'');});for(const _0x5905d6 of _0xabe0fa){if(_0x45641d[_0x2b7cc5(0x17d)][_0x2b7cc5(0x11f)]&&!_0x45641d['options'][_0x2b7cc5(0x11f)](_0x5905d6))continue;const _0x4d4bff=_0x3f0c6(_0x5905d6);_0x296345['children']('ul')[_0x2b7cc5(0x189)](_0x4d4bff);}_0x296345[_0x2b7cc5(0x197)](_0x2b7cc5(0x1df));}catch(_0x57a930){_0x296345[_0x2b7cc5(0x21a)]('ul')[_0x2b7cc5(0x189)](_0x2b7cc5(0x1f0)+_0x57a930['message']+_0x2b7cc5(0x200)),console['log'](_0x2b7cc5(0x22d),_0x57a930);}_0x296345[_0x2b7cc5(0x1dc)](_0x2b7cc5(0x1f7))['remove'](),_0x296345[_0x2b7cc5(0x153)](_0x2b7cc5(0x1a6));});}function _0x16922a(_0x4859f3){const _0x4299ce=_0x2b178c,_0x37b26d={'baseUrl':_0x4859f3['options'][_0x4299ce(0x137)],'endpointNode':typeof _0x4859f3[_0x4299ce(0x17d)]['endpointNode']===_0x4299ce(0x175)?_0x4859f3[_0x4299ce(0x17d)]['endpointNode']():_0x4859f3[_0x4299ce(0x17d)][_0x4299ce(0x180)],'endpoint':typeof _0x4859f3[_0x4299ce(0x17d)][_0x4299ce(0x169)]===_0x4299ce(0x175)?_0x4859f3[_0x4299ce(0x17d)][_0x4299ce(0x169)]():_0x4859f3[_0x4299ce(0x17d)]['endpoint']};return _0x37b26d;}function _0x5174d4(_0x4d041d,_0x14693a){return _0x3b4f44(this,void 0x0,void 0x0,function*(){const _0x3fa97f=_0x24cb;if(_0x14693a['hasClass'](_0x3fa97f(0x1df))){_0x14693a[_0x3fa97f(0x153)](_0x3fa97f(0x117))['addClass']('expanded'),_0x14693a[_0x3fa97f(0x21a)]('ul')[_0x3fa97f(0x138)]();return;}const _0x41cd0c=_0x16922a(_0x4d041d),_0x1560d4=!_0x4d041d[_0x3fa97f(0x17d)][_0x3fa97f(0x1e8)]?_0x4a2e32:_0x1aab91;try{yield _0x389142(_0x4d041d,_0x14693a,_0x1560d4,_0x41cd0c),_0x14693a[_0x3fa97f(0x153)]('expandable')[_0x3fa97f(0x197)](_0x3fa97f(0x1f6));}catch(_0x321843){_0x14693a[_0x3fa97f(0x153)]('expandable')[_0x3fa97f(0x197)](_0x3fa97f(0x1f6)),console['log'](_0x3fa97f(0x133),_0x321843);}});}const _0x49b4fb={'browseName':{'namespaceIndex':0x0,'name':'Objects'},'nodeClass':_0x2b178c(0x1bd),'nodeId':_0x2b178c(0x177),'displayName':{'text':_0x2b178c(0x208)},'typeDefinition':_0x46c8b2},_0x2865e2=()=>{const _0x427e6b=_0x2b178c;$[_0x427e6b(0x1e0)](_0x427e6b(0x238),{'options':{'endpointNode':()=>({'endpoint':_0x427e6b(0x1f4)}),'endpoint':()=>undefined,'parentNode':()=>_0x49b4fb,'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x3b4f44(this,void 0x0,void 0x0,function*(){const _0x6c503e=_0x24cb,_0x1e9b2a=this;if(_0x1e9b2a[_0x6c503e(0x198)]==undefined){const _0x82df0=typeof _0x1e9b2a[_0x6c503e(0x17d)][_0x6c503e(0x163)]===_0x6c503e(0x175)?_0x1e9b2a[_0x6c503e(0x17d)][_0x6c503e(0x163)]['call'](_0x1e9b2a):_0x1e9b2a[_0x6c503e(0x17d)][_0x6c503e(0x163)];if(_0x82df0 instanceof Promise){const _0xdef8c2=yield _0x82df0;_0x1e9b2a['__parentNode']=_0xdef8c2;}else _0x1e9b2a[_0x6c503e(0x198)]=_0x82df0;}return _0x1e9b2a['__parentNode']||_0x49b4fb;});},'reset'(){return _0x3b4f44(this,void 0x0,void 0x0,function*(){const _0x50f769=_0x24cb,_0x5360cf=this,_0x4d23f9=_0x5360cf;_0x4d23f9[_0x50f769(0x198)]=undefined,_0x5360cf[_0x50f769(0x234)][_0x50f769(0x184)]();const _0x4d8252=yield this['resolveParentNode'](),_0x16f883=_0x3f0c6(_0x4d8252);_0x5360cf[_0x50f769(0x234)]['append'](_0x16f883),_0x5360cf[_0x50f769(0x149)]=_0x4d8252;});},'verify'(_0x74d514){const _0x525c8d=_0x427e6b,_0x35f824=this,_0x6aa5f7=_0x16922a(_0x35f824);_0x5e4ce7(_0x6aa5f7,_0x74d514,_0x35f824[_0x525c8d(0x1ca)],_0x35f824[_0x525c8d(0x12c)])[_0x525c8d(0x16c)](_0xdbd296=>{const _0x182a1b=_0x525c8d;!_0xdbd296?_0x35f824['$combo'][_0x182a1b(0x197)](_0x182a1b(0x236)):_0x35f824[_0x182a1b(0x1b9)][_0x182a1b(0x153)](_0x182a1b(0x236));});},'_hideMenu'(_0x5dc311){const _0x4d93a3=_0x427e6b,_0xf37542=this;$(document)[_0x4d93a3(0x1ad)](_0x4d93a3(0x13a)),_0x5dc311[_0x4d93a3(0x14f)](),_0x5dc311[_0x4d93a3(0x229)]({'height':_0x4d93a3(0x210)});if(_0x5dc311[_0x4d93a3(0x16a)][_0x4d93a3(0x123)]){var _0x3d7fd8=[];_0x5dc311[_0x4d93a3(0x1dc)]('input[type=\x22checkbox\x22]')[_0x4d93a3(0x15f)](function(){const _0x20692f=_0x4d93a3;$(this)[_0x20692f(0x17f)](_0x20692f(0x211))&&_0x3d7fd8[_0x20692f(0x1a3)]($(this)[_0x20692f(0x22a)](_0x20692f(0x190)));}),_0x5dc311[_0x4d93a3(0x1bf)](_0x3d7fd8);}_0xf37542[_0x4d93a3(0x1e6)]['is'](_0x4d93a3(0x191))?_0xf37542[_0x4d93a3(0x1ca)]['trigger'](_0x4d93a3(0x134)):_0xf37542['$selectTrigger']['trigger'](_0x4d93a3(0x134));},'_createMenu'(_0x4b2841,_0x2f254f,_0x2447f9){const _0x2251e3=_0x427e6b;var _0x43e81c=this;const _0x54a37c=$('<div>')[_0x2251e3(0x197)]('sterfive-typedInput-options\x20sterfive-online-menu');return _0x54a37c['opts']=_0x2f254f,_0x54a37c[_0x2251e3(0x1bf)]=_0x2447f9,_0x4b2841[_0x2251e3(0x235)](_0x4cc27f=>{const _0xae7f97=_0x2251e3;typeof _0x4cc27f===_0xae7f97(0x21e)&&(_0x4cc27f={'value':_0x4cc27f,'label':_0x4cc27f});var _0x4c8f61=$(_0xae7f97(0x128))[_0xae7f97(0x174)](_0xae7f97(0x190),_0x4cc27f['value'])['appendTo'](_0x54a37c);_0x4cc27f[_0xae7f97(0x1c6)]&&_0x4c8f61[_0xae7f97(0x14e)](_0x4cc27f[_0xae7f97(0x1c6)]);_0x4cc27f[_0xae7f97(0x19a)]&&_0x4c8f61[_0xae7f97(0x17f)](_0xae7f97(0x19a),_0x4cc27f[_0xae7f97(0x19a)]);if(_0x4cc27f[_0xae7f97(0x13c)]){if(_0x4cc27f[_0xae7f97(0x13c)]['indexOf']('<')===0x0)$(_0x4cc27f['icon'])['prependTo'](_0x4c8f61);else _0x4cc27f[_0xae7f97(0x13c)]['indexOf']('/')!==-0x1?$(_0xae7f97(0x183),{'class':_0xae7f97(0x1b0),'style':_0xae7f97(0x195)+_0x4cc27f[_0xae7f97(0x13c)]+_0xae7f97(0x230)+_0x4cc27f[_0xae7f97(0x13c)]+');'})[_0xae7f97(0x16b)](_0x4c8f61):$(_0xae7f97(0x183),{'class':_0xae7f97(0x209)+_0x4cc27f['icon']})[_0xae7f97(0x16b)](_0x4c8f61);}else _0x4c8f61[_0xae7f97(0x229)]({'paddingLeft':_0xae7f97(0x231)});!_0x4cc27f[_0xae7f97(0x13c)]&&!_0x4cc27f[_0xae7f97(0x1c6)]&&_0x4c8f61[_0xae7f97(0x14e)](_0x4cc27f[_0xae7f97(0x190)]);var _0x1166df;_0x2f254f[_0xae7f97(0x123)]&&(_0x1166df=$('<input\x20type=\x22checkbox\x22>')[_0xae7f97(0x229)]('pointer-events',_0xae7f97(0x1fe))[_0xae7f97(0x22a)](_0xae7f97(0x190),_0x4cc27f[_0xae7f97(0x190)])['prependTo'](_0x4c8f61)['on'](_0xae7f97(0x21d),function(_0x54ce15){const _0x515af4=_0xae7f97;_0x54ce15[_0x515af4(0x1a8)]();})),_0x4c8f61['on']('click',function(_0xe69e87){const _0x14f2c1=_0xae7f97;_0xe69e87[_0x14f2c1(0x1a8)](),_0xe69e87[_0x14f2c1(0x118)](),!_0x2f254f[_0x14f2c1(0x123)]?(_0x2447f9(_0x4cc27f[_0x14f2c1(0x190)]),_0x43e81c[_0x14f2c1(0x1a2)](_0x54a37c)):_0x1166df['prop'](_0x14f2c1(0x211),!_0x1166df['prop'](_0x14f2c1(0x211)));});}),_0x54a37c[_0x2251e3(0x229)]({'display':_0x2251e3(0x1fe)}),_0x54a37c['on'](_0x2251e3(0x220),function(_0x62527b){const _0x47008b=_0x2251e3;if(_0x62527b[_0x47008b(0x1ff)]===0x28)_0x62527b[_0x47008b(0x1a8)](),$(this)['children'](_0x47008b(0x140))['next']()['trigger'](_0x47008b(0x134));else{if(_0x62527b[_0x47008b(0x1ff)]===0x26)_0x62527b[_0x47008b(0x1a8)](),$(this)[_0x47008b(0x21a)](':focus')['prev']()[_0x47008b(0x199)](_0x47008b(0x134));else _0x62527b[_0x47008b(0x1ff)]===0x1b&&(_0x62527b['preventDefault'](),_0x43e81c[_0x47008b(0x1a2)](_0x54a37c));}_0x62527b[_0x47008b(0x118)]();}),_0x54a37c;},'disarmClick':![],'_showMenu'(_0x3d15e2,_0x45e926){const _0x2612d5=_0x427e6b;if(this[_0x2612d5(0x1b1)]){this[_0x2612d5(0x1b1)]=![];return;}var _0x5ebaae=this,_0x1a54d8=_0x45e926['offset'](),_0x8fa94c=_0x45e926[_0x2612d5(0x20c)](),_0x378ec6=_0x3d15e2['height'](),_0x335b89=_0x8fa94c+_0x1a54d8[_0x2612d5(0x120)];_0x335b89+_0x378ec6-$(document)[_0x2612d5(0x1de)]()>$(window)[_0x2612d5(0x20c)]()&&(_0x335b89-=_0x335b89+_0x378ec6-$(window)[_0x2612d5(0x20c)]()+0x5),_0x335b89<0x0&&(_0x3d15e2[_0x2612d5(0x20c)](_0x378ec6+_0x335b89),_0x335b89=0x0),_0x3d15e2['css']({'top':_0x335b89+'px','left':_0x1a54d8[_0x2612d5(0x11e)]+'px'}),_0x3d15e2['slideDown'](0x64),this[_0x2612d5(0x178)](function(){const _0x31fade=_0x2612d5;_0x5ebaae['$uiSelect'][_0x31fade(0x197)]('red-ui-typedInput-focus'),$(document)['on']('mousedown.red-ui-typedInput-close-property-select',function(_0x36dee5){const _0x4e687b=_0x31fade;!$(_0x36dee5[_0x4e687b(0x1ee)])[_0x4e687b(0x1c0)](_0x3d15e2)['length']&&_0x5ebaae['_hideMenu'](_0x3d15e2),$(_0x36dee5[_0x4e687b(0x1ee)])[_0x4e687b(0x1c0)](_0x45e926)['length']&&(_0x5ebaae[_0x4e687b(0x1b1)]=!![],_0x36dee5[_0x4e687b(0x1a8)]());});});},'_showTypeMenu'(){const _0x2bc415=_0x427e6b,_0x231661=this;this[_0x2bc415(0x219)](_0x231661[_0x2bc415(0x165)],_0x231661['$combo']),_0x231661['$dropdown'][_0x2bc415(0x14f)]();const _0x2071d2=_0x231661[_0x2bc415(0x20a)];var _0x422859=_0x231661[_0x2bc415(0x165)][_0x2bc415(0x1dc)](_0x2bc415(0x227)+_0x2071d2+'\x27');setTimeout(function(){const _0xa3dfe3=_0x2bc415;_0x422859[_0xa3dfe3(0x199)](_0xa3dfe3(0x134));},0x78);},'_initMenu'(){const _0x431c5b=_0x427e6b,_0x2e9f91=this;_0x2e9f91[_0x431c5b(0x1ae)][_0x431c5b(0x174)]('tabindex',-0x1),_0x2e9f91[_0x431c5b(0x1ae)]['on'](_0x431c5b(0x1d9),function(_0x22654d){_0x22654d['preventDefault']();});_0x2e9f91[_0x431c5b(0x165)]&&_0x2e9f91[_0x431c5b(0x165)][_0x431c5b(0x186)]();const _0x312e4d=[{'label':_0x431c5b(0x14e),'value':'t','title':'Value\x20is\x20not\x20verified','icon':'<i\x20class=\x22fa\x20fa-font\x22/i>\x20'},{'label':_0x431c5b(0x12e),'value':_0x431c5b(0x1bb),'title':_0x431c5b(0x16f),'icon':_0x431c5b(0x1ec)},{'label':'NodeId','value':'n','icon':_0x431c5b(0x124)},{'label':_0x431c5b(0x1c5),'value':'na','icon':'<i\x20class=\x22fa\x20fa-bookmark\x22/>&nbsp;\x20'},{'label':_0x431c5b(0x17c),'value':'nsu','icon':_0x431c5b(0x232)},{'label':_0x431c5b(0x1b7),'value':'b','icon':'<i\x20class=\x22fa\x20fa-tag\x22/><i\x20class=\x22fa\x20fa-fighter-jet\x22/>&nbsp;'},{'label':_0x431c5b(0x152),'value':'ab','icon':_0x431c5b(0x12a)}],_0xb9201=_0x517a4b(_0x2e9f91[_0x431c5b(0x1ca)][_0x431c5b(0x1bc)]()),_0x519685=_0x312e4d[_0x431c5b(0x1dc)](_0x41f9dd=>_0x41f9dd[_0x431c5b(0x190)]===_0xb9201);_0x2e9f91['$selectLabel'][_0x431c5b(0x184)]()[_0x431c5b(0x189)](_0x431c5b(0x127)+((_0x519685===null||_0x519685===void 0x0?void 0x0:_0x519685[_0x431c5b(0x19a)])||'')+_0x431c5b(0x161)+((_0x519685===null||_0x519685===void 0x0?void 0x0:_0x519685[_0x431c5b(0x13c)])||'')+_0x431c5b(0x1f2)),_0x2e9f91['selectedMenuItem']=_0xb9201;const _0xaf9791=this;_0x2e9f91[_0x431c5b(0x165)]=this[_0x431c5b(0x154)](_0x312e4d,{},_0x20e789=>{const _0x208261=_0x431c5b,_0x298218=_0x2bffcd(_0x20e789);_0x298218&&_0xaf9791['verify'](_0x298218);const _0x5918ee=_0x312e4d[_0x208261(0x1dc)](_0x7d506e=>_0x7d506e[_0x208261(0x190)]===_0x20e789);_0x2e9f91[_0x208261(0x20a)]=_0x20e789,_0x2e9f91['$selectLabel'][_0x208261(0x184)]()[_0x208261(0x189)](_0x208261(0x127)+((_0x5918ee===null||_0x5918ee===void 0x0?void 0x0:_0x5918ee['title'])||'')+_0x208261(0x161)+((_0x5918ee===null||_0x5918ee===void 0x0?void 0x0:_0x5918ee[_0x208261(0x13c)])||'')+_0x208261(0x1f2));}),_0x2e9f91[_0x431c5b(0x165)][_0x431c5b(0x194)](document[_0x431c5b(0x1d5)]),_0x2e9f91[_0x431c5b(0x165)]['hide'](),_0x2e9f91[_0x431c5b(0x1ae)][_0x431c5b(0x1e9)]();},'mode'(){const _0x30c61c=_0x427e6b,_0x53696a=this;return _0x2bffcd(_0x53696a[_0x30c61c(0x20a)]);},'setMode'(_0x4aaef0){const _0xa68e20=_0x427e6b,_0x11266c=this,_0x98954a=_0xe6d804(_0x4aaef0);_0x11266c[_0xa68e20(0x20a)]=_0x98954a;},'_create'(){const _0x4cd6b4=_0x427e6b,_0x70b6c8=this;_0x70b6c8[_0x4cd6b4(0x1ca)]=this[_0x4cd6b4(0x182)],_0x70b6c8[_0x4cd6b4(0x1ca)]['css'](_0x4cd6b4(0x205),_0x4cd6b4(0x1fe)),_0x70b6c8[_0x4cd6b4(0x1e6)]=_0x70b6c8[_0x4cd6b4(0x1ca)][_0x4cd6b4(0x179)](_0x4cd6b4(0x139))[_0x4cd6b4(0x121)]()[_0x4cd6b4(0x197)]('main-wrapper'),_0x70b6c8['$combo']=$(_0x4cd6b4(0x18b)),_0x70b6c8['$combo'][_0x4cd6b4(0x197)](_0x4cd6b4(0x141)),_0x70b6c8[_0x4cd6b4(0x1ca)][_0x4cd6b4(0x224)](_0x70b6c8[_0x4cd6b4(0x1b9)]),_0x70b6c8[_0x4cd6b4(0x15e)]=$(_0x4cd6b4(0x18b))['addClass'](_0x4cd6b4(0x203)),_0x70b6c8['$combo']['append'](_0x70b6c8[_0x4cd6b4(0x15e)]),_0x70b6c8['$inputGroup'][_0x4cd6b4(0x189)](_0x70b6c8[_0x4cd6b4(0x1ca)]),_0x70b6c8[_0x4cd6b4(0x226)]=$(_0x4cd6b4(0x213)),_0x70b6c8[_0x4cd6b4(0x1ca)][_0x4cd6b4(0x19f)](_0x70b6c8[_0x4cd6b4(0x226)]),_0x70b6c8[_0x4cd6b4(0x226)]['on'](_0x4cd6b4(0x1ce),function(){return _0x3b4f44(this,void 0x0,void 0x0,function*(){const _0x2fbaa4=_0x24cb;var _0x5ce05a;let _0x3ead63=![],_0x2e6758;!_0x70b6c8[_0x2fbaa4(0x164)]['is'](_0x2fbaa4(0x191))&&(_0x70b6c8[_0x2fbaa4(0x12c)][_0x2fbaa4(0x14f)](),_0x2e6758=yield _0x70b6c8[_0x2fbaa4(0x18a)](),(_0x2e6758!==_0x70b6c8[_0x2fbaa4(0x149)]||((_0x5ce05a=_0x70b6c8['currentParent'])===null||_0x5ce05a===void 0x0?void 0x0:_0x5ce05a['nodeId'])!==_0x2e6758['nodeId'])&&(yield _0x70b6c8['reset']()),_0x3ead63=!![]),_0x70b6c8[_0x2fbaa4(0x164)][_0x2fbaa4(0x138)](),_0x3ead63&&(yield _0x31ac22(_0x70b6c8,_0x2e6758));});}),_0x70b6c8[_0x4cd6b4(0x201)]=$(_0x4cd6b4(0x1e7)),_0x70b6c8[_0x4cd6b4(0x1ca)][_0x4cd6b4(0x19f)](_0x70b6c8[_0x4cd6b4(0x201)]),_0x70b6c8['$verifyBtn']['on']('click',()=>{const _0x148b1e=_0x4cd6b4,_0x2e9927=_0x70b6c8['mode']();if(!_0x2e9927)return;this[_0x148b1e(0x1ac)](_0x2e9927);});const _0x4bccea=_0x59d794=>_0x3b4f44(this,void 0x0,void 0x0,function*(){const _0xed754d=_0x4cd6b4,_0x1cd5a1=this;let _0xfa5551=_0x1cd5a1[_0xed754d(0x233)]();if(!_0xfa5551)return;const _0x490d09=_0x16922a(_0x1cd5a1),{data:_0x464257,json:_0x2c7555}=yield _0x192a19(_0x490d09,_0x59d794);if(_0x464257['status']!==0xc8)return;if(_0x2c7555[_0xed754d(0x20e)][_0xed754d(0x22c)](/Good/)){const _0x22f64b=_0x132bee(_0x2c7555,_0xfa5551);_0x1cd5a1[_0xed754d(0x1ca)][_0xed754d(0x1bc)](_0x22f64b),_0x1cd5a1[_0xed754d(0x1ca)]['trigger'](_0xed754d(0x1a0));}});{_0x70b6c8[_0x4cd6b4(0x147)]=$(_0x4cd6b4(0x139)),_0x70b6c8['$input'][_0x4cd6b4(0x1e2)](_0x70b6c8[_0x4cd6b4(0x147)]),_0x70b6c8['$selectTrigger']=$('<button\x20type=\x22button\x22\x20tabindex=\x220\x22></button>')[_0x4cd6b4(0x16b)](_0x70b6c8[_0x4cd6b4(0x147)]),$(_0x4cd6b4(0x1fb))['toggle'](!![])[_0x4cd6b4(0x194)](_0x70b6c8[_0x4cd6b4(0x1ae)]),_0x70b6c8['$selectTrigger']['on'](_0x4cd6b4(0x1ce),function(_0x14ba15){const _0x3b9fad=_0x4cd6b4;_0x14ba15[_0x3b9fad(0x1a8)](),_0x14ba15[_0x3b9fad(0x118)](),_0x70b6c8['_showTypeMenu']();}),_0x70b6c8[_0x4cd6b4(0x1ae)]['on'](_0x4cd6b4(0x220),function(_0x20d9cd){const _0x1f8507=_0x4cd6b4;_0x20d9cd[_0x1f8507(0x1ff)]===0x28&&_0x70b6c8[_0x1f8507(0x1a4)](),_0x20d9cd[_0x1f8507(0x118)]();})['on'](_0x4cd6b4(0x134),function(){const _0x5b5b6a=_0x4cd6b4;_0x70b6c8[_0x5b5b6a(0x147)][_0x5b5b6a(0x197)](_0x5b5b6a(0x1a7));})['on'](_0x4cd6b4(0x12b),function(){const _0x48f158=_0x4cd6b4;_0x70b6c8[_0x48f158(0x147)]['removeClass'](_0x48f158(0x1a7));}),_0x70b6c8['$selectLabel']=$(_0x4cd6b4(0x185))['appendTo'](_0x70b6c8['$selectTrigger']);}this[_0x4cd6b4(0x1ef)]();!_0x70b6c8['$input']['attr']('placeholder')&&_0x70b6c8['$input']['attr'](_0x4cd6b4(0x176),_0x4cd6b4(0x1ed));_0x70b6c8[_0x4cd6b4(0x12c)]=$('<div\x20class=\x22info-text\x22></div>'),_0x70b6c8[_0x4cd6b4(0x12c)]['hide'](),_0x70b6c8['$combo'][_0x4cd6b4(0x189)](_0x70b6c8[_0x4cd6b4(0x12c)]),_0x70b6c8[_0x4cd6b4(0x164)]=$(_0x4cd6b4(0x18b))[_0x4cd6b4(0x197)](_0x4cd6b4(0x1cd))[_0x4cd6b4(0x14f)]()[_0x4cd6b4(0x194)](_0x70b6c8[_0x4cd6b4(0x1b9)]),_0x70b6c8[_0x4cd6b4(0x234)]=$(_0x4cd6b4(0x19b))[_0x4cd6b4(0x194)](_0x70b6c8[_0x4cd6b4(0x164)]),this[_0x4cd6b4(0x1af)]();const _0x1cfd08=(_0x207e5a,_0x5f38d8)=>{const _0xc8d63c=_0x4cd6b4,_0x30897f=0x14,_0x2fde2a=0x14,_0x1a889f=_0x207e5a['offset'](),_0x5c9c68=_0x5f38d8;if(_0x5c9c68[_0xc8d63c(0x143)]>=_0x1a889f['left']&&_0x5c9c68['pageX']<=_0x1a889f[_0xc8d63c(0x11e)]+_0x30897f&&_0x5c9c68['pageY']>=_0x1a889f[_0xc8d63c(0x120)]&&_0x5c9c68[_0xc8d63c(0x136)]<=_0x1a889f['top']+_0x2fde2a)return!![];return![];},_0x4585c9=_0x31d488=>_0x3b4f44(this,void 0x0,void 0x0,function*(){const _0x423491=_0x4cd6b4;if(_0x31d488[_0x423491(0x1d0)](_0x423491(0x117)))_0x5174d4(_0x70b6c8,_0x31d488);else{if(_0x31d488[_0x423491(0x1d0)](_0x423491(0x1f6)))_0x31d488['children']('ul')[_0x423491(0x138)](),_0x31d488[_0x423491(0x16e)]('expandable\x20expanded');else{if(_0x31d488[_0x423491(0x21a)]('ul')[_0x423491(0x21a)]()[_0x423491(0x13b)]>0x0)_0x31d488[_0x423491(0x21a)]('ul')[_0x423491(0x138)](),_0x31d488[_0x423491(0x16e)](_0x423491(0x160));else;}}});_0x70b6c8[_0x4cd6b4(0x234)]['on'](_0x4cd6b4(0x15a),'li',function(_0x1f3272){const _0x21c318=_0x4cd6b4;var _0xf3e699,_0x37c840;_0x1f3272['stopPropagation']();let _0x1ba70f=$(this);if(_0x1cfd08(_0x1ba70f,_0x1f3272))_0x4585c9(_0x1ba70f);else{const _0x34c7ef=_0x1ba70f[_0x21c318(0x22a)](_0x21c318(0x190)),_0x29519d=_0x1ba70f[_0x21c318(0x22a)](_0x21c318(0x1db));if(_0x70b6c8[_0x21c318(0x17d)][_0x21c318(0x22b)]&&!_0x70b6c8[_0x21c318(0x17d)][_0x21c318(0x22b)](_0x29519d))return;_0x70b6c8['$input'][_0x21c318(0x22a)](_0x21c318(0x1db),_0x29519d),((_0xf3e699=_0x29519d['displayName'])===null||_0xf3e699===void 0x0?void 0x0:_0xf3e699[_0x21c318(0x14e)])||((_0x37c840=_0x29519d[_0x21c318(0x1f9)])===null||_0x37c840===void 0x0?void 0x0:_0x37c840['name'])||_0x29519d['nodeId'][_0x21c318(0x126)]();let _0x358f87=_0x70b6c8['mode']();!_0x358f87&&(_0x358f87=_0x21c318(0x122),_0x70b6c8[_0x21c318(0x1c3)](_0x358f87)),_0x4bccea(_0x34c7ef)['then'](()=>{const _0x4261f3=_0x21c318;_0x70b6c8[_0x4261f3(0x164)]['hide']();})[_0x21c318(0x1b6)](_0x4061b0=>{const _0x4f87f5=_0x21c318;_0x70b6c8[_0x4f87f5(0x164)][_0x4f87f5(0x14f)]();});}}),_0x70b6c8[_0x4cd6b4(0x234)]['on'](_0x4cd6b4(0x1ce),'li',function(_0x558a7b){const _0x1147ca=_0x4cd6b4;_0x558a7b[_0x1147ca(0x118)]();let _0x4479f2=$(this);_0x1cfd08(_0x4479f2,_0x558a7b)&&_0x4585c9(_0x4479f2),_0x3e5712(_0x70b6c8,_0x4479f2);}),$(document)['on'](_0x4cd6b4(0x1ce),function(_0x4f5ec5){const _0x48b5d7=_0x4cd6b4;!$(_0x4f5ec5[_0x48b5d7(0x1ee)])[_0x48b5d7(0x1c0)](_0x70b6c8[_0x48b5d7(0x1b9)])[_0x48b5d7(0x13b)]&&_0x70b6c8[_0x48b5d7(0x164)][_0x48b5d7(0x14f)]();});}});},_0x182e22=()=>{const _0x29889d=_0x2b178c,_0xb82191=$(_0x29889d(0x15b)),_0x1dd580=_0xb82191['val'](),_0x13a9c2=RED[_0x29889d(0x1b2)]['node'](_0x1dd580);if(!_0x13a9c2)return undefined;const {endpoint:_0xd581e1,securityMode:_0x488eb1,securityPolicy:_0x313ec0,userIdentityType:_0x5d2cca,credentials:_0x2cad2,namespaceAliases:_0x164ccc}=_0x13a9c2,_0x37119b={'endpoint':_0xd581e1,'securityMode':_0x488eb1,'securityPolicy':_0x313ec0,'userIdentityType':_0x5d2cca,'credentials':_0x2cad2,'namespaceAliases':_0x164ccc};return _0x37119b;},_0x3d766a=()=>{const _0x431f28=_0x2b178c,_0x1979e7=$('#node-input-endpoint'),_0x2a6628=_0x1979e7[_0x431f28(0x1bc)](),_0x231c80=_0x182e22();if(!_0x231c80)return undefined;const _0x25f007=_0x231c80[_0x431f28(0x151)];return Object['assign']({'namespaceAliases':_0x25f007,'id':_0x2a6628},_0x231c80);},_0x50d275=()=>{return{'endpointNode':_0x3d766a};},_0x12256d=()=>{const _0x5e089d=_0x2b178c,_0x247fe2=$('.red-ui-tray-body');console['log'](_0x5e089d(0x1d4),_0x247fe2[_0x5e089d(0x13b)]);if(_0x247fe2['length']){console[_0x5e089d(0x18c)](_0x5e089d(0x18d));const _0x4a8ff2=$(_0x5e089d(0x12d),{'src':_0x5e089d(0x22f),'scrolling':'no','style':_0x5e089d(0x1f5),'allowtransparency':'true','width':_0x5e089d(0x1d8),'height':'30px'});_0x247fe2[_0x5e089d(0x189)](_0x4a8ff2),_0x4a8ff2[_0x5e089d(0x229)]({'position':_0x5e089d(0x21f),'right':'20px','bottom':_0x5e089d(0x1b4)});}};RED[_0x2b178c(0x1b2)]['registerType'](_0x2b178c(0x1f1),{'category':_0x2b178c(0x188),'color':_0x2b178c(0x1a5),'align':_0x2b178c(0x15c),'icon':_0x2b178c(0x1ab),'paletteLabel':_0x2b178c(0x130),'defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':_0x2b178c(0x13f)},'attributeId':{'value':_0x2b178c(0x168),'required':!![]},'nodeId':{'value':'','required':![]}},'inputs':0x1,'outputs':0x1,'label'(){return this['name']||'OPCUA\x20Client\x20Write';},'labelStyle'(){return this['name']?'node_label_italic':'';},'oneditprepare'(){const _0x12f6f2=_0x2b178c,_0xf61d5e=this;_0x2865e2(),_0x12256d(),_0xf61d5e[_0x12f6f2(0x12f)]=0x1;const _0x5e8d20=$(_0x12f6f2(0x1fa));_0x5e8d20[_0x12f6f2(0x17b)](Object[_0x12f6f2(0x192)](Object[_0x12f6f2(0x192)]({},_0x50d275()),{'isSelectable'(_0x51ce00){const _0x462b7a=_0x12f6f2;return _0x51ce00[_0x462b7a(0x1ba)]===_0x462b7a(0x13e);}}));},'oneditsave'(){}});}()));function _0x2566(){const _0x169d3e=['5iYqXpM','../../icons/opcuanodeLogo.png','verify','off','$selectTrigger','reset','red-ui-typedInput-icon','disarmClick','nodes','Forward','16px','browsePath','catch','BrowsePath','2920416OiOeYu','$combo','nodeClass','msg','val','Object','POST','callback','closest','i=61','SuppressedError','setMode','/walk-backward','Aliased\x20NodeId','label','View','fa-cog','10285670sYuCTc','$input','\x22\x20style=\x22color:','fetching\x20failed\x20with\x20error','sterfive-dropdown','click','throw','hasClass','HasComponent','nsu','6599qudLYS','installFeedbackWidget\x20','body','references','grey','180px','mousedown.red-ui-typedInput-focus-block','ns=0;i=61','reference','find','NodeClass','scrollTop','fetched','widget','fa-sliders','before','status','aliasedNodeId','fa-object-group','$elementDiv','<button\x20title=\x22verify\x20nodeId\x20or\x20browsePath\x22><i\x20class=\x22fa\x20fa-refresh\x22></i></button>','isTypeRef','show','.tree-text:first','referenceTypeId','<i\x20class=\x22fa\x20fa-envelope-open-o\x22/>','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','target','_initMenu','<li>error\x20','OpcUa-Client2-Write','</span>','done','opc.tcp://opcuademo.sterfive.com:26543','background-color:transparent;overflow:hidden;border:3px','expanded','.spinner','sterfive-info','browseName','#node-input-nodeId','<i\x20class=\x22red-ui-typedInput-icon\x20fa\x20fa-caret-down\x22></i>','8817263SKQXCN','selected','none','keyCode','</li>','$verifyBtn','TypeDefinition','input-group','typeDefinition','border','requestedNodeId','Unspecified','Objects','red-ui-typedInput-icon\x20','selectedMenuItem','8OouArD','height','SeaGreen','statusCode','Method','auto','checked','failure','<button\x20title=\x22open\x20OPCUA\x20AddressSpace\x20Browser\x22><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','5002818JkBqtj','aliased\x20NodeId:\x20','nodeId_aliased','HasChild','statusText','_showMenu','children','Both','!!failure!!','mousedown','string','absolute','keydown','VariableType','4NSqiTQ','fa-list-alt','replaceWith','nodeId:\x20','$toggleTreeBtn','[value=\x27','CadetBlue','css','data','isSelectable','match','err','browseResult','/opcua-for-node-red/support-frame.html',');\x20-webkit-mask-image:\x20url(','18px','<i\x20class=\x22fa\x20fa-id-card\x22/>&nbsp;\x20','mode','$tree','forEach','input-error','BrowseName','sterfive.nodeBrowser','ns=0;i=35','ns=0;i=47','426giIHvh','expandable','stopPropagation','localeCompare','44VwURES','aliased\x20browsePath:\x20','json','node\x20class:\x20','left','filter','top','parent','nodeId','multiple','<i\x20class=\x22fa\x20fa-tag\x22/>1\x20&nbsp;\x20','node','toString','<span\x20title=','<a\x20href=\x22#\x22></a>','suppressed','<i\x20class=\x22fa\x20fa-bookmark\x22/><i\x20class=\x22fa\x20fa-fighter-jet\x22/>&nbsp;','blur','$info','<iframe></iframe>','msg.','inputs','write','statusCode:\x20','/browse','error','focus','browse\x20path:\x20','pageY','baseUrl','toggle','<div>','mousedown.red-ui-typedInput-close-property-select','length','icon','name','Variable','OpcUa-Endpoint2',':focus','sterfive-combo-box','12695364YGKpNS','pageX','ObjectType','Inverse','fa-folder','$uiSelect','><i\x20class=\x22fa\x20','currentParent','aliasedBrowsePath','HasProperty','<li\x20key=\x22','Invalid','text','hide','stringify','namespaceAliases','Aliased\x20Browse\x20Path','removeClass','_createMenu','1118811vtEciE','bp_aliased','IsForward','Organizes','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','dblclick','#node-input-endpoint','right','ns=0;i=45','$inputGroup','each','expandable\x20expanded','>&nbsp;\x20','nodeIds','parentNode','$dropdown','$menu','ReferenceType',':first','Value','endpoint','opts','prependTo','then','Good','toggleClass','node\x20id\x20or\x20\x20browse\x20path\x20comes\x20from\x20injected\x20msg\x20parameter','nodeId_nsu','/checkNodeId','application/json','/opcua-for-node-red','attr','function','placeholder','ns=0;i=85','_delay','wrap',';\x22></i>\x20','nodeBrowser','NodeId\x20with\x20namespace\x20Urn','options','nsuNodeID','prop','endpointNode','already\x20fetched','element','<i>','empty','<span\x20class=\x22red-ui-typedInput-type-label\x22></span>','remove','next','opcua','append','resolveParentNode','<div/>','log','installing\x20iframe','apply','DodgerBlue','value',':visible','assign','displayName','appendTo','mask-image:\x20url(','</span><ul></ul></li>','addClass','__parentNode','trigger','title','<ul\x20class=\x22sterfive-tree\x22></ul>','SteelBlue','join','HasTypeDefinition','after','change','DataType','_hideMenu','push','_showTypeMenu','#C0DEED','loading','red-ui-typedInput-focus','preventDefault','HasSubtype'];_0x2566=function(){return _0x169d3e;};return _0x2566();}
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHgzYjRmNDQiLCJfMHg0MDJiYjEiLCJfMHgzODAzMjMiLCJfMHgxYmY3OGUiLCJfMHg0MmI2YzAiLCJfMHg0YzVmODMiLCJfMHg0YjUxOTQiLCJfMHgzNzRjMzAiLCJQcm9taXNlIiwiXzB4MTllY2VkIiwiXzB4MmU5MmU4IiwiXzB4NWQ2M2YwIiwiXzB4MTk5OTA4IiwiXzB4M2E5MWI2IiwiXzB4MmEzMzQ3IiwiXzB4NTE2NDJhIiwiXzB4MjdlYTc5IiwiXzB4MmI4NzE2IiwiXzB4MTdkNTcxIiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4MjIxMTgzIiwiXzB4YmE3MCIsIl8weDJjNjY3MSIsIl8weDFmYTUwZSIsIkVycm9yIiwiXzB4NTYxYWU4IiwiXzB4NDZjOGIyIiwiXzB4M2E4MGRjIiwiXzB4NTUxZDI1IiwiXzB4MzcyZDk4IiwiXzB4Nzc4NzhmIiwiXzB4MmI3ZTY2IiwiXzB4NDNhMDFlIiwiXzB4NTNlNGRmIiwiXzB4NDI4ZTFhIiwiXzB4ODczNTllIiwiXzB4MjU3NzZhIiwiXzB4M2IyMDM1IiwiXzB4YzE3ZjYiLCJfMHgzOWEwNDQiLCJfMHgzNDY0YTYiLCJfMHhhYjI1NjYiLCJfMHg1NGQ4YTciLCJfMHg0MmRmOWQiLCJfMHgyM2FhNzUiLCJfMHgzNDQ0YmIiLCJfMHgzN2NjNjciLCJfMHgxOWMyM2MiLCJlbmRwb2ludE5vZGUiLCJfMHgzYzc0MDEiLCJlbmRwb2ludCIsIl8weDVlYWViMiIsImJhc2VVcmwiLCJfMHg3OGI4YjUiLCJfMHgxMGEwNjIiLCJfMHg1N2ZhODgiLCJfMHgzZWVmMzAiLCJfMHgzNjBhMzYiLCJfMHgyNWIxNGIiLCJPYmplY3QiLCJfMHgzZDM4OWIiLCJmZXRjaCIsIkpTT04iLCJjb25zb2xlIiwiXzB4NDU0YmE5IiwiXzB4NDc2MWJiIiwiXzB4MzAwMjY0IiwiXzB4NDMyMWIwIiwiXzB4MmM4NmI5IiwiXzB4NTNiMTU5IiwiXzB4Yzc2NjViIiwiXzB4NDM5MWVhIiwiXzB4NDcwMmJlIiwiXzB4MjBiZmFmIiwibm9kZUlkIiwiXzB4MmFlNjE2Iiwicm9vdE5vZGVJZCIsIl8weDI3ODI1ZCIsImlzVHlwZSIsIl8weDQ2ZWRiMiIsIl8weDQ5MDk1NiIsIl8weDUxMzFkMCIsIl8weDUzYTU2YSIsIl8weDQyODQ4ZCIsIl8weDEzMmJlZSIsIl8weDQ1MjkzNiIsIl8weDZmMTg0NCIsIl8weGUyNmFmNSIsIl8weDU4YjAwYSIsIl8weDNhZjUzZSIsIl8weDQwMGUwNiIsIl8weDVhYzA1YSIsIl8weDUxN2E0YiIsIl8weDRlZmZkZiIsIl8weDU4YmU3YiIsIl8weDJiZmZjZCIsIl8weDM0MGY1ZiIsIl8weDViNDA4YiIsIl8weGU2ZDgwNCIsIl8weDJjNTNlZSIsIl8weDE5MmExOSIsIl8weDNjNmFmOSIsIl8weDJiYmI3NiIsIl8weDUzMTAwYyIsIl8weDFmMTEzNiIsIl8weDJmMTJiYyIsIl8weDRmMTdiMCIsIl8weDFmYTcwZCIsIl8weDMxNmFkNyIsIl8weGU3M2U2IiwiXzB4ZTcxMzdlIiwiUkVEIiwiXzB4ZjJhZWQ5IiwiXzB4MzlkNDhkIiwiXzB4MmU3MGFlIiwiXzB4NWU0Y2U3IiwiXzB4MWExMjllIiwiXzB4YTAzODQ5IiwiXzB4MTI4ODE5IiwiXzB4MzRjNWI5IiwiXzB4MzVkOGZjIiwiXzB4MTMyNGVmIiwiXzB4MTc0MjUxIiwiXzB4ODU3YTg5IiwiXzB4MThjMjgwIiwiXzB4MzBiZDAzIiwiXzB4NTVhNmMxIiwianNvbiIsIl8weDU1OTA2NyIsImRhdGEiLCJfMHg0OWQ1NWIiLCJfMHg0YmNhMjciLCJfMHg0MWI4YWIiLCJfMHhiZTMxMWEiLCJzZXRUaW1lb3V0IiwiXzB4ZTgwZjhjIiwiXzB4MjU4ZGRmIiwiXzB4NGEyZTMyIiwiXzB4NTAxNWY3IiwiXzB4MmNhOWIxIiwiXzB4NTYzYTI0IiwiXzB4M2UxZTY2IiwiXzB4MzVmNjc2IiwiXzB4YzNkMGVhIiwiXzB4MWFhYjkxIiwiXzB4NDNkNTEzIiwiXzB4MTVjM2UxIiwiXzB4Mjk5YjJlIiwiXzB4NTIzYmY2IiwiXzB4M2YwYzYiLCJfMHgzNmY4OGQiLCJfMHgyZWIxZjMiLCJfMHgxMTgxOTYiLCJfMHgyYjA5NTgiLCJfMHg1MTA2YTYiLCJfMHhmZGJmMDQiLCIkIiwiXzB4NzU1ZjViIiwiXzB4MmNkYmYxIiwiaWNvbiIsIl8weDIwN2NkNiIsImNvbG9yIiwiXzB4MzJkNjdlIiwiXzB4MmYzOTdmIiwiXzB4ZDM0MGQ2IiwiXzB4NTQwOTQ1IiwiXzB4NTFlYTQyIiwiXzB4ZDNkYjE2IiwiXzB4M2U1NzEyIiwiXzB4MjZhZDgwIiwiXzB4M2ZlMzg2IiwiXzB4MzNkY2IxIiwiXzB4MTI0OWZiIiwiXzB4MTlkMTY1IiwiXzB4MWQ2ZTc4IiwiXzB4MjczOTc1IiwiXzB4MmZhMmE5IiwiXzB4MTEzZDE2IiwiXzB4NTE3NGQ0IiwiXzB4NThlNDc0IiwiXzB4MmM4YWRmIiwiXzB4M2RjY2FkIiwiXzB4MzZmNDNlIiwiXzB4MTg0MzdmIiwiXzB4M2JkMWJhIiwidW5kZWZpbmVkIiwiXzB4MjAwMWQ1IiwiXzB4MzFhYzIyIiwiXzB4NDA4MWMxIiwiXzB4MWMzZTUwIiwiXzB4MjM5NThiIiwiXzB4MjlkMzJiIiwiXzB4MWU4YWU0IiwiXzB4MTY5MjJhIiwiXzB4NDg1NTFjIiwiXzB4Mzg5MTQyIiwiXzB4NDU2NDFkIiwiXzB4Mjk2MzQ1IiwiXzB4MmFkN2I1IiwiXzB4NWI0YmNjIiwicmVmZXJlbmNlcyIsIl8weGFiZTBmYSIsIl8weDUxYzFhOSIsIl8weGYxZGZhYyIsIl8weDQ4ZmNjYiIsIl8weDFkMDA5YSIsIl8weDU5MDVkNiIsIl8weDRkNGJmZiIsIl8weDU3YTkzMCIsIl8weDQ4NTlmMyIsIl8weDM3YjI2ZCIsIl8weDRkMDQxZCIsIl8weDE0NjkzYSIsIl8weDQxY2QwYyIsIl8weDE1NjBkNCIsIl8weDMyMTg0MyIsIl8weDQ5YjRmYiIsIl8weDI4NjVlMiIsIl8weDFlOWIyYSIsIl8weDgyZGYwIiwiXzB4ZGVmOGMyIiwiXzB4NTM2MGNmIiwiXzB4NGQyM2Y5IiwiXzB4NGQ4MjUyIiwiXzB4MTZmODgzIiwiXzB4NzRkNTE0IiwiXzB4MzVmODI0IiwiXzB4NmFhNWY3IiwiXzB4ZGJkMjk2IiwiXzB4NWRjMzExIiwiXzB4ZjM3NTQyIiwiZG9jdW1lbnQiLCJfMHgzZDdmZDgiLCJfMHg0YjI4NDEiLCJfMHgyZjI1NGYiLCJfMHgyNDQ3ZjkiLCJfMHg0M2U4MWMiLCJfMHg1NGEzN2MiLCJfMHg0Y2MyN2YiLCJfMHg0YzhmNjEiLCJfMHgxMTY2ZGYiLCJfMHg1NGNlMTUiLCJfMHhlNjllODciLCJfMHg2MjUyN2IiLCJfMHgzZDE1ZTIiLCJfMHg0NWU5MjYiLCJfMHg1ZWJhYWUiLCJfMHgxYTU0ZDgiLCJfMHg4ZmE5NGMiLCJfMHgzNzhlYzYiLCJfMHgzMzViODkiLCJ3aW5kb3ciLCJfMHgzNmRlZTUiLCJfMHgyMzE2NjEiLCJfMHgyMDcxZDIiLCJfMHg0MjI4NTkiLCJfMHgyZTlmOTEiLCJfMHgyMjY1NGQiLCJfMHgzMTJlNGQiLCJfMHhiOTIwMSIsIl8weDUxOTY4NSIsIl8weDQxZjlkZCIsIl8weGFmOTc5MSIsIl8weDIwZTc4OSIsIl8weDI5ODIxOCIsIl8weDU5MThlZSIsIl8weDdkNTA2ZSIsIl8weDUzNjk2YSIsIl8weDRhYWVmMCIsIl8weDExMjY2YyIsIl8weDk4OTU0YSIsIl8weDcwYjZjOCIsIl8weDVjZTA1YSIsIl8weDNlYWQ2MyIsIl8weDJlNjc1OCIsIl8weDJlOTkyNyIsIl8weDRiY2NlYSIsIl8weDU5ZDc5NCIsIl8weDFjZDVhMSIsIl8weGZhNTU1MSIsIl8weDQ5MGQwOSIsIl8weDQ2NDI1NyIsIl8weDJjNzU1NSIsIl8weDIyZjY0YiIsIl8weDE0YmExNSIsIl8weDIwZDljZCIsIl8weDFjZmQwOCIsIl8weDIwN2U1YSIsIl8weDVmMzhkOCIsIl8weDMwODk3ZiIsIl8weDJmZGUyYSIsIl8weDFhODg5ZiIsIl8weDVjOWM2OCIsIl8weDQ1ODVjOSIsIl8weDMxZDQ4OCIsIl8weDFmMzI3MiIsIl8weGYzZTY5OSIsIl8weDM3Yzg0MCIsIl8weDFiYTcwZiIsIl8weDM0YzdlZiIsIl8weDI5NTE5ZCIsIl8weDM1OGY4NyIsIl8weDQwNjFiMCIsIl8weDU1OGE3YiIsIl8weDQ0NzlmMiIsIl8weDRmNWVjNSIsIl8weDE4MmUyMiIsIl8weGI4MjE5MSIsIl8weDFkZDU4MCIsIl8weDEzYTljMiIsIl8weGQ1ODFlMSIsInNlY3VyaXR5TW9kZSIsIl8weDQ4OGViMSIsInNlY3VyaXR5UG9saWN5IiwiXzB4MzEzZWMwIiwidXNlcklkZW50aXR5VHlwZSIsIl8weDVkMmNjYSIsImNyZWRlbnRpYWxzIiwiXzB4MmNhZDIiLCJuYW1lc3BhY2VBbGlhc2VzIiwiXzB4MTY0Y2NjIiwiXzB4MzcxMTliIiwiXzB4M2Q3NjZhIiwiXzB4MTk3OWU3IiwiXzB4MmE2NjI4IiwiXzB4MjMxYzgwIiwiXzB4MjVmMDA3IiwiXzB4NTBkMjc1IiwiXzB4MTIyNTZkIiwiXzB4MjQ3ZmUyIiwiXzB4NGE4ZmYyIiwiXzB4ZjYxZDVlIiwiXzB4NWU4ZDIwIiwiXzB4NTFjZTAwIl0sIm1hcHBpbmdzIjoidzJCQUFBLENBQUMsVSxDQUNHLGEsd0JBbUJBLFNBQVNBLFNBQVQsQ0FBbUJDLFNBQW5CLENBQTRCQyxTQUE1QixDQUF3Q0MsU0FBeEMsQ0FBMkNDLFNBQTNDLEMsQ0FDSSxTQUFTQyxTQUFULENBQWVDLFNBQWYsQyxRQUErQkEsU0FBQSxZQUFpQkgsU0FBakIsQ0FBcUJHLFNBQXJCLENBQTZCLElBQUlILFNBQUosQ0FBTSxTQUFVSSxTQUFWLEMsQ0FBcUJBLFNBQUEsQ0FBUUQsU0FBUixDLEVBQTNCLEMsU0FDckQsR0FBSyxDQUFBSCxTQUFBLEVBQU0sQ0FBQUEsU0FBQSxDQUFJSyxPQUFKLENBQU4sQ0FBTCxDQUF5QixTQUFVQyxTQUFWLENBQW1CQyxTQUFuQixDLHlCQUM1QixTQUFTQyxTQUFULENBQW1CQyxTQUFuQixDLHlCQUE0QixHLENBQU1DLFNBQUEsQ0FBS1QsU0FBQSxDLGdCQUFBLEVBQWVRLFNBQWYsQ0FBTCxDLEVBQStCLE1BQU9FLFNBQVAsQyxDQUFZSixTQUFBLENBQU9JLFNBQVAsQyxHQUM3RSxTQUFTQyxTQUFULENB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QUNBRyxTQUFBLEMsZ0JBQUEsRSxHQUZBLENBR0EsTUFBTUMsU0FBQSxDQUFVaEwsQ0FBQSxDLGdCQUFBLENBQWhCLENBQ0FnTCxTQUFBLEMsZ0JBQUEsRUFBb0JqUixNQUFBLEMsZ0JBQUEsRUFBY0EsTUFBQSxDLGdCQUFBLEVBQWMsRUFBZCxDQUFrQjRRLFNBQUEsRUFBbEIsQ0FBZCxDQUFpRSxDLGNBQUUsQ0FBYU0sU0FBYixDLGtDQUN4RUEsU0FBQSxDLGdCQUFBLEksa0JBRHNFLENBQWpFLENBQXBCLEMsRUE3QnNDLEMsWUFpQzFDLEUsRUFqQzBDLENBQTlDLEMsRUE5aUNKLEciLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gKCkge1xuICAgICd1c2Ugc3RyaWN0JztcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuICAgIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLlxyXG5cclxuICAgIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueVxyXG4gICAgcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLlxyXG5cclxuICAgIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEhcclxuICAgIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWVxyXG4gICAgQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgU1BFQ0lBTCwgRElSRUNULFxyXG4gICAgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NXHJcbiAgICBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUlxyXG4gICAgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUlxyXG4gICAgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS5cclxuICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXHJcbiAgICAvKiBnbG9iYWwgUmVmbGVjdCwgUHJvbWlzZSwgU3VwcHJlc3NlZEVycm9yLCBTeW1ib2wsIEl0ZXJhdG9yICovXHJcblxyXG5cclxuICAgIGZ1bmN0aW9uIF9fYXdhaXRlcih0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcclxuICAgICAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cclxuICAgICAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHR5cGVvZiBTdXBwcmVzc2VkRXJyb3IgPT09IFwiZnVuY3Rpb25cIiA/IFN1cHByZXNzZWRFcnJvciA6IGZ1bmN0aW9uIChlcnJvciwgc3VwcHJlc3NlZCwgbWVzc2FnZSkge1xyXG4gICAgICAgIHZhciBlID0gbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gICAgICAgIHJldHVybiBlLm5hbWUgPSBcIlN1cHByZXNzZWRFcnJvclwiLCBlLmVycm9yID0gZXJyb3IsIGUuc3VwcHJlc3NlZCA9IHN1cHByZXNzZWQsIGU7XHJcbiAgICB9O1xuXG4gICAgY29uc3QgT3JnYW5pemVzUmVmTm9kZUlkID0gXCJucz0wO2k9MzVcIjtcbiAgICBjb25zdCBGb2xkZXJUeXBlID0gXCJucz0wO2k9NjFcIjtcbiAgICBjb25zdCBIYXNDb21wb25lbnRSZWZOb2RlSWQgPSBcIm5zPTA7aT00N1wiO1xuICAgIGNvbnN0IEhhc1Byb3BlcnR5UmVmTm9kZUlkID0gXCJucz0wO2k9NDZcIjtcbiAgICBjb25zdCBIYXNDaGlsZFJlZk5vZGVJZCA9IFwibnM9MDtpPTM0XCI7XG4gICAgY29uc3QgSGFzU3VidHlwZVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ1XCI7XG4gICAgY29uc3QgSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQgPSBcIm5zPTA7aT00MFwiO1xuXG4gICAgdmFyIEJyb3dzZURpcmVjdGlvbjtcbiAgICAoZnVuY3Rpb24gKEJyb3dzZURpcmVjdGlvbikge1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiRm9yd2FyZFwiXSA9IDBdID0gXCJGb3J3YXJkXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJJbnZlcnNlXCJdID0gMV0gPSBcIkludmVyc2VcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkJvdGhcIl0gPSAyXSA9IFwiQm90aFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52YWxpZFwiXSA9IDNdID0gXCJJbnZhbGlkXCI7XG4gICAgfSkoQnJvd3NlRGlyZWN0aW9uIHx8IChCcm93c2VEaXJlY3Rpb24gPSB7fSkpO1xuICAgIHZhciBOb2RlQ2xhc3M7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3MpIHtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlVuc3BlY2lmaWVkXCJdID0gMF0gPSBcIlVuc3BlY2lmaWVkXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJPYmplY3RcIl0gPSAxXSA9IFwiT2JqZWN0XCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0VHlwZVwiXSA9IDhdID0gXCJPYmplY3RUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiRGF0YVR5cGVcIl0gPSA2NF0gPSBcIkRhdGFUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzcyB8fCAoTm9kZUNsYXNzID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzTWFzaztcbiAgICAoZnVuY3Rpb24gKE5vZGVDbGFzc01hc2spIHtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJNZXRob2RcIl0gPSA0XSA9IFwiTWV0aG9kXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMzJdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzc01hc2sgfHwgKE5vZGVDbGFzc01hc2sgPSB7fSkpO1xuICAgIHZhciBSZXN1bHRNYXNrO1xuICAgIChmdW5jdGlvbiAoUmVzdWx0TWFzaykge1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMV0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiSXNGb3J3YXJkXCJdID0gMl0gPSBcIklzRm9yd2FyZFwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJOb2RlQ2xhc3NcIl0gPSA0XSA9IFwiTm9kZUNsYXNzXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIkJyb3dzZU5hbWVcIl0gPSA4XSA9IFwiQnJvd3NlTmFtZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJEaXNwbGF5TmFtZVwiXSA9IDE2XSA9IFwiRGlzcGxheU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiVHlwZURlZmluaXRpb25cIl0gPSAzMl0gPSBcIlR5cGVEZWZpbml0aW9uXCI7XG4gICAgfSkoUmVzdWx0TWFzayB8fCAoUmVzdWx0TWFzayA9IHt9KSk7XG4gICAgLy8gIGNvbnN0IHEgPSBSZWZlcmVuY2VUeXBlSWRzLk9yZ2FuaXplcztcbiAgICBmdW5jdGlvbiByZXNvbHZlTm9kZUlkKG5vZGVJZExpa2UpIHtcbiAgICAgICAgc3dpdGNoIChub2RlSWRMaWtlKSB7XG4gICAgICAgICAgICBjYXNlIFwiT3JnYW5pemVzXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIE9yZ2FuaXplc1JlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNQcm9wZXJ0eVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNQcm9wZXJ0eVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDb21wb25lbnRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzQ29tcG9uZW50UmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc0NoaWxkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NoaWxkUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1N1YnR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzU3VidHlwZVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNUeXBlRGVmaW5pdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNUeXBlRGVmaW5pdGlvblJlZk5vZGVJZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGdldEljb24gPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHN3aXRjaCAocmVmZXJlbmNlLm5vZGVDbGFzcykge1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFwiOlxuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBPcmdhbml6ZXNSZWZOb2RlSWQpIDtcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnR5cGVEZWZpbml0aW9uID09PSBGb2xkZXJUeXBlIHx8IHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IFwiaT02MVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtZm9sZGVyXCIsIGNvbG9yOiBcInJnYmEoNjEsIDYwLCA0LCAwLjUyNSlcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJTZWFHcmVlblwiIH07XG4gICAgICAgICAgICBjYXNlIFwiVmFyaWFibGVcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzQ29tcG9uZW50UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiU3RlZWxCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzUHJvcGVydHlSZWZOb2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJEb2RnZXJCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiQ2FkZXRCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFwiTWV0aG9kXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1jb2dcIiwgY29sb3I6IFwiU2FuZHlCcm93blwiIH07XG4gICAgICAgICAgICBjYXNlIFwiT2JqZWN0VHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiBcIkRhcmtPcmFuZ2VcIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlVHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtc2xpZGVyc1wiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJEYXRhVHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtdGV4dC13aWR0aFwiLCBjb2xvcjogXCJDYWRldEJsdWVcIiB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGljb246IFwiZmEtcXVlc3Rpb25cIiwgY29sb3I6IFwiZ3JleVwiIH07XG4gICAgfTtcblxuICAgIGNvbnN0IGJyb3dzZSA9IChfYSwgbm9kZUlkXzEsIHRlbXBsYXRlXzEpID0+IF9fYXdhaXRlcih2b2lkIDAsIFtfYSwgbm9kZUlkXzEsIHRlbXBsYXRlXzFdLCB2b2lkIDAsIGZ1bmN0aW9uKiAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIG5vZGVJZCwgdGVtcGxhdGUpIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWZvci1ub2RlLXJlZGA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L2Jyb3dzZWA7XG4gICAgICAgIGNvbnN0IGJyb3dzZURlc2NyaXB0aW9uID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCB0ZW1wbGF0ZSksIHsgbm9kZUlkLCByZXN1bHRNYXNrOiA2MyB9KTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgYnJvd3NlRGVzY3JpcHRpb24sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoaW5nIGZhaWxlZCB3aXRoIGVycm9yXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICAgICAgcmV0dXJuIHsgcmVmZXJlbmNlczogW10gfTtcbiAgICAgICAgfVxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcImJyb3dzZSBmZXRjaGVkIDogXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IHlpZWxkIGRhdGEuanNvbigpO1xuICAgICAgICBjb25zdCByZWZlcmVuY2VzID0gcmVzcG9uc2UuYnJvd3NlUmVzdWx0LnJlZmVyZW5jZXMgfHwgW107XG4gICAgICAgIHJldHVybiB7IHJlZmVyZW5jZXMgfTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHRlbXBsYXRlMSA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzQ2hpbGRcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCB0ZW1wbGF0ZTIgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIk9yZ2FuaXplc1wiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuVmFyaWFibGUgfCBOb2RlQ2xhc3MuT2JqZWN0IHwgTm9kZUNsYXNzLk1ldGhvZCxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5PYmplY3RUeXBlIHxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5EYXRhVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5WaWV3LFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGNvbnN0IHdhbGtCYWNrd2FyZCA9IChfYSwgX2IpID0+IF9fYXdhaXRlcih2b2lkIDAsIFtfYSwgX2JdLCB2b2lkIDAsIGZ1bmN0aW9uKiAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIHsgbm9kZUlkLCByb290Tm9kZUlkLCBpc1R5cGUgfSkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZm9yLW5vZGUtcmVkYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vd2Fsay1iYWNrd2FyZGA7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIG5vZGVJZCxcbiAgICAgICAgICAgICAgICByb290Tm9kZUlkLFxuICAgICAgICAgICAgICAgIGlzVHlwZSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGpzb24gPSAoeWllbGQgZGF0YS5qc29uKCkpO1xuICAgICAgICByZXR1cm4ganNvbi5icm93c2VQYXRoO1xuICAgIH0pO1xuICAgIGNvbnN0IGNob29zZU5vZGVJZCA9IChkYXRhLCBtb2RlKSA9PiB7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1c0NvZGUgIT09IFwiR29vZFwiKSB7XG4gICAgICAgICAgICByZXR1cm4gZGF0YS5yZXF1ZXN0ZWROb2RlSWQ7XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoIChtb2RlKSB7XG4gICAgICAgICAgICBjYXNlIFwiYnJvd3NlUGF0aFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBkYXRhLmJwX2luZGV4ZWQ7XG4gICAgICAgICAgICBjYXNlIFwiYWxpYXNlZEJyb3dzZVBhdGhcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0YS5icF9hbGlhc2VkIHx8IGRhdGEuYnBfaW5kZXhlZDtcbiAgICAgICAgICAgIGNhc2UgXCJhbGlhc2VkTm9kZUlkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGEubm9kZUlkX2FsaWFzZWQgfHwgZGF0YS5ub2RlSWRfbnN1O1xuICAgICAgICAgICAgY2FzZSBcIm5zdU5vZGVJRFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBkYXRhLm5vZGVJZF9uc3U7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgY2FzZSBcIm5vZGVJZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBkYXRhLm5vZGVJZDtcbiAgICAgICAgfVxuICAgIH07XG4gICAgY29uc3QgbWFrZVRvb2x0aXAgPSAoZGF0YSkgPT4ge1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXNDb2RlICE9PSBcIkdvb2RcIikge1xuICAgICAgICAgICAgcmV0dXJuIGBzdGF0dXNDb2RlOiAke2RhdGEuc3RhdHVzQ29kZX1gO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgbGV0IHN0ciA9IFtdO1xuICAgICAgICAgICAgc3RyLnB1c2goYG5vZGVJZDogJHtkYXRhLm5vZGVJZH1gKTtcbiAgICAgICAgICAgIHN0ci5wdXNoKGBicm93c2UgcGF0aDogJHtkYXRhLmJwX2luZGV4ZWR9YCk7XG4gICAgICAgICAgICBzdHIucHVzaChgbm9kZSBjbGFzczogJHtOb2RlQ2xhc3NbZGF0YS5ub2RlQ2xhc3NdfWApO1xuICAgICAgICAgICAgaWYgKGRhdGEubm9kZUlkX25zdSkge1xuICAgICAgICAgICAgICAgIHN0ci5wdXNoKGBuc3Ugbm9kZUlkOiAke2RhdGEubm9kZUlkX25zdX1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLm5vZGVJZF9hbGlhc2VkKSB7XG4gICAgICAgICAgICAgICAgc3RyLnB1c2goYGFsaWFzZWQgTm9kZUlkOiAke2RhdGEubm9kZUlkX2FsaWFzZWR9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5icF9pbmRleGVkKSB7XG4gICAgICAgICAgICAgICAgc3RyLnB1c2goYGFsaWFzZWQgYnJvd3NlUGF0aDogJHtkYXRhLmJwX2FsaWFzZWR9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gc3RyLmpvaW4oXCJcXG5cIik7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIGZ1bmN0aW9uIGZpZ3VyZU91dE1vZGUoZW5oYW5jZWROb2RlSWQpIHtcbiAgICAgICAgaWYgKGVuaGFuY2VkTm9kZUlkLm1hdGNoKC9ebnN1PS8pKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJuc3VOb2RlSURcIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZW5oYW5jZWROb2RlSWQubWF0Y2goL14obnM9Lio7KT8oaXxifHN8Zyk9LykpIHtcbiAgICAgICAgICAgIHJldHVybiBcIm5vZGVJZFwiO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbmhhbmNlZE5vZGVJZC5tYXRjaCgvXm5zYT0vKSkge1xuICAgICAgICAgICAgcmV0dXJuIFwiYWxpYXNlZE5vZGVJZFwiO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbmhhbmNlZE5vZGVJZC5tYXRjaCgvXihcXC98XFwuKVswLTldKzovKSkge1xuICAgICAgICAgICAgcmV0dXJuIFwiYnJvd3NlUGF0aFwiO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbmhhbmNlZE5vZGVJZC5tYXRjaCgvXihcXC98XFwuKS4qOi8pKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJicm93c2VQYXRoXCI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gZmlndXJlT3V0TWVuVUl0ZW1WYWx1ZShzdHIpIHtcbiAgICAgICAgY29uc3QgbW9kZSA9IGZpZ3VyZU91dE1vZGUoc3RyKTtcbiAgICAgICAgc3dpdGNoIChtb2RlKSB7XG4gICAgICAgICAgICBjYXNlIFwibm9kZUlkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiblwiO1xuICAgICAgICAgICAgY2FzZSBcImFsaWFzZWROb2RlSWRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJuYVwiO1xuICAgICAgICAgICAgY2FzZSBcIm5zdU5vZGVJRFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcIm5zdVwiO1xuICAgICAgICAgICAgY2FzZSBcImJyb3dzZVBhdGhcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJiXCI7XG4gICAgICAgICAgICBjYXNlIFwiYWxpYXNlZEJyb3dzZVBhdGhcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJhYlwiO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJ0XCI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gdG9Nb2RlKHYpIHtcbiAgICAgICAgbGV0IG1vZGU7XG4gICAgICAgIHN3aXRjaCAodikge1xuICAgICAgICAgICAgY2FzZSBcIm5cIjpcbiAgICAgICAgICAgICAgICBtb2RlID0gXCJub2RlSWRcIjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgXCJuYVwiOlxuICAgICAgICAgICAgICAgIG1vZGUgPSBcImFsaWFzZWROb2RlSWRcIjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgXCJuc3VcIjpcbiAgICAgICAgICAgICAgICBtb2RlID0gXCJuc3VOb2RlSURcIjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgXCJiXCI6XG4gICAgICAgICAgICAgICAgbW9kZSA9IFwiYnJvd3NlUGF0aFwiO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcImFiXCI6XG4gICAgICAgICAgICAgICAgbW9kZSA9IFwiYWxpYXNlZEJyb3dzZVBhdGhcIjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbW9kZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZnJvbU1vZGUobW9kZSkge1xuICAgICAgICBzd2l0Y2ggKG1vZGUpIHtcbiAgICAgICAgICAgIGNhc2UgXCJub2RlSWRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJuXCI7XG4gICAgICAgICAgICBjYXNlIFwiYWxpYXNlZE5vZGVJZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcIm5hXCI7XG4gICAgICAgICAgICBjYXNlIFwibnN1Tm9kZUlEXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwibnN1XCI7XG4gICAgICAgICAgICBjYXNlIFwiYnJvd3NlUGF0aFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcImJcIjtcbiAgICAgICAgICAgIGNhc2UgXCJhbGlhc2VkQnJvd3NlUGF0aFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcImFiXCI7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBcInRcIjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBfY2FsbENoZWNrTm9kZUlkID0gKF9hLCBub2RlSWRfMSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgW19hLCBub2RlSWRfMV0sIHZvaWQgMCwgZnVuY3Rpb24qICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgbm9kZUlkKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1mb3Itbm9kZS1yZWRgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9jaGVja05vZGVJZGA7XG4gICAgICAgIGNvbnN0IGVJZCA9IGVuZHBvaW50Tm9kZS5pZDtcbiAgICAgICAgY29uc3QgbiA9IFJFRC5ub2Rlcy5ub2RlKGVJZCk7XG4gICAgICAgIGNvbnNvbGUubG9nKG4ubmFtZXNwYWNlQWxpYXNlcyk7XG4gICAgICAgIG4ubmFtZXNwYWNlQWxpYXNlcztcbiAgICAgICAgY29uc3QgbmFtZXNwYWNlQWxpYXNlcyA9IGVuZHBvaW50Tm9kZS5uYW1lc3BhY2VBbGlhc2VzO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBub2RlSWQsXG4gICAgICAgICAgICAgICAgbmFtZXNwYWNlQWxpYXNlcyxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QganNvbiA9ICh5aWVsZCBkYXRhLmpzb24oKSk7XG4gICAgICAgIHJldHVybiB7IGpzb24sIGRhdGEgfTtcbiAgICB9KTtcbiAgICBjb25zdCBpbnRlcm5hbFZlcmlmeSA9IChfYSwgbW9kZV8xLCAkaW5wdXRFbGVtZW50XzEsICRpbmZvXzEpID0+IF9fYXdhaXRlcih2b2lkIDAsIFtfYSwgbW9kZV8xLCAkaW5wdXRFbGVtZW50XzEsICRpbmZvXzFdLCB2b2lkIDAsIGZ1bmN0aW9uKiAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIG1vZGUsICRpbnB1dEVsZW1lbnQsICRpbmZvKSB7XG4gICAgICAgIGNvbnN0IGVuaGFuY2VkTm9kZUlkID0gJGlucHV0RWxlbWVudC52YWwoKTtcbiAgICAgICAgY29uc3QgeyBqc29uLCBkYXRhIH0gPSB5aWVsZCBfY2FsbENoZWNrTm9kZUlkKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCBlbmhhbmNlZE5vZGVJZCk7XG4gICAgICAgIGNvbnN0IHNldE5vdGlmaWNhdGlvbiA9ICh0ZXh0LCBjbGFzc05hbWUpID0+IHtcbiAgICAgICAgICAgICRpbmZvLnRleHQodGV4dCkuYWRkQ2xhc3MoXCJzdGVyZml2ZS1pbmZvXCIpLmFkZENsYXNzKGNsYXNzTmFtZSk7XG4gICAgICAgICAgICAkaW5mby5zaG93KCk7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAkaW5mby5yZW1vdmVDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgICAgICRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgIH0sIDMwMDApO1xuICAgICAgICB9O1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgLy8gZG8gc29tZXRoaW5nO1xuICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKFwiISFmYWlsdXJlISFcIiArIGVuaGFuY2VkTm9kZUlkLCBcImZhaWx1cmVcIik7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoanNvbi5zdGF0dXNDb2RlLm1hdGNoKC9Hb29kLykpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0b29sdGlwID0gbWFrZVRvb2x0aXAoanNvbik7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC5hdHRyKFwidGl0bGVcIiwgdG9vbHRpcCk7XG4gICAgICAgICAgICAgICAgLy8gZG8gc29tZXRoaW5nXG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWROb2RlSWQgPSBjaG9vc2VOb2RlSWQoanNvbiwgbW9kZSk7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC52YWwoc2VsZWN0ZWROb2RlSWQpO1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCJHb29kXCIsIFwib2tcIik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChgJHtlbmhhbmNlZE5vZGVJZH1gKTtcbiAgICAgICAgICAgICAgICBzZXROb3RpZmljYXRpb24oYCR7anNvbi5zdGF0dXNDb2RlfSAke2RhdGEuc3RhdHVzVGV4dH1gLCBcImZhaWx1cmVcIik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG4gICAgZnVuY3Rpb24gZmV0Y2hDaGlsZHJlbigkbm9kZSwgZGF0YSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZUlkID0gJG5vZGUuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MSA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMSk7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQyID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGUyKTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVmZXJlbmNlczogWy4uLmJyb3dzZVJlc3VsdDEucmVmZXJlbmNlcywgLi4uYnJvd3NlUmVzdWx0Mi5yZWZlcmVuY2VzXSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCB0ZW1wbGF0ZVNUID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJIYXNTdWJ0eXBlXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHwgTm9kZUNsYXNzLk9iamVjdFR5cGUgfCBOb2RlQ2xhc3MuRGF0YVR5cGUgfCBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlLFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGZ1bmN0aW9uIGZldGNoU3VidHlwZXMoJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZVNUKTtcbiAgICAgICAgICAgIHJldHVybiBicm93c2VSZXN1bHQxO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgbWFrZUVsZW1lbnQgPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZDtcbiAgICAgICAgaWYgKCFyZWZlcmVuY2UgfHwgIXJlZmVyZW5jZS5ub2RlSWQpIHtcbiAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpPjxpIGNsYXNzPVwiZmEgZmEtZXJyb3JcIiBzdHlsZT1cImNvbG9yOnJlZDtcIj48L2k+bm8gcmVmZXJlbmNlICE8dWw+PC91bD48L2xpPmApO1xuICAgICAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG4gPSByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IHQgPSAoKF9hID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGV4dCkgfHwgKChfYiA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB7IGljb24sIGNvbG9yIH0gPSBnZXRJY29uKHJlZmVyZW5jZSk7XG4gICAgICAgIGNvbnN0IHRpdGxlID0gYCgke3JlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKX0pICR7KChfYyA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MubmFtZSkgfHwgKChfZCA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9kLnRleHQpIHx8IFwiXCJ9YDtcbiAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGkga2V5PVwiJHtyZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCl9XCJ9PjxzcGFuIGNsYXNzPVwidHJlZS10ZXh0XCIgdGl0bGU9JHt0aXRsZX0+PGkgY2xhc3M9XCJmYSAke2ljb259XCIgc3R5bGU9XCJjb2xvcjoke2NvbG9yfTtcIj48L2k+ICR7dH08L3NwYW4+PHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgJGVsZW1lbnQuYWRkQ2xhc3MoXCJleHBhbmRhYmxlXCIpO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwidmFsdWVcIiwgbik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgIH07XG4gICAgY29uc3QgZmluZEVsZW1lbnQgPSAobm9kZUlkLCAkdHJlZSkgPT4ge1xuICAgICAgICByZXR1cm4gJHRyZWUuZmluZChgbGlba2V5PVwiJHtub2RlSWR9XCJdYCk7XG4gICAgfTtcbiAgICBjb25zdCBzZWxlY3RTaW5nbGUgPSAodGhhdCwgJGxpKSA9PiB7XG4gICAgICAgIHRoYXQuJHRyZWUuZmluZChcImxpID4gLnRyZWUtdGV4dFwiKS5yZW1vdmVDbGFzcyhcInNlbGVjdGVkXCIpO1xuICAgICAgICAvLyBjbGVhciBhbGwgc2VsZWN0ZWQgaXRlbXNcbiAgICAgICAgJGxpLmZpbmQoXCIudHJlZS10ZXh0OmZpcnN0XCIpLmFkZENsYXNzKFwic2VsZWN0ZWRcIik7XG4gICAgfTtcbiAgICBjb25zdCBhdXRvRXhwYW5kID0gKHRoYXQsIGJyb3dzZVBhdGgsICR0cmVlKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgLy8gZXhwYW5kIHRoZSB0cmVlIHRvIHNob3cgdGhlIG5vZGVJZFxuICAgICAgICBsZXQgJGN1cnJlbnQgPSAkdHJlZS5jaGlsZHJlbihcIjpmaXJzdFwiKTtcbiAgICAgICAgYnJvd3NlUGF0aC5yZWxhdGl2ZVBhdGguZWxlbWVudHMgfHwgW107XG4gICAgICAgIGNvbnN0IG5vZGVJZHMgPSBicm93c2VQYXRoLm5vZGVJZHMgfHwgW107XG4gICAgICAgIGlmIChub2RlSWRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgbiBvZiBub2RlSWRzKSB7XG4gICAgICAgICAgICBpZiAoJGN1cnJlbnQuaGFzQ2xhc3MoXCJleHBhbmRhYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgLy8gbmVlZCB0byBleHBhbmQgYW5kIHNlbGVjdCB0aGUgcmlnaHQgZWxlbWVudFxuICAgICAgICAgICAgICAgIHlpZWxkIF9leHBhbmRMaSh0aGF0LCAkY3VycmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IGZpbmRFbGVtZW50KG4sICRjdXJyZW50KTtcbiAgICAgICAgICAgIGlmICgkZWxlbWVudC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkY3VycmVudCA9ICRlbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIHNlbGVjdFNpbmdsZSh0aGF0LCAkY3VycmVudCk7XG4gICAgICAgIHNjcm9sbFRvTGkodGhhdC4kZHJvcGRvd24sICRjdXJyZW50KTtcbiAgICB9KTtcbiAgICBmdW5jdGlvbiBzY3JvbGxUb0xpKCRjb250YWluZXIsICR0YXJnZXRMaSkge1xuICAgICAgICAvLyBHZXQgdGhlIHBvc2l0aW9uIG9mIHRoZSB0YXJnZXQgaXRlbSByZWxhdGl2ZSB0byBpdHMgY29udGFpbmVyXG4gICAgICAgIGNvbnN0IGxpUG9zID0gJHRhcmdldExpLnBvc2l0aW9uKCkudG9wO1xuICAgICAgICAvLyBHZXQgdGhlIGN1cnJlbnQgc2Nyb2xsIHBvc2l0aW9uIG9mIHRoZSBjb250YWluZXJcbiAgICAgICAgY29uc3QgY29udGFpbmVyU2Nyb2xsVG9wID0gJGNvbnRhaW5lci5zY3JvbGxUb3AoKTtcbiAgICAgICAgaWYgKGNvbnRhaW5lclNjcm9sbFRvcCA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIHBvc2l0aW9uIHRvIHNjcm9sbCB0byAoY3VycmVudCBzY3JvbGwgKyBpdGVtJ3MgcG9zaXRpb24pXG4gICAgICAgIC8vIEFkanVzdCB0aGlzIGNhbGN1bGF0aW9uIGJhc2VkIG9uIHlvdXIgbmVlZHNcbiAgICAgICAgY29uc3Qgc2Nyb2xsVG8gPSBjb250YWluZXJTY3JvbGxUb3AgKyBsaVBvcyAtICRjb250YWluZXIuaGVpZ2h0KCkgLyAyICsgJHRhcmdldExpLmhlaWdodCgpIC8gMjtcbiAgICAgICAgLy8gU2Nyb2xsIHRoZSBjb250YWluZXIgdG8gZW5zdXJlIHRoZSBpdGVtIGlzIHZpc2libGVcbiAgICAgICAgJGNvbnRhaW5lci5hbmltYXRlKHtcbiAgICAgICAgICAgIHNjcm9sbFRvcDogc2Nyb2xsVG8sXG4gICAgICAgIH0sIDUwMCk7IC8vIEFkanVzdCB0aGUgZHVyYXRpb24gKDUwMG1zKSBhcyBuZWVkZWRcbiAgICB9XG4gICAgY29uc3QgcmVhY2hTZWxlY3Rpb24gPSAodGhhdCwgcGFyZW50Tm9kZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IG5vZGVJZCA9IHRoYXQuJGlucHV0LnZhbCgpO1xuICAgICAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgcm9vdE5vZGVJZDogcGFyZW50Tm9kZS5ub2RlSWQsXG4gICAgICAgICAgICBpc1R5cGU6IHRoYXQub3B0aW9ucy5pc1R5cGVSZWYgfHwgZmFsc2UsXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGRhdGEgPSBtYWtlQ29ubmVjdGlvbih0aGF0KTtcbiAgICAgICAgY29uc3QgYnJvd3NlUGF0aCA9IHlpZWxkIHdhbGtCYWNrd2FyZChkYXRhLCBvcHRpb25zKTtcbiAgICAgICAgaWYgKCFicm93c2VQYXRoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgeWllbGQgYXV0b0V4cGFuZCh0aGF0LCBicm93c2VQYXRoLCB0aGF0LiR0cmVlKTtcbiAgICB9KTtcbiAgICBmdW5jdGlvbiBfZmV0Y2hEYXRhRm9yTm9kZSh0aGF0LCAkbm9kZSwgZmV0Y2hGdW5jLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBpZiAoJG5vZGUuaGFzQ2xhc3MoXCJmZXRjaGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhbHJlYWR5IGZldGNoZWRcIik7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCRub2RlLmhhc0NsYXNzKFwibG9hZGluZ1wiKSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYWxyZWFkeSBsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwibG9hZGluZ1wiKTtcbiAgICAgICAgICAgICRub2RlLmFwcGVuZCgnPGRpdiBjbGFzcz1cInNwaW5uZXJcIj48L2Rpdj4nKTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgcmVmZXJlbmNlcyB9ID0geWllbGQgZmV0Y2hGdW5jKCRub2RlLCBkYXRhKTtcbiAgICAgICAgICAgICAgICAvLyBzb3J0IHJlZmVyZW5jZSAgIGJ5IGJyb3dzZU5hbWVcbiAgICAgICAgICAgICAgICByZWZlcmVuY2VzLnNvcnQoKGEsIGIpID0+IHsgdmFyIF9hLCBfYjsgcmV0dXJuICgoKF9hID0gYS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EubmFtZSkgfHwgXCJcIikubG9jYWxlQ29tcGFyZSgoKF9iID0gYi5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgXCJcIik7IH0pO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcmVmZXJlbmNlIG9mIHJlZmVyZW5jZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5maWx0ZXIgJiYgIXRoYXQub3B0aW9ucy5maWx0ZXIocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudChyZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwiZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZChgPGxpPmVycm9yICR7ZXJyLm1lc3NhZ2V9PC9saT5gKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVyclwiLCBlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJG5vZGUuZmluZChcIi5zcGlubmVyXCIpLnJlbW92ZSgpO1xuICAgICAgICAgICAgJG5vZGUucmVtb3ZlQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbWFrZUNvbm5lY3Rpb24odGhhdCkge1xuICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICBlbmRwb2ludE5vZGU6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgZW5kcG9pbnQ6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludCgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50LFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG4gICAgZnVuY3Rpb24gX2V4cGFuZExpKHRoYXQsICRsaSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImZldGNoZWRcIikpIHtcbiAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgY29uc3QgZGF0YSA9IG1ha2VDb25uZWN0aW9uKHRoYXQpO1xuICAgICAgICAgICAgY29uc3QgZiA9ICF0aGF0Lm9wdGlvbnMuaXNUeXBlUmVmID8gZmV0Y2hDaGlsZHJlbiA6IGZldGNoU3VidHlwZXM7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHlpZWxkIF9mZXRjaERhdGFGb3JOb2RlKHRoYXQsICRsaSwgZiwgZGF0YSk7XG4gICAgICAgICAgICAgICAgLy8gbWFyayBhcyBleHBhbmRlZFxuICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJvclwiLCBlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgZGVmYXVsdFBhcmVudE5vZGUgPSB7XG4gICAgICAgIGJyb3dzZU5hbWU6IHsgbmFtZXNwYWNlSW5kZXg6IDAsIG5hbWU6IFwiT2JqZWN0c1wiIH0sXG4gICAgICAgIG5vZGVDbGFzczogXCJPYmplY3RcIixcbiAgICAgICAgbm9kZUlkOiBcIm5zPTA7aT04NVwiLFxuICAgICAgICBkaXNwbGF5TmFtZTogeyB0ZXh0OiBcIk9iamVjdHNcIiB9LFxuICAgICAgICB0eXBlRGVmaW5pdGlvbjogRm9sZGVyVHlwZSxcbiAgICB9O1xuICAgIGNvbnN0IGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCA9ICgpID0+IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFsgVGVtcGVyYXR1cmUgIF1cbiAgICAgICAgICogICAoIHRvb2x0aXAgOiAoL09iamVjdHMvTXlTZW5zb3IpIChucz0xO3M9VGVtcGVyYXR1cmUpKVxuICAgICAgICAgKiBbICsgW0ZvbGRlcl0gT2JqZWN0c11cbiAgICAgICAgICogWyAgICAgW09iamVjdF0gTXlTZW5zb3JdXG4gICAgICAgICAqIFsgICAgICggKSBbVmFyaWFibGVdIFRlbXBlcmF0dXJlXVxuICAgICAgICAgKi9cbiAgICAgICAgJC53aWRnZXQoXCJzdGVyZml2ZS5ub2RlQnJvd3NlclwiLCB7XG4gICAgICAgICAgICAvKiBkZWZhdWx0IG9wdGlvbnMgKi9cbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6ICgpID0+ICh7IGVuZHBvaW50OiBcIm9wYy50Y3A6Ly9vcGN1YWRlbW8uc3RlcmZpdmUuY29tOjI2NTQzXCIgfSksXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQ6ICgpID0+IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBwYXJlbnROb2RlOiAoKSA9PiBkZWZhdWx0UGFyZW50Tm9kZSxcbiAgICAgICAgICAgICAgICBmaWx0ZXI6ICgpID0+IHRydWUsXG4gICAgICAgICAgICAgICAgYmFzZVVybDogXCJcIixcbiAgICAgICAgICAgICAgICBpc1R5cGVSZWY6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc29sdmVQYXJlbnROb2RlKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5fX3BhcmVudE5vZGUgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhID0gdHlwZW9mIHRoYXQub3B0aW9ucy5wYXJlbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZS5jYWxsKHRoYXQpIDogdGhhdC5vcHRpb25zLnBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYSBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkZXNjID0geWllbGQgYTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9fcGFyZW50Tm9kZSA9IGRlc2M7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9fcGFyZW50Tm9kZSA9IGE7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoYXQuX19wYXJlbnROb2RlIHx8IGRlZmF1bHRQYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc2V0KCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICAvLyBhbHNvIHJlc2V0IHBhcmVudCBub2RlXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB0aGF0O1xuICAgICAgICAgICAgICAgICAgICBhLl9fcGFyZW50Tm9kZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnROb2RlID0geWllbGQgdGhpcy5yZXNvbHZlUGFyZW50Tm9kZSgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IG1ha2VFbGVtZW50KHBhcmVudE5vZGUpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuY3VycmVudFBhcmVudCA9IHBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdmVyaWZ5KG1vZGUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IG1ha2VDb25uZWN0aW9uKHRoYXQpO1xuICAgICAgICAgICAgICAgIGludGVybmFsVmVyaWZ5KGRhdGEsIG1vZGUsIHRoYXQuJGlucHV0LCB0aGF0LiRpbmZvKS50aGVuKChzdWNjZXNzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghc3VjY2Vzcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYWRkQ2xhc3MoXCJpbnB1dC1lcnJvclwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLnJlbW92ZUNsYXNzKFwiaW5wdXQtZXJyb3JcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfaGlkZU1lbnUobWVudSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLm9mZihcIm1vdXNlZG93bi5yZWQtdWktdHlwZWRJbnB1dC1jbG9zZS1wcm9wZXJ0eS1zZWxlY3RcIik7XG4gICAgICAgICAgICAgICAgbWVudS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgbWVudS5jc3Moe1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IFwiYXV0b1wiLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmIChtZW51Lm9wdHMubXVsdGlwbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdGVkID0gW107XG4gICAgICAgICAgICAgICAgICAgIG1lbnUuZmluZCgnaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdJykuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJCh0aGlzKS5wcm9wKFwiY2hlY2tlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkLnB1c2goJCh0aGlzKS5kYXRhKFwidmFsdWVcIikpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgbWVudS5jYWxsYmFjayhzZWxlY3RlZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0aGF0LiRlbGVtZW50RGl2LmlzKFwiOnZpc2libGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudHJpZ2dlcihcImZvY3VzXCIpO1xuICAgICAgICAgICAgICAgICAgICAvL3h4IH0gZWxzZSBpZiAodGhpcy4kb3B0aW9uU2VsZWN0VHJpZ2dlci5pcyhcIjp2aXNpYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIC8veHggICAgIHRoYXQuJG9wdGlvblNlbGVjdFRyaWdnZXIudHJpZ2dlcihcImZvY3VzXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kc2VsZWN0VHJpZ2dlci50cmlnZ2VyKFwiZm9jdXNcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9jcmVhdGVNZW51KG1lbnVPcHRpb25zLCBvcHRzLCBjYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIHZhciB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICBjb25zdCBtZW51ID0gJChcIjxkaXY+XCIpLmFkZENsYXNzKFwic3RlcmZpdmUtdHlwZWRJbnB1dC1vcHRpb25zIHN0ZXJmaXZlLW9ubGluZS1tZW51XCIpO1xuICAgICAgICAgICAgICAgIG1lbnUub3B0cyA9IG9wdHM7XG4gICAgICAgICAgICAgICAgbWVudS5jYWxsYmFjayA9IGNhbGxiYWNrO1xuICAgICAgICAgICAgICAgIG1lbnVPcHRpb25zLmZvckVhY2goKG9wdCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIG9wdCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3B0ID0geyB2YWx1ZTogb3B0LCBsYWJlbDogb3B0IH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdmFyIG9wID0gJCgnPGEgaHJlZj1cIiNcIj48L2E+JykuYXR0cihcInZhbHVlXCIsIG9wdC52YWx1ZSkuYXBwZW5kVG8obWVudSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcHQubGFiZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wLnRleHQob3B0LmxhYmVsKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAob3B0LnRpdGxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcC5wcm9wKFwidGl0bGVcIiwgb3B0LnRpdGxlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAob3B0Lmljb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvcHQuaWNvbi5pbmRleE9mKFwiPFwiKSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQob3B0Lmljb24pLnByZXBlbmRUbyhvcCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChvcHQuaWNvbi5pbmRleE9mKFwiL1wiKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKFwiPGk+XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IFwicmVkLXVpLXR5cGVkSW5wdXQtaWNvblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogXCJtYXNrLWltYWdlOiB1cmwoXCIgKyBvcHQuaWNvbiArIFwiKTsgLXdlYmtpdC1tYXNrLWltYWdlOiB1cmwoXCIgKyBvcHQuaWNvbiArIFwiKTtcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KS5wcmVwZW5kVG8ob3ApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJChcIjxpPlwiLCB7IGNsYXNzOiBcInJlZC11aS10eXBlZElucHV0LWljb24gXCIgKyBvcHQuaWNvbiB9KS5wcmVwZW5kVG8ob3ApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3AuY3NzKHsgcGFkZGluZ0xlZnQ6IFwiMThweFwiIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmICghb3B0Lmljb24gJiYgIW9wdC5sYWJlbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3AudGV4dChvcHQudmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHZhciBjYjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wdHMubXVsdGlwbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNiID0gJCgnPGlucHV0IHR5cGU9XCJjaGVja2JveFwiPicpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNzcyhcInBvaW50ZXItZXZlbnRzXCIsIFwibm9uZVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5kYXRhKFwidmFsdWVcIiwgb3B0LnZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5wcmVwZW5kVG8ob3ApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLm9uKFwibW91c2Vkb3duXCIsIGZ1bmN0aW9uIChldnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIG9wLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIW9wdHMubXVsdGlwbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhvcHQudmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX2hpZGVNZW51KG1lbnUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2IucHJvcChcImNoZWNrZWRcIiwgIWNiLnByb3AoXCJjaGVja2VkXCIpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgbWVudS5jc3Moe1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBcIm5vbmVcIixcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBtZW51Lm9uKFwia2V5ZG93blwiLCBmdW5jdGlvbiAoZXZ0KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5Q29kZSA9PT0gNDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gRE9XTlxuICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5jaGlsZHJlbihcIjpmb2N1c1wiKS5uZXh0KCkudHJpZ2dlcihcImZvY3VzXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGV2dC5rZXlDb2RlID09PSAzOCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBVUFxuICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5jaGlsZHJlbihcIjpmb2N1c1wiKS5wcmV2KCkudHJpZ2dlcihcImZvY3VzXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGV2dC5rZXlDb2RlID09PSAyNykge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gRVNDQVBFXG4gICAgICAgICAgICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX2hpZGVNZW51KG1lbnUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbWVudTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBkaXNhcm1DbGljazogZmFsc2UsXG4gICAgICAgICAgICBfc2hvd01lbnUobWVudSwgcmVsYXRpdmVUbykge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRpc2FybUNsaWNrKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGlzYXJtQ2xpY2sgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB2YXIgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdmFyIHBvcyA9IHJlbGF0aXZlVG8ub2Zmc2V0KCk7XG4gICAgICAgICAgICAgICAgdmFyIGhlaWdodCA9IHJlbGF0aXZlVG8uaGVpZ2h0KCk7XG4gICAgICAgICAgICAgICAgdmFyIG1lbnVIZWlnaHQgPSBtZW51LmhlaWdodCgpO1xuICAgICAgICAgICAgICAgIHZhciB0b3AgPSBoZWlnaHQgKyBwb3MudG9wO1xuICAgICAgICAgICAgICAgIGlmICh0b3AgKyBtZW51SGVpZ2h0IC0gJChkb2N1bWVudCkuc2Nyb2xsVG9wKCkgPiAkKHdpbmRvdykuaGVpZ2h0KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdG9wIC09IHRvcCArIG1lbnVIZWlnaHQgLSAkKHdpbmRvdykuaGVpZ2h0KCkgKyA1O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodG9wIDwgMCkge1xuICAgICAgICAgICAgICAgICAgICBtZW51LmhlaWdodChtZW51SGVpZ2h0ICsgdG9wKTtcbiAgICAgICAgICAgICAgICAgICAgdG9wID0gMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbWVudS5jc3Moe1xuICAgICAgICAgICAgICAgICAgICB0b3A6IHRvcCArIFwicHhcIixcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogcG9zLmxlZnQgKyBcInB4XCIsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgbWVudS5zbGlkZURvd24oMTAwKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9kZWxheShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHVpU2VsZWN0LmFkZENsYXNzKFwicmVkLXVpLXR5cGVkSW5wdXQtZm9jdXNcIik7XG4gICAgICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLm9uKFwibW91c2Vkb3duLnJlZC11aS10eXBlZElucHV0LWNsb3NlLXByb3BlcnR5LXNlbGVjdFwiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghJChldmVudC50YXJnZXQpLmNsb3Nlc3QobWVudSkubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5faGlkZU1lbnUobWVudSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJChldmVudC50YXJnZXQpLmNsb3Nlc3QocmVsYXRpdmVUbykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5kaXNhcm1DbGljayA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX3Nob3dUeXBlTWVudSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGlzLl9zaG93TWVudSh0aGF0LiRtZW51LCB0aGF0LiRjb21ibyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHR5cGUgPSB0aGF0LnNlbGVjdGVkTWVudUl0ZW07XG4gICAgICAgICAgICAgICAgdmFyIHNlbGVjdGVkID0gdGhhdC4kbWVudS5maW5kKFwiW3ZhbHVlPSdcIiArIHR5cGUgKyBcIidcIik7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkLnRyaWdnZXIoXCJmb2N1c1wiKTtcbiAgICAgICAgICAgICAgICB9LCAxMjApO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9pbml0TWVudSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiRzZWxlY3RUcmlnZ2VyLmF0dHIoXCJ0YWJpbmRleFwiLCAtMSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kc2VsZWN0VHJpZ2dlci5vbihcIm1vdXNlZG93bi5yZWQtdWktdHlwZWRJbnB1dC1mb2N1cy1ibG9ja1wiLCBmdW5jdGlvbiAoZXZ0KSB7XG4gICAgICAgICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmICh0aGF0LiRtZW51KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJG1lbnUucmVtb3ZlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIGZhLWlkLWNhcmRcbiAgICAgICAgICAgICAgICBjb25zdCB0eXBlTGlzdCA9IFtcbiAgICAgICAgICAgICAgICAgICAgeyBsYWJlbDogXCJ0ZXh0XCIsIHZhbHVlOiBcInRcIiwgdGl0bGU6IFwiVmFsdWUgaXMgbm90IHZlcmlmaWVkXCIsIGljb246ICc8aSBjbGFzcz1cImZhIGZhLWZvbnRcIi9pPiAnIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIm1zZy5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcIm1zZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFwibm9kZSBpZCBvciAgYnJvd3NlIHBhdGggY29tZXMgZnJvbSBpbmplY3RlZCBtc2cgcGFyYW1ldGVyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnPGkgY2xhc3M9XCJmYSBmYS1lbnZlbG9wZS1vcGVuLW9cIi8+JyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBsYWJlbDogXCJOb2RlSWRcIiwgdmFsdWU6IFwiblwiLCBpY29uOiAnPGkgY2xhc3M9XCJmYSBmYS10YWdcIi8+MSAmbmJzcDsgJyB9LFxuICAgICAgICAgICAgICAgICAgICB7IGxhYmVsOiBcIkFsaWFzZWQgTm9kZUlkXCIsIHZhbHVlOiBcIm5hXCIsIGljb246ICc8aSBjbGFzcz1cImZhIGZhLWJvb2ttYXJrXCIvPiZuYnNwOyAnIH0sXG4gICAgICAgICAgICAgICAgICAgIHsgbGFiZWw6IFwiTm9kZUlkIHdpdGggbmFtZXNwYWNlIFVyblwiLCB2YWx1ZTogXCJuc3VcIiwgaWNvbjogJzxpIGNsYXNzPVwiZmEgZmEtaWQtY2FyZFwiLz4mbmJzcDsgJyB9LFxuICAgICAgICAgICAgICAgICAgICB7IGxhYmVsOiBcIkJyb3dzZVBhdGhcIiwgdmFsdWU6IFwiYlwiLCBpY29uOiAnPGkgY2xhc3M9XCJmYSBmYS10YWdcIi8+PGkgY2xhc3M9XCJmYSBmYS1maWdodGVyLWpldFwiLz4mbmJzcDsnIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIkFsaWFzZWQgQnJvd3NlIFBhdGhcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcImFiXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnPGkgY2xhc3M9XCJmYSBmYS1ib29rbWFya1wiLz48aSBjbGFzcz1cImZhIGZhLWZpZ2h0ZXItamV0XCIvPiZuYnNwOycsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICBjb25zdCBhID0gZmlndXJlT3V0TWVuVUl0ZW1WYWx1ZSh0aGF0LiRpbnB1dC52YWwoKSk7XG4gICAgICAgICAgICAgICAgY29uc3QgZSA9IHR5cGVMaXN0LmZpbmQoKHgpID0+IHgudmFsdWUgPT09IGEpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHNlbGVjdExhYmVsLmVtcHR5KCkuYXBwZW5kKGA8c3BhbiB0aXRsZT0keyhlID09PSBudWxsIHx8IGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGUudGl0bGUpIHx8IFwiXCJ9PiZuYnNwOyAkeyhlID09PSBudWxsIHx8IGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGUuaWNvbikgfHwgXCJcIn08L3NwYW4+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC5zZWxlY3RlZE1lbnVJdGVtID0gYTtcbiAgICAgICAgICAgICAgICBjb25zdCB0dCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhhdC4kbWVudSA9IHRoaXMuX2NyZWF0ZU1lbnUodHlwZUxpc3QsIHt9LCAodikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtb2RlID0gdG9Nb2RlKHYpO1xuICAgICAgICAgICAgICAgICAgICBpZiAobW9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gb24gTWVudSBzZWxlY3RlZCAhXG4gICAgICAgICAgICAgICAgICAgICAgICB0dC52ZXJpZnkobW9kZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZSA9IHR5cGVMaXN0LmZpbmQoKHgpID0+IHgudmFsdWUgPT09IHYpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LnNlbGVjdGVkTWVudUl0ZW0gPSB2O1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRzZWxlY3RMYWJlbC5lbXB0eSgpLmFwcGVuZChgPHNwYW4gdGl0bGU9JHsoZSA9PT0gbnVsbCB8fCBlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlLnRpdGxlKSB8fCBcIlwifT4mbmJzcDsgJHsoZSA9PT0gbnVsbCB8fCBlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlLmljb24pIHx8IFwiXCJ9PC9zcGFuPmApO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJG1lbnUuYXBwZW5kVG8oZG9jdW1lbnQuYm9keSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kbWVudS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kc2VsZWN0VHJpZ2dlci5zaG93KCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbW9kZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICByZXR1cm4gdG9Nb2RlKHRoYXQuc2VsZWN0ZWRNZW51SXRlbSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0TW9kZShtb2RlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgY29uc3QgcyA9IGZyb21Nb2RlKG1vZGUpO1xuICAgICAgICAgICAgICAgIHRoYXQuc2VsZWN0ZWRNZW51SXRlbSA9IHM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2NyZWF0ZSgpIHtcbiAgICAgICAgICAgICAgICAvLyBkZWJ1Z2dlcjtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dCA9IHRoaXMuZWxlbWVudDtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5jc3MoXCJib3JkZXJcIiwgXCJub25lXCIpO1xuICAgICAgICAgICAgICAgIC8vIHRoYXQuJGlucHV0LmFkZENsYXNzKFwicmVkLXVpLXR5cGVkSW5wdXRcIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kZWxlbWVudERpdiA9IHRoYXQuJGlucHV0LndyYXAoXCI8ZGl2PlwiKS5wYXJlbnQoKS5hZGRDbGFzcyhcIm1haW4td3JhcHBlclwiKTtcbiAgICAgICAgICAgICAgICAvLyAjcmVnaW9uIENvbWJvIGJyb3dzZXJcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21ibyA9ICQoXCI8ZGl2Lz5cIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYWRkQ2xhc3MoXCJzdGVyZml2ZS1jb21iby1ib3hcIik7XG4gICAgICAgICAgICAgICAgLy8gdGhhdC4kY29tYm8uYWRkQ2xhc3MoXCJyZWQtdWktdHlwZWRJbnB1dC1pbnB1dC13cmFwXCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnJlcGxhY2VXaXRoKHRoYXQuJGNvbWJvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcImlucHV0LWdyb3VwXCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbnB1dEdyb3VwKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiRpbnB1dCk7XG4gICAgICAgICAgICAgICAgLy8gI2VuZHJlZ2lvblxuICAgICAgICAgICAgICAgIC8vICNyZWdpb24gYWRkIGJ1dHRvbiBvbiB0aGUgcmlnaHQgc2lkZVxuICAgICAgICAgICAgICAgIC8vICNyZWdpb24gdG9nZ2xlVHJlZUJ0blxuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4gPSAkKGA8YnV0dG9uIHRpdGxlPVwib3BlbiBPUENVQSBBZGRyZXNzU3BhY2UgQnJvd3NlclwiPjxpIGNsYXNzPVwiZmEgZmEtc2l0ZW1hcFwiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5hZnRlcih0aGF0LiR0b2dnbGVUcmVlQnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5lZWRUb1JlYWNoU2VsZWN0aW9uID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhhdC4kZHJvcGRvd24uaXMoXCI6dmlzaWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRyZWUgd2lkZ2V0IGlzIGdvaW5nIHRvIGJlY29tZSB2aXNpYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50Tm9kZSA9IHlpZWxkIHRoYXQucmVzb2x2ZVBhcmVudE5vZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyZW50Tm9kZSAhPT0gdGhhdC5jdXJyZW50UGFyZW50IHx8ICgoX2EgPSB0aGF0LmN1cnJlbnRQYXJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5ub2RlSWQpICE9PSBwYXJlbnROb2RlLm5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB0aGF0LnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5lZWRUb1JlYWNoU2VsZWN0aW9uID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbmVlZFRvUmVhY2hTZWxlY3Rpb24gJiYgKHlpZWxkIHJlYWNoU2VsZWN0aW9uKHRoYXQsIHBhcmVudE5vZGUpKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgLy8gI2VuZHJlZ2lvblxuICAgICAgICAgICAgICAgIC8vICNyZWdpb24gdmVyaWZ5QnRuXG4gICAgICAgICAgICAgICAgdGhhdC4kdmVyaWZ5QnRuID0gJChgPGJ1dHRvbiB0aXRsZT1cInZlcmlmeSBub2RlSWQgb3IgYnJvd3NlUGF0aFwiPjxpIGNsYXNzPVwiZmEgZmEtcmVmcmVzaFwiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5hZnRlcih0aGF0LiR2ZXJpZnlCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHZlcmlmeUJ0bi5vbihcImNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbW9kZSA9IHRoYXQubW9kZSgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIW1vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnZlcmlmeShtb2RlKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAvLyAjZW5kcmVnaW9uXG4gICAgICAgICAgICAgICAgLy8gI2VuZHJlZ2lvblxuICAgICAgICAgICAgICAgIGNvbnN0IG5vcm1hbGl6ZUlucHV0ID0gKGlucHV0KSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICBsZXQgbW9kZSA9IHRoYXQubW9kZSgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIW1vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbm5lY3Rpb25EYXRhID0gbWFrZUNvbm5lY3Rpb24odGhhdCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgZGF0YSwganNvbiB9ID0geWllbGQgX2NhbGxDaGVja05vZGVJZChjb25uZWN0aW9uRGF0YSwgaW5wdXQpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChqc29uLnN0YXR1c0NvZGUubWF0Y2goL0dvb2QvKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWROb2RlSWQgPSBjaG9vc2VOb2RlSWQoanNvbiwgbW9kZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC52YWwoc2VsZWN0ZWROb2RlSWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgICAgIC8vIGNyZWF0ZSB0aGUgcHJlcGVuZGVkIGJ1dHRvblxuICAgICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kdWlTZWxlY3QgPSAkKFwiPGRpdj5cIik7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmJlZm9yZSh0aGF0LiR1aVNlbGVjdCk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHNlbGVjdFRyaWdnZXIgPSAkKCc8YnV0dG9uIHR5cGU9XCJidXR0b25cIiB0YWJpbmRleD1cIjBcIj48L2J1dHRvbj4nKS5wcmVwZW5kVG8odGhhdC4kdWlTZWxlY3QpO1xuICAgICAgICAgICAgICAgICAgICAkKCc8aSBjbGFzcz1cInJlZC11aS10eXBlZElucHV0LWljb24gZmEgZmEtY2FyZXQtZG93blwiPjwvaT4nKS50b2dnbGUodHJ1ZSkuYXBwZW5kVG8odGhhdC4kc2VsZWN0VHJpZ2dlcik7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHNlbGVjdFRyaWdnZXIub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX3Nob3dUeXBlTWVudSgpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kc2VsZWN0VHJpZ2dlclxuICAgICAgICAgICAgICAgICAgICAgICAgLm9uKFwia2V5ZG93blwiLCBmdW5jdGlvbiAoZXZ0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXZ0LmtleUNvZGUgPT09IDQwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRG93blxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX3Nob3dUeXBlTWVudSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgLm9uKFwiZm9jdXNcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kdWlTZWxlY3QuYWRkQ2xhc3MoXCJyZWQtdWktdHlwZWRJbnB1dC1mb2N1c1wiKTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5vbihcImJsdXJcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdmFyIG9wdCA9IHRoYXQudHlwZU1hcFt0aGF0LnByb3BlcnR5VHlwZV07XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBpZiAob3B0Lmhhc1ZhbHVlID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kdWlTZWxlY3QucmVtb3ZlQ2xhc3MoXCJyZWQtdWktdHlwZWRJbnB1dC1mb2N1c1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHNlbGVjdExhYmVsID0gJCgnPHNwYW4gY2xhc3M9XCJyZWQtdWktdHlwZWRJbnB1dC10eXBlLWxhYmVsXCI+PC9zcGFuPicpLmFwcGVuZFRvKHRoYXQuJHNlbGVjdFRyaWdnZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLl9pbml0TWVudSgpO1xuICAgICAgICAgICAgICAgIGlmICghdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmF0dHIoXCJwbGFjZWhvbGRlclwiLCBcImVudGVyIGEgbm9kZUlkIG9yIGEgYnJvd3NlUGF0aCBcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vICNyZWdpb24gdGVtcG9yYXR5IGluZm8gcGFuZWxcbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvID0gJChgPGRpdiBjbGFzcz1cImluZm8tdGV4dFwiPjwvZGl2PmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbmZvKTtcbiAgICAgICAgICAgICAgICAvLyAjZW5kcmVnaW9uXG4gICAgICAgICAgICAgICAgLy8gI3JlZ2lvbiBkcm9wIGRvd24gdHJlZVxuICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcInN0ZXJmaXZlLWRyb3Bkb3duXCIpLmhpZGUoKS5hcHBlbmRUbyh0aGF0LiRjb21ibyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZSA9ICQoYDx1bCBjbGFzcz1cInN0ZXJmaXZlLXRyZWVcIj48L3VsPmApLmFwcGVuZFRvKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICAvLyB0aGF0LiRkcm9wZG93bi5zaG93KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgICAgICAgICAgIC8vICNlbmRyZWdpb25cbiAgICAgICAgICAgICAgICBjb25zdCBpc09uTGVmdFNpemUgPSAoJGxpLCBldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVXaWR0aCA9IDIwOyAvLyBTZXQgd2lkdGggb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlSGVpZ2h0ID0gMjA7IC8vIFNldCBoZWlnaHQgb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudFBvcyA9ICRsaS5vZmZzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZSA9IGV2ZW50O1xuICAgICAgICAgICAgICAgICAgICBpZiAoZS5wYWdlWCA+PSBlbGVtZW50UG9zLmxlZnQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVggPD0gZWxlbWVudFBvcy5sZWZ0ICsgYmVmb3JlV2lkdGggJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPj0gZWxlbWVudFBvcy50b3AgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPD0gZWxlbWVudFBvcy50b3AgKyBiZWZvcmVIZWlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IHRvZ2dsZUV4cGFuc2lvbiA9ICgkbGkpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGFibGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF9leHBhbmRMaSh0aGF0LCAkbGkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBUb2dnbGUgaXRzIGV4cGFuZGVkL2NvbGxhcHNlZCBzdGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmNoaWxkcmVuKFwidWxcIikuY2hpbGRyZW4oKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN3YXAgZXhwYW5kYWJsZSBhbmQgZXhwYW5kZWQgY2xhc3Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLm9uKFwiZGJsY2xpY2tcIiwgXCJsaVwiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCAkbGkgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNPbkxlZnRTaXplKCRsaSwgZXZlbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b2dnbGVFeHBhbnNpb24oJGxpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gJGxpLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlZmVyZW5jZSA9ICRsaS5kYXRhKFwicmVmZXJlbmNlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5pc1NlbGVjdGFibGUgJiYgIXRoYXQub3B0aW9ucy5pc1NlbGVjdGFibGUocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICgoX2EgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSB8fCAoKF9iID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zdCBpbnB1dCA9IGBbJHtkaXNwbGF5TmFtZX1dKCR7dmFsdWV9KWA7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbW9kZSA9IHRoYXQubW9kZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFtb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZSA9IFwibm9kZUlkXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5zZXRNb2RlKG1vZGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplSW5wdXQodmFsdWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoYXQuJGlucHV0LnZhbChpbnB1dCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhhdC4kaW5wdXQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhhdC4kaW5wdXQudmFsKGlucHV0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGF0LiRpbnB1dC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzT25MZWZ0U2l6ZSgkbGksIGV2ZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlRXhwYW5zaW9uKCRsaSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0U2luZ2xlKHRoYXQsICRsaSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgJChkb2N1bWVudCkub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gY2xpY2tpbmcgb3V0c2lkZSB0aGUgcGFnZSB3aWxsIGhpZGUgdGhlIGRyb3Bkb3duXG4gICAgICAgICAgICAgICAgICAgIGlmICghJChldmVudC50YXJnZXQpLmNsb3Nlc3QodGhhdC4kY29tYm8pLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB0aGUgZW5kcG9pbnQgYXR0cmlidXRlcyBjb250YWluaW5nOlxuICAgICAqICAtIHRoZSBlbmRwb2ludCwgc2VjdXJpdHlNb2RlLCBzZWN1cml0eVBvbGljeSxcbiAgICAgKiAgLSB1c2VySWRlbnRpdHlUeXBlLFxuICAgICAqICAtIGNyZWRlbnRpYWxzXG4gICAgICogIC0gbmFtZXNwYWNlQWxpYXNlc1xuICAgICAqXG4gICAgICogZXh0cmFjdGVkIGZyb20gdGhlIHVpIHdpZGdldCAjbm9kZS1pbnB1dC1lbmRwb2ludFxuICAgICAqL1xuICAgIGNvbnN0IGdldEVuZFBvaW50QXR0cmlidXRlcyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCBlbmRwb2ludElkID0gJGVuZHBvaW50LnZhbCgpO1xuICAgICAgICBjb25zdCByZWROb2RlID0gUkVELm5vZGVzLm5vZGUoZW5kcG9pbnRJZCk7XG4gICAgICAgIGlmICghcmVkTm9kZSlcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIC8vIGNvbnN0IGNyZWRlbnRpYWxzID0gUkVELihlbmRwb2ludElkKTtcbiAgICAgICAgLy8gd2UgbmVlZCB0byBzYW5pdGl6ZSBhbmQgZXh0cmFjdCB0aGUgZW5kcG9pbnQgYXR0cmlidXRlcyBvbmx5ICggbm90IHRoZSBub2RlLXJlZCBzdHVmZilcbiAgICAgICAgY29uc3QgeyBlbmRwb2ludCwgc2VjdXJpdHlNb2RlLCBzZWN1cml0eVBvbGljeSwgdXNlcklkZW50aXR5VHlwZSwgY3JlZGVudGlhbHMsIG5hbWVzcGFjZUFsaWFzZXMgfSA9IHJlZE5vZGU7XG4gICAgICAgIGNvbnN0IHJldFZhbHVlID0ge1xuICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICBzZWN1cml0eU1vZGUsXG4gICAgICAgICAgICBzZWN1cml0eVBvbGljeSxcbiAgICAgICAgICAgIHVzZXJJZGVudGl0eVR5cGUsXG4gICAgICAgICAgICBjcmVkZW50aWFscyxcbiAgICAgICAgICAgIG5hbWVzcGFjZUFsaWFzZXMsXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiByZXRWYWx1ZTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVycyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCBlbmRwb2ludElkID0gJGVuZHBvaW50LnZhbCgpO1xuICAgICAgICBjb25zdCBlbmRwb2ludE5yID0gZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzKCk7XG4gICAgICAgIGlmICghZW5kcG9pbnROcikge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuYW1lc3BhY2VBbGlhc2VzID0gZW5kcG9pbnROci5uYW1lc3BhY2VBbGlhc2VzO1xuICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7IG5hbWVzcGFjZUFsaWFzZXMsIGlkOiBlbmRwb2ludElkIH0sIGVuZHBvaW50TnIpO1xuICAgIH07XG4gICAgY29uc3QgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlciA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzLFxuICAgICAgICB9O1xuICAgIH07XG5cbiAgICBjb25zdCBpbnN0YWxsRmVlZGJhY2tXaWRnZXQgPSAoKSA9PiB7XG4gICAgICAgIC8vIHJldHVybjtcbiAgICAgICAgLy8gZGVidWdnZXI7XG4gICAgICAgIGNvbnN0IHRyYXlDb250ZW50ID0gJChcIi5yZWQtdWktdHJheS1ib2R5XCIpO1xuICAgICAgICBjb25zb2xlLmxvZyhcImluc3RhbGxGZWVkYmFja1dpZGdldCBcIiwgdHJheUNvbnRlbnQubGVuZ3RoKTtcbiAgICAgICAgaWYgKHRyYXlDb250ZW50Lmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJpbnN0YWxsaW5nIGlmcmFtZVwiKTtcbiAgICAgICAgICAgIC8vIENyZWF0ZSB0aGUgaWZyYW1lIGVsZW1lbnRcbiAgICAgICAgICAgIGNvbnN0IGlmcmFtZSA9ICQoXCI8aWZyYW1lPjwvaWZyYW1lPlwiLCB7XG4gICAgICAgICAgICAgICAgc3JjOiBcIi9vcGN1YS1mb3Itbm9kZS1yZWQvc3VwcG9ydC1mcmFtZS5odG1sXCIsXG4gICAgICAgICAgICAgICAgc2Nyb2xsaW5nOiBcIm5vXCIsXG4gICAgICAgICAgICAgICAgc3R5bGU6IFwiYmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtvdmVyZmxvdzpoaWRkZW47Ym9yZGVyOjNweFwiLFxuICAgICAgICAgICAgICAgIGFsbG93dHJhbnNwYXJlbmN5OiBcInRydWVcIixcbiAgICAgICAgICAgICAgICB3aWR0aDogXCIxODBweFwiLFxuICAgICAgICAgICAgICAgIGhlaWdodDogXCIzMHB4XCIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIEFwcGVuZCB0aGUgaWZyYW1lIHRvIHRoZSBmZWVkYmFjayBlbGVtZW50XG4gICAgICAgICAgICB0cmF5Q29udGVudC5hcHBlbmQoaWZyYW1lKTtcbiAgICAgICAgICAgIC8vIFBvc2l0aW9uIHRoZSBmZWVkYmFjayBlbGVtZW50IGF0IHRoZSBib3R0b20gcmlnaHQgb2YgdGhlIHRyYXkgY29udGVudFxuICAgICAgICAgICAgaWZyYW1lLmNzcyh7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICAgICAgICAgICAgICByaWdodDogXCIyMHB4XCIsXG4gICAgICAgICAgICAgICAgYm90dG9tOiBcIjE2cHhcIixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIFJFRC5ub2Rlcy5yZWdpc3RlclR5cGUoXCJPcGNVYS1DbGllbnQyLVdyaXRlXCIsIHtcbiAgICAgICAgY2F0ZWdvcnk6IFwib3BjdWFcIixcbiAgICAgICAgY29sb3I6IFwiI0MwREVFRFwiLFxuICAgICAgICBhbGlnbjogXCJyaWdodFwiLFxuICAgICAgICBpY29uOiBcIi4uLy4uL2ljb25zL29wY3Vhbm9kZUxvZ28ucG5nXCIsXG4gICAgICAgIHBhbGV0dGVMYWJlbDogXCJ3cml0ZVwiLFxuICAgICAgICBkZWZhdWx0czoge1xuICAgICAgICAgICAgaW5wdXRzOiB7IHZhbHVlOiAxIH0sXG4gICAgICAgICAgICBvdXRwdXQ6IHsgdmFsdWU6IDQgfSxcbiAgICAgICAgICAgIC8vIENvbW1vblxuICAgICAgICAgICAgbmFtZTogeyB2YWx1ZTogXCJcIiB9LFxuICAgICAgICAgICAgZW5kcG9pbnQ6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiB0cnVlLCB0eXBlOiBcIk9wY1VhLUVuZHBvaW50MlwiIH0sXG4gICAgICAgICAgICBhdHRyaWJ1dGVJZDogeyB2YWx1ZTogXCJWYWx1ZVwiLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgbm9kZUlkOiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogZmFsc2UgfSxcbiAgICAgICAgfSxcbiAgICAgICAgaW5wdXRzOiAxLFxuICAgICAgICBvdXRwdXRzOiAxLFxuICAgICAgICBsYWJlbCgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgfHwgXCJPUENVQSBDbGllbnQgV3JpdGVcIjtcbiAgICAgICAgfSxcbiAgICAgICAgbGFiZWxTdHlsZSgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgPyBcIm5vZGVfbGFiZWxfaXRhbGljXCIgOiBcIlwiO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRwcmVwYXJlKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXM7XG4gICAgICAgICAgICBkZWNsYXJlTm9kZUJyb3dzZXJXaWRnZXQoKTtcbiAgICAgICAgICAgIGluc3RhbGxGZWVkYmFja1dpZGdldCgpO1xuICAgICAgICAgICAgbm9kZS5pbnB1dHMgPSAxO1xuICAgICAgICAgICAgY29uc3QgJG5vZGVJZCA9ICQoXCIjbm9kZS1pbnB1dC1ub2RlSWRcIik7XG4gICAgICAgICAgICAkbm9kZUlkLm5vZGVCcm93c2VyKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlcigpKSwgeyBpc1NlbGVjdGFibGUobm9kZURlc2MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJWYXJpYWJsZVwiO1xuICAgICAgICAgICAgICAgIH0gfSkpO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRzYXZlKCkgeyB9LFxuICAgIH0pO1xuXG59KSgpOyJdfQ==
9
9
  </script>
10
10
  <script type="text/x-red" data-template-name="OpcUa-Client2-Write">
11
11
  <h3>OpcUa Write</h3>