@opcua/for-node-red 2.20.0 → 2.21.0
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/config-panel/assets/{index-m2W0Q40U.css → index-D642mSgA.css} +1 -1
- package/config-panel/index.html +2 -2
- package/package.json +1 -1
- package/source/OpcUa-Client2-Browse/OpcUa-Client2-Browse.html +2 -2
- package/source/OpcUa-Client2-Call/OpcUa-Client2-Call.html +2 -2
- package/source/OpcUa-Client2-Explore/OpcUa-Client2-Explore.html +2 -2
- package/source/OpcUa-Client2-ExtensionObject/OpcUa-Client2-ExtensionObject.html +2 -2
- package/source/OpcUa-Client2-HistoryRead/OpcUa-Client2-HistoryRead.html +2 -2
- 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 +9 -9
- package/source/OpcUa-Client2-Write/OpcUa-Client2-Write.html +4 -4
- package/source/OpcUa-Endpoint2/OpcUa-Endpoint2.html +20 -20
- package/examples/extension-object.json +0 -0
- /package/config-panel/assets/{index-DB5XlsFi.js → index-CL9o-Rxy.js} +0 -0
@@ -4,8 +4,8 @@
|
|
4
4
|
</style>
|
5
5
|
|
6
6
|
<script type="text/javascript">
|
7
|
-
function _0x571c(){const _0x133b23=['30550GunqKr','Variable','baseUrl','function','SteelBlue','li[key=\x22','1517285zDVWvx','HasProperty','i=61','<li\x20key=\x22','#copy-input','installArgumentList','DisplayName','append','elements','Invalid','top','fa-list-alt','verify','isTypeRef','<div\x20class=\x22spinner\x22></div>','ReferenceType','<input\x20type=\x22text\x22>','sterfive-combo-box','value','1001724cVGdim','reset','application/json','catch','height','length','displayName','addClass','SuppressedError','argumentDefinition','val','dataTypes','><i\x20class=\x22fa\x20','html','failure','animate','show','scrollTop','Both','/checkNodeId','\x22\x20style=\x22color:','/opcua-for-node-red/argumentDefinition','BrowseName','resolveParentNode','children','text','fetched\x20:\x20','throw','attr','nodeClass','relativePath','browseResult','read','/browse','extra','ns=0;i=47','input-group','isSelectable','next','stopPropagation','OpcUa-Endpoint2','ns=0;i=61','loading','fa-folder','suppressed','addItem','#node-input-objectId','$dropdown','err','#method-output-argument-definition','removeClass','Objects','placeholder','empty','toString','replaceWith','4905MOwhlc','change','fetched','rgba(61,\x2060,\x204,\x200.525)','statusCode','position','selected','target','/opcua-for-node-red','offset','stringify','find','Object','error',':first','CadetBlue','assign','POST','.spinner','Method','message','replace','name','<div\x20class=\x22argument-entry\x22>','arguments','hasClass','valueRank','$combo','nodeIds','toggleClass','status','fa-object-group','endpoint','click','Testing\x20Connection\x20...','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','fa-text-width','hide','fa-question','remove','50%','sterfive.nodeBrowser','$verifyBtn','browsePath','apply','Inverse','ns=0;i=45','$info','pageX','#node-input-endpoint','HasComponent','call','<p>','Bad','dataType','match','HasTypeDefinition','then','HasChild','filter','nodeAddressString','6vxqrrd','#method-input-argument-definition','references','statusText',':visible','Organizes','options','data','DataType','OpcUa-Client2-Call','ns=0;i=40','.tree-text:first','sterfive-info','TypeDefinition','VariableType','Good','!!failure!!','886494wNsehG','DarkOrange','endpointNode','View',';\x22></i>\x20','reference','/walk-backward','pageY','Unspecified','li\x20>\x20.tree-text','IsForward','HasSubtype','8AYkKmH','join','#validate-call-arguments-button','writeText','toggle','fetching\x20failed\x20with\x20error','parentNode','NodeClass','__parentNode','description','ns=0;i=46','<div/>','node_label_italic','closest','<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>','expandable\x20expanded','validate','element','registerType','nodeBrowser','Forward','inputArgumentsExampleAsJson','internal\x20error\x20','auto','nodeId','already\x20loading','ns=0;i=34','log','$tree','ObjectType','isArray','ns=0;i=35','node','referenceTypeId','trigger','-messages','clipboard','#C0DEED','$inputGroup','ns=0;i=85','result','appendTo','\x22}><span\x20class=\x22tree-text\x22\x20title=','editableList','browseName','json','fa-cog','expanded','JSON','-pending','expandable','533010OtkLKr','split','right','../../icons/opcuanodeLogo.png','map','$input','2284208gRhVxh','css','SandyBrown','291419KnnnMr','outputArguments','typeDefinition','$toggleTreeBtn'];_0x571c=function(){return _0x133b23;};return _0x571c();}function _0x40e3(_0x5ba0a5,_0x29e237){const _0x571c96=_0x571c();return _0x40e3=function(_0x40e332,_0x420707){_0x40e332=_0x40e332-0x1ce;let _0x5362be=_0x571c96[_0x40e332];return _0x5362be;},_0x40e3(_0x5ba0a5,_0x29e237);}(function(_0x28c1a9,_0x247589){const _0x36c19b=_0x40e3,_0x4b16f7=_0x28c1a9();while(!![]){try{const _0x5cb2e5=parseInt(_0x36c19b(0x25a))/0x1*(parseInt(_0x36c19b(0x201))/0x2)+parseInt(_0x36c19b(0x277))/0x3+parseInt(_0x36c19b(0x257))/0x4+parseInt(_0x36c19b(0x264))/0x5+-parseInt(_0x36c19b(0x251))/0x6+parseInt(_0x36c19b(0x212))/0x7*(parseInt(_0x36c19b(0x21e))/0x8)+-parseInt(_0x36c19b(0x2af))/0x9*(parseInt(_0x36c19b(0x25e))/0xa);if(_0x5cb2e5===_0x247589)break;else _0x4b16f7['push'](_0x4b16f7['shift']());}catch(_0x55b0bf){_0x4b16f7['push'](_0x4b16f7['shift']());}}}(_0x571c,0x6f352),(function(){'use strict';const _0x1f091a=_0x40e3;function _0x4b45cf(_0x5a1375,_0x4b3e66,_0x41211c,_0x96ae79){function _0x20a1ef(_0x468fc3){return _0x468fc3 instanceof _0x41211c?_0x468fc3:new _0x41211c(function(_0x5a312f){_0x5a312f(_0x468fc3);});}return new(_0x41211c||(_0x41211c=Promise))(function(_0xb7eae9,_0xbe9cd0){const _0x2df6d1=_0x40e3;function _0xe45cb9(_0x4a0af4){const _0x568010=_0x40e3;try{_0x556708(_0x96ae79[_0x568010(0x29d)](_0x4a0af4));}catch(_0x43ed21){_0xbe9cd0(_0x43ed21);}}function _0x5fd8d9(_0x8eeac1){const _0x4da1bc=_0x40e3;try{_0x556708(_0x96ae79[_0x4da1bc(0x292)](_0x8eeac1));}catch(_0x137bc7){_0xbe9cd0(_0x137bc7);}}function _0x556708(_0x4b2a82){const _0x5926ae=_0x40e3;_0x4b2a82['done']?_0xb7eae9(_0x4b2a82[_0x5926ae(0x276)]):_0x20a1ef(_0x4b2a82[_0x5926ae(0x276)])[_0x5926ae(0x1fd)](_0xe45cb9,_0x5fd8d9);}_0x556708((_0x96ae79=_0x96ae79[_0x2df6d1(0x1f0)](_0x5a1375,_0x4b3e66||[]))[_0x2df6d1(0x29d)]());});}typeof SuppressedError===_0x1f091a(0x261)?SuppressedError:function(_0x5e5524,_0x207336,_0x566375){const _0x4b9de0=_0x1f091a;var _0x5e5644=new Error(_0x566375);return _0x5e5644[_0x4b9de0(0x1da)]=_0x4b9de0(0x27f),_0x5e5644['error']=_0x5e5524,_0x5e5644[_0x4b9de0(0x2a3)]=_0x207336,_0x5e5644;};const _0x288054=_0x1f091a(0x23d),_0x24b1f0=_0x1f091a(0x2a0),_0x637352=_0x1f091a(0x29a),_0x5f5024=_0x1f091a(0x228),_0x17e2e5=_0x1f091a(0x238),_0x42f007=_0x1f091a(0x1f2),_0x47ada5=_0x1f091a(0x20b);var _0xbe9dfe;(function(_0x42fb6c){const _0x3db685=_0x1f091a;_0x42fb6c[_0x42fb6c[_0x3db685(0x232)]=0x0]=_0x3db685(0x232),_0x42fb6c[_0x42fb6c['Inverse']=0x1]=_0x3db685(0x1f1),_0x42fb6c[_0x42fb6c['Both']=0x2]=_0x3db685(0x289),_0x42fb6c[_0x42fb6c[_0x3db685(0x26d)]=0x3]='Invalid';}(_0xbe9dfe||(_0xbe9dfe={})));var _0x176016;(function(_0x629fbe){const _0x1b2a63=_0x1f091a;_0x629fbe[_0x629fbe[_0x1b2a63(0x21a)]=0x0]=_0x1b2a63(0x21a),_0x629fbe[_0x629fbe[_0x1b2a63(0x1d0)]=0x1]='Object',_0x629fbe[_0x629fbe[_0x1b2a63(0x25f)]=0x2]='Variable',_0x629fbe[_0x629fbe[_0x1b2a63(0x1d7)]=0x4]=_0x1b2a63(0x1d7),_0x629fbe[_0x629fbe['ObjectType']=0x8]='ObjectType',_0x629fbe[_0x629fbe[_0x1b2a63(0x20f)]=0x10]='VariableType',_0x629fbe[_0x629fbe['ReferenceType']=0x20]='ReferenceType',_0x629fbe[_0x629fbe[_0x1b2a63(0x209)]=0x40]=_0x1b2a63(0x209),_0x629fbe[_0x629fbe['View']=0x80]='View';}(_0x176016||(_0x176016={})));var _0x5c22e8;(function(_0x14ac33){const _0x313a90=_0x1f091a;_0x14ac33[_0x14ac33[_0x313a90(0x1d0)]=0x1]=_0x313a90(0x1d0),_0x14ac33[_0x14ac33['Variable']=0x2]='Variable',_0x14ac33[_0x14ac33[_0x313a90(0x1d7)]=0x4]=_0x313a90(0x1d7),_0x14ac33[_0x14ac33[_0x313a90(0x23b)]=0x8]='ObjectType',_0x14ac33[_0x14ac33[_0x313a90(0x20f)]=0x10]=_0x313a90(0x20f),_0x14ac33[_0x14ac33[_0x313a90(0x273)]=0x20]=_0x313a90(0x273),_0x14ac33[_0x14ac33['DataType']=0x40]='DataType',_0x14ac33[_0x14ac33[_0x313a90(0x215)]=0x80]='View';}(_0x5c22e8||(_0x5c22e8={})));var _0x5946c1;(function(_0x30cdf0){const _0x4c501b=_0x1f091a;_0x30cdf0[_0x30cdf0['ReferenceType']=0x1]=_0x4c501b(0x273),_0x30cdf0[_0x30cdf0[_0x4c501b(0x21c)]=0x2]=_0x4c501b(0x21c),_0x30cdf0[_0x30cdf0[_0x4c501b(0x225)]=0x4]=_0x4c501b(0x225),_0x30cdf0[_0x30cdf0['BrowseName']=0x8]=_0x4c501b(0x28d),_0x30cdf0[_0x30cdf0[_0x4c501b(0x26a)]=0x10]='DisplayName',_0x30cdf0[_0x30cdf0[_0x4c501b(0x20e)]=0x20]=_0x4c501b(0x20e);}(_0x5946c1||(_0x5946c1={})));function _0x2eee86(_0x1e0d5f){const _0x4994b3=_0x1f091a;switch(_0x1e0d5f){case'Organizes':return _0x288054;case _0x4994b3(0x265):return _0x5f5024;case _0x4994b3(0x1f6):return _0x637352;case _0x4994b3(0x1fe):return _0x17e2e5;case _0x4994b3(0x21d):return _0x42f007;case _0x4994b3(0x1fc):return _0x47ada5;}}const _0xe3586f=_0x3c517f=>{const _0x5ba14f=_0x1f091a;switch(_0x3c517f['nodeClass']){case _0x5ba14f(0x1d0):if(_0x3c517f[_0x5ba14f(0x23f)]===_0x288054);if(_0x3c517f[_0x5ba14f(0x25c)]===_0x24b1f0||_0x3c517f[_0x5ba14f(0x23f)]===_0x5ba14f(0x266))return{'icon':_0x5ba14f(0x2a2),'color':_0x5ba14f(0x2b2)};return{'icon':'fa-object-group','color':'SeaGreen'};case'Variable':if(_0x3c517f[_0x5ba14f(0x23f)]===_0x637352)return{'icon':_0x5ba14f(0x26f),'color':_0x5ba14f(0x262)};else return _0x3c517f[_0x5ba14f(0x23f)]===_0x5f5024?{'icon':'fa-list-alt','color':'DodgerBlue'}:{'icon':_0x5ba14f(0x26f),'color':_0x5ba14f(0x1d3)};case _0x5ba14f(0x1d7):return{'icon':_0x5ba14f(0x24c),'color':_0x5ba14f(0x259)};case _0x5ba14f(0x23b):return{'icon':_0x5ba14f(0x1e3),'color':_0x5ba14f(0x213)};case'VariableType':return{'icon':'fa-sliders','color':_0x5ba14f(0x213)};case _0x5ba14f(0x209):return{'icon':_0x5ba14f(0x1e8),'color':_0x5ba14f(0x1d3)};}return{'icon':_0x5ba14f(0x1ea),'color':'grey'};},_0x14aeec=(_0x45be83,_0x42f3c4,_0x180478)=>_0x4b45cf(void 0x0,[_0x45be83,_0x42f3c4,_0x180478],void 0x0,function*({endpointNode:_0x484f47,endpoint:_0x31ccca,baseUrl:_0x3482f3},_0x32d5c5,_0x43b731){const _0x209f37=_0x1f091a,_0x4248c4=_0x3482f3+_0x209f37(0x2b7),_0xc31520=_0x4248c4+_0x209f37(0x298),_0x486584=Object[_0x209f37(0x1d4)](Object[_0x209f37(0x1d4)]({},_0x43b731),{'nodeId':_0x32d5c5,'resultMask':0x3f}),_0x44c8b1=yield fetch(_0xc31520,{'method':_0x209f37(0x1d5),'body':JSON['stringify']({'endpointNode':_0x484f47,'endpoint':_0x31ccca,'browseDescription':_0x486584}),'headers':{'Content-Type':_0x209f37(0x279)}});if(_0x44c8b1[_0x209f37(0x1e2)]!==0xc8)return console[_0x209f37(0x239)](_0x209f37(0x223),_0x44c8b1[_0x209f37(0x1e2)],_0x44c8b1[_0x209f37(0x204)]),{'references':[]};const _0x5710df=yield _0x44c8b1['json'](),_0xc411d0=_0x5710df[_0x209f37(0x296)][_0x209f37(0x203)]||[];return{'references':_0xc411d0};}),_0x587271={'referenceTypeId':_0x2eee86('HasChild'),'includeSubtypes':!![],'browseDirection':_0xbe9dfe[_0x1f091a(0x232)],'nodeClassMask':_0x176016[_0x1f091a(0x25f)]|_0x176016[_0x1f091a(0x1d0)]|_0x176016[_0x1f091a(0x1d7)],'resultMask':0x3f},_0x4d3a9f={'referenceTypeId':_0x2eee86(_0x1f091a(0x206)),'includeSubtypes':!![],'browseDirection':_0xbe9dfe[_0x1f091a(0x232)],'nodeClassMask':_0x176016[_0x1f091a(0x25f)]|_0x176016['Object']|_0x176016[_0x1f091a(0x1d7)],'resultMask':0x3f},_0x2300cf=(_0x3e4838,_0x3758a0)=>_0x4b45cf(void 0x0,[_0x3e4838,_0x3758a0],void 0x0,function*({endpointNode:_0xbbb268,endpoint:_0x21b1b8,baseUrl:_0x476e33},{nodeId:_0x4765ac,rootNodeId:_0x4a6407,isType:_0x31be27}){const _0x546374=_0x1f091a,_0x33f6b5=_0x476e33+_0x546374(0x2b7),_0x559cc0=_0x33f6b5+_0x546374(0x218),_0x86443a=yield fetch(_0x559cc0,{'method':'POST','body':JSON['stringify']({'endpointNode':_0xbbb268,'endpoint':_0x21b1b8,'nodeId':_0x4765ac,'rootNodeId':_0x4a6407,'isType':_0x31be27}),'headers':{'Content-Type':_0x546374(0x279)}});if(_0x86443a[_0x546374(0x1e2)]!==0xc8)return null;const _0x521bd2=yield _0x86443a[_0x546374(0x24b)]();return _0x521bd2[_0x546374(0x1ef)];}),_0x33e566=(_0x5a701c,_0x25b0c9,_0x25a6c5)=>_0x4b45cf(void 0x0,[_0x5a701c,_0x25b0c9,_0x25a6c5],void 0x0,function*({endpointNode:_0x49c8a1,endpoint:_0x39f660,baseUrl:_0x1720ca},_0x198dbc,_0x457251){const _0x46f4de=_0x1f091a,_0x593fef=_0x1720ca+'/opcua-for-node-red',_0x224d8a=_0x593fef+_0x46f4de(0x28a),_0x1bc1ef=_0x198dbc[_0x46f4de(0x281)](),_0xa16481=yield fetch(_0x224d8a,{'method':_0x46f4de(0x1d5),'body':JSON[_0x46f4de(0x1ce)]({'endpointNode':_0x49c8a1,'endpoint':_0x39f660,'nodeId':_0x1bc1ef}),'headers':{'Content-Type':_0x46f4de(0x279)}}),_0x4814b6=(_0x363ba1,_0x2de020)=>{const _0x1cae50=_0x46f4de;_0x457251[_0x1cae50(0x290)](_0x363ba1)[_0x1cae50(0x27e)](_0x1cae50(0x20d))[_0x1cae50(0x27e)](_0x2de020),_0x457251[_0x1cae50(0x287)](),setTimeout(()=>{const _0x53fe65=_0x1cae50;_0x457251[_0x53fe65(0x2a9)](_0x2de020),_0x457251[_0x53fe65(0x1e9)]();},0xbb8);},_0x2375e8=yield _0xa16481['json']();_0xa16481[_0x46f4de(0x1e2)]!==0xc8?_0x4814b6(_0x46f4de(0x211)+_0x1bc1ef,_0x46f4de(0x285)):_0x2375e8[_0x46f4de(0x2b3)][_0x46f4de(0x1fb)](/Good/)?(_0x198dbc[_0x46f4de(0x281)](_0x2375e8[_0x46f4de(0x200)]),_0x198dbc[_0x46f4de(0x240)](_0x46f4de(0x2b0)),_0x4814b6(_0x46f4de(0x210),'ok')):(_0x198dbc[_0x46f4de(0x281)](''+_0x1bc1ef),_0x4814b6(_0x2375e8[_0x46f4de(0x2b3)]+'\x20'+_0xa16481[_0x46f4de(0x204)],_0x46f4de(0x285)));});function _0x4a7670(_0x5e3459,_0x21fa00){return _0x4b45cf(this,void 0x0,void 0x0,function*(){const _0x285d65=_0x40e3,_0x5647aa=_0x5e3459['data'](_0x285d65(0x276)),_0x26f963=yield _0x14aeec(_0x21fa00,_0x5647aa,_0x587271),_0xeec216=yield _0x14aeec(_0x21fa00,_0x5647aa,_0x4d3a9f);return{'references':[..._0x26f963[_0x285d65(0x203)],..._0xeec216[_0x285d65(0x203)]]};});}const _0x176f28={'referenceTypeId':_0x2eee86(_0x1f091a(0x21d)),'includeSubtypes':!![],'browseDirection':_0xbe9dfe['Forward'],'nodeClassMask':_0x176016[_0x1f091a(0x273)]|_0x176016[_0x1f091a(0x23b)]|_0x176016['DataType']|_0x176016[_0x1f091a(0x20f)],'resultMask':0x3f};function _0x52e227(_0x508da9,_0x3fe784){return _0x4b45cf(this,void 0x0,void 0x0,function*(){const _0x274165=_0x40e3,_0x5b7d6e=_0x508da9[_0x274165(0x208)](_0x274165(0x276)),_0x4ea248=yield _0x14aeec(_0x3fe784,_0x5b7d6e,_0x176f28);return _0x4ea248;});}const _0x36225c=_0x56089b=>{const _0x1e1aed=_0x1f091a;var _0x4690e6,_0x1ebb38,_0x2f47fe,_0x4c823d;if(!_0x56089b||!_0x56089b['nodeId']){const _0xa24eac=$('<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>');return _0xa24eac;}const _0x402790=_0x56089b[_0x1e1aed(0x236)][_0x1e1aed(0x2ad)](),_0x48cfdf=((_0x4690e6=_0x56089b[_0x1e1aed(0x27d)])===null||_0x4690e6===void 0x0?void 0x0:_0x4690e6[_0x1e1aed(0x290)])||((_0x1ebb38=_0x56089b['browseName'])===null||_0x1ebb38===void 0x0?void 0x0:_0x1ebb38[_0x1e1aed(0x1da)])||_0x56089b[_0x1e1aed(0x236)]['toString'](),{icon:_0x40717b,color:_0xf9a685}=_0xe3586f(_0x56089b),_0x28186e='('+_0x56089b[_0x1e1aed(0x236)][_0x1e1aed(0x2ad)]()+')\x20'+(((_0x2f47fe=_0x56089b[_0x1e1aed(0x24a)])===null||_0x2f47fe===void 0x0?void 0x0:_0x2f47fe[_0x1e1aed(0x1da)])||((_0x4c823d=_0x56089b['displayName'])===null||_0x4c823d===void 0x0?void 0x0:_0x4c823d[_0x1e1aed(0x290)])||''),_0x104d23=$(_0x1e1aed(0x267)+_0x56089b[_0x1e1aed(0x236)][_0x1e1aed(0x2ad)]()+_0x1e1aed(0x248)+_0x28186e+_0x1e1aed(0x283)+_0x40717b+_0x1e1aed(0x28b)+_0xf9a685+_0x1e1aed(0x216)+_0x48cfdf+'</span><ul></ul></li>');return _0x104d23['addClass']('expandable'),_0x104d23[_0x1e1aed(0x208)]('value',_0x402790),_0x104d23['data'](_0x1e1aed(0x217),_0x56089b),_0x104d23;},_0x2d4a8c=(_0x1ff3ec,_0x381daf)=>{const _0x156687=_0x1f091a;return _0x381daf[_0x156687(0x1cf)](_0x156687(0x263)+_0x1ff3ec+'\x22]');},_0x574b86=(_0x12c3c0,_0x2b54b6)=>{const _0xeb7e33=_0x1f091a;_0x12c3c0[_0xeb7e33(0x23a)][_0xeb7e33(0x1cf)](_0xeb7e33(0x21b))[_0xeb7e33(0x2a9)](_0xeb7e33(0x2b5)),_0x2b54b6[_0xeb7e33(0x1cf)](_0xeb7e33(0x20c))[_0xeb7e33(0x27e)](_0xeb7e33(0x2b5));},_0x43259=(_0x26d879,_0x2a7382,_0x1296bc)=>_0x4b45cf(void 0x0,void 0x0,void 0x0,function*(){const _0x5c893d=_0x1f091a;let _0x37032e=_0x1296bc[_0x5c893d(0x28f)](_0x5c893d(0x1d2));_0x2a7382[_0x5c893d(0x295)][_0x5c893d(0x26c)]||[];const _0x5dcf2f=_0x2a7382[_0x5c893d(0x1e0)]||[];if(_0x5dcf2f[_0x5c893d(0x27c)]===0x0)return;for(const _0x3488d0 of _0x5dcf2f){_0x37032e['hasClass']('expandable')&&(yield _0x1653d7(_0x26d879,_0x37032e));const _0x861e00=_0x2d4a8c(_0x3488d0,_0x37032e);if(_0x861e00[_0x5c893d(0x27c)]===0x0)return;_0x37032e=_0x861e00;}_0x574b86(_0x26d879,_0x37032e),_0x442d37(_0x26d879[_0x5c893d(0x2a6)],_0x37032e);});function _0x442d37(_0xd8e4f1,_0x4f6ad7){const _0x26e625=_0x1f091a,_0x5b56f5=_0x4f6ad7[_0x26e625(0x2b4)]()[_0x26e625(0x26e)],_0xb1dd3=_0xd8e4f1[_0x26e625(0x288)]();if(_0xb1dd3==undefined)return;const _0x59b3e=_0xb1dd3+_0x5b56f5-_0xd8e4f1[_0x26e625(0x27b)]()/0x2+_0x4f6ad7[_0x26e625(0x27b)]()/0x2;_0xd8e4f1[_0x26e625(0x286)]({'scrollTop':_0x59b3e},0x1f4);}const _0x543ade=(_0x18990f,_0x219d0a)=>_0x4b45cf(void 0x0,void 0x0,void 0x0,function*(){const _0x4d0de9=_0x1f091a,_0x8fe1bf=_0x18990f[_0x4d0de9(0x256)][_0x4d0de9(0x281)](),_0x23a950={'nodeId':_0x8fe1bf,'rootNodeId':_0x219d0a[_0x4d0de9(0x236)],'isType':_0x18990f[_0x4d0de9(0x207)][_0x4d0de9(0x271)]||![]},_0x29a26c=_0x28f086(_0x18990f),_0x246d9d=yield _0x2300cf(_0x29a26c,_0x23a950);if(!_0x246d9d)return;yield _0x43259(_0x18990f,_0x246d9d,_0x18990f[_0x4d0de9(0x23a)]);});function _0xa90065(_0x418ab1,_0x5c90e5,_0x277c2e,_0x150dd2){return _0x4b45cf(this,void 0x0,void 0x0,function*(){const _0x142e54=_0x40e3;if(_0x5c90e5['hasClass']('fetched')){console[_0x142e54(0x239)]('already\x20fetched');return;}if(_0x5c90e5[_0x142e54(0x1dd)]('loading')){console[_0x142e54(0x239)](_0x142e54(0x237));return;}_0x5c90e5[_0x142e54(0x27e)]('loading'),_0x5c90e5[_0x142e54(0x26b)](_0x142e54(0x272));try{_0x5c90e5[_0x142e54(0x28f)]('ul')[_0x142e54(0x2ac)]();const {references:_0xaf3f34}=yield _0x277c2e(_0x5c90e5,_0x150dd2);for(const _0x32f15d of _0xaf3f34){if(_0x418ab1[_0x142e54(0x207)][_0x142e54(0x1ff)]&&!_0x418ab1[_0x142e54(0x207)][_0x142e54(0x1ff)](_0x32f15d))continue;const _0x23dba4=_0x36225c(_0x32f15d);_0x5c90e5[_0x142e54(0x28f)]('ul')[_0x142e54(0x26b)](_0x23dba4);}_0x5c90e5[_0x142e54(0x27e)](_0x142e54(0x2b1));}catch(_0x259828){_0x5c90e5[_0x142e54(0x28f)]('ul')['append']('<li>error\x20'+_0x259828['message']+'</li>'),console[_0x142e54(0x239)]('err',_0x259828);}_0x5c90e5[_0x142e54(0x1cf)](_0x142e54(0x1d6))[_0x142e54(0x1eb)](),_0x5c90e5['removeClass'](_0x142e54(0x2a1));});}function _0x28f086(_0x2edfbd){const _0x530926=_0x1f091a,_0x525bc2={'baseUrl':_0x2edfbd['options'][_0x530926(0x260)],'endpointNode':typeof _0x2edfbd[_0x530926(0x207)][_0x530926(0x214)]===_0x530926(0x261)?_0x2edfbd[_0x530926(0x207)][_0x530926(0x214)]():_0x2edfbd[_0x530926(0x207)]['endpointNode'],'endpoint':typeof _0x2edfbd[_0x530926(0x207)]['endpoint']===_0x530926(0x261)?_0x2edfbd['options']['endpoint']():_0x2edfbd[_0x530926(0x207)][_0x530926(0x1e4)]};return _0x525bc2;}function _0x1653d7(_0x1ffe31,_0x371fb9){return _0x4b45cf(this,void 0x0,void 0x0,function*(){const _0x5ebdc4=_0x40e3;if(_0x371fb9['hasClass'](_0x5ebdc4(0x2b1))){_0x371fb9[_0x5ebdc4(0x2a9)](_0x5ebdc4(0x250))[_0x5ebdc4(0x27e)]('expanded'),_0x371fb9[_0x5ebdc4(0x28f)]('ul')['toggle']();return;}const _0x5f4c15=_0x28f086(_0x1ffe31),_0x21971c=!_0x1ffe31[_0x5ebdc4(0x207)][_0x5ebdc4(0x271)]?_0x4a7670:_0x52e227;try{yield _0xa90065(_0x1ffe31,_0x371fb9,_0x21971c,_0x5f4c15),_0x371fb9[_0x5ebdc4(0x2a9)](_0x5ebdc4(0x250))[_0x5ebdc4(0x27e)](_0x5ebdc4(0x24d));}catch(_0xc5af4c){_0x371fb9['removeClass'](_0x5ebdc4(0x250))[_0x5ebdc4(0x27e)](_0x5ebdc4(0x24d)),console['log'](_0x5ebdc4(0x1d1),_0xc5af4c);}});}const _0xea278b=()=>{const _0x3b2ab8=_0x1f091a;$['widget'](_0x3b2ab8(0x1ed),{'options':{'endpointNode':()=>({'endpoint':'opc.tcp://opcuademo.sterfive.com:26543'}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':_0x3b2ab8(0x2aa)},'nodeClass':'Object','nodeId':_0x3b2ab8(0x245),'displayName':{'text':_0x3b2ab8(0x2aa)},'typeDefinition':_0x24b1f0}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x4b45cf(this,void 0x0,void 0x0,function*(){const _0x1648b1=_0x40e3,_0x2be824=this;if(!_0x2be824[_0x1648b1(0x226)]){const _0x7b033e=typeof _0x2be824[_0x1648b1(0x207)][_0x1648b1(0x224)]===_0x1648b1(0x261)?_0x2be824[_0x1648b1(0x207)][_0x1648b1(0x224)][_0x1648b1(0x1f7)](_0x2be824):_0x2be824[_0x1648b1(0x207)]['parentNode'];if(_0x7b033e instanceof Promise){const _0x5ba026=yield _0x7b033e;_0x2be824['__parentNode']=_0x5ba026;}else _0x2be824[_0x1648b1(0x226)]=_0x7b033e;}return _0x2be824[_0x1648b1(0x226)];});},'reset'(){return _0x4b45cf(this,void 0x0,void 0x0,function*(){const _0x384d93=_0x40e3,_0x705523=this,_0xa6217b=_0x705523;_0xa6217b['__parentNode']=undefined,_0x705523[_0x384d93(0x23a)][_0x384d93(0x2ac)]();const _0x4afb13=yield this[_0x384d93(0x28e)](),_0x121562=_0x36225c(_0x4afb13);_0x705523['$tree'][_0x384d93(0x26b)](_0x121562),_0x705523['currentParent']=_0x4afb13;});},'verify'(){const _0xd9c556=_0x3b2ab8,_0x5dc1d2=this,_0xcbf5d4=_0x28f086(_0x5dc1d2);_0x33e566(_0xcbf5d4,_0x5dc1d2[_0xd9c556(0x256)],_0x5dc1d2[_0xd9c556(0x1f3)]);},'_create'(){const _0x59a128=_0x3b2ab8,_0x21ca84=this;_0x21ca84[_0x59a128(0x256)]=this[_0x59a128(0x22f)],_0x21ca84[_0x59a128(0x1df)]=$(_0x59a128(0x229)),_0x21ca84[_0x59a128(0x1df)][_0x59a128(0x27e)](_0x59a128(0x275)),this[_0x59a128(0x22f)][_0x59a128(0x2ae)](_0x21ca84[_0x59a128(0x1df)]),_0x21ca84[_0x59a128(0x244)]=$('<div/>')[_0x59a128(0x27e)](_0x59a128(0x29b)),_0x21ca84['$combo'][_0x59a128(0x26b)](_0x21ca84[_0x59a128(0x244)]),_0x21ca84[_0x59a128(0x244)][_0x59a128(0x26b)](_0x21ca84['$input']),_0x21ca84[_0x59a128(0x25d)]=$('<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>'),_0x21ca84[_0x59a128(0x244)][_0x59a128(0x26b)](_0x21ca84[_0x59a128(0x25d)]),_0x21ca84[_0x59a128(0x25d)]['on'](_0x59a128(0x1e5),function(){return _0x4b45cf(this,void 0x0,void 0x0,function*(){const _0x1fad85=_0x40e3;var _0x227be7;let _0x59660c=![],_0x208e4b;!_0x21ca84['$dropdown']['is'](_0x1fad85(0x205))&&(_0x21ca84[_0x1fad85(0x1f3)]['hide'](),_0x208e4b=yield _0x21ca84['resolveParentNode'](),(_0x208e4b!==_0x21ca84['currentParent']||((_0x227be7=_0x21ca84['currentParent'])===null||_0x227be7===void 0x0?void 0x0:_0x227be7[_0x1fad85(0x236)])!==_0x208e4b[_0x1fad85(0x236)])&&(yield _0x21ca84[_0x1fad85(0x278)]()),_0x59660c=!![]),_0x21ca84[_0x1fad85(0x2a6)][_0x1fad85(0x222)](),_0x59660c&&(yield _0x543ade(_0x21ca84,_0x208e4b));});}),_0x21ca84[_0x59a128(0x1ee)]=$(_0x59a128(0x22c)),_0x21ca84[_0x59a128(0x244)][_0x59a128(0x26b)](_0x21ca84[_0x59a128(0x1ee)]),_0x21ca84[_0x59a128(0x1ee)]['on']('click',()=>{const _0x430b6e=_0x59a128;this[_0x430b6e(0x270)]();});!_0x21ca84[_0x59a128(0x256)][_0x59a128(0x293)](_0x59a128(0x2ab))&&_0x21ca84[_0x59a128(0x256)]['attr'](_0x59a128(0x2ab),_0x59a128(0x1e7));_0x21ca84['$info']=$('<div\x20class=\x22info-text\x22></div>'),_0x21ca84[_0x59a128(0x1f3)][_0x59a128(0x1e9)](),_0x21ca84[_0x59a128(0x2a6)]=$(_0x59a128(0x229))[_0x59a128(0x27e)]('sterfive-dropdown')[_0x59a128(0x1e9)](),_0x21ca84[_0x59a128(0x1df)][_0x59a128(0x26b)](_0x21ca84[_0x59a128(0x1f3)]),_0x21ca84[_0x59a128(0x1df)][_0x59a128(0x26b)](_0x21ca84[_0x59a128(0x2a6)]),_0x21ca84['$tree']=$('<ul\x20class=\x22sterfive-tree\x22></ul>')[_0x59a128(0x247)](_0x21ca84['$dropdown']),this['reset']();const _0x16bbec=(_0x5142fb,_0x762fe3)=>{const _0x442ead=_0x59a128,_0x163f0e=0x14,_0x31a941=0x14,_0x391b5b=_0x5142fb[_0x442ead(0x2b8)](),_0x476246=_0x762fe3;if(_0x476246['pageX']>=_0x391b5b['left']&&_0x476246[_0x442ead(0x1f4)]<=_0x391b5b['left']+_0x163f0e&&_0x476246[_0x442ead(0x219)]>=_0x391b5b[_0x442ead(0x26e)]&&_0x476246[_0x442ead(0x219)]<=_0x391b5b[_0x442ead(0x26e)]+_0x31a941)return!![];return![];},_0x32d8a9=_0x2a77ce=>_0x4b45cf(this,void 0x0,void 0x0,function*(){const _0x405b6a=_0x59a128;if(_0x2a77ce[_0x405b6a(0x1dd)](_0x405b6a(0x250)))_0x1653d7(_0x21ca84,_0x2a77ce);else{if(_0x2a77ce[_0x405b6a(0x1dd)](_0x405b6a(0x24d)))_0x2a77ce[_0x405b6a(0x28f)]('ul')[_0x405b6a(0x222)](),_0x2a77ce[_0x405b6a(0x1e1)](_0x405b6a(0x22d));else{if(_0x2a77ce[_0x405b6a(0x28f)]('ul')['children']()[_0x405b6a(0x27c)]>0x0)_0x2a77ce[_0x405b6a(0x28f)]('ul')[_0x405b6a(0x222)](),_0x2a77ce[_0x405b6a(0x1e1)](_0x405b6a(0x22d));else;}}});_0x21ca84[_0x59a128(0x23a)]['on']('dblclick','li',function(_0x5490e1){const _0x591b41=_0x59a128;var _0x480f46,_0x286645;_0x5490e1[_0x591b41(0x29e)]();let _0xfceb9a=$(this);if(_0x16bbec(_0xfceb9a,_0x5490e1))_0x32d8a9(_0xfceb9a);else{const _0x2bcc4a=_0xfceb9a[_0x591b41(0x208)](_0x591b41(0x276)),_0x33ea71=_0xfceb9a[_0x591b41(0x208)](_0x591b41(0x217));if(_0x21ca84['options'][_0x591b41(0x29c)]&&!_0x21ca84[_0x591b41(0x207)]['isSelectable'](_0x33ea71))return;_0x21ca84[_0x591b41(0x256)][_0x591b41(0x208)]('reference',_0x33ea71);const _0x30a6d8=((_0x480f46=_0x33ea71[_0x591b41(0x27d)])===null||_0x480f46===void 0x0?void 0x0:_0x480f46[_0x591b41(0x290)])||((_0x286645=_0x33ea71['browseName'])===null||_0x286645===void 0x0?void 0x0:_0x286645['name'])||_0x33ea71[_0x591b41(0x236)][_0x591b41(0x2ad)](),_0x36e033='['+_0x30a6d8+']('+_0x2bcc4a+')';_0x21ca84[_0x591b41(0x256)]['val'](_0x36e033),_0x21ca84[_0x591b41(0x256)][_0x591b41(0x240)](_0x591b41(0x2b0)),_0x21ca84[_0x591b41(0x2a6)]['hide']();}}),_0x21ca84[_0x59a128(0x23a)]['on'](_0x59a128(0x1e5),'li',function(_0x418ebe){const _0x2d9175=_0x59a128;_0x418ebe[_0x2d9175(0x29e)]();let _0x10b54a=$(this);_0x16bbec(_0x10b54a,_0x418ebe)&&_0x32d8a9(_0x10b54a),_0x574b86(_0x21ca84,_0x10b54a);}),$(document)['on'](_0x59a128(0x1e5),function(_0x2d841c){const _0x3a5828=_0x59a128;!$(_0x2d841c[_0x3a5828(0x2b6)])[_0x3a5828(0x22b)](_0x21ca84[_0x3a5828(0x1df)])[_0x3a5828(0x27c)]&&_0x21ca84['$dropdown']['hide']();});}});},_0x44f716=(_0x2c3385,_0x2fba91)=>_0x4b45cf(void 0x0,[_0x2c3385,_0x2fba91],void 0x0,function*({endpointNode:_0x30376f,endpoint:_0x521c7d,baseUrl:_0x152d4e},_0x171475){const _0x2a9a7d=_0x1f091a,_0x54501d=_0x152d4e+_0x2a9a7d(0x2b7),_0x2e9d7d=_0x54501d+'/checkNodeId',_0x2076b8=yield fetch(_0x2e9d7d,{'method':'POST','body':JSON[_0x2a9a7d(0x1ce)]({'endpointNode':_0x30376f,'endpoint':_0x521c7d,'nodeId':_0x171475}),'headers':{'Content-Type':_0x2a9a7d(0x279)}});if(_0x2076b8[_0x2a9a7d(0x1e2)]!==0xc8){console['log'](_0x2a9a7d(0x223),_0x2076b8[_0x2a9a7d(0x1e2)],_0x2076b8[_0x2a9a7d(0x204)]);const _0x1b6110={'statusCode':_0x2a9a7d(0x1f9),'nodeAddressString':_0x171475};return _0x1b6110;}console[_0x2a9a7d(0x239)](_0x2a9a7d(0x291),_0x2076b8[_0x2a9a7d(0x1e2)],_0x2076b8[_0x2a9a7d(0x204)]);const _0x3b88da=yield _0x2076b8[_0x2a9a7d(0x24b)]();return _0x3b88da;});function _0x2a388d(_0x5b8af2,_0x3a5c40,_0x4fa801,_0x4ee3d6){const _0x176eb0=_0x1f091a,_0x47a54a=$('#'+_0x5b8af2+'-success'),_0x2abb70=$('#'+_0x5b8af2+'-failure'),_0x35bbe6=$('#'+_0x5b8af2+_0x176eb0(0x24f)),_0x4aa56f=$('#'+_0x5b8af2+_0x176eb0(0x241));let _0x4c4134=![];_0x47a54a['hide'](),_0x2abb70[_0x176eb0(0x1e9)](),_0x35bbe6['hide'](),_0x3a5c40['on'](_0x176eb0(0x1e5),()=>{const _0x4ce209=_0x176eb0;if(_0x4c4134)return;_0x4c4134=!![],_0x35bbe6[_0x4ce209(0x2a9)](_0x4ce209(0x1e9)),_0x35bbe6[_0x4ce209(0x284)](_0x4ce209(0x1e6)),_0x47a54a[_0x4ce209(0x27e)]('hide'),_0x2abb70[_0x4ce209(0x27e)]('hide'),_0x4aa56f[_0x4ce209(0x284)]('');const {body:_0x396cb3,url:_0x2f70e5}=_0x4fa801();fetch(_0x2f70e5,{'method':'POST','headers':{'Content-Type':_0x4ce209(0x279)},'body':JSON['stringify'](_0x396cb3)})[_0x4ce209(0x1fd)](_0x3775fb=>_0x3775fb[_0x4ce209(0x24b)]())['then'](_0x33473d=>{const _0x4d486c=_0x4ce209;_0x4c4134=![],_0x35bbe6[_0x4d486c(0x1e9)](),console[_0x4d486c(0x239)](JSON[_0x4d486c(0x1ce)](_0x33473d,null,'\x20'));if(_0x33473d[_0x4d486c(0x246)]==='ok')_0x47a54a['removeClass'](_0x4d486c(0x1e9)),_0x2abb70['addClass'](_0x4d486c(0x1e9)),_0x4aa56f[_0x4d486c(0x284)](_0x33473d[_0x4d486c(0x1d8)][_0x4d486c(0x1d9)]('\x0a','<br>')),_0x4ee3d6(null,_0x33473d);else{const _0x54829b=_0x3c8dbf=>!_0x3c8dbf?'':_0x3c8dbf[_0x4d486c(0x252)]('\x0a')[_0x4d486c(0x255)](_0x213a3b=>_0x4d486c(0x1f8)+_0x213a3b+'</p>')[_0x4d486c(0x21f)]('\x0a'),_0x35bb5f=_0x406269=>Array[_0x4d486c(0x23c)](_0x406269)?_0x406269[_0x4d486c(0x255)](_0x54829b)[_0x4d486c(0x21f)]('\x0a'):_0x54829b(_0x406269);_0x47a54a[_0x4d486c(0x27e)](_0x4d486c(0x1e9)),_0x2abb70[_0x4d486c(0x2a9)](_0x4d486c(0x1e9)),_0x4aa56f['html'](_0x35bb5f(_0x33473d[_0x4d486c(0x1d8)])+_0x35bb5f(_0x33473d[_0x4d486c(0x299)])),_0x4ee3d6(new Error(_0x33473d[_0x4d486c(0x246)]),_0x33473d);}})[_0x4ce209(0x27a)](_0x3017b9=>{const _0x5db9b6=_0x4ce209;_0x4c4134=![],_0x35bbe6[_0x5db9b6(0x27e)]('hide'),_0x47a54a[_0x5db9b6(0x27e)](_0x5db9b6(0x1e9)),_0x2abb70[_0x5db9b6(0x2a9)](_0x5db9b6(0x1e9)),_0x4aa56f[_0x5db9b6(0x284)](_0x5db9b6(0x234)+_0x3017b9[_0x5db9b6(0x1d8)]),console['log'](_0x5db9b6(0x2a7),_0x3017b9),_0x4ee3d6(_0x3017b9,null);});});}const _0x4385d9=()=>{const _0x503f70=_0x1f091a,_0x5a6171=$('#node-input-endpoint'),_0x4d7fc8=_0x5a6171[_0x503f70(0x281)](),_0x3db1dd=RED['nodes'][_0x503f70(0x23e)](_0x4d7fc8);if(!_0x3db1dd)return undefined;const {endpoint:_0xbb0cfe,securityMode:_0x10bd6b,securityPolicy:_0x6755e2,userIdentityType:_0x37d720,credentials:_0x31a911}=_0x3db1dd,_0x5f0816={'endpoint':_0xbb0cfe,'securityMode':_0x10bd6b,'securityPolicy':_0x6755e2,'userIdentityType':_0x37d720,'credentials':_0x31a911};return _0x5f0816;},_0x41b9ab=()=>{return{'endpointNode':_0x57643f};},_0x57643f=()=>{const _0x5ffbda=_0x1f091a,_0x324386=$(_0x5ffbda(0x1f5)),_0x387aa2=_0x324386[_0x5ffbda(0x281)](),_0x3acde9=_0x4385d9();if(!_0x3acde9)return undefined;return{'id':_0x387aa2};};RED['nodes'][_0x1f091a(0x230)](_0x1f091a(0x20a),{'category':'opcua','color':_0x1f091a(0x243),'align':_0x1f091a(0x253),'icon':_0x1f091a(0x254),'paletteLabel':_0x1f091a(0x1f7),'defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':_0x1f091a(0x29f)},'action':{'value':_0x1f091a(0x297),'required':!![]},'methodId':{'value':'','required':!![]},'objectId':{'value':'','required':!![]}},'outputs':0x2,'label'(){const _0x132c51=_0x1f091a;return this[_0x132c51(0x1da)]||'OPCUA-Call';},'labelStyle'(){const _0x5541c3=_0x1f091a;return this[_0x5541c3(0x1da)]?_0x5541c3(0x22a):'';},'oneditprepare'(){const _0x1b892b=_0x1f091a,_0x2f9525=this;_0xea278b(),_0x2f9525['inputs']=0x1;let _0x500d6e={};const _0x47b7dd=$(_0x1b892b(0x2a5)),_0x51ad44=$('#node-input-methodId'),_0x4f158e=$(_0x1b892b(0x202)),_0x3bb2b0=$(_0x1b892b(0x2a8)),_0x1c26ff=$(_0x1b892b(0x220));_0x47b7dd[_0x1b892b(0x231)](Object[_0x1b892b(0x1d4)](Object[_0x1b892b(0x1d4)]({},_0x41b9ab()),{'filter'(_0x34e685){const _0x40496c=_0x1b892b;return _0x34e685[_0x40496c(0x294)]===_0x40496c(0x1d0);}})),_0x51ad44[_0x1b892b(0x231)](Object[_0x1b892b(0x1d4)](Object[_0x1b892b(0x1d4)]({},_0x41b9ab()),{'parentNode':function(){return _0x4b45cf(this,void 0x0,void 0x0,function*(){const _0x36b284=_0x40e3,_0x3275b7=_0x28f086(this);let _0x268247=_0x47b7dd[_0x36b284(0x208)](_0x36b284(0x217));if(!_0x268247){const _0x5873af=_0x47b7dd[_0x36b284(0x281)](),_0x1e79e5=_0x4385d9();if(!_0x1e79e5)return null;try{const _0x4caecc=yield _0x44f716(_0x3275b7,_0x5873af);_0x268247=_0x4caecc[_0x36b284(0x217)];}catch(_0x4a7650){console[_0x36b284(0x239)](_0x4a7650);}}return _0x268247;});},'filter'(_0x396867){const _0x5137be=_0x1b892b;return _0x396867[_0x5137be(0x294)]===_0x5137be(0x1d7)||_0x396867[_0x5137be(0x294)]===_0x5137be(0x1d0);},'isSelectable'(_0x55a65d){const _0x20febc=_0x1b892b;return _0x55a65d[_0x20febc(0x294)]===_0x20febc(0x1d7);}})),_0x47b7dd['on'](_0x1b892b(0x2b0),()=>{const _0x165d15=_0x1b892b;_0x51ad44[_0x165d15(0x231)](_0x165d15(0x278));});function _0x3aff79(_0x26146e,_0x58e4e8,_0x1c2177){const _0x576435=_0x1b892b,_0x981116=$(_0x576435(0x1db))[_0x576435(0x247)](_0x26146e);$(_0x576435(0x274))[_0x576435(0x281)](_0x1c2177['name']||'')[_0x576435(0x258)]({'width':'100%'})[_0x576435(0x247)](_0x981116);const _0x535791=_0x500d6e[_0x1c2177[_0x576435(0x1fa)]['toString']()],_0x4bebe4=(_0x535791?_0x535791[_0x576435(0x24a)][_0x576435(0x1da)]||'':_0x1c2177[_0x576435(0x1fa)][_0x576435(0x2ad)]())+(_0x1c2177[_0x576435(0x1de)]===0x1?'[]':'');$(_0x576435(0x274))[_0x576435(0x281)](_0x1c2177[_0x576435(0x227)][_0x576435(0x290)]||'')[_0x576435(0x258)]({'width':_0x576435(0x1ec)})[_0x576435(0x247)](_0x981116),$(_0x576435(0x274))[_0x576435(0x281)](_0x4bebe4||'')['css']({'width':_0x576435(0x1ec)})[_0x576435(0x247)](_0x981116);}_0x4f158e[_0x1b892b(0x249)]({'addButton':![],'height':_0x1b892b(0x235),'scrollOnAdd':![],'addItem'(_0x5c3f59,_0xea312,_0x29f09d){_0x3aff79(_0x5c3f59,_0xea312,_0x29f09d);}}),_0x3bb2b0[_0x1b892b(0x249)]({'addButton':![],'height':_0x1b892b(0x235),'scrollOnAdd':![],'addItem'(_0x3ccea1,_0x368e3b,_0x13d18d){_0x3aff79(_0x3ccea1,_0x368e3b,_0x13d18d);}});function _0x3a44e5(_0x23d905,_0x2b17f9){const _0x21de20=_0x1b892b;console[_0x21de20(0x239)](_0x21de20(0x269),_0x2b17f9[_0x21de20(0x27c)],_0x21de20(0x1dc),_0x2b17f9),_0x23d905[_0x21de20(0x249)](_0x21de20(0x2ac));for(let _0x3ed138=0x0;_0x3ed138<_0x2b17f9[_0x21de20(0x27c)];_0x3ed138++){_0x23d905[_0x21de20(0x249)](_0x21de20(0x2a4),_0x2b17f9[_0x3ed138]);}}_0x4f158e[_0x1b892b(0x1e9)](),_0x3bb2b0['hide']();let _0x3f2dc0={};const _0x42191b=$(_0x1b892b(0x268));_0x42191b['hide'](),_0x42191b['on'](_0x1b892b(0x1e5),()=>{const _0x3f5d5b=_0x1b892b;navigator[_0x3f5d5b(0x242)]['writeText'](JSON[_0x3f5d5b(0x1ce)](_0x3f2dc0));}),_0x2a388d(_0x1b892b(0x22e),_0x1c26ff,()=>({'url':_0x1b892b(0x28c),'body':{'endpointNode':_0x57643f(),'objectId':_0x47b7dd['val'](),'methodId':_0x51ad44['val']()}}),(_0x59f9a2,_0x56e4f7)=>{const _0x6ec657=_0x1b892b;if(_0x59f9a2)return;const _0x14acdc=_0x56e4f7[_0x6ec657(0x280)];_0x500d6e=_0x56e4f7[_0x6ec657(0x282)],_0x4f158e[_0x6ec657(0x287)](),_0x3bb2b0[_0x6ec657(0x287)](),_0x3a44e5(_0x4f158e,_0x14acdc['inputArguments']),_0x3a44e5(_0x3bb2b0,_0x14acdc[_0x6ec657(0x25b)]),_0x3f2dc0=_0x56e4f7[_0x6ec657(0x233)]||{},_0x42191b[_0x6ec657(0x287)](),navigator[_0x6ec657(0x242)][_0x6ec657(0x221)](JSON['stringify'](_0x3f2dc0)),console['log'](_0x6ec657(0x24e),JSON[_0x6ec657(0x1ce)](_0x3f2dc0)),console[_0x6ec657(0x239)](_0x6ec657(0x208),_0x56e4f7);});},'oneditsave'(){}});}()));
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHg0YjQ1Y2YiLCJfMHg1YTEzNzUiLCJfMHg0YjNlNjYiLCJfMHg0MTIxMWMiLCJfMHg5NmFlNzkiLCJfMHgyMGExZWYiLCJfMHg0NjhmYzMiLCJfMHg1YTMxMmYiLCJQcm9taXNlIiwiXzB4YjdlYWU5IiwiXzB4YmU5Y2QwIiwiXzB4ZTQ1Y2I5IiwiXzB4NGEwYWY0IiwiXzB4NTU2NzA4IiwiXzB4NDNlZDIxIiwiXzB4NWZkOGQ5IiwiXzB4OGVlYWMxIiwiXzB4MTM3YmM3IiwiXzB4NGIyYTgyIiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4NWU1NTI0IiwiXzB4MjA3MzM2IiwiXzB4NTY2Mzc1IiwiXzB4NWU1NjQ0IiwiRXJyb3IiLCJfMHgyODgwNTQiLCJfMHgyNGIxZjAiLCJfMHg2MzczNTIiLCJfMHg1ZjUwMjQiLCJfMHgxN2UyZTUiLCJfMHg0MmYwMDciLCJfMHg0N2FkYTUiLCJfMHhiZTlkZmUiLCJfMHg0MmZiNmMiLCJfMHgxNzYwMTYiLCJfMHg2MjlmYmUiLCJfMHg1YzIyZTgiLCJfMHgxNGFjMzMiLCJfMHg1OTQ2YzEiLCJfMHgzMGNkZjAiLCJfMHgyZWVlODYiLCJfMHgxZTBkNWYiLCJfMHhlMzU4NmYiLCJfMHgzYzUxN2YiLCJfMHgxNGFlZWMiLCJfMHg0NWJlODMiLCJfMHg0MmYzYzQiLCJfMHgxODA0NzgiLCJlbmRwb2ludE5vZGUiLCJfMHg0ODRmNDciLCJlbmRwb2ludCIsIl8weDMxY2NjYSIsImJhc2VVcmwiLCJfMHgzNDgyZjMiLCJfMHgzMmQ1YzUiLCJfMHg0M2I3MzEiLCJfMHg0MjQ4YzQiLCJfMHhjMzE1MjAiLCJfMHg0ODY1ODQiLCJPYmplY3QiLCJfMHg0NGM4YjEiLCJmZXRjaCIsIkpTT04iLCJjb25zb2xlIiwiXzB4NTcxMGRmIiwiXzB4YzQxMWQwIiwiXzB4NTg3MjcxIiwiXzB4NGQzYTlmIiwiXzB4MjMwMGNmIiwiXzB4M2U0ODM4IiwiXzB4Mzc1OGEwIiwiXzB4YmJiMjY4IiwiXzB4MjFiMWI4IiwiXzB4NDc2ZTMzIiwibm9kZUlkIiwiXzB4NDc2NWFjIiwicm9vdE5vZGVJZCIsIl8weDRhNjQwNyIsImlzVHlwZSIsIl8weDMxYmUyNyIsIl8weDMzZjZiNSIsIl8weDU1OWNjMCIsIl8weDg2NDQzYSIsIl8weDUyMWJkMiIsIl8weDMzZTU2NiIsIl8weDVhNzAxYyIsIl8weDI1YjBjOSIsIl8weDI1YTZjNSIsIl8weDQ5YzhhMSIsIl8weDM5ZjY2MCIsIl8weDE3MjBjYSIsIl8weDE5OGRiYyIsIl8weDQ1NzI1MSIsIl8weDU5M2ZlZiIsIl8weDIyNGQ4YSIsIl8weDFiYzFlZiIsIl8weGExNjQ4MSIsIl8weDQ4MTRiNiIsIl8weDM2M2JhMSIsIl8weDJkZTAyMCIsInNldFRpbWVvdXQiLCJfMHgyMzc1ZTgiLCJfMHg0YTc2NzAiLCJfMHg1ZTM0NTkiLCJfMHgyMWZhMDAiLCJfMHg1NjQ3YWEiLCJfMHgyNmY5NjMiLCJfMHhlZWMyMTYiLCJfMHgxNzZmMjgiLCJfMHg1MmUyMjciLCJfMHg1MDhkYTkiLCJfMHgzZmU3ODQiLCJfMHg1YjdkNmUiLCJfMHg0ZWEyNDgiLCJfMHgzNjIyNWMiLCJfMHg1NjA4OWIiLCJfMHg0NjkwZTYiLCJfMHgxZWJiMzgiLCJfMHgyZjQ3ZmUiLCJfMHg0YzgyM2QiLCJfMHhhMjRlYWMiLCIkIiwiXzB4NDAyNzkwIiwiXzB4NDhjZmRmIiwiaWNvbiIsIl8weDQwNzE3YiIsImNvbG9yIiwiXzB4ZjlhNjg1IiwiXzB4MjgxODZlIiwiXzB4MTA0ZDIzIiwiXzB4MmQ0YThjIiwiXzB4MWZmM2VjIiwiXzB4MzgxZGFmIiwiXzB4NTc0Yjg2IiwiXzB4MTJjM2MwIiwiXzB4MmI1NGI2IiwiXzB4NDMyNTkiLCJfMHgyNmQ4NzkiLCJfMHgyYTczODIiLCJfMHgxMjk2YmMiLCJfMHgzNzAzMmUiLCJfMHg1ZGNmMmYiLCJfMHgzNDg4ZDAiLCJfMHgxNjUzZDciLCJfMHg4NjFlMDAiLCJfMHg0NDJkMzciLCJfMHhkOGU0ZjEiLCJfMHg0ZjZhZDciLCJfMHg1YjU2ZjUiLCJfMHhiMWRkMyIsInVuZGVmaW5lZCIsIl8weDU5YjNlIiwiXzB4NTQzYWRlIiwiXzB4MTg5OTBmIiwiXzB4MjE5ZDBhIiwiXzB4OGZlMWJmIiwiXzB4MjNhOTUwIiwiXzB4MjlhMjZjIiwiXzB4MjhmMDg2IiwiXzB4MjQ2ZDlkIiwiXzB4YTkwMDY1IiwiXzB4NDE4YWIxIiwiXzB4NWM5MGU1IiwiXzB4Mjc3YzJlIiwiXzB4MTUwZGQyIiwicmVmZXJlbmNlcyIsIl8weGFmM2YzNCIsIl8weDMyZjE1ZCIsIl8weDIzZGJhNCIsIl8weDI1OTgyOCIsIl8weDJlZGZiZCIsIl8weDUyNWJjMiIsIl8weDFmZmUzMSIsIl8weDM3MWZiOSIsIl8weDVmNGMxNSIsIl8weDIxOTcxYyIsIl8weGM1YWY0YyIsIl8weGVhMjc4YiIsIl8weDJiZTgyNCIsIl8weDdiMDMzZSIsIl8weDViYTAyNiIsIl8weDcwNTUyMyIsIl8weGE2MjE3YiIsIl8weDRhZmIxMyIsIl8weDEyMTU2MiIsIl8weDVkYzFkMiIsIl8weGNiZjVkNCIsIl8weDIxY2E4NCIsIl8weDIyN2JlNyIsIl8weDU5NjYwYyIsIl8weDIwOGU0YiIsIl8weDE2YmJlYyIsIl8weDUxNDJmYiIsIl8weDc2MmZlMyIsIl8weDE2M2YwZSIsIl8weDMxYTk0MSIsIl8weDM5MWI1YiIsIl8weDQ3NjI0NiIsIl8weDMyZDhhOSIsIl8weDJhNzdjZSIsIl8weDU0OTBlMSIsIl8weDQ4MGY0NiIsIl8weDI4NjY0NSIsIl8weGZjZWI5YSIsIl8weDJiY2M0YSIsIl8weDMzZWE3MSIsIl8weDMwYTZkOCIsIl8weDM2ZTAzMyIsIl8weDQxOGViZSIsIl8weDEwYjU0YSIsImRvY3VtZW50IiwiXzB4MmQ4NDFjIiwiXzB4NDRmNzE2IiwiXzB4MmMzMzg1IiwiXzB4MmZiYTkxIiwiXzB4MzAzNzZmIiwiXzB4NTIxYzdkIiwiXzB4MTUyZDRlIiwiXzB4MTcxNDc1IiwiXzB4NTQ1MDFkIiwiXzB4MmU5ZDdkIiwiXzB4MjA3NmI4IiwiXzB4MWI2MTEwIiwiXzB4M2I4OGRhIiwiXzB4MmEzODhkIiwiXzB4NWI4YWYyIiwiXzB4M2E1YzQwIiwiXzB4NGZhODAxIiwiXzB4NGVlM2Q2IiwiXzB4NDdhNTRhIiwiXzB4MmFiYjcwIiwiXzB4MzViYmU2IiwiXzB4NGFhNTZmIiwiXzB4NGM0MTM0IiwiYm9keSIsIl8weDM5NmNiMyIsInVybCIsIl8weDJmNzBlNSIsIl8weDM3NzVmYiIsIl8weDMzNDczZCIsIl8weDU0ODI5YiIsIl8weDNjOGRiZiIsIl8weDIxM2EzYiIsIl8weDM1YmI1ZiIsIl8weDQwNjI2OSIsIkFycmF5IiwiXzB4MzAxN2I5IiwiXzB4NDM4NWQ5IiwiXzB4NWE2MTcxIiwiXzB4NGQ3ZmM4IiwiXzB4M2RiMWRkIiwiUkVEIiwiXzB4YmIwY2ZlIiwic2VjdXJpdHlNb2RlIiwiXzB4MTBiZDZiIiwic2VjdXJpdHlQb2xpY3kiLCJfMHg2NzU1ZTIiLCJ1c2VySWRlbnRpdHlUeXBlIiwiXzB4MzdkNzIwIiwiY3JlZGVudGlhbHMiLCJfMHgzMWE5MTEiLCJfMHg1ZjA4MTYiLCJfMHg0MWI5YWIiLCJfMHg1NzY0M2YiLCJfMHgzMjQzODYiLCJfMHgzODdhYTIiLCJfMHgzYWNkZTkiLCJfMHgyZjk1MjUiLCJfMHg1MDBkNmUiLCJfMHg0N2I3ZGQiLCJfMHg1MWFkNDQiLCJfMHg0ZjE1OGUiLCJfMHgzYmIyYjAiLCJfMHgxYzI2ZmYiLCJfMHgzNGU2ODUiLCJfMHgzMjc1YjciLCJfMHgyNjgyNDciLCJfMHg1ODczYWYiLCJfMHgxZTc5ZTUiLCJfMHg0Y2FlY2MiLCJfMHg0YTc2NTAiLCJfMHgzOTY4NjciLCJfMHg1NWE2NWQiLCJfMHgzYWZmNzkiLCJfMHgyNjE0NmUiLCJfMHg1OGU0ZTgiLCJfMHgxYzIxNzciLCJfMHg5ODExMTYiLCJfMHg1MzU3OTEiLCJfMHg0YmViZTQiLCJfMHg1YzNmNTkiLCJfMHhlYTMxMiIsIl8weDI5ZjA5ZCIsIl8weDNjY2VhMSIsIl8weDM2OGUzYiIsIl8weDEzZDE4ZCIsIl8weDNhNDRlNSIsIl8weDIzZDkwNSIsIl8weDJiMTdmOSIsIl8weDNlZDEzOCIsIl8weDNmMmRjMCIsIl8weDQyMTkxYiIsIm5hdmlnYXRvciIsIl8weDU5ZjlhMiIsIl8weDU2ZTRmNyIsIl8weDE0YWNkYyJdLCJtYXBwaW5ncyI6IjBqSUFBQSxDQUFDLFUsQ0FDRyxhLHdCQW1CQSxTQUFTQSxTQUFULENBQW1CQyxTQUFuQixDQUE0QkMsU0FBNUIsQ0FBd0NDLFNBQXhDLENBQTJDQyxTQUEzQyxDLENBQ0ksU0FBU0MsU0FBVCxDQUFlQyxTQUFmLEMsUUFBK0JBLFNBQUEsWUFBaUJILFNBQWpCLENBQXFCRyxTQUFyQixDQUE2QixJQUFJSCxTQUFKLENBQU0sU0FBVUksU0FBVixDLENBQXFCQSxTQUFBLENBQVFELFNBQVIsQyxFQUEzQixDLFNBQ3JELEdBQUssQ0FBQUgsU0FBQSxFQUFNLENBQUFBLFNBQUEsQ0FBSUssT0FBSixDQUFOLENBQUwsQ0FBeUIsU0FBVUMsU0FBVixDQUFtQkMsU0FBbkIsQyx5QkFDNUIsU0FBU0MsU0FBVCxDQUFtQkMsU0FBbkIsQyx5QkFBNEIsRyxDQUFNQyxTQUFBLENBQUtULFNBQUEsQyxnQkFBQSxFQUFlUSxTQUFmLENBQUwsQyxFQUErQixNQUFPRSxTQUFQLEMsQ0FBWUosU0FBQSxDQUFPSSxTQUFQLEMsR0FDN0UsU0FBU0MsU0FBVCxDQUFrQkMsU0FBbEIsQyx5QkFBMkIsRyxDQUFNSCxTQUFBLENBQUtULFNBQUEsQyxnQkFBQSxFQUFtQlksU0FBbkIsQ0FBTCxDLEVBQW1DLE1BQU9DLFNBQVAsQyxDQUFZUCxTQUFBLENBQU9PLFNBQVAsQyxHQUNoRixTQUFTSixTQUFULENBQWNLLFNBQWQsQyx5QkFBd0JBLFNBQUEsQyxNQUFBLEVBQWNULFNBQUEsQ0FBUVMsU0FBQSxDLGdCQUFBLENBQVIsQ0FBZCxDQUFzQ2IsU0FBQSxDQUFNYSxTQUFBLEMsZ0JBQUEsQ0FBTixFLGdCQUFBLEVBQXlCUCxTQUF6QixDQUFvQ0ksU0FBcEMsQyxFQUM5REYsU0FBQSxDQUFNLENBQUFULFNBQUEsQ0FBWUEsU0FBQSxDLGdCQUFBLEVBQWdCSCxTQUFoQixDQUF5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LFNBQWYsQ0FBOUIsQyxDQUNBN08sT0FBQSxDLEtBQUEsRSxnQkFBQSxDQUFvQkQsSUFBQSxDLGdCQUFBLEVBQWU4TyxTQUFmLENBQXBCLEMsQ0FDQTdPLE9BQUEsQyxnQkFBQSxFLGdCQUFBLENBQW9CaVAsU0FBcEIsQyxFQXRCSixDLEVBM0hxQyxDLFlBb0p6QyxFLEVBcEp5QyxDQUE3QyxDLEVBanNCSixHIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uICgpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAgICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuXHJcbiAgICBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcclxuICAgIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcbiAgICBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXHJcbiAgICBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFlcclxuICAgIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuICAgIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxyXG4gICAgTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1JcclxuICAgIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuICAgIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXHJcbiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xyXG4gICAgLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UsIFN1cHByZXNzZWRFcnJvciwgU3ltYm9sLCBJdGVyYXRvciAqL1xyXG5cclxuXHJcbiAgICBmdW5jdGlvbiBfX2F3YWl0ZXIodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XHJcbiAgICAgICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XHJcbiAgICAgICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XHJcbiAgICAgICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0eXBlb2YgU3VwcHJlc3NlZEVycm9yID09PSBcImZ1bmN0aW9uXCIgPyBTdXBwcmVzc2VkRXJyb3IgOiBmdW5jdGlvbiAoZXJyb3IsIHN1cHByZXNzZWQsIG1lc3NhZ2UpIHtcclxuICAgICAgICB2YXIgZSA9IG5ldyBFcnJvcihtZXNzYWdlKTtcclxuICAgICAgICByZXR1cm4gZS5uYW1lID0gXCJTdXBwcmVzc2VkRXJyb3JcIiwgZS5lcnJvciA9IGVycm9yLCBlLnN1cHByZXNzZWQgPSBzdXBwcmVzc2VkLCBlO1xyXG4gICAgfTtcblxuICAgIGNvbnN0IE9yZ2FuaXplc1JlZk5vZGVJZCA9IFwibnM9MDtpPTM1XCI7XG4gICAgY29uc3QgRm9sZGVyVHlwZSA9IFwibnM9MDtpPTYxXCI7XG4gICAgY29uc3QgSGFzQ29tcG9uZW50UmVmTm9kZUlkID0gXCJucz0wO2k9NDdcIjtcbiAgICBjb25zdCBIYXNQcm9wZXJ0eVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ2XCI7XG4gICAgY29uc3QgSGFzQ2hpbGRSZWZOb2RlSWQgPSBcIm5zPTA7aT0zNFwiO1xuICAgIGNvbnN0IEhhc1N1YnR5cGVSZWZOb2RlSWQgPSBcIm5zPTA7aT00NVwiO1xuICAgIGNvbnN0IEhhc1R5cGVEZWZpbml0aW9uUmVmTm9kZUlkID0gXCJucz0wO2k9NDBcIjtcblxuICAgIHZhciBCcm93c2VEaXJlY3Rpb247XG4gICAgKGZ1bmN0aW9uIChCcm93c2VEaXJlY3Rpb24pIHtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkZvcndhcmRcIl0gPSAwXSA9IFwiRm9yd2FyZFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52ZXJzZVwiXSA9IDFdID0gXCJJbnZlcnNlXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJCb3RoXCJdID0gMl0gPSBcIkJvdGhcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkludmFsaWRcIl0gPSAzXSA9IFwiSW52YWxpZFwiO1xuICAgIH0pKEJyb3dzZURpcmVjdGlvbiB8fCAoQnJvd3NlRGlyZWN0aW9uID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzO1xuICAgIChmdW5jdGlvbiAoTm9kZUNsYXNzKSB7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJVbnNwZWNpZmllZFwiXSA9IDBdID0gXCJVbnNwZWNpZmllZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmFyaWFibGVcIl0gPSAyXSA9IFwiVmFyaWFibGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk1ldGhvZFwiXSA9IDRdID0gXCJNZXRob2RcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmFyaWFibGVUeXBlXCJdID0gMTZdID0gXCJWYXJpYWJsZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAzMl0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmlld1wiXSA9IDEyOF0gPSBcIlZpZXdcIjtcbiAgICB9KShOb2RlQ2xhc3MgfHwgKE5vZGVDbGFzcyA9IHt9KSk7XG4gICAgdmFyIE5vZGVDbGFzc01hc2s7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3NNYXNrKSB7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFwiXSA9IDFdID0gXCJPYmplY3RcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmFyaWFibGVcIl0gPSAyXSA9IFwiVmFyaWFibGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJPYmplY3RUeXBlXCJdID0gOF0gPSBcIk9iamVjdFR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmFyaWFibGVUeXBlXCJdID0gMTZdID0gXCJWYXJpYWJsZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJEYXRhVHlwZVwiXSA9IDY0XSA9IFwiRGF0YVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmlld1wiXSA9IDEyOF0gPSBcIlZpZXdcIjtcbiAgICB9KShOb2RlQ2xhc3NNYXNrIHx8IChOb2RlQ2xhc3NNYXNrID0ge30pKTtcbiAgICB2YXIgUmVzdWx0TWFzaztcbiAgICAoZnVuY3Rpb24gKFJlc3VsdE1hc2spIHtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDFdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIklzRm9yd2FyZFwiXSA9IDJdID0gXCJJc0ZvcndhcmRcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiTm9kZUNsYXNzXCJdID0gNF0gPSBcIk5vZGVDbGFzc1wiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJCcm93c2VOYW1lXCJdID0gOF0gPSBcIkJyb3dzZU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiRGlzcGxheU5hbWVcIl0gPSAxNl0gPSBcIkRpc3BsYXlOYW1lXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIlR5cGVEZWZpbml0aW9uXCJdID0gMzJdID0gXCJUeXBlRGVmaW5pdGlvblwiO1xuICAgIH0pKFJlc3VsdE1hc2sgfHwgKFJlc3VsdE1hc2sgPSB7fSkpO1xuICAgIC8vICBjb25zdCBxID0gUmVmZXJlbmNlVHlwZUlkcy5Pcmdhbml6ZXM7XG4gICAgZnVuY3Rpb24gcmVzb2x2ZU5vZGVJZChub2RlSWRMaWtlKSB7XG4gICAgICAgIHN3aXRjaCAobm9kZUlkTGlrZSkge1xuICAgICAgICAgICAgY2FzZSBcIk9yZ2FuaXplc1wiOlxuICAgICAgICAgICAgICAgIHJldHVybiBPcmdhbml6ZXNSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzUHJvcGVydHlcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzUHJvcGVydHlSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzQ29tcG9uZW50XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NvbXBvbmVudFJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDaGlsZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNDaGlsZFJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNTdWJ0eXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1N1YnR5cGVSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzVHlwZURlZmluaXRpb25cIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBnZXRJY29uID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICBzd2l0Y2ggKHJlZmVyZW5jZS5ub2RlQ2xhc3MpIHtcbiAgICAgICAgICAgIGNhc2UgXCJPYmplY3RcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gT3JnYW5pemVzUmVmTm9kZUlkKSA7XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS50eXBlRGVmaW5pdGlvbiA9PT0gRm9sZGVyVHlwZSB8fCByZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBcImk9NjFcIikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWZvbGRlclwiLCBjb2xvcjogXCJyZ2JhKDYxLCA2MCwgNCwgMC41MjUpXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6IFwiU2VhR3JlZW5cIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlXCI6XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IEhhc0NvbXBvbmVudFJlZk5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIlN0ZWVsQmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IEhhc1Byb3BlcnR5UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiRG9kZ2VyQmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIkNhZGV0Qmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBcIk1ldGhvZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtY29nXCIsIGNvbG9yOiBcIlNhbmR5QnJvd25cIiB9O1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJWYXJpYWJsZVR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXNsaWRlcnNcIiwgY29sb3I6IFwiRGFya09yYW5nZVwiIH07XG4gICAgICAgICAgICBjYXNlIFwiRGF0YVR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXRleHQtd2lkdGhcIiwgY29sb3I6IFwiQ2FkZXRCbHVlXCIgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXF1ZXN0aW9uXCIsIGNvbG9yOiBcImdyZXlcIiB9O1xuICAgIH07XG5cbiAgICBjb25zdCBicm93c2UgPSAoX2EsIG5vZGVJZF8xLCB0ZW1wbGF0ZV8xKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCBbX2EsIG5vZGVJZF8xLCB0ZW1wbGF0ZV8xXSwgdm9pZCAwLCBmdW5jdGlvbiogKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCBub2RlSWQsIHRlbXBsYXRlKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1mb3Itbm9kZS1yZWRgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9icm93c2VgO1xuICAgICAgICBjb25zdCBicm93c2VEZXNjcmlwdGlvbiA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgdGVtcGxhdGUpLCB7IG5vZGVJZCwgcmVzdWx0TWFzazogNjMgfSk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIGJyb3dzZURlc2NyaXB0aW9uLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGluZyBmYWlsZWQgd2l0aCBlcnJvclwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgICAgIHJldHVybiB7IHJlZmVyZW5jZXM6IFtdIH07XG4gICAgICAgIH1cbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJicm93c2UgZmV0Y2hlZCA6IFwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgY29uc3QgcmVmZXJlbmNlcyA9IHJlc3BvbnNlLmJyb3dzZVJlc3VsdC5yZWZlcmVuY2VzIHx8IFtdO1xuICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzIH07XG4gICAgfSk7XG5cbiAgICBjb25zdCB0ZW1wbGF0ZTEgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIkhhc0NoaWxkXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3QgdGVtcGxhdGUyID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJPcmdhbml6ZXNcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCB3YWxrQmFja3dhcmQgPSAoX2EsIF9iKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCBbX2EsIF9iXSwgdm9pZCAwLCBmdW5jdGlvbiogKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCB7IG5vZGVJZCwgcm9vdE5vZGVJZCwgaXNUeXBlIH0pIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWZvci1ub2RlLXJlZGA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L3dhbGstYmFja3dhcmRgO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBub2RlSWQsXG4gICAgICAgICAgICAgICAgcm9vdE5vZGVJZCxcbiAgICAgICAgICAgICAgICBpc1R5cGUsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBqc29uID0gKHlpZWxkIGRhdGEuanNvbigpKTtcbiAgICAgICAgcmV0dXJuIGpzb24uYnJvd3NlUGF0aDtcbiAgICB9KTtcbiAgICBjb25zdCBpbnRlcm5hbFZlcmlmeSA9IChfYSwgJGlucHV0RWxlbWVudF8xLCAkaW5mb18xKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCBbX2EsICRpbnB1dEVsZW1lbnRfMSwgJGluZm9fMV0sIHZvaWQgMCwgZnVuY3Rpb24qICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgJGlucHV0RWxlbWVudCwgJGluZm8pIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWZvci1ub2RlLXJlZGA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L2NoZWNrTm9kZUlkYDtcbiAgICAgICAgY29uc3Qgbm9kZUlkID0gJGlucHV0RWxlbWVudC52YWwoKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBzZXROb3RpZmljYXRpb24gPSAodGV4dCwgY2xhc3NOYW1lKSA9PiB7XG4gICAgICAgICAgICAkaW5mby50ZXh0KHRleHQpLmFkZENsYXNzKFwic3RlcmZpdmUtaW5mb1wiKS5hZGRDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgJGluZm8uc2hvdygpO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgJGluZm8ucmVtb3ZlQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICAgICAkaW5mby5oaWRlKCk7XG4gICAgICAgICAgICB9LCAzMDAwKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QganNvbiA9ICh5aWVsZCBkYXRhLmpzb24oKSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICAvLyBkbyBzb21ldGhpbmc7XG4gICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCIhIWZhaWx1cmUhIVwiICsgbm9kZUlkLCBcImZhaWx1cmVcIik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoanNvbi5zdGF0dXNDb2RlLm1hdGNoKC9Hb29kLykpIHtcbiAgICAgICAgICAgICAgICAvLyBkbyBzb21ldGhpbmdcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChqc29uLm5vZGVBZGRyZXNzU3RyaW5nKTtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKFwiR29vZFwiLCBcIm9rXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC52YWwoYCR7bm9kZUlkfWApO1xuICAgICAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihgJHtqc29uLnN0YXR1c0NvZGV9ICR7ZGF0YS5zdGF0dXNUZXh0fWAsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGZ1bmN0aW9uIGZldGNoQ2hpbGRyZW4oJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTEpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MiA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMik7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZmVyZW5jZXM6IFsuLi5icm93c2VSZXN1bHQxLnJlZmVyZW5jZXMsIC4uLmJyb3dzZVJlc3VsdDIucmVmZXJlbmNlc10sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgdGVtcGxhdGVTVCA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzU3VidHlwZVwiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8IE5vZGVDbGFzcy5PYmplY3RUeXBlIHwgTm9kZUNsYXNzLkRhdGFUeXBlIHwgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBmdW5jdGlvbiBmZXRjaFN1YnR5cGVzKCRub2RlLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlSWQgPSAkbm9kZS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQxID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGVTVCk7XG4gICAgICAgICAgICByZXR1cm4gYnJvd3NlUmVzdWx0MTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IG1ha2VFbGVtZW50ID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2Q7XG4gICAgICAgIGlmICghcmVmZXJlbmNlIHx8ICFyZWZlcmVuY2Uubm9kZUlkKSB7XG4gICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT48aSBjbGFzcz1cImZhIGZhLWVycm9yXCIgc3R5bGU9XCJjb2xvcjpyZWQ7XCI+PC9pPm5vIHJlZmVyZW5jZSAhPHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuID0gcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB0ID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgeyBpY29uLCBjb2xvciB9ID0gZ2V0SWNvbihyZWZlcmVuY2UpO1xuICAgICAgICBjb25zdCB0aXRsZSA9IGAoJHtyZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCl9KSAkeygoX2MgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLm5hbWUpIHx8ICgoX2QgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9kID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZC50ZXh0KSB8fCBcIlwifWA7XG4gICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpIGtleT1cIiR7cmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpfVwifT48c3BhbiBjbGFzcz1cInRyZWUtdGV4dFwiIHRpdGxlPSR7dGl0bGV9PjxpIGNsYXNzPVwiZmEgJHtpY29ufVwiIHN0eWxlPVwiY29sb3I6JHtjb2xvcn07XCI+PC9pPiAke3R9PC9zcGFuPjx1bD48L3VsPjwvbGk+YCk7XG4gICAgICAgICRlbGVtZW50LmFkZENsYXNzKFwiZXhwYW5kYWJsZVwiKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInZhbHVlXCIsIG4pO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwicmVmZXJlbmNlXCIsIHJlZmVyZW5jZSk7XG4gICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICB9O1xuICAgIGNvbnN0IGZpbmRFbGVtZW50ID0gKG5vZGVJZCwgJHRyZWUpID0+IHtcbiAgICAgICAgcmV0dXJuICR0cmVlLmZpbmQoYGxpW2tleT1cIiR7bm9kZUlkfVwiXWApO1xuICAgIH07XG4gICAgY29uc3Qgc2VsZWN0U2luZ2xlID0gKHRoYXQsICRsaSkgPT4ge1xuICAgICAgICB0aGF0LiR0cmVlLmZpbmQoXCJsaSA+IC50cmVlLXRleHRcIikucmVtb3ZlQ2xhc3MoXCJzZWxlY3RlZFwiKTtcbiAgICAgICAgLy8gY2xlYXIgYWxsIHNlbGVjdGVkIGl0ZW1zXG4gICAgICAgICRsaS5maW5kKFwiLnRyZWUtdGV4dDpmaXJzdFwiKS5hZGRDbGFzcyhcInNlbGVjdGVkXCIpO1xuICAgIH07XG4gICAgY29uc3QgYXV0b0V4cGFuZCA9ICh0aGF0LCBicm93c2VQYXRoLCAkdHJlZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIC8vIGV4cGFuZCB0aGUgdHJlZSB0byBzaG93IHRoZSBub2RlSWRcbiAgICAgICAgbGV0ICRjdXJyZW50ID0gJHRyZWUuY2hpbGRyZW4oXCI6Zmlyc3RcIik7XG4gICAgICAgIGJyb3dzZVBhdGgucmVsYXRpdmVQYXRoLmVsZW1lbnRzIHx8IFtdO1xuICAgICAgICBjb25zdCBub2RlSWRzID0gYnJvd3NlUGF0aC5ub2RlSWRzIHx8IFtdO1xuICAgICAgICBpZiAobm9kZUlkcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IG4gb2Ygbm9kZUlkcykge1xuICAgICAgICAgICAgaWYgKCRjdXJyZW50Lmhhc0NsYXNzKFwiZXhwYW5kYWJsZVwiKSkge1xuICAgICAgICAgICAgICAgIC8vIG5lZWQgdG8gZXhwYW5kIGFuZCBzZWxlY3QgdGhlIHJpZ2h0IGVsZW1lbnRcbiAgICAgICAgICAgICAgICB5aWVsZCBfZXhwYW5kTGkodGhhdCwgJGN1cnJlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBmaW5kRWxlbWVudChuLCAkY3VycmVudCk7XG4gICAgICAgICAgICBpZiAoJGVsZW1lbnQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJGN1cnJlbnQgPSAkZWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBzZWxlY3RTaW5nbGUodGhhdCwgJGN1cnJlbnQpO1xuICAgICAgICBzY3JvbGxUb0xpKHRoYXQuJGRyb3Bkb3duLCAkY3VycmVudCk7XG4gICAgfSk7XG4gICAgZnVuY3Rpb24gc2Nyb2xsVG9MaSgkY29udGFpbmVyLCAkdGFyZ2V0TGkpIHtcbiAgICAgICAgLy8gR2V0IHRoZSBwb3NpdGlvbiBvZiB0aGUgdGFyZ2V0IGl0ZW0gcmVsYXRpdmUgdG8gaXRzIGNvbnRhaW5lclxuICAgICAgICBjb25zdCBsaVBvcyA9ICR0YXJnZXRMaS5wb3NpdGlvbigpLnRvcDtcbiAgICAgICAgLy8gR2V0IHRoZSBjdXJyZW50IHNjcm9sbCBwb3NpdGlvbiBvZiB0aGUgY29udGFpbmVyXG4gICAgICAgIGNvbnN0IGNvbnRhaW5lclNjcm9sbFRvcCA9ICRjb250YWluZXIuc2Nyb2xsVG9wKCk7XG4gICAgICAgIGlmIChjb250YWluZXJTY3JvbGxUb3AgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBwb3NpdGlvbiB0byBzY3JvbGwgdG8gKGN1cnJlbnQgc2Nyb2xsICsgaXRlbSdzIHBvc2l0aW9uKVxuICAgICAgICAvLyBBZGp1c3QgdGhpcyBjYWxjdWxhdGlvbiBiYXNlZCBvbiB5b3VyIG5lZWRzXG4gICAgICAgIGNvbnN0IHNjcm9sbFRvID0gY29udGFpbmVyU2Nyb2xsVG9wICsgbGlQb3MgLSAkY29udGFpbmVyLmhlaWdodCgpIC8gMiArICR0YXJnZXRMaS5oZWlnaHQoKSAvIDI7XG4gICAgICAgIC8vIFNjcm9sbCB0aGUgY29udGFpbmVyIHRvIGVuc3VyZSB0aGUgaXRlbSBpcyB2aXNpYmxlXG4gICAgICAgICRjb250YWluZXIuYW5pbWF0ZSh7XG4gICAgICAgICAgICBzY3JvbGxUb3A6IHNjcm9sbFRvLFxuICAgICAgICB9LCA1MDApOyAvLyBBZGp1c3QgdGhlIGR1cmF0aW9uICg1MDBtcykgYXMgbmVlZGVkXG4gICAgfVxuICAgIGNvbnN0IHJlYWNoU2VsZWN0aW9uID0gKHRoYXQsIHBhcmVudE5vZGUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCBub2RlSWQgPSB0aGF0LiRpbnB1dC52YWwoKTtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgIG5vZGVJZCxcbiAgICAgICAgICAgIHJvb3ROb2RlSWQ6IHBhcmVudE5vZGUubm9kZUlkLFxuICAgICAgICAgICAgaXNUeXBlOiB0aGF0Lm9wdGlvbnMuaXNUeXBlUmVmIHx8IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBkYXRhID0gbWFrZUNvbm5lY3Rpb24odGhhdCk7XG4gICAgICAgIGNvbnN0IGJyb3dzZVBhdGggPSB5aWVsZCB3YWxrQmFja3dhcmQoZGF0YSwgb3B0aW9ucyk7XG4gICAgICAgIGlmICghYnJvd3NlUGF0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHlpZWxkIGF1dG9FeHBhbmQodGhhdCwgYnJvd3NlUGF0aCwgdGhhdC4kdHJlZSk7XG4gICAgfSk7XG4gICAgZnVuY3Rpb24gX2ZldGNoRGF0YUZvck5vZGUodGhhdCwgJG5vZGUsIGZldGNoRnVuYywgZGF0YSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgaWYgKCRub2RlLmhhc0NsYXNzKFwiZmV0Y2hlZFwiKSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYWxyZWFkeSBmZXRjaGVkXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICgkbm9kZS5oYXNDbGFzcyhcImxvYWRpbmdcIikpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImFscmVhZHkgbG9hZGluZ1wiKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkbm9kZS5hZGRDbGFzcyhcImxvYWRpbmdcIik7XG4gICAgICAgICAgICAkbm9kZS5hcHBlbmQoJzxkaXYgY2xhc3M9XCJzcGlubmVyXCI+PC9kaXY+Jyk7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuZW1wdHkoKTtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHJlZmVyZW5jZXMgfSA9IHlpZWxkIGZldGNoRnVuYygkbm9kZSwgZGF0YSk7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCByZWZlcmVuY2Ugb2YgcmVmZXJlbmNlcykge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5vcHRpb25zLmZpbHRlciAmJiAhdGhhdC5vcHRpb25zLmZpbHRlcihyZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IG1ha2VFbGVtZW50KHJlZmVyZW5jZSk7XG4gICAgICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJG5vZGUuYWRkQ2xhc3MoXCJmZXRjaGVkXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuYXBwZW5kKGA8bGk+ZXJyb3IgJHtlcnIubWVzc2FnZX08L2xpPmApO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyXCIsIGVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkbm9kZS5maW5kKFwiLnNwaW5uZXJcIikucmVtb3ZlKCk7XG4gICAgICAgICAgICAkbm9kZS5yZW1vdmVDbGFzcyhcImxvYWRpbmdcIik7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtYWtlQ29ubmVjdGlvbih0aGF0KSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgICBiYXNlVXJsOiB0aGF0Lm9wdGlvbnMuYmFzZVVybCxcbiAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICBlbmRwb2ludDogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50KCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cbiAgICBmdW5jdGlvbiBfZXhwYW5kTGkodGhhdCwgJGxpKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBpZiAoJGxpLmhhc0NsYXNzKFwiZmV0Y2hlZFwiKSkge1xuICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICBjb25zdCBkYXRhID0gbWFrZUNvbm5lY3Rpb24odGhhdCk7XG4gICAgICAgICAgICBjb25zdCBmID0gIXRoYXQub3B0aW9ucy5pc1R5cGVSZWYgPyBmZXRjaENoaWxkcmVuIDogZmV0Y2hTdWJ0eXBlcztcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgeWllbGQgX2ZldGNoRGF0YUZvck5vZGUodGhhdCwgJGxpLCBmLCBkYXRhKTtcbiAgICAgICAgICAgICAgICAvLyBtYXJrIGFzIGV4cGFuZGVkXG4gICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVycm9yXCIsIGVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBkZWNsYXJlTm9kZUJyb3dzZXJXaWRnZXQgPSAoKSA9PiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBbIFRlbXBlcmF0dXJlICBdXG4gICAgICAgICAqICAgKCB0b29sdGlwIDogKC9PYmplY3RzL015U2Vuc29yKSAobnM9MTtzPVRlbXBlcmF0dXJlKSlcbiAgICAgICAgICogWyArIFtGb2xkZXJdIE9iamVjdHNdXG4gICAgICAgICAqIFsgICAgIFtPYmplY3RdIE15U2Vuc29yXVxuICAgICAgICAgKiBbICAgICAoICkgW1ZhcmlhYmxlXSBUZW1wZXJhdHVyZV1cbiAgICAgICAgICovXG4gICAgICAgICQud2lkZ2V0KFwic3RlcmZpdmUubm9kZUJyb3dzZXJcIiwge1xuICAgICAgICAgICAgLyogZGVmYXVsdCBvcHRpb25zICovXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiAoKSA9PiAoeyBlbmRwb2ludDogXCJvcGMudGNwOi8vb3BjdWFkZW1vLnN0ZXJmaXZlLmNvbToyNjU0M1wiIH0pLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50OiAoKSA9PiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgcGFyZW50Tm9kZTogKCkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgYnJvd3NlTmFtZTogeyBuYW1lc3BhY2VJbmRleDogMCwgbmFtZTogXCJPYmplY3RzXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgbm9kZUNsYXNzOiBcIk9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICBub2RlSWQ6IFwibnM9MDtpPTg1XCIsXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiB7IHRleHQ6IFwiT2JqZWN0c1wiIH0sXG4gICAgICAgICAgICAgICAgICAgIHR5cGVEZWZpbml0aW9uOiBGb2xkZXJUeXBlLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGZpbHRlcjogKCkgPT4gdHJ1ZSxcbiAgICAgICAgICAgICAgICBiYXNlVXJsOiBcIlwiLFxuICAgICAgICAgICAgICAgIGlzVHlwZVJlZjogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzb2x2ZVBhcmVudE5vZGUoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhhdC5fX3BhcmVudE5vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB0eXBlb2YgdGhhdC5vcHRpb25zLnBhcmVudE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5wYXJlbnROb2RlLmNhbGwodGhhdCkgOiB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhIGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRlc2MgPSB5aWVsZCBhO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX19wYXJlbnROb2RlID0gZGVzYztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX19wYXJlbnROb2RlID0gYTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhhdC5fX3BhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzZXQoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIC8vIGFsc28gcmVzZXQgcGFyZW50IG5vZGVcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYSA9IHRoYXQ7XG4gICAgICAgICAgICAgICAgICAgIGEuX19wYXJlbnROb2RlID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudE5vZGUgPSB5aWVsZCB0aGlzLnJlc29sdmVQYXJlbnROb2RlKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQocGFyZW50Tm9kZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC5jdXJyZW50UGFyZW50ID0gcGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB2ZXJpZnkoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBtYWtlQ29ubmVjdGlvbih0aGF0KTtcbiAgICAgICAgICAgICAgICBpbnRlcm5hbFZlcmlmeShkYXRhLCB0aGF0LiRpbnB1dCwgdGhhdC4kaW5mbyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2NyZWF0ZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dCA9IHRoaXMuZWxlbWVudDtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21ibyA9ICQoXCI8ZGl2Lz5cIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYWRkQ2xhc3MoXCJzdGVyZml2ZS1jb21iby1ib3hcIik7XG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LnJlcGxhY2VXaXRoKHRoYXQuJGNvbWJvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcImlucHV0LWdyb3VwXCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbnB1dEdyb3VwKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiRpbnB1dCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0biA9ICQoYDxidXR0b24+PGkgY2xhc3M9XCJmYSBmYS1zaXRlbWFwXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJHRvZ2dsZVRyZWVCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4ub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmVlZFRvUmVhY2hTZWxlY3Rpb24gPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRkcm9wZG93bi5pcyhcIjp2aXNpYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5mby5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdHJlZSB3aWRnZXQgaXMgZ29pbmcgdG8gYmVjb21lIHZpc2libGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnROb2RlID0geWllbGQgdGhhdC5yZXNvbHZlUGFyZW50Tm9kZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXJlbnROb2RlICE9PSB0aGF0LmN1cnJlbnRQYXJlbnQgfHwgKChfYSA9IHRoYXQuY3VycmVudFBhcmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm5vZGVJZCkgIT09IHBhcmVudE5vZGUubm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHRoYXQucmVzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmVlZFRvUmVhY2hTZWxlY3Rpb24gPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24udG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZWVkVG9SZWFjaFNlbGVjdGlvbiAmJiAoeWllbGQgcmVhY2hTZWxlY3Rpb24odGhhdCwgcGFyZW50Tm9kZSkpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtZmxhc2tcIj48L2k+PC9idXR0b24+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kdmVyaWZ5QnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmVyaWZ5KCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIsIFwiZW50ZXIgYSBub2RlSWQgb3IgYSBicm93c2VQYXRoIFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mbyA9ICQoYDxkaXYgY2xhc3M9XCJpbmZvLXRleHRcIj48L2Rpdj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93biA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJzdGVyZml2ZS1kcm9wZG93blwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGluZm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRkcm9wZG93bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZSA9ICQoYDx1bCBjbGFzcz1cInN0ZXJmaXZlLXRyZWVcIj48L3VsPmApLmFwcGVuZFRvKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNPbkxlZnRTaXplID0gKCRsaSwgZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlV2lkdGggPSAyMDsgLy8gU2V0IHdpZHRoIG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZUhlaWdodCA9IDIwOyAvLyBTZXQgaGVpZ2h0IG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRQb3MgPSAkbGkub2Zmc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGUgPSBldmVudDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGUucGFnZVggPj0gZWxlbWVudFBvcy5sZWZ0ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VYIDw9IGVsZW1lbnRQb3MubGVmdCArIGJlZm9yZVdpZHRoICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZID49IGVsZW1lbnRQb3MudG9wICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZIDw9IGVsZW1lbnRQb3MudG9wICsgYmVmb3JlSGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjb25zdCB0b2dnbGVFeHBhbnNpb24gPSAoJGxpKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRhYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBfZXhwYW5kTGkodGhhdCwgJGxpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVG9nZ2xlIGl0cyBleHBhbmRlZC9jb2xsYXBzZWQgc3RhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5jaGlsZHJlbihcInVsXCIpLmNoaWxkcmVuKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSA7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImRibGNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzT25MZWZ0U2l6ZSgkbGksIGV2ZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlRXhwYW5zaW9uKCRsaSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9ICRsaS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZWZlcmVuY2UgPSAkbGkuZGF0YShcInJlZmVyZW5jZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuaXNTZWxlY3RhYmxlICYmICF0aGF0Lm9wdGlvbnMuaXNTZWxlY3RhYmxlKHJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5kYXRhKFwicmVmZXJlbmNlXCIsIHJlZmVyZW5jZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXNwbGF5TmFtZSA9ICgoX2EgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSB8fCAoKF9iID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnB1dCA9IGBbJHtkaXNwbGF5TmFtZX1dKCR7dmFsdWV9KWA7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC52YWwoaW5wdXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUub24oXCJjbGlja1wiLCBcImxpXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0ICRsaSA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc09uTGVmdFNpemUoJGxpLCBldmVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvZ2dsZUV4cGFuc2lvbigkbGkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdFNpbmdsZSh0aGF0LCAkbGkpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNsaWNraW5nIG91dHNpZGUgdGhlIHBhZ2Ugd2lsbCBoaWRlIHRoZSBkcm9wZG93blxuICAgICAgICAgICAgICAgICAgICBpZiAoISQoZXZlbnQudGFyZ2V0KS5jbG9zZXN0KHRoYXQuJGNvbWJvKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIGNvbnN0IGNoZWNrTm9kZUlkID0gKF9hLCBub2RlSWRfMSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgW19hLCBub2RlSWRfMV0sIHZvaWQgMCwgZnVuY3Rpb24qICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgbm9kZUlkKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1mb3Itbm9kZS1yZWRgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9jaGVja05vZGVJZGA7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIG5vZGVJZCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hpbmcgZmFpbGVkIHdpdGggZXJyb3JcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgICAgICBjb25zdCByZXMgPSB7XG4gICAgICAgICAgICAgICAgc3RhdHVzQ29kZTogXCJCYWRcIixcbiAgICAgICAgICAgICAgICBub2RlQWRkcmVzc1N0cmluZzogbm9kZUlkLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGVkIDogXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IHlpZWxkIGRhdGEuanNvbigpO1xuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgfSk7XG5cbiAgICBmdW5jdGlvbiBtYW5hZ2VBUElDYWxsKHByZWZpeCwgYnRuLCBmdW5jLCBvblJlc3VsdCkge1xuICAgICAgICBjb25zdCBzdWNjZXNzSWNvbiA9ICQoYCMke3ByZWZpeH0tc3VjY2Vzc2ApO1xuICAgICAgICBjb25zdCBmYWlsdXJlSWNvbiA9ICQoYCMke3ByZWZpeH0tZmFpbHVyZWApO1xuICAgICAgICBjb25zdCBwZW5kaW5nSWNvbiA9ICQoYCMke3ByZWZpeH0tcGVuZGluZ2ApO1xuICAgICAgICBjb25zdCBtZXNzYWdlcyA9ICQoYCMke3ByZWZpeH0tbWVzc2FnZXNgKTtcbiAgICAgICAgbGV0IGFjdGlvblBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgc3VjY2Vzc0ljb24uaGlkZSgpO1xuICAgICAgICBmYWlsdXJlSWNvbi5oaWRlKCk7XG4gICAgICAgIHBlbmRpbmdJY29uLmhpZGUoKTtcbiAgICAgICAgYnRuLm9uKFwiY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGFjdGlvblBlbmRpbmcpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgYWN0aW9uUGVuZGluZyA9IHRydWU7XG4gICAgICAgICAgICBwZW5kaW5nSWNvbi5yZW1vdmVDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICBwZW5kaW5nSWNvbi5odG1sKFwiVGVzdGluZyBDb25uZWN0aW9uIC4uLlwiKTtcbiAgICAgICAgICAgIHN1Y2Nlc3NJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgIGZhaWx1cmVJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgIG1lc3NhZ2VzLmh0bWwoXCJcIik7XG4gICAgICAgICAgICBjb25zdCB7IGJvZHksIHVybCB9ID0gZnVuYygpO1xuICAgICAgICAgICAgLy8geHggY29uc29sZS5sb2coXCJ4eHh4eFwiLCBib2R5KTtcbiAgICAgICAgICAgIGZldGNoKHVybCwge1xuICAgICAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KGJvZHkpLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAudGhlbigoZGF0YSkgPT4gZGF0YS5qc29uKCkpXG4gICAgICAgICAgICAgICAgLnRoZW4oKGpzb24pID0+IHtcbiAgICAgICAgICAgICAgICBhY3Rpb25QZW5kaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgcGVuZGluZ0ljb24uaGlkZSgpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KGpzb24sIG51bGwsIFwiIFwiKSk7XG4gICAgICAgICAgICAgICAgaWYgKGpzb24ucmVzdWx0ID09PSBcIm9rXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgc3VjY2Vzc0ljb24ucmVtb3ZlQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgICAgICBmYWlsdXJlSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VzLmh0bWwoanNvbi5tZXNzYWdlLnJlcGxhY2UoXCJcXG5cIiwgXCI8YnI+XCIpKTtcbiAgICAgICAgICAgICAgICAgICAgb25SZXN1bHQobnVsbCwganNvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhZGFwdCA9IChzdHIpID0+ICFzdHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gXCJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgOiBzdHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc3BsaXQoXCJcXG5cIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWFwKChhKSA9PiBgPHA+JHthfTwvcD5gKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5qb2luKFwiXFxuXCIpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhZGFwdDIgPSAoc3RyKSA9PiAoQXJyYXkuaXNBcnJheShzdHIpID8gc3RyLm1hcChhZGFwdCkuam9pbihcIlxcblwiKSA6IGFkYXB0KHN0cikpO1xuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgICAgIGZhaWx1cmVJY29uLnJlbW92ZUNsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZXMuaHRtbChhZGFwdDIoanNvbi5tZXNzYWdlKSArIGFkYXB0Mihqc29uLmV4dHJhKSk7XG4gICAgICAgICAgICAgICAgICAgIG9uUmVzdWx0KG5ldyBFcnJvcihqc29uLnJlc3VsdCksIGpzb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICBhY3Rpb25QZW5kaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgcGVuZGluZ0ljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgIHN1Y2Nlc3NJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICBmYWlsdXJlSWNvbi5yZW1vdmVDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgbWVzc2FnZXMuaHRtbChcImludGVybmFsIGVycm9yIFwiICsgZXJyLm1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyXCIsIGVycik7XG4gICAgICAgICAgICAgICAgb25SZXN1bHQoZXJyLCBudWxsKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdCBnZXRFbmRQb2ludEF0dHJpYnV0ZXMgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0ICRlbmRwb2ludCA9ICQoXCIjbm9kZS1pbnB1dC1lbmRwb2ludFwiKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnRJZCA9ICRlbmRwb2ludC52YWwoKTtcbiAgICAgICAgY29uc3QgcmVkTm9kZSA9IFJFRC5ub2Rlcy5ub2RlKGVuZHBvaW50SWQpO1xuICAgICAgICBpZiAoIXJlZE5vZGUpXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAvLyBjb25zdCBjcmVkZW50aWFscyA9IFJFRC4oZW5kcG9pbnRJZCk7XG4gICAgICAgIC8vIHdlIG5lZWQgdG8gc2FuaXRpemUgYW5kIGV4dHJhY3QgdGhlIGVuZHBvaW50IGF0dHJpYnV0ZXMgb25seSAoIG5vdCB0aGUgbm9kZS1yZWQgc3R1ZmYpXG4gICAgICAgIGNvbnN0IHsgZW5kcG9pbnQsIHNlY3VyaXR5TW9kZSwgc2VjdXJpdHlQb2xpY3ksIHVzZXJJZGVudGl0eVR5cGUsIGNyZWRlbnRpYWxzIH0gPSByZWROb2RlO1xuICAgICAgICBjb25zdCByZXRWYWx1ZSA9IHtcbiAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgc2VjdXJpdHlNb2RlLFxuICAgICAgICAgICAgc2VjdXJpdHlQb2xpY3ksXG4gICAgICAgICAgICB1c2VySWRlbnRpdHlUeXBlLFxuICAgICAgICAgICAgY3JlZGVudGlhbHMsXG4gICAgICAgIH07XG4gICAgICAgIC8vIHh4IGNvbnNvbGUubG9nKFwieHh4XCIsIHJldFZhbHVlKTtcbiAgICAgICAgcmV0dXJuIHJldFZhbHVlO1xuICAgIH07XG4gICAgY29uc3QgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlciA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzLFxuICAgICAgICB9O1xuICAgIH07XG4gICAgY29uc3QgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzID0gKCkgPT4ge1xuICAgICAgICBjb25zdCAkZW5kcG9pbnQgPSAkKFwiI25vZGUtaW5wdXQtZW5kcG9pbnRcIik7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50SWQgPSAkZW5kcG9pbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50TnIgPSBnZXRFbmRQb2ludEF0dHJpYnV0ZXMoKTtcbiAgICAgICAgaWYgKCFlbmRwb2ludE5yKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpZDogZW5kcG9pbnRJZCxcbiAgICAgICAgICAgIC8vIGVuZHBvaW50OiBlbmRwb2ludE5yLmVuZHBvaW50LFxuICAgICAgICAgICAgLy8gc2VjdXJpdHlNb2RlOiBlbmRwb2ludE5yLnNlY3VyaXR5TW9kZSxcbiAgICAgICAgICAgIC8vIHNlY3VyaXR5UG9saWN5OiBlbmRwb2ludE5yLnNlY3VyaXR5UG9saWN5LFxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIHVzZXJJZGVudGl0eVR5cGU6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSxcbiAgICAgICAgICAgIC8vIGNyZWRlbnRpYWw6IGVuZHBvaW50TnIuY3JlZGVudGlhbHMsXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgLy8gdXNlck5hbWU6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSA9PT0gXCJVc2VyTmFtZVwiID8gZW5kcG9pbnROci5jcmVkZW50aWFscy51c2VyTmFtZSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIC8vIHBhc3N3b3JkOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUgPT09IFwiVXNlck5hbWVcIiA/IGVuZHBvaW50TnIuY3JlZGVudGlhbHMucGFzc3dvcmQgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAvLyB1c2VyQ2VydGlmaWNhdGU6IGVuZHBvaW50TnIuY3JlZGVudGlhbHMudXNlckNlcnRpZmljYXRlLFxuICAgICAgICAgICAgLy8gdXNlclByaXZhdGVrZXk6IGVuZHBvaW50TnIuY3JlZGVudGlhbHMudXNlclByaXZhdGVrZXksXG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIFJFRC5ub2Rlcy5yZWdpc3RlclR5cGUoXCJPcGNVYS1DbGllbnQyLUNhbGxcIiwge1xuICAgICAgICBjYXRlZ29yeTogXCJvcGN1YVwiLFxuICAgICAgICBjb2xvcjogXCIjQzBERUVEXCIsXG4gICAgICAgIGFsaWduOiBcInJpZ2h0XCIsXG4gICAgICAgIGljb246IFwiLi4vLi4vaWNvbnMvb3BjdWFub2RlTG9nby5wbmdcIixcbiAgICAgICAgcGFsZXR0ZUxhYmVsOiBcImNhbGxcIixcbiAgICAgICAgZGVmYXVsdHM6IHtcbiAgICAgICAgICAgIGlucHV0czogeyB2YWx1ZTogMSB9LFxuICAgICAgICAgICAgb3V0cHV0OiB7IHZhbHVlOiA0IH0sXG4gICAgICAgICAgICAvLyBDb21tb25cbiAgICAgICAgICAgIG5hbWU6IHsgdmFsdWU6IFwiXCIgfSxcbiAgICAgICAgICAgIGVuZHBvaW50OiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogdHJ1ZSwgdHlwZTogXCJPcGNVYS1FbmRwb2ludDJcIiB9LFxuICAgICAgICAgICAgYWN0aW9uOiB7IHZhbHVlOiBcInJlYWRcIiwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIC8vIGZvciBhY3Rpb24gY2FsbFxuICAgICAgICAgICAgbWV0aG9kSWQ6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICBvYmplY3RJZDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgfSxcbiAgICAgICAgLy8gaW5wdXRzOixcbiAgICAgICAgb3V0cHV0czogMiwgLy8gMiBvdXRwdXQsIHNlY29uZCBmb3IgcmF3IG5vZGUtb3BjdWEgZGlhZ25vc3RpY3Mgb3IgbW9yZSBjb21wbGV0ZSBtZXNzYWdlXG4gICAgICAgIGxhYmVsKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSB8fCBcIk9QQ1VBLUNhbGxcIjtcbiAgICAgICAgfSxcbiAgICAgICAgbGFiZWxTdHlsZSgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgPyBcIm5vZGVfbGFiZWxfaXRhbGljXCIgOiBcIlwiO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRwcmVwYXJlKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXM7XG4gICAgICAgICAgICBkZWNsYXJlTm9kZUJyb3dzZXJXaWRnZXQoKTtcbiAgICAgICAgICAgIG5vZGUuaW5wdXRzID0gMTtcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgU2VjdGlvbiBDYWxsXG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgbGV0IGRhdGFUeXBlcyA9IHt9O1xuICAgICAgICAgICAgLy8gdG8gZG8gYWRkIGEgdHlwZXNjcmlwdCBkZWZpbml0aW9uIGZvciB0aGlzXG4gICAgICAgICAgICBjb25zdCAkb2JqZWN0SWQgPSAkKFwiI25vZGUtaW5wdXQtb2JqZWN0SWRcIik7XG4gICAgICAgICAgICBjb25zdCAkbWV0aG9kSWQgPSAkKFwiI25vZGUtaW5wdXQtbWV0aG9kSWRcIik7XG4gICAgICAgICAgICBjb25zdCAkaW5wdXRBcmd1bWVudERlZmluaXRpb24gPSAkKFwiI21ldGhvZC1pbnB1dC1hcmd1bWVudC1kZWZpbml0aW9uXCIpO1xuICAgICAgICAgICAgY29uc3QgJG91dHB1dEFyZ3VtZW50RGVmaW5pdGlvbiA9ICQoXCIjbWV0aG9kLW91dHB1dC1hcmd1bWVudC1kZWZpbml0aW9uXCIpO1xuICAgICAgICAgICAgY29uc3QgJHZhbGlkYXRlQnRuID0gJChcIiN2YWxpZGF0ZS1jYWxsLWFyZ3VtZW50cy1idXR0b25cIik7XG4gICAgICAgICAgICAkb2JqZWN0SWQubm9kZUJyb3dzZXIoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyKCkpLCB7IGZpbHRlcihub2RlRGVzYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIk9iamVjdFwiO1xuICAgICAgICAgICAgICAgIH0gfSkpO1xuICAgICAgICAgICAgJG1ldGhvZElkLm5vZGVCcm93c2VyKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlcigpKSwgeyBwYXJlbnROb2RlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gbWFrZUNvbm5lY3Rpb24odGhpcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBuZWVkIHRvIHJlc3luYyB3aXRoIHdoYXQncyBpbiAgI25vZGUtaW5wdXQtb2JqZWN0SWRcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCByZWZlcmVuY2UgPSAkb2JqZWN0SWQuZGF0YShcInJlZmVyZW5jZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcmVmZXJlbmNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgbm9kZUlkRXggPSAkb2JqZWN0SWQudmFsKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZW5kcG9pbnROb2RlID0gZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFlbmRwb2ludE5vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHIgPSB5aWVsZCBjaGVja05vZGVJZChkYXRhLCBub2RlSWRFeCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZmVyZW5jZSA9IHIucmVmZXJlbmNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlZmVyZW5jZTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSwgZmlsdGVyKG5vZGVEZXNjKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiTWV0aG9kXCIgfHwgbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIk9iamVjdFwiO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgaXNTZWxlY3RhYmxlKG5vZGVEZXNjKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiTWV0aG9kXCI7XG4gICAgICAgICAgICAgICAgfSB9KSk7XG4gICAgICAgICAgICAkb2JqZWN0SWQub24oXCJjaGFuZ2VcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICRtZXRob2RJZC5ub2RlQnJvd3NlcihcInJlc2V0XCIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBmdW5jdGlvbiBhZGRBcmd1bWVudEN0cmwoY29udGFpbmVyLCBpbmRleCwgYXJnKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbSA9ICQoJzxkaXYgY2xhc3M9XCJhcmd1bWVudC1lbnRyeVwiPicpLmFwcGVuZFRvKGNvbnRhaW5lcik7XG4gICAgICAgICAgICAgICAgLy8gY29udGFpbmVyLmRhdGEoXCJkYXRhXCIsIGFyZyk7XG4gICAgICAgICAgICAgICAgJCgnPGlucHV0IHR5cGU9XCJ0ZXh0XCI+JylcbiAgICAgICAgICAgICAgICAgICAgLnZhbChhcmcubmFtZSB8fCBcIlwiKVxuICAgICAgICAgICAgICAgICAgICAuY3NzKHsgd2lkdGg6IFwiMTAwJVwiIH0pXG4gICAgICAgICAgICAgICAgICAgIC5hcHBlbmRUbyhpdGVtKTtcbiAgICAgICAgICAgICAgICBjb25zdCBkID0gZGF0YVR5cGVzW2FyZy5kYXRhVHlwZS50b1N0cmluZygpXTtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhVHlwZU4gPSAoZCA/IGQuYnJvd3NlTmFtZS5uYW1lIHx8IFwiXCIgOiBhcmcuZGF0YVR5cGUudG9TdHJpbmcoKSkgKyAoYXJnLnZhbHVlUmFuayA9PT0gMSA/IFwiW11cIiA6IFwiXCIpO1xuICAgICAgICAgICAgICAgICQoJzxpbnB1dCB0eXBlPVwidGV4dFwiPicpXG4gICAgICAgICAgICAgICAgICAgIC52YWwoYXJnLmRlc2NyaXB0aW9uLnRleHQgfHwgXCJcIilcbiAgICAgICAgICAgICAgICAgICAgLmNzcyh7IHdpZHRoOiBcIjUwJVwiIH0pXG4gICAgICAgICAgICAgICAgICAgIC5hcHBlbmRUbyhpdGVtKTtcbiAgICAgICAgICAgICAgICAkKCc8aW5wdXQgdHlwZT1cInRleHRcIj4nKVxuICAgICAgICAgICAgICAgICAgICAudmFsKGRhdGFUeXBlTiB8fCBcIlwiKVxuICAgICAgICAgICAgICAgICAgICAuY3NzKHsgd2lkdGg6IFwiNTAlXCIgfSlcbiAgICAgICAgICAgICAgICAgICAgLmFwcGVuZFRvKGl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJGlucHV0QXJndW1lbnREZWZpbml0aW9uLmVkaXRhYmxlTGlzdCh7XG4gICAgICAgICAgICAgICAgYWRkQnV0dG9uOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IFwiYXV0b1wiLFxuICAgICAgICAgICAgICAgIHNjcm9sbE9uQWRkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBhZGRJdGVtKGNvbnRhaW5lciwgaSwgb2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgIGFkZEFyZ3VtZW50Q3RybChjb250YWluZXIsIGksIG9iamVjdCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgJG91dHB1dEFyZ3VtZW50RGVmaW5pdGlvbi5lZGl0YWJsZUxpc3Qoe1xuICAgICAgICAgICAgICAgIGFkZEJ1dHRvbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBcImF1dG9cIixcbiAgICAgICAgICAgICAgICBzY3JvbGxPbkFkZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgYWRkSXRlbShjb250YWluZXIsIGksIG9iamVjdCkge1xuICAgICAgICAgICAgICAgICAgICBhZGRBcmd1bWVudEN0cmwoY29udGFpbmVyLCBpLCBvYmplY3QpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGZ1bmN0aW9uIGluc3RhbGxBcmd1bWVudExpc3QobGlzdCwgbWV0aG9kQXJndW1lbnRzKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJpbnN0YWxsQXJndW1lbnRMaXN0XCIsIG1ldGhvZEFyZ3VtZW50cy5sZW5ndGgsIFwiYXJndW1lbnRzXCIsIG1ldGhvZEFyZ3VtZW50cyk7XG4gICAgICAgICAgICAgICAgbGlzdC5lZGl0YWJsZUxpc3QoXCJlbXB0eVwiKTtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1ldGhvZEFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBsaXN0LmVkaXRhYmxlTGlzdChcImFkZEl0ZW1cIiwgbWV0aG9kQXJndW1lbnRzW2ldKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkaW5wdXRBcmd1bWVudERlZmluaXRpb24uaGlkZSgpO1xuICAgICAgICAgICAgJG91dHB1dEFyZ3VtZW50RGVmaW5pdGlvbi5oaWRlKCk7XG4gICAgICAgICAgICBsZXQgaW5wdXRBc0pzb24gPSB7fTtcbiAgICAgICAgICAgIGNvbnN0ICRjb3B5SW5wdXQgPSAkKFwiI2NvcHktaW5wdXRcIik7XG4gICAgICAgICAgICAkY29weUlucHV0LmhpZGUoKTtcbiAgICAgICAgICAgICRjb3B5SW5wdXQub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gQ29weSB0aGUgdGV4dCBpbnNpZGUgdGhlIHRleHQgZmllbGRcbiAgICAgICAgICAgICAgICBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChKU09OLnN0cmluZ2lmeShpbnB1dEFzSnNvbikpO1xuICAgICAgICAgICAgICAgIC8vIGFsZXJ0KEpTT04uc3RyaW5naWZ5KGlucHV0QXNKc29uKSArIFwiIGNvcGllZCB0byBjbGlwYm9hcmRcIik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIG1hbmFnZUFQSUNhbGwoXCJ2YWxpZGF0ZVwiLCAkdmFsaWRhdGVCdG4sICgpID0+ICh7XG4gICAgICAgICAgICAgICAgdXJsOiBcIi9vcGN1YS1mb3Itbm9kZS1yZWQvYXJndW1lbnREZWZpbml0aW9uXCIsXG4gICAgICAgICAgICAgICAgYm9keToge1xuICAgICAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6IGdldEVuZHBvaW50UGFyYW1ldGVycygpLFxuICAgICAgICAgICAgICAgICAgICBvYmplY3RJZDogJG9iamVjdElkLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICBtZXRob2RJZDogJG1ldGhvZElkLnZhbCgpLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KSwgKGVyciwgZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBwb3B1bGF0ZSB0aGUgbGlzdFxuICAgICAgICAgICAgICAgIGNvbnN0IGFyZ3VtZW50RGVmaW5pdGlvbiA9IGRhdGEuYXJndW1lbnREZWZpbml0aW9uO1xuICAgICAgICAgICAgICAgIGRhdGFUeXBlcyA9IGRhdGEuZGF0YVR5cGVzO1xuICAgICAgICAgICAgICAgICRpbnB1dEFyZ3VtZW50RGVmaW5pdGlvbi5zaG93KCk7XG4gICAgICAgICAgICAgICAgJG91dHB1dEFyZ3VtZW50RGVmaW5pdGlvbi5zaG93KCk7XG4gICAgICAgICAgICAgICAgaW5zdGFsbEFyZ3VtZW50TGlzdCgkaW5wdXRBcmd1bWVudERlZmluaXRpb24sIGFyZ3VtZW50RGVmaW5pdGlvbi5pbnB1dEFyZ3VtZW50cyk7XG4gICAgICAgICAgICAgICAgaW5zdGFsbEFyZ3VtZW50TGlzdCgkb3V0cHV0QXJndW1lbnREZWZpbml0aW9uLCBhcmd1bWVudERlZmluaXRpb24ub3V0cHV0QXJndW1lbnRzKTtcbiAgICAgICAgICAgICAgICBpbnB1dEFzSnNvbiA9IGRhdGEuaW5wdXRBcmd1bWVudHNFeGFtcGxlQXNKc29uIHx8IHt9O1xuICAgICAgICAgICAgICAgICRjb3B5SW5wdXQuc2hvdygpO1xuICAgICAgICAgICAgICAgIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KEpTT04uc3RyaW5naWZ5KGlucHV0QXNKc29uKSk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJKU09OXCIsIEpTT04uc3RyaW5naWZ5KGlucHV0QXNKc29uKSk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJkYXRhXCIsIGRhdGEpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIG9uZWRpdHNhdmUoKSB7IH0sXG4gICAgfSk7XG5cbn0pKCk7Il19
|
7
|
+
function _0x1bda(_0x5ce0b1,_0x503661){const _0x15b3c0=_0x15b3();return _0x1bda=function(_0x1bda7a,_0x3fd6da){_0x1bda7a=_0x1bda7a-0x162;let _0x35279f=_0x15b3c0[_0x1bda7a];return _0x35279f;},_0x1bda(_0x5ce0b1,_0x503661);}function _0x15b3(){const _0x1bc521=['error','data','css','48kRqsis','nodeIds','text','err','expandable','left','NodeClass','#method-output-argument-definition','1774570gxwzkB','clipboard','top','offset','514459lnsFyS','click','toggleClass','toString','replaceWith','json','BrowseName','fa-list-alt','fa-question','/browse','then','ns=0;i=85','parentNode','nodeClass','resolveParentNode','ns=0;i=47','Unspecified','html','read','remove','toggle','SeaGreen','dataTypes','isTypeRef','isArray','</p>','Forward','1663812UlmOCJ','valueRank','done','expandable\x20expanded','Invalid','Objects','nodeAddressString','join','children','$inputGroup','.tree-text:first','DataType','fa-sliders','next','assign','element','reference','stringify','call','dblclick','nodeBrowser','HasTypeDefinition','val','16oEQOBQ','browseResult','$verifyBtn','scrollTop','fetching\x20failed\x20with\x20error','-success','Bad','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','empty','4kErjvP',':first','/opcua-for-node-red/argumentDefinition','selected','><i\x20class=\x22fa\x20','HasChild','50%','browsePath','fa-text-width','View','OPCUA-Call','sterfive-info','editableList','already\x20loading','elements','li\x20>\x20.tree-text','argumentDefinition','arguments','attr','auto','replace','trigger','fetched','suppressed','name','$dropdown','SuppressedError','endpointNode','<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','validate','referenceTypeId','pageX','<ul\x20class=\x22sterfive-tree\x22></ul>','i=61','dataType','141tRXLtF','ReferenceType','change','ObjectType','filter','extra','opcua','typeDefinition','<div\x20class=\x22spinner\x22></div>','#method-input-argument-definition','OpcUa-Endpoint2','status','</li>','IsForward','Good','<div\x20class=\x22argument-entry\x22>','<p>','<li>error\x20','174tOcKCW','log','animate','widget','addClass','length','statusCode','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','target','appendTo','inputArguments','function','JSON','displayName','3536650WUiCPo','ns=0;i=46','removeClass','9495khtDkI','options','failure','height','references','\x22\x20style=\x22color:','inputArgumentsExampleAsJson','<div\x20class=\x22info-text\x22></div>','DisplayName','/checkNodeId','fetched\x20:\x20','pageY','DodgerBlue','Both','hide','HasSubtype','right','endpoint','nodeId','<input\x20type=\x22text\x22>','ns=0;i=34','Method','/walk-backward','Object','#node-input-endpoint','$toggleTreeBtn','apply','statusText','value','$tree','loading','HasComponent','find','<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>','stopPropagation','!!failure!!','hasClass','application/json','POST','sterfive-combo-box','description','/opcua-for-node-red','currentParent','map',':visible','VariableType','Variable','node','position','#node-input-objectId','message','reset','__parentNode','expanded',';\x22></i>\x20','Inverse','placeholder','#copy-input','fa-object-group','#node-input-methodId','browseName','sterfive.nodeBrowser','</span><ul></ul></li>','TypeDefinition','show','21020gvxCHe','100%','$combo','$input','.spinner','94474KCOZZB','CadetBlue','<div/>','node_label_italic','writeText','match','ns=0;i=61','fa-cog','result','addItem','$info','append'];_0x15b3=function(){return _0x1bc521;};return _0x15b3();}(function(_0x21b4bc,_0x2ae1be){const _0x27558e=_0x1bda,_0x3cba57=_0x21b4bc();while(!![]){try{const _0x46c56f=parseInt(_0x27558e(0x18e))/0x1*(parseInt(_0x27558e(0x1e4))/0x2)+-parseInt(_0x27558e(0x207))/0x3*(-parseInt(_0x27558e(0x189))/0x4)+parseInt(_0x27558e(0x22a))/0x5*(parseInt(_0x27558e(0x219))/0x6)+parseInt(_0x27558e(0x1a5))/0x7*(-parseInt(_0x27558e(0x1db))/0x8)+parseInt(_0x27558e(0x1c4))/0x9+parseInt(_0x27558e(0x227))/0xa+parseInt(_0x27558e(0x1a9))/0xb*(-parseInt(_0x27558e(0x19d))/0xc);if(_0x46c56f===_0x2ae1be)break;else _0x3cba57['push'](_0x3cba57['shift']());}catch(_0x1c8b2a){_0x3cba57['push'](_0x3cba57['shift']());}}}(_0x15b3,0x51e51),(function(){'use strict';const _0x9ed806=_0x1bda;function _0x33bb81(_0x2671de,_0x27b10c,_0x3efa70,_0x20e8ad){function _0x33761d(_0x28151c){return _0x28151c instanceof _0x3efa70?_0x28151c:new _0x3efa70(function(_0x10f23d){_0x10f23d(_0x28151c);});}return new(_0x3efa70||(_0x3efa70=Promise))(function(_0x51fdd9,_0x770ef7){const _0xd806c5=_0x1bda;function _0x9fe3f1(_0x417f6e){try{_0x22f3e1(_0x20e8ad['next'](_0x417f6e));}catch(_0x4e0a6d){_0x770ef7(_0x4e0a6d);}}function _0x2319c4(_0x1dc118){try{_0x22f3e1(_0x20e8ad['throw'](_0x1dc118));}catch(_0x229940){_0x770ef7(_0x229940);}}function _0x22f3e1(_0x3ef12a){const _0x52041b=_0x1bda;_0x3ef12a[_0x52041b(0x1c6)]?_0x51fdd9(_0x3ef12a[_0x52041b(0x164)]):_0x33761d(_0x3ef12a['value'])[_0x52041b(0x1b3)](_0x9fe3f1,_0x2319c4);}_0x22f3e1((_0x20e8ad=_0x20e8ad[_0xd806c5(0x162)](_0x2671de,_0x27b10c||[]))[_0xd806c5(0x1d1)]());});}typeof SuppressedError===_0x9ed806(0x224)?SuppressedError:function(_0x3f5275,_0x138f63,_0x47171b){const _0x126ac8=_0x9ed806;var _0x3d5198=new Error(_0x47171b);return _0x3d5198[_0x126ac8(0x1fc)]=_0x126ac8(0x1fe),_0x3d5198[_0x126ac8(0x19a)]=_0x3f5275,_0x3d5198[_0x126ac8(0x1fb)]=_0x138f63,_0x3d5198;};const _0x546bd2='ns=0;i=35',_0x313b24=_0x9ed806(0x194),_0x41d45e=_0x9ed806(0x1b8),_0x2f8308=_0x9ed806(0x228),_0x5309bb=_0x9ed806(0x23e),_0x4e3aa4='ns=0;i=45',_0x29f53b='ns=0;i=40';var _0x442639;(function(_0x33345a){const _0x599092=_0x9ed806;_0x33345a[_0x33345a['Forward']=0x0]=_0x599092(0x1c3),_0x33345a[_0x33345a[_0x599092(0x17f)]=0x1]=_0x599092(0x17f),_0x33345a[_0x33345a['Both']=0x2]=_0x599092(0x237),_0x33345a[_0x33345a[_0x599092(0x1c8)]=0x3]=_0x599092(0x1c8);}(_0x442639||(_0x442639={})));var _0xb340a5;(function(_0x43618a){const _0x30e145=_0x9ed806;_0x43618a[_0x43618a[_0x30e145(0x1b9)]=0x0]=_0x30e145(0x1b9),_0x43618a[_0x43618a[_0x30e145(0x241)]=0x1]=_0x30e145(0x241),_0x43618a[_0x43618a[_0x30e145(0x176)]=0x2]=_0x30e145(0x176),_0x43618a[_0x43618a[_0x30e145(0x23f)]=0x4]=_0x30e145(0x23f),_0x43618a[_0x43618a[_0x30e145(0x20a)]=0x8]='ObjectType',_0x43618a[_0x43618a[_0x30e145(0x175)]=0x10]='VariableType',_0x43618a[_0x43618a[_0x30e145(0x208)]=0x20]=_0x30e145(0x208),_0x43618a[_0x43618a['DataType']=0x40]='DataType',_0x43618a[_0x43618a[_0x30e145(0x1ed)]=0x80]=_0x30e145(0x1ed);}(_0xb340a5||(_0xb340a5={})));var _0x591713;(function(_0x5383c5){const _0x197001=_0x9ed806;_0x5383c5[_0x5383c5[_0x197001(0x241)]=0x1]=_0x197001(0x241),_0x5383c5[_0x5383c5[_0x197001(0x176)]=0x2]='Variable',_0x5383c5[_0x5383c5[_0x197001(0x23f)]=0x4]='Method',_0x5383c5[_0x5383c5['ObjectType']=0x8]=_0x197001(0x20a),_0x5383c5[_0x5383c5['VariableType']=0x10]=_0x197001(0x175),_0x5383c5[_0x5383c5[_0x197001(0x208)]=0x20]=_0x197001(0x208),_0x5383c5[_0x5383c5[_0x197001(0x1cf)]=0x40]=_0x197001(0x1cf),_0x5383c5[_0x5383c5['View']=0x80]=_0x197001(0x1ed);}(_0x591713||(_0x591713={})));var _0x1ea1d9;(function(_0x583929){const _0x2e7f32=_0x9ed806;_0x583929[_0x583929['ReferenceType']=0x1]=_0x2e7f32(0x208),_0x583929[_0x583929[_0x2e7f32(0x214)]=0x2]=_0x2e7f32(0x214),_0x583929[_0x583929[_0x2e7f32(0x1a3)]=0x4]=_0x2e7f32(0x1a3),_0x583929[_0x583929[_0x2e7f32(0x1af)]=0x8]=_0x2e7f32(0x1af),_0x583929[_0x583929['DisplayName']=0x10]=_0x2e7f32(0x232),_0x583929[_0x583929[_0x2e7f32(0x187)]=0x20]=_0x2e7f32(0x187);}(_0x1ea1d9||(_0x1ea1d9={})));function _0x318f86(_0x48de1c){const _0x53826a=_0x9ed806;switch(_0x48de1c){case'Organizes':return _0x546bd2;case'HasProperty':return _0x2f8308;case _0x53826a(0x167):return _0x41d45e;case'HasChild':return _0x5309bb;case _0x53826a(0x239):return _0x4e3aa4;case _0x53826a(0x1d9):return _0x29f53b;}}const _0x4248a0=_0x322688=>{const _0x843167=_0x9ed806;switch(_0x322688[_0x843167(0x1b6)]){case'Object':if(_0x322688[_0x843167(0x202)]===_0x546bd2);if(_0x322688[_0x843167(0x20e)]===_0x313b24||_0x322688[_0x843167(0x202)]===_0x843167(0x205))return{'icon':'fa-folder','color':'rgba(61,\x2060,\x204,\x200.525)'};return{'icon':_0x843167(0x182),'color':_0x843167(0x1be)};case _0x843167(0x176):if(_0x322688['referenceTypeId']===_0x41d45e)return{'icon':'fa-list-alt','color':'SteelBlue'};else return _0x322688[_0x843167(0x202)]===_0x2f8308?{'icon':_0x843167(0x1b0),'color':_0x843167(0x236)}:{'icon':_0x843167(0x1b0),'color':_0x843167(0x18f)};case'Method':return{'icon':_0x843167(0x195),'color':'SandyBrown'};case'ObjectType':return{'icon':_0x843167(0x182),'color':'DarkOrange'};case'VariableType':return{'icon':_0x843167(0x1d0),'color':'DarkOrange'};case'DataType':return{'icon':_0x843167(0x1ec),'color':_0x843167(0x18f)};}return{'icon':_0x843167(0x1b1),'color':'grey'};},_0x1512a2=(_0x20ff46,_0x16a5fd,_0x3d2e2f)=>_0x33bb81(void 0x0,[_0x20ff46,_0x16a5fd,_0x3d2e2f],void 0x0,function*({endpointNode:_0x43e249,endpoint:_0x171990,baseUrl:_0xd7affe},_0x34d7f7,_0x3659c3){const _0x32c9ce=_0x9ed806,_0x1a0a75=_0xd7affe+'/opcua-for-node-red',_0x3c7dcd=_0x1a0a75+_0x32c9ce(0x1b2),_0x4829a4=Object[_0x32c9ce(0x1d2)](Object[_0x32c9ce(0x1d2)]({},_0x3659c3),{'nodeId':_0x34d7f7,'resultMask':0x3f}),_0x17210a=yield fetch(_0x3c7dcd,{'method':'POST','body':JSON[_0x32c9ce(0x1d5)]({'endpointNode':_0x43e249,'endpoint':_0x171990,'browseDescription':_0x4829a4}),'headers':{'Content-Type':_0x32c9ce(0x16d)}});if(_0x17210a['status']!==0xc8)return console['log']('fetching\x20failed\x20with\x20error',_0x17210a[_0x32c9ce(0x212)],_0x17210a[_0x32c9ce(0x163)]),{'references':[]};const _0x2a0371=yield _0x17210a[_0x32c9ce(0x1ae)](),_0x145248=_0x2a0371[_0x32c9ce(0x1dc)]['references']||[];return{'references':_0x145248};}),_0x31676a={'referenceTypeId':_0x318f86(_0x9ed806(0x1e9)),'includeSubtypes':!![],'browseDirection':_0x442639[_0x9ed806(0x1c3)],'nodeClassMask':_0xb340a5[_0x9ed806(0x176)]|_0xb340a5[_0x9ed806(0x241)]|_0xb340a5[_0x9ed806(0x23f)],'resultMask':0x3f},_0x315134={'referenceTypeId':_0x318f86('Organizes'),'includeSubtypes':!![],'browseDirection':_0x442639['Forward'],'nodeClassMask':_0xb340a5['Variable']|_0xb340a5['Object']|_0xb340a5[_0x9ed806(0x23f)],'resultMask':0x3f},_0x556a1b=(_0x44c4ed,_0x2d7243)=>_0x33bb81(void 0x0,[_0x44c4ed,_0x2d7243],void 0x0,function*({endpointNode:_0x26bd1d,endpoint:_0x396642,baseUrl:_0x19954d},{nodeId:_0x15b348,rootNodeId:_0x494c13,isType:_0x249549}){const _0x4f388a=_0x9ed806,_0x34d229=_0x19954d+'/opcua-for-node-red',_0x15bfcf=_0x34d229+_0x4f388a(0x240),_0x300da4=yield fetch(_0x15bfcf,{'method':_0x4f388a(0x16e),'body':JSON[_0x4f388a(0x1d5)]({'endpointNode':_0x26bd1d,'endpoint':_0x396642,'nodeId':_0x15b348,'rootNodeId':_0x494c13,'isType':_0x249549}),'headers':{'Content-Type':_0x4f388a(0x16d)}});if(_0x300da4[_0x4f388a(0x212)]!==0xc8)return null;const _0x3e3565=yield _0x300da4[_0x4f388a(0x1ae)]();return _0x3e3565[_0x4f388a(0x1eb)];}),_0x523d62=(_0x1c3d80,_0x42c04a,_0x1fdea7)=>_0x33bb81(void 0x0,[_0x1c3d80,_0x42c04a,_0x1fdea7],void 0x0,function*({endpointNode:_0x36deed,endpoint:_0x679661,baseUrl:_0x5e7479},_0x40f37d,_0x193c74){const _0x4c9168=_0x9ed806,_0xd4611d=_0x5e7479+_0x4c9168(0x171),_0x3f6f14=_0xd4611d+_0x4c9168(0x233),_0x339475=_0x40f37d[_0x4c9168(0x1da)](),_0x41f77c=yield fetch(_0x3f6f14,{'method':_0x4c9168(0x16e),'body':JSON[_0x4c9168(0x1d5)]({'endpointNode':_0x36deed,'endpoint':_0x679661,'nodeId':_0x339475}),'headers':{'Content-Type':_0x4c9168(0x16d)}}),_0x588b82=(_0x2656b4,_0x4eb182)=>{const _0x55497f=_0x4c9168;_0x193c74[_0x55497f(0x19f)](_0x2656b4)[_0x55497f(0x21d)](_0x55497f(0x1ef))[_0x55497f(0x21d)](_0x4eb182),_0x193c74[_0x55497f(0x188)](),setTimeout(()=>{const _0x51e12d=_0x55497f;_0x193c74[_0x51e12d(0x229)](_0x4eb182),_0x193c74[_0x51e12d(0x238)]();},0xbb8);},_0x170b9d=yield _0x41f77c[_0x4c9168(0x1ae)]();_0x41f77c[_0x4c9168(0x212)]!==0xc8?_0x588b82(_0x4c9168(0x16b)+_0x339475,_0x4c9168(0x22c)):_0x170b9d['statusCode'][_0x4c9168(0x193)](/Good/)?(_0x40f37d[_0x4c9168(0x1da)](_0x170b9d[_0x4c9168(0x1ca)]),_0x40f37d[_0x4c9168(0x1f9)]('change'),_0x588b82(_0x4c9168(0x215),'ok')):(_0x40f37d[_0x4c9168(0x1da)](''+_0x339475),_0x588b82(_0x170b9d[_0x4c9168(0x21f)]+'\x20'+_0x41f77c['statusText'],_0x4c9168(0x22c)));});function _0x297c0b(_0x19d5a7,_0x2c7032){return _0x33bb81(this,void 0x0,void 0x0,function*(){const _0x1e264e=_0x1bda,_0x163856=_0x19d5a7[_0x1e264e(0x19b)](_0x1e264e(0x164)),_0x24bcc0=yield _0x1512a2(_0x2c7032,_0x163856,_0x31676a),_0x52efab=yield _0x1512a2(_0x2c7032,_0x163856,_0x315134);return{'references':[..._0x24bcc0[_0x1e264e(0x22e)],..._0x52efab[_0x1e264e(0x22e)]]};});}const _0x4ece15={'referenceTypeId':_0x318f86(_0x9ed806(0x239)),'includeSubtypes':!![],'browseDirection':_0x442639[_0x9ed806(0x1c3)],'nodeClassMask':_0xb340a5[_0x9ed806(0x208)]|_0xb340a5[_0x9ed806(0x20a)]|_0xb340a5[_0x9ed806(0x1cf)]|_0xb340a5['VariableType'],'resultMask':0x3f};function _0x524211(_0x1a48f6,_0x1b19c1){return _0x33bb81(this,void 0x0,void 0x0,function*(){const _0x517c90=_0x1bda,_0x5114f9=_0x1a48f6[_0x517c90(0x19b)](_0x517c90(0x164)),_0x2834e2=yield _0x1512a2(_0x1b19c1,_0x5114f9,_0x4ece15);return _0x2834e2;});}const _0xe64218=_0x5b0257=>{const _0x5cf8f9=_0x9ed806;var _0x2b5c25,_0x37a920,_0x3b219b,_0x17ff2a;if(!_0x5b0257||!_0x5b0257[_0x5cf8f9(0x23c)]){const _0x37bede=$(_0x5cf8f9(0x1e2));return _0x37bede;}const _0x5cf40c=_0x5b0257['nodeId'][_0x5cf8f9(0x1ac)](),_0xcccdfd=((_0x2b5c25=_0x5b0257[_0x5cf8f9(0x226)])===null||_0x2b5c25===void 0x0?void 0x0:_0x2b5c25[_0x5cf8f9(0x19f)])||((_0x37a920=_0x5b0257[_0x5cf8f9(0x184)])===null||_0x37a920===void 0x0?void 0x0:_0x37a920['name'])||_0x5b0257[_0x5cf8f9(0x23c)][_0x5cf8f9(0x1ac)](),{icon:_0x537bd3,color:_0x97fbec}=_0x4248a0(_0x5b0257),_0x6a1e99='('+_0x5b0257[_0x5cf8f9(0x23c)][_0x5cf8f9(0x1ac)]()+')\x20'+(((_0x3b219b=_0x5b0257[_0x5cf8f9(0x184)])===null||_0x3b219b===void 0x0?void 0x0:_0x3b219b[_0x5cf8f9(0x1fc)])||((_0x17ff2a=_0x5b0257[_0x5cf8f9(0x226)])===null||_0x17ff2a===void 0x0?void 0x0:_0x17ff2a[_0x5cf8f9(0x19f)])||''),_0xae4ea1=$('<li\x20key=\x22'+_0x5b0257[_0x5cf8f9(0x23c)][_0x5cf8f9(0x1ac)]()+'\x22}><span\x20class=\x22tree-text\x22\x20title='+_0x6a1e99+_0x5cf8f9(0x1e8)+_0x537bd3+_0x5cf8f9(0x22f)+_0x97fbec+_0x5cf8f9(0x17e)+_0xcccdfd+_0x5cf8f9(0x186));return _0xae4ea1[_0x5cf8f9(0x21d)](_0x5cf8f9(0x1a1)),_0xae4ea1[_0x5cf8f9(0x19b)](_0x5cf8f9(0x164),_0x5cf40c),_0xae4ea1[_0x5cf8f9(0x19b)](_0x5cf8f9(0x1d4),_0x5b0257),_0xae4ea1;},_0x106b7b=(_0x2ff3cd,_0x119112)=>{return _0x119112['find']('li[key=\x22'+_0x2ff3cd+'\x22]');},_0x19dffd=(_0x4532a1,_0x3a44bc)=>{const _0x4eaaa8=_0x9ed806;_0x4532a1[_0x4eaaa8(0x165)][_0x4eaaa8(0x168)](_0x4eaaa8(0x1f3))[_0x4eaaa8(0x229)]('selected'),_0x3a44bc['find'](_0x4eaaa8(0x1ce))[_0x4eaaa8(0x21d)](_0x4eaaa8(0x1e7));},_0x52b8d7=(_0x249b42,_0x5aef06,_0x4399bd)=>_0x33bb81(void 0x0,void 0x0,void 0x0,function*(){const _0x106c19=_0x9ed806;let _0x58c958=_0x4399bd[_0x106c19(0x1cc)](_0x106c19(0x1e5));_0x5aef06['relativePath'][_0x106c19(0x1f2)]||[];const _0x42f4b4=_0x5aef06[_0x106c19(0x19e)]||[];if(_0x42f4b4[_0x106c19(0x21e)]===0x0)return;for(const _0x13677d of _0x42f4b4){_0x58c958[_0x106c19(0x16c)]('expandable')&&(yield _0x179528(_0x249b42,_0x58c958));const _0x101ef1=_0x106b7b(_0x13677d,_0x58c958);if(_0x101ef1['length']===0x0)return;_0x58c958=_0x101ef1;}_0x19dffd(_0x249b42,_0x58c958),_0x349f06(_0x249b42[_0x106c19(0x1fd)],_0x58c958);});function _0x349f06(_0xc792c1,_0x546f86){const _0x39880c=_0x9ed806,_0x16e465=_0x546f86[_0x39880c(0x178)]()[_0x39880c(0x1a7)],_0xebc66b=_0xc792c1[_0x39880c(0x1de)]();if(_0xebc66b==undefined)return;const _0x27babc=_0xebc66b+_0x16e465-_0xc792c1[_0x39880c(0x22d)]()/0x2+_0x546f86['height']()/0x2;_0xc792c1[_0x39880c(0x21b)]({'scrollTop':_0x27babc},0x1f4);}const _0x1dc844=(_0x462df7,_0x499d31)=>_0x33bb81(void 0x0,void 0x0,void 0x0,function*(){const _0x4f31f8=_0x9ed806,_0x5f20a3=_0x462df7[_0x4f31f8(0x18c)][_0x4f31f8(0x1da)](),_0x497189={'nodeId':_0x5f20a3,'rootNodeId':_0x499d31[_0x4f31f8(0x23c)],'isType':_0x462df7[_0x4f31f8(0x22b)][_0x4f31f8(0x1c0)]||![]},_0x337724=_0x3d1090(_0x462df7),_0xf1a879=yield _0x556a1b(_0x337724,_0x497189);if(!_0xf1a879)return;yield _0x52b8d7(_0x462df7,_0xf1a879,_0x462df7[_0x4f31f8(0x165)]);});function _0x1fd6a7(_0x31cce4,_0x516598,_0x24e3c3,_0x2c1f7f){return _0x33bb81(this,void 0x0,void 0x0,function*(){const _0x17c109=_0x1bda;if(_0x516598[_0x17c109(0x16c)](_0x17c109(0x1fa))){console[_0x17c109(0x21a)]('already\x20fetched');return;}if(_0x516598[_0x17c109(0x16c)](_0x17c109(0x166))){console['log'](_0x17c109(0x1f1));return;}_0x516598[_0x17c109(0x21d)](_0x17c109(0x166)),_0x516598[_0x17c109(0x199)](_0x17c109(0x20f));try{_0x516598[_0x17c109(0x1cc)]('ul')[_0x17c109(0x1e3)]();const {references:_0x15aecc}=yield _0x24e3c3(_0x516598,_0x2c1f7f);for(const _0x59e627 of _0x15aecc){if(_0x31cce4[_0x17c109(0x22b)][_0x17c109(0x20b)]&&!_0x31cce4[_0x17c109(0x22b)][_0x17c109(0x20b)](_0x59e627))continue;const _0x11f5c8=_0xe64218(_0x59e627);_0x516598['children']('ul')['append'](_0x11f5c8);}_0x516598[_0x17c109(0x21d)](_0x17c109(0x1fa));}catch(_0xe73eb5){_0x516598[_0x17c109(0x1cc)]('ul')[_0x17c109(0x199)](_0x17c109(0x218)+_0xe73eb5['message']+_0x17c109(0x213)),console['log'](_0x17c109(0x1a0),_0xe73eb5);}_0x516598[_0x17c109(0x168)](_0x17c109(0x18d))[_0x17c109(0x1bc)](),_0x516598[_0x17c109(0x229)](_0x17c109(0x166));});}function _0x3d1090(_0x5964d6){const _0x4aa163=_0x9ed806,_0x497a39={'baseUrl':_0x5964d6[_0x4aa163(0x22b)]['baseUrl'],'endpointNode':typeof _0x5964d6[_0x4aa163(0x22b)]['endpointNode']==='function'?_0x5964d6[_0x4aa163(0x22b)][_0x4aa163(0x1ff)]():_0x5964d6[_0x4aa163(0x22b)]['endpointNode'],'endpoint':typeof _0x5964d6[_0x4aa163(0x22b)][_0x4aa163(0x23b)]===_0x4aa163(0x224)?_0x5964d6[_0x4aa163(0x22b)]['endpoint']():_0x5964d6[_0x4aa163(0x22b)][_0x4aa163(0x23b)]};return _0x497a39;}function _0x179528(_0x5e9f15,_0x51fd7f){return _0x33bb81(this,void 0x0,void 0x0,function*(){const _0x3d7d90=_0x1bda;if(_0x51fd7f[_0x3d7d90(0x16c)](_0x3d7d90(0x1fa))){_0x51fd7f[_0x3d7d90(0x229)](_0x3d7d90(0x1a1))[_0x3d7d90(0x21d)]('expanded'),_0x51fd7f[_0x3d7d90(0x1cc)]('ul')[_0x3d7d90(0x1bd)]();return;}const _0x1f2339=_0x3d1090(_0x5e9f15),_0x5b9a4d=!_0x5e9f15[_0x3d7d90(0x22b)][_0x3d7d90(0x1c0)]?_0x297c0b:_0x524211;try{yield _0x1fd6a7(_0x5e9f15,_0x51fd7f,_0x5b9a4d,_0x1f2339),_0x51fd7f[_0x3d7d90(0x229)](_0x3d7d90(0x1a1))[_0x3d7d90(0x21d)](_0x3d7d90(0x17d));}catch(_0x1601cf){_0x51fd7f[_0x3d7d90(0x229)](_0x3d7d90(0x1a1))[_0x3d7d90(0x21d)]('expanded'),console['log']('error',_0x1601cf);}});}const _0x383d9e=()=>{const _0xf61c01=_0x9ed806;$[_0xf61c01(0x21c)](_0xf61c01(0x185),{'options':{'endpointNode':()=>({'endpoint':'opc.tcp://opcuademo.sterfive.com:26543'}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':'Objects'},'nodeClass':_0xf61c01(0x241),'nodeId':_0xf61c01(0x1b4),'displayName':{'text':_0xf61c01(0x1c9)},'typeDefinition':_0x313b24}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x33bb81(this,void 0x0,void 0x0,function*(){const _0x3b10c9=_0x1bda,_0x53c580=this;if(!_0x53c580[_0x3b10c9(0x17c)]){const _0x5c047c=typeof _0x53c580[_0x3b10c9(0x22b)][_0x3b10c9(0x1b5)]===_0x3b10c9(0x224)?_0x53c580[_0x3b10c9(0x22b)][_0x3b10c9(0x1b5)][_0x3b10c9(0x1d6)](_0x53c580):_0x53c580[_0x3b10c9(0x22b)][_0x3b10c9(0x1b5)];if(_0x5c047c instanceof Promise){const _0x3ad542=yield _0x5c047c;_0x53c580[_0x3b10c9(0x17c)]=_0x3ad542;}else _0x53c580['__parentNode']=_0x5c047c;}return _0x53c580[_0x3b10c9(0x17c)];});},'reset'(){return _0x33bb81(this,void 0x0,void 0x0,function*(){const _0x48a649=_0x1bda,_0x15321f=this,_0x5a6f0e=_0x15321f;_0x5a6f0e['__parentNode']=undefined,_0x15321f[_0x48a649(0x165)][_0x48a649(0x1e3)]();const _0x595516=yield this[_0x48a649(0x1b7)](),_0x2af105=_0xe64218(_0x595516);_0x15321f[_0x48a649(0x165)]['append'](_0x2af105),_0x15321f['currentParent']=_0x595516;});},'verify'(){const _0x126b63=_0xf61c01,_0x1cf02f=this,_0x11717e=_0x3d1090(_0x1cf02f);_0x523d62(_0x11717e,_0x1cf02f[_0x126b63(0x18c)],_0x1cf02f[_0x126b63(0x198)]);},'_create'(){const _0x191fba=_0xf61c01,_0x27ceea=this;_0x27ceea[_0x191fba(0x18c)]=this[_0x191fba(0x1d3)],_0x27ceea[_0x191fba(0x18b)]=$(_0x191fba(0x190)),_0x27ceea['$combo'][_0x191fba(0x21d)](_0x191fba(0x16f)),this[_0x191fba(0x1d3)][_0x191fba(0x1ad)](_0x27ceea[_0x191fba(0x18b)]),_0x27ceea['$inputGroup']=$(_0x191fba(0x190))['addClass']('input-group'),_0x27ceea[_0x191fba(0x18b)][_0x191fba(0x199)](_0x27ceea[_0x191fba(0x1cd)]),_0x27ceea['$inputGroup'][_0x191fba(0x199)](_0x27ceea[_0x191fba(0x18c)]),_0x27ceea[_0x191fba(0x243)]=$(_0x191fba(0x200)),_0x27ceea[_0x191fba(0x1cd)]['append'](_0x27ceea['$toggleTreeBtn']),_0x27ceea[_0x191fba(0x243)]['on']('click',function(){return _0x33bb81(this,void 0x0,void 0x0,function*(){const _0x4bd992=_0x1bda;var _0x26460b;let _0x2e3257=![],_0x296d43;!_0x27ceea[_0x4bd992(0x1fd)]['is'](_0x4bd992(0x174))&&(_0x27ceea['$info'][_0x4bd992(0x238)](),_0x296d43=yield _0x27ceea[_0x4bd992(0x1b7)](),(_0x296d43!==_0x27ceea['currentParent']||((_0x26460b=_0x27ceea[_0x4bd992(0x172)])===null||_0x26460b===void 0x0?void 0x0:_0x26460b[_0x4bd992(0x23c)])!==_0x296d43[_0x4bd992(0x23c)])&&(yield _0x27ceea[_0x4bd992(0x17b)]()),_0x2e3257=!![]),_0x27ceea['$dropdown'][_0x4bd992(0x1bd)](),_0x2e3257&&(yield _0x1dc844(_0x27ceea,_0x296d43));});}),_0x27ceea['$verifyBtn']=$(_0x191fba(0x169)),_0x27ceea[_0x191fba(0x1cd)][_0x191fba(0x199)](_0x27ceea['$verifyBtn']),_0x27ceea[_0x191fba(0x1dd)]['on']('click',()=>{this['verify']();});!_0x27ceea[_0x191fba(0x18c)]['attr'](_0x191fba(0x180))&&_0x27ceea[_0x191fba(0x18c)][_0x191fba(0x1f6)]('placeholder',_0x191fba(0x220));_0x27ceea[_0x191fba(0x198)]=$(_0x191fba(0x231)),_0x27ceea[_0x191fba(0x198)][_0x191fba(0x238)](),_0x27ceea[_0x191fba(0x1fd)]=$(_0x191fba(0x190))[_0x191fba(0x21d)]('sterfive-dropdown')['hide'](),_0x27ceea[_0x191fba(0x18b)]['append'](_0x27ceea[_0x191fba(0x198)]),_0x27ceea[_0x191fba(0x18b)]['append'](_0x27ceea[_0x191fba(0x1fd)]),_0x27ceea[_0x191fba(0x165)]=$(_0x191fba(0x204))[_0x191fba(0x222)](_0x27ceea[_0x191fba(0x1fd)]),this[_0x191fba(0x17b)]();const _0x1bfebc=(_0x5c3117,_0x1c851d)=>{const _0x232fe1=_0x191fba,_0x4c93df=0x14,_0x15f5a7=0x14,_0x280130=_0x5c3117[_0x232fe1(0x1a8)](),_0x21a1af=_0x1c851d;if(_0x21a1af['pageX']>=_0x280130[_0x232fe1(0x1a2)]&&_0x21a1af[_0x232fe1(0x203)]<=_0x280130[_0x232fe1(0x1a2)]+_0x4c93df&&_0x21a1af[_0x232fe1(0x235)]>=_0x280130[_0x232fe1(0x1a7)]&&_0x21a1af[_0x232fe1(0x235)]<=_0x280130[_0x232fe1(0x1a7)]+_0x15f5a7)return!![];return![];},_0xa8bd4f=_0x281183=>_0x33bb81(this,void 0x0,void 0x0,function*(){const _0xe6b668=_0x191fba;if(_0x281183[_0xe6b668(0x16c)](_0xe6b668(0x1a1)))_0x179528(_0x27ceea,_0x281183);else{if(_0x281183[_0xe6b668(0x16c)]('expanded'))_0x281183[_0xe6b668(0x1cc)]('ul')['toggle'](),_0x281183[_0xe6b668(0x1ab)](_0xe6b668(0x1c7));else{if(_0x281183[_0xe6b668(0x1cc)]('ul')[_0xe6b668(0x1cc)]()['length']>0x0)_0x281183[_0xe6b668(0x1cc)]('ul')[_0xe6b668(0x1bd)](),_0x281183[_0xe6b668(0x1ab)](_0xe6b668(0x1c7));else;}}});_0x27ceea[_0x191fba(0x165)]['on'](_0x191fba(0x1d7),'li',function(_0x17217a){const _0x8cd6f3=_0x191fba;var _0x19de9b,_0x233458;_0x17217a[_0x8cd6f3(0x16a)]();let _0x113cae=$(this);if(_0x1bfebc(_0x113cae,_0x17217a))_0xa8bd4f(_0x113cae);else{const _0x3b2e3f=_0x113cae['data']('value'),_0x215699=_0x113cae[_0x8cd6f3(0x19b)](_0x8cd6f3(0x1d4));if(_0x27ceea['options']['isSelectable']&&!_0x27ceea[_0x8cd6f3(0x22b)]['isSelectable'](_0x215699))return;_0x27ceea[_0x8cd6f3(0x18c)][_0x8cd6f3(0x19b)](_0x8cd6f3(0x1d4),_0x215699);const _0x1391eb=((_0x19de9b=_0x215699[_0x8cd6f3(0x226)])===null||_0x19de9b===void 0x0?void 0x0:_0x19de9b[_0x8cd6f3(0x19f)])||((_0x233458=_0x215699[_0x8cd6f3(0x184)])===null||_0x233458===void 0x0?void 0x0:_0x233458[_0x8cd6f3(0x1fc)])||_0x215699[_0x8cd6f3(0x23c)][_0x8cd6f3(0x1ac)](),_0x3b65f9='['+_0x1391eb+']('+_0x3b2e3f+')';_0x27ceea[_0x8cd6f3(0x18c)][_0x8cd6f3(0x1da)](_0x3b65f9),_0x27ceea[_0x8cd6f3(0x18c)][_0x8cd6f3(0x1f9)](_0x8cd6f3(0x209)),_0x27ceea['$dropdown'][_0x8cd6f3(0x238)]();}}),_0x27ceea['$tree']['on'](_0x191fba(0x1aa),'li',function(_0x23a2de){const _0x500b29=_0x191fba;_0x23a2de[_0x500b29(0x16a)]();let _0x5da89f=$(this);_0x1bfebc(_0x5da89f,_0x23a2de)&&_0xa8bd4f(_0x5da89f),_0x19dffd(_0x27ceea,_0x5da89f);}),$(document)['on']('click',function(_0x1044b8){const _0x39c308=_0x191fba;!$(_0x1044b8[_0x39c308(0x221)])['closest'](_0x27ceea[_0x39c308(0x18b)])[_0x39c308(0x21e)]&&_0x27ceea['$dropdown'][_0x39c308(0x238)]();});}});},_0x3e46f1=(_0x92b45a,_0xf0e252)=>_0x33bb81(void 0x0,[_0x92b45a,_0xf0e252],void 0x0,function*({endpointNode:_0x51abb1,endpoint:_0x108e39,baseUrl:_0x78d2a6},_0xe089a8){const _0x13bb9a=_0x9ed806,_0x12e236=_0x78d2a6+_0x13bb9a(0x171),_0x1a986b=_0x12e236+_0x13bb9a(0x233),_0x3a9820=yield fetch(_0x1a986b,{'method':_0x13bb9a(0x16e),'body':JSON[_0x13bb9a(0x1d5)]({'endpointNode':_0x51abb1,'endpoint':_0x108e39,'nodeId':_0xe089a8}),'headers':{'Content-Type':_0x13bb9a(0x16d)}});if(_0x3a9820[_0x13bb9a(0x212)]!==0xc8){console[_0x13bb9a(0x21a)](_0x13bb9a(0x1df),_0x3a9820[_0x13bb9a(0x212)],_0x3a9820[_0x13bb9a(0x163)]);const _0x1abeab={'statusCode':_0x13bb9a(0x1e1),'nodeAddressString':_0xe089a8};return _0x1abeab;}console[_0x13bb9a(0x21a)](_0x13bb9a(0x234),_0x3a9820['status'],_0x3a9820[_0x13bb9a(0x163)]);const _0x15cbce=yield _0x3a9820[_0x13bb9a(0x1ae)]();return _0x15cbce;});function _0x271336(_0x49ad8b,_0x30b681,_0x292c67,_0x461607){const _0x4206a7=_0x9ed806,_0x2d25b5=$('#'+_0x49ad8b+_0x4206a7(0x1e0)),_0x2d3858=$('#'+_0x49ad8b+'-failure'),_0x24228a=$('#'+_0x49ad8b+'-pending'),_0x5dbb4e=$('#'+_0x49ad8b+'-messages');let _0x52682e=![];_0x2d25b5['hide'](),_0x2d3858[_0x4206a7(0x238)](),_0x24228a[_0x4206a7(0x238)](),_0x30b681['on']('click',()=>{const _0x5e914f=_0x4206a7;if(_0x52682e)return;_0x52682e=!![],_0x24228a[_0x5e914f(0x229)](_0x5e914f(0x238)),_0x24228a['html']('Testing\x20Connection\x20...'),_0x2d25b5[_0x5e914f(0x21d)](_0x5e914f(0x238)),_0x2d3858[_0x5e914f(0x21d)](_0x5e914f(0x238)),_0x5dbb4e[_0x5e914f(0x1ba)]('');const {body:_0x4ebebe,url:_0x3f6323}=_0x292c67();fetch(_0x3f6323,{'method':_0x5e914f(0x16e),'headers':{'Content-Type':_0x5e914f(0x16d)},'body':JSON[_0x5e914f(0x1d5)](_0x4ebebe)})[_0x5e914f(0x1b3)](_0x4dfdcc=>_0x4dfdcc[_0x5e914f(0x1ae)]())[_0x5e914f(0x1b3)](_0x4d83c6=>{const _0x54d244=_0x5e914f;_0x52682e=![],_0x24228a['hide'](),console[_0x54d244(0x21a)](JSON[_0x54d244(0x1d5)](_0x4d83c6,null,'\x20'));if(_0x4d83c6[_0x54d244(0x196)]==='ok')_0x2d25b5[_0x54d244(0x229)](_0x54d244(0x238)),_0x2d3858[_0x54d244(0x21d)](_0x54d244(0x238)),_0x5dbb4e[_0x54d244(0x1ba)](_0x4d83c6['message'][_0x54d244(0x1f8)]('\x0a','<br>')),_0x461607(null,_0x4d83c6);else{const _0x38df2f=_0x274141=>!_0x274141?'':_0x274141['split']('\x0a')['map'](_0x333a84=>_0x54d244(0x217)+_0x333a84+_0x54d244(0x1c2))[_0x54d244(0x1cb)]('\x0a'),_0x2d9135=_0x2e98a2=>Array[_0x54d244(0x1c1)](_0x2e98a2)?_0x2e98a2[_0x54d244(0x173)](_0x38df2f)[_0x54d244(0x1cb)]('\x0a'):_0x38df2f(_0x2e98a2);_0x2d25b5[_0x54d244(0x21d)](_0x54d244(0x238)),_0x2d3858[_0x54d244(0x229)](_0x54d244(0x238)),_0x5dbb4e['html'](_0x2d9135(_0x4d83c6[_0x54d244(0x17a)])+_0x2d9135(_0x4d83c6[_0x54d244(0x20c)])),_0x461607(new Error(_0x4d83c6['result']),_0x4d83c6);}})['catch'](_0x3837d1=>{const _0xfe6c37=_0x5e914f;_0x52682e=![],_0x24228a[_0xfe6c37(0x21d)](_0xfe6c37(0x238)),_0x2d25b5[_0xfe6c37(0x21d)](_0xfe6c37(0x238)),_0x2d3858[_0xfe6c37(0x229)]('hide'),_0x5dbb4e[_0xfe6c37(0x1ba)]('internal\x20error\x20'+_0x3837d1['message']),console['log']('err',_0x3837d1),_0x461607(_0x3837d1,null);});});}const _0x32970e=()=>{const _0x371392=_0x9ed806,_0x3574d3=$(_0x371392(0x242)),_0x1815bc=_0x3574d3[_0x371392(0x1da)](),_0x1c2d11=RED['nodes'][_0x371392(0x177)](_0x1815bc);if(!_0x1c2d11)return undefined;const {endpoint:_0x45df8a,securityMode:_0x35be59,securityPolicy:_0x34d79b,userIdentityType:_0x509cfb,credentials:_0x474811}=_0x1c2d11,_0x21ed92={'endpoint':_0x45df8a,'securityMode':_0x35be59,'securityPolicy':_0x34d79b,'userIdentityType':_0x509cfb,'credentials':_0x474811};return _0x21ed92;},_0x50d5bd=()=>{return{'endpointNode':_0x178f76};},_0x178f76=()=>{const _0x5b0e90=_0x9ed806,_0x3c8107=$(_0x5b0e90(0x242)),_0x250a0b=_0x3c8107['val'](),_0xc40463=_0x32970e();if(!_0xc40463)return undefined;return{'id':_0x250a0b};};RED['nodes']['registerType']('OpcUa-Client2-Call',{'category':_0x9ed806(0x20d),'color':'#C0DEED','align':_0x9ed806(0x23a),'icon':'../../icons/opcuanodeLogo.png','paletteLabel':_0x9ed806(0x1d6),'defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':_0x9ed806(0x211)},'action':{'value':_0x9ed806(0x1bb),'required':!![]},'methodId':{'value':'','required':!![]},'objectId':{'value':'','required':!![]}},'outputs':0x2,'label'(){const _0x3ff6fc=_0x9ed806;return this[_0x3ff6fc(0x1fc)]||_0x3ff6fc(0x1ee);},'labelStyle'(){const _0x1f2e6f=_0x9ed806;return this['name']?_0x1f2e6f(0x191):'';},'oneditprepare'(){const _0xdafc16=_0x9ed806,_0x47e57a=this;_0x383d9e(),_0x47e57a['inputs']=0x1;let _0x3f36be={};const _0x25a777=$(_0xdafc16(0x179)),_0x2e3d69=$(_0xdafc16(0x183)),_0x567f7a=$(_0xdafc16(0x210)),_0x4f95b6=$(_0xdafc16(0x1a4)),_0x2f066f=$('#validate-call-arguments-button');_0x25a777[_0xdafc16(0x1d8)](Object[_0xdafc16(0x1d2)](Object[_0xdafc16(0x1d2)]({},_0x50d5bd()),{'filter'(_0x3b1e44){const _0x13cee2=_0xdafc16;return _0x3b1e44['nodeClass']===_0x13cee2(0x241);}})),_0x2e3d69[_0xdafc16(0x1d8)](Object[_0xdafc16(0x1d2)](Object[_0xdafc16(0x1d2)]({},_0x50d5bd()),{'parentNode':function(){return _0x33bb81(this,void 0x0,void 0x0,function*(){const _0x3bc0d5=_0x1bda,_0x4da6b3=_0x3d1090(this);let _0x5815e7=_0x25a777[_0x3bc0d5(0x19b)](_0x3bc0d5(0x1d4));if(!_0x5815e7){const _0x4b0d5d=_0x25a777[_0x3bc0d5(0x1da)](),_0x46c770=_0x32970e();if(!_0x46c770)return null;try{const _0xe9a624=yield _0x3e46f1(_0x4da6b3,_0x4b0d5d);_0x5815e7=_0xe9a624[_0x3bc0d5(0x1d4)];}catch(_0x252d0a){console['log'](_0x252d0a);}}return _0x5815e7;});},'filter'(_0x4670c1){const _0x5a1e5b=_0xdafc16;return _0x4670c1[_0x5a1e5b(0x1b6)]==='Method'||_0x4670c1[_0x5a1e5b(0x1b6)]===_0x5a1e5b(0x241);},'isSelectable'(_0x45e708){const _0x17f249=_0xdafc16;return _0x45e708['nodeClass']===_0x17f249(0x23f);}})),_0x25a777['on']('change',()=>{const _0xd9cbc1=_0xdafc16;_0x2e3d69['nodeBrowser'](_0xd9cbc1(0x17b));});function _0xba69f4(_0x76336f,_0x563e1b,_0x3bed2d){const _0x2aae62=_0xdafc16,_0x491d91=$(_0x2aae62(0x216))[_0x2aae62(0x222)](_0x76336f);$(_0x2aae62(0x23d))[_0x2aae62(0x1da)](_0x3bed2d[_0x2aae62(0x1fc)]||'')['css']({'width':_0x2aae62(0x18a)})[_0x2aae62(0x222)](_0x491d91);const _0x20a0a4=_0x3f36be[_0x3bed2d[_0x2aae62(0x206)][_0x2aae62(0x1ac)]()],_0x1be16c=(_0x20a0a4?_0x20a0a4[_0x2aae62(0x184)]['name']||'':_0x3bed2d[_0x2aae62(0x206)]['toString']())+(_0x3bed2d[_0x2aae62(0x1c5)]===0x1?'[]':'');$(_0x2aae62(0x23d))[_0x2aae62(0x1da)](_0x3bed2d[_0x2aae62(0x170)][_0x2aae62(0x19f)]||'')[_0x2aae62(0x19c)]({'width':_0x2aae62(0x1ea)})[_0x2aae62(0x222)](_0x491d91),$('<input\x20type=\x22text\x22>')[_0x2aae62(0x1da)](_0x1be16c||'')[_0x2aae62(0x19c)]({'width':_0x2aae62(0x1ea)})[_0x2aae62(0x222)](_0x491d91);}_0x567f7a[_0xdafc16(0x1f0)]({'addButton':![],'height':_0xdafc16(0x1f7),'scrollOnAdd':![],'addItem'(_0x29c44f,_0x2655f6,_0x3b4f61){_0xba69f4(_0x29c44f,_0x2655f6,_0x3b4f61);}}),_0x4f95b6['editableList']({'addButton':![],'height':_0xdafc16(0x1f7),'scrollOnAdd':![],'addItem'(_0x11f5fe,_0x1c2a13,_0x4547a7){_0xba69f4(_0x11f5fe,_0x1c2a13,_0x4547a7);}});function _0x254101(_0x36536a,_0x3d466c){const _0x18321f=_0xdafc16;console[_0x18321f(0x21a)]('installArgumentList',_0x3d466c[_0x18321f(0x21e)],_0x18321f(0x1f5),_0x3d466c),_0x36536a['editableList'](_0x18321f(0x1e3));for(let _0x34396d=0x0;_0x34396d<_0x3d466c['length'];_0x34396d++){_0x36536a[_0x18321f(0x1f0)](_0x18321f(0x197),_0x3d466c[_0x34396d]);}}_0x567f7a[_0xdafc16(0x238)](),_0x4f95b6[_0xdafc16(0x238)]();let _0x222501={};const _0x529fc1=$(_0xdafc16(0x181));_0x529fc1[_0xdafc16(0x238)](),_0x529fc1['on'](_0xdafc16(0x1aa),()=>{const _0x467af6=_0xdafc16;navigator[_0x467af6(0x1a6)][_0x467af6(0x192)](JSON[_0x467af6(0x1d5)](_0x222501));}),_0x271336(_0xdafc16(0x201),_0x2f066f,()=>({'url':_0xdafc16(0x1e6),'body':{'endpointNode':_0x178f76(),'objectId':_0x25a777[_0xdafc16(0x1da)](),'methodId':_0x2e3d69[_0xdafc16(0x1da)]()}}),(_0x57983e,_0x17639a)=>{const _0x3b3c26=_0xdafc16;if(_0x57983e)return;const _0x1f4bda=_0x17639a[_0x3b3c26(0x1f4)];_0x3f36be=_0x17639a[_0x3b3c26(0x1bf)],_0x567f7a[_0x3b3c26(0x188)](),_0x4f95b6[_0x3b3c26(0x188)](),_0x254101(_0x567f7a,_0x1f4bda[_0x3b3c26(0x223)]),_0x254101(_0x4f95b6,_0x1f4bda['outputArguments']),_0x222501=_0x17639a[_0x3b3c26(0x230)]||{},_0x529fc1[_0x3b3c26(0x188)](),navigator[_0x3b3c26(0x1a6)][_0x3b3c26(0x192)](JSON[_0x3b3c26(0x1d5)](_0x222501)),console[_0x3b3c26(0x21a)](_0x3b3c26(0x225),JSON['stringify'](_0x222501)),console['log'](_0x3b3c26(0x19b),_0x17639a);});},'oneditsave'(){}});}()));
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHgzM2JiODEiLCJfMHgyNjcxZGUiLCJfMHgyN2IxMGMiLCJfMHgzZWZhNzAiLCJfMHgyMGU4YWQiLCJfMHgzMzc2MWQiLCJfMHgyODE1MWMiLCJfMHgxMGYyM2QiLCJQcm9taXNlIiwiXzB4NTFmZGQ5IiwiXzB4NzcwZWY3IiwiXzB4OWZlM2YxIiwiXzB4NDE3ZjZlIiwiXzB4MjJmM2UxIiwiXzB4NGUwYTZkIiwiXzB4MjMxOWM0IiwiXzB4MWRjMTE4IiwiXzB4MjI5OTQwIiwiXzB4M2VmMTJhIiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4M2Y1Mjc1IiwiXzB4MTM4ZjYzIiwiXzB4NDcxNzFiIiwiXzB4M2Q1MTk4IiwiRXJyb3IiLCJfMHg1NDZiZDIiLCJfMHgzMTNiMjQiLCJfMHg0MWQ0NWUiLCJfMHgyZjgzMDgiLCJfMHg1MzA5YmIiLCJfMHg0ZTNhYTQiLCJfMHgyOWY1M2IiLCJfMHg0NDI2MzkiLCJfMHgzMzM0NWEiLCJfMHhiMzQwYTUiLCJfMHg0MzYxOGEiLCJfMHg1OTE3MTMiLCJfMHg1MzgzYzUiLCJfMHgxZWExZDkiLCJfMHg1ODM5MjkiLCJfMHgzMThmODYiLCJfMHg0OGRlMWMiLCJfMHg0MjQ4YTAiLCJfMHgzMjI2ODgiLCJfMHgxNTEyYTIiLCJfMHgyMGZmNDYiLCJfMHgxNmE1ZmQiLCJfMHgzZDJlMmYiLCJlbmRwb2ludE5vZGUiLCJfMHg0M2UyNDkiLCJlbmRwb2ludCIsIl8weDE3MTk5MCIsImJhc2VVcmwiLCJfMHhkN2FmZmUiLCJfMHgzNGQ3ZjciLCJfMHgzNjU5YzMiLCJfMHgxYTBhNzUiLCJfMHgzYzdkY2QiLCJfMHg0ODI5YTQiLCJPYmplY3QiLCJfMHgxNzIxMGEiLCJmZXRjaCIsIkpTT04iLCJjb25zb2xlIiwiXzB4MmEwMzcxIiwiXzB4MTQ1MjQ4IiwiXzB4MzE2NzZhIiwiXzB4MzE1MTM0IiwiXzB4NTU2YTFiIiwiXzB4NDRjNGVkIiwiXzB4MmQ3MjQzIiwiXzB4MjZiZDFkIiwiXzB4Mzk2NjQyIiwiXzB4MTk5NTRkIiwibm9kZUlkIiwiXzB4MTViMzQ4Iiwicm9vdE5vZGVJZCIsIl8weDQ5NGMxMyIsImlzVHlwZSIsIl8weDI0OTU0OSIsIl8weDM0ZDIyOSIsIl8weDE1YmZjZiIsIl8weDMwMGRhNCIsIl8weDNlMzU2NSIsIl8weDUyM2Q2MiIsIl8weDFjM2Q4MCIsIl8weDQyYzA0YSIsIl8weDFmZGVhNyIsIl8weDM2ZGVlZCIsIl8weDY3OTY2MSIsIl8weDVlNzQ3OSIsIl8weDQwZjM3ZCIsIl8weDE5M2M3NCIsIl8weGQ0NjExZCIsIl8weDNmNmYxNCIsIl8weDMzOTQ3NSIsIl8weDQxZjc3YyIsIl8weDU4OGI4MiIsIl8weDI2NTZiNCIsIl8weDRlYjE4MiIsInNldFRpbWVvdXQiLCJfMHgxNzBiOWQiLCJfMHgyOTdjMGIiLCJfMHgxOWQ1YTciLCJfMHgyYzcwMzIiLCJfMHgxNjM4NTYiLCJfMHgyNGJjYzAiLCJfMHg1MmVmYWIiLCJfMHg0ZWNlMTUiLCJfMHg1MjQyMTEiLCJfMHgxYTQ4ZjYiLCJfMHgxYjE5YzEiLCJfMHg1MTE0ZjkiLCJfMHgyODM0ZTIiLCJfMHhlNjQyMTgiLCJfMHg1YjAyNTciLCJfMHgyYjVjMjUiLCJfMHgzN2E5MjAiLCJfMHgzYjIxOWIiLCJfMHgxN2ZmMmEiLCJfMHgzN2JlZGUiLCIkIiwiXzB4NWNmNDBjIiwiXzB4Y2NjZGZkIiwiaWNvbiIsIl8weDUzN2JkMyIsImNvbG9yIiwiXzB4OTdmYmVjIiwiXzB4NmExZTk5IiwiXzB4YWU0ZWExIiwiXzB4MTA2YjdiIiwiXzB4MmZmM2NkIiwiXzB4MTE5MTEyIiwiXzB4MTlkZmZkIiwiXzB4NDUzMmExIiwiXzB4M2E0NGJjIiwiXzB4NTJiOGQ3IiwiXzB4MjQ5YjQyIiwiXzB4NWFlZjA2IiwiXzB4NDM5OWJkIiwiXzB4NThjOTU4IiwiXzB4NDJmNGI0IiwiXzB4MTM2NzdkIiwiXzB4MTc5NTI4IiwiXzB4MTAxZWYxIiwiXzB4MzQ5ZjA2IiwiXzB4Yzc5MmMxIiwiXzB4NTQ2Zjg2IiwiXzB4MTZlNDY1IiwiXzB4ZWJjNjZiIiwidW5kZWZpbmVkIiwiXzB4MjdiYWJjIiwiXzB4MWRjODQ0IiwiXzB4NDYyZGY3IiwiXzB4NDk5ZDMxIiwiXzB4NWYyMGEzIiwiXzB4NDk3MTg5IiwiXzB4MzM3NzI0IiwiXzB4M2QxMDkwIiwiXzB4ZjFhODc5IiwiXzB4MWZkNmE3IiwiXzB4MzFjY2U0IiwiXzB4NTE2NTk4IiwiXzB4MjRlM2MzIiwiXzB4MmMxZjdmIiwicmVmZXJlbmNlcyIsIl8weDE1YWVjYyIsIl8weDU5ZTYyNyIsIl8weDExZjVjOCIsIl8weGU3M2ViNSIsIl8weDU5NjRkNiIsIl8weDQ5N2EzOSIsIl8weDVlOWYxNSIsIl8weDUxZmQ3ZiIsIl8weDFmMjMzOSIsIl8weDViOWE0ZCIsIl8weDE2MDFjZiIsIl8weDM4M2Q5ZSIsIl8weDUzYzU4MCIsIl8weDVjMDQ3YyIsIl8weDNhZDU0MiIsIl8weDE1MzIxZiIsIl8weDVhNmYwZSIsIl8weDU5NTUxNiIsIl8weDJhZjEwNSIsIl8weDFjZjAyZiIsIl8weDExNzE3ZSIsIl8weDI3Y2VlYSIsIl8weDI2NDYwYiIsIl8weDJlMzI1NyIsIl8weDI5NmQ0MyIsIl8weDFiZmViYyIsIl8weDVjMzExNyIsIl8weDFjODUxZCIsIl8weDRjOTNkZiIsIl8weDE1ZjVhNyIsIl8weDI4MDEzMCIsIl8weDIxYTFhZiIsIl8weGE4YmQ0ZiIsIl8weDI4MTE4MyIsIl8weDE3MjE3YSIsIl8weDE5ZGU5YiIsIl8weDIzMzQ1OCIsIl8weDExM2NhZSIsIl8weDNiMmUzZiIsIl8weDIxNTY5OSIsIl8weDEzOTFlYiIsIl8weDNiNjVmOSIsIl8weDIzYTJkZSIsIl8weDVkYTg5ZiIsImRvY3VtZW50IiwiXzB4MTA0NGI4IiwiXzB4M2U0NmYxIiwiXzB4OTJiNDVhIiwiXzB4ZjBlMjUyIiwiXzB4NTFhYmIxIiwiXzB4MTA4ZTM5IiwiXzB4NzhkMmE2IiwiXzB4ZTA4OWE4IiwiXzB4MTJlMjM2IiwiXzB4MWE5ODZiIiwiXzB4M2E5ODIwIiwiXzB4MWFiZWFiIiwiXzB4MTVjYmNlIiwiXzB4MjcxMzM2IiwiXzB4NDlhZDhiIiwiXzB4MzBiNjgxIiwiXzB4MjkyYzY3IiwiXzB4NDYxNjA3IiwiXzB4MmQyNWI1IiwiXzB4MmQzODU4IiwiXzB4MjQyMjhhIiwiXzB4NWRiYjRlIiwiXzB4NTI2ODJlIiwiYm9keSIsIl8weDRlYmViZSIsInVybCIsIl8weDNmNjMyMyIsIl8weDRkZmRjYyIsIl8weDRkODNjNiIsIl8weDM4ZGYyZiIsIl8weDI3NDE0MSIsIl8weDMzM2E4NCIsIl8weDJkOTEzNSIsIl8weDJlOThhMiIsIkFycmF5IiwiXzB4MzgzN2QxIiwiXzB4MzI5NzBlIiwiXzB4MzU3NGQzIiwiXzB4MTgxNWJjIiwiXzB4MWMyZDExIiwiUkVEIiwiXzB4NDVkZjhhIiwic2VjdXJpdHlNb2RlIiwiXzB4MzViZTU5Iiwic2VjdXJpdHlQb2xpY3kiLCJfMHgzNGQ3OWIiLCJ1c2VySWRlbnRpdHlUeXBlIiwiXzB4NTA5Y2ZiIiwiY3JlZGVudGlhbHMiLCJfMHg0NzQ4MTEiLCJfMHgyMWVkOTIiLCJfMHg1MGQ1YmQiLCJfMHgxNzhmNzYiLCJfMHgzYzgxMDciLCJfMHgyNTBhMGIiLCJfMHhjNDA0NjMiLCJfMHg0N2U1N2EiLCJfMHgzZjM2YmUiLCJfMHgyNWE3NzciLCJfMHgyZTNkNjkiLCJfMHg1NjdmN2EiLCJfMHg0Zjk1YjYiLCJfMHgyZjA2NmYiLCJfMHgzYjFlNDQiLCJfMHg0ZGE2YjMiLCJfMHg1ODE1ZTciLCJfMHg0YjBkNWQiLCJfMHg0NmM3NzAiLCJfMHhlOWE2MjQiLCJfMHgyNTJkMGEiLCJfMHg0NjcwYzEiLCJfMHg0NWU3MDgiLCJfMHhiYTY5ZjQiLCJfMHg3NjMzNmYiLCJfMHg1NjNlMWIiLCJfMHgzYmVkMmQiLCJfMHg0OTFkOTEiLCJfMHgyMGEwYTQiLCJfMHgxYmUxNmMiLCJfMHgyOWM0NGYiLCJfMHgyNjU1ZjYiLCJfMHgzYjRmNjEiLCJfMHgxMWY1ZmUiLCJfMHgxYzJhMTMiLCJfMHg0NTQ3YTciLCJfMHgyNTQxMDEiLCJfMHgzNjUzNmEiLCJfMHgzZDQ2NmMiLCJfMHgzNDM5NmQiLCJfMHgyMjI1MDEiLCJfMHg1MjlmYzEiLCJuYXZpZ2F0b3IiLCJfMHg1Nzk4M2UiLCJfMHgxNzYzOWEiLCJfMHgxZjRiZGEiXSwibWFwcGluZ3MiOiJna0lBQUEsQ0FBQyxVLENBQ0csYSx3QkFtQkEsU0FBU0EsU0FBVCxDQUFtQkMsU0FBbkIsQ0FBNEJDLFNBQTVCLENBQXdDQyxTQUF4QyxDQUEyQ0MsU0FBM0MsQyxDQUNJLFNBQVNDLFNBQVQsQ0FBZUMsU0FBZixDLFFBQStCQSxTQUFBLFlBQWlCSCxTQUFqQixDQUFxQkcsU0FBckIsQ0FBNkIsSUFBSUgsU0FBSixDQUFNLFNBQVVJLFNBQVYsQyxDQUFxQkEsU0FBQSxDQUFRRCxTQUFSLEMsRUFBM0IsQyxTQUNyRCxHQUFLLENBQUFILFNBQUEsRUFBTSxDQUFBQSxTQUFBLENBQUlLLE9BQUosQ0FBTixDQUFMLENBQXlCLFNBQVVDLFNBQVYsQ0FBbUJDLFNBQW5CLEMseUJBQzVCLFNBQVNDLFNBQVQsQ0FBbUJDLFNBQW5CLEMsQ0FBNEIsRyxDQUFNQyxTQUFBLENBQUtULFNBQUEsQyxNQUFBLEVBQWVRLFNBQWYsQ0FBTCxDLEVBQStCLE1BQU9FLFNBQVAsQyxDQUFZSixTQUFBLENBQU9JLFNBQVAsQyxHQUM3RSxTQUFTQyxTQUFULENBQWtCQyxTQUFsQixDLENBQTJCLEcsQ0FBTUgsU0FBQSxDQUFLVCxTQUFBLEMsT0FBQSxFQUFtQlksU0FBbkIsQ0FBTCxDLEVBQW1DLE1BQU9DLFNBQVAsQyxDQUFZUCxTQUFBLENBQU9PLFNBQVAsQyxHQUNoRixTQUFTSixTQUFULENBQWNLLFNBQWQsQyx5QkFBd0JBLFNBQUEsQyxnQkFBQSxFQUFjVCxTQUFBLENBQVFTLFNBQUEsQyxnQkFBQSxDQUFSLENBQWQsQ0FBc0NiLFNBQUEsQ0FBTWEsU0FBQSxDLE9BQUEsQ0FBTixFLGdCQUFBLEVBQXlCUCxTQUF6QixDQUFvQ0ksU0FBcEMsQyxFQUM5REYsU0FBQSxDQUFNLENBQUFULFNBQUEsQ0FBWUEsU0FBQSxDLGdCQUFBLEVBQWdCSCxTQUFoQixDQUF5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OUIsQyxDQUNBN08sT0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FBb0JELElBQUEsQyxXQUFBLEVBQWU4TyxTQUFmLENBQXBCLEMsQ0FDQTdPLE9BQUEsQyxLQUFBLEUsZ0JBQUEsQ0FBb0JpUCxTQUFwQixDLEVBdEJKLEMsRUEzSHFDLEMsWUFvSnpDLEUsRUFwSnlDLENBQTdDLEMsRUFqc0JKLEciLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gKCkge1xuICAgICd1c2Ugc3RyaWN0JztcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuICAgIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLlxyXG5cclxuICAgIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueVxyXG4gICAgcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLlxyXG5cclxuICAgIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEhcclxuICAgIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWVxyXG4gICAgQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgU1BFQ0lBTCwgRElSRUNULFxyXG4gICAgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NXHJcbiAgICBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUlxyXG4gICAgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUlxyXG4gICAgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS5cclxuICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXHJcbiAgICAvKiBnbG9iYWwgUmVmbGVjdCwgUHJvbWlzZSwgU3VwcHJlc3NlZEVycm9yLCBTeW1ib2wsIEl0ZXJhdG9yICovXHJcblxyXG5cclxuICAgIGZ1bmN0aW9uIF9fYXdhaXRlcih0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcclxuICAgICAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cclxuICAgICAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHR5cGVvZiBTdXBwcmVzc2VkRXJyb3IgPT09IFwiZnVuY3Rpb25cIiA/IFN1cHByZXNzZWRFcnJvciA6IGZ1bmN0aW9uIChlcnJvciwgc3VwcHJlc3NlZCwgbWVzc2FnZSkge1xyXG4gICAgICAgIHZhciBlID0gbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gICAgICAgIHJldHVybiBlLm5hbWUgPSBcIlN1cHByZXNzZWRFcnJvclwiLCBlLmVycm9yID0gZXJyb3IsIGUuc3VwcHJlc3NlZCA9IHN1cHByZXNzZWQsIGU7XHJcbiAgICB9O1xuXG4gICAgY29uc3QgT3JnYW5pemVzUmVmTm9kZUlkID0gXCJucz0wO2k9MzVcIjtcbiAgICBjb25zdCBGb2xkZXJUeXBlID0gXCJucz0wO2k9NjFcIjtcbiAgICBjb25zdCBIYXNDb21wb25lbnRSZWZOb2RlSWQgPSBcIm5zPTA7aT00N1wiO1xuICAgIGNvbnN0IEhhc1Byb3BlcnR5UmVmTm9kZUlkID0gXCJucz0wO2k9NDZcIjtcbiAgICBjb25zdCBIYXNDaGlsZFJlZk5vZGVJZCA9IFwibnM9MDtpPTM0XCI7XG4gICAgY29uc3QgSGFzU3VidHlwZVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ1XCI7XG4gICAgY29uc3QgSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQgPSBcIm5zPTA7aT00MFwiO1xuXG4gICAgdmFyIEJyb3dzZURpcmVjdGlvbjtcbiAgICAoZnVuY3Rpb24gKEJyb3dzZURpcmVjdGlvbikge1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiRm9yd2FyZFwiXSA9IDBdID0gXCJGb3J3YXJkXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJJbnZlcnNlXCJdID0gMV0gPSBcIkludmVyc2VcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkJvdGhcIl0gPSAyXSA9IFwiQm90aFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52YWxpZFwiXSA9IDNdID0gXCJJbnZhbGlkXCI7XG4gICAgfSkoQnJvd3NlRGlyZWN0aW9uIHx8IChCcm93c2VEaXJlY3Rpb24gPSB7fSkpO1xuICAgIHZhciBOb2RlQ2xhc3M7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3MpIHtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlVuc3BlY2lmaWVkXCJdID0gMF0gPSBcIlVuc3BlY2lmaWVkXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJPYmplY3RcIl0gPSAxXSA9IFwiT2JqZWN0XCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0VHlwZVwiXSA9IDhdID0gXCJPYmplY3RUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiRGF0YVR5cGVcIl0gPSA2NF0gPSBcIkRhdGFUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzcyB8fCAoTm9kZUNsYXNzID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzTWFzaztcbiAgICAoZnVuY3Rpb24gKE5vZGVDbGFzc01hc2spIHtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJNZXRob2RcIl0gPSA0XSA9IFwiTWV0aG9kXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMzJdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzc01hc2sgfHwgKE5vZGVDbGFzc01hc2sgPSB7fSkpO1xuICAgIHZhciBSZXN1bHRNYXNrO1xuICAgIChmdW5jdGlvbiAoUmVzdWx0TWFzaykge1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMV0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiSXNGb3J3YXJkXCJdID0gMl0gPSBcIklzRm9yd2FyZFwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJOb2RlQ2xhc3NcIl0gPSA0XSA9IFwiTm9kZUNsYXNzXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIkJyb3dzZU5hbWVcIl0gPSA4XSA9IFwiQnJvd3NlTmFtZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJEaXNwbGF5TmFtZVwiXSA9IDE2XSA9IFwiRGlzcGxheU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiVHlwZURlZmluaXRpb25cIl0gPSAzMl0gPSBcIlR5cGVEZWZpbml0aW9uXCI7XG4gICAgfSkoUmVzdWx0TWFzayB8fCAoUmVzdWx0TWFzayA9IHt9KSk7XG4gICAgLy8gIGNvbnN0IHEgPSBSZWZlcmVuY2VUeXBlSWRzLk9yZ2FuaXplcztcbiAgICBmdW5jdGlvbiByZXNvbHZlTm9kZUlkKG5vZGVJZExpa2UpIHtcbiAgICAgICAgc3dpdGNoIChub2RlSWRMaWtlKSB7XG4gICAgICAgICAgICBjYXNlIFwiT3JnYW5pemVzXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIE9yZ2FuaXplc1JlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNQcm9wZXJ0eVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNQcm9wZXJ0eVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDb21wb25lbnRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzQ29tcG9uZW50UmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc0NoaWxkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NoaWxkUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1N1YnR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzU3VidHlwZVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNUeXBlRGVmaW5pdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNUeXBlRGVmaW5pdGlvblJlZk5vZGVJZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGdldEljb24gPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHN3aXRjaCAocmVmZXJlbmNlLm5vZGVDbGFzcykge1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFwiOlxuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBPcmdhbml6ZXNSZWZOb2RlSWQpIDtcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnR5cGVEZWZpbml0aW9uID09PSBGb2xkZXJUeXBlIHx8IHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IFwiaT02MVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtZm9sZGVyXCIsIGNvbG9yOiBcInJnYmEoNjEsIDYwLCA0LCAwLjUyNSlcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJTZWFHcmVlblwiIH07XG4gICAgICAgICAgICBjYXNlIFwiVmFyaWFibGVcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzQ29tcG9uZW50UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiU3RlZWxCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzUHJvcGVydHlSZWZOb2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJEb2RnZXJCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiQ2FkZXRCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFwiTWV0aG9kXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1jb2dcIiwgY29sb3I6IFwiU2FuZHlCcm93blwiIH07XG4gICAgICAgICAgICBjYXNlIFwiT2JqZWN0VHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiBcIkRhcmtPcmFuZ2VcIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlVHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtc2xpZGVyc1wiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJEYXRhVHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtdGV4dC13aWR0aFwiLCBjb2xvcjogXCJDYWRldEJsdWVcIiB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGljb246IFwiZmEtcXVlc3Rpb25cIiwgY29sb3I6IFwiZ3JleVwiIH07XG4gICAgfTtcblxuICAgIGNvbnN0IGJyb3dzZSA9IChfYSwgbm9kZUlkXzEsIHRlbXBsYXRlXzEpID0+IF9fYXdhaXRlcih2b2lkIDAsIFtfYSwgbm9kZUlkXzEsIHRlbXBsYXRlXzFdLCB2b2lkIDAsIGZ1bmN0aW9uKiAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIG5vZGVJZCwgdGVtcGxhdGUpIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWZvci1ub2RlLXJlZGA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L2Jyb3dzZWA7XG4gICAgICAgIGNvbnN0IGJyb3dzZURlc2NyaXB0aW9uID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCB0ZW1wbGF0ZSksIHsgbm9kZUlkLCByZXN1bHRNYXNrOiA2MyB9KTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgYnJvd3NlRGVzY3JpcHRpb24sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoaW5nIGZhaWxlZCB3aXRoIGVycm9yXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICAgICAgcmV0dXJuIHsgcmVmZXJlbmNlczogW10gfTtcbiAgICAgICAgfVxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcImJyb3dzZSBmZXRjaGVkIDogXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IHlpZWxkIGRhdGEuanNvbigpO1xuICAgICAgICBjb25zdCByZWZlcmVuY2VzID0gcmVzcG9uc2UuYnJvd3NlUmVzdWx0LnJlZmVyZW5jZXMgfHwgW107XG4gICAgICAgIHJldHVybiB7IHJlZmVyZW5jZXMgfTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHRlbXBsYXRlMSA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzQ2hpbGRcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCB0ZW1wbGF0ZTIgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIk9yZ2FuaXplc1wiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuVmFyaWFibGUgfCBOb2RlQ2xhc3MuT2JqZWN0IHwgTm9kZUNsYXNzLk1ldGhvZCxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5PYmplY3RUeXBlIHxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5EYXRhVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5WaWV3LFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGNvbnN0IHdhbGtCYWNrd2FyZCA9IChfYSwgX2IpID0+IF9fYXdhaXRlcih2b2lkIDAsIFtfYSwgX2JdLCB2b2lkIDAsIGZ1bmN0aW9uKiAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIHsgbm9kZUlkLCByb290Tm9kZUlkLCBpc1R5cGUgfSkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZm9yLW5vZGUtcmVkYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vd2Fsay1iYWNrd2FyZGA7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIG5vZGVJZCxcbiAgICAgICAgICAgICAgICByb290Tm9kZUlkLFxuICAgICAgICAgICAgICAgIGlzVHlwZSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGpzb24gPSAoeWllbGQgZGF0YS5qc29uKCkpO1xuICAgICAgICByZXR1cm4ganNvbi5icm93c2VQYXRoO1xuICAgIH0pO1xuICAgIGNvbnN0IGludGVybmFsVmVyaWZ5ID0gKF9hLCAkaW5wdXRFbGVtZW50XzEsICRpbmZvXzEpID0+IF9fYXdhaXRlcih2b2lkIDAsIFtfYSwgJGlucHV0RWxlbWVudF8xLCAkaW5mb18xXSwgdm9pZCAwLCBmdW5jdGlvbiogKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCAkaW5wdXRFbGVtZW50LCAkaW5mbykge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZm9yLW5vZGUtcmVkYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vY2hlY2tOb2RlSWRgO1xuICAgICAgICBjb25zdCBub2RlSWQgPSAkaW5wdXRFbGVtZW50LnZhbCgpO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBub2RlSWQsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHNldE5vdGlmaWNhdGlvbiA9ICh0ZXh0LCBjbGFzc05hbWUpID0+IHtcbiAgICAgICAgICAgICRpbmZvLnRleHQodGV4dCkuYWRkQ2xhc3MoXCJzdGVyZml2ZS1pbmZvXCIpLmFkZENsYXNzKGNsYXNzTmFtZSk7XG4gICAgICAgICAgICAkaW5mby5zaG93KCk7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAkaW5mby5yZW1vdmVDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgICAgICRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgIH0sIDMwMDApO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBqc29uID0gKHlpZWxkIGRhdGEuanNvbigpKTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIC8vIGRvIHNvbWV0aGluZztcbiAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihcIiEhZmFpbHVyZSEhXCIgKyBub2RlSWQsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGlmIChqc29uLnN0YXR1c0NvZGUubWF0Y2goL0dvb2QvKSkge1xuICAgICAgICAgICAgICAgIC8vIGRvIHNvbWV0aGluZ1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudmFsKGpzb24ubm9kZUFkZHJlc3NTdHJpbmcpO1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCJHb29kXCIsIFwib2tcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChgJHtub2RlSWR9YCk7XG4gICAgICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKGAke2pzb24uc3RhdHVzQ29kZX0gJHtkYXRhLnN0YXR1c1RleHR9YCwgXCJmYWlsdXJlXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG4gICAgZnVuY3Rpb24gZmV0Y2hDaGlsZHJlbigkbm9kZSwgZGF0YSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZUlkID0gJG5vZGUuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MSA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMSk7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQyID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGUyKTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVmZXJlbmNlczogWy4uLmJyb3dzZVJlc3VsdDEucmVmZXJlbmNlcywgLi4uYnJvd3NlUmVzdWx0Mi5yZWZlcmVuY2VzXSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCB0ZW1wbGF0ZVNUID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJIYXNTdWJ0eXBlXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHwgTm9kZUNsYXNzLk9iamVjdFR5cGUgfCBOb2RlQ2xhc3MuRGF0YVR5cGUgfCBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlLFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGZ1bmN0aW9uIGZldGNoU3VidHlwZXMoJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZVNUKTtcbiAgICAgICAgICAgIHJldHVybiBicm93c2VSZXN1bHQxO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgbWFrZUVsZW1lbnQgPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZDtcbiAgICAgICAgaWYgKCFyZWZlcmVuY2UgfHwgIXJlZmVyZW5jZS5ub2RlSWQpIHtcbiAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpPjxpIGNsYXNzPVwiZmEgZmEtZXJyb3JcIiBzdHlsZT1cImNvbG9yOnJlZDtcIj48L2k+bm8gcmVmZXJlbmNlICE8dWw+PC91bD48L2xpPmApO1xuICAgICAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG4gPSByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IHQgPSAoKF9hID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGV4dCkgfHwgKChfYiA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB7IGljb24sIGNvbG9yIH0gPSBnZXRJY29uKHJlZmVyZW5jZSk7XG4gICAgICAgIGNvbnN0IHRpdGxlID0gYCgke3JlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKX0pICR7KChfYyA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MubmFtZSkgfHwgKChfZCA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9kLnRleHQpIHx8IFwiXCJ9YDtcbiAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGkga2V5PVwiJHtyZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCl9XCJ9PjxzcGFuIGNsYXNzPVwidHJlZS10ZXh0XCIgdGl0bGU9JHt0aXRsZX0+PGkgY2xhc3M9XCJmYSAke2ljb259XCIgc3R5bGU9XCJjb2xvcjoke2NvbG9yfTtcIj48L2k+ICR7dH08L3NwYW4+PHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgJGVsZW1lbnQuYWRkQ2xhc3MoXCJleHBhbmRhYmxlXCIpO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwidmFsdWVcIiwgbik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgIH07XG4gICAgY29uc3QgZmluZEVsZW1lbnQgPSAobm9kZUlkLCAkdHJlZSkgPT4ge1xuICAgICAgICByZXR1cm4gJHRyZWUuZmluZChgbGlba2V5PVwiJHtub2RlSWR9XCJdYCk7XG4gICAgfTtcbiAgICBjb25zdCBzZWxlY3RTaW5nbGUgPSAodGhhdCwgJGxpKSA9PiB7XG4gICAgICAgIHRoYXQuJHRyZWUuZmluZChcImxpID4gLnRyZWUtdGV4dFwiKS5yZW1vdmVDbGFzcyhcInNlbGVjdGVkXCIpO1xuICAgICAgICAvLyBjbGVhciBhbGwgc2VsZWN0ZWQgaXRlbXNcbiAgICAgICAgJGxpLmZpbmQoXCIudHJlZS10ZXh0OmZpcnN0XCIpLmFkZENsYXNzKFwic2VsZWN0ZWRcIik7XG4gICAgfTtcbiAgICBjb25zdCBhdXRvRXhwYW5kID0gKHRoYXQsIGJyb3dzZVBhdGgsICR0cmVlKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgLy8gZXhwYW5kIHRoZSB0cmVlIHRvIHNob3cgdGhlIG5vZGVJZFxuICAgICAgICBsZXQgJGN1cnJlbnQgPSAkdHJlZS5jaGlsZHJlbihcIjpmaXJzdFwiKTtcbiAgICAgICAgYnJvd3NlUGF0aC5yZWxhdGl2ZVBhdGguZWxlbWVudHMgfHwgW107XG4gICAgICAgIGNvbnN0IG5vZGVJZHMgPSBicm93c2VQYXRoLm5vZGVJZHMgfHwgW107XG4gICAgICAgIGlmIChub2RlSWRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgbiBvZiBub2RlSWRzKSB7XG4gICAgICAgICAgICBpZiAoJGN1cnJlbnQuaGFzQ2xhc3MoXCJleHBhbmRhYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgLy8gbmVlZCB0byBleHBhbmQgYW5kIHNlbGVjdCB0aGUgcmlnaHQgZWxlbWVudFxuICAgICAgICAgICAgICAgIHlpZWxkIF9leHBhbmRMaSh0aGF0LCAkY3VycmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IGZpbmRFbGVtZW50KG4sICRjdXJyZW50KTtcbiAgICAgICAgICAgIGlmICgkZWxlbWVudC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkY3VycmVudCA9ICRlbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIHNlbGVjdFNpbmdsZSh0aGF0LCAkY3VycmVudCk7XG4gICAgICAgIHNjcm9sbFRvTGkodGhhdC4kZHJvcGRvd24sICRjdXJyZW50KTtcbiAgICB9KTtcbiAgICBmdW5jdGlvbiBzY3JvbGxUb0xpKCRjb250YWluZXIsICR0YXJnZXRMaSkge1xuICAgICAgICAvLyBHZXQgdGhlIHBvc2l0aW9uIG9mIHRoZSB0YXJnZXQgaXRlbSByZWxhdGl2ZSB0byBpdHMgY29udGFpbmVyXG4gICAgICAgIGNvbnN0IGxpUG9zID0gJHRhcmdldExpLnBvc2l0aW9uKCkudG9wO1xuICAgICAgICAvLyBHZXQgdGhlIGN1cnJlbnQgc2Nyb2xsIHBvc2l0aW9uIG9mIHRoZSBjb250YWluZXJcbiAgICAgICAgY29uc3QgY29udGFpbmVyU2Nyb2xsVG9wID0gJGNvbnRhaW5lci5zY3JvbGxUb3AoKTtcbiAgICAgICAgaWYgKGNvbnRhaW5lclNjcm9sbFRvcCA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIHBvc2l0aW9uIHRvIHNjcm9sbCB0byAoY3VycmVudCBzY3JvbGwgKyBpdGVtJ3MgcG9zaXRpb24pXG4gICAgICAgIC8vIEFkanVzdCB0aGlzIGNhbGN1bGF0aW9uIGJhc2VkIG9uIHlvdXIgbmVlZHNcbiAgICAgICAgY29uc3Qgc2Nyb2xsVG8gPSBjb250YWluZXJTY3JvbGxUb3AgKyBsaVBvcyAtICRjb250YWluZXIuaGVpZ2h0KCkgLyAyICsgJHRhcmdldExpLmhlaWdodCgpIC8gMjtcbiAgICAgICAgLy8gU2Nyb2xsIHRoZSBjb250YWluZXIgdG8gZW5zdXJlIHRoZSBpdGVtIGlzIHZpc2libGVcbiAgICAgICAgJGNvbnRhaW5lci5hbmltYXRlKHtcbiAgICAgICAgICAgIHNjcm9sbFRvcDogc2Nyb2xsVG8sXG4gICAgICAgIH0sIDUwMCk7IC8vIEFkanVzdCB0aGUgZHVyYXRpb24gKDUwMG1zKSBhcyBuZWVkZWRcbiAgICB9XG4gICAgY29uc3QgcmVhY2hTZWxlY3Rpb24gPSAodGhhdCwgcGFyZW50Tm9kZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IG5vZGVJZCA9IHRoYXQuJGlucHV0LnZhbCgpO1xuICAgICAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgcm9vdE5vZGVJZDogcGFyZW50Tm9kZS5ub2RlSWQsXG4gICAgICAgICAgICBpc1R5cGU6IHRoYXQub3B0aW9ucy5pc1R5cGVSZWYgfHwgZmFsc2UsXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGRhdGEgPSBtYWtlQ29ubmVjdGlvbih0aGF0KTtcbiAgICAgICAgY29uc3QgYnJvd3NlUGF0aCA9IHlpZWxkIHdhbGtCYWNrd2FyZChkYXRhLCBvcHRpb25zKTtcbiAgICAgICAgaWYgKCFicm93c2VQYXRoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgeWllbGQgYXV0b0V4cGFuZCh0aGF0LCBicm93c2VQYXRoLCB0aGF0LiR0cmVlKTtcbiAgICB9KTtcbiAgICBmdW5jdGlvbiBfZmV0Y2hEYXRhRm9yTm9kZSh0aGF0LCAkbm9kZSwgZmV0Y2hGdW5jLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBpZiAoJG5vZGUuaGFzQ2xhc3MoXCJmZXRjaGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhbHJlYWR5IGZldGNoZWRcIik7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCRub2RlLmhhc0NsYXNzKFwibG9hZGluZ1wiKSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYWxyZWFkeSBsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwibG9hZGluZ1wiKTtcbiAgICAgICAgICAgICRub2RlLmFwcGVuZCgnPGRpdiBjbGFzcz1cInNwaW5uZXJcIj48L2Rpdj4nKTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgcmVmZXJlbmNlcyB9ID0geWllbGQgZmV0Y2hGdW5jKCRub2RlLCBkYXRhKTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHJlZmVyZW5jZSBvZiByZWZlcmVuY2VzKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuZmlsdGVyICYmICF0aGF0Lm9wdGlvbnMuZmlsdGVyKHJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQocmVmZXJlbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5hcHBlbmQoJGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAkbm9kZS5hZGRDbGFzcyhcImZldGNoZWRcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5hcHBlbmQoYDxsaT5lcnJvciAke2Vyci5tZXNzYWdlfTwvbGk+YCk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJcIiwgZXJyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICRub2RlLmZpbmQoXCIuc3Bpbm5lclwiKS5yZW1vdmUoKTtcbiAgICAgICAgICAgICRub2RlLnJlbW92ZUNsYXNzKFwibG9hZGluZ1wiKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG1ha2VDb25uZWN0aW9uKHRoYXQpIHtcbiAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgIGJhc2VVcmw6IHRoYXQub3B0aW9ucy5iYXNlVXJsLFxuICAgICAgICAgICAgZW5kcG9pbnROb2RlOiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuICAgIGZ1bmN0aW9uIF9leHBhbmRMaSh0aGF0LCAkbGkpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGlmICgkbGkuaGFzQ2xhc3MoXCJmZXRjaGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIEZldGNoIG5ldyBkYXRhIGZvciB0aGlzIG5vZGVcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBtYWtlQ29ubmVjdGlvbih0aGF0KTtcbiAgICAgICAgICAgIGNvbnN0IGYgPSAhdGhhdC5vcHRpb25zLmlzVHlwZVJlZiA/IGZldGNoQ2hpbGRyZW4gOiBmZXRjaFN1YnR5cGVzO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICB5aWVsZCBfZmV0Y2hEYXRhRm9yTm9kZSh0aGF0LCAkbGksIGYsIGRhdGEpO1xuICAgICAgICAgICAgICAgIC8vIG1hcmsgYXMgZXhwYW5kZWRcbiAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyb3JcIiwgZXJyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCA9ICgpID0+IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFsgVGVtcGVyYXR1cmUgIF1cbiAgICAgICAgICogICAoIHRvb2x0aXAgOiAoL09iamVjdHMvTXlTZW5zb3IpIChucz0xO3M9VGVtcGVyYXR1cmUpKVxuICAgICAgICAgKiBbICsgW0ZvbGRlcl0gT2JqZWN0c11cbiAgICAgICAgICogWyAgICAgW09iamVjdF0gTXlTZW5zb3JdXG4gICAgICAgICAqIFsgICAgICggKSBbVmFyaWFibGVdIFRlbXBlcmF0dXJlXVxuICAgICAgICAgKi9cbiAgICAgICAgJC53aWRnZXQoXCJzdGVyZml2ZS5ub2RlQnJvd3NlclwiLCB7XG4gICAgICAgICAgICAvKiBkZWZhdWx0IG9wdGlvbnMgKi9cbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6ICgpID0+ICh7IGVuZHBvaW50OiBcIm9wYy50Y3A6Ly9vcGN1YWRlbW8uc3RlcmZpdmUuY29tOjI2NTQzXCIgfSksXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQ6ICgpID0+IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBwYXJlbnROb2RlOiAoKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICBicm93c2VOYW1lOiB7IG5hbWVzcGFjZUluZGV4OiAwLCBuYW1lOiBcIk9iamVjdHNcIiB9LFxuICAgICAgICAgICAgICAgICAgICBub2RlQ2xhc3M6IFwiT2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgIG5vZGVJZDogXCJucz0wO2k9ODVcIixcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6IHsgdGV4dDogXCJPYmplY3RzXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZURlZmluaXRpb246IEZvbGRlclR5cGUsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgZmlsdGVyOiAoKSA9PiB0cnVlLFxuICAgICAgICAgICAgICAgIGJhc2VVcmw6IFwiXCIsXG4gICAgICAgICAgICAgICAgaXNUeXBlUmVmOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZXNvbHZlUGFyZW50Tm9kZSgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGF0Ll9fcGFyZW50Tm9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYSA9IHR5cGVvZiB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLnBhcmVudE5vZGUuY2FsbCh0aGF0KSA6IHRoYXQub3B0aW9ucy5wYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGEgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGVzYyA9IHlpZWxkIGE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5fX3BhcmVudE5vZGUgPSBkZXNjO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5fX3BhcmVudE5vZGUgPSBhO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGF0Ll9fcGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZXNldCgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAgICAgLy8gYWxzbyByZXNldCBwYXJlbnQgbm9kZVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBhID0gdGhhdDtcbiAgICAgICAgICAgICAgICAgICAgYS5fX3BhcmVudE5vZGUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuZW1wdHkoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyZW50Tm9kZSA9IHlpZWxkIHRoaXMucmVzb2x2ZVBhcmVudE5vZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudChwYXJlbnROb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5hcHBlbmQoJGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LmN1cnJlbnRQYXJlbnQgPSBwYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHZlcmlmeSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IG1ha2VDb25uZWN0aW9uKHRoYXQpO1xuICAgICAgICAgICAgICAgIGludGVybmFsVmVyaWZ5KGRhdGEsIHRoYXQuJGlucHV0LCB0aGF0LiRpbmZvKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfY3JlYXRlKCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0ID0gdGhpcy5lbGVtZW50O1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvID0gJChcIjxkaXYvPlwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hZGRDbGFzcyhcInN0ZXJmaXZlLWNvbWJvLWJveFwiKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQucmVwbGFjZVdpdGgodGhhdC4kY29tYm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAgPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwiaW5wdXQtZ3JvdXBcIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGlucHV0R3JvdXApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJGlucHV0KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuID0gJChgPGJ1dHRvbj48aSBjbGFzcz1cImZhIGZhLXNpdGVtYXBcIj48L2k+PC9idXR0b24+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kdG9nZ2xlVHJlZUJ0bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0bi5vbihcImNsaWNrXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZWVkVG9SZWFjaFNlbGVjdGlvbiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGRyb3Bkb3duLmlzKFwiOnZpc2libGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0cmVlIHdpZGdldCBpcyBnb2luZyB0byBiZWNvbWUgdmlzaWJsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudE5vZGUgPSB5aWVsZCB0aGF0LnJlc29sdmVQYXJlbnROb2RlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmVudE5vZGUgIT09IHRoYXQuY3VycmVudFBhcmVudCB8fCAoKF9hID0gdGhhdC5jdXJyZW50UGFyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Eubm9kZUlkKSAhPT0gcGFyZW50Tm9kZS5ub2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQgdGhhdC5yZXNldCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZWVkVG9SZWFjaFNlbGVjdGlvbiA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5lZWRUb1JlYWNoU2VsZWN0aW9uICYmICh5aWVsZCByZWFjaFNlbGVjdGlvbih0aGF0LCBwYXJlbnROb2RlKSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHZlcmlmeUJ0biA9ICQoYDxidXR0b24+PGkgY2xhc3M9XCJmYSBmYS1mbGFza1wiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiR2ZXJpZnlCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHZlcmlmeUJ0bi5vbihcImNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52ZXJpZnkoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGlucHV0LmF0dHIoXCJwbGFjZWhvbGRlclwiKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIiwgXCJlbnRlciBhIG5vZGVJZCBvciBhIGJyb3dzZVBhdGggXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvID0gJChgPGRpdiBjbGFzcz1cImluZm8tdGV4dFwiPjwvZGl2PmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcInN0ZXJmaXZlLWRyb3Bkb3duXCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5mbyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlID0gJChgPHVsIGNsYXNzPVwic3RlcmZpdmUtdHJlZVwiPjwvdWw+YCkuYXBwZW5kVG8odGhhdC4kZHJvcGRvd24pO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXQoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBpc09uTGVmdFNpemUgPSAoJGxpLCBldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVXaWR0aCA9IDIwOyAvLyBTZXQgd2lkdGggb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlSGVpZ2h0ID0gMjA7IC8vIFNldCBoZWlnaHQgb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudFBvcyA9ICRsaS5vZmZzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZSA9IGV2ZW50O1xuICAgICAgICAgICAgICAgICAgICBpZiAoZS5wYWdlWCA+PSBlbGVtZW50UG9zLmxlZnQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVggPD0gZWxlbWVudFBvcy5sZWZ0ICsgYmVmb3JlV2lkdGggJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPj0gZWxlbWVudFBvcy50b3AgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPD0gZWxlbWVudFBvcy50b3AgKyBiZWZvcmVIZWlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IHRvZ2dsZUV4cGFuc2lvbiA9ICgkbGkpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGFibGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF9leHBhbmRMaSh0aGF0LCAkbGkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBUb2dnbGUgaXRzIGV4cGFuZGVkL2NvbGxhcHNlZCBzdGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmNoaWxkcmVuKFwidWxcIikuY2hpbGRyZW4oKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN3YXAgZXhwYW5kYWJsZSBhbmQgZXhwYW5kZWQgY2xhc3Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLm9uKFwiZGJsY2xpY2tcIiwgXCJsaVwiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCAkbGkgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNPbkxlZnRTaXplKCRsaSwgZXZlbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b2dnbGVFeHBhbnNpb24oJGxpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gJGxpLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlZmVyZW5jZSA9ICRsaS5kYXRhKFwicmVmZXJlbmNlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5pc1NlbGVjdGFibGUgJiYgIXRoYXQub3B0aW9ucy5pc1NlbGVjdGFibGUocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRpc3BsYXlOYW1lID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0ID0gYFske2Rpc3BsYXlOYW1lfV0oJHt2YWx1ZX0pYDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnZhbChpbnB1dCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzT25MZWZ0U2l6ZSgkbGksIGV2ZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlRXhwYW5zaW9uKCRsaSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0U2luZ2xlKHRoYXQsICRsaSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgJChkb2N1bWVudCkub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gY2xpY2tpbmcgb3V0c2lkZSB0aGUgcGFnZSB3aWxsIGhpZGUgdGhlIGRyb3Bkb3duXG4gICAgICAgICAgICAgICAgICAgIGlmICghJChldmVudC50YXJnZXQpLmNsb3Nlc3QodGhhdC4kY29tYm8pLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgY29uc3QgY2hlY2tOb2RlSWQgPSAoX2EsIG5vZGVJZF8xKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCBbX2EsIG5vZGVJZF8xXSwgdm9pZCAwLCBmdW5jdGlvbiogKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCBub2RlSWQpIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWZvci1ub2RlLXJlZGA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L2NoZWNrTm9kZUlkYDtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGluZyBmYWlsZWQgd2l0aCBlcnJvclwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgICAgIGNvbnN0IHJlcyA9IHtcbiAgICAgICAgICAgICAgICBzdGF0dXNDb2RlOiBcIkJhZFwiLFxuICAgICAgICAgICAgICAgIG5vZGVBZGRyZXNzU3RyaW5nOiBub2RlSWQsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoZWQgOiBcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0geWllbGQgZGF0YS5qc29uKCk7XG4gICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIG1hbmFnZUFQSUNhbGwocHJlZml4LCBidG4sIGZ1bmMsIG9uUmVzdWx0KSB7XG4gICAgICAgIGNvbnN0IHN1Y2Nlc3NJY29uID0gJChgIyR7cHJlZml4fS1zdWNjZXNzYCk7XG4gICAgICAgIGNvbnN0IGZhaWx1cmVJY29uID0gJChgIyR7cHJlZml4fS1mYWlsdXJlYCk7XG4gICAgICAgIGNvbnN0IHBlbmRpbmdJY29uID0gJChgIyR7cHJlZml4fS1wZW5kaW5nYCk7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2VzID0gJChgIyR7cHJlZml4fS1tZXNzYWdlc2ApO1xuICAgICAgICBsZXQgYWN0aW9uUGVuZGluZyA9IGZhbHNlO1xuICAgICAgICBzdWNjZXNzSWNvbi5oaWRlKCk7XG4gICAgICAgIGZhaWx1cmVJY29uLmhpZGUoKTtcbiAgICAgICAgcGVuZGluZ0ljb24uaGlkZSgpO1xuICAgICAgICBidG4ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoYWN0aW9uUGVuZGluZylcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBhY3Rpb25QZW5kaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIHBlbmRpbmdJY29uLnJlbW92ZUNsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgIHBlbmRpbmdJY29uLmh0bWwoXCJUZXN0aW5nIENvbm5lY3Rpb24gLi4uXCIpO1xuICAgICAgICAgICAgc3VjY2Vzc0ljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgZmFpbHVyZUljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgbWVzc2FnZXMuaHRtbChcIlwiKTtcbiAgICAgICAgICAgIGNvbnN0IHsgYm9keSwgdXJsIH0gPSBmdW5jKCk7XG4gICAgICAgICAgICAvLyB4eCBjb25zb2xlLmxvZyhcInh4eHh4XCIsIGJvZHkpO1xuICAgICAgICAgICAgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoYm9keSksXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC50aGVuKChkYXRhKSA9PiBkYXRhLmpzb24oKSlcbiAgICAgICAgICAgICAgICAudGhlbigoanNvbikgPT4ge1xuICAgICAgICAgICAgICAgIGFjdGlvblBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBwZW5kaW5nSWNvbi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoanNvbiwgbnVsbCwgXCIgXCIpKTtcbiAgICAgICAgICAgICAgICBpZiAoanNvbi5yZXN1bHQgPT09IFwib2tcIikge1xuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzSWNvbi5yZW1vdmVDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgICAgIGZhaWx1cmVJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZXMuaHRtbChqc29uLm1lc3NhZ2UucmVwbGFjZShcIlxcblwiLCBcIjxicj5cIikpO1xuICAgICAgICAgICAgICAgICAgICBvblJlc3VsdChudWxsLCBqc29uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFkYXB0ID0gKHN0cikgPT4gIXN0clxuICAgICAgICAgICAgICAgICAgICAgICAgPyBcIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHN0clxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zcGxpdChcIlxcblwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoKGEpID0+IGA8cD4ke2F9PC9wPmApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmpvaW4oXCJcXG5cIik7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFkYXB0MiA9IChzdHIpID0+IChBcnJheS5pc0FycmF5KHN0cikgPyBzdHIubWFwKGFkYXB0KS5qb2luKFwiXFxuXCIpIDogYWRhcHQoc3RyKSk7XG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3NJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgZmFpbHVyZUljb24ucmVtb3ZlQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlcy5odG1sKGFkYXB0Mihqc29uLm1lc3NhZ2UpICsgYWRhcHQyKGpzb24uZXh0cmEpKTtcbiAgICAgICAgICAgICAgICAgICAgb25SZXN1bHQobmV3IEVycm9yKGpzb24ucmVzdWx0KSwganNvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICAgIGFjdGlvblBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBwZW5kaW5nSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgc3VjY2Vzc0ljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgIGZhaWx1cmVJY29uLnJlbW92ZUNsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICBtZXNzYWdlcy5odG1sKFwiaW50ZXJuYWwgZXJyb3IgXCIgKyBlcnIubWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJcIiwgZXJyKTtcbiAgICAgICAgICAgICAgICBvblJlc3VsdChlcnIsIG51bGwpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IGdldEVuZFBvaW50QXR0cmlidXRlcyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCBlbmRwb2ludElkID0gJGVuZHBvaW50LnZhbCgpO1xuICAgICAgICBjb25zdCByZWROb2RlID0gUkVELm5vZGVzLm5vZGUoZW5kcG9pbnRJZCk7XG4gICAgICAgIGlmICghcmVkTm9kZSlcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIC8vIGNvbnN0IGNyZWRlbnRpYWxzID0gUkVELihlbmRwb2ludElkKTtcbiAgICAgICAgLy8gd2UgbmVlZCB0byBzYW5pdGl6ZSBhbmQgZXh0cmFjdCB0aGUgZW5kcG9pbnQgYXR0cmlidXRlcyBvbmx5ICggbm90IHRoZSBub2RlLXJlZCBzdHVmZilcbiAgICAgICAgY29uc3QgeyBlbmRwb2ludCwgc2VjdXJpdHlNb2RlLCBzZWN1cml0eVBvbGljeSwgdXNlcklkZW50aXR5VHlwZSwgY3JlZGVudGlhbHMgfSA9IHJlZE5vZGU7XG4gICAgICAgIGNvbnN0IHJldFZhbHVlID0ge1xuICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICBzZWN1cml0eU1vZGUsXG4gICAgICAgICAgICBzZWN1cml0eVBvbGljeSxcbiAgICAgICAgICAgIHVzZXJJZGVudGl0eVR5cGUsXG4gICAgICAgICAgICBjcmVkZW50aWFscyxcbiAgICAgICAgfTtcbiAgICAgICAgLy8geHggY29uc29sZS5sb2coXCJ4eHhcIiwgcmV0VmFsdWUpO1xuICAgICAgICByZXR1cm4gcmV0VmFsdWU7XG4gICAgfTtcbiAgICBjb25zdCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZW5kcG9pbnROb2RlOiBnZXRFbmRwb2ludFBhcmFtZXRlcnMsXG4gICAgICAgIH07XG4gICAgfTtcbiAgICBjb25zdCBnZXRFbmRwb2ludFBhcmFtZXRlcnMgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0ICRlbmRwb2ludCA9ICQoXCIjbm9kZS1pbnB1dC1lbmRwb2ludFwiKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnRJZCA9ICRlbmRwb2ludC52YWwoKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnROciA9IGdldEVuZFBvaW50QXR0cmlidXRlcygpO1xuICAgICAgICBpZiAoIWVuZHBvaW50TnIpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGlkOiBlbmRwb2ludElkLFxuICAgICAgICAgICAgLy8gZW5kcG9pbnQ6IGVuZHBvaW50TnIuZW5kcG9pbnQsXG4gICAgICAgICAgICAvLyBzZWN1cml0eU1vZGU6IGVuZHBvaW50TnIuc2VjdXJpdHlNb2RlLFxuICAgICAgICAgICAgLy8gc2VjdXJpdHlQb2xpY3k6IGVuZHBvaW50TnIuc2VjdXJpdHlQb2xpY3ksXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgLy8gdXNlcklkZW50aXR5VHlwZTogZW5kcG9pbnROci51c2VySWRlbnRpdHlUeXBlLFxuICAgICAgICAgICAgLy8gY3JlZGVudGlhbDogZW5kcG9pbnROci5jcmVkZW50aWFscyxcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAvLyB1c2VyTmFtZTogZW5kcG9pbnROci51c2VySWRlbnRpdHlUeXBlID09PSBcIlVzZXJOYW1lXCIgPyBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLnVzZXJOYW1lIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgLy8gcGFzc3dvcmQ6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSA9PT0gXCJVc2VyTmFtZVwiID8gZW5kcG9pbnROci5jcmVkZW50aWFscy5wYXNzd29yZCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIC8vIHVzZXJDZXJ0aWZpY2F0ZTogZW5kcG9pbnROci5jcmVkZW50aWFscy51c2VyQ2VydGlmaWNhdGUsXG4gICAgICAgICAgICAvLyB1c2VyUHJpdmF0ZWtleTogZW5kcG9pbnROci5jcmVkZW50aWFscy51c2VyUHJpdmF0ZWtleSxcbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgUkVELm5vZGVzLnJlZ2lzdGVyVHlwZShcIk9wY1VhLUNsaWVudDItQ2FsbFwiLCB7XG4gICAgICAgIGNhdGVnb3J5OiBcIm9wY3VhXCIsXG4gICAgICAgIGNvbG9yOiBcIiNDMERFRURcIixcbiAgICAgICAgYWxpZ246IFwicmlnaHRcIixcbiAgICAgICAgaWNvbjogXCIuLi8uLi9pY29ucy9vcGN1YW5vZGVMb2dvLnBuZ1wiLFxuICAgICAgICBwYWxldHRlTGFiZWw6IFwiY2FsbFwiLFxuICAgICAgICBkZWZhdWx0czoge1xuICAgICAgICAgICAgaW5wdXRzOiB7IHZhbHVlOiAxIH0sXG4gICAgICAgICAgICBvdXRwdXQ6IHsgdmFsdWU6IDQgfSxcbiAgICAgICAgICAgIC8vIENvbW1vblxuICAgICAgICAgICAgbmFtZTogeyB2YWx1ZTogXCJcIiB9LFxuICAgICAgICAgICAgZW5kcG9pbnQ6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiB0cnVlLCB0eXBlOiBcIk9wY1VhLUVuZHBvaW50MlwiIH0sXG4gICAgICAgICAgICBhY3Rpb246IHsgdmFsdWU6IFwicmVhZFwiLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgLy8gZm9yIGFjdGlvbiBjYWxsXG4gICAgICAgICAgICBtZXRob2RJZDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIG9iamVjdElkOiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICB9LFxuICAgICAgICAvLyBpbnB1dHM6LFxuICAgICAgICBvdXRwdXRzOiAyLCAvLyAyIG91dHB1dCwgc2Vjb25kIGZvciByYXcgbm9kZS1vcGN1YSBkaWFnbm9zdGljcyBvciBtb3JlIGNvbXBsZXRlIG1lc3NhZ2VcbiAgICAgICAgbGFiZWwoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uYW1lIHx8IFwiT1BDVUEtQ2FsbFwiO1xuICAgICAgICB9LFxuICAgICAgICBsYWJlbFN0eWxlKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSA/IFwibm9kZV9sYWJlbF9pdGFsaWNcIiA6IFwiXCI7XG4gICAgICAgIH0sXG4gICAgICAgIG9uZWRpdHByZXBhcmUoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gdGhpcztcbiAgICAgICAgICAgIGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCgpO1xuICAgICAgICAgICAgbm9kZS5pbnB1dHMgPSAxO1xuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIC8vIGhhbmRsZSBTZWN0aW9uIENhbGxcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICBsZXQgZGF0YVR5cGVzID0ge307XG4gICAgICAgICAgICAvLyB0byBkbyBhZGQgYSB0eXBlc2NyaXB0IGRlZmluaXRpb24gZm9yIHRoaXNcbiAgICAgICAgICAgIGNvbnN0ICRvYmplY3RJZCA9ICQoXCIjbm9kZS1pbnB1dC1vYmplY3RJZFwiKTtcbiAgICAgICAgICAgIGNvbnN0ICRtZXRob2RJZCA9ICQoXCIjbm9kZS1pbnB1dC1tZXRob2RJZFwiKTtcbiAgICAgICAgICAgIGNvbnN0ICRpbnB1dEFyZ3VtZW50RGVmaW5pdGlvbiA9ICQoXCIjbWV0aG9kLWlucHV0LWFyZ3VtZW50LWRlZmluaXRpb25cIik7XG4gICAgICAgICAgICBjb25zdCAkb3V0cHV0QXJndW1lbnREZWZpbml0aW9uID0gJChcIiNtZXRob2Qtb3V0cHV0LWFyZ3VtZW50LWRlZmluaXRpb25cIik7XG4gICAgICAgICAgICBjb25zdCAkdmFsaWRhdGVCdG4gPSAkKFwiI3ZhbGlkYXRlLWNhbGwtYXJndW1lbnRzLWJ1dHRvblwiKTtcbiAgICAgICAgICAgICRvYmplY3RJZC5ub2RlQnJvd3NlcihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIoKSksIHsgZmlsdGVyKG5vZGVEZXNjKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiT2JqZWN0XCI7XG4gICAgICAgICAgICAgICAgfSB9KSk7XG4gICAgICAgICAgICAkbWV0aG9kSWQubm9kZUJyb3dzZXIoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyKCkpLCB7IHBhcmVudE5vZGU6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBtYWtlQ29ubmVjdGlvbih0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5lZWQgdG8gcmVzeW5jIHdpdGggd2hhdCdzIGluICAjbm9kZS1pbnB1dC1vYmplY3RJZFxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHJlZmVyZW5jZSA9ICRvYmplY3RJZC5kYXRhKFwicmVmZXJlbmNlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFyZWZlcmVuY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBub2RlSWRFeCA9ICRvYmplY3RJZC52YWwoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlbmRwb2ludE5vZGUgPSBnZXRFbmRQb2ludEF0dHJpYnV0ZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWVuZHBvaW50Tm9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgciA9IHlpZWxkIGNoZWNrTm9kZUlkKGRhdGEsIG5vZGVJZEV4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmZXJlbmNlID0gci5yZWZlcmVuY2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVmZXJlbmNlO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9LCBmaWx0ZXIobm9kZURlc2MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJNZXRob2RcIiB8fCBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiT2JqZWN0XCI7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBpc1NlbGVjdGFibGUobm9kZURlc2MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJNZXRob2RcIjtcbiAgICAgICAgICAgICAgICB9IH0pKTtcbiAgICAgICAgICAgICRvYmplY3RJZC5vbihcImNoYW5nZVwiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgJG1ldGhvZElkLm5vZGVCcm93c2VyKFwicmVzZXRcIik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGZ1bmN0aW9uIGFkZEFyZ3VtZW50Q3RybChjb250YWluZXIsIGluZGV4LCBhcmcpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpdGVtID0gJCgnPGRpdiBjbGFzcz1cImFyZ3VtZW50LWVudHJ5XCI+JykuYXBwZW5kVG8oY29udGFpbmVyKTtcbiAgICAgICAgICAgICAgICAvLyBjb250YWluZXIuZGF0YShcImRhdGFcIiwgYXJnKTtcbiAgICAgICAgICAgICAgICAkKCc8aW5wdXQgdHlwZT1cInRleHRcIj4nKVxuICAgICAgICAgICAgICAgICAgICAudmFsKGFyZy5uYW1lIHx8IFwiXCIpXG4gICAgICAgICAgICAgICAgICAgIC5jc3MoeyB3aWR0aDogXCIxMDAlXCIgfSlcbiAgICAgICAgICAgICAgICAgICAgLmFwcGVuZFRvKGl0ZW0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IGQgPSBkYXRhVHlwZXNbYXJnLmRhdGFUeXBlLnRvU3RyaW5nKCldO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGFUeXBlTiA9IChkID8gZC5icm93c2VOYW1lLm5hbWUgfHwgXCJcIiA6IGFyZy5kYXRhVHlwZS50b1N0cmluZygpKSArIChhcmcudmFsdWVSYW5rID09PSAxID8gXCJbXVwiIDogXCJcIik7XG4gICAgICAgICAgICAgICAgJCgnPGlucHV0IHR5cGU9XCJ0ZXh0XCI+JylcbiAgICAgICAgICAgICAgICAgICAgLnZhbChhcmcuZGVzY3JpcHRpb24udGV4dCB8fCBcIlwiKVxuICAgICAgICAgICAgICAgICAgICAuY3NzKHsgd2lkdGg6IFwiNTAlXCIgfSlcbiAgICAgICAgICAgICAgICAgICAgLmFwcGVuZFRvKGl0ZW0pO1xuICAgICAgICAgICAgICAgICQoJzxpbnB1dCB0eXBlPVwidGV4dFwiPicpXG4gICAgICAgICAgICAgICAgICAgIC52YWwoZGF0YVR5cGVOIHx8IFwiXCIpXG4gICAgICAgICAgICAgICAgICAgIC5jc3MoeyB3aWR0aDogXCI1MCVcIiB9KVxuICAgICAgICAgICAgICAgICAgICAuYXBwZW5kVG8oaXRlbSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkaW5wdXRBcmd1bWVudERlZmluaXRpb24uZWRpdGFibGVMaXN0KHtcbiAgICAgICAgICAgICAgICBhZGRCdXR0b246IGZhbHNlLFxuICAgICAgICAgICAgICAgIGhlaWdodDogXCJhdXRvXCIsXG4gICAgICAgICAgICAgICAgc2Nyb2xsT25BZGQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGFkZEl0ZW0oY29udGFpbmVyLCBpLCBvYmplY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgYWRkQXJndW1lbnRDdHJsKGNvbnRhaW5lciwgaSwgb2JqZWN0KTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAkb3V0cHV0QXJndW1lbnREZWZpbml0aW9uLmVkaXRhYmxlTGlzdCh7XG4gICAgICAgICAgICAgICAgYWRkQnV0dG9uOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IFwiYXV0b1wiLFxuICAgICAgICAgICAgICAgIHNjcm9sbE9uQWRkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBhZGRJdGVtKGNvbnRhaW5lciwgaSwgb2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgIGFkZEFyZ3VtZW50Q3RybChjb250YWluZXIsIGksIG9iamVjdCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZnVuY3Rpb24gaW5zdGFsbEFyZ3VtZW50TGlzdChsaXN0LCBtZXRob2RBcmd1bWVudHMpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImluc3RhbGxBcmd1bWVudExpc3RcIiwgbWV0aG9kQXJndW1lbnRzLmxlbmd0aCwgXCJhcmd1bWVudHNcIiwgbWV0aG9kQXJndW1lbnRzKTtcbiAgICAgICAgICAgICAgICBsaXN0LmVkaXRhYmxlTGlzdChcImVtcHR5XCIpO1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWV0aG9kQXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGxpc3QuZWRpdGFibGVMaXN0KFwiYWRkSXRlbVwiLCBtZXRob2RBcmd1bWVudHNbaV0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICRpbnB1dEFyZ3VtZW50RGVmaW5pdGlvbi5oaWRlKCk7XG4gICAgICAgICAgICAkb3V0cHV0QXJndW1lbnREZWZpbml0aW9uLmhpZGUoKTtcbiAgICAgICAgICAgIGxldCBpbnB1dEFzSnNvbiA9IHt9O1xuICAgICAgICAgICAgY29uc3QgJGNvcHlJbnB1dCA9ICQoXCIjY29weS1pbnB1dFwiKTtcbiAgICAgICAgICAgICRjb3B5SW5wdXQuaGlkZSgpO1xuICAgICAgICAgICAgJGNvcHlJbnB1dC5vbihcImNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBDb3B5IHRoZSB0ZXh0IGluc2lkZSB0aGUgdGV4dCBmaWVsZFxuICAgICAgICAgICAgICAgIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KEpTT04uc3RyaW5naWZ5KGlucHV0QXNKc29uKSk7XG4gICAgICAgICAgICAgICAgLy8gYWxlcnQoSlNPTi5zdHJpbmdpZnkoaW5wdXRBc0pzb24pICsgXCIgY29waWVkIHRvIGNsaXBib2FyZFwiKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgbWFuYWdlQVBJQ2FsbChcInZhbGlkYXRlXCIsICR2YWxpZGF0ZUJ0biwgKCkgPT4gKHtcbiAgICAgICAgICAgICAgICB1cmw6IFwiL29wY3VhLWZvci1ub2RlLXJlZC9hcmd1bWVudERlZmluaXRpb25cIixcbiAgICAgICAgICAgICAgICBib2R5OiB7XG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzKCksXG4gICAgICAgICAgICAgICAgICAgIG9iamVjdElkOiAkb2JqZWN0SWQudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIG1ldGhvZElkOiAkbWV0aG9kSWQudmFsKCksXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pLCAoZXJyLCBkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIHBvcHVsYXRlIHRoZSBsaXN0XG4gICAgICAgICAgICAgICAgY29uc3QgYXJndW1lbnREZWZpbml0aW9uID0gZGF0YS5hcmd1bWVudERlZmluaXRpb247XG4gICAgICAgICAgICAgICAgZGF0YVR5cGVzID0gZGF0YS5kYXRhVHlwZXM7XG4gICAgICAgICAgICAgICAgJGlucHV0QXJndW1lbnREZWZpbml0aW9uLnNob3coKTtcbiAgICAgICAgICAgICAgICAkb3V0cHV0QXJndW1lbnREZWZpbml0aW9uLnNob3coKTtcbiAgICAgICAgICAgICAgICBpbnN0YWxsQXJndW1lbnRMaXN0KCRpbnB1dEFyZ3VtZW50RGVmaW5pdGlvbiwgYXJndW1lbnREZWZpbml0aW9uLmlucHV0QXJndW1lbnRzKTtcbiAgICAgICAgICAgICAgICBpbnN0YWxsQXJndW1lbnRMaXN0KCRvdXRwdXRBcmd1bWVudERlZmluaXRpb24sIGFyZ3VtZW50RGVmaW5pdGlvbi5vdXRwdXRBcmd1bWVudHMpO1xuICAgICAgICAgICAgICAgIGlucHV0QXNKc29uID0gZGF0YS5pbnB1dEFyZ3VtZW50c0V4YW1wbGVBc0pzb24gfHwge307XG4gICAgICAgICAgICAgICAgJGNvcHlJbnB1dC5zaG93KCk7XG4gICAgICAgICAgICAgICAgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoSlNPTi5zdHJpbmdpZnkoaW5wdXRBc0pzb24pKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIkpTT05cIiwgSlNPTi5zdHJpbmdpZnkoaW5wdXRBc0pzb24pKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImRhdGFcIiwgZGF0YSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0c2F2ZSgpIHsgfSxcbiAgICB9KTtcblxufSkoKTsiXX0=
|
9
9
|
</script>
|
10
10
|
<script type="text/x-red" data-template-name="OpcUa-Client2-Call">
|
11
11
|
<div class="form-row">
|