@opcua/for-node-red 2.5.1 → 2.5.3

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opcua/for-node-red",
3
- "version": "2.5.1",
3
+ "version": "2.5.3",
4
4
  "description": "The Node-RED node to communicate via OPC UA, powered NodeOPCUA and developed by Sterfive's team",
5
5
  "repository": {
6
6
  "type": "git",
@@ -4,8 +4,8 @@
4
4
  </style>
5
5
 
6
6
  <script type="text/javascript">
7
- function _0x5292(_0x27b362,_0xccaed5){const _0xe5bf6=_0xe5bf();return _0x5292=function(_0x5292bb,_0x2f3843){_0x5292bb=_0x5292bb-0x14e;let _0x10caa6=_0xe5bf6[_0x5292bb];return _0x10caa6;},_0x5292(_0x27b362,_0xccaed5);}function _0xe5bf(){const _0x37edb8=['status','<ul></ul></li>','application/json','fa-cog','err','done','node_label_italic','../../icons/opcuanodeLogo.png','i=31','appendTo','pageY','nodeClass','2SLQpzJ','<div\x20class=\x22custom-option\x22\x20data-value=\x22','selected','insertAfter','hasClass','displayName','\x20|\x20','<div\x20class=\x22custom-select\x22></div>','nodeBrowser','DataType','DisplayName','#C0DEED','390439HkLfJc','ns=0;i=47','Organizes','/checkNodeId','.spinner','element','change','HasComponent','44CqIwDs','flagEditor','\x22\x20style=\x22color:','stringify','right','opc.tcp://opcuademo.sterfive.com:26543','options','json','#node-input-nodeClassMask','Unknown\x20bit\x20name','currentParent','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','<div\x20class=\x22spinner\x22></div>',';\x22></i>\x20','append','<li><i\x20class=\x22fa\x20','SeaGreen','$verifyBtn','#node-input-nodeId','log','filter','push','ReferenceType','<span\x20class=\x22custom-checkbox\x22></span>','children','reset','!!failure!!','ns=0;i=61','$toggleTreeBtn','$dropdown','ObjectType','widget','1688031CExTQJ','References','parentNode','text','addClass','.custom-option','Both','value','$info','updateValue','BrowseName','placeholder','name','match','number','entries','fetched\x20:\x20','trim','TypeDefinition','toString','Invalid','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','HasTypeDefinition','closest','$inputGroup','9639272fwbADC','removeClass','VariableType','fa-folder','show','length','browse','<div\x20class=\x22info-text\x22></div>','DarkOrange','node','sterfive-info','OpcUa-Client2-Browse',':visible','fetching\x20failed\x20with\x20error','ns=0;i=45','map','error','join','find','rgba(61,\x2060,\x204,\x200.525)','assign','OpcUa-Endpoint2','left','browseName','$input','data','ns=0;i=40','2436204nYiuhy','Forward','expandable','attr','then','#node-input-resultMask','#node-input-endpoint','references','POST','each','loading','expanded','383421LdTqOM','trigger','target','</div>','hide','Good','<li>error\x20','Objects','1143970KNmFYW','grey','/opcua-endpoint2','already\x20fetched','10NtPuiB','failure','Variable\x20|\x20Object\x20|\x20Method\x20|\x20ObjectType\x20|\x20VariableType','nodeId','top','HasProperty','remove','50egzloO','registerType','sterfive-dropdown','message','Unspecified','input-group','catch','isSelectable','<div/>','Method','val','fetched','namesToBits','endpointNode','Object','44426118AFxZJH','already\x20loading','inputs','Variable','pageX','fa-list-alt','SuppressedError','referenceTypeId','suppressed','NodeClass','resolveParentNode','throw','click','$tree','View','Inverse','function','statusCode','</li>','IsForward','nodes','HasChild','verify','typeDefinition','toggleClass','sterfive.nodeBrowser','HasSubtype','reference','expandable\x20expanded','<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','baseUrl','offset','$combo','empty','statusText','endpoint'];_0xe5bf=function(){return _0x37edb8;};return _0xe5bf();}(function(_0x185740,_0x25c8e0){const _0x6810ad=_0x5292,_0xefc29c=_0x185740();while(!![]){try{const _0x46855c=-parseInt(_0x6810ad(0x1e4))/0x1*(-parseInt(_0x6810ad(0x19a))/0x2)+parseInt(_0x6810ad(0x192))/0x3*(-parseInt(_0x6810ad(0x1f8))/0x4)+-parseInt(_0x6810ad(0x19e))/0x5*(parseInt(_0x6810ad(0x186))/0x6)+-parseInt(_0x6810ad(0x1f0))/0x7+-parseInt(_0x6810ad(0x16b))/0x8+-parseInt(_0x6810ad(0x152))/0x9*(parseInt(_0x6810ad(0x1a5))/0xa)+parseInt(_0x6810ad(0x1b4))/0xb;if(_0x46855c===_0x25c8e0)break;else _0xefc29c['push'](_0xefc29c['shift']());}catch(_0x1b499a){_0xefc29c['push'](_0xefc29c['shift']());}}}(_0xe5bf,0xbb14a),(function(){'use strict';const _0x1ed4d0=_0x5292;function _0x50ccfc(_0x542c79,_0x2935c1,_0x1c3cab,_0x25f362){function _0x2af27e(_0x5c83bf){return _0x5c83bf instanceof _0x1c3cab?_0x5c83bf:new _0x1c3cab(function(_0x2fa571){_0x2fa571(_0x5c83bf);});}return new(_0x1c3cab||(_0x1c3cab=Promise))(function(_0x2d0cef,_0xdb63c3){function _0x520365(_0x25a294){try{_0x12595d(_0x25f362['next'](_0x25a294));}catch(_0x12a6cb){_0xdb63c3(_0x12a6cb);}}function _0x445d6d(_0x185799){const _0x14a631=_0x5292;try{_0x12595d(_0x25f362[_0x14a631(0x1bf)](_0x185799));}catch(_0x4c609a){_0xdb63c3(_0x4c609a);}}function _0x12595d(_0x27e5ef){const _0x1885bd=_0x5292;_0x27e5ef[_0x1885bd(0x1dd)]?_0x2d0cef(_0x27e5ef[_0x1885bd(0x159)]):_0x2af27e(_0x27e5ef[_0x1885bd(0x159)])[_0x1885bd(0x18a)](_0x520365,_0x445d6d);}_0x12595d((_0x25f362=_0x25f362['apply'](_0x542c79,_0x2935c1||[]))['next']());});}typeof SuppressedError==='function'?SuppressedError:function(_0x2a90b5,_0x53053b,_0x58462a){const _0x118990=_0x5292;var _0x369857=new Error(_0x58462a);return _0x369857[_0x118990(0x15e)]=_0x118990(0x1ba),_0x369857[_0x118990(0x17b)]=_0x2a90b5,_0x369857[_0x118990(0x1bc)]=_0x53053b,_0x369857;};const _0x240e58='ns=0;i=35',_0x550c6a=_0x1ed4d0(0x213),_0x4944a0=_0x1ed4d0(0x1f1),_0x596a13='ns=0;i=46',_0x1a9400='ns=0;i=34',_0x41541f=_0x1ed4d0(0x179),_0x3962ae=_0x1ed4d0(0x185);var _0x333da1;(function(_0x2490b6){const _0x482893=_0x1ed4d0;_0x2490b6[_0x2490b6[_0x482893(0x187)]=0x0]='Forward',_0x2490b6[_0x2490b6[_0x482893(0x1c3)]=0x1]=_0x482893(0x1c3),_0x2490b6[_0x2490b6[_0x482893(0x158)]=0x2]='Both',_0x2490b6[_0x2490b6[_0x482893(0x166)]=0x3]=_0x482893(0x166);}(_0x333da1||(_0x333da1={})));var _0xb9527b;(function(_0x1e2131){const _0x32438c=_0x1ed4d0;_0x1e2131[_0x1e2131[_0x32438c(0x1a9)]=0x0]=_0x32438c(0x1a9),_0x1e2131[_0x1e2131[_0x32438c(0x1b3)]=0x1]=_0x32438c(0x1b3),_0x1e2131[_0x1e2131['Variable']=0x2]='Variable',_0x1e2131[_0x1e2131[_0x32438c(0x1ae)]=0x4]=_0x32438c(0x1ae),_0x1e2131[_0x1e2131[_0x32438c(0x150)]=0x8]='ObjectType',_0x1e2131[_0x1e2131[_0x32438c(0x16d)]=0x10]=_0x32438c(0x16d),_0x1e2131[_0x1e2131[_0x32438c(0x20e)]=0x20]=_0x32438c(0x20e),_0x1e2131[_0x1e2131[_0x32438c(0x1ed)]=0x40]=_0x32438c(0x1ed),_0x1e2131[_0x1e2131[_0x32438c(0x1c2)]=0x80]=_0x32438c(0x1c2);}(_0xb9527b||(_0xb9527b={})));var _0x3dc17f;(function(_0x4493e9){const _0xad030a=_0x1ed4d0;_0x4493e9[_0x4493e9[_0xad030a(0x1b3)]=0x1]=_0xad030a(0x1b3),_0x4493e9[_0x4493e9[_0xad030a(0x1b7)]=0x2]='Variable',_0x4493e9[_0x4493e9['Method']=0x4]=_0xad030a(0x1ae),_0x4493e9[_0x4493e9['ObjectType']=0x8]=_0xad030a(0x150),_0x4493e9[_0x4493e9[_0xad030a(0x16d)]=0x10]=_0xad030a(0x16d),_0x4493e9[_0x4493e9['ReferenceType']=0x20]='ReferenceType',_0x4493e9[_0x4493e9[_0xad030a(0x1ed)]=0x40]=_0xad030a(0x1ed),_0x4493e9[_0x4493e9['View']=0x80]=_0xad030a(0x1c2);}(_0x3dc17f||(_0x3dc17f={})));function _0x570ba5(_0x3d3df0,_0x31f024){const _0x26152e=_0x1ed4d0;if(typeof _0x31f024===_0x26152e(0x160))return _0x31f024;const _0xc5d65f=parseInt(_0x31f024,0xa);if(!isNaN(_0xc5d65f))return _0xc5d65f;const _0x5279d4=_0x31f024['split'](/\||;|,/)[_0x26152e(0x17a)](_0x41b939=>_0x41b939[_0x26152e(0x163)]());let _0xb890e8=0x0;for(const _0x128c66 of _0x5279d4){_0xb890e8|=_0x3d3df0[_0x128c66];}return _0xb890e8;}function _0x582c45(_0x4739d7,_0x108b9d){const _0x39e040=_0x1ed4d0;_0x108b9d=_0x570ba5(_0x4739d7,_0x108b9d);const _0x318f1c=[];if(!_0x4739d7)return _0x318f1c[_0x39e040(0x17c)](_0x39e040(0x1ea));for(const [_0x3737cd,_0x2a09d0]of Object[_0x39e040(0x161)](_0x4739d7)){typeof _0x108b9d==='number'&&((_0x108b9d&_0x2a09d0)===_0x2a09d0&&_0x318f1c[_0x39e040(0x20d)](_0x3737cd));}return _0x318f1c[_0x39e040(0x17c)](_0x39e040(0x1ea));}var _0x381744;(function(_0xe96a01){const _0x14f4f0=_0x1ed4d0;_0xe96a01[_0xe96a01[_0x14f4f0(0x20e)]=0x1]=_0x14f4f0(0x20e),_0xe96a01[_0xe96a01[_0x14f4f0(0x1c7)]=0x2]=_0x14f4f0(0x1c7),_0xe96a01[_0xe96a01['NodeClass']=0x4]=_0x14f4f0(0x1bd),_0xe96a01[_0xe96a01[_0x14f4f0(0x15c)]=0x8]=_0x14f4f0(0x15c),_0xe96a01[_0xe96a01[_0x14f4f0(0x1ee)]=0x10]=_0x14f4f0(0x1ee),_0xe96a01[_0xe96a01[_0x14f4f0(0x164)]=0x20]=_0x14f4f0(0x164);}(_0x381744||(_0x381744={})));function _0x454e53(_0xc8ebf2){const _0x2634ad=_0x1ed4d0;switch(_0xc8ebf2){case _0x2634ad(0x1f2):return _0x240e58;case _0x2634ad(0x1a3):return _0x596a13;case _0x2634ad(0x1f7):return _0x4944a0;case'HasChild':return _0x1a9400;case _0x2634ad(0x1ce):return _0x41541f;case _0x2634ad(0x168):return _0x3962ae;}}const _0x3b8d6c=_0x351920=>{const _0x40b80e=_0x1ed4d0;switch(_0x351920[_0x40b80e(0x1e3)]){case'Object':if(_0x351920[_0x40b80e(0x1bb)]===_0x240e58);if(_0x351920[_0x40b80e(0x1cb)]===_0x550c6a||_0x351920[_0x40b80e(0x1bb)]==='i=61')return{'icon':_0x40b80e(0x16e),'color':_0x40b80e(0x17e)};return{'icon':'fa-object-group','color':_0x40b80e(0x208)};case _0x40b80e(0x1b7):if(_0x351920['referenceTypeId']===_0x4944a0)return{'icon':_0x40b80e(0x1b9),'color':'SteelBlue'};else return _0x351920[_0x40b80e(0x1bb)]===_0x596a13?{'icon':_0x40b80e(0x1b9),'color':'DodgerBlue'}:{'icon':_0x40b80e(0x1b9),'color':'CadetBlue'};case _0x40b80e(0x1ae):return{'icon':_0x40b80e(0x1db),'color':'SandyBrown'};case _0x40b80e(0x150):return{'icon':'fa-object-group','color':'DarkOrange'};case _0x40b80e(0x16d):return{'icon':'fa-sliders','color':_0x40b80e(0x173)};}return{'icon':'fa-question','color':_0x40b80e(0x19b)};},_0x2c390e=({endpointNode:_0x5100eb,endpoint:_0x11cc80,baseUrl:_0xe3174f},_0x3438c0,_0x3933c1)=>_0x50ccfc(void 0x0,void 0x0,void 0x0,function*(){const _0x1c3238=_0x1ed4d0,_0x16cb3f=_0xe3174f+_0x1c3238(0x19c),_0x58811f=_0x16cb3f+'/browse',_0x5799e7=Object[_0x1c3238(0x17f)](Object[_0x1c3238(0x17f)]({},_0x3933c1),{'nodeId':_0x3438c0,'resultMask':0x3f}),_0x1234c1=yield fetch(_0x58811f,{'method':_0x1c3238(0x18e),'body':JSON[_0x1c3238(0x1fb)]({'endpointNode':_0x5100eb,'endpoint':_0x11cc80,'browseDescription':_0x5799e7}),'headers':{'Content-Type':_0x1c3238(0x1da)}});if(_0x1234c1['status']!==0xc8)return console['log'](_0x1c3238(0x178),_0x1234c1['status'],_0x1234c1['statusText']),{'references':[]};console[_0x1c3238(0x20b)](_0x1c3238(0x162),_0x1234c1[_0x1c3238(0x1d8)],_0x1234c1[_0x1c3238(0x1d6)]);const _0x522306=yield _0x1234c1[_0x1c3238(0x1ff)](),_0x563834=_0x522306['browseResult'][_0x1c3238(0x18d)]||[];return{'references':_0x563834};}),_0x5de095={'referenceTypeId':_0x454e53(_0x1ed4d0(0x1c9)),'includeSubtypes':!![],'browseDirection':_0x333da1[_0x1ed4d0(0x187)],'nodeClassMask':_0xb9527b[_0x1ed4d0(0x1b7)]|_0xb9527b['Object']|_0xb9527b[_0x1ed4d0(0x1ae)],'resultMask':0x3f},_0x4c7f47={'referenceTypeId':_0x454e53('Organizes'),'includeSubtypes':!![],'browseDirection':_0x333da1[_0x1ed4d0(0x187)],'nodeClassMask':_0xb9527b['Variable']|_0xb9527b[_0x1ed4d0(0x1b3)]|_0xb9527b[_0x1ed4d0(0x1ae)],'resultMask':0x3f},_0x18eaf1=({endpointNode:_0x22fe4c,endpoint:_0x50fb1c,baseUrl:_0x3521b1},_0x5a81a6,_0x2fabd6)=>_0x50ccfc(void 0x0,void 0x0,void 0x0,function*(){const _0x1fe908=_0x1ed4d0,_0x9656af=_0x3521b1+_0x1fe908(0x19c),_0x4cb156=_0x5a81a6[_0x1fe908(0x1af)](),_0x34ccf1=yield fetch(_0x9656af+_0x1fe908(0x1f3),{'method':_0x1fe908(0x18e),'body':JSON[_0x1fe908(0x1fb)]({'endpointNode':_0x22fe4c,'endpoint':_0x50fb1c,'nodeId':_0x4cb156}),'headers':{'Content-Type':_0x1fe908(0x1da)}}),_0x401cce=(_0x469326,_0x3977ea)=>{const _0x2d1fa2=_0x1fe908;_0x2fabd6[_0x2d1fa2(0x155)](_0x469326)['addClass'](_0x2d1fa2(0x175))[_0x2d1fa2(0x156)](_0x3977ea),_0x2fabd6[_0x2d1fa2(0x16f)](),setTimeout(()=>{_0x2fabd6['removeClass'](_0x3977ea),_0x2fabd6['hide']();},0xbb8);},_0x592f82=yield _0x34ccf1[_0x1fe908(0x1ff)]();_0x34ccf1[_0x1fe908(0x1d8)]!==0xc8?_0x401cce(_0x1fe908(0x212)+_0x4cb156,_0x1fe908(0x19f)):_0x592f82[_0x1fe908(0x1c5)][_0x1fe908(0x15f)](/Good/)?(_0x5a81a6[_0x1fe908(0x1af)](_0x592f82['nodeAddressString']),_0x5a81a6[_0x1fe908(0x193)](_0x1fe908(0x1f6)),_0x401cce(_0x1fe908(0x197),'ok')):(_0x5a81a6[_0x1fe908(0x1af)](''+_0x4cb156),_0x401cce(_0x592f82['statusCode']+'\x20'+_0x34ccf1[_0x1fe908(0x1d6)],'failure'));});function _0x531c00(_0x131285,_0x3a589e){return _0x50ccfc(this,void 0x0,void 0x0,function*(){const _0x246910=_0x5292,_0x444c12=_0x131285[_0x246910(0x184)](_0x246910(0x159)),_0x545a9f=yield _0x2c390e(_0x3a589e,_0x444c12,_0x5de095),_0xf0c737=yield _0x2c390e(_0x3a589e,_0x444c12,_0x4c7f47);return{'references':[..._0x545a9f[_0x246910(0x18d)],..._0xf0c737['references']]};});}const _0x54176c={'referenceTypeId':_0x454e53(_0x1ed4d0(0x1ce)),'includeSubtypes':!![],'browseDirection':_0x333da1[_0x1ed4d0(0x187)],'nodeClassMask':_0xb9527b[_0x1ed4d0(0x20e)]|_0xb9527b[_0x1ed4d0(0x150)]|_0xb9527b[_0x1ed4d0(0x1ed)]|_0xb9527b[_0x1ed4d0(0x16d)],'resultMask':0x3f};function _0x46f2fc(_0x46c1fc,_0x27aa5a){return _0x50ccfc(this,void 0x0,void 0x0,function*(){const _0x54414c=_0x5292,_0x1ce8e9=_0x46c1fc[_0x54414c(0x184)](_0x54414c(0x159)),_0x1d6549=yield _0x2c390e(_0x27aa5a,_0x1ce8e9,_0x54176c);return _0x1d6549;});}const _0x27e830=_0x58d15a=>{const _0x1c55f4=_0x1ed4d0;var _0x85113f,_0x5c9760;if(!_0x58d15a){const _0x430483=$(_0x1c55f4(0x203));return _0x430483;}const _0x4115b8=_0x58d15a[_0x1c55f4(0x1a1)][_0x1c55f4(0x165)](),_0x54d40f=((_0x85113f=_0x58d15a[_0x1c55f4(0x1e9)])===null||_0x85113f===void 0x0?void 0x0:_0x85113f[_0x1c55f4(0x155)])||((_0x5c9760=_0x58d15a[_0x1c55f4(0x182)])===null||_0x5c9760===void 0x0?void 0x0:_0x5c9760['name'])||_0x58d15a[_0x1c55f4(0x1a1)][_0x1c55f4(0x165)](),{icon:_0x5518a1,color:_0x11f91f}=_0x3b8d6c(_0x58d15a),_0x41af03=$(_0x1c55f4(0x207)+_0x5518a1+_0x1c55f4(0x1fa)+_0x11f91f+_0x1c55f4(0x205)+_0x54d40f+_0x1c55f4(0x1d9));return _0x41af03[_0x1c55f4(0x156)](_0x1c55f4(0x188)),_0x41af03[_0x1c55f4(0x184)](_0x1c55f4(0x159),_0x4115b8),_0x41af03['data'](_0x1c55f4(0x1cf),_0x58d15a),_0x41af03;},_0x4ec85f=()=>{const _0x4f203d=_0x1ed4d0;$[_0x4f203d(0x151)](_0x4f203d(0x1cd),{'options':{'endpointNode':()=>({'endpoint':_0x4f203d(0x1fd)}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':'Objects'},'nodeClass':_0x4f203d(0x1b3),'nodeId':'ns=0;i=85','displayName':{'text':_0x4f203d(0x199)},'typeDefinition':_0x550c6a}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x50ccfc(this,void 0x0,void 0x0,function*(){const _0x2abed5=_0x5292,_0x562af8=this,_0x2765d7=typeof _0x562af8[_0x2abed5(0x1fe)][_0x2abed5(0x154)]===_0x2abed5(0x1c4)?_0x562af8[_0x2abed5(0x1fe)][_0x2abed5(0x154)]():_0x562af8[_0x2abed5(0x1fe)][_0x2abed5(0x154)];if(_0x2765d7 instanceof Promise)return yield _0x2765d7;return _0x2765d7;});},'reset'(){const _0x336d8b=_0x4f203d,_0x3ca086=this;_0x3ca086[_0x336d8b(0x1c1)][_0x336d8b(0x1d5)](),this['resolveParentNode']()[_0x336d8b(0x18a)](_0x488abb=>{const _0x56f009=_0x336d8b,_0x2d13fa=_0x27e830(_0x488abb);_0x3ca086['$tree'][_0x56f009(0x206)](_0x2d13fa),_0x3ca086[_0x56f009(0x202)]=_0x488abb;});},'verify'(){const _0x50c107=_0x4f203d,_0x3c1710=this,_0x126f7f={'baseUrl':_0x3c1710['options'][_0x50c107(0x1d2)],'endpointNode':typeof _0x3c1710[_0x50c107(0x1fe)][_0x50c107(0x1b2)]==='function'?_0x3c1710['options'][_0x50c107(0x1b2)]():_0x3c1710['options'][_0x50c107(0x1b2)],'endpoint':typeof _0x3c1710['options'][_0x50c107(0x1d7)]===_0x50c107(0x1c4)?_0x3c1710[_0x50c107(0x1fe)][_0x50c107(0x1d7)]():_0x3c1710[_0x50c107(0x1fe)]['endpoint']};_0x18eaf1(_0x126f7f,_0x3c1710[_0x50c107(0x183)],_0x3c1710[_0x50c107(0x15a)]);},'_create'(){const _0x11aef0=_0x4f203d,_0x258cc9=this;function _0x3c5d72(_0x1684f8,_0x4fed4e,_0xc28ab4){return _0x50ccfc(this,void 0x0,void 0x0,function*(){const _0x2c6abe=_0x5292;if(_0x1684f8['hasClass'](_0x2c6abe(0x1b0))){console['log'](_0x2c6abe(0x19d));return;}if(_0x1684f8[_0x2c6abe(0x1e8)](_0x2c6abe(0x190))){console[_0x2c6abe(0x20b)](_0x2c6abe(0x1b5));return;}_0x1684f8[_0x2c6abe(0x156)](_0x2c6abe(0x190)),_0x1684f8[_0x2c6abe(0x206)](_0x2c6abe(0x204));try{_0x1684f8[_0x2c6abe(0x210)]('ul')[_0x2c6abe(0x1d5)]();const {references:_0x42f5b5}=yield _0x4fed4e(_0x1684f8,_0xc28ab4);for(const _0x201ad0 of _0x42f5b5){if(_0x258cc9[_0x2c6abe(0x1fe)]['filter']&&!_0x258cc9['options'][_0x2c6abe(0x20c)](_0x201ad0))continue;const _0x41257b=_0x27e830(_0x201ad0);_0x1684f8[_0x2c6abe(0x210)]('ul')[_0x2c6abe(0x206)](_0x41257b);}_0x1684f8[_0x2c6abe(0x156)]('fetched');}catch(_0x12ce4c){_0x1684f8[_0x2c6abe(0x210)]('ul')[_0x2c6abe(0x206)](_0x2c6abe(0x198)+_0x12ce4c[_0x2c6abe(0x1a8)]+_0x2c6abe(0x1c6)),console[_0x2c6abe(0x20b)](_0x2c6abe(0x1dc),_0x12ce4c);}_0x1684f8[_0x2c6abe(0x17d)](_0x2c6abe(0x1f4))[_0x2c6abe(0x1a4)](),_0x1684f8[_0x2c6abe(0x16c)](_0x2c6abe(0x190));});}_0x258cc9[_0x11aef0(0x183)]=this[_0x11aef0(0x1f5)],_0x258cc9[_0x11aef0(0x1d4)]=$('<div/>'),_0x258cc9[_0x11aef0(0x1d4)][_0x11aef0(0x156)]('sterfive-combo-box'),this[_0x11aef0(0x1f5)]['replaceWith'](_0x258cc9['$combo']),_0x258cc9[_0x11aef0(0x16a)]=$(_0x11aef0(0x1ad))['addClass'](_0x11aef0(0x1aa)),_0x258cc9[_0x11aef0(0x1d4)][_0x11aef0(0x206)](_0x258cc9['$inputGroup']),_0x258cc9[_0x11aef0(0x16a)][_0x11aef0(0x206)](_0x258cc9['$input']),_0x258cc9[_0x11aef0(0x14e)]=$(_0x11aef0(0x1d1)),_0x258cc9[_0x11aef0(0x16a)]['append'](_0x258cc9[_0x11aef0(0x14e)]),_0x258cc9['$toggleTreeBtn']['on'](_0x11aef0(0x1c0),function(){const _0x52a9f8=_0x11aef0;!_0x258cc9[_0x52a9f8(0x14f)]['is'](':visible')&&(_0x258cc9[_0x52a9f8(0x1be)]()[_0x52a9f8(0x18a)](_0x1ad35d=>{const _0xe46996=_0x52a9f8;var _0x21db20;(_0x1ad35d!==_0x258cc9[_0xe46996(0x202)]||((_0x21db20=_0x258cc9[_0xe46996(0x202)])===null||_0x21db20===void 0x0?void 0x0:_0x21db20[_0xe46996(0x1a1)])!==_0x1ad35d[_0xe46996(0x1a1)])&&_0x258cc9[_0xe46996(0x211)]();}),_0x258cc9[_0x52a9f8(0x15a)][_0x52a9f8(0x196)]()),_0x258cc9[_0x52a9f8(0x14f)]['toggle']();}),_0x258cc9[_0x11aef0(0x209)]=$('<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>'),_0x258cc9[_0x11aef0(0x16a)][_0x11aef0(0x206)](_0x258cc9[_0x11aef0(0x209)]),_0x258cc9[_0x11aef0(0x209)]['on'](_0x11aef0(0x1c0),()=>{const _0x51ba1b=_0x11aef0;this[_0x51ba1b(0x1ca)]();}),!_0x258cc9[_0x11aef0(0x183)][_0x11aef0(0x189)](_0x11aef0(0x15d))&&_0x258cc9['$input'][_0x11aef0(0x189)](_0x11aef0(0x15d),_0x11aef0(0x167)),_0x258cc9[_0x11aef0(0x15a)]=$(_0x11aef0(0x172)),_0x258cc9[_0x11aef0(0x15a)][_0x11aef0(0x196)](),{'baseUrl':_0x258cc9['options'][_0x11aef0(0x1d2)],'endpointNode':typeof _0x258cc9[_0x11aef0(0x1fe)][_0x11aef0(0x1b2)]===_0x11aef0(0x1c4)?_0x258cc9[_0x11aef0(0x1fe)]['endpointNode']():_0x258cc9['options'][_0x11aef0(0x1b2)],'endpoint':typeof _0x258cc9[_0x11aef0(0x1fe)]['endpoint']===_0x11aef0(0x1c4)?_0x258cc9[_0x11aef0(0x1fe)][_0x11aef0(0x1d7)]():_0x258cc9['options']['endpoint']},_0x258cc9['$dropdown']=$(_0x11aef0(0x1ad))[_0x11aef0(0x156)](_0x11aef0(0x1a7))['hide'](),_0x258cc9['$combo']['append'](_0x258cc9['$info']),_0x258cc9[_0x11aef0(0x1d4)][_0x11aef0(0x206)](_0x258cc9[_0x11aef0(0x14f)]),_0x258cc9[_0x11aef0(0x1c1)]=$('<ul\x20class=\x22sterfive-tree\x22></ul>')[_0x11aef0(0x1e1)](_0x258cc9[_0x11aef0(0x14f)]),this[_0x11aef0(0x211)](),_0x258cc9['$tree']['on']('click','li',function(_0x4c2498){const _0x9c40a9=_0x11aef0;var _0x237856,_0x5db63a;_0x4c2498['stopPropagation']();let _0x17b14b=$(this);const _0x3b6563=0x14,_0x28a132=0x14,_0x1a3f0a=$(this)[_0x9c40a9(0x1d3)](),_0x25e308=_0x4c2498;if(_0x25e308[_0x9c40a9(0x1b8)]>=_0x1a3f0a['left']&&_0x25e308['pageX']<=_0x1a3f0a[_0x9c40a9(0x181)]+_0x3b6563&&_0x25e308[_0x9c40a9(0x1e2)]>=_0x1a3f0a[_0x9c40a9(0x1a2)]&&_0x25e308[_0x9c40a9(0x1e2)]<=_0x1a3f0a[_0x9c40a9(0x1a2)]+_0x28a132){if(_0x17b14b[_0x9c40a9(0x1e8)](_0x9c40a9(0x188))){if(_0x17b14b['hasClass']('fetched')){_0x17b14b['removeClass']('expandable')[_0x9c40a9(0x156)]('expanded'),_0x17b14b[_0x9c40a9(0x210)]('ul')['toggle']();return;}const _0x147b7a={'baseUrl':_0x258cc9[_0x9c40a9(0x1fe)][_0x9c40a9(0x1d2)],'endpointNode':typeof _0x258cc9[_0x9c40a9(0x1fe)][_0x9c40a9(0x1b2)]===_0x9c40a9(0x1c4)?_0x258cc9[_0x9c40a9(0x1fe)][_0x9c40a9(0x1b2)]():_0x258cc9[_0x9c40a9(0x1fe)][_0x9c40a9(0x1b2)],'endpoint':typeof _0x258cc9[_0x9c40a9(0x1fe)][_0x9c40a9(0x1d7)]===_0x9c40a9(0x1c4)?_0x258cc9[_0x9c40a9(0x1fe)][_0x9c40a9(0x1d7)]():_0x258cc9['options'][_0x9c40a9(0x1d7)]},_0x5ac181=!_0x258cc9[_0x9c40a9(0x1fe)]['isTypeRef']?_0x531c00:_0x46f2fc;_0x3c5d72(_0x17b14b,_0x5ac181,_0x147b7a)[_0x9c40a9(0x18a)](()=>{const _0x5a8e05=_0x9c40a9;console[_0x5a8e05(0x20b)]('\x20Fetching\x20done'),console[_0x5a8e05(0x20b)](_0x5a8e05(0x1b0)),_0x17b14b[_0x5a8e05(0x16c)](_0x5a8e05(0x188))[_0x5a8e05(0x156)]('expanded');})[_0x9c40a9(0x1ab)](_0xbd1a20=>{const _0x2aad6e=_0x9c40a9;_0x17b14b[_0x2aad6e(0x16c)](_0x2aad6e(0x188))['addClass'](_0x2aad6e(0x191)),console[_0x2aad6e(0x20b)]('error',_0xbd1a20);});}else{if(_0x17b14b[_0x9c40a9(0x1e8)]('expanded'))_0x17b14b[_0x9c40a9(0x210)]('ul')['toggle'](),_0x17b14b['toggleClass'](_0x9c40a9(0x1d0));else{if(_0x17b14b[_0x9c40a9(0x210)]('ul')[_0x9c40a9(0x210)]()[_0x9c40a9(0x170)]>0x0)_0x17b14b[_0x9c40a9(0x210)]('ul')['toggle'](),_0x17b14b['toggleClass'](_0x9c40a9(0x1d0));else;}}}else{const _0x6988b2=_0x17b14b[_0x9c40a9(0x184)](_0x9c40a9(0x159)),_0x4970bf=_0x17b14b[_0x9c40a9(0x184)]('reference');if(_0x258cc9[_0x9c40a9(0x1fe)][_0x9c40a9(0x1ac)]&&!_0x258cc9[_0x9c40a9(0x1fe)][_0x9c40a9(0x1ac)](_0x4970bf))return;_0x258cc9[_0x9c40a9(0x183)][_0x9c40a9(0x184)](_0x9c40a9(0x1cf),_0x4970bf);const _0x4a57ee=((_0x237856=_0x4970bf['displayName'])===null||_0x237856===void 0x0?void 0x0:_0x237856[_0x9c40a9(0x155)])||((_0x5db63a=_0x4970bf['browseName'])===null||_0x5db63a===void 0x0?void 0x0:_0x5db63a['name'])||_0x4970bf[_0x9c40a9(0x1a1)][_0x9c40a9(0x165)](),_0x2c8499='['+_0x4a57ee+']('+_0x6988b2+')';_0x258cc9[_0x9c40a9(0x183)][_0x9c40a9(0x1af)](_0x2c8499),_0x258cc9['$input'][_0x9c40a9(0x193)](_0x9c40a9(0x1f6)),_0x258cc9[_0x9c40a9(0x14f)][_0x9c40a9(0x196)]();}}),$(document)['on']('click',function(_0xda4cbf){const _0x3d5a7d=_0x11aef0;!$(_0xda4cbf[_0x3d5a7d(0x194)])[_0x3d5a7d(0x169)](_0x258cc9['$combo'])[_0x3d5a7d(0x170)]&&_0x258cc9['$dropdown']['hide']();});}});},_0x5417b8=()=>{$['widget']('sterfive.flagEditor',{'options':{'namesToBits':{},'value':0x0},'_create'(){const _0x5f079f=_0x5292,_0x15df6c=this;_0x15df6c[_0x5f079f(0x183)]=this[_0x5f079f(0x1f5)],_0x15df6c[_0x5f079f(0x1d4)]=$(_0x5f079f(0x1ad)),_0x15df6c[_0x5f079f(0x1d4)]['addClass']('sterfive-combo-box'),this['element'][0x0]['parentElement']['replaceChild'](_0x15df6c[_0x5f079f(0x1d4)][0x0],this[_0x5f079f(0x1f5)][0x0]),_0x15df6c['$inputGroup']=$(_0x5f079f(0x1ad))[_0x5f079f(0x156)]('input-group'),_0x15df6c[_0x5f079f(0x1d4)]['append'](_0x15df6c[_0x5f079f(0x16a)]),_0x15df6c[_0x5f079f(0x16a)]['append'](_0x15df6c[_0x5f079f(0x183)]),_0x15df6c[_0x5f079f(0x14e)]=$('<button><i\x20class=\x22fa\x20fa-eye\x22></i></button>'),_0x15df6c[_0x5f079f(0x16a)][_0x5f079f(0x206)](_0x15df6c[_0x5f079f(0x14e)]),_0x15df6c[_0x5f079f(0x14e)]['on'](_0x5f079f(0x1c0),function(){const _0x141c79=_0x5f079f;_0x15df6c[_0x141c79(0x14f)]['toggle'](),_0x15df6c[_0x141c79(0x14f)]['is'](_0x141c79(0x177))&&(_0x599e8b(),_0x15df6c['$combo'][_0x141c79(0x17d)]('.custom-option')[_0x141c79(0x18f)](function(){const _0x45bb63=_0x141c79;let _0x41c1ed=$(this)[_0x45bb63(0x155)]();const _0xfe8476=_0x15df6c[_0x45bb63(0x1fe)][_0x45bb63(0x1b1)][_0x41c1ed];if(_0xfe8476===undefined)throw new Error(_0x45bb63(0x201));(_0x15df6c['options'][_0x45bb63(0x159)]&_0xfe8476)===_0xfe8476?$(this)[_0x45bb63(0x156)](_0x45bb63(0x1e6)):$(this)[_0x45bb63(0x16c)]('selected');}),_0x15df6c['updateValue']());}),_0x15df6c[_0x5f079f(0x14f)]=$(_0x5f079f(0x1eb))[_0x5f079f(0x196)]()[_0x5f079f(0x1e7)](this[_0x5f079f(0x1f5)]),$[_0x5f079f(0x18f)](this['options'][_0x5f079f(0x1b1)],function(_0x3439bf){const _0x14e079=_0x5f079f,_0x2fef9d=$(_0x14e079(0x1e5)+_0x3439bf+'\x22>'+_0x14e079(0x20f)+_0x3439bf+_0x14e079(0x195));_0x15df6c['$dropdown'][_0x14e079(0x206)](_0x2fef9d);}),_0x15df6c[_0x5f079f(0x14f)]['on'](_0x5f079f(0x1c0),_0x5f079f(0x157),function(){const _0x4f1c6b=_0x5f079f;$(this)[_0x4f1c6b(0x1cc)](_0x4f1c6b(0x1e6));const _0x20ebee=$(this)[_0x4f1c6b(0x184)](_0x4f1c6b(0x159));$(this)[_0x4f1c6b(0x1e8)](_0x4f1c6b(0x1e6))?_0x2a1abb(_0x20ebee):_0x55894a(_0x20ebee),_0x15df6c[_0x4f1c6b(0x15b)]();}),_0x15df6c['$combo']['append'](_0x15df6c[_0x5f079f(0x14f)]);const _0x599e8b=()=>{const _0x38317d=_0x5f079f,_0x26db9c=this[_0x38317d(0x1f5)][_0x38317d(0x1af)]();_0x15df6c['options'][_0x38317d(0x159)]=_0x570ba5(_0x15df6c[_0x38317d(0x1fe)]['namesToBits'],_0x26db9c);},_0x2a1abb=_0xbaa4cf=>{const _0x56b701=_0x5f079f,_0x25d569=_0x15df6c[_0x56b701(0x1fe)][_0x56b701(0x1b1)][_0xbaa4cf];if(_0x25d569===undefined)throw new Error(_0x56b701(0x201));this['options'][_0x56b701(0x159)]|=_0x25d569;},_0x55894a=_0x28ddb9=>{const _0x4f4fe1=_0x5f079f,_0x87055c=_0x15df6c[_0x4f4fe1(0x1fe)][_0x4f4fe1(0x1b1)][_0x28ddb9];if(_0x87055c===undefined)throw new Error(_0x4f4fe1(0x201));this[_0x4f4fe1(0x1fe)][_0x4f4fe1(0x159)]&=~_0x87055c,this[_0x4f4fe1(0x1f5)][_0x4f4fe1(0x1af)](_0x582c45(_0x15df6c[_0x4f4fe1(0x1fe)][_0x4f4fe1(0x1b1)],this[_0x4f4fe1(0x1fe)]['value']));};_0x599e8b();},'updateValue'(){const _0xfbf5bc=_0x5292,_0x5e94e5=this;this[_0xfbf5bc(0x1f5)][_0xfbf5bc(0x1af)](_0x582c45(_0x5e94e5['options']['namesToBits'],this[_0xfbf5bc(0x1fe)][_0xfbf5bc(0x159)]));},'_destroy'(){const _0x49d98b=_0x5292,_0x41b7ab=this;_0x41b7ab[_0x49d98b(0x14f)][_0x49d98b(0x1a4)]();}});},_0x1fcbf9=()=>{const _0x846fd=_0x1ed4d0,_0x8be3ea=$(_0x846fd(0x18c)),_0x14e957=_0x8be3ea['val'](),_0x4da6f0=RED[_0x846fd(0x1c8)][_0x846fd(0x174)](_0x14e957);if(!_0x4da6f0)return undefined;const {endpoint:_0x565494,securityMode:_0x5024cd,securityPolicy:_0x4b8682,userIdentityType:_0x59e647,credentials:_0x576041}=_0x4da6f0,_0x5b37d0={'endpoint':_0x565494,'securityMode':_0x5024cd,'securityPolicy':_0x4b8682,'userIdentityType':_0x59e647,'credentials':_0x576041};return console[_0x846fd(0x20b)]('xxx',_0x5b37d0),_0x5b37d0;},_0x2eb431=()=>{return{'endpointNode':_0x3a9727};},_0x3a9727=()=>{const _0x589d71=_0x1ed4d0,_0x3f29cb=$('#node-input-endpoint'),_0x4fb71e=_0x3f29cb[_0x589d71(0x1af)](),_0x502bb7=_0x1fcbf9();if(!_0x502bb7)return undefined;return{'id':_0x4fb71e};};RED['nodes'][_0x1ed4d0(0x1a6)](_0x1ed4d0(0x176),{'category':'opcua','color':_0x1ed4d0(0x1ef),'align':_0x1ed4d0(0x1fc),'icon':_0x1ed4d0(0x1df),'paletteLabel':_0x1ed4d0(0x171),'defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':_0x1ed4d0(0x180)},'nodeId':{'value':'','required':![]},'referenceTypeId':{'value':_0x1ed4d0(0x1c9),'required':![]},'includeSubtypes':{'value':![],'required':!![]},'browseDirection':{'value':_0x1ed4d0(0x187),'required':!![]},'nodeClassMask':{'value':_0x1ed4d0(0x1a0),'required':![]},'resultMask':{'value':'ReferenceType\x20|\x20BrowseName\x20|\x20TypeDefinition\x20|\x20DisplayName\x20|\x20NodeClass\x20|\x20IsForward','required':![]}},'outputs':0x1,'label'(){return this['name']||'OPCUA\x20Browse';},'labelStyle'(){const _0x5d3961=_0x1ed4d0;return this[_0x5d3961(0x15e)]?_0x5d3961(0x1de):'';},'oneditprepare'(){const _0xdc664a=_0x1ed4d0,_0x12cece=this;_0x4ec85f(),_0x5417b8(),_0x12cece[_0xdc664a(0x1b6)]=0x1;const _0x3e9d49=$(_0xdc664a(0x200));_0x3e9d49[_0xdc664a(0x1f9)]({'namesToBits':{'Object':0x1,'Variable':0x2,'Method':0x4,'ObjectType':0x8,'VariableType':0x10,'ReferenceType':0x20,'DataType':0x40,'View':0x80},'value':0x0});const _0x4a45ea=$(_0xdc664a(0x18b));_0x4a45ea[_0xdc664a(0x1f9)]({'namesToBits':{'ReferenceType':0x1,'IsForward':0x2,'NodeClass':0x4,'BrowseName':0x8,'DisplayName':0x10,'TypeDefinition':0x20},'value':0x3f});const _0x30fd53=$(_0xdc664a(0x20a));_0x30fd53['nodeBrowser'](Object[_0xdc664a(0x17f)](Object['assign']({},_0x2eb431()),{'isSelectable'(_0xd72724){const _0x56ff60=_0xdc664a;return _0xd72724[_0x56ff60(0x1e3)]===_0x56ff60(0x1b7)||_0xd72724['nodeClass']===_0x56ff60(0x1b3);}}));const _0x1d1462={'nodeId':_0xdc664a(0x1e0),'referenceTypeId':'','browseName':{'namespaceIndex':0x0,'name':_0xdc664a(0x153)},'displayName':{'text':_0xdc664a(0x153)},'nodeClass':'ReferenceType','typeDefinition':_0xdc664a(0x1e0)},_0xed544f=$('#node-input-referenceTypeId');_0xed544f[_0xdc664a(0x1ec)](Object[_0xdc664a(0x17f)](Object[_0xdc664a(0x17f)]({},_0x2eb431()),{'parentNode':()=>_0x1d1462,'isSelectable'(_0x27fe01){const _0x477a3c=_0xdc664a;return _0x27fe01[_0x477a3c(0x1e3)]===_0x477a3c(0x20e);},'isTypeRef':!![]}));},'oneditsave'(){}});}()));
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHg1MGNjZmMiLCJfMHg1NDJjNzkiLCJfMHgyOTM1YzEiLCJfMHgxYzNjYWIiLCJfMHgyNWYzNjIiLCJfMHgyYWYyN2UiLCJfMHg1YzgzYmYiLCJfMHgyZmE1NzEiLCJQcm9taXNlIiwiXzB4MmQwY2VmIiwiXzB4ZGI2M2MzIiwiXzB4NTIwMzY1IiwiXzB4MjVhMjk0IiwiXzB4MTI1OTVkIiwiXzB4MTJhNmNiIiwiXzB4NDQ1ZDZkIiwiXzB4MTg1Nzk5IiwiXzB4NGM2MDlhIiwiXzB4MjdlNWVmIiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4MmE5MGI1IiwiXzB4NTMwNTNiIiwiXzB4NTg0NjJhIiwiXzB4MzY5ODU3IiwiRXJyb3IiLCJfMHgyNDBlNTgiLCJfMHg1NTBjNmEiLCJfMHg0OTQ0YTAiLCJfMHg1OTZhMTMiLCJfMHgxYTk0MDAiLCJfMHg0MTU0MWYiLCJfMHgzOTYyYWUiLCJfMHgzMzNkYTEiLCJfMHgyNDkwYjYiLCJfMHhiOTUyN2IiLCJfMHgxZTIxMzEiLCJfMHgzZGMxN2YiLCJfMHg0NDkzZTkiLCJfMHg1NzBiYTUiLCJfMHgzZDNkZjAiLCJfMHgzMWYwMjQiLCJfMHhjNWQ2NWYiLCJwYXJzZUludCIsImlzTmFOIiwiXzB4NTI3OWQ0IiwiXzB4NDFiOTM5IiwiXzB4Yjg5MGU4IiwiXzB4MTI4YzY2IiwiXzB4NTgyYzQ1IiwiXzB4NDczOWQ3IiwiXzB4MTA4YjlkIiwiXzB4MzE4ZjFjIiwiXzB4MzczN2NkIiwiXzB4MmEwOWQwIiwiT2JqZWN0IiwiXzB4MzgxNzQ0IiwiXzB4ZTk2YTAxIiwiXzB4NDU0ZTUzIiwiXzB4YzhlYmYyIiwiXzB4M2I4ZDZjIiwiXzB4MzUxOTIwIiwiXzB4MmMzOTBlIiwiZW5kcG9pbnROb2RlIiwiXzB4NTEwMGViIiwiZW5kcG9pbnQiLCJfMHgxMWNjODAiLCJiYXNlVXJsIiwiXzB4ZTMxNzRmIiwiXzB4MzQzOGMwIiwiXzB4MzkzM2MxIiwiXzB4MTZjYjNmIiwiXzB4NTg4MTFmIiwiXzB4NTc5OWU3IiwiXzB4MTIzNGMxIiwiZmV0Y2giLCJKU09OIiwiY29uc29sZSIsIl8weDUyMjMwNiIsIl8weDU2MzgzNCIsIl8weDVkZTA5NSIsIl8weDRjN2Y0NyIsIl8weDE4ZWFmMSIsIl8weDIyZmU0YyIsIl8weDUwZmIxYyIsIl8weDM1MjFiMSIsIl8weDVhODFhNiIsIl8weDJmYWJkNiIsIl8weDk2NTZhZiIsIl8weDRjYjE1NiIsIl8weDM0Y2NmMSIsIl8weDQwMWNjZSIsIl8weDQ2OTMyNiIsIl8weDM5NzdlYSIsInNldFRpbWVvdXQiLCJfMHg1OTJmODIiLCJfMHg1MzFjMDAiLCJfMHgxMzEyODUiLCJfMHgzYTU4OWUiLCJfMHg0NDRjMTIiLCJfMHg1NDVhOWYiLCJfMHhmMGM3MzciLCJfMHg1NDE3NmMiLCJfMHg0NmYyZmMiLCJfMHg0NmMxZmMiLCJfMHgyN2FhNWEiLCJfMHgxY2U4ZTkiLCJfMHgxZDY1NDkiLCJfMHgyN2U4MzAiLCJfMHg1OGQxNWEiLCJfMHg4NTExM2YiLCJfMHg1Yzk3NjAiLCJfMHg0MzA0ODMiLCIkIiwiXzB4NDExNWI4IiwiXzB4NTRkNDBmIiwiaWNvbiIsIl8weDU1MThhMSIsImNvbG9yIiwiXzB4MTFmOTFmIiwiXzB4NDFhZjAzIiwiXzB4NGVjODVmIiwidW5kZWZpbmVkIiwiXzB4NTYyYWY4IiwiXzB4Mjc2NWQ3IiwiXzB4M2NhMDg2IiwiXzB4NDg4YWJiIiwiXzB4MmQxM2ZhIiwiXzB4M2MxNzEwIiwiXzB4MTI2ZjdmIiwiXzB4MjU4Y2M5IiwiXzB4M2M1ZDcyIiwiXzB4MTY4NGY4IiwiXzB4NGZlZDRlIiwiXzB4YzI4YWI0IiwicmVmZXJlbmNlcyIsIl8weDQyZjViNSIsIl8weDIwMWFkMCIsIl8weDQxMjU3YiIsIl8weDEyY2U0YyIsIl8weDFhZDM1ZCIsIl8weDIxZGIyMCIsIl8weDRjMjQ5OCIsIl8weDIzNzg1NiIsIl8weDVkYjYzYSIsIl8weDE3YjE0YiIsIl8weDNiNjU2MyIsIl8weDI4YTEzMiIsIl8weDFhM2YwYSIsIl8weDI1ZTMwOCIsIl8weDE0N2I3YSIsIl8weDVhYzE4MSIsIl8weGJkMWEyMCIsIl8weDY5ODhiMiIsIl8weDQ5NzBiZiIsIl8weDRhNTdlZSIsIl8weDJjODQ5OSIsImRvY3VtZW50IiwiXzB4ZGE0Y2JmIiwiXzB4NTQxN2I4IiwiXzB4MTVkZjZjIiwiXzB4NTk5ZThiIiwiXzB4NDFjMWVkIiwiXzB4ZmU4NDc2IiwiXzB4MzQzOWJmIiwiXzB4MmZlZjlkIiwiXzB4MjBlYmVlIiwiXzB4MmExYWJiIiwiXzB4NTU4OTRhIiwiXzB4MjZkYjljIiwiXzB4YmFhNGNmIiwiXzB4MjVkNTY5IiwiXzB4MjhkZGI5IiwiXzB4ODcwNTVjIiwiXzB4NWU5NGU1IiwiXzB4NDFiN2FiIiwiXzB4MWZjYmY5IiwiXzB4OGJlM2VhIiwiXzB4MTRlOTU3IiwiXzB4NGRhNmYwIiwiUkVEIiwiXzB4NTY1NDk0Iiwic2VjdXJpdHlNb2RlIiwiXzB4NTAyNGNkIiwic2VjdXJpdHlQb2xpY3kiLCJfMHg0Yjg2ODIiLCJ1c2VySWRlbnRpdHlUeXBlIiwiXzB4NTllNjQ3IiwiY3JlZGVudGlhbHMiLCJfMHg1NzYwNDEiLCJfMHg1YjM3ZDAiLCJfMHgyZWI0MzEiLCJfMHgzYTk3MjciLCJfMHgzZjI5Y2IiLCJfMHg0ZmI3MWUiLCJfMHg1MDJiYjciLCJfMHgxMmNlY2UiLCJfMHgzZTlkNDkiLCJfMHg0YTQ1ZWEiLCJfMHgzMGZkNTMiLCJfMHhkNzI3MjQiLCJfMHgxZDE0NjIiLCJfMHhlZDU0NGYiLCJfMHgyN2ZlMDEiXSwibWFwcGluZ3MiOiJ5eEhBQUEsQ0FBQyxVLENBQ0csYSx3QkFtQkEsU0FBU0EsU0FBVCxDQUFtQkMsU0FBbkIsQ0FBNEJDLFNBQTVCLENBQXdDQyxTQUF4QyxDQUEyQ0MsU0FBM0MsQyxDQUNJLFNBQVNDLFNBQVQsQ0FBZUMsU0FBZixDLFFBQStCQSxTQUFBLFlBQWlCSCxTQUFqQixDQUFxQkcsU0FBckIsQ0FBNkIsSUFBSUgsU0FBSixDQUFNLFNBQVVJLFNBQVYsQyxDQUFxQkEsU0FBQSxDQUFRRCxTQUFSLEMsRUFBM0IsQyxT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LEMsaUJBRXZCLEMsRUFGdUIsQyxZQUd2QixDQUFZLEMsZ0JBQUUsQyxHQUFGLEMsTUFBcUIsQyxnQkFBckIsQ0FIVyxDLGFBSXZCLENBQWEsQyxNQUFFLEMsZ0JBQUYsQ0FKVSxDLFdBS3ZCLEMsZUFMdUIsQyxnQkFNdkIsQyxnQkFOdUIsQ0FBM0IsQ0FRTUMsU0FBQSxDQUFtQnpGLENBQUEsQyw2QkFBQSxDQVJ6QixDQVNBeUYsU0FBQSxDLGdCQUFBLEVBQTZCbkosTUFBQSxDLGdCQUFBLEVBQWNBLE1BQUEsQyxnQkFBQSxFQUFjLEVBQWQsQ0FBa0J3SSxTQUFBLEVBQWxCLENBQWQsQ0FBaUUsQyxZQUFFLENBQVksSUFBTVUsU0FBcEIsQyxjQUMxRixDQUFhRSxTQUFiLEMsa0NBQ1dBLFNBQUEsQyxnQkFBQSxJLGtCQUYrRSxDLFdBR3ZGLEMsSUFIdUYsQ0FBakUsQ0FBN0IsQyxFQXZFdUMsQyxZQTRFM0MsRSxFQTVFMkMsQ0FBL0MsQyxFQTVuQkosRyIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiAoKSB7XG4gICAgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gICAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uXHJcblxyXG4gICAgUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XHJcbiAgICBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQuXHJcblxyXG4gICAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSFxyXG4gICAgUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXHJcbiAgICBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXHJcbiAgICBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST01cclxuICAgIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXHJcbiAgICBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXHJcbiAgICBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLlxyXG4gICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuICAgIC8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlLCBTdXBwcmVzc2VkRXJyb3IsIFN5bWJvbCAqL1xyXG5cclxuXHJcbiAgICBmdW5jdGlvbiBfX2F3YWl0ZXIodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XHJcbiAgICAgICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XHJcbiAgICAgICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XHJcbiAgICAgICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0eXBlb2YgU3VwcHJlc3NlZEVycm9yID09PSBcImZ1bmN0aW9uXCIgPyBTdXBwcmVzc2VkRXJyb3IgOiBmdW5jdGlvbiAoZXJyb3IsIHN1cHByZXNzZWQsIG1lc3NhZ2UpIHtcclxuICAgICAgICB2YXIgZSA9IG5ldyBFcnJvcihtZXNzYWdlKTtcclxuICAgICAgICByZXR1cm4gZS5uYW1lID0gXCJTdXBwcmVzc2VkRXJyb3JcIiwgZS5lcnJvciA9IGVycm9yLCBlLnN1cHByZXNzZWQgPSBzdXBwcmVzc2VkLCBlO1xyXG4gICAgfTtcblxuICAgIGNvbnN0IE9yZ2FuaXplc1JlZk5vZGVJZCA9IFwibnM9MDtpPTM1XCI7XG4gICAgY29uc3QgRm9sZGVyVHlwZSA9IFwibnM9MDtpPTYxXCI7XG4gICAgY29uc3QgSGFzQ29tcG9uZW50UmVmTm9kZUlkID0gXCJucz0wO2k9NDdcIjtcbiAgICBjb25zdCBIYXNQcm9wZXJ0eVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ2XCI7XG4gICAgY29uc3QgSGFzQ2hpbGRSZWZOb2RlSWQgPSBcIm5zPTA7aT0zNFwiO1xuICAgIGNvbnN0IEhhc1N1YnR5cGVSZWZOb2RlSWQgPSBcIm5zPTA7aT00NVwiO1xuICAgIGNvbnN0IEhhc1R5cGVEZWZpbml0aW9uUmVmTm9kZUlkID0gXCJucz0wO2k9NDBcIjtcblxuICAgIHZhciBCcm93c2VEaXJlY3Rpb247XG4gICAgKGZ1bmN0aW9uIChCcm93c2VEaXJlY3Rpb24pIHtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkZvcndhcmRcIl0gPSAwXSA9IFwiRm9yd2FyZFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52ZXJzZVwiXSA9IDFdID0gXCJJbnZlcnNlXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJCb3RoXCJdID0gMl0gPSBcIkJvdGhcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkludmFsaWRcIl0gPSAzXSA9IFwiSW52YWxpZFwiO1xuICAgIH0pKEJyb3dzZURpcmVjdGlvbiB8fCAoQnJvd3NlRGlyZWN0aW9uID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzO1xuICAgIChmdW5jdGlvbiAoTm9kZUNsYXNzKSB7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJVbnNwZWNpZmllZFwiXSA9IDBdID0gXCJVbnNwZWNpZmllZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmFyaWFibGVcIl0gPSAyXSA9IFwiVmFyaWFibGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk1ldGhvZFwiXSA9IDRdID0gXCJNZXRob2RcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmFyaWFibGVUeXBlXCJdID0gMTZdID0gXCJWYXJpYWJsZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAzMl0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmlld1wiXSA9IDEyOF0gPSBcIlZpZXdcIjtcbiAgICB9KShOb2RlQ2xhc3MgfHwgKE5vZGVDbGFzcyA9IHt9KSk7XG4gICAgdmFyIE5vZGVDbGFzc01hc2s7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3NNYXNrKSB7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFwiXSA9IDFdID0gXCJPYmplY3RcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmFyaWFibGVcIl0gPSAyXSA9IFwiVmFyaWFibGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJPYmplY3RUeXBlXCJdID0gOF0gPSBcIk9iamVjdFR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmFyaWFibGVUeXBlXCJdID0gMTZdID0gXCJWYXJpYWJsZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJEYXRhVHlwZVwiXSA9IDY0XSA9IFwiRGF0YVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmlld1wiXSA9IDEyOF0gPSBcIlZpZXdcIjtcbiAgICB9KShOb2RlQ2xhc3NNYXNrIHx8IChOb2RlQ2xhc3NNYXNrID0ge30pKTtcbiAgICBmdW5jdGlvbiBjb2VyY2VGbGFnTWFza1RvTnVtYmVyKHR5cGUsIHN0cikge1xuICAgICAgICBpZiAodHlwZW9mIHN0ciA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgcmV0dXJuIHN0cjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzdHJBc051bSA9IHBhcnNlSW50KHN0ciwgMTApO1xuICAgICAgICBpZiAoIWlzTmFOKHN0ckFzTnVtKSkge1xuICAgICAgICAgICAgcmV0dXJuIHN0ckFzTnVtO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGZsYWdzID0gc3RyLnNwbGl0KC9cXHx8O3wsLykubWFwKChhKSA9PiBhLnRyaW0oKSk7XG4gICAgICAgIGxldCByZXN1bHQgPSAwO1xuICAgICAgICBmb3IgKGNvbnN0IGZsYWcgb2YgZmxhZ3MpIHtcbiAgICAgICAgICAgIHJlc3VsdCB8PSB0eXBlW2ZsYWddO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvZXJjZUZsYWdNYXNrVG9TdHJpbmcodHlwZSwgdmFsdWUpIHtcbiAgICAgICAgdmFsdWUgPSBjb2VyY2VGbGFnTWFza1RvTnVtYmVyKHR5cGUsIHZhbHVlKTtcbiAgICAgICAgY29uc3QgciA9IFtdO1xuICAgICAgICBpZiAoIXR5cGUpXG4gICAgICAgICAgICByZXR1cm4gci5qb2luKFwiIHwgXCIpO1xuICAgICAgICBmb3IgKGNvbnN0IFtrZXksIGJpdE1hc2tdIG9mIE9iamVjdC5lbnRyaWVzKHR5cGUpKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICAgICAgaWYgKCh2YWx1ZSAmIGJpdE1hc2spID09PSBiaXRNYXNrKSB7XG4gICAgICAgICAgICAgICAgICAgIHIucHVzaChrZXkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gci5qb2luKFwiIHwgXCIpO1xuICAgIH1cbiAgICB2YXIgUmVzdWx0TWFzaztcbiAgICAoZnVuY3Rpb24gKFJlc3VsdE1hc2spIHtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDFdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIklzRm9yd2FyZFwiXSA9IDJdID0gXCJJc0ZvcndhcmRcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiTm9kZUNsYXNzXCJdID0gNF0gPSBcIk5vZGVDbGFzc1wiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJCcm93c2VOYW1lXCJdID0gOF0gPSBcIkJyb3dzZU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiRGlzcGxheU5hbWVcIl0gPSAxNl0gPSBcIkRpc3BsYXlOYW1lXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIlR5cGVEZWZpbml0aW9uXCJdID0gMzJdID0gXCJUeXBlRGVmaW5pdGlvblwiO1xuICAgIH0pKFJlc3VsdE1hc2sgfHwgKFJlc3VsdE1hc2sgPSB7fSkpO1xuICAgIC8vICBjb25zdCBxID0gUmVmZXJlbmNlVHlwZUlkcy5Pcmdhbml6ZXM7XG4gICAgZnVuY3Rpb24gcmVzb2x2ZU5vZGVJZChub2RlSWRMaWtlKSB7XG4gICAgICAgIHN3aXRjaCAobm9kZUlkTGlrZSkge1xuICAgICAgICAgICAgY2FzZSBcIk9yZ2FuaXplc1wiOlxuICAgICAgICAgICAgICAgIHJldHVybiBPcmdhbml6ZXNSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzUHJvcGVydHlcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzUHJvcGVydHlSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzQ29tcG9uZW50XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NvbXBvbmVudFJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDaGlsZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNDaGlsZFJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNTdWJ0eXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1N1YnR5cGVSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzVHlwZURlZmluaXRpb25cIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBnZXRJY29uID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICBzd2l0Y2ggKHJlZmVyZW5jZS5ub2RlQ2xhc3MpIHtcbiAgICAgICAgICAgIGNhc2UgXCJPYmplY3RcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gT3JnYW5pemVzUmVmTm9kZUlkKSA7XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS50eXBlRGVmaW5pdGlvbiA9PT0gRm9sZGVyVHlwZSB8fCByZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBcImk9NjFcIikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWZvbGRlclwiLCBjb2xvcjogXCJyZ2JhKDYxLCA2MCwgNCwgMC41MjUpXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6IFwiU2VhR3JlZW5cIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlXCI6XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IEhhc0NvbXBvbmVudFJlZk5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIlN0ZWVsQmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IEhhc1Byb3BlcnR5UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiRG9kZ2VyQmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIkNhZGV0Qmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBcIk1ldGhvZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtY29nXCIsIGNvbG9yOiBcIlNhbmR5QnJvd25cIiB9O1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJWYXJpYWJsZVR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXNsaWRlcnNcIiwgY29sb3I6IFwiRGFya09yYW5nZVwiIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1xdWVzdGlvblwiLCBjb2xvcjogXCJncmV5XCIgfTtcbiAgICB9O1xuXG4gICAgY29uc3QgYnJvd3NlID0gKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCBub2RlSWQsIHRlbXBsYXRlKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWVuZHBvaW50MmA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L2Jyb3dzZWA7XG4gICAgICAgIGNvbnN0IGJyb3dzZURlc2NyaXB0aW9uID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCB0ZW1wbGF0ZSksIHsgbm9kZUlkLCByZXN1bHRNYXNrOiA2MyB9KTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgYnJvd3NlRGVzY3JpcHRpb24sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoaW5nIGZhaWxlZCB3aXRoIGVycm9yXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICAgICAgcmV0dXJuIHsgcmVmZXJlbmNlczogW10gfTtcbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoZWQgOiBcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0geWllbGQgZGF0YS5qc29uKCk7XG4gICAgICAgIGNvbnN0IHJlZmVyZW5jZXMgPSByZXNwb25zZS5icm93c2VSZXN1bHQucmVmZXJlbmNlcyB8fCBbXTtcbiAgICAgICAgcmV0dXJuIHsgcmVmZXJlbmNlcyB9O1xuICAgIH0pO1xuXG4gICAgY29uc3QgdGVtcGxhdGUxID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJIYXNDaGlsZFwiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuVmFyaWFibGUgfCBOb2RlQ2xhc3MuT2JqZWN0IHwgTm9kZUNsYXNzLk1ldGhvZCxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5PYmplY3RUeXBlIHxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5EYXRhVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5WaWV3LFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGNvbnN0IHRlbXBsYXRlMiA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiT3JnYW5pemVzXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3QgaW50ZXJuYWxWZXJpZnkgPSAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sICRpbnB1dEVsZW1lbnQsICRpbmZvKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWVuZHBvaW50MmA7XG4gICAgICAgIGNvbnN0IG5vZGVJZCA9ICRpbnB1dEVsZW1lbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaChgJHtyb290fS9jaGVja05vZGVJZGAsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIG5vZGVJZCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3Qgc2V0Tm90aWZpY2F0aW9uID0gKHRleHQsIGNsYXNzTmFtZSkgPT4ge1xuICAgICAgICAgICAgJGluZm8udGV4dCh0ZXh0KS5hZGRDbGFzcyhcInN0ZXJmaXZlLWluZm9cIikuYWRkQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICRpbmZvLnNob3coKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICRpbmZvLnJlbW92ZUNsYXNzKGNsYXNzTmFtZSk7XG4gICAgICAgICAgICAgICAgJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgfSwgMzAwMCk7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGpzb24gPSAoeWllbGQgZGF0YS5qc29uKCkpO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgLy8gZG8gc29tZXRoaW5nO1xuICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKFwiISFmYWlsdXJlISFcIiArIG5vZGVJZCwgXCJmYWlsdXJlXCIpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKGpzb24uc3RhdHVzQ29kZS5tYXRjaCgvR29vZC8pKSB7XG4gICAgICAgICAgICAgICAgLy8gZG8gc29tZXRoaW5nXG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC52YWwoanNvbi5ub2RlQWRkcmVzc1N0cmluZyk7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihcIkdvb2RcIiwgXCJva1wiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudmFsKGAke25vZGVJZH1gKTtcbiAgICAgICAgICAgICAgICBzZXROb3RpZmljYXRpb24oYCR7anNvbi5zdGF0dXNDb2RlfSAke2RhdGEuc3RhdHVzVGV4dH1gLCBcImZhaWx1cmVcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBmdW5jdGlvbiBmZXRjaENoaWxkcmVuKCRub2RlLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlSWQgPSAkbm9kZS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQxID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGUxKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDIgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTIpO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWZlcmVuY2VzOiBbLi4uYnJvd3NlUmVzdWx0MS5yZWZlcmVuY2VzLCAuLi5icm93c2VSZXN1bHQyLnJlZmVyZW5jZXNdLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IHRlbXBsYXRlU1QgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIkhhc1N1YnR5cGVcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfCBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8IE5vZGVDbGFzcy5EYXRhVHlwZSB8IE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgZnVuY3Rpb24gZmV0Y2hTdWJ0eXBlcygkbm9kZSwgZGF0YSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZUlkID0gJG5vZGUuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MSA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlU1QpO1xuICAgICAgICAgICAgcmV0dXJuIGJyb3dzZVJlc3VsdDE7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBtYWtlRWxlbWVudCA9IChyZWZlcmVuY2UpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgaWYgKCFyZWZlcmVuY2UpIHtcbiAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpPjxpIGNsYXNzPVwiZmEgZmEtZXJyb3JcIiBzdHlsZT1cImNvbG9yOnJlZDtcIj48L2k+bm8gcmVmZXJlbmNlICE8dWw+PC91bD48L2xpPmApO1xuICAgICAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG4gPSByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IHQgPSAoKF9hID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGV4dCkgfHwgKChfYiA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB7IGljb24sIGNvbG9yIH0gPSBnZXRJY29uKHJlZmVyZW5jZSk7XG4gICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpPjxpIGNsYXNzPVwiZmEgJHtpY29ufVwiIHN0eWxlPVwiY29sb3I6JHtjb2xvcn07XCI+PC9pPiAke3R9PHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgJGVsZW1lbnQuYWRkQ2xhc3MoXCJleHBhbmRhYmxlXCIpO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwidmFsdWVcIiwgbik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgIH07XG4gICAgY29uc3QgZGVjbGFyZU5vZGVCcm93c2VyV2lkZ2V0ID0gKCkgPT4ge1xuICAgICAgICAvKipcbiAgICAgICAgICogWyBUZW1wZXJhdHVyZSAgXVxuICAgICAgICAgKiAgICggdG9vbHRpcCA6ICgvT2JqZWN0cy9NeVNlbnNvcikgKG5zPTE7cz1UZW1wZXJhdHVyZSkpXG4gICAgICAgICAqIFsgKyBbRm9sZGVyXSBPYmplY3RzXVxuICAgICAgICAgKiBbICAgICBbT2JqZWN0XSBNeVNlbnNvcl1cbiAgICAgICAgICogWyAgICAgKCApIFtWYXJpYWJsZV0gVGVtcGVyYXR1cmVdXG4gICAgICAgICAqL1xuICAgICAgICAkLndpZGdldChcInN0ZXJmaXZlLm5vZGVCcm93c2VyXCIsIHtcbiAgICAgICAgICAgIC8qIGRlZmF1bHQgb3B0aW9ucyAqL1xuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogKCkgPT4gKHsgZW5kcG9pbnQ6IFwib3BjLnRjcDovL29wY3VhZGVtby5zdGVyZml2ZS5jb206MjY1NDNcIiB9KSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludDogKCkgPT4gdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIHBhcmVudE5vZGU6ICgpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIGJyb3dzZU5hbWU6IHsgbmFtZXNwYWNlSW5kZXg6IDAsIG5hbWU6IFwiT2JqZWN0c1wiIH0sXG4gICAgICAgICAgICAgICAgICAgIG5vZGVDbGFzczogXCJPYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgbm9kZUlkOiBcIm5zPTA7aT04NVwiLFxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogeyB0ZXh0OiBcIk9iamVjdHNcIiB9LFxuICAgICAgICAgICAgICAgICAgICB0eXBlRGVmaW5pdGlvbjogRm9sZGVyVHlwZSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBmaWx0ZXI6ICgpID0+IHRydWUsXG4gICAgICAgICAgICAgICAgYmFzZVVybDogXCJcIixcbiAgICAgICAgICAgICAgICBpc1R5cGVSZWY6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc29sdmVQYXJlbnROb2RlKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhID0gdHlwZW9mIHRoYXQub3B0aW9ucy5wYXJlbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZSgpIDogdGhhdC5vcHRpb25zLnBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhIGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHlpZWxkIGE7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGE7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzZXQoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzb2x2ZVBhcmVudE5vZGUoKS50aGVuKChwYXJlbnROb2RlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQocGFyZW50Tm9kZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC5jdXJyZW50UGFyZW50ID0gcGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB2ZXJpZnkoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgICAgICAgICAgIGJhc2VVcmw6IHRoYXQub3B0aW9ucy5iYXNlVXJsLFxuICAgICAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgICAgICBlbmRwb2ludDogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50KCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBpbnRlcm5hbFZlcmlmeShkYXRhLCB0aGF0LiRpbnB1dCwgdGhhdC4kaW5mbyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2NyZWF0ZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBfZmV0Y2hEYXRhRm9yTm9kZSgkbm9kZSwgZmV0Y2hGdW5jLCBkYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJG5vZGUuaGFzQ2xhc3MoXCJmZXRjaGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhbHJlYWR5IGZldGNoZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRub2RlLmhhc0NsYXNzKFwibG9hZGluZ1wiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYWxyZWFkeSBsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwibG9hZGluZ1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmFwcGVuZCgnPGRpdiBjbGFzcz1cInNwaW5uZXJcIj48L2Rpdj4nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgcmVmZXJlbmNlcyB9ID0geWllbGQgZmV0Y2hGdW5jKCRub2RlLCBkYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHJlZmVyZW5jZSBvZiByZWZlcmVuY2VzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuZmlsdGVyICYmICF0aGF0Lm9wdGlvbnMuZmlsdGVyKHJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQocmVmZXJlbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5hcHBlbmQoJGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5hZGRDbGFzcyhcImZldGNoZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5hcHBlbmQoYDxsaT5lcnJvciAke2Vyci5tZXNzYWdlfTwvbGk+YCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJcIiwgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmZpbmQoXCIuc3Bpbm5lclwiKS5yZW1vdmUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLnJlbW92ZUNsYXNzKFwibG9hZGluZ1wiKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0ID0gdGhpcy5lbGVtZW50O1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvID0gJChcIjxkaXYvPlwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hZGRDbGFzcyhcInN0ZXJmaXZlLWNvbWJvLWJveFwiKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQucmVwbGFjZVdpdGgodGhhdC4kY29tYm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAgPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwiaW5wdXQtZ3JvdXBcIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGlucHV0R3JvdXApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJGlucHV0KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuID0gJChgPGJ1dHRvbj48aSBjbGFzcz1cImZhIGZhLXNpdGVtYXBcIj48L2k+PC9idXR0b24+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kdG9nZ2xlVHJlZUJ0bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0bi5vbihcImNsaWNrXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRkcm9wZG93bi5pcyhcIjp2aXNpYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB0cmVlIHdpZGdldCBpcyBnb2luZyB0byBiZWNvbWUgdmlzaWJsZVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5yZXNvbHZlUGFyZW50Tm9kZSgpLnRoZW4oKHBhcmVudE5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmVudE5vZGUgIT09IHRoYXQuY3VycmVudFBhcmVudCB8fCAoKF9hID0gdGhhdC5jdXJyZW50UGFyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Eubm9kZUlkKSAhPT0gcGFyZW50Tm9kZS5ub2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5yZXNldCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5mby5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24udG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdmVyaWZ5QnRuID0gJChgPGJ1dHRvbj48aSBjbGFzcz1cImZhIGZhLWZsYXNrXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJHZlcmlmeUJ0bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdmVyaWZ5QnRuLm9uKFwiY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnZlcmlmeSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmICghdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmF0dHIoXCJwbGFjZWhvbGRlclwiLCBcImVudGVyIGEgbm9kZUlkIG9yIGEgYnJvd3NlUGF0aCBcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoYXQuJGluZm8gPSAkKGA8ZGl2IGNsYXNzPVwiaW5mby10ZXh0XCI+PC9kaXY+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mby5oaWRlKCk7XG4gICAgICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgICAgICh7XG4gICAgICAgICAgICAgICAgICAgIGJhc2VVcmw6IHRoYXQub3B0aW9ucy5iYXNlVXJsLFxuICAgICAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgICAgICBlbmRwb2ludDogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50KCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24gPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwic3RlcmZpdmUtZHJvcGRvd25cIikuaGlkZSgpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbmZvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kZHJvcGRvd24pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUgPSAkKGA8dWwgY2xhc3M9XCJzdGVyZml2ZS10cmVlXCI+PC91bD5gKS5hcHBlbmRUbyh0aGF0LiRkcm9wZG93bik7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUub24oXCJjbGlja1wiLCBcImxpXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0ICRsaSA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZVdpZHRoID0gMjA7IC8vIFNldCB3aWR0aCBvZiB0aGUgOjpiZWZvcmUgY29udGVudFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVIZWlnaHQgPSAyMDsgLy8gU2V0IGhlaWdodCBvZiB0aGUgOjpiZWZvcmUgY29udGVudFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50UG9zID0gJCh0aGlzKS5vZmZzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZSA9IGV2ZW50O1xuICAgICAgICAgICAgICAgICAgICBpZiAoZS5wYWdlWCA+PSBlbGVtZW50UG9zLmxlZnQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVggPD0gZWxlbWVudFBvcy5sZWZ0ICsgYmVmb3JlV2lkdGggJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPj0gZWxlbWVudFBvcy50b3AgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPD0gZWxlbWVudFBvcy50b3AgKyBiZWZvcmVIZWlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRhYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImZldGNoZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnQ6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludCgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZiA9ICF0aGF0Lm9wdGlvbnMuaXNUeXBlUmVmID8gZmV0Y2hDaGlsZHJlbiA6IGZldGNoU3VidHlwZXM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX2ZldGNoRGF0YUZvck5vZGUoJGxpLCBmLCBkYXRhKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiIEZldGNoaW5nIGRvbmVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWFyayBhcyBleHBhbmRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVycm9yXCIsIGVycik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRvZ2dsZSBpdHMgZXhwYW5kZWQvY29sbGFwc2VkIHN0YXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5jaGlsZHJlbihcInVsXCIpLmNoaWxkcmVuKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN3YXAgZXhwYW5kYWJsZSBhbmQgZXhwYW5kZWQgY2xhc3Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gJGxpLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlZmVyZW5jZSA9ICRsaS5kYXRhKFwicmVmZXJlbmNlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5pc1NlbGVjdGFibGUgJiYgIXRoYXQub3B0aW9ucy5pc1NlbGVjdGFibGUocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRpc3BsYXlOYW1lID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0ID0gYFske2Rpc3BsYXlOYW1lfV0oJHt2YWx1ZX0pYDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnZhbChpbnB1dCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgJChkb2N1bWVudCkub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gY2xpY2tpbmcgb3V0c2lkZSB0aGUgcGFnZSB3aWxsIGhpZGUgdGhlIGRyb3Bkb3duXG4gICAgICAgICAgICAgICAgICAgIGlmICghJChldmVudC50YXJnZXQpLmNsb3Nlc3QodGhhdC4kY29tYm8pLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgY29uc3QgZGVjbGFyZUZsYWdFZGl0b3JXaWRnZXQgPSAoKSA9PiB7XG4gICAgICAgICQud2lkZ2V0KFwic3RlcmZpdmUuZmxhZ0VkaXRvclwiLCB7XG4gICAgICAgICAgICAvLyBkZWZhdWx0IG9wdGlvbnNcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBuYW1lc1RvQml0czoge1xuICAgICAgICAgICAgICAgIC8vIEFkZCBtb3JlIG5hbWVzIGFuZCBiaXQgdmFsdWVzXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogMCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfY3JlYXRlKCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIC8vIEN1c3RvbSBEcm9wZG93blxuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0ID0gdGhpcy5lbGVtZW50O1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvID0gJChcIjxkaXYvPlwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hZGRDbGFzcyhcInN0ZXJmaXZlLWNvbWJvLWJveFwiKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRbMF0ucGFyZW50RWxlbWVudC5yZXBsYWNlQ2hpbGQodGhhdC4kY29tYm9bMF0sIHRoaXMuZWxlbWVudFswXSk7XG4gICAgICAgICAgICAgICAgLy8gdGhpcy5lbGVtZW50LnJlcGxhY2VXaXRoKHRoYXQuJGNvbWJvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcImlucHV0LWdyb3VwXCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbnB1dEdyb3VwKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiRpbnB1dCk7XG4gICAgICAgICAgICAgICAgLy8gdGhlIHRvZ2dsZSB0cmVlIGJ1dHRvbjpcbiAgICAgICAgICAgICAgICAvLyAgIHdoZW4gd2UgY2xpY2sgaXQgdGhlIGRyb3AgZG93biBwYW5lbCBpcyBkaXNwbGF5ZWRcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuID0gJChgPGJ1dHRvbj48aSBjbGFzcz1cImZhIGZhLWV5ZVwiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiR0b2dnbGVUcmVlQnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQuJGRyb3Bkb3duLmlzKFwiOnZpc2libGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoYXQuJHNlbGVjdC5mb2N1cygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlRnJvbUlucHV0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5maW5kKFwiLmN1c3RvbS1vcHRpb25cIikuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG9wdGlvbk5hbWUgPSAkKHRoaXMpLnRleHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBiaXRWYWx1ZSA9IHRoYXQub3B0aW9ucy5uYW1lc1RvQml0c1tvcHRpb25OYW1lXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYml0VmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJVbmtub3duIGJpdCBuYW1lXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKHRoYXQub3B0aW9ucy52YWx1ZSAmIGJpdFZhbHVlKSA9PT0gYml0VmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5hZGRDbGFzcyhcInNlbGVjdGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5yZW1vdmVDbGFzcyhcInNlbGVjdGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVXBkYXRlIHRoZSBoaWRkZW4gc2VsZWN0IGVsZW1lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQudXBkYXRlVmFsdWUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIC8vIHRoZSBkcm9wIGRvd24gcGFuZWxcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93biA9ICQoJzxkaXYgY2xhc3M9XCJjdXN0b20tc2VsZWN0XCI+PC9kaXY+JykuaGlkZSgpLmluc2VydEFmdGVyKHRoaXMuZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgJC5lYWNoKHRoaXMub3B0aW9ucy5uYW1lc1RvQml0cywgZnVuY3Rpb24gKG5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJG9wdGlvbiA9ICQoJzxkaXYgY2xhc3M9XCJjdXN0b20tb3B0aW9uXCIgZGF0YS12YWx1ZT1cIicgK1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSArXG4gICAgICAgICAgICAgICAgICAgICAgICAnXCI+JyArXG4gICAgICAgICAgICAgICAgICAgICAgICAnPHNwYW4gY2xhc3M9XCJjdXN0b20tY2hlY2tib3hcIj48L3NwYW4+JyArXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lICtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiPC9kaXY+XCIpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5hcHBlbmQoJG9wdGlvbik7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgLy8gd2hlbiBhIG9wdGlvbnMgaW4gdGhlIGRyb3AgZG93biBwYW5lbCBpcyBjbGlja2VkLFxuICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLm9uKFwiY2xpY2tcIiwgXCIuY3VzdG9tLW9wdGlvblwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICQodGhpcykudG9nZ2xlQ2xhc3MoXCJzZWxlY3RlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSAkKHRoaXMpLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCQodGhpcykuaGFzQ2xhc3MoXCJzZWxlY3RlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0Qml0KHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVuc2V0Qml0KHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGF0LnVwZGF0ZVZhbHVlKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICBjb25zdCB1cGRhdGVGcm9tSW5wdXQgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5lbGVtZW50LnZhbCgpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0Lm9wdGlvbnMudmFsdWUgPSBjb2VyY2VGbGFnTWFza1RvTnVtYmVyKHRoYXQub3B0aW9ucy5uYW1lc1RvQml0cywgdmFsdWUpO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY29uc3Qgc2V0Qml0ID0gKGJpdE5hbWUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYml0ID0gdGhhdC5vcHRpb25zLm5hbWVzVG9CaXRzW2JpdE5hbWVdO1xuICAgICAgICAgICAgICAgICAgICBpZiAoYml0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlVua25vd24gYml0IG5hbWVcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zLnZhbHVlIHw9IGJpdDtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IHVuc2V0Qml0ID0gKGJpdE5hbWUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYml0ID0gdGhhdC5vcHRpb25zLm5hbWVzVG9CaXRzW2JpdE5hbWVdO1xuICAgICAgICAgICAgICAgICAgICBpZiAoYml0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlVua25vd24gYml0IG5hbWVcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zLnZhbHVlICY9IH5iaXQ7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC52YWwoY29lcmNlRmxhZ01hc2tUb1N0cmluZyh0aGF0Lm9wdGlvbnMubmFtZXNUb0JpdHMsIHRoaXMub3B0aW9ucy52YWx1ZSkpO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgdXBkYXRlRnJvbUlucHV0KCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdXBkYXRlVmFsdWUoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LnZhbChjb2VyY2VGbGFnTWFza1RvU3RyaW5nKHRoYXQub3B0aW9ucy5uYW1lc1RvQml0cywgdGhpcy5vcHRpb25zLnZhbHVlKSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2Rlc3Ryb3koKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24ucmVtb3ZlKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgY29uc3QgZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzID0gKCkgPT4ge1xuICAgICAgICBjb25zdCAkZW5kcG9pbnQgPSAkKFwiI25vZGUtaW5wdXQtZW5kcG9pbnRcIik7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50SWQgPSAkZW5kcG9pbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IHJlZE5vZGUgPSBSRUQubm9kZXMubm9kZShlbmRwb2ludElkKTtcbiAgICAgICAgaWYgKCFyZWROb2RlKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgLy8gY29uc3QgY3JlZGVudGlhbHMgPSBSRUQuKGVuZHBvaW50SWQpO1xuICAgICAgICAvLyB3ZSBuZWVkIHRvIHNhbml0aXplIGFuZCBleHRyYWN0IHRoZSBlbmRwb2ludCBhdHRyaWJ1dGVzIG9ubHkgKCBub3QgdGhlIG5vZGUtcmVkIHN0dWZmKVxuICAgICAgICBjb25zdCB7IGVuZHBvaW50LCBzZWN1cml0eU1vZGUsIHNlY3VyaXR5UG9saWN5LCB1c2VySWRlbnRpdHlUeXBlLCBjcmVkZW50aWFscyB9ID0gcmVkTm9kZTtcbiAgICAgICAgY29uc3QgcmV0VmFsdWUgPSB7XG4gICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgIHNlY3VyaXR5TW9kZSxcbiAgICAgICAgICAgIHNlY3VyaXR5UG9saWN5LFxuICAgICAgICAgICAgdXNlcklkZW50aXR5VHlwZSxcbiAgICAgICAgICAgIGNyZWRlbnRpYWxzLFxuICAgICAgICB9O1xuICAgICAgICBjb25zb2xlLmxvZyhcInh4eFwiLCByZXRWYWx1ZSk7XG4gICAgICAgIHJldHVybiByZXRWYWx1ZTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlbmRwb2ludE5vZGU6IGdldEVuZHBvaW50UGFyYW1ldGVycyxcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVycyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCBlbmRwb2ludElkID0gJGVuZHBvaW50LnZhbCgpO1xuICAgICAgICBjb25zdCBlbmRwb2ludE5yID0gZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzKCk7XG4gICAgICAgIGlmICghZW5kcG9pbnROcikge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaWQ6IGVuZHBvaW50SWQsXG4gICAgICAgICAgICAvLyBlbmRwb2ludDogZW5kcG9pbnROci5lbmRwb2ludCxcbiAgICAgICAgICAgIC8vIHNlY3VyaXR5TW9kZTogZW5kcG9pbnROci5zZWN1cml0eU1vZGUsXG4gICAgICAgICAgICAvLyBzZWN1cml0eVBvbGljeTogZW5kcG9pbnROci5zZWN1cml0eVBvbGljeSxcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAvLyB1c2VySWRlbnRpdHlUeXBlOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUsXG4gICAgICAgICAgICAvLyBjcmVkZW50aWFsOiBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLFxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIHVzZXJOYW1lOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUgPT09IFwiVXNlck5hbWVcIiA/IGVuZHBvaW50TnIuY3JlZGVudGlhbHMudXNlck5hbWUgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAvLyBwYXNzd29yZDogZW5kcG9pbnROci51c2VySWRlbnRpdHlUeXBlID09PSBcIlVzZXJOYW1lXCIgPyBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLnBhc3N3b3JkIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgLy8gdXNlckNlcnRpZmljYXRlOiBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLnVzZXJDZXJ0aWZpY2F0ZSxcbiAgICAgICAgICAgIC8vIHVzZXJQcml2YXRla2V5OiBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLnVzZXJQcml2YXRla2V5LFxuICAgICAgICB9O1xuICAgIH07XG5cbiAgICBSRUQubm9kZXMucmVnaXN0ZXJUeXBlKFwiT3BjVWEtQ2xpZW50Mi1Ccm93c2VcIiwge1xuICAgICAgICBjYXRlZ29yeTogXCJvcGN1YVwiLFxuICAgICAgICBjb2xvcjogXCIjQzBERUVEXCIsXG4gICAgICAgIGFsaWduOiBcInJpZ2h0XCIsXG4gICAgICAgIGljb246IFwiLi4vLi4vaWNvbnMvb3BjdWFub2RlTG9nby5wbmdcIixcbiAgICAgICAgcGFsZXR0ZUxhYmVsOiBcImJyb3dzZVwiLFxuICAgICAgICBkZWZhdWx0czoge1xuICAgICAgICAgICAgaW5wdXRzOiB7IHZhbHVlOiAxIH0sXG4gICAgICAgICAgICBvdXRwdXQ6IHsgdmFsdWU6IDQgfSxcbiAgICAgICAgICAgIC8vIENvbW1vblxuICAgICAgICAgICAgbmFtZTogeyB2YWx1ZTogXCJcIiB9LFxuICAgICAgICAgICAgZW5kcG9pbnQ6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiB0cnVlLCB0eXBlOiBcIk9wY1VhLUVuZHBvaW50MlwiIH0sXG4gICAgICAgICAgICAvLyBmb3IgYWN0aW9uIHJlYWRcbiAgICAgICAgICAgIG5vZGVJZDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHsgdmFsdWU6IFwiSGFzQ2hpbGRcIiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHsgdmFsdWU6IGZhbHNlLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiB7IHZhbHVlOiBcIkZvcndhcmRcIiwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIG5vZGVDbGFzc01hc2s6IHsgdmFsdWU6IFwiVmFyaWFibGUgfCBPYmplY3QgfCBNZXRob2QgfCBPYmplY3RUeXBlIHwgVmFyaWFibGVUeXBlXCIsIHJlcXVpcmVkOiBmYWxzZSB9LFxuICAgICAgICAgICAgcmVzdWx0TWFzazogeyB2YWx1ZTogXCJSZWZlcmVuY2VUeXBlIHwgQnJvd3NlTmFtZSB8IFR5cGVEZWZpbml0aW9uIHwgRGlzcGxheU5hbWUgfCBOb2RlQ2xhc3MgfCBJc0ZvcndhcmRcIiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgIH0sXG4gICAgICAgIG91dHB1dHM6IDEsXG4gICAgICAgIGxhYmVsKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSB8fCBcIk9QQ1VBIEJyb3dzZVwiO1xuICAgICAgICB9LFxuICAgICAgICBsYWJlbFN0eWxlKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSA/IFwibm9kZV9sYWJlbF9pdGFsaWNcIiA6IFwiXCI7XG4gICAgICAgIH0sXG4gICAgICAgIG9uZWRpdHByZXBhcmUoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gdGhpcztcbiAgICAgICAgICAgIGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCgpO1xuICAgICAgICAgICAgZGVjbGFyZUZsYWdFZGl0b3JXaWRnZXQoKTtcbiAgICAgICAgICAgIG5vZGUuaW5wdXRzID0gMTtcbiAgICAgICAgICAgIGNvbnN0ICRub2RlQ2xhc3NNYXNrID0gJChcIiNub2RlLWlucHV0LW5vZGVDbGFzc01hc2tcIik7XG4gICAgICAgICAgICAkbm9kZUNsYXNzTWFzay5mbGFnRWRpdG9yKHtcbiAgICAgICAgICAgICAgICBuYW1lc1RvQml0czoge1xuICAgICAgICAgICAgICAgICAgICBPYmplY3Q6IDEsXG4gICAgICAgICAgICAgICAgICAgIFZhcmlhYmxlOiAyLFxuICAgICAgICAgICAgICAgICAgICBNZXRob2Q6IDQsXG4gICAgICAgICAgICAgICAgICAgIE9iamVjdFR5cGU6IDgsXG4gICAgICAgICAgICAgICAgICAgIFZhcmlhYmxlVHlwZTogMTYsXG4gICAgICAgICAgICAgICAgICAgIFJlZmVyZW5jZVR5cGU6IDMyLFxuICAgICAgICAgICAgICAgICAgICBEYXRhVHlwZTogNjQsXG4gICAgICAgICAgICAgICAgICAgIFZpZXc6IDEyOCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHZhbHVlOiAwLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCAkcmVzdWx0TWFzayA9ICQoXCIjbm9kZS1pbnB1dC1yZXN1bHRNYXNrXCIpO1xuICAgICAgICAgICAgJHJlc3VsdE1hc2suZmxhZ0VkaXRvcih7XG4gICAgICAgICAgICAgICAgbmFtZXNUb0JpdHM6IHtcbiAgICAgICAgICAgICAgICAgICAgUmVmZXJlbmNlVHlwZTogMSxcbiAgICAgICAgICAgICAgICAgICAgSXNGb3J3YXJkOiAyLFxuICAgICAgICAgICAgICAgICAgICBOb2RlQ2xhc3M6IDQsXG4gICAgICAgICAgICAgICAgICAgIEJyb3dzZU5hbWU6IDgsXG4gICAgICAgICAgICAgICAgICAgIERpc3BsYXlOYW1lOiAxNixcbiAgICAgICAgICAgICAgICAgICAgVHlwZURlZmluaXRpb246IDMyLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgdmFsdWU6IDYzLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCAkbm9kZUlkID0gJChcIiNub2RlLWlucHV0LW5vZGVJZFwiKTtcbiAgICAgICAgICAgICRub2RlSWQubm9kZUJyb3dzZXIoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyKCkpLCB7IGlzU2VsZWN0YWJsZShub2RlRGVzYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIlZhcmlhYmxlXCIgfHwgbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIk9iamVjdFwiO1xuICAgICAgICAgICAgICAgIH0gfSkpO1xuICAgICAgICAgICAgY29uc3QgcmVmZXJlbmNlc05vZGVEZXNjID0ge1xuICAgICAgICAgICAgICAgIG5vZGVJZDogXCJpPTMxXCIsXG4gICAgICAgICAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiBcIlwiLFxuICAgICAgICAgICAgICAgIGJyb3dzZU5hbWU6IHsgbmFtZXNwYWNlSW5kZXg6IDAsIG5hbWU6IFwiUmVmZXJlbmNlc1wiIH0sXG4gICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6IHsgdGV4dDogXCJSZWZlcmVuY2VzXCIgfSxcbiAgICAgICAgICAgICAgICBub2RlQ2xhc3M6IFwiUmVmZXJlbmNlVHlwZVwiLFxuICAgICAgICAgICAgICAgIHR5cGVEZWZpbml0aW9uOiBcImk9MzFcIixcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBjb25zdCAkcmVmZXJlbmNlVHlwZUlkID0gJChcIiNub2RlLWlucHV0LXJlZmVyZW5jZVR5cGVJZFwiKTtcbiAgICAgICAgICAgICRyZWZlcmVuY2VUeXBlSWQubm9kZUJyb3dzZXIoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyKCkpLCB7IHBhcmVudE5vZGU6ICgpID0+IHJlZmVyZW5jZXNOb2RlRGVzYywgLy8gUmVmZXJlbmNlcyxcbiAgICAgICAgICAgICAgICBpc1NlbGVjdGFibGUobm9kZURlc2MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgICAgICAgICAgfSwgaXNUeXBlUmVmOiB0cnVlIH0pKTtcbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0c2F2ZSgpIHsgfSxcbiAgICB9KTtcblxufSkoKTsiXX0=
7
+ function _0x524a(){const _0x4f5341=['text','72444uUgNOm','HasProperty','TypeDefinition','$combo','/checkNodeId','number','HasComponent','SteelBlue','xxx','nodeBrowser','HasSubtype','suppressed','#node-input-nodeClassMask','$toggleTreeBtn','verify','appendTo','hide','widget','</li>','1271850ArzLkI','click','ns=0;i=46','element','browse','statusText','OpcUa-Endpoint2','ns=0;i=34','rgba(61,\x2060,\x204,\x200.525)','left','change','SuppressedError','/browse','Forward','then','108882xcMKpG','attr','../../icons/opcuanodeLogo.png','ns=0;i=45','Object','385GgsmeV','trim','<span\x20class=\x22custom-checkbox\x22></span>','fa-object-group','err','NodeClass','throw','match','done','referenceTypeId','value','grey','/opcua-endpoint2','HasChild','fa-question','insertAfter','references','fa-cog','Variable','Unspecified','<div/>','$tree','input-group','Method','$info','DataType','expanded','stringify','nodeId','fetching\x20failed\x20with\x20error','stopPropagation','addClass','33oHRqYo','options','i=31','<li><i\x20class=\x22fa\x20','toString','append','name','val','replaceChild','<div\x20class=\x22spinner\x22></div>','Both','Unknown\x20bit\x20name','baseUrl','4097750qZzVzz','already\x20loading','Inverse','map','browseName','assign','split','endpointNode','ns=0;i=61','opc.tcp://opcuademo.sterfive.com:26543','<div\x20class=\x22custom-option\x22\x20data-value=\x22','References','application/json','Variable\x20|\x20Object\x20|\x20Method\x20|\x20ObjectType\x20|\x20VariableType','filter','each','HasTypeDefinition','hasClass','BrowseName','reset','OpcUa-Client2-Browse','Objects','apply','pageY','placeholder','length','<li>error\x20','nodeClass','!!failure!!','fa-folder','Organizes','data','fa-list-alt','$inputGroup','DarkOrange','endpoint','705158bPEpOR','fetched\x20:\x20','selected','message','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','toggleClass','next','namesToBits','json','loading','#node-input-endpoint','SeaGreen','DisplayName','reference','<div\x20class=\x22custom-select\x22></div>','\x20Fetching\x20done','updateValue',':visible','isTypeRef','$dropdown','resolveParentNode','error','ObjectType','9RGdpdM','nodes','<div\x20class=\x22info-text\x22></div>','toggle','fa-sliders','$input','5514436YHOfgh','target','816ZOHUrR',';\x22></i>\x20','9034151hXKjuE','View','node_label_italic','status','ReferenceType','children','sterfive-combo-box','sterfive-info','\x22\x20style=\x22color:','IsForward','$verifyBtn','POST','remove','isSelectable','top','opcua','parentNode','ns=0;i=47','ns=0;i=85','Invalid','offset','failure','currentParent','expandable\x20expanded','flagEditor','right','#node-input-referenceTypeId','show','</div>','empty','VariableType','function','sterfive.flagEditor','ns=0;i=40','join','parentElement','expandable','push','find','CadetBlue','log','entries','fetched','<button><i\x20class=\x22fa\x20fa-eye\x22></i></button>','.custom-option','inputs','statusCode','removeClass','sterfive.nodeBrowser','\x20|\x20','#node-input-resultMask','<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','trigger'];_0x524a=function(){return _0x4f5341;};return _0x524a();}function _0x43bf(_0x4abd39,_0x5aefe7){const _0x524aa4=_0x524a();return _0x43bf=function(_0x43bf31,_0x3967b6){_0x43bf31=_0x43bf31-0x113;let _0x2908c9=_0x524aa4[_0x43bf31];return _0x2908c9;},_0x43bf(_0x4abd39,_0x5aefe7);}(function(_0x59a3ff,_0x4b71e8){const _0x1c8d1f=_0x43bf,_0x5c776c=_0x59a3ff();while(!![]){try{const _0x601dac=parseInt(_0x1c8d1f(0x1c8))/0x1+parseInt(_0x1c8d1f(0x15e))/0x2*(parseInt(_0x1c8d1f(0x175))/0x3)+-parseInt(_0x1c8d1f(0x17b))/0x4+-parseInt(_0x1c8d1f(0x1dc))/0x5*(-parseInt(_0x1c8d1f(0x1b5))/0x6)+parseInt(_0x1c8d1f(0x17f))/0x7+-parseInt(_0x1c8d1f(0x17d))/0x8*(parseInt(_0x1c8d1f(0x1d7))/0x9)+-parseInt(_0x1c8d1f(0x13a))/0xa*(parseInt(_0x1c8d1f(0x12d))/0xb);if(_0x601dac===_0x4b71e8)break;else _0x5c776c['push'](_0x5c776c['shift']());}catch(_0x26431a){_0x5c776c['push'](_0x5c776c['shift']());}}}(_0x524a,0xacd6c),(function(){'use strict';const _0x143b73=_0x43bf;function _0x45c2b0(_0x26dec5,_0x4ae367,_0x2b9fca,_0x59ddfc){function _0x484d5e(_0x4b5b9d){return _0x4b5b9d instanceof _0x2b9fca?_0x4b5b9d:new _0x2b9fca(function(_0x485d5c){_0x485d5c(_0x4b5b9d);});}return new(_0x2b9fca||(_0x2b9fca=Promise))(function(_0x3706be,_0x348f17){const _0x527e51=_0x43bf;function _0x578142(_0x2be79e){try{_0x225eac(_0x59ddfc['next'](_0x2be79e));}catch(_0x2a2993){_0x348f17(_0x2a2993);}}function _0x743c60(_0x233306){const _0x3cb9b5=_0x43bf;try{_0x225eac(_0x59ddfc[_0x3cb9b5(0x113)](_0x233306));}catch(_0x821eba){_0x348f17(_0x821eba);}}function _0x225eac(_0x1840ae){const _0x3e76f0=_0x43bf;_0x1840ae[_0x3e76f0(0x115)]?_0x3706be(_0x1840ae[_0x3e76f0(0x117)]):_0x484d5e(_0x1840ae[_0x3e76f0(0x117)])[_0x3e76f0(0x1d6)](_0x578142,_0x743c60);}_0x225eac((_0x59ddfc=_0x59ddfc[_0x527e51(0x150)](_0x26dec5,_0x4ae367||[]))[_0x527e51(0x164)]());});}typeof SuppressedError===_0x143b73(0x19e)?SuppressedError:function(_0x2f041d,_0x4664c3,_0x103154){const _0x3beb96=_0x143b73;var _0x184269=new Error(_0x103154);return _0x184269[_0x3beb96(0x133)]=_0x3beb96(0x1d3),_0x184269['error']=_0x2f041d,_0x184269[_0x3beb96(0x1c0)]=_0x4664c3,_0x184269;};const _0x4cc68f='ns=0;i=35',_0x1d9b3d=_0x143b73(0x142),_0x2c14ca=_0x143b73(0x190),_0xf1e355=_0x143b73(0x1ca),_0x4000b9=_0x143b73(0x1cf),_0x4d4e6b=_0x143b73(0x1da),_0x451273=_0x143b73(0x1a0);var _0x234480;(function(_0x2211f6){const _0x4330d5=_0x143b73;_0x2211f6[_0x2211f6[_0x4330d5(0x1d5)]=0x0]='Forward',_0x2211f6[_0x2211f6[_0x4330d5(0x13c)]=0x1]=_0x4330d5(0x13c),_0x2211f6[_0x2211f6[_0x4330d5(0x137)]=0x2]=_0x4330d5(0x137),_0x2211f6[_0x2211f6[_0x4330d5(0x192)]=0x3]=_0x4330d5(0x192);}(_0x234480||(_0x234480={})));var _0x4e691e;(function(_0x47d11f){const _0x4dcc3c=_0x143b73;_0x47d11f[_0x47d11f['Unspecified']=0x0]=_0x4dcc3c(0x120),_0x47d11f[_0x47d11f[_0x4dcc3c(0x1db)]=0x1]=_0x4dcc3c(0x1db),_0x47d11f[_0x47d11f['Variable']=0x2]='Variable',_0x47d11f[_0x47d11f[_0x4dcc3c(0x124)]=0x4]=_0x4dcc3c(0x124),_0x47d11f[_0x47d11f[_0x4dcc3c(0x174)]=0x8]=_0x4dcc3c(0x174),_0x47d11f[_0x47d11f[_0x4dcc3c(0x19d)]=0x10]='VariableType',_0x47d11f[_0x47d11f[_0x4dcc3c(0x183)]=0x20]=_0x4dcc3c(0x183),_0x47d11f[_0x47d11f[_0x4dcc3c(0x126)]=0x40]=_0x4dcc3c(0x126),_0x47d11f[_0x47d11f[_0x4dcc3c(0x180)]=0x80]='View';}(_0x4e691e||(_0x4e691e={})));var _0x159c72;(function(_0x3e0424){const _0x524950=_0x143b73;_0x3e0424[_0x3e0424[_0x524950(0x1db)]=0x1]=_0x524950(0x1db),_0x3e0424[_0x3e0424[_0x524950(0x11f)]=0x2]='Variable',_0x3e0424[_0x3e0424[_0x524950(0x124)]=0x4]='Method',_0x3e0424[_0x3e0424[_0x524950(0x174)]=0x8]='ObjectType',_0x3e0424[_0x3e0424[_0x524950(0x19d)]=0x10]=_0x524950(0x19d),_0x3e0424[_0x3e0424[_0x524950(0x183)]=0x20]='ReferenceType',_0x3e0424[_0x3e0424['DataType']=0x40]=_0x524950(0x126),_0x3e0424[_0x3e0424[_0x524950(0x180)]=0x80]=_0x524950(0x180);}(_0x159c72||(_0x159c72={})));function _0x3aa52b(_0xefb642,_0x429f82){const _0x2f6316=_0x143b73;if(typeof _0x429f82===_0x2f6316(0x1ba))return _0x429f82;const _0x47dd3c=parseInt(_0x429f82,0xa);if(!isNaN(_0x47dd3c))return _0x47dd3c;const _0x267419=_0x429f82[_0x2f6316(0x140)](/\||;|,/)[_0x2f6316(0x13d)](_0x33d6a2=>_0x33d6a2[_0x2f6316(0x1dd)]());let _0x1e83bf=0x0;for(const _0xb6fae7 of _0x267419){_0x1e83bf|=_0xefb642[_0xb6fae7];}return _0x1e83bf;}function _0x21e652(_0x3bbba8,_0x41e1b1){const _0x443230=_0x143b73;_0x41e1b1=_0x3aa52b(_0x3bbba8,_0x41e1b1);const _0x4dd4ba=[];if(!_0x3bbba8)return _0x4dd4ba[_0x443230(0x1a1)](_0x443230(0x1b0));for(const [_0x5d1e4d,_0x3ccf4a]of Object[_0x443230(0x1a8)](_0x3bbba8)){typeof _0x41e1b1==='number'&&((_0x41e1b1&_0x3ccf4a)===_0x3ccf4a&&_0x4dd4ba[_0x443230(0x1a4)](_0x5d1e4d));}return _0x4dd4ba['join'](_0x443230(0x1b0));}var _0x3ab040;(function(_0x3c9bca){const _0x27a624=_0x143b73;_0x3c9bca[_0x3c9bca[_0x27a624(0x183)]=0x1]=_0x27a624(0x183),_0x3c9bca[_0x3c9bca['IsForward']=0x2]=_0x27a624(0x188),_0x3c9bca[_0x3c9bca[_0x27a624(0x1e1)]=0x4]=_0x27a624(0x1e1),_0x3c9bca[_0x3c9bca[_0x27a624(0x14c)]=0x8]=_0x27a624(0x14c),_0x3c9bca[_0x3c9bca[_0x27a624(0x16a)]=0x10]=_0x27a624(0x16a),_0x3c9bca[_0x3c9bca[_0x27a624(0x1b7)]=0x20]='TypeDefinition';}(_0x3ab040||(_0x3ab040={})));function _0x4566e2(_0x7f1b48){const _0x2d20a2=_0x143b73;switch(_0x7f1b48){case'Organizes':return _0x4cc68f;case _0x2d20a2(0x1b6):return _0xf1e355;case _0x2d20a2(0x1bb):return _0x2c14ca;case _0x2d20a2(0x11a):return _0x4000b9;case'HasSubtype':return _0x4d4e6b;case _0x2d20a2(0x14a):return _0x451273;}}const _0x31120a=_0x9d6ac5=>{const _0x12897a=_0x143b73;switch(_0x9d6ac5['nodeClass']){case _0x12897a(0x1db):if(_0x9d6ac5[_0x12897a(0x116)]===_0x4cc68f);if(_0x9d6ac5['typeDefinition']===_0x1d9b3d||_0x9d6ac5[_0x12897a(0x116)]==='i=61')return{'icon':_0x12897a(0x157),'color':_0x12897a(0x1d0)};return{'icon':_0x12897a(0x1df),'color':_0x12897a(0x169)};case'Variable':if(_0x9d6ac5[_0x12897a(0x116)]===_0x2c14ca)return{'icon':_0x12897a(0x15a),'color':_0x12897a(0x1bc)};else return _0x9d6ac5[_0x12897a(0x116)]===_0xf1e355?{'icon':_0x12897a(0x15a),'color':'DodgerBlue'}:{'icon':'fa-list-alt','color':_0x12897a(0x1a6)};case _0x12897a(0x124):return{'icon':_0x12897a(0x11e),'color':'SandyBrown'};case'ObjectType':return{'icon':_0x12897a(0x1df),'color':'DarkOrange'};case _0x12897a(0x19d):return{'icon':_0x12897a(0x179),'color':_0x12897a(0x15c)};}return{'icon':_0x12897a(0x11b),'color':_0x12897a(0x118)};},_0x40f3e8=({endpointNode:_0x5164c8,endpoint:_0x62533e,baseUrl:_0x50e8e7},_0x395d6f,_0xf87301)=>_0x45c2b0(void 0x0,void 0x0,void 0x0,function*(){const _0x4bd1bf=_0x143b73,_0x282f78=_0x50e8e7+_0x4bd1bf(0x119),_0x48fcb1=_0x282f78+_0x4bd1bf(0x1d4),_0x5a470a=Object['assign'](Object[_0x4bd1bf(0x13f)]({},_0xf87301),{'nodeId':_0x395d6f,'resultMask':0x3f}),_0x2e8b1b=yield fetch(_0x48fcb1,{'method':_0x4bd1bf(0x18a),'body':JSON[_0x4bd1bf(0x128)]({'endpointNode':_0x5164c8,'endpoint':_0x62533e,'browseDescription':_0x5a470a}),'headers':{'Content-Type':'application/json'}});if(_0x2e8b1b['status']!==0xc8)return console['log'](_0x4bd1bf(0x12a),_0x2e8b1b['status'],_0x2e8b1b[_0x4bd1bf(0x1cd)]),{'references':[]};console[_0x4bd1bf(0x1a7)](_0x4bd1bf(0x15f),_0x2e8b1b[_0x4bd1bf(0x182)],_0x2e8b1b[_0x4bd1bf(0x1cd)]);const _0x5448d3=yield _0x2e8b1b[_0x4bd1bf(0x166)](),_0x3cfbc6=_0x5448d3['browseResult'][_0x4bd1bf(0x11d)]||[];return{'references':_0x3cfbc6};}),_0x1aa820={'referenceTypeId':_0x4566e2(_0x143b73(0x11a)),'includeSubtypes':!![],'browseDirection':_0x234480['Forward'],'nodeClassMask':_0x4e691e['Variable']|_0x4e691e[_0x143b73(0x1db)]|_0x4e691e['Method'],'resultMask':0x3f},_0x128d15={'referenceTypeId':_0x4566e2(_0x143b73(0x158)),'includeSubtypes':!![],'browseDirection':_0x234480[_0x143b73(0x1d5)],'nodeClassMask':_0x4e691e[_0x143b73(0x11f)]|_0x4e691e[_0x143b73(0x1db)]|_0x4e691e[_0x143b73(0x124)],'resultMask':0x3f},_0x14f50b=({endpointNode:_0x496da8,endpoint:_0x129297,baseUrl:_0x4ded04},_0x9d9b5a,_0x33eac0)=>_0x45c2b0(void 0x0,void 0x0,void 0x0,function*(){const _0x378655=_0x143b73,_0x311056=_0x4ded04+_0x378655(0x119),_0x39ea49=_0x9d9b5a['val'](),_0x3604d5=yield fetch(_0x311056+_0x378655(0x1b9),{'method':_0x378655(0x18a),'body':JSON[_0x378655(0x128)]({'endpointNode':_0x496da8,'endpoint':_0x129297,'nodeId':_0x39ea49}),'headers':{'Content-Type':_0x378655(0x146)}}),_0x34eae1=(_0x72a8e8,_0x2cfa04)=>{const _0x2cd80a=_0x378655;_0x33eac0[_0x2cd80a(0x1b4)](_0x72a8e8)[_0x2cd80a(0x12c)](_0x2cd80a(0x186))[_0x2cd80a(0x12c)](_0x2cfa04),_0x33eac0[_0x2cd80a(0x19a)](),setTimeout(()=>{const _0xed62a8=_0x2cd80a;_0x33eac0['removeClass'](_0x2cfa04),_0x33eac0[_0xed62a8(0x1c5)]();},0xbb8);},_0x466380=yield _0x3604d5[_0x378655(0x166)]();_0x3604d5['status']!==0xc8?_0x34eae1(_0x378655(0x156)+_0x39ea49,_0x378655(0x194)):_0x466380['statusCode'][_0x378655(0x114)](/Good/)?(_0x9d9b5a['val'](_0x466380['nodeAddressString']),_0x9d9b5a[_0x378655(0x1b3)](_0x378655(0x1d2)),_0x34eae1('Good','ok')):(_0x9d9b5a['val'](''+_0x39ea49),_0x34eae1(_0x466380[_0x378655(0x1ad)]+'\x20'+_0x3604d5[_0x378655(0x1cd)],_0x378655(0x194)));});function _0xdc42a5(_0x4840f0,_0x172747){return _0x45c2b0(this,void 0x0,void 0x0,function*(){const _0x279691=_0x43bf,_0x10cc9f=_0x4840f0[_0x279691(0x159)](_0x279691(0x117)),_0x4062fd=yield _0x40f3e8(_0x172747,_0x10cc9f,_0x1aa820),_0x51725b=yield _0x40f3e8(_0x172747,_0x10cc9f,_0x128d15);return{'references':[..._0x4062fd[_0x279691(0x11d)],..._0x51725b[_0x279691(0x11d)]]};});}const _0x300b0a={'referenceTypeId':_0x4566e2(_0x143b73(0x1bf)),'includeSubtypes':!![],'browseDirection':_0x234480['Forward'],'nodeClassMask':_0x4e691e[_0x143b73(0x183)]|_0x4e691e[_0x143b73(0x174)]|_0x4e691e[_0x143b73(0x126)]|_0x4e691e[_0x143b73(0x19d)],'resultMask':0x3f};function _0x23035f(_0x277f0f,_0x48a1b4){return _0x45c2b0(this,void 0x0,void 0x0,function*(){const _0x4cfe26=_0x43bf,_0x3628b5=_0x277f0f[_0x4cfe26(0x159)](_0x4cfe26(0x117)),_0x358fcc=yield _0x40f3e8(_0x48a1b4,_0x3628b5,_0x300b0a);return _0x358fcc;});}const _0x50a9c1=_0xf760b1=>{const _0x5087b4=_0x143b73;var _0x424f20,_0x50970d;if(!_0xf760b1){const _0x3585e0=$('<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>');return _0x3585e0;}const _0xfaca08=_0xf760b1['nodeId'][_0x5087b4(0x131)](),_0x3ca2e4=((_0x424f20=_0xf760b1['displayName'])===null||_0x424f20===void 0x0?void 0x0:_0x424f20[_0x5087b4(0x1b4)])||((_0x50970d=_0xf760b1[_0x5087b4(0x13e)])===null||_0x50970d===void 0x0?void 0x0:_0x50970d[_0x5087b4(0x133)])||_0xf760b1[_0x5087b4(0x129)][_0x5087b4(0x131)](),{icon:_0x2e8e59,color:_0x132da6}=_0x31120a(_0xf760b1),_0x5ad8be=$(_0x5087b4(0x130)+_0x2e8e59+_0x5087b4(0x187)+_0x132da6+_0x5087b4(0x17e)+_0x3ca2e4+'<ul></ul></li>');return _0x5ad8be[_0x5087b4(0x12c)](_0x5087b4(0x1a3)),_0x5ad8be[_0x5087b4(0x159)]('value',_0xfaca08),_0x5ad8be[_0x5087b4(0x159)](_0x5087b4(0x16b),_0xf760b1),_0x5ad8be;},_0x4f7d67=()=>{const _0x14f86e=_0x143b73;$[_0x14f86e(0x1c6)](_0x14f86e(0x1af),{'options':{'endpointNode':()=>({'endpoint':_0x14f86e(0x143)}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':_0x14f86e(0x14f)},'nodeClass':_0x14f86e(0x1db),'nodeId':_0x14f86e(0x191),'displayName':{'text':_0x14f86e(0x14f)},'typeDefinition':_0x1d9b3d}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x45c2b0(this,void 0x0,void 0x0,function*(){const _0x2dbe89=_0x43bf,_0x26c2e8=this,_0x316628=typeof _0x26c2e8[_0x2dbe89(0x12e)][_0x2dbe89(0x18f)]===_0x2dbe89(0x19e)?_0x26c2e8[_0x2dbe89(0x12e)][_0x2dbe89(0x18f)]():_0x26c2e8[_0x2dbe89(0x12e)]['parentNode'];if(_0x316628 instanceof Promise)return yield _0x316628;return _0x316628;});},'reset'(){const _0x39fe7b=_0x14f86e,_0x35e383=this;_0x35e383[_0x39fe7b(0x122)][_0x39fe7b(0x19c)](),this[_0x39fe7b(0x172)]()[_0x39fe7b(0x1d6)](_0x4bd7b4=>{const _0x447b8e=_0x39fe7b,_0xb08a6e=_0x50a9c1(_0x4bd7b4);_0x35e383[_0x447b8e(0x122)]['append'](_0xb08a6e),_0x35e383[_0x447b8e(0x195)]=_0x4bd7b4;});},'verify'(){const _0x35a26f=_0x14f86e,_0x3fe659=this,_0x5e9ef6={'baseUrl':_0x3fe659[_0x35a26f(0x12e)]['baseUrl'],'endpointNode':typeof _0x3fe659[_0x35a26f(0x12e)][_0x35a26f(0x141)]===_0x35a26f(0x19e)?_0x3fe659[_0x35a26f(0x12e)][_0x35a26f(0x141)]():_0x3fe659['options']['endpointNode'],'endpoint':typeof _0x3fe659[_0x35a26f(0x12e)]['endpoint']===_0x35a26f(0x19e)?_0x3fe659[_0x35a26f(0x12e)][_0x35a26f(0x15d)]():_0x3fe659['options']['endpoint']};_0x14f50b(_0x5e9ef6,_0x3fe659[_0x35a26f(0x17a)],_0x3fe659[_0x35a26f(0x125)]);},'_create'(){const _0x118fef=_0x14f86e,_0x2065e4=this;function _0x2e0d62(_0x3d2f1d,_0x2dac26,_0x14aafd){return _0x45c2b0(this,void 0x0,void 0x0,function*(){const _0x102051=_0x43bf;if(_0x3d2f1d[_0x102051(0x14b)](_0x102051(0x1a9))){console[_0x102051(0x1a7)]('already\x20fetched');return;}if(_0x3d2f1d[_0x102051(0x14b)](_0x102051(0x167))){console[_0x102051(0x1a7)](_0x102051(0x13b));return;}_0x3d2f1d[_0x102051(0x12c)](_0x102051(0x167)),_0x3d2f1d[_0x102051(0x132)](_0x102051(0x136));try{_0x3d2f1d[_0x102051(0x184)]('ul')[_0x102051(0x19c)]();const {references:_0x490f81}=yield _0x2dac26(_0x3d2f1d,_0x14aafd);for(const _0x4fe034 of _0x490f81){if(_0x2065e4[_0x102051(0x12e)][_0x102051(0x148)]&&!_0x2065e4[_0x102051(0x12e)][_0x102051(0x148)](_0x4fe034))continue;const _0x464531=_0x50a9c1(_0x4fe034);_0x3d2f1d[_0x102051(0x184)]('ul')[_0x102051(0x132)](_0x464531);}_0x3d2f1d[_0x102051(0x12c)]('fetched');}catch(_0x456ec4){_0x3d2f1d[_0x102051(0x184)]('ul')['append'](_0x102051(0x154)+_0x456ec4[_0x102051(0x161)]+_0x102051(0x1c7)),console[_0x102051(0x1a7)](_0x102051(0x1e0),_0x456ec4);}_0x3d2f1d['find']('.spinner')[_0x102051(0x18b)](),_0x3d2f1d[_0x102051(0x1ae)](_0x102051(0x167));});}_0x2065e4[_0x118fef(0x17a)]=this[_0x118fef(0x1cb)],_0x2065e4[_0x118fef(0x1b8)]=$(_0x118fef(0x121)),_0x2065e4['$combo'][_0x118fef(0x12c)]('sterfive-combo-box'),this['element']['replaceWith'](_0x2065e4[_0x118fef(0x1b8)]),_0x2065e4['$inputGroup']=$(_0x118fef(0x121))[_0x118fef(0x12c)]('input-group'),_0x2065e4[_0x118fef(0x1b8)][_0x118fef(0x132)](_0x2065e4[_0x118fef(0x15b)]),_0x2065e4[_0x118fef(0x15b)]['append'](_0x2065e4['$input']),_0x2065e4[_0x118fef(0x1c2)]=$(_0x118fef(0x1b2)),_0x2065e4[_0x118fef(0x15b)]['append'](_0x2065e4[_0x118fef(0x1c2)]),_0x2065e4['$toggleTreeBtn']['on'](_0x118fef(0x1c9),function(){const _0x5787c8=_0x118fef;!_0x2065e4[_0x5787c8(0x171)]['is'](_0x5787c8(0x16f))&&(_0x2065e4[_0x5787c8(0x172)]()[_0x5787c8(0x1d6)](_0x2f9a77=>{const _0x4931d1=_0x5787c8;var _0x542816;(_0x2f9a77!==_0x2065e4[_0x4931d1(0x195)]||((_0x542816=_0x2065e4['currentParent'])===null||_0x542816===void 0x0?void 0x0:_0x542816[_0x4931d1(0x129)])!==_0x2f9a77[_0x4931d1(0x129)])&&_0x2065e4[_0x4931d1(0x14d)]();}),_0x2065e4[_0x5787c8(0x125)][_0x5787c8(0x1c5)]()),_0x2065e4[_0x5787c8(0x171)][_0x5787c8(0x178)]();}),_0x2065e4['$verifyBtn']=$('<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>'),_0x2065e4[_0x118fef(0x15b)]['append'](_0x2065e4[_0x118fef(0x189)]),_0x2065e4[_0x118fef(0x189)]['on']('click',()=>{const _0x477145=_0x118fef;this[_0x477145(0x1c3)]();}),!_0x2065e4[_0x118fef(0x17a)]['attr'](_0x118fef(0x152))&&_0x2065e4[_0x118fef(0x17a)][_0x118fef(0x1d8)](_0x118fef(0x152),_0x118fef(0x162)),_0x2065e4[_0x118fef(0x125)]=$(_0x118fef(0x177)),_0x2065e4[_0x118fef(0x125)][_0x118fef(0x1c5)](),{'baseUrl':_0x2065e4['options'][_0x118fef(0x139)],'endpointNode':typeof _0x2065e4[_0x118fef(0x12e)]['endpointNode']===_0x118fef(0x19e)?_0x2065e4['options'][_0x118fef(0x141)]():_0x2065e4[_0x118fef(0x12e)][_0x118fef(0x141)],'endpoint':typeof _0x2065e4[_0x118fef(0x12e)][_0x118fef(0x15d)]===_0x118fef(0x19e)?_0x2065e4[_0x118fef(0x12e)][_0x118fef(0x15d)]():_0x2065e4[_0x118fef(0x12e)]['endpoint']},_0x2065e4[_0x118fef(0x171)]=$('<div/>')[_0x118fef(0x12c)]('sterfive-dropdown')[_0x118fef(0x1c5)](),_0x2065e4[_0x118fef(0x1b8)][_0x118fef(0x132)](_0x2065e4[_0x118fef(0x125)]),_0x2065e4[_0x118fef(0x1b8)][_0x118fef(0x132)](_0x2065e4[_0x118fef(0x171)]),_0x2065e4[_0x118fef(0x122)]=$('<ul\x20class=\x22sterfive-tree\x22></ul>')[_0x118fef(0x1c4)](_0x2065e4[_0x118fef(0x171)]),this['reset'](),_0x2065e4[_0x118fef(0x122)]['on'](_0x118fef(0x1c9),'li',function(_0xc4bcf5){const _0x2539eb=_0x118fef;var _0x451cea,_0x4948ae;_0xc4bcf5[_0x2539eb(0x12b)]();let _0x396929=$(this);const _0x54a790=0x14,_0x267821=0x14,_0x25946b=$(this)[_0x2539eb(0x193)](),_0x724046=_0xc4bcf5;if(_0x724046['pageX']>=_0x25946b[_0x2539eb(0x1d1)]&&_0x724046['pageX']<=_0x25946b[_0x2539eb(0x1d1)]+_0x54a790&&_0x724046[_0x2539eb(0x151)]>=_0x25946b[_0x2539eb(0x18d)]&&_0x724046['pageY']<=_0x25946b[_0x2539eb(0x18d)]+_0x267821){if(_0x396929[_0x2539eb(0x14b)](_0x2539eb(0x1a3))){if(_0x396929[_0x2539eb(0x14b)](_0x2539eb(0x1a9))){_0x396929[_0x2539eb(0x1ae)]('expandable')[_0x2539eb(0x12c)](_0x2539eb(0x127)),_0x396929[_0x2539eb(0x184)]('ul')['toggle']();return;}const _0x2a3dfc={'baseUrl':_0x2065e4[_0x2539eb(0x12e)][_0x2539eb(0x139)],'endpointNode':typeof _0x2065e4[_0x2539eb(0x12e)][_0x2539eb(0x141)]===_0x2539eb(0x19e)?_0x2065e4[_0x2539eb(0x12e)][_0x2539eb(0x141)]():_0x2065e4[_0x2539eb(0x12e)][_0x2539eb(0x141)],'endpoint':typeof _0x2065e4[_0x2539eb(0x12e)][_0x2539eb(0x15d)]===_0x2539eb(0x19e)?_0x2065e4[_0x2539eb(0x12e)]['endpoint']():_0x2065e4[_0x2539eb(0x12e)][_0x2539eb(0x15d)]},_0xfadd0d=!_0x2065e4[_0x2539eb(0x12e)][_0x2539eb(0x170)]?_0xdc42a5:_0x23035f;_0x2e0d62(_0x396929,_0xfadd0d,_0x2a3dfc)[_0x2539eb(0x1d6)](()=>{const _0x4ed012=_0x2539eb;console[_0x4ed012(0x1a7)](_0x4ed012(0x16d)),console[_0x4ed012(0x1a7)](_0x4ed012(0x1a9)),_0x396929['removeClass'](_0x4ed012(0x1a3))[_0x4ed012(0x12c)](_0x4ed012(0x127));})['catch'](_0x2586e0=>{const _0x593f60=_0x2539eb;_0x396929[_0x593f60(0x1ae)](_0x593f60(0x1a3))[_0x593f60(0x12c)](_0x593f60(0x127)),console[_0x593f60(0x1a7)](_0x593f60(0x173),_0x2586e0);});}else{if(_0x396929[_0x2539eb(0x14b)](_0x2539eb(0x127)))_0x396929[_0x2539eb(0x184)]('ul')[_0x2539eb(0x178)](),_0x396929[_0x2539eb(0x163)](_0x2539eb(0x196));else{if(_0x396929['children']('ul')[_0x2539eb(0x184)]()[_0x2539eb(0x153)]>0x0)_0x396929[_0x2539eb(0x184)]('ul')['toggle'](),_0x396929['toggleClass'](_0x2539eb(0x196));else;}}}else{const _0x542978=_0x396929[_0x2539eb(0x159)](_0x2539eb(0x117)),_0x49791d=_0x396929[_0x2539eb(0x159)](_0x2539eb(0x16b));if(_0x2065e4[_0x2539eb(0x12e)][_0x2539eb(0x18c)]&&!_0x2065e4[_0x2539eb(0x12e)]['isSelectable'](_0x49791d))return;_0x2065e4['$input'][_0x2539eb(0x159)](_0x2539eb(0x16b),_0x49791d);const _0x13b5de=((_0x451cea=_0x49791d['displayName'])===null||_0x451cea===void 0x0?void 0x0:_0x451cea[_0x2539eb(0x1b4)])||((_0x4948ae=_0x49791d[_0x2539eb(0x13e)])===null||_0x4948ae===void 0x0?void 0x0:_0x4948ae[_0x2539eb(0x133)])||_0x49791d[_0x2539eb(0x129)][_0x2539eb(0x131)](),_0x2f03c0='['+_0x13b5de+']('+_0x542978+')';_0x2065e4[_0x2539eb(0x17a)]['val'](_0x2f03c0),_0x2065e4[_0x2539eb(0x17a)][_0x2539eb(0x1b3)](_0x2539eb(0x1d2)),_0x2065e4[_0x2539eb(0x171)][_0x2539eb(0x1c5)]();}}),$(document)['on'](_0x118fef(0x1c9),function(_0x1290f9){const _0x594fc8=_0x118fef;!$(_0x1290f9[_0x594fc8(0x17c)])['closest'](_0x2065e4[_0x594fc8(0x1b8)])[_0x594fc8(0x153)]&&_0x2065e4[_0x594fc8(0x171)][_0x594fc8(0x1c5)]();});}});},_0xde27b2=()=>{const _0x5c50a1=_0x143b73;$[_0x5c50a1(0x1c6)](_0x5c50a1(0x19f),{'options':{'namesToBits':{},'value':0x0},'_create'(){const _0x51cfe7=_0x5c50a1,_0x417132=this;_0x417132['$input']=this[_0x51cfe7(0x1cb)],_0x417132['$combo']=$('<div/>'),_0x417132['$combo']['addClass'](_0x51cfe7(0x185)),this[_0x51cfe7(0x1cb)][0x0][_0x51cfe7(0x1a2)][_0x51cfe7(0x135)](_0x417132[_0x51cfe7(0x1b8)][0x0],this['element'][0x0]),_0x417132[_0x51cfe7(0x15b)]=$(_0x51cfe7(0x121))['addClass'](_0x51cfe7(0x123)),_0x417132[_0x51cfe7(0x1b8)][_0x51cfe7(0x132)](_0x417132[_0x51cfe7(0x15b)]),_0x417132['$inputGroup'][_0x51cfe7(0x132)](_0x417132[_0x51cfe7(0x17a)]),_0x417132['$toggleTreeBtn']=$(_0x51cfe7(0x1aa)),_0x417132['$inputGroup'][_0x51cfe7(0x132)](_0x417132['$toggleTreeBtn']),_0x417132[_0x51cfe7(0x1c2)]['on']('click',function(){const _0x5951cc=_0x51cfe7;_0x417132[_0x5951cc(0x171)]['toggle'](),_0x417132[_0x5951cc(0x171)]['is'](':visible')&&(_0x31f220(),_0x417132[_0x5951cc(0x1b8)][_0x5951cc(0x1a5)](_0x5951cc(0x1ab))[_0x5951cc(0x149)](function(){const _0x4748d1=_0x5951cc;let _0x370364=$(this)[_0x4748d1(0x1b4)]();const _0x231bb6=_0x417132['options']['namesToBits'][_0x370364];if(_0x231bb6===undefined)throw new Error('Unknown\x20bit\x20name');(_0x417132[_0x4748d1(0x12e)][_0x4748d1(0x117)]&_0x231bb6)===_0x231bb6?$(this)[_0x4748d1(0x12c)](_0x4748d1(0x160)):$(this)[_0x4748d1(0x1ae)](_0x4748d1(0x160));}),_0x417132[_0x5951cc(0x16e)]());}),_0x417132[_0x51cfe7(0x171)]=$(_0x51cfe7(0x16c))[_0x51cfe7(0x1c5)]()[_0x51cfe7(0x11c)](this[_0x51cfe7(0x1cb)]),$[_0x51cfe7(0x149)](this[_0x51cfe7(0x12e)][_0x51cfe7(0x165)],function(_0xca34dd){const _0x3e770e=_0x51cfe7,_0x52c592=$(_0x3e770e(0x144)+_0xca34dd+'\x22>'+_0x3e770e(0x1de)+_0xca34dd+_0x3e770e(0x19b));_0x417132['$dropdown'][_0x3e770e(0x132)](_0x52c592);}),_0x417132[_0x51cfe7(0x171)]['on'](_0x51cfe7(0x1c9),'.custom-option',function(){const _0x416d2d=_0x51cfe7;$(this)['toggleClass']('selected');const _0x56116c=$(this)[_0x416d2d(0x159)](_0x416d2d(0x117));$(this)[_0x416d2d(0x14b)](_0x416d2d(0x160))?_0x51c70f(_0x56116c):_0x404dad(_0x56116c),_0x417132['updateValue']();}),_0x417132[_0x51cfe7(0x1b8)]['append'](_0x417132[_0x51cfe7(0x171)]);const _0x31f220=()=>{const _0x492855=_0x51cfe7,_0x7122ae=this[_0x492855(0x1cb)][_0x492855(0x134)]();_0x417132['options'][_0x492855(0x117)]=_0x3aa52b(_0x417132[_0x492855(0x12e)][_0x492855(0x165)],_0x7122ae);},_0x51c70f=_0x43fee6=>{const _0x5f01ca=_0x51cfe7,_0x59947b=_0x417132[_0x5f01ca(0x12e)][_0x5f01ca(0x165)][_0x43fee6];if(_0x59947b===undefined)throw new Error(_0x5f01ca(0x138));this[_0x5f01ca(0x12e)][_0x5f01ca(0x117)]|=_0x59947b;},_0x404dad=_0x3b206d=>{const _0x206041=_0x51cfe7,_0x56dda5=_0x417132[_0x206041(0x12e)][_0x206041(0x165)][_0x3b206d];if(_0x56dda5===undefined)throw new Error('Unknown\x20bit\x20name');this['options'][_0x206041(0x117)]&=~_0x56dda5,this[_0x206041(0x1cb)][_0x206041(0x134)](_0x21e652(_0x417132[_0x206041(0x12e)][_0x206041(0x165)],this['options']['value']));};_0x31f220();},'updateValue'(){const _0x477a50=_0x5c50a1,_0x4fbcd5=this;this['element'][_0x477a50(0x134)](_0x21e652(_0x4fbcd5[_0x477a50(0x12e)][_0x477a50(0x165)],this['options'][_0x477a50(0x117)]));},'_destroy'(){const _0xe4d022=this;_0xe4d022['$dropdown']['remove']();}});},_0xd01b47=()=>{const _0x18de94=_0x143b73,_0x272117=$(_0x18de94(0x168)),_0x59bd65=_0x272117[_0x18de94(0x134)](),_0x4a3171=RED[_0x18de94(0x176)]['node'](_0x59bd65);if(!_0x4a3171)return undefined;const {endpoint:_0x2ebe3,securityMode:_0x1c67f5,securityPolicy:_0x4fbbcb,userIdentityType:_0x4a5983,credentials:_0x10be17}=_0x4a3171,_0xda7236={'endpoint':_0x2ebe3,'securityMode':_0x1c67f5,'securityPolicy':_0x4fbbcb,'userIdentityType':_0x4a5983,'credentials':_0x10be17};return console[_0x18de94(0x1a7)](_0x18de94(0x1bd),_0xda7236),_0xda7236;},_0x4fe522=()=>{return{'endpointNode':_0x137b24};},_0x137b24=()=>{const _0x2480ae=_0x143b73,_0x4f9f70=$(_0x2480ae(0x168)),_0x54c17a=_0x4f9f70[_0x2480ae(0x134)](),_0x24d3f7=_0xd01b47();if(!_0x24d3f7)return undefined;return{'id':_0x54c17a};};RED[_0x143b73(0x176)]['registerType'](_0x143b73(0x14e),{'category':_0x143b73(0x18e),'color':'#C0DEED','align':_0x143b73(0x198),'icon':_0x143b73(0x1d9),'paletteLabel':_0x143b73(0x1cc),'defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':_0x143b73(0x1ce)},'nodeId':{'value':'','required':![]},'referenceTypeId':{'value':'HasChild','required':![]},'includeSubtypes':{'value':![],'required':!![]},'browseDirection':{'value':_0x143b73(0x1d5),'required':!![]},'nodeClassMask':{'value':_0x143b73(0x147),'required':![]},'resultMask':{'value':'ReferenceType\x20|\x20BrowseName\x20|\x20TypeDefinition\x20|\x20DisplayName\x20|\x20NodeClass\x20|\x20IsForward','required':![]}},'outputs':0x1,'label'(){const _0x590401=_0x143b73;return this[_0x590401(0x133)]||'OPCUA\x20Browse';},'labelStyle'(){const _0x538245=_0x143b73;return this['name']?_0x538245(0x181):'';},'oneditprepare'(){const _0x2aad0f=_0x143b73,_0x195d76=this;_0x4f7d67(),_0xde27b2(),_0x195d76[_0x2aad0f(0x1ac)]=0x1;const _0x40e0ba=$(_0x2aad0f(0x1c1));_0x40e0ba[_0x2aad0f(0x197)]({'namesToBits':{'Object':0x1,'Variable':0x2,'Method':0x4,'ObjectType':0x8,'VariableType':0x10,'ReferenceType':0x20,'DataType':0x40,'View':0x80},'value':0x0});const _0x210012=$(_0x2aad0f(0x1b1));_0x210012['flagEditor']({'namesToBits':{'ReferenceType':0x1,'IsForward':0x2,'NodeClass':0x4,'BrowseName':0x8,'DisplayName':0x10,'TypeDefinition':0x20},'value':0x3f});const _0x2ba63c=$('#node-input-nodeId');_0x2ba63c[_0x2aad0f(0x1be)](Object[_0x2aad0f(0x13f)](Object['assign']({},_0x4fe522()),{'isSelectable'(_0x35d3cb){const _0x34dde2=_0x2aad0f;return _0x35d3cb[_0x34dde2(0x155)]===_0x34dde2(0x11f)||_0x35d3cb['nodeClass']===_0x34dde2(0x1db);}}));const _0x44b0ef={'nodeId':_0x2aad0f(0x12f),'referenceTypeId':'','browseName':{'namespaceIndex':0x0,'name':_0x2aad0f(0x145)},'displayName':{'text':_0x2aad0f(0x145)},'nodeClass':'ReferenceType','typeDefinition':'i=31'},_0xe77a45=$(_0x2aad0f(0x199));_0xe77a45[_0x2aad0f(0x1be)](Object[_0x2aad0f(0x13f)](Object[_0x2aad0f(0x13f)]({},_0x4fe522()),{'parentNode':()=>_0x44b0ef,'isSelectable'(_0x5edfbf){const _0x1ea0a9=_0x2aad0f;return _0x5edfbf[_0x1ea0a9(0x155)]===_0x1ea0a9(0x183);},'isTypeRef':!![]}));},'oneditsave'(){}});}()));
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHg0NWMyYjAiLCJfMHgyNmRlYzUiLCJfMHg0YWUzNjciLCJfMHgyYjlmY2EiLCJfMHg1OWRkZmMiLCJfMHg0ODRkNWUiLCJfMHg0YjViOWQiLCJfMHg0ODVkNWMiLCJQcm9taXNlIiwiXzB4MzcwNmJlIiwiXzB4MzQ4ZjE3IiwiXzB4NTc4MTQyIiwiXzB4MmJlNzllIiwiXzB4MjI1ZWFjIiwiXzB4MmEyOTkzIiwiXzB4NzQzYzYwIiwiXzB4MjMzMzA2IiwiXzB4ODIxZWJhIiwiXzB4MTg0MGFlIiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4MmYwNDFkIiwiXzB4NDY2NGMzIiwiXzB4MTAzMTU0IiwiXzB4MTg0MjY5IiwiRXJyb3IiLCJfMHg0Y2M2OGYiLCJfMHgxZDliM2QiLCJfMHgyYzE0Y2EiLCJfMHhmMWUzNTUiLCJfMHg0MDAwYjkiLCJfMHg0ZDRlNmIiLCJfMHg0NTEyNzMiLCJfMHgyMzQ0ODAiLCJfMHgyMjExZjYiLCJfMHg0ZTY5MWUiLCJfMHg0N2QxMWYiLCJfMHgxNTljNzIiLCJfMHgzZTA0MjQiLCJfMHgzYWE1MmIiLCJfMHhlZmI2NDIiLCJfMHg0MjlmODIiLCJfMHg0N2RkM2MiLCJwYXJzZUludCIsImlzTmFOIiwiXzB4MjY3NDE5IiwiXzB4MzNkNmEyIiwiXzB4MWU4M2JmIiwiXzB4YjZmYWU3IiwiXzB4MjFlNjUyIiwiXzB4M2JiYmE4IiwiXzB4NDFlMWIxIiwiXzB4NGRkNGJhIiwiXzB4NWQxZTRkIiwiXzB4M2NjZjRhIiwiT2JqZWN0IiwiXzB4M2FiMDQwIiwiXzB4M2M5YmNhIiwiXzB4NDU2NmUyIiwiXzB4N2YxYjQ4IiwiXzB4MzExMjBhIiwiXzB4OWQ2YWM1IiwiXzB4NDBmM2U4IiwiZW5kcG9pbnROb2RlIiwiXzB4NTE2NGM4IiwiZW5kcG9pbnQiLCJfMHg2MjUzM2UiLCJiYXNlVXJsIiwiXzB4NTBlOGU3IiwiXzB4Mzk1ZDZmIiwiXzB4Zjg3MzAxIiwiXzB4MjgyZjc4IiwiXzB4NDhmY2IxIiwiXzB4NWE0NzBhIiwiXzB4MmU4YjFiIiwiZmV0Y2giLCJKU09OIiwiY29uc29sZSIsIl8weDU0NDhkMyIsIl8weDNjZmJjNiIsIl8weDFhYTgyMCIsIl8weDEyOGQxNSIsIl8weDE0ZjUwYiIsIl8weDQ5NmRhOCIsIl8weDEyOTI5NyIsIl8weDRkZWQwNCIsIl8weDlkOWI1YSIsIl8weDMzZWFjMCIsIl8weDMxMTA1NiIsIl8weDM5ZWE0OSIsIl8weDM2MDRkNSIsIl8weDM0ZWFlMSIsIl8weDcyYThlOCIsIl8weDJjZmEwNCIsInNldFRpbWVvdXQiLCJfMHg0NjYzODAiLCJfMHhkYzQyYTUiLCJfMHg0ODQwZjAiLCJfMHgxNzI3NDciLCJfMHgxMGNjOWYiLCJfMHg0MDYyZmQiLCJfMHg1MTcyNWIiLCJfMHgzMDBiMGEiLCJfMHgyMzAzNWYiLCJfMHgyNzdmMGYiLCJfMHg0OGExYjQiLCJfMHgzNjI4YjUiLCJfMHgzNThmY2MiLCJfMHg1MGE5YzEiLCJfMHhmNzYwYjEiLCJfMHg0MjRmMjAiLCJfMHg1MDk3MGQiLCJfMHgzNTg1ZTAiLCIkIiwiXzB4ZmFjYTA4IiwiXzB4M2NhMmU0IiwiaWNvbiIsIl8weDJlOGU1OSIsImNvbG9yIiwiXzB4MTMyZGE2IiwiXzB4NWFkOGJlIiwiXzB4NGY3ZDY3IiwidW5kZWZpbmVkIiwiXzB4MjZjMmU4IiwiXzB4MzE2NjI4IiwiXzB4MzVlMzgzIiwiXzB4NGJkN2I0IiwiXzB4YjA4YTZlIiwiXzB4M2ZlNjU5IiwiXzB4NWU5ZWY2IiwiXzB4MjA2NWU0IiwiXzB4MmUwZDYyIiwiXzB4M2QyZjFkIiwiXzB4MmRhYzI2IiwiXzB4MTRhYWZkIiwicmVmZXJlbmNlcyIsIl8weDQ5MGY4MSIsIl8weDRmZTAzNCIsIl8weDQ2NDUzMSIsIl8weDQ1NmVjNCIsIl8weDJmOWE3NyIsIl8weDU0MjgxNiIsIl8weGM0YmNmNSIsIl8weDQ1MWNlYSIsIl8weDQ5NDhhZSIsIl8weDM5NjkyOSIsIl8weDU0YTc5MCIsIl8weDI2NzgyMSIsIl8weDI1OTQ2YiIsIl8weDcyNDA0NiIsIl8weDJhM2RmYyIsIl8weGZhZGQwZCIsIl8weDI1ODZlMCIsIl8weDU0Mjk3OCIsIl8weDQ5NzkxZCIsIl8weDEzYjVkZSIsIl8weDJmMDNjMCIsImRvY3VtZW50IiwiXzB4MTI5MGY5IiwiXzB4ZGUyN2IyIiwiXzB4NDE3MTMyIiwiXzB4MzFmMjIwIiwiXzB4MzcwMzY0IiwiXzB4MjMxYmI2IiwiXzB4Y2EzNGRkIiwiXzB4NTJjNTkyIiwiXzB4NTYxMTZjIiwiXzB4NTFjNzBmIiwiXzB4NDA0ZGFkIiwiXzB4NzEyMmFlIiwiXzB4NDNmZWU2IiwiXzB4NTk5NDdiIiwiXzB4M2IyMDZkIiwiXzB4NTZkZGE1IiwiXzB4NGZiY2Q1IiwiXzB4ZTRkMDIyIiwiXzB4ZDAxYjQ3IiwiXzB4MjcyMTE3IiwiXzB4NTliZDY1IiwiXzB4NGEzMTcxIiwiUkVEIiwiXzB4MmViZTMiLCJzZWN1cml0eU1vZGUiLCJfMHgxYzY3ZjUiLCJzZWN1cml0eVBvbGljeSIsIl8weDRmYmJjYiIsInVzZXJJZGVudGl0eVR5cGUiLCJfMHg0YTU5ODMiLCJjcmVkZW50aWFscyIsIl8weDEwYmUxNyIsIl8weGRhNzIzNiIsIl8weDRmZTUyMiIsIl8weDEzN2IyNCIsIl8weDRmOWY3MCIsIl8weDU0YzE3YSIsIl8weDI0ZDNmNyIsIl8weDE5NWQ3NiIsIl8weDQwZTBiYSIsIl8weDIxMDAxMiIsIl8weDJiYTYzYyIsIl8weDM1ZDNjYiIsIl8weDQ0YjBlZiIsIl8weGU3N2E0NSIsIl8weDVlZGZiZiJdLCJtYXBwaW5ncyI6InkySEFBQSxDQUFDLFUsQ0FDRyxhLHdCQW1CQSxTQUFTQSxTQUFULENBQW1CQyxTQUFuQixDQUE0QkMsU0FBNUIsQ0FBd0NDLFNBQXhDLENBQTJDQyxTQUEzQyxDLENBQ0ksU0FBU0MsU0FBVCxDQUFlQyxTQUFmLEMsUUFBK0JBLFNBQUEsWUFBaUJILFNBQWpCLENBQXFCRyxTQUFyQixDQUE2QixJQUFJSCxTQUFKLENBQU0sU0FBVUksU0FBVixDLENBQXFCQSxTQUFBLENBQVFELFNBQVIsQyxFQUEzQixDLFNB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TUMsU0FBQSxDQUFxQixDLFFBQ3ZCLEMsZ0JBRHVCLEMsaUJBRXZCLEMsRUFGdUIsQyxZQUd2QixDQUFZLEMsZ0JBQUUsQyxHQUFGLEMsTUFBcUIsQyxnQkFBckIsQ0FIVyxDLGFBSXZCLENBQWEsQyxNQUFFLEMsZ0JBQUYsQ0FKVSxDLFdBS3ZCLEMsZUFMdUIsQyxnQkFNdkIsQyxNQU51QixDQUEzQixDQVFNQyxTQUFBLENBQW1CekYsQ0FBQSxDLGdCQUFBLENBUnpCLENBU0F5RixTQUFBLEMsZ0JBQUEsRUFBNkJuSixNQUFBLEMsZ0JBQUEsRUFBY0EsTUFBQSxDLGdCQUFBLEVBQWMsRUFBZCxDQUFrQndJLFNBQUEsRUFBbEIsQ0FBZCxDQUFpRSxDLFlBQUUsQ0FBWSxJQUFNVSxTQUFwQixDLGNBQzFGLENBQWFFLFNBQWIsQyxrQ0FDV0EsU0FBQSxDLGdCQUFBLEksa0JBRitFLEMsV0FHdkYsQyxJQUh1RixDQUFqRSxDQUE3QixDLEVBdkV1QyxDLFlBNEUzQyxFLEVBNUUyQyxDQUEvQyxDLEVBNW5CSixHIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uICgpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAgICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuXHJcbiAgICBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcclxuICAgIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcbiAgICBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXHJcbiAgICBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFlcclxuICAgIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuICAgIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxyXG4gICAgTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1JcclxuICAgIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuICAgIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXHJcbiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xyXG4gICAgLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UsIFN1cHByZXNzZWRFcnJvciwgU3ltYm9sICovXHJcblxyXG5cclxuICAgIGZ1bmN0aW9uIF9fYXdhaXRlcih0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcclxuICAgICAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cclxuICAgICAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHR5cGVvZiBTdXBwcmVzc2VkRXJyb3IgPT09IFwiZnVuY3Rpb25cIiA/IFN1cHByZXNzZWRFcnJvciA6IGZ1bmN0aW9uIChlcnJvciwgc3VwcHJlc3NlZCwgbWVzc2FnZSkge1xyXG4gICAgICAgIHZhciBlID0gbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gICAgICAgIHJldHVybiBlLm5hbWUgPSBcIlN1cHByZXNzZWRFcnJvclwiLCBlLmVycm9yID0gZXJyb3IsIGUuc3VwcHJlc3NlZCA9IHN1cHByZXNzZWQsIGU7XHJcbiAgICB9O1xuXG4gICAgY29uc3QgT3JnYW5pemVzUmVmTm9kZUlkID0gXCJucz0wO2k9MzVcIjtcbiAgICBjb25zdCBGb2xkZXJUeXBlID0gXCJucz0wO2k9NjFcIjtcbiAgICBjb25zdCBIYXNDb21wb25lbnRSZWZOb2RlSWQgPSBcIm5zPTA7aT00N1wiO1xuICAgIGNvbnN0IEhhc1Byb3BlcnR5UmVmTm9kZUlkID0gXCJucz0wO2k9NDZcIjtcbiAgICBjb25zdCBIYXNDaGlsZFJlZk5vZGVJZCA9IFwibnM9MDtpPTM0XCI7XG4gICAgY29uc3QgSGFzU3VidHlwZVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ1XCI7XG4gICAgY29uc3QgSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQgPSBcIm5zPTA7aT00MFwiO1xuXG4gICAgdmFyIEJyb3dzZURpcmVjdGlvbjtcbiAgICAoZnVuY3Rpb24gKEJyb3dzZURpcmVjdGlvbikge1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiRm9yd2FyZFwiXSA9IDBdID0gXCJGb3J3YXJkXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJJbnZlcnNlXCJdID0gMV0gPSBcIkludmVyc2VcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkJvdGhcIl0gPSAyXSA9IFwiQm90aFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52YWxpZFwiXSA9IDNdID0gXCJJbnZhbGlkXCI7XG4gICAgfSkoQnJvd3NlRGlyZWN0aW9uIHx8IChCcm93c2VEaXJlY3Rpb24gPSB7fSkpO1xuICAgIHZhciBOb2RlQ2xhc3M7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3MpIHtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlVuc3BlY2lmaWVkXCJdID0gMF0gPSBcIlVuc3BlY2lmaWVkXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJPYmplY3RcIl0gPSAxXSA9IFwiT2JqZWN0XCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0VHlwZVwiXSA9IDhdID0gXCJPYmplY3RUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiRGF0YVR5cGVcIl0gPSA2NF0gPSBcIkRhdGFUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzcyB8fCAoTm9kZUNsYXNzID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzTWFzaztcbiAgICAoZnVuY3Rpb24gKE5vZGVDbGFzc01hc2spIHtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJNZXRob2RcIl0gPSA0XSA9IFwiTWV0aG9kXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMzJdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzc01hc2sgfHwgKE5vZGVDbGFzc01hc2sgPSB7fSkpO1xuICAgIGZ1bmN0aW9uIGNvZXJjZUZsYWdNYXNrVG9OdW1iZXIodHlwZSwgc3RyKSB7XG4gICAgICAgIGlmICh0eXBlb2Ygc3RyID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN0ckFzTnVtID0gcGFyc2VJbnQoc3RyLCAxMCk7XG4gICAgICAgIGlmICghaXNOYU4oc3RyQXNOdW0pKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyQXNOdW07XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZmxhZ3MgPSBzdHIuc3BsaXQoL1xcfHw7fCwvKS5tYXAoKGEpID0+IGEudHJpbSgpKTtcbiAgICAgICAgbGV0IHJlc3VsdCA9IDA7XG4gICAgICAgIGZvciAoY29uc3QgZmxhZyBvZiBmbGFncykge1xuICAgICAgICAgICAgcmVzdWx0IHw9IHR5cGVbZmxhZ107XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgZnVuY3Rpb24gY29lcmNlRmxhZ01hc2tUb1N0cmluZyh0eXBlLCB2YWx1ZSkge1xuICAgICAgICB2YWx1ZSA9IGNvZXJjZUZsYWdNYXNrVG9OdW1iZXIodHlwZSwgdmFsdWUpO1xuICAgICAgICBjb25zdCByID0gW107XG4gICAgICAgIGlmICghdHlwZSlcbiAgICAgICAgICAgIHJldHVybiByLmpvaW4oXCIgfCBcIik7XG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgYml0TWFza10gb2YgT2JqZWN0LmVudHJpZXModHlwZSkpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgICAgICBpZiAoKHZhbHVlICYgYml0TWFzaykgPT09IGJpdE1hc2spIHtcbiAgICAgICAgICAgICAgICAgICAgci5wdXNoKGtleSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByLmpvaW4oXCIgfCBcIik7XG4gICAgfVxuICAgIHZhciBSZXN1bHRNYXNrO1xuICAgIChmdW5jdGlvbiAoUmVzdWx0TWFzaykge1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMV0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiSXNGb3J3YXJkXCJdID0gMl0gPSBcIklzRm9yd2FyZFwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJOb2RlQ2xhc3NcIl0gPSA0XSA9IFwiTm9kZUNsYXNzXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIkJyb3dzZU5hbWVcIl0gPSA4XSA9IFwiQnJvd3NlTmFtZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJEaXNwbGF5TmFtZVwiXSA9IDE2XSA9IFwiRGlzcGxheU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiVHlwZURlZmluaXRpb25cIl0gPSAzMl0gPSBcIlR5cGVEZWZpbml0aW9uXCI7XG4gICAgfSkoUmVzdWx0TWFzayB8fCAoUmVzdWx0TWFzayA9IHt9KSk7XG4gICAgLy8gIGNvbnN0IHEgPSBSZWZlcmVuY2VUeXBlSWRzLk9yZ2FuaXplcztcbiAgICBmdW5jdGlvbiByZXNvbHZlTm9kZUlkKG5vZGVJZExpa2UpIHtcbiAgICAgICAgc3dpdGNoIChub2RlSWRMaWtlKSB7XG4gICAgICAgICAgICBjYXNlIFwiT3JnYW5pemVzXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIE9yZ2FuaXplc1JlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNQcm9wZXJ0eVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNQcm9wZXJ0eVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDb21wb25lbnRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzQ29tcG9uZW50UmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc0NoaWxkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NoaWxkUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1N1YnR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzU3VidHlwZVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNUeXBlRGVmaW5pdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNUeXBlRGVmaW5pdGlvblJlZk5vZGVJZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGdldEljb24gPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHN3aXRjaCAocmVmZXJlbmNlLm5vZGVDbGFzcykge1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFwiOlxuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBPcmdhbml6ZXNSZWZOb2RlSWQpIDtcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnR5cGVEZWZpbml0aW9uID09PSBGb2xkZXJUeXBlIHx8IHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IFwiaT02MVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtZm9sZGVyXCIsIGNvbG9yOiBcInJnYmEoNjEsIDYwLCA0LCAwLjUyNSlcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJTZWFHcmVlblwiIH07XG4gICAgICAgICAgICBjYXNlIFwiVmFyaWFibGVcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzQ29tcG9uZW50UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiU3RlZWxCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzUHJvcGVydHlSZWZOb2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJEb2RnZXJCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiQ2FkZXRCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFwiTWV0aG9kXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1jb2dcIiwgY29sb3I6IFwiU2FuZHlCcm93blwiIH07XG4gICAgICAgICAgICBjYXNlIFwiT2JqZWN0VHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiBcIkRhcmtPcmFuZ2VcIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlVHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtc2xpZGVyc1wiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXF1ZXN0aW9uXCIsIGNvbG9yOiBcImdyZXlcIiB9O1xuICAgIH07XG5cbiAgICBjb25zdCBicm93c2UgPSAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIG5vZGVJZCwgdGVtcGxhdGUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vYnJvd3NlYDtcbiAgICAgICAgY29uc3QgYnJvd3NlRGVzY3JpcHRpb24gPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHRlbXBsYXRlKSwgeyBub2RlSWQsIHJlc3VsdE1hc2s6IDYzIH0pO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBicm93c2VEZXNjcmlwdGlvbixcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hpbmcgZmFpbGVkIHdpdGggZXJyb3JcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzOiBbXSB9O1xuICAgICAgICB9XG4gICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hlZCA6IFwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgY29uc3QgcmVmZXJlbmNlcyA9IHJlc3BvbnNlLmJyb3dzZVJlc3VsdC5yZWZlcmVuY2VzIHx8IFtdO1xuICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzIH07XG4gICAgfSk7XG5cbiAgICBjb25zdCB0ZW1wbGF0ZTEgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIkhhc0NoaWxkXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3QgdGVtcGxhdGUyID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJPcmdhbml6ZXNcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCBpbnRlcm5hbFZlcmlmeSA9ICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgJGlucHV0RWxlbWVudCwgJGluZm8pID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3Qgbm9kZUlkID0gJGlucHV0RWxlbWVudC52YWwoKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKGAke3Jvb3R9L2NoZWNrTm9kZUlkYCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBzZXROb3RpZmljYXRpb24gPSAodGV4dCwgY2xhc3NOYW1lKSA9PiB7XG4gICAgICAgICAgICAkaW5mby50ZXh0KHRleHQpLmFkZENsYXNzKFwic3RlcmZpdmUtaW5mb1wiKS5hZGRDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgJGluZm8uc2hvdygpO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgJGluZm8ucmVtb3ZlQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICAgICAkaW5mby5oaWRlKCk7XG4gICAgICAgICAgICB9LCAzMDAwKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QganNvbiA9ICh5aWVsZCBkYXRhLmpzb24oKSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICAvLyBkbyBzb21ldGhpbmc7XG4gICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCIhIWZhaWx1cmUhIVwiICsgbm9kZUlkLCBcImZhaWx1cmVcIik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoanNvbi5zdGF0dXNDb2RlLm1hdGNoKC9Hb29kLykpIHtcbiAgICAgICAgICAgICAgICAvLyBkbyBzb21ldGhpbmdcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChqc29uLm5vZGVBZGRyZXNzU3RyaW5nKTtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKFwiR29vZFwiLCBcIm9rXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC52YWwoYCR7bm9kZUlkfWApO1xuICAgICAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihgJHtqc29uLnN0YXR1c0NvZGV9ICR7ZGF0YS5zdGF0dXNUZXh0fWAsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGZ1bmN0aW9uIGZldGNoQ2hpbGRyZW4oJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTEpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MiA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMik7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZmVyZW5jZXM6IFsuLi5icm93c2VSZXN1bHQxLnJlZmVyZW5jZXMsIC4uLmJyb3dzZVJlc3VsdDIucmVmZXJlbmNlc10sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgdGVtcGxhdGVTVCA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzU3VidHlwZVwiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8IE5vZGVDbGFzcy5PYmplY3RUeXBlIHwgTm9kZUNsYXNzLkRhdGFUeXBlIHwgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBmdW5jdGlvbiBmZXRjaFN1YnR5cGVzKCRub2RlLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlSWQgPSAkbm9kZS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQxID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGVTVCk7XG4gICAgICAgICAgICByZXR1cm4gYnJvd3NlUmVzdWx0MTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IG1ha2VFbGVtZW50ID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBpZiAoIXJlZmVyZW5jZSkge1xuICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGk+PGkgY2xhc3M9XCJmYSBmYS1lcnJvclwiIHN0eWxlPVwiY29sb3I6cmVkO1wiPjwvaT5ubyByZWZlcmVuY2UgITx1bD48L3VsPjwvbGk+YCk7XG4gICAgICAgICAgICByZXR1cm4gJGVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbiA9IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgdCA9ICgoX2EgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSB8fCAoKF9iID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IHsgaWNvbiwgY29sb3IgfSA9IGdldEljb24ocmVmZXJlbmNlKTtcbiAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGk+PGkgY2xhc3M9XCJmYSAke2ljb259XCIgc3R5bGU9XCJjb2xvcjoke2NvbG9yfTtcIj48L2k+ICR7dH08dWw+PC91bD48L2xpPmApO1xuICAgICAgICAkZWxlbWVudC5hZGRDbGFzcyhcImV4cGFuZGFibGVcIik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJ2YWx1ZVwiLCBuKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInJlZmVyZW5jZVwiLCByZWZlcmVuY2UpO1xuICAgICAgICByZXR1cm4gJGVsZW1lbnQ7XG4gICAgfTtcbiAgICBjb25zdCBkZWNsYXJlTm9kZUJyb3dzZXJXaWRnZXQgPSAoKSA9PiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBbIFRlbXBlcmF0dXJlICBdXG4gICAgICAgICAqICAgKCB0b29sdGlwIDogKC9PYmplY3RzL015U2Vuc29yKSAobnM9MTtzPVRlbXBlcmF0dXJlKSlcbiAgICAgICAgICogWyArIFtGb2xkZXJdIE9iamVjdHNdXG4gICAgICAgICAqIFsgICAgIFtPYmplY3RdIE15U2Vuc29yXVxuICAgICAgICAgKiBbICAgICAoICkgW1ZhcmlhYmxlXSBUZW1wZXJhdHVyZV1cbiAgICAgICAgICovXG4gICAgICAgICQud2lkZ2V0KFwic3RlcmZpdmUubm9kZUJyb3dzZXJcIiwge1xuICAgICAgICAgICAgLyogZGVmYXVsdCBvcHRpb25zICovXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiAoKSA9PiAoeyBlbmRwb2ludDogXCJvcGMudGNwOi8vb3BjdWFkZW1vLnN0ZXJmaXZlLmNvbToyNjU0M1wiIH0pLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50OiAoKSA9PiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgcGFyZW50Tm9kZTogKCkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgYnJvd3NlTmFtZTogeyBuYW1lc3BhY2VJbmRleDogMCwgbmFtZTogXCJPYmplY3RzXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgbm9kZUNsYXNzOiBcIk9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICBub2RlSWQ6IFwibnM9MDtpPTg1XCIsXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiB7IHRleHQ6IFwiT2JqZWN0c1wiIH0sXG4gICAgICAgICAgICAgICAgICAgIHR5cGVEZWZpbml0aW9uOiBGb2xkZXJUeXBlLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGZpbHRlcjogKCkgPT4gdHJ1ZSxcbiAgICAgICAgICAgICAgICBiYXNlVXJsOiBcIlwiLFxuICAgICAgICAgICAgICAgIGlzVHlwZVJlZjogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzb2x2ZVBhcmVudE5vZGUoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB0eXBlb2YgdGhhdC5vcHRpb25zLnBhcmVudE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5wYXJlbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGEgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geWllbGQgYTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZXNldCgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNvbHZlUGFyZW50Tm9kZSgpLnRoZW4oKHBhcmVudE5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudChwYXJlbnROb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5hcHBlbmQoJGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LmN1cnJlbnRQYXJlbnQgPSBwYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHZlcmlmeSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGludGVybmFsVmVyaWZ5KGRhdGEsIHRoYXQuJGlucHV0LCB0aGF0LiRpbmZvKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfY3JlYXRlKCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIF9mZXRjaERhdGFGb3JOb2RlKCRub2RlLCBmZXRjaEZ1bmMsIGRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbm9kZS5oYXNDbGFzcyhcImZldGNoZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImFscmVhZHkgZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJG5vZGUuaGFzQ2xhc3MoXCJsb2FkaW5nXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhbHJlYWR5IGxvYWRpbmdcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuYWRkQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuYXBwZW5kKCc8ZGl2IGNsYXNzPVwic3Bpbm5lclwiPjwvZGl2PicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyByZWZlcmVuY2VzIH0gPSB5aWVsZCBmZXRjaEZ1bmMoJG5vZGUsIGRhdGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcmVmZXJlbmNlIG9mIHJlZmVyZW5jZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5maWx0ZXIgJiYgIXRoYXQub3B0aW9ucy5maWx0ZXIocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudChyZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwiZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZChgPGxpPmVycm9yICR7ZXJyLm1lc3NhZ2V9PC9saT5gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVyclwiLCBlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuZmluZChcIi5zcGlubmVyXCIpLnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUucmVtb3ZlQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQgPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8gPSAkKFwiPGRpdi8+XCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFkZENsYXNzKFwic3RlcmZpdmUtY29tYm8tYm94XCIpO1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5yZXBsYWNlV2l0aCh0aGF0LiRjb21ibyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cCA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJpbnB1dC1ncm91cFwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5wdXRHcm91cCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kaW5wdXQpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtc2l0ZW1hcFwiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiR0b2dnbGVUcmVlQnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGRyb3Bkb3duLmlzKFwiOnZpc2libGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRyZWUgd2lkZ2V0IGlzIGdvaW5nIHRvIGJlY29tZSB2aXNpYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LnJlc29sdmVQYXJlbnROb2RlKCkudGhlbigocGFyZW50Tm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyZW50Tm9kZSAhPT0gdGhhdC5jdXJyZW50UGFyZW50IHx8ICgoX2EgPSB0aGF0LmN1cnJlbnRQYXJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5ub2RlSWQpICE9PSBwYXJlbnROb2RlLm5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtZmxhc2tcIj48L2k+PC9idXR0b24+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kdmVyaWZ5QnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmVyaWZ5KCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIsIFwiZW50ZXIgYSBub2RlSWQgb3IgYSBicm93c2VQYXRoIFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mbyA9ICQoYDxkaXYgY2xhc3M9XCJpbmZvLXRleHRcIj48L2Rpdj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgKHtcbiAgICAgICAgICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93biA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJzdGVyZml2ZS1kcm9wZG93blwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGluZm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRkcm9wZG93bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZSA9ICQoYDx1bCBjbGFzcz1cInN0ZXJmaXZlLXRyZWVcIj48L3VsPmApLmFwcGVuZFRvKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlV2lkdGggPSAyMDsgLy8gU2V0IHdpZHRoIG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZUhlaWdodCA9IDIwOyAvLyBTZXQgaGVpZ2h0IG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRQb3MgPSAkKHRoaXMpLm9mZnNldCgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlID0gZXZlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlLnBhZ2VYID49IGVsZW1lbnRQb3MubGVmdCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWCA8PSBlbGVtZW50UG9zLmxlZnQgKyBiZWZvcmVXaWR0aCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA+PSBlbGVtZW50UG9zLnRvcCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA8PSBlbGVtZW50UG9zLnRvcCArIGJlZm9yZUhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGFibGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGxpLmhhc0NsYXNzKFwiZmV0Y2hlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZldGNoIG5ldyBkYXRhIGZvciB0aGlzIG5vZGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlVXJsOiB0aGF0Lm9wdGlvbnMuYmFzZVVybCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRwb2ludDogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50KCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmID0gIXRoYXQub3B0aW9ucy5pc1R5cGVSZWYgPyBmZXRjaENoaWxkcmVuIDogZmV0Y2hTdWJ0eXBlcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZmV0Y2hEYXRhRm9yTm9kZSgkbGksIGYsIGRhdGEpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCIgRmV0Y2hpbmcgZG9uZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtYXJrIGFzIGV4cGFuZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyb3JcIiwgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVG9nZ2xlIGl0cyBleHBhbmRlZC9jb2xsYXBzZWQgc3RhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmNoaWxkcmVuKFwidWxcIikuY2hpbGRyZW4oKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSAkbGkuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVmZXJlbmNlID0gJGxpLmRhdGEoXCJyZWZlcmVuY2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5vcHRpb25zLmlzU2VsZWN0YWJsZSAmJiAhdGhhdC5vcHRpb25zLmlzU2VsZWN0YWJsZShyZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuZGF0YShcInJlZmVyZW5jZVwiLCByZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGlzcGxheU5hbWUgPSAoKF9hID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGV4dCkgfHwgKChfYiA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5wdXQgPSBgWyR7ZGlzcGxheU5hbWV9XSgke3ZhbHVlfSlgO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudmFsKGlucHV0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5vbihcImNsaWNrXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBjbGlja2luZyBvdXRzaWRlIHRoZSBwYWdlIHdpbGwgaGlkZSB0aGUgZHJvcGRvd25cbiAgICAgICAgICAgICAgICAgICAgaWYgKCEkKGV2ZW50LnRhcmdldCkuY2xvc2VzdCh0aGF0LiRjb21ibykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBjb25zdCBkZWNsYXJlRmxhZ0VkaXRvcldpZGdldCA9ICgpID0+IHtcbiAgICAgICAgJC53aWRnZXQoXCJzdGVyZml2ZS5mbGFnRWRpdG9yXCIsIHtcbiAgICAgICAgICAgIC8vIGRlZmF1bHQgb3B0aW9uc1xuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgIG5hbWVzVG9CaXRzOiB7XG4gICAgICAgICAgICAgICAgLy8gQWRkIG1vcmUgbmFtZXMgYW5kIGJpdCB2YWx1ZXNcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHZhbHVlOiAwLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9jcmVhdGUoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgLy8gQ3VzdG9tIERyb3Bkb3duXG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQgPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8gPSAkKFwiPGRpdi8+XCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFkZENsYXNzKFwic3RlcmZpdmUtY29tYm8tYm94XCIpO1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudFswXS5wYXJlbnRFbGVtZW50LnJlcGxhY2VDaGlsZCh0aGF0LiRjb21ib1swXSwgdGhpcy5lbGVtZW50WzBdKTtcbiAgICAgICAgICAgICAgICAvLyB0aGlzLmVsZW1lbnQucmVwbGFjZVdpdGgodGhhdC4kY29tYm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAgPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwiaW5wdXQtZ3JvdXBcIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGlucHV0R3JvdXApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJGlucHV0KTtcbiAgICAgICAgICAgICAgICAvLyB0aGUgdG9nZ2xlIHRyZWUgYnV0dG9uOlxuICAgICAgICAgICAgICAgIC8vICAgd2hlbiB3ZSBjbGljayBpdCB0aGUgZHJvcCBkb3duIHBhbmVsIGlzIGRpc3BsYXllZFxuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtZXllXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJHRvZ2dsZVRyZWVCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4ub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC4kZHJvcGRvd24uaXMoXCI6dmlzaWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhhdC4kc2VsZWN0LmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVGcm9tSW5wdXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmZpbmQoXCIuY3VzdG9tLW9wdGlvblwiKS5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgb3B0aW9uTmFtZSA9ICQodGhpcykudGV4dCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJpdFZhbHVlID0gdGhhdC5vcHRpb25zLm5hbWVzVG9CaXRzW29wdGlvbk5hbWVdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChiaXRWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlVua25vd24gYml0IG5hbWVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgodGhhdC5vcHRpb25zLnZhbHVlICYgYml0VmFsdWUpID09PSBiaXRWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmFkZENsYXNzKFwic2VsZWN0ZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLnJlbW92ZUNsYXNzKFwic2VsZWN0ZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBVcGRhdGUgdGhlIGhpZGRlbiBzZWxlY3QgZWxlbWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC51cGRhdGVWYWx1ZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgLy8gdGhlIGRyb3AgZG93biBwYW5lbFxuICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duID0gJCgnPGRpdiBjbGFzcz1cImN1c3RvbS1zZWxlY3RcIj48L2Rpdj4nKS5oaWRlKCkuaW5zZXJ0QWZ0ZXIodGhpcy5lbGVtZW50KTtcbiAgICAgICAgICAgICAgICAkLmVhY2godGhpcy5vcHRpb25zLm5hbWVzVG9CaXRzLCBmdW5jdGlvbiAobmFtZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCAkb3B0aW9uID0gJCgnPGRpdiBjbGFzcz1cImN1c3RvbS1vcHRpb25cIiBkYXRhLXZhbHVlPVwiJyArXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lICtcbiAgICAgICAgICAgICAgICAgICAgICAgICdcIj4nICtcbiAgICAgICAgICAgICAgICAgICAgICAgICc8c3BhbiBjbGFzcz1cImN1c3RvbS1jaGVja2JveFwiPjwvc3Bhbj4nICtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgK1xuICAgICAgICAgICAgICAgICAgICAgICAgXCI8L2Rpdj5cIik7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmFwcGVuZCgkb3B0aW9uKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAvLyB3aGVuIGEgb3B0aW9ucyBpbiB0aGUgZHJvcCBkb3duIHBhbmVsIGlzIGNsaWNrZWQsXG4gICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24ub24oXCJjbGlja1wiLCBcIi5jdXN0b20tb3B0aW9uXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS50b2dnbGVDbGFzcyhcInNlbGVjdGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9ICQodGhpcykuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoJCh0aGlzKS5oYXNDbGFzcyhcInNlbGVjdGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRCaXQodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdW5zZXRCaXQodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoYXQudXBkYXRlVmFsdWUoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kZHJvcGRvd24pO1xuICAgICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZUZyb21JbnB1dCA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmVsZW1lbnQudmFsKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQub3B0aW9ucy52YWx1ZSA9IGNvZXJjZUZsYWdNYXNrVG9OdW1iZXIodGhhdC5vcHRpb25zLm5hbWVzVG9CaXRzLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjb25zdCBzZXRCaXQgPSAoYml0TmFtZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiaXQgPSB0aGF0Lm9wdGlvbnMubmFtZXNUb0JpdHNbYml0TmFtZV07XG4gICAgICAgICAgICAgICAgICAgIGlmIChiaXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5rbm93biBiaXQgbmFtZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMudmFsdWUgfD0gYml0O1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY29uc3QgdW5zZXRCaXQgPSAoYml0TmFtZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiaXQgPSB0aGF0Lm9wdGlvbnMubmFtZXNUb0JpdHNbYml0TmFtZV07XG4gICAgICAgICAgICAgICAgICAgIGlmIChiaXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5rbm93biBiaXQgbmFtZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMudmFsdWUgJj0gfmJpdDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LnZhbChjb2VyY2VGbGFnTWFza1RvU3RyaW5nKHRoYXQub3B0aW9ucy5uYW1lc1RvQml0cywgdGhpcy5vcHRpb25zLnZhbHVlKSk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB1cGRhdGVGcm9tSW5wdXQoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB1cGRhdGVWYWx1ZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQudmFsKGNvZXJjZUZsYWdNYXNrVG9TdHJpbmcodGhhdC5vcHRpb25zLm5hbWVzVG9CaXRzLCB0aGlzLm9wdGlvbnMudmFsdWUpKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfZGVzdHJveSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5yZW1vdmUoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBjb25zdCBnZXRFbmRQb2ludEF0dHJpYnV0ZXMgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0ICRlbmRwb2ludCA9ICQoXCIjbm9kZS1pbnB1dC1lbmRwb2ludFwiKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnRJZCA9ICRlbmRwb2ludC52YWwoKTtcbiAgICAgICAgY29uc3QgcmVkTm9kZSA9IFJFRC5ub2Rlcy5ub2RlKGVuZHBvaW50SWQpO1xuICAgICAgICBpZiAoIXJlZE5vZGUpXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAvLyBjb25zdCBjcmVkZW50aWFscyA9IFJFRC4oZW5kcG9pbnRJZCk7XG4gICAgICAgIC8vIHdlIG5lZWQgdG8gc2FuaXRpemUgYW5kIGV4dHJhY3QgdGhlIGVuZHBvaW50IGF0dHJpYnV0ZXMgb25seSAoIG5vdCB0aGUgbm9kZS1yZWQgc3R1ZmYpXG4gICAgICAgIGNvbnN0IHsgZW5kcG9pbnQsIHNlY3VyaXR5TW9kZSwgc2VjdXJpdHlQb2xpY3ksIHVzZXJJZGVudGl0eVR5cGUsIGNyZWRlbnRpYWxzIH0gPSByZWROb2RlO1xuICAgICAgICBjb25zdCByZXRWYWx1ZSA9IHtcbiAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgc2VjdXJpdHlNb2RlLFxuICAgICAgICAgICAgc2VjdXJpdHlQb2xpY3ksXG4gICAgICAgICAgICB1c2VySWRlbnRpdHlUeXBlLFxuICAgICAgICAgICAgY3JlZGVudGlhbHMsXG4gICAgICAgIH07XG4gICAgICAgIGNvbnNvbGUubG9nKFwieHh4XCIsIHJldFZhbHVlKTtcbiAgICAgICAgcmV0dXJuIHJldFZhbHVlO1xuICAgIH07XG4gICAgY29uc3QgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlciA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzLFxuICAgICAgICB9O1xuICAgIH07XG4gICAgY29uc3QgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzID0gKCkgPT4ge1xuICAgICAgICBjb25zdCAkZW5kcG9pbnQgPSAkKFwiI25vZGUtaW5wdXQtZW5kcG9pbnRcIik7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50SWQgPSAkZW5kcG9pbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50TnIgPSBnZXRFbmRQb2ludEF0dHJpYnV0ZXMoKTtcbiAgICAgICAgaWYgKCFlbmRwb2ludE5yKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpZDogZW5kcG9pbnRJZCxcbiAgICAgICAgICAgIC8vIGVuZHBvaW50OiBlbmRwb2ludE5yLmVuZHBvaW50LFxuICAgICAgICAgICAgLy8gc2VjdXJpdHlNb2RlOiBlbmRwb2ludE5yLnNlY3VyaXR5TW9kZSxcbiAgICAgICAgICAgIC8vIHNlY3VyaXR5UG9saWN5OiBlbmRwb2ludE5yLnNlY3VyaXR5UG9saWN5LFxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIHVzZXJJZGVudGl0eVR5cGU6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSxcbiAgICAgICAgICAgIC8vIGNyZWRlbnRpYWw6IGVuZHBvaW50TnIuY3JlZGVudGlhbHMsXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgLy8gdXNlck5hbWU6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSA9PT0gXCJVc2VyTmFtZVwiID8gZW5kcG9pbnROci5jcmVkZW50aWFscy51c2VyTmFtZSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIC8vIHBhc3N3b3JkOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUgPT09IFwiVXNlck5hbWVcIiA/IGVuZHBvaW50TnIuY3JlZGVudGlhbHMucGFzc3dvcmQgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAvLyB1c2VyQ2VydGlmaWNhdGU6IGVuZHBvaW50TnIuY3JlZGVudGlhbHMudXNlckNlcnRpZmljYXRlLFxuICAgICAgICAgICAgLy8gdXNlclByaXZhdGVrZXk6IGVuZHBvaW50TnIuY3JlZGVudGlhbHMudXNlclByaXZhdGVrZXksXG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIFJFRC5ub2Rlcy5yZWdpc3RlclR5cGUoXCJPcGNVYS1DbGllbnQyLUJyb3dzZVwiLCB7XG4gICAgICAgIGNhdGVnb3J5OiBcIm9wY3VhXCIsXG4gICAgICAgIGNvbG9yOiBcIiNDMERFRURcIixcbiAgICAgICAgYWxpZ246IFwicmlnaHRcIixcbiAgICAgICAgaWNvbjogXCIuLi8uLi9pY29ucy9vcGN1YW5vZGVMb2dvLnBuZ1wiLFxuICAgICAgICBwYWxldHRlTGFiZWw6IFwiYnJvd3NlXCIsXG4gICAgICAgIGRlZmF1bHRzOiB7XG4gICAgICAgICAgICBpbnB1dHM6IHsgdmFsdWU6IDEgfSxcbiAgICAgICAgICAgIG91dHB1dDogeyB2YWx1ZTogNCB9LFxuICAgICAgICAgICAgLy8gQ29tbW9uXG4gICAgICAgICAgICBuYW1lOiB7IHZhbHVlOiBcIlwiIH0sXG4gICAgICAgICAgICBlbmRwb2ludDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IHRydWUsIHR5cGU6IFwiT3BjVWEtRW5kcG9pbnQyXCIgfSxcbiAgICAgICAgICAgIC8vIGZvciBhY3Rpb24gcmVhZFxuICAgICAgICAgICAgbm9kZUlkOiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogZmFsc2UgfSxcbiAgICAgICAgICAgIHJlZmVyZW5jZVR5cGVJZDogeyB2YWx1ZTogXCJIYXNDaGlsZFwiLCByZXF1aXJlZDogZmFsc2UgfSxcbiAgICAgICAgICAgIGluY2x1ZGVTdWJ0eXBlczogeyB2YWx1ZTogZmFsc2UsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICBicm93c2VEaXJlY3Rpb246IHsgdmFsdWU6IFwiRm9yd2FyZFwiLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgbm9kZUNsYXNzTWFzazogeyB2YWx1ZTogXCJWYXJpYWJsZSB8IE9iamVjdCB8IE1ldGhvZCB8IE9iamVjdFR5cGUgfCBWYXJpYWJsZVR5cGVcIiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICByZXN1bHRNYXNrOiB7IHZhbHVlOiBcIlJlZmVyZW5jZVR5cGUgfCBCcm93c2VOYW1lIHwgVHlwZURlZmluaXRpb24gfCBEaXNwbGF5TmFtZSB8IE5vZGVDbGFzcyB8IElzRm9yd2FyZFwiLCByZXF1aXJlZDogZmFsc2UgfSxcbiAgICAgICAgfSxcbiAgICAgICAgb3V0cHV0czogMSxcbiAgICAgICAgbGFiZWwoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uYW1lIHx8IFwiT1BDVUEgQnJvd3NlXCI7XG4gICAgICAgIH0sXG4gICAgICAgIGxhYmVsU3R5bGUoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uYW1lID8gXCJub2RlX2xhYmVsX2l0YWxpY1wiIDogXCJcIjtcbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0cHJlcGFyZSgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzO1xuICAgICAgICAgICAgZGVjbGFyZU5vZGVCcm93c2VyV2lkZ2V0KCk7XG4gICAgICAgICAgICBkZWNsYXJlRmxhZ0VkaXRvcldpZGdldCgpO1xuICAgICAgICAgICAgbm9kZS5pbnB1dHMgPSAxO1xuICAgICAgICAgICAgY29uc3QgJG5vZGVDbGFzc01hc2sgPSAkKFwiI25vZGUtaW5wdXQtbm9kZUNsYXNzTWFza1wiKTtcbiAgICAgICAgICAgICRub2RlQ2xhc3NNYXNrLmZsYWdFZGl0b3Ioe1xuICAgICAgICAgICAgICAgIG5hbWVzVG9CaXRzOiB7XG4gICAgICAgICAgICAgICAgICAgIE9iamVjdDogMSxcbiAgICAgICAgICAgICAgICAgICAgVmFyaWFibGU6IDIsXG4gICAgICAgICAgICAgICAgICAgIE1ldGhvZDogNCxcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0VHlwZTogOCxcbiAgICAgICAgICAgICAgICAgICAgVmFyaWFibGVUeXBlOiAxNixcbiAgICAgICAgICAgICAgICAgICAgUmVmZXJlbmNlVHlwZTogMzIsXG4gICAgICAgICAgICAgICAgICAgIERhdGFUeXBlOiA2NCxcbiAgICAgICAgICAgICAgICAgICAgVmlldzogMTI4LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgdmFsdWU6IDAsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0ICRyZXN1bHRNYXNrID0gJChcIiNub2RlLWlucHV0LXJlc3VsdE1hc2tcIik7XG4gICAgICAgICAgICAkcmVzdWx0TWFzay5mbGFnRWRpdG9yKHtcbiAgICAgICAgICAgICAgICBuYW1lc1RvQml0czoge1xuICAgICAgICAgICAgICAgICAgICBSZWZlcmVuY2VUeXBlOiAxLFxuICAgICAgICAgICAgICAgICAgICBJc0ZvcndhcmQ6IDIsXG4gICAgICAgICAgICAgICAgICAgIE5vZGVDbGFzczogNCxcbiAgICAgICAgICAgICAgICAgICAgQnJvd3NlTmFtZTogOCxcbiAgICAgICAgICAgICAgICAgICAgRGlzcGxheU5hbWU6IDE2LFxuICAgICAgICAgICAgICAgICAgICBUeXBlRGVmaW5pdGlvbjogMzIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogNjMsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0ICRub2RlSWQgPSAkKFwiI25vZGUtaW5wdXQtbm9kZUlkXCIpO1xuICAgICAgICAgICAgJG5vZGVJZC5ub2RlQnJvd3NlcihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIoKSksIHsgaXNTZWxlY3RhYmxlKG5vZGVEZXNjKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiVmFyaWFibGVcIiB8fCBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiT2JqZWN0XCI7XG4gICAgICAgICAgICAgICAgfSB9KSk7XG4gICAgICAgICAgICBjb25zdCByZWZlcmVuY2VzTm9kZURlc2MgPSB7XG4gICAgICAgICAgICAgICAgbm9kZUlkOiBcImk9MzFcIixcbiAgICAgICAgICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IFwiXCIsXG4gICAgICAgICAgICAgICAgYnJvd3NlTmFtZTogeyBuYW1lc3BhY2VJbmRleDogMCwgbmFtZTogXCJSZWZlcmVuY2VzXCIgfSxcbiAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogeyB0ZXh0OiBcIlJlZmVyZW5jZXNcIiB9LFxuICAgICAgICAgICAgICAgIG5vZGVDbGFzczogXCJSZWZlcmVuY2VUeXBlXCIsXG4gICAgICAgICAgICAgICAgdHlwZURlZmluaXRpb246IFwiaT0zMVwiLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNvbnN0ICRyZWZlcmVuY2VUeXBlSWQgPSAkKFwiI25vZGUtaW5wdXQtcmVmZXJlbmNlVHlwZUlkXCIpO1xuICAgICAgICAgICAgJHJlZmVyZW5jZVR5cGVJZC5ub2RlQnJvd3NlcihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIoKSksIHsgcGFyZW50Tm9kZTogKCkgPT4gcmVmZXJlbmNlc05vZGVEZXNjLCAvLyBSZWZlcmVuY2VzLFxuICAgICAgICAgICAgICAgIGlzU2VsZWN0YWJsZShub2RlRGVzYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgICAgICAgICB9LCBpc1R5cGVSZWY6IHRydWUgfSkpO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRzYXZlKCkgeyB9LFxuICAgIH0pO1xuXG59KSgpOyJdfQ==
9
9
  </script>
10
10
  <script type="text/x-red" data-template-name="OpcUa-Client2-Browse">
11
11
  <style>