@opcua/for-node-red 2.2.0 → 2.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/all.js +1 -1
- package/package.json +1 -1
- package/source/OpcUa-Client2-Browse/OpcUa-Client2-Browse.html +2 -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-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 _0x4424(_0x8a3f5c,_0x52c410){const _0x3abb7c=_0x3abb();return _0x4424=function(_0x442440,_0x3c1c29){_0x442440=_0x442440-0x92;let _0x14ad63=_0x3abb7c[_0x442440];return _0x14ad63;},_0x4424(_0x8a3f5c,_0x52c410);}function _0x3abb(){const _0x5b65c7=['enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','events','verify','filter','span.custom-checkbox.checked','Variable','then','reset','SandyBrown','<div/>','.spinner','registerType','#C0DEED','checked','stopPropagation','sterfive.eventFieldSelector','View','fa-folder','<div\x20class=\x22spinner\x22></div>','catch','inputs','_updateValues','error','SeaGreen','#node-input-nodeId','data','endpointNode','show','TypeDefinition','$info','/extractEventTypes','$tree','$input','references','fetched','has','expandable','Method','parentElement','Both','target','element','pageY','toggleClass','fa-sliders','sterfive.nodeBrowser','$inputGroup','val','DarkOrange','</li>','OpcUa-Endpoint2','Unspecified','.sterfive-tree\x20li','<li>','fetched\x20:\x20','1541631GzlTbY','resolveParentNode','<div\x20class=\x22floating-buttons\x22></div>','8BcYOns','children','<li><i\x20class=\x22fa\x20','input-group','css','HasTypeDefinition','data-value','<span\x20class=\x22cancel-button\x22>✖</span>','statusCode','loading','currentParent','<option/>','class','UserName','DodgerBlue','top','grey','placeholder','_populate','$combo','SuppressedError','match',';\x22></i>','/opcua-endpoint2','<i\x20class=\x22fa\x20','#node-input-startImmediately','typeDefinition',':visible','<span\x20class=\x22validate-button\x22>✔</span>','no-expandable','i=61','HasChild','Objects','endpoint','securityMode','browseName','reference','IsForward','namespaceIndex','json','next','<li>error\x20','ns=0;i=46','each','status','nodeAddressString','toggle','1410200QZifnN','_updateSelectedFields','_installTree','unchecked','userIdentityType','nodes','<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','length','options','124zuhaYV','fa-object-group','POST','log','hide','opcualogobig.png','DataType','node_label_italic','replaceWith','sterfive-combo-box','subscriptions','20KpnzVV','clicked\x20on\x20','suppressed','nodeClass','fa-cog','left','opc.tcp://opcuademo.sterfive.com:26543','referenceTypeId','px)','Organizes','split','Inverse','appendTo','_installChildren','monitor\x20events','replaceChild','throw','295682ZchdtE','isTypeRef','ReferenceType','offset','sterfive-info','already\x20loading','HasComponent','clicked\x20on\x20icon','append','assign','OPCUA\x20Monitor','#node-input-inputs','Forward','BrowseName','name','change','nodeBrowser','ns=0;i=85','right','err','already\x20fetched','!!failure!!','1HIKZOJ','hasClass','trigger','<span\x20class=\x22custom-checkbox\x20unchecked\x22></span>','<ul\x20class=\x22sterfive-tree\x22></ul>','message','NodeClass','pageX','baseUrl','application/json','\x22\x20style=\x22color:','isSelectable','value','SteelBlue','subTypes','statusText','HasSubtype','<ul></ul>','<div\x20class=\x22info-text\x22></div>','subscription','displayName','VariableType','11625cMgBuO','attr','ObjectType','/browse','join','ns=0;i=34','securityPolicy','$dropdown','Good','Invalid','browseResult','nodeId','568854wnEIrD','closest','HasProperty','fetching\x20failed\x20with\x20error',';\x22></i>\x20','expandable\x20expanded','1292654hsxein','stringify','ns=0;i=45','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','#node-input-selectClauses','function','$toggleTreeBtn','/checkNodeId','#node-input-endpoint','DisplayName','sterfive-dropdown','Object','find','empty','10110FPdXbc','eventFieldSelector','parentNode','expanded','span.custom-checkbox','toString','width','prop','push','node','click','#node-input-subscription','addClass','node-input-startImmediately','userCertificate','removeClass','done'];_0x3abb=function(){return _0x5b65c7;};return _0x3abb();}(function(_0x1084dd,_0x241e70){const _0x4c551f=_0x4424,_0x3b38a5=_0x1084dd();while(!![]){try{const _0x365be6=parseInt(_0x4c551f(0x99))/0x1*(-parseInt(_0x4c551f(0x16e))/0x2)+-parseInt(_0x4c551f(0xaf))/0x3*(-parseInt(_0x4c551f(0x152))/0x4)+-parseInt(_0x4c551f(0x15d))/0x5*(parseInt(_0x4c551f(0xcf))/0x6)+parseInt(_0x4c551f(0x117))/0x7*(parseInt(_0x4c551f(0x11a))/0x8)+-parseInt(_0x4c551f(0xbb))/0x9+parseInt(_0x4c551f(0x149))/0xa+-parseInt(_0x4c551f(0xc1))/0xb;if(_0x365be6===_0x241e70)break;else _0x3b38a5['push'](_0x3b38a5['shift']());}catch(_0x1cade1){_0x3b38a5['push'](_0x3b38a5['shift']());}}}(_0x3abb,0x23a9d),(function(){'use strict';const _0x5567cc=_0x4424;function _0x24aa7e(_0x386a63,_0x20f709){const _0x1570d3=_0x4424,_0x1ac231=$(_0x1570d3(0xc9)),_0x533cf8=$(_0x1570d3(0xda)),_0x5113d2=()=>{const _0x47ffcc=_0x1570d3,_0x2f361d=_0x386a63['nodes'][_0x47ffcc(0xd8)](_0x1ac231['val']());_0x533cf8[_0x47ffcc(0xce)]();if(!_0x2f361d||!_0x2f361d['subscriptions'])return;if(_0x2f361d[_0x47ffcc(0x15c)])for(const _0x1afd98 of _0x2f361d[_0x47ffcc(0x15c)]){const _0x371251=_0x1afd98[_0x47ffcc(0x17c)]||_0x1afd98['id'];$(_0x47ffcc(0x125),{'value':_0x1afd98['id'],'label':_0x371251,'selected':_0x1afd98['id']===_0x20f709[_0x47ffcc(0xac)]})['text'](_0x371251)[_0x47ffcc(0x169)](_0x533cf8);}};_0x5113d2(),_0x533cf8['on']('focus\x20click',()=>{_0x5113d2();}),_0x1ac231['on']('change',()=>{_0x5113d2();});}function _0x13600b(_0x3b2a7e,_0x1a7fb9,_0x10bc95,_0x286235){function _0x4b9559(_0x16279b){return _0x16279b instanceof _0x10bc95?_0x16279b:new _0x10bc95(function(_0x59f18a){_0x59f18a(_0x16279b);});}return new(_0x10bc95||(_0x10bc95=Promise))(function(_0x315f4e,_0x3e4a63){const _0x6e5b3d=_0x4424;function _0x35c430(_0x583c2c){const _0x182c99=_0x4424;try{_0x2193af(_0x286235[_0x182c99(0x142)](_0x583c2c));}catch(_0x5b5c6b){_0x3e4a63(_0x5b5c6b);}}function _0xf6db03(_0x5e63f3){const _0x37634d=_0x4424;try{_0x2193af(_0x286235[_0x37634d(0x16d)](_0x5e63f3));}catch(_0x4f98e1){_0x3e4a63(_0x4f98e1);}}function _0x2193af(_0x3d87ec){const _0x6cc7a3=_0x4424;_0x3d87ec[_0x6cc7a3(0xdf)]?_0x315f4e(_0x3d87ec[_0x6cc7a3(0xa5)]):_0x4b9559(_0x3d87ec[_0x6cc7a3(0xa5)])[_0x6cc7a3(0xe6)](_0x35c430,_0xf6db03);}_0x2193af((_0x286235=_0x286235['apply'](_0x3b2a7e,_0x1a7fb9||[]))[_0x6e5b3d(0x142)]());});}typeof SuppressedError===_0x5567cc(0xc6)?SuppressedError:function(_0x2dc190,_0x547ad4,_0x1907de){const _0x2a2a30=_0x5567cc;var _0x3a5d76=new Error(_0x1907de);return _0x3a5d76[_0x2a2a30(0x17c)]=_0x2a2a30(0x12e),_0x3a5d76['error']=_0x2dc190,_0x3a5d76[_0x2a2a30(0x15f)]=_0x547ad4,_0x3a5d76;};const _0xe19d5f='ns=0;i=35',_0x577b41='ns=0;i=61',_0x5274f0='ns=0;i=47',_0xe6bf87=_0x5567cc(0x144),_0xdece93=_0x5567cc(0xb4),_0x5afba4=_0x5567cc(0xc3),_0x236906='ns=0;i=40';var _0x7067fe;(function(_0x263abf){const _0x3e140f=_0x5567cc;_0x263abf[_0x263abf[_0x3e140f(0x17a)]=0x0]=_0x3e140f(0x17a),_0x263abf[_0x263abf[_0x3e140f(0x168)]=0x1]='Inverse',_0x263abf[_0x263abf[_0x3e140f(0x107)]=0x2]=_0x3e140f(0x107),_0x263abf[_0x263abf['Invalid']=0x3]=_0x3e140f(0xb8);}(_0x7067fe||(_0x7067fe={})));var _0x235bfd;(function(_0x3f0685){const _0x302da1=_0x5567cc;_0x3f0685[_0x3f0685[_0x302da1(0x113)]=0x0]=_0x302da1(0x113),_0x3f0685[_0x3f0685[_0x302da1(0xcc)]=0x1]=_0x302da1(0xcc),_0x3f0685[_0x3f0685['Variable']=0x2]=_0x302da1(0xe5),_0x3f0685[_0x3f0685[_0x302da1(0x105)]=0x4]=_0x302da1(0x105),_0x3f0685[_0x3f0685[_0x302da1(0xb1)]=0x8]=_0x302da1(0xb1),_0x3f0685[_0x3f0685[_0x302da1(0xae)]=0x10]=_0x302da1(0xae),_0x3f0685[_0x3f0685[_0x302da1(0x170)]=0x20]=_0x302da1(0x170),_0x3f0685[_0x3f0685[_0x302da1(0x158)]=0x40]=_0x302da1(0x158),_0x3f0685[_0x3f0685[_0x302da1(0xf0)]=0x80]=_0x302da1(0xf0);}(_0x235bfd||(_0x235bfd={})));var _0x55af64;(function(_0x412d47){const _0x5bf3e5=_0x5567cc;_0x412d47[_0x412d47[_0x5bf3e5(0xcc)]=0x1]=_0x5bf3e5(0xcc),_0x412d47[_0x412d47[_0x5bf3e5(0xe5)]=0x2]=_0x5bf3e5(0xe5),_0x412d47[_0x412d47[_0x5bf3e5(0x105)]=0x4]='Method',_0x412d47[_0x412d47[_0x5bf3e5(0xb1)]=0x8]=_0x5bf3e5(0xb1),_0x412d47[_0x412d47[_0x5bf3e5(0xae)]=0x10]=_0x5bf3e5(0xae),_0x412d47[_0x412d47['ReferenceType']=0x20]=_0x5bf3e5(0x170),_0x412d47[_0x412d47[_0x5bf3e5(0x158)]=0x40]=_0x5bf3e5(0x158),_0x412d47[_0x412d47[_0x5bf3e5(0xf0)]=0x80]='View';}(_0x55af64||(_0x55af64={})));var _0x386504;(function(_0x103964){const _0x2e6c4a=_0x5567cc;_0x103964[_0x103964[_0x2e6c4a(0x170)]=0x1]=_0x2e6c4a(0x170),_0x103964[_0x103964[_0x2e6c4a(0x13f)]=0x2]='IsForward',_0x103964[_0x103964[_0x2e6c4a(0x9f)]=0x4]=_0x2e6c4a(0x9f),_0x103964[_0x103964['BrowseName']=0x8]=_0x2e6c4a(0x17b),_0x103964[_0x103964[_0x2e6c4a(0xca)]=0x10]=_0x2e6c4a(0xca),_0x103964[_0x103964['TypeDefinition']=0x20]=_0x2e6c4a(0xfc);}(_0x386504||(_0x386504={})));function _0x38585a(_0x452fbe){const _0x26fdb1=_0x5567cc;switch(_0x452fbe){case'Organizes':return _0xe19d5f;case _0x26fdb1(0xbd):return _0xe6bf87;case _0x26fdb1(0x174):return _0x5274f0;case _0x26fdb1(0x139):return _0xdece93;case _0x26fdb1(0xa9):return _0x5afba4;case _0x26fdb1(0x11f):return _0x236906;}}const _0x1581a3=_0x34054a=>{const _0x28164c=_0x5567cc;switch(_0x34054a[_0x28164c(0x160)]){case _0x28164c(0xcc):if(_0x34054a[_0x28164c(0x164)]===_0xe19d5f);if(_0x34054a[_0x28164c(0x134)]===_0x577b41||_0x34054a[_0x28164c(0x164)]===_0x28164c(0x138))return{'icon':_0x28164c(0xf1),'color':'rgba(61,\x2060,\x204,\x200.525)'};return{'icon':'fa-object-group','color':_0x28164c(0xf7)};case'Variable':if(_0x34054a[_0x28164c(0x164)]===_0x5274f0)return{'icon':'fa-list-alt','color':_0x28164c(0xa6)};else return _0x34054a[_0x28164c(0x164)]===_0xe6bf87?{'icon':'fa-list-alt','color':_0x28164c(0x128)}:{'icon':'fa-list-alt','color':'CadetBlue'};case _0x28164c(0x105):return{'icon':_0x28164c(0x161),'color':_0x28164c(0xe8)};case _0x28164c(0xb1):return{'icon':_0x28164c(0x153),'color':_0x28164c(0x110)};case'VariableType':return{'icon':_0x28164c(0x10c),'color':_0x28164c(0x110)};}return{'icon':'fa-question','color':_0x28164c(0x12a)};},_0x443344=({endpointNode:_0x63d2de,endpoint:_0x5505cc,baseUrl:_0x4d53ac},_0x5b4340,_0x31e526)=>_0x13600b(void 0x0,void 0x0,void 0x0,function*(){const _0x42bbbe=_0x5567cc,_0x3e08fc=_0x4d53ac+'/opcua-endpoint2',_0x4ab3ba=_0x3e08fc+_0x42bbbe(0xb2),_0x4c6e3b=Object[_0x42bbbe(0x177)](Object['assign']({},_0x31e526),{'nodeId':_0x5b4340,'resultMask':0x3f}),_0x3ad873=yield fetch(_0x4ab3ba,{'method':_0x42bbbe(0x154),'body':JSON['stringify']({'endpointNode':_0x63d2de,'endpoint':_0x5505cc,'browseDescription':_0x4c6e3b}),'headers':{'Content-Type':_0x42bbbe(0xa2)}});if(_0x3ad873[_0x42bbbe(0x146)]!==0xc8)return console[_0x42bbbe(0x155)]('fetching\x20failed\x20with\x20error',_0x3ad873[_0x42bbbe(0x146)],_0x3ad873['statusText']),{'references':[]};console[_0x42bbbe(0x155)]('fetched\x20:\x20',_0x3ad873[_0x42bbbe(0x146)],_0x3ad873[_0x42bbbe(0xa8)]);const _0x291ebc=yield _0x3ad873['json'](),_0x3e7d31=_0x291ebc[_0x42bbbe(0xb9)][_0x42bbbe(0x101)]||[];return{'references':_0x3e7d31};}),_0x539f9b={'referenceTypeId':_0x38585a(_0x5567cc(0x139)),'includeSubtypes':!![],'browseDirection':_0x7067fe[_0x5567cc(0x17a)],'nodeClassMask':_0x235bfd[_0x5567cc(0xe5)]|_0x235bfd[_0x5567cc(0xcc)]|_0x235bfd[_0x5567cc(0x105)],'resultMask':0x3f},_0x32679d={'referenceTypeId':_0x38585a(_0x5567cc(0x166)),'includeSubtypes':!![],'browseDirection':_0x7067fe[_0x5567cc(0x17a)],'nodeClassMask':_0x235bfd[_0x5567cc(0xe5)]|_0x235bfd[_0x5567cc(0xcc)]|_0x235bfd[_0x5567cc(0x105)],'resultMask':0x3f},_0x4eb650=({endpointNode:_0x20c2d0,endpoint:_0x2bf80b,baseUrl:_0x5c0748},_0x1dfa61,_0x24b8bc)=>_0x13600b(void 0x0,void 0x0,void 0x0,function*(){const _0x12c8aa=_0x5567cc,_0x539306=_0x5c0748+_0x12c8aa(0x131),_0x17cd3f=_0x1dfa61[_0x12c8aa(0x10f)](),_0x23e409=yield fetch(_0x539306+_0x12c8aa(0xc8),{'method':_0x12c8aa(0x154),'body':JSON['stringify']({'endpointNode':_0x20c2d0,'endpoint':_0x2bf80b,'nodeId':_0x17cd3f}),'headers':{'Content-Type':_0x12c8aa(0xa2)}}),_0x3e34d0=(_0x17edb8,_0x1cf85d)=>{const _0x211a4d=_0x12c8aa;_0x24b8bc['text'](_0x17edb8)[_0x211a4d(0xdb)](_0x211a4d(0x172))[_0x211a4d(0xdb)](_0x1cf85d),_0x24b8bc[_0x211a4d(0xfb)](),setTimeout(()=>{const _0x35f72b=_0x211a4d;_0x24b8bc[_0x35f72b(0xde)](_0x1cf85d),_0x24b8bc[_0x35f72b(0x156)]();},0xbb8);},_0xdc5132=yield _0x23e409[_0x12c8aa(0x141)]();_0x23e409[_0x12c8aa(0x146)]!==0xc8?_0x3e34d0(_0x12c8aa(0x98)+_0x17cd3f,'failure'):_0xdc5132[_0x12c8aa(0x122)][_0x12c8aa(0x12f)](/Good/)?(_0x1dfa61[_0x12c8aa(0x10f)](_0xdc5132[_0x12c8aa(0x147)]),_0x1dfa61[_0x12c8aa(0x9b)]('change'),_0x3e34d0(_0x12c8aa(0xb7),'ok')):(_0x1dfa61[_0x12c8aa(0x10f)](''+_0x17cd3f),_0x3e34d0(_0xdc5132['statusCode']+'\x20'+_0x23e409[_0x12c8aa(0xa8)],'failure'));});function _0x3352bc(_0x55350,_0x398539){return _0x13600b(this,void 0x0,void 0x0,function*(){const _0x572a05=_0x4424,_0x5d013b=_0x55350['data']('value'),_0x3cdfde=yield _0x443344(_0x398539,_0x5d013b,_0x539f9b),_0x4bc503=yield _0x443344(_0x398539,_0x5d013b,_0x32679d);return{'references':[..._0x3cdfde[_0x572a05(0x101)],..._0x4bc503[_0x572a05(0x101)]]};});}const _0x3ddb97={'referenceTypeId':_0x38585a(_0x5567cc(0xa9)),'includeSubtypes':!![],'browseDirection':_0x7067fe[_0x5567cc(0x17a)],'nodeClassMask':_0x235bfd[_0x5567cc(0x170)]|_0x235bfd['ObjectType']|_0x235bfd[_0x5567cc(0x158)]|_0x235bfd['VariableType'],'resultMask':0x3f};function _0x6e7907(_0x243302,_0x5f0286){return _0x13600b(this,void 0x0,void 0x0,function*(){const _0x5ba496=_0x4424,_0x2f4b14=_0x243302[_0x5ba496(0xf9)](_0x5ba496(0xa5)),_0x58913d=yield _0x443344(_0x5f0286,_0x2f4b14,_0x3ddb97);return _0x58913d;});}const _0x488060=_0x482bf3=>{const _0x1cbfd4=_0x5567cc;var _0x4be5bb,_0x2e3bc9;if(!_0x482bf3){const _0x55eb6a=$(_0x1cbfd4(0xc4));return _0x55eb6a;}const _0x48c592=_0x482bf3[_0x1cbfd4(0xba)][_0x1cbfd4(0xd4)](),_0x5955ca=((_0x4be5bb=_0x482bf3[_0x1cbfd4(0xad)])===null||_0x4be5bb===void 0x0?void 0x0:_0x4be5bb['text'])||((_0x2e3bc9=_0x482bf3[_0x1cbfd4(0x13d)])===null||_0x2e3bc9===void 0x0?void 0x0:_0x2e3bc9['name'])||_0x482bf3[_0x1cbfd4(0xba)][_0x1cbfd4(0xd4)](),{icon:_0x5e58bb,color:_0x12cfc7}=_0x1581a3(_0x482bf3),_0x43ff26=$(_0x1cbfd4(0x11c)+_0x5e58bb+_0x1cbfd4(0xa3)+_0x12cfc7+_0x1cbfd4(0xbf)+_0x5955ca+'<ul></ul></li>');return _0x43ff26['addClass']('expandable'),_0x43ff26[_0x1cbfd4(0xf9)](_0x1cbfd4(0xa5),_0x48c592),_0x43ff26[_0x1cbfd4(0xf9)](_0x1cbfd4(0x13e),_0x482bf3),_0x43ff26;},_0x1175bc=()=>{const _0x2d39f5=_0x5567cc;$['widget'](_0x2d39f5(0x10d),{'options':{'endpointNode':()=>({'endpoint':'opc.tcp://opcuademo.sterfive.com:26543'}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':_0x2d39f5(0x13a)},'nodeClass':_0x2d39f5(0xcc),'nodeId':_0x2d39f5(0x94),'displayName':{'text':_0x2d39f5(0x13a)},'typeDefinition':_0x577b41}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x13600b(this,void 0x0,void 0x0,function*(){const _0xeac818=_0x4424,_0x593ccd=this,_0x24b91c=typeof _0x593ccd[_0xeac818(0x151)]['parentNode']==='function'?_0x593ccd[_0xeac818(0x151)]['parentNode']():_0x593ccd[_0xeac818(0x151)][_0xeac818(0xd1)];if(_0x24b91c instanceof Promise)return yield _0x24b91c;return _0x24b91c;});},'reset'(){const _0x56b36d=_0x2d39f5,_0x360e7c=this;_0x360e7c['$tree'][_0x56b36d(0xce)](),this[_0x56b36d(0x118)]()[_0x56b36d(0xe6)](_0x580cc1=>{const _0x5c0278=_0x56b36d,_0x4b792b=_0x488060(_0x580cc1);_0x360e7c[_0x5c0278(0xff)][_0x5c0278(0x176)](_0x4b792b),_0x360e7c[_0x5c0278(0x124)]=_0x580cc1;});},'verify'(){const _0xd11696=_0x2d39f5,_0x105c54=this,_0x817b5a={'baseUrl':_0x105c54['options']['baseUrl'],'endpointNode':typeof _0x105c54[_0xd11696(0x151)][_0xd11696(0xfa)]===_0xd11696(0xc6)?_0x105c54['options']['endpointNode']():_0x105c54[_0xd11696(0x151)]['endpointNode'],'endpoint':typeof _0x105c54[_0xd11696(0x151)]['endpoint']===_0xd11696(0xc6)?_0x105c54[_0xd11696(0x151)]['endpoint']():_0x105c54[_0xd11696(0x151)][_0xd11696(0x13b)]};_0x4eb650(_0x817b5a,_0x105c54[_0xd11696(0x100)],_0x105c54[_0xd11696(0xfd)]);},'_create'(){const _0x30da9c=_0x2d39f5,_0x3f0b31=this;function _0x5e403f(_0x1c069b,_0x50f9a4,_0x20768d){return _0x13600b(this,void 0x0,void 0x0,function*(){const _0x51ae7f=_0x4424;if(_0x1c069b['hasClass'](_0x51ae7f(0x102))){console[_0x51ae7f(0x155)](_0x51ae7f(0x97));return;}if(_0x1c069b['hasClass']('loading')){console['log'](_0x51ae7f(0x173));return;}_0x1c069b[_0x51ae7f(0xdb)](_0x51ae7f(0x123)),_0x1c069b[_0x51ae7f(0x176)](_0x51ae7f(0xf2));try{_0x1c069b[_0x51ae7f(0x11b)]('ul')[_0x51ae7f(0xce)]();const {references:_0x217a7c}=yield _0x50f9a4(_0x1c069b,_0x20768d);for(const _0x647727 of _0x217a7c){if(_0x3f0b31[_0x51ae7f(0x151)][_0x51ae7f(0xe3)]&&!_0x3f0b31['options'][_0x51ae7f(0xe3)](_0x647727))continue;const _0x9fa614=_0x488060(_0x647727);_0x1c069b['children']('ul')[_0x51ae7f(0x176)](_0x9fa614);}_0x1c069b['addClass'](_0x51ae7f(0x102));}catch(_0x2887d2){_0x1c069b['children']('ul')[_0x51ae7f(0x176)](_0x51ae7f(0x143)+_0x2887d2[_0x51ae7f(0x9e)]+_0x51ae7f(0x111)),console[_0x51ae7f(0x155)](_0x51ae7f(0x96),_0x2887d2);}_0x1c069b[_0x51ae7f(0xcd)](_0x51ae7f(0xea))['remove'](),_0x1c069b[_0x51ae7f(0xde)]('loading');});}_0x3f0b31[_0x30da9c(0x100)]=this[_0x30da9c(0x109)],_0x3f0b31[_0x30da9c(0x12d)]=$('<div/>'),_0x3f0b31[_0x30da9c(0x12d)]['addClass']('sterfive-combo-box'),this[_0x30da9c(0x109)][_0x30da9c(0x15a)](_0x3f0b31[_0x30da9c(0x12d)]),_0x3f0b31[_0x30da9c(0x10e)]=$(_0x30da9c(0xe9))[_0x30da9c(0xdb)](_0x30da9c(0x11d)),_0x3f0b31[_0x30da9c(0x12d)][_0x30da9c(0x176)](_0x3f0b31['$inputGroup']),_0x3f0b31[_0x30da9c(0x10e)][_0x30da9c(0x176)](_0x3f0b31['$input']),_0x3f0b31[_0x30da9c(0xc7)]=$(_0x30da9c(0x14f)),_0x3f0b31[_0x30da9c(0x10e)]['append'](_0x3f0b31[_0x30da9c(0xc7)]),_0x3f0b31[_0x30da9c(0xc7)]['on'](_0x30da9c(0xd9),function(){const _0x6be188=_0x30da9c;!_0x3f0b31[_0x6be188(0xb6)]['is'](':visible')&&(_0x3f0b31[_0x6be188(0x118)]()[_0x6be188(0xe6)](_0x522e39=>{const _0x21f8d7=_0x6be188;var _0x365083;(_0x522e39!==_0x3f0b31[_0x21f8d7(0x124)]||((_0x365083=_0x3f0b31['currentParent'])===null||_0x365083===void 0x0?void 0x0:_0x365083['nodeId'])!==_0x522e39['nodeId'])&&_0x3f0b31[_0x21f8d7(0xe7)]();}),_0x3f0b31['$info'][_0x6be188(0x156)]()),_0x3f0b31[_0x6be188(0xb6)][_0x6be188(0x148)]();}),_0x3f0b31['$verifyBtn']=$('<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>'),_0x3f0b31['$inputGroup'][_0x30da9c(0x176)](_0x3f0b31['$verifyBtn']),_0x3f0b31['$verifyBtn']['on'](_0x30da9c(0xd9),()=>{const _0x5d007f=_0x30da9c;this[_0x5d007f(0xe2)]();}),!_0x3f0b31[_0x30da9c(0x100)][_0x30da9c(0xb0)]('placeholder')&&_0x3f0b31['$input']['attr'](_0x30da9c(0x12b),_0x30da9c(0xe0)),_0x3f0b31[_0x30da9c(0xfd)]=$(_0x30da9c(0xab)),_0x3f0b31[_0x30da9c(0xfd)][_0x30da9c(0x156)](),{'baseUrl':_0x3f0b31[_0x30da9c(0x151)][_0x30da9c(0xa1)],'endpointNode':typeof _0x3f0b31[_0x30da9c(0x151)]['endpointNode']===_0x30da9c(0xc6)?_0x3f0b31[_0x30da9c(0x151)][_0x30da9c(0xfa)]():_0x3f0b31['options'][_0x30da9c(0xfa)],'endpoint':typeof _0x3f0b31[_0x30da9c(0x151)][_0x30da9c(0x13b)]===_0x30da9c(0xc6)?_0x3f0b31['options'][_0x30da9c(0x13b)]():_0x3f0b31[_0x30da9c(0x151)]['endpoint']},_0x3f0b31['$dropdown']=$(_0x30da9c(0xe9))['addClass'](_0x30da9c(0xcb))[_0x30da9c(0x156)](),_0x3f0b31[_0x30da9c(0x12d)][_0x30da9c(0x176)](_0x3f0b31[_0x30da9c(0xfd)]),_0x3f0b31[_0x30da9c(0x12d)]['append'](_0x3f0b31[_0x30da9c(0xb6)]),_0x3f0b31[_0x30da9c(0xff)]=$(_0x30da9c(0x9d))[_0x30da9c(0x169)](_0x3f0b31[_0x30da9c(0xb6)]),this[_0x30da9c(0xe7)](),_0x3f0b31[_0x30da9c(0xff)]['on'](_0x30da9c(0xd9),'li',function(_0x400357){const _0x23578a=_0x30da9c;var _0x35b35f,_0x443623;_0x400357['stopPropagation']();let _0x4c810f=$(this);const _0x1f6411=0x14,_0xf0ed2a=0x14,_0x52ca58=$(this)[_0x23578a(0x171)](),_0x2a75a6=_0x400357;if(_0x2a75a6[_0x23578a(0xa0)]>=_0x52ca58[_0x23578a(0x162)]&&_0x2a75a6[_0x23578a(0xa0)]<=_0x52ca58[_0x23578a(0x162)]+_0x1f6411&&_0x2a75a6[_0x23578a(0x10a)]>=_0x52ca58[_0x23578a(0x129)]&&_0x2a75a6[_0x23578a(0x10a)]<=_0x52ca58[_0x23578a(0x129)]+_0xf0ed2a){if(_0x4c810f[_0x23578a(0x9a)](_0x23578a(0x104))){if(_0x4c810f['hasClass'](_0x23578a(0x102))){_0x4c810f[_0x23578a(0xde)](_0x23578a(0x104))[_0x23578a(0xdb)](_0x23578a(0xd2)),_0x4c810f['children']('ul')[_0x23578a(0x148)]();return;}const _0x512940={'baseUrl':_0x3f0b31[_0x23578a(0x151)][_0x23578a(0xa1)],'endpointNode':typeof _0x3f0b31[_0x23578a(0x151)]['endpointNode']==='function'?_0x3f0b31['options'][_0x23578a(0xfa)]():_0x3f0b31[_0x23578a(0x151)][_0x23578a(0xfa)],'endpoint':typeof _0x3f0b31[_0x23578a(0x151)][_0x23578a(0x13b)]==='function'?_0x3f0b31[_0x23578a(0x151)][_0x23578a(0x13b)]():_0x3f0b31[_0x23578a(0x151)]['endpoint']},_0x5e9359=!_0x3f0b31[_0x23578a(0x151)][_0x23578a(0x16f)]?_0x3352bc:_0x6e7907;_0x5e403f(_0x4c810f,_0x5e9359,_0x512940)[_0x23578a(0xe6)](()=>{const _0x206ec1=_0x23578a;console[_0x206ec1(0x155)]('\x20Fetching\x20done'),console['log']('fetched'),_0x4c810f[_0x206ec1(0xde)](_0x206ec1(0x104))['addClass'](_0x206ec1(0xd2));})[_0x23578a(0xf3)](_0xf69bd5=>{const _0x32c1f0=_0x23578a;_0x4c810f[_0x32c1f0(0xde)](_0x32c1f0(0x104))['addClass'](_0x32c1f0(0xd2)),console[_0x32c1f0(0x155)](_0x32c1f0(0xf6),_0xf69bd5);});}else{if(_0x4c810f['hasClass'](_0x23578a(0xd2)))_0x4c810f[_0x23578a(0x11b)]('ul')[_0x23578a(0x148)](),_0x4c810f[_0x23578a(0x10b)](_0x23578a(0xc0));else{if(_0x4c810f[_0x23578a(0x11b)]('ul')[_0x23578a(0x11b)]()[_0x23578a(0x150)]>0x0)_0x4c810f[_0x23578a(0x11b)]('ul')[_0x23578a(0x148)](),_0x4c810f[_0x23578a(0x10b)]('expandable\x20expanded');else;}}}else{const _0x1f8798=_0x4c810f[_0x23578a(0xf9)]('value'),_0xc4e815=_0x4c810f[_0x23578a(0xf9)](_0x23578a(0x13e));if(_0x3f0b31['options'][_0x23578a(0xa4)]&&!_0x3f0b31[_0x23578a(0x151)][_0x23578a(0xa4)](_0xc4e815))return;_0x3f0b31['$input'][_0x23578a(0xf9)](_0x23578a(0x13e),_0xc4e815);const _0x4d9b6f=((_0x35b35f=_0xc4e815[_0x23578a(0xad)])===null||_0x35b35f===void 0x0?void 0x0:_0x35b35f['text'])||((_0x443623=_0xc4e815[_0x23578a(0x13d)])===null||_0x443623===void 0x0?void 0x0:_0x443623['name'])||_0xc4e815[_0x23578a(0xba)][_0x23578a(0xd4)](),_0x300a5a='['+_0x4d9b6f+']('+_0x1f8798+')';_0x3f0b31[_0x23578a(0x100)][_0x23578a(0x10f)](_0x300a5a),_0x3f0b31[_0x23578a(0x100)][_0x23578a(0x9b)]('change'),_0x3f0b31['$dropdown'][_0x23578a(0x156)]();}}),$(document)['on']('click',function(_0xaab8c7){const _0x48e548=_0x30da9c;!$(_0xaab8c7[_0x48e548(0x108)])[_0x48e548(0xbc)](_0x3f0b31[_0x48e548(0x12d)])[_0x48e548(0x150)]&&_0x3f0b31[_0x48e548(0xb6)][_0x48e548(0x156)]();});}});},_0x51f2ac=_0x5b4656=>{const _0x2efa79=_0x5567cc;var _0x2c12f8,_0x54de83,_0xc59dfd;if(!_0x5b4656){const _0x3df2cb=$(_0x2efa79(0xc4));return _0x3df2cb;}const _0x284a6f=_0x5b4656[_0x2efa79(0xba)]['toString']();let _0x429d3f=((_0x2c12f8=_0x5b4656['displayName'])===null||_0x2c12f8===void 0x0?void 0x0:_0x2c12f8['text'])||((_0x54de83=_0x5b4656[_0x2efa79(0x13d)])===null||_0x54de83===void 0x0?void 0x0:_0x54de83[_0x2efa79(0x17c)])||_0x5b4656[_0x2efa79(0xba)][_0x2efa79(0xd4)](),_0x330e13=(_0xc59dfd=_0x5b4656[_0x2efa79(0x13d)])===null||_0xc59dfd===void 0x0?void 0x0:_0xc59dfd[_0x2efa79(0x140)];_0x429d3f+=_0x330e13!==undefined&&_0x5b4656[_0x2efa79(0x160)][_0x2efa79(0x12f)](/Type/)?'\x20(ns='+_0x330e13+')':'';const {icon:_0x3842ca,color:_0x28c675}=_0x1581a3(_0x5b4656),_0x12010a=$(_0x2efa79(0x115));if(_0x5b4656['nodeClass']==='Variable'){const _0xbebbe5=$(_0x2efa79(0x9c));_0x12010a[_0x2efa79(0x176)](_0xbebbe5),_0xbebbe5['on']('click',function(){const _0x32002c=_0x2efa79;_0xbebbe5[_0x32002c(0x9a)]('unchecked')?_0xbebbe5[_0x32002c(0xde)](_0x32002c(0x14c))['addClass'](_0x32002c(0xed)):_0xbebbe5[_0x32002c(0xde)](_0x32002c(0xed))[_0x32002c(0xdb)]('unchecked');});}return _0x12010a[_0x2efa79(0x176)]($(_0x2efa79(0x132)+_0x3842ca+'\x22\x20style=\x22color:'+_0x28c675+_0x2efa79(0x130)+_0x429d3f+_0x2efa79(0xaa))),_0x12010a[_0x2efa79(0xdb)]('expandable'),_0x12010a[_0x2efa79(0xf9)](_0x2efa79(0xa5),_0x284a6f),_0x12010a[_0x2efa79(0xf9)](_0x2efa79(0x13e),_0x5b4656),_0x12010a;},_0x119ad8=()=>{const _0x1b91d1=_0x5567cc;$['widget'](_0x1b91d1(0xef),{'options':{'endpointNode':()=>({'endpoint':_0x1b91d1(0x163)}),'endpoint':()=>undefined,'baseUrl':''},'_populate'(){var _0x4a6a9c;return _0x13600b(this,void 0x0,void 0x0,function*(){const _0x15b615=_0x4424,_0x549c64=this,_0x1482a5=new Set((_0x4a6a9c=_0x549c64[_0x15b615(0x100)]['val']())===null||_0x4a6a9c===void 0x0?void 0x0:_0x4a6a9c[_0x15b615(0xd4)]()['split'](';')),_0x484561={'baseUrl':_0x549c64['options'][_0x15b615(0xa1)],'endpointNode':typeof _0x549c64['options'][_0x15b615(0xfa)]===_0x15b615(0xc6)?_0x549c64[_0x15b615(0x151)][_0x15b615(0xfa)]():_0x549c64[_0x15b615(0x151)][_0x15b615(0xfa)],'endpoint':typeof _0x549c64[_0x15b615(0x151)]['endpoint']===_0x15b615(0xc6)?_0x549c64[_0x15b615(0x151)][_0x15b615(0x13b)]():_0x549c64[_0x15b615(0x151)]['endpoint']},_0x33aca5=yield _0x439e30(_0x484561);this[_0x15b615(0x14b)](_0x33aca5,_0x1482a5);});},'_installTree'(_0x12278b,_0x2454d6){const _0x4910ce=_0x1b91d1,_0x4725f5=this;_0x4725f5[_0x4910ce(0xff)]['empty']();if(!_0x12278b['events'])return;const _0x219e02=_0x12278b[_0x4910ce(0xe1)],_0x2a9ffe=_0x51f2ac(_0x219e02);_0x4725f5[_0x4910ce(0xff)][_0x4910ce(0x176)](_0x2a9ffe);const _0x543223='';this[_0x4910ce(0x16a)](_0x2a9ffe[_0x4910ce(0x11b)]('ul'),_0x219e02,_0x543223,_0x2454d6),_0x2a9ffe[_0x4910ce(0xde)](_0x4910ce(0x104))[_0x4910ce(0xdb)](_0x4910ce(0xd2)),this[_0x4910ce(0xf5)](_0x2454d6);},'_installChildren'(_0x1b1ea0,_0xc271be,_0x19648d,_0x422e23){const _0x1706b1=_0x1b91d1,_0xef5a52=({name:_0x42b435,namespaceIndex:_0x352d3b})=>{if(_0x352d3b===0x0)return _0x42b435;return _0x352d3b+':'+_0x42b435;},_0x4d4b4a=_0xc271be['children']||[],_0x385cf4=_0xc271be['subTypes']||[],_0x3d1694=[..._0x4d4b4a,..._0x385cf4];for(const _0x2a3582 of _0x3d1694){const _0x387016=_0x51f2ac(_0x2a3582);_0x1b1ea0['append'](_0x387016);let _0x2a198e='';_0x2a3582[_0x1706b1(0x160)]==='Variable'&&(_0x19648d?_0x2a198e=_0x19648d+'.'+_0xef5a52(_0x2a3582[_0x1706b1(0x13d)]):_0x2a198e=_0xef5a52(_0x2a3582[_0x1706b1(0x13d)]),_0x387016[_0x1706b1(0xb0)](_0x1706b1(0x120),_0x2a198e));const _0x1835a6=_0x2a3582[_0x1706b1(0x11b)]&&_0x2a3582[_0x1706b1(0x11b)][_0x1706b1(0x150)],_0x44c4ed=_0x2a3582[_0x1706b1(0xa7)]&&_0x2a3582[_0x1706b1(0xa7)][_0x1706b1(0x150)];!_0x1835a6&&!_0x44c4ed?_0x387016[_0x1706b1(0xde)](_0x1706b1(0x104))[_0x1706b1(0xdb)](_0x1706b1(0x137)):(this[_0x1706b1(0x16a)](_0x387016[_0x1706b1(0x11b)]('ul'),_0x2a3582,_0x2a198e,_0x422e23),_0x387016[_0x1706b1(0xde)](_0x1706b1(0x104))[_0x1706b1(0xdb)](_0x1706b1(0xd2)));}},'_updateSelectedFields'(){const _0x3a5808=_0x1b91d1;var _0x18e792;const _0x4e834d=this,_0x1eef75=new Set((_0x18e792=_0x4e834d[_0x3a5808(0x100)][_0x3a5808(0x10f)]())===null||_0x18e792===void 0x0?void 0x0:_0x18e792[_0x3a5808(0xd4)]()[_0x3a5808(0x167)](';'));this['_updateValues'](_0x1eef75);},'_updateValues'(_0x33527f){const _0x1a609e=_0x1b91d1;$(_0x1a609e(0x114))[_0x1a609e(0x145)](function(){const _0x1b151a=_0x1a609e,_0x58303b=$(this),_0xb7836d=_0x58303b[_0x1b151a(0xb0)](_0x1b151a(0x120));_0xb7836d&&_0x33527f[_0x1b151a(0x103)](_0xb7836d)&&_0x58303b[_0x1b151a(0x11b)](_0x1b151a(0xd3))[_0x1b151a(0xde)](_0x1b151a(0x14c))[_0x1b151a(0xdb)]('checked');});},'_setInputValue'(){const _0x41ad42=_0x1b91d1,_0x4bc3ac=this,_0x5ac0ae=[];$('.sterfive-tree\x20li')[_0x41ad42(0x145)](function(){const _0x33d50b=_0x41ad42,_0x466629=$(this);if(_0x466629[_0x33d50b(0x11b)](_0x33d50b(0xe4))[_0x33d50b(0x150)]>0x0){const _0x521918=_0x466629[_0x33d50b(0xb0)]('data-value');if(_0x521918)_0x5ac0ae[_0x33d50b(0xd7)](_0x521918);}});const _0x3ba320=[...new Set(_0x5ac0ae)]['sort']()[_0x41ad42(0xb3)](';');_0x4bc3ac['$input'][_0x41ad42(0x10f)](_0x3ba320),_0x4bc3ac[_0x41ad42(0x100)]['trigger'](_0x41ad42(0x92));},'_create'(){const _0x46ba28=_0x1b91d1,_0x30b5ae=this;_0x30b5ae[_0x46ba28(0x100)]=this['element'],_0x30b5ae['$combo']=$(_0x46ba28(0xe9)),_0x30b5ae['$combo']['addClass'](_0x46ba28(0x15b)),this[_0x46ba28(0x109)][0x0][_0x46ba28(0x106)][_0x46ba28(0x16c)](_0x30b5ae[_0x46ba28(0x12d)][0x0],this[_0x46ba28(0x109)][0x0]),_0x30b5ae[_0x46ba28(0x10e)]=$(_0x46ba28(0xe9))[_0x46ba28(0xdb)](_0x46ba28(0x11d)),_0x30b5ae['$combo'][_0x46ba28(0x176)](_0x30b5ae[_0x46ba28(0x10e)]),_0x30b5ae[_0x46ba28(0x10e)][_0x46ba28(0x176)](_0x30b5ae['$input']),_0x30b5ae['$toggleTreeBtn']=$(_0x46ba28(0x14f)),_0x30b5ae['$inputGroup'][_0x46ba28(0x176)](_0x30b5ae[_0x46ba28(0xc7)]),_0x30b5ae[_0x46ba28(0xc7)]['on'](_0x46ba28(0xd9),function(){const _0x4a23ee=_0x46ba28;_0x30b5ae['$dropdown'][_0x4a23ee(0x148)](),_0x30b5ae[_0x4a23ee(0xfd)][_0x4a23ee(0x148)]();if(_0x30b5ae['$dropdown']['is'](_0x4a23ee(0x135))){_0x57e397[_0x4a23ee(0xfb)]();const _0x2789b4=_0x30b5ae[_0x4a23ee(0xb6)]['offset']();_0x57e397[_0x4a23ee(0x11e)]({'top':_0x2789b4[_0x4a23ee(0x129)]+'px','right':'calc(100%\x20-\x20'+(_0x2789b4[_0x4a23ee(0x162)]+_0x30b5ae['$dropdown'][_0x4a23ee(0xd5)]())+_0x4a23ee(0x165)}),_0x30b5ae[_0x4a23ee(0x12c)](),_0x30b5ae[_0x4a23ee(0x14a)]();}else _0x57e397[_0x4a23ee(0x156)]();});!_0x30b5ae[_0x46ba28(0x100)][_0x46ba28(0xb0)]('placeholder')&&_0x30b5ae['$input'][_0x46ba28(0xb0)]('placeholder',_0x46ba28(0xe0));_0x30b5ae[_0x46ba28(0xfd)]=$(_0x46ba28(0xab)),_0x30b5ae[_0x46ba28(0xfd)]['hide'](),_0x30b5ae[_0x46ba28(0xb6)]=$(_0x46ba28(0xe9))['addClass'](_0x46ba28(0xcb))[_0x46ba28(0x156)]();const _0x392e93=$(_0x46ba28(0x136)),_0x484390=$(_0x46ba28(0x121)),_0x57e397=$(_0x46ba28(0x119))[_0x46ba28(0x176)](_0x392e93,_0x484390);_0x57e397['hide'](),_0x392e93['on'](_0x46ba28(0xd9),()=>{const _0x36d534=_0x46ba28;_0x30b5ae['_setInputValue'](),_0x30b5ae['$dropdown'][_0x36d534(0x156)]();}),_0x484390['on'](_0x46ba28(0xd9),()=>{const _0x456a1d=_0x46ba28;_0x30b5ae['$dropdown'][_0x456a1d(0x156)]();}),_0x30b5ae[_0x46ba28(0x12d)][_0x46ba28(0x176)](_0x30b5ae[_0x46ba28(0xfd)]),_0x30b5ae[_0x46ba28(0x12d)][_0x46ba28(0x176)](_0x30b5ae[_0x46ba28(0xb6)]),_0x30b5ae[_0x46ba28(0xff)]=$(_0x46ba28(0x9d)),_0x30b5ae[_0x46ba28(0xb6)][_0x46ba28(0xce)]()[_0x46ba28(0x176)](_0x30b5ae[_0x46ba28(0xff)],_0x57e397),_0x30b5ae[_0x46ba28(0xff)]['on'](_0x46ba28(0xd9),'li',function(_0x10306c){const _0x57e7c0=_0x46ba28;_0x10306c[_0x57e7c0(0xee)]();let _0x22699e=$(this);const _0x585b72=0x14,_0x1ed154=0x14,_0x3d0b05=$(this)[_0x57e7c0(0x171)](),_0x2ac33d=_0x10306c;if(_0x2ac33d[_0x57e7c0(0xa0)]>=_0x3d0b05['left']&&_0x2ac33d['pageX']<=_0x3d0b05['left']+_0x585b72&&_0x2ac33d[_0x57e7c0(0x10a)]>=_0x3d0b05[_0x57e7c0(0x129)]&&_0x2ac33d['pageY']<=_0x3d0b05[_0x57e7c0(0x129)]+_0x1ed154){console[_0x57e7c0(0x155)](_0x57e7c0(0x175)),console['log'](_0x57e7c0(0x15e),_0x22699e[_0x57e7c0(0xf9)]('value'),_0x22699e['attr'](_0x57e7c0(0x126)));if(_0x22699e[_0x57e7c0(0x9a)](_0x57e7c0(0x104)))_0x22699e[_0x57e7c0(0xde)](_0x57e7c0(0x104))[_0x57e7c0(0xdb)](_0x57e7c0(0xd2)),_0x22699e[_0x57e7c0(0x11b)]('ul')[_0x57e7c0(0x148)]();else{if(_0x22699e[_0x57e7c0(0x9a)](_0x57e7c0(0xd2)))_0x22699e['children']('ul')['toggle'](),_0x22699e[_0x57e7c0(0x10b)](_0x57e7c0(0xc0));else{if(_0x22699e[_0x57e7c0(0x11b)]('ul')['children']()[_0x57e7c0(0x150)]>0x0)_0x22699e[_0x57e7c0(0x11b)]('ul')[_0x57e7c0(0x148)](),_0x22699e[_0x57e7c0(0x10b)](_0x57e7c0(0xc0));else;}}}}),$(document)['on'](_0x46ba28(0xd9),function(_0xe4b5f4){const _0x22414a=_0x46ba28;!$(_0xe4b5f4[_0x22414a(0x108)])[_0x22414a(0xbc)](_0x30b5ae[_0x22414a(0x12d)])[_0x22414a(0x150)]&&_0x30b5ae['$dropdown'][_0x22414a(0x156)]();}),this[_0x46ba28(0x12c)]();}});},_0x439e30=({endpointNode:_0x1fc904,endpoint:_0x1e996d,baseUrl:_0x2f1717})=>_0x13600b(void 0x0,void 0x0,void 0x0,function*(){const _0xe52e08=_0x5567cc,_0x184c61=_0x2f1717+_0xe52e08(0x131),_0x216546=_0x184c61+_0xe52e08(0xfe),_0x593369=yield fetch(_0x216546,{'method':_0xe52e08(0x154),'body':JSON[_0xe52e08(0xc2)]({'endpointNode':_0x1fc904,'endpoint':_0x1e996d}),'headers':{'Content-Type':_0xe52e08(0xa2)}});if(_0x593369['status']!==0xc8)return console[_0xe52e08(0x155)](_0xe52e08(0xbe),_0x593369['status'],_0x593369[_0xe52e08(0xa8)]),{'events':null};console[_0xe52e08(0x155)](_0xe52e08(0x116),_0x593369[_0xe52e08(0x146)],_0x593369[_0xe52e08(0xa8)]);const _0x5db8a8=yield _0x593369[_0xe52e08(0x141)](),_0x581b7d=_0x5db8a8[_0xe52e08(0xe1)];return{'events':_0x581b7d};}),_0xfaca8a=()=>{const _0x9c8569=_0x5567cc,_0x292fca=$('#node-input-endpoint'),_0x1606c8=_0x292fca[_0x9c8569(0x10f)](),_0x4a1ea0=RED[_0x9c8569(0x14e)][_0x9c8569(0xd8)](_0x1606c8);if(!_0x4a1ea0)return undefined;const {endpoint:_0xf6d86b,securityMode:_0x5c6572,securityPolicy:_0x48824e,userIdentityType:_0x50a317,userName:_0x11c757,password:_0x501e2d,userCertificate:_0x572dd1,userPrivatekey:_0x24956f}=_0x4a1ea0;return{'endpoint':_0xf6d86b,'securityMode':_0x5c6572,'securityPolicy':_0x48824e,'userIdentityType':_0x50a317,'userName':_0x11c757,'password':_0x501e2d,'userCertificate':_0x572dd1,'userPrivatekey':_0x24956f};},_0x23b5cb=()=>{return{'endpointNode':_0x49f92a};},_0x49f92a=()=>{const _0x1a02d2=_0x5567cc,_0x47f3dc=$('#node-input-endpoint'),_0x24c727=_0x47f3dc[_0x1a02d2(0x10f)](),_0x59b5d5=_0xfaca8a();if(!_0x59b5d5)return undefined;return{'id':_0x24c727,'endpoint':_0x59b5d5[_0x1a02d2(0x13b)],'securityMode':_0x59b5d5[_0x1a02d2(0x13c)],'securityPolicy':_0x59b5d5[_0x1a02d2(0xb5)],'userIdentityType':_0x59b5d5[_0x1a02d2(0x14d)],'userName':_0x59b5d5[_0x1a02d2(0x14d)]===_0x1a02d2(0x127)?_0x59b5d5['userName']:undefined,'password':_0x59b5d5[_0x1a02d2(0x14d)]==='UserName'?_0x59b5d5['password']:undefined,'userCertificate':_0x59b5d5[_0x1a02d2(0xdd)],'userPrivatekey':_0x59b5d5['userPrivatekey']};};RED[_0x5567cc(0x14e)][_0x5567cc(0xeb)]('OpcUa-Client2-MonitorEvent',{'category':'opcua','color':_0x5567cc(0xec),'align':_0x5567cc(0x95),'icon':_0x5567cc(0x157),'paletteLabel':_0x5567cc(0x16b),'defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':_0x5567cc(0x112)},'subscription':{'value':'','required':!![],'validate':_0x3960c4=>{if(_0x3960c4==='')return![];return!![];}},'startImmediately':{'value':!![],'required':!![]},'nodeId':{'value':'','required':![],'validate':()=>!![]},'samplingInterval':{'value':0x3e8,'required':!![]},'discardOldest':{'value':!![],'required':!![]},'queueSize':{'value':0xa,'required':!![]},'selectClauses':{'value':'','required':!![]},'whereClause':{'value':'','required':![]}},'outputs':0x2,'label'(){const _0x3446f2=_0x5567cc;return this[_0x3446f2(0x17c)]||_0x3446f2(0x178);},'labelStyle'(){const _0x3e3990=_0x5567cc;return this['name']?_0x3e3990(0x159):'';},'oneditprepare'(){const _0x5b6a4c=_0x5567cc;_0x1175bc(),_0x119ad8(),_0x24aa7e(RED,this),$(_0x5b6a4c(0xdc))['on'](_0x5b6a4c(0x92),()=>{const _0x457d51=_0x5b6a4c,_0x4d6faf=$(_0x457d51(0x133))[_0x457d51(0xd6)](_0x457d51(0xed));_0x4d6faf?$(_0x457d51(0x179))['val'](0x0):$('#node-input-inputs')[_0x457d51(0x10f)](0x1);});const _0x58f1fd=$(_0x5b6a4c(0xf8));_0x58f1fd[_0x5b6a4c(0x93)](Object['assign'](Object['assign']({},_0x23b5cb()),{'filter'(_0x2ffe0e){const _0x20458e=_0x5b6a4c;return _0x2ffe0e[_0x20458e(0x160)]===_0x20458e(0xcc);},'isSelectable'(_0x56e283){const _0x396cf9=_0x5b6a4c;return _0x56e283[_0x396cf9(0x160)]===_0x396cf9(0xcc);}})),$('#node-input-whereClause');const _0x35cf8b=$(_0x5b6a4c(0xc5));_0x35cf8b[_0x5b6a4c(0xd0)](Object[_0x5b6a4c(0x177)]({},_0x23b5cb()));},'oneditsave'(){const _0x91624a=_0x5567cc,_0x2a405b=$(_0x91624a(0x133))[_0x91624a(0xd6)](_0x91624a(0xed));_0x2a405b?($(_0x91624a(0x133))[_0x91624a(0x10f)](_0x2a405b?0x0:0x1),this[_0x91624a(0xf4)]=_0x2a405b?0x0:0x1):($(_0x91624a(0x133))['val'](0x1),this['inputs']=0x1);}});}()));
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHgyNGFhN2UiLCJfMHgzODZhNjMiLCJfMHgyMGY3MDkiLCJfMHgxYWMyMzEiLCIkIiwiXzB4NTMzY2Y4IiwiXzB4NTExM2QyIiwiXzB4MmYzNjFkIiwiXzB4MWFmZDk4IiwiXzB4MzcxMjUxIiwiXzB4MTM2MDBiIiwiXzB4M2IyYTdlIiwiXzB4MWE3ZmI5IiwiXzB4MTBiYzk1IiwiXzB4Mjg2MjM1IiwiXzB4NGI5NTU5IiwiXzB4MTYyNzliIiwiXzB4NTlmMThhIiwiUHJvbWlzZSIsIl8weDMxNWY0ZSIsIl8weDNlNGE2MyIsIl8weDM1YzQzMCIsIl8weDU4M2MyYyIsIl8weDIxOTNhZiIsIl8weDViNWM2YiIsIl8weGY2ZGIwMyIsIl8weDVlNjNmMyIsIl8weDRmOThlMSIsIl8weDNkODdlYyIsIlN1cHByZXNzZWRFcnJvciIsIl8weDJkYzE5MCIsIl8weDU0N2FkNCIsIl8weDE5MDdkZSIsIl8weDNhNWQ3NiIsIkVycm9yIiwiXzB4ZTE5ZDVmIiwiXzB4NTc3YjQxIiwiXzB4NTI3NGYwIiwiXzB4ZTZiZjg3IiwiXzB4ZGVjZTkzIiwiXzB4NWFmYmE0IiwiXzB4MjM2OTA2IiwiXzB4NzA2N2ZlIiwiXzB4MjYzYWJmIiwiXzB4MjM1YmZkIiwiXzB4M2YwNjg1IiwiXzB4NTVhZjY0IiwiXzB4NDEyZDQ3IiwiXzB4Mzg2NTA0IiwiXzB4MTAzOTY0IiwiXzB4Mzg1ODVhIiwiXzB4NDUyZmJlIiwiXzB4MTU4MWEzIiwiXzB4MzQwNTRhIiwiXzB4NDQzMzQ0IiwiZW5kcG9pbnROb2RlIiwiXzB4NjNkMmRlIiwiZW5kcG9pbnQiLCJfMHg1NTA1Y2MiLCJiYXNlVXJsIiwiXzB4NGQ1M2FjIiwiXzB4NWI0MzQwIiwiXzB4MzFlNTI2IiwiXzB4M2UwOGZjIiwiXzB4NGFiM2JhIiwiXzB4NGM2ZTNiIiwiT2JqZWN0IiwiXzB4M2FkODczIiwiZmV0Y2giLCJKU09OIiwiY29uc29sZSIsIl8weDI5MWViYyIsIl8weDNlN2QzMSIsIl8weDUzOWY5YiIsIl8weDMyNjc5ZCIsIl8weDRlYjY1MCIsIl8weDIwYzJkMCIsIl8weDJiZjgwYiIsIl8weDVjMDc0OCIsIl8weDFkZmE2MSIsIl8weDI0YjhiYyIsIl8weDUzOTMwNiIsIl8weDE3Y2QzZiIsIl8weDIzZTQwOSIsIl8weDNlMzRkMCIsIl8weDE3ZWRiOCIsIl8weDFjZjg1ZCIsInNldFRpbWVvdXQiLCJfMHhkYzUxMzIiLCJfMHgzMzUyYmMiLCJfMHg1NTM1MCIsIl8weDM5ODUzOSIsIl8weDVkMDEzYiIsIl8weDNjZGZkZSIsIl8weDRiYzUwMyIsIl8weDNkZGI5NyIsIl8weDZlNzkwNyIsIl8weDI0MzMwMiIsIl8weDVmMDI4NiIsIl8weDJmNGIxNCIsIl8weDU4OTEzZCIsIl8weDQ4ODA2MCIsIl8weDQ4MmJmMyIsIl8weDRiZTViYiIsIl8weDJlM2JjOSIsIl8weDU1ZWI2YSIsIl8weDQ4YzU5MiIsIl8weDU5NTVjYSIsImljb24iLCJfMHg1ZTU4YmIiLCJjb2xvciIsIl8weDEyY2ZjNyIsIl8weDQzZmYyNiIsIl8weDExNzViYyIsInVuZGVmaW5lZCIsIl8weDU5M2NjZCIsIl8weDI0YjkxYyIsIl8weDM2MGU3YyIsIl8weDU4MGNjMSIsIl8weDRiNzkyYiIsIl8weDEwNWM1NCIsIl8weDgxN2I1YSIsIl8weDNmMGIzMSIsIl8weDVlNDAzZiIsIl8weDFjMDY5YiIsIl8weDUwZjlhNCIsIl8weDIwNzY4ZCIsInJlZmVyZW5jZXMiLCJfMHgyMTdhN2MiLCJfMHg2NDc3MjciLCJfMHg5ZmE2MTQiLCJfMHgyODg3ZDIiLCJfMHg1MjJlMzkiLCJfMHgzNjUwODMiLCJfMHg0MDAzNTciLCJfMHgzNWIzNWYiLCJfMHg0NDM2MjMiLCJfMHg0YzgxMGYiLCJfMHgxZjY0MTEiLCJfMHhmMGVkMmEiLCJfMHg1MmNhNTgiLCJfMHgyYTc1YTYiLCJfMHg1MTI5NDAiLCJfMHg1ZTkzNTkiLCJfMHhmNjliZDUiLCJfMHgxZjg3OTgiLCJfMHhjNGU4MTUiLCJfMHg0ZDliNmYiLCJfMHgzMDBhNWEiLCJkb2N1bWVudCIsIl8weGFhYjhjNyIsIl8weDUxZjJhYyIsIl8weDViNDY1NiIsIl8weDJjMTJmOCIsIl8weDU0ZGU4MyIsIl8weGM1OWRmZCIsIl8weDNkZjJjYiIsIl8weDI4NGE2ZiIsIl8weDQyOWQzZiIsIl8weDMzMGUxMyIsIl8weDM4NDJjYSIsIl8weDI4YzY3NSIsIl8weDEyMDEwYSIsIl8weGJlYmJlNSIsIl8weDExOWFkOCIsIl8weDRhNmE5YyIsIl8weDU0OWM2NCIsIl8weDE0ODJhNSIsIlNldCIsIl8weDQ4NDU2MSIsIl8weDMzYWNhNSIsIl8weDQzOWUzMCIsIl8weDEyMjc4YiIsIl8weDI0NTRkNiIsIl8weDQ3MjVmNSIsIl8weDIxOWUwMiIsIl8weDJhOWZmZSIsIl8weDU0MzIyMyIsIl8weDFiMWVhMCIsIl8weGMyNzFiZSIsIl8weDE5NjQ4ZCIsIl8weDQyMmUyMyIsIl8weGVmNWE1MiIsIm5hbWUiLCJfMHg0MmI0MzUiLCJuYW1lc3BhY2VJbmRleCIsIl8weDM1MmQzYiIsIl8weDRkNGI0YSIsIl8weDM4NWNmNCIsIl8weDNkMTY5NCIsIl8weDJhMzU4MiIsIl8weDM4NzAxNiIsIl8weDJhMTk4ZSIsIl8weDE4MzVhNiIsIl8weDQ0YzRlZCIsIl8weDE4ZTc5MiIsIl8weDRlODM0ZCIsIl8weDFlZWY3NSIsIl8weDMzNTI3ZiIsIl8weDU4MzAzYiIsIl8weGI3ODM2ZCIsIl8weDRiYzNhYyIsIl8weDVhYzBhZSIsIl8weDQ2NjYyOSIsIl8weDUyMTkxOCIsIl8weDNiYTMyMCIsIl8weDMwYjVhZSIsIl8weDU3ZTM5NyIsIl8weDI3ODliNCIsIl8weDM5MmU5MyIsIl8weDQ4NDM5MCIsIl8weDEwMzA2YyIsIl8weDIyNjk5ZSIsIl8weDU4NWI3MiIsIl8weDFlZDE1NCIsIl8weDNkMGIwNSIsIl8weDJhYzMzZCIsIl8weGU0YjVmNCIsIl8weDFmYzkwNCIsIl8weDFlOTk2ZCIsIl8weDJmMTcxNyIsIl8weDE4NGM2MSIsIl8weDIxNjU0NiIsIl8weDU5MzM2OSIsIl8weDVkYjhhOCIsIl8weDU4MWI3ZCIsIl8weGZhY2E4YSIsIl8weDI5MmZjYSIsIl8weDE2MDZjOCIsIl8weDRhMWVhMCIsIlJFRCIsIl8weGY2ZDg2YiIsInNlY3VyaXR5TW9kZSIsIl8weDVjNjU3MiIsInNlY3VyaXR5UG9saWN5IiwiXzB4NDg4MjRlIiwidXNlcklkZW50aXR5VHlwZSIsIl8weDUwYTMxNyIsInVzZXJOYW1lIiwiXzB4MTFjNzU3IiwicGFzc3dvcmQiLCJfMHg1MDFlMmQiLCJ1c2VyQ2VydGlmaWNhdGUiLCJfMHg1NzJkZDEiLCJ1c2VyUHJpdmF0ZWtleSIsIl8weDI0OTU2ZiIsIl8weDIzYjVjYiIsIl8weDQ5ZjkyYSIsIl8weDQ3ZjNkYyIsIl8weDI0YzcyNyIsIl8weDU5YjVkNSIsIl8weDM5NjBjNCIsIl8weDRkNmZhZiIsIl8weDU4ZjFmZCIsIl8weDJmZmUwZSIsIl8weDU2ZTI4MyIsIl8weDM1Y2Y4YiIsIl8weDJhNDA1YiJdLCJtYXBwaW5ncyI6InU0SUFBQSxDQUFDLFUsQ0FDRyxhLHdCQUVBLFNBQVNBLFNBQVQsQ0FBcUNDLFNBQXJDLENBQTBDQyxTQUExQyxDLHlCQUNVQyxTQUFBLENBQVlDLENBQUEsQyxlQUFBLEMsQ0FDWkMsU0FBQSxDQUFnQkQsQ0FBQSxDLGVBQUEsQyxDQUNoQkUsU0FBQSxDQUE2QixJLDJCQUN6QkMsU0FBQSxDQUFXTixTQUFBLEMsT0FBQSxFLGVBQUEsRUFBZUUsU0FBQSxDLEtBQUEsR0FBZixDLENBQ2pCRSxTQUFBLEMsZUFBQSxJLEdBQ0ksQ0FBQ0UsU0FBRCxFQUFhLENBQUNBLFNBQUEsQyxlQUFBLEMsQ0FDZCxPLEdBRUFBLFNBQUEsQyxnQkFBQSxDLENBQ0EsVUFBV0MsU0FBWCxJQUFnQkQsU0FBQSxDLGdCQUFBLENBQWhCLEMsQ0FDSSxNQUFNRSxTQUFBLENBQVFELFNBQUEsQyxnQkFBQSxHQUFVQSxTQUFBLEMsSUFBQSxDQUF4QixDQUNBSixDQUFBLEMsZ0JBQUEsQ0FBZSxDLE9BQ1gsQ0FBT0ksU0FBQSxDLElBQUEsQ0FESSxDLE9B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QSxFLEdBQVYsRSxnQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsVUFBQSxFLEdBQVYsRSxnQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZ0JBQUEsRSxHQUFWLEUsaUJBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGVBQUEsRSxHQUFWLEUsZ0JBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGVBQUEsRSxJQUFWLEUsZ0JBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGdCQUFBLEUsSUFBVixFLGlCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxnQkFBQSxFLElBQVYsRSxpQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZUFBQSxFLElBQVYsRSxpQkFUSixDQVVHRCxTQUFBLEVBQWMsQ0FBQUEsU0FBQSxDQUFZLEVBQVosQ0FWakIsR0FXQSxJQUFJRSxTQUFKLENBQ0EsQ0FBQyxTQUFVQyxTQUFWLEMsMkJBQ0dBLFNBQUEsQ0FBY0EsU0FBQSxDLGVBQUEsRSxHQUFkLEUsZ0JBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGVBQUEsRSxHQUFkLEUsZ0JBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGdCQUFBLEUsR0FBZCxFLFNBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGVBQUEsRSxHQUFkLEUsZ0JBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGVBQUEsRSxJQUFkLEUsZ0JBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGVBQUEsRSxJQUFkLEUsaUJBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGdCQUFBLEUsSUFBZCxFLGlCQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxlQUFBLEUsSUFBZCxFLFFBUkosQ0FTR0QsU0FBQSxFQUFrQixDQUFBQSxTQUFBLENBQWdCLEVBQWhCLENBVHJCLEdBVUEsSUFBSUUsU0FBSixDQUNBLENBQUMsU0FBVUMsU0FBVixDLDJCQUNHQSxTQUFBLENBQVdBLFNBQUEsQyxnQkFBQSxFLEdBQVgsRSxpQkFDQUEsU0FBQSxDQUFXQSxTQUFBLEMsZ0JBQUEsRSxHQUFYLEUsWUFDQUEsU0FBQSxDQUFXQSxTQUFBLEMsZUFBQSxFLEdBQVgsRSxnQkFDQUEsU0FBQSxDQUFXQSxTQUFBLEMsWUFBQSxFLEdBQVgsRSxpQkFDQUEsU0FBQSxDQUFXQSxTQUFBLEMsZUFBQSxFLElBQVgsRSxnQkFDQUEsU0FBQSxDQUFXQSxTQUFBLEMsZ0JBQUEsRSxJQUFYLEUsaUJBTkosQ0FPR0QsU0FBQSxFQUFlLENBQUFBLFNBQUEsQ0FBYSxFQUFiLENBUGxCLEdBU0EsU0FBU0UsU0FBVCxDQUF1QkMsU0FBdkIsQywyQkFDSSxPQUFRQSxTQUFSLEVBQ0ksSSxXQUFBLENBQ0ksT0FBT2hCLFNBQVAsQ0FDSixLLGVBQUEsQ0FDSSxPQUFPRyxTQUFQLENBQ0osSyxnQkFBQSxDQUNJLE9BQU9ELFNBQVAsQ0FDSixLLGdCQUFBLENBQ0ksT0FBT0UsU0FBUCxDQUNKLEssZUFBQSxDQUNJLE9BQU9DLFNBQVAsQ0FDSixLLGdCQUFBLENBQ0ksT0FBT0MsU0FBUCxDQVpSLEMsQ0FnQkosTUFBTVcsU0FBQSxDQUFXQyxTQUFELEUsMkJBQ1osT0FBUUEsU0FBQSxDLGdCQUFBLENBQVIsRUFDSSxLLGVBQUEsQyxHQUNRQSxTQUFBLEMsZ0JBQUEsSUFBOEJsQixTLEtBQzlCa0IsU0FBQSxDLGdCQUFBLElBQTZCakIsU0FBN0IsRUFBMkNpQixTQUFBLEMsZ0JBQUEsSSx1QkFDcEMsQyxNQUFFLEMsZUFBRixDLE9BQXFCLEMsaUNBQXJCLEMsQ0FFWCxNQUFPLEMsTUFBRSxDLGlCQUFGLEMsT0FBMkIsQyxlQUEzQixDQUFQLENBQ0osSSxVQUFBLEMsR0FDUUEsU0FBQSxDLGdCQUFBLElBQThCaEIsUyxPQUN2QixDLE1BQUUsQyxhQUFGLEMsT0FBdUIsQyxlQUF2QixDLGFBRUZnQixTQUFBLEMsZ0JBQUEsSUFBOEJmLFMsQ0FDNUIsQyxNQUFFLEMsYUFBRixDLE9BQXVCLEMsZ0JBQXZCLEMsQ0FHQSxDLE1BQUUsQyxhQUFGLEMsT0FBdUIsQyxXQUF2QixDLENBRWYsSyxnQkFBQSxDQUNJLE1BQU8sQyxNQUFFLEMsZ0JBQUYsQyxPQUFrQixDLGVBQWxCLENBQVAsQ0FDSixLLGVBQUEsQ0FDSSxNQUFPLEMsTUFBRSxDLGdCQUFGLEMsT0FBMkIsQyxnQkFBM0IsQ0FBUCxDQUNKLEksY0FBQSxDQUNJLE1BQU8sQyxNQUFFLEMsZ0JBQUYsQyxPQUFzQixDLGdCQUF0QixDQUFQLENBdEJSLEMsTUF3Qk8sQyxNQUFFLEMsYUFBRixDLE9BQXVCLEMsZ0JBQXZCLEMsRUF6QlgsQ0E0Qk1nQixTQUFBLENBQVMsQ0FBQyxDQUFFQyxZQUFBLENBQUFDLFNBQUYsQ0FBZ0JDLFFBQUEsQ0FBQUMsU0FBaEIsQ0FBMEJDLE9BQUEsQ0FBQUMsU0FBMUIsQ0FBRCxDQUFzQ0MsU0FBdEMsQ0FBOENDLFNBQTlDLEdBQTJEcEQsU0FBQSxDQUFVLEssR0FBVixDQUFrQixLLEdBQWxCLENBQTBCLEssR0FBMUIsQ0FBa0MsVywyQkFDbEdxRCxTQUFBLENBQVVILFMsb0JBQ1ZJLFNBQUEsQ0FBU0QsUyxpQkFDVEUsU0FBQSxDQUFvQkMsTUFBQSxDLGdCQUFBLEVBQWNBLE1BQUEsQyxRQUFBLEVBQWMsRUFBZCxDQUFrQkosU0FBbEIsQ0FBZCxDQUEyQyxDLFFBQUUsQ0FBQUQsU0FBRixDLFlBQVUsQyxJQUFWLENBQTNDLEMsQ0FDcEJNLFNBQUEsQ0FBTyxNQUFNQyxLQUFBLENBQU1KLFNBQU4sQ0FBVyxDLFFBQzFCLEMsZ0JBRDBCLEMsTUFFMUIsQ0FBTUssSUFBQSxDLFdBQUEsRUFBZSxDLGNBQ2pCLENBQUFiLFNBRGlCLEMsVUFFakIsQ0FBQUUsU0FGaUIsQyxtQkFHakIsQ0FBQU8sU0FIaUIsQ0FBZixDQUZvQixDLFNBTzFCLENBQVMsQyxjQUFFLEMsZUFBRixDQVBpQixDQUFYLEMsSUFTZkUsU0FBQSxDLGdCQUFBLEksWUFDQUcsT0FBQSxDLGdCQUFBLEUscUNBQUEsQ0FBMENILFNBQUEsQyxnQkFBQSxDQUExQyxDQUF1REEsU0FBQSxDLFlBQUEsQ0FBdkQsQyxDQUNPLEMsWUFBRSxDQUFZLEVBQWQsQyxDQUVYRyxPQUFBLEMsZ0JBQUEsRSxrQkFBQSxDQUEwQkgsU0FBQSxDLGdCQUFBLENBQTFCLENBQXVDQSxTQUFBLEMsZUFBQSxDQUF2QyxFQUNBLE1BQU1JLFNBQUEsQ0FBVyxNQUFNSixTQUFBLEMsTUFBQSxHQUF2QixDQUNNSyxTQUFBLENBQWFELFNBQUEsQyxlQUFBLEUsZ0JBQUEsR0FBb0MsRUFEdkQsQyxNQUVPLEMsWUFBRSxDQUFBQyxTQUFGLEMsRUFwQitELENBNUIxRSxDQW1ETUMsU0FBQSxDQUFZLEMsaUJBQ2QsQ0FBaUJ2QixTQUFBLEMsZ0JBQUEsQ0FESCxDLGlCQUVkLEMsSUFGYyxDLGlCQUdkLENBQWlCUixTQUFBLEMsZ0JBQUEsQ0FISCxDLGVBSWQsQ0FBZUUsU0FBQSxDLGVBQUEsRUFBcUJBLFNBQUEsQyxlQUFBLENBQXJCLENBQXdDQSxTQUFBLEMsZ0JBQUEsQ0FKekMsQyxZQVVkLEMsSUFWYyxDQW5EbEIsQ0ErRE04QixTQUFBLENBQVksQyxpQkFDZCxDQUFpQnhCLFNBQUEsQyxnQkFBQSxDQURILEMsaUJBRWQsQyxJQUZjLEMsaUJBR2QsQ0FBaUJSLFNBQUEsQyxnQkFBQSxDQUhILEMsZUFJZCxDQUFlRSxTQUFBLEMsZUFBQSxFQUFxQkEsU0FBQSxDLGVBQUEsQ0FBckIsQ0FBd0NBLFNBQUEsQyxnQkFBQSxDQUp6QyxDLFlBVWQsQyxJQVZjLENBL0RsQixDQTJFTStCLFNBQUEsQ0FBaUIsQ0FBQyxDQUFFcEIsWUFBQSxDQUFBcUIsU0FBRixDQUFnQm5CLFFBQUEsQ0FBQW9CLFNBQWhCLENBQTBCbEIsT0FBQSxDQUFBbUIsU0FBMUIsQ0FBRCxDQUFzQ0MsU0FBdEMsQ0FBcURDLFNBQXJELEdBQStEdEUsU0FBQSxDQUFVLEssR0FBVixDQUFrQixLLEdBQWxCLENBQTBCLEssR0FBMUIsQ0FBa0MsVywyQkFDOUd1RSxTQUFBLENBQVVILFMsa0JBQ1ZJLFNBQUEsQ0FBU0gsU0FBQSxDLGdCQUFBLEcsQ0FDVEksU0FBQSxDQUFPLE1BQU1mLEtBQUEsQ0FBU2EsUyxnQkFBVCxDQUE2QixDLFFBQzVDLEMsZ0JBRDRDLEMsTUFFNUMsQ0FBTVosSUFBQSxDLFdBQUEsRUFBZSxDLGNBQ2pCLENBQUFPLFNBRGlCLEMsVUFFakIsQ0FBQUMsU0FGaUIsQyxRQUdqQixDQUFBSyxTQUhpQixDQUFmLENBRnNDLEMsU0FPNUMsQ0FBUyxDLGNBQUUsQyxlQUFGLENBUG1DLENBQTdCLEMsQ0FTYkUsU0FBQSxDQUFrQixDQUFDQyxTQUFELENBQU9DLFNBQVAsRywyQkFDcEJOLFNBQUEsQyxNQUFBLEVBQVdLLFNBQVgsRSxlQUFBLEUsZ0JBQUEsRSxlQUFBLEVBQW9EQyxTQUFwRCxDLENBQ0FOLFNBQUEsQyxlQUFBLEcsQ0FDQU8sVUFBQSxDQUFXLEksMkJBQ1BQLFNBQUEsQyxlQUFBLEVBQWtCTSxTQUFsQixDLENBQ0FOLFNBQUEsQyxnQkFBQSxHLEVBRkosQyxLQUFBLEMsR0FLRVEsU0FBQSxDQUFRLE1BQU1MLFNBQUEsQyxnQkFBQSxHLENBQ2hCQSxTQUFBLEMsZ0JBQUEsSSxLQUVBQyxTQUFBLEMsZUFBZ0IsQ0FBZ0JGLFNBQWhDLEMsU0FBQSxDLENBR0lNLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEVBQXNCLE1BQXRCLEMsRUFFQVQsU0FBQSxDLGdCQUFBLEVBQWtCUyxTQUFBLEMsZ0JBQUEsQ0FBbEIsQyxDQUNBVCxTQUFBLEMsZUFBQSxFLFFBQUEsQyxDQUNBSyxTQUFBLEMsZUFBQSxDLElBQUEsQyxHQUdBTCxTQUFBLEMsZ0JBQUEsRSxHQUFxQkcsU0FBckIsQyxDQUNBRSxTQUFBLENBQW1CSSxTQUFBLEMsWUFBQSxDLFFBQW1CTCxTQUFBLEMsZUFBQSxDQUF0QyxDLFNBQUEsQyxHQWxDMEUsQ0EzRXRGLENBaUhBLFNBQVNNLFNBQVQsQ0FBdUJDLFFBQXZCLENBQThCQyxTQUE5QixDLFFBQ1dqRixTQUFBLENBQVUsSUFBVixDQUFnQixLLEdBQWhCLENBQXdCLEssR0FBeEIsQ0FBZ0MsVyx5QkFDN0JrRixTQUFBLENBQVNGLFFBQUEsQyxNQUFBLEUsT0FBQSxDLENBQ1RHLFNBQUEsQ0FBZ0IsTUFBTXZDLFNBQUEsQ0FBT3FDLFNBQVAsQ0FBYUMsU0FBYixDQUFxQm5CLFNBQXJCLEMsQ0FDdEJxQixTQUFBLENBQWdCLE1BQU14QyxTQUFBLENBQU9xQyxTQUFQLENBQWFDLFNBQWIsQ0FBcUJsQixTQUFyQixDLE9BQ3JCLEMsWUFDSCxDQUFZLENBQUMsR0FBR21CLFNBQUEsQyxnQkFBQSxDQUFKLENBQThCLEdBQUdDLFNBQUEsQyxnQkFBQSxDQUFqQyxDQURULEMsRUFKSixDLEVBU1gsTUFBTUMsU0FBQSxDQUFhLEMsaUJBQ2YsQ0FBaUI3QyxTQUFBLEMsZUFBQSxDQURGLEMsaUJBRWYsQyxJQUZlLEMsaUJBR2YsQ0FBaUJSLFNBQUEsQyxnQkFBQSxDQUhGLEMsZUFJZixDQUFlRSxTQUFBLEMsZ0JBQUEsRUFBMEJBLFNBQUEsQyxZQUFBLENBQTFCLENBQWlEQSxTQUFBLEMsZ0JBQUEsQ0FBakQsQ0FBc0VBLFNBQUEsQyxjQUFBLENBSnRFLEMsWUFLZixDLElBTGUsQ0FBbkIsQ0FPQSxTQUFTb0QsU0FBVCxDQUF1QkMsU0FBdkIsQ0FBOEJDLFNBQTlCLEMsUUFDV3hGLFNBQUEsQ0FBVSxJQUFWLENBQWdCLEssR0FBaEIsQ0FBd0IsSyxHQUF4QixDQUFnQyxXLHlCQUM3QnlGLFNBQUEsQ0FBU0YsU0FBQSxDLGVBQUEsRSxlQUFBLEMsQ0FDVEcsU0FBQSxDQUFnQixNQUFNOUMsU0FBQSxDQUFPNEMsU0FBUCxDQUFhQyxTQUFiLENBQXFCSixTQUFyQixDLFFBQ3JCSyxTLEVBSEosQyxFQU1YLE1BQU1DLFNBQUEsQ0FBaUJDLFNBQUQsRSwyQkFDbEIsSUFBSUMsU0FBSixDQUFRQyxTQUFSLEMsR0FDSSxDQUFDRixTLEVBQ0QsTUFBTUcsU0FBQSxDQUFXckcsQ0FBQSxDLGVBQUEsQ0FBakIsQyxPQUNPcUcsUyxFQUVYLE1BQU1DLFNBQUEsQ0FBSUosU0FBQSxDLGVBQUEsRSxlQUFBLEdBQVYsQ0FDTUssU0FBQSxDQUFLLENBQUMsQ0FBQUosU0FBQSxDQUFLRCxTQUFBLEMsZUFBQSxDQUFMLENBQUQsR0FBaUMsSUFBakMsRUFBeUNDLFNBQUEsR0FBTyxLLEdBQWhELENBQXlELEssR0FBekQsQ0FBa0VBLFNBQUEsQyxNQUFBLENBQWxFLENBQUQsRUFBZ0YsQ0FBQyxDQUFBQyxTQUFBLENBQUtGLFNBQUEsQyxnQkFBQSxDQUFMLENBQUQsR0FBZ0MsSUFBaEMsRUFBd0NFLFNBQUEsR0FBTyxLLEdBQS9DLENBQXdELEssR0FBeEQsQ0FBaUVBLFNBQUEsQyxNQUFBLENBQWpFLENBQWhGLEVBQTZKRixTQUFBLEMsZUFBQSxFLGVBQUEsR0FEdkssQ0FFTSxDQUFFTSxJQUFBLENBQUFDLFNBQUYsQ0FBUUMsS0FBQSxDQUFBQyxTQUFSLEVBQWtCM0QsU0FBQSxDQUFRa0QsU0FBUixDQUZ4QixDQUdNVSxTQUFBLENBQVc1RyxDQUFBLEMsaUJBQXNCeUcsUyxpQkFBc0JFLFMsaUJBQWdCSixTLGlCQUE1RCxDQUhqQixDLE9BSUFLLFNBQUEsQyxVQUFBLEUsWUFBQSxDLENBQ0FBLFNBQUEsQyxlQUFBLEUsZUFBQSxDQUF1Qk4sU0FBdkIsQyxDQUNBTSxTQUFBLEMsZUFBQSxFLGdCQUFBLENBQTJCVixTQUEzQixDLENBQ09VLFMsRUFiWCxDQWVNQyxTQUFBLENBQTJCLEksMkJBUTdCN0csQ0FBQSxDLFFBQUEsRSxnQkFBQSxDQUFpQyxDLFNBRTdCLENBQVMsQyxjQUNMLENBQWMsS0FBTyxDLFVBQUUsQyx3Q0FBRixDQUFQLENBRFQsQyxVQUVMLENBQVUsSUFBTThHLFNBRlgsQyxZQUdMLENBQVksS0FBTyxDLFlBQ2YsQ0FBWSxDLGdCQUFFLEMsR0FBRixDLE1BQXFCLEMsZ0JBQXJCLENBREcsQyxXQUVmLEMsZUFGZSxDLFFBR2YsQyxlQUhlLEMsYUFJZixDQUFhLEMsTUFBRSxDLGdCQUFGLENBSkUsQyxnQkFLZixDQUFnQjlFLFNBTEQsQ0FBUCxDQUhQLEMsUUFVTCxDQUFRLEksSUFWSCxDLFNBV0wsQyxFQVhLLEMsV0FZTCxDLEdBWkssQ0FGb0IsQyxtQkFnQjdCLEUsUUFDVzFCLFNBQUEsQ0FBVSxJQUFWLENBQWdCLEssR0FBaEIsQ0FBd0IsSyxHQUF4QixDQUFnQyxXLHlCQUM3QnlHLFNBQUEsQ0FBTyxJLENBQ1BDLFNBQUEsQ0FBSSxPQUFPRCxTQUFBLEMsZ0JBQUEsRSxZQUFBLENBQVAsRyxVQUFBLENBQWdEQSxTQUFBLEMsZ0JBQUEsRSxZQUFBLEdBQWhELENBQTRFQSxTQUFBLEMsZ0JBQUEsRSxlQUFBLEMsSUFDbEZDLFNBQUEsWUFBYWxHLE8sUUFDTixNQUFNa0csUyxRQUVWQSxTLEVBTkosQyxFQWpCa0IsQyxPQTBCN0IsRSwyQkFDVUMsU0FBQSxDQUFPLEksQ0FDYkEsU0FBQSxDLE9BQUEsRSxlQUFBLEcsQ0FDQSxLLGdCQUFBLEksZUFBQSxFQUErQkMsU0FBRCxFLDJCQUNwQkMsU0FBQSxDQUFXbEIsU0FBQSxDQUFjaUIsU0FBZCxDLENBQ2pCRCxTQUFBLEMsZUFBQSxFLGdCQUFBLEVBQWtCRSxTQUFsQixDLENBQ0FGLFNBQUEsQyxnQkFBQSxFQUFxQkMsUyxFQUh6QixDLEVBN0J5QixDLFFBbUM3QixFLDJCQUNVRSxTQUFBLENBQU8sSSxDQUVQQyxTQUFBLENBQU8sQyxTQUNULENBQVNELFNBQUEsQyxTQUFBLEUsU0FBQSxDQURBLEMsY0FFVCxDQUFjLE9BQU9BLFNBQUEsQyxnQkFBQSxFLGVBQUEsQ0FBUCxHLGVBQUEsQ0FBa0RBLFNBQUEsQyxTQUFBLEUsY0FBQSxHQUFsRCxDQUFnRkEsU0FBQSxDLGdCQUFBLEUsY0FBQSxDQUZyRixDLFVBR1QsQ0FBVSxPQUFPQSxTQUFBLEMsZ0JBQUEsRSxVQUFBLENBQVAsRyxlQUFBLENBQThDQSxTQUFBLEMsZ0JBQUEsRSxVQUFBLEdBQTlDLENBQXdFQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUh6RSxDLENBS2I3QyxTQUFBLENBQWU4QyxTQUFmLENBQXFCRCxTQUFBLEMsZ0JBQUEsQ0FBckIsQ0FBa0NBLFNBQUEsQyxlQUFBLENBQWxDLEMsRUEzQ3lCLEMsU0E2QzdCLEUsMkJBQ1VFLFNBQUEsQ0FBTyxJLENBQ2IsU0FBU0MsU0FBVCxDQUEyQkMsU0FBM0IsQ0FBa0NDLFNBQWxDLENBQTZDQyxTQUE3QyxDLFFBQ1dwSCxTQUFBLENBQVUsSUFBVixDQUFnQixLLEdBQWhCLENBQXdCLEssR0FBeEIsQ0FBZ0MsVyw0QkFDL0JrSCxTQUFBLEMsVUFBQSxFLGdCQUFBLEMsRUFDQXRELE9BQUEsQyxnQkFBQSxFLGVBQUEsRUFDQSxPLElBRUFzRCxTQUFBLEMsVUFBQSxFLFNBQUEsQyxFQUNBdEQsT0FBQSxDLEtBQUEsRSxnQkFBQSxFQUNBLE8sQ0FFSnNELFNBQUEsQyxlQUFBLEUsZ0JBQUEsQyxDQUNBQSxTQUFBLEMsZ0JBQUEsRSxlQUFBLENBREEsQ0FFQSxHLENBQ0lBLFNBQUEsQyxnQkFBQSxFLElBQUEsRSxlQUFBLElBQ0EsTUFBTSxDQUFFRyxVQUFBLENBQUFDLFNBQUYsRUFBaUIsTUFBTUgsU0FBQSxDQUFVRCxTQUFWLENBQWlCRSxTQUFqQixDQUE3QixDQUNBLFVBQVdHLFNBQVgsSUFBd0JELFNBQXhCLEMsSUFDUU4sU0FBQSxDLGdCQUFBLEUsZUFBQSxHQUF1QixDQUFDQSxTQUFBLEMsU0FBQSxFLGVBQUEsRUFBb0JPLFNBQXBCLEMsQ0FDeEIsU0FFSixNQUFNQyxTQUFBLENBQVc3QixTQUFBLENBQWM0QixTQUFkLENBQWpCLENBQ0FMLFNBQUEsQyxVQUFBLEUsSUFBQSxFLGdCQUFBLEVBQTRCTSxTQUE1QixDLEVBRUpOLFNBQUEsQyxVQUFBLEUsZ0JBQUEsQyxFQUVKLE1BQU9PLFNBQVAsQyxDQUNJUCxTQUFBLEMsVUFBQSxFLElBQUEsRSxnQkFBQSxFLGlCQUF5Q08sU0FBQSxDLGVBQUEsQyxpQkFBekMsQyxDQUNBN0QsT0FBQSxDLGdCQUFBLEUsZUFBQSxDQUFtQjZELFNBQW5CLEMsRUFFSlAsU0FBQSxDLGVBQUEsRSxlQUFBLEUsUUFBQSxHLENBQ0FBLFNBQUEsQyxlQUFBLEUsU0FBQSxDLEVBNUJHLEMsRUErQlhGLFNBQUEsQyxnQkFBQSxFQUFjLEssZ0JBQUEsQyxDQUNkQSxTQUFBLEMsZ0JBQUEsRUFBY3RILENBQUEsQyxRQUFBLEMsQ0FDZHNILFNBQUEsQyxnQkFBQSxFLFVBQUEsRSxvQkFBQSxDLENBQ0EsSyxnQkFBQSxFLGdCQUFBLEVBQXlCQSxTQUFBLEMsZ0JBQUEsQ0FBekIsQyxDQUNBQSxTQUFBLEMsZ0JBQUEsRUFBbUJ0SCxDQUFBLEMsZUFBQSxFLGVBQUEsRSxnQkFBQSxDLENBQ25Cc0gsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRUFBbUJBLFNBQUEsQyxhQUFBLENBQW5CLEMsQ0FDQUEsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRUFBd0JBLFNBQUEsQyxRQUFBLENBQXhCLEMsQ0FDQUEsU0FBQSxDLGVBQUEsRUFBc0J0SCxDQUFBLEMsZ0JBQUEsQyxDQUN0QnNILFNBQUEsQyxnQkFBQSxFLFFBQUEsRUFBd0JBLFNBQUEsQyxlQUFBLENBQXhCLEMsQ0FDQUEsU0FBQSxDLGVBQUEsRSxJQUFBLEUsZUFBQSxDQUFnQyxVLDJCQUN4QixDQUFDQSxTQUFBLEMsZUFBQSxFLElBQUEsRSxVQUFBLEMsR0FFREEsU0FBQSxDLGdCQUFBLEksZUFBQSxFQUErQlUsU0FBRCxFLDJCQUMxQixJQUFJQyxTQUFKLENBQ0ksQ0FBQUQsU0FBQSxHQUFlVixTQUFBLEMsZ0JBQUEsQ0FBZixFQUFzQyxDQUFDLENBQUFXLFNBQUEsQ0FBS1gsU0FBQSxDLGVBQUEsQ0FBTCxDQUFELEdBQThCLElBQTlCLEVBQXNDVyxTQUFBLEdBQU8sSyxHQUE3QyxDQUFzRCxLLEdBQXRELENBQStEQSxTQUFBLEMsUUFBQSxDQUEvRCxDQUFELEdBQStFRCxTQUFBLEMsUUFBQSxDQUFwSCxDLEVBQ0FWLFNBQUEsQyxlQUFBLEcsRUFIUixDLENBTUFBLFNBQUEsQyxPQUFBLEUsZ0JBQUEsRyxFQUVKQSxTQUFBLEMsZUFBQSxFLGdCQUFBLEcsRUFYSixDLENBYUFBLFNBQUEsQyxZQUFBLEVBQWtCdEgsQ0FBQSxDLDBEQUFBLEMsQ0FDbEJzSCxTQUFBLEMsYUFBQSxFLGdCQUFBLEVBQXdCQSxTQUFBLEMsWUFBQSxDQUF4QixDLENBQ0FBLFNBQUEsQyxZQUFBLEUsSUFBQSxFLGVBQUEsQ0FBNEIsSSwyQkFDeEIsSyxlQUFBLEcsRUFESixDLENBR0ksQ0FBQ0EsU0FBQSxDLGdCQUFBLEUsZUFBQSxFLGFBQUEsQyxFQUNEQSxTQUFBLEMsUUFBQSxFLE1BQUEsRSxnQkFBQSxDLGVBQUEsQyxDQUVKQSxTQUFBLEMsZUFBQSxFQUFhdEgsQ0FBQSxDLGVBQUEsQyxDQUNic0gsU0FBQSxDLGVBQUEsRSxnQkFBQSxHLENBRUMsQyxTQUNHLENBQVNBLFNBQUEsQyxnQkFBQSxFLGVBQUEsQ0FEWixDLGNBRUcsQ0FBYyxPQUFPQSxTQUFBLEMsZ0JBQUEsRSxjQUFBLENBQVAsRyxlQUFBLENBQWtEQSxTQUFBLEMsZ0JBQUEsRSxlQUFBLEdBQWxELENBQWdGQSxTQUFBLEMsU0FBQSxFLGVBQUEsQ0FGakcsQyxVQUdHLENBQVUsT0FBT0EsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FBUCxHLGVBQUEsQ0FBOENBLFNBQUEsQyxTQUFBLEUsZ0JBQUEsR0FBOUMsQ0FBd0VBLFNBQUEsQyxnQkFBQSxFLFVBQUEsQ0FIckYsQyxDQUtEQSxTQUFBLEMsV0FBQSxFQUFpQnRILENBQUEsQyxlQUFBLEUsVUFBQSxFLGVBQUEsRSxnQkFBQSxHLENBQ2pCc0gsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRUFBbUJBLFNBQUEsQyxlQUFBLENBQW5CLEMsQ0FDQUEsU0FBQSxDLGdCQUFBLEUsUUFBQSxFQUFtQkEsU0FBQSxDLGVBQUEsQ0FBbkIsQyxDQUNBQSxTQUFBLEMsZUFBQSxFQUFhdEgsQ0FBQSxDLGVBQUEsRSxnQkFBQSxFQUE4Q3NILFNBQUEsQyxlQUFBLENBQTlDLEMsQ0FDYixLLGVBQUEsRyxDQUNBQSxTQUFBLEMsZUFBQSxFLElBQUEsRSxlQUFBLEMsSUFBQSxDQUE2QixTQUFVWSxTQUFWLEMsMkJBQ3pCLElBQUlDLFNBQUosQ0FBUUMsU0FBUixDQUNBRixTQUFBLEMsaUJBQUEsSUFDQSxJQUFJRyxTQUFBLENBQU1ySSxDQUFBLENBQUUsSUFBRixDQUFWLENBQ0EsTUFBTXNJLFNBQUEsQyxJQUFOLENBQ01DLFNBQUEsQyxJQUROLENBRU1DLFNBQUEsQ0FBYXhJLENBQUEsQ0FBRSxJQUFGLEUsZ0JBQUEsR0FGbkIsQ0FHTXlJLFNBQUEsQ0FBSVAsU0FIVixDLEdBSUlPLFNBQUEsQyxlQUFBLEdBQVdELFNBQUEsQyxnQkFBQSxDQUFYLEVBQ0FDLFNBQUEsQyxlQUFBLEdBQVdELFNBQUEsQyxnQkFBQSxFQUFrQkYsU0FEN0IsRUFFQUcsU0FBQSxDLGdCQUFBLEdBQVdELFNBQUEsQyxnQkFBQSxDQUZYLEVBR0FDLFNBQUEsQyxnQkFBQSxHQUFXRCxTQUFBLEMsZ0JBQUEsRUFBaUJELFMsS0FDeEJGLFNBQUEsQyxlQUFBLEUsZ0JBQUEsQyxLQUNJQSxTQUFBLEMsVUFBQSxFLGdCQUFBLEMsRUFDQUEsU0FBQSxDLGVBQUEsRSxnQkFBQSxFLGVBQUEsRSxlQUFBLEMsQ0FDQUEsU0FBQSxDLFVBQUEsRSxJQUFBLEUsZ0JBQUEsR0FEQSxDQUVBLE8sQ0FHSixNQUFNSyxTQUFBLENBQU8sQyxTQUNULENBQVNwQixTQUFBLEMsZ0JBQUEsRSxlQUFBLENBREEsQyxjQUVULENBQWMsT0FBT0EsU0FBQSxDLGdCQUFBLEUsY0FBQSxDQUFQLEcsVUFBQSxDQUNSQSxTQUFBLEMsU0FBQSxFLGVBQUEsR0FEUSxDQUVSQSxTQUFBLEMsZ0JBQUEsRSxlQUFBLENBSkcsQyxVQUtULENBQVUsT0FBT0EsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FBUCxHLFVBQUEsQ0FBOENBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEdBQTlDLENBQXdFQSxTQUFBLEMsZ0JBQUEsRSxVQUFBLENBTHpFLENBQWIsQ0FPTXFCLFNBQUEsQ0FBSSxDQUFDckIsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FBRCxDQUEwQmpDLFNBQTFCLENBQTBDTyxTQVBwRCxDQVFBMkIsU0FBQSxDQUFrQmMsU0FBbEIsQ0FBdUJNLFNBQXZCLENBQTBCRCxTQUExQixFLGVBQUEsRUFDVSxJLDJCQUNOeEUsT0FBQSxDLGdCQUFBLEUsc0JBQUEsQyxDQUNBQSxPQUFBLEMsS0FBQSxFLFNBQUEsQyxDQUVBbUUsU0FBQSxDLGVBQUEsRSxnQkFBQSxFLFVBQUEsRSxlQUFBLEMsRUFMSixFLGVBQUEsRUFPWU8sU0FBRCxFLDJCQUNQUCxTQUFBLEMsZUFBQSxFLGdCQUFBLEUsVUFBQSxFLGVBQUEsQyxDQUNBbkUsT0FBQSxDLGdCQUFBLEUsZUFBQSxDQUFxQjBFLFNBQXJCLEMsRUFUSixDLFVBWUtQLFNBQUEsQyxVQUFBLEUsZUFBQSxDLENBRUxBLFNBQUEsQyxnQkFBQSxFLElBQUEsRSxnQkFBQSxHLENBRUFBLFNBQUEsQyxnQkFBQSxFLGVBQUEsQyxTQUVLQSxTQUFBLEMsZ0JBQUEsRSxJQUFBLEUsZ0JBQUEsSSxnQkFBQSxFLElBQ0xBLFNBQUEsQyxnQkFBQSxFLElBQUEsRSxnQkFBQSxHLENBRUFBLFNBQUEsQyxnQkFBQSxFLHdCQUFBLEMsY0FLSixNQUFNUSxTQUFBLENBQVFSLFNBQUEsQyxlQUFBLEUsT0FBQSxDQUFkLENBQ01TLFNBQUEsQ0FBWVQsU0FBQSxDLGVBQUEsRSxnQkFBQSxDQURsQixDLEdBRUlmLFNBQUEsQyxTQUFBLEUsZUFBQSxHQUE2QixDQUFDQSxTQUFBLEMsZ0JBQUEsRSxlQUFBLEVBQTBCd0IsU0FBMUIsQyxDQUM5QixPQUVKeEIsU0FBQSxDLFFBQUEsRSxlQUFBLEUsZ0JBQUEsQ0FBOEJ3QixTQUE5QixFQUNBLE1BQU1DLFNBQUEsQ0FBZSxDQUFDLENBQUFaLFNBQUEsQ0FBS1csU0FBQSxDLGVBQUEsQ0FBTCxDQUFELEdBQWlDLElBQWpDLEVBQXlDWCxTQUFBLEdBQU8sSyxHQUFoRCxDQUF5RCxLLEdBQXpELENBQWtFQSxTQUFBLEMsTUFBQSxDQUFsRSxDQUFELEVBQWdGLENBQUMsQ0FBQUMsU0FBQSxDQUFLVSxTQUFBLEMsZ0JBQUEsQ0FBTCxDQUFELEdBQWdDLElBQWhDLEVBQXdDVixTQUFBLEdBQU8sSyxHQUEvQyxDQUF3RCxLLEdBQXhELENBQWlFQSxTQUFBLEMsTUFBQSxDQUFqRSxDQUFoRixFQUE2SlUsU0FBQSxDLGVBQUEsRSxlQUFBLEdBQWpMLENBQ01FLFNBQUEsQyxJQUFZRCxTLE1BQWdCRixTLElBRGxDLENBRUF2QixTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFQUFnQjBCLFNBQWhCLEMsQ0FDQTFCLFNBQUEsQyxnQkFBQSxFLGVBQUEsRSxRQUFBLEMsQ0FDQUEsU0FBQSxDLFdBQUEsRSxnQkFBQSxHLEdBL0RSLEMsQ0FrRUF0SCxDQUFBLENBQUVpSixRQUFGLEUsSUFBQSxFLE9BQUEsQ0FBd0IsU0FBVUMsU0FBVixDLDJCQUVoQixDQUFDbEosQ0FBQSxDQUFFa0osU0FBQSxDLGdCQUFBLENBQUYsRSxlQUFBLEVBQXdCNUIsU0FBQSxDLGdCQUFBLENBQXhCLEUsZ0JBQUEsQyxFQUNEQSxTQUFBLEMsZUFBQSxFLGdCQUFBLEcsRUFIUixDLEVBNUx5QixDQUFqQyxDLEVBdkJKLENBNk5NNkIsU0FBQSxDQUFlQyxTQUFELEUsMkJBQ2hCLElBQUlDLFNBQUosQ0FBUUMsU0FBUixDQUFZQyxTQUFaLEMsR0FDSSxDQUFDSCxTLEVBQ0QsTUFBTUksU0FBQSxDQUFXeEosQ0FBQSxDLGVBQUEsQ0FBakIsQyxPQUNPd0osUyxFQUVYLE1BQU1DLFNBQUEsQ0FBSUwsU0FBQSxDLGVBQUEsRSxVQUFBLEdBQVYsQ0FDQSxJQUFJTSxTQUFBLENBQUssQ0FBQyxDQUFBTCxTQUFBLENBQUtELFNBQUEsQyxhQUFBLENBQUwsQ0FBRCxHQUFpQyxJQUFqQyxFQUF5Q0MsU0FBQSxHQUFPLEssR0FBaEQsQ0FBeUQsSyxHQUF6RCxDQUFrRUEsU0FBQSxDLE1BQUEsQ0FBbEUsQ0FBRCxFQUFnRixDQUFDLENBQUFDLFNBQUEsQ0FBS0YsU0FBQSxDLGdCQUFBLENBQUwsQ0FBRCxHQUFnQyxJQUFoQyxFQUF3Q0UsU0FBQSxHQUFPLEssR0FBL0MsQ0FBd0QsSyxHQUF4RCxDQUFpRUEsU0FBQSxDLGdCQUFBLENBQWpFLENBQWhGLEVBQTZKRixTQUFBLEMsZUFBQSxFLGVBQUEsR0FBckssQ0FDSU8sU0FBQSxDQUFNLENBQUFKLFNBQUEsQ0FBS0gsU0FBQSxDLGdCQUFBLENBQUwsQ0FBRCxHQUFnQyxJQUFoQyxFQUF3Q0csU0FBQSxHQUFPLEssR0FBL0MsQ0FBd0QsSyxHQUF4RCxDQUFpRUEsU0FBQSxDLGdCQUFBLENBRDFFLENBRUFHLFNBQUEsRUFBS0MsU0FBQSxHQUFPN0MsU0FBUCxFQUFvQnNDLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEVBQTBCLE1BQTFCLENBQXBCLEMsV0FBZ0VPLFMsSUFBaEUsQyxFQUFMLENBQ0EsTUFBTSxDQUFFbkQsSUFBQSxDQUFBb0QsU0FBRixDQUFRbEQsS0FBQSxDQUFBbUQsU0FBUixFQUFrQjdHLFNBQUEsQ0FBUW9HLFNBQVIsQ0FBeEIsQ0FDTVUsU0FBQSxDQUFXOUosQ0FBQSxDLGdCQUFBLENBRGpCLEMsR0FFSW9KLFNBQUEsQyxXQUFBLEksWUFDQSxNQUFNVyxTQUFBLENBQVcvSixDQUFBLEMsZUFBQSxDQUFqQixDQUNBOEosU0FBQSxDLGdCQUFBLEVBQWdCQyxTQUFoQixDLENBRUFBLFNBQUEsQyxJQUFBLEUsT0FBQSxDQUFxQixVLDJCQUNiQSxTQUFBLEMsZUFBQSxFLFdBQUEsQyxDQUNBQSxTQUFBLEMsZUFBQSxFLGdCQUFBLEUsVUFBQSxFLGVBQUEsQyxDQUdBQSxTQUFBLEMsZUFBQSxFLGVBQUEsRSxlQUFBLEUsV0FBQSxDLEVBTFIsQyxTQVNKRCxTQUFBLEMsZ0JBQUEsRUFBZ0I5SixDQUFBLEMsaUJBQWtCNEosUyw0QkFBc0JDLFMsa0JBQWVILFMsZ0JBQXZELENBQWhCLEMsQ0FDQUksU0FBQSxDLGVBQUEsRSxZQUFBLEMsQ0FDQUEsU0FBQSxDLGVBQUEsRSxlQUFBLENBQXVCTCxTQUF2QixDLENBQ0FLLFNBQUEsQyxlQUFBLEUsZ0JBQUEsQ0FBMkJWLFNBQTNCLEMsQ0FDT1UsUyxFQTFQWCxDQTRQTUUsU0FBQSxDQUFrQyxJLDJCQVFwQ2hLLENBQUEsQyxRQUFBLEUsZUFBQSxDQUF3QyxDLFNBRXBDLENBQVMsQyxjQUNMLENBQWMsS0FBTyxDLFVBQUUsQyxnQkFBRixDQUFQLENBRFQsQyxVQUVMLENBQVUsSUFBTThHLFNBRlgsQyxTQUdMLEMsRUFISyxDQUYyQixDLFdBT3BDLEUsQ0FDSSxJQUFJbUQsU0FBSixDLE9BQ08zSixTQUFBLENBQVUsSUFBVixDQUFnQixLLEdBQWhCLENBQXdCLEssR0FBeEIsQ0FBZ0MsVyx5QkFDN0I0SixTQUFBLENBQU8sSSxDQUNQQyxTQUFBLENBQWdCLElBQUlDLEdBQUosQ0FBUyxDQUFBSCxTQUFBLENBQUtDLFNBQUEsQyxnQkFBQSxFLEtBQUEsR0FBTCxDQUFELEdBQ2QsSUFEYyxFQUNORCxTQUFBLEdBQU8sSyxHQURELENBQ1UsSyxHQURWLENBQ21CQSxTQUFBLEMsZUFBQSxJLE9BQUEsRSxHQUFBLENBRDNCLEMsQ0FFaEJJLFNBQUEsQ0FBTyxDLFNBQ1QsQ0FBU0gsU0FBQSxDLFNBQUEsRSxlQUFBLENBREEsQyxjQUVULENBQWMsT0FBT0EsU0FBQSxDLFNBQUEsRSxlQUFBLENBQVAsRyxlQUFBLENBQWtEQSxTQUFBLEMsZ0JBQUEsRSxlQUFBLEdBQWxELENBQWdGQSxTQUFBLEMsZ0JBQUEsRSxlQUFBLENBRnJGLEMsVUFHVCxDQUFVLE9BQU9BLFNBQUEsQyxnQkFBQSxFLFVBQUEsQ0FBUCxHLGVBQUEsQ0FBOENBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEdBQTlDLENBQXdFQSxTQUFBLEMsZ0JBQUEsRSxVQUFBLENBSHpFLEMsQ0FLUEksU0FBQSxDQUFTLE1BQU1DLFNBQUEsQ0FBc0JGLFNBQXRCLEMsQ0FDckIsSyxnQkFBQSxFQUFrQkMsU0FBbEIsQ0FBMEJILFNBQTFCLEMsRUFWRyxDLEVBVHlCLEMsY0FzQnBDLENBQWFLLFNBQWIsQ0FBcUJDLFNBQXJCLEMsMkJBQ1VDLFNBQUEsQ0FBTyxJLENBQ2JBLFNBQUEsQyxlQUFBLEUsT0FBQSxJLEdBQ0ksQ0FBQ0YsU0FBQSxDLFFBQUEsQyxDQUNELE9BRUosTUFBTUcsU0FBQSxDQUFPSCxTQUFBLEMsZUFBQSxDQUFiLENBQ01JLFNBQUEsQ0FBZXpCLFNBQUEsQ0FBWXdCLFNBQVosQ0FEckIsQ0FFQUQsU0FBQSxDLGVBQUEsRSxnQkFBQSxFQUFrQkUsU0FBbEIsRUFDQSxNQUFNQyxTQUFBLEMsRUFBTixDQUNBLEssZ0JBQUEsRUFBc0JELFNBQUEsQyxnQkFBQSxFLElBQUEsQ0FBdEIsQ0FBbURELFNBQW5ELENBQXlERSxTQUF6RCxDQUFpRUosU0FBakUsQyxDQUNBRyxTQUFBLEMsZUFBQSxFLGdCQUFBLEUsZUFBQSxFLGVBQUEsQyxDQUNBLEssZUFBQSxFQUFtQkgsU0FBbkIsQyxFQWxDZ0MsQyxrQkFvQ3BDLENBQWlCSyxTQUFqQixDQUEwQkMsU0FBMUIsQ0FBa0NDLFNBQWxDLENBQTBDQyxTQUExQyxDLDJCQUNVQyxTQUFBLENBQUksQ0FBQyxDQUFFQyxJQUFBLENBQUFDLFNBQUYsQ0FBUUMsY0FBQSxDQUFBQyxTQUFSLENBQUQsRyxJQUNGQSxTQUFBLEcsV0FDT0YsUyxRQUVERSxTLEtBQWtCRixTLEdBRTFCRyxTQUFBLENBQVdSLFNBQUEsQyxVQUFBLEdBQW1CLEUsQ0FDOUJTLFNBQUEsQ0FBV1QsU0FBQSxDLFVBQUEsR0FBbUIsRSxDQUM5QlUsU0FBQSxDQUFzQixDQUFDLEdBQUdGLFNBQUosQ0FBYyxHQUFHQyxTQUFqQixDLENBQzVCLFVBQVdFLFNBQVgsSUFBb0JELFNBQXBCLEMsQ0FDSSxNQUFNRSxTQUFBLENBQVd4QyxTQUFBLENBQVl1QyxTQUFaLENBQWpCLENBQ0FaLFNBQUEsQyxRQUFBLEVBQWVhLFNBQWYsRUFDQSxJQUFJQyxTQUFBLEMsRUFBSixDQUNJRixTQUFBLEMsZ0JBQUEsSSxhQUNJVixTLENBQ0FZLFNBQUEsQ0FBVVosU0FBQSxDLEdBQUEsQ0FBZUUsU0FBQSxDQUFFUSxTQUFBLEMsZ0JBQUEsQ0FBRixDLENBR3pCRSxTQUFBLENBQVVWLFNBQUEsQ0FBRVEsU0FBQSxDLGdCQUFBLENBQUYsQyxDQUVkQyxTQUFBLEMsZUFBQSxFLGdCQUFBLENBQTRCQyxTQUE1QixDLEVBRUosTUFBTUMsU0FBQSxDQUFjSCxTQUFBLEMsZ0JBQUEsR0FBa0JBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLENBQXRDLENBQ01JLFNBQUEsQ0FBY0osU0FBQSxDLGVBQUEsR0FBa0JBLFNBQUEsQyxlQUFBLEUsZ0JBQUEsQ0FEdEMsQ0FFSSxDQUFDRyxTQUFELEVBQWdCLENBQUNDLFMsQ0FDakJILFNBQUEsQyxlQUFBLEUsZ0JBQUEsRSxlQUFBLEUsZ0JBQUEsQyxFQUdBLEssZ0JBQUEsRUFBc0JBLFNBQUEsQyxnQkFBQSxFLElBQUEsQ0FBdEIsQ0FBK0NELFNBQS9DLENBQXNERSxTQUF0RCxDQUErRFgsU0FBL0QsQyxDQUNBVSxTQUFBLEMsZUFBQSxFLGdCQUFBLEUsZUFBQSxFLGVBQUEsQyxJQWxFd0IsQyx1QkFzRXBDLEUsMkJBQ0ksSUFBSUksU0FBSixDQUNBLE1BQU1DLFNBQUEsQ0FBTyxJQUFiLENBQ01DLFNBQUEsQ0FBaUIsSUFBSTdCLEdBQUosQ0FBUyxDQUFBMkIsU0FBQSxDQUFLQyxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxHQUFMLENBQUQsR0FDZixJQURlLEVBQ1BELFNBQUEsR0FBTyxLLEdBREEsQ0FDUyxLLEdBRFQsQ0FDa0JBLFNBQUEsQyxlQUFBLEksZ0JBQUEsRSxHQUFBLENBRDFCLENBRHZCLENBR0EsSyxlQUFBLEVBQW1CRSxTQUFuQixDLEVBM0VnQyxDLGVBNkVwQyxDQUFjQyxTQUFkLEMsMkJBQ0lsTSxDQUFBLEMsZ0JBQUEsRSxnQkFBQSxFQUE0QixVLDJCQUNsQm1NLFNBQUEsQ0FBUW5NLENBQUEsQ0FBRSxJQUFGLEMsQ0FDUm9NLFNBQUEsQ0FBSUQsU0FBQSxDLGVBQUEsRSxnQkFBQSxDLENBQ05DLFNBQUEsRUFBS0YsU0FBQSxDLGdCQUFBLEVBQW1CRSxTQUFuQixDLEVBQ0xELFNBQUEsQyxnQkFBQSxFLGVBQUEsRSxlQUFBLEUsZ0JBQUEsRSxlQUFBLEUsU0FBQSxDLEVBSlIsQyxFQTlFZ0MsQyxnQkFzRnBDLEUsMkJBQ1VFLFNBQUEsQ0FBTyxJLENBQ1BDLFNBQUEsQ0FBTyxFLENBRWJ0TSxDQUFBLEMsc0JBQUEsRSxnQkFBQSxFQUE0QixVLDJCQUNsQnVNLFNBQUEsQ0FBUXZNLENBQUEsQ0FBRSxJQUFGLEMsSUFFVnVNLFNBQUEsQyxnQkFBQSxFLGVBQUEsRSxnQkFBQSxFLEtBQ0EsTUFBTUMsU0FBQSxDQUFJRCxTQUFBLEMsZUFBQSxFLFlBQUEsQ0FBVixDLEdBQ0lDLFMsQ0FDQUYsU0FBQSxDLGVBQUEsRUFBVUUsU0FBVixFLEVBTlosRUFTQSxNQUFNQyxTQUFBLENBQVEsQ0FBQyxHQUFHLElBQUlyQyxHQUFKLENBQVFrQyxTQUFSLENBQUosRSxNQUFBLEksZUFBQSxFLEdBQUEsQ0FBZCxDQUNBRCxTQUFBLEMsUUFBQSxFLGdCQUFBLEVBQWdCSSxTQUFoQixDLENBQ0FKLFNBQUEsQyxnQkFBQSxFLFNBQUEsRSxlQUFBLEMsRUFyR2dDLEMsU0F1R3BDLEUsMkJBQ1VLLFNBQUEsQ0FBTyxJLENBQ2JBLFNBQUEsQyxnQkFBQSxFQUFjLEssU0FBQSxDLENBQ2RBLFNBQUEsQyxRQUFBLEVBQWMxTSxDQUFBLEMsZUFBQSxDLENBQ2QwTSxTQUFBLEMsUUFBQSxFLFVBQUEsRSxnQkFBQSxDLENBQ0EsSyxnQkFBQSxFLEdBQUEsRSxnQkFBQSxFLGdCQUFBLEVBQTJDQSxTQUFBLEMsZ0JBQUEsRSxHQUFBLENBQTNDLENBQTJELEssZ0JBQUEsRSxHQUFBLENBQTNELEMsQ0FFQUEsU0FBQSxDLGdCQUFBLEVBQW1CMU0sQ0FBQSxDLGVBQUEsRSxlQUFBLEUsZ0JBQUEsQyxDQUNuQjBNLFNBQUEsQyxRQUFBLEUsZ0JBQUEsRUFBbUJBLFNBQUEsQyxnQkFBQSxDQUFuQixDLENBQ0FBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEVBQXdCQSxTQUFBLEMsUUFBQSxDQUF4QixDLENBQ0FBLFNBQUEsQyxnQkFBQSxFQUFzQjFNLENBQUEsQyxnQkFBQSxDLENBQ3RCME0sU0FBQSxDLGFBQUEsRSxnQkFBQSxFQUF3QkEsU0FBQSxDLGVBQUEsQ0FBeEIsQyxDQUNBQSxTQUFBLEMsZUFBQSxFLElBQUEsRSxlQUFBLENBQWdDLFUsMkJBQzVCQSxTQUFBLEMsV0FBQSxFLGdCQUFBLEcsQ0FDQUEsU0FBQSxDLGVBQUEsRSxnQkFBQSxHQURBLEMsR0FFSUEsU0FBQSxDLFdBQUEsRSxJQUFBLEUsZ0JBQUEsQyxFQUNBQyxTQUFBLEMsZUFBQSxJQUNBLE1BQU1DLFNBQUEsQ0FBU0YsU0FBQSxDLGVBQUEsRSxRQUFBLEdBQWYsQ0FDQUMsU0FBQSxDLGdCQUFBLEVBQXFCLEMsS0FDakIsQ0FBUUMsU0FBQSxDLGdCQUFBLEMsS0FEUyxDLE9BRWpCLEMscUJBQXNCLENBQUFBLFNBQUEsQyxnQkFBQSxFQUFjRixTQUFBLEMsV0FBQSxFLGVBQUEsR0FBZCxDLGlCQUZMLENBQXJCLEMsQ0FJQUEsU0FBQSxDLGdCQUFBLEcsQ0FDQUEsU0FBQSxDLGdCQUFBLEcsT0FHQUMsU0FBQSxDLGdCQUFBLEcsRUFkUixDQVZBLENBMkJJLENBQUNELFNBQUEsQyxnQkFBQSxFLGVBQUEsRSxhQUFBLEMsRUFDREEsU0FBQSxDLFFBQUEsRSxlQUFBLEUsYUFBQSxDLGVBQUEsQyxDQUVKQSxTQUFBLEMsZUFBQSxFQUFhMU0sQ0FBQSxDLGVBQUEsQyxDQUNiME0sU0FBQSxDLGVBQUEsRSxNQUFBLEcsQ0FDQUEsU0FBQSxDLGVBQUEsRUFBaUIxTSxDQUFBLEMsZUFBQSxFLFVBQUEsRSxlQUFBLEUsZ0JBQUEsR0FGakIsQ0FJQSxNQUFNNk0sU0FBQSxDQUFrQjdNLENBQUEsQyxnQkFBQSxDQUF4QixDQUNNOE0sU0FBQSxDQUFnQjlNLENBQUEsQyxnQkFBQSxDQUR0QixDQUVNMk0sU0FBQSxDQUFtQjNNLENBQUEsQyxnQkFBQSxFLGdCQUFBLEVBQWlENk0sU0FBakQsQ0FBa0VDLFNBQWxFLENBRnpCLENBR0FILFNBQUEsQyxNQUFBLEcsQ0FFQUUsU0FBQSxDLElBQUEsRSxlQUFBLENBQTRCLEksMkJBQ3hCSCxTQUFBLEMsZ0JBQUEsRyxDQUNBQSxTQUFBLEMsV0FBQSxFLGdCQUFBLEcsRUFGSixDLENBSUFJLFNBQUEsQyxJQUFBLEUsZUFBQSxDQUEwQixJLDJCQUN0QkosU0FBQSxDLFdBQUEsRSxnQkFBQSxHLEVBREosQyxDQUdBQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFQUFtQkEsU0FBQSxDLGVBQUEsQ0FBbkIsQyxDQUNBQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFQUFtQkEsU0FBQSxDLGVBQUEsQ0FBbkIsQyxDQUNBQSxTQUFBLEMsZUFBQSxFQUFhMU0sQ0FBQSxDLGVBQUEsQyxDQUNiME0sU0FBQSxDLGVBQUEsRSxlQUFBLEksZ0JBQUEsRUFBOEJBLFNBQUEsQyxlQUFBLENBQTlCLENBQTBDQyxTQUExQyxDLENBQ0FELFNBQUEsQyxlQUFBLEUsSUFBQSxFLGVBQUEsQyxJQUFBLENBQTZCLFNBQVVLLFNBQVYsQywyQkFDekJBLFNBQUEsQyxlQUFBLElBQ0EsSUFBSUMsU0FBQSxDQUFNaE4sQ0FBQSxDQUFFLElBQUYsQ0FBVixDQUNBLE1BQU1pTixTQUFBLEMsSUFBTixDQUNNQyxTQUFBLEMsSUFETixDQUVNQyxTQUFBLENBQWFuTixDQUFBLENBQUUsSUFBRixFLGdCQUFBLEdBRm5CLENBR01vTixTQUFBLENBQUlMLFNBSFYsQyxHQUlJSyxTQUFBLEMsZUFBQSxHQUFXRCxTQUFBLEMsTUFBQSxDQUFYLEVBQ0FDLFNBQUEsQyxPQUFBLEdBQVdELFNBQUEsQyxNQUFBLEVBQWtCRixTQUQ3QixFQUVBRyxTQUFBLEMsZ0JBQUEsR0FBV0QsU0FBQSxDLGdCQUFBLENBRlgsRUFHQUMsU0FBQSxDLE9BQUEsR0FBV0QsU0FBQSxDLGdCQUFBLEVBQWlCRCxTLEVBQzVCaEosT0FBQSxDLGdCQUFBLEUsZ0JBQUEsQyxDQUNBQSxPQUFBLEMsS0FBQSxFLGdCQUFBLENBQTJCOEksU0FBQSxDLGVBQUEsRSxPQUFBLENBQTNCLENBQThDQSxTQUFBLEMsTUFBQSxFLGdCQUFBLENBQTlDLENBREEsQyxHQUVJQSxTQUFBLEMsZUFBQSxFLGdCQUFBLEMsQ0FDQUEsU0FBQSxDLGVBQUEsRSxnQkFBQSxFLGVBQUEsRSxlQUFBLEMsQ0FDQUEsU0FBQSxDLGdCQUFBLEUsSUFBQSxFLGdCQUFBLEcsU0FFS0EsU0FBQSxDLGVBQUEsRSxlQUFBLEMsQ0FFTEEsU0FBQSxDLFVBQUEsRSxJQUFBLEUsUUFBQSxHLENBRUFBLFNBQUEsQyxnQkFBQSxFLGVBQUEsQyxTQUVLQSxTQUFBLEMsZ0JBQUEsRSxJQUFBLEUsVUFBQSxJLGdCQUFBLEUsSUFDTEEsU0FBQSxDLGdCQUFBLEUsSUFBQSxFLGdCQUFBLEcsQ0FFQUEsU0FBQSxDLGdCQUFBLEUsZUFBQSxDLFVBMUJaLEMsQ0ErQkFoTixDQUFBLENBQUVpSixRQUFGLEUsSUFBQSxFLGVBQUEsQ0FBd0IsU0FBVW9FLFNBQVYsQywyQkFFaEIsQ0FBQ3JOLENBQUEsQ0FBRXFOLFNBQUEsQyxnQkFBQSxDQUFGLEUsZUFBQSxFQUF3QlgsU0FBQSxDLGdCQUFBLENBQXhCLEUsZ0JBQUEsQyxFQUNEQSxTQUFBLEMsV0FBQSxFLGdCQUFBLEcsRUFIUixDLENBTUEsSyxnQkFBQSxHLEVBaE1nQyxDQUF4QyxDLEVBcFFKLENBd2NNbkMsU0FBQSxDQUF3QixDQUFDLENBQUVwSCxZQUFBLENBQUFtSyxTQUFGLENBQWdCakssUUFBQSxDQUFBa0ssU0FBaEIsQ0FBMEJoSyxPQUFBLENBQUFpSyxTQUExQixDQUFELEdBQTBDbE4sU0FBQSxDQUFVLEssR0FBVixDQUFrQixLLEdBQWxCLENBQTBCLEssR0FBMUIsQ0FBa0MsVywyQkFDaEdtTixTQUFBLENBQVVELFMsa0JBQ1ZFLFNBQUEsQ0FBU0QsUyxpQkFDVEUsU0FBQSxDQUFPLE1BQU0zSixLQUFBLENBQU0wSixTQUFOLENBQVcsQyxRQUMxQixDLGdCQUQwQixDLE1BRTFCLENBQU16SixJQUFBLEMsZUFBQSxFQUFlLEMsY0FDakIsQ0FBQXFKLFNBRGlCLEMsVUFFakIsQ0FBQUMsU0FGaUIsQ0FBZixDQUZvQixDLFNBTTFCLENBQVMsQyxjQUFFLEMsZUFBRixDQU5pQixDQUFYLEMsSUFRZkksU0FBQSxDLFFBQUEsSSxZQUNBekosT0FBQSxDLGdCQUFBLEUsZUFBQSxDQUEwQ3lKLFNBQUEsQyxRQUFBLENBQTFDLENBQXVEQSxTQUFBLEMsZUFBQSxDQUF2RCxDLENBQ08sQyxRQUFFLENBQVEsSUFBVixDLENBRVh6SixPQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUEwQnlKLFNBQUEsQyxnQkFBQSxDQUExQixDQUF1Q0EsU0FBQSxDLGVBQUEsQ0FBdkMsRUFDQSxNQUFNQyxTQUFBLENBQVcsTUFBTUQsU0FBQSxDLGdCQUFBLEdBQXZCLENBQ01FLFNBQUEsQ0FBU0QsU0FBQSxDLGVBQUEsQ0FEZixDLE1BRU8sQyxRQUFFLENBQUFDLFNBQUYsQyxFQWxCNkQsQ0F4Y3hFLENBNmRNQyxTQUFBLENBQXdCLEksMkJBQ3BCQyxTQUFBLENBQVkvTixDQUFBLEMsc0JBQUEsQyxDQUNaZ08sU0FBQSxDQUFhRCxTQUFBLEMsZ0JBQUEsRyxDQUNiRSxTQUFBLENBQVVDLEdBQUEsQyxnQkFBQSxFLGVBQUEsRUFBZUYsU0FBZixDLElBQ1osQ0FBQ0MsUyxDQUNELE9BQU9uSCxTQUFQLENBRUosTUFBTSxDQUFFekQsUUFBQSxDQUFBOEssU0FBRixDQUFZQyxZQUFBLENBQUFDLFNBQVosQ0FBMEJDLGNBQUEsQ0FBQUMsU0FBMUIsQ0FBMENDLGdCQUFBLENBQUFDLFNBQTFDLENBQTREQyxRQUFBLENBQUFDLFNBQTVELENBQXNFQyxRQUFBLENBQUFDLFNBQXRFLENBQWdGQyxlQUFBLENBQUFDLFNBQWhGLENBQWlHQyxjQUFBLENBQUFDLFNBQWpHLEVBQW9IaEIsU0FBMUgsQyxNQUNPLEMsVUFDSCxDQUFBRSxTQURHLEMsY0FFSCxDQUFBRSxTQUZHLEMsZ0JBR0gsQ0FBQUUsU0FIRyxDLGtCQUlILENBQUFFLFNBSkcsQyxVQUtILENBQUFFLFNBTEcsQyxVQU1ILENBQUFFLFNBTkcsQyxpQkFPSCxDQUFBRSxTQVBHLEMsZ0JBUUgsQ0FBQUUsU0FSRyxDLEVBcmVYLENBZ2ZNQyxTQUFBLENBQStCLEksT0FDMUIsQyxjQUNILENBQWNDLFNBRFgsQyxFQWpmWCxDQXFmTUEsU0FBQSxDQUF3QixJLDJCQUNwQkMsU0FBQSxDQUFZcFAsQ0FBQSxDLHNCQUFBLEMsQ0FDWnFQLFNBQUEsQ0FBYUQsU0FBQSxDLGdCQUFBLEcsQ0FDYkUsU0FBQSxDQUFheEIsU0FBQSxFLElBQ2YsQ0FBQ3dCLFMsUUFDTXhJLFMsT0FFSixDLElBQ0gsQ0FBSXVJLFNBREQsQyxVQUVILENBQVVDLFNBQUEsQyxnQkFBQSxDQUZQLEMsY0FHSCxDQUFjQSxTQUFBLEMsZ0JBQUEsQ0FIWCxDLGdCQUlILENBQWdCQSxTQUFBLEMsZUFBQSxDQUpiLEMsa0JBTUgsQ0FBa0JBLFNBQUEsQyxnQkFBQSxDQU5mLEMsVUFRSCxDQUFVQSxTQUFBLEMsZ0JBQUEsSSxnQkFBQSxDQUE2Q0EsU0FBQSxDLFVBQUEsQ0FBN0MsQ0FBbUV4SSxTQVIxRSxDLFVBU0gsQ0FBVXdJLFNBQUEsQyxnQkFBQSxJLFVBQUEsQ0FBNkNBLFNBQUEsQyxVQUFBLENBQTdDLENBQW1FeEksU0FUMUUsQyxpQkFVSCxDQUFpQndJLFNBQUEsQyxlQUFBLENBVmQsQyxnQkFXSCxDQUFnQkEsU0FBQSxDLGdCQUFBLENBWGIsQyxFQTVmWCxDQTJnQkFwQixHQUFBLEMsZ0JBQUEsRSxlQUFBLEUsNEJBQUEsQ0FBcUQsQyxVQUNqRCxDLE9BRGlELEMsT0FFakQsQyxlQUZpRCxDLE9BR2pELEMsZUFIaUQsQyxNQUlqRCxDLGdCQUppRCxDLGNBS2pELEMsZ0JBTGlELEMsVUFNakQsQ0FBVSxDLFFBQ04sQ0FBUSxDLE9BQUUsQyxHQUFGLENBREYsQyxRQUVOLENBQVEsQyxPQUFFLEMsR0FBRixDQUZGLEMsTUFHTixDQUFNLEMsT0FBRSxDLEVBQUYsQ0FIQSxDLFVBSU4sQ0FBVSxDLE9BQUUsQyxFQUFGLEMsVUFBYSxDLElBQWIsQyxNQUE2QixDLGdCQUE3QixDQUpKLEMsY0FLTixDQUFjLEMsT0FDVixDLEVBRFUsQyxVQUVWLEMsSUFGVSxDLFVBR1YsQ0FBV3FCLFNBQUQsRSxJQUNGQSxTQUFBLEcsR0FDQSxNLEdBQUEsQyxZQUxFLENBTFIsQyxrQkFjTixDQUFrQixDLE9BQUUsQyxJQUFGLEMsVUFBZSxDLElBQWYsQ0FkWixDLFFBaUJOLENBQVEsQyxPQUFFLEMsRUFBRixDLFVBQWEsQyxHQUFiLEMsVUFBOEIsQ0FBVSxJLElBQXhDLENBakJGLEMsa0JBa0JOLENBQWtCLEMsT0FBRSxDLEtBQUYsQyxVQUFlLEMsSUFBZixDQWxCWixDLGVBbUJOLENBQWUsQyxPQUFFLEMsSUFBRixDLFVBQWUsQyxJQUFmLENBbkJULEMsV0FvQk4sQ0FBVyxDLE9BQUUsQyxHQUFGLEMsVUFBYSxDLElBQWIsQ0FwQkwsQyxlQXFCTixDQUFlLEMsT0FBRSxDLEVBQUYsQyxVQUFhLEMsSUFBYixDQXJCVCxDLGFBc0JOLENBQWEsQyxPQUFFLEMsRUFBRixDLFVBQWEsQyxHQUFiLENBdEJQLENBTnVDLEMsU0ErQmpELEMsR0EvQmlELEMsT0FnQ2pELEUsa0NBQ1csSyxnQkFBQSxHLGtCQWpDc0MsQyxZQW1DakQsRSxrQ0FDVyxLLE1BQUEsRSxnQkFBQSxDLElBcENzQyxDLGVBc0NqRCxFLDJCQUNJMUksU0FBQSxFLENBQ0FtRCxTQUFBLEUsQ0FDQXBLLFNBQUEsQ0FBNEJzTyxHQUE1QixDQUFpQyxJQUFqQyxDLENBS0FsTyxDQUFBLEMsZUFBQSxFLElBQUEsRSxlQUFBLENBQThDLEksMkJBQ3BDd1AsU0FBQSxDQUFVeFAsQ0FBQSxDLGdCQUFBLEUsZUFBQSxFLGVBQUEsQyxDQUNad1AsUyxDQUNBeFAsQ0FBQSxDLGdCQUFBLEUsS0FBQSxFLEdBQUEsQyxDQUdBQSxDQUFBLEMsb0JBQUEsRSxnQkFBQSxFLEdBQUEsQyxFQU5SLENBUEEsQ0FtQkEsTUFBTXlQLFNBQUEsQ0FBVXpQLENBQUEsQyxlQUFBLENBQWhCLENBQ0F5UCxTQUFBLEMsZUFBQSxFQUFvQjNMLE1BQUEsQyxRQUFBLEVBQWNBLE1BQUEsQyxRQUFBLEVBQWMsRUFBZCxDQUFrQm9MLFNBQUEsRUFBbEIsQ0FBZCxDQUFpRSxDLFFBQUUsQ0FBT1EsU0FBUCxDLGtDQUN4RUEsU0FBQSxDLGdCQUFBLEksaUJBRHNFLEMsY0FHakYsQ0FBYUMsU0FBYixDLGtDQUNXQSxTQUFBLEMsZ0JBQUEsSSxpQkFKc0UsQ0FBakUsQ0FBcEIsQyxDQU9BM1AsQ0FBQSxDLHlCQUFBLENBUEEsQ0FRQSxNQUFNNFAsU0FBQSxDQUFpQjVQLENBQUEsQyxlQUFBLENBQXZCLENBQ0E0UCxTQUFBLEMsZUFBQSxFQUFrQzlMLE1BQUEsQyxnQkFBQSxFQUFjLEVBQWQsQ0FBa0JvTCxTQUFBLEVBQWxCLENBQWxDLEMsRUFwRTZDLEMsWUFzRWpELEUsMkJBQ1VXLFNBQUEsQ0FBbUI3UCxDQUFBLEMsZ0JBQUEsRSxlQUFBLEUsZUFBQSxDLENBQ3JCNlAsUyxFQUNBN1AsQ0FBQSxDLGdCQUFBLEUsZ0JBQUEsRUFBc0M2UCxTQUFBLEMsR0FBQSxDLEdBQXRDLEMsQ0FDQSxLLGVBQUEsRUFBY0EsU0FBQSxDLEdBQUEsQyxNQUdkN1AsQ0FBQSxDLGdCQUFBLEUsS0FBQSxFLEdBQUEsQyxDQUNBLEssUUFBQSxFLE1BOUV5QyxDQUFyRCxDLEVBN3hCSixHIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uICgpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICBmdW5jdGlvbiBpbnN0YWxsU3Vic2NyaXB0aW9uU2VsZWN0b3IoUkVELCBub2RlKSB7XG4gICAgICAgIGNvbnN0ICRlbmRwb2ludCA9ICQoXCIjbm9kZS1pbnB1dC1lbmRwb2ludFwiKTtcbiAgICAgICAgY29uc3QgJHN1YnNjcmlwdGlvbiA9ICQoXCIjbm9kZS1pbnB1dC1zdWJzY3JpcHRpb25cIik7XG4gICAgICAgIGNvbnN0IGluc3RhbGxTdWJzY3JpcHRpb25PcHRpb25zID0gKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZW5kcG9pbnQgPSBSRUQubm9kZXMubm9kZSgkZW5kcG9pbnQudmFsKCkpO1xuICAgICAgICAgICAgJHN1YnNjcmlwdGlvbi5lbXB0eSgpO1xuICAgICAgICAgICAgaWYgKCFlbmRwb2ludCB8fCAhZW5kcG9pbnQuc3Vic2NyaXB0aW9ucykge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChlbmRwb2ludC5zdWJzY3JpcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBzIG9mIGVuZHBvaW50LnN1YnNjcmlwdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbGFiZWwgPSBzLm5hbWUgfHwgcy5pZDtcbiAgICAgICAgICAgICAgICAgICAgJChcIjxvcHRpb24vPlwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcy5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBsYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkOiBzLmlkID09PSBub2RlLnN1YnNjcmlwdGlvbixcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC50ZXh0KGxhYmVsKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmFwcGVuZFRvKCRzdWJzY3JpcHRpb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgaW5zdGFsbFN1YnNjcmlwdGlvbk9wdGlvbnMoKTtcbiAgICAgICAgLy8gaGFja1xuICAgICAgICAvLyAkaW5wdXRBY3Rpb24ub24oXCJjaGFuZ2VcIiwgKCkgPT4ge1xuICAgICAgICAvLyAgICAgJGVuZHBvaW50Lm9uKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgLy8gICAgICAgICBpbnN0YWxsU3Vic2NyaXB0aW9uT3B0aW9ucygpO1xuICAgICAgICAvLyAgICAgfSk7XG4gICAgICAgIC8vIH0pO1xuICAgICAgICAkc3Vic2NyaXB0aW9uLm9uKFwiZm9jdXMgY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgaW5zdGFsbFN1YnNjcmlwdGlvbk9wdGlvbnMoKTtcbiAgICAgICAgfSk7XG4gICAgICAgICRlbmRwb2ludC5vbihcImNoYW5nZVwiLCAoKSA9PiB7XG4gICAgICAgICAgICBpbnN0YWxsU3Vic2NyaXB0aW9uT3B0aW9ucygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAgICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuXHJcbiAgICBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcclxuICAgIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcbiAgICBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXHJcbiAgICBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFlcclxuICAgIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuICAgIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxyXG4gICAgTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1JcclxuICAgIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuICAgIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXHJcbiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xyXG4gICAgLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UsIFN1cHByZXNzZWRFcnJvciwgU3ltYm9sICovXHJcblxyXG5cclxuICAgIGZ1bmN0aW9uIF9fYXdhaXRlcih0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcclxuICAgICAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cclxuICAgICAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHR5cGVvZiBTdXBwcmVzc2VkRXJyb3IgPT09IFwiZnVuY3Rpb25cIiA/IFN1cHByZXNzZWRFcnJvciA6IGZ1bmN0aW9uIChlcnJvciwgc3VwcHJlc3NlZCwgbWVzc2FnZSkge1xyXG4gICAgICAgIHZhciBlID0gbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gICAgICAgIHJldHVybiBlLm5hbWUgPSBcIlN1cHByZXNzZWRFcnJvclwiLCBlLmVycm9yID0gZXJyb3IsIGUuc3VwcHJlc3NlZCA9IHN1cHByZXNzZWQsIGU7XHJcbiAgICB9O1xuXG4gICAgY29uc3QgT3JnYW5pemVzUmVmTm9kZUlkID0gXCJucz0wO2k9MzVcIjtcbiAgICBjb25zdCBGb2xkZXJUeXBlID0gXCJucz0wO2k9NjFcIjtcbiAgICBjb25zdCBIYXNDb21wb25lbnRSZWZOb2RlSWQgPSBcIm5zPTA7aT00N1wiO1xuICAgIGNvbnN0IEhhc1Byb3BlcnR5UmVmTm9kZUlkID0gXCJucz0wO2k9NDZcIjtcbiAgICBjb25zdCBIYXNDaGlsZFJlZk5vZGVJZCA9IFwibnM9MDtpPTM0XCI7XG4gICAgY29uc3QgSGFzU3VidHlwZVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ1XCI7XG4gICAgY29uc3QgSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQgPSBcIm5zPTA7aT00MFwiO1xuXG4gICAgdmFyIEJyb3dzZURpcmVjdGlvbjtcbiAgICAoZnVuY3Rpb24gKEJyb3dzZURpcmVjdGlvbikge1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiRm9yd2FyZFwiXSA9IDBdID0gXCJGb3J3YXJkXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJJbnZlcnNlXCJdID0gMV0gPSBcIkludmVyc2VcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkJvdGhcIl0gPSAyXSA9IFwiQm90aFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52YWxpZFwiXSA9IDNdID0gXCJJbnZhbGlkXCI7XG4gICAgfSkoQnJvd3NlRGlyZWN0aW9uIHx8IChCcm93c2VEaXJlY3Rpb24gPSB7fSkpO1xuICAgIHZhciBOb2RlQ2xhc3M7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3MpIHtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlVuc3BlY2lmaWVkXCJdID0gMF0gPSBcIlVuc3BlY2lmaWVkXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJPYmplY3RcIl0gPSAxXSA9IFwiT2JqZWN0XCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0VHlwZVwiXSA9IDhdID0gXCJPYmplY3RUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiRGF0YVR5cGVcIl0gPSA2NF0gPSBcIkRhdGFUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzcyB8fCAoTm9kZUNsYXNzID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzTWFzaztcbiAgICAoZnVuY3Rpb24gKE5vZGVDbGFzc01hc2spIHtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJNZXRob2RcIl0gPSA0XSA9IFwiTWV0aG9kXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMzJdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzc01hc2sgfHwgKE5vZGVDbGFzc01hc2sgPSB7fSkpO1xuICAgIHZhciBSZXN1bHRNYXNrO1xuICAgIChmdW5jdGlvbiAoUmVzdWx0TWFzaykge1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMV0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiSXNGb3J3YXJkXCJdID0gMl0gPSBcIklzRm9yd2FyZFwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJOb2RlQ2xhc3NcIl0gPSA0XSA9IFwiTm9kZUNsYXNzXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIkJyb3dzZU5hbWVcIl0gPSA4XSA9IFwiQnJvd3NlTmFtZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJEaXNwbGF5TmFtZVwiXSA9IDE2XSA9IFwiRGlzcGxheU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiVHlwZURlZmluaXRpb25cIl0gPSAzMl0gPSBcIlR5cGVEZWZpbml0aW9uXCI7XG4gICAgfSkoUmVzdWx0TWFzayB8fCAoUmVzdWx0TWFzayA9IHt9KSk7XG4gICAgLy8gIGNvbnN0IHEgPSBSZWZlcmVuY2VUeXBlSWRzLk9yZ2FuaXplcztcbiAgICBmdW5jdGlvbiByZXNvbHZlTm9kZUlkKG5vZGVJZExpa2UpIHtcbiAgICAgICAgc3dpdGNoIChub2RlSWRMaWtlKSB7XG4gICAgICAgICAgICBjYXNlIFwiT3JnYW5pemVzXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIE9yZ2FuaXplc1JlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNQcm9wZXJ0eVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNQcm9wZXJ0eVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDb21wb25lbnRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzQ29tcG9uZW50UmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc0NoaWxkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NoaWxkUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1N1YnR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzU3VidHlwZVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNUeXBlRGVmaW5pdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNUeXBlRGVmaW5pdGlvblJlZk5vZGVJZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGdldEljb24gPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHN3aXRjaCAocmVmZXJlbmNlLm5vZGVDbGFzcykge1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFwiOlxuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBPcmdhbml6ZXNSZWZOb2RlSWQpIDtcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnR5cGVEZWZpbml0aW9uID09PSBGb2xkZXJUeXBlIHx8IHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IFwiaT02MVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtZm9sZGVyXCIsIGNvbG9yOiBcInJnYmEoNjEsIDYwLCA0LCAwLjUyNSlcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJTZWFHcmVlblwiIH07XG4gICAgICAgICAgICBjYXNlIFwiVmFyaWFibGVcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzQ29tcG9uZW50UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiU3RlZWxCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzUHJvcGVydHlSZWZOb2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJEb2RnZXJCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiQ2FkZXRCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFwiTWV0aG9kXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1jb2dcIiwgY29sb3I6IFwiU2FuZHlCcm93blwiIH07XG4gICAgICAgICAgICBjYXNlIFwiT2JqZWN0VHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiBcIkRhcmtPcmFuZ2VcIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlVHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtc2xpZGVyc1wiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXF1ZXN0aW9uXCIsIGNvbG9yOiBcImdyZXlcIiB9O1xuICAgIH07XG5cbiAgICBjb25zdCBicm93c2UgPSAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIG5vZGVJZCwgdGVtcGxhdGUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vYnJvd3NlYDtcbiAgICAgICAgY29uc3QgYnJvd3NlRGVzY3JpcHRpb24gPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHRlbXBsYXRlKSwgeyBub2RlSWQsIHJlc3VsdE1hc2s6IDYzIH0pO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBicm93c2VEZXNjcmlwdGlvbixcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hpbmcgZmFpbGVkIHdpdGggZXJyb3JcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzOiBbXSB9O1xuICAgICAgICB9XG4gICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hlZCA6IFwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgY29uc3QgcmVmZXJlbmNlcyA9IHJlc3BvbnNlLmJyb3dzZVJlc3VsdC5yZWZlcmVuY2VzIHx8IFtdO1xuICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzIH07XG4gICAgfSk7XG5cbiAgICBjb25zdCB0ZW1wbGF0ZTEgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIkhhc0NoaWxkXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3QgdGVtcGxhdGUyID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJPcmdhbml6ZXNcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCBpbnRlcm5hbFZlcmlmeSA9ICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgJGlucHV0RWxlbWVudCwgJGluZm8pID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3Qgbm9kZUlkID0gJGlucHV0RWxlbWVudC52YWwoKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKGAke3Jvb3R9L2NoZWNrTm9kZUlkYCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBzZXROb3RpZmljYXRpb24gPSAodGV4dCwgY2xhc3NOYW1lKSA9PiB7XG4gICAgICAgICAgICAkaW5mby50ZXh0KHRleHQpLmFkZENsYXNzKFwic3RlcmZpdmUtaW5mb1wiKS5hZGRDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgJGluZm8uc2hvdygpO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgJGluZm8ucmVtb3ZlQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICAgICAkaW5mby5oaWRlKCk7XG4gICAgICAgICAgICB9LCAzMDAwKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QganNvbiA9ICh5aWVsZCBkYXRhLmpzb24oKSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICAvLyBkbyBzb21ldGhpbmc7XG4gICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCIhIWZhaWx1cmUhIVwiICsgbm9kZUlkLCBcImZhaWx1cmVcIik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoanNvbi5zdGF0dXNDb2RlLm1hdGNoKC9Hb29kLykpIHtcbiAgICAgICAgICAgICAgICAvLyBkbyBzb21ldGhpbmdcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChqc29uLm5vZGVBZGRyZXNzU3RyaW5nKTtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKFwiR29vZFwiLCBcIm9rXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC52YWwoYCR7bm9kZUlkfWApO1xuICAgICAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihgJHtqc29uLnN0YXR1c0NvZGV9ICR7ZGF0YS5zdGF0dXNUZXh0fWAsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGZ1bmN0aW9uIGZldGNoQ2hpbGRyZW4oJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTEpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MiA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMik7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZmVyZW5jZXM6IFsuLi5icm93c2VSZXN1bHQxLnJlZmVyZW5jZXMsIC4uLmJyb3dzZVJlc3VsdDIucmVmZXJlbmNlc10sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgdGVtcGxhdGVTVCA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzU3VidHlwZVwiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8IE5vZGVDbGFzcy5PYmplY3RUeXBlIHwgTm9kZUNsYXNzLkRhdGFUeXBlIHwgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBmdW5jdGlvbiBmZXRjaFN1YnR5cGVzKCRub2RlLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlSWQgPSAkbm9kZS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQxID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGVTVCk7XG4gICAgICAgICAgICByZXR1cm4gYnJvd3NlUmVzdWx0MTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IG1ha2VFbGVtZW50JDEgPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGlmICghcmVmZXJlbmNlKSB7XG4gICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT48aSBjbGFzcz1cImZhIGZhLWVycm9yXCIgc3R5bGU9XCJjb2xvcjpyZWQ7XCI+PC9pPm5vIHJlZmVyZW5jZSAhPHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuID0gcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB0ID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgeyBpY29uLCBjb2xvciB9ID0gZ2V0SWNvbihyZWZlcmVuY2UpO1xuICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT48aSBjbGFzcz1cImZhICR7aWNvbn1cIiBzdHlsZT1cImNvbG9yOiR7Y29sb3J9O1wiPjwvaT4gJHt0fTx1bD48L3VsPjwvbGk+YCk7XG4gICAgICAgICRlbGVtZW50LmFkZENsYXNzKFwiZXhwYW5kYWJsZVwiKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInZhbHVlXCIsIG4pO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwicmVmZXJlbmNlXCIsIHJlZmVyZW5jZSk7XG4gICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICB9O1xuICAgIGNvbnN0IGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCA9ICgpID0+IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFsgVGVtcGVyYXR1cmUgIF1cbiAgICAgICAgICogICAoIHRvb2x0aXAgOiAoL09iamVjdHMvTXlTZW5zb3IpIChucz0xO3M9VGVtcGVyYXR1cmUpKVxuICAgICAgICAgKiBbICsgW0ZvbGRlcl0gT2JqZWN0c11cbiAgICAgICAgICogWyAgICAgW09iamVjdF0gTXlTZW5zb3JdXG4gICAgICAgICAqIFsgICAgICggKSBbVmFyaWFibGVdIFRlbXBlcmF0dXJlXVxuICAgICAgICAgKi9cbiAgICAgICAgJC53aWRnZXQoXCJzdGVyZml2ZS5ub2RlQnJvd3NlclwiLCB7XG4gICAgICAgICAgICAvKiBkZWZhdWx0IG9wdGlvbnMgKi9cbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6ICgpID0+ICh7IGVuZHBvaW50OiBcIm9wYy50Y3A6Ly9vcGN1YWRlbW8uc3RlcmZpdmUuY29tOjI2NTQzXCIgfSksXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQ6ICgpID0+IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBwYXJlbnROb2RlOiAoKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICBicm93c2VOYW1lOiB7IG5hbWVzcGFjZUluZGV4OiAwLCBuYW1lOiBcIk9iamVjdHNcIiB9LFxuICAgICAgICAgICAgICAgICAgICBub2RlQ2xhc3M6IFwiT2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgIG5vZGVJZDogXCJucz0wO2k9ODVcIixcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6IHsgdGV4dDogXCJPYmplY3RzXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZURlZmluaXRpb246IEZvbGRlclR5cGUsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgZmlsdGVyOiAoKSA9PiB0cnVlLFxuICAgICAgICAgICAgICAgIGJhc2VVcmw6IFwiXCIsXG4gICAgICAgICAgICAgICAgaXNUeXBlUmVmOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZXNvbHZlUGFyZW50Tm9kZSgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYSA9IHR5cGVvZiB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLnBhcmVudE5vZGUoKSA6IHRoYXQub3B0aW9ucy5wYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgICAgICBpZiAoYSBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB5aWVsZCBhO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc2V0KCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuZW1wdHkoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc29sdmVQYXJlbnROb2RlKCkudGhlbigocGFyZW50Tm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IG1ha2VFbGVtZW50JDEocGFyZW50Tm9kZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC5jdXJyZW50UGFyZW50ID0gcGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB2ZXJpZnkoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgICAgICAgICAgIGJhc2VVcmw6IHRoYXQub3B0aW9ucy5iYXNlVXJsLFxuICAgICAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgICAgICBlbmRwb2ludDogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50KCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBpbnRlcm5hbFZlcmlmeShkYXRhLCB0aGF0LiRpbnB1dCwgdGhhdC4kaW5mbyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2NyZWF0ZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBfZmV0Y2hEYXRhRm9yTm9kZSgkbm9kZSwgZmV0Y2hGdW5jLCBkYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJG5vZGUuaGFzQ2xhc3MoXCJmZXRjaGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhbHJlYWR5IGZldGNoZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRub2RlLmhhc0NsYXNzKFwibG9hZGluZ1wiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYWxyZWFkeSBsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwibG9hZGluZ1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmFwcGVuZCgnPGRpdiBjbGFzcz1cInNwaW5uZXJcIj48L2Rpdj4nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgcmVmZXJlbmNlcyB9ID0geWllbGQgZmV0Y2hGdW5jKCRub2RlLCBkYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHJlZmVyZW5jZSBvZiByZWZlcmVuY2VzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuZmlsdGVyICYmICF0aGF0Lm9wdGlvbnMuZmlsdGVyKHJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQkMShyZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwiZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZChgPGxpPmVycm9yICR7ZXJyLm1lc3NhZ2V9PC9saT5gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVyclwiLCBlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuZmluZChcIi5zcGlubmVyXCIpLnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUucmVtb3ZlQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQgPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8gPSAkKFwiPGRpdi8+XCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFkZENsYXNzKFwic3RlcmZpdmUtY29tYm8tYm94XCIpO1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5yZXBsYWNlV2l0aCh0aGF0LiRjb21ibyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cCA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJpbnB1dC1ncm91cFwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5wdXRHcm91cCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kaW5wdXQpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtc2l0ZW1hcFwiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiR0b2dnbGVUcmVlQnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGRyb3Bkb3duLmlzKFwiOnZpc2libGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRyZWUgd2lkZ2V0IGlzIGdvaW5nIHRvIGJlY29tZSB2aXNpYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LnJlc29sdmVQYXJlbnROb2RlKCkudGhlbigocGFyZW50Tm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyZW50Tm9kZSAhPT0gdGhhdC5jdXJyZW50UGFyZW50IHx8ICgoX2EgPSB0aGF0LmN1cnJlbnRQYXJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5ub2RlSWQpICE9PSBwYXJlbnROb2RlLm5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtZmxhc2tcIj48L2k+PC9idXR0b24+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kdmVyaWZ5QnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmVyaWZ5KCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIsIFwiZW50ZXIgYSBub2RlSWQgb3IgYSBicm93c2VQYXRoIFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mbyA9ICQoYDxkaXYgY2xhc3M9XCJpbmZvLXRleHRcIj48L2Rpdj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgKHtcbiAgICAgICAgICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93biA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJzdGVyZml2ZS1kcm9wZG93blwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGluZm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRkcm9wZG93bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZSA9ICQoYDx1bCBjbGFzcz1cInN0ZXJmaXZlLXRyZWVcIj48L3VsPmApLmFwcGVuZFRvKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlV2lkdGggPSAyMDsgLy8gU2V0IHdpZHRoIG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZUhlaWdodCA9IDIwOyAvLyBTZXQgaGVpZ2h0IG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRQb3MgPSAkKHRoaXMpLm9mZnNldCgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlID0gZXZlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlLnBhZ2VYID49IGVsZW1lbnRQb3MubGVmdCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWCA8PSBlbGVtZW50UG9zLmxlZnQgKyBiZWZvcmVXaWR0aCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA+PSBlbGVtZW50UG9zLnRvcCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA8PSBlbGVtZW50UG9zLnRvcCArIGJlZm9yZUhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGFibGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGxpLmhhc0NsYXNzKFwiZmV0Y2hlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZldGNoIG5ldyBkYXRhIGZvciB0aGlzIG5vZGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlVXJsOiB0aGF0Lm9wdGlvbnMuYmFzZVVybCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRwb2ludDogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50KCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmID0gIXRoYXQub3B0aW9ucy5pc1R5cGVSZWYgPyBmZXRjaENoaWxkcmVuIDogZmV0Y2hTdWJ0eXBlcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZmV0Y2hEYXRhRm9yTm9kZSgkbGksIGYsIGRhdGEpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCIgRmV0Y2hpbmcgZG9uZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtYXJrIGFzIGV4cGFuZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyb3JcIiwgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVG9nZ2xlIGl0cyBleHBhbmRlZC9jb2xsYXBzZWQgc3RhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmNoaWxkcmVuKFwidWxcIikuY2hpbGRyZW4oKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSAkbGkuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVmZXJlbmNlID0gJGxpLmRhdGEoXCJyZWZlcmVuY2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5vcHRpb25zLmlzU2VsZWN0YWJsZSAmJiAhdGhhdC5vcHRpb25zLmlzU2VsZWN0YWJsZShyZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuZGF0YShcInJlZmVyZW5jZVwiLCByZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGlzcGxheU5hbWUgPSAoKF9hID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGV4dCkgfHwgKChfYiA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5wdXQgPSBgWyR7ZGlzcGxheU5hbWV9XSgke3ZhbHVlfSlgO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudmFsKGlucHV0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5vbihcImNsaWNrXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBjbGlja2luZyBvdXRzaWRlIHRoZSBwYWdlIHdpbGwgaGlkZSB0aGUgZHJvcGRvd25cbiAgICAgICAgICAgICAgICAgICAgaWYgKCEkKGV2ZW50LnRhcmdldCkuY2xvc2VzdCh0aGF0LiRjb21ibykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBjb25zdCBtYWtlRWxlbWVudCA9IChyZWZlcmVuY2UpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgICAgIGlmICghcmVmZXJlbmNlKSB7XG4gICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT48aSBjbGFzcz1cImZhIGZhLWVycm9yXCIgc3R5bGU9XCJjb2xvcjpyZWQ7XCI+PC9pPm5vIHJlZmVyZW5jZSAhPHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuID0gcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBsZXQgdCA9ICgoX2EgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSB8fCAoKF9iID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGxldCBucyA9IChfYyA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MubmFtZXNwYWNlSW5kZXg7XG4gICAgICAgIHQgKz0gbnMgIT09IHVuZGVmaW5lZCAmJiByZWZlcmVuY2Uubm9kZUNsYXNzLm1hdGNoKC9UeXBlLykgPyBgIChucz0ke25zfSlgIDogXCJcIjtcbiAgICAgICAgY29uc3QgeyBpY29uLCBjb2xvciB9ID0gZ2V0SWNvbihyZWZlcmVuY2UpO1xuICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT5gKTtcbiAgICAgICAgaWYgKHJlZmVyZW5jZS5ub2RlQ2xhc3MgPT09IFwiVmFyaWFibGVcIikge1xuICAgICAgICAgICAgY29uc3QgY2hlY2tCb3ggPSAkKCc8c3BhbiBjbGFzcz1cImN1c3RvbS1jaGVja2JveCB1bmNoZWNrZWRcIj48L3NwYW4+Jyk7XG4gICAgICAgICAgICAkZWxlbWVudC5hcHBlbmQoY2hlY2tCb3gpO1xuICAgICAgICAgICAgLy8gVG9nZ2xlIGNoZWNrYm94IHN0YXRlIHdoZW4gY2xpY2tlZFxuICAgICAgICAgICAgY2hlY2tCb3gub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgaWYgKGNoZWNrQm94Lmhhc0NsYXNzKFwidW5jaGVja2VkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNoZWNrQm94LnJlbW92ZUNsYXNzKFwidW5jaGVja2VkXCIpLmFkZENsYXNzKFwiY2hlY2tlZFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNoZWNrQm94LnJlbW92ZUNsYXNzKFwiY2hlY2tlZFwiKS5hZGRDbGFzcyhcInVuY2hlY2tlZFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICAkZWxlbWVudC5hcHBlbmQoJChgPGkgY2xhc3M9XCJmYSAke2ljb259XCIgc3R5bGU9XCJjb2xvcjoke2NvbG9yfTtcIj48L2k+JHt0fTx1bD48L3VsPmApKTtcbiAgICAgICAgJGVsZW1lbnQuYWRkQ2xhc3MoXCJleHBhbmRhYmxlXCIpO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwidmFsdWVcIiwgbik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgIH07XG4gICAgY29uc3QgZGVjbGFyZUV2ZW50RmllbGRTZWxlY3RvcldpZGdldCA9ICgpID0+IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFsgVGVtcGVyYXR1cmUgIF1cbiAgICAgICAgICogICAoIHRvb2x0aXAgOiAoL09iamVjdHMvTXlTZW5zb3IpIChucz0xO3M9VGVtcGVyYXR1cmUpKVxuICAgICAgICAgKiBbICsgW0ZvbGRlcl0gT2JqZWN0c11cbiAgICAgICAgICogWyAgICAgW09iamVjdF0gTXlTZW5zb3JdXG4gICAgICAgICAqIFsgICAgICggKSBbVmFyaWFibGVdIFRlbXBlcmF0dXJlXVxuICAgICAgICAgKi9cbiAgICAgICAgJC53aWRnZXQoXCJzdGVyZml2ZS5ldmVudEZpZWxkU2VsZWN0b3JcIiwge1xuICAgICAgICAgICAgLyogZGVmYXVsdCBvcHRpb25zICovXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiAoKSA9PiAoeyBlbmRwb2ludDogXCJvcGMudGNwOi8vb3BjdWFkZW1vLnN0ZXJmaXZlLmNvbToyNjU0M1wiIH0pLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50OiAoKSA9PiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgYmFzZVVybDogXCJcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfcG9wdWxhdGUoKSB7XG4gICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEZpZWxkID0gbmV3IFNldCgoX2EgPSB0aGF0LiRpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgLnZhbCgpKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudG9TdHJpbmcoKS5zcGxpdChcIjtcIiApKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VVcmw6IHRoYXQub3B0aW9ucy5iYXNlVXJsLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0geWllbGQgZXh0cmFjdEV2ZW50RmllbGRJbmZvKGRhdGEpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9pbnN0YWxsVHJlZShyZXN1bHQsIHNlbGVjdGVkRmllbGQpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9pbnN0YWxsVHJlZShyZXN1bHQsIHNlbGVjdEZpZWxkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgIGlmICghcmVzdWx0LmV2ZW50cykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHJvb3QgPSByZXN1bHQuZXZlbnRzO1xuICAgICAgICAgICAgICAgIGNvbnN0ICRyb290RWxlbWVudCA9IG1ha2VFbGVtZW50KHJvb3QpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuYXBwZW5kKCRyb290RWxlbWVudCk7XG4gICAgICAgICAgICAgICAgY29uc3QgcHJlZml4ID0gXCJcIjtcbiAgICAgICAgICAgICAgICB0aGlzLl9pbnN0YWxsQ2hpbGRyZW4oJHJvb3RFbGVtZW50LmNoaWxkcmVuKFwidWxcIiksIHJvb3QsIHByZWZpeCwgc2VsZWN0RmllbGQpO1xuICAgICAgICAgICAgICAgICRyb290RWxlbWVudC5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVWYWx1ZXMoc2VsZWN0RmllbGQpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9pbnN0YWxsQ2hpbGRyZW4oJHBhcmVudCwgcGFyZW50LCBwcmVmaXgsIHNlbGVjdGVkRmllbGQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBiID0gKHsgbmFtZSwgbmFtZXNwYWNlSW5kZXggfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAobmFtZXNwYWNlSW5kZXggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuYW1lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtuYW1lc3BhY2VJbmRleH06JHtuYW1lfWA7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGlsZHJlbiA9IHBhcmVudC5jaGlsZHJlbiB8fCBbXTtcbiAgICAgICAgICAgICAgICBjb25zdCBzdWJUeXBlcyA9IHBhcmVudC5zdWJUeXBlcyB8fCBbXTtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGlsZHJlbkFuZFN1YlR5cGVzID0gWy4uLmNoaWxkcmVuLCAuLi5zdWJUeXBlc107XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBjaGlsZHJlbkFuZFN1YlR5cGVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQoY2hpbGQpO1xuICAgICAgICAgICAgICAgICAgICAkcGFyZW50LmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCBwcmVmaXgyID0gXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkLm5vZGVDbGFzcyA9PT0gXCJWYXJpYWJsZVwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJlZml4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlZml4MiA9IHByZWZpeCArIFwiLlwiICsgYihjaGlsZC5icm93c2VOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWZpeDIgPSBiKGNoaWxkLmJyb3dzZU5hbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJGVsZW1lbnQuYXR0cihcImRhdGEtdmFsdWVcIiwgcHJlZml4Mik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaGFzQ2hpbGRyZW4gPSBjaGlsZC5jaGlsZHJlbiAmJiBjaGlsZC5jaGlsZHJlbi5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGhhc1N1YlR5cGVzID0gY2hpbGQuc3ViVHlwZXMgJiYgY2hpbGQuc3ViVHlwZXMubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWhhc0NoaWxkcmVuICYmICFoYXNTdWJUeXBlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgJGVsZW1lbnQucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwibm8tZXhwYW5kYWJsZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2luc3RhbGxDaGlsZHJlbigkZWxlbWVudC5jaGlsZHJlbihcInVsXCIpLCBjaGlsZCwgcHJlZml4Miwgc2VsZWN0ZWRGaWVsZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAkZWxlbWVudC5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfdXBkYXRlU2VsZWN0ZWRGaWVsZHMoKSB7XG4gICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkRmllbGRzID0gbmV3IFNldCgoX2EgPSB0aGF0LiRpbnB1dFxuICAgICAgICAgICAgICAgICAgICAudmFsKCkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50b1N0cmluZygpLnNwbGl0KFwiO1wiICkpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVZhbHVlcyhzZWxlY3RlZEZpZWxkcyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX3VwZGF0ZVZhbHVlcyhzZWxlY3RlZEZpZWxkcykge1xuICAgICAgICAgICAgICAgICQoXCIuc3RlcmZpdmUtdHJlZSBsaVwiKS5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJHRoaXMgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2ID0gJHRoaXMuYXR0cihcImRhdGEtdmFsdWVcIik7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2ICYmIHNlbGVjdGVkRmllbGRzLmhhcyh2KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMuY2hpbGRyZW4oXCJzcGFuLmN1c3RvbS1jaGVja2JveFwiKS5yZW1vdmVDbGFzcyhcInVuY2hlY2tlZFwiKS5hZGRDbGFzcyhcImNoZWNrZWRcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfc2V0SW5wdXRWYWx1ZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICBjb25zdCBsaXN0ID0gW107XG4gICAgICAgICAgICAgICAgLy8gY3Jhd2wgdGhlIHRyZWUgdG8gZmluZCBzZWxlY3RlZCBlbGVtZW50cyBhbmQgY3JlYXRlIGEgbGlzdCBvZiBCcm93c2VQYXRoXG4gICAgICAgICAgICAgICAgJChcIi5zdGVyZml2ZS10cmVlIGxpXCIpLmVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCAkdGhpcyA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBlbGVtZW50IGlzIHNlbGVjdGVkXG4gICAgICAgICAgICAgICAgICAgIGlmICgkdGhpcy5jaGlsZHJlbihcInNwYW4uY3VzdG9tLWNoZWNrYm94LmNoZWNrZWRcIikubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdiA9ICR0aGlzLmF0dHIoXCJkYXRhLXZhbHVlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHYpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdC5wdXNoKHYpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBbLi4ubmV3IFNldChsaXN0KV0uc29ydCgpLmpvaW4oXCI7XCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnZhbCh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfY3JlYXRlKCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0ID0gdGhpcy5lbGVtZW50O1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvID0gJChcIjxkaXYvPlwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hZGRDbGFzcyhcInN0ZXJmaXZlLWNvbWJvLWJveFwiKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRbMF0ucGFyZW50RWxlbWVudC5yZXBsYWNlQ2hpbGQodGhhdC4kY29tYm9bMF0sIHRoaXMuZWxlbWVudFswXSk7XG4gICAgICAgICAgICAgICAgLy8gdGhpcy5lbGVtZW50LnJlcGxhY2VXaXRoKHRoYXQuJGNvbWJvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcImlucHV0LWdyb3VwXCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbnB1dEdyb3VwKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiRpbnB1dCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0biA9ICQoYDxidXR0b24+PGkgY2xhc3M9XCJmYSBmYS1zaXRlbWFwXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJHRvZ2dsZVRyZWVCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4ub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC4kZHJvcGRvd24uaXMoXCI6dmlzaWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJGZsb2F0aW5nQnV0dG9ucy5zaG93KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvZmZzZXQgPSB0aGF0LiRkcm9wZG93bi5vZmZzZXQoKTsgLy8gR2V0IHRoZSB0b3AtbGVmdCBjb3JuZXIgcG9zaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICRmbG9hdGluZ0J1dHRvbnMuY3NzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3A6IGAke29mZnNldC50b3B9cHhgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiBgY2FsYygxMDAlIC0gJHtvZmZzZXQubGVmdCArIHRoYXQuJGRyb3Bkb3duLndpZHRoKCl9cHgpYCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5fcG9wdWxhdGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX3VwZGF0ZVNlbGVjdGVkRmllbGRzKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkZmxvYXRpbmdCdXR0b25zLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmICghdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmF0dHIoXCJwbGFjZWhvbGRlclwiLCBcImVudGVyIGEgbm9kZUlkIG9yIGEgYnJvd3NlUGF0aCBcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoYXQuJGluZm8gPSAkKGA8ZGl2IGNsYXNzPVwiaW5mby10ZXh0XCI+PC9kaXY+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mby5oaWRlKCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24gPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwic3RlcmZpdmUtZHJvcGRvd25cIikuaGlkZSgpO1xuICAgICAgICAgICAgICAgIC8vIGNvbnN0ICRzY3JvbGxhYmxlQ29udGVudCA9ICQoJzxkaXYgY2xhc3M9XCJzdGVyZml2ZS1kcm9wZG93bi1zY3JvbGxhYmxlLWNvbnRlbnRcIj48L2Rpdj4nKTtcbiAgICAgICAgICAgICAgICBjb25zdCAkdmFsaWRhdGVCdXR0b24gPSAkKCc8c3BhbiBjbGFzcz1cInZhbGlkYXRlLWJ1dHRvblwiPuKclDwvc3Bhbj4nKTsgLy8gVXNlIGFueSBpY29uIG9yIHRleHQgaGVyZVxuICAgICAgICAgICAgICAgIGNvbnN0ICRjYW5jZWxCdXR0b24gPSAkKCc8c3BhbiBjbGFzcz1cImNhbmNlbC1idXR0b25cIj7inJY8L3NwYW4+Jyk7IC8vIFVzZSBhbnkgaWNvbiBvciB0ZXh0IGhlcmVcbiAgICAgICAgICAgICAgICBjb25zdCAkZmxvYXRpbmdCdXR0b25zID0gJCgnPGRpdiBjbGFzcz1cImZsb2F0aW5nLWJ1dHRvbnNcIj48L2Rpdj4nKS5hcHBlbmQoJHZhbGlkYXRlQnV0dG9uLCAkY2FuY2VsQnV0dG9uKTtcbiAgICAgICAgICAgICAgICAkZmxvYXRpbmdCdXR0b25zLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAvLyBEZWZpbmUgeW91ciB2YWxpZGF0aW9uIGFuZCBjYW5jZWxsYXRpb24gbG9naWNcbiAgICAgICAgICAgICAgICAkdmFsaWRhdGVCdXR0b24ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuX3NldElucHV0VmFsdWUoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICRjYW5jZWxCdXR0b24ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5mbyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlID0gJChgPHVsIGNsYXNzPVwic3RlcmZpdmUtdHJlZVwiPjwvdWw+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uZW1wdHkoKS5hcHBlbmQodGhhdC4kdHJlZSwgJGZsb2F0aW5nQnV0dG9ucyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlV2lkdGggPSAyMDsgLy8gU2V0IHdpZHRoIG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZUhlaWdodCA9IDIwOyAvLyBTZXQgaGVpZ2h0IG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRQb3MgPSAkKHRoaXMpLm9mZnNldCgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlID0gZXZlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlLnBhZ2VYID49IGVsZW1lbnRQb3MubGVmdCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWCA8PSBlbGVtZW50UG9zLmxlZnQgKyBiZWZvcmVXaWR0aCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA+PSBlbGVtZW50UG9zLnRvcCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA8PSBlbGVtZW50UG9zLnRvcCArIGJlZm9yZUhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJjbGlja2VkIG9uIGljb25cIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImNsaWNrZWQgb24gXCIsICRsaS5kYXRhKFwidmFsdWVcIiksICRsaS5hdHRyKFwiY2xhc3NcIikpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGFibGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRvZ2dsZSBpdHMgZXhwYW5kZWQvY29sbGFwc2VkIHN0YXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5jaGlsZHJlbihcInVsXCIpLmNoaWxkcmVuKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN3YXAgZXhwYW5kYWJsZSBhbmQgZXhwYW5kZWQgY2xhc3Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNsaWNraW5nIG91dHNpZGUgdGhlIHBhZ2Ugd2lsbCBoaWRlIHRoZSBkcm9wZG93blxuICAgICAgICAgICAgICAgICAgICBpZiAoISQoZXZlbnQudGFyZ2V0KS5jbG9zZXN0KHRoYXQuJGNvbWJvKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMuX3BvcHVsYXRlKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9O1xuICAgIGNvbnN0IGV4dHJhY3RFdmVudEZpZWxkSW5mbyA9ICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwsIH0pID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vZXh0cmFjdEV2ZW50VHlwZXNgO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hpbmcgZmFpbGVkIHdpdGggZXJyb3JcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgICAgICByZXR1cm4geyBldmVudHM6IG51bGwgfTtcbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoZWQgOiBcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0geWllbGQgZGF0YS5qc29uKCk7XG4gICAgICAgIGNvbnN0IGV2ZW50cyA9IHJlc3BvbnNlLmV2ZW50cztcbiAgICAgICAgcmV0dXJuIHsgZXZlbnRzIH07XG4gICAgfSk7XG5cbiAgICBjb25zdCBnZXRFbmRQb2ludEF0dHJpYnV0ZXMgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0ICRlbmRwb2ludCA9ICQoXCIjbm9kZS1pbnB1dC1lbmRwb2ludFwiKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnRJZCA9ICRlbmRwb2ludC52YWwoKTtcbiAgICAgICAgY29uc3QgcmVkTm9kZSA9IFJFRC5ub2Rlcy5ub2RlKGVuZHBvaW50SWQpO1xuICAgICAgICBpZiAoIXJlZE5vZGUpXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAvLyB3ZSBuZWVkIHRvIHNhbml0aXplIGFuZCBleHRyYWN0IHRoZSBlbmRwb2ludCBhdHRyaWJ1dGVzIG9ubHkgKCBub3QgdGhlIG5vZGUtcmVkIHN0dWZmKVxuICAgICAgICBjb25zdCB7IGVuZHBvaW50LCBzZWN1cml0eU1vZGUsIHNlY3VyaXR5UG9saWN5LCB1c2VySWRlbnRpdHlUeXBlLCB1c2VyTmFtZSwgcGFzc3dvcmQsIHVzZXJDZXJ0aWZpY2F0ZSwgdXNlclByaXZhdGVrZXkgfSA9IHJlZE5vZGU7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgIHNlY3VyaXR5TW9kZSxcbiAgICAgICAgICAgIHNlY3VyaXR5UG9saWN5LFxuICAgICAgICAgICAgdXNlcklkZW50aXR5VHlwZSxcbiAgICAgICAgICAgIHVzZXJOYW1lLFxuICAgICAgICAgICAgcGFzc3dvcmQsXG4gICAgICAgICAgICB1c2VyQ2VydGlmaWNhdGUsXG4gICAgICAgICAgICB1c2VyUHJpdmF0ZWtleSxcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlbmRwb2ludE5vZGU6IGdldEVuZHBvaW50UGFyYW1ldGVycyxcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVycyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCBlbmRwb2ludElkID0gJGVuZHBvaW50LnZhbCgpO1xuICAgICAgICBjb25zdCBlbmRwb2ludE5yID0gZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzKCk7XG4gICAgICAgIGlmICghZW5kcG9pbnROcikge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaWQ6IGVuZHBvaW50SWQsXG4gICAgICAgICAgICBlbmRwb2ludDogZW5kcG9pbnROci5lbmRwb2ludCxcbiAgICAgICAgICAgIHNlY3VyaXR5TW9kZTogZW5kcG9pbnROci5zZWN1cml0eU1vZGUsXG4gICAgICAgICAgICBzZWN1cml0eVBvbGljeTogZW5kcG9pbnROci5zZWN1cml0eVBvbGljeSxcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICB1c2VySWRlbnRpdHlUeXBlOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUsXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgdXNlck5hbWU6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSA9PT0gXCJVc2VyTmFtZVwiID8gZW5kcG9pbnROci51c2VyTmFtZSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHBhc3N3b3JkOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUgPT09IFwiVXNlck5hbWVcIiA/IGVuZHBvaW50TnIucGFzc3dvcmQgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB1c2VyQ2VydGlmaWNhdGU6IGVuZHBvaW50TnIudXNlckNlcnRpZmljYXRlLFxuICAgICAgICAgICAgdXNlclByaXZhdGVrZXk6IGVuZHBvaW50TnIudXNlclByaXZhdGVrZXksXG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIFJFRC5ub2Rlcy5yZWdpc3RlclR5cGUoXCJPcGNVYS1DbGllbnQyLU1vbml0b3JFdmVudFwiLCB7XG4gICAgICAgIGNhdGVnb3J5OiBcIm9wY3VhXCIsXG4gICAgICAgIGNvbG9yOiBcIiNDMERFRURcIixcbiAgICAgICAgYWxpZ246IFwicmlnaHRcIixcbiAgICAgICAgaWNvbjogXCJvcGN1YWxvZ29iaWcucG5nXCIsXG4gICAgICAgIHBhbGV0dGVMYWJlbDogXCJtb25pdG9yIGV2ZW50c1wiLFxuICAgICAgICBkZWZhdWx0czoge1xuICAgICAgICAgICAgaW5wdXRzOiB7IHZhbHVlOiAxIH0sXG4gICAgICAgICAgICBvdXRwdXQ6IHsgdmFsdWU6IDQgfSxcbiAgICAgICAgICAgIG5hbWU6IHsgdmFsdWU6IFwiXCIgfSxcbiAgICAgICAgICAgIGVuZHBvaW50OiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogdHJ1ZSwgdHlwZTogXCJPcGNVYS1FbmRwb2ludDJcIiB9LFxuICAgICAgICAgICAgc3Vic2NyaXB0aW9uOiB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFwiXCIsXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgdmFsaWRhdGU6ICh2YWwpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbCA9PT0gXCJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzdGFydEltbWVkaWF0ZWx5OiB7IHZhbHVlOiB0cnVlLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgLy8gd2UgdXNlIGEgZGlmZmVyZW50IHdpZGdldCBmb3IgZWRpdGluZyB0aGUgbm9kZUlkLCBiZWNhdXNlIHRoZSBiZWhhdmlvclxuICAgICAgICAgICAgLy8gaXMgc3BlY2lmaWMgdG8gbW9uaXRvciwgaG93ZXZlciBwcm9wZXJ0eSB3aWxsIGJlIHN0b3JlZCBpbiBub2RlSWRcbiAgICAgICAgICAgIG5vZGVJZDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IGZhbHNlLCB2YWxpZGF0ZTogKCkgPT4gdHJ1ZSB9LFxuICAgICAgICAgICAgc2FtcGxpbmdJbnRlcnZhbDogeyB2YWx1ZTogMTAwMCwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIGRpc2NhcmRPbGRlc3Q6IHsgdmFsdWU6IHRydWUsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICBxdWV1ZVNpemU6IHsgdmFsdWU6IDEwLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgc2VsZWN0Q2xhdXNlczogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIHdoZXJlQ2xhdXNlOiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogZmFsc2UgfSxcbiAgICAgICAgfSxcbiAgICAgICAgLy8gaW5wdXRzOixcbiAgICAgICAgb3V0cHV0czogMiwgLy8gMiBvdXRwdXQsIHNlY29uZCBmb3IgcmF3IG5vZGUtb3BjdWEgZGlhZ25vc3RpY3Mgb3IgbW9yZSBjb21wbGV0ZSBtZXNzYWdlXG4gICAgICAgIGxhYmVsKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSB8fCBcIk9QQ1VBIE1vbml0b3JcIjtcbiAgICAgICAgfSxcbiAgICAgICAgbGFiZWxTdHlsZSgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgPyBcIm5vZGVfbGFiZWxfaXRhbGljXCIgOiBcIlwiO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRwcmVwYXJlKCkge1xuICAgICAgICAgICAgZGVjbGFyZU5vZGVCcm93c2VyV2lkZ2V0KCk7XG4gICAgICAgICAgICBkZWNsYXJlRXZlbnRGaWVsZFNlbGVjdG9yV2lkZ2V0KCk7XG4gICAgICAgICAgICBpbnN0YWxsU3Vic2NyaXB0aW9uU2VsZWN0b3IoUkVELCB0aGlzKTtcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgQWN0aW9uIE1vbml0b3IgQ29tbW9uXG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gLS0gaW5zdGFsbCBzdWJzY3JpcHRpb24gc2VsZWN0aW9uXG4gICAgICAgICAgICAkKFwibm9kZS1pbnB1dC1zdGFydEltbWVkaWF0ZWx5XCIpLm9uKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGVja2VkID0gJChcIiNub2RlLWlucHV0LXN0YXJ0SW1tZWRpYXRlbHlcIikucHJvcChcImNoZWNrZWRcIik7XG4gICAgICAgICAgICAgICAgaWYgKGNoZWNrZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LWlucHV0c1wiKS52YWwoMCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtaW5wdXRzXCIpLnZhbCgxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgQWN0aW9uIE1vbml0b3JcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICBjb25zdCAkbm9kZUlkID0gJChcIiNub2RlLWlucHV0LW5vZGVJZFwiKTtcbiAgICAgICAgICAgICRub2RlSWQubm9kZUJyb3dzZXIoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyKCkpLCB7IGZpbHRlcihub2RlRGVzYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIk9iamVjdFwiO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgaXNTZWxlY3RhYmxlKG5vZGVEZXNjKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiT2JqZWN0XCIgLyogdG8gZG8gfHwgbm9kZURlc2MuZXZlbnROb3RpZmllciA9PT0gMSAqLztcbiAgICAgICAgICAgICAgICB9IH0pKTtcbiAgICAgICAgICAgIC8vIC0tLS0tLSBpbnN0YWxsIGV2ZW50IGZpZWxkIHNlbGVjdG9yXG4gICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtd2hlcmVDbGF1c2VcIik7XG4gICAgICAgICAgICBjb25zdCAkc2VsZWN0Q2xhdXNlcyA9ICQoXCIjbm9kZS1pbnB1dC1zZWxlY3RDbGF1c2VzXCIpO1xuICAgICAgICAgICAgJHNlbGVjdENsYXVzZXMuZXZlbnRGaWVsZFNlbGVjdG9yKE9iamVjdC5hc3NpZ24oe30sIGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIoKSkpO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRzYXZlKCkge1xuICAgICAgICAgICAgY29uc3Qgc3RhcnRJbW1lZGlhdGVseSA9ICQoXCIjbm9kZS1pbnB1dC1zdGFydEltbWVkaWF0ZWx5XCIpLnByb3AoXCJjaGVja2VkXCIpO1xuICAgICAgICAgICAgaWYgKHN0YXJ0SW1tZWRpYXRlbHkpIHtcbiAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtc3RhcnRJbW1lZGlhdGVseVwiKS52YWwoc3RhcnRJbW1lZGlhdGVseSA/IDAgOiAxKTtcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0cyA9IHN0YXJ0SW1tZWRpYXRlbHkgPyAwIDogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1zdGFydEltbWVkaWF0ZWx5XCIpLnZhbCgxKTtcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0cyA9IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgfSk7XG5cbn0pKCk7Il19
|
7
|
+
function _0x56f9(){const _0x14200c=['err','reference','json','\x20Fetching\x20done','fa-object-group','assign','right','638748mPoMCH','message','Organizes','$toggleTreeBtn','$info','references','top','<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','<li>','20707cSSeuT','referenceTypeId','appendTo','replaceWith','/browse','IsForward','OpcUa-Client2-MonitorEvent','subTypes','fa-question','Variable','input-group','loading','\x20(ns=','isSelectable','text','expanded','already\x20loading','has','browseName','ns=0;i=46','registerType','<div\x20class=\x22floating-buttons\x22></div>','3660704zjzLjQ','px)','password','#node-input-inputs','value','length','<div\x20class=\x22spinner\x22></div>','push','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','css','HasTypeDefinition','TypeDefinition','_installChildren','SeaGreen','children','monitor\x20events','fa-list-alt','name','span.custom-checkbox.checked','nodeAddressString','element','status','find','parentNode','Both','click','CadetBlue','<ul></ul></li>','Good','unchecked','opc.tcp://opcuademo.sterfive.com:26543','log','#node-input-nodeId','ns=0;i=61','Objects','expandable','toString','namespaceIndex','change','Object','userPrivatekey','stopPropagation','ns=0;i=85','<div/>','_populate','NodeClass','#node-input-selectClauses','pageX','application/json','node','clicked\x20on\x20','fetched','1348560HrMlKZ','endpoint','$verifyBtn','ObjectType','1556765tGeAtB','BrowseName','POST','subscription','<span\x20class=\x22custom-checkbox\x20unchecked\x22></span>',';\x22></i>\x20','OpcUa-Endpoint2','$combo','events','sterfive.nodeBrowser','already\x20fetched','UserName','apply','verify','DodgerBlue','/opcua-endpoint2','Forward','SandyBrown','fa-sliders','statusCode','Inverse','sterfive-dropdown','Method','stringify','/extractEventTypes','nodeBrowser','ns=0;i=35','prop','checked','ns=0;i=47','Unspecified','attr','remove','OPCUA\x20Monitor','#node-input-endpoint','i=61','fetching\x20failed\x20with\x20error','.sterfive-tree\x20li','typeDefinition','options','<ul></ul>','hasClass','toggleClass','filter','<option/>','$inputGroup','HasProperty','done','1182PwkdMh','statusText','$input','pageY','hide','sterfive-combo-box','replaceChild','calc(100%\x20-\x20','#node-input-subscription','next','each','span.custom-checkbox','SteelBlue','<span\x20class=\x22validate-button\x22>✔</span>','clicked\x20on\x20icon','match','HasSubtype','sterfive-info','VariableType','isTypeRef','DisplayName','toggle','error','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','_installTree','inputs','DataType','class','_setInputValue','sort','DarkOrange','ns=0;i=40','endpointNode','ns=0;i=34','Invalid','#node-input-whereClause','offset','empty','$dropdown','1005jdMWwB','<span\x20class=\x22cancel-button\x22>✖</span>','join','nodes','nodeClass','#node-input-startImmediately','.spinner','eventFieldSelector','show','SuppressedError','displayName','View','grey','subscriptions','then','function','baseUrl','closest','opcualogobig.png','removeClass','failure','</li>','fa-cog','ReferenceType','left','addClass','placeholder','$tree','data-value','#C0DEED','data','focus\x20click','resolveParentNode','securityPolicy','node_label_italic','val','HasComponent','expandable\x20expanded','fetched\x20:\x20','rgba(61,\x2060,\x204,\x200.525)','opcua',';\x22></i>','<div\x20class=\x22info-text\x22></div>','append','_updateValues','catch','split','<i\x20class=\x22fa\x20','nodeId','currentParent','1310652lQbAPF','trigger','userIdentityType'];_0x56f9=function(){return _0x14200c;};return _0x56f9();}function _0x22c1(_0x24f6e8,_0x15614d){const _0x56f9ff=_0x56f9();return _0x22c1=function(_0x22c12d,_0x7f79fd){_0x22c12d=_0x22c12d-0x1c8;let _0x336b16=_0x56f9ff[_0x22c12d];return _0x336b16;},_0x22c1(_0x24f6e8,_0x15614d);}(function(_0x304b25,_0xedf8a0){const _0x57b937=_0x22c1,_0xd7b541=_0x304b25();while(!![]){try{const _0x5eb7fb=parseInt(_0x57b937(0x28a))/0x1+-parseInt(_0x57b937(0x21e))/0x2*(parseInt(_0x57b937(0x245))/0x3)+parseInt(_0x57b937(0x281))/0x4+parseInt(_0x57b937(0x1ea))/0x5+parseInt(_0x57b937(0x277))/0x6+parseInt(_0x57b937(0x1ee))/0x7+-parseInt(_0x57b937(0x2a0))/0x8;if(_0x5eb7fb===_0xedf8a0)break;else _0xd7b541['push'](_0xd7b541['shift']());}catch(_0x4aca10){_0xd7b541['push'](_0xd7b541['shift']());}}}(_0x56f9,0x3976a),(function(){'use strict';const _0x4b4774=_0x22c1;function _0x4e7446(_0x13b81e,_0x4dfb05){const _0x41fd0f=_0x22c1,_0x236450=$(_0x41fd0f(0x210)),_0x397c8b=$(_0x41fd0f(0x226)),_0x56356a=()=>{const _0x43dd15=_0x41fd0f,_0x41aab1=_0x13b81e[_0x43dd15(0x248)]['node'](_0x236450[_0x43dd15(0x268)]());_0x397c8b[_0x43dd15(0x243)]();if(!_0x41aab1||!_0x41aab1[_0x43dd15(0x252)])return;if(_0x41aab1[_0x43dd15(0x252)])for(const _0x113665 of _0x41aab1[_0x43dd15(0x252)]){const _0x3f30ac=_0x113665[_0x43dd15(0x2b1)]||_0x113665['id'];$(_0x43dd15(0x21a),{'value':_0x113665['id'],'label':_0x3f30ac,'selected':_0x113665['id']===_0x4dfb05[_0x43dd15(0x1f1)]})[_0x43dd15(0x298)](_0x3f30ac)['appendTo'](_0x397c8b);}};_0x56356a(),_0x397c8b['on'](_0x41fd0f(0x264),()=>{_0x56356a();}),_0x236450['on'](_0x41fd0f(0x1dc),()=>{_0x56356a();});}function _0x183f63(_0x71a0e8,_0x27c3fb,_0x3273b4,_0xc12832){function _0x31b17c(_0x2a3acc){return _0x2a3acc instanceof _0x3273b4?_0x2a3acc:new _0x3273b4(function(_0x3d3fe6){_0x3d3fe6(_0x2a3acc);});}return new(_0x3273b4||(_0x3273b4=Promise))(function(_0x23ed86,_0x3dc781){const _0x2971da=_0x22c1;function _0x5178e4(_0x491eda){const _0x7e0240=_0x22c1;try{_0x159ee6(_0xc12832[_0x7e0240(0x227)](_0x491eda));}catch(_0x53c7d9){_0x3dc781(_0x53c7d9);}}function _0x5b833e(_0x47e642){try{_0x159ee6(_0xc12832['throw'](_0x47e642));}catch(_0x299609){_0x3dc781(_0x299609);}}function _0x159ee6(_0x49c276){const _0xcd21c9=_0x22c1;_0x49c276[_0xcd21c9(0x21d)]?_0x23ed86(_0x49c276[_0xcd21c9(0x2a4)]):_0x31b17c(_0x49c276[_0xcd21c9(0x2a4)])[_0xcd21c9(0x253)](_0x5178e4,_0x5b833e);}_0x159ee6((_0xc12832=_0xc12832[_0x2971da(0x1fa)](_0x71a0e8,_0x27c3fb||[]))[_0x2971da(0x227)]());});}typeof SuppressedError===_0x4b4774(0x254)?SuppressedError:function(_0x311ec0,_0x35ff6b,_0x203ee3){const _0x5565e1=_0x4b4774;var _0x18fdd0=new Error(_0x203ee3);return _0x18fdd0['name']=_0x5565e1(0x24e),_0x18fdd0[_0x5565e1(0x234)]=_0x311ec0,_0x18fdd0['suppressed']=_0x35ff6b,_0x18fdd0;};const _0x19ef63=_0x4b4774(0x208),_0x4b22fb=_0x4b4774(0x1d7),_0x510a88=_0x4b4774(0x20b),_0x3cf946=_0x4b4774(0x29d),_0x3227cb=_0x4b4774(0x23f),_0x19480a='ns=0;i=45',_0xb34ed7=_0x4b4774(0x23d);var _0x2d5564;(function(_0xbcc76a){const _0x16ef56=_0x4b4774;_0xbcc76a[_0xbcc76a[_0x16ef56(0x1fe)]=0x0]=_0x16ef56(0x1fe),_0xbcc76a[_0xbcc76a[_0x16ef56(0x202)]=0x1]=_0x16ef56(0x202),_0xbcc76a[_0xbcc76a[_0x16ef56(0x1ce)]=0x2]=_0x16ef56(0x1ce),_0xbcc76a[_0xbcc76a[_0x16ef56(0x240)]=0x3]=_0x16ef56(0x240);}(_0x2d5564||(_0x2d5564={})));var _0x1f829a;(function(_0x2ea1ba){const _0x3c142b=_0x4b4774;_0x2ea1ba[_0x2ea1ba[_0x3c142b(0x20c)]=0x0]=_0x3c142b(0x20c),_0x2ea1ba[_0x2ea1ba['Object']=0x1]=_0x3c142b(0x1dd),_0x2ea1ba[_0x2ea1ba['Variable']=0x2]='Variable',_0x2ea1ba[_0x2ea1ba['Method']=0x4]=_0x3c142b(0x204),_0x2ea1ba[_0x2ea1ba[_0x3c142b(0x1ed)]=0x8]=_0x3c142b(0x1ed),_0x2ea1ba[_0x2ea1ba[_0x3c142b(0x230)]=0x10]=_0x3c142b(0x230),_0x2ea1ba[_0x2ea1ba[_0x3c142b(0x25c)]=0x20]='ReferenceType',_0x2ea1ba[_0x2ea1ba['DataType']=0x40]=_0x3c142b(0x238),_0x2ea1ba[_0x2ea1ba[_0x3c142b(0x250)]=0x80]=_0x3c142b(0x250);}(_0x1f829a||(_0x1f829a={})));var _0x1f842a;(function(_0x4e040e){const _0x286946=_0x4b4774;_0x4e040e[_0x4e040e['Object']=0x1]='Object',_0x4e040e[_0x4e040e[_0x286946(0x293)]=0x2]=_0x286946(0x293),_0x4e040e[_0x4e040e[_0x286946(0x204)]=0x4]=_0x286946(0x204),_0x4e040e[_0x4e040e[_0x286946(0x1ed)]=0x8]='ObjectType',_0x4e040e[_0x4e040e[_0x286946(0x230)]=0x10]=_0x286946(0x230),_0x4e040e[_0x4e040e[_0x286946(0x25c)]=0x20]=_0x286946(0x25c),_0x4e040e[_0x4e040e[_0x286946(0x238)]=0x40]=_0x286946(0x238),_0x4e040e[_0x4e040e[_0x286946(0x250)]=0x80]=_0x286946(0x250);}(_0x1f842a||(_0x1f842a={})));var _0x5d7de7;(function(_0x2149f7){const _0x2af9e7=_0x4b4774;_0x2149f7[_0x2149f7[_0x2af9e7(0x25c)]=0x1]=_0x2af9e7(0x25c),_0x2149f7[_0x2149f7[_0x2af9e7(0x28f)]=0x2]='IsForward',_0x2149f7[_0x2149f7[_0x2af9e7(0x1e3)]=0x4]='NodeClass',_0x2149f7[_0x2149f7[_0x2af9e7(0x1ef)]=0x8]=_0x2af9e7(0x1ef),_0x2149f7[_0x2149f7[_0x2af9e7(0x232)]=0x10]=_0x2af9e7(0x232),_0x2149f7[_0x2149f7[_0x2af9e7(0x2ab)]=0x20]=_0x2af9e7(0x2ab);}(_0x5d7de7||(_0x5d7de7={})));function _0x59a186(_0x3c0df7){const _0x4dd512=_0x4b4774;switch(_0x3c0df7){case _0x4dd512(0x283):return _0x19ef63;case _0x4dd512(0x21c):return _0x3cf946;case _0x4dd512(0x269):return _0x510a88;case'HasChild':return _0x3227cb;case _0x4dd512(0x22e):return _0x19480a;case _0x4dd512(0x2aa):return _0xb34ed7;}}const _0x24ff9b=_0x3cba88=>{const _0x2f652c=_0x4b4774;switch(_0x3cba88[_0x2f652c(0x249)]){case _0x2f652c(0x1dd):if(_0x3cba88[_0x2f652c(0x28b)]===_0x19ef63);if(_0x3cba88[_0x2f652c(0x214)]===_0x4b22fb||_0x3cba88[_0x2f652c(0x28b)]===_0x2f652c(0x211))return{'icon':'fa-folder','color':_0x2f652c(0x26c)};return{'icon':'fa-object-group','color':_0x2f652c(0x2ad)};case _0x2f652c(0x293):if(_0x3cba88[_0x2f652c(0x28b)]===_0x510a88)return{'icon':_0x2f652c(0x2b0),'color':_0x2f652c(0x22a)};else return _0x3cba88['referenceTypeId']===_0x3cf946?{'icon':_0x2f652c(0x2b0),'color':_0x2f652c(0x1fc)}:{'icon':'fa-list-alt','color':_0x2f652c(0x1d0)};case'Method':return{'icon':_0x2f652c(0x25b),'color':_0x2f652c(0x1ff)};case _0x2f652c(0x1ed):return{'icon':_0x2f652c(0x27e),'color':_0x2f652c(0x23c)};case _0x2f652c(0x230):return{'icon':_0x2f652c(0x200),'color':'DarkOrange'};}return{'icon':_0x2f652c(0x292),'color':_0x2f652c(0x251)};},_0x5ef2af=({endpointNode:_0x38d02e,endpoint:_0x452baa,baseUrl:_0x4cdfd7},_0x382ea4,_0x331360)=>_0x183f63(void 0x0,void 0x0,void 0x0,function*(){const _0x13deb6=_0x4b4774,_0x96d7d8=_0x4cdfd7+_0x13deb6(0x1fd),_0x471b3d=_0x96d7d8+_0x13deb6(0x28e),_0x12b776=Object['assign'](Object[_0x13deb6(0x27f)]({},_0x331360),{'nodeId':_0x382ea4,'resultMask':0x3f}),_0x3e334b=yield fetch(_0x471b3d,{'method':_0x13deb6(0x1f0),'body':JSON[_0x13deb6(0x205)]({'endpointNode':_0x38d02e,'endpoint':_0x452baa,'browseDescription':_0x12b776}),'headers':{'Content-Type':_0x13deb6(0x1e6)}});if(_0x3e334b[_0x13deb6(0x1cb)]!==0xc8)return console[_0x13deb6(0x1d5)](_0x13deb6(0x212),_0x3e334b[_0x13deb6(0x1cb)],_0x3e334b[_0x13deb6(0x21f)]),{'references':[]};console[_0x13deb6(0x1d5)](_0x13deb6(0x26b),_0x3e334b[_0x13deb6(0x1cb)],_0x3e334b[_0x13deb6(0x21f)]);const _0x317441=yield _0x3e334b[_0x13deb6(0x27c)](),_0x48d585=_0x317441['browseResult'][_0x13deb6(0x286)]||[];return{'references':_0x48d585};}),_0x317c9e={'referenceTypeId':_0x59a186('HasChild'),'includeSubtypes':!![],'browseDirection':_0x2d5564['Forward'],'nodeClassMask':_0x1f829a[_0x4b4774(0x293)]|_0x1f829a['Object']|_0x1f829a[_0x4b4774(0x204)],'resultMask':0x3f},_0x3aa0ea={'referenceTypeId':_0x59a186(_0x4b4774(0x283)),'includeSubtypes':!![],'browseDirection':_0x2d5564[_0x4b4774(0x1fe)],'nodeClassMask':_0x1f829a[_0x4b4774(0x293)]|_0x1f829a[_0x4b4774(0x1dd)]|_0x1f829a[_0x4b4774(0x204)],'resultMask':0x3f},_0x3abb13=({endpointNode:_0x5a88fe,endpoint:_0x422dcd,baseUrl:_0x3d8c98},_0x5b9185,_0x3fcb51)=>_0x183f63(void 0x0,void 0x0,void 0x0,function*(){const _0x6d0008=_0x4b4774,_0xa25dc6=_0x3d8c98+_0x6d0008(0x1fd),_0x5103d3=_0x5b9185[_0x6d0008(0x268)](),_0x3fe148=yield fetch(_0xa25dc6+'/checkNodeId',{'method':_0x6d0008(0x1f0),'body':JSON['stringify']({'endpointNode':_0x5a88fe,'endpoint':_0x422dcd,'nodeId':_0x5103d3}),'headers':{'Content-Type':'application/json'}}),_0x59e4cf=(_0xe34a74,_0xb91a9e)=>{const _0x64ad57=_0x6d0008;_0x3fcb51[_0x64ad57(0x298)](_0xe34a74)[_0x64ad57(0x25e)](_0x64ad57(0x22f))['addClass'](_0xb91a9e),_0x3fcb51[_0x64ad57(0x24d)](),setTimeout(()=>{const _0x5c5281=_0x64ad57;_0x3fcb51[_0x5c5281(0x258)](_0xb91a9e),_0x3fcb51[_0x5c5281(0x222)]();},0xbb8);},_0x59ea31=yield _0x3fe148[_0x6d0008(0x27c)]();_0x3fe148[_0x6d0008(0x1cb)]!==0xc8?_0x59e4cf('!!failure!!'+_0x5103d3,'failure'):_0x59ea31[_0x6d0008(0x201)][_0x6d0008(0x22d)](/Good/)?(_0x5b9185[_0x6d0008(0x268)](_0x59ea31[_0x6d0008(0x1c9)]),_0x5b9185[_0x6d0008(0x278)](_0x6d0008(0x1dc)),_0x59e4cf(_0x6d0008(0x1d2),'ok')):(_0x5b9185[_0x6d0008(0x268)](''+_0x5103d3),_0x59e4cf(_0x59ea31[_0x6d0008(0x201)]+'\x20'+_0x3fe148[_0x6d0008(0x21f)],_0x6d0008(0x259)));});function _0x178e18(_0x519fee,_0x3a2f6b){return _0x183f63(this,void 0x0,void 0x0,function*(){const _0x5a2e8a=_0x22c1,_0x2ae617=_0x519fee['data'](_0x5a2e8a(0x2a4)),_0x3398b2=yield _0x5ef2af(_0x3a2f6b,_0x2ae617,_0x317c9e),_0x1a5abd=yield _0x5ef2af(_0x3a2f6b,_0x2ae617,_0x3aa0ea);return{'references':[..._0x3398b2[_0x5a2e8a(0x286)],..._0x1a5abd['references']]};});}const _0x34eac2={'referenceTypeId':_0x59a186(_0x4b4774(0x22e)),'includeSubtypes':!![],'browseDirection':_0x2d5564['Forward'],'nodeClassMask':_0x1f829a[_0x4b4774(0x25c)]|_0x1f829a[_0x4b4774(0x1ed)]|_0x1f829a[_0x4b4774(0x238)]|_0x1f829a['VariableType'],'resultMask':0x3f};function _0xe4ff95(_0x493396,_0x33ad7b){return _0x183f63(this,void 0x0,void 0x0,function*(){const _0x1f1e9c=_0x22c1,_0x4970de=_0x493396[_0x1f1e9c(0x263)](_0x1f1e9c(0x2a4)),_0x43a827=yield _0x5ef2af(_0x33ad7b,_0x4970de,_0x34eac2);return _0x43a827;});}const _0x56aee6=_0x5e5089=>{const _0x298412=_0x4b4774;var _0x46faaf,_0x1a7667;if(!_0x5e5089){const _0x31fb2c=$('<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>');return _0x31fb2c;}const _0x48614b=_0x5e5089['nodeId']['toString'](),_0x3e680b=((_0x46faaf=_0x5e5089[_0x298412(0x24f)])===null||_0x46faaf===void 0x0?void 0x0:_0x46faaf[_0x298412(0x298)])||((_0x1a7667=_0x5e5089[_0x298412(0x29c)])===null||_0x1a7667===void 0x0?void 0x0:_0x1a7667[_0x298412(0x2b1)])||_0x5e5089[_0x298412(0x275)][_0x298412(0x1da)](),{icon:_0x2164e8,color:_0x553a1d}=_0x24ff9b(_0x5e5089),_0x299373=$('<li><i\x20class=\x22fa\x20'+_0x2164e8+'\x22\x20style=\x22color:'+_0x553a1d+_0x298412(0x1f3)+_0x3e680b+_0x298412(0x1d1));return _0x299373[_0x298412(0x25e)](_0x298412(0x1d9)),_0x299373['data']('value',_0x48614b),_0x299373['data'](_0x298412(0x27b),_0x5e5089),_0x299373;},_0x2100d3=()=>{const _0x8cf1a0=_0x4b4774;$['widget'](_0x8cf1a0(0x1f7),{'options':{'endpointNode':()=>({'endpoint':_0x8cf1a0(0x1d4)}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':_0x8cf1a0(0x1d8)},'nodeClass':'Object','nodeId':_0x8cf1a0(0x1e0),'displayName':{'text':'Objects'},'typeDefinition':_0x4b22fb}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x183f63(this,void 0x0,void 0x0,function*(){const _0x476b6b=_0x22c1,_0x27d2bb=this,_0x58bac1=typeof _0x27d2bb['options']['parentNode']==='function'?_0x27d2bb['options'][_0x476b6b(0x1cd)]():_0x27d2bb[_0x476b6b(0x215)][_0x476b6b(0x1cd)];if(_0x58bac1 instanceof Promise)return yield _0x58bac1;return _0x58bac1;});},'reset'(){const _0x4fbe0d=_0x8cf1a0,_0x1b9723=this;_0x1b9723[_0x4fbe0d(0x260)][_0x4fbe0d(0x243)](),this[_0x4fbe0d(0x265)]()['then'](_0x5433fb=>{const _0x4fd6cb=_0x4fbe0d,_0x2b08d0=_0x56aee6(_0x5433fb);_0x1b9723[_0x4fd6cb(0x260)][_0x4fd6cb(0x270)](_0x2b08d0),_0x1b9723['currentParent']=_0x5433fb;});},'verify'(){const _0x2c3f9c=_0x8cf1a0,_0x452978=this,_0x299301={'baseUrl':_0x452978[_0x2c3f9c(0x215)][_0x2c3f9c(0x255)],'endpointNode':typeof _0x452978[_0x2c3f9c(0x215)]['endpointNode']==='function'?_0x452978[_0x2c3f9c(0x215)]['endpointNode']():_0x452978[_0x2c3f9c(0x215)][_0x2c3f9c(0x23e)],'endpoint':typeof _0x452978[_0x2c3f9c(0x215)]['endpoint']===_0x2c3f9c(0x254)?_0x452978['options'][_0x2c3f9c(0x1eb)]():_0x452978['options'][_0x2c3f9c(0x1eb)]};_0x3abb13(_0x299301,_0x452978['$input'],_0x452978[_0x2c3f9c(0x285)]);},'_create'(){const _0xc43c2d=_0x8cf1a0,_0x5aac19=this;function _0x4dd193(_0x2bb31e,_0x45bfe5,_0x4d8d9a){return _0x183f63(this,void 0x0,void 0x0,function*(){const _0x1e9fa4=_0x22c1;if(_0x2bb31e['hasClass'](_0x1e9fa4(0x1e9))){console[_0x1e9fa4(0x1d5)](_0x1e9fa4(0x1f8));return;}if(_0x2bb31e[_0x1e9fa4(0x217)](_0x1e9fa4(0x295))){console[_0x1e9fa4(0x1d5)](_0x1e9fa4(0x29a));return;}_0x2bb31e[_0x1e9fa4(0x25e)](_0x1e9fa4(0x295)),_0x2bb31e[_0x1e9fa4(0x270)](_0x1e9fa4(0x2a6));try{_0x2bb31e[_0x1e9fa4(0x2ae)]('ul')[_0x1e9fa4(0x243)]();const {references:_0x4809dc}=yield _0x45bfe5(_0x2bb31e,_0x4d8d9a);for(const _0x5cfcbc of _0x4809dc){if(_0x5aac19['options'][_0x1e9fa4(0x219)]&&!_0x5aac19[_0x1e9fa4(0x215)][_0x1e9fa4(0x219)](_0x5cfcbc))continue;const _0x7c9457=_0x56aee6(_0x5cfcbc);_0x2bb31e[_0x1e9fa4(0x2ae)]('ul')[_0x1e9fa4(0x270)](_0x7c9457);}_0x2bb31e[_0x1e9fa4(0x25e)](_0x1e9fa4(0x1e9));}catch(_0x4c2171){_0x2bb31e[_0x1e9fa4(0x2ae)]('ul')[_0x1e9fa4(0x270)]('<li>error\x20'+_0x4c2171[_0x1e9fa4(0x282)]+_0x1e9fa4(0x25a)),console['log'](_0x1e9fa4(0x27a),_0x4c2171);}_0x2bb31e[_0x1e9fa4(0x1cc)](_0x1e9fa4(0x24b))[_0x1e9fa4(0x20e)](),_0x2bb31e[_0x1e9fa4(0x258)](_0x1e9fa4(0x295));});}_0x5aac19[_0xc43c2d(0x220)]=this['element'],_0x5aac19['$combo']=$(_0xc43c2d(0x1e1)),_0x5aac19[_0xc43c2d(0x1f5)][_0xc43c2d(0x25e)](_0xc43c2d(0x223)),this[_0xc43c2d(0x1ca)][_0xc43c2d(0x28d)](_0x5aac19['$combo']),_0x5aac19[_0xc43c2d(0x21b)]=$('<div/>')[_0xc43c2d(0x25e)](_0xc43c2d(0x294)),_0x5aac19[_0xc43c2d(0x1f5)][_0xc43c2d(0x270)](_0x5aac19[_0xc43c2d(0x21b)]),_0x5aac19[_0xc43c2d(0x21b)]['append'](_0x5aac19[_0xc43c2d(0x220)]),_0x5aac19[_0xc43c2d(0x284)]=$('<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>'),_0x5aac19[_0xc43c2d(0x21b)]['append'](_0x5aac19[_0xc43c2d(0x284)]),_0x5aac19[_0xc43c2d(0x284)]['on'](_0xc43c2d(0x1cf),function(){const _0x4a639f=_0xc43c2d;!_0x5aac19[_0x4a639f(0x244)]['is'](':visible')&&(_0x5aac19[_0x4a639f(0x265)]()['then'](_0x314cf1=>{const _0x612bdb=_0x4a639f;var _0x1b77e4;(_0x314cf1!==_0x5aac19[_0x612bdb(0x276)]||((_0x1b77e4=_0x5aac19['currentParent'])===null||_0x1b77e4===void 0x0?void 0x0:_0x1b77e4[_0x612bdb(0x275)])!==_0x314cf1['nodeId'])&&_0x5aac19['reset']();}),_0x5aac19['$info'][_0x4a639f(0x222)]()),_0x5aac19[_0x4a639f(0x244)][_0x4a639f(0x233)]();}),_0x5aac19[_0xc43c2d(0x1ec)]=$('<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>'),_0x5aac19['$inputGroup'][_0xc43c2d(0x270)](_0x5aac19[_0xc43c2d(0x1ec)]),_0x5aac19['$verifyBtn']['on']('click',()=>{const _0x30094c=_0xc43c2d;this[_0x30094c(0x1fb)]();}),!_0x5aac19[_0xc43c2d(0x220)][_0xc43c2d(0x20d)](_0xc43c2d(0x25f))&&_0x5aac19[_0xc43c2d(0x220)]['attr'](_0xc43c2d(0x25f),_0xc43c2d(0x2a8)),_0x5aac19[_0xc43c2d(0x285)]=$(_0xc43c2d(0x26f)),_0x5aac19['$info']['hide'](),{'baseUrl':_0x5aac19['options'][_0xc43c2d(0x255)],'endpointNode':typeof _0x5aac19[_0xc43c2d(0x215)][_0xc43c2d(0x23e)]===_0xc43c2d(0x254)?_0x5aac19[_0xc43c2d(0x215)][_0xc43c2d(0x23e)]():_0x5aac19[_0xc43c2d(0x215)]['endpointNode'],'endpoint':typeof _0x5aac19[_0xc43c2d(0x215)][_0xc43c2d(0x1eb)]===_0xc43c2d(0x254)?_0x5aac19['options']['endpoint']():_0x5aac19[_0xc43c2d(0x215)][_0xc43c2d(0x1eb)]},_0x5aac19[_0xc43c2d(0x244)]=$(_0xc43c2d(0x1e1))[_0xc43c2d(0x25e)](_0xc43c2d(0x203))[_0xc43c2d(0x222)](),_0x5aac19[_0xc43c2d(0x1f5)][_0xc43c2d(0x270)](_0x5aac19[_0xc43c2d(0x285)]),_0x5aac19[_0xc43c2d(0x1f5)][_0xc43c2d(0x270)](_0x5aac19[_0xc43c2d(0x244)]),_0x5aac19[_0xc43c2d(0x260)]=$('<ul\x20class=\x22sterfive-tree\x22></ul>')[_0xc43c2d(0x28c)](_0x5aac19[_0xc43c2d(0x244)]),this['reset'](),_0x5aac19[_0xc43c2d(0x260)]['on'](_0xc43c2d(0x1cf),'li',function(_0x49d359){const _0x3094b7=_0xc43c2d;var _0x318859,_0x626549;_0x49d359['stopPropagation']();let _0x5915dd=$(this);const _0x27777e=0x14,_0xcb2826=0x14,_0x248e2f=$(this)[_0x3094b7(0x242)](),_0x19f403=_0x49d359;if(_0x19f403[_0x3094b7(0x1e5)]>=_0x248e2f[_0x3094b7(0x25d)]&&_0x19f403['pageX']<=_0x248e2f[_0x3094b7(0x25d)]+_0x27777e&&_0x19f403['pageY']>=_0x248e2f['top']&&_0x19f403[_0x3094b7(0x221)]<=_0x248e2f[_0x3094b7(0x287)]+_0xcb2826){if(_0x5915dd[_0x3094b7(0x217)]('expandable')){if(_0x5915dd['hasClass'](_0x3094b7(0x1e9))){_0x5915dd[_0x3094b7(0x258)]('expandable')['addClass'](_0x3094b7(0x299)),_0x5915dd[_0x3094b7(0x2ae)]('ul')[_0x3094b7(0x233)]();return;}const _0x168aff={'baseUrl':_0x5aac19[_0x3094b7(0x215)][_0x3094b7(0x255)],'endpointNode':typeof _0x5aac19[_0x3094b7(0x215)][_0x3094b7(0x23e)]==='function'?_0x5aac19['options'][_0x3094b7(0x23e)]():_0x5aac19[_0x3094b7(0x215)][_0x3094b7(0x23e)],'endpoint':typeof _0x5aac19['options'][_0x3094b7(0x1eb)]===_0x3094b7(0x254)?_0x5aac19['options']['endpoint']():_0x5aac19[_0x3094b7(0x215)]['endpoint']},_0x76d8fa=!_0x5aac19[_0x3094b7(0x215)][_0x3094b7(0x231)]?_0x178e18:_0xe4ff95;_0x4dd193(_0x5915dd,_0x76d8fa,_0x168aff)[_0x3094b7(0x253)](()=>{const _0x3a5ce6=_0x3094b7;console[_0x3a5ce6(0x1d5)](_0x3a5ce6(0x27d)),console['log'](_0x3a5ce6(0x1e9)),_0x5915dd[_0x3a5ce6(0x258)](_0x3a5ce6(0x1d9))[_0x3a5ce6(0x25e)]('expanded');})[_0x3094b7(0x272)](_0x189a3e=>{const _0x13083f=_0x3094b7;_0x5915dd[_0x13083f(0x258)]('expandable')['addClass']('expanded'),console[_0x13083f(0x1d5)]('error',_0x189a3e);});}else{if(_0x5915dd['hasClass'](_0x3094b7(0x299)))_0x5915dd[_0x3094b7(0x2ae)]('ul')['toggle'](),_0x5915dd[_0x3094b7(0x218)](_0x3094b7(0x26a));else{if(_0x5915dd[_0x3094b7(0x2ae)]('ul')[_0x3094b7(0x2ae)]()[_0x3094b7(0x2a5)]>0x0)_0x5915dd[_0x3094b7(0x2ae)]('ul')[_0x3094b7(0x233)](),_0x5915dd[_0x3094b7(0x218)](_0x3094b7(0x26a));else;}}}else{const _0x51e8ba=_0x5915dd[_0x3094b7(0x263)](_0x3094b7(0x2a4)),_0x2b491b=_0x5915dd[_0x3094b7(0x263)](_0x3094b7(0x27b));if(_0x5aac19['options']['isSelectable']&&!_0x5aac19[_0x3094b7(0x215)][_0x3094b7(0x297)](_0x2b491b))return;_0x5aac19[_0x3094b7(0x220)]['data'](_0x3094b7(0x27b),_0x2b491b);const _0x2eb110=((_0x318859=_0x2b491b[_0x3094b7(0x24f)])===null||_0x318859===void 0x0?void 0x0:_0x318859[_0x3094b7(0x298)])||((_0x626549=_0x2b491b[_0x3094b7(0x29c)])===null||_0x626549===void 0x0?void 0x0:_0x626549[_0x3094b7(0x2b1)])||_0x2b491b[_0x3094b7(0x275)][_0x3094b7(0x1da)](),_0x384e62='['+_0x2eb110+']('+_0x51e8ba+')';_0x5aac19[_0x3094b7(0x220)][_0x3094b7(0x268)](_0x384e62),_0x5aac19['$input']['trigger']('change'),_0x5aac19[_0x3094b7(0x244)][_0x3094b7(0x222)]();}}),$(document)['on'](_0xc43c2d(0x1cf),function(_0x4907fb){const _0x22769e=_0xc43c2d;!$(_0x4907fb['target'])[_0x22769e(0x256)](_0x5aac19[_0x22769e(0x1f5)])['length']&&_0x5aac19[_0x22769e(0x244)]['hide']();});}});},_0xade0d=_0x2af5ad=>{const _0x12df22=_0x4b4774;var _0x2930f5,_0x2cd833,_0x489f3e;if(!_0x2af5ad){const _0x398eb1=$(_0x12df22(0x235));return _0x398eb1;}const _0x4f557d=_0x2af5ad['nodeId'][_0x12df22(0x1da)]();let _0xcc85a8=((_0x2930f5=_0x2af5ad[_0x12df22(0x24f)])===null||_0x2930f5===void 0x0?void 0x0:_0x2930f5[_0x12df22(0x298)])||((_0x2cd833=_0x2af5ad[_0x12df22(0x29c)])===null||_0x2cd833===void 0x0?void 0x0:_0x2cd833[_0x12df22(0x2b1)])||_0x2af5ad['nodeId']['toString'](),_0x122ed7=(_0x489f3e=_0x2af5ad[_0x12df22(0x29c)])===null||_0x489f3e===void 0x0?void 0x0:_0x489f3e[_0x12df22(0x1db)];_0xcc85a8+=_0x122ed7!==undefined&&_0x2af5ad[_0x12df22(0x249)]['match'](/Type/)?_0x12df22(0x296)+_0x122ed7+')':'';const {icon:_0x3e0bf1,color:_0x559ac6}=_0x24ff9b(_0x2af5ad),_0x55e09e=$(_0x12df22(0x289));if(_0x2af5ad[_0x12df22(0x249)]===_0x12df22(0x293)){const _0x3ee4e5=$(_0x12df22(0x1f2));_0x55e09e[_0x12df22(0x270)](_0x3ee4e5),_0x3ee4e5['on'](_0x12df22(0x1cf),function(){const _0x22eaa9=_0x12df22;_0x3ee4e5[_0x22eaa9(0x217)](_0x22eaa9(0x1d3))?_0x3ee4e5[_0x22eaa9(0x258)](_0x22eaa9(0x1d3))['addClass'](_0x22eaa9(0x20a)):_0x3ee4e5[_0x22eaa9(0x258)](_0x22eaa9(0x20a))[_0x22eaa9(0x25e)](_0x22eaa9(0x1d3));});}return _0x55e09e['append']($(_0x12df22(0x274)+_0x3e0bf1+'\x22\x20style=\x22color:'+_0x559ac6+_0x12df22(0x26e)+_0xcc85a8+_0x12df22(0x216))),_0x55e09e[_0x12df22(0x25e)](_0x12df22(0x1d9)),_0x55e09e[_0x12df22(0x263)](_0x12df22(0x2a4),_0x4f557d),_0x55e09e[_0x12df22(0x263)](_0x12df22(0x27b),_0x2af5ad),_0x55e09e;},_0x10748f=()=>{const _0x31ffd8=_0x4b4774;$['widget']('sterfive.eventFieldSelector',{'options':{'endpointNode':()=>({'endpoint':_0x31ffd8(0x1d4)}),'endpoint':()=>undefined,'baseUrl':''},'_populate'(){var _0x5ca6a5;return _0x183f63(this,void 0x0,void 0x0,function*(){const _0x36b7ce=_0x22c1,_0x2dec76=this,_0x4b55df=new Set((_0x5ca6a5=_0x2dec76[_0x36b7ce(0x220)][_0x36b7ce(0x268)]())===null||_0x5ca6a5===void 0x0?void 0x0:_0x5ca6a5[_0x36b7ce(0x1da)]()['split'](';')),_0x27077d={'baseUrl':_0x2dec76[_0x36b7ce(0x215)][_0x36b7ce(0x255)],'endpointNode':typeof _0x2dec76[_0x36b7ce(0x215)][_0x36b7ce(0x23e)]===_0x36b7ce(0x254)?_0x2dec76['options']['endpointNode']():_0x2dec76[_0x36b7ce(0x215)]['endpointNode'],'endpoint':typeof _0x2dec76['options'][_0x36b7ce(0x1eb)]===_0x36b7ce(0x254)?_0x2dec76[_0x36b7ce(0x215)][_0x36b7ce(0x1eb)]():_0x2dec76[_0x36b7ce(0x215)][_0x36b7ce(0x1eb)]},_0x92d48b=yield _0x139d6c(_0x27077d);this[_0x36b7ce(0x236)](_0x92d48b,_0x4b55df);});},'_installTree'(_0x10c260,_0x1a35b1){const _0x591ddb=_0x31ffd8,_0x478aad=this;_0x478aad[_0x591ddb(0x260)][_0x591ddb(0x243)]();if(!_0x10c260[_0x591ddb(0x1f6)])return;const _0x54001a=_0x10c260[_0x591ddb(0x1f6)],_0x32f395=_0xade0d(_0x54001a);_0x478aad[_0x591ddb(0x260)][_0x591ddb(0x270)](_0x32f395);const _0x5955e6='';this[_0x591ddb(0x2ac)](_0x32f395[_0x591ddb(0x2ae)]('ul'),_0x54001a,_0x5955e6,_0x1a35b1),_0x32f395[_0x591ddb(0x258)]('expandable')[_0x591ddb(0x25e)](_0x591ddb(0x299)),this['_updateValues'](_0x1a35b1);},'_installChildren'(_0x4347cf,_0x8eda06,_0x55af0a,_0x3bfbf6){const _0x321bc3=_0x31ffd8,_0x20699c=({name:_0x308622,namespaceIndex:_0x5198d8})=>{if(_0x5198d8===0x0)return _0x308622;return _0x5198d8+':'+_0x308622;},_0x52e8fd=_0x8eda06[_0x321bc3(0x2ae)]||[],_0x554a26=_0x8eda06[_0x321bc3(0x291)]||[],_0x52e341=[..._0x52e8fd,..._0x554a26];for(const _0x4f2813 of _0x52e341){const _0x32b992=_0xade0d(_0x4f2813);_0x4347cf['append'](_0x32b992);let _0x1d6864='';_0x4f2813[_0x321bc3(0x249)]==='Variable'&&(_0x55af0a?_0x1d6864=_0x55af0a+'.'+_0x20699c(_0x4f2813[_0x321bc3(0x29c)]):_0x1d6864=_0x20699c(_0x4f2813[_0x321bc3(0x29c)]),_0x32b992[_0x321bc3(0x20d)](_0x321bc3(0x261),_0x1d6864));const _0x5408cc=_0x4f2813[_0x321bc3(0x2ae)]&&_0x4f2813[_0x321bc3(0x2ae)][_0x321bc3(0x2a5)],_0x45adc6=_0x4f2813[_0x321bc3(0x291)]&&_0x4f2813[_0x321bc3(0x291)][_0x321bc3(0x2a5)];!_0x5408cc&&!_0x45adc6?_0x32b992[_0x321bc3(0x258)](_0x321bc3(0x1d9))['addClass']('no-expandable'):(this[_0x321bc3(0x2ac)](_0x32b992[_0x321bc3(0x2ae)]('ul'),_0x4f2813,_0x1d6864,_0x3bfbf6),_0x32b992[_0x321bc3(0x258)](_0x321bc3(0x1d9))[_0x321bc3(0x25e)]('expanded'));}},'_updateSelectedFields'(){const _0x173cba=_0x31ffd8;var _0x4da433;const _0x5db3fa=this,_0xac0805=new Set((_0x4da433=_0x5db3fa['$input'][_0x173cba(0x268)]())===null||_0x4da433===void 0x0?void 0x0:_0x4da433[_0x173cba(0x1da)]()[_0x173cba(0x273)](';'));this[_0x173cba(0x271)](_0xac0805);},'_updateValues'(_0x421f9d){const _0x18ce84=_0x31ffd8;$(_0x18ce84(0x213))[_0x18ce84(0x228)](function(){const _0x2cc904=_0x18ce84,_0x2c4071=$(this),_0x57715b=_0x2c4071[_0x2cc904(0x20d)](_0x2cc904(0x261));_0x57715b&&_0x421f9d[_0x2cc904(0x29b)](_0x57715b)&&_0x2c4071[_0x2cc904(0x2ae)](_0x2cc904(0x229))[_0x2cc904(0x258)]('unchecked')[_0x2cc904(0x25e)](_0x2cc904(0x20a));});},'_setInputValue'(){const _0x8f949e=_0x31ffd8,_0x3aa4b0=this,_0x59db16=[];$('.sterfive-tree\x20li')[_0x8f949e(0x228)](function(){const _0x1cddb8=_0x8f949e,_0x43c4cc=$(this);if(_0x43c4cc[_0x1cddb8(0x2ae)](_0x1cddb8(0x1c8))['length']>0x0){const _0x570415=_0x43c4cc['attr'](_0x1cddb8(0x261));if(_0x570415)_0x59db16[_0x1cddb8(0x2a7)](_0x570415);}});const _0x464de6=[...new Set(_0x59db16)][_0x8f949e(0x23b)]()[_0x8f949e(0x247)](';');_0x3aa4b0[_0x8f949e(0x220)][_0x8f949e(0x268)](_0x464de6),_0x3aa4b0['$input']['trigger'](_0x8f949e(0x1dc));},'_create'(){const _0x3f9129=_0x31ffd8,_0x505057=this;_0x505057[_0x3f9129(0x220)]=this[_0x3f9129(0x1ca)],_0x505057[_0x3f9129(0x1f5)]=$(_0x3f9129(0x1e1)),_0x505057[_0x3f9129(0x1f5)][_0x3f9129(0x25e)]('sterfive-combo-box'),this[_0x3f9129(0x1ca)][0x0]['parentElement'][_0x3f9129(0x224)](_0x505057[_0x3f9129(0x1f5)][0x0],this['element'][0x0]),_0x505057[_0x3f9129(0x21b)]=$(_0x3f9129(0x1e1))[_0x3f9129(0x25e)](_0x3f9129(0x294)),_0x505057[_0x3f9129(0x1f5)][_0x3f9129(0x270)](_0x505057['$inputGroup']),_0x505057[_0x3f9129(0x21b)]['append'](_0x505057[_0x3f9129(0x220)]),_0x505057[_0x3f9129(0x284)]=$(_0x3f9129(0x288)),_0x505057[_0x3f9129(0x21b)][_0x3f9129(0x270)](_0x505057['$toggleTreeBtn']),_0x505057['$toggleTreeBtn']['on'](_0x3f9129(0x1cf),function(){const _0x44b70e=_0x3f9129;_0x505057[_0x44b70e(0x244)][_0x44b70e(0x233)](),_0x505057[_0x44b70e(0x285)][_0x44b70e(0x233)]();if(_0x505057[_0x44b70e(0x244)]['is'](':visible')){_0x2081c3[_0x44b70e(0x24d)]();const _0x1942db=_0x505057[_0x44b70e(0x244)][_0x44b70e(0x242)]();_0x2081c3[_0x44b70e(0x2a9)]({'top':_0x1942db['top']+'px','right':_0x44b70e(0x225)+(_0x1942db['left']+_0x505057[_0x44b70e(0x244)]['width']())+_0x44b70e(0x2a1)}),_0x505057[_0x44b70e(0x1e2)](),_0x505057['_updateSelectedFields']();}else _0x2081c3['hide']();});!_0x505057[_0x3f9129(0x220)][_0x3f9129(0x20d)](_0x3f9129(0x25f))&&_0x505057[_0x3f9129(0x220)][_0x3f9129(0x20d)]('placeholder',_0x3f9129(0x2a8));_0x505057['$info']=$('<div\x20class=\x22info-text\x22></div>'),_0x505057['$info'][_0x3f9129(0x222)](),_0x505057[_0x3f9129(0x244)]=$(_0x3f9129(0x1e1))['addClass']('sterfive-dropdown')['hide']();const _0x30836a=$(_0x3f9129(0x22b)),_0x30f9df=$(_0x3f9129(0x246)),_0x2081c3=$(_0x3f9129(0x29f))['append'](_0x30836a,_0x30f9df);_0x2081c3[_0x3f9129(0x222)](),_0x30836a['on'](_0x3f9129(0x1cf),()=>{const _0x1bdc77=_0x3f9129;_0x505057[_0x1bdc77(0x23a)](),_0x505057[_0x1bdc77(0x244)][_0x1bdc77(0x222)]();}),_0x30f9df['on'](_0x3f9129(0x1cf),()=>{const _0x14a350=_0x3f9129;_0x505057[_0x14a350(0x244)]['hide']();}),_0x505057[_0x3f9129(0x1f5)][_0x3f9129(0x270)](_0x505057[_0x3f9129(0x285)]),_0x505057[_0x3f9129(0x1f5)]['append'](_0x505057[_0x3f9129(0x244)]),_0x505057['$tree']=$('<ul\x20class=\x22sterfive-tree\x22></ul>'),_0x505057['$dropdown'][_0x3f9129(0x243)]()[_0x3f9129(0x270)](_0x505057[_0x3f9129(0x260)],_0x2081c3),_0x505057[_0x3f9129(0x260)]['on'](_0x3f9129(0x1cf),'li',function(_0x96ae30){const _0x8f44ce=_0x3f9129;_0x96ae30[_0x8f44ce(0x1df)]();let _0x456f63=$(this);const _0x4454ac=0x14,_0x23ac19=0x14,_0x609da1=$(this)[_0x8f44ce(0x242)](),_0x227ee8=_0x96ae30;if(_0x227ee8[_0x8f44ce(0x1e5)]>=_0x609da1[_0x8f44ce(0x25d)]&&_0x227ee8[_0x8f44ce(0x1e5)]<=_0x609da1[_0x8f44ce(0x25d)]+_0x4454ac&&_0x227ee8['pageY']>=_0x609da1['top']&&_0x227ee8['pageY']<=_0x609da1[_0x8f44ce(0x287)]+_0x23ac19){console[_0x8f44ce(0x1d5)](_0x8f44ce(0x22c)),console['log'](_0x8f44ce(0x1e8),_0x456f63[_0x8f44ce(0x263)](_0x8f44ce(0x2a4)),_0x456f63['attr'](_0x8f44ce(0x239)));if(_0x456f63['hasClass'](_0x8f44ce(0x1d9)))_0x456f63[_0x8f44ce(0x258)](_0x8f44ce(0x1d9))[_0x8f44ce(0x25e)]('expanded'),_0x456f63['children']('ul')['toggle']();else{if(_0x456f63[_0x8f44ce(0x217)](_0x8f44ce(0x299)))_0x456f63[_0x8f44ce(0x2ae)]('ul')[_0x8f44ce(0x233)](),_0x456f63[_0x8f44ce(0x218)](_0x8f44ce(0x26a));else{if(_0x456f63[_0x8f44ce(0x2ae)]('ul')[_0x8f44ce(0x2ae)]()['length']>0x0)_0x456f63[_0x8f44ce(0x2ae)]('ul')[_0x8f44ce(0x233)](),_0x456f63['toggleClass'](_0x8f44ce(0x26a));else;}}}}),$(document)['on'](_0x3f9129(0x1cf),function(_0x1fad51){const _0x14d6c4=_0x3f9129;!$(_0x1fad51['target'])['closest'](_0x505057[_0x14d6c4(0x1f5)])['length']&&_0x505057['$dropdown']['hide']();}),this[_0x3f9129(0x1e2)]();}});},_0x139d6c=({endpointNode:_0x2bc402,endpoint:_0x5d7116,baseUrl:_0x2692da})=>_0x183f63(void 0x0,void 0x0,void 0x0,function*(){const _0x57cd27=_0x4b4774,_0xcc40da=_0x2692da+'/opcua-endpoint2',_0x3cfd3d=_0xcc40da+_0x57cd27(0x206),_0x26b97c=yield fetch(_0x3cfd3d,{'method':_0x57cd27(0x1f0),'body':JSON[_0x57cd27(0x205)]({'endpointNode':_0x2bc402,'endpoint':_0x5d7116}),'headers':{'Content-Type':_0x57cd27(0x1e6)}});if(_0x26b97c[_0x57cd27(0x1cb)]!==0xc8)return console[_0x57cd27(0x1d5)](_0x57cd27(0x212),_0x26b97c[_0x57cd27(0x1cb)],_0x26b97c['statusText']),{'events':null};console[_0x57cd27(0x1d5)](_0x57cd27(0x26b),_0x26b97c[_0x57cd27(0x1cb)],_0x26b97c[_0x57cd27(0x21f)]);const _0x3da745=yield _0x26b97c[_0x57cd27(0x27c)](),_0xb1d28d=_0x3da745['events'];return{'events':_0xb1d28d};}),_0x48c903=()=>{const _0x386d59=_0x4b4774,_0x168a71=$(_0x386d59(0x210)),_0x4b141f=_0x168a71['val'](),_0xf588c=RED[_0x386d59(0x248)][_0x386d59(0x1e7)](_0x4b141f);if(!_0xf588c)return undefined;const {endpoint:_0x16246d,securityMode:_0x2e772e,securityPolicy:_0xca72e2,userIdentityType:_0x4a954f,userName:_0x2c1d56,password:_0x214e08,userCertificate:_0x26b3be,userPrivatekey:_0x238a48}=_0xf588c;return{'endpoint':_0x16246d,'securityMode':_0x2e772e,'securityPolicy':_0xca72e2,'userIdentityType':_0x4a954f,'userName':_0x2c1d56,'password':_0x214e08,'userCertificate':_0x26b3be,'userPrivatekey':_0x238a48};},_0xcd4336=()=>{return{'endpointNode':_0x3676bb};},_0x3676bb=()=>{const _0x47e1d1=_0x4b4774,_0x15a8f9=$(_0x47e1d1(0x210)),_0x59f3ec=_0x15a8f9[_0x47e1d1(0x268)](),_0x510908=_0x48c903();if(!_0x510908)return undefined;return{'id':_0x59f3ec,'endpoint':_0x510908[_0x47e1d1(0x1eb)],'securityMode':_0x510908['securityMode'],'securityPolicy':_0x510908[_0x47e1d1(0x266)],'userIdentityType':_0x510908[_0x47e1d1(0x279)],'userName':_0x510908[_0x47e1d1(0x279)]==='UserName'?_0x510908['userName']:undefined,'password':_0x510908[_0x47e1d1(0x279)]===_0x47e1d1(0x1f9)?_0x510908[_0x47e1d1(0x2a2)]:undefined,'userCertificate':_0x510908['userCertificate'],'userPrivatekey':_0x510908[_0x47e1d1(0x1de)]};};RED[_0x4b4774(0x248)][_0x4b4774(0x29e)](_0x4b4774(0x290),{'category':_0x4b4774(0x26d),'color':_0x4b4774(0x262),'align':_0x4b4774(0x280),'icon':_0x4b4774(0x257),'paletteLabel':_0x4b4774(0x2af),'defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':_0x4b4774(0x1f4)},'subscription':{'value':'','required':!![],'validate':_0x27f480=>{if(_0x27f480==='')return![];return!![];}},'startImmediately':{'value':!![],'required':!![]},'nodeId':{'value':'','required':![],'validate':()=>!![]},'samplingInterval':{'value':0x3e8,'required':!![]},'discardOldest':{'value':!![],'required':!![]},'queueSize':{'value':0xa,'required':!![]},'selectClauses':{'value':'','required':!![]},'whereClause':{'value':'','required':![]}},'outputs':0x2,'label'(){const _0xf291be=_0x4b4774;return this[_0xf291be(0x2b1)]||_0xf291be(0x20f);},'labelStyle'(){const _0x58aabf=_0x4b4774;return this[_0x58aabf(0x2b1)]?_0x58aabf(0x267):'';},'oneditprepare'(){const _0x99415c=_0x4b4774;_0x2100d3(),_0x10748f(),_0x4e7446(RED,this),$('node-input-startImmediately')['on'](_0x99415c(0x1dc),()=>{const _0x376701=_0x99415c,_0x392bbd=$('#node-input-startImmediately')[_0x376701(0x209)](_0x376701(0x20a));_0x392bbd?$(_0x376701(0x2a3))[_0x376701(0x268)](0x0):$(_0x376701(0x2a3))[_0x376701(0x268)](0x1);});const _0x8fb7f6=$(_0x99415c(0x1d6));_0x8fb7f6[_0x99415c(0x207)](Object[_0x99415c(0x27f)](Object[_0x99415c(0x27f)]({},_0xcd4336()),{'filter'(_0x289b9e){const _0x4886d6=_0x99415c;return _0x289b9e[_0x4886d6(0x249)]===_0x4886d6(0x1dd);},'isSelectable'(_0x50ea01){const _0x4666fb=_0x99415c;return _0x50ea01['nodeClass']===_0x4666fb(0x1dd);}})),$(_0x99415c(0x241));const _0x3eb4c9=$(_0x99415c(0x1e4));_0x3eb4c9[_0x99415c(0x24c)](Object[_0x99415c(0x27f)]({},_0xcd4336()));},'oneditsave'(){const _0x440830=_0x4b4774,_0x12f32b=$(_0x440830(0x24a))[_0x440830(0x209)](_0x440830(0x20a));_0x12f32b?($(_0x440830(0x24a))[_0x440830(0x268)](_0x12f32b?0x0:0x1),this[_0x440830(0x237)]=_0x12f32b?0x0:0x1):($(_0x440830(0x24a))['val'](0x1),this['inputs']=0x1);}});}()));
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHg0ZTc0NDYiLCJfMHgxM2I4MWUiLCJfMHg0ZGZiMDUiLCJfMHgyMzY0NTAiLCIkIiwiXzB4Mzk3YzhiIiwiXzB4NTYzNTZhIiwiXzB4NDFhYWIxIiwiXzB4MTEzNjY1IiwiXzB4M2YzMGFjIiwiXzB4MTgzZjYzIiwiXzB4NzFhMGU4IiwiXzB4MjdjM2ZiIiwiXzB4MzI3M2I0IiwiXzB4YzEyODMyIiwiXzB4MzFiMTdjIiwiXzB4MmEzYWNjIiwiXzB4M2QzZmU2IiwiUHJvbWlzZSIsIl8weDIzZWQ4NiIsIl8weDNkYzc4MSIsIl8weDUxNzhlNCIsIl8weDQ5MWVkYSIsIl8weDE1OWVlNiIsIl8weDUzYzdkOSIsIl8weDViODMzZSIsIl8weDQ3ZTY0MiIsIl8weDI5OTYwOSIsIl8weDQ5YzI3NiIsIlN1cHByZXNzZWRFcnJvciIsIl8weDMxMWVjMCIsIl8weDM1ZmY2YiIsIl8weDIwM2VlMyIsIl8weDE4ZmRkMCIsIkVycm9yIiwiXzB4MTllZjYzIiwiXzB4NGIyMmZiIiwiXzB4NTEwYTg4IiwiXzB4M2NmOTQ2IiwiXzB4MzIyN2NiIiwiXzB4MTk0ODBhIiwiXzB4YjM0ZWQ3IiwiXzB4MmQ1NTY0IiwiXzB4YmNjNzZhIiwiXzB4MWY4MjlhIiwiXzB4MmVhMWJhIiwiXzB4MWY4NDJhIiwiXzB4NGUwNDBlIiwiXzB4NWQ3ZGU3IiwiXzB4MjE0OWY3IiwiXzB4NTlhMTg2IiwiXzB4M2MwZGY3IiwiXzB4MjRmZjliIiwiXzB4M2NiYTg4IiwiXzB4NWVmMmFmIiwiZW5kcG9pbnROb2RlIiwiXzB4MzhkMDJlIiwiZW5kcG9pbnQiLCJfMHg0NTJiYWEiLCJiYXNlVXJsIiwiXzB4NGNkZmQ3IiwiXzB4MzgyZWE0IiwiXzB4MzMxMzYwIiwiXzB4OTZkN2Q4IiwiXzB4NDcxYjNkIiwiXzB4MTJiNzc2IiwiT2JqZWN0IiwiXzB4M2UzMzRiIiwiZmV0Y2giLCJKU09OIiwiY29uc29sZSIsIl8weDMxNzQ0MSIsIl8weDQ4ZDU4NSIsIl8weDMxN2M5ZSIsIl8weDNhYTBlYSIsIl8weDNhYmIxMyIsIl8weDVhODhmZSIsIl8weDQyMmRjZCIsIl8weDNkOGM5OCIsIl8weDViOTE4NSIsIl8weDNmY2I1MSIsIl8weGEyNWRjNiIsIl8weDUxMDNkMyIsIl8weDNmZTE0OCIsIl8weDU5ZTRjZiIsIl8weGUzNGE3NCIsIl8weGI5MWE5ZSIsInNldFRpbWVvdXQiLCJfMHg1OWVhMzEiLCJfMHgxNzhlMTgiLCJfMHg1MTlmZWUiLCJfMHgzYTJmNmIiLCJfMHgyYWU2MTciLCJfMHgzMzk4YjIiLCJfMHgxYTVhYmQiLCJfMHgzNGVhYzIiLCJfMHhlNGZmOTUiLCJfMHg0OTMzOTYiLCJfMHgzM2FkN2IiLCJfMHg0OTcwZGUiLCJfMHg0M2E4MjciLCJfMHg1NmFlZTYiLCJfMHg1ZTUwODkiLCJfMHg0NmZhYWYiLCJfMHgxYTc2NjciLCJfMHgzMWZiMmMiLCJfMHg0ODYxNGIiLCJfMHgzZTY4MGIiLCJpY29uIiwiXzB4MjE2NGU4IiwiY29sb3IiLCJfMHg1NTNhMWQiLCJfMHgyOTkzNzMiLCJfMHgyMTAwZDMiLCJ1bmRlZmluZWQiLCJfMHgyN2QyYmIiLCJfMHg1OGJhYzEiLCJfMHgxYjk3MjMiLCJfMHg1NDMzZmIiLCJfMHgyYjA4ZDAiLCJfMHg0NTI5NzgiLCJfMHgyOTkzMDEiLCJfMHg1YWFjMTkiLCJfMHg0ZGQxOTMiLCJfMHgyYmIzMWUiLCJfMHg0NWJmZTUiLCJfMHg0ZDhkOWEiLCJyZWZlcmVuY2VzIiwiXzB4NDgwOWRjIiwiXzB4NWNmY2JjIiwiXzB4N2M5NDU3IiwiXzB4NGMyMTcxIiwiXzB4MzE0Y2YxIiwiXzB4MWI3N2U0IiwiXzB4NDlkMzU5IiwiXzB4MzE4ODU5IiwiXzB4NjI2NTQ5IiwiXzB4NTkxNWRkIiwiXzB4Mjc3NzdlIiwiXzB4Y2IyODI2IiwiXzB4MjQ4ZTJmIiwiXzB4MTlmNDAzIiwiXzB4MTY4YWZmIiwiXzB4NzZkOGZhIiwiXzB4MTg5YTNlIiwiXzB4NTFlOGJhIiwiXzB4MmI0OTFiIiwiXzB4MmViMTEwIiwiXzB4Mzg0ZTYyIiwiZG9jdW1lbnQiLCJfMHg0OTA3ZmIiLCJfMHhhZGUwZCIsIl8weDJhZjVhZCIsIl8weDI5MzBmNSIsIl8weDJjZDgzMyIsIl8weDQ4OWYzZSIsIl8weDM5OGViMSIsIl8weDRmNTU3ZCIsIl8weGNjODVhOCIsIl8weDEyMmVkNyIsIl8weDNlMGJmMSIsIl8weDU1OWFjNiIsIl8weDU1ZTA5ZSIsIl8weDNlZTRlNSIsIl8weDEwNzQ4ZiIsIl8weDVjYTZhNSIsIl8weDJkZWM3NiIsIl8weDRiNTVkZiIsIlNldCIsIl8weDI3MDc3ZCIsIl8weDkyZDQ4YiIsIl8weDEzOWQ2YyIsIl8weDEwYzI2MCIsIl8weDFhMzViMSIsIl8weDQ3OGFhZCIsIl8weDU0MDAxYSIsIl8weDMyZjM5NSIsIl8weDU5NTVlNiIsIl8weDQzNDdjZiIsIl8weDhlZGEwNiIsIl8weDU1YWYwYSIsIl8weDNiZmJmNiIsIl8weDIwNjk5YyIsIm5hbWUiLCJfMHgzMDg2MjIiLCJuYW1lc3BhY2VJbmRleCIsIl8weDUxOThkOCIsIl8weDUyZThmZCIsIl8weDU1NGEyNiIsIl8weDUyZTM0MSIsIl8weDRmMjgxMyIsIl8weDMyYjk5MiIsIl8weDFkNjg2NCIsIl8weDU0MDhjYyIsIl8weDQ1YWRjNiIsIl8weDRkYTQzMyIsIl8weDVkYjNmYSIsIl8weGFjMDgwNSIsIl8weDQyMWY5ZCIsIl8weDJjNDA3MSIsIl8weDU3NzE1YiIsIl8weDNhYTRiMCIsIl8weDU5ZGIxNiIsIl8weDQzYzRjYyIsIl8weDU3MDQxNSIsIl8weDQ2NGRlNiIsIl8weDUwNTA1NyIsIl8weDIwODFjMyIsIl8weDE5NDJkYiIsIl8weDMwODM2YSIsIl8weDMwZjlkZiIsIl8weDk2YWUzMCIsIl8weDQ1NmY2MyIsIl8weDQ0NTRhYyIsIl8weDIzYWMxOSIsIl8weDYwOWRhMSIsIl8weDIyN2VlOCIsIl8weDFmYWQ1MSIsIl8weDJiYzQwMiIsIl8weDVkNzExNiIsIl8weDI2OTJkYSIsIl8weGNjNDBkYSIsIl8weDNjZmQzZCIsIl8weDI2Yjk3YyIsIl8weDNkYTc0NSIsIl8weGIxZDI4ZCIsIl8weDQ4YzkwMyIsIl8weDE2OGE3MSIsIl8weDRiMTQxZiIsIl8weGY1ODhjIiwiUkVEIiwiXzB4MTYyNDZkIiwic2VjdXJpdHlNb2RlIiwiXzB4MmU3NzJlIiwic2VjdXJpdHlQb2xpY3kiLCJfMHhjYTcyZTIiLCJ1c2VySWRlbnRpdHlUeXBlIiwiXzB4NGE5NTRmIiwidXNlck5hbWUiLCJfMHgyYzFkNTYiLCJwYXNzd29yZCIsIl8weDIxNGUwOCIsInVzZXJDZXJ0aWZpY2F0ZSIsIl8weDI2YjNiZSIsInVzZXJQcml2YXRla2V5IiwiXzB4MjM4YTQ4IiwiXzB4Y2Q0MzM2IiwiXzB4MzY3NmJiIiwiXzB4MTVhOGY5IiwiXzB4NTlmM2VjIiwiXzB4NTEwOTA4IiwiXzB4MjdmNDgwIiwiXzB4MzkyYmJkIiwiXzB4OGZiN2Y2IiwiXzB4Mjg5YjllIiwiXzB4NTBlYTAxIiwiXzB4M2ViNGM5IiwiXzB4MTJmMzJiIl0sIm1hcHBpbmdzIjoiNnVJQUFBLENBQUMsVSxDQUNHLGEsd0JBRUEsU0FBU0EsU0FBVCxDQUFxQ0MsU0FBckMsQ0FBMENDLFNBQTFDLEMseUJBQ1VDLFNBQUEsQ0FBWUMsQ0FBQSxDLGdCQUFBLEMsQ0FDWkMsU0FBQSxDQUFnQkQsQ0FBQSxDLGdCQUFBLEMsQ0FDaEJFLFNBQUEsQ0FBNkIsSSwyQkFDekJDLFNBQUEsQ0FBV04sU0FBQSxDLGdCQUFBLEUsTUFBQSxFQUFlRSxTQUFBLEMsZ0JBQUEsR0FBZixDLENBQ2pCRSxTQUFBLEMsZ0JBQUEsSSxHQUNJLENBQUNFLFNBQUQsRUFBYSxDQUFDQSxTQUFBLEMsZ0JBQUEsQyxDQUNkLE8sR0FFQUEsU0FBQSxDLGdCQUFBLEMsQ0FDQSxVQUFXQyxTQUFYLElBQWdCRCxTQUFBLEMsZ0JBQUEsQ0FBaEIsQyxDQUNJLE1BQU1FLFNBQUEsQ0FBUUQsU0FBQSxDLGdCQUFBLEdBQVVBLFNBQUEsQyxJQUFBLENBQXhCLENBQ0FKLENBQUEsQyxnQkFBQSxDQUFlLEMsT0FDWCxDQUFPSSxTQUFBLEMsSUFBQSxDQURJ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LENBQVVBLFNBQUEsQyxRQUFBLEUsR0FBVixFLGlCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxVQUFBLEUsR0FBVixFLFdBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLFFBQUEsRSxHQUFWLEUsaUJBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGdCQUFBLEUsR0FBVixFLGlCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxnQkFBQSxFLElBQVYsRSxpQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZ0JBQUEsRSxJQUFWLEUsZ0JBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLFVBQUEsRSxJQUFWLEUsaUJBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGdCQUFBLEUsSUFBVixFLGtCQVRKLENBVUdELFNBQUEsRUFBYyxDQUFBQSxTQUFBLENBQVksRUFBWixDQVZqQixHQVdBLElBQUlFLFNBQUosQ0FDQSxDQUFDLFNBQVVDLFNBQVYsQywyQkFDR0EsU0FBQSxDQUFjQSxTQUFBLEMsUUFBQSxFLEdBQWQsRSxTQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxnQkFBQSxFLEdBQWQsRSxpQkFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsZ0JBQUEsRSxHQUFkLEUsaUJBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGdCQUFBLEUsR0FBZCxFLGFBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGdCQUFBLEUsSUFBZCxFLGlCQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxnQkFBQSxFLElBQWQsRSxpQkFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsZ0JBQUEsRSxJQUFkLEUsaUJBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGdCQUFBLEUsSUFBZCxFLGtCQVJKLENBU0dELFNBQUEsRUFBa0IsQ0FBQUEsU0FBQSxDQUFnQixFQUFoQixDQVRyQixHQVVBLElBQUlFLFNBQUosQ0FDQSxDQUFDLFNBQVVDLFNBQVYsQywyQkFDR0EsU0FBQSxDQUFXQSxTQUFBLEMsZ0JBQUEsRSxHQUFYLEUsaUJBQ0FBLFNBQUEsQ0FBV0EsU0FBQSxDLGdCQUFBLEUsR0FBWCxFLFlBQ0FBLFNBQUEsQ0FBV0EsU0FB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Q3hFQSxTQUFBLEMsZ0JBQUEsSSxrQkFEc0UsQyxjQUdqRixDQUFhQyxTQUFiLEMsa0NBQ1dBLFNBQUEsQyxXQUFBLEksa0JBSnNFLENBQWpFLENBQXBCLEMsQ0FPQTNQLENBQUEsQyxnQkFBQSxDQVBBLENBUUEsTUFBTTRQLFNBQUEsQ0FBaUI1UCxDQUFBLEMsZ0JBQUEsQ0FBdkIsQ0FDQTRQLFNBQUEsQyxnQkFBQSxFQUFrQzlMLE1BQUEsQyxnQkFBQSxFQUFjLEVBQWQsQ0FBa0JvTCxTQUFBLEVBQWxCLENBQWxDLEMsRUFwRTZDLEMsWUFzRWpELEUsMkJBQ1VXLFNBQUEsQ0FBbUI3UCxDQUFBLEMsZ0JBQUEsRSxnQkFBQSxFLGdCQUFBLEMsQ0FDckI2UCxTLEVBQ0E3UCxDQUFBLEMsZ0JBQUEsRSxnQkFBQSxFQUFzQzZQLFNBQUEsQyxHQUFBLEMsR0FBdEMsQyxDQUNBLEssZ0JBQUEsRUFBY0EsU0FBQSxDLEdBQUEsQyxNQUdkN1AsQ0FBQSxDLGdCQUFBLEUsS0FBQSxFLEdBQUEsQyxDQUNBLEssUUFBQSxFLE1BOUV5QyxDQUFyRCxDLEVBN3hCSixHIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uICgpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICBmdW5jdGlvbiBpbnN0YWxsU3Vic2NyaXB0aW9uU2VsZWN0b3IoUkVELCBub2RlKSB7XG4gICAgICAgIGNvbnN0ICRlbmRwb2ludCA9ICQoXCIjbm9kZS1pbnB1dC1lbmRwb2ludFwiKTtcbiAgICAgICAgY29uc3QgJHN1YnNjcmlwdGlvbiA9ICQoXCIjbm9kZS1pbnB1dC1zdWJzY3JpcHRpb25cIik7XG4gICAgICAgIGNvbnN0IGluc3RhbGxTdWJzY3JpcHRpb25PcHRpb25zID0gKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZW5kcG9pbnQgPSBSRUQubm9kZXMubm9kZSgkZW5kcG9pbnQudmFsKCkpO1xuICAgICAgICAgICAgJHN1YnNjcmlwdGlvbi5lbXB0eSgpO1xuICAgICAgICAgICAgaWYgKCFlbmRwb2ludCB8fCAhZW5kcG9pbnQuc3Vic2NyaXB0aW9ucykge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChlbmRwb2ludC5zdWJzY3JpcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBzIG9mIGVuZHBvaW50LnN1YnNjcmlwdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbGFiZWwgPSBzLm5hbWUgfHwgcy5pZDtcbiAgICAgICAgICAgICAgICAgICAgJChcIjxvcHRpb24vPlwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcy5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBsYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkOiBzLmlkID09PSBub2RlLnN1YnNjcmlwdGlvbixcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC50ZXh0KGxhYmVsKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmFwcGVuZFRvKCRzdWJzY3JpcHRpb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgaW5zdGFsbFN1YnNjcmlwdGlvbk9wdGlvbnMoKTtcbiAgICAgICAgLy8gaGFja1xuICAgICAgICAvLyAkaW5wdXRBY3Rpb24ub24oXCJjaGFuZ2VcIiwgKCkgPT4ge1xuICAgICAgICAvLyAgICAgJGVuZHBvaW50Lm9uKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgLy8gICAgICAgICBpbnN0YWxsU3Vic2NyaXB0aW9uT3B0aW9ucygpO1xuICAgICAgICAvLyAgICAgfSk7XG4gICAgICAgIC8vIH0pO1xuICAgICAgICAkc3Vic2NyaXB0aW9uLm9uKFwiZm9jdXMgY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgaW5zdGFsbFN1YnNjcmlwdGlvbk9wdGlvbnMoKTtcbiAgICAgICAgfSk7XG4gICAgICAgICRlbmRwb2ludC5vbihcImNoYW5nZVwiLCAoKSA9PiB7XG4gICAgICAgICAgICBpbnN0YWxsU3Vic2NyaXB0aW9uT3B0aW9ucygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAgICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuXHJcbiAgICBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcclxuICAgIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcbiAgICBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXHJcbiAgICBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFlcclxuICAgIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuICAgIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxyXG4gICAgTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1JcclxuICAgIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuICAgIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXHJcbiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xyXG4gICAgLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UsIFN1cHByZXNzZWRFcnJvciwgU3ltYm9sICovXHJcblxyXG5cclxuICAgIGZ1bmN0aW9uIF9fYXdhaXRlcih0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcclxuICAgICAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cclxuICAgICAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHR5cGVvZiBTdXBwcmVzc2VkRXJyb3IgPT09IFwiZnVuY3Rpb25cIiA/IFN1cHByZXNzZWRFcnJvciA6IGZ1bmN0aW9uIChlcnJvciwgc3VwcHJlc3NlZCwgbWVzc2FnZSkge1xyXG4gICAgICAgIHZhciBlID0gbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gICAgICAgIHJldHVybiBlLm5hbWUgPSBcIlN1cHByZXNzZWRFcnJvclwiLCBlLmVycm9yID0gZXJyb3IsIGUuc3VwcHJlc3NlZCA9IHN1cHByZXNzZWQsIGU7XHJcbiAgICB9O1xuXG4gICAgY29uc3QgT3JnYW5pemVzUmVmTm9kZUlkID0gXCJucz0wO2k9MzVcIjtcbiAgICBjb25zdCBGb2xkZXJUeXBlID0gXCJucz0wO2k9NjFcIjtcbiAgICBjb25zdCBIYXNDb21wb25lbnRSZWZOb2RlSWQgPSBcIm5zPTA7aT00N1wiO1xuICAgIGNvbnN0IEhhc1Byb3BlcnR5UmVmTm9kZUlkID0gXCJucz0wO2k9NDZcIjtcbiAgICBjb25zdCBIYXNDaGlsZFJlZk5vZGVJZCA9IFwibnM9MDtpPTM0XCI7XG4gICAgY29uc3QgSGFzU3VidHlwZVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ1XCI7XG4gICAgY29uc3QgSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQgPSBcIm5zPTA7aT00MFwiO1xuXG4gICAgdmFyIEJyb3dzZURpcmVjdGlvbjtcbiAgICAoZnVuY3Rpb24gKEJyb3dzZURpcmVjdGlvbikge1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiRm9yd2FyZFwiXSA9IDBdID0gXCJGb3J3YXJkXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJJbnZlcnNlXCJdID0gMV0gPSBcIkludmVyc2VcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkJvdGhcIl0gPSAyXSA9IFwiQm90aFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52YWxpZFwiXSA9IDNdID0gXCJJbnZhbGlkXCI7XG4gICAgfSkoQnJvd3NlRGlyZWN0aW9uIHx8IChCcm93c2VEaXJlY3Rpb24gPSB7fSkpO1xuICAgIHZhciBOb2RlQ2xhc3M7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3MpIHtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlVuc3BlY2lmaWVkXCJdID0gMF0gPSBcIlVuc3BlY2lmaWVkXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJPYmplY3RcIl0gPSAxXSA9IFwiT2JqZWN0XCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0VHlwZVwiXSA9IDhdID0gXCJPYmplY3RUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiRGF0YVR5cGVcIl0gPSA2NF0gPSBcIkRhdGFUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzcyB8fCAoTm9kZUNsYXNzID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzTWFzaztcbiAgICAoZnVuY3Rpb24gKE5vZGVDbGFzc01hc2spIHtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJNZXRob2RcIl0gPSA0XSA9IFwiTWV0aG9kXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMzJdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzc01hc2sgfHwgKE5vZGVDbGFzc01hc2sgPSB7fSkpO1xuICAgIHZhciBSZXN1bHRNYXNrO1xuICAgIChmdW5jdGlvbiAoUmVzdWx0TWFzaykge1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMV0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiSXNGb3J3YXJkXCJdID0gMl0gPSBcIklzRm9yd2FyZFwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJOb2RlQ2xhc3NcIl0gPSA0XSA9IFwiTm9kZUNsYXNzXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIkJyb3dzZU5hbWVcIl0gPSA4XSA9IFwiQnJvd3NlTmFtZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJEaXNwbGF5TmFtZVwiXSA9IDE2XSA9IFwiRGlzcGxheU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiVHlwZURlZmluaXRpb25cIl0gPSAzMl0gPSBcIlR5cGVEZWZpbml0aW9uXCI7XG4gICAgfSkoUmVzdWx0TWFzayB8fCAoUmVzdWx0TWFzayA9IHt9KSk7XG4gICAgLy8gIGNvbnN0IHEgPSBSZWZlcmVuY2VUeXBlSWRzLk9yZ2FuaXplcztcbiAgICBmdW5jdGlvbiByZXNvbHZlTm9kZUlkKG5vZGVJZExpa2UpIHtcbiAgICAgICAgc3dpdGNoIChub2RlSWRMaWtlKSB7XG4gICAgICAgICAgICBjYXNlIFwiT3JnYW5pemVzXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIE9yZ2FuaXplc1JlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNQcm9wZXJ0eVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNQcm9wZXJ0eVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDb21wb25lbnRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzQ29tcG9uZW50UmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc0NoaWxkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NoaWxkUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1N1YnR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzU3VidHlwZVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNUeXBlRGVmaW5pdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNUeXBlRGVmaW5pdGlvblJlZk5vZGVJZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGdldEljb24gPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHN3aXRjaCAocmVmZXJlbmNlLm5vZGVDbGFzcykge1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFwiOlxuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBPcmdhbml6ZXNSZWZOb2RlSWQpIDtcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnR5cGVEZWZpbml0aW9uID09PSBGb2xkZXJUeXBlIHx8IHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IFwiaT02MVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtZm9sZGVyXCIsIGNvbG9yOiBcInJnYmEoNjEsIDYwLCA0LCAwLjUyNSlcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJTZWFHcmVlblwiIH07XG4gICAgICAgICAgICBjYXNlIFwiVmFyaWFibGVcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzQ29tcG9uZW50UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiU3RlZWxCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzUHJvcGVydHlSZWZOb2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJEb2RnZXJCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiQ2FkZXRCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFwiTWV0aG9kXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1jb2dcIiwgY29sb3I6IFwiU2FuZHlCcm93blwiIH07XG4gICAgICAgICAgICBjYXNlIFwiT2JqZWN0VHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiBcIkRhcmtPcmFuZ2VcIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlVHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtc2xpZGVyc1wiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXF1ZXN0aW9uXCIsIGNvbG9yOiBcImdyZXlcIiB9O1xuICAgIH07XG5cbiAgICBjb25zdCBicm93c2UgPSAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIG5vZGVJZCwgdGVtcGxhdGUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vYnJvd3NlYDtcbiAgICAgICAgY29uc3QgYnJvd3NlRGVzY3JpcHRpb24gPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHRlbXBsYXRlKSwgeyBub2RlSWQsIHJlc3VsdE1hc2s6IDYzIH0pO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBicm93c2VEZXNjcmlwdGlvbixcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hpbmcgZmFpbGVkIHdpdGggZXJyb3JcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzOiBbXSB9O1xuICAgICAgICB9XG4gICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hlZCA6IFwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgY29uc3QgcmVmZXJlbmNlcyA9IHJlc3BvbnNlLmJyb3dzZVJlc3VsdC5yZWZlcmVuY2VzIHx8IFtdO1xuICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzIH07XG4gICAgfSk7XG5cbiAgICBjb25zdCB0ZW1wbGF0ZTEgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIkhhc0NoaWxkXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3QgdGVtcGxhdGUyID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJPcmdhbml6ZXNcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCBpbnRlcm5hbFZlcmlmeSA9ICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgJGlucHV0RWxlbWVudCwgJGluZm8pID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3Qgbm9kZUlkID0gJGlucHV0RWxlbWVudC52YWwoKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKGAke3Jvb3R9L2NoZWNrTm9kZUlkYCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBzZXROb3RpZmljYXRpb24gPSAodGV4dCwgY2xhc3NOYW1lKSA9PiB7XG4gICAgICAgICAgICAkaW5mby50ZXh0KHRleHQpLmFkZENsYXNzKFwic3RlcmZpdmUtaW5mb1wiKS5hZGRDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgJGluZm8uc2hvdygpO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgJGluZm8ucmVtb3ZlQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICAgICAkaW5mby5oaWRlKCk7XG4gICAgICAgICAgICB9LCAzMDAwKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QganNvbiA9ICh5aWVsZCBkYXRhLmpzb24oKSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICAvLyBkbyBzb21ldGhpbmc7XG4gICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCIhIWZhaWx1cmUhIVwiICsgbm9kZUlkLCBcImZhaWx1cmVcIik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoanNvbi5zdGF0dXNDb2RlLm1hdGNoKC9Hb29kLykpIHtcbiAgICAgICAgICAgICAgICAvLyBkbyBzb21ldGhpbmdcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChqc29uLm5vZGVBZGRyZXNzU3RyaW5nKTtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKFwiR29vZFwiLCBcIm9rXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC52YWwoYCR7bm9kZUlkfWApO1xuICAgICAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihgJHtqc29uLnN0YXR1c0NvZGV9ICR7ZGF0YS5zdGF0dXNUZXh0fWAsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGZ1bmN0aW9uIGZldGNoQ2hpbGRyZW4oJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTEpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MiA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMik7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZmVyZW5jZXM6IFsuLi5icm93c2VSZXN1bHQxLnJlZmVyZW5jZXMsIC4uLmJyb3dzZVJlc3VsdDIucmVmZXJlbmNlc10sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgdGVtcGxhdGVTVCA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzU3VidHlwZVwiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8IE5vZGVDbGFzcy5PYmplY3RUeXBlIHwgTm9kZUNsYXNzLkRhdGFUeXBlIHwgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBmdW5jdGlvbiBmZXRjaFN1YnR5cGVzKCRub2RlLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlSWQgPSAkbm9kZS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQxID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGVTVCk7XG4gICAgICAgICAgICByZXR1cm4gYnJvd3NlUmVzdWx0MTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IG1ha2VFbGVtZW50JDEgPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGlmICghcmVmZXJlbmNlKSB7XG4gICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT48aSBjbGFzcz1cImZhIGZhLWVycm9yXCIgc3R5bGU9XCJjb2xvcjpyZWQ7XCI+PC9pPm5vIHJlZmVyZW5jZSAhPHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuID0gcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB0ID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgeyBpY29uLCBjb2xvciB9ID0gZ2V0SWNvbihyZWZlcmVuY2UpO1xuICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT48aSBjbGFzcz1cImZhICR7aWNvbn1cIiBzdHlsZT1cImNvbG9yOiR7Y29sb3J9O1wiPjwvaT4gJHt0fTx1bD48L3VsPjwvbGk+YCk7XG4gICAgICAgICRlbGVtZW50LmFkZENsYXNzKFwiZXhwYW5kYWJsZVwiKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInZhbHVlXCIsIG4pO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwicmVmZXJlbmNlXCIsIHJlZmVyZW5jZSk7XG4gICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICB9O1xuICAgIGNvbnN0IGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCA9ICgpID0+IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFsgVGVtcGVyYXR1cmUgIF1cbiAgICAgICAgICogICAoIHRvb2x0aXAgOiAoL09iamVjdHMvTXlTZW5zb3IpIChucz0xO3M9VGVtcGVyYXR1cmUpKVxuICAgICAgICAgKiBbICsgW0ZvbGRlcl0gT2JqZWN0c11cbiAgICAgICAgICogWyAgICAgW09iamVjdF0gTXlTZW5zb3JdXG4gICAgICAgICAqIFsgICAgICggKSBbVmFyaWFibGVdIFRlbXBlcmF0dXJlXVxuICAgICAgICAgKi9cbiAgICAgICAgJC53aWRnZXQoXCJzdGVyZml2ZS5ub2RlQnJvd3NlclwiLCB7XG4gICAgICAgICAgICAvKiBkZWZhdWx0IG9wdGlvbnMgKi9cbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6ICgpID0+ICh7IGVuZHBvaW50OiBcIm9wYy50Y3A6Ly9vcGN1YWRlbW8uc3RlcmZpdmUuY29tOjI2NTQzXCIgfSksXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQ6ICgpID0+IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBwYXJlbnROb2RlOiAoKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICBicm93c2VOYW1lOiB7IG5hbWVzcGFjZUluZGV4OiAwLCBuYW1lOiBcIk9iamVjdHNcIiB9LFxuICAgICAgICAgICAgICAgICAgICBub2RlQ2xhc3M6IFwiT2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgIG5vZGVJZDogXCJucz0wO2k9ODVcIixcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6IHsgdGV4dDogXCJPYmplY3RzXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZURlZmluaXRpb246IEZvbGRlclR5cGUsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgZmlsdGVyOiAoKSA9PiB0cnVlLFxuICAgICAgICAgICAgICAgIGJhc2VVcmw6IFwiXCIsXG4gICAgICAgICAgICAgICAgaXNUeXBlUmVmOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZXNvbHZlUGFyZW50Tm9kZSgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYSA9IHR5cGVvZiB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLnBhcmVudE5vZGUoKSA6IHRoYXQub3B0aW9ucy5wYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgICAgICBpZiAoYSBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB5aWVsZCBhO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc2V0KCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuZW1wdHkoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc29sdmVQYXJlbnROb2RlKCkudGhlbigocGFyZW50Tm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IG1ha2VFbGVtZW50JDEocGFyZW50Tm9kZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC5jdXJyZW50UGFyZW50ID0gcGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB2ZXJpZnkoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgICAgICAgICAgIGJhc2VVcmw6IHRoYXQub3B0aW9ucy5iYXNlVXJsLFxuICAgICAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgICAgICBlbmRwb2ludDogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50KCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBpbnRlcm5hbFZlcmlmeShkYXRhLCB0aGF0LiRpbnB1dCwgdGhhdC4kaW5mbyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2NyZWF0ZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBfZmV0Y2hEYXRhRm9yTm9kZSgkbm9kZSwgZmV0Y2hGdW5jLCBkYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJG5vZGUuaGFzQ2xhc3MoXCJmZXRjaGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhbHJlYWR5IGZldGNoZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRub2RlLmhhc0NsYXNzKFwibG9hZGluZ1wiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYWxyZWFkeSBsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwibG9hZGluZ1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmFwcGVuZCgnPGRpdiBjbGFzcz1cInNwaW5uZXJcIj48L2Rpdj4nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgcmVmZXJlbmNlcyB9ID0geWllbGQgZmV0Y2hGdW5jKCRub2RlLCBkYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHJlZmVyZW5jZSBvZiByZWZlcmVuY2VzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuZmlsdGVyICYmICF0aGF0Lm9wdGlvbnMuZmlsdGVyKHJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQkMShyZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwiZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZChgPGxpPmVycm9yICR7ZXJyLm1lc3NhZ2V9PC9saT5gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVyclwiLCBlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuZmluZChcIi5zcGlubmVyXCIpLnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUucmVtb3ZlQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQgPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8gPSAkKFwiPGRpdi8+XCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFkZENsYXNzKFwic3RlcmZpdmUtY29tYm8tYm94XCIpO1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5yZXBsYWNlV2l0aCh0aGF0LiRjb21ibyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cCA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJpbnB1dC1ncm91cFwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5wdXRHcm91cCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kaW5wdXQpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtc2l0ZW1hcFwiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiR0b2dnbGVUcmVlQnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGRyb3Bkb3duLmlzKFwiOnZpc2libGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRyZWUgd2lkZ2V0IGlzIGdvaW5nIHRvIGJlY29tZSB2aXNpYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LnJlc29sdmVQYXJlbnROb2RlKCkudGhlbigocGFyZW50Tm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyZW50Tm9kZSAhPT0gdGhhdC5jdXJyZW50UGFyZW50IHx8ICgoX2EgPSB0aGF0LmN1cnJlbnRQYXJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5ub2RlSWQpICE9PSBwYXJlbnROb2RlLm5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtZmxhc2tcIj48L2k+PC9idXR0b24+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kdmVyaWZ5QnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmVyaWZ5KCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIsIFwiZW50ZXIgYSBub2RlSWQgb3IgYSBicm93c2VQYXRoIFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mbyA9ICQoYDxkaXYgY2xhc3M9XCJpbmZvLXRleHRcIj48L2Rpdj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgKHtcbiAgICAgICAgICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93biA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJzdGVyZml2ZS1kcm9wZG93blwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGluZm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRkcm9wZG93bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZSA9ICQoYDx1bCBjbGFzcz1cInN0ZXJmaXZlLXRyZWVcIj48L3VsPmApLmFwcGVuZFRvKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlV2lkdGggPSAyMDsgLy8gU2V0IHdpZHRoIG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZUhlaWdodCA9IDIwOyAvLyBTZXQgaGVpZ2h0IG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRQb3MgPSAkKHRoaXMpLm9mZnNldCgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlID0gZXZlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlLnBhZ2VYID49IGVsZW1lbnRQb3MubGVmdCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWCA8PSBlbGVtZW50UG9zLmxlZnQgKyBiZWZvcmVXaWR0aCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA+PSBlbGVtZW50UG9zLnRvcCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA8PSBlbGVtZW50UG9zLnRvcCArIGJlZm9yZUhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGFibGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGxpLmhhc0NsYXNzKFwiZmV0Y2hlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZldGNoIG5ldyBkYXRhIGZvciB0aGlzIG5vZGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlVXJsOiB0aGF0Lm9wdGlvbnMuYmFzZVVybCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRwb2ludDogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50KCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmID0gIXRoYXQub3B0aW9ucy5pc1R5cGVSZWYgPyBmZXRjaENoaWxkcmVuIDogZmV0Y2hTdWJ0eXBlcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZmV0Y2hEYXRhRm9yTm9kZSgkbGksIGYsIGRhdGEpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCIgRmV0Y2hpbmcgZG9uZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtYXJrIGFzIGV4cGFuZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyb3JcIiwgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVG9nZ2xlIGl0cyBleHBhbmRlZC9jb2xsYXBzZWQgc3RhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmNoaWxkcmVuKFwidWxcIikuY2hpbGRyZW4oKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSAkbGkuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVmZXJlbmNlID0gJGxpLmRhdGEoXCJyZWZlcmVuY2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5vcHRpb25zLmlzU2VsZWN0YWJsZSAmJiAhdGhhdC5vcHRpb25zLmlzU2VsZWN0YWJsZShyZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuZGF0YShcInJlZmVyZW5jZVwiLCByZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGlzcGxheU5hbWUgPSAoKF9hID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGV4dCkgfHwgKChfYiA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5wdXQgPSBgWyR7ZGlzcGxheU5hbWV9XSgke3ZhbHVlfSlgO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudmFsKGlucHV0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5vbihcImNsaWNrXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBjbGlja2luZyBvdXRzaWRlIHRoZSBwYWdlIHdpbGwgaGlkZSB0aGUgZHJvcGRvd25cbiAgICAgICAgICAgICAgICAgICAgaWYgKCEkKGV2ZW50LnRhcmdldCkuY2xvc2VzdCh0aGF0LiRjb21ibykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBjb25zdCBtYWtlRWxlbWVudCA9IChyZWZlcmVuY2UpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgICAgIGlmICghcmVmZXJlbmNlKSB7XG4gICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT48aSBjbGFzcz1cImZhIGZhLWVycm9yXCIgc3R5bGU9XCJjb2xvcjpyZWQ7XCI+PC9pPm5vIHJlZmVyZW5jZSAhPHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuID0gcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBsZXQgdCA9ICgoX2EgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSB8fCAoKF9iID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGxldCBucyA9IChfYyA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MubmFtZXNwYWNlSW5kZXg7XG4gICAgICAgIHQgKz0gbnMgIT09IHVuZGVmaW5lZCAmJiByZWZlcmVuY2Uubm9kZUNsYXNzLm1hdGNoKC9UeXBlLykgPyBgIChucz0ke25zfSlgIDogXCJcIjtcbiAgICAgICAgY29uc3QgeyBpY29uLCBjb2xvciB9ID0gZ2V0SWNvbihyZWZlcmVuY2UpO1xuICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT5gKTtcbiAgICAgICAgaWYgKHJlZmVyZW5jZS5ub2RlQ2xhc3MgPT09IFwiVmFyaWFibGVcIikge1xuICAgICAgICAgICAgY29uc3QgY2hlY2tCb3ggPSAkKCc8c3BhbiBjbGFzcz1cImN1c3RvbS1jaGVja2JveCB1bmNoZWNrZWRcIj48L3NwYW4+Jyk7XG4gICAgICAgICAgICAkZWxlbWVudC5hcHBlbmQoY2hlY2tCb3gpO1xuICAgICAgICAgICAgLy8gVG9nZ2xlIGNoZWNrYm94IHN0YXRlIHdoZW4gY2xpY2tlZFxuICAgICAgICAgICAgY2hlY2tCb3gub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgaWYgKGNoZWNrQm94Lmhhc0NsYXNzKFwidW5jaGVja2VkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNoZWNrQm94LnJlbW92ZUNsYXNzKFwidW5jaGVja2VkXCIpLmFkZENsYXNzKFwiY2hlY2tlZFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNoZWNrQm94LnJlbW92ZUNsYXNzKFwiY2hlY2tlZFwiKS5hZGRDbGFzcyhcInVuY2hlY2tlZFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICAkZWxlbWVudC5hcHBlbmQoJChgPGkgY2xhc3M9XCJmYSAke2ljb259XCIgc3R5bGU9XCJjb2xvcjoke2NvbG9yfTtcIj48L2k+JHt0fTx1bD48L3VsPmApKTtcbiAgICAgICAgJGVsZW1lbnQuYWRkQ2xhc3MoXCJleHBhbmRhYmxlXCIpO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwidmFsdWVcIiwgbik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgIH07XG4gICAgY29uc3QgZGVjbGFyZUV2ZW50RmllbGRTZWxlY3RvcldpZGdldCA9ICgpID0+IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFsgVGVtcGVyYXR1cmUgIF1cbiAgICAgICAgICogICAoIHRvb2x0aXAgOiAoL09iamVjdHMvTXlTZW5zb3IpIChucz0xO3M9VGVtcGVyYXR1cmUpKVxuICAgICAgICAgKiBbICsgW0ZvbGRlcl0gT2JqZWN0c11cbiAgICAgICAgICogWyAgICAgW09iamVjdF0gTXlTZW5zb3JdXG4gICAgICAgICAqIFsgICAgICggKSBbVmFyaWFibGVdIFRlbXBlcmF0dXJlXVxuICAgICAgICAgKi9cbiAgICAgICAgJC53aWRnZXQoXCJzdGVyZml2ZS5ldmVudEZpZWxkU2VsZWN0b3JcIiwge1xuICAgICAgICAgICAgLyogZGVmYXVsdCBvcHRpb25zICovXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiAoKSA9PiAoeyBlbmRwb2ludDogXCJvcGMudGNwOi8vb3BjdWFkZW1vLnN0ZXJmaXZlLmNvbToyNjU0M1wiIH0pLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50OiAoKSA9PiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgYmFzZVVybDogXCJcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfcG9wdWxhdGUoKSB7XG4gICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEZpZWxkID0gbmV3IFNldCgoX2EgPSB0aGF0LiRpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgLnZhbCgpKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudG9TdHJpbmcoKS5zcGxpdChcIjtcIiApKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VVcmw6IHRoYXQub3B0aW9ucy5iYXNlVXJsLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0geWllbGQgZXh0cmFjdEV2ZW50RmllbGRJbmZvKGRhdGEpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9pbnN0YWxsVHJlZShyZXN1bHQsIHNlbGVjdGVkRmllbGQpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9pbnN0YWxsVHJlZShyZXN1bHQsIHNlbGVjdEZpZWxkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgIGlmICghcmVzdWx0LmV2ZW50cykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHJvb3QgPSByZXN1bHQuZXZlbnRzO1xuICAgICAgICAgICAgICAgIGNvbnN0ICRyb290RWxlbWVudCA9IG1ha2VFbGVtZW50KHJvb3QpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuYXBwZW5kKCRyb290RWxlbWVudCk7XG4gICAgICAgICAgICAgICAgY29uc3QgcHJlZml4ID0gXCJcIjtcbiAgICAgICAgICAgICAgICB0aGlzLl9pbnN0YWxsQ2hpbGRyZW4oJHJvb3RFbGVtZW50LmNoaWxkcmVuKFwidWxcIiksIHJvb3QsIHByZWZpeCwgc2VsZWN0RmllbGQpO1xuICAgICAgICAgICAgICAgICRyb290RWxlbWVudC5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVWYWx1ZXMoc2VsZWN0RmllbGQpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9pbnN0YWxsQ2hpbGRyZW4oJHBhcmVudCwgcGFyZW50LCBwcmVmaXgsIHNlbGVjdGVkRmllbGQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBiID0gKHsgbmFtZSwgbmFtZXNwYWNlSW5kZXggfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAobmFtZXNwYWNlSW5kZXggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuYW1lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtuYW1lc3BhY2VJbmRleH06JHtuYW1lfWA7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGlsZHJlbiA9IHBhcmVudC5jaGlsZHJlbiB8fCBbXTtcbiAgICAgICAgICAgICAgICBjb25zdCBzdWJUeXBlcyA9IHBhcmVudC5zdWJUeXBlcyB8fCBbXTtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGlsZHJlbkFuZFN1YlR5cGVzID0gWy4uLmNoaWxkcmVuLCAuLi5zdWJUeXBlc107XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBjaGlsZHJlbkFuZFN1YlR5cGVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQoY2hpbGQpO1xuICAgICAgICAgICAgICAgICAgICAkcGFyZW50LmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCBwcmVmaXgyID0gXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkLm5vZGVDbGFzcyA9PT0gXCJWYXJpYWJsZVwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJlZml4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlZml4MiA9IHByZWZpeCArIFwiLlwiICsgYihjaGlsZC5icm93c2VOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWZpeDIgPSBiKGNoaWxkLmJyb3dzZU5hbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJGVsZW1lbnQuYXR0cihcImRhdGEtdmFsdWVcIiwgcHJlZml4Mik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaGFzQ2hpbGRyZW4gPSBjaGlsZC5jaGlsZHJlbiAmJiBjaGlsZC5jaGlsZHJlbi5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGhhc1N1YlR5cGVzID0gY2hpbGQuc3ViVHlwZXMgJiYgY2hpbGQuc3ViVHlwZXMubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWhhc0NoaWxkcmVuICYmICFoYXNTdWJUeXBlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgJGVsZW1lbnQucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwibm8tZXhwYW5kYWJsZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2luc3RhbGxDaGlsZHJlbigkZWxlbWVudC5jaGlsZHJlbihcInVsXCIpLCBjaGlsZCwgcHJlZml4Miwgc2VsZWN0ZWRGaWVsZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAkZWxlbWVudC5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfdXBkYXRlU2VsZWN0ZWRGaWVsZHMoKSB7XG4gICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkRmllbGRzID0gbmV3IFNldCgoX2EgPSB0aGF0LiRpbnB1dFxuICAgICAgICAgICAgICAgICAgICAudmFsKCkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50b1N0cmluZygpLnNwbGl0KFwiO1wiICkpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVZhbHVlcyhzZWxlY3RlZEZpZWxkcyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX3VwZGF0ZVZhbHVlcyhzZWxlY3RlZEZpZWxkcykge1xuICAgICAgICAgICAgICAgICQoXCIuc3RlcmZpdmUtdHJlZSBsaVwiKS5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJHRoaXMgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2ID0gJHRoaXMuYXR0cihcImRhdGEtdmFsdWVcIik7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2ICYmIHNlbGVjdGVkRmllbGRzLmhhcyh2KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMuY2hpbGRyZW4oXCJzcGFuLmN1c3RvbS1jaGVja2JveFwiKS5yZW1vdmVDbGFzcyhcInVuY2hlY2tlZFwiKS5hZGRDbGFzcyhcImNoZWNrZWRcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfc2V0SW5wdXRWYWx1ZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICBjb25zdCBsaXN0ID0gW107XG4gICAgICAgICAgICAgICAgLy8gY3Jhd2wgdGhlIHRyZWUgdG8gZmluZCBzZWxlY3RlZCBlbGVtZW50cyBhbmQgY3JlYXRlIGEgbGlzdCBvZiBCcm93c2VQYXRoXG4gICAgICAgICAgICAgICAgJChcIi5zdGVyZml2ZS10cmVlIGxpXCIpLmVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCAkdGhpcyA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBlbGVtZW50IGlzIHNlbGVjdGVkXG4gICAgICAgICAgICAgICAgICAgIGlmICgkdGhpcy5jaGlsZHJlbihcInNwYW4uY3VzdG9tLWNoZWNrYm94LmNoZWNrZWRcIikubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdiA9ICR0aGlzLmF0dHIoXCJkYXRhLXZhbHVlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHYpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdC5wdXNoKHYpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBbLi4ubmV3IFNldChsaXN0KV0uc29ydCgpLmpvaW4oXCI7XCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnZhbCh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfY3JlYXRlKCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0ID0gdGhpcy5lbGVtZW50O1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvID0gJChcIjxkaXYvPlwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hZGRDbGFzcyhcInN0ZXJmaXZlLWNvbWJvLWJveFwiKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRbMF0ucGFyZW50RWxlbWVudC5yZXBsYWNlQ2hpbGQodGhhdC4kY29tYm9bMF0sIHRoaXMuZWxlbWVudFswXSk7XG4gICAgICAgICAgICAgICAgLy8gdGhpcy5lbGVtZW50LnJlcGxhY2VXaXRoKHRoYXQuJGNvbWJvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcImlucHV0LWdyb3VwXCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbnB1dEdyb3VwKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiRpbnB1dCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0biA9ICQoYDxidXR0b24+PGkgY2xhc3M9XCJmYSBmYS1zaXRlbWFwXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJHRvZ2dsZVRyZWVCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4ub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC4kZHJvcGRvd24uaXMoXCI6dmlzaWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJGZsb2F0aW5nQnV0dG9ucy5zaG93KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvZmZzZXQgPSB0aGF0LiRkcm9wZG93bi5vZmZzZXQoKTsgLy8gR2V0IHRoZSB0b3AtbGVmdCBjb3JuZXIgcG9zaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICRmbG9hdGluZ0J1dHRvbnMuY3NzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3A6IGAke29mZnNldC50b3B9cHhgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiBgY2FsYygxMDAlIC0gJHtvZmZzZXQubGVmdCArIHRoYXQuJGRyb3Bkb3duLndpZHRoKCl9cHgpYCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5fcG9wdWxhdGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX3VwZGF0ZVNlbGVjdGVkRmllbGRzKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkZmxvYXRpbmdCdXR0b25zLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmICghdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmF0dHIoXCJwbGFjZWhvbGRlclwiLCBcImVudGVyIGEgbm9kZUlkIG9yIGEgYnJvd3NlUGF0aCBcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoYXQuJGluZm8gPSAkKGA8ZGl2IGNsYXNzPVwiaW5mby10ZXh0XCI+PC9kaXY+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mby5oaWRlKCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24gPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwic3RlcmZpdmUtZHJvcGRvd25cIikuaGlkZSgpO1xuICAgICAgICAgICAgICAgIC8vIGNvbnN0ICRzY3JvbGxhYmxlQ29udGVudCA9ICQoJzxkaXYgY2xhc3M9XCJzdGVyZml2ZS1kcm9wZG93bi1zY3JvbGxhYmxlLWNvbnRlbnRcIj48L2Rpdj4nKTtcbiAgICAgICAgICAgICAgICBjb25zdCAkdmFsaWRhdGVCdXR0b24gPSAkKCc8c3BhbiBjbGFzcz1cInZhbGlkYXRlLWJ1dHRvblwiPuKclDwvc3Bhbj4nKTsgLy8gVXNlIGFueSBpY29uIG9yIHRleHQgaGVyZVxuICAgICAgICAgICAgICAgIGNvbnN0ICRjYW5jZWxCdXR0b24gPSAkKCc8c3BhbiBjbGFzcz1cImNhbmNlbC1idXR0b25cIj7inJY8L3NwYW4+Jyk7IC8vIFVzZSBhbnkgaWNvbiBvciB0ZXh0IGhlcmVcbiAgICAgICAgICAgICAgICBjb25zdCAkZmxvYXRpbmdCdXR0b25zID0gJCgnPGRpdiBjbGFzcz1cImZsb2F0aW5nLWJ1dHRvbnNcIj48L2Rpdj4nKS5hcHBlbmQoJHZhbGlkYXRlQnV0dG9uLCAkY2FuY2VsQnV0dG9uKTtcbiAgICAgICAgICAgICAgICAkZmxvYXRpbmdCdXR0b25zLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAvLyBEZWZpbmUgeW91ciB2YWxpZGF0aW9uIGFuZCBjYW5jZWxsYXRpb24gbG9naWNcbiAgICAgICAgICAgICAgICAkdmFsaWRhdGVCdXR0b24ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuX3NldElucHV0VmFsdWUoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICRjYW5jZWxCdXR0b24ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5mbyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlID0gJChgPHVsIGNsYXNzPVwic3RlcmZpdmUtdHJlZVwiPjwvdWw+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uZW1wdHkoKS5hcHBlbmQodGhhdC4kdHJlZSwgJGZsb2F0aW5nQnV0dG9ucyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlV2lkdGggPSAyMDsgLy8gU2V0IHdpZHRoIG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZUhlaWdodCA9IDIwOyAvLyBTZXQgaGVpZ2h0IG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRQb3MgPSAkKHRoaXMpLm9mZnNldCgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlID0gZXZlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlLnBhZ2VYID49IGVsZW1lbnRQb3MubGVmdCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWCA8PSBlbGVtZW50UG9zLmxlZnQgKyBiZWZvcmVXaWR0aCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA+PSBlbGVtZW50UG9zLnRvcCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA8PSBlbGVtZW50UG9zLnRvcCArIGJlZm9yZUhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJjbGlja2VkIG9uIGljb25cIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImNsaWNrZWQgb24gXCIsICRsaS5kYXRhKFwidmFsdWVcIiksICRsaS5hdHRyKFwiY2xhc3NcIikpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGFibGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRvZ2dsZSBpdHMgZXhwYW5kZWQvY29sbGFwc2VkIHN0YXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5jaGlsZHJlbihcInVsXCIpLmNoaWxkcmVuKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN3YXAgZXhwYW5kYWJsZSBhbmQgZXhwYW5kZWQgY2xhc3Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNsaWNraW5nIG91dHNpZGUgdGhlIHBhZ2Ugd2lsbCBoaWRlIHRoZSBkcm9wZG93blxuICAgICAgICAgICAgICAgICAgICBpZiAoISQoZXZlbnQudGFyZ2V0KS5jbG9zZXN0KHRoYXQuJGNvbWJvKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMuX3BvcHVsYXRlKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9O1xuICAgIGNvbnN0IGV4dHJhY3RFdmVudEZpZWxkSW5mbyA9ICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwsIH0pID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vZXh0cmFjdEV2ZW50VHlwZXNgO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hpbmcgZmFpbGVkIHdpdGggZXJyb3JcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgICAgICByZXR1cm4geyBldmVudHM6IG51bGwgfTtcbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoZWQgOiBcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0geWllbGQgZGF0YS5qc29uKCk7XG4gICAgICAgIGNvbnN0IGV2ZW50cyA9IHJlc3BvbnNlLmV2ZW50cztcbiAgICAgICAgcmV0dXJuIHsgZXZlbnRzIH07XG4gICAgfSk7XG5cbiAgICBjb25zdCBnZXRFbmRQb2ludEF0dHJpYnV0ZXMgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0ICRlbmRwb2ludCA9ICQoXCIjbm9kZS1pbnB1dC1lbmRwb2ludFwiKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnRJZCA9ICRlbmRwb2ludC52YWwoKTtcbiAgICAgICAgY29uc3QgcmVkTm9kZSA9IFJFRC5ub2Rlcy5ub2RlKGVuZHBvaW50SWQpO1xuICAgICAgICBpZiAoIXJlZE5vZGUpXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAvLyB3ZSBuZWVkIHRvIHNhbml0aXplIGFuZCBleHRyYWN0IHRoZSBlbmRwb2ludCBhdHRyaWJ1dGVzIG9ubHkgKCBub3QgdGhlIG5vZGUtcmVkIHN0dWZmKVxuICAgICAgICBjb25zdCB7IGVuZHBvaW50LCBzZWN1cml0eU1vZGUsIHNlY3VyaXR5UG9saWN5LCB1c2VySWRlbnRpdHlUeXBlLCB1c2VyTmFtZSwgcGFzc3dvcmQsIHVzZXJDZXJ0aWZpY2F0ZSwgdXNlclByaXZhdGVrZXkgfSA9IHJlZE5vZGU7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgIHNlY3VyaXR5TW9kZSxcbiAgICAgICAgICAgIHNlY3VyaXR5UG9saWN5LFxuICAgICAgICAgICAgdXNlcklkZW50aXR5VHlwZSxcbiAgICAgICAgICAgIHVzZXJOYW1lLFxuICAgICAgICAgICAgcGFzc3dvcmQsXG4gICAgICAgICAgICB1c2VyQ2VydGlmaWNhdGUsXG4gICAgICAgICAgICB1c2VyUHJpdmF0ZWtleSxcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlbmRwb2ludE5vZGU6IGdldEVuZHBvaW50UGFyYW1ldGVycyxcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVycyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCBlbmRwb2ludElkID0gJGVuZHBvaW50LnZhbCgpO1xuICAgICAgICBjb25zdCBlbmRwb2ludE5yID0gZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzKCk7XG4gICAgICAgIGlmICghZW5kcG9pbnROcikge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaWQ6IGVuZHBvaW50SWQsXG4gICAgICAgICAgICBlbmRwb2ludDogZW5kcG9pbnROci5lbmRwb2ludCxcbiAgICAgICAgICAgIHNlY3VyaXR5TW9kZTogZW5kcG9pbnROci5zZWN1cml0eU1vZGUsXG4gICAgICAgICAgICBzZWN1cml0eVBvbGljeTogZW5kcG9pbnROci5zZWN1cml0eVBvbGljeSxcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICB1c2VySWRlbnRpdHlUeXBlOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUsXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgdXNlck5hbWU6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSA9PT0gXCJVc2VyTmFtZVwiID8gZW5kcG9pbnROci51c2VyTmFtZSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHBhc3N3b3JkOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUgPT09IFwiVXNlck5hbWVcIiA/IGVuZHBvaW50TnIucGFzc3dvcmQgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB1c2VyQ2VydGlmaWNhdGU6IGVuZHBvaW50TnIudXNlckNlcnRpZmljYXRlLFxuICAgICAgICAgICAgdXNlclByaXZhdGVrZXk6IGVuZHBvaW50TnIudXNlclByaXZhdGVrZXksXG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIFJFRC5ub2Rlcy5yZWdpc3RlclR5cGUoXCJPcGNVYS1DbGllbnQyLU1vbml0b3JFdmVudFwiLCB7XG4gICAgICAgIGNhdGVnb3J5OiBcIm9wY3VhXCIsXG4gICAgICAgIGNvbG9yOiBcIiNDMERFRURcIixcbiAgICAgICAgYWxpZ246IFwicmlnaHRcIixcbiAgICAgICAgaWNvbjogXCJvcGN1YWxvZ29iaWcucG5nXCIsXG4gICAgICAgIHBhbGV0dGVMYWJlbDogXCJtb25pdG9yIGV2ZW50c1wiLFxuICAgICAgICBkZWZhdWx0czoge1xuICAgICAgICAgICAgaW5wdXRzOiB7IHZhbHVlOiAxIH0sXG4gICAgICAgICAgICBvdXRwdXQ6IHsgdmFsdWU6IDQgfSxcbiAgICAgICAgICAgIG5hbWU6IHsgdmFsdWU6IFwiXCIgfSxcbiAgICAgICAgICAgIGVuZHBvaW50OiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogdHJ1ZSwgdHlwZTogXCJPcGNVYS1FbmRwb2ludDJcIiB9LFxuICAgICAgICAgICAgc3Vic2NyaXB0aW9uOiB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFwiXCIsXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgdmFsaWRhdGU6ICh2YWwpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbCA9PT0gXCJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzdGFydEltbWVkaWF0ZWx5OiB7IHZhbHVlOiB0cnVlLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgLy8gd2UgdXNlIGEgZGlmZmVyZW50IHdpZGdldCBmb3IgZWRpdGluZyB0aGUgbm9kZUlkLCBiZWNhdXNlIHRoZSBiZWhhdmlvclxuICAgICAgICAgICAgLy8gaXMgc3BlY2lmaWMgdG8gbW9uaXRvciwgaG93ZXZlciBwcm9wZXJ0eSB3aWxsIGJlIHN0b3JlZCBpbiBub2RlSWRcbiAgICAgICAgICAgIG5vZGVJZDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IGZhbHNlLCB2YWxpZGF0ZTogKCkgPT4gdHJ1ZSB9LFxuICAgICAgICAgICAgc2FtcGxpbmdJbnRlcnZhbDogeyB2YWx1ZTogMTAwMCwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIGRpc2NhcmRPbGRlc3Q6IHsgdmFsdWU6IHRydWUsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICBxdWV1ZVNpemU6IHsgdmFsdWU6IDEwLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgc2VsZWN0Q2xhdXNlczogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIHdoZXJlQ2xhdXNlOiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogZmFsc2UgfSxcbiAgICAgICAgfSxcbiAgICAgICAgLy8gaW5wdXRzOixcbiAgICAgICAgb3V0cHV0czogMiwgLy8gMiBvdXRwdXQsIHNlY29uZCBmb3IgcmF3IG5vZGUtb3BjdWEgZGlhZ25vc3RpY3Mgb3IgbW9yZSBjb21wbGV0ZSBtZXNzYWdlXG4gICAgICAgIGxhYmVsKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSB8fCBcIk9QQ1VBIE1vbml0b3JcIjtcbiAgICAgICAgfSxcbiAgICAgICAgbGFiZWxTdHlsZSgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgPyBcIm5vZGVfbGFiZWxfaXRhbGljXCIgOiBcIlwiO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRwcmVwYXJlKCkge1xuICAgICAgICAgICAgZGVjbGFyZU5vZGVCcm93c2VyV2lkZ2V0KCk7XG4gICAgICAgICAgICBkZWNsYXJlRXZlbnRGaWVsZFNlbGVjdG9yV2lkZ2V0KCk7XG4gICAgICAgICAgICBpbnN0YWxsU3Vic2NyaXB0aW9uU2VsZWN0b3IoUkVELCB0aGlzKTtcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgQWN0aW9uIE1vbml0b3IgQ29tbW9uXG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gLS0gaW5zdGFsbCBzdWJzY3JpcHRpb24gc2VsZWN0aW9uXG4gICAgICAgICAgICAkKFwibm9kZS1pbnB1dC1zdGFydEltbWVkaWF0ZWx5XCIpLm9uKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGVja2VkID0gJChcIiNub2RlLWlucHV0LXN0YXJ0SW1tZWRpYXRlbHlcIikucHJvcChcImNoZWNrZWRcIik7XG4gICAgICAgICAgICAgICAgaWYgKGNoZWNrZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LWlucHV0c1wiKS52YWwoMCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtaW5wdXRzXCIpLnZhbCgxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgQWN0aW9uIE1vbml0b3JcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICBjb25zdCAkbm9kZUlkID0gJChcIiNub2RlLWlucHV0LW5vZGVJZFwiKTtcbiAgICAgICAgICAgICRub2RlSWQubm9kZUJyb3dzZXIoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyKCkpLCB7IGZpbHRlcihub2RlRGVzYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIk9iamVjdFwiO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgaXNTZWxlY3RhYmxlKG5vZGVEZXNjKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiT2JqZWN0XCIgLyogdG8gZG8gfHwgbm9kZURlc2MuZXZlbnROb3RpZmllciA9PT0gMSAqLztcbiAgICAgICAgICAgICAgICB9IH0pKTtcbiAgICAgICAgICAgIC8vIC0tLS0tLSBpbnN0YWxsIGV2ZW50IGZpZWxkIHNlbGVjdG9yXG4gICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtd2hlcmVDbGF1c2VcIik7XG4gICAgICAgICAgICBjb25zdCAkc2VsZWN0Q2xhdXNlcyA9ICQoXCIjbm9kZS1pbnB1dC1zZWxlY3RDbGF1c2VzXCIpO1xuICAgICAgICAgICAgJHNlbGVjdENsYXVzZXMuZXZlbnRGaWVsZFNlbGVjdG9yKE9iamVjdC5hc3NpZ24oe30sIGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIoKSkpO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRzYXZlKCkge1xuICAgICAgICAgICAgY29uc3Qgc3RhcnRJbW1lZGlhdGVseSA9ICQoXCIjbm9kZS1pbnB1dC1zdGFydEltbWVkaWF0ZWx5XCIpLnByb3AoXCJjaGVja2VkXCIpO1xuICAgICAgICAgICAgaWYgKHN0YXJ0SW1tZWRpYXRlbHkpIHtcbiAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtc3RhcnRJbW1lZGlhdGVseVwiKS52YWwoc3RhcnRJbW1lZGlhdGVseSA/IDAgOiAxKTtcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0cyA9IHN0YXJ0SW1tZWRpYXRlbHkgPyAwIDogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1zdGFydEltbWVkaWF0ZWx5XCIpLnZhbCgxKTtcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0cyA9IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgfSk7XG5cbn0pKCk7Il19
|
9
9
|
</script>
|
10
10
|
<script type="text/x-red" data-template-name="OpcUa-Client2-MonitorEvent">
|
11
11
|
<style>
|