@opcua/for-node-red 2.1.3 → 2.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/all.js +2 -22557
- package/package.json +1 -1
- package/source/OpcUa-Client2-Browse/OpcUa-Client2-Browse.html +14 -12
- 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-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 +2 -2
- package/source/OpcUa-Client2-Write/OpcUa-Client2-Write.html +2 -2
- package/source/OpcUa-Endpoint2/OpcUa-Endpoint2.html +2 -2
@@ -4,8 +4,8 @@
|
|
4
4
|
</style>
|
5
5
|
|
6
6
|
<script type="text/javascript">
|
7
|
-
function _0x2656(_0x1a988d,_0x7e78c5){const _0x26f33e=_0x26f3();return _0x2656=function(_0x265635,_0x374fa8){_0x265635=_0x265635-0x1b6;let _0x116e12=_0x26f33e[_0x265635];return _0x116e12;},_0x2656(_0x1a988d,_0x7e78c5);}function _0x26f3(){const _0x412a71=['isArray','next','already\x20fetched','reset','#C0DEED','err','map',';\x22></i>\x20','100%','Invalid','Method','View','271676riMXHB','toggleClass','VariableType','attr','#node-input-objectId','element','883120FkbfOa','catch','removeClass','referenceTypeId','hasClass','3830904SpNCaT','</p>','Both','extra','join','UserName','nodeClass','<input\x20type=\x22text\x22>','target','typeDefinition','Bad','references','appendTo','input-group','browseResult','securityMode','css','DataType','left','rgba(61,\x2060,\x204,\x200.525)','!!failure!!','$dropdown','50%','<div\x20class=\x22argument-entry\x22>','done','then','HasChild','SteelBlue','securityPolicy','closest','pageY','validate','length','dataType','arguments','fetched\x20:\x20','outputArguments','$verifyBtn','fa-cog','.spinner','Forward','already\x20loading','ns=0;i=40','node','expandable\x20expanded','<p>','NodeClass','show','auto','$inputGroup','44502SrDXAF','71250MQXkAd','text','expanded','<div/>','isTypeRef','sterfive-combo-box','/opcua-endpoint2/argumentDefinition','1528268nTmQIv','ns=0;i=61','2WdxpBv','BrowseName','registerType','parentNode','error','../../icons/opcuanodeLogo.png','dataTypes','Objects','failure','filter','nodeId','replace','nodeBrowser','$combo','$info','$tree','endpoint','click','TypeDefinition','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','</li>','HasProperty','-pending','stopPropagation','append','reference','hide','installArgumentList','<div\x20class=\x22spinner\x22></div>','<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>','message','15zbKpHy','opcua','#validate-call-arguments-button','/browse','ObjectType','sterfive.nodeBrowser','result','displayName','<div\x20class=\x22info-text\x22></div>','read','addClass','opc.tcp://opcuademo.sterfive.com:26543','empty','fa-question','log','#method-input-argument-definition','replaceWith','OPCUA-Call','description','userCertificate','fetched','OpcUa-Client2-Call','sterfive-info','statusText','options','userName','POST','find','DodgerBlue','/checkNodeId','userIdentityType','Variable','Unspecified','#node-input-endpoint','value','fa-list-alt','Organizes','html','HasComponent','DarkOrange','name','toString','right','userPrivatekey','apply','editableList','fa-folder','isSelectable','fa-sliders','internal\x20error\x20','split','ns=0;i=85','/opcua-endpoint2','children','suppressed','ns=0;i=45','SeaGreen','grey','stringify','<li>error\x20','Object','$input','resolveParentNode','i=61','assign','val','toggle','Calling\x20nodeBrowser','ReferenceType','application/json','Inverse','throw','function','json','Calling\x20nodeBrowser\x20Done','trigger','status','data','expandable','<br>','6649182ALfcuv','IsForward','baseUrl','endpointNode','\x20Fetching\x20done','currentParent','Testing\x20Connection\x20...','loading','nodes','change','$toggleTreeBtn','-success'];_0x26f3=function(){return _0x412a71;};return _0x26f3();}(function(_0x16ea1b,_0xa24d93){const _0x51ad0d=_0x2656,_0x4dd8f0=_0x16ea1b();while(!![]){try{const _0x12a1db=parseInt(_0x51ad0d(0x215))/0x1*(-parseInt(_0x51ad0d(0x25c))/0x2)+-parseInt(_0x51ad0d(0x253))/0x3+parseInt(_0x51ad0d(0x25a))/0x4+-parseInt(_0x51ad0d(0x27b))/0x5*(-parseInt(_0x51ad0d(0x252))/0x6)+-parseInt(_0x51ad0d(0x21b))/0x7+-parseInt(_0x51ad0d(0x220))/0x8+parseInt(_0x51ad0d(0x1fd))/0x9;if(_0x12a1db===_0xa24d93)break;else _0x4dd8f0['push'](_0x4dd8f0['shift']());}catch(_0x3222bd){_0x4dd8f0['push'](_0x4dd8f0['shift']());}}}(_0x26f3,0x3b3eb),(function(){'use strict';const _0x4d551d=_0x2656;function _0x2b9811(_0x3a3295,_0x12f931,_0x2223f8,_0x6f1a31){function _0x67ec66(_0x13dbd3){return _0x13dbd3 instanceof _0x2223f8?_0x13dbd3:new _0x2223f8(function(_0x4be558){_0x4be558(_0x13dbd3);});}return new(_0x2223f8||(_0x2223f8=Promise))(function(_0x18ddd3,_0xa389f3){const _0x2c74c6=_0x2656;function _0x43fda6(_0x155786){const _0x28cac9=_0x2656;try{_0x5971e0(_0x6f1a31[_0x28cac9(0x20a)](_0x155786));}catch(_0xb18bb7){_0xa389f3(_0xb18bb7);}}function _0x3aeb36(_0x59b2ed){const _0xd52fa0=_0x2656;try{_0x5971e0(_0x6f1a31[_0xd52fa0(0x1f4)](_0x59b2ed));}catch(_0x24c91f){_0xa389f3(_0x24c91f);}}function _0x5971e0(_0x25c653){const _0x4bf474=_0x2656;_0x25c653[_0x4bf474(0x238)]?_0x18ddd3(_0x25c653[_0x4bf474(0x1cf)]):_0x67ec66(_0x25c653[_0x4bf474(0x1cf)])[_0x4bf474(0x239)](_0x43fda6,_0x3aeb36);}_0x5971e0((_0x6f1a31=_0x6f1a31[_0x2c74c6(0x1d9)](_0x3a3295,_0x12f931||[]))['next']());});}typeof SuppressedError===_0x4d551d(0x1f5)?SuppressedError:function(_0xf152c4,_0x34c8d8,_0x377f4b){const _0x2c7b2b=_0x4d551d;var _0x2a0a10=new Error(_0x377f4b);return _0x2a0a10['name']='SuppressedError',_0x2a0a10[_0x2c7b2b(0x260)]=_0xf152c4,_0x2a0a10[_0x2c7b2b(0x1e3)]=_0x34c8d8,_0x2a0a10;};const _0x10f1ce='ns=0;i=35',_0x35f175=_0x4d551d(0x25b),_0x31e4e8='ns=0;i=47',_0x11c0fc='ns=0;i=46',_0x6c481d='ns=0;i=34',_0xcb8d71=_0x4d551d(0x1e4),_0x106186=_0x4d551d(0x24a);var _0x1a510f;(function(_0x2fa69d){const _0x1e5d57=_0x4d551d;_0x2fa69d[_0x2fa69d[_0x1e5d57(0x248)]=0x0]=_0x1e5d57(0x248),_0x2fa69d[_0x2fa69d[_0x1e5d57(0x1f3)]=0x1]=_0x1e5d57(0x1f3),_0x2fa69d[_0x2fa69d[_0x1e5d57(0x222)]=0x2]=_0x1e5d57(0x222),_0x2fa69d[_0x2fa69d[_0x1e5d57(0x212)]=0x3]=_0x1e5d57(0x212);}(_0x1a510f||(_0x1a510f={})));var _0x345c48;(function(_0x122446){const _0x260eb7=_0x4d551d;_0x122446[_0x122446[_0x260eb7(0x1cd)]=0x0]=_0x260eb7(0x1cd),_0x122446[_0x122446['Object']=0x1]=_0x260eb7(0x1e9),_0x122446[_0x122446[_0x260eb7(0x1cc)]=0x2]=_0x260eb7(0x1cc),_0x122446[_0x122446['Method']=0x4]=_0x260eb7(0x213),_0x122446[_0x122446[_0x260eb7(0x27f)]=0x8]=_0x260eb7(0x27f),_0x122446[_0x122446[_0x260eb7(0x217)]=0x10]='VariableType',_0x122446[_0x122446[_0x260eb7(0x1f1)]=0x20]=_0x260eb7(0x1f1),_0x122446[_0x122446['DataType']=0x40]=_0x260eb7(0x231),_0x122446[_0x122446[_0x260eb7(0x214)]=0x80]=_0x260eb7(0x214);}(_0x345c48||(_0x345c48={})));var _0xe3a3a;(function(_0x1ea823){const _0x2bc1a8=_0x4d551d;_0x1ea823[_0x1ea823[_0x2bc1a8(0x1e9)]=0x1]=_0x2bc1a8(0x1e9),_0x1ea823[_0x1ea823['Variable']=0x2]=_0x2bc1a8(0x1cc),_0x1ea823[_0x1ea823[_0x2bc1a8(0x213)]=0x4]='Method',_0x1ea823[_0x1ea823[_0x2bc1a8(0x27f)]=0x8]=_0x2bc1a8(0x27f),_0x1ea823[_0x1ea823[_0x2bc1a8(0x217)]=0x10]=_0x2bc1a8(0x217),_0x1ea823[_0x1ea823['ReferenceType']=0x20]=_0x2bc1a8(0x1f1),_0x1ea823[_0x1ea823[_0x2bc1a8(0x231)]=0x40]='DataType',_0x1ea823[_0x1ea823[_0x2bc1a8(0x214)]=0x80]=_0x2bc1a8(0x214);}(_0xe3a3a||(_0xe3a3a={})));var _0x7f233f;(function(_0x10d8bf){const _0x38e4fd=_0x4d551d;_0x10d8bf[_0x10d8bf[_0x38e4fd(0x1f1)]=0x1]='ReferenceType',_0x10d8bf[_0x10d8bf[_0x38e4fd(0x1fe)]=0x2]=_0x38e4fd(0x1fe),_0x10d8bf[_0x10d8bf[_0x38e4fd(0x24e)]=0x4]=_0x38e4fd(0x24e),_0x10d8bf[_0x10d8bf['BrowseName']=0x8]=_0x38e4fd(0x25d),_0x10d8bf[_0x10d8bf['DisplayName']=0x10]='DisplayName',_0x10d8bf[_0x10d8bf[_0x38e4fd(0x26e)]=0x20]=_0x38e4fd(0x26e);}(_0x7f233f||(_0x7f233f={})));function _0x1721ba(_0x361ba4){const _0x5c2234=_0x4d551d;switch(_0x361ba4){case'Organizes':return _0x10f1ce;case _0x5c2234(0x271):return _0x11c0fc;case _0x5c2234(0x1d3):return _0x31e4e8;case _0x5c2234(0x23a):return _0x6c481d;case'HasSubtype':return _0xcb8d71;case'HasTypeDefinition':return _0x106186;}}const _0xd2e13c=_0x3bd562=>{const _0x406a07=_0x4d551d;switch(_0x3bd562[_0x406a07(0x226)]){case _0x406a07(0x1e9):if(_0x3bd562[_0x406a07(0x21e)]===_0x10f1ce);if(_0x3bd562[_0x406a07(0x229)]===_0x35f175||_0x3bd562[_0x406a07(0x21e)]===_0x406a07(0x1ec))return{'icon':_0x406a07(0x1db),'color':_0x406a07(0x233)};return{'icon':'fa-object-group','color':_0x406a07(0x1e5)};case _0x406a07(0x1cc):if(_0x3bd562[_0x406a07(0x21e)]===_0x31e4e8)return{'icon':'fa-list-alt','color':_0x406a07(0x23b)};else return _0x3bd562[_0x406a07(0x21e)]===_0x11c0fc?{'icon':_0x406a07(0x1d0),'color':_0x406a07(0x1c9)}:{'icon':_0x406a07(0x1d0),'color':'CadetBlue'};case _0x406a07(0x213):return{'icon':_0x406a07(0x246),'color':'SandyBrown'};case _0x406a07(0x27f):return{'icon':'fa-object-group','color':_0x406a07(0x1d4)};case _0x406a07(0x217):return{'icon':_0x406a07(0x1dd),'color':_0x406a07(0x1d4)};}return{'icon':_0x406a07(0x1ba),'color':_0x406a07(0x1e6)};},_0x5bfd45=({endpointNode:_0x19e319,endpoint:_0x46a0f1,baseUrl:_0x358fdc},_0x4868d2,_0xc30427)=>_0x2b9811(void 0x0,void 0x0,void 0x0,function*(){const _0x103e71=_0x4d551d,_0x4bf892=_0x358fdc+_0x103e71(0x1e1),_0x5bec62=_0x4bf892+_0x103e71(0x27e),_0x30d18d=Object[_0x103e71(0x1ed)](Object[_0x103e71(0x1ed)]({},_0xc30427),{'nodeId':_0x4868d2,'resultMask':0x3f}),_0x34cb14=yield fetch(_0x5bec62,{'method':_0x103e71(0x1c7),'body':JSON[_0x103e71(0x1e7)]({'endpointNode':_0x19e319,'endpoint':_0x46a0f1,'browseDescription':_0x30d18d}),'headers':{'Content-Type':_0x103e71(0x1f2)}});if(_0x34cb14[_0x103e71(0x1f9)]!==0xc8)return console[_0x103e71(0x1bb)]('fetching\x20failed\x20with\x20error',_0x34cb14[_0x103e71(0x1f9)],_0x34cb14[_0x103e71(0x1c4)]),{'references':[]};console[_0x103e71(0x1bb)]('fetched\x20:\x20',_0x34cb14[_0x103e71(0x1f9)],_0x34cb14[_0x103e71(0x1c4)]);const _0x21aea3=yield _0x34cb14[_0x103e71(0x1f6)](),_0x4d293f=_0x21aea3[_0x103e71(0x22e)]['references']||[];return{'references':_0x4d293f};}),_0x484942={'referenceTypeId':_0x1721ba(_0x4d551d(0x23a)),'includeSubtypes':!![],'browseDirection':_0x1a510f[_0x4d551d(0x248)],'nodeClassMask':_0x345c48['Variable']|_0x345c48['Object']|_0x345c48['Method'],'resultMask':0x3f},_0x5581f2={'referenceTypeId':_0x1721ba(_0x4d551d(0x1d1)),'includeSubtypes':!![],'browseDirection':_0x1a510f[_0x4d551d(0x248)],'nodeClassMask':_0x345c48['Variable']|_0x345c48['Object']|_0x345c48[_0x4d551d(0x213)],'resultMask':0x3f},_0x4d8be1=({endpointNode:_0x5be7c2,endpoint:_0x56a2fe,baseUrl:_0x1ed267},_0x402816,_0x7d39cc)=>_0x2b9811(void 0x0,void 0x0,void 0x0,function*(){const _0x39bc77=_0x4d551d,_0x5c143a=_0x1ed267+'/opcua-endpoint2',_0x593a3a=_0x402816[_0x39bc77(0x1ee)](),_0x3d3ecb=yield fetch(_0x5c143a+_0x39bc77(0x1ca),{'method':_0x39bc77(0x1c7),'body':JSON[_0x39bc77(0x1e7)]({'endpointNode':_0x5be7c2,'endpoint':_0x56a2fe,'nodeId':_0x593a3a}),'headers':{'Content-Type':_0x39bc77(0x1f2)}}),_0x10e0b9=(_0x4f82d9,_0x2e5b93)=>{const _0x574162=_0x39bc77;_0x7d39cc[_0x574162(0x254)](_0x4f82d9)[_0x574162(0x1b7)](_0x574162(0x1c3))[_0x574162(0x1b7)](_0x2e5b93),_0x7d39cc[_0x574162(0x24f)](),setTimeout(()=>{const _0x1dbc6d=_0x574162;_0x7d39cc[_0x1dbc6d(0x21d)](_0x2e5b93),_0x7d39cc[_0x1dbc6d(0x276)]();},0xbb8);},_0x55a249=yield _0x3d3ecb[_0x39bc77(0x1f6)]();_0x3d3ecb[_0x39bc77(0x1f9)]!==0xc8?_0x10e0b9(_0x39bc77(0x234)+_0x593a3a,_0x39bc77(0x264)):_0x55a249['statusCode']['match'](/Good/)?(_0x402816[_0x39bc77(0x1ee)](_0x55a249['nodeAddressString']),_0x402816[_0x39bc77(0x1f8)]('change'),_0x10e0b9('Good','ok')):(_0x402816[_0x39bc77(0x1ee)](''+_0x593a3a),_0x10e0b9(_0x55a249['statusCode']+'\x20'+_0x3d3ecb[_0x39bc77(0x1c4)],_0x39bc77(0x264)));});function _0xcf7454(_0x2e0a01,_0xd7582b){return _0x2b9811(this,void 0x0,void 0x0,function*(){const _0x4c3fa4=_0x2656,_0x42ac75=_0x2e0a01[_0x4c3fa4(0x1fa)]('value'),_0x41075d=yield _0x5bfd45(_0xd7582b,_0x42ac75,_0x484942),_0x54c735=yield _0x5bfd45(_0xd7582b,_0x42ac75,_0x5581f2);return{'references':[..._0x41075d[_0x4c3fa4(0x22b)],..._0x54c735[_0x4c3fa4(0x22b)]]};});}const _0x22e43d={'referenceTypeId':_0x1721ba('HasSubtype'),'includeSubtypes':!![],'browseDirection':_0x1a510f['Forward'],'nodeClassMask':_0x345c48[_0x4d551d(0x1f1)]|_0x345c48[_0x4d551d(0x27f)]|_0x345c48['DataType']|_0x345c48[_0x4d551d(0x217)],'resultMask':0x3f};function _0x467599(_0x2ba37a,_0x3bee5a){return _0x2b9811(this,void 0x0,void 0x0,function*(){const _0x2ea41d=_0x2656,_0x44533f=_0x2ba37a[_0x2ea41d(0x1fa)](_0x2ea41d(0x1cf)),_0x533e6f=yield _0x5bfd45(_0x3bee5a,_0x44533f,_0x22e43d);return _0x533e6f;});}const _0x357109=_0x4abe1d=>{const _0x4ec3ef=_0x4d551d;var _0x242413,_0x2057a9;if(!_0x4abe1d){const _0x491bcc=$(_0x4ec3ef(0x26f));return _0x491bcc;}const _0x3cfcf4=_0x4abe1d[_0x4ec3ef(0x266)][_0x4ec3ef(0x1d6)](),_0x5d1ccf=((_0x242413=_0x4abe1d[_0x4ec3ef(0x282)])===null||_0x242413===void 0x0?void 0x0:_0x242413['text'])||((_0x2057a9=_0x4abe1d['browseName'])===null||_0x2057a9===void 0x0?void 0x0:_0x2057a9[_0x4ec3ef(0x1d5)])||_0x4abe1d[_0x4ec3ef(0x266)][_0x4ec3ef(0x1d6)](),{icon:_0x52dc76,color:_0x464433}=_0xd2e13c(_0x4abe1d),_0x19a38d=$('<li><i\x20class=\x22fa\x20'+_0x52dc76+'\x22\x20style=\x22color:'+_0x464433+_0x4ec3ef(0x210)+_0x5d1ccf+'<ul></ul></li>');return _0x19a38d['addClass'](_0x4ec3ef(0x1fb)),_0x19a38d[_0x4ec3ef(0x1fa)](_0x4ec3ef(0x1cf),_0x3cfcf4),_0x19a38d[_0x4ec3ef(0x1fa)](_0x4ec3ef(0x275),_0x4abe1d),_0x19a38d;},_0x502a86=()=>{const _0x18d638=_0x4d551d;$['widget'](_0x18d638(0x280),{'options':{'endpointNode':()=>({'endpoint':_0x18d638(0x1b8)}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':_0x18d638(0x263)},'nodeClass':'Object','nodeId':_0x18d638(0x1e0),'displayName':{'text':'Objects'},'typeDefinition':_0x35f175}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x2b9811(this,void 0x0,void 0x0,function*(){const _0x3bf7fd=_0x2656,_0x569b45=this,_0x11e051=typeof _0x569b45[_0x3bf7fd(0x1c5)][_0x3bf7fd(0x25f)]==='function'?_0x569b45[_0x3bf7fd(0x1c5)][_0x3bf7fd(0x25f)]():_0x569b45[_0x3bf7fd(0x1c5)][_0x3bf7fd(0x25f)];if(_0x11e051 instanceof Promise)return yield _0x11e051;return _0x11e051;});},'reset'(){const _0x203349=_0x18d638,_0x40ab1c=this;_0x40ab1c[_0x203349(0x26b)][_0x203349(0x1b9)](),this[_0x203349(0x1eb)]()['then'](_0x1a7d1a=>{const _0x462bd4=_0x203349,_0x24ca47=_0x357109(_0x1a7d1a);_0x40ab1c['$tree']['append'](_0x24ca47),_0x40ab1c[_0x462bd4(0x202)]=_0x1a7d1a;});},'verify'(){const _0x55e5e8=_0x18d638,_0x59d44e=this,_0x5cdf51={'baseUrl':_0x59d44e[_0x55e5e8(0x1c5)][_0x55e5e8(0x1ff)],'endpointNode':typeof _0x59d44e[_0x55e5e8(0x1c5)]['endpointNode']==='function'?_0x59d44e[_0x55e5e8(0x1c5)]['endpointNode']():_0x59d44e[_0x55e5e8(0x1c5)][_0x55e5e8(0x200)],'endpoint':typeof _0x59d44e[_0x55e5e8(0x1c5)][_0x55e5e8(0x26c)]===_0x55e5e8(0x1f5)?_0x59d44e[_0x55e5e8(0x1c5)][_0x55e5e8(0x26c)]():_0x59d44e[_0x55e5e8(0x1c5)][_0x55e5e8(0x26c)]};_0x4d8be1(_0x5cdf51,_0x59d44e[_0x55e5e8(0x1ea)],_0x59d44e[_0x55e5e8(0x26a)]);},'_create'(){const _0x25ba1c=_0x18d638,_0x4ac02c=this;function _0x799814(_0x46523b,_0x39773c,_0x5350b0){return _0x2b9811(this,void 0x0,void 0x0,function*(){const _0x593c0=_0x2656;if(_0x46523b[_0x593c0(0x21f)]('fetched')){console[_0x593c0(0x1bb)](_0x593c0(0x20b));return;}if(_0x46523b[_0x593c0(0x21f)](_0x593c0(0x204))){console[_0x593c0(0x1bb)](_0x593c0(0x249));return;}_0x46523b[_0x593c0(0x1b7)]('loading'),_0x46523b['append'](_0x593c0(0x278));try{_0x46523b[_0x593c0(0x1e2)]('ul')['empty']();const {references:_0x501ab4}=yield _0x39773c(_0x46523b,_0x5350b0);for(const _0x5295fd of _0x501ab4){if(_0x4ac02c['options'][_0x593c0(0x265)]&&!_0x4ac02c[_0x593c0(0x1c5)][_0x593c0(0x265)](_0x5295fd))continue;const _0xea9d37=_0x357109(_0x5295fd);_0x46523b[_0x593c0(0x1e2)]('ul')[_0x593c0(0x274)](_0xea9d37);}_0x46523b[_0x593c0(0x1b7)](_0x593c0(0x1c1));}catch(_0x108683){_0x46523b[_0x593c0(0x1e2)]('ul')[_0x593c0(0x274)](_0x593c0(0x1e8)+_0x108683[_0x593c0(0x27a)]+_0x593c0(0x270)),console['log'](_0x593c0(0x20e),_0x108683);}_0x46523b[_0x593c0(0x1c8)](_0x593c0(0x247))['remove'](),_0x46523b['removeClass']('loading');});}_0x4ac02c[_0x25ba1c(0x1ea)]=this[_0x25ba1c(0x21a)],_0x4ac02c[_0x25ba1c(0x269)]=$(_0x25ba1c(0x256)),_0x4ac02c[_0x25ba1c(0x269)]['addClass'](_0x25ba1c(0x258)),this[_0x25ba1c(0x21a)][_0x25ba1c(0x1bd)](_0x4ac02c[_0x25ba1c(0x269)]),_0x4ac02c['$inputGroup']=$(_0x25ba1c(0x256))[_0x25ba1c(0x1b7)](_0x25ba1c(0x22d)),_0x4ac02c[_0x25ba1c(0x269)][_0x25ba1c(0x274)](_0x4ac02c['$inputGroup']),_0x4ac02c['$inputGroup'][_0x25ba1c(0x274)](_0x4ac02c[_0x25ba1c(0x1ea)]),_0x4ac02c[_0x25ba1c(0x207)]=$('<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>'),_0x4ac02c[_0x25ba1c(0x251)][_0x25ba1c(0x274)](_0x4ac02c[_0x25ba1c(0x207)]),_0x4ac02c[_0x25ba1c(0x207)]['on'](_0x25ba1c(0x26d),function(){const _0x4579e8=_0x25ba1c;!_0x4ac02c['$dropdown']['is'](':visible')&&(_0x4ac02c[_0x4579e8(0x1eb)]()[_0x4579e8(0x239)](_0x55327b=>{const _0x41f52d=_0x4579e8;var _0x3bd413;(_0x55327b!==_0x4ac02c[_0x41f52d(0x202)]||((_0x3bd413=_0x4ac02c[_0x41f52d(0x202)])===null||_0x3bd413===void 0x0?void 0x0:_0x3bd413[_0x41f52d(0x266)])!==_0x55327b[_0x41f52d(0x266)])&&_0x4ac02c[_0x41f52d(0x20c)]();}),_0x4ac02c[_0x4579e8(0x26a)][_0x4579e8(0x276)]()),_0x4ac02c[_0x4579e8(0x235)][_0x4579e8(0x1ef)]();}),_0x4ac02c['$verifyBtn']=$(_0x25ba1c(0x279)),_0x4ac02c[_0x25ba1c(0x251)][_0x25ba1c(0x274)](_0x4ac02c[_0x25ba1c(0x245)]),_0x4ac02c[_0x25ba1c(0x245)]['on'](_0x25ba1c(0x26d),()=>{this['verify']();}),!_0x4ac02c[_0x25ba1c(0x1ea)][_0x25ba1c(0x218)]('placeholder')&&_0x4ac02c[_0x25ba1c(0x1ea)][_0x25ba1c(0x218)]('placeholder','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20'),_0x4ac02c['$info']=$(_0x25ba1c(0x283)),_0x4ac02c[_0x25ba1c(0x26a)][_0x25ba1c(0x276)](),{'baseUrl':_0x4ac02c[_0x25ba1c(0x1c5)][_0x25ba1c(0x1ff)],'endpointNode':typeof _0x4ac02c[_0x25ba1c(0x1c5)][_0x25ba1c(0x200)]==='function'?_0x4ac02c[_0x25ba1c(0x1c5)][_0x25ba1c(0x200)]():_0x4ac02c[_0x25ba1c(0x1c5)][_0x25ba1c(0x200)],'endpoint':typeof _0x4ac02c[_0x25ba1c(0x1c5)][_0x25ba1c(0x26c)]==='function'?_0x4ac02c[_0x25ba1c(0x1c5)][_0x25ba1c(0x26c)]():_0x4ac02c[_0x25ba1c(0x1c5)][_0x25ba1c(0x26c)]},_0x4ac02c['$dropdown']=$(_0x25ba1c(0x256))[_0x25ba1c(0x1b7)]('sterfive-dropdown')['hide'](),_0x4ac02c[_0x25ba1c(0x269)][_0x25ba1c(0x274)](_0x4ac02c[_0x25ba1c(0x26a)]),_0x4ac02c[_0x25ba1c(0x269)]['append'](_0x4ac02c['$dropdown']),_0x4ac02c['$tree']=$('<ul\x20class=\x22sterfive-tree\x22></ul>')[_0x25ba1c(0x22c)](_0x4ac02c[_0x25ba1c(0x235)]),this[_0x25ba1c(0x20c)](),_0x4ac02c[_0x25ba1c(0x26b)]['on']('click','li',function(_0x1890e0){const _0x4634a1=_0x25ba1c;var _0x49c688,_0x2485a9;_0x1890e0[_0x4634a1(0x273)]();let _0x9a0b94=$(this);const _0x4046fc=0x14,_0x3e7dfe=0x14,_0x1e5c0f=$(this)['offset'](),_0x506305=_0x1890e0;if(_0x506305['pageX']>=_0x1e5c0f[_0x4634a1(0x232)]&&_0x506305['pageX']<=_0x1e5c0f[_0x4634a1(0x232)]+_0x4046fc&&_0x506305[_0x4634a1(0x23e)]>=_0x1e5c0f['top']&&_0x506305[_0x4634a1(0x23e)]<=_0x1e5c0f['top']+_0x3e7dfe){if(_0x9a0b94[_0x4634a1(0x21f)](_0x4634a1(0x1fb))){if(_0x9a0b94[_0x4634a1(0x21f)]('fetched')){_0x9a0b94[_0x4634a1(0x21d)](_0x4634a1(0x1fb))[_0x4634a1(0x1b7)](_0x4634a1(0x255)),_0x9a0b94[_0x4634a1(0x1e2)]('ul')[_0x4634a1(0x1ef)]();return;}const _0x1ae765={'baseUrl':_0x4ac02c[_0x4634a1(0x1c5)][_0x4634a1(0x1ff)],'endpointNode':typeof _0x4ac02c[_0x4634a1(0x1c5)]['endpointNode']===_0x4634a1(0x1f5)?_0x4ac02c['options']['endpointNode']():_0x4ac02c[_0x4634a1(0x1c5)]['endpointNode'],'endpoint':typeof _0x4ac02c['options'][_0x4634a1(0x26c)]===_0x4634a1(0x1f5)?_0x4ac02c[_0x4634a1(0x1c5)][_0x4634a1(0x26c)]():_0x4ac02c[_0x4634a1(0x1c5)][_0x4634a1(0x26c)]},_0x53303d=!_0x4ac02c[_0x4634a1(0x1c5)][_0x4634a1(0x257)]?_0xcf7454:_0x467599;_0x799814(_0x9a0b94,_0x53303d,_0x1ae765)[_0x4634a1(0x239)](()=>{const _0x3e0305=_0x4634a1;console['log'](_0x3e0305(0x201)),console[_0x3e0305(0x1bb)]('fetched'),_0x9a0b94[_0x3e0305(0x21d)]('expandable')[_0x3e0305(0x1b7)](_0x3e0305(0x255));})['catch'](_0x1ec241=>{const _0xfe9ad6=_0x4634a1;_0x9a0b94[_0xfe9ad6(0x21d)](_0xfe9ad6(0x1fb))[_0xfe9ad6(0x1b7)](_0xfe9ad6(0x255)),console['log'](_0xfe9ad6(0x260),_0x1ec241);});}else{if(_0x9a0b94[_0x4634a1(0x21f)]('expanded'))_0x9a0b94['children']('ul')[_0x4634a1(0x1ef)](),_0x9a0b94[_0x4634a1(0x216)](_0x4634a1(0x24c));else{if(_0x9a0b94[_0x4634a1(0x1e2)]('ul')['children']()[_0x4634a1(0x240)]>0x0)_0x9a0b94[_0x4634a1(0x1e2)]('ul')[_0x4634a1(0x1ef)](),_0x9a0b94['toggleClass']('expandable\x20expanded');else;}}}else{const _0x36c394=_0x9a0b94[_0x4634a1(0x1fa)]('value'),_0x9dea49=_0x9a0b94[_0x4634a1(0x1fa)](_0x4634a1(0x275));if(_0x4ac02c[_0x4634a1(0x1c5)][_0x4634a1(0x1dc)]&&!_0x4ac02c[_0x4634a1(0x1c5)][_0x4634a1(0x1dc)](_0x9dea49))return;_0x4ac02c[_0x4634a1(0x1ea)][_0x4634a1(0x1fa)](_0x4634a1(0x275),_0x9dea49);const _0x346391=((_0x49c688=_0x9dea49[_0x4634a1(0x282)])===null||_0x49c688===void 0x0?void 0x0:_0x49c688[_0x4634a1(0x254)])||((_0x2485a9=_0x9dea49['browseName'])===null||_0x2485a9===void 0x0?void 0x0:_0x2485a9[_0x4634a1(0x1d5)])||_0x9dea49[_0x4634a1(0x266)][_0x4634a1(0x1d6)](),_0x5b0561='['+_0x346391+']('+_0x36c394+')';_0x4ac02c[_0x4634a1(0x1ea)][_0x4634a1(0x1ee)](_0x5b0561),_0x4ac02c['$input'][_0x4634a1(0x1f8)]('change'),_0x4ac02c[_0x4634a1(0x235)][_0x4634a1(0x276)]();}}),$(document)['on'](_0x25ba1c(0x26d),function(_0x5879b3){const _0x3f8d25=_0x25ba1c;!$(_0x5879b3[_0x3f8d25(0x228)])[_0x3f8d25(0x23d)](_0x4ac02c[_0x3f8d25(0x269)])[_0x3f8d25(0x240)]&&_0x4ac02c[_0x3f8d25(0x235)][_0x3f8d25(0x276)]();});}});},_0x221b7e=({endpointNode:_0x2f3d7c,endpoint:_0x3d2b7b,baseUrl:_0x4b10c9},_0x3d4793)=>_0x2b9811(void 0x0,void 0x0,void 0x0,function*(){const _0x41fd61=_0x4d551d,_0x3db158=_0x4b10c9+_0x41fd61(0x1e1),_0x22eca3=_0x3db158+_0x41fd61(0x1ca),_0x44b53e=yield fetch(_0x22eca3,{'method':_0x41fd61(0x1c7),'body':JSON[_0x41fd61(0x1e7)]({'endpointNode':_0x2f3d7c,'endpoint':_0x3d2b7b,'nodeId':_0x3d4793}),'headers':{'Content-Type':_0x41fd61(0x1f2)}});if(_0x44b53e[_0x41fd61(0x1f9)]!==0xc8){console[_0x41fd61(0x1bb)]('fetching\x20failed\x20with\x20error',_0x44b53e[_0x41fd61(0x1f9)],_0x44b53e[_0x41fd61(0x1c4)]);const _0x7de22e={'statusCode':_0x41fd61(0x22a),'nodeAddressString':_0x3d4793};return _0x7de22e;}console['log'](_0x41fd61(0x243),_0x44b53e[_0x41fd61(0x1f9)],_0x44b53e[_0x41fd61(0x1c4)]);const _0x4b4ec5=yield _0x44b53e[_0x41fd61(0x1f6)]();return _0x4b4ec5;});function _0x367576(_0x25e320,_0x33c701,_0x1d6907,_0xa2a3c9){const _0x394985=_0x4d551d,_0x118e2b=$('#'+_0x25e320+_0x394985(0x208)),_0x5b3414=$('#'+_0x25e320+'-failure'),_0x50d8d7=$('#'+_0x25e320+_0x394985(0x272)),_0x2aa606=$('#'+_0x25e320+'-messages');let _0x4faa38=![];_0x118e2b[_0x394985(0x276)](),_0x5b3414['hide'](),_0x50d8d7[_0x394985(0x276)](),_0x33c701['on']('click',()=>{const _0x4cbd72=_0x394985;if(_0x4faa38)return;_0x4faa38=!![],_0x50d8d7[_0x4cbd72(0x21d)]('hide'),_0x50d8d7['html'](_0x4cbd72(0x203)),_0x118e2b[_0x4cbd72(0x1b7)](_0x4cbd72(0x276)),_0x5b3414['addClass']('hide'),_0x2aa606[_0x4cbd72(0x1d2)]('');const {body:_0x1e4a38,url:_0x2a7e75}=_0x1d6907();fetch(_0x2a7e75,{'method':'POST','headers':{'Content-Type':_0x4cbd72(0x1f2)},'body':JSON[_0x4cbd72(0x1e7)](_0x1e4a38)})[_0x4cbd72(0x239)](_0x36c454=>_0x36c454[_0x4cbd72(0x1f6)]())[_0x4cbd72(0x239)](_0x7c0f18=>{const _0x21e542=_0x4cbd72;_0x4faa38=![],_0x50d8d7['hide'](),console[_0x21e542(0x1bb)](JSON[_0x21e542(0x1e7)](_0x7c0f18,null,'\x20'));if(_0x7c0f18['result']==='ok')_0x118e2b[_0x21e542(0x21d)](_0x21e542(0x276)),_0x5b3414[_0x21e542(0x1b7)](_0x21e542(0x276)),_0x2aa606[_0x21e542(0x1d2)](_0x7c0f18[_0x21e542(0x27a)][_0x21e542(0x267)]('\x0a',_0x21e542(0x1fc))),_0xa2a3c9(null,_0x7c0f18);else{const _0x2e7ce8=_0x4fa015=>!_0x4fa015?'':_0x4fa015[_0x21e542(0x1df)]('\x0a')[_0x21e542(0x20f)](_0x3fcaea=>_0x21e542(0x24d)+_0x3fcaea+_0x21e542(0x221))[_0x21e542(0x224)]('\x0a'),_0x4ea5d6=_0x5929be=>Array[_0x21e542(0x209)](_0x5929be)?_0x5929be[_0x21e542(0x20f)](_0x2e7ce8)[_0x21e542(0x224)]('\x0a'):_0x2e7ce8(_0x5929be);_0x118e2b[_0x21e542(0x1b7)](_0x21e542(0x276)),_0x5b3414[_0x21e542(0x21d)]('hide'),_0x2aa606[_0x21e542(0x1d2)](_0x4ea5d6(_0x7c0f18[_0x21e542(0x27a)])+_0x4ea5d6(_0x7c0f18[_0x21e542(0x223)])),_0xa2a3c9(new Error(_0x7c0f18[_0x21e542(0x281)]),_0x7c0f18);}})[_0x4cbd72(0x21c)](_0x20ea74=>{const _0x40282b=_0x4cbd72;_0x4faa38=![],_0x50d8d7['addClass'](_0x40282b(0x276)),_0x118e2b[_0x40282b(0x1b7)](_0x40282b(0x276)),_0x5b3414[_0x40282b(0x21d)](_0x40282b(0x276)),_0x2aa606[_0x40282b(0x1d2)](_0x40282b(0x1de)+_0x20ea74[_0x40282b(0x27a)]),console[_0x40282b(0x1bb)](_0x40282b(0x20e),_0x20ea74),_0xa2a3c9(_0x20ea74,null);});});}const _0x50f3a3=()=>{const _0x406d13=_0x4d551d,_0x321240=$('#node-input-endpoint'),_0x45ed3d=_0x321240['val'](),_0x4c4653=RED[_0x406d13(0x205)][_0x406d13(0x24b)](_0x45ed3d);if(!_0x4c4653)return undefined;const {endpoint:_0x358a9d,securityMode:_0x2ffe04,securityPolicy:_0x23857a,userIdentityType:_0x2c7ac0,userName:_0x205968,password:_0x3a2239,userCertificate:_0x544746,userPrivatekey:_0x289685}=_0x4c4653;return{'endpoint':_0x358a9d,'securityMode':_0x2ffe04,'securityPolicy':_0x23857a,'userIdentityType':_0x2c7ac0,'userName':_0x205968,'password':_0x3a2239,'userCertificate':_0x544746,'userPrivatekey':_0x289685};},_0x34370e=()=>{return{'endpointNode':_0x57e3a6};},_0x57e3a6=()=>{const _0x100e84=_0x4d551d,_0x34a72a=$(_0x100e84(0x1ce)),_0x167202=_0x34a72a[_0x100e84(0x1ee)](),_0x203be1=_0x50f3a3();if(!_0x203be1)return undefined;return{'id':_0x167202,'endpoint':_0x203be1[_0x100e84(0x26c)],'securityMode':_0x203be1[_0x100e84(0x22f)],'securityPolicy':_0x203be1[_0x100e84(0x23c)],'userIdentityType':_0x203be1[_0x100e84(0x1cb)],'userName':_0x203be1[_0x100e84(0x1cb)]===_0x100e84(0x225)?_0x203be1[_0x100e84(0x1c6)]:undefined,'password':_0x203be1['userIdentityType']===_0x100e84(0x225)?_0x203be1['password']:undefined,'userCertificate':_0x203be1[_0x100e84(0x1c0)],'userPrivatekey':_0x203be1[_0x100e84(0x1d8)]};};RED[_0x4d551d(0x205)][_0x4d551d(0x25e)](_0x4d551d(0x1c2),{'category':_0x4d551d(0x27c),'color':_0x4d551d(0x20d),'align':_0x4d551d(0x1d7),'icon':_0x4d551d(0x261),'paletteLabel':'call','defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':'OpcUa-Endpoint2'},'action':{'value':_0x4d551d(0x1b6),'required':!![]},'methodId':{'value':'','required':!![]},'objectId':{'value':'','required':!![]}},'outputs':0x2,'label'(){const _0x2985f1=_0x4d551d;return this['name']||_0x2985f1(0x1be);},'labelStyle'(){return this['name']?'node_label_italic':'';},'oneditprepare'(){const _0x2729a6=_0x4d551d,_0x47823a=this;_0x502a86(),_0x47823a['inputs']=0x1;let _0x5cea46={};console[_0x2729a6(0x1bb)](_0x2729a6(0x1f0));const _0x400283=$(_0x2729a6(0x219)),_0x3fcefb=$('#node-input-methodId'),_0x4996ba=$(_0x2729a6(0x1bc)),_0x1e2014=$('#method-output-argument-definition'),_0x5edd68=$(_0x2729a6(0x27d));_0x400283[_0x2729a6(0x268)](Object['assign'](Object['assign']({},_0x34370e()),{'filter'(_0x5323b8){const _0x1a3128=_0x2729a6;return _0x5323b8[_0x1a3128(0x226)]===_0x1a3128(0x1e9);}})),_0x3fcefb[_0x2729a6(0x268)](Object['assign'](Object[_0x2729a6(0x1ed)]({},_0x34370e()),{'parentNode':()=>_0x2b9811(this,void 0x0,void 0x0,function*(){const _0x3ee9be=_0x2729a6;let _0x3060b0=_0x400283[_0x3ee9be(0x1fa)](_0x3ee9be(0x275));if(!_0x3060b0){const _0x29c0bc=_0x400283[_0x3ee9be(0x1ee)](),_0x4fe998=_0x50f3a3();if(!_0x4fe998)return null;const _0x11fe22={'baseUrl':'','endpoint':'','endpointNode':_0x4fe998};try{const _0x107a30=yield _0x221b7e(_0x11fe22,_0x29c0bc);_0x3060b0=_0x107a30[_0x3ee9be(0x275)];}catch(_0x4892fe){console[_0x3ee9be(0x1bb)](_0x4892fe);}}return _0x3060b0;}),'filter'(_0x331b62){const _0x1cc0de=_0x2729a6;return _0x331b62['nodeClass']==='Method'||_0x331b62[_0x1cc0de(0x226)]===_0x1cc0de(0x1e9);},'isSelectable'(_0x5bf13a){const _0x33b0ac=_0x2729a6;return _0x5bf13a[_0x33b0ac(0x226)]===_0x33b0ac(0x213);}})),_0x400283['on'](_0x2729a6(0x206),()=>{_0x3fcefb['nodeBrowser']('reset');}),console[_0x2729a6(0x1bb)](_0x2729a6(0x1f7));function _0x4e9942(_0x2330b5,_0x46a616,_0x5661d0){const _0x4d86fb=_0x2729a6,_0x5d3dd2=$(_0x4d86fb(0x237))[_0x4d86fb(0x22c)](_0x2330b5);$(_0x4d86fb(0x227))[_0x4d86fb(0x1ee)](_0x5661d0[_0x4d86fb(0x1d5)]||'')[_0x4d86fb(0x230)]({'width':_0x4d86fb(0x211)})['appendTo'](_0x5d3dd2);const _0x292468=_0x5cea46[_0x5661d0[_0x4d86fb(0x241)]['toString']()],_0x3f1806=(_0x292468?_0x292468['browseName'][_0x4d86fb(0x1d5)]||'':_0x5661d0[_0x4d86fb(0x241)][_0x4d86fb(0x1d6)]())+(_0x5661d0['valueRank']===0x1?'[]':'');$(_0x4d86fb(0x227))['val'](_0x5661d0[_0x4d86fb(0x1bf)]['text']||'')['css']({'width':_0x4d86fb(0x236)})['appendTo'](_0x5d3dd2),$('<input\x20type=\x22text\x22>')[_0x4d86fb(0x1ee)](_0x3f1806||'')[_0x4d86fb(0x230)]({'width':_0x4d86fb(0x236)})[_0x4d86fb(0x22c)](_0x5d3dd2);}_0x4996ba[_0x2729a6(0x1da)]({'addButton':![],'height':_0x2729a6(0x250),'scrollOnAdd':![],'addItem'(_0x4b4aeb,_0x28136b,_0x2c9a09){_0x4e9942(_0x4b4aeb,_0x28136b,_0x2c9a09);}}),_0x1e2014['editableList']({'addButton':![],'height':_0x2729a6(0x250),'scrollOnAdd':![],'addItem'(_0x222c1f,_0x2990e5,_0x4f8e0e){_0x4e9942(_0x222c1f,_0x2990e5,_0x4f8e0e);}});function _0x29f6d7(_0x207b32,_0x559a05){const _0x1e6abf=_0x2729a6;console[_0x1e6abf(0x1bb)](_0x1e6abf(0x277),_0x559a05[_0x1e6abf(0x240)],_0x1e6abf(0x242),_0x559a05),_0x207b32[_0x1e6abf(0x1da)](_0x1e6abf(0x1b9));for(let _0x422a80=0x0;_0x422a80<_0x559a05[_0x1e6abf(0x240)];_0x422a80++){_0x207b32['editableList']('addItem',_0x559a05[_0x422a80]);}}_0x4996ba[_0x2729a6(0x276)](),_0x1e2014[_0x2729a6(0x276)](),_0x367576(_0x2729a6(0x23f),_0x5edd68,()=>({'url':_0x2729a6(0x259),'body':{'endpointNode':_0x57e3a6(),'objectId':_0x400283[_0x2729a6(0x1ee)](),'methodId':_0x3fcefb[_0x2729a6(0x1ee)]()}}),(_0x58bd20,_0x35b1ac)=>{const _0x56cbb6=_0x2729a6;if(_0x58bd20)return;const _0x24516e=_0x35b1ac['argumentDefinition'];_0x5cea46=_0x35b1ac[_0x56cbb6(0x262)],_0x4996ba[_0x56cbb6(0x24f)](),_0x1e2014[_0x56cbb6(0x24f)](),_0x29f6d7(_0x4996ba,_0x24516e['inputArguments']),_0x29f6d7(_0x1e2014,_0x24516e[_0x56cbb6(0x244)]),console[_0x56cbb6(0x1bb)](_0x56cbb6(0x1fa),_0x35b1ac);});},'oneditsave'(){}});}()));
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHgyYjk4MTEiLCJfMHgzYTMyOTUiLCJfMHgxMmY5MzEiLCJfMHgyMjIzZjgiLCJfMHg2ZjFhMzEiLCJfMHg2N2VjNjYiLCJfMHgxM2RiZDMiLCJfMHg0YmU1NTgiLCJQcm9taXNlIiwiXzB4MThkZGQzIiwiXzB4YTM4OWYzIiwiXzB4NDNmZGE2IiwiXzB4MTU1Nzg2IiwiXzB4NTk3MWUwIiwiXzB4YjE4YmI3IiwiXzB4M2FlYjM2IiwiXzB4NTliMmVkIiwiXzB4MjRjOTFmIiwiXzB4MjVjNjUzIiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4ZjE1MmM0IiwiXzB4MzRjOGQ4IiwiXzB4Mzc3ZjRiIiwiXzB4MmEwYTEwIiwiRXJyb3IiLCJfMHgxMGYxY2UiLCJfMHgzNWYxNzUiLCJfMHgzMWU0ZTgiLCJfMHgxMWMwZmMiLCJfMHg2YzQ4MWQiLCJfMHhjYjhkNzEiLCJfMHgxMDYxODYiLCJfMHgxYTUxMGYiLCJfMHgyZmE2OWQiLCJfMHgzNDVjNDgiLCJfMHgxMjI0NDYiLCJfMHhlM2EzYSIsIl8weDFlYTgyMyIsIl8weDdmMjMzZiIsIl8weDEwZDhiZiIsIl8weDE3MjFiYSIsIl8weDM2MWJhNCIsIl8weGQyZTEzYyIsIl8weDNiZDU2MiIsIl8weDViZmQ0NSIsImVuZHBvaW50Tm9kZSIsIl8weDE5ZTMxOSIsImVuZHBvaW50IiwiXzB4NDZhMGYxIiwiYmFzZVVybCIsIl8weDM1OGZkYyIsIl8weDQ4NjhkMiIsIl8weGMzMDQyNyIsIl8weDRiZjg5MiIsIl8weDViZWM2MiIsIl8weDMwZDE4ZCIsIk9iamVjdCIsIl8weDM0Y2IxNCIsImZldGNoIiwiSlNPTiIsImNvbnNvbGUiLCJfMHgyMWFlYTMiLCJfMHg0ZDI5M2YiLCJfMHg0ODQ5NDIiLCJfMHg1NTgxZjIiLCJfMHg0ZDhiZTEiLCJfMHg1YmU3YzIiLCJfMHg1NmEyZmUiLCJfMHgxZWQyNjciLCJfMHg0MDI4MTYiLCJfMHg3ZDM5Y2MiLCJfMHg1YzE0M2EiLCJfMHg1OTNhM2EiLCJfMHgzZDNlY2IiLCJfMHgxMGUwYjkiLCJfMHg0ZjgyZDkiLCJfMHgyZTViOTMiLCJzZXRUaW1lb3V0IiwiXzB4NTVhMjQ5IiwiXzB4Y2Y3NDU0IiwiXzB4MmUwYTAxIiwiXzB4ZDc1ODJiIiwiXzB4NDJhYzc1IiwiXzB4NDEwNzVkIiwiXzB4NTRjNzM1IiwiXzB4MjJlNDNkIiwiXzB4NDY3NTk5IiwiXzB4MmJhMzdhIiwiXzB4M2JlZTVhIiwiXzB4NDQ1MzNmIiwiXzB4NTMzZTZmIiwiXzB4MzU3MTA5IiwiXzB4NGFiZTFkIiwiXzB4MjQyNDEzIiwiXzB4MjA1N2E5IiwiXzB4NDkxYmNjIiwiJCIsIl8weDNjZmNmNCIsIl8weDVkMWNjZiIsImljb24iLCJfMHg1MmRjNzYiLCJjb2xvciIsIl8weDQ2NDQzMyIsIl8weDE5YTM4ZCIsIl8weDUwMmE4NiIsInVuZGVmaW5lZCIsIl8weDU2OWI0NSIsIl8weDExZTA1MSIsIl8weDQwYWIxYyIsIl8weDFhN2QxYSIsIl8weDI0Y2E0NyIsIl8weDU5ZDQ0ZSIsIl8weDVjZGY1MSIsIl8weDRhYzAyYyIsIl8weDc5OTgxNCIsIl8weDQ2NTIzYiIsIl8weDM5NzczYyIsIl8weDUzNTBiMCIsInJlZmVyZW5jZXMiLCJfMHg1MDFhYjQiLCJfMHg1Mjk1ZmQiLCJfMHhlYTlkMzciLCJfMHgxMDg2ODMiLCJfMHg1NTMyN2IiLCJfMHgzYmQ0MTMiLCJfMHgxODkwZTAiLCJfMHg0OWM2ODgiLCJfMHgyNDg1YTkiLCJfMHg5YTBiOTQiLCJfMHg0MDQ2ZmMiLCJfMHgzZTdkZmUiLCJfMHgxZTVjMGYiLCJfMHg1MDYzMDUiLCJfMHgxYWU3NjUiLCJfMHg1MzMwM2QiLCJfMHgxZWMyNDEiLCJfMHgzNmMzOTQiLCJfMHg5ZGVhNDkiLCJfMHgzNDYzOTEiLCJfMHg1YjA1NjEiLCJkb2N1bWVudCIsIl8weDU4NzliMyIsIl8weDIyMWI3ZSIsIl8weDJmM2Q3YyIsIl8weDNkMmI3YiIsIl8weDRiMTBjOSIsIl8weDNkNDc5MyIsIl8weDNkYjE1OCIsIl8weDIyZWNhMyIsIl8weDQ0YjUzZSIsIl8weDdkZTIyZSIsIl8weDRiNGVjNSIsIl8weDM2NzU3NiIsIl8weDI1ZTMyMCIsIl8weDMzYzcwMSIsIl8weDFkNjkwNyIsIl8weGEyYTNjOSIsIl8weDExOGUyYiIsIl8weDViMzQxNCIsIl8weDUwZDhkNyIsIl8weDJhYTYwNiIsIl8weDRmYWEzOCIsImJvZHkiLCJfMHgxZTRhMzgiLCJ1cmwiLCJfMHgyYTdlNzUiLCJfMHgzNmM0NTQiLCJfMHg3YzBmMTgiLCJfMHgyZTdjZTgiLCJfMHg0ZmEwMTUiLCJfMHgzZmNhZWEiLCJfMHg0ZWE1ZDYiLCJfMHg1OTI5YmUiLCJBcnJheSIsIl8weDIwZWE3NCIsIl8weDUwZjNhMyIsIl8weDMyMTI0MCIsIl8weDQ1ZWQzZCIsIl8weDRjNDY1MyIsIlJFRCIsIl8weDM1OGE5ZCIsInNlY3VyaXR5TW9kZSIsIl8weDJmZmUwNCIsInNlY3VyaXR5UG9saWN5IiwiXzB4MjM4NTdhIiwidXNlcklkZW50aXR5VHlwZSIsIl8weDJjN2FjMCIsInVzZXJOYW1lIiwiXzB4MjA1OTY4IiwicGFzc3dvcmQiLCJfMHgzYTIyMzkiLCJ1c2VyQ2VydGlmaWNhdGUiLCJfMHg1NDQ3NDYiLCJ1c2VyUHJpdmF0ZWtleSIsIl8weDI4OTY4NSIsIl8weDM0MzcwZSIsIl8weDU3ZTNhNiIsIl8weDM0YTcyYSIsIl8weDE2NzIwMiIsIl8weDIwM2JlMSIsIl8weDQ3ODIzYSIsIl8weDVjZWE0NiIsIl8weDQwMDI4MyIsIl8weDNmY2VmYiIsIl8weDQ5OTZiYSIsIl8weDFlMjAxNCIsIl8weDVlZGQ2OCIsIl8weDUzMjNiOCIsIl8weDMwNjBiMCIsIl8weDI5YzBiYyIsIl8weDRmZTk5OCIsIl8weDExZmUyMiIsIl8weDEwN2EzMCIsIl8weDQ4OTJmZSIsIl8weDMzMWI2MiIsIl8weDViZjEzYSIsIl8weDRlOTk0MiIsIl8weDIzMzBiNSIsIl8weDQ2YTYxNiIsIl8weDU2NjFkMCIsIl8weDVkM2RkMiIsIl8weDI5MjQ2OCIsIl8weDNmMTgwNiIsIl8weDRiNGFlYiIsIl8weDI4MTM2YiIsIl8weDJjOWEwOSIsIl8weDIyMmMxZiIsIl8weDI5OTBlNSIsIl8weDRmOGUwZSIsIl8weDI5ZjZkNyIsIl8weDIwN2IzMiIsIl8weDU1OWEwNSIsIl8weDQyMmE4MCIsIl8weDU4YmQyMCIsIl8weDM1YjFhYyIsIl8weDI0NTE2ZSJdLCJtYXBwaW5ncyI6IjhwSEFBQSxDQUFDLFUsQ0FDRyxhLHdCQW1CQSxTQUFTQSxTQUFULENBQW1CQyxTQUFuQixDQUE0QkMsU0FBNUIsQ0FBd0NDLFNBQXhDLENBQTJDQyxTQUEzQyxDLENBQ0ksU0FBU0MsU0FBVCxDQUFlQyxTQUFmLEMsUUFBK0JBLFNBQUEsWUFBaUJILFNBQWpCLENBQXFCRyxTQUFyQixDQUE2QixJQUFJSCxTQUFKLENBQU0sU0FBVUksU0FBVixDLENBQXFCQSxTQUFBLENBQVFELFNBQVIsQyxFQUEzQixDLFNBQ3JELEdBQUssQ0FBQUgsU0FBQSxFQUFNLENBQUFBLFNBQUEsQ0FBSUssT0FBSixDQUFOLENBQUwsQ0FBeUIsU0FBVUMsU0FBVixDQUFtQkMsU0FBbkIsQyx5QkFDNUIsU0FBU0MsU0FBVCxDQUFtQkMsU0FBbkIsQyx5QkFBNEIsRyxDQUFNQyxTQUFBLENBQUtULFNBQUEsQyxnQkFBQSxFQUFlUSxTQUFmLENBQUwsQyxFQUErQixNQUFPRSxTQUFQLEMsQ0FBWUosU0FBQSxDQUFPSSxTQUFQLEMsR0FDN0UsU0FBU0MsU0FBVCxDQUFrQkMsU0FBbEIsQyx5QkFBMkIsRyxDQUFNSCxTQUFBLENBQUtULFNBQUEsQyxnQkFBQSxFQUFtQlksU0FBbkIsQ0FBTCxDLEVBQW1DLE1BQU9DLFNBQVAsQyxDQUFZUCxTQUFBLENBQU9PLFNBQVAsQyxHQUNoRixTQUFTSixTQUFULENBQWNLLFNBQWQsQyx5QkFBd0JBLFNBQUEsQyxnQkFBQSxFQUFjVCxTQUFBLENBQVFTLFNBQUEsQyxnQkFBQSxDQUFSLENBQWQsQ0FBc0NiLFNBQUEsQ0FBTWEsU0FBQSxDLGdCQUFBLENBQU4sRSxnQkFBQSxFQUF5QlAsU0FBekIsQ0FB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U0FBQSxDQUFnQkMsU0FBaEIsQ0FBN0IsQyxHQUdSNUIsU0FBQSxDLGdCQUFBLEcsQ0FDQUMsU0FBQSxDLGdCQUFBLEcsQ0FDQXJELFNBQUEsQyxnQkFBQSxDQUEwQnNELFNBQTFCLENBQXdDLEtBQU8sQyxLQUMzQyxDLGdCQUQyQyxDLE1BRTNDLENBQU0sQyxjQUNGLENBQWNWLFNBQUEsRUFEWixDLFVBRUYsQ0FBVU0sU0FBQSxDLGdCQUFBLEdBRlIsQyxVQUdGLENBQVVDLFNBQUEsQyxnQkFBQSxHQUhSLENBRnFDLENBQVAsQ0FBeEMsQ0FPSSxDQUFDOEIsU0FBRCxDQUFNQyxTQUFOLEcsOEJBQ0lELFMsQ0FDQSxPQUdKLE1BQU1FLFNBQUEsQ0FBcUJELFNBQUEsQyxvQkFBQSxDQUEzQixDQUNBakMsU0FBQSxDQUFZaUMsU0FBQSxDLGdCQUFBLEMsQ0FDWjlCLFNBQUEsQyxnQkFBQSxHLENBQ0FDLFNBQUEsQyxnQkFBQSxHLENBQ0F3QixTQUFBLENBQW9CekIsU0FBcEIsQ0FBOEMrQixTQUFBLEMsZ0JBQUEsQ0FBOUMsQyxDQUNBTixTQUFBLENBQW9CeEIsU0FBcEIsQ0FBK0M4QixTQUFBLEMsZ0JBQUEsQ0FBL0MsQyxDQUNBL0ssT0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FBb0I4SyxTQUFwQixDLEVBbEJKLEMsRUFuSHFDLEMsWUF3SXpDLEUsRUF4SXlDLENBQTdDLEMsRUFqbEJKLEciLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gKCkge1xuICAgICd1c2Ugc3RyaWN0JztcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuICAgIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLlxyXG5cclxuICAgIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueVxyXG4gICAgcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLlxyXG5cclxuICAgIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEhcclxuICAgIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWVxyXG4gICAgQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgU1BFQ0lBTCwgRElSRUNULFxyXG4gICAgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NXHJcbiAgICBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUlxyXG4gICAgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUlxyXG4gICAgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS5cclxuICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXHJcbiAgICAvKiBnbG9iYWwgUmVmbGVjdCwgUHJvbWlzZSwgU3VwcHJlc3NlZEVycm9yLCBTeW1ib2wgKi9cclxuXHJcblxyXG4gICAgZnVuY3Rpb24gX19hd2FpdGVyKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xyXG4gICAgICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxyXG4gICAgICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xyXG4gICAgICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxyXG4gICAgICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdHlwZW9mIFN1cHByZXNzZWRFcnJvciA9PT0gXCJmdW5jdGlvblwiID8gU3VwcHJlc3NlZEVycm9yIDogZnVuY3Rpb24gKGVycm9yLCBzdXBwcmVzc2VkLCBtZXNzYWdlKSB7XHJcbiAgICAgICAgdmFyIGUgPSBuZXcgRXJyb3IobWVzc2FnZSk7XHJcbiAgICAgICAgcmV0dXJuIGUubmFtZSA9IFwiU3VwcHJlc3NlZEVycm9yXCIsIGUuZXJyb3IgPSBlcnJvciwgZS5zdXBwcmVzc2VkID0gc3VwcHJlc3NlZCwgZTtcclxuICAgIH07XG5cbiAgICBjb25zdCBPcmdhbml6ZXNSZWZOb2RlSWQgPSBcIm5zPTA7aT0zNVwiO1xuICAgIGNvbnN0IEZvbGRlclR5cGUgPSBcIm5zPTA7aT02MVwiO1xuICAgIGNvbnN0IEhhc0NvbXBvbmVudFJlZk5vZGVJZCA9IFwibnM9MDtpPTQ3XCI7XG4gICAgY29uc3QgSGFzUHJvcGVydHlSZWZOb2RlSWQgPSBcIm5zPTA7aT00NlwiO1xuICAgIGNvbnN0IEhhc0NoaWxkUmVmTm9kZUlkID0gXCJucz0wO2k9MzRcIjtcbiAgICBjb25zdCBIYXNTdWJ0eXBlUmVmTm9kZUlkID0gXCJucz0wO2k9NDVcIjtcbiAgICBjb25zdCBIYXNUeXBlRGVmaW5pdGlvblJlZk5vZGVJZCA9IFwibnM9MDtpPTQwXCI7XG5cbiAgICB2YXIgQnJvd3NlRGlyZWN0aW9uO1xuICAgIChmdW5jdGlvbiAoQnJvd3NlRGlyZWN0aW9uKSB7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJGb3J3YXJkXCJdID0gMF0gPSBcIkZvcndhcmRcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkludmVyc2VcIl0gPSAxXSA9IFwiSW52ZXJzZVwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiQm90aFwiXSA9IDJdID0gXCJCb3RoXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJJbnZhbGlkXCJdID0gM10gPSBcIkludmFsaWRcIjtcbiAgICB9KShCcm93c2VEaXJlY3Rpb24gfHwgKEJyb3dzZURpcmVjdGlvbiA9IHt9KSk7XG4gICAgdmFyIE5vZGVDbGFzcztcbiAgICAoZnVuY3Rpb24gKE5vZGVDbGFzcykge1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVW5zcGVjaWZpZWRcIl0gPSAwXSA9IFwiVW5zcGVjaWZpZWRcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk9iamVjdFwiXSA9IDFdID0gXCJPYmplY3RcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlZhcmlhYmxlXCJdID0gMl0gPSBcIlZhcmlhYmxlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJNZXRob2RcIl0gPSA0XSA9IFwiTWV0aG9kXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJPYmplY3RUeXBlXCJdID0gOF0gPSBcIk9iamVjdFR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlZhcmlhYmxlVHlwZVwiXSA9IDE2XSA9IFwiVmFyaWFibGVUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJSZWZlcmVuY2VUeXBlXCJdID0gMzJdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJEYXRhVHlwZVwiXSA9IDY0XSA9IFwiRGF0YVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlZpZXdcIl0gPSAxMjhdID0gXCJWaWV3XCI7XG4gICAgfSkoTm9kZUNsYXNzIHx8IChOb2RlQ2xhc3MgPSB7fSkpO1xuICAgIHZhciBOb2RlQ2xhc3NNYXNrO1xuICAgIChmdW5jdGlvbiAoTm9kZUNsYXNzTWFzaykge1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJPYmplY3RcIl0gPSAxXSA9IFwiT2JqZWN0XCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlZhcmlhYmxlXCJdID0gMl0gPSBcIlZhcmlhYmxlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk1ldGhvZFwiXSA9IDRdID0gXCJNZXRob2RcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiT2JqZWN0VHlwZVwiXSA9IDhdID0gXCJPYmplY3RUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlZhcmlhYmxlVHlwZVwiXSA9IDE2XSA9IFwiVmFyaWFibGVUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAzMl0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiRGF0YVR5cGVcIl0gPSA2NF0gPSBcIkRhdGFUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlZpZXdcIl0gPSAxMjhdID0gXCJWaWV3XCI7XG4gICAgfSkoTm9kZUNsYXNzTWFzayB8fCAoTm9kZUNsYXNzTWFzayA9IHt9KSk7XG4gICAgdmFyIFJlc3VsdE1hc2s7XG4gICAgKGZ1bmN0aW9uIChSZXN1bHRNYXNrKSB7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAxXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJJc0ZvcndhcmRcIl0gPSAyXSA9IFwiSXNGb3J3YXJkXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIk5vZGVDbGFzc1wiXSA9IDRdID0gXCJOb2RlQ2xhc3NcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiQnJvd3NlTmFtZVwiXSA9IDhdID0gXCJCcm93c2VOYW1lXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIkRpc3BsYXlOYW1lXCJdID0gMTZdID0gXCJEaXNwbGF5TmFtZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJUeXBlRGVmaW5pdGlvblwiXSA9IDMyXSA9IFwiVHlwZURlZmluaXRpb25cIjtcbiAgICB9KShSZXN1bHRNYXNrIHx8IChSZXN1bHRNYXNrID0ge30pKTtcbiAgICAvLyAgY29uc3QgcSA9IFJlZmVyZW5jZVR5cGVJZHMuT3JnYW5pemVzO1xuICAgIGZ1bmN0aW9uIHJlc29sdmVOb2RlSWQobm9kZUlkTGlrZSkge1xuICAgICAgICBzd2l0Y2ggKG5vZGVJZExpa2UpIHtcbiAgICAgICAgICAgIGNhc2UgXCJPcmdhbml6ZXNcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gT3JnYW5pemVzUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1Byb3BlcnR5XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1Byb3BlcnR5UmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc0NvbXBvbmVudFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNDb21wb25lbnRSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzQ2hpbGRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzQ2hpbGRSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzU3VidHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNTdWJ0eXBlUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1R5cGVEZWZpbml0aW9uXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1R5cGVEZWZpbml0aW9uUmVmTm9kZUlkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZ2V0SWNvbiA9IChyZWZlcmVuY2UpID0+IHtcbiAgICAgICAgc3dpdGNoIChyZWZlcmVuY2Uubm9kZUNsYXNzKSB7XG4gICAgICAgICAgICBjYXNlIFwiT2JqZWN0XCI6XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IE9yZ2FuaXplc1JlZk5vZGVJZCkgO1xuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UudHlwZURlZmluaXRpb24gPT09IEZvbGRlclR5cGUgfHwgcmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gXCJpPTYxXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1mb2xkZXJcIiwgY29sb3I6IFwicmdiYSg2MSwgNjAsIDQsIDAuNTI1KVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiBcIlNlYUdyZWVuXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJWYXJpYWJsZVwiOlxuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBIYXNDb21wb25lbnRSZWZOb2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJTdGVlbEJsdWVcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBIYXNQcm9wZXJ0eVJlZk5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIkRvZGdlckJsdWVcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJDYWRldEJsdWVcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgXCJNZXRob2RcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWNvZ1wiLCBjb2xvcjogXCJTYW5keUJyb3duXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJPYmplY3RUeXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6IFwiRGFya09yYW5nZVwiIH07XG4gICAgICAgICAgICBjYXNlIFwiVmFyaWFibGVUeXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1zbGlkZXJzXCIsIGNvbG9yOiBcIkRhcmtPcmFuZ2VcIiB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGljb246IFwiZmEtcXVlc3Rpb25cIiwgY29sb3I6IFwiZ3JleVwiIH07XG4gICAgfTtcblxuICAgIGNvbnN0IGJyb3dzZSA9ICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgbm9kZUlkLCB0ZW1wbGF0ZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1lbmRwb2ludDJgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9icm93c2VgO1xuICAgICAgICBjb25zdCBicm93c2VEZXNjcmlwdGlvbiA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgdGVtcGxhdGUpLCB7IG5vZGVJZCwgcmVzdWx0TWFzazogNjMgfSk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIGJyb3dzZURlc2NyaXB0aW9uLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGluZyBmYWlsZWQgd2l0aCBlcnJvclwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgICAgIHJldHVybiB7IHJlZmVyZW5jZXM6IFtdIH07XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGVkIDogXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IHlpZWxkIGRhdGEuanNvbigpO1xuICAgICAgICBjb25zdCByZWZlcmVuY2VzID0gcmVzcG9uc2UuYnJvd3NlUmVzdWx0LnJlZmVyZW5jZXMgfHwgW107XG4gICAgICAgIHJldHVybiB7IHJlZmVyZW5jZXMgfTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHRlbXBsYXRlMSA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzQ2hpbGRcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCB0ZW1wbGF0ZTIgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIk9yZ2FuaXplc1wiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuVmFyaWFibGUgfCBOb2RlQ2xhc3MuT2JqZWN0IHwgTm9kZUNsYXNzLk1ldGhvZCxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5PYmplY3RUeXBlIHxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5EYXRhVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5WaWV3LFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGNvbnN0IGludGVybmFsVmVyaWZ5ID0gKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCAkaW5wdXRFbGVtZW50LCAkaW5mbykgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1lbmRwb2ludDJgO1xuICAgICAgICBjb25zdCBub2RlSWQgPSAkaW5wdXRFbGVtZW50LnZhbCgpO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2goYCR7cm9vdH0vY2hlY2tOb2RlSWRgLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBub2RlSWQsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHNldE5vdGlmaWNhdGlvbiA9ICh0ZXh0LCBjbGFzc05hbWUpID0+IHtcbiAgICAgICAgICAgICRpbmZvLnRleHQodGV4dCkuYWRkQ2xhc3MoXCJzdGVyZml2ZS1pbmZvXCIpLmFkZENsYXNzKGNsYXNzTmFtZSk7XG4gICAgICAgICAgICAkaW5mby5zaG93KCk7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAkaW5mby5yZW1vdmVDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgICAgICRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgIH0sIDMwMDApO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBqc29uID0gKHlpZWxkIGRhdGEuanNvbigpKTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIC8vIGRvIHNvbWV0aGluZztcbiAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihcIiEhZmFpbHVyZSEhXCIgKyBub2RlSWQsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGlmIChqc29uLnN0YXR1c0NvZGUubWF0Y2goL0dvb2QvKSkge1xuICAgICAgICAgICAgICAgIC8vIGRvIHNvbWV0aGluZ1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudmFsKGpzb24ubm9kZUFkZHJlc3NTdHJpbmcpO1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCJHb29kXCIsIFwib2tcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChgJHtub2RlSWR9YCk7XG4gICAgICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKGAke2pzb24uc3RhdHVzQ29kZX0gJHtkYXRhLnN0YXR1c1RleHR9YCwgXCJmYWlsdXJlXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG4gICAgZnVuY3Rpb24gZmV0Y2hDaGlsZHJlbigkbm9kZSwgZGF0YSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZUlkID0gJG5vZGUuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MSA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMSk7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQyID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGUyKTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVmZXJlbmNlczogWy4uLmJyb3dzZVJlc3VsdDEucmVmZXJlbmNlcywgLi4uYnJvd3NlUmVzdWx0Mi5yZWZlcmVuY2VzXSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCB0ZW1wbGF0ZVNUID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJIYXNTdWJ0eXBlXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHwgTm9kZUNsYXNzLk9iamVjdFR5cGUgfCBOb2RlQ2xhc3MuRGF0YVR5cGUgfCBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlLFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGZ1bmN0aW9uIGZldGNoU3VidHlwZXMoJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZVNUKTtcbiAgICAgICAgICAgIHJldHVybiBicm93c2VSZXN1bHQxO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgbWFrZUVsZW1lbnQgPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGlmICghcmVmZXJlbmNlKSB7XG4gICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT48aSBjbGFzcz1cImZhIGZhLWVycm9yXCIgc3R5bGU9XCJjb2xvcjpyZWQ7XCI+PC9pPm5vIHJlZmVyZW5jZSAhPHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuID0gcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB0ID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgeyBpY29uLCBjb2xvciB9ID0gZ2V0SWNvbihyZWZlcmVuY2UpO1xuICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT48aSBjbGFzcz1cImZhICR7aWNvbn1cIiBzdHlsZT1cImNvbG9yOiR7Y29sb3J9O1wiPjwvaT4gJHt0fTx1bD48L3VsPjwvbGk+YCk7XG4gICAgICAgICRlbGVtZW50LmFkZENsYXNzKFwiZXhwYW5kYWJsZVwiKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInZhbHVlXCIsIG4pO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwicmVmZXJlbmNlXCIsIHJlZmVyZW5jZSk7XG4gICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICB9O1xuICAgIGNvbnN0IGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCA9ICgpID0+IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFsgVGVtcGVyYXR1cmUgIF1cbiAgICAgICAgICogICAoIHRvb2x0aXAgOiAoL09iamVjdHMvTXlTZW5zb3IpIChucz0xO3M9VGVtcGVyYXR1cmUpKVxuICAgICAgICAgKiBbICsgW0ZvbGRlcl0gT2JqZWN0c11cbiAgICAgICAgICogWyAgICAgW09iamVjdF0gTXlTZW5zb3JdXG4gICAgICAgICAqIFsgICAgICggKSBbVmFyaWFibGVdIFRlbXBlcmF0dXJlXVxuICAgICAgICAgKi9cbiAgICAgICAgJC53aWRnZXQoXCJzdGVyZml2ZS5ub2RlQnJvd3NlclwiLCB7XG4gICAgICAgICAgICAvKiBkZWZhdWx0IG9wdGlvbnMgKi9cbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6ICgpID0+ICh7IGVuZHBvaW50OiBcIm9wYy50Y3A6Ly9vcGN1YWRlbW8uc3RlcmZpdmUuY29tOjI2NTQzXCIgfSksXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQ6ICgpID0+IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBwYXJlbnROb2RlOiAoKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICBicm93c2VOYW1lOiB7IG5hbWVzcGFjZUluZGV4OiAwLCBuYW1lOiBcIk9iamVjdHNcIiB9LFxuICAgICAgICAgICAgICAgICAgICBub2RlQ2xhc3M6IFwiT2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgIG5vZGVJZDogXCJucz0wO2k9ODVcIixcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6IHsgdGV4dDogXCJPYmplY3RzXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZURlZmluaXRpb246IEZvbGRlclR5cGUsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgZmlsdGVyOiAoKSA9PiB0cnVlLFxuICAgICAgICAgICAgICAgIGJhc2VVcmw6IFwiXCIsXG4gICAgICAgICAgICAgICAgaXNUeXBlUmVmOiBmYWxzZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc29sdmVQYXJlbnROb2RlKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhID0gdHlwZW9mIHRoYXQub3B0aW9ucy5wYXJlbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZSgpIDogdGhhdC5vcHRpb25zLnBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhIGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHlpZWxkIGE7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGE7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzZXQoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzb2x2ZVBhcmVudE5vZGUoKS50aGVuKChwYXJlbnROb2RlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQocGFyZW50Tm9kZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC5jdXJyZW50UGFyZW50ID0gcGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB2ZXJpZnkoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgICAgICAgICAgIGJhc2VVcmw6IHRoYXQub3B0aW9ucy5iYXNlVXJsLFxuICAgICAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgICAgICBlbmRwb2ludDogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50KCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBpbnRlcm5hbFZlcmlmeShkYXRhLCB0aGF0LiRpbnB1dCwgdGhhdC4kaW5mbyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2NyZWF0ZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBfZmV0Y2hEYXRhRm9yTm9kZSgkbm9kZSwgZmV0Y2hGdW5jLCBkYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJG5vZGUuaGFzQ2xhc3MoXCJmZXRjaGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhbHJlYWR5IGZldGNoZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRub2RlLmhhc0NsYXNzKFwibG9hZGluZ1wiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYWxyZWFkeSBsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwibG9hZGluZ1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmFwcGVuZCgnPGRpdiBjbGFzcz1cInNwaW5uZXJcIj48L2Rpdj4nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgcmVmZXJlbmNlcyB9ID0geWllbGQgZmV0Y2hGdW5jKCRub2RlLCBkYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHJlZmVyZW5jZSBvZiByZWZlcmVuY2VzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuZmlsdGVyICYmICF0aGF0Lm9wdGlvbnMuZmlsdGVyKHJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQocmVmZXJlbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5hcHBlbmQoJGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5hZGRDbGFzcyhcImZldGNoZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5hcHBlbmQoYDxsaT5lcnJvciAke2Vyci5tZXNzYWdlfTwvbGk+YCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJcIiwgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmZpbmQoXCIuc3Bpbm5lclwiKS5yZW1vdmUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLnJlbW92ZUNsYXNzKFwibG9hZGluZ1wiKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0ID0gdGhpcy5lbGVtZW50O1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvID0gJChcIjxkaXYvPlwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hZGRDbGFzcyhcInN0ZXJmaXZlLWNvbWJvLWJveFwiKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQucmVwbGFjZVdpdGgodGhhdC4kY29tYm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAgPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwiaW5wdXQtZ3JvdXBcIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGlucHV0R3JvdXApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJGlucHV0KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuID0gJChgPGJ1dHRvbj48aSBjbGFzcz1cImZhIGZhLXNpdGVtYXBcIj48L2k+PC9idXR0b24+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kdG9nZ2xlVHJlZUJ0bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0bi5vbihcImNsaWNrXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRkcm9wZG93bi5pcyhcIjp2aXNpYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB0cmVlIHdpZGdldCBpcyBnb2luZyB0byBiZWNvbWUgdmlzaWJsZVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5yZXNvbHZlUGFyZW50Tm9kZSgpLnRoZW4oKHBhcmVudE5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmVudE5vZGUgIT09IHRoYXQuY3VycmVudFBhcmVudCB8fCAoKF9hID0gdGhhdC5jdXJyZW50UGFyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Eubm9kZUlkKSAhPT0gcGFyZW50Tm9kZS5ub2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5yZXNldCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5mby5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24udG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdmVyaWZ5QnRuID0gJChgPGJ1dHRvbj48aSBjbGFzcz1cImZhIGZhLWZsYXNrXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJHZlcmlmeUJ0bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdmVyaWZ5QnRuLm9uKFwiY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnZlcmlmeSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmICghdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmF0dHIoXCJwbGFjZWhvbGRlclwiLCBcImVudGVyIGEgbm9kZUlkIG9yIGEgYnJvd3NlUGF0aCBcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoYXQuJGluZm8gPSAkKGA8ZGl2IGNsYXNzPVwiaW5mby10ZXh0XCI+PC9kaXY+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mby5oaWRlKCk7XG4gICAgICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgICAgICh7XG4gICAgICAgICAgICAgICAgICAgIGJhc2VVcmw6IHRoYXQub3B0aW9ucy5iYXNlVXJsLFxuICAgICAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgICAgICBlbmRwb2ludDogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50KCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24gPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwic3RlcmZpdmUtZHJvcGRvd25cIikuaGlkZSgpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbmZvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kZHJvcGRvd24pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUgPSAkKGA8dWwgY2xhc3M9XCJzdGVyZml2ZS10cmVlXCI+PC91bD5gKS5hcHBlbmRUbyh0aGF0LiRkcm9wZG93bik7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUub24oXCJjbGlja1wiLCBcImxpXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0ICRsaSA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZVdpZHRoID0gMjA7IC8vIFNldCB3aWR0aCBvZiB0aGUgOjpiZWZvcmUgY29udGVudFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVIZWlnaHQgPSAyMDsgLy8gU2V0IGhlaWdodCBvZiB0aGUgOjpiZWZvcmUgY29udGVudFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50UG9zID0gJCh0aGlzKS5vZmZzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZSA9IGV2ZW50O1xuICAgICAgICAgICAgICAgICAgICBpZiAoZS5wYWdlWCA+PSBlbGVtZW50UG9zLmxlZnQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVggPD0gZWxlbWVudFBvcy5sZWZ0ICsgYmVmb3JlV2lkdGggJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPj0gZWxlbWVudFBvcy50b3AgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPD0gZWxlbWVudFBvcy50b3AgKyBiZWZvcmVIZWlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRhYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImZldGNoZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnQ6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludCgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZiA9ICF0aGF0Lm9wdGlvbnMuaXNUeXBlUmVmID8gZmV0Y2hDaGlsZHJlbiA6IGZldGNoU3VidHlwZXM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX2ZldGNoRGF0YUZvck5vZGUoJGxpLCBmLCBkYXRhKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiIEZldGNoaW5nIGRvbmVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWFyayBhcyBleHBhbmRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVycm9yXCIsIGVycik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRvZ2dsZSBpdHMgZXhwYW5kZWQvY29sbGFwc2VkIHN0YXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5jaGlsZHJlbihcInVsXCIpLmNoaWxkcmVuKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN3YXAgZXhwYW5kYWJsZSBhbmQgZXhwYW5kZWQgY2xhc3Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gJGxpLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlZmVyZW5jZSA9ICRsaS5kYXRhKFwicmVmZXJlbmNlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5pc1NlbGVjdGFibGUgJiYgIXRoYXQub3B0aW9ucy5pc1NlbGVjdGFibGUocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRpc3BsYXlOYW1lID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0ID0gYFske2Rpc3BsYXlOYW1lfV0oJHt2YWx1ZX0pYDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnZhbChpbnB1dCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgJChkb2N1bWVudCkub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gY2xpY2tpbmcgb3V0c2lkZSB0aGUgcGFnZSB3aWxsIGhpZGUgdGhlIGRyb3Bkb3duXG4gICAgICAgICAgICAgICAgICAgIGlmICghJChldmVudC50YXJnZXQpLmNsb3Nlc3QodGhhdC4kY29tYm8pLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgY29uc3QgY2hlY2tOb2RlSWQgPSAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIG5vZGVJZCkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1lbmRwb2ludDJgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9jaGVja05vZGVJZGA7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIG5vZGVJZCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hpbmcgZmFpbGVkIHdpdGggZXJyb3JcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgICAgICBjb25zdCByZXMgPSB7XG4gICAgICAgICAgICAgICAgc3RhdHVzQ29kZTogXCJCYWRcIixcbiAgICAgICAgICAgICAgICBub2RlQWRkcmVzc1N0cmluZzogbm9kZUlkLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGVkIDogXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IHlpZWxkIGRhdGEuanNvbigpO1xuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgfSk7XG5cbiAgICBmdW5jdGlvbiBtYW5hZ2VBUElDYWxsKHByZWZpeCwgYnRuLCBmdW5jLCBvblJlc3VsdCkge1xuICAgICAgICBjb25zdCBzdWNjZXNzSWNvbiA9ICQoYCMke3ByZWZpeH0tc3VjY2Vzc2ApO1xuICAgICAgICBjb25zdCBmYWlsdXJlSWNvbiA9ICQoYCMke3ByZWZpeH0tZmFpbHVyZWApO1xuICAgICAgICBjb25zdCBwZW5kaW5nSWNvbiA9ICQoYCMke3ByZWZpeH0tcGVuZGluZ2ApO1xuICAgICAgICBjb25zdCBtZXNzYWdlcyA9ICQoYCMke3ByZWZpeH0tbWVzc2FnZXNgKTtcbiAgICAgICAgbGV0IGFjdGlvblBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgc3VjY2Vzc0ljb24uaGlkZSgpO1xuICAgICAgICBmYWlsdXJlSWNvbi5oaWRlKCk7XG4gICAgICAgIHBlbmRpbmdJY29uLmhpZGUoKTtcbiAgICAgICAgYnRuLm9uKFwiY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGFjdGlvblBlbmRpbmcpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgYWN0aW9uUGVuZGluZyA9IHRydWU7XG4gICAgICAgICAgICBwZW5kaW5nSWNvbi5yZW1vdmVDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICBwZW5kaW5nSWNvbi5odG1sKFwiVGVzdGluZyBDb25uZWN0aW9uIC4uLlwiKTtcbiAgICAgICAgICAgIHN1Y2Nlc3NJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgIGZhaWx1cmVJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgIG1lc3NhZ2VzLmh0bWwoXCJcIik7XG4gICAgICAgICAgICBjb25zdCB7IGJvZHksIHVybCB9ID0gZnVuYygpO1xuICAgICAgICAgICAgLy8geHggY29uc29sZS5sb2coXCJ4eHh4eFwiLCBib2R5KTtcbiAgICAgICAgICAgIGZldGNoKHVybCwge1xuICAgICAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KGJvZHkpLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAudGhlbigoZGF0YSkgPT4gZGF0YS5qc29uKCkpXG4gICAgICAgICAgICAgICAgLnRoZW4oKGpzb24pID0+IHtcbiAgICAgICAgICAgICAgICBhY3Rpb25QZW5kaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgcGVuZGluZ0ljb24uaGlkZSgpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KGpzb24sIG51bGwsIFwiIFwiKSk7XG4gICAgICAgICAgICAgICAgaWYgKGpzb24ucmVzdWx0ID09PSBcIm9rXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgc3VjY2Vzc0ljb24ucmVtb3ZlQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgICAgICBmYWlsdXJlSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VzLmh0bWwoanNvbi5tZXNzYWdlLnJlcGxhY2UoXCJcXG5cIiwgXCI8YnI+XCIpKTtcbiAgICAgICAgICAgICAgICAgICAgb25SZXN1bHQobnVsbCwganNvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhZGFwdCA9IChzdHIpID0+ICFzdHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gXCJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgOiBzdHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc3BsaXQoXCJcXG5cIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWFwKChhKSA9PiBgPHA+JHthfTwvcD5gKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5qb2luKFwiXFxuXCIpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhZGFwdDIgPSAoc3RyKSA9PiAoQXJyYXkuaXNBcnJheShzdHIpID8gc3RyLm1hcChhZGFwdCkuam9pbihcIlxcblwiKSA6IGFkYXB0KHN0cikpO1xuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgICAgIGZhaWx1cmVJY29uLnJlbW92ZUNsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZXMuaHRtbChhZGFwdDIoanNvbi5tZXNzYWdlKSArIGFkYXB0Mihqc29uLmV4dHJhKSk7XG4gICAgICAgICAgICAgICAgICAgIG9uUmVzdWx0KG5ldyBFcnJvcihqc29uLnJlc3VsdCksIGpzb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICBhY3Rpb25QZW5kaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgcGVuZGluZ0ljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgIHN1Y2Nlc3NJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICBmYWlsdXJlSWNvbi5yZW1vdmVDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgbWVzc2FnZXMuaHRtbChcImludGVybmFsIGVycm9yIFwiICsgZXJyLm1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyXCIsIGVycik7XG4gICAgICAgICAgICAgICAgb25SZXN1bHQoZXJyLCBudWxsKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdCBnZXRFbmRQb2ludEF0dHJpYnV0ZXMgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0ICRlbmRwb2ludCA9ICQoXCIjbm9kZS1pbnB1dC1lbmRwb2ludFwiKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnRJZCA9ICRlbmRwb2ludC52YWwoKTtcbiAgICAgICAgY29uc3QgcmVkTm9kZSA9IFJFRC5ub2Rlcy5ub2RlKGVuZHBvaW50SWQpO1xuICAgICAgICBpZiAoIXJlZE5vZGUpXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAvLyB3ZSBuZWVkIHRvIHNhbml0emUgYW5kIGV4dHJhY3QgdGhlIGVuZHBvaW50IGF0dHJpYnV0ZXMgb25seSAoIG5vdCBodGUgcmVkbm9kZSBzdHVmZilcbiAgICAgICAgY29uc3QgeyBlbmRwb2ludCwgc2VjdXJpdHlNb2RlLCBzZWN1cml0eVBvbGljeSwgdXNlcklkZW50aXR5VHlwZSwgdXNlck5hbWUsIHBhc3N3b3JkLCB1c2VyQ2VydGlmaWNhdGUsIHVzZXJQcml2YXRla2V5IH0gPSByZWROb2RlO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICBzZWN1cml0eU1vZGUsXG4gICAgICAgICAgICBzZWN1cml0eVBvbGljeSxcbiAgICAgICAgICAgIHVzZXJJZGVudGl0eVR5cGUsXG4gICAgICAgICAgICB1c2VyTmFtZSxcbiAgICAgICAgICAgIHBhc3N3b3JkLFxuICAgICAgICAgICAgdXNlckNlcnRpZmljYXRlLFxuICAgICAgICAgICAgdXNlclByaXZhdGVrZXksXG4gICAgICAgIH07XG4gICAgfTtcbiAgICBjb25zdCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZW5kcG9pbnROb2RlOiBnZXRFbmRwb2ludFBhcmFtZXRlcnMsXG4gICAgICAgIH07XG4gICAgfTtcbiAgICBjb25zdCBnZXRFbmRwb2ludFBhcmFtZXRlcnMgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0ICRlbmRwb2ludCA9ICQoXCIjbm9kZS1pbnB1dC1lbmRwb2ludFwiKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnRJZCA9ICRlbmRwb2ludC52YWwoKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnROciA9IGdldEVuZFBvaW50QXR0cmlidXRlcygpO1xuICAgICAgICBpZiAoIWVuZHBvaW50TnIpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGlkOiBlbmRwb2ludElkLFxuICAgICAgICAgICAgZW5kcG9pbnQ6IGVuZHBvaW50TnIuZW5kcG9pbnQsXG4gICAgICAgICAgICBzZWN1cml0eU1vZGU6IGVuZHBvaW50TnIuc2VjdXJpdHlNb2RlLFxuICAgICAgICAgICAgc2VjdXJpdHlQb2xpY3k6IGVuZHBvaW50TnIuc2VjdXJpdHlQb2xpY3ksXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgdXNlcklkZW50aXR5VHlwZTogZW5kcG9pbnROci51c2VySWRlbnRpdHlUeXBlLFxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIHVzZXJOYW1lOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUgPT09IFwiVXNlck5hbWVcIiA/IGVuZHBvaW50TnIudXNlck5hbWUgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBwYXNzd29yZDogZW5kcG9pbnROci51c2VySWRlbnRpdHlUeXBlID09PSBcIlVzZXJOYW1lXCIgPyBlbmRwb2ludE5yLnBhc3N3b3JkIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgdXNlckNlcnRpZmljYXRlOiBlbmRwb2ludE5yLnVzZXJDZXJ0aWZpY2F0ZSxcbiAgICAgICAgICAgIHVzZXJQcml2YXRla2V5OiBlbmRwb2ludE5yLnVzZXJQcml2YXRla2V5LFxuICAgICAgICB9O1xuICAgIH07XG5cbiAgICBSRUQubm9kZXMucmVnaXN0ZXJUeXBlKFwiT3BjVWEtQ2xpZW50Mi1DYWxsXCIsIHtcbiAgICAgICAgY2F0ZWdvcnk6IFwib3BjdWFcIixcbiAgICAgICAgY29sb3I6IFwiI0MwREVFRFwiLFxuICAgICAgICBhbGlnbjogXCJyaWdodFwiLFxuICAgICAgICBpY29uOiBcIi4uLy4uL2ljb25zL29wY3Vhbm9kZUxvZ28ucG5nXCIsXG4gICAgICAgIHBhbGV0dGVMYWJlbDogXCJjYWxsXCIsXG4gICAgICAgIGRlZmF1bHRzOiB7XG4gICAgICAgICAgICBpbnB1dHM6IHsgdmFsdWU6IDEgfSxcbiAgICAgICAgICAgIG91dHB1dDogeyB2YWx1ZTogNCB9LFxuICAgICAgICAgICAgLy8gQ29tbW9uXG4gICAgICAgICAgICBuYW1lOiB7IHZhbHVlOiBcIlwiIH0sXG4gICAgICAgICAgICBlbmRwb2ludDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IHRydWUsIHR5cGU6IFwiT3BjVWEtRW5kcG9pbnQyXCIgfSxcbiAgICAgICAgICAgIGFjdGlvbjogeyB2YWx1ZTogXCJyZWFkXCIsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICAvLyBmb3IgYWN0aW9uIGNhbGxcbiAgICAgICAgICAgIG1ldGhvZElkOiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgb2JqZWN0SWQ6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgIH0sXG4gICAgICAgIC8vIGlucHV0czosXG4gICAgICAgIG91dHB1dHM6IDIsIC8vIDIgb3V0cHV0LCBzZWNvbmQgZm9yIHJhdyBub2RlLW9wY3VhIGRpYWdub3N0aWNzIG9yIG1vcmUgY29tcGxldGUgbWVzc2FnZVxuICAgICAgICBsYWJlbCgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgfHwgXCJPUENVQS1DYWxsXCI7XG4gICAgICAgIH0sXG4gICAgICAgIGxhYmVsU3R5bGUoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uYW1lID8gXCJub2RlX2xhYmVsX2l0YWxpY1wiIDogXCJcIjtcbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0cHJlcGFyZSgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzO1xuICAgICAgICAgICAgZGVjbGFyZU5vZGVCcm93c2VyV2lkZ2V0KCk7XG4gICAgICAgICAgICBub2RlLmlucHV0cyA9IDE7XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gaGFuZGxlIFNlY3Rpb24gQ2FsbFxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIGxldCBkYXRhVHlwZXMgPSB7fTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiQ2FsbGluZyBub2RlQnJvd3NlclwiKTtcbiAgICAgICAgICAgIC8vIHRvIGRvIGFkZCBhIHR5cGVzY3JpcHQgZGVmaW5pdGlvbiBmb3IgdGhpc1xuICAgICAgICAgICAgY29uc3QgJG9iamVjdElkID0gJChcIiNub2RlLWlucHV0LW9iamVjdElkXCIpO1xuICAgICAgICAgICAgY29uc3QgJG1ldGhvZElkID0gJChcIiNub2RlLWlucHV0LW1ldGhvZElkXCIpO1xuICAgICAgICAgICAgY29uc3QgJGlucHV0QXJndW1lbnREZWZpbml0aW9uID0gJChcIiNtZXRob2QtaW5wdXQtYXJndW1lbnQtZGVmaW5pdGlvblwiKTtcbiAgICAgICAgICAgIGNvbnN0ICRvdXRwdXRBcmd1bWVudERlZmluaXRpb24gPSAkKFwiI21ldGhvZC1vdXRwdXQtYXJndW1lbnQtZGVmaW5pdGlvblwiKTtcbiAgICAgICAgICAgIGNvbnN0ICR2YWxpZGF0ZUJ0biA9ICQoXCIjdmFsaWRhdGUtY2FsbC1hcmd1bWVudHMtYnV0dG9uXCIpO1xuICAgICAgICAgICAgJG9iamVjdElkLm5vZGVCcm93c2VyKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlcigpKSwgeyBmaWx0ZXIobm9kZURlc2MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJPYmplY3RcIjtcbiAgICAgICAgICAgICAgICB9IH0pKTtcbiAgICAgICAgICAgICRtZXRob2RJZC5ub2RlQnJvd3NlcihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIoKSksIHsgcGFyZW50Tm9kZTogKCkgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBuZWVkIHRvIHJlc3luYyB3aXRoIHdoYXQncyBpbiAgI25vZGUtaW5wdXQtb2JqZWN0SWRcbiAgICAgICAgICAgICAgICAgICAgbGV0IHJlZmVyZW5jZSA9ICRvYmplY3RJZC5kYXRhKFwicmVmZXJlbmNlXCIpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXJlZmVyZW5jZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgbm9kZUlkRXggPSAkb2JqZWN0SWQudmFsKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlbmRwb2ludE5vZGUgPSBnZXRFbmRQb2ludEF0dHJpYnV0ZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZW5kcG9pbnROb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb25uZWN0aW9uRGF0YSA9IHsgYmFzZVVybDogXCJcIiwgZW5kcG9pbnQ6IFwiXCIsIGVuZHBvaW50Tm9kZSB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByID0geWllbGQgY2hlY2tOb2RlSWQoY29ubmVjdGlvbkRhdGEsIG5vZGVJZEV4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZlcmVuY2UgPSByLnJlZmVyZW5jZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZWZlcmVuY2U7XG4gICAgICAgICAgICAgICAgfSksIGZpbHRlcihub2RlRGVzYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIk1ldGhvZFwiIHx8IG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJPYmplY3RcIjtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGlzU2VsZWN0YWJsZShub2RlRGVzYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIk1ldGhvZFwiO1xuICAgICAgICAgICAgICAgIH0gfSkpO1xuICAgICAgICAgICAgJG9iamVjdElkLm9uKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAkbWV0aG9kSWQubm9kZUJyb3dzZXIoXCJyZXNldFwiKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJDYWxsaW5nIG5vZGVCcm93c2VyIERvbmVcIik7XG4gICAgICAgICAgICBmdW5jdGlvbiBhZGRBcmd1bWVudEN0cmwoY29udGFpbmVyLCBpbmRleCwgYXJnKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbSA9ICQoJzxkaXYgY2xhc3M9XCJhcmd1bWVudC1lbnRyeVwiPicpLmFwcGVuZFRvKGNvbnRhaW5lcik7XG4gICAgICAgICAgICAgICAgLy8gY29udGFpbmVyLmRhdGEoXCJkYXRhXCIsIGFyZyk7XG4gICAgICAgICAgICAgICAgJCgnPGlucHV0IHR5cGU9XCJ0ZXh0XCI+JylcbiAgICAgICAgICAgICAgICAgICAgLnZhbChhcmcubmFtZSB8fCBcIlwiKVxuICAgICAgICAgICAgICAgICAgICAuY3NzKHsgd2lkdGg6IFwiMTAwJVwiIH0pXG4gICAgICAgICAgICAgICAgICAgIC5hcHBlbmRUbyhpdGVtKTtcbiAgICAgICAgICAgICAgICBjb25zdCBkID0gZGF0YVR5cGVzW2FyZy5kYXRhVHlwZS50b1N0cmluZygpXTtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhVHlwZU4gPSAoZCA/IGQuYnJvd3NlTmFtZS5uYW1lIHx8IFwiXCIgOiBhcmcuZGF0YVR5cGUudG9TdHJpbmcoKSkgKyAoYXJnLnZhbHVlUmFuayA9PT0gMSA/IFwiW11cIiA6IFwiXCIpO1xuICAgICAgICAgICAgICAgICQoJzxpbnB1dCB0eXBlPVwidGV4dFwiPicpXG4gICAgICAgICAgICAgICAgICAgIC52YWwoYXJnLmRlc2NyaXB0aW9uLnRleHQgfHwgXCJcIilcbiAgICAgICAgICAgICAgICAgICAgLmNzcyh7IHdpZHRoOiBcIjUwJVwiIH0pXG4gICAgICAgICAgICAgICAgICAgIC5hcHBlbmRUbyhpdGVtKTtcbiAgICAgICAgICAgICAgICAkKCc8aW5wdXQgdHlwZT1cInRleHRcIj4nKVxuICAgICAgICAgICAgICAgICAgICAudmFsKGRhdGFUeXBlTiB8fCBcIlwiKVxuICAgICAgICAgICAgICAgICAgICAuY3NzKHsgd2lkdGg6IFwiNTAlXCIgfSlcbiAgICAgICAgICAgICAgICAgICAgLmFwcGVuZFRvKGl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJGlucHV0QXJndW1lbnREZWZpbml0aW9uLmVkaXRhYmxlTGlzdCh7XG4gICAgICAgICAgICAgICAgYWRkQnV0dG9uOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IFwiYXV0b1wiLFxuICAgICAgICAgICAgICAgIHNjcm9sbE9uQWRkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBhZGRJdGVtKGNvbnRhaW5lciwgaSwgb2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgIGFkZEFyZ3VtZW50Q3RybChjb250YWluZXIsIGksIG9iamVjdCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgJG91dHB1dEFyZ3VtZW50RGVmaW5pdGlvbi5lZGl0YWJsZUxpc3Qoe1xuICAgICAgICAgICAgICAgIGFkZEJ1dHRvbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBcImF1dG9cIixcbiAgICAgICAgICAgICAgICBzY3JvbGxPbkFkZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgYWRkSXRlbShjb250YWluZXIsIGksIG9iamVjdCkge1xuICAgICAgICAgICAgICAgICAgICBhZGRBcmd1bWVudEN0cmwoY29udGFpbmVyLCBpLCBvYmplY3QpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGZ1bmN0aW9uIGluc3RhbGxBcmd1bWVudExpc3QobGlzdCwgbWV0aG9kQXJndW1lbnRzKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJpbnN0YWxsQXJndW1lbnRMaXN0XCIsIG1ldGhvZEFyZ3VtZW50cy5sZW5ndGgsIFwiYXJndW1lbnRzXCIsIG1ldGhvZEFyZ3VtZW50cyk7XG4gICAgICAgICAgICAgICAgbGlzdC5lZGl0YWJsZUxpc3QoXCJlbXB0eVwiKTtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1ldGhvZEFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBsaXN0LmVkaXRhYmxlTGlzdChcImFkZEl0ZW1cIiwgbWV0aG9kQXJndW1lbnRzW2ldKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkaW5wdXRBcmd1bWVudERlZmluaXRpb24uaGlkZSgpO1xuICAgICAgICAgICAgJG91dHB1dEFyZ3VtZW50RGVmaW5pdGlvbi5oaWRlKCk7XG4gICAgICAgICAgICBtYW5hZ2VBUElDYWxsKFwidmFsaWRhdGVcIiwgJHZhbGlkYXRlQnRuLCAoKSA9PiAoe1xuICAgICAgICAgICAgICAgIHVybDogXCIvb3BjdWEtZW5kcG9pbnQyL2FyZ3VtZW50RGVmaW5pdGlvblwiLFxuICAgICAgICAgICAgICAgIGJvZHk6IHtcbiAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiBnZXRFbmRwb2ludFBhcmFtZXRlcnMoKSxcbiAgICAgICAgICAgICAgICAgICAgb2JqZWN0SWQ6ICRvYmplY3RJZC52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgbWV0aG9kSWQ6ICRtZXRob2RJZC52YWwoKSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSksIChlcnIsIGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gcG9wdWxhdGUgdGhlIGxpc3RcbiAgICAgICAgICAgICAgICBjb25zdCBhcmd1bWVudERlZmluaXRpb24gPSBkYXRhLmFyZ3VtZW50RGVmaW5pdGlvbjtcbiAgICAgICAgICAgICAgICBkYXRhVHlwZXMgPSBkYXRhLmRhdGFUeXBlcztcbiAgICAgICAgICAgICAgICAkaW5wdXRBcmd1bWVudERlZmluaXRpb24uc2hvdygpO1xuICAgICAgICAgICAgICAgICRvdXRwdXRBcmd1bWVudERlZmluaXRpb24uc2hvdygpO1xuICAgICAgICAgICAgICAgIGluc3RhbGxBcmd1bWVudExpc3QoJGlucHV0QXJndW1lbnREZWZpbml0aW9uLCBhcmd1bWVudERlZmluaXRpb24uaW5wdXRBcmd1bWVudHMpO1xuICAgICAgICAgICAgICAgIGluc3RhbGxBcmd1bWVudExpc3QoJG91dHB1dEFyZ3VtZW50RGVmaW5pdGlvbiwgYXJndW1lbnREZWZpbml0aW9uLm91dHB1dEFyZ3VtZW50cyk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJkYXRhXCIsIGRhdGEpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIG9uZWRpdHNhdmUoKSB7IH0sXG4gICAgfSk7XG5cbn0pKCk7Il19
|
7
|
+
function _0x2977(){const _0x489df5=['installArgumentList','verify','Testing\x20Connection\x20...','pageX','Both','grey','393453cIvIbn','ns=0;i=47','isTypeRef','resolveParentNode','Bad','toggle','children','HasSubtype','<br>','#node-input-methodId','fa-question','securityMode','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','$info','/browse','offset','value','show','fa-cog','Objects','find','ns=0;i=40','<li><i\x20class=\x22fa\x20','pageY','IsForward','displayName','4487hAiwhp','trigger','references','node','internal\x20error\x20','Method','css','expandable\x20expanded','addClass','opc.tcp://opcuademo.sterfive.com:26543','-messages','extra','attr','error','inputs','nodeClass','OpcUa-Client2-Call','expandable','removeClass','-failure','stringify','replace','Invalid','50%','message','fetched\x20:\x20','$combo','baseUrl','8328mAeiuJ','fetched','parentNode','\x20Fetching\x20done','sterfive-combo-box','<div\x20class=\x22spinner\x22></div>','suppressed','</li>','userCertificate','100%','replaceWith','rgba(61,\x2060,\x204,\x200.525)','endpointNode','Object','widget','expanded','ReferenceType','$tree','dataType','4KeivGX','name','-pending','OPCUA-Call','nodeAddressString','<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>','#node-input-endpoint','VariableType','<p>','<div/>','542524ryZQWa','DodgerBlue','editableList','View','match','Organizes','securityPolicy','nodes','Variable','hasClass','!!failure!!','<input\x20type=\x22text\x22>','Unspecified','throw','DisplayName','ObjectType','POST','typeDefinition','already\x20fetched','statusText','text','loading','1222107EwMHOD','json','log','length','nodeBrowser','4453254fmSpOm','status','argumentDefinition','val','remove','userIdentityType','fetching\x20failed\x20with\x20error','closest','empty','userName','nodeId','12017640bYHsrr','UserName','placeholder','right','Calling\x20nodeBrowser\x20Done','data','fa-list-alt','map','referenceTypeId','dataTypes','fa-object-group','TypeDefinition','toggleClass','userPrivatekey','/opcua-endpoint2','currentParent','browseName','change','assign','appendTo','Inverse','next','reset','append','<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','</p>','stopPropagation','validate','function','.spinner','sterfive.nodeBrowser','outputArguments','DarkOrange','SuppressedError','filter','then','inputArguments','DataType','#validate-call-arguments-button',':visible','5lUNtit','$inputGroup','688767kvMxFN','input-group','click','$input','<ul\x20class=\x22sterfive-tree\x22></ul>','Forward','../../icons/opcuanodeLogo.png','$verifyBtn','element','left','$dropdown','-success','$toggleTreeBtn','addItem','application/json','reference','ns=0;i=46','Good','SeaGreen','apply','<div\x20class=\x22argument-entry\x22>','#method-input-argument-definition','BrowseName','join','toString','NodeClass','err','failure','<li>error\x20','auto','fa-sliders','#node-input-objectId','html','#C0DEED','hide','endpoint','fa-folder','options','opcua','top','/checkNodeId','ns=0;i=61','statusCode','registerType','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','HasChild','#method-output-argument-definition'];_0x2977=function(){return _0x489df5;};return _0x2977();}function _0x4e38(_0xe17854,_0x3dac53){const _0x29775a=_0x2977();return _0x4e38=function(_0x4e3829,_0x23f9ea){_0x4e3829=_0x4e3829-0x1bc;let _0x1a4ccd=_0x29775a[_0x4e3829];return _0x1a4ccd;},_0x4e38(_0xe17854,_0x3dac53);}(function(_0x241d29,_0x5ad6e9){const _0x396d26=_0x4e38,_0x2ae02f=_0x241d29();while(!![]){try{const _0x44f32b=parseInt(_0x396d26(0x205))/0x1+-parseInt(_0x396d26(0x28d))/0x2+parseInt(_0x396d26(0x1cb))/0x3*(parseInt(_0x396d26(0x283))/0x4)+parseInt(_0x396d26(0x203))/0x5*(-parseInt(_0x396d26(0x1d0))/0x6)+-parseInt(_0x396d26(0x254))/0x7*(parseInt(_0x396d26(0x270))/0x8)+parseInt(_0x396d26(0x23a))/0x9+parseInt(_0x396d26(0x1db))/0xa;if(_0x44f32b===_0x5ad6e9)break;else _0x2ae02f['push'](_0x2ae02f['shift']());}catch(_0x116f45){_0x2ae02f['push'](_0x2ae02f['shift']());}}}(_0x2977,0xa1581),(function(){'use strict';const _0x37b5c8=_0x4e38;function _0x4d7aa9(_0x15cef7,_0x55e506,_0x3bfee3,_0x57d838){function _0x39ab70(_0xcc5fee){return _0xcc5fee instanceof _0x3bfee3?_0xcc5fee:new _0x3bfee3(function(_0x71f7e6){_0x71f7e6(_0xcc5fee);});}return new(_0x3bfee3||(_0x3bfee3=Promise))(function(_0x234752,_0x38918f){const _0x22a8e7=_0x4e38;function _0x5154dc(_0x59f143){const _0x2678f9=_0x4e38;try{_0x5affa4(_0x57d838[_0x2678f9(0x1f0)](_0x59f143));}catch(_0x4d9e7a){_0x38918f(_0x4d9e7a);}}function _0x69b76a(_0x336c50){const _0x211a92=_0x4e38;try{_0x5affa4(_0x57d838[_0x211a92(0x1c2)](_0x336c50));}catch(_0x3dd56c){_0x38918f(_0x3dd56c);}}function _0x5affa4(_0xdc5f4a){const _0x4534d2=_0x4e38;_0xdc5f4a['done']?_0x234752(_0xdc5f4a['value']):_0x39ab70(_0xdc5f4a[_0x4534d2(0x24a)])[_0x4534d2(0x1fe)](_0x5154dc,_0x69b76a);}_0x5affa4((_0x57d838=_0x57d838[_0x22a8e7(0x218)](_0x15cef7,_0x55e506||[]))['next']());});}typeof SuppressedError===_0x37b5c8(0x1f7)?SuppressedError:function(_0x2657e7,_0x3b10a5,_0x87acc4){const _0x3a3a59=_0x37b5c8;var _0x565b5e=new Error(_0x87acc4);return _0x565b5e[_0x3a3a59(0x284)]=_0x3a3a59(0x1fc),_0x565b5e[_0x3a3a59(0x261)]=_0x2657e7,_0x565b5e[_0x3a3a59(0x276)]=_0x3b10a5,_0x565b5e;};const _0x23eb3a='ns=0;i=35',_0x1e4501=_0x37b5c8(0x22e),_0x5f485f=_0x37b5c8(0x23b),_0x493964=_0x37b5c8(0x215),_0x3ffd2c='ns=0;i=34',_0x572c75='ns=0;i=45',_0x3003b0=_0x37b5c8(0x24f);var _0x1b95cd;(function(_0x1f5f9d){const _0x44aa8d=_0x37b5c8;_0x1f5f9d[_0x1f5f9d['Forward']=0x0]=_0x44aa8d(0x20a),_0x1f5f9d[_0x1f5f9d['Inverse']=0x1]=_0x44aa8d(0x1ef),_0x1f5f9d[_0x1f5f9d[_0x44aa8d(0x238)]=0x2]='Both',_0x1f5f9d[_0x1f5f9d['Invalid']=0x3]=_0x44aa8d(0x26a);}(_0x1b95cd||(_0x1b95cd={})));var _0x5d205a;(function(_0x1fb753){const _0x5a2bad=_0x37b5c8;_0x1fb753[_0x1fb753[_0x5a2bad(0x1c1)]=0x0]=_0x5a2bad(0x1c1),_0x1fb753[_0x1fb753['Object']=0x1]=_0x5a2bad(0x27d),_0x1fb753[_0x1fb753[_0x5a2bad(0x1bd)]=0x2]=_0x5a2bad(0x1bd),_0x1fb753[_0x1fb753['Method']=0x4]=_0x5a2bad(0x259),_0x1fb753[_0x1fb753[_0x5a2bad(0x1c4)]=0x8]='ObjectType',_0x1fb753[_0x1fb753[_0x5a2bad(0x28a)]=0x10]=_0x5a2bad(0x28a),_0x1fb753[_0x1fb753[_0x5a2bad(0x280)]=0x20]='ReferenceType',_0x1fb753[_0x1fb753[_0x5a2bad(0x200)]=0x40]=_0x5a2bad(0x200),_0x1fb753[_0x1fb753[_0x5a2bad(0x290)]=0x80]='View';}(_0x5d205a||(_0x5d205a={})));var _0x5690c9;(function(_0xdbcd3a){const _0x327258=_0x37b5c8;_0xdbcd3a[_0xdbcd3a['Object']=0x1]=_0x327258(0x27d),_0xdbcd3a[_0xdbcd3a['Variable']=0x2]=_0x327258(0x1bd),_0xdbcd3a[_0xdbcd3a['Method']=0x4]=_0x327258(0x259),_0xdbcd3a[_0xdbcd3a[_0x327258(0x1c4)]=0x8]=_0x327258(0x1c4),_0xdbcd3a[_0xdbcd3a[_0x327258(0x28a)]=0x10]=_0x327258(0x28a),_0xdbcd3a[_0xdbcd3a[_0x327258(0x280)]=0x20]=_0x327258(0x280),_0xdbcd3a[_0xdbcd3a[_0x327258(0x200)]=0x40]=_0x327258(0x200),_0xdbcd3a[_0xdbcd3a[_0x327258(0x290)]=0x80]='View';}(_0x5690c9||(_0x5690c9={})));var _0x43eaca;(function(_0x1c5f55){const _0x4d836d=_0x37b5c8;_0x1c5f55[_0x1c5f55[_0x4d836d(0x280)]=0x1]=_0x4d836d(0x280),_0x1c5f55[_0x1c5f55[_0x4d836d(0x252)]=0x2]=_0x4d836d(0x252),_0x1c5f55[_0x1c5f55['NodeClass']=0x4]=_0x4d836d(0x21e),_0x1c5f55[_0x1c5f55[_0x4d836d(0x21b)]=0x8]=_0x4d836d(0x21b),_0x1c5f55[_0x1c5f55['DisplayName']=0x10]=_0x4d836d(0x1c3),_0x1c5f55[_0x1c5f55[_0x4d836d(0x1e6)]=0x20]=_0x4d836d(0x1e6);}(_0x43eaca||(_0x43eaca={})));function _0x24cc82(_0xfda70a){const _0x452323=_0x37b5c8;switch(_0xfda70a){case'Organizes':return _0x23eb3a;case'HasProperty':return _0x493964;case'HasComponent':return _0x5f485f;case _0x452323(0x232):return _0x3ffd2c;case _0x452323(0x241):return _0x572c75;case'HasTypeDefinition':return _0x3003b0;}}const _0x2105f0=_0x5dc06f=>{const _0x11b79b=_0x37b5c8;switch(_0x5dc06f[_0x11b79b(0x263)]){case _0x11b79b(0x27d):if(_0x5dc06f[_0x11b79b(0x1e3)]===_0x23eb3a);if(_0x5dc06f[_0x11b79b(0x1c6)]===_0x1e4501||_0x5dc06f[_0x11b79b(0x1e3)]==='i=61')return{'icon':_0x11b79b(0x229),'color':_0x11b79b(0x27b)};return{'icon':'fa-object-group','color':_0x11b79b(0x217)};case _0x11b79b(0x1bd):if(_0x5dc06f['referenceTypeId']===_0x5f485f)return{'icon':_0x11b79b(0x1e1),'color':'SteelBlue'};else return _0x5dc06f[_0x11b79b(0x1e3)]===_0x493964?{'icon':_0x11b79b(0x1e1),'color':_0x11b79b(0x28e)}:{'icon':_0x11b79b(0x1e1),'color':'CadetBlue'};case _0x11b79b(0x259):return{'icon':_0x11b79b(0x24c),'color':'SandyBrown'};case _0x11b79b(0x1c4):return{'icon':_0x11b79b(0x1e5),'color':'DarkOrange'};case _0x11b79b(0x28a):return{'icon':_0x11b79b(0x223),'color':_0x11b79b(0x1fb)};}return{'icon':_0x11b79b(0x244),'color':_0x11b79b(0x239)};},_0x24c74f=({endpointNode:_0x26ac32,endpoint:_0x5cc7b4,baseUrl:_0x3fc25f},_0x360bf0,_0xb83211)=>_0x4d7aa9(void 0x0,void 0x0,void 0x0,function*(){const _0xda4cdc=_0x37b5c8,_0x50b970=_0x3fc25f+_0xda4cdc(0x1e9),_0x379c4a=_0x50b970+_0xda4cdc(0x248),_0x10fef8=Object['assign'](Object[_0xda4cdc(0x1ed)]({},_0xb83211),{'nodeId':_0x360bf0,'resultMask':0x3f}),_0xc4a1df=yield fetch(_0x379c4a,{'method':_0xda4cdc(0x1c5),'body':JSON['stringify']({'endpointNode':_0x26ac32,'endpoint':_0x5cc7b4,'browseDescription':_0x10fef8}),'headers':{'Content-Type':'application/json'}});if(_0xc4a1df['status']!==0xc8)return console[_0xda4cdc(0x1cd)](_0xda4cdc(0x1d6),_0xc4a1df[_0xda4cdc(0x1d1)],_0xc4a1df[_0xda4cdc(0x1c8)]),{'references':[]};console[_0xda4cdc(0x1cd)](_0xda4cdc(0x26d),_0xc4a1df[_0xda4cdc(0x1d1)],_0xc4a1df[_0xda4cdc(0x1c8)]);const _0x5582d3=yield _0xc4a1df['json'](),_0x1c3576=_0x5582d3['browseResult'][_0xda4cdc(0x256)]||[];return{'references':_0x1c3576};}),_0x36ca2a={'referenceTypeId':_0x24cc82(_0x37b5c8(0x232)),'includeSubtypes':!![],'browseDirection':_0x1b95cd[_0x37b5c8(0x20a)],'nodeClassMask':_0x5d205a[_0x37b5c8(0x1bd)]|_0x5d205a['Object']|_0x5d205a[_0x37b5c8(0x259)],'resultMask':0x3f},_0x2d3293={'referenceTypeId':_0x24cc82(_0x37b5c8(0x292)),'includeSubtypes':!![],'browseDirection':_0x1b95cd[_0x37b5c8(0x20a)],'nodeClassMask':_0x5d205a[_0x37b5c8(0x1bd)]|_0x5d205a[_0x37b5c8(0x27d)]|_0x5d205a[_0x37b5c8(0x259)],'resultMask':0x3f},_0x394498=({endpointNode:_0x22249c,endpoint:_0x33f204,baseUrl:_0x24ad07},_0x3dcf21,_0x384f4a)=>_0x4d7aa9(void 0x0,void 0x0,void 0x0,function*(){const _0x104ad1=_0x37b5c8,_0x5a7ca5=_0x24ad07+_0x104ad1(0x1e9),_0x5d7151=_0x3dcf21['val'](),_0x1ce5c6=yield fetch(_0x5a7ca5+_0x104ad1(0x22d),{'method':'POST','body':JSON[_0x104ad1(0x268)]({'endpointNode':_0x22249c,'endpoint':_0x33f204,'nodeId':_0x5d7151}),'headers':{'Content-Type':_0x104ad1(0x213)}}),_0x3e2884=(_0x525b21,_0x171665)=>{const _0x262da3=_0x104ad1;_0x384f4a[_0x262da3(0x1c9)](_0x525b21)[_0x262da3(0x25c)]('sterfive-info')[_0x262da3(0x25c)](_0x171665),_0x384f4a[_0x262da3(0x24b)](),setTimeout(()=>{const _0x3f473f=_0x262da3;_0x384f4a['removeClass'](_0x171665),_0x384f4a[_0x3f473f(0x227)]();},0xbb8);},_0x3f01d9=yield _0x1ce5c6[_0x104ad1(0x1cc)]();_0x1ce5c6[_0x104ad1(0x1d1)]!==0xc8?_0x3e2884(_0x104ad1(0x1bf)+_0x5d7151,'failure'):_0x3f01d9['statusCode'][_0x104ad1(0x291)](/Good/)?(_0x3dcf21[_0x104ad1(0x1d3)](_0x3f01d9[_0x104ad1(0x287)]),_0x3dcf21['trigger']('change'),_0x3e2884(_0x104ad1(0x216),'ok')):(_0x3dcf21[_0x104ad1(0x1d3)](''+_0x5d7151),_0x3e2884(_0x3f01d9[_0x104ad1(0x22f)]+'\x20'+_0x1ce5c6[_0x104ad1(0x1c8)],_0x104ad1(0x220)));});function _0x16485e(_0x34c5be,_0x3797b8){return _0x4d7aa9(this,void 0x0,void 0x0,function*(){const _0x936eb8=_0x4e38,_0x1621e0=_0x34c5be[_0x936eb8(0x1e0)]('value'),_0x519d50=yield _0x24c74f(_0x3797b8,_0x1621e0,_0x36ca2a),_0x1fb0c5=yield _0x24c74f(_0x3797b8,_0x1621e0,_0x2d3293);return{'references':[..._0x519d50[_0x936eb8(0x256)],..._0x1fb0c5['references']]};});}const _0x2b3f70={'referenceTypeId':_0x24cc82(_0x37b5c8(0x241)),'includeSubtypes':!![],'browseDirection':_0x1b95cd[_0x37b5c8(0x20a)],'nodeClassMask':_0x5d205a['ReferenceType']|_0x5d205a[_0x37b5c8(0x1c4)]|_0x5d205a[_0x37b5c8(0x200)]|_0x5d205a[_0x37b5c8(0x28a)],'resultMask':0x3f};function _0x115401(_0x20fb5c,_0x346b55){return _0x4d7aa9(this,void 0x0,void 0x0,function*(){const _0x3522cb=_0x4e38,_0x588981=_0x20fb5c[_0x3522cb(0x1e0)](_0x3522cb(0x24a)),_0x384582=yield _0x24c74f(_0x346b55,_0x588981,_0x2b3f70);return _0x384582;});}const _0x36ed14=_0x3f6d05=>{const _0x31e2c9=_0x37b5c8;var _0x1cb527,_0x8656d7;if(!_0x3f6d05){const _0x4cb6cb=$(_0x31e2c9(0x231));return _0x4cb6cb;}const _0x3377c6=_0x3f6d05['nodeId'][_0x31e2c9(0x21d)](),_0x330536=((_0x1cb527=_0x3f6d05[_0x31e2c9(0x253)])===null||_0x1cb527===void 0x0?void 0x0:_0x1cb527[_0x31e2c9(0x1c9)])||((_0x8656d7=_0x3f6d05[_0x31e2c9(0x1eb)])===null||_0x8656d7===void 0x0?void 0x0:_0x8656d7['name'])||_0x3f6d05[_0x31e2c9(0x1da)][_0x31e2c9(0x21d)](),{icon:_0x41fe1d,color:_0x4b7e95}=_0x2105f0(_0x3f6d05),_0x1ed94d=$(_0x31e2c9(0x250)+_0x41fe1d+'\x22\x20style=\x22color:'+_0x4b7e95+';\x22></i>\x20'+_0x330536+'<ul></ul></li>');return _0x1ed94d[_0x31e2c9(0x25c)](_0x31e2c9(0x265)),_0x1ed94d[_0x31e2c9(0x1e0)](_0x31e2c9(0x24a),_0x3377c6),_0x1ed94d[_0x31e2c9(0x1e0)](_0x31e2c9(0x214),_0x3f6d05),_0x1ed94d;},_0x43bdb3=()=>{const _0x521c83=_0x37b5c8;$[_0x521c83(0x27e)](_0x521c83(0x1f9),{'options':{'endpointNode':()=>({'endpoint':_0x521c83(0x25d)}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':'Objects'},'nodeClass':_0x521c83(0x27d),'nodeId':'ns=0;i=85','displayName':{'text':_0x521c83(0x24d)},'typeDefinition':_0x1e4501}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x4d7aa9(this,void 0x0,void 0x0,function*(){const _0x3e76b0=_0x4e38,_0x3f60d4=this,_0x16b111=typeof _0x3f60d4[_0x3e76b0(0x22a)][_0x3e76b0(0x272)]===_0x3e76b0(0x1f7)?_0x3f60d4[_0x3e76b0(0x22a)][_0x3e76b0(0x272)]():_0x3f60d4['options'][_0x3e76b0(0x272)];if(_0x16b111 instanceof Promise)return yield _0x16b111;return _0x16b111;});},'reset'(){const _0x54a377=_0x521c83,_0x213899=this;_0x213899[_0x54a377(0x281)][_0x54a377(0x1d8)](),this['resolveParentNode']()[_0x54a377(0x1fe)](_0x5f2b64=>{const _0x595475=_0x54a377,_0x21a58d=_0x36ed14(_0x5f2b64);_0x213899[_0x595475(0x281)]['append'](_0x21a58d),_0x213899[_0x595475(0x1ea)]=_0x5f2b64;});},'verify'(){const _0x3f40e9=_0x521c83,_0x414443=this,_0x21e536={'baseUrl':_0x414443[_0x3f40e9(0x22a)][_0x3f40e9(0x26f)],'endpointNode':typeof _0x414443[_0x3f40e9(0x22a)][_0x3f40e9(0x27c)]===_0x3f40e9(0x1f7)?_0x414443[_0x3f40e9(0x22a)][_0x3f40e9(0x27c)]():_0x414443[_0x3f40e9(0x22a)][_0x3f40e9(0x27c)],'endpoint':typeof _0x414443[_0x3f40e9(0x22a)][_0x3f40e9(0x228)]==='function'?_0x414443[_0x3f40e9(0x22a)][_0x3f40e9(0x228)]():_0x414443[_0x3f40e9(0x22a)][_0x3f40e9(0x228)]};_0x394498(_0x21e536,_0x414443[_0x3f40e9(0x208)],_0x414443[_0x3f40e9(0x247)]);},'_create'(){const _0x16e8e4=_0x521c83,_0x289981=this;function _0x595b2c(_0x3fb199,_0x411f57,_0x594af5){return _0x4d7aa9(this,void 0x0,void 0x0,function*(){const _0xb786c1=_0x4e38;if(_0x3fb199[_0xb786c1(0x1be)](_0xb786c1(0x271))){console['log'](_0xb786c1(0x1c7));return;}if(_0x3fb199[_0xb786c1(0x1be)]('loading')){console[_0xb786c1(0x1cd)]('already\x20loading');return;}_0x3fb199['addClass']('loading'),_0x3fb199['append'](_0xb786c1(0x275));try{_0x3fb199[_0xb786c1(0x240)]('ul')[_0xb786c1(0x1d8)]();const {references:_0xe18bf8}=yield _0x411f57(_0x3fb199,_0x594af5);for(const _0x4efd7d of _0xe18bf8){if(_0x289981[_0xb786c1(0x22a)][_0xb786c1(0x1fd)]&&!_0x289981[_0xb786c1(0x22a)]['filter'](_0x4efd7d))continue;const _0x5911d0=_0x36ed14(_0x4efd7d);_0x3fb199[_0xb786c1(0x240)]('ul')[_0xb786c1(0x1f2)](_0x5911d0);}_0x3fb199[_0xb786c1(0x25c)](_0xb786c1(0x271));}catch(_0x456a9c){_0x3fb199[_0xb786c1(0x240)]('ul')['append'](_0xb786c1(0x221)+_0x456a9c[_0xb786c1(0x26c)]+_0xb786c1(0x277)),console[_0xb786c1(0x1cd)](_0xb786c1(0x21f),_0x456a9c);}_0x3fb199[_0xb786c1(0x24e)](_0xb786c1(0x1f8))[_0xb786c1(0x1d4)](),_0x3fb199[_0xb786c1(0x266)](_0xb786c1(0x1ca));});}_0x289981['$input']=this[_0x16e8e4(0x20d)],_0x289981[_0x16e8e4(0x26e)]=$(_0x16e8e4(0x28c)),_0x289981[_0x16e8e4(0x26e)]['addClass'](_0x16e8e4(0x274)),this[_0x16e8e4(0x20d)][_0x16e8e4(0x27a)](_0x289981[_0x16e8e4(0x26e)]),_0x289981['$inputGroup']=$(_0x16e8e4(0x28c))['addClass'](_0x16e8e4(0x206)),_0x289981['$combo'][_0x16e8e4(0x1f2)](_0x289981[_0x16e8e4(0x204)]),_0x289981['$inputGroup'][_0x16e8e4(0x1f2)](_0x289981[_0x16e8e4(0x208)]),_0x289981[_0x16e8e4(0x211)]=$(_0x16e8e4(0x1f3)),_0x289981['$inputGroup'][_0x16e8e4(0x1f2)](_0x289981[_0x16e8e4(0x211)]),_0x289981[_0x16e8e4(0x211)]['on']('click',function(){const _0x52708e=_0x16e8e4;!_0x289981[_0x52708e(0x20f)]['is'](_0x52708e(0x202))&&(_0x289981[_0x52708e(0x23d)]()[_0x52708e(0x1fe)](_0x1da2aa=>{const _0x3151c8=_0x52708e;var _0x337923;(_0x1da2aa!==_0x289981[_0x3151c8(0x1ea)]||((_0x337923=_0x289981[_0x3151c8(0x1ea)])===null||_0x337923===void 0x0?void 0x0:_0x337923['nodeId'])!==_0x1da2aa[_0x3151c8(0x1da)])&&_0x289981['reset']();}),_0x289981[_0x52708e(0x247)]['hide']()),_0x289981[_0x52708e(0x20f)][_0x52708e(0x23f)]();}),_0x289981[_0x16e8e4(0x20c)]=$(_0x16e8e4(0x288)),_0x289981[_0x16e8e4(0x204)]['append'](_0x289981['$verifyBtn']),_0x289981[_0x16e8e4(0x20c)]['on']('click',()=>{const _0x464c24=_0x16e8e4;this[_0x464c24(0x235)]();}),!_0x289981[_0x16e8e4(0x208)]['attr'](_0x16e8e4(0x1dd))&&_0x289981[_0x16e8e4(0x208)][_0x16e8e4(0x260)]('placeholder',_0x16e8e4(0x246)),_0x289981[_0x16e8e4(0x247)]=$('<div\x20class=\x22info-text\x22></div>'),_0x289981[_0x16e8e4(0x247)]['hide'](),{'baseUrl':_0x289981['options'][_0x16e8e4(0x26f)],'endpointNode':typeof _0x289981[_0x16e8e4(0x22a)][_0x16e8e4(0x27c)]===_0x16e8e4(0x1f7)?_0x289981['options'][_0x16e8e4(0x27c)]():_0x289981[_0x16e8e4(0x22a)][_0x16e8e4(0x27c)],'endpoint':typeof _0x289981[_0x16e8e4(0x22a)][_0x16e8e4(0x228)]===_0x16e8e4(0x1f7)?_0x289981[_0x16e8e4(0x22a)][_0x16e8e4(0x228)]():_0x289981[_0x16e8e4(0x22a)][_0x16e8e4(0x228)]},_0x289981[_0x16e8e4(0x20f)]=$(_0x16e8e4(0x28c))[_0x16e8e4(0x25c)]('sterfive-dropdown')[_0x16e8e4(0x227)](),_0x289981[_0x16e8e4(0x26e)]['append'](_0x289981[_0x16e8e4(0x247)]),_0x289981[_0x16e8e4(0x26e)][_0x16e8e4(0x1f2)](_0x289981[_0x16e8e4(0x20f)]),_0x289981[_0x16e8e4(0x281)]=$(_0x16e8e4(0x209))[_0x16e8e4(0x1ee)](_0x289981[_0x16e8e4(0x20f)]),this[_0x16e8e4(0x1f1)](),_0x289981[_0x16e8e4(0x281)]['on'](_0x16e8e4(0x207),'li',function(_0x5d50c9){const _0x51f666=_0x16e8e4;var _0x2be929,_0x349dcb;_0x5d50c9[_0x51f666(0x1f5)]();let _0x5d1769=$(this);const _0xa7ad07=0x14,_0x19ca30=0x14,_0x5c5f3a=$(this)[_0x51f666(0x249)](),_0x17095b=_0x5d50c9;if(_0x17095b[_0x51f666(0x237)]>=_0x5c5f3a['left']&&_0x17095b[_0x51f666(0x237)]<=_0x5c5f3a[_0x51f666(0x20e)]+_0xa7ad07&&_0x17095b[_0x51f666(0x251)]>=_0x5c5f3a[_0x51f666(0x22c)]&&_0x17095b[_0x51f666(0x251)]<=_0x5c5f3a[_0x51f666(0x22c)]+_0x19ca30){if(_0x5d1769[_0x51f666(0x1be)](_0x51f666(0x265))){if(_0x5d1769[_0x51f666(0x1be)]('fetched')){_0x5d1769[_0x51f666(0x266)]('expandable')[_0x51f666(0x25c)](_0x51f666(0x27f)),_0x5d1769[_0x51f666(0x240)]('ul')[_0x51f666(0x23f)]();return;}const _0x39fa30={'baseUrl':_0x289981[_0x51f666(0x22a)][_0x51f666(0x26f)],'endpointNode':typeof _0x289981['options'][_0x51f666(0x27c)]===_0x51f666(0x1f7)?_0x289981[_0x51f666(0x22a)][_0x51f666(0x27c)]():_0x289981[_0x51f666(0x22a)][_0x51f666(0x27c)],'endpoint':typeof _0x289981[_0x51f666(0x22a)][_0x51f666(0x228)]===_0x51f666(0x1f7)?_0x289981[_0x51f666(0x22a)]['endpoint']():_0x289981['options']['endpoint']},_0x45607d=!_0x289981[_0x51f666(0x22a)][_0x51f666(0x23c)]?_0x16485e:_0x115401;_0x595b2c(_0x5d1769,_0x45607d,_0x39fa30)[_0x51f666(0x1fe)](()=>{const _0x36d667=_0x51f666;console[_0x36d667(0x1cd)](_0x36d667(0x273)),console['log'](_0x36d667(0x271)),_0x5d1769[_0x36d667(0x266)](_0x36d667(0x265))[_0x36d667(0x25c)]('expanded');})['catch'](_0x46e91a=>{const _0x3daa62=_0x51f666;_0x5d1769[_0x3daa62(0x266)](_0x3daa62(0x265))[_0x3daa62(0x25c)]('expanded'),console['log'](_0x3daa62(0x261),_0x46e91a);});}else{if(_0x5d1769[_0x51f666(0x1be)](_0x51f666(0x27f)))_0x5d1769[_0x51f666(0x240)]('ul')[_0x51f666(0x23f)](),_0x5d1769[_0x51f666(0x1e7)](_0x51f666(0x25b));else{if(_0x5d1769[_0x51f666(0x240)]('ul')[_0x51f666(0x240)]()[_0x51f666(0x1ce)]>0x0)_0x5d1769[_0x51f666(0x240)]('ul')[_0x51f666(0x23f)](),_0x5d1769['toggleClass'](_0x51f666(0x25b));else;}}}else{const _0x373673=_0x5d1769[_0x51f666(0x1e0)](_0x51f666(0x24a)),_0x2b863b=_0x5d1769[_0x51f666(0x1e0)]('reference');if(_0x289981[_0x51f666(0x22a)]['isSelectable']&&!_0x289981[_0x51f666(0x22a)]['isSelectable'](_0x2b863b))return;_0x289981[_0x51f666(0x208)]['data'](_0x51f666(0x214),_0x2b863b);const _0x324858=((_0x2be929=_0x2b863b[_0x51f666(0x253)])===null||_0x2be929===void 0x0?void 0x0:_0x2be929['text'])||((_0x349dcb=_0x2b863b[_0x51f666(0x1eb)])===null||_0x349dcb===void 0x0?void 0x0:_0x349dcb[_0x51f666(0x284)])||_0x2b863b[_0x51f666(0x1da)][_0x51f666(0x21d)](),_0xf17917='['+_0x324858+']('+_0x373673+')';_0x289981[_0x51f666(0x208)][_0x51f666(0x1d3)](_0xf17917),_0x289981[_0x51f666(0x208)][_0x51f666(0x255)](_0x51f666(0x1ec)),_0x289981[_0x51f666(0x20f)]['hide']();}}),$(document)['on'](_0x16e8e4(0x207),function(_0x3cea73){const _0x54b15b=_0x16e8e4;!$(_0x3cea73['target'])[_0x54b15b(0x1d7)](_0x289981[_0x54b15b(0x26e)])['length']&&_0x289981['$dropdown'][_0x54b15b(0x227)]();});}});},_0x72ac63=({endpointNode:_0x20a84c,endpoint:_0x39820e,baseUrl:_0x4e478b},_0x2c901b)=>_0x4d7aa9(void 0x0,void 0x0,void 0x0,function*(){const _0x4cb5ee=_0x37b5c8,_0x8a78cf=_0x4e478b+_0x4cb5ee(0x1e9),_0x2bdd5f=_0x8a78cf+_0x4cb5ee(0x22d),_0x13592e=yield fetch(_0x2bdd5f,{'method':_0x4cb5ee(0x1c5),'body':JSON['stringify']({'endpointNode':_0x20a84c,'endpoint':_0x39820e,'nodeId':_0x2c901b}),'headers':{'Content-Type':_0x4cb5ee(0x213)}});if(_0x13592e[_0x4cb5ee(0x1d1)]!==0xc8){console['log'](_0x4cb5ee(0x1d6),_0x13592e[_0x4cb5ee(0x1d1)],_0x13592e[_0x4cb5ee(0x1c8)]);const _0x5a4eb8={'statusCode':_0x4cb5ee(0x23e),'nodeAddressString':_0x2c901b};return _0x5a4eb8;}console[_0x4cb5ee(0x1cd)](_0x4cb5ee(0x26d),_0x13592e[_0x4cb5ee(0x1d1)],_0x13592e[_0x4cb5ee(0x1c8)]);const _0x4a1491=yield _0x13592e[_0x4cb5ee(0x1cc)]();return _0x4a1491;});function _0x3cd347(_0x2860c5,_0x2e66d2,_0x22a82e,_0xecac52){const _0x719cd6=_0x37b5c8,_0x3bbe12=$('#'+_0x2860c5+_0x719cd6(0x210)),_0x262de6=$('#'+_0x2860c5+_0x719cd6(0x267)),_0x1993bb=$('#'+_0x2860c5+_0x719cd6(0x285)),_0x2d39e4=$('#'+_0x2860c5+_0x719cd6(0x25e));let _0x1fc652=![];_0x3bbe12[_0x719cd6(0x227)](),_0x262de6[_0x719cd6(0x227)](),_0x1993bb[_0x719cd6(0x227)](),_0x2e66d2['on']('click',()=>{const _0x27753d=_0x719cd6;if(_0x1fc652)return;_0x1fc652=!![],_0x1993bb['removeClass'](_0x27753d(0x227)),_0x1993bb[_0x27753d(0x225)](_0x27753d(0x236)),_0x3bbe12[_0x27753d(0x25c)](_0x27753d(0x227)),_0x262de6['addClass']('hide'),_0x2d39e4[_0x27753d(0x225)]('');const {body:_0x63a5b6,url:_0x48e251}=_0x22a82e();fetch(_0x48e251,{'method':_0x27753d(0x1c5),'headers':{'Content-Type':'application/json'},'body':JSON[_0x27753d(0x268)](_0x63a5b6)})[_0x27753d(0x1fe)](_0x57a9cf=>_0x57a9cf['json']())['then'](_0x1b8570=>{const _0xef104b=_0x27753d;_0x1fc652=![],_0x1993bb[_0xef104b(0x227)](),console[_0xef104b(0x1cd)](JSON[_0xef104b(0x268)](_0x1b8570,null,'\x20'));if(_0x1b8570['result']==='ok')_0x3bbe12[_0xef104b(0x266)]('hide'),_0x262de6[_0xef104b(0x25c)](_0xef104b(0x227)),_0x2d39e4['html'](_0x1b8570[_0xef104b(0x26c)][_0xef104b(0x269)]('\x0a',_0xef104b(0x242))),_0xecac52(null,_0x1b8570);else{const _0x76fd2=_0x36b3ce=>!_0x36b3ce?'':_0x36b3ce['split']('\x0a')['map'](_0x4cd347=>_0xef104b(0x28b)+_0x4cd347+_0xef104b(0x1f4))[_0xef104b(0x21c)]('\x0a'),_0x2f2b1e=_0x31179c=>Array['isArray'](_0x31179c)?_0x31179c[_0xef104b(0x1e2)](_0x76fd2)[_0xef104b(0x21c)]('\x0a'):_0x76fd2(_0x31179c);_0x3bbe12[_0xef104b(0x25c)](_0xef104b(0x227)),_0x262de6[_0xef104b(0x266)](_0xef104b(0x227)),_0x2d39e4[_0xef104b(0x225)](_0x2f2b1e(_0x1b8570['message'])+_0x2f2b1e(_0x1b8570[_0xef104b(0x25f)])),_0xecac52(new Error(_0x1b8570['result']),_0x1b8570);}})['catch'](_0x2d3871=>{const _0x214d8c=_0x27753d;_0x1fc652=![],_0x1993bb['addClass']('hide'),_0x3bbe12[_0x214d8c(0x25c)](_0x214d8c(0x227)),_0x262de6[_0x214d8c(0x266)](_0x214d8c(0x227)),_0x2d39e4['html'](_0x214d8c(0x258)+_0x2d3871[_0x214d8c(0x26c)]),console[_0x214d8c(0x1cd)]('err',_0x2d3871),_0xecac52(_0x2d3871,null);});});}const _0xe12394=()=>{const _0x5f3fc9=_0x37b5c8,_0x42ce29=$('#node-input-endpoint'),_0x4873ad=_0x42ce29[_0x5f3fc9(0x1d3)](),_0x4f09cd=RED[_0x5f3fc9(0x1bc)][_0x5f3fc9(0x257)](_0x4873ad);if(!_0x4f09cd)return undefined;const {endpoint:_0x4c930d,securityMode:_0x393b5f,securityPolicy:_0x52dbfb,userIdentityType:_0x451947,userName:_0x2ae0a8,password:_0xc5f97,userCertificate:_0x291040,userPrivatekey:_0xdaf88f}=_0x4f09cd;return{'endpoint':_0x4c930d,'securityMode':_0x393b5f,'securityPolicy':_0x52dbfb,'userIdentityType':_0x451947,'userName':_0x2ae0a8,'password':_0xc5f97,'userCertificate':_0x291040,'userPrivatekey':_0xdaf88f};},_0x37bc72=()=>{return{'endpointNode':_0x2b009d};},_0x2b009d=()=>{const _0x2ffc35=_0x37b5c8,_0x54d14a=$(_0x2ffc35(0x289)),_0x1eefcd=_0x54d14a[_0x2ffc35(0x1d3)](),_0x3f0415=_0xe12394();if(!_0x3f0415)return undefined;return{'id':_0x1eefcd,'endpoint':_0x3f0415[_0x2ffc35(0x228)],'securityMode':_0x3f0415[_0x2ffc35(0x245)],'securityPolicy':_0x3f0415[_0x2ffc35(0x293)],'userIdentityType':_0x3f0415[_0x2ffc35(0x1d5)],'userName':_0x3f0415[_0x2ffc35(0x1d5)]===_0x2ffc35(0x1dc)?_0x3f0415[_0x2ffc35(0x1d9)]:undefined,'password':_0x3f0415['userIdentityType']===_0x2ffc35(0x1dc)?_0x3f0415['password']:undefined,'userCertificate':_0x3f0415[_0x2ffc35(0x278)],'userPrivatekey':_0x3f0415[_0x2ffc35(0x1e8)]};};RED[_0x37b5c8(0x1bc)][_0x37b5c8(0x230)](_0x37b5c8(0x264),{'category':_0x37b5c8(0x22b),'color':_0x37b5c8(0x226),'align':_0x37b5c8(0x1de),'icon':_0x37b5c8(0x20b),'paletteLabel':'call','defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':'OpcUa-Endpoint2'},'action':{'value':'read','required':!![]},'methodId':{'value':'','required':!![]},'objectId':{'value':'','required':!![]}},'outputs':0x2,'label'(){const _0x51934a=_0x37b5c8;return this[_0x51934a(0x284)]||_0x51934a(0x286);},'labelStyle'(){return this['name']?'node_label_italic':'';},'oneditprepare'(){const _0x262492=_0x37b5c8,_0x11757f=this;_0x43bdb3(),_0x11757f[_0x262492(0x262)]=0x1;let _0x4ac2b6={};console['log']('Calling\x20nodeBrowser');const _0x3334dd=$(_0x262492(0x224)),_0x110749=$(_0x262492(0x243)),_0x3f7b45=$(_0x262492(0x21a)),_0x3bb71b=$(_0x262492(0x233)),_0x45981=$(_0x262492(0x201));_0x3334dd[_0x262492(0x1cf)](Object['assign'](Object['assign']({},_0x37bc72()),{'filter'(_0x4cd100){const _0x525f3d=_0x262492;return _0x4cd100['nodeClass']===_0x525f3d(0x27d);}})),_0x110749['nodeBrowser'](Object[_0x262492(0x1ed)](Object['assign']({},_0x37bc72()),{'parentNode':()=>_0x4d7aa9(this,void 0x0,void 0x0,function*(){const _0x47c584=_0x262492;let _0x21015c=_0x3334dd[_0x47c584(0x1e0)](_0x47c584(0x214));if(!_0x21015c){const _0x4540f4=_0x3334dd[_0x47c584(0x1d3)](),_0x37d2c8=_0xe12394();if(!_0x37d2c8)return null;const _0x4c64e4={'baseUrl':'','endpoint':'','endpointNode':_0x37d2c8};try{const _0x2464c7=yield _0x72ac63(_0x4c64e4,_0x4540f4);_0x21015c=_0x2464c7[_0x47c584(0x214)];}catch(_0x26163c){console[_0x47c584(0x1cd)](_0x26163c);}}return _0x21015c;}),'filter'(_0x25447b){const _0x2d9299=_0x262492;return _0x25447b['nodeClass']===_0x2d9299(0x259)||_0x25447b['nodeClass']===_0x2d9299(0x27d);},'isSelectable'(_0x4f76de){const _0x334a94=_0x262492;return _0x4f76de[_0x334a94(0x263)]===_0x334a94(0x259);}})),_0x3334dd['on'](_0x262492(0x1ec),()=>{const _0x529983=_0x262492;_0x110749[_0x529983(0x1cf)](_0x529983(0x1f1));}),console[_0x262492(0x1cd)](_0x262492(0x1df));function _0x1fb373(_0x57d03d,_0x5152f5,_0x50c40a){const _0x28d93d=_0x262492,_0x539a30=$(_0x28d93d(0x219))[_0x28d93d(0x1ee)](_0x57d03d);$(_0x28d93d(0x1c0))[_0x28d93d(0x1d3)](_0x50c40a[_0x28d93d(0x284)]||'')[_0x28d93d(0x25a)]({'width':_0x28d93d(0x279)})['appendTo'](_0x539a30);const _0x2acdf1=_0x4ac2b6[_0x50c40a[_0x28d93d(0x282)]['toString']()],_0x247a32=(_0x2acdf1?_0x2acdf1[_0x28d93d(0x1eb)][_0x28d93d(0x284)]||'':_0x50c40a[_0x28d93d(0x282)][_0x28d93d(0x21d)]())+(_0x50c40a['valueRank']===0x1?'[]':'');$(_0x28d93d(0x1c0))[_0x28d93d(0x1d3)](_0x50c40a['description'][_0x28d93d(0x1c9)]||'')[_0x28d93d(0x25a)]({'width':_0x28d93d(0x26b)})[_0x28d93d(0x1ee)](_0x539a30),$(_0x28d93d(0x1c0))['val'](_0x247a32||'')[_0x28d93d(0x25a)]({'width':_0x28d93d(0x26b)})[_0x28d93d(0x1ee)](_0x539a30);}_0x3f7b45[_0x262492(0x28f)]({'addButton':![],'height':_0x262492(0x222),'scrollOnAdd':![],'addItem'(_0x535948,_0x4fced9,_0xd6f108){_0x1fb373(_0x535948,_0x4fced9,_0xd6f108);}}),_0x3bb71b[_0x262492(0x28f)]({'addButton':![],'height':'auto','scrollOnAdd':![],'addItem'(_0x123d4e,_0x4d68c4,_0x34f50f){_0x1fb373(_0x123d4e,_0x4d68c4,_0x34f50f);}});function _0x486661(_0x4e4a9d,_0x18ad31){const _0x4ab24e=_0x262492;console[_0x4ab24e(0x1cd)](_0x4ab24e(0x234),_0x18ad31[_0x4ab24e(0x1ce)],'arguments',_0x18ad31),_0x4e4a9d[_0x4ab24e(0x28f)]('empty');for(let _0x319443=0x0;_0x319443<_0x18ad31[_0x4ab24e(0x1ce)];_0x319443++){_0x4e4a9d[_0x4ab24e(0x28f)](_0x4ab24e(0x212),_0x18ad31[_0x319443]);}}_0x3f7b45['hide'](),_0x3bb71b[_0x262492(0x227)](),_0x3cd347(_0x262492(0x1f6),_0x45981,()=>({'url':'/opcua-endpoint2/argumentDefinition','body':{'endpointNode':_0x2b009d(),'objectId':_0x3334dd[_0x262492(0x1d3)](),'methodId':_0x110749[_0x262492(0x1d3)]()}}),(_0xa18e87,_0x25b38a)=>{const _0x255f15=_0x262492;if(_0xa18e87)return;const _0x17de16=_0x25b38a[_0x255f15(0x1d2)];_0x4ac2b6=_0x25b38a[_0x255f15(0x1e4)],_0x3f7b45[_0x255f15(0x24b)](),_0x3bb71b[_0x255f15(0x24b)](),_0x486661(_0x3f7b45,_0x17de16[_0x255f15(0x1ff)]),_0x486661(_0x3bb71b,_0x17de16[_0x255f15(0x1fa)]),console[_0x255f15(0x1cd)](_0x255f15(0x1e0),_0x25b38a);});},'oneditsave'(){}});}()));
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHg0ZDdhYTkiLCJfMHgxNWNlZjciLCJfMHg1NWU1MDYiLCJfMHgzYmZlZTMiLCJfMHg1N2Q4MzgiLCJfMHgzOWFiNzAiLCJfMHhjYzVmZWUiLCJfMHg3MWY3ZTYiLCJQcm9taXNlIiwiXzB4MjM0NzUyIiwiXzB4Mzg5MThmIiwiXzB4NTE1NGRjIiwiXzB4NTlmMTQzIiwiXzB4NWFmZmE0IiwiXzB4NGQ5ZTdhIiwiXzB4NjliNzZhIiwiXzB4MzM2YzUwIiwiXzB4M2RkNTZjIiwiXzB4ZGM1ZjRhIiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4MjY1N2U3IiwiXzB4M2IxMGE1IiwiXzB4ODdhY2M0IiwiXzB4NTY1YjVlIiwiRXJyb3IiLCJfMHgyM2ViM2EiLCJfMHgxZTQ1MDEiLCJfMHg1ZjQ4NWYiLCJfMHg0OTM5NjQiLCJfMHgzZmZkMmMiLCJfMHg1NzJjNzUiLCJfMHgzMDAzYjAiLCJfMHgxYjk1Y2QiLCJfMHgxZjVmOWQiLCJfMHg1ZDIwNWEiLCJfMHgxZmI3NTMiLCJfMHg1NjkwYzkiLCJfMHhkYmNkM2EiLCJfMHg0M2VhY2EiLCJfMHgxYzVmNTUiLCJfMHgyNGNjODIiLCJfMHhmZGE3MGEiLCJfMHgyMTA1ZjAiLCJfMHg1ZGMwNmYiLCJfMHgyNGM3NGYiLCJlbmRwb2ludE5vZGUiLCJfMHgyNmFjMzIiLCJlbmRwb2ludCIsIl8weDVjYzdiNCIsImJhc2VVcmwiLCJfMHgzZmMyNWYiLCJfMHgzNjBiZjAiLCJfMHhiODMyMTEiLCJfMHg1MGI5NzAiLCJfMHgzNzljNGEiLCJfMHgxMGZlZjgiLCJPYmplY3QiLCJfMHhjNGExZGYiLCJmZXRjaCIsIkpTT04iLCJjb25zb2xlIiwiXzB4NTU4MmQzIiwiXzB4MWMzNTc2IiwiXzB4MzZjYTJhIiwiXzB4MmQzMjkzIiwiXzB4Mzk0NDk4IiwiXzB4MjIyNDljIiwiXzB4MzNmMjA0IiwiXzB4MjRhZDA3IiwiXzB4M2RjZjIxIiwiXzB4Mzg0ZjRhIiwiXzB4NWE3Y2E1IiwiXzB4NWQ3MTUxIiwiXzB4MWNlNWM2IiwiXzB4M2UyODg0IiwiXzB4NTI1YjIxIiwiXzB4MTcxNjY1Iiwic2V0VGltZW91dCIsIl8weDNmMDFkOSIsIl8weDE2NDg1ZSIsIl8weDM0YzViZSIsIl8weDM3OTdiOCIsIl8weDE2MjFlMCIsIl8weDUxOWQ1MCIsIl8weDFmYjBjNSIsIl8weDJiM2Y3MCIsIl8weDExNTQwMSIsIl8weDIwZmI1YyIsIl8weDM0NmI1NSIsIl8weDU4ODk4MSIsIl8weDM4NDU4MiIsIl8weDM2ZWQxNCIsIl8weDNmNmQwNSIsIl8weDFjYjUyNyIsIl8weDg2NTZkNyIsIl8weDRjYjZjYiIsIiQiLCJfMHgzMzc3YzYiLCJfMHgzMzA1MzYiLCJpY29uIiwiXzB4NDFmZTFkIiwiY29sb3IiLCJfMHg0YjdlOTUiLCJfMHgxZWQ5NGQiLCJfMHg0M2JkYjMiLCJ1bmRlZmluZWQiLCJfMHgzZjYwZDQiLCJfMHgxNmIxMTEiLCJfMHgyMTM4OTkiLCJfMHg1ZjJiNjQiLCJfMHgyMWE1OGQiLCJfMHg0MTQ0NDMiLCJfMHgyMWU1MzYiLCJfMHgyODk5ODEiLCJfMHg1OTViMmMiLCJfMHgzZmIxOTkiLCJfMHg0MTFmNTciLCJfMHg1OTRhZjUiLCJyZWZlcmVuY2VzIiwiXzB4ZTE4YmY4IiwiXzB4NGVmZDdkIiwiXzB4NTkxMWQwIiwiXzB4NDU2YTljIiwiXzB4MWRhMmFhIiwiXzB4MzM3OTIzIiwiXzB4NWQ1MGM5IiwiXzB4MmJlOTI5IiwiXzB4MzQ5ZGNiIiwiXzB4NWQxNzY5IiwiXzB4YTdhZDA3IiwiXzB4MTljYTMwIiwiXzB4NWM1ZjNhIiwiXzB4MTcwOTViIiwiXzB4MzlmYTMwIiwiXzB4NDU2MDdkIiwiXzB4NDZlOTFhIiwiXzB4MzczNjczIiwiXzB4MmI4NjNiIiwiXzB4MzI0ODU4IiwiXzB4ZjE3OTE3IiwiZG9jdW1lbnQiLCJfMHgzY2VhNzMiLCJfMHg3MmFjNjMiLCJfMHgyMGE4NGMiLCJfMHgzOTgyMGUiLCJfMHg0ZTQ3OGIiLCJfMHgyYzkwMWIiLCJfMHg4YTc4Y2YiLCJfMHgyYmRkNWYiLCJfMHgxMzU5MmUiLCJfMHg1YTRlYjgiLCJfMHg0YTE0OTEiLCJfMHgzY2QzNDciLCJfMHgyODYwYzUiLCJfMHgyZTY2ZDIiLCJfMHgyMmE4MmUiLCJfMHhlY2FjNTIiLCJfMHgzYmJlMTIiLCJfMHgyNjJkZTYiLCJfMHgxOTkzYmIiLCJfMHgyZDM5ZTQiLCJfMHgxZmM2NTIiLCJib2R5IiwiXzB4NjNhNWI2IiwidXJsIiwiXzB4NDhlMjUxIiwiXzB4NTdhOWNmIiwiXzB4MWI4NTcwIiwiXzB4NzZmZDIiLCJfMHgzNmIzY2UiLCJfMHg0Y2QzNDciLCJfMHgyZjJiMWUiLCJfMHgzMTE3OWMiLCJBcnJheSIsIl8weDJkMzg3MSIsIl8weGUxMjM5NCIsIl8weDQyY2UyOSIsIl8weDQ4NzNhZCIsIl8weDRmMDljZCIsIlJFRCIsIl8weDRjOTMwZCIsInNlY3VyaXR5TW9kZSIsIl8weDM5M2I1ZiIsInNlY3VyaXR5UG9saWN5IiwiXzB4NTJkYmZiIiwidXNlcklkZW50aXR5VHlwZSIsIl8weDQ1MTk0NyIsInVzZXJOYW1lIiwiXzB4MmFlMGE4IiwicGFzc3dvcmQiLCJfMHhjNWY5NyIsInVzZXJDZXJ0aWZpY2F0ZSIsIl8weDI5MTA0MCIsInVzZXJQcml2YXRla2V5IiwiXzB4ZGFmODhmIiwiXzB4MzdiYzcyIiwiXzB4MmIwMDlkIiwiXzB4NTRkMTRhIiwiXzB4MWVlZmNkIiwiXzB4M2YwNDE1IiwiXzB4MTE3NTdmIiwiXzB4NGFjMmI2IiwiXzB4MzMzNGRkIiwiXzB4MTEwNzQ5IiwiXzB4M2Y3YjQ1IiwiXzB4M2JiNzFiIiwiXzB4NDU5ODEiLCJfMHg0Y2QxMDAiLCJfMHgyMTAxNWMiLCJfMHg0NTQwZjQiLCJfMHgzN2QyYzgiLCJfMHg0YzY0ZTQiLCJfMHgyNDY0YzciLCJfMHgyNjE2M2MiLCJfMHgyNTQ0N2IiLCJfMHg0Zjc2ZGUiLCJfMHgxZmIzNzMiLCJfMHg1N2QwM2QiLCJfMHg1MTUyZjUiLCJfMHg1MGM0MGEiLCJfMHg1MzlhMzAiLCJfMHgyYWNkZjEiLCJfMHgyNDdhMzIiLCJfMHg1MzU5NDgiLCJfMHg0ZmNlZDkiLCJfMHhkNmYxMDgiLCJfMHgxMjNkNGUiLCJfMHg0ZDY4YzQiLCJfMHgzNGY1MGYiLCJfMHg0ODY2NjEiLCJfMHg0ZTRhOWQiLCJfMHgxOGFkMzEiLCJfMHgzMTk0NDMiLCJfMHhhMThlODciLCJfMHgyNWIzOGEiLCJfMHgxN2RlMTYiXSwibWFwcGluZ3MiOiIyN0hBQUEsQ0FBQyxVLENBQ0csYSx3QkFtQkEsU0FBU0EsU0FBVCxDQUFtQkMsU0FBbkIsQ0FBNEJDLFNBQTVCLENBQXdDQyxTQUF4QyxDQUEyQ0MsU0FBM0MsQyxDQUNJLFNBQVNDLFNBQVQsQ0FBZUMsU0FBZixDLFFBQStCQSxTQUFBLFlBQWlCSCxTQUFqQixDQUFxQkcsU0FBckIsQ0FBNkIsSUFBSUgsU0FBSixDQUFNLFNBQVVJLFNBQVYsQyxDQUFxQkEsU0FBQSxDQUFRRCxTQUFSLEMsRUFBM0IsQyxTQUNyRCxHQUFLLENBQUFILFNBQUEsRUFBTSxDQUFBQSxTQUFBLENBQUlLLE9BQUosQ0FBTixDQUFMLENBQXlCLFNBQVVDLFNBQVYsQ0FBbUJDLFNBQW5CLEMseUJBQzVCLFNBQVNDLFNBQVQsQ0FBbUJDLFNBQW5CLEMseUJBQTRCLEcsQ0FBTUMsU0FBQSxDQUFLVCxTQUFBLEMsZ0JBQUEsRUFBZVEsU0FBZixDQUFMLEMsRUFBK0IsTUFBT0UsU0FBUCxDLENBQVlKLFNBQUEsQ0FBT0ksU0FBUCxDLEdBQzdFLFNBQVNDLFNBQVQsQ0FBa0JDLFNBQWxCLEMseUJBQTJCLEcsQ0FBTUgsU0FBQSxDQUFLVCxTQUFBLEMsZ0JBQUEsRUFBbUJZLFNBQW5CLENBQUwsQyxFQUFtQyxNQUFPQyxTQUFQLEMsQ0FBWVAsU0FBQSxDQUFPTyxTQUFQLEMsR0FDaEYsU0FBU0osU0FBVCxDQUFjSyxTQUFkLEMseUJBQXdCQSxTQUFBLEMsTUFBQSxFQUFjVCxTQUFBLENBQVFTLFNBQUEsQyxPQUFBLENBQVIsQ0FBZCxDQUFzQ2IsU0FBQSxDQUFNYSxTQUFBLEMsZ0JBQUEsQ0FBTixFLGdCQUFBLEVBQXlCUCxTQUF6QixDQUFvQ0ksU0FBcEMsQyxFQUM5REYsU0FBQSxDQUFNLENBQUFULFNBQUEsQ0FBWUEsU0FBQSxDLGdCQUFBLEVBQWdCSCxTQUFoQixDQUF5QkMsU0FBQSxFQUFjLEVBQXZDLENBQVosQ0FBRCxDLE1BQUEsR0FBTCxDLEVBSkcsQyxFQVFYLE9BQU9pQixlQUFQLEcsZ0JBQUEsQ0FBd0NBLGVBQXhDLENBQTBELFNBQVVDLFNBQVYsQ0FBaUJDLFNBQWpCLENBQTZCQyxTQUE3QixDLDJCQUN0RCxJQUFJQyxTQUFBLENBQUksSUFBSUMsS0FBSixDQUFVRixTQUFWLENBQVIsQyxPQUNPQyxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUE0QkEsU0FBQSxDLGdCQUFBLEVBQVVILFNBQXRDLENBQTZDRyxTQUFBLEMsZ0JBQUEsRUFBZUYsU0FBNUQsQ0FBd0VFLFMsRUFGbkYsQ0FLQSxNQUFNRSxTQUFBLEMsV0FBTixDQUNNQyxTQUFBLEMsZ0JBRE4sQ0FFTUMsU0FBQSxDLGdCQUZOLENBR01DLFNBQUEsQyxnQkFITixDQUlNQyxTQUFBLEMsV0FKTixDQUtNQyxTQUFBLEMsV0FMTixDQU1NQyxTQUFBLEMsZ0JBTk4sQ0FRQSxJQUFJQyxTQUFKLENBQ0EsQ0FBQyxTQUFVQyxTQUFWLEMsMkJBQ0dBLFNBQUEsQ0FBZ0JBLFNBQUEsQyxTQUFBLEUsR0FBaEIsRSxpQkFDQUEsU0FBQSxDQUFnQkEsU0FBQSxDLFNBQUEsRSxHQUFoQixFLGlCQUNBQSxTQUFBLENBQWdCQSxTQUFBLEMsZ0JBQUEsRSxHQUFoQixFLE9BQ0FBLFNBQUEsQ0FBZ0JBLFNBQUEsQyxTQUFBLEUsR0FBaEIsRSxrQkFKSixDQUtHRCxTQUFBLEVBQW9CLENBQUFBLFNBQUEsQ0FBa0IsRUFBbEIsQ0FMdkIsR0FNQSxJQUFJRSxTQUFKLENBQ0EsQ0FBQyxTQUFVQyxTQUFWLEMsMkJBQ0dBLFNBQUEsQ0FBVUEsU0FBQSxDLGdCQUFBLEUsR0FBVixFLGlCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxRQUFBLEUsR0FBVixFLGlCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxnQkFBQSxFLEdBQVYsRSxpQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsUUFBQSxFLEdBQVYsRSxpQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZ0JBQUEsRSxHQUFWLEUsYUFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZ0JBQUEsRSxJQUFWLEUsaUJBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGdCQUFBLEUsSUFBVixFLGdCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxnQkFBQSxFLElBQVYsRSxpQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZ0JBQUEsRSxJQUFWLEUsUUFUSixDQVVHRCxTQUFBLEVBQWMsQ0FBQUEsU0FBQSxDQUFZLEVBQVosQ0FWakIsR0FXQSxJQUFJRSxTQUFKLENBQ0EsQ0FBQyxTQUFVQyxTQUFWLEMsMkJBQ0dBLFNBQUEsQ0FBY0EsU0FBQSxDLFFBQUEsRSxHQUFkLEUsaUJBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLFVBQUEsRSxHQUFkLEUsaUJBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLFFBQUEsRSxHQUFkLEUsaUJBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGdCQUFBLEUsR0FBZCxFLGlCQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxnQkFBQSxFLElBQWQsRSxpQkFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsZ0JBQUEsRSxJQUFkLEUsaUJBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGdCQUFBLEUsSUFBZCxFLGlCQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxnQkFBQSxFLElBQWQsRSxRQVJKLENBU0dELFNBQUEsRUFBa0IsQ0FBQUEsU0FBQSxDQUFnQixFQUFoQixDQVRyQixHQVVBLElBQUlFLFNBQUosQ0FDQSxDQUFDLFNBQVVDLFNBQVYsQywyQkFDR0EsU0FBQSxDQUFXQSxTQUFBLEMsZ0JBQUEsRSxHQUFYLEUsaUJBQ0FBLFNBQUEsQ0FBV0EsU0FBQSxDLGdCQUFBLEUsR0FBWCxFLGlCQUNBQSxTQUFBLENBQVdBLFNBQUEsQyxXQUFBLEUsR0FBWCxFLGlCQUNBQSxTQUFBLENBQVdBLFNBQUEsQyxnQkFBQSxFLEdBQVgs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Z0JBQUEsRSxnQkFBQSxDQUE2QkMsU0FBQSxDQUFnQkMsU0FBaEIsQ0FBN0IsQyxHQUdSNUIsU0FBQSxDLE1BQUEsRyxDQUNBQyxTQUFBLEMsZ0JBQUEsRyxDQUNBckQsU0FBQSxDLGdCQUFBLENBQTBCc0QsUUFBMUIsQ0FBd0MsS0FBTyxDLEtBQzNDLEMscUNBRDJDLEMsTUFFM0MsQ0FBTSxDLGNBQ0YsQ0FBY1YsU0FBQSxFQURaLEMsVUFFRixDQUFVTSxTQUFBLEMsZ0JBQUEsR0FGUixDLFVBR0YsQ0FBVUMsU0FBQSxDLGdCQUFBLEdBSFIsQ0FGcUMsQ0FBUCxDQUF4QyxDQU9JLENBQUM4QixTQUFELENBQU1DLFNBQU4sRyw4QkFDSUQsUyxDQUNBLE9BR0osTUFBTUUsU0FBQSxDQUFxQkQsU0FBQSxDLGdCQUFBLENBQTNCLENBQ0FqQyxTQUFBLENBQVlpQyxTQUFBLEMsZ0JBQUEsQyxDQUNaOUIsU0FBQSxDLGdCQUFBLEcsQ0FDQUMsU0FBQSxDLGdCQUFBLEcsQ0FDQXdCLFNBQUEsQ0FBb0J6QixTQUFwQixDQUE4QytCLFNBQUEsQyxnQkFBQSxDQUE5QyxDLENBQ0FOLFNBQUEsQ0FBb0J4QixTQUFwQixDQUErQzhCLFNBQUEsQyxnQkFBQSxDQUEvQyxDLENBQ0EvSyxPQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUFvQjhLLFNBQXBCLEMsRUFsQkosQyxFQW5IcUMsQyxZQXdJekMsRSxFQXhJeUMsQ0FBN0MsQyxFQWpsQkosRyIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiAoKSB7XG4gICAgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gICAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uXHJcblxyXG4gICAgUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XHJcbiAgICBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQuXHJcblxyXG4gICAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSFxyXG4gICAgUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXHJcbiAgICBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXHJcbiAgICBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST01cclxuICAgIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXHJcbiAgICBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXHJcbiAgICBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLlxyXG4gICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuICAgIC8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlLCBTdXBwcmVzc2VkRXJyb3IsIFN5bWJvbCAqL1xyXG5cclxuXHJcbiAgICBmdW5jdGlvbiBfX2F3YWl0ZXIodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XHJcbiAgICAgICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XHJcbiAgICAgICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XHJcbiAgICAgICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0eXBlb2YgU3VwcHJlc3NlZEVycm9yID09PSBcImZ1bmN0aW9uXCIgPyBTdXBwcmVzc2VkRXJyb3IgOiBmdW5jdGlvbiAoZXJyb3IsIHN1cHByZXNzZWQsIG1lc3NhZ2UpIHtcclxuICAgICAgICB2YXIgZSA9IG5ldyBFcnJvcihtZXNzYWdlKTtcclxuICAgICAgICByZXR1cm4gZS5uYW1lID0gXCJTdXBwcmVzc2VkRXJyb3JcIiwgZS5lcnJvciA9IGVycm9yLCBlLnN1cHByZXNzZWQgPSBzdXBwcmVzc2VkLCBlO1xyXG4gICAgfTtcblxuICAgIGNvbnN0IE9yZ2FuaXplc1JlZk5vZGVJZCA9IFwibnM9MDtpPTM1XCI7XG4gICAgY29uc3QgRm9sZGVyVHlwZSA9IFwibnM9MDtpPTYxXCI7XG4gICAgY29uc3QgSGFzQ29tcG9uZW50UmVmTm9kZUlkID0gXCJucz0wO2k9NDdcIjtcbiAgICBjb25zdCBIYXNQcm9wZXJ0eVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ2XCI7XG4gICAgY29uc3QgSGFzQ2hpbGRSZWZOb2RlSWQgPSBcIm5zPTA7aT0zNFwiO1xuICAgIGNvbnN0IEhhc1N1YnR5cGVSZWZOb2RlSWQgPSBcIm5zPTA7aT00NVwiO1xuICAgIGNvbnN0IEhhc1R5cGVEZWZpbml0aW9uUmVmTm9kZUlkID0gXCJucz0wO2k9NDBcIjtcblxuICAgIHZhciBCcm93c2VEaXJlY3Rpb247XG4gICAgKGZ1bmN0aW9uIChCcm93c2VEaXJlY3Rpb24pIHtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkZvcndhcmRcIl0gPSAwXSA9IFwiRm9yd2FyZFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52ZXJzZVwiXSA9IDFdID0gXCJJbnZlcnNlXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJCb3RoXCJdID0gMl0gPSBcIkJvdGhcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkludmFsaWRcIl0gPSAzXSA9IFwiSW52YWxpZFwiO1xuICAgIH0pKEJyb3dzZURpcmVjdGlvbiB8fCAoQnJvd3NlRGlyZWN0aW9uID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzO1xuICAgIChmdW5jdGlvbiAoTm9kZUNsYXNzKSB7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJVbnNwZWNpZmllZFwiXSA9IDBdID0gXCJVbnNwZWNpZmllZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmFyaWFibGVcIl0gPSAyXSA9IFwiVmFyaWFibGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk1ldGhvZFwiXSA9IDRdID0gXCJNZXRob2RcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmFyaWFibGVUeXBlXCJdID0gMTZdID0gXCJWYXJpYWJsZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAzMl0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmlld1wiXSA9IDEyOF0gPSBcIlZpZXdcIjtcbiAgICB9KShOb2RlQ2xhc3MgfHwgKE5vZGVDbGFzcyA9IHt9KSk7XG4gICAgdmFyIE5vZGVDbGFzc01hc2s7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3NNYXNrKSB7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFwiXSA9IDFdID0gXCJPYmplY3RcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmFyaWFibGVcIl0gPSAyXSA9IFwiVmFyaWFibGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJPYmplY3RUeXBlXCJdID0gOF0gPSBcIk9iamVjdFR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmFyaWFibGVUeXBlXCJdID0gMTZdID0gXCJWYXJpYWJsZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJEYXRhVHlwZVwiXSA9IDY0XSA9IFwiRGF0YVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmlld1wiXSA9IDEyOF0gPSBcIlZpZXdcIjtcbiAgICB9KShOb2RlQ2xhc3NNYXNrIHx8IChOb2RlQ2xhc3NNYXNrID0ge30pKTtcbiAgICB2YXIgUmVzdWx0TWFzaztcbiAgICAoZnVuY3Rpb24gKFJlc3VsdE1hc2spIHtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDFdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIklzRm9yd2FyZFwiXSA9IDJdID0gXCJJc0ZvcndhcmRcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiTm9kZUNsYXNzXCJdID0gNF0gPSBcIk5vZGVDbGFzc1wiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJCcm93c2VOYW1lXCJdID0gOF0gPSBcIkJyb3dzZU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiRGlzcGxheU5hbWVcIl0gPSAxNl0gPSBcIkRpc3BsYXlOYW1lXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIlR5cGVEZWZpbml0aW9uXCJdID0gMzJdID0gXCJUeXBlRGVmaW5pdGlvblwiO1xuICAgIH0pKFJlc3VsdE1hc2sgfHwgKFJlc3VsdE1hc2sgPSB7fSkpO1xuICAgIC8vICBjb25zdCBxID0gUmVmZXJlbmNlVHlwZUlkcy5Pcmdhbml6ZXM7XG4gICAgZnVuY3Rpb24gcmVzb2x2ZU5vZGVJZChub2RlSWRMaWtlKSB7XG4gICAgICAgIHN3aXRjaCAobm9kZUlkTGlrZSkge1xuICAgICAgICAgICAgY2FzZSBcIk9yZ2FuaXplc1wiOlxuICAgICAgICAgICAgICAgIHJldHVybiBPcmdhbml6ZXNSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzUHJvcGVydHlcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzUHJvcGVydHlSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzQ29tcG9uZW50XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NvbXBvbmVudFJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDaGlsZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNDaGlsZFJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNTdWJ0eXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1N1YnR5cGVSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzVHlwZURlZmluaXRpb25cIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBnZXRJY29uID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICBzd2l0Y2ggKHJlZmVyZW5jZS5ub2RlQ2xhc3MpIHtcbiAgICAgICAgICAgIGNhc2UgXCJPYmplY3RcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gT3JnYW5pemVzUmVmTm9kZUlkKSA7XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS50eXBlRGVmaW5pdGlvbiA9PT0gRm9sZGVyVHlwZSB8fCByZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBcImk9NjFcIikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWZvbGRlclwiLCBjb2xvcjogXCJyZ2JhKDYxLCA2MCwgNCwgMC41MjUpXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6IFwiU2VhR3JlZW5cIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlXCI6XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IEhhc0NvbXBvbmVudFJlZk5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIlN0ZWVsQmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IEhhc1Byb3BlcnR5UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiRG9kZ2VyQmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIkNhZGV0Qmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBcIk1ldGhvZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtY29nXCIsIGNvbG9yOiBcIlNhbmR5QnJvd25cIiB9O1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJWYXJpYWJsZVR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXNsaWRlcnNcIiwgY29sb3I6IFwiRGFya09yYW5nZVwiIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1xdWVzdGlvblwiLCBjb2xvcjogXCJncmV5XCIgfTtcbiAgICB9O1xuXG4gICAgY29uc3QgYnJvd3NlID0gKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCBub2RlSWQsIHRlbXBsYXRlKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWVuZHBvaW50MmA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L2Jyb3dzZWA7XG4gICAgICAgIGNvbnN0IGJyb3dzZURlc2NyaXB0aW9uID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCB0ZW1wbGF0ZSksIHsgbm9kZUlkLCByZXN1bHRNYXNrOiA2MyB9KTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgYnJvd3NlRGVzY3JpcHRpb24sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoaW5nIGZhaWxlZCB3aXRoIGVycm9yXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICAgICAgcmV0dXJuIHsgcmVmZXJlbmNlczogW10gfTtcbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoZWQgOiBcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0geWllbGQgZGF0YS5qc29uKCk7XG4gICAgICAgIGNvbnN0IHJlZmVyZW5jZXMgPSByZXNwb25zZS5icm93c2VSZXN1bHQucmVmZXJlbmNlcyB8fCBbXTtcbiAgICAgICAgcmV0dXJuIHsgcmVmZXJlbmNlcyB9O1xuICAgIH0pO1xuXG4gICAgY29uc3QgdGVtcGxhdGUxID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJIYXNDaGlsZFwiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuVmFyaWFibGUgfCBOb2RlQ2xhc3MuT2JqZWN0IHwgTm9kZUNsYXNzLk1ldGhvZCxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5PYmplY3RUeXBlIHxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5EYXRhVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5WaWV3LFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGNvbnN0IHRlbXBsYXRlMiA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiT3JnYW5pemVzXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3QgaW50ZXJuYWxWZXJpZnkgPSAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sICRpbnB1dEVsZW1lbnQsICRpbmZvKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWVuZHBvaW50MmA7XG4gICAgICAgIGNvbnN0IG5vZGVJZCA9ICRpbnB1dEVsZW1lbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaChgJHtyb290fS9jaGVja05vZGVJZGAsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIG5vZGVJZCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3Qgc2V0Tm90aWZpY2F0aW9uID0gKHRleHQsIGNsYXNzTmFtZSkgPT4ge1xuICAgICAgICAgICAgJGluZm8udGV4dCh0ZXh0KS5hZGRDbGFzcyhcInN0ZXJmaXZlLWluZm9cIikuYWRkQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICRpbmZvLnNob3coKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICRpbmZvLnJlbW92ZUNsYXNzKGNsYXNzTmFtZSk7XG4gICAgICAgICAgICAgICAgJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgfSwgMzAwMCk7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGpzb24gPSAoeWllbGQgZGF0YS5qc29uKCkpO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgLy8gZG8gc29tZXRoaW5nO1xuICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKFwiISFmYWlsdXJlISFcIiArIG5vZGVJZCwgXCJmYWlsdXJlXCIpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKGpzb24uc3RhdHVzQ29kZS5tYXRjaCgvR29vZC8pKSB7XG4gICAgICAgICAgICAgICAgLy8gZG8gc29tZXRoaW5nXG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC52YWwoanNvbi5ub2RlQWRkcmVzc1N0cmluZyk7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihcIkdvb2RcIiwgXCJva1wiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudmFsKGAke25vZGVJZH1gKTtcbiAgICAgICAgICAgICAgICBzZXROb3RpZmljYXRpb24oYCR7anNvbi5zdGF0dXNDb2RlfSAke2RhdGEuc3RhdHVzVGV4dH1gLCBcImZhaWx1cmVcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBmdW5jdGlvbiBmZXRjaENoaWxkcmVuKCRub2RlLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlSWQgPSAkbm9kZS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQxID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGUxKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDIgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTIpO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWZlcmVuY2VzOiBbLi4uYnJvd3NlUmVzdWx0MS5yZWZlcmVuY2VzLCAuLi5icm93c2VSZXN1bHQyLnJlZmVyZW5jZXNdLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IHRlbXBsYXRlU1QgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIkhhc1N1YnR5cGVcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfCBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8IE5vZGVDbGFzcy5EYXRhVHlwZSB8IE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgZnVuY3Rpb24gZmV0Y2hTdWJ0eXBlcygkbm9kZSwgZGF0YSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZUlkID0gJG5vZGUuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MSA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlU1QpO1xuICAgICAgICAgICAgcmV0dXJuIGJyb3dzZVJlc3VsdDE7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBtYWtlRWxlbWVudCA9IChyZWZlcmVuY2UpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgaWYgKCFyZWZlcmVuY2UpIHtcbiAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpPjxpIGNsYXNzPVwiZmEgZmEtZXJyb3JcIiBzdHlsZT1cImNvbG9yOnJlZDtcIj48L2k+bm8gcmVmZXJlbmNlICE8dWw+PC91bD48L2xpPmApO1xuICAgICAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG4gPSByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IHQgPSAoKF9hID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGV4dCkgfHwgKChfYiA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB7IGljb24sIGNvbG9yIH0gPSBnZXRJY29uKHJlZmVyZW5jZSk7XG4gICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpPjxpIGNsYXNzPVwiZmEgJHtpY29ufVwiIHN0eWxlPVwiY29sb3I6JHtjb2xvcn07XCI+PC9pPiAke3R9PHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgJGVsZW1lbnQuYWRkQ2xhc3MoXCJleHBhbmRhYmxlXCIpO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwidmFsdWVcIiwgbik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgIH07XG4gICAgY29uc3QgZGVjbGFyZU5vZGVCcm93c2VyV2lkZ2V0ID0gKCkgPT4ge1xuICAgICAgICAvKipcbiAgICAgICAgICogWyBUZW1wZXJhdHVyZSAgXVxuICAgICAgICAgKiAgICggdG9vbHRpcCA6ICgvT2JqZWN0cy9NeVNlbnNvcikgKG5zPTE7cz1UZW1wZXJhdHVyZSkpXG4gICAgICAgICAqIFsgKyBbRm9sZGVyXSBPYmplY3RzXVxuICAgICAgICAgKiBbICAgICBbT2JqZWN0XSBNeVNlbnNvcl1cbiAgICAgICAgICogWyAgICAgKCApIFtWYXJpYWJsZV0gVGVtcGVyYXR1cmVdXG4gICAgICAgICAqL1xuICAgICAgICAkLndpZGdldChcInN0ZXJmaXZlLm5vZGVCcm93c2VyXCIsIHtcbiAgICAgICAgICAgIC8qIGRlZmF1bHQgb3B0aW9ucyAqL1xuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogKCkgPT4gKHsgZW5kcG9pbnQ6IFwib3BjLnRjcDovL29wY3VhZGVtby5zdGVyZml2ZS5jb206MjY1NDNcIiB9KSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludDogKCkgPT4gdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIHBhcmVudE5vZGU6ICgpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIGJyb3dzZU5hbWU6IHsgbmFtZXNwYWNlSW5kZXg6IDAsIG5hbWU6IFwiT2JqZWN0c1wiIH0sXG4gICAgICAgICAgICAgICAgICAgIG5vZGVDbGFzczogXCJPYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgbm9kZUlkOiBcIm5zPTA7aT04NVwiLFxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogeyB0ZXh0OiBcIk9iamVjdHNcIiB9LFxuICAgICAgICAgICAgICAgICAgICB0eXBlRGVmaW5pdGlvbjogRm9sZGVyVHlwZSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBmaWx0ZXI6ICgpID0+IHRydWUsXG4gICAgICAgICAgICAgICAgYmFzZVVybDogXCJcIixcbiAgICAgICAgICAgICAgICBpc1R5cGVSZWY6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc29sdmVQYXJlbnROb2RlKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhID0gdHlwZW9mIHRoYXQub3B0aW9ucy5wYXJlbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZSgpIDogdGhhdC5vcHRpb25zLnBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhIGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHlpZWxkIGE7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGE7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzZXQoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzb2x2ZVBhcmVudE5vZGUoKS50aGVuKChwYXJlbnROb2RlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQocGFyZW50Tm9kZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC5jdXJyZW50UGFyZW50ID0gcGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB2ZXJpZnkoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgICAgICAgICAgIGJhc2VVcmw6IHRoYXQub3B0aW9ucy5iYXNlVXJsLFxuICAgICAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgICAgICBlbmRwb2ludDogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50KCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBpbnRlcm5hbFZlcmlmeShkYXRhLCB0aGF0LiRpbnB1dCwgdGhhdC4kaW5mbyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2NyZWF0ZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBfZmV0Y2hEYXRhRm9yTm9kZSgkbm9kZSwgZmV0Y2hGdW5jLCBkYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJG5vZGUuaGFzQ2xhc3MoXCJmZXRjaGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhbHJlYWR5IGZldGNoZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRub2RlLmhhc0NsYXNzKFwibG9hZGluZ1wiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYWxyZWFkeSBsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwibG9hZGluZ1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmFwcGVuZCgnPGRpdiBjbGFzcz1cInNwaW5uZXJcIj48L2Rpdj4nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgcmVmZXJlbmNlcyB9ID0geWllbGQgZmV0Y2hGdW5jKCRub2RlLCBkYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHJlZmVyZW5jZSBvZiByZWZlcmVuY2VzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuZmlsdGVyICYmICF0aGF0Lm9wdGlvbnMuZmlsdGVyKHJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQocmVmZXJlbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5hcHBlbmQoJGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5hZGRDbGFzcyhcImZldGNoZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5hcHBlbmQoYDxsaT5lcnJvciAke2Vyci5tZXNzYWdlfTwvbGk+YCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJcIiwgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmZpbmQoXCIuc3Bpbm5lclwiKS5yZW1vdmUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLnJlbW92ZUNsYXNzKFwibG9hZGluZ1wiKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0ID0gdGhpcy5lbGVtZW50O1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvID0gJChcIjxkaXYvPlwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hZGRDbGFzcyhcInN0ZXJmaXZlLWNvbWJvLWJveFwiKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQucmVwbGFjZVdpdGgodGhhdC4kY29tYm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAgPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwiaW5wdXQtZ3JvdXBcIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGlucHV0R3JvdXApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJGlucHV0KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuID0gJChgPGJ1dHRvbj48aSBjbGFzcz1cImZhIGZhLXNpdGVtYXBcIj48L2k+PC9idXR0b24+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kdG9nZ2xlVHJlZUJ0bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0bi5vbihcImNsaWNrXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRkcm9wZG93bi5pcyhcIjp2aXNpYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB0cmVlIHdpZGdldCBpcyBnb2luZyB0byBiZWNvbWUgdmlzaWJsZVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5yZXNvbHZlUGFyZW50Tm9kZSgpLnRoZW4oKHBhcmVudE5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmVudE5vZGUgIT09IHRoYXQuY3VycmVudFBhcmVudCB8fCAoKF9hID0gdGhhdC5jdXJyZW50UGFyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Eubm9kZUlkKSAhPT0gcGFyZW50Tm9kZS5ub2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5yZXNldCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5mby5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24udG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdmVyaWZ5QnRuID0gJChgPGJ1dHRvbj48aSBjbGFzcz1cImZhIGZhLWZsYXNrXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJHZlcmlmeUJ0bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdmVyaWZ5QnRuLm9uKFwiY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnZlcmlmeSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmICghdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmF0dHIoXCJwbGFjZWhvbGRlclwiLCBcImVudGVyIGEgbm9kZUlkIG9yIGEgYnJvd3NlUGF0aCBcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoYXQuJGluZm8gPSAkKGA8ZGl2IGNsYXNzPVwiaW5mby10ZXh0XCI+PC9kaXY+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mby5oaWRlKCk7XG4gICAgICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgICAgICh7XG4gICAgICAgICAgICAgICAgICAgIGJhc2VVcmw6IHRoYXQub3B0aW9ucy5iYXNlVXJsLFxuICAgICAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgICAgICBlbmRwb2ludDogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50KCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24gPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwic3RlcmZpdmUtZHJvcGRvd25cIikuaGlkZSgpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbmZvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kZHJvcGRvd24pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUgPSAkKGA8dWwgY2xhc3M9XCJzdGVyZml2ZS10cmVlXCI+PC91bD5gKS5hcHBlbmRUbyh0aGF0LiRkcm9wZG93bik7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUub24oXCJjbGlja1wiLCBcImxpXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0ICRsaSA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZVdpZHRoID0gMjA7IC8vIFNldCB3aWR0aCBvZiB0aGUgOjpiZWZvcmUgY29udGVudFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVIZWlnaHQgPSAyMDsgLy8gU2V0IGhlaWdodCBvZiB0aGUgOjpiZWZvcmUgY29udGVudFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50UG9zID0gJCh0aGlzKS5vZmZzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZSA9IGV2ZW50O1xuICAgICAgICAgICAgICAgICAgICBpZiAoZS5wYWdlWCA+PSBlbGVtZW50UG9zLmxlZnQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVggPD0gZWxlbWVudFBvcy5sZWZ0ICsgYmVmb3JlV2lkdGggJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPj0gZWxlbWVudFBvcy50b3AgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPD0gZWxlbWVudFBvcy50b3AgKyBiZWZvcmVIZWlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRhYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImZldGNoZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnQ6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludCgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZiA9ICF0aGF0Lm9wdGlvbnMuaXNUeXBlUmVmID8gZmV0Y2hDaGlsZHJlbiA6IGZldGNoU3VidHlwZXM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX2ZldGNoRGF0YUZvck5vZGUoJGxpLCBmLCBkYXRhKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiIEZldGNoaW5nIGRvbmVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWFyayBhcyBleHBhbmRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVycm9yXCIsIGVycik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRvZ2dsZSBpdHMgZXhwYW5kZWQvY29sbGFwc2VkIHN0YXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5jaGlsZHJlbihcInVsXCIpLmNoaWxkcmVuKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN3YXAgZXhwYW5kYWJsZSBhbmQgZXhwYW5kZWQgY2xhc3Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gJGxpLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlZmVyZW5jZSA9ICRsaS5kYXRhKFwicmVmZXJlbmNlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5pc1NlbGVjdGFibGUgJiYgIXRoYXQub3B0aW9ucy5pc1NlbGVjdGFibGUocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRpc3BsYXlOYW1lID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0ID0gYFske2Rpc3BsYXlOYW1lfV0oJHt2YWx1ZX0pYDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnZhbChpbnB1dCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgJChkb2N1bWVudCkub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gY2xpY2tpbmcgb3V0c2lkZSB0aGUgcGFnZSB3aWxsIGhpZGUgdGhlIGRyb3Bkb3duXG4gICAgICAgICAgICAgICAgICAgIGlmICghJChldmVudC50YXJnZXQpLmNsb3Nlc3QodGhhdC4kY29tYm8pLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgY29uc3QgY2hlY2tOb2RlSWQgPSAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIG5vZGVJZCkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1lbmRwb2ludDJgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9jaGVja05vZGVJZGA7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIG5vZGVJZCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hpbmcgZmFpbGVkIHdpdGggZXJyb3JcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgICAgICBjb25zdCByZXMgPSB7XG4gICAgICAgICAgICAgICAgc3RhdHVzQ29kZTogXCJCYWRcIixcbiAgICAgICAgICAgICAgICBub2RlQWRkcmVzc1N0cmluZzogbm9kZUlkLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGVkIDogXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IHlpZWxkIGRhdGEuanNvbigpO1xuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgfSk7XG5cbiAgICBmdW5jdGlvbiBtYW5hZ2VBUElDYWxsKHByZWZpeCwgYnRuLCBmdW5jLCBvblJlc3VsdCkge1xuICAgICAgICBjb25zdCBzdWNjZXNzSWNvbiA9ICQoYCMke3ByZWZpeH0tc3VjY2Vzc2ApO1xuICAgICAgICBjb25zdCBmYWlsdXJlSWNvbiA9ICQoYCMke3ByZWZpeH0tZmFpbHVyZWApO1xuICAgICAgICBjb25zdCBwZW5kaW5nSWNvbiA9ICQoYCMke3ByZWZpeH0tcGVuZGluZ2ApO1xuICAgICAgICBjb25zdCBtZXNzYWdlcyA9ICQoYCMke3ByZWZpeH0tbWVzc2FnZXNgKTtcbiAgICAgICAgbGV0IGFjdGlvblBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgc3VjY2Vzc0ljb24uaGlkZSgpO1xuICAgICAgICBmYWlsdXJlSWNvbi5oaWRlKCk7XG4gICAgICAgIHBlbmRpbmdJY29uLmhpZGUoKTtcbiAgICAgICAgYnRuLm9uKFwiY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGFjdGlvblBlbmRpbmcpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgYWN0aW9uUGVuZGluZyA9IHRydWU7XG4gICAgICAgICAgICBwZW5kaW5nSWNvbi5yZW1vdmVDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICBwZW5kaW5nSWNvbi5odG1sKFwiVGVzdGluZyBDb25uZWN0aW9uIC4uLlwiKTtcbiAgICAgICAgICAgIHN1Y2Nlc3NJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgIGZhaWx1cmVJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgIG1lc3NhZ2VzLmh0bWwoXCJcIik7XG4gICAgICAgICAgICBjb25zdCB7IGJvZHksIHVybCB9ID0gZnVuYygpO1xuICAgICAgICAgICAgLy8geHggY29uc29sZS5sb2coXCJ4eHh4eFwiLCBib2R5KTtcbiAgICAgICAgICAgIGZldGNoKHVybCwge1xuICAgICAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KGJvZHkpLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAudGhlbigoZGF0YSkgPT4gZGF0YS5qc29uKCkpXG4gICAgICAgICAgICAgICAgLnRoZW4oKGpzb24pID0+IHtcbiAgICAgICAgICAgICAgICBhY3Rpb25QZW5kaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgcGVuZGluZ0ljb24uaGlkZSgpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KGpzb24sIG51bGwsIFwiIFwiKSk7XG4gICAgICAgICAgICAgICAgaWYgKGpzb24ucmVzdWx0ID09PSBcIm9rXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgc3VjY2Vzc0ljb24ucmVtb3ZlQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgICAgICBmYWlsdXJlSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VzLmh0bWwoanNvbi5tZXNzYWdlLnJlcGxhY2UoXCJcXG5cIiwgXCI8YnI+XCIpKTtcbiAgICAgICAgICAgICAgICAgICAgb25SZXN1bHQobnVsbCwganNvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhZGFwdCA9IChzdHIpID0+ICFzdHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gXCJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgOiBzdHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc3BsaXQoXCJcXG5cIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWFwKChhKSA9PiBgPHA+JHthfTwvcD5gKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5qb2luKFwiXFxuXCIpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhZGFwdDIgPSAoc3RyKSA9PiAoQXJyYXkuaXNBcnJheShzdHIpID8gc3RyLm1hcChhZGFwdCkuam9pbihcIlxcblwiKSA6IGFkYXB0KHN0cikpO1xuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgICAgIGZhaWx1cmVJY29uLnJlbW92ZUNsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZXMuaHRtbChhZGFwdDIoanNvbi5tZXNzYWdlKSArIGFkYXB0Mihqc29uLmV4dHJhKSk7XG4gICAgICAgICAgICAgICAgICAgIG9uUmVzdWx0KG5ldyBFcnJvcihqc29uLnJlc3VsdCksIGpzb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICBhY3Rpb25QZW5kaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgcGVuZGluZ0ljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgIHN1Y2Nlc3NJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICBmYWlsdXJlSWNvbi5yZW1vdmVDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgbWVzc2FnZXMuaHRtbChcImludGVybmFsIGVycm9yIFwiICsgZXJyLm1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyXCIsIGVycik7XG4gICAgICAgICAgICAgICAgb25SZXN1bHQoZXJyLCBudWxsKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdCBnZXRFbmRQb2ludEF0dHJpYnV0ZXMgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0ICRlbmRwb2ludCA9ICQoXCIjbm9kZS1pbnB1dC1lbmRwb2ludFwiKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnRJZCA9ICRlbmRwb2ludC52YWwoKTtcbiAgICAgICAgY29uc3QgcmVkTm9kZSA9IFJFRC5ub2Rlcy5ub2RlKGVuZHBvaW50SWQpO1xuICAgICAgICBpZiAoIXJlZE5vZGUpXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAvLyB3ZSBuZWVkIHRvIHNhbml0emUgYW5kIGV4dHJhY3QgdGhlIGVuZHBvaW50IGF0dHJpYnV0ZXMgb25seSAoIG5vdCBodGUgcmVkbm9kZSBzdHVmZilcbiAgICAgICAgY29uc3QgeyBlbmRwb2ludCwgc2VjdXJpdHlNb2RlLCBzZWN1cml0eVBvbGljeSwgdXNlcklkZW50aXR5VHlwZSwgdXNlck5hbWUsIHBhc3N3b3JkLCB1c2VyQ2VydGlmaWNhdGUsIHVzZXJQcml2YXRla2V5IH0gPSByZWROb2RlO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICBzZWN1cml0eU1vZGUsXG4gICAgICAgICAgICBzZWN1cml0eVBvbGljeSxcbiAgICAgICAgICAgIHVzZXJJZGVudGl0eVR5cGUsXG4gICAgICAgICAgICB1c2VyTmFtZSxcbiAgICAgICAgICAgIHBhc3N3b3JkLFxuICAgICAgICAgICAgdXNlckNlcnRpZmljYXRlLFxuICAgICAgICAgICAgdXNlclByaXZhdGVrZXksXG4gICAgICAgIH07XG4gICAgfTtcbiAgICBjb25zdCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZW5kcG9pbnROb2RlOiBnZXRFbmRwb2ludFBhcmFtZXRlcnMsXG4gICAgICAgIH07XG4gICAgfTtcbiAgICBjb25zdCBnZXRFbmRwb2ludFBhcmFtZXRlcnMgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0ICRlbmRwb2ludCA9ICQoXCIjbm9kZS1pbnB1dC1lbmRwb2ludFwiKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnRJZCA9ICRlbmRwb2ludC52YWwoKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnROciA9IGdldEVuZFBvaW50QXR0cmlidXRlcygpO1xuICAgICAgICBpZiAoIWVuZHBvaW50TnIpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGlkOiBlbmRwb2ludElkLFxuICAgICAgICAgICAgZW5kcG9pbnQ6IGVuZHBvaW50TnIuZW5kcG9pbnQsXG4gICAgICAgICAgICBzZWN1cml0eU1vZGU6IGVuZHBvaW50TnIuc2VjdXJpdHlNb2RlLFxuICAgICAgICAgICAgc2VjdXJpdHlQb2xpY3k6IGVuZHBvaW50TnIuc2VjdXJpdHlQb2xpY3ksXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgdXNlcklkZW50aXR5VHlwZTogZW5kcG9pbnROci51c2VySWRlbnRpdHlUeXBlLFxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIHVzZXJOYW1lOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUgPT09IFwiVXNlck5hbWVcIiA/IGVuZHBvaW50TnIudXNlck5hbWUgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBwYXNzd29yZDogZW5kcG9pbnROci51c2VySWRlbnRpdHlUeXBlID09PSBcIlVzZXJOYW1lXCIgPyBlbmRwb2ludE5yLnBhc3N3b3JkIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgdXNlckNlcnRpZmljYXRlOiBlbmRwb2ludE5yLnVzZXJDZXJ0aWZpY2F0ZSxcbiAgICAgICAgICAgIHVzZXJQcml2YXRla2V5OiBlbmRwb2ludE5yLnVzZXJQcml2YXRla2V5LFxuICAgICAgICB9O1xuICAgIH07XG5cbiAgICBSRUQubm9kZXMucmVnaXN0ZXJUeXBlKFwiT3BjVWEtQ2xpZW50Mi1DYWxsXCIsIHtcbiAgICAgICAgY2F0ZWdvcnk6IFwib3BjdWFcIixcbiAgICAgICAgY29sb3I6IFwiI0MwREVFRFwiLFxuICAgICAgICBhbGlnbjogXCJyaWdodFwiLFxuICAgICAgICBpY29uOiBcIi4uLy4uL2ljb25zL29wY3Vhbm9kZUxvZ28ucG5nXCIsXG4gICAgICAgIHBhbGV0dGVMYWJlbDogXCJjYWxsXCIsXG4gICAgICAgIGRlZmF1bHRzOiB7XG4gICAgICAgICAgICBpbnB1dHM6IHsgdmFsdWU6IDEgfSxcbiAgICAgICAgICAgIG91dHB1dDogeyB2YWx1ZTogNCB9LFxuICAgICAgICAgICAgLy8gQ29tbW9uXG4gICAgICAgICAgICBuYW1lOiB7IHZhbHVlOiBcIlwiIH0sXG4gICAgICAgICAgICBlbmRwb2ludDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IHRydWUsIHR5cGU6IFwiT3BjVWEtRW5kcG9pbnQyXCIgfSxcbiAgICAgICAgICAgIGFjdGlvbjogeyB2YWx1ZTogXCJyZWFkXCIsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICAvLyBmb3IgYWN0aW9uIGNhbGxcbiAgICAgICAgICAgIG1ldGhvZElkOiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgb2JqZWN0SWQ6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgIH0sXG4gICAgICAgIC8vIGlucHV0czosXG4gICAgICAgIG91dHB1dHM6IDIsIC8vIDIgb3V0cHV0LCBzZWNvbmQgZm9yIHJhdyBub2RlLW9wY3VhIGRpYWdub3N0aWNzIG9yIG1vcmUgY29tcGxldGUgbWVzc2FnZVxuICAgICAgICBsYWJlbCgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgfHwgXCJPUENVQS1DYWxsXCI7XG4gICAgICAgIH0sXG4gICAgICAgIGxhYmVsU3R5bGUoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uYW1lID8gXCJub2RlX2xhYmVsX2l0YWxpY1wiIDogXCJcIjtcbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0cHJlcGFyZSgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzO1xuICAgICAgICAgICAgZGVjbGFyZU5vZGVCcm93c2VyV2lkZ2V0KCk7XG4gICAgICAgICAgICBub2RlLmlucHV0cyA9IDE7XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gaGFuZGxlIFNlY3Rpb24gQ2FsbFxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIGxldCBkYXRhVHlwZXMgPSB7fTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiQ2FsbGluZyBub2RlQnJvd3NlclwiKTtcbiAgICAgICAgICAgIC8vIHRvIGRvIGFkZCBhIHR5cGVzY3JpcHQgZGVmaW5pdGlvbiBmb3IgdGhpc1xuICAgICAgICAgICAgY29uc3QgJG9iamVjdElkID0gJChcIiNub2RlLWlucHV0LW9iamVjdElkXCIpO1xuICAgICAgICAgICAgY29uc3QgJG1ldGhvZElkID0gJChcIiNub2RlLWlucHV0LW1ldGhvZElkXCIpO1xuICAgICAgICAgICAgY29uc3QgJGlucHV0QXJndW1lbnREZWZpbml0aW9uID0gJChcIiNtZXRob2QtaW5wdXQtYXJndW1lbnQtZGVmaW5pdGlvblwiKTtcbiAgICAgICAgICAgIGNvbnN0ICRvdXRwdXRBcmd1bWVudERlZmluaXRpb24gPSAkKFwiI21ldGhvZC1vdXRwdXQtYXJndW1lbnQtZGVmaW5pdGlvblwiKTtcbiAgICAgICAgICAgIGNvbnN0ICR2YWxpZGF0ZUJ0biA9ICQoXCIjdmFsaWRhdGUtY2FsbC1hcmd1bWVudHMtYnV0dG9uXCIpO1xuICAgICAgICAgICAgJG9iamVjdElkLm5vZGVCcm93c2VyKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlcigpKSwgeyBmaWx0ZXIobm9kZURlc2MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJPYmplY3RcIjtcbiAgICAgICAgICAgICAgICB9IH0pKTtcbiAgICAgICAgICAgICRtZXRob2RJZC5ub2RlQnJvd3NlcihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIoKSksIHsgcGFyZW50Tm9kZTogKCkgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBuZWVkIHRvIHJlc3luYyB3aXRoIHdoYXQncyBpbiAgI25vZGUtaW5wdXQtb2JqZWN0SWRcbiAgICAgICAgICAgICAgICAgICAgbGV0IHJlZmVyZW5jZSA9ICRvYmplY3RJZC5kYXRhKFwicmVmZXJlbmNlXCIpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXJlZmVyZW5jZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgbm9kZUlkRXggPSAkb2JqZWN0SWQudmFsKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlbmRwb2ludE5vZGUgPSBnZXRFbmRQb2ludEF0dHJpYnV0ZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZW5kcG9pbnROb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb25uZWN0aW9uRGF0YSA9IHsgYmFzZVVybDogXCJcIiwgZW5kcG9pbnQ6IFwiXCIsIGVuZHBvaW50Tm9kZSB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByID0geWllbGQgY2hlY2tOb2RlSWQoY29ubmVjdGlvbkRhdGEsIG5vZGVJZEV4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZlcmVuY2UgPSByLnJlZmVyZW5jZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZWZlcmVuY2U7XG4gICAgICAgICAgICAgICAgfSksIGZpbHRlcihub2RlRGVzYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIk1ldGhvZFwiIHx8IG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJPYmplY3RcIjtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGlzU2VsZWN0YWJsZShub2RlRGVzYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIk1ldGhvZFwiO1xuICAgICAgICAgICAgICAgIH0gfSkpO1xuICAgICAgICAgICAgJG9iamVjdElkLm9uKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAkbWV0aG9kSWQubm9kZUJyb3dzZXIoXCJyZXNldFwiKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJDYWxsaW5nIG5vZGVCcm93c2VyIERvbmVcIik7XG4gICAgICAgICAgICBmdW5jdGlvbiBhZGRBcmd1bWVudEN0cmwoY29udGFpbmVyLCBpbmRleCwgYXJnKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbSA9ICQoJzxkaXYgY2xhc3M9XCJhcmd1bWVudC1lbnRyeVwiPicpLmFwcGVuZFRvKGNvbnRhaW5lcik7XG4gICAgICAgICAgICAgICAgLy8gY29udGFpbmVyLmRhdGEoXCJkYXRhXCIsIGFyZyk7XG4gICAgICAgICAgICAgICAgJCgnPGlucHV0IHR5cGU9XCJ0ZXh0XCI+JylcbiAgICAgICAgICAgICAgICAgICAgLnZhbChhcmcubmFtZSB8fCBcIlwiKVxuICAgICAgICAgICAgICAgICAgICAuY3NzKHsgd2lkdGg6IFwiMTAwJVwiIH0pXG4gICAgICAgICAgICAgICAgICAgIC5hcHBlbmRUbyhpdGVtKTtcbiAgICAgICAgICAgICAgICBjb25zdCBkID0gZGF0YVR5cGVzW2FyZy5kYXRhVHlwZS50b1N0cmluZygpXTtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhVHlwZU4gPSAoZCA/IGQuYnJvd3NlTmFtZS5uYW1lIHx8IFwiXCIgOiBhcmcuZGF0YVR5cGUudG9TdHJpbmcoKSkgKyAoYXJnLnZhbHVlUmFuayA9PT0gMSA/IFwiW11cIiA6IFwiXCIpO1xuICAgICAgICAgICAgICAgICQoJzxpbnB1dCB0eXBlPVwidGV4dFwiPicpXG4gICAgICAgICAgICAgICAgICAgIC52YWwoYXJnLmRlc2NyaXB0aW9uLnRleHQgfHwgXCJcIilcbiAgICAgICAgICAgICAgICAgICAgLmNzcyh7IHdpZHRoOiBcIjUwJVwiIH0pXG4gICAgICAgICAgICAgICAgICAgIC5hcHBlbmRUbyhpdGVtKTtcbiAgICAgICAgICAgICAgICAkKCc8aW5wdXQgdHlwZT1cInRleHRcIj4nKVxuICAgICAgICAgICAgICAgICAgICAudmFsKGRhdGFUeXBlTiB8fCBcIlwiKVxuICAgICAgICAgICAgICAgICAgICAuY3NzKHsgd2lkdGg6IFwiNTAlXCIgfSlcbiAgICAgICAgICAgICAgICAgICAgLmFwcGVuZFRvKGl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJGlucHV0QXJndW1lbnREZWZpbml0aW9uLmVkaXRhYmxlTGlzdCh7XG4gICAgICAgICAgICAgICAgYWRkQnV0dG9uOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IFwiYXV0b1wiLFxuICAgICAgICAgICAgICAgIHNjcm9sbE9uQWRkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBhZGRJdGVtKGNvbnRhaW5lciwgaSwgb2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgIGFkZEFyZ3VtZW50Q3RybChjb250YWluZXIsIGksIG9iamVjdCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgJG91dHB1dEFyZ3VtZW50RGVmaW5pdGlvbi5lZGl0YWJsZUxpc3Qoe1xuICAgICAgICAgICAgICAgIGFkZEJ1dHRvbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBcImF1dG9cIixcbiAgICAgICAgICAgICAgICBzY3JvbGxPbkFkZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgYWRkSXRlbShjb250YWluZXIsIGksIG9iamVjdCkge1xuICAgICAgICAgICAgICAgICAgICBhZGRBcmd1bWVudEN0cmwoY29udGFpbmVyLCBpLCBvYmplY3QpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGZ1bmN0aW9uIGluc3RhbGxBcmd1bWVudExpc3QobGlzdCwgbWV0aG9kQXJndW1lbnRzKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJpbnN0YWxsQXJndW1lbnRMaXN0XCIsIG1ldGhvZEFyZ3VtZW50cy5sZW5ndGgsIFwiYXJndW1lbnRzXCIsIG1ldGhvZEFyZ3VtZW50cyk7XG4gICAgICAgICAgICAgICAgbGlzdC5lZGl0YWJsZUxpc3QoXCJlbXB0eVwiKTtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1ldGhvZEFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBsaXN0LmVkaXRhYmxlTGlzdChcImFkZEl0ZW1cIiwgbWV0aG9kQXJndW1lbnRzW2ldKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkaW5wdXRBcmd1bWVudERlZmluaXRpb24uaGlkZSgpO1xuICAgICAgICAgICAgJG91dHB1dEFyZ3VtZW50RGVmaW5pdGlvbi5oaWRlKCk7XG4gICAgICAgICAgICBtYW5hZ2VBUElDYWxsKFwidmFsaWRhdGVcIiwgJHZhbGlkYXRlQnRuLCAoKSA9PiAoe1xuICAgICAgICAgICAgICAgIHVybDogXCIvb3BjdWEtZW5kcG9pbnQyL2FyZ3VtZW50RGVmaW5pdGlvblwiLFxuICAgICAgICAgICAgICAgIGJvZHk6IHtcbiAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiBnZXRFbmRwb2ludFBhcmFtZXRlcnMoKSxcbiAgICAgICAgICAgICAgICAgICAgb2JqZWN0SWQ6ICRvYmplY3RJZC52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgbWV0aG9kSWQ6ICRtZXRob2RJZC52YWwoKSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSksIChlcnIsIGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gcG9wdWxhdGUgdGhlIGxpc3RcbiAgICAgICAgICAgICAgICBjb25zdCBhcmd1bWVudERlZmluaXRpb24gPSBkYXRhLmFyZ3VtZW50RGVmaW5pdGlvbjtcbiAgICAgICAgICAgICAgICBkYXRhVHlwZXMgPSBkYXRhLmRhdGFUeXBlcztcbiAgICAgICAgICAgICAgICAkaW5wdXRBcmd1bWVudERlZmluaXRpb24uc2hvdygpO1xuICAgICAgICAgICAgICAgICRvdXRwdXRBcmd1bWVudERlZmluaXRpb24uc2hvdygpO1xuICAgICAgICAgICAgICAgIGluc3RhbGxBcmd1bWVudExpc3QoJGlucHV0QXJndW1lbnREZWZpbml0aW9uLCBhcmd1bWVudERlZmluaXRpb24uaW5wdXRBcmd1bWVudHMpO1xuICAgICAgICAgICAgICAgIGluc3RhbGxBcmd1bWVudExpc3QoJG91dHB1dEFyZ3VtZW50RGVmaW5pdGlvbiwgYXJndW1lbnREZWZpbml0aW9uLm91dHB1dEFyZ3VtZW50cyk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJkYXRhXCIsIGRhdGEpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIG9uZWRpdHNhdmUoKSB7IH0sXG4gICAgfSk7XG5cbn0pKCk7Il19
|
9
9
|
</script>
|
10
10
|
<script type="text/x-red" data-template-name="OpcUa-Client2-Call">
|
11
11
|
<div class="form-row">
|