@opcua/for-node-red 2.8.2 → 2.8.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/all.js +1 -1
- package/package.json +12 -12
- package/source/OpcUa-Client2-Browse/OpcUa-Client2-Browse.html +2 -2
- package/source/OpcUa-Client2-Call/OpcUa-Client2-Call.html +2 -2
- package/source/OpcUa-Client2-Explore/OpcUa-Client2-Explore.html +2 -2
- package/source/OpcUa-Client2-ExtensionObject/OpcUa-Client2-ExtensionObject.html +2 -2
- package/source/OpcUa-Client2-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 _0x2861(_0x3a3f20,_0x232020){const _0x5322d8=_0x5322();return _0x2861=function(_0x286199,_0x21b604){_0x286199=_0x286199-0x89;let _0x3eb688=_0x5322d8[_0x286199];return _0x3eb688;},_0x2861(_0x3a3f20,_0x232020);}function _0x5322(){const _0x1327c9=['4901798ropkjI','references','<div\x20class=\x22spinner\x22></div>','HasChild','assign','addClass','View','show','\x22}><span\x20class=\x22tree-text\x22\x20title=','children','<div\x20class=\x22info-text\x22></div>','fetched','ns=0;i=34','Variable','nodeIds','li[key=\x22','HasComponent','fa-text-width','stringify','baseUrl','sterfive-combo-box','ns=0;i=35','-messages','length','/browse','__parentNode','$input','installArgumentList','963EiSGAD','846340dNyJIr','#validate-call-arguments-button','$dropdown','argumentDefinition','100%','isArray','replaceWith','val','function','then','SuppressedError','ns=0;i=61','Object','throw','status','browseResult','click','-pending','toString','50%','TypeDefinition','$verifyBtn','endpoint','data','closest','!!failure!!','IsForward','#node-input-endpoint','Objects','DataType','valueRank','HasProperty','placeholder','nodes','NodeClass','sterfive-dropdown','error','resolveParentNode','left','position','remove','fa-list-alt','target','expandable','#node-input-objectId','removeClass','catch','<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>','isTypeRef','<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','$inputGroup','ReferenceType','opcua','split','clipboard','next','editableList','fa-object-group','#node-input-methodId','POST','options','endpointNode','dataType','replace','description','attr','9WPNDLy','done','../../icons/opcuanodeLogo.png','offset','inputArgumentsExampleAsJson','statusText','Good','12jhLGEr','suppressed','ns=0;i=85','$tree',':visible','dataTypes','</span><ul></ul></li>','ObjectType','failure','top','<div/>','SteelBlue','extra','</p>','6xOTlwg','apply','append','expandable\x20expanded','selected',';\x22></i>\x20','inputs','filter','validate','toggle','HasTypeDefinition','ns=0;i=40','hide','err','JSON','text','registerType','result','/checkNodeId','find','DarkOrange','sterfive-info','3lRGXgU','hasClass','json','name','browsePath','><i\x20class=\x22fa\x20','564644cCgYFn','Organizes','referenceTypeId','<p>','html','application/json','writeText','Bad','isSelectable','fa-sliders','log','map','displayName','right','relativePath','$combo','Invalid','DisplayName','join','auto','change','BrowseName','already\x20loading','SeaGreen','appendTo','grey','9079HTSFoa','rgba(61,\x2060,\x204,\x200.525)','widget','2064FyKogM','statusCode','browseName','549054CsUXZO','nodeId','typeDefinition','-failure','$info','empty','node_label_italic','parentNode','node','sterfive.nodeBrowser','HasSubtype','VariableType','Forward','currentParent','nodeBrowser','fetching\x20failed\x20with\x20error','/opcua-endpoint2','ns=0;i=47','already\x20fetched','fa-cog','Both','\x22\x20style=\x22color:','Method',':first','$toggleTreeBtn','SandyBrown','trigger','message','stopPropagation','opc.tcp://opcuademo.sterfive.com:26543','call','li\x20>\x20.tree-text','element','Inverse','value','outputArguments','CadetBlue','pageY','elements','#copy-input','loading','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','.tree-text:first','368400NFGWfw','nodeAddressString','arguments','Unspecified','</li>','nodeClass','reset','pageX','reference','DodgerBlue','css','<input\x20type=\x22text\x22>','expanded'];_0x5322=function(){return _0x1327c9;};return _0x5322();}(function(_0x58cbf9,_0x4962ca){const _0x8e72a6=_0x2861,_0x47dad3=_0x58cbf9();while(!![]){try{const _0x3c6901=parseInt(_0x8e72a6(0xe7))/0x1*(-parseInt(_0x8e72a6(0x13f))/0x2)+parseInt(_0x8e72a6(0x155))/0x3*(parseInt(_0x8e72a6(0x15b))/0x4)+-parseInt(_0x8e72a6(0xe8))/0x5+parseInt(_0x8e72a6(0x93))/0x6+parseInt(_0x8e72a6(0x8d))/0x7*(-parseInt(_0x8e72a6(0x90))/0x8)+-parseInt(_0x8e72a6(0x12a))/0x9*(-parseInt(_0x8e72a6(0xbe))/0xa)+parseInt(_0x8e72a6(0xcb))/0xb*(parseInt(_0x8e72a6(0x131))/0xc);if(_0x3c6901===_0x4962ca)break;else _0x47dad3['push'](_0x47dad3['shift']());}catch(_0x4ab737){_0x47dad3['push'](_0x47dad3['shift']());}}}(_0x5322,0x32dd9),(function(){'use strict';const _0xd16af7=_0x2861;function _0x2d1fd4(_0x44f681,_0x452bd7,_0x51e99b,_0x194d00){function _0x2419d4(_0x142f3d){return _0x142f3d instanceof _0x51e99b?_0x142f3d:new _0x51e99b(function(_0x1467fe){_0x1467fe(_0x142f3d);});}return new(_0x51e99b||(_0x51e99b=Promise))(function(_0x20e0c5,_0xc0d1b6){const _0x43fd91=_0x2861;function _0x393761(_0x55b659){const _0x5bd489=_0x2861;try{_0x283839(_0x194d00[_0x5bd489(0x11f)](_0x55b659));}catch(_0x2bde37){_0xc0d1b6(_0x2bde37);}}function _0x1172fe(_0x310e12){const _0x174c41=_0x2861;try{_0x283839(_0x194d00[_0x174c41(0xf5)](_0x310e12));}catch(_0x3e47ea){_0xc0d1b6(_0x3e47ea);}}function _0x283839(_0x3a2b30){const _0x398713=_0x2861;_0x3a2b30[_0x398713(0x12b)]?_0x20e0c5(_0x3a2b30[_0x398713(0xb5)]):_0x2419d4(_0x3a2b30[_0x398713(0xb5)])[_0x398713(0xf1)](_0x393761,_0x1172fe);}_0x283839((_0x194d00=_0x194d00[_0x43fd91(0x140)](_0x44f681,_0x452bd7||[]))[_0x43fd91(0x11f)]());});}typeof SuppressedError===_0xd16af7(0xf0)?SuppressedError:function(_0x462df6,_0x8d2293,_0x11c41e){const _0x4c2ddb=_0xd16af7;var _0x416305=new Error(_0x11c41e);return _0x416305[_0x4c2ddb(0x158)]=_0x4c2ddb(0xf2),_0x416305['error']=_0x462df6,_0x416305[_0x4c2ddb(0x132)]=_0x8d2293,_0x416305;};const _0x3b8b97=_0xd16af7(0xe0),_0x2c2cb9=_0xd16af7(0xf3),_0xc736a6=_0xd16af7(0xa4),_0x578e67='ns=0;i=46',_0x3ed810=_0xd16af7(0xd7),_0x5f175c='ns=0;i=45',_0x109e89=_0xd16af7(0x14a);var _0xb4af0;(function(_0x132527){const _0x4bb964=_0xd16af7;_0x132527[_0x132527[_0x4bb964(0x9f)]=0x0]=_0x4bb964(0x9f),_0x132527[_0x132527[_0x4bb964(0xb4)]=0x1]=_0x4bb964(0xb4),_0x132527[_0x132527[_0x4bb964(0xa7)]=0x2]=_0x4bb964(0xa7),_0x132527[_0x132527[_0x4bb964(0x16b)]=0x3]=_0x4bb964(0x16b);}(_0xb4af0||(_0xb4af0={})));var _0x2a80ae;(function(_0x21650a){const _0x135f17=_0xd16af7;_0x21650a[_0x21650a[_0x135f17(0xc1)]=0x0]='Unspecified',_0x21650a[_0x21650a[_0x135f17(0xf4)]=0x1]=_0x135f17(0xf4),_0x21650a[_0x21650a[_0x135f17(0xd8)]=0x2]=_0x135f17(0xd8),_0x21650a[_0x21650a[_0x135f17(0xa9)]=0x4]=_0x135f17(0xa9),_0x21650a[_0x21650a[_0x135f17(0x138)]=0x8]=_0x135f17(0x138),_0x21650a[_0x21650a['VariableType']=0x10]=_0x135f17(0x9e),_0x21650a[_0x21650a['ReferenceType']=0x20]='ReferenceType',_0x21650a[_0x21650a[_0x135f17(0x105)]=0x40]=_0x135f17(0x105),_0x21650a[_0x21650a[_0x135f17(0xd1)]=0x80]=_0x135f17(0xd1);}(_0x2a80ae||(_0x2a80ae={})));var _0x2edd99;(function(_0x5a2557){const _0xd7110=_0xd16af7;_0x5a2557[_0x5a2557['Object']=0x1]=_0xd7110(0xf4),_0x5a2557[_0x5a2557[_0xd7110(0xd8)]=0x2]=_0xd7110(0xd8),_0x5a2557[_0x5a2557[_0xd7110(0xa9)]=0x4]='Method',_0x5a2557[_0x5a2557[_0xd7110(0x138)]=0x8]=_0xd7110(0x138),_0x5a2557[_0x5a2557[_0xd7110(0x9e)]=0x10]=_0xd7110(0x9e),_0x5a2557[_0x5a2557['ReferenceType']=0x20]=_0xd7110(0x11b),_0x5a2557[_0x5a2557[_0xd7110(0x105)]=0x40]=_0xd7110(0x105),_0x5a2557[_0x5a2557[_0xd7110(0xd1)]=0x80]=_0xd7110(0xd1);}(_0x2edd99||(_0x2edd99={})));var _0xc23f3f;(function(_0x1db37c){const _0x131579=_0xd16af7;_0x1db37c[_0x1db37c[_0x131579(0x11b)]=0x1]=_0x131579(0x11b),_0x1db37c[_0x1db37c[_0x131579(0x102)]=0x2]=_0x131579(0x102),_0x1db37c[_0x1db37c[_0x131579(0x10a)]=0x4]=_0x131579(0x10a),_0x1db37c[_0x1db37c[_0x131579(0x170)]=0x8]=_0x131579(0x170),_0x1db37c[_0x1db37c[_0x131579(0x16c)]=0x10]=_0x131579(0x16c),_0x1db37c[_0x1db37c[_0x131579(0xfc)]=0x20]=_0x131579(0xfc);}(_0xc23f3f||(_0xc23f3f={})));function _0x5568f3(_0x48438d){const _0x2d2a30=_0xd16af7;switch(_0x48438d){case _0x2d2a30(0x15c):return _0x3b8b97;case _0x2d2a30(0x107):return _0x578e67;case _0x2d2a30(0xdb):return _0xc736a6;case'HasChild':return _0x3ed810;case _0x2d2a30(0x9d):return _0x5f175c;case _0x2d2a30(0x149):return _0x109e89;}}const _0x1dae6e=_0x54e1e9=>{const _0x4b5546=_0xd16af7;switch(_0x54e1e9['nodeClass']){case'Object':if(_0x54e1e9[_0x4b5546(0x15d)]===_0x3b8b97);if(_0x54e1e9[_0x4b5546(0x95)]===_0x2c2cb9||_0x54e1e9['referenceTypeId']==='i=61')return{'icon':'fa-folder','color':_0x4b5546(0x8e)};return{'icon':_0x4b5546(0x121),'color':_0x4b5546(0x8a)};case'Variable':if(_0x54e1e9[_0x4b5546(0x15d)]===_0xc736a6)return{'icon':'fa-list-alt','color':_0x4b5546(0x13c)};else return _0x54e1e9[_0x4b5546(0x15d)]===_0x578e67?{'icon':'fa-list-alt','color':_0x4b5546(0xc7)}:{'icon':_0x4b5546(0x111),'color':_0x4b5546(0xb7)};case _0x4b5546(0xa9):return{'icon':_0x4b5546(0xa6),'color':_0x4b5546(0xac)};case'ObjectType':return{'icon':_0x4b5546(0x121),'color':'DarkOrange'};case _0x4b5546(0x9e):return{'icon':_0x4b5546(0x164),'color':_0x4b5546(0x153)};case _0x4b5546(0x105):return{'icon':_0x4b5546(0xdc),'color':'CadetBlue'};}return{'icon':'fa-question','color':_0x4b5546(0x8c)};},_0x36ea6f=({endpointNode:_0x3f461c,endpoint:_0x401a2a,baseUrl:_0x3d63e1},_0x18faae,_0x6be57f)=>_0x2d1fd4(void 0x0,void 0x0,void 0x0,function*(){const _0x20e7f0=_0xd16af7,_0x2b3882=_0x3d63e1+_0x20e7f0(0xa3),_0x144248=_0x2b3882+_0x20e7f0(0xe3),_0x34743d=Object[_0x20e7f0(0xcf)](Object[_0x20e7f0(0xcf)]({},_0x6be57f),{'nodeId':_0x18faae,'resultMask':0x3f}),_0x40c9a2=yield fetch(_0x144248,{'method':_0x20e7f0(0x123),'body':JSON[_0x20e7f0(0xdd)]({'endpointNode':_0x3f461c,'endpoint':_0x401a2a,'browseDescription':_0x34743d}),'headers':{'Content-Type':_0x20e7f0(0x160)}});if(_0x40c9a2[_0x20e7f0(0xf6)]!==0xc8)return console['log'](_0x20e7f0(0xa2),_0x40c9a2[_0x20e7f0(0xf6)],_0x40c9a2[_0x20e7f0(0x12f)]),{'references':[]};const _0x41133c=yield _0x40c9a2[_0x20e7f0(0x157)](),_0xcfc07=_0x41133c[_0x20e7f0(0xf7)][_0x20e7f0(0xcc)]||[];return{'references':_0xcfc07};}),_0x2fd9dd={'referenceTypeId':_0x5568f3(_0xd16af7(0xce)),'includeSubtypes':!![],'browseDirection':_0xb4af0['Forward'],'nodeClassMask':_0x2a80ae[_0xd16af7(0xd8)]|_0x2a80ae[_0xd16af7(0xf4)]|_0x2a80ae[_0xd16af7(0xa9)],'resultMask':0x3f},_0x22c421={'referenceTypeId':_0x5568f3('Organizes'),'includeSubtypes':!![],'browseDirection':_0xb4af0[_0xd16af7(0x9f)],'nodeClassMask':_0x2a80ae[_0xd16af7(0xd8)]|_0x2a80ae[_0xd16af7(0xf4)]|_0x2a80ae[_0xd16af7(0xa9)],'resultMask':0x3f},_0x1d7516=({endpointNode:_0xc825e8,endpoint:_0x535628,baseUrl:_0x57c187},{nodeId:_0x3bafe0,rootNodeId:_0x578f34,isType:_0x11975b})=>_0x2d1fd4(void 0x0,void 0x0,void 0x0,function*(){const _0x366f23=_0xd16af7,_0x310b8b=_0x57c187+_0x366f23(0xa3),_0xf51b97=_0x310b8b+'/walk-backward',_0x4a46fa=yield fetch(_0xf51b97,{'method':'POST','body':JSON['stringify']({'endpointNode':_0xc825e8,'endpoint':_0x535628,'nodeId':_0x3bafe0,'rootNodeId':_0x578f34,'isType':_0x11975b}),'headers':{'Content-Type':_0x366f23(0x160)}});if(_0x4a46fa['status']!==0xc8)return null;const _0x1af109=yield _0x4a46fa[_0x366f23(0x157)]();return _0x1af109[_0x366f23(0x159)];}),_0x21ff68=({endpointNode:_0x2585c3,endpoint:_0x3c449d,baseUrl:_0x3dcd9d},_0x451896,_0x24e48c)=>_0x2d1fd4(void 0x0,void 0x0,void 0x0,function*(){const _0x320a64=_0xd16af7,_0x1aec62=_0x3dcd9d+'/opcua-endpoint2',_0x2b7173=_0x1aec62+_0x320a64(0x151),_0x58629b=_0x451896[_0x320a64(0xef)](),_0x48d6b3=yield fetch(_0x2b7173,{'method':_0x320a64(0x123),'body':JSON[_0x320a64(0xdd)]({'endpointNode':_0x2585c3,'endpoint':_0x3c449d,'nodeId':_0x58629b}),'headers':{'Content-Type':_0x320a64(0x160)}}),_0x34cc2e=(_0x5cd616,_0x5a3400)=>{const _0x497af6=_0x320a64;_0x24e48c[_0x497af6(0x14e)](_0x5cd616)['addClass'](_0x497af6(0x154))[_0x497af6(0xd0)](_0x5a3400),_0x24e48c[_0x497af6(0xd2)](),setTimeout(()=>{const _0x365d84=_0x497af6;_0x24e48c[_0x365d84(0x115)](_0x5a3400),_0x24e48c[_0x365d84(0x14b)]();},0xbb8);},_0x1f4ff5=yield _0x48d6b3[_0x320a64(0x157)]();_0x48d6b3[_0x320a64(0xf6)]!==0xc8?_0x34cc2e(_0x320a64(0x101)+_0x58629b,_0x320a64(0x139)):_0x1f4ff5[_0x320a64(0x91)]['match'](/Good/)?(_0x451896[_0x320a64(0xef)](_0x1f4ff5[_0x320a64(0xbf)]),_0x451896[_0x320a64(0xad)](_0x320a64(0x16f)),_0x34cc2e(_0x320a64(0x130),'ok')):(_0x451896[_0x320a64(0xef)](''+_0x58629b),_0x34cc2e(_0x1f4ff5[_0x320a64(0x91)]+'\x20'+_0x48d6b3[_0x320a64(0x12f)],'failure'));});function _0x2ed3d8(_0x4faebb,_0x257265){return _0x2d1fd4(this,void 0x0,void 0x0,function*(){const _0xe624bd=_0x2861,_0x50fe57=_0x4faebb[_0xe624bd(0xff)](_0xe624bd(0xb5)),_0x4306eb=yield _0x36ea6f(_0x257265,_0x50fe57,_0x2fd9dd),_0x29f113=yield _0x36ea6f(_0x257265,_0x50fe57,_0x22c421);return{'references':[..._0x4306eb[_0xe624bd(0xcc)],..._0x29f113[_0xe624bd(0xcc)]]};});}const _0x3a2ed5={'referenceTypeId':_0x5568f3('HasSubtype'),'includeSubtypes':!![],'browseDirection':_0xb4af0[_0xd16af7(0x9f)],'nodeClassMask':_0x2a80ae[_0xd16af7(0x11b)]|_0x2a80ae[_0xd16af7(0x138)]|_0x2a80ae[_0xd16af7(0x105)]|_0x2a80ae['VariableType'],'resultMask':0x3f};function _0x432091(_0x1929a2,_0x28f996){return _0x2d1fd4(this,void 0x0,void 0x0,function*(){const _0x5bd682=_0x2861,_0xbc7e30=_0x1929a2[_0x5bd682(0xff)](_0x5bd682(0xb5)),_0x878b49=yield _0x36ea6f(_0x28f996,_0xbc7e30,_0x3a2ed5);return _0x878b49;});}const _0x5862a1=_0x1e28a8=>{const _0x96b54e=_0xd16af7;var _0x33cb8f,_0x1f4b5f,_0x254440,_0x5b9f6e;if(!_0x1e28a8||!_0x1e28a8[_0x96b54e(0x94)]){const _0x3be277=$('<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>');return _0x3be277;}const _0x6611e0=_0x1e28a8[_0x96b54e(0x94)][_0x96b54e(0xfa)](),_0xb966b=((_0x33cb8f=_0x1e28a8[_0x96b54e(0x167)])===null||_0x33cb8f===void 0x0?void 0x0:_0x33cb8f[_0x96b54e(0x14e)])||((_0x1f4b5f=_0x1e28a8[_0x96b54e(0x92)])===null||_0x1f4b5f===void 0x0?void 0x0:_0x1f4b5f[_0x96b54e(0x158)])||_0x1e28a8[_0x96b54e(0x94)][_0x96b54e(0xfa)](),{icon:_0x21145d,color:_0x454cf1}=_0x1dae6e(_0x1e28a8),_0x3d1401='('+_0x1e28a8[_0x96b54e(0x94)]['toString']()+')\x20'+(((_0x254440=_0x1e28a8[_0x96b54e(0x92)])===null||_0x254440===void 0x0?void 0x0:_0x254440['name'])||((_0x5b9f6e=_0x1e28a8[_0x96b54e(0x167)])===null||_0x5b9f6e===void 0x0?void 0x0:_0x5b9f6e[_0x96b54e(0x14e)])||''),_0x4339eb=$('<li\x20key=\x22'+_0x1e28a8['nodeId'][_0x96b54e(0xfa)]()+_0x96b54e(0xd3)+_0x3d1401+_0x96b54e(0x15a)+_0x21145d+_0x96b54e(0xa8)+_0x454cf1+_0x96b54e(0x144)+_0xb966b+_0x96b54e(0x137));return _0x4339eb['addClass']('expandable'),_0x4339eb[_0x96b54e(0xff)](_0x96b54e(0xb5),_0x6611e0),_0x4339eb[_0x96b54e(0xff)](_0x96b54e(0xc6),_0x1e28a8),_0x4339eb;},_0x19012a=(_0x4d75d4,_0x2a11e9)=>{const _0x1b41e0=_0xd16af7;return _0x2a11e9[_0x1b41e0(0x152)](_0x1b41e0(0xda)+_0x4d75d4+'\x22]');},_0x54d8bc=(_0x4e2e9e,_0xaa5b47)=>{const _0x5c8c07=_0xd16af7;_0x4e2e9e['$tree']['find'](_0x5c8c07(0xb2))[_0x5c8c07(0x115)](_0x5c8c07(0x143)),_0xaa5b47[_0x5c8c07(0x152)](_0x5c8c07(0xbd))[_0x5c8c07(0xd0)](_0x5c8c07(0x143));},_0x20db2e=(_0x4bb01e,_0x330b29,_0x437203)=>_0x2d1fd4(void 0x0,void 0x0,void 0x0,function*(){const _0x34e17b=_0xd16af7;let _0x59054d=_0x437203[_0x34e17b(0xd4)](_0x34e17b(0xaa));_0x330b29[_0x34e17b(0x169)][_0x34e17b(0xb9)]||[];const _0x46e015=_0x330b29[_0x34e17b(0xd9)]||[];if(_0x46e015[_0x34e17b(0xe2)]===0x0)return;for(const _0x1c9228 of _0x46e015){_0x59054d[_0x34e17b(0x156)](_0x34e17b(0x113))&&(yield _0x3ab11e(_0x4bb01e,_0x59054d));const _0x3f901=_0x19012a(_0x1c9228,_0x59054d);if(_0x3f901['length']===0x0)return;_0x59054d=_0x3f901;}_0x54d8bc(_0x4bb01e,_0x59054d),_0x5e99ac(_0x4bb01e['$dropdown'],_0x59054d);});function _0x5e99ac(_0x1de3b6,_0x8f78b2){const _0x376ec5=_0xd16af7,_0x3b2abb=_0x8f78b2[_0x376ec5(0x10f)]()['top'],_0x51d187=_0x1de3b6['scrollTop']();if(_0x51d187==undefined)return;const _0x1964f5=_0x51d187+_0x3b2abb-_0x1de3b6['height']()/0x2+_0x8f78b2['height']()/0x2;_0x1de3b6['animate']({'scrollTop':_0x1964f5},0x1f4);}const _0x345ebc=(_0x500f7,_0x2df69a)=>_0x2d1fd4(void 0x0,void 0x0,void 0x0,function*(){const _0x53e71d=_0xd16af7,_0x59ba8d=_0x500f7['$input'][_0x53e71d(0xef)](),_0xd7ed64={'nodeId':_0x59ba8d,'rootNodeId':_0x2df69a[_0x53e71d(0x94)],'isType':_0x500f7[_0x53e71d(0x124)][_0x53e71d(0x118)]||![]},_0x5aeb31=_0x2cd712(_0x500f7),_0x36ccff=yield _0x1d7516(_0x5aeb31,_0xd7ed64);if(!_0x36ccff)return;yield _0x20db2e(_0x500f7,_0x36ccff,_0x500f7[_0x53e71d(0x134)]);});function _0x42aa4e(_0x299358,_0x207868,_0x1c650f,_0x260b07){return _0x2d1fd4(this,void 0x0,void 0x0,function*(){const _0x28c936=_0x2861;if(_0x207868[_0x28c936(0x156)](_0x28c936(0xd6))){console[_0x28c936(0x165)](_0x28c936(0xa5));return;}if(_0x207868[_0x28c936(0x156)](_0x28c936(0xbb))){console[_0x28c936(0x165)](_0x28c936(0x89));return;}_0x207868[_0x28c936(0xd0)](_0x28c936(0xbb)),_0x207868['append'](_0x28c936(0xcd));try{_0x207868['children']('ul')[_0x28c936(0x98)]();const {references:_0x39cbac}=yield _0x1c650f(_0x207868,_0x260b07);for(const _0x373399 of _0x39cbac){if(_0x299358[_0x28c936(0x124)][_0x28c936(0x146)]&&!_0x299358[_0x28c936(0x124)]['filter'](_0x373399))continue;const _0x40b6f3=_0x5862a1(_0x373399);_0x207868['children']('ul')[_0x28c936(0x141)](_0x40b6f3);}_0x207868['addClass'](_0x28c936(0xd6));}catch(_0x5d499e){_0x207868[_0x28c936(0xd4)]('ul')['append']('<li>error\x20'+_0x5d499e[_0x28c936(0xae)]+_0x28c936(0xc2)),console[_0x28c936(0x165)]('err',_0x5d499e);}_0x207868[_0x28c936(0x152)]('.spinner')[_0x28c936(0x110)](),_0x207868['removeClass'](_0x28c936(0xbb));});}function _0x2cd712(_0x69460a){const _0x562e2d=_0xd16af7,_0xc54a22={'baseUrl':_0x69460a['options'][_0x562e2d(0xde)],'endpointNode':typeof _0x69460a[_0x562e2d(0x124)][_0x562e2d(0x125)]===_0x562e2d(0xf0)?_0x69460a[_0x562e2d(0x124)][_0x562e2d(0x125)]():_0x69460a['options']['endpointNode'],'endpoint':typeof _0x69460a[_0x562e2d(0x124)][_0x562e2d(0xfe)]===_0x562e2d(0xf0)?_0x69460a['options'][_0x562e2d(0xfe)]():_0x69460a[_0x562e2d(0x124)][_0x562e2d(0xfe)]};return _0xc54a22;}function _0x3ab11e(_0x3c459b,_0x52511a){return _0x2d1fd4(this,void 0x0,void 0x0,function*(){const _0x8103b=_0x2861;if(_0x52511a[_0x8103b(0x156)]('fetched')){_0x52511a[_0x8103b(0x115)]('expandable')[_0x8103b(0xd0)]('expanded'),_0x52511a[_0x8103b(0xd4)]('ul')[_0x8103b(0x148)]();return;}const _0x5805b0=_0x2cd712(_0x3c459b),_0x4c5553=!_0x3c459b['options'][_0x8103b(0x118)]?_0x2ed3d8:_0x432091;try{yield _0x42aa4e(_0x3c459b,_0x52511a,_0x4c5553,_0x5805b0),_0x52511a[_0x8103b(0x115)](_0x8103b(0x113))[_0x8103b(0xd0)]('expanded');}catch(_0x460f05){_0x52511a[_0x8103b(0x115)](_0x8103b(0x113))[_0x8103b(0xd0)](_0x8103b(0xca)),console['log'](_0x8103b(0x10c),_0x460f05);}});}const _0x1a8e9f=()=>{const _0x28dc07=_0xd16af7;$[_0x28dc07(0x8f)](_0x28dc07(0x9c),{'options':{'endpointNode':()=>({'endpoint':_0x28dc07(0xb0)}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':_0x28dc07(0x104)},'nodeClass':_0x28dc07(0xf4),'nodeId':_0x28dc07(0x133),'displayName':{'text':_0x28dc07(0x104)},'typeDefinition':_0x2c2cb9}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x2d1fd4(this,void 0x0,void 0x0,function*(){const _0xc091cc=_0x2861,_0x1f64e6=this;if(!_0x1f64e6[_0xc091cc(0xe4)]){const _0x33a801=typeof _0x1f64e6['options'][_0xc091cc(0x9a)]===_0xc091cc(0xf0)?_0x1f64e6['options']['parentNode'][_0xc091cc(0xb1)](_0x1f64e6):_0x1f64e6[_0xc091cc(0x124)][_0xc091cc(0x9a)];if(_0x33a801 instanceof Promise){const _0x2b0ff3=yield _0x33a801;_0x1f64e6[_0xc091cc(0xe4)]=_0x2b0ff3;}else _0x1f64e6['__parentNode']=_0x33a801;}return _0x1f64e6[_0xc091cc(0xe4)];});},'reset'(){return _0x2d1fd4(this,void 0x0,void 0x0,function*(){const _0x318415=_0x2861,_0x594585=this,_0x5440b7=_0x594585;_0x5440b7[_0x318415(0xe4)]=undefined,_0x594585[_0x318415(0x134)]['empty']();const _0x2fd25f=yield this[_0x318415(0x10d)](),_0x54e2d8=_0x5862a1(_0x2fd25f);_0x594585[_0x318415(0x134)]['append'](_0x54e2d8),_0x594585[_0x318415(0xa0)]=_0x2fd25f;});},'verify'(){const _0x568cd6=this,_0x1289c0=_0x2cd712(_0x568cd6);_0x21ff68(_0x1289c0,_0x568cd6['$input'],_0x568cd6['$info']);},'_create'(){const _0x2523cc=_0x28dc07,_0x5b0c07=this;_0x5b0c07[_0x2523cc(0xe5)]=this[_0x2523cc(0xb3)],_0x5b0c07['$combo']=$('<div/>'),_0x5b0c07[_0x2523cc(0x16a)][_0x2523cc(0xd0)](_0x2523cc(0xdf)),this[_0x2523cc(0xb3)][_0x2523cc(0xee)](_0x5b0c07['$combo']),_0x5b0c07[_0x2523cc(0x11a)]=$(_0x2523cc(0x13b))['addClass']('input-group'),_0x5b0c07[_0x2523cc(0x16a)][_0x2523cc(0x141)](_0x5b0c07[_0x2523cc(0x11a)]),_0x5b0c07['$inputGroup'][_0x2523cc(0x141)](_0x5b0c07[_0x2523cc(0xe5)]),_0x5b0c07['$toggleTreeBtn']=$(_0x2523cc(0x119)),_0x5b0c07['$inputGroup']['append'](_0x5b0c07[_0x2523cc(0xab)]),_0x5b0c07['$toggleTreeBtn']['on'](_0x2523cc(0xf8),function(){var _0x3e1ddd;return _0x2d1fd4(this,void 0x0,void 0x0,function*(){const _0x528d82=_0x2861;let _0x20735e=![],_0x1dca69;!_0x5b0c07[_0x528d82(0xea)]['is'](_0x528d82(0x135))&&(_0x5b0c07[_0x528d82(0x97)]['hide'](),_0x1dca69=yield _0x5b0c07[_0x528d82(0x10d)](),(_0x1dca69!==_0x5b0c07[_0x528d82(0xa0)]||((_0x3e1ddd=_0x5b0c07[_0x528d82(0xa0)])===null||_0x3e1ddd===void 0x0?void 0x0:_0x3e1ddd[_0x528d82(0x94)])!==_0x1dca69[_0x528d82(0x94)])&&(yield _0x5b0c07[_0x528d82(0xc4)]()),_0x20735e=!![]),_0x5b0c07[_0x528d82(0xea)]['toggle'](),_0x20735e&&(yield _0x345ebc(_0x5b0c07,_0x1dca69));});}),_0x5b0c07[_0x2523cc(0xfd)]=$(_0x2523cc(0x117)),_0x5b0c07[_0x2523cc(0x11a)][_0x2523cc(0x141)](_0x5b0c07[_0x2523cc(0xfd)]),_0x5b0c07[_0x2523cc(0xfd)]['on'](_0x2523cc(0xf8),()=>{this['verify']();});!_0x5b0c07[_0x2523cc(0xe5)][_0x2523cc(0x129)](_0x2523cc(0x108))&&_0x5b0c07[_0x2523cc(0xe5)][_0x2523cc(0x129)](_0x2523cc(0x108),_0x2523cc(0xbc));_0x5b0c07[_0x2523cc(0x97)]=$(_0x2523cc(0xd5)),_0x5b0c07[_0x2523cc(0x97)][_0x2523cc(0x14b)](),_0x5b0c07['$dropdown']=$(_0x2523cc(0x13b))[_0x2523cc(0xd0)](_0x2523cc(0x10b))['hide'](),_0x5b0c07[_0x2523cc(0x16a)][_0x2523cc(0x141)](_0x5b0c07[_0x2523cc(0x97)]),_0x5b0c07[_0x2523cc(0x16a)]['append'](_0x5b0c07['$dropdown']),_0x5b0c07[_0x2523cc(0x134)]=$('<ul\x20class=\x22sterfive-tree\x22></ul>')['appendTo'](_0x5b0c07['$dropdown']),this[_0x2523cc(0xc4)]();const _0x4b403d=(_0x128ada,_0x2d52b6)=>{const _0x1fbeb5=_0x2523cc,_0x37224c=0x14,_0x4fb3d2=0x14,_0x595522=_0x128ada[_0x1fbeb5(0x12d)](),_0xc21fa6=_0x2d52b6;if(_0xc21fa6[_0x1fbeb5(0xc5)]>=_0x595522['left']&&_0xc21fa6['pageX']<=_0x595522[_0x1fbeb5(0x10e)]+_0x37224c&&_0xc21fa6[_0x1fbeb5(0xb8)]>=_0x595522[_0x1fbeb5(0x13a)]&&_0xc21fa6[_0x1fbeb5(0xb8)]<=_0x595522[_0x1fbeb5(0x13a)]+_0x4fb3d2)return!![];return![];},_0x4a6203=_0x5def7a=>_0x2d1fd4(this,void 0x0,void 0x0,function*(){const _0xd96e68=_0x2523cc;if(_0x5def7a['hasClass'](_0xd96e68(0x113)))_0x3ab11e(_0x5b0c07,_0x5def7a);else{if(_0x5def7a[_0xd96e68(0x156)](_0xd96e68(0xca)))_0x5def7a[_0xd96e68(0xd4)]('ul')[_0xd96e68(0x148)](),_0x5def7a['toggleClass'](_0xd96e68(0x142));else{if(_0x5def7a[_0xd96e68(0xd4)]('ul')[_0xd96e68(0xd4)]()[_0xd96e68(0xe2)]>0x0)_0x5def7a[_0xd96e68(0xd4)]('ul')[_0xd96e68(0x148)](),_0x5def7a['toggleClass'](_0xd96e68(0x142));else;}}});_0x5b0c07[_0x2523cc(0x134)]['on']('dblclick','li',function(_0x1b6d28){const _0x5f9600=_0x2523cc;var _0x616937,_0x347b8;_0x1b6d28[_0x5f9600(0xaf)]();let _0x31f637=$(this);if(_0x4b403d(_0x31f637,_0x1b6d28))_0x4a6203(_0x31f637);else{const _0x52d49b=_0x31f637['data'](_0x5f9600(0xb5)),_0x4a4c50=_0x31f637['data'](_0x5f9600(0xc6));if(_0x5b0c07[_0x5f9600(0x124)][_0x5f9600(0x163)]&&!_0x5b0c07[_0x5f9600(0x124)][_0x5f9600(0x163)](_0x4a4c50))return;_0x5b0c07[_0x5f9600(0xe5)][_0x5f9600(0xff)]('reference',_0x4a4c50);const _0x39beba=((_0x616937=_0x4a4c50[_0x5f9600(0x167)])===null||_0x616937===void 0x0?void 0x0:_0x616937[_0x5f9600(0x14e)])||((_0x347b8=_0x4a4c50[_0x5f9600(0x92)])===null||_0x347b8===void 0x0?void 0x0:_0x347b8['name'])||_0x4a4c50[_0x5f9600(0x94)][_0x5f9600(0xfa)](),_0x514b7f='['+_0x39beba+']('+_0x52d49b+')';_0x5b0c07[_0x5f9600(0xe5)][_0x5f9600(0xef)](_0x514b7f),_0x5b0c07[_0x5f9600(0xe5)][_0x5f9600(0xad)](_0x5f9600(0x16f)),_0x5b0c07[_0x5f9600(0xea)][_0x5f9600(0x14b)]();}}),_0x5b0c07[_0x2523cc(0x134)]['on'](_0x2523cc(0xf8),'li',function(_0x3fa438){_0x3fa438['stopPropagation']();let _0x323e2b=$(this);_0x4b403d(_0x323e2b,_0x3fa438)&&_0x4a6203(_0x323e2b),_0x54d8bc(_0x5b0c07,_0x323e2b);}),$(document)['on'](_0x2523cc(0xf8),function(_0x5d6f51){const _0x55ca29=_0x2523cc;!$(_0x5d6f51[_0x55ca29(0x112)])[_0x55ca29(0x100)](_0x5b0c07[_0x55ca29(0x16a)])['length']&&_0x5b0c07['$dropdown']['hide']();});}});},_0x503e26=({endpointNode:_0xe4d4cf,endpoint:_0x35ceef,baseUrl:_0x5b7dff},_0x480958)=>_0x2d1fd4(void 0x0,void 0x0,void 0x0,function*(){const _0xc00509=_0xd16af7,_0x3e4272=_0x5b7dff+_0xc00509(0xa3),_0x14dc98=_0x3e4272+_0xc00509(0x151),_0x2d2c78=yield fetch(_0x14dc98,{'method':'POST','body':JSON[_0xc00509(0xdd)]({'endpointNode':_0xe4d4cf,'endpoint':_0x35ceef,'nodeId':_0x480958}),'headers':{'Content-Type':_0xc00509(0x160)}});if(_0x2d2c78[_0xc00509(0xf6)]!==0xc8){console[_0xc00509(0x165)](_0xc00509(0xa2),_0x2d2c78[_0xc00509(0xf6)],_0x2d2c78[_0xc00509(0x12f)]);const _0x182dcf={'statusCode':_0xc00509(0x162),'nodeAddressString':_0x480958};return _0x182dcf;}console[_0xc00509(0x165)]('fetched\x20:\x20',_0x2d2c78[_0xc00509(0xf6)],_0x2d2c78['statusText']);const _0x296de2=yield _0x2d2c78['json']();return _0x296de2;});function _0x309961(_0x127fc5,_0x38825d,_0x4582b3,_0x4cd21a){const _0x861de=_0xd16af7,_0x5e4428=$('#'+_0x127fc5+'-success'),_0x4fac2b=$('#'+_0x127fc5+_0x861de(0x96)),_0x4b249e=$('#'+_0x127fc5+_0x861de(0xf9)),_0x5f011d=$('#'+_0x127fc5+_0x861de(0xe1));let _0x345745=![];_0x5e4428[_0x861de(0x14b)](),_0x4fac2b[_0x861de(0x14b)](),_0x4b249e[_0x861de(0x14b)](),_0x38825d['on'](_0x861de(0xf8),()=>{const _0x240840=_0x861de;if(_0x345745)return;_0x345745=!![],_0x4b249e['removeClass'](_0x240840(0x14b)),_0x4b249e[_0x240840(0x15f)]('Testing\x20Connection\x20...'),_0x5e4428[_0x240840(0xd0)](_0x240840(0x14b)),_0x4fac2b[_0x240840(0xd0)](_0x240840(0x14b)),_0x5f011d[_0x240840(0x15f)]('');const {body:_0x11e258,url:_0x415523}=_0x4582b3();fetch(_0x415523,{'method':'POST','headers':{'Content-Type':_0x240840(0x160)},'body':JSON[_0x240840(0xdd)](_0x11e258)})[_0x240840(0xf1)](_0x29fa31=>_0x29fa31[_0x240840(0x157)]())[_0x240840(0xf1)](_0x4e5e2d=>{const _0x510cd2=_0x240840;_0x345745=![],_0x4b249e[_0x510cd2(0x14b)](),console[_0x510cd2(0x165)](JSON[_0x510cd2(0xdd)](_0x4e5e2d,null,'\x20'));if(_0x4e5e2d[_0x510cd2(0x150)]==='ok')_0x5e4428[_0x510cd2(0x115)](_0x510cd2(0x14b)),_0x4fac2b[_0x510cd2(0xd0)](_0x510cd2(0x14b)),_0x5f011d['html'](_0x4e5e2d[_0x510cd2(0xae)][_0x510cd2(0x127)]('\x0a','<br>')),_0x4cd21a(null,_0x4e5e2d);else{const _0x56ad36=_0x4e507e=>!_0x4e507e?'':_0x4e507e[_0x510cd2(0x11d)]('\x0a')[_0x510cd2(0x166)](_0x3fe2eb=>_0x510cd2(0x15e)+_0x3fe2eb+_0x510cd2(0x13e))['join']('\x0a'),_0x499aae=_0x427b53=>Array[_0x510cd2(0xed)](_0x427b53)?_0x427b53[_0x510cd2(0x166)](_0x56ad36)[_0x510cd2(0x16d)]('\x0a'):_0x56ad36(_0x427b53);_0x5e4428[_0x510cd2(0xd0)](_0x510cd2(0x14b)),_0x4fac2b[_0x510cd2(0x115)](_0x510cd2(0x14b)),_0x5f011d[_0x510cd2(0x15f)](_0x499aae(_0x4e5e2d['message'])+_0x499aae(_0x4e5e2d[_0x510cd2(0x13d)])),_0x4cd21a(new Error(_0x4e5e2d['result']),_0x4e5e2d);}})[_0x240840(0x116)](_0x4ae174=>{const _0x31fda8=_0x240840;_0x345745=![],_0x4b249e[_0x31fda8(0xd0)]('hide'),_0x5e4428[_0x31fda8(0xd0)]('hide'),_0x4fac2b[_0x31fda8(0x115)](_0x31fda8(0x14b)),_0x5f011d[_0x31fda8(0x15f)]('internal\x20error\x20'+_0x4ae174[_0x31fda8(0xae)]),console[_0x31fda8(0x165)](_0x31fda8(0x14c),_0x4ae174),_0x4cd21a(_0x4ae174,null);});});}const _0x473cb0=()=>{const _0x1a7d67=_0xd16af7,_0x5126ca=$(_0x1a7d67(0x103)),_0x53f42f=_0x5126ca[_0x1a7d67(0xef)](),_0xc9bd33=RED[_0x1a7d67(0x109)][_0x1a7d67(0x9b)](_0x53f42f);if(!_0xc9bd33)return undefined;const {endpoint:_0x2aa738,securityMode:_0x32204b,securityPolicy:_0x54be56,userIdentityType:_0x36f9bf,credentials:_0x371f39}=_0xc9bd33,_0x5e04ff={'endpoint':_0x2aa738,'securityMode':_0x32204b,'securityPolicy':_0x54be56,'userIdentityType':_0x36f9bf,'credentials':_0x371f39};return _0x5e04ff;},_0x3a9fa0=()=>{return{'endpointNode':_0x270ade};},_0x270ade=()=>{const _0x5089eb=_0xd16af7,_0x1e1518=$(_0x5089eb(0x103)),_0x489dfa=_0x1e1518[_0x5089eb(0xef)](),_0x392580=_0x473cb0();if(!_0x392580)return undefined;return{'id':_0x489dfa};};RED[_0xd16af7(0x109)][_0xd16af7(0x14f)]('OpcUa-Client2-Call',{'category':_0xd16af7(0x11c),'color':'#C0DEED','align':_0xd16af7(0x168),'icon':_0xd16af7(0x12c),'paletteLabel':_0xd16af7(0xb1),'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 _0x36e722=_0xd16af7;return this[_0x36e722(0x158)]||'OPCUA-Call';},'labelStyle'(){const _0x3818aa=_0xd16af7;return this[_0x3818aa(0x158)]?_0x3818aa(0x99):'';},'oneditprepare'(){const _0x509c93=_0xd16af7,_0x30eb85=this;_0x1a8e9f(),_0x30eb85[_0x509c93(0x145)]=0x1;let _0x29122d={};const _0x31b963=$(_0x509c93(0x114)),_0x231e1c=$(_0x509c93(0x122)),_0x3dfcd4=$('#method-input-argument-definition'),_0x260218=$('#method-output-argument-definition'),_0x69d38d=$(_0x509c93(0xe9));_0x31b963[_0x509c93(0xa1)](Object[_0x509c93(0xcf)](Object[_0x509c93(0xcf)]({},_0x3a9fa0()),{'filter'(_0x313712){const _0x4dded5=_0x509c93;return _0x313712[_0x4dded5(0xc3)]===_0x4dded5(0xf4);}})),_0x231e1c[_0x509c93(0xa1)](Object[_0x509c93(0xcf)](Object[_0x509c93(0xcf)]({},_0x3a9fa0()),{'parentNode':function(){return _0x2d1fd4(this,void 0x0,void 0x0,function*(){const _0x2547ea=_0x2861,_0x2efc8a=_0x2cd712(this);let _0x15eed7=_0x31b963['data']('reference');if(!_0x15eed7){const _0xaeca95=_0x31b963[_0x2547ea(0xef)](),_0x49d20a=_0x473cb0();if(!_0x49d20a)return null;try{const _0x2f2993=yield _0x503e26(_0x2efc8a,_0xaeca95);_0x15eed7=_0x2f2993[_0x2547ea(0xc6)];}catch(_0x58ff16){console[_0x2547ea(0x165)](_0x58ff16);}}return _0x15eed7;});},'filter'(_0x1ab346){const _0x3163e7=_0x509c93;return _0x1ab346[_0x3163e7(0xc3)]==='Method'||_0x1ab346['nodeClass']===_0x3163e7(0xf4);},'isSelectable'(_0xa3d426){const _0x3af91d=_0x509c93;return _0xa3d426['nodeClass']===_0x3af91d(0xa9);}})),_0x31b963['on'](_0x509c93(0x16f),()=>{const _0x212b5f=_0x509c93;_0x231e1c[_0x212b5f(0xa1)](_0x212b5f(0xc4));});function _0x5eefda(_0x191586,_0x1e1773,_0xe0f724){const _0x2219c9=_0x509c93,_0x34cf7d=$('<div\x20class=\x22argument-entry\x22>')['appendTo'](_0x191586);$(_0x2219c9(0xc9))[_0x2219c9(0xef)](_0xe0f724[_0x2219c9(0x158)]||'')['css']({'width':_0x2219c9(0xec)})['appendTo'](_0x34cf7d);const _0x203eaf=_0x29122d[_0xe0f724[_0x2219c9(0x126)]['toString']()],_0x4c34af=(_0x203eaf?_0x203eaf[_0x2219c9(0x92)]['name']||'':_0xe0f724[_0x2219c9(0x126)][_0x2219c9(0xfa)]())+(_0xe0f724[_0x2219c9(0x106)]===0x1?'[]':'');$(_0x2219c9(0xc9))[_0x2219c9(0xef)](_0xe0f724[_0x2219c9(0x128)][_0x2219c9(0x14e)]||'')[_0x2219c9(0xc8)]({'width':'50%'})['appendTo'](_0x34cf7d),$(_0x2219c9(0xc9))[_0x2219c9(0xef)](_0x4c34af||'')['css']({'width':_0x2219c9(0xfb)})[_0x2219c9(0x8b)](_0x34cf7d);}_0x3dfcd4['editableList']({'addButton':![],'height':_0x509c93(0x16e),'scrollOnAdd':![],'addItem'(_0xd98e29,_0x3336dc,_0x2f4cdc){_0x5eefda(_0xd98e29,_0x3336dc,_0x2f4cdc);}}),_0x260218['editableList']({'addButton':![],'height':_0x509c93(0x16e),'scrollOnAdd':![],'addItem'(_0x34438d,_0x3de098,_0x539829){_0x5eefda(_0x34438d,_0x3de098,_0x539829);}});function _0x6ffbad(_0x2bf7c6,_0x464028){const _0x399dff=_0x509c93;console[_0x399dff(0x165)](_0x399dff(0xe6),_0x464028[_0x399dff(0xe2)],_0x399dff(0xc0),_0x464028),_0x2bf7c6[_0x399dff(0x120)]('empty');for(let _0x32eed0=0x0;_0x32eed0<_0x464028[_0x399dff(0xe2)];_0x32eed0++){_0x2bf7c6['editableList']('addItem',_0x464028[_0x32eed0]);}}_0x3dfcd4[_0x509c93(0x14b)](),_0x260218[_0x509c93(0x14b)]();let _0x776fd4={};const _0x4e03f7=$(_0x509c93(0xba));_0x4e03f7[_0x509c93(0x14b)](),_0x4e03f7['on'](_0x509c93(0xf8),()=>{const _0x132f40=_0x509c93;navigator['clipboard'][_0x132f40(0x161)](JSON[_0x132f40(0xdd)](_0x776fd4));}),_0x309961(_0x509c93(0x147),_0x69d38d,()=>({'url':'/opcua-endpoint2/argumentDefinition','body':{'endpointNode':_0x270ade(),'objectId':_0x31b963[_0x509c93(0xef)](),'methodId':_0x231e1c[_0x509c93(0xef)]()}}),(_0x14377c,_0x196b40)=>{const _0x3598b8=_0x509c93;if(_0x14377c)return;const _0xf1f210=_0x196b40[_0x3598b8(0xeb)];_0x29122d=_0x196b40[_0x3598b8(0x136)],_0x3dfcd4[_0x3598b8(0xd2)](),_0x260218[_0x3598b8(0xd2)](),_0x6ffbad(_0x3dfcd4,_0xf1f210['inputArguments']),_0x6ffbad(_0x260218,_0xf1f210[_0x3598b8(0xb6)]),_0x776fd4=_0x196b40[_0x3598b8(0x12e)]||{},_0x4e03f7[_0x3598b8(0xd2)](),navigator[_0x3598b8(0x11e)]['writeText'](JSON[_0x3598b8(0xdd)](_0x776fd4)),console[_0x3598b8(0x165)](_0x3598b8(0x14d),JSON[_0x3598b8(0xdd)](_0x776fd4)),console[_0x3598b8(0x165)]('data',_0x196b40);});},'oneditsave'(){}});}()));
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHgyZDFmZDQiLCJfMHg0NGY2ODEiLCJfMHg0NTJiZDciLCJfMHg1MWU5OWIiLCJfMHgxOTRkMDAiLCJfMHgyNDE5ZDQiLCJfMHgxNDJmM2QiLCJfMHgxNDY3ZmUiLCJQcm9taXNlIiwiXzB4MjBlMGM1IiwiXzB4YzBkMWI2IiwiXzB4MzkzNzYxIiwiXzB4NTViNjU5IiwiXzB4MjgzODM5IiwiXzB4MmJkZTM3IiwiXzB4MTE3MmZlIiwiXzB4MzEwZTEyIiwiXzB4M2U0N2VhIiwiXzB4M2EyYjMwIiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4NDYyZGY2IiwiXzB4OGQyMjkzIiwiXzB4MTFjNDFlIiwiXzB4NDE2MzA1IiwiRXJyb3IiLCJfMHgzYjhiOTciLCJfMHgyYzJjYjkiLCJfMHhjNzM2YTYiLCJfMHg1NzhlNjciLCJfMHgzZWQ4MTAiLCJfMHg1ZjE3NWMiLCJfMHgxMDllODkiLCJfMHhiNGFmMCIsIl8weDEzMjUyNyIsIl8weDJhODBhZSIsIl8weDIxNjUwYSIsIl8weDJlZGQ5OSIsIl8weDVhMjU1NyIsIl8weGMyM2YzZiIsIl8weDFkYjM3YyIsIl8weDU1NjhmMyIsIl8weDQ4NDM4ZCIsIl8weDFkYWU2ZSIsIl8weDU0ZTFlOSIsIl8weDM2ZWE2ZiIsImVuZHBvaW50Tm9kZSIsIl8weDNmNDYxYyIsImVuZHBvaW50IiwiXzB4NDAxYTJhIiwiYmFzZVVybCIsIl8weDNkNjNlMSIsIl8weDE4ZmFhZSIsIl8weDZiZTU3ZiIsIl8weDJiMzg4MiIsIl8weDE0NDI0OCIsIl8weDM0NzQzZCIsIk9iamVjdCIsIl8weDQwYzlhMiIsImZldGNoIiwiSlNPTiIsImNvbnNvbGUiLCJfMHg0MTEzM2MiLCJfMHhjZmMwNyIsIl8weDJmZDlkZCIsIl8weDIyYzQyMSIsIl8weDFkNzUxNiIsIl8weGM4MjVlOCIsIl8weDUzNTYyOCIsIl8weDU3YzE4NyIsIm5vZGVJZCIsIl8weDNiYWZlMCIsInJvb3ROb2RlSWQiLCJfMHg1NzhmMzQiLCJpc1R5cGUiLCJfMHgxMTk3NWIiLCJfMHgzMTBiOGIiLCJfMHhmNTFiOTciLCJfMHg0YTQ2ZmEiLCJfMHgxYWYxMDkiLCJfMHgyMWZmNjgiLCJfMHgyNTg1YzMiLCJfMHgzYzQ0OWQiLCJfMHgzZGNkOWQiLCJfMHg0NTE4OTYiLCJfMHgyNGU0OGMiLCJfMHgxYWVjNjIiLCJfMHgyYjcxNzMiLCJfMHg1ODYyOWIiLCJfMHg0OGQ2YjMiLCJfMHgzNGNjMmUiLCJfMHg1Y2Q2MTYiLCJfMHg1YTM0MDAiLCJzZXRUaW1lb3V0IiwiXzB4MWY0ZmY1IiwiXzB4MmVkM2Q4IiwiXzB4NGZhZWJiIiwiXzB4MjU3MjY1IiwiXzB4NTBmZTU3IiwiXzB4NDMwNmViIiwiXzB4MjlmMTEzIiwiXzB4M2EyZWQ1IiwiXzB4NDMyMDkxIiwiXzB4MTkyOWEyIiwiXzB4MjhmOTk2IiwiXzB4YmM3ZTMwIiwiXzB4ODc4YjQ5IiwiXzB4NTg2MmExIiwiXzB4MWUyOGE4IiwiXzB4MzNjYjhmIiwiXzB4MWY0YjVmIiwiXzB4MjU0NDQwIiwiXzB4NWI5ZjZlIiwiXzB4M2JlMjc3IiwiJCIsIl8weDY2MTFlMCIsIl8weGI5NjZiIiwiaWNvbiIsIl8weDIxMTQ1ZCIsImNvbG9yIiwiXzB4NDU0Y2YxIiwiXzB4M2QxNDAxIiwiXzB4NDMzOWViIiwiXzB4MTkwMTJhIiwiXzB4NGQ3NWQ0IiwiXzB4MmExMWU5IiwiXzB4NTRkOGJjIiwiXzB4NGUyZTllIiwiXzB4YWE1YjQ3IiwiXzB4MjBkYjJlIiwiXzB4NGJiMDFlIiwiXzB4MzMwYjI5IiwiXzB4NDM3MjAzIiwiXzB4NTkwNTRkIiwiXzB4NDZlMDE1IiwiXzB4MWM5MjI4IiwiXzB4M2FiMTFlIiwiXzB4M2Y5MDEiLCJfMHg1ZTk5YWMiLCJfMHgxZGUzYjYiLCJfMHg4Zjc4YjIiLCJfMHgzYjJhYmIiLCJfMHg1MWQxODciLCJ1bmRlZmluZWQiLCJfMHgxOTY0ZjUiLCJfMHgzNDVlYmMiLCJfMHg1MDBmNyIsIl8weDJkZjY5YSIsIl8weDU5YmE4ZCIsIl8weGQ3ZWQ2NCIsIl8weDVhZWIzMSIsIl8weDJjZDcxMiIsIl8weDM2Y2NmZiIsIl8weDQyYWE0ZSIsIl8weDI5OTM1OCIsIl8weDIwNzg2OCIsIl8weDFjNjUwZiIsIl8weDI2MGIwNyIsInJlZmVyZW5jZXMiLCJfMHgzOWNiYWMiLCJfMHgzNzMzOTkiLCJfMHg0MGI2ZjMiLCJfMHg1ZDQ5OWUiLCJfMHg2OTQ2MGEiLCJfMHhjNTRhMjIiLCJfMHgzYzQ1OWIiLCJfMHg1MjUxMWEiLCJfMHg1ODA1YjAiLCJfMHg0YzU1NTMiLCJfMHg0NjBmMDUiLCJfMHgxYThlOWYiLCJfMHgxZjY0ZTYiLCJfMHgzM2E4MDEiLCJfMHgyYjBmZjMiLCJfMHg1OTQ1ODUiLCJfMHg1NDQwYjciLCJfMHgyZmQyNWYiLCJfMHg1NGUyZDgiLCJfMHg1NjhjZDYiLCJfMHgxMjg5YzAiLCJfMHg1YjBjMDciLCJfMHgzZTFkZGQiLCJfMHgyMDczNWUiLCJfMHgxZGNhNjkiLCJfMHg0YjQwM2QiLCJfMHgxMjhhZGEiLCJfMHgyZDUyYjYiLCJfMHgzNzIyNGMiLCJfMHg0ZmIzZDIiLCJfMHg1OTU1MjIiLCJfMHhjMjFmYTYiLCJfMHg0YTYyMDMiLCJfMHg1ZGVmN2EiLCJfMHgxYjZkMjgiLCJfMHg2MTY5MzciLCJfMHgzNDdiOCIsIl8weDMxZjYzNyIsIl8weDUyZDQ5YiIsIl8weDRhNGM1MCIsIl8weDM5YmViYSIsIl8weDUxNGI3ZiIsIl8weDNmYTQzOCIsIl8weDMyM2UyYiIsImRvY3VtZW50IiwiXzB4NWQ2ZjUxIiwiXzB4NTAzZTI2IiwiXzB4ZTRkNGNmIiwiXzB4MzVjZWVmIiwiXzB4NWI3ZGZmIiwiXzB4NDgwOTU4IiwiXzB4M2U0MjcyIiwiXzB4MTRkYzk4IiwiXzB4MmQyYzc4IiwiXzB4MTgyZGNmIiwiXzB4Mjk2ZGUyIiwiXzB4MzA5OTYxIiwiXzB4MTI3ZmM1IiwiXzB4Mzg4MjVkIiwiXzB4NDU4MmIzIiwiXzB4NGNkMjFhIiwiXzB4NWU0NDI4IiwiXzB4NGZhYzJiIiwiXzB4NGIyNDllIiwiXzB4NWYwMTFkIiwiXzB4MzQ1NzQ1IiwiYm9keSIsIl8weDExZTI1OCIsInVybCIsIl8weDQxNTUyMyIsIl8weDI5ZmEzMSIsIl8weDRlNWUyZCIsIl8weDU2YWQzNiIsIl8weDRlNTA3ZSIsIl8weDNmZTJlYiIsIl8weDQ5OWFhZSIsIl8weDQyN2I1MyIsIkFycmF5IiwiXzB4NGFlMTc0IiwiXzB4NDczY2IwIiwiXzB4NTEyNmNhIiwiXzB4NTNmNDJmIiwiXzB4YzliZDMzIiwiUkVEIiwiXzB4MmFhNzM4Iiwic2VjdXJpdHlNb2RlIiwiXzB4MzIyMDRiIiwic2VjdXJpdHlQb2xpY3kiLCJfMHg1NGJlNTYiLCJ1c2VySWRlbnRpdHlUeXBlIiwiXzB4MzZmOWJmIiwiY3JlZGVudGlhbHMiLCJfMHgzNzFmMzkiLCJfMHg1ZTA0ZmYiLCJfMHgzYTlmYTAiLCJfMHgyNzBhZGUiLCJfMHgxZTE1MTgiLCJfMHg0ODlkZmEiLCJfMHgzOTI1ODAiLCJfMHgzMGViODUiLCJfMHgyOTEyMmQiLCJfMHgzMWI5NjMiLCJfMHgyMzFlMWMiLCJfMHgzZGZjZDQiLCJfMHgyNjAyMTgiLCJfMHg2OWQzOGQiLCJfMHgzMTM3MTIiLCJfMHgyZWZjOGEiLCJfMHgxNWVlZDciLCJfMHhhZWNhOTUiLCJfMHg0OWQyMGEiLCJfMHgyZjI5OTMiLCJfMHg1OGZmMTYiLCJfMHgxYWIzNDYiLCJfMHhhM2Q0MjYiLCJfMHg1ZWVmZGEiLCJfMHgxOTE1ODYiLCJfMHgxZTE3NzMiLCJfMHhlMGY3MjQiLCJfMHgzNGNmN2QiLCJfMHgyMDNlYWYiLCJfMHg0YzM0YWYiLCJfMHhkOThlMjkiLCJfMHgzMzM2ZGMiLCJfMHgyZjRjZGMiLCJfMHgzNDQzOGQiLCJfMHgzZGUwOTgiLCJfMHg1Mzk4MjkiLCJfMHg2ZmZiYWQiLCJfMHgyYmY3YzYiLCJfMHg0NjQwMjgiLCJfMHgzMmVlZDAiLCJfMHg3NzZmZDQiLCJfMHg0ZTAzZjciLCJuYXZpZ2F0b3IiLCJfMHgxNDM3N2MiLCJfMHgxOTZiNDAiLCJfMHhmMWYyMTAiXSwibWFwcGluZ3MiOiI4aElBQUEsQ0FBQyxVLENBQ0csYSx3QkFtQkEsU0FBU0Es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QUEsQ0FBM0IsQ0FDQXBDLFNBQUEsQ0FBWW9DLFNBQUEsQyxnQkFBQSxDLENBQ1pqQyxTQUFBLEMsZUFBQSxHLENBQ0FDLFNBQUEsQyxlQUFBLEcsQ0FDQXdCLFNBQUEsQ0FBb0J6QixTQUFwQixDQUE4Q2tDLFNBQUEsQyxnQkFBQSxDQUE5QyxDLENBQ0FULFNBQUEsQ0FBb0J4QixTQUFwQixDQUErQ2lDLFNBQUEsQyxlQUFBLENBQS9DLEMsQ0FDQUwsU0FBQSxDQUFjSSxTQUFBLEMsZ0JBQUEsR0FBb0MsRSxDQUNsREgsU0FBQSxDLGVBQUEsRyxDQUNBQyxTQUFBLEMsZ0JBQUEsRSxXQUFBLEVBQThCek8sSUFBQSxDLGVBQUEsRUFBZXVPLFNBQWYsQ0FBOUIsQyxDQUNBdE8sT0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FBb0JELElBQUEsQyxlQUFBLEVBQWV1TyxTQUFmLENBQXBCLEMsQ0FDQXRPLE9BQUEsQyxnQkFBQSxFLE1BQUEsQ0FBb0IwTyxTQUFwQixDLEVBdEJKLEMsRUEzSHFDLEMsWUFvSnpDLEUsRUFwSnlDLENBQTdDLEMsRUFqc0JKLEciLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gKCkge1xuICAgICd1c2Ugc3RyaWN0JztcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuICAgIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLlxyXG5cclxuICAgIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueVxyXG4gICAgcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLlxyXG5cclxuICAgIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEhcclxuICAgIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWVxyXG4gICAgQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgU1BFQ0lBTCwgRElSRUNULFxyXG4gICAgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NXHJcbiAgICBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUlxyXG4gICAgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUlxyXG4gICAgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS5cclxuICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXHJcbiAgICAvKiBnbG9iYWwgUmVmbGVjdCwgUHJvbWlzZSwgU3VwcHJlc3NlZEVycm9yLCBTeW1ib2wgKi9cclxuXHJcblxyXG4gICAgZnVuY3Rpb24gX19hd2FpdGVyKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xyXG4gICAgICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxyXG4gICAgICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xyXG4gICAgICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxyXG4gICAgICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdHlwZW9mIFN1cHByZXNzZWRFcnJvciA9PT0gXCJmdW5jdGlvblwiID8gU3VwcHJlc3NlZEVycm9yIDogZnVuY3Rpb24gKGVycm9yLCBzdXBwcmVzc2VkLCBtZXNzYWdlKSB7XHJcbiAgICAgICAgdmFyIGUgPSBuZXcgRXJyb3IobWVzc2FnZSk7XHJcbiAgICAgICAgcmV0dXJuIGUubmFtZSA9IFwiU3VwcHJlc3NlZEVycm9yXCIsIGUuZXJyb3IgPSBlcnJvciwgZS5zdXBwcmVzc2VkID0gc3VwcHJlc3NlZCwgZTtcclxuICAgIH07XG5cbiAgICBjb25zdCBPcmdhbml6ZXNSZWZOb2RlSWQgPSBcIm5zPTA7aT0zNVwiO1xuICAgIGNvbnN0IEZvbGRlclR5cGUgPSBcIm5zPTA7aT02MVwiO1xuICAgIGNvbnN0IEhhc0NvbXBvbmVudFJlZk5vZGVJZCA9IFwibnM9MDtpPTQ3XCI7XG4gICAgY29uc3QgSGFzUHJvcGVydHlSZWZOb2RlSWQgPSBcIm5zPTA7aT00NlwiO1xuICAgIGNvbnN0IEhhc0NoaWxkUmVmTm9kZUlkID0gXCJucz0wO2k9MzRcIjtcbiAgICBjb25zdCBIYXNTdWJ0eXBlUmVmTm9kZUlkID0gXCJucz0wO2k9NDVcIjtcbiAgICBjb25zdCBIYXNUeXBlRGVmaW5pdGlvblJlZk5vZGVJZCA9IFwibnM9MDtpPTQwXCI7XG5cbiAgICB2YXIgQnJvd3NlRGlyZWN0aW9uO1xuICAgIChmdW5jdGlvbiAoQnJvd3NlRGlyZWN0aW9uKSB7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJGb3J3YXJkXCJdID0gMF0gPSBcIkZvcndhcmRcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkludmVyc2VcIl0gPSAxXSA9IFwiSW52ZXJzZVwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiQm90aFwiXSA9IDJdID0gXCJCb3RoXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJJbnZhbGlkXCJdID0gM10gPSBcIkludmFsaWRcIjtcbiAgICB9KShCcm93c2VEaXJlY3Rpb24gfHwgKEJyb3dzZURpcmVjdGlvbiA9IHt9KSk7XG4gICAgdmFyIE5vZGVDbGFzcztcbiAgICAoZnVuY3Rpb24gKE5vZGVDbGFzcykge1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVW5zcGVjaWZpZWRcIl0gPSAwXSA9IFwiVW5zcGVjaWZpZWRcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk9iamVjdFwiXSA9IDFdID0gXCJPYmplY3RcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlZhcmlhYmxlXCJdID0gMl0gPSBcIlZhcmlhYmxlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJNZXRob2RcIl0gPSA0XSA9IFwiTWV0aG9kXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJPYmplY3RUeXBlXCJdID0gOF0gPSBcIk9iamVjdFR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlZhcmlhYmxlVHlwZVwiXSA9IDE2XSA9IFwiVmFyaWFibGVUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJSZWZlcmVuY2VUeXBlXCJdID0gMzJdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJEYXRhVHlwZVwiXSA9IDY0XSA9IFwiRGF0YVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlZpZXdcIl0gPSAxMjhdID0gXCJWaWV3XCI7XG4gICAgfSkoTm9kZUNsYXNzIHx8IChOb2RlQ2xhc3MgPSB7fSkpO1xuICAgIHZhciBOb2RlQ2xhc3NNYXNrO1xuICAgIChmdW5jdGlvbiAoTm9kZUNsYXNzTWFzaykge1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJPYmplY3RcIl0gPSAxXSA9IFwiT2JqZWN0XCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlZhcmlhYmxlXCJdID0gMl0gPSBcIlZhcmlhYmxlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk1ldGhvZFwiXSA9IDRdID0gXCJNZXRob2RcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiT2JqZWN0VHlwZVwiXSA9IDhdID0gXCJPYmplY3RUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlZhcmlhYmxlVHlwZVwiXSA9IDE2XSA9IFwiVmFyaWFibGVUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAzMl0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiRGF0YVR5cGVcIl0gPSA2NF0gPSBcIkRhdGFUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlZpZXdcIl0gPSAxMjhdID0gXCJWaWV3XCI7XG4gICAgfSkoTm9kZUNsYXNzTWFzayB8fCAoTm9kZUNsYXNzTWFzayA9IHt9KSk7XG4gICAgdmFyIFJlc3VsdE1hc2s7XG4gICAgKGZ1bmN0aW9uIChSZXN1bHRNYXNrKSB7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAxXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJJc0ZvcndhcmRcIl0gPSAyXSA9IFwiSXNGb3J3YXJkXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIk5vZGVDbGFzc1wiXSA9IDRdID0gXCJOb2RlQ2xhc3NcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiQnJvd3NlTmFtZVwiXSA9IDhdID0gXCJCcm93c2VOYW1lXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIkRpc3BsYXlOYW1lXCJdID0gMTZdID0gXCJEaXNwbGF5TmFtZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJUeXBlRGVmaW5pdGlvblwiXSA9IDMyXSA9IFwiVHlwZURlZmluaXRpb25cIjtcbiAgICB9KShSZXN1bHRNYXNrIHx8IChSZXN1bHRNYXNrID0ge30pKTtcbiAgICAvLyAgY29uc3QgcSA9IFJlZmVyZW5jZVR5cGVJZHMuT3JnYW5pemVzO1xuICAgIGZ1bmN0aW9uIHJlc29sdmVOb2RlSWQobm9kZUlkTGlrZSkge1xuICAgICAgICBzd2l0Y2ggKG5vZGVJZExpa2UpIHtcbiAgICAgICAgICAgIGNhc2UgXCJPcmdhbml6ZXNcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gT3JnYW5pemVzUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1Byb3BlcnR5XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1Byb3BlcnR5UmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc0NvbXBvbmVudFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNDb21wb25lbnRSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzQ2hpbGRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzQ2hpbGRSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzU3VidHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNTdWJ0eXBlUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1R5cGVEZWZpbml0aW9uXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1R5cGVEZWZpbml0aW9uUmVmTm9kZUlkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZ2V0SWNvbiA9IChyZWZlcmVuY2UpID0+IHtcbiAgICAgICAgc3dpdGNoIChyZWZlcmVuY2Uubm9kZUNsYXNzKSB7XG4gICAgICAgICAgICBjYXNlIFwiT2JqZWN0XCI6XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IE9yZ2FuaXplc1JlZk5vZGVJZCkgO1xuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UudHlwZURlZmluaXRpb24gPT09IEZvbGRlclR5cGUgfHwgcmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gXCJpPTYxXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1mb2xkZXJcIiwgY29sb3I6IFwicmdiYSg2MSwgNjAsIDQsIDAuNTI1KVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiBcIlNlYUdyZWVuXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJWYXJpYWJsZVwiOlxuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBIYXNDb21wb25lbnRSZWZOb2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJTdGVlbEJsdWVcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBIYXNQcm9wZXJ0eVJlZk5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIkRvZGdlckJsdWVcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJDYWRldEJsdWVcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgXCJNZXRob2RcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWNvZ1wiLCBjb2xvcjogXCJTYW5keUJyb3duXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJPYmplY3RUeXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6IFwiRGFya09yYW5nZVwiIH07XG4gICAgICAgICAgICBjYXNlIFwiVmFyaWFibGVUeXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1zbGlkZXJzXCIsIGNvbG9yOiBcIkRhcmtPcmFuZ2VcIiB9O1xuICAgICAgICAgICAgY2FzZSBcIkRhdGFUeXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS10ZXh0LXdpZHRoXCIsIGNvbG9yOiBcIkNhZGV0Qmx1ZVwiIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1xdWVzdGlvblwiLCBjb2xvcjogXCJncmV5XCIgfTtcbiAgICB9O1xuXG4gICAgY29uc3QgYnJvd3NlID0gKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCBub2RlSWQsIHRlbXBsYXRlKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWVuZHBvaW50MmA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L2Jyb3dzZWA7XG4gICAgICAgIGNvbnN0IGJyb3dzZURlc2NyaXB0aW9uID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCB0ZW1wbGF0ZSksIHsgbm9kZUlkLCByZXN1bHRNYXNrOiA2MyB9KTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgYnJvd3NlRGVzY3JpcHRpb24sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoaW5nIGZhaWxlZCB3aXRoIGVycm9yXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICAgICAgcmV0dXJuIHsgcmVmZXJlbmNlczogW10gfTtcbiAgICAgICAgfVxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcImJyb3dzZSBmZXRjaGVkIDogXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IHlpZWxkIGRhdGEuanNvbigpO1xuICAgICAgICBjb25zdCByZWZlcmVuY2VzID0gcmVzcG9uc2UuYnJvd3NlUmVzdWx0LnJlZmVyZW5jZXMgfHwgW107XG4gICAgICAgIHJldHVybiB7IHJlZmVyZW5jZXMgfTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHRlbXBsYXRlMSA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzQ2hpbGRcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCB0ZW1wbGF0ZTIgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIk9yZ2FuaXplc1wiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuVmFyaWFibGUgfCBOb2RlQ2xhc3MuT2JqZWN0IHwgTm9kZUNsYXNzLk1ldGhvZCxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5PYmplY3RUeXBlIHxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5EYXRhVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5WaWV3LFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGNvbnN0IHdhbGtCYWNrd2FyZCA9ICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgeyBub2RlSWQsIHJvb3ROb2RlSWQsIGlzVHlwZSB9KSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWVuZHBvaW50MmA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L3dhbGstYmFja3dhcmRgO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBub2RlSWQsXG4gICAgICAgICAgICAgICAgcm9vdE5vZGVJZCxcbiAgICAgICAgICAgICAgICBpc1R5cGUsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBqc29uID0gKHlpZWxkIGRhdGEuanNvbigpKTtcbiAgICAgICAgcmV0dXJuIGpzb24uYnJvd3NlUGF0aDtcbiAgICB9KTtcbiAgICBjb25zdCBpbnRlcm5hbFZlcmlmeSA9ICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgJGlucHV0RWxlbWVudCwgJGluZm8pID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vY2hlY2tOb2RlSWRgO1xuICAgICAgICBjb25zdCBub2RlSWQgPSAkaW5wdXRFbGVtZW50LnZhbCgpO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBub2RlSWQsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHNldE5vdGlmaWNhdGlvbiA9ICh0ZXh0LCBjbGFzc05hbWUpID0+IHtcbiAgICAgICAgICAgICRpbmZvLnRleHQodGV4dCkuYWRkQ2xhc3MoXCJzdGVyZml2ZS1pbmZvXCIpLmFkZENsYXNzKGNsYXNzTmFtZSk7XG4gICAgICAgICAgICAkaW5mby5zaG93KCk7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAkaW5mby5yZW1vdmVDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgICAgICRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgIH0sIDMwMDApO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBqc29uID0gKHlpZWxkIGRhdGEuanNvbigpKTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIC8vIGRvIHNvbWV0aGluZztcbiAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihcIiEhZmFpbHVyZSEhXCIgKyBub2RlSWQsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGlmIChqc29uLnN0YXR1c0NvZGUubWF0Y2goL0dvb2QvKSkge1xuICAgICAgICAgICAgICAgIC8vIGRvIHNvbWV0aGluZ1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudmFsKGpzb24ubm9kZUFkZHJlc3NTdHJpbmcpO1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCJHb29kXCIsIFwib2tcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChgJHtub2RlSWR9YCk7XG4gICAgICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKGAke2pzb24uc3RhdHVzQ29kZX0gJHtkYXRhLnN0YXR1c1RleHR9YCwgXCJmYWlsdXJlXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG4gICAgZnVuY3Rpb24gZmV0Y2hDaGlsZHJlbigkbm9kZSwgZGF0YSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZUlkID0gJG5vZGUuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MSA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMSk7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQyID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGUyKTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVmZXJlbmNlczogWy4uLmJyb3dzZVJlc3VsdDEucmVmZXJlbmNlcywgLi4uYnJvd3NlUmVzdWx0Mi5yZWZlcmVuY2VzXSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCB0ZW1wbGF0ZVNUID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJIYXNTdWJ0eXBlXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHwgTm9kZUNsYXNzLk9iamVjdFR5cGUgfCBOb2RlQ2xhc3MuRGF0YVR5cGUgfCBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlLFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGZ1bmN0aW9uIGZldGNoU3VidHlwZXMoJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZVNUKTtcbiAgICAgICAgICAgIHJldHVybiBicm93c2VSZXN1bHQxO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgbWFrZUVsZW1lbnQgPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZDtcbiAgICAgICAgaWYgKCFyZWZlcmVuY2UgfHwgIXJlZmVyZW5jZS5ub2RlSWQpIHtcbiAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpPjxpIGNsYXNzPVwiZmEgZmEtZXJyb3JcIiBzdHlsZT1cImNvbG9yOnJlZDtcIj48L2k+bm8gcmVmZXJlbmNlICE8dWw+PC91bD48L2xpPmApO1xuICAgICAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG4gPSByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IHQgPSAoKF9hID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGV4dCkgfHwgKChfYiA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB7IGljb24sIGNvbG9yIH0gPSBnZXRJY29uKHJlZmVyZW5jZSk7XG4gICAgICAgIGNvbnN0IHRpdGxlID0gYCgke3JlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKX0pICR7KChfYyA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MubmFtZSkgfHwgKChfZCA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9kLnRleHQpIHx8IFwiXCJ9YDtcbiAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGkga2V5PVwiJHtyZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCl9XCJ9PjxzcGFuIGNsYXNzPVwidHJlZS10ZXh0XCIgdGl0bGU9JHt0aXRsZX0+PGkgY2xhc3M9XCJmYSAke2ljb259XCIgc3R5bGU9XCJjb2xvcjoke2NvbG9yfTtcIj48L2k+ICR7dH08L3NwYW4+PHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgJGVsZW1lbnQuYWRkQ2xhc3MoXCJleHBhbmRhYmxlXCIpO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwidmFsdWVcIiwgbik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgIH07XG4gICAgY29uc3QgZmluZEVsZW1lbnQgPSAobm9kZUlkLCAkdHJlZSkgPT4ge1xuICAgICAgICByZXR1cm4gJHRyZWUuZmluZChgbGlba2V5PVwiJHtub2RlSWR9XCJdYCk7XG4gICAgfTtcbiAgICBjb25zdCBzZWxlY3RTaW5nbGUgPSAodGhhdCwgJGxpKSA9PiB7XG4gICAgICAgIHRoYXQuJHRyZWUuZmluZChcImxpID4gLnRyZWUtdGV4dFwiKS5yZW1vdmVDbGFzcyhcInNlbGVjdGVkXCIpO1xuICAgICAgICAvLyBjbGVhciBhbGwgc2VsZWN0ZWQgaXRlbXNcbiAgICAgICAgJGxpLmZpbmQoXCIudHJlZS10ZXh0OmZpcnN0XCIpLmFkZENsYXNzKFwic2VsZWN0ZWRcIik7XG4gICAgfTtcbiAgICBjb25zdCBhdXRvRXhwYW5kID0gKHRoYXQsIGJyb3dzZVBhdGgsICR0cmVlKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgLy8gZXhwYW5kIHRoZSB0cmVlIHRvIHNob3cgdGhlIG5vZGVJZFxuICAgICAgICBsZXQgJGN1cnJlbnQgPSAkdHJlZS5jaGlsZHJlbihcIjpmaXJzdFwiKTtcbiAgICAgICAgYnJvd3NlUGF0aC5yZWxhdGl2ZVBhdGguZWxlbWVudHMgfHwgW107XG4gICAgICAgIGNvbnN0IG5vZGVJZHMgPSBicm93c2VQYXRoLm5vZGVJZHMgfHwgW107XG4gICAgICAgIGlmIChub2RlSWRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgbiBvZiBub2RlSWRzKSB7XG4gICAgICAgICAgICBpZiAoJGN1cnJlbnQuaGFzQ2xhc3MoXCJleHBhbmRhYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgLy8gbmVlZCB0byBleHBhbmQgYW5kIHNlbGVjdCB0aGUgcmlnaHQgZWxlbWVudFxuICAgICAgICAgICAgICAgIHlpZWxkIF9leHBhbmRMaSh0aGF0LCAkY3VycmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IGZpbmRFbGVtZW50KG4sICRjdXJyZW50KTtcbiAgICAgICAgICAgIGlmICgkZWxlbWVudC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkY3VycmVudCA9ICRlbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIHNlbGVjdFNpbmdsZSh0aGF0LCAkY3VycmVudCk7XG4gICAgICAgIHNjcm9sbFRvTGkodGhhdC4kZHJvcGRvd24sICRjdXJyZW50KTtcbiAgICB9KTtcbiAgICBmdW5jdGlvbiBzY3JvbGxUb0xpKCRjb250YWluZXIsICR0YXJnZXRMaSkge1xuICAgICAgICAvLyBHZXQgdGhlIHBvc2l0aW9uIG9mIHRoZSB0YXJnZXQgaXRlbSByZWxhdGl2ZSB0byBpdHMgY29udGFpbmVyXG4gICAgICAgIGNvbnN0IGxpUG9zID0gJHRhcmdldExpLnBvc2l0aW9uKCkudG9wO1xuICAgICAgICAvLyBHZXQgdGhlIGN1cnJlbnQgc2Nyb2xsIHBvc2l0aW9uIG9mIHRoZSBjb250YWluZXJcbiAgICAgICAgY29uc3QgY29udGFpbmVyU2Nyb2xsVG9wID0gJGNvbnRhaW5lci5zY3JvbGxUb3AoKTtcbiAgICAgICAgaWYgKGNvbnRhaW5lclNjcm9sbFRvcCA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIHBvc2l0aW9uIHRvIHNjcm9sbCB0byAoY3VycmVudCBzY3JvbGwgKyBpdGVtJ3MgcG9zaXRpb24pXG4gICAgICAgIC8vIEFkanVzdCB0aGlzIGNhbGN1bGF0aW9uIGJhc2VkIG9uIHlvdXIgbmVlZHNcbiAgICAgICAgY29uc3Qgc2Nyb2xsVG8gPSBjb250YWluZXJTY3JvbGxUb3AgKyBsaVBvcyAtICRjb250YWluZXIuaGVpZ2h0KCkgLyAyICsgJHRhcmdldExpLmhlaWdodCgpIC8gMjtcbiAgICAgICAgLy8gU2Nyb2xsIHRoZSBjb250YWluZXIgdG8gZW5zdXJlIHRoZSBpdGVtIGlzIHZpc2libGVcbiAgICAgICAgJGNvbnRhaW5lci5hbmltYXRlKHtcbiAgICAgICAgICAgIHNjcm9sbFRvcDogc2Nyb2xsVG8sXG4gICAgICAgIH0sIDUwMCk7IC8vIEFkanVzdCB0aGUgZHVyYXRpb24gKDUwMG1zKSBhcyBuZWVkZWRcbiAgICB9XG4gICAgY29uc3QgcmVhY2hTZWxlY3Rpb24gPSAodGhhdCwgcGFyZW50Tm9kZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IG5vZGVJZCA9IHRoYXQuJGlucHV0LnZhbCgpO1xuICAgICAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgcm9vdE5vZGVJZDogcGFyZW50Tm9kZS5ub2RlSWQsXG4gICAgICAgICAgICBpc1R5cGU6IHRoYXQub3B0aW9ucy5pc1R5cGVSZWYgfHwgZmFsc2UsXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGRhdGEgPSBtYWtlQ29ubmVjdGlvbih0aGF0KTtcbiAgICAgICAgY29uc3QgYnJvd3NlUGF0aCA9IHlpZWxkIHdhbGtCYWNrd2FyZChkYXRhLCBvcHRpb25zKTtcbiAgICAgICAgaWYgKCFicm93c2VQYXRoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgeWllbGQgYXV0b0V4cGFuZCh0aGF0LCBicm93c2VQYXRoLCB0aGF0LiR0cmVlKTtcbiAgICB9KTtcbiAgICBmdW5jdGlvbiBfZmV0Y2hEYXRhRm9yTm9kZSh0aGF0LCAkbm9kZSwgZmV0Y2hGdW5jLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBpZiAoJG5vZGUuaGFzQ2xhc3MoXCJmZXRjaGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhbHJlYWR5IGZldGNoZWRcIik7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCRub2RlLmhhc0NsYXNzKFwibG9hZGluZ1wiKSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYWxyZWFkeSBsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwibG9hZGluZ1wiKTtcbiAgICAgICAgICAgICRub2RlLmFwcGVuZCgnPGRpdiBjbGFzcz1cInNwaW5uZXJcIj48L2Rpdj4nKTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgcmVmZXJlbmNlcyB9ID0geWllbGQgZmV0Y2hGdW5jKCRub2RlLCBkYXRhKTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHJlZmVyZW5jZSBvZiByZWZlcmVuY2VzKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuZmlsdGVyICYmICF0aGF0Lm9wdGlvbnMuZmlsdGVyKHJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQocmVmZXJlbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5hcHBlbmQoJGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAkbm9kZS5hZGRDbGFzcyhcImZldGNoZWRcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5hcHBlbmQoYDxsaT5lcnJvciAke2Vyci5tZXNzYWdlfTwvbGk+YCk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJcIiwgZXJyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICRub2RlLmZpbmQoXCIuc3Bpbm5lclwiKS5yZW1vdmUoKTtcbiAgICAgICAgICAgICRub2RlLnJlbW92ZUNsYXNzKFwibG9hZGluZ1wiKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG1ha2VDb25uZWN0aW9uKHRoYXQpIHtcbiAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgIGJhc2VVcmw6IHRoYXQub3B0aW9ucy5iYXNlVXJsLFxuICAgICAgICAgICAgZW5kcG9pbnROb2RlOiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuICAgIGZ1bmN0aW9uIF9leHBhbmRMaSh0aGF0LCAkbGkpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGlmICgkbGkuaGFzQ2xhc3MoXCJmZXRjaGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIEZldGNoIG5ldyBkYXRhIGZvciB0aGlzIG5vZGVcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBtYWtlQ29ubmVjdGlvbih0aGF0KTtcbiAgICAgICAgICAgIGNvbnN0IGYgPSAhdGhhdC5vcHRpb25zLmlzVHlwZVJlZiA/IGZldGNoQ2hpbGRyZW4gOiBmZXRjaFN1YnR5cGVzO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICB5aWVsZCBfZmV0Y2hEYXRhRm9yTm9kZSh0aGF0LCAkbGksIGYsIGRhdGEpO1xuICAgICAgICAgICAgICAgIC8vIG1hcmsgYXMgZXhwYW5kZWRcbiAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyb3JcIiwgZXJyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCA9ICgpID0+IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFsgVGVtcGVyYXR1cmUgIF1cbiAgICAgICAgICogICAoIHRvb2x0aXAgOiAoL09iamVjdHMvTXlTZW5zb3IpIChucz0xO3M9VGVtcGVyYXR1cmUpKVxuICAgICAgICAgKiBbICsgW0ZvbGRlcl0gT2JqZWN0c11cbiAgICAgICAgICogWyAgICAgW09iamVjdF0gTXlTZW5zb3JdXG4gICAgICAgICAqIFsgICAgICggKSBbVmFyaWFibGVdIFRlbXBlcmF0dXJlXVxuICAgICAgICAgKi9cbiAgICAgICAgJC53aWRnZXQoXCJzdGVyZml2ZS5ub2RlQnJvd3NlclwiLCB7XG4gICAgICAgICAgICAvKiBkZWZhdWx0IG9wdGlvbnMgKi9cbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6ICgpID0+ICh7IGVuZHBvaW50OiBcIm9wYy50Y3A6Ly9vcGN1YWRlbW8uc3RlcmZpdmUuY29tOjI2NTQzXCIgfSksXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQ6ICgpID0+IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBwYXJlbnROb2RlOiAoKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICBicm93c2VOYW1lOiB7IG5hbWVzcGFjZUluZGV4OiAwLCBuYW1lOiBcIk9iamVjdHNcIiB9LFxuICAgICAgICAgICAgICAgICAgICBub2RlQ2xhc3M6IFwiT2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgIG5vZGVJZDogXCJucz0wO2k9ODVcIixcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6IHsgdGV4dDogXCJPYmplY3RzXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZURlZmluaXRpb246IEZvbGRlclR5cGUsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgZmlsdGVyOiAoKSA9PiB0cnVlLFxuICAgICAgICAgICAgICAgIGJhc2VVcmw6IFwiXCIsXG4gICAgICAgICAgICAgICAgaXNUeXBlUmVmOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZXNvbHZlUGFyZW50Tm9kZSgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGF0Ll9fcGFyZW50Tm9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYSA9IHR5cGVvZiB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLnBhcmVudE5vZGUuY2FsbCh0aGF0KSA6IHRoYXQub3B0aW9ucy5wYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGEgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGVzYyA9IHlpZWxkIGE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5fX3BhcmVudE5vZGUgPSBkZXNjO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5fX3BhcmVudE5vZGUgPSBhO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGF0Ll9fcGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZXNldCgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAgICAgLy8gYWxzbyByZXNldCBwYXJlbnQgbm9kZVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBhID0gdGhhdDtcbiAgICAgICAgICAgICAgICAgICAgYS5fX3BhcmVudE5vZGUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuZW1wdHkoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyZW50Tm9kZSA9IHlpZWxkIHRoaXMucmVzb2x2ZVBhcmVudE5vZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudChwYXJlbnROb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5hcHBlbmQoJGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LmN1cnJlbnRQYXJlbnQgPSBwYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHZlcmlmeSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IG1ha2VDb25uZWN0aW9uKHRoYXQpO1xuICAgICAgICAgICAgICAgIGludGVybmFsVmVyaWZ5KGRhdGEsIHRoYXQuJGlucHV0LCB0aGF0LiRpbmZvKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfY3JlYXRlKCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0ID0gdGhpcy5lbGVtZW50O1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvID0gJChcIjxkaXYvPlwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hZGRDbGFzcyhcInN0ZXJmaXZlLWNvbWJvLWJveFwiKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQucmVwbGFjZVdpdGgodGhhdC4kY29tYm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAgPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwiaW5wdXQtZ3JvdXBcIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGlucHV0R3JvdXApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJGlucHV0KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuID0gJChgPGJ1dHRvbj48aSBjbGFzcz1cImZhIGZhLXNpdGVtYXBcIj48L2k+PC9idXR0b24+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kdG9nZ2xlVHJlZUJ0bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0bi5vbihcImNsaWNrXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5lZWRUb1JlYWNoU2VsZWN0aW9uID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhhdC4kZHJvcGRvd24uaXMoXCI6dmlzaWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRyZWUgd2lkZ2V0IGlzIGdvaW5nIHRvIGJlY29tZSB2aXNpYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50Tm9kZSA9IHlpZWxkIHRoYXQucmVzb2x2ZVBhcmVudE5vZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyZW50Tm9kZSAhPT0gdGhhdC5jdXJyZW50UGFyZW50IHx8ICgoX2EgPSB0aGF0LmN1cnJlbnRQYXJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5ub2RlSWQpICE9PSBwYXJlbnROb2RlLm5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB0aGF0LnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5lZWRUb1JlYWNoU2VsZWN0aW9uID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbmVlZFRvUmVhY2hTZWxlY3Rpb24gJiYgKHlpZWxkIHJlYWNoU2VsZWN0aW9uKHRoYXQsIHBhcmVudE5vZGUpKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdmVyaWZ5QnRuID0gJChgPGJ1dHRvbj48aSBjbGFzcz1cImZhIGZhLWZsYXNrXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJHZlcmlmeUJ0bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdmVyaWZ5QnRuLm9uKFwiY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnZlcmlmeSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmICghdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmF0dHIoXCJwbGFjZWhvbGRlclwiLCBcImVudGVyIGEgbm9kZUlkIG9yIGEgYnJvd3NlUGF0aCBcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoYXQuJGluZm8gPSAkKGA8ZGl2IGNsYXNzPVwiaW5mby10ZXh0XCI+PC9kaXY+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mby5oaWRlKCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24gPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwic3RlcmZpdmUtZHJvcGRvd25cIikuaGlkZSgpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbmZvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kZHJvcGRvd24pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUgPSAkKGA8dWwgY2xhc3M9XCJzdGVyZml2ZS10cmVlXCI+PC91bD5gKS5hcHBlbmRUbyh0aGF0LiRkcm9wZG93bik7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzT25MZWZ0U2l6ZSA9ICgkbGksIGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZVdpZHRoID0gMjA7IC8vIFNldCB3aWR0aCBvZiB0aGUgOjpiZWZvcmUgY29udGVudFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVIZWlnaHQgPSAyMDsgLy8gU2V0IGhlaWdodCBvZiB0aGUgOjpiZWZvcmUgY29udGVudFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50UG9zID0gJGxpLm9mZnNldCgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlID0gZXZlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlLnBhZ2VYID49IGVsZW1lbnRQb3MubGVmdCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWCA8PSBlbGVtZW50UG9zLmxlZnQgKyBiZWZvcmVXaWR0aCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA+PSBlbGVtZW50UG9zLnRvcCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA8PSBlbGVtZW50UG9zLnRvcCArIGJlZm9yZUhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY29uc3QgdG9nZ2xlRXhwYW5zaW9uID0gKCRsaSkgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoJGxpLmhhc0NsYXNzKFwiZXhwYW5kYWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgX2V4cGFuZExpKHRoYXQsICRsaSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmhhc0NsYXNzKFwiZXhwYW5kZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRvZ2dsZSBpdHMgZXhwYW5kZWQvY29sbGFwc2VkIHN0YXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN3YXAgZXhwYW5kYWJsZSBhbmQgZXhwYW5kZWQgY2xhc3Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgkbGkuY2hpbGRyZW4oXCJ1bFwiKS5jaGlsZHJlbigpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUub24oXCJkYmxjbGlja1wiLCBcImxpXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0ICRsaSA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc09uTGVmdFNpemUoJGxpLCBldmVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvZ2dsZUV4cGFuc2lvbigkbGkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSAkbGkuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVmZXJlbmNlID0gJGxpLmRhdGEoXCJyZWZlcmVuY2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5vcHRpb25zLmlzU2VsZWN0YWJsZSAmJiAhdGhhdC5vcHRpb25zLmlzU2VsZWN0YWJsZShyZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuZGF0YShcInJlZmVyZW5jZVwiLCByZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGlzcGxheU5hbWUgPSAoKF9hID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGV4dCkgfHwgKChfYiA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5wdXQgPSBgWyR7ZGlzcGxheU5hbWV9XSgke3ZhbHVlfSlgO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudmFsKGlucHV0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLm9uKFwiY2xpY2tcIiwgXCJsaVwiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCAkbGkgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNPbkxlZnRTaXplKCRsaSwgZXZlbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b2dnbGVFeHBhbnNpb24oJGxpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RTaW5nbGUodGhhdCwgJGxpKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5vbihcImNsaWNrXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBjbGlja2luZyBvdXRzaWRlIHRoZSBwYWdlIHdpbGwgaGlkZSB0aGUgZHJvcGRvd25cbiAgICAgICAgICAgICAgICAgICAgaWYgKCEkKGV2ZW50LnRhcmdldCkuY2xvc2VzdCh0aGF0LiRjb21ibykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBjb25zdCBjaGVja05vZGVJZCA9ICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgbm9kZUlkKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWVuZHBvaW50MmA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L2NoZWNrTm9kZUlkYDtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGluZyBmYWlsZWQgd2l0aCBlcnJvclwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgICAgIGNvbnN0IHJlcyA9IHtcbiAgICAgICAgICAgICAgICBzdGF0dXNDb2RlOiBcIkJhZFwiLFxuICAgICAgICAgICAgICAgIG5vZGVBZGRyZXNzU3RyaW5nOiBub2RlSWQsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoZWQgOiBcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0geWllbGQgZGF0YS5qc29uKCk7XG4gICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIG1hbmFnZUFQSUNhbGwocHJlZml4LCBidG4sIGZ1bmMsIG9uUmVzdWx0KSB7XG4gICAgICAgIGNvbnN0IHN1Y2Nlc3NJY29uID0gJChgIyR7cHJlZml4fS1zdWNjZXNzYCk7XG4gICAgICAgIGNvbnN0IGZhaWx1cmVJY29uID0gJChgIyR7cHJlZml4fS1mYWlsdXJlYCk7XG4gICAgICAgIGNvbnN0IHBlbmRpbmdJY29uID0gJChgIyR7cHJlZml4fS1wZW5kaW5nYCk7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2VzID0gJChgIyR7cHJlZml4fS1tZXNzYWdlc2ApO1xuICAgICAgICBsZXQgYWN0aW9uUGVuZGluZyA9IGZhbHNlO1xuICAgICAgICBzdWNjZXNzSWNvbi5oaWRlKCk7XG4gICAgICAgIGZhaWx1cmVJY29uLmhpZGUoKTtcbiAgICAgICAgcGVuZGluZ0ljb24uaGlkZSgpO1xuICAgICAgICBidG4ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoYWN0aW9uUGVuZGluZylcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBhY3Rpb25QZW5kaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIHBlbmRpbmdJY29uLnJlbW92ZUNsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgIHBlbmRpbmdJY29uLmh0bWwoXCJUZXN0aW5nIENvbm5lY3Rpb24gLi4uXCIpO1xuICAgICAgICAgICAgc3VjY2Vzc0ljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgZmFpbHVyZUljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgbWVzc2FnZXMuaHRtbChcIlwiKTtcbiAgICAgICAgICAgIGNvbnN0IHsgYm9keSwgdXJsIH0gPSBmdW5jKCk7XG4gICAgICAgICAgICAvLyB4eCBjb25zb2xlLmxvZyhcInh4eHh4XCIsIGJvZHkpO1xuICAgICAgICAgICAgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoYm9keSksXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC50aGVuKChkYXRhKSA9PiBkYXRhLmpzb24oKSlcbiAgICAgICAgICAgICAgICAudGhlbigoanNvbikgPT4ge1xuICAgICAgICAgICAgICAgIGFjdGlvblBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBwZW5kaW5nSWNvbi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoanNvbiwgbnVsbCwgXCIgXCIpKTtcbiAgICAgICAgICAgICAgICBpZiAoanNvbi5yZXN1bHQgPT09IFwib2tcIikge1xuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzSWNvbi5yZW1vdmVDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgICAgIGZhaWx1cmVJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZXMuaHRtbChqc29uLm1lc3NhZ2UucmVwbGFjZShcIlxcblwiLCBcIjxicj5cIikpO1xuICAgICAgICAgICAgICAgICAgICBvblJlc3VsdChudWxsLCBqc29uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFkYXB0ID0gKHN0cikgPT4gIXN0clxuICAgICAgICAgICAgICAgICAgICAgICAgPyBcIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHN0clxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zcGxpdChcIlxcblwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoKGEpID0+IGA8cD4ke2F9PC9wPmApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmpvaW4oXCJcXG5cIik7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFkYXB0MiA9IChzdHIpID0+IChBcnJheS5pc0FycmF5KHN0cikgPyBzdHIubWFwKGFkYXB0KS5qb2luKFwiXFxuXCIpIDogYWRhcHQoc3RyKSk7XG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3NJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgZmFpbHVyZUljb24ucmVtb3ZlQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlcy5odG1sKGFkYXB0Mihqc29uLm1lc3NhZ2UpICsgYWRhcHQyKGpzb24uZXh0cmEpKTtcbiAgICAgICAgICAgICAgICAgICAgb25SZXN1bHQobmV3IEVycm9yKGpzb24ucmVzdWx0KSwganNvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICAgIGFjdGlvblBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBwZW5kaW5nSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgc3VjY2Vzc0ljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgIGZhaWx1cmVJY29uLnJlbW92ZUNsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICBtZXNzYWdlcy5odG1sKFwiaW50ZXJuYWwgZXJyb3IgXCIgKyBlcnIubWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJcIiwgZXJyKTtcbiAgICAgICAgICAgICAgICBvblJlc3VsdChlcnIsIG51bGwpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IGdldEVuZFBvaW50QXR0cmlidXRlcyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCBlbmRwb2ludElkID0gJGVuZHBvaW50LnZhbCgpO1xuICAgICAgICBjb25zdCByZWROb2RlID0gUkVELm5vZGVzLm5vZGUoZW5kcG9pbnRJZCk7XG4gICAgICAgIGlmICghcmVkTm9kZSlcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIC8vIGNvbnN0IGNyZWRlbnRpYWxzID0gUkVELihlbmRwb2ludElkKTtcbiAgICAgICAgLy8gd2UgbmVlZCB0byBzYW5pdGl6ZSBhbmQgZXh0cmFjdCB0aGUgZW5kcG9pbnQgYXR0cmlidXRlcyBvbmx5ICggbm90IHRoZSBub2RlLXJlZCBzdHVmZilcbiAgICAgICAgY29uc3QgeyBlbmRwb2ludCwgc2VjdXJpdHlNb2RlLCBzZWN1cml0eVBvbGljeSwgdXNlcklkZW50aXR5VHlwZSwgY3JlZGVudGlhbHMgfSA9IHJlZE5vZGU7XG4gICAgICAgIGNvbnN0IHJldFZhbHVlID0ge1xuICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICBzZWN1cml0eU1vZGUsXG4gICAgICAgICAgICBzZWN1cml0eVBvbGljeSxcbiAgICAgICAgICAgIHVzZXJJZGVudGl0eVR5cGUsXG4gICAgICAgICAgICBjcmVkZW50aWFscyxcbiAgICAgICAgfTtcbiAgICAgICAgLy8geHggY29uc29sZS5sb2coXCJ4eHhcIiwgcmV0VmFsdWUpO1xuICAgICAgICByZXR1cm4gcmV0VmFsdWU7XG4gICAgfTtcbiAgICBjb25zdCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZW5kcG9pbnROb2RlOiBnZXRFbmRwb2ludFBhcmFtZXRlcnMsXG4gICAgICAgIH07XG4gICAgfTtcbiAgICBjb25zdCBnZXRFbmRwb2ludFBhcmFtZXRlcnMgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0ICRlbmRwb2ludCA9ICQoXCIjbm9kZS1pbnB1dC1lbmRwb2ludFwiKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnRJZCA9ICRlbmRwb2ludC52YWwoKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnROciA9IGdldEVuZFBvaW50QXR0cmlidXRlcygpO1xuICAgICAgICBpZiAoIWVuZHBvaW50TnIpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGlkOiBlbmRwb2ludElkLFxuICAgICAgICAgICAgLy8gZW5kcG9pbnQ6IGVuZHBvaW50TnIuZW5kcG9pbnQsXG4gICAgICAgICAgICAvLyBzZWN1cml0eU1vZGU6IGVuZHBvaW50TnIuc2VjdXJpdHlNb2RlLFxuICAgICAgICAgICAgLy8gc2VjdXJpdHlQb2xpY3k6IGVuZHBvaW50TnIuc2VjdXJpdHlQb2xpY3ksXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgLy8gdXNlcklkZW50aXR5VHlwZTogZW5kcG9pbnROci51c2VySWRlbnRpdHlUeXBlLFxuICAgICAgICAgICAgLy8gY3JlZGVudGlhbDogZW5kcG9pbnROci5jcmVkZW50aWFscyxcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAvLyB1c2VyTmFtZTogZW5kcG9pbnROci51c2VySWRlbnRpdHlUeXBlID09PSBcIlVzZXJOYW1lXCIgPyBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLnVzZXJOYW1lIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgLy8gcGFzc3dvcmQ6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSA9PT0gXCJVc2VyTmFtZVwiID8gZW5kcG9pbnROci5jcmVkZW50aWFscy5wYXNzd29yZCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIC8vIHVzZXJDZXJ0aWZpY2F0ZTogZW5kcG9pbnROci5jcmVkZW50aWFscy51c2VyQ2VydGlmaWNhdGUsXG4gICAgICAgICAgICAvLyB1c2VyUHJpdmF0ZWtleTogZW5kcG9pbnROci5jcmVkZW50aWFscy51c2VyUHJpdmF0ZWtleSxcbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgUkVELm5vZGVzLnJlZ2lzdGVyVHlwZShcIk9wY1VhLUNsaWVudDItQ2FsbFwiLCB7XG4gICAgICAgIGNhdGVnb3J5OiBcIm9wY3VhXCIsXG4gICAgICAgIGNvbG9yOiBcIiNDMERFRURcIixcbiAgICAgICAgYWxpZ246IFwicmlnaHRcIixcbiAgICAgICAgaWNvbjogXCIuLi8uLi9pY29ucy9vcGN1YW5vZGVMb2dvLnBuZ1wiLFxuICAgICAgICBwYWxldHRlTGFiZWw6IFwiY2FsbFwiLFxuICAgICAgICBkZWZhdWx0czoge1xuICAgICAgICAgICAgaW5wdXRzOiB7IHZhbHVlOiAxIH0sXG4gICAgICAgICAgICBvdXRwdXQ6IHsgdmFsdWU6IDQgfSxcbiAgICAgICAgICAgIC8vIENvbW1vblxuICAgICAgICAgICAgbmFtZTogeyB2YWx1ZTogXCJcIiB9LFxuICAgICAgICAgICAgZW5kcG9pbnQ6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiB0cnVlLCB0eXBlOiBcIk9wY1VhLUVuZHBvaW50MlwiIH0sXG4gICAgICAgICAgICBhY3Rpb246IHsgdmFsdWU6IFwicmVhZFwiLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgLy8gZm9yIGFjdGlvbiBjYWxsXG4gICAgICAgICAgICBtZXRob2RJZDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIG9iamVjdElkOiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICB9LFxuICAgICAgICAvLyBpbnB1dHM6LFxuICAgICAgICBvdXRwdXRzOiAyLCAvLyAyIG91dHB1dCwgc2Vjb25kIGZvciByYXcgbm9kZS1vcGN1YSBkaWFnbm9zdGljcyBvciBtb3JlIGNvbXBsZXRlIG1lc3NhZ2VcbiAgICAgICAgbGFiZWwoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uYW1lIHx8IFwiT1BDVUEtQ2FsbFwiO1xuICAgICAgICB9LFxuICAgICAgICBsYWJlbFN0eWxlKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSA/IFwibm9kZV9sYWJlbF9pdGFsaWNcIiA6IFwiXCI7XG4gICAgICAgIH0sXG4gICAgICAgIG9uZWRpdHByZXBhcmUoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gdGhpcztcbiAgICAgICAgICAgIGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCgpO1xuICAgICAgICAgICAgbm9kZS5pbnB1dHMgPSAxO1xuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIC8vIGhhbmRsZSBTZWN0aW9uIENhbGxcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICBsZXQgZGF0YVR5cGVzID0ge307XG4gICAgICAgICAgICAvLyB0byBkbyBhZGQgYSB0eXBlc2NyaXB0IGRlZmluaXRpb24gZm9yIHRoaXNcbiAgICAgICAgICAgIGNvbnN0ICRvYmplY3RJZCA9ICQoXCIjbm9kZS1pbnB1dC1vYmplY3RJZFwiKTtcbiAgICAgICAgICAgIGNvbnN0ICRtZXRob2RJZCA9ICQoXCIjbm9kZS1pbnB1dC1tZXRob2RJZFwiKTtcbiAgICAgICAgICAgIGNvbnN0ICRpbnB1dEFyZ3VtZW50RGVmaW5pdGlvbiA9ICQoXCIjbWV0aG9kLWlucHV0LWFyZ3VtZW50LWRlZmluaXRpb25cIik7XG4gICAgICAgICAgICBjb25zdCAkb3V0cHV0QXJndW1lbnREZWZpbml0aW9uID0gJChcIiNtZXRob2Qtb3V0cHV0LWFyZ3VtZW50LWRlZmluaXRpb25cIik7XG4gICAgICAgICAgICBjb25zdCAkdmFsaWRhdGVCdG4gPSAkKFwiI3ZhbGlkYXRlLWNhbGwtYXJndW1lbnRzLWJ1dHRvblwiKTtcbiAgICAgICAgICAgICRvYmplY3RJZC5ub2RlQnJvd3NlcihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIoKSksIHsgZmlsdGVyKG5vZGVEZXNjKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiT2JqZWN0XCI7XG4gICAgICAgICAgICAgICAgfSB9KSk7XG4gICAgICAgICAgICAkbWV0aG9kSWQubm9kZUJyb3dzZXIoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyKCkpLCB7IHBhcmVudE5vZGU6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBtYWtlQ29ubmVjdGlvbih0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5lZWQgdG8gcmVzeW5jIHdpdGggd2hhdCdzIGluICAjbm9kZS1pbnB1dC1vYmplY3RJZFxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHJlZmVyZW5jZSA9ICRvYmplY3RJZC5kYXRhKFwicmVmZXJlbmNlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFyZWZlcmVuY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBub2RlSWRFeCA9ICRvYmplY3RJZC52YWwoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlbmRwb2ludE5vZGUgPSBnZXRFbmRQb2ludEF0dHJpYnV0ZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWVuZHBvaW50Tm9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgciA9IHlpZWxkIGNoZWNrTm9kZUlkKGRhdGEsIG5vZGVJZEV4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmZXJlbmNlID0gci5yZWZlcmVuY2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVmZXJlbmNlO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9LCBmaWx0ZXIobm9kZURlc2MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJNZXRob2RcIiB8fCBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiT2JqZWN0XCI7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBpc1NlbGVjdGFibGUobm9kZURlc2MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJNZXRob2RcIjtcbiAgICAgICAgICAgICAgICB9IH0pKTtcbiAgICAgICAgICAgICRvYmplY3RJZC5vbihcImNoYW5nZVwiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgJG1ldGhvZElkLm5vZGVCcm93c2VyKFwicmVzZXRcIik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGZ1bmN0aW9uIGFkZEFyZ3VtZW50Q3RybChjb250YWluZXIsIGluZGV4LCBhcmcpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpdGVtID0gJCgnPGRpdiBjbGFzcz1cImFyZ3VtZW50LWVudHJ5XCI+JykuYXBwZW5kVG8oY29udGFpbmVyKTtcbiAgICAgICAgICAgICAgICAvLyBjb250YWluZXIuZGF0YShcImRhdGFcIiwgYXJnKTtcbiAgICAgICAgICAgICAgICAkKCc8aW5wdXQgdHlwZT1cInRleHRcIj4nKVxuICAgICAgICAgICAgICAgICAgICAudmFsKGFyZy5uYW1lIHx8IFwiXCIpXG4gICAgICAgICAgICAgICAgICAgIC5jc3MoeyB3aWR0aDogXCIxMDAlXCIgfSlcbiAgICAgICAgICAgICAgICAgICAgLmFwcGVuZFRvKGl0ZW0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IGQgPSBkYXRhVHlwZXNbYXJnLmRhdGFUeXBlLnRvU3RyaW5nKCldO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGFUeXBlTiA9IChkID8gZC5icm93c2VOYW1lLm5hbWUgfHwgXCJcIiA6IGFyZy5kYXRhVHlwZS50b1N0cmluZygpKSArIChhcmcudmFsdWVSYW5rID09PSAxID8gXCJbXVwiIDogXCJcIik7XG4gICAgICAgICAgICAgICAgJCgnPGlucHV0IHR5cGU9XCJ0ZXh0XCI+JylcbiAgICAgICAgICAgICAgICAgICAgLnZhbChhcmcuZGVzY3JpcHRpb24udGV4dCB8fCBcIlwiKVxuICAgICAgICAgICAgICAgICAgICAuY3NzKHsgd2lkdGg6IFwiNTAlXCIgfSlcbiAgICAgICAgICAgICAgICAgICAgLmFwcGVuZFRvKGl0ZW0pO1xuICAgICAgICAgICAgICAgICQoJzxpbnB1dCB0eXBlPVwidGV4dFwiPicpXG4gICAgICAgICAgICAgICAgICAgIC52YWwoZGF0YVR5cGVOIHx8IFwiXCIpXG4gICAgICAgICAgICAgICAgICAgIC5jc3MoeyB3aWR0aDogXCI1MCVcIiB9KVxuICAgICAgICAgICAgICAgICAgICAuYXBwZW5kVG8oaXRlbSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkaW5wdXRBcmd1bWVudERlZmluaXRpb24uZWRpdGFibGVMaXN0KHtcbiAgICAgICAgICAgICAgICBhZGRCdXR0b246IGZhbHNlLFxuICAgICAgICAgICAgICAgIGhlaWdodDogXCJhdXRvXCIsXG4gICAgICAgICAgICAgICAgc2Nyb2xsT25BZGQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGFkZEl0ZW0oY29udGFpbmVyLCBpLCBvYmplY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgYWRkQXJndW1lbnRDdHJsKGNvbnRhaW5lciwgaSwgb2JqZWN0KTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAkb3V0cHV0QXJndW1lbnREZWZpbml0aW9uLmVkaXRhYmxlTGlzdCh7XG4gICAgICAgICAgICAgICAgYWRkQnV0dG9uOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IFwiYXV0b1wiLFxuICAgICAgICAgICAgICAgIHNjcm9sbE9uQWRkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBhZGRJdGVtKGNvbnRhaW5lciwgaSwgb2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgIGFkZEFyZ3VtZW50Q3RybChjb250YWluZXIsIGksIG9iamVjdCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZnVuY3Rpb24gaW5zdGFsbEFyZ3VtZW50TGlzdChsaXN0LCBtZXRob2RBcmd1bWVudHMpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImluc3RhbGxBcmd1bWVudExpc3RcIiwgbWV0aG9kQXJndW1lbnRzLmxlbmd0aCwgXCJhcmd1bWVudHNcIiwgbWV0aG9kQXJndW1lbnRzKTtcbiAgICAgICAgICAgICAgICBsaXN0LmVkaXRhYmxlTGlzdChcImVtcHR5XCIpO1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWV0aG9kQXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGxpc3QuZWRpdGFibGVMaXN0KFwiYWRkSXRlbVwiLCBtZXRob2RBcmd1bWVudHNbaV0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICRpbnB1dEFyZ3VtZW50RGVmaW5pdGlvbi5oaWRlKCk7XG4gICAgICAgICAgICAkb3V0cHV0QXJndW1lbnREZWZpbml0aW9uLmhpZGUoKTtcbiAgICAgICAgICAgIGxldCBpbnB1dEFzSnNvbiA9IHt9O1xuICAgICAgICAgICAgY29uc3QgJGNvcHlJbnB1dCA9ICQoXCIjY29weS1pbnB1dFwiKTtcbiAgICAgICAgICAgICRjb3B5SW5wdXQuaGlkZSgpO1xuICAgICAgICAgICAgJGNvcHlJbnB1dC5vbihcImNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBDb3B5IHRoZSB0ZXh0IGluc2lkZSB0aGUgdGV4dCBmaWVsZFxuICAgICAgICAgICAgICAgIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KEpTT04uc3RyaW5naWZ5KGlucHV0QXNKc29uKSk7XG4gICAgICAgICAgICAgICAgLy8gYWxlcnQoSlNPTi5zdHJpbmdpZnkoaW5wdXRBc0pzb24pICsgXCIgY29waWVkIHRvIGNsaXBib2FyZFwiKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgbWFuYWdlQVBJQ2FsbChcInZhbGlkYXRlXCIsICR2YWxpZGF0ZUJ0biwgKCkgPT4gKHtcbiAgICAgICAgICAgICAgICB1cmw6IFwiL29wY3VhLWVuZHBvaW50Mi9hcmd1bWVudERlZmluaXRpb25cIixcbiAgICAgICAgICAgICAgICBib2R5OiB7XG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzKCksXG4gICAgICAgICAgICAgICAgICAgIG9iamVjdElkOiAkb2JqZWN0SWQudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIG1ldGhvZElkOiAkbWV0aG9kSWQudmFsKCksXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pLCAoZXJyLCBkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIHBvcHVsYXRlIHRoZSBsaXN0XG4gICAgICAgICAgICAgICAgY29uc3QgYXJndW1lbnREZWZpbml0aW9uID0gZGF0YS5hcmd1bWVudERlZmluaXRpb247XG4gICAgICAgICAgICAgICAgZGF0YVR5cGVzID0gZGF0YS5kYXRhVHlwZXM7XG4gICAgICAgICAgICAgICAgJGlucHV0QXJndW1lbnREZWZpbml0aW9uLnNob3coKTtcbiAgICAgICAgICAgICAgICAkb3V0cHV0QXJndW1lbnREZWZpbml0aW9uLnNob3coKTtcbiAgICAgICAgICAgICAgICBpbnN0YWxsQXJndW1lbnRMaXN0KCRpbnB1dEFyZ3VtZW50RGVmaW5pdGlvbiwgYXJndW1lbnREZWZpbml0aW9uLmlucHV0QXJndW1lbnRzKTtcbiAgICAgICAgICAgICAgICBpbnN0YWxsQXJndW1lbnRMaXN0KCRvdXRwdXRBcmd1bWVudERlZmluaXRpb24sIGFyZ3VtZW50RGVmaW5pdGlvbi5vdXRwdXRBcmd1bWVudHMpO1xuICAgICAgICAgICAgICAgIGlucHV0QXNKc29uID0gZGF0YS5pbnB1dEFyZ3VtZW50c0V4YW1wbGVBc0pzb24gfHwge307XG4gICAgICAgICAgICAgICAgJGNvcHlJbnB1dC5zaG93KCk7XG4gICAgICAgICAgICAgICAgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoSlNPTi5zdHJpbmdpZnkoaW5wdXRBc0pzb24pKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIkpTT05cIiwgSlNPTi5zdHJpbmdpZnkoaW5wdXRBc0pzb24pKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImRhdGFcIiwgZGF0YSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0c2F2ZSgpIHsgfSxcbiAgICB9KTtcblxufSkoKTsiXX0=
|
7
|
+
function _0x25c9(_0x50b0ef,_0x18ad44){const _0x288557=_0x2885();return _0x25c9=function(_0x25c91b,_0x19679c){_0x25c91b=_0x25c91b-0x1c7;let _0xfe77c7=_0x288557[_0x25c91b];return _0xfe77c7;},_0x25c9(_0x50b0ef,_0x18ad44);}(function(_0x3bf2e8,_0x318629){const _0x443be2=_0x25c9,_0x2af73b=_0x3bf2e8();while(!![]){try{const _0x471dcb=-parseInt(_0x443be2(0x25e))/0x1+-parseInt(_0x443be2(0x23b))/0x2*(-parseInt(_0x443be2(0x239))/0x3)+-parseInt(_0x443be2(0x267))/0x4+-parseInt(_0x443be2(0x257))/0x5+-parseInt(_0x443be2(0x27a))/0x6*(parseInt(_0x443be2(0x29e))/0x7)+-parseInt(_0x443be2(0x21d))/0x8*(-parseInt(_0x443be2(0x1e2))/0x9)+parseInt(_0x443be2(0x244))/0xa*(parseInt(_0x443be2(0x1e5))/0xb);if(_0x471dcb===_0x318629)break;else _0x2af73b['push'](_0x2af73b['shift']());}catch(_0x1f723e){_0x2af73b['push'](_0x2af73b['shift']());}}}(_0x2885,0xef79c),(function(){'use strict';const _0x54d186=_0x25c9;function _0x28f194(_0x18ef3e,_0x225be0,_0x20a098,_0x53f9cb){function _0x43f4f3(_0x3b7a32){return _0x3b7a32 instanceof _0x20a098?_0x3b7a32:new _0x20a098(function(_0x12ac70){_0x12ac70(_0x3b7a32);});}return new(_0x20a098||(_0x20a098=Promise))(function(_0x70c81f,_0x367ddd){const _0x32a7a7=_0x25c9;function _0x7af348(_0x5e8504){try{_0x189ba1(_0x53f9cb['next'](_0x5e8504));}catch(_0x16bc0f){_0x367ddd(_0x16bc0f);}}function _0x53b893(_0x1851ab){try{_0x189ba1(_0x53f9cb['throw'](_0x1851ab));}catch(_0x59b8c6){_0x367ddd(_0x59b8c6);}}function _0x189ba1(_0x5369a8){const _0x486684=_0x25c9;_0x5369a8[_0x486684(0x28e)]?_0x70c81f(_0x5369a8['value']):_0x43f4f3(_0x5369a8[_0x486684(0x1ea)])[_0x486684(0x1d6)](_0x7af348,_0x53b893);}_0x189ba1((_0x53f9cb=_0x53f9cb['apply'](_0x18ef3e,_0x225be0||[]))[_0x32a7a7(0x20e)]());});}typeof SuppressedError===_0x54d186(0x204)?SuppressedError:function(_0x48326b,_0x285ce8,_0x50e5b1){const _0x2febd2=_0x54d186;var _0x49bc46=new Error(_0x50e5b1);return _0x49bc46[_0x2febd2(0x290)]='SuppressedError',_0x49bc46[_0x2febd2(0x282)]=_0x48326b,_0x49bc46[_0x2febd2(0x283)]=_0x285ce8,_0x49bc46;};const _0x4b3058=_0x54d186(0x22d),_0x2b6230=_0x54d186(0x2a8),_0x231508='ns=0;i=47',_0x10e788=_0x54d186(0x275),_0x46fbbd=_0x54d186(0x1ca),_0x569c91=_0x54d186(0x247),_0xcb43b1='ns=0;i=40';var _0x3c9633;(function(_0x4e6349){const _0x23ad87=_0x54d186;_0x4e6349[_0x4e6349[_0x23ad87(0x1d9)]=0x0]=_0x23ad87(0x1d9),_0x4e6349[_0x4e6349[_0x23ad87(0x1d8)]=0x1]=_0x23ad87(0x1d8),_0x4e6349[_0x4e6349[_0x23ad87(0x232)]=0x2]=_0x23ad87(0x232),_0x4e6349[_0x4e6349[_0x23ad87(0x278)]=0x3]=_0x23ad87(0x278);}(_0x3c9633||(_0x3c9633={})));var _0x5c5bfc;(function(_0x294f19){const _0x1e780e=_0x54d186;_0x294f19[_0x294f19['Unspecified']=0x0]='Unspecified',_0x294f19[_0x294f19[_0x1e780e(0x1fc)]=0x1]=_0x1e780e(0x1fc),_0x294f19[_0x294f19['Variable']=0x2]=_0x1e780e(0x1ec),_0x294f19[_0x294f19[_0x1e780e(0x1eb)]=0x4]=_0x1e780e(0x1eb),_0x294f19[_0x294f19[_0x1e780e(0x1e4)]=0x8]='ObjectType',_0x294f19[_0x294f19[_0x1e780e(0x1f9)]=0x10]=_0x1e780e(0x1f9),_0x294f19[_0x294f19[_0x1e780e(0x242)]=0x20]=_0x1e780e(0x242),_0x294f19[_0x294f19[_0x1e780e(0x230)]=0x40]=_0x1e780e(0x230),_0x294f19[_0x294f19[_0x1e780e(0x26e)]=0x80]='View';}(_0x5c5bfc||(_0x5c5bfc={})));var _0x832ec8;(function(_0x50bd5d){const _0x4f482f=_0x54d186;_0x50bd5d[_0x50bd5d[_0x4f482f(0x1fc)]=0x1]=_0x4f482f(0x1fc),_0x50bd5d[_0x50bd5d[_0x4f482f(0x1ec)]=0x2]='Variable',_0x50bd5d[_0x50bd5d[_0x4f482f(0x1eb)]=0x4]='Method',_0x50bd5d[_0x50bd5d['ObjectType']=0x8]=_0x4f482f(0x1e4),_0x50bd5d[_0x50bd5d[_0x4f482f(0x1f9)]=0x10]=_0x4f482f(0x1f9),_0x50bd5d[_0x50bd5d['ReferenceType']=0x20]=_0x4f482f(0x242),_0x50bd5d[_0x50bd5d[_0x4f482f(0x230)]=0x40]=_0x4f482f(0x230),_0x50bd5d[_0x50bd5d[_0x4f482f(0x26e)]=0x80]=_0x4f482f(0x26e);}(_0x832ec8||(_0x832ec8={})));var _0x3b152a;(function(_0x5e16a1){const _0x521510=_0x54d186;_0x5e16a1[_0x5e16a1['ReferenceType']=0x1]=_0x521510(0x242),_0x5e16a1[_0x5e16a1['IsForward']=0x2]=_0x521510(0x21e),_0x5e16a1[_0x5e16a1[_0x521510(0x1f1)]=0x4]=_0x521510(0x1f1),_0x5e16a1[_0x5e16a1['BrowseName']=0x8]=_0x521510(0x1d4),_0x5e16a1[_0x5e16a1[_0x521510(0x2a3)]=0x10]=_0x521510(0x2a3),_0x5e16a1[_0x5e16a1[_0x521510(0x1ce)]=0x20]='TypeDefinition';}(_0x3b152a||(_0x3b152a={})));function _0x2d762b(_0x4d7d01){const _0x2ac751=_0x54d186;switch(_0x4d7d01){case _0x2ac751(0x23d):return _0x4b3058;case _0x2ac751(0x27e):return _0x10e788;case _0x2ac751(0x250):return _0x231508;case'HasChild':return _0x46fbbd;case _0x2ac751(0x22b):return _0x569c91;case'HasTypeDefinition':return _0xcb43b1;}}const _0x1a1059=_0x417345=>{const _0x743b6=_0x54d186;switch(_0x417345[_0x743b6(0x251)]){case _0x743b6(0x1fc):if(_0x417345['referenceTypeId']===_0x4b3058);if(_0x417345['typeDefinition']===_0x2b6230||_0x417345[_0x743b6(0x1ed)]===_0x743b6(0x1d3))return{'icon':'fa-folder','color':_0x743b6(0x217)};return{'icon':_0x743b6(0x2ac),'color':_0x743b6(0x27b)};case _0x743b6(0x1ec):if(_0x417345['referenceTypeId']===_0x231508)return{'icon':_0x743b6(0x293),'color':_0x743b6(0x260)};else return _0x417345[_0x743b6(0x1ed)]===_0x10e788?{'icon':_0x743b6(0x293),'color':'DodgerBlue'}:{'icon':_0x743b6(0x293),'color':_0x743b6(0x225)};case'Method':return{'icon':_0x743b6(0x20b),'color':_0x743b6(0x214)};case _0x743b6(0x1e4):return{'icon':_0x743b6(0x2ac),'color':_0x743b6(0x2a6)};case _0x743b6(0x1f9):return{'icon':'fa-sliders','color':_0x743b6(0x2a6)};case _0x743b6(0x230):return{'icon':_0x743b6(0x1fb),'color':_0x743b6(0x225)};}return{'icon':_0x743b6(0x29d),'color':'grey'};},_0x42d48d=({endpointNode:_0x3d04d1,endpoint:_0x56d9d6,baseUrl:_0x1e7bf5},_0xfe8c94,_0x41799f)=>_0x28f194(void 0x0,void 0x0,void 0x0,function*(){const _0x43252e=_0x54d186,_0x4a9ebb=_0x1e7bf5+_0x43252e(0x277),_0x54c892=_0x4a9ebb+_0x43252e(0x1d1),_0x1b8c18=Object[_0x43252e(0x1f2)](Object['assign']({},_0x41799f),{'nodeId':_0xfe8c94,'resultMask':0x3f}),_0x396fa8=yield fetch(_0x54c892,{'method':_0x43252e(0x28f),'body':JSON[_0x43252e(0x25f)]({'endpointNode':_0x3d04d1,'endpoint':_0x56d9d6,'browseDescription':_0x1b8c18}),'headers':{'Content-Type':_0x43252e(0x23f)}});if(_0x396fa8[_0x43252e(0x229)]!==0xc8)return console['log'](_0x43252e(0x24f),_0x396fa8[_0x43252e(0x229)],_0x396fa8[_0x43252e(0x209)]),{'references':[]};const _0xb5c31c=yield _0x396fa8['json'](),_0x45465a=_0xb5c31c[_0x43252e(0x240)][_0x43252e(0x1dd)]||[];return{'references':_0x45465a};}),_0x4e5e59={'referenceTypeId':_0x2d762b(_0x54d186(0x24d)),'includeSubtypes':!![],'browseDirection':_0x3c9633[_0x54d186(0x1d9)],'nodeClassMask':_0x5c5bfc[_0x54d186(0x1ec)]|_0x5c5bfc['Object']|_0x5c5bfc[_0x54d186(0x1eb)],'resultMask':0x3f},_0x1e1231={'referenceTypeId':_0x2d762b(_0x54d186(0x23d)),'includeSubtypes':!![],'browseDirection':_0x3c9633[_0x54d186(0x1d9)],'nodeClassMask':_0x5c5bfc[_0x54d186(0x1ec)]|_0x5c5bfc[_0x54d186(0x1fc)]|_0x5c5bfc[_0x54d186(0x1eb)],'resultMask':0x3f},_0x206bce=({endpointNode:_0x50f519,endpoint:_0x1be759,baseUrl:_0x4c0fc5},{nodeId:_0x449f9d,rootNodeId:_0xf39edb,isType:_0x41b376})=>_0x28f194(void 0x0,void 0x0,void 0x0,function*(){const _0x4562e0=_0x54d186,_0x2a9428=_0x4c0fc5+_0x4562e0(0x277),_0x38e324=_0x2a9428+_0x4562e0(0x23c),_0x37bad0=yield fetch(_0x38e324,{'method':_0x4562e0(0x28f),'body':JSON[_0x4562e0(0x25f)]({'endpointNode':_0x50f519,'endpoint':_0x1be759,'nodeId':_0x449f9d,'rootNodeId':_0xf39edb,'isType':_0x41b376}),'headers':{'Content-Type':_0x4562e0(0x23f)}});if(_0x37bad0[_0x4562e0(0x229)]!==0xc8)return null;const _0x2a3362=yield _0x37bad0[_0x4562e0(0x236)]();return _0x2a3362[_0x4562e0(0x22e)];}),_0x5b9885=({endpointNode:_0x40dca0,endpoint:_0x1f42b8,baseUrl:_0x33102d},_0x4ada90,_0x57c3c6)=>_0x28f194(void 0x0,void 0x0,void 0x0,function*(){const _0x120625=_0x54d186,_0x2361bc=_0x33102d+'/opcua-endpoint2',_0x334ffd=_0x2361bc+_0x120625(0x205),_0x1780d0=_0x4ada90[_0x120625(0x2a5)](),_0x5b1c12=yield fetch(_0x334ffd,{'method':_0x120625(0x28f),'body':JSON[_0x120625(0x25f)]({'endpointNode':_0x40dca0,'endpoint':_0x1f42b8,'nodeId':_0x1780d0}),'headers':{'Content-Type':'application/json'}}),_0x13960d=(_0x5b9b45,_0x2c4366)=>{const _0x2dc712=_0x120625;_0x57c3c6[_0x2dc712(0x270)](_0x5b9b45)[_0x2dc712(0x203)](_0x2dc712(0x238))[_0x2dc712(0x203)](_0x2c4366),_0x57c3c6[_0x2dc712(0x228)](),setTimeout(()=>{const _0x48aff2=_0x2dc712;_0x57c3c6[_0x48aff2(0x1de)](_0x2c4366),_0x57c3c6[_0x48aff2(0x1cd)]();},0xbb8);},_0x163177=yield _0x5b1c12[_0x120625(0x236)]();_0x5b1c12[_0x120625(0x229)]!==0xc8?_0x13960d(_0x120625(0x215)+_0x1780d0,_0x120625(0x243)):_0x163177[_0x120625(0x1dc)]['match'](/Good/)?(_0x4ada90[_0x120625(0x2a5)](_0x163177[_0x120625(0x1e9)]),_0x4ada90['trigger'](_0x120625(0x294)),_0x13960d(_0x120625(0x284),'ok')):(_0x4ada90[_0x120625(0x2a5)](''+_0x1780d0),_0x13960d(_0x163177[_0x120625(0x1dc)]+'\x20'+_0x5b1c12['statusText'],_0x120625(0x243)));});function _0x7523c0(_0x564a53,_0x1a92d1){return _0x28f194(this,void 0x0,void 0x0,function*(){const _0x4368e2=_0x25c9,_0xb43d40=_0x564a53[_0x4368e2(0x1c7)]('value'),_0x2ce0d6=yield _0x42d48d(_0x1a92d1,_0xb43d40,_0x4e5e59),_0x132f6e=yield _0x42d48d(_0x1a92d1,_0xb43d40,_0x1e1231);return{'references':[..._0x2ce0d6[_0x4368e2(0x1dd)],..._0x132f6e[_0x4368e2(0x1dd)]]};});}const _0x1f9d9b={'referenceTypeId':_0x2d762b(_0x54d186(0x22b)),'includeSubtypes':!![],'browseDirection':_0x3c9633['Forward'],'nodeClassMask':_0x5c5bfc[_0x54d186(0x242)]|_0x5c5bfc[_0x54d186(0x1e4)]|_0x5c5bfc[_0x54d186(0x230)]|_0x5c5bfc[_0x54d186(0x1f9)],'resultMask':0x3f};function _0x51d67c(_0x9eb5ee,_0x1838bc){return _0x28f194(this,void 0x0,void 0x0,function*(){const _0x3714a5=_0x25c9,_0x23c103=_0x9eb5ee[_0x3714a5(0x1c7)](_0x3714a5(0x1ea)),_0x5c88ea=yield _0x42d48d(_0x1838bc,_0x23c103,_0x1f9d9b);return _0x5c88ea;});}const _0x276ae6=_0x3ce09e=>{const _0x353bb8=_0x54d186;var _0x3f7bff,_0x440bdb,_0x37f56f,_0x2dfabb;if(!_0x3ce09e||!_0x3ce09e[_0x353bb8(0x296)]){const _0x25035b=$(_0x353bb8(0x286));return _0x25035b;}const _0x67b0b4=_0x3ce09e[_0x353bb8(0x296)][_0x353bb8(0x202)](),_0x4201e0=((_0x3f7bff=_0x3ce09e[_0x353bb8(0x261)])===null||_0x3f7bff===void 0x0?void 0x0:_0x3f7bff['text'])||((_0x440bdb=_0x3ce09e[_0x353bb8(0x1e6)])===null||_0x440bdb===void 0x0?void 0x0:_0x440bdb['name'])||_0x3ce09e[_0x353bb8(0x296)][_0x353bb8(0x202)](),{icon:_0x3cc953,color:_0x1e5e8e}=_0x1a1059(_0x3ce09e),_0x34e1cc='('+_0x3ce09e[_0x353bb8(0x296)][_0x353bb8(0x202)]()+')\x20'+(((_0x37f56f=_0x3ce09e[_0x353bb8(0x1e6)])===null||_0x37f56f===void 0x0?void 0x0:_0x37f56f[_0x353bb8(0x290)])||((_0x2dfabb=_0x3ce09e[_0x353bb8(0x261)])===null||_0x2dfabb===void 0x0?void 0x0:_0x2dfabb[_0x353bb8(0x270)])||''),_0x5a1ae1=$(_0x353bb8(0x241)+_0x3ce09e[_0x353bb8(0x296)]['toString']()+_0x353bb8(0x1c8)+_0x34e1cc+'><i\x20class=\x22fa\x20'+_0x3cc953+_0x353bb8(0x20f)+_0x1e5e8e+_0x353bb8(0x26d)+_0x4201e0+_0x353bb8(0x245));return _0x5a1ae1[_0x353bb8(0x203)]('expandable'),_0x5a1ae1['data'](_0x353bb8(0x1ea),_0x67b0b4),_0x5a1ae1[_0x353bb8(0x1c7)](_0x353bb8(0x1ff),_0x3ce09e),_0x5a1ae1;},_0x2b94b7=(_0x3fac63,_0x3fbf22)=>{const _0x439525=_0x54d186;return _0x3fbf22[_0x439525(0x2ad)](_0x439525(0x219)+_0x3fac63+'\x22]');},_0x8acf45=(_0x360417,_0x4a241b)=>{const _0x58ed8e=_0x54d186;_0x360417[_0x58ed8e(0x2a2)][_0x58ed8e(0x2ad)](_0x58ed8e(0x295))['removeClass']('selected'),_0x4a241b[_0x58ed8e(0x2ad)]('.tree-text:first')[_0x58ed8e(0x203)]('selected');},_0x565060=(_0x1c96dd,_0x45b190,_0x56b391)=>_0x28f194(void 0x0,void 0x0,void 0x0,function*(){const _0x4956fb=_0x54d186;let _0x4188af=_0x56b391['children'](_0x4956fb(0x27f));_0x45b190['relativePath'][_0x4956fb(0x24a)]||[];const _0x5540a5=_0x45b190[_0x4956fb(0x208)]||[];if(_0x5540a5[_0x4956fb(0x1df)]===0x0)return;for(const _0x3d521c of _0x5540a5){_0x4188af[_0x4956fb(0x227)]('expandable')&&(yield _0x18ed25(_0x1c96dd,_0x4188af));const _0x424b52=_0x2b94b7(_0x3d521c,_0x4188af);if(_0x424b52[_0x4956fb(0x1df)]===0x0)return;_0x4188af=_0x424b52;}_0x8acf45(_0x1c96dd,_0x4188af),_0x37bca7(_0x1c96dd[_0x4956fb(0x264)],_0x4188af);});function _0x37bca7(_0x4916ac,_0x27a158){const _0x113e1b=_0x54d186,_0x18dcf2=_0x27a158[_0x113e1b(0x1db)]()[_0x113e1b(0x29f)],_0x41add0=_0x4916ac[_0x113e1b(0x28b)]();if(_0x41add0==undefined)return;const _0x3e6843=_0x41add0+_0x18dcf2-_0x4916ac[_0x113e1b(0x262)]()/0x2+_0x27a158[_0x113e1b(0x262)]()/0x2;_0x4916ac[_0x113e1b(0x265)]({'scrollTop':_0x3e6843},0x1f4);}const _0x56a701=(_0x12b2df,_0xed3b1a)=>_0x28f194(void 0x0,void 0x0,void 0x0,function*(){const _0x55db2b=_0x54d186,_0x44fa76=_0x12b2df[_0x55db2b(0x24c)][_0x55db2b(0x2a5)](),_0x6bb2bc={'nodeId':_0x44fa76,'rootNodeId':_0xed3b1a[_0x55db2b(0x296)],'isType':_0x12b2df[_0x55db2b(0x210)][_0x55db2b(0x2a9)]||![]},_0x14c7b5=_0x179f3a(_0x12b2df),_0x5840d4=yield _0x206bce(_0x14c7b5,_0x6bb2bc);if(!_0x5840d4)return;yield _0x565060(_0x12b2df,_0x5840d4,_0x12b2df[_0x55db2b(0x2a2)]);});function _0x483f3a(_0x8f6564,_0x3cd0e5,_0x19e638,_0x55fa77){return _0x28f194(this,void 0x0,void 0x0,function*(){const _0x51c070=_0x25c9;if(_0x3cd0e5[_0x51c070(0x227)](_0x51c070(0x1ee))){console[_0x51c070(0x271)](_0x51c070(0x25a));return;}if(_0x3cd0e5[_0x51c070(0x227)](_0x51c070(0x252))){console[_0x51c070(0x271)](_0x51c070(0x248));return;}_0x3cd0e5['addClass'](_0x51c070(0x252)),_0x3cd0e5[_0x51c070(0x1cf)]('<div\x20class=\x22spinner\x22></div>');try{_0x3cd0e5[_0x51c070(0x2a4)]('ul')[_0x51c070(0x1fd)]();const {references:_0x164970}=yield _0x19e638(_0x3cd0e5,_0x55fa77);for(const _0x5dd914 of _0x164970){if(_0x8f6564['options'][_0x51c070(0x22f)]&&!_0x8f6564[_0x51c070(0x210)][_0x51c070(0x22f)](_0x5dd914))continue;const _0x50b8e8=_0x276ae6(_0x5dd914);_0x3cd0e5['children']('ul')[_0x51c070(0x1cf)](_0x50b8e8);}_0x3cd0e5['addClass'](_0x51c070(0x1ee));}catch(_0x59d535){_0x3cd0e5[_0x51c070(0x2a4)]('ul')[_0x51c070(0x1cf)]('<li>error\x20'+_0x59d535['message']+_0x51c070(0x21b)),console[_0x51c070(0x271)](_0x51c070(0x1f3),_0x59d535);}_0x3cd0e5[_0x51c070(0x2ad)](_0x51c070(0x1d5))[_0x51c070(0x222)](),_0x3cd0e5[_0x51c070(0x1de)](_0x51c070(0x252));});}function _0x179f3a(_0xd04812){const _0x212fa7=_0x54d186,_0x10c2b6={'baseUrl':_0xd04812[_0x212fa7(0x210)]['baseUrl'],'endpointNode':typeof _0xd04812[_0x212fa7(0x210)][_0x212fa7(0x237)]===_0x212fa7(0x204)?_0xd04812['options'][_0x212fa7(0x237)]():_0xd04812['options'][_0x212fa7(0x237)],'endpoint':typeof _0xd04812[_0x212fa7(0x210)][_0x212fa7(0x276)]===_0x212fa7(0x204)?_0xd04812[_0x212fa7(0x210)][_0x212fa7(0x276)]():_0xd04812['options'][_0x212fa7(0x276)]};return _0x10c2b6;}function _0x18ed25(_0x687c8c,_0x38c447){return _0x28f194(this,void 0x0,void 0x0,function*(){const _0x22f79d=_0x25c9;if(_0x38c447[_0x22f79d(0x227)](_0x22f79d(0x1ee))){_0x38c447[_0x22f79d(0x1de)]('expandable')['addClass'](_0x22f79d(0x25c)),_0x38c447['children']('ul')[_0x22f79d(0x298)]();return;}const _0xe923db=_0x179f3a(_0x687c8c),_0x154705=!_0x687c8c[_0x22f79d(0x210)][_0x22f79d(0x2a9)]?_0x7523c0:_0x51d67c;try{yield _0x483f3a(_0x687c8c,_0x38c447,_0x154705,_0xe923db),_0x38c447[_0x22f79d(0x1de)](_0x22f79d(0x263))['addClass'](_0x22f79d(0x25c));}catch(_0x212bbb){_0x38c447[_0x22f79d(0x1de)]('expandable')[_0x22f79d(0x203)]('expanded'),console[_0x22f79d(0x271)]('error',_0x212bbb);}});}const _0x23885f=()=>{const _0x1c414a=_0x54d186;$[_0x1c414a(0x29b)](_0x1c414a(0x21c),{'options':{'endpointNode':()=>({'endpoint':_0x1c414a(0x2a0)}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':_0x1c414a(0x20a)},'nodeClass':'Object','nodeId':'ns=0;i=85','displayName':{'text':'Objects'},'typeDefinition':_0x2b6230}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x28f194(this,void 0x0,void 0x0,function*(){const _0x467620=_0x25c9,_0x1b0fff=this;if(!_0x1b0fff[_0x467620(0x1d0)]){const _0x36eccc=typeof _0x1b0fff[_0x467620(0x210)][_0x467620(0x274)]===_0x467620(0x204)?_0x1b0fff[_0x467620(0x210)][_0x467620(0x274)][_0x467620(0x226)](_0x1b0fff):_0x1b0fff['options'][_0x467620(0x274)];if(_0x36eccc instanceof Promise){const _0xa9ea3=yield _0x36eccc;_0x1b0fff['__parentNode']=_0xa9ea3;}else _0x1b0fff[_0x467620(0x1d0)]=_0x36eccc;}return _0x1b0fff[_0x467620(0x1d0)];});},'reset'(){return _0x28f194(this,void 0x0,void 0x0,function*(){const _0x48a6ff=_0x25c9,_0x5a3ae5=this,_0x3206a3=_0x5a3ae5;_0x3206a3[_0x48a6ff(0x1d0)]=undefined,_0x5a3ae5[_0x48a6ff(0x2a2)]['empty']();const _0x5476d7=yield this[_0x48a6ff(0x20d)](),_0x35fa61=_0x276ae6(_0x5476d7);_0x5a3ae5[_0x48a6ff(0x2a2)][_0x48a6ff(0x1cf)](_0x35fa61),_0x5a3ae5[_0x48a6ff(0x28c)]=_0x5476d7;});},'verify'(){const _0x182d7b=_0x1c414a,_0x288650=this,_0x3409b7=_0x179f3a(_0x288650);_0x5b9885(_0x3409b7,_0x288650[_0x182d7b(0x24c)],_0x288650[_0x182d7b(0x1da)]);},'_create'(){const _0xd2faae=_0x1c414a,_0x48b0f9=this;_0x48b0f9[_0xd2faae(0x24c)]=this[_0xd2faae(0x234)],_0x48b0f9[_0xd2faae(0x279)]=$(_0xd2faae(0x292)),_0x48b0f9[_0xd2faae(0x279)][_0xd2faae(0x203)]('sterfive-combo-box'),this['element'][_0xd2faae(0x259)](_0x48b0f9[_0xd2faae(0x279)]),_0x48b0f9[_0xd2faae(0x266)]=$(_0xd2faae(0x292))[_0xd2faae(0x203)]('input-group'),_0x48b0f9['$combo'][_0xd2faae(0x1cf)](_0x48b0f9[_0xd2faae(0x266)]),_0x48b0f9[_0xd2faae(0x266)][_0xd2faae(0x1cf)](_0x48b0f9[_0xd2faae(0x24c)]),_0x48b0f9['$toggleTreeBtn']=$(_0xd2faae(0x24e)),_0x48b0f9[_0xd2faae(0x266)]['append'](_0x48b0f9[_0xd2faae(0x269)]),_0x48b0f9[_0xd2faae(0x269)]['on'](_0xd2faae(0x24b),function(){var _0x182121;return _0x28f194(this,void 0x0,void 0x0,function*(){const _0x286b3a=_0x25c9;let _0x5901a4=![],_0x2c6e51;!_0x48b0f9[_0x286b3a(0x264)]['is'](_0x286b3a(0x268))&&(_0x48b0f9[_0x286b3a(0x1da)][_0x286b3a(0x1cd)](),_0x2c6e51=yield _0x48b0f9[_0x286b3a(0x20d)](),(_0x2c6e51!==_0x48b0f9[_0x286b3a(0x28c)]||((_0x182121=_0x48b0f9[_0x286b3a(0x28c)])===null||_0x182121===void 0x0?void 0x0:_0x182121[_0x286b3a(0x296)])!==_0x2c6e51[_0x286b3a(0x296)])&&(yield _0x48b0f9[_0x286b3a(0x26c)]()),_0x5901a4=!![]),_0x48b0f9['$dropdown'][_0x286b3a(0x298)](),_0x5901a4&&(yield _0x56a701(_0x48b0f9,_0x2c6e51));});}),_0x48b0f9[_0xd2faae(0x1e1)]=$(_0xd2faae(0x27c)),_0x48b0f9[_0xd2faae(0x266)][_0xd2faae(0x1cf)](_0x48b0f9['$verifyBtn']),_0x48b0f9[_0xd2faae(0x1e1)]['on'](_0xd2faae(0x24b),()=>{this['verify']();});!_0x48b0f9[_0xd2faae(0x24c)]['attr']('placeholder')&&_0x48b0f9[_0xd2faae(0x24c)][_0xd2faae(0x221)](_0xd2faae(0x235),'enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20');_0x48b0f9[_0xd2faae(0x1da)]=$(_0xd2faae(0x206)),_0x48b0f9[_0xd2faae(0x1da)][_0xd2faae(0x1cd)](),_0x48b0f9['$dropdown']=$(_0xd2faae(0x292))[_0xd2faae(0x203)](_0xd2faae(0x231))[_0xd2faae(0x1cd)](),_0x48b0f9[_0xd2faae(0x279)][_0xd2faae(0x1cf)](_0x48b0f9[_0xd2faae(0x1da)]),_0x48b0f9[_0xd2faae(0x279)][_0xd2faae(0x1cf)](_0x48b0f9['$dropdown']),_0x48b0f9[_0xd2faae(0x2a2)]=$(_0xd2faae(0x20c))[_0xd2faae(0x288)](_0x48b0f9[_0xd2faae(0x264)]),this[_0xd2faae(0x26c)]();const _0x11948c=(_0x2302ff,_0x8cd318)=>{const _0x2f8155=_0xd2faae,_0x2628f4=0x14,_0x3e0e04=0x14,_0xbe3361=_0x2302ff[_0x2f8155(0x26a)](),_0x40a9a8=_0x8cd318;if(_0x40a9a8[_0x2f8155(0x207)]>=_0xbe3361['left']&&_0x40a9a8['pageX']<=_0xbe3361[_0x2f8155(0x2a7)]+_0x2628f4&&_0x40a9a8[_0x2f8155(0x26b)]>=_0xbe3361['top']&&_0x40a9a8[_0x2f8155(0x26b)]<=_0xbe3361[_0x2f8155(0x29f)]+_0x3e0e04)return!![];return![];},_0x46c450=_0x3cda48=>_0x28f194(this,void 0x0,void 0x0,function*(){const _0x262250=_0xd2faae;if(_0x3cda48[_0x262250(0x227)](_0x262250(0x263)))_0x18ed25(_0x48b0f9,_0x3cda48);else{if(_0x3cda48[_0x262250(0x227)](_0x262250(0x25c)))_0x3cda48[_0x262250(0x2a4)]('ul')[_0x262250(0x298)](),_0x3cda48[_0x262250(0x1e8)]('expandable\x20expanded');else{if(_0x3cda48[_0x262250(0x2a4)]('ul')[_0x262250(0x2a4)]()[_0x262250(0x1df)]>0x0)_0x3cda48['children']('ul')[_0x262250(0x298)](),_0x3cda48[_0x262250(0x1e8)](_0x262250(0x1f4));else;}}});_0x48b0f9[_0xd2faae(0x2a2)]['on'](_0xd2faae(0x216),'li',function(_0x1c5d17){const _0x4e5507=_0xd2faae;var _0x306571,_0x19f967;_0x1c5d17[_0x4e5507(0x218)]();let _0x49d19a=$(this);if(_0x11948c(_0x49d19a,_0x1c5d17))_0x46c450(_0x49d19a);else{const _0x3af47f=_0x49d19a[_0x4e5507(0x1c7)](_0x4e5507(0x1ea)),_0x3aa7a1=_0x49d19a['data']('reference');if(_0x48b0f9[_0x4e5507(0x210)][_0x4e5507(0x23a)]&&!_0x48b0f9[_0x4e5507(0x210)][_0x4e5507(0x23a)](_0x3aa7a1))return;_0x48b0f9['$input'][_0x4e5507(0x1c7)](_0x4e5507(0x1ff),_0x3aa7a1);const _0x3eb66b=((_0x306571=_0x3aa7a1[_0x4e5507(0x261)])===null||_0x306571===void 0x0?void 0x0:_0x306571[_0x4e5507(0x270)])||((_0x19f967=_0x3aa7a1[_0x4e5507(0x1e6)])===null||_0x19f967===void 0x0?void 0x0:_0x19f967[_0x4e5507(0x290)])||_0x3aa7a1[_0x4e5507(0x296)]['toString'](),_0x47b773='['+_0x3eb66b+']('+_0x3af47f+')';_0x48b0f9[_0x4e5507(0x24c)][_0x4e5507(0x2a5)](_0x47b773),_0x48b0f9[_0x4e5507(0x24c)][_0x4e5507(0x29a)](_0x4e5507(0x294)),_0x48b0f9[_0x4e5507(0x264)][_0x4e5507(0x1cd)]();}}),_0x48b0f9[_0xd2faae(0x2a2)]['on']('click','li',function(_0x4d2f38){const _0x33a00d=_0xd2faae;_0x4d2f38[_0x33a00d(0x218)]();let _0x4a6aba=$(this);_0x11948c(_0x4a6aba,_0x4d2f38)&&_0x46c450(_0x4a6aba),_0x8acf45(_0x48b0f9,_0x4a6aba);}),$(document)['on'](_0xd2faae(0x24b),function(_0x3a13e6){const _0x1923fd=_0xd2faae;!$(_0x3a13e6[_0x1923fd(0x211)])[_0x1923fd(0x1cc)](_0x48b0f9[_0x1923fd(0x279)])[_0x1923fd(0x1df)]&&_0x48b0f9[_0x1923fd(0x264)][_0x1923fd(0x1cd)]();});}});},_0xdda83d=({endpointNode:_0x138803,endpoint:_0x151934,baseUrl:_0x46a66b},_0x13daea)=>_0x28f194(void 0x0,void 0x0,void 0x0,function*(){const _0x4189c8=_0x54d186,_0x14712c=_0x46a66b+_0x4189c8(0x277),_0x437a33=_0x14712c+_0x4189c8(0x205),_0x3bce3a=yield fetch(_0x437a33,{'method':_0x4189c8(0x28f),'body':JSON[_0x4189c8(0x25f)]({'endpointNode':_0x138803,'endpoint':_0x151934,'nodeId':_0x13daea}),'headers':{'Content-Type':_0x4189c8(0x23f)}});if(_0x3bce3a[_0x4189c8(0x229)]!==0xc8){console[_0x4189c8(0x271)](_0x4189c8(0x24f),_0x3bce3a[_0x4189c8(0x229)],_0x3bce3a[_0x4189c8(0x209)]);const _0x149885={'statusCode':_0x4189c8(0x273),'nodeAddressString':_0x13daea};return _0x149885;}console['log'](_0x4189c8(0x28a),_0x3bce3a[_0x4189c8(0x229)],_0x3bce3a[_0x4189c8(0x209)]);const _0x1cf1e9=yield _0x3bce3a[_0x4189c8(0x236)]();return _0x1cf1e9;});function _0x120b51(_0x37ba91,_0x3816e5,_0x2ae098,_0x5dd656){const _0x50d0ae=_0x54d186,_0x2816c8=$('#'+_0x37ba91+_0x50d0ae(0x287)),_0x2b3964=$('#'+_0x37ba91+'-failure'),_0x57dafd=$('#'+_0x37ba91+_0x50d0ae(0x1e7)),_0x582f69=$('#'+_0x37ba91+_0x50d0ae(0x1d7));let _0x542624=![];_0x2816c8[_0x50d0ae(0x1cd)](),_0x2b3964[_0x50d0ae(0x1cd)](),_0x57dafd['hide'](),_0x3816e5['on'](_0x50d0ae(0x24b),()=>{const _0x2bc9af=_0x50d0ae;if(_0x542624)return;_0x542624=!![],_0x57dafd[_0x2bc9af(0x1de)](_0x2bc9af(0x1cd)),_0x57dafd['html'](_0x2bc9af(0x2a1)),_0x2816c8['addClass'](_0x2bc9af(0x1cd)),_0x2b3964['addClass']('hide'),_0x582f69[_0x2bc9af(0x1ef)]('');const {body:_0x5e98ba,url:_0x51a692}=_0x2ae098();fetch(_0x51a692,{'method':_0x2bc9af(0x28f),'headers':{'Content-Type':'application/json'},'body':JSON[_0x2bc9af(0x25f)](_0x5e98ba)})['then'](_0x47d9ab=>_0x47d9ab[_0x2bc9af(0x236)]())[_0x2bc9af(0x1d6)](_0x24882d=>{const _0x582c7b=_0x2bc9af;_0x542624=![],_0x57dafd[_0x582c7b(0x1cd)](),console['log'](JSON[_0x582c7b(0x25f)](_0x24882d,null,'\x20'));if(_0x24882d[_0x582c7b(0x1e3)]==='ok')_0x2816c8['removeClass'](_0x582c7b(0x1cd)),_0x2b3964[_0x582c7b(0x203)](_0x582c7b(0x1cd)),_0x582f69[_0x582c7b(0x1ef)](_0x24882d['message'][_0x582c7b(0x1f5)]('\x0a',_0x582c7b(0x22c))),_0x5dd656(null,_0x24882d);else{const _0x152ad7=_0x35616e=>!_0x35616e?'':_0x35616e[_0x582c7b(0x212)]('\x0a')[_0x582c7b(0x249)](_0x125c18=>_0x582c7b(0x1f7)+_0x125c18+_0x582c7b(0x1e0))[_0x582c7b(0x272)]('\x0a'),_0x116ef3=_0x56fb01=>Array[_0x582c7b(0x285)](_0x56fb01)?_0x56fb01['map'](_0x152ad7)['join']('\x0a'):_0x152ad7(_0x56fb01);_0x2816c8[_0x582c7b(0x203)](_0x582c7b(0x1cd)),_0x2b3964[_0x582c7b(0x1de)](_0x582c7b(0x1cd)),_0x582f69[_0x582c7b(0x1ef)](_0x116ef3(_0x24882d[_0x582c7b(0x280)])+_0x116ef3(_0x24882d[_0x582c7b(0x29c)])),_0x5dd656(new Error(_0x24882d[_0x582c7b(0x1e3)]),_0x24882d);}})[_0x2bc9af(0x254)](_0x4fd821=>{const _0x458ee9=_0x2bc9af;_0x542624=![],_0x57dafd[_0x458ee9(0x203)](_0x458ee9(0x1cd)),_0x2816c8[_0x458ee9(0x203)]('hide'),_0x2b3964['removeClass'](_0x458ee9(0x1cd)),_0x582f69['html'](_0x458ee9(0x1f0)+_0x4fd821['message']),console[_0x458ee9(0x271)]('err',_0x4fd821),_0x5dd656(_0x4fd821,null);});});}const _0x3e577c=()=>{const _0x33f34a=_0x54d186,_0x44f849=$('#node-input-endpoint'),_0x51ef3f=_0x44f849[_0x33f34a(0x2a5)](),_0x24e867=RED[_0x33f34a(0x258)][_0x33f34a(0x25d)](_0x51ef3f);if(!_0x24e867)return undefined;const {endpoint:_0x13bcf3,securityMode:_0x22c032,securityPolicy:_0x4300c5,userIdentityType:_0x2bb3a1,credentials:_0x5d9c5d}=_0x24e867,_0x3c0d86={'endpoint':_0x13bcf3,'securityMode':_0x22c032,'securityPolicy':_0x4300c5,'userIdentityType':_0x2bb3a1,'credentials':_0x5d9c5d};return _0x3c0d86;},_0x37e043=()=>{return{'endpointNode':_0x3a9de0};},_0x3a9de0=()=>{const _0x5ed745=_0x54d186,_0x1a3f2f=$(_0x5ed745(0x213)),_0x22c4cc=_0x1a3f2f[_0x5ed745(0x2a5)](),_0x534500=_0x3e577c();if(!_0x534500)return undefined;return{'id':_0x22c4cc};};RED[_0x54d186(0x258)][_0x54d186(0x1fe)](_0x54d186(0x223),{'category':_0x54d186(0x25b),'color':_0x54d186(0x201),'align':_0x54d186(0x281),'icon':'../../icons/opcuanodeLogo.png','paletteLabel':_0x54d186(0x226),'defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':_0x54d186(0x26f)},'action':{'value':_0x54d186(0x253),'required':!![]},'methodId':{'value':'','required':!![]},'objectId':{'value':'','required':!![]}},'outputs':0x2,'label'(){const _0x3b5a11=_0x54d186;return this[_0x3b5a11(0x290)]||_0x3b5a11(0x255);},'labelStyle'(){const _0xce6e46=_0x54d186;return this[_0xce6e46(0x290)]?_0xce6e46(0x22a):'';},'oneditprepare'(){const _0x356eff=_0x54d186,_0x1158a3=this;_0x23885f(),_0x1158a3[_0x356eff(0x297)]=0x1;let _0x21dc49={};const _0x40de4f=$('#node-input-objectId'),_0x315d67=$('#node-input-methodId'),_0x3eab86=$(_0x356eff(0x200)),_0x4c10b0=$('#method-output-argument-definition'),_0x8747a1=$(_0x356eff(0x291));_0x40de4f[_0x356eff(0x1d2)](Object['assign'](Object[_0x356eff(0x1f2)]({},_0x37e043()),{'filter'(_0x584fa0){const _0x110394=_0x356eff;return _0x584fa0[_0x110394(0x251)]===_0x110394(0x1fc);}})),_0x315d67['nodeBrowser'](Object[_0x356eff(0x1f2)](Object[_0x356eff(0x1f2)]({},_0x37e043()),{'parentNode':function(){return _0x28f194(this,void 0x0,void 0x0,function*(){const _0x4a7c81=_0x25c9,_0x2e8d4d=_0x179f3a(this);let _0x33219c=_0x40de4f[_0x4a7c81(0x1c7)](_0x4a7c81(0x1ff));if(!_0x33219c){const _0x3bdc92=_0x40de4f[_0x4a7c81(0x2a5)](),_0x3645d8=_0x3e577c();if(!_0x3645d8)return null;try{const _0x527725=yield _0xdda83d(_0x2e8d4d,_0x3bdc92);_0x33219c=_0x527725[_0x4a7c81(0x1ff)];}catch(_0x16a2c6){console[_0x4a7c81(0x271)](_0x16a2c6);}}return _0x33219c;});},'filter'(_0x4def46){const _0x26ecb1=_0x356eff;return _0x4def46[_0x26ecb1(0x251)]===_0x26ecb1(0x1eb)||_0x4def46['nodeClass']==='Object';},'isSelectable'(_0x2a83d7){const _0x23a656=_0x356eff;return _0x2a83d7[_0x23a656(0x251)]===_0x23a656(0x1eb);}})),_0x40de4f['on'](_0x356eff(0x294),()=>{const _0x4938f1=_0x356eff;_0x315d67[_0x4938f1(0x1d2)](_0x4938f1(0x26c));});function _0xb31717(_0x44e92a,_0x25597b,_0x3985ba){const _0x895996=_0x356eff,_0x5c9e9c=$(_0x895996(0x1f8))[_0x895996(0x288)](_0x44e92a);$(_0x895996(0x299))[_0x895996(0x2a5)](_0x3985ba[_0x895996(0x290)]||'')['css']({'width':_0x895996(0x220)})['appendTo'](_0x5c9e9c);const _0x187d6e=_0x21dc49[_0x3985ba[_0x895996(0x21a)]['toString']()],_0x584a32=(_0x187d6e?_0x187d6e[_0x895996(0x1e6)]['name']||'':_0x3985ba[_0x895996(0x21a)][_0x895996(0x202)]())+(_0x3985ba['valueRank']===0x1?'[]':'');$(_0x895996(0x299))[_0x895996(0x2a5)](_0x3985ba['description']['text']||'')['css']({'width':_0x895996(0x23e)})['appendTo'](_0x5c9e9c),$(_0x895996(0x299))[_0x895996(0x2a5)](_0x584a32||'')[_0x895996(0x2aa)]({'width':'50%'})[_0x895996(0x288)](_0x5c9e9c);}_0x3eab86[_0x356eff(0x28d)]({'addButton':![],'height':_0x356eff(0x1cb),'scrollOnAdd':![],'addItem'(_0x198bad,_0x2f3250,_0x3ad811){_0xb31717(_0x198bad,_0x2f3250,_0x3ad811);}}),_0x4c10b0[_0x356eff(0x28d)]({'addButton':![],'height':_0x356eff(0x1cb),'scrollOnAdd':![],'addItem'(_0x5e270f,_0x455e99,_0x694b77){_0xb31717(_0x5e270f,_0x455e99,_0x694b77);}});function _0x4414d5(_0x218251,_0x4c4e0e){const _0x470bfc=_0x356eff;console[_0x470bfc(0x271)]('installArgumentList',_0x4c4e0e[_0x470bfc(0x1df)],_0x470bfc(0x289),_0x4c4e0e),_0x218251['editableList']('empty');for(let _0x162891=0x0;_0x162891<_0x4c4e0e['length'];_0x162891++){_0x218251['editableList'](_0x470bfc(0x1f6),_0x4c4e0e[_0x162891]);}}_0x3eab86[_0x356eff(0x1cd)](),_0x4c10b0[_0x356eff(0x1cd)]();let _0x2233d2={};const _0x2db28c=$(_0x356eff(0x27d));_0x2db28c[_0x356eff(0x1cd)](),_0x2db28c['on']('click',()=>{const _0x24a739=_0x356eff;navigator['clipboard'][_0x24a739(0x224)](JSON[_0x24a739(0x25f)](_0x2233d2));}),_0x120b51(_0x356eff(0x1fa),_0x8747a1,()=>({'url':'/opcua-endpoint2/argumentDefinition','body':{'endpointNode':_0x3a9de0(),'objectId':_0x40de4f[_0x356eff(0x2a5)](),'methodId':_0x315d67[_0x356eff(0x2a5)]()}}),(_0x38bc8a,_0xdabfda)=>{const _0x4d994e=_0x356eff;if(_0x38bc8a)return;const _0x57bb6c=_0xdabfda[_0x4d994e(0x246)];_0x21dc49=_0xdabfda[_0x4d994e(0x21f)],_0x3eab86[_0x4d994e(0x228)](),_0x4c10b0[_0x4d994e(0x228)](),_0x4414d5(_0x3eab86,_0x57bb6c[_0x4d994e(0x2ab)]),_0x4414d5(_0x4c10b0,_0x57bb6c[_0x4d994e(0x1c9)]),_0x2233d2=_0xdabfda['inputArgumentsExampleAsJson']||{},_0x2db28c[_0x4d994e(0x228)](),navigator[_0x4d994e(0x233)][_0x4d994e(0x224)](JSON['stringify'](_0x2233d2)),console['log'](_0x4d994e(0x256),JSON['stringify'](_0x2233d2)),console[_0x4d994e(0x271)]('data',_0xdabfda);});},'oneditsave'(){}});}()));function _0x2885(){const _0x42ddc6=['referenceTypeId','fetched','html','internal\x20error\x20','NodeClass','assign','err','expandable\x20expanded','replace','addItem','<p>','<div\x20class=\x22argument-entry\x22>','VariableType','validate','fa-text-width','Object','empty','registerType','reference','#method-input-argument-definition','#C0DEED','toString','addClass','function','/checkNodeId','<div\x20class=\x22info-text\x22></div>','pageX','nodeIds','statusText','Objects','fa-cog','<ul\x20class=\x22sterfive-tree\x22></ul>','resolveParentNode','next','\x22\x20style=\x22color:','options','target','split','#node-input-endpoint','SandyBrown','!!failure!!','dblclick','rgba(61,\x2060,\x204,\x200.525)','stopPropagation','li[key=\x22','dataType','</li>','sterfive.nodeBrowser','4312RrNPZK','IsForward','dataTypes','100%','attr','remove','OpcUa-Client2-Call','writeText','CadetBlue','call','hasClass','show','status','node_label_italic','HasSubtype','<br>','ns=0;i=35','browsePath','filter','DataType','sterfive-dropdown','Both','clipboard','element','placeholder','json','endpointNode','sterfive-info','363JsNwOD','isSelectable','21130nnJHtv','/walk-backward','Organizes','50%','application/json','browseResult','<li\x20key=\x22','ReferenceType','failure','6010KesUyd','</span><ul></ul></li>','argumentDefinition','ns=0;i=45','already\x20loading','map','elements','click','$input','HasChild','<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','fetching\x20failed\x20with\x20error','HasComponent','nodeClass','loading','read','catch','OPCUA-Call','JSON','570300OYydbm','nodes','replaceWith','already\x20fetched','opcua','expanded','node','703630OreNzC','stringify','SteelBlue','displayName','height','expandable','$dropdown','animate','$inputGroup','1779680EukOPo',':visible','$toggleTreeBtn','offset','pageY','reset',';\x22></i>\x20','View','OpcUa-Endpoint2','text','log','join','Bad','parentNode','ns=0;i=46','endpoint','/opcua-endpoint2','Invalid','$combo','3270912awRsvx','SeaGreen','<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>','#copy-input','HasProperty',':first','message','right','error','suppressed','Good','isArray','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','-success','appendTo','arguments','fetched\x20:\x20','scrollTop','currentParent','editableList','done','POST','name','#validate-call-arguments-button','<div/>','fa-list-alt','change','li\x20>\x20.tree-text','nodeId','inputs','toggle','<input\x20type=\x22text\x22>','trigger','widget','extra','fa-question','14ZZzsCe','top','opc.tcp://opcuademo.sterfive.com:26543','Testing\x20Connection\x20...','$tree','DisplayName','children','val','DarkOrange','left','ns=0;i=61','isTypeRef','css','inputArguments','fa-object-group','find','data','\x22}><span\x20class=\x22tree-text\x22\x20title=','outputArguments','ns=0;i=34','auto','closest','hide','TypeDefinition','append','__parentNode','/browse','nodeBrowser','i=61','BrowseName','.spinner','then','-messages','Inverse','Forward','$info','position','statusCode','references','removeClass','length','</p>','$verifyBtn','2178qHZEGF','result','ObjectType','35233fZDULz','browseName','-pending','toggleClass','nodeAddressString','value','Method','Variable'];_0x2885=function(){return _0x42ddc6;};return _0x2885();}
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHgyOGYxOTQiLCJfMHgxOGVmM2UiLCJfMHgyMjViZTAiLCJfMHgyMGEwOTgiLCJfMHg1M2Y5Y2IiLCJfMHg0M2Y0ZjMiLCJfMHgzYjdhMzIiLCJfMHgxMmFjNzAiLCJQcm9taXNlIiwiXzB4NzBjODFmIiwiXzB4MzY3ZGRkIiwiXzB4N2FmMzQ4IiwiXzB4NWU4NTA0IiwiXzB4MTg5YmExIiwiXzB4MTZiYzBmIiwiXzB4NTNiODkzIiwiXzB4MTg1MWFiIiwiXzB4NTliOGM2IiwiXzB4NTM2OWE4IiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4NDgzMjZiIiwiXzB4Mjg1Y2U4IiwiXzB4NTBlNWIxIiwiXzB4NDliYzQ2IiwiRXJyb3IiLCJfMHg0YjMwNTgiLCJfMHgyYjYyMzAiLCJfMHgyMzE1MDgiLCJfMHgxMGU3ODgiLCJfMHg0NmZiYmQiLCJfMHg1NjljOTEiLCJfMHhjYjQzYjEiLCJfMHgzYzk2MzMiLCJfMHg0ZTYzNDkiLCJfMHg1YzViZmMiLCJfMHgyOTRmMTkiLCJfMHg4MzJlYzgiLCJfMHg1MGJkNWQiLCJfMHgzYjE1MmEiLCJfMHg1ZTE2YTEiLCJfMHgyZDc2MmIiLCJfMHg0ZDdkMDEiLCJfMHgxYTEwNTkiLCJfMHg0MTczNDUiLCJfMHg0MmQ0OGQiLCJlbmRwb2ludE5vZGUiLCJfMHgzZDA0ZDEiLCJlbmRwb2ludCIsIl8weDU2ZDlkNiIsImJhc2VVcmwiLCJfMHgxZTdiZjUiLCJfMHhmZThjOTQiLCJfMHg0MTc5OWYiLCJfMHg0YTllYmIiLCJfMHg1NGM4OTIiLCJfMHgxYjhjMTgiLCJPYmplY3QiLCJfMHgzOTZmYTgiLCJmZXRjaCIsIkpTT04iLCJjb25zb2xlIiwiXzB4YjVjMzFjIiwiXzB4NDU0NjVhIiwiXzB4NGU1ZTU5IiwiXzB4MWUxMjMxIiwiXzB4MjA2YmNlIiwiXzB4NTBmNTE5IiwiXzB4MWJlNzU5IiwiXzB4NGMwZmM1Iiwibm9kZUlkIiwiXzB4NDQ5ZjlkIiwicm9vdE5vZGVJZCIsIl8weGYzOWVkYiIsImlzVHlwZSIsIl8weDQxYjM3NiIsIl8weDJhOTQyOCIsIl8weDM4ZTMyNCIsIl8weDM3YmFkMCIsIl8weDJhMzM2MiIsIl8weDViOTg4NSIsIl8weDQwZGNhMCIsIl8weDFmNDJiOCIsIl8weDMzMTAyZCIsIl8weDRhZGE5MCIsIl8weDU3YzNjNiIsIl8weDIzNjFiYyIsIl8weDMzNGZmZCIsIl8weDE3ODBkMCIsIl8weDViMWMxMiIsIl8weDEzOTYwZCIsIl8weDViOWI0NSIsIl8weDJjNDM2NiIsInNldFRpbWVvdXQiLCJfMHgxNjMxNzciLCJfMHg3NTIzYzAiLCJfMHg1NjRhNTMiLCJfMHgxYTkyZDEiLCJfMHhiNDNkNDAiLCJfMHgyY2UwZDYiLCJfMHgxMzJmNmUiLCJfMHgxZjlkOWIiLCJfMHg1MWQ2N2MiLCJfMHg5ZWI1ZWUiLCJfMHgxODM4YmMiLCJfMHgyM2MxMDMiLCJfMHg1Yzg4ZWEiLCJfMHgyNzZhZTYiLCJfMHgzY2UwOWUiLCJfMHgzZjdiZmYiLCJfMHg0NDBiZGIiLCJfMHgzN2Y1NmYiLCJfMHgyZGZhYmIiLCJfMHgyNTAzNWIiLCIkIiwiXzB4NjdiMGI0IiwiXzB4NDIwMWUwIiwiaWNvbiIsIl8weDNjYzk1MyIsImNvbG9yIiwiXzB4MWU1ZThlIiwiXzB4MzRlMWNjIiwiXzB4NWExYWUxIiwiXzB4MmI5NGI3IiwiXzB4M2ZhYzYzIiwiXzB4M2ZiZjIyIiwiXzB4OGFjZjQ1IiwiXzB4MzYwNDE3IiwiXzB4NGEyNDFiIiwiXzB4NTY1MDYwIiwiXzB4MWM5NmRkIiwiXzB4NDViMTkwIiwiXzB4NTZiMzkxIiwiXzB4NDE4OGFmIiwiXzB4NTU0MGE1IiwiXzB4M2Q1MjFjIiwiXzB4MThlZDI1IiwiXzB4NDI0YjUyIiwiXzB4MzdiY2E3IiwiXzB4NDkxNmFjIiwiXzB4MjdhMTU4IiwiXzB4MThkY2YyIiwiXzB4NDFhZGQwIiwidW5kZWZpbmVkIiwiXzB4M2U2ODQzIiwiXzB4NTZhNzAxIiwiXzB4MTJiMmRmIiwiXzB4ZWQzYjFhIiwiXzB4NDRmYTc2IiwiXzB4NmJiMmJjIiwiXzB4MTRjN2I1IiwiXzB4MTc5ZjNhIiwiXzB4NTg0MGQ0IiwiXzB4NDgzZjNhIiwiXzB4OGY2NTY0IiwiXzB4M2NkMGU1IiwiXzB4MTllNjM4IiwiXzB4NTVmYTc3IiwicmVmZXJlbmNlcyIsIl8weDE2NDk3MCIsIl8weDVkZDkxNCIsIl8weDUwYjhlOCIsIl8weDU5ZDUzNSIsIl8weGQwNDgxMiIsIl8weDEwYzJiNiIsIl8weDY4N2M4YyIsIl8weDM4YzQ0NyIsIl8weGU5MjNkYiIsIl8weDE1NDcwNSIsIl8weDIxMmJiYiIsIl8weDIzODg1ZiIsIl8weDFiMGZmZiIsIl8weDM2ZWNjYyIsIl8weGE5ZWEzIiwiXzB4NWEzYWU1IiwiXzB4MzIwNmEzIiwiXzB4NTQ3NmQ3IiwiXzB4MzVmYTYxIiwiXzB4Mjg4NjUwIiwiXzB4MzQwOWI3IiwiXzB4NDhiMGY5IiwiXzB4MTgyMTIxIiwiXzB4NTkwMWE0IiwiXzB4MmM2ZTUxIiwiXzB4MTE5NDhjIiwiXzB4MjMwMmZmIiwiXzB4OGNkMzE4IiwiXzB4MjYyOGY0IiwiXzB4M2UwZTA0IiwiXzB4YmUzMzYxIiwiXzB4NDBhOWE4IiwiXzB4NDZjNDUwIiwiXzB4M2NkYTQ4IiwiXzB4MWM1ZDE3IiwiXzB4MzA2NTcxIiwiXzB4MTlmOTY3IiwiXzB4NDlkMTlhIiwiXzB4M2FmNDdmIiwiXzB4M2FhN2ExIiwiXzB4M2ViNjZiIiwiXzB4NDdiNzczIiwiXzB4NGQyZjM4IiwiXzB4NGE2YWJhIiwiZG9jdW1lbnQiLCJfMHgzYTEzZTYiLCJfMHhkZGE4M2QiLCJfMHgxMzg4MDMiLCJfMHgxNTE5MzQiLCJfMHg0NmE2NmIiLCJfMHgxM2RhZWEiLCJfMHgxNDcxMmMiLCJfMHg0MzdhMzMiLCJfMHgzYmNlM2EiLCJfMHgxNDk4ODUiLCJfMHgxY2YxZTkiLCJfMHgxMjBiNTEiLCJfMHgzN2JhOTEiLCJfMHgzODE2ZTUiLCJfMHgyYWUwOTgiLCJfMHg1ZGQ2NTYiLCJfMHgyODE2YzgiLCJfMHgyYjM5NjQiLCJfMHg1N2RhZmQiLCJfMHg1ODJmNjkiLCJfMHg1NDI2MjQiLCJib2R5IiwiXzB4NWU5OGJhIiwidXJsIiwiXzB4NTFhNjkyIiwiXzB4NDdkOWFiIiwiXzB4MjQ4ODJkIiwiXzB4MTUyYWQ3IiwiXzB4MzU2MTZlIiwiXzB4MTI1YzE4IiwiXzB4MTE2ZWYzIiwiXzB4NTZmYjAxIiwiQXJyYXkiLCJfMHg0ZmQ4MjEiLCJfMHgzZTU3N2MiLCJfMHg0NGY4NDkiLCJfMHg1MWVmM2YiLCJfMHgyNGU4NjciLCJSRUQiLCJfMHgxM2JjZjMiLCJzZWN1cml0eU1vZGUiLCJfMHgyMmMwMzIiLCJzZWN1cml0eVBvbGljeSIsIl8weDQzMDBjNSIsInVzZXJJZGVudGl0eVR5cGUiLCJfMHgyYmIzYTEiLCJjcmVkZW50aWFscyIsIl8weDVkOWM1ZCIsIl8weDNjMGQ4NiIsIl8weDM3ZTA0MyIsIl8weDNhOWRlMCIsIl8weDFhM2YyZiIsIl8weDIyYzRjYyIsIl8weDUzNDUwMCIsIl8weDExNThhMyIsIl8weDIxZGM0OSIsIl8weDQwZGU0ZiIsIl8weDMxNWQ2NyIsIl8weDNlYWI4NiIsIl8weDRjMTBiMCIsIl8weDg3NDdhMSIsIl8weDU4NGZhMCIsIl8weDJlOGQ0ZCIsIl8weDMzMjE5YyIsIl8weDNiZGM5MiIsIl8weDM2NDVkOCIsIl8weDUyNzcyNSIsIl8weDE2YTJjNiIsIl8weDRkZWY0NiIsIl8weDJhODNkNyIsIl8weGIzMTcxNyIsIl8weDQ0ZTkyYSIsIl8weDI1NTk3YiIsIl8weDM5ODViYSIsIl8weDVjOWU5YyIsIl8weDE4N2Q2ZSIsIl8weDU4NGEzMiIsIl8weDE5OGJhZCIsIl8weDJmMzI1MCIsIl8weDNhZDgxMSIsIl8weDVlMjcwZiIsIl8weDQ1NWU5OSIsIl8weDY5NGI3NyIsIl8weDQ0MTRkNSIsIl8weDIxODI1MSIsIl8weDRjNGUwZSIsIl8weDE2Mjg5MSIsIl8weDIyMzNkMiIsIl8weDJkYjI4YyIsIm5hdmlnYXRvciIsIl8weDM4YmM4YSIsIl8weGRhYmZkYSIsIl8weDU3YmI2YyJdLCJtYXBwaW5ncyI6IncwQkFBQSxDQUFDLFUsQ0FDRyxhLHdCQW1CQSxT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U0FBQSxDLGdCQUFBLENBQTBCaUQsU0FBMUIsQ0FBd0MsS0FBTyxDLEtBQzNDLEMscUNBRDJDLEMsTUFFM0MsQ0FBTSxDLGNBQ0YsQ0FBY1YsU0FBQSxFQURaLEMsVUFFRixDQUFVTSxTQUFBLEMsZ0JBQUEsR0FGUixDLFVBR0YsQ0FBVUMsU0FBQSxDLGdCQUFBLEdBSFIsQ0FGcUMsQ0FBUCxDQUF4QyxDQU9JLENBQUNpQyxTQUFELENBQU1DLFNBQU4sRyw4QkFDSUQsUyxDQUNBLE9BR0osTUFBTUUsU0FBQSxDQUFxQkQsU0FBQSxDLGdCQUFBLENBQTNCLENBQ0FwQyxTQUFBLENBQVlvQyxTQUFBLEMsZ0JBQUEsQyxDQUNaakMsU0FBQSxDLGdCQUFBLEcsQ0FDQUMsU0FBQSxDLGdCQUFBLEcsQ0FDQXdCLFNBQUEsQ0FBb0J6QixTQUFwQixDQUE4Q2tDLFNBQUEsQyxnQkFBQSxDQUE5QyxDLENBQ0FULFNBQUEsQ0FBb0J4QixTQUFwQixDQUErQ2lDLFNBQUEsQyxnQkFBQSxDQUEvQyxDLENBQ0FMLFNBQUEsQ0FBY0ksU0FBQSxDLDZCQUFBLEdBQW9DLEUsQ0FDbERILFNBQUEsQyxnQkFBQSxHLENBQ0FDLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEVBQThCek8sSUFBQSxDLFdBQUEsRUFBZXVPLFNBQWYsQ0FBOUIsQyxDQUNBdE8sT0FBQSxDLEtBQUEsRSxnQkFBQSxDQUFvQkQsSUFBQSxDLFdBQUEsRUFBZXVPLFNBQWYsQ0FBcEIsQyxDQUNBdE8sT0FBQSxDLGdCQUFBLEUsTUFBQSxDQUFvQjBPLFNBQXBCLEMsRUF0QkosQyxFQTNIcUMsQyxZQW9KekMsRSxFQXBKeUMsQ0FBN0MsQyxFQWpzQkosRyIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiAoKSB7XG4gICAgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gICAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uXHJcblxyXG4gICAgUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XHJcbiAgICBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQuXHJcblxyXG4gICAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSFxyXG4gICAgUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXHJcbiAgICBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXHJcbiAgICBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST01cclxuICAgIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXHJcbiAgICBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXHJcbiAgICBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLlxyXG4gICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuICAgIC8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlLCBTdXBwcmVzc2VkRXJyb3IsIFN5bWJvbCAqL1xyXG5cclxuXHJcbiAgICBmdW5jdGlvbiBfX2F3YWl0ZXIodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XHJcbiAgICAgICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XHJcbiAgICAgICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XHJcbiAgICAgICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0eXBlb2YgU3VwcHJlc3NlZEVycm9yID09PSBcImZ1bmN0aW9uXCIgPyBTdXBwcmVzc2VkRXJyb3IgOiBmdW5jdGlvbiAoZXJyb3IsIHN1cHByZXNzZWQsIG1lc3NhZ2UpIHtcclxuICAgICAgICB2YXIgZSA9IG5ldyBFcnJvcihtZXNzYWdlKTtcclxuICAgICAgICByZXR1cm4gZS5uYW1lID0gXCJTdXBwcmVzc2VkRXJyb3JcIiwgZS5lcnJvciA9IGVycm9yLCBlLnN1cHByZXNzZWQgPSBzdXBwcmVzc2VkLCBlO1xyXG4gICAgfTtcblxuICAgIGNvbnN0IE9yZ2FuaXplc1JlZk5vZGVJZCA9IFwibnM9MDtpPTM1XCI7XG4gICAgY29uc3QgRm9sZGVyVHlwZSA9IFwibnM9MDtpPTYxXCI7XG4gICAgY29uc3QgSGFzQ29tcG9uZW50UmVmTm9kZUlkID0gXCJucz0wO2k9NDdcIjtcbiAgICBjb25zdCBIYXNQcm9wZXJ0eVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ2XCI7XG4gICAgY29uc3QgSGFzQ2hpbGRSZWZOb2RlSWQgPSBcIm5zPTA7aT0zNFwiO1xuICAgIGNvbnN0IEhhc1N1YnR5cGVSZWZOb2RlSWQgPSBcIm5zPTA7aT00NVwiO1xuICAgIGNvbnN0IEhhc1R5cGVEZWZpbml0aW9uUmVmTm9kZUlkID0gXCJucz0wO2k9NDBcIjtcblxuICAgIHZhciBCcm93c2VEaXJlY3Rpb247XG4gICAgKGZ1bmN0aW9uIChCcm93c2VEaXJlY3Rpb24pIHtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkZvcndhcmRcIl0gPSAwXSA9IFwiRm9yd2FyZFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52ZXJzZVwiXSA9IDFdID0gXCJJbnZlcnNlXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJCb3RoXCJdID0gMl0gPSBcIkJvdGhcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkludmFsaWRcIl0gPSAzXSA9IFwiSW52YWxpZFwiO1xuICAgIH0pKEJyb3dzZURpcmVjdGlvbiB8fCAoQnJvd3NlRGlyZWN0aW9uID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzO1xuICAgIChmdW5jdGlvbiAoTm9kZUNsYXNzKSB7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJVbnNwZWNpZmllZFwiXSA9IDBdID0gXCJVbnNwZWNpZmllZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmFyaWFibGVcIl0gPSAyXSA9IFwiVmFyaWFibGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk1ldGhvZFwiXSA9IDRdID0gXCJNZXRob2RcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmFyaWFibGVUeXBlXCJdID0gMTZdID0gXCJWYXJpYWJsZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAzMl0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmlld1wiXSA9IDEyOF0gPSBcIlZpZXdcIjtcbiAgICB9KShOb2RlQ2xhc3MgfHwgKE5vZGVDbGFzcyA9IHt9KSk7XG4gICAgdmFyIE5vZGVDbGFzc01hc2s7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3NNYXNrKSB7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFwiXSA9IDFdID0gXCJPYmplY3RcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmFyaWFibGVcIl0gPSAyXSA9IFwiVmFyaWFibGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJPYmplY3RUeXBlXCJdID0gOF0gPSBcIk9iamVjdFR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmFyaWFibGVUeXBlXCJdID0gMTZdID0gXCJWYXJpYWJsZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJEYXRhVHlwZVwiXSA9IDY0XSA9IFwiRGF0YVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmlld1wiXSA9IDEyOF0gPSBcIlZpZXdcIjtcbiAgICB9KShOb2RlQ2xhc3NNYXNrIHx8IChOb2RlQ2xhc3NNYXNrID0ge30pKTtcbiAgICB2YXIgUmVzdWx0TWFzaztcbiAgICAoZnVuY3Rpb24gKFJlc3VsdE1hc2spIHtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDFdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIklzRm9yd2FyZFwiXSA9IDJdID0gXCJJc0ZvcndhcmRcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiTm9kZUNsYXNzXCJdID0gNF0gPSBcIk5vZGVDbGFzc1wiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJCcm93c2VOYW1lXCJdID0gOF0gPSBcIkJyb3dzZU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiRGlzcGxheU5hbWVcIl0gPSAxNl0gPSBcIkRpc3BsYXlOYW1lXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIlR5cGVEZWZpbml0aW9uXCJdID0gMzJdID0gXCJUeXBlRGVmaW5pdGlvblwiO1xuICAgIH0pKFJlc3VsdE1hc2sgfHwgKFJlc3VsdE1hc2sgPSB7fSkpO1xuICAgIC8vICBjb25zdCBxID0gUmVmZXJlbmNlVHlwZUlkcy5Pcmdhbml6ZXM7XG4gICAgZnVuY3Rpb24gcmVzb2x2ZU5vZGVJZChub2RlSWRMaWtlKSB7XG4gICAgICAgIHN3aXRjaCAobm9kZUlkTGlrZSkge1xuICAgICAgICAgICAgY2FzZSBcIk9yZ2FuaXplc1wiOlxuICAgICAgICAgICAgICAgIHJldHVybiBPcmdhbml6ZXNSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzUHJvcGVydHlcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzUHJvcGVydHlSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzQ29tcG9uZW50XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NvbXBvbmVudFJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDaGlsZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNDaGlsZFJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNTdWJ0eXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1N1YnR5cGVSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzVHlwZURlZmluaXRpb25cIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBnZXRJY29uID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICBzd2l0Y2ggKHJlZmVyZW5jZS5ub2RlQ2xhc3MpIHtcbiAgICAgICAgICAgIGNhc2UgXCJPYmplY3RcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gT3JnYW5pemVzUmVmTm9kZUlkKSA7XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS50eXBlRGVmaW5pdGlvbiA9PT0gRm9sZGVyVHlwZSB8fCByZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBcImk9NjFcIikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWZvbGRlclwiLCBjb2xvcjogXCJyZ2JhKDYxLCA2MCwgNCwgMC41MjUpXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6IFwiU2VhR3JlZW5cIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlXCI6XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IEhhc0NvbXBvbmVudFJlZk5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIlN0ZWVsQmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IEhhc1Byb3BlcnR5UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiRG9kZ2VyQmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIkNhZGV0Qmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBcIk1ldGhvZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtY29nXCIsIGNvbG9yOiBcIlNhbmR5QnJvd25cIiB9O1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJWYXJpYWJsZVR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXNsaWRlcnNcIiwgY29sb3I6IFwiRGFya09yYW5nZVwiIH07XG4gICAgICAgICAgICBjYXNlIFwiRGF0YVR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXRleHQtd2lkdGhcIiwgY29sb3I6IFwiQ2FkZXRCbHVlXCIgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXF1ZXN0aW9uXCIsIGNvbG9yOiBcImdyZXlcIiB9O1xuICAgIH07XG5cbiAgICBjb25zdCBicm93c2UgPSAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIG5vZGVJZCwgdGVtcGxhdGUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vYnJvd3NlYDtcbiAgICAgICAgY29uc3QgYnJvd3NlRGVzY3JpcHRpb24gPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHRlbXBsYXRlKSwgeyBub2RlSWQsIHJlc3VsdE1hc2s6IDYzIH0pO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBicm93c2VEZXNjcmlwdGlvbixcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hpbmcgZmFpbGVkIHdpdGggZXJyb3JcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzOiBbXSB9O1xuICAgICAgICB9XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwiYnJvd3NlIGZldGNoZWQgOiBcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0geWllbGQgZGF0YS5qc29uKCk7XG4gICAgICAgIGNvbnN0IHJlZmVyZW5jZXMgPSByZXNwb25zZS5icm93c2VSZXN1bHQucmVmZXJlbmNlcyB8fCBbXTtcbiAgICAgICAgcmV0dXJuIHsgcmVmZXJlbmNlcyB9O1xuICAgIH0pO1xuXG4gICAgY29uc3QgdGVtcGxhdGUxID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJIYXNDaGlsZFwiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuVmFyaWFibGUgfCBOb2RlQ2xhc3MuT2JqZWN0IHwgTm9kZUNsYXNzLk1ldGhvZCxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5PYmplY3RUeXBlIHxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5EYXRhVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5WaWV3LFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGNvbnN0IHRlbXBsYXRlMiA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiT3JnYW5pemVzXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3Qgd2Fsa0JhY2t3YXJkID0gKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCB7IG5vZGVJZCwgcm9vdE5vZGVJZCwgaXNUeXBlIH0pID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vd2Fsay1iYWNrd2FyZGA7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIG5vZGVJZCxcbiAgICAgICAgICAgICAgICByb290Tm9kZUlkLFxuICAgICAgICAgICAgICAgIGlzVHlwZSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGpzb24gPSAoeWllbGQgZGF0YS5qc29uKCkpO1xuICAgICAgICByZXR1cm4ganNvbi5icm93c2VQYXRoO1xuICAgIH0pO1xuICAgIGNvbnN0IGludGVybmFsVmVyaWZ5ID0gKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCAkaW5wdXRFbGVtZW50LCAkaW5mbykgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1lbmRwb2ludDJgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9jaGVja05vZGVJZGA7XG4gICAgICAgIGNvbnN0IG5vZGVJZCA9ICRpbnB1dEVsZW1lbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIG5vZGVJZCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3Qgc2V0Tm90aWZpY2F0aW9uID0gKHRleHQsIGNsYXNzTmFtZSkgPT4ge1xuICAgICAgICAgICAgJGluZm8udGV4dCh0ZXh0KS5hZGRDbGFzcyhcInN0ZXJmaXZlLWluZm9cIikuYWRkQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICRpbmZvLnNob3coKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICRpbmZvLnJlbW92ZUNsYXNzKGNsYXNzTmFtZSk7XG4gICAgICAgICAgICAgICAgJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgfSwgMzAwMCk7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGpzb24gPSAoeWllbGQgZGF0YS5qc29uKCkpO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgLy8gZG8gc29tZXRoaW5nO1xuICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKFwiISFmYWlsdXJlISFcIiArIG5vZGVJZCwgXCJmYWlsdXJlXCIpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKGpzb24uc3RhdHVzQ29kZS5tYXRjaCgvR29vZC8pKSB7XG4gICAgICAgICAgICAgICAgLy8gZG8gc29tZXRoaW5nXG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC52YWwoanNvbi5ub2RlQWRkcmVzc1N0cmluZyk7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihcIkdvb2RcIiwgXCJva1wiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudmFsKGAke25vZGVJZH1gKTtcbiAgICAgICAgICAgICAgICBzZXROb3RpZmljYXRpb24oYCR7anNvbi5zdGF0dXNDb2RlfSAke2RhdGEuc3RhdHVzVGV4dH1gLCBcImZhaWx1cmVcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBmdW5jdGlvbiBmZXRjaENoaWxkcmVuKCRub2RlLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlSWQgPSAkbm9kZS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQxID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGUxKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDIgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTIpO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWZlcmVuY2VzOiBbLi4uYnJvd3NlUmVzdWx0MS5yZWZlcmVuY2VzLCAuLi5icm93c2VSZXN1bHQyLnJlZmVyZW5jZXNdLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IHRlbXBsYXRlU1QgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIkhhc1N1YnR5cGVcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfCBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8IE5vZGVDbGFzcy5EYXRhVHlwZSB8IE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgZnVuY3Rpb24gZmV0Y2hTdWJ0eXBlcygkbm9kZSwgZGF0YSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZUlkID0gJG5vZGUuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MSA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlU1QpO1xuICAgICAgICAgICAgcmV0dXJuIGJyb3dzZVJlc3VsdDE7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBtYWtlRWxlbWVudCA9IChyZWZlcmVuY2UpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kO1xuICAgICAgICBpZiAoIXJlZmVyZW5jZSB8fCAhcmVmZXJlbmNlLm5vZGVJZCkge1xuICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGk+PGkgY2xhc3M9XCJmYSBmYS1lcnJvclwiIHN0eWxlPVwiY29sb3I6cmVkO1wiPjwvaT5ubyByZWZlcmVuY2UgITx1bD48L3VsPjwvbGk+YCk7XG4gICAgICAgICAgICByZXR1cm4gJGVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbiA9IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgdCA9ICgoX2EgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSB8fCAoKF9iID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IHsgaWNvbiwgY29sb3IgfSA9IGdldEljb24ocmVmZXJlbmNlKTtcbiAgICAgICAgY29uc3QgdGl0bGUgPSBgKCR7cmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpfSkgJHsoKF9jID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5uYW1lKSB8fCAoKF9kID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2QudGV4dCkgfHwgXCJcIn1gO1xuICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaSBrZXk9XCIke3JlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKX1cIn0+PHNwYW4gY2xhc3M9XCJ0cmVlLXRleHRcIiB0aXRsZT0ke3RpdGxlfT48aSBjbGFzcz1cImZhICR7aWNvbn1cIiBzdHlsZT1cImNvbG9yOiR7Y29sb3J9O1wiPjwvaT4gJHt0fTwvc3Bhbj48dWw+PC91bD48L2xpPmApO1xuICAgICAgICAkZWxlbWVudC5hZGRDbGFzcyhcImV4cGFuZGFibGVcIik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJ2YWx1ZVwiLCBuKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInJlZmVyZW5jZVwiLCByZWZlcmVuY2UpO1xuICAgICAgICByZXR1cm4gJGVsZW1lbnQ7XG4gICAgfTtcbiAgICBjb25zdCBmaW5kRWxlbWVudCA9IChub2RlSWQsICR0cmVlKSA9PiB7XG4gICAgICAgIHJldHVybiAkdHJlZS5maW5kKGBsaVtrZXk9XCIke25vZGVJZH1cIl1gKTtcbiAgICB9O1xuICAgIGNvbnN0IHNlbGVjdFNpbmdsZSA9ICh0aGF0LCAkbGkpID0+IHtcbiAgICAgICAgdGhhdC4kdHJlZS5maW5kKFwibGkgPiAudHJlZS10ZXh0XCIpLnJlbW92ZUNsYXNzKFwic2VsZWN0ZWRcIik7XG4gICAgICAgIC8vIGNsZWFyIGFsbCBzZWxlY3RlZCBpdGVtc1xuICAgICAgICAkbGkuZmluZChcIi50cmVlLXRleHQ6Zmlyc3RcIikuYWRkQ2xhc3MoXCJzZWxlY3RlZFwiKTtcbiAgICB9O1xuICAgIGNvbnN0IGF1dG9FeHBhbmQgPSAodGhhdCwgYnJvd3NlUGF0aCwgJHRyZWUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAvLyBleHBhbmQgdGhlIHRyZWUgdG8gc2hvdyB0aGUgbm9kZUlkXG4gICAgICAgIGxldCAkY3VycmVudCA9ICR0cmVlLmNoaWxkcmVuKFwiOmZpcnN0XCIpO1xuICAgICAgICBicm93c2VQYXRoLnJlbGF0aXZlUGF0aC5lbGVtZW50cyB8fCBbXTtcbiAgICAgICAgY29uc3Qgbm9kZUlkcyA9IGJyb3dzZVBhdGgubm9kZUlkcyB8fCBbXTtcbiAgICAgICAgaWYgKG5vZGVJZHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBuIG9mIG5vZGVJZHMpIHtcbiAgICAgICAgICAgIGlmICgkY3VycmVudC5oYXNDbGFzcyhcImV4cGFuZGFibGVcIikpIHtcbiAgICAgICAgICAgICAgICAvLyBuZWVkIHRvIGV4cGFuZCBhbmQgc2VsZWN0IHRoZSByaWdodCBlbGVtZW50XG4gICAgICAgICAgICAgICAgeWllbGQgX2V4cGFuZExpKHRoYXQsICRjdXJyZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gZmluZEVsZW1lbnQobiwgJGN1cnJlbnQpO1xuICAgICAgICAgICAgaWYgKCRlbGVtZW50Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICRjdXJyZW50ID0gJGVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgc2VsZWN0U2luZ2xlKHRoYXQsICRjdXJyZW50KTtcbiAgICAgICAgc2Nyb2xsVG9MaSh0aGF0LiRkcm9wZG93biwgJGN1cnJlbnQpO1xuICAgIH0pO1xuICAgIGZ1bmN0aW9uIHNjcm9sbFRvTGkoJGNvbnRhaW5lciwgJHRhcmdldExpKSB7XG4gICAgICAgIC8vIEdldCB0aGUgcG9zaXRpb24gb2YgdGhlIHRhcmdldCBpdGVtIHJlbGF0aXZlIHRvIGl0cyBjb250YWluZXJcbiAgICAgICAgY29uc3QgbGlQb3MgPSAkdGFyZ2V0TGkucG9zaXRpb24oKS50b3A7XG4gICAgICAgIC8vIEdldCB0aGUgY3VycmVudCBzY3JvbGwgcG9zaXRpb24gb2YgdGhlIGNvbnRhaW5lclxuICAgICAgICBjb25zdCBjb250YWluZXJTY3JvbGxUb3AgPSAkY29udGFpbmVyLnNjcm9sbFRvcCgpO1xuICAgICAgICBpZiAoY29udGFpbmVyU2Nyb2xsVG9wID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgcG9zaXRpb24gdG8gc2Nyb2xsIHRvIChjdXJyZW50IHNjcm9sbCArIGl0ZW0ncyBwb3NpdGlvbilcbiAgICAgICAgLy8gQWRqdXN0IHRoaXMgY2FsY3VsYXRpb24gYmFzZWQgb24geW91ciBuZWVkc1xuICAgICAgICBjb25zdCBzY3JvbGxUbyA9IGNvbnRhaW5lclNjcm9sbFRvcCArIGxpUG9zIC0gJGNvbnRhaW5lci5oZWlnaHQoKSAvIDIgKyAkdGFyZ2V0TGkuaGVpZ2h0KCkgLyAyO1xuICAgICAgICAvLyBTY3JvbGwgdGhlIGNvbnRhaW5lciB0byBlbnN1cmUgdGhlIGl0ZW0gaXMgdmlzaWJsZVxuICAgICAgICAkY29udGFpbmVyLmFuaW1hdGUoe1xuICAgICAgICAgICAgc2Nyb2xsVG9wOiBzY3JvbGxUbyxcbiAgICAgICAgfSwgNTAwKTsgLy8gQWRqdXN0IHRoZSBkdXJhdGlvbiAoNTAwbXMpIGFzIG5lZWRlZFxuICAgIH1cbiAgICBjb25zdCByZWFjaFNlbGVjdGlvbiA9ICh0aGF0LCBwYXJlbnROb2RlKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3Qgbm9kZUlkID0gdGhhdC4kaW5wdXQudmFsKCk7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgICAgICBub2RlSWQsXG4gICAgICAgICAgICByb290Tm9kZUlkOiBwYXJlbnROb2RlLm5vZGVJZCxcbiAgICAgICAgICAgIGlzVHlwZTogdGhhdC5vcHRpb25zLmlzVHlwZVJlZiB8fCBmYWxzZSxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgZGF0YSA9IG1ha2VDb25uZWN0aW9uKHRoYXQpO1xuICAgICAgICBjb25zdCBicm93c2VQYXRoID0geWllbGQgd2Fsa0JhY2t3YXJkKGRhdGEsIG9wdGlvbnMpO1xuICAgICAgICBpZiAoIWJyb3dzZVBhdGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB5aWVsZCBhdXRvRXhwYW5kKHRoYXQsIGJyb3dzZVBhdGgsIHRoYXQuJHRyZWUpO1xuICAgIH0pO1xuICAgIGZ1bmN0aW9uIF9mZXRjaERhdGFGb3JOb2RlKHRoYXQsICRub2RlLCBmZXRjaEZ1bmMsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGlmICgkbm9kZS5oYXNDbGFzcyhcImZldGNoZWRcIikpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImFscmVhZHkgZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoJG5vZGUuaGFzQ2xhc3MoXCJsb2FkaW5nXCIpKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhbHJlYWR5IGxvYWRpbmdcIik7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJG5vZGUuYWRkQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICAgICAgJG5vZGUuYXBwZW5kKCc8ZGl2IGNsYXNzPVwic3Bpbm5lclwiPjwvZGl2PicpO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgY29uc3QgeyByZWZlcmVuY2VzIH0gPSB5aWVsZCBmZXRjaEZ1bmMoJG5vZGUsIGRhdGEpO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcmVmZXJlbmNlIG9mIHJlZmVyZW5jZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5maWx0ZXIgJiYgIXRoYXQub3B0aW9ucy5maWx0ZXIocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudChyZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwiZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZChgPGxpPmVycm9yICR7ZXJyLm1lc3NhZ2V9PC9saT5gKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVyclwiLCBlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJG5vZGUuZmluZChcIi5zcGlubmVyXCIpLnJlbW92ZSgpO1xuICAgICAgICAgICAgJG5vZGUucmVtb3ZlQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbWFrZUNvbm5lY3Rpb24odGhhdCkge1xuICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICBlbmRwb2ludE5vZGU6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgZW5kcG9pbnQ6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludCgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50LFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG4gICAgZnVuY3Rpb24gX2V4cGFuZExpKHRoYXQsICRsaSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImZldGNoZWRcIikpIHtcbiAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgY29uc3QgZGF0YSA9IG1ha2VDb25uZWN0aW9uKHRoYXQpO1xuICAgICAgICAgICAgY29uc3QgZiA9ICF0aGF0Lm9wdGlvbnMuaXNUeXBlUmVmID8gZmV0Y2hDaGlsZHJlbiA6IGZldGNoU3VidHlwZXM7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHlpZWxkIF9mZXRjaERhdGFGb3JOb2RlKHRoYXQsICRsaSwgZiwgZGF0YSk7XG4gICAgICAgICAgICAgICAgLy8gbWFyayBhcyBleHBhbmRlZFxuICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJvclwiLCBlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgZGVjbGFyZU5vZGVCcm93c2VyV2lkZ2V0ID0gKCkgPT4ge1xuICAgICAgICAvKipcbiAgICAgICAgICogWyBUZW1wZXJhdHVyZSAgXVxuICAgICAgICAgKiAgICggdG9vbHRpcCA6ICgvT2JqZWN0cy9NeVNlbnNvcikgKG5zPTE7cz1UZW1wZXJhdHVyZSkpXG4gICAgICAgICAqIFsgKyBbRm9sZGVyXSBPYmplY3RzXVxuICAgICAgICAgKiBbICAgICBbT2JqZWN0XSBNeVNlbnNvcl1cbiAgICAgICAgICogWyAgICAgKCApIFtWYXJpYWJsZV0gVGVtcGVyYXR1cmVdXG4gICAgICAgICAqL1xuICAgICAgICAkLndpZGdldChcInN0ZXJmaXZlLm5vZGVCcm93c2VyXCIsIHtcbiAgICAgICAgICAgIC8qIGRlZmF1bHQgb3B0aW9ucyAqL1xuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogKCkgPT4gKHsgZW5kcG9pbnQ6IFwib3BjLnRjcDovL29wY3VhZGVtby5zdGVyZml2ZS5jb206MjY1NDNcIiB9KSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludDogKCkgPT4gdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIHBhcmVudE5vZGU6ICgpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIGJyb3dzZU5hbWU6IHsgbmFtZXNwYWNlSW5kZXg6IDAsIG5hbWU6IFwiT2JqZWN0c1wiIH0sXG4gICAgICAgICAgICAgICAgICAgIG5vZGVDbGFzczogXCJPYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgbm9kZUlkOiBcIm5zPTA7aT04NVwiLFxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogeyB0ZXh0OiBcIk9iamVjdHNcIiB9LFxuICAgICAgICAgICAgICAgICAgICB0eXBlRGVmaW5pdGlvbjogRm9sZGVyVHlwZSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBmaWx0ZXI6ICgpID0+IHRydWUsXG4gICAgICAgICAgICAgICAgYmFzZVVybDogXCJcIixcbiAgICAgICAgICAgICAgICBpc1R5cGVSZWY6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc29sdmVQYXJlbnROb2RlKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoYXQuX19wYXJlbnROb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhID0gdHlwZW9mIHRoYXQub3B0aW9ucy5wYXJlbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZS5jYWxsKHRoYXQpIDogdGhhdC5vcHRpb25zLnBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYSBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkZXNjID0geWllbGQgYTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9fcGFyZW50Tm9kZSA9IGRlc2M7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9fcGFyZW50Tm9kZSA9IGE7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoYXQuX19wYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc2V0KCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICAvLyBhbHNvIHJlc2V0IHBhcmVudCBub2RlXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB0aGF0O1xuICAgICAgICAgICAgICAgICAgICBhLl9fcGFyZW50Tm9kZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnROb2RlID0geWllbGQgdGhpcy5yZXNvbHZlUGFyZW50Tm9kZSgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IG1ha2VFbGVtZW50KHBhcmVudE5vZGUpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuY3VycmVudFBhcmVudCA9IHBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdmVyaWZ5KCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIC8vIEZldGNoIG5ldyBkYXRhIGZvciB0aGlzIG5vZGVcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gbWFrZUNvbm5lY3Rpb24odGhhdCk7XG4gICAgICAgICAgICAgICAgaW50ZXJuYWxWZXJpZnkoZGF0YSwgdGhhdC4kaW5wdXQsIHRoYXQuJGluZm8pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9jcmVhdGUoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQgPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8gPSAkKFwiPGRpdi8+XCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFkZENsYXNzKFwic3RlcmZpdmUtY29tYm8tYm94XCIpO1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5yZXBsYWNlV2l0aCh0aGF0LiRjb21ibyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cCA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJpbnB1dC1ncm91cFwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5wdXRHcm91cCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kaW5wdXQpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtc2l0ZW1hcFwiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiR0b2dnbGVUcmVlQnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmVlZFRvUmVhY2hTZWxlY3Rpb24gPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRkcm9wZG93bi5pcyhcIjp2aXNpYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5mby5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdHJlZSB3aWRnZXQgaXMgZ29pbmcgdG8gYmVjb21lIHZpc2libGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnROb2RlID0geWllbGQgdGhhdC5yZXNvbHZlUGFyZW50Tm9kZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXJlbnROb2RlICE9PSB0aGF0LmN1cnJlbnRQYXJlbnQgfHwgKChfYSA9IHRoYXQuY3VycmVudFBhcmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm5vZGVJZCkgIT09IHBhcmVudE5vZGUubm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHRoYXQucmVzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmVlZFRvUmVhY2hTZWxlY3Rpb24gPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24udG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZWVkVG9SZWFjaFNlbGVjdGlvbiAmJiAoeWllbGQgcmVhY2hTZWxlY3Rpb24odGhhdCwgcGFyZW50Tm9kZSkpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtZmxhc2tcIj48L2k+PC9idXR0b24+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kdmVyaWZ5QnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmVyaWZ5KCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIsIFwiZW50ZXIgYSBub2RlSWQgb3IgYSBicm93c2VQYXRoIFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mbyA9ICQoYDxkaXYgY2xhc3M9XCJpbmZvLXRleHRcIj48L2Rpdj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93biA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJzdGVyZml2ZS1kcm9wZG93blwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGluZm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRkcm9wZG93bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZSA9ICQoYDx1bCBjbGFzcz1cInN0ZXJmaXZlLXRyZWVcIj48L3VsPmApLmFwcGVuZFRvKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNPbkxlZnRTaXplID0gKCRsaSwgZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlV2lkdGggPSAyMDsgLy8gU2V0IHdpZHRoIG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZUhlaWdodCA9IDIwOyAvLyBTZXQgaGVpZ2h0IG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRQb3MgPSAkbGkub2Zmc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGUgPSBldmVudDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGUucGFnZVggPj0gZWxlbWVudFBvcy5sZWZ0ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VYIDw9IGVsZW1lbnRQb3MubGVmdCArIGJlZm9yZVdpZHRoICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZID49IGVsZW1lbnRQb3MudG9wICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZIDw9IGVsZW1lbnRQb3MudG9wICsgYmVmb3JlSGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjb25zdCB0b2dnbGVFeHBhbnNpb24gPSAoJGxpKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRhYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBfZXhwYW5kTGkodGhhdCwgJGxpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVG9nZ2xlIGl0cyBleHBhbmRlZC9jb2xsYXBzZWQgc3RhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5jaGlsZHJlbihcInVsXCIpLmNoaWxkcmVuKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSA7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImRibGNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzT25MZWZ0U2l6ZSgkbGksIGV2ZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlRXhwYW5zaW9uKCRsaSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9ICRsaS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZWZlcmVuY2UgPSAkbGkuZGF0YShcInJlZmVyZW5jZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuaXNTZWxlY3RhYmxlICYmICF0aGF0Lm9wdGlvbnMuaXNTZWxlY3RhYmxlKHJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5kYXRhKFwicmVmZXJlbmNlXCIsIHJlZmVyZW5jZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXNwbGF5TmFtZSA9ICgoX2EgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSB8fCAoKF9iID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnB1dCA9IGBbJHtkaXNwbGF5TmFtZX1dKCR7dmFsdWV9KWA7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC52YWwoaW5wdXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUub24oXCJjbGlja1wiLCBcImxpXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0ICRsaSA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc09uTGVmdFNpemUoJGxpLCBldmVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvZ2dsZUV4cGFuc2lvbigkbGkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdFNpbmdsZSh0aGF0LCAkbGkpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNsaWNraW5nIG91dHNpZGUgdGhlIHBhZ2Ugd2lsbCBoaWRlIHRoZSBkcm9wZG93blxuICAgICAgICAgICAgICAgICAgICBpZiAoISQoZXZlbnQudGFyZ2V0KS5jbG9zZXN0KHRoYXQuJGNvbWJvKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIGNvbnN0IGNoZWNrTm9kZUlkID0gKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCBub2RlSWQpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vY2hlY2tOb2RlSWRgO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBub2RlSWQsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoaW5nIGZhaWxlZCB3aXRoIGVycm9yXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICAgICAgY29uc3QgcmVzID0ge1xuICAgICAgICAgICAgICAgIHN0YXR1c0NvZGU6IFwiQmFkXCIsXG4gICAgICAgICAgICAgICAgbm9kZUFkZHJlc3NTdHJpbmc6IG5vZGVJZCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICB9XG4gICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hlZCA6IFwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgIH0pO1xuXG4gICAgZnVuY3Rpb24gbWFuYWdlQVBJQ2FsbChwcmVmaXgsIGJ0biwgZnVuYywgb25SZXN1bHQpIHtcbiAgICAgICAgY29uc3Qgc3VjY2Vzc0ljb24gPSAkKGAjJHtwcmVmaXh9LXN1Y2Nlc3NgKTtcbiAgICAgICAgY29uc3QgZmFpbHVyZUljb24gPSAkKGAjJHtwcmVmaXh9LWZhaWx1cmVgKTtcbiAgICAgICAgY29uc3QgcGVuZGluZ0ljb24gPSAkKGAjJHtwcmVmaXh9LXBlbmRpbmdgKTtcbiAgICAgICAgY29uc3QgbWVzc2FnZXMgPSAkKGAjJHtwcmVmaXh9LW1lc3NhZ2VzYCk7XG4gICAgICAgIGxldCBhY3Rpb25QZW5kaW5nID0gZmFsc2U7XG4gICAgICAgIHN1Y2Nlc3NJY29uLmhpZGUoKTtcbiAgICAgICAgZmFpbHVyZUljb24uaGlkZSgpO1xuICAgICAgICBwZW5kaW5nSWNvbi5oaWRlKCk7XG4gICAgICAgIGJ0bi5vbihcImNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICAgIGlmIChhY3Rpb25QZW5kaW5nKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGFjdGlvblBlbmRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgcGVuZGluZ0ljb24ucmVtb3ZlQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgcGVuZGluZ0ljb24uaHRtbChcIlRlc3RpbmcgQ29ubmVjdGlvbiAuLi5cIik7XG4gICAgICAgICAgICBzdWNjZXNzSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICBmYWlsdXJlSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICBtZXNzYWdlcy5odG1sKFwiXCIpO1xuICAgICAgICAgICAgY29uc3QgeyBib2R5LCB1cmwgfSA9IGZ1bmMoKTtcbiAgICAgICAgICAgIC8vIHh4IGNvbnNvbGUubG9nKFwieHh4eHhcIiwgYm9keSk7XG4gICAgICAgICAgICBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShib2R5KSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLnRoZW4oKGRhdGEpID0+IGRhdGEuanNvbigpKVxuICAgICAgICAgICAgICAgIC50aGVuKChqc29uKSA9PiB7XG4gICAgICAgICAgICAgICAgYWN0aW9uUGVuZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHBlbmRpbmdJY29uLmhpZGUoKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShqc29uLCBudWxsLCBcIiBcIikpO1xuICAgICAgICAgICAgICAgIGlmIChqc29uLnJlc3VsdCA9PT0gXCJva1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3NJY29uLnJlbW92ZUNsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgZmFpbHVyZUljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlcy5odG1sKGpzb24ubWVzc2FnZS5yZXBsYWNlKFwiXFxuXCIsIFwiPGJyPlwiKSk7XG4gICAgICAgICAgICAgICAgICAgIG9uUmVzdWx0KG51bGwsIGpzb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYWRhcHQgPSAoc3RyKSA9PiAhc3RyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IFwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogc3RyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNwbGl0KFwiXFxuXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1hcCgoYSkgPT4gYDxwPiR7YX08L3A+YClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuam9pbihcIlxcblwiKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYWRhcHQyID0gKHN0cikgPT4gKEFycmF5LmlzQXJyYXkoc3RyKSA/IHN0ci5tYXAoYWRhcHQpLmpvaW4oXCJcXG5cIikgOiBhZGFwdChzdHIpKTtcbiAgICAgICAgICAgICAgICAgICAgc3VjY2Vzc0ljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgICAgICBmYWlsdXJlSWNvbi5yZW1vdmVDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VzLmh0bWwoYWRhcHQyKGpzb24ubWVzc2FnZSkgKyBhZGFwdDIoanNvbi5leHRyYSkpO1xuICAgICAgICAgICAgICAgICAgICBvblJlc3VsdChuZXcgRXJyb3IoanNvbi5yZXN1bHQpLCBqc29uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgYWN0aW9uUGVuZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHBlbmRpbmdJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICBzdWNjZXNzSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgZmFpbHVyZUljb24ucmVtb3ZlQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgIG1lc3NhZ2VzLmh0bWwoXCJpbnRlcm5hbCBlcnJvciBcIiArIGVyci5tZXNzYWdlKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVyclwiLCBlcnIpO1xuICAgICAgICAgICAgICAgIG9uUmVzdWx0KGVyciwgbnVsbCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzID0gKCkgPT4ge1xuICAgICAgICBjb25zdCAkZW5kcG9pbnQgPSAkKFwiI25vZGUtaW5wdXQtZW5kcG9pbnRcIik7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50SWQgPSAkZW5kcG9pbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IHJlZE5vZGUgPSBSRUQubm9kZXMubm9kZShlbmRwb2ludElkKTtcbiAgICAgICAgaWYgKCFyZWROb2RlKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgLy8gY29uc3QgY3JlZGVudGlhbHMgPSBSRUQuKGVuZHBvaW50SWQpO1xuICAgICAgICAvLyB3ZSBuZWVkIHRvIHNhbml0aXplIGFuZCBleHRyYWN0IHRoZSBlbmRwb2ludCBhdHRyaWJ1dGVzIG9ubHkgKCBub3QgdGhlIG5vZGUtcmVkIHN0dWZmKVxuICAgICAgICBjb25zdCB7IGVuZHBvaW50LCBzZWN1cml0eU1vZGUsIHNlY3VyaXR5UG9saWN5LCB1c2VySWRlbnRpdHlUeXBlLCBjcmVkZW50aWFscyB9ID0gcmVkTm9kZTtcbiAgICAgICAgY29uc3QgcmV0VmFsdWUgPSB7XG4gICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgIHNlY3VyaXR5TW9kZSxcbiAgICAgICAgICAgIHNlY3VyaXR5UG9saWN5LFxuICAgICAgICAgICAgdXNlcklkZW50aXR5VHlwZSxcbiAgICAgICAgICAgIGNyZWRlbnRpYWxzLFxuICAgICAgICB9O1xuICAgICAgICAvLyB4eCBjb25zb2xlLmxvZyhcInh4eFwiLCByZXRWYWx1ZSk7XG4gICAgICAgIHJldHVybiByZXRWYWx1ZTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlbmRwb2ludE5vZGU6IGdldEVuZHBvaW50UGFyYW1ldGVycyxcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVycyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCBlbmRwb2ludElkID0gJGVuZHBvaW50LnZhbCgpO1xuICAgICAgICBjb25zdCBlbmRwb2ludE5yID0gZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzKCk7XG4gICAgICAgIGlmICghZW5kcG9pbnROcikge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaWQ6IGVuZHBvaW50SWQsXG4gICAgICAgICAgICAvLyBlbmRwb2ludDogZW5kcG9pbnROci5lbmRwb2ludCxcbiAgICAgICAgICAgIC8vIHNlY3VyaXR5TW9kZTogZW5kcG9pbnROci5zZWN1cml0eU1vZGUsXG4gICAgICAgICAgICAvLyBzZWN1cml0eVBvbGljeTogZW5kcG9pbnROci5zZWN1cml0eVBvbGljeSxcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAvLyB1c2VySWRlbnRpdHlUeXBlOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUsXG4gICAgICAgICAgICAvLyBjcmVkZW50aWFsOiBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLFxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIHVzZXJOYW1lOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUgPT09IFwiVXNlck5hbWVcIiA/IGVuZHBvaW50TnIuY3JlZGVudGlhbHMudXNlck5hbWUgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAvLyBwYXNzd29yZDogZW5kcG9pbnROci51c2VySWRlbnRpdHlUeXBlID09PSBcIlVzZXJOYW1lXCIgPyBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLnBhc3N3b3JkIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgLy8gdXNlckNlcnRpZmljYXRlOiBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLnVzZXJDZXJ0aWZpY2F0ZSxcbiAgICAgICAgICAgIC8vIHVzZXJQcml2YXRla2V5OiBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLnVzZXJQcml2YXRla2V5LFxuICAgICAgICB9O1xuICAgIH07XG5cbiAgICBSRUQubm9kZXMucmVnaXN0ZXJUeXBlKFwiT3BjVWEtQ2xpZW50Mi1DYWxsXCIsIHtcbiAgICAgICAgY2F0ZWdvcnk6IFwib3BjdWFcIixcbiAgICAgICAgY29sb3I6IFwiI0MwREVFRFwiLFxuICAgICAgICBhbGlnbjogXCJyaWdodFwiLFxuICAgICAgICBpY29uOiBcIi4uLy4uL2ljb25zL29wY3Vhbm9kZUxvZ28ucG5nXCIsXG4gICAgICAgIHBhbGV0dGVMYWJlbDogXCJjYWxsXCIsXG4gICAgICAgIGRlZmF1bHRzOiB7XG4gICAgICAgICAgICBpbnB1dHM6IHsgdmFsdWU6IDEgfSxcbiAgICAgICAgICAgIG91dHB1dDogeyB2YWx1ZTogNCB9LFxuICAgICAgICAgICAgLy8gQ29tbW9uXG4gICAgICAgICAgICBuYW1lOiB7IHZhbHVlOiBcIlwiIH0sXG4gICAgICAgICAgICBlbmRwb2ludDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IHRydWUsIHR5cGU6IFwiT3BjVWEtRW5kcG9pbnQyXCIgfSxcbiAgICAgICAgICAgIGFjdGlvbjogeyB2YWx1ZTogXCJyZWFkXCIsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICAvLyBmb3IgYWN0aW9uIGNhbGxcbiAgICAgICAgICAgIG1ldGhvZElkOiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgb2JqZWN0SWQ6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgIH0sXG4gICAgICAgIC8vIGlucHV0czosXG4gICAgICAgIG91dHB1dHM6IDIsIC8vIDIgb3V0cHV0LCBzZWNvbmQgZm9yIHJhdyBub2RlLW9wY3VhIGRpYWdub3N0aWNzIG9yIG1vcmUgY29tcGxldGUgbWVzc2FnZVxuICAgICAgICBsYWJlbCgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgfHwgXCJPUENVQS1DYWxsXCI7XG4gICAgICAgIH0sXG4gICAgICAgIGxhYmVsU3R5bGUoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uYW1lID8gXCJub2RlX2xhYmVsX2l0YWxpY1wiIDogXCJcIjtcbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0cHJlcGFyZSgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzO1xuICAgICAgICAgICAgZGVjbGFyZU5vZGVCcm93c2VyV2lkZ2V0KCk7XG4gICAgICAgICAgICBub2RlLmlucHV0cyA9IDE7XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gaGFuZGxlIFNlY3Rpb24gQ2FsbFxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIGxldCBkYXRhVHlwZXMgPSB7fTtcbiAgICAgICAgICAgIC8vIHRvIGRvIGFkZCBhIHR5cGVzY3JpcHQgZGVmaW5pdGlvbiBmb3IgdGhpc1xuICAgICAgICAgICAgY29uc3QgJG9iamVjdElkID0gJChcIiNub2RlLWlucHV0LW9iamVjdElkXCIpO1xuICAgICAgICAgICAgY29uc3QgJG1ldGhvZElkID0gJChcIiNub2RlLWlucHV0LW1ldGhvZElkXCIpO1xuICAgICAgICAgICAgY29uc3QgJGlucHV0QXJndW1lbnREZWZpbml0aW9uID0gJChcIiNtZXRob2QtaW5wdXQtYXJndW1lbnQtZGVmaW5pdGlvblwiKTtcbiAgICAgICAgICAgIGNvbnN0ICRvdXRwdXRBcmd1bWVudERlZmluaXRpb24gPSAkKFwiI21ldGhvZC1vdXRwdXQtYXJndW1lbnQtZGVmaW5pdGlvblwiKTtcbiAgICAgICAgICAgIGNvbnN0ICR2YWxpZGF0ZUJ0biA9ICQoXCIjdmFsaWRhdGUtY2FsbC1hcmd1bWVudHMtYnV0dG9uXCIpO1xuICAgICAgICAgICAgJG9iamVjdElkLm5vZGVCcm93c2VyKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlcigpKSwgeyBmaWx0ZXIobm9kZURlc2MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJPYmplY3RcIjtcbiAgICAgICAgICAgICAgICB9IH0pKTtcbiAgICAgICAgICAgICRtZXRob2RJZC5ub2RlQnJvd3NlcihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIoKSksIHsgcGFyZW50Tm9kZTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IG1ha2VDb25uZWN0aW9uKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gbmVlZCB0byByZXN5bmMgd2l0aCB3aGF0J3MgaW4gICNub2RlLWlucHV0LW9iamVjdElkXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcmVmZXJlbmNlID0gJG9iamVjdElkLmRhdGEoXCJyZWZlcmVuY2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXJlZmVyZW5jZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5vZGVJZEV4ID0gJG9iamVjdElkLnZhbCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVuZHBvaW50Tm9kZSA9IGdldEVuZFBvaW50QXR0cmlidXRlcygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZW5kcG9pbnROb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByID0geWllbGQgY2hlY2tOb2RlSWQoZGF0YSwgbm9kZUlkRXgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZlcmVuY2UgPSByLnJlZmVyZW5jZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZWZlcmVuY2U7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0sIGZpbHRlcihub2RlRGVzYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIk1ldGhvZFwiIHx8IG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJPYmplY3RcIjtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGlzU2VsZWN0YWJsZShub2RlRGVzYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIk1ldGhvZFwiO1xuICAgICAgICAgICAgICAgIH0gfSkpO1xuICAgICAgICAgICAgJG9iamVjdElkLm9uKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAkbWV0aG9kSWQubm9kZUJyb3dzZXIoXCJyZXNldFwiKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZnVuY3Rpb24gYWRkQXJndW1lbnRDdHJsKGNvbnRhaW5lciwgaW5kZXgsIGFyZykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSAkKCc8ZGl2IGNsYXNzPVwiYXJndW1lbnQtZW50cnlcIj4nKS5hcHBlbmRUbyhjb250YWluZXIpO1xuICAgICAgICAgICAgICAgIC8vIGNvbnRhaW5lci5kYXRhKFwiZGF0YVwiLCBhcmcpO1xuICAgICAgICAgICAgICAgICQoJzxpbnB1dCB0eXBlPVwidGV4dFwiPicpXG4gICAgICAgICAgICAgICAgICAgIC52YWwoYXJnLm5hbWUgfHwgXCJcIilcbiAgICAgICAgICAgICAgICAgICAgLmNzcyh7IHdpZHRoOiBcIjEwMCVcIiB9KVxuICAgICAgICAgICAgICAgICAgICAuYXBwZW5kVG8oaXRlbSk7XG4gICAgICAgICAgICAgICAgY29uc3QgZCA9IGRhdGFUeXBlc1thcmcuZGF0YVR5cGUudG9TdHJpbmcoKV07XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YVR5cGVOID0gKGQgPyBkLmJyb3dzZU5hbWUubmFtZSB8fCBcIlwiIDogYXJnLmRhdGFUeXBlLnRvU3RyaW5nKCkpICsgKGFyZy52YWx1ZVJhbmsgPT09IDEgPyBcIltdXCIgOiBcIlwiKTtcbiAgICAgICAgICAgICAgICAkKCc8aW5wdXQgdHlwZT1cInRleHRcIj4nKVxuICAgICAgICAgICAgICAgICAgICAudmFsKGFyZy5kZXNjcmlwdGlvbi50ZXh0IHx8IFwiXCIpXG4gICAgICAgICAgICAgICAgICAgIC5jc3MoeyB3aWR0aDogXCI1MCVcIiB9KVxuICAgICAgICAgICAgICAgICAgICAuYXBwZW5kVG8oaXRlbSk7XG4gICAgICAgICAgICAgICAgJCgnPGlucHV0IHR5cGU9XCJ0ZXh0XCI+JylcbiAgICAgICAgICAgICAgICAgICAgLnZhbChkYXRhVHlwZU4gfHwgXCJcIilcbiAgICAgICAgICAgICAgICAgICAgLmNzcyh7IHdpZHRoOiBcIjUwJVwiIH0pXG4gICAgICAgICAgICAgICAgICAgIC5hcHBlbmRUbyhpdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICRpbnB1dEFyZ3VtZW50RGVmaW5pdGlvbi5lZGl0YWJsZUxpc3Qoe1xuICAgICAgICAgICAgICAgIGFkZEJ1dHRvbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBcImF1dG9cIixcbiAgICAgICAgICAgICAgICBzY3JvbGxPbkFkZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgYWRkSXRlbShjb250YWluZXIsIGksIG9iamVjdCkge1xuICAgICAgICAgICAgICAgICAgICBhZGRBcmd1bWVudEN0cmwoY29udGFpbmVyLCBpLCBvYmplY3QpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICRvdXRwdXRBcmd1bWVudERlZmluaXRpb24uZWRpdGFibGVMaXN0KHtcbiAgICAgICAgICAgICAgICBhZGRCdXR0b246IGZhbHNlLFxuICAgICAgICAgICAgICAgIGhlaWdodDogXCJhdXRvXCIsXG4gICAgICAgICAgICAgICAgc2Nyb2xsT25BZGQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGFkZEl0ZW0oY29udGFpbmVyLCBpLCBvYmplY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgYWRkQXJndW1lbnRDdHJsKGNvbnRhaW5lciwgaSwgb2JqZWN0KTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBmdW5jdGlvbiBpbnN0YWxsQXJndW1lbnRMaXN0KGxpc3QsIG1ldGhvZEFyZ3VtZW50cykge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiaW5zdGFsbEFyZ3VtZW50TGlzdFwiLCBtZXRob2RBcmd1bWVudHMubGVuZ3RoLCBcImFyZ3VtZW50c1wiLCBtZXRob2RBcmd1bWVudHMpO1xuICAgICAgICAgICAgICAgIGxpc3QuZWRpdGFibGVMaXN0KFwiZW1wdHlcIik7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtZXRob2RBcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgbGlzdC5lZGl0YWJsZUxpc3QoXCJhZGRJdGVtXCIsIG1ldGhvZEFyZ3VtZW50c1tpXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJGlucHV0QXJndW1lbnREZWZpbml0aW9uLmhpZGUoKTtcbiAgICAgICAgICAgICRvdXRwdXRBcmd1bWVudERlZmluaXRpb24uaGlkZSgpO1xuICAgICAgICAgICAgbGV0IGlucHV0QXNKc29uID0ge307XG4gICAgICAgICAgICBjb25zdCAkY29weUlucHV0ID0gJChcIiNjb3B5LWlucHV0XCIpO1xuICAgICAgICAgICAgJGNvcHlJbnB1dC5oaWRlKCk7XG4gICAgICAgICAgICAkY29weUlucHV0Lm9uKFwiY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIENvcHkgdGhlIHRleHQgaW5zaWRlIHRoZSB0ZXh0IGZpZWxkXG4gICAgICAgICAgICAgICAgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoSlNPTi5zdHJpbmdpZnkoaW5wdXRBc0pzb24pKTtcbiAgICAgICAgICAgICAgICAvLyBhbGVydChKU09OLnN0cmluZ2lmeShpbnB1dEFzSnNvbikgKyBcIiBjb3BpZWQgdG8gY2xpcGJvYXJkXCIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBtYW5hZ2VBUElDYWxsKFwidmFsaWRhdGVcIiwgJHZhbGlkYXRlQnRuLCAoKSA9PiAoe1xuICAgICAgICAgICAgICAgIHVybDogXCIvb3BjdWEtZW5kcG9pbnQyL2FyZ3VtZW50RGVmaW5pdGlvblwiLFxuICAgICAgICAgICAgICAgIGJvZHk6IHtcbiAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiBnZXRFbmRwb2ludFBhcmFtZXRlcnMoKSxcbiAgICAgICAgICAgICAgICAgICAgb2JqZWN0SWQ6ICRvYmplY3RJZC52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgbWV0aG9kSWQ6ICRtZXRob2RJZC52YWwoKSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSksIChlcnIsIGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gcG9wdWxhdGUgdGhlIGxpc3RcbiAgICAgICAgICAgICAgICBjb25zdCBhcmd1bWVudERlZmluaXRpb24gPSBkYXRhLmFyZ3VtZW50RGVmaW5pdGlvbjtcbiAgICAgICAgICAgICAgICBkYXRhVHlwZXMgPSBkYXRhLmRhdGFUeXBlcztcbiAgICAgICAgICAgICAgICAkaW5wdXRBcmd1bWVudERlZmluaXRpb24uc2hvdygpO1xuICAgICAgICAgICAgICAgICRvdXRwdXRBcmd1bWVudERlZmluaXRpb24uc2hvdygpO1xuICAgICAgICAgICAgICAgIGluc3RhbGxBcmd1bWVudExpc3QoJGlucHV0QXJndW1lbnREZWZpbml0aW9uLCBhcmd1bWVudERlZmluaXRpb24uaW5wdXRBcmd1bWVudHMpO1xuICAgICAgICAgICAgICAgIGluc3RhbGxBcmd1bWVudExpc3QoJG91dHB1dEFyZ3VtZW50RGVmaW5pdGlvbiwgYXJndW1lbnREZWZpbml0aW9uLm91dHB1dEFyZ3VtZW50cyk7XG4gICAgICAgICAgICAgICAgaW5wdXRBc0pzb24gPSBkYXRhLmlucHV0QXJndW1lbnRzRXhhbXBsZUFzSnNvbiB8fCB7fTtcbiAgICAgICAgICAgICAgICAkY29weUlucHV0LnNob3coKTtcbiAgICAgICAgICAgICAgICBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChKU09OLnN0cmluZ2lmeShpbnB1dEFzSnNvbikpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiSlNPTlwiLCBKU09OLnN0cmluZ2lmeShpbnB1dEFzSnNvbikpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZGF0YVwiLCBkYXRhKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRzYXZlKCkgeyB9LFxuICAgIH0pO1xuXG59KSgpOyJdfQ==
|
9
9
|
</script>
|
10
10
|
<script type="text/x-red" data-template-name="OpcUa-Client2-Call">
|
11
11
|
<div class="form-row">
|