@opcua/for-node-red 2.5.0 → 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/all.js +1 -1
- package/package.json +1 -1
- package/source/OpcUa-Client2-Browse/OpcUa-Client2-Browse.html +2 -13
- package/source/OpcUa-Client2-Call/OpcUa-Client2-Call.html +2 -2
- package/source/OpcUa-Client2-Explore/OpcUa-Client2-Explore.html +2 -5
- package/source/OpcUa-Client2-Monitor/OpcUa-Client2-Monitor.html +2 -2
- package/source/OpcUa-Client2-MonitorEvent/OpcUa-Client2-MonitorEvent.html +2 -2
- package/source/OpcUa-Client2-Read/OpcUa-Client2-Read.html +8 -6
- package/source/OpcUa-Client2-Write/OpcUa-Client2-Write.html +2 -5
- package/source/OpcUa-Endpoint2/OpcUa-Endpoint2.html +2 -2
@@ -4,8 +4,8 @@
|
|
4
4
|
</style>
|
5
5
|
|
6
6
|
<script type="text/javascript">
|
7
|
-
function _0x4e7e(_0x26063a,_0x765357){const _0xaa153f=_0xaa15();return _0x4e7e=function(_0x4e7ef1,_0xdef9a4){_0x4e7ef1=_0x4e7ef1-0x1e3;let _0x577f0f=_0xaa153f[_0x4e7ef1];return _0x577f0f;},_0x4e7e(_0x26063a,_0x765357);}function _0xaa15(){const _0x554fc4=['$info','left','$combo','View','<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','fa-object-group',':visible','.spinner','endpoint','toggleClass','suppressed','sterfive-combo-box','currentParent','$input','IsForward','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','fa-sliders','catch','find','30OPxndw','xxx','append','$inputGroup','data','widget','DisplayName','empty','expandable\x20expanded','HasComponent','then','grey','7voAmtR','parentNode','replaceWith','attr','toString','stopPropagation','ns=0;i=61','Both','HasChild','change','fa-folder','sterfive.nodeBrowser','TypeDefinition','$dropdown','remove','nodeClass','\x20Fetching\x20done','Organizes','isSelectable','removeClass','ns=0;i=35','Good','OpcUa-Client2-Explore','Objects','trigger','ObjectType','done','closest','click','DarkOrange','SandyBrown','nodeId','err','1048282WFEWIL','hasClass','/checkNodeId','ns=0;i=47','Variable','/opcua-endpoint2','BrowseName','pageY','SuppressedError','ns=0;i=40','throw','match','displayName','inputs','fa-question','OpcUa-Endpoint2','CadetBlue','1oVWkVC','DataType','Method','resolveParentNode','reset','SteelBlue','sterfive-info','value','<div/>','endpointNode','node','loading','$toggleTreeBtn','Object','/browse',';\x22></i>\x20','35590260PGcwva','toggle','statusText','fa-cog','references','right','ns=0;i=85','appendTo','</li>','#node-input-nodeId','HasProperty','../../icons/opcuanodeLogo.png','fa-list-alt','length','show','expandable','12EBjTpy','Inverse','next','log','Invalid','ReferenceType','<li>error\x20','addClass','node_label_italic','4016128jkBreY','13yEThCq','fetched','i=61','<ul\x20class=\x22sterfive-tree\x22></ul>','opcua','json','HasSubtype','rgba(61,\x2060,\x204,\x200.525)','nodeAddressString','NodeClass','text','browseName','nodes','#C0DEED','32530kvOFOK','registerType','target','error','28vszCiw','<div\x20class=\x22spinner\x22></div>','placeholder','status','ns=0;i=45','pageX','name','nodeBrowser','4576165ylfvGH','ns=0;i=34','statusCode','stringify','function','children','baseUrl','529827CKkGDm','input-group','referenceTypeId','reference','hide','failure','offset','val','<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>','6541308skMBBE','assign','$verifyBtn','filter','isTypeRef','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','element','Forward','already\x20loading','expanded','options','opc.tcp://opcuademo.sterfive.com:26543','Unspecified','$tree','#node-input-endpoint','application/json','VariableType'];_0xaa15=function(){return _0x554fc4;};return _0xaa15();}(function(_0x4da62c,_0x278068){const _0x1d685e=_0x4e7e,_0x254797=_0x4da62c();while(!![]){try{const _0x578ec4=-parseInt(_0x1d685e(0x252))/0x1*(-parseInt(_0x1d685e(0x241))/0x2)+parseInt(_0x1d685e(0x1e7))/0x3*(-parseInt(_0x1d685e(0x28e))/0x4)+-parseInt(_0x1d685e(0x28a))/0x5*(-parseInt(_0x1d685e(0x272))/0x6)+-parseInt(_0x1d685e(0x220))/0x7*(-parseInt(_0x1d685e(0x27b))/0x8)+-parseInt(_0x1d685e(0x1f0))/0x9+-parseInt(_0x1d685e(0x214))/0xa*(parseInt(_0x1d685e(0x296))/0xb)+-parseInt(_0x1d685e(0x262))/0xc*(-parseInt(_0x1d685e(0x27c))/0xd);if(_0x578ec4===_0x278068)break;else _0x254797['push'](_0x254797['shift']());}catch(_0x55adfc){_0x254797['push'](_0x254797['shift']());}}}(_0xaa15,0xc1d30),(function(){'use strict';const _0x2c2fb9=_0x4e7e;function _0x1a54c2(_0x5f59be,_0x515a7e,_0x5ce571,_0x190518){function _0x42af9c(_0x5bbe49){return _0x5bbe49 instanceof _0x5ce571?_0x5bbe49:new _0x5ce571(function(_0x156b6a){_0x156b6a(_0x5bbe49);});}return new(_0x5ce571||(_0x5ce571=Promise))(function(_0x290938,_0x437817){const _0x2dc60a=_0x4e7e;function _0x490546(_0x588113){const _0x4e65fe=_0x4e7e;try{_0x2ab92f(_0x190518[_0x4e65fe(0x274)](_0x588113));}catch(_0x2f3f38){_0x437817(_0x2f3f38);}}function _0x5547b2(_0x2dc87c){const _0x47c100=_0x4e7e;try{_0x2ab92f(_0x190518[_0x47c100(0x24b)](_0x2dc87c));}catch(_0x8e9a15){_0x437817(_0x8e9a15);}}function _0x2ab92f(_0x5eb913){const _0x5e120a=_0x4e7e;_0x5eb913[_0x5e120a(0x23a)]?_0x290938(_0x5eb913[_0x5e120a(0x259)]):_0x42af9c(_0x5eb913[_0x5e120a(0x259)])['then'](_0x490546,_0x5547b2);}_0x2ab92f((_0x190518=_0x190518['apply'](_0x5f59be,_0x515a7e||[]))[_0x2dc60a(0x274)]());});}typeof SuppressedError===_0x2c2fb9(0x1e4)?SuppressedError:function(_0x3734b2,_0x400d0a,_0x4b7f01){const _0x20bac7=_0x2c2fb9;var _0x4e1808=new Error(_0x4b7f01);return _0x4e1808[_0x20bac7(0x294)]=_0x20bac7(0x249),_0x4e1808[_0x20bac7(0x28d)]=_0x3734b2,_0x4e1808[_0x20bac7(0x20b)]=_0x400d0a,_0x4e1808;};const _0x4bd58a=_0x2c2fb9(0x234),_0x1f13ed=_0x2c2fb9(0x226),_0xb78ac4=_0x2c2fb9(0x244),_0x554300='ns=0;i=46',_0x20ba07=_0x2c2fb9(0x297),_0x4adf67=_0x2c2fb9(0x292),_0x51738d=_0x2c2fb9(0x24a);var _0x7130f0;(function(_0x67338f){const _0x2e56ab=_0x2c2fb9;_0x67338f[_0x67338f[_0x2e56ab(0x1f7)]=0x0]='Forward',_0x67338f[_0x67338f[_0x2e56ab(0x273)]=0x1]=_0x2e56ab(0x273),_0x67338f[_0x67338f[_0x2e56ab(0x227)]=0x2]=_0x2e56ab(0x227),_0x67338f[_0x67338f[_0x2e56ab(0x276)]=0x3]=_0x2e56ab(0x276);}(_0x7130f0||(_0x7130f0={})));var _0x481ddf;(function(_0x316002){const _0x1cf16a=_0x2c2fb9;_0x316002[_0x316002[_0x1cf16a(0x1fc)]=0x0]=_0x1cf16a(0x1fc),_0x316002[_0x316002['Object']=0x1]='Object',_0x316002[_0x316002[_0x1cf16a(0x245)]=0x2]=_0x1cf16a(0x245),_0x316002[_0x316002[_0x1cf16a(0x254)]=0x4]='Method',_0x316002[_0x316002['ObjectType']=0x8]=_0x1cf16a(0x239),_0x316002[_0x316002[_0x1cf16a(0x200)]=0x10]=_0x1cf16a(0x200),_0x316002[_0x316002[_0x1cf16a(0x277)]=0x20]=_0x1cf16a(0x277),_0x316002[_0x316002[_0x1cf16a(0x253)]=0x40]=_0x1cf16a(0x253),_0x316002[_0x316002[_0x1cf16a(0x204)]=0x80]=_0x1cf16a(0x204);}(_0x481ddf||(_0x481ddf={})));var _0x1ad442;(function(_0x6eb38c){const _0x11b039=_0x2c2fb9;_0x6eb38c[_0x6eb38c[_0x11b039(0x25f)]=0x1]='Object',_0x6eb38c[_0x6eb38c['Variable']=0x2]='Variable',_0x6eb38c[_0x6eb38c[_0x11b039(0x254)]=0x4]=_0x11b039(0x254),_0x6eb38c[_0x6eb38c[_0x11b039(0x239)]=0x8]='ObjectType',_0x6eb38c[_0x6eb38c[_0x11b039(0x200)]=0x10]=_0x11b039(0x200),_0x6eb38c[_0x6eb38c[_0x11b039(0x277)]=0x20]=_0x11b039(0x277),_0x6eb38c[_0x6eb38c['DataType']=0x40]='DataType',_0x6eb38c[_0x6eb38c[_0x11b039(0x204)]=0x80]=_0x11b039(0x204);}(_0x1ad442||(_0x1ad442={})));var _0x44d3a2;(function(_0x3f46be){const _0x22b705=_0x2c2fb9;_0x3f46be[_0x3f46be[_0x22b705(0x277)]=0x1]=_0x22b705(0x277),_0x3f46be[_0x3f46be[_0x22b705(0x20f)]=0x2]='IsForward',_0x3f46be[_0x3f46be[_0x22b705(0x285)]=0x4]=_0x22b705(0x285),_0x3f46be[_0x3f46be['BrowseName']=0x8]=_0x22b705(0x247),_0x3f46be[_0x3f46be['DisplayName']=0x10]=_0x22b705(0x21a),_0x3f46be[_0x3f46be[_0x22b705(0x22c)]=0x20]=_0x22b705(0x22c);}(_0x44d3a2||(_0x44d3a2={})));function _0x163032(_0x41c306){const _0xd5154d=_0x2c2fb9;switch(_0x41c306){case _0xd5154d(0x231):return _0x4bd58a;case _0xd5154d(0x26c):return _0x554300;case _0xd5154d(0x21d):return _0xb78ac4;case _0xd5154d(0x228):return _0x20ba07;case _0xd5154d(0x282):return _0x4adf67;case'HasTypeDefinition':return _0x51738d;}}const _0x709bdb=_0x3a6d16=>{const _0x1c60be=_0x2c2fb9;switch(_0x3a6d16[_0x1c60be(0x22f)]){case _0x1c60be(0x25f):if(_0x3a6d16[_0x1c60be(0x1e9)]===_0x4bd58a);if(_0x3a6d16['typeDefinition']===_0x1f13ed||_0x3a6d16[_0x1c60be(0x1e9)]===_0x1c60be(0x27e))return{'icon':_0x1c60be(0x22a),'color':_0x1c60be(0x283)};return{'icon':_0x1c60be(0x206),'color':'SeaGreen'};case'Variable':if(_0x3a6d16[_0x1c60be(0x1e9)]===_0xb78ac4)return{'icon':'fa-list-alt','color':_0x1c60be(0x257)};else return _0x3a6d16[_0x1c60be(0x1e9)]===_0x554300?{'icon':_0x1c60be(0x26e),'color':'DodgerBlue'}:{'icon':_0x1c60be(0x26e),'color':_0x1c60be(0x251)};case _0x1c60be(0x254):return{'icon':_0x1c60be(0x265),'color':_0x1c60be(0x23e)};case _0x1c60be(0x239):return{'icon':_0x1c60be(0x206),'color':_0x1c60be(0x23d)};case'VariableType':return{'icon':_0x1c60be(0x211),'color':'DarkOrange'};}return{'icon':_0x1c60be(0x24f),'color':_0x1c60be(0x21f)};},_0x3e0d51=({endpointNode:_0x345bbb,endpoint:_0x4a956f,baseUrl:_0xcde672},_0x3267f8,_0x452e44)=>_0x1a54c2(void 0x0,void 0x0,void 0x0,function*(){const _0x28d7b0=_0x2c2fb9,_0x5356f8=_0xcde672+_0x28d7b0(0x246),_0xc3329=_0x5356f8+_0x28d7b0(0x260),_0x54886d=Object[_0x28d7b0(0x1f1)](Object['assign']({},_0x452e44),{'nodeId':_0x3267f8,'resultMask':0x3f}),_0x4ae635=yield fetch(_0xc3329,{'method':'POST','body':JSON[_0x28d7b0(0x1e3)]({'endpointNode':_0x345bbb,'endpoint':_0x4a956f,'browseDescription':_0x54886d}),'headers':{'Content-Type':_0x28d7b0(0x1ff)}});if(_0x4ae635['status']!==0xc8)return console[_0x28d7b0(0x275)]('fetching\x20failed\x20with\x20error',_0x4ae635[_0x28d7b0(0x291)],_0x4ae635[_0x28d7b0(0x264)]),{'references':[]};console[_0x28d7b0(0x275)]('fetched\x20:\x20',_0x4ae635[_0x28d7b0(0x291)],_0x4ae635[_0x28d7b0(0x264)]);const _0x4a634b=yield _0x4ae635[_0x28d7b0(0x281)](),_0xa11a5b=_0x4a634b['browseResult'][_0x28d7b0(0x266)]||[];return{'references':_0xa11a5b};}),_0x4c5087={'referenceTypeId':_0x163032(_0x2c2fb9(0x228)),'includeSubtypes':!![],'browseDirection':_0x7130f0[_0x2c2fb9(0x1f7)],'nodeClassMask':_0x481ddf[_0x2c2fb9(0x245)]|_0x481ddf[_0x2c2fb9(0x25f)]|_0x481ddf[_0x2c2fb9(0x254)],'resultMask':0x3f},_0x223caa={'referenceTypeId':_0x163032(_0x2c2fb9(0x231)),'includeSubtypes':!![],'browseDirection':_0x7130f0[_0x2c2fb9(0x1f7)],'nodeClassMask':_0x481ddf[_0x2c2fb9(0x245)]|_0x481ddf[_0x2c2fb9(0x25f)]|_0x481ddf[_0x2c2fb9(0x254)],'resultMask':0x3f},_0x38c847=({endpointNode:_0x56e8b9,endpoint:_0x4fc808,baseUrl:_0x201166},_0x589cf2,_0x35faff)=>_0x1a54c2(void 0x0,void 0x0,void 0x0,function*(){const _0xf521d2=_0x2c2fb9,_0x5ae311=_0x201166+_0xf521d2(0x246),_0x493e2c=_0x589cf2[_0xf521d2(0x1ee)](),_0x5fabf8=yield fetch(_0x5ae311+_0xf521d2(0x243),{'method':'POST','body':JSON['stringify']({'endpointNode':_0x56e8b9,'endpoint':_0x4fc808,'nodeId':_0x493e2c}),'headers':{'Content-Type':_0xf521d2(0x1ff)}}),_0x2eeafc=(_0x56b6ac,_0x4e332e)=>{const _0x138fe9=_0xf521d2;_0x35faff[_0x138fe9(0x286)](_0x56b6ac)['addClass'](_0x138fe9(0x258))[_0x138fe9(0x279)](_0x4e332e),_0x35faff[_0x138fe9(0x270)](),setTimeout(()=>{const _0x1fb3d5=_0x138fe9;_0x35faff[_0x1fb3d5(0x233)](_0x4e332e),_0x35faff['hide']();},0xbb8);},_0x3984ef=yield _0x5fabf8[_0xf521d2(0x281)]();_0x5fabf8[_0xf521d2(0x291)]!==0xc8?_0x2eeafc('!!failure!!'+_0x493e2c,_0xf521d2(0x1ec)):_0x3984ef['statusCode'][_0xf521d2(0x24c)](/Good/)?(_0x589cf2[_0xf521d2(0x1ee)](_0x3984ef[_0xf521d2(0x284)]),_0x589cf2[_0xf521d2(0x238)](_0xf521d2(0x229)),_0x2eeafc(_0xf521d2(0x235),'ok')):(_0x589cf2[_0xf521d2(0x1ee)](''+_0x493e2c),_0x2eeafc(_0x3984ef[_0xf521d2(0x298)]+'\x20'+_0x5fabf8['statusText'],_0xf521d2(0x1ec)));});function _0xc638d8(_0x4e880e,_0x41a904){return _0x1a54c2(this,void 0x0,void 0x0,function*(){const _0x3beef8=_0x4e7e,_0x4ce45f=_0x4e880e[_0x3beef8(0x218)](_0x3beef8(0x259)),_0x151c0c=yield _0x3e0d51(_0x41a904,_0x4ce45f,_0x4c5087),_0x267c91=yield _0x3e0d51(_0x41a904,_0x4ce45f,_0x223caa);return{'references':[..._0x151c0c[_0x3beef8(0x266)],..._0x267c91[_0x3beef8(0x266)]]};});}const _0x31eb64={'referenceTypeId':_0x163032(_0x2c2fb9(0x282)),'includeSubtypes':!![],'browseDirection':_0x7130f0[_0x2c2fb9(0x1f7)],'nodeClassMask':_0x481ddf[_0x2c2fb9(0x277)]|_0x481ddf[_0x2c2fb9(0x239)]|_0x481ddf[_0x2c2fb9(0x253)]|_0x481ddf[_0x2c2fb9(0x200)],'resultMask':0x3f};function _0x58390e(_0x58968d,_0x4350ca){return _0x1a54c2(this,void 0x0,void 0x0,function*(){const _0x317d3d=_0x4e7e,_0x299231=_0x58968d[_0x317d3d(0x218)]('value'),_0x26c5b9=yield _0x3e0d51(_0x4350ca,_0x299231,_0x31eb64);return _0x26c5b9;});}const _0x207c7d=_0xa01921=>{const _0x217657=_0x2c2fb9;var _0x1f1060,_0x2a58a7;if(!_0xa01921){const _0x22482e=$(_0x217657(0x210));return _0x22482e;}const _0xaafd04=_0xa01921[_0x217657(0x23f)][_0x217657(0x224)](),_0x1e7e62=((_0x1f1060=_0xa01921[_0x217657(0x24d)])===null||_0x1f1060===void 0x0?void 0x0:_0x1f1060[_0x217657(0x286)])||((_0x2a58a7=_0xa01921[_0x217657(0x287)])===null||_0x2a58a7===void 0x0?void 0x0:_0x2a58a7['name'])||_0xa01921[_0x217657(0x23f)][_0x217657(0x224)](),{icon:_0x1d4679,color:_0x170655}=_0x709bdb(_0xa01921),_0xcc4ae=$('<li><i\x20class=\x22fa\x20'+_0x1d4679+'\x22\x20style=\x22color:'+_0x170655+_0x217657(0x261)+_0x1e7e62+'<ul></ul></li>');return _0xcc4ae[_0x217657(0x279)](_0x217657(0x271)),_0xcc4ae[_0x217657(0x218)](_0x217657(0x259),_0xaafd04),_0xcc4ae[_0x217657(0x218)](_0x217657(0x1ea),_0xa01921),_0xcc4ae;},_0x39f73b=()=>{const _0x17accd=_0x2c2fb9;$[_0x17accd(0x219)](_0x17accd(0x22b),{'options':{'endpointNode':()=>({'endpoint':_0x17accd(0x1fb)}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':_0x17accd(0x237)},'nodeClass':_0x17accd(0x25f),'nodeId':_0x17accd(0x268),'displayName':{'text':_0x17accd(0x237)},'typeDefinition':_0x1f13ed}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x1a54c2(this,void 0x0,void 0x0,function*(){const _0x42132f=_0x4e7e,_0x318b3c=this,_0x3547ad=typeof _0x318b3c['options'][_0x42132f(0x221)]===_0x42132f(0x1e4)?_0x318b3c[_0x42132f(0x1fa)][_0x42132f(0x221)]():_0x318b3c[_0x42132f(0x1fa)][_0x42132f(0x221)];if(_0x3547ad instanceof Promise)return yield _0x3547ad;return _0x3547ad;});},'reset'(){const _0x4eab70=_0x17accd,_0x57bd61=this;_0x57bd61[_0x4eab70(0x1fd)][_0x4eab70(0x21b)](),this[_0x4eab70(0x255)]()[_0x4eab70(0x21e)](_0x387678=>{const _0x2c3e27=_0x4eab70,_0x67f954=_0x207c7d(_0x387678);_0x57bd61[_0x2c3e27(0x1fd)][_0x2c3e27(0x216)](_0x67f954),_0x57bd61[_0x2c3e27(0x20d)]=_0x387678;});},'verify'(){const _0x4e18d5=_0x17accd,_0x4a3638=this,_0x1479c1={'baseUrl':_0x4a3638[_0x4e18d5(0x1fa)][_0x4e18d5(0x1e6)],'endpointNode':typeof _0x4a3638[_0x4e18d5(0x1fa)][_0x4e18d5(0x25b)]===_0x4e18d5(0x1e4)?_0x4a3638[_0x4e18d5(0x1fa)][_0x4e18d5(0x25b)]():_0x4a3638[_0x4e18d5(0x1fa)]['endpointNode'],'endpoint':typeof _0x4a3638['options']['endpoint']===_0x4e18d5(0x1e4)?_0x4a3638[_0x4e18d5(0x1fa)][_0x4e18d5(0x209)]():_0x4a3638[_0x4e18d5(0x1fa)][_0x4e18d5(0x209)]};_0x38c847(_0x1479c1,_0x4a3638['$input'],_0x4a3638['$info']);},'_create'(){const _0x416213=_0x17accd,_0x14173b=this;function _0x46f55b(_0x53be76,_0x3c569f,_0x5c698c){return _0x1a54c2(this,void 0x0,void 0x0,function*(){const _0x43adaf=_0x4e7e;if(_0x53be76[_0x43adaf(0x242)]('fetched')){console['log']('already\x20fetched');return;}if(_0x53be76[_0x43adaf(0x242)](_0x43adaf(0x25d))){console[_0x43adaf(0x275)](_0x43adaf(0x1f8));return;}_0x53be76[_0x43adaf(0x279)](_0x43adaf(0x25d)),_0x53be76[_0x43adaf(0x216)](_0x43adaf(0x28f));try{_0x53be76[_0x43adaf(0x1e5)]('ul')['empty']();const {references:_0x5f2914}=yield _0x3c569f(_0x53be76,_0x5c698c);for(const _0x350592 of _0x5f2914){if(_0x14173b[_0x43adaf(0x1fa)][_0x43adaf(0x1f3)]&&!_0x14173b[_0x43adaf(0x1fa)][_0x43adaf(0x1f3)](_0x350592))continue;const _0x50bd64=_0x207c7d(_0x350592);_0x53be76[_0x43adaf(0x1e5)]('ul')['append'](_0x50bd64);}_0x53be76[_0x43adaf(0x279)]('fetched');}catch(_0x2046cc){_0x53be76[_0x43adaf(0x1e5)]('ul')[_0x43adaf(0x216)](_0x43adaf(0x278)+_0x2046cc['message']+_0x43adaf(0x26a)),console['log'](_0x43adaf(0x240),_0x2046cc);}_0x53be76[_0x43adaf(0x213)](_0x43adaf(0x208))[_0x43adaf(0x22e)](),_0x53be76[_0x43adaf(0x233)](_0x43adaf(0x25d));});}_0x14173b[_0x416213(0x20e)]=this[_0x416213(0x1f6)],_0x14173b[_0x416213(0x203)]=$(_0x416213(0x25a)),_0x14173b['$combo'][_0x416213(0x279)](_0x416213(0x20c)),this[_0x416213(0x1f6)][_0x416213(0x222)](_0x14173b[_0x416213(0x203)]),_0x14173b[_0x416213(0x217)]=$('<div/>')[_0x416213(0x279)](_0x416213(0x1e8)),_0x14173b[_0x416213(0x203)][_0x416213(0x216)](_0x14173b[_0x416213(0x217)]),_0x14173b['$inputGroup'][_0x416213(0x216)](_0x14173b['$input']),_0x14173b[_0x416213(0x25e)]=$(_0x416213(0x205)),_0x14173b[_0x416213(0x217)][_0x416213(0x216)](_0x14173b['$toggleTreeBtn']),_0x14173b[_0x416213(0x25e)]['on']('click',function(){const _0x315c21=_0x416213;!_0x14173b[_0x315c21(0x22d)]['is'](_0x315c21(0x207))&&(_0x14173b[_0x315c21(0x255)]()[_0x315c21(0x21e)](_0x33c617=>{const _0x20dcab=_0x315c21;var _0x5ed0db;(_0x33c617!==_0x14173b[_0x20dcab(0x20d)]||((_0x5ed0db=_0x14173b[_0x20dcab(0x20d)])===null||_0x5ed0db===void 0x0?void 0x0:_0x5ed0db[_0x20dcab(0x23f)])!==_0x33c617[_0x20dcab(0x23f)])&&_0x14173b['reset']();}),_0x14173b[_0x315c21(0x201)][_0x315c21(0x1eb)]()),_0x14173b['$dropdown']['toggle']();}),_0x14173b[_0x416213(0x1f2)]=$(_0x416213(0x1ef)),_0x14173b[_0x416213(0x217)][_0x416213(0x216)](_0x14173b['$verifyBtn']),_0x14173b[_0x416213(0x1f2)]['on']('click',()=>{this['verify']();}),!_0x14173b[_0x416213(0x20e)][_0x416213(0x223)](_0x416213(0x290))&&_0x14173b['$input'][_0x416213(0x223)]('placeholder',_0x416213(0x1f5)),_0x14173b[_0x416213(0x201)]=$('<div\x20class=\x22info-text\x22></div>'),_0x14173b['$info']['hide'](),{'baseUrl':_0x14173b[_0x416213(0x1fa)][_0x416213(0x1e6)],'endpointNode':typeof _0x14173b['options']['endpointNode']===_0x416213(0x1e4)?_0x14173b['options']['endpointNode']():_0x14173b[_0x416213(0x1fa)][_0x416213(0x25b)],'endpoint':typeof _0x14173b['options'][_0x416213(0x209)]===_0x416213(0x1e4)?_0x14173b[_0x416213(0x1fa)][_0x416213(0x209)]():_0x14173b[_0x416213(0x1fa)]['endpoint']},_0x14173b[_0x416213(0x22d)]=$(_0x416213(0x25a))[_0x416213(0x279)]('sterfive-dropdown')[_0x416213(0x1eb)](),_0x14173b[_0x416213(0x203)][_0x416213(0x216)](_0x14173b['$info']),_0x14173b[_0x416213(0x203)]['append'](_0x14173b[_0x416213(0x22d)]),_0x14173b[_0x416213(0x1fd)]=$(_0x416213(0x27f))[_0x416213(0x269)](_0x14173b[_0x416213(0x22d)]),this[_0x416213(0x256)](),_0x14173b['$tree']['on'](_0x416213(0x23c),'li',function(_0x45f87f){const _0x49452f=_0x416213;var _0x10f8f3,_0x3503ec;_0x45f87f[_0x49452f(0x225)]();let _0x48e448=$(this);const _0x11e68c=0x14,_0x56641a=0x14,_0x55fda1=$(this)[_0x49452f(0x1ed)](),_0x5a985=_0x45f87f;if(_0x5a985[_0x49452f(0x293)]>=_0x55fda1[_0x49452f(0x202)]&&_0x5a985['pageX']<=_0x55fda1[_0x49452f(0x202)]+_0x11e68c&&_0x5a985[_0x49452f(0x248)]>=_0x55fda1['top']&&_0x5a985[_0x49452f(0x248)]<=_0x55fda1['top']+_0x56641a){if(_0x48e448['hasClass'](_0x49452f(0x271))){if(_0x48e448[_0x49452f(0x242)](_0x49452f(0x27d))){_0x48e448[_0x49452f(0x233)]('expandable')[_0x49452f(0x279)](_0x49452f(0x1f9)),_0x48e448[_0x49452f(0x1e5)]('ul')[_0x49452f(0x263)]();return;}const _0x429269={'baseUrl':_0x14173b[_0x49452f(0x1fa)][_0x49452f(0x1e6)],'endpointNode':typeof _0x14173b[_0x49452f(0x1fa)]['endpointNode']===_0x49452f(0x1e4)?_0x14173b[_0x49452f(0x1fa)]['endpointNode']():_0x14173b[_0x49452f(0x1fa)][_0x49452f(0x25b)],'endpoint':typeof _0x14173b['options'][_0x49452f(0x209)]===_0x49452f(0x1e4)?_0x14173b['options']['endpoint']():_0x14173b[_0x49452f(0x1fa)]['endpoint']},_0x4b4c93=!_0x14173b['options'][_0x49452f(0x1f4)]?_0xc638d8:_0x58390e;_0x46f55b(_0x48e448,_0x4b4c93,_0x429269)['then'](()=>{const _0x21995e=_0x49452f;console[_0x21995e(0x275)](_0x21995e(0x230)),console['log']('fetched'),_0x48e448[_0x21995e(0x233)](_0x21995e(0x271))[_0x21995e(0x279)](_0x21995e(0x1f9));})[_0x49452f(0x212)](_0x109a89=>{const _0x3aeab8=_0x49452f;_0x48e448[_0x3aeab8(0x233)](_0x3aeab8(0x271))[_0x3aeab8(0x279)]('expanded'),console[_0x3aeab8(0x275)](_0x3aeab8(0x28d),_0x109a89);});}else{if(_0x48e448[_0x49452f(0x242)](_0x49452f(0x1f9)))_0x48e448[_0x49452f(0x1e5)]('ul')[_0x49452f(0x263)](),_0x48e448[_0x49452f(0x20a)](_0x49452f(0x21c));else{if(_0x48e448[_0x49452f(0x1e5)]('ul')['children']()[_0x49452f(0x26f)]>0x0)_0x48e448['children']('ul')[_0x49452f(0x263)](),_0x48e448[_0x49452f(0x20a)](_0x49452f(0x21c));else;}}}else{const _0x4ba6d2=_0x48e448[_0x49452f(0x218)](_0x49452f(0x259)),_0x4b654a=_0x48e448[_0x49452f(0x218)]('reference');if(_0x14173b['options'][_0x49452f(0x232)]&&!_0x14173b['options'][_0x49452f(0x232)](_0x4b654a))return;_0x14173b[_0x49452f(0x20e)][_0x49452f(0x218)](_0x49452f(0x1ea),_0x4b654a);const _0x73a596=((_0x10f8f3=_0x4b654a[_0x49452f(0x24d)])===null||_0x10f8f3===void 0x0?void 0x0:_0x10f8f3[_0x49452f(0x286)])||((_0x3503ec=_0x4b654a[_0x49452f(0x287)])===null||_0x3503ec===void 0x0?void 0x0:_0x3503ec['name'])||_0x4b654a[_0x49452f(0x23f)][_0x49452f(0x224)](),_0x2db392='['+_0x73a596+']('+_0x4ba6d2+')';_0x14173b[_0x49452f(0x20e)]['val'](_0x2db392),_0x14173b[_0x49452f(0x20e)][_0x49452f(0x238)](_0x49452f(0x229)),_0x14173b['$dropdown'][_0x49452f(0x1eb)]();}}),$(document)['on']('click',function(_0x2b2373){const _0x59729a=_0x416213;!$(_0x2b2373[_0x59729a(0x28c)])[_0x59729a(0x23b)](_0x14173b[_0x59729a(0x203)])[_0x59729a(0x26f)]&&_0x14173b[_0x59729a(0x22d)][_0x59729a(0x1eb)]();});}});},_0x454fa1=()=>{const _0x269608=_0x2c2fb9,_0x265638=$(_0x269608(0x1fe)),_0x25959c=_0x265638[_0x269608(0x1ee)](),_0x17629d=RED[_0x269608(0x288)][_0x269608(0x25c)](_0x25959c);if(!_0x17629d)return undefined;const {endpoint:_0x334f80,securityMode:_0x2cc84d,securityPolicy:_0x4f0432,userIdentityType:_0x5e20b3,credentials:_0x57c5c1}=_0x17629d,_0x1e4013={'endpoint':_0x334f80,'securityMode':_0x2cc84d,'securityPolicy':_0x4f0432,'userIdentityType':_0x5e20b3,'credentials':_0x57c5c1};return console['log'](_0x269608(0x215),_0x1e4013),_0x1e4013;},_0x2a8df4=()=>{return{'endpointNode':_0x1c4090};},_0x1c4090=()=>{const _0x34877b=$('#node-input-endpoint'),_0x24b34b=_0x34877b['val'](),_0x3c666b=_0x454fa1();if(!_0x3c666b)return undefined;return{'id':_0x24b34b};};RED['nodes'][_0x2c2fb9(0x28b)](_0x2c2fb9(0x236),{'category':_0x2c2fb9(0x280),'color':_0x2c2fb9(0x289),'align':_0x2c2fb9(0x267),'icon':_0x2c2fb9(0x26d),'paletteLabel':'explore','defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':_0x2c2fb9(0x250)},'nodeId':{'value':'','required':![]},'outputType':{'value':'Value','required':!![]}},'outputs':0x1,'label'(){return this['name']||'OPCUA\x20Explore';},'labelStyle'(){const _0x176e12=_0x2c2fb9;return this[_0x176e12(0x294)]?_0x176e12(0x27a):'';},'oneditprepare'(){const _0x1b61c5=_0x2c2fb9,_0x5b886e=this;_0x39f73b(),_0x5b886e[_0x1b61c5(0x24e)]=0x1;const _0x47313c=$(_0x1b61c5(0x26b));_0x47313c[_0x1b61c5(0x295)](Object['assign'](Object[_0x1b61c5(0x1f1)]({},_0x2a8df4()),{'isSelectable'(_0x1b5081){const _0x514622=_0x1b61c5;return _0x1b5081[_0x514622(0x22f)]==='Variable'||_0x1b5081[_0x514622(0x22f)]===_0x514622(0x25f);}}));},'oneditsave'(){}});}()));
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHgxYTU0YzIiLCJfMHg1ZjU5YmUiLCJfMHg1MTVhN2UiLCJfMHg1Y2U1NzEiLCJfMHgxOTA1MTgiLCJfMHg0MmFmOWMiLCJfMHg1YmJlNDkiLCJfMHgxNTZiNmEiLCJQcm9taXNlIiwiXzB4MjkwOTM4IiwiXzB4NDM3ODE3IiwiXzB4NDkwNTQ2IiwiXzB4NTg4MTEzIiwiXzB4MmFiOTJmIiwiXzB4MmYzZjM4IiwiXzB4NTU0N2IyIiwiXzB4MmRjODdjIiwiXzB4OGU5YTE1IiwiXzB4NWViOTEzIiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4MzczNGIyIiwiXzB4NDAwZDBhIiwiXzB4NGI3ZjAxIiwiXzB4NGUxODA4IiwiRXJyb3IiLCJfMHg0YmQ1OGEiLCJfMHgxZjEzZWQiLCJfMHhiNzhhYzQiLCJfMHg1NTQzMDAiLCJfMHgyMGJhMDciLCJfMHg0YWRmNjciLCJfMHg1MTczOGQiLCJfMHg3MTMwZjAiLCJfMHg2NzMzOGYiLCJfMHg0ODFkZGYiLCJfMHgzMTYwMDIiLCJfMHgxYWQ0NDIiLCJfMHg2ZWIzOGMiLCJfMHg0NGQzYTIiLCJfMHgzZjQ2YmUiLCJfMHgxNjMwMzIiLCJfMHg0MWMzMDYiLCJfMHg3MDliZGIiLCJfMHgzYTZkMTYiLCJfMHgzZTBkNTEiLCJlbmRwb2ludE5vZGUiLCJfMHgzNDViYmIiLCJlbmRwb2ludCIsIl8weDRhOTU2ZiIsImJhc2VVcmwiLCJfMHhjZGU2NzIiLCJfMHgzMjY3ZjgiLCJfMHg0NTJlNDQiLCJfMHg1MzU2ZjgiLCJfMHhjMzMyOSIsIl8weDU0ODg2ZCIsIk9iamVjdCIsIl8weDRhZTYzNSIsImZldGNoIiwiSlNPTiIsImNvbnNvbGUiLCJfMHg0YTYzNGIiLCJfMHhhMTFhNWIiLCJfMHg0YzUwODciLCJfMHgyMjNjYWEiLCJfMHgzOGM4NDciLCJfMHg1NmU4YjkiLCJfMHg0ZmM4MDgiLCJfMHgyMDExNjYiLCJfMHg1ODljZjIiLCJfMHgzNWZhZmYiLCJfMHg1YWUzMTEiLCJfMHg0OTNlMmMiLCJfMHg1ZmFiZjgiLCJfMHgyZWVhZmMiLCJfMHg1NmI2YWMiLCJfMHg0ZTMzMmUiLCJzZXRUaW1lb3V0IiwiXzB4Mzk4NGVmIiwiXzB4YzYzOGQ4IiwiXzB4NGU4ODBlIiwiXzB4NDFhOTA0IiwiXzB4NGNlNDVmIiwiXzB4MTUxYzBjIiwiXzB4MjY3YzkxIiwiXzB4MzFlYjY0IiwiXzB4NTgzOTBlIiwiXzB4NTg5NjhkIiwiXzB4NDM1MGNhIiwiXzB4Mjk5MjMxIiwiXzB4MjZjNWI5IiwiXzB4MjA3YzdkIiwiXzB4YTAxOTIxIiwiXzB4MWYxMDYwIiwiXzB4MmE1OGE3IiwiXzB4MjI0ODJlIiwiJCIsIl8weGFhZmQwNCIsIl8weDFlN2U2MiIsImljb24iLCJfMHgxZDQ2NzkiLCJjb2xvciIsIl8weDE3MDY1NSIsIl8weGNjNGFlIiwiXzB4MzlmNzNiIiwidW5kZWZpbmVkIiwiXzB4MzE4YjNjIiwiXzB4MzU0N2FkIiwiXzB4NTdiZDYxIiwiXzB4Mzg3Njc4IiwiXzB4NjdmOTU0IiwiXzB4NGEzNjM4IiwiXzB4MTQ3OWMxIiwiXzB4MTQxNzNiIiwiXzB4NDZmNTViIiwiXzB4NTNiZTc2IiwiXzB4M2M1NjlmIiwiXzB4NWM2OThjIiwicmVmZXJlbmNlcyIsIl8weDVmMjkxNCIsIl8weDM1MDU5MiIsIl8weDUwYmQ2NCIsIl8weDIwNDZjYyIsIl8weDMzYzYxNyIsIl8weDVlZDBkYiIsIl8weDQ1Zjg3ZiIsIl8weDEwZjhmMyIsIl8weDM1MDNlYyIsIl8weDQ4ZTQ0OCIsIl8weDExZTY4YyIsIl8weDU2NjQxYSIsIl8weDU1ZmRhMSIsIl8weDVhOTg1IiwiXzB4NDI5MjY5IiwiXzB4NGI0YzkzIiwiXzB4MTA5YTg5IiwiXzB4NGJhNmQyIiwiXzB4NGI2NTRhIiwiXzB4NzNhNTk2IiwiXzB4MmRiMzkyIiwiZG9jdW1lbnQiLCJfMHgyYjIzNzMiLCJfMHg0NTRmYTEiLCJfMHgyNjU2MzgiLCJfMHgyNTk1OWMiLCJfMHgxNzYyOWQiLCJSRUQiLCJfMHgzMzRmODAiLCJzZWN1cml0eU1vZGUiLCJfMHgyY2M4NGQiLCJzZWN1cml0eVBvbGljeSIsIl8weDRmMDQzMiIsInVzZXJJZGVudGl0eVR5cGUiLCJfMHg1ZTIwYjMiLCJjcmVkZW50aWFscyIsIl8weDU3YzVjMSIsIl8weDFlNDAxMyIsIl8weDJhOGRmNCIsIl8weDFjNDA5MCIsIl8weDM0ODc3YiIsIl8weDI0YjM0YiIsIl8weDNjNjY2YiIsIl8weDViODg2ZSIsIl8weDQ3MzEzYyIsIl8weDFiNTA4MSJdLCJtYXBwaW5ncyI6IjI4R0FBQSxDQUFDLFUsQ0FDRyxhLHdCQW1CQSxTQUFTQSxTQUFULENBQW1CQyxTQUFuQixDQUE0QkMsU0FBNUIsQ0FBd0NDLFNBQXhDLENBQTJDQyxTQUEzQyxDLENBQ0ksU0FBU0MsU0FBVCxDQUFlQyxTQUFmLEMsUUFBK0JBLFNBQUEsWUFBaUJILFNBQWpCLENBQXFCRyxTQUFyQixDQUE2QixJQUFJSCxTQUFKLENBQU0sU0FBVUksU0FBVixDLENBQXFCQSxTQUFBLENBQVFELFNBQVIsQyxFQUEzQixDLFNBQ3JELEdBQUssQ0FBQUgsU0FBQSxFQUFNLENBQUFBLFNBQUEsQ0FBSUssT0FBSixDQUFOLENBQUwsQ0FBeUIsU0FBVUMsU0FBVixDQUFtQkMsU0FBbkIsQyx5QkFDNUIsU0FBU0MsU0FBVCxDQUFtQkMsU0FBbkIsQyx5QkFBNEIsRyxDQUFNQyxTQUFBLENBQUtULFNBQUEsQyxnQkFBQSxFQUFlUSxTQUFmLENBQUwsQyxFQUErQixNQUFPRSxTQUFQLEMsQ0FBWUosU0FBQSxDQUFPSSxTQUFQLEMsR0FDN0UsU0FBU0MsU0FBVCxDQUFrQkMsU0FBbEIsQyx5QkFBMkIsRyxDQUFNSCxTQUFBLENBQUtULFNBQUEsQyxnQkFBQSxFQUFtQlksU0FBbkIsQ0FBTCxDLEVBQW1DLE1BQU9DLFNBQVAsQyxDQUFZUCxTQUFBLENBQU9PLFNBQVAsQyxHQUNoRixTQUFTSixTQUFULENBQWNLLFNBQWQsQyx5QkFBd0JBLFNBQUEsQyxnQkFBQSxFQUFjVCxTQUFBLENBQVFTLFNBQUEsQyxnQkFBQSxDQUFSLENBQWQsQ0FBc0NiLFNBQUEsQ0FBTWEsU0FBQSxDLGdCQUFBLENBQU4sRSxNQUFBLEVBQXlCUCxTQUF6QixDQUFvQ0ksU0FBcEMsQyxFQUM5REYsU0FBQSxDQUFNLENBQUFULFNBQUEsQ0FBWUEsU0FBQSxDLE9BQUEsRUFBZ0JILFNBQWhCLENBQXlCQyxTQUFBLEVBQWMsRUFBdkMsQ0FBWixDQUFELEMsZ0JBQUEsR0FBTCxDLEVBSkcsQyxFQVFYLE9BQU9pQixlQUFQLEcsZ0JBQUEsQ0FBd0NBLGVBQXhDLENBQTBELFNBQVVDLFNBQVYsQ0FBaUJDLFNBQWpCLENBQTZCQyxTQUE3QixDLDJCQUN0RCxJQUFJQyxTQUFBLENBQUksSUFBSUMsS0FBSixDQUFVRixTQUFWLENBQVIsQyxPQUNPQyxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUE0QkEsU0FBQSxDLGdCQUFBLEVBQVVILFNBQXRDLENBQTZDRyxTQUFBLEMsZ0JBQUEsRUFBZUYsU0FBNUQsQ0FBd0VFLFMsRUFGbkYsQ0FLQSxNQUFNRSxTQUFBLEMsZ0JBQU4sQ0FDTUMsU0FBQSxDLGdCQUROLENBRU1DLFNBQUEsQyxnQkFGTixDQUdNQyxTQUFBLEMsV0FITixDQUlNQyxTQUFBLEMsZ0JBSk4sQ0FLTUMsU0FBQSxDLGdCQUxOLENBTU1DLFNBQUEsQyxnQkFOTixDQVFBLElBQUlDLFNBQUosQ0FDQSxDQUFDLFNBQVVDLFNBQVYsQywyQkFDR0EsU0FBQSxDQUFnQkEsU0FBQSxDLGdCQUFBLEUsR0FBaEIsRSxVQUNBQSxTQUFBLENBQWdCQSxTQUFBLEMsZ0JBQUEsRSxHQUFoQixFLGlCQUNBQSxTQUFBLENBQWdCQSxTQUFBLEMsZ0JBQUEsRSxHQUFoQixFLGlCQUNBQSxTQUFBLENBQWdCQSxTQUFBLEMsZ0JBQUEsRSxHQUFoQixFLGtCQUpKLENBS0dELFNBQUEsRUFBb0IsQ0FBQUEsU0FBQSxDQUFrQixFQUFsQixDQUx2QixHQU1BLElBQUlFLFNBQUosQ0FDQSxDQUFDLFNBQVVDLFNBQVYsQywyQkFDR0EsU0FBQSxDQUFVQSxTQUFBLEMsZ0JBQUEsRSxHQUFWLEUsaUJBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLFFBQUEsRSxHQUFWLEUsU0FDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZ0JBQUEsRSxHQUFWLEUsaUJBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGdCQUFBLEUsR0FBVixFLFNBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLFlBQUEsRSxHQUFWLEUsaUJBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGdCQUFBLEUsSUFBVixFLGlCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxnQkFBQSxFLElBQVYsRSxpQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZ0JBQUEsRSxJQUFWLEUsaUJBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGdCQUFBLEUsSUFBVixFLGtCQVRKLENBVUdELFNBQUEsRUFBYyxDQUFBQSxTQUFBLENBQVksRUFBWixDQVZqQixHQVdBLElBQUlFLFNBQUosQ0FDQSxDQUFDLFNBQVVDLFNBQVYsQywyQkFDR0EsU0FBQSxDQUFjQSxTQUFBLEMsZ0JBQUEsRSxHQUFkLEUsU0FDQUEsU0FBQSxDQUFjQSxTQUFBLEMsVUFBQSxFLEdBQWQsRSxXQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxnQkFBQSxFLEdBQWQsRSxpQkFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsZ0JBQUEsRSxHQUFkLEUsYUFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsZ0JBQUEsRSxJQUFkLEUsaUJBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGdCQUFBLEUsSUFBZCxFLGlCQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxVQUFBLEUsSUFBZCxFLFdBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGdCQUFBLEUsSUFBZCxFLGtCQVJKLENBU0dELFNBQUEsRUFBa0IsQ0FBQUEsU0FBQSxDQUFnQixFQUFoQixDQVRyQixHQVVBLElBQUlFLFNBQUosQ0FDQSxDQUFDLFNBQVVDLFNBQVYsQywyQkFDR0EsU0FBQSxDQUFXQSxTQUFBLEMsZ0JBQUEsRSxHQUFYLEUsaUJBQ0FBLFNBQUEsQ0FBV0EsU0FBQSxDLGdCQUFBLEUsR0FBWCxFLFlBQ0FBLFNBQUEsQ0FBV0Es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LENBQWtCcUcsU0FBQSxFQUFsQixDQUFkLENBQWlFLEMsY0FBRSxDQUFhTyxTQUFiLEMsa0NBQ3hFQSxTQUFBLEMsZ0JBQUEsSSxVQUFBLEVBQXFDQSxTQUFBLEMsZ0JBQUEsSSxrQkFEaUMsQ0FBakUsQ0FBcEIsQyxFQTVCd0MsQyxZQWdDNUMsRSxFQWhDNEMsQ0FBaEQsQyxFQXpmSixHIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uICgpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAgICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuXHJcbiAgICBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcclxuICAgIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcbiAgICBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXHJcbiAgICBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFlcclxuICAgIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuICAgIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxyXG4gICAgTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1JcclxuICAgIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuICAgIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXHJcbiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xyXG4gICAgLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UsIFN1cHByZXNzZWRFcnJvciwgU3ltYm9sICovXHJcblxyXG5cclxuICAgIGZ1bmN0aW9uIF9fYXdhaXRlcih0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcclxuICAgICAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cclxuICAgICAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHR5cGVvZiBTdXBwcmVzc2VkRXJyb3IgPT09IFwiZnVuY3Rpb25cIiA/IFN1cHByZXNzZWRFcnJvciA6IGZ1bmN0aW9uIChlcnJvciwgc3VwcHJlc3NlZCwgbWVzc2FnZSkge1xyXG4gICAgICAgIHZhciBlID0gbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gICAgICAgIHJldHVybiBlLm5hbWUgPSBcIlN1cHByZXNzZWRFcnJvclwiLCBlLmVycm9yID0gZXJyb3IsIGUuc3VwcHJlc3NlZCA9IHN1cHByZXNzZWQsIGU7XHJcbiAgICB9O1xuXG4gICAgY29uc3QgT3JnYW5pemVzUmVmTm9kZUlkID0gXCJucz0wO2k9MzVcIjtcbiAgICBjb25zdCBGb2xkZXJUeXBlID0gXCJucz0wO2k9NjFcIjtcbiAgICBjb25zdCBIYXNDb21wb25lbnRSZWZOb2RlSWQgPSBcIm5zPTA7aT00N1wiO1xuICAgIGNvbnN0IEhhc1Byb3BlcnR5UmVmTm9kZUlkID0gXCJucz0wO2k9NDZcIjtcbiAgICBjb25zdCBIYXNDaGlsZFJlZk5vZGVJZCA9IFwibnM9MDtpPTM0XCI7XG4gICAgY29uc3QgSGFzU3VidHlwZVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ1XCI7XG4gICAgY29uc3QgSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQgPSBcIm5zPTA7aT00MFwiO1xuXG4gICAgdmFyIEJyb3dzZURpcmVjdGlvbjtcbiAgICAoZnVuY3Rpb24gKEJyb3dzZURpcmVjdGlvbikge1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiRm9yd2FyZFwiXSA9IDBdID0gXCJGb3J3YXJkXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJJbnZlcnNlXCJdID0gMV0gPSBcIkludmVyc2VcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkJvdGhcIl0gPSAyXSA9IFwiQm90aFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52YWxpZFwiXSA9IDNdID0gXCJJbnZhbGlkXCI7XG4gICAgfSkoQnJvd3NlRGlyZWN0aW9uIHx8IChCcm93c2VEaXJlY3Rpb24gPSB7fSkpO1xuICAgIHZhciBOb2RlQ2xhc3M7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3MpIHtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlVuc3BlY2lmaWVkXCJdID0gMF0gPSBcIlVuc3BlY2lmaWVkXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJPYmplY3RcIl0gPSAxXSA9IFwiT2JqZWN0XCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0VHlwZVwiXSA9IDhdID0gXCJPYmplY3RUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiRGF0YVR5cGVcIl0gPSA2NF0gPSBcIkRhdGFUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzcyB8fCAoTm9kZUNsYXNzID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzTWFzaztcbiAgICAoZnVuY3Rpb24gKE5vZGVDbGFzc01hc2spIHtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJNZXRob2RcIl0gPSA0XSA9IFwiTWV0aG9kXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMzJdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzc01hc2sgfHwgKE5vZGVDbGFzc01hc2sgPSB7fSkpO1xuICAgIHZhciBSZXN1bHRNYXNrO1xuICAgIChmdW5jdGlvbiAoUmVzdWx0TWFzaykge1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMV0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiSXNGb3J3YXJkXCJdID0gMl0gPSBcIklzRm9yd2FyZFwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJOb2RlQ2xhc3NcIl0gPSA0XSA9IFwiTm9kZUNsYXNzXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIkJyb3dzZU5hbWVcIl0gPSA4XSA9IFwiQnJvd3NlTmFtZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJEaXNwbGF5TmFtZVwiXSA9IDE2XSA9IFwiRGlzcGxheU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiVHlwZURlZmluaXRpb25cIl0gPSAzMl0gPSBcIlR5cGVEZWZpbml0aW9uXCI7XG4gICAgfSkoUmVzdWx0TWFzayB8fCAoUmVzdWx0TWFzayA9IHt9KSk7XG4gICAgLy8gIGNvbnN0IHEgPSBSZWZlcmVuY2VUeXBlSWRzLk9yZ2FuaXplcztcbiAgICBmdW5jdGlvbiByZXNvbHZlTm9kZUlkKG5vZGVJZExpa2UpIHtcbiAgICAgICAgc3dpdGNoIChub2RlSWRMaWtlKSB7XG4gICAgICAgICAgICBjYXNlIFwiT3JnYW5pemVzXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIE9yZ2FuaXplc1JlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNQcm9wZXJ0eVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNQcm9wZXJ0eVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDb21wb25lbnRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzQ29tcG9uZW50UmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc0NoaWxkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NoaWxkUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1N1YnR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzU3VidHlwZVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNUeXBlRGVmaW5pdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNUeXBlRGVmaW5pdGlvblJlZk5vZGVJZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGdldEljb24gPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHN3aXRjaCAocmVmZXJlbmNlLm5vZGVDbGFzcykge1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFwiOlxuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBPcmdhbml6ZXNSZWZOb2RlSWQpIDtcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnR5cGVEZWZpbml0aW9uID09PSBGb2xkZXJUeXBlIHx8IHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IFwiaT02MVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtZm9sZGVyXCIsIGNvbG9yOiBcInJnYmEoNjEsIDYwLCA0LCAwLjUyNSlcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJTZWFHcmVlblwiIH07XG4gICAgICAgICAgICBjYXNlIFwiVmFyaWFibGVcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzQ29tcG9uZW50UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiU3RlZWxCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzUHJvcGVydHlSZWZOb2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJEb2RnZXJCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiQ2FkZXRCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFwiTWV0aG9kXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1jb2dcIiwgY29sb3I6IFwiU2FuZHlCcm93blwiIH07XG4gICAgICAgICAgICBjYXNlIFwiT2JqZWN0VHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiBcIkRhcmtPcmFuZ2VcIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlVHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtc2xpZGVyc1wiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXF1ZXN0aW9uXCIsIGNvbG9yOiBcImdyZXlcIiB9O1xuICAgIH07XG5cbiAgICBjb25zdCBicm93c2UgPSAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIG5vZGVJZCwgdGVtcGxhdGUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vYnJvd3NlYDtcbiAgICAgICAgY29uc3QgYnJvd3NlRGVzY3JpcHRpb24gPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHRlbXBsYXRlKSwgeyBub2RlSWQsIHJlc3VsdE1hc2s6IDYzIH0pO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBicm93c2VEZXNjcmlwdGlvbixcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hpbmcgZmFpbGVkIHdpdGggZXJyb3JcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzOiBbXSB9O1xuICAgICAgICB9XG4gICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hlZCA6IFwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgY29uc3QgcmVmZXJlbmNlcyA9IHJlc3BvbnNlLmJyb3dzZVJlc3VsdC5yZWZlcmVuY2VzIHx8IFtdO1xuICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzIH07XG4gICAgfSk7XG5cbiAgICBjb25zdCB0ZW1wbGF0ZTEgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIkhhc0NoaWxkXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3QgdGVtcGxhdGUyID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJPcmdhbml6ZXNcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCBpbnRlcm5hbFZlcmlmeSA9ICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgJGlucHV0RWxlbWVudCwgJGluZm8pID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3Qgbm9kZUlkID0gJGlucHV0RWxlbWVudC52YWwoKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKGAke3Jvb3R9L2NoZWNrTm9kZUlkYCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBzZXROb3RpZmljYXRpb24gPSAodGV4dCwgY2xhc3NOYW1lKSA9PiB7XG4gICAgICAgICAgICAkaW5mby50ZXh0KHRleHQpLmFkZENsYXNzKFwic3RlcmZpdmUtaW5mb1wiKS5hZGRDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgJGluZm8uc2hvdygpO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgJGluZm8ucmVtb3ZlQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICAgICAkaW5mby5oaWRlKCk7XG4gICAgICAgICAgICB9LCAzMDAwKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QganNvbiA9ICh5aWVsZCBkYXRhLmpzb24oKSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICAvLyBkbyBzb21ldGhpbmc7XG4gICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCIhIWZhaWx1cmUhIVwiICsgbm9kZUlkLCBcImZhaWx1cmVcIik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoanNvbi5zdGF0dXNDb2RlLm1hdGNoKC9Hb29kLykpIHtcbiAgICAgICAgICAgICAgICAvLyBkbyBzb21ldGhpbmdcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChqc29uLm5vZGVBZGRyZXNzU3RyaW5nKTtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKFwiR29vZFwiLCBcIm9rXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC52YWwoYCR7bm9kZUlkfWApO1xuICAgICAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihgJHtqc29uLnN0YXR1c0NvZGV9ICR7ZGF0YS5zdGF0dXNUZXh0fWAsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGZ1bmN0aW9uIGZldGNoQ2hpbGRyZW4oJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTEpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MiA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMik7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZmVyZW5jZXM6IFsuLi5icm93c2VSZXN1bHQxLnJlZmVyZW5jZXMsIC4uLmJyb3dzZVJlc3VsdDIucmVmZXJlbmNlc10sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgdGVtcGxhdGVTVCA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzU3VidHlwZVwiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8IE5vZGVDbGFzcy5PYmplY3RUeXBlIHwgTm9kZUNsYXNzLkRhdGFUeXBlIHwgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBmdW5jdGlvbiBmZXRjaFN1YnR5cGVzKCRub2RlLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlSWQgPSAkbm9kZS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQxID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGVTVCk7XG4gICAgICAgICAgICByZXR1cm4gYnJvd3NlUmVzdWx0MTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IG1ha2VFbGVtZW50ID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBpZiAoIXJlZmVyZW5jZSkge1xuICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGk+PGkgY2xhc3M9XCJmYSBmYS1lcnJvclwiIHN0eWxlPVwiY29sb3I6cmVkO1wiPjwvaT5ubyByZWZlcmVuY2UgITx1bD48L3VsPjwvbGk+YCk7XG4gICAgICAgICAgICByZXR1cm4gJGVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbiA9IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgdCA9ICgoX2EgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSB8fCAoKF9iID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IHsgaWNvbiwgY29sb3IgfSA9IGdldEljb24ocmVmZXJlbmNlKTtcbiAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGk+PGkgY2xhc3M9XCJmYSAke2ljb259XCIgc3R5bGU9XCJjb2xvcjoke2NvbG9yfTtcIj48L2k+ICR7dH08dWw+PC91bD48L2xpPmApO1xuICAgICAgICAkZWxlbWVudC5hZGRDbGFzcyhcImV4cGFuZGFibGVcIik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJ2YWx1ZVwiLCBuKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInJlZmVyZW5jZVwiLCByZWZlcmVuY2UpO1xuICAgICAgICByZXR1cm4gJGVsZW1lbnQ7XG4gICAgfTtcbiAgICBjb25zdCBkZWNsYXJlTm9kZUJyb3dzZXJXaWRnZXQgPSAoKSA9PiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBbIFRlbXBlcmF0dXJlICBdXG4gICAgICAgICAqICAgKCB0b29sdGlwIDogKC9PYmplY3RzL015U2Vuc29yKSAobnM9MTtzPVRlbXBlcmF0dXJlKSlcbiAgICAgICAgICogWyArIFtGb2xkZXJdIE9iamVjdHNdXG4gICAgICAgICAqIFsgICAgIFtPYmplY3RdIE15U2Vuc29yXVxuICAgICAgICAgKiBbICAgICAoICkgW1ZhcmlhYmxlXSBUZW1wZXJhdHVyZV1cbiAgICAgICAgICovXG4gICAgICAgICQud2lkZ2V0KFwic3RlcmZpdmUubm9kZUJyb3dzZXJcIiwge1xuICAgICAgICAgICAgLyogZGVmYXVsdCBvcHRpb25zICovXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiAoKSA9PiAoeyBlbmRwb2ludDogXCJvcGMudGNwOi8vb3BjdWFkZW1vLnN0ZXJmaXZlLmNvbToyNjU0M1wiIH0pLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50OiAoKSA9PiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgcGFyZW50Tm9kZTogKCkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgYnJvd3NlTmFtZTogeyBuYW1lc3BhY2VJbmRleDogMCwgbmFtZTogXCJPYmplY3RzXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgbm9kZUNsYXNzOiBcIk9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICBub2RlSWQ6IFwibnM9MDtpPTg1XCIsXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiB7IHRleHQ6IFwiT2JqZWN0c1wiIH0sXG4gICAgICAgICAgICAgICAgICAgIHR5cGVEZWZpbml0aW9uOiBGb2xkZXJUeXBlLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGZpbHRlcjogKCkgPT4gdHJ1ZSxcbiAgICAgICAgICAgICAgICBiYXNlVXJsOiBcIlwiLFxuICAgICAgICAgICAgICAgIGlzVHlwZVJlZjogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzb2x2ZVBhcmVudE5vZGUoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB0eXBlb2YgdGhhdC5vcHRpb25zLnBhcmVudE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5wYXJlbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGEgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geWllbGQgYTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZXNldCgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNvbHZlUGFyZW50Tm9kZSgpLnRoZW4oKHBhcmVudE5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudChwYXJlbnROb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5hcHBlbmQoJGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LmN1cnJlbnRQYXJlbnQgPSBwYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHZlcmlmeSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGludGVybmFsVmVyaWZ5KGRhdGEsIHRoYXQuJGlucHV0LCB0aGF0LiRpbmZvKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfY3JlYXRlKCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIF9mZXRjaERhdGFGb3JOb2RlKCRub2RlLCBmZXRjaEZ1bmMsIGRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbm9kZS5oYXNDbGFzcyhcImZldGNoZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImFscmVhZHkgZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJG5vZGUuaGFzQ2xhc3MoXCJsb2FkaW5nXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhbHJlYWR5IGxvYWRpbmdcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuYWRkQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuYXBwZW5kKCc8ZGl2IGNsYXNzPVwic3Bpbm5lclwiPjwvZGl2PicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyByZWZlcmVuY2VzIH0gPSB5aWVsZCBmZXRjaEZ1bmMoJG5vZGUsIGRhdGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcmVmZXJlbmNlIG9mIHJlZmVyZW5jZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5maWx0ZXIgJiYgIXRoYXQub3B0aW9ucy5maWx0ZXIocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudChyZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwiZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZChgPGxpPmVycm9yICR7ZXJyLm1lc3NhZ2V9PC9saT5gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVyclwiLCBlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuZmluZChcIi5zcGlubmVyXCIpLnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUucmVtb3ZlQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQgPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8gPSAkKFwiPGRpdi8+XCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFkZENsYXNzKFwic3RlcmZpdmUtY29tYm8tYm94XCIpO1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5yZXBsYWNlV2l0aCh0aGF0LiRjb21ibyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cCA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJpbnB1dC1ncm91cFwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5wdXRHcm91cCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kaW5wdXQpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtc2l0ZW1hcFwiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiR0b2dnbGVUcmVlQnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGRyb3Bkb3duLmlzKFwiOnZpc2libGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRyZWUgd2lkZ2V0IGlzIGdvaW5nIHRvIGJlY29tZSB2aXNpYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LnJlc29sdmVQYXJlbnROb2RlKCkudGhlbigocGFyZW50Tm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyZW50Tm9kZSAhPT0gdGhhdC5jdXJyZW50UGFyZW50IHx8ICgoX2EgPSB0aGF0LmN1cnJlbnRQYXJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5ub2RlSWQpICE9PSBwYXJlbnROb2RlLm5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtZmxhc2tcIj48L2k+PC9idXR0b24+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kdmVyaWZ5QnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmVyaWZ5KCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIsIFwiZW50ZXIgYSBub2RlSWQgb3IgYSBicm93c2VQYXRoIFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mbyA9ICQoYDxkaXYgY2xhc3M9XCJpbmZvLXRleHRcIj48L2Rpdj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgKHtcbiAgICAgICAgICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93biA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJzdGVyZml2ZS1kcm9wZG93blwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGluZm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRkcm9wZG93bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZSA9ICQoYDx1bCBjbGFzcz1cInN0ZXJmaXZlLXRyZWVcIj48L3VsPmApLmFwcGVuZFRvKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlV2lkdGggPSAyMDsgLy8gU2V0IHdpZHRoIG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZUhlaWdodCA9IDIwOyAvLyBTZXQgaGVpZ2h0IG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRQb3MgPSAkKHRoaXMpLm9mZnNldCgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlID0gZXZlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlLnBhZ2VYID49IGVsZW1lbnRQb3MubGVmdCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWCA8PSBlbGVtZW50UG9zLmxlZnQgKyBiZWZvcmVXaWR0aCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA+PSBlbGVtZW50UG9zLnRvcCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA8PSBlbGVtZW50UG9zLnRvcCArIGJlZm9yZUhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGFibGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGxpLmhhc0NsYXNzKFwiZmV0Y2hlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZldGNoIG5ldyBkYXRhIGZvciB0aGlzIG5vZGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlVXJsOiB0aGF0Lm9wdGlvbnMuYmFzZVVybCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRwb2ludDogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50KCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmID0gIXRoYXQub3B0aW9ucy5pc1R5cGVSZWYgPyBmZXRjaENoaWxkcmVuIDogZmV0Y2hTdWJ0eXBlcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZmV0Y2hEYXRhRm9yTm9kZSgkbGksIGYsIGRhdGEpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCIgRmV0Y2hpbmcgZG9uZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtYXJrIGFzIGV4cGFuZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyb3JcIiwgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVG9nZ2xlIGl0cyBleHBhbmRlZC9jb2xsYXBzZWQgc3RhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmNoaWxkcmVuKFwidWxcIikuY2hpbGRyZW4oKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSAkbGkuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVmZXJlbmNlID0gJGxpLmRhdGEoXCJyZWZlcmVuY2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5vcHRpb25zLmlzU2VsZWN0YWJsZSAmJiAhdGhhdC5vcHRpb25zLmlzU2VsZWN0YWJsZShyZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuZGF0YShcInJlZmVyZW5jZVwiLCByZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGlzcGxheU5hbWUgPSAoKF9hID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGV4dCkgfHwgKChfYiA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5wdXQgPSBgWyR7ZGlzcGxheU5hbWV9XSgke3ZhbHVlfSlgO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudmFsKGlucHV0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5vbihcImNsaWNrXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBjbGlja2luZyBvdXRzaWRlIHRoZSBwYWdlIHdpbGwgaGlkZSB0aGUgZHJvcGRvd25cbiAgICAgICAgICAgICAgICAgICAgaWYgKCEkKGV2ZW50LnRhcmdldCkuY2xvc2VzdCh0aGF0LiRjb21ibykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBjb25zdCBnZXRFbmRQb2ludEF0dHJpYnV0ZXMgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0ICRlbmRwb2ludCA9ICQoXCIjbm9kZS1pbnB1dC1lbmRwb2ludFwiKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnRJZCA9ICRlbmRwb2ludC52YWwoKTtcbiAgICAgICAgY29uc3QgcmVkTm9kZSA9IFJFRC5ub2Rlcy5ub2RlKGVuZHBvaW50SWQpO1xuICAgICAgICBpZiAoIXJlZE5vZGUpXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAvLyBjb25zdCBjcmVkZW50aWFscyA9IFJFRC4oZW5kcG9pbnRJZCk7XG4gICAgICAgIC8vIHdlIG5lZWQgdG8gc2FuaXRpemUgYW5kIGV4dHJhY3QgdGhlIGVuZHBvaW50IGF0dHJpYnV0ZXMgb25seSAoIG5vdCB0aGUgbm9kZS1yZWQgc3R1ZmYpXG4gICAgICAgIGNvbnN0IHsgZW5kcG9pbnQsIHNlY3VyaXR5TW9kZSwgc2VjdXJpdHlQb2xpY3ksIHVzZXJJZGVudGl0eVR5cGUsIGNyZWRlbnRpYWxzIH0gPSByZWROb2RlO1xuICAgICAgICBjb25zdCByZXRWYWx1ZSA9IHtcbiAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgc2VjdXJpdHlNb2RlLFxuICAgICAgICAgICAgc2VjdXJpdHlQb2xpY3ksXG4gICAgICAgICAgICB1c2VySWRlbnRpdHlUeXBlLFxuICAgICAgICAgICAgY3JlZGVudGlhbHMsXG4gICAgICAgIH07XG4gICAgICAgIGNvbnNvbGUubG9nKFwieHh4XCIsIHJldFZhbHVlKTtcbiAgICAgICAgcmV0dXJuIHJldFZhbHVlO1xuICAgIH07XG4gICAgY29uc3QgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlciA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzLFxuICAgICAgICB9O1xuICAgIH07XG4gICAgY29uc3QgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzID0gKCkgPT4ge1xuICAgICAgICBjb25zdCAkZW5kcG9pbnQgPSAkKFwiI25vZGUtaW5wdXQtZW5kcG9pbnRcIik7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50SWQgPSAkZW5kcG9pbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50TnIgPSBnZXRFbmRQb2ludEF0dHJpYnV0ZXMoKTtcbiAgICAgICAgaWYgKCFlbmRwb2ludE5yKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpZDogZW5kcG9pbnRJZCxcbiAgICAgICAgICAgIC8vIGVuZHBvaW50OiBlbmRwb2ludE5yLmVuZHBvaW50LFxuICAgICAgICAgICAgLy8gc2VjdXJpdHlNb2RlOiBlbmRwb2ludE5yLnNlY3VyaXR5TW9kZSxcbiAgICAgICAgICAgIC8vIHNlY3VyaXR5UG9saWN5OiBlbmRwb2ludE5yLnNlY3VyaXR5UG9saWN5LFxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIHVzZXJJZGVudGl0eVR5cGU6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSxcbiAgICAgICAgICAgIC8vIGNyZWRlbnRpYWw6IGVuZHBvaW50TnIuY3JlZGVudGlhbHMsXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgLy8gdXNlck5hbWU6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSA9PT0gXCJVc2VyTmFtZVwiID8gZW5kcG9pbnROci5jcmVkZW50aWFscy51c2VyTmFtZSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIC8vIHBhc3N3b3JkOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUgPT09IFwiVXNlck5hbWVcIiA/IGVuZHBvaW50TnIuY3JlZGVudGlhbHMucGFzc3dvcmQgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAvLyB1c2VyQ2VydGlmaWNhdGU6IGVuZHBvaW50TnIuY3JlZGVudGlhbHMudXNlckNlcnRpZmljYXRlLFxuICAgICAgICAgICAgLy8gdXNlclByaXZhdGVrZXk6IGVuZHBvaW50TnIuY3JlZGVudGlhbHMudXNlclByaXZhdGVrZXksXG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIFJFRC5ub2Rlcy5yZWdpc3RlclR5cGUoXCJPcGNVYS1DbGllbnQyLUV4cGxvcmVcIiwge1xuICAgICAgICBjYXRlZ29yeTogXCJvcGN1YVwiLFxuICAgICAgICBjb2xvcjogXCIjQzBERUVEXCIsXG4gICAgICAgIGFsaWduOiBcInJpZ2h0XCIsXG4gICAgICAgIGljb246IFwiLi4vLi4vaWNvbnMvb3BjdWFub2RlTG9nby5wbmdcIixcbiAgICAgICAgcGFsZXR0ZUxhYmVsOiBcImV4cGxvcmVcIixcbiAgICAgICAgZGVmYXVsdHM6IHtcbiAgICAgICAgICAgIGlucHV0czogeyB2YWx1ZTogMSB9LFxuICAgICAgICAgICAgb3V0cHV0OiB7IHZhbHVlOiA0IH0sXG4gICAgICAgICAgICAvLyBDb21tb25cbiAgICAgICAgICAgIG5hbWU6IHsgdmFsdWU6IFwiXCIgfSxcbiAgICAgICAgICAgIGVuZHBvaW50OiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogdHJ1ZSwgdHlwZTogXCJPcGNVYS1FbmRwb2ludDJcIiB9LFxuICAgICAgICAgICAgLy8gZm9yIGFjdGlvbiBleHBsb3JlXG4gICAgICAgICAgICBub2RlSWQ6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiBmYWxzZSB9LFxuICAgICAgICAgICAgb3V0cHV0VHlwZTogeyB2YWx1ZTogXCJWYWx1ZVwiLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICB9LFxuICAgICAgICBvdXRwdXRzOiAxLFxuICAgICAgICBsYWJlbCgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgfHwgXCJPUENVQSBFeHBsb3JlXCI7XG4gICAgICAgIH0sXG4gICAgICAgIGxhYmVsU3R5bGUoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uYW1lID8gXCJub2RlX2xhYmVsX2l0YWxpY1wiIDogXCJcIjtcbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0cHJlcGFyZSgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzO1xuICAgICAgICAgICAgZGVjbGFyZU5vZGVCcm93c2VyV2lkZ2V0KCk7XG4gICAgICAgICAgICBub2RlLmlucHV0cyA9IDE7XG4gICAgICAgICAgICBjb25zdCAkbm9kZUlkID0gJChcIiNub2RlLWlucHV0LW5vZGVJZFwiKTtcbiAgICAgICAgICAgICRub2RlSWQubm9kZUJyb3dzZXIoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyKCkpLCB7IGlzU2VsZWN0YWJsZShub2RlRGVzYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIlZhcmlhYmxlXCIgfHwgbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIk9iamVjdFwiO1xuICAgICAgICAgICAgICAgIH0gfSkpO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRzYXZlKCkgeyB9LFxuICAgIH0pO1xuXG59KSgpOyJdfQ==
|
7
|
+
function _0x4062(_0x2f750c,_0x349082){const _0xdd55ca=_0xdd55();return _0x4062=function(_0x4062b9,_0x512118){_0x4062b9=_0x4062b9-0x1f3;let _0x5cd858=_0xdd55ca[_0x4062b9];return _0x5cd858;},_0x4062(_0x2f750c,_0x349082);}(function(_0x330527,_0x354168){const _0x3f720b=_0x4062,_0x50df48=_0x330527();while(!![]){try{const _0x2fb4a1=parseInt(_0x3f720b(0x25b))/0x1+-parseInt(_0x3f720b(0x26b))/0x2*(-parseInt(_0x3f720b(0x25e))/0x3)+parseInt(_0x3f720b(0x20c))/0x4+parseInt(_0x3f720b(0x234))/0x5+-parseInt(_0x3f720b(0x278))/0x6*(parseInt(_0x3f720b(0x24a))/0x7)+parseInt(_0x3f720b(0x230))/0x8*(parseInt(_0x3f720b(0x26f))/0x9)+parseInt(_0x3f720b(0x22a))/0xa*(-parseInt(_0x3f720b(0x24e))/0xb);if(_0x2fb4a1===_0x354168)break;else _0x50df48['push'](_0x50df48['shift']());}catch(_0x554198){_0x50df48['push'](_0x50df48['shift']());}}}(_0xdd55,0xcee8a),(function(){'use strict';const _0x26d55d=_0x4062;function _0x5d7c05(_0x1801d9,_0x10a257,_0x34cd9a,_0x52b3c6){function _0x495317(_0x1a9fcf){return _0x1a9fcf instanceof _0x34cd9a?_0x1a9fcf:new _0x34cd9a(function(_0x53baac){_0x53baac(_0x1a9fcf);});}return new(_0x34cd9a||(_0x34cd9a=Promise))(function(_0x15c31e,_0x2e6124){const _0x5ec356=_0x4062;function _0x362379(_0x35be0c){const _0x20f594=_0x4062;try{_0x572e67(_0x52b3c6[_0x20f594(0x21c)](_0x35be0c));}catch(_0x388928){_0x2e6124(_0x388928);}}function _0x453f35(_0x36c966){const _0x5d9ed3=_0x4062;try{_0x572e67(_0x52b3c6[_0x5d9ed3(0x23c)](_0x36c966));}catch(_0x4bd5be){_0x2e6124(_0x4bd5be);}}function _0x572e67(_0xdf9bbe){const _0x5a0343=_0x4062;_0xdf9bbe[_0x5a0343(0x266)]?_0x15c31e(_0xdf9bbe[_0x5a0343(0x209)]):_0x495317(_0xdf9bbe[_0x5a0343(0x209)])[_0x5a0343(0x260)](_0x362379,_0x453f35);}_0x572e67((_0x52b3c6=_0x52b3c6[_0x5ec356(0x1ff)](_0x1801d9,_0x10a257||[]))[_0x5ec356(0x21c)]());});}typeof SuppressedError===_0x26d55d(0x208)?SuppressedError:function(_0x1149ef,_0x47339d,_0x478e5e){const _0xb894b1=_0x26d55d;var _0x5c6c96=new Error(_0x478e5e);return _0x5c6c96[_0xb894b1(0x229)]=_0xb894b1(0x259),_0x5c6c96[_0xb894b1(0x26c)]=_0x1149ef,_0x5c6c96[_0xb894b1(0x272)]=_0x47339d,_0x5c6c96;};const _0x2e6beb=_0x26d55d(0x28c),_0x2b791f=_0x26d55d(0x212),_0x17a86e=_0x26d55d(0x204),_0xb8e819=_0x26d55d(0x297),_0xe6d502=_0x26d55d(0x261),_0x4f7084=_0x26d55d(0x23b),_0x58b5f6='ns=0;i=40';var _0x3694d5;(function(_0x5032fd){const _0x5003fc=_0x26d55d;_0x5032fd[_0x5032fd[_0x5003fc(0x27d)]=0x0]=_0x5003fc(0x27d),_0x5032fd[_0x5032fd['Inverse']=0x1]=_0x5003fc(0x29a),_0x5032fd[_0x5032fd['Both']=0x2]=_0x5003fc(0x281),_0x5032fd[_0x5032fd['Invalid']=0x3]=_0x5003fc(0x289);}(_0x3694d5||(_0x3694d5={})));var _0x3f3457;(function(_0x2f6364){const _0x46e871=_0x26d55d;_0x2f6364[_0x2f6364['Unspecified']=0x0]='Unspecified',_0x2f6364[_0x2f6364[_0x46e871(0x252)]=0x1]=_0x46e871(0x252),_0x2f6364[_0x2f6364[_0x46e871(0x24b)]=0x2]=_0x46e871(0x24b),_0x2f6364[_0x2f6364[_0x46e871(0x1f8)]=0x4]='Method',_0x2f6364[_0x2f6364[_0x46e871(0x24d)]=0x8]=_0x46e871(0x24d),_0x2f6364[_0x2f6364[_0x46e871(0x277)]=0x10]=_0x46e871(0x277),_0x2f6364[_0x2f6364['ReferenceType']=0x20]=_0x46e871(0x24f),_0x2f6364[_0x2f6364[_0x46e871(0x273)]=0x40]=_0x46e871(0x273),_0x2f6364[_0x2f6364[_0x46e871(0x255)]=0x80]=_0x46e871(0x255);}(_0x3f3457||(_0x3f3457={})));var _0x44f5cd;(function(_0x4c16d9){const _0x3d5e12=_0x26d55d;_0x4c16d9[_0x4c16d9[_0x3d5e12(0x252)]=0x1]=_0x3d5e12(0x252),_0x4c16d9[_0x4c16d9[_0x3d5e12(0x24b)]=0x2]=_0x3d5e12(0x24b),_0x4c16d9[_0x4c16d9[_0x3d5e12(0x1f8)]=0x4]=_0x3d5e12(0x1f8),_0x4c16d9[_0x4c16d9['ObjectType']=0x8]='ObjectType',_0x4c16d9[_0x4c16d9['VariableType']=0x10]=_0x3d5e12(0x277),_0x4c16d9[_0x4c16d9[_0x3d5e12(0x24f)]=0x20]='ReferenceType',_0x4c16d9[_0x4c16d9[_0x3d5e12(0x273)]=0x40]=_0x3d5e12(0x273),_0x4c16d9[_0x4c16d9[_0x3d5e12(0x255)]=0x80]=_0x3d5e12(0x255);}(_0x44f5cd||(_0x44f5cd={})));var _0x338327;(function(_0x3f4096){const _0x3de743=_0x26d55d;_0x3f4096[_0x3f4096[_0x3de743(0x24f)]=0x1]=_0x3de743(0x24f),_0x3f4096[_0x3f4096['IsForward']=0x2]='IsForward',_0x3f4096[_0x3f4096[_0x3de743(0x27f)]=0x4]=_0x3de743(0x27f),_0x3f4096[_0x3f4096[_0x3de743(0x292)]=0x8]=_0x3de743(0x292),_0x3f4096[_0x3f4096[_0x3de743(0x1fb)]=0x10]=_0x3de743(0x1fb),_0x3f4096[_0x3f4096[_0x3de743(0x1f4)]=0x20]=_0x3de743(0x1f4);}(_0x338327||(_0x338327={})));function _0x5f4374(_0x4cdf12){const _0x3d2ca8=_0x26d55d;switch(_0x4cdf12){case _0x3d2ca8(0x215):return _0x2e6beb;case _0x3d2ca8(0x25d):return _0xb8e819;case _0x3d2ca8(0x284):return _0x17a86e;case'HasChild':return _0xe6d502;case _0x3d2ca8(0x21a):return _0x4f7084;case'HasTypeDefinition':return _0x58b5f6;}}const _0x138a8f=_0x1b194e=>{const _0x61531c=_0x26d55d;switch(_0x1b194e['nodeClass']){case _0x61531c(0x252):if(_0x1b194e[_0x61531c(0x21e)]===_0x2e6beb);if(_0x1b194e[_0x61531c(0x280)]===_0x2b791f||_0x1b194e[_0x61531c(0x21e)]==='i=61')return{'icon':_0x61531c(0x231),'color':_0x61531c(0x207)};return{'icon':_0x61531c(0x29b),'color':_0x61531c(0x20f)};case _0x61531c(0x24b):if(_0x1b194e[_0x61531c(0x21e)]===_0x17a86e)return{'icon':_0x61531c(0x286),'color':_0x61531c(0x27e)};else return _0x1b194e[_0x61531c(0x21e)]===_0xb8e819?{'icon':_0x61531c(0x286),'color':_0x61531c(0x218)}:{'icon':_0x61531c(0x286),'color':'CadetBlue'};case _0x61531c(0x1f8):return{'icon':_0x61531c(0x256),'color':_0x61531c(0x235)};case _0x61531c(0x24d):return{'icon':_0x61531c(0x29b),'color':'DarkOrange'};case _0x61531c(0x277):return{'icon':'fa-sliders','color':_0x61531c(0x298)};}return{'icon':'fa-question','color':'grey'};},_0x93b317=({endpointNode:_0x11a0a3,endpoint:_0x585b27,baseUrl:_0x5ede85},_0x2787af,_0x463d7f)=>_0x5d7c05(void 0x0,void 0x0,void 0x0,function*(){const _0x14688e=_0x26d55d,_0x4acb95=_0x5ede85+_0x14688e(0x1f7),_0x243890=_0x4acb95+_0x14688e(0x290),_0x4688de=Object[_0x14688e(0x257)](Object[_0x14688e(0x257)]({},_0x463d7f),{'nodeId':_0x2787af,'resultMask':0x3f}),_0x44052c=yield fetch(_0x243890,{'method':_0x14688e(0x267),'body':JSON[_0x14688e(0x274)]({'endpointNode':_0x11a0a3,'endpoint':_0x585b27,'browseDescription':_0x4688de}),'headers':{'Content-Type':_0x14688e(0x226)}});if(_0x44052c[_0x14688e(0x263)]!==0xc8)return console[_0x14688e(0x20a)](_0x14688e(0x239),_0x44052c[_0x14688e(0x263)],_0x44052c[_0x14688e(0x200)]),{'references':[]};console['log']('fetched\x20:\x20',_0x44052c['status'],_0x44052c[_0x14688e(0x200)]);const _0xadb5fc=yield _0x44052c['json'](),_0x5f50ea=_0xadb5fc['browseResult'][_0x14688e(0x203)]||[];return{'references':_0x5f50ea};}),_0x472130={'referenceTypeId':_0x5f4374('HasChild'),'includeSubtypes':!![],'browseDirection':_0x3694d5['Forward'],'nodeClassMask':_0x3f3457[_0x26d55d(0x24b)]|_0x3f3457['Object']|_0x3f3457[_0x26d55d(0x1f8)],'resultMask':0x3f},_0x186b13={'referenceTypeId':_0x5f4374(_0x26d55d(0x215)),'includeSubtypes':!![],'browseDirection':_0x3694d5[_0x26d55d(0x27d)],'nodeClassMask':_0x3f3457[_0x26d55d(0x24b)]|_0x3f3457['Object']|_0x3f3457[_0x26d55d(0x1f8)],'resultMask':0x3f},_0x49b333=({endpointNode:_0xa8ecd0,endpoint:_0x4a1b93,baseUrl:_0x2cbbeb},_0x56619c,_0x4014cf)=>_0x5d7c05(void 0x0,void 0x0,void 0x0,function*(){const _0x3e4645=_0x26d55d,_0x20b672=_0x2cbbeb+_0x3e4645(0x1f7),_0x483d18=_0x56619c['val'](),_0x10faaa=yield fetch(_0x20b672+_0x3e4645(0x233),{'method':_0x3e4645(0x267),'body':JSON[_0x3e4645(0x274)]({'endpointNode':_0xa8ecd0,'endpoint':_0x4a1b93,'nodeId':_0x483d18}),'headers':{'Content-Type':_0x3e4645(0x226)}}),_0x29d13f=(_0x351e4f,_0x30dfdb)=>{const _0xe36b31=_0x3e4645;_0x4014cf[_0xe36b31(0x268)](_0x351e4f)[_0xe36b31(0x28f)](_0xe36b31(0x25c))[_0xe36b31(0x28f)](_0x30dfdb),_0x4014cf['show'](),setTimeout(()=>{const _0x13ee1c=_0xe36b31;_0x4014cf[_0x13ee1c(0x249)](_0x30dfdb),_0x4014cf[_0x13ee1c(0x27b)]();},0xbb8);},_0xee5bc0=yield _0x10faaa[_0x3e4645(0x250)]();_0x10faaa[_0x3e4645(0x263)]!==0xc8?_0x29d13f(_0x3e4645(0x29d)+_0x483d18,_0x3e4645(0x25f)):_0xee5bc0['statusCode'][_0x3e4645(0x205)](/Good/)?(_0x56619c[_0x3e4645(0x23e)](_0xee5bc0[_0x3e4645(0x224)]),_0x56619c[_0x3e4645(0x22d)](_0x3e4645(0x258)),_0x29d13f('Good','ok')):(_0x56619c[_0x3e4645(0x23e)](''+_0x483d18),_0x29d13f(_0xee5bc0[_0x3e4645(0x216)]+'\x20'+_0x10faaa[_0x3e4645(0x200)],_0x3e4645(0x25f)));});function _0x2a72e6(_0xa5d8c8,_0x5ae941){return _0x5d7c05(this,void 0x0,void 0x0,function*(){const _0x2f94d3=_0x4062,_0x508859=_0xa5d8c8['data'](_0x2f94d3(0x209)),_0x17d873=yield _0x93b317(_0x5ae941,_0x508859,_0x472130),_0x1a3a23=yield _0x93b317(_0x5ae941,_0x508859,_0x186b13);return{'references':[..._0x17d873[_0x2f94d3(0x203)],..._0x1a3a23[_0x2f94d3(0x203)]]};});}const _0x9301ab={'referenceTypeId':_0x5f4374('HasSubtype'),'includeSubtypes':!![],'browseDirection':_0x3694d5[_0x26d55d(0x27d)],'nodeClassMask':_0x3f3457[_0x26d55d(0x24f)]|_0x3f3457[_0x26d55d(0x24d)]|_0x3f3457[_0x26d55d(0x273)]|_0x3f3457['VariableType'],'resultMask':0x3f};function _0x1034f0(_0x2c695d,_0xc4b54f){return _0x5d7c05(this,void 0x0,void 0x0,function*(){const _0x578a53=_0x4062,_0x4accc5=_0x2c695d[_0x578a53(0x214)]('value'),_0x429efc=yield _0x93b317(_0xc4b54f,_0x4accc5,_0x9301ab);return _0x429efc;});}const _0x3b7e39=_0x4dbc29=>{const _0x3105af=_0x26d55d;var _0xdbcaba,_0x2396b1;if(!_0x4dbc29){const _0x38515e=$(_0x3105af(0x271));return _0x38515e;}const _0x15df3b=_0x4dbc29[_0x3105af(0x21f)][_0x3105af(0x232)](),_0x8b901c=((_0xdbcaba=_0x4dbc29[_0x3105af(0x223)])===null||_0xdbcaba===void 0x0?void 0x0:_0xdbcaba[_0x3105af(0x268)])||((_0x2396b1=_0x4dbc29['browseName'])===null||_0x2396b1===void 0x0?void 0x0:_0x2396b1[_0x3105af(0x229)])||_0x4dbc29[_0x3105af(0x21f)][_0x3105af(0x232)](),{icon:_0x4d43d6,color:_0x5441b1}=_0x138a8f(_0x4dbc29),_0x2c4fb7=$(_0x3105af(0x201)+_0x4d43d6+_0x3105af(0x282)+_0x5441b1+';\x22></i>\x20'+_0x8b901c+_0x3105af(0x27a));return _0x2c4fb7[_0x3105af(0x28f)]('expandable'),_0x2c4fb7[_0x3105af(0x214)](_0x3105af(0x209),_0x15df3b),_0x2c4fb7[_0x3105af(0x214)](_0x3105af(0x219),_0x4dbc29),_0x2c4fb7;},_0x43710c=()=>{const _0x431054=_0x26d55d;$[_0x431054(0x26d)](_0x431054(0x242),{'options':{'endpointNode':()=>({'endpoint':_0x431054(0x222)}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':_0x431054(0x246)},'nodeClass':_0x431054(0x252),'nodeId':_0x431054(0x299),'displayName':{'text':_0x431054(0x246)},'typeDefinition':_0x2b791f}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x5d7c05(this,void 0x0,void 0x0,function*(){const _0x1e849e=_0x4062,_0x1f60f6=this,_0x50ef10=typeof _0x1f60f6[_0x1e849e(0x1fe)][_0x1e849e(0x211)]===_0x1e849e(0x208)?_0x1f60f6['options'][_0x1e849e(0x211)]():_0x1f60f6[_0x1e849e(0x1fe)]['parentNode'];if(_0x50ef10 instanceof Promise)return yield _0x50ef10;return _0x50ef10;});},'reset'(){const _0x499d5d=_0x431054,_0x5ebbfa=this;_0x5ebbfa['$tree']['empty'](),this[_0x499d5d(0x1f3)]()['then'](_0x4e84d9=>{const _0x4e4aaa=_0x499d5d,_0x5830ae=_0x3b7e39(_0x4e84d9);_0x5ebbfa[_0x4e4aaa(0x221)][_0x4e4aaa(0x237)](_0x5830ae),_0x5ebbfa[_0x4e4aaa(0x1fc)]=_0x4e84d9;});},'verify'(){const _0x323ca0=_0x431054,_0x48046b=this,_0x5764bb={'baseUrl':_0x48046b['options']['baseUrl'],'endpointNode':typeof _0x48046b['options'][_0x323ca0(0x294)]===_0x323ca0(0x208)?_0x48046b[_0x323ca0(0x1fe)][_0x323ca0(0x294)]():_0x48046b[_0x323ca0(0x1fe)][_0x323ca0(0x294)],'endpoint':typeof _0x48046b[_0x323ca0(0x1fe)][_0x323ca0(0x251)]===_0x323ca0(0x208)?_0x48046b[_0x323ca0(0x1fe)]['endpoint']():_0x48046b[_0x323ca0(0x1fe)][_0x323ca0(0x251)]};_0x49b333(_0x5764bb,_0x48046b[_0x323ca0(0x213)],_0x48046b[_0x323ca0(0x227)]);},'_create'(){const _0x1f26aa=_0x431054,_0x5bc111=this;function _0xcd7110(_0x223ccf,_0x1eb28c,_0x46cb8c){return _0x5d7c05(this,void 0x0,void 0x0,function*(){const _0x4beb14=_0x4062;if(_0x223ccf['hasClass'](_0x4beb14(0x279))){console[_0x4beb14(0x20a)](_0x4beb14(0x20d));return;}if(_0x223ccf[_0x4beb14(0x296)](_0x4beb14(0x248))){console['log'](_0x4beb14(0x276));return;}_0x223ccf['addClass'](_0x4beb14(0x248)),_0x223ccf[_0x4beb14(0x237)]('<div\x20class=\x22spinner\x22></div>');try{_0x223ccf[_0x4beb14(0x27c)]('ul')[_0x4beb14(0x269)]();const {references:_0x573349}=yield _0x1eb28c(_0x223ccf,_0x46cb8c);for(const _0x408a0c of _0x573349){if(_0x5bc111['options']['filter']&&!_0x5bc111[_0x4beb14(0x1fe)]['filter'](_0x408a0c))continue;const _0x328e6b=_0x3b7e39(_0x408a0c);_0x223ccf[_0x4beb14(0x27c)]('ul')['append'](_0x328e6b);}_0x223ccf['addClass'](_0x4beb14(0x279));}catch(_0x546a5e){_0x223ccf[_0x4beb14(0x27c)]('ul')['append'](_0x4beb14(0x28a)+_0x546a5e[_0x4beb14(0x288)]+_0x4beb14(0x240)),console[_0x4beb14(0x20a)](_0x4beb14(0x265),_0x546a5e);}_0x223ccf[_0x4beb14(0x247)](_0x4beb14(0x270))[_0x4beb14(0x28b)](),_0x223ccf['removeClass'](_0x4beb14(0x248));});}_0x5bc111[_0x1f26aa(0x213)]=this['element'],_0x5bc111[_0x1f26aa(0x254)]=$('<div/>'),_0x5bc111[_0x1f26aa(0x254)]['addClass']('sterfive-combo-box'),this[_0x1f26aa(0x293)][_0x1f26aa(0x285)](_0x5bc111[_0x1f26aa(0x254)]),_0x5bc111[_0x1f26aa(0x1fd)]=$('<div/>')[_0x1f26aa(0x28f)]('input-group'),_0x5bc111[_0x1f26aa(0x254)]['append'](_0x5bc111[_0x1f26aa(0x1fd)]),_0x5bc111['$inputGroup'][_0x1f26aa(0x237)](_0x5bc111['$input']),_0x5bc111[_0x1f26aa(0x1f9)]=$('<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>'),_0x5bc111[_0x1f26aa(0x1fd)]['append'](_0x5bc111['$toggleTreeBtn']),_0x5bc111[_0x1f26aa(0x1f9)]['on'](_0x1f26aa(0x244),function(){const _0x1363d3=_0x1f26aa;!_0x5bc111[_0x1363d3(0x26e)]['is'](':visible')&&(_0x5bc111['resolveParentNode']()['then'](_0x12e5b9=>{const _0xa0e949=_0x1363d3;var _0x4a879b;(_0x12e5b9!==_0x5bc111[_0xa0e949(0x1fc)]||((_0x4a879b=_0x5bc111['currentParent'])===null||_0x4a879b===void 0x0?void 0x0:_0x4a879b[_0xa0e949(0x21f)])!==_0x12e5b9[_0xa0e949(0x21f)])&&_0x5bc111[_0xa0e949(0x295)]();}),_0x5bc111['$info']['hide']()),_0x5bc111[_0x1363d3(0x26e)][_0x1363d3(0x287)]();}),_0x5bc111['$verifyBtn']=$(_0x1f26aa(0x220)),_0x5bc111[_0x1f26aa(0x1fd)]['append'](_0x5bc111[_0x1f26aa(0x1f5)]),_0x5bc111[_0x1f26aa(0x1f5)]['on']('click',()=>{this['verify']();}),!_0x5bc111[_0x1f26aa(0x213)][_0x1f26aa(0x236)](_0x1f26aa(0x21b))&&_0x5bc111[_0x1f26aa(0x213)]['attr'](_0x1f26aa(0x21b),'enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20'),_0x5bc111['$info']=$(_0x1f26aa(0x20b)),_0x5bc111['$info'][_0x1f26aa(0x27b)](),{'baseUrl':_0x5bc111[_0x1f26aa(0x1fe)][_0x1f26aa(0x1fa)],'endpointNode':typeof _0x5bc111['options'][_0x1f26aa(0x294)]==='function'?_0x5bc111['options'][_0x1f26aa(0x294)]():_0x5bc111['options'][_0x1f26aa(0x294)],'endpoint':typeof _0x5bc111[_0x1f26aa(0x1fe)]['endpoint']===_0x1f26aa(0x208)?_0x5bc111[_0x1f26aa(0x1fe)][_0x1f26aa(0x251)]():_0x5bc111[_0x1f26aa(0x1fe)]['endpoint']},_0x5bc111['$dropdown']=$('<div/>')[_0x1f26aa(0x28f)](_0x1f26aa(0x291))[_0x1f26aa(0x27b)](),_0x5bc111[_0x1f26aa(0x254)]['append'](_0x5bc111[_0x1f26aa(0x227)]),_0x5bc111[_0x1f26aa(0x254)][_0x1f26aa(0x237)](_0x5bc111[_0x1f26aa(0x26e)]),_0x5bc111['$tree']=$(_0x1f26aa(0x28e))[_0x1f26aa(0x23a)](_0x5bc111[_0x1f26aa(0x26e)]),this[_0x1f26aa(0x295)](),_0x5bc111[_0x1f26aa(0x221)]['on'](_0x1f26aa(0x244),'li',function(_0x302213){const _0x617de5=_0x1f26aa;var _0x55e5ad,_0xca412b;_0x302213[_0x617de5(0x217)]();let _0x19a61d=$(this);const _0x41730a=0x14,_0x57ea1c=0x14,_0x29519f=$(this)[_0x617de5(0x264)](),_0x504391=_0x302213;if(_0x504391[_0x617de5(0x262)]>=_0x29519f[_0x617de5(0x23f)]&&_0x504391[_0x617de5(0x262)]<=_0x29519f[_0x617de5(0x23f)]+_0x41730a&&_0x504391[_0x617de5(0x20e)]>=_0x29519f[_0x617de5(0x238)]&&_0x504391['pageY']<=_0x29519f['top']+_0x57ea1c){if(_0x19a61d[_0x617de5(0x296)](_0x617de5(0x202))){if(_0x19a61d[_0x617de5(0x296)](_0x617de5(0x279))){_0x19a61d[_0x617de5(0x249)](_0x617de5(0x202))[_0x617de5(0x28f)](_0x617de5(0x26a)),_0x19a61d['children']('ul')[_0x617de5(0x287)]();return;}const _0x34dfbf={'baseUrl':_0x5bc111['options'][_0x617de5(0x1fa)],'endpointNode':typeof _0x5bc111[_0x617de5(0x1fe)]['endpointNode']===_0x617de5(0x208)?_0x5bc111['options']['endpointNode']():_0x5bc111[_0x617de5(0x1fe)][_0x617de5(0x294)],'endpoint':typeof _0x5bc111[_0x617de5(0x1fe)][_0x617de5(0x251)]==='function'?_0x5bc111['options'][_0x617de5(0x251)]():_0x5bc111['options']['endpoint']},_0x282618=!_0x5bc111[_0x617de5(0x1fe)][_0x617de5(0x24c)]?_0x2a72e6:_0x1034f0;_0xcd7110(_0x19a61d,_0x282618,_0x34dfbf)[_0x617de5(0x260)](()=>{const _0x5cde73=_0x617de5;console[_0x5cde73(0x20a)](_0x5cde73(0x241)),console['log']('fetched'),_0x19a61d['removeClass'](_0x5cde73(0x202))[_0x5cde73(0x28f)](_0x5cde73(0x26a));})[_0x617de5(0x228)](_0x201b24=>{const _0x5e60c1=_0x617de5;_0x19a61d[_0x5e60c1(0x249)](_0x5e60c1(0x202))[_0x5e60c1(0x28f)](_0x5e60c1(0x26a)),console[_0x5e60c1(0x20a)](_0x5e60c1(0x26c),_0x201b24);});}else{if(_0x19a61d[_0x617de5(0x296)](_0x617de5(0x26a)))_0x19a61d[_0x617de5(0x27c)]('ul')['toggle'](),_0x19a61d[_0x617de5(0x22f)](_0x617de5(0x253));else{if(_0x19a61d['children']('ul')[_0x617de5(0x27c)]()[_0x617de5(0x243)]>0x0)_0x19a61d[_0x617de5(0x27c)]('ul')[_0x617de5(0x287)](),_0x19a61d[_0x617de5(0x22f)](_0x617de5(0x253));else;}}}else{const _0x57fafb=_0x19a61d[_0x617de5(0x214)](_0x617de5(0x209)),_0x13aca3=_0x19a61d[_0x617de5(0x214)](_0x617de5(0x219));if(_0x5bc111['options'][_0x617de5(0x22c)]&&!_0x5bc111[_0x617de5(0x1fe)][_0x617de5(0x22c)](_0x13aca3))return;_0x5bc111[_0x617de5(0x213)]['data'](_0x617de5(0x219),_0x13aca3);const _0x3ac2c6=((_0x55e5ad=_0x13aca3['displayName'])===null||_0x55e5ad===void 0x0?void 0x0:_0x55e5ad[_0x617de5(0x268)])||((_0xca412b=_0x13aca3['browseName'])===null||_0xca412b===void 0x0?void 0x0:_0xca412b[_0x617de5(0x229)])||_0x13aca3[_0x617de5(0x21f)][_0x617de5(0x232)](),_0x55f2fe='['+_0x3ac2c6+']('+_0x57fafb+')';_0x5bc111[_0x617de5(0x213)][_0x617de5(0x23e)](_0x55f2fe),_0x5bc111['$input']['trigger'](_0x617de5(0x258)),_0x5bc111[_0x617de5(0x26e)]['hide']();}}),$(document)['on'](_0x1f26aa(0x244),function(_0x19dae7){const _0x1247a6=_0x1f26aa;!$(_0x19dae7['target'])[_0x1247a6(0x1f6)](_0x5bc111['$combo'])[_0x1247a6(0x243)]&&_0x5bc111[_0x1247a6(0x26e)][_0x1247a6(0x27b)]();});}});},_0x33c659=()=>{const _0x3b73df=_0x26d55d,_0x27fef5=$('#node-input-endpoint'),_0x55d829=_0x27fef5[_0x3b73df(0x23e)](),_0x3e8f29=RED[_0x3b73df(0x283)][_0x3b73df(0x21d)](_0x55d829);if(!_0x3e8f29)return undefined;const {endpoint:_0x38fbe9,securityMode:_0x77537d,securityPolicy:_0x558f89,userIdentityType:_0x21dc31,credentials:_0x12527c}=_0x3e8f29,_0x4fa322={'endpoint':_0x38fbe9,'securityMode':_0x77537d,'securityPolicy':_0x558f89,'userIdentityType':_0x21dc31,'credentials':_0x12527c};return console[_0x3b73df(0x20a)](_0x3b73df(0x210),_0x4fa322),_0x4fa322;},_0x5913d7=()=>{return{'endpointNode':_0x388167};},_0x388167=()=>{const _0x43ac37=_0x26d55d,_0x58873f=$(_0x43ac37(0x275)),_0x4956c6=_0x58873f['val'](),_0x7a0864=_0x33c659();if(!_0x7a0864)return undefined;return{'id':_0x4956c6};};RED[_0x26d55d(0x283)][_0x26d55d(0x22e)]('OpcUa-Client2-Explore',{'category':_0x26d55d(0x22b),'color':_0x26d55d(0x206),'align':_0x26d55d(0x245),'icon':'../../icons/opcuanodeLogo.png','paletteLabel':'explore','defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':'OpcUa-Endpoint2'},'nodeId':{'value':'','required':![]},'outputType':{'value':_0x26d55d(0x23d),'required':!![]}},'outputs':0x1,'label'(){const _0x3e559c=_0x26d55d;return this[_0x3e559c(0x229)]||'OPCUA\x20Explore';},'labelStyle'(){const _0x94c19b=_0x26d55d;return this[_0x94c19b(0x229)]?_0x94c19b(0x25a):'';},'oneditprepare'(){const _0x5e30a0=_0x26d55d,_0x504121=this;_0x43710c(),_0x504121['inputs']=0x1;const _0x2f5338=$(_0x5e30a0(0x225));_0x2f5338[_0x5e30a0(0x29c)](Object[_0x5e30a0(0x257)](Object[_0x5e30a0(0x257)]({},_0x5913d7()),{'isSelectable'(_0x1da911){const _0x133f5e=_0x5e30a0;return _0x1da911[_0x133f5e(0x28d)]==='Variable'||_0x1da911[_0x133f5e(0x28d)]===_0x133f5e(0x252);}}));},'oneditsave'(){}});}()));function _0xdd55(){const _0x119c69=['9687645TLOuAk','.spinner','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','suppressed','DataType','stringify','#node-input-endpoint','already\x20loading','VariableType','7732158FMMjCJ','fetched','<ul></ul></li>','hide','children','Forward','SteelBlue','NodeClass','typeDefinition','Both','\x22\x20style=\x22color:','nodes','HasComponent','replaceWith','fa-list-alt','toggle','message','Invalid','<li>error\x20','remove','ns=0;i=35','nodeClass','<ul\x20class=\x22sterfive-tree\x22></ul>','addClass','/browse','sterfive-dropdown','BrowseName','element','endpointNode','reset','hasClass','ns=0;i=46','DarkOrange','ns=0;i=85','Inverse','fa-object-group','nodeBrowser','!!failure!!','resolveParentNode','TypeDefinition','$verifyBtn','closest','/opcua-endpoint2','Method','$toggleTreeBtn','baseUrl','DisplayName','currentParent','$inputGroup','options','apply','statusText','<li><i\x20class=\x22fa\x20','expandable','references','ns=0;i=47','match','#C0DEED','rgba(61,\x2060,\x204,\x200.525)','function','value','log','<div\x20class=\x22info-text\x22></div>','1347580GbZuJy','already\x20fetched','pageY','SeaGreen','xxx','parentNode','ns=0;i=61','$input','data','Organizes','statusCode','stopPropagation','DodgerBlue','reference','HasSubtype','placeholder','next','node','referenceTypeId','nodeId','<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>','$tree','opc.tcp://opcuademo.sterfive.com:26543','displayName','nodeAddressString','#node-input-nodeId','application/json','$info','catch','name','6130MnHree','opcua','isSelectable','trigger','registerType','toggleClass','8hYUfKl','fa-folder','toString','/checkNodeId','6190455ZwhKOf','SandyBrown','attr','append','top','fetching\x20failed\x20with\x20error','appendTo','ns=0;i=45','throw','Value','val','left','</li>','\x20Fetching\x20done','sterfive.nodeBrowser','length','click','right','Objects','find','loading','removeClass','7WehQNd','Variable','isTypeRef','ObjectType','35354nJllnc','ReferenceType','json','endpoint','Object','expandable\x20expanded','$combo','View','fa-cog','assign','change','SuppressedError','node_label_italic','1234335fuycIS','sterfive-info','HasProperty','9foCUeK','failure','then','ns=0;i=34','pageX','status','offset','err','done','POST','text','empty','expanded','147098izqstb','error','widget','$dropdown'];_0xdd55=function(){return _0x119c69;};return _0xdd55();}
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHg1ZDdjMDUiLCJfMHgxODAxZDkiLCJfMHgxMGEyNTciLCJfMHgzNGNkOWEiLCJfMHg1MmIzYzYiLCJfMHg0OTUzMTciLCJfMHgxYTlmY2YiLCJfMHg1M2JhYWMiLCJQcm9taXNlIiwiXzB4MTVjMzFlIiwiXzB4MmU2MTI0IiwiXzB4MzYyMzc5IiwiXzB4MzViZTBjIiwiXzB4NTcyZTY3IiwiXzB4Mzg4OTI4IiwiXzB4NDUzZjM1IiwiXzB4MzZjOTY2IiwiXzB4NGJkNWJlIiwiXzB4ZGY5YmJlIiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4MTE0OWVmIiwiXzB4NDczMzlkIiwiXzB4NDc4ZTVlIiwiXzB4NWM2Yzk2IiwiRXJyb3IiLCJfMHgyZTZiZWIiLCJfMHgyYjc5MWYiLCJfMHgxN2E4NmUiLCJfMHhiOGU4MTkiLCJfMHhlNmQ1MDIiLCJfMHg0ZjcwODQiLCJfMHg1OGI1ZjYiLCJfMHgzNjk0ZDUiLCJfMHg1MDMyZmQiLCJfMHgzZjM0NTciLCJfMHgyZjYzNjQiLCJfMHg0NGY1Y2QiLCJfMHg0YzE2ZDkiLCJfMHgzMzgzMjciLCJfMHgzZjQwOTYiLCJfMHg1ZjQzNzQiLCJfMHg0Y2RmMTIiLCJfMHgxMzhhOGYiLCJfMHgxYjE5NGUiLCJfMHg5M2IzMTciLCJlbmRwb2ludE5vZGUiLCJfMHgxMWEwYTMiLCJlbmRwb2ludCIsIl8weDU4NWIyNyIsImJhc2VVcmwiLCJfMHg1ZWRlODUiLCJfMHgyNzg3YWYiLCJfMHg0NjNkN2YiLCJfMHg0YWNiOTUiLCJfMHgyNDM4OTAiLCJfMHg0Njg4ZGUiLCJPYmplY3QiLCJfMHg0NDA1MmMiLCJmZXRjaCIsIkpTT04iLCJjb25zb2xlIiwiXzB4YWRiNWZjIiwiXzB4NWY1MGVhIiwiXzB4NDcyMTMwIiwiXzB4MTg2YjEzIiwiXzB4NDliMzMzIiwiXzB4YThlY2QwIiwiXzB4NGExYjkzIiwiXzB4MmNiYmViIiwiXzB4NTY2MTljIiwiXzB4NDAxNGNmIiwiXzB4MjBiNjcyIiwiXzB4NDgzZDE4IiwiXzB4MTBmYWFhIiwiXzB4MjlkMTNmIiwiXzB4MzUxZTRmIiwiXzB4MzBkZmRiIiwic2V0VGltZW91dCIsIl8weGVlNWJjMCIsIl8weDJhNzJlNiIsIl8weGE1ZDhjOCIsIl8weDVhZTk0MSIsIl8weDUwODg1OSIsIl8weDE3ZDg3MyIsIl8weDFhM2EyMyIsIl8weDkzMDFhYiIsIl8weDEwMzRmMCIsIl8weDJjNjk1ZCIsIl8weGM0YjU0ZiIsIl8weDRhY2NjNSIsIl8weDQyOWVmYyIsIl8weDNiN2UzOSIsIl8weDRkYmMyOSIsIl8weGRiY2FiYSIsIl8weDIzOTZiMSIsIl8weDM4NTE1ZSIsIiQiLCJfMHgxNWRmM2IiLCJfMHg4YjkwMWMiLCJpY29uIiwiXzB4NGQ0M2Q2IiwiY29sb3IiLCJfMHg1NDQxYjEiLCJfMHgyYzRmYjciLCJfMHg0MzcxMGMiLCJ1bmRlZmluZWQiLCJfMHgxZjYwZjYiLCJfMHg1MGVmMTAiLCJfMHg1ZWJiZmEiLCJfMHg0ZTg0ZDkiLCJfMHg1ODMwYWUiLCJfMHg0ODA0NmIiLCJfMHg1NzY0YmIiLCJfMHg1YmMxMTEiLCJfMHhjZDcxMTAiLCJfMHgyMjNjY2YiLCJfMHgxZWIyOGMiLCJfMHg0NmNiOGMiLCJyZWZlcmVuY2VzIiwiXzB4NTczMzQ5IiwiXzB4NDA4YTBjIiwiXzB4MzI4ZTZiIiwiXzB4NTQ2YTVlIiwiXzB4MTJlNWI5IiwiXzB4NGE4NzliIiwiXzB4MzAyMjEzIiwiXzB4NTVlNWFkIiwiXzB4Y2E0MTJiIiwiXzB4MTlhNjFkIiwiXzB4NDE3MzBhIiwiXzB4NTdlYTFjIiwiXzB4Mjk1MTlmIiwiXzB4NTA0MzkxIiwiXzB4MzRkZmJmIiwiXzB4MjgyNjE4IiwiXzB4MjAxYjI0IiwiXzB4NTdmYWZiIiwiXzB4MTNhY2EzIiwiXzB4M2FjMmM2IiwiXzB4NTVmMmZlIiwiZG9jdW1lbnQiLCJfMHgxOWRhZTciLCJfMHgzM2M2NTkiLCJfMHgyN2ZlZjUiLCJfMHg1NWQ4MjkiLCJfMHgzZThmMjkiLCJSRUQiLCJfMHgzOGZiZTkiLCJzZWN1cml0eU1vZGUiLCJfMHg3NzUzN2QiLCJzZWN1cml0eVBvbGljeSIsIl8weDU1OGY4OSIsInVzZXJJZGVudGl0eVR5cGUiLCJfMHgyMWRjMzEiLCJjcmVkZW50aWFscyIsIl8weDEyNTI3YyIsIl8weDRmYTMyMiIsIl8weDU5MTNkNyIsIl8weDM4ODE2NyIsIl8weDU4ODczZiIsIl8weDQ5NTZjNiIsIl8weDdhMDg2NCIsIl8weDUwNDEyMSIsIl8weDJmNTMzOCIsIl8weDFkYTkxMSJdLCJtYXBwaW5ncyI6Im8wQkFBQSxDQUFDLFUsQ0FDRyxhLHdCQW1CQSxTQUFTQSxTQUFULENBQW1CQyxTQUFuQixDQUE0QkMsU0FBNUIsQ0FBd0NDLFNBQXhDLENBQTJDQyxTQUEzQyxDLENBQ0ksU0FBU0MsU0FBVCxDQUFlQyxTQUFmLEMsUUFBK0JBLFNBQUEsWUFBaUJILFNBQWpCLENBQXFCRyxTQUFyQixDQUE2QixJQUFJSCxTQUFKLENBQU0sU0FBVUksU0FBVixDLENBQXFCQSxTQUFBLENBQVFELFNBQVIsQyxFQUEzQixDLFNBQ3JELEdBQUssQ0FBQUgsU0FBQSxFQUFNLENBQUFBLFNBQUEsQ0FBSUssT0FBSixDQUFOLENBQUwsQ0FBeUIsU0FBVUMsU0FBVixDQUFtQkMsU0FBbkIsQyx5QkFDNUIsU0FBU0MsU0FBVCxDQUFtQkMsU0FBbkIsQyx5QkFBNEIsRyxDQUFNQyxTQUFBLENBQUtULFNBQUEsQyxnQkFBQSxFQUFlUSxTQUFmLENBQUwsQyxFQUErQixNQUFPRSxTQUFQLEMsQ0FBWUosU0FBQSxDQUFPSSxTQUFQLEMsR0FDN0UsU0FBU0MsU0FBVCxDQUFrQkMsU0FBbEIsQyx5QkFBMkIsRyxDQUFNSCxTQUFBLENBQUtULFNBQUEsQyxnQkFBQSxFQUFtQlksU0FBbkIsQ0FBTCxDLEVBQW1DLE1BQU9DLFNBQVAsQyxDQUFZUCxTQUFBLENBQU9PLFNBQVAsQyxHQUNoRixTQUFTSixTQUFULENBQWNLLFNBQWQsQyx5QkFBd0JBLFNBQUEsQyxnQkFBQSxFQUFjVCxTQUFBLENBQVFTLFNBQUEsQyxnQkFBQSxDQUFSLENBQWQsQ0FB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QUFpRSxDLGNBQUUsQ0FBYU8sU0FBYixDLGtDQUN4RUEsU0FBQSxDLGdCQUFBLEksVUFBQSxFQUFxQ0EsU0FBQSxDLGdCQUFBLEksa0JBRGlDLENBQWpFLENBQXBCLEMsRUE1QndDLEMsWUFnQzVDLEUsRUFoQzRDLENBQWhELEMsRUF6ZkosRyIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiAoKSB7XG4gICAgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gICAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uXHJcblxyXG4gICAgUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XHJcbiAgICBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQuXHJcblxyXG4gICAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSFxyXG4gICAgUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXHJcbiAgICBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXHJcbiAgICBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST01cclxuICAgIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXHJcbiAgICBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXHJcbiAgICBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLlxyXG4gICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuICAgIC8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlLCBTdXBwcmVzc2VkRXJyb3IsIFN5bWJvbCAqL1xyXG5cclxuXHJcbiAgICBmdW5jdGlvbiBfX2F3YWl0ZXIodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XHJcbiAgICAgICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XHJcbiAgICAgICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XHJcbiAgICAgICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0eXBlb2YgU3VwcHJlc3NlZEVycm9yID09PSBcImZ1bmN0aW9uXCIgPyBTdXBwcmVzc2VkRXJyb3IgOiBmdW5jdGlvbiAoZXJyb3IsIHN1cHByZXNzZWQsIG1lc3NhZ2UpIHtcclxuICAgICAgICB2YXIgZSA9IG5ldyBFcnJvcihtZXNzYWdlKTtcclxuICAgICAgICByZXR1cm4gZS5uYW1lID0gXCJTdXBwcmVzc2VkRXJyb3JcIiwgZS5lcnJvciA9IGVycm9yLCBlLnN1cHByZXNzZWQgPSBzdXBwcmVzc2VkLCBlO1xyXG4gICAgfTtcblxuICAgIGNvbnN0IE9yZ2FuaXplc1JlZk5vZGVJZCA9IFwibnM9MDtpPTM1XCI7XG4gICAgY29uc3QgRm9sZGVyVHlwZSA9IFwibnM9MDtpPTYxXCI7XG4gICAgY29uc3QgSGFzQ29tcG9uZW50UmVmTm9kZUlkID0gXCJucz0wO2k9NDdcIjtcbiAgICBjb25zdCBIYXNQcm9wZXJ0eVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ2XCI7XG4gICAgY29uc3QgSGFzQ2hpbGRSZWZOb2RlSWQgPSBcIm5zPTA7aT0zNFwiO1xuICAgIGNvbnN0IEhhc1N1YnR5cGVSZWZOb2RlSWQgPSBcIm5zPTA7aT00NVwiO1xuICAgIGNvbnN0IEhhc1R5cGVEZWZpbml0aW9uUmVmTm9kZUlkID0gXCJucz0wO2k9NDBcIjtcblxuICAgIHZhciBCcm93c2VEaXJlY3Rpb247XG4gICAgKGZ1bmN0aW9uIChCcm93c2VEaXJlY3Rpb24pIHtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkZvcndhcmRcIl0gPSAwXSA9IFwiRm9yd2FyZFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52ZXJzZVwiXSA9IDFdID0gXCJJbnZlcnNlXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJCb3RoXCJdID0gMl0gPSBcIkJvdGhcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkludmFsaWRcIl0gPSAzXSA9IFwiSW52YWxpZFwiO1xuICAgIH0pKEJyb3dzZURpcmVjdGlvbiB8fCAoQnJvd3NlRGlyZWN0aW9uID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzO1xuICAgIChmdW5jdGlvbiAoTm9kZUNsYXNzKSB7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJVbnNwZWNpZmllZFwiXSA9IDBdID0gXCJVbnNwZWNpZmllZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmFyaWFibGVcIl0gPSAyXSA9IFwiVmFyaWFibGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk1ldGhvZFwiXSA9IDRdID0gXCJNZXRob2RcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmFyaWFibGVUeXBlXCJdID0gMTZdID0gXCJWYXJpYWJsZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAzMl0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmlld1wiXSA9IDEyOF0gPSBcIlZpZXdcIjtcbiAgICB9KShOb2RlQ2xhc3MgfHwgKE5vZGVDbGFzcyA9IHt9KSk7XG4gICAgdmFyIE5vZGVDbGFzc01hc2s7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3NNYXNrKSB7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFwiXSA9IDFdID0gXCJPYmplY3RcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmFyaWFibGVcIl0gPSAyXSA9IFwiVmFyaWFibGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJPYmplY3RUeXBlXCJdID0gOF0gPSBcIk9iamVjdFR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmFyaWFibGVUeXBlXCJdID0gMTZdID0gXCJWYXJpYWJsZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJEYXRhVHlwZVwiXSA9IDY0XSA9IFwiRGF0YVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmlld1wiXSA9IDEyOF0gPSBcIlZpZXdcIjtcbiAgICB9KShOb2RlQ2xhc3NNYXNrIHx8IChOb2RlQ2xhc3NNYXNrID0ge30pKTtcbiAgICB2YXIgUmVzdWx0TWFzaztcbiAgICAoZnVuY3Rpb24gKFJlc3VsdE1hc2spIHtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDFdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIklzRm9yd2FyZFwiXSA9IDJdID0gXCJJc0ZvcndhcmRcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiTm9kZUNsYXNzXCJdID0gNF0gPSBcIk5vZGVDbGFzc1wiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJCcm93c2VOYW1lXCJdID0gOF0gPSBcIkJyb3dzZU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiRGlzcGxheU5hbWVcIl0gPSAxNl0gPSBcIkRpc3BsYXlOYW1lXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIlR5cGVEZWZpbml0aW9uXCJdID0gMzJdID0gXCJUeXBlRGVmaW5pdGlvblwiO1xuICAgIH0pKFJlc3VsdE1hc2sgfHwgKFJlc3VsdE1hc2sgPSB7fSkpO1xuICAgIC8vICBjb25zdCBxID0gUmVmZXJlbmNlVHlwZUlkcy5Pcmdhbml6ZXM7XG4gICAgZnVuY3Rpb24gcmVzb2x2ZU5vZGVJZChub2RlSWRMaWtlKSB7XG4gICAgICAgIHN3aXRjaCAobm9kZUlkTGlrZSkge1xuICAgICAgICAgICAgY2FzZSBcIk9yZ2FuaXplc1wiOlxuICAgICAgICAgICAgICAgIHJldHVybiBPcmdhbml6ZXNSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzUHJvcGVydHlcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzUHJvcGVydHlSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzQ29tcG9uZW50XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NvbXBvbmVudFJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDaGlsZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNDaGlsZFJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNTdWJ0eXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1N1YnR5cGVSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzVHlwZURlZmluaXRpb25cIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBnZXRJY29uID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICBzd2l0Y2ggKHJlZmVyZW5jZS5ub2RlQ2xhc3MpIHtcbiAgICAgICAgICAgIGNhc2UgXCJPYmplY3RcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gT3JnYW5pemVzUmVmTm9kZUlkKSA7XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS50eXBlRGVmaW5pdGlvbiA9PT0gRm9sZGVyVHlwZSB8fCByZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBcImk9NjFcIikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWZvbGRlclwiLCBjb2xvcjogXCJyZ2JhKDYxLCA2MCwgNCwgMC41MjUpXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6IFwiU2VhR3JlZW5cIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlXCI6XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IEhhc0NvbXBvbmVudFJlZk5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIlN0ZWVsQmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IEhhc1Byb3BlcnR5UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiRG9kZ2VyQmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIkNhZGV0Qmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBcIk1ldGhvZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtY29nXCIsIGNvbG9yOiBcIlNhbmR5QnJvd25cIiB9O1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJWYXJpYWJsZVR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXNsaWRlcnNcIiwgY29sb3I6IFwiRGFya09yYW5nZVwiIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1xdWVzdGlvblwiLCBjb2xvcjogXCJncmV5XCIgfTtcbiAgICB9O1xuXG4gICAgY29uc3QgYnJvd3NlID0gKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCBub2RlSWQsIHRlbXBsYXRlKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWVuZHBvaW50MmA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L2Jyb3dzZWA7XG4gICAgICAgIGNvbnN0IGJyb3dzZURlc2NyaXB0aW9uID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCB0ZW1wbGF0ZSksIHsgbm9kZUlkLCByZXN1bHRNYXNrOiA2MyB9KTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgYnJvd3NlRGVzY3JpcHRpb24sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoaW5nIGZhaWxlZCB3aXRoIGVycm9yXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICAgICAgcmV0dXJuIHsgcmVmZXJlbmNlczogW10gfTtcbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoZWQgOiBcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0geWllbGQgZGF0YS5qc29uKCk7XG4gICAgICAgIGNvbnN0IHJlZmVyZW5jZXMgPSByZXNwb25zZS5icm93c2VSZXN1bHQucmVmZXJlbmNlcyB8fCBbXTtcbiAgICAgICAgcmV0dXJuIHsgcmVmZXJlbmNlcyB9O1xuICAgIH0pO1xuXG4gICAgY29uc3QgdGVtcGxhdGUxID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJIYXNDaGlsZFwiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuVmFyaWFibGUgfCBOb2RlQ2xhc3MuT2JqZWN0IHwgTm9kZUNsYXNzLk1ldGhvZCxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5PYmplY3RUeXBlIHxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5EYXRhVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5WaWV3LFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGNvbnN0IHRlbXBsYXRlMiA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiT3JnYW5pemVzXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3QgaW50ZXJuYWxWZXJpZnkgPSAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sICRpbnB1dEVsZW1lbnQsICRpbmZvKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWVuZHBvaW50MmA7XG4gICAgICAgIGNvbnN0IG5vZGVJZCA9ICRpbnB1dEVsZW1lbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaChgJHtyb290fS9jaGVja05vZGVJZGAsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIG5vZGVJZCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3Qgc2V0Tm90aWZpY2F0aW9uID0gKHRleHQsIGNsYXNzTmFtZSkgPT4ge1xuICAgICAgICAgICAgJGluZm8udGV4dCh0ZXh0KS5hZGRDbGFzcyhcInN0ZXJmaXZlLWluZm9cIikuYWRkQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICRpbmZvLnNob3coKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICRpbmZvLnJlbW92ZUNsYXNzKGNsYXNzTmFtZSk7XG4gICAgICAgICAgICAgICAgJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgfSwgMzAwMCk7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGpzb24gPSAoeWllbGQgZGF0YS5qc29uKCkpO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgLy8gZG8gc29tZXRoaW5nO1xuICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKFwiISFmYWlsdXJlISFcIiArIG5vZGVJZCwgXCJmYWlsdXJlXCIpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKGpzb24uc3RhdHVzQ29kZS5tYXRjaCgvR29vZC8pKSB7XG4gICAgICAgICAgICAgICAgLy8gZG8gc29tZXRoaW5nXG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC52YWwoanNvbi5ub2RlQWRkcmVzc1N0cmluZyk7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihcIkdvb2RcIiwgXCJva1wiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudmFsKGAke25vZGVJZH1gKTtcbiAgICAgICAgICAgICAgICBzZXROb3RpZmljYXRpb24oYCR7anNvbi5zdGF0dXNDb2RlfSAke2RhdGEuc3RhdHVzVGV4dH1gLCBcImZhaWx1cmVcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBmdW5jdGlvbiBmZXRjaENoaWxkcmVuKCRub2RlLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlSWQgPSAkbm9kZS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQxID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGUxKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDIgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTIpO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWZlcmVuY2VzOiBbLi4uYnJvd3NlUmVzdWx0MS5yZWZlcmVuY2VzLCAuLi5icm93c2VSZXN1bHQyLnJlZmVyZW5jZXNdLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IHRlbXBsYXRlU1QgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIkhhc1N1YnR5cGVcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfCBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8IE5vZGVDbGFzcy5EYXRhVHlwZSB8IE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgZnVuY3Rpb24gZmV0Y2hTdWJ0eXBlcygkbm9kZSwgZGF0YSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZUlkID0gJG5vZGUuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MSA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlU1QpO1xuICAgICAgICAgICAgcmV0dXJuIGJyb3dzZVJlc3VsdDE7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBtYWtlRWxlbWVudCA9IChyZWZlcmVuY2UpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgaWYgKCFyZWZlcmVuY2UpIHtcbiAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpPjxpIGNsYXNzPVwiZmEgZmEtZXJyb3JcIiBzdHlsZT1cImNvbG9yOnJlZDtcIj48L2k+bm8gcmVmZXJlbmNlICE8dWw+PC91bD48L2xpPmApO1xuICAgICAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG4gPSByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IHQgPSAoKF9hID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGV4dCkgfHwgKChfYiA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB7IGljb24sIGNvbG9yIH0gPSBnZXRJY29uKHJlZmVyZW5jZSk7XG4gICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpPjxpIGNsYXNzPVwiZmEgJHtpY29ufVwiIHN0eWxlPVwiY29sb3I6JHtjb2xvcn07XCI+PC9pPiAke3R9PHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgJGVsZW1lbnQuYWRkQ2xhc3MoXCJleHBhbmRhYmxlXCIpO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwidmFsdWVcIiwgbik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgIH07XG4gICAgY29uc3QgZGVjbGFyZU5vZGVCcm93c2VyV2lkZ2V0ID0gKCkgPT4ge1xuICAgICAgICAvKipcbiAgICAgICAgICogWyBUZW1wZXJhdHVyZSAgXVxuICAgICAgICAgKiAgICggdG9vbHRpcCA6ICgvT2JqZWN0cy9NeVNlbnNvcikgKG5zPTE7cz1UZW1wZXJhdHVyZSkpXG4gICAgICAgICAqIFsgKyBbRm9sZGVyXSBPYmplY3RzXVxuICAgICAgICAgKiBbICAgICBbT2JqZWN0XSBNeVNlbnNvcl1cbiAgICAgICAgICogWyAgICAgKCApIFtWYXJpYWJsZV0gVGVtcGVyYXR1cmVdXG4gICAgICAgICAqL1xuICAgICAgICAkLndpZGdldChcInN0ZXJmaXZlLm5vZGVCcm93c2VyXCIsIHtcbiAgICAgICAgICAgIC8qIGRlZmF1bHQgb3B0aW9ucyAqL1xuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogKCkgPT4gKHsgZW5kcG9pbnQ6IFwib3BjLnRjcDovL29wY3VhZGVtby5zdGVyZml2ZS5jb206MjY1NDNcIiB9KSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludDogKCkgPT4gdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIHBhcmVudE5vZGU6ICgpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIGJyb3dzZU5hbWU6IHsgbmFtZXNwYWNlSW5kZXg6IDAsIG5hbWU6IFwiT2JqZWN0c1wiIH0sXG4gICAgICAgICAgICAgICAgICAgIG5vZGVDbGFzczogXCJPYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgbm9kZUlkOiBcIm5zPTA7aT04NVwiLFxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogeyB0ZXh0OiBcIk9iamVjdHNcIiB9LFxuICAgICAgICAgICAgICAgICAgICB0eXBlRGVmaW5pdGlvbjogRm9sZGVyVHlwZSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBmaWx0ZXI6ICgpID0+IHRydWUsXG4gICAgICAgICAgICAgICAgYmFzZVVybDogXCJcIixcbiAgICAgICAgICAgICAgICBpc1R5cGVSZWY6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc29sdmVQYXJlbnROb2RlKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhID0gdHlwZW9mIHRoYXQub3B0aW9ucy5wYXJlbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZSgpIDogdGhhdC5vcHRpb25zLnBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhIGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHlpZWxkIGE7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGE7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzZXQoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzb2x2ZVBhcmVudE5vZGUoKS50aGVuKChwYXJlbnROb2RlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQocGFyZW50Tm9kZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC5jdXJyZW50UGFyZW50ID0gcGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB2ZXJpZnkoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgICAgICAgICAgIGJhc2VVcmw6IHRoYXQub3B0aW9ucy5iYXNlVXJsLFxuICAgICAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgICAgICBlbmRwb2ludDogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50KCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBpbnRlcm5hbFZlcmlmeShkYXRhLCB0aGF0LiRpbnB1dCwgdGhhdC4kaW5mbyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2NyZWF0ZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBfZmV0Y2hEYXRhRm9yTm9kZSgkbm9kZSwgZmV0Y2hGdW5jLCBkYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJG5vZGUuaGFzQ2xhc3MoXCJmZXRjaGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhbHJlYWR5IGZldGNoZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRub2RlLmhhc0NsYXNzKFwibG9hZGluZ1wiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYWxyZWFkeSBsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwibG9hZGluZ1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmFwcGVuZCgnPGRpdiBjbGFzcz1cInNwaW5uZXJcIj48L2Rpdj4nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgcmVmZXJlbmNlcyB9ID0geWllbGQgZmV0Y2hGdW5jKCRub2RlLCBkYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHJlZmVyZW5jZSBvZiByZWZlcmVuY2VzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuZmlsdGVyICYmICF0aGF0Lm9wdGlvbnMuZmlsdGVyKHJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQocmVmZXJlbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5hcHBlbmQoJGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5hZGRDbGFzcyhcImZldGNoZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5hcHBlbmQoYDxsaT5lcnJvciAke2Vyci5tZXNzYWdlfTwvbGk+YCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJcIiwgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmZpbmQoXCIuc3Bpbm5lclwiKS5yZW1vdmUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLnJlbW92ZUNsYXNzKFwibG9hZGluZ1wiKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0ID0gdGhpcy5lbGVtZW50O1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvID0gJChcIjxkaXYvPlwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hZGRDbGFzcyhcInN0ZXJmaXZlLWNvbWJvLWJveFwiKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQucmVwbGFjZVdpdGgodGhhdC4kY29tYm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAgPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwiaW5wdXQtZ3JvdXBcIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGlucHV0R3JvdXApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJGlucHV0KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuID0gJChgPGJ1dHRvbj48aSBjbGFzcz1cImZhIGZhLXNpdGVtYXBcIj48L2k+PC9idXR0b24+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kdG9nZ2xlVHJlZUJ0bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0bi5vbihcImNsaWNrXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRkcm9wZG93bi5pcyhcIjp2aXNpYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB0cmVlIHdpZGdldCBpcyBnb2luZyB0byBiZWNvbWUgdmlzaWJsZVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5yZXNvbHZlUGFyZW50Tm9kZSgpLnRoZW4oKHBhcmVudE5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmVudE5vZGUgIT09IHRoYXQuY3VycmVudFBhcmVudCB8fCAoKF9hID0gdGhhdC5jdXJyZW50UGFyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Eubm9kZUlkKSAhPT0gcGFyZW50Tm9kZS5ub2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5yZXNldCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5mby5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24udG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdmVyaWZ5QnRuID0gJChgPGJ1dHRvbj48aSBjbGFzcz1cImZhIGZhLWZsYXNrXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJHZlcmlmeUJ0bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdmVyaWZ5QnRuLm9uKFwiY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnZlcmlmeSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmICghdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmF0dHIoXCJwbGFjZWhvbGRlclwiLCBcImVudGVyIGEgbm9kZUlkIG9yIGEgYnJvd3NlUGF0aCBcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoYXQuJGluZm8gPSAkKGA8ZGl2IGNsYXNzPVwiaW5mby10ZXh0XCI+PC9kaXY+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mby5oaWRlKCk7XG4gICAgICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgICAgICh7XG4gICAgICAgICAgICAgICAgICAgIGJhc2VVcmw6IHRoYXQub3B0aW9ucy5iYXNlVXJsLFxuICAgICAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgICAgICBlbmRwb2ludDogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50KCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24gPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwic3RlcmZpdmUtZHJvcGRvd25cIikuaGlkZSgpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbmZvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kZHJvcGRvd24pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUgPSAkKGA8dWwgY2xhc3M9XCJzdGVyZml2ZS10cmVlXCI+PC91bD5gKS5hcHBlbmRUbyh0aGF0LiRkcm9wZG93bik7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUub24oXCJjbGlja1wiLCBcImxpXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0ICRsaSA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZVdpZHRoID0gMjA7IC8vIFNldCB3aWR0aCBvZiB0aGUgOjpiZWZvcmUgY29udGVudFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVIZWlnaHQgPSAyMDsgLy8gU2V0IGhlaWdodCBvZiB0aGUgOjpiZWZvcmUgY29udGVudFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50UG9zID0gJCh0aGlzKS5vZmZzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZSA9IGV2ZW50O1xuICAgICAgICAgICAgICAgICAgICBpZiAoZS5wYWdlWCA+PSBlbGVtZW50UG9zLmxlZnQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVggPD0gZWxlbWVudFBvcy5sZWZ0ICsgYmVmb3JlV2lkdGggJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPj0gZWxlbWVudFBvcy50b3AgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPD0gZWxlbWVudFBvcy50b3AgKyBiZWZvcmVIZWlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRhYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImZldGNoZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnQ6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludCgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZiA9ICF0aGF0Lm9wdGlvbnMuaXNUeXBlUmVmID8gZmV0Y2hDaGlsZHJlbiA6IGZldGNoU3VidHlwZXM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX2ZldGNoRGF0YUZvck5vZGUoJGxpLCBmLCBkYXRhKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiIEZldGNoaW5nIGRvbmVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWFyayBhcyBleHBhbmRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVycm9yXCIsIGVycik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRvZ2dsZSBpdHMgZXhwYW5kZWQvY29sbGFwc2VkIHN0YXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5jaGlsZHJlbihcInVsXCIpLmNoaWxkcmVuKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN3YXAgZXhwYW5kYWJsZSBhbmQgZXhwYW5kZWQgY2xhc3Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gJGxpLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlZmVyZW5jZSA9ICRsaS5kYXRhKFwicmVmZXJlbmNlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5pc1NlbGVjdGFibGUgJiYgIXRoYXQub3B0aW9ucy5pc1NlbGVjdGFibGUocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRpc3BsYXlOYW1lID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0ID0gYFske2Rpc3BsYXlOYW1lfV0oJHt2YWx1ZX0pYDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnZhbChpbnB1dCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgJChkb2N1bWVudCkub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gY2xpY2tpbmcgb3V0c2lkZSB0aGUgcGFnZSB3aWxsIGhpZGUgdGhlIGRyb3Bkb3duXG4gICAgICAgICAgICAgICAgICAgIGlmICghJChldmVudC50YXJnZXQpLmNsb3Nlc3QodGhhdC4kY29tYm8pLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgY29uc3QgZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzID0gKCkgPT4ge1xuICAgICAgICBjb25zdCAkZW5kcG9pbnQgPSAkKFwiI25vZGUtaW5wdXQtZW5kcG9pbnRcIik7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50SWQgPSAkZW5kcG9pbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IHJlZE5vZGUgPSBSRUQubm9kZXMubm9kZShlbmRwb2ludElkKTtcbiAgICAgICAgaWYgKCFyZWROb2RlKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgLy8gY29uc3QgY3JlZGVudGlhbHMgPSBSRUQuKGVuZHBvaW50SWQpO1xuICAgICAgICAvLyB3ZSBuZWVkIHRvIHNhbml0aXplIGFuZCBleHRyYWN0IHRoZSBlbmRwb2ludCBhdHRyaWJ1dGVzIG9ubHkgKCBub3QgdGhlIG5vZGUtcmVkIHN0dWZmKVxuICAgICAgICBjb25zdCB7IGVuZHBvaW50LCBzZWN1cml0eU1vZGUsIHNlY3VyaXR5UG9saWN5LCB1c2VySWRlbnRpdHlUeXBlLCBjcmVkZW50aWFscyB9ID0gcmVkTm9kZTtcbiAgICAgICAgY29uc3QgcmV0VmFsdWUgPSB7XG4gICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgIHNlY3VyaXR5TW9kZSxcbiAgICAgICAgICAgIHNlY3VyaXR5UG9saWN5LFxuICAgICAgICAgICAgdXNlcklkZW50aXR5VHlwZSxcbiAgICAgICAgICAgIGNyZWRlbnRpYWxzLFxuICAgICAgICB9O1xuICAgICAgICBjb25zb2xlLmxvZyhcInh4eFwiLCByZXRWYWx1ZSk7XG4gICAgICAgIHJldHVybiByZXRWYWx1ZTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlbmRwb2ludE5vZGU6IGdldEVuZHBvaW50UGFyYW1ldGVycyxcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVycyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCBlbmRwb2ludElkID0gJGVuZHBvaW50LnZhbCgpO1xuICAgICAgICBjb25zdCBlbmRwb2ludE5yID0gZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzKCk7XG4gICAgICAgIGlmICghZW5kcG9pbnROcikge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaWQ6IGVuZHBvaW50SWQsXG4gICAgICAgICAgICAvLyBlbmRwb2ludDogZW5kcG9pbnROci5lbmRwb2ludCxcbiAgICAgICAgICAgIC8vIHNlY3VyaXR5TW9kZTogZW5kcG9pbnROci5zZWN1cml0eU1vZGUsXG4gICAgICAgICAgICAvLyBzZWN1cml0eVBvbGljeTogZW5kcG9pbnROci5zZWN1cml0eVBvbGljeSxcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAvLyB1c2VySWRlbnRpdHlUeXBlOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUsXG4gICAgICAgICAgICAvLyBjcmVkZW50aWFsOiBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLFxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIHVzZXJOYW1lOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUgPT09IFwiVXNlck5hbWVcIiA/IGVuZHBvaW50TnIuY3JlZGVudGlhbHMudXNlck5hbWUgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAvLyBwYXNzd29yZDogZW5kcG9pbnROci51c2VySWRlbnRpdHlUeXBlID09PSBcIlVzZXJOYW1lXCIgPyBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLnBhc3N3b3JkIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgLy8gdXNlckNlcnRpZmljYXRlOiBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLnVzZXJDZXJ0aWZpY2F0ZSxcbiAgICAgICAgICAgIC8vIHVzZXJQcml2YXRla2V5OiBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLnVzZXJQcml2YXRla2V5LFxuICAgICAgICB9O1xuICAgIH07XG5cbiAgICBSRUQubm9kZXMucmVnaXN0ZXJUeXBlKFwiT3BjVWEtQ2xpZW50Mi1FeHBsb3JlXCIsIHtcbiAgICAgICAgY2F0ZWdvcnk6IFwib3BjdWFcIixcbiAgICAgICAgY29sb3I6IFwiI0MwREVFRFwiLFxuICAgICAgICBhbGlnbjogXCJyaWdodFwiLFxuICAgICAgICBpY29uOiBcIi4uLy4uL2ljb25zL29wY3Vhbm9kZUxvZ28ucG5nXCIsXG4gICAgICAgIHBhbGV0dGVMYWJlbDogXCJleHBsb3JlXCIsXG4gICAgICAgIGRlZmF1bHRzOiB7XG4gICAgICAgICAgICBpbnB1dHM6IHsgdmFsdWU6IDEgfSxcbiAgICAgICAgICAgIG91dHB1dDogeyB2YWx1ZTogNCB9LFxuICAgICAgICAgICAgLy8gQ29tbW9uXG4gICAgICAgICAgICBuYW1lOiB7IHZhbHVlOiBcIlwiIH0sXG4gICAgICAgICAgICBlbmRwb2ludDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IHRydWUsIHR5cGU6IFwiT3BjVWEtRW5kcG9pbnQyXCIgfSxcbiAgICAgICAgICAgIC8vIGZvciBhY3Rpb24gZXhwbG9yZVxuICAgICAgICAgICAgbm9kZUlkOiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogZmFsc2UgfSxcbiAgICAgICAgICAgIG91dHB1dFR5cGU6IHsgdmFsdWU6IFwiVmFsdWVcIiwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgfSxcbiAgICAgICAgb3V0cHV0czogMSxcbiAgICAgICAgbGFiZWwoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uYW1lIHx8IFwiT1BDVUEgRXhwbG9yZVwiO1xuICAgICAgICB9LFxuICAgICAgICBsYWJlbFN0eWxlKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSA/IFwibm9kZV9sYWJlbF9pdGFsaWNcIiA6IFwiXCI7XG4gICAgICAgIH0sXG4gICAgICAgIG9uZWRpdHByZXBhcmUoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gdGhpcztcbiAgICAgICAgICAgIGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCgpO1xuICAgICAgICAgICAgbm9kZS5pbnB1dHMgPSAxO1xuICAgICAgICAgICAgY29uc3QgJG5vZGVJZCA9ICQoXCIjbm9kZS1pbnB1dC1ub2RlSWRcIik7XG4gICAgICAgICAgICAkbm9kZUlkLm5vZGVCcm93c2VyKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlcigpKSwgeyBpc1NlbGVjdGFibGUobm9kZURlc2MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJWYXJpYWJsZVwiIHx8IG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJPYmplY3RcIjtcbiAgICAgICAgICAgICAgICB9IH0pKTtcbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0c2F2ZSgpIHsgfSxcbiAgICB9KTtcblxufSkoKTsiXX0=
|
9
9
|
</script>
|
10
10
|
<script type="text/x-red" data-template-name="OpcUa-Client2-Explore">
|
11
11
|
<h3>Opc-UA Explore</h3>
|
@@ -21,9 +21,6 @@ function _0x4e7e(_0x26063a,_0x765357){const _0xaa153f=_0xaa15();return _0x4e7e=f
|
|
21
21
|
<div class="form-row">
|
22
22
|
<label for="node-input-nodeId"><i class="fa fa-tag"></i>NodeId</label>
|
23
23
|
<input type="text" id="node-input-nodeId" placeholder="ns=2;s=Variable1 or empty" />
|
24
|
-
<button for="node-input-nodeId" id="nodeId-checkBtn" class="red-ui-button red-ui-button-small" style="margin-left: 10px">
|
25
|
-
<i class="fa fa-flask"></i>Check
|
26
|
-
</button>
|
27
24
|
</div>
|
28
25
|
|
29
26
|
<div class="form-row">
|